CMM Model Creation in PowerINSPECT 4.0

PWI000110

Context

this document applies to :

  1. PowerINSPECT 4.0

Gripe no 0000

Summary

PowerINSPECT 4.0 has the ability and to graphically represent the CMM on the screen and to simulate the movements of the machine along the programmed probe path. When PowerINSPECT is connected to the machine, the actual machine movements will also be mirrored in PowerINSPECT by moving the simulation model in real time.

Description

For Excel report the concept of a template for the report was equal to the concept of a file. In the other words all the information that was needed for a report was kept in one file that was called the Excel report template. The concept of a report template for HTML reporting is different. A template is a set of files. This set is usually saved in a separate folder. It can be seen in the current implementation of HTML report and the folders like "Delcam2003" and "WebLike". By default it is assumed that there are at least three files in a template folder for example in folder Delcam2003: '''Delcam2003.pxm''', '''Layout.html''' and '''Styles.css'''. The template folder may also contain any additional files (mainly the image files) that are used in the report. 

Concept of the Simulation Model

To select a model of the CMM, PowerINSPECT needs to read an MTD file. There are two types of file that may be supplied; one can have the machine model made up of boxes and cones and the other can read in triangle files (DMT files) which contain the graphics for the different parts of the CMM. It is not always possible for the user to generate DMT files, so this document will explain how to build up a model using the boxes and cones concept.

The content of the MTD file will setup the Minimum and Maximum travel limits allowed for each axis, the position of the attach point for the head (PH9, PH10 etc), and the table attach point which specifies the position the mid point of the X and Y axes and the position of the surface of the table. It also enables the user to control the colour for each part of the machine defined.

Building a CMM Model

Before starting to build up a CMM model, it will make the values entered into the MTD file much easier to understand if the datum of the model is located at the Home position of the machine such that the centre of the quill is at zero in X and Y and the end of the spindle is zero in Z. This is assuming that the home position of the machine is the zero of the machine.

The MTD file will be created in the CMM folder.

Creating the MTD File:  The MTD file is a text file and can be created using a text editor such as Wordpad.

Open a file and start the file with the following lines:

<machine xmlns="x-schema:PowermillMachineTool">
<!-- Where things are attached to the machine -->
          <head_attach_point PART="head" X="0" Y="0" Z="0" I="0" J="0" K="1"/>
<!-- Table attach values are X and Y Mid travel position and Z distance from quill bottom to surface of table -->
          <table_attach_point PART="table" X="-237.5" Y="-187.5" Z="-405"/>

At this stage, it is not important to set the values for X Y and Z in the head_attach_point or the table_attach_point lines. It will be easier to set these values once the model of the machine has been defined.

Comments can be entered into the file as follows:

<!-- comment here -->

The next part of the file will construct the static parts of the machine which in this case will be the table of the CMM. Enter the following lines:

<!-- Static bits -->
<machine_part>
   <model_list>
      <geometry>
      <!-- the Table -->
         <box X1="-640.0" Y1="-565.0" Z1="-605.0" X2="345.0" Y2="325.0" Z2="-405.0"/>
         <rgb R="60" G="60" B="60"/>
      </geometry>
   </model_list>
</machine_part>
<machine_part NAME="table"/>


Between the <model_list> and </model_list> tags will be the definition of the geometry of the machine. Each component of the machine will be defined within the <geometry> and </geometry> tags. The table is constructed as a three dimensional rectangle (a box). As shown above the box is constructed from two points; the first point X1 Y1 and Z1 contain the minimum values of the corner of the table relative to the zero position; the second point X2 Y2 Z2 contain the maximum values of the corner of the table relative to the zero position.

The following line sets the colour to be used for the display of the table. Supply the strength of the Red Green and Blue colours to be used using values between 0 (zero) and 255. In this case 60 60 60 gives a dark grey colour. Three zeros will set the colour to black and three 255 values will set the colour to white.

This completes the construction of the static parts (the table). When the machine moves, the table will remain stationary.

The next part of this file is going to construct the parts for the X axis of the machine. These parts will only move in the X axis and will remain stationary when the Y and Z axes are moved. This part of the file looks like the following:

<!-- The Guts -->
<machine_part>
   <axis>
      <control_info ADDRESS="X" MIN="-475" MAX="0" VALUE="0"/>
      <simple_linear I="1" J="0" K="0"/>
   </axis>
   <model_list>
   <!-- beam -->
      <geometry>
         <box X1="75.0" Y1="-570.0" Z1="181.0" X2="255.0" Y2="242.5" Z2="371.0"/>
         <rgb R="60" G="60" B="60"/>
      </geometry>
   <!-- inside leg -->
      <geometry>
         <box X1="80.0" Y1="157.5" Z1="-306.0" X2="255.0" Y2="237.5" Z2="181.0"/>
         <rgb R="253" G="232" B="157"/>
   </geometry>
   <!-- inside leg bottom -->
      <geometry>
         <box X1="-93.5" Y1="100.0" Z1="-405.0" X2="291.5" Y2="305.0" Z2="-306.0"/>
         <rgb R="0" G="0" B="255"/>
      </geometry>
   <!-- outside leg -->
      <geometry>
         <box X1="80.0" Y1="-565.0" Z1="-405.0" X2="255.0" Y2="-485.0" Z2="181.0"/>
         <rgb R="253" G="232" B="157"/>
      </geometry>
   </model_list>


Between the <axis> and </axis> tags the X axis parameters are defined. The Min and Max values set up the positions of the Minimum and Maximum values that the machine can attain in the X axis. The maximum travel of the machine in X is the difference between the Min and Max values which in this case is 475mm. The value for Value specifies the home position relative to the zero position of the machine. This machine has its zero position at the home position of the machine in X.

The I J K values specify how the simulated machine moves when it gets an X axis move. In this case I is set to 1 and J and K are set to 0 (zero) which will cause the simulation of the machine to move along the X axis only. If I is set to -1 then the machine will move in the opposite direction in X.

As with the definition of the table, the geometry of the X axis components will all be defined within the <model_list> and </model_list> tags.

The X axis components are made up of 4 pieces of geometry, all boxes. The syntax for these pieces is the same as for the table. In this case the beam is defined using a dark grey colour, the inside and outside legs are defined using a creamy colour and the bottom of the inside leg is defined using a blue colour.

Note that there must not be a closing tag for the <machine_part> tag in this part of the file as the X Y and Z axes definitions need to be linked together.

The next part of this file is going to construct the parts for the Y axis of the machine. These parts will only move in the X and Y axes and will remain stationary when the Z axis is moved. This part of the file looks like the following:

<machine_part>
   <axis>
      <control_info ADDRESS="Y" MIN="-375" MAX="0" VALUE="0"/>
      <simple_linear I="0" J="1" K="0"/>
   </axis>
   <model_list>
   <!-- Z Axis Cover Bottom -->
      <geometry>
         <box X1="-80" Y1="-75" Z1="132" X2="50" Y2="75" Z2="397"/>
         <rgb R="253" G="232" B="157"/>
      </geometry>
   <!-- Z Axis Cover Middle -->
      <geometry>
         <box X1="-80" Y1="-75" Z1="397" X2="63" Y2="75" Z2="450"/>
         <rgb R="253" G="232" B="157"/>
      </geometry>
   <!-- Z Axis Cover Top -->
      <geometry>
         <box X1="-57" Y1="-75" Z1="450" X2="63" Y2="75" Z2="1000"/>
         <rgb R="253" G="232" B="157"/>
      </geometry>
   <!-- Y Axis Bearing 1 -->
      <geometry>
         <box X1="50" Y1="-138" Z1="287" X2="74" Y2="138" Z2="397"/>
         <rgb R="157" G="157" B="157"/>
      </geometry>
   <!-- Y Axis Bearing 2 -->
      <geometry>
         <box X1="74" Y1="-138" Z1="372" X2="256" Y2="138" Z2="397"/>
         <rgb R="157" G="157" B="157"/>
      </geometry>
   <!-- Y Axis Bearing 3 -->
      <geometry>
         <box X1="256" Y1="-138" Z1="287" X2="281" Y2="138" Z2="397"/>
         <rgb R="157" G="157" B="157"/>
      </geometry>
   <!-- Y Axis Bearing 4 -->
      <geometry>
         <box X1="63" Y1="-89" Z1="397" X2="290" Y2="89" Z2="470"/>
         <rgb R="157" G="157" B="157"/>
      </geometry>
   <!-- Y Axis Bearing 5 -->
      <geometry>
         <box X1="63" Y1="-75" Z1="470" X2="88" Y2="75" Z2="1000"/>
         <rgb R="157" G="157" B="157"/>
      </geometry>
   </model_list>
 

 

In the same way that the X axis components were defined, the Y axis components are defined as above including the setting of the Y axis limits and the home position specified by the Value figure.

The final part of this file is going to construct the parts for the Z axis of the machine. These parts will move in the X Y and Z axes. This part of the file looks like the following:

<machine_part>
              <axis>
                 <control_info ADDRESS="Z" VALUE="-79" MIN="-325" MAX="0"/>
                 <simple_linear I="0" J="0" K="1"/>
              </axis>
              <model_list>
              <!-- Quill -->
                 <geometry>
                    <box X1="-33.5" Y1="-30" Z1="0" X2="33.5" Y2="30" Z2="905"/>
                    <rgb R="60" G="60" B="60"/>
                 </geometry>
              </model_list>
           <machine_part NAME="head"/>
        </machine_part>
     </machine_part>
   </machine_part>
</machine>
 

This machine only has the quill which is able to move in all three axes so the last portion of the file only defines the geometry for the quill. Again the Z axis travel limits are set here as well as the home position specified by the Value figure. However the home position is affected by the size of the head that is going to be mounted on the end of the quill. As the datum for the head needs to be the centre of rotation and pivot of the head, the figure entered for Value will be the position of the datum of the probe head relative to the end of the quill, hence the -79 figure.

The </machine_part> end tags are entered here for all three axes.

Head Attach Point

As the datum for the simulated model is set to the centre line of the quill in X and Y and on the end of the quill in Z, then the values entered for X Y and Z will be 0 (zero). In Z, the top face of the probe head will be located on the end of the quill.

Table Attach Point

The Table Attach Point is used when auto positioning the CAD file in PowerINSPECT. The X and Y values define the position of the mid point of the machine travel in X and Y relative to the CMM model datum. The Z value specifies where the surface of the table is relative to the end of the quill.

Save this file into the CMM folder and call it (for example) Bridge_Machine.mtd.

The above descriptions will now have created a CMM Simulation Model for a bridge type of CMM. In PowerINSPECT, select the Simulator tab and then press the Change Model button and select the file Bridge_Machine.mtd.

Geometry for CMM Components

The CMM model is made up of blocks of three dimensional geometry which are either rectangular boxes or circular geometry such as cylinders or cones. There are two geometry type available; Box and Cone.

Box Syntax:

The Box geometry enables square or rectangular blocks to be created such as the CMM table.

<box X1="n" Y1="n" Z1="n" X2="n" Y2="n" Z2="n"/>

where: X1="n" Y1="n" Z1="n" defines the minimum position of the corner of the box relative to the CMM datum
          the values specified for n must be enclosed within double tick marks (").

          X2="n" Y2="n" Z2="n" defines the maximum position of the corner of the box relative to the CMM datum
          the values specified for n must be enclosed within double tick marks (").

Cone Syntax:

The Cone geometry enables round components (conical or cylindrical) to be created.

<cone X1="n" Y1="n" Z1="n" R1="n" X2="n" Y2="n" Z2="n" R2="n"/>

where: X1="n" Y1="n" Z1="n" defines the minimum position of the end of the cone relative to the CMM datum
          the values specified for n must be enclosed within double tick marks (").
          R1="n" defines the radius of the cone at the minimum position of the cone
          the value specified for n must be enclosed within double tick marks (").

          X2="n" Y2="n" Z2="n" defines the maximum position of the end of the cone relative to the CMM datum
          the values specified for n must be enclosed within double tick marks (").
          R2="n" defines the radius of the cone at the maximum position of the cone
          the value specified for n must be enclosed within double tick marks (").

Note: To define a cylinder, then use the Cone geometry and set the values for R1 and R2 to be the same.