XHG.⠀⠀⠀⠀◯⠀ᗩᑐᑕꖴ✤ᔓᔕᗩᙁᗱᗴ⠀◯⠀⠀⠀⠀ⵙ⠀⠀⠀⠀◯⠀ᗱᗴᙁᗩᔓᔕ✤ꖴᑐᑕᗩ⠀◯⠀⠀⠀⠀.GHX 1.1MB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361163621636316364163651636616367163681636916370163711637216373163741637516376163771637816379163801638116382163831638416385163861638716388163891639016391163921639316394163951639616397163981639916400164011640216403164041640516406164071640816409164101641116412164131641416415164161641716418164191642016421164221642316424164251642616427164281642916430164311643216433164341643516436164371643816439164401644116442164431644416445164461644716448164491645016451164521645316454164551645616457164581645916460164611646216463164641646516466164671646816469164701647116472164731647416475164761647716478164791648016481164821648316484164851648616487164881648916490164911649216493164941649516496164971649816499165001650116502165031650416505165061650716508165091651016511165121651316514165151651616517165181651916520165211652216523165241652516526165271652816529165301653116532165331653416535165361653716538165391654016541165421654316544165451654616547165481654916550165511655216553165541655516556165571655816559165601656116562165631656416565165661656716568165691657016571165721657316574165751657616577165781657916580165811658216583165841658516586165871658816589165901659116592165931659416595165961659716598165991660016601166021660316604166051660616607166081660916610166111661216613166141661516616166171661816619166201662116622166231662416625166261662716628166291663016631166321663316634166351663616637166381663916640166411664216643166441664516646166471664816649166501665116652166531665416655166561665716658166591666016661166621666316664166651666616667166681666916670166711667216673166741667516676166771667816679166801668116682166831668416685166861668716688166891669016691166921669316694166951669616697166981669916700167011670216703167041670516706167071670816709167101671116712167131671416715167161671716718167191672016721167221672316724167251672616727167281672916730167311673216733167341673516736167371673816739167401674116742167431674416745167461674716748167491675016751167521675316754167551675616757167581675916760167611676216763167641676516766167671676816769167701677116772167731677416775167761677716778167791678016781167821678316784167851678616787167881678916790167911679216793167941679516796167971679816799168001680116802168031680416805168061680716808168091681016811168121681316814168151681616817168181681916820168211682216823168241682516826168271682816829168301683116832168331683416835168361683716838168391684016841168421684316844168451684616847168481684916850168511685216853168541685516856168571685816859168601686116862168631686416865168661686716868168691687016871168721687316874168751687616877168781687916880168811688216883168841688516886168871688816889168901689116892168931689416895168961689716898168991690016901169021690316904169051690616907169081690916910169111691216913169141691516916169171691816919169201692116922169231692416925169261692716928169291693016931169321693316934169351693616937169381693916940169411694216943169441694516946169471694816949169501695116952169531695416955169561695716958169591696016961169621696316964169651696616967169681696916970169711697216973169741697516976169771697816979169801698116982169831698416985169861698716988169891699016991169921699316994169951699616997169981699917000170011700217003170041700517006170071700817009170101701117012170131701417015170161701717018170191702017021170221702317024170251702617027170281702917030170311703217033170341703517036170371703817039170401704117042170431704417045170461704717048170491705017051170521705317054170551705617057170581705917060170611706217063170641706517066170671706817069170701707117072170731707417075170761707717078170791708017081170821708317084170851708617087170881708917090170911709217093170941709517096170971709817099171001710117102171031710417105171061710717108171091711017111171121711317114171151711617117171181711917120171211712217123171241712517126171271712817129171301713117132171331713417135171361713717138171391714017141171421714317144171451714617147171481714917150171511715217153171541715517156171571715817159171601716117162171631716417165171661716717168171691717017171171721717317174171751717617177171781717917180171811718217183171841718517186171871718817189171901719117192171931719417195171961719717198171991720017201172021720317204172051720617207172081720917210172111721217213172141721517216172171721817219172201722117222172231722417225172261722717228172291723017231172321723317234172351723617237172381723917240172411724217243172441724517246172471724817249172501725117252172531725417255172561725717258172591726017261172621726317264172651726617267172681726917270172711727217273172741727517276172771727817279172801728117282172831728417285172861728717288172891729017291172921729317294172951729617297172981729917300173011730217303173041730517306173071730817309173101731117312173131731417315173161731717318173191732017321173221732317324173251732617327173281732917330173311733217333173341733517336173371733817339173401734117342173431734417345173461734717348173491735017351173521735317354173551735617357173581735917360173611736217363173641736517366173671736817369173701737117372173731737417375173761737717378173791738017381173821738317384173851738617387173881738917390173911739217393173941739517396173971739817399174001740117402174031740417405174061740717408174091741017411174121741317414174151741617417174181741917420174211742217423174241742517426174271742817429174301743117432174331743417435174361743717438174391744017441174421744317444174451744617447174481744917450174511745217453174541745517456174571745817459174601746117462174631746417465174661746717468174691747017471174721747317474174751747617477174781747917480174811748217483174841748517486174871748817489174901749117492174931749417495174961749717498174991750017501175021750317504175051750617507175081750917510175111751217513175141751517516175171751817519175201752117522175231752417525175261752717528175291753017531175321753317534175351753617537175381753917540175411754217543175441754517546175471754817549175501755117552175531755417555175561755717558175591756017561175621756317564175651756617567175681756917570175711757217573175741757517576175771757817579175801758117582175831758417585175861758717588175891759017591175921759317594175951759617597175981759917600176011760217603176041760517606176071760817609176101761117612176131761417615176161761717618176191762017621176221762317624176251762617627176281762917630176311763217633176341763517636176371763817639176401764117642176431764417645176461764717648176491765017651176521765317654176551765617657176581765917660176611766217663176641766517666176671766817669176701767117672176731767417675176761767717678176791768017681176821768317684176851768617687176881768917690176911769217693176941769517696176971769817699177001770117702177031770417705177061770717708177091771017711177121771317714177151771617717177181771917720177211772217723177241772517726177271772817729177301773117732177331773417735177361773717738177391774017741177421774317744177451774617747177481774917750177511775217753177541775517756177571775817759177601776117762177631776417765177661776717768177691777017771177721777317774177751777617777177781777917780177811778217783177841778517786177871778817789177901779117792177931779417795177961779717798177991780017801178021780317804178051780617807178081780917810178111781217813178141781517816178171781817819178201782117822178231782417825178261782717828178291783017831178321783317834178351783617837178381783917840178411784217843178441784517846178471784817849178501785117852178531785417855178561785717858178591786017861178621786317864178651786617867178681786917870178711787217873178741787517876178771787817879178801788117882178831788417885178861788717888178891789017891178921789317894178951789617897178981789917900179011790217903179041790517906179071790817909179101791117912179131791417915179161791717918179191792017921179221792317924179251792617927179281792917930179311793217933179341793517936179371793817939179401794117942179431794417945179461794717948179491795017951179521795317954179551795617957179581795917960179611796217963179641796517966179671796817969179701797117972179731797417975179761797717978179791798017981179821798317984179851798617987179881798917990179911799217993179941799517996179971799817999180001800118002180031800418005180061800718008180091801018011180121801318014180151801618017180181801918020180211802218023180241802518026180271802818029180301803118032180331803418035180361803718038180391804018041180421804318044180451804618047180481804918050180511805218053180541805518056180571805818059180601806118062180631806418065180661806718068180691807018071180721807318074180751807618077180781807918080180811808218083180841808518086180871808818089180901809118092180931809418095180961809718098180991810018101181021810318104181051810618107181081810918110181111811218113181141811518116181171811818119181201812118122181231812418125181261812718128181291813018131181321813318134181351813618137181381813918140181411814218143181441814518146181471814818149181501815118152181531815418155181561815718158181591816018161181621816318164181651816618167181681816918170181711817218173181741817518176181771817818179181801818118182181831818418185181861818718188181891819018191181921819318194181951819618197181981819918200182011820218203182041820518206182071820818209182101821118212182131821418215182161821718218182191822018221182221822318224182251822618227182281822918230182311823218233182341823518236182371823818239182401824118242182431824418245182461824718248182491825018251182521825318254182551825618257182581825918260182611826218263182641826518266182671826818269182701827118272182731827418275182761827718278182791828018281182821828318284182851828618287182881828918290182911829218293182941829518296182971829818299183001830118302183031830418305183061830718308183091831018311183121831318314183151831618317183181831918320183211832218323183241832518326183271832818329183301833118332183331833418335183361833718338183391834018341183421834318344183451834618347183481834918350183511835218353183541835518356183571835818359183601836118362183631836418365183661836718368183691837018371183721837318374183751837618377183781837918380183811838218383183841838518386183871838818389183901839118392183931839418395183961839718398183991840018401184021840318404184051840618407184081840918410184111841218413184141841518416184171841818419184201842118422184231842418425184261842718428184291843018431184321843318434184351843618437184381843918440184411844218443184441844518446184471844818449184501845118452184531845418455184561845718458184591846018461184621846318464184651846618467184681846918470184711847218473184741847518476184771847818479184801848118482184831848418485184861848718488184891849018491184921849318494184951849618497184981849918500185011850218503185041850518506185071850818509185101851118512185131851418515185161851718518185191852018521185221852318524185251852618527185281852918530185311853218533185341853518536185371853818539185401854118542185431854418545185461854718548185491855018551185521855318554185551855618557185581855918560185611856218563185641856518566185671856818569185701857118572185731857418575185761857718578185791858018581185821858318584185851858618587185881858918590185911859218593185941859518596185971859818599186001860118602186031860418605186061860718608186091861018611186121861318614186151861618617186181861918620186211862218623186241862518626186271862818629186301863118632186331863418635186361863718638186391864018641186421864318644186451864618647186481864918650186511865218653186541865518656186571865818659186601866118662186631866418665186661866718668186691867018671186721867318674186751867618677186781867918680186811868218683186841868518686186871868818689186901869118692186931869418695186961869718698186991870018701187021870318704187051870618707187081870918710187111871218713187141871518716187171871818719187201872118722187231872418725187261872718728187291873018731187321873318734187351873618737187381873918740187411874218743187441874518746187471874818749187501875118752187531875418755187561875718758187591876018761187621876318764187651876618767187681876918770187711877218773187741877518776187771877818779187801878118782187831878418785187861878718788187891879018791187921879318794187951879618797187981879918800188011880218803188041880518806188071880818809188101881118812188131881418815188161881718818188191882018821188221882318824188251882618827188281882918830188311883218833188341883518836188371883818839188401884118842188431884418845188461884718848188491885018851188521885318854188551885618857188581885918860188611886218863188641886518866188671886818869188701887118872188731887418875188761887718878188791888018881188821888318884188851888618887188881888918890188911889218893188941889518896188971889818899189001890118902189031890418905189061890718908189091891018911189121891318914189151891618917189181891918920189211892218923189241892518926189271892818929189301893118932189331893418935189361893718938189391894018941189421894318944189451894618947189481894918950189511895218953189541895518956189571895818959189601896118962189631896418965189661896718968189691897018971189721897318974189751897618977189781897918980189811898218983189841898518986189871898818989189901899118992189931899418995189961899718998189991900019001190021900319004190051900619007190081900919010190111901219013190141901519016190171901819019190201902119022190231902419025190261902719028190291903019031190321903319034190351903619037190381903919040190411904219043190441904519046190471904819049190501905119052190531905419055190561905719058190591906019061190621906319064190651906619067190681906919070190711907219073190741907519076190771907819079190801908119082190831908419085190861908719088190891909019091190921909319094190951909619097190981909919100191011910219103191041910519106191071910819109191101911119112191131911419115191161911719118191191912019121191221912319124191251912619127191281912919130191311913219133191341913519136191371913819139191401914119142191431914419145191461914719148191491915019151191521915319154191551915619157191581915919160191611916219163191641916519166191671916819169191701917119172191731917419175191761917719178191791918019181191821918319184191851918619187191881918919190191911919219193191941919519196191971919819199192001920119202192031920419205192061920719208192091921019211192121921319214192151921619217192181921919220192211922219223192241922519226192271922819229192301923119232192331923419235192361923719238192391924019241192421924319244192451924619247192481924919250192511925219253192541925519256192571925819259192601926119262192631926419265192661926719268192691927019271192721927319274192751927619277192781927919280192811928219283192841928519286192871928819289192901929119292192931929419295192961929719298192991930019301193021930319304193051930619307193081930919310193111931219313193141931519316193171931819319193201932119322193231932419325193261932719328193291933019331193321933319334193351933619337193381933919340193411934219343193441934519346193471934819349193501935119352193531935419355193561935719358193591936019361193621936319364193651936619367193681936919370193711937219373193741937519376193771937819379193801938119382193831938419385193861938719388193891939019391193921939319394193951939619397193981939919400194011940219403194041940519406194071940819409194101941119412194131941419415194161941719418194191942019421194221942319424194251942619427194281942919430194311943219433194341943519436194371943819439194401944119442194431944419445194461944719448194491945019451194521945319454194551945619457194581945919460194611946219463194641946519466194671946819469194701947119472194731947419475194761947719478194791948019481194821948319484194851948619487194881948919490194911949219493194941949519496194971949819499195001950119502195031950419505195061950719508195091951019511195121951319514195151951619517195181951919520195211952219523195241952519526195271952819529195301953119532195331953419535195361953719538195391954019541195421954319544195451954619547195481954919550195511955219553195541955519556195571955819559195601956119562195631956419565195661956719568195691957019571195721957319574195751957619577195781957919580195811958219583195841958519586195871958819589195901959119592195931959419595195961959719598195991960019601196021960319604196051960619607196081960919610196111961219613196141961519616196171961819619196201962119622196231962419625196261962719628196291963019631196321963319634196351963619637196381963919640196411964219643196441964519646196471964819649196501965119652196531965419655196561965719658196591966019661196621966319664196651966619667196681966919670196711967219673196741967519676196771967819679196801968119682196831968419685196861968719688196891969019691196921969319694196951969619697196981969919700197011970219703197041970519706197071970819709197101971119712197131971419715197161971719718197191972019721197221972319724197251972619727197281972919730197311973219733197341973519736197371973819739197401974119742197431974419745197461974719748197491975019751197521975319754197551975619757197581975919760197611976219763197641976519766197671976819769197701977119772197731977419775197761977719778197791978019781197821978319784197851978619787197881978919790197911979219793197941979519796197971979819799198001980119802198031980419805198061980719808198091981019811198121981319814198151981619817198181981919820198211982219823198241982519826198271982819829198301983119832198331983419835198361983719838198391984019841198421984319844198451984619847198481984919850198511985219853198541985519856198571985819859198601986119862198631986419865198661986719868198691987019871198721987319874198751987619877198781987919880198811988219883198841988519886198871988819889198901989119892198931989419895198961989719898198991990019901199021990319904199051990619907199081990919910199111991219913199141991519916199171991819919199201992119922199231992419925199261992719928199291993019931199321993319934199351993619937199381993919940199411994219943199441994519946199471994819949199501995119952199531995419955199561995719958199591996019961199621996319964199651996619967199681996919970199711997219973199741997519976199771997819979199801998119982199831998419985199861998719988199891999019991199921999319994199951999619997199981999920000200012000220003200042000520006200072000820009200102001120012200132001420015200162001720018200192002020021200222002320024200252002620027200282002920030200312003220033200342003520036200372003820039
  1. <?xml version="1.0" encoding="utf-8" standalone="yes"?>
  2. <Archive name="Root">
  3. <!--Grasshopper archive-->
  4. <!--Grasshopper and GH_IO.dll are copyrighted by Robert McNeel & Associates-->
  5. <!--Archive generated by GH_IO.dll file utility library {0.2.0002}-->
  6. <items count="1">
  7. <item name="ArchiveVersion" type_name="gh_version" type_code="80">
  8. <Major>0</Major>
  9. <Minor>2</Minor>
  10. <Revision>2</Revision>
  11. </item>
  12. </items>
  13. <chunks count="2">
  14. <chunk name="Definition">
  15. <items count="1">
  16. <item name="plugin_version" type_name="gh_version" type_code="80">
  17. <Major>1</Major>
  18. <Minor>0</Minor>
  19. <Revision>7</Revision>
  20. </item>
  21. </items>
  22. <chunks count="4">
  23. <chunk name="DocumentHeader">
  24. <items count="5">
  25. <item name="DocumentID" type_name="gh_guid" type_code="9">1c961c8b-9745-4a92-a43d-080de1ead765</item>
  26. <item name="Preview" type_name="gh_string" type_code="10">Shaded</item>
  27. <item name="PreviewMeshType" type_name="gh_int32" type_code="3">1</item>
  28. <item name="PreviewNormal" type_name="gh_drawing_color" type_code="36">
  29. <ARGB>100;150;0;0</ARGB>
  30. </item>
  31. <item name="PreviewSelected" type_name="gh_drawing_color" type_code="36">
  32. <ARGB>100;0;150;0</ARGB>
  33. </item>
  34. </items>
  35. </chunk>
  36. <chunk name="DefinitionProperties">
  37. <items count="3">
  38. <item name="Date" type_name="gh_date" type_code="8">635273898765795129</item>
  39. <item name="Description" type_name="gh_string" type_code="10"></item>
  40. <item name="Name" type_name="gh_string" type_code="10">elastica_curve_examples - Copy.ghx</item>
  41. </items>
  42. <chunks count="3">
  43. <chunk name="Revisions">
  44. <items count="1">
  45. <item name="RevisionCount" type_name="gh_int32" type_code="3">0</item>
  46. </items>
  47. </chunk>
  48. <chunk name="Projection">
  49. <items count="2">
  50. <item name="Target" type_name="gh_drawing_point" type_code="30">
  51. <X>-102</X>
  52. <Y>40</Y>
  53. </item>
  54. <item name="Zoom" type_name="gh_single" type_code="5">1</item>
  55. </items>
  56. </chunk>
  57. <chunk name="Views">
  58. <items count="1">
  59. <item name="ViewCount" type_name="gh_int32" type_code="3">0</item>
  60. </items>
  61. </chunk>
  62. </chunks>
  63. </chunk>
  64. <chunk name="RcpLayout">
  65. <items count="1">
  66. <item name="GroupCount" type_name="gh_int32" type_code="3">0</item>
  67. </items>
  68. </chunk>
  69. <chunk name="DefinitionObjects">
  70. <items count="1">
  71. <item name="ObjectCount" type_name="gh_int32" type_code="3">149</item>
  72. </items>
  73. <chunks count="149">
  74. <chunk name="Object" index="0">
  75. <items count="2">
  76. <item name="GUID" type_name="gh_guid" type_code="9">c552a431-af5b-46a9-a8a4-0fcbc27ef596</item>
  77. <item name="Name" type_name="gh_string" type_code="10">Group</item>
  78. </items>
  79. <chunks count="1">
  80. <chunk name="Container">
  81. <items count="24">
  82. <item name="Border" type_name="gh_int32" type_code="3">1</item>
  83. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  84. <ARGB>150;170;135;255</ARGB>
  85. </item>
  86. <item name="Description" type_name="gh_string" type_code="10">A group of Grasshopper objects</item>
  87. <item name="ID" index="0" type_name="gh_guid" type_code="9">d013dc08-a8cd-4383-aa4a-7e9f0b202f67</item>
  88. <item name="ID" index="1" type_name="gh_guid" type_code="9">19d4e5e6-a3fb-4e4d-b426-93c0b41f974c</item>
  89. <item name="ID" index="2" type_name="gh_guid" type_code="9">ce2f14ec-483c-4899-a8cb-784a62168957</item>
  90. <item name="ID" index="3" type_name="gh_guid" type_code="9">b2a67d0f-c66e-46a9-8efd-f7442d233d5d</item>
  91. <item name="ID" index="4" type_name="gh_guid" type_code="9">32bb1a9f-9575-4b8c-8a60-a65a7b9dd15f</item>
  92. <item name="ID" index="5" type_name="gh_guid" type_code="9">98102773-859e-4cf3-83a5-41f68379af66</item>
  93. <item name="ID" index="6" type_name="gh_guid" type_code="9">d68f5884-1ed1-4bd5-ab64-b7040370d59b</item>
  94. <item name="ID" index="7" type_name="gh_guid" type_code="9">8cd6ad76-7f71-4948-8c5e-9a3e2549985f</item>
  95. <item name="ID" index="8" type_name="gh_guid" type_code="9">d53a1087-053a-44d5-b485-68a8b5d09ce4</item>
  96. <item name="ID" index="9" type_name="gh_guid" type_code="9">cc8dfb80-5022-4b13-83c9-a787888900e8</item>
  97. <item name="ID" index="10" type_name="gh_guid" type_code="9">072c5f2f-5efd-4587-8eb9-f4eacb6f59a9</item>
  98. <item name="ID" index="11" type_name="gh_guid" type_code="9">25d0b3b4-fc42-4433-a4bf-e70bfa828143</item>
  99. <item name="ID" index="12" type_name="gh_guid" type_code="9">5137ef09-783f-4981-a9ec-aa4f2fc8e019</item>
  100. <item name="ID" index="13" type_name="gh_guid" type_code="9">225afdb2-480f-435b-a1cb-84170b3afd2f</item>
  101. <item name="ID" index="14" type_name="gh_guid" type_code="9">20228f31-e357-4d65-8747-46e12348391c</item>
  102. <item name="ID" index="15" type_name="gh_guid" type_code="9">7c2a1ac2-4916-4aa3-9b0a-566a67f36e60</item>
  103. <item name="ID" index="16" type_name="gh_guid" type_code="9">95f9fd7f-37dc-4bd8-8105-7301ef052bdd</item>
  104. <item name="ID_Count" type_name="gh_int32" type_code="3">17</item>
  105. <item name="InstanceGuid" type_name="gh_guid" type_code="9">07a70634-4e1a-4226-b5d3-17b0a4e0f460</item>
  106. <item name="Name" type_name="gh_string" type_code="10">Group</item>
  107. <item name="NickName" type_name="gh_string" type_code="10"></item>
  108. </items>
  109. <chunks count="1">
  110. <chunk name="Attributes" />
  111. </chunks>
  112. </chunk>
  113. </chunks>
  114. </chunk>
  115. <chunk name="Object" index="1">
  116. <items count="2">
  117. <item name="GUID" type_name="gh_guid" type_code="9">079bd9bd-54a0-41d4-98af-db999015f63d</item>
  118. <item name="Name" type_name="gh_string" type_code="10">VB Script</item>
  119. </items>
  120. <chunks count="1">
  121. <chunk name="Container">
  122. <items count="10">
  123. <item name="AdditionalSource" type_name="gh_string" type_code="10"> Private Function IsSet(ByVal param As String) As Boolean ' Check if an input parameter has data
  124. Dim i As Integer = Component.Params.IndexOfInputParam(param)
  125. If i &gt; -1 Then
  126. Return Component.Params.Input.ElementAt(i).DataType &gt; 1 ' input parameter DataType of 1 means it's not receiving input (internal or external)
  127. Else
  128. Msg("error", "Input parameter '" &amp; param &amp; "' not found")
  129. Return False
  130. End If
  131. End Function
  132. Private Sub Msg(ByVal type As String, ByVal msg As String) ' Output an error, warning, or informational message
  133. Select Case type
  134. Case "error"
  135. Component.AddRuntimeMessage(GH_RuntimeMessageLevel.Error, msg)
  136. Print("Error: " &amp; msg)
  137. Case "warning"
  138. Component.AddRuntimeMessage(GH_RuntimeMessageLevel.Warning, msg)
  139. Print("Warning: " &amp; msg)
  140. Case "info"
  141. Component.AddRuntimeMessage(GH_RuntimeMessageLevel.Remark, msg)
  142. Print(msg)
  143. End Select
  144. End Sub
  145. ' Solve for the m parameter from length and width (reference {1} equation (34), except b = width and K(k) and E(k) should be K(m) and E(m))
  146. Private Function SolveMFromLenWid(ByVal L As Double, ByVal w As Double) As Double
  147. If w = 0 Then
  148. Return Defined.M_ZERO_W ' for the boundry condition width = 0, bypass the function and return the known m value
  149. End If
  150. Dim n As Integer = 1 ' Iteration counter (quit if &gt;MAXIT)
  151. Dim lower As Double = 0 ' m must be within this range
  152. Dim upper As Double = 1
  153. Dim m As Double
  154. Dim cwl As Double
  155. Do While (upper - lower) &gt; Defined.MAXERR AndAlso (n) &lt; Defined.MAXIT ' Repeat until range narrow enough or MAXIT
  156. m = (upper + lower) / 2
  157. cwl = 2 * EllipticE(m) / EllipticK(m) - 1 ' calculate w/L with the test value of m
  158. If cwl &lt; w / L Then ' compares the calculated w/L with the actual w/L then narrows the range of possible m
  159. upper = m
  160. Else
  161. lower = m
  162. End If
  163. n += 1
  164. Loop
  165. Return m
  166. End Function
  167. ' Solve for the m parameter from length and height (reference {1} equation (33), except K(k) should be K(m) and k = sqrt(m))
  168. ' Note that it's actually possible to find 2 valid values for m (hence 2 width values) at certain height values
  169. Private Function SolveMFromLenHt(ByVal L As Double, ByVal h As Double) As List(Of Double)
  170. Dim n As Integer = 1 ' Iteration counter (quit if &gt;MAXIT)
  171. Dim lower As Double = 0 ' m must be within this range
  172. Dim upper As Double = 1
  173. Dim twoWidths As Boolean = h / L &gt;= Defined.DOUBLE_W_HL_RATIO And h / L &lt; Defined.MAX_HL_RATIO ' check to see if h/L is within the range where 2 solutions for the width are possible
  174. Dim m As Double
  175. Dim mult_m As New List(Of Double)
  176. Dim chl As Double
  177. If twoWidths Then
  178. ' find the first of two possible solutions for m with the following limits:
  179. lower = Defined.M_DOUBLE_W ' see constants at bottom of script
  180. upper = Defined.M_MAXHEIGHT ' see constants at bottom of script
  181. Do While (upper - lower) &gt; Defined.MAXERR AndAlso (n) &lt; Defined.MAXIT ' Repeat until range narrow enough or MAXIT
  182. m = (upper + lower) / 2
  183. chl = Math.Sqrt(m) / EllipticK(m) ' calculate h/L with the test value of m
  184. If chl &gt; h / L Then ' compares the calculated h/L with the actual h/L then narrows the range of possible m
  185. upper = m
  186. Else
  187. lower = m
  188. End If
  189. n += 1
  190. Loop
  191. mult_m.Add(m)
  192. ' then find the second of two possible solutions for m with the following limits:
  193. lower = Defined.M_MAXHEIGHT ' see constants at bottom of script
  194. upper = 1
  195. Do While (upper - lower) &gt; Defined.MAXERR AndAlso (n) &lt; Defined.MAXIT ' Repeat until range narrow enough or MAXIT
  196. m = (upper + lower) / 2
  197. chl = Math.Sqrt(m) / EllipticK(m) ' calculate h/L with the test value of m
  198. If chl &lt; h / L Then ' compares the calculated h/L with the actual h/L then narrows the range of possible m
  199. upper = m
  200. Else
  201. lower = m
  202. End If
  203. n += 1
  204. Loop
  205. If m &lt;= Defined.M_MAX Then ' return this m parameter only if it falls within the maximum useful value (above which the curve breaks down)
  206. mult_m.Add(m)
  207. End If
  208. Else
  209. ' find the one possible solution for the m parameter
  210. upper = Defined.M_DOUBLE_W ' limit the upper end of the search to the maximum value of m for which only one solution exists
  211. Do While (upper - lower) &gt; Defined.MAXERR AndAlso (n) &lt; Defined.MAXIT ' Repeat until range narrow enough or MAXIT
  212. m = (upper + lower) / 2
  213. chl = Math.Sqrt(m) / EllipticK(m) ' calculate h/L with the test value of m
  214. If chl &gt; h / L Then ' compares the calculated h/L with the actual h/L then narrows the range of possible m
  215. upper = m
  216. Else
  217. lower = m
  218. End If
  219. n += 1
  220. Loop
  221. mult_m.Add(m)
  222. End If
  223. Return mult_m
  224. End Function
  225. ' Solve for the m parameter from width and height (derived from reference {1} equations (33) and (34) with same notes as above)
  226. Private Function SolveMFromWidHt(ByVal w As Double, ByVal h As Double) As Double
  227. Dim n As Integer = 1 ' Iteration counter (quit if &gt;MAXIT)
  228. Dim lower As Double = 0 ' m must be within this range
  229. Dim upper As Double = 1
  230. Dim m As Double
  231. Dim cwh As Double
  232. Do While (upper - lower) &gt; Defined.MAXERR AndAlso (n) &lt; Defined.MAXIT ' Repeat until range narrow enough or MAXIT
  233. m = (upper + lower) / 2
  234. cwh = (2 * EllipticE(m) - EllipticK(m)) / Math.Sqrt(m) ' calculate w/h with the test value of m
  235. If cwh &lt; w / h Then ' compares the calculated w/h with the actual w/h then narrows the range of possible m
  236. upper = m
  237. Else
  238. lower = m
  239. End If
  240. n += 1
  241. Loop
  242. Return m
  243. End Function
  244. ' Calculate length based on height and an m parameter, derived from reference {1} equation (33), except K(k) should be K(m) and k = sqrt(m)
  245. Private Function Cal_L(ByVal h As Double, ByVal m As Double) As Double
  246. Return h * EllipticK(m) / Math.Sqrt(m)
  247. End Function
  248. ' Calculate width based on length and an m parameter, derived from reference {1} equation (34), except b = width and K(k) and E(k) should be K(m) and E(m)
  249. Private Function Cal_W(ByVal L As Double, ByVal m As Double) As Double
  250. Return L * (2 * EllipticE(m) / EllipticK(m) - 1)
  251. End Function
  252. ' Calculate height based on length and an m parameter, from reference {1} equation (33), except K(k) should be K(m) and k = sqrt(m)
  253. Private Function Cal_H(ByVal L As Double, ByVal m As Double) As Double
  254. Return L * Math.Sqrt(m) / EllipticK(m)
  255. End Function
  256. ' Calculate the unique m parameter based on a start tangent angle, from reference {2}, just above equation (9a), that states k = Sin(angle / 2 + Pi / 4),
  257. ' but as m = k^2 and due to this script's need for an angle rotated 90° versus the one in reference {1}, the following formula is the result
  258. ' New note: verified by reference {4}, pg. 78 at the bottom
  259. Private Function Cal_M(ByVal a As Double) As Double
  260. Return (1 - Math.Cos(a)) / 2 ' equal to Sin^2(a/2) too
  261. End Function
  262. ' Calculate start tangent angle based on an m parameter, derived from above formula
  263. Private Function Cal_A(ByVal m As Double) As Double
  264. Return Math.Acos(1 - 2 * m)
  265. End Function
  266. ' This is the heart of this script, taking the found (or specified) length, width, and angle values along with the found m parameter to create
  267. ' a list of points that approximate the shape or form of the elastica. It works by finding the x and y coordinates (which are reversed versus
  268. ' the original equations (12a) and (12b) from reference {2} due to the 90° difference in orientation) based on the tangent angle along the curve.
  269. ' See reference {2} for more details on how they derived it. Note that to simplify things, the algorithm only calculates the points for half of the
  270. ' curve, then mirrors those points along the y-axis.
  271. Private Function FindBendForm(ByVal L As Double, ByVal w As Double, ByVal m As Double, ByVal ang As Double, ByVal refPln As Plane) As List(Of Point3d)
  272. L = L / 2 ' because the below algorithm is based on the formulas in reference {2} for only half of the curve
  273. w = w / 2 ' same
  274. If ang = 0 Then ' if angle (and height) = 0, then simply return the start and end points of the straight line
  275. Dim out As New List(Of Point3d)
  276. out.Add(refPln.PointAt(w, 0, 0))
  277. out.Add(refPln.PointAt(-w, 0, 0))
  278. Return out
  279. End If
  280. Dim x As Double
  281. Dim y As Double
  282. Dim halfCurvePts As New List(Of Point3d)
  283. Dim fullCurvePts As New List(Of Point3d)
  284. Dim translatedPts As New List(Of Point3d)
  285. ang -= Math.PI / 2 ' a hack to allow this algorithm to work, since the original curve in paper {2} was rotated 90°
  286. Dim angB As Double = ang + (-Math.PI / 2 - ang) / Defined.CURVEDIVS ' angB is the 'lowercase theta' which should be in formula {2}(12b) as the interval
  287. ' start [a typo...see equation(3)]. It's necessary to start angB at ang + [interval] instead of just ang due to integration failing at angB = ang
  288. halfCurvePts.Add(New Point3d(w, 0, 0)) ' start with this known initial point, as integration will fail when angB = ang
  289. ' each point {x, y} is calculated from the tangent angle, angB, that occurs at each point (which is why this iterates from ~ang to -pi/2, the known end condition)
  290. Do While Math.Round(angB, Defined.ROUNDTO) &gt;= Math.Round(-Math.PI / 2, Defined.ROUNDTO)
  291. y = (Math.Sqrt(2) * Math.Sqrt(Math.Sin(ang) - Math.Sin(angB)) * (w + L)) / (2 * EllipticE(m)) ' note that x and y are swapped vs. (12a) and (12b)
  292. x = (L / (Math.Sqrt(2) * EllipticK(m))) * Simpson(angB, -Math.PI / 2, 500, ang) ' calculate the Simpson approximation of the integral (function f below)
  293. ' over the interval angB ('lowercase theta') to -pi/2. side note: is 500 too few iterations for the Simson algorithm?
  294. If Math.Round(x, Defined.ROUNDTO) = 0 Then x = 0
  295. halfCurvePts.Add(New Point3d(x, y, 0))
  296. angB += (-Math.PI / 2 - ang) / Defined.CURVEDIVS ' onto the next tangent angle
  297. Loop
  298. ' After finding the x and y values for half of the curve, add the {-x, y} values for the rest of the curve
  299. For Each point As Point3d In halfCurvePts
  300. If Math.Round(point.X, Defined.ROUNDTO) = 0 Then
  301. If Math.Round(point.Y, Defined.ROUNDTO) = 0 Then
  302. fullCurvePts.Add(New Point3d(0, 0, 0)) ' special case when width = 0: when x = 0, only duplicate the point when y = 0 too
  303. End If
  304. Else
  305. fullCurvePts.Add(New Point3d(-point.X, point.Y, 0))
  306. End If
  307. Next
  308. halfCurvePts.Reverse
  309. fullCurvePts.AddRange(halfCurvePts)
  310. For Each p As Point3d In fullCurvePts
  311. translatedPts.Add(refPln.PointAt(p.X, p.Y, p.Z)) ' translate the points from the reference plane to the world plane
  312. Next
  313. Return translatedPts
  314. End Function
  315. ' Interpolates the points from FindBendForm to create the Elastica curve. Uses start &amp; end tangents for greater accuracy.
  316. Private Function MakeCurve(ByVal pts As List(Of Point3d), ByVal ang As Double, ByVal refPln As Plane) As Curve
  317. If ang &lt;&gt; 0 Then
  318. Dim ts, te As New Vector3d(refPln.XAxis)
  319. ts.Rotate(ang, refPln.ZAxis)
  320. te.Rotate(-ang, refPln.ZAxis)
  321. Return Curve.CreateInterpolatedCurve(pts, 3, CurveKnotStyle.Chord, ts, te) ' 3rd degree curve with 'Chord' Knot Style
  322. Else
  323. Return Curve.CreateInterpolatedCurve(pts, 3) ' if angle (and height) = 0, then simply interpolate the straight line (no start/end tangents)
  324. End If
  325. End Function
  326. ' Implements the Simpson approximation for an integral of function f below
  327. Public Function Simpson(a As Double, b As Double, n As Integer, theta As Double) As Double 'n should be an even number
  328. Dim j As Integer, s1 As Double, s2 As Double, h As Double
  329. h = (b - a) / n
  330. s1 = 0
  331. s2 = 0
  332. For j = 1 To n - 1 Step 2
  333. s1 = s1 + fn(a + j * h, theta)
  334. Next j
  335. For j = 2 To n - 2 Step 2
  336. s2 = s2 + fn(a + j * h, theta)
  337. Next j
  338. Simpson = h / 3 * (fn(a, theta) + 4 * s1 + 2 * s2 + fn(b, theta))
  339. End Function
  340. ' Specific calculation for the above integration
  341. Public Function fn(x As Double, theta As Double) As Double
  342. fn = Math.Sin(x) / (Math.Sqrt(Math.Sin(theta) - Math.Sin(x))) ' from reference {2} formula (12b)
  343. End Function
  344. ' Return the Complete Elliptic integral of the 1st kind
  345. ' Abramowitz and Stegun p.591, formula 17.3.11
  346. ' Code from http://www.codeproject.com/Articles/566614/Elliptic-integrals
  347. Public Function EllipticK(ByVal m As Double) As Double
  348. Dim sum, term, above, below As Double
  349. sum = 1
  350. term = 1
  351. above = 1
  352. below = 2
  353. For i As Integer = 1 To 100
  354. term *= above / below
  355. sum += Math.Pow(m, i) * Math.Pow(term, 2)
  356. above += 2
  357. below += 2
  358. Next
  359. sum *= 0.5 * Math.PI
  360. Return sum
  361. End Function
  362. ' Return the Complete Elliptic integral of the 2nd kind
  363. ' Abramowitz and Stegun p.591, formula 17.3.12
  364. ' Code from http://www.codeproject.com/Articles/566614/Elliptic-integrals
  365. Public Function EllipticE(ByVal m As Double) As Double
  366. Dim sum, term, above, below As Double
  367. sum = 1
  368. term = 1
  369. above = 1
  370. below = 2
  371. For i As Integer = 1 To 100
  372. term *= above / below
  373. sum -= Math.Pow(m, i) * Math.Pow(term, 2) / above
  374. above += 2
  375. below += 2
  376. Next
  377. sum *= 0.5 * Math.PI
  378. Return sum
  379. End Function
  380. Friend Partial NotInheritable Class Defined
  381. Private Sub New()
  382. End Sub
  383. ' Note: most of these values for m and h/L ratio were found with Wolfram Alpha and either specific intercepts (x=0) or local minima/maxima. They should be constant.
  384. Public Const M_SKETCHY As Double = 0.95 ' value of the m parameter where the curvature near the ends of the curve gets wonky
  385. Public Const M_MAX As Double = 0.993 ' maximum useful value of the m parameter, above which this algorithm for the form of the curve breaks down
  386. Public Const M_ZERO_W As Double = 0.826114765984970336 ' value of the m parameter when width = 0
  387. Public Const M_MAXHEIGHT As Double = 0.701327460663101223 ' value of the m parameter at maximum possible height of the bent rod/wire
  388. Public Const M_DOUBLE_W As Double = 0.180254422335013983 ' minimum value of the m parameter when two width values are possible for a given height and length
  389. Public Const DOUBLE_W_HL_RATIO As Double = 0.257342117984635757 ' value of the height/length ratio above which there are two possible width values
  390. Public Const MAX_HL_RATIO As Double = 0.403140189705650243 ' maximum possible value of the height/length ratio
  391. Public Const MAXERR As Double = 0.0000000001 ' error tolerance
  392. Public Const MAXIT As Integer = 100 ' maximum number of iterations
  393. Public Const ROUNDTO As Integer = 10 ' number of decimal places to round off to
  394. Public Const CURVEDIVS As Integer = 50 ' number of sample points for building the curve (or half-curve as it were)
  395. End Class</item>
  396. <item name="Description" type_name="gh_string" type_code="10">A VB.NET scriptable component</item>
  397. <item name="EditorPosition" type_name="gh_drawing_point" type_code="30">
  398. <X>98</X>
  399. <Y>86</Y>
  400. </item>
  401. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  402. <item name="InstanceGuid" type_name="gh_guid" type_code="9">d013dc08-a8cd-4383-aa4a-7e9f0b202f67</item>
  403. <item name="Name" type_name="gh_string" type_code="10">VB Script</item>
  404. <item name="NickName" type_name="gh_string" type_code="10">VB</item>
  405. <item name="OutParameter" type_name="gh_bool" type_code="1">true</item>
  406. <item name="ReferenceCount" type_name="gh_int32" type_code="3">0</item>
  407. <item name="ScriptSource" type_name="gh_string" type_code="10"> ' -----------------------------------------------------------------
  408. ' Elastic Bending Script by Will McElwain
  409. ' Created February 2014
  410. '
  411. ' DESCRIPTION:
  412. ' This beast creates the so-called 'elastica curve', the shape a long, thin rod or wire makes when it is bent elastically (i.e. not permanently). In this case, force
  413. ' is assumed to only be applied horizontally (which would be in line with the rod at rest) and both ends are assumed to be pinned or hinged meaning they are free
  414. ' to rotate (as opposed to clamped, when the end tangent angle is fixed, usually horizontally). An interesting finding is that it doesn't matter what the material or
  415. ' cross-sectional area is, as long as they're uniform along the entire length. Everything makes the same shape when bent as long as it doesn't cross the threshold
  416. ' from elastic to plastic (permanent) deformation (I don't bother to find that limit here, but can be found if the yield stress for a material is known).
  417. '
  418. ' Key to the formulas used in this script are elliptic integrals, specifically K(m), the complete elliptic integral of the first kind, and E(m), the complete elliptic
  419. ' integral of the second kind. There was a lot of confusion over the 'm' and 'k' parameters for these functions, as some people use them interchangeably, but they are
  420. ' not the same. m = k^2 (thus k = Sqrt(m)). I try to use the 'm' parameter exclusively to avoid this confusion. Note that there is a unique 'm' parameter for every
  421. ' configuration/shape of the elastica curve.
  422. '
  423. ' This script tries to find that unique 'm' parameter based on the inputs. The algorithm starts with a test version of m, evaluates an expression, say 2*E(m)/K(m)-1,
  424. ' then compares the result to what it should be (in this case, a known width/length ratio). Iterate until the correct m is found. Once we have m, we can then calculate
  425. ' all of the other unknowns, then find points that lie on that curve, then interpolate those points for the actual curve. You can also use Wolfram|Alpha as I did to
  426. ' find the m parameter based on the equations in this script (example here: http://tiny.cc/t4tpbx for when say width=45.2 and length=67.1).
  427. '
  428. ' Other notes:
  429. ' * This script works with negative values for width, which will creat a self-intersecting curve (as it should). The curvature of the elastica starts to break down around
  430. ' m=0.95 (~154°), but this script will continue to work until M_MAX, m=0.993 (~169°). If you wish to ignore self-intersecting curves, set ignoreSelfIntersecting to True
  431. ' * When the only known values are length and height, it is actually possible for certain ratios of height to length to have two valid m values (thus 2 possible widths
  432. ' and angles). This script will return them both.
  433. ' * Only the first two valid parameters (of the required ones) will be used, meaning if all four are connected (length, width or a PtB, height, and angle), this script will
  434. ' only use length and width (or a PtB).
  435. ' * Depending on the magnitude of your inputs (say if they're really small, like if length &lt; 10), you might have to increase the constant ROUNDTO at the bottom
  436. '
  437. ' REFERENCES:
  438. ' {1} "The elastic rod" by M.E. Pacheco Q. &amp; E. Pina, http://www.scielo.org.mx/pdf/rmfe/v53n2/v53n2a8.pdf
  439. ' {2} "An experiment in nonlinear beam theory" by A. Valiente, http://www.deepdyve.com/lp/doc/I3lwnxdfGz , also here: http://tiny.cc/Valiente_AEiNBT
  440. ' {3} "Snap buckling, writhing and Loop formation In twisted rods" by V.G.A. GOSS, http://myweb.lsbu.ac.uk/~gossga/thesisFinal.pdf
  441. ' {4} "Theory of Elastic Stability" by Stephen Timoshenko, http://www.scribd.com/doc/50402462/Timoshenko-Theory-of-Elastic-Stability (start on p. 76)
  442. '
  443. ' INPUT:
  444. ' PtA - First anchor point (required)
  445. ' PtB - Second anchor point (optional, though 2 out of the 4--length, width, height, angle--need to be specified)
  446. ' [note that PtB can be the same as PtA (meaning width would be zero)]
  447. ' [also note that if a different width is additionally specified that's not equal to the distance between PtA and PtB, then the end point will not equal PtB anymore]
  448. ' Pln - Plane of the bent rod/wire, which bends up in the +y direction. The line between PtA and PtB (if specified) must be parallel to the x-axis of this plane
  449. '
  450. ' ** 2 of the following 4 need to be specified **
  451. ' Len - Length of the rod/wire, which needs to be &gt; 0
  452. ' Wid - Width between the endpoints of the curve [note: if PtB is specified in addition, and distance between PtA and PtB &lt;&gt; width, the end point will be relocated
  453. ' Ht - Height of the bent rod/wire (when negative, curve will bend downward, relative to the input plane, instead)
  454. ' Ang - Inner departure angle or tangent angle (in radians) at the ends of the bent rod/wire. Set up so as width approaches length (thus height approaches zero), angle approaches zero
  455. '
  456. ' * Following variables only needed for optional calculating of bending force, not for shape of curve.
  457. ' E - Young's modulus (modulus of elasticity) in GPa (=N/m^2) (material-specific. for example, 7075 aluminum is roughly 71.7 GPa)
  458. ' I - Second moment of area (or area moment of inertia) in m^4 (cross-section-specific. for example, a hollow rod
  459. ' would have I = pi * (outer_diameter^4 - inner_diameter^4) / 32
  460. ' Note: E*I is also known as flexural rigidity or bending stiffness
  461. '
  462. ' OUTPUT:
  463. ' out - only for debugging messages
  464. ' Pts - the list of points that approximate the shape of the elastica
  465. ' Crv - the 3rd-degree curve interpolated from those points (with accurate start &amp; end tangents)
  466. ' L - the length of the rod/wire
  467. ' W - the distance (width) between the endpoints of the rod/wire
  468. ' H - the height of the bent rod/wire
  469. ' A - the tangent angle at the (start) end of the rod/wire
  470. ' F - the force needed to hold the rod/wire in a specific shape (based on the material properties &amp; cross-section) **be sure your units for 'I' match your units for the
  471. ' rest of your inputs (length, width, etc.). Also note that the critical buckling load (force) that makes the rod/wire start to bend can be found at height=0
  472. '
  473. ' THANKS TO:
  474. ' Mårten Nettelbladt (thegeometryofbending.blogspot.com)
  475. ' Daniel Piker (Kangaroo plugin)
  476. ' David Rutten (Grasshopper guru)
  477. ' Euler &amp; Bernoulli (the O.G.'s)
  478. '
  479. ' -----------------------------------------------------------------
  480. Dim ignoreSelfIntersecting As Boolean = False ' set to True if you don't want to output curves where width &lt; 0, which creates a self-intersecting curve
  481. Dim inCt As Integer = 0 ' count the number of required parameters that are receiving data
  482. Dim length As Double
  483. Dim width As System.Object = Nothing ' need to set as Nothing so we can check if it has been assigned a value later
  484. Dim height As Double
  485. Dim angle As Double
  486. Dim m As Double
  487. Dim multiple_m As New List(Of Double)
  488. Dim AtoB As Line
  489. Dim flip_H As Boolean = False ' if height is negative, this flag will be set
  490. Dim flip_A As Boolean = False ' if angle is negative, this flag will be set
  491. If Not IsSet("Pln") Then
  492. Msg("error", "Base plane is not set")
  493. Return
  494. End If
  495. If Not IsSet("PtA") Then
  496. Msg("error", "Point A is not set")
  497. Return
  498. End If
  499. If Math.Round(Pln.DistanceTo(PtA), Defined.ROUNDTO) &lt;&gt; 0 Then
  500. Msg("error", "Point A is not on the base plane")
  501. Return
  502. End If
  503. Dim refPlane As Plane = Pln ' create a reference plane = input plane and set the origin of it to PtA in case PtA isn't the origin already
  504. refPlane.Origin = PtA
  505. If IsSet("PtB") Then
  506. If Math.Round(Pln.DistanceTo(PtB), Defined.ROUNDTO) &lt;&gt; 0 Then
  507. Msg("error", "Point B is not on the base plane")
  508. Return
  509. End If
  510. AtoB = New Line(PtA, PtB)
  511. If AtoB.Length &lt;&gt; 0 And Not AtoB.Direction.IsPerpendicularTo(Pln.YAxis) Then
  512. Msg("error", "The line between PtA and PtB is not perpendicular to the Y-axis of the specified plane")
  513. Return
  514. End If
  515. inCt += 1
  516. If IsSet("Wid") Then Msg("info", "Wid will override the distance between PtA and PtB. If you do not want this to happen, disconnect PtB or Wid.")
  517. width = PtA.DistanceTo(PtB) ' get the width (distance) between PtA and PtB
  518. Dim refPtB As Point3d
  519. refPlane.RemapToPlaneSpace(PtB, refPtB)
  520. If refPtB.X &lt; 0 Then width = -width ' check if PtB is to the left of PtA...if so, width is negative
  521. End If
  522. If IsSet("Len") Then inCt += 1
  523. If IsSet("Wid") Then inCt += 1
  524. If IsSet("Ht") Then inCt += 1
  525. If IsSet("Ang") Then inCt += 1
  526. If inCt &gt; 2 Then Msg("info", "More parameters set than are required (out of length, width, height, angle). Only using the first two valid ones.")
  527. ' check for connected/specified inputs. note: only the first two that it comes across will be used
  528. If IsSet("Len") Then ' if length is specified then...
  529. If Len &lt;= 0 Then
  530. Msg("error", "Length cannot be negative or zero")
  531. Return
  532. End If
  533. If IsSet("Wid") Then ' find height &amp; angle based on length and specified width
  534. If Wid &gt; Len Then
  535. Msg("error", "Width is greater than length")
  536. Return
  537. End If
  538. If Wid = Len Then ' skip the solver and set the known values
  539. height = 0
  540. m = 0
  541. angle = 0
  542. width = Wid
  543. Else
  544. m = SolveMFromLenWid(Len, Wid)
  545. height = Cal_H(Len, m) ' L * Sqrt(m) / K(m)
  546. angle = Cal_A(m) ' Acos(1 - 2 * m)
  547. width = Wid
  548. End If
  549. Else If width IsNot Nothing Then ' find height &amp; angle based on length and calculated width (distance between PtA and PtB)
  550. If width &gt; Len Then
  551. Msg("error", "Width is greater than length")
  552. Return
  553. End If
  554. If width = Len Then ' skip the solver and set the known values
  555. height = 0
  556. m = 0
  557. angle = 0
  558. Else
  559. m = SolveMFromLenWid(Len, width)
  560. height = Cal_H(Len, m) ' L * Sqrt(m) / K(m)
  561. angle = Cal_A(m) ' Acos(1 - 2 * m)
  562. End If
  563. Else If IsSet("Ht") Then ' find width &amp; angle based on length and height ** possible to return 2 results **
  564. If Math.Abs(Ht / Len) &gt; Defined.MAX_HL_RATIO Then
  565. Msg("error", "Height not possible with given length")
  566. Return
  567. End If
  568. If Ht &lt; 0 Then
  569. Ht = -Ht ' if height is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  570. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  571. flip_A = True
  572. flip_H = True
  573. End If
  574. If Ht = 0 Then ' skip the solver and set the known values
  575. width = Len
  576. angle = 0
  577. Else
  578. multiple_m = SolveMFromLenHt(Len, Ht) ' note that it's possible for two values of m to be found if height is close to max height
  579. If multiple_m.Count = 1 Then ' if there's only one m value returned, calculate the width &amp; angle here. we'll deal with multiple m values later
  580. m = multiple_m.Item(0)
  581. width = Cal_W(Len, m) ' L * (2 * E(m) / K(m) - 1)
  582. angle = Cal_A(m) ' Acos(1 - 2 * m)
  583. End If
  584. End If
  585. height = Ht
  586. Else If IsSet("Ang") Then ' find width &amp; height based on length and angle
  587. If Ang &lt; 0 Then
  588. Ang = -Ang ' if angle is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  589. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  590. flip_A = True
  591. flip_H = True
  592. End If
  593. m = Cal_M(Ang) ' (1 - Cos(a)) / 2
  594. If Ang = 0 Then ' skip the solver and set the known values
  595. width = Len
  596. height = 0
  597. Else
  598. width = Cal_W(Len, m) ' L * (2 * E(m) / K(m) - 1)
  599. height = Cal_H(Len, m) ' L * Sqrt(m) / K(m)
  600. End If
  601. angle = Ang
  602. Else
  603. Msg("error", "Need to specify one more parameter in addition to length")
  604. Return
  605. End If
  606. length = Len
  607. Else If IsSet("Wid") Then ' if width is specified then...
  608. If IsSet("Ht") Then ' find length &amp; angle based on specified width and height
  609. If Ht &lt; 0 Then
  610. Ht = -Ht ' if height is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  611. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  612. flip_A = True
  613. flip_H = True
  614. End If
  615. If Ht = 0 Then ' skip the solver and set the known values
  616. length = Wid
  617. angle = 0
  618. Else
  619. m = SolveMFromWidHt(Wid, Ht)
  620. length = Cal_L(Ht, m) ' h * K(m) / Sqrt(m)
  621. angle = Cal_A(m) ' Acos(1 - 2 * m)
  622. End If
  623. height = Ht
  624. Else If IsSet("Ang") Then ' find length &amp; height based on specified width and angle
  625. If Wid = 0 Then
  626. Msg("error", "Curve not possible with width = 0 and an angle as inputs")
  627. Return
  628. End If
  629. If Ang &lt; 0 Then
  630. Ang = -Ang ' if angle is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  631. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  632. flip_A = True
  633. flip_H = True
  634. End If
  635. m = Cal_M(Ang) ' (1 - Cos(a)) / 2
  636. If Ang = 0 Then ' skip the solver and set the known values
  637. length = Wid
  638. height = 0
  639. Else
  640. length = Wid / (2 * EllipticE(m) / EllipticK(m) - 1)
  641. If length &lt; 0 Then
  642. Msg("error", "Curve not possible at specified width and angle (calculated length is negative)")
  643. Return
  644. End If
  645. height = Cal_H(length, m) ' L * Sqrt(m) / K(m)
  646. End If
  647. angle = Ang
  648. Else
  649. Msg("error", "Need to specify one more parameter in addition to width (Wid)")
  650. Return
  651. End If
  652. width = Wid
  653. Else If width IsNot Nothing Then ' if width is determined by PtA and PtB then...
  654. If IsSet("Ht") Then ' find length &amp; angle based on calculated width and height
  655. If Ht &lt; 0 Then
  656. Ht = -Ht ' if height is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  657. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  658. flip_A = True
  659. flip_H = True
  660. End If
  661. If Ht = 0 Then ' skip the solver and set the known values
  662. length = width
  663. angle = 0
  664. Else
  665. m = SolveMFromWidHt(width, Ht)
  666. length = Cal_L(Ht, m) ' h * K(m) / Sqrt(m)
  667. angle = Cal_A(m) ' Acos(1 - 2 * m)
  668. End If
  669. height = Ht
  670. Else If IsSet("Ang") Then ' find length &amp; height based on calculated width and angle
  671. If width = 0 Then
  672. Msg("error", "Curve not possible with width = 0 and an angle as inputs")
  673. Return
  674. End If
  675. If Ang &lt; 0 Then
  676. Ang = -Ang ' if angle is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  677. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  678. flip_A = True
  679. flip_H = True
  680. End If
  681. m = Cal_M(Ang) ' (1 - Cos(a)) / 2
  682. If Ang = 0 Then ' skip the solver and set the known values
  683. length = width
  684. height = 0
  685. Else
  686. length = width / (2 * EllipticE(m) / EllipticK(m) - 1)
  687. If length &lt; 0 Then
  688. Msg("error", "Curve not possible at specified width and angle (calculated length is negative)")
  689. Return
  690. End If
  691. height = Cal_H(length, m) ' L * Sqrt(m) / K(m)
  692. End If
  693. angle = Ang
  694. Else
  695. Msg("error", "Need to specify one more parameter in addition to PtA and PtB")
  696. Return
  697. End If
  698. Else If IsSet("Ht") Then ' if height is specified then...
  699. If IsSet("Ang") Then ' find length &amp; width based on height and angle
  700. If Ht &lt; 0 Then
  701. Ht = -Ht ' if height is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  702. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  703. flip_H = True
  704. flip_A = True
  705. End If
  706. If Ht = 0 Then
  707. Msg("error", "Height can't = 0 if only height and angle are specified")
  708. Return
  709. Else
  710. If Ang &lt; 0 Then
  711. Ang = -Ang ' if angle is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  712. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  713. flip_A = Not flip_A
  714. flip_H = Not flip_H
  715. End If
  716. m = Cal_M(Ang) ' (1 - Cos(a)) / 2
  717. If Ang = 0 Then
  718. Msg("error", "Angle can't = 0 if only height and angle are specified")
  719. Return
  720. Else
  721. length = Cal_L(Ht, m) ' h * K(m) / Sqrt(m)
  722. width = Cal_W(length, m) ' L * (2 * E(m) / K(m) - 1)
  723. End If
  724. angle = Ang
  725. End If
  726. height = Ht
  727. Else
  728. Msg("error", "Need to specify one more parameter in addition to height")
  729. Return
  730. End If
  731. Else If IsSet("Ang") Then
  732. Msg("error", "Need to specify one more parameter in addition to angle")
  733. Return
  734. Else
  735. Msg("error", "Need to specify two of the four parameters: length, width (or PtB), height, and angle")
  736. Return
  737. End If
  738. If m &gt; Defined.M_MAX Then
  739. Msg("error", "Form of curve not solvable with current algorithm and given inputs")
  740. Return
  741. End If
  742. refPlane.Origin = refPlane.PointAt(width / 2, 0, 0) ' adjust the origin of the reference plane so that the curve is centered about the y-axis (start of the curve is at x = -width/2)
  743. If multiple_m.Count &gt; 1 Then ' if there is more than one m value returned, calculate the width, angle, and curve for each
  744. Dim multi_pts As New DataTree(Of Point3d)
  745. Dim multi_crv As New List(Of Curve)
  746. Dim tmp_pts As New List(Of Point3d)
  747. Dim multi_W, multi_A, multi_F As New List(Of Double)
  748. Dim j As Integer = 0 ' used for creating a new branch (GH_Path) for storing pts which is itself a list of points
  749. For Each m_val As Double In multiple_m
  750. width = Cal_W(length, m_val) 'length * (2 * EllipticE(m_val) / EllipticK(m_val) - 1)
  751. If width &lt; 0 And ignoreSelfIntersecting Then
  752. Msg("warning", "One curve is self-intersecting. To enable these, set ignoreSelfIntersecting to False")
  753. Continue For
  754. End If
  755. If m_val &gt;= Defined.M_SKETCHY Then Msg("info", "Accuracy of the curve whose width = " &amp; Math.Round(width, 4) &amp; " is not guaranteed")
  756. angle = Cal_A(m_val) 'Math.Asin(2 * m_val - 1)
  757. refPlane.Origin = refPlane.PointAt(width / 2, 0, 0) ' adjust the origin of the reference plane so that the curve is centered about the y-axis (start of the curve is at x = -width/2)
  758. tmp_pts = FindBendForm(length, width, m_val, angle, refPlane)
  759. multi_pts.AddRange(tmp_pts, New GH_Path(j))
  760. multi_crv.Add(MakeCurve(tmp_pts, angle, refPlane))
  761. multi_W.Add(width)
  762. If flip_A Then angle = -angle
  763. multi_A.Add(angle)
  764. E = E * 10 ^ 9 ' Young's modulus input E is in GPa, so we convert to Pa here (= N/m^2)
  765. multi_F.Add(EllipticK(m_val) ^ 2 * E * I / length ^ 2) ' from reference {4} pg. 79
  766. j += 1
  767. refPlane.Origin = PtA ' reset the reference plane origin to PtA for the next m_val
  768. 'Print("length=" &amp; length &amp; ", width=" &amp; width &amp; ", height=" &amp; height &amp; ", angle=" &amp; angle &amp; ", m=" &amp; m_val &amp; ", k=" &amp; Math.Sqrt(m_val) &amp; ", w/L=" &amp; width / length &amp; ", h/L=" &amp; height / length &amp; ", w/h=" &amp; width / height)
  769. Next
  770. ' assign the outputs
  771. Pts = multi_pts
  772. Crv = multi_crv
  773. L = length
  774. W = multi_W
  775. If flip_H Then height = -height
  776. H = height
  777. A = multi_A
  778. F = multi_F
  779. Else ' only deal with the single m value
  780. If m &gt;= Defined.M_SKETCHY Then Msg("info", "Accuracy of the curve at these parameters is not guaranteed")
  781. If width &lt; 0 And ignoreSelfIntersecting Then
  782. Msg("error", "Curve is self-intersecting. To enable these, set ignoreSelfIntersecting to False")
  783. Return
  784. End If
  785. Pts = FindBendForm(length, width, m, angle, refPlane)
  786. Crv = MakeCurve(pts, angle, refPlane)
  787. L = length
  788. W = width
  789. If flip_H Then height = -height
  790. H = height
  791. If flip_A Then angle = -angle
  792. A = angle
  793. E = E * 10 ^ 9 ' Young's modulus input E is in GPa, so we convert to Pa here (= N/m^2)
  794. F = EllipticK(m) ^ 2 * E * I / length ^ 2 ' from reference {4} pg. 79. Note: the critical buckling (that makes the rod/wire start to bend) can be found at height=0 (width=length)
  795. 'height = Math.Sqrt(((2 * Len / 5) ^ 2 - ((Wid - Len / 5) / 2) ^ 2) ' quick approximation discovered by Mårten of 'Geometry of Bending' fame ( http://tiny.cc/it2pbx )
  796. 'width = (Len +/- 2 * Math.Sqrt(4 * Len ^ 2 - 25 * Ht ^ 2)) / 5 ' derived from above
  797. 'length = (2 * Math.Sqrt(15 * Ht ^ 2 + 4 * Wid ^ 2) - Wid) / 3 ' derived from above
  798. 'Print("length=" &amp; length &amp; ", width=" &amp; width &amp; ", height=" &amp; height &amp; ", angle=" &amp; angle &amp; ", m=" &amp; m &amp; ", k=" &amp; Math.Sqrt(m) &amp; ", w/L=" &amp; width / length &amp; ", h/L=" &amp; height / length &amp; ", w/h=" &amp; width / height)
  799. End If
  800. </item>
  801. </items>
  802. <chunks count="2">
  803. <chunk name="Attributes">
  804. <items count="2">
  805. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  806. <X>612</X>
  807. <Y>233</Y>
  808. <W>84</W>
  809. <H>184</H>
  810. </item>
  811. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  812. <X>654</X>
  813. <Y>325</Y>
  814. </item>
  815. </items>
  816. </chunk>
  817. <chunk name="ParameterData">
  818. <items count="19">
  819. <item name="InputCount" type_name="gh_int32" type_code="3">9</item>
  820. <item name="InputId" index="0" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  821. <item name="InputId" index="1" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  822. <item name="InputId" index="2" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  823. <item name="InputId" index="3" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  824. <item name="InputId" index="4" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  825. <item name="InputId" index="5" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  826. <item name="InputId" index="6" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  827. <item name="InputId" index="7" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  828. <item name="InputId" index="8" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  829. <item name="OutputCount" type_name="gh_int32" type_code="3">8</item>
  830. <item name="OutputId" index="0" type_name="gh_guid" type_code="9">3ede854e-c753-40eb-84cb-b48008f14fd4</item>
  831. <item name="OutputId" index="1" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  832. <item name="OutputId" index="2" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  833. <item name="OutputId" index="3" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  834. <item name="OutputId" index="4" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  835. <item name="OutputId" index="5" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  836. <item name="OutputId" index="6" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  837. <item name="OutputId" index="7" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  838. </items>
  839. <chunks count="17">
  840. <chunk name="InputParam" index="0">
  841. <items count="11">
  842. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  843. <item name="Description" type_name="gh_string" type_code="10">Script Variable PtA</item>
  844. <item name="InstanceGuid" type_name="gh_guid" type_code="9">920df659-6d29-453d-9295-577245828ba6</item>
  845. <item name="Name" type_name="gh_string" type_code="10">PtA</item>
  846. <item name="NickName" type_name="gh_string" type_code="10">PtA</item>
  847. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  848. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  849. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  850. <item name="Source" index="0" type_name="gh_guid" type_code="9">7451bc70-5fc3-43a3-bb48-ff10952414e7</item>
  851. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  852. <item name="TypeHintID" type_name="gh_guid" type_code="9">e1937b56-b1da-4c12-8bd8-e34ee81746ef</item>
  853. </items>
  854. <chunks count="1">
  855. <chunk name="Attributes">
  856. <items count="2">
  857. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  858. <X>614</X>
  859. <Y>235</Y>
  860. <W>25</W>
  861. <H>20</H>
  862. </item>
  863. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  864. <X>628</X>
  865. <Y>245</Y>
  866. </item>
  867. </items>
  868. </chunk>
  869. </chunks>
  870. </chunk>
  871. <chunk name="InputParam" index="1">
  872. <items count="11">
  873. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  874. <item name="Description" type_name="gh_string" type_code="10">Script Variable PtB</item>
  875. <item name="InstanceGuid" type_name="gh_guid" type_code="9">eeb8ccaa-8966-4eab-8949-3eb384a12d84</item>
  876. <item name="Name" type_name="gh_string" type_code="10">PtB</item>
  877. <item name="NickName" type_name="gh_string" type_code="10">PtB</item>
  878. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  879. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  880. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  881. <item name="Source" index="0" type_name="gh_guid" type_code="9">d5104343-e872-4369-9a14-a75a852c1a15</item>
  882. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  883. <item name="TypeHintID" type_name="gh_guid" type_code="9">e1937b56-b1da-4c12-8bd8-e34ee81746ef</item>
  884. </items>
  885. <chunks count="1">
  886. <chunk name="Attributes">
  887. <items count="2">
  888. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  889. <X>614</X>
  890. <Y>255</Y>
  891. <W>25</W>
  892. <H>20</H>
  893. </item>
  894. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  895. <X>628</X>
  896. <Y>265</Y>
  897. </item>
  898. </items>
  899. </chunk>
  900. </chunks>
  901. </chunk>
  902. <chunk name="InputParam" index="2">
  903. <items count="11">
  904. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  905. <item name="Description" type_name="gh_string" type_code="10">Script Variable Pln</item>
  906. <item name="InstanceGuid" type_name="gh_guid" type_code="9">ee4f4d3f-f195-437b-88af-35d3a73d66ad</item>
  907. <item name="Name" type_name="gh_string" type_code="10">Pln</item>
  908. <item name="NickName" type_name="gh_string" type_code="10">Pln</item>
  909. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  910. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  911. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  912. <item name="Source" index="0" type_name="gh_guid" type_code="9">df7d1e6a-049f-4594-9fb2-7dda33d26e57</item>
  913. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  914. <item name="TypeHintID" type_name="gh_guid" type_code="9">3897522d-58e9-4d60-b38c-978ddacfedd8</item>
  915. </items>
  916. <chunks count="1">
  917. <chunk name="Attributes">
  918. <items count="2">
  919. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  920. <X>614</X>
  921. <Y>275</Y>
  922. <W>25</W>
  923. <H>20</H>
  924. </item>
  925. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  926. <X>628</X>
  927. <Y>285</Y>
  928. </item>
  929. </items>
  930. </chunk>
  931. </chunks>
  932. </chunk>
  933. <chunk name="InputParam" index="3">
  934. <items count="11">
  935. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  936. <item name="Description" type_name="gh_string" type_code="10">Script Variable Len</item>
  937. <item name="InstanceGuid" type_name="gh_guid" type_code="9">999531d8-8fc7-4421-8afb-076eb4ce3f6e</item>
  938. <item name="Name" type_name="gh_string" type_code="10">Len</item>
  939. <item name="NickName" type_name="gh_string" type_code="10">Len</item>
  940. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  941. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  942. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  943. <item name="Source" index="0" type_name="gh_guid" type_code="9">ce2f14ec-483c-4899-a8cb-784a62168957</item>
  944. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  945. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  946. </items>
  947. <chunks count="1">
  948. <chunk name="Attributes">
  949. <items count="2">
  950. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  951. <X>614</X>
  952. <Y>295</Y>
  953. <W>25</W>
  954. <H>20</H>
  955. </item>
  956. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  957. <X>628</X>
  958. <Y>305</Y>
  959. </item>
  960. </items>
  961. </chunk>
  962. </chunks>
  963. </chunk>
  964. <chunk name="InputParam" index="4">
  965. <items count="10">
  966. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  967. <item name="Description" type_name="gh_string" type_code="10">Script Variable Wid</item>
  968. <item name="InstanceGuid" type_name="gh_guid" type_code="9">8aba3acb-d87c-46a0-aef3-179156140406</item>
  969. <item name="Name" type_name="gh_string" type_code="10">Wid</item>
  970. <item name="NickName" type_name="gh_string" type_code="10">Wid</item>
  971. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  972. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  973. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  974. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  975. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  976. </items>
  977. <chunks count="1">
  978. <chunk name="Attributes">
  979. <items count="2">
  980. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  981. <X>614</X>
  982. <Y>315</Y>
  983. <W>25</W>
  984. <H>20</H>
  985. </item>
  986. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  987. <X>628</X>
  988. <Y>325</Y>
  989. </item>
  990. </items>
  991. </chunk>
  992. </chunks>
  993. </chunk>
  994. <chunk name="InputParam" index="5">
  995. <items count="10">
  996. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  997. <item name="Description" type_name="gh_string" type_code="10">Script Variable Ht</item>
  998. <item name="InstanceGuid" type_name="gh_guid" type_code="9">54082c0a-ad9c-49e6-97c2-34b9d8c0e605</item>
  999. <item name="Name" type_name="gh_string" type_code="10">Ht</item>
  1000. <item name="NickName" type_name="gh_string" type_code="10">Ht</item>
  1001. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  1002. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  1003. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  1004. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  1005. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  1006. </items>
  1007. <chunks count="1">
  1008. <chunk name="Attributes">
  1009. <items count="2">
  1010. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  1011. <X>614</X>
  1012. <Y>335</Y>
  1013. <W>25</W>
  1014. <H>20</H>
  1015. </item>
  1016. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  1017. <X>628</X>
  1018. <Y>345</Y>
  1019. </item>
  1020. </items>
  1021. </chunk>
  1022. </chunks>
  1023. </chunk>
  1024. <chunk name="InputParam" index="6">
  1025. <items count="10">
  1026. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  1027. <item name="Description" type_name="gh_string" type_code="10">Script Variable Ang</item>
  1028. <item name="InstanceGuid" type_name="gh_guid" type_code="9">998111e9-4c7d-4b27-88a9-01982081691a</item>
  1029. <item name="Name" type_name="gh_string" type_code="10">Ang</item>
  1030. <item name="NickName" type_name="gh_string" type_code="10">Ang</item>
  1031. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  1032. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  1033. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  1034. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  1035. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  1036. </items>
  1037. <chunks count="1">
  1038. <chunk name="Attributes">
  1039. <items count="2">
  1040. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  1041. <X>614</X>
  1042. <Y>355</Y>
  1043. <W>25</W>
  1044. <H>20</H>
  1045. </item>
  1046. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  1047. <X>628</X>
  1048. <Y>365</Y>
  1049. </item>
  1050. </items>
  1051. </chunk>
  1052. </chunks>
  1053. </chunk>
  1054. <chunk name="InputParam" index="7">
  1055. <items count="10">
  1056. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  1057. <item name="Description" type_name="gh_string" type_code="10">Script Variable E</item>
  1058. <item name="InstanceGuid" type_name="gh_guid" type_code="9">b0ed1e4b-bad1-4910-9cd3-3178fc1a708a</item>
  1059. <item name="Name" type_name="gh_string" type_code="10">E</item>
  1060. <item name="NickName" type_name="gh_string" type_code="10">E</item>
  1061. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  1062. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  1063. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  1064. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  1065. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  1066. </items>
  1067. <chunks count="1">
  1068. <chunk name="Attributes">
  1069. <items count="2">
  1070. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  1071. <X>614</X>
  1072. <Y>375</Y>
  1073. <W>25</W>
  1074. <H>20</H>
  1075. </item>
  1076. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  1077. <X>628</X>
  1078. <Y>385</Y>
  1079. </item>
  1080. </items>
  1081. </chunk>
  1082. </chunks>
  1083. </chunk>
  1084. <chunk name="InputParam" index="8">
  1085. <items count="10">
  1086. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  1087. <item name="Description" type_name="gh_string" type_code="10">Script Variable I</item>
  1088. <item name="InstanceGuid" type_name="gh_guid" type_code="9">8058a335-90ef-4152-920c-88e68de69acc</item>
  1089. <item name="Name" type_name="gh_string" type_code="10">I</item>
  1090. <item name="NickName" type_name="gh_string" type_code="10">I</item>
  1091. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  1092. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  1093. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  1094. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  1095. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  1096. </items>
  1097. <chunks count="1">
  1098. <chunk name="Attributes">
  1099. <items count="2">
  1100. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  1101. <X>614</X>
  1102. <Y>395</Y>
  1103. <W>25</W>
  1104. <H>20</H>
  1105. </item>
  1106. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  1107. <X>628</X>
  1108. <Y>405</Y>
  1109. </item>
  1110. </items>
  1111. </chunk>
  1112. </chunks>
  1113. </chunk>
  1114. <chunk name="OutputParam" index="0">
  1115. <items count="7">
  1116. <item name="Access" type_name="gh_int32" type_code="3">1</item>
  1117. <item name="Description" type_name="gh_string" type_code="10">Print, Reflect and Error streams</item>
  1118. <item name="InstanceGuid" type_name="gh_guid" type_code="9">17655ef3-6a9d-43b9-a699-bb23d2e2baff</item>
  1119. <item name="Name" type_name="gh_string" type_code="10">out</item>
  1120. <item name="NickName" type_name="gh_string" type_code="10">out</item>
  1121. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  1122. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  1123. </items>
  1124. <chunks count="1">
  1125. <chunk name="Attributes">
  1126. <items count="2">
  1127. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  1128. <X>669</X>
  1129. <Y>235</Y>
  1130. <W>25</W>
  1131. <H>22</H>
  1132. </item>
  1133. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  1134. <X>681.5</X>
  1135. <Y>246.25</Y>
  1136. </item>
  1137. </items>
  1138. </chunk>
  1139. </chunks>
  1140. </chunk>
  1141. <chunk name="OutputParam" index="1">
  1142. <items count="6">
  1143. <item name="Description" type_name="gh_string" type_code="10">Output parameter Pts</item>
  1144. <item name="InstanceGuid" type_name="gh_guid" type_code="9">d4f9a77d-b3a2-46c6-91de-6ce275666f2d</item>
  1145. <item name="Name" type_name="gh_string" type_code="10">Pts</item>
  1146. <item name="NickName" type_name="gh_string" type_code="10">Pts</item>
  1147. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  1148. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  1149. </items>
  1150. <chunks count="1">
  1151. <chunk name="Attributes">
  1152. <items count="2">
  1153. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  1154. <X>669</X>
  1155. <Y>257</Y>
  1156. <W>25</W>
  1157. <H>23</H>
  1158. </item>
  1159. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  1160. <X>681.5</X>
  1161. <Y>268.75</Y>
  1162. </item>
  1163. </items>
  1164. </chunk>
  1165. </chunks>
  1166. </chunk>
  1167. <chunk name="OutputParam" index="2">
  1168. <items count="6">
  1169. <item name="Description" type_name="gh_string" type_code="10">Output parameter Crv</item>
  1170. <item name="InstanceGuid" type_name="gh_guid" type_code="9">1b8d948b-eedb-4c3c-bfba-ceaee74ff110</item>
  1171. <item name="Name" type_name="gh_string" type_code="10">Crv</item>
  1172. <item name="NickName" type_name="gh_string" type_code="10">Crv</item>
  1173. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  1174. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  1175. </items>
  1176. <chunks count="1">
  1177. <chunk name="Attributes">
  1178. <items count="2">
  1179. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  1180. <X>669</X>
  1181. <Y>280</Y>
  1182. <W>25</W>
  1183. <H>22</H>
  1184. </item>
  1185. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  1186. <X>681.5</X>
  1187. <Y>291.25</Y>
  1188. </item>
  1189. </items>
  1190. </chunk>
  1191. </chunks>
  1192. </chunk>
  1193. <chunk name="OutputParam" index="3">
  1194. <items count="6">
  1195. <item name="Description" type_name="gh_string" type_code="10">Output parameter L</item>
  1196. <item name="InstanceGuid" type_name="gh_guid" type_code="9">0d6fe24b-f96e-4e86-bad3-d29ae034394e</item>
  1197. <item name="Name" type_name="gh_string" type_code="10">L</item>
  1198. <item name="NickName" type_name="gh_string" type_code="10">L</item>
  1199. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  1200. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  1201. </items>
  1202. <chunks count="1">
  1203. <chunk name="Attributes">
  1204. <items count="2">
  1205. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  1206. <X>669</X>
  1207. <Y>302</Y>
  1208. <W>25</W>
  1209. <H>23</H>
  1210. </item>
  1211. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  1212. <X>681.5</X>
  1213. <Y>313.75</Y>
  1214. </item>
  1215. </items>
  1216. </chunk>
  1217. </chunks>
  1218. </chunk>
  1219. <chunk name="OutputParam" index="4">
  1220. <items count="6">
  1221. <item name="Description" type_name="gh_string" type_code="10">Output parameter W</item>
  1222. <item name="InstanceGuid" type_name="gh_guid" type_code="9">816f49f4-39a6-4705-80c7-e2a924ac1e0c</item>
  1223. <item name="Name" type_name="gh_string" type_code="10">W</item>
  1224. <item name="NickName" type_name="gh_string" type_code="10">W</item>
  1225. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  1226. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  1227. </items>
  1228. <chunks count="1">
  1229. <chunk name="Attributes">
  1230. <items count="2">
  1231. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  1232. <X>669</X>
  1233. <Y>325</Y>
  1234. <W>25</W>
  1235. <H>22</H>
  1236. </item>
  1237. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  1238. <X>681.5</X>
  1239. <Y>336.25</Y>
  1240. </item>
  1241. </items>
  1242. </chunk>
  1243. </chunks>
  1244. </chunk>
  1245. <chunk name="OutputParam" index="5">
  1246. <items count="6">
  1247. <item name="Description" type_name="gh_string" type_code="10">Output parameter H</item>
  1248. <item name="InstanceGuid" type_name="gh_guid" type_code="9">b00909dc-b385-4e3e-a3a8-9e76efdaadeb</item>
  1249. <item name="Name" type_name="gh_string" type_code="10">H</item>
  1250. <item name="NickName" type_name="gh_string" type_code="10">H</item>
  1251. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  1252. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  1253. </items>
  1254. <chunks count="1">
  1255. <chunk name="Attributes">
  1256. <items count="2">
  1257. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  1258. <X>669</X>
  1259. <Y>347</Y>
  1260. <W>25</W>
  1261. <H>23</H>
  1262. </item>
  1263. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  1264. <X>681.5</X>
  1265. <Y>358.75</Y>
  1266. </item>
  1267. </items>
  1268. </chunk>
  1269. </chunks>
  1270. </chunk>
  1271. <chunk name="OutputParam" index="6">
  1272. <items count="6">
  1273. <item name="Description" type_name="gh_string" type_code="10">Output parameter A</item>
  1274. <item name="InstanceGuid" type_name="gh_guid" type_code="9">9632d9b7-ad5c-4b42-bc41-5bf9a4af0115</item>
  1275. <item name="Name" type_name="gh_string" type_code="10">A</item>
  1276. <item name="NickName" type_name="gh_string" type_code="10">A</item>
  1277. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  1278. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  1279. </items>
  1280. <chunks count="1">
  1281. <chunk name="Attributes">
  1282. <items count="2">
  1283. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  1284. <X>669</X>
  1285. <Y>370</Y>
  1286. <W>25</W>
  1287. <H>22</H>
  1288. </item>
  1289. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  1290. <X>681.5</X>
  1291. <Y>381.25</Y>
  1292. </item>
  1293. </items>
  1294. </chunk>
  1295. </chunks>
  1296. </chunk>
  1297. <chunk name="OutputParam" index="7">
  1298. <items count="6">
  1299. <item name="Description" type_name="gh_string" type_code="10">Output parameter F</item>
  1300. <item name="InstanceGuid" type_name="gh_guid" type_code="9">28c91c87-29e8-4bc8-a5ff-18aadc6f0ecd</item>
  1301. <item name="Name" type_name="gh_string" type_code="10">F</item>
  1302. <item name="NickName" type_name="gh_string" type_code="10">F</item>
  1303. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  1304. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  1305. </items>
  1306. <chunks count="1">
  1307. <chunk name="Attributes">
  1308. <items count="2">
  1309. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  1310. <X>669</X>
  1311. <Y>392</Y>
  1312. <W>25</W>
  1313. <H>23</H>
  1314. </item>
  1315. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  1316. <X>681.5</X>
  1317. <Y>403.75</Y>
  1318. </item>
  1319. </items>
  1320. </chunk>
  1321. </chunks>
  1322. </chunk>
  1323. </chunks>
  1324. </chunk>
  1325. </chunks>
  1326. </chunk>
  1327. </chunks>
  1328. </chunk>
  1329. <chunk name="Object" index="2">
  1330. <items count="2">
  1331. <item name="GUID" type_name="gh_guid" type_code="9">57da07bd-ecab-415d-9d86-af36d7073abc</item>
  1332. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  1333. </items>
  1334. <chunks count="1">
  1335. <chunk name="Container">
  1336. <items count="6">
  1337. <item name="Description" type_name="gh_string" type_code="10">Numeric slider for single values</item>
  1338. <item name="InstanceGuid" type_name="gh_guid" type_code="9">19d4e5e6-a3fb-4e4d-b426-93c0b41f974c</item>
  1339. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  1340. <item name="NickName" type_name="gh_string" type_code="10">width</item>
  1341. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  1342. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  1343. </items>
  1344. <chunks count="2">
  1345. <chunk name="Attributes">
  1346. <items count="2">
  1347. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  1348. <X>158</X>
  1349. <Y>312</Y>
  1350. <W>384</W>
  1351. <H>20</H>
  1352. </item>
  1353. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  1354. <X>158.3465</X>
  1355. <Y>312.3785</Y>
  1356. </item>
  1357. </items>
  1358. </chunk>
  1359. <chunk name="Slider">
  1360. <items count="7">
  1361. <item name="Digits" type_name="gh_int32" type_code="3">2</item>
  1362. <item name="GripDisplay" type_name="gh_int32" type_code="3">1</item>
  1363. <item name="Interval" type_name="gh_int32" type_code="3">0</item>
  1364. <item name="Max" type_name="gh_double" type_code="6">400</item>
  1365. <item name="Min" type_name="gh_double" type_code="6">-130</item>
  1366. <item name="SnapCount" type_name="gh_int32" type_code="3">0</item>
  1367. <item name="Value" type_name="gh_double" type_code="6">183.21</item>
  1368. </items>
  1369. </chunk>
  1370. </chunks>
  1371. </chunk>
  1372. </chunks>
  1373. </chunk>
  1374. <chunk name="Object" index="3">
  1375. <items count="2">
  1376. <item name="GUID" type_name="gh_guid" type_code="9">57da07bd-ecab-415d-9d86-af36d7073abc</item>
  1377. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  1378. </items>
  1379. <chunks count="1">
  1380. <chunk name="Container">
  1381. <items count="6">
  1382. <item name="Description" type_name="gh_string" type_code="10">Numeric slider for single values</item>
  1383. <item name="InstanceGuid" type_name="gh_guid" type_code="9">ce2f14ec-483c-4899-a8cb-784a62168957</item>
  1384. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  1385. <item name="NickName" type_name="gh_string" type_code="10">length</item>
  1386. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  1387. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  1388. </items>
  1389. <chunks count="2">
  1390. <chunk name="Attributes">
  1391. <items count="2">
  1392. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  1393. <X>158</X>
  1394. <Y>285</Y>
  1395. <W>385</W>
  1396. <H>20</H>
  1397. </item>
  1398. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  1399. <X>158.0028</X>
  1400. <Y>285.5286</Y>
  1401. </item>
  1402. </items>
  1403. </chunk>
  1404. <chunk name="Slider">
  1405. <items count="7">
  1406. <item name="Digits" type_name="gh_int32" type_code="3">2</item>
  1407. <item name="GripDisplay" type_name="gh_int32" type_code="3">1</item>
  1408. <item name="Interval" type_name="gh_int32" type_code="3">0</item>
  1409. <item name="Max" type_name="gh_double" type_code="6">400</item>
  1410. <item name="Min" type_name="gh_double" type_code="6">0</item>
  1411. <item name="SnapCount" type_name="gh_int32" type_code="3">0</item>
  1412. <item name="Value" type_name="gh_double" type_code="6">300</item>
  1413. </items>
  1414. </chunk>
  1415. </chunks>
  1416. </chunk>
  1417. </chunks>
  1418. </chunk>
  1419. <chunk name="Object" index="4">
  1420. <items count="2">
  1421. <item name="GUID" type_name="gh_guid" type_code="9">fbac3e32-f100-4292-8692-77240a42fd1a</item>
  1422. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  1423. </items>
  1424. <chunks count="1">
  1425. <chunk name="Container">
  1426. <items count="8">
  1427. <item name="Description" type_name="gh_string" type_code="10">Contains a collection of three-dimensional points</item>
  1428. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  1429. <item name="InstanceGuid" type_name="gh_guid" type_code="9">b2a67d0f-c66e-46a9-8efd-f7442d233d5d</item>
  1430. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  1431. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  1432. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  1433. <item name="Source" index="0" type_name="gh_guid" type_code="9">d4f9a77d-b3a2-46c6-91de-6ce275666f2d</item>
  1434. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  1435. </items>
  1436. <chunks count="1">
  1437. <chunk name="Attributes">
  1438. <items count="2">
  1439. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  1440. <X>782</X>
  1441. <Y>194</Y>
  1442. <W>50</W>
  1443. <H>24</H>
  1444. </item>
  1445. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  1446. <X>807.4574</X>
  1447. <Y>206.2478</Y>
  1448. </item>
  1449. </items>
  1450. </chunk>
  1451. </chunks>
  1452. </chunk>
  1453. </chunks>
  1454. </chunk>
  1455. <chunk name="Object" index="5">
  1456. <items count="2">
  1457. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  1458. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  1459. </items>
  1460. <chunks count="1">
  1461. <chunk name="Container">
  1462. <items count="9">
  1463. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  1464. <item name="InstanceGuid" type_name="gh_guid" type_code="9">32bb1a9f-9575-4b8c-8a60-a65a7b9dd15f</item>
  1465. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  1466. <item name="NickName" type_name="gh_string" type_code="10"></item>
  1467. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  1468. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  1469. <item name="Source" index="0" type_name="gh_guid" type_code="9">2296b093-286c-438d-aa59-465d23147f1c</item>
  1470. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  1471. <item name="UserText" type_name="gh_string" type_code="10">Double click to edit panel content…</item>
  1472. </items>
  1473. <chunks count="2">
  1474. <chunk name="Attributes">
  1475. <items count="5">
  1476. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  1477. <X>855</X>
  1478. <Y>408</Y>
  1479. <W>105</W>
  1480. <H>55</H>
  1481. </item>
  1482. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  1483. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  1484. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  1485. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  1486. <X>855.6731</X>
  1487. <Y>408.6088</Y>
  1488. </item>
  1489. </items>
  1490. </chunk>
  1491. <chunk name="PanelProperties">
  1492. <items count="7">
  1493. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  1494. <ARGB>255;255;250;90</ARGB>
  1495. </item>
  1496. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  1497. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  1498. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  1499. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  1500. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  1501. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  1502. </items>
  1503. </chunk>
  1504. </chunks>
  1505. </chunk>
  1506. </chunks>
  1507. </chunk>
  1508. <chunk name="Object" index="6">
  1509. <items count="2">
  1510. <item name="GUID" type_name="gh_guid" type_code="9">0d77c51e-584f-44e8-aed2-c2ddf4803888</item>
  1511. <item name="Name" type_name="gh_string" type_code="10">Degrees</item>
  1512. </items>
  1513. <chunks count="1">
  1514. <chunk name="Container">
  1515. <items count="4">
  1516. <item name="Description" type_name="gh_string" type_code="10">Convert an angle specified in radians to degrees</item>
  1517. <item name="InstanceGuid" type_name="gh_guid" type_code="9">98102773-859e-4cf3-83a5-41f68379af66</item>
  1518. <item name="Name" type_name="gh_string" type_code="10">Degrees</item>
  1519. <item name="NickName" type_name="gh_string" type_code="10">Deg</item>
  1520. </items>
  1521. <chunks count="3">
  1522. <chunk name="Attributes">
  1523. <items count="2">
  1524. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  1525. <X>754</X>
  1526. <Y>421</Y>
  1527. <W>64</W>
  1528. <H>28</H>
  1529. </item>
  1530. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  1531. <X>784</X>
  1532. <Y>435</Y>
  1533. </item>
  1534. </items>
  1535. </chunk>
  1536. <chunk name="param_input" index="0">
  1537. <items count="7">
  1538. <item name="Description" type_name="gh_string" type_code="10">Angle in radians</item>
  1539. <item name="InstanceGuid" type_name="gh_guid" type_code="9">f013de98-8461-42d6-94e2-d4f473814c3f</item>
  1540. <item name="Name" type_name="gh_string" type_code="10">Radians</item>
  1541. <item name="NickName" type_name="gh_string" type_code="10">R</item>
  1542. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  1543. <item name="Source" index="0" type_name="gh_guid" type_code="9">9632d9b7-ad5c-4b42-bc41-5bf9a4af0115</item>
  1544. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  1545. </items>
  1546. <chunks count="1">
  1547. <chunk name="Attributes">
  1548. <items count="2">
  1549. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  1550. <X>756</X>
  1551. <Y>423</Y>
  1552. <W>13</W>
  1553. <H>24</H>
  1554. </item>
  1555. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  1556. <X>764</X>
  1557. <Y>435</Y>
  1558. </item>
  1559. </items>
  1560. </chunk>
  1561. </chunks>
  1562. </chunk>
  1563. <chunk name="param_output" index="0">
  1564. <items count="6">
  1565. <item name="Description" type_name="gh_string" type_code="10">Angle in degrees</item>
  1566. <item name="InstanceGuid" type_name="gh_guid" type_code="9">2296b093-286c-438d-aa59-465d23147f1c</item>
  1567. <item name="Name" type_name="gh_string" type_code="10">Degrees</item>
  1568. <item name="NickName" type_name="gh_string" type_code="10">D</item>
  1569. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  1570. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  1571. </items>
  1572. <chunks count="1">
  1573. <chunk name="Attributes">
  1574. <items count="2">
  1575. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  1576. <X>799</X>
  1577. <Y>423</Y>
  1578. <W>17</W>
  1579. <H>24</H>
  1580. </item>
  1581. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  1582. <X>807.5</X>
  1583. <Y>435</Y>
  1584. </item>
  1585. </items>
  1586. </chunk>
  1587. </chunks>
  1588. </chunk>
  1589. </chunks>
  1590. </chunk>
  1591. </chunks>
  1592. </chunk>
  1593. <chunk name="Object" index="7">
  1594. <items count="2">
  1595. <item name="GUID" type_name="gh_guid" type_code="9">3581f42a-9592-4549-bd6b-1c0fc39d067b</item>
  1596. <item name="Name" type_name="gh_string" type_code="10">Construct Point</item>
  1597. </items>
  1598. <chunks count="1">
  1599. <chunk name="Container">
  1600. <items count="4">
  1601. <item name="Description" type_name="gh_string" type_code="10">Construct a point from {xyz} coordinates.</item>
  1602. <item name="InstanceGuid" type_name="gh_guid" type_code="9">d68f5884-1ed1-4bd5-ab64-b7040370d59b</item>
  1603. <item name="Name" type_name="gh_string" type_code="10">Construct Point</item>
  1604. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  1605. </items>
  1606. <chunks count="5">
  1607. <chunk name="Attributes">
  1608. <items count="2">
  1609. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  1610. <X>392</X>
  1611. <Y>101</Y>
  1612. <W>67</W>
  1613. <H>64</H>
  1614. </item>
  1615. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  1616. <X>423</X>
  1617. <Y>133</Y>
  1618. </item>
  1619. </items>
  1620. </chunk>
  1621. <chunk name="param_input" index="0">
  1622. <items count="6">
  1623. <item name="Description" type_name="gh_string" type_code="10">{x} coordinate</item>
  1624. <item name="InstanceGuid" type_name="gh_guid" type_code="9">b9e9716b-aaed-4e63-90f0-fd69bffec388</item>
  1625. <item name="Name" type_name="gh_string" type_code="10">X coordinate</item>
  1626. <item name="NickName" type_name="gh_string" type_code="10">X</item>
  1627. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  1628. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  1629. </items>
  1630. <chunks count="2">
  1631. <chunk name="Attributes">
  1632. <items count="2">
  1633. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  1634. <X>394</X>
  1635. <Y>103</Y>
  1636. <W>14</W>
  1637. <H>20</H>
  1638. </item>
  1639. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  1640. <X>402.5</X>
  1641. <Y>113</Y>
  1642. </item>
  1643. </items>
  1644. </chunk>
  1645. <chunk name="PersistentData">
  1646. <items count="1">
  1647. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  1648. </items>
  1649. <chunks count="1">
  1650. <chunk name="Branch" index="0">
  1651. <items count="2">
  1652. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  1653. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  1654. </items>
  1655. <chunks count="1">
  1656. <chunk name="Item" index="0">
  1657. <items count="1">
  1658. <item name="number" type_name="gh_double" type_code="6">0</item>
  1659. </items>
  1660. </chunk>
  1661. </chunks>
  1662. </chunk>
  1663. </chunks>
  1664. </chunk>
  1665. </chunks>
  1666. </chunk>
  1667. <chunk name="param_input" index="1">
  1668. <items count="6">
  1669. <item name="Description" type_name="gh_string" type_code="10">{y} coordinate</item>
  1670. <item name="InstanceGuid" type_name="gh_guid" type_code="9">961e58c0-1cd5-49a0-8fd1-0e419a2c0b34</item>
  1671. <item name="Name" type_name="gh_string" type_code="10">Y coordinate</item>
  1672. <item name="NickName" type_name="gh_string" type_code="10">Y</item>
  1673. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  1674. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  1675. </items>
  1676. <chunks count="2">
  1677. <chunk name="Attributes">
  1678. <items count="2">
  1679. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  1680. <X>394</X>
  1681. <Y>123</Y>
  1682. <W>14</W>
  1683. <H>20</H>
  1684. </item>
  1685. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  1686. <X>402.5</X>
  1687. <Y>133</Y>
  1688. </item>
  1689. </items>
  1690. </chunk>
  1691. <chunk name="PersistentData">
  1692. <items count="1">
  1693. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  1694. </items>
  1695. <chunks count="1">
  1696. <chunk name="Branch" index="0">
  1697. <items count="2">
  1698. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  1699. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  1700. </items>
  1701. <chunks count="1">
  1702. <chunk name="Item" index="0">
  1703. <items count="1">
  1704. <item name="number" type_name="gh_double" type_code="6">0</item>
  1705. </items>
  1706. </chunk>
  1707. </chunks>
  1708. </chunk>
  1709. </chunks>
  1710. </chunk>
  1711. </chunks>
  1712. </chunk>
  1713. <chunk name="param_input" index="2">
  1714. <items count="6">
  1715. <item name="Description" type_name="gh_string" type_code="10">{z} coordinate</item>
  1716. <item name="InstanceGuid" type_name="gh_guid" type_code="9">54bdcf81-cd9a-447c-bad3-a55fe7ef5dc1</item>
  1717. <item name="Name" type_name="gh_string" type_code="10">Z coordinate</item>
  1718. <item name="NickName" type_name="gh_string" type_code="10">Z</item>
  1719. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  1720. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  1721. </items>
  1722. <chunks count="2">
  1723. <chunk name="Attributes">
  1724. <items count="2">
  1725. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  1726. <X>394</X>
  1727. <Y>143</Y>
  1728. <W>14</W>
  1729. <H>20</H>
  1730. </item>
  1731. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  1732. <X>402.5</X>
  1733. <Y>153</Y>
  1734. </item>
  1735. </items>
  1736. </chunk>
  1737. <chunk name="PersistentData">
  1738. <items count="1">
  1739. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  1740. </items>
  1741. <chunks count="1">
  1742. <chunk name="Branch" index="0">
  1743. <items count="2">
  1744. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  1745. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  1746. </items>
  1747. <chunks count="1">
  1748. <chunk name="Item" index="0">
  1749. <items count="1">
  1750. <item name="number" type_name="gh_double" type_code="6">0</item>
  1751. </items>
  1752. </chunk>
  1753. </chunks>
  1754. </chunk>
  1755. </chunks>
  1756. </chunk>
  1757. </chunks>
  1758. </chunk>
  1759. <chunk name="param_output" index="0">
  1760. <items count="6">
  1761. <item name="Description" type_name="gh_string" type_code="10">Point coordinate</item>
  1762. <item name="InstanceGuid" type_name="gh_guid" type_code="9">7451bc70-5fc3-43a3-bb48-ff10952414e7</item>
  1763. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  1764. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  1765. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  1766. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  1767. </items>
  1768. <chunks count="1">
  1769. <chunk name="Attributes">
  1770. <items count="2">
  1771. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  1772. <X>438</X>
  1773. <Y>103</Y>
  1774. <W>19</W>
  1775. <H>60</H>
  1776. </item>
  1777. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  1778. <X>447.5</X>
  1779. <Y>133</Y>
  1780. </item>
  1781. </items>
  1782. </chunk>
  1783. </chunks>
  1784. </chunk>
  1785. </chunks>
  1786. </chunk>
  1787. </chunks>
  1788. </chunk>
  1789. <chunk name="Object" index="8">
  1790. <items count="2">
  1791. <item name="GUID" type_name="gh_guid" type_code="9">3581f42a-9592-4549-bd6b-1c0fc39d067b</item>
  1792. <item name="Name" type_name="gh_string" type_code="10">Construct Point</item>
  1793. </items>
  1794. <chunks count="1">
  1795. <chunk name="Container">
  1796. <items count="4">
  1797. <item name="Description" type_name="gh_string" type_code="10">Construct a point from {xyz} coordinates.</item>
  1798. <item name="InstanceGuid" type_name="gh_guid" type_code="9">8cd6ad76-7f71-4948-8c5e-9a3e2549985f</item>
  1799. <item name="Name" type_name="gh_string" type_code="10">Construct Point</item>
  1800. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  1801. </items>
  1802. <chunks count="5">
  1803. <chunk name="Attributes">
  1804. <items count="2">
  1805. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  1806. <X>392</X>
  1807. <Y>173</Y>
  1808. <W>67</W>
  1809. <H>64</H>
  1810. </item>
  1811. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  1812. <X>423</X>
  1813. <Y>205</Y>
  1814. </item>
  1815. </items>
  1816. </chunk>
  1817. <chunk name="param_input" index="0">
  1818. <items count="7">
  1819. <item name="Description" type_name="gh_string" type_code="10">{x} coordinate</item>
  1820. <item name="InstanceGuid" type_name="gh_guid" type_code="9">cc48fd1f-8953-40bd-a5f6-a9a203bcabd4</item>
  1821. <item name="Name" type_name="gh_string" type_code="10">X coordinate</item>
  1822. <item name="NickName" type_name="gh_string" type_code="10">X</item>
  1823. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  1824. <item name="Source" index="0" type_name="gh_guid" type_code="9">95f9fd7f-37dc-4bd8-8105-7301ef052bdd</item>
  1825. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  1826. </items>
  1827. <chunks count="2">
  1828. <chunk name="Attributes">
  1829. <items count="2">
  1830. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  1831. <X>394</X>
  1832. <Y>175</Y>
  1833. <W>14</W>
  1834. <H>20</H>
  1835. </item>
  1836. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  1837. <X>402.5</X>
  1838. <Y>185</Y>
  1839. </item>
  1840. </items>
  1841. </chunk>
  1842. <chunk name="PersistentData">
  1843. <items count="1">
  1844. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  1845. </items>
  1846. <chunks count="1">
  1847. <chunk name="Branch" index="0">
  1848. <items count="2">
  1849. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  1850. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  1851. </items>
  1852. <chunks count="1">
  1853. <chunk name="Item" index="0">
  1854. <items count="1">
  1855. <item name="number" type_name="gh_double" type_code="6">80</item>
  1856. </items>
  1857. </chunk>
  1858. </chunks>
  1859. </chunk>
  1860. </chunks>
  1861. </chunk>
  1862. </chunks>
  1863. </chunk>
  1864. <chunk name="param_input" index="1">
  1865. <items count="6">
  1866. <item name="Description" type_name="gh_string" type_code="10">{y} coordinate</item>
  1867. <item name="InstanceGuid" type_name="gh_guid" type_code="9">a1e74152-bea6-4daf-a4cf-bbaa027d9769</item>
  1868. <item name="Name" type_name="gh_string" type_code="10">Y coordinate</item>
  1869. <item name="NickName" type_name="gh_string" type_code="10">Y</item>
  1870. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  1871. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  1872. </items>
  1873. <chunks count="2">
  1874. <chunk name="Attributes">
  1875. <items count="2">
  1876. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  1877. <X>394</X>
  1878. <Y>195</Y>
  1879. <W>14</W>
  1880. <H>20</H>
  1881. </item>
  1882. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  1883. <X>402.5</X>
  1884. <Y>205</Y>
  1885. </item>
  1886. </items>
  1887. </chunk>
  1888. <chunk name="PersistentData">
  1889. <items count="1">
  1890. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  1891. </items>
  1892. <chunks count="1">
  1893. <chunk name="Branch" index="0">
  1894. <items count="2">
  1895. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  1896. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  1897. </items>
  1898. <chunks count="1">
  1899. <chunk name="Item" index="0">
  1900. <items count="1">
  1901. <item name="number" type_name="gh_double" type_code="6">0</item>
  1902. </items>
  1903. </chunk>
  1904. </chunks>
  1905. </chunk>
  1906. </chunks>
  1907. </chunk>
  1908. </chunks>
  1909. </chunk>
  1910. <chunk name="param_input" index="2">
  1911. <items count="6">
  1912. <item name="Description" type_name="gh_string" type_code="10">{z} coordinate</item>
  1913. <item name="InstanceGuid" type_name="gh_guid" type_code="9">e34fa320-f5a3-4aaf-beaf-4207678e6e88</item>
  1914. <item name="Name" type_name="gh_string" type_code="10">Z coordinate</item>
  1915. <item name="NickName" type_name="gh_string" type_code="10">Z</item>
  1916. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  1917. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  1918. </items>
  1919. <chunks count="2">
  1920. <chunk name="Attributes">
  1921. <items count="2">
  1922. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  1923. <X>394</X>
  1924. <Y>215</Y>
  1925. <W>14</W>
  1926. <H>20</H>
  1927. </item>
  1928. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  1929. <X>402.5</X>
  1930. <Y>225</Y>
  1931. </item>
  1932. </items>
  1933. </chunk>
  1934. <chunk name="PersistentData">
  1935. <items count="1">
  1936. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  1937. </items>
  1938. <chunks count="1">
  1939. <chunk name="Branch" index="0">
  1940. <items count="2">
  1941. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  1942. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  1943. </items>
  1944. <chunks count="1">
  1945. <chunk name="Item" index="0">
  1946. <items count="1">
  1947. <item name="number" type_name="gh_double" type_code="6">0</item>
  1948. </items>
  1949. </chunk>
  1950. </chunks>
  1951. </chunk>
  1952. </chunks>
  1953. </chunk>
  1954. </chunks>
  1955. </chunk>
  1956. <chunk name="param_output" index="0">
  1957. <items count="6">
  1958. <item name="Description" type_name="gh_string" type_code="10">Point coordinate</item>
  1959. <item name="InstanceGuid" type_name="gh_guid" type_code="9">d5104343-e872-4369-9a14-a75a852c1a15</item>
  1960. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  1961. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  1962. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  1963. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  1964. </items>
  1965. <chunks count="1">
  1966. <chunk name="Attributes">
  1967. <items count="2">
  1968. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  1969. <X>438</X>
  1970. <Y>175</Y>
  1971. <W>19</W>
  1972. <H>60</H>
  1973. </item>
  1974. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  1975. <X>447.5</X>
  1976. <Y>205</Y>
  1977. </item>
  1978. </items>
  1979. </chunk>
  1980. </chunks>
  1981. </chunk>
  1982. </chunks>
  1983. </chunk>
  1984. </chunks>
  1985. </chunk>
  1986. <chunk name="Object" index="9">
  1987. <items count="2">
  1988. <item name="GUID" type_name="gh_guid" type_code="9">d5967b9f-e8ee-436b-a8ad-29fdcecf32d5</item>
  1989. <item name="Name" type_name="gh_string" type_code="10">Curve</item>
  1990. </items>
  1991. <chunks count="1">
  1992. <chunk name="Container">
  1993. <items count="7">
  1994. <item name="Description" type_name="gh_string" type_code="10">Contains a collection of generic curves</item>
  1995. <item name="InstanceGuid" type_name="gh_guid" type_code="9">d53a1087-053a-44d5-b485-68a8b5d09ce4</item>
  1996. <item name="Name" type_name="gh_string" type_code="10">Curve</item>
  1997. <item name="NickName" type_name="gh_string" type_code="10">Crv</item>
  1998. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  1999. <item name="Source" index="0" type_name="gh_guid" type_code="9">1b8d948b-eedb-4c3c-bfba-ceaee74ff110</item>
  2000. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  2001. </items>
  2002. <chunks count="1">
  2003. <chunk name="Attributes">
  2004. <items count="2">
  2005. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  2006. <X>782</X>
  2007. <Y>236</Y>
  2008. <W>50</W>
  2009. <H>24</H>
  2010. </item>
  2011. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  2012. <X>807.4463</X>
  2013. <Y>248.7776</Y>
  2014. </item>
  2015. </items>
  2016. </chunk>
  2017. </chunks>
  2018. </chunk>
  2019. </chunks>
  2020. </chunk>
  2021. <chunk name="Object" index="10">
  2022. <items count="2">
  2023. <item name="GUID" type_name="gh_guid" type_code="9">17b7152b-d30d-4d50-b9ef-c9fe25576fc2</item>
  2024. <item name="Name" type_name="gh_string" type_code="10">XY Plane</item>
  2025. </items>
  2026. <chunks count="1">
  2027. <chunk name="Container">
  2028. <items count="5">
  2029. <item name="Description" type_name="gh_string" type_code="10">World XY plane.</item>
  2030. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  2031. <item name="InstanceGuid" type_name="gh_guid" type_code="9">cc8dfb80-5022-4b13-83c9-a787888900e8</item>
  2032. <item name="Name" type_name="gh_string" type_code="10">XY Plane</item>
  2033. <item name="NickName" type_name="gh_string" type_code="10">XY</item>
  2034. </items>
  2035. <chunks count="3">
  2036. <chunk name="Attributes">
  2037. <items count="2">
  2038. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  2039. <X>474</X>
  2040. <Y>246</Y>
  2041. <W>64</W>
  2042. <H>28</H>
  2043. </item>
  2044. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  2045. <X>505</X>
  2046. <Y>260</Y>
  2047. </item>
  2048. </items>
  2049. </chunk>
  2050. <chunk name="param_input" index="0">
  2051. <items count="6">
  2052. <item name="Description" type_name="gh_string" type_code="10">Origin of plane</item>
  2053. <item name="InstanceGuid" type_name="gh_guid" type_code="9">36223dd6-39d8-43d1-85f3-16523a2c0069</item>
  2054. <item name="Name" type_name="gh_string" type_code="10">Origin</item>
  2055. <item name="NickName" type_name="gh_string" type_code="10">O</item>
  2056. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  2057. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  2058. </items>
  2059. <chunks count="2">
  2060. <chunk name="Attributes">
  2061. <items count="2">
  2062. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  2063. <X>476</X>
  2064. <Y>248</Y>
  2065. <W>14</W>
  2066. <H>24</H>
  2067. </item>
  2068. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  2069. <X>484.5</X>
  2070. <Y>260</Y>
  2071. </item>
  2072. </items>
  2073. </chunk>
  2074. <chunk name="PersistentData">
  2075. <items count="1">
  2076. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  2077. </items>
  2078. <chunks count="1">
  2079. <chunk name="Branch" index="0">
  2080. <items count="2">
  2081. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  2082. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  2083. </items>
  2084. <chunks count="1">
  2085. <chunk name="Item" index="0">
  2086. <!--GH_Point only stores data which exists, test the existence of data fields prior to reading.-->
  2087. <items count="1">
  2088. <item name="Coordinate" type_name="gh_point3d" type_code="51">
  2089. <X>0</X>
  2090. <Y>0</Y>
  2091. <Z>0</Z>
  2092. </item>
  2093. </items>
  2094. </chunk>
  2095. </chunks>
  2096. </chunk>
  2097. </chunks>
  2098. </chunk>
  2099. </chunks>
  2100. </chunk>
  2101. <chunk name="param_output" index="0">
  2102. <items count="6">
  2103. <item name="Description" type_name="gh_string" type_code="10">World XY plane</item>
  2104. <item name="InstanceGuid" type_name="gh_guid" type_code="9">df7d1e6a-049f-4594-9fb2-7dda33d26e57</item>
  2105. <item name="Name" type_name="gh_string" type_code="10">Plane</item>
  2106. <item name="NickName" type_name="gh_string" type_code="10">P</item>
  2107. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  2108. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  2109. </items>
  2110. <chunks count="1">
  2111. <chunk name="Attributes">
  2112. <items count="2">
  2113. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  2114. <X>520</X>
  2115. <Y>248</Y>
  2116. <W>16</W>
  2117. <H>24</H>
  2118. </item>
  2119. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  2120. <X>528</X>
  2121. <Y>260</Y>
  2122. </item>
  2123. </items>
  2124. </chunk>
  2125. </chunks>
  2126. </chunk>
  2127. </chunks>
  2128. </chunk>
  2129. </chunks>
  2130. </chunk>
  2131. <chunk name="Object" index="11">
  2132. <items count="2">
  2133. <item name="GUID" type_name="gh_guid" type_code="9">a4cd2751-414d-42ec-8916-476ebf62d7fe</item>
  2134. <item name="Name" type_name="gh_string" type_code="10">Radians</item>
  2135. </items>
  2136. <chunks count="1">
  2137. <chunk name="Container">
  2138. <items count="4">
  2139. <item name="Description" type_name="gh_string" type_code="10">Convert an angle specified in degrees to radians</item>
  2140. <item name="InstanceGuid" type_name="gh_guid" type_code="9">072c5f2f-5efd-4587-8eb9-f4eacb6f59a9</item>
  2141. <item name="Name" type_name="gh_string" type_code="10">Radians</item>
  2142. <item name="NickName" type_name="gh_string" type_code="10">Rad</item>
  2143. </items>
  2144. <chunks count="3">
  2145. <chunk name="Attributes">
  2146. <items count="2">
  2147. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  2148. <X>478</X>
  2149. <Y>365</Y>
  2150. <W>64</W>
  2151. <H>28</H>
  2152. </item>
  2153. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  2154. <X>509</X>
  2155. <Y>379</Y>
  2156. </item>
  2157. </items>
  2158. </chunk>
  2159. <chunk name="param_input" index="0">
  2160. <items count="7">
  2161. <item name="Description" type_name="gh_string" type_code="10">Angle in degrees</item>
  2162. <item name="InstanceGuid" type_name="gh_guid" type_code="9">7201253d-ef74-40ae-8173-4b941b44547b</item>
  2163. <item name="Name" type_name="gh_string" type_code="10">Degrees</item>
  2164. <item name="NickName" type_name="gh_string" type_code="10">D</item>
  2165. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  2166. <item name="Source" index="0" type_name="gh_guid" type_code="9">25d0b3b4-fc42-4433-a4bf-e70bfa828143</item>
  2167. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  2168. </items>
  2169. <chunks count="1">
  2170. <chunk name="Attributes">
  2171. <items count="2">
  2172. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  2173. <X>480</X>
  2174. <Y>367</Y>
  2175. <W>14</W>
  2176. <H>24</H>
  2177. </item>
  2178. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  2179. <X>488.5</X>
  2180. <Y>379</Y>
  2181. </item>
  2182. </items>
  2183. </chunk>
  2184. </chunks>
  2185. </chunk>
  2186. <chunk name="param_output" index="0">
  2187. <items count="6">
  2188. <item name="Description" type_name="gh_string" type_code="10">Angle in radians</item>
  2189. <item name="InstanceGuid" type_name="gh_guid" type_code="9">c64ce2fc-64f4-4ffc-abb1-8343f67d6c30</item>
  2190. <item name="Name" type_name="gh_string" type_code="10">Radians</item>
  2191. <item name="NickName" type_name="gh_string" type_code="10">R</item>
  2192. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  2193. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  2194. </items>
  2195. <chunks count="1">
  2196. <chunk name="Attributes">
  2197. <items count="2">
  2198. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  2199. <X>524</X>
  2200. <Y>367</Y>
  2201. <W>16</W>
  2202. <H>24</H>
  2203. </item>
  2204. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  2205. <X>532</X>
  2206. <Y>379</Y>
  2207. </item>
  2208. </items>
  2209. </chunk>
  2210. </chunks>
  2211. </chunk>
  2212. </chunks>
  2213. </chunk>
  2214. </chunks>
  2215. </chunk>
  2216. <chunk name="Object" index="12">
  2217. <items count="2">
  2218. <item name="GUID" type_name="gh_guid" type_code="9">57da07bd-ecab-415d-9d86-af36d7073abc</item>
  2219. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  2220. </items>
  2221. <chunks count="1">
  2222. <chunk name="Container">
  2223. <items count="6">
  2224. <item name="Description" type_name="gh_string" type_code="10">Numeric slider for single values</item>
  2225. <item name="InstanceGuid" type_name="gh_guid" type_code="9">25d0b3b4-fc42-4433-a4bf-e70bfa828143</item>
  2226. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  2227. <item name="NickName" type_name="gh_string" type_code="10">angle °</item>
  2228. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  2229. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  2230. </items>
  2231. <chunks count="2">
  2232. <chunk name="Attributes">
  2233. <items count="2">
  2234. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  2235. <X>160</X>
  2236. <Y>370</Y>
  2237. <W>295</W>
  2238. <H>20</H>
  2239. </item>
  2240. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  2241. <X>160.2554</X>
  2242. <Y>370.2197</Y>
  2243. </item>
  2244. </items>
  2245. </chunk>
  2246. <chunk name="Slider">
  2247. <items count="7">
  2248. <item name="Digits" type_name="gh_int32" type_code="3">2</item>
  2249. <item name="GripDisplay" type_name="gh_int32" type_code="3">1</item>
  2250. <item name="Interval" type_name="gh_int32" type_code="3">0</item>
  2251. <item name="Max" type_name="gh_double" type_code="6">170</item>
  2252. <item name="Min" type_name="gh_double" type_code="6">0</item>
  2253. <item name="SnapCount" type_name="gh_int32" type_code="3">0</item>
  2254. <item name="Value" type_name="gh_double" type_code="6">110.7</item>
  2255. </items>
  2256. </chunk>
  2257. </chunks>
  2258. </chunk>
  2259. </chunks>
  2260. </chunk>
  2261. <chunk name="Object" index="13">
  2262. <items count="2">
  2263. <item name="GUID" type_name="gh_guid" type_code="9">c98a6015-7a2f-423c-bc66-bdc505249b45</item>
  2264. <item name="Name" type_name="gh_string" type_code="10">Plane 3Pt</item>
  2265. </items>
  2266. <chunks count="1">
  2267. <chunk name="Container">
  2268. <items count="5">
  2269. <item name="Description" type_name="gh_string" type_code="10">Create a plane through three points.</item>
  2270. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  2271. <item name="InstanceGuid" type_name="gh_guid" type_code="9">78631b64-b599-490f-b493-9d449559b6c0</item>
  2272. <item name="Name" type_name="gh_string" type_code="10">Plane 3Pt</item>
  2273. <item name="NickName" type_name="gh_string" type_code="10">Pl 3Pt</item>
  2274. </items>
  2275. <chunks count="5">
  2276. <chunk name="Attributes">
  2277. <items count="2">
  2278. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  2279. <X>-129</X>
  2280. <Y>197</Y>
  2281. <W>66</W>
  2282. <H>64</H>
  2283. </item>
  2284. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  2285. <X>-98</X>
  2286. <Y>229</Y>
  2287. </item>
  2288. </items>
  2289. </chunk>
  2290. <chunk name="param_input" index="0">
  2291. <items count="7">
  2292. <item name="Description" type_name="gh_string" type_code="10">Origin point</item>
  2293. <item name="InstanceGuid" type_name="gh_guid" type_code="9">c03438e8-8e89-47d2-b5c9-ca10c981173e</item>
  2294. <item name="Name" type_name="gh_string" type_code="10">Point A</item>
  2295. <item name="NickName" type_name="gh_string" type_code="10">A</item>
  2296. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  2297. <item name="Source" index="0" type_name="gh_guid" type_code="9">c318333b-fa9e-426b-b869-991ed69f1b64</item>
  2298. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  2299. </items>
  2300. <chunks count="1">
  2301. <chunk name="Attributes">
  2302. <items count="2">
  2303. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  2304. <X>-127</X>
  2305. <Y>199</Y>
  2306. <W>14</W>
  2307. <H>20</H>
  2308. </item>
  2309. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  2310. <X>-118.5</X>
  2311. <Y>209</Y>
  2312. </item>
  2313. </items>
  2314. </chunk>
  2315. </chunks>
  2316. </chunk>
  2317. <chunk name="param_input" index="1">
  2318. <items count="7">
  2319. <item name="Description" type_name="gh_string" type_code="10">X-direction point</item>
  2320. <item name="InstanceGuid" type_name="gh_guid" type_code="9">88046baa-f5c6-4fbc-97be-c88ee826709d</item>
  2321. <item name="Name" type_name="gh_string" type_code="10">Point B</item>
  2322. <item name="NickName" type_name="gh_string" type_code="10">B</item>
  2323. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  2324. <item name="Source" index="0" type_name="gh_guid" type_code="9">5252af42-8b65-437c-a487-5eac1156e2cc</item>
  2325. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  2326. </items>
  2327. <chunks count="1">
  2328. <chunk name="Attributes">
  2329. <items count="2">
  2330. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  2331. <X>-127</X>
  2332. <Y>219</Y>
  2333. <W>14</W>
  2334. <H>20</H>
  2335. </item>
  2336. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  2337. <X>-118.5</X>
  2338. <Y>229</Y>
  2339. </item>
  2340. </items>
  2341. </chunk>
  2342. </chunks>
  2343. </chunk>
  2344. <chunk name="param_input" index="2">
  2345. <items count="7">
  2346. <item name="Description" type_name="gh_string" type_code="10">Orientation point</item>
  2347. <item name="InstanceGuid" type_name="gh_guid" type_code="9">9ece8cd3-edbb-4986-9f6d-886138f5abd4</item>
  2348. <item name="Name" type_name="gh_string" type_code="10">Point C</item>
  2349. <item name="NickName" type_name="gh_string" type_code="10">C</item>
  2350. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  2351. <item name="Source" index="0" type_name="gh_guid" type_code="9">f4cf1901-0cd0-4475-9dd6-bf34f5ebc6e1</item>
  2352. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  2353. </items>
  2354. <chunks count="1">
  2355. <chunk name="Attributes">
  2356. <items count="2">
  2357. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  2358. <X>-127</X>
  2359. <Y>239</Y>
  2360. <W>14</W>
  2361. <H>20</H>
  2362. </item>
  2363. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  2364. <X>-118.5</X>
  2365. <Y>249</Y>
  2366. </item>
  2367. </items>
  2368. </chunk>
  2369. </chunks>
  2370. </chunk>
  2371. <chunk name="param_output" index="0">
  2372. <items count="6">
  2373. <item name="Description" type_name="gh_string" type_code="10">Plane definition</item>
  2374. <item name="InstanceGuid" type_name="gh_guid" type_code="9">af793683-207b-4276-a8a1-cc931d61589e</item>
  2375. <item name="Name" type_name="gh_string" type_code="10">Plane</item>
  2376. <item name="NickName" type_name="gh_string" type_code="10">Pl</item>
  2377. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  2378. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  2379. </items>
  2380. <chunks count="1">
  2381. <chunk name="Attributes">
  2382. <items count="2">
  2383. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  2384. <X>-83</X>
  2385. <Y>199</Y>
  2386. <W>18</W>
  2387. <H>60</H>
  2388. </item>
  2389. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  2390. <X>-74</X>
  2391. <Y>229</Y>
  2392. </item>
  2393. </items>
  2394. </chunk>
  2395. </chunks>
  2396. </chunk>
  2397. </chunks>
  2398. </chunk>
  2399. </chunks>
  2400. </chunk>
  2401. <chunk name="Object" index="14">
  2402. <items count="2">
  2403. <item name="GUID" type_name="gh_guid" type_code="9">3581f42a-9592-4549-bd6b-1c0fc39d067b</item>
  2404. <item name="Name" type_name="gh_string" type_code="10">Construct Point</item>
  2405. </items>
  2406. <chunks count="1">
  2407. <chunk name="Container">
  2408. <items count="5">
  2409. <item name="Description" type_name="gh_string" type_code="10">Construct a point from {xyz} coordinates.</item>
  2410. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  2411. <item name="InstanceGuid" type_name="gh_guid" type_code="9">03b41596-1093-42df-8cb9-728ff4c83a73</item>
  2412. <item name="Name" type_name="gh_string" type_code="10">Construct Point</item>
  2413. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  2414. </items>
  2415. <chunks count="5">
  2416. <chunk name="Attributes">
  2417. <items count="2">
  2418. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  2419. <X>-281</X>
  2420. <Y>116</Y>
  2421. <W>67</W>
  2422. <H>64</H>
  2423. </item>
  2424. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  2425. <X>-250</X>
  2426. <Y>148</Y>
  2427. </item>
  2428. </items>
  2429. </chunk>
  2430. <chunk name="param_input" index="0">
  2431. <items count="7">
  2432. <item name="Description" type_name="gh_string" type_code="10">{x} coordinate</item>
  2433. <item name="InstanceGuid" type_name="gh_guid" type_code="9">46b26c29-1295-4a56-90de-e2187690ca0a</item>
  2434. <item name="Name" type_name="gh_string" type_code="10">X coordinate</item>
  2435. <item name="NickName" type_name="gh_string" type_code="10">X</item>
  2436. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  2437. <item name="Source" index="0" type_name="gh_guid" type_code="9">39c22776-a388-46d7-abe4-caaffd8004f9</item>
  2438. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  2439. </items>
  2440. <chunks count="2">
  2441. <chunk name="Attributes">
  2442. <items count="2">
  2443. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  2444. <X>-279</X>
  2445. <Y>118</Y>
  2446. <W>14</W>
  2447. <H>20</H>
  2448. </item>
  2449. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  2450. <X>-270.5</X>
  2451. <Y>128</Y>
  2452. </item>
  2453. </items>
  2454. </chunk>
  2455. <chunk name="PersistentData">
  2456. <items count="1">
  2457. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  2458. </items>
  2459. <chunks count="1">
  2460. <chunk name="Branch" index="0">
  2461. <items count="2">
  2462. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  2463. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  2464. </items>
  2465. <chunks count="1">
  2466. <chunk name="Item" index="0">
  2467. <items count="1">
  2468. <item name="number" type_name="gh_double" type_code="6">0</item>
  2469. </items>
  2470. </chunk>
  2471. </chunks>
  2472. </chunk>
  2473. </chunks>
  2474. </chunk>
  2475. </chunks>
  2476. </chunk>
  2477. <chunk name="param_input" index="1">
  2478. <items count="7">
  2479. <item name="Description" type_name="gh_string" type_code="10">{y} coordinate</item>
  2480. <item name="InstanceGuid" type_name="gh_guid" type_code="9">05cdff1f-dab0-4d5c-8b53-f69ce1483ebc</item>
  2481. <item name="Name" type_name="gh_string" type_code="10">Y coordinate</item>
  2482. <item name="NickName" type_name="gh_string" type_code="10">Y</item>
  2483. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  2484. <item name="Source" index="0" type_name="gh_guid" type_code="9">108fecb2-82c4-4ef7-b31a-2d6517c32268</item>
  2485. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  2486. </items>
  2487. <chunks count="2">
  2488. <chunk name="Attributes">
  2489. <items count="2">
  2490. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  2491. <X>-279</X>
  2492. <Y>138</Y>
  2493. <W>14</W>
  2494. <H>20</H>
  2495. </item>
  2496. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  2497. <X>-270.5</X>
  2498. <Y>148</Y>
  2499. </item>
  2500. </items>
  2501. </chunk>
  2502. <chunk name="PersistentData">
  2503. <items count="1">
  2504. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  2505. </items>
  2506. <chunks count="1">
  2507. <chunk name="Branch" index="0">
  2508. <items count="2">
  2509. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  2510. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  2511. </items>
  2512. <chunks count="1">
  2513. <chunk name="Item" index="0">
  2514. <items count="1">
  2515. <item name="number" type_name="gh_double" type_code="6">0</item>
  2516. </items>
  2517. </chunk>
  2518. </chunks>
  2519. </chunk>
  2520. </chunks>
  2521. </chunk>
  2522. </chunks>
  2523. </chunk>
  2524. <chunk name="param_input" index="2">
  2525. <items count="7">
  2526. <item name="Description" type_name="gh_string" type_code="10">{z} coordinate</item>
  2527. <item name="InstanceGuid" type_name="gh_guid" type_code="9">1cd02656-25ae-4866-8098-c3757e985576</item>
  2528. <item name="Name" type_name="gh_string" type_code="10">Z coordinate</item>
  2529. <item name="NickName" type_name="gh_string" type_code="10">Z</item>
  2530. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  2531. <item name="Source" index="0" type_name="gh_guid" type_code="9">ca67e373-c39e-4d29-980d-1c76d91a2de9</item>
  2532. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  2533. </items>
  2534. <chunks count="2">
  2535. <chunk name="Attributes">
  2536. <items count="2">
  2537. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  2538. <X>-279</X>
  2539. <Y>158</Y>
  2540. <W>14</W>
  2541. <H>20</H>
  2542. </item>
  2543. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  2544. <X>-270.5</X>
  2545. <Y>168</Y>
  2546. </item>
  2547. </items>
  2548. </chunk>
  2549. <chunk name="PersistentData">
  2550. <items count="1">
  2551. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  2552. </items>
  2553. <chunks count="1">
  2554. <chunk name="Branch" index="0">
  2555. <items count="2">
  2556. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  2557. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  2558. </items>
  2559. <chunks count="1">
  2560. <chunk name="Item" index="0">
  2561. <items count="1">
  2562. <item name="number" type_name="gh_double" type_code="6">0</item>
  2563. </items>
  2564. </chunk>
  2565. </chunks>
  2566. </chunk>
  2567. </chunks>
  2568. </chunk>
  2569. </chunks>
  2570. </chunk>
  2571. <chunk name="param_output" index="0">
  2572. <items count="6">
  2573. <item name="Description" type_name="gh_string" type_code="10">Point coordinate</item>
  2574. <item name="InstanceGuid" type_name="gh_guid" type_code="9">c318333b-fa9e-426b-b869-991ed69f1b64</item>
  2575. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  2576. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  2577. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  2578. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  2579. </items>
  2580. <chunks count="1">
  2581. <chunk name="Attributes">
  2582. <items count="2">
  2583. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  2584. <X>-235</X>
  2585. <Y>118</Y>
  2586. <W>19</W>
  2587. <H>60</H>
  2588. </item>
  2589. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  2590. <X>-225.5</X>
  2591. <Y>148</Y>
  2592. </item>
  2593. </items>
  2594. </chunk>
  2595. </chunks>
  2596. </chunk>
  2597. </chunks>
  2598. </chunk>
  2599. </chunks>
  2600. </chunk>
  2601. <chunk name="Object" index="15">
  2602. <items count="2">
  2603. <item name="GUID" type_name="gh_guid" type_code="9">57da07bd-ecab-415d-9d86-af36d7073abc</item>
  2604. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  2605. </items>
  2606. <chunks count="1">
  2607. <chunk name="Container">
  2608. <items count="6">
  2609. <item name="Description" type_name="gh_string" type_code="10">Numeric slider for single values</item>
  2610. <item name="InstanceGuid" type_name="gh_guid" type_code="9">39c22776-a388-46d7-abe4-caaffd8004f9</item>
  2611. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  2612. <item name="NickName" type_name="gh_string" type_code="10"></item>
  2613. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  2614. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  2615. </items>
  2616. <chunks count="2">
  2617. <chunk name="Attributes">
  2618. <items count="2">
  2619. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  2620. <X>-594</X>
  2621. <Y>112</Y>
  2622. <W>260</W>
  2623. <H>20</H>
  2624. </item>
  2625. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  2626. <X>-593.6757</X>
  2627. <Y>112.793</Y>
  2628. </item>
  2629. </items>
  2630. </chunk>
  2631. <chunk name="Slider">
  2632. <items count="7">
  2633. <item name="Digits" type_name="gh_int32" type_code="3">2</item>
  2634. <item name="GripDisplay" type_name="gh_int32" type_code="3">1</item>
  2635. <item name="Interval" type_name="gh_int32" type_code="3">0</item>
  2636. <item name="Max" type_name="gh_double" type_code="6">50</item>
  2637. <item name="Min" type_name="gh_double" type_code="6">-50</item>
  2638. <item name="SnapCount" type_name="gh_int32" type_code="3">0</item>
  2639. <item name="Value" type_name="gh_double" type_code="6">24.03</item>
  2640. </items>
  2641. </chunk>
  2642. </chunks>
  2643. </chunk>
  2644. </chunks>
  2645. </chunk>
  2646. <chunk name="Object" index="16">
  2647. <items count="2">
  2648. <item name="GUID" type_name="gh_guid" type_code="9">57da07bd-ecab-415d-9d86-af36d7073abc</item>
  2649. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  2650. </items>
  2651. <chunks count="1">
  2652. <chunk name="Container">
  2653. <items count="6">
  2654. <item name="Description" type_name="gh_string" type_code="10">Numeric slider for single values</item>
  2655. <item name="InstanceGuid" type_name="gh_guid" type_code="9">108fecb2-82c4-4ef7-b31a-2d6517c32268</item>
  2656. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  2657. <item name="NickName" type_name="gh_string" type_code="10"></item>
  2658. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  2659. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  2660. </items>
  2661. <chunks count="2">
  2662. <chunk name="Attributes">
  2663. <items count="2">
  2664. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  2665. <X>-593</X>
  2666. <Y>139</Y>
  2667. <W>258</W>
  2668. <H>20</H>
  2669. </item>
  2670. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  2671. <X>-592.4278</X>
  2672. <Y>139.043</Y>
  2673. </item>
  2674. </items>
  2675. </chunk>
  2676. <chunk name="Slider">
  2677. <items count="7">
  2678. <item name="Digits" type_name="gh_int32" type_code="3">2</item>
  2679. <item name="GripDisplay" type_name="gh_int32" type_code="3">1</item>
  2680. <item name="Interval" type_name="gh_int32" type_code="3">0</item>
  2681. <item name="Max" type_name="gh_double" type_code="6">50</item>
  2682. <item name="Min" type_name="gh_double" type_code="6">-50</item>
  2683. <item name="SnapCount" type_name="gh_int32" type_code="3">0</item>
  2684. <item name="Value" type_name="gh_double" type_code="6">-17.28</item>
  2685. </items>
  2686. </chunk>
  2687. </chunks>
  2688. </chunk>
  2689. </chunks>
  2690. </chunk>
  2691. <chunk name="Object" index="17">
  2692. <items count="2">
  2693. <item name="GUID" type_name="gh_guid" type_code="9">57da07bd-ecab-415d-9d86-af36d7073abc</item>
  2694. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  2695. </items>
  2696. <chunks count="1">
  2697. <chunk name="Container">
  2698. <items count="6">
  2699. <item name="Description" type_name="gh_string" type_code="10">Numeric slider for single values</item>
  2700. <item name="InstanceGuid" type_name="gh_guid" type_code="9">ca67e373-c39e-4d29-980d-1c76d91a2de9</item>
  2701. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  2702. <item name="NickName" type_name="gh_string" type_code="10"></item>
  2703. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  2704. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  2705. </items>
  2706. <chunks count="2">
  2707. <chunk name="Attributes">
  2708. <items count="2">
  2709. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  2710. <X>-592</X>
  2711. <Y>164</Y>
  2712. <W>258</W>
  2713. <H>20</H>
  2714. </item>
  2715. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  2716. <X>-591.1778</X>
  2717. <Y>164.043</Y>
  2718. </item>
  2719. </items>
  2720. </chunk>
  2721. <chunk name="Slider">
  2722. <items count="7">
  2723. <item name="Digits" type_name="gh_int32" type_code="3">2</item>
  2724. <item name="GripDisplay" type_name="gh_int32" type_code="3">1</item>
  2725. <item name="Interval" type_name="gh_int32" type_code="3">0</item>
  2726. <item name="Max" type_name="gh_double" type_code="6">50</item>
  2727. <item name="Min" type_name="gh_double" type_code="6">-50</item>
  2728. <item name="SnapCount" type_name="gh_int32" type_code="3">0</item>
  2729. <item name="Value" type_name="gh_double" type_code="6">-9.72</item>
  2730. </items>
  2731. </chunk>
  2732. </chunks>
  2733. </chunk>
  2734. </chunks>
  2735. </chunk>
  2736. <chunk name="Object" index="18">
  2737. <items count="2">
  2738. <item name="GUID" type_name="gh_guid" type_code="9">3581f42a-9592-4549-bd6b-1c0fc39d067b</item>
  2739. <item name="Name" type_name="gh_string" type_code="10">Construct Point</item>
  2740. </items>
  2741. <chunks count="1">
  2742. <chunk name="Container">
  2743. <items count="5">
  2744. <item name="Description" type_name="gh_string" type_code="10">Construct a point from {xyz} coordinates.</item>
  2745. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  2746. <item name="InstanceGuid" type_name="gh_guid" type_code="9">7d81920e-fe3b-4fcc-856a-7444755fcc4a</item>
  2747. <item name="Name" type_name="gh_string" type_code="10">Construct Point</item>
  2748. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  2749. </items>
  2750. <chunks count="5">
  2751. <chunk name="Attributes">
  2752. <items count="2">
  2753. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  2754. <X>-284</X>
  2755. <Y>208</Y>
  2756. <W>67</W>
  2757. <H>64</H>
  2758. </item>
  2759. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  2760. <X>-253</X>
  2761. <Y>240</Y>
  2762. </item>
  2763. </items>
  2764. </chunk>
  2765. <chunk name="param_input" index="0">
  2766. <items count="7">
  2767. <item name="Description" type_name="gh_string" type_code="10">{x} coordinate</item>
  2768. <item name="InstanceGuid" type_name="gh_guid" type_code="9">5e590f17-28b6-4fcb-aeb8-acdb345f0c4b</item>
  2769. <item name="Name" type_name="gh_string" type_code="10">X coordinate</item>
  2770. <item name="NickName" type_name="gh_string" type_code="10">X</item>
  2771. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  2772. <item name="Source" index="0" type_name="gh_guid" type_code="9">abfd65c5-05aa-4b81-a108-6a5355e6816a</item>
  2773. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  2774. </items>
  2775. <chunks count="2">
  2776. <chunk name="Attributes">
  2777. <items count="2">
  2778. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  2779. <X>-282</X>
  2780. <Y>210</Y>
  2781. <W>14</W>
  2782. <H>20</H>
  2783. </item>
  2784. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  2785. <X>-273.5</X>
  2786. <Y>220</Y>
  2787. </item>
  2788. </items>
  2789. </chunk>
  2790. <chunk name="PersistentData">
  2791. <items count="1">
  2792. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  2793. </items>
  2794. <chunks count="1">
  2795. <chunk name="Branch" index="0">
  2796. <items count="2">
  2797. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  2798. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  2799. </items>
  2800. <chunks count="1">
  2801. <chunk name="Item" index="0">
  2802. <items count="1">
  2803. <item name="number" type_name="gh_double" type_code="6">0</item>
  2804. </items>
  2805. </chunk>
  2806. </chunks>
  2807. </chunk>
  2808. </chunks>
  2809. </chunk>
  2810. </chunks>
  2811. </chunk>
  2812. <chunk name="param_input" index="1">
  2813. <items count="7">
  2814. <item name="Description" type_name="gh_string" type_code="10">{y} coordinate</item>
  2815. <item name="InstanceGuid" type_name="gh_guid" type_code="9">7d22d623-e49c-4769-b49e-88c16b2a4f4e</item>
  2816. <item name="Name" type_name="gh_string" type_code="10">Y coordinate</item>
  2817. <item name="NickName" type_name="gh_string" type_code="10">Y</item>
  2818. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  2819. <item name="Source" index="0" type_name="gh_guid" type_code="9">81a1d1b0-c109-4a52-8403-b06d094902c8</item>
  2820. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  2821. </items>
  2822. <chunks count="2">
  2823. <chunk name="Attributes">
  2824. <items count="2">
  2825. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  2826. <X>-282</X>
  2827. <Y>230</Y>
  2828. <W>14</W>
  2829. <H>20</H>
  2830. </item>
  2831. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  2832. <X>-273.5</X>
  2833. <Y>240</Y>
  2834. </item>
  2835. </items>
  2836. </chunk>
  2837. <chunk name="PersistentData">
  2838. <items count="1">
  2839. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  2840. </items>
  2841. <chunks count="1">
  2842. <chunk name="Branch" index="0">
  2843. <items count="2">
  2844. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  2845. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  2846. </items>
  2847. <chunks count="1">
  2848. <chunk name="Item" index="0">
  2849. <items count="1">
  2850. <item name="number" type_name="gh_double" type_code="6">0</item>
  2851. </items>
  2852. </chunk>
  2853. </chunks>
  2854. </chunk>
  2855. </chunks>
  2856. </chunk>
  2857. </chunks>
  2858. </chunk>
  2859. <chunk name="param_input" index="2">
  2860. <items count="7">
  2861. <item name="Description" type_name="gh_string" type_code="10">{z} coordinate</item>
  2862. <item name="InstanceGuid" type_name="gh_guid" type_code="9">0fafe809-64a8-4448-af4b-21caa924776e</item>
  2863. <item name="Name" type_name="gh_string" type_code="10">Z coordinate</item>
  2864. <item name="NickName" type_name="gh_string" type_code="10">Z</item>
  2865. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  2866. <item name="Source" index="0" type_name="gh_guid" type_code="9">b53d373c-ad33-4aaa-a8de-83a088e127a5</item>
  2867. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  2868. </items>
  2869. <chunks count="2">
  2870. <chunk name="Attributes">
  2871. <items count="2">
  2872. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  2873. <X>-282</X>
  2874. <Y>250</Y>
  2875. <W>14</W>
  2876. <H>20</H>
  2877. </item>
  2878. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  2879. <X>-273.5</X>
  2880. <Y>260</Y>
  2881. </item>
  2882. </items>
  2883. </chunk>
  2884. <chunk name="PersistentData">
  2885. <items count="1">
  2886. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  2887. </items>
  2888. <chunks count="1">
  2889. <chunk name="Branch" index="0">
  2890. <items count="2">
  2891. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  2892. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  2893. </items>
  2894. <chunks count="1">
  2895. <chunk name="Item" index="0">
  2896. <items count="1">
  2897. <item name="number" type_name="gh_double" type_code="6">0</item>
  2898. </items>
  2899. </chunk>
  2900. </chunks>
  2901. </chunk>
  2902. </chunks>
  2903. </chunk>
  2904. </chunks>
  2905. </chunk>
  2906. <chunk name="param_output" index="0">
  2907. <items count="6">
  2908. <item name="Description" type_name="gh_string" type_code="10">Point coordinate</item>
  2909. <item name="InstanceGuid" type_name="gh_guid" type_code="9">5252af42-8b65-437c-a487-5eac1156e2cc</item>
  2910. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  2911. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  2912. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  2913. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  2914. </items>
  2915. <chunks count="1">
  2916. <chunk name="Attributes">
  2917. <items count="2">
  2918. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  2919. <X>-238</X>
  2920. <Y>210</Y>
  2921. <W>19</W>
  2922. <H>60</H>
  2923. </item>
  2924. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  2925. <X>-228.5</X>
  2926. <Y>240</Y>
  2927. </item>
  2928. </items>
  2929. </chunk>
  2930. </chunks>
  2931. </chunk>
  2932. </chunks>
  2933. </chunk>
  2934. </chunks>
  2935. </chunk>
  2936. <chunk name="Object" index="19">
  2937. <items count="2">
  2938. <item name="GUID" type_name="gh_guid" type_code="9">57da07bd-ecab-415d-9d86-af36d7073abc</item>
  2939. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  2940. </items>
  2941. <chunks count="1">
  2942. <chunk name="Container">
  2943. <items count="6">
  2944. <item name="Description" type_name="gh_string" type_code="10">Numeric slider for single values</item>
  2945. <item name="InstanceGuid" type_name="gh_guid" type_code="9">abfd65c5-05aa-4b81-a108-6a5355e6816a</item>
  2946. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  2947. <item name="NickName" type_name="gh_string" type_code="10"></item>
  2948. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  2949. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  2950. </items>
  2951. <chunks count="2">
  2952. <chunk name="Attributes">
  2953. <items count="2">
  2954. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  2955. <X>-597</X>
  2956. <Y>205</Y>
  2957. <W>260</W>
  2958. <H>20</H>
  2959. </item>
  2960. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  2961. <X>-596.1757</X>
  2962. <Y>205.293</Y>
  2963. </item>
  2964. </items>
  2965. </chunk>
  2966. <chunk name="Slider">
  2967. <items count="7">
  2968. <item name="Digits" type_name="gh_int32" type_code="3">2</item>
  2969. <item name="GripDisplay" type_name="gh_int32" type_code="3">1</item>
  2970. <item name="Interval" type_name="gh_int32" type_code="3">0</item>
  2971. <item name="Max" type_name="gh_double" type_code="6">50</item>
  2972. <item name="Min" type_name="gh_double" type_code="6">-50</item>
  2973. <item name="SnapCount" type_name="gh_int32" type_code="3">0</item>
  2974. <item name="Value" type_name="gh_double" type_code="6">3.28</item>
  2975. </items>
  2976. </chunk>
  2977. </chunks>
  2978. </chunk>
  2979. </chunks>
  2980. </chunk>
  2981. <chunk name="Object" index="20">
  2982. <items count="2">
  2983. <item name="GUID" type_name="gh_guid" type_code="9">57da07bd-ecab-415d-9d86-af36d7073abc</item>
  2984. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  2985. </items>
  2986. <chunks count="1">
  2987. <chunk name="Container">
  2988. <items count="6">
  2989. <item name="Description" type_name="gh_string" type_code="10">Numeric slider for single values</item>
  2990. <item name="InstanceGuid" type_name="gh_guid" type_code="9">81a1d1b0-c109-4a52-8403-b06d094902c8</item>
  2991. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  2992. <item name="NickName" type_name="gh_string" type_code="10"></item>
  2993. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  2994. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  2995. </items>
  2996. <chunks count="2">
  2997. <chunk name="Attributes">
  2998. <items count="2">
  2999. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  3000. <X>-595</X>
  3001. <Y>230</Y>
  3002. <W>258</W>
  3003. <H>20</H>
  3004. </item>
  3005. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  3006. <X>-594.9278</X>
  3007. <Y>230.293</Y>
  3008. </item>
  3009. </items>
  3010. </chunk>
  3011. <chunk name="Slider">
  3012. <items count="7">
  3013. <item name="Digits" type_name="gh_int32" type_code="3">2</item>
  3014. <item name="GripDisplay" type_name="gh_int32" type_code="3">1</item>
  3015. <item name="Interval" type_name="gh_int32" type_code="3">0</item>
  3016. <item name="Max" type_name="gh_double" type_code="6">50</item>
  3017. <item name="Min" type_name="gh_double" type_code="6">-50</item>
  3018. <item name="SnapCount" type_name="gh_int32" type_code="3">0</item>
  3019. <item name="Value" type_name="gh_double" type_code="6">0.25</item>
  3020. </items>
  3021. </chunk>
  3022. </chunks>
  3023. </chunk>
  3024. </chunks>
  3025. </chunk>
  3026. <chunk name="Object" index="21">
  3027. <items count="2">
  3028. <item name="GUID" type_name="gh_guid" type_code="9">57da07bd-ecab-415d-9d86-af36d7073abc</item>
  3029. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  3030. </items>
  3031. <chunks count="1">
  3032. <chunk name="Container">
  3033. <items count="6">
  3034. <item name="Description" type_name="gh_string" type_code="10">Numeric slider for single values</item>
  3035. <item name="InstanceGuid" type_name="gh_guid" type_code="9">b53d373c-ad33-4aaa-a8de-83a088e127a5</item>
  3036. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  3037. <item name="NickName" type_name="gh_string" type_code="10"></item>
  3038. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  3039. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  3040. </items>
  3041. <chunks count="2">
  3042. <chunk name="Attributes">
  3043. <items count="2">
  3044. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  3045. <X>-594</X>
  3046. <Y>256</Y>
  3047. <W>258</W>
  3048. <H>20</H>
  3049. </item>
  3050. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  3051. <X>-593.6778</X>
  3052. <Y>256.543</Y>
  3053. </item>
  3054. </items>
  3055. </chunk>
  3056. <chunk name="Slider">
  3057. <items count="7">
  3058. <item name="Digits" type_name="gh_int32" type_code="3">2</item>
  3059. <item name="GripDisplay" type_name="gh_int32" type_code="3">1</item>
  3060. <item name="Interval" type_name="gh_int32" type_code="3">0</item>
  3061. <item name="Max" type_name="gh_double" type_code="6">50</item>
  3062. <item name="Min" type_name="gh_double" type_code="6">-50</item>
  3063. <item name="SnapCount" type_name="gh_int32" type_code="3">0</item>
  3064. <item name="Value" type_name="gh_double" type_code="6">18.96</item>
  3065. </items>
  3066. </chunk>
  3067. </chunks>
  3068. </chunk>
  3069. </chunks>
  3070. </chunk>
  3071. <chunk name="Object" index="22">
  3072. <items count="2">
  3073. <item name="GUID" type_name="gh_guid" type_code="9">3581f42a-9592-4549-bd6b-1c0fc39d067b</item>
  3074. <item name="Name" type_name="gh_string" type_code="10">Construct Point</item>
  3075. </items>
  3076. <chunks count="1">
  3077. <chunk name="Container">
  3078. <items count="5">
  3079. <item name="Description" type_name="gh_string" type_code="10">Construct a point from {xyz} coordinates.</item>
  3080. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  3081. <item name="InstanceGuid" type_name="gh_guid" type_code="9">759d1f2d-c1de-45b6-9548-4d3ad4b27781</item>
  3082. <item name="Name" type_name="gh_string" type_code="10">Construct Point</item>
  3083. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  3084. </items>
  3085. <chunks count="5">
  3086. <chunk name="Attributes">
  3087. <items count="2">
  3088. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  3089. <X>-286</X>
  3090. <Y>296</Y>
  3091. <W>67</W>
  3092. <H>64</H>
  3093. </item>
  3094. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  3095. <X>-255</X>
  3096. <Y>328</Y>
  3097. </item>
  3098. </items>
  3099. </chunk>
  3100. <chunk name="param_input" index="0">
  3101. <items count="7">
  3102. <item name="Description" type_name="gh_string" type_code="10">{x} coordinate</item>
  3103. <item name="InstanceGuid" type_name="gh_guid" type_code="9">0ec6b789-6c06-4ce4-a442-c0cdb61b63ea</item>
  3104. <item name="Name" type_name="gh_string" type_code="10">X coordinate</item>
  3105. <item name="NickName" type_name="gh_string" type_code="10">X</item>
  3106. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  3107. <item name="Source" index="0" type_name="gh_guid" type_code="9">f24c7c6f-3341-48d7-b5dd-11493225c086</item>
  3108. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  3109. </items>
  3110. <chunks count="2">
  3111. <chunk name="Attributes">
  3112. <items count="2">
  3113. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  3114. <X>-284</X>
  3115. <Y>298</Y>
  3116. <W>14</W>
  3117. <H>20</H>
  3118. </item>
  3119. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  3120. <X>-275.5</X>
  3121. <Y>308</Y>
  3122. </item>
  3123. </items>
  3124. </chunk>
  3125. <chunk name="PersistentData">
  3126. <items count="1">
  3127. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  3128. </items>
  3129. <chunks count="1">
  3130. <chunk name="Branch" index="0">
  3131. <items count="2">
  3132. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  3133. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  3134. </items>
  3135. <chunks count="1">
  3136. <chunk name="Item" index="0">
  3137. <items count="1">
  3138. <item name="number" type_name="gh_double" type_code="6">0</item>
  3139. </items>
  3140. </chunk>
  3141. </chunks>
  3142. </chunk>
  3143. </chunks>
  3144. </chunk>
  3145. </chunks>
  3146. </chunk>
  3147. <chunk name="param_input" index="1">
  3148. <items count="7">
  3149. <item name="Description" type_name="gh_string" type_code="10">{y} coordinate</item>
  3150. <item name="InstanceGuid" type_name="gh_guid" type_code="9">cadc8592-52b0-4c3f-9cd8-6474d8000ca7</item>
  3151. <item name="Name" type_name="gh_string" type_code="10">Y coordinate</item>
  3152. <item name="NickName" type_name="gh_string" type_code="10">Y</item>
  3153. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  3154. <item name="Source" index="0" type_name="gh_guid" type_code="9">2313a88f-2ff0-48dc-b09b-dee536af8862</item>
  3155. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  3156. </items>
  3157. <chunks count="2">
  3158. <chunk name="Attributes">
  3159. <items count="2">
  3160. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  3161. <X>-284</X>
  3162. <Y>318</Y>
  3163. <W>14</W>
  3164. <H>20</H>
  3165. </item>
  3166. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  3167. <X>-275.5</X>
  3168. <Y>328</Y>
  3169. </item>
  3170. </items>
  3171. </chunk>
  3172. <chunk name="PersistentData">
  3173. <items count="1">
  3174. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  3175. </items>
  3176. <chunks count="1">
  3177. <chunk name="Branch" index="0">
  3178. <items count="2">
  3179. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  3180. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  3181. </items>
  3182. <chunks count="1">
  3183. <chunk name="Item" index="0">
  3184. <items count="1">
  3185. <item name="number" type_name="gh_double" type_code="6">0</item>
  3186. </items>
  3187. </chunk>
  3188. </chunks>
  3189. </chunk>
  3190. </chunks>
  3191. </chunk>
  3192. </chunks>
  3193. </chunk>
  3194. <chunk name="param_input" index="2">
  3195. <items count="7">
  3196. <item name="Description" type_name="gh_string" type_code="10">{z} coordinate</item>
  3197. <item name="InstanceGuid" type_name="gh_guid" type_code="9">003f761f-6321-417a-9a6f-83613eba8698</item>
  3198. <item name="Name" type_name="gh_string" type_code="10">Z coordinate</item>
  3199. <item name="NickName" type_name="gh_string" type_code="10">Z</item>
  3200. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  3201. <item name="Source" index="0" type_name="gh_guid" type_code="9">da887b2c-91f5-4fc7-b9b2-dd3c06bf079f</item>
  3202. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  3203. </items>
  3204. <chunks count="2">
  3205. <chunk name="Attributes">
  3206. <items count="2">
  3207. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  3208. <X>-284</X>
  3209. <Y>338</Y>
  3210. <W>14</W>
  3211. <H>20</H>
  3212. </item>
  3213. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  3214. <X>-275.5</X>
  3215. <Y>348</Y>
  3216. </item>
  3217. </items>
  3218. </chunk>
  3219. <chunk name="PersistentData">
  3220. <items count="1">
  3221. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  3222. </items>
  3223. <chunks count="1">
  3224. <chunk name="Branch" index="0">
  3225. <items count="2">
  3226. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  3227. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  3228. </items>
  3229. <chunks count="1">
  3230. <chunk name="Item" index="0">
  3231. <items count="1">
  3232. <item name="number" type_name="gh_double" type_code="6">0</item>
  3233. </items>
  3234. </chunk>
  3235. </chunks>
  3236. </chunk>
  3237. </chunks>
  3238. </chunk>
  3239. </chunks>
  3240. </chunk>
  3241. <chunk name="param_output" index="0">
  3242. <items count="6">
  3243. <item name="Description" type_name="gh_string" type_code="10">Point coordinate</item>
  3244. <item name="InstanceGuid" type_name="gh_guid" type_code="9">f4cf1901-0cd0-4475-9dd6-bf34f5ebc6e1</item>
  3245. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  3246. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  3247. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  3248. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  3249. </items>
  3250. <chunks count="1">
  3251. <chunk name="Attributes">
  3252. <items count="2">
  3253. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  3254. <X>-240</X>
  3255. <Y>298</Y>
  3256. <W>19</W>
  3257. <H>60</H>
  3258. </item>
  3259. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  3260. <X>-230.5</X>
  3261. <Y>328</Y>
  3262. </item>
  3263. </items>
  3264. </chunk>
  3265. </chunks>
  3266. </chunk>
  3267. </chunks>
  3268. </chunk>
  3269. </chunks>
  3270. </chunk>
  3271. <chunk name="Object" index="23">
  3272. <items count="2">
  3273. <item name="GUID" type_name="gh_guid" type_code="9">57da07bd-ecab-415d-9d86-af36d7073abc</item>
  3274. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  3275. </items>
  3276. <chunks count="1">
  3277. <chunk name="Container">
  3278. <items count="6">
  3279. <item name="Description" type_name="gh_string" type_code="10">Numeric slider for single values</item>
  3280. <item name="InstanceGuid" type_name="gh_guid" type_code="9">f24c7c6f-3341-48d7-b5dd-11493225c086</item>
  3281. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  3282. <item name="NickName" type_name="gh_string" type_code="10"></item>
  3283. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  3284. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  3285. </items>
  3286. <chunks count="2">
  3287. <chunk name="Attributes">
  3288. <items count="2">
  3289. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  3290. <X>-598</X>
  3291. <Y>294</Y>
  3292. <W>260</W>
  3293. <H>20</H>
  3294. </item>
  3295. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  3296. <X>-597.4257</X>
  3297. <Y>294.043</Y>
  3298. </item>
  3299. </items>
  3300. </chunk>
  3301. <chunk name="Slider">
  3302. <items count="7">
  3303. <item name="Digits" type_name="gh_int32" type_code="3">2</item>
  3304. <item name="GripDisplay" type_name="gh_int32" type_code="3">1</item>
  3305. <item name="Interval" type_name="gh_int32" type_code="3">0</item>
  3306. <item name="Max" type_name="gh_double" type_code="6">50</item>
  3307. <item name="Min" type_name="gh_double" type_code="6">-50</item>
  3308. <item name="SnapCount" type_name="gh_int32" type_code="3">0</item>
  3309. <item name="Value" type_name="gh_double" type_code="6">-7.63</item>
  3310. </items>
  3311. </chunk>
  3312. </chunks>
  3313. </chunk>
  3314. </chunks>
  3315. </chunk>
  3316. <chunk name="Object" index="24">
  3317. <items count="2">
  3318. <item name="GUID" type_name="gh_guid" type_code="9">57da07bd-ecab-415d-9d86-af36d7073abc</item>
  3319. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  3320. </items>
  3321. <chunks count="1">
  3322. <chunk name="Container">
  3323. <items count="6">
  3324. <item name="Description" type_name="gh_string" type_code="10">Numeric slider for single values</item>
  3325. <item name="InstanceGuid" type_name="gh_guid" type_code="9">2313a88f-2ff0-48dc-b09b-dee536af8862</item>
  3326. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  3327. <item name="NickName" type_name="gh_string" type_code="10"></item>
  3328. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  3329. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  3330. </items>
  3331. <chunks count="2">
  3332. <chunk name="Attributes">
  3333. <items count="2">
  3334. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  3335. <X>-597</X>
  3336. <Y>319</Y>
  3337. <W>258</W>
  3338. <H>20</H>
  3339. </item>
  3340. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  3341. <X>-596.1778</X>
  3342. <Y>319.043</Y>
  3343. </item>
  3344. </items>
  3345. </chunk>
  3346. <chunk name="Slider">
  3347. <items count="7">
  3348. <item name="Digits" type_name="gh_int32" type_code="3">2</item>
  3349. <item name="GripDisplay" type_name="gh_int32" type_code="3">1</item>
  3350. <item name="Interval" type_name="gh_int32" type_code="3">0</item>
  3351. <item name="Max" type_name="gh_double" type_code="6">50</item>
  3352. <item name="Min" type_name="gh_double" type_code="6">-50</item>
  3353. <item name="SnapCount" type_name="gh_int32" type_code="3">0</item>
  3354. <item name="Value" type_name="gh_double" type_code="6">-14.68</item>
  3355. </items>
  3356. </chunk>
  3357. </chunks>
  3358. </chunk>
  3359. </chunks>
  3360. </chunk>
  3361. <chunk name="Object" index="25">
  3362. <items count="2">
  3363. <item name="GUID" type_name="gh_guid" type_code="9">57da07bd-ecab-415d-9d86-af36d7073abc</item>
  3364. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  3365. </items>
  3366. <chunks count="1">
  3367. <chunk name="Container">
  3368. <items count="6">
  3369. <item name="Description" type_name="gh_string" type_code="10">Numeric slider for single values</item>
  3370. <item name="InstanceGuid" type_name="gh_guid" type_code="9">da887b2c-91f5-4fc7-b9b2-dd3c06bf079f</item>
  3371. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  3372. <item name="NickName" type_name="gh_string" type_code="10"></item>
  3373. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  3374. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  3375. </items>
  3376. <chunks count="2">
  3377. <chunk name="Attributes">
  3378. <items count="2">
  3379. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  3380. <X>-595</X>
  3381. <Y>345</Y>
  3382. <W>258</W>
  3383. <H>20</H>
  3384. </item>
  3385. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  3386. <X>-594.9278</X>
  3387. <Y>345.293</Y>
  3388. </item>
  3389. </items>
  3390. </chunk>
  3391. <chunk name="Slider">
  3392. <items count="7">
  3393. <item name="Digits" type_name="gh_int32" type_code="3">2</item>
  3394. <item name="GripDisplay" type_name="gh_int32" type_code="3">1</item>
  3395. <item name="Interval" type_name="gh_int32" type_code="3">0</item>
  3396. <item name="Max" type_name="gh_double" type_code="6">50</item>
  3397. <item name="Min" type_name="gh_double" type_code="6">-50</item>
  3398. <item name="SnapCount" type_name="gh_int32" type_code="3">0</item>
  3399. <item name="Value" type_name="gh_double" type_code="6">-6.5</item>
  3400. </items>
  3401. </chunk>
  3402. </chunks>
  3403. </chunk>
  3404. </chunks>
  3405. </chunk>
  3406. <chunk name="Object" index="26">
  3407. <items count="2">
  3408. <item name="GUID" type_name="gh_guid" type_code="9">57da07bd-ecab-415d-9d86-af36d7073abc</item>
  3409. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  3410. </items>
  3411. <chunks count="1">
  3412. <chunk name="Container">
  3413. <items count="6">
  3414. <item name="Description" type_name="gh_string" type_code="10">Numeric slider for single values</item>
  3415. <item name="InstanceGuid" type_name="gh_guid" type_code="9">5137ef09-783f-4981-a9ec-aa4f2fc8e019</item>
  3416. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  3417. <item name="NickName" type_name="gh_string" type_code="10">height</item>
  3418. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  3419. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  3420. </items>
  3421. <chunks count="2">
  3422. <chunk name="Attributes">
  3423. <items count="2">
  3424. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  3425. <X>159</X>
  3426. <Y>339</Y>
  3427. <W>384</W>
  3428. <H>20</H>
  3429. </item>
  3430. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  3431. <X>159.0849</X>
  3432. <Y>339.4185</Y>
  3433. </item>
  3434. </items>
  3435. </chunk>
  3436. <chunk name="Slider">
  3437. <items count="7">
  3438. <item name="Digits" type_name="gh_int32" type_code="3">2</item>
  3439. <item name="GripDisplay" type_name="gh_int32" type_code="3">1</item>
  3440. <item name="Interval" type_name="gh_int32" type_code="3">0</item>
  3441. <item name="Max" type_name="gh_double" type_code="6">200</item>
  3442. <item name="Min" type_name="gh_double" type_code="6">0</item>
  3443. <item name="SnapCount" type_name="gh_int32" type_code="3">0</item>
  3444. <item name="Value" type_name="gh_double" type_code="6">112.83</item>
  3445. </items>
  3446. </chunk>
  3447. </chunks>
  3448. </chunk>
  3449. </chunks>
  3450. </chunk>
  3451. <chunk name="Object" index="27">
  3452. <items count="2">
  3453. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  3454. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  3455. </items>
  3456. <chunks count="1">
  3457. <chunk name="Container">
  3458. <items count="9">
  3459. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  3460. <item name="InstanceGuid" type_name="gh_guid" type_code="9">225afdb2-480f-435b-a1cb-84170b3afd2f</item>
  3461. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  3462. <item name="NickName" type_name="gh_string" type_code="10"></item>
  3463. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  3464. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  3465. <item name="Source" index="0" type_name="gh_guid" type_code="9">0d6fe24b-f96e-4e86-bad3-d29ae034394e</item>
  3466. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  3467. <item name="UserText" type_name="gh_string" type_code="10">Double click to edit panel content…</item>
  3468. </items>
  3469. <chunks count="2">
  3470. <chunk name="Attributes">
  3471. <items count="5">
  3472. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  3473. <X>737</X>
  3474. <Y>288</Y>
  3475. <W>106</W>
  3476. <H>38</H>
  3477. </item>
  3478. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  3479. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  3480. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  3481. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  3482. <X>737.476</X>
  3483. <Y>288.175</Y>
  3484. </item>
  3485. </items>
  3486. </chunk>
  3487. <chunk name="PanelProperties">
  3488. <items count="7">
  3489. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  3490. <ARGB>255;255;250;90</ARGB>
  3491. </item>
  3492. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  3493. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  3494. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  3495. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  3496. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  3497. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  3498. </items>
  3499. </chunk>
  3500. </chunks>
  3501. </chunk>
  3502. </chunks>
  3503. </chunk>
  3504. <chunk name="Object" index="28">
  3505. <items count="2">
  3506. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  3507. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  3508. </items>
  3509. <chunks count="1">
  3510. <chunk name="Container">
  3511. <items count="9">
  3512. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  3513. <item name="InstanceGuid" type_name="gh_guid" type_code="9">20228f31-e357-4d65-8747-46e12348391c</item>
  3514. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  3515. <item name="NickName" type_name="gh_string" type_code="10"></item>
  3516. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  3517. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  3518. <item name="Source" index="0" type_name="gh_guid" type_code="9">816f49f4-39a6-4705-80c7-e2a924ac1e0c</item>
  3519. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  3520. <item name="UserText" type_name="gh_string" type_code="10">Double click to edit panel content…</item>
  3521. </items>
  3522. <chunks count="2">
  3523. <chunk name="Attributes">
  3524. <items count="5">
  3525. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  3526. <X>856</X>
  3527. <Y>313</Y>
  3528. <W>105</W>
  3529. <H>55</H>
  3530. </item>
  3531. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  3532. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  3533. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  3534. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  3535. <X>856.035</X>
  3536. <Y>313.0428</Y>
  3537. </item>
  3538. </items>
  3539. </chunk>
  3540. <chunk name="PanelProperties">
  3541. <items count="7">
  3542. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  3543. <ARGB>255;255;250;90</ARGB>
  3544. </item>
  3545. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  3546. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  3547. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  3548. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  3549. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  3550. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  3551. </items>
  3552. </chunk>
  3553. </chunks>
  3554. </chunk>
  3555. </chunks>
  3556. </chunk>
  3557. <chunk name="Object" index="29">
  3558. <items count="2">
  3559. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  3560. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  3561. </items>
  3562. <chunks count="1">
  3563. <chunk name="Container">
  3564. <items count="9">
  3565. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  3566. <item name="InstanceGuid" type_name="gh_guid" type_code="9">7c2a1ac2-4916-4aa3-9b0a-566a67f36e60</item>
  3567. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  3568. <item name="NickName" type_name="gh_string" type_code="10"></item>
  3569. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  3570. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  3571. <item name="Source" index="0" type_name="gh_guid" type_code="9">b00909dc-b385-4e3e-a3a8-9e76efdaadeb</item>
  3572. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  3573. <item name="UserText" type_name="gh_string" type_code="10">Double click to edit panel content…</item>
  3574. </items>
  3575. <chunks count="2">
  3576. <chunk name="Attributes">
  3577. <items count="5">
  3578. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  3579. <X>736</X>
  3580. <Y>348</Y>
  3581. <W>108</W>
  3582. <H>38</H>
  3583. </item>
  3584. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  3585. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  3586. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  3587. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  3588. <X>736.4249</X>
  3589. <Y>348.559</Y>
  3590. </item>
  3591. </items>
  3592. </chunk>
  3593. <chunk name="PanelProperties">
  3594. <items count="7">
  3595. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  3596. <ARGB>255;255;250;90</ARGB>
  3597. </item>
  3598. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  3599. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  3600. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  3601. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  3602. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  3603. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  3604. </items>
  3605. </chunk>
  3606. </chunks>
  3607. </chunk>
  3608. </chunks>
  3609. </chunk>
  3610. <chunk name="Object" index="30">
  3611. <items count="2">
  3612. <item name="GUID" type_name="gh_guid" type_code="9">aaa665bd-fd6e-4ccb-8d2c-c5b33072125d</item>
  3613. <item name="Name" type_name="gh_string" type_code="10">Curvature</item>
  3614. </items>
  3615. <chunks count="1">
  3616. <chunk name="Container">
  3617. <items count="5">
  3618. <item name="Description" type_name="gh_string" type_code="10">Evaluate the curvature of a curve at a specified parameter.</item>
  3619. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  3620. <item name="InstanceGuid" type_name="gh_guid" type_code="9">40932656-6c80-4daa-9ad2-8cf8b338fc8d</item>
  3621. <item name="Name" type_name="gh_string" type_code="10">Curvature</item>
  3622. <item name="NickName" type_name="gh_string" type_code="10">Curvature</item>
  3623. </items>
  3624. <chunks count="6">
  3625. <chunk name="Attributes">
  3626. <items count="2">
  3627. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  3628. <X>1151</X>
  3629. <Y>798</Y>
  3630. <W>65</W>
  3631. <H>64</H>
  3632. </item>
  3633. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  3634. <X>1182</X>
  3635. <Y>830</Y>
  3636. </item>
  3637. </items>
  3638. </chunk>
  3639. <chunk name="param_input" index="0">
  3640. <items count="7">
  3641. <item name="Description" type_name="gh_string" type_code="10">Curve to evaluate</item>
  3642. <item name="InstanceGuid" type_name="gh_guid" type_code="9">ef98c1a5-25c1-49b1-b59b-6afb9264b710</item>
  3643. <item name="Name" type_name="gh_string" type_code="10">Curve</item>
  3644. <item name="NickName" type_name="gh_string" type_code="10">C</item>
  3645. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  3646. <item name="Source" index="0" type_name="gh_guid" type_code="9">12b4fe3c-7f43-444b-be77-19b89104763b</item>
  3647. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  3648. </items>
  3649. <chunks count="1">
  3650. <chunk name="Attributes">
  3651. <items count="2">
  3652. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  3653. <X>1153</X>
  3654. <Y>800</Y>
  3655. <W>14</W>
  3656. <H>30</H>
  3657. </item>
  3658. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  3659. <X>1161.5</X>
  3660. <Y>815</Y>
  3661. </item>
  3662. </items>
  3663. </chunk>
  3664. </chunks>
  3665. </chunk>
  3666. <chunk name="param_input" index="1">
  3667. <items count="7">
  3668. <item name="Description" type_name="gh_string" type_code="10">Parameter on curve domain to evaluate</item>
  3669. <item name="InstanceGuid" type_name="gh_guid" type_code="9">bb19201b-82f6-46a3-968e-8457acb1864d</item>
  3670. <item name="Name" type_name="gh_string" type_code="10">Parameter</item>
  3671. <item name="NickName" type_name="gh_string" type_code="10">t</item>
  3672. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  3673. <item name="Source" index="0" type_name="gh_guid" type_code="9">3dad486f-e4dc-4c1a-a3e3-edd2e0fd1459</item>
  3674. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  3675. </items>
  3676. <chunks count="1">
  3677. <chunk name="Attributes">
  3678. <items count="2">
  3679. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  3680. <X>1153</X>
  3681. <Y>830</Y>
  3682. <W>14</W>
  3683. <H>30</H>
  3684. </item>
  3685. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  3686. <X>1161.5</X>
  3687. <Y>845</Y>
  3688. </item>
  3689. </items>
  3690. </chunk>
  3691. </chunks>
  3692. </chunk>
  3693. <chunk name="param_output" index="0">
  3694. <items count="6">
  3695. <item name="Description" type_name="gh_string" type_code="10">Point on curve at {t}</item>
  3696. <item name="InstanceGuid" type_name="gh_guid" type_code="9">6666272a-5753-4a2f-bade-d2d52bc5e52d</item>
  3697. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  3698. <item name="NickName" type_name="gh_string" type_code="10">P</item>
  3699. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  3700. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  3701. </items>
  3702. <chunks count="1">
  3703. <chunk name="Attributes">
  3704. <items count="2">
  3705. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  3706. <X>1197</X>
  3707. <Y>800</Y>
  3708. <W>17</W>
  3709. <H>20</H>
  3710. </item>
  3711. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  3712. <X>1205.5</X>
  3713. <Y>810</Y>
  3714. </item>
  3715. </items>
  3716. </chunk>
  3717. </chunks>
  3718. </chunk>
  3719. <chunk name="param_output" index="1">
  3720. <items count="6">
  3721. <item name="Description" type_name="gh_string" type_code="10">Curvature vector at {t}</item>
  3722. <item name="InstanceGuid" type_name="gh_guid" type_code="9">aa220db5-3068-4ca2-8821-8b9c90d1979a</item>
  3723. <item name="Name" type_name="gh_string" type_code="10">Curvature</item>
  3724. <item name="NickName" type_name="gh_string" type_code="10">K</item>
  3725. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  3726. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  3727. </items>
  3728. <chunks count="1">
  3729. <chunk name="Attributes">
  3730. <items count="2">
  3731. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  3732. <X>1197</X>
  3733. <Y>820</Y>
  3734. <W>17</W>
  3735. <H>20</H>
  3736. </item>
  3737. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  3738. <X>1205.5</X>
  3739. <Y>830</Y>
  3740. </item>
  3741. </items>
  3742. </chunk>
  3743. </chunks>
  3744. </chunk>
  3745. <chunk name="param_output" index="2">
  3746. <items count="6">
  3747. <item name="Description" type_name="gh_string" type_code="10">Curvature circle at {t}</item>
  3748. <item name="InstanceGuid" type_name="gh_guid" type_code="9">10cf8192-1856-476a-b1e6-4b0f3c70a20b</item>
  3749. <item name="Name" type_name="gh_string" type_code="10">Curvature</item>
  3750. <item name="NickName" type_name="gh_string" type_code="10">C</item>
  3751. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  3752. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  3753. </items>
  3754. <chunks count="1">
  3755. <chunk name="Attributes">
  3756. <items count="2">
  3757. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  3758. <X>1197</X>
  3759. <Y>840</Y>
  3760. <W>17</W>
  3761. <H>20</H>
  3762. </item>
  3763. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  3764. <X>1205.5</X>
  3765. <Y>850</Y>
  3766. </item>
  3767. </items>
  3768. </chunk>
  3769. </chunks>
  3770. </chunk>
  3771. </chunks>
  3772. </chunk>
  3773. </chunks>
  3774. </chunk>
  3775. <chunk name="Object" index="31">
  3776. <items count="2">
  3777. <item name="GUID" type_name="gh_guid" type_code="9">6b021f56-b194-4210-b9a1-6cef3b7d0848</item>
  3778. <item name="Name" type_name="gh_string" type_code="10">Evaluate Length</item>
  3779. </items>
  3780. <chunks count="1">
  3781. <chunk name="Container">
  3782. <items count="5">
  3783. <item name="Description" type_name="gh_string" type_code="10">Evaluate a curve at a certain factor along its length. Length factors can be supplied both in curve units and normalized units. Change the [N] parameter to toggle between the two modes.</item>
  3784. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  3785. <item name="InstanceGuid" type_name="gh_guid" type_code="9">7a3bf5ad-d8df-4c78-ab33-33f2a1b8fdd3</item>
  3786. <item name="Name" type_name="gh_string" type_code="10">Evaluate Length</item>
  3787. <item name="NickName" type_name="gh_string" type_code="10">Eval</item>
  3788. </items>
  3789. <chunks count="7">
  3790. <chunk name="Attributes">
  3791. <items count="2">
  3792. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  3793. <X>1057</X>
  3794. <Y>823</Y>
  3795. <W>64</W>
  3796. <H>64</H>
  3797. </item>
  3798. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  3799. <X>1088</X>
  3800. <Y>855</Y>
  3801. </item>
  3802. </items>
  3803. </chunk>
  3804. <chunk name="param_input" index="0">
  3805. <items count="7">
  3806. <item name="Description" type_name="gh_string" type_code="10">Curve to evaluate</item>
  3807. <item name="InstanceGuid" type_name="gh_guid" type_code="9">315efe79-3e18-4f12-9a9f-48c3fd619f70</item>
  3808. <item name="Name" type_name="gh_string" type_code="10">Curve</item>
  3809. <item name="NickName" type_name="gh_string" type_code="10">C</item>
  3810. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  3811. <item name="Source" index="0" type_name="gh_guid" type_code="9">12b4fe3c-7f43-444b-be77-19b89104763b</item>
  3812. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  3813. </items>
  3814. <chunks count="1">
  3815. <chunk name="Attributes">
  3816. <items count="2">
  3817. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  3818. <X>1059</X>
  3819. <Y>825</Y>
  3820. <W>14</W>
  3821. <H>20</H>
  3822. </item>
  3823. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  3824. <X>1067.5</X>
  3825. <Y>835</Y>
  3826. </item>
  3827. </items>
  3828. </chunk>
  3829. </chunks>
  3830. </chunk>
  3831. <chunk name="param_input" index="1">
  3832. <items count="7">
  3833. <item name="Description" type_name="gh_string" type_code="10">Length factor for curve evaluation</item>
  3834. <item name="InstanceGuid" type_name="gh_guid" type_code="9">2bfe1d34-4f3b-4bb0-be9e-0296d2d11a85</item>
  3835. <item name="Name" type_name="gh_string" type_code="10">Length</item>
  3836. <item name="NickName" type_name="gh_string" type_code="10">L</item>
  3837. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  3838. <item name="Source" index="0" type_name="gh_guid" type_code="9">6f2330d2-0e46-4e09-9ac5-7b7d2a1d3954</item>
  3839. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  3840. </items>
  3841. <chunks count="2">
  3842. <chunk name="Attributes">
  3843. <items count="2">
  3844. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  3845. <X>1059</X>
  3846. <Y>845</Y>
  3847. <W>14</W>
  3848. <H>20</H>
  3849. </item>
  3850. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  3851. <X>1067.5</X>
  3852. <Y>855</Y>
  3853. </item>
  3854. </items>
  3855. </chunk>
  3856. <chunk name="PersistentData">
  3857. <items count="1">
  3858. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  3859. </items>
  3860. <chunks count="1">
  3861. <chunk name="Branch" index="0">
  3862. <items count="2">
  3863. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  3864. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  3865. </items>
  3866. <chunks count="1">
  3867. <chunk name="Item" index="0">
  3868. <items count="1">
  3869. <item name="number" type_name="gh_double" type_code="6">0.5</item>
  3870. </items>
  3871. </chunk>
  3872. </chunks>
  3873. </chunk>
  3874. </chunks>
  3875. </chunk>
  3876. </chunks>
  3877. </chunk>
  3878. <chunk name="param_input" index="2">
  3879. <items count="6">
  3880. <item name="Description" type_name="gh_string" type_code="10">If True, the Length factor is normalized (0.0 ~ 1.0)</item>
  3881. <item name="InstanceGuid" type_name="gh_guid" type_code="9">768df78b-ea9f-4024-8585-81b6a0c10891</item>
  3882. <item name="Name" type_name="gh_string" type_code="10">Normalized</item>
  3883. <item name="NickName" type_name="gh_string" type_code="10">N</item>
  3884. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  3885. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  3886. </items>
  3887. <chunks count="2">
  3888. <chunk name="Attributes">
  3889. <items count="2">
  3890. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  3891. <X>1059</X>
  3892. <Y>865</Y>
  3893. <W>14</W>
  3894. <H>20</H>
  3895. </item>
  3896. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  3897. <X>1067.5</X>
  3898. <Y>875</Y>
  3899. </item>
  3900. </items>
  3901. </chunk>
  3902. <chunk name="PersistentData">
  3903. <items count="1">
  3904. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  3905. </items>
  3906. <chunks count="1">
  3907. <chunk name="Branch" index="0">
  3908. <items count="2">
  3909. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  3910. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  3911. </items>
  3912. <chunks count="1">
  3913. <chunk name="Item" index="0">
  3914. <items count="1">
  3915. <item name="boolean" type_name="gh_bool" type_code="1">true</item>
  3916. </items>
  3917. </chunk>
  3918. </chunks>
  3919. </chunk>
  3920. </chunks>
  3921. </chunk>
  3922. </chunks>
  3923. </chunk>
  3924. <chunk name="param_output" index="0">
  3925. <items count="6">
  3926. <item name="Description" type_name="gh_string" type_code="10">Point at the specified length</item>
  3927. <item name="InstanceGuid" type_name="gh_guid" type_code="9">d2445ed4-e075-4562-b765-47e17a5185ca</item>
  3928. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  3929. <item name="NickName" type_name="gh_string" type_code="10">P</item>
  3930. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  3931. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  3932. </items>
  3933. <chunks count="1">
  3934. <chunk name="Attributes">
  3935. <items count="2">
  3936. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  3937. <X>1103</X>
  3938. <Y>825</Y>
  3939. <W>16</W>
  3940. <H>20</H>
  3941. </item>
  3942. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  3943. <X>1111</X>
  3944. <Y>835</Y>
  3945. </item>
  3946. </items>
  3947. </chunk>
  3948. </chunks>
  3949. </chunk>
  3950. <chunk name="param_output" index="1">
  3951. <items count="6">
  3952. <item name="Description" type_name="gh_string" type_code="10">Tangent vector at the specified length</item>
  3953. <item name="InstanceGuid" type_name="gh_guid" type_code="9">5a606323-3c66-46dd-a374-a92dc7ab1c86</item>
  3954. <item name="Name" type_name="gh_string" type_code="10">Tangent</item>
  3955. <item name="NickName" type_name="gh_string" type_code="10">T</item>
  3956. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  3957. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  3958. </items>
  3959. <chunks count="1">
  3960. <chunk name="Attributes">
  3961. <items count="2">
  3962. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  3963. <X>1103</X>
  3964. <Y>845</Y>
  3965. <W>16</W>
  3966. <H>20</H>
  3967. </item>
  3968. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  3969. <X>1111</X>
  3970. <Y>855</Y>
  3971. </item>
  3972. </items>
  3973. </chunk>
  3974. </chunks>
  3975. </chunk>
  3976. <chunk name="param_output" index="2">
  3977. <items count="6">
  3978. <item name="Description" type_name="gh_string" type_code="10">Curve parameter at the specified length</item>
  3979. <item name="InstanceGuid" type_name="gh_guid" type_code="9">3dad486f-e4dc-4c1a-a3e3-edd2e0fd1459</item>
  3980. <item name="Name" type_name="gh_string" type_code="10">Parameter</item>
  3981. <item name="NickName" type_name="gh_string" type_code="10">t</item>
  3982. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  3983. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  3984. </items>
  3985. <chunks count="1">
  3986. <chunk name="Attributes">
  3987. <items count="2">
  3988. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  3989. <X>1103</X>
  3990. <Y>865</Y>
  3991. <W>16</W>
  3992. <H>20</H>
  3993. </item>
  3994. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  3995. <X>1111</X>
  3996. <Y>875</Y>
  3997. </item>
  3998. </items>
  3999. </chunk>
  4000. </chunks>
  4001. </chunk>
  4002. </chunks>
  4003. </chunk>
  4004. </chunks>
  4005. </chunk>
  4006. <chunk name="Object" index="32">
  4007. <items count="2">
  4008. <item name="GUID" type_name="gh_guid" type_code="9">23862862-049a-40be-b558-2418aacbd916</item>
  4009. <item name="Name" type_name="gh_string" type_code="10">Deconstruct Arc</item>
  4010. </items>
  4011. <chunks count="1">
  4012. <chunk name="Container">
  4013. <items count="5">
  4014. <item name="Description" type_name="gh_string" type_code="10">Retrieve the base plane, radius and angle domain of an arc.</item>
  4015. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  4016. <item name="InstanceGuid" type_name="gh_guid" type_code="9">55c865ff-19b4-4378-9996-badcb44a9589</item>
  4017. <item name="Name" type_name="gh_string" type_code="10">Deconstruct Arc</item>
  4018. <item name="NickName" type_name="gh_string" type_code="10">DArc</item>
  4019. </items>
  4020. <chunks count="5">
  4021. <chunk name="Attributes">
  4022. <items count="2">
  4023. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  4024. <X>1267</X>
  4025. <Y>847</Y>
  4026. <W>65</W>
  4027. <H>64</H>
  4028. </item>
  4029. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  4030. <X>1298</X>
  4031. <Y>879</Y>
  4032. </item>
  4033. </items>
  4034. </chunk>
  4035. <chunk name="param_input" index="0">
  4036. <items count="7">
  4037. <item name="Description" type_name="gh_string" type_code="10">Arc or Circle to deconstruct</item>
  4038. <item name="InstanceGuid" type_name="gh_guid" type_code="9">e0a2a9c6-de9b-4ae3-854d-8bf414396827</item>
  4039. <item name="Name" type_name="gh_string" type_code="10">Arc</item>
  4040. <item name="NickName" type_name="gh_string" type_code="10">A</item>
  4041. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  4042. <item name="Source" index="0" type_name="gh_guid" type_code="9">10cf8192-1856-476a-b1e6-4b0f3c70a20b</item>
  4043. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  4044. </items>
  4045. <chunks count="1">
  4046. <chunk name="Attributes">
  4047. <items count="2">
  4048. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  4049. <X>1269</X>
  4050. <Y>849</Y>
  4051. <W>14</W>
  4052. <H>60</H>
  4053. </item>
  4054. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  4055. <X>1277.5</X>
  4056. <Y>879</Y>
  4057. </item>
  4058. </items>
  4059. </chunk>
  4060. </chunks>
  4061. </chunk>
  4062. <chunk name="param_output" index="0">
  4063. <items count="6">
  4064. <item name="Description" type_name="gh_string" type_code="10">Base plane of arc or circle</item>
  4065. <item name="InstanceGuid" type_name="gh_guid" type_code="9">81d935f9-4a1b-49ca-b92c-718561d9b488</item>
  4066. <item name="Name" type_name="gh_string" type_code="10">Base Plane</item>
  4067. <item name="NickName" type_name="gh_string" type_code="10">B</item>
  4068. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  4069. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  4070. </items>
  4071. <chunks count="1">
  4072. <chunk name="Attributes">
  4073. <items count="2">
  4074. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  4075. <X>1313</X>
  4076. <Y>849</Y>
  4077. <W>17</W>
  4078. <H>20</H>
  4079. </item>
  4080. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  4081. <X>1321.5</X>
  4082. <Y>859</Y>
  4083. </item>
  4084. </items>
  4085. </chunk>
  4086. </chunks>
  4087. </chunk>
  4088. <chunk name="param_output" index="1">
  4089. <items count="6">
  4090. <item name="Description" type_name="gh_string" type_code="10">Radius of arc or circle</item>
  4091. <item name="InstanceGuid" type_name="gh_guid" type_code="9">64504e23-6a31-41c8-aef7-9ea0c21e3465</item>
  4092. <item name="Name" type_name="gh_string" type_code="10">Radius</item>
  4093. <item name="NickName" type_name="gh_string" type_code="10">R</item>
  4094. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  4095. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  4096. </items>
  4097. <chunks count="1">
  4098. <chunk name="Attributes">
  4099. <items count="2">
  4100. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  4101. <X>1313</X>
  4102. <Y>869</Y>
  4103. <W>17</W>
  4104. <H>20</H>
  4105. </item>
  4106. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  4107. <X>1321.5</X>
  4108. <Y>879</Y>
  4109. </item>
  4110. </items>
  4111. </chunk>
  4112. </chunks>
  4113. </chunk>
  4114. <chunk name="param_output" index="2">
  4115. <items count="6">
  4116. <item name="Description" type_name="gh_string" type_code="10">Angle domain (in radians) of arc</item>
  4117. <item name="InstanceGuid" type_name="gh_guid" type_code="9">3c6d7169-cc80-4199-8fef-ce0a92463c3a</item>
  4118. <item name="Name" type_name="gh_string" type_code="10">Angle</item>
  4119. <item name="NickName" type_name="gh_string" type_code="10">A</item>
  4120. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  4121. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  4122. </items>
  4123. <chunks count="1">
  4124. <chunk name="Attributes">
  4125. <items count="2">
  4126. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  4127. <X>1313</X>
  4128. <Y>889</Y>
  4129. <W>17</W>
  4130. <H>20</H>
  4131. </item>
  4132. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  4133. <X>1321.5</X>
  4134. <Y>899</Y>
  4135. </item>
  4136. </items>
  4137. </chunk>
  4138. </chunks>
  4139. </chunk>
  4140. </chunks>
  4141. </chunk>
  4142. </chunks>
  4143. </chunk>
  4144. <chunk name="Object" index="33">
  4145. <items count="2">
  4146. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  4147. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  4148. </items>
  4149. <chunks count="1">
  4150. <chunk name="Container">
  4151. <items count="9">
  4152. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  4153. <item name="InstanceGuid" type_name="gh_guid" type_code="9">a04f3471-a7fc-4cd9-b101-bb6f71dec549</item>
  4154. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  4155. <item name="NickName" type_name="gh_string" type_code="10"></item>
  4156. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  4157. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  4158. <item name="Source" index="0" type_name="gh_guid" type_code="9">64504e23-6a31-41c8-aef7-9ea0c21e3465</item>
  4159. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  4160. <item name="UserText" type_name="gh_string" type_code="10">Double click to edit panel content…</item>
  4161. </items>
  4162. <chunks count="2">
  4163. <chunk name="Attributes">
  4164. <items count="5">
  4165. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  4166. <X>1377</X>
  4167. <Y>830</Y>
  4168. <W>96</W>
  4169. <H>42</H>
  4170. </item>
  4171. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  4172. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  4173. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  4174. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  4175. <X>1377.688</X>
  4176. <Y>830.6463</Y>
  4177. </item>
  4178. </items>
  4179. </chunk>
  4180. <chunk name="PanelProperties">
  4181. <items count="7">
  4182. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  4183. <ARGB>255;255;250;90</ARGB>
  4184. </item>
  4185. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  4186. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  4187. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  4188. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  4189. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  4190. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  4191. </items>
  4192. </chunk>
  4193. </chunks>
  4194. </chunk>
  4195. </chunks>
  4196. </chunk>
  4197. <chunk name="Object" index="34">
  4198. <items count="2">
  4199. <item name="GUID" type_name="gh_guid" type_code="9">f12daa2f-4fd5-48c1-8ac3-5dea476912ca</item>
  4200. <item name="Name" type_name="gh_string" type_code="10">Mirror</item>
  4201. </items>
  4202. <chunks count="1">
  4203. <chunk name="Container">
  4204. <items count="4">
  4205. <item name="Description" type_name="gh_string" type_code="10">Mirror an object.</item>
  4206. <item name="InstanceGuid" type_name="gh_guid" type_code="9">864b9457-bf65-45dc-a49e-8e972abffb2b</item>
  4207. <item name="Name" type_name="gh_string" type_code="10">Mirror</item>
  4208. <item name="NickName" type_name="gh_string" type_code="10">Mirror</item>
  4209. </items>
  4210. <chunks count="5">
  4211. <chunk name="Attributes">
  4212. <items count="2">
  4213. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  4214. <X>1277</X>
  4215. <Y>665</Y>
  4216. <W>65</W>
  4217. <H>44</H>
  4218. </item>
  4219. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  4220. <X>1308</X>
  4221. <Y>687</Y>
  4222. </item>
  4223. </items>
  4224. </chunk>
  4225. <chunk name="param_input" index="0">
  4226. <items count="8">
  4227. <item name="Description" type_name="gh_string" type_code="10">Base geometry</item>
  4228. <item name="InstanceGuid" type_name="gh_guid" type_code="9">ef1ac667-f8c6-4a26-800e-9f64490f8b70</item>
  4229. <item name="Name" type_name="gh_string" type_code="10">Geometry</item>
  4230. <item name="NickName" type_name="gh_string" type_code="10">G</item>
  4231. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  4232. <item name="Source" index="0" type_name="gh_guid" type_code="9">12b4fe3c-7f43-444b-be77-19b89104763b</item>
  4233. <item name="Source" index="1" type_name="gh_guid" type_code="9">10cf8192-1856-476a-b1e6-4b0f3c70a20b</item>
  4234. <item name="SourceCount" type_name="gh_int32" type_code="3">2</item>
  4235. </items>
  4236. <chunks count="1">
  4237. <chunk name="Attributes">
  4238. <items count="2">
  4239. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  4240. <X>1279</X>
  4241. <Y>667</Y>
  4242. <W>14</W>
  4243. <H>20</H>
  4244. </item>
  4245. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  4246. <X>1287.5</X>
  4247. <Y>677</Y>
  4248. </item>
  4249. </items>
  4250. </chunk>
  4251. </chunks>
  4252. </chunk>
  4253. <chunk name="param_input" index="1">
  4254. <items count="7">
  4255. <item name="Description" type_name="gh_string" type_code="10">Mirror plane</item>
  4256. <item name="InstanceGuid" type_name="gh_guid" type_code="9">fb82719d-d33e-4bcc-ab84-9035150adc96</item>
  4257. <item name="Name" type_name="gh_string" type_code="10">Plane</item>
  4258. <item name="NickName" type_name="gh_string" type_code="10">P</item>
  4259. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  4260. <item name="Source" index="0" type_name="gh_guid" type_code="9">0654eb92-001e-43e0-b38a-58a5d0d80f8e</item>
  4261. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  4262. </items>
  4263. <chunks count="2">
  4264. <chunk name="Attributes">
  4265. <items count="2">
  4266. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  4267. <X>1279</X>
  4268. <Y>687</Y>
  4269. <W>14</W>
  4270. <H>20</H>
  4271. </item>
  4272. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  4273. <X>1287.5</X>
  4274. <Y>697</Y>
  4275. </item>
  4276. </items>
  4277. </chunk>
  4278. <chunk name="PersistentData">
  4279. <items count="1">
  4280. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  4281. </items>
  4282. <chunks count="1">
  4283. <chunk name="Branch" index="0">
  4284. <items count="2">
  4285. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  4286. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  4287. </items>
  4288. <chunks count="1">
  4289. <chunk name="Item" index="0">
  4290. <items count="1">
  4291. <item name="plane" type_name="gh_plane" type_code="72">
  4292. <Ox>0</Ox>
  4293. <Oy>0</Oy>
  4294. <Oz>0</Oz>
  4295. <Xx>0</Xx>
  4296. <Xy>0</Xy>
  4297. <Xz>1</Xz>
  4298. <Yx>1</Yx>
  4299. <Yy>0</Yy>
  4300. <Yz>0</Yz>
  4301. </item>
  4302. </items>
  4303. </chunk>
  4304. </chunks>
  4305. </chunk>
  4306. </chunks>
  4307. </chunk>
  4308. </chunks>
  4309. </chunk>
  4310. <chunk name="param_output" index="0">
  4311. <items count="6">
  4312. <item name="Description" type_name="gh_string" type_code="10">Mirrored geometry</item>
  4313. <item name="InstanceGuid" type_name="gh_guid" type_code="9">fef45908-0b4b-4554-b56b-334d7b9a07c0</item>
  4314. <item name="Name" type_name="gh_string" type_code="10">Geometry</item>
  4315. <item name="NickName" type_name="gh_string" type_code="10">G</item>
  4316. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  4317. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  4318. </items>
  4319. <chunks count="1">
  4320. <chunk name="Attributes">
  4321. <items count="2">
  4322. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  4323. <X>1323</X>
  4324. <Y>667</Y>
  4325. <W>17</W>
  4326. <H>20</H>
  4327. </item>
  4328. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  4329. <X>1331.5</X>
  4330. <Y>677</Y>
  4331. </item>
  4332. </items>
  4333. </chunk>
  4334. </chunks>
  4335. </chunk>
  4336. <chunk name="param_output" index="1">
  4337. <items count="6">
  4338. <item name="Description" type_name="gh_string" type_code="10">Transformation data</item>
  4339. <item name="InstanceGuid" type_name="gh_guid" type_code="9">b1d2e017-d6c1-487a-925f-7e6b3170b50c</item>
  4340. <item name="Name" type_name="gh_string" type_code="10">Transform</item>
  4341. <item name="NickName" type_name="gh_string" type_code="10">X</item>
  4342. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  4343. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  4344. </items>
  4345. <chunks count="1">
  4346. <chunk name="Attributes">
  4347. <items count="2">
  4348. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  4349. <X>1323</X>
  4350. <Y>687</Y>
  4351. <W>17</W>
  4352. <H>20</H>
  4353. </item>
  4354. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  4355. <X>1331.5</X>
  4356. <Y>697</Y>
  4357. </item>
  4358. </items>
  4359. </chunk>
  4360. </chunks>
  4361. </chunk>
  4362. </chunks>
  4363. </chunk>
  4364. </chunks>
  4365. </chunk>
  4366. <chunk name="Object" index="35">
  4367. <items count="2">
  4368. <item name="GUID" type_name="gh_guid" type_code="9">9df5e896-552d-4c8c-b9ca-4fc147ffa022</item>
  4369. <item name="Name" type_name="gh_string" type_code="10">Expression</item>
  4370. </items>
  4371. <chunks count="1">
  4372. <chunk name="Container">
  4373. <items count="5">
  4374. <item name="Description" type_name="gh_string" type_code="10">Evaluate an expression</item>
  4375. <item name="Expression" type_name="gh_string" type_code="10">x*2</item>
  4376. <item name="InstanceGuid" type_name="gh_guid" type_code="9">8a2af1f2-b070-42bc-acff-393a560d94c6</item>
  4377. <item name="Name" type_name="gh_string" type_code="10">Expression</item>
  4378. <item name="NickName" type_name="gh_string" type_code="10">Expression</item>
  4379. </items>
  4380. <chunks count="2">
  4381. <chunk name="Attributes">
  4382. <items count="2">
  4383. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  4384. <X>1379</X>
  4385. <Y>892</Y>
  4386. <W>84</W>
  4387. <H>28</H>
  4388. </item>
  4389. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  4390. <X>1419</X>
  4391. <Y>906</Y>
  4392. </item>
  4393. </items>
  4394. </chunk>
  4395. <chunk name="ParameterData">
  4396. <items count="4">
  4397. <item name="InputCount" type_name="gh_int32" type_code="3">1</item>
  4398. <item name="InputId" index="0" type_name="gh_guid" type_code="9">ba80fd98-91a1-4958-b6a7-a94e40e52bdb</item>
  4399. <item name="OutputCount" type_name="gh_int32" type_code="3">1</item>
  4400. <item name="OutputId" index="0" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  4401. </items>
  4402. <chunks count="2">
  4403. <chunk name="InputParam" index="0">
  4404. <items count="7">
  4405. <item name="Description" type_name="gh_string" type_code="10">Expression variable</item>
  4406. <item name="InstanceGuid" type_name="gh_guid" type_code="9">9378e904-7029-4099-9a7d-0a61740c8db5</item>
  4407. <item name="Name" type_name="gh_string" type_code="10">Variable x</item>
  4408. <item name="NickName" type_name="gh_string" type_code="10">x</item>
  4409. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  4410. <item name="Source" index="0" type_name="gh_guid" type_code="9">64504e23-6a31-41c8-aef7-9ea0c21e3465</item>
  4411. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  4412. </items>
  4413. <chunks count="1">
  4414. <chunk name="Attributes">
  4415. <items count="2">
  4416. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  4417. <X>1381</X>
  4418. <Y>894</Y>
  4419. <W>12</W>
  4420. <H>24</H>
  4421. </item>
  4422. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  4423. <X>1388.5</X>
  4424. <Y>906</Y>
  4425. </item>
  4426. </items>
  4427. </chunk>
  4428. </chunks>
  4429. </chunk>
  4430. <chunk name="OutputParam" index="0">
  4431. <items count="6">
  4432. <item name="Description" type_name="gh_string" type_code="10">Result of expression</item>
  4433. <item name="InstanceGuid" type_name="gh_guid" type_code="9">ae803c56-82b6-4b49-9bf4-1997a330a545</item>
  4434. <item name="Name" type_name="gh_string" type_code="10">Result</item>
  4435. <item name="NickName" type_name="gh_string" type_code="10">R</item>
  4436. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  4437. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  4438. </items>
  4439. <chunks count="1">
  4440. <chunk name="Attributes">
  4441. <items count="2">
  4442. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  4443. <X>1445</X>
  4444. <Y>894</Y>
  4445. <W>16</W>
  4446. <H>24</H>
  4447. </item>
  4448. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  4449. <X>1453</X>
  4450. <Y>906</Y>
  4451. </item>
  4452. </items>
  4453. </chunk>
  4454. </chunks>
  4455. </chunk>
  4456. </chunks>
  4457. </chunk>
  4458. </chunks>
  4459. </chunk>
  4460. </chunks>
  4461. </chunk>
  4462. <chunk name="Object" index="36">
  4463. <items count="2">
  4464. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  4465. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  4466. </items>
  4467. <chunks count="1">
  4468. <chunk name="Container">
  4469. <items count="9">
  4470. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  4471. <item name="InstanceGuid" type_name="gh_guid" type_code="9">7ff6881c-7677-4071-a632-b6c8ea1ac4d3</item>
  4472. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  4473. <item name="NickName" type_name="gh_string" type_code="10"></item>
  4474. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  4475. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  4476. <item name="Source" index="0" type_name="gh_guid" type_code="9">ae803c56-82b6-4b49-9bf4-1997a330a545</item>
  4477. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  4478. <item name="UserText" type_name="gh_string" type_code="10">Double click to edit panel content…</item>
  4479. </items>
  4480. <chunks count="2">
  4481. <chunk name="Attributes">
  4482. <items count="5">
  4483. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  4484. <X>1489</X>
  4485. <Y>887</Y>
  4486. <W>96</W>
  4487. <H>42</H>
  4488. </item>
  4489. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  4490. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  4491. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  4492. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  4493. <X>1489.256</X>
  4494. <Y>887.1902</Y>
  4495. </item>
  4496. </items>
  4497. </chunk>
  4498. <chunk name="PanelProperties">
  4499. <items count="7">
  4500. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  4501. <ARGB>255;255;250;90</ARGB>
  4502. </item>
  4503. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  4504. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  4505. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  4506. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  4507. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  4508. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  4509. </items>
  4510. </chunk>
  4511. </chunks>
  4512. </chunk>
  4513. </chunks>
  4514. </chunk>
  4515. <chunk name="Object" index="37">
  4516. <items count="2">
  4517. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  4518. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  4519. </items>
  4520. <chunks count="1">
  4521. <chunk name="Container">
  4522. <items count="8">
  4523. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  4524. <item name="InstanceGuid" type_name="gh_guid" type_code="9">0068d51d-c81e-4187-8df3-5835ab363a73</item>
  4525. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  4526. <item name="NickName" type_name="gh_string" type_code="10"></item>
  4527. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  4528. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  4529. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  4530. <item name="UserText" type_name="gh_string" type_code="10">71.7</item>
  4531. </items>
  4532. <chunks count="2">
  4533. <chunk name="Attributes">
  4534. <items count="5">
  4535. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  4536. <X>486</X>
  4537. <Y>1016</Y>
  4538. <W>50</W>
  4539. <H>20</H>
  4540. </item>
  4541. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  4542. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  4543. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  4544. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  4545. <X>486.351</X>
  4546. <Y>1016.602</Y>
  4547. </item>
  4548. </items>
  4549. </chunk>
  4550. <chunk name="PanelProperties">
  4551. <items count="7">
  4552. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  4553. <ARGB>255;255;250;90</ARGB>
  4554. </item>
  4555. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  4556. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  4557. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  4558. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  4559. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  4560. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  4561. </items>
  4562. </chunk>
  4563. </chunks>
  4564. </chunk>
  4565. </chunks>
  4566. </chunk>
  4567. <chunk name="Object" index="38">
  4568. <items count="2">
  4569. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  4570. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  4571. </items>
  4572. <chunks count="1">
  4573. <chunk name="Container">
  4574. <items count="8">
  4575. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  4576. <item name="InstanceGuid" type_name="gh_guid" type_code="9">65023053-5666-4c0b-b753-08fe81bad98b</item>
  4577. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  4578. <item name="NickName" type_name="gh_string" type_code="10"></item>
  4579. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  4580. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  4581. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  4582. <item name="UserText" type_name="gh_string" type_code="10">0.09</item>
  4583. </items>
  4584. <chunks count="2">
  4585. <chunk name="Attributes">
  4586. <items count="5">
  4587. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  4588. <X>51</X>
  4589. <Y>1103</Y>
  4590. <W>50</W>
  4591. <H>20</H>
  4592. </item>
  4593. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  4594. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  4595. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  4596. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  4597. <X>51.64487</X>
  4598. <Y>1103.176</Y>
  4599. </item>
  4600. </items>
  4601. </chunk>
  4602. <chunk name="PanelProperties">
  4603. <items count="7">
  4604. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  4605. <ARGB>255;255;250;90</ARGB>
  4606. </item>
  4607. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  4608. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  4609. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  4610. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  4611. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  4612. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  4613. </items>
  4614. </chunk>
  4615. </chunks>
  4616. </chunk>
  4617. </chunks>
  4618. </chunk>
  4619. <chunk name="Object" index="39">
  4620. <items count="2">
  4621. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  4622. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  4623. </items>
  4624. <chunks count="1">
  4625. <chunk name="Container">
  4626. <items count="8">
  4627. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  4628. <item name="InstanceGuid" type_name="gh_guid" type_code="9">b958296d-1f29-45e4-a204-834500f3a2c8</item>
  4629. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  4630. <item name="NickName" type_name="gh_string" type_code="10"></item>
  4631. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  4632. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  4633. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  4634. <item name="UserText" type_name="gh_string" type_code="10">0.0055</item>
  4635. </items>
  4636. <chunks count="2">
  4637. <chunk name="Attributes">
  4638. <items count="5">
  4639. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  4640. <X>50</X>
  4641. <Y>1130</Y>
  4642. <W>62</W>
  4643. <H>20</H>
  4644. </item>
  4645. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  4646. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  4647. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  4648. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  4649. <X>50.66486</X>
  4650. <Y>1130.595</Y>
  4651. </item>
  4652. </items>
  4653. </chunk>
  4654. <chunk name="PanelProperties">
  4655. <items count="7">
  4656. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  4657. <ARGB>255;255;250;90</ARGB>
  4658. </item>
  4659. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  4660. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  4661. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  4662. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  4663. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  4664. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  4665. </items>
  4666. </chunk>
  4667. </chunks>
  4668. </chunk>
  4669. </chunks>
  4670. </chunk>
  4671. <chunk name="Object" index="40">
  4672. <items count="2">
  4673. <item name="GUID" type_name="gh_guid" type_code="9">9df5e896-552d-4c8c-b9ca-4fc147ffa022</item>
  4674. <item name="Name" type_name="gh_string" type_code="10">Expression</item>
  4675. </items>
  4676. <chunks count="1">
  4677. <chunk name="Container">
  4678. <items count="5">
  4679. <item name="Description" type_name="gh_string" type_code="10">Evaluate an expression</item>
  4680. <item name="Expression" type_name="gh_string" type_code="10">π*(outer^4-(outer-thick)^4)/32</item>
  4681. <item name="InstanceGuid" type_name="gh_guid" type_code="9">c6fb6177-2d5c-4ea6-801e-f1d602a9945f</item>
  4682. <item name="Name" type_name="gh_string" type_code="10">Expression</item>
  4683. <item name="NickName" type_name="gh_string" type_code="10">Expression</item>
  4684. </items>
  4685. <chunks count="2">
  4686. <chunk name="Attributes">
  4687. <items count="2">
  4688. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  4689. <X>197</X>
  4690. <Y>1105</Y>
  4691. <W>324</W>
  4692. <H>44</H>
  4693. </item>
  4694. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  4695. <X>366</X>
  4696. <Y>1127</Y>
  4697. </item>
  4698. </items>
  4699. </chunk>
  4700. <chunk name="ParameterData">
  4701. <items count="5">
  4702. <item name="InputCount" type_name="gh_int32" type_code="3">2</item>
  4703. <item name="InputId" index="0" type_name="gh_guid" type_code="9">ba80fd98-91a1-4958-b6a7-a94e40e52bdb</item>
  4704. <item name="InputId" index="1" type_name="gh_guid" type_code="9">ba80fd98-91a1-4958-b6a7-a94e40e52bdb</item>
  4705. <item name="OutputCount" type_name="gh_int32" type_code="3">1</item>
  4706. <item name="OutputId" index="0" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  4707. </items>
  4708. <chunks count="3">
  4709. <chunk name="InputParam" index="0">
  4710. <items count="7">
  4711. <item name="Description" type_name="gh_string" type_code="10">Expression variable</item>
  4712. <item name="InstanceGuid" type_name="gh_guid" type_code="9">cf3ef3e5-5024-4f5c-a4c6-0baf27546401</item>
  4713. <item name="Name" type_name="gh_string" type_code="10">Variable outer</item>
  4714. <item name="NickName" type_name="gh_string" type_code="10">outer</item>
  4715. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  4716. <item name="Source" index="0" type_name="gh_guid" type_code="9">65023053-5666-4c0b-b753-08fe81bad98b</item>
  4717. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  4718. </items>
  4719. <chunks count="1">
  4720. <chunk name="Attributes">
  4721. <items count="2">
  4722. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  4723. <X>199</X>
  4724. <Y>1107</Y>
  4725. <W>30</W>
  4726. <H>20</H>
  4727. </item>
  4728. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  4729. <X>215.5</X>
  4730. <Y>1117</Y>
  4731. </item>
  4732. </items>
  4733. </chunk>
  4734. </chunks>
  4735. </chunk>
  4736. <chunk name="InputParam" index="1">
  4737. <items count="7">
  4738. <item name="Description" type_name="gh_string" type_code="10">Expression variable</item>
  4739. <item name="InstanceGuid" type_name="gh_guid" type_code="9">275aff5f-fca5-430e-bd77-af734dc26d01</item>
  4740. <item name="Name" type_name="gh_string" type_code="10">Variable thick</item>
  4741. <item name="NickName" type_name="gh_string" type_code="10">thick</item>
  4742. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  4743. <item name="Source" index="0" type_name="gh_guid" type_code="9">b958296d-1f29-45e4-a204-834500f3a2c8</item>
  4744. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  4745. </items>
  4746. <chunks count="1">
  4747. <chunk name="Attributes">
  4748. <items count="2">
  4749. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  4750. <X>199</X>
  4751. <Y>1127</Y>
  4752. <W>30</W>
  4753. <H>20</H>
  4754. </item>
  4755. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  4756. <X>215.5</X>
  4757. <Y>1137</Y>
  4758. </item>
  4759. </items>
  4760. </chunk>
  4761. </chunks>
  4762. </chunk>
  4763. <chunk name="OutputParam" index="0">
  4764. <items count="6">
  4765. <item name="Description" type_name="gh_string" type_code="10">Result of expression</item>
  4766. <item name="InstanceGuid" type_name="gh_guid" type_code="9">c29e43b1-f147-4596-9a27-65e202efbf44</item>
  4767. <item name="Name" type_name="gh_string" type_code="10">Result</item>
  4768. <item name="NickName" type_name="gh_string" type_code="10">R</item>
  4769. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  4770. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  4771. </items>
  4772. <chunks count="1">
  4773. <chunk name="Attributes">
  4774. <items count="2">
  4775. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  4776. <X>503</X>
  4777. <Y>1107</Y>
  4778. <W>16</W>
  4779. <H>40</H>
  4780. </item>
  4781. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  4782. <X>511</X>
  4783. <Y>1127</Y>
  4784. </item>
  4785. </items>
  4786. </chunk>
  4787. </chunks>
  4788. </chunk>
  4789. </chunks>
  4790. </chunk>
  4791. </chunks>
  4792. </chunk>
  4793. </chunks>
  4794. </chunk>
  4795. <chunk name="Object" index="41">
  4796. <items count="2">
  4797. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  4798. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  4799. </items>
  4800. <chunks count="1">
  4801. <chunk name="Container">
  4802. <items count="9">
  4803. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  4804. <item name="InstanceGuid" type_name="gh_guid" type_code="9">61e14a85-7063-4c93-bec1-f130a2a79f94</item>
  4805. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  4806. <item name="NickName" type_name="gh_string" type_code="10"></item>
  4807. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  4808. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  4809. <item name="Source" index="0" type_name="gh_guid" type_code="9">20b5374e-e220-4840-8424-dcf1b57d3ad2</item>
  4810. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  4811. <item name="UserText" type_name="gh_string" type_code="10">Double click to edit panel content…</item>
  4812. </items>
  4813. <chunks count="2">
  4814. <chunk name="Attributes">
  4815. <items count="5">
  4816. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  4817. <X>744</X>
  4818. <Y>1065</Y>
  4819. <W>97</W>
  4820. <H>58</H>
  4821. </item>
  4822. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  4823. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  4824. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  4825. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  4826. <X>744.1909</X>
  4827. <Y>1065.401</Y>
  4828. </item>
  4829. </items>
  4830. </chunk>
  4831. <chunk name="PanelProperties">
  4832. <items count="7">
  4833. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  4834. <ARGB>255;255;250;90</ARGB>
  4835. </item>
  4836. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  4837. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  4838. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  4839. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  4840. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  4841. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  4842. </items>
  4843. </chunk>
  4844. </chunks>
  4845. </chunk>
  4846. </chunks>
  4847. </chunk>
  4848. <chunk name="Object" index="42">
  4849. <items count="2">
  4850. <item name="GUID" type_name="gh_guid" type_code="9">d5967b9f-e8ee-436b-a8ad-29fdcecf32d5</item>
  4851. <item name="Name" type_name="gh_string" type_code="10">Curve</item>
  4852. </items>
  4853. <chunks count="1">
  4854. <chunk name="Container">
  4855. <items count="7">
  4856. <item name="Description" type_name="gh_string" type_code="10">Contains a collection of generic curves</item>
  4857. <item name="InstanceGuid" type_name="gh_guid" type_code="9">9ce607e3-994c-4bda-99e3-6e421454263b</item>
  4858. <item name="Name" type_name="gh_string" type_code="10">Curve</item>
  4859. <item name="NickName" type_name="gh_string" type_code="10">Crv</item>
  4860. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  4861. <item name="Source" index="0" type_name="gh_guid" type_code="9">10cf8192-1856-476a-b1e6-4b0f3c70a20b</item>
  4862. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  4863. </items>
  4864. <chunks count="1">
  4865. <chunk name="Attributes">
  4866. <items count="2">
  4867. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  4868. <X>1303</X>
  4869. <Y>728</Y>
  4870. <W>50</W>
  4871. <H>24</H>
  4872. </item>
  4873. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  4874. <X>1328.596</X>
  4875. <Y>740.7537</Y>
  4876. </item>
  4877. </items>
  4878. </chunk>
  4879. </chunks>
  4880. </chunk>
  4881. </chunks>
  4882. </chunk>
  4883. <chunk name="Object" index="43">
  4884. <items count="2">
  4885. <item name="GUID" type_name="gh_guid" type_code="9">7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe</item>
  4886. <item name="Name" type_name="gh_string" type_code="10">Scribble</item>
  4887. </items>
  4888. <chunks count="1">
  4889. <chunk name="Container">
  4890. <items count="13">
  4891. <item name="Bold" type_name="gh_bool" type_code="1">true</item>
  4892. <item name="Ca" type_name="gh_drawing_pointf" type_code="31">
  4893. <X>147.2881</X>
  4894. <Y>1085.861</Y>
  4895. </item>
  4896. <item name="Cb" type_name="gh_drawing_pointf" type_code="31">
  4897. <X>504.9157</X>
  4898. <Y>1084.888</Y>
  4899. </item>
  4900. <item name="Cc" type_name="gh_drawing_pointf" type_code="31">
  4901. <X>504.9566</X>
  4902. <Y>1099.915</Y>
  4903. </item>
  4904. <item name="Cd" type_name="gh_drawing_pointf" type_code="31">
  4905. <X>147.329</X>
  4906. <Y>1100.889</Y>
  4907. </item>
  4908. <item name="Description" type_name="gh_string" type_code="10">A quick note</item>
  4909. <item name="Font" type_name="gh_string" type_code="10">Microsoft Sans Serif</item>
  4910. <item name="InstanceGuid" type_name="gh_guid" type_code="9">a2b3599b-d7ad-4dff-aca4-d6dbc30755af</item>
  4911. <item name="Italic" type_name="gh_bool" type_code="1">false</item>
  4912. <item name="Name" type_name="gh_string" type_code="10">Scribble</item>
  4913. <item name="NickName" type_name="gh_string" type_code="10">Scribble</item>
  4914. <item name="Size" type_name="gh_single" type_code="5">16</item>
  4915. <item name="Text" type_name="gh_string" type_code="10">area moment of inertia for a hollow rod (in m^4)</item>
  4916. </items>
  4917. <chunks count="1">
  4918. <chunk name="Attributes">
  4919. <items count="2">
  4920. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  4921. <X>142.2881</X>
  4922. <Y>1079.888</Y>
  4923. <W>367.6685</W>
  4924. <H>26.00085</H>
  4925. </item>
  4926. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  4927. <X>147.2881</X>
  4928. <Y>1085.861</Y>
  4929. </item>
  4930. </items>
  4931. </chunk>
  4932. </chunks>
  4933. </chunk>
  4934. </chunks>
  4935. </chunk>
  4936. <chunk name="Object" index="44">
  4937. <items count="2">
  4938. <item name="GUID" type_name="gh_guid" type_code="9">7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe</item>
  4939. <item name="Name" type_name="gh_string" type_code="10">Scribble</item>
  4940. </items>
  4941. <chunks count="1">
  4942. <chunk name="Container">
  4943. <items count="13">
  4944. <item name="Bold" type_name="gh_bool" type_code="1">true</item>
  4945. <item name="Ca" type_name="gh_drawing_pointf" type_code="31">
  4946. <X>544.7806</X>
  4947. <Y>1376.747</Y>
  4948. </item>
  4949. <item name="Cb" type_name="gh_drawing_pointf" type_code="31">
  4950. <X>735.764</X>
  4951. <Y>1376.736</Y>
  4952. </item>
  4953. <item name="Cc" type_name="gh_drawing_pointf" type_code="31">
  4954. <X>735.7651</X>
  4955. <Y>1391.763</Y>
  4956. </item>
  4957. <item name="Cd" type_name="gh_drawing_pointf" type_code="31">
  4958. <X>544.7817</X>
  4959. <Y>1391.774</Y>
  4960. </item>
  4961. <item name="Description" type_name="gh_string" type_code="10">A quick note</item>
  4962. <item name="Font" type_name="gh_string" type_code="10">Microsoft Sans Serif</item>
  4963. <item name="InstanceGuid" type_name="gh_guid" type_code="9">37f949de-70f1-4437-96b3-797739d591c1</item>
  4964. <item name="Italic" type_name="gh_bool" type_code="1">false</item>
  4965. <item name="Name" type_name="gh_string" type_code="10">Scribble</item>
  4966. <item name="NickName" type_name="gh_string" type_code="10">Scribble</item>
  4967. <item name="Size" type_name="gh_single" type_code="5">16</item>
  4968. <item name="Text" type_name="gh_string" type_code="10">One height, two solutions</item>
  4969. </items>
  4970. <chunks count="1">
  4971. <chunk name="Attributes">
  4972. <items count="2">
  4973. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  4974. <X>539.7806</X>
  4975. <Y>1371.736</Y>
  4976. <W>200.9845</W>
  4977. <H>25.03821</H>
  4978. </item>
  4979. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  4980. <X>544.7806</X>
  4981. <Y>1376.747</Y>
  4982. </item>
  4983. </items>
  4984. </chunk>
  4985. </chunks>
  4986. </chunk>
  4987. </chunks>
  4988. </chunk>
  4989. <chunk name="Object" index="45">
  4990. <items count="2">
  4991. <item name="GUID" type_name="gh_guid" type_code="9">079bd9bd-54a0-41d4-98af-db999015f63d</item>
  4992. <item name="Name" type_name="gh_string" type_code="10">VB Script</item>
  4993. </items>
  4994. <chunks count="1">
  4995. <chunk name="Container">
  4996. <items count="10">
  4997. <item name="AdditionalSource" type_name="gh_string" type_code="10"> Private Function IsSet(ByVal param As String) As Boolean ' Check if an input parameter has data
  4998. Dim i As Integer = Component.Params.IndexOfInputParam(param)
  4999. If i &gt; -1 Then
  5000. Return Component.Params.Input.ElementAt(i).DataType &gt; 1 ' input parameter DataType of 1 means it's not receiving input (internal or external)
  5001. Else
  5002. Msg("error", "Input parameter '" &amp; param &amp; "' not found")
  5003. Return False
  5004. End If
  5005. End Function
  5006. Private Sub Msg(ByVal type As String, ByVal msg As String) ' Output an error, warning, or informational message
  5007. Select Case type
  5008. Case "error"
  5009. Component.AddRuntimeMessage(GH_RuntimeMessageLevel.Error, msg)
  5010. Print("Error: " &amp; msg)
  5011. Case "warning"
  5012. Component.AddRuntimeMessage(GH_RuntimeMessageLevel.Warning, msg)
  5013. Print("Warning: " &amp; msg)
  5014. Case "info"
  5015. Component.AddRuntimeMessage(GH_RuntimeMessageLevel.Remark, msg)
  5016. Print(msg)
  5017. End Select
  5018. End Sub
  5019. ' Solve for the m parameter from length and width (reference {1} equation (34), except b = width and K(k) and E(k) should be K(m) and E(m))
  5020. Private Function SolveMFromLenWid(ByVal L As Double, ByVal w As Double) As Double
  5021. If w = 0 Then
  5022. Return Defined.M_ZERO_W ' for the boundry condition width = 0, bypass the function and return the known m value
  5023. End If
  5024. Dim n As Integer = 1 ' Iteration counter (quit if &gt;MAXIT)
  5025. Dim lower As Double = 0 ' m must be within this range
  5026. Dim upper As Double = 1
  5027. Dim m As Double
  5028. Dim cwl As Double
  5029. Do While (upper - lower) &gt; Defined.MAXERR AndAlso (n) &lt; Defined.MAXIT ' Repeat until range narrow enough or MAXIT
  5030. m = (upper + lower) / 2
  5031. cwl = 2 * EllipticE(m) / EllipticK(m) - 1 ' calculate w/L with the test value of m
  5032. If cwl &lt; w / L Then ' compares the calculated w/L with the actual w/L then narrows the range of possible m
  5033. upper = m
  5034. Else
  5035. lower = m
  5036. End If
  5037. n += 1
  5038. Loop
  5039. Return m
  5040. End Function
  5041. ' Solve for the m parameter from length and height (reference {1} equation (33), except K(k) should be K(m) and k = sqrt(m))
  5042. ' Note that it's actually possible to find 2 valid values for m (hence 2 width values) at certain height values
  5043. Private Function SolveMFromLenHt(ByVal L As Double, ByVal h As Double) As List(Of Double)
  5044. Dim n As Integer = 1 ' Iteration counter (quit if &gt;MAXIT)
  5045. Dim lower As Double = 0 ' m must be within this range
  5046. Dim upper As Double = 1
  5047. Dim twoWidths As Boolean = h / L &gt;= Defined.DOUBLE_W_HL_RATIO And h / L &lt; Defined.MAX_HL_RATIO ' check to see if h/L is within the range where 2 solutions for the width are possible
  5048. Dim m As Double
  5049. Dim mult_m As New List(Of Double)
  5050. Dim chl As Double
  5051. If twoWidths Then
  5052. ' find the first of two possible solutions for m with the following limits:
  5053. lower = Defined.M_DOUBLE_W ' see constants at bottom of script
  5054. upper = Defined.M_MAXHEIGHT ' see constants at bottom of script
  5055. Do While (upper - lower) &gt; Defined.MAXERR AndAlso (n) &lt; Defined.MAXIT ' Repeat until range narrow enough or MAXIT
  5056. m = (upper + lower) / 2
  5057. chl = Math.Sqrt(m) / EllipticK(m) ' calculate h/L with the test value of m
  5058. If chl &gt; h / L Then ' compares the calculated h/L with the actual h/L then narrows the range of possible m
  5059. upper = m
  5060. Else
  5061. lower = m
  5062. End If
  5063. n += 1
  5064. Loop
  5065. mult_m.Add(m)
  5066. ' then find the second of two possible solutions for m with the following limits:
  5067. lower = Defined.M_MAXHEIGHT ' see constants at bottom of script
  5068. upper = 1
  5069. Do While (upper - lower) &gt; Defined.MAXERR AndAlso (n) &lt; Defined.MAXIT ' Repeat until range narrow enough or MAXIT
  5070. m = (upper + lower) / 2
  5071. chl = Math.Sqrt(m) / EllipticK(m) ' calculate h/L with the test value of m
  5072. If chl &lt; h / L Then ' compares the calculated h/L with the actual h/L then narrows the range of possible m
  5073. upper = m
  5074. Else
  5075. lower = m
  5076. End If
  5077. n += 1
  5078. Loop
  5079. If m &lt;= Defined.M_MAX Then ' return this m parameter only if it falls within the maximum useful value (above which the curve breaks down)
  5080. mult_m.Add(m)
  5081. End If
  5082. Else
  5083. ' find the one possible solution for the m parameter
  5084. upper = Defined.M_DOUBLE_W ' limit the upper end of the search to the maximum value of m for which only one solution exists
  5085. Do While (upper - lower) &gt; Defined.MAXERR AndAlso (n) &lt; Defined.MAXIT ' Repeat until range narrow enough or MAXIT
  5086. m = (upper + lower) / 2
  5087. chl = Math.Sqrt(m) / EllipticK(m) ' calculate h/L with the test value of m
  5088. If chl &gt; h / L Then ' compares the calculated h/L with the actual h/L then narrows the range of possible m
  5089. upper = m
  5090. Else
  5091. lower = m
  5092. End If
  5093. n += 1
  5094. Loop
  5095. mult_m.Add(m)
  5096. End If
  5097. Return mult_m
  5098. End Function
  5099. ' Solve for the m parameter from width and height (derived from reference {1} equations (33) and (34) with same notes as above)
  5100. Private Function SolveMFromWidHt(ByVal w As Double, ByVal h As Double) As Double
  5101. Dim n As Integer = 1 ' Iteration counter (quit if &gt;MAXIT)
  5102. Dim lower As Double = 0 ' m must be within this range
  5103. Dim upper As Double = 1
  5104. Dim m As Double
  5105. Dim cwh As Double
  5106. Do While (upper - lower) &gt; Defined.MAXERR AndAlso (n) &lt; Defined.MAXIT ' Repeat until range narrow enough or MAXIT
  5107. m = (upper + lower) / 2
  5108. cwh = (2 * EllipticE(m) - EllipticK(m)) / Math.Sqrt(m) ' calculate w/h with the test value of m
  5109. If cwh &lt; w / h Then ' compares the calculated w/h with the actual w/h then narrows the range of possible m
  5110. upper = m
  5111. Else
  5112. lower = m
  5113. End If
  5114. n += 1
  5115. Loop
  5116. Return m
  5117. End Function
  5118. ' Calculate length based on height and an m parameter, derived from reference {1} equation (33), except K(k) should be K(m) and k = sqrt(m)
  5119. Private Function Cal_L(ByVal h As Double, ByVal m As Double) As Double
  5120. Return h * EllipticK(m) / Math.Sqrt(m)
  5121. End Function
  5122. ' Calculate width based on length and an m parameter, derived from reference {1} equation (34), except b = width and K(k) and E(k) should be K(m) and E(m)
  5123. Private Function Cal_W(ByVal L As Double, ByVal m As Double) As Double
  5124. Return L * (2 * EllipticE(m) / EllipticK(m) - 1)
  5125. End Function
  5126. ' Calculate height based on length and an m parameter, from reference {1} equation (33), except K(k) should be K(m) and k = sqrt(m)
  5127. Private Function Cal_H(ByVal L As Double, ByVal m As Double) As Double
  5128. Return L * Math.Sqrt(m) / EllipticK(m)
  5129. End Function
  5130. ' Calculate the unique m parameter based on a start tangent angle, from reference {2}, just above equation (9a), that states k = Sin(angle / 2 + Pi / 4),
  5131. ' but as m = k^2 and due to this script's need for an angle rotated 90° versus the one in reference {1}, the following formula is the result
  5132. ' New note: verified by reference {4}, pg. 78 at the bottom
  5133. Private Function Cal_M(ByVal a As Double) As Double
  5134. Return (1 - Math.Cos(a)) / 2 ' equal to Sin^2(a/2) too
  5135. End Function
  5136. ' Calculate start tangent angle based on an m parameter, derived from above formula
  5137. Private Function Cal_A(ByVal m As Double) As Double
  5138. Return Math.Acos(1 - 2 * m)
  5139. End Function
  5140. ' This is the heart of this script, taking the found (or specified) length, width, and angle values along with the found m parameter to create
  5141. ' a list of points that approximate the shape or form of the elastica. It works by finding the x and y coordinates (which are reversed versus
  5142. ' the original equations (12a) and (12b) from reference {2} due to the 90° difference in orientation) based on the tangent angle along the curve.
  5143. ' See reference {2} for more details on how they derived it. Note that to simplify things, the algorithm only calculates the points for half of the
  5144. ' curve, then mirrors those points along the y-axis.
  5145. Private Function FindBendForm(ByVal L As Double, ByVal w As Double, ByVal m As Double, ByVal ang As Double, ByVal refPln As Plane) As List(Of Point3d)
  5146. L = L / 2 ' because the below algorithm is based on the formulas in reference {2} for only half of the curve
  5147. w = w / 2 ' same
  5148. If ang = 0 Then ' if angle (and height) = 0, then simply return the start and end points of the straight line
  5149. Dim out As New List(Of Point3d)
  5150. out.Add(refPln.PointAt(w, 0, 0))
  5151. out.Add(refPln.PointAt(-w, 0, 0))
  5152. Return out
  5153. End If
  5154. Dim x As Double
  5155. Dim y As Double
  5156. Dim halfCurvePts As New List(Of Point3d)
  5157. Dim fullCurvePts As New List(Of Point3d)
  5158. Dim translatedPts As New List(Of Point3d)
  5159. ang -= Math.PI / 2 ' a hack to allow this algorithm to work, since the original curve in paper {2} was rotated 90°
  5160. Dim angB As Double = ang + (-Math.PI / 2 - ang) / Defined.CURVEDIVS ' angB is the 'lowercase theta' which should be in formula {2}(12b) as the interval
  5161. ' start [a typo...see equation(3)]. It's necessary to start angB at ang + [interval] instead of just ang due to integration failing at angB = ang
  5162. halfCurvePts.Add(New Point3d(w, 0, 0)) ' start with this known initial point, as integration will fail when angB = ang
  5163. ' each point {x, y} is calculated from the tangent angle, angB, that occurs at each point (which is why this iterates from ~ang to -pi/2, the known end condition)
  5164. Do While Math.Round(angB, Defined.ROUNDTO) &gt;= Math.Round(-Math.PI / 2, Defined.ROUNDTO)
  5165. y = (Math.Sqrt(2) * Math.Sqrt(Math.Sin(ang) - Math.Sin(angB)) * (w + L)) / (2 * EllipticE(m)) ' note that x and y are swapped vs. (12a) and (12b)
  5166. x = (L / (Math.Sqrt(2) * EllipticK(m))) * Simpson(angB, -Math.PI / 2, 500, ang) ' calculate the Simpson approximation of the integral (function f below)
  5167. ' over the interval angB ('lowercase theta') to -pi/2. side note: is 500 too few iterations for the Simson algorithm?
  5168. If Math.Round(x, Defined.ROUNDTO) = 0 Then x = 0
  5169. halfCurvePts.Add(New Point3d(x, y, 0))
  5170. angB += (-Math.PI / 2 - ang) / Defined.CURVEDIVS ' onto the next tangent angle
  5171. Loop
  5172. ' After finding the x and y values for half of the curve, add the {-x, y} values for the rest of the curve
  5173. For Each point As Point3d In halfCurvePts
  5174. If Math.Round(point.X, Defined.ROUNDTO) = 0 Then
  5175. If Math.Round(point.Y, Defined.ROUNDTO) = 0 Then
  5176. fullCurvePts.Add(New Point3d(0, 0, 0)) ' special case when width = 0: when x = 0, only duplicate the point when y = 0 too
  5177. End If
  5178. Else
  5179. fullCurvePts.Add(New Point3d(-point.X, point.Y, 0))
  5180. End If
  5181. Next
  5182. halfCurvePts.Reverse
  5183. fullCurvePts.AddRange(halfCurvePts)
  5184. For Each p As Point3d In fullCurvePts
  5185. translatedPts.Add(refPln.PointAt(p.X, p.Y, p.Z)) ' translate the points from the reference plane to the world plane
  5186. Next
  5187. Return translatedPts
  5188. End Function
  5189. ' Interpolates the points from FindBendForm to create the Elastica curve. Uses start &amp; end tangents for greater accuracy.
  5190. Private Function MakeCurve(ByVal pts As List(Of Point3d), ByVal ang As Double, ByVal refPln As Plane) As Curve
  5191. If ang &lt;&gt; 0 Then
  5192. Dim ts, te As New Vector3d(refPln.XAxis)
  5193. ts.Rotate(ang, refPln.ZAxis)
  5194. te.Rotate(-ang, refPln.ZAxis)
  5195. Return Curve.CreateInterpolatedCurve(pts, 3, CurveKnotStyle.Chord, ts, te) ' 3rd degree curve with 'Chord' Knot Style
  5196. Else
  5197. Return Curve.CreateInterpolatedCurve(pts, 3) ' if angle (and height) = 0, then simply interpolate the straight line (no start/end tangents)
  5198. End If
  5199. End Function
  5200. ' Implements the Simpson approximation for an integral of function f below
  5201. Public Function Simpson(a As Double, b As Double, n As Integer, theta As Double) As Double 'n should be an even number
  5202. Dim j As Integer, s1 As Double, s2 As Double, h As Double
  5203. h = (b - a) / n
  5204. s1 = 0
  5205. s2 = 0
  5206. For j = 1 To n - 1 Step 2
  5207. s1 = s1 + fn(a + j * h, theta)
  5208. Next j
  5209. For j = 2 To n - 2 Step 2
  5210. s2 = s2 + fn(a + j * h, theta)
  5211. Next j
  5212. Simpson = h / 3 * (fn(a, theta) + 4 * s1 + 2 * s2 + fn(b, theta))
  5213. End Function
  5214. ' Specific calculation for the above integration
  5215. Public Function fn(x As Double, theta As Double) As Double
  5216. fn = Math.Sin(x) / (Math.Sqrt(Math.Sin(theta) - Math.Sin(x))) ' from reference {2} formula (12b)
  5217. End Function
  5218. ' Return the Complete Elliptic integral of the 1st kind
  5219. ' Abramowitz and Stegun p.591, formula 17.3.11
  5220. ' Code from http://www.codeproject.com/Articles/566614/Elliptic-integrals
  5221. Public Function EllipticK(ByVal m As Double) As Double
  5222. Dim sum, term, above, below As Double
  5223. sum = 1
  5224. term = 1
  5225. above = 1
  5226. below = 2
  5227. For i As Integer = 1 To 100
  5228. term *= above / below
  5229. sum += Math.Pow(m, i) * Math.Pow(term, 2)
  5230. above += 2
  5231. below += 2
  5232. Next
  5233. sum *= 0.5 * Math.PI
  5234. Return sum
  5235. End Function
  5236. ' Return the Complete Elliptic integral of the 2nd kind
  5237. ' Abramowitz and Stegun p.591, formula 17.3.12
  5238. ' Code from http://www.codeproject.com/Articles/566614/Elliptic-integrals
  5239. Public Function EllipticE(ByVal m As Double) As Double
  5240. Dim sum, term, above, below As Double
  5241. sum = 1
  5242. term = 1
  5243. above = 1
  5244. below = 2
  5245. For i As Integer = 1 To 100
  5246. term *= above / below
  5247. sum -= Math.Pow(m, i) * Math.Pow(term, 2) / above
  5248. above += 2
  5249. below += 2
  5250. Next
  5251. sum *= 0.5 * Math.PI
  5252. Return sum
  5253. End Function
  5254. Friend Partial NotInheritable Class Defined
  5255. Private Sub New()
  5256. End Sub
  5257. ' Note: most of these values for m and h/L ratio were found with Wolfram Alpha and either specific intercepts (x=0) or local minima/maxima. They should be constant.
  5258. Public Const M_SKETCHY As Double = 0.95 ' value of the m parameter where the curvature near the ends of the curve gets wonky
  5259. Public Const M_MAX As Double = 0.993 ' maximum useful value of the m parameter, above which this algorithm for the form of the curve breaks down
  5260. Public Const M_ZERO_W As Double = 0.826114765984970336 ' value of the m parameter when width = 0
  5261. Public Const M_MAXHEIGHT As Double = 0.701327460663101223 ' value of the m parameter at maximum possible height of the bent rod/wire
  5262. Public Const M_DOUBLE_W As Double = 0.180254422335013983 ' minimum value of the m parameter when two width values are possible for a given height and length
  5263. Public Const DOUBLE_W_HL_RATIO As Double = 0.257342117984635757 ' value of the height/length ratio above which there are two possible width values
  5264. Public Const MAX_HL_RATIO As Double = 0.403140189705650243 ' maximum possible value of the height/length ratio
  5265. Public Const MAXERR As Double = 0.0000000001 ' error tolerance
  5266. Public Const MAXIT As Integer = 100 ' maximum number of iterations
  5267. Public Const ROUNDTO As Integer = 10 ' number of decimal places to round off to
  5268. Public Const CURVEDIVS As Integer = 50 ' number of sample points for building the curve (or half-curve as it were)
  5269. End Class</item>
  5270. <item name="Description" type_name="gh_string" type_code="10">A VB.NET scriptable component</item>
  5271. <item name="EditorPosition" type_name="gh_drawing_point" type_code="30">
  5272. <X>98</X>
  5273. <Y>86</Y>
  5274. </item>
  5275. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  5276. <item name="InstanceGuid" type_name="gh_guid" type_code="9">34e9c6ff-5f0a-453a-89bb-504c40c19604</item>
  5277. <item name="Name" type_name="gh_string" type_code="10">VB Script</item>
  5278. <item name="NickName" type_name="gh_string" type_code="10">VB</item>
  5279. <item name="OutParameter" type_name="gh_bool" type_code="1">true</item>
  5280. <item name="ReferenceCount" type_name="gh_int32" type_code="3">0</item>
  5281. <item name="ScriptSource" type_name="gh_string" type_code="10"> ' -----------------------------------------------------------------
  5282. ' Elastic Bending Script by Will McElwain
  5283. ' Created February 2014
  5284. '
  5285. ' DESCRIPTION:
  5286. ' This beast creates the so-called 'elastica curve', the shape a long, thin rod or wire makes when it is bent elastically (i.e. not permanently). In this case, force
  5287. ' is assumed to only be applied horizontally (which would be in line with the rod at rest) and both ends are assumed to be pinned or hinged meaning they are free
  5288. ' to rotate (as opposed to clamped, when the end tangent angle is fixed, usually horizontally). An interesting finding is that it doesn't matter what the material or
  5289. ' cross-sectional area is, as long as they're uniform along the entire length. Everything makes the same shape when bent as long as it doesn't cross the threshold
  5290. ' from elastic to plastic (permanent) deformation (I don't bother to find that limit here, but can be found if the yield stress for a material is known).
  5291. '
  5292. ' Key to the formulas used in this script are elliptic integrals, specifically K(m), the complete elliptic integral of the first kind, and E(m), the complete elliptic
  5293. ' integral of the second kind. There was a lot of confusion over the 'm' and 'k' parameters for these functions, as some people use them interchangeably, but they are
  5294. ' not the same. m = k^2 (thus k = Sqrt(m)). I try to use the 'm' parameter exclusively to avoid this confusion. Note that there is a unique 'm' parameter for every
  5295. ' configuration/shape of the elastica curve.
  5296. '
  5297. ' This script tries to find that unique 'm' parameter based on the inputs. The algorithm starts with a test version of m, evaluates an expression, say 2*E(m)/K(m)-1,
  5298. ' then compares the result to what it should be (in this case, a known width/length ratio). Iterate until the correct m is found. Once we have m, we can then calculate
  5299. ' all of the other unknowns, then find points that lie on that curve, then interpolate those points for the actual curve. You can also use Wolfram|Alpha as I did to
  5300. ' find the m parameter based on the equations in this script (example here: http://tiny.cc/t4tpbx for when say width=45.2 and length=67.1).
  5301. '
  5302. ' Other notes:
  5303. ' * This script works with negative values for width, which will creat a self-intersecting curve (as it should). The curvature of the elastica starts to break down around
  5304. ' m=0.95 (~154°), but this script will continue to work until M_MAX, m=0.993 (~169°). If you wish to ignore self-intersecting curves, set ignoreSelfIntersecting to True
  5305. ' * When the only known values are length and height, it is actually possible for certain ratios of height to length to have two valid m values (thus 2 possible widths
  5306. ' and angles). This script will return them both.
  5307. ' * Only the first two valid parameters (of the required ones) will be used, meaning if all four are connected (length, width or a PtB, height, and angle), this script will
  5308. ' only use length and width (or a PtB).
  5309. ' * Depending on the magnitude of your inputs (say if they're really small, like if length &lt; 10), you might have to increase the constant ROUNDTO at the bottom
  5310. '
  5311. ' REFERENCES:
  5312. ' {1} "The elastic rod" by M.E. Pacheco Q. &amp; E. Pina, http://www.scielo.org.mx/pdf/rmfe/v53n2/v53n2a8.pdf
  5313. ' {2} "An experiment in nonlinear beam theory" by A. Valiente, http://www.deepdyve.com/lp/doc/I3lwnxdfGz , also here: http://tiny.cc/Valiente_AEiNBT
  5314. ' {3} "Snap buckling, writhing and Loop formation In twisted rods" by V.G.A. GOSS, http://myweb.lsbu.ac.uk/~gossga/thesisFinal.pdf
  5315. ' {4} "Theory of Elastic Stability" by Stephen Timoshenko, http://www.scribd.com/doc/50402462/Timoshenko-Theory-of-Elastic-Stability (start on p. 76)
  5316. '
  5317. ' INPUT:
  5318. ' PtA - First anchor point (required)
  5319. ' PtB - Second anchor point (optional, though 2 out of the 4--length, width, height, angle--need to be specified)
  5320. ' [note that PtB can be the same as PtA (meaning width would be zero)]
  5321. ' [also note that if a different width is additionally specified that's not equal to the distance between PtA and PtB, then the end point will not equal PtB anymore]
  5322. ' Pln - Plane of the bent rod/wire, which bends up in the +y direction. The line between PtA and PtB (if specified) must be parallel to the x-axis of this plane
  5323. '
  5324. ' ** 2 of the following 4 need to be specified **
  5325. ' Len - Length of the rod/wire, which needs to be &gt; 0
  5326. ' Wid - Width between the endpoints of the curve [note: if PtB is specified in addition, and distance between PtA and PtB &lt;&gt; width, the end point will be relocated
  5327. ' Ht - Height of the bent rod/wire (when negative, curve will bend downward, relative to the input plane, instead)
  5328. ' Ang - Inner departure angle or tangent angle (in radians) at the ends of the bent rod/wire. Set up so as width approaches length (thus height approaches zero), angle approaches zero
  5329. '
  5330. ' * Following variables only needed for optional calculating of bending force, not for shape of curve.
  5331. ' E - Young's modulus (modulus of elasticity) in GPa (=N/m^2) (material-specific. for example, 7075 aluminum is roughly 71.7 GPa)
  5332. ' I - Second moment of area (or area moment of inertia) in m^4 (cross-section-specific. for example, a hollow rod
  5333. ' would have I = pi * (outer_diameter^4 - inner_diameter^4) / 32
  5334. ' Note: E*I is also known as flexural rigidity or bending stiffness
  5335. '
  5336. ' OUTPUT:
  5337. ' out - only for debugging messages
  5338. ' Pts - the list of points that approximate the shape of the elastica
  5339. ' Crv - the 3rd-degree curve interpolated from those points (with accurate start &amp; end tangents)
  5340. ' L - the length of the rod/wire
  5341. ' W - the distance (width) between the endpoints of the rod/wire
  5342. ' H - the height of the bent rod/wire
  5343. ' A - the tangent angle at the (start) end of the rod/wire
  5344. ' F - the force needed to hold the rod/wire in a specific shape (based on the material properties &amp; cross-section) **be sure your units for 'I' match your units for the
  5345. ' rest of your inputs (length, width, etc.). Also note that the critical buckling load (force) that makes the rod/wire start to bend can be found at height=0
  5346. '
  5347. ' THANKS TO:
  5348. ' Mårten Nettelbladt (thegeometryofbending.blogspot.com)
  5349. ' Daniel Piker (Kangaroo plugin)
  5350. ' David Rutten (Grasshopper guru)
  5351. ' Euler &amp; Bernoulli (the O.G.'s)
  5352. '
  5353. ' -----------------------------------------------------------------
  5354. Dim ignoreSelfIntersecting As Boolean = False ' set to True if you don't want to output curves where width &lt; 0, which creates a self-intersecting curve
  5355. Dim inCt As Integer = 0 ' count the number of required parameters that are receiving data
  5356. Dim length As Double
  5357. Dim width As System.Object = Nothing ' need to set as Nothing so we can check if it has been assigned a value later
  5358. Dim height As Double
  5359. Dim angle As Double
  5360. Dim m As Double
  5361. Dim multiple_m As New List(Of Double)
  5362. Dim AtoB As Line
  5363. Dim flip_H As Boolean = False ' if height is negative, this flag will be set
  5364. Dim flip_A As Boolean = False ' if angle is negative, this flag will be set
  5365. If Not IsSet("Pln") Then
  5366. Msg("error", "Base plane is not set")
  5367. Return
  5368. End If
  5369. If Not IsSet("PtA") Then
  5370. Msg("error", "Point A is not set")
  5371. Return
  5372. End If
  5373. If Math.Round(Pln.DistanceTo(PtA), Defined.ROUNDTO) &lt;&gt; 0 Then
  5374. Msg("error", "Point A is not on the base plane")
  5375. Return
  5376. End If
  5377. Dim refPlane As Plane = Pln ' create a reference plane = input plane and set the origin of it to PtA in case PtA isn't the origin already
  5378. refPlane.Origin = PtA
  5379. If IsSet("PtB") Then
  5380. If Math.Round(Pln.DistanceTo(PtB), Defined.ROUNDTO) &lt;&gt; 0 Then
  5381. Msg("error", "Point B is not on the base plane")
  5382. Return
  5383. End If
  5384. AtoB = New Line(PtA, PtB)
  5385. If AtoB.Length &lt;&gt; 0 And Not AtoB.Direction.IsPerpendicularTo(Pln.YAxis) Then
  5386. Msg("error", "The line between PtA and PtB is not perpendicular to the Y-axis of the specified plane")
  5387. Return
  5388. End If
  5389. inCt += 1
  5390. If IsSet("Wid") Then Msg("info", "Wid will override the distance between PtA and PtB. If you do not want this to happen, disconnect PtB or Wid.")
  5391. width = PtA.DistanceTo(PtB) ' get the width (distance) between PtA and PtB
  5392. Dim refPtB As Point3d
  5393. refPlane.RemapToPlaneSpace(PtB, refPtB)
  5394. If refPtB.X &lt; 0 Then width = -width ' check if PtB is to the left of PtA...if so, width is negative
  5395. End If
  5396. If IsSet("Len") Then inCt += 1
  5397. If IsSet("Wid") Then inCt += 1
  5398. If IsSet("Ht") Then inCt += 1
  5399. If IsSet("Ang") Then inCt += 1
  5400. If inCt &gt; 2 Then Msg("info", "More parameters set than are required (out of length, width, height, angle). Only using the first two valid ones.")
  5401. ' check for connected/specified inputs. note: only the first two that it comes across will be used
  5402. If IsSet("Len") Then ' if length is specified then...
  5403. If Len &lt;= 0 Then
  5404. Msg("error", "Length cannot be negative or zero")
  5405. Return
  5406. End If
  5407. If IsSet("Wid") Then ' find height &amp; angle based on length and specified width
  5408. If Wid &gt; Len Then
  5409. Msg("error", "Width is greater than length")
  5410. Return
  5411. End If
  5412. If Wid = Len Then ' skip the solver and set the known values
  5413. height = 0
  5414. m = 0
  5415. angle = 0
  5416. width = Wid
  5417. Else
  5418. m = SolveMFromLenWid(Len, Wid)
  5419. height = Cal_H(Len, m) ' L * Sqrt(m) / K(m)
  5420. angle = Cal_A(m) ' Acos(1 - 2 * m)
  5421. width = Wid
  5422. End If
  5423. Else If width IsNot Nothing Then ' find height &amp; angle based on length and calculated width (distance between PtA and PtB)
  5424. If width &gt; Len Then
  5425. Msg("error", "Width is greater than length")
  5426. Return
  5427. End If
  5428. If width = Len Then ' skip the solver and set the known values
  5429. height = 0
  5430. m = 0
  5431. angle = 0
  5432. Else
  5433. m = SolveMFromLenWid(Len, width)
  5434. height = Cal_H(Len, m) ' L * Sqrt(m) / K(m)
  5435. angle = Cal_A(m) ' Acos(1 - 2 * m)
  5436. End If
  5437. Else If IsSet("Ht") Then ' find width &amp; angle based on length and height ** possible to return 2 results **
  5438. If Math.Abs(Ht / Len) &gt; Defined.MAX_HL_RATIO Then
  5439. Msg("error", "Height not possible with given length")
  5440. Return
  5441. End If
  5442. If Ht &lt; 0 Then
  5443. Ht = -Ht ' if height is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  5444. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  5445. flip_A = True
  5446. flip_H = True
  5447. End If
  5448. If Ht = 0 Then ' skip the solver and set the known values
  5449. width = Len
  5450. angle = 0
  5451. Else
  5452. multiple_m = SolveMFromLenHt(Len, Ht) ' note that it's possible for two values of m to be found if height is close to max height
  5453. If multiple_m.Count = 1 Then ' if there's only one m value returned, calculate the width &amp; angle here. we'll deal with multiple m values later
  5454. m = multiple_m.Item(0)
  5455. width = Cal_W(Len, m) ' L * (2 * E(m) / K(m) - 1)
  5456. angle = Cal_A(m) ' Acos(1 - 2 * m)
  5457. End If
  5458. End If
  5459. height = Ht
  5460. Else If IsSet("Ang") Then ' find width &amp; height based on length and angle
  5461. If Ang &lt; 0 Then
  5462. Ang = -Ang ' if angle is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  5463. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  5464. flip_A = True
  5465. flip_H = True
  5466. End If
  5467. m = Cal_M(Ang) ' (1 - Cos(a)) / 2
  5468. If Ang = 0 Then ' skip the solver and set the known values
  5469. width = Len
  5470. height = 0
  5471. Else
  5472. width = Cal_W(Len, m) ' L * (2 * E(m) / K(m) - 1)
  5473. height = Cal_H(Len, m) ' L * Sqrt(m) / K(m)
  5474. End If
  5475. angle = Ang
  5476. Else
  5477. Msg("error", "Need to specify one more parameter in addition to length")
  5478. Return
  5479. End If
  5480. length = Len
  5481. Else If IsSet("Wid") Then ' if width is specified then...
  5482. If IsSet("Ht") Then ' find length &amp; angle based on specified width and height
  5483. If Ht &lt; 0 Then
  5484. Ht = -Ht ' if height is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  5485. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  5486. flip_A = True
  5487. flip_H = True
  5488. End If
  5489. If Ht = 0 Then ' skip the solver and set the known values
  5490. length = Wid
  5491. angle = 0
  5492. Else
  5493. m = SolveMFromWidHt(Wid, Ht)
  5494. length = Cal_L(Ht, m) ' h * K(m) / Sqrt(m)
  5495. angle = Cal_A(m) ' Acos(1 - 2 * m)
  5496. End If
  5497. height = Ht
  5498. Else If IsSet("Ang") Then ' find length &amp; height based on specified width and angle
  5499. If Wid = 0 Then
  5500. Msg("error", "Curve not possible with width = 0 and an angle as inputs")
  5501. Return
  5502. End If
  5503. If Ang &lt; 0 Then
  5504. Ang = -Ang ' if angle is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  5505. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  5506. flip_A = True
  5507. flip_H = True
  5508. End If
  5509. m = Cal_M(Ang) ' (1 - Cos(a)) / 2
  5510. If Ang = 0 Then ' skip the solver and set the known values
  5511. length = Wid
  5512. height = 0
  5513. Else
  5514. length = Wid / (2 * EllipticE(m) / EllipticK(m) - 1)
  5515. If length &lt; 0 Then
  5516. Msg("error", "Curve not possible at specified width and angle (calculated length is negative)")
  5517. Return
  5518. End If
  5519. height = Cal_H(length, m) ' L * Sqrt(m) / K(m)
  5520. End If
  5521. angle = Ang
  5522. Else
  5523. Msg("error", "Need to specify one more parameter in addition to width (Wid)")
  5524. Return
  5525. End If
  5526. width = Wid
  5527. Else If width IsNot Nothing Then ' if width is determined by PtA and PtB then...
  5528. If IsSet("Ht") Then ' find length &amp; angle based on calculated width and height
  5529. If Ht &lt; 0 Then
  5530. Ht = -Ht ' if height is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  5531. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  5532. flip_A = True
  5533. flip_H = True
  5534. End If
  5535. If Ht = 0 Then ' skip the solver and set the known values
  5536. length = width
  5537. angle = 0
  5538. Else
  5539. m = SolveMFromWidHt(width, Ht)
  5540. length = Cal_L(Ht, m) ' h * K(m) / Sqrt(m)
  5541. angle = Cal_A(m) ' Acos(1 - 2 * m)
  5542. End If
  5543. height = Ht
  5544. Else If IsSet("Ang") Then ' find length &amp; height based on calculated width and angle
  5545. If width = 0 Then
  5546. Msg("error", "Curve not possible with width = 0 and an angle as inputs")
  5547. Return
  5548. End If
  5549. If Ang &lt; 0 Then
  5550. Ang = -Ang ' if angle is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  5551. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  5552. flip_A = True
  5553. flip_H = True
  5554. End If
  5555. m = Cal_M(Ang) ' (1 - Cos(a)) / 2
  5556. If Ang = 0 Then ' skip the solver and set the known values
  5557. length = width
  5558. height = 0
  5559. Else
  5560. length = width / (2 * EllipticE(m) / EllipticK(m) - 1)
  5561. If length &lt; 0 Then
  5562. Msg("error", "Curve not possible at specified width and angle (calculated length is negative)")
  5563. Return
  5564. End If
  5565. height = Cal_H(length, m) ' L * Sqrt(m) / K(m)
  5566. End If
  5567. angle = Ang
  5568. Else
  5569. Msg("error", "Need to specify one more parameter in addition to PtA and PtB")
  5570. Return
  5571. End If
  5572. Else If IsSet("Ht") Then ' if height is specified then...
  5573. If IsSet("Ang") Then ' find length &amp; width based on height and angle
  5574. If Ht &lt; 0 Then
  5575. Ht = -Ht ' if height is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  5576. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  5577. flip_H = True
  5578. flip_A = True
  5579. End If
  5580. If Ht = 0 Then
  5581. Msg("error", "Height can't = 0 if only height and angle are specified")
  5582. Return
  5583. Else
  5584. If Ang &lt; 0 Then
  5585. Ang = -Ang ' if angle is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  5586. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  5587. flip_A = Not flip_A
  5588. flip_H = Not flip_H
  5589. End If
  5590. m = Cal_M(Ang) ' (1 - Cos(a)) / 2
  5591. If Ang = 0 Then
  5592. Msg("error", "Angle can't = 0 if only height and angle are specified")
  5593. Return
  5594. Else
  5595. length = Cal_L(Ht, m) ' h * K(m) / Sqrt(m)
  5596. width = Cal_W(length, m) ' L * (2 * E(m) / K(m) - 1)
  5597. End If
  5598. angle = Ang
  5599. End If
  5600. height = Ht
  5601. Else
  5602. Msg("error", "Need to specify one more parameter in addition to height")
  5603. Return
  5604. End If
  5605. Else If IsSet("Ang") Then
  5606. Msg("error", "Need to specify one more parameter in addition to angle")
  5607. Return
  5608. Else
  5609. Msg("error", "Need to specify two of the four parameters: length, width (or PtB), height, and angle")
  5610. Return
  5611. End If
  5612. If m &gt; Defined.M_MAX Then
  5613. Msg("error", "Form of curve not solvable with current algorithm and given inputs")
  5614. Return
  5615. End If
  5616. refPlane.Origin = refPlane.PointAt(width / 2, 0, 0) ' adjust the origin of the reference plane so that the curve is centered about the y-axis (start of the curve is at x = -width/2)
  5617. If multiple_m.Count &gt; 1 Then ' if there is more than one m value returned, calculate the width, angle, and curve for each
  5618. Dim multi_pts As New DataTree(Of Point3d)
  5619. Dim multi_crv As New List(Of Curve)
  5620. Dim tmp_pts As New List(Of Point3d)
  5621. Dim multi_W, multi_A, multi_F As New List(Of Double)
  5622. Dim j As Integer = 0 ' used for creating a new branch (GH_Path) for storing pts which is itself a list of points
  5623. For Each m_val As Double In multiple_m
  5624. width = Cal_W(length, m_val) 'length * (2 * EllipticE(m_val) / EllipticK(m_val) - 1)
  5625. If width &lt; 0 And ignoreSelfIntersecting Then
  5626. Msg("warning", "One curve is self-intersecting. To enable these, set ignoreSelfIntersecting to False")
  5627. Continue For
  5628. End If
  5629. If m_val &gt;= Defined.M_SKETCHY Then Msg("info", "Accuracy of the curve whose width = " &amp; Math.Round(width, 4) &amp; " is not guaranteed")
  5630. angle = Cal_A(m_val) 'Math.Asin(2 * m_val - 1)
  5631. refPlane.Origin = refPlane.PointAt(width / 2, 0, 0) ' adjust the origin of the reference plane so that the curve is centered about the y-axis (start of the curve is at x = -width/2)
  5632. tmp_pts = FindBendForm(length, width, m_val, angle, refPlane)
  5633. multi_pts.AddRange(tmp_pts, New GH_Path(j))
  5634. multi_crv.Add(MakeCurve(tmp_pts, angle, refPlane))
  5635. multi_W.Add(width)
  5636. If flip_A Then angle = -angle
  5637. multi_A.Add(angle)
  5638. E = E * 10 ^ 9 ' Young's modulus input E is in GPa, so we convert to Pa here (= N/m^2)
  5639. multi_F.Add(EllipticK(m_val) ^ 2 * E * I / length ^ 2) ' from reference {4} pg. 79
  5640. j += 1
  5641. refPlane.Origin = PtA ' reset the reference plane origin to PtA for the next m_val
  5642. 'Print("length=" &amp; length &amp; ", width=" &amp; width &amp; ", height=" &amp; height &amp; ", angle=" &amp; angle &amp; ", m=" &amp; m_val &amp; ", k=" &amp; Math.Sqrt(m_val) &amp; ", w/L=" &amp; width / length &amp; ", h/L=" &amp; height / length &amp; ", w/h=" &amp; width / height)
  5643. Next
  5644. ' assign the outputs
  5645. Pts = multi_pts
  5646. Crv = multi_crv
  5647. L = length
  5648. W = multi_W
  5649. If flip_H Then height = -height
  5650. H = height
  5651. A = multi_A
  5652. F = multi_F
  5653. Else ' only deal with the single m value
  5654. If m &gt;= Defined.M_SKETCHY Then Msg("info", "Accuracy of the curve at these parameters is not guaranteed")
  5655. If width &lt; 0 And ignoreSelfIntersecting Then
  5656. Msg("error", "Curve is self-intersecting. To enable these, set ignoreSelfIntersecting to False")
  5657. Return
  5658. End If
  5659. Pts = FindBendForm(length, width, m, angle, refPlane)
  5660. Crv = MakeCurve(pts, angle, refPlane)
  5661. L = length
  5662. W = width
  5663. If flip_H Then height = -height
  5664. H = height
  5665. If flip_A Then angle = -angle
  5666. A = angle
  5667. E = E * 10 ^ 9 ' Young's modulus input E is in GPa, so we convert to Pa here (= N/m^2)
  5668. F = EllipticK(m) ^ 2 * E * I / length ^ 2 ' from reference {4} pg. 79. Note: the critical buckling (that makes the rod/wire start to bend) can be found at height=0 (width=length)
  5669. 'height = Math.Sqrt(((2 * Len / 5) ^ 2 - ((Wid - Len / 5) / 2) ^ 2) ' quick approximation discovered by Mårten of 'Geometry of Bending' fame ( http://tiny.cc/it2pbx )
  5670. 'width = (Len +/- 2 * Math.Sqrt(4 * Len ^ 2 - 25 * Ht ^ 2)) / 5 ' derived from above
  5671. 'length = (2 * Math.Sqrt(15 * Ht ^ 2 + 4 * Wid ^ 2) - Wid) / 3 ' derived from above
  5672. 'Print("length=" &amp; length &amp; ", width=" &amp; width &amp; ", height=" &amp; height &amp; ", angle=" &amp; angle &amp; ", m=" &amp; m &amp; ", k=" &amp; Math.Sqrt(m) &amp; ", w/L=" &amp; width / length &amp; ", h/L=" &amp; height / length &amp; ", w/h=" &amp; width / height)
  5673. End If
  5674. </item>
  5675. </items>
  5676. <chunks count="2">
  5677. <chunk name="Attributes">
  5678. <items count="2">
  5679. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  5680. <X>615</X>
  5681. <Y>822</Y>
  5682. <W>84</W>
  5683. <H>184</H>
  5684. </item>
  5685. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  5686. <X>657</X>
  5687. <Y>914</Y>
  5688. </item>
  5689. </items>
  5690. </chunk>
  5691. <chunk name="ParameterData">
  5692. <items count="19">
  5693. <item name="InputCount" type_name="gh_int32" type_code="3">9</item>
  5694. <item name="InputId" index="0" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  5695. <item name="InputId" index="1" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  5696. <item name="InputId" index="2" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  5697. <item name="InputId" index="3" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  5698. <item name="InputId" index="4" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  5699. <item name="InputId" index="5" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  5700. <item name="InputId" index="6" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  5701. <item name="InputId" index="7" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  5702. <item name="InputId" index="8" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  5703. <item name="OutputCount" type_name="gh_int32" type_code="3">8</item>
  5704. <item name="OutputId" index="0" type_name="gh_guid" type_code="9">3ede854e-c753-40eb-84cb-b48008f14fd4</item>
  5705. <item name="OutputId" index="1" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  5706. <item name="OutputId" index="2" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  5707. <item name="OutputId" index="3" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  5708. <item name="OutputId" index="4" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  5709. <item name="OutputId" index="5" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  5710. <item name="OutputId" index="6" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  5711. <item name="OutputId" index="7" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  5712. </items>
  5713. <chunks count="17">
  5714. <chunk name="InputParam" index="0">
  5715. <items count="11">
  5716. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  5717. <item name="Description" type_name="gh_string" type_code="10">Script Variable PtA</item>
  5718. <item name="InstanceGuid" type_name="gh_guid" type_code="9">e44ef3d7-d80d-4847-b3c9-7145c5d256c7</item>
  5719. <item name="Name" type_name="gh_string" type_code="10">PtA</item>
  5720. <item name="NickName" type_name="gh_string" type_code="10">PtA</item>
  5721. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  5722. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  5723. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  5724. <item name="Source" index="0" type_name="gh_guid" type_code="9">544607c8-b250-4465-bd1a-e6ed510b2090</item>
  5725. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  5726. <item name="TypeHintID" type_name="gh_guid" type_code="9">e1937b56-b1da-4c12-8bd8-e34ee81746ef</item>
  5727. </items>
  5728. <chunks count="1">
  5729. <chunk name="Attributes">
  5730. <items count="2">
  5731. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  5732. <X>617</X>
  5733. <Y>824</Y>
  5734. <W>25</W>
  5735. <H>20</H>
  5736. </item>
  5737. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  5738. <X>631</X>
  5739. <Y>834</Y>
  5740. </item>
  5741. </items>
  5742. </chunk>
  5743. </chunks>
  5744. </chunk>
  5745. <chunk name="InputParam" index="1">
  5746. <items count="10">
  5747. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  5748. <item name="Description" type_name="gh_string" type_code="10">Script Variable PtB</item>
  5749. <item name="InstanceGuid" type_name="gh_guid" type_code="9">f3a5f81b-cbeb-43a5-b9d7-95ddf8329091</item>
  5750. <item name="Name" type_name="gh_string" type_code="10">PtB</item>
  5751. <item name="NickName" type_name="gh_string" type_code="10">PtB</item>
  5752. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  5753. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  5754. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  5755. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  5756. <item name="TypeHintID" type_name="gh_guid" type_code="9">e1937b56-b1da-4c12-8bd8-e34ee81746ef</item>
  5757. </items>
  5758. <chunks count="1">
  5759. <chunk name="Attributes">
  5760. <items count="2">
  5761. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  5762. <X>617</X>
  5763. <Y>844</Y>
  5764. <W>25</W>
  5765. <H>20</H>
  5766. </item>
  5767. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  5768. <X>631</X>
  5769. <Y>854</Y>
  5770. </item>
  5771. </items>
  5772. </chunk>
  5773. </chunks>
  5774. </chunk>
  5775. <chunk name="InputParam" index="2">
  5776. <items count="11">
  5777. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  5778. <item name="Description" type_name="gh_string" type_code="10">Script Variable Pln</item>
  5779. <item name="InstanceGuid" type_name="gh_guid" type_code="9">25fe63c8-a9a1-43dd-ba6c-ff444bb1bd38</item>
  5780. <item name="Name" type_name="gh_string" type_code="10">Pln</item>
  5781. <item name="NickName" type_name="gh_string" type_code="10">Pln</item>
  5782. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  5783. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  5784. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  5785. <item name="Source" index="0" type_name="gh_guid" type_code="9">2e367eec-73c9-49fe-931b-de57feb15198</item>
  5786. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  5787. <item name="TypeHintID" type_name="gh_guid" type_code="9">3897522d-58e9-4d60-b38c-978ddacfedd8</item>
  5788. </items>
  5789. <chunks count="1">
  5790. <chunk name="Attributes">
  5791. <items count="2">
  5792. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  5793. <X>617</X>
  5794. <Y>864</Y>
  5795. <W>25</W>
  5796. <H>20</H>
  5797. </item>
  5798. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  5799. <X>631</X>
  5800. <Y>874</Y>
  5801. </item>
  5802. </items>
  5803. </chunk>
  5804. </chunks>
  5805. </chunk>
  5806. <chunk name="InputParam" index="3">
  5807. <items count="11">
  5808. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  5809. <item name="Description" type_name="gh_string" type_code="10">Script Variable Len</item>
  5810. <item name="InstanceGuid" type_name="gh_guid" type_code="9">c645a879-0d63-4de2-8207-39e77ea0b36a</item>
  5811. <item name="Name" type_name="gh_string" type_code="10">Len</item>
  5812. <item name="NickName" type_name="gh_string" type_code="10">Len</item>
  5813. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  5814. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  5815. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  5816. <item name="Source" index="0" type_name="gh_guid" type_code="9">7e001f0c-1ecd-4198-95f7-0d0278815c2b</item>
  5817. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  5818. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  5819. </items>
  5820. <chunks count="1">
  5821. <chunk name="Attributes">
  5822. <items count="2">
  5823. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  5824. <X>617</X>
  5825. <Y>884</Y>
  5826. <W>25</W>
  5827. <H>20</H>
  5828. </item>
  5829. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  5830. <X>631</X>
  5831. <Y>894</Y>
  5832. </item>
  5833. </items>
  5834. </chunk>
  5835. </chunks>
  5836. </chunk>
  5837. <chunk name="InputParam" index="4">
  5838. <items count="10">
  5839. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  5840. <item name="Description" type_name="gh_string" type_code="10">Script Variable Wid</item>
  5841. <item name="InstanceGuid" type_name="gh_guid" type_code="9">563b27b8-1de0-4076-9540-f1f6287d4585</item>
  5842. <item name="Name" type_name="gh_string" type_code="10">Wid</item>
  5843. <item name="NickName" type_name="gh_string" type_code="10">Wid</item>
  5844. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  5845. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  5846. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  5847. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  5848. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  5849. </items>
  5850. <chunks count="1">
  5851. <chunk name="Attributes">
  5852. <items count="2">
  5853. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  5854. <X>617</X>
  5855. <Y>904</Y>
  5856. <W>25</W>
  5857. <H>20</H>
  5858. </item>
  5859. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  5860. <X>631</X>
  5861. <Y>914</Y>
  5862. </item>
  5863. </items>
  5864. </chunk>
  5865. </chunks>
  5866. </chunk>
  5867. <chunk name="InputParam" index="5">
  5868. <items count="10">
  5869. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  5870. <item name="Description" type_name="gh_string" type_code="10">Script Variable Ht</item>
  5871. <item name="InstanceGuid" type_name="gh_guid" type_code="9">f945874f-3911-45dd-a65b-5931b59aaeda</item>
  5872. <item name="Name" type_name="gh_string" type_code="10">Ht</item>
  5873. <item name="NickName" type_name="gh_string" type_code="10">Ht</item>
  5874. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  5875. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  5876. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  5877. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  5878. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  5879. </items>
  5880. <chunks count="1">
  5881. <chunk name="Attributes">
  5882. <items count="2">
  5883. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  5884. <X>617</X>
  5885. <Y>924</Y>
  5886. <W>25</W>
  5887. <H>20</H>
  5888. </item>
  5889. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  5890. <X>631</X>
  5891. <Y>934</Y>
  5892. </item>
  5893. </items>
  5894. </chunk>
  5895. </chunks>
  5896. </chunk>
  5897. <chunk name="InputParam" index="6">
  5898. <items count="11">
  5899. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  5900. <item name="Description" type_name="gh_string" type_code="10">Script Variable Ang</item>
  5901. <item name="InstanceGuid" type_name="gh_guid" type_code="9">7cbb4f70-f9aa-4f07-bc67-aac4eaace9e1</item>
  5902. <item name="Name" type_name="gh_string" type_code="10">Ang</item>
  5903. <item name="NickName" type_name="gh_string" type_code="10">Ang</item>
  5904. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  5905. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  5906. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  5907. <item name="Source" index="0" type_name="gh_guid" type_code="9">b2a8f43d-df9e-4385-bfbe-4e7a54acdc52</item>
  5908. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  5909. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  5910. </items>
  5911. <chunks count="1">
  5912. <chunk name="Attributes">
  5913. <items count="2">
  5914. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  5915. <X>617</X>
  5916. <Y>944</Y>
  5917. <W>25</W>
  5918. <H>20</H>
  5919. </item>
  5920. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  5921. <X>631</X>
  5922. <Y>954</Y>
  5923. </item>
  5924. </items>
  5925. </chunk>
  5926. </chunks>
  5927. </chunk>
  5928. <chunk name="InputParam" index="7">
  5929. <items count="11">
  5930. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  5931. <item name="Description" type_name="gh_string" type_code="10">Script Variable E</item>
  5932. <item name="InstanceGuid" type_name="gh_guid" type_code="9">757c9fbf-c87a-438c-9240-7ed119111c17</item>
  5933. <item name="Name" type_name="gh_string" type_code="10">E</item>
  5934. <item name="NickName" type_name="gh_string" type_code="10">E</item>
  5935. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  5936. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  5937. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  5938. <item name="Source" index="0" type_name="gh_guid" type_code="9">0068d51d-c81e-4187-8df3-5835ab363a73</item>
  5939. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  5940. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  5941. </items>
  5942. <chunks count="1">
  5943. <chunk name="Attributes">
  5944. <items count="2">
  5945. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  5946. <X>617</X>
  5947. <Y>964</Y>
  5948. <W>25</W>
  5949. <H>20</H>
  5950. </item>
  5951. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  5952. <X>631</X>
  5953. <Y>974</Y>
  5954. </item>
  5955. </items>
  5956. </chunk>
  5957. </chunks>
  5958. </chunk>
  5959. <chunk name="InputParam" index="8">
  5960. <items count="11">
  5961. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  5962. <item name="Description" type_name="gh_string" type_code="10">Script Variable I</item>
  5963. <item name="InstanceGuid" type_name="gh_guid" type_code="9">dfba63c4-6cba-4504-bd15-6d7b03b308e0</item>
  5964. <item name="Name" type_name="gh_string" type_code="10">I</item>
  5965. <item name="NickName" type_name="gh_string" type_code="10">I</item>
  5966. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  5967. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  5968. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  5969. <item name="Source" index="0" type_name="gh_guid" type_code="9">c29e43b1-f147-4596-9a27-65e202efbf44</item>
  5970. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  5971. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  5972. </items>
  5973. <chunks count="1">
  5974. <chunk name="Attributes">
  5975. <items count="2">
  5976. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  5977. <X>617</X>
  5978. <Y>984</Y>
  5979. <W>25</W>
  5980. <H>20</H>
  5981. </item>
  5982. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  5983. <X>631</X>
  5984. <Y>994</Y>
  5985. </item>
  5986. </items>
  5987. </chunk>
  5988. </chunks>
  5989. </chunk>
  5990. <chunk name="OutputParam" index="0">
  5991. <items count="7">
  5992. <item name="Access" type_name="gh_int32" type_code="3">1</item>
  5993. <item name="Description" type_name="gh_string" type_code="10">Print, Reflect and Error streams</item>
  5994. <item name="InstanceGuid" type_name="gh_guid" type_code="9">e74891fd-659b-4fdb-833d-cbae9b2064f7</item>
  5995. <item name="Name" type_name="gh_string" type_code="10">out</item>
  5996. <item name="NickName" type_name="gh_string" type_code="10">out</item>
  5997. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  5998. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  5999. </items>
  6000. <chunks count="1">
  6001. <chunk name="Attributes">
  6002. <items count="2">
  6003. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  6004. <X>672</X>
  6005. <Y>824</Y>
  6006. <W>25</W>
  6007. <H>22</H>
  6008. </item>
  6009. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  6010. <X>684.5</X>
  6011. <Y>835.25</Y>
  6012. </item>
  6013. </items>
  6014. </chunk>
  6015. </chunks>
  6016. </chunk>
  6017. <chunk name="OutputParam" index="1">
  6018. <items count="6">
  6019. <item name="Description" type_name="gh_string" type_code="10">Output parameter Pts</item>
  6020. <item name="InstanceGuid" type_name="gh_guid" type_code="9">74a1959d-f66e-4c81-8b36-b26ed2379bb0</item>
  6021. <item name="Name" type_name="gh_string" type_code="10">Pts</item>
  6022. <item name="NickName" type_name="gh_string" type_code="10">Pts</item>
  6023. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  6024. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  6025. </items>
  6026. <chunks count="1">
  6027. <chunk name="Attributes">
  6028. <items count="2">
  6029. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  6030. <X>672</X>
  6031. <Y>846</Y>
  6032. <W>25</W>
  6033. <H>23</H>
  6034. </item>
  6035. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  6036. <X>684.5</X>
  6037. <Y>857.75</Y>
  6038. </item>
  6039. </items>
  6040. </chunk>
  6041. </chunks>
  6042. </chunk>
  6043. <chunk name="OutputParam" index="2">
  6044. <items count="6">
  6045. <item name="Description" type_name="gh_string" type_code="10">Output parameter Crv</item>
  6046. <item name="InstanceGuid" type_name="gh_guid" type_code="9">9cf1549b-e355-4e34-8c66-56776a6693a3</item>
  6047. <item name="Name" type_name="gh_string" type_code="10">Crv</item>
  6048. <item name="NickName" type_name="gh_string" type_code="10">Crv</item>
  6049. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  6050. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  6051. </items>
  6052. <chunks count="1">
  6053. <chunk name="Attributes">
  6054. <items count="2">
  6055. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  6056. <X>672</X>
  6057. <Y>869</Y>
  6058. <W>25</W>
  6059. <H>22</H>
  6060. </item>
  6061. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  6062. <X>684.5</X>
  6063. <Y>880.25</Y>
  6064. </item>
  6065. </items>
  6066. </chunk>
  6067. </chunks>
  6068. </chunk>
  6069. <chunk name="OutputParam" index="3">
  6070. <items count="6">
  6071. <item name="Description" type_name="gh_string" type_code="10">Output parameter L</item>
  6072. <item name="InstanceGuid" type_name="gh_guid" type_code="9">03e53700-d1d7-480a-9312-c1af517baedd</item>
  6073. <item name="Name" type_name="gh_string" type_code="10">L</item>
  6074. <item name="NickName" type_name="gh_string" type_code="10">L</item>
  6075. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  6076. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  6077. </items>
  6078. <chunks count="1">
  6079. <chunk name="Attributes">
  6080. <items count="2">
  6081. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  6082. <X>672</X>
  6083. <Y>891</Y>
  6084. <W>25</W>
  6085. <H>23</H>
  6086. </item>
  6087. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  6088. <X>684.5</X>
  6089. <Y>902.75</Y>
  6090. </item>
  6091. </items>
  6092. </chunk>
  6093. </chunks>
  6094. </chunk>
  6095. <chunk name="OutputParam" index="4">
  6096. <items count="6">
  6097. <item name="Description" type_name="gh_string" type_code="10">Output parameter W</item>
  6098. <item name="InstanceGuid" type_name="gh_guid" type_code="9">09f794fe-078e-4e7b-840b-9d52b913b097</item>
  6099. <item name="Name" type_name="gh_string" type_code="10">W</item>
  6100. <item name="NickName" type_name="gh_string" type_code="10">W</item>
  6101. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  6102. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  6103. </items>
  6104. <chunks count="1">
  6105. <chunk name="Attributes">
  6106. <items count="2">
  6107. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  6108. <X>672</X>
  6109. <Y>914</Y>
  6110. <W>25</W>
  6111. <H>22</H>
  6112. </item>
  6113. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  6114. <X>684.5</X>
  6115. <Y>925.25</Y>
  6116. </item>
  6117. </items>
  6118. </chunk>
  6119. </chunks>
  6120. </chunk>
  6121. <chunk name="OutputParam" index="5">
  6122. <items count="6">
  6123. <item name="Description" type_name="gh_string" type_code="10">Output parameter H</item>
  6124. <item name="InstanceGuid" type_name="gh_guid" type_code="9">2373426a-a151-4361-9f8e-d19fef664dc8</item>
  6125. <item name="Name" type_name="gh_string" type_code="10">H</item>
  6126. <item name="NickName" type_name="gh_string" type_code="10">H</item>
  6127. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  6128. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  6129. </items>
  6130. <chunks count="1">
  6131. <chunk name="Attributes">
  6132. <items count="2">
  6133. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  6134. <X>672</X>
  6135. <Y>936</Y>
  6136. <W>25</W>
  6137. <H>23</H>
  6138. </item>
  6139. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  6140. <X>684.5</X>
  6141. <Y>947.75</Y>
  6142. </item>
  6143. </items>
  6144. </chunk>
  6145. </chunks>
  6146. </chunk>
  6147. <chunk name="OutputParam" index="6">
  6148. <items count="6">
  6149. <item name="Description" type_name="gh_string" type_code="10">Output parameter A</item>
  6150. <item name="InstanceGuid" type_name="gh_guid" type_code="9">619887fe-9427-4cea-b7fd-0b8e37ad0966</item>
  6151. <item name="Name" type_name="gh_string" type_code="10">A</item>
  6152. <item name="NickName" type_name="gh_string" type_code="10">A</item>
  6153. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  6154. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  6155. </items>
  6156. <chunks count="1">
  6157. <chunk name="Attributes">
  6158. <items count="2">
  6159. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  6160. <X>672</X>
  6161. <Y>959</Y>
  6162. <W>25</W>
  6163. <H>22</H>
  6164. </item>
  6165. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  6166. <X>684.5</X>
  6167. <Y>970.25</Y>
  6168. </item>
  6169. </items>
  6170. </chunk>
  6171. </chunks>
  6172. </chunk>
  6173. <chunk name="OutputParam" index="7">
  6174. <items count="6">
  6175. <item name="Description" type_name="gh_string" type_code="10">Output parameter F</item>
  6176. <item name="InstanceGuid" type_name="gh_guid" type_code="9">20b5374e-e220-4840-8424-dcf1b57d3ad2</item>
  6177. <item name="Name" type_name="gh_string" type_code="10">F</item>
  6178. <item name="NickName" type_name="gh_string" type_code="10">F</item>
  6179. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  6180. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  6181. </items>
  6182. <chunks count="1">
  6183. <chunk name="Attributes">
  6184. <items count="2">
  6185. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  6186. <X>672</X>
  6187. <Y>981</Y>
  6188. <W>25</W>
  6189. <H>23</H>
  6190. </item>
  6191. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  6192. <X>684.5</X>
  6193. <Y>992.75</Y>
  6194. </item>
  6195. </items>
  6196. </chunk>
  6197. </chunks>
  6198. </chunk>
  6199. </chunks>
  6200. </chunk>
  6201. </chunks>
  6202. </chunk>
  6203. </chunks>
  6204. </chunk>
  6205. <chunk name="Object" index="46">
  6206. <items count="2">
  6207. <item name="GUID" type_name="gh_guid" type_code="9">57da07bd-ecab-415d-9d86-af36d7073abc</item>
  6208. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  6209. </items>
  6210. <chunks count="1">
  6211. <chunk name="Container">
  6212. <items count="6">
  6213. <item name="Description" type_name="gh_string" type_code="10">Numeric slider for single values</item>
  6214. <item name="InstanceGuid" type_name="gh_guid" type_code="9">7e001f0c-1ecd-4198-95f7-0d0278815c2b</item>
  6215. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  6216. <item name="NickName" type_name="gh_string" type_code="10">length</item>
  6217. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  6218. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  6219. </items>
  6220. <chunks count="2">
  6221. <chunk name="Attributes">
  6222. <items count="2">
  6223. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  6224. <X>160</X>
  6225. <Y>874</Y>
  6226. <W>382</W>
  6227. <H>20</H>
  6228. </item>
  6229. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  6230. <X>160.4443</X>
  6231. <Y>874.5179</Y>
  6232. </item>
  6233. </items>
  6234. </chunk>
  6235. <chunk name="Slider">
  6236. <items count="7">
  6237. <item name="Digits" type_name="gh_int32" type_code="3">2</item>
  6238. <item name="GripDisplay" type_name="gh_int32" type_code="3">1</item>
  6239. <item name="Interval" type_name="gh_int32" type_code="3">0</item>
  6240. <item name="Max" type_name="gh_double" type_code="6">400</item>
  6241. <item name="Min" type_name="gh_double" type_code="6">0</item>
  6242. <item name="SnapCount" type_name="gh_int32" type_code="3">0</item>
  6243. <item name="Value" type_name="gh_double" type_code="6">145.76</item>
  6244. </items>
  6245. </chunk>
  6246. </chunks>
  6247. </chunk>
  6248. </chunks>
  6249. </chunk>
  6250. <chunk name="Object" index="47">
  6251. <items count="2">
  6252. <item name="GUID" type_name="gh_guid" type_code="9">fbac3e32-f100-4292-8692-77240a42fd1a</item>
  6253. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  6254. </items>
  6255. <chunks count="1">
  6256. <chunk name="Container">
  6257. <items count="8">
  6258. <item name="Description" type_name="gh_string" type_code="10">Contains a collection of three-dimensional points</item>
  6259. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  6260. <item name="InstanceGuid" type_name="gh_guid" type_code="9">37000574-d15c-4f7d-92d9-b148cb8b434c</item>
  6261. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  6262. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  6263. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  6264. <item name="Source" index="0" type_name="gh_guid" type_code="9">74a1959d-f66e-4c81-8b36-b26ed2379bb0</item>
  6265. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  6266. </items>
  6267. <chunks count="1">
  6268. <chunk name="Attributes">
  6269. <items count="2">
  6270. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  6271. <X>784</X>
  6272. <Y>791</Y>
  6273. <W>50</W>
  6274. <H>24</H>
  6275. </item>
  6276. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  6277. <X>809.0988</X>
  6278. <Y>803.2372</Y>
  6279. </item>
  6280. </items>
  6281. </chunk>
  6282. </chunks>
  6283. </chunk>
  6284. </chunks>
  6285. </chunk>
  6286. <chunk name="Object" index="48">
  6287. <items count="2">
  6288. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  6289. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  6290. </items>
  6291. <chunks count="1">
  6292. <chunk name="Container">
  6293. <items count="9">
  6294. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  6295. <item name="InstanceGuid" type_name="gh_guid" type_code="9">982de226-ec32-4b13-b043-f53881d2e028</item>
  6296. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  6297. <item name="NickName" type_name="gh_string" type_code="10"></item>
  6298. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  6299. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  6300. <item name="Source" index="0" type_name="gh_guid" type_code="9">1487d807-5f9b-4abc-9b8d-effa22608b5d</item>
  6301. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  6302. <item name="UserText" type_name="gh_string" type_code="10">Double click to edit panel content…</item>
  6303. </items>
  6304. <chunks count="2">
  6305. <chunk name="Attributes">
  6306. <items count="5">
  6307. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  6308. <X>849</X>
  6309. <Y>986</Y>
  6310. <W>105</W>
  6311. <H>55</H>
  6312. </item>
  6313. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  6314. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  6315. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  6316. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  6317. <X>849.9546</X>
  6318. <Y>986.3983</Y>
  6319. </item>
  6320. </items>
  6321. </chunk>
  6322. <chunk name="PanelProperties">
  6323. <items count="7">
  6324. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  6325. <ARGB>255;255;250;90</ARGB>
  6326. </item>
  6327. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  6328. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  6329. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  6330. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  6331. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  6332. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  6333. </items>
  6334. </chunk>
  6335. </chunks>
  6336. </chunk>
  6337. </chunks>
  6338. </chunk>
  6339. <chunk name="Object" index="49">
  6340. <items count="2">
  6341. <item name="GUID" type_name="gh_guid" type_code="9">0d77c51e-584f-44e8-aed2-c2ddf4803888</item>
  6342. <item name="Name" type_name="gh_string" type_code="10">Degrees</item>
  6343. </items>
  6344. <chunks count="1">
  6345. <chunk name="Container">
  6346. <items count="4">
  6347. <item name="Description" type_name="gh_string" type_code="10">Convert an angle specified in radians to degrees</item>
  6348. <item name="InstanceGuid" type_name="gh_guid" type_code="9">f53628df-d187-47f6-8939-9a7cff89ea30</item>
  6349. <item name="Name" type_name="gh_string" type_code="10">Degrees</item>
  6350. <item name="NickName" type_name="gh_string" type_code="10">Deg</item>
  6351. </items>
  6352. <chunks count="3">
  6353. <chunk name="Attributes">
  6354. <items count="2">
  6355. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  6356. <X>764</X>
  6357. <Y>997</Y>
  6358. <W>64</W>
  6359. <H>28</H>
  6360. </item>
  6361. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  6362. <X>794</X>
  6363. <Y>1011</Y>
  6364. </item>
  6365. </items>
  6366. </chunk>
  6367. <chunk name="param_input" index="0">
  6368. <items count="7">
  6369. <item name="Description" type_name="gh_string" type_code="10">Angle in radians</item>
  6370. <item name="InstanceGuid" type_name="gh_guid" type_code="9">6e9d9246-ea82-40e7-a5c7-6200a0750140</item>
  6371. <item name="Name" type_name="gh_string" type_code="10">Radians</item>
  6372. <item name="NickName" type_name="gh_string" type_code="10">R</item>
  6373. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  6374. <item name="Source" index="0" type_name="gh_guid" type_code="9">619887fe-9427-4cea-b7fd-0b8e37ad0966</item>
  6375. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  6376. </items>
  6377. <chunks count="1">
  6378. <chunk name="Attributes">
  6379. <items count="2">
  6380. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  6381. <X>766</X>
  6382. <Y>999</Y>
  6383. <W>13</W>
  6384. <H>24</H>
  6385. </item>
  6386. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  6387. <X>774</X>
  6388. <Y>1011</Y>
  6389. </item>
  6390. </items>
  6391. </chunk>
  6392. </chunks>
  6393. </chunk>
  6394. <chunk name="param_output" index="0">
  6395. <items count="6">
  6396. <item name="Description" type_name="gh_string" type_code="10">Angle in degrees</item>
  6397. <item name="InstanceGuid" type_name="gh_guid" type_code="9">1487d807-5f9b-4abc-9b8d-effa22608b5d</item>
  6398. <item name="Name" type_name="gh_string" type_code="10">Degrees</item>
  6399. <item name="NickName" type_name="gh_string" type_code="10">D</item>
  6400. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  6401. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  6402. </items>
  6403. <chunks count="1">
  6404. <chunk name="Attributes">
  6405. <items count="2">
  6406. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  6407. <X>809</X>
  6408. <Y>999</Y>
  6409. <W>17</W>
  6410. <H>24</H>
  6411. </item>
  6412. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  6413. <X>817.5</X>
  6414. <Y>1011</Y>
  6415. </item>
  6416. </items>
  6417. </chunk>
  6418. </chunks>
  6419. </chunk>
  6420. </chunks>
  6421. </chunk>
  6422. </chunks>
  6423. </chunk>
  6424. <chunk name="Object" index="50">
  6425. <items count="2">
  6426. <item name="GUID" type_name="gh_guid" type_code="9">3581f42a-9592-4549-bd6b-1c0fc39d067b</item>
  6427. <item name="Name" type_name="gh_string" type_code="10">Construct Point</item>
  6428. </items>
  6429. <chunks count="1">
  6430. <chunk name="Container">
  6431. <items count="4">
  6432. <item name="Description" type_name="gh_string" type_code="10">Construct a point from {xyz} coordinates.</item>
  6433. <item name="InstanceGuid" type_name="gh_guid" type_code="9">f1c497f2-a656-46bd-97ff-e6f55517ad83</item>
  6434. <item name="Name" type_name="gh_string" type_code="10">Construct Point</item>
  6435. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  6436. </items>
  6437. <chunks count="5">
  6438. <chunk name="Attributes">
  6439. <items count="2">
  6440. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  6441. <X>390</X>
  6442. <Y>743</Y>
  6443. <W>67</W>
  6444. <H>64</H>
  6445. </item>
  6446. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  6447. <X>421</X>
  6448. <Y>775</Y>
  6449. </item>
  6450. </items>
  6451. </chunk>
  6452. <chunk name="param_input" index="0">
  6453. <items count="6">
  6454. <item name="Description" type_name="gh_string" type_code="10">{x} coordinate</item>
  6455. <item name="InstanceGuid" type_name="gh_guid" type_code="9">f274b47b-1218-4782-8247-527101e3221f</item>
  6456. <item name="Name" type_name="gh_string" type_code="10">X coordinate</item>
  6457. <item name="NickName" type_name="gh_string" type_code="10">X</item>
  6458. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  6459. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  6460. </items>
  6461. <chunks count="2">
  6462. <chunk name="Attributes">
  6463. <items count="2">
  6464. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  6465. <X>392</X>
  6466. <Y>745</Y>
  6467. <W>14</W>
  6468. <H>20</H>
  6469. </item>
  6470. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  6471. <X>400.5</X>
  6472. <Y>755</Y>
  6473. </item>
  6474. </items>
  6475. </chunk>
  6476. <chunk name="PersistentData">
  6477. <items count="1">
  6478. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  6479. </items>
  6480. <chunks count="1">
  6481. <chunk name="Branch" index="0">
  6482. <items count="2">
  6483. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  6484. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  6485. </items>
  6486. <chunks count="1">
  6487. <chunk name="Item" index="0">
  6488. <items count="1">
  6489. <item name="number" type_name="gh_double" type_code="6">0</item>
  6490. </items>
  6491. </chunk>
  6492. </chunks>
  6493. </chunk>
  6494. </chunks>
  6495. </chunk>
  6496. </chunks>
  6497. </chunk>
  6498. <chunk name="param_input" index="1">
  6499. <items count="7">
  6500. <item name="Description" type_name="gh_string" type_code="10">{y} coordinate</item>
  6501. <item name="InstanceGuid" type_name="gh_guid" type_code="9">8bb61e7c-9fbb-42a5-be49-c22980dcde8c</item>
  6502. <item name="Name" type_name="gh_string" type_code="10">Y coordinate</item>
  6503. <item name="NickName" type_name="gh_string" type_code="10">Y</item>
  6504. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  6505. <item name="Source" index="0" type_name="gh_guid" type_code="9">fd7d6e04-d8e1-46ec-9660-5d3b6392bb5c</item>
  6506. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  6507. </items>
  6508. <chunks count="2">
  6509. <chunk name="Attributes">
  6510. <items count="2">
  6511. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  6512. <X>392</X>
  6513. <Y>765</Y>
  6514. <W>14</W>
  6515. <H>20</H>
  6516. </item>
  6517. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  6518. <X>400.5</X>
  6519. <Y>775</Y>
  6520. </item>
  6521. </items>
  6522. </chunk>
  6523. <chunk name="PersistentData">
  6524. <items count="1">
  6525. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  6526. </items>
  6527. <chunks count="1">
  6528. <chunk name="Branch" index="0">
  6529. <items count="2">
  6530. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  6531. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  6532. </items>
  6533. <chunks count="1">
  6534. <chunk name="Item" index="0">
  6535. <items count="1">
  6536. <item name="number" type_name="gh_double" type_code="6">-100</item>
  6537. </items>
  6538. </chunk>
  6539. </chunks>
  6540. </chunk>
  6541. </chunks>
  6542. </chunk>
  6543. </chunks>
  6544. </chunk>
  6545. <chunk name="param_input" index="2">
  6546. <items count="6">
  6547. <item name="Description" type_name="gh_string" type_code="10">{z} coordinate</item>
  6548. <item name="InstanceGuid" type_name="gh_guid" type_code="9">fd7813a9-1054-41ca-9f6b-83a5fd0efcce</item>
  6549. <item name="Name" type_name="gh_string" type_code="10">Z coordinate</item>
  6550. <item name="NickName" type_name="gh_string" type_code="10">Z</item>
  6551. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  6552. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  6553. </items>
  6554. <chunks count="2">
  6555. <chunk name="Attributes">
  6556. <items count="2">
  6557. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  6558. <X>392</X>
  6559. <Y>785</Y>
  6560. <W>14</W>
  6561. <H>20</H>
  6562. </item>
  6563. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  6564. <X>400.5</X>
  6565. <Y>795</Y>
  6566. </item>
  6567. </items>
  6568. </chunk>
  6569. <chunk name="PersistentData">
  6570. <items count="1">
  6571. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  6572. </items>
  6573. <chunks count="1">
  6574. <chunk name="Branch" index="0">
  6575. <items count="2">
  6576. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  6577. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  6578. </items>
  6579. <chunks count="1">
  6580. <chunk name="Item" index="0">
  6581. <items count="1">
  6582. <item name="number" type_name="gh_double" type_code="6">0</item>
  6583. </items>
  6584. </chunk>
  6585. </chunks>
  6586. </chunk>
  6587. </chunks>
  6588. </chunk>
  6589. </chunks>
  6590. </chunk>
  6591. <chunk name="param_output" index="0">
  6592. <items count="6">
  6593. <item name="Description" type_name="gh_string" type_code="10">Point coordinate</item>
  6594. <item name="InstanceGuid" type_name="gh_guid" type_code="9">544607c8-b250-4465-bd1a-e6ed510b2090</item>
  6595. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  6596. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  6597. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  6598. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  6599. </items>
  6600. <chunks count="1">
  6601. <chunk name="Attributes">
  6602. <items count="2">
  6603. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  6604. <X>436</X>
  6605. <Y>745</Y>
  6606. <W>19</W>
  6607. <H>60</H>
  6608. </item>
  6609. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  6610. <X>445.5</X>
  6611. <Y>775</Y>
  6612. </item>
  6613. </items>
  6614. </chunk>
  6615. </chunks>
  6616. </chunk>
  6617. </chunks>
  6618. </chunk>
  6619. </chunks>
  6620. </chunk>
  6621. <chunk name="Object" index="51">
  6622. <items count="2">
  6623. <item name="GUID" type_name="gh_guid" type_code="9">d5967b9f-e8ee-436b-a8ad-29fdcecf32d5</item>
  6624. <item name="Name" type_name="gh_string" type_code="10">Curve</item>
  6625. </items>
  6626. <chunks count="1">
  6627. <chunk name="Container">
  6628. <items count="7">
  6629. <item name="Description" type_name="gh_string" type_code="10">Contains a collection of generic curves</item>
  6630. <item name="InstanceGuid" type_name="gh_guid" type_code="9">12b4fe3c-7f43-444b-be77-19b89104763b</item>
  6631. <item name="Name" type_name="gh_string" type_code="10">Curve</item>
  6632. <item name="NickName" type_name="gh_string" type_code="10">Crv</item>
  6633. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  6634. <item name="Source" index="0" type_name="gh_guid" type_code="9">9cf1549b-e355-4e34-8c66-56776a6693a3</item>
  6635. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  6636. </items>
  6637. <chunks count="1">
  6638. <chunk name="Attributes">
  6639. <items count="2">
  6640. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  6641. <X>784</X>
  6642. <Y>825</Y>
  6643. <W>50</W>
  6644. <H>24</H>
  6645. </item>
  6646. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  6647. <X>809.8876</X>
  6648. <Y>837.7669</Y>
  6649. </item>
  6650. </items>
  6651. </chunk>
  6652. </chunks>
  6653. </chunk>
  6654. </chunks>
  6655. </chunk>
  6656. <chunk name="Object" index="52">
  6657. <items count="2">
  6658. <item name="GUID" type_name="gh_guid" type_code="9">17b7152b-d30d-4d50-b9ef-c9fe25576fc2</item>
  6659. <item name="Name" type_name="gh_string" type_code="10">XY Plane</item>
  6660. </items>
  6661. <chunks count="1">
  6662. <chunk name="Container">
  6663. <items count="5">
  6664. <item name="Description" type_name="gh_string" type_code="10">World XY plane.</item>
  6665. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  6666. <item name="InstanceGuid" type_name="gh_guid" type_code="9">8cd68a99-5c0c-40f6-8f6c-c57b65a7c0fb</item>
  6667. <item name="Name" type_name="gh_string" type_code="10">XY Plane</item>
  6668. <item name="NickName" type_name="gh_string" type_code="10">XY</item>
  6669. </items>
  6670. <chunks count="3">
  6671. <chunk name="Attributes">
  6672. <items count="2">
  6673. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  6674. <X>492</X>
  6675. <Y>837</Y>
  6676. <W>64</W>
  6677. <H>28</H>
  6678. </item>
  6679. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  6680. <X>523</X>
  6681. <Y>851</Y>
  6682. </item>
  6683. </items>
  6684. </chunk>
  6685. <chunk name="param_input" index="0">
  6686. <items count="7">
  6687. <item name="Description" type_name="gh_string" type_code="10">Origin of plane</item>
  6688. <item name="InstanceGuid" type_name="gh_guid" type_code="9">d599495e-da0d-4b5f-96ca-d429779f4f7e</item>
  6689. <item name="Name" type_name="gh_string" type_code="10">Origin</item>
  6690. <item name="NickName" type_name="gh_string" type_code="10">O</item>
  6691. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  6692. <item name="Source" index="0" type_name="gh_guid" type_code="9">544607c8-b250-4465-bd1a-e6ed510b2090</item>
  6693. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  6694. </items>
  6695. <chunks count="2">
  6696. <chunk name="Attributes">
  6697. <items count="2">
  6698. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  6699. <X>494</X>
  6700. <Y>839</Y>
  6701. <W>14</W>
  6702. <H>24</H>
  6703. </item>
  6704. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  6705. <X>502.5</X>
  6706. <Y>851</Y>
  6707. </item>
  6708. </items>
  6709. </chunk>
  6710. <chunk name="PersistentData">
  6711. <items count="1">
  6712. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  6713. </items>
  6714. <chunks count="1">
  6715. <chunk name="Branch" index="0">
  6716. <items count="2">
  6717. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  6718. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  6719. </items>
  6720. <chunks count="1">
  6721. <chunk name="Item" index="0">
  6722. <!--GH_Point only stores data which exists, test the existence of data fields prior to reading.-->
  6723. <items count="1">
  6724. <item name="Coordinate" type_name="gh_point3d" type_code="51">
  6725. <X>0</X>
  6726. <Y>0</Y>
  6727. <Z>0</Z>
  6728. </item>
  6729. </items>
  6730. </chunk>
  6731. </chunks>
  6732. </chunk>
  6733. </chunks>
  6734. </chunk>
  6735. </chunks>
  6736. </chunk>
  6737. <chunk name="param_output" index="0">
  6738. <items count="6">
  6739. <item name="Description" type_name="gh_string" type_code="10">World XY plane</item>
  6740. <item name="InstanceGuid" type_name="gh_guid" type_code="9">2e367eec-73c9-49fe-931b-de57feb15198</item>
  6741. <item name="Name" type_name="gh_string" type_code="10">Plane</item>
  6742. <item name="NickName" type_name="gh_string" type_code="10">P</item>
  6743. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  6744. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  6745. </items>
  6746. <chunks count="1">
  6747. <chunk name="Attributes">
  6748. <items count="2">
  6749. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  6750. <X>538</X>
  6751. <Y>839</Y>
  6752. <W>16</W>
  6753. <H>24</H>
  6754. </item>
  6755. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  6756. <X>546</X>
  6757. <Y>851</Y>
  6758. </item>
  6759. </items>
  6760. </chunk>
  6761. </chunks>
  6762. </chunk>
  6763. </chunks>
  6764. </chunk>
  6765. </chunks>
  6766. </chunk>
  6767. <chunk name="Object" index="53">
  6768. <items count="2">
  6769. <item name="GUID" type_name="gh_guid" type_code="9">a4cd2751-414d-42ec-8916-476ebf62d7fe</item>
  6770. <item name="Name" type_name="gh_string" type_code="10">Radians</item>
  6771. </items>
  6772. <chunks count="1">
  6773. <chunk name="Container">
  6774. <items count="4">
  6775. <item name="Description" type_name="gh_string" type_code="10">Convert an angle specified in degrees to radians</item>
  6776. <item name="InstanceGuid" type_name="gh_guid" type_code="9">0de50cbe-99d5-4598-bc61-8cc3eacb616f</item>
  6777. <item name="Name" type_name="gh_string" type_code="10">Radians</item>
  6778. <item name="NickName" type_name="gh_string" type_code="10">Rad</item>
  6779. </items>
  6780. <chunks count="3">
  6781. <chunk name="Attributes">
  6782. <items count="2">
  6783. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  6784. <X>481</X>
  6785. <Y>954</Y>
  6786. <W>64</W>
  6787. <H>28</H>
  6788. </item>
  6789. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  6790. <X>512</X>
  6791. <Y>968</Y>
  6792. </item>
  6793. </items>
  6794. </chunk>
  6795. <chunk name="param_input" index="0">
  6796. <items count="7">
  6797. <item name="Description" type_name="gh_string" type_code="10">Angle in degrees</item>
  6798. <item name="InstanceGuid" type_name="gh_guid" type_code="9">8514650b-5a4b-4bd4-b272-4db0089c786a</item>
  6799. <item name="Name" type_name="gh_string" type_code="10">Degrees</item>
  6800. <item name="NickName" type_name="gh_string" type_code="10">D</item>
  6801. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  6802. <item name="Source" index="0" type_name="gh_guid" type_code="9">5eda29cf-b445-43dc-9fe0-d002172bab75</item>
  6803. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  6804. </items>
  6805. <chunks count="1">
  6806. <chunk name="Attributes">
  6807. <items count="2">
  6808. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  6809. <X>483</X>
  6810. <Y>956</Y>
  6811. <W>14</W>
  6812. <H>24</H>
  6813. </item>
  6814. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  6815. <X>491.5</X>
  6816. <Y>968</Y>
  6817. </item>
  6818. </items>
  6819. </chunk>
  6820. </chunks>
  6821. </chunk>
  6822. <chunk name="param_output" index="0">
  6823. <items count="6">
  6824. <item name="Description" type_name="gh_string" type_code="10">Angle in radians</item>
  6825. <item name="InstanceGuid" type_name="gh_guid" type_code="9">b2a8f43d-df9e-4385-bfbe-4e7a54acdc52</item>
  6826. <item name="Name" type_name="gh_string" type_code="10">Radians</item>
  6827. <item name="NickName" type_name="gh_string" type_code="10">R</item>
  6828. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  6829. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  6830. </items>
  6831. <chunks count="1">
  6832. <chunk name="Attributes">
  6833. <items count="2">
  6834. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  6835. <X>527</X>
  6836. <Y>956</Y>
  6837. <W>16</W>
  6838. <H>24</H>
  6839. </item>
  6840. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  6841. <X>535</X>
  6842. <Y>968</Y>
  6843. </item>
  6844. </items>
  6845. </chunk>
  6846. </chunks>
  6847. </chunk>
  6848. </chunks>
  6849. </chunk>
  6850. </chunks>
  6851. </chunk>
  6852. <chunk name="Object" index="54">
  6853. <items count="2">
  6854. <item name="GUID" type_name="gh_guid" type_code="9">57da07bd-ecab-415d-9d86-af36d7073abc</item>
  6855. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  6856. </items>
  6857. <chunks count="1">
  6858. <chunk name="Container">
  6859. <items count="6">
  6860. <item name="Description" type_name="gh_string" type_code="10">Numeric slider for single values</item>
  6861. <item name="InstanceGuid" type_name="gh_guid" type_code="9">5eda29cf-b445-43dc-9fe0-d002172bab75</item>
  6862. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  6863. <item name="NickName" type_name="gh_string" type_code="10">angle °</item>
  6864. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  6865. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  6866. </items>
  6867. <chunks count="2">
  6868. <chunk name="Attributes">
  6869. <items count="2">
  6870. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  6871. <X>167</X>
  6872. <Y>960</Y>
  6873. <W>295</W>
  6874. <H>20</H>
  6875. </item>
  6876. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  6877. <X>167.2024</X>
  6878. <Y>960.4379</Y>
  6879. </item>
  6880. </items>
  6881. </chunk>
  6882. <chunk name="Slider">
  6883. <items count="7">
  6884. <item name="Digits" type_name="gh_int32" type_code="3">2</item>
  6885. <item name="GripDisplay" type_name="gh_int32" type_code="3">1</item>
  6886. <item name="Interval" type_name="gh_int32" type_code="3">0</item>
  6887. <item name="Max" type_name="gh_double" type_code="6">170</item>
  6888. <item name="Min" type_name="gh_double" type_code="6">0</item>
  6889. <item name="SnapCount" type_name="gh_int32" type_code="3">0</item>
  6890. <item name="Value" type_name="gh_double" type_code="6">60</item>
  6891. </items>
  6892. </chunk>
  6893. </chunks>
  6894. </chunk>
  6895. </chunks>
  6896. </chunk>
  6897. <chunk name="Object" index="55">
  6898. <items count="2">
  6899. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  6900. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  6901. </items>
  6902. <chunks count="1">
  6903. <chunk name="Container">
  6904. <items count="9">
  6905. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  6906. <item name="InstanceGuid" type_name="gh_guid" type_code="9">e59fa8de-3b01-40cb-9090-35007fc19bba</item>
  6907. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  6908. <item name="NickName" type_name="gh_string" type_code="10"></item>
  6909. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  6910. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  6911. <item name="Source" index="0" type_name="gh_guid" type_code="9">03e53700-d1d7-480a-9312-c1af517baedd</item>
  6912. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  6913. <item name="UserText" type_name="gh_string" type_code="10">Double click to edit panel content…</item>
  6914. </items>
  6915. <chunks count="2">
  6916. <chunk name="Attributes">
  6917. <items count="5">
  6918. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  6919. <X>739</X>
  6920. <Y>877</Y>
  6921. <W>97</W>
  6922. <H>38</H>
  6923. </item>
  6924. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  6925. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  6926. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  6927. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  6928. <X>739.8782</X>
  6929. <Y>877.1644</Y>
  6930. </item>
  6931. </items>
  6932. </chunk>
  6933. <chunk name="PanelProperties">
  6934. <items count="7">
  6935. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  6936. <ARGB>255;255;250;90</ARGB>
  6937. </item>
  6938. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  6939. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  6940. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  6941. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  6942. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  6943. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  6944. </items>
  6945. </chunk>
  6946. </chunks>
  6947. </chunk>
  6948. </chunks>
  6949. </chunk>
  6950. <chunk name="Object" index="56">
  6951. <items count="2">
  6952. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  6953. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  6954. </items>
  6955. <chunks count="1">
  6956. <chunk name="Container">
  6957. <items count="9">
  6958. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  6959. <item name="InstanceGuid" type_name="gh_guid" type_code="9">552a2357-924c-4919-bc11-da8244c7b3c6</item>
  6960. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  6961. <item name="NickName" type_name="gh_string" type_code="10"></item>
  6962. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  6963. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  6964. <item name="Source" index="0" type_name="gh_guid" type_code="9">09f794fe-078e-4e7b-840b-9d52b913b097</item>
  6965. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  6966. <item name="UserText" type_name="gh_string" type_code="10">Double click to edit panel content…</item>
  6967. </items>
  6968. <chunks count="2">
  6969. <chunk name="Attributes">
  6970. <items count="5">
  6971. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  6972. <X>850</X>
  6973. <Y>902</Y>
  6974. <W>105</W>
  6975. <H>55</H>
  6976. </item>
  6977. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  6978. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  6979. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  6980. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  6981. <X>850.7964</X>
  6982. <Y>902.0322</Y>
  6983. </item>
  6984. </items>
  6985. </chunk>
  6986. <chunk name="PanelProperties">
  6987. <items count="7">
  6988. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  6989. <ARGB>255;255;250;90</ARGB>
  6990. </item>
  6991. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  6992. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  6993. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  6994. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  6995. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  6996. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  6997. </items>
  6998. </chunk>
  6999. </chunks>
  7000. </chunk>
  7001. </chunks>
  7002. </chunk>
  7003. <chunk name="Object" index="57">
  7004. <items count="2">
  7005. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  7006. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  7007. </items>
  7008. <chunks count="1">
  7009. <chunk name="Container">
  7010. <items count="9">
  7011. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  7012. <item name="InstanceGuid" type_name="gh_guid" type_code="9">7d007978-016f-4867-9bef-68c359c70508</item>
  7013. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  7014. <item name="NickName" type_name="gh_string" type_code="10"></item>
  7015. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  7016. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  7017. <item name="Source" index="0" type_name="gh_guid" type_code="9">2373426a-a151-4361-9f8e-d19fef664dc8</item>
  7018. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  7019. <item name="UserText" type_name="gh_string" type_code="10">Double click to edit panel content…</item>
  7020. </items>
  7021. <chunks count="2">
  7022. <chunk name="Attributes">
  7023. <items count="5">
  7024. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  7025. <X>738</X>
  7026. <Y>937</Y>
  7027. <W>97</W>
  7028. <H>38</H>
  7029. </item>
  7030. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  7031. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  7032. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  7033. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  7034. <X>738.8221</X>
  7035. <Y>937.5484</Y>
  7036. </item>
  7037. </items>
  7038. </chunk>
  7039. <chunk name="PanelProperties">
  7040. <items count="7">
  7041. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  7042. <ARGB>255;255;250;90</ARGB>
  7043. </item>
  7044. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  7045. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  7046. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  7047. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  7048. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  7049. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  7050. </items>
  7051. </chunk>
  7052. </chunks>
  7053. </chunk>
  7054. </chunks>
  7055. </chunk>
  7056. <chunk name="Object" index="58">
  7057. <items count="2">
  7058. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  7059. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  7060. </items>
  7061. <chunks count="1">
  7062. <chunk name="Container">
  7063. <items count="8">
  7064. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  7065. <item name="InstanceGuid" type_name="gh_guid" type_code="9">6f2330d2-0e46-4e09-9ac5-7b7d2a1d3954</item>
  7066. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  7067. <item name="NickName" type_name="gh_string" type_code="10"></item>
  7068. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  7069. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  7070. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  7071. <item name="UserText" type_name="gh_string" type_code="10">0.5</item>
  7072. </items>
  7073. <chunks count="2">
  7074. <chunk name="Attributes">
  7075. <items count="5">
  7076. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  7077. <X>988</X>
  7078. <Y>843</Y>
  7079. <W>50</W>
  7080. <H>20</H>
  7081. </item>
  7082. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  7083. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  7084. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  7085. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  7086. <X>988.351</X>
  7087. <Y>843.602</Y>
  7088. </item>
  7089. </items>
  7090. </chunk>
  7091. <chunk name="PanelProperties">
  7092. <items count="7">
  7093. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  7094. <ARGB>255;255;250;90</ARGB>
  7095. </item>
  7096. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  7097. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  7098. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  7099. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  7100. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  7101. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  7102. </items>
  7103. </chunk>
  7104. </chunks>
  7105. </chunk>
  7106. </chunks>
  7107. </chunk>
  7108. <chunk name="Object" index="59">
  7109. <items count="2">
  7110. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  7111. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  7112. </items>
  7113. <chunks count="1">
  7114. <chunk name="Container">
  7115. <items count="8">
  7116. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  7117. <item name="InstanceGuid" type_name="gh_guid" type_code="9">fd7d6e04-d8e1-46ec-9660-5d3b6392bb5c</item>
  7118. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  7119. <item name="NickName" type_name="gh_string" type_code="10"></item>
  7120. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  7121. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  7122. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  7123. <item name="UserText" type_name="gh_string" type_code="10">-100</item>
  7124. </items>
  7125. <chunks count="2">
  7126. <chunk name="Attributes">
  7127. <items count="5">
  7128. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  7129. <X>312</X>
  7130. <Y>766</Y>
  7131. <W>50</W>
  7132. <H>20</H>
  7133. </item>
  7134. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  7135. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  7136. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  7137. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  7138. <X>312.841</X>
  7139. <Y>766.482</Y>
  7140. </item>
  7141. </items>
  7142. </chunk>
  7143. <chunk name="PanelProperties">
  7144. <items count="7">
  7145. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  7146. <ARGB>255;255;250;90</ARGB>
  7147. </item>
  7148. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  7149. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  7150. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  7151. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  7152. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  7153. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  7154. </items>
  7155. </chunk>
  7156. </chunks>
  7157. </chunk>
  7158. </chunks>
  7159. </chunk>
  7160. <chunk name="Object" index="60">
  7161. <items count="2">
  7162. <item name="GUID" type_name="gh_guid" type_code="9">8cc3a196-f6a0-49ea-9ed9-0cb343a3ae64</item>
  7163. <item name="Name" type_name="gh_string" type_code="10">XZ Plane</item>
  7164. </items>
  7165. <chunks count="1">
  7166. <chunk name="Container">
  7167. <items count="5">
  7168. <item name="Description" type_name="gh_string" type_code="10">World XZ plane.</item>
  7169. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  7170. <item name="InstanceGuid" type_name="gh_guid" type_code="9">8b551e34-6c38-4a2b-9e47-c0b841fb2d47</item>
  7171. <item name="Name" type_name="gh_string" type_code="10">XZ Plane</item>
  7172. <item name="NickName" type_name="gh_string" type_code="10">XZ</item>
  7173. </items>
  7174. <chunks count="3">
  7175. <chunk name="Attributes">
  7176. <items count="2">
  7177. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  7178. <X>1145</X>
  7179. <Y>713</Y>
  7180. <W>64</W>
  7181. <H>28</H>
  7182. </item>
  7183. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  7184. <X>1176</X>
  7185. <Y>727</Y>
  7186. </item>
  7187. </items>
  7188. </chunk>
  7189. <chunk name="param_input" index="0">
  7190. <items count="7">
  7191. <item name="Description" type_name="gh_string" type_code="10">Origin of plane</item>
  7192. <item name="InstanceGuid" type_name="gh_guid" type_code="9">6e5d1c51-960b-46f9-898e-f2b11bdb8846</item>
  7193. <item name="Name" type_name="gh_string" type_code="10">Origin</item>
  7194. <item name="NickName" type_name="gh_string" type_code="10">O</item>
  7195. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  7196. <item name="Source" index="0" type_name="gh_guid" type_code="9">544607c8-b250-4465-bd1a-e6ed510b2090</item>
  7197. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  7198. </items>
  7199. <chunks count="2">
  7200. <chunk name="Attributes">
  7201. <items count="2">
  7202. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  7203. <X>1147</X>
  7204. <Y>715</Y>
  7205. <W>14</W>
  7206. <H>24</H>
  7207. </item>
  7208. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  7209. <X>1155.5</X>
  7210. <Y>727</Y>
  7211. </item>
  7212. </items>
  7213. </chunk>
  7214. <chunk name="PersistentData">
  7215. <items count="1">
  7216. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  7217. </items>
  7218. <chunks count="1">
  7219. <chunk name="Branch" index="0">
  7220. <items count="2">
  7221. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  7222. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  7223. </items>
  7224. <chunks count="1">
  7225. <chunk name="Item" index="0">
  7226. <!--GH_Point only stores data which exists, test the existence of data fields prior to reading.-->
  7227. <items count="1">
  7228. <item name="Coordinate" type_name="gh_point3d" type_code="51">
  7229. <X>0</X>
  7230. <Y>0</Y>
  7231. <Z>0</Z>
  7232. </item>
  7233. </items>
  7234. </chunk>
  7235. </chunks>
  7236. </chunk>
  7237. </chunks>
  7238. </chunk>
  7239. </chunks>
  7240. </chunk>
  7241. <chunk name="param_output" index="0">
  7242. <items count="6">
  7243. <item name="Description" type_name="gh_string" type_code="10">World XZ plane</item>
  7244. <item name="InstanceGuid" type_name="gh_guid" type_code="9">0654eb92-001e-43e0-b38a-58a5d0d80f8e</item>
  7245. <item name="Name" type_name="gh_string" type_code="10">Plane</item>
  7246. <item name="NickName" type_name="gh_string" type_code="10">P</item>
  7247. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  7248. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  7249. </items>
  7250. <chunks count="1">
  7251. <chunk name="Attributes">
  7252. <items count="2">
  7253. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  7254. <X>1191</X>
  7255. <Y>715</Y>
  7256. <W>16</W>
  7257. <H>24</H>
  7258. </item>
  7259. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  7260. <X>1199</X>
  7261. <Y>727</Y>
  7262. </item>
  7263. </items>
  7264. </chunk>
  7265. </chunks>
  7266. </chunk>
  7267. </chunks>
  7268. </chunk>
  7269. </chunks>
  7270. </chunk>
  7271. <chunk name="Object" index="61">
  7272. <items count="2">
  7273. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  7274. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  7275. </items>
  7276. <chunks count="1">
  7277. <chunk name="Container">
  7278. <items count="8">
  7279. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  7280. <item name="InstanceGuid" type_name="gh_guid" type_code="9">95f9fd7f-37dc-4bd8-8105-7301ef052bdd</item>
  7281. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  7282. <item name="NickName" type_name="gh_string" type_code="10"></item>
  7283. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  7284. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  7285. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  7286. <item name="UserText" type_name="gh_string" type_code="10">160</item>
  7287. </items>
  7288. <chunks count="2">
  7289. <chunk name="Attributes">
  7290. <items count="5">
  7291. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  7292. <X>306</X>
  7293. <Y>175</Y>
  7294. <W>50</W>
  7295. <H>20</H>
  7296. </item>
  7297. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  7298. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  7299. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  7300. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  7301. <X>306.7406</X>
  7302. <Y>175.2052</Y>
  7303. </item>
  7304. </items>
  7305. </chunk>
  7306. <chunk name="PanelProperties">
  7307. <items count="7">
  7308. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  7309. <ARGB>255;255;250;90</ARGB>
  7310. </item>
  7311. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  7312. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  7313. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  7314. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  7315. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  7316. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  7317. </items>
  7318. </chunk>
  7319. </chunks>
  7320. </chunk>
  7321. </chunks>
  7322. </chunk>
  7323. <chunk name="Object" index="62">
  7324. <items count="2">
  7325. <item name="GUID" type_name="gh_guid" type_code="9">7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe</item>
  7326. <item name="Name" type_name="gh_string" type_code="10">Scribble</item>
  7327. </items>
  7328. <chunks count="1">
  7329. <chunk name="Container">
  7330. <items count="13">
  7331. <item name="Bold" type_name="gh_bool" type_code="1">true</item>
  7332. <item name="Ca" type_name="gh_drawing_pointf" type_code="31">
  7333. <X>-552.3402</X>
  7334. <Y>73.81226</Y>
  7335. </item>
  7336. <item name="Cb" type_name="gh_drawing_pointf" type_code="31">
  7337. <X>-194.0922</X>
  7338. <Y>73.81226</Y>
  7339. </item>
  7340. <item name="Cc" type_name="gh_drawing_pointf" type_code="31">
  7341. <X>-194.0922</X>
  7342. <Y>88.8396</Y>
  7343. </item>
  7344. <item name="Cd" type_name="gh_drawing_pointf" type_code="31">
  7345. <X>-552.3402</X>
  7346. <Y>88.8396</Y>
  7347. </item>
  7348. <item name="Description" type_name="gh_string" type_code="10">A quick note</item>
  7349. <item name="Font" type_name="gh_string" type_code="10">Microsoft Sans Serif</item>
  7350. <item name="InstanceGuid" type_name="gh_guid" type_code="9">501dc92a-f2db-4bb4-8054-89bd8827333b</item>
  7351. <item name="Italic" type_name="gh_bool" type_code="1">false</item>
  7352. <item name="Name" type_name="gh_string" type_code="10">Scribble</item>
  7353. <item name="NickName" type_name="gh_string" type_code="10">Scribble</item>
  7354. <item name="Size" type_name="gh_single" type_code="5">16</item>
  7355. <item name="Text" type_name="gh_string" type_code="10">for testing different points on an alternate plane</item>
  7356. </items>
  7357. <chunks count="1">
  7358. <chunk name="Attributes">
  7359. <items count="2">
  7360. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  7361. <X>-557.3402</X>
  7362. <Y>68.81226</Y>
  7363. <W>368.248</W>
  7364. <H>25.02734</H>
  7365. </item>
  7366. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  7367. <X>-552.3402</X>
  7368. <Y>73.81226</Y>
  7369. </item>
  7370. </items>
  7371. </chunk>
  7372. </chunks>
  7373. </chunk>
  7374. </chunks>
  7375. </chunk>
  7376. <chunk name="Object" index="63">
  7377. <items count="2">
  7378. <item name="GUID" type_name="gh_guid" type_code="9">7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe</item>
  7379. <item name="Name" type_name="gh_string" type_code="10">Scribble</item>
  7380. </items>
  7381. <chunks count="1">
  7382. <chunk name="Container">
  7383. <items count="13">
  7384. <item name="Bold" type_name="gh_bool" type_code="1">true</item>
  7385. <item name="Ca" type_name="gh_drawing_pointf" type_code="31">
  7386. <X>317.6904</X>
  7387. <Y>47.65552</Y>
  7388. </item>
  7389. <item name="Cb" type_name="gh_drawing_pointf" type_code="31">
  7390. <X>768.3664</X>
  7391. <Y>47.65552</Y>
  7392. </item>
  7393. <item name="Cc" type_name="gh_drawing_pointf" type_code="31">
  7394. <X>768.3664</X>
  7395. <Y>71.13574</Y>
  7396. </item>
  7397. <item name="Cd" type_name="gh_drawing_pointf" type_code="31">
  7398. <X>317.6904</X>
  7399. <Y>71.13574</Y>
  7400. </item>
  7401. <item name="Description" type_name="gh_string" type_code="10">A quick note</item>
  7402. <item name="Font" type_name="gh_string" type_code="10">Microsoft Sans Serif</item>
  7403. <item name="InstanceGuid" type_name="gh_guid" type_code="9">32f0e79e-6dca-4f24-9b30-17ca99e1ac07</item>
  7404. <item name="Italic" type_name="gh_bool" type_code="1">false</item>
  7405. <item name="Name" type_name="gh_string" type_code="10">Scribble</item>
  7406. <item name="NickName" type_name="gh_string" type_code="10">Scribble</item>
  7407. <item name="Size" type_name="gh_single" type_code="5">25</item>
  7408. <item name="Text" type_name="gh_string" type_code="10">Elastic Bending Script - Main Example</item>
  7409. </items>
  7410. <chunks count="1">
  7411. <chunk name="Attributes">
  7412. <items count="2">
  7413. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  7414. <X>312.6904</X>
  7415. <Y>42.65552</Y>
  7416. <W>460.676</W>
  7417. <H>33.48022</H>
  7418. </item>
  7419. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  7420. <X>317.6904</X>
  7421. <Y>47.65552</Y>
  7422. </item>
  7423. </items>
  7424. </chunk>
  7425. </chunks>
  7426. </chunk>
  7427. </chunks>
  7428. </chunk>
  7429. <chunk name="Object" index="64">
  7430. <items count="2">
  7431. <item name="GUID" type_name="gh_guid" type_code="9">7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe</item>
  7432. <item name="Name" type_name="gh_string" type_code="10">Scribble</item>
  7433. </items>
  7434. <chunks count="1">
  7435. <chunk name="Container">
  7436. <items count="13">
  7437. <item name="Bold" type_name="gh_bool" type_code="1">true</item>
  7438. <item name="Ca" type_name="gh_drawing_pointf" type_code="31">
  7439. <X>559.8143</X>
  7440. <Y>683.617</Y>
  7441. </item>
  7442. <item name="Cb" type_name="gh_drawing_pointf" type_code="31">
  7443. <X>913.3091</X>
  7444. <Y>683.2137</Y>
  7445. </item>
  7446. <item name="Cc" type_name="gh_drawing_pointf" type_code="31">
  7447. <X>913.3262</X>
  7448. <Y>698.241</Y>
  7449. </item>
  7450. <item name="Cd" type_name="gh_drawing_pointf" type_code="31">
  7451. <X>559.8313</X>
  7452. <Y>698.6443</Y>
  7453. </item>
  7454. <item name="Description" type_name="gh_string" type_code="10">A quick note</item>
  7455. <item name="Font" type_name="gh_string" type_code="10">Microsoft Sans Serif</item>
  7456. <item name="InstanceGuid" type_name="gh_guid" type_code="9">834f8190-7e8f-4039-8f4f-5e398c86ddfa</item>
  7457. <item name="Italic" type_name="gh_bool" type_code="1">false</item>
  7458. <item name="Name" type_name="gh_string" type_code="10">Scribble</item>
  7459. <item name="NickName" type_name="gh_string" type_code="10">Scribble</item>
  7460. <item name="Size" type_name="gh_single" type_code="5">16</item>
  7461. <item name="Text" type_name="gh_string" type_code="10">At 60°, minimum curve radius = height. Try 90°</item>
  7462. </items>
  7463. <chunks count="1">
  7464. <chunk name="Attributes">
  7465. <items count="2">
  7466. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  7467. <X>554.8143</X>
  7468. <Y>678.2137</Y>
  7469. <W>363.5119</W>
  7470. <H>25.43066</H>
  7471. </item>
  7472. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  7473. <X>559.8143</X>
  7474. <Y>683.617</Y>
  7475. </item>
  7476. </items>
  7477. </chunk>
  7478. </chunks>
  7479. </chunk>
  7480. </chunks>
  7481. </chunk>
  7482. <chunk name="Object" index="65">
  7483. <items count="2">
  7484. <item name="GUID" type_name="gh_guid" type_code="9">079bd9bd-54a0-41d4-98af-db999015f63d</item>
  7485. <item name="Name" type_name="gh_string" type_code="10">VB Script</item>
  7486. </items>
  7487. <chunks count="1">
  7488. <chunk name="Container">
  7489. <items count="10">
  7490. <item name="AdditionalSource" type_name="gh_string" type_code="10"> Private Function IsSet(ByVal param As String) As Boolean ' Check if an input parameter has data
  7491. Dim i As Integer = Component.Params.IndexOfInputParam(param)
  7492. If i &gt; -1 Then
  7493. Return Component.Params.Input.ElementAt(i).DataType &gt; 1 ' input parameter DataType of 1 means it's not receiving input (internal or external)
  7494. Else
  7495. Msg("error", "Input parameter '" &amp; param &amp; "' not found")
  7496. Return False
  7497. End If
  7498. End Function
  7499. Private Sub Msg(ByVal type As String, ByVal msg As String) ' Output an error, warning, or informational message
  7500. Select Case type
  7501. Case "error"
  7502. Component.AddRuntimeMessage(GH_RuntimeMessageLevel.Error, msg)
  7503. Print("Error: " &amp; msg)
  7504. Case "warning"
  7505. Component.AddRuntimeMessage(GH_RuntimeMessageLevel.Warning, msg)
  7506. Print("Warning: " &amp; msg)
  7507. Case "info"
  7508. Component.AddRuntimeMessage(GH_RuntimeMessageLevel.Remark, msg)
  7509. Print(msg)
  7510. End Select
  7511. End Sub
  7512. ' Solve for the m parameter from length and width (reference {1} equation (34), except b = width and K(k) and E(k) should be K(m) and E(m))
  7513. Private Function SolveMFromLenWid(ByVal L As Double, ByVal w As Double) As Double
  7514. If w = 0 Then
  7515. Return Defined.M_ZERO_W ' for the boundry condition width = 0, bypass the function and return the known m value
  7516. End If
  7517. Dim n As Integer = 1 ' Iteration counter (quit if &gt;MAXIT)
  7518. Dim lower As Double = 0 ' m must be within this range
  7519. Dim upper As Double = 1
  7520. Dim m As Double
  7521. Dim cwl As Double
  7522. Do While (upper - lower) &gt; Defined.MAXERR AndAlso (n) &lt; Defined.MAXIT ' Repeat until range narrow enough or MAXIT
  7523. m = (upper + lower) / 2
  7524. cwl = 2 * EllipticE(m) / EllipticK(m) - 1 ' calculate w/L with the test value of m
  7525. If cwl &lt; w / L Then ' compares the calculated w/L with the actual w/L then narrows the range of possible m
  7526. upper = m
  7527. Else
  7528. lower = m
  7529. End If
  7530. n += 1
  7531. Loop
  7532. Return m
  7533. End Function
  7534. ' Solve for the m parameter from length and height (reference {1} equation (33), except K(k) should be K(m) and k = sqrt(m))
  7535. ' Note that it's actually possible to find 2 valid values for m (hence 2 width values) at certain height values
  7536. Private Function SolveMFromLenHt(ByVal L As Double, ByVal h As Double) As List(Of Double)
  7537. Dim n As Integer = 1 ' Iteration counter (quit if &gt;MAXIT)
  7538. Dim lower As Double = 0 ' m must be within this range
  7539. Dim upper As Double = 1
  7540. Dim twoWidths As Boolean = h / L &gt;= Defined.DOUBLE_W_HL_RATIO And h / L &lt; Defined.MAX_HL_RATIO ' check to see if h/L is within the range where 2 solutions for the width are possible
  7541. Dim m As Double
  7542. Dim mult_m As New List(Of Double)
  7543. Dim chl As Double
  7544. If twoWidths Then
  7545. ' find the first of two possible solutions for m with the following limits:
  7546. lower = Defined.M_DOUBLE_W ' see constants at bottom of script
  7547. upper = Defined.M_MAXHEIGHT ' see constants at bottom of script
  7548. Do While (upper - lower) &gt; Defined.MAXERR AndAlso (n) &lt; Defined.MAXIT ' Repeat until range narrow enough or MAXIT
  7549. m = (upper + lower) / 2
  7550. chl = Math.Sqrt(m) / EllipticK(m) ' calculate h/L with the test value of m
  7551. If chl &gt; h / L Then ' compares the calculated h/L with the actual h/L then narrows the range of possible m
  7552. upper = m
  7553. Else
  7554. lower = m
  7555. End If
  7556. n += 1
  7557. Loop
  7558. mult_m.Add(m)
  7559. ' then find the second of two possible solutions for m with the following limits:
  7560. lower = Defined.M_MAXHEIGHT ' see constants at bottom of script
  7561. upper = 1
  7562. Do While (upper - lower) &gt; Defined.MAXERR AndAlso (n) &lt; Defined.MAXIT ' Repeat until range narrow enough or MAXIT
  7563. m = (upper + lower) / 2
  7564. chl = Math.Sqrt(m) / EllipticK(m) ' calculate h/L with the test value of m
  7565. If chl &lt; h / L Then ' compares the calculated h/L with the actual h/L then narrows the range of possible m
  7566. upper = m
  7567. Else
  7568. lower = m
  7569. End If
  7570. n += 1
  7571. Loop
  7572. If m &lt;= Defined.M_MAX Then ' return this m parameter only if it falls within the maximum useful value (above which the curve breaks down)
  7573. mult_m.Add(m)
  7574. End If
  7575. Else
  7576. ' find the one possible solution for the m parameter
  7577. upper = Defined.M_DOUBLE_W ' limit the upper end of the search to the maximum value of m for which only one solution exists
  7578. Do While (upper - lower) &gt; Defined.MAXERR AndAlso (n) &lt; Defined.MAXIT ' Repeat until range narrow enough or MAXIT
  7579. m = (upper + lower) / 2
  7580. chl = Math.Sqrt(m) / EllipticK(m) ' calculate h/L with the test value of m
  7581. If chl &gt; h / L Then ' compares the calculated h/L with the actual h/L then narrows the range of possible m
  7582. upper = m
  7583. Else
  7584. lower = m
  7585. End If
  7586. n += 1
  7587. Loop
  7588. mult_m.Add(m)
  7589. End If
  7590. Return mult_m
  7591. End Function
  7592. ' Solve for the m parameter from width and height (derived from reference {1} equations (33) and (34) with same notes as above)
  7593. Private Function SolveMFromWidHt(ByVal w As Double, ByVal h As Double) As Double
  7594. Dim n As Integer = 1 ' Iteration counter (quit if &gt;MAXIT)
  7595. Dim lower As Double = 0 ' m must be within this range
  7596. Dim upper As Double = 1
  7597. Dim m As Double
  7598. Dim cwh As Double
  7599. Do While (upper - lower) &gt; Defined.MAXERR AndAlso (n) &lt; Defined.MAXIT ' Repeat until range narrow enough or MAXIT
  7600. m = (upper + lower) / 2
  7601. cwh = (2 * EllipticE(m) - EllipticK(m)) / Math.Sqrt(m) ' calculate w/h with the test value of m
  7602. If cwh &lt; w / h Then ' compares the calculated w/h with the actual w/h then narrows the range of possible m
  7603. upper = m
  7604. Else
  7605. lower = m
  7606. End If
  7607. n += 1
  7608. Loop
  7609. Return m
  7610. End Function
  7611. ' Calculate length based on height and an m parameter, derived from reference {1} equation (33), except K(k) should be K(m) and k = sqrt(m)
  7612. Private Function Cal_L(ByVal h As Double, ByVal m As Double) As Double
  7613. Return h * EllipticK(m) / Math.Sqrt(m)
  7614. End Function
  7615. ' Calculate width based on length and an m parameter, derived from reference {1} equation (34), except b = width and K(k) and E(k) should be K(m) and E(m)
  7616. Private Function Cal_W(ByVal L As Double, ByVal m As Double) As Double
  7617. Return L * (2 * EllipticE(m) / EllipticK(m) - 1)
  7618. End Function
  7619. ' Calculate height based on length and an m parameter, from reference {1} equation (33), except K(k) should be K(m) and k = sqrt(m)
  7620. Private Function Cal_H(ByVal L As Double, ByVal m As Double) As Double
  7621. Return L * Math.Sqrt(m) / EllipticK(m)
  7622. End Function
  7623. ' Calculate the unique m parameter based on a start tangent angle, from reference {2}, just above equation (9a), that states k = Sin(angle / 2 + Pi / 4),
  7624. ' but as m = k^2 and due to this script's need for an angle rotated 90° versus the one in reference {1}, the following formula is the result
  7625. ' New note: verified by reference {4}, pg. 78 at the bottom
  7626. Private Function Cal_M(ByVal a As Double) As Double
  7627. Return (1 - Math.Cos(a)) / 2 ' equal to Sin^2(a/2) too
  7628. End Function
  7629. ' Calculate start tangent angle based on an m parameter, derived from above formula
  7630. Private Function Cal_A(ByVal m As Double) As Double
  7631. Return Math.Acos(1 - 2 * m)
  7632. End Function
  7633. ' This is the heart of this script, taking the found (or specified) length, width, and angle values along with the found m parameter to create
  7634. ' a list of points that approximate the shape or form of the elastica. It works by finding the x and y coordinates (which are reversed versus
  7635. ' the original equations (12a) and (12b) from reference {2} due to the 90° difference in orientation) based on the tangent angle along the curve.
  7636. ' See reference {2} for more details on how they derived it. Note that to simplify things, the algorithm only calculates the points for half of the
  7637. ' curve, then mirrors those points along the y-axis.
  7638. Private Function FindBendForm(ByVal L As Double, ByVal w As Double, ByVal m As Double, ByVal ang As Double, ByVal refPln As Plane) As List(Of Point3d)
  7639. L = L / 2 ' because the below algorithm is based on the formulas in reference {2} for only half of the curve
  7640. w = w / 2 ' same
  7641. If ang = 0 Then ' if angle (and height) = 0, then simply return the start and end points of the straight line
  7642. Dim out As New List(Of Point3d)
  7643. out.Add(refPln.PointAt(w, 0, 0))
  7644. out.Add(refPln.PointAt(-w, 0, 0))
  7645. Return out
  7646. End If
  7647. Dim x As Double
  7648. Dim y As Double
  7649. Dim halfCurvePts As New List(Of Point3d)
  7650. Dim fullCurvePts As New List(Of Point3d)
  7651. Dim translatedPts As New List(Of Point3d)
  7652. ang -= Math.PI / 2 ' a hack to allow this algorithm to work, since the original curve in paper {2} was rotated 90°
  7653. Dim angB As Double = ang + (-Math.PI / 2 - ang) / Defined.CURVEDIVS ' angB is the 'lowercase theta' which should be in formula {2}(12b) as the interval
  7654. ' start [a typo...see equation(3)]. It's necessary to start angB at ang + [interval] instead of just ang due to integration failing at angB = ang
  7655. halfCurvePts.Add(New Point3d(w, 0, 0)) ' start with this known initial point, as integration will fail when angB = ang
  7656. ' each point {x, y} is calculated from the tangent angle, angB, that occurs at each point (which is why this iterates from ~ang to -pi/2, the known end condition)
  7657. Do While Math.Round(angB, Defined.ROUNDTO) &gt;= Math.Round(-Math.PI / 2, Defined.ROUNDTO)
  7658. y = (Math.Sqrt(2) * Math.Sqrt(Math.Sin(ang) - Math.Sin(angB)) * (w + L)) / (2 * EllipticE(m)) ' note that x and y are swapped vs. (12a) and (12b)
  7659. x = (L / (Math.Sqrt(2) * EllipticK(m))) * Simpson(angB, -Math.PI / 2, 500, ang) ' calculate the Simpson approximation of the integral (function f below)
  7660. ' over the interval angB ('lowercase theta') to -pi/2. side note: is 500 too few iterations for the Simson algorithm?
  7661. If Math.Round(x, Defined.ROUNDTO) = 0 Then x = 0
  7662. halfCurvePts.Add(New Point3d(x, y, 0))
  7663. angB += (-Math.PI / 2 - ang) / Defined.CURVEDIVS ' onto the next tangent angle
  7664. Loop
  7665. ' After finding the x and y values for half of the curve, add the {-x, y} values for the rest of the curve
  7666. For Each point As Point3d In halfCurvePts
  7667. If Math.Round(point.X, Defined.ROUNDTO) = 0 Then
  7668. If Math.Round(point.Y, Defined.ROUNDTO) = 0 Then
  7669. fullCurvePts.Add(New Point3d(0, 0, 0)) ' special case when width = 0: when x = 0, only duplicate the point when y = 0 too
  7670. End If
  7671. Else
  7672. fullCurvePts.Add(New Point3d(-point.X, point.Y, 0))
  7673. End If
  7674. Next
  7675. halfCurvePts.Reverse
  7676. fullCurvePts.AddRange(halfCurvePts)
  7677. For Each p As Point3d In fullCurvePts
  7678. translatedPts.Add(refPln.PointAt(p.X, p.Y, p.Z)) ' translate the points from the reference plane to the world plane
  7679. Next
  7680. Return translatedPts
  7681. End Function
  7682. ' Interpolates the points from FindBendForm to create the Elastica curve. Uses start &amp; end tangents for greater accuracy.
  7683. Private Function MakeCurve(ByVal pts As List(Of Point3d), ByVal ang As Double, ByVal refPln As Plane) As Curve
  7684. If ang &lt;&gt; 0 Then
  7685. Dim ts, te As New Vector3d(refPln.XAxis)
  7686. ts.Rotate(ang, refPln.ZAxis)
  7687. te.Rotate(-ang, refPln.ZAxis)
  7688. Return Curve.CreateInterpolatedCurve(pts, 3, CurveKnotStyle.Chord, ts, te) ' 3rd degree curve with 'Chord' Knot Style
  7689. Else
  7690. Return Curve.CreateInterpolatedCurve(pts, 3) ' if angle (and height) = 0, then simply interpolate the straight line (no start/end tangents)
  7691. End If
  7692. End Function
  7693. ' Implements the Simpson approximation for an integral of function f below
  7694. Public Function Simpson(a As Double, b As Double, n As Integer, theta As Double) As Double 'n should be an even number
  7695. Dim j As Integer, s1 As Double, s2 As Double, h As Double
  7696. h = (b - a) / n
  7697. s1 = 0
  7698. s2 = 0
  7699. For j = 1 To n - 1 Step 2
  7700. s1 = s1 + fn(a + j * h, theta)
  7701. Next j
  7702. For j = 2 To n - 2 Step 2
  7703. s2 = s2 + fn(a + j * h, theta)
  7704. Next j
  7705. Simpson = h / 3 * (fn(a, theta) + 4 * s1 + 2 * s2 + fn(b, theta))
  7706. End Function
  7707. ' Specific calculation for the above integration
  7708. Public Function fn(x As Double, theta As Double) As Double
  7709. fn = Math.Sin(x) / (Math.Sqrt(Math.Sin(theta) - Math.Sin(x))) ' from reference {2} formula (12b)
  7710. End Function
  7711. ' Return the Complete Elliptic integral of the 1st kind
  7712. ' Abramowitz and Stegun p.591, formula 17.3.11
  7713. ' Code from http://www.codeproject.com/Articles/566614/Elliptic-integrals
  7714. Public Function EllipticK(ByVal m As Double) As Double
  7715. Dim sum, term, above, below As Double
  7716. sum = 1
  7717. term = 1
  7718. above = 1
  7719. below = 2
  7720. For i As Integer = 1 To 100
  7721. term *= above / below
  7722. sum += Math.Pow(m, i) * Math.Pow(term, 2)
  7723. above += 2
  7724. below += 2
  7725. Next
  7726. sum *= 0.5 * Math.PI
  7727. Return sum
  7728. End Function
  7729. ' Return the Complete Elliptic integral of the 2nd kind
  7730. ' Abramowitz and Stegun p.591, formula 17.3.12
  7731. ' Code from http://www.codeproject.com/Articles/566614/Elliptic-integrals
  7732. Public Function EllipticE(ByVal m As Double) As Double
  7733. Dim sum, term, above, below As Double
  7734. sum = 1
  7735. term = 1
  7736. above = 1
  7737. below = 2
  7738. For i As Integer = 1 To 100
  7739. term *= above / below
  7740. sum -= Math.Pow(m, i) * Math.Pow(term, 2) / above
  7741. above += 2
  7742. below += 2
  7743. Next
  7744. sum *= 0.5 * Math.PI
  7745. Return sum
  7746. End Function
  7747. Friend Partial NotInheritable Class Defined
  7748. Private Sub New()
  7749. End Sub
  7750. ' Note: most of these values for m and h/L ratio were found with Wolfram Alpha and either specific intercepts (x=0) or local minima/maxima. They should be constant.
  7751. Public Const M_SKETCHY As Double = 0.95 ' value of the m parameter where the curvature near the ends of the curve gets wonky
  7752. Public Const M_MAX As Double = 0.993 ' maximum useful value of the m parameter, above which this algorithm for the form of the curve breaks down
  7753. Public Const M_ZERO_W As Double = 0.826114765984970336 ' value of the m parameter when width = 0
  7754. Public Const M_MAXHEIGHT As Double = 0.701327460663101223 ' value of the m parameter at maximum possible height of the bent rod/wire
  7755. Public Const M_DOUBLE_W As Double = 0.180254422335013983 ' minimum value of the m parameter when two width values are possible for a given height and length
  7756. Public Const DOUBLE_W_HL_RATIO As Double = 0.257342117984635757 ' value of the height/length ratio above which there are two possible width values
  7757. Public Const MAX_HL_RATIO As Double = 0.403140189705650243 ' maximum possible value of the height/length ratio
  7758. Public Const MAXERR As Double = 0.0000000001 ' error tolerance
  7759. Public Const MAXIT As Integer = 100 ' maximum number of iterations
  7760. Public Const ROUNDTO As Integer = 10 ' number of decimal places to round off to
  7761. Public Const CURVEDIVS As Integer = 50 ' number of sample points for building the curve (or half-curve as it were)
  7762. End Class</item>
  7763. <item name="Description" type_name="gh_string" type_code="10">A VB.NET scriptable component</item>
  7764. <item name="EditorPosition" type_name="gh_drawing_point" type_code="30">
  7765. <X>98</X>
  7766. <Y>86</Y>
  7767. </item>
  7768. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  7769. <item name="InstanceGuid" type_name="gh_guid" type_code="9">bf1f4616-5fd9-426e-9474-52a076d17bf4</item>
  7770. <item name="Name" type_name="gh_string" type_code="10">VB Script</item>
  7771. <item name="NickName" type_name="gh_string" type_code="10">VB</item>
  7772. <item name="OutParameter" type_name="gh_bool" type_code="1">true</item>
  7773. <item name="ReferenceCount" type_name="gh_int32" type_code="3">0</item>
  7774. <item name="ScriptSource" type_name="gh_string" type_code="10"> ' -----------------------------------------------------------------
  7775. ' Elastic Bending Script by Will McElwain
  7776. ' Created February 2014
  7777. '
  7778. ' DESCRIPTION:
  7779. ' This beast creates the so-called 'elastica curve', the shape a long, thin rod or wire makes when it is bent elastically (i.e. not permanently). In this case, force
  7780. ' is assumed to only be applied horizontally (which would be in line with the rod at rest) and both ends are assumed to be pinned or hinged meaning they are free
  7781. ' to rotate (as opposed to clamped, when the end tangent angle is fixed, usually horizontally). An interesting finding is that it doesn't matter what the material or
  7782. ' cross-sectional area is, as long as they're uniform along the entire length. Everything makes the same shape when bent as long as it doesn't cross the threshold
  7783. ' from elastic to plastic (permanent) deformation (I don't bother to find that limit here, but can be found if the yield stress for a material is known).
  7784. '
  7785. ' Key to the formulas used in this script are elliptic integrals, specifically K(m), the complete elliptic integral of the first kind, and E(m), the complete elliptic
  7786. ' integral of the second kind. There was a lot of confusion over the 'm' and 'k' parameters for these functions, as some people use them interchangeably, but they are
  7787. ' not the same. m = k^2 (thus k = Sqrt(m)). I try to use the 'm' parameter exclusively to avoid this confusion. Note that there is a unique 'm' parameter for every
  7788. ' configuration/shape of the elastica curve.
  7789. '
  7790. ' This script tries to find that unique 'm' parameter based on the inputs. The algorithm starts with a test version of m, evaluates an expression, say 2*E(m)/K(m)-1,
  7791. ' then compares the result to what it should be (in this case, a known width/length ratio). Iterate until the correct m is found. Once we have m, we can then calculate
  7792. ' all of the other unknowns, then find points that lie on that curve, then interpolate those points for the actual curve. You can also use Wolfram|Alpha as I did to
  7793. ' find the m parameter based on the equations in this script (example here: http://tiny.cc/t4tpbx for when say width=45.2 and length=67.1).
  7794. '
  7795. ' Other notes:
  7796. ' * This script works with negative values for width, which will creat a self-intersecting curve (as it should). The curvature of the elastica starts to break down around
  7797. ' m=0.95 (~154°), but this script will continue to work until M_MAX, m=0.993 (~169°). If you wish to ignore self-intersecting curves, set ignoreSelfIntersecting to True
  7798. ' * When the only known values are length and height, it is actually possible for certain ratios of height to length to have two valid m values (thus 2 possible widths
  7799. ' and angles). This script will return them both.
  7800. ' * Only the first two valid parameters (of the required ones) will be used, meaning if all four are connected (length, width or a PtB, height, and angle), this script will
  7801. ' only use length and width (or a PtB).
  7802. ' * Depending on the magnitude of your inputs (say if they're really small, like if length &lt; 10), you might have to increase the constant ROUNDTO at the bottom
  7803. '
  7804. ' REFERENCES:
  7805. ' {1} "The elastic rod" by M.E. Pacheco Q. &amp; E. Pina, http://www.scielo.org.mx/pdf/rmfe/v53n2/v53n2a8.pdf
  7806. ' {2} "An experiment in nonlinear beam theory" by A. Valiente, http://www.deepdyve.com/lp/doc/I3lwnxdfGz , also here: http://tiny.cc/Valiente_AEiNBT
  7807. ' {3} "Snap buckling, writhing and Loop formation In twisted rods" by V.G.A. GOSS, http://myweb.lsbu.ac.uk/~gossga/thesisFinal.pdf
  7808. ' {4} "Theory of Elastic Stability" by Stephen Timoshenko, http://www.scribd.com/doc/50402462/Timoshenko-Theory-of-Elastic-Stability (start on p. 76)
  7809. '
  7810. ' INPUT:
  7811. ' PtA - First anchor point (required)
  7812. ' PtB - Second anchor point (optional, though 2 out of the 4--length, width, height, angle--need to be specified)
  7813. ' [note that PtB can be the same as PtA (meaning width would be zero)]
  7814. ' [also note that if a different width is additionally specified that's not equal to the distance between PtA and PtB, then the end point will not equal PtB anymore]
  7815. ' Pln - Plane of the bent rod/wire, which bends up in the +y direction. The line between PtA and PtB (if specified) must be parallel to the x-axis of this plane
  7816. '
  7817. ' ** 2 of the following 4 need to be specified **
  7818. ' Len - Length of the rod/wire, which needs to be &gt; 0
  7819. ' Wid - Width between the endpoints of the curve [note: if PtB is specified in addition, and distance between PtA and PtB &lt;&gt; width, the end point will be relocated
  7820. ' Ht - Height of the bent rod/wire (when negative, curve will bend downward, relative to the input plane, instead)
  7821. ' Ang - Inner departure angle or tangent angle (in radians) at the ends of the bent rod/wire. Set up so as width approaches length (thus height approaches zero), angle approaches zero
  7822. '
  7823. ' * Following variables only needed for optional calculating of bending force, not for shape of curve.
  7824. ' E - Young's modulus (modulus of elasticity) in GPa (=N/m^2) (material-specific. for example, 7075 aluminum is roughly 71.7 GPa)
  7825. ' I - Second moment of area (or area moment of inertia) in m^4 (cross-section-specific. for example, a hollow rod
  7826. ' would have I = pi * (outer_diameter^4 - inner_diameter^4) / 32
  7827. ' Note: E*I is also known as flexural rigidity or bending stiffness
  7828. '
  7829. ' OUTPUT:
  7830. ' out - only for debugging messages
  7831. ' Pts - the list of points that approximate the shape of the elastica
  7832. ' Crv - the 3rd-degree curve interpolated from those points (with accurate start &amp; end tangents)
  7833. ' L - the length of the rod/wire
  7834. ' W - the distance (width) between the endpoints of the rod/wire
  7835. ' H - the height of the bent rod/wire
  7836. ' A - the tangent angle at the (start) end of the rod/wire
  7837. ' F - the force needed to hold the rod/wire in a specific shape (based on the material properties &amp; cross-section) **be sure your units for 'I' match your units for the
  7838. ' rest of your inputs (length, width, etc.). Also note that the critical buckling load (force) that makes the rod/wire start to bend can be found at height=0
  7839. '
  7840. ' THANKS TO:
  7841. ' Mårten Nettelbladt (thegeometryofbending.blogspot.com)
  7842. ' Daniel Piker (Kangaroo plugin)
  7843. ' David Rutten (Grasshopper guru)
  7844. ' Euler &amp; Bernoulli (the O.G.'s)
  7845. '
  7846. ' -----------------------------------------------------------------
  7847. Dim ignoreSelfIntersecting As Boolean = False ' set to True if you don't want to output curves where width &lt; 0, which creates a self-intersecting curve
  7848. Dim inCt As Integer = 0 ' count the number of required parameters that are receiving data
  7849. Dim length As Double
  7850. Dim width As System.Object = Nothing ' need to set as Nothing so we can check if it has been assigned a value later
  7851. Dim height As Double
  7852. Dim angle As Double
  7853. Dim m As Double
  7854. Dim multiple_m As New List(Of Double)
  7855. Dim AtoB As Line
  7856. Dim flip_H As Boolean = False ' if height is negative, this flag will be set
  7857. Dim flip_A As Boolean = False ' if angle is negative, this flag will be set
  7858. If Not IsSet("Pln") Then
  7859. Msg("error", "Base plane is not set")
  7860. Return
  7861. End If
  7862. If Not IsSet("PtA") Then
  7863. Msg("error", "Point A is not set")
  7864. Return
  7865. End If
  7866. If Math.Round(Pln.DistanceTo(PtA), Defined.ROUNDTO) &lt;&gt; 0 Then
  7867. Msg("error", "Point A is not on the base plane")
  7868. Return
  7869. End If
  7870. Dim refPlane As Plane = Pln ' create a reference plane = input plane and set the origin of it to PtA in case PtA isn't the origin already
  7871. refPlane.Origin = PtA
  7872. If IsSet("PtB") Then
  7873. If Math.Round(Pln.DistanceTo(PtB), Defined.ROUNDTO) &lt;&gt; 0 Then
  7874. Msg("error", "Point B is not on the base plane")
  7875. Return
  7876. End If
  7877. AtoB = New Line(PtA, PtB)
  7878. If AtoB.Length &lt;&gt; 0 And Not AtoB.Direction.IsPerpendicularTo(Pln.YAxis) Then
  7879. Msg("error", "The line between PtA and PtB is not perpendicular to the Y-axis of the specified plane")
  7880. Return
  7881. End If
  7882. inCt += 1
  7883. If IsSet("Wid") Then Msg("info", "Wid will override the distance between PtA and PtB. If you do not want this to happen, disconnect PtB or Wid.")
  7884. width = PtA.DistanceTo(PtB) ' get the width (distance) between PtA and PtB
  7885. Dim refPtB As Point3d
  7886. refPlane.RemapToPlaneSpace(PtB, refPtB)
  7887. If refPtB.X &lt; 0 Then width = -width ' check if PtB is to the left of PtA...if so, width is negative
  7888. End If
  7889. If IsSet("Len") Then inCt += 1
  7890. If IsSet("Wid") Then inCt += 1
  7891. If IsSet("Ht") Then inCt += 1
  7892. If IsSet("Ang") Then inCt += 1
  7893. If inCt &gt; 2 Then Msg("info", "More parameters set than are required (out of length, width, height, angle). Only using the first two valid ones.")
  7894. ' check for connected/specified inputs. note: only the first two that it comes across will be used
  7895. If IsSet("Len") Then ' if length is specified then...
  7896. If Len &lt;= 0 Then
  7897. Msg("error", "Length cannot be negative or zero")
  7898. Return
  7899. End If
  7900. If IsSet("Wid") Then ' find height &amp; angle based on length and specified width
  7901. If Wid &gt; Len Then
  7902. Msg("error", "Width is greater than length")
  7903. Return
  7904. End If
  7905. If Wid = Len Then ' skip the solver and set the known values
  7906. height = 0
  7907. m = 0
  7908. angle = 0
  7909. width = Wid
  7910. Else
  7911. m = SolveMFromLenWid(Len, Wid)
  7912. height = Cal_H(Len, m) ' L * Sqrt(m) / K(m)
  7913. angle = Cal_A(m) ' Acos(1 - 2 * m)
  7914. width = Wid
  7915. End If
  7916. Else If width IsNot Nothing Then ' find height &amp; angle based on length and calculated width (distance between PtA and PtB)
  7917. If width &gt; Len Then
  7918. Msg("error", "Width is greater than length")
  7919. Return
  7920. End If
  7921. If width = Len Then ' skip the solver and set the known values
  7922. height = 0
  7923. m = 0
  7924. angle = 0
  7925. Else
  7926. m = SolveMFromLenWid(Len, width)
  7927. height = Cal_H(Len, m) ' L * Sqrt(m) / K(m)
  7928. angle = Cal_A(m) ' Acos(1 - 2 * m)
  7929. End If
  7930. Else If IsSet("Ht") Then ' find width &amp; angle based on length and height ** possible to return 2 results **
  7931. If Math.Abs(Ht / Len) &gt; Defined.MAX_HL_RATIO Then
  7932. Msg("error", "Height not possible with given length")
  7933. Return
  7934. End If
  7935. If Ht &lt; 0 Then
  7936. Ht = -Ht ' if height is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  7937. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  7938. flip_A = True
  7939. flip_H = True
  7940. End If
  7941. If Ht = 0 Then ' skip the solver and set the known values
  7942. width = Len
  7943. angle = 0
  7944. Else
  7945. multiple_m = SolveMFromLenHt(Len, Ht) ' note that it's possible for two values of m to be found if height is close to max height
  7946. If multiple_m.Count = 1 Then ' if there's only one m value returned, calculate the width &amp; angle here. we'll deal with multiple m values later
  7947. m = multiple_m.Item(0)
  7948. width = Cal_W(Len, m) ' L * (2 * E(m) / K(m) - 1)
  7949. angle = Cal_A(m) ' Acos(1 - 2 * m)
  7950. End If
  7951. End If
  7952. height = Ht
  7953. Else If IsSet("Ang") Then ' find width &amp; height based on length and angle
  7954. If Ang &lt; 0 Then
  7955. Ang = -Ang ' if angle is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  7956. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  7957. flip_A = True
  7958. flip_H = True
  7959. End If
  7960. m = Cal_M(Ang) ' (1 - Cos(a)) / 2
  7961. If Ang = 0 Then ' skip the solver and set the known values
  7962. width = Len
  7963. height = 0
  7964. Else
  7965. width = Cal_W(Len, m) ' L * (2 * E(m) / K(m) - 1)
  7966. height = Cal_H(Len, m) ' L * Sqrt(m) / K(m)
  7967. End If
  7968. angle = Ang
  7969. Else
  7970. Msg("error", "Need to specify one more parameter in addition to length")
  7971. Return
  7972. End If
  7973. length = Len
  7974. Else If IsSet("Wid") Then ' if width is specified then...
  7975. If IsSet("Ht") Then ' find length &amp; angle based on specified width and height
  7976. If Ht &lt; 0 Then
  7977. Ht = -Ht ' if height is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  7978. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  7979. flip_A = True
  7980. flip_H = True
  7981. End If
  7982. If Ht = 0 Then ' skip the solver and set the known values
  7983. length = Wid
  7984. angle = 0
  7985. Else
  7986. m = SolveMFromWidHt(Wid, Ht)
  7987. length = Cal_L(Ht, m) ' h * K(m) / Sqrt(m)
  7988. angle = Cal_A(m) ' Acos(1 - 2 * m)
  7989. End If
  7990. height = Ht
  7991. Else If IsSet("Ang") Then ' find length &amp; height based on specified width and angle
  7992. If Wid = 0 Then
  7993. Msg("error", "Curve not possible with width = 0 and an angle as inputs")
  7994. Return
  7995. End If
  7996. If Ang &lt; 0 Then
  7997. Ang = -Ang ' if angle is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  7998. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  7999. flip_A = True
  8000. flip_H = True
  8001. End If
  8002. m = Cal_M(Ang) ' (1 - Cos(a)) / 2
  8003. If Ang = 0 Then ' skip the solver and set the known values
  8004. length = Wid
  8005. height = 0
  8006. Else
  8007. length = Wid / (2 * EllipticE(m) / EllipticK(m) - 1)
  8008. If length &lt; 0 Then
  8009. Msg("error", "Curve not possible at specified width and angle (calculated length is negative)")
  8010. Return
  8011. End If
  8012. height = Cal_H(length, m) ' L * Sqrt(m) / K(m)
  8013. End If
  8014. angle = Ang
  8015. Else
  8016. Msg("error", "Need to specify one more parameter in addition to width (Wid)")
  8017. Return
  8018. End If
  8019. width = Wid
  8020. Else If width IsNot Nothing Then ' if width is determined by PtA and PtB then...
  8021. If IsSet("Ht") Then ' find length &amp; angle based on calculated width and height
  8022. If Ht &lt; 0 Then
  8023. Ht = -Ht ' if height is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  8024. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  8025. flip_A = True
  8026. flip_H = True
  8027. End If
  8028. If Ht = 0 Then ' skip the solver and set the known values
  8029. length = width
  8030. angle = 0
  8031. Else
  8032. m = SolveMFromWidHt(width, Ht)
  8033. length = Cal_L(Ht, m) ' h * K(m) / Sqrt(m)
  8034. angle = Cal_A(m) ' Acos(1 - 2 * m)
  8035. End If
  8036. height = Ht
  8037. Else If IsSet("Ang") Then ' find length &amp; height based on calculated width and angle
  8038. If width = 0 Then
  8039. Msg("error", "Curve not possible with width = 0 and an angle as inputs")
  8040. Return
  8041. End If
  8042. If Ang &lt; 0 Then
  8043. Ang = -Ang ' if angle is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  8044. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  8045. flip_A = True
  8046. flip_H = True
  8047. End If
  8048. m = Cal_M(Ang) ' (1 - Cos(a)) / 2
  8049. If Ang = 0 Then ' skip the solver and set the known values
  8050. length = width
  8051. height = 0
  8052. Else
  8053. length = width / (2 * EllipticE(m) / EllipticK(m) - 1)
  8054. If length &lt; 0 Then
  8055. Msg("error", "Curve not possible at specified width and angle (calculated length is negative)")
  8056. Return
  8057. End If
  8058. height = Cal_H(length, m) ' L * Sqrt(m) / K(m)
  8059. End If
  8060. angle = Ang
  8061. Else
  8062. Msg("error", "Need to specify one more parameter in addition to PtA and PtB")
  8063. Return
  8064. End If
  8065. Else If IsSet("Ht") Then ' if height is specified then...
  8066. If IsSet("Ang") Then ' find length &amp; width based on height and angle
  8067. If Ht &lt; 0 Then
  8068. Ht = -Ht ' if height is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  8069. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  8070. flip_H = True
  8071. flip_A = True
  8072. End If
  8073. If Ht = 0 Then
  8074. Msg("error", "Height can't = 0 if only height and angle are specified")
  8075. Return
  8076. Else
  8077. If Ang &lt; 0 Then
  8078. Ang = -Ang ' if angle is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  8079. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  8080. flip_A = Not flip_A
  8081. flip_H = Not flip_H
  8082. End If
  8083. m = Cal_M(Ang) ' (1 - Cos(a)) / 2
  8084. If Ang = 0 Then
  8085. Msg("error", "Angle can't = 0 if only height and angle are specified")
  8086. Return
  8087. Else
  8088. length = Cal_L(Ht, m) ' h * K(m) / Sqrt(m)
  8089. width = Cal_W(length, m) ' L * (2 * E(m) / K(m) - 1)
  8090. End If
  8091. angle = Ang
  8092. End If
  8093. height = Ht
  8094. Else
  8095. Msg("error", "Need to specify one more parameter in addition to height")
  8096. Return
  8097. End If
  8098. Else If IsSet("Ang") Then
  8099. Msg("error", "Need to specify one more parameter in addition to angle")
  8100. Return
  8101. Else
  8102. Msg("error", "Need to specify two of the four parameters: length, width (or PtB), height, and angle")
  8103. Return
  8104. End If
  8105. If m &gt; Defined.M_MAX Then
  8106. Msg("error", "Form of curve not solvable with current algorithm and given inputs")
  8107. Return
  8108. End If
  8109. refPlane.Origin = refPlane.PointAt(width / 2, 0, 0) ' adjust the origin of the reference plane so that the curve is centered about the y-axis (start of the curve is at x = -width/2)
  8110. If multiple_m.Count &gt; 1 Then ' if there is more than one m value returned, calculate the width, angle, and curve for each
  8111. Dim multi_pts As New DataTree(Of Point3d)
  8112. Dim multi_crv As New List(Of Curve)
  8113. Dim tmp_pts As New List(Of Point3d)
  8114. Dim multi_W, multi_A, multi_F As New List(Of Double)
  8115. Dim j As Integer = 0 ' used for creating a new branch (GH_Path) for storing pts which is itself a list of points
  8116. For Each m_val As Double In multiple_m
  8117. width = Cal_W(length, m_val) 'length * (2 * EllipticE(m_val) / EllipticK(m_val) - 1)
  8118. If width &lt; 0 And ignoreSelfIntersecting Then
  8119. Msg("warning", "One curve is self-intersecting. To enable these, set ignoreSelfIntersecting to False")
  8120. Continue For
  8121. End If
  8122. If m_val &gt;= Defined.M_SKETCHY Then Msg("info", "Accuracy of the curve whose width = " &amp; Math.Round(width, 4) &amp; " is not guaranteed")
  8123. angle = Cal_A(m_val) 'Math.Asin(2 * m_val - 1)
  8124. refPlane.Origin = refPlane.PointAt(width / 2, 0, 0) ' adjust the origin of the reference plane so that the curve is centered about the y-axis (start of the curve is at x = -width/2)
  8125. tmp_pts = FindBendForm(length, width, m_val, angle, refPlane)
  8126. multi_pts.AddRange(tmp_pts, New GH_Path(j))
  8127. multi_crv.Add(MakeCurve(tmp_pts, angle, refPlane))
  8128. multi_W.Add(width)
  8129. If flip_A Then angle = -angle
  8130. multi_A.Add(angle)
  8131. E = E * 10 ^ 9 ' Young's modulus input E is in GPa, so we convert to Pa here (= N/m^2)
  8132. multi_F.Add(EllipticK(m_val) ^ 2 * E * I / length ^ 2) ' from reference {4} pg. 79
  8133. j += 1
  8134. refPlane.Origin = PtA ' reset the reference plane origin to PtA for the next m_val
  8135. 'Print("length=" &amp; length &amp; ", width=" &amp; width &amp; ", height=" &amp; height &amp; ", angle=" &amp; angle &amp; ", m=" &amp; m_val &amp; ", k=" &amp; Math.Sqrt(m_val) &amp; ", w/L=" &amp; width / length &amp; ", h/L=" &amp; height / length &amp; ", w/h=" &amp; width / height)
  8136. Next
  8137. ' assign the outputs
  8138. Pts = multi_pts
  8139. Crv = multi_crv
  8140. L = length
  8141. W = multi_W
  8142. If flip_H Then height = -height
  8143. H = height
  8144. A = multi_A
  8145. F = multi_F
  8146. Else ' only deal with the single m value
  8147. If m &gt;= Defined.M_SKETCHY Then Msg("info", "Accuracy of the curve at these parameters is not guaranteed")
  8148. If width &lt; 0 And ignoreSelfIntersecting Then
  8149. Msg("error", "Curve is self-intersecting. To enable these, set ignoreSelfIntersecting to False")
  8150. Return
  8151. End If
  8152. Pts = FindBendForm(length, width, m, angle, refPlane)
  8153. Crv = MakeCurve(pts, angle, refPlane)
  8154. L = length
  8155. W = width
  8156. If flip_H Then height = -height
  8157. H = height
  8158. If flip_A Then angle = -angle
  8159. A = angle
  8160. E = E * 10 ^ 9 ' Young's modulus input E is in GPa, so we convert to Pa here (= N/m^2)
  8161. F = EllipticK(m) ^ 2 * E * I / length ^ 2 ' from reference {4} pg. 79. Note: the critical buckling (that makes the rod/wire start to bend) can be found at height=0 (width=length)
  8162. 'height = Math.Sqrt(((2 * Len / 5) ^ 2 - ((Wid - Len / 5) / 2) ^ 2) ' quick approximation discovered by Mårten of 'Geometry of Bending' fame ( http://tiny.cc/it2pbx )
  8163. 'width = (Len +/- 2 * Math.Sqrt(4 * Len ^ 2 - 25 * Ht ^ 2)) / 5 ' derived from above
  8164. 'length = (2 * Math.Sqrt(15 * Ht ^ 2 + 4 * Wid ^ 2) - Wid) / 3 ' derived from above
  8165. 'Print("length=" &amp; length &amp; ", width=" &amp; width &amp; ", height=" &amp; height &amp; ", angle=" &amp; angle &amp; ", m=" &amp; m &amp; ", k=" &amp; Math.Sqrt(m) &amp; ", w/L=" &amp; width / length &amp; ", h/L=" &amp; height / length &amp; ", w/h=" &amp; width / height)
  8166. End If
  8167. </item>
  8168. </items>
  8169. <chunks count="2">
  8170. <chunk name="Attributes">
  8171. <items count="2">
  8172. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  8173. <X>618</X>
  8174. <Y>1502</Y>
  8175. <W>84</W>
  8176. <H>184</H>
  8177. </item>
  8178. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  8179. <X>660</X>
  8180. <Y>1594</Y>
  8181. </item>
  8182. </items>
  8183. </chunk>
  8184. <chunk name="ParameterData">
  8185. <items count="19">
  8186. <item name="InputCount" type_name="gh_int32" type_code="3">9</item>
  8187. <item name="InputId" index="0" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  8188. <item name="InputId" index="1" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  8189. <item name="InputId" index="2" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  8190. <item name="InputId" index="3" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  8191. <item name="InputId" index="4" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  8192. <item name="InputId" index="5" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  8193. <item name="InputId" index="6" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  8194. <item name="InputId" index="7" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  8195. <item name="InputId" index="8" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  8196. <item name="OutputCount" type_name="gh_int32" type_code="3">8</item>
  8197. <item name="OutputId" index="0" type_name="gh_guid" type_code="9">3ede854e-c753-40eb-84cb-b48008f14fd4</item>
  8198. <item name="OutputId" index="1" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  8199. <item name="OutputId" index="2" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  8200. <item name="OutputId" index="3" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  8201. <item name="OutputId" index="4" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  8202. <item name="OutputId" index="5" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  8203. <item name="OutputId" index="6" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  8204. <item name="OutputId" index="7" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  8205. </items>
  8206. <chunks count="17">
  8207. <chunk name="InputParam" index="0">
  8208. <items count="11">
  8209. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  8210. <item name="Description" type_name="gh_string" type_code="10">Script Variable PtA</item>
  8211. <item name="InstanceGuid" type_name="gh_guid" type_code="9">fc00bec5-e331-4012-b0a8-a6f9d0f686f7</item>
  8212. <item name="Name" type_name="gh_string" type_code="10">PtA</item>
  8213. <item name="NickName" type_name="gh_string" type_code="10">PtA</item>
  8214. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  8215. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  8216. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  8217. <item name="Source" index="0" type_name="gh_guid" type_code="9">7470aaae-fe5c-4a6e-a5d7-3c8c950bb9fb</item>
  8218. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  8219. <item name="TypeHintID" type_name="gh_guid" type_code="9">e1937b56-b1da-4c12-8bd8-e34ee81746ef</item>
  8220. </items>
  8221. <chunks count="1">
  8222. <chunk name="Attributes">
  8223. <items count="2">
  8224. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  8225. <X>620</X>
  8226. <Y>1504</Y>
  8227. <W>25</W>
  8228. <H>20</H>
  8229. </item>
  8230. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  8231. <X>634</X>
  8232. <Y>1514</Y>
  8233. </item>
  8234. </items>
  8235. </chunk>
  8236. </chunks>
  8237. </chunk>
  8238. <chunk name="InputParam" index="1">
  8239. <items count="10">
  8240. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  8241. <item name="Description" type_name="gh_string" type_code="10">Script Variable PtB</item>
  8242. <item name="InstanceGuid" type_name="gh_guid" type_code="9">c5bc96c5-9e28-4cb8-9259-356c9db2b9fb</item>
  8243. <item name="Name" type_name="gh_string" type_code="10">PtB</item>
  8244. <item name="NickName" type_name="gh_string" type_code="10">PtB</item>
  8245. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  8246. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  8247. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  8248. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  8249. <item name="TypeHintID" type_name="gh_guid" type_code="9">e1937b56-b1da-4c12-8bd8-e34ee81746ef</item>
  8250. </items>
  8251. <chunks count="1">
  8252. <chunk name="Attributes">
  8253. <items count="2">
  8254. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  8255. <X>620</X>
  8256. <Y>1524</Y>
  8257. <W>25</W>
  8258. <H>20</H>
  8259. </item>
  8260. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  8261. <X>634</X>
  8262. <Y>1534</Y>
  8263. </item>
  8264. </items>
  8265. </chunk>
  8266. </chunks>
  8267. </chunk>
  8268. <chunk name="InputParam" index="2">
  8269. <items count="11">
  8270. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  8271. <item name="Description" type_name="gh_string" type_code="10">Script Variable Pln</item>
  8272. <item name="InstanceGuid" type_name="gh_guid" type_code="9">71f32d80-b186-4e03-b761-b9bb960ea743</item>
  8273. <item name="Name" type_name="gh_string" type_code="10">Pln</item>
  8274. <item name="NickName" type_name="gh_string" type_code="10">Pln</item>
  8275. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  8276. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  8277. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  8278. <item name="Source" index="0" type_name="gh_guid" type_code="9">c7f844d2-ba5e-476f-b4d4-193dcea7a216</item>
  8279. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  8280. <item name="TypeHintID" type_name="gh_guid" type_code="9">3897522d-58e9-4d60-b38c-978ddacfedd8</item>
  8281. </items>
  8282. <chunks count="1">
  8283. <chunk name="Attributes">
  8284. <items count="2">
  8285. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  8286. <X>620</X>
  8287. <Y>1544</Y>
  8288. <W>25</W>
  8289. <H>20</H>
  8290. </item>
  8291. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  8292. <X>634</X>
  8293. <Y>1554</Y>
  8294. </item>
  8295. </items>
  8296. </chunk>
  8297. </chunks>
  8298. </chunk>
  8299. <chunk name="InputParam" index="3">
  8300. <items count="11">
  8301. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  8302. <item name="Description" type_name="gh_string" type_code="10">Script Variable Len</item>
  8303. <item name="InstanceGuid" type_name="gh_guid" type_code="9">0aa34a2c-a64a-42a7-9ee2-ff1e67f56177</item>
  8304. <item name="Name" type_name="gh_string" type_code="10">Len</item>
  8305. <item name="NickName" type_name="gh_string" type_code="10">Len</item>
  8306. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  8307. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  8308. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  8309. <item name="Source" index="0" type_name="gh_guid" type_code="9">7d11a12d-1f6f-4777-9bc7-965dd3035809</item>
  8310. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  8311. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  8312. </items>
  8313. <chunks count="1">
  8314. <chunk name="Attributes">
  8315. <items count="2">
  8316. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  8317. <X>620</X>
  8318. <Y>1564</Y>
  8319. <W>25</W>
  8320. <H>20</H>
  8321. </item>
  8322. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  8323. <X>634</X>
  8324. <Y>1574</Y>
  8325. </item>
  8326. </items>
  8327. </chunk>
  8328. </chunks>
  8329. </chunk>
  8330. <chunk name="InputParam" index="4">
  8331. <items count="10">
  8332. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  8333. <item name="Description" type_name="gh_string" type_code="10">Script Variable Wid</item>
  8334. <item name="InstanceGuid" type_name="gh_guid" type_code="9">1af65384-240e-46e3-8309-6fc1ae7504d7</item>
  8335. <item name="Name" type_name="gh_string" type_code="10">Wid</item>
  8336. <item name="NickName" type_name="gh_string" type_code="10">Wid</item>
  8337. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  8338. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  8339. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  8340. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  8341. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  8342. </items>
  8343. <chunks count="1">
  8344. <chunk name="Attributes">
  8345. <items count="2">
  8346. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  8347. <X>620</X>
  8348. <Y>1584</Y>
  8349. <W>25</W>
  8350. <H>20</H>
  8351. </item>
  8352. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  8353. <X>634</X>
  8354. <Y>1594</Y>
  8355. </item>
  8356. </items>
  8357. </chunk>
  8358. </chunks>
  8359. </chunk>
  8360. <chunk name="InputParam" index="5">
  8361. <items count="11">
  8362. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  8363. <item name="Description" type_name="gh_string" type_code="10">Script Variable Ht</item>
  8364. <item name="InstanceGuid" type_name="gh_guid" type_code="9">8d0b03a7-827e-4902-8b4f-5bb0e815b41b</item>
  8365. <item name="Name" type_name="gh_string" type_code="10">Ht</item>
  8366. <item name="NickName" type_name="gh_string" type_code="10">Ht</item>
  8367. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  8368. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  8369. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  8370. <item name="Source" index="0" type_name="gh_guid" type_code="9">d1327bed-c875-4acd-82dd-5fed4b45b311</item>
  8371. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  8372. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  8373. </items>
  8374. <chunks count="1">
  8375. <chunk name="Attributes">
  8376. <items count="2">
  8377. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  8378. <X>620</X>
  8379. <Y>1604</Y>
  8380. <W>25</W>
  8381. <H>20</H>
  8382. </item>
  8383. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  8384. <X>634</X>
  8385. <Y>1614</Y>
  8386. </item>
  8387. </items>
  8388. </chunk>
  8389. </chunks>
  8390. </chunk>
  8391. <chunk name="InputParam" index="6">
  8392. <items count="10">
  8393. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  8394. <item name="Description" type_name="gh_string" type_code="10">Script Variable Ang</item>
  8395. <item name="InstanceGuid" type_name="gh_guid" type_code="9">2deaf321-2e08-44e8-a80f-9628891997a5</item>
  8396. <item name="Name" type_name="gh_string" type_code="10">Ang</item>
  8397. <item name="NickName" type_name="gh_string" type_code="10">Ang</item>
  8398. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  8399. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  8400. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  8401. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  8402. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  8403. </items>
  8404. <chunks count="1">
  8405. <chunk name="Attributes">
  8406. <items count="2">
  8407. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  8408. <X>620</X>
  8409. <Y>1624</Y>
  8410. <W>25</W>
  8411. <H>20</H>
  8412. </item>
  8413. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  8414. <X>634</X>
  8415. <Y>1634</Y>
  8416. </item>
  8417. </items>
  8418. </chunk>
  8419. </chunks>
  8420. </chunk>
  8421. <chunk name="InputParam" index="7">
  8422. <items count="10">
  8423. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  8424. <item name="Description" type_name="gh_string" type_code="10">Script Variable E</item>
  8425. <item name="InstanceGuid" type_name="gh_guid" type_code="9">8dff382d-9d65-40bc-ac45-64afb28a006d</item>
  8426. <item name="Name" type_name="gh_string" type_code="10">E</item>
  8427. <item name="NickName" type_name="gh_string" type_code="10">E</item>
  8428. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  8429. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  8430. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  8431. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  8432. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  8433. </items>
  8434. <chunks count="1">
  8435. <chunk name="Attributes">
  8436. <items count="2">
  8437. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  8438. <X>620</X>
  8439. <Y>1644</Y>
  8440. <W>25</W>
  8441. <H>20</H>
  8442. </item>
  8443. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  8444. <X>634</X>
  8445. <Y>1654</Y>
  8446. </item>
  8447. </items>
  8448. </chunk>
  8449. </chunks>
  8450. </chunk>
  8451. <chunk name="InputParam" index="8">
  8452. <items count="10">
  8453. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  8454. <item name="Description" type_name="gh_string" type_code="10">Script Variable I</item>
  8455. <item name="InstanceGuid" type_name="gh_guid" type_code="9">33d1c654-7377-4887-9445-52cefe06021d</item>
  8456. <item name="Name" type_name="gh_string" type_code="10">I</item>
  8457. <item name="NickName" type_name="gh_string" type_code="10">I</item>
  8458. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  8459. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  8460. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  8461. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  8462. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  8463. </items>
  8464. <chunks count="1">
  8465. <chunk name="Attributes">
  8466. <items count="2">
  8467. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  8468. <X>620</X>
  8469. <Y>1664</Y>
  8470. <W>25</W>
  8471. <H>20</H>
  8472. </item>
  8473. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  8474. <X>634</X>
  8475. <Y>1674</Y>
  8476. </item>
  8477. </items>
  8478. </chunk>
  8479. </chunks>
  8480. </chunk>
  8481. <chunk name="OutputParam" index="0">
  8482. <items count="7">
  8483. <item name="Access" type_name="gh_int32" type_code="3">1</item>
  8484. <item name="Description" type_name="gh_string" type_code="10">Print, Reflect and Error streams</item>
  8485. <item name="InstanceGuid" type_name="gh_guid" type_code="9">964ae01d-510e-42cb-b06f-38805376764d</item>
  8486. <item name="Name" type_name="gh_string" type_code="10">out</item>
  8487. <item name="NickName" type_name="gh_string" type_code="10">out</item>
  8488. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  8489. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  8490. </items>
  8491. <chunks count="1">
  8492. <chunk name="Attributes">
  8493. <items count="2">
  8494. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  8495. <X>675</X>
  8496. <Y>1504</Y>
  8497. <W>25</W>
  8498. <H>22</H>
  8499. </item>
  8500. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  8501. <X>687.5</X>
  8502. <Y>1515.25</Y>
  8503. </item>
  8504. </items>
  8505. </chunk>
  8506. </chunks>
  8507. </chunk>
  8508. <chunk name="OutputParam" index="1">
  8509. <items count="6">
  8510. <item name="Description" type_name="gh_string" type_code="10">Output parameter Pts</item>
  8511. <item name="InstanceGuid" type_name="gh_guid" type_code="9">17f99969-6a6b-431e-8210-f6e15df9a9af</item>
  8512. <item name="Name" type_name="gh_string" type_code="10">Pts</item>
  8513. <item name="NickName" type_name="gh_string" type_code="10">Pts</item>
  8514. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  8515. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  8516. </items>
  8517. <chunks count="1">
  8518. <chunk name="Attributes">
  8519. <items count="2">
  8520. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  8521. <X>675</X>
  8522. <Y>1526</Y>
  8523. <W>25</W>
  8524. <H>23</H>
  8525. </item>
  8526. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  8527. <X>687.5</X>
  8528. <Y>1537.75</Y>
  8529. </item>
  8530. </items>
  8531. </chunk>
  8532. </chunks>
  8533. </chunk>
  8534. <chunk name="OutputParam" index="2">
  8535. <items count="6">
  8536. <item name="Description" type_name="gh_string" type_code="10">Output parameter Crv</item>
  8537. <item name="InstanceGuid" type_name="gh_guid" type_code="9">6548d62a-dfa5-4478-9f16-8d4fb96732c9</item>
  8538. <item name="Name" type_name="gh_string" type_code="10">Crv</item>
  8539. <item name="NickName" type_name="gh_string" type_code="10">Crv</item>
  8540. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  8541. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  8542. </items>
  8543. <chunks count="1">
  8544. <chunk name="Attributes">
  8545. <items count="2">
  8546. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  8547. <X>675</X>
  8548. <Y>1549</Y>
  8549. <W>25</W>
  8550. <H>22</H>
  8551. </item>
  8552. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  8553. <X>687.5</X>
  8554. <Y>1560.25</Y>
  8555. </item>
  8556. </items>
  8557. </chunk>
  8558. </chunks>
  8559. </chunk>
  8560. <chunk name="OutputParam" index="3">
  8561. <items count="6">
  8562. <item name="Description" type_name="gh_string" type_code="10">Output parameter L</item>
  8563. <item name="InstanceGuid" type_name="gh_guid" type_code="9">a2a9f9ae-744d-4886-a3ee-4c33b8365028</item>
  8564. <item name="Name" type_name="gh_string" type_code="10">L</item>
  8565. <item name="NickName" type_name="gh_string" type_code="10">L</item>
  8566. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  8567. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  8568. </items>
  8569. <chunks count="1">
  8570. <chunk name="Attributes">
  8571. <items count="2">
  8572. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  8573. <X>675</X>
  8574. <Y>1571</Y>
  8575. <W>25</W>
  8576. <H>23</H>
  8577. </item>
  8578. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  8579. <X>687.5</X>
  8580. <Y>1582.75</Y>
  8581. </item>
  8582. </items>
  8583. </chunk>
  8584. </chunks>
  8585. </chunk>
  8586. <chunk name="OutputParam" index="4">
  8587. <items count="6">
  8588. <item name="Description" type_name="gh_string" type_code="10">Output parameter W</item>
  8589. <item name="InstanceGuid" type_name="gh_guid" type_code="9">0c900729-ed6e-40e8-809f-e2432521ac54</item>
  8590. <item name="Name" type_name="gh_string" type_code="10">W</item>
  8591. <item name="NickName" type_name="gh_string" type_code="10">W</item>
  8592. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  8593. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  8594. </items>
  8595. <chunks count="1">
  8596. <chunk name="Attributes">
  8597. <items count="2">
  8598. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  8599. <X>675</X>
  8600. <Y>1594</Y>
  8601. <W>25</W>
  8602. <H>22</H>
  8603. </item>
  8604. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  8605. <X>687.5</X>
  8606. <Y>1605.25</Y>
  8607. </item>
  8608. </items>
  8609. </chunk>
  8610. </chunks>
  8611. </chunk>
  8612. <chunk name="OutputParam" index="5">
  8613. <items count="6">
  8614. <item name="Description" type_name="gh_string" type_code="10">Output parameter H</item>
  8615. <item name="InstanceGuid" type_name="gh_guid" type_code="9">7772d1f7-9786-4d55-8690-af9d6877a777</item>
  8616. <item name="Name" type_name="gh_string" type_code="10">H</item>
  8617. <item name="NickName" type_name="gh_string" type_code="10">H</item>
  8618. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  8619. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  8620. </items>
  8621. <chunks count="1">
  8622. <chunk name="Attributes">
  8623. <items count="2">
  8624. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  8625. <X>675</X>
  8626. <Y>1616</Y>
  8627. <W>25</W>
  8628. <H>23</H>
  8629. </item>
  8630. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  8631. <X>687.5</X>
  8632. <Y>1627.75</Y>
  8633. </item>
  8634. </items>
  8635. </chunk>
  8636. </chunks>
  8637. </chunk>
  8638. <chunk name="OutputParam" index="6">
  8639. <items count="6">
  8640. <item name="Description" type_name="gh_string" type_code="10">Output parameter A</item>
  8641. <item name="InstanceGuid" type_name="gh_guid" type_code="9">bc883717-6d8a-41a6-bb0b-3d7c5d7a61ea</item>
  8642. <item name="Name" type_name="gh_string" type_code="10">A</item>
  8643. <item name="NickName" type_name="gh_string" type_code="10">A</item>
  8644. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  8645. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  8646. </items>
  8647. <chunks count="1">
  8648. <chunk name="Attributes">
  8649. <items count="2">
  8650. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  8651. <X>675</X>
  8652. <Y>1639</Y>
  8653. <W>25</W>
  8654. <H>22</H>
  8655. </item>
  8656. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  8657. <X>687.5</X>
  8658. <Y>1650.25</Y>
  8659. </item>
  8660. </items>
  8661. </chunk>
  8662. </chunks>
  8663. </chunk>
  8664. <chunk name="OutputParam" index="7">
  8665. <items count="6">
  8666. <item name="Description" type_name="gh_string" type_code="10">Output parameter F</item>
  8667. <item name="InstanceGuid" type_name="gh_guid" type_code="9">fc8245e0-b2d0-471d-9254-01a0eff7a0b4</item>
  8668. <item name="Name" type_name="gh_string" type_code="10">F</item>
  8669. <item name="NickName" type_name="gh_string" type_code="10">F</item>
  8670. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  8671. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  8672. </items>
  8673. <chunks count="1">
  8674. <chunk name="Attributes">
  8675. <items count="2">
  8676. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  8677. <X>675</X>
  8678. <Y>1661</Y>
  8679. <W>25</W>
  8680. <H>23</H>
  8681. </item>
  8682. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  8683. <X>687.5</X>
  8684. <Y>1672.75</Y>
  8685. </item>
  8686. </items>
  8687. </chunk>
  8688. </chunks>
  8689. </chunk>
  8690. </chunks>
  8691. </chunk>
  8692. </chunks>
  8693. </chunk>
  8694. </chunks>
  8695. </chunk>
  8696. <chunk name="Object" index="66">
  8697. <items count="2">
  8698. <item name="GUID" type_name="gh_guid" type_code="9">57da07bd-ecab-415d-9d86-af36d7073abc</item>
  8699. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  8700. </items>
  8701. <chunks count="1">
  8702. <chunk name="Container">
  8703. <items count="6">
  8704. <item name="Description" type_name="gh_string" type_code="10">Numeric slider for single values</item>
  8705. <item name="InstanceGuid" type_name="gh_guid" type_code="9">7d11a12d-1f6f-4777-9bc7-965dd3035809</item>
  8706. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  8707. <item name="NickName" type_name="gh_string" type_code="10">length</item>
  8708. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  8709. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  8710. </items>
  8711. <chunks count="2">
  8712. <chunk name="Attributes">
  8713. <items count="2">
  8714. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  8715. <X>163</X>
  8716. <Y>1555</Y>
  8717. <W>382</W>
  8718. <H>20</H>
  8719. </item>
  8720. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  8721. <X>163.9633</X>
  8722. <Y>1555.108</Y>
  8723. </item>
  8724. </items>
  8725. </chunk>
  8726. <chunk name="Slider">
  8727. <items count="7">
  8728. <item name="Digits" type_name="gh_int32" type_code="3">2</item>
  8729. <item name="GripDisplay" type_name="gh_int32" type_code="3">1</item>
  8730. <item name="Interval" type_name="gh_int32" type_code="3">0</item>
  8731. <item name="Max" type_name="gh_double" type_code="6">400</item>
  8732. <item name="Min" type_name="gh_double" type_code="6">0</item>
  8733. <item name="SnapCount" type_name="gh_int32" type_code="3">0</item>
  8734. <item name="Value" type_name="gh_double" type_code="6">225</item>
  8735. </items>
  8736. </chunk>
  8737. </chunks>
  8738. </chunk>
  8739. </chunks>
  8740. </chunk>
  8741. <chunk name="Object" index="67">
  8742. <items count="2">
  8743. <item name="GUID" type_name="gh_guid" type_code="9">fbac3e32-f100-4292-8692-77240a42fd1a</item>
  8744. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  8745. </items>
  8746. <chunks count="1">
  8747. <chunk name="Container">
  8748. <items count="8">
  8749. <item name="Description" type_name="gh_string" type_code="10">Contains a collection of three-dimensional points</item>
  8750. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  8751. <item name="InstanceGuid" type_name="gh_guid" type_code="9">108e145a-a9f8-4c1a-856f-eef3be9eef4b</item>
  8752. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  8753. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  8754. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  8755. <item name="Source" index="0" type_name="gh_guid" type_code="9">17f99969-6a6b-431e-8210-f6e15df9a9af</item>
  8756. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  8757. </items>
  8758. <chunks count="1">
  8759. <chunk name="Attributes">
  8760. <items count="2">
  8761. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  8762. <X>788</X>
  8763. <Y>1463</Y>
  8764. <W>50</W>
  8765. <H>24</H>
  8766. </item>
  8767. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  8768. <X>813.4178</X>
  8769. <Y>1475.827</Y>
  8770. </item>
  8771. </items>
  8772. </chunk>
  8773. </chunks>
  8774. </chunk>
  8775. </chunks>
  8776. </chunk>
  8777. <chunk name="Object" index="68">
  8778. <items count="2">
  8779. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  8780. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  8781. </items>
  8782. <chunks count="1">
  8783. <chunk name="Container">
  8784. <items count="9">
  8785. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  8786. <item name="InstanceGuid" type_name="gh_guid" type_code="9">de6e3b3a-9675-45ae-ad2f-bfc0988f9582</item>
  8787. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  8788. <item name="NickName" type_name="gh_string" type_code="10"></item>
  8789. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  8790. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  8791. <item name="Source" index="0" type_name="gh_guid" type_code="9">a0d9174c-2b33-4845-86da-70d722e564b7</item>
  8792. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  8793. <item name="UserText" type_name="gh_string" type_code="10">Double click to edit panel content…</item>
  8794. </items>
  8795. <chunks count="2">
  8796. <chunk name="Attributes">
  8797. <items count="5">
  8798. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  8799. <X>846</X>
  8800. <Y>1678</Y>
  8801. <W>105</W>
  8802. <H>55</H>
  8803. </item>
  8804. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  8805. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  8806. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  8807. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  8808. <X>846.2736</X>
  8809. <Y>1678.188</Y>
  8810. </item>
  8811. </items>
  8812. </chunk>
  8813. <chunk name="PanelProperties">
  8814. <items count="7">
  8815. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  8816. <ARGB>255;255;250;90</ARGB>
  8817. </item>
  8818. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  8819. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  8820. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  8821. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  8822. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  8823. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  8824. </items>
  8825. </chunk>
  8826. </chunks>
  8827. </chunk>
  8828. </chunks>
  8829. </chunk>
  8830. <chunk name="Object" index="69">
  8831. <items count="2">
  8832. <item name="GUID" type_name="gh_guid" type_code="9">0d77c51e-584f-44e8-aed2-c2ddf4803888</item>
  8833. <item name="Name" type_name="gh_string" type_code="10">Degrees</item>
  8834. </items>
  8835. <chunks count="1">
  8836. <chunk name="Container">
  8837. <items count="4">
  8838. <item name="Description" type_name="gh_string" type_code="10">Convert an angle specified in radians to degrees</item>
  8839. <item name="InstanceGuid" type_name="gh_guid" type_code="9">9bc218b0-faa5-4566-a292-b5565b343ee8</item>
  8840. <item name="Name" type_name="gh_string" type_code="10">Degrees</item>
  8841. <item name="NickName" type_name="gh_string" type_code="10">Deg</item>
  8842. </items>
  8843. <chunks count="3">
  8844. <chunk name="Attributes">
  8845. <items count="2">
  8846. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  8847. <X>759</X>
  8848. <Y>1690</Y>
  8849. <W>64</W>
  8850. <H>28</H>
  8851. </item>
  8852. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  8853. <X>789</X>
  8854. <Y>1704</Y>
  8855. </item>
  8856. </items>
  8857. </chunk>
  8858. <chunk name="param_input" index="0">
  8859. <items count="7">
  8860. <item name="Description" type_name="gh_string" type_code="10">Angle in radians</item>
  8861. <item name="InstanceGuid" type_name="gh_guid" type_code="9">8dd5ffda-e6b3-4328-a1c1-726386b31dd7</item>
  8862. <item name="Name" type_name="gh_string" type_code="10">Radians</item>
  8863. <item name="NickName" type_name="gh_string" type_code="10">R</item>
  8864. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  8865. <item name="Source" index="0" type_name="gh_guid" type_code="9">bc883717-6d8a-41a6-bb0b-3d7c5d7a61ea</item>
  8866. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  8867. </items>
  8868. <chunks count="1">
  8869. <chunk name="Attributes">
  8870. <items count="2">
  8871. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  8872. <X>761</X>
  8873. <Y>1692</Y>
  8874. <W>13</W>
  8875. <H>24</H>
  8876. </item>
  8877. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  8878. <X>769</X>
  8879. <Y>1704</Y>
  8880. </item>
  8881. </items>
  8882. </chunk>
  8883. </chunks>
  8884. </chunk>
  8885. <chunk name="param_output" index="0">
  8886. <items count="6">
  8887. <item name="Description" type_name="gh_string" type_code="10">Angle in degrees</item>
  8888. <item name="InstanceGuid" type_name="gh_guid" type_code="9">a0d9174c-2b33-4845-86da-70d722e564b7</item>
  8889. <item name="Name" type_name="gh_string" type_code="10">Degrees</item>
  8890. <item name="NickName" type_name="gh_string" type_code="10">D</item>
  8891. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  8892. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  8893. </items>
  8894. <chunks count="1">
  8895. <chunk name="Attributes">
  8896. <items count="2">
  8897. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  8898. <X>804</X>
  8899. <Y>1692</Y>
  8900. <W>17</W>
  8901. <H>24</H>
  8902. </item>
  8903. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  8904. <X>812.5</X>
  8905. <Y>1704</Y>
  8906. </item>
  8907. </items>
  8908. </chunk>
  8909. </chunks>
  8910. </chunk>
  8911. </chunks>
  8912. </chunk>
  8913. </chunks>
  8914. </chunk>
  8915. <chunk name="Object" index="70">
  8916. <items count="2">
  8917. <item name="GUID" type_name="gh_guid" type_code="9">3581f42a-9592-4549-bd6b-1c0fc39d067b</item>
  8918. <item name="Name" type_name="gh_string" type_code="10">Construct Point</item>
  8919. </items>
  8920. <chunks count="1">
  8921. <chunk name="Container">
  8922. <items count="4">
  8923. <item name="Description" type_name="gh_string" type_code="10">Construct a point from {xyz} coordinates.</item>
  8924. <item name="InstanceGuid" type_name="gh_guid" type_code="9">5bb8544d-21ed-430d-b9a1-3d097d9c0f85</item>
  8925. <item name="Name" type_name="gh_string" type_code="10">Construct Point</item>
  8926. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  8927. </items>
  8928. <chunks count="5">
  8929. <chunk name="Attributes">
  8930. <items count="2">
  8931. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  8932. <X>474</X>
  8933. <Y>1440</Y>
  8934. <W>67</W>
  8935. <H>64</H>
  8936. </item>
  8937. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  8938. <X>505</X>
  8939. <Y>1472</Y>
  8940. </item>
  8941. </items>
  8942. </chunk>
  8943. <chunk name="param_input" index="0">
  8944. <items count="7">
  8945. <item name="Description" type_name="gh_string" type_code="10">{x} coordinate</item>
  8946. <item name="InstanceGuid" type_name="gh_guid" type_code="9">fd05bf19-e5b9-428a-a0b7-1183ddb4d4cb</item>
  8947. <item name="Name" type_name="gh_string" type_code="10">X coordinate</item>
  8948. <item name="NickName" type_name="gh_string" type_code="10">X</item>
  8949. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  8950. <item name="Source" index="0" type_name="gh_guid" type_code="9">18da725f-8fce-4b5c-bfc0-b35f534747f4</item>
  8951. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  8952. </items>
  8953. <chunks count="2">
  8954. <chunk name="Attributes">
  8955. <items count="2">
  8956. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  8957. <X>476</X>
  8958. <Y>1442</Y>
  8959. <W>14</W>
  8960. <H>20</H>
  8961. </item>
  8962. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  8963. <X>484.5</X>
  8964. <Y>1452</Y>
  8965. </item>
  8966. </items>
  8967. </chunk>
  8968. <chunk name="PersistentData">
  8969. <items count="1">
  8970. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  8971. </items>
  8972. <chunks count="1">
  8973. <chunk name="Branch" index="0">
  8974. <items count="2">
  8975. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  8976. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  8977. </items>
  8978. <chunks count="1">
  8979. <chunk name="Item" index="0">
  8980. <items count="1">
  8981. <item name="number" type_name="gh_double" type_code="6">0</item>
  8982. </items>
  8983. </chunk>
  8984. </chunks>
  8985. </chunk>
  8986. </chunks>
  8987. </chunk>
  8988. </chunks>
  8989. </chunk>
  8990. <chunk name="param_input" index="1">
  8991. <items count="7">
  8992. <item name="Description" type_name="gh_string" type_code="10">{y} coordinate</item>
  8993. <item name="InstanceGuid" type_name="gh_guid" type_code="9">5d500e04-4c0a-4e2e-90e3-a69f12e6e56b</item>
  8994. <item name="Name" type_name="gh_string" type_code="10">Y coordinate</item>
  8995. <item name="NickName" type_name="gh_string" type_code="10">Y</item>
  8996. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  8997. <item name="Source" index="0" type_name="gh_guid" type_code="9">bdda70a3-abe5-47d3-bab1-d54eaac87273</item>
  8998. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  8999. </items>
  9000. <chunks count="2">
  9001. <chunk name="Attributes">
  9002. <items count="2">
  9003. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  9004. <X>476</X>
  9005. <Y>1462</Y>
  9006. <W>14</W>
  9007. <H>20</H>
  9008. </item>
  9009. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  9010. <X>484.5</X>
  9011. <Y>1472</Y>
  9012. </item>
  9013. </items>
  9014. </chunk>
  9015. <chunk name="PersistentData">
  9016. <items count="1">
  9017. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  9018. </items>
  9019. <chunks count="1">
  9020. <chunk name="Branch" index="0">
  9021. <items count="2">
  9022. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  9023. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  9024. </items>
  9025. <chunks count="1">
  9026. <chunk name="Item" index="0">
  9027. <items count="1">
  9028. <item name="number" type_name="gh_double" type_code="6">0</item>
  9029. </items>
  9030. </chunk>
  9031. </chunks>
  9032. </chunk>
  9033. </chunks>
  9034. </chunk>
  9035. </chunks>
  9036. </chunk>
  9037. <chunk name="param_input" index="2">
  9038. <items count="6">
  9039. <item name="Description" type_name="gh_string" type_code="10">{z} coordinate</item>
  9040. <item name="InstanceGuid" type_name="gh_guid" type_code="9">b73aa23e-da5e-429b-a2ad-c29573433d8d</item>
  9041. <item name="Name" type_name="gh_string" type_code="10">Z coordinate</item>
  9042. <item name="NickName" type_name="gh_string" type_code="10">Z</item>
  9043. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  9044. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  9045. </items>
  9046. <chunks count="2">
  9047. <chunk name="Attributes">
  9048. <items count="2">
  9049. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  9050. <X>476</X>
  9051. <Y>1482</Y>
  9052. <W>14</W>
  9053. <H>20</H>
  9054. </item>
  9055. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  9056. <X>484.5</X>
  9057. <Y>1492</Y>
  9058. </item>
  9059. </items>
  9060. </chunk>
  9061. <chunk name="PersistentData">
  9062. <items count="1">
  9063. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  9064. </items>
  9065. <chunks count="1">
  9066. <chunk name="Branch" index="0">
  9067. <items count="2">
  9068. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  9069. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  9070. </items>
  9071. <chunks count="1">
  9072. <chunk name="Item" index="0">
  9073. <items count="1">
  9074. <item name="number" type_name="gh_double" type_code="6">0</item>
  9075. </items>
  9076. </chunk>
  9077. </chunks>
  9078. </chunk>
  9079. </chunks>
  9080. </chunk>
  9081. </chunks>
  9082. </chunk>
  9083. <chunk name="param_output" index="0">
  9084. <items count="6">
  9085. <item name="Description" type_name="gh_string" type_code="10">Point coordinate</item>
  9086. <item name="InstanceGuid" type_name="gh_guid" type_code="9">7470aaae-fe5c-4a6e-a5d7-3c8c950bb9fb</item>
  9087. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  9088. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  9089. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  9090. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  9091. </items>
  9092. <chunks count="1">
  9093. <chunk name="Attributes">
  9094. <items count="2">
  9095. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  9096. <X>520</X>
  9097. <Y>1442</Y>
  9098. <W>19</W>
  9099. <H>60</H>
  9100. </item>
  9101. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  9102. <X>529.5</X>
  9103. <Y>1472</Y>
  9104. </item>
  9105. </items>
  9106. </chunk>
  9107. </chunks>
  9108. </chunk>
  9109. </chunks>
  9110. </chunk>
  9111. </chunks>
  9112. </chunk>
  9113. <chunk name="Object" index="71">
  9114. <items count="2">
  9115. <item name="GUID" type_name="gh_guid" type_code="9">d5967b9f-e8ee-436b-a8ad-29fdcecf32d5</item>
  9116. <item name="Name" type_name="gh_string" type_code="10">Curve</item>
  9117. </items>
  9118. <chunks count="1">
  9119. <chunk name="Container">
  9120. <items count="7">
  9121. <item name="Description" type_name="gh_string" type_code="10">Contains a collection of generic curves</item>
  9122. <item name="InstanceGuid" type_name="gh_guid" type_code="9">d707c7a6-ce24-45bb-a3b3-c616b13d07dc</item>
  9123. <item name="Name" type_name="gh_string" type_code="10">Curve</item>
  9124. <item name="NickName" type_name="gh_string" type_code="10">Crv</item>
  9125. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  9126. <item name="Source" index="0" type_name="gh_guid" type_code="9">6548d62a-dfa5-4478-9f16-8d4fb96732c9</item>
  9127. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  9128. </items>
  9129. <chunks count="1">
  9130. <chunk name="Attributes">
  9131. <items count="2">
  9132. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  9133. <X>788</X>
  9134. <Y>1506</Y>
  9135. <W>50</W>
  9136. <H>24</H>
  9137. </item>
  9138. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  9139. <X>813.4067</X>
  9140. <Y>1518.357</Y>
  9141. </item>
  9142. </items>
  9143. </chunk>
  9144. </chunks>
  9145. </chunk>
  9146. </chunks>
  9147. </chunk>
  9148. <chunk name="Object" index="72">
  9149. <items count="2">
  9150. <item name="GUID" type_name="gh_guid" type_code="9">17b7152b-d30d-4d50-b9ef-c9fe25576fc2</item>
  9151. <item name="Name" type_name="gh_string" type_code="10">XY Plane</item>
  9152. </items>
  9153. <chunks count="1">
  9154. <chunk name="Container">
  9155. <items count="5">
  9156. <item name="Description" type_name="gh_string" type_code="10">World XY plane.</item>
  9157. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  9158. <item name="InstanceGuid" type_name="gh_guid" type_code="9">1653bea2-6780-45be-ad4a-2c29f59e4c19</item>
  9159. <item name="Name" type_name="gh_string" type_code="10">XY Plane</item>
  9160. <item name="NickName" type_name="gh_string" type_code="10">XY</item>
  9161. </items>
  9162. <chunks count="3">
  9163. <chunk name="Attributes">
  9164. <items count="2">
  9165. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  9166. <X>479</X>
  9167. <Y>1515</Y>
  9168. <W>64</W>
  9169. <H>28</H>
  9170. </item>
  9171. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  9172. <X>510</X>
  9173. <Y>1529</Y>
  9174. </item>
  9175. </items>
  9176. </chunk>
  9177. <chunk name="param_input" index="0">
  9178. <items count="6">
  9179. <item name="Description" type_name="gh_string" type_code="10">Origin of plane</item>
  9180. <item name="InstanceGuid" type_name="gh_guid" type_code="9">6ccdcfe2-c623-42d1-8da5-1e99c86f6f52</item>
  9181. <item name="Name" type_name="gh_string" type_code="10">Origin</item>
  9182. <item name="NickName" type_name="gh_string" type_code="10">O</item>
  9183. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  9184. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  9185. </items>
  9186. <chunks count="2">
  9187. <chunk name="Attributes">
  9188. <items count="2">
  9189. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  9190. <X>481</X>
  9191. <Y>1517</Y>
  9192. <W>14</W>
  9193. <H>24</H>
  9194. </item>
  9195. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  9196. <X>489.5</X>
  9197. <Y>1529</Y>
  9198. </item>
  9199. </items>
  9200. </chunk>
  9201. <chunk name="PersistentData">
  9202. <items count="1">
  9203. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  9204. </items>
  9205. <chunks count="1">
  9206. <chunk name="Branch" index="0">
  9207. <items count="2">
  9208. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  9209. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  9210. </items>
  9211. <chunks count="1">
  9212. <chunk name="Item" index="0">
  9213. <!--GH_Point only stores data which exists, test the existence of data fields prior to reading.-->
  9214. <items count="1">
  9215. <item name="Coordinate" type_name="gh_point3d" type_code="51">
  9216. <X>0</X>
  9217. <Y>0</Y>
  9218. <Z>0</Z>
  9219. </item>
  9220. </items>
  9221. </chunk>
  9222. </chunks>
  9223. </chunk>
  9224. </chunks>
  9225. </chunk>
  9226. </chunks>
  9227. </chunk>
  9228. <chunk name="param_output" index="0">
  9229. <items count="6">
  9230. <item name="Description" type_name="gh_string" type_code="10">World XY plane</item>
  9231. <item name="InstanceGuid" type_name="gh_guid" type_code="9">c7f844d2-ba5e-476f-b4d4-193dcea7a216</item>
  9232. <item name="Name" type_name="gh_string" type_code="10">Plane</item>
  9233. <item name="NickName" type_name="gh_string" type_code="10">P</item>
  9234. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  9235. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  9236. </items>
  9237. <chunks count="1">
  9238. <chunk name="Attributes">
  9239. <items count="2">
  9240. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  9241. <X>525</X>
  9242. <Y>1517</Y>
  9243. <W>16</W>
  9244. <H>24</H>
  9245. </item>
  9246. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  9247. <X>533</X>
  9248. <Y>1529</Y>
  9249. </item>
  9250. </items>
  9251. </chunk>
  9252. </chunks>
  9253. </chunk>
  9254. </chunks>
  9255. </chunk>
  9256. </chunks>
  9257. </chunk>
  9258. <chunk name="Object" index="73">
  9259. <items count="2">
  9260. <item name="GUID" type_name="gh_guid" type_code="9">57da07bd-ecab-415d-9d86-af36d7073abc</item>
  9261. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  9262. </items>
  9263. <chunks count="1">
  9264. <chunk name="Container">
  9265. <items count="6">
  9266. <item name="Description" type_name="gh_string" type_code="10">Numeric slider for single values</item>
  9267. <item name="InstanceGuid" type_name="gh_guid" type_code="9">d1327bed-c875-4acd-82dd-5fed4b45b311</item>
  9268. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  9269. <item name="NickName" type_name="gh_string" type_code="10">height</item>
  9270. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  9271. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  9272. </items>
  9273. <chunks count="2">
  9274. <chunk name="Attributes">
  9275. <items count="2">
  9276. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  9277. <X>168</X>
  9278. <Y>1608</Y>
  9279. <W>381</W>
  9280. <H>20</H>
  9281. </item>
  9282. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  9283. <X>168.731</X>
  9284. <Y>1608.997</Y>
  9285. </item>
  9286. </items>
  9287. </chunk>
  9288. <chunk name="Slider">
  9289. <items count="7">
  9290. <item name="Digits" type_name="gh_int32" type_code="3">2</item>
  9291. <item name="GripDisplay" type_name="gh_int32" type_code="3">1</item>
  9292. <item name="Interval" type_name="gh_int32" type_code="3">0</item>
  9293. <item name="Max" type_name="gh_double" type_code="6">200</item>
  9294. <item name="Min" type_name="gh_double" type_code="6">0</item>
  9295. <item name="SnapCount" type_name="gh_int32" type_code="3">0</item>
  9296. <item name="Value" type_name="gh_double" type_code="6">89</item>
  9297. </items>
  9298. </chunk>
  9299. </chunks>
  9300. </chunk>
  9301. </chunks>
  9302. </chunk>
  9303. <chunk name="Object" index="74">
  9304. <items count="2">
  9305. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  9306. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  9307. </items>
  9308. <chunks count="1">
  9309. <chunk name="Container">
  9310. <items count="9">
  9311. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  9312. <item name="InstanceGuid" type_name="gh_guid" type_code="9">e3db26aa-60fb-43b8-8092-d7ecfc283153</item>
  9313. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  9314. <item name="NickName" type_name="gh_string" type_code="10"></item>
  9315. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  9316. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  9317. <item name="Source" index="0" type_name="gh_guid" type_code="9">a2a9f9ae-744d-4886-a3ee-4c33b8365028</item>
  9318. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  9319. <item name="UserText" type_name="gh_string" type_code="10">Double click to edit panel content…</item>
  9320. </items>
  9321. <chunks count="2">
  9322. <chunk name="Attributes">
  9323. <items count="5">
  9324. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  9325. <X>743</X>
  9326. <Y>1557</Y>
  9327. <W>97</W>
  9328. <H>38</H>
  9329. </item>
  9330. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  9331. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  9332. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  9333. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  9334. <X>743.3972</X>
  9335. <Y>1557.754</Y>
  9336. </item>
  9337. </items>
  9338. </chunk>
  9339. <chunk name="PanelProperties">
  9340. <items count="7">
  9341. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  9342. <ARGB>255;255;250;90</ARGB>
  9343. </item>
  9344. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  9345. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  9346. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  9347. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  9348. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  9349. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  9350. </items>
  9351. </chunk>
  9352. </chunks>
  9353. </chunk>
  9354. </chunks>
  9355. </chunk>
  9356. <chunk name="Object" index="75">
  9357. <items count="2">
  9358. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  9359. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  9360. </items>
  9361. <chunks count="1">
  9362. <chunk name="Container">
  9363. <items count="9">
  9364. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  9365. <item name="InstanceGuid" type_name="gh_guid" type_code="9">dfa914e0-e01f-4bbe-b66d-a9d4a08bb5c7</item>
  9366. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  9367. <item name="NickName" type_name="gh_string" type_code="10"></item>
  9368. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  9369. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  9370. <item name="Source" index="0" type_name="gh_guid" type_code="9">0c900729-ed6e-40e8-809f-e2432521ac54</item>
  9371. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  9372. <item name="UserText" type_name="gh_string" type_code="10">Double click to edit panel content…</item>
  9373. </items>
  9374. <chunks count="2">
  9375. <chunk name="Attributes">
  9376. <items count="5">
  9377. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  9378. <X>854</X>
  9379. <Y>1582</Y>
  9380. <W>105</W>
  9381. <H>55</H>
  9382. </item>
  9383. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  9384. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  9385. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  9386. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  9387. <X>854.3154</X>
  9388. <Y>1582.622</Y>
  9389. </item>
  9390. </items>
  9391. </chunk>
  9392. <chunk name="PanelProperties">
  9393. <items count="7">
  9394. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  9395. <ARGB>255;255;250;90</ARGB>
  9396. </item>
  9397. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  9398. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  9399. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  9400. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  9401. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  9402. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  9403. </items>
  9404. </chunk>
  9405. </chunks>
  9406. </chunk>
  9407. </chunks>
  9408. </chunk>
  9409. <chunk name="Object" index="76">
  9410. <items count="2">
  9411. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  9412. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  9413. </items>
  9414. <chunks count="1">
  9415. <chunk name="Container">
  9416. <items count="9">
  9417. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  9418. <item name="InstanceGuid" type_name="gh_guid" type_code="9">b487f9ab-5cec-404a-9235-d2a5f0e79007</item>
  9419. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  9420. <item name="NickName" type_name="gh_string" type_code="10"></item>
  9421. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  9422. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  9423. <item name="Source" index="0" type_name="gh_guid" type_code="9">7772d1f7-9786-4d55-8690-af9d6877a777</item>
  9424. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  9425. <item name="UserText" type_name="gh_string" type_code="10">Double click to edit panel content…</item>
  9426. </items>
  9427. <chunks count="2">
  9428. <chunk name="Attributes">
  9429. <items count="5">
  9430. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  9431. <X>742</X>
  9432. <Y>1618</Y>
  9433. <W>97</W>
  9434. <H>38</H>
  9435. </item>
  9436. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  9437. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  9438. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  9439. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  9440. <X>742.3411</X>
  9441. <Y>1618.138</Y>
  9442. </item>
  9443. </items>
  9444. </chunk>
  9445. <chunk name="PanelProperties">
  9446. <items count="7">
  9447. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  9448. <ARGB>255;255;250;90</ARGB>
  9449. </item>
  9450. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  9451. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  9452. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  9453. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  9454. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  9455. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  9456. </items>
  9457. </chunk>
  9458. </chunks>
  9459. </chunk>
  9460. </chunks>
  9461. </chunk>
  9462. <chunk name="Object" index="77">
  9463. <items count="2">
  9464. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  9465. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  9466. </items>
  9467. <chunks count="1">
  9468. <chunk name="Container">
  9469. <items count="8">
  9470. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  9471. <item name="InstanceGuid" type_name="gh_guid" type_code="9">bdda70a3-abe5-47d3-bab1-d54eaac87273</item>
  9472. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  9473. <item name="NickName" type_name="gh_string" type_code="10"></item>
  9474. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  9475. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  9476. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  9477. <item name="UserText" type_name="gh_string" type_code="10">-150</item>
  9478. </items>
  9479. <chunks count="2">
  9480. <chunk name="Attributes">
  9481. <items count="5">
  9482. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  9483. <X>378</X>
  9484. <Y>1465</Y>
  9485. <W>50</W>
  9486. <H>20</H>
  9487. </item>
  9488. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  9489. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  9490. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  9491. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  9492. <X>378.501</X>
  9493. <Y>1465.184</Y>
  9494. </item>
  9495. </items>
  9496. </chunk>
  9497. <chunk name="PanelProperties">
  9498. <items count="7">
  9499. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  9500. <ARGB>255;255;250;90</ARGB>
  9501. </item>
  9502. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  9503. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  9504. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  9505. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  9506. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  9507. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  9508. </items>
  9509. </chunk>
  9510. </chunks>
  9511. </chunk>
  9512. </chunks>
  9513. </chunk>
  9514. <chunk name="Object" index="78">
  9515. <items count="2">
  9516. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  9517. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  9518. </items>
  9519. <chunks count="1">
  9520. <chunk name="Container">
  9521. <items count="8">
  9522. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  9523. <item name="InstanceGuid" type_name="gh_guid" type_code="9">18da725f-8fce-4b5c-bfc0-b35f534747f4</item>
  9524. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  9525. <item name="NickName" type_name="gh_string" type_code="10"></item>
  9526. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  9527. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  9528. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  9529. <item name="UserText" type_name="gh_string" type_code="10">-150</item>
  9530. </items>
  9531. <chunks count="2">
  9532. <chunk name="Attributes">
  9533. <items count="5">
  9534. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  9535. <X>377</X>
  9536. <Y>1434</Y>
  9537. <W>50</W>
  9538. <H>20</H>
  9539. </item>
  9540. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  9541. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  9542. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  9543. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  9544. <X>377.701</X>
  9545. <Y>1434.784</Y>
  9546. </item>
  9547. </items>
  9548. </chunk>
  9549. <chunk name="PanelProperties">
  9550. <items count="7">
  9551. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  9552. <ARGB>255;255;250;90</ARGB>
  9553. </item>
  9554. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  9555. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  9556. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  9557. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  9558. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  9559. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  9560. </items>
  9561. </chunk>
  9562. </chunks>
  9563. </chunk>
  9564. </chunks>
  9565. </chunk>
  9566. <chunk name="Object" index="79">
  9567. <items count="2">
  9568. <item name="GUID" type_name="gh_guid" type_code="9">7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe</item>
  9569. <item name="Name" type_name="gh_string" type_code="10">Scribble</item>
  9570. </items>
  9571. <chunks count="1">
  9572. <chunk name="Container">
  9573. <items count="13">
  9574. <item name="Bold" type_name="gh_bool" type_code="1">true</item>
  9575. <item name="Ca" type_name="gh_drawing_pointf" type_code="31">
  9576. <X>1685.887</X>
  9577. <Y>79.1758</Y>
  9578. </item>
  9579. <item name="Cb" type_name="gh_drawing_pointf" type_code="31">
  9580. <X>1984.071</X>
  9581. <Y>81.3421</Y>
  9582. </item>
  9583. <item name="Cc" type_name="gh_drawing_pointf" type_code="31">
  9584. <X>1983.831</X>
  9585. <Y>114.478</Y>
  9586. </item>
  9587. <item name="Cd" type_name="gh_drawing_pointf" type_code="31">
  9588. <X>1685.647</X>
  9589. <Y>112.3117</Y>
  9590. </item>
  9591. <item name="Description" type_name="gh_string" type_code="10">A quick note</item>
  9592. <item name="Font" type_name="gh_string" type_code="10">Microsoft Sans Serif</item>
  9593. <item name="InstanceGuid" type_name="gh_guid" type_code="9">18f8db3f-bb9b-4a79-9d98-1a46a8a0c59b</item>
  9594. <item name="Italic" type_name="gh_bool" type_code="1">false</item>
  9595. <item name="Name" type_name="gh_string" type_code="10">Scribble</item>
  9596. <item name="NickName" type_name="gh_string" type_code="10">Scribble</item>
  9597. <item name="Size" type_name="gh_single" type_code="5">16</item>
  9598. <item name="Text" type_name="gh_string" type_code="10">Negative width = self-intersecting result
  9599. Negative height and angle work too</item>
  9600. </items>
  9601. <chunks count="1">
  9602. <chunk name="Attributes">
  9603. <items count="2">
  9604. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  9605. <X>1680.647</X>
  9606. <Y>74.1758</Y>
  9607. <W>308.4244</W>
  9608. <H>45.30215</H>
  9609. </item>
  9610. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  9611. <X>1685.887</X>
  9612. <Y>79.1758</Y>
  9613. </item>
  9614. </items>
  9615. </chunk>
  9616. </chunks>
  9617. </chunk>
  9618. </chunks>
  9619. </chunk>
  9620. <chunk name="Object" index="80">
  9621. <items count="2">
  9622. <item name="GUID" type_name="gh_guid" type_code="9">079bd9bd-54a0-41d4-98af-db999015f63d</item>
  9623. <item name="Name" type_name="gh_string" type_code="10">VB Script</item>
  9624. </items>
  9625. <chunks count="1">
  9626. <chunk name="Container">
  9627. <items count="10">
  9628. <item name="AdditionalSource" type_name="gh_string" type_code="10"> Private Function IsSet(ByVal param As String) As Boolean ' Check if an input parameter has data
  9629. Dim i As Integer = Component.Params.IndexOfInputParam(param)
  9630. If i &gt; -1 Then
  9631. Return Component.Params.Input.ElementAt(i).DataType &gt; 1 ' input parameter DataType of 1 means it's not receiving input (internal or external)
  9632. Else
  9633. Msg("error", "Input parameter '" &amp; param &amp; "' not found")
  9634. Return False
  9635. End If
  9636. End Function
  9637. Private Sub Msg(ByVal type As String, ByVal msg As String) ' Output an error, warning, or informational message
  9638. Select Case type
  9639. Case "error"
  9640. Component.AddRuntimeMessage(GH_RuntimeMessageLevel.Error, msg)
  9641. Print("Error: " &amp; msg)
  9642. Case "warning"
  9643. Component.AddRuntimeMessage(GH_RuntimeMessageLevel.Warning, msg)
  9644. Print("Warning: " &amp; msg)
  9645. Case "info"
  9646. Component.AddRuntimeMessage(GH_RuntimeMessageLevel.Remark, msg)
  9647. Print(msg)
  9648. End Select
  9649. End Sub
  9650. ' Solve for the m parameter from length and width (reference {1} equation (34), except b = width and K(k) and E(k) should be K(m) and E(m))
  9651. Private Function SolveMFromLenWid(ByVal L As Double, ByVal w As Double) As Double
  9652. If w = 0 Then
  9653. Return Defined.M_ZERO_W ' for the boundry condition width = 0, bypass the function and return the known m value
  9654. End If
  9655. Dim n As Integer = 1 ' Iteration counter (quit if &gt;MAXIT)
  9656. Dim lower As Double = 0 ' m must be within this range
  9657. Dim upper As Double = 1
  9658. Dim m As Double
  9659. Dim cwl As Double
  9660. Do While (upper - lower) &gt; Defined.MAXERR AndAlso (n) &lt; Defined.MAXIT ' Repeat until range narrow enough or MAXIT
  9661. m = (upper + lower) / 2
  9662. cwl = 2 * EllipticE(m) / EllipticK(m) - 1 ' calculate w/L with the test value of m
  9663. If cwl &lt; w / L Then ' compares the calculated w/L with the actual w/L then narrows the range of possible m
  9664. upper = m
  9665. Else
  9666. lower = m
  9667. End If
  9668. n += 1
  9669. Loop
  9670. Return m
  9671. End Function
  9672. ' Solve for the m parameter from length and height (reference {1} equation (33), except K(k) should be K(m) and k = sqrt(m))
  9673. ' Note that it's actually possible to find 2 valid values for m (hence 2 width values) at certain height values
  9674. Private Function SolveMFromLenHt(ByVal L As Double, ByVal h As Double) As List(Of Double)
  9675. Dim n As Integer = 1 ' Iteration counter (quit if &gt;MAXIT)
  9676. Dim lower As Double = 0 ' m must be within this range
  9677. Dim upper As Double = 1
  9678. Dim twoWidths As Boolean = h / L &gt;= Defined.DOUBLE_W_HL_RATIO And h / L &lt; Defined.MAX_HL_RATIO ' check to see if h/L is within the range where 2 solutions for the width are possible
  9679. Dim m As Double
  9680. Dim mult_m As New List(Of Double)
  9681. Dim chl As Double
  9682. If twoWidths Then
  9683. ' find the first of two possible solutions for m with the following limits:
  9684. lower = Defined.M_DOUBLE_W ' see constants at bottom of script
  9685. upper = Defined.M_MAXHEIGHT ' see constants at bottom of script
  9686. Do While (upper - lower) &gt; Defined.MAXERR AndAlso (n) &lt; Defined.MAXIT ' Repeat until range narrow enough or MAXIT
  9687. m = (upper + lower) / 2
  9688. chl = Math.Sqrt(m) / EllipticK(m) ' calculate h/L with the test value of m
  9689. If chl &gt; h / L Then ' compares the calculated h/L with the actual h/L then narrows the range of possible m
  9690. upper = m
  9691. Else
  9692. lower = m
  9693. End If
  9694. n += 1
  9695. Loop
  9696. mult_m.Add(m)
  9697. ' then find the second of two possible solutions for m with the following limits:
  9698. lower = Defined.M_MAXHEIGHT ' see constants at bottom of script
  9699. upper = 1
  9700. Do While (upper - lower) &gt; Defined.MAXERR AndAlso (n) &lt; Defined.MAXIT ' Repeat until range narrow enough or MAXIT
  9701. m = (upper + lower) / 2
  9702. chl = Math.Sqrt(m) / EllipticK(m) ' calculate h/L with the test value of m
  9703. If chl &lt; h / L Then ' compares the calculated h/L with the actual h/L then narrows the range of possible m
  9704. upper = m
  9705. Else
  9706. lower = m
  9707. End If
  9708. n += 1
  9709. Loop
  9710. If m &lt;= Defined.M_MAX Then ' return this m parameter only if it falls within the maximum useful value (above which the curve breaks down)
  9711. mult_m.Add(m)
  9712. End If
  9713. Else
  9714. ' find the one possible solution for the m parameter
  9715. upper = Defined.M_DOUBLE_W ' limit the upper end of the search to the maximum value of m for which only one solution exists
  9716. Do While (upper - lower) &gt; Defined.MAXERR AndAlso (n) &lt; Defined.MAXIT ' Repeat until range narrow enough or MAXIT
  9717. m = (upper + lower) / 2
  9718. chl = Math.Sqrt(m) / EllipticK(m) ' calculate h/L with the test value of m
  9719. If chl &gt; h / L Then ' compares the calculated h/L with the actual h/L then narrows the range of possible m
  9720. upper = m
  9721. Else
  9722. lower = m
  9723. End If
  9724. n += 1
  9725. Loop
  9726. mult_m.Add(m)
  9727. End If
  9728. Return mult_m
  9729. End Function
  9730. ' Solve for the m parameter from width and height (derived from reference {1} equations (33) and (34) with same notes as above)
  9731. Private Function SolveMFromWidHt(ByVal w As Double, ByVal h As Double) As Double
  9732. Dim n As Integer = 1 ' Iteration counter (quit if &gt;MAXIT)
  9733. Dim lower As Double = 0 ' m must be within this range
  9734. Dim upper As Double = 1
  9735. Dim m As Double
  9736. Dim cwh As Double
  9737. Do While (upper - lower) &gt; Defined.MAXERR AndAlso (n) &lt; Defined.MAXIT ' Repeat until range narrow enough or MAXIT
  9738. m = (upper + lower) / 2
  9739. cwh = (2 * EllipticE(m) - EllipticK(m)) / Math.Sqrt(m) ' calculate w/h with the test value of m
  9740. If cwh &lt; w / h Then ' compares the calculated w/h with the actual w/h then narrows the range of possible m
  9741. upper = m
  9742. Else
  9743. lower = m
  9744. End If
  9745. n += 1
  9746. Loop
  9747. Return m
  9748. End Function
  9749. ' Calculate length based on height and an m parameter, derived from reference {1} equation (33), except K(k) should be K(m) and k = sqrt(m)
  9750. Private Function Cal_L(ByVal h As Double, ByVal m As Double) As Double
  9751. Return h * EllipticK(m) / Math.Sqrt(m)
  9752. End Function
  9753. ' Calculate width based on length and an m parameter, derived from reference {1} equation (34), except b = width and K(k) and E(k) should be K(m) and E(m)
  9754. Private Function Cal_W(ByVal L As Double, ByVal m As Double) As Double
  9755. Return L * (2 * EllipticE(m) / EllipticK(m) - 1)
  9756. End Function
  9757. ' Calculate height based on length and an m parameter, from reference {1} equation (33), except K(k) should be K(m) and k = sqrt(m)
  9758. Private Function Cal_H(ByVal L As Double, ByVal m As Double) As Double
  9759. Return L * Math.Sqrt(m) / EllipticK(m)
  9760. End Function
  9761. ' Calculate the unique m parameter based on a start tangent angle, from reference {2}, just above equation (9a), that states k = Sin(angle / 2 + Pi / 4),
  9762. ' but as m = k^2 and due to this script's need for an angle rotated 90° versus the one in reference {1}, the following formula is the result
  9763. ' New note: verified by reference {4}, pg. 78 at the bottom
  9764. Private Function Cal_M(ByVal a As Double) As Double
  9765. Return (1 - Math.Cos(a)) / 2 ' equal to Sin^2(a/2) too
  9766. End Function
  9767. ' Calculate start tangent angle based on an m parameter, derived from above formula
  9768. Private Function Cal_A(ByVal m As Double) As Double
  9769. Return Math.Acos(1 - 2 * m)
  9770. End Function
  9771. ' This is the heart of this script, taking the found (or specified) length, width, and angle values along with the found m parameter to create
  9772. ' a list of points that approximate the shape or form of the elastica. It works by finding the x and y coordinates (which are reversed versus
  9773. ' the original equations (12a) and (12b) from reference {2} due to the 90° difference in orientation) based on the tangent angle along the curve.
  9774. ' See reference {2} for more details on how they derived it. Note that to simplify things, the algorithm only calculates the points for half of the
  9775. ' curve, then mirrors those points along the y-axis.
  9776. Private Function FindBendForm(ByVal L As Double, ByVal w As Double, ByVal m As Double, ByVal ang As Double, ByVal refPln As Plane) As List(Of Point3d)
  9777. L = L / 2 ' because the below algorithm is based on the formulas in reference {2} for only half of the curve
  9778. w = w / 2 ' same
  9779. If ang = 0 Then ' if angle (and height) = 0, then simply return the start and end points of the straight line
  9780. Dim out As New List(Of Point3d)
  9781. out.Add(refPln.PointAt(w, 0, 0))
  9782. out.Add(refPln.PointAt(-w, 0, 0))
  9783. Return out
  9784. End If
  9785. Dim x As Double
  9786. Dim y As Double
  9787. Dim halfCurvePts As New List(Of Point3d)
  9788. Dim fullCurvePts As New List(Of Point3d)
  9789. Dim translatedPts As New List(Of Point3d)
  9790. ang -= Math.PI / 2 ' a hack to allow this algorithm to work, since the original curve in paper {2} was rotated 90°
  9791. Dim angB As Double = ang + (-Math.PI / 2 - ang) / Defined.CURVEDIVS ' angB is the 'lowercase theta' which should be in formula {2}(12b) as the interval
  9792. ' start [a typo...see equation(3)]. It's necessary to start angB at ang + [interval] instead of just ang due to integration failing at angB = ang
  9793. halfCurvePts.Add(New Point3d(w, 0, 0)) ' start with this known initial point, as integration will fail when angB = ang
  9794. ' each point {x, y} is calculated from the tangent angle, angB, that occurs at each point (which is why this iterates from ~ang to -pi/2, the known end condition)
  9795. Do While Math.Round(angB, Defined.ROUNDTO) &gt;= Math.Round(-Math.PI / 2, Defined.ROUNDTO)
  9796. y = (Math.Sqrt(2) * Math.Sqrt(Math.Sin(ang) - Math.Sin(angB)) * (w + L)) / (2 * EllipticE(m)) ' note that x and y are swapped vs. (12a) and (12b)
  9797. x = (L / (Math.Sqrt(2) * EllipticK(m))) * Simpson(angB, -Math.PI / 2, 500, ang) ' calculate the Simpson approximation of the integral (function f below)
  9798. ' over the interval angB ('lowercase theta') to -pi/2. side note: is 500 too few iterations for the Simson algorithm?
  9799. If Math.Round(x, Defined.ROUNDTO) = 0 Then x = 0
  9800. halfCurvePts.Add(New Point3d(x, y, 0))
  9801. angB += (-Math.PI / 2 - ang) / Defined.CURVEDIVS ' onto the next tangent angle
  9802. Loop
  9803. ' After finding the x and y values for half of the curve, add the {-x, y} values for the rest of the curve
  9804. For Each point As Point3d In halfCurvePts
  9805. If Math.Round(point.X, Defined.ROUNDTO) = 0 Then
  9806. If Math.Round(point.Y, Defined.ROUNDTO) = 0 Then
  9807. fullCurvePts.Add(New Point3d(0, 0, 0)) ' special case when width = 0: when x = 0, only duplicate the point when y = 0 too
  9808. End If
  9809. Else
  9810. fullCurvePts.Add(New Point3d(-point.X, point.Y, 0))
  9811. End If
  9812. Next
  9813. halfCurvePts.Reverse
  9814. fullCurvePts.AddRange(halfCurvePts)
  9815. For Each p As Point3d In fullCurvePts
  9816. translatedPts.Add(refPln.PointAt(p.X, p.Y, p.Z)) ' translate the points from the reference plane to the world plane
  9817. Next
  9818. Return translatedPts
  9819. End Function
  9820. ' Interpolates the points from FindBendForm to create the Elastica curve. Uses start &amp; end tangents for greater accuracy.
  9821. Private Function MakeCurve(ByVal pts As List(Of Point3d), ByVal ang As Double, ByVal refPln As Plane) As Curve
  9822. If ang &lt;&gt; 0 Then
  9823. Dim ts, te As New Vector3d(refPln.XAxis)
  9824. ts.Rotate(ang, refPln.ZAxis)
  9825. te.Rotate(-ang, refPln.ZAxis)
  9826. Return Curve.CreateInterpolatedCurve(pts, 3, CurveKnotStyle.Chord, ts, te) ' 3rd degree curve with 'Chord' Knot Style
  9827. Else
  9828. Return Curve.CreateInterpolatedCurve(pts, 3) ' if angle (and height) = 0, then simply interpolate the straight line (no start/end tangents)
  9829. End If
  9830. End Function
  9831. ' Implements the Simpson approximation for an integral of function f below
  9832. Public Function Simpson(a As Double, b As Double, n As Integer, theta As Double) As Double 'n should be an even number
  9833. Dim j As Integer, s1 As Double, s2 As Double, h As Double
  9834. h = (b - a) / n
  9835. s1 = 0
  9836. s2 = 0
  9837. For j = 1 To n - 1 Step 2
  9838. s1 = s1 + fn(a + j * h, theta)
  9839. Next j
  9840. For j = 2 To n - 2 Step 2
  9841. s2 = s2 + fn(a + j * h, theta)
  9842. Next j
  9843. Simpson = h / 3 * (fn(a, theta) + 4 * s1 + 2 * s2 + fn(b, theta))
  9844. End Function
  9845. ' Specific calculation for the above integration
  9846. Public Function fn(x As Double, theta As Double) As Double
  9847. fn = Math.Sin(x) / (Math.Sqrt(Math.Sin(theta) - Math.Sin(x))) ' from reference {2} formula (12b)
  9848. End Function
  9849. ' Return the Complete Elliptic integral of the 1st kind
  9850. ' Abramowitz and Stegun p.591, formula 17.3.11
  9851. ' Code from http://www.codeproject.com/Articles/566614/Elliptic-integrals
  9852. Public Function EllipticK(ByVal m As Double) As Double
  9853. Dim sum, term, above, below As Double
  9854. sum = 1
  9855. term = 1
  9856. above = 1
  9857. below = 2
  9858. For i As Integer = 1 To 100
  9859. term *= above / below
  9860. sum += Math.Pow(m, i) * Math.Pow(term, 2)
  9861. above += 2
  9862. below += 2
  9863. Next
  9864. sum *= 0.5 * Math.PI
  9865. Return sum
  9866. End Function
  9867. ' Return the Complete Elliptic integral of the 2nd kind
  9868. ' Abramowitz and Stegun p.591, formula 17.3.12
  9869. ' Code from http://www.codeproject.com/Articles/566614/Elliptic-integrals
  9870. Public Function EllipticE(ByVal m As Double) As Double
  9871. Dim sum, term, above, below As Double
  9872. sum = 1
  9873. term = 1
  9874. above = 1
  9875. below = 2
  9876. For i As Integer = 1 To 100
  9877. term *= above / below
  9878. sum -= Math.Pow(m, i) * Math.Pow(term, 2) / above
  9879. above += 2
  9880. below += 2
  9881. Next
  9882. sum *= 0.5 * Math.PI
  9883. Return sum
  9884. End Function
  9885. Friend Partial NotInheritable Class Defined
  9886. Private Sub New()
  9887. End Sub
  9888. ' Note: most of these values for m and h/L ratio were found with Wolfram Alpha and either specific intercepts (x=0) or local minima/maxima. They should be constant.
  9889. Public Const M_SKETCHY As Double = 0.95 ' value of the m parameter where the curvature near the ends of the curve gets wonky
  9890. Public Const M_MAX As Double = 0.993 ' maximum useful value of the m parameter, above which this algorithm for the form of the curve breaks down
  9891. Public Const M_ZERO_W As Double = 0.826114765984970336 ' value of the m parameter when width = 0
  9892. Public Const M_MAXHEIGHT As Double = 0.701327460663101223 ' value of the m parameter at maximum possible height of the bent rod/wire
  9893. Public Const M_DOUBLE_W As Double = 0.180254422335013983 ' minimum value of the m parameter when two width values are possible for a given height and length
  9894. Public Const DOUBLE_W_HL_RATIO As Double = 0.257342117984635757 ' value of the height/length ratio above which there are two possible width values
  9895. Public Const MAX_HL_RATIO As Double = 0.403140189705650243 ' maximum possible value of the height/length ratio
  9896. Public Const MAXERR As Double = 0.0000000001 ' error tolerance
  9897. Public Const MAXIT As Integer = 100 ' maximum number of iterations
  9898. Public Const ROUNDTO As Integer = 10 ' number of decimal places to round off to
  9899. Public Const CURVEDIVS As Integer = 50 ' number of sample points for building the curve (or half-curve as it were)
  9900. End Class</item>
  9901. <item name="Description" type_name="gh_string" type_code="10">A VB.NET scriptable component</item>
  9902. <item name="EditorPosition" type_name="gh_drawing_point" type_code="30">
  9903. <X>98</X>
  9904. <Y>86</Y>
  9905. </item>
  9906. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  9907. <item name="InstanceGuid" type_name="gh_guid" type_code="9">15a333e8-a6e9-40f9-ae49-542ab7d2e084</item>
  9908. <item name="Name" type_name="gh_string" type_code="10">VB Script</item>
  9909. <item name="NickName" type_name="gh_string" type_code="10">VB</item>
  9910. <item name="OutParameter" type_name="gh_bool" type_code="1">true</item>
  9911. <item name="ReferenceCount" type_name="gh_int32" type_code="3">0</item>
  9912. <item name="ScriptSource" type_name="gh_string" type_code="10"> ' -----------------------------------------------------------------
  9913. ' Elastic Bending Script by Will McElwain
  9914. ' Created February 2014
  9915. '
  9916. ' DESCRIPTION:
  9917. ' This beast creates the so-called 'elastica curve', the shape a long, thin rod or wire makes when it is bent elastically (i.e. not permanently). In this case, force
  9918. ' is assumed to only be applied horizontally (which would be in line with the rod at rest) and both ends are assumed to be pinned or hinged meaning they are free
  9919. ' to rotate (as opposed to clamped, when the end tangent angle is fixed, usually horizontally). An interesting finding is that it doesn't matter what the material or
  9920. ' cross-sectional area is, as long as they're uniform along the entire length. Everything makes the same shape when bent as long as it doesn't cross the threshold
  9921. ' from elastic to plastic (permanent) deformation (I don't bother to find that limit here, but can be found if the yield stress for a material is known).
  9922. '
  9923. ' Key to the formulas used in this script are elliptic integrals, specifically K(m), the complete elliptic integral of the first kind, and E(m), the complete elliptic
  9924. ' integral of the second kind. There was a lot of confusion over the 'm' and 'k' parameters for these functions, as some people use them interchangeably, but they are
  9925. ' not the same. m = k^2 (thus k = Sqrt(m)). I try to use the 'm' parameter exclusively to avoid this confusion. Note that there is a unique 'm' parameter for every
  9926. ' configuration/shape of the elastica curve.
  9927. '
  9928. ' This script tries to find that unique 'm' parameter based on the inputs. The algorithm starts with a test version of m, evaluates an expression, say 2*E(m)/K(m)-1,
  9929. ' then compares the result to what it should be (in this case, a known width/length ratio). Iterate until the correct m is found. Once we have m, we can then calculate
  9930. ' all of the other unknowns, then find points that lie on that curve, then interpolate those points for the actual curve. You can also use Wolfram|Alpha as I did to
  9931. ' find the m parameter based on the equations in this script (example here: http://tiny.cc/t4tpbx for when say width=45.2 and length=67.1).
  9932. '
  9933. ' Other notes:
  9934. ' * This script works with negative values for width, which will creat a self-intersecting curve (as it should). The curvature of the elastica starts to break down around
  9935. ' m=0.95 (~154°), but this script will continue to work until M_MAX, m=0.993 (~169°). If you wish to ignore self-intersecting curves, set ignoreSelfIntersecting to True
  9936. ' * When the only known values are length and height, it is actually possible for certain ratios of height to length to have two valid m values (thus 2 possible widths
  9937. ' and angles). This script will return them both.
  9938. ' * Only the first two valid parameters (of the required ones) will be used, meaning if all four are connected (length, width or a PtB, height, and angle), this script will
  9939. ' only use length and width (or a PtB).
  9940. ' * Depending on the magnitude of your inputs (say if they're really small, like if length &lt; 10), you might have to increase the constant ROUNDTO at the bottom
  9941. '
  9942. ' REFERENCES:
  9943. ' {1} "The elastic rod" by M.E. Pacheco Q. &amp; E. Pina, http://www.scielo.org.mx/pdf/rmfe/v53n2/v53n2a8.pdf
  9944. ' {2} "An experiment in nonlinear beam theory" by A. Valiente, http://www.deepdyve.com/lp/doc/I3lwnxdfGz , also here: http://tiny.cc/Valiente_AEiNBT
  9945. ' {3} "Snap buckling, writhing and Loop formation In twisted rods" by V.G.A. GOSS, http://myweb.lsbu.ac.uk/~gossga/thesisFinal.pdf
  9946. ' {4} "Theory of Elastic Stability" by Stephen Timoshenko, http://www.scribd.com/doc/50402462/Timoshenko-Theory-of-Elastic-Stability (start on p. 76)
  9947. '
  9948. ' INPUT:
  9949. ' PtA - First anchor point (required)
  9950. ' PtB - Second anchor point (optional, though 2 out of the 4--length, width, height, angle--need to be specified)
  9951. ' [note that PtB can be the same as PtA (meaning width would be zero)]
  9952. ' [also note that if a different width is additionally specified that's not equal to the distance between PtA and PtB, then the end point will not equal PtB anymore]
  9953. ' Pln - Plane of the bent rod/wire, which bends up in the +y direction. The line between PtA and PtB (if specified) must be parallel to the x-axis of this plane
  9954. '
  9955. ' ** 2 of the following 4 need to be specified **
  9956. ' Len - Length of the rod/wire, which needs to be &gt; 0
  9957. ' Wid - Width between the endpoints of the curve [note: if PtB is specified in addition, and distance between PtA and PtB &lt;&gt; width, the end point will be relocated
  9958. ' Ht - Height of the bent rod/wire (when negative, curve will bend downward, relative to the input plane, instead)
  9959. ' Ang - Inner departure angle or tangent angle (in radians) at the ends of the bent rod/wire. Set up so as width approaches length (thus height approaches zero), angle approaches zero
  9960. '
  9961. ' * Following variables only needed for optional calculating of bending force, not for shape of curve.
  9962. ' E - Young's modulus (modulus of elasticity) in GPa (=N/m^2) (material-specific. for example, 7075 aluminum is roughly 71.7 GPa)
  9963. ' I - Second moment of area (or area moment of inertia) in m^4 (cross-section-specific. for example, a hollow rod
  9964. ' would have I = pi * (outer_diameter^4 - inner_diameter^4) / 32
  9965. ' Note: E*I is also known as flexural rigidity or bending stiffness
  9966. '
  9967. ' OUTPUT:
  9968. ' out - only for debugging messages
  9969. ' Pts - the list of points that approximate the shape of the elastica
  9970. ' Crv - the 3rd-degree curve interpolated from those points (with accurate start &amp; end tangents)
  9971. ' L - the length of the rod/wire
  9972. ' W - the distance (width) between the endpoints of the rod/wire
  9973. ' H - the height of the bent rod/wire
  9974. ' A - the tangent angle at the (start) end of the rod/wire
  9975. ' F - the force needed to hold the rod/wire in a specific shape (based on the material properties &amp; cross-section) **be sure your units for 'I' match your units for the
  9976. ' rest of your inputs (length, width, etc.). Also note that the critical buckling load (force) that makes the rod/wire start to bend can be found at height=0
  9977. '
  9978. ' THANKS TO:
  9979. ' Mårten Nettelbladt (thegeometryofbending.blogspot.com)
  9980. ' Daniel Piker (Kangaroo plugin)
  9981. ' David Rutten (Grasshopper guru)
  9982. ' Euler &amp; Bernoulli (the O.G.'s)
  9983. '
  9984. ' -----------------------------------------------------------------
  9985. Dim ignoreSelfIntersecting As Boolean = False ' set to True if you don't want to output curves where width &lt; 0, which creates a self-intersecting curve
  9986. Dim inCt As Integer = 0 ' count the number of required parameters that are receiving data
  9987. Dim length As Double
  9988. Dim width As System.Object = Nothing ' need to set as Nothing so we can check if it has been assigned a value later
  9989. Dim height As Double
  9990. Dim angle As Double
  9991. Dim m As Double
  9992. Dim multiple_m As New List(Of Double)
  9993. Dim AtoB As Line
  9994. Dim flip_H As Boolean = False ' if height is negative, this flag will be set
  9995. Dim flip_A As Boolean = False ' if angle is negative, this flag will be set
  9996. If Not IsSet("Pln") Then
  9997. Msg("error", "Base plane is not set")
  9998. Return
  9999. End If
  10000. If Not IsSet("PtA") Then
  10001. Msg("error", "Point A is not set")
  10002. Return
  10003. End If
  10004. If Math.Round(Pln.DistanceTo(PtA), Defined.ROUNDTO) &lt;&gt; 0 Then
  10005. Msg("error", "Point A is not on the base plane")
  10006. Return
  10007. End If
  10008. Dim refPlane As Plane = Pln ' create a reference plane = input plane and set the origin of it to PtA in case PtA isn't the origin already
  10009. refPlane.Origin = PtA
  10010. If IsSet("PtB") Then
  10011. If Math.Round(Pln.DistanceTo(PtB), Defined.ROUNDTO) &lt;&gt; 0 Then
  10012. Msg("error", "Point B is not on the base plane")
  10013. Return
  10014. End If
  10015. AtoB = New Line(PtA, PtB)
  10016. If AtoB.Length &lt;&gt; 0 And Not AtoB.Direction.IsPerpendicularTo(Pln.YAxis) Then
  10017. Msg("error", "The line between PtA and PtB is not perpendicular to the Y-axis of the specified plane")
  10018. Return
  10019. End If
  10020. inCt += 1
  10021. If IsSet("Wid") Then Msg("info", "Wid will override the distance between PtA and PtB. If you do not want this to happen, disconnect PtB or Wid.")
  10022. width = PtA.DistanceTo(PtB) ' get the width (distance) between PtA and PtB
  10023. Dim refPtB As Point3d
  10024. refPlane.RemapToPlaneSpace(PtB, refPtB)
  10025. If refPtB.X &lt; 0 Then width = -width ' check if PtB is to the left of PtA...if so, width is negative
  10026. End If
  10027. If IsSet("Len") Then inCt += 1
  10028. If IsSet("Wid") Then inCt += 1
  10029. If IsSet("Ht") Then inCt += 1
  10030. If IsSet("Ang") Then inCt += 1
  10031. If inCt &gt; 2 Then Msg("info", "More parameters set than are required (out of length, width, height, angle). Only using the first two valid ones.")
  10032. ' check for connected/specified inputs. note: only the first two that it comes across will be used
  10033. If IsSet("Len") Then ' if length is specified then...
  10034. If Len &lt;= 0 Then
  10035. Msg("error", "Length cannot be negative or zero")
  10036. Return
  10037. End If
  10038. If IsSet("Wid") Then ' find height &amp; angle based on length and specified width
  10039. If Wid &gt; Len Then
  10040. Msg("error", "Width is greater than length")
  10041. Return
  10042. End If
  10043. If Wid = Len Then ' skip the solver and set the known values
  10044. height = 0
  10045. m = 0
  10046. angle = 0
  10047. width = Wid
  10048. Else
  10049. m = SolveMFromLenWid(Len, Wid)
  10050. height = Cal_H(Len, m) ' L * Sqrt(m) / K(m)
  10051. angle = Cal_A(m) ' Acos(1 - 2 * m)
  10052. width = Wid
  10053. End If
  10054. Else If width IsNot Nothing Then ' find height &amp; angle based on length and calculated width (distance between PtA and PtB)
  10055. If width &gt; Len Then
  10056. Msg("error", "Width is greater than length")
  10057. Return
  10058. End If
  10059. If width = Len Then ' skip the solver and set the known values
  10060. height = 0
  10061. m = 0
  10062. angle = 0
  10063. Else
  10064. m = SolveMFromLenWid(Len, width)
  10065. height = Cal_H(Len, m) ' L * Sqrt(m) / K(m)
  10066. angle = Cal_A(m) ' Acos(1 - 2 * m)
  10067. End If
  10068. Else If IsSet("Ht") Then ' find width &amp; angle based on length and height ** possible to return 2 results **
  10069. If Math.Abs(Ht / Len) &gt; Defined.MAX_HL_RATIO Then
  10070. Msg("error", "Height not possible with given length")
  10071. Return
  10072. End If
  10073. If Ht &lt; 0 Then
  10074. Ht = -Ht ' if height is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  10075. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  10076. flip_A = True
  10077. flip_H = True
  10078. End If
  10079. If Ht = 0 Then ' skip the solver and set the known values
  10080. width = Len
  10081. angle = 0
  10082. Else
  10083. multiple_m = SolveMFromLenHt(Len, Ht) ' note that it's possible for two values of m to be found if height is close to max height
  10084. If multiple_m.Count = 1 Then ' if there's only one m value returned, calculate the width &amp; angle here. we'll deal with multiple m values later
  10085. m = multiple_m.Item(0)
  10086. width = Cal_W(Len, m) ' L * (2 * E(m) / K(m) - 1)
  10087. angle = Cal_A(m) ' Acos(1 - 2 * m)
  10088. End If
  10089. End If
  10090. height = Ht
  10091. Else If IsSet("Ang") Then ' find width &amp; height based on length and angle
  10092. If Ang &lt; 0 Then
  10093. Ang = -Ang ' if angle is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  10094. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  10095. flip_A = True
  10096. flip_H = True
  10097. End If
  10098. m = Cal_M(Ang) ' (1 - Cos(a)) / 2
  10099. If Ang = 0 Then ' skip the solver and set the known values
  10100. width = Len
  10101. height = 0
  10102. Else
  10103. width = Cal_W(Len, m) ' L * (2 * E(m) / K(m) - 1)
  10104. height = Cal_H(Len, m) ' L * Sqrt(m) / K(m)
  10105. End If
  10106. angle = Ang
  10107. Else
  10108. Msg("error", "Need to specify one more parameter in addition to length")
  10109. Return
  10110. End If
  10111. length = Len
  10112. Else If IsSet("Wid") Then ' if width is specified then...
  10113. If IsSet("Ht") Then ' find length &amp; angle based on specified width and height
  10114. If Ht &lt; 0 Then
  10115. Ht = -Ht ' if height is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  10116. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  10117. flip_A = True
  10118. flip_H = True
  10119. End If
  10120. If Ht = 0 Then ' skip the solver and set the known values
  10121. length = Wid
  10122. angle = 0
  10123. Else
  10124. m = SolveMFromWidHt(Wid, Ht)
  10125. length = Cal_L(Ht, m) ' h * K(m) / Sqrt(m)
  10126. angle = Cal_A(m) ' Acos(1 - 2 * m)
  10127. End If
  10128. height = Ht
  10129. Else If IsSet("Ang") Then ' find length &amp; height based on specified width and angle
  10130. If Wid = 0 Then
  10131. Msg("error", "Curve not possible with width = 0 and an angle as inputs")
  10132. Return
  10133. End If
  10134. If Ang &lt; 0 Then
  10135. Ang = -Ang ' if angle is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  10136. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  10137. flip_A = True
  10138. flip_H = True
  10139. End If
  10140. m = Cal_M(Ang) ' (1 - Cos(a)) / 2
  10141. If Ang = 0 Then ' skip the solver and set the known values
  10142. length = Wid
  10143. height = 0
  10144. Else
  10145. length = Wid / (2 * EllipticE(m) / EllipticK(m) - 1)
  10146. If length &lt; 0 Then
  10147. Msg("error", "Curve not possible at specified width and angle (calculated length is negative)")
  10148. Return
  10149. End If
  10150. height = Cal_H(length, m) ' L * Sqrt(m) / K(m)
  10151. End If
  10152. angle = Ang
  10153. Else
  10154. Msg("error", "Need to specify one more parameter in addition to width (Wid)")
  10155. Return
  10156. End If
  10157. width = Wid
  10158. Else If width IsNot Nothing Then ' if width is determined by PtA and PtB then...
  10159. If IsSet("Ht") Then ' find length &amp; angle based on calculated width and height
  10160. If Ht &lt; 0 Then
  10161. Ht = -Ht ' if height is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  10162. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  10163. flip_A = True
  10164. flip_H = True
  10165. End If
  10166. If Ht = 0 Then ' skip the solver and set the known values
  10167. length = width
  10168. angle = 0
  10169. Else
  10170. m = SolveMFromWidHt(width, Ht)
  10171. length = Cal_L(Ht, m) ' h * K(m) / Sqrt(m)
  10172. angle = Cal_A(m) ' Acos(1 - 2 * m)
  10173. End If
  10174. height = Ht
  10175. Else If IsSet("Ang") Then ' find length &amp; height based on calculated width and angle
  10176. If width = 0 Then
  10177. Msg("error", "Curve not possible with width = 0 and an angle as inputs")
  10178. Return
  10179. End If
  10180. If Ang &lt; 0 Then
  10181. Ang = -Ang ' if angle is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  10182. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  10183. flip_A = True
  10184. flip_H = True
  10185. End If
  10186. m = Cal_M(Ang) ' (1 - Cos(a)) / 2
  10187. If Ang = 0 Then ' skip the solver and set the known values
  10188. length = width
  10189. height = 0
  10190. Else
  10191. length = width / (2 * EllipticE(m) / EllipticK(m) - 1)
  10192. If length &lt; 0 Then
  10193. Msg("error", "Curve not possible at specified width and angle (calculated length is negative)")
  10194. Return
  10195. End If
  10196. height = Cal_H(length, m) ' L * Sqrt(m) / K(m)
  10197. End If
  10198. angle = Ang
  10199. Else
  10200. Msg("error", "Need to specify one more parameter in addition to PtA and PtB")
  10201. Return
  10202. End If
  10203. Else If IsSet("Ht") Then ' if height is specified then...
  10204. If IsSet("Ang") Then ' find length &amp; width based on height and angle
  10205. If Ht &lt; 0 Then
  10206. Ht = -Ht ' if height is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  10207. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  10208. flip_H = True
  10209. flip_A = True
  10210. End If
  10211. If Ht = 0 Then
  10212. Msg("error", "Height can't = 0 if only height and angle are specified")
  10213. Return
  10214. Else
  10215. If Ang &lt; 0 Then
  10216. Ang = -Ang ' if angle is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  10217. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  10218. flip_A = Not flip_A
  10219. flip_H = Not flip_H
  10220. End If
  10221. m = Cal_M(Ang) ' (1 - Cos(a)) / 2
  10222. If Ang = 0 Then
  10223. Msg("error", "Angle can't = 0 if only height and angle are specified")
  10224. Return
  10225. Else
  10226. length = Cal_L(Ht, m) ' h * K(m) / Sqrt(m)
  10227. width = Cal_W(length, m) ' L * (2 * E(m) / K(m) - 1)
  10228. End If
  10229. angle = Ang
  10230. End If
  10231. height = Ht
  10232. Else
  10233. Msg("error", "Need to specify one more parameter in addition to height")
  10234. Return
  10235. End If
  10236. Else If IsSet("Ang") Then
  10237. Msg("error", "Need to specify one more parameter in addition to angle")
  10238. Return
  10239. Else
  10240. Msg("error", "Need to specify two of the four parameters: length, width (or PtB), height, and angle")
  10241. Return
  10242. End If
  10243. If m &gt; Defined.M_MAX Then
  10244. Msg("error", "Form of curve not solvable with current algorithm and given inputs")
  10245. Return
  10246. End If
  10247. refPlane.Origin = refPlane.PointAt(width / 2, 0, 0) ' adjust the origin of the reference plane so that the curve is centered about the y-axis (start of the curve is at x = -width/2)
  10248. If multiple_m.Count &gt; 1 Then ' if there is more than one m value returned, calculate the width, angle, and curve for each
  10249. Dim multi_pts As New DataTree(Of Point3d)
  10250. Dim multi_crv As New List(Of Curve)
  10251. Dim tmp_pts As New List(Of Point3d)
  10252. Dim multi_W, multi_A, multi_F As New List(Of Double)
  10253. Dim j As Integer = 0 ' used for creating a new branch (GH_Path) for storing pts which is itself a list of points
  10254. For Each m_val As Double In multiple_m
  10255. width = Cal_W(length, m_val) 'length * (2 * EllipticE(m_val) / EllipticK(m_val) - 1)
  10256. If width &lt; 0 And ignoreSelfIntersecting Then
  10257. Msg("warning", "One curve is self-intersecting. To enable these, set ignoreSelfIntersecting to False")
  10258. Continue For
  10259. End If
  10260. If m_val &gt;= Defined.M_SKETCHY Then Msg("info", "Accuracy of the curve whose width = " &amp; Math.Round(width, 4) &amp; " is not guaranteed")
  10261. angle = Cal_A(m_val) 'Math.Asin(2 * m_val - 1)
  10262. refPlane.Origin = refPlane.PointAt(width / 2, 0, 0) ' adjust the origin of the reference plane so that the curve is centered about the y-axis (start of the curve is at x = -width/2)
  10263. tmp_pts = FindBendForm(length, width, m_val, angle, refPlane)
  10264. multi_pts.AddRange(tmp_pts, New GH_Path(j))
  10265. multi_crv.Add(MakeCurve(tmp_pts, angle, refPlane))
  10266. multi_W.Add(width)
  10267. If flip_A Then angle = -angle
  10268. multi_A.Add(angle)
  10269. E = E * 10 ^ 9 ' Young's modulus input E is in GPa, so we convert to Pa here (= N/m^2)
  10270. multi_F.Add(EllipticK(m_val) ^ 2 * E * I / length ^ 2) ' from reference {4} pg. 79
  10271. j += 1
  10272. refPlane.Origin = PtA ' reset the reference plane origin to PtA for the next m_val
  10273. 'Print("length=" &amp; length &amp; ", width=" &amp; width &amp; ", height=" &amp; height &amp; ", angle=" &amp; angle &amp; ", m=" &amp; m_val &amp; ", k=" &amp; Math.Sqrt(m_val) &amp; ", w/L=" &amp; width / length &amp; ", h/L=" &amp; height / length &amp; ", w/h=" &amp; width / height)
  10274. Next
  10275. ' assign the outputs
  10276. Pts = multi_pts
  10277. Crv = multi_crv
  10278. L = length
  10279. W = multi_W
  10280. If flip_H Then height = -height
  10281. H = height
  10282. A = multi_A
  10283. F = multi_F
  10284. Else ' only deal with the single m value
  10285. If m &gt;= Defined.M_SKETCHY Then Msg("info", "Accuracy of the curve at these parameters is not guaranteed")
  10286. If width &lt; 0 And ignoreSelfIntersecting Then
  10287. Msg("error", "Curve is self-intersecting. To enable these, set ignoreSelfIntersecting to False")
  10288. Return
  10289. End If
  10290. Pts = FindBendForm(length, width, m, angle, refPlane)
  10291. Crv = MakeCurve(pts, angle, refPlane)
  10292. L = length
  10293. W = width
  10294. If flip_H Then height = -height
  10295. H = height
  10296. If flip_A Then angle = -angle
  10297. A = angle
  10298. E = E * 10 ^ 9 ' Young's modulus input E is in GPa, so we convert to Pa here (= N/m^2)
  10299. F = EllipticK(m) ^ 2 * E * I / length ^ 2 ' from reference {4} pg. 79. Note: the critical buckling (that makes the rod/wire start to bend) can be found at height=0 (width=length)
  10300. 'height = Math.Sqrt(((2 * Len / 5) ^ 2 - ((Wid - Len / 5) / 2) ^ 2) ' quick approximation discovered by Mårten of 'Geometry of Bending' fame ( http://tiny.cc/it2pbx )
  10301. 'width = (Len +/- 2 * Math.Sqrt(4 * Len ^ 2 - 25 * Ht ^ 2)) / 5 ' derived from above
  10302. 'length = (2 * Math.Sqrt(15 * Ht ^ 2 + 4 * Wid ^ 2) - Wid) / 3 ' derived from above
  10303. 'Print("length=" &amp; length &amp; ", width=" &amp; width &amp; ", height=" &amp; height &amp; ", angle=" &amp; angle &amp; ", m=" &amp; m &amp; ", k=" &amp; Math.Sqrt(m) &amp; ", w/L=" &amp; width / length &amp; ", h/L=" &amp; height / length &amp; ", w/h=" &amp; width / height)
  10304. End If
  10305. </item>
  10306. </items>
  10307. <chunks count="2">
  10308. <chunk name="Attributes">
  10309. <items count="2">
  10310. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  10311. <X>1797</X>
  10312. <Y>201</Y>
  10313. <W>84</W>
  10314. <H>184</H>
  10315. </item>
  10316. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  10317. <X>1839</X>
  10318. <Y>293</Y>
  10319. </item>
  10320. </items>
  10321. </chunk>
  10322. <chunk name="ParameterData">
  10323. <items count="19">
  10324. <item name="InputCount" type_name="gh_int32" type_code="3">9</item>
  10325. <item name="InputId" index="0" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  10326. <item name="InputId" index="1" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  10327. <item name="InputId" index="2" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  10328. <item name="InputId" index="3" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  10329. <item name="InputId" index="4" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  10330. <item name="InputId" index="5" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  10331. <item name="InputId" index="6" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  10332. <item name="InputId" index="7" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  10333. <item name="InputId" index="8" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  10334. <item name="OutputCount" type_name="gh_int32" type_code="3">8</item>
  10335. <item name="OutputId" index="0" type_name="gh_guid" type_code="9">3ede854e-c753-40eb-84cb-b48008f14fd4</item>
  10336. <item name="OutputId" index="1" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  10337. <item name="OutputId" index="2" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  10338. <item name="OutputId" index="3" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  10339. <item name="OutputId" index="4" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  10340. <item name="OutputId" index="5" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  10341. <item name="OutputId" index="6" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  10342. <item name="OutputId" index="7" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  10343. </items>
  10344. <chunks count="17">
  10345. <chunk name="InputParam" index="0">
  10346. <items count="11">
  10347. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  10348. <item name="Description" type_name="gh_string" type_code="10">Script Variable PtA</item>
  10349. <item name="InstanceGuid" type_name="gh_guid" type_code="9">512bccc3-6c0e-4ef4-ba24-8685c3ee8d8c</item>
  10350. <item name="Name" type_name="gh_string" type_code="10">PtA</item>
  10351. <item name="NickName" type_name="gh_string" type_code="10">PtA</item>
  10352. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  10353. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  10354. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  10355. <item name="Source" index="0" type_name="gh_guid" type_code="9">1813e6b2-8594-4cdf-882c-e312c60bd7f7</item>
  10356. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  10357. <item name="TypeHintID" type_name="gh_guid" type_code="9">e1937b56-b1da-4c12-8bd8-e34ee81746ef</item>
  10358. </items>
  10359. <chunks count="1">
  10360. <chunk name="Attributes">
  10361. <items count="2">
  10362. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  10363. <X>1799</X>
  10364. <Y>203</Y>
  10365. <W>25</W>
  10366. <H>20</H>
  10367. </item>
  10368. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  10369. <X>1813</X>
  10370. <Y>213</Y>
  10371. </item>
  10372. </items>
  10373. </chunk>
  10374. </chunks>
  10375. </chunk>
  10376. <chunk name="InputParam" index="1">
  10377. <items count="10">
  10378. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  10379. <item name="Description" type_name="gh_string" type_code="10">Script Variable PtB</item>
  10380. <item name="InstanceGuid" type_name="gh_guid" type_code="9">d879c694-aa7a-49cc-885b-4d3c9e0e85df</item>
  10381. <item name="Name" type_name="gh_string" type_code="10">PtB</item>
  10382. <item name="NickName" type_name="gh_string" type_code="10">PtB</item>
  10383. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  10384. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  10385. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  10386. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  10387. <item name="TypeHintID" type_name="gh_guid" type_code="9">e1937b56-b1da-4c12-8bd8-e34ee81746ef</item>
  10388. </items>
  10389. <chunks count="1">
  10390. <chunk name="Attributes">
  10391. <items count="2">
  10392. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  10393. <X>1799</X>
  10394. <Y>223</Y>
  10395. <W>25</W>
  10396. <H>20</H>
  10397. </item>
  10398. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  10399. <X>1813</X>
  10400. <Y>233</Y>
  10401. </item>
  10402. </items>
  10403. </chunk>
  10404. </chunks>
  10405. </chunk>
  10406. <chunk name="InputParam" index="2">
  10407. <items count="11">
  10408. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  10409. <item name="Description" type_name="gh_string" type_code="10">Script Variable Pln</item>
  10410. <item name="InstanceGuid" type_name="gh_guid" type_code="9">0b814522-7d00-47c6-9c48-1e46bee924f2</item>
  10411. <item name="Name" type_name="gh_string" type_code="10">Pln</item>
  10412. <item name="NickName" type_name="gh_string" type_code="10">Pln</item>
  10413. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  10414. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  10415. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  10416. <item name="Source" index="0" type_name="gh_guid" type_code="9">f9c309f7-e784-42bd-ac1d-c6f978935e00</item>
  10417. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  10418. <item name="TypeHintID" type_name="gh_guid" type_code="9">3897522d-58e9-4d60-b38c-978ddacfedd8</item>
  10419. </items>
  10420. <chunks count="1">
  10421. <chunk name="Attributes">
  10422. <items count="2">
  10423. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  10424. <X>1799</X>
  10425. <Y>243</Y>
  10426. <W>25</W>
  10427. <H>20</H>
  10428. </item>
  10429. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  10430. <X>1813</X>
  10431. <Y>253</Y>
  10432. </item>
  10433. </items>
  10434. </chunk>
  10435. </chunks>
  10436. </chunk>
  10437. <chunk name="InputParam" index="3">
  10438. <items count="11">
  10439. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  10440. <item name="Description" type_name="gh_string" type_code="10">Script Variable Len</item>
  10441. <item name="InstanceGuid" type_name="gh_guid" type_code="9">693f977f-077d-410b-a1cc-bc37f0473ad9</item>
  10442. <item name="Name" type_name="gh_string" type_code="10">Len</item>
  10443. <item name="NickName" type_name="gh_string" type_code="10">Len</item>
  10444. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  10445. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  10446. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  10447. <item name="Source" index="0" type_name="gh_guid" type_code="9">ce3bf1e3-3694-43ca-b804-94bf1ac205b6</item>
  10448. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  10449. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  10450. </items>
  10451. <chunks count="1">
  10452. <chunk name="Attributes">
  10453. <items count="2">
  10454. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  10455. <X>1799</X>
  10456. <Y>263</Y>
  10457. <W>25</W>
  10458. <H>20</H>
  10459. </item>
  10460. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  10461. <X>1813</X>
  10462. <Y>273</Y>
  10463. </item>
  10464. </items>
  10465. </chunk>
  10466. </chunks>
  10467. </chunk>
  10468. <chunk name="InputParam" index="4">
  10469. <items count="11">
  10470. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  10471. <item name="Description" type_name="gh_string" type_code="10">Script Variable Wid</item>
  10472. <item name="InstanceGuid" type_name="gh_guid" type_code="9">e718cabe-f163-44e2-bf0e-4866946c6c49</item>
  10473. <item name="Name" type_name="gh_string" type_code="10">Wid</item>
  10474. <item name="NickName" type_name="gh_string" type_code="10">Wid</item>
  10475. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  10476. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  10477. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  10478. <item name="Source" index="0" type_name="gh_guid" type_code="9">2dac057e-8756-4d2f-b7af-61904cb5801a</item>
  10479. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  10480. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  10481. </items>
  10482. <chunks count="1">
  10483. <chunk name="Attributes">
  10484. <items count="2">
  10485. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  10486. <X>1799</X>
  10487. <Y>283</Y>
  10488. <W>25</W>
  10489. <H>20</H>
  10490. </item>
  10491. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  10492. <X>1813</X>
  10493. <Y>293</Y>
  10494. </item>
  10495. </items>
  10496. </chunk>
  10497. </chunks>
  10498. </chunk>
  10499. <chunk name="InputParam" index="5">
  10500. <items count="10">
  10501. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  10502. <item name="Description" type_name="gh_string" type_code="10">Script Variable Ht</item>
  10503. <item name="InstanceGuid" type_name="gh_guid" type_code="9">f8027746-ba7f-4f8e-bb9c-fa5b544e826b</item>
  10504. <item name="Name" type_name="gh_string" type_code="10">Ht</item>
  10505. <item name="NickName" type_name="gh_string" type_code="10">Ht</item>
  10506. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  10507. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  10508. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  10509. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  10510. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  10511. </items>
  10512. <chunks count="1">
  10513. <chunk name="Attributes">
  10514. <items count="2">
  10515. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  10516. <X>1799</X>
  10517. <Y>303</Y>
  10518. <W>25</W>
  10519. <H>20</H>
  10520. </item>
  10521. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  10522. <X>1813</X>
  10523. <Y>313</Y>
  10524. </item>
  10525. </items>
  10526. </chunk>
  10527. </chunks>
  10528. </chunk>
  10529. <chunk name="InputParam" index="6">
  10530. <items count="10">
  10531. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  10532. <item name="Description" type_name="gh_string" type_code="10">Script Variable Ang</item>
  10533. <item name="InstanceGuid" type_name="gh_guid" type_code="9">50106206-1bb3-43fe-bd4f-366e3b16274a</item>
  10534. <item name="Name" type_name="gh_string" type_code="10">Ang</item>
  10535. <item name="NickName" type_name="gh_string" type_code="10">Ang</item>
  10536. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  10537. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  10538. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  10539. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  10540. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  10541. </items>
  10542. <chunks count="1">
  10543. <chunk name="Attributes">
  10544. <items count="2">
  10545. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  10546. <X>1799</X>
  10547. <Y>323</Y>
  10548. <W>25</W>
  10549. <H>20</H>
  10550. </item>
  10551. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  10552. <X>1813</X>
  10553. <Y>333</Y>
  10554. </item>
  10555. </items>
  10556. </chunk>
  10557. </chunks>
  10558. </chunk>
  10559. <chunk name="InputParam" index="7">
  10560. <items count="10">
  10561. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  10562. <item name="Description" type_name="gh_string" type_code="10">Script Variable E</item>
  10563. <item name="InstanceGuid" type_name="gh_guid" type_code="9">1d6edbeb-7707-43da-8d81-c55c2a788b19</item>
  10564. <item name="Name" type_name="gh_string" type_code="10">E</item>
  10565. <item name="NickName" type_name="gh_string" type_code="10">E</item>
  10566. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  10567. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  10568. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  10569. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  10570. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  10571. </items>
  10572. <chunks count="1">
  10573. <chunk name="Attributes">
  10574. <items count="2">
  10575. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  10576. <X>1799</X>
  10577. <Y>343</Y>
  10578. <W>25</W>
  10579. <H>20</H>
  10580. </item>
  10581. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  10582. <X>1813</X>
  10583. <Y>353</Y>
  10584. </item>
  10585. </items>
  10586. </chunk>
  10587. </chunks>
  10588. </chunk>
  10589. <chunk name="InputParam" index="8">
  10590. <items count="10">
  10591. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  10592. <item name="Description" type_name="gh_string" type_code="10">Script Variable I</item>
  10593. <item name="InstanceGuid" type_name="gh_guid" type_code="9">06ae685a-2839-4dc2-a276-de0409a26bad</item>
  10594. <item name="Name" type_name="gh_string" type_code="10">I</item>
  10595. <item name="NickName" type_name="gh_string" type_code="10">I</item>
  10596. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  10597. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  10598. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  10599. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  10600. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  10601. </items>
  10602. <chunks count="1">
  10603. <chunk name="Attributes">
  10604. <items count="2">
  10605. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  10606. <X>1799</X>
  10607. <Y>363</Y>
  10608. <W>25</W>
  10609. <H>20</H>
  10610. </item>
  10611. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  10612. <X>1813</X>
  10613. <Y>373</Y>
  10614. </item>
  10615. </items>
  10616. </chunk>
  10617. </chunks>
  10618. </chunk>
  10619. <chunk name="OutputParam" index="0">
  10620. <items count="7">
  10621. <item name="Access" type_name="gh_int32" type_code="3">1</item>
  10622. <item name="Description" type_name="gh_string" type_code="10">Print, Reflect and Error streams</item>
  10623. <item name="InstanceGuid" type_name="gh_guid" type_code="9">20755b5a-7694-4c4e-82c2-fb013dc3fe1b</item>
  10624. <item name="Name" type_name="gh_string" type_code="10">out</item>
  10625. <item name="NickName" type_name="gh_string" type_code="10">out</item>
  10626. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  10627. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  10628. </items>
  10629. <chunks count="1">
  10630. <chunk name="Attributes">
  10631. <items count="2">
  10632. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  10633. <X>1854</X>
  10634. <Y>203</Y>
  10635. <W>25</W>
  10636. <H>22</H>
  10637. </item>
  10638. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  10639. <X>1866.5</X>
  10640. <Y>214.25</Y>
  10641. </item>
  10642. </items>
  10643. </chunk>
  10644. </chunks>
  10645. </chunk>
  10646. <chunk name="OutputParam" index="1">
  10647. <items count="6">
  10648. <item name="Description" type_name="gh_string" type_code="10">Output parameter Pts</item>
  10649. <item name="InstanceGuid" type_name="gh_guid" type_code="9">b6862774-22a9-4557-8df9-4e105338905c</item>
  10650. <item name="Name" type_name="gh_string" type_code="10">Pts</item>
  10651. <item name="NickName" type_name="gh_string" type_code="10">Pts</item>
  10652. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  10653. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  10654. </items>
  10655. <chunks count="1">
  10656. <chunk name="Attributes">
  10657. <items count="2">
  10658. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  10659. <X>1854</X>
  10660. <Y>225</Y>
  10661. <W>25</W>
  10662. <H>23</H>
  10663. </item>
  10664. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  10665. <X>1866.5</X>
  10666. <Y>236.75</Y>
  10667. </item>
  10668. </items>
  10669. </chunk>
  10670. </chunks>
  10671. </chunk>
  10672. <chunk name="OutputParam" index="2">
  10673. <items count="6">
  10674. <item name="Description" type_name="gh_string" type_code="10">Output parameter Crv</item>
  10675. <item name="InstanceGuid" type_name="gh_guid" type_code="9">8f545f02-550b-41fb-8dd0-70baaad81a72</item>
  10676. <item name="Name" type_name="gh_string" type_code="10">Crv</item>
  10677. <item name="NickName" type_name="gh_string" type_code="10">Crv</item>
  10678. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  10679. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  10680. </items>
  10681. <chunks count="1">
  10682. <chunk name="Attributes">
  10683. <items count="2">
  10684. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  10685. <X>1854</X>
  10686. <Y>248</Y>
  10687. <W>25</W>
  10688. <H>22</H>
  10689. </item>
  10690. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  10691. <X>1866.5</X>
  10692. <Y>259.25</Y>
  10693. </item>
  10694. </items>
  10695. </chunk>
  10696. </chunks>
  10697. </chunk>
  10698. <chunk name="OutputParam" index="3">
  10699. <items count="6">
  10700. <item name="Description" type_name="gh_string" type_code="10">Output parameter L</item>
  10701. <item name="InstanceGuid" type_name="gh_guid" type_code="9">d7f4a38f-b681-4226-a169-d484336986a2</item>
  10702. <item name="Name" type_name="gh_string" type_code="10">L</item>
  10703. <item name="NickName" type_name="gh_string" type_code="10">L</item>
  10704. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  10705. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  10706. </items>
  10707. <chunks count="1">
  10708. <chunk name="Attributes">
  10709. <items count="2">
  10710. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  10711. <X>1854</X>
  10712. <Y>270</Y>
  10713. <W>25</W>
  10714. <H>23</H>
  10715. </item>
  10716. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  10717. <X>1866.5</X>
  10718. <Y>281.75</Y>
  10719. </item>
  10720. </items>
  10721. </chunk>
  10722. </chunks>
  10723. </chunk>
  10724. <chunk name="OutputParam" index="4">
  10725. <items count="6">
  10726. <item name="Description" type_name="gh_string" type_code="10">Output parameter W</item>
  10727. <item name="InstanceGuid" type_name="gh_guid" type_code="9">ce2227d2-88d5-44a1-b925-e842136dca13</item>
  10728. <item name="Name" type_name="gh_string" type_code="10">W</item>
  10729. <item name="NickName" type_name="gh_string" type_code="10">W</item>
  10730. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  10731. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  10732. </items>
  10733. <chunks count="1">
  10734. <chunk name="Attributes">
  10735. <items count="2">
  10736. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  10737. <X>1854</X>
  10738. <Y>293</Y>
  10739. <W>25</W>
  10740. <H>22</H>
  10741. </item>
  10742. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  10743. <X>1866.5</X>
  10744. <Y>304.25</Y>
  10745. </item>
  10746. </items>
  10747. </chunk>
  10748. </chunks>
  10749. </chunk>
  10750. <chunk name="OutputParam" index="5">
  10751. <items count="6">
  10752. <item name="Description" type_name="gh_string" type_code="10">Output parameter H</item>
  10753. <item name="InstanceGuid" type_name="gh_guid" type_code="9">1c6a682f-bab0-45c4-b876-7f71802d69ab</item>
  10754. <item name="Name" type_name="gh_string" type_code="10">H</item>
  10755. <item name="NickName" type_name="gh_string" type_code="10">H</item>
  10756. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  10757. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  10758. </items>
  10759. <chunks count="1">
  10760. <chunk name="Attributes">
  10761. <items count="2">
  10762. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  10763. <X>1854</X>
  10764. <Y>315</Y>
  10765. <W>25</W>
  10766. <H>23</H>
  10767. </item>
  10768. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  10769. <X>1866.5</X>
  10770. <Y>326.75</Y>
  10771. </item>
  10772. </items>
  10773. </chunk>
  10774. </chunks>
  10775. </chunk>
  10776. <chunk name="OutputParam" index="6">
  10777. <items count="6">
  10778. <item name="Description" type_name="gh_string" type_code="10">Output parameter A</item>
  10779. <item name="InstanceGuid" type_name="gh_guid" type_code="9">24ef080a-aae1-4bd9-a2eb-97cd1569a733</item>
  10780. <item name="Name" type_name="gh_string" type_code="10">A</item>
  10781. <item name="NickName" type_name="gh_string" type_code="10">A</item>
  10782. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  10783. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  10784. </items>
  10785. <chunks count="1">
  10786. <chunk name="Attributes">
  10787. <items count="2">
  10788. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  10789. <X>1854</X>
  10790. <Y>338</Y>
  10791. <W>25</W>
  10792. <H>22</H>
  10793. </item>
  10794. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  10795. <X>1866.5</X>
  10796. <Y>349.25</Y>
  10797. </item>
  10798. </items>
  10799. </chunk>
  10800. </chunks>
  10801. </chunk>
  10802. <chunk name="OutputParam" index="7">
  10803. <items count="6">
  10804. <item name="Description" type_name="gh_string" type_code="10">Output parameter F</item>
  10805. <item name="InstanceGuid" type_name="gh_guid" type_code="9">057d392c-b422-4b34-a8df-30546d6c59e2</item>
  10806. <item name="Name" type_name="gh_string" type_code="10">F</item>
  10807. <item name="NickName" type_name="gh_string" type_code="10">F</item>
  10808. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  10809. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  10810. </items>
  10811. <chunks count="1">
  10812. <chunk name="Attributes">
  10813. <items count="2">
  10814. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  10815. <X>1854</X>
  10816. <Y>360</Y>
  10817. <W>25</W>
  10818. <H>23</H>
  10819. </item>
  10820. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  10821. <X>1866.5</X>
  10822. <Y>371.75</Y>
  10823. </item>
  10824. </items>
  10825. </chunk>
  10826. </chunks>
  10827. </chunk>
  10828. </chunks>
  10829. </chunk>
  10830. </chunks>
  10831. </chunk>
  10832. </chunks>
  10833. </chunk>
  10834. <chunk name="Object" index="81">
  10835. <items count="2">
  10836. <item name="GUID" type_name="gh_guid" type_code="9">57da07bd-ecab-415d-9d86-af36d7073abc</item>
  10837. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  10838. </items>
  10839. <chunks count="1">
  10840. <chunk name="Container">
  10841. <items count="6">
  10842. <item name="Description" type_name="gh_string" type_code="10">Numeric slider for single values</item>
  10843. <item name="InstanceGuid" type_name="gh_guid" type_code="9">2dac057e-8756-4d2f-b7af-61904cb5801a</item>
  10844. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  10845. <item name="NickName" type_name="gh_string" type_code="10">width</item>
  10846. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  10847. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  10848. </items>
  10849. <chunks count="2">
  10850. <chunk name="Attributes">
  10851. <items count="2">
  10852. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  10853. <X>1346</X>
  10854. <Y>281</Y>
  10855. <W>382</W>
  10856. <H>20</H>
  10857. </item>
  10858. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  10859. <X>1346.563</X>
  10860. <Y>281.9091</Y>
  10861. </item>
  10862. </items>
  10863. </chunk>
  10864. <chunk name="Slider">
  10865. <items count="7">
  10866. <item name="Digits" type_name="gh_int32" type_code="3">2</item>
  10867. <item name="GripDisplay" type_name="gh_int32" type_code="3">1</item>
  10868. <item name="Interval" type_name="gh_int32" type_code="3">0</item>
  10869. <item name="Max" type_name="gh_double" type_code="6">400</item>
  10870. <item name="Min" type_name="gh_double" type_code="6">-130</item>
  10871. <item name="SnapCount" type_name="gh_int32" type_code="3">0</item>
  10872. <item name="Value" type_name="gh_double" type_code="6">-43.19</item>
  10873. </items>
  10874. </chunk>
  10875. </chunks>
  10876. </chunk>
  10877. </chunks>
  10878. </chunk>
  10879. <chunk name="Object" index="82">
  10880. <items count="2">
  10881. <item name="GUID" type_name="gh_guid" type_code="9">57da07bd-ecab-415d-9d86-af36d7073abc</item>
  10882. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  10883. </items>
  10884. <chunks count="1">
  10885. <chunk name="Container">
  10886. <items count="6">
  10887. <item name="Description" type_name="gh_string" type_code="10">Numeric slider for single values</item>
  10888. <item name="InstanceGuid" type_name="gh_guid" type_code="9">ce3bf1e3-3694-43ca-b804-94bf1ac205b6</item>
  10889. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  10890. <item name="NickName" type_name="gh_string" type_code="10">length</item>
  10891. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  10892. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  10893. </items>
  10894. <chunks count="2">
  10895. <chunk name="Attributes">
  10896. <items count="2">
  10897. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  10898. <X>1344</X>
  10899. <Y>255</Y>
  10900. <W>382</W>
  10901. <H>20</H>
  10902. </item>
  10903. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  10904. <X>1344.994</X>
  10905. <Y>255.0591</Y>
  10906. </item>
  10907. </items>
  10908. </chunk>
  10909. <chunk name="Slider">
  10910. <items count="7">
  10911. <item name="Digits" type_name="gh_int32" type_code="3">2</item>
  10912. <item name="GripDisplay" type_name="gh_int32" type_code="3">1</item>
  10913. <item name="Interval" type_name="gh_int32" type_code="3">0</item>
  10914. <item name="Max" type_name="gh_double" type_code="6">400</item>
  10915. <item name="Min" type_name="gh_double" type_code="6">0</item>
  10916. <item name="SnapCount" type_name="gh_int32" type_code="3">0</item>
  10917. <item name="Value" type_name="gh_double" type_code="6">225</item>
  10918. </items>
  10919. </chunk>
  10920. </chunks>
  10921. </chunk>
  10922. </chunks>
  10923. </chunk>
  10924. <chunk name="Object" index="83">
  10925. <items count="2">
  10926. <item name="GUID" type_name="gh_guid" type_code="9">fbac3e32-f100-4292-8692-77240a42fd1a</item>
  10927. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  10928. </items>
  10929. <chunks count="1">
  10930. <chunk name="Container">
  10931. <items count="8">
  10932. <item name="Description" type_name="gh_string" type_code="10">Contains a collection of three-dimensional points</item>
  10933. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  10934. <item name="InstanceGuid" type_name="gh_guid" type_code="9">8083dba1-6a1d-4290-9c38-1186214db9bc</item>
  10935. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  10936. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  10937. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  10938. <item name="Source" index="0" type_name="gh_guid" type_code="9">b6862774-22a9-4557-8df9-4e105338905c</item>
  10939. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  10940. </items>
  10941. <chunks count="1">
  10942. <chunk name="Attributes">
  10943. <items count="2">
  10944. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  10945. <X>1969</X>
  10946. <Y>163</Y>
  10947. <W>50</W>
  10948. <H>24</H>
  10949. </item>
  10950. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  10951. <X>1994.448</X>
  10952. <Y>175.7781</Y>
  10953. </item>
  10954. </items>
  10955. </chunk>
  10956. </chunks>
  10957. </chunk>
  10958. </chunks>
  10959. </chunk>
  10960. <chunk name="Object" index="84">
  10961. <items count="2">
  10962. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  10963. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  10964. </items>
  10965. <chunks count="1">
  10966. <chunk name="Container">
  10967. <items count="9">
  10968. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  10969. <item name="InstanceGuid" type_name="gh_guid" type_code="9">3e685539-f44c-4607-be6b-cd3c05e3c5eb</item>
  10970. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  10971. <item name="NickName" type_name="gh_string" type_code="10"></item>
  10972. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  10973. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  10974. <item name="Source" index="0" type_name="gh_guid" type_code="9">4cd71eb6-cfaa-4a47-a72d-f24e55334beb</item>
  10975. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  10976. <item name="UserText" type_name="gh_string" type_code="10">Double click to edit panel content…</item>
  10977. </items>
  10978. <chunks count="2">
  10979. <chunk name="Attributes">
  10980. <items count="5">
  10981. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  10982. <X>2027</X>
  10983. <Y>378</Y>
  10984. <W>105</W>
  10985. <H>55</H>
  10986. </item>
  10987. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  10988. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  10989. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  10990. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  10991. <X>2027.304</X>
  10992. <Y>378.139</Y>
  10993. </item>
  10994. </items>
  10995. </chunk>
  10996. <chunk name="PanelProperties">
  10997. <items count="7">
  10998. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  10999. <ARGB>255;255;250;90</ARGB>
  11000. </item>
  11001. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  11002. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  11003. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  11004. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  11005. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  11006. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  11007. </items>
  11008. </chunk>
  11009. </chunks>
  11010. </chunk>
  11011. </chunks>
  11012. </chunk>
  11013. <chunk name="Object" index="85">
  11014. <items count="2">
  11015. <item name="GUID" type_name="gh_guid" type_code="9">0d77c51e-584f-44e8-aed2-c2ddf4803888</item>
  11016. <item name="Name" type_name="gh_string" type_code="10">Degrees</item>
  11017. </items>
  11018. <chunks count="1">
  11019. <chunk name="Container">
  11020. <items count="4">
  11021. <item name="Description" type_name="gh_string" type_code="10">Convert an angle specified in radians to degrees</item>
  11022. <item name="InstanceGuid" type_name="gh_guid" type_code="9">25514f49-1dae-40e1-8f32-66e3ea2dc7bd</item>
  11023. <item name="Name" type_name="gh_string" type_code="10">Degrees</item>
  11024. <item name="NickName" type_name="gh_string" type_code="10">Deg</item>
  11025. </items>
  11026. <chunks count="3">
  11027. <chunk name="Attributes">
  11028. <items count="2">
  11029. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  11030. <X>1939</X>
  11031. <Y>389</Y>
  11032. <W>64</W>
  11033. <H>28</H>
  11034. </item>
  11035. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  11036. <X>1969</X>
  11037. <Y>403</Y>
  11038. </item>
  11039. </items>
  11040. </chunk>
  11041. <chunk name="param_input" index="0">
  11042. <items count="7">
  11043. <item name="Description" type_name="gh_string" type_code="10">Angle in radians</item>
  11044. <item name="InstanceGuid" type_name="gh_guid" type_code="9">811b950c-3df2-44de-b7c6-6ffa4c6f2250</item>
  11045. <item name="Name" type_name="gh_string" type_code="10">Radians</item>
  11046. <item name="NickName" type_name="gh_string" type_code="10">R</item>
  11047. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  11048. <item name="Source" index="0" type_name="gh_guid" type_code="9">24ef080a-aae1-4bd9-a2eb-97cd1569a733</item>
  11049. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  11050. </items>
  11051. <chunks count="1">
  11052. <chunk name="Attributes">
  11053. <items count="2">
  11054. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  11055. <X>1941</X>
  11056. <Y>391</Y>
  11057. <W>13</W>
  11058. <H>24</H>
  11059. </item>
  11060. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  11061. <X>1949</X>
  11062. <Y>403</Y>
  11063. </item>
  11064. </items>
  11065. </chunk>
  11066. </chunks>
  11067. </chunk>
  11068. <chunk name="param_output" index="0">
  11069. <items count="6">
  11070. <item name="Description" type_name="gh_string" type_code="10">Angle in degrees</item>
  11071. <item name="InstanceGuid" type_name="gh_guid" type_code="9">4cd71eb6-cfaa-4a47-a72d-f24e55334beb</item>
  11072. <item name="Name" type_name="gh_string" type_code="10">Degrees</item>
  11073. <item name="NickName" type_name="gh_string" type_code="10">D</item>
  11074. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  11075. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  11076. </items>
  11077. <chunks count="1">
  11078. <chunk name="Attributes">
  11079. <items count="2">
  11080. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  11081. <X>1984</X>
  11082. <Y>391</Y>
  11083. <W>17</W>
  11084. <H>24</H>
  11085. </item>
  11086. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  11087. <X>1992.5</X>
  11088. <Y>403</Y>
  11089. </item>
  11090. </items>
  11091. </chunk>
  11092. </chunks>
  11093. </chunk>
  11094. </chunks>
  11095. </chunk>
  11096. </chunks>
  11097. </chunk>
  11098. <chunk name="Object" index="86">
  11099. <items count="2">
  11100. <item name="GUID" type_name="gh_guid" type_code="9">3581f42a-9592-4549-bd6b-1c0fc39d067b</item>
  11101. <item name="Name" type_name="gh_string" type_code="10">Construct Point</item>
  11102. </items>
  11103. <chunks count="1">
  11104. <chunk name="Container">
  11105. <items count="4">
  11106. <item name="Description" type_name="gh_string" type_code="10">Construct a point from {xyz} coordinates.</item>
  11107. <item name="InstanceGuid" type_name="gh_guid" type_code="9">f3d440d6-99af-4801-8175-5110376379c5</item>
  11108. <item name="Name" type_name="gh_string" type_code="10">Construct Point</item>
  11109. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  11110. </items>
  11111. <chunks count="5">
  11112. <chunk name="Attributes">
  11113. <items count="2">
  11114. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  11115. <X>1654</X>
  11116. <Y>139</Y>
  11117. <W>67</W>
  11118. <H>64</H>
  11119. </item>
  11120. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  11121. <X>1685</X>
  11122. <Y>171</Y>
  11123. </item>
  11124. </items>
  11125. </chunk>
  11126. <chunk name="param_input" index="0">
  11127. <items count="7">
  11128. <item name="Description" type_name="gh_string" type_code="10">{x} coordinate</item>
  11129. <item name="InstanceGuid" type_name="gh_guid" type_code="9">30c954ff-f9a8-4e9e-8c9e-f59a9c5d291c</item>
  11130. <item name="Name" type_name="gh_string" type_code="10">X coordinate</item>
  11131. <item name="NickName" type_name="gh_string" type_code="10">X</item>
  11132. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  11133. <item name="Source" index="0" type_name="gh_guid" type_code="9">7feb34e6-c435-40ef-a40e-e2792a845fb9</item>
  11134. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  11135. </items>
  11136. <chunks count="2">
  11137. <chunk name="Attributes">
  11138. <items count="2">
  11139. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  11140. <X>1656</X>
  11141. <Y>141</Y>
  11142. <W>14</W>
  11143. <H>20</H>
  11144. </item>
  11145. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  11146. <X>1664.5</X>
  11147. <Y>151</Y>
  11148. </item>
  11149. </items>
  11150. </chunk>
  11151. <chunk name="PersistentData">
  11152. <items count="1">
  11153. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  11154. </items>
  11155. <chunks count="1">
  11156. <chunk name="Branch" index="0">
  11157. <items count="2">
  11158. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  11159. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  11160. </items>
  11161. <chunks count="1">
  11162. <chunk name="Item" index="0">
  11163. <items count="1">
  11164. <item name="number" type_name="gh_double" type_code="6">0</item>
  11165. </items>
  11166. </chunk>
  11167. </chunks>
  11168. </chunk>
  11169. </chunks>
  11170. </chunk>
  11171. </chunks>
  11172. </chunk>
  11173. <chunk name="param_input" index="1">
  11174. <items count="6">
  11175. <item name="Description" type_name="gh_string" type_code="10">{y} coordinate</item>
  11176. <item name="InstanceGuid" type_name="gh_guid" type_code="9">ae4bac11-a219-4f42-a0e6-d6bf63aeb9fa</item>
  11177. <item name="Name" type_name="gh_string" type_code="10">Y coordinate</item>
  11178. <item name="NickName" type_name="gh_string" type_code="10">Y</item>
  11179. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  11180. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  11181. </items>
  11182. <chunks count="2">
  11183. <chunk name="Attributes">
  11184. <items count="2">
  11185. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  11186. <X>1656</X>
  11187. <Y>161</Y>
  11188. <W>14</W>
  11189. <H>20</H>
  11190. </item>
  11191. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  11192. <X>1664.5</X>
  11193. <Y>171</Y>
  11194. </item>
  11195. </items>
  11196. </chunk>
  11197. <chunk name="PersistentData">
  11198. <items count="1">
  11199. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  11200. </items>
  11201. <chunks count="1">
  11202. <chunk name="Branch" index="0">
  11203. <items count="2">
  11204. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  11205. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  11206. </items>
  11207. <chunks count="1">
  11208. <chunk name="Item" index="0">
  11209. <items count="1">
  11210. <item name="number" type_name="gh_double" type_code="6">0</item>
  11211. </items>
  11212. </chunk>
  11213. </chunks>
  11214. </chunk>
  11215. </chunks>
  11216. </chunk>
  11217. </chunks>
  11218. </chunk>
  11219. <chunk name="param_input" index="2">
  11220. <items count="6">
  11221. <item name="Description" type_name="gh_string" type_code="10">{z} coordinate</item>
  11222. <item name="InstanceGuid" type_name="gh_guid" type_code="9">24106b26-bc67-44c4-a1e9-15b116c3613c</item>
  11223. <item name="Name" type_name="gh_string" type_code="10">Z coordinate</item>
  11224. <item name="NickName" type_name="gh_string" type_code="10">Z</item>
  11225. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  11226. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  11227. </items>
  11228. <chunks count="2">
  11229. <chunk name="Attributes">
  11230. <items count="2">
  11231. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  11232. <X>1656</X>
  11233. <Y>181</Y>
  11234. <W>14</W>
  11235. <H>20</H>
  11236. </item>
  11237. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  11238. <X>1664.5</X>
  11239. <Y>191</Y>
  11240. </item>
  11241. </items>
  11242. </chunk>
  11243. <chunk name="PersistentData">
  11244. <items count="1">
  11245. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  11246. </items>
  11247. <chunks count="1">
  11248. <chunk name="Branch" index="0">
  11249. <items count="2">
  11250. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  11251. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  11252. </items>
  11253. <chunks count="1">
  11254. <chunk name="Item" index="0">
  11255. <items count="1">
  11256. <item name="number" type_name="gh_double" type_code="6">0</item>
  11257. </items>
  11258. </chunk>
  11259. </chunks>
  11260. </chunk>
  11261. </chunks>
  11262. </chunk>
  11263. </chunks>
  11264. </chunk>
  11265. <chunk name="param_output" index="0">
  11266. <items count="6">
  11267. <item name="Description" type_name="gh_string" type_code="10">Point coordinate</item>
  11268. <item name="InstanceGuid" type_name="gh_guid" type_code="9">1813e6b2-8594-4cdf-882c-e312c60bd7f7</item>
  11269. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  11270. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  11271. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  11272. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  11273. </items>
  11274. <chunks count="1">
  11275. <chunk name="Attributes">
  11276. <items count="2">
  11277. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  11278. <X>1700</X>
  11279. <Y>141</Y>
  11280. <W>19</W>
  11281. <H>60</H>
  11282. </item>
  11283. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  11284. <X>1709.5</X>
  11285. <Y>171</Y>
  11286. </item>
  11287. </items>
  11288. </chunk>
  11289. </chunks>
  11290. </chunk>
  11291. </chunks>
  11292. </chunk>
  11293. </chunks>
  11294. </chunk>
  11295. <chunk name="Object" index="87">
  11296. <items count="2">
  11297. <item name="GUID" type_name="gh_guid" type_code="9">d5967b9f-e8ee-436b-a8ad-29fdcecf32d5</item>
  11298. <item name="Name" type_name="gh_string" type_code="10">Curve</item>
  11299. </items>
  11300. <chunks count="1">
  11301. <chunk name="Container">
  11302. <items count="7">
  11303. <item name="Description" type_name="gh_string" type_code="10">Contains a collection of generic curves</item>
  11304. <item name="InstanceGuid" type_name="gh_guid" type_code="9">3be0014f-c7bb-45c2-a96c-88d0e7dd1d16</item>
  11305. <item name="Name" type_name="gh_string" type_code="10">Curve</item>
  11306. <item name="NickName" type_name="gh_string" type_code="10">Crv</item>
  11307. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  11308. <item name="Source" index="0" type_name="gh_guid" type_code="9">8f545f02-550b-41fb-8dd0-70baaad81a72</item>
  11309. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  11310. </items>
  11311. <chunks count="1">
  11312. <chunk name="Attributes">
  11313. <items count="2">
  11314. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  11315. <X>1969</X>
  11316. <Y>206</Y>
  11317. <W>50</W>
  11318. <H>24</H>
  11319. </item>
  11320. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  11321. <X>1994.437</X>
  11322. <Y>218.3081</Y>
  11323. </item>
  11324. </items>
  11325. </chunk>
  11326. </chunks>
  11327. </chunk>
  11328. </chunks>
  11329. </chunk>
  11330. <chunk name="Object" index="88">
  11331. <items count="2">
  11332. <item name="GUID" type_name="gh_guid" type_code="9">17b7152b-d30d-4d50-b9ef-c9fe25576fc2</item>
  11333. <item name="Name" type_name="gh_string" type_code="10">XY Plane</item>
  11334. </items>
  11335. <chunks count="1">
  11336. <chunk name="Container">
  11337. <items count="5">
  11338. <item name="Description" type_name="gh_string" type_code="10">World XY plane.</item>
  11339. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  11340. <item name="InstanceGuid" type_name="gh_guid" type_code="9">d0010e01-3735-4f83-b1a6-500844575bf9</item>
  11341. <item name="Name" type_name="gh_string" type_code="10">XY Plane</item>
  11342. <item name="NickName" type_name="gh_string" type_code="10">XY</item>
  11343. </items>
  11344. <chunks count="3">
  11345. <chunk name="Attributes">
  11346. <items count="2">
  11347. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  11348. <X>1659</X>
  11349. <Y>214</Y>
  11350. <W>64</W>
  11351. <H>28</H>
  11352. </item>
  11353. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  11354. <X>1690</X>
  11355. <Y>228</Y>
  11356. </item>
  11357. </items>
  11358. </chunk>
  11359. <chunk name="param_input" index="0">
  11360. <items count="6">
  11361. <item name="Description" type_name="gh_string" type_code="10">Origin of plane</item>
  11362. <item name="InstanceGuid" type_name="gh_guid" type_code="9">2c415a43-0493-4511-bc80-751474a0da20</item>
  11363. <item name="Name" type_name="gh_string" type_code="10">Origin</item>
  11364. <item name="NickName" type_name="gh_string" type_code="10">O</item>
  11365. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  11366. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  11367. </items>
  11368. <chunks count="2">
  11369. <chunk name="Attributes">
  11370. <items count="2">
  11371. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  11372. <X>1661</X>
  11373. <Y>216</Y>
  11374. <W>14</W>
  11375. <H>24</H>
  11376. </item>
  11377. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  11378. <X>1669.5</X>
  11379. <Y>228</Y>
  11380. </item>
  11381. </items>
  11382. </chunk>
  11383. <chunk name="PersistentData">
  11384. <items count="1">
  11385. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  11386. </items>
  11387. <chunks count="1">
  11388. <chunk name="Branch" index="0">
  11389. <items count="2">
  11390. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  11391. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  11392. </items>
  11393. <chunks count="1">
  11394. <chunk name="Item" index="0">
  11395. <!--GH_Point only stores data which exists, test the existence of data fields prior to reading.-->
  11396. <items count="1">
  11397. <item name="Coordinate" type_name="gh_point3d" type_code="51">
  11398. <X>0</X>
  11399. <Y>0</Y>
  11400. <Z>0</Z>
  11401. </item>
  11402. </items>
  11403. </chunk>
  11404. </chunks>
  11405. </chunk>
  11406. </chunks>
  11407. </chunk>
  11408. </chunks>
  11409. </chunk>
  11410. <chunk name="param_output" index="0">
  11411. <items count="6">
  11412. <item name="Description" type_name="gh_string" type_code="10">World XY plane</item>
  11413. <item name="InstanceGuid" type_name="gh_guid" type_code="9">f9c309f7-e784-42bd-ac1d-c6f978935e00</item>
  11414. <item name="Name" type_name="gh_string" type_code="10">Plane</item>
  11415. <item name="NickName" type_name="gh_string" type_code="10">P</item>
  11416. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  11417. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  11418. </items>
  11419. <chunks count="1">
  11420. <chunk name="Attributes">
  11421. <items count="2">
  11422. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  11423. <X>1705</X>
  11424. <Y>216</Y>
  11425. <W>16</W>
  11426. <H>24</H>
  11427. </item>
  11428. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  11429. <X>1713</X>
  11430. <Y>228</Y>
  11431. </item>
  11432. </items>
  11433. </chunk>
  11434. </chunks>
  11435. </chunk>
  11436. </chunks>
  11437. </chunk>
  11438. </chunks>
  11439. </chunk>
  11440. <chunk name="Object" index="89">
  11441. <items count="2">
  11442. <item name="GUID" type_name="gh_guid" type_code="9">a4cd2751-414d-42ec-8916-476ebf62d7fe</item>
  11443. <item name="Name" type_name="gh_string" type_code="10">Radians</item>
  11444. </items>
  11445. <chunks count="1">
  11446. <chunk name="Container">
  11447. <items count="4">
  11448. <item name="Description" type_name="gh_string" type_code="10">Convert an angle specified in degrees to radians</item>
  11449. <item name="InstanceGuid" type_name="gh_guid" type_code="9">8fe257f5-d9cb-49d1-b6c9-0275b7bb1e07</item>
  11450. <item name="Name" type_name="gh_string" type_code="10">Radians</item>
  11451. <item name="NickName" type_name="gh_string" type_code="10">Rad</item>
  11452. </items>
  11453. <chunks count="3">
  11454. <chunk name="Attributes">
  11455. <items count="2">
  11456. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  11457. <X>1664</X>
  11458. <Y>333</Y>
  11459. <W>64</W>
  11460. <H>28</H>
  11461. </item>
  11462. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  11463. <X>1695</X>
  11464. <Y>347</Y>
  11465. </item>
  11466. </items>
  11467. </chunk>
  11468. <chunk name="param_input" index="0">
  11469. <items count="7">
  11470. <item name="Description" type_name="gh_string" type_code="10">Angle in degrees</item>
  11471. <item name="InstanceGuid" type_name="gh_guid" type_code="9">6b4b4cf1-fd46-40c8-9f67-929d72db351b</item>
  11472. <item name="Name" type_name="gh_string" type_code="10">Degrees</item>
  11473. <item name="NickName" type_name="gh_string" type_code="10">D</item>
  11474. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  11475. <item name="Source" index="0" type_name="gh_guid" type_code="9">364d3276-a223-4ce8-826c-4071f2924b37</item>
  11476. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  11477. </items>
  11478. <chunks count="1">
  11479. <chunk name="Attributes">
  11480. <items count="2">
  11481. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  11482. <X>1666</X>
  11483. <Y>335</Y>
  11484. <W>14</W>
  11485. <H>24</H>
  11486. </item>
  11487. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  11488. <X>1674.5</X>
  11489. <Y>347</Y>
  11490. </item>
  11491. </items>
  11492. </chunk>
  11493. </chunks>
  11494. </chunk>
  11495. <chunk name="param_output" index="0">
  11496. <items count="6">
  11497. <item name="Description" type_name="gh_string" type_code="10">Angle in radians</item>
  11498. <item name="InstanceGuid" type_name="gh_guid" type_code="9">c9958f3c-a438-4f78-a3b0-79c2730cd794</item>
  11499. <item name="Name" type_name="gh_string" type_code="10">Radians</item>
  11500. <item name="NickName" type_name="gh_string" type_code="10">R</item>
  11501. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  11502. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  11503. </items>
  11504. <chunks count="1">
  11505. <chunk name="Attributes">
  11506. <items count="2">
  11507. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  11508. <X>1710</X>
  11509. <Y>335</Y>
  11510. <W>16</W>
  11511. <H>24</H>
  11512. </item>
  11513. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  11514. <X>1718</X>
  11515. <Y>347</Y>
  11516. </item>
  11517. </items>
  11518. </chunk>
  11519. </chunks>
  11520. </chunk>
  11521. </chunks>
  11522. </chunk>
  11523. </chunks>
  11524. </chunk>
  11525. <chunk name="Object" index="90">
  11526. <items count="2">
  11527. <item name="GUID" type_name="gh_guid" type_code="9">57da07bd-ecab-415d-9d86-af36d7073abc</item>
  11528. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  11529. </items>
  11530. <chunks count="1">
  11531. <chunk name="Container">
  11532. <items count="6">
  11533. <item name="Description" type_name="gh_string" type_code="10">Numeric slider for single values</item>
  11534. <item name="InstanceGuid" type_name="gh_guid" type_code="9">364d3276-a223-4ce8-826c-4071f2924b37</item>
  11535. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  11536. <item name="NickName" type_name="gh_string" type_code="10">angle °</item>
  11537. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  11538. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  11539. </items>
  11540. <chunks count="2">
  11541. <chunk name="Attributes">
  11542. <items count="2">
  11543. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  11544. <X>1351</X>
  11545. <Y>340</Y>
  11546. <W>295</W>
  11547. <H>20</H>
  11548. </item>
  11549. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  11550. <X>1351.752</X>
  11551. <Y>340.978</Y>
  11552. </item>
  11553. </items>
  11554. </chunk>
  11555. <chunk name="Slider">
  11556. <items count="7">
  11557. <item name="Digits" type_name="gh_int32" type_code="3">2</item>
  11558. <item name="GripDisplay" type_name="gh_int32" type_code="3">1</item>
  11559. <item name="Interval" type_name="gh_int32" type_code="3">0</item>
  11560. <item name="Max" type_name="gh_double" type_code="6">170</item>
  11561. <item name="Min" type_name="gh_double" type_code="6">-170</item>
  11562. <item name="SnapCount" type_name="gh_int32" type_code="3">0</item>
  11563. <item name="Value" type_name="gh_double" type_code="6">-42.08</item>
  11564. </items>
  11565. </chunk>
  11566. </chunks>
  11567. </chunk>
  11568. </chunks>
  11569. </chunk>
  11570. <chunk name="Object" index="91">
  11571. <items count="2">
  11572. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  11573. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  11574. </items>
  11575. <chunks count="1">
  11576. <chunk name="Container">
  11577. <items count="9">
  11578. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  11579. <item name="InstanceGuid" type_name="gh_guid" type_code="9">49784903-21d7-4279-9bef-a75b6aa5db52</item>
  11580. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  11581. <item name="NickName" type_name="gh_string" type_code="10"></item>
  11582. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  11583. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  11584. <item name="Source" index="0" type_name="gh_guid" type_code="9">d7f4a38f-b681-4226-a169-d484336986a2</item>
  11585. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  11586. <item name="UserText" type_name="gh_string" type_code="10">Double click to edit panel content…</item>
  11587. </items>
  11588. <chunks count="2">
  11589. <chunk name="Attributes">
  11590. <items count="5">
  11591. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  11592. <X>1924</X>
  11593. <Y>257</Y>
  11594. <W>97</W>
  11595. <H>38</H>
  11596. </item>
  11597. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  11598. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  11599. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  11600. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  11601. <X>1924.427</X>
  11602. <Y>257.7051</Y>
  11603. </item>
  11604. </items>
  11605. </chunk>
  11606. <chunk name="PanelProperties">
  11607. <items count="7">
  11608. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  11609. <ARGB>255;255;250;90</ARGB>
  11610. </item>
  11611. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  11612. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  11613. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  11614. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  11615. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  11616. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  11617. </items>
  11618. </chunk>
  11619. </chunks>
  11620. </chunk>
  11621. </chunks>
  11622. </chunk>
  11623. <chunk name="Object" index="92">
  11624. <items count="2">
  11625. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  11626. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  11627. </items>
  11628. <chunks count="1">
  11629. <chunk name="Container">
  11630. <items count="9">
  11631. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  11632. <item name="InstanceGuid" type_name="gh_guid" type_code="9">4aa4b973-077b-4bf3-b682-1bab56120052</item>
  11633. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  11634. <item name="NickName" type_name="gh_string" type_code="10"></item>
  11635. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  11636. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  11637. <item name="Source" index="0" type_name="gh_guid" type_code="9">ce2227d2-88d5-44a1-b925-e842136dca13</item>
  11638. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  11639. <item name="UserText" type_name="gh_string" type_code="10">Double click to edit panel content…</item>
  11640. </items>
  11641. <chunks count="2">
  11642. <chunk name="Attributes">
  11643. <items count="5">
  11644. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  11645. <X>2035</X>
  11646. <Y>282</Y>
  11647. <W>105</W>
  11648. <H>55</H>
  11649. </item>
  11650. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  11651. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  11652. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  11653. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  11654. <X>2035.346</X>
  11655. <Y>282.573</Y>
  11656. </item>
  11657. </items>
  11658. </chunk>
  11659. <chunk name="PanelProperties">
  11660. <items count="7">
  11661. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  11662. <ARGB>255;255;250;90</ARGB>
  11663. </item>
  11664. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  11665. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  11666. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  11667. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  11668. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  11669. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  11670. </items>
  11671. </chunk>
  11672. </chunks>
  11673. </chunk>
  11674. </chunks>
  11675. </chunk>
  11676. <chunk name="Object" index="93">
  11677. <items count="2">
  11678. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  11679. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  11680. </items>
  11681. <chunks count="1">
  11682. <chunk name="Container">
  11683. <items count="9">
  11684. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  11685. <item name="InstanceGuid" type_name="gh_guid" type_code="9">372b06f9-a8b8-4e7d-b9a0-47795f8b6db6</item>
  11686. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  11687. <item name="NickName" type_name="gh_string" type_code="10"></item>
  11688. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  11689. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  11690. <item name="Source" index="0" type_name="gh_guid" type_code="9">1c6a682f-bab0-45c4-b876-7f71802d69ab</item>
  11691. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  11692. <item name="UserText" type_name="gh_string" type_code="10">Double click to edit panel content…</item>
  11693. </items>
  11694. <chunks count="2">
  11695. <chunk name="Attributes">
  11696. <items count="5">
  11697. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  11698. <X>1923</X>
  11699. <Y>318</Y>
  11700. <W>97</W>
  11701. <H>38</H>
  11702. </item>
  11703. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  11704. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  11705. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  11706. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  11707. <X>1923.371</X>
  11708. <Y>318.089</Y>
  11709. </item>
  11710. </items>
  11711. </chunk>
  11712. <chunk name="PanelProperties">
  11713. <items count="7">
  11714. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  11715. <ARGB>255;255;250;90</ARGB>
  11716. </item>
  11717. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  11718. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  11719. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  11720. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  11721. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  11722. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  11723. </items>
  11724. </chunk>
  11725. </chunks>
  11726. </chunk>
  11727. </chunks>
  11728. </chunk>
  11729. <chunk name="Object" index="94">
  11730. <items count="2">
  11731. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  11732. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  11733. </items>
  11734. <chunks count="1">
  11735. <chunk name="Container">
  11736. <items count="8">
  11737. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  11738. <item name="InstanceGuid" type_name="gh_guid" type_code="9">7feb34e6-c435-40ef-a40e-e2792a845fb9</item>
  11739. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  11740. <item name="NickName" type_name="gh_string" type_code="10"></item>
  11741. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  11742. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  11743. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  11744. <item name="UserText" type_name="gh_string" type_code="10">-75</item>
  11745. </items>
  11746. <chunks count="2">
  11747. <chunk name="Attributes">
  11748. <items count="5">
  11749. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  11750. <X>1568</X>
  11751. <Y>140</Y>
  11752. <W>50</W>
  11753. <H>20</H>
  11754. </item>
  11755. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  11756. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  11757. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  11758. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  11759. <X>1568.331</X>
  11760. <Y>140.4951</Y>
  11761. </item>
  11762. </items>
  11763. </chunk>
  11764. <chunk name="PanelProperties">
  11765. <items count="7">
  11766. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  11767. <ARGB>255;255;250;90</ARGB>
  11768. </item>
  11769. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  11770. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  11771. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  11772. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  11773. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  11774. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  11775. </items>
  11776. </chunk>
  11777. </chunks>
  11778. </chunk>
  11779. </chunks>
  11780. </chunk>
  11781. <chunk name="Object" index="95">
  11782. <items count="2">
  11783. <item name="GUID" type_name="gh_guid" type_code="9">7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe</item>
  11784. <item name="Name" type_name="gh_string" type_code="10">Scribble</item>
  11785. </items>
  11786. <chunks count="1">
  11787. <chunk name="Container">
  11788. <items count="13">
  11789. <item name="Bold" type_name="gh_bool" type_code="1">true</item>
  11790. <item name="Ca" type_name="gh_drawing_pointf" type_code="31">
  11791. <X>2269.006</X>
  11792. <Y>1162.356</Y>
  11793. </item>
  11794. <item name="Cb" type_name="gh_drawing_pointf" type_code="31">
  11795. <X>2646.125</X>
  11796. <Y>1163.049</Y>
  11797. </item>
  11798. <item name="Cc" type_name="gh_drawing_pointf" type_code="31">
  11799. <X>2646.09</X>
  11800. <Y>1181.682</Y>
  11801. </item>
  11802. <item name="Cd" type_name="gh_drawing_pointf" type_code="31">
  11803. <X>2268.972</X>
  11804. <Y>1180.989</Y>
  11805. </item>
  11806. <item name="Description" type_name="gh_string" type_code="10">A quick note</item>
  11807. <item name="Font" type_name="gh_string" type_code="10">Microsoft Sans Serif</item>
  11808. <item name="InstanceGuid" type_name="gh_guid" type_code="9">61792023-c3a4-44db-a658-c546e321f080</item>
  11809. <item name="Italic" type_name="gh_bool" type_code="1">false</item>
  11810. <item name="Name" type_name="gh_string" type_code="10">Scribble</item>
  11811. <item name="NickName" type_name="gh_string" type_code="10">Scribble</item>
  11812. <item name="Size" type_name="gh_single" type_code="5">25</item>
  11813. <item name="Text" type_name="gh_string" type_code="10">And the real raison d'être: tents!</item>
  11814. </items>
  11815. <chunks count="1">
  11816. <chunk name="Attributes">
  11817. <items count="2">
  11818. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  11819. <X>2263.972</X>
  11820. <Y>1157.356</Y>
  11821. <W>387.1528</W>
  11822. <H>29.32556</H>
  11823. </item>
  11824. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  11825. <X>2269.006</X>
  11826. <Y>1162.356</Y>
  11827. </item>
  11828. </items>
  11829. </chunk>
  11830. </chunks>
  11831. </chunk>
  11832. </chunks>
  11833. </chunk>
  11834. <chunk name="Object" index="96">
  11835. <items count="2">
  11836. <item name="GUID" type_name="gh_guid" type_code="9">575660b1-8c79-4b8d-9222-7ab4a6ddb359</item>
  11837. <item name="Name" type_name="gh_string" type_code="10">Rectangle 2Pt</item>
  11838. </items>
  11839. <chunks count="1">
  11840. <chunk name="Container">
  11841. <items count="4">
  11842. <item name="Description" type_name="gh_string" type_code="10">Create a rectangle from a base plane and two points</item>
  11843. <item name="InstanceGuid" type_name="gh_guid" type_code="9">b8a48901-2a87-4e7d-870b-46ddd3c0a406</item>
  11844. <item name="Name" type_name="gh_string" type_code="10">Rectangle 2Pt</item>
  11845. <item name="NickName" type_name="gh_string" type_code="10">Rec 2Pt</item>
  11846. </items>
  11847. <chunks count="7">
  11848. <chunk name="Attributes">
  11849. <items count="2">
  11850. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  11851. <X>2171</X>
  11852. <Y>1539</Y>
  11853. <W>64</W>
  11854. <H>84</H>
  11855. </item>
  11856. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  11857. <X>2202</X>
  11858. <Y>1581</Y>
  11859. </item>
  11860. </items>
  11861. </chunk>
  11862. <chunk name="param_input" index="0">
  11863. <items count="7">
  11864. <item name="Description" type_name="gh_string" type_code="10">Rectangle base plane</item>
  11865. <item name="InstanceGuid" type_name="gh_guid" type_code="9">e2d6cfd4-201c-479e-a449-d47449b5d99c</item>
  11866. <item name="Name" type_name="gh_string" type_code="10">Plane</item>
  11867. <item name="NickName" type_name="gh_string" type_code="10">P</item>
  11868. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  11869. <item name="Source" index="0" type_name="gh_guid" type_code="9">8d8d0823-8c31-466e-89ab-c417764715c3</item>
  11870. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  11871. </items>
  11872. <chunks count="2">
  11873. <chunk name="Attributes">
  11874. <items count="2">
  11875. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  11876. <X>2173</X>
  11877. <Y>1541</Y>
  11878. <W>14</W>
  11879. <H>20</H>
  11880. </item>
  11881. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  11882. <X>2181.5</X>
  11883. <Y>1551</Y>
  11884. </item>
  11885. </items>
  11886. </chunk>
  11887. <chunk name="PersistentData">
  11888. <items count="1">
  11889. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  11890. </items>
  11891. <chunks count="1">
  11892. <chunk name="Branch" index="0">
  11893. <items count="2">
  11894. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  11895. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  11896. </items>
  11897. <chunks count="1">
  11898. <chunk name="Item" index="0">
  11899. <items count="1">
  11900. <item name="plane" type_name="gh_plane" type_code="72">
  11901. <Ox>0</Ox>
  11902. <Oy>0</Oy>
  11903. <Oz>0</Oz>
  11904. <Xx>1</Xx>
  11905. <Xy>0</Xy>
  11906. <Xz>0</Xz>
  11907. <Yx>0</Yx>
  11908. <Yy>1</Yy>
  11909. <Yz>0</Yz>
  11910. </item>
  11911. </items>
  11912. </chunk>
  11913. </chunks>
  11914. </chunk>
  11915. </chunks>
  11916. </chunk>
  11917. </chunks>
  11918. </chunk>
  11919. <chunk name="param_input" index="1">
  11920. <items count="7">
  11921. <item name="Description" type_name="gh_string" type_code="10">First corner point.</item>
  11922. <item name="InstanceGuid" type_name="gh_guid" type_code="9">c31a60ef-1b6b-45b3-b296-290087f567bf</item>
  11923. <item name="Name" type_name="gh_string" type_code="10">Point A</item>
  11924. <item name="NickName" type_name="gh_string" type_code="10">A</item>
  11925. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  11926. <item name="Source" index="0" type_name="gh_guid" type_code="9">9ac73f55-39ae-429e-8dc8-8e7f958b4042</item>
  11927. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  11928. </items>
  11929. <chunks count="2">
  11930. <chunk name="Attributes">
  11931. <items count="2">
  11932. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  11933. <X>2173</X>
  11934. <Y>1561</Y>
  11935. <W>14</W>
  11936. <H>20</H>
  11937. </item>
  11938. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  11939. <X>2181.5</X>
  11940. <Y>1571</Y>
  11941. </item>
  11942. </items>
  11943. </chunk>
  11944. <chunk name="PersistentData">
  11945. <items count="1">
  11946. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  11947. </items>
  11948. <chunks count="1">
  11949. <chunk name="Branch" index="0">
  11950. <items count="2">
  11951. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  11952. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  11953. </items>
  11954. <chunks count="1">
  11955. <chunk name="Item" index="0">
  11956. <!--GH_Point only stores data which exists, test the existence of data fields prior to reading.-->
  11957. <items count="1">
  11958. <item name="Coordinate" type_name="gh_point3d" type_code="51">
  11959. <X>0</X>
  11960. <Y>0</Y>
  11961. <Z>0</Z>
  11962. </item>
  11963. </items>
  11964. </chunk>
  11965. </chunks>
  11966. </chunk>
  11967. </chunks>
  11968. </chunk>
  11969. </chunks>
  11970. </chunk>
  11971. <chunk name="param_input" index="2">
  11972. <items count="7">
  11973. <item name="Description" type_name="gh_string" type_code="10">Second corner point.</item>
  11974. <item name="InstanceGuid" type_name="gh_guid" type_code="9">84fdc143-bd3e-4515-a76c-b9793c5c039d</item>
  11975. <item name="Name" type_name="gh_string" type_code="10">Point B</item>
  11976. <item name="NickName" type_name="gh_string" type_code="10">B</item>
  11977. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  11978. <item name="Source" index="0" type_name="gh_guid" type_code="9">a8fa466b-7cde-4211-998f-da025b67f6b6</item>
  11979. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  11980. </items>
  11981. <chunks count="2">
  11982. <chunk name="Attributes">
  11983. <items count="2">
  11984. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  11985. <X>2173</X>
  11986. <Y>1581</Y>
  11987. <W>14</W>
  11988. <H>20</H>
  11989. </item>
  11990. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  11991. <X>2181.5</X>
  11992. <Y>1591</Y>
  11993. </item>
  11994. </items>
  11995. </chunk>
  11996. <chunk name="PersistentData">
  11997. <items count="1">
  11998. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  11999. </items>
  12000. <chunks count="1">
  12001. <chunk name="Branch" index="0">
  12002. <items count="2">
  12003. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  12004. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  12005. </items>
  12006. <chunks count="1">
  12007. <chunk name="Item" index="0">
  12008. <!--GH_Point only stores data which exists, test the existence of data fields prior to reading.-->
  12009. <items count="1">
  12010. <item name="Coordinate" type_name="gh_point3d" type_code="51">
  12011. <X>10</X>
  12012. <Y>5</Y>
  12013. <Z>0</Z>
  12014. </item>
  12015. </items>
  12016. </chunk>
  12017. </chunks>
  12018. </chunk>
  12019. </chunks>
  12020. </chunk>
  12021. </chunks>
  12022. </chunk>
  12023. <chunk name="param_input" index="3">
  12024. <items count="6">
  12025. <item name="Description" type_name="gh_string" type_code="10">Rectangle corner fillet radius</item>
  12026. <item name="InstanceGuid" type_name="gh_guid" type_code="9">789908b6-b304-431d-b593-c2d0b7f80aa3</item>
  12027. <item name="Name" type_name="gh_string" type_code="10">Radius</item>
  12028. <item name="NickName" type_name="gh_string" type_code="10">R</item>
  12029. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  12030. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  12031. </items>
  12032. <chunks count="2">
  12033. <chunk name="Attributes">
  12034. <items count="2">
  12035. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  12036. <X>2173</X>
  12037. <Y>1601</Y>
  12038. <W>14</W>
  12039. <H>20</H>
  12040. </item>
  12041. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  12042. <X>2181.5</X>
  12043. <Y>1611</Y>
  12044. </item>
  12045. </items>
  12046. </chunk>
  12047. <chunk name="PersistentData">
  12048. <items count="1">
  12049. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  12050. </items>
  12051. <chunks count="1">
  12052. <chunk name="Branch" index="0">
  12053. <items count="2">
  12054. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  12055. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  12056. </items>
  12057. <chunks count="1">
  12058. <chunk name="Item" index="0">
  12059. <items count="1">
  12060. <item name="number" type_name="gh_double" type_code="6">0</item>
  12061. </items>
  12062. </chunk>
  12063. </chunks>
  12064. </chunk>
  12065. </chunks>
  12066. </chunk>
  12067. </chunks>
  12068. </chunk>
  12069. <chunk name="param_output" index="0">
  12070. <items count="6">
  12071. <item name="Description" type_name="gh_string" type_code="10">Rectangle defined by P, A and B</item>
  12072. <item name="InstanceGuid" type_name="gh_guid" type_code="9">5cf2e6df-da94-4f18-9535-133a50f579e9</item>
  12073. <item name="Name" type_name="gh_string" type_code="10">Rectangle</item>
  12074. <item name="NickName" type_name="gh_string" type_code="10">R</item>
  12075. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  12076. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  12077. </items>
  12078. <chunks count="1">
  12079. <chunk name="Attributes">
  12080. <items count="2">
  12081. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  12082. <X>2217</X>
  12083. <Y>1541</Y>
  12084. <W>16</W>
  12085. <H>40</H>
  12086. </item>
  12087. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  12088. <X>2225</X>
  12089. <Y>1561</Y>
  12090. </item>
  12091. </items>
  12092. </chunk>
  12093. </chunks>
  12094. </chunk>
  12095. <chunk name="param_output" index="1">
  12096. <items count="6">
  12097. <item name="Description" type_name="gh_string" type_code="10">Length of rectangle curve</item>
  12098. <item name="InstanceGuid" type_name="gh_guid" type_code="9">7e0b11dd-d81c-4da2-b222-5309b51b0636</item>
  12099. <item name="Name" type_name="gh_string" type_code="10">Length</item>
  12100. <item name="NickName" type_name="gh_string" type_code="10">L</item>
  12101. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  12102. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  12103. </items>
  12104. <chunks count="1">
  12105. <chunk name="Attributes">
  12106. <items count="2">
  12107. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  12108. <X>2217</X>
  12109. <Y>1581</Y>
  12110. <W>16</W>
  12111. <H>40</H>
  12112. </item>
  12113. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  12114. <X>2225</X>
  12115. <Y>1601</Y>
  12116. </item>
  12117. </items>
  12118. </chunk>
  12119. </chunks>
  12120. </chunk>
  12121. </chunks>
  12122. </chunk>
  12123. </chunks>
  12124. </chunk>
  12125. <chunk name="Object" index="97">
  12126. <items count="2">
  12127. <item name="GUID" type_name="gh_guid" type_code="9">17b7152b-d30d-4d50-b9ef-c9fe25576fc2</item>
  12128. <item name="Name" type_name="gh_string" type_code="10">XY Plane</item>
  12129. </items>
  12130. <chunks count="1">
  12131. <chunk name="Container">
  12132. <items count="5">
  12133. <item name="Description" type_name="gh_string" type_code="10">World XY plane.</item>
  12134. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  12135. <item name="InstanceGuid" type_name="gh_guid" type_code="9">03446bc9-f51d-46c6-85eb-615230f3c249</item>
  12136. <item name="Name" type_name="gh_string" type_code="10">XY Plane</item>
  12137. <item name="NickName" type_name="gh_string" type_code="10">XY</item>
  12138. </items>
  12139. <chunks count="3">
  12140. <chunk name="Attributes">
  12141. <items count="2">
  12142. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  12143. <X>2099</X>
  12144. <Y>1495</Y>
  12145. <W>64</W>
  12146. <H>28</H>
  12147. </item>
  12148. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  12149. <X>2130</X>
  12150. <Y>1509</Y>
  12151. </item>
  12152. </items>
  12153. </chunk>
  12154. <chunk name="param_input" index="0">
  12155. <items count="6">
  12156. <item name="Description" type_name="gh_string" type_code="10">Origin of plane</item>
  12157. <item name="InstanceGuid" type_name="gh_guid" type_code="9">8b2fbbc3-5be3-46d2-9834-1a1a5caea969</item>
  12158. <item name="Name" type_name="gh_string" type_code="10">Origin</item>
  12159. <item name="NickName" type_name="gh_string" type_code="10">O</item>
  12160. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  12161. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  12162. </items>
  12163. <chunks count="2">
  12164. <chunk name="Attributes">
  12165. <items count="2">
  12166. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  12167. <X>2101</X>
  12168. <Y>1497</Y>
  12169. <W>14</W>
  12170. <H>24</H>
  12171. </item>
  12172. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  12173. <X>2109.5</X>
  12174. <Y>1509</Y>
  12175. </item>
  12176. </items>
  12177. </chunk>
  12178. <chunk name="PersistentData">
  12179. <items count="1">
  12180. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  12181. </items>
  12182. <chunks count="1">
  12183. <chunk name="Branch" index="0">
  12184. <items count="2">
  12185. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  12186. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  12187. </items>
  12188. <chunks count="1">
  12189. <chunk name="Item" index="0">
  12190. <!--GH_Point only stores data which exists, test the existence of data fields prior to reading.-->
  12191. <items count="1">
  12192. <item name="Coordinate" type_name="gh_point3d" type_code="51">
  12193. <X>0</X>
  12194. <Y>0</Y>
  12195. <Z>0</Z>
  12196. </item>
  12197. </items>
  12198. </chunk>
  12199. </chunks>
  12200. </chunk>
  12201. </chunks>
  12202. </chunk>
  12203. </chunks>
  12204. </chunk>
  12205. <chunk name="param_output" index="0">
  12206. <items count="6">
  12207. <item name="Description" type_name="gh_string" type_code="10">World XY plane</item>
  12208. <item name="InstanceGuid" type_name="gh_guid" type_code="9">8d8d0823-8c31-466e-89ab-c417764715c3</item>
  12209. <item name="Name" type_name="gh_string" type_code="10">Plane</item>
  12210. <item name="NickName" type_name="gh_string" type_code="10">P</item>
  12211. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  12212. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  12213. </items>
  12214. <chunks count="1">
  12215. <chunk name="Attributes">
  12216. <items count="2">
  12217. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  12218. <X>2145</X>
  12219. <Y>1497</Y>
  12220. <W>16</W>
  12221. <H>24</H>
  12222. </item>
  12223. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  12224. <X>2153</X>
  12225. <Y>1509</Y>
  12226. </item>
  12227. </items>
  12228. </chunk>
  12229. </chunks>
  12230. </chunk>
  12231. </chunks>
  12232. </chunk>
  12233. </chunks>
  12234. </chunk>
  12235. <chunk name="Object" index="98">
  12236. <items count="2">
  12237. <item name="GUID" type_name="gh_guid" type_code="9">3581f42a-9592-4549-bd6b-1c0fc39d067b</item>
  12238. <item name="Name" type_name="gh_string" type_code="10">Construct Point</item>
  12239. </items>
  12240. <chunks count="1">
  12241. <chunk name="Container">
  12242. <items count="4">
  12243. <item name="Description" type_name="gh_string" type_code="10">Construct a point from {xyz} coordinates.</item>
  12244. <item name="InstanceGuid" type_name="gh_guid" type_code="9">7d498686-2e4d-42a6-adc7-13da767447ec</item>
  12245. <item name="Name" type_name="gh_string" type_code="10">Construct Point</item>
  12246. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  12247. </items>
  12248. <chunks count="5">
  12249. <chunk name="Attributes">
  12250. <items count="2">
  12251. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  12252. <X>1530</X>
  12253. <Y>1185</Y>
  12254. <W>67</W>
  12255. <H>64</H>
  12256. </item>
  12257. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  12258. <X>1561</X>
  12259. <Y>1217</Y>
  12260. </item>
  12261. </items>
  12262. </chunk>
  12263. <chunk name="param_input" index="0">
  12264. <items count="7">
  12265. <item name="Description" type_name="gh_string" type_code="10">{x} coordinate</item>
  12266. <item name="InstanceGuid" type_name="gh_guid" type_code="9">bb3e48a5-a17f-4d87-8d40-67dd01b081eb</item>
  12267. <item name="Name" type_name="gh_string" type_code="10">X coordinate</item>
  12268. <item name="NickName" type_name="gh_string" type_code="10">X</item>
  12269. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  12270. <item name="Source" index="0" type_name="gh_guid" type_code="9">0903a6c2-e102-41a9-8326-3f9533f91f9f</item>
  12271. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  12272. </items>
  12273. <chunks count="2">
  12274. <chunk name="Attributes">
  12275. <items count="2">
  12276. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  12277. <X>1532</X>
  12278. <Y>1187</Y>
  12279. <W>14</W>
  12280. <H>20</H>
  12281. </item>
  12282. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  12283. <X>1540.5</X>
  12284. <Y>1197</Y>
  12285. </item>
  12286. </items>
  12287. </chunk>
  12288. <chunk name="PersistentData">
  12289. <items count="1">
  12290. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  12291. </items>
  12292. <chunks count="1">
  12293. <chunk name="Branch" index="0">
  12294. <items count="2">
  12295. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  12296. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  12297. </items>
  12298. <chunks count="1">
  12299. <chunk name="Item" index="0">
  12300. <items count="1">
  12301. <item name="number" type_name="gh_double" type_code="6">0</item>
  12302. </items>
  12303. </chunk>
  12304. </chunks>
  12305. </chunk>
  12306. </chunks>
  12307. </chunk>
  12308. </chunks>
  12309. </chunk>
  12310. <chunk name="param_input" index="1">
  12311. <items count="7">
  12312. <item name="Description" type_name="gh_string" type_code="10">{y} coordinate</item>
  12313. <item name="InstanceGuid" type_name="gh_guid" type_code="9">c46a319c-3740-4362-8bff-3454b1d2a6cc</item>
  12314. <item name="Name" type_name="gh_string" type_code="10">Y coordinate</item>
  12315. <item name="NickName" type_name="gh_string" type_code="10">Y</item>
  12316. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  12317. <item name="Source" index="0" type_name="gh_guid" type_code="9">17a61eca-a95a-4f8b-aa55-052523e686bc</item>
  12318. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  12319. </items>
  12320. <chunks count="2">
  12321. <chunk name="Attributes">
  12322. <items count="2">
  12323. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  12324. <X>1532</X>
  12325. <Y>1207</Y>
  12326. <W>14</W>
  12327. <H>20</H>
  12328. </item>
  12329. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  12330. <X>1540.5</X>
  12331. <Y>1217</Y>
  12332. </item>
  12333. </items>
  12334. </chunk>
  12335. <chunk name="PersistentData">
  12336. <items count="1">
  12337. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  12338. </items>
  12339. <chunks count="1">
  12340. <chunk name="Branch" index="0">
  12341. <items count="2">
  12342. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  12343. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  12344. </items>
  12345. <chunks count="1">
  12346. <chunk name="Item" index="0">
  12347. <items count="1">
  12348. <item name="number" type_name="gh_double" type_code="6">0</item>
  12349. </items>
  12350. </chunk>
  12351. </chunks>
  12352. </chunk>
  12353. </chunks>
  12354. </chunk>
  12355. </chunks>
  12356. </chunk>
  12357. <chunk name="param_input" index="2">
  12358. <items count="6">
  12359. <item name="Description" type_name="gh_string" type_code="10">{z} coordinate</item>
  12360. <item name="InstanceGuid" type_name="gh_guid" type_code="9">6c63b308-c5d5-44f6-a259-04c99b457c22</item>
  12361. <item name="Name" type_name="gh_string" type_code="10">Z coordinate</item>
  12362. <item name="NickName" type_name="gh_string" type_code="10">Z</item>
  12363. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  12364. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  12365. </items>
  12366. <chunks count="2">
  12367. <chunk name="Attributes">
  12368. <items count="2">
  12369. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  12370. <X>1532</X>
  12371. <Y>1227</Y>
  12372. <W>14</W>
  12373. <H>20</H>
  12374. </item>
  12375. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  12376. <X>1540.5</X>
  12377. <Y>1237</Y>
  12378. </item>
  12379. </items>
  12380. </chunk>
  12381. <chunk name="PersistentData">
  12382. <items count="1">
  12383. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  12384. </items>
  12385. <chunks count="1">
  12386. <chunk name="Branch" index="0">
  12387. <items count="2">
  12388. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  12389. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  12390. </items>
  12391. <chunks count="1">
  12392. <chunk name="Item" index="0">
  12393. <items count="1">
  12394. <item name="number" type_name="gh_double" type_code="6">0</item>
  12395. </items>
  12396. </chunk>
  12397. </chunks>
  12398. </chunk>
  12399. </chunks>
  12400. </chunk>
  12401. </chunks>
  12402. </chunk>
  12403. <chunk name="param_output" index="0">
  12404. <items count="6">
  12405. <item name="Description" type_name="gh_string" type_code="10">Point coordinate</item>
  12406. <item name="InstanceGuid" type_name="gh_guid" type_code="9">f70a66ec-d9db-496d-9885-4b577f135593</item>
  12407. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  12408. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  12409. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  12410. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  12411. </items>
  12412. <chunks count="1">
  12413. <chunk name="Attributes">
  12414. <items count="2">
  12415. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  12416. <X>1576</X>
  12417. <Y>1187</Y>
  12418. <W>19</W>
  12419. <H>60</H>
  12420. </item>
  12421. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  12422. <X>1585.5</X>
  12423. <Y>1217</Y>
  12424. </item>
  12425. </items>
  12426. </chunk>
  12427. </chunks>
  12428. </chunk>
  12429. </chunks>
  12430. </chunk>
  12431. </chunks>
  12432. </chunk>
  12433. <chunk name="Object" index="99">
  12434. <items count="2">
  12435. <item name="GUID" type_name="gh_guid" type_code="9">a0d62394-a118-422d-abb3-6af115c75b25</item>
  12436. <item name="Name" type_name="gh_string" type_code="10">Addition</item>
  12437. </items>
  12438. <chunks count="1">
  12439. <chunk name="Container">
  12440. <items count="5">
  12441. <item name="Description" type_name="gh_string" type_code="10">Mathematical addition</item>
  12442. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  12443. <item name="InstanceGuid" type_name="gh_guid" type_code="9">f35af83d-b4d8-44ef-9f78-7dc1ed1ad4dd</item>
  12444. <item name="Name" type_name="gh_string" type_code="10">Addition</item>
  12445. <item name="NickName" type_name="gh_string" type_code="10">A+B</item>
  12446. </items>
  12447. <chunks count="2">
  12448. <chunk name="Attributes">
  12449. <items count="2">
  12450. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  12451. <X>1688</X>
  12452. <Y>1286</Y>
  12453. <W>64</W>
  12454. <H>44</H>
  12455. </item>
  12456. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  12457. <X>1719</X>
  12458. <Y>1308</Y>
  12459. </item>
  12460. </items>
  12461. </chunk>
  12462. <chunk name="ParameterData">
  12463. <items count="5">
  12464. <item name="InputCount" type_name="gh_int32" type_code="3">2</item>
  12465. <item name="InputId" index="0" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  12466. <item name="InputId" index="1" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  12467. <item name="OutputCount" type_name="gh_int32" type_code="3">1</item>
  12468. <item name="OutputId" index="0" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  12469. </items>
  12470. <chunks count="3">
  12471. <chunk name="InputParam" index="0">
  12472. <items count="7">
  12473. <item name="Description" type_name="gh_string" type_code="10">First item for addition</item>
  12474. <item name="InstanceGuid" type_name="gh_guid" type_code="9">f3b877be-ea2c-4706-b8e6-cf34d2796bca</item>
  12475. <item name="Name" type_name="gh_string" type_code="10">A</item>
  12476. <item name="NickName" type_name="gh_string" type_code="10">A</item>
  12477. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  12478. <item name="Source" index="0" type_name="gh_guid" type_code="9">f70a66ec-d9db-496d-9885-4b577f135593</item>
  12479. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  12480. </items>
  12481. <chunks count="1">
  12482. <chunk name="Attributes">
  12483. <items count="2">
  12484. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  12485. <X>1690</X>
  12486. <Y>1288</Y>
  12487. <W>14</W>
  12488. <H>20</H>
  12489. </item>
  12490. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  12491. <X>1698.5</X>
  12492. <Y>1298</Y>
  12493. </item>
  12494. </items>
  12495. </chunk>
  12496. </chunks>
  12497. </chunk>
  12498. <chunk name="InputParam" index="1">
  12499. <items count="7">
  12500. <item name="Description" type_name="gh_string" type_code="10">Second item for addition</item>
  12501. <item name="InstanceGuid" type_name="gh_guid" type_code="9">16e574ce-9435-47c5-850d-a8fc5152e81d</item>
  12502. <item name="Name" type_name="gh_string" type_code="10">B</item>
  12503. <item name="NickName" type_name="gh_string" type_code="10">B</item>
  12504. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  12505. <item name="Source" index="0" type_name="gh_guid" type_code="9">60a1321b-0d85-4215-ac31-f94c7015ccf2</item>
  12506. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  12507. </items>
  12508. <chunks count="1">
  12509. <chunk name="Attributes">
  12510. <items count="2">
  12511. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  12512. <X>1690</X>
  12513. <Y>1308</Y>
  12514. <W>14</W>
  12515. <H>20</H>
  12516. </item>
  12517. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  12518. <X>1698.5</X>
  12519. <Y>1318</Y>
  12520. </item>
  12521. </items>
  12522. </chunk>
  12523. </chunks>
  12524. </chunk>
  12525. <chunk name="OutputParam" index="0">
  12526. <items count="6">
  12527. <item name="Description" type_name="gh_string" type_code="10">Result of addition</item>
  12528. <item name="InstanceGuid" type_name="gh_guid" type_code="9">9ac73f55-39ae-429e-8dc8-8e7f958b4042</item>
  12529. <item name="Name" type_name="gh_string" type_code="10">Result</item>
  12530. <item name="NickName" type_name="gh_string" type_code="10">R</item>
  12531. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  12532. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  12533. </items>
  12534. <chunks count="1">
  12535. <chunk name="Attributes">
  12536. <items count="2">
  12537. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  12538. <X>1734</X>
  12539. <Y>1288</Y>
  12540. <W>16</W>
  12541. <H>40</H>
  12542. </item>
  12543. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  12544. <X>1742</X>
  12545. <Y>1308</Y>
  12546. </item>
  12547. </items>
  12548. </chunk>
  12549. </chunks>
  12550. </chunk>
  12551. </chunks>
  12552. </chunk>
  12553. </chunks>
  12554. </chunk>
  12555. </chunks>
  12556. </chunk>
  12557. <chunk name="Object" index="100">
  12558. <items count="2">
  12559. <item name="GUID" type_name="gh_guid" type_code="9">56b92eab-d121-43f7-94d3-6cd8f0ddead8</item>
  12560. <item name="Name" type_name="gh_string" type_code="10">Vector XYZ</item>
  12561. </items>
  12562. <chunks count="1">
  12563. <chunk name="Container">
  12564. <items count="5">
  12565. <item name="Description" type_name="gh_string" type_code="10">Create a vector from {xyz} components.</item>
  12566. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  12567. <item name="InstanceGuid" type_name="gh_guid" type_code="9">25bf0db5-4adb-4408-bfee-7d3611f1d1b6</item>
  12568. <item name="Name" type_name="gh_string" type_code="10">Vector XYZ</item>
  12569. <item name="NickName" type_name="gh_string" type_code="10">Vec</item>
  12570. </items>
  12571. <chunks count="6">
  12572. <chunk name="Attributes">
  12573. <items count="2">
  12574. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  12575. <X>1576</X>
  12576. <Y>1323</Y>
  12577. <W>64</W>
  12578. <H>64</H>
  12579. </item>
  12580. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  12581. <X>1607</X>
  12582. <Y>1355</Y>
  12583. </item>
  12584. </items>
  12585. </chunk>
  12586. <chunk name="param_input" index="0">
  12587. <items count="7">
  12588. <item name="Description" type_name="gh_string" type_code="10">Vector {x} component</item>
  12589. <item name="InstanceGuid" type_name="gh_guid" type_code="9">ec060dc1-0d2b-4706-ac14-728c097f877f</item>
  12590. <item name="Name" type_name="gh_string" type_code="10">X component</item>
  12591. <item name="NickName" type_name="gh_string" type_code="10">X</item>
  12592. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  12593. <item name="Source" index="0" type_name="gh_guid" type_code="9">9b5d1997-6eb6-419e-84a2-da5dc70f5477</item>
  12594. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  12595. </items>
  12596. <chunks count="2">
  12597. <chunk name="Attributes">
  12598. <items count="2">
  12599. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  12600. <X>1578</X>
  12601. <Y>1325</Y>
  12602. <W>14</W>
  12603. <H>20</H>
  12604. </item>
  12605. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  12606. <X>1586.5</X>
  12607. <Y>1335</Y>
  12608. </item>
  12609. </items>
  12610. </chunk>
  12611. <chunk name="PersistentData">
  12612. <items count="1">
  12613. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  12614. </items>
  12615. <chunks count="1">
  12616. <chunk name="Branch" index="0">
  12617. <items count="2">
  12618. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  12619. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  12620. </items>
  12621. <chunks count="1">
  12622. <chunk name="Item" index="0">
  12623. <items count="1">
  12624. <item name="number" type_name="gh_double" type_code="6">0</item>
  12625. </items>
  12626. </chunk>
  12627. </chunks>
  12628. </chunk>
  12629. </chunks>
  12630. </chunk>
  12631. </chunks>
  12632. </chunk>
  12633. <chunk name="param_input" index="1">
  12634. <items count="7">
  12635. <item name="Description" type_name="gh_string" type_code="10">Vector {y} component</item>
  12636. <item name="InstanceGuid" type_name="gh_guid" type_code="9">1554f826-50eb-4842-ad0c-e1591646e701</item>
  12637. <item name="Name" type_name="gh_string" type_code="10">Y component</item>
  12638. <item name="NickName" type_name="gh_string" type_code="10">Y</item>
  12639. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  12640. <item name="Source" index="0" type_name="gh_guid" type_code="9">b582b4c2-046d-4816-9bf2-b7e40b12e3a1</item>
  12641. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  12642. </items>
  12643. <chunks count="2">
  12644. <chunk name="Attributes">
  12645. <items count="2">
  12646. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  12647. <X>1578</X>
  12648. <Y>1345</Y>
  12649. <W>14</W>
  12650. <H>20</H>
  12651. </item>
  12652. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  12653. <X>1586.5</X>
  12654. <Y>1355</Y>
  12655. </item>
  12656. </items>
  12657. </chunk>
  12658. <chunk name="PersistentData">
  12659. <items count="1">
  12660. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  12661. </items>
  12662. <chunks count="1">
  12663. <chunk name="Branch" index="0">
  12664. <items count="2">
  12665. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  12666. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  12667. </items>
  12668. <chunks count="1">
  12669. <chunk name="Item" index="0">
  12670. <items count="1">
  12671. <item name="number" type_name="gh_double" type_code="6">0</item>
  12672. </items>
  12673. </chunk>
  12674. </chunks>
  12675. </chunk>
  12676. </chunks>
  12677. </chunk>
  12678. </chunks>
  12679. </chunk>
  12680. <chunk name="param_input" index="2">
  12681. <items count="6">
  12682. <item name="Description" type_name="gh_string" type_code="10">Vector {z} component</item>
  12683. <item name="InstanceGuid" type_name="gh_guid" type_code="9">c5b4970d-6668-445e-b8a3-7d736d0f83dc</item>
  12684. <item name="Name" type_name="gh_string" type_code="10">Z component</item>
  12685. <item name="NickName" type_name="gh_string" type_code="10">Z</item>
  12686. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  12687. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  12688. </items>
  12689. <chunks count="2">
  12690. <chunk name="Attributes">
  12691. <items count="2">
  12692. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  12693. <X>1578</X>
  12694. <Y>1365</Y>
  12695. <W>14</W>
  12696. <H>20</H>
  12697. </item>
  12698. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  12699. <X>1586.5</X>
  12700. <Y>1375</Y>
  12701. </item>
  12702. </items>
  12703. </chunk>
  12704. <chunk name="PersistentData">
  12705. <items count="1">
  12706. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  12707. </items>
  12708. <chunks count="1">
  12709. <chunk name="Branch" index="0">
  12710. <items count="2">
  12711. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  12712. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  12713. </items>
  12714. <chunks count="1">
  12715. <chunk name="Item" index="0">
  12716. <items count="1">
  12717. <item name="number" type_name="gh_double" type_code="6">0</item>
  12718. </items>
  12719. </chunk>
  12720. </chunks>
  12721. </chunk>
  12722. </chunks>
  12723. </chunk>
  12724. </chunks>
  12725. </chunk>
  12726. <chunk name="param_output" index="0">
  12727. <items count="6">
  12728. <item name="Description" type_name="gh_string" type_code="10">Vector construct</item>
  12729. <item name="InstanceGuid" type_name="gh_guid" type_code="9">60a1321b-0d85-4215-ac31-f94c7015ccf2</item>
  12730. <item name="Name" type_name="gh_string" type_code="10">Vector</item>
  12731. <item name="NickName" type_name="gh_string" type_code="10">V</item>
  12732. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  12733. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  12734. </items>
  12735. <chunks count="1">
  12736. <chunk name="Attributes">
  12737. <items count="2">
  12738. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  12739. <X>1622</X>
  12740. <Y>1325</Y>
  12741. <W>16</W>
  12742. <H>30</H>
  12743. </item>
  12744. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  12745. <X>1630</X>
  12746. <Y>1340</Y>
  12747. </item>
  12748. </items>
  12749. </chunk>
  12750. </chunks>
  12751. </chunk>
  12752. <chunk name="param_output" index="1">
  12753. <items count="6">
  12754. <item name="Description" type_name="gh_string" type_code="10">Vector length</item>
  12755. <item name="InstanceGuid" type_name="gh_guid" type_code="9">614a3c6d-0b33-40ad-81d3-d0dfd2cda65f</item>
  12756. <item name="Name" type_name="gh_string" type_code="10">Length</item>
  12757. <item name="NickName" type_name="gh_string" type_code="10">L</item>
  12758. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  12759. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  12760. </items>
  12761. <chunks count="1">
  12762. <chunk name="Attributes">
  12763. <items count="2">
  12764. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  12765. <X>1622</X>
  12766. <Y>1355</Y>
  12767. <W>16</W>
  12768. <H>30</H>
  12769. </item>
  12770. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  12771. <X>1630</X>
  12772. <Y>1370</Y>
  12773. </item>
  12774. </items>
  12775. </chunk>
  12776. </chunks>
  12777. </chunk>
  12778. </chunks>
  12779. </chunk>
  12780. </chunks>
  12781. </chunk>
  12782. <chunk name="Object" index="101">
  12783. <items count="2">
  12784. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  12785. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  12786. </items>
  12787. <chunks count="1">
  12788. <chunk name="Container">
  12789. <items count="8">
  12790. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  12791. <item name="InstanceGuid" type_name="gh_guid" type_code="9">9b5d1997-6eb6-419e-84a2-da5dc70f5477</item>
  12792. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  12793. <item name="NickName" type_name="gh_string" type_code="10"></item>
  12794. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  12795. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  12796. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  12797. <item name="UserText" type_name="gh_string" type_code="10">3</item>
  12798. </items>
  12799. <chunks count="2">
  12800. <chunk name="Attributes">
  12801. <items count="5">
  12802. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  12803. <X>1491</X>
  12804. <Y>1321</Y>
  12805. <W>50</W>
  12806. <H>20</H>
  12807. </item>
  12808. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  12809. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  12810. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  12811. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  12812. <X>1491.106</X>
  12813. <Y>1321.658</Y>
  12814. </item>
  12815. </items>
  12816. </chunk>
  12817. <chunk name="PanelProperties">
  12818. <items count="7">
  12819. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  12820. <ARGB>255;255;250;90</ARGB>
  12821. </item>
  12822. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  12823. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  12824. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  12825. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  12826. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  12827. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  12828. </items>
  12829. </chunk>
  12830. </chunks>
  12831. </chunk>
  12832. </chunks>
  12833. </chunk>
  12834. <chunk name="Object" index="102">
  12835. <items count="2">
  12836. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  12837. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  12838. </items>
  12839. <chunks count="1">
  12840. <chunk name="Container">
  12841. <items count="8">
  12842. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  12843. <item name="InstanceGuid" type_name="gh_guid" type_code="9">b582b4c2-046d-4816-9bf2-b7e40b12e3a1</item>
  12844. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  12845. <item name="NickName" type_name="gh_string" type_code="10"></item>
  12846. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  12847. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  12848. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  12849. <item name="UserText" type_name="gh_string" type_code="10">2</item>
  12850. </items>
  12851. <chunks count="2">
  12852. <chunk name="Attributes">
  12853. <items count="5">
  12854. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  12855. <X>1489</X>
  12856. <Y>1351</Y>
  12857. <W>50</W>
  12858. <H>20</H>
  12859. </item>
  12860. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  12861. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  12862. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  12863. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  12864. <X>1489.186</X>
  12865. <Y>1351.098</Y>
  12866. </item>
  12867. </items>
  12868. </chunk>
  12869. <chunk name="PanelProperties">
  12870. <items count="7">
  12871. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  12872. <ARGB>255;255;250;90</ARGB>
  12873. </item>
  12874. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  12875. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  12876. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  12877. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  12878. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  12879. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  12880. </items>
  12881. </chunk>
  12882. </chunks>
  12883. </chunk>
  12884. </chunks>
  12885. </chunk>
  12886. <chunk name="Object" index="103">
  12887. <items count="2">
  12888. <item name="GUID" type_name="gh_guid" type_code="9">9abae6b7-fa1d-448c-9209-4a8155345841</item>
  12889. <item name="Name" type_name="gh_string" type_code="10">Deconstruct</item>
  12890. </items>
  12891. <chunks count="1">
  12892. <chunk name="Container">
  12893. <items count="5">
  12894. <item name="Description" type_name="gh_string" type_code="10">Deconstruct a point into its component parts.</item>
  12895. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  12896. <item name="InstanceGuid" type_name="gh_guid" type_code="9">04d13d9d-5383-4696-b406-0fc16bb9a913</item>
  12897. <item name="Name" type_name="gh_string" type_code="10">Deconstruct</item>
  12898. <item name="NickName" type_name="gh_string" type_code="10">pDecon</item>
  12899. </items>
  12900. <chunks count="5">
  12901. <chunk name="Attributes">
  12902. <items count="2">
  12903. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  12904. <X>1704</X>
  12905. <Y>1432</Y>
  12906. <W>64</W>
  12907. <H>64</H>
  12908. </item>
  12909. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  12910. <X>1734</X>
  12911. <Y>1464</Y>
  12912. </item>
  12913. </items>
  12914. </chunk>
  12915. <chunk name="param_input" index="0">
  12916. <items count="7">
  12917. <item name="Description" type_name="gh_string" type_code="10">Input point</item>
  12918. <item name="InstanceGuid" type_name="gh_guid" type_code="9">ac0ad7b1-bf77-4354-ae03-3ed56f7694ac</item>
  12919. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  12920. <item name="NickName" type_name="gh_string" type_code="10">P</item>
  12921. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  12922. <item name="Source" index="0" type_name="gh_guid" type_code="9">9ac73f55-39ae-429e-8dc8-8e7f958b4042</item>
  12923. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  12924. </items>
  12925. <chunks count="1">
  12926. <chunk name="Attributes">
  12927. <items count="2">
  12928. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  12929. <X>1706</X>
  12930. <Y>1434</Y>
  12931. <W>13</W>
  12932. <H>60</H>
  12933. </item>
  12934. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  12935. <X>1714</X>
  12936. <Y>1464</Y>
  12937. </item>
  12938. </items>
  12939. </chunk>
  12940. </chunks>
  12941. </chunk>
  12942. <chunk name="param_output" index="0">
  12943. <items count="6">
  12944. <item name="Description" type_name="gh_string" type_code="10">Point {x} component</item>
  12945. <item name="InstanceGuid" type_name="gh_guid" type_code="9">986c6ad6-35ae-433f-bd24-072861a5425d</item>
  12946. <item name="Name" type_name="gh_string" type_code="10">X component</item>
  12947. <item name="NickName" type_name="gh_string" type_code="10">X</item>
  12948. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  12949. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  12950. </items>
  12951. <chunks count="1">
  12952. <chunk name="Attributes">
  12953. <items count="2">
  12954. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  12955. <X>1749</X>
  12956. <Y>1434</Y>
  12957. <W>17</W>
  12958. <H>20</H>
  12959. </item>
  12960. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  12961. <X>1757.5</X>
  12962. <Y>1444</Y>
  12963. </item>
  12964. </items>
  12965. </chunk>
  12966. </chunks>
  12967. </chunk>
  12968. <chunk name="param_output" index="1">
  12969. <items count="6">
  12970. <item name="Description" type_name="gh_string" type_code="10">Point {y} component</item>
  12971. <item name="InstanceGuid" type_name="gh_guid" type_code="9">2c914091-22c1-40d8-abc1-4ccddd24e6ea</item>
  12972. <item name="Name" type_name="gh_string" type_code="10">Y component</item>
  12973. <item name="NickName" type_name="gh_string" type_code="10">Y</item>
  12974. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  12975. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  12976. </items>
  12977. <chunks count="1">
  12978. <chunk name="Attributes">
  12979. <items count="2">
  12980. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  12981. <X>1749</X>
  12982. <Y>1454</Y>
  12983. <W>17</W>
  12984. <H>20</H>
  12985. </item>
  12986. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  12987. <X>1757.5</X>
  12988. <Y>1464</Y>
  12989. </item>
  12990. </items>
  12991. </chunk>
  12992. </chunks>
  12993. </chunk>
  12994. <chunk name="param_output" index="2">
  12995. <items count="6">
  12996. <item name="Description" type_name="gh_string" type_code="10">Point {z} component</item>
  12997. <item name="InstanceGuid" type_name="gh_guid" type_code="9">eb73bdaa-9667-4377-9a20-f2e4e4e9cdbf</item>
  12998. <item name="Name" type_name="gh_string" type_code="10">Z component</item>
  12999. <item name="NickName" type_name="gh_string" type_code="10">Z</item>
  13000. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  13001. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  13002. </items>
  13003. <chunks count="1">
  13004. <chunk name="Attributes">
  13005. <items count="2">
  13006. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  13007. <X>1749</X>
  13008. <Y>1474</Y>
  13009. <W>17</W>
  13010. <H>20</H>
  13011. </item>
  13012. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  13013. <X>1757.5</X>
  13014. <Y>1484</Y>
  13015. </item>
  13016. </items>
  13017. </chunk>
  13018. </chunks>
  13019. </chunk>
  13020. </chunks>
  13021. </chunk>
  13022. </chunks>
  13023. </chunk>
  13024. <chunk name="Object" index="104">
  13025. <items count="2">
  13026. <item name="GUID" type_name="gh_guid" type_code="9">57da07bd-ecab-415d-9d86-af36d7073abc</item>
  13027. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  13028. </items>
  13029. <chunks count="1">
  13030. <chunk name="Container">
  13031. <items count="6">
  13032. <item name="Description" type_name="gh_string" type_code="10">Numeric slider for single values</item>
  13033. <item name="InstanceGuid" type_name="gh_guid" type_code="9">91f17ed9-335a-446e-9d6c-b9c687cba0f0</item>
  13034. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  13035. <item name="NickName" type_name="gh_string" type_code="10">Length</item>
  13036. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  13037. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  13038. </items>
  13039. <chunks count="2">
  13040. <chunk name="Attributes">
  13041. <items count="2">
  13042. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  13043. <X>1456</X>
  13044. <Y>1597</Y>
  13045. <W>263</W>
  13046. <H>20</H>
  13047. </item>
  13048. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  13049. <X>1456.337</X>
  13050. <Y>1597.275</Y>
  13051. </item>
  13052. </items>
  13053. </chunk>
  13054. <chunk name="Slider">
  13055. <items count="7">
  13056. <item name="Digits" type_name="gh_int32" type_code="3">1</item>
  13057. <item name="GripDisplay" type_name="gh_int32" type_code="3">1</item>
  13058. <item name="Interval" type_name="gh_int32" type_code="3">0</item>
  13059. <item name="Max" type_name="gh_double" type_code="6">100</item>
  13060. <item name="Min" type_name="gh_double" type_code="6">0</item>
  13061. <item name="SnapCount" type_name="gh_int32" type_code="3">0</item>
  13062. <item name="Value" type_name="gh_double" type_code="6">88</item>
  13063. </items>
  13064. </chunk>
  13065. </chunks>
  13066. </chunk>
  13067. </chunks>
  13068. </chunk>
  13069. <chunk name="Object" index="105">
  13070. <items count="2">
  13071. <item name="GUID" type_name="gh_guid" type_code="9">57da07bd-ecab-415d-9d86-af36d7073abc</item>
  13072. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  13073. </items>
  13074. <chunks count="1">
  13075. <chunk name="Container">
  13076. <items count="6">
  13077. <item name="Description" type_name="gh_string" type_code="10">Numeric slider for single values</item>
  13078. <item name="InstanceGuid" type_name="gh_guid" type_code="9">0fd09915-ec8a-4a40-989a-123b9e68d06c</item>
  13079. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  13080. <item name="NickName" type_name="gh_string" type_code="10">Width</item>
  13081. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  13082. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  13083. </items>
  13084. <chunks count="2">
  13085. <chunk name="Attributes">
  13086. <items count="2">
  13087. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  13088. <X>1457</X>
  13089. <Y>1655</Y>
  13090. <W>264</W>
  13091. <H>20</H>
  13092. </item>
  13093. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  13094. <X>1457.087</X>
  13095. <Y>1655.275</Y>
  13096. </item>
  13097. </items>
  13098. </chunk>
  13099. <chunk name="Slider">
  13100. <items count="7">
  13101. <item name="Digits" type_name="gh_int32" type_code="3">1</item>
  13102. <item name="GripDisplay" type_name="gh_int32" type_code="3">1</item>
  13103. <item name="Interval" type_name="gh_int32" type_code="3">0</item>
  13104. <item name="Max" type_name="gh_double" type_code="6">100</item>
  13105. <item name="Min" type_name="gh_double" type_code="6">0</item>
  13106. <item name="SnapCount" type_name="gh_int32" type_code="3">0</item>
  13107. <item name="Value" type_name="gh_double" type_code="6">54</item>
  13108. </items>
  13109. </chunk>
  13110. </chunks>
  13111. </chunk>
  13112. </chunks>
  13113. </chunk>
  13114. <chunk name="Object" index="106">
  13115. <items count="2">
  13116. <item name="GUID" type_name="gh_guid" type_code="9">a0d62394-a118-422d-abb3-6af115c75b25</item>
  13117. <item name="Name" type_name="gh_string" type_code="10">Addition</item>
  13118. </items>
  13119. <chunks count="1">
  13120. <chunk name="Container">
  13121. <items count="5">
  13122. <item name="Description" type_name="gh_string" type_code="10">Mathematical addition</item>
  13123. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  13124. <item name="InstanceGuid" type_name="gh_guid" type_code="9">425cffae-604f-493a-a5c9-d68e3739d648</item>
  13125. <item name="Name" type_name="gh_string" type_code="10">Addition</item>
  13126. <item name="NickName" type_name="gh_string" type_code="10">A+B</item>
  13127. </items>
  13128. <chunks count="2">
  13129. <chunk name="Attributes">
  13130. <items count="2">
  13131. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  13132. <X>1786</X>
  13133. <Y>1573</Y>
  13134. <W>64</W>
  13135. <H>44</H>
  13136. </item>
  13137. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  13138. <X>1817</X>
  13139. <Y>1595</Y>
  13140. </item>
  13141. </items>
  13142. </chunk>
  13143. <chunk name="ParameterData">
  13144. <items count="5">
  13145. <item name="InputCount" type_name="gh_int32" type_code="3">2</item>
  13146. <item name="InputId" index="0" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  13147. <item name="InputId" index="1" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  13148. <item name="OutputCount" type_name="gh_int32" type_code="3">1</item>
  13149. <item name="OutputId" index="0" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  13150. </items>
  13151. <chunks count="3">
  13152. <chunk name="InputParam" index="0">
  13153. <items count="7">
  13154. <item name="Description" type_name="gh_string" type_code="10">First item for addition</item>
  13155. <item name="InstanceGuid" type_name="gh_guid" type_code="9">bd91b324-b139-4235-80e4-f5e0f3620809</item>
  13156. <item name="Name" type_name="gh_string" type_code="10">A</item>
  13157. <item name="NickName" type_name="gh_string" type_code="10">A</item>
  13158. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  13159. <item name="Source" index="0" type_name="gh_guid" type_code="9">986c6ad6-35ae-433f-bd24-072861a5425d</item>
  13160. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  13161. </items>
  13162. <chunks count="1">
  13163. <chunk name="Attributes">
  13164. <items count="2">
  13165. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  13166. <X>1788</X>
  13167. <Y>1575</Y>
  13168. <W>14</W>
  13169. <H>20</H>
  13170. </item>
  13171. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  13172. <X>1796.5</X>
  13173. <Y>1585</Y>
  13174. </item>
  13175. </items>
  13176. </chunk>
  13177. </chunks>
  13178. </chunk>
  13179. <chunk name="InputParam" index="1">
  13180. <items count="7">
  13181. <item name="Description" type_name="gh_string" type_code="10">Second item for addition</item>
  13182. <item name="InstanceGuid" type_name="gh_guid" type_code="9">a87172e3-431e-4ddf-a937-60b5bc804451</item>
  13183. <item name="Name" type_name="gh_string" type_code="10">B</item>
  13184. <item name="NickName" type_name="gh_string" type_code="10">B</item>
  13185. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  13186. <item name="Source" index="0" type_name="gh_guid" type_code="9">91f17ed9-335a-446e-9d6c-b9c687cba0f0</item>
  13187. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  13188. </items>
  13189. <chunks count="1">
  13190. <chunk name="Attributes">
  13191. <items count="2">
  13192. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  13193. <X>1788</X>
  13194. <Y>1595</Y>
  13195. <W>14</W>
  13196. <H>20</H>
  13197. </item>
  13198. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  13199. <X>1796.5</X>
  13200. <Y>1605</Y>
  13201. </item>
  13202. </items>
  13203. </chunk>
  13204. </chunks>
  13205. </chunk>
  13206. <chunk name="OutputParam" index="0">
  13207. <items count="6">
  13208. <item name="Description" type_name="gh_string" type_code="10">Result of addition</item>
  13209. <item name="InstanceGuid" type_name="gh_guid" type_code="9">ef5b5c46-d28c-4d3d-8719-82ebb12862d2</item>
  13210. <item name="Name" type_name="gh_string" type_code="10">Result</item>
  13211. <item name="NickName" type_name="gh_string" type_code="10">R</item>
  13212. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  13213. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  13214. </items>
  13215. <chunks count="1">
  13216. <chunk name="Attributes">
  13217. <items count="2">
  13218. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  13219. <X>1832</X>
  13220. <Y>1575</Y>
  13221. <W>16</W>
  13222. <H>40</H>
  13223. </item>
  13224. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  13225. <X>1840</X>
  13226. <Y>1595</Y>
  13227. </item>
  13228. </items>
  13229. </chunk>
  13230. </chunks>
  13231. </chunk>
  13232. </chunks>
  13233. </chunk>
  13234. </chunks>
  13235. </chunk>
  13236. </chunks>
  13237. </chunk>
  13238. <chunk name="Object" index="107">
  13239. <items count="2">
  13240. <item name="GUID" type_name="gh_guid" type_code="9">a0d62394-a118-422d-abb3-6af115c75b25</item>
  13241. <item name="Name" type_name="gh_string" type_code="10">Addition</item>
  13242. </items>
  13243. <chunks count="1">
  13244. <chunk name="Container">
  13245. <items count="5">
  13246. <item name="Description" type_name="gh_string" type_code="10">Mathematical addition</item>
  13247. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  13248. <item name="InstanceGuid" type_name="gh_guid" type_code="9">c608fbec-5b75-4c4d-b4d8-48a376f3cd5c</item>
  13249. <item name="Name" type_name="gh_string" type_code="10">Addition</item>
  13250. <item name="NickName" type_name="gh_string" type_code="10">A+B</item>
  13251. </items>
  13252. <chunks count="2">
  13253. <chunk name="Attributes">
  13254. <items count="2">
  13255. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  13256. <X>1790</X>
  13257. <Y>1635</Y>
  13258. <W>64</W>
  13259. <H>44</H>
  13260. </item>
  13261. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  13262. <X>1821</X>
  13263. <Y>1657</Y>
  13264. </item>
  13265. </items>
  13266. </chunk>
  13267. <chunk name="ParameterData">
  13268. <items count="5">
  13269. <item name="InputCount" type_name="gh_int32" type_code="3">2</item>
  13270. <item name="InputId" index="0" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  13271. <item name="InputId" index="1" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  13272. <item name="OutputCount" type_name="gh_int32" type_code="3">1</item>
  13273. <item name="OutputId" index="0" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  13274. </items>
  13275. <chunks count="3">
  13276. <chunk name="InputParam" index="0">
  13277. <items count="7">
  13278. <item name="Description" type_name="gh_string" type_code="10">First item for addition</item>
  13279. <item name="InstanceGuid" type_name="gh_guid" type_code="9">bd152880-8e47-4e39-af2c-724b79caa7ea</item>
  13280. <item name="Name" type_name="gh_string" type_code="10">A</item>
  13281. <item name="NickName" type_name="gh_string" type_code="10">A</item>
  13282. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  13283. <item name="Source" index="0" type_name="gh_guid" type_code="9">2c914091-22c1-40d8-abc1-4ccddd24e6ea</item>
  13284. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  13285. </items>
  13286. <chunks count="1">
  13287. <chunk name="Attributes">
  13288. <items count="2">
  13289. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  13290. <X>1792</X>
  13291. <Y>1637</Y>
  13292. <W>14</W>
  13293. <H>20</H>
  13294. </item>
  13295. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  13296. <X>1800.5</X>
  13297. <Y>1647</Y>
  13298. </item>
  13299. </items>
  13300. </chunk>
  13301. </chunks>
  13302. </chunk>
  13303. <chunk name="InputParam" index="1">
  13304. <items count="7">
  13305. <item name="Description" type_name="gh_string" type_code="10">Second item for addition</item>
  13306. <item name="InstanceGuid" type_name="gh_guid" type_code="9">2ff8f792-cc71-4183-9cdf-57524cacfb82</item>
  13307. <item name="Name" type_name="gh_string" type_code="10">B</item>
  13308. <item name="NickName" type_name="gh_string" type_code="10">B</item>
  13309. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  13310. <item name="Source" index="0" type_name="gh_guid" type_code="9">0fd09915-ec8a-4a40-989a-123b9e68d06c</item>
  13311. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  13312. </items>
  13313. <chunks count="1">
  13314. <chunk name="Attributes">
  13315. <items count="2">
  13316. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  13317. <X>1792</X>
  13318. <Y>1657</Y>
  13319. <W>14</W>
  13320. <H>20</H>
  13321. </item>
  13322. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  13323. <X>1800.5</X>
  13324. <Y>1667</Y>
  13325. </item>
  13326. </items>
  13327. </chunk>
  13328. </chunks>
  13329. </chunk>
  13330. <chunk name="OutputParam" index="0">
  13331. <items count="6">
  13332. <item name="Description" type_name="gh_string" type_code="10">Result of addition</item>
  13333. <item name="InstanceGuid" type_name="gh_guid" type_code="9">49b19326-ddaa-450c-a91b-d85295831ca1</item>
  13334. <item name="Name" type_name="gh_string" type_code="10">Result</item>
  13335. <item name="NickName" type_name="gh_string" type_code="10">R</item>
  13336. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  13337. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  13338. </items>
  13339. <chunks count="1">
  13340. <chunk name="Attributes">
  13341. <items count="2">
  13342. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  13343. <X>1836</X>
  13344. <Y>1637</Y>
  13345. <W>16</W>
  13346. <H>40</H>
  13347. </item>
  13348. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  13349. <X>1844</X>
  13350. <Y>1657</Y>
  13351. </item>
  13352. </items>
  13353. </chunk>
  13354. </chunks>
  13355. </chunk>
  13356. </chunks>
  13357. </chunk>
  13358. </chunks>
  13359. </chunk>
  13360. </chunks>
  13361. </chunk>
  13362. <chunk name="Object" index="108">
  13363. <items count="2">
  13364. <item name="GUID" type_name="gh_guid" type_code="9">3581f42a-9592-4549-bd6b-1c0fc39d067b</item>
  13365. <item name="Name" type_name="gh_string" type_code="10">Construct Point</item>
  13366. </items>
  13367. <chunks count="1">
  13368. <chunk name="Container">
  13369. <items count="5">
  13370. <item name="Description" type_name="gh_string" type_code="10">Construct a point from {xyz} coordinates.</item>
  13371. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  13372. <item name="InstanceGuid" type_name="gh_guid" type_code="9">0025b0b3-cd63-4b6e-a883-c991f59c2549</item>
  13373. <item name="Name" type_name="gh_string" type_code="10">Construct Point</item>
  13374. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  13375. </items>
  13376. <chunks count="5">
  13377. <chunk name="Attributes">
  13378. <items count="2">
  13379. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  13380. <X>1994</X>
  13381. <Y>1573</Y>
  13382. <W>67</W>
  13383. <H>64</H>
  13384. </item>
  13385. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  13386. <X>2025</X>
  13387. <Y>1605</Y>
  13388. </item>
  13389. </items>
  13390. </chunk>
  13391. <chunk name="param_input" index="0">
  13392. <items count="7">
  13393. <item name="Description" type_name="gh_string" type_code="10">{x} coordinate</item>
  13394. <item name="InstanceGuid" type_name="gh_guid" type_code="9">e0588cd2-61aa-4863-98e0-1e9a7f21a1be</item>
  13395. <item name="Name" type_name="gh_string" type_code="10">X coordinate</item>
  13396. <item name="NickName" type_name="gh_string" type_code="10">X</item>
  13397. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  13398. <item name="Source" index="0" type_name="gh_guid" type_code="9">ef5b5c46-d28c-4d3d-8719-82ebb12862d2</item>
  13399. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  13400. </items>
  13401. <chunks count="2">
  13402. <chunk name="Attributes">
  13403. <items count="2">
  13404. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  13405. <X>1996</X>
  13406. <Y>1575</Y>
  13407. <W>14</W>
  13408. <H>20</H>
  13409. </item>
  13410. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  13411. <X>2004.5</X>
  13412. <Y>1585</Y>
  13413. </item>
  13414. </items>
  13415. </chunk>
  13416. <chunk name="PersistentData">
  13417. <items count="1">
  13418. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  13419. </items>
  13420. <chunks count="1">
  13421. <chunk name="Branch" index="0">
  13422. <items count="2">
  13423. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  13424. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  13425. </items>
  13426. <chunks count="1">
  13427. <chunk name="Item" index="0">
  13428. <items count="1">
  13429. <item name="number" type_name="gh_double" type_code="6">0</item>
  13430. </items>
  13431. </chunk>
  13432. </chunks>
  13433. </chunk>
  13434. </chunks>
  13435. </chunk>
  13436. </chunks>
  13437. </chunk>
  13438. <chunk name="param_input" index="1">
  13439. <items count="7">
  13440. <item name="Description" type_name="gh_string" type_code="10">{y} coordinate</item>
  13441. <item name="InstanceGuid" type_name="gh_guid" type_code="9">037a8251-883a-40af-a11c-21b9ae0ecb92</item>
  13442. <item name="Name" type_name="gh_string" type_code="10">Y coordinate</item>
  13443. <item name="NickName" type_name="gh_string" type_code="10">Y</item>
  13444. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  13445. <item name="Source" index="0" type_name="gh_guid" type_code="9">49b19326-ddaa-450c-a91b-d85295831ca1</item>
  13446. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  13447. </items>
  13448. <chunks count="2">
  13449. <chunk name="Attributes">
  13450. <items count="2">
  13451. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  13452. <X>1996</X>
  13453. <Y>1595</Y>
  13454. <W>14</W>
  13455. <H>20</H>
  13456. </item>
  13457. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  13458. <X>2004.5</X>
  13459. <Y>1605</Y>
  13460. </item>
  13461. </items>
  13462. </chunk>
  13463. <chunk name="PersistentData">
  13464. <items count="1">
  13465. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  13466. </items>
  13467. <chunks count="1">
  13468. <chunk name="Branch" index="0">
  13469. <items count="2">
  13470. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  13471. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  13472. </items>
  13473. <chunks count="1">
  13474. <chunk name="Item" index="0">
  13475. <items count="1">
  13476. <item name="number" type_name="gh_double" type_code="6">0</item>
  13477. </items>
  13478. </chunk>
  13479. </chunks>
  13480. </chunk>
  13481. </chunks>
  13482. </chunk>
  13483. </chunks>
  13484. </chunk>
  13485. <chunk name="param_input" index="2">
  13486. <items count="6">
  13487. <item name="Description" type_name="gh_string" type_code="10">{z} coordinate</item>
  13488. <item name="InstanceGuid" type_name="gh_guid" type_code="9">54de041d-38b7-41dc-8680-c6bfa86d9ba3</item>
  13489. <item name="Name" type_name="gh_string" type_code="10">Z coordinate</item>
  13490. <item name="NickName" type_name="gh_string" type_code="10">Z</item>
  13491. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  13492. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  13493. </items>
  13494. <chunks count="2">
  13495. <chunk name="Attributes">
  13496. <items count="2">
  13497. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  13498. <X>1996</X>
  13499. <Y>1615</Y>
  13500. <W>14</W>
  13501. <H>20</H>
  13502. </item>
  13503. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  13504. <X>2004.5</X>
  13505. <Y>1625</Y>
  13506. </item>
  13507. </items>
  13508. </chunk>
  13509. <chunk name="PersistentData">
  13510. <items count="1">
  13511. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  13512. </items>
  13513. <chunks count="1">
  13514. <chunk name="Branch" index="0">
  13515. <items count="2">
  13516. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  13517. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  13518. </items>
  13519. <chunks count="1">
  13520. <chunk name="Item" index="0">
  13521. <items count="1">
  13522. <item name="number" type_name="gh_double" type_code="6">0</item>
  13523. </items>
  13524. </chunk>
  13525. </chunks>
  13526. </chunk>
  13527. </chunks>
  13528. </chunk>
  13529. </chunks>
  13530. </chunk>
  13531. <chunk name="param_output" index="0">
  13532. <items count="6">
  13533. <item name="Description" type_name="gh_string" type_code="10">Point coordinate</item>
  13534. <item name="InstanceGuid" type_name="gh_guid" type_code="9">a8fa466b-7cde-4211-998f-da025b67f6b6</item>
  13535. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  13536. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  13537. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  13538. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  13539. </items>
  13540. <chunks count="1">
  13541. <chunk name="Attributes">
  13542. <items count="2">
  13543. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  13544. <X>2040</X>
  13545. <Y>1575</Y>
  13546. <W>19</W>
  13547. <H>60</H>
  13548. </item>
  13549. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  13550. <X>2049.5</X>
  13551. <Y>1605</Y>
  13552. </item>
  13553. </items>
  13554. </chunk>
  13555. </chunks>
  13556. </chunk>
  13557. </chunks>
  13558. </chunk>
  13559. </chunks>
  13560. </chunk>
  13561. <chunk name="Object" index="109">
  13562. <items count="2">
  13563. <item name="GUID" type_name="gh_guid" type_code="9">a0d62394-a118-422d-abb3-6af115c75b25</item>
  13564. <item name="Name" type_name="gh_string" type_code="10">Addition</item>
  13565. </items>
  13566. <chunks count="1">
  13567. <chunk name="Container">
  13568. <items count="5">
  13569. <item name="Description" type_name="gh_string" type_code="10">Mathematical addition</item>
  13570. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  13571. <item name="InstanceGuid" type_name="gh_guid" type_code="9">66ed28c2-e779-444a-9c0b-9bd8f26ea017</item>
  13572. <item name="Name" type_name="gh_string" type_code="10">Addition</item>
  13573. <item name="NickName" type_name="gh_string" type_code="10">A+B</item>
  13574. </items>
  13575. <chunks count="2">
  13576. <chunk name="Attributes">
  13577. <items count="2">
  13578. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  13579. <X>2124</X>
  13580. <Y>1296</Y>
  13581. <W>64</W>
  13582. <H>44</H>
  13583. </item>
  13584. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  13585. <X>2155</X>
  13586. <Y>1318</Y>
  13587. </item>
  13588. </items>
  13589. </chunk>
  13590. <chunk name="ParameterData">
  13591. <items count="5">
  13592. <item name="InputCount" type_name="gh_int32" type_code="3">2</item>
  13593. <item name="InputId" index="0" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  13594. <item name="InputId" index="1" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  13595. <item name="OutputCount" type_name="gh_int32" type_code="3">1</item>
  13596. <item name="OutputId" index="0" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  13597. </items>
  13598. <chunks count="3">
  13599. <chunk name="InputParam" index="0">
  13600. <items count="7">
  13601. <item name="Description" type_name="gh_string" type_code="10">First item for addition</item>
  13602. <item name="InstanceGuid" type_name="gh_guid" type_code="9">e86f9ce0-a5ad-4770-854f-f91bc82511aa</item>
  13603. <item name="Name" type_name="gh_string" type_code="10">A</item>
  13604. <item name="NickName" type_name="gh_string" type_code="10">A</item>
  13605. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  13606. <item name="Source" index="0" type_name="gh_guid" type_code="9">a8fa466b-7cde-4211-998f-da025b67f6b6</item>
  13607. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  13608. </items>
  13609. <chunks count="1">
  13610. <chunk name="Attributes">
  13611. <items count="2">
  13612. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  13613. <X>2126</X>
  13614. <Y>1298</Y>
  13615. <W>14</W>
  13616. <H>20</H>
  13617. </item>
  13618. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  13619. <X>2134.5</X>
  13620. <Y>1308</Y>
  13621. </item>
  13622. </items>
  13623. </chunk>
  13624. </chunks>
  13625. </chunk>
  13626. <chunk name="InputParam" index="1">
  13627. <items count="7">
  13628. <item name="Description" type_name="gh_string" type_code="10">Second item for addition</item>
  13629. <item name="InstanceGuid" type_name="gh_guid" type_code="9">372d26ca-bd41-418e-9a3f-36c4cb124978</item>
  13630. <item name="Name" type_name="gh_string" type_code="10">B</item>
  13631. <item name="NickName" type_name="gh_string" type_code="10">B</item>
  13632. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  13633. <item name="Source" index="0" type_name="gh_guid" type_code="9">60a1321b-0d85-4215-ac31-f94c7015ccf2</item>
  13634. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  13635. </items>
  13636. <chunks count="1">
  13637. <chunk name="Attributes">
  13638. <items count="2">
  13639. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  13640. <X>2126</X>
  13641. <Y>1318</Y>
  13642. <W>14</W>
  13643. <H>20</H>
  13644. </item>
  13645. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  13646. <X>2134.5</X>
  13647. <Y>1328</Y>
  13648. </item>
  13649. </items>
  13650. </chunk>
  13651. </chunks>
  13652. </chunk>
  13653. <chunk name="OutputParam" index="0">
  13654. <items count="6">
  13655. <item name="Description" type_name="gh_string" type_code="10">Result of addition</item>
  13656. <item name="InstanceGuid" type_name="gh_guid" type_code="9">79d26b1a-d554-4adf-802a-54c1a82df2de</item>
  13657. <item name="Name" type_name="gh_string" type_code="10">Result</item>
  13658. <item name="NickName" type_name="gh_string" type_code="10">R</item>
  13659. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  13660. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  13661. </items>
  13662. <chunks count="1">
  13663. <chunk name="Attributes">
  13664. <items count="2">
  13665. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  13666. <X>2170</X>
  13667. <Y>1298</Y>
  13668. <W>16</W>
  13669. <H>40</H>
  13670. </item>
  13671. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  13672. <X>2178</X>
  13673. <Y>1318</Y>
  13674. </item>
  13675. </items>
  13676. </chunk>
  13677. </chunks>
  13678. </chunk>
  13679. </chunks>
  13680. </chunk>
  13681. </chunks>
  13682. </chunk>
  13683. </chunks>
  13684. </chunk>
  13685. <chunk name="Object" index="110">
  13686. <items count="2">
  13687. <item name="GUID" type_name="gh_guid" type_code="9">f12daa2f-4fd5-48c1-8ac3-5dea476912ca</item>
  13688. <item name="Name" type_name="gh_string" type_code="10">Mirror</item>
  13689. </items>
  13690. <chunks count="1">
  13691. <chunk name="Container">
  13692. <items count="5">
  13693. <item name="Description" type_name="gh_string" type_code="10">Mirror an object.</item>
  13694. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  13695. <item name="InstanceGuid" type_name="gh_guid" type_code="9">5caa758f-68a9-4e10-8541-d9dcff111255</item>
  13696. <item name="Name" type_name="gh_string" type_code="10">Mirror</item>
  13697. <item name="NickName" type_name="gh_string" type_code="10">Mirror</item>
  13698. </items>
  13699. <chunks count="5">
  13700. <chunk name="Attributes">
  13701. <items count="2">
  13702. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  13703. <X>2176</X>
  13704. <Y>1350</Y>
  13705. <W>65</W>
  13706. <H>44</H>
  13707. </item>
  13708. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  13709. <X>2207</X>
  13710. <Y>1372</Y>
  13711. </item>
  13712. </items>
  13713. </chunk>
  13714. <chunk name="param_input" index="0">
  13715. <items count="7">
  13716. <item name="Description" type_name="gh_string" type_code="10">Base geometry</item>
  13717. <item name="InstanceGuid" type_name="gh_guid" type_code="9">c1d5c25c-8138-49ab-bd00-a02680a1f99d</item>
  13718. <item name="Name" type_name="gh_string" type_code="10">Geometry</item>
  13719. <item name="NickName" type_name="gh_string" type_code="10">G</item>
  13720. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  13721. <item name="Source" index="0" type_name="gh_guid" type_code="9">60a1321b-0d85-4215-ac31-f94c7015ccf2</item>
  13722. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  13723. </items>
  13724. <chunks count="1">
  13725. <chunk name="Attributes">
  13726. <items count="2">
  13727. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  13728. <X>2178</X>
  13729. <Y>1352</Y>
  13730. <W>14</W>
  13731. <H>20</H>
  13732. </item>
  13733. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  13734. <X>2186.5</X>
  13735. <Y>1362</Y>
  13736. </item>
  13737. </items>
  13738. </chunk>
  13739. </chunks>
  13740. </chunk>
  13741. <chunk name="param_input" index="1">
  13742. <items count="7">
  13743. <item name="Description" type_name="gh_string" type_code="10">Mirror plane</item>
  13744. <item name="InstanceGuid" type_name="gh_guid" type_code="9">e3d075b2-072b-47d9-9463-c3aa654ad224</item>
  13745. <item name="Name" type_name="gh_string" type_code="10">Plane</item>
  13746. <item name="NickName" type_name="gh_string" type_code="10">P</item>
  13747. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  13748. <item name="Source" index="0" type_name="gh_guid" type_code="9">48d4eb53-6ad2-481f-8610-55d9944a22c3</item>
  13749. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  13750. </items>
  13751. <chunks count="2">
  13752. <chunk name="Attributes">
  13753. <items count="2">
  13754. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  13755. <X>2178</X>
  13756. <Y>1372</Y>
  13757. <W>14</W>
  13758. <H>20</H>
  13759. </item>
  13760. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  13761. <X>2186.5</X>
  13762. <Y>1382</Y>
  13763. </item>
  13764. </items>
  13765. </chunk>
  13766. <chunk name="PersistentData">
  13767. <items count="1">
  13768. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  13769. </items>
  13770. <chunks count="1">
  13771. <chunk name="Branch" index="0">
  13772. <items count="2">
  13773. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  13774. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  13775. </items>
  13776. <chunks count="1">
  13777. <chunk name="Item" index="0">
  13778. <items count="1">
  13779. <item name="plane" type_name="gh_plane" type_code="72">
  13780. <Ox>0</Ox>
  13781. <Oy>0</Oy>
  13782. <Oz>0</Oz>
  13783. <Xx>0</Xx>
  13784. <Xy>1</Xy>
  13785. <Xz>0</Xz>
  13786. <Yx>0</Yx>
  13787. <Yy>0</Yy>
  13788. <Yz>1</Yz>
  13789. </item>
  13790. </items>
  13791. </chunk>
  13792. </chunks>
  13793. </chunk>
  13794. </chunks>
  13795. </chunk>
  13796. </chunks>
  13797. </chunk>
  13798. <chunk name="param_output" index="0">
  13799. <items count="6">
  13800. <item name="Description" type_name="gh_string" type_code="10">Mirrored geometry</item>
  13801. <item name="InstanceGuid" type_name="gh_guid" type_code="9">bf8b3e5d-d755-43fb-8734-c94ed4d00bba</item>
  13802. <item name="Name" type_name="gh_string" type_code="10">Geometry</item>
  13803. <item name="NickName" type_name="gh_string" type_code="10">G</item>
  13804. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  13805. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  13806. </items>
  13807. <chunks count="1">
  13808. <chunk name="Attributes">
  13809. <items count="2">
  13810. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  13811. <X>2222</X>
  13812. <Y>1352</Y>
  13813. <W>17</W>
  13814. <H>20</H>
  13815. </item>
  13816. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  13817. <X>2230.5</X>
  13818. <Y>1362</Y>
  13819. </item>
  13820. </items>
  13821. </chunk>
  13822. </chunks>
  13823. </chunk>
  13824. <chunk name="param_output" index="1">
  13825. <items count="6">
  13826. <item name="Description" type_name="gh_string" type_code="10">Transformation data</item>
  13827. <item name="InstanceGuid" type_name="gh_guid" type_code="9">4ee0f674-5c0f-410f-b9f6-08a3604b4334</item>
  13828. <item name="Name" type_name="gh_string" type_code="10">Transform</item>
  13829. <item name="NickName" type_name="gh_string" type_code="10">X</item>
  13830. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  13831. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  13832. </items>
  13833. <chunks count="1">
  13834. <chunk name="Attributes">
  13835. <items count="2">
  13836. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  13837. <X>2222</X>
  13838. <Y>1372</Y>
  13839. <W>17</W>
  13840. <H>20</H>
  13841. </item>
  13842. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  13843. <X>2230.5</X>
  13844. <Y>1382</Y>
  13845. </item>
  13846. </items>
  13847. </chunk>
  13848. </chunks>
  13849. </chunk>
  13850. </chunks>
  13851. </chunk>
  13852. </chunks>
  13853. </chunk>
  13854. <chunk name="Object" index="111">
  13855. <items count="2">
  13856. <item name="GUID" type_name="gh_guid" type_code="9">fad344bc-09b1-4855-a2e6-437ef5715fe3</item>
  13857. <item name="Name" type_name="gh_string" type_code="10">YZ Plane</item>
  13858. </items>
  13859. <chunks count="1">
  13860. <chunk name="Container">
  13861. <items count="5">
  13862. <item name="Description" type_name="gh_string" type_code="10">World YZ plane.</item>
  13863. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  13864. <item name="InstanceGuid" type_name="gh_guid" type_code="9">272c02f3-8054-4da2-b750-4109a8b8c37e</item>
  13865. <item name="Name" type_name="gh_string" type_code="10">YZ Plane</item>
  13866. <item name="NickName" type_name="gh_string" type_code="10">YZ</item>
  13867. </items>
  13868. <chunks count="3">
  13869. <chunk name="Attributes">
  13870. <items count="2">
  13871. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  13872. <X>2091</X>
  13873. <Y>1367</Y>
  13874. <W>64</W>
  13875. <H>28</H>
  13876. </item>
  13877. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  13878. <X>2122</X>
  13879. <Y>1381</Y>
  13880. </item>
  13881. </items>
  13882. </chunk>
  13883. <chunk name="param_input" index="0">
  13884. <items count="6">
  13885. <item name="Description" type_name="gh_string" type_code="10">Origin of plane</item>
  13886. <item name="InstanceGuid" type_name="gh_guid" type_code="9">37e34f49-3112-4952-89a1-4b43e1db22f2</item>
  13887. <item name="Name" type_name="gh_string" type_code="10">Origin</item>
  13888. <item name="NickName" type_name="gh_string" type_code="10">O</item>
  13889. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  13890. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  13891. </items>
  13892. <chunks count="2">
  13893. <chunk name="Attributes">
  13894. <items count="2">
  13895. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  13896. <X>2093</X>
  13897. <Y>1369</Y>
  13898. <W>14</W>
  13899. <H>24</H>
  13900. </item>
  13901. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  13902. <X>2101.5</X>
  13903. <Y>1381</Y>
  13904. </item>
  13905. </items>
  13906. </chunk>
  13907. <chunk name="PersistentData">
  13908. <items count="1">
  13909. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  13910. </items>
  13911. <chunks count="1">
  13912. <chunk name="Branch" index="0">
  13913. <items count="2">
  13914. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  13915. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  13916. </items>
  13917. <chunks count="1">
  13918. <chunk name="Item" index="0">
  13919. <!--GH_Point only stores data which exists, test the existence of data fields prior to reading.-->
  13920. <items count="1">
  13921. <item name="Coordinate" type_name="gh_point3d" type_code="51">
  13922. <X>0</X>
  13923. <Y>0</Y>
  13924. <Z>0</Z>
  13925. </item>
  13926. </items>
  13927. </chunk>
  13928. </chunks>
  13929. </chunk>
  13930. </chunks>
  13931. </chunk>
  13932. </chunks>
  13933. </chunk>
  13934. <chunk name="param_output" index="0">
  13935. <items count="6">
  13936. <item name="Description" type_name="gh_string" type_code="10">World YZ plane</item>
  13937. <item name="InstanceGuid" type_name="gh_guid" type_code="9">48d4eb53-6ad2-481f-8610-55d9944a22c3</item>
  13938. <item name="Name" type_name="gh_string" type_code="10">Plane</item>
  13939. <item name="NickName" type_name="gh_string" type_code="10">P</item>
  13940. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  13941. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  13942. </items>
  13943. <chunks count="1">
  13944. <chunk name="Attributes">
  13945. <items count="2">
  13946. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  13947. <X>2137</X>
  13948. <Y>1369</Y>
  13949. <W>16</W>
  13950. <H>24</H>
  13951. </item>
  13952. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  13953. <X>2145</X>
  13954. <Y>1381</Y>
  13955. </item>
  13956. </items>
  13957. </chunk>
  13958. </chunks>
  13959. </chunk>
  13960. </chunks>
  13961. </chunk>
  13962. </chunks>
  13963. </chunk>
  13964. <chunk name="Object" index="112">
  13965. <items count="2">
  13966. <item name="GUID" type_name="gh_guid" type_code="9">3581f42a-9592-4549-bd6b-1c0fc39d067b</item>
  13967. <item name="Name" type_name="gh_string" type_code="10">Construct Point</item>
  13968. </items>
  13969. <chunks count="1">
  13970. <chunk name="Container">
  13971. <items count="5">
  13972. <item name="Description" type_name="gh_string" type_code="10">Construct a point from {xyz} coordinates.</item>
  13973. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  13974. <item name="InstanceGuid" type_name="gh_guid" type_code="9">158a8811-4a85-4636-9d80-bb6a389c6dc5</item>
  13975. <item name="Name" type_name="gh_string" type_code="10">Construct Point</item>
  13976. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  13977. </items>
  13978. <chunks count="5">
  13979. <chunk name="Attributes">
  13980. <items count="2">
  13981. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  13982. <X>1987</X>
  13983. <Y>1388</Y>
  13984. <W>67</W>
  13985. <H>64</H>
  13986. </item>
  13987. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  13988. <X>2018</X>
  13989. <Y>1420</Y>
  13990. </item>
  13991. </items>
  13992. </chunk>
  13993. <chunk name="param_input" index="0">
  13994. <items count="7">
  13995. <item name="Description" type_name="gh_string" type_code="10">{x} coordinate</item>
  13996. <item name="InstanceGuid" type_name="gh_guid" type_code="9">9c32aac2-60cd-43ce-8916-e951db46c16d</item>
  13997. <item name="Name" type_name="gh_string" type_code="10">X coordinate</item>
  13998. <item name="NickName" type_name="gh_string" type_code="10">X</item>
  13999. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  14000. <item name="Source" index="0" type_name="gh_guid" type_code="9">986c6ad6-35ae-433f-bd24-072861a5425d</item>
  14001. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  14002. </items>
  14003. <chunks count="2">
  14004. <chunk name="Attributes">
  14005. <items count="2">
  14006. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  14007. <X>1989</X>
  14008. <Y>1390</Y>
  14009. <W>14</W>
  14010. <H>20</H>
  14011. </item>
  14012. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  14013. <X>1997.5</X>
  14014. <Y>1400</Y>
  14015. </item>
  14016. </items>
  14017. </chunk>
  14018. <chunk name="PersistentData">
  14019. <items count="1">
  14020. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  14021. </items>
  14022. <chunks count="1">
  14023. <chunk name="Branch" index="0">
  14024. <items count="2">
  14025. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  14026. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  14027. </items>
  14028. <chunks count="1">
  14029. <chunk name="Item" index="0">
  14030. <items count="1">
  14031. <item name="number" type_name="gh_double" type_code="6">0</item>
  14032. </items>
  14033. </chunk>
  14034. </chunks>
  14035. </chunk>
  14036. </chunks>
  14037. </chunk>
  14038. </chunks>
  14039. </chunk>
  14040. <chunk name="param_input" index="1">
  14041. <items count="7">
  14042. <item name="Description" type_name="gh_string" type_code="10">{y} coordinate</item>
  14043. <item name="InstanceGuid" type_name="gh_guid" type_code="9">a95132f4-4546-4352-9af9-19e27eedb3c9</item>
  14044. <item name="Name" type_name="gh_string" type_code="10">Y coordinate</item>
  14045. <item name="NickName" type_name="gh_string" type_code="10">Y</item>
  14046. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  14047. <item name="Source" index="0" type_name="gh_guid" type_code="9">49b19326-ddaa-450c-a91b-d85295831ca1</item>
  14048. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  14049. </items>
  14050. <chunks count="2">
  14051. <chunk name="Attributes">
  14052. <items count="2">
  14053. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  14054. <X>1989</X>
  14055. <Y>1410</Y>
  14056. <W>14</W>
  14057. <H>20</H>
  14058. </item>
  14059. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  14060. <X>1997.5</X>
  14061. <Y>1420</Y>
  14062. </item>
  14063. </items>
  14064. </chunk>
  14065. <chunk name="PersistentData">
  14066. <items count="1">
  14067. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  14068. </items>
  14069. <chunks count="1">
  14070. <chunk name="Branch" index="0">
  14071. <items count="2">
  14072. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  14073. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  14074. </items>
  14075. <chunks count="1">
  14076. <chunk name="Item" index="0">
  14077. <items count="1">
  14078. <item name="number" type_name="gh_double" type_code="6">0</item>
  14079. </items>
  14080. </chunk>
  14081. </chunks>
  14082. </chunk>
  14083. </chunks>
  14084. </chunk>
  14085. </chunks>
  14086. </chunk>
  14087. <chunk name="param_input" index="2">
  14088. <items count="6">
  14089. <item name="Description" type_name="gh_string" type_code="10">{z} coordinate</item>
  14090. <item name="InstanceGuid" type_name="gh_guid" type_code="9">8802bfb6-39ba-40ec-84a0-199a2ccc0b6a</item>
  14091. <item name="Name" type_name="gh_string" type_code="10">Z coordinate</item>
  14092. <item name="NickName" type_name="gh_string" type_code="10">Z</item>
  14093. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  14094. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  14095. </items>
  14096. <chunks count="2">
  14097. <chunk name="Attributes">
  14098. <items count="2">
  14099. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  14100. <X>1989</X>
  14101. <Y>1430</Y>
  14102. <W>14</W>
  14103. <H>20</H>
  14104. </item>
  14105. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  14106. <X>1997.5</X>
  14107. <Y>1440</Y>
  14108. </item>
  14109. </items>
  14110. </chunk>
  14111. <chunk name="PersistentData">
  14112. <items count="1">
  14113. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  14114. </items>
  14115. <chunks count="1">
  14116. <chunk name="Branch" index="0">
  14117. <items count="2">
  14118. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  14119. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  14120. </items>
  14121. <chunks count="1">
  14122. <chunk name="Item" index="0">
  14123. <items count="1">
  14124. <item name="number" type_name="gh_double" type_code="6">0</item>
  14125. </items>
  14126. </chunk>
  14127. </chunks>
  14128. </chunk>
  14129. </chunks>
  14130. </chunk>
  14131. </chunks>
  14132. </chunk>
  14133. <chunk name="param_output" index="0">
  14134. <items count="6">
  14135. <item name="Description" type_name="gh_string" type_code="10">Point coordinate</item>
  14136. <item name="InstanceGuid" type_name="gh_guid" type_code="9">21b1fb4d-d8f9-4dca-a50f-bda44d8d40b3</item>
  14137. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  14138. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  14139. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  14140. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  14141. </items>
  14142. <chunks count="1">
  14143. <chunk name="Attributes">
  14144. <items count="2">
  14145. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  14146. <X>2033</X>
  14147. <Y>1390</Y>
  14148. <W>19</W>
  14149. <H>60</H>
  14150. </item>
  14151. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  14152. <X>2042.5</X>
  14153. <Y>1420</Y>
  14154. </item>
  14155. </items>
  14156. </chunk>
  14157. </chunks>
  14158. </chunk>
  14159. </chunks>
  14160. </chunk>
  14161. </chunks>
  14162. </chunk>
  14163. <chunk name="Object" index="113">
  14164. <items count="2">
  14165. <item name="GUID" type_name="gh_guid" type_code="9">a0d62394-a118-422d-abb3-6af115c75b25</item>
  14166. <item name="Name" type_name="gh_string" type_code="10">Addition</item>
  14167. </items>
  14168. <chunks count="1">
  14169. <chunk name="Container">
  14170. <items count="5">
  14171. <item name="Description" type_name="gh_string" type_code="10">Mathematical addition</item>
  14172. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  14173. <item name="InstanceGuid" type_name="gh_guid" type_code="9">e0d2b78b-5b2e-48e8-af51-67f77e6fe2e3</item>
  14174. <item name="Name" type_name="gh_string" type_code="10">Addition</item>
  14175. <item name="NickName" type_name="gh_string" type_code="10">A+B</item>
  14176. </items>
  14177. <chunks count="2">
  14178. <chunk name="Attributes">
  14179. <items count="2">
  14180. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  14181. <X>2364</X>
  14182. <Y>1520</Y>
  14183. <W>64</W>
  14184. <H>44</H>
  14185. </item>
  14186. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  14187. <X>2395</X>
  14188. <Y>1542</Y>
  14189. </item>
  14190. </items>
  14191. </chunk>
  14192. <chunk name="ParameterData">
  14193. <items count="5">
  14194. <item name="InputCount" type_name="gh_int32" type_code="3">2</item>
  14195. <item name="InputId" index="0" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  14196. <item name="InputId" index="1" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  14197. <item name="OutputCount" type_name="gh_int32" type_code="3">1</item>
  14198. <item name="OutputId" index="0" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  14199. </items>
  14200. <chunks count="3">
  14201. <chunk name="InputParam" index="0">
  14202. <items count="7">
  14203. <item name="Description" type_name="gh_string" type_code="10">First item for addition</item>
  14204. <item name="InstanceGuid" type_name="gh_guid" type_code="9">06d9a75f-442d-48a1-ace0-8e88067ed67f</item>
  14205. <item name="Name" type_name="gh_string" type_code="10">A</item>
  14206. <item name="NickName" type_name="gh_string" type_code="10">A</item>
  14207. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  14208. <item name="Source" index="0" type_name="gh_guid" type_code="9">21b1fb4d-d8f9-4dca-a50f-bda44d8d40b3</item>
  14209. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  14210. </items>
  14211. <chunks count="1">
  14212. <chunk name="Attributes">
  14213. <items count="2">
  14214. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  14215. <X>2366</X>
  14216. <Y>1522</Y>
  14217. <W>14</W>
  14218. <H>20</H>
  14219. </item>
  14220. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  14221. <X>2374.5</X>
  14222. <Y>1532</Y>
  14223. </item>
  14224. </items>
  14225. </chunk>
  14226. </chunks>
  14227. </chunk>
  14228. <chunk name="InputParam" index="1">
  14229. <items count="7">
  14230. <item name="Description" type_name="gh_string" type_code="10">Second item for addition</item>
  14231. <item name="InstanceGuid" type_name="gh_guid" type_code="9">6e986d97-59c1-46d7-8208-3fa2d487fe5c</item>
  14232. <item name="Name" type_name="gh_string" type_code="10">B</item>
  14233. <item name="NickName" type_name="gh_string" type_code="10">B</item>
  14234. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  14235. <item name="Source" index="0" type_name="gh_guid" type_code="9">bf8b3e5d-d755-43fb-8734-c94ed4d00bba</item>
  14236. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  14237. </items>
  14238. <chunks count="1">
  14239. <chunk name="Attributes">
  14240. <items count="2">
  14241. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  14242. <X>2366</X>
  14243. <Y>1542</Y>
  14244. <W>14</W>
  14245. <H>20</H>
  14246. </item>
  14247. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  14248. <X>2374.5</X>
  14249. <Y>1552</Y>
  14250. </item>
  14251. </items>
  14252. </chunk>
  14253. </chunks>
  14254. </chunk>
  14255. <chunk name="OutputParam" index="0">
  14256. <items count="6">
  14257. <item name="Description" type_name="gh_string" type_code="10">Result of addition</item>
  14258. <item name="InstanceGuid" type_name="gh_guid" type_code="9">5b37f206-7db4-44b0-ba0f-6175cec13953</item>
  14259. <item name="Name" type_name="gh_string" type_code="10">Result</item>
  14260. <item name="NickName" type_name="gh_string" type_code="10">R</item>
  14261. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  14262. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  14263. </items>
  14264. <chunks count="1">
  14265. <chunk name="Attributes">
  14266. <items count="2">
  14267. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  14268. <X>2410</X>
  14269. <Y>1522</Y>
  14270. <W>16</W>
  14271. <H>40</H>
  14272. </item>
  14273. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  14274. <X>2418</X>
  14275. <Y>1542</Y>
  14276. </item>
  14277. </items>
  14278. </chunk>
  14279. </chunks>
  14280. </chunk>
  14281. </chunks>
  14282. </chunk>
  14283. </chunks>
  14284. </chunk>
  14285. </chunks>
  14286. </chunk>
  14287. <chunk name="Object" index="114">
  14288. <items count="2">
  14289. <item name="GUID" type_name="gh_guid" type_code="9">3581f42a-9592-4549-bd6b-1c0fc39d067b</item>
  14290. <item name="Name" type_name="gh_string" type_code="10">Construct Point</item>
  14291. </items>
  14292. <chunks count="1">
  14293. <chunk name="Container">
  14294. <items count="5">
  14295. <item name="Description" type_name="gh_string" type_code="10">Construct a point from {xyz} coordinates.</item>
  14296. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  14297. <item name="InstanceGuid" type_name="gh_guid" type_code="9">8ecbb3d6-8916-43ff-9ea1-e19a4fb39844</item>
  14298. <item name="Name" type_name="gh_string" type_code="10">Construct Point</item>
  14299. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  14300. </items>
  14301. <chunks count="5">
  14302. <chunk name="Attributes">
  14303. <items count="2">
  14304. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  14305. <X>1996</X>
  14306. <Y>1662</Y>
  14307. <W>67</W>
  14308. <H>64</H>
  14309. </item>
  14310. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  14311. <X>2027</X>
  14312. <Y>1694</Y>
  14313. </item>
  14314. </items>
  14315. </chunk>
  14316. <chunk name="param_input" index="0">
  14317. <items count="7">
  14318. <item name="Description" type_name="gh_string" type_code="10">{x} coordinate</item>
  14319. <item name="InstanceGuid" type_name="gh_guid" type_code="9">8e8e1801-b640-4212-9871-fb70a85ac93c</item>
  14320. <item name="Name" type_name="gh_string" type_code="10">X coordinate</item>
  14321. <item name="NickName" type_name="gh_string" type_code="10">X</item>
  14322. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  14323. <item name="Source" index="0" type_name="gh_guid" type_code="9">ef5b5c46-d28c-4d3d-8719-82ebb12862d2</item>
  14324. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  14325. </items>
  14326. <chunks count="2">
  14327. <chunk name="Attributes">
  14328. <items count="2">
  14329. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  14330. <X>1998</X>
  14331. <Y>1664</Y>
  14332. <W>14</W>
  14333. <H>20</H>
  14334. </item>
  14335. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  14336. <X>2006.5</X>
  14337. <Y>1674</Y>
  14338. </item>
  14339. </items>
  14340. </chunk>
  14341. <chunk name="PersistentData">
  14342. <items count="1">
  14343. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  14344. </items>
  14345. <chunks count="1">
  14346. <chunk name="Branch" index="0">
  14347. <items count="2">
  14348. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  14349. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  14350. </items>
  14351. <chunks count="1">
  14352. <chunk name="Item" index="0">
  14353. <items count="1">
  14354. <item name="number" type_name="gh_double" type_code="6">0</item>
  14355. </items>
  14356. </chunk>
  14357. </chunks>
  14358. </chunk>
  14359. </chunks>
  14360. </chunk>
  14361. </chunks>
  14362. </chunk>
  14363. <chunk name="param_input" index="1">
  14364. <items count="7">
  14365. <item name="Description" type_name="gh_string" type_code="10">{y} coordinate</item>
  14366. <item name="InstanceGuid" type_name="gh_guid" type_code="9">26f967a7-45e3-4567-8d5b-e583254c129a</item>
  14367. <item name="Name" type_name="gh_string" type_code="10">Y coordinate</item>
  14368. <item name="NickName" type_name="gh_string" type_code="10">Y</item>
  14369. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  14370. <item name="Source" index="0" type_name="gh_guid" type_code="9">2c914091-22c1-40d8-abc1-4ccddd24e6ea</item>
  14371. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  14372. </items>
  14373. <chunks count="2">
  14374. <chunk name="Attributes">
  14375. <items count="2">
  14376. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  14377. <X>1998</X>
  14378. <Y>1684</Y>
  14379. <W>14</W>
  14380. <H>20</H>
  14381. </item>
  14382. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  14383. <X>2006.5</X>
  14384. <Y>1694</Y>
  14385. </item>
  14386. </items>
  14387. </chunk>
  14388. <chunk name="PersistentData">
  14389. <items count="1">
  14390. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  14391. </items>
  14392. <chunks count="1">
  14393. <chunk name="Branch" index="0">
  14394. <items count="2">
  14395. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  14396. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  14397. </items>
  14398. <chunks count="1">
  14399. <chunk name="Item" index="0">
  14400. <items count="1">
  14401. <item name="number" type_name="gh_double" type_code="6">0</item>
  14402. </items>
  14403. </chunk>
  14404. </chunks>
  14405. </chunk>
  14406. </chunks>
  14407. </chunk>
  14408. </chunks>
  14409. </chunk>
  14410. <chunk name="param_input" index="2">
  14411. <items count="6">
  14412. <item name="Description" type_name="gh_string" type_code="10">{z} coordinate</item>
  14413. <item name="InstanceGuid" type_name="gh_guid" type_code="9">dfcf11d4-ae95-4bcd-afb7-606d1755dc76</item>
  14414. <item name="Name" type_name="gh_string" type_code="10">Z coordinate</item>
  14415. <item name="NickName" type_name="gh_string" type_code="10">Z</item>
  14416. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  14417. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  14418. </items>
  14419. <chunks count="2">
  14420. <chunk name="Attributes">
  14421. <items count="2">
  14422. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  14423. <X>1998</X>
  14424. <Y>1704</Y>
  14425. <W>14</W>
  14426. <H>20</H>
  14427. </item>
  14428. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  14429. <X>2006.5</X>
  14430. <Y>1714</Y>
  14431. </item>
  14432. </items>
  14433. </chunk>
  14434. <chunk name="PersistentData">
  14435. <items count="1">
  14436. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  14437. </items>
  14438. <chunks count="1">
  14439. <chunk name="Branch" index="0">
  14440. <items count="2">
  14441. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  14442. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  14443. </items>
  14444. <chunks count="1">
  14445. <chunk name="Item" index="0">
  14446. <items count="1">
  14447. <item name="number" type_name="gh_double" type_code="6">0</item>
  14448. </items>
  14449. </chunk>
  14450. </chunks>
  14451. </chunk>
  14452. </chunks>
  14453. </chunk>
  14454. </chunks>
  14455. </chunk>
  14456. <chunk name="param_output" index="0">
  14457. <items count="6">
  14458. <item name="Description" type_name="gh_string" type_code="10">Point coordinate</item>
  14459. <item name="InstanceGuid" type_name="gh_guid" type_code="9">e825beda-2c01-4b73-b180-297fcfe8bbc3</item>
  14460. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  14461. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  14462. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  14463. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  14464. </items>
  14465. <chunks count="1">
  14466. <chunk name="Attributes">
  14467. <items count="2">
  14468. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  14469. <X>2042</X>
  14470. <Y>1664</Y>
  14471. <W>19</W>
  14472. <H>60</H>
  14473. </item>
  14474. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  14475. <X>2051.5</X>
  14476. <Y>1694</Y>
  14477. </item>
  14478. </items>
  14479. </chunk>
  14480. </chunks>
  14481. </chunk>
  14482. </chunks>
  14483. </chunk>
  14484. </chunks>
  14485. </chunk>
  14486. <chunk name="Object" index="115">
  14487. <items count="2">
  14488. <item name="GUID" type_name="gh_guid" type_code="9">2c56ab33-c7cc-4129-886c-d5856b714010</item>
  14489. <item name="Name" type_name="gh_string" type_code="10">Subtraction</item>
  14490. </items>
  14491. <chunks count="1">
  14492. <chunk name="Container">
  14493. <items count="5">
  14494. <item name="Description" type_name="gh_string" type_code="10">Mathematical subtraction</item>
  14495. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  14496. <item name="InstanceGuid" type_name="gh_guid" type_code="9">716d8d38-b0b8-409b-9809-4626eaa49feb</item>
  14497. <item name="Name" type_name="gh_string" type_code="10">Subtraction</item>
  14498. <item name="NickName" type_name="gh_string" type_code="10">A-B</item>
  14499. </items>
  14500. <chunks count="4">
  14501. <chunk name="Attributes">
  14502. <items count="2">
  14503. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  14504. <X>2368</X>
  14505. <Y>1584</Y>
  14506. <W>64</W>
  14507. <H>44</H>
  14508. </item>
  14509. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  14510. <X>2399</X>
  14511. <Y>1606</Y>
  14512. </item>
  14513. </items>
  14514. </chunk>
  14515. <chunk name="param_input" index="0">
  14516. <items count="7">
  14517. <item name="Description" type_name="gh_string" type_code="10">Item to subtract from (minuend)</item>
  14518. <item name="InstanceGuid" type_name="gh_guid" type_code="9">1104ec21-7fa5-4dae-af48-1016aa881210</item>
  14519. <item name="Name" type_name="gh_string" type_code="10">A</item>
  14520. <item name="NickName" type_name="gh_string" type_code="10">A</item>
  14521. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  14522. <item name="Source" index="0" type_name="gh_guid" type_code="9">e825beda-2c01-4b73-b180-297fcfe8bbc3</item>
  14523. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  14524. </items>
  14525. <chunks count="1">
  14526. <chunk name="Attributes">
  14527. <items count="2">
  14528. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  14529. <X>2370</X>
  14530. <Y>1586</Y>
  14531. <W>14</W>
  14532. <H>20</H>
  14533. </item>
  14534. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  14535. <X>2378.5</X>
  14536. <Y>1596</Y>
  14537. </item>
  14538. </items>
  14539. </chunk>
  14540. </chunks>
  14541. </chunk>
  14542. <chunk name="param_input" index="1">
  14543. <items count="7">
  14544. <item name="Description" type_name="gh_string" type_code="10">Item to subtract (subtrahend)</item>
  14545. <item name="InstanceGuid" type_name="gh_guid" type_code="9">a3acb875-c63e-4a60-8e24-40c0d03aba55</item>
  14546. <item name="Name" type_name="gh_string" type_code="10">B</item>
  14547. <item name="NickName" type_name="gh_string" type_code="10">B</item>
  14548. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  14549. <item name="Source" index="0" type_name="gh_guid" type_code="9">bf8b3e5d-d755-43fb-8734-c94ed4d00bba</item>
  14550. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  14551. </items>
  14552. <chunks count="1">
  14553. <chunk name="Attributes">
  14554. <items count="2">
  14555. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  14556. <X>2370</X>
  14557. <Y>1606</Y>
  14558. <W>14</W>
  14559. <H>20</H>
  14560. </item>
  14561. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  14562. <X>2378.5</X>
  14563. <Y>1616</Y>
  14564. </item>
  14565. </items>
  14566. </chunk>
  14567. </chunks>
  14568. </chunk>
  14569. <chunk name="param_output" index="0">
  14570. <items count="6">
  14571. <item name="Description" type_name="gh_string" type_code="10">The result of the Subtraction</item>
  14572. <item name="InstanceGuid" type_name="gh_guid" type_code="9">40a43f7c-5b18-42a9-934b-a3fca8b86584</item>
  14573. <item name="Name" type_name="gh_string" type_code="10">Result</item>
  14574. <item name="NickName" type_name="gh_string" type_code="10">R</item>
  14575. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  14576. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  14577. </items>
  14578. <chunks count="1">
  14579. <chunk name="Attributes">
  14580. <items count="2">
  14581. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  14582. <X>2414</X>
  14583. <Y>1586</Y>
  14584. <W>16</W>
  14585. <H>40</H>
  14586. </item>
  14587. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  14588. <X>2422</X>
  14589. <Y>1606</Y>
  14590. </item>
  14591. </items>
  14592. </chunk>
  14593. </chunks>
  14594. </chunk>
  14595. </chunks>
  14596. </chunk>
  14597. </chunks>
  14598. </chunk>
  14599. <chunk name="Object" index="116">
  14600. <items count="2">
  14601. <item name="GUID" type_name="gh_guid" type_code="9">fbac3e32-f100-4292-8692-77240a42fd1a</item>
  14602. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  14603. </items>
  14604. <chunks count="1">
  14605. <chunk name="Container">
  14606. <items count="8">
  14607. <item name="Description" type_name="gh_string" type_code="10">Contains a collection of three-dimensional points</item>
  14608. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  14609. <item name="InstanceGuid" type_name="gh_guid" type_code="9">5c0c8191-e5d5-44d8-9b74-ad7b50095c12</item>
  14610. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  14611. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  14612. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  14613. <item name="Source" index="0" type_name="gh_guid" type_code="9">40a43f7c-5b18-42a9-934b-a3fca8b86584</item>
  14614. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  14615. </items>
  14616. <chunks count="1">
  14617. <chunk name="Attributes">
  14618. <items count="2">
  14619. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  14620. <X>2466</X>
  14621. <Y>1587</Y>
  14622. <W>50</W>
  14623. <H>24</H>
  14624. </item>
  14625. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  14626. <X>2491.524</X>
  14627. <Y>1599.556</Y>
  14628. </item>
  14629. </items>
  14630. </chunk>
  14631. </chunks>
  14632. </chunk>
  14633. </chunks>
  14634. </chunk>
  14635. <chunk name="Object" index="117">
  14636. <items count="2">
  14637. <item name="GUID" type_name="gh_guid" type_code="9">fbac3e32-f100-4292-8692-77240a42fd1a</item>
  14638. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  14639. </items>
  14640. <chunks count="1">
  14641. <chunk name="Container">
  14642. <items count="8">
  14643. <item name="Description" type_name="gh_string" type_code="10">Contains a collection of three-dimensional points</item>
  14644. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  14645. <item name="InstanceGuid" type_name="gh_guid" type_code="9">83dc0e24-1c12-445e-8647-dffc452baa6a</item>
  14646. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  14647. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  14648. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  14649. <item name="Source" index="0" type_name="gh_guid" type_code="9">5b37f206-7db4-44b0-ba0f-6175cec13953</item>
  14650. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  14651. </items>
  14652. <chunks count="1">
  14653. <chunk name="Attributes">
  14654. <items count="2">
  14655. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  14656. <X>2464</X>
  14657. <Y>1538</Y>
  14658. <W>50</W>
  14659. <H>24</H>
  14660. </item>
  14661. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  14662. <X>2489.024</X>
  14663. <Y>1550.806</Y>
  14664. </item>
  14665. </items>
  14666. </chunk>
  14667. </chunks>
  14668. </chunk>
  14669. </chunks>
  14670. </chunk>
  14671. <chunk name="Object" index="118">
  14672. <items count="2">
  14673. <item name="GUID" type_name="gh_guid" type_code="9">fbac3e32-f100-4292-8692-77240a42fd1a</item>
  14674. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  14675. </items>
  14676. <chunks count="1">
  14677. <chunk name="Container">
  14678. <items count="8">
  14679. <item name="Description" type_name="gh_string" type_code="10">Contains a collection of three-dimensional points</item>
  14680. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  14681. <item name="InstanceGuid" type_name="gh_guid" type_code="9">c54e879a-bb6c-47c6-b366-aaa5a16a426a</item>
  14682. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  14683. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  14684. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  14685. <item name="Source" index="0" type_name="gh_guid" type_code="9">f70a66ec-d9db-496d-9885-4b577f135593</item>
  14686. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  14687. </items>
  14688. <chunks count="1">
  14689. <chunk name="Attributes">
  14690. <items count="2">
  14691. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  14692. <X>2387</X>
  14693. <Y>1270</Y>
  14694. <W>50</W>
  14695. <H>24</H>
  14696. </item>
  14697. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  14698. <X>2412.399</X>
  14699. <Y>1282.068</Y>
  14700. </item>
  14701. </items>
  14702. </chunk>
  14703. </chunks>
  14704. </chunk>
  14705. </chunks>
  14706. </chunk>
  14707. <chunk name="Object" index="119">
  14708. <items count="2">
  14709. <item name="GUID" type_name="gh_guid" type_code="9">fbac3e32-f100-4292-8692-77240a42fd1a</item>
  14710. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  14711. </items>
  14712. <chunks count="1">
  14713. <chunk name="Container">
  14714. <items count="8">
  14715. <item name="Description" type_name="gh_string" type_code="10">Contains a collection of three-dimensional points</item>
  14716. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  14717. <item name="InstanceGuid" type_name="gh_guid" type_code="9">72b7092f-b51c-4a8b-b457-5cc6f58de91d</item>
  14718. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  14719. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  14720. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  14721. <item name="Source" index="0" type_name="gh_guid" type_code="9">79d26b1a-d554-4adf-802a-54c1a82df2de</item>
  14722. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  14723. </items>
  14724. <chunks count="1">
  14725. <chunk name="Attributes">
  14726. <items count="2">
  14727. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  14728. <X>2387</X>
  14729. <Y>1315</Y>
  14730. <W>50</W>
  14731. <H>24</H>
  14732. </item>
  14733. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  14734. <X>2412.599</X>
  14735. <Y>1327.418</Y>
  14736. </item>
  14737. </items>
  14738. </chunk>
  14739. </chunks>
  14740. </chunk>
  14741. </chunks>
  14742. </chunk>
  14743. <chunk name="Object" index="120">
  14744. <items count="2">
  14745. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  14746. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  14747. </items>
  14748. <chunks count="1">
  14749. <chunk name="Container">
  14750. <items count="8">
  14751. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  14752. <item name="InstanceGuid" type_name="gh_guid" type_code="9">8526fdb2-be35-4339-84b0-0de9c353ed2c</item>
  14753. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  14754. <item name="NickName" type_name="gh_string" type_code="10"></item>
  14755. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  14756. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  14757. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  14758. <item name="UserText" type_name="gh_string" type_code="10">3</item>
  14759. </items>
  14760. <chunks count="2">
  14761. <chunk name="Attributes">
  14762. <items count="5">
  14763. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  14764. <X>2586</X>
  14765. <Y>1726</Y>
  14766. <W>50</W>
  14767. <H>20</H>
  14768. </item>
  14769. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  14770. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  14771. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  14772. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  14773. <X>2586.39</X>
  14774. <Y>1726.995</Y>
  14775. </item>
  14776. </items>
  14777. </chunk>
  14778. <chunk name="PanelProperties">
  14779. <items count="7">
  14780. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  14781. <ARGB>255;255;250;90</ARGB>
  14782. </item>
  14783. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  14784. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  14785. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  14786. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  14787. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  14788. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  14789. </items>
  14790. </chunk>
  14791. </chunks>
  14792. </chunk>
  14793. </chunks>
  14794. </chunk>
  14795. <chunk name="Object" index="121">
  14796. <items count="2">
  14797. <item name="GUID" type_name="gh_guid" type_code="9">a0d62394-a118-422d-abb3-6af115c75b25</item>
  14798. <item name="Name" type_name="gh_string" type_code="10">Addition</item>
  14799. </items>
  14800. <chunks count="1">
  14801. <chunk name="Container">
  14802. <items count="4">
  14803. <item name="Description" type_name="gh_string" type_code="10">Mathematical addition</item>
  14804. <item name="InstanceGuid" type_name="gh_guid" type_code="9">e9472173-0e76-45e7-b4b3-2d927d4baecc</item>
  14805. <item name="Name" type_name="gh_string" type_code="10">Addition</item>
  14806. <item name="NickName" type_name="gh_string" type_code="10">A+B</item>
  14807. </items>
  14808. <chunks count="2">
  14809. <chunk name="Attributes">
  14810. <items count="2">
  14811. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  14812. <X>2663</X>
  14813. <Y>1691</Y>
  14814. <W>64</W>
  14815. <H>44</H>
  14816. </item>
  14817. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  14818. <X>2694</X>
  14819. <Y>1713</Y>
  14820. </item>
  14821. </items>
  14822. </chunk>
  14823. <chunk name="ParameterData">
  14824. <items count="5">
  14825. <item name="InputCount" type_name="gh_int32" type_code="3">2</item>
  14826. <item name="InputId" index="0" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  14827. <item name="InputId" index="1" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  14828. <item name="OutputCount" type_name="gh_int32" type_code="3">1</item>
  14829. <item name="OutputId" index="0" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  14830. </items>
  14831. <chunks count="3">
  14832. <chunk name="InputParam" index="0">
  14833. <items count="7">
  14834. <item name="Description" type_name="gh_string" type_code="10">First item for addition</item>
  14835. <item name="InstanceGuid" type_name="gh_guid" type_code="9">da0b56ad-280a-4f2a-8298-030632f1527e</item>
  14836. <item name="Name" type_name="gh_string" type_code="10">A</item>
  14837. <item name="NickName" type_name="gh_string" type_code="10">A</item>
  14838. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  14839. <item name="Source" index="0" type_name="gh_guid" type_code="9">14cc88f5-707d-4e86-a518-ccdcce6ded66</item>
  14840. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  14841. </items>
  14842. <chunks count="1">
  14843. <chunk name="Attributes">
  14844. <items count="2">
  14845. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  14846. <X>2665</X>
  14847. <Y>1693</Y>
  14848. <W>14</W>
  14849. <H>20</H>
  14850. </item>
  14851. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  14852. <X>2673.5</X>
  14853. <Y>1703</Y>
  14854. </item>
  14855. </items>
  14856. </chunk>
  14857. </chunks>
  14858. </chunk>
  14859. <chunk name="InputParam" index="1">
  14860. <items count="7">
  14861. <item name="Description" type_name="gh_string" type_code="10">Second item for addition</item>
  14862. <item name="InstanceGuid" type_name="gh_guid" type_code="9">7467100d-05d3-4ae7-a577-8da37d4b9e55</item>
  14863. <item name="Name" type_name="gh_string" type_code="10">B</item>
  14864. <item name="NickName" type_name="gh_string" type_code="10">B</item>
  14865. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  14866. <item name="Source" index="0" type_name="gh_guid" type_code="9">8526fdb2-be35-4339-84b0-0de9c353ed2c</item>
  14867. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  14868. </items>
  14869. <chunks count="1">
  14870. <chunk name="Attributes">
  14871. <items count="2">
  14872. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  14873. <X>2665</X>
  14874. <Y>1713</Y>
  14875. <W>14</W>
  14876. <H>20</H>
  14877. </item>
  14878. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  14879. <X>2673.5</X>
  14880. <Y>1723</Y>
  14881. </item>
  14882. </items>
  14883. </chunk>
  14884. </chunks>
  14885. </chunk>
  14886. <chunk name="OutputParam" index="0">
  14887. <items count="6">
  14888. <item name="Description" type_name="gh_string" type_code="10">Result of addition</item>
  14889. <item name="InstanceGuid" type_name="gh_guid" type_code="9">cd2f5af0-b741-48d5-8bbd-e9695d5278d8</item>
  14890. <item name="Name" type_name="gh_string" type_code="10">Result</item>
  14891. <item name="NickName" type_name="gh_string" type_code="10">R</item>
  14892. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  14893. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  14894. </items>
  14895. <chunks count="1">
  14896. <chunk name="Attributes">
  14897. <items count="2">
  14898. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  14899. <X>2709</X>
  14900. <Y>1693</Y>
  14901. <W>16</W>
  14902. <H>40</H>
  14903. </item>
  14904. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  14905. <X>2717</X>
  14906. <Y>1713</Y>
  14907. </item>
  14908. </items>
  14909. </chunk>
  14910. </chunks>
  14911. </chunk>
  14912. </chunks>
  14913. </chunk>
  14914. </chunks>
  14915. </chunk>
  14916. </chunks>
  14917. </chunk>
  14918. <chunk name="Object" index="122">
  14919. <items count="2">
  14920. <item name="GUID" type_name="gh_guid" type_code="9">57da07bd-ecab-415d-9d86-af36d7073abc</item>
  14921. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  14922. </items>
  14923. <chunks count="1">
  14924. <chunk name="Container">
  14925. <items count="6">
  14926. <item name="Description" type_name="gh_string" type_code="10">Numeric slider for single values</item>
  14927. <item name="InstanceGuid" type_name="gh_guid" type_code="9">14cc88f5-707d-4e86-a518-ccdcce6ded66</item>
  14928. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  14929. <item name="NickName" type_name="gh_string" type_code="10">Peak Height</item>
  14930. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  14931. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  14932. </items>
  14933. <chunks count="2">
  14934. <chunk name="Attributes">
  14935. <items count="2">
  14936. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  14937. <X>2372</X>
  14938. <Y>1693</Y>
  14939. <W>263</W>
  14940. <H>20</H>
  14941. </item>
  14942. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  14943. <X>2372.275</X>
  14944. <Y>1693.369</Y>
  14945. </item>
  14946. </items>
  14947. </chunk>
  14948. <chunk name="Slider">
  14949. <items count="7">
  14950. <item name="Digits" type_name="gh_int32" type_code="3">1</item>
  14951. <item name="GripDisplay" type_name="gh_int32" type_code="3">1</item>
  14952. <item name="Interval" type_name="gh_int32" type_code="3">0</item>
  14953. <item name="Max" type_name="gh_double" type_code="6">72</item>
  14954. <item name="Min" type_name="gh_double" type_code="6">0</item>
  14955. <item name="SnapCount" type_name="gh_int32" type_code="3">0</item>
  14956. <item name="Value" type_name="gh_double" type_code="6">44</item>
  14957. </items>
  14958. </chunk>
  14959. </chunks>
  14960. </chunk>
  14961. </chunks>
  14962. </chunk>
  14963. <chunk name="Object" index="123">
  14964. <items count="2">
  14965. <item name="GUID" type_name="gh_guid" type_code="9">9103c240-a6a9-4223-9b42-dbd19bf38e2b</item>
  14966. <item name="Name" type_name="gh_string" type_code="10">Unit Z</item>
  14967. </items>
  14968. <chunks count="1">
  14969. <chunk name="Container">
  14970. <items count="4">
  14971. <item name="Description" type_name="gh_string" type_code="10">Unit vector parallel to the world {z} axis.</item>
  14972. <item name="InstanceGuid" type_name="gh_guid" type_code="9">c51aaec6-9bc7-40d7-ab2d-705fd2e20e1e</item>
  14973. <item name="Name" type_name="gh_string" type_code="10">Unit Z</item>
  14974. <item name="NickName" type_name="gh_string" type_code="10">Z</item>
  14975. </items>
  14976. <chunks count="3">
  14977. <chunk name="Attributes">
  14978. <items count="2">
  14979. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  14980. <X>2553</X>
  14981. <Y>1260</Y>
  14982. <W>62</W>
  14983. <H>28</H>
  14984. </item>
  14985. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  14986. <X>2582</X>
  14987. <Y>1274</Y>
  14988. </item>
  14989. </items>
  14990. </chunk>
  14991. <chunk name="param_input" index="0">
  14992. <items count="6">
  14993. <item name="Description" type_name="gh_string" type_code="10">Unit multiplication</item>
  14994. <item name="InstanceGuid" type_name="gh_guid" type_code="9">2414a112-d958-411b-b27f-8cdf9d0d2480</item>
  14995. <item name="Name" type_name="gh_string" type_code="10">Factor</item>
  14996. <item name="NickName" type_name="gh_string" type_code="10">F</item>
  14997. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  14998. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  14999. </items>
  15000. <chunks count="2">
  15001. <chunk name="Attributes">
  15002. <items count="2">
  15003. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  15004. <X>2555</X>
  15005. <Y>1262</Y>
  15006. <W>12</W>
  15007. <H>24</H>
  15008. </item>
  15009. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  15010. <X>2562.5</X>
  15011. <Y>1274</Y>
  15012. </item>
  15013. </items>
  15014. </chunk>
  15015. <chunk name="PersistentData">
  15016. <items count="1">
  15017. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  15018. </items>
  15019. <chunks count="1">
  15020. <chunk name="Branch" index="0">
  15021. <items count="2">
  15022. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  15023. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  15024. </items>
  15025. <chunks count="1">
  15026. <chunk name="Item" index="0">
  15027. <items count="1">
  15028. <item name="number" type_name="gh_double" type_code="6">1</item>
  15029. </items>
  15030. </chunk>
  15031. </chunks>
  15032. </chunk>
  15033. </chunks>
  15034. </chunk>
  15035. </chunks>
  15036. </chunk>
  15037. <chunk name="param_output" index="0">
  15038. <items count="6">
  15039. <item name="Description" type_name="gh_string" type_code="10">World {z} vector</item>
  15040. <item name="InstanceGuid" type_name="gh_guid" type_code="9">fdc6f14b-d2af-4143-9fa5-98d72e1496f4</item>
  15041. <item name="Name" type_name="gh_string" type_code="10">Unit vector</item>
  15042. <item name="NickName" type_name="gh_string" type_code="10">V</item>
  15043. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  15044. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  15045. </items>
  15046. <chunks count="1">
  15047. <chunk name="Attributes">
  15048. <items count="2">
  15049. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  15050. <X>2597</X>
  15051. <Y>1262</Y>
  15052. <W>16</W>
  15053. <H>24</H>
  15054. </item>
  15055. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  15056. <X>2605</X>
  15057. <Y>1274</Y>
  15058. </item>
  15059. </items>
  15060. </chunk>
  15061. </chunks>
  15062. </chunk>
  15063. </chunks>
  15064. </chunk>
  15065. </chunks>
  15066. </chunk>
  15067. <chunk name="Object" index="124">
  15068. <items count="2">
  15069. <item name="GUID" type_name="gh_guid" type_code="9">934ede4a-924a-4973-bb05-0dc4b36fae75</item>
  15070. <item name="Name" type_name="gh_string" type_code="10">Vector 2Pt</item>
  15071. </items>
  15072. <chunks count="1">
  15073. <chunk name="Container">
  15074. <items count="4">
  15075. <item name="Description" type_name="gh_string" type_code="10">Create a vector between two points.</item>
  15076. <item name="InstanceGuid" type_name="gh_guid" type_code="9">361f13b0-f722-496a-b487-cfffdce2f9cb</item>
  15077. <item name="Name" type_name="gh_string" type_code="10">Vector 2Pt</item>
  15078. <item name="NickName" type_name="gh_string" type_code="10">Vec2Pt</item>
  15079. </items>
  15080. <chunks count="6">
  15081. <chunk name="Attributes">
  15082. <items count="2">
  15083. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  15084. <X>2548</X>
  15085. <Y>1387</Y>
  15086. <W>64</W>
  15087. <H>64</H>
  15088. </item>
  15089. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  15090. <X>2579</X>
  15091. <Y>1419</Y>
  15092. </item>
  15093. </items>
  15094. </chunk>
  15095. <chunk name="param_input" index="0">
  15096. <items count="8">
  15097. <item name="Description" type_name="gh_string" type_code="10">Base point</item>
  15098. <item name="InstanceGuid" type_name="gh_guid" type_code="9">5e0ee3e7-7ca6-486b-a276-9290daec2c1d</item>
  15099. <item name="Name" type_name="gh_string" type_code="10">Point A</item>
  15100. <item name="NickName" type_name="gh_string" type_code="10">A</item>
  15101. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  15102. <item name="Source" index="0" type_name="gh_guid" type_code="9">c54e879a-bb6c-47c6-b366-aaa5a16a426a</item>
  15103. <item name="Source" index="1" type_name="gh_guid" type_code="9">83dc0e24-1c12-445e-8647-dffc452baa6a</item>
  15104. <item name="SourceCount" type_name="gh_int32" type_code="3">2</item>
  15105. </items>
  15106. <chunks count="1">
  15107. <chunk name="Attributes">
  15108. <items count="2">
  15109. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  15110. <X>2550</X>
  15111. <Y>1389</Y>
  15112. <W>14</W>
  15113. <H>20</H>
  15114. </item>
  15115. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  15116. <X>2558.5</X>
  15117. <Y>1399</Y>
  15118. </item>
  15119. </items>
  15120. </chunk>
  15121. </chunks>
  15122. </chunk>
  15123. <chunk name="param_input" index="1">
  15124. <items count="8">
  15125. <item name="Description" type_name="gh_string" type_code="10">Tip point</item>
  15126. <item name="InstanceGuid" type_name="gh_guid" type_code="9">69e066b8-5497-4517-9782-d03091f32b49</item>
  15127. <item name="Name" type_name="gh_string" type_code="10">Point B</item>
  15128. <item name="NickName" type_name="gh_string" type_code="10">B</item>
  15129. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  15130. <item name="Source" index="0" type_name="gh_guid" type_code="9">72b7092f-b51c-4a8b-b457-5cc6f58de91d</item>
  15131. <item name="Source" index="1" type_name="gh_guid" type_code="9">5c0c8191-e5d5-44d8-9b74-ad7b50095c12</item>
  15132. <item name="SourceCount" type_name="gh_int32" type_code="3">2</item>
  15133. </items>
  15134. <chunks count="1">
  15135. <chunk name="Attributes">
  15136. <items count="2">
  15137. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  15138. <X>2550</X>
  15139. <Y>1409</Y>
  15140. <W>14</W>
  15141. <H>20</H>
  15142. </item>
  15143. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  15144. <X>2558.5</X>
  15145. <Y>1419</Y>
  15146. </item>
  15147. </items>
  15148. </chunk>
  15149. </chunks>
  15150. </chunk>
  15151. <chunk name="param_input" index="2">
  15152. <items count="6">
  15153. <item name="Description" type_name="gh_string" type_code="10">Unitize output</item>
  15154. <item name="InstanceGuid" type_name="gh_guid" type_code="9">e01e96a4-176c-42b4-baed-01d2da98668f</item>
  15155. <item name="Name" type_name="gh_string" type_code="10">Unitize</item>
  15156. <item name="NickName" type_name="gh_string" type_code="10">U</item>
  15157. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  15158. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  15159. </items>
  15160. <chunks count="2">
  15161. <chunk name="Attributes">
  15162. <items count="2">
  15163. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  15164. <X>2550</X>
  15165. <Y>1429</Y>
  15166. <W>14</W>
  15167. <H>20</H>
  15168. </item>
  15169. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  15170. <X>2558.5</X>
  15171. <Y>1439</Y>
  15172. </item>
  15173. </items>
  15174. </chunk>
  15175. <chunk name="PersistentData">
  15176. <items count="1">
  15177. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  15178. </items>
  15179. <chunks count="1">
  15180. <chunk name="Branch" index="0">
  15181. <items count="2">
  15182. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  15183. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  15184. </items>
  15185. <chunks count="1">
  15186. <chunk name="Item" index="0">
  15187. <items count="1">
  15188. <item name="boolean" type_name="gh_bool" type_code="1">false</item>
  15189. </items>
  15190. </chunk>
  15191. </chunks>
  15192. </chunk>
  15193. </chunks>
  15194. </chunk>
  15195. </chunks>
  15196. </chunk>
  15197. <chunk name="param_output" index="0">
  15198. <items count="6">
  15199. <item name="Description" type_name="gh_string" type_code="10">Vector</item>
  15200. <item name="InstanceGuid" type_name="gh_guid" type_code="9">a09f5810-c5e6-41cf-a732-76ade1d918e1</item>
  15201. <item name="Name" type_name="gh_string" type_code="10">Vector</item>
  15202. <item name="NickName" type_name="gh_string" type_code="10">V</item>
  15203. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  15204. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  15205. </items>
  15206. <chunks count="1">
  15207. <chunk name="Attributes">
  15208. <items count="2">
  15209. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  15210. <X>2594</X>
  15211. <Y>1389</Y>
  15212. <W>16</W>
  15213. <H>30</H>
  15214. </item>
  15215. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  15216. <X>2602</X>
  15217. <Y>1404</Y>
  15218. </item>
  15219. </items>
  15220. </chunk>
  15221. </chunks>
  15222. </chunk>
  15223. <chunk name="param_output" index="1">
  15224. <items count="6">
  15225. <item name="Description" type_name="gh_string" type_code="10">Vector length</item>
  15226. <item name="InstanceGuid" type_name="gh_guid" type_code="9">15154730-ac41-4df7-abd3-5125f66ed008</item>
  15227. <item name="Name" type_name="gh_string" type_code="10">Length</item>
  15228. <item name="NickName" type_name="gh_string" type_code="10">L</item>
  15229. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  15230. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  15231. </items>
  15232. <chunks count="1">
  15233. <chunk name="Attributes">
  15234. <items count="2">
  15235. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  15236. <X>2594</X>
  15237. <Y>1419</Y>
  15238. <W>16</W>
  15239. <H>30</H>
  15240. </item>
  15241. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  15242. <X>2602</X>
  15243. <Y>1434</Y>
  15244. </item>
  15245. </items>
  15246. </chunk>
  15247. </chunks>
  15248. </chunk>
  15249. </chunks>
  15250. </chunk>
  15251. </chunks>
  15252. </chunk>
  15253. <chunk name="Object" index="125">
  15254. <items count="2">
  15255. <item name="GUID" type_name="gh_guid" type_code="9">bc3e379e-7206-4e7b-b63a-ff61f4b38a3e</item>
  15256. <item name="Name" type_name="gh_string" type_code="10">Construct Plane</item>
  15257. </items>
  15258. <chunks count="1">
  15259. <chunk name="Container">
  15260. <items count="5">
  15261. <item name="Description" type_name="gh_string" type_code="10">Construct a plane from an origin point and {x}, {y} axes.</item>
  15262. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  15263. <item name="InstanceGuid" type_name="gh_guid" type_code="9">1b6a1009-88b9-418a-8918-f95aabbb1c52</item>
  15264. <item name="Name" type_name="gh_string" type_code="10">Construct Plane</item>
  15265. <item name="NickName" type_name="gh_string" type_code="10">Pl</item>
  15266. </items>
  15267. <chunks count="5">
  15268. <chunk name="Attributes">
  15269. <items count="2">
  15270. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  15271. <X>2674</X>
  15272. <Y>1295</Y>
  15273. <W>66</W>
  15274. <H>64</H>
  15275. </item>
  15276. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  15277. <X>2705</X>
  15278. <Y>1327</Y>
  15279. </item>
  15280. </items>
  15281. </chunk>
  15282. <chunk name="param_input" index="0">
  15283. <items count="8">
  15284. <item name="Description" type_name="gh_string" type_code="10">Origin of plane</item>
  15285. <item name="InstanceGuid" type_name="gh_guid" type_code="9">7a695424-f044-41a8-9bf1-a2cbf28cc226</item>
  15286. <item name="Name" type_name="gh_string" type_code="10">Origin</item>
  15287. <item name="NickName" type_name="gh_string" type_code="10">O</item>
  15288. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  15289. <item name="Source" index="0" type_name="gh_guid" type_code="9">c54e879a-bb6c-47c6-b366-aaa5a16a426a</item>
  15290. <item name="Source" index="1" type_name="gh_guid" type_code="9">83dc0e24-1c12-445e-8647-dffc452baa6a</item>
  15291. <item name="SourceCount" type_name="gh_int32" type_code="3">2</item>
  15292. </items>
  15293. <chunks count="2">
  15294. <chunk name="Attributes">
  15295. <items count="2">
  15296. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  15297. <X>2676</X>
  15298. <Y>1297</Y>
  15299. <W>14</W>
  15300. <H>20</H>
  15301. </item>
  15302. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  15303. <X>2684.5</X>
  15304. <Y>1307</Y>
  15305. </item>
  15306. </items>
  15307. </chunk>
  15308. <chunk name="PersistentData">
  15309. <items count="1">
  15310. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  15311. </items>
  15312. <chunks count="1">
  15313. <chunk name="Branch" index="0">
  15314. <items count="2">
  15315. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  15316. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  15317. </items>
  15318. <chunks count="1">
  15319. <chunk name="Item" index="0">
  15320. <!--GH_Point only stores data which exists, test the existence of data fields prior to reading.-->
  15321. <items count="1">
  15322. <item name="Coordinate" type_name="gh_point3d" type_code="51">
  15323. <X>0</X>
  15324. <Y>0</Y>
  15325. <Z>0</Z>
  15326. </item>
  15327. </items>
  15328. </chunk>
  15329. </chunks>
  15330. </chunk>
  15331. </chunks>
  15332. </chunk>
  15333. </chunks>
  15334. </chunk>
  15335. <chunk name="param_input" index="1">
  15336. <items count="7">
  15337. <item name="Description" type_name="gh_string" type_code="10">X-Axis direction of plane</item>
  15338. <item name="InstanceGuid" type_name="gh_guid" type_code="9">c61582e5-1354-459b-babb-382f6952792a</item>
  15339. <item name="Name" type_name="gh_string" type_code="10">X-Axis</item>
  15340. <item name="NickName" type_name="gh_string" type_code="10">X</item>
  15341. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  15342. <item name="Source" index="0" type_name="gh_guid" type_code="9">a09f5810-c5e6-41cf-a732-76ade1d918e1</item>
  15343. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  15344. </items>
  15345. <chunks count="2">
  15346. <chunk name="Attributes">
  15347. <items count="2">
  15348. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  15349. <X>2676</X>
  15350. <Y>1317</Y>
  15351. <W>14</W>
  15352. <H>20</H>
  15353. </item>
  15354. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  15355. <X>2684.5</X>
  15356. <Y>1327</Y>
  15357. </item>
  15358. </items>
  15359. </chunk>
  15360. <chunk name="PersistentData">
  15361. <items count="1">
  15362. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  15363. </items>
  15364. <chunks count="1">
  15365. <chunk name="Branch" index="0">
  15366. <items count="2">
  15367. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  15368. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  15369. </items>
  15370. <chunks count="1">
  15371. <chunk name="Item" index="0">
  15372. <items count="1">
  15373. <item name="vector" type_name="gh_point3d" type_code="51">
  15374. <X>1</X>
  15375. <Y>0</Y>
  15376. <Z>0</Z>
  15377. </item>
  15378. </items>
  15379. </chunk>
  15380. </chunks>
  15381. </chunk>
  15382. </chunks>
  15383. </chunk>
  15384. </chunks>
  15385. </chunk>
  15386. <chunk name="param_input" index="2">
  15387. <items count="7">
  15388. <item name="Description" type_name="gh_string" type_code="10">Y-Axis direction of plane</item>
  15389. <item name="InstanceGuid" type_name="gh_guid" type_code="9">ec988c3e-fd2b-4d2b-aa6a-5e3a9c15a503</item>
  15390. <item name="Name" type_name="gh_string" type_code="10">Y-Axis</item>
  15391. <item name="NickName" type_name="gh_string" type_code="10">Y</item>
  15392. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  15393. <item name="Source" index="0" type_name="gh_guid" type_code="9">fdc6f14b-d2af-4143-9fa5-98d72e1496f4</item>
  15394. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  15395. </items>
  15396. <chunks count="2">
  15397. <chunk name="Attributes">
  15398. <items count="2">
  15399. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  15400. <X>2676</X>
  15401. <Y>1337</Y>
  15402. <W>14</W>
  15403. <H>20</H>
  15404. </item>
  15405. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  15406. <X>2684.5</X>
  15407. <Y>1347</Y>
  15408. </item>
  15409. </items>
  15410. </chunk>
  15411. <chunk name="PersistentData">
  15412. <items count="1">
  15413. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  15414. </items>
  15415. <chunks count="1">
  15416. <chunk name="Branch" index="0">
  15417. <items count="2">
  15418. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  15419. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  15420. </items>
  15421. <chunks count="1">
  15422. <chunk name="Item" index="0">
  15423. <items count="1">
  15424. <item name="vector" type_name="gh_point3d" type_code="51">
  15425. <X>0</X>
  15426. <Y>1</Y>
  15427. <Z>0</Z>
  15428. </item>
  15429. </items>
  15430. </chunk>
  15431. </chunks>
  15432. </chunk>
  15433. </chunks>
  15434. </chunk>
  15435. </chunks>
  15436. </chunk>
  15437. <chunk name="param_output" index="0">
  15438. <items count="6">
  15439. <item name="Description" type_name="gh_string" type_code="10">Constructed plane</item>
  15440. <item name="InstanceGuid" type_name="gh_guid" type_code="9">f5ef3118-8c76-4765-bdd9-16087c3ebb2d</item>
  15441. <item name="Name" type_name="gh_string" type_code="10">Plane</item>
  15442. <item name="NickName" type_name="gh_string" type_code="10">Pl</item>
  15443. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  15444. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  15445. </items>
  15446. <chunks count="1">
  15447. <chunk name="Attributes">
  15448. <items count="2">
  15449. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  15450. <X>2720</X>
  15451. <Y>1297</Y>
  15452. <W>18</W>
  15453. <H>60</H>
  15454. </item>
  15455. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  15456. <X>2729</X>
  15457. <Y>1327</Y>
  15458. </item>
  15459. </items>
  15460. </chunk>
  15461. </chunks>
  15462. </chunk>
  15463. </chunks>
  15464. </chunk>
  15465. </chunks>
  15466. </chunk>
  15467. <chunk name="Object" index="126">
  15468. <items count="2">
  15469. <item name="GUID" type_name="gh_guid" type_code="9">079bd9bd-54a0-41d4-98af-db999015f63d</item>
  15470. <item name="Name" type_name="gh_string" type_code="10">VB Script</item>
  15471. </items>
  15472. <chunks count="1">
  15473. <chunk name="Container">
  15474. <items count="10">
  15475. <item name="AdditionalSource" type_name="gh_string" type_code="10"> Private Function IsSet(ByVal param As String) As Boolean ' Check if an input parameter has data
  15476. Dim i As Integer = Component.Params.IndexOfInputParam(param)
  15477. If i &gt; -1 Then
  15478. Return Component.Params.Input.ElementAt(i).DataType &gt; 1 ' input parameter DataType of 1 means it's not receiving input (internal or external)
  15479. Else
  15480. Msg("error", "Input parameter '" &amp; param &amp; "' not found")
  15481. Return False
  15482. End If
  15483. End Function
  15484. Private Sub Msg(ByVal type As String, ByVal msg As String) ' Output an error, warning, or informational message
  15485. Select Case type
  15486. Case "error"
  15487. Component.AddRuntimeMessage(GH_RuntimeMessageLevel.Error, msg)
  15488. Print("Error: " &amp; msg)
  15489. Case "warning"
  15490. Component.AddRuntimeMessage(GH_RuntimeMessageLevel.Warning, msg)
  15491. Print("Warning: " &amp; msg)
  15492. Case "info"
  15493. Component.AddRuntimeMessage(GH_RuntimeMessageLevel.Remark, msg)
  15494. Print(msg)
  15495. End Select
  15496. End Sub
  15497. ' Solve for the m parameter from length and width (reference {1} equation (34), except b = width and K(k) and E(k) should be K(m) and E(m))
  15498. Private Function SolveMFromLenWid(ByVal L As Double, ByVal w As Double) As Double
  15499. If w = 0 Then
  15500. Return Defined.M_ZERO_W ' for the boundry condition width = 0, bypass the function and return the known m value
  15501. End If
  15502. Dim n As Integer = 1 ' Iteration counter (quit if &gt;MAXIT)
  15503. Dim lower As Double = 0 ' m must be within this range
  15504. Dim upper As Double = 1
  15505. Dim m As Double
  15506. Dim cwl As Double
  15507. Do While (upper - lower) &gt; Defined.MAXERR AndAlso (n) &lt; Defined.MAXIT ' Repeat until range narrow enough or MAXIT
  15508. m = (upper + lower) / 2
  15509. cwl = 2 * EllipticE(m) / EllipticK(m) - 1 ' calculate w/L with the test value of m
  15510. If cwl &lt; w / L Then ' compares the calculated w/L with the actual w/L then narrows the range of possible m
  15511. upper = m
  15512. Else
  15513. lower = m
  15514. End If
  15515. n += 1
  15516. Loop
  15517. Return m
  15518. End Function
  15519. ' Solve for the m parameter from length and height (reference {1} equation (33), except K(k) should be K(m) and k = sqrt(m))
  15520. ' Note that it's actually possible to find 2 valid values for m (hence 2 width values) at certain height values
  15521. Private Function SolveMFromLenHt(ByVal L As Double, ByVal h As Double) As List(Of Double)
  15522. Dim n As Integer = 1 ' Iteration counter (quit if &gt;MAXIT)
  15523. Dim lower As Double = 0 ' m must be within this range
  15524. Dim upper As Double = 1
  15525. Dim twoWidths As Boolean = h / L &gt;= Defined.DOUBLE_W_HL_RATIO And h / L &lt; Defined.MAX_HL_RATIO ' check to see if h/L is within the range where 2 solutions for the width are possible
  15526. Dim m As Double
  15527. Dim mult_m As New List(Of Double)
  15528. Dim chl As Double
  15529. If twoWidths Then
  15530. ' find the first of two possible solutions for m with the following limits:
  15531. lower = Defined.M_DOUBLE_W ' see constants at bottom of script
  15532. upper = Defined.M_MAXHEIGHT ' see constants at bottom of script
  15533. Do While (upper - lower) &gt; Defined.MAXERR AndAlso (n) &lt; Defined.MAXIT ' Repeat until range narrow enough or MAXIT
  15534. m = (upper + lower) / 2
  15535. chl = Math.Sqrt(m) / EllipticK(m) ' calculate h/L with the test value of m
  15536. If chl &gt; h / L Then ' compares the calculated h/L with the actual h/L then narrows the range of possible m
  15537. upper = m
  15538. Else
  15539. lower = m
  15540. End If
  15541. n += 1
  15542. Loop
  15543. mult_m.Add(m)
  15544. ' then find the second of two possible solutions for m with the following limits:
  15545. lower = Defined.M_MAXHEIGHT ' see constants at bottom of script
  15546. upper = 1
  15547. Do While (upper - lower) &gt; Defined.MAXERR AndAlso (n) &lt; Defined.MAXIT ' Repeat until range narrow enough or MAXIT
  15548. m = (upper + lower) / 2
  15549. chl = Math.Sqrt(m) / EllipticK(m) ' calculate h/L with the test value of m
  15550. If chl &lt; h / L Then ' compares the calculated h/L with the actual h/L then narrows the range of possible m
  15551. upper = m
  15552. Else
  15553. lower = m
  15554. End If
  15555. n += 1
  15556. Loop
  15557. If m &lt;= Defined.M_MAX Then ' return this m parameter only if it falls within the maximum useful value (above which the curve breaks down)
  15558. mult_m.Add(m)
  15559. End If
  15560. Else
  15561. ' find the one possible solution for the m parameter
  15562. upper = Defined.M_DOUBLE_W ' limit the upper end of the search to the maximum value of m for which only one solution exists
  15563. Do While (upper - lower) &gt; Defined.MAXERR AndAlso (n) &lt; Defined.MAXIT ' Repeat until range narrow enough or MAXIT
  15564. m = (upper + lower) / 2
  15565. chl = Math.Sqrt(m) / EllipticK(m) ' calculate h/L with the test value of m
  15566. If chl &gt; h / L Then ' compares the calculated h/L with the actual h/L then narrows the range of possible m
  15567. upper = m
  15568. Else
  15569. lower = m
  15570. End If
  15571. n += 1
  15572. Loop
  15573. mult_m.Add(m)
  15574. End If
  15575. Return mult_m
  15576. End Function
  15577. ' Solve for the m parameter from width and height (derived from reference {1} equations (33) and (34) with same notes as above)
  15578. Private Function SolveMFromWidHt(ByVal w As Double, ByVal h As Double) As Double
  15579. Dim n As Integer = 1 ' Iteration counter (quit if &gt;MAXIT)
  15580. Dim lower As Double = 0 ' m must be within this range
  15581. Dim upper As Double = 1
  15582. Dim m As Double
  15583. Dim cwh As Double
  15584. Do While (upper - lower) &gt; Defined.MAXERR AndAlso (n) &lt; Defined.MAXIT ' Repeat until range narrow enough or MAXIT
  15585. m = (upper + lower) / 2
  15586. cwh = (2 * EllipticE(m) - EllipticK(m)) / Math.Sqrt(m) ' calculate w/h with the test value of m
  15587. If cwh &lt; w / h Then ' compares the calculated w/h with the actual w/h then narrows the range of possible m
  15588. upper = m
  15589. Else
  15590. lower = m
  15591. End If
  15592. n += 1
  15593. Loop
  15594. Return m
  15595. End Function
  15596. ' Calculate length based on height and an m parameter, derived from reference {1} equation (33), except K(k) should be K(m) and k = sqrt(m)
  15597. Private Function Cal_L(ByVal h As Double, ByVal m As Double) As Double
  15598. Return h * EllipticK(m) / Math.Sqrt(m)
  15599. End Function
  15600. ' Calculate width based on length and an m parameter, derived from reference {1} equation (34), except b = width and K(k) and E(k) should be K(m) and E(m)
  15601. Private Function Cal_W(ByVal L As Double, ByVal m As Double) As Double
  15602. Return L * (2 * EllipticE(m) / EllipticK(m) - 1)
  15603. End Function
  15604. ' Calculate height based on length and an m parameter, from reference {1} equation (33), except K(k) should be K(m) and k = sqrt(m)
  15605. Private Function Cal_H(ByVal L As Double, ByVal m As Double) As Double
  15606. Return L * Math.Sqrt(m) / EllipticK(m)
  15607. End Function
  15608. ' Calculate the unique m parameter based on a start tangent angle, from reference {2}, just above equation (9a), that states k = Sin(angle / 2 + Pi / 4),
  15609. ' but as m = k^2 and due to this script's need for an angle rotated 90° versus the one in reference {1}, the following formula is the result
  15610. ' New note: verified by reference {4}, pg. 78 at the bottom
  15611. Private Function Cal_M(ByVal a As Double) As Double
  15612. Return (1 - Math.Cos(a)) / 2 ' equal to Sin^2(a/2) too
  15613. End Function
  15614. ' Calculate start tangent angle based on an m parameter, derived from above formula
  15615. Private Function Cal_A(ByVal m As Double) As Double
  15616. Return Math.Acos(1 - 2 * m)
  15617. End Function
  15618. ' This is the heart of this script, taking the found (or specified) length, width, and angle values along with the found m parameter to create
  15619. ' a list of points that approximate the shape or form of the elastica. It works by finding the x and y coordinates (which are reversed versus
  15620. ' the original equations (12a) and (12b) from reference {2} due to the 90° difference in orientation) based on the tangent angle along the curve.
  15621. ' See reference {2} for more details on how they derived it. Note that to simplify things, the algorithm only calculates the points for half of the
  15622. ' curve, then mirrors those points along the y-axis.
  15623. Private Function FindBendForm(ByVal L As Double, ByVal w As Double, ByVal m As Double, ByVal ang As Double, ByVal refPln As Plane) As List(Of Point3d)
  15624. L = L / 2 ' because the below algorithm is based on the formulas in reference {2} for only half of the curve
  15625. w = w / 2 ' same
  15626. If ang = 0 Then ' if angle (and height) = 0, then simply return the start and end points of the straight line
  15627. Dim out As New List(Of Point3d)
  15628. out.Add(refPln.PointAt(w, 0, 0))
  15629. out.Add(refPln.PointAt(-w, 0, 0))
  15630. Return out
  15631. End If
  15632. Dim x As Double
  15633. Dim y As Double
  15634. Dim halfCurvePts As New List(Of Point3d)
  15635. Dim fullCurvePts As New List(Of Point3d)
  15636. Dim translatedPts As New List(Of Point3d)
  15637. ang -= Math.PI / 2 ' a hack to allow this algorithm to work, since the original curve in paper {2} was rotated 90°
  15638. Dim angB As Double = ang + (-Math.PI / 2 - ang) / Defined.CURVEDIVS ' angB is the 'lowercase theta' which should be in formula {2}(12b) as the interval
  15639. ' start [a typo...see equation(3)]. It's necessary to start angB at ang + [interval] instead of just ang due to integration failing at angB = ang
  15640. halfCurvePts.Add(New Point3d(w, 0, 0)) ' start with this known initial point, as integration will fail when angB = ang
  15641. ' each point {x, y} is calculated from the tangent angle, angB, that occurs at each point (which is why this iterates from ~ang to -pi/2, the known end condition)
  15642. Do While Math.Round(angB, Defined.ROUNDTO) &gt;= Math.Round(-Math.PI / 2, Defined.ROUNDTO)
  15643. y = (Math.Sqrt(2) * Math.Sqrt(Math.Sin(ang) - Math.Sin(angB)) * (w + L)) / (2 * EllipticE(m)) ' note that x and y are swapped vs. (12a) and (12b)
  15644. x = (L / (Math.Sqrt(2) * EllipticK(m))) * Simpson(angB, -Math.PI / 2, 500, ang) ' calculate the Simpson approximation of the integral (function f below)
  15645. ' over the interval angB ('lowercase theta') to -pi/2. side note: is 500 too few iterations for the Simson algorithm?
  15646. If Math.Round(x, Defined.ROUNDTO) = 0 Then x = 0
  15647. halfCurvePts.Add(New Point3d(x, y, 0))
  15648. angB += (-Math.PI / 2 - ang) / Defined.CURVEDIVS ' onto the next tangent angle
  15649. Loop
  15650. ' After finding the x and y values for half of the curve, add the {-x, y} values for the rest of the curve
  15651. For Each point As Point3d In halfCurvePts
  15652. If Math.Round(point.X, Defined.ROUNDTO) = 0 Then
  15653. If Math.Round(point.Y, Defined.ROUNDTO) = 0 Then
  15654. fullCurvePts.Add(New Point3d(0, 0, 0)) ' special case when width = 0: when x = 0, only duplicate the point when y = 0 too
  15655. End If
  15656. Else
  15657. fullCurvePts.Add(New Point3d(-point.X, point.Y, 0))
  15658. End If
  15659. Next
  15660. halfCurvePts.Reverse
  15661. fullCurvePts.AddRange(halfCurvePts)
  15662. For Each p As Point3d In fullCurvePts
  15663. translatedPts.Add(refPln.PointAt(p.X, p.Y, p.Z)) ' translate the points from the reference plane to the world plane
  15664. Next
  15665. Return translatedPts
  15666. End Function
  15667. ' Interpolates the points from FindBendForm to create the Elastica curve. Uses start &amp; end tangents for greater accuracy.
  15668. Private Function MakeCurve(ByVal pts As List(Of Point3d), ByVal ang As Double, ByVal refPln As Plane) As Curve
  15669. If ang &lt;&gt; 0 Then
  15670. Dim ts, te As New Vector3d(refPln.XAxis)
  15671. ts.Rotate(ang, refPln.ZAxis)
  15672. te.Rotate(-ang, refPln.ZAxis)
  15673. Return Curve.CreateInterpolatedCurve(pts, 3, CurveKnotStyle.Chord, ts, te) ' 3rd degree curve with 'Chord' Knot Style
  15674. Else
  15675. Return Curve.CreateInterpolatedCurve(pts, 3) ' if angle (and height) = 0, then simply interpolate the straight line (no start/end tangents)
  15676. End If
  15677. End Function
  15678. ' Implements the Simpson approximation for an integral of function f below
  15679. Public Function Simpson(a As Double, b As Double, n As Integer, theta As Double) As Double 'n should be an even number
  15680. Dim j As Integer, s1 As Double, s2 As Double, h As Double
  15681. h = (b - a) / n
  15682. s1 = 0
  15683. s2 = 0
  15684. For j = 1 To n - 1 Step 2
  15685. s1 = s1 + fn(a + j * h, theta)
  15686. Next j
  15687. For j = 2 To n - 2 Step 2
  15688. s2 = s2 + fn(a + j * h, theta)
  15689. Next j
  15690. Simpson = h / 3 * (fn(a, theta) + 4 * s1 + 2 * s2 + fn(b, theta))
  15691. End Function
  15692. ' Specific calculation for the above integration
  15693. Public Function fn(x As Double, theta As Double) As Double
  15694. fn = Math.Sin(x) / (Math.Sqrt(Math.Sin(theta) - Math.Sin(x))) ' from reference {2} formula (12b)
  15695. End Function
  15696. ' Return the Complete Elliptic integral of the 1st kind
  15697. ' Abramowitz and Stegun p.591, formula 17.3.11
  15698. ' Code from http://www.codeproject.com/Articles/566614/Elliptic-integrals
  15699. Public Function EllipticK(ByVal m As Double) As Double
  15700. Dim sum, term, above, below As Double
  15701. sum = 1
  15702. term = 1
  15703. above = 1
  15704. below = 2
  15705. For i As Integer = 1 To 100
  15706. term *= above / below
  15707. sum += Math.Pow(m, i) * Math.Pow(term, 2)
  15708. above += 2
  15709. below += 2
  15710. Next
  15711. sum *= 0.5 * Math.PI
  15712. Return sum
  15713. End Function
  15714. ' Return the Complete Elliptic integral of the 2nd kind
  15715. ' Abramowitz and Stegun p.591, formula 17.3.12
  15716. ' Code from http://www.codeproject.com/Articles/566614/Elliptic-integrals
  15717. Public Function EllipticE(ByVal m As Double) As Double
  15718. Dim sum, term, above, below As Double
  15719. sum = 1
  15720. term = 1
  15721. above = 1
  15722. below = 2
  15723. For i As Integer = 1 To 100
  15724. term *= above / below
  15725. sum -= Math.Pow(m, i) * Math.Pow(term, 2) / above
  15726. above += 2
  15727. below += 2
  15728. Next
  15729. sum *= 0.5 * Math.PI
  15730. Return sum
  15731. End Function
  15732. Friend Partial NotInheritable Class Defined
  15733. Private Sub New()
  15734. End Sub
  15735. ' Note: most of these values for m and h/L ratio were found with Wolfram Alpha and either specific intercepts (x=0) or local minima/maxima. They should be constant.
  15736. Public Const M_SKETCHY As Double = 0.95 ' value of the m parameter where the curvature near the ends of the curve gets wonky
  15737. Public Const M_MAX As Double = 0.993 ' maximum useful value of the m parameter, above which this algorithm for the form of the curve breaks down
  15738. Public Const M_ZERO_W As Double = 0.826114765984970336 ' value of the m parameter when width = 0
  15739. Public Const M_MAXHEIGHT As Double = 0.701327460663101223 ' value of the m parameter at maximum possible height of the bent rod/wire
  15740. Public Const M_DOUBLE_W As Double = 0.180254422335013983 ' minimum value of the m parameter when two width values are possible for a given height and length
  15741. Public Const DOUBLE_W_HL_RATIO As Double = 0.257342117984635757 ' value of the height/length ratio above which there are two possible width values
  15742. Public Const MAX_HL_RATIO As Double = 0.403140189705650243 ' maximum possible value of the height/length ratio
  15743. Public Const MAXERR As Double = 0.0000000001 ' error tolerance
  15744. Public Const MAXIT As Integer = 100 ' maximum number of iterations
  15745. Public Const ROUNDTO As Integer = 10 ' number of decimal places to round off to
  15746. Public Const CURVEDIVS As Integer = 50 ' number of sample points for building the curve (or half-curve as it were)
  15747. End Class</item>
  15748. <item name="Description" type_name="gh_string" type_code="10">A VB.NET scriptable component</item>
  15749. <item name="EditorPosition" type_name="gh_drawing_point" type_code="30">
  15750. <X>98</X>
  15751. <Y>86</Y>
  15752. </item>
  15753. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  15754. <item name="InstanceGuid" type_name="gh_guid" type_code="9">efeac80e-aaa9-43ef-acff-f0dc08a37ca1</item>
  15755. <item name="Name" type_name="gh_string" type_code="10">VB Script</item>
  15756. <item name="NickName" type_name="gh_string" type_code="10">VB</item>
  15757. <item name="OutParameter" type_name="gh_bool" type_code="1">true</item>
  15758. <item name="ReferenceCount" type_name="gh_int32" type_code="3">0</item>
  15759. <item name="ScriptSource" type_name="gh_string" type_code="10"> ' -----------------------------------------------------------------
  15760. ' Elastic Bending Script by Will McElwain
  15761. ' Created February 2014
  15762. '
  15763. ' DESCRIPTION:
  15764. ' This beast creates the so-called 'elastica curve', the shape a long, thin rod or wire makes when it is bent elastically (i.e. not permanently). In this case, force
  15765. ' is assumed to only be applied horizontally (which would be in line with the rod at rest) and both ends are assumed to be pinned or hinged meaning they are free
  15766. ' to rotate (as opposed to clamped, when the end tangent angle is fixed, usually horizontally). An interesting finding is that it doesn't matter what the material or
  15767. ' cross-sectional area is, as long as they're uniform along the entire length. Everything makes the same shape when bent as long as it doesn't cross the threshold
  15768. ' from elastic to plastic (permanent) deformation (I don't bother to find that limit here, but can be found if the yield stress for a material is known).
  15769. '
  15770. ' Key to the formulas used in this script are elliptic integrals, specifically K(m), the complete elliptic integral of the first kind, and E(m), the complete elliptic
  15771. ' integral of the second kind. There was a lot of confusion over the 'm' and 'k' parameters for these functions, as some people use them interchangeably, but they are
  15772. ' not the same. m = k^2 (thus k = Sqrt(m)). I try to use the 'm' parameter exclusively to avoid this confusion. Note that there is a unique 'm' parameter for every
  15773. ' configuration/shape of the elastica curve.
  15774. '
  15775. ' This script tries to find that unique 'm' parameter based on the inputs. The algorithm starts with a test version of m, evaluates an expression, say 2*E(m)/K(m)-1,
  15776. ' then compares the result to what it should be (in this case, a known width/length ratio). Iterate until the correct m is found. Once we have m, we can then calculate
  15777. ' all of the other unknowns, then find points that lie on that curve, then interpolate those points for the actual curve. You can also use Wolfram|Alpha as I did to
  15778. ' find the m parameter based on the equations in this script (example here: http://tiny.cc/t4tpbx for when say width=45.2 and length=67.1).
  15779. '
  15780. ' Other notes:
  15781. ' * This script works with negative values for width, which will creat a self-intersecting curve (as it should). The curvature of the elastica starts to break down around
  15782. ' m=0.95 (~154°), but this script will continue to work until M_MAX, m=0.993 (~169°). If you wish to ignore self-intersecting curves, set ignoreSelfIntersecting to True
  15783. ' * When the only known values are length and height, it is actually possible for certain ratios of height to length to have two valid m values (thus 2 possible widths
  15784. ' and angles). This script will return them both.
  15785. ' * Only the first two valid parameters (of the required ones) will be used, meaning if all four are connected (length, width or a PtB, height, and angle), this script will
  15786. ' only use length and width (or a PtB).
  15787. ' * Depending on the magnitude of your inputs (say if they're really small, like if length &lt; 10), you might have to increase the constant ROUNDTO at the bottom
  15788. '
  15789. ' REFERENCES:
  15790. ' {1} "The elastic rod" by M.E. Pacheco Q. &amp; E. Pina, http://www.scielo.org.mx/pdf/rmfe/v53n2/v53n2a8.pdf
  15791. ' {2} "An experiment in nonlinear beam theory" by A. Valiente, http://www.deepdyve.com/lp/doc/I3lwnxdfGz , also here: http://tiny.cc/Valiente_AEiNBT
  15792. ' {3} "Snap buckling, writhing and Loop formation In twisted rods" by V.G.A. GOSS, http://myweb.lsbu.ac.uk/~gossga/thesisFinal.pdf
  15793. ' {4} "Theory of Elastic Stability" by Stephen Timoshenko, http://www.scribd.com/doc/50402462/Timoshenko-Theory-of-Elastic-Stability (start on p. 76)
  15794. '
  15795. ' INPUT:
  15796. ' PtA - First anchor point (required)
  15797. ' PtB - Second anchor point (optional, though 2 out of the 4--length, width, height, angle--need to be specified)
  15798. ' [note that PtB can be the same as PtA (meaning width would be zero)]
  15799. ' [also note that if a different width is additionally specified that's not equal to the distance between PtA and PtB, then the end point will not equal PtB anymore]
  15800. ' Pln - Plane of the bent rod/wire, which bends up in the +y direction. The line between PtA and PtB (if specified) must be parallel to the x-axis of this plane
  15801. '
  15802. ' ** 2 of the following 4 need to be specified **
  15803. ' Len - Length of the rod/wire, which needs to be &gt; 0
  15804. ' Wid - Width between the endpoints of the curve [note: if PtB is specified in addition, and distance between PtA and PtB &lt;&gt; width, the end point will be relocated
  15805. ' Ht - Height of the bent rod/wire (when negative, curve will bend downward, relative to the input plane, instead)
  15806. ' Ang - Inner departure angle or tangent angle (in radians) at the ends of the bent rod/wire. Set up so as width approaches length (thus height approaches zero), angle approaches zero
  15807. '
  15808. ' * Following variables only needed for optional calculating of bending force, not for shape of curve.
  15809. ' E - Young's modulus (modulus of elasticity) in GPa (=N/m^2) (material-specific. for example, 7075 aluminum is roughly 71.7 GPa)
  15810. ' I - Second moment of area (or area moment of inertia) in m^4 (cross-section-specific. for example, a hollow rod
  15811. ' would have I = pi * (outer_diameter^4 - inner_diameter^4) / 32
  15812. ' Note: E*I is also known as flexural rigidity or bending stiffness
  15813. '
  15814. ' OUTPUT:
  15815. ' out - only for debugging messages
  15816. ' Pts - the list of points that approximate the shape of the elastica
  15817. ' Crv - the 3rd-degree curve interpolated from those points (with accurate start &amp; end tangents)
  15818. ' L - the length of the rod/wire
  15819. ' W - the distance (width) between the endpoints of the rod/wire
  15820. ' H - the height of the bent rod/wire
  15821. ' A - the tangent angle at the (start) end of the rod/wire
  15822. ' F - the force needed to hold the rod/wire in a specific shape (based on the material properties &amp; cross-section) **be sure your units for 'I' match your units for the
  15823. ' rest of your inputs (length, width, etc.). Also note that the critical buckling load (force) that makes the rod/wire start to bend can be found at height=0
  15824. '
  15825. ' THANKS TO:
  15826. ' Mårten Nettelbladt (thegeometryofbending.blogspot.com)
  15827. ' Daniel Piker (Kangaroo plugin)
  15828. ' David Rutten (Grasshopper guru)
  15829. ' Euler &amp; Bernoulli (the O.G.'s)
  15830. '
  15831. ' -----------------------------------------------------------------
  15832. Dim ignoreSelfIntersecting As Boolean = False ' set to True if you don't want to output curves where width &lt; 0, which creates a self-intersecting curve
  15833. Dim inCt As Integer = 0 ' count the number of required parameters that are receiving data
  15834. Dim length As Double
  15835. Dim width As System.Object = Nothing ' need to set as Nothing so we can check if it has been assigned a value later
  15836. Dim height As Double
  15837. Dim angle As Double
  15838. Dim m As Double
  15839. Dim multiple_m As New List(Of Double)
  15840. Dim AtoB As Line
  15841. Dim flip_H As Boolean = False ' if height is negative, this flag will be set
  15842. Dim flip_A As Boolean = False ' if angle is negative, this flag will be set
  15843. If Not IsSet("Pln") Then
  15844. Msg("error", "Base plane is not set")
  15845. Return
  15846. End If
  15847. If Not IsSet("PtA") Then
  15848. Msg("error", "Point A is not set")
  15849. Return
  15850. End If
  15851. If Math.Round(Pln.DistanceTo(PtA), Defined.ROUNDTO) &lt;&gt; 0 Then
  15852. Msg("error", "Point A is not on the base plane")
  15853. Return
  15854. End If
  15855. Dim refPlane As Plane = Pln ' create a reference plane = input plane and set the origin of it to PtA in case PtA isn't the origin already
  15856. refPlane.Origin = PtA
  15857. If IsSet("PtB") Then
  15858. If Math.Round(Pln.DistanceTo(PtB), Defined.ROUNDTO) &lt;&gt; 0 Then
  15859. Msg("error", "Point B is not on the base plane")
  15860. Return
  15861. End If
  15862. AtoB = New Line(PtA, PtB)
  15863. If AtoB.Length &lt;&gt; 0 And Not AtoB.Direction.IsPerpendicularTo(Pln.YAxis) Then
  15864. Msg("error", "The line between PtA and PtB is not perpendicular to the Y-axis of the specified plane")
  15865. Return
  15866. End If
  15867. inCt += 1
  15868. If IsSet("Wid") Then Msg("info", "Wid will override the distance between PtA and PtB. If you do not want this to happen, disconnect PtB or Wid.")
  15869. width = PtA.DistanceTo(PtB) ' get the width (distance) between PtA and PtB
  15870. Dim refPtB As Point3d
  15871. refPlane.RemapToPlaneSpace(PtB, refPtB)
  15872. If refPtB.X &lt; 0 Then width = -width ' check if PtB is to the left of PtA...if so, width is negative
  15873. End If
  15874. If IsSet("Len") Then inCt += 1
  15875. If IsSet("Wid") Then inCt += 1
  15876. If IsSet("Ht") Then inCt += 1
  15877. If IsSet("Ang") Then inCt += 1
  15878. If inCt &gt; 2 Then Msg("info", "More parameters set than are required (out of length, width, height, angle). Only using the first two valid ones.")
  15879. ' check for connected/specified inputs. note: only the first two that it comes across will be used
  15880. If IsSet("Len") Then ' if length is specified then...
  15881. If Len &lt;= 0 Then
  15882. Msg("error", "Length cannot be negative or zero")
  15883. Return
  15884. End If
  15885. If IsSet("Wid") Then ' find height &amp; angle based on length and specified width
  15886. If Wid &gt; Len Then
  15887. Msg("error", "Width is greater than length")
  15888. Return
  15889. End If
  15890. If Wid = Len Then ' skip the solver and set the known values
  15891. height = 0
  15892. m = 0
  15893. angle = 0
  15894. width = Wid
  15895. Else
  15896. m = SolveMFromLenWid(Len, Wid)
  15897. height = Cal_H(Len, m) ' L * Sqrt(m) / K(m)
  15898. angle = Cal_A(m) ' Acos(1 - 2 * m)
  15899. width = Wid
  15900. End If
  15901. Else If width IsNot Nothing Then ' find height &amp; angle based on length and calculated width (distance between PtA and PtB)
  15902. If width &gt; Len Then
  15903. Msg("error", "Width is greater than length")
  15904. Return
  15905. End If
  15906. If width = Len Then ' skip the solver and set the known values
  15907. height = 0
  15908. m = 0
  15909. angle = 0
  15910. Else
  15911. m = SolveMFromLenWid(Len, width)
  15912. height = Cal_H(Len, m) ' L * Sqrt(m) / K(m)
  15913. angle = Cal_A(m) ' Acos(1 - 2 * m)
  15914. End If
  15915. Else If IsSet("Ht") Then ' find width &amp; angle based on length and height ** possible to return 2 results **
  15916. If Math.Abs(Ht / Len) &gt; Defined.MAX_HL_RATIO Then
  15917. Msg("error", "Height not possible with given length")
  15918. Return
  15919. End If
  15920. If Ht &lt; 0 Then
  15921. Ht = -Ht ' if height is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  15922. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  15923. flip_A = True
  15924. flip_H = True
  15925. End If
  15926. If Ht = 0 Then ' skip the solver and set the known values
  15927. width = Len
  15928. angle = 0
  15929. Else
  15930. multiple_m = SolveMFromLenHt(Len, Ht) ' note that it's possible for two values of m to be found if height is close to max height
  15931. If multiple_m.Count = 1 Then ' if there's only one m value returned, calculate the width &amp; angle here. we'll deal with multiple m values later
  15932. m = multiple_m.Item(0)
  15933. width = Cal_W(Len, m) ' L * (2 * E(m) / K(m) - 1)
  15934. angle = Cal_A(m) ' Acos(1 - 2 * m)
  15935. End If
  15936. End If
  15937. height = Ht
  15938. Else If IsSet("Ang") Then ' find width &amp; height based on length and angle
  15939. If Ang &lt; 0 Then
  15940. Ang = -Ang ' if angle is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  15941. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  15942. flip_A = True
  15943. flip_H = True
  15944. End If
  15945. m = Cal_M(Ang) ' (1 - Cos(a)) / 2
  15946. If Ang = 0 Then ' skip the solver and set the known values
  15947. width = Len
  15948. height = 0
  15949. Else
  15950. width = Cal_W(Len, m) ' L * (2 * E(m) / K(m) - 1)
  15951. height = Cal_H(Len, m) ' L * Sqrt(m) / K(m)
  15952. End If
  15953. angle = Ang
  15954. Else
  15955. Msg("error", "Need to specify one more parameter in addition to length")
  15956. Return
  15957. End If
  15958. length = Len
  15959. Else If IsSet("Wid") Then ' if width is specified then...
  15960. If IsSet("Ht") Then ' find length &amp; angle based on specified width and height
  15961. If Ht &lt; 0 Then
  15962. Ht = -Ht ' if height is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  15963. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  15964. flip_A = True
  15965. flip_H = True
  15966. End If
  15967. If Ht = 0 Then ' skip the solver and set the known values
  15968. length = Wid
  15969. angle = 0
  15970. Else
  15971. m = SolveMFromWidHt(Wid, Ht)
  15972. length = Cal_L(Ht, m) ' h * K(m) / Sqrt(m)
  15973. angle = Cal_A(m) ' Acos(1 - 2 * m)
  15974. End If
  15975. height = Ht
  15976. Else If IsSet("Ang") Then ' find length &amp; height based on specified width and angle
  15977. If Wid = 0 Then
  15978. Msg("error", "Curve not possible with width = 0 and an angle as inputs")
  15979. Return
  15980. End If
  15981. If Ang &lt; 0 Then
  15982. Ang = -Ang ' if angle is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  15983. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  15984. flip_A = True
  15985. flip_H = True
  15986. End If
  15987. m = Cal_M(Ang) ' (1 - Cos(a)) / 2
  15988. If Ang = 0 Then ' skip the solver and set the known values
  15989. length = Wid
  15990. height = 0
  15991. Else
  15992. length = Wid / (2 * EllipticE(m) / EllipticK(m) - 1)
  15993. If length &lt; 0 Then
  15994. Msg("error", "Curve not possible at specified width and angle (calculated length is negative)")
  15995. Return
  15996. End If
  15997. height = Cal_H(length, m) ' L * Sqrt(m) / K(m)
  15998. End If
  15999. angle = Ang
  16000. Else
  16001. Msg("error", "Need to specify one more parameter in addition to width (Wid)")
  16002. Return
  16003. End If
  16004. width = Wid
  16005. Else If width IsNot Nothing Then ' if width is determined by PtA and PtB then...
  16006. If IsSet("Ht") Then ' find length &amp; angle based on calculated width and height
  16007. If Ht &lt; 0 Then
  16008. Ht = -Ht ' if height is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  16009. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  16010. flip_A = True
  16011. flip_H = True
  16012. End If
  16013. If Ht = 0 Then ' skip the solver and set the known values
  16014. length = width
  16015. angle = 0
  16016. Else
  16017. m = SolveMFromWidHt(width, Ht)
  16018. length = Cal_L(Ht, m) ' h * K(m) / Sqrt(m)
  16019. angle = Cal_A(m) ' Acos(1 - 2 * m)
  16020. End If
  16021. height = Ht
  16022. Else If IsSet("Ang") Then ' find length &amp; height based on calculated width and angle
  16023. If width = 0 Then
  16024. Msg("error", "Curve not possible with width = 0 and an angle as inputs")
  16025. Return
  16026. End If
  16027. If Ang &lt; 0 Then
  16028. Ang = -Ang ' if angle is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  16029. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  16030. flip_A = True
  16031. flip_H = True
  16032. End If
  16033. m = Cal_M(Ang) ' (1 - Cos(a)) / 2
  16034. If Ang = 0 Then ' skip the solver and set the known values
  16035. length = width
  16036. height = 0
  16037. Else
  16038. length = width / (2 * EllipticE(m) / EllipticK(m) - 1)
  16039. If length &lt; 0 Then
  16040. Msg("error", "Curve not possible at specified width and angle (calculated length is negative)")
  16041. Return
  16042. End If
  16043. height = Cal_H(length, m) ' L * Sqrt(m) / K(m)
  16044. End If
  16045. angle = Ang
  16046. Else
  16047. Msg("error", "Need to specify one more parameter in addition to PtA and PtB")
  16048. Return
  16049. End If
  16050. Else If IsSet("Ht") Then ' if height is specified then...
  16051. If IsSet("Ang") Then ' find length &amp; width based on height and angle
  16052. If Ht &lt; 0 Then
  16053. Ht = -Ht ' if height is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  16054. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  16055. flip_H = True
  16056. flip_A = True
  16057. End If
  16058. If Ht = 0 Then
  16059. Msg("error", "Height can't = 0 if only height and angle are specified")
  16060. Return
  16061. Else
  16062. If Ang &lt; 0 Then
  16063. Ang = -Ang ' if angle is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  16064. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  16065. flip_A = Not flip_A
  16066. flip_H = Not flip_H
  16067. End If
  16068. m = Cal_M(Ang) ' (1 - Cos(a)) / 2
  16069. If Ang = 0 Then
  16070. Msg("error", "Angle can't = 0 if only height and angle are specified")
  16071. Return
  16072. Else
  16073. length = Cal_L(Ht, m) ' h * K(m) / Sqrt(m)
  16074. width = Cal_W(length, m) ' L * (2 * E(m) / K(m) - 1)
  16075. End If
  16076. angle = Ang
  16077. End If
  16078. height = Ht
  16079. Else
  16080. Msg("error", "Need to specify one more parameter in addition to height")
  16081. Return
  16082. End If
  16083. Else If IsSet("Ang") Then
  16084. Msg("error", "Need to specify one more parameter in addition to angle")
  16085. Return
  16086. Else
  16087. Msg("error", "Need to specify two of the four parameters: length, width (or PtB), height, and angle")
  16088. Return
  16089. End If
  16090. If m &gt; Defined.M_MAX Then
  16091. Msg("error", "Form of curve not solvable with current algorithm and given inputs")
  16092. Return
  16093. End If
  16094. refPlane.Origin = refPlane.PointAt(width / 2, 0, 0) ' adjust the origin of the reference plane so that the curve is centered about the y-axis (start of the curve is at x = -width/2)
  16095. If multiple_m.Count &gt; 1 Then ' if there is more than one m value returned, calculate the width, angle, and curve for each
  16096. Dim multi_pts As New DataTree(Of Point3d)
  16097. Dim multi_crv As New List(Of Curve)
  16098. Dim tmp_pts As New List(Of Point3d)
  16099. Dim multi_W, multi_A, multi_F As New List(Of Double)
  16100. Dim j As Integer = 0 ' used for creating a new branch (GH_Path) for storing pts which is itself a list of points
  16101. For Each m_val As Double In multiple_m
  16102. width = Cal_W(length, m_val) 'length * (2 * EllipticE(m_val) / EllipticK(m_val) - 1)
  16103. If width &lt; 0 And ignoreSelfIntersecting Then
  16104. Msg("warning", "One curve is self-intersecting. To enable these, set ignoreSelfIntersecting to False")
  16105. Continue For
  16106. End If
  16107. If m_val &gt;= Defined.M_SKETCHY Then Msg("info", "Accuracy of the curve whose width = " &amp; Math.Round(width, 4) &amp; " is not guaranteed")
  16108. angle = Cal_A(m_val) 'Math.Asin(2 * m_val - 1)
  16109. refPlane.Origin = refPlane.PointAt(width / 2, 0, 0) ' adjust the origin of the reference plane so that the curve is centered about the y-axis (start of the curve is at x = -width/2)
  16110. tmp_pts = FindBendForm(length, width, m_val, angle, refPlane)
  16111. multi_pts.AddRange(tmp_pts, New GH_Path(j))
  16112. multi_crv.Add(MakeCurve(tmp_pts, angle, refPlane))
  16113. multi_W.Add(width)
  16114. If flip_A Then angle = -angle
  16115. multi_A.Add(angle)
  16116. E = E * 10 ^ 9 ' Young's modulus input E is in GPa, so we convert to Pa here (= N/m^2)
  16117. multi_F.Add(EllipticK(m_val) ^ 2 * E * I / length ^ 2) ' from reference {4} pg. 79
  16118. j += 1
  16119. refPlane.Origin = PtA ' reset the reference plane origin to PtA for the next m_val
  16120. 'Print("length=" &amp; length &amp; ", width=" &amp; width &amp; ", height=" &amp; height &amp; ", angle=" &amp; angle &amp; ", m=" &amp; m_val &amp; ", k=" &amp; Math.Sqrt(m_val) &amp; ", w/L=" &amp; width / length &amp; ", h/L=" &amp; height / length &amp; ", w/h=" &amp; width / height)
  16121. Next
  16122. ' assign the outputs
  16123. Pts = multi_pts
  16124. Crv = multi_crv
  16125. L = length
  16126. W = multi_W
  16127. If flip_H Then height = -height
  16128. H = height
  16129. A = multi_A
  16130. F = multi_F
  16131. Else ' only deal with the single m value
  16132. If m &gt;= Defined.M_SKETCHY Then Msg("info", "Accuracy of the curve at these parameters is not guaranteed")
  16133. If width &lt; 0 And ignoreSelfIntersecting Then
  16134. Msg("error", "Curve is self-intersecting. To enable these, set ignoreSelfIntersecting to False")
  16135. Return
  16136. End If
  16137. Pts = FindBendForm(length, width, m, angle, refPlane)
  16138. Crv = MakeCurve(pts, angle, refPlane)
  16139. L = length
  16140. W = width
  16141. If flip_H Then height = -height
  16142. H = height
  16143. If flip_A Then angle = -angle
  16144. A = angle
  16145. E = E * 10 ^ 9 ' Young's modulus input E is in GPa, so we convert to Pa here (= N/m^2)
  16146. F = EllipticK(m) ^ 2 * E * I / length ^ 2 ' from reference {4} pg. 79. Note: the critical buckling (that makes the rod/wire start to bend) can be found at height=0 (width=length)
  16147. 'height = Math.Sqrt(((2 * Len / 5) ^ 2 - ((Wid - Len / 5) / 2) ^ 2) ' quick approximation discovered by Mårten of 'Geometry of Bending' fame ( http://tiny.cc/it2pbx )
  16148. 'width = (Len +/- 2 * Math.Sqrt(4 * Len ^ 2 - 25 * Ht ^ 2)) / 5 ' derived from above
  16149. 'length = (2 * Math.Sqrt(15 * Ht ^ 2 + 4 * Wid ^ 2) - Wid) / 3 ' derived from above
  16150. 'Print("length=" &amp; length &amp; ", width=" &amp; width &amp; ", height=" &amp; height &amp; ", angle=" &amp; angle &amp; ", m=" &amp; m &amp; ", k=" &amp; Math.Sqrt(m) &amp; ", w/L=" &amp; width / length &amp; ", h/L=" &amp; height / length &amp; ", w/h=" &amp; width / height)
  16151. End If
  16152. </item>
  16153. </items>
  16154. <chunks count="2">
  16155. <chunk name="Attributes">
  16156. <items count="2">
  16157. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  16158. <X>2806</X>
  16159. <Y>1380</Y>
  16160. <W>84</W>
  16161. <H>184</H>
  16162. </item>
  16163. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  16164. <X>2848</X>
  16165. <Y>1472</Y>
  16166. </item>
  16167. </items>
  16168. </chunk>
  16169. <chunk name="ParameterData">
  16170. <items count="19">
  16171. <item name="InputCount" type_name="gh_int32" type_code="3">9</item>
  16172. <item name="InputId" index="0" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  16173. <item name="InputId" index="1" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  16174. <item name="InputId" index="2" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  16175. <item name="InputId" index="3" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  16176. <item name="InputId" index="4" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  16177. <item name="InputId" index="5" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  16178. <item name="InputId" index="6" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  16179. <item name="InputId" index="7" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  16180. <item name="InputId" index="8" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  16181. <item name="OutputCount" type_name="gh_int32" type_code="3">8</item>
  16182. <item name="OutputId" index="0" type_name="gh_guid" type_code="9">3ede854e-c753-40eb-84cb-b48008f14fd4</item>
  16183. <item name="OutputId" index="1" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  16184. <item name="OutputId" index="2" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  16185. <item name="OutputId" index="3" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  16186. <item name="OutputId" index="4" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  16187. <item name="OutputId" index="5" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  16188. <item name="OutputId" index="6" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  16189. <item name="OutputId" index="7" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  16190. </items>
  16191. <chunks count="17">
  16192. <chunk name="InputParam" index="0">
  16193. <items count="12">
  16194. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  16195. <item name="Description" type_name="gh_string" type_code="10">Script Variable PtA</item>
  16196. <item name="InstanceGuid" type_name="gh_guid" type_code="9">89fe7d9c-b998-43b5-8788-30064fd07e47</item>
  16197. <item name="Name" type_name="gh_string" type_code="10">PtA</item>
  16198. <item name="NickName" type_name="gh_string" type_code="10">PtA</item>
  16199. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  16200. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  16201. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  16202. <item name="Source" index="0" type_name="gh_guid" type_code="9">c54e879a-bb6c-47c6-b366-aaa5a16a426a</item>
  16203. <item name="Source" index="1" type_name="gh_guid" type_code="9">83dc0e24-1c12-445e-8647-dffc452baa6a</item>
  16204. <item name="SourceCount" type_name="gh_int32" type_code="3">2</item>
  16205. <item name="TypeHintID" type_name="gh_guid" type_code="9">e1937b56-b1da-4c12-8bd8-e34ee81746ef</item>
  16206. </items>
  16207. <chunks count="1">
  16208. <chunk name="Attributes">
  16209. <items count="2">
  16210. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  16211. <X>2808</X>
  16212. <Y>1382</Y>
  16213. <W>25</W>
  16214. <H>20</H>
  16215. </item>
  16216. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  16217. <X>2822</X>
  16218. <Y>1392</Y>
  16219. </item>
  16220. </items>
  16221. </chunk>
  16222. </chunks>
  16223. </chunk>
  16224. <chunk name="InputParam" index="1">
  16225. <items count="12">
  16226. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  16227. <item name="Description" type_name="gh_string" type_code="10">Script Variable PtB</item>
  16228. <item name="InstanceGuid" type_name="gh_guid" type_code="9">d6635d82-91c7-476c-acf5-3f2feae5d91b</item>
  16229. <item name="Name" type_name="gh_string" type_code="10">PtB</item>
  16230. <item name="NickName" type_name="gh_string" type_code="10">PtB</item>
  16231. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  16232. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  16233. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  16234. <item name="Source" index="0" type_name="gh_guid" type_code="9">72b7092f-b51c-4a8b-b457-5cc6f58de91d</item>
  16235. <item name="Source" index="1" type_name="gh_guid" type_code="9">5c0c8191-e5d5-44d8-9b74-ad7b50095c12</item>
  16236. <item name="SourceCount" type_name="gh_int32" type_code="3">2</item>
  16237. <item name="TypeHintID" type_name="gh_guid" type_code="9">e1937b56-b1da-4c12-8bd8-e34ee81746ef</item>
  16238. </items>
  16239. <chunks count="1">
  16240. <chunk name="Attributes">
  16241. <items count="2">
  16242. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  16243. <X>2808</X>
  16244. <Y>1402</Y>
  16245. <W>25</W>
  16246. <H>20</H>
  16247. </item>
  16248. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  16249. <X>2822</X>
  16250. <Y>1412</Y>
  16251. </item>
  16252. </items>
  16253. </chunk>
  16254. </chunks>
  16255. </chunk>
  16256. <chunk name="InputParam" index="2">
  16257. <items count="11">
  16258. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  16259. <item name="Description" type_name="gh_string" type_code="10">Script Variable Pln</item>
  16260. <item name="InstanceGuid" type_name="gh_guid" type_code="9">8a5ea10d-8baa-47cd-8970-989b44d90853</item>
  16261. <item name="Name" type_name="gh_string" type_code="10">Pln</item>
  16262. <item name="NickName" type_name="gh_string" type_code="10">Pln</item>
  16263. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  16264. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  16265. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  16266. <item name="Source" index="0" type_name="gh_guid" type_code="9">f5ef3118-8c76-4765-bdd9-16087c3ebb2d</item>
  16267. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  16268. <item name="TypeHintID" type_name="gh_guid" type_code="9">3897522d-58e9-4d60-b38c-978ddacfedd8</item>
  16269. </items>
  16270. <chunks count="1">
  16271. <chunk name="Attributes">
  16272. <items count="2">
  16273. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  16274. <X>2808</X>
  16275. <Y>1422</Y>
  16276. <W>25</W>
  16277. <H>20</H>
  16278. </item>
  16279. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  16280. <X>2822</X>
  16281. <Y>1432</Y>
  16282. </item>
  16283. </items>
  16284. </chunk>
  16285. </chunks>
  16286. </chunk>
  16287. <chunk name="InputParam" index="3">
  16288. <items count="10">
  16289. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  16290. <item name="Description" type_name="gh_string" type_code="10">Script Variable Len</item>
  16291. <item name="InstanceGuid" type_name="gh_guid" type_code="9">4adfaa55-4523-43d7-9887-fcfc9daa5d32</item>
  16292. <item name="Name" type_name="gh_string" type_code="10">Len</item>
  16293. <item name="NickName" type_name="gh_string" type_code="10">Len</item>
  16294. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  16295. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  16296. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  16297. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  16298. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  16299. </items>
  16300. <chunks count="1">
  16301. <chunk name="Attributes">
  16302. <items count="2">
  16303. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  16304. <X>2808</X>
  16305. <Y>1442</Y>
  16306. <W>25</W>
  16307. <H>20</H>
  16308. </item>
  16309. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  16310. <X>2822</X>
  16311. <Y>1452</Y>
  16312. </item>
  16313. </items>
  16314. </chunk>
  16315. </chunks>
  16316. </chunk>
  16317. <chunk name="InputParam" index="4">
  16318. <items count="10">
  16319. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  16320. <item name="Description" type_name="gh_string" type_code="10">Script Variable Wid</item>
  16321. <item name="InstanceGuid" type_name="gh_guid" type_code="9">8d352101-30bc-4590-8ef7-3bebef383668</item>
  16322. <item name="Name" type_name="gh_string" type_code="10">Wid</item>
  16323. <item name="NickName" type_name="gh_string" type_code="10">Wid</item>
  16324. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  16325. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  16326. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  16327. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  16328. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  16329. </items>
  16330. <chunks count="1">
  16331. <chunk name="Attributes">
  16332. <items count="2">
  16333. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  16334. <X>2808</X>
  16335. <Y>1462</Y>
  16336. <W>25</W>
  16337. <H>20</H>
  16338. </item>
  16339. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  16340. <X>2822</X>
  16341. <Y>1472</Y>
  16342. </item>
  16343. </items>
  16344. </chunk>
  16345. </chunks>
  16346. </chunk>
  16347. <chunk name="InputParam" index="5">
  16348. <items count="11">
  16349. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  16350. <item name="Description" type_name="gh_string" type_code="10">Script Variable Ht</item>
  16351. <item name="InstanceGuid" type_name="gh_guid" type_code="9">ed97f943-b85a-4bc0-84db-64b077475aca</item>
  16352. <item name="Name" type_name="gh_string" type_code="10">Ht</item>
  16353. <item name="NickName" type_name="gh_string" type_code="10">Ht</item>
  16354. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  16355. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  16356. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  16357. <item name="Source" index="0" type_name="gh_guid" type_code="9">cd2f5af0-b741-48d5-8bbd-e9695d5278d8</item>
  16358. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  16359. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  16360. </items>
  16361. <chunks count="1">
  16362. <chunk name="Attributes">
  16363. <items count="2">
  16364. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  16365. <X>2808</X>
  16366. <Y>1482</Y>
  16367. <W>25</W>
  16368. <H>20</H>
  16369. </item>
  16370. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  16371. <X>2822</X>
  16372. <Y>1492</Y>
  16373. </item>
  16374. </items>
  16375. </chunk>
  16376. </chunks>
  16377. </chunk>
  16378. <chunk name="InputParam" index="6">
  16379. <items count="10">
  16380. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  16381. <item name="Description" type_name="gh_string" type_code="10">Script Variable Ang</item>
  16382. <item name="InstanceGuid" type_name="gh_guid" type_code="9">c30d75f7-bb99-4be5-88aa-f992b8386696</item>
  16383. <item name="Name" type_name="gh_string" type_code="10">Ang</item>
  16384. <item name="NickName" type_name="gh_string" type_code="10">Ang</item>
  16385. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  16386. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  16387. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  16388. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  16389. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  16390. </items>
  16391. <chunks count="1">
  16392. <chunk name="Attributes">
  16393. <items count="2">
  16394. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  16395. <X>2808</X>
  16396. <Y>1502</Y>
  16397. <W>25</W>
  16398. <H>20</H>
  16399. </item>
  16400. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  16401. <X>2822</X>
  16402. <Y>1512</Y>
  16403. </item>
  16404. </items>
  16405. </chunk>
  16406. </chunks>
  16407. </chunk>
  16408. <chunk name="InputParam" index="7">
  16409. <items count="10">
  16410. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  16411. <item name="Description" type_name="gh_string" type_code="10">Script Variable E</item>
  16412. <item name="InstanceGuid" type_name="gh_guid" type_code="9">33bfc033-c0d3-4ebb-a5b0-659df3a0b51e</item>
  16413. <item name="Name" type_name="gh_string" type_code="10">E</item>
  16414. <item name="NickName" type_name="gh_string" type_code="10">E</item>
  16415. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  16416. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  16417. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  16418. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  16419. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  16420. </items>
  16421. <chunks count="1">
  16422. <chunk name="Attributes">
  16423. <items count="2">
  16424. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  16425. <X>2808</X>
  16426. <Y>1522</Y>
  16427. <W>25</W>
  16428. <H>20</H>
  16429. </item>
  16430. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  16431. <X>2822</X>
  16432. <Y>1532</Y>
  16433. </item>
  16434. </items>
  16435. </chunk>
  16436. </chunks>
  16437. </chunk>
  16438. <chunk name="InputParam" index="8">
  16439. <items count="10">
  16440. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  16441. <item name="Description" type_name="gh_string" type_code="10">Script Variable I</item>
  16442. <item name="InstanceGuid" type_name="gh_guid" type_code="9">66f1e54b-d2c1-43dd-8716-e6fa7a1ddeca</item>
  16443. <item name="Name" type_name="gh_string" type_code="10">I</item>
  16444. <item name="NickName" type_name="gh_string" type_code="10">I</item>
  16445. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  16446. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  16447. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  16448. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  16449. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  16450. </items>
  16451. <chunks count="1">
  16452. <chunk name="Attributes">
  16453. <items count="2">
  16454. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  16455. <X>2808</X>
  16456. <Y>1542</Y>
  16457. <W>25</W>
  16458. <H>20</H>
  16459. </item>
  16460. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  16461. <X>2822</X>
  16462. <Y>1552</Y>
  16463. </item>
  16464. </items>
  16465. </chunk>
  16466. </chunks>
  16467. </chunk>
  16468. <chunk name="OutputParam" index="0">
  16469. <items count="7">
  16470. <item name="Access" type_name="gh_int32" type_code="3">1</item>
  16471. <item name="Description" type_name="gh_string" type_code="10">Print, Reflect and Error streams</item>
  16472. <item name="InstanceGuid" type_name="gh_guid" type_code="9">be85f9e8-bde2-44f9-9bb8-80b1010c9d68</item>
  16473. <item name="Name" type_name="gh_string" type_code="10">out</item>
  16474. <item name="NickName" type_name="gh_string" type_code="10">out</item>
  16475. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  16476. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  16477. </items>
  16478. <chunks count="1">
  16479. <chunk name="Attributes">
  16480. <items count="2">
  16481. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  16482. <X>2863</X>
  16483. <Y>1382</Y>
  16484. <W>25</W>
  16485. <H>22</H>
  16486. </item>
  16487. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  16488. <X>2875.5</X>
  16489. <Y>1393.25</Y>
  16490. </item>
  16491. </items>
  16492. </chunk>
  16493. </chunks>
  16494. </chunk>
  16495. <chunk name="OutputParam" index="1">
  16496. <items count="6">
  16497. <item name="Description" type_name="gh_string" type_code="10">Output parameter Pts</item>
  16498. <item name="InstanceGuid" type_name="gh_guid" type_code="9">bacf233a-c717-41ce-b241-8552418f09f9</item>
  16499. <item name="Name" type_name="gh_string" type_code="10">Pts</item>
  16500. <item name="NickName" type_name="gh_string" type_code="10">Pts</item>
  16501. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  16502. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  16503. </items>
  16504. <chunks count="1">
  16505. <chunk name="Attributes">
  16506. <items count="2">
  16507. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  16508. <X>2863</X>
  16509. <Y>1404</Y>
  16510. <W>25</W>
  16511. <H>23</H>
  16512. </item>
  16513. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  16514. <X>2875.5</X>
  16515. <Y>1415.75</Y>
  16516. </item>
  16517. </items>
  16518. </chunk>
  16519. </chunks>
  16520. </chunk>
  16521. <chunk name="OutputParam" index="2">
  16522. <items count="6">
  16523. <item name="Description" type_name="gh_string" type_code="10">Output parameter Crv</item>
  16524. <item name="InstanceGuid" type_name="gh_guid" type_code="9">4fa97325-f527-43c0-a006-78cf944c5e40</item>
  16525. <item name="Name" type_name="gh_string" type_code="10">Crv</item>
  16526. <item name="NickName" type_name="gh_string" type_code="10">Crv</item>
  16527. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  16528. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  16529. </items>
  16530. <chunks count="1">
  16531. <chunk name="Attributes">
  16532. <items count="2">
  16533. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  16534. <X>2863</X>
  16535. <Y>1427</Y>
  16536. <W>25</W>
  16537. <H>22</H>
  16538. </item>
  16539. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  16540. <X>2875.5</X>
  16541. <Y>1438.25</Y>
  16542. </item>
  16543. </items>
  16544. </chunk>
  16545. </chunks>
  16546. </chunk>
  16547. <chunk name="OutputParam" index="3">
  16548. <items count="6">
  16549. <item name="Description" type_name="gh_string" type_code="10">Output parameter L</item>
  16550. <item name="InstanceGuid" type_name="gh_guid" type_code="9">b9ed95d2-8f4a-49e9-a734-c73e21c200b4</item>
  16551. <item name="Name" type_name="gh_string" type_code="10">L</item>
  16552. <item name="NickName" type_name="gh_string" type_code="10">L</item>
  16553. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  16554. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  16555. </items>
  16556. <chunks count="1">
  16557. <chunk name="Attributes">
  16558. <items count="2">
  16559. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  16560. <X>2863</X>
  16561. <Y>1449</Y>
  16562. <W>25</W>
  16563. <H>23</H>
  16564. </item>
  16565. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  16566. <X>2875.5</X>
  16567. <Y>1460.75</Y>
  16568. </item>
  16569. </items>
  16570. </chunk>
  16571. </chunks>
  16572. </chunk>
  16573. <chunk name="OutputParam" index="4">
  16574. <items count="6">
  16575. <item name="Description" type_name="gh_string" type_code="10">Output parameter W</item>
  16576. <item name="InstanceGuid" type_name="gh_guid" type_code="9">264cbae0-f043-490d-9121-0e45630a0b2f</item>
  16577. <item name="Name" type_name="gh_string" type_code="10">W</item>
  16578. <item name="NickName" type_name="gh_string" type_code="10">W</item>
  16579. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  16580. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  16581. </items>
  16582. <chunks count="1">
  16583. <chunk name="Attributes">
  16584. <items count="2">
  16585. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  16586. <X>2863</X>
  16587. <Y>1472</Y>
  16588. <W>25</W>
  16589. <H>22</H>
  16590. </item>
  16591. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  16592. <X>2875.5</X>
  16593. <Y>1483.25</Y>
  16594. </item>
  16595. </items>
  16596. </chunk>
  16597. </chunks>
  16598. </chunk>
  16599. <chunk name="OutputParam" index="5">
  16600. <items count="6">
  16601. <item name="Description" type_name="gh_string" type_code="10">Output parameter H</item>
  16602. <item name="InstanceGuid" type_name="gh_guid" type_code="9">1578bf3a-8211-4a77-85d0-3cd951789283</item>
  16603. <item name="Name" type_name="gh_string" type_code="10">H</item>
  16604. <item name="NickName" type_name="gh_string" type_code="10">H</item>
  16605. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  16606. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  16607. </items>
  16608. <chunks count="1">
  16609. <chunk name="Attributes">
  16610. <items count="2">
  16611. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  16612. <X>2863</X>
  16613. <Y>1494</Y>
  16614. <W>25</W>
  16615. <H>23</H>
  16616. </item>
  16617. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  16618. <X>2875.5</X>
  16619. <Y>1505.75</Y>
  16620. </item>
  16621. </items>
  16622. </chunk>
  16623. </chunks>
  16624. </chunk>
  16625. <chunk name="OutputParam" index="6">
  16626. <items count="6">
  16627. <item name="Description" type_name="gh_string" type_code="10">Output parameter A</item>
  16628. <item name="InstanceGuid" type_name="gh_guid" type_code="9">97c17859-cbbf-4962-a448-d8665c3e706a</item>
  16629. <item name="Name" type_name="gh_string" type_code="10">A</item>
  16630. <item name="NickName" type_name="gh_string" type_code="10">A</item>
  16631. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  16632. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  16633. </items>
  16634. <chunks count="1">
  16635. <chunk name="Attributes">
  16636. <items count="2">
  16637. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  16638. <X>2863</X>
  16639. <Y>1517</Y>
  16640. <W>25</W>
  16641. <H>22</H>
  16642. </item>
  16643. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  16644. <X>2875.5</X>
  16645. <Y>1528.25</Y>
  16646. </item>
  16647. </items>
  16648. </chunk>
  16649. </chunks>
  16650. </chunk>
  16651. <chunk name="OutputParam" index="7">
  16652. <items count="6">
  16653. <item name="Description" type_name="gh_string" type_code="10">Output parameter F</item>
  16654. <item name="InstanceGuid" type_name="gh_guid" type_code="9">8f3ba33f-2383-4ae9-b911-b9b6e4553a35</item>
  16655. <item name="Name" type_name="gh_string" type_code="10">F</item>
  16656. <item name="NickName" type_name="gh_string" type_code="10">F</item>
  16657. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  16658. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  16659. </items>
  16660. <chunks count="1">
  16661. <chunk name="Attributes">
  16662. <items count="2">
  16663. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  16664. <X>2863</X>
  16665. <Y>1539</Y>
  16666. <W>25</W>
  16667. <H>23</H>
  16668. </item>
  16669. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  16670. <X>2875.5</X>
  16671. <Y>1550.75</Y>
  16672. </item>
  16673. </items>
  16674. </chunk>
  16675. </chunks>
  16676. </chunk>
  16677. </chunks>
  16678. </chunk>
  16679. </chunks>
  16680. </chunk>
  16681. </chunks>
  16682. </chunk>
  16683. <chunk name="Object" index="127">
  16684. <items count="2">
  16685. <item name="GUID" type_name="gh_guid" type_code="9">c277f778-6fdf-4890-8f78-347efb23c406</item>
  16686. <item name="Name" type_name="gh_string" type_code="10">Pipe</item>
  16687. </items>
  16688. <chunks count="1">
  16689. <chunk name="Container">
  16690. <items count="4">
  16691. <item name="Description" type_name="gh_string" type_code="10">Create a pipe surface around a rail curve.</item>
  16692. <item name="InstanceGuid" type_name="gh_guid" type_code="9">a18b4542-f317-4532-9634-9ef245df4e2c</item>
  16693. <item name="Name" type_name="gh_string" type_code="10">Pipe</item>
  16694. <item name="NickName" type_name="gh_string" type_code="10">Pipe</item>
  16695. </items>
  16696. <chunks count="5">
  16697. <chunk name="Attributes">
  16698. <items count="2">
  16699. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  16700. <X>3076</X>
  16701. <Y>1319</Y>
  16702. <W>64</W>
  16703. <H>64</H>
  16704. </item>
  16705. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  16706. <X>3107</X>
  16707. <Y>1351</Y>
  16708. </item>
  16709. </items>
  16710. </chunk>
  16711. <chunk name="param_input" index="0">
  16712. <items count="7">
  16713. <item name="Description" type_name="gh_string" type_code="10">Base curve</item>
  16714. <item name="InstanceGuid" type_name="gh_guid" type_code="9">9be76020-39f2-465f-b508-f09d3f48a425</item>
  16715. <item name="Name" type_name="gh_string" type_code="10">Curve</item>
  16716. <item name="NickName" type_name="gh_string" type_code="10">C</item>
  16717. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  16718. <item name="Source" index="0" type_name="gh_guid" type_code="9">4fa97325-f527-43c0-a006-78cf944c5e40</item>
  16719. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  16720. </items>
  16721. <chunks count="1">
  16722. <chunk name="Attributes">
  16723. <items count="2">
  16724. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  16725. <X>3078</X>
  16726. <Y>1321</Y>
  16727. <W>14</W>
  16728. <H>20</H>
  16729. </item>
  16730. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  16731. <X>3086.5</X>
  16732. <Y>1331</Y>
  16733. </item>
  16734. </items>
  16735. </chunk>
  16736. </chunks>
  16737. </chunk>
  16738. <chunk name="param_input" index="1">
  16739. <items count="7">
  16740. <item name="Description" type_name="gh_string" type_code="10">Pipe radius</item>
  16741. <item name="InstanceGuid" type_name="gh_guid" type_code="9">0f317bff-3048-480b-865a-13a2e1cb5106</item>
  16742. <item name="Name" type_name="gh_string" type_code="10">Radius</item>
  16743. <item name="NickName" type_name="gh_string" type_code="10">R</item>
  16744. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  16745. <item name="Source" index="0" type_name="gh_guid" type_code="9">f2abb0db-802c-4f59-83cb-393711b4a3d9</item>
  16746. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  16747. </items>
  16748. <chunks count="2">
  16749. <chunk name="Attributes">
  16750. <items count="2">
  16751. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  16752. <X>3078</X>
  16753. <Y>1341</Y>
  16754. <W>14</W>
  16755. <H>20</H>
  16756. </item>
  16757. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  16758. <X>3086.5</X>
  16759. <Y>1351</Y>
  16760. </item>
  16761. </items>
  16762. </chunk>
  16763. <chunk name="PersistentData">
  16764. <items count="1">
  16765. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  16766. </items>
  16767. <chunks count="1">
  16768. <chunk name="Branch" index="0">
  16769. <items count="2">
  16770. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  16771. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  16772. </items>
  16773. <chunks count="1">
  16774. <chunk name="Item" index="0">
  16775. <items count="1">
  16776. <item name="number" type_name="gh_double" type_code="6">1</item>
  16777. </items>
  16778. </chunk>
  16779. </chunks>
  16780. </chunk>
  16781. </chunks>
  16782. </chunk>
  16783. </chunks>
  16784. </chunk>
  16785. <chunk name="param_input" index="2">
  16786. <items count="6">
  16787. <item name="Description" type_name="gh_string" type_code="10">Specifies the type of caps (0=None, 1=Flat, 2=Round)</item>
  16788. <item name="InstanceGuid" type_name="gh_guid" type_code="9">38981e04-97f9-4736-a46b-c55825f5b8fe</item>
  16789. <item name="Name" type_name="gh_string" type_code="10">Caps</item>
  16790. <item name="NickName" type_name="gh_string" type_code="10">E</item>
  16791. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  16792. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  16793. </items>
  16794. <chunks count="2">
  16795. <chunk name="Attributes">
  16796. <items count="2">
  16797. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  16798. <X>3078</X>
  16799. <Y>1361</Y>
  16800. <W>14</W>
  16801. <H>20</H>
  16802. </item>
  16803. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  16804. <X>3086.5</X>
  16805. <Y>1371</Y>
  16806. </item>
  16807. </items>
  16808. </chunk>
  16809. <chunk name="PersistentData">
  16810. <items count="1">
  16811. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  16812. </items>
  16813. <chunks count="1">
  16814. <chunk name="Branch" index="0">
  16815. <items count="2">
  16816. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  16817. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  16818. </items>
  16819. <chunks count="1">
  16820. <chunk name="Item" index="0">
  16821. <items count="1">
  16822. <item name="number" type_name="gh_int32" type_code="3">0</item>
  16823. </items>
  16824. </chunk>
  16825. </chunks>
  16826. </chunk>
  16827. </chunks>
  16828. </chunk>
  16829. </chunks>
  16830. </chunk>
  16831. <chunk name="param_output" index="0">
  16832. <items count="7">
  16833. <item name="Access" type_name="gh_int32" type_code="3">1</item>
  16834. <item name="Description" type_name="gh_string" type_code="10">Resulting Pipe</item>
  16835. <item name="InstanceGuid" type_name="gh_guid" type_code="9">d118f269-0338-4d1d-b06d-018819a25f1a</item>
  16836. <item name="Name" type_name="gh_string" type_code="10">Pipe</item>
  16837. <item name="NickName" type_name="gh_string" type_code="10">P</item>
  16838. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  16839. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  16840. </items>
  16841. <chunks count="1">
  16842. <chunk name="Attributes">
  16843. <items count="2">
  16844. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  16845. <X>3122</X>
  16846. <Y>1321</Y>
  16847. <W>16</W>
  16848. <H>60</H>
  16849. </item>
  16850. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  16851. <X>3130</X>
  16852. <Y>1351</Y>
  16853. </item>
  16854. </items>
  16855. </chunk>
  16856. </chunks>
  16857. </chunk>
  16858. </chunks>
  16859. </chunk>
  16860. </chunks>
  16861. </chunk>
  16862. <chunk name="Object" index="128">
  16863. <items count="2">
  16864. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  16865. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  16866. </items>
  16867. <chunks count="1">
  16868. <chunk name="Container">
  16869. <items count="8">
  16870. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  16871. <item name="InstanceGuid" type_name="gh_guid" type_code="9">f2abb0db-802c-4f59-83cb-393711b4a3d9</item>
  16872. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  16873. <item name="NickName" type_name="gh_string" type_code="10"></item>
  16874. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  16875. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  16876. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  16877. <item name="UserText" type_name="gh_string" type_code="10">.25</item>
  16878. </items>
  16879. <chunks count="2">
  16880. <chunk name="Attributes">
  16881. <items count="5">
  16882. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  16883. <X>2955</X>
  16884. <Y>1314</Y>
  16885. <W>50</W>
  16886. <H>20</H>
  16887. </item>
  16888. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  16889. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  16890. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  16891. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  16892. <X>2955.289</X>
  16893. <Y>1314.952</Y>
  16894. </item>
  16895. </items>
  16896. </chunk>
  16897. <chunk name="PanelProperties">
  16898. <items count="7">
  16899. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  16900. <ARGB>255;255;250;90</ARGB>
  16901. </item>
  16902. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  16903. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  16904. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  16905. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  16906. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  16907. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  16908. </items>
  16909. </chunk>
  16910. </chunks>
  16911. </chunk>
  16912. </chunks>
  16913. </chunk>
  16914. <chunk name="Object" index="129">
  16915. <items count="2">
  16916. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  16917. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  16918. </items>
  16919. <chunks count="1">
  16920. <chunk name="Container">
  16921. <items count="9">
  16922. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  16923. <item name="InstanceGuid" type_name="gh_guid" type_code="9">26ed0e55-cf0a-436e-9447-805704984e62</item>
  16924. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  16925. <item name="NickName" type_name="gh_string" type_code="10"></item>
  16926. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  16927. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  16928. <item name="Source" index="0" type_name="gh_guid" type_code="9">087cd096-ba72-4a81-a462-a9ce3ce43ec4</item>
  16929. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  16930. <item name="UserText" type_name="gh_string" type_code="10">Double click to edit panel content…</item>
  16931. </items>
  16932. <chunks count="2">
  16933. <chunk name="Attributes">
  16934. <items count="5">
  16935. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  16936. <X>3045</X>
  16937. <Y>1553</Y>
  16938. <W>105</W>
  16939. <H>55</H>
  16940. </item>
  16941. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  16942. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  16943. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  16944. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  16945. <X>3045.485</X>
  16946. <Y>1553.607</Y>
  16947. </item>
  16948. </items>
  16949. </chunk>
  16950. <chunk name="PanelProperties">
  16951. <items count="7">
  16952. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  16953. <ARGB>255;255;250;90</ARGB>
  16954. </item>
  16955. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  16956. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  16957. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  16958. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  16959. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  16960. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  16961. </items>
  16962. </chunk>
  16963. </chunks>
  16964. </chunk>
  16965. </chunks>
  16966. </chunk>
  16967. <chunk name="Object" index="130">
  16968. <items count="2">
  16969. <item name="GUID" type_name="gh_guid" type_code="9">0d77c51e-584f-44e8-aed2-c2ddf4803888</item>
  16970. <item name="Name" type_name="gh_string" type_code="10">Degrees</item>
  16971. </items>
  16972. <chunks count="1">
  16973. <chunk name="Container">
  16974. <items count="4">
  16975. <item name="Description" type_name="gh_string" type_code="10">Convert an angle specified in radians to degrees</item>
  16976. <item name="InstanceGuid" type_name="gh_guid" type_code="9">bb620c76-8624-412c-8f17-4aa82e09f1b9</item>
  16977. <item name="Name" type_name="gh_string" type_code="10">Degrees</item>
  16978. <item name="NickName" type_name="gh_string" type_code="10">Deg</item>
  16979. </items>
  16980. <chunks count="3">
  16981. <chunk name="Attributes">
  16982. <items count="2">
  16983. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  16984. <X>2955</X>
  16985. <Y>1562</Y>
  16986. <W>64</W>
  16987. <H>28</H>
  16988. </item>
  16989. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  16990. <X>2985</X>
  16991. <Y>1576</Y>
  16992. </item>
  16993. </items>
  16994. </chunk>
  16995. <chunk name="param_input" index="0">
  16996. <items count="7">
  16997. <item name="Description" type_name="gh_string" type_code="10">Angle in radians</item>
  16998. <item name="InstanceGuid" type_name="gh_guid" type_code="9">e10ae9f2-834e-4fd3-afbb-6416a8f9ca28</item>
  16999. <item name="Name" type_name="gh_string" type_code="10">Radians</item>
  17000. <item name="NickName" type_name="gh_string" type_code="10">R</item>
  17001. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  17002. <item name="Source" index="0" type_name="gh_guid" type_code="9">97c17859-cbbf-4962-a448-d8665c3e706a</item>
  17003. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  17004. </items>
  17005. <chunks count="1">
  17006. <chunk name="Attributes">
  17007. <items count="2">
  17008. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  17009. <X>2957</X>
  17010. <Y>1564</Y>
  17011. <W>13</W>
  17012. <H>24</H>
  17013. </item>
  17014. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  17015. <X>2965</X>
  17016. <Y>1576</Y>
  17017. </item>
  17018. </items>
  17019. </chunk>
  17020. </chunks>
  17021. </chunk>
  17022. <chunk name="param_output" index="0">
  17023. <items count="6">
  17024. <item name="Description" type_name="gh_string" type_code="10">Angle in degrees</item>
  17025. <item name="InstanceGuid" type_name="gh_guid" type_code="9">087cd096-ba72-4a81-a462-a9ce3ce43ec4</item>
  17026. <item name="Name" type_name="gh_string" type_code="10">Degrees</item>
  17027. <item name="NickName" type_name="gh_string" type_code="10">D</item>
  17028. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  17029. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  17030. </items>
  17031. <chunks count="1">
  17032. <chunk name="Attributes">
  17033. <items count="2">
  17034. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  17035. <X>3000</X>
  17036. <Y>1564</Y>
  17037. <W>17</W>
  17038. <H>24</H>
  17039. </item>
  17040. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  17041. <X>3008.5</X>
  17042. <Y>1576</Y>
  17043. </item>
  17044. </items>
  17045. </chunk>
  17046. </chunks>
  17047. </chunk>
  17048. </chunks>
  17049. </chunk>
  17050. </chunks>
  17051. </chunk>
  17052. <chunk name="Object" index="131">
  17053. <items count="2">
  17054. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  17055. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  17056. </items>
  17057. <chunks count="1">
  17058. <chunk name="Container">
  17059. <items count="9">
  17060. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  17061. <item name="InstanceGuid" type_name="gh_guid" type_code="9">4ddb17a4-9e5f-4fb4-9f06-84399d240517</item>
  17062. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  17063. <item name="NickName" type_name="gh_string" type_code="10"></item>
  17064. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  17065. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  17066. <item name="Source" index="0" type_name="gh_guid" type_code="9">b9ed95d2-8f4a-49e9-a734-c73e21c200b4</item>
  17067. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  17068. <item name="UserText" type_name="gh_string" type_code="10">Double click to edit panel content…</item>
  17069. </items>
  17070. <chunks count="2">
  17071. <chunk name="Attributes">
  17072. <items count="5">
  17073. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  17074. <X>2941</X>
  17075. <Y>1424</Y>
  17076. <W>97</W>
  17077. <H>54</H>
  17078. </item>
  17079. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  17080. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  17081. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  17082. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  17083. <X>2941.968</X>
  17084. <Y>1424.592</Y>
  17085. </item>
  17086. </items>
  17087. </chunk>
  17088. <chunk name="PanelProperties">
  17089. <items count="7">
  17090. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  17091. <ARGB>255;255;250;90</ARGB>
  17092. </item>
  17093. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  17094. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  17095. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  17096. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  17097. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  17098. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  17099. </items>
  17100. </chunk>
  17101. </chunks>
  17102. </chunk>
  17103. </chunks>
  17104. </chunk>
  17105. <chunk name="Object" index="132">
  17106. <items count="2">
  17107. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  17108. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  17109. </items>
  17110. <chunks count="1">
  17111. <chunk name="Container">
  17112. <items count="9">
  17113. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  17114. <item name="InstanceGuid" type_name="gh_guid" type_code="9">97a1d833-23ef-4dd7-a8f6-0467955bf4f5</item>
  17115. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  17116. <item name="NickName" type_name="gh_string" type_code="10"></item>
  17117. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  17118. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  17119. <item name="Source" index="0" type_name="gh_guid" type_code="9">264cbae0-f043-490d-9121-0e45630a0b2f</item>
  17120. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  17121. <item name="UserText" type_name="gh_string" type_code="10">Double click to edit panel content…</item>
  17122. </items>
  17123. <chunks count="2">
  17124. <chunk name="Attributes">
  17125. <items count="5">
  17126. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  17127. <X>3053</X>
  17128. <Y>1458</Y>
  17129. <W>105</W>
  17130. <H>55</H>
  17131. </item>
  17132. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  17133. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  17134. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  17135. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  17136. <X>3053.527</X>
  17137. <Y>1458.041</Y>
  17138. </item>
  17139. </items>
  17140. </chunk>
  17141. <chunk name="PanelProperties">
  17142. <items count="7">
  17143. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  17144. <ARGB>255;255;250;90</ARGB>
  17145. </item>
  17146. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  17147. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  17148. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  17149. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  17150. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  17151. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  17152. </items>
  17153. </chunk>
  17154. </chunks>
  17155. </chunk>
  17156. </chunks>
  17157. </chunk>
  17158. <chunk name="Object" index="133">
  17159. <items count="2">
  17160. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  17161. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  17162. </items>
  17163. <chunks count="1">
  17164. <chunk name="Container">
  17165. <items count="9">
  17166. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  17167. <item name="InstanceGuid" type_name="gh_guid" type_code="9">8e36a5c6-61f4-4366-8856-2c787fd9a806</item>
  17168. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  17169. <item name="NickName" type_name="gh_string" type_code="10"></item>
  17170. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  17171. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  17172. <item name="Source" index="0" type_name="gh_guid" type_code="9">1578bf3a-8211-4a77-85d0-3cd951789283</item>
  17173. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  17174. <item name="UserText" type_name="gh_string" type_code="10">Double click to edit panel content…</item>
  17175. </items>
  17176. <chunks count="2">
  17177. <chunk name="Attributes">
  17178. <items count="5">
  17179. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  17180. <X>2941</X>
  17181. <Y>1493</Y>
  17182. <W>97</W>
  17183. <H>55</H>
  17184. </item>
  17185. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  17186. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  17187. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  17188. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  17189. <X>2941.552</X>
  17190. <Y>1493.67</Y>
  17191. </item>
  17192. </items>
  17193. </chunk>
  17194. <chunk name="PanelProperties">
  17195. <items count="7">
  17196. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  17197. <ARGB>255;255;250;90</ARGB>
  17198. </item>
  17199. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  17200. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  17201. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  17202. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  17203. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  17204. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  17205. </items>
  17206. </chunk>
  17207. </chunks>
  17208. </chunk>
  17209. </chunks>
  17210. </chunk>
  17211. <chunk name="Object" index="134">
  17212. <items count="2">
  17213. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  17214. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  17215. </items>
  17216. <chunks count="1">
  17217. <chunk name="Container">
  17218. <items count="8">
  17219. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  17220. <item name="InstanceGuid" type_name="gh_guid" type_code="9">0903a6c2-e102-41a9-8326-3f9533f91f9f</item>
  17221. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  17222. <item name="NickName" type_name="gh_string" type_code="10"></item>
  17223. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  17224. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  17225. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  17226. <item name="UserText" type_name="gh_string" type_code="10">-150</item>
  17227. </items>
  17228. <chunks count="2">
  17229. <chunk name="Attributes">
  17230. <items count="5">
  17231. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  17232. <X>1440</X>
  17233. <Y>1185</Y>
  17234. <W>50</W>
  17235. <H>20</H>
  17236. </item>
  17237. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  17238. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  17239. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  17240. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  17241. <X>1440.106</X>
  17242. <Y>1185.658</Y>
  17243. </item>
  17244. </items>
  17245. </chunk>
  17246. <chunk name="PanelProperties">
  17247. <items count="7">
  17248. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  17249. <ARGB>255;255;250;90</ARGB>
  17250. </item>
  17251. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  17252. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  17253. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  17254. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  17255. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  17256. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  17257. </items>
  17258. </chunk>
  17259. </chunks>
  17260. </chunk>
  17261. </chunks>
  17262. </chunk>
  17263. <chunk name="Object" index="135">
  17264. <items count="2">
  17265. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  17266. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  17267. </items>
  17268. <chunks count="1">
  17269. <chunk name="Container">
  17270. <items count="8">
  17271. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  17272. <item name="InstanceGuid" type_name="gh_guid" type_code="9">17a61eca-a95a-4f8b-aa55-052523e686bc</item>
  17273. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  17274. <item name="NickName" type_name="gh_string" type_code="10"></item>
  17275. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  17276. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  17277. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  17278. <item name="UserText" type_name="gh_string" type_code="10">150</item>
  17279. </items>
  17280. <chunks count="2">
  17281. <chunk name="Attributes">
  17282. <items count="5">
  17283. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  17284. <X>1441</X>
  17285. <Y>1215</Y>
  17286. <W>50</W>
  17287. <H>20</H>
  17288. </item>
  17289. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  17290. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  17291. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  17292. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  17293. <X>1441.106</X>
  17294. <Y>1215.658</Y>
  17295. </item>
  17296. </items>
  17297. </chunk>
  17298. <chunk name="PanelProperties">
  17299. <items count="7">
  17300. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  17301. <ARGB>255;255;250;90</ARGB>
  17302. </item>
  17303. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  17304. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  17305. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  17306. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  17307. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  17308. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  17309. </items>
  17310. </chunk>
  17311. </chunks>
  17312. </chunk>
  17313. </chunks>
  17314. </chunk>
  17315. <chunk name="Object" index="136">
  17316. <items count="2">
  17317. <item name="GUID" type_name="gh_guid" type_code="9">d1a28e95-cf96-4936-bf34-8bf142d731bf</item>
  17318. <item name="Name" type_name="gh_string" type_code="10">Construct Domain</item>
  17319. </items>
  17320. <chunks count="1">
  17321. <chunk name="Container">
  17322. <items count="4">
  17323. <item name="Description" type_name="gh_string" type_code="10">Create a numeric domain from two numeric extremes.</item>
  17324. <item name="InstanceGuid" type_name="gh_guid" type_code="9">14534673-98f6-45e8-b11f-39da628bc4ca</item>
  17325. <item name="Name" type_name="gh_string" type_code="10">Construct Domain</item>
  17326. <item name="NickName" type_name="gh_string" type_code="10">Dom</item>
  17327. </items>
  17328. <chunks count="4">
  17329. <chunk name="Attributes">
  17330. <items count="2">
  17331. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  17332. <X>2193</X>
  17333. <Y>764</Y>
  17334. <W>61</W>
  17335. <H>44</H>
  17336. </item>
  17337. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  17338. <X>2224</X>
  17339. <Y>786</Y>
  17340. </item>
  17341. </items>
  17342. </chunk>
  17343. <chunk name="param_input" index="0">
  17344. <items count="7">
  17345. <item name="Description" type_name="gh_string" type_code="10">Start value of numeric domain</item>
  17346. <item name="InstanceGuid" type_name="gh_guid" type_code="9">c60598bb-4ac8-4310-9f9f-0d75cea21cfe</item>
  17347. <item name="Name" type_name="gh_string" type_code="10">Domain start</item>
  17348. <item name="NickName" type_name="gh_string" type_code="10">A</item>
  17349. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  17350. <item name="Source" index="0" type_name="gh_guid" type_code="9">64b83d9b-5ae1-4022-b79e-c9135d3cdfc6</item>
  17351. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  17352. </items>
  17353. <chunks count="2">
  17354. <chunk name="Attributes">
  17355. <items count="2">
  17356. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  17357. <X>2195</X>
  17358. <Y>766</Y>
  17359. <W>14</W>
  17360. <H>20</H>
  17361. </item>
  17362. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  17363. <X>2203.5</X>
  17364. <Y>776</Y>
  17365. </item>
  17366. </items>
  17367. </chunk>
  17368. <chunk name="PersistentData">
  17369. <items count="1">
  17370. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  17371. </items>
  17372. <chunks count="1">
  17373. <chunk name="Branch" index="0">
  17374. <items count="2">
  17375. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  17376. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  17377. </items>
  17378. <chunks count="1">
  17379. <chunk name="Item" index="0">
  17380. <items count="1">
  17381. <item name="number" type_name="gh_double" type_code="6">0</item>
  17382. </items>
  17383. </chunk>
  17384. </chunks>
  17385. </chunk>
  17386. </chunks>
  17387. </chunk>
  17388. </chunks>
  17389. </chunk>
  17390. <chunk name="param_input" index="1">
  17391. <items count="7">
  17392. <item name="Description" type_name="gh_string" type_code="10">End value of numeric domain</item>
  17393. <item name="InstanceGuid" type_name="gh_guid" type_code="9">c4f2cdcf-3ac3-420a-925f-c2653c042270</item>
  17394. <item name="Name" type_name="gh_string" type_code="10">Domain end</item>
  17395. <item name="NickName" type_name="gh_string" type_code="10">B</item>
  17396. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  17397. <item name="Source" index="0" type_name="gh_guid" type_code="9">2398bd00-b514-4723-b31f-c436e1ae908b</item>
  17398. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  17399. </items>
  17400. <chunks count="2">
  17401. <chunk name="Attributes">
  17402. <items count="2">
  17403. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  17404. <X>2195</X>
  17405. <Y>786</Y>
  17406. <W>14</W>
  17407. <H>20</H>
  17408. </item>
  17409. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  17410. <X>2203.5</X>
  17411. <Y>796</Y>
  17412. </item>
  17413. </items>
  17414. </chunk>
  17415. <chunk name="PersistentData">
  17416. <items count="1">
  17417. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  17418. </items>
  17419. <chunks count="1">
  17420. <chunk name="Branch" index="0">
  17421. <items count="2">
  17422. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  17423. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  17424. </items>
  17425. <chunks count="1">
  17426. <chunk name="Item" index="0">
  17427. <items count="1">
  17428. <item name="number" type_name="gh_double" type_code="6">1</item>
  17429. </items>
  17430. </chunk>
  17431. </chunks>
  17432. </chunk>
  17433. </chunks>
  17434. </chunk>
  17435. </chunks>
  17436. </chunk>
  17437. <chunk name="param_output" index="0">
  17438. <items count="6">
  17439. <item name="Description" type_name="gh_string" type_code="10">Numeric domain between {A} and {B}</item>
  17440. <item name="InstanceGuid" type_name="gh_guid" type_code="9">035d494c-d9fa-434d-874c-206716be82af</item>
  17441. <item name="Name" type_name="gh_string" type_code="10">Domain</item>
  17442. <item name="NickName" type_name="gh_string" type_code="10">I</item>
  17443. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  17444. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  17445. </items>
  17446. <chunks count="1">
  17447. <chunk name="Attributes">
  17448. <items count="2">
  17449. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  17450. <X>2239</X>
  17451. <Y>766</Y>
  17452. <W>13</W>
  17453. <H>40</H>
  17454. </item>
  17455. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  17456. <X>2245.5</X>
  17457. <Y>786</Y>
  17458. </item>
  17459. </items>
  17460. </chunk>
  17461. </chunks>
  17462. </chunk>
  17463. </chunks>
  17464. </chunk>
  17465. </chunks>
  17466. </chunk>
  17467. <chunk name="Object" index="137">
  17468. <items count="2">
  17469. <item name="GUID" type_name="gh_guid" type_code="9">9445ca40-cc73-4861-a455-146308676855</item>
  17470. <item name="Name" type_name="gh_string" type_code="10">Range</item>
  17471. </items>
  17472. <chunks count="1">
  17473. <chunk name="Container">
  17474. <items count="4">
  17475. <item name="Description" type_name="gh_string" type_code="10">Create a range of numbers.</item>
  17476. <item name="InstanceGuid" type_name="gh_guid" type_code="9">fbb4ab09-bb2a-42d6-a9a9-345b5f2473bc</item>
  17477. <item name="Name" type_name="gh_string" type_code="10">Range</item>
  17478. <item name="NickName" type_name="gh_string" type_code="10">Range</item>
  17479. </items>
  17480. <chunks count="4">
  17481. <chunk name="Attributes">
  17482. <items count="2">
  17483. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  17484. <X>2295</X>
  17485. <Y>775</Y>
  17486. <W>64</W>
  17487. <H>44</H>
  17488. </item>
  17489. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  17490. <X>2326</X>
  17491. <Y>797</Y>
  17492. </item>
  17493. </items>
  17494. </chunk>
  17495. <chunk name="param_input" index="0">
  17496. <items count="7">
  17497. <item name="Description" type_name="gh_string" type_code="10">Domain of numeric range</item>
  17498. <item name="InstanceGuid" type_name="gh_guid" type_code="9">0dd6e136-7641-43ed-94ff-d87c8b3a4a7f</item>
  17499. <item name="Name" type_name="gh_string" type_code="10">Domain</item>
  17500. <item name="NickName" type_name="gh_string" type_code="10">D</item>
  17501. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  17502. <item name="Source" index="0" type_name="gh_guid" type_code="9">035d494c-d9fa-434d-874c-206716be82af</item>
  17503. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  17504. </items>
  17505. <chunks count="2">
  17506. <chunk name="Attributes">
  17507. <items count="2">
  17508. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  17509. <X>2297</X>
  17510. <Y>777</Y>
  17511. <W>14</W>
  17512. <H>20</H>
  17513. </item>
  17514. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  17515. <X>2305.5</X>
  17516. <Y>787</Y>
  17517. </item>
  17518. </items>
  17519. </chunk>
  17520. <chunk name="PersistentData">
  17521. <items count="1">
  17522. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  17523. </items>
  17524. <chunks count="1">
  17525. <chunk name="Branch" index="0">
  17526. <items count="2">
  17527. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  17528. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  17529. </items>
  17530. <chunks count="1">
  17531. <chunk name="Item" index="0">
  17532. <items count="1">
  17533. <item name="Interval" type_name="gh_interval1d" type_code="60">
  17534. <A>0</A>
  17535. <B>1</B>
  17536. </item>
  17537. </items>
  17538. </chunk>
  17539. </chunks>
  17540. </chunk>
  17541. </chunks>
  17542. </chunk>
  17543. </chunks>
  17544. </chunk>
  17545. <chunk name="param_input" index="1">
  17546. <items count="7">
  17547. <item name="Description" type_name="gh_string" type_code="10">Number of steps</item>
  17548. <item name="InstanceGuid" type_name="gh_guid" type_code="9">b991e2eb-aa24-4a37-b83b-4de89b217793</item>
  17549. <item name="Name" type_name="gh_string" type_code="10">Steps</item>
  17550. <item name="NickName" type_name="gh_string" type_code="10">N</item>
  17551. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  17552. <item name="Source" index="0" type_name="gh_guid" type_code="9">cc8db470-d2c6-4bbc-92b0-9305165143f7</item>
  17553. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  17554. </items>
  17555. <chunks count="2">
  17556. <chunk name="Attributes">
  17557. <items count="2">
  17558. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  17559. <X>2297</X>
  17560. <Y>797</Y>
  17561. <W>14</W>
  17562. <H>20</H>
  17563. </item>
  17564. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  17565. <X>2305.5</X>
  17566. <Y>807</Y>
  17567. </item>
  17568. </items>
  17569. </chunk>
  17570. <chunk name="PersistentData">
  17571. <items count="1">
  17572. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  17573. </items>
  17574. <chunks count="1">
  17575. <chunk name="Branch" index="0">
  17576. <items count="2">
  17577. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  17578. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  17579. </items>
  17580. <chunks count="1">
  17581. <chunk name="Item" index="0">
  17582. <items count="1">
  17583. <item name="number" type_name="gh_int32" type_code="3">10</item>
  17584. </items>
  17585. </chunk>
  17586. </chunks>
  17587. </chunk>
  17588. </chunks>
  17589. </chunk>
  17590. </chunks>
  17591. </chunk>
  17592. <chunk name="param_output" index="0">
  17593. <items count="7">
  17594. <item name="Access" type_name="gh_int32" type_code="3">1</item>
  17595. <item name="Description" type_name="gh_string" type_code="10">Range of numbers</item>
  17596. <item name="InstanceGuid" type_name="gh_guid" type_code="9">9b2fc3d6-5abb-46f8-a49e-0ae9e8dc1647</item>
  17597. <item name="Name" type_name="gh_string" type_code="10">Range</item>
  17598. <item name="NickName" type_name="gh_string" type_code="10">R</item>
  17599. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  17600. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  17601. </items>
  17602. <chunks count="1">
  17603. <chunk name="Attributes">
  17604. <items count="2">
  17605. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  17606. <X>2341</X>
  17607. <Y>777</Y>
  17608. <W>16</W>
  17609. <H>40</H>
  17610. </item>
  17611. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  17612. <X>2349</X>
  17613. <Y>797</Y>
  17614. </item>
  17615. </items>
  17616. </chunk>
  17617. </chunks>
  17618. </chunk>
  17619. </chunks>
  17620. </chunk>
  17621. </chunks>
  17622. </chunk>
  17623. <chunk name="Object" index="138">
  17624. <items count="2">
  17625. <item name="GUID" type_name="gh_guid" type_code="9">57da07bd-ecab-415d-9d86-af36d7073abc</item>
  17626. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  17627. </items>
  17628. <chunks count="1">
  17629. <chunk name="Container">
  17630. <items count="6">
  17631. <item name="Description" type_name="gh_string" type_code="10">Numeric slider for single values</item>
  17632. <item name="InstanceGuid" type_name="gh_guid" type_code="9">cc8db470-d2c6-4bbc-92b0-9305165143f7</item>
  17633. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  17634. <item name="NickName" type_name="gh_string" type_code="10">num curves</item>
  17635. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  17636. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  17637. </items>
  17638. <chunks count="2">
  17639. <chunk name="Attributes">
  17640. <items count="2">
  17641. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  17642. <X>1969</X>
  17643. <Y>831</Y>
  17644. <W>284</W>
  17645. <H>20</H>
  17646. </item>
  17647. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  17648. <X>1969.186</X>
  17649. <Y>831.0843</Y>
  17650. </item>
  17651. </items>
  17652. </chunk>
  17653. <chunk name="Slider">
  17654. <items count="7">
  17655. <item name="Digits" type_name="gh_int32" type_code="3">0</item>
  17656. <item name="GripDisplay" type_name="gh_int32" type_code="3">1</item>
  17657. <item name="Interval" type_name="gh_int32" type_code="3">0</item>
  17658. <item name="Max" type_name="gh_double" type_code="6">400</item>
  17659. <item name="Min" type_name="gh_double" type_code="6">1</item>
  17660. <item name="SnapCount" type_name="gh_int32" type_code="3">0</item>
  17661. <item name="Value" type_name="gh_double" type_code="6">200</item>
  17662. </items>
  17663. </chunk>
  17664. </chunks>
  17665. </chunk>
  17666. </chunks>
  17667. </chunk>
  17668. <chunk name="Object" index="139">
  17669. <items count="2">
  17670. <item name="GUID" type_name="gh_guid" type_code="9">079bd9bd-54a0-41d4-98af-db999015f63d</item>
  17671. <item name="Name" type_name="gh_string" type_code="10">VB Script</item>
  17672. </items>
  17673. <chunks count="1">
  17674. <chunk name="Container">
  17675. <items count="10">
  17676. <item name="AdditionalSource" type_name="gh_string" type_code="10"> Private Function IsSet(ByVal param As String) As Boolean ' Check if an input parameter has data
  17677. Dim i As Integer = Component.Params.IndexOfInputParam(param)
  17678. If i &gt; -1 Then
  17679. Return Component.Params.Input.ElementAt(i).DataType &gt; 1 ' input parameter DataType of 1 means it's not receiving input (internal or external)
  17680. Else
  17681. Msg("error", "Input parameter '" &amp; param &amp; "' not found")
  17682. Return False
  17683. End If
  17684. End Function
  17685. Private Sub Msg(ByVal type As String, ByVal msg As String) ' Output an error, warning, or informational message
  17686. Select Case type
  17687. Case "error"
  17688. Component.AddRuntimeMessage(GH_RuntimeMessageLevel.Error, msg)
  17689. Print("Error: " &amp; msg)
  17690. Case "warning"
  17691. Component.AddRuntimeMessage(GH_RuntimeMessageLevel.Warning, msg)
  17692. Print("Warning: " &amp; msg)
  17693. Case "info"
  17694. Component.AddRuntimeMessage(GH_RuntimeMessageLevel.Remark, msg)
  17695. Print(msg)
  17696. End Select
  17697. End Sub
  17698. ' Solve for the m parameter from length and width (reference {1} equation (34), except b = width and K(k) and E(k) should be K(m) and E(m))
  17699. Private Function SolveMFromLenWid(ByVal L As Double, ByVal w As Double) As Double
  17700. If w = 0 Then
  17701. Return Defined.M_ZERO_W ' for the boundry condition width = 0, bypass the function and return the known m value
  17702. End If
  17703. Dim n As Integer = 1 ' Iteration counter (quit if &gt;MAXIT)
  17704. Dim lower As Double = 0 ' m must be within this range
  17705. Dim upper As Double = 1
  17706. Dim m As Double
  17707. Dim cwl As Double
  17708. Do While (upper - lower) &gt; Defined.MAXERR AndAlso (n) &lt; Defined.MAXIT ' Repeat until range narrow enough or MAXIT
  17709. m = (upper + lower) / 2
  17710. cwl = 2 * EllipticE(m) / EllipticK(m) - 1 ' calculate w/L with the test value of m
  17711. If cwl &lt; w / L Then ' compares the calculated w/L with the actual w/L then narrows the range of possible m
  17712. upper = m
  17713. Else
  17714. lower = m
  17715. End If
  17716. n += 1
  17717. Loop
  17718. Return m
  17719. End Function
  17720. ' Solve for the m parameter from length and height (reference {1} equation (33), except K(k) should be K(m) and k = sqrt(m))
  17721. ' Note that it's actually possible to find 2 valid values for m (hence 2 width values) at certain height values
  17722. Private Function SolveMFromLenHt(ByVal L As Double, ByVal h As Double) As List(Of Double)
  17723. Dim n As Integer = 1 ' Iteration counter (quit if &gt;MAXIT)
  17724. Dim lower As Double = 0 ' m must be within this range
  17725. Dim upper As Double = 1
  17726. Dim twoWidths As Boolean = h / L &gt;= Defined.DOUBLE_W_HL_RATIO And h / L &lt; Defined.MAX_HL_RATIO ' check to see if h/L is within the range where 2 solutions for the width are possible
  17727. Dim m As Double
  17728. Dim mult_m As New List(Of Double)
  17729. Dim chl As Double
  17730. If twoWidths Then
  17731. ' find the first of two possible solutions for m with the following limits:
  17732. lower = Defined.M_DOUBLE_W ' see constants at bottom of script
  17733. upper = Defined.M_MAXHEIGHT ' see constants at bottom of script
  17734. Do While (upper - lower) &gt; Defined.MAXERR AndAlso (n) &lt; Defined.MAXIT ' Repeat until range narrow enough or MAXIT
  17735. m = (upper + lower) / 2
  17736. chl = Math.Sqrt(m) / EllipticK(m) ' calculate h/L with the test value of m
  17737. If chl &gt; h / L Then ' compares the calculated h/L with the actual h/L then narrows the range of possible m
  17738. upper = m
  17739. Else
  17740. lower = m
  17741. End If
  17742. n += 1
  17743. Loop
  17744. mult_m.Add(m)
  17745. ' then find the second of two possible solutions for m with the following limits:
  17746. lower = Defined.M_MAXHEIGHT ' see constants at bottom of script
  17747. upper = 1
  17748. Do While (upper - lower) &gt; Defined.MAXERR AndAlso (n) &lt; Defined.MAXIT ' Repeat until range narrow enough or MAXIT
  17749. m = (upper + lower) / 2
  17750. chl = Math.Sqrt(m) / EllipticK(m) ' calculate h/L with the test value of m
  17751. If chl &lt; h / L Then ' compares the calculated h/L with the actual h/L then narrows the range of possible m
  17752. upper = m
  17753. Else
  17754. lower = m
  17755. End If
  17756. n += 1
  17757. Loop
  17758. If m &lt;= Defined.M_MAX Then ' return this m parameter only if it falls within the maximum useful value (above which the curve breaks down)
  17759. mult_m.Add(m)
  17760. End If
  17761. Else
  17762. ' find the one possible solution for the m parameter
  17763. upper = Defined.M_DOUBLE_W ' limit the upper end of the search to the maximum value of m for which only one solution exists
  17764. Do While (upper - lower) &gt; Defined.MAXERR AndAlso (n) &lt; Defined.MAXIT ' Repeat until range narrow enough or MAXIT
  17765. m = (upper + lower) / 2
  17766. chl = Math.Sqrt(m) / EllipticK(m) ' calculate h/L with the test value of m
  17767. If chl &gt; h / L Then ' compares the calculated h/L with the actual h/L then narrows the range of possible m
  17768. upper = m
  17769. Else
  17770. lower = m
  17771. End If
  17772. n += 1
  17773. Loop
  17774. mult_m.Add(m)
  17775. End If
  17776. Return mult_m
  17777. End Function
  17778. ' Solve for the m parameter from width and height (derived from reference {1} equations (33) and (34) with same notes as above)
  17779. Private Function SolveMFromWidHt(ByVal w As Double, ByVal h As Double) As Double
  17780. Dim n As Integer = 1 ' Iteration counter (quit if &gt;MAXIT)
  17781. Dim lower As Double = 0 ' m must be within this range
  17782. Dim upper As Double = 1
  17783. Dim m As Double
  17784. Dim cwh As Double
  17785. Do While (upper - lower) &gt; Defined.MAXERR AndAlso (n) &lt; Defined.MAXIT ' Repeat until range narrow enough or MAXIT
  17786. m = (upper + lower) / 2
  17787. cwh = (2 * EllipticE(m) - EllipticK(m)) / Math.Sqrt(m) ' calculate w/h with the test value of m
  17788. If cwh &lt; w / h Then ' compares the calculated w/h with the actual w/h then narrows the range of possible m
  17789. upper = m
  17790. Else
  17791. lower = m
  17792. End If
  17793. n += 1
  17794. Loop
  17795. Return m
  17796. End Function
  17797. ' Calculate length based on height and an m parameter, derived from reference {1} equation (33), except K(k) should be K(m) and k = sqrt(m)
  17798. Private Function Cal_L(ByVal h As Double, ByVal m As Double) As Double
  17799. Return h * EllipticK(m) / Math.Sqrt(m)
  17800. End Function
  17801. ' Calculate width based on length and an m parameter, derived from reference {1} equation (34), except b = width and K(k) and E(k) should be K(m) and E(m)
  17802. Private Function Cal_W(ByVal L As Double, ByVal m As Double) As Double
  17803. Return L * (2 * EllipticE(m) / EllipticK(m) - 1)
  17804. End Function
  17805. ' Calculate height based on length and an m parameter, from reference {1} equation (33), except K(k) should be K(m) and k = sqrt(m)
  17806. Private Function Cal_H(ByVal L As Double, ByVal m As Double) As Double
  17807. Return L * Math.Sqrt(m) / EllipticK(m)
  17808. End Function
  17809. ' Calculate the unique m parameter based on a start tangent angle, from reference {2}, just above equation (9a), that states k = Sin(angle / 2 + Pi / 4),
  17810. ' but as m = k^2 and due to this script's need for an angle rotated 90° versus the one in reference {1}, the following formula is the result
  17811. ' New note: verified by reference {4}, pg. 78 at the bottom
  17812. Private Function Cal_M(ByVal a As Double) As Double
  17813. Return (1 - Math.Cos(a)) / 2 ' equal to Sin^2(a/2) too
  17814. End Function
  17815. ' Calculate start tangent angle based on an m parameter, derived from above formula
  17816. Private Function Cal_A(ByVal m As Double) As Double
  17817. Return Math.Acos(1 - 2 * m)
  17818. End Function
  17819. ' This is the heart of this script, taking the found (or specified) length, width, and angle values along with the found m parameter to create
  17820. ' a list of points that approximate the shape or form of the elastica. It works by finding the x and y coordinates (which are reversed versus
  17821. ' the original equations (12a) and (12b) from reference {2} due to the 90° difference in orientation) based on the tangent angle along the curve.
  17822. ' See reference {2} for more details on how they derived it. Note that to simplify things, the algorithm only calculates the points for half of the
  17823. ' curve, then mirrors those points along the y-axis.
  17824. Private Function FindBendForm(ByVal L As Double, ByVal w As Double, ByVal m As Double, ByVal ang As Double, ByVal refPln As Plane) As List(Of Point3d)
  17825. L = L / 2 ' because the below algorithm is based on the formulas in reference {2} for only half of the curve
  17826. w = w / 2 ' same
  17827. If ang = 0 Then ' if angle (and height) = 0, then simply return the start and end points of the straight line
  17828. Dim out As New List(Of Point3d)
  17829. out.Add(refPln.PointAt(w, 0, 0))
  17830. out.Add(refPln.PointAt(-w, 0, 0))
  17831. Return out
  17832. End If
  17833. Dim x As Double
  17834. Dim y As Double
  17835. Dim halfCurvePts As New List(Of Point3d)
  17836. Dim fullCurvePts As New List(Of Point3d)
  17837. Dim translatedPts As New List(Of Point3d)
  17838. ang -= Math.PI / 2 ' a hack to allow this algorithm to work, since the original curve in paper {2} was rotated 90°
  17839. Dim angB As Double = ang + (-Math.PI / 2 - ang) / Defined.CURVEDIVS ' angB is the 'lowercase theta' which should be in formula {2}(12b) as the interval
  17840. ' start [a typo...see equation(3)]. It's necessary to start angB at ang + [interval] instead of just ang due to integration failing at angB = ang
  17841. halfCurvePts.Add(New Point3d(w, 0, 0)) ' start with this known initial point, as integration will fail when angB = ang
  17842. ' each point {x, y} is calculated from the tangent angle, angB, that occurs at each point (which is why this iterates from ~ang to -pi/2, the known end condition)
  17843. Do While Math.Round(angB, Defined.ROUNDTO) &gt;= Math.Round(-Math.PI / 2, Defined.ROUNDTO)
  17844. y = (Math.Sqrt(2) * Math.Sqrt(Math.Sin(ang) - Math.Sin(angB)) * (w + L)) / (2 * EllipticE(m)) ' note that x and y are swapped vs. (12a) and (12b)
  17845. x = (L / (Math.Sqrt(2) * EllipticK(m))) * Simpson(angB, -Math.PI / 2, 500, ang) ' calculate the Simpson approximation of the integral (function f below)
  17846. ' over the interval angB ('lowercase theta') to -pi/2. side note: is 500 too few iterations for the Simson algorithm?
  17847. If Math.Round(x, Defined.ROUNDTO) = 0 Then x = 0
  17848. halfCurvePts.Add(New Point3d(x, y, 0))
  17849. angB += (-Math.PI / 2 - ang) / Defined.CURVEDIVS ' onto the next tangent angle
  17850. Loop
  17851. ' After finding the x and y values for half of the curve, add the {-x, y} values for the rest of the curve
  17852. For Each point As Point3d In halfCurvePts
  17853. If Math.Round(point.X, Defined.ROUNDTO) = 0 Then
  17854. If Math.Round(point.Y, Defined.ROUNDTO) = 0 Then
  17855. fullCurvePts.Add(New Point3d(0, 0, 0)) ' special case when width = 0: when x = 0, only duplicate the point when y = 0 too
  17856. End If
  17857. Else
  17858. fullCurvePts.Add(New Point3d(-point.X, point.Y, 0))
  17859. End If
  17860. Next
  17861. halfCurvePts.Reverse
  17862. fullCurvePts.AddRange(halfCurvePts)
  17863. For Each p As Point3d In fullCurvePts
  17864. translatedPts.Add(refPln.PointAt(p.X, p.Y, p.Z)) ' translate the points from the reference plane to the world plane
  17865. Next
  17866. Return translatedPts
  17867. End Function
  17868. ' Interpolates the points from FindBendForm to create the Elastica curve. Uses start &amp; end tangents for greater accuracy.
  17869. Private Function MakeCurve(ByVal pts As List(Of Point3d), ByVal ang As Double, ByVal refPln As Plane) As Curve
  17870. If ang &lt;&gt; 0 Then
  17871. Dim ts, te As New Vector3d(refPln.XAxis)
  17872. ts.Rotate(ang, refPln.ZAxis)
  17873. te.Rotate(-ang, refPln.ZAxis)
  17874. Return Curve.CreateInterpolatedCurve(pts, 3, CurveKnotStyle.Chord, ts, te) ' 3rd degree curve with 'Chord' Knot Style
  17875. Else
  17876. Return Curve.CreateInterpolatedCurve(pts, 3) ' if angle (and height) = 0, then simply interpolate the straight line (no start/end tangents)
  17877. End If
  17878. End Function
  17879. ' Implements the Simpson approximation for an integral of function f below
  17880. Public Function Simpson(a As Double, b As Double, n As Integer, theta As Double) As Double 'n should be an even number
  17881. Dim j As Integer, s1 As Double, s2 As Double, h As Double
  17882. h = (b - a) / n
  17883. s1 = 0
  17884. s2 = 0
  17885. For j = 1 To n - 1 Step 2
  17886. s1 = s1 + fn(a + j * h, theta)
  17887. Next j
  17888. For j = 2 To n - 2 Step 2
  17889. s2 = s2 + fn(a + j * h, theta)
  17890. Next j
  17891. Simpson = h / 3 * (fn(a, theta) + 4 * s1 + 2 * s2 + fn(b, theta))
  17892. End Function
  17893. ' Specific calculation for the above integration
  17894. Public Function fn(x As Double, theta As Double) As Double
  17895. fn = Math.Sin(x) / (Math.Sqrt(Math.Sin(theta) - Math.Sin(x))) ' from reference {2} formula (12b)
  17896. End Function
  17897. ' Return the Complete Elliptic integral of the 1st kind
  17898. ' Abramowitz and Stegun p.591, formula 17.3.11
  17899. ' Code from http://www.codeproject.com/Articles/566614/Elliptic-integrals
  17900. Public Function EllipticK(ByVal m As Double) As Double
  17901. Dim sum, term, above, below As Double
  17902. sum = 1
  17903. term = 1
  17904. above = 1
  17905. below = 2
  17906. For i As Integer = 1 To 100
  17907. term *= above / below
  17908. sum += Math.Pow(m, i) * Math.Pow(term, 2)
  17909. above += 2
  17910. below += 2
  17911. Next
  17912. sum *= 0.5 * Math.PI
  17913. Return sum
  17914. End Function
  17915. ' Return the Complete Elliptic integral of the 2nd kind
  17916. ' Abramowitz and Stegun p.591, formula 17.3.12
  17917. ' Code from http://www.codeproject.com/Articles/566614/Elliptic-integrals
  17918. Public Function EllipticE(ByVal m As Double) As Double
  17919. Dim sum, term, above, below As Double
  17920. sum = 1
  17921. term = 1
  17922. above = 1
  17923. below = 2
  17924. For i As Integer = 1 To 100
  17925. term *= above / below
  17926. sum -= Math.Pow(m, i) * Math.Pow(term, 2) / above
  17927. above += 2
  17928. below += 2
  17929. Next
  17930. sum *= 0.5 * Math.PI
  17931. Return sum
  17932. End Function
  17933. Friend Partial NotInheritable Class Defined
  17934. Private Sub New()
  17935. End Sub
  17936. ' Note: most of these values for m and h/L ratio were found with Wolfram Alpha and either specific intercepts (x=0) or local minima/maxima. They should be constant.
  17937. Public Const M_SKETCHY As Double = 0.95 ' value of the m parameter where the curvature near the ends of the curve gets wonky
  17938. Public Const M_MAX As Double = 0.993 ' maximum useful value of the m parameter, above which this algorithm for the form of the curve breaks down
  17939. Public Const M_ZERO_W As Double = 0.826114765984970336 ' value of the m parameter when width = 0
  17940. Public Const M_MAXHEIGHT As Double = 0.701327460663101223 ' value of the m parameter at maximum possible height of the bent rod/wire
  17941. Public Const M_DOUBLE_W As Double = 0.180254422335013983 ' minimum value of the m parameter when two width values are possible for a given height and length
  17942. Public Const DOUBLE_W_HL_RATIO As Double = 0.257342117984635757 ' value of the height/length ratio above which there are two possible width values
  17943. Public Const MAX_HL_RATIO As Double = 0.403140189705650243 ' maximum possible value of the height/length ratio
  17944. Public Const MAXERR As Double = 0.0000000001 ' error tolerance
  17945. Public Const MAXIT As Integer = 100 ' maximum number of iterations
  17946. Public Const ROUNDTO As Integer = 10 ' number of decimal places to round off to
  17947. Public Const CURVEDIVS As Integer = 50 ' number of sample points for building the curve (or half-curve as it were)
  17948. End Class</item>
  17949. <item name="Description" type_name="gh_string" type_code="10">A VB.NET scriptable component</item>
  17950. <item name="EditorPosition" type_name="gh_drawing_point" type_code="30">
  17951. <X>98</X>
  17952. <Y>86</Y>
  17953. </item>
  17954. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  17955. <item name="InstanceGuid" type_name="gh_guid" type_code="9">63218c71-7758-4168-b163-745e456fb525</item>
  17956. <item name="Name" type_name="gh_string" type_code="10">VB Script</item>
  17957. <item name="NickName" type_name="gh_string" type_code="10">VB</item>
  17958. <item name="OutParameter" type_name="gh_bool" type_code="1">true</item>
  17959. <item name="ReferenceCount" type_name="gh_int32" type_code="3">0</item>
  17960. <item name="ScriptSource" type_name="gh_string" type_code="10"> ' -----------------------------------------------------------------
  17961. ' Elastic Bending Script by Will McElwain
  17962. ' Created February 2014
  17963. '
  17964. ' DESCRIPTION:
  17965. ' This beast creates the so-called 'elastica curve', the shape a long, thin rod or wire makes when it is bent elastically (i.e. not permanently). In this case, force
  17966. ' is assumed to only be applied horizontally (which would be in line with the rod at rest) and both ends are assumed to be pinned or hinged meaning they are free
  17967. ' to rotate (as opposed to clamped, when the end tangent angle is fixed, usually horizontally). An interesting finding is that it doesn't matter what the material or
  17968. ' cross-sectional area is, as long as they're uniform along the entire length. Everything makes the same shape when bent as long as it doesn't cross the threshold
  17969. ' from elastic to plastic (permanent) deformation (I don't bother to find that limit here, but can be found if the yield stress for a material is known).
  17970. '
  17971. ' Key to the formulas used in this script are elliptic integrals, specifically K(m), the complete elliptic integral of the first kind, and E(m), the complete elliptic
  17972. ' integral of the second kind. There was a lot of confusion over the 'm' and 'k' parameters for these functions, as some people use them interchangeably, but they are
  17973. ' not the same. m = k^2 (thus k = Sqrt(m)). I try to use the 'm' parameter exclusively to avoid this confusion. Note that there is a unique 'm' parameter for every
  17974. ' configuration/shape of the elastica curve.
  17975. '
  17976. ' This script tries to find that unique 'm' parameter based on the inputs. The algorithm starts with a test version of m, evaluates an expression, say 2*E(m)/K(m)-1,
  17977. ' then compares the result to what it should be (in this case, a known width/length ratio). Iterate until the correct m is found. Once we have m, we can then calculate
  17978. ' all of the other unknowns, then find points that lie on that curve, then interpolate those points for the actual curve. You can also use Wolfram|Alpha as I did to
  17979. ' find the m parameter based on the equations in this script (example here: http://tiny.cc/t4tpbx for when say width=45.2 and length=67.1).
  17980. '
  17981. ' Other notes:
  17982. ' * This script works with negative values for width, which will creat a self-intersecting curve (as it should). The curvature of the elastica starts to break down around
  17983. ' m=0.95 (~154°), but this script will continue to work until M_MAX, m=0.993 (~169°). If you wish to ignore self-intersecting curves, set ignoreSelfIntersecting to True
  17984. ' * When the only known values are length and height, it is actually possible for certain ratios of height to length to have two valid m values (thus 2 possible widths
  17985. ' and angles). This script will return them both.
  17986. ' * Only the first two valid parameters (of the required ones) will be used, meaning if all four are connected (length, width or a PtB, height, and angle), this script will
  17987. ' only use length and width (or a PtB).
  17988. ' * Depending on the magnitude of your inputs (say if they're really small, like if length &lt; 10), you might have to increase the constant ROUNDTO at the bottom
  17989. '
  17990. ' REFERENCES:
  17991. ' {1} "The elastic rod" by M.E. Pacheco Q. &amp; E. Pina, http://www.scielo.org.mx/pdf/rmfe/v53n2/v53n2a8.pdf
  17992. ' {2} "An experiment in nonlinear beam theory" by A. Valiente, http://www.deepdyve.com/lp/doc/I3lwnxdfGz , also here: http://tiny.cc/Valiente_AEiNBT
  17993. ' {3} "Snap buckling, writhing and Loop formation In twisted rods" by V.G.A. GOSS, http://myweb.lsbu.ac.uk/~gossga/thesisFinal.pdf
  17994. ' {4} "Theory of Elastic Stability" by Stephen Timoshenko, http://www.scribd.com/doc/50402462/Timoshenko-Theory-of-Elastic-Stability (start on p. 76)
  17995. '
  17996. ' INPUT:
  17997. ' PtA - First anchor point (required)
  17998. ' PtB - Second anchor point (optional, though 2 out of the 4--length, width, height, angle--need to be specified)
  17999. ' [note that PtB can be the same as PtA (meaning width would be zero)]
  18000. ' [also note that if a different width is additionally specified that's not equal to the distance between PtA and PtB, then the end point will not equal PtB anymore]
  18001. ' Pln - Plane of the bent rod/wire, which bends up in the +y direction. The line between PtA and PtB (if specified) must be parallel to the x-axis of this plane
  18002. '
  18003. ' ** 2 of the following 4 need to be specified **
  18004. ' Len - Length of the rod/wire, which needs to be &gt; 0
  18005. ' Wid - Width between the endpoints of the curve [note: if PtB is specified in addition, and distance between PtA and PtB &lt;&gt; width, the end point will be relocated
  18006. ' Ht - Height of the bent rod/wire (when negative, curve will bend downward, relative to the input plane, instead)
  18007. ' Ang - Inner departure angle or tangent angle (in radians) at the ends of the bent rod/wire. Set up so as width approaches length (thus height approaches zero), angle approaches zero
  18008. '
  18009. ' * Following variables only needed for optional calculating of bending force, not for shape of curve.
  18010. ' E - Young's modulus (modulus of elasticity) in GPa (=N/m^2) (material-specific. for example, 7075 aluminum is roughly 71.7 GPa)
  18011. ' I - Second moment of area (or area moment of inertia) in m^4 (cross-section-specific. for example, a hollow rod
  18012. ' would have I = pi * (outer_diameter^4 - inner_diameter^4) / 32
  18013. ' Note: E*I is also known as flexural rigidity or bending stiffness
  18014. '
  18015. ' OUTPUT:
  18016. ' out - only for debugging messages
  18017. ' Pts - the list of points that approximate the shape of the elastica
  18018. ' Crv - the 3rd-degree curve interpolated from those points (with accurate start &amp; end tangents)
  18019. ' L - the length of the rod/wire
  18020. ' W - the distance (width) between the endpoints of the rod/wire
  18021. ' H - the height of the bent rod/wire
  18022. ' A - the tangent angle at the (start) end of the rod/wire
  18023. ' F - the force needed to hold the rod/wire in a specific shape (based on the material properties &amp; cross-section) **be sure your units for 'I' match your units for the
  18024. ' rest of your inputs (length, width, etc.). Also note that the critical buckling load (force) that makes the rod/wire start to bend can be found at height=0
  18025. '
  18026. ' THANKS TO:
  18027. ' Mårten Nettelbladt (thegeometryofbending.blogspot.com)
  18028. ' Daniel Piker (Kangaroo plugin)
  18029. ' David Rutten (Grasshopper guru)
  18030. ' Euler &amp; Bernoulli (the O.G.'s)
  18031. '
  18032. ' -----------------------------------------------------------------
  18033. Dim ignoreSelfIntersecting As Boolean = False ' set to True if you don't want to output curves where width &lt; 0, which creates a self-intersecting curve
  18034. Dim inCt As Integer = 0 ' count the number of required parameters that are receiving data
  18035. Dim length As Double
  18036. Dim width As System.Object = Nothing ' need to set as Nothing so we can check if it has been assigned a value later
  18037. Dim height As Double
  18038. Dim angle As Double
  18039. Dim m As Double
  18040. Dim multiple_m As New List(Of Double)
  18041. Dim AtoB As Line
  18042. Dim flip_H As Boolean = False ' if height is negative, this flag will be set
  18043. Dim flip_A As Boolean = False ' if angle is negative, this flag will be set
  18044. If Not IsSet("Pln") Then
  18045. Msg("error", "Base plane is not set")
  18046. Return
  18047. End If
  18048. If Not IsSet("PtA") Then
  18049. Msg("error", "Point A is not set")
  18050. Return
  18051. End If
  18052. If Math.Round(Pln.DistanceTo(PtA), Defined.ROUNDTO) &lt;&gt; 0 Then
  18053. Msg("error", "Point A is not on the base plane")
  18054. Return
  18055. End If
  18056. Dim refPlane As Plane = Pln ' create a reference plane = input plane and set the origin of it to PtA in case PtA isn't the origin already
  18057. refPlane.Origin = PtA
  18058. If IsSet("PtB") Then
  18059. If Math.Round(Pln.DistanceTo(PtB), Defined.ROUNDTO) &lt;&gt; 0 Then
  18060. Msg("error", "Point B is not on the base plane")
  18061. Return
  18062. End If
  18063. AtoB = New Line(PtA, PtB)
  18064. If AtoB.Length &lt;&gt; 0 And Not AtoB.Direction.IsPerpendicularTo(Pln.YAxis) Then
  18065. Msg("error", "The line between PtA and PtB is not perpendicular to the Y-axis of the specified plane")
  18066. Return
  18067. End If
  18068. inCt += 1
  18069. If IsSet("Wid") Then Msg("info", "Wid will override the distance between PtA and PtB. If you do not want this to happen, disconnect PtB or Wid.")
  18070. width = PtA.DistanceTo(PtB) ' get the width (distance) between PtA and PtB
  18071. Dim refPtB As Point3d
  18072. refPlane.RemapToPlaneSpace(PtB, refPtB)
  18073. If refPtB.X &lt; 0 Then width = -width ' check if PtB is to the left of PtA...if so, width is negative
  18074. End If
  18075. If IsSet("Len") Then inCt += 1
  18076. If IsSet("Wid") Then inCt += 1
  18077. If IsSet("Ht") Then inCt += 1
  18078. If IsSet("Ang") Then inCt += 1
  18079. If inCt &gt; 2 Then Msg("info", "More parameters set than are required (out of length, width, height, angle). Only using the first two valid ones.")
  18080. ' check for connected/specified inputs. note: only the first two that it comes across will be used
  18081. If IsSet("Len") Then ' if length is specified then...
  18082. If Len &lt;= 0 Then
  18083. Msg("error", "Length cannot be negative or zero")
  18084. Return
  18085. End If
  18086. If IsSet("Wid") Then ' find height &amp; angle based on length and specified width
  18087. If Wid &gt; Len Then
  18088. Msg("error", "Width is greater than length")
  18089. Return
  18090. End If
  18091. If Wid = Len Then ' skip the solver and set the known values
  18092. height = 0
  18093. m = 0
  18094. angle = 0
  18095. width = Wid
  18096. Else
  18097. m = SolveMFromLenWid(Len, Wid)
  18098. height = Cal_H(Len, m) ' L * Sqrt(m) / K(m)
  18099. angle = Cal_A(m) ' Acos(1 - 2 * m)
  18100. width = Wid
  18101. End If
  18102. Else If width IsNot Nothing Then ' find height &amp; angle based on length and calculated width (distance between PtA and PtB)
  18103. If width &gt; Len Then
  18104. Msg("error", "Width is greater than length")
  18105. Return
  18106. End If
  18107. If width = Len Then ' skip the solver and set the known values
  18108. height = 0
  18109. m = 0
  18110. angle = 0
  18111. Else
  18112. m = SolveMFromLenWid(Len, width)
  18113. height = Cal_H(Len, m) ' L * Sqrt(m) / K(m)
  18114. angle = Cal_A(m) ' Acos(1 - 2 * m)
  18115. End If
  18116. Else If IsSet("Ht") Then ' find width &amp; angle based on length and height ** possible to return 2 results **
  18117. If Math.Abs(Ht / Len) &gt; Defined.MAX_HL_RATIO Then
  18118. Msg("error", "Height not possible with given length")
  18119. Return
  18120. End If
  18121. If Ht &lt; 0 Then
  18122. Ht = -Ht ' if height is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  18123. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  18124. flip_A = True
  18125. flip_H = True
  18126. End If
  18127. If Ht = 0 Then ' skip the solver and set the known values
  18128. width = Len
  18129. angle = 0
  18130. Else
  18131. multiple_m = SolveMFromLenHt(Len, Ht) ' note that it's possible for two values of m to be found if height is close to max height
  18132. If multiple_m.Count = 1 Then ' if there's only one m value returned, calculate the width &amp; angle here. we'll deal with multiple m values later
  18133. m = multiple_m.Item(0)
  18134. width = Cal_W(Len, m) ' L * (2 * E(m) / K(m) - 1)
  18135. angle = Cal_A(m) ' Acos(1 - 2 * m)
  18136. End If
  18137. End If
  18138. height = Ht
  18139. Else If IsSet("Ang") Then ' find width &amp; height based on length and angle
  18140. If Ang &lt; 0 Then
  18141. Ang = -Ang ' if angle is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  18142. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  18143. flip_A = True
  18144. flip_H = True
  18145. End If
  18146. m = Cal_M(Ang) ' (1 - Cos(a)) / 2
  18147. If Ang = 0 Then ' skip the solver and set the known values
  18148. width = Len
  18149. height = 0
  18150. Else
  18151. width = Cal_W(Len, m) ' L * (2 * E(m) / K(m) - 1)
  18152. height = Cal_H(Len, m) ' L * Sqrt(m) / K(m)
  18153. End If
  18154. angle = Ang
  18155. Else
  18156. Msg("error", "Need to specify one more parameter in addition to length")
  18157. Return
  18158. End If
  18159. length = Len
  18160. Else If IsSet("Wid") Then ' if width is specified then...
  18161. If IsSet("Ht") Then ' find length &amp; angle based on specified width and height
  18162. If Ht &lt; 0 Then
  18163. Ht = -Ht ' if height is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  18164. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  18165. flip_A = True
  18166. flip_H = True
  18167. End If
  18168. If Ht = 0 Then ' skip the solver and set the known values
  18169. length = Wid
  18170. angle = 0
  18171. Else
  18172. m = SolveMFromWidHt(Wid, Ht)
  18173. length = Cal_L(Ht, m) ' h * K(m) / Sqrt(m)
  18174. angle = Cal_A(m) ' Acos(1 - 2 * m)
  18175. End If
  18176. height = Ht
  18177. Else If IsSet("Ang") Then ' find length &amp; height based on specified width and angle
  18178. If Wid = 0 Then
  18179. Msg("error", "Curve not possible with width = 0 and an angle as inputs")
  18180. Return
  18181. End If
  18182. If Ang &lt; 0 Then
  18183. Ang = -Ang ' if angle is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  18184. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  18185. flip_A = True
  18186. flip_H = True
  18187. End If
  18188. m = Cal_M(Ang) ' (1 - Cos(a)) / 2
  18189. If Ang = 0 Then ' skip the solver and set the known values
  18190. length = Wid
  18191. height = 0
  18192. Else
  18193. length = Wid / (2 * EllipticE(m) / EllipticK(m) - 1)
  18194. If length &lt; 0 Then
  18195. Msg("error", "Curve not possible at specified width and angle (calculated length is negative)")
  18196. Return
  18197. End If
  18198. height = Cal_H(length, m) ' L * Sqrt(m) / K(m)
  18199. End If
  18200. angle = Ang
  18201. Else
  18202. Msg("error", "Need to specify one more parameter in addition to width (Wid)")
  18203. Return
  18204. End If
  18205. width = Wid
  18206. Else If width IsNot Nothing Then ' if width is determined by PtA and PtB then...
  18207. If IsSet("Ht") Then ' find length &amp; angle based on calculated width and height
  18208. If Ht &lt; 0 Then
  18209. Ht = -Ht ' if height is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  18210. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  18211. flip_A = True
  18212. flip_H = True
  18213. End If
  18214. If Ht = 0 Then ' skip the solver and set the known values
  18215. length = width
  18216. angle = 0
  18217. Else
  18218. m = SolveMFromWidHt(width, Ht)
  18219. length = Cal_L(Ht, m) ' h * K(m) / Sqrt(m)
  18220. angle = Cal_A(m) ' Acos(1 - 2 * m)
  18221. End If
  18222. height = Ht
  18223. Else If IsSet("Ang") Then ' find length &amp; height based on calculated width and angle
  18224. If width = 0 Then
  18225. Msg("error", "Curve not possible with width = 0 and an angle as inputs")
  18226. Return
  18227. End If
  18228. If Ang &lt; 0 Then
  18229. Ang = -Ang ' if angle is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  18230. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  18231. flip_A = True
  18232. flip_H = True
  18233. End If
  18234. m = Cal_M(Ang) ' (1 - Cos(a)) / 2
  18235. If Ang = 0 Then ' skip the solver and set the known values
  18236. length = width
  18237. height = 0
  18238. Else
  18239. length = width / (2 * EllipticE(m) / EllipticK(m) - 1)
  18240. If length &lt; 0 Then
  18241. Msg("error", "Curve not possible at specified width and angle (calculated length is negative)")
  18242. Return
  18243. End If
  18244. height = Cal_H(length, m) ' L * Sqrt(m) / K(m)
  18245. End If
  18246. angle = Ang
  18247. Else
  18248. Msg("error", "Need to specify one more parameter in addition to PtA and PtB")
  18249. Return
  18250. End If
  18251. Else If IsSet("Ht") Then ' if height is specified then...
  18252. If IsSet("Ang") Then ' find length &amp; width based on height and angle
  18253. If Ht &lt; 0 Then
  18254. Ht = -Ht ' if height is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  18255. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  18256. flip_H = True
  18257. flip_A = True
  18258. End If
  18259. If Ht = 0 Then
  18260. Msg("error", "Height can't = 0 if only height and angle are specified")
  18261. Return
  18262. Else
  18263. If Ang &lt; 0 Then
  18264. Ang = -Ang ' if angle is negative, set it to positive (for the calculations) but flip the reference plane about its x-axis
  18265. refPlane.Transform(Transform.Mirror(New Plane(refPlane.Origin, refPlane.XAxis, refPlane.ZAxis)))
  18266. flip_A = Not flip_A
  18267. flip_H = Not flip_H
  18268. End If
  18269. m = Cal_M(Ang) ' (1 - Cos(a)) / 2
  18270. If Ang = 0 Then
  18271. Msg("error", "Angle can't = 0 if only height and angle are specified")
  18272. Return
  18273. Else
  18274. length = Cal_L(Ht, m) ' h * K(m) / Sqrt(m)
  18275. width = Cal_W(length, m) ' L * (2 * E(m) / K(m) - 1)
  18276. End If
  18277. angle = Ang
  18278. End If
  18279. height = Ht
  18280. Else
  18281. Msg("error", "Need to specify one more parameter in addition to height")
  18282. Return
  18283. End If
  18284. Else If IsSet("Ang") Then
  18285. Msg("error", "Need to specify one more parameter in addition to angle")
  18286. Return
  18287. Else
  18288. Msg("error", "Need to specify two of the four parameters: length, width (or PtB), height, and angle")
  18289. Return
  18290. End If
  18291. If m &gt; Defined.M_MAX Then
  18292. Msg("error", "Form of curve not solvable with current algorithm and given inputs")
  18293. Return
  18294. End If
  18295. refPlane.Origin = refPlane.PointAt(width / 2, 0, 0) ' adjust the origin of the reference plane so that the curve is centered about the y-axis (start of the curve is at x = -width/2)
  18296. If multiple_m.Count &gt; 1 Then ' if there is more than one m value returned, calculate the width, angle, and curve for each
  18297. Dim multi_pts As New DataTree(Of Point3d)
  18298. Dim multi_crv As New List(Of Curve)
  18299. Dim tmp_pts As New List(Of Point3d)
  18300. Dim multi_W, multi_A, multi_F As New List(Of Double)
  18301. Dim j As Integer = 0 ' used for creating a new branch (GH_Path) for storing pts which is itself a list of points
  18302. For Each m_val As Double In multiple_m
  18303. width = Cal_W(length, m_val) 'length * (2 * EllipticE(m_val) / EllipticK(m_val) - 1)
  18304. If width &lt; 0 And ignoreSelfIntersecting Then
  18305. Msg("warning", "One curve is self-intersecting. To enable these, set ignoreSelfIntersecting to False")
  18306. Continue For
  18307. End If
  18308. If m_val &gt;= Defined.M_SKETCHY Then Msg("info", "Accuracy of the curve whose width = " &amp; Math.Round(width, 4) &amp; " is not guaranteed")
  18309. angle = Cal_A(m_val) 'Math.Asin(2 * m_val - 1)
  18310. refPlane.Origin = refPlane.PointAt(width / 2, 0, 0) ' adjust the origin of the reference plane so that the curve is centered about the y-axis (start of the curve is at x = -width/2)
  18311. tmp_pts = FindBendForm(length, width, m_val, angle, refPlane)
  18312. multi_pts.AddRange(tmp_pts, New GH_Path(j))
  18313. multi_crv.Add(MakeCurve(tmp_pts, angle, refPlane))
  18314. multi_W.Add(width)
  18315. If flip_A Then angle = -angle
  18316. multi_A.Add(angle)
  18317. E = E * 10 ^ 9 ' Young's modulus input E is in GPa, so we convert to Pa here (= N/m^2)
  18318. multi_F.Add(EllipticK(m_val) ^ 2 * E * I / length ^ 2) ' from reference {4} pg. 79
  18319. j += 1
  18320. refPlane.Origin = PtA ' reset the reference plane origin to PtA for the next m_val
  18321. 'Print("length=" &amp; length &amp; ", width=" &amp; width &amp; ", height=" &amp; height &amp; ", angle=" &amp; angle &amp; ", m=" &amp; m_val &amp; ", k=" &amp; Math.Sqrt(m_val) &amp; ", w/L=" &amp; width / length &amp; ", h/L=" &amp; height / length &amp; ", w/h=" &amp; width / height)
  18322. Next
  18323. ' assign the outputs
  18324. Pts = multi_pts
  18325. Crv = multi_crv
  18326. L = length
  18327. W = multi_W
  18328. If flip_H Then height = -height
  18329. H = height
  18330. A = multi_A
  18331. F = multi_F
  18332. Else ' only deal with the single m value
  18333. If m &gt;= Defined.M_SKETCHY Then Msg("info", "Accuracy of the curve at these parameters is not guaranteed")
  18334. If width &lt; 0 And ignoreSelfIntersecting Then
  18335. Msg("error", "Curve is self-intersecting. To enable these, set ignoreSelfIntersecting to False")
  18336. Return
  18337. End If
  18338. Pts = FindBendForm(length, width, m, angle, refPlane)
  18339. Crv = MakeCurve(pts, angle, refPlane)
  18340. L = length
  18341. W = width
  18342. If flip_H Then height = -height
  18343. H = height
  18344. If flip_A Then angle = -angle
  18345. A = angle
  18346. E = E * 10 ^ 9 ' Young's modulus input E is in GPa, so we convert to Pa here (= N/m^2)
  18347. F = EllipticK(m) ^ 2 * E * I / length ^ 2 ' from reference {4} pg. 79. Note: the critical buckling (that makes the rod/wire start to bend) can be found at height=0 (width=length)
  18348. 'height = Math.Sqrt(((2 * Len / 5) ^ 2 - ((Wid - Len / 5) / 2) ^ 2) ' quick approximation discovered by Mårten of 'Geometry of Bending' fame ( http://tiny.cc/it2pbx )
  18349. 'width = (Len +/- 2 * Math.Sqrt(4 * Len ^ 2 - 25 * Ht ^ 2)) / 5 ' derived from above
  18350. 'length = (2 * Math.Sqrt(15 * Ht ^ 2 + 4 * Wid ^ 2) - Wid) / 3 ' derived from above
  18351. 'Print("length=" &amp; length &amp; ", width=" &amp; width &amp; ", height=" &amp; height &amp; ", angle=" &amp; angle &amp; ", m=" &amp; m &amp; ", k=" &amp; Math.Sqrt(m) &amp; ", w/L=" &amp; width / length &amp; ", h/L=" &amp; height / length &amp; ", w/h=" &amp; width / height)
  18352. End If
  18353. </item>
  18354. </items>
  18355. <chunks count="2">
  18356. <chunk name="Attributes">
  18357. <items count="2">
  18358. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  18359. <X>2397</X>
  18360. <Y>703</Y>
  18361. <W>84</W>
  18362. <H>184</H>
  18363. </item>
  18364. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  18365. <X>2439</X>
  18366. <Y>795</Y>
  18367. </item>
  18368. </items>
  18369. </chunk>
  18370. <chunk name="ParameterData">
  18371. <items count="19">
  18372. <item name="InputCount" type_name="gh_int32" type_code="3">9</item>
  18373. <item name="InputId" index="0" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  18374. <item name="InputId" index="1" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  18375. <item name="InputId" index="2" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  18376. <item name="InputId" index="3" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  18377. <item name="InputId" index="4" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  18378. <item name="InputId" index="5" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  18379. <item name="InputId" index="6" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  18380. <item name="InputId" index="7" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  18381. <item name="InputId" index="8" type_name="gh_guid" type_code="9">84fa917c-1ed8-4db3-8be1-7bdc4a6495a2</item>
  18382. <item name="OutputCount" type_name="gh_int32" type_code="3">8</item>
  18383. <item name="OutputId" index="0" type_name="gh_guid" type_code="9">3ede854e-c753-40eb-84cb-b48008f14fd4</item>
  18384. <item name="OutputId" index="1" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  18385. <item name="OutputId" index="2" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  18386. <item name="OutputId" index="3" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  18387. <item name="OutputId" index="4" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  18388. <item name="OutputId" index="5" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  18389. <item name="OutputId" index="6" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  18390. <item name="OutputId" index="7" type_name="gh_guid" type_code="9">8ec86459-bf01-4409-baee-174d0d2b13d0</item>
  18391. </items>
  18392. <chunks count="17">
  18393. <chunk name="InputParam" index="0">
  18394. <items count="11">
  18395. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  18396. <item name="Description" type_name="gh_string" type_code="10">Script Variable PtA</item>
  18397. <item name="InstanceGuid" type_name="gh_guid" type_code="9">c36c2a91-b586-4100-a3d3-5bbd29795b28</item>
  18398. <item name="Name" type_name="gh_string" type_code="10">PtA</item>
  18399. <item name="NickName" type_name="gh_string" type_code="10">PtA</item>
  18400. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  18401. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  18402. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  18403. <item name="Source" index="0" type_name="gh_guid" type_code="9">75154365-a588-4c21-86a3-ce81e626861d</item>
  18404. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  18405. <item name="TypeHintID" type_name="gh_guid" type_code="9">e1937b56-b1da-4c12-8bd8-e34ee81746ef</item>
  18406. </items>
  18407. <chunks count="1">
  18408. <chunk name="Attributes">
  18409. <items count="2">
  18410. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  18411. <X>2399</X>
  18412. <Y>705</Y>
  18413. <W>25</W>
  18414. <H>20</H>
  18415. </item>
  18416. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  18417. <X>2413</X>
  18418. <Y>715</Y>
  18419. </item>
  18420. </items>
  18421. </chunk>
  18422. </chunks>
  18423. </chunk>
  18424. <chunk name="InputParam" index="1">
  18425. <items count="10">
  18426. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  18427. <item name="Description" type_name="gh_string" type_code="10">Script Variable PtB</item>
  18428. <item name="InstanceGuid" type_name="gh_guid" type_code="9">c03912a8-42cd-4a8e-b0e4-d859c1258a99</item>
  18429. <item name="Name" type_name="gh_string" type_code="10">PtB</item>
  18430. <item name="NickName" type_name="gh_string" type_code="10">PtB</item>
  18431. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  18432. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  18433. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  18434. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  18435. <item name="TypeHintID" type_name="gh_guid" type_code="9">e1937b56-b1da-4c12-8bd8-e34ee81746ef</item>
  18436. </items>
  18437. <chunks count="1">
  18438. <chunk name="Attributes">
  18439. <items count="2">
  18440. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  18441. <X>2399</X>
  18442. <Y>725</Y>
  18443. <W>25</W>
  18444. <H>20</H>
  18445. </item>
  18446. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  18447. <X>2413</X>
  18448. <Y>735</Y>
  18449. </item>
  18450. </items>
  18451. </chunk>
  18452. </chunks>
  18453. </chunk>
  18454. <chunk name="InputParam" index="2">
  18455. <items count="11">
  18456. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  18457. <item name="Description" type_name="gh_string" type_code="10">Script Variable Pln</item>
  18458. <item name="InstanceGuid" type_name="gh_guid" type_code="9">f51b86ed-0366-4427-847a-63fd2fd6bf90</item>
  18459. <item name="Name" type_name="gh_string" type_code="10">Pln</item>
  18460. <item name="NickName" type_name="gh_string" type_code="10">Pln</item>
  18461. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  18462. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  18463. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  18464. <item name="Source" index="0" type_name="gh_guid" type_code="9">f3933593-ac71-4dcf-9de1-01828b79508a</item>
  18465. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  18466. <item name="TypeHintID" type_name="gh_guid" type_code="9">3897522d-58e9-4d60-b38c-978ddacfedd8</item>
  18467. </items>
  18468. <chunks count="1">
  18469. <chunk name="Attributes">
  18470. <items count="2">
  18471. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  18472. <X>2399</X>
  18473. <Y>745</Y>
  18474. <W>25</W>
  18475. <H>20</H>
  18476. </item>
  18477. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  18478. <X>2413</X>
  18479. <Y>755</Y>
  18480. </item>
  18481. </items>
  18482. </chunk>
  18483. </chunks>
  18484. </chunk>
  18485. <chunk name="InputParam" index="3">
  18486. <items count="11">
  18487. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  18488. <item name="Description" type_name="gh_string" type_code="10">Script Variable Len</item>
  18489. <item name="InstanceGuid" type_name="gh_guid" type_code="9">7ea941b6-d28a-421f-a3f1-b6ee6ba45ce3</item>
  18490. <item name="Name" type_name="gh_string" type_code="10">Len</item>
  18491. <item name="NickName" type_name="gh_string" type_code="10">Len</item>
  18492. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  18493. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  18494. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  18495. <item name="Source" index="0" type_name="gh_guid" type_code="9">2398bd00-b514-4723-b31f-c436e1ae908b</item>
  18496. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  18497. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  18498. </items>
  18499. <chunks count="1">
  18500. <chunk name="Attributes">
  18501. <items count="2">
  18502. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  18503. <X>2399</X>
  18504. <Y>765</Y>
  18505. <W>25</W>
  18506. <H>20</H>
  18507. </item>
  18508. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  18509. <X>2413</X>
  18510. <Y>775</Y>
  18511. </item>
  18512. </items>
  18513. </chunk>
  18514. </chunks>
  18515. </chunk>
  18516. <chunk name="InputParam" index="4">
  18517. <items count="10">
  18518. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  18519. <item name="Description" type_name="gh_string" type_code="10">Script Variable Wid</item>
  18520. <item name="InstanceGuid" type_name="gh_guid" type_code="9">ca56b21d-1bf4-4ef7-9aba-89e8c40123e1</item>
  18521. <item name="Name" type_name="gh_string" type_code="10">Wid</item>
  18522. <item name="NickName" type_name="gh_string" type_code="10">Wid</item>
  18523. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  18524. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  18525. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  18526. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  18527. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  18528. </items>
  18529. <chunks count="1">
  18530. <chunk name="Attributes">
  18531. <items count="2">
  18532. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  18533. <X>2399</X>
  18534. <Y>785</Y>
  18535. <W>25</W>
  18536. <H>20</H>
  18537. </item>
  18538. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  18539. <X>2413</X>
  18540. <Y>795</Y>
  18541. </item>
  18542. </items>
  18543. </chunk>
  18544. </chunks>
  18545. </chunk>
  18546. <chunk name="InputParam" index="5">
  18547. <items count="10">
  18548. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  18549. <item name="Description" type_name="gh_string" type_code="10">Script Variable Ht</item>
  18550. <item name="InstanceGuid" type_name="gh_guid" type_code="9">01f793d6-6952-4cc0-9007-804b34e3573a</item>
  18551. <item name="Name" type_name="gh_string" type_code="10">Ht</item>
  18552. <item name="NickName" type_name="gh_string" type_code="10">Ht</item>
  18553. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  18554. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  18555. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  18556. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  18557. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  18558. </items>
  18559. <chunks count="1">
  18560. <chunk name="Attributes">
  18561. <items count="2">
  18562. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  18563. <X>2399</X>
  18564. <Y>805</Y>
  18565. <W>25</W>
  18566. <H>20</H>
  18567. </item>
  18568. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  18569. <X>2413</X>
  18570. <Y>815</Y>
  18571. </item>
  18572. </items>
  18573. </chunk>
  18574. </chunks>
  18575. </chunk>
  18576. <chunk name="InputParam" index="6">
  18577. <items count="10">
  18578. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  18579. <item name="Description" type_name="gh_string" type_code="10">Script Variable Ang</item>
  18580. <item name="InstanceGuid" type_name="gh_guid" type_code="9">d1ecc6ce-5745-410a-98ac-8cd99da220f9</item>
  18581. <item name="Name" type_name="gh_string" type_code="10">Ang</item>
  18582. <item name="NickName" type_name="gh_string" type_code="10">Ang</item>
  18583. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  18584. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  18585. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  18586. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  18587. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  18588. </items>
  18589. <chunks count="1">
  18590. <chunk name="Attributes">
  18591. <items count="2">
  18592. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  18593. <X>2399</X>
  18594. <Y>825</Y>
  18595. <W>25</W>
  18596. <H>20</H>
  18597. </item>
  18598. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  18599. <X>2413</X>
  18600. <Y>835</Y>
  18601. </item>
  18602. </items>
  18603. </chunk>
  18604. </chunks>
  18605. </chunk>
  18606. <chunk name="InputParam" index="7">
  18607. <items count="10">
  18608. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  18609. <item name="Description" type_name="gh_string" type_code="10">Script Variable E</item>
  18610. <item name="InstanceGuid" type_name="gh_guid" type_code="9">ee84edc7-8985-4013-a1da-ab406c4a251b</item>
  18611. <item name="Name" type_name="gh_string" type_code="10">E</item>
  18612. <item name="NickName" type_name="gh_string" type_code="10">E</item>
  18613. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  18614. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  18615. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  18616. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  18617. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  18618. </items>
  18619. <chunks count="1">
  18620. <chunk name="Attributes">
  18621. <items count="2">
  18622. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  18623. <X>2399</X>
  18624. <Y>845</Y>
  18625. <W>25</W>
  18626. <H>20</H>
  18627. </item>
  18628. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  18629. <X>2413</X>
  18630. <Y>855</Y>
  18631. </item>
  18632. </items>
  18633. </chunk>
  18634. </chunks>
  18635. </chunk>
  18636. <chunk name="InputParam" index="8">
  18637. <items count="10">
  18638. <item name="AllowTreeAccess" type_name="gh_bool" type_code="1">true</item>
  18639. <item name="Description" type_name="gh_string" type_code="10">Script Variable I</item>
  18640. <item name="InstanceGuid" type_name="gh_guid" type_code="9">06df9652-281a-4459-91a6-57c181550607</item>
  18641. <item name="Name" type_name="gh_string" type_code="10">I</item>
  18642. <item name="NickName" type_name="gh_string" type_code="10">I</item>
  18643. <item name="Optional" type_name="gh_bool" type_code="1">true</item>
  18644. <item name="ScriptParamAccess" type_name="gh_int32" type_code="3">0</item>
  18645. <item name="ShowTypeHints" type_name="gh_bool" type_code="1">true</item>
  18646. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  18647. <item name="TypeHintID" type_name="gh_guid" type_code="9">8e991e99-5fb8-41e1-928d-1bba8fb9f7d7</item>
  18648. </items>
  18649. <chunks count="1">
  18650. <chunk name="Attributes">
  18651. <items count="2">
  18652. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  18653. <X>2399</X>
  18654. <Y>865</Y>
  18655. <W>25</W>
  18656. <H>20</H>
  18657. </item>
  18658. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  18659. <X>2413</X>
  18660. <Y>875</Y>
  18661. </item>
  18662. </items>
  18663. </chunk>
  18664. </chunks>
  18665. </chunk>
  18666. <chunk name="OutputParam" index="0">
  18667. <items count="7">
  18668. <item name="Access" type_name="gh_int32" type_code="3">1</item>
  18669. <item name="Description" type_name="gh_string" type_code="10">Print, Reflect and Error streams</item>
  18670. <item name="InstanceGuid" type_name="gh_guid" type_code="9">c01c7c67-2ce9-42db-98c8-ac53917d2607</item>
  18671. <item name="Name" type_name="gh_string" type_code="10">out</item>
  18672. <item name="NickName" type_name="gh_string" type_code="10">out</item>
  18673. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  18674. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  18675. </items>
  18676. <chunks count="1">
  18677. <chunk name="Attributes">
  18678. <items count="2">
  18679. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  18680. <X>2454</X>
  18681. <Y>705</Y>
  18682. <W>25</W>
  18683. <H>22</H>
  18684. </item>
  18685. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  18686. <X>2466.5</X>
  18687. <Y>716.25</Y>
  18688. </item>
  18689. </items>
  18690. </chunk>
  18691. </chunks>
  18692. </chunk>
  18693. <chunk name="OutputParam" index="1">
  18694. <items count="6">
  18695. <item name="Description" type_name="gh_string" type_code="10">Output parameter Pts</item>
  18696. <item name="InstanceGuid" type_name="gh_guid" type_code="9">03112bf2-28fb-457f-b3d5-277c7e00bc21</item>
  18697. <item name="Name" type_name="gh_string" type_code="10">Pts</item>
  18698. <item name="NickName" type_name="gh_string" type_code="10">Pts</item>
  18699. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  18700. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  18701. </items>
  18702. <chunks count="1">
  18703. <chunk name="Attributes">
  18704. <items count="2">
  18705. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  18706. <X>2454</X>
  18707. <Y>727</Y>
  18708. <W>25</W>
  18709. <H>23</H>
  18710. </item>
  18711. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  18712. <X>2466.5</X>
  18713. <Y>738.75</Y>
  18714. </item>
  18715. </items>
  18716. </chunk>
  18717. </chunks>
  18718. </chunk>
  18719. <chunk name="OutputParam" index="2">
  18720. <items count="6">
  18721. <item name="Description" type_name="gh_string" type_code="10">Output parameter Crv</item>
  18722. <item name="InstanceGuid" type_name="gh_guid" type_code="9">49ed72a9-4d6b-4881-ac0f-b8700f17fd26</item>
  18723. <item name="Name" type_name="gh_string" type_code="10">Crv</item>
  18724. <item name="NickName" type_name="gh_string" type_code="10">Crv</item>
  18725. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  18726. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  18727. </items>
  18728. <chunks count="1">
  18729. <chunk name="Attributes">
  18730. <items count="2">
  18731. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  18732. <X>2454</X>
  18733. <Y>750</Y>
  18734. <W>25</W>
  18735. <H>22</H>
  18736. </item>
  18737. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  18738. <X>2466.5</X>
  18739. <Y>761.25</Y>
  18740. </item>
  18741. </items>
  18742. </chunk>
  18743. </chunks>
  18744. </chunk>
  18745. <chunk name="OutputParam" index="3">
  18746. <items count="6">
  18747. <item name="Description" type_name="gh_string" type_code="10">Output parameter L</item>
  18748. <item name="InstanceGuid" type_name="gh_guid" type_code="9">88bfd5c3-b1ad-4215-961b-9ab638f2cfd6</item>
  18749. <item name="Name" type_name="gh_string" type_code="10">L</item>
  18750. <item name="NickName" type_name="gh_string" type_code="10">L</item>
  18751. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  18752. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  18753. </items>
  18754. <chunks count="1">
  18755. <chunk name="Attributes">
  18756. <items count="2">
  18757. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  18758. <X>2454</X>
  18759. <Y>772</Y>
  18760. <W>25</W>
  18761. <H>23</H>
  18762. </item>
  18763. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  18764. <X>2466.5</X>
  18765. <Y>783.75</Y>
  18766. </item>
  18767. </items>
  18768. </chunk>
  18769. </chunks>
  18770. </chunk>
  18771. <chunk name="OutputParam" index="4">
  18772. <items count="6">
  18773. <item name="Description" type_name="gh_string" type_code="10">Output parameter W</item>
  18774. <item name="InstanceGuid" type_name="gh_guid" type_code="9">5419ee09-aef9-46c4-abed-2d8045ba1ca7</item>
  18775. <item name="Name" type_name="gh_string" type_code="10">W</item>
  18776. <item name="NickName" type_name="gh_string" type_code="10">W</item>
  18777. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  18778. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  18779. </items>
  18780. <chunks count="1">
  18781. <chunk name="Attributes">
  18782. <items count="2">
  18783. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  18784. <X>2454</X>
  18785. <Y>795</Y>
  18786. <W>25</W>
  18787. <H>22</H>
  18788. </item>
  18789. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  18790. <X>2466.5</X>
  18791. <Y>806.25</Y>
  18792. </item>
  18793. </items>
  18794. </chunk>
  18795. </chunks>
  18796. </chunk>
  18797. <chunk name="OutputParam" index="5">
  18798. <items count="6">
  18799. <item name="Description" type_name="gh_string" type_code="10">Output parameter H</item>
  18800. <item name="InstanceGuid" type_name="gh_guid" type_code="9">b01ed3c0-f6fa-4b63-bd7e-3eef2c0d55a4</item>
  18801. <item name="Name" type_name="gh_string" type_code="10">H</item>
  18802. <item name="NickName" type_name="gh_string" type_code="10">H</item>
  18803. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  18804. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  18805. </items>
  18806. <chunks count="1">
  18807. <chunk name="Attributes">
  18808. <items count="2">
  18809. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  18810. <X>2454</X>
  18811. <Y>817</Y>
  18812. <W>25</W>
  18813. <H>23</H>
  18814. </item>
  18815. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  18816. <X>2466.5</X>
  18817. <Y>828.75</Y>
  18818. </item>
  18819. </items>
  18820. </chunk>
  18821. </chunks>
  18822. </chunk>
  18823. <chunk name="OutputParam" index="6">
  18824. <items count="6">
  18825. <item name="Description" type_name="gh_string" type_code="10">Output parameter A</item>
  18826. <item name="InstanceGuid" type_name="gh_guid" type_code="9">7adf1044-78f7-4bcc-874b-e500d7bbbd0d</item>
  18827. <item name="Name" type_name="gh_string" type_code="10">A</item>
  18828. <item name="NickName" type_name="gh_string" type_code="10">A</item>
  18829. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  18830. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  18831. </items>
  18832. <chunks count="1">
  18833. <chunk name="Attributes">
  18834. <items count="2">
  18835. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  18836. <X>2454</X>
  18837. <Y>840</Y>
  18838. <W>25</W>
  18839. <H>22</H>
  18840. </item>
  18841. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  18842. <X>2466.5</X>
  18843. <Y>851.25</Y>
  18844. </item>
  18845. </items>
  18846. </chunk>
  18847. </chunks>
  18848. </chunk>
  18849. <chunk name="OutputParam" index="7">
  18850. <items count="6">
  18851. <item name="Description" type_name="gh_string" type_code="10">Output parameter F</item>
  18852. <item name="InstanceGuid" type_name="gh_guid" type_code="9">06232a84-6a80-4dfa-8393-98b404b97208</item>
  18853. <item name="Name" type_name="gh_string" type_code="10">F</item>
  18854. <item name="NickName" type_name="gh_string" type_code="10">F</item>
  18855. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  18856. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  18857. </items>
  18858. <chunks count="1">
  18859. <chunk name="Attributes">
  18860. <items count="2">
  18861. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  18862. <X>2454</X>
  18863. <Y>862</Y>
  18864. <W>25</W>
  18865. <H>23</H>
  18866. </item>
  18867. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  18868. <X>2466.5</X>
  18869. <Y>873.75</Y>
  18870. </item>
  18871. </items>
  18872. </chunk>
  18873. </chunks>
  18874. </chunk>
  18875. </chunks>
  18876. </chunk>
  18877. </chunks>
  18878. </chunk>
  18879. </chunks>
  18880. </chunk>
  18881. <chunk name="Object" index="140">
  18882. <items count="2">
  18883. <item name="GUID" type_name="gh_guid" type_code="9">57da07bd-ecab-415d-9d86-af36d7073abc</item>
  18884. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  18885. </items>
  18886. <chunks count="1">
  18887. <chunk name="Container">
  18888. <items count="6">
  18889. <item name="Description" type_name="gh_string" type_code="10">Numeric slider for single values</item>
  18890. <item name="InstanceGuid" type_name="gh_guid" type_code="9">2398bd00-b514-4723-b31f-c436e1ae908b</item>
  18891. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  18892. <item name="NickName" type_name="gh_string" type_code="10">length</item>
  18893. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  18894. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  18895. </items>
  18896. <chunks count="2">
  18897. <chunk name="Attributes">
  18898. <items count="2">
  18899. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  18900. <X>1782</X>
  18901. <Y>726</Y>
  18902. <W>382</W>
  18903. <H>20</H>
  18904. </item>
  18905. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  18906. <X>1782.348</X>
  18907. <Y>726.8306</Y>
  18908. </item>
  18909. </items>
  18910. </chunk>
  18911. <chunk name="Slider">
  18912. <items count="7">
  18913. <item name="Digits" type_name="gh_int32" type_code="3">2</item>
  18914. <item name="GripDisplay" type_name="gh_int32" type_code="3">1</item>
  18915. <item name="Interval" type_name="gh_int32" type_code="3">0</item>
  18916. <item name="Max" type_name="gh_double" type_code="6">400</item>
  18917. <item name="Min" type_name="gh_double" type_code="6">0</item>
  18918. <item name="SnapCount" type_name="gh_int32" type_code="3">0</item>
  18919. <item name="Value" type_name="gh_double" type_code="6">250</item>
  18920. </items>
  18921. </chunk>
  18922. </chunks>
  18923. </chunk>
  18924. </chunks>
  18925. </chunk>
  18926. <chunk name="Object" index="141">
  18927. <items count="2">
  18928. <item name="GUID" type_name="gh_guid" type_code="9">3581f42a-9592-4549-bd6b-1c0fc39d067b</item>
  18929. <item name="Name" type_name="gh_string" type_code="10">Construct Point</item>
  18930. </items>
  18931. <chunks count="1">
  18932. <chunk name="Container">
  18933. <items count="4">
  18934. <item name="Description" type_name="gh_string" type_code="10">Construct a point from {xyz} coordinates.</item>
  18935. <item name="InstanceGuid" type_name="gh_guid" type_code="9">cf3f354f-4379-4525-be10-5b0dbf31bcff</item>
  18936. <item name="Name" type_name="gh_string" type_code="10">Construct Point</item>
  18937. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  18938. </items>
  18939. <chunks count="5">
  18940. <chunk name="Attributes">
  18941. <items count="2">
  18942. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  18943. <X>2254</X>
  18944. <Y>641</Y>
  18945. <W>67</W>
  18946. <H>64</H>
  18947. </item>
  18948. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  18949. <X>2285</X>
  18950. <Y>673</Y>
  18951. </item>
  18952. </items>
  18953. </chunk>
  18954. <chunk name="param_input" index="0">
  18955. <items count="7">
  18956. <item name="Description" type_name="gh_string" type_code="10">{x} coordinate</item>
  18957. <item name="InstanceGuid" type_name="gh_guid" type_code="9">661f67f9-9359-4ee5-a58c-df76414fabf0</item>
  18958. <item name="Name" type_name="gh_string" type_code="10">X coordinate</item>
  18959. <item name="NickName" type_name="gh_string" type_code="10">X</item>
  18960. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  18961. <item name="Source" index="0" type_name="gh_guid" type_code="9">c2ff491e-b898-432c-8e6a-7db46434934a</item>
  18962. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  18963. </items>
  18964. <chunks count="2">
  18965. <chunk name="Attributes">
  18966. <items count="2">
  18967. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  18968. <X>2256</X>
  18969. <Y>643</Y>
  18970. <W>14</W>
  18971. <H>20</H>
  18972. </item>
  18973. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  18974. <X>2264.5</X>
  18975. <Y>653</Y>
  18976. </item>
  18977. </items>
  18978. </chunk>
  18979. <chunk name="PersistentData">
  18980. <items count="1">
  18981. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  18982. </items>
  18983. <chunks count="1">
  18984. <chunk name="Branch" index="0">
  18985. <items count="2">
  18986. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  18987. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  18988. </items>
  18989. <chunks count="1">
  18990. <chunk name="Item" index="0">
  18991. <items count="1">
  18992. <item name="number" type_name="gh_double" type_code="6">0</item>
  18993. </items>
  18994. </chunk>
  18995. </chunks>
  18996. </chunk>
  18997. </chunks>
  18998. </chunk>
  18999. </chunks>
  19000. </chunk>
  19001. <chunk name="param_input" index="1">
  19002. <items count="6">
  19003. <item name="Description" type_name="gh_string" type_code="10">{y} coordinate</item>
  19004. <item name="InstanceGuid" type_name="gh_guid" type_code="9">fe9dc686-4183-43f9-863d-c8c499a24577</item>
  19005. <item name="Name" type_name="gh_string" type_code="10">Y coordinate</item>
  19006. <item name="NickName" type_name="gh_string" type_code="10">Y</item>
  19007. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  19008. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  19009. </items>
  19010. <chunks count="2">
  19011. <chunk name="Attributes">
  19012. <items count="2">
  19013. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  19014. <X>2256</X>
  19015. <Y>663</Y>
  19016. <W>14</W>
  19017. <H>20</H>
  19018. </item>
  19019. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  19020. <X>2264.5</X>
  19021. <Y>673</Y>
  19022. </item>
  19023. </items>
  19024. </chunk>
  19025. <chunk name="PersistentData">
  19026. <items count="1">
  19027. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  19028. </items>
  19029. <chunks count="1">
  19030. <chunk name="Branch" index="0">
  19031. <items count="2">
  19032. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  19033. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  19034. </items>
  19035. <chunks count="1">
  19036. <chunk name="Item" index="0">
  19037. <items count="1">
  19038. <item name="number" type_name="gh_double" type_code="6">0</item>
  19039. </items>
  19040. </chunk>
  19041. </chunks>
  19042. </chunk>
  19043. </chunks>
  19044. </chunk>
  19045. </chunks>
  19046. </chunk>
  19047. <chunk name="param_input" index="2">
  19048. <items count="6">
  19049. <item name="Description" type_name="gh_string" type_code="10">{z} coordinate</item>
  19050. <item name="InstanceGuid" type_name="gh_guid" type_code="9">878e78bd-0868-4cae-b9a9-ef4a62dac81e</item>
  19051. <item name="Name" type_name="gh_string" type_code="10">Z coordinate</item>
  19052. <item name="NickName" type_name="gh_string" type_code="10">Z</item>
  19053. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  19054. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  19055. </items>
  19056. <chunks count="2">
  19057. <chunk name="Attributes">
  19058. <items count="2">
  19059. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  19060. <X>2256</X>
  19061. <Y>683</Y>
  19062. <W>14</W>
  19063. <H>20</H>
  19064. </item>
  19065. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  19066. <X>2264.5</X>
  19067. <Y>693</Y>
  19068. </item>
  19069. </items>
  19070. </chunk>
  19071. <chunk name="PersistentData">
  19072. <items count="1">
  19073. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  19074. </items>
  19075. <chunks count="1">
  19076. <chunk name="Branch" index="0">
  19077. <items count="2">
  19078. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  19079. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  19080. </items>
  19081. <chunks count="1">
  19082. <chunk name="Item" index="0">
  19083. <items count="1">
  19084. <item name="number" type_name="gh_double" type_code="6">0</item>
  19085. </items>
  19086. </chunk>
  19087. </chunks>
  19088. </chunk>
  19089. </chunks>
  19090. </chunk>
  19091. </chunks>
  19092. </chunk>
  19093. <chunk name="param_output" index="0">
  19094. <items count="6">
  19095. <item name="Description" type_name="gh_string" type_code="10">Point coordinate</item>
  19096. <item name="InstanceGuid" type_name="gh_guid" type_code="9">75154365-a588-4c21-86a3-ce81e626861d</item>
  19097. <item name="Name" type_name="gh_string" type_code="10">Point</item>
  19098. <item name="NickName" type_name="gh_string" type_code="10">Pt</item>
  19099. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  19100. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  19101. </items>
  19102. <chunks count="1">
  19103. <chunk name="Attributes">
  19104. <items count="2">
  19105. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  19106. <X>2300</X>
  19107. <Y>643</Y>
  19108. <W>19</W>
  19109. <H>60</H>
  19110. </item>
  19111. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  19112. <X>2309.5</X>
  19113. <Y>673</Y>
  19114. </item>
  19115. </items>
  19116. </chunk>
  19117. </chunks>
  19118. </chunk>
  19119. </chunks>
  19120. </chunk>
  19121. </chunks>
  19122. </chunk>
  19123. <chunk name="Object" index="142">
  19124. <items count="2">
  19125. <item name="GUID" type_name="gh_guid" type_code="9">d5967b9f-e8ee-436b-a8ad-29fdcecf32d5</item>
  19126. <item name="Name" type_name="gh_string" type_code="10">Curve</item>
  19127. </items>
  19128. <chunks count="1">
  19129. <chunk name="Container">
  19130. <items count="7">
  19131. <item name="Description" type_name="gh_string" type_code="10">Contains a collection of generic curves</item>
  19132. <item name="InstanceGuid" type_name="gh_guid" type_code="9">934a131f-f506-4502-86d5-aca65a992e3c</item>
  19133. <item name="Name" type_name="gh_string" type_code="10">Curve</item>
  19134. <item name="NickName" type_name="gh_string" type_code="10">Crv</item>
  19135. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  19136. <item name="Source" index="0" type_name="gh_guid" type_code="9">49ed72a9-4d6b-4881-ac0f-b8700f17fd26</item>
  19137. <item name="SourceCount" type_name="gh_int32" type_code="3">1</item>
  19138. </items>
  19139. <chunks count="1">
  19140. <chunk name="Attributes">
  19141. <items count="2">
  19142. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  19143. <X>2525</X>
  19144. <Y>750</Y>
  19145. <W>50</W>
  19146. <H>24</H>
  19147. </item>
  19148. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  19149. <X>2550.661</X>
  19150. <Y>762.5297</Y>
  19151. </item>
  19152. </items>
  19153. </chunk>
  19154. </chunks>
  19155. </chunk>
  19156. </chunks>
  19157. </chunk>
  19158. <chunk name="Object" index="143">
  19159. <items count="2">
  19160. <item name="GUID" type_name="gh_guid" type_code="9">17b7152b-d30d-4d50-b9ef-c9fe25576fc2</item>
  19161. <item name="Name" type_name="gh_string" type_code="10">XY Plane</item>
  19162. </items>
  19163. <chunks count="1">
  19164. <chunk name="Container">
  19165. <items count="5">
  19166. <item name="Description" type_name="gh_string" type_code="10">World XY plane.</item>
  19167. <item name="Hidden" type_name="gh_bool" type_code="1">true</item>
  19168. <item name="InstanceGuid" type_name="gh_guid" type_code="9">b2200c91-bbca-48a4-a165-a7f1e2fe3c5f</item>
  19169. <item name="Name" type_name="gh_string" type_code="10">XY Plane</item>
  19170. <item name="NickName" type_name="gh_string" type_code="10">XY</item>
  19171. </items>
  19172. <chunks count="3">
  19173. <chunk name="Attributes">
  19174. <items count="2">
  19175. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  19176. <X>2261</X>
  19177. <Y>707</Y>
  19178. <W>64</W>
  19179. <H>28</H>
  19180. </item>
  19181. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  19182. <X>2292</X>
  19183. <Y>721</Y>
  19184. </item>
  19185. </items>
  19186. </chunk>
  19187. <chunk name="param_input" index="0">
  19188. <items count="6">
  19189. <item name="Description" type_name="gh_string" type_code="10">Origin of plane</item>
  19190. <item name="InstanceGuid" type_name="gh_guid" type_code="9">8589cc40-e2f3-4654-885c-b57ca3fd526a</item>
  19191. <item name="Name" type_name="gh_string" type_code="10">Origin</item>
  19192. <item name="NickName" type_name="gh_string" type_code="10">O</item>
  19193. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  19194. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  19195. </items>
  19196. <chunks count="2">
  19197. <chunk name="Attributes">
  19198. <items count="2">
  19199. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  19200. <X>2263</X>
  19201. <Y>709</Y>
  19202. <W>14</W>
  19203. <H>24</H>
  19204. </item>
  19205. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  19206. <X>2271.5</X>
  19207. <Y>721</Y>
  19208. </item>
  19209. </items>
  19210. </chunk>
  19211. <chunk name="PersistentData">
  19212. <items count="1">
  19213. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  19214. </items>
  19215. <chunks count="1">
  19216. <chunk name="Branch" index="0">
  19217. <items count="2">
  19218. <item name="Count" type_name="gh_int32" type_code="3">1</item>
  19219. <item name="Path" type_name="gh_string" type_code="10">{0}</item>
  19220. </items>
  19221. <chunks count="1">
  19222. <chunk name="Item" index="0">
  19223. <!--GH_Point only stores data which exists, test the existence of data fields prior to reading.-->
  19224. <items count="1">
  19225. <item name="Coordinate" type_name="gh_point3d" type_code="51">
  19226. <X>0</X>
  19227. <Y>0</Y>
  19228. <Z>0</Z>
  19229. </item>
  19230. </items>
  19231. </chunk>
  19232. </chunks>
  19233. </chunk>
  19234. </chunks>
  19235. </chunk>
  19236. </chunks>
  19237. </chunk>
  19238. <chunk name="param_output" index="0">
  19239. <items count="6">
  19240. <item name="Description" type_name="gh_string" type_code="10">World XY plane</item>
  19241. <item name="InstanceGuid" type_name="gh_guid" type_code="9">f3933593-ac71-4dcf-9de1-01828b79508a</item>
  19242. <item name="Name" type_name="gh_string" type_code="10">Plane</item>
  19243. <item name="NickName" type_name="gh_string" type_code="10">P</item>
  19244. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  19245. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  19246. </items>
  19247. <chunks count="1">
  19248. <chunk name="Attributes">
  19249. <items count="2">
  19250. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  19251. <X>2307</X>
  19252. <Y>709</Y>
  19253. <W>16</W>
  19254. <H>24</H>
  19255. </item>
  19256. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  19257. <X>2315</X>
  19258. <Y>721</Y>
  19259. </item>
  19260. </items>
  19261. </chunk>
  19262. </chunks>
  19263. </chunk>
  19264. </chunks>
  19265. </chunk>
  19266. </chunks>
  19267. </chunk>
  19268. <chunk name="Object" index="144">
  19269. <items count="2">
  19270. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  19271. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  19272. </items>
  19273. <chunks count="1">
  19274. <chunk name="Container">
  19275. <items count="8">
  19276. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  19277. <item name="InstanceGuid" type_name="gh_guid" type_code="9">c2ff491e-b898-432c-8e6a-7db46434934a</item>
  19278. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  19279. <item name="NickName" type_name="gh_string" type_code="10"></item>
  19280. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  19281. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  19282. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  19283. <item name="UserText" type_name="gh_string" type_code="10">0</item>
  19284. </items>
  19285. <chunks count="2">
  19286. <chunk name="Attributes">
  19287. <items count="5">
  19288. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  19289. <X>2170</X>
  19290. <Y>644</Y>
  19291. <W>50</W>
  19292. <H>20</H>
  19293. </item>
  19294. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  19295. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  19296. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  19297. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  19298. <X>2170.805</X>
  19299. <Y>644.7167</Y>
  19300. </item>
  19301. </items>
  19302. </chunk>
  19303. <chunk name="PanelProperties">
  19304. <items count="7">
  19305. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  19306. <ARGB>255;255;250;90</ARGB>
  19307. </item>
  19308. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  19309. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  19310. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  19311. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  19312. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  19313. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  19314. </items>
  19315. </chunk>
  19316. </chunks>
  19317. </chunk>
  19318. </chunks>
  19319. </chunk>
  19320. <chunk name="Object" index="145">
  19321. <items count="2">
  19322. <item name="GUID" type_name="gh_guid" type_code="9">7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe</item>
  19323. <item name="Name" type_name="gh_string" type_code="10">Scribble</item>
  19324. </items>
  19325. <chunks count="1">
  19326. <chunk name="Container">
  19327. <items count="13">
  19328. <item name="Bold" type_name="gh_bool" type_code="1">true</item>
  19329. <item name="Ca" type_name="gh_drawing_pointf" type_code="31">
  19330. <X>2131.598</X>
  19331. <Y>592.215</Y>
  19332. </item>
  19333. <item name="Cb" type_name="gh_drawing_pointf" type_code="31">
  19334. <X>2482.523</X>
  19335. <Y>592.215</Y>
  19336. </item>
  19337. <item name="Cc" type_name="gh_drawing_pointf" type_code="31">
  19338. <X>2482.523</X>
  19339. <Y>607.2424</Y>
  19340. </item>
  19341. <item name="Cd" type_name="gh_drawing_pointf" type_code="31">
  19342. <X>2131.598</X>
  19343. <Y>607.2424</Y>
  19344. </item>
  19345. <item name="Description" type_name="gh_string" type_code="10">A quick note</item>
  19346. <item name="Font" type_name="gh_string" type_code="10">Microsoft Sans Serif</item>
  19347. <item name="InstanceGuid" type_name="gh_guid" type_code="9">61857d57-1c68-49a3-ad6f-54433ce11822</item>
  19348. <item name="Italic" type_name="gh_bool" type_code="1">false</item>
  19349. <item name="Name" type_name="gh_string" type_code="10">Scribble</item>
  19350. <item name="NickName" type_name="gh_string" type_code="10">Scribble</item>
  19351. <item name="Size" type_name="gh_single" type_code="5">16</item>
  19352. <item name="Text" type_name="gh_string" type_code="10">Connect the Range component to Wid (ooooh)</item>
  19353. </items>
  19354. <chunks count="1">
  19355. <chunk name="Attributes">
  19356. <items count="2">
  19357. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  19358. <X>2126.598</X>
  19359. <Y>587.215</Y>
  19360. <W>360.9243</W>
  19361. <H>25.02734</H>
  19362. </item>
  19363. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  19364. <X>2131.598</X>
  19365. <Y>592.215</Y>
  19366. </item>
  19367. </items>
  19368. </chunk>
  19369. </chunks>
  19370. </chunk>
  19371. </chunks>
  19372. </chunk>
  19373. <chunk name="Object" index="146">
  19374. <items count="2">
  19375. <item name="GUID" type_name="gh_guid" type_code="9">7f5c6c55-f846-4a08-9c9a-cfdc285cc6fe</item>
  19376. <item name="Name" type_name="gh_string" type_code="10">Scribble</item>
  19377. </items>
  19378. <chunks count="1">
  19379. <chunk name="Container">
  19380. <items count="13">
  19381. <item name="Bold" type_name="gh_bool" type_code="1">true</item>
  19382. <item name="Ca" type_name="gh_drawing_pointf" type_code="31">
  19383. <X>29.21105</X>
  19384. <Y>1018.627</Y>
  19385. </item>
  19386. <item name="Cb" type_name="gh_drawing_pointf" type_code="31">
  19387. <X>472.5363</X>
  19388. <Y>1018.376</Y>
  19389. </item>
  19390. <item name="Cc" type_name="gh_drawing_pointf" type_code="31">
  19391. <X>472.5443</X>
  19392. <Y>1032.464</Y>
  19393. </item>
  19394. <item name="Cd" type_name="gh_drawing_pointf" type_code="31">
  19395. <X>29.21903</X>
  19396. <Y>1032.715</Y>
  19397. </item>
  19398. <item name="Description" type_name="gh_string" type_code="10">A quick note</item>
  19399. <item name="Font" type_name="gh_string" type_code="10">Microsoft Sans Serif</item>
  19400. <item name="InstanceGuid" type_name="gh_guid" type_code="9">a735556e-8f05-4f8e-b6ab-1cc5ff398382</item>
  19401. <item name="Italic" type_name="gh_bool" type_code="1">false</item>
  19402. <item name="Name" type_name="gh_string" type_code="10">Scribble</item>
  19403. <item name="NickName" type_name="gh_string" type_code="10">Scribble</item>
  19404. <item name="Size" type_name="gh_single" type_code="5">15</item>
  19405. <item name="Text" type_name="gh_string" type_code="10">For Force calc, Young's modulus (material-dependent, in GPa)</item>
  19406. </items>
  19407. <chunks count="1">
  19408. <chunk name="Attributes">
  19409. <items count="2">
  19410. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  19411. <X>24.21105</X>
  19412. <Y>1013.376</Y>
  19413. <W>453.3333</W>
  19414. <H>24.33868</H>
  19415. </item>
  19416. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  19417. <X>29.21105</X>
  19418. <Y>1018.627</Y>
  19419. </item>
  19420. </items>
  19421. </chunk>
  19422. </chunks>
  19423. </chunk>
  19424. </chunks>
  19425. </chunk>
  19426. <chunk name="Object" index="147">
  19427. <items count="2">
  19428. <item name="GUID" type_name="gh_guid" type_code="9">59e0b89a-e487-49f8-bab8-b5bab16be14c</item>
  19429. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  19430. </items>
  19431. <chunks count="1">
  19432. <chunk name="Container">
  19433. <items count="8">
  19434. <item name="Description" type_name="gh_string" type_code="10">A panel for custom notes and text values</item>
  19435. <item name="InstanceGuid" type_name="gh_guid" type_code="9">64b83d9b-5ae1-4022-b79e-c9135d3cdfc6</item>
  19436. <item name="Name" type_name="gh_string" type_code="10">Panel</item>
  19437. <item name="NickName" type_name="gh_string" type_code="10"></item>
  19438. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  19439. <item name="ScrollRatio" type_name="gh_double" type_code="6">0</item>
  19440. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  19441. <item name="UserText" type_name="gh_string" type_code="10">0</item>
  19442. </items>
  19443. <chunks count="2">
  19444. <chunk name="Attributes">
  19445. <items count="5">
  19446. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  19447. <X>2102</X>
  19448. <Y>767</Y>
  19449. <W>50</W>
  19450. <H>20</H>
  19451. </item>
  19452. <item name="MarginLeft" type_name="gh_int32" type_code="3">0</item>
  19453. <item name="MarginRight" type_name="gh_int32" type_code="3">0</item>
  19454. <item name="MarginTop" type_name="gh_int32" type_code="3">0</item>
  19455. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  19456. <X>2102.709</X>
  19457. <Y>767.0847</Y>
  19458. </item>
  19459. </items>
  19460. </chunk>
  19461. <chunk name="PanelProperties">
  19462. <items count="7">
  19463. <item name="Colour" type_name="gh_drawing_color" type_code="36">
  19464. <ARGB>255;255;250;90</ARGB>
  19465. </item>
  19466. <item name="DrawIndices" type_name="gh_bool" type_code="1">true</item>
  19467. <item name="DrawPaths" type_name="gh_bool" type_code="1">true</item>
  19468. <item name="Multiline" type_name="gh_bool" type_code="1">true</item>
  19469. <item name="SpecialCodes" type_name="gh_bool" type_code="1">false</item>
  19470. <item name="Stream" type_name="gh_bool" type_code="1">false</item>
  19471. <item name="Wrap" type_name="gh_bool" type_code="1">true</item>
  19472. </items>
  19473. </chunk>
  19474. </chunks>
  19475. </chunk>
  19476. </chunks>
  19477. </chunk>
  19478. <chunk name="Object" index="148">
  19479. <items count="2">
  19480. <item name="GUID" type_name="gh_guid" type_code="9">57da07bd-ecab-415d-9d86-af36d7073abc</item>
  19481. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  19482. </items>
  19483. <chunks count="1">
  19484. <chunk name="Container">
  19485. <items count="6">
  19486. <item name="Description" type_name="gh_string" type_code="10">Numeric slider for single values</item>
  19487. <item name="InstanceGuid" type_name="gh_guid" type_code="9">8162af0c-aab0-4024-a905-8206506ff4fd</item>
  19488. <item name="Name" type_name="gh_string" type_code="10">Number Slider</item>
  19489. <item name="NickName" type_name="gh_string" type_code="10">height</item>
  19490. <item name="Optional" type_name="gh_bool" type_code="1">false</item>
  19491. <item name="SourceCount" type_name="gh_int32" type_code="3">0</item>
  19492. </items>
  19493. <chunks count="2">
  19494. <chunk name="Attributes">
  19495. <items count="2">
  19496. <item name="Bounds" type_name="gh_drawing_rectanglef" type_code="35">
  19497. <X>1344</X>
  19498. <Y>308</Y>
  19499. <W>384</W>
  19500. <H>20</H>
  19501. </item>
  19502. <item name="Pivot" type_name="gh_drawing_pointf" type_code="31">
  19503. <X>1344.632</X>
  19504. <Y>308.1685</Y>
  19505. </item>
  19506. </items>
  19507. </chunk>
  19508. <chunk name="Slider">
  19509. <items count="7">
  19510. <item name="Digits" type_name="gh_int32" type_code="3">2</item>
  19511. <item name="GripDisplay" type_name="gh_int32" type_code="3">1</item>
  19512. <item name="Interval" type_name="gh_int32" type_code="3">0</item>
  19513. <item name="Max" type_name="gh_double" type_code="6">200</item>
  19514. <item name="Min" type_name="gh_double" type_code="6">-200</item>
  19515. <item name="SnapCount" type_name="gh_int32" type_code="3">0</item>
  19516. <item name="Value" type_name="gh_double" type_code="6">-56.13</item>
  19517. </items>
  19518. </chunk>
  19519. </chunks>
  19520. </chunk>
  19521. </chunks>
  19522. </chunk>
  19523. </chunks>
  19524. </chunk>
  19525. </chunks>
  19526. </chunk>
  19527. <chunk name="Thumbnail">
  19528. <items count="1">
  19529. <item name="Thumbnail" type_name="gh_drawing_bitmap" type_code="37">
  19530. <bitmap length="11104">iVBORw0KGgoAAAANSUhEUgAAAJYAAABkCAIAAADrOV6nAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAACr1SURBVHhe7X1XVFxJtuX7m3lf89Wv15p5H9Pvc9brj561erpfTRtVybuqkjdlVSp5nIQ3wnuTCem992SSDpOYxHufmXjvhAeBfFX1NLNvXkQBEsghnqjmrrMuceNGxI2MHSfixDkngn/6p93rF9ACS7vXjm2B5e6H+pfuXjuwBQDcLoQ7ELdVVd6FcGfjh9rvQrgL4Y5vgR3/A3a5cBfCHd8CO/4H7HLhLoQ7vgV2/A/Y5cJdCHd8C+z4H7DLhbsQ7vgW2PE/YJcLdyEsLa2qqqqursa93H292CRlZWUVFRUr8SUlJXhEltWR63LhFa6XloaUKPCl2TcpELlQWmVlJb6O+0rJ6+pGJkPhuDb6+rqqvljCNneKd+VC/E6j0SgUCuVyuc1mKywsJH8/fgbZyjU1NUhjNptJ2PCD8ZiTkyORSJAerYkL8JOoIICMyIJyrFYrEiBMlkZ2FCQjS0B2FELmxR2FI4Cv4BX5RdxJwMgGRS6Ulpubi2TIWFBQgNKQBgF8iKwzWThipFKpQCBAYvInkKCSwJOVJCtMVslut+fl5eEtWcI244fPvROEZAf87LPPPDw84uPjw8PDU1JSLBaLTqfDz1Or1WismJiY2NhYCoWCjwHpoqKi5ubm77///vLlyxcvXsSPR/qsrCyUo1QqtVptXV0dHr/66quoqCg+nw9UEI/IzMxM9JLi4uL6+vrr16/fuHHj2rVreNRoNHiVn58vk8mQBV8EAIgPCgri8Xhk0+NqbGyMjIzcs2cPvv773/+eTqcDOYPBoNfrk5OTUQ3kQg2bmppCQ0NPnjwZGBgoFotRW5QMLPHp7OxsFIsAcuGn4bfjZ+LCdz09PfF7UU98aEdCePjwYT8/Pw6HgxbE70f77t+/H8h99NFHd+/e/fLLL7/99lu0iJeX19WrV1ksVnt7+zfffAMAjh07lp6efuTIkaNHjwYEBKArfP311yjkypUrJ06cuHPnjo+Pz+nTp7/44gtEIv3nn3+OTtDS0oJi0QOio6MzMjLwFt/C/bvvvkMWsmegTQ8cOID4hoYGNDcaGsglJCT86U9/Anh/+MMf8N1bt27t27cvLCwMnz5//jy+iAK7u7v9/f3xUeRF70FpqBI+ik+fO3cuODgYVUX47NmzSIw7EqD74rp06RL6B0rDF7cZxXflQnTGgwcPJiYmKhQKtCx+CS7E+Pr6gpPws729vRFGs6KZ0IUxALpcLjyCZdHuiATeaAggjUZBJPKCoW/evAng8RatBi45fvw4WBlFMZlMtBFaCkh8+umnp06dCgkJwUgOAFABoIhyqFQquByFs9lssCxqFRcX53Q6UT7eosOhhqgSykeYxB79A7nQdfr6+m7fvo1X6JEYzFF/dCwMLQigqyFjREQEEuCOOqMQVBUJkH7v3r3ol3i1wyBEd8PQgUZEr8edy+UyGAz8MDAlei66M7gHAbAgXqFB0QQYncAQaBSABHgwgqGJwbsikQgpMXIiAaBCCUiP4RcxAJ5Go2Fw+93vfofhDmMd8ANIaEcMceAAZAcAABIjJzoH2hS5kB3YY7bDIFxbW4sRFSWjGklJSZjnEMAnwLUoCheqjR6A/oG6IS8GEgwAaWlpeIVIdFAMIeheCKOeQBcdET/h448/xm9E9RCDV0ijUqnI6Xw7r3fiQrKi6OlkM6H2ZJMhZnXbkS2IGMQjDWYUxCCMDosesNLEpJiAlGQJZBayTGRBz0AjkuIJsiMNLmRHSjzigqwBdAE2JjmUTEooK+IMAiuFk69W6klKTKQ8gg/hjux4S36avFaqRBaCGHQ+fAuQk6WRafB25YvbhuIWQLgNdQU8gArX5iIfmg9NCcloG9qRFHq34UOvbN6dAeErf8Y/coI1EJZV2Hdpx7XAGgjN6oZd2nEtsAZCC3/yvZJVMG1kT2bS7+kZ4xsS/Z6BOYGU77Umv6TC10BoFd17f5QtmjAJRszq2gJrU4GlyWZq2Iiy9bV6Xle2eOL9VeaXVPL2QWiTzrHjS3v7Oh4/WVh4OP/0h0dPf3j4Iv3w0+P7Dyc1vBqrcOqX1NDv77dsE4S5kilFeofnzYCBgV6LQWPKLZqamhx52TU6Oto/2KPm1WbvQvh6g+I2QZgjmchk9ft7xTmcLa0tjY1NzUPDwysIArbB59fQ0FBPX6eaW5MtnH5/PfeXVPI2QYgmy5POqeiuuvq6iYmJ0dGRgYEBqDZgQIBKBWv23t4+gIcL8V3dbVpBQ45w5pfU0O/vt2wfhDYZMRdCmdXV1eFyugYHh2RSKRSbMAjAmNDX2+dobWlqaenv7+/odLKSsvPli/mKuVzpVLZ4/P39/l9AydsEITEXUts9b/i52hxFhbkKvXFocAiKTeipYeGDWW5kZEijlKWkpNXUNQ0ODYSHR3hfojJjSyRpTRbhWKHyPrD8BTT3+/gJ2wQh5kI9a8DfKwEa7/b2tvrmlq6uzt7eXljyoPVva2vDY1NzS0N9fVNTM9g0IjQx6rY6JcQS6inyv8aM9lWr6e0AMmd3pfGCjLNNEKL32WSzakYblJm9vT3dXV0w4HV1dZEOFgg4nS6Ygts7cLU3NtfJGJV25aMCxTzG0izeYEZUwZ0rtKjbCnCkTT5rFY29j+68Q8vcTgjnmLFFxcX2psa60rJyGH5bW1vBf7gQcDy/AG1DY62CVZUjWpZIscYHlrnS6dRQq9elVEWGE4+7KK50uG2CEDMZ5sJb1283NNabDGq+WA52gwvFixfgrKuvkjMrckRrJNJs0XiRahH43fo6SZRSX6C8v4siieI2QYg5zMAZ8vdMKIctr7gwv8judDg2grC2vlLGKF8Hobu6YwWKuUx2D1CUpDXu8uK2QkjOhUqaCz5jNbUVcPQqKS16KZWW220FVim9PEf80nXhWL58VsvsuvV1oo7VbZPtrh3fjQsxS+VIJl9KGymp5bQmSXqNNL12I5IQr+pM/OGNl4NjBcp5YUqd9yVKjngcsu4OFUO2qtpvP5DmiCfVtBEZZUBOHVxHiMxkjb2kcYX3MnnOTEGzXtCaKWjZkPgtJsEwJr+Nf+QY5sXkEHO4t7RQubBVbbFDy3lLCPOkGM26ywrDHC23Oxz+Hc6A7raATmeAq9kP5Gjxyc1KyeJMFSjuY6wjqUi5qKK3uVyOh4/vz9+fnp2fmnsZ3V+YuTc5qOHVvdJSgfWG/3UWJ77cPSm+RzPZB17420CIkVPHHPDzinm4+MXS0qmFyaOLk0dcDR8PDx1aWjq7tHRmaelku+uSx2UqJ66SE1+BVuYmVNAii309YvsHekqL8osr6+bn5iYnJ16kqamp0XuDGv6rLRVYZmSyez2/TcWoiyp94A39/qr3NhDmSaclKU7PW15PHny7tHSho/FQXdU+o+5PzY2Hl5YA6sWlpfO93Ve/POcT7qWM9dPE+Gni/HWB1/g3rnr39HSWFefbSytgnSD12riGh4dfsFQAwldbKqCvoYbnhXoKP7ThFLNMrng6RzydK5nOk86AEMAjSdbN5og3Hk7eBkK32eE+Mza/w/X53PyJ8dHPZqdOzk6emJk8MT9zan765Nz8Z6UFX/LiXSXax1jAkVSiecKOL6mtrRkfHx8ZHoY6Gwq2HvfV2dmJR6AIMwXu3T3tbnvhqyFETbDM8LvKYH9IwylEuUx2t4LeoKA3aditalarjuvU89uUjCYFvVHJaIGOaQtRfEsIUQOMXUpGpZxepGSWKBnF5F1BJ0hGK9SwGtH1Vo8eebI5KNhq62qHhgb7+/pgqYDvM3bAmEwm7E0BkH29vW4EB9o7HApmdYH8ARQCkIk2lWvQmaawusBwahaMfgDD6TjqbOZPmnQlbR3tXd19VmvOuXNn/+OjP4aGhvX3Dzud7fAl1rCd8GHYKtXEW0MIfh/PEc/liOdfRtBHQ5P585jgNvkO+HnGtbQ2ldjzM01WDJ9QkGLfEO7YNAS+NGiVGXRmc6urv78nIiwxKciszHABHjerzYPbNkLo+XAq+k8cTrEEypfPwSBj4A5G3pGx2WI4l+fklF68+MXly9i1cek3//ZvUqmutLQxJ9ce4pumZfZuVYd7FwjfYNQmFGxwvLjh19ICE29DUUUVeA7abfAf9iRATdPX24Ntg3nZuTW1Df19vTA23fgyMfqOKvgWP/AG566XhBph0zA6geVLl/OID7rJpUUVFqqwxthuJXiebBp9lB5d5HuVfuOLpFOffZFOw+4LU0RE6q9+9Styh80///N/vXzZUyIx8/kaL29PepR9qwTpbYLQrZ2Z4ySUQb2GGbCrsxNqbgyeMFPA3oQAHjEjAlRYKppbG5iJ1gLZIvo1umoWd0CYXJcQaAi4zgq5JeAnViM+b61eJlcyCbnU45tkKFHxdhtRJLRFmawe3yt0fD09wqZn90EODwtN4vCUfIH20OFj/+Nff/3f//XX/+cPf2AwZWyOMpXCjPQTQtjZfIJ4fQl2WyFU0hzYhOByOmAUhEUCF5TacL9AYI2loqlWxa3Nfa7mxhiFbk5afaHgBl8GXGdLKc0YNlfrgNCUigwH1KdZ3MHtUrwRli8YMq9/GRftqyIHfCx1bNJZSowuOoKRGCMIC6R8fvSrE8e/ueMVkxwnio1kR4UxtKyOdYLC6wP2YsptghDMBPcnX4/o6poqW7ZRIleRlgrSzEQGyAuP9Q3Vcmbly9TcYOUZCLei1Po732dE3VEBQqhen/McoXjjJVZ5fpti5A0B0ffNi+hSsGXe+Co+PiATn16Z29yqwQkjdxhkEdxDTYA03GjJGDN/DEuOd8FsXd5tghDzvDIDc6F/TW1VttWoN1udDidmxRcvMCX04DLGemPT6nqjRcCXScFG7+8oinTHaikGzAo1AsY0NaOjSLXw4mCVjeYTTL0+wRfypfpe4IT+hHk61EOIoXtdGrzdSHu85Y4H2wQhAMh3uz9l55qcbc1NLXUNTTUvpcbm2oqaIgm9dANLxbIMhTYCQjJqC3guPSIPKK40DdgUHjeIp4TnQguBwW2lfdH94Seu4pVrhdVaYZVG8EqqVPEqs/j9L6KIYqnhuTe/TjQLRtb59SCxkTuqyugGZTKJvOhwJv5yjJbRD47ceVyIGuOX4NdKmAVynk3G3Zh4Ngk7V8fpIEcbsBEybkDjbqFuHLJomKcIELp9MgizItgCzv8RPjLfKzRaVIGBO4DRDAxqkyxI2YU9/V0dXViz9fcNDPT09nX19HavIjz2DQz29Q9A14AELc5mJaveJp23rBJ0wX9KWtuVC1Gi1AaoatfjIZi06hrqa1qb6jqKbFUhATHXLvtwmbLWxu6aytaSwjqjsC9HvGXeXNvHhW4UxzEuvXJLCkY5YrgTjbm784g6o0tD63kpqWndWkYvykwLy/b+Lg0yDlgTWKK5IeUDMxW9Heo9iD8hHoKkYBM8qRLi07DLODYqITIqNSoiUSQ15+TgTJWSFbJaSiRirVxhEfDUGq0tJ7ckLCBFkd62wmroWxgkfS5T4wP1qxcGkIrxWKJ5xIqpysstWFr66ae//ZCekbb/wCeffnbU0+vm9Mzkjz89m5weSY3UWgSvUFm8PptuK4SvXy13ynHgp5eVldjrigvr7Pm1Rfk15cVNFSXNpUUNCNsLaosL6kqKao2ashw4OWY4IePE+KmhpgF45NCHdkcYAXl6Kzehyuf7tNi4BIOhkMVWpVO4ERHJTJZao7EplTkrpNHkRkUkBATFBQcncfl6o7EoINCfGm4j0UIvxECNbgEI0VfcBrUxfAVvVbS2tLvZkd6qsye+y7VZ4PGMJRMOSMEefDjKfvLJJzivYXJysqu7MyDQLyOiaOetC98Qv3uQgIi5RJvb1tFd3+Boae1odXSK5Roqk2ey2OD/1tTc1tDobGvvybYWyiiOMt1TDKQpoRY0LhylsEwkRk7ZrHsQJvReGPFskvuM5CxtZrZOVwAyGOw6nU2lylGrc1eTRpOHR/KuVBlTIjTkBg9ghkmXcjfnyoVoDbOLXLrgK9A5gMth+QKji1IaInykarUWqvumpsYrV74PDg764ouLv/nN/4Tr18BAf0trQ5h/mobRA6590zZ5afoPlwuh0Q/0pGTQOKlJDE+fuxyeTizL8bnmefPchZhIqlJtS4xNu+kZLJVZ2RyJ17VwVkw5HDKKNQ/BGRjisNaOuqPkJlRiIiSWIoSKbr5Q9oBLyVZrLQq5RaHMViqtCoUVEK4msCMBsDYf+CFerjDoeK2FigduDd9EYlDW1QvREJfcCgQCv4zIfIhO7LgyfIXoNJiPBVNKsdVeUoDTE3DOzl/+8pff/va3ON4De/Ph9Gy2mDQsBybXrVrzfMAQiqZ9byakUujUNG5IWBKTn8WLTemK+ZeJ+P+S5/tnOiOTQhWmUnDOSSaDKbx+2TfMQ+pe9bPAiATPyWdZsSWQaMiJEHCmhmX7X2fGRCeazCXx0SneXkFXvveKTuJn6vKVBJzLhDOrKGkcGgOKPysiFcqs+FCZmt4F7R1cPTDjYsAEQ4OzARiMaH7XGBbh6OpREXyvY3fL0hvlGbBUuDK57QZBF+54BCloH4ql4g0UpG83XMAEocrojIpI5wk0HK6ayVYxkzPY0eGsuEhmdDgtXcjmqKCvAsXGpotTmkq1TyC7gxGxXsRYiuHOrl4s1T5GZ0ej85OqWXHld65QY6Lj9foCokCGNCggmkKTa9S54MXnlK1WWoODo297Btz0DJEr8/T6fP9A31OHb6ErQH/m1hTOkK6tkbflcDZHX8GYv+43EvZCCWEsdBOMhYS9cIW20NKE7364XEisyoXjCZHiqIiMmEhGTCQ9JpodHcsnKSbKHUPE02LCOVDHkOtCyIqYrjARwvUbDuDi1EZ42RCzoGwG93zpAuZChcqEERJTnU6Xr8ZQiUH1ZwitxKMyRyYxMMGIimylyhTqR5FSHOgf7iU8Ma1itMSKPvK2AkBu+VL9TXv8GgixWPmgCJ3XIhjHZgwDe3AjwlszH7LPGvswJi2sLrDG8LvGxJJRQmkGtNCBFcgeMFPNCpVRLjcLRXpMeypVNjBbR0AUQ6hKhdPzLGKpTsGoL1Qski0LcRT9A0ZmKNXccu9//q6rNRCqGK3vgRwbl+lQMwlSMQhaCbgfl2uiZjo1LJeGuTGxXEivY3e9aH4j3a4gaJCa8Vg/3e3vqdFRCdrMAj5HfuO6t29QNDVdBo6UycwrBNgQliusGGARFom14vTKYvVjYlOOZIIRbcemANiV3Ht0Zs28+2b+fQufuL8RIUs2sbrfArvYGgixTxOErX4gMrxCL415nWS9PfCvWF/U8id6CJMhDh/s7ibcLxDGKXZEauLPa1WDTI/NbEUFFYr0drv6AaE+lRLWu5XhCHMVBkA4SolTmwJuMCMj49SaPIFQx2BIk1JYdIYSOEmlpmWSmRUyU0w0NT6BmZDEFoqMSqU52C8hITALbAeehtsj3MnhmWcVTanZZRqhRCNUqAUK3DcnrUiZKSFIJ1ZqhHKVQJ7JdblRfFepYg2EUCph4QJ7HloG4Z+pv6+np3t1DJkM0CCwLtmamIH+7u4uaLJW53U3ew88LPp6u4vtBXn5NpxqWlpanGvLb3W6Skrs1TXVQ8NDBO69PS+Wv6YagwOo2Ni9Meykuf5dQHJwNiu2FAYpLavbPSkSIj4JJ6F+w3QoW6QnZUnleoLP5BBhMIqaJRLjzxBKTTKpMS42IzaOdjc8lcfH0aPZOHDP+zsq1ifoBxhIsZ7DPJ3JnDZqI4cG9nS2HWh3HujpOtjduSH1dB5qd+1vbtzb1LC3zYHEB7o696n4OquAUDu8I62BsK3NBXK1OUFkeIVcrhdiXjvZ+qLIjO1tMBdWlGOTU2lFFVz0y8vKyxqaGvNsuTALd3S2v2Y1UDj6RFl5MSCM989KCNRH+siDb/FgQ4i+owSiOlYPqT0BolgXZiQYpLJMsTiLmAiV2QAPEK4j7D6WSs2YEfFWIFKnRGQWKR4S9ufnuxvRLcy8B9bM6IHeve2OI66WI11tRztdG1J32xG7dY9e9pFK9ZEt7+OejqOd7fv1YmOu+JHbFeqdUFwDYb6tcJupsLC4qLC4sMBeWEAGimx5qEPRG1UD62WFVI8VCNb15BIeUj6cbpgxxVgOAksgGuEjTw423/6eEhERq1SYU1K5QYFRHt53MZDKpCYgupqkEuPzRyNPoFRzmgrkC4ANPE1wIbHfeDwhsEDEuzzYexj4tTYd6XAebXcsU1vr0XWEt+VF+yqK95fZ99mL9gFsoJgUEyJOacewv5UQ8hPqdyJx42qg717XFmhx0jqBERWLRZgUeIk1Qbc44XdjoJRJSWL6+UeERlDYbI2bBZchFIkMQmEmh6uRiLMQFomy+EJ1VAA/izuMQlhxpXDngWEk+Kbo5DEPm+36owdwujw9N3nq4f2zD+bOgBZnX04P5s8+Wjj76P7Zh/NnF+dOP1o8n5J6JdxHa1c/tAjmTdx5M2/e9KbEvW8Vzq7hwopiJ6jSff+Z7A7ErItcjrE7Nktmd1SVuGrK2qtL2xBYudeWdxClrcr7WqW567AuI1nbqlKHRdX8Uis/2cEBJwAGDxXKH9ASswRijXucJCZCsdgA/Q6PpxMK9UK+FswnEmjvhqdwuDo3nAak8fW//e3pUAgy8K6AxkfD7AQjsmJcBdm3hrsO9PafeLZwpiT/48a6w41VB4eHTy4tfbX0/77YjP4Ob+mz9ORYLX3cxB9R8dQ6iVBDyL6vIOxqz5RKDHIp7joklvDV3Pw1EE7PTIAmp+6RgWWaJWKmpsdXR07NjBPJZjdLNjs3hTNk4MvkbHMMDPZ2djoHhgcGh/udbS1Eaavyvk5p+DpyrfvozOzk+MTooycLWVmGWH+d2wljs3kFMFPidAKRisfTcLlakRB8pmexNJ9+HnL0WIBPAEshN4lFehpNAkYEqAKBni9Qhdym6pi95Cjqlo8msRzUM+cbK+6OD+wdHT3x7P6p8mJMikc7mg9PTgDCL5YA0iZEOLx/ivVprugnWUZjXc3Jwb69Ha79EIggFm1EvV0HMYM6WvY21n/sbN3X3XlgeHBPniVgDYSkDxJcH1ackcjAipPLSjzptrR5Mjil1dXWmMwmi8UKLzzi/wrU1uM/DcBlDQfNrHZ5ep3S8C0kQ01e/CiWIUaz9vqlILehf8O1NlYCSSGGkNAIiVh/2yvg2g3fGx5BcfGczMycg4cC/tuvL/6vU6oz3hohXw1eFAoy+XwdGJTFkcrotZgLV3cOQJjJnMk3h8wvHJmbOjE9/vnDhVOLcwQtzJxEzBxc2jehGXi+H9QK5DnCZ3JaY1316d7OQ66Ww5gyN5GJeruOVdn35un+rJD80WL5a2P94cHefTZL4BoI6xurt5YaGmtQIDZeY+NubX1VY1NtVU1ZSVkRXC628EMOVwOfK+HEVkMHtgkX5hOuEjnBQRESiSE5gZGQQA+9m5RGEctkxuQk/r//0e9f/nf0n0+ligRKYlAVYHTV8viZTJaYm1KCpf3KFi0ESGWbAT4czFIVq1zFLAMpmaVKRqmCUUIQnaRl9/Z1ATm9WE6zZ/H686TzSkZzdcWpno5DjqbDEIIIVnYe63guGa2ISAh0uo7VVx6ATFRbcaC4cG9z45H+7hcglNDK3gOVS2grVIbtuzjNYmu/Isoo1rCc8M1Z7RvxMizHbNL7GQlZHJ4CkxymOrHYKBDoOByNXJ4VFSf85HDo1VvJUrEuJDDcwyuMydYI+DoeX+3nE54cbBEk1cCxChu1sEAUJNcKkmskaa0ySqcyo0dN79cxhwzsMRNvwiqcgXt7nmTBJoN4/LhQ8YQg5ZMi5dPn9KxI+cyuelaoXCzWPOUmlvb3nHu4SIhF96dPP14499AtE0HqeTB3FkLQzzR3BkITZKIni+ceu8Wix49OFOV6r+FCg7hlC8kodayQSebMkrSSj1v4CRSVRdS5OUvU9jrSOebClCglIORyYf3QcDmYEQkCiiKhTiICZmrAFh2RHAJfXq6Wx9UKBNo7t/3hKgdfZBjrCfJVQ8GN5QosWZBxoIOFyhv2LKjxIKxiDRN0k4cwImHHgB861jNIDFGIzA4tD0mJQYagG2Ivjzv3J77F1rAnTy5M9n/WUnmgqnh/Y82hH55hNt1UJoLEtHShuvLaGggnp8empu/h7qaVgPtxioxcoXtkzKr0q5MReYdH+4dH+geHeodG+voGusYnRxEzMjowhT2gRN7V5S+Xtqb85Y9uVg18HcXOL0yVV5TDlWFzD+BCzIXB+qCgEL4gUyDIjIxIunThVkQUDWEORw1yY6lmc9SYApcjuRoaQ5QakWVXEYfgrBCMHlCa58seZwsf54hwf2jhL5p497M4c3rWNORMVcaInDIgSekRJnXyElycOAcrppkR1QDKCK8hiR1XnRKSe8crbGbsS1fLoSePL4x0Ha8o2ddQe6i99dgPTy8u/XRx6cdNael8eenlddoZ4hQY0s8a5/iQh8KQF4SJ1Y94C7ECyVZHrk7W3uYqg9eL3Y6NLzk52VlZxsrq2uxsK3bAQMxB3tXlu0trRfxKaYgh5Z3XqQYUcbV1Vde/99Ey4Bm2oTdDvnw+IzIvMOAuj6/lctRUCj82Mj0lhQ/k2GzVasIsSEYC0XSaQE6vL5CvOSMFCjYTf1zF0+sVjEwpO1PK0cs4ejlJXANIwctS8LOUfKNSQJBKaNaIrFpxtk6Mu1ktMqn5BmGNXfWThFI9OXYOQuxPj88v/XhhaelLgsB/r8QP6C6dqSr2WQthu6MN1OG+r6MXIxHz0kh3Rmwww+IB7r7QXuI0p/qGWqerFSeWVFaVtXc6N8m45rsbl/9zsg5nX39XXr412IsBH+pNrT9jsBdmxBsYLDEJD6DCncVSriJgqYyPoycn8sCOSEaji0Ju0+CUDeuVm8sJiZfYmJcxVJR/ZWRoT1f7/q6O/b3dBzah/p4DHW37Whr3NNTtcbXu7es+MDz0V4MyxcR9rKDXTt0DhBd+fHz+7z9ceAXbrWPKpdMNFb5rINQqcraQdMpcUKYqD6RX2RDWq22gN/1EprJgczKoC+R8m0X46tMvsO00/q6UyZIw6Ng/RgyeAInJxP+JWSElm63wugWntWQuT8tkKrlctfdtz2/PhMb76yDIwF4PjQ8WiJmsicLcq/09+9taj4A2WQzgFdYDpbkfW1R/Usj+w2rd42w92t+z16ikZAt/ktGqpu5ha/tbQlhfsZYLDax7HwaN6FlDKyROaxCmVYrSqkASKg48qZNl1ONOxoAEqRXYm/Ki98M6obRQsZAYrAsIDGYzpdeueHj5hHt7h4SEpkKuWYuiHExJxiCQQROG+NBUtE7gB8kF288ghgiS6oI8hNnmC24d6VEQsRIAuXAnwp3uRywDyPju9uNYD9SUH6irPFhq39fmODbUd5jNuEa5W61m1k9PYIP7p3//8djS348vLX32JnSovvLKGi7UcJrejqAI1nCbtNzmZeI1a3nNKAqPb1qgit1gEQ278RiHLR7GuWJ7RU8fDintamvvrK2rLyktKywqIk5xa+vo6OzuBPV0WvSlRu4rVP5YydGjC/z9wul0cUw0JS6ecds76I5fPKY9BkO+mkj8EIN7GpUjTq8uUjyA6gf8B7sHPGjCPGQXzt5sd119uHhyYfYMFgMP7p9ZhNAPQX/hHKkIhb50ZpzQnT6CUnT2DKFHXTj39OH5pw/OPcbC4PEZlery7atsuEnoJSyzJs2kpFrUb0YmdbJOoFsD4cjo0NvR6Njw4BAMh7Ay9sKZHU7uvf09o/eGcb7FyOjg65c5PDJwb2JQxLSaeYQLr131MO2uRa02ajUWlSbHYimx5RfBQIj/WajR6LKyCrVqk0JlLi6po6eLufGvWNpj1QglS3pcVgZdiFGUnA7BZ3S67KUQIh4QpqaxGXE2HMu4om6FOIozBOhRtY76rxx1eyemzty/d9JVeail4VBBzp6JqbNzQ58X5O8d7vzUUXe4rvJAWeFeGCjKivdPjJ8mRJW/fUHQ0lmNxFecPIC1kIm3mMVZNHKI+5sSVORrICRt6BACcToowriwbbO9ox2Ry6862smNnORLpCRfwTLf3ET8376CAsJ+C1E0N8/W0NRssZjhS4k0L82FeGwIxS41shBc+Na9e2MsNv3SuRAYyu9cZn536YpEqgnwDb/tHwvPa7M5x8/PFxrRkpIyCkUY5H/XwztcLLakUameV8M2V7C5/ammYoKFgJCAjY4TbLkUqhjh1QRofX0Cg8PS2CwloKXRxN4egenhNjDx8z0bhDijog33t38/OnDw4cMzD6c/dzUcHBs83tN5eHbm5MzIp93tRwa6joI1Z+596mg52OlA/Kmlv53HnPecPrNnJxjYi69SR7zalLgGwvZ2HArqanPfV4h47HA/dmz6qs3R6sBZ2/ivZ7XYUN/QWNfc0pRfkFdbV41usL5AsvwXCmzvaMPx+Gmp1DBPsTStWU51hvowKBQOFgBoawgXGRlM/K+8x48fms3WhAT42WKukvL4uvC7SVjz5W2q5oZnW0KQ1tfP3w2MlM2SX/nOIyySBlbD4yqShIXERURm0BlyQAuVt7eXH3aeYs0OBQ3pL+o++Wqown5jcurU2ODpsaGz0xPnIVhOj5+fHD03MXZuBoGxcxOjZ6fvnZudOD+Dt2PnxkfO3hteprGxYyYVTlfaaqu9KSv3LcmAjHlmY57FZAOZjeQdj/kWo81EvH09MuQasyxiWjE8JMidvRpmR1R0KviGms5Lo3Jj49MSklLjE1MjoxNTUlmUdB4oLZ0dG8nKITYCbtZnwUbMWPsdn1AaXZqRIaHTpRHhyQmJHATwuJrQVwAzYoBrUjIjNdxYqnkKicnrUhrOmiZPYIRoigM8cJIcZCuQ/E2IyJJeq+dgFbsFu9TWcCF8lreWNG9RIK0LizByeYc79pilx5pSozVpMToQJTYzLSYzJUpLicnEZmgyMiVKxUkqeuXWWeKMb/kDaqwhlcJJTxeD8I8n6TQpGV5NJH6IwT0hkSaiVhUoiEUhNtfB9x62X3KXk/tkIHjpw/w0C2+2NyMJXFKJ3VvvaLJf7wpMbLv6AGi1wYjYTCudy5PMbkpzr7N13b01bjI8gJNG5VGpIoIowrQ0AZUqXn4kIsUZ6SLfO+FxiZyMDALX5BSWn0eygTMIjsFyEM4c7rP7tmAAXAve2/ujfrje3O/ePdevC5UL8UEanzt30qliiEKALTmJFXI3NT1dgsfnBFz53j5hicm8dBJmquimxw0cEwYVq/vApAlsO8XSYotOjcGAPJnFntWzZgzu+xvSrFU4/Q8EoU0+x44r9fYIoqYvY0NJEyQlc6npq7mQeEWOogjgnpBID/KkWYmxnZi3wIg4RBNWiy1hRAzFWnaLXpFq0iZlqZKNmpTNSJ1i1qZYM1Oz9akWXYpJg/QJGi72oi79E3khtOUd/4MqEOI79pglhWvDIuOiYyigmFhqbByVDK+mmNjlRyQIDo3hp1a4WXDZDcfA6cdeVGKqfu4hgECOe9cL7i8lckPMi/rbbNF9GdPS2bEPzoyd7XuhrtuEBvr2t7s+aar7S03Vnx0tH/f37hsZ/otRRf0HgpBUT+OAO2Z8ASuxiP0axEooZCfajbzB1cclgP9g/0uPyIfimxBNRePYV6yktSjozSAlvYXYZcDCPgKnikFEKt3xClrzi0cdA0I50+psPdzpOuJsPkLo5zam3s7jJYSi9c8K+f81W/a4HEf7evYblRn/WBCixYFivgymvrnXp3XHXaAEA7cfoilmROJAI/GMmtNQU1uH86taW1yNja0lJeXFxeV2e2ldXVNLK4x3OGHH1djUqBXUrnOzyxEvqDh5ztZDcCt1Nh3paj8ObWpXG6Fc7Wojwz/H9HQeb6o9VF99qLnuUGX5AYDd17PPoqH/o0H4amXH6wz+WGLi+CKcbsNPqskWTadFawuLSgyG3PzCmtzc4oaGevxzdQolLcuYa7fXGPS5+QXVpWU1lDgFjooA6sQ2ORiNFfDPeMRIFCzOnYRnKRwsoFmFuhVq1WePzj9dPIcw9K6Eb+rcmR+fXIBDBlwxfnxM2DRgXHz28NwPz06pxeG7EL4dqMS/W8A51Xe9pN+cDvYPCITHxjdfX0tMFYpFWj6fl5aWZrcXcThyOk189ert+GSeVGKKiIz47nxI9B11uLcEBK/iy+cS4uI9FsfOlpXs+/HJxXzzX83mPSOjp2DvzTP+Od/6SVX5vuysPY21h0psn5Tn72tqOkI4qZJaVkLRelGrvb4L4dtBSJxuAw019p+Kkht8vSJZbDmWJXS6nMOBiYqZkpJUU1OVQeNjnyl22NAZCh5fE+gbnRpmxckc2KoPkqc70sPL4yKDH82e7u0+/sPjCz3OoxUVB8bHTj1ZONPuPOJqPjrS91lr/ZHBvs8HOo7XVx3s6vp06W9f/mwWXrogE+9C+G5bUgCkXfmQHp+bmJJOY0gyaCIKlZuSmh4ZHRcbn5SQlIEYBhPxghQKHRolWDyg2VmhfNlTDdf8w1PCe/iHR1CCw+vC7Qn+Ezjsq2UnjHWB1Yb7pRO2rNRdLnxrLlzOiKMPFfTW+HBxUpSMpMRIkDwhQpocLV+JjA8Xiqm1SLxmrhUuqLn6Z48/X/rbRQLCzZ2dXny7dCLfmLQGQjzsXjuxBZaX9rt/dnQL/H8vKf57xZJDFgAAAABJRU5ErkJggg==</bitmap>
  19531. </item>
  19532. </items>
  19533. </chunk>
  19534. </chunks>
  19535. </Archive>