HouseModeller3D - Symbolspråket 1 courier courier kursiv uttrykk uttrykk HouseModeller3D - Symbolspråket Side 1 av 23 Version 1.2 juli 2018
HouseModeller3D - Symbolspråket 2 DrawType type, type DrawType DrawType DrawType g_rekt HouseModeller3D - Symbolspråket Side 2 av 23 Version 1.2 juli 2018
HouseModeller3D - Symbolspråket 3 par navn tekst real standardverdi par navn tekst int standardverdi par navn tekst enum tekstliste standardverdi par navn tekst mat materialkodeliste standardverdi tekstliste ( tekst verdi tekst verdi ) materialkodeliste ( materialkode materialkode materialkode materialkode Navn tekst HouseModeller3D - Symbolspråket Side 3 av 23 Version 1.2 juli 2018
HouseModeller3D - Symbolspråket 4 set variable verdi cset variable verdi Set cset set cset set cset set cset ma x y z z mr dx dy dz dz la x y z z lr dx dy dz dz circle radius arc radius startvinkel sluttvinkel radius startvinkel sluttvinkel sluttvinkel startvinkel HouseModeller3D - Symbolspråket Side 4 av 23 Version 1.2 juli 2018
HouseModeller3D - Symbolspråket 5 polygon nøkkelord uttrykkkoordinatendpolygon nøkkelord stroke fill nofill nostroke thick linetol dosnitt noshields pt x y z Polygon polygon endpolygon pt tykk linetol fill stroke thick linetol thick linetol tykk toleranse dosnitt dosnitt noshield par l par b polygon fill stroke; pt 0,0; pt l,0; pt l,-b; pt 0,-b; endpolygon ma 0,0 polygon stroke fill thick=-dyb pt 0,0,0 pt tyk,0,delta pt tyk,0,h pt 0,0,h-delta endpolygon bezier nøkkelord uttrykkkoordinatendbezier nøkkelord stroke fill nofill nostroke debug pt x y z Bezier draw bezier endbezier pt fill stroke HouseModeller3D - Symbolspråket Side 5 av 23 Version 1.2 juli 2018
HouseModeller3D - Symbolspråket 6 4 + 3 n n 0 [0, 1] ( ) n B k,n = t k (1 t) n k 0 t 1 k 1 B 0,3 B 3,3 B 0,3 = 1 3t + 3t 2 t 3 B 1,3 B 2,3 B 1,3 = 3t 6t 2 + 3t 3 B 2,3 = 3t 2 3t 3 B 3,3 = t 3 1 P (t) P 0 P 3 P 1 P 2 P 0 P 1 x k y k z k P k P 2 P 3 x(t) = y(t) = z(t) = x(t) = x 0 B 0,3 + x 1 B 1,3 + x 2 B 2,3 + x 3 B 3,3 3 x k B k,3 (t) k=0 3 y k B k,3 (t) 0 t 1 k=0 3 z k B k,3 (t) = x 0 + ( 3x 0 + 3x 1 )t + (3x 0 6x 1 + 3x 2 )t 2 + ( x 0 + 3x 1 3x 2 + x 3 )t 3 P 0 P 3 P 0 P 1 P 3 P 2 P 0 P 3 P 0,..., P 3 par r set magic = (sqr(2.0) - 1.0) * 4.0 / 3.0 bezier fill stroke pt r, 0.0 pt r, r * magic pt r * magic, r pt 0, r pt -r * magic, r pt -r, r * magic pt -r, 0 pt -r, -r * magic k=0 HouseModeller3D - Symbolspråket Side 6 av 23 Version 1.2 juli 2018
HouseModeller3D - Symbolspråket 7 pt -r * magic, -r pt 0, -r pt r * magic, -r pt r, -r * magic pt r, 0 endbezier ma 0,0 box xlengde ylengde zlengde z y zlengde y xlengde x ylengde layerapp lagnummer linetype linjetype repetisjonslengde HouseModeller3D - Symbolspråket Side 7 av 23 Version 1.2 juli 2018
HouseModeller3D - Symbolspråket 8 linjetype linecolor rgbfarge linewidth mmtykk > filltype fylltype Filltype fillcolor rgbfarge fillalpha alfa < tekst - tekst > tekst substr < - > HouseModeller3D - Symbolspråket Side 8 av 23 Version 1.2 juli 2018
HouseModeller3D - Symbolspråket 9 ma b / 2, -d / 2; -'S' ma vx1-0.032, 0.0080; -(pn + "+ ndrawing) <nout('3',dm1*1000) + ' x ' + nout('3', dm2 * 1000) txlinejust txboxjust text tekst < - > txlinejust txlinejust charup xopp yopp charup 0, 1 charup -1, 0 charup 0, -1 charup 1, 0 charup 1, 1 txfont skrifttype txfont "Courier" txfont "Palatino Italic" txfont "Helvetica Bold" Tekst skrifttype txsize h txsize txwsize txwsize wh txsize txwsize txlinejust linjejust HouseModeller3D - Symbolspråket Side 9 av 23 Version 1.2 juli 2018
HouseModeller3D - Symbolspråket 10 txboxjust hjustvjustmargs mot overkant sentrert mot underkant første linje skriftlinje teksten i første linje sentert margs margs txfill nei-ja push txfill true layerapp xxx <"teksten her" txfill false pop % skriv lagnummeret som har det riktige fyllet txmarg trbl margs txboxjust image imagenavn imagesize imageup Bilder med pikselgrafikk HouseModeller3D - Symbolspråket Side 10 av 23 Version 1.2 juli 2018
HouseModeller3D - Symbolspråket 11 imagesize bredde høyde 3 4 6 8 imageinrect imagenavnp0xp0yp1xp1yp2xp2yp3xp3y Bilder med pikselgrafikk imageup xoppyopp imageup 0,1 imageup -1,0 imageup 0,-1 imageup 1,0 imageup 1,1 translate dx dy dz scale sx sy sz scale 0.5, 1.0 scale -1.0, 1.0, 1.0 rotate ax ay az push push translate rotate scale pop push Push pop push pop push pop call push pop HouseModeller3D - Symbolspråket Side 11 av 23 Version 1.2 juli 2018
HouseModeller3D - Symbolspråket 12 pop call gruppenavn _ symbolnavn ( argument argument) gruppenavn (0, 0, 0) push pop symbolnavn 2 1 set aname = g_rekt" call :aname(2.0, 1.0) ( ) call :wdsymbol(wdmat)( ); wdmat wdsymbol(wdmat) return uttrykk call call if betingelse instruksjon elsif betingelse instruksjon else instruksjon endif betingelse 0 elsif else endif endif elsif betingelse 0 else endif if else 0 do instruksjon while betingelse instruksjon enddo do enddo (= 0) mpoint x y z dprint tekstuttrykk dprintln tekstuttrykk dprintln HouseModeller3D - Symbolspråket Side 12 av 23 Version 1.2 juli 2018
HouseModeller3D - Symbolspråket 13 draw bezier shield debug koordinatenddraw pt x y pt x y dx dy pt x y draw bezier draw bezier shield debug bezier pt draw enddraw z(t) = z 1 + (3t 2 2t 3 )(z 2 z 1 ) + rt(1 t) 2 δ 1 st 2 (1 t)δ 2 r = 2 ϕ/((1 + ψ ) ψ) s = 2 ϑ/((1 + ψ ) ψ) δ 1 = e iϑ (z 2 z 1 ) δ 2 = e iϕ (z 2 z 1 ) ψ = (ϑ + ϕ)/2 ϑ ϕ z 1 z 2 ϑ ϕ epen W x W y ϑ epen bsa2 tykk toleranse koordinates bsr2 tykk toleranse koordinates bsa3 tykk toleranse koordinates bsr3 tykk toleranse koordinates co x y z koordinatpunkt bsxx es z HouseModeller3D - Symbolspråket Side 13 av 23 Version 1.2 juli 2018
HouseModeller3D - Symbolspråket 14 DrawType 1,10 parameterdefinisjoner if DrawType = 1 kode for plantegning else if phase = 1 lag shield-polygoner i 3-d else tegn linjer 3-d linjer endif endif DrawType 1,10 parameterdefinisjoner. if DrawType = 1 kode for plantegning else lag shield-polygoner i 3-d endif pen pennnummer bredde høyde π/2 < β < π/2 π/2 β π/2 0 β π ' " length trim substr nout set n = tekst.length set s = substr(tekst, indeks, lengde) % (som i språket c++) set s = nout('3', dm1 * 1000) + ' x ' + nout('3', dm2 * 1000) + ' i' HouseModeller3D - Symbolspråket Side 14 av 23 Version 1.2 juli 2018
HouseModeller3D - Symbolspråket 15 element element indeks array.length set n = array.length nøkkel verdi nøkkel verdi objektnøkkel objektnøkkel set n = splitstring(tekst, separator, array) set s = joinarray(array, separator) set s=[1,[7,8],{x:10,y:11}] set s[2].x=s[1][0] set alder={"ole":22,"per":19} set alder["ole"]=23 set lines=["xx\tyy\tzz","aa\tbb\tcc","dd\tee\tff"]; set texts=[] set i=0 do while i<lines.length set nfields=splitstring(lines[i],fields,"\t") set texts[i]=fields % Extend array texts with each iteration set i=i+1 enddo cset WDKarm = [{x: rapnx, y: rapny}, {x: rapnx+rapnbr, y: rapny}, {x: rapnx, y: rapny + lh}] call set cset return call DrawType DrawType p1 p2 p3 pn phlogo pplogo Filnavn for tiltakshaver logo Filnavn for prosjekt logo HouseModeller3D - Symbolspråket Side 15 av 23 Version 1.2 juli 2018
HouseModeller3D - Symbolspråket 16 maal date etasjenavn ( etasjenummer ) wdsymbol ( kode ) report ( nummer ) splitstring ( tekst, tegn, array ) joinarray ( array, tegn ) ndrawing zfloor zceiling zroof ( høyeste, overkant ) scale matdim1 ( materialkode ) matdim2 ( materialkode ) okcode ( materialkode ) defined ( variabel ) node ( node, nodeuttrykk) etasjenummer etasjenummer Kode scale materialkode variabel set husz = zterrengnaa(node(., son233), node(., son234)) HouseModeller3D - Symbolspråket Side 16 av 23 Version 1.2 juli 2018
HouseModeller3D - Symbolspråket 17 zterrengnaa [ ( x, y ) ] zterrengfram [ ( x, y ) ] zkotenaa [ ( z ) ] zkotefram ( z ) numberok ( uttrykk ) layervisible ( lagnummer ) aspectratio ( bildenavn ) evalstr ( tekst ) fillcolor linecolor textheight ( tekst ) textwidth ( tekst ) onscreen forcepolygonfill modelexport nout ( format, verdi ) NaN numberok zterrengnaa zkotenaa uttrykk NaN uttrykk onscreen Format HouseModeller3D - Symbolspråket Side 17 av 23 Version 1.2 juli 2018
HouseModeller3D - Symbolspråket 18 nout nout('',n) nout('5', n) nout('uz6', n) attachedparts attachedparts slag apnx apny apnbr apnhd rapnx apnx + adyttleft rapny apny + adyttbottom rapnbr apnbradyttleft - adyttright rapnhd apnhd - adytttop - adyttbottom hasattachedparts hasoverband hasunderband hasleftband hasrightband adytttop adyttbottom adyttleft adyttright akarmdekktop akarmdekkbottom akarmdekkleft HouseModeller3D - Symbolspråket Side 18 av 23 Version 1.2 juli 2018
HouseModeller3D - Symbolspråket 19 akarmdekkright adytt akarmdekk kledekk drawashole bindpoly kledpoly FSPoly WDKarm WDRamme slag apnx apny apnbr apnhd adytttop = adyttleft hasattachedparts attachedparts hasoverband if tykk > 0.0; cset hasattachedparts = true; cset hasoverband = true; endif kledekk drawashole phase modelexport phase phase HouseModeller3D - Symbolspråket Side 19 av 23 Version 1.2 juli 2018
HouseModeller3D - Symbolspråket 20 makeglass vindu attachedparts slag apnbr apnhd rapnbr rapnhd kapnbr kapnhd txl tyl adytttop adyttbottom adyttleft adyttright akarmdekktop akarmdekkbottom akarmdekkleft akarmdekkright dorvink hengplan apnplantynn apnplanyk apnplanik bandtykk dxl dxr adytt akarmdekk Dør vinkel på plan i Tegningsparametre. Vis vindushengsling på plan i Tegningsparametre. Åpninger tegnes tynne på plan i Tegningsparametre. HouseModeller3D - Symbolspråket Side 20 av 23 Version 1.2 juli 2018
HouseModeller3D - Symbolspråket 21 DrawType phase modelexport harbåndover xlbåndover xrbåndover ybbåndover ytbåndover harbåndunder xlbåndunder xrbåndunder ybbåndunder ytbåndunder harbåndvenstre xlbåndvenstre xrbåndvenstre ybbåndvenstre ytbåndvenstre harbåndhøyre xlbåndhøyre xrbåndhøyre ybbåndhøyre ytbåndhøyre bandtykk phase phase drawtype phase phase phase HouseModeller3D - Symbolspråket Side 21 av 23 Version 1.2 juli 2018
HouseModeller3D - Symbolspråket 22 modelexport vindu bandb bandh bandtykk g_åpningsbredde på oppriss g_åpningshøyde på oppriss apnbr apnhd set dx = p2x - p1x; set dy = p2y - p1y; set dz = p2z - p1z set l = sqr(dx * dx + dy * dy + dz * dz) set xx = dx / l; set xy = dy / l; set xz = dz / l set yz = normx * xy - normy * xx push % Transformer: x langs linjen mellom de to punktene, z langs normal vektoren % y er på planet, positiv for takflaten (n cross x) if tekktykk > 0.001; set tt = tekktykk / normz; else; set tt = 0.0; endif translate p1x, p1y, p1z + tt; % null langs raft set ls = sqr(xx * xx + xy * xy) rotate atan2(yz, normz) * 180 / pi, atan2(-xz, ls) * 180 / pi, atan2(xy, xx) * 180 / pi ma 0, 0, 0 drawtype phase modelexport phase phase HouseModeller3D - Symbolspråket Side 22 av 23 Version 1.2 juli 2018
HouseModeller3D - Symbolspråket 23 p1x p1y p1z p2x p2y p2z normx normy normz tykk tekktykk angp1 angp2 π/2 π/2 Vindski på tegning Forkantbord tegnes Forkantbord dimensjon AutoVindski AutoForkantbord AutoVindski AutoForkantbord drawtype vind kapp vinddim vannb vanndim forkb forkdim Terreng på fasade Terreng på fasade kotehusz kote HouseModeller3D - Symbolspråket Side 23 av 23 Version 1.2 juli 2018