Jump to content
Developer Wiki and Function Reference Links ×

Can anybody help with a simple 2D Path Object


VvierA

Recommended Posts

Hello,

I am a beginner and to start with vectorscript I'd like to make a simple 2D path object. It should work like the standard Vectorworks polygon tool but the polygon should close automatically after creation.

I succeeded to generate a new 'empty' 2d path object with no code yet and to integrate this new tool in my workspace.

Although there is no code yet, I can draw a 2D polygon shape.

The problem is: the shape is invisible. It shows no lines and no filling.

I can select it by 'select all' and it is shown in the info palette but it is not possible to change the appearance to make it visible.

Question:

What code do I have to add to make the path visible respectively to make this 'generic' 2d path behave like the original 2d polygon tool?

Kind regards

VvierA

Link to comment

Thank you Miguel.

If I understand you correctly I have to insert code that draws the lines. And I get the coordinates to draw the lines from the data that is returned by the vertex code.

What confused me was an example I found at vectorlab (Example Nr. 9)

http://www.vectorlab.info/index.php?title=Events#Example_9

It's actually an example to explain Object events but it uses the 2D Path object and so I tried it.

There is lots of object event code inside but strangely I can not find any code for drawing lines or polygons in this script. So how does it work?

Thanks again

VvierA

P.S.

Strange enough the example does not work like it should. It should go 'into 2D Reshape mode on double click' but if I double click an instance of that object it goes into the 'edit path object profile' mode.

Link to comment

In a nutshell:

{ obtain a handle to the path polygon of the object }

gPathHdl:= GetCustomObjectPath(gObjHdl);

{Get polyline data}

vtxTot:= GetVertNum(gPathHdl);

ALLOCATE gPlineList[1..vtxTot];

FOR i:= 1 TO vtxTot DO

BEGIN

GetPolylineVertex(gPathHdl, i, gPlineList.ptX, gPlineList.ptY, gPlineList.vtx, gPlineList.rad);

gPlineList.vis:= GetVertexVisibility(gPathHdl,i-1);

END;

.....

.....

DrawPolyline;

Link to comment

Thank you very much Miguel.

In the meantime I examined the script of Example 9 and succeeded to make an alternative solution to generate a 2D path by duplicating the drawn vertex path (see code below).

Anyway I am looking now for a way to automatically close the polygon.

Do you know a way to 'access' the 'close'-Checkbox via Vectorscript?

VvierA

PROCEDURE 2dpath;

VAR

theEvent, theButton :LONGINT;

result :BOOLEAN;

objHand, recHand, wallHand, pathHand, dupeHand :HANDLE;

objName :STRING;

BEGIN

IF GetCustomObjectInfo(objName, objHand, recHand, wallHand) THEN

BEGIN

pathHand := GetCustomObjectPath(objHand);

dupeHand := CreateDuplicateObject(pathHand, objHand);

END;

END;

Run(2dpath);

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...