Jump to content

Robert Anderson

Vectorworks, Inc Employee
  • Posts

    3,233
  • Joined

  • Last visited

Posts posted by Robert Anderson

  1. Hi, tjxj,

     

    Lineweights, arrowheads, hatch scaling, all those things that you have to do all the time in ACAD, Vectorworks handles for you. It is all about Layer Scale. 

     

    What is Layer Scale?

     

    The "Layer Scale" used by VectorWorks comes primarily out of "WYSIWYG" drawing, pioneered on the Mac (and therefore part of Vectorworks' history). "Layer Scale" exists to allow graphic properties of the drawing or model to be represented properly, as though you were drawing at a particular scale on a piece of paper. It is a scaling value used to allow proper representation for PAGE-SCALED (as opposed to WORLD-SCALED) attributes:

        -Line weight;
        -Line style (e.g. length of dashes);
        -Marker (arrowhead) size;
        -Text size;
        -Hatch scaling;
        -Page symbol scaling;

     

    In "WYSIWYG" drawing, in order to properly display these attributes, there has to be an intended output scale so you can see how the drawing will look at that intended format. The practical upshot of all this is that you should set your "layer scale" to be the same as the predominant output scale of your project. This will necessitate the least amount of attribute-scaling in viewports.

     

    But in all design layers, at all times, you are drawing in world scale. An inch is always an inch, a foot is always a foot, no matter the "Layer Scale". "Layer Scale" serves only to set page-oriented graphics.
     

    Note also that you can scale some or all of these attributes in individual viewports as you wish. 

  2. Multiple extrude may work, but is difficult to control for faces and faceting.

    Taper Solid should work.

    Subdivision tool likewise will work (and be very malleable!)

     

    The main advantage of the NURBS surface-to-shell approach is the easy control of getting a uniform thickness of the shape. (This may or may not be a requirement, though).

    • Like 2
  3. If your file involves a large amount of imported 3D geometry, try going to the resources to simplify, particularly large or complex meshes, which can really bog down a hidden-line displayed viewport. Complex 3D meshes can be modified using the Simplify Mesh command. It has a preview so you can tune your simplification to be visually correct.

     

    If your file involves a lot of 2D imports from AutoCAD, often time very "deep" hatches or inefficient line styles can slow down the file. Try modifying these to simplify in the Resource Browser.

    • Like 1
  4. I can't answer that question, as I know very little about your specifics. You are running a 7-year-old application on a 5+ year-old OS. As projects grow in maturity, size, and complexity, sometimes you hit the wall. We don't like to see our users hit the wall. This is why we did a major re-engineering effort back in 2013 and 2014 to move Vectorworks to a 64-bit platform. Is there any way you can break the project into multiple independent files? This may be the only way for the short term. (I say "independent" because Vectorworks file referencing may not reduce file size nor memory footprint.)

  5. Hi, Arshan,

     

    You are certainly correct that it is crucial for a plug-in object to know something about its environment, not just its own local coordinate system.

     

    There is a crucial call, GetCustomObjectInfo() that gets a handle to the container of the current executing plug-in object. For experienced plug-in developers, it is usually the first or second call in the Main() routine of a plug-in. It returns:

    • The PIO record name;
    • A handle to the PIO parameter record;
    • A handle to the PIO object (container) itself; and
    • A handle to the wall (if any) that the PIO might be inserted in.

    With these handles, you can do things like find out where the PIO is using e.g. GetSymLoc() and the PIO's rotation using GetSymRot(). (Don't worry about the fact that these two calls say "Sym" instead of "PIO". They will work.)

     

    I recommend making http://developer.vectorworks.net/index.php/VS:Function_Reference one of the default tabs on your browser if you're going to start using VectorScript or Python to develop plug-ins.

     

    Best of luck, and let us hear!

  6. there's a super secret technique for this. (I'm pretty sure it still works..)

     

    In your MarioNetwork, draw a 2D locus over input ports that you want to hide. 

     

    Let me know if this still works. (Sounds almost too simple to be true...)

    • Like 1
  7. Marionette can do procedural geometry like GH or Dynamo, but you can take this further and "wrap up" the geometry into parametric objects to use in your projects.

    Also, you can traverse the model by various methods (e.g. a query like "give me a list of all the masonry walls on the second floor") and perform operations, including querying and modification.

    Py knowledge is not necessary to use Marionette, but it will be very useful if you wish to create custom nodes, which almost any advanced user will want.

    • Like 1
  8. Pat, to get the handle to the default object or tool settings record, I think you don't pass a NIL handle, instead pass a handle obtained by GetObject() and the universal name of the PIO or command. For example, to set the default top shape of a door to a Gable, use the following one-line script:

     

    setrfield(getobject('Door'),'Door','TopShape','Gable');

     

    HTH.

     

×
×
  • Create New...