Actin  Version 5.5.5
Software for Robotics Simulation and Control
Legacy Actin SolidWorks Converter Guide


The Actin SolidWorks Converter is a tool for converting SolidWorks models to the Actin XML format. This format can be loaded into the Actin viewer (see Figure 1) or utilized by other Actin applications which are created with the Actin libraries and header files. The converter is a SolidWorks add-in that is visible after selecting “Tools/Add-Ins” and checking “Actin” (see Figure 2). Once loaded, an Actin menu and toolbar options become visible.

The left picture shows a hexapod model within SolidWorks and the right picture shows the converted hexapod model within the Actin viewer
Add-Ins Menu

The conversion process captures the physical extent and joint information of the model and other SolidWorks data such as color and mass properties. The documentation below is divided into two parts: 1) a quick start guide that shows the minimal steps necessary to convert a model to Actin, and 2) a reference section that more thoroughly covers the options available to the developer.

Quick Start Guide

Model Setup

Step 1: Label Each Joint

SolidWorks provides many options for mating parts together into assemblies. During the conversion to the Actin format, these mates are analyzed to determine which parts are combined into manipulator links and to determine the joint definitions between the links. To simplify the analysis, mates associated with joints are identified by a prefixed label. This label has the following syntax:

EcJoint groupTag

EcJoint is a keyword and groupTag is a user-define alphanumeric tag that groups the mates associated with a single joint. If the EcJoint label is present for any mate, that mate description is added to a joint. If the label is not present, the mated parts are combined into a link. More than one mate is necessary for defining a joint. The group tag identifies collections of mates for each joint.

All mates contain information describing which mate entities to connect. The Actin converter only recognizes mate entities that are parts. For example, if a part is mated to an assembly, or an axis or reference plane not associated with a part, the mate is ignored. Connecting parts is a requirement because assemblies do not map well to links. Assemblies can represent a subset of a link or contain multiple links. To resolve any ambiguities, the converter only utilizes mate information tied to parts.

Figure 3 shows the mates for one leg. This hexapod has 4 joints per leg. Three are in the leg subassembly and one is in the higher level assembly where the legs are attached to the base. As can be seen, there are three joints in the mate list. Each of the three joints is defined by a coincident, concentric, and an optional angle limit mate. Note: a distance mate can be used in lieu of a coincident mate. If no limit angle mate is defined, the joint limit defaults are infinite which is useful for wheels.

Mate group. Mates associated with joints are prefixed with the keyword “EcJoint” and a joint grouping tag. It is recommended that mates be grouped into mate folders to help with organization and finding associated mates.

Step 2: Defining a Reference Frame for End Effector

End effectors are added through named coordinate systems or points in a part model. The end effector points are set through an offset reference point named “End Effector”. Figure 4 illustrates where the reference point is placed for the hexapod arm. The feature manager in the left graphic shows the name of the end effector part at the top and the reference point at the bottom. Figure 5 illustrates how the reference point is added to the part. SolidWorks provides a flexible capability for adding reference points as illustrated in the figure. Figure 6 shows how the guide frame is nicely placed on the tip of the end effector in the location of the reference point. This provides an intuitive approach to placing the end effectors. Named coordinate systems for end effector frames can be added through a similar approach.

Step 3: Fill in the Property Manager Page (PMP)

Several parameters can be set through a property manager page. Figure 7 illustrates how to get to the Actin Property Manager Page by selecting “Actin/Show Actin PMP” from the menu.

Figure 8 shows the top level inputs available through the Actin Property Manager Page. At a minimum, the Actin output file name and base part needs to be set. If these are not set, the output file name is default.ecz and the base part is the first part found in the feature manager. If the mass properties filename is left blank, SolidWorks mass properties pass through to the Actin file.

For a fixed base robot, select a base part from the fixed base of the robot. For mobile robots, select a base part as desired. Figure 8 highlights in green the selected base part for the mobile hexapod robot.

View of the end effector reference point. The Feature Manager (left) shows the named “End Effector” reference point at the bottom of the list. The figures to the right show the placement of the end effector point.
Illustration of how to add a reference point. Select “Point” from the toolbar at the top, which opens a property manager to the left. SolidWorks provides options for placing the point. In this example, two edges are selected and the intersection option is used to place the point. Once complete, rename the reference point in the Feature Manger to “End Effector”. The converter uses this name, “End Effector”, to pull points and coordinate systems for end effectors.
Illustrates the before and after of the end effector reference point attachment. Notice that the end effector guide frame in the right figure is placed nicely at the tip of the end effector, whereas it was previously in the center of the link.

The SolidWorks API can facilitate the setting of the base part. If the base part is selected through the Feature Manager design tree (see Figure 9), the Actin Property Manager Page will extract the name of the selected part and initialize the base part to the selected part (see Figure 8 – “base-2”). Selecting the base part through the Feature Manager is recommended instead of selection through the main window, because it is difficult to select a whole part in the main window. Typically faces, edges, and vertices (not whole parts) are selected through the main window. If this process produces unexpected results, the user can test the part selection through the “Actin/Name Selected Part” menu. This menu feature prints the selected part name to the screen. If there is a problem with the selection, this command will provide feedback to the user.

By selecting “Actin/Show Actin PMP” or the PMP icon, the user can configure the conversion process.
Illustration of the top level inputs.
Illustration of selecting the base part in the Feature Manager. The selected part is highlighted in blue in the Feature Manager and green in the main window. If the Property Manager Page is opened, the base part field will automatically be filled with the selected part (i.e., base-2).

Model Conversion

The converter menu contains five options: 1) convert the model, 2) open the property manager page, 3) capture a part list, 4) identify the selected part, and 5) show the current working directory (see Figure 10). The first two menu options are also executable through the “Actin” toolbar (see Figure 11). Table 1 provides a description of the Actin menu and toolbar options.

To convert the model, select “Actin/Convert to Actin” from the menu or select the first icon. The conversion time takes approximately 1 second and the file output, hexapod.ecz, is about 400 KB for the current model. Once hexapod.ecz is created, it can be viewed by the Actin viewer and the manipulator can be commanded to perform various actions. The Actin libraries and headers can also be used to create new applications of which the Actin viewer is just one of them.

Execute Conversion. Conversion can be executed through the menu or toolbar.
Illustration of the Actin toolbar.

Description of the Actin menu and toolbar.

Converter Menu Converter Toolbar Description
Convert model
Show Actin PMP
Show Actin property manager page
List Parts No toolbar option Create part list in EcPartList.txt
Name Selected Part No toolbar option Show name of selected part
Current Working Directory No toolbar option Show the current working directory

Reference Guide

Property Manager Page Parameters

The converter comes with a Property Manager Page (PMP) that enables the developer to set several parameters. The PMP has three groups: Top Level Inputs (Table 2, Figure 8), Visualization Parameters (Table 3, Figure 12), and System Options (Table 4, Figure 13).

Group 1 input parameters. These are mandatory top level settings.

Property Name Description Default
Model Name Name of model (e.g., hexapod). Currently, this is only used as the base name for the output file (e.g., hexapod.ecz). “default” which creates a file called “default.ecz”
Base Part Name of base part. The base part defines the base link which is needed by the simulation and control system. Setting this parameter is described in Section 2.1.3. First part in FeatureManager design tree.
Mass Properties Filename Filename for an Excel XML spreadsheet. The default is no filename. With no filename, the converter uses SolidWorks mass properties. The keyword “Actin” can also be used to have the converter use Actin to estimate the omass properties. The keyword “ActinMerge” converts with SolidWorks mass and CG, and Actin second moments.

Group 2 visualization parameters

Property Name Description Default in *Bold
Eye Point Eye point vector which defines the location of the eye point. 10 0 0 (meters)
Center of Interest Center of interest vector which defines the point being viewed.0 0 0 (meters)
Field of View Field of view angle in radians. 0.2 (radians)
Guide Frame Size of guide frame that is placed on end effector. 0.2 (meters)
Sphere Radius Radius size of center-of-interest sphere. This center of interest sphere can be moved around in the Actin viewer to viewer different locations. 0.2 (meters)
Up Vector Definition of “Up”. This defines both the orientation of the model in Actin and the gravity vector. 0 1 0 (y-axis is up)
Render Both Sides Flag for rendering both sides of faces y or n
Part Rendering Default Render part flag. If false, model is invisible. y or n
Visualization parameters

Group 3 system options

Property Name Description Options Default in *Bold
Reference Link Reuse links in Actin model to reduce file size. For the hexapod, five of the legs can reference one leg. y or n
Base Frame Mode Mode for placement of base link primary frame: 0 – system origin 1 – mass properties 2 – SolidWorks link frame 0 1 2
Base End Effector Mode Mode for placement of base end effector:
0 – point at primary frame
1 – point at system origin
2 – point at link frame
3 – point at mass property frame.
This is overridden by placement of a named point or coordinates system in the link (see Section 2.1.2)
0 1 2 3
Link Frame Mode Mode for placement of link primary frames:
0 – DH frame (translation only)
1 – mass property frame
2 – SolidWorks link frame
3 – system origin
4 – DH frame
0 1 2 3 4
Joint Mode Mode for definition of joint limits:
0 – joint limits are symmetric about zero
1 – joint position initiated to zero
2 – lower limit is zero
0 1 2
End Effector Mode Mode for placement of end effectors:
0 – put end effectors at leaf nodes (ignore other named end effectors)
1 – put end effectors at named end effectors (ignore leaf nodes unless they have named end effectors)
0 1
Bounding Volume Mode Mode for creation of bounding volumes:
0 – one bounding volume capsule per link
1 – one bounding volume capsule per part
2 – one bounding volume capsule per body.
For a given link, the default can be overridden by a union extent definition in a comment (see comment sections below).
0 1 2
Fixed Base Yes for fixed base robots and No for mobile robots. y or n
System options

The Top Level Inputs have three important parameters to set. Table 2 has a brief description of each but the mass properties input deserves further explanation.

Mass Properties

There are four methods of defining mass properties through the conversion process: 1) use SolidWorks defined mass properties, 2) set the mass properties for each link through a spreadsheet, 3) let Actin define the mass properties, and 4) merge SolidWorks and Actin mass properties. By leaving the mass properties filename blank in the PMP, SolidWorks will define the mass properties. Figure 14 shows the SolidWorks mass properties in the Actin viewer through ellipsoids with representative center of mass, size, and orientation.

Option 2 enables use of an Excel XML file by placing the filename in the mass properties field of the PMP. An example Excel sheet is in Figure 15. The spreadsheet has a tab with mass properties for each link in the robot. The file needs to be saved as an XML file for the converter to use it.

Option 3 enables use of Actin for setting the mass properties. This is done by placing the keyword “Actin” in the mass properties field. This option was primarily added to assist with SolidWorks models that contain surface bodies (not solid bodies). Surface bodies do not have mass properties and oftentimes SolidWorks sends bad data for surface bodies to the converter. If the model has surface bodies, it is recommended that Option 2 or 3 be used.

Option 4 is selected by using the keyword “ActinMerge”. SolidWorks enables the override of mass and CG. Option 4 is helpful when using SolidWorks to override the mass and CG. Actin can then use this information to set approximate second moments.

Mass Properties Illustration. The left figure shows the default model and the right figure shows mass property ellipsoids overlaying each link. This visual approach to viewing the mass properties is a valuable verification tool.
Spreadsheet Illustration. This spreadsheet illustrates the format for setting mass properties by link. Use “Save As” to convert to an XML file which the SolidWorks converter can use.

Part Features

Part features are features defined in part files. Table 5 describes the part feature options that Actin recognizes. Section 2.1.2 shows an example end effector part feature.

Part features

Part Feature Description
End Effector This is a named point which defines the placement of a point end effector.
End Effector Point This is a named point which defines the placement of a point end effector.
End Effector Frame This is a named coordinate system which defines the placement of a frame end effector.
End Effector Linear Constraint This is a named point which defines the end effector as a linear constraint.
End Effector XY This is a named coordinate system which defines the placement of an XY end effector.
Mass Properties This is a named coordinate system which defines the placement of a mass property frame. This is used in conjunction with Excel mass properties.
EcNamedPoint Named points and frames are combined into the links and can be used for advanced programming.
EcNamedFrame Named points and frames are combined into the links and can be used for advanced programming.

Settings for Parts and Links

There are two types of part settings: XML comments and parameters setting through the File Properties button. Table 6 describes the XML comments and Table 7 describes the File Properties.

XML comments

Comment Name Description
ecShapeUnion Extent union defines a bounding volume tree for a part.
ecSpringProperties Spring properties define joint properties for the link containing the part. Spring and damper properties are used by dynamic simulation.
ecDamperProperties Damper properties define joint properties for the link containing the part. Spring and damper properties are used by dynamic simulation.
ecSurfaceProperties Surface properties can be defined for a link through this xml comment.

Link and Part Level Settings Using File Properties

Field Name Description
ecLinkLabel Name for the link.
ecHidePart If ‘n’, use default in PMP. If ‘y’, make part invisible.
ecBoundingVolumeOverrideLinkMode If 1, override link bounding volume with part bounding volume. If 2, override link with fitted capsule.
ecBoundingVolumeOverridePartMode If exists, part bounding volume will be ignored.
ecFrictionCoefficient Friction Coefficient of parent joint.

Shape unions are useful for defining bounding volumes for a link. Figure 16 shows an example bounding volume definition for a hexapod foot. Figure 17 shows how SolidWorks measurements are taken and the data can be used as-is in the comment. Figure 18 shows the change from the default bounding volumes. The left figure shows the defaults and the right figure shows the change in foot bounding volumes. Figure 19 shows example surface properties.

Example shape union comment.
Example measurement used to get data for bounding volume. This data is used in the comment in the previous figure.
Left figure shows the default bounding volume. Right figure shows the replacement of the end effector bounding volumes.
Example surface properties comment.

Through SolidWorks, a joint can be defined as a spring and damper. This is done by adding comments to the child link of a joint as shown if Figure 20. Figure 21 and Figure 22 show the comments for the spring and damper.

Illustration of spring and damper comments in the feature manager.
Example spring properties comment.
Example damper properties comment.

Settings for Assemblies

Table 8 shows the two assembly comment options for relative links and linear constraints. Table 9 shows File Property setting for assemblies. Table 10 shows File Property settings that only apply to root assemblies.

Assembly comments

Comment Name Description of contents
ecRelativeToLink One or more pairs of links can be listed that define relative links. The first link in the pair defines the relative link. The second link in the pair is the link being followed.
ecLinearConstraint One or more pairs of links can be listed that define a relative linear constraint. The first link in the pair defines the relative linear constraint. The second link in the pair is the drivable link being followed.
ecLinearConstraintSeed Multiple relative linear constraints can be added and tied to a seed through the use of the keyword “seed”.
ecAddLinearConstraint Adds one linear constraint per row. Each row contains a part name.
ecAddPointEndEffector Adds one point end effector per row. Each row contains a part name and optional point (i.e., name : x y z)
ecPattern Patterns are mapped to seeds. Each row is a pattern or seed. Seeds are identified by the keyword “seed”.
ecLinkLabel Labels can be added to links through a part-label pair. The part name is on the first line and the label is on the second line.
ecSpringProperties Spring properties define joint properties for the link containing the part. Spring and damper properties are used by dynamic simulation. The first line is a part name followed by XML for the spring.
ecDamperProperties Damper properties define joint properties for the link containing the part. Spring and damper properties are used by dynamic simulation. The first link is a part name followed by XML for the damper.

Assembly Level Settings

Field Name Description
ecLink This option has two modes: -Hide: Turn off rendering for whole assembly. -Combine: Combine whole assembly into one link. -Both modes can be activate at the same time.

New Top-Level Assembly Settings

Field Name Description
ecTimeStep Top level time step for the simulation and dynamic simulation.
ecDynamicSimulationFlag Flag for turning on or off the dynamic simulation.
ecLegacySimulationFile This XML file generally represents a previously tuned simulation file. The bounding volumes are pulled from it and reused in the new conversion.
ecBvMapFile This text file contains mapping of prior link names to current link names. Each line contains a pair of strings for each link that represent a current link name and a legacy link name. For example, say the new model adds a new base link. The new file needs shifted bounding volumes like the following: link-1 skip link-2 link-1 link-3 link-2 "#” can be used to comment out a line
ecControlSystemFile This XML file contains a previously tuned control system.

Figure 23 shows an example pair of links for a relative link definition. This is defined in the hexapod top level assembly and it constrains the foot of leg 5 to the foot of leg 6. All of the feet of the hexapod can be constrained to the foot of leg 6 by adding link pairs to the comment for feet one through five.

Comment example for relative link

Figure 24 shows an example pair of links for a linear constraint definition. This is defined in the leg assembly and it constrains the third and fourth links. That is, the third link is constrained to the fourth link, and the fourth link is the drivable link. As a prerequisite for defining linear constraints such as this, both links need a linear constraint end effector defined inside one of its part models. Multiple linear constraints can be added similarly to the relative link approach.

Comment example for linear constraint

Mate Labels

Table 11 shows the mate label options and Table 12 shows the EcJoint identifier options. An example of defining a joint is in Section 2.1.1. Revolute and prismatic joints are defined in a similar way as described in the table below. Quadrilateral joints are defined in the following section.

Mate labels

Mate Label Description
EcJoint Defines a joint mate. Depending on the grouping of mates, the joint can be a revolute or prismatic joint. Section 2.1.1 illustrates this label.
EcJointRotational This label specifically defines a revolute joint. The mates in the group need to include a concentric, and coincident or distance mate. A third mate is option. It can be an angle limit, symmetric, or rack-pinion mate.
EcJointPrismatic This label specifically defines a prismatic joint. The prismatic joint can have a rectangular or circular rail. For rectangular rails, the mates in the group need to be two coincident (or distance) mates for defining the rectangular rail and a distance limit mate. For circular rails, the mates in the group need to be a concentric mate for defining the circular rail, a coincident or distance mate for constraining the rotation about the rail, and a distance limit mate.
EcJointPivotedSlider This label identifies a quadrilateral joint. Section 3.6 describes this type of joint.
EcJointCircular This label enables circular chains like in quadrilateral joints.

Sometimes it is helpful to skip mates or suppress joints. For example, some mates may create circular chains in the SolidWorks model. Instead of suppressing the mate through SolidWorks, a “skip” identifier can be used (Figure 25). Also, a developer may want to temporarily deactivate a joint without suppressing the mates through SolidWorks. Adding a “suppress” identifier to the mate or mate folder can be used for this purpose (Figure 26). That is, name the mate folder “EcJoint suppress”. Any string can be added after “EcJoint”. For example, “EcJoint1 suppress” will work.

EcJoint identifier options

EcJoint ID options Description
skip Skips the mate
suppress Suppresses all joints in the folder
Example of skipping a mate
Example of suppressing a folder of joints

The mate folder for joints can also be given an option for changing the joint sense and limits. Table 13 shows the options.

Sense and Joint Limit Options

EcJoint ID options Description
A Reverse joint sense
B Reverse joint limits
C Reverse joint sense and limits

Prismatic Joints

Prismatic joints are constructed similarly to revolute joints. Three mates are required to fully constrain the joint. Take the circular rail in Figure 27. The concentric mate illustrated in Figure 28 defines the prismatic axis of motion. The coincident mate illustrated in Figure 29 adds a constraint to stop rotation about the prismatic axis. The distance limit defines the prismatic range of motion. For rails that are rectangular instead of circular, the concentric mate is replaced with another coincident mate. The two coincident mates define planes that have normal vectors. The cross product of the normal vectors defines the prismatic axis of motion.

Prismatic joint example
Concentric mate illustration
Coincident mate illustration


Flipped Mates

SolidWorks presents issues with mate flipping that sometimes flips the joint limits and changes the sense of the joint rotation. Figure 30 illustrates the issue. In the current configuration, the mate is defined at zero with limits of +/- 90 degrees. The flip flag is undefined at zero and the direction of positive rotation is undefined. During conversion, the joint limits can also be swapped which is not an issue for this example because the limits are symmetric.

To resolve this issue, choose a different mate configuration that puts the limits between 0 and 180 degrees with the mid-point at 90 degrees. In this case, using the right plane of link1-1 instead of the top plane would work (Figure 31). In the end, the model will look the exact same but the flip flag will be defined.

Mate with a “flip” problem.
Mate resolution for “flip” problem.

Unused Parts

If after conversion of a model to Actin, parts are found to be mated to the base instead of the correct link, then the part is either unmated or none of its mates connect to another part that is mated to a link.

Many models have unmated parts. When that occurs, Actin mates the part to the base by default. If that is an incorrect assumption, supply a mate to a part connecting it to the correct link. The part does not need to be fully mated in all six degrees of freedom but it does need to be connected to another connected part. Once a mate is in place with another part, those two parts are merged with no degrees of freedom. Degrees of freedom are only enabled through EcJoint mates.

Many models also have parts that are mated to reference planes associated with assemblies. In these cases, the converter does not know which link to associate those mates too. It is recommended to mate with reference planes of a part model or mate with a part feature such as a face. If no part feature mates are found, the converter assumes that the part is connected to the base link.

Circular Chains

Circular chains are another common problem. The mate tree needs to proceed from the base to the end effectors. Each link can only be mated to its parent and child through EcJoint mates. This can be a tricky problem to resolve. Clearly organizing mates in mate folders can help. For example, separate link mates into separate folders and group EcJoint mates with common identifiers into separate folders.

Advanced Features


In assemblies, there are three primary pattern types: linear, circular, and mirror. Each pattern has a seed component that is patterned. For linear and circular patterns, there can be numerous copies. For mirror patterns, there is one copy. Behind the API, SolidWorks treats patterned assemblies and parts as normal components, but there are no mates from the patterned component to the assembly. To connect the patterned components to the manipulator, the converter needs some assistance. First, a base part in each pattern needs to be identified as instructed below. The converter will start with each base part and work through the mates within the patterned assemblies to connect the parts. Second, a seed part needs to be identified. Think of the seed part as the base of the seed component used in the pattern. The base part for each patterned component will be fixed to this seed part. In other words, all the base parts will be in the same link. This enables the pattern parts to be connected in lieu of mates.

There is one notable limitation. The converter uses mates to create joints. For this reason, the base part of each patterned component needs to be fixed to the link. It cannot be a moving part. The patterned components can have moving parts within the components defined by mates, but the base part must be fixed to a link defined by the base part of the seed component.

SolidWorks patterns can help simplify the hexapod model used throughout this document. One of the six legs can be used as a seed for a circular pattern, which can greatly reduce the model complexity. The hexapod model illustrates the mate issue mentioned above. In the quick-start version of the hexapod model, each leg is mated to the body independently and each of the mates is part of a joint. If a pattern had been used, 5 sets of joint mates would be lost. Figure 32 illustrates how a modified leg can assist. In the figure, a washer-like part is added to the component and a joint mate is defined with the rest of the leg. In the top level assembly (Figure 33), this washer part can be fixed through mates to the base part of the full assembly. Previously, the first joint for each leg was defined in the top level assembly. That is what connected the leg to the base. This joint definition is now pulled into the leg so that the pattern can repeat its use. In the new top level assembly, this new part is mated to the base for one of the legs then that leg is used as a seed for the other legs in the pattern (see Figure 34).

The pattern legs are combined to the manipulator through an “ecPattern” comment (see Figure 35). The comment starts by identifying a seed part and is followed by a pattern part for each pattern element. If there are multiple patterns with multiple seeds, other seeds can be identified with the pattern parts to follow. This is illustrated in the linear and mirror pattern example.

Pattern components can be independent branches or constrained to the seed. That is, each leg can be controlled independently or constrained in full to the seed component. By default each branch is independent. An “ecLinearConstraintSeed” comment is used to constrain patterns to seeds (see Figure 36). The first line identifies the seed and the following lines identify the pattern. For each pattern part, a linear constraint end effector is automatically added and constrained to the seed.

Leg pattern example. The leg is modified with a part that can affix to the base.
Leg pattern example. The assembly can use the modified leg for the pattern.
Circular pattern feature manager. An axis of rotation and a seed component is needed for the pattern. The seed component, leg-1, is highlighted in blue.
ecPattern comment example for connecting a pattern. The “seed” label identifies the seed and preceeds the pattern components.
ecLinearConstraintSeed comment example for constraining pattern components to the seed.

Normally, end effectors are added to parts which roll up to links. For patterns, this approach adds end effectors to each branch in the pattern which may not be desirable. For example, adding an end effector to the foot part will add an end effector to each leg since the foot is reused in each leg. If the patterns are constrained to the seed, it may be desirable to solely add an end effectors to the foot in the seed component. Figure 37 and Figure 38 illustrate how to add point and linear constraint end effectors through a comment. Each row in the comment adds a new end effector. Figure 39 illustrates a hexapod with coupled linear constraints on the first link of each leg. The seed linear constraint is moved and each leg moves in parallel.

ecAddPointEndEffector example for adding point end effectors.
ecAddLinearConstraint example for adding linear constraints.

Another hexapod is shown in Figure 40 to demonstrate linear and mirror patterns. The blue part highlights the seed, leg-1. The linear pattern with leg-2 and leg-3 is on the same side as the seed. The mirror pattern is on the other side with leg-4, leg-5, and leg-6. In Figure 41, ecPattern connects the patterns to the seeds. Technically, leg-1 could have been the sole seed but this example shows an alternative to illustrate the flexibility of the approach. Figure 42 illustrates the flexibility of the linear constraints and Figure 43 shows representative movement with the linear constraints in leg-1.

Linear constraint illustration. Each pattern leg moves parallel to the seed component (leg-1).
Hexapod with a linear and mirror pattern. The blue leg, leg-1, highlights the seed.
ecPattern example for linear and mirror pattern.
ecLinearConstraintSeed example for linear and mirror pattern.
Illustration of linear constraints. Each pattern leg moves parallel to the seed component (leg-1).

This pattern approach also enables reference links in Actin (see Figure 44). By using the reference links, the XML file is reduce by a factor of three.

Reference links enabled

Current Working Directory

When converting a model, the XML file gets put in the current working directory. SolidWorks defines a current working directory when a file is loaded but the location is unpredictable at times. The surest way to define the current working directory is to open a file by using the File/Open command. By using the File/Open command, the current working directory gets defined as the directory of the file opened. When converting a model, the XML file gets put in this current working directory.

A few features help with determining the current working directory.

1) The “Current Working Directory” menu command displays the current working directory. If a model is converted but cannot be found, this command will help locate the XML file.

2) When a model is converted, the current working directory is printed to the screen.

3) A path can be added to the model name in the Property Manager Page. An absolute path can be used to ensure an output location.

Registration of Actin Add-in

The SolidWorks Add-in can be registered and unregistered using the following commands:

regsvr32 ecSolidworksAddin.dll

regsvr32 /u ecSolidworksAddin.dll

Once registered, the Add-in can be activated by using the Tools/Add-Ins menu option. Figure 45 illustrates the activation process.

Activating the add-in

Setting Parameters

File Properties

Many of the parameters can be set through the PMP. This data is saved in the file properties. There are other parameters that can be set through the file properties and these properties can be edited directly.

Hexapod file properties for top level assembly

Excel Spreadsheets

Three SolidWorks macros where created for configuring the simulation from Excel. One macro exports the summary information. Once exported, the summary information can be configured and imported through another macro. A third macro exports the SolidWorks comments. This gives visibility into the XML configuration content. Figure 47 illustrates the exported summary information. Note that it highlights all of the files containing data along with the data. This data can easily be exported, configured, and imported. Once exported, the full power of Excel can be used to manipulate the data prior to importing.

The macro names are exportSimulationParams.swp, importSimulationParams.swp, and exportSimulationComments.swp. These are located under toolkits/scripts/solidworksMacros.

Exported Parameters