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

Community Tip - Learn all about PTC Community Badges. Engage with PTC and see how many you can earn! X

Creo Parametric Tips

Sort by:
Practical example - how to combine Flexible modeling with Surface and Solid modeling on imported geometry. Used features: Flexible Remove Feature, Boundary Blend, Extend, Copy and Paste Geometry, Merge, Solidify, Flexible Attach, Flexible Move, etc.
View full tip
In this tutorial, you can learn How to create toroidal sweep and how it is possible to drive the shape by dimensions, relation and parameters.
View full tip
Creo Parametric: Multibody Home --  Start Here!   I'm creating this blog to be the central home page for anyone interested in trying out the new capabilities first introduced in Creo 7.0  that support multibody design. Below will be links to other blog posts on specific detailed topics under the general heading of multibody. I'm interested in getting your feedback on all the new stuff, but I also want to try to do this in a somewhat organized fashion. So, you can think of this blog as the top node of a tree that will have a number of branches below it for the various multibody related topics.   In parallel to the list of blog posts below, I also plan to maintain a Multibody Infos post that provides you with links to further information, documentation, presentations, and any other information bits and pieces around multibody design in Creo. To get going effectively, I encourage you to first go through the What’s new material and tutorials that you find there, so that you have an overview and high level background on the use cases and capabilities. That will allow me then to go one level deeper and include some tips, tricks etc. in the blog posted here. I hope to be able to post new information regularly and hope you tune in, find it beneficial and give feedback in return.   If you want to send me private messages, that’s fine, too. In particular if you have any suggestion on future blog post topics or questions, feel free to contact me at mneumueller@ptc.com . Enjoy…Martin   Blog posts: Multibody – Intro, Model tree interaction and What’s that default body doing? Multibody- Seven 90sec-Tipps & Tricks around Booleans & Split Multibody - So many ways to trim a body Multibody - Creo 7.0.1 Enhancements  Multibody -  Windchill 12 & Creo 7.0.1 Multibody –How to display a body parameter in the model tree  Multibody – How to display, use or call-out a body parameter – Part 1  Multibody - How to display, use or call-out a body parameter – Part 2 Multibody - Body selection, Body object vs Surface referencing Multibody - How to get rid of a body? -  Show/Hide vs Remove Body vs Delete Body Multibody - How to save out a single body to .stl or step? Multibody - How does this all work with reference parts for MoldDesign and  NC?  Multibody - What are these Construction bodies? and all the details around them…. How to create a body intersection curve and what might it be good for? Multibody - How do I >position< bodies?  Multibody - A simple body-based motion envelope cutout example Multibody - Clearance & Creepage Analysis Multibody - Model Tree Auto-locate capability: Update – Creo 7.0 vs Creo 8.0 & Creo 9.0 Multibody - External Copy Geometry (ECG) and body attribute propagation Multibody –  A "Geometry Re-use"- Use Case that became possible with new capabilities in Creo 10.0  ..... And more to come…
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
As you all know Pro/Diagram is being superseded by Creo Schematics.  In Creo 4.0 we are restricting access to Pro/Diagram via a hidden configuration option and in Creo 5.0 we will officially retire Pro/Diagram turning it off completely.   To turn Pro/Diagram back on you need to add enable_obsolete_modes True to your configuration file and start Creo.
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
An old article I wrote for WF2 and ModelCHECK. Forgive the non-native format, and the age of the document. However it may be useful to those still on WF2. I need to update this for WF4/5
View full tip
PTC is pleased to announce the Creo Community Challenge, a recurring event where you can solve an open-ended challenge using Creo. Click to learn more.
View full tip
Do you want to learn about ProProgram? Here is the introduction tutorial:
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
How to configure and use ModelCHECK
View full tip
How to change the license file in FlexNet Admin License Server 11.10.0 How to reconfigure FlexNet Admin License Server with an updated license file How to reconfigure the license manager with a new license file How to update the license server (lmadmin) to point to a new license file Error "(-12):Invalid returned data from license server system" when executing ptcstatus.bat in Flexnet Admin License Server How to update application with a new license file if license server is FlexNet Admin License Server (lmadmin) The client software does not recognize the new license file. Unable to find ptcsetup.bat to update the new license
View full tip
We’ve taken a trip to the French Alps to learn all about the future of one of the newest forms of transport - a visionary, chainless vehicle with an advanced pedaling system creating a new world where they want everyone to be physically active.    
View full tip
YCOM, a leader in motorsports and lightweight composites, has pioneered the world's first fleet of racing e-scooters for the Electric Scooter Championship (ESC). Listen in to learn about their unique approach to product development, which involves rapid prototyping and collaboration with former MotoGP riders.      
View full tip
In this episode of the Third Angle, we head to Italy’s Motor Valley to explore the engineering prowess of Dallara, the legendary manufacturer behind some of the most advanced racing cars in the world.    
View full tip
Muddy Machines, a pioneering company tackling the challenges of modern farming with agricultural robots. Join us as we learn how its innovative robot, Sprout, is improving asparagus harvesting, whilst reducing soil damage, cutting emissions, and addressing labor shortages in agriculture.    
View full tip
A special episode highlighting outstanding companies making significant improvements to our everyday lives. From enhancing experiences for the deafblind community to changing the way we rest for a refreshed and ready start to the day. We highlight the innovative and creative efforts making the world a better place, one product at a time.  
View full tip
In this episode, we’re taken into the enchanting world of Hasbro, the globally famous toy and games company. We visit their HQ in Rhode Island and uncover the magic behind the design of some of the most iconic toys ever created.    
View full tip
Today, we're diving into the groundbreaking world of nano voxel, a company specializing in two photon polymerization, 3d printing technology, or in other words, 3d printing in miniature. They aim to transform micromanufacturing by replicating parts into silicon molds with unmatched precision. Our producer Aaron visited Nanovoxel's state of the art facilities to meet founder Domenico Foglia. Hear how their incredible feats of micromanufacturing can create a baby Yoda the size of a grain of sand, or an entire castle crafted on a pencil tip.    
View full tip
Welcome to Third Angle, where today we’re diving into wave power technology. To hit net zero targets around the world, we need to harness the power of nature and smart technology. In this episode, we learn all about CorPower Ocean, supported by PTC's largest partner, PDS Vision, who are leading the way with a wave energy system that balances supply and demand without needing as much generation capacity, storage, or grid infrastructure. Our producer, Benoît Derrier, visited the company's testing center in Stockholm to see their latest prototype in action. He also spoke with Jacob Ljungbäck and Antoine Bonel, two of CorPower Ocean's talented engineers, who shared some amazing insights into their groundbreaking tech and its potential impact on renewable energy.    
View full tip
Creo Product Insights presented by Emily Pinto, Solutions Consultant of PTC.  
View full tip
Announcements