I have imported an assembly from OSD to Creo Parametric
automatically the system create a csys for each part/sub assembly
I tried to make a mapkey to search all those scys and then to move then before any sub assembly of part and then to make from that a group and Hide it.
but I can 't get the mapkey to automatically select all csys founded in the search
I have a lot of assemblies to modify
is anyone has an idea how can I do that?
thanks for your help
Is your ultimate goal to hide the coordinate systems? Is the only purpose of the group to have one location to hide/unhide all of the csys' at once? If yes, then you are better off using layers. Create a new rule based layer that searches for all coordinate systems....a query very similar to the search you've already created. Then you can easily propagate that rule layer to all sub-assemblies and sub-components. Once that's done you can just hide/unhide the layer. Furthermore, you can use a part with that layer as a template and set a config.pro option so that all new parts are created with that layer already existing and already hidden.
I have already a template and the layers are hidden. this is not what I am looking for. I am annoyed by the tree 2 time longer dans usually because there is a csys before every prt/ asm. This a small assy here but most of them have a lot if components en the tree become unclear for the users
The icons of those imported files are not also the "normal " icons because I think of the ATB process
The solution can be to use the filter tree to not see them but I want to see and keep the first one coming from my template
this is why I would prefer to put them in a group and to hide them in the layer or in the group as hidden items
THere are linked only to the first csys so I can reorder them just after it
That's not how Creo parametric works.
Typically, people use rules.
So if your import templates have layer rules that automatically moves the csys to a layer, then you can effect that layer in higher level assemblies.
I hear you on the visual pain so many coordinate symbols with long names can be a problem.
I just use the toggle button to turn them all off and not busy myself with them.
However, I will change the name to CS0 is I have to modify the part level anyway.
You should also be able to use layer rules to grab all the csys' and hide them as a "group"
I guess those coord systems are unnecessary as the same ones are also present within each part. You might as well delete them.
Rename your top level CSYS to something like 'CS0' and then use mapkey that searches for and selects all coordinate systems except the one called CS0 then delete the coord systems at once.
helas I can 't delete them. Each part/assy are assemble to the csys just above them.
IF I delete them I will need to reaasemble everything. this machine is too big. We don t have the time and ressouces to do it
That's all good. Those parts and sub assemblies will just become packaged. You can select all packaged components using search tool via mapkey and then hit Fix Compoments from the right mouse button menu to reassemble them all at once. It should be fast enough that way.
the rule of my company is no Fix components
the good part with thoses csys is that they are related to the main csys , they have 3 dimension in X,Y Z that I can modify to moved my sub assies or parts
with the fix I can't
Allright. Actually, I find it great that you don't fall for short-sighted solutions. Right now I wonder how could it all get assembled that way, but maybe that is because i don't really remember how importing of assemblies using ATB works anymore. I thought the components would be assembled by the default constraint just as they are after regular kind of import, which works kinda like the fix constraint.
From what you described so far I'd just assume you have an assembly constraints relationship like this:
top level assy CSYS (single) -> top level assy CSYS feature (many) -> top level assy part or sub-assy CSYS (single for each CSYS)
Let's say the second CSYS in that chain is the middle-man you want to eliminate, and it has just the correct X, Y, Z constraints as you want them, but you want to apply those constraits directly to the CSYS of the part or sub-assembly. I can't think of any way how to do that other than use J-Link API, but developing a J-Link code that'd do the digging through the assembly structure might be pretty time consuming. I'd say even learning how to simply run J-Link with some hello-world code is time consuming, but J-Link is surely able to read those assembly structures, read the constraints from each CSYS feature at the top level and propagate the constraits down to the lower level, also delete the middle-men coord systems afterwards.
Don't know about any easier way on how to modify the assembly in an automated fashion while preserving all constraints. It cannot be done just with regular mapkeys.
first Thanks James
in fact I have a colleague very handy in Jlink, He made already a scenario using Jlink and re-assembling all components according its Csys position. We have all parts and assy again non really assemble and the solution was to Fix all prt and asm 😞
I was in the PTC forum in Stuttgard 2 days ago and I talk to some Hight R&D PTC people.
One suggest to keep as much as possible the "by default" auto assemble process fro a PKG file --> csys before each prt/asm
This new "way of working" for me is ok and even better IF I succeed to group all those csys (one group by sub assy) on top of my tree to make this tree more clear to read.
I am just looking to automate this process
Nice. You are lucky to have someone knowing J-Link nearby. I still think J-Link can define the constraints scheme you need and iterate through the assembly tree automatically, not just fix all components and be done with it.
Well, if you only want to group the coord systems then that can also be done with J-Link. It allows for creating a selection of all top level coord systems except for the very first one and then create a group from all of those. A code for selecting and grouping features shouldn't be that hard to write as it might be for re-assembling everything.
I understand the rule of no fixed components but just out of curiosity, have you ever looked at how a fixed component is actually constrained. If you fix a component and then EDIT (not edit definition) it will show you 6 dimensions, x, y, z and the angles from x, y and z. A fixed component is actually constrained from the default coordinate system of the assembly to the default coordinate assembly of the component and the dimensions are modifiable.
Its actually just another tool you can use to your advantage in cases where it makes sense. If you are building coordinate systems from the default coordinate system to assemble parts, you are in essence using the FIX constraint but without an additional coordinate system feature.