VS:BeginXtrd

From Vectorworks Developer
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

.VectorScript|VectorScript ..VS:Function Reference|Function Reference ..VS:Function_Reference_Appendix|Appendix

Description

Procedure BeginXtrd creates a 3D extrude object in a VectorWorks document. BeginXtrd uses 2D object creation procedure calls to define the "template" for the object.

You should call EndXtrd after the object creation procedures to complete the definition and generate the extrude object in the document.

PROCEDURE BeginXtrd(
startDistance :REAL;
endDistance :REAL);
def vs.BeginXtrd(startDistance, endDistance):
    return None

Parameters

startDistance REAL Start distance from document ground plane.
endDistance REAL End distance from document ground plane.

Example

VectorScript

PROCEDURE Example;
VAR
h1, h2, h3 :HANDLE;
int :INTEGER;
BEGIN
DSelectAll; BeginXtrd(0, 1); CallTool(-203); h1 := FSActLayer; EndXtrd;
DSelectAll; BeginXtrd(0, 1); CallTool(-203); h2 := FSActLayer; EndXtrd;
int := AddSolid(h1, h2, h3);
END;
RUN(Example);

Python


Another example which will be handy for creating hybrid objects from within plug-ins:


{ ***************************************** }
{ Orso.B.Schmid, creates an extrude from a HANDLE h,
  preserving the original h. Returns a handle to the extrude }
FUNCTION Create3Dobj(h: HANDLE; z, dZ: REAL): HANDLE;
BEGIN
  IF h <> NIL THEN BEGIN
    BeginXtrd(z, dZ);
      LineTo(1, 1); { just draw something for creating an extrude container }
    EndXtrd;

    DelObject(FIn3D(GetParent(CreateDuplicateObject(h, LNewObj))));
    { places a copy of h in the extrude and deletes the line }

    Create3Dobj := LNewObj;
  END;
END;

Python


Version

Availability: from All Versions

See Also

VS:EndXtrd

[[VS:EndXtrd]]