Community Tip - Want the oppurtunity to discuss enhancements to PTC products? Join a working group! X
In the past, I've imported pcba files (emp, emn) from our electrical engineers to create creo assemblies of the pcba. If I wanted to create a part which represented the pcba, is there an easy way to achieve this? The only way I can think of is by use of a shrinkwrap, or exporting the assembly file to a neutral format and then try and import it to a part file. Seems like that's may not be the best method.
If I try to import the emp/emn file into a part file (rather than an assembly), all the pcba components import into the part file at the part's co-ordinate system, essentially stacking all the components on top of each other. My memory may be failing, but I seem to remember a way of doing this which was a bit more simple to perform. Forgive me if this is answered elsewhere, but I haven't found much on the web or in the forums.
Solved! Go to Solution.
I am not familiar with emp/emn files but in general for imported files, you will need to add the option: intf3d_in_as_part yes
for importing an assembly as a part file. It's a hidden option so you will have to either added it directly to your config.pro with a text editor or thru the configuration editor by typing it in (find will no work).
This will give you the option to import as an assy or as a part file and will leave the components in the position they are at in the assembly instead of bring all of them in at the default coordinate system.
Being a hidden option, there are possibly some un-intended consequences that PTC has discovered that may or may not affect you.
I have used it many times and I haven't seen anything out of the ordinary. It fails to solidfy about the same # of times as importing as an assembly.
I am not familiar with emp/emn files but in general for imported files, you will need to add the option: intf3d_in_as_part yes
for importing an assembly as a part file. It's a hidden option so you will have to either added it directly to your config.pro with a text editor or thru the configuration editor by typing it in (find will no work).
This will give you the option to import as an assy or as a part file and will leave the components in the position they are at in the assembly instead of bring all of them in at the default coordinate system.
Being a hidden option, there are possibly some un-intended consequences that PTC has discovered that may or may not affect you.
I have used it many times and I haven't seen anything out of the ordinary. It fails to solidfy about the same # of times as importing as an assembly.
I have not done this in a release newer than Creo 4.0 but the .emn file supports importing the data into a part that would represent the PCB or panel without any component placement. The .emn file has a section for the placement info that can be edited in a text editor to delete it this section starts with the header ".PLACEMENT" should you need to remove the placement data from the file to get it to work. Follow the link below for step by step instructions. Link to the IDF 3.0 spec is also below for reference.
Thanks. We'll certainly give it a shot.
If we remove the .PLACEMENT data, the pcb components may import as they exist on the pcb (if it's imported as a part and not an assembly)?
You should not need to edit the .emn file if it is compliant with the IDF spec and Creo is working correctly. You can import just the PCB out line into a part (it will also read holes and regions defined in the .emn). Try following the step by step instructions posted in the link I provided and report back if it does not work.
Oh, I understand. No, the files work when they are imported as an assembly. I'm trying to figure out how to import the assembly as a part, know what I mean?
To clarify; I understand that your objective is to create a part in Creo representing the PCB only without any components placed on it. You have available an .emn file defining the PCB outline available to import using the IDF interface.
If that is your goal, I provided step by step menu picks to achieve that in the link to the ptc help files. If you followed those instructions explicitly and it did not work then post the .emn and .emp files and I will take a look to troubleshoot it.
Here is a verbal synopsis from the link stating what I thin is exactly what you want to do.
The Import List in the ECAD Input – Board dialog box shows only one part type, that is, the board with its name and height, though the import file contains data of the board and all parts.
Import the board as a part and create an assembly using this board as the base part. You can then import the other components into the assembly.
I'm trying to represent the entire pcba, with components, as a part. It's been a long time, but I thought this could be achieved in the part, where the components appear as features. Importing the bare pcb is easy enough. I'm trying to import the entire pcba, with components, as a part.
I did not interpret your request accurately. I now am clear on that. If you want to execute this quickly then export the assembly as a solid STEP and then import it and select part (not assembly) when reading it back in.
If you do not want to use import/export then you should try using the hidden config option noted above intf3d_in_as_part yes
When using this config you should import the .emn/.emp and have the full assembly of the PCBA in session so that all components are in RAM that will be needed to create the new part representing the flattened assembly. I don't see a functional difference as it is all import data and using the STEP in/out should be robust and repeatable.
I have never been able to get shrinkwrap to do this successfully on a complex PCB although in theory it is a tool for the job. The PCBs I typically deal with are much more complex in geometry and number of parts placed than what many users see.
I am interested to know why you want to represent the assembly as a single part as that may lead to some other solutions regarding workflow for MCAD/ECAD exchange.
I'm right with you. I've only done the export/import as a part mode. Shrinkwraps are a bit hit or miss.
We've done pcb's of all levels, some a lot more complex with lots of components which the end user does not need or necessarily care about. So, in that regard, there is great benefit for a simplified representation of the PCBA where the mechanical effort does not need a PCBA with thousands of components. Think of a simple packaging job. The overall envelop (including component height), mounting points, and connector locations would suffice. Those aren't available if I'm using the bare pcb. And engineer could model a representation from scratch in those cases, but sometimes there's benefit from a dumb import or consolidated part.
There are also edge cases where an electrical engineer makes an update, and gives you a new file for import. Checking out the previous model, and dealing with all the conflicts between components in windchill can be quite the bear. If it was just a single part update, rather than the entire assembly, the workflow would be much simplified.
You mention Windchill, do you also have an ECAD and MCAD component library that is mapped using the ecad hint map file? If not implementing this along with some company standards for modeling can greatly streamline ECAD/MCAD workflows. IDF supports designation of MCAD or ECAD ownership of components and exploiting that can be useful in the context of mapped ECAD and MCAD libraries managed by Windchill. If the parts are not re-used then the ROI on this may be questionable but you will probably find that all of the JEDEC packages among others represent many of the parts used on PCBs and can be locked down in the library and mapped to many ECAD symbols.
Due to repetitive simulation requirements I have in the past developed multiple geometric representations of a given package to support multi domain simulation models (thermal, vibe/shock, EM radiation, etc.) all requiring different geometry of the same component to support semi automated mesh generation and constraint definition. This is primarily driven by how the geometry would be best represented for simulation based on the element type for each structure in the component package. Once you have this library built up it is worth 6-7 figures of dollars saved in man hours per year in a large organization with data re-use from the libraries.
With dedicated librarians for both MCAD and ECAD components and standard turn around for new parts once the library was established was 24 hours.
One thing I would suggest is that if you only use the components for space claim in packaging is to save the component models in the library as read only with all datums hidden on a layer(s). This removes all the parts (in assembly context) from the regen cycle and does away with filtering the datum forest in the graphics window. You can create a simplified rep of the PCBA with all components hidden or with only MCAD owned components (connectors etc.) shown.
Using region definition (place, keepout, etc.) also enables simplified reps of the PCBA with 3D surfaces for packaging constraints without the need to have the placed components displayed (easy to check violations of space claims).
There is also now an add on extension for Creo , ECAD-MCAD Collaboration Extension (ECX). I have no experience with it but it has some extended functionality that could be very useful. I would not buy this until you have a mature process map and established modeling standards.
That's amazing, and I am completely envious that you have such a clean integration to streamline the workflow for simulations. Unfortunately, we're not quite there, partly due to the nature of being engineering consultants, and as a byproduct, the low level of component reuse. Clients have different requirements for part numbers, libraries, and even MCAD or ECAD packages, so there is some challenges on how best to tackle that withing Windchill. Since it's set up to be a product development tool, some of the the unique requirements stemming from consulting will likely never be addressed. As of now, we have 3-4 different versions of Solidworks, and luckily, only one version of Creo. As it is now, the WGM doesn't always play nice, as only one version of Solidwork can be registered at any given time. Switching often leads to workspace corruption, and other bizarre issues that can't be diagnosed easily. The EE's have a similar challenge in tools, for both schematics and layouts.
The MCAD and ECAD data isn't quite consolidated, and in fact, remains quite separate. We do have people whom have adopted Creo Schematics, so there is progress in getting everything "under one roof" so to speak. New life cycles are under development, and libraries are slowly starting to grow. Once we get adoption, we'll turn an eye towards part classification, and hopefully, integration of Windchill BOMs and MRP. As we are not a manufacturing organization, there are plenty of interesting challenges making the transition to that sort of mindset. We're engineering focused, so it will take a bit of work to pivot our current workflows to align with the process.
Do you use Simulate for your primary analysis tool or are you using Ansys?
Almost none of what I described is worth it if you can not re-use the data. It is expensive to set it up right and maintain it.
For simulation Abaqus FEA (stress, shock/vibe) primarily running non linear response to impact on the PCB and surrounding structures.
ANSYS HFSS for the EM sims
This is all supported with labs setup to replicate and confirm simulations with empirical data.
One of our external consultants uses Abaqus, and they say really good things about it. We've just recently become an Ansys VAR (in addition to already being a PTC VAR), and are in the process of organizing training for our engineers. FEA and CFD for the most part. We've been trying to hire an engineer who knows HFSS but haven't had much luck in that area.
Hi Mike,
A late answer, but we're doing exactly as you; creating a single part of the PCB assembly. By this we get a correct geometry for packaging etc.
We don't use either the built in Shrinkwrap functionality nor step, but Parasolid instead. It has been both much faster and reliable than the other metods. Be sure that the components are solid and not surfaces; the mix isn't good in this context. The hidden config setting mention earlier in this thread improves any import, both for step and Parasolid.
At least it was, as when we switched to Creo 7.0.2.0 and started using absolut accuracy it works less good. There seems to be an old bug with Parasolid and absolut accuracy which is now reported to PTC.
We have a Mapkey that exports the assembly to a specific, temporary, file. It asks the user for a name of the new model, then creates the part, sets some parameters and finally imports the file.
Here's the Mapkey if you want to use it or part of it. Can probably be simplified a bit...
! ** New PCB Shrinkwrap ***
mapkey _new_pcb_shrinkwrap @MAPKEY_NAMENew PCB Shrinkwrap;\
mapkey(continued) @MAPKEY_LABELPCB Shrinkwrap;~ Close `main_dlg_cur` `appl_casc`;\
mapkey(continued) ~ Command `ProCmdModelSaveAs` ;~ Open `file_saveas` `type_option`;\
mapkey(continued) ~ Close `file_saveas` `type_option`;\
mapkey(continued) ~ Select `file_saveas` `type_option` 1 `db_837`;\
mapkey(continued) ~ Activate `file_saveas` `Current Dir`;\
mapkey(continued) ~ Update `file_saveas` `Inputname` `tmp_export`;\
mapkey(continued) ~ Activate `file_saveas` `OK`;~ Activate `UI Message Dialog` `ok`;\
mapkey(continued) ~ Activate `intf_export` `shells` 0;~ Activate `intf_export` `OkPushBtn`;\
mapkey(continued) ~ Command `ProCmdModelNew` ;\
mapkey(continued) @MANUAL_PAUSEEnter filename in the format 1234567_YYMMDD_sw.\nEnter \
mapkey(continued) 1234567_YYMMDD_01_sw for multiple versions with same date.\nPush RESUME to \
mapkey(continued) continue.;~ FocusIn `new` `InputPanel1`;\
mapkey(continued) ~ Activate `new` `chk_use_default_template` 0;~ Activate `new` `OK`;\
mapkey(continued) ~ FocusOut `new_file_opts` `inp_template_name`;\
mapkey(continued) ~ Update `new_file_opts` `inp_string_param.3` `PCB REF`;\
mapkey(continued) ~ FocusIn `new_file_opts` `inp_string_param.3`;\
mapkey(continued) ~ Update `new_file_opts` `inp_string_param.6` `E1`;\
mapkey(continued) ~ Update `new_file_opts` `inp_string_param.16` `Other`;\
mapkey(continued) ~ Select `new_file_opts` `rad_yes_no_param.18` 1 `1`;\
mapkey(continued) ~ Activate `new_file_opts` `psh_ok`;~ Close `main_dlg_cur` `appl_casc`;\
mapkey(continued) %_ama_pcb; ~ Command `ProCmdModelImpAppendNew` ;\
mapkey(continued) ~ Trail `UI Desktop` `UI Desktop` `DLG_PREVIEW_POST` `file_open`;\
mapkey(continued) ~ Activate `file_open` `Current Dir`;\
mapkey(continued) ~ Trail `UI Desktop` `UI Desktop` `PREVIEW_POPUP_TIMER` \
mapkey(continued) `file_open:Ph_list.Filelist:<NULL>`;\
mapkey(continued) ~ Select `file_open` `Ph_list.Filelist` 1 `tmp_export.x_t`;\
mapkey(continued) ~ Command `ProFileSelPushOpen_Import@context_dlg_open_cmd` ;\
mapkey(continued) ~ Activate `intffeat_file_dlg` `Dlg_PushBtn_Ok`;\
mapkey(continued) ~ Activate `main_dlg_cur` `dashInst0.Done`;\
mapkey(continued) ~ Command `ProCmdMdlTreeShowLyrs` ;\
mapkey(continued) ~ Select `main_dlg_cur` `PHTLeft.PHLayerUI.AssyTree` 1 `node0:GEOM_FEAT`;\
mapkey(continued) ~ RButtonArm `main_dlg_cur` `PHTLeft.PHLayerUI.AssyTree` `node0:GEOM_FEAT`;\
mapkey(continued) ~ Command `ProCmdViewShow` ;\
mapkey(continued) ~ RButtonArm `main_dlg_cur` `PHTLeft.PHLayerUI.AssyTree` `node0:GEOM_FEAT`;\
mapkey(continued) ~ Command `ProCmdViewSaveLayStat` ;~ Command `ProCmdLayer_ShowMdlTree` ;\
mapkey(continued) ~ Command `ProCmdViewRepaint`;