Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations KootK on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Pro/Program using Family Table values

Status
Not open for further replies.

toolman2

Mechanical
Mar 6, 2003
8
If I want to use a value from an instance in a program, how do I refer to it knowing that its designation is different on each instance. For ex., on one instance a dimension may be L:4 and on another it is called L:25. I want to include it in a relation (D1 = LENGTHA + L:4) where the number after the L changes depending on what instance is plugged into the assembly.
Any ideas...??

Kev
 
Replies continue below

Recommended for you

The designation is the same in a family table for all instances, only the value changes. For example if you have “d15” for the height of a cylinder, and “d18” for the diameter, and you have 10 instances, for each of them you’ll have “d15” for height, and “d18” for diameter, but the values would be different.
I hope I understood right your question.


im4cad
Pro Design Services, Inc.
 
im4cad is correct. When you create instance using a "d" value, this symbolic value is used to regenerate each instance. But the symbolic value can change from instance to instance.

Lets say you make a square, where d0 and d1 represent the 2 sides. If you make a relation saying d0=d1*2, then use d1 in a Family Table, each isntance will have its own unique value of d0 and d1.

Now if you use Pro/PROGRAM, you can INSTANTIATE the creation of new instances whenever a new regeneration is done.

This is another ball of wax, though.

 
Thanks to both of you for your response.
I understand pretty well how the family table works. I checked the family table and the dimension I'm interested in is designated as D42 and it also has a name of "L" for length. But.....when I enter either into my program it creates an error on that line. When I key it in like the example in my original post (D1 = LENGTHA + L:4), it will accept it and effect the value, but the value doesn't make sense. I've determined that the number after the colon (ie. L:4) is the instance number (I think), because that number appears after the other dimensions for the instance. Is there a special syntax that can be used with the name for that dimension?
Thanks
Kev
 
Just to have something to refer to, here is my code.

INPUT
RK STRING
"Do you want the short (S) or long (L) retention knob?"
COLLET_CHUCK STRING
"Enter holder number (ie. 100300,150350,etc)"
EXT_A YES_NO
"Do you need an extension (Y,N)?"
IF EXT_A == YES
EXT_SIZE STRING
"Enter extension number (ie. 104731,404791,etc)"
LENGTHA NUMBER
"How far will this extension stick out from holder?"
ENDIF
END INPUT

RELATIONS
/*****RETENTION KNOB DECLARATIONS

IF RK == "s"
KNOB = "ms43562_ret_knob.prt"
ENDIF

IF RK == "l"
KNOB = "ms46597_ret_knob.prt"
ENDIF

/*****HOLDER DECLARATIONS

IF COLLET_CHUCK == "100300"
HOLDER = &quot;ch46461_100-300<cat50>.prt&quot;
ENDIF
.
.
.
IF COLLET_CHUCK == &quot;200600&quot;
HOLDER = &quot;ch47294_200-600<cat50>.prt&quot;
ENDIF

/*****EXTENSION STICK OUT
d1 = LENGTHA + L
!*** ERR: Relation has an error.

/*****FIRST EXTENSION DECLARATIONS

IF EXT_SIZE == &quot;104448&quot;
EXTA = &quot;ch46055_104448<sscc_100_shank>.prt&quot;
ENDIF
.
.
.
IF EXT_SIZE == &quot;408862&quot;
EXTA = &quot;ch47294_408862<sscc_150_shank>.prt&quot;
ENDIF
END RELATIONS


ADD FEATURE (initial number 1)
INTERNAL FEATURE ID 1
TYPE = DATUM PLANE
NAME = GAGE_LINE


FEATURE IS IN LAYER(S) :
01__ASM_ALL_DTM_PLN - OPERATION = SHOWN
01__ASM_DEF_DTM_PLN - OPERATION = SHOWN

END ADD


ADD FEATURE (initial number 2)
INTERNAL FEATURE ID 3
TYPE = DATUM PLANE
NAME = ASM_TOP


FEATURE IS IN LAYER(S) :
01__ASM_ALL_DTM_PLN - OPERATION = SHOWN
01__ASM_DEF_DTM_PLN - OPERATION = SHOWN

END ADD


ADD FEATURE (initial number 3)
INTERNAL FEATURE ID 5
TYPE = DATUM PLANE
NAME = ASM_FRONT


FEATURE IS IN LAYER(S) :
01__ASM_ALL_DTM_PLN - OPERATION = SHOWN
01__ASM_DEF_DTM_PLN - OPERATION = SHOWN

END ADD


ADD FEATURE (initial number 4)
INTERNAL FEATURE ID 7
TYPE = COORDINATE SYSTEM
NAME = ASM_DEF_CSYS


FEATURE IS IN LAYER(S) :
05__ASM_ALL_DTM_CSYS - OPERATION = SHOWN
05__ASM_DEF_DTM_CSYS - OPERATION = SHOWN

END ADD


ADD FEATURE (initial number 5)
INTERNAL FEATURE ID 39
PARENTS = 3(#2) 5(#3)
TYPE = DATUM AXIS
NAME = AA_1


FEATURE IS IN LAYER(S) :
02__ASM_ALL_AXES - OPERATION = SHOWN
_FEATURES - OPERATION = SHOWN
_AXES - OPERATION = SHOWN

END ADD


ADD FEATURE (initial number 6)
INTERNAL FEATURE ID 45
PARENTS = 1(#1)
TYPE = DATUM PLANE
NAME = RET_KNOB


FEATURE IS IN LAYER(S) :
01__ASM_ALL_DTM_PLN - OPERATION = SHOWN
_FEATURES - OPERATION = SHOWN

FEATURE'S DIMENSIONS:
d0 = 4.010
END ADD


ADD FEATURE (initial number 7)
INTERNAL FEATURE ID 47
PARENTS = 1(#1)
TYPE = DATUM PLANE
NAME = EXTENSION


FEATURE IS IN LAYER(S) :
01__ASM_ALL_DTM_PLN - OPERATION = SHOWN
_FEATURES - OPERATION = SHOWN

FEATURE'S DIMENSIONS:
d1 = 13.000
END ADD

ADD COMPONENT (KNOB)
INTERNAL COMPONENT ID 58
END ADD

ADD COMPONENT (HOLDER)
INTERNAL COMPONENT ID 53
END ADD

IF EXT_A == YES
ADD COMPONENT (EXTA)
INTERNAL COMPONENT ID 54
END ADD
ENDIF

ADD PART CH44116_104731
INTERNAL COMPONENT ID 55
END ADD

MASSPROP
END MASSPROP

 
In the family table for that component, the column that holds the value I'm interested in is labeled &quot;d42&quot; and also has the name &quot;L&quot;. I first used the d42 in my equation - no luck, so I then tried the name &quot;L&quot; - same thing. The &quot;4&quot; after the L is the session id for that component that shows up when I click on modify and select the component. All of the dimesions have a &quot;4&quot; at the ends of them. Thing is, if I put a different component in there, it's a different number. So.....I'm confused as to what is going on.
All I'm really trying to to do is bring in components from existing family tables to create an assembly by prompting the user for each component and during the prompt process, ask for offset values to properly position them in relation to one another.
I can get the components in there with no trouble. It's when I'm trying to position them that's driving me nuts.

Kev
 
You are trying to pass a relation at the assembly level to a part instance, Yes, each new instance that has the &quot;L&quot; dim will have a new session id number, so you cant make a value equal to &quot;L&quot; at the assembly level.

Try putting the relation at the part level, by calling an assembly level value. Try using Layouts for this also.

Steve

 
Status
Not open for further replies.

Part and Inventory Search

Sponsor