Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

Object Reference Point VBscript

New Here ,
Aug 19, 2008 Aug 19, 2008
How do you change the reference point of an object? The problem is when I use the move command (example, myCurrentObject.move Array(myLabelX + 2, myLabelY)) the move works fine as long as the reference point is the TopLeft corner.
Thanks,
Archie
TOPICS
Scripting
1.2K
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Aug 19, 2008 Aug 19, 2008
Sorry, i can only help with javascript. But perhaps it's similar.

app.layoutWindows[0].transformReferencePoint = AnchorPoint.TOP_RIGHT_ANCHOR;

app.layoutWindows[0].transformReferencePoint = AnchorPoint.TOP_LEFT_ANCHOR;

app.layoutWindows[0].transformReferencePoint = AnchorPoint.BOTTOM_LEFT_ANCHOR;

app.layoutWindows[0].transformReferencePoint = AnchorPoint.BOTTOM_CENTER_ANCHOR;

app.layoutWindows[0].transformReferencePoint = AnchorPoint.LEFT_CENTER_ANCHOR;

app.layoutWindows[0].transformReferencePoint = AnchorPoint.CENTER_ANCHOR;

app.layoutWindows[0].transformReferencePoint = AnchorPoint.RIGHT_CENTER_ANCHOR;

...
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Aug 19, 2008 Aug 19, 2008
How does it fail? Moving the object using the bottom right anchor yields the same effect, shouldn't it?

For [object].flip and [object].transform you have to specify an anchor point, and that seems logical, as you can flip and/or rotate around any of the corners, but for move it seems obsolete.
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Aug 19, 2008 Aug 19, 2008
But changing the anchor point won't affect the behavior of the move command. It always moves the top-left to the point you specify. You have to work out the geometry yourself.

Dave
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Aug 19, 2008 Aug 19, 2008
Thanks for everyone's response. I will try to better explain. I have different templates, one for each stamp (rubber stamp) size. Depending on the size of the stamp the number of columns and rows on the template maybe different. The stamps are text boxes treaded together. I create the tagged text file to import the stamps. The problem yesterday was with a template that has 2 textframes that are rotated 90 degrees and 3 textframes that are rotated 0 degrees (5 stamps on template). After the stamps are edited I use a script to create the labels that go on the stamp handles. The script copies the stamps to a new page using the duplicate command, if the stamp is rotated it puts it back to 0 rotation. After duplicated the stamps it then moves them to fit on the page of labels, then uses the transform command to reduce them to fit on the label.
The problem is on the ones that are rotated 90 degress it some times uses the Top Right instead of Top Left (the textframes may have artwork added to the frame, then grouped). Below is the code used for the move.
Thanks,
Archie

Rem MOVE STAMPS TO LABEL LOCATION FUNCTION
Rem --------------------------------------
Function myMoveStamps (myLabelDocument, myLabelCols, myLabelRows, myLabelStartX, myLabelStartY, myLabelWidth, myLabelHeight, myLabelHorizontalSpace, myLabelVerticalSpace, myLabelPercent, myLabelHorizontalOffSet, myLabelVerticalOffSet, myMountNumber)

K = 0
For I = 1 to myLabelCols
For J = 1 to myLabelRows
K = K + 1
If K <= cInt(myMountNumber) Then
Set myCurrentObject = myLabelDocument.PageItems.item(cStr(K))

myObjectBounds = myCurrentObject.GeometricBounds

myObjectWidth = myObjectBounds(3) - myObjectBounds(1)
myObjectHeight = myObjectBounds(2) - myObjectBounds(0)

myLabelX = myLabelStartX + (myLabelWidth / 2) - (myObjectWidth / 2) + ((I-1) * myLabelHorizontalSpace) + myLabelHorizontalOffSet
myLabelY = myLabelStartY + (myLabelHeight / 2) - (myObjectHeight / 2) + ((J-1) * myLabelVerticalSpace) + myLabelVerticalOffSet
myCurrentObject.move Array(myLabelX + 2, myLabelY)
set myScaleMatrix = myInDesign.TransformationMatrices.Add(cDbl(myLabelPercent), cDbl(myLabelPercent))
myCurrentObject.Transform idCoordinateSpaces.idPasteboardCoordinates,idAnchorPoint.idCenterAnchor, myScaleMatrix

End If
Next
Next

End Function
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Aug 20, 2008 Aug 20, 2008
LATEST
I think I have found the solution listed below.
Thanks,
Archie

myRotation = myCurrentObject.AbsoluteRotationAngle
If myRotation <> 0 Then
myLabelX = myLabelX + myObjectWidth
End If
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines