FrameMixin

Synopsis

This design contains a collection of rules to orient and position a new coordinate system in a number of ways. The new coordinate system can be positioned and oriented relative to the parent's coordinate system. This is accomplished either using input vectors and points to calculate the new coordinate system or by copying the coordinate system from another part .

Mixins

FrameMixinModifier

Parameters

Name Type Description
localFrame frame This the coordinate system of the part that mixes in FrameMixin. It is calculated in this design's group rules or - if none of them are used - it is set to the referenceFrame value.
referenceFrame frame This is the frame object to use as the localFrame if none of the other parameters are being used to determine the new frame . By default, the value of the referenceFrame is this child's parent's localFrame value. By using this default, a new child that does not have its orientation explicitly specified will inherit it from the parent's orientation.
origin point Origin point of the new localFrame value.
xDirection vector X direction vector of the new localFrame. By default this is the 1,0,0 vector in the referenceFrame of this part .
yDirection vector Y direction vector of the new localFrame. By default this is the 0,1,0 vector in the referenceFrame of this part .

Group Rules

<origin> Positions the localFrame based on the origin point .

<xDirection> Orients the localFrame based on the xDirection vector .

<yDirection> Orients the localFrame based on the yDirection vector .

<xDirection yDirection> Orients the localFrame based on the xDirection and yDirection vectors .

<ReferenceFrame> Positions and orients the localFrame to match referenceFrame.

To add additional positioning and orientation rules for custom designs , note there are canonical parameters for %%position and %%orientation. These work independently, so the origin (position) of the coordinate system can be defined independently of the coordinate system's alignment (orientation).

Example 1

Name : frameMixin_Ex01
Design : acDrawingDocument
Name Type Formula
scale number 1
shaftLength number scale * 3/7
Child Name : shaft
Child Design : :Cylinder
Child List ?
Name Type Supplied
Quantity integer 3
axis vector nth(Child.index, {unitX, unitY, unitZ})
height number shaftLength
radius number Child.height / 17
bottomPoint point origin
color string nth(Child.index, {" blue ", " green ", " red "})
Child Name : arrow
Child Design : :Cone
Child List ?
Name Type Supplied
Quantity integer 3
height number scale - shaftLength
radius number Child.height / 5
color string ref(nth(Child.index, shaft), " color: ")
origin point ref(nth(Child.index, shaft), " topPoint: ")
ReferenceFrame frame ref(nth(Child.index, shaft), " localFrame: ")

Example 2

Name : frameMixin_Ex02
Design : acDrawingDocument
Child Name : originAxes
Child Design : :frameMixin_Ex01
Child Name : anObject
Child Design : :Text
Name Type Supplied
Text string "Obj"
charHeight number 1.0
Child Name : newLocalFrame
Child Design : :frameMixin_Ex01
Name Type Supplied
scale number 0.5
ReferenceFrame frame anObject.localFrame

Example 3

Name : frameMixin_Ex03
Design : acDrawingDocument
Child Name : originAxes
Child Design : :frameMixin_Ex01
Child Name : anObject
Child Design : :Text
Name Type Supplied
Text string "Obj"
charHeight number 1.0
origin point Point(0, 0, 2)
Child Name : newLocalFrame
Child Design : :frameMixin_Ex01
Name Type Supplied
scale number 0.5
referenceFrame frame anObject.localFrame

Example 4

Name: frameMixin_Ex04
Design : acDrawingDocument
Child Name : originAxes
Child Design : :frameMixin_Ex01
Child Name : anObject
Child Design : :Text
Name Type Supplied
Text string "Obj"
charHeight number 1.0
yDirection vector unitZ
Child Name : newLocalFrame
Child Design : :frameMixin_Ex01
Name Type Supplied
scale number 0.5
referenceFrame frame anObject.localFrame

Example 5

Name : frameMixin_Ex05
Design : acDrawingDocument
Child Name : originAxes
Child Design : :frameMixin_Ex01
Child Name : anObject
Child Design : :Text
Name Type Supplied
Text string "Obj"
charHeight number 1.0
origin point Point(0, 0, 2)
xDirection vector -unitY
yDirection vector unitZ
Child Name : newLocalFrame
Child Design : :frameMixin_Ex01
Name Type Supplied
scale number 0.5
referenceFrame frame anObject.localFrame