Continue to Site

Welcome to MCAD Central

Join our MCAD Central community forums, the largest resource for MCAD (Mechanical Computer-Aided Design) professionals, including files, forums, jobs, articles, calendar, and more.

Memeber Length

Rbrgr83

New member
OK, so I want to setup a BOM table column which reports the length of a given piece. All of my parts have a PART_LENGTH parameter.


However, there are obviously some items to which this info does not apply. I can get the value to display for ALL assembly members with asm.mbr.PART_LENGTH, but this this isn't exactly what I want.


Is there a way for me to get those with a value of 0 to show up blank, or show up with a character (a dash or something). I've attemped to do this with with rpt region relations, but it does seem to work unless i already have a column for the numerical values for it to reference.
 
Use attributes relations in the repeat region...(Table.. Repeat Region.. Attributes).


Here is an example that we use to state if an item is a "bulk item" in the assembly and set the quantity displayed as "A/R"


/* to set bulk item qty to A/R
if ASM_MBR_PART_PROE_BULK=="Y"
sea_quantity="A/R"
else
sea_quantity=rpt_qty
endif


I'm assuming that if you use the if statement to state that if the value is zero, you could use a similar structure to get the repeat region to display "N/A" or whatever.


Good luck!
 
Yes, easily. You need to use table relations:


Make a new table parameter and call it something like:


NEW_PART_LENGTH. You can make it a real number, integer or string.


Your table repeat region should read:


&rpt.rel.NEW_part_length


Then, in you table relations, you need to add the conditions for what the table is to display. You may need to run IF statements for all the parts you wish to filter out as displaying "-" or whatever it is you want to display if part length is not to be shown:





if asm_mbr_name_whole == "123/4567"
NEW_PART_LENGTH = asm_mbr_des + " (SEE TABLE)"
else
if asm_mbr_name_whole == "910/1112"
NEW_PART_LENGTH = asm_mbr_des + " (SEE TABLE)"
ELSE
if asm_mbr_name_whole == "131/4156"
NEW_PART_LENGTH = asm_mbr_des + " (SEE TABLE)"
ELSE


NEW_PART_LENGTH= asm_mbr_PART_LENGTH
endif
endif
endif





This was done for an assembly level relations. The only thing I'm not sure about is the format of asm_mbr and what it sholud be for a part. I'm not sure whether it should read prt_mbr. You need to do a bit of digging arounnd and check what it should be for a part. It's standard Pro/E practice so the format should be well documented.


Phil
Edited by: pjw
 
Am I the only one that read the title of this thread and thought it was a poll?
smiley2.gif
 
You could also use relations at the part level with two parameters PART_LENGTH and a YES/NO parameter (for the relations I created I used HAS_LENGTH). The relations I used were:


IF HAS_LENGTH == YES
PART_LENGTH = LENGTH
ELSE
IF HAS_LENGTH == NO
PART_LENGTH = "-"
ENDIF
ENDIF
 
Thanks Wwalkerone-
This is the same method I am using and it appears to be working OK. It looks like i am having a larger problem with my BOM table. More specificaly, i'm having a problem with 1 bom table in 1 drawing, because i have succesfully used this method elsewhere.


Technicaly what I am doing is working, but it is also taking all of my items and condensing them into 1 line with a total qty which is the sum of all of my qtys. It's listing them with an index number which is 1 greater than the number of items in the list.


This is all boggling my mind right now too, because I can do the EXACT same thing using the rpt_qty variable in the logic as opposed to my paramater asm_mbr_part_length and it works just fine. Also, if I go to attributes and tell it show duplicates, it will show everything properly, including what I want it to do. Of course rather prefer to display in the conventional no duplicates view. Erg!!


So now that i've stumbled upon the real problem, any suggestions?





MugenPower said:
Am I the only one that read the title of this thread and thought it was a poll?
smiley2.gif
You cheeky monkey! Feel free to share your response
smiley17.gif

Edited by: Rbrgr83
 
Hi Rbrgr83,


That's a new one on me - my problems tend to be the same on all the BOM tables!!


How large an assembly are you dealing with here? Can you throw in a screenshot or the files so that I can have a look?


Cheers,


Greg (Walkerone)
 
Sure!


Here is before:



All I do is go to the Table-->Repeat Region-->Relations and add the following:
if asm_mbr_part_length==0
LNG="-"
else
LNG=asm_mbr_part_length
endif


I have to add the variable asm_mbr_part_lengthto the table parameters or it will not accept the code.


I don't even add the column to the table, and upon regen I get this:



As you can see, it is working correctly. If I show no duplicates &change the Qty value to rpt.rel.LNG, it is doing what i want it to do:



Note that it is still starting the indexing at 11, which is 1 more than the number of items in the correct BOM.


And of course, the final twist of the knife is that I can get this to work just fine on every other drawing i've tried it on (i replaced the Qty column again):



I'll be over in the corner, crying. Let me know if you got any ideas.


Thanks!!


michael3130 said:
At first glance, I thought it was something rude
smiley9.gif
I guess I should take a sec to check my sbj lines for double entendre next time, hehe
Edited by: Rbrgr83
 
Hi.


Just a quick check - if you leave the QTY column alone (i.e. as was before the relation) but add another column to the BOM table on the "dodgy" drawing, does it now show the correct item numbers, qty and "new" rolled up lengths?


Greg
 
It doesn't. Even before I can add the extra column, it condenses the BOM.
(and erases my balloons, erg!!)


It does the same if I add the column beforehand. I get 1 line which is item 11, and no duplicates starts on item 11.


It does seem, now that you mention it, that I am somehow confusing the way it displays qtys. Just a thought!


Also Also,
I kinda mentioned this before, but I can get it to function properly if I show the PART_LENGTH variable in 1 column and my LNG variable in the next. But as soon as I remove the 1st and regen, then the whole BOM collapses like it has been. I can do the exact same thing with RPT_QTY and I don't get the same problem.


Also Also Also,
It looks like its not the assembly either. I can create a new dwg and I don't get the same problem. I'm gonna punch my screen here in a second.
Edited by: Rbrgr83
 
Sorry Rbrgr83
smiley19.gif



I can't replicate the issue - it looks like there is something in that particular assembly drawing repeat region causing this one.


Active maintenance anyone? - I feel a support call coming on....


Greg
 
Well, I sat myself down and realized that the only reason I don't re-do the BOM table is so that I don't have to re-do the 10 BOM balloons i had in the drawing. Decided to just suck it up and spend the extra 2 min to re-balloon.


What I ended up doing was integrating the "length" column with the relations into our drawing format. This was my intent all along, but I didnt want to do it until i had all of the bugs worked out. Low and behold, it works like a charm.


Im all about learning from one's mistakes (or ProE's mistakes for that matter. So as much as I hate to do it, I'm just going to chuck this up to the giant voodoo bermuda triangle that is ProE. I've got everything that I need working correctly and consistanly. Lets just pretend this never happened.
Edited by: Rbrgr83
 

Sponsor

Articles From 3DCAD World

Back
Top