cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community email notifications are disrupted. While we are working to resolve, please check on your favorite boards regularly to keep up with your conversations and new topics.

Export multiple coordinate systems in excel

palex1
1-Newbie

Export multiple coordinate systems in excel

All,


Need help toexport from assemblyover 100 CSYS (individual parts)to single text file or excel document with all X,Y and X parameters (similar to transform).


Thanks in advance.



This thread is inactive and closed by the PTC Community Management Team. If you would like to provide a reply and re-open this thread, please notify the moderator and reference the thread. You may also use "Start a topic" button to ask a new question. Please be sure to include what version of the PTC product you are using so another community member knowledgeable about your version may be able to assist.
1 REPLY 1

Hi Alex,


You can use VB API connected to EXCEL VBA for your purpose.


1/ make sure the API is installed with ProE (not the default install parameter)


2/ Register the VB API


3/ You can retrieve the components as features of the main assembly, and retrieve their position, in a transform matrix.


You can use this for example :


Sub import_Pos()

Dim asynconn As New pfcls.CCpfcAsyncConnection
Dim conn As pfcls.IpfcAsyncConnection
Dim session As pfcls.IpfcBaseSession
Dim mdlname

Set conn = asynconn.Connect(", ", ".", 5)
Set session = conn.session

Dim model As IpfcModel
Set model = session.CurrentModel

Dim modelDesc As IpfcModelDescriptor

'======================================================================
'Loop through all the components and retrieve information for all
'instance of the model found
'======================================================================
Dim components As CpfcFeatures
Dim component As IpfcComponentFeat
Dim my_assembly As IpfcSolid

Set my_assembly = model

Set components = my_assembly.ListFeaturesByType(False, EpfcFeatureType.EpfcFEATTYPE_COMPONENT)


Dim WS As Worksheet
Set WS = ActiveSheet

Dim lig As Integer


lig = 1



col_deb_position_rel = 2

For Each component In components

Set modelDesc = component.ModelDescr


'======================================================================
'Save the filename of the component
'======================================================================

WS.Cells(lig, 1).Value = component.ModelDescr.GetFileName

'======================================================================
'Save the position of the component
'======================================================================
WS.Cells(lig, col_deb_position_rel).Value = component.Position.matrix.Item(0, 0)
WS.Cells(lig, col_deb_position_rel + 1).Value = component.Position.matrix.Item(0, 1)
WS.Cells(lig, col_deb_position_rel + 2).Value = component.Position.matrix.Item(0, 2)
WS.Cells(lig, col_deb_position_rel + 3).Value = component.Position.matrix.Item(1, 0)
WS.Cells(lig, col_deb_position_rel + 4).Value = component.Position.matrix.Item(1, 1)
WS.Cells(lig, col_deb_position_rel + 5).Value = component.Position.matrix.Item(1, 2)
WS.Cells(lig, col_deb_position_rel + 6).Value = component.Position.matrix.Item(2, 0)
WS.Cells(lig, col_deb_position_rel + 7).Value = component.Position.matrix.Item(2, 1)
WS.Cells(lig, col_deb_position_rel + 8).Value = component.Position.matrix.Item(2, 2)
WS.Cells(lig, col_deb_position_rel + 9).Value = component.Position.matrix.Item(3, 0)
WS.Cells(lig, col_deb_position_rel + 10).Value = component.Position.matrix.Item(3, 1)
WS.Cells(lig, col_deb_position_rel + 11).Value = component.Position.matrix.Item(3, 2)
lig = lig + 1

Next

conn.Disconnect (2)

End Sub

Top Tags