!Makro zur Vernetzung einer Fläche mit Vierecken !Argument1: Flächen-Nummer !Schätzing, erstellt: 24.12.2011 !letzte Bearbeitung: 31.12.2011 !geeinet für spätere Extrusion 19.7.2014 !für vnetz3.inp !Bedingungen für die Fläche: !4 begrenzende Linien !2 gegenüberliegende Linien mit Knoten !Teilung einer Linie davon doppelt so groß, !wie die gegenüber liegende Linie parsav !Abspeichern der Parameter !ersetzt lokale Variable !====Analyse der Fläche======= af=arg1 !Arbeitsfläche !af=4 !für Testung asel,s,,,af lsla *get,lanz,line,,count !------Meldung---------- *if,lanz,ne,4,then *msg,error,lanz Fläche hat %I Linien, muss aber 4 Linien haben *endif !------------------------- nsll,s,1 *get,nanz,node,,count taussen=(nanz-2)/3*2 !Teiler aussen tinnen=taussen/2 *get,la1,line,,num,min !Liniennummern la2=lsnext(la1) la3=lsnext(la2) la4=lsnext(la3) !----------------------- !---suchen der Linien----- *do,i,1,4 lsel,s,,,la%i% nsll,s,1 *get,nla%i%,node,,count *if,nla%i%,eq,taussen+1,then laussen=la%i% *endif *if,nla%i%,eq,tinnen+1,then linnen=la%i% *endif *enddo !---l_außen und l_innen gefunden--- !---Keypoints von Linien in Komponenten-------- lsel,s,,,laussen nsll,s,1 *get,k_max,kp,,num,max km=k_max ksel,u,,,1,km !-------- *get,n_min,node,,num,min *get,n_anz,node,,count n_arb=n_min *do,i,1,n_anz k,km+i,nx(n_arb),ny(n_arb) n_arb=ndnext(n_arb) *enddo cm,aussen,kp !------------------------- lsel,s,,,linnen nsll,s,1 *get,k_max,kp,,num,max km=k_max ksel,u,,,1,km *get,n_min,node,,num,min *get,n_anz,node,,count n_arb=n_min *do,i,1,n_anz k,km+i,nx(n_arb),ny(n_arb) n_arb=ndnext(n_arb) *enddo cm,innen,kp cmsel,s,aussen cmsel,a,innen kplot !----Startknoten finden----- cmsel,s,aussen *get,k1,kp,,num,min cmsel,s,innen k6=knear(k1) !========Lauf========== *do,lauf,1,taussen/4 !lauf=1 !für Testung lauf=2 cmsel,s,aussen k2=knear(k1) ksel,u,,,k1 k3=knear(k2) ksel,u,,,k2 k4=knear(k3) ksel,u,,,k3 k5=knear(k4) ksel,u,,,k4 cmsel,s,innen k7=knear(k6) ksel,u,,,k6 k8=knear(k7) !-----neue Keypoints-generieren----- allsel *get,km,kp,,num,max !----Kp+1----- kx=(kx(k3)+kx(k7))/2 ky=(ky(k3)+ky(k7))/2 k,km+1,kx,ky !----Kp+2----- kx=(kx(k2)*2+kx(k6)+kx(k7))/4 ky=(ky(k2)*2+ky(k6)+ky(k7))/4 k,km+2,kx,ky !----Kp+3----- kx=(kx(k4)*2+kx(k8)+kx(k7))/4 ky=(ky(k4)*2+ky(k8)+ky(k7))/4 k,km+3,kx,ky !------neue Elemente------ a,k2,k3,km+1,km+2 a,k3,k4,km+3,km+1 a,k6,k1,k2,km+2 a,k6,km+2,km+1,k7 a,k7,km+1,km+3,k8 a,km+3,k4,k5,k8 !----Vorbereitung-nächster-Lauf---------- cmsel,s,aussen ksel,u,,,k1 ksel,u,,,k2 ksel,u,,,k3 ksel,u,,,k4 cm,aussen,kp k1=k5 cmsel,s,innen ksel,u,,,k6 ksel,u,,,k7 cm,innen,kp k6=k8 *enddo !lauf !====================================== !/eof adele,af esize,1 asel,u,,,4 amesh,all eplot allsel !nummrg,kpoi !nummrg,node parres !Parameter wieder zurückschreiben