Skip to main content
tbraxton
22-Sapphire II
Jul 31, 2020 12:20 AM UTC
Question

Calculate the transform matrix between two CSYS features

Is anyone aware of a method to obtain the transform matrix between two CSYS features using built in Creo functions?

The measure transform function generates the transposed matrix of the matrix which transforms coordinates based on the second selected CSYS  to that based on the first selected CSYS. I would like to obtain the transform matrix but can not find any internal function available for relations or a direct analysis to generate this matrix.

 

I would then use the transform matrix values in some relations to drive additional features.

3 replies

18-Opal
Jul 31, 2020 11:40 AM UTC

native within Creo -- I don't think so.  Unless you set up an analysis feature between your references (or something)?

 

If you need more detailed access - you might look at CREOSON (Open Source Creo Automation)-- there is a function in there called:

 

  • file : get_transform

Sample Request:

{
 "sessionId": "~sessionId~",
 "command": "file",
 "function": "get_transform",
 "data": {
 "asm": "plate_assy.asm",
 "path": [
 54,
 23,
 45
 ],
 "csys": "CS0"
 }
}

Sample Response:

{
 "status": {
 "error": false
 },
 "data": {
 "origin": {
 "x": 380.0000554810615,
 "y": 120,
 "z": 1.000000000017174e-20
 },
 "x_axis": {
 "x": 0,
 "y": 1,
 "z": 0
 },
 "y_axis": {
 "x": 1,
 "y": 0,
 "z": 0
 },
 "z_axis": {
 "x": 0,
 "y": 0,
 "z": 1
 },
 "x_rot": 0,
 "y_rot": 0,
 "z_rot": 0
 }
}

 

Once you have that... I think it would be pretty easy to compute your transform.

 

Dave

Translate
16-Pearl
Jul 31, 2020 12:49 PM UTC

I don't know of any native commands that can calculate the transform. There is a pretty slick workaround that we use to calculate coordinate system offsets/angles that may be useful to you. Very helpful when designing end of arm tools for robots.

 

Assuming you have coordinate systems A and B, and you need to know the offset dimensions and angles from A to B.

 

Here's the steps:

  • Identify coordinate systems A and B
  • Create a new coordinate system
  • Select coordinate system B as a reference for the new coordinate system
  • Select coordinate system A (reroutes constraint of csys so that it's tied back to A with dimensions)
  • Click OK

See the attached video clip for more details.

 

Ty

Translate
tbraxton
tbraxton22-Sapphire IIAuthor
22-Sapphire II
Jul 31, 2020 11:56 PM UTC

I found an older thread that is closely related to what I am trying to implement. I think it is a possible solution although  I have not verified the Euler angle calculations work for my test case yet. It is worth looking at for anyone needing to use transform matrix elements in relations.

 

https://community.ptc.com/t5/Assembly-Design/how-to-retrieve-ALL-csys-parameters/td-p/58618 

Translate