We use shrinkwrap for welding, because merge does not work for features and a weld with the weld application is a feature in Creo.
It works fine, however unlike merge you can not open base model from the model tree, instead you need to go to feature information, copy the number and open that number. Is it possible to make a mapkey to do that instead of manually do it all the time? Below is mapkey, but how to get rid of the hardcoded filename?
mapkey foo ~ Select `main_dlg_cur` `PHTLeft.AssyTree` 1 `node2`;\
mapkey(continued) ~ RButtonArm `main_dlg_cur` `PHTLeft.AssyTree` `node2`;\
mapkey(continued) ~ PopupOver `main_dlg_cur` `PM_PHTLeft.AssyTree` 1 `PHTLeft.AssyTree`;\
mapkey(continued) ~ Open `main_dlg_cur` `PM_PHTLeft.AssyTree`;\
mapkey(continued) ~ Close `main_dlg_cur` `PM_PHTLeft.AssyTree`;\
mapkey(continued) ~ Trail `MiniToolbar` `MiniToolbar` `UIT_TRANSLUCENT` `NEED_TO_CLOSE`;\
mapkey(continued) ~ Command `ProCmdInfoFeature@PopupMenuTree` ;~ Command `ProCmdModelOpen` ;\
mapkey(continued) ~ Trail `UI Desktop` `UI Desktop` `DLG_PREVIEW_POST` `file_open`;\
mapkey(continued) ~ Trail `UI Desktop` `UI Desktop` `PREVIEW_POPUP_TIMER` \
mapkey(continued) `file_open:Ph_list.Filelist:<NULL>`;\
mapkey(continued) ~ Input `file_open` `Inputname` `0265-0413-04 `;\
mapkey(continued) ~ Update `file_open` `Inputname` `0265-0413-04 `;\
mapkey(continued) ~ Command `ProFileSelPushOpen_Standard@context_dlg_open_cmd`;
Or maybe there are better ways to handle weldassemblies in creo?
Solved! Go to Solution.
My above proposal was in the context of using the multibody part as the top-level object for the design of a weldment. My intent was not to use this in conjunction with your current design space but as an alternative. I do not see any issue with the creation of the as welded assembly and drawing in my proposal but as I said I have no real-world experience using weld features in Creo so I may be overlooking something.
I am not proposing to add the multibody part to your current design space so the arguments you make above or not relevant if evaluating my proposal independently. If you consider the sketch I posted above it is effective at maintaining short dependency chains from the top level to the lowest level components and a drawing if you were to add one.
If you want to stick with what you have and use shrinkwrap you can call an external script from a mapkey to access the source model name and retrieve it through a mapkey plus an external script or use of one of the Creo APIs.
Can you explain the details about your statement: ...merge does not work for features and a weld with the weld application is a feature in Creo.
What exactly needs to be done with the weld feature that you are using shrinkwrap for?
Have you considered inheritance features for the weldment assembly?
We have several parts that we weld together as solid welds with the creo weld module, then we want to machine this. We could of course use assembly cut, but in real life we end up with a welded part. So we create a new part and do shrinkwrap of the weld assembly, this way we have a part that we can machine and that contains the welds. Merge feature requires a help assembly where you add the weld assembly and the part tyou want to merge to, also merge can not be performed on features as far as I know. Shrinkwrap works superb for us, its been stable and are fast to load, the only problem that takes a bit of time is to find the weld assembly since you need to go to feature information copy the assembly name and then copy it in to open file dialog instead of for merge where you can just right click on the feature and chose open bbase model. We were hoping we could achieve this with just selecting the shrinkwrap feature and then run a mapkey.
See post here by Eric for instance: https://community.ptc.com/t5/3D-Part-Assembly-Design/Machining-of-a-weldment-assy/td-p/154438
Merge functions only work on parts not assemblies as you have found. The merge function has an external option that does not require a "help assembly" as you call it. Inheritance feature within merge functionality was created to handle multi-stage manufacturing models like as cast and as machined states driven by a common master model. I think this would work for your as welded and as machined versions unless there is something about weld features that prevents this (I have no experience with weld features).
As a concept it would seem that you could use multibody in a part model to represent all welded components within a part model which would then enable you to exploit the merge functionality to create a model of the as welded and as machined states of the weldment.
We do use inheritance for casting/material , however that works with singles parts and not features, the welds in welding module are features. But as stated shrinkwrap works superb, my question is just how we more easily can get to related parts with a mapkey. We also face the same problem when creating drawing. The question is there a way to copy text with mapkey, because when you record it it types out the letter that you copy.
We just want to copy the text in feature information and paste it into the open file dialog, can this be done with a mapkey? i.e fire some toolkit or something to do it and then return back to the mapkey. We have the same issue when creating a drawing, where we in most cases want the drawing to be named the same as the part.
I am still not totally clear on how you are using shrink-wrap in this context. Are you able to post a set of test models here for investigation (Creo 7 or earlier for me to access them)? It can be a simple 2 piece assembly with the weld feature joining them. I want to look at the parent child relations that are created when you are doing this.
For the mapkey question, it may be possible to resolve your issue, but I would want to test that with models set up by you with all constraints present.
Creo 7 models posted for reference.
Here is an example of how to structure this using multibody modeling for the welded parts. Let me know if this in theory would resolve the issue of accessing the parent model of the as machined part. I have some other ideas that might work but I want to get your feedback on this approach first as it is easy to follow.
The part FOO_WELD_MB contains 3 bodies and 1 weld feature. This is seen in the below image model tree. I used a construction body to combine the geometry of the weldment that will serve as the as machined solid. This is the hidden body "AS_MACHINED" seen below.
This shows the as machined model which was created using the create part from body option in the part shown above. This includes all of the solid geometry of the parts and weld and uses an external copy geometry. You can access the parent model of this copy geometry directly from the as machined model.
Thanks for the feedback. The right click open reference model works nicely. However I have a few question for you.
So in the weld assembly which has a drawing attached to it is where the weld should be placed, not as welded multibody part. This way the weld smbosl gets added nicely to the drawing including the BOM table.
If the weld assembly gets a part added/deleted the machined part should reflect this without the need of redoing merge etc.. This works fine by just selecting update the shrinkwrap.
If you use the welded multibody part as the top-level object in the design space it seems to me that it can drive the entire design. What prevents you from using the welded multibody part as the parent that drives/maintains the weld assembly configured as you wish with the welds handled as you propose? If you use the create part from body option, you then have parts that can be assembled to the weld assembly and welded in the context of the assembly.
The intent map would look like this:
ECG= external copy geometry
Thanks for the sketch,
In the weldmentassembly.asm the weld features needs to be placed, and that geometry needs to be copied together with part geometry to asmachined.prt The disadvantage with having another multi-bodyweldment.prt is that you have another part that you need to keep track of, i.e revision, reuse of parts, naming etc.. This was how we used to do things back in the days when we used merge for welding, where we had a merge assembly which contained as machined.prt and weldmentassembly.asm.
Also when having large models, shrinkwrap seems to be way faster. We are quite happy with shrinkwrap except that it take some extra time to open part1...partn when you are in assembly with contains asmachined.prt and nothing else in the session as you need to use the reference viewer to get the reference to string part1.prt and then manually type it in in the file open dialog.
My above proposal was in the context of using the multibody part as the top-level object for the design of a weldment. My intent was not to use this in conjunction with your current design space but as an alternative. I do not see any issue with the creation of the as welded assembly and drawing in my proposal but as I said I have no real-world experience using weld features in Creo so I may be overlooking something.
I am not proposing to add the multibody part to your current design space so the arguments you make above or not relevant if evaluating my proposal independently. If you consider the sketch I posted above it is effective at maintaining short dependency chains from the top level to the lowest level components and a drawing if you were to add one.
If you want to stick with what you have and use shrinkwrap you can call an external script from a mapkey to access the source model name and retrieve it through a mapkey plus an external script or use of one of the Creo APIs.
Its always nice with alternative approach:) I still feel creo has some shortcomings when it comes to welding and that there is no clear best practice for it, but for every new version of creo its gets slightly better..
Do you have an example code for this as reference:
If you want to stick with what you have and use shrinkwrap you can call an external script from a mapkey to access the source model name and retrieve it through a mapkey plus an external script or use of one of the Creo APIs.
Start here:
Article - CS151240 - Information about Mapkey with OS Script type in Creo Parametric (ptc.com)
You can also find other thread in this community discussing external scripts and mapkeys.
If you are going to attend PTC/User in Jan, I have a presentation I am giving on how to use external scripts to generate dynamic mapkeys.
@Chris3 Do you know if the presentations slides will be posted here in the community after PTC USER? For those not attending there is value in archiving it here. If they do not have a plan to post your slides in the community, let me know. We may be able to include the slides in the Creo tips section here on the community if you are inclined to share in this manner.
Historically no they are not. They are often posted in PTC/User site but I think that depends on the organization's legal departments. I don't have an answer on that on my own slides yet.