cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - Have a PTC product question you need answered fast? Chances are someone has asked it before. Learn about the community search. X

Creo Parametric Tips

Sort by:
I'm creating this blog to be the central home page for anyone interested in trying out the new functionality in Creo 4.0 related to 2D Detailing (drawing mode).Below will be links to other blog posts on specific detailed topics under the general heading of 2D Detailing. I'm
View full tip
Attached to this blog post is a short presentation on the new enhancements to Dimensions in Creo 4.0 in Drawing mode.Any questions or feedback you have related to Dimensions should be provided as comments to the blog post.That will be the easiest way for me to keep track of the comments
View full tip
Attached to this blog post is a short presentation and a video on the new enhancement to allow replacing the model of a drawing view with a related model in Creo 4.0.Any questions or feedback you have related to the ability to replace the model of a drawing view should be provided
View full tip
This is a document so please edit it and add, correct, &/or clarify how you see fit.  Then we can all use this as a point of reference when dealing with Repeat Regions/BOM programming.  If you don't want to edit it but still want to contribute, then just leave a comment.  Thanks!   List of System Parameters and Model Parameters used in model/drawing (Document - CS133915): https://support.ptc.com/appserver/cs/view/solution.jsp?n=CS133915&art_lang=en&posno=10&q=repeat%20region%20symbols&sourc…   List of Operators and Functions: Type Name syntax Explanation eg: Input   Eg: output Assignment Operator = MyVar="string" Defines, or assigns, a variable as a # or string       MyVar="H123" MyVar=10     = = No Output but defines the variable MyVar to be: H123 10 String Operators/Functions   Comparison Operators ==     == A==B     #A==#B Compares strings as equal.     Compares #s as equal "456"=="123" "456"=="456"   7==1 7==7 = =   = = NO YES   NO YES String Operators/Functions     Comparison Operators !=, <>, ~= A!=B A<>B A~=B   #A!=#B #A<>#B #A~=#B   Compares strings as unequal. (checks to see if not equal or not)     Compares #s as unequal. (checks to see if not equal or not)   "456"<>"123" "456"<>"456"     7!=1 7<>1 7~=1 7!=7 7<>7 7~=7 = =     = = = = = = YES NO     YES YES YES NO NO NO String Operators/Functions Arithmetic Operators +   + A+B   #A+#B For Strings: Concatenate strings. For Numbers: Add #s (Addition, Plus) "456"+"123"   7+7 =   = 456123 (returns a string e.g. "456123"*1="ERROR") 14 Arithmetic Operators - #A-#B Subtract #s (Subtraction, Take away, Minus) 3-2 = 1 Arithmetic Operators / #A/#B Divide #s (Division) 6/2 = 3 Arithmetic Operators * #A*#B Multiply #s (Multiplication) 6*2 = 12 Arithmetic Operators ^ #A^#B A to the Power of B (Exponent, Powers, Raised to) 2^3 = 8 Arithmetic Operators () (#A-#B)*#C Parentheses for grouping, Priority, and order of operations (3-2)*4 4*(3-2) = = 4 4 Comparison Operators ==   <See String Operators above>       Comparison Operators > #A>#B Greater than       Comparison Operators >= #A>#B Greater than or equal to       Comparison Operators !=, <>,~=   <See String Operators above>       Comparison Operators < #A<#B Less than       Comparison Operators <= #A<#B Less than or equal to       Comparison Operators | #A | #B | #C OR       Comparison Operators & #A & #B & #C AND       Comparison Operators ~,! #A == !B     #A!=B #A~=B NOT (i.e. Reverse a statement, Opposite) (                         Tilde ~ doesn't work for NOT next to a #.  Only next to operator = 7 == 7 7 == !7 7 == !4 7> 4 7>!4       7 != 7 7>=3 7!>=3 7~=7 7~=4   7 == ~7 7 == ~4 "ABC" == !"ABC" = = = = =       = = = = =   = = = YES NO NO YES YES (I guess even mathematically this is strange)   NO YES NO NO YES   ERROR ERROR ERROR Mathematical Functions abs abs(#) Returns the absolute value of a number abs(-2) = 2 Mathematical Functions acos acos(#º) Returns the arccosine of a number ACOS(0.125) = 1.445468496 Mathematical Functions asin asin(#º) Returns the arcsine of a number ASIN(0.125) = 0.125327831 Mathematical Functions atan atan(#º) Returns the arctangent of a number ATAN(0.125) = 0.124354995 Mathematical Functions atan2 atan2(#º) Returns the arctangent (inverse tangent), of the specified x- and y-coordinates ATAN2(2,3) = 0.982793723 Mathematical Functions bound bound(#x,#lo,#hi) Forces #x to be within the range of #lo to #hi. If x ≤ lo,        then output = lo. If lo ≤ x ≥ hi, then output = x If x ≥ hi,        then output = hi   (kind of the opposite as DEAD(), but not exactly)     bound(0,5,15) bound(7.25,5,15) bound(100.2,5,15)     = = =     5.0 7.25 15.0   cable_len       =   Mathematical Functions ceil ceil(#) Round # up ceil(3.25) = 4.0000   comparegraphs       =   Mathematical Functions cos cos(#º) Returns the Cosine of a # cos(2) = -0.416146837 Mathematical Functions cosh cosh(#º) Returns the hyperbolic Cosine of a # cosh(2) = 3.762195691   dbl_in_tol  dbl_in_tol (#x, #y, #r) Checks to see if x and y are within the tolerance of ± r #x, #y, #r are all real numbers Returns TRUE if abs(x-y) ≤ r Returns FALSE if abs(x-y) > r dbl_in_tol (2, 1, 1) dbl_in_tol (2,1,0.5) dbl_in_tol (10,20,9) dbl_in_tol (10,20,10) dbl_in_tol (10,20,11) = = = = = YES NO NO YES YES Mathematical Functions dead dead(#x,#lo,#hi) "Defines a range of values for x, for which the result of the function is 0." If x < lo,        then output = x–lo If lo ≤ x ≥ hi, then output = 0 If x > hi,         then output = x–hi   (kind of the opposite as BOUND(), but not exactly)     bound(0,5,15) bound(7.25,5,15) bound(100.2,5,15)     = = =     -5.0 (0-5) 0 85.2 (100.2-15) Cabling, Case Study Functions eang  eang(e_ID1, e_ID2)  Angle in radians between two entities, e_ID1 and e_ID2, of a case study   =   Cabling, Case Study Functions ecoordx  ecoordx(e_ID1)  x coordinate of the e_ID1 entity of a case study   =   Cabling, Case Study Functions ecoordy  ecoordy(e_ID1)  y coordinate of the e_ID1 entity of a case study   =   Cabling, Case Study Functions edistk  edistk(e_ID1, e_ID2) Distance between two entities, e_ID1 and e_ID2   =   Cabling, Case Study Functions elen  elen(e_ID1)   Length of the e_ID1 entity of a case study   =   Graph Evaluation Function evalgraph  evalgraph("graph_name", x) Graph evaluation function enables you to use graph features to drive dimensions through relations. The dimensions can be section, part, or assembly dimensions. graph_name—the name of a graph. x—the value along the x-axis of the graph for which the y value is returned.   =   Strings as Arguements exists  exists("x") Test if a parameter, variable, or dimension exists or not   x is a string EXISTS("ASM_MBR_NAME") EXISTS("ASM_MBR_NAME_") EXISTS("test03") = = = YES NO YES (note test03 is a defined variable in my relations) Mathematical Functions exp exp(#) e3 Returns e raised to the power of a number, where e = Euler's number = 2.718…  exp(3)=e3 =  20.085537 String Operators/Functions extract extract(#1,#2,#3) Extracts pieces of strings. #1=string analyzing #2=starting position #3=length (how many char to extract)   e.g. looking at the entire string (4324870B) Starting with the first character (4) Extract 7 characters (4324870) extract("4324870B",1,7)   Extract("4324870B",8,1) =   = 4324870   B Logical Functions False* false() false False function Returns "No" (For some reason doesn't return "False"!) False() False = = NO FALSE Mathematical Functions floor floor(#) Round # down Floor(3.25) = 3.0000 Mathematical Functions if IF(c,x,y) Similar to IF() function in Excel: c= condition statement x = what to do if true y= what to do if false (PTC documentation calls this a switching function but to me is too  basic to earn this title) IF(10==9,2,10) = 10.0 Conditional Statements if, Else, Endif IF <condition>    <what to do if condition is met>   ELSE <what to do if condition is not met> (optional)   ENDIF If--Starts the if statement Else--says what to do if statement is not bet (and is optional) Endif--(closes the if statement)   Can have IF without ELSE Can't have IF with more than one ELSE (E.g. IF ELSE ELSE ENDIF Can't have IF without ENDIF Can have nested IF statements.  Eg. IF ELSE IF ELSE IF ENDIF ENDIF ENDIF asm_mbr_name = 4564870B IF string_length(asm_mbr_name) > 7    Test01 = extract(asm_mbr_name,1,8) ELSE    Test01 = extract(asm_mbr_name,1,7) ENDIF = 4564870B String Operators/Functions itos itos(#) Integer to String-- Reads in an integer and returns a string.  If the input number is a # that is not an integer, itos rounds up, than converts to a string. itos(6) itos(6.7) = = 6 7 Mathematical Functions ln ln(#) Returns the natural log (base e) of a # ln(2) = 0.693147181 Mathematical Functions log log(#) Returns the base 10 logarithm of a # log(2) = 0.301029996   lookup_inst lookup_inst ("generic_name", match_mode, "param_name_1", match_value_1, "param_name_2", match_value_2,...) Used in ProPROGRAM Used to automatically replace the given Family Table instance with another FT instance: •generic name—Name of the generic model with a prt or asm extension •match_mode—One of the following values: –1 (find closest instance with param values less than or equal to supplied values) 0 (find instance with param values that match supplied values exactly) 1 (find closest instance with param values greater than or equal to supplied values) •param_name_1—Family table parameter name •match_value_1—Value to match against INPUT END INPUT RELATIONS INST_NAME = LOOKUP_INST ("PEG.PRT", 0, "D2", D6:0, "D1", D5:0 + 1) END RELATIONS ADD PART BLOCK INTERNAL COMPONENT ID 1 END ADD ADD PART (INST_NAME) INTERNAL COMPONENT ID 2 PARENTS = 1 (#1) END ADD MASSPROP END MASSPROP Example: Replacing Family Table-Driven Components --> "In this way, the instance of peg.prt being assembled to blockpeg.asm is controlled, based on the dimensions of the hole in block.prt."     massprop_param       =     material_param       =   Mathematical Functions max max(#) Compares 2 #s and returns the larger one max(6.2,4) = 6.2 Mathematical Functions min min(#) Compares 2 #s and returns the smaller one min(6.2,4) = 4 Mathematical Functions mod  mod(#n,#d) Modulus function.  Also known as Remainder function because gives just the remainder. e.g. n/d (numerator/denominator): 10/2=5 Remainder=0 (10/2+0/2) 10/3=3 Remainder=1 (9/3+1/3) 10/4=2 Remainder=2 (8/4+2/4)   In Programming Modulus can be useful to do many things. e.g. Determine if Number is Odd/Even [if mod(n,2)=0 then n is even] Clock arithmetic [mod(9+5,12)=2pm] Truncating decimal values Wrapping values into a certain range [given mod(n,360) to determine what quadrant a particular angle falls in for the unit circle) if Remainder       0-90, then Quad.1 if Remainder   90-180, then Quad.2 if Remainder 180-270, then Quad.3 If Remainder 270-360, then Quad.4]       Mod(10,2) Mod(10,3) Mod(10,4)           Mod(9+5) Mod(9+8,12)     Mod(400,360)   Mod(2300,360)       = = =           = =     =   =       0 1 2           2 (e.g. 9am+5hrs =2pm) 5 (e.g. 9am+8hrs = 5pm)     40 (40º is in quadrant 1)   140 (140º is in quadrant 2)   mp_assigned_mass       =     mp_cg_x       =     mp_cg_y       =     mp_cg_z       =     mp_mass       =     mp_surf_area       =     mp_volume       =   Mathematical Functions near near(#y,#y,#delta) determines if the numbers x and y are within delta of each other near(5,8,3) near(5,8,1) = = 1.0 (i.e. when true) 0.0 (i.e. when false) Logical Functions No* no() no No Function Returns "No" No() No = = NO FALSE Mathematical Functions pi pi() Returns the number for PI PI() = 3.141592654 Mathematical Functions pow pow(#x,#y) x^y Raising x to the Power of y #1=Base value #2=Exponent Pow(1,2) Pow(2,2) Pow(2,4) = = = 1.0 (i.e. 1^2) 4.0 (i.e. 2^2) 16.0 (i.e. 2^4) Strings as Arguements rel_model_name rel_model_name   or   rel_model_name()     Passing Strings as Arguments in Relations rel_model_name   rel_model_name()   =   501234 (when done on 501234.drw table repeat region relations) Strings as Arguements rel_model_type   rel_model_type   or   rel_model_type() Returns the current model type.  If you are working in Assembly mode, rel_model_type() is equal to assembly.   (note you can use with or without parenthesis) Passing Strings as Arguments in Relations rel_model_type   rel_model_type()     = DRAWING (when used in table repeat region relations) String Operators/Functions search search(string, substring) Searches for substrings. The resulting value is the position of the substring in the string (0 if not found). You can specify substrings with single or double quotes. search(asm_mbr_name,"501234") = 2 (Given asm_mbr_name is 05012340.prt) Mathematical Functions sign  sign(x,y)  Sign Transfer of y to x If y<0, the result is –abs(x) if y>=0, the result is abs(x). sign(-2,3) sign(2,3) sign(2,-3) sign(-2,-3) = = = = 2.0 2.0 -2.0 -2.0 Mathematical Functions sin sin(#º) Returns the sine of a number sin(2) = 0.909297427 Mathematical Functions sinh sinh(#º) Returns the hyperbolic sine of a number sinh(2) = 3.626860408   smt_def_ben_rad       =     smt_thickness       =   Mathematical Functions sqrt sqrt(#) Take the square root of a number sqrt(4) = 2 String Operators/Functions string_ends string_ends (string1, string2) Check to see if string1 ends with string2 Case Sensitive ("H" <NOT => "h") string_ends("h456","56") string_ends("h456H","56h") string_ends("h456H","56H") = = = YES NO YES Strings as Arguements string_length string_length(string)   string_length(<param>) Returns the number of characters in a string or parameter. string_length("als23fj") string_length(asm_mbr_name) = = 7.0 6.0 (when done on 501234.prt table repeat region relations) String Operators/Functions string_match string_match(string1, string2) Check to see if 2 strings are exactly the same or not Case insensitive ("H"="h") string_match("456","456") string_match("456","4560") string_match("h456","H456") = = = YES NO YES String Operators/Functions string_starts string_starts(string1, string2) Check to see if string1 starts with string2 Case Sensitive ("H" <NOT => "h") string_starts("h456","h4") string_starts("h456","H4") string_starts("h456","asd4") = = = YES NO NO Mathematical Functions tan tan(#º) Returns the tangent of a number tan(2) = -2.185039863 Mathematical Functions tanh tanh(#º) Returns the hyperbolic tangent of a number tanh(2) = 0.96402758   trajpar   "Trajectory Parameter" Returns a system of numbers that varies from 0 to 1 across the length of a given path http://en.wikipedia.org/wiki/Trajpar sin(trajpar*8*pi()) = creates an undulating wave Composite Curve Trajectory Function trajpar_of_pnt trajpar_of_pnt("trajname", "pointname") The trajectory parameter of a composite curve, trajpar_of_pnt, can be used in relations. The following function returns a value between 0.0 and 1.0:   =   Logical Functions True* true() true True function Returns "YES" (For some reason doesn't return "True"!) True() True = = YES TRUE Logical Functions Yes* yes() yes Yes function Returns "Yes" Yes() Yes = = YES TRUE     *Relations containing conditional statements are not sorted. A condition is an expression that is either TRUE (or YES) or FALSE (or NO). These values can be used interchangeably in the conditional statement. For example, the following statements can all be evaluated the same way: From <https://support.ptc.com/help/creo/creo_pma/r9.0/usascii/fundamentals/fundamentals/Conditional_Statements_in_Relations.html>     Pro/ENGINEER, Creo Elements/Pro and Creo Parametric
View full tip
Check out this video on Creo Layout & 2D Drawing Sketcher from PTC Application Engineers Presenters: Lino Tozzi (Technical Specialist, Fellow) and Tom Quaglia (Creo Segment Sales )   
View full tip
Creo tutorial based on your request - How to Create Ordinate dimensions in 3D and 2D
View full tip
Check out this video on Creo Parametric 8 & 9 Update from PTC Application Engineers  Presenters: Lee Goodwin (Solution Consulting, Principle) and Ryan Butcher (Solution Consulting, Fellow).   Creo ECAD MCAD Collaboration Learning   (view in My Videos)
View full tip
Applicable Release: Creo Parametric 1.0 to 8.0   Description: In this video, we will learn what settings are required to control import of DXF/DWG files in Creo Parametric
View full tip
Applicable Releases: Creo Parametric 1.0 to 8.0   Description: In this video, we will learn what settings are required to control export of DXF/DWG files in Creo Parametric
View full tip
Applicable Release: Creo Parametric 1.0 to 8.0   Description: In this video, we will learn how to set the number of decimal places for for one or more dimensions displayed in a drawing.
View full tip
Applicable Releases: Creo Parametric 1.0 to 8.0   Description: In this video, we will demo how to change default fonts for drawing text via detail option default_annotation_font
View full tip
Applicable Releases: Creo Parametric 1.0 to 8.0   Description: In this video, we will demo how to change the default template for: solid part sheetmetal part design asm drawing
View full tip
Applicable Releases: Creo Parametric 1.0 to 8.0   Description: In this video, we will be using "Active Layer Object Selection" option to: Control the display of features or datums in a drawing view Control display of items in layers on specific drawing view Hide/Unhide the features added in layer in specific drawing views
View full tip
Hi, today you can learn in the 6 minutes: How to display different assembly positions on a drawing
View full tip
Attached to this blog post is a short presentation on the new text and symbol fonts that we are providing in Creo 4.0. Although I'm listing this enhancement under the 2D Detailing area, it is also available in MBD. Any questions or feedback you have related to the new text and symbol fonts should be provided as comments to the blog post. That will be the easiest way for me to keep track of the comments and also be able to provide timely responses to your questions. If you follow this post, you can be notified of those comments as well and be able to learn from what others are asking. I may also periodically update this post to add some new details or information related to this enhancement.   Also, don't forget to follow the main blog post for 2D Detailing - which will have links to other 2D Detailing-related content 2D Detailing Home: Start Here! or the main blog post for MBD Creo 4.0 MBD Home: Start Here!
View full tip
Attached to this blog post is a short presentation and a video on the new enhancement to allow direct embedding of images into drawings in Creo 4.0.Any questions or feedback you have related to the ability to embed images in drawings should be provided as comments to the blog post.That
View full tip
Attached to this blog post is a short presentation on the new enhancements to Geometric Tolerances (GTOL) in Creo 4.0 in Drawing mode.Any questions or feedback you have related to GTOLs should be provided as comments to the blog post.That will be the easiest way for me to keep track
View full tip
Attached to this blog post is a short presentation on the new enhancements to Datum Targets in Creo 4.0 in Drawing mode.Any questions or feedback you have related to Datum Targets should be provided as comments to the blog post.That will be the easiest way for me to keep track of
View full tip
Attached to this blog post is a short presentation on the new enhancements to Datum Feature Symbols (aka Datum Tags) in Creo 4.0 in Drawing mode.Any questions or feedback you have related to Datum Feature Symbols should be provided as comments to the blog post.That will be the easiest
View full tip
In Creo 4.0 it is now possible to append wires and cables to branch bundles after the bundle has been created.  If you set configuration option prompt_extract_from_branches then you can control how wires and cables are extracted from a branch   Watch the attached video to learn more
View full tip
Prior to Creo 4.0. when a cable or wire failed due to violation of a fixed length there were not any tools to remove the fixed length of the failed feature.   With Creo 4.0 from Model Tree, or notification center you can now Right Click and choose Remove Fixed Length.  If the wire has already failed then the fixed length is automatically  removed,  and wire is regenerated - See the attached Video  
View full tip
Announcements