Jump to content

MaxStudio

Member
  • Content Count

    307
  • Joined

  • Last visited

Posts posted by MaxStudio


  1. So I've been playing around with this more and I've come up with a solution that seems to work.  It is best to have a class that is hidden when in plan view and visible  when in elevation or perspective view.  Once the portion of the wall below the roof was drawn, on the 2nd floor walls layer, I needed to offset the bottom of the wall.  (the tricky part, for me, was that I needed to get the entire wall below the roof) so I offset the bottom about 36" and only made the wall height 6".  I then fit the wall object to the roof object and it made the proper connection.  I then needed to return the bottom of the wall to it's original position. (I wasn't sure how the model  would handle this because the original bottom position of the wall was above the lowest portion of my roof intersection.)    It worked and I'm happy but I guess there is no other way around the hidden class.

    Photo 4.png


  2. I draw my existing conditions  and use 2d symbols for things like sinks, vanities, etc...  The symbol is originally created on the 'None" class.   I set the symbol line type to "by class" but when I move it to the demo class the line type doesn't change.  In order to get the line type to change I have to enter the symbol and change the line type of each of the objects contained within the symbol to "by class" and put all of those objects within the symbol on the demolition class.  That will work although, it then changes all of my existing symbols (which are not to be on the demolition plan).  How do you accomplish this without having to create a new demolition symbol for each symbol? 

     

    Thanks,

    Derek


  3. Hello,

     

    I'm looking for the best practice for the following situation.  I have two different sidings on the exterior of the house (clapboard on the first floor and shingle on the second floor)

    There is a portion of the second floor shingle wall that is below a first floor roof.  I do not want this portion of the wall to show up on the second floor plan. (see photo 1-I added the dotted lines to show the first floor wall below the roof)  In my attached image (photo 2) you can see that I fit the first floor walls to the roof object.  Unfortunately, that leaves me with clapboard siding in an area where there should be shingle siding.  

     

    My current solution is to create a second hidden class that reflects the properties of the second floor walls.  I keep the class 'on' in elevation and perspective views but 'off' on plan views.

     

    Is there a better solution or easier solution to this problem?

     

    bonus question.  I have two roofs that line up on the inner corner but do not connect on the outer corner any solutions?  (see photo 3)

     

    And thank you for your help

     

    Derek

    PHOTO 1.png

    PHOTO 2.png

    PHOTO 3.png


  4. Hi Everyone,

     

    Using Vectorworks 2016 on Mac.

     

    Quick Question.  I extruded an object from the right viewport.  Unfortunately, now when I texture the object, the top and bottom are considered the "sides" and the sides are considered the "top & bottom". Is there a way to reorient the axis of an extruded object so that I can make the sides the top and bottom and the top and bottom the sides?

     

    Thanks!


  5. I know there is probably an easy answer to this question but, I just can't seem to figure it out.  I have a custom triple double-hung window that I have created with the Vectorworks window tool.  The center window is 40" wide and the side windows are 18" wide.  I want 3 vertical muntin bars in the center window and 1 vertical muntin bar in the side windows but, it seems I can only have one or the other.  (Either 3 vertical bars in all windows or only 1 vertical bar in all windows).  What am I missing?

     

    Thanks

    Derek


  6. I'm trying to create a box bay with a window.  I've created the box bay using walls and offset the base of the walls to the appropriate height. unfortunately, once I offset the base of the box bay walls a hole remains  in the main wall of the house.  What is the best way to go about creating a box bay like this?

     

    Thanks,

    Derek

    5e41b691d43c76379659ddb7d2832750.jpg

    BOXBAY.png


  7. I've also created a 3d tapered object and used the "Add 3d Object to Slab" menu item to attach the object to the slab.  That did attach the 3d object to the slab but, then the horizontal lines of the slab became visible too.  It's almost like the slab became part of the 3d object and inherited it's properties instead of the 3d object becoming part of the slab.

     

    1 hour ago, Boh said:

    I think this is the way to go except make the other chimney parts solid objects (rahter than wall objects) then you can select the whole chimney, right click and "add solids" which will make the whole chimney a "solid addition" and it will remove the unwanted lines. You can still double click on the chimney to enter the addition and edit it later on.

     

    Hi Boh,

    What layer do you put the Solid Chimney Object on?   I was able to get it to work but, I had to do a little extra work.  I will list my process below:

     

    I did what you said and created the Chimney as 1 solid object.  I'm going to call this object "Chimney_Elevation_Object"

     

    I put Chimney_Elevation_Object on the design layer "Slab-1"  (that allows me to show the chimney in elevation but, not on any of the plans because the Slab-1 layer is set to invisible on my plan views)

     

    I still needed the walls of the chimney to show in plan so I created a new class called "Wall-Chimney"  I then went to the First Floor Walls design layer and created the walls for the wider portion of the chimney and put those walls on the Wall-Chimney class.  I then went to the Second Floor Walls design layer and created the walls for the narrower portion of the chimney and also put those walls on the Wall-Chimney class.

     

    Finally, I set the visibility for the Wall-Chimney class to visible on the plans and invisible on the elevations.   See Pictures 3,4 & 5 Below.

     

    Unfortunately, there is a little bit of double work that needs to be done to accomplish this outcome.  In the future, if I change the chimney in plan, I will need to remember to also change the solid Chimney_Elevation_Object.  I will also have to create some more classes for demo and new chimney walls.

     

    Thanks for your help and if anyone else has any further solutions I would love to hear.

    Derek

     

     

    Picture5.png

    Picture4.png

    Picture3.png

    • Like 1

  8. Hello Everyone,

     

    I'm trying to create a chimney that tapers.  (see picture 2)  I've drawn the walls, which represent the wider portion, on the first floor and the walls, that represent the more narrow section, on the second floor.  I need to create the transition piece between (see picture 1).   I want the transition piece to perform much like a slab so that the horizontal lines are invisible when rendering Hidden line.

     

    My questions are:

     

    1.  What is the best way to go about creating this piece?

    2.  I could use a slab but, is there a way to taper a slab?

    3.  I tried creating a polygon, performed and extrude and tapered it.  And while that got me the shape I was looking for it still has the horizontal lines in Hidden Line mode.  Is there a way to hide the horizontal lines?

     

    Thanks

    Derek

     

    Picture1.jpg

    Picture2.jpg


  9. On April 28, 2014 at 11:55 AM, Vladislav Stanev said:

    The encryption (obfuscation) process (run from the Plugin manager or from EncryptVSPluginFilePath call)...

     

    So, Vectorworks would expect an xml file next to your vso/vst/vsm that is being encrypted. This file will define what files must be included...

     

     

     

    I have two questions.  Once I make the xml file where do i save it?  the same plugin folder that the vso file is in?  also  I've never encrypted a plugin using the EncryptVSPluginFilePath is there any documentation which explains this process?  I wonder why there isn't just a button in the Plugin Manager that simply says "ENCRYPT PLUGIN"?

    ... I had to switch my workspace but found a pulldown for Encrypt Scripts but, it doesn't allow me to select a .vso file.  I'm very confused on how to accomplish this encryption.


  10. I created a plugin object using python. The main code was pasted into the script editor via the plugin manager.   I compiled the script and the plugin item works as it should.  Now I would like to lock the script.

    I'm on a mac and recently made the jump from Vectorworks 2008 to 2016.  In the past when creating a vector script I could lock it  by holding down 'command' + 'option' + 'shift' + 'caps lock'  (it was important that all external files had the extension .px)

     

    Now i'm in 2016 and scripting with Python.  I only have 1 other file in addition to "import vs", which is,  "import shapes" when i compile my script (shapes.py).  It finds this file via the scripts options/environment paths.  How do I go about locking or encrypting this plugin object?

     

    also, I do have a __init__.py file included in the folder that contains shapes.py

     


  11. I've eliminated the vs.GetCustomObjectInfo(objname,oh,rh,wh) and just used vs.SetParameterVisibility(handle, 'parametername', FALSE)

    I set the object handle to zero

    vs.SetParameterVisibility(0, 'parametername', FALSE)

     

    I want to use a pulldown to set the visibility to true:

     

    number=vs.Pnumber

    if number == "2":

        vs.SetParameterVisibility(0, 'parametername', True )

     

    but I'm getting the following error:

     

    Error: Invalid callback function parameter type. Parameter index= 0 name=inPlugin

         File "<string>", line 38, in <module>

         File "<string>", line 1, in <module>

     

    below is the actual code:

     

    import vs
    import shapes

    number=vs.Pnumber
    shape01=vs.Pshape01
    shape02=vs.Pshape02
    shape03=vs.Pshape03

    xstart=0

    vs.SetParameterVisibility(0, 'shape01', False )
    vs.SetParameterVisibility(0, 'shape02', False )
    vs.SetParameterVisibility(0, 'shape03', False )

    if number == "2":

        vs.SetParameterVisibility(0, 'shape01', True )
        vs.SetParameterVisibility(0, 'shape02', True )

    if number == "3":

        vs.SetParameterVisibility(0, 'shape01', True )
        vs.SetParameterVisibility(0, 'shape02', True )
        vs.SetParameterVisibility(0, 'shape03', True )

     

     

     

     


  12. I have not assigned a value to objname.  I've created a plugin object and I need to reference and object handle to set the visibilities of the parameter.  how do i acquire or assign these?  

    I thought using the following:

     vs.GetCustomObjectInfo(objname,oh,rh,wh) 

    would have acquired and assigned these for me


  13. I'm trying to set parameter visibility in the object info panel.

     

    In the old vector script I would retrieve the custom object information as follows:

    result:= GetCustomObjectInfo(objname,oh,rh,wh);

    I would then set the visibility of the parameter as follows:

    SetParameterVisibility(oh,'parametername',FALSE);

     

    In python I am trying to accomplish the same thing.

    I've tried the following:

    result = vs.GetCustomObjectInfo(objname,oh,rh,wh)

    and then I attempted to set the visibility as follows:

    vs.SetParameterVisibility(oh, 'parametername', FALSE)

     

    when i run the script I get the following error:

    NameError:  name 'objname' is not defined

     

    Does anyone know how to accomplish this using best practice?

     

    Thanks,

    Derek

     

     


  14. In the past I have run into a problem where the scripting window limits the amount of code I can put in a plugin.  That lead me to start using 'Includes"  after which,  I was no longer limited.  The problem is that some of my codes end up being very long and I do not like scrolling through a ton of code just to find what I'm working on. 

     

    For example, If I have a code that generates 10 types of doors.  In the past I would generate variables for door width/height/wall thickness.  (i would consider those to be global variables)  All of the door types would use those variables.  But not all of the doors would be the same.  Some would be solid, some would be glass and some would be paneled.   To create these individual door types I would have a set of Local Variables for each.   In the past i would create a main include file that sets global attributes and draws global objects.  When the user selected a door type the corresponding include file would load to draw the selected door.  Having the separate "include" file would allow me to work on a simple code to generate each individual door type.  I wouldn't need to work on one large file that includes all 10 doors.  When the code was complete I would lock it within vectorworks so that it would run as a single plugin file.

     

    I'm having a little trouble understanding the best way to accomplish this with python.  I'm not a paid programmer and Im learning as I go.  I'm trying to get a better grip on python as we are moving from Vectorworks 2008 to 2016.  That being said, I find it much easier to comprehend looking at small pieces of code rather than a monster.


  15. I like to deconstruct my larger more complicated scripts into smaller files.  It helps me stay organized.

    I'm trying to get imported functions to use global variables that I have created but, it's not working the way I like and I'm not sure why.

    I have a main script that defines the global variables.  The main script also imports demo.py and calls the function draw.

    The demo.py script is basically an if/else test.  I've imported another file named shapes.py which has functions to draw shapes.

    -If the global variable 'w' is less than 6 call function myrectangle() from shapes.py

    -If the global variable 'w' is greater than 6 call function myoval() from shapes.py

    -if the global variable 'w' is equal to 6 print "Hello World" in a Alert Box.

    When i try to run i get: NameError: global name 'x' is not defined.  I thought that if I had global variables defined in the main script i would be able to use them in the imported functions.  Am I doing something wrong?

    main.py

    import vs
    import demo
    
    w=vs.PLineLength
    h=vs.PBoxWidth
    x = 0
    y = 0
    y = y-h/2
    
    demo.draw()

    demo.py

    import vs
    import shapes
    
    def draw():
    
    	vs.PenSize(2);
    
    	if w < 6:
    
    		shapes.myrectangle()
    
    	elif w > 6:
    
    		shapes.myoval()
    
    	elif w == 6:
    
    		vs.AlrtDialog('Hello world.')

    shapes.py

    import vs
    
    def myrectangle():
    
    	vs.Rect(x,y, x+w,y+h)
    
    def myoval():
    
    	vs.Oval(x,y, x+w,y+h)

     

 

7150 Riverwood Drive, Columbia, Maryland 21046, USA   |   Contact Us:   410-290-5114

 

© 2018 Vectorworks, Inc. All Rights Reserved. Vectorworks, Inc. is part of the Nemetschek Group.

×
×
  • Create New...