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

Community Tip - Want the oppurtunity to discuss enhancements to PTC products? Join a working group! X

Export multiple coordinate systems in excel

palex1
1-Visitor

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

Announcements
NEW Creo+ Topics: Real-time Collaboration


Top Tags