Using Parametric Equations in SolidWorks, Example 1
(Draft 3, 5/15/2006, SW 2006)
Introduction In this example the goal is to place a soli roller on a soli !ege" #heir relationship !ill $e go%erne $& parametric e'(ations (sing a esign parameter" In aition to the po!er that SoliWor)s incl(es in its e'(ation constr(ction !ino! for mathematical operations &o( !ill see that se%eral *is(al +asic for ,pplications (*+,) options can $e in%o)e for aitional logical an mathematical operations" #he esire final res(lt, in one config(ration, is seen in -ig(re 1"
Figure 1 A desired design configuration under parametric control #here are at least t!o !a&s to intro(ce a set of parametric esign e'(ations into a SoliWor)s part or config(ration" -irst, a techni'(e for intro(cing glo$al esign %aria$les $efore &o( start part constr(ction !ill $e ill(strate" #hen the follo!ing section !ill sho! ho! to intro(ce them if &o( alrea& ha%e a part (ner constr(ction" ,s (s(al, &o( m(st open a part $efore most of the Tools options $ecome a%aila$le" #herefore, start the parametric esign process there. 1" Select ToolsEquations to open an Equations panel" 2" #he empt& Equations partname panel appears an &o( pic) Add to start the e'(ations pop(lation process $& opening an Add Equation panel" 3" #he Add Equation panel opens $& ispla&ing its f(ll set of mathematical functions, as !ell as its calculator, !hich incl(es pi (/)" If &o( o not !ish to pic) those feat(res !ith the c(rsor &o( can minimi0e the panel $& selecting the collapse icon, " 1" Type the esire e'(ation !ith the format of variable = math_function description !" "ote that the a$o%e math2f(nction offers m(ch more po!er that the panel alone s(ggests $eca(se it can incl(e *+, mathematics as !ell as #$A logical operations" In this example &o( start !ith a single %aria$le name. 34ength 5 100 6 7lo$al parametric esign length8, as ill(strate in -ig(re 2" #o reference this %aria$le name in later e'(ations, on the right han sie of the 358, &o( m(st incl(e the name in a pair of '(otes, e"g" 34ength8" 9age 1 of 12 :op&right ;"<" ,)in" ,ll rights reser%e"
Figure % &tarting the parametric design variable first 5" #his e'(ation then appears in the prior Equations panel as acti%e e'(ation n(m$er 1, as seen in the top of -ig(re 3" SoliWor)s has also a(tomaticall& ae '(otes aro(n the %aria$le name (so &o( can later (se it on the right han sie of a later e'(ation)" #he e'(ation can $e elete or eite in that panel $& selecting the corresponing ta$" =o( !o(l select Add to contin(e the e'(ation pop(lation process" ,ss(me &o( plan for a secon glo$al %aria$le $& repeating the a$o%e proce(re an t&pe in a efinition of the roller iameter as. >oller2Dia 5 11 6 ?ptional rollre parameter" 6" If &o( fail to notice a t&ping error a$o%e &o( simpl& correct it later $& highlighting the secon e'(ation an select Edit in the Equations panel to place the e'(ation in the Edit Equation panel !here the re'(ire changes are mae an accepte (see $ottom of -ig(re 3)" @" E'it the Equations panel an (ebuild the part to activate &o(r e'(ations" If &o( !ant to s(ppress (or (ns(ppress) an e'(ation simpl& change the chec)A$ox stat(s in front of the e'(ation n(m$er" In this isc(ssion, the term 3glo$al %aria$le8 might mean glo$al for this config(ration onl&, or also glo$al in other specific esign config(rations" -ig(re 1 sho!s the a$o%e t!o e'(ations in the Equations panel" In that panel &o( can pic) the )onfigs ta$ to efine the scope of &o(r esign %aria$les" #he captions for the three possi$le scope choices are self explanator&" 9age 2 of 12 :op&right ;"<" ,)in" ,ll rights reser%e" Figure * The second design variable Figure + )onfigurations governed by these t,o variables =o( co(l contin(e to a e'(ations in a similar !a&" Instea, the follo!ing section !ill sho! ho! to create e'(ations as &o( $(il a part (or a them to an existing part)" Constructing the parametric triangular configurations #he constr(ction !ill $e '(ite simple geometricall&" ?pen a ne! part" -rom the front plane origin constr(ct the hori0ontal an %ertical lines an then close the triangle" Bost esigns !ill $e parametric an are efine $& one or more 3glo$al %aria$les8" #his esign !ill $e go%erne $& t!o esign parametersC glo$al %aria$les 3,ngle8, an 34ength8" #he process re'(ires that &o( $e a$le to select an name %ario(s imensions" #o o that in an& ra!ing &o( !ill nee to sho! the feat(re imensions, along !ith their names" <ach line (or extr(sion thic)ness, etc") is gi%en a efa(lt imension name an %al(e !hen it is create" ,ll imensions an names !ill appear in each %ie!" #hat can res(lt in a %er& cl(ttere image !hen a part has man& feat(res" =o( can right clic) on (n!ante items an select 3hie8 to (ncl(tter the ispla&" +etter still, !o(l $e to hie each feat(re 9age 3 of 12 :op&right ;"<" ,)in" ,ll rights reser%e" imension an name after the& are create, if &o( )no! the& !ill not $e change $& the parametric esign %aria$les" #&picall&, fillets !o(l $e s(ch a feat(re" +egin the part constr(ction $& t(rning on the option to ispla& names. 1- Select Toolsptions&ystem ptions&ho, dimension names! %- In the Feature .anager right clic) on Annotations&ho, Feature /imensions" *- S)etching in the front plane, dra, a hori0ontal line from the origin to ser%e as the $ase of the triangle" Dse &mart /imensions to sho! the length &o( re! an the efa(lt name that SW has assigne to that imension" +- /ouble clic0 on that imension so that the .odify panel opens, as seen in -ig(re 5" >ather than change the n(m$er, clic) on the o!n arro! for a%aila$le options" 1- Select Add Equation" Since there are c(rrentl& no e'(ations efine SW E(mps to the Add Equation panel of the <'(ations panel" #he efa(lt name (in '(otes) of the selecte imension a(tomaticall& appears, to start the e'(ation" 2- Type in the imension length of 133 (3D1FS)etch18 5 100), or (tili0e the calculator pad4 !" Gotice, in -ig(re 6, that the efa(lt imension name (D1) is follo!e $& an 3F8, follo!e $& the efa(lt s)etch name" ?ther neee names can $e appene $& SW to that c(rrent string"
Figure 1 /efining the line length ,ith an equation Figure 2 &etting a dimension ,ith an equation =o( co(l %ie! the a$o%e steps as an inirect !a& to insert glo$al esign %aria$les" #o o that. 9age 1 of 12 :op&right ;"<" ,)in" ,ll rights reser%e" 1" In the Equations panelEdit All (see -ig(re 6) to open an eit panel" 2" In Edit Equation t&pe 4ength 5 100 6 7lo$al %aria$le, !" #his ma)es the ne! e'(ation appear in the Equations panel" It is place at the top of the list since it oes not reference an& names on the right of 358" Select Edit All again" 3" In Edit Equations highlight the pre%io(s length (100) an replace it !ith 4ength (-ig(re @)"
Figure 5 /efining and citing a global variable #hese t!o e'(ations ha%e not $een acti%ate &et ($& a >e$(il)" +efore oing that the s)etch !ill $e rename (to re(ce the length of the e'(ation), an the imension !ill $e rename to enhance clarit& of the e'(ation. 1" Dse a slow double clic0 on the name 6S)etch1H in the Feature .anager to replace the efa(lt s)etch name !ith 6S21H or 6S1H" ?f co(rse, if that s)etch ha a %er& important f(nction &o( might (se a name longer than the original" 2" ?ne !a& to change the imension name is to right clic) in the graphics area an pic) 6roperties (!hile the imension is highlighte) to open the /imension 6roperties panel" 3" #here type the esire name, sa& 7ori8ontal!, as seen in -ig(re I
Figure 9 )hanging the default name property of a dimension While the name changes ha%e ta)en effect, as seen in -ig(re J, the e'(ations ha%e not since a >e$(il comman has not $een iss(e" #hat is clear since the initial line length is (nchange as also seen in -ig(re J, an $eca(se it oes not ha%e a preceing e'(ation s&m$ol, " Go! &o( iss(e a (ebuild comman to acti%ate the t!o e'(ations" 9age 5 of 12 :op&right ;"<" ,)in" ,ll rights reser%e" Figure : Active name changes but inactive equations Gext the %ertical sie of the triangle !ill ha%e its imension gi%en a name, *ertical, as o(tline a$o%e, an !ill ha%e the imensions %al(e etermine $& a logical *+, e'(ation. 1" Dra! the %ertical sie from the origin an close the triangle" 2" -or the %ertical sie &mart /imensions.odifyAdd Equation (see -ig(re 10")
Figure 13 &elect an equation to define a dimension 3" #he Add Equation panel appears !ith (the efa(lt prompt) ;/1<&_1= =" 1" Insert a #$A iif statement to create an ifAthenAelse n(merical res(lt, s(ch as t&ping in ;/1<&_1= = >>F ?@ength A 1334 134 113B, setting the %ertical imension to 50 or 150 mm" 5" Gext, change the efa(lt name from D1 to *ertical $& (sing the /imension 6roperties panel, as escri$e a$o%e (an in -ig(re I)" #he last t!o steps are seen in -ig(re 11"
Figure 11 Csing a #$A statement in a &olidDor0s equation ,gain, this ne! e'(ation !ill not ta)e effect (ntil a (ebuild comman is iss(e" +efore going on to that step it !ill $e (sef(l to re%ie! some of the *+, enhancements an limitations relate to e'(ations in SoliWor)s" 9age 6 of 12 :op&right ;"<" ,)in" ,ll rights reser%e" Using VBA in SolidWorks equations While the stanar SW Add Equation panel offers a lot of po!er, it c(rrentl& has some important limitations" ?ne is that the e'(ation m(st occ(p& a single line (of (n)no!n maxim(m length)" ,nother is that it omits a fe! (sef(l mathematical operations" -inall&, the a%aila$ilit& of logical f(nctions seems to $e missing an is onl& mentione in three lines of the online help" *is(al +asic for ,pplications can help !ith all three shortcomings" #he *+, iif f(nction, )no!n as the immeiate if, is a conense one line %ersion of an ifAthenAelse logic !ith s&ntax. iif ( logical_expression, result_if_true, result_if_false ). -ig(re 12 sho!s six ifferent (ses of iif, an se%en mathematical f(nctions that s(pplement those liste in SW" #he !or)ing logical operators in -ig(re 12 are not '(ite !hat &o( !o(l expect if &o( are familiar !ith *+, or engineering programming lang(ages li)e -ortran J5" -o(r logical operators that s(rprisingl& fail in SW are gi%en in -ig(re 13" Figure 1% #$A logic and e'tra functions available for equations ?ne (sef(l ne! mathematical operation, in -ig(re 12, is integer arithmetic i%ision !hich is enote !ith the $ac)slash (K)" If &o( )no! *+, e'(ation s&ntax &o( can al!a&s tr& it in an e'(ation" If it is not (tili0e in SW &o( !ill simpl& get 3#he s&ntax of this e'(ation is incorrect8 as an error message" L#he a(thor $elie%es that the SW e'(ation parser has a logic error that allo!s onl& one 358 per statement (nli)e *+,, :, -ortran, ;a%a, etc" #hat !o(l clearl& explain the logic fail(res in -ig(re 13 an the nee for 3li)e8 in -ig(re 12"M 9age @ of 12 :op&right ;"<" ,)in" ,ll rights reser%e" Figure 1* Cne'pected #$A logic failures- Secondary variales Sometimes &o( ma& !ant to calc(late items alrea& a%aila$le in SW so to ha%e them han& in an e'(ation an to a%oi tr&ing to incl(e men( pic)s" S(ch items might incl(e the area, perimeter, centroi, etc" Nere the first t!o are (se to ill(strate com$ining name imensions an the s'(are root f(nction (s'r)" #he area calc(lation (!ith incorrect (nits ispla&) is gi%en in -ig(re 11 (after an eit, not sho!n here, re(ce the result_if_false from 150 to 115 mm)" #hat fig(re ser%es as a reminer that the (ser m(st ass(re e%er& term in an e'(ation has the same (nits" If the (nits ispla&e incorrectl& &o( co(l note that in the comment" Figure 1+ Adding an area calculation as Equation + !odi"ying controlling design variales #he moification of the $ase length glo$al esign parameter !ill $e ill(strate next (finall&) to sho! the effect of the $ase length logic on the part height. 1" If the Equations panel is still open simpl& highlight the first e'(ation (-ig(re 15)" 2" ?ther!ise (se Feature .anagerEquationsEdit to open the Equation panel" 3" In the Edit Equation panel change the %al(e of 4ength from 100 to 6I mm, ?O" 1" ,cti%ate the moifie e'(ations !ith a (ebuild" 5" #hat res(lts in the height $ecoming 115 mm, as seen in -ig(re 16 In -ig(re 16 notice that the height imension is no! precee $& the e'(ation s&m$ol to remin &o( that it is go%erne $& an e'(ation" #he perimeter calc(lation also appears in that fig(re" 9age I of 12 :op&right ;"<" ,)in" ,ll rights reser%e" Figure 11 )hanging the base design parameter
Figure 12 6arametric change in the triangle height Gext, the roller is to $e place tangent to the incline" #he act(al position !ill $e set $& the angle from the origin to the center of the roller" #hat angle, name 3Angle8, !ill $e etermine $& a logical operation (-ig(re 1@)"
Figure 15 &etting the roller angle via logic When the eiting of these six e'(ations is complete, as seen in -ig(re 1I, there are fo(r possi$le si0es for this pair of o$Eects" #he ata an image for 4ength 5 6I appear in the top an left center regions of 9age J of 12 :op&right ;"<" ,)in" ,ll rights reser%e" -ig(re 1I" #he corresponing image an ata for 4ength 5 62 are seen in the mile right an $ottom regions, respecti%el& of the same fig(re"
Figure 19 T,o configurations based on the ;@ength= global variable #riven dimensions It is still possi$le to (se ri%en imensions in a part go%erne $& e'(ations" -or example, ass(me &o( nee the center location of the roller" If &o( a a %ertical imension to that point the s)etch t(rns re an &o( get a !arning that the re'(este information sho(l $e consiere as a ri%en imension" ,greeing to that change allo!s the imension to appear, $(t in a ifferent color (gra& here)" #hose interactions are ill(strate in -ig(re 1J" <xtr(ing the t!o regions !ith ifferent thic)nesses gi%es the solis seen originall& in -ig(re 1" 9age 10 of 12 :op&right ;"<" ,)in" ,ll rights reser%e" Closure :learl&, some of the logic in%o)e in this example is not %er& practical an !as chosen E(st to ill(strate the a$ilit& to (se logic in the esign process" #he reaer is enco(rage to simpl& tr& generating %ario(s forms of e'(ations, as in -ig(re 12 an -ig(re 13, to %erif& that &o( (nerstan the process" -or example, tr& incl(ing the *+, line contin(ation s&m$ol, 3 28 ($lan) (nerscore), to (se a secon line in an e'(ation " Figure 1: (elated driven dimension to roller center References 1" #ri,xial Design an ,nal&sis, 8,ing 4ogic to <'(ations. No! *+, can $e (tili0e to o ama0ing things8, SW #ips P #ric)s, %" 1A0@, ;(l& 2001" 2" #ri,xial Design an ,nal&sis, 84in)s, <'(ations, an Design #a$les8, SW #ips P #ric)s, %" 2A 02, ,pril 2000" 9age 11 of 12 :op&right ;"<" ,)in" ,ll rights reser%e" 3" W"<" No!ar, ;":" B(sto, 3Dse of 9arametric Boeling #echni'(es8, in Introduction to Solid Modeling Using SolidWorks, Bc7ra! Nill, 2006" 1" B" Spens, Automating SolidWorks 2! using Macros, SD: 9($lications, 2001" 5" SD>:, "xploring I#"AS #esign, $. II, Str(ct(ral D&namics >esearch :orp", 1JJ6" 9age 12 of 12 :op&right ;"<" ,)in" ,ll rights reser%e"