!Makro zur Vernetzung einer Fläche mit Vierecken !Argument1: Flächen-Nummer !Datei soll "vierecknetz.mac" heißen !Schätzing, erstellt: 24.12.2011 !letzte Bearbeitung: 31.12.2011 !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 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--- !---Knoten von Linien in Komponenten-------- lsel,s,,,laussen nsll,s,1 cm,aussen,node lsel,s,,,linnen nsll,s,1 cm,innen,node cmsel,s,aussen cmsel,a,innen nplot !----Startknoten finden----- cmsel,s,aussen *get,n1,node,,num,min cmsel,s,innen n6=nnear(n1) !========Lauf========== *do,lauf,1,taussen/4 cmsel,s,aussen n2=nnear(n1) nsel,u,,,n1 n3=nnear(n2) nsel,u,,,n2 n4=nnear(n3) nsel,u,,,n3 n5=nnear(n4) nsel,u,,,n4 cmsel,s,innen n7=nnear(n6) nsel,u,,,n6 n8=nnear(n7) !-----neue Knoten-generieren----- allsel *get,nm,node,,num,max !----Knoten+1----- nx=(nx(n3)+nx(n7))/2 ny=(ny(n3)+ny(n7))/2 n,nm+1,nx,ny !----Knoten+2----- nx=(nx(n2)*2+nx(n6)+nx(n7))/4 ny=(ny(n2)*2+ny(n6)+ny(n7))/4 n,nm+2,nx,ny !----Knoten+3----- nx=(nx(n4)*2+nx(n8)+nx(n7))/4 ny=(ny(n4)*2+ny(n8)+ny(n7))/4 n,nm+3,nx,ny !------neue Elemente------ e,n2,n3,nm+1,nm+2 e,n3,n4,nm+3,nm+1 e,n6,n1,n2,nm+2 e,n6,nm+2,nm+1,n7 e,n7,nm+1,nm+3,n8 e,nm+3,n4,n5,n8 !----Vorbereitung-nächster-Lauf---------- cmsel,s,aussen nsel,u,,,n1 nsel,u,,,n2 nsel,u,,,n3 nsel,u,,,n4 cm,aussen,node n1=n5 cmsel,s,innen nsel,u,,,n6 nsel,u,,,n7 cm,innen,node n6=n8 *enddo !lauf !====================================== parres !Parameter wieder zurückschreiben