Jump to content

Alexandre Villares

  • Content Count

  • Joined

  • Last visited

Posts posted by Alexandre Villares

  1. Hi Brendan,

    I know this is no real solution but I have a desperate man's workaround:

    Go to the menu Page>Set Attribute Defaults>Arrow Heads...

    On the right side of the panel, choose an arrow type slot you don't mind losing (I picked the open arrow head - Arrow #2).

    On the left side choose a style that allows you to fix the angle, set it to 1 degree and 1mm or less.

    Now you just have to fit your dashed lines with this pseudo arrow endings. Polygons will have to be tool>decompose(d).

    Not very practical but I hope it helps.

    best regards,


    [ 04-11-2003, 10:25 AM: Message edited by: Alexandre B A Villares ]

  2. quote:

    Originally posted by Dan Kessler:

    It adds some improvement for text, but I still can't "aquire" the attributes that are set to "use class's". (the little hooked arrow symbol).

    Dan, have a good look at the preferecens, a checkbox called "use class attributes". I have just tested it...

  3. quote:

    Originally posted by Katie:

    When you select the wall or door PIO, you can click on the Preference button in the Mode bar.

    This shows the settings of the tool with all parameters expanded. You can input the information there first, then plop down the doors and windows as you wish.


    Hi Katie,

    Note this method is only possible if the PIO is selected from a palette. Otherwise, if the PIO is selected from the Object/Resource Browser, the preferences button is not available!

    And I think the Door/Window PIOs are not in a palette at the standard 'non architect' workspace.

    The only way to change defaults then (other than editing the workspace adding the PIOs to a palette) is to make/edit a symbol set to convert to plug-in object...

    [ 03-20-2003, 01:50 PM: Message edited by: Alexandre B A Villares ]

  4. (1) ------------------ wish ------------------

    I have a simple idea/wish concerning the effect of new classes/layers on saved sheets:

    When you create a new class/layer there could be a checkbox '[X] invisible on existing sheets' (the default being the current behaviour)

    (2) ------------------ digression ------------------

    I don't like PIOs to have internal parts set to the 'none' class. I can't control their attributes!

    The PIOs I write usually have their parts set to the container class. Those internal parts may have three (coded) attribute behaviors:

    Class attributes;

    User set attributes (at the Attr. Palette);

    PIO Coded Attr (i.e. None Fill, dashed line);

    If the 'Use at creation' is on at the container class, it overrules my internal attribute settings in a non reversible way.

    (3) ------------------ complaint ------------------

    Due to a VectorScript limitation I can't make an auto-classing text tool: the CallTool/SetTool doesn't work correctly with the Text Tool

    (as you can see if you try to use the Custom Tool/Attributes command with the Text Tool).

    [ 03-15-2003, 10:43 AM: Message edited by: Alexandre B A Villares ]

  5. quote:

    Originally posted by David Seibert:

    I would like to select numerous PIO (doors in this case) and change their class (with the goal of changing their attributes)all with ONE click. Is there a way? Show me the light.

    You have a problem... if the doors are placed in walls as the should you can't select many of them to change class...

    We might be able to make a VectorScript to solve this...

  6. quote:

    Originally posted by dfortin:

    I've used this offset polytool. It only allows offset by point mode. It is very frustrating!!!! I had to design my own offset tool which was pretty tricky and time consuming.

    Hi Dfortin,

    What do you mean by 'point mode' ?

    Isn't the function dist . mode based?

    Would you be willing to sell your code ?

    (I have many VW9.5 clients and some of my new tools might need the VS10 offsetpoly call).

    PS: I wish the VW offset tool would produce a polyline...

  7. On VectorWorks 10 you have

    FUNCTION ??OffsetPoly

    ( ? hPoly :HANDLE;

    ? ? dist :REAL

    ) :HANDLE ;

    Description: Creates a new polyline or polygon from the referenced poly using the specified offset value.

    [uPDATE: Now I know this function is NOT similar to the Offset Tool]

    [ 10-10-2003, 07:40 AM: Message edited by: Alexandre B A Villares ]

  8. I'm not sure, but I think the clipboard stores objects copied in a sort of Vector-Pict format.

    At least I think I did copy from VectorWorks and paste it in FreeHand some time ago.

    Try cut & paste between VectorWorks and ClarisCAD.

    I didn't get exactly wat you are doing but EPS seems a good idea too.

  9. Once you've got a PIO's record you can even set one of it's parameters value from inside it:

    IF GotPIO THEN SetRField(objectHand, Getname(recordHand), ParameterName, Num2StrF(ParameterNewValue));

    For example, if a boolean parameter PSquare is true, make it set pH to pW...

    Please note that when you set a parameter from inside the PIO it's new value is only noticed at the next redraw, so I would recommend setting a second pair of intermediate variables to do the drawing.




    IF pSquare & GotPIO THEN BEGIN

    SetRField(objectHand, Getname(recordHand), 'H' , Num2StrF(W));



    Rect (0,0,W,H);

    {not Rect(0,0,pW,pH)}



  10. Justin,

    Each parameter on a PIO is already automatically stored as a field at a record attached to each instance of the PIO, you can find this record using:

    GotPIO := GetCustomObjectInfo(objectName, objectHand, recordHand, wallHand);

    {GotPIO is a boolean (true/false) variable I invented just to allow me to use the GetCustomObject function, it stores 'true' if it suceeds.}

    You can see those records when you perform a Custom Selection looking for a Record/Field value, or when you create a Report.

    Create your rectangle PIO or insert some NNA PIOs and have a look at the Custom Selection and Create Report commands at the Organise menu.

    [ 02-23-2003, 07:32 PM: Message edited by: Alexandre B A Villares ]

  11. I wish you a fast recovery Alistair.

    If you are on Windows, have you tried a control panel setting that will switch the right & left mouse buttons?

    On a more general note, I have for many times tought about how to improve VW use by people with disabilities.

    My girlfriend, also an architect, has limited mobility on her right hand. I wonder if someone with good C++ skills could write a small floating pallete utility that could fool Windows into thinking some modifier key is pressed (shift, control, alt, space bar). A Mac version would also be welcome.

    [ 02-10-2003, 07:13 PM: Message edited by: Alexandre B A Villares ]

  12. quote:

    Originally posted by ccroft:


    Oh great! It seems you found it!

    And Name2Index was one of the first things I've tried, and it didn't work. It just never occured to me at that point it was just a question of sign change.

    PS: Won't -Name2Index('Hatch Name') work directly?

    [ 02-09-2003, 07:20 PM: Message edited by: Alexandre B A Villares ]

  13. Hey, have you studied the Constraints Palette?

    For segment division you can use the Snap to distance (double click to see it's preferences).

    It will give the divisons with an Along Line snapping screen hint. Works on lines, arcs, circles and up to some extent on arc-based polylines.

    Another helpful sort of 'construction lines' is brought by the Snap to Edge constraint (also double-click for preferences).

  14. Thanks Raymond!

    Now Walther, your script with Raymonds's contribution and mine, I tested it and there is still something missing...

    I added a Message(I); to see the VectorFill index produced, and the Custom Tool/Attributes generated coge gives much bigger negative numbers...

    Anyone else?


    Procedure CustWall;




    Function GetVectorFillIndex(VFName :String) :Longint;

    { Return a VectorFill index # from a VectorFill name. }

    { Raymond Mullin - 6 February 2003 }


    Done, Match :Boolean;

    I, VFCnt :Longint;

    function UpStr(S :String) :String;

    { An upper string FUNCTION. }



    UpStr := S;

    End; { UpStr }


    VFCnt := NumVectorFills;


    I := 0;

    Match := False;

    Done := VFCnt = 0;

    while not Done do begin

    I := I + 1;

    Match := UpStr(VectorFillList(I)) = VFName;

    Done := Match | (I = VFCnt);


    if not Match then I := 0;

    GetVectorFillIndex := I;

    End; { GetVectorFillIndex }






    AddCavity(TRUE, -7cm, -17cm, -GetVectorFillIndex('My Hatch X'));



    AddCavity(TRUE, -3cm, -7cm, -GetVectorFillIndex('My Hatch Y'));



    AddCavity(TRUE, 7cm, -3cm, -GetVectorFillIndex('My Hatch Z'));




    SetZVals(0cm, 250cm);


    Name:= 'My Special Hatch Below';


    { in this case it is a general pattern that covers the whole wall below the others, something llike a background }









    Run (CustWall);

    [ 02-07-2003, 02:40 PM: Message edited by: Alexandre B A Villares ]

  15. I know that the last argument of AddCavity(TRUE, -0.070, -0.170, # ); is the Fill information (a positive index means Pattern, a negative index means Hatch)

    But I'm stuck with the problem of getting the VectorFill index from the Hatch's name. The oposite is easy (VectorFillList(index: LONGINT):STRING;).

    If you set the Hatches you want for your cavities inside the Wall tool preferences, and then use the Custom Tool/Attributes... command you'll get a script with the correct negative index. But I guess it will not be universally valid for any document.


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...