In some aggregations, objects are linked with relationship objects which reference related components. Relationship objects include attributes and methods for positioning related components and analyzing and validating the relationship between the components.
seq { <1 or more Objects> }
- Returns
- <object> Constructs a neighborhood aggregation encapsulating all objects within the brackets into a nested scope. The value of the last object in the sequence is returned as the value of the sequence. To export any other object, the object must be labeled using the ":*" operator. See the discussion on sequence statements for more information about the syntax and semantics of this constructor.
- Objects
- <object> Any object may be defined or inserted into a neighborhood aggregation.
entity { <generic objects> }
- Returns
- <entity>Abstract class platform for entity objects. A entity is an association of location and orientation, geometry, constraints, and functionality which describes a class or instance of design objects. Location and and orientation are mandatory attributes of this object. Functionality is generally specified in a subclass. Geometry is implicitly associated with the functionality, explicitly attached, or not necessary.
Example aa1_hole:entity( hole( base_anchor, 2*aa_radius, arm_width, 0, true ));
partSeq { <1 or more Entities>; < 0 or more Attachments>; < 0 or more Objects>>; }
- Returns
- <aggPart> Constructs a part aggregation encapsulating all objects within the brackets into a nested scope. All entities that are linked with attachments are aligned and inserted into a tree structure representing the part hierarchy. The entities, attachments, and objects may be interspersed in the sequence. To export an object, the object must be labeled using the ":*" operator.
- Entities
- <entity> An entity object is created with the available entity constructors or by wrapping any object in the system into a generic entity. An entity may be another aggregation object.
- Attachments
- <attachment> An attachment object is created with the partof constructor to link a child entity to its parent. The attachment also includes a location anchor for positioning the child relative to the parent. The parent entity of the first attachment in the part sequence is used as the base entity from which all other entities are positioned.
- Objects
- <object> Additional objects may be included in the aggregation that are not linked with attachments, but are still part of the part aggregation scope.
assemblySeq { <2 or more Entities>; <1 or more Interfaces>; <0 or more Objects>; }
- Returns
- <aggAssembly> Constructs an assembly aggregation encapsulating all objects within the brackets into a nested scope. All entities that are linked with interfaces are aligned and inserted in the assembly structure. The entities, interfaces, and objects may be interspersed in the sequence. To export an object, the object must be labeled using the ":*" operator.
- Entities
- <entity> An entity object is created with the available entity constructors or by wrapping any object in the system into a generic entity. An entity may be another aggregation object.
- Interfaces
- <interface> An interface specification object is constructed with the intfcSeq constructor to link two interacting entities in an assembly.
- Objects
- <object> Additional objects may be included in the aggregation that are not linked with interfaces, but are still part of the assembly aggregation scope.
assembly { <0 or more Entities>; }
- Returns
- <agg_assembly> Constructs an assembly aggregation encapsulating all objects within the brackets into a nested scope. All entities that are linked with interfaces are aligned and inserted into a list structure representing the assembly. The entities, interfaces, and objects may be interspersed in the sequence list. To export an object, the object must be labeled using the ":*" operator.
- Entities
- <entity> An entity object is created with the available entity constructors or by wrapping any object in the system into a generic entity. An entity may be another aggregation object.
partOf( Parent, Location, Child, Operation )
- Returns
- <attachment> Creates a link between the parent and child and describes the location of the child relative to the parent.
- Parent
- <entity> A reference to the parent entity.
- Location
- <anchor> The location and orientation of the child relative to the parent.
- Child
- <entity> A reference to the child entity.
- Operation ("noop")
- <string> Optional. One of the set "+", "-", "*", or "/". These are interpreted as union, subtraction, intersection, and "cut," respectively. The cut operation uses the second object to cut a hole out of the first one, but no surfaces from the second object are included in the result (like a cookie cutter).
part( Base, Attachments List, [Orientation] )
- Returns
- <aggpartobj>
- <entity> Entity serving as base component.
- Location
- <attachment> List of attachments.
- Orientation
- <string> Optional. Orientation of part.
intfcPos( Location, Feature )
- Returns
- <interface | entity> Defines a feature for the positive side of an interface along with its location relative to the base of the interface.
- Location
- <anchor> The location and orientation of the feature relative to the interface.
- Feature
- <entity> A reference to the feature or entity for the positive side of the interface.
intfcNeg( Location, Feature )
- Returns
- <interface | entity> Defines a feature for the negative side of an interface along with its location relative to the base of the interface.
- Location
- <anchor> The location and orientation of the feature relative to the interface.
- Feature
- <entity> A reference to the feature or entity for the negative side of the interface.
intfcSeq { Joint; Positive; Negative; <1 or more Entities>; <0 or more Attachments>; <0 or more Objects> }
- Returns
- <interface> Constructs an interface aggregation encapsulating all objects within the brackets into a nested scope. The joint describes the relative motion between the two sides of the interface. The interacting entities and features are specified as the positive and negative sides of the interface. All entities that are linked with attachments are aligned and inserted into a tree structure representing the interface part hierarchy. The interface features, entities, attachments, and objects may be interspersed in the sequence. To export an object, the object must be labeled using the ":*" operator.
- Joint
- <joint> A previously defined joint describing the relative motion between the two sides of the interface.
- Positive
- <interface | entity> The feature or entity associated with the positive side of the interface along with its location relative to the base of the interface. The positive interface entity is specified with the intfcPos constructor.
- Negative
- <interface | entity> The feature or entity associated with the negative side of the interface along with its location relative to the base of the interface. The negative interface entity is specified with the intfcNeg constructor.
- Entities
- <entity> An entity object is created with the available entity constructors or by wrapping any object in the system into a generic entity. An entity may be another aggregation object. Entities are specified with the entity constructor.
- Attachments
- <attachment> An attachment object is created with the partof constructor to link a child entity to its parent. The attachment also includes a location anchor for positioning the child relative to the parent. The parent entity of the first attachment in the part sequence is used as the base entity from which all other entities are positioned.
- Objects
- <object> Additional objects may be included in the aggregation that are not linked with attachments, but are still part of the part aggregation scope.
<aggregation>::<component_name>Some entity and object members may be accessed by the member names. Member access expression are of the form:
<entity>.<member_name>More information on accessors is available at the Accessors in C_Shape_Edit manual page.
<interface_object>.posEntity
- Returns
- <entity> The entity or feature representing the positive side of the interface.
<interface_object>.negEntity
- Returns
- <entity> The entity or feature representing the negative side of the interface.
combine( Aggregation, TriApxFlag, Res )
- Returns
- <shell> Iterates through an interface, part, or assembly aggregation and recursively performs the set operations specified in the attachment relationships.
- Aggregation
- <interface | aggPart | aggAssembly> The interface, part, or assembly aggregation for which to combine components.
- TriApxFlag (false)
- <boolean> Optional flag. If true, surface intersections are based on polygonal (triangular) approximations to the surfaces. This method works better on some models based on mechanical features.
- Res (0.025)
- <number> Optional. If TriApxFlag is true, then Res is used as the resolution to be used in computing the surface approximations. Smaller numbers produce better approximations.
checkInterference( entity_chk, [entity_chk_against 1] )
- Returns
- <boolean> Check for interference in part, interface, or * assembly.
- entity 1, 2
- <entity> entity to check, entity to check against (optional).
validateForces( assembly, [interface_chk_against] )
- Returns
- <boolean> Validate forces for an interface.
- assembly
- <agg_assembly_obj> assembly aggregation
- interface_chk_against
- <interface_obj> interface to check (optional)
revolute( rotLimit, currAngle )
- Returns
- <revolute> A revolute joint constraint. A revolute joint provides one rotational degree of freedom around a single axis of rotation. The axis of rotation is the Z axis of the orientation anchor.
- rotLimit
- <number> Maximum rotation angle
currAngle <number> (Optional) The current (initial) angle of the joint # Robotic arm example for kinematic analysis #parameters << arm_width : 1; arm_height : 1; arm_length : 4; arm_length2 : 6; arm_length3 : 8; aa_radius : arm_width / 5; base_anchor : ZAnchorFromPt( origin ); >> << # Specify the basic interfaces between arm members. # Revolute joint with 180 degrees of rotation aa_joint : revolute( 180, 0 ); aa1_joint : revolute( 180, 45 ); aa2_joint : revolute( 180, 35 ); aa3_joint : revolute( 180, 0 );
spherical( xRotLimit, yRotLimit, zRotlimit, currXRot, curYRot, currZRot )
- Returns
- <spherical> A spherical joint constraint. A spherical joint provides three rotational degrees of freedom around the orientation base point.
- xRotLimit, yRotLimit, zRotLimit
- <number> The limits on rotation angles of the joint.
- currXRot, curYRot, currZRot
- <number> (Optional) Current rotational positions of the joint.
prismatic( distLimit, curDist )
- Returns
- <prismatic> A prismatic joint constraint. A prismatic joint allows one translational degree of freedom along a single axis of translation. The axis of translation is the Z axis of the orientation anchor. The base of the joint is centered at the origin and represents one extreme of the translational distance. The other extreme is at a specified distance along the Z axis.
The objects forming both the protrusion and the hole or slot side of the joint must be attached within the two translational extremes.
- distLimit
- <number> The maximum translation distance.
- currDist
- <number> (Optional) The current translation position.
rigid()
- Returns
- <rigid_obj>
against( Xdist , Ydist )
- Returns
- <against_obj>
- Xdist,Ydist
- <num> translational distance
force( value, orientation )
- Returns
- <agg_force_obj>
- value
- <value>
- orientation
- <anchor>(Optional). Z axis is default.