# Mattenliste mit Schneideskizze auf A4 Format # Wird in Plan abgelegt. Mit Eintrag Blattdaten. # 18.09.2008/LF überarbeitet 05.12.2008/LF überarbeitet 05.03.2009/LF # überarbeitet 05.12.2010/LF - mehrseitiger Druck # Überarbeitet 25.10.2022/LF - Schriftfeld Texthöhen verändert # Zuweisung Variablennamen name(i30,"reihe") ; name(i31,"spalte"); name(i32,"blatnr"); name(i33,"anzlis"); name(r30,"abstx"); name(r31,"absty"); name(i40,"penrah"); name(i41,"penpos"); name(i42,"penlb") ; name(i43,"penbez"); name(r40,"txhvau"); name(r41,"txhpos"); name(r42,"txhlb") ; name(r43,"txhbez"); name(r44,"mastab"); name(r45,"mstb"); name(s30,"bauva"); name(s31,"bauvb"); name(s32,"bauta"); name(s33,"bautb"); name(s34,"plnr"); name(s35,"prjnr"); name(s36,"datu"); name(s37,"lisnr"); name(s38,"gezei"); name(s39,"koptxt"); # Zuweisung Farben und Texthöhen Matten penrah = 2 ; # Farbe fuer den Rahmen 0=Nicht zeichnen txhvau = 0.0 ; # Texthoehe fuer den Auszug darunter 0.0 = nicht penpos = 4; txhpos = 0.175; # Farbe+Texthoehe Positionsnummer in Matte penlb = 1; txhlb = 0.10; # Farbe+Texthoehe Laenge/Breite penbez = 3; txhbez = 0.175; # fuer Bezeichnung ueber der Matte # Zuweisungen Einträge Listenkopf project(s50,"FIRMA_NAME1") project(s51,"FIRMA_NAME2") project(s52,"FIRMA_NAME3") project(s53,"FIRMA_STRASSE") project(s54,"FIRMA_PLZ") project(s55,"FIRMA_ORT") string_cat(s54," "); string_cat(s54,s55); project(s56,"FIRMA_TEL") string_cat(s59, "Tel. "); string_cat(s59,s56); project(s57,"FIRMA_FAX") string_cat(s60, "Fax. "); string_cat (s60,s57); project(s62,"FIRMA_E_MAIL"); string_cat(s61, "e-mail: "); string_cat (s61,s62); project(datu,"DATE"); project(plnr,"ZEICHNUNG"); lisnr = plnr; bauva = "Bauvor_1"; bauvb = "Bauvor_2"; bauta = "Bauteil_1"; bautb = "Bauteil_2"; prjnr = "ProjNr"; gezei = ""; # -------------------------------------------------------------- # Prüfen, ob Datei Kopftext.txt vorhanden, wenn nein, dann anlegen. # Dateiname festlegen # koptxt = plnr; # string_cat(koptxt,"_Kopfdaten.txt"); koptxt = "Kopfdaten.txt"; project(s1,"ZEICHNDIR") # Aktuelles Planverzeichnis einlesen string_cat(s1,"\"); string_cat(s1,koptxt); DATOPEN(-1,s1,""); # -1= nur pruefen ob Datei da ist-> wcoretval 0=Nein 1=Ja writeln(s1); if(wcoretval = 0) then begin datopen(0, s1,"w"); # Daten schreiben writeln(bauva); # 1. Zeile für Blattkopf Bauv.1 writeln(bauvb); # 2. Zeile für Blattkopf Bauv. 2 writeln(bauta); # 3. Zeile für Blattkopf Baut. 1 writeln(bautb); # 4. Zeile für Blattkopf Baut. 2 writeln(prjnr); # 5. Zeile für Blattkopf Projektnr writeln(gezei); # 6. Zeile für Blattkopf Zeichner datclose(); end; if(wcoretval <> 0) then begin datopen(0, s1,"r"); # Vorhandene Daten lesen readln(bauva); # 1. Zeile für Blattkopf readln(bauvb); # 2. Zeile für Blattkopf readln(bauta); # 3. Zeile für Blattkopf readln(bautb); # 4. Zeile für Blattkopf readln(prjnr); # 5. Zeile für Blattkopf readln(gezei); # 6. Zeile für Blattkopf Zeichner datclose(); end; # -------------------------------------------------------------- # Listenkopf. dlg_init(): #Init new Dialog #Label dlg_editbox(1,2,"Bauvorh-1:*",bauva,60); dlg_editbox(1,3,"Bauvorh-2:*",bauvb,60); dlg_editbox(1,4,"Bauteil-1:*",bauta,60); dlg_editbox(1,5,"Bauteil-2:*",bautb,60); dlg_editbox(1,6,"Plan Nr. : ",plnr,30); dlg_editbox(1,7,"Proj. Nr.:*",prjnr,30); dlg_editbox(1,8,"Datum : ",datu,30); dlg_editbox(1,9,"Gez. :*",gezei,30); dlg_editbox(1,10,"Liste Nr.: ",lisnr,30); dlg_label(1,12,"Automatisieren Sie Listeneinträge und Planköpfe mit der artifex Zeichnungsverwaltung",85); dlg_label(1,13,"artifex-Projektserver-Information unter www.artifex-cad.de oder +49 6222 98010",85); #CheckBox schreiben i52 = 0; dlg_checkbox(1,11,"* Änderungen speichern? Häkchen = 'JA'",50,i52); # Maßstab dlg_list_set(1,"1 : -",1); dlg_list_set(2,"1 : 25",1); dlg_list_set(3,"1 : 50",1); dlg_list_set(4,"1 : 20",1); dlg_list_set(5,"1 : 10",1); dlg_list_set(6,"1 :100",1); dlg_list_set(7,"1 : 5",1); dlg_listbox(1,15,"Maßstab ",10,1); #Edit Field i92 = 50; dlg_editbox(1,16,"Maßstab 1:",i92,10); dlg_start("Daten für Listenkopf",i5); # 0= OK; -1=Cancel; > 0 =Button Number if( i5 < 0) then exit; if((i52 > 0) and ( i5 >= 0)) then begin datopen(0, s1,"w"); # Daten schreiben writeln(bauva); # 1. Zeile für Blattkopf Bauv.1 writeln(bauvb); # 2. Zeile für Blattkopf Bauv. 2 writeln(bauta); # 3. Zeile für Blattkopf Baut. 1 writeln(bautb); # 4. Zeile für Blattkopf Baut. 2 writeln(prjnr); # 5. Zeile für Blattkopf Projektnr writeln(gezei); # 6. Zeile für Blattkopf Gez. datclose(); end; if((i92 > 0) and ( i5 >= 0)) then begin i93 = 0; dlg_list_get(s7,i1,1); if (s7 = "1 : -") then i93 = 0; if (s7 = "1 : 25") then i93 = 25; if (s7 = "1 : 50") then i93 = 50; if (s7 = "1 : 20") then i93 = 20; if (s7 = "1 : 10") then i93 = 10; if (s7 = "1 :100") then i93 = 100; if (s7 = "1 : 5") then i93 = 5; if (i93 > 0) then i92 = i93; end; mstb = (i92 / 100 * wcoiuf); if(i5 >= 0) then begin # Text und Zeichner zusammenfassen string_cat (s70, "gez.: "); string_cat (s70, gezei); gezei = s70; # Text und Projektnummer zusammenfassen if(prjnr > 0) then string_cat(s71,"Prj.Nr.: "); string_cat (s71,prjnr); prjnr = s71; end; # -------------------------------------------------------------- setlayer("T_LISTEN_"); # writeln (mstb); #Einfügepunkt auf 0 setzen p1.x = 0; p1.y = 0; p1.z = 0; # Abfrage Einfügepunkt # Mehrseitiger Druck? if (WCOPLOTPAGE = 0 ) then begin # Einfügepunkt 1. Skizze links unten write("Einfuegepunkt Schneideskizze:"); read(p1); end p11 = p1; # Lage Einfügepunkt sichern # ------------------------------- # Rechnen wieviele Listen gebraucht werden mbwanzbieg = mbwanzbieg + 12; #Auffüllen für Int Variable r89 = mbwanzbieg / 13; anzlis = r89; # writeln (mbwanzbieg); # writeln (r89); # writeln (anzlis); # ------------------------------- # Listen einfügen blatnr = 1; spalte = 0; for i88 = 1 to anzlis do begin plotpage(blatnr,p11); insert("WCOMSK","ARTIFEX",p11,mstb,mstb,0.0); # Block/Zelle wcomsk in Bibliothek ARTIFEX # -------------------------------------------- # Listentext einfügen : Firma gst_justify(1); # unten mitte gst_rotation(0.0); gst_height(0.25 * mstb); gst_color(7); p9 = p11; p9.x = p9.x + (2.5 * mstb); p9.y = p9.y + (2.59 * mstb); text(p9,s50); #Firma 1 p9.y = p9.y - (0.343 * mstb); text(p9,s51); #Firma 2 p9.y = p9.y - (0.343 * mstb); text(p9,s52); #Firma 3 p9.y = p9.y - (0.343 * mstb); text(p9,s53); #Strasse p9.y = p9.y - (0.343 * mstb); text(p9,s54); #plz Ort p9.y = p9.y - (0.343 * mstb); text(p9,s59); #tel p9.y = p9.y - (0.343 * mstb); text(p9,s60); #Fax p9.y = p9.y - (0.343 * mstb); text(p9,s61); #e-mail # -------------------------------------------- # Listentext einfügen : Bauteil gst_justify(2); # unten rechts gst_rotation(0.0); gst_height(0.25 * mstb); gst_color(7); p9 = p11; p9.x = p9.x + (15.514 * mstb); p9.y = p9.y + (2.329 * mstb); text(p9,bauva); #BV 1 p9.y = p9.y - (0.483 * mstb); text(p9,bauvb); #BV 2 p9.y = p9.y - (0.483 * mstb); text(p9,bauta); #BT 1 p9.y = p9.y - (0.483 * mstb); text(p9,bautb); #BT 2 gst_height(0.35 * mstb); gst_color(2); p9.y = p9.y - (0.483 * mstb); text(p9,plnr); #Planname gst_color(7); gst_height(0.20 * mstb); p9.y = p9.y - (0.383 * mstb); text(p9,prjnr); #Projektnummer # -------------------------------------------- # Listentext einfügen : Datum Blattnr gst_justify(1); # unten mitte gst_rotation(0.0); gst_color(2); p9 = p11; p9.x = p9.x + (17.0 * mstb); p9.y = p9.y + (1.845 * mstb); gst_height(0.30 * mstb); text(p9,datu); #Datum p9.y = p9.y - (1.34 * mstb); gst_height(0.35 * mstb); text(p9,blatnr); #Blattnr gst_height(0.25 * mstb); gst_color(7); p9.y = p9.y - (0.40 * mstb); text(p9,s70); #Zeichner blatnr = blatnr + 1; p11.x = p11.x + 31 * mstb; end; # -------------------------------------------- #****************************************************************************** # Matten in Listen einfügen gst_justify(0); # unten links gst_rotation(0.0); # horizontal mastab = 2.0; mbwbiegevor(mastab,penrah,penpos,penlb,penbez,txhvau,txhpos,txhlb,txhbez); # 2.0 ist der faktor zum verkleinern der matte da list 1:100 und Plan 1:50 abstx= 3.40 / mastab; absty= 7.10 / mastab; p3 = p1 ; p3.x = p3.x + 1.20 / mastab ; p3.y = p3.y + 6.6 / mastab ; blatnr = 1; reihe = 0; spalte = 0; write(mbwanzbieg); for i88 = 1 to mbwanzbieg do begin plotpage(blatnr,p1); p2 = p3 ; p2.x = p2.x + reihe * abstx; p2.y = p2.y + spalte* absty; i87 = 5 ; # Anzahl Darst. nebeneinander if(spalte = 0) then i87 = 3 ; # 3 Darst. in 1 Reihe reihe = reihe + 1; if( reihe = i87) then begin reihe = 0; spalte = spalte +1; end; if( spalte = 3) then begin spalte = 0 ; reihe = 0 ; if(blatnr < anzlis) then begin blatnr = blatnr + 1; end: if(anzlis >= blatnr) then begin p1.x = p1.x + 31.0 * mstb; p3 = p1 ; p3.x = p3.x + 1.2 * mstb ; p3.y = p3.y + 6.6 * mstb ; end; # fi spalte = 3 end; # i88 mbwanzbieg mbwplbiege(p2,i88); end; # ------------------------------------------------- # Gewichtsliste schreiben # für mehrseitigen Druck P1 zurücksetzen p1.x = p1.x - 31.0 * mstb; abstx = 2.0 * mstb; # Textabstand Gewichtslistex absty = 0.5 * mstb; # Textabstand Gewichtsliste y p2 = p1; p2.x = p2.x + 12.2 * mstb; p2.y = p2.y + 9.9 * mstb; gst_height(12.5 / 50 * mstb); gst_justify(0); # unten links gst_rotation(0.0); # horizontal gst_color(2); plotpage(blatnr,p1); for i88 = 1 to mbwanzmatt do begin p3=p2; mbwliste(i88,"GANZ","7",s1); text(p3,s1); p3.x = p3.x + abstx ; mbwliste(i88,"GTYP","7",s1); text(p3,s1); p3.x = p3.x + abstx ; mbwliste(i88,"GGWP","7.2",s1); text(p3,s1); p2.y = p2.y - 0.5 * mstb ; end # ------------------------------------------------- # Summen schreiben p2 = p1; p2.x = p2.x + 12.20/mastab; p2.y = p2.y + 4.20 / mastab; mbwliste(i88,"GSTUECK","7",s1); text(p2,s1); p2.x = p2.x + 4.00 / mastab; mbwliste(i88,"GGEW","7.2",s1); text(p2,s1); end; # fi listart = 1 end; end; # Start mehrseitiger Druck plotpage(0,p1); write(""); END.