Procedure GetOrigin returns the current origin location relative to the center of the page.
PROCEDURE GetOrigin(
VAR x : REAL;
VAR y : REAL);def vs.GetOrigin():
return (x, y)| Name | Type | Description |
|---|---|---|
| x | REAL | Returns X coordinate of origin. |
| y | REAL | Returns Y coordinate of origin. |
_c_, 2015.05.31: This routine behaves differently across years and usage method:
- until VW 2009: ** used in Commands: returned the User origin shift in current units ** used in Objects: returned {0, 0}
- from VW 2010: ** used in Commands: returns the User origin shift in current units ** used in Objects: returns the User origin shift in millimeters Below an example of reading the user origin shift from within a plug-in object. Save the code below as point Plug-in with Reset On Move and Rotation:
PROCEDURE HereAmI;
VAR
pioHandle, pioRecHandle, wallHandle : HANDLE;
pioName : STRING;
o, s : VECTOR;
BEGIN
IF GetCustomObjectInfo(pioName, pioHandle, pioRecHandle, wallHandle) THEN BEGIN
GetOrigin(o.x, o.y); { on VW 2009 and before this will always be zero when used from within a plug-in object. }
GetSymLoc(pioH, s.x, s.y);
Locus(0, 0);
CreateText(Concat(
'GetOrigin: ', o, Chr(13),
'GetSymLoc: ', s
));
END;
END;
Run (HereAmI);Objects inside Symbols use the reverse of the User Origin. I added a table of the values related to VectorScript origin in the article [http://www.vectorlab.info/index.php?title=Absolute_Origin#Available_routines:Link Absolute Origin], by Gerard Jonker, on VectorLab.
PROCEDURE Example;
VAR
originPt : VECTOR;
BEGIN
GetOrigin(originPt.x, originPt.y);
Message(originPt);
END;
RUN(Example);def Example():
originPtX, originPtY = vs.GetOrigin()
vs.Message(originPtX, originPtY);
Example()Availability: from All Versions