diff --git a/Lisp/KreiselInsert.lsp b/Lisp/KreiselInsert.lsp index 88a864c..b82a818 100644 --- a/Lisp/KreiselInsert.lsp +++ b/Lisp/KreiselInsert.lsp @@ -35,7 +35,8 @@ ;; Attribut-Definitionen: ((TAG DEFAULT) ...) (setq *kreisel-attrib-defs* - '(("DREHRICHTUNG" "UZS") + '(("NAME" "") + ("DREHRICHTUNG" "UZS") ("N_SEPARATOREN" "2") ("KREISELART" "STANDARD") ("N_SCANNER" "0") @@ -233,6 +234,8 @@ (assoc "ABSTAND" attribs) attribs)) (setq attribs (subst (cons "DREHUNG" (rtos rotation 2 1)) (assoc "DREHUNG" attribs) attribs)) + (setq attribs (subst (cons "HOEHE" (rtos (if (caddr basePoint) (caddr basePoint) 0.0) 2 1)) + (assoc "HOEHE" attribs) attribs)) (setq is-pin (equal (cdr (assoc "KREISELART" attribs)) "PIN")) ;; AUTOMATISCHE NUMMER VERGEBEN @@ -736,6 +739,199 @@ ) +;; ============================================================ +;; TEIL 5: KREISEL BEARBEITEN (DCL-Dialog) +;; ============================================================ + +;; Ausrichtungs-Definitionen: ((Label Rotation) ...) +;; Rotation in Grad: 0=rechts, 90=oben, 180=links, 270=unten +(setq *kreisel-ausrichtungen* + '(("Horizontal MS" 0.0) + ("Horizontal SM" 180.0) + ("Vertikal MS" 90.0) + ("Vertikal SM" 270.0)) +) + +;; Rotation (Grad) -> Ausrichtungs-Index (fuer popup_list) +(defun kreisel-rotation-to-idx (rot / idx i entry diff) + (setq idx 0 i 0) + (foreach entry *kreisel-ausrichtungen* + (setq diff (abs (- (rem (+ rot 360.0) 360.0) + (rem (+ (cadr entry) 360.0) 360.0)))) + (if (< diff 1.0) (setq idx i)) + (setq i (1+ i)) + ) + idx +) + +;; Ausrichtungs-Index -> Rotation (Grad) +(defun kreisel-idx-to-rotation (idx) + (cadr (nth idx *kreisel-ausrichtungen*)) +) + +;; ----------------------------------------------- +;; KreiselEdit: Bestehenden Kreisel per Dialog bearbeiten +;; +;; Ablauf: +;; 1. Kreisel-Block auswaehlen (oder vorselektiert) +;; 2. DCL-Dialog mit aktuellen Werten oeffnen +;; 3. Bei OK: Block loeschen und mit neuen Werten neu zeichnen +;; ----------------------------------------------- +(defun c:KreiselEdit ( / sel ss ent ed attribs basePoint rotation + dcl-pfad dat ergebnis + dlg-name dlg-abstand dlg-hoehe dlg-ausrichtung + dlg-drehrichtung dlg-kreiselart + newAbstand newRotation ausrichtLabels) + + ;; Implied Selection VOR ssg-start pruefen (ssg-start hebt Selektion auf) + (setq ss (ssget "I")) + (if (and ss (= (sslength ss) 1) + (= (cdr (assoc 0 (entget (ssname ss 0)))) "INSERT")) + (setq ent (ssname ss 0)) + ) + + (ssg-start "Kreisel bearbeiten" '(("OSMODE") ("CECOLOR") ("ATTREQ") ("ATTDIA"))) + (setvar "OSMODE" 0) + + ;; 1. Block auswaehlen (falls nicht vorselektiert) + (if (null ent) + (progn + (setq sel (entsel "\nKreisel-Block auswaehlen: ")) + (if sel (setq ent (car sel))) + ) + ) + (if (null ent) (progn (ssg-end) (exit))) + + (setq ed (entget ent)) + (if (/= (cdr (assoc 0 ed)) "INSERT") + (progn (ssg-emsg "Kein Block ausgewaehlt!") (ssg-end) (exit)) + ) + + ;; 2. Bestehende Werte auslesen + (setq attribs (ssg-attrib-read ent)) + (setq basePoint (cdr (assoc 10 ed))) + (setq rotation (* (/ 180.0 pi) (cdr (assoc 50 ed)))) + + ;; Pruefen ob Block Kreisel-Attribute hat (mindestens ABSTAND) + (if (null (assoc "ABSTAND" attribs)) + (progn + (ssg-emsg "Kein Kreisel-Block! (Attribut ABSTAND fehlt)") + (ssg-end) + (exit) + ) + ) + + ;; Fehlende Attribute mit Defaults auffuellen + (foreach def *kreisel-attrib-defs* + (if (null (assoc (car def) attribs)) + (setq attribs (append attribs (list (cons (car def) (cadr def))))) + ) + ) + + ;; HOEHE immer aus Z-Koordinate des Einfuegepunkts befuellen + (setq attribs (subst (cons "HOEHE" (rtos (if (caddr basePoint) (caddr basePoint) 0.0) 2 1)) + (assoc "HOEHE" attribs) attribs)) + + (princ (strcat "\n-> Bestehend: Abstand=" (cdr (assoc "ABSTAND" attribs)) + " Drehung=" (rtos rotation 2 1) + " Art=" (cdr (assoc "KREISELART" attribs)))) + + ;; 3. DCL-Dialog laden + (setq dcl-pfad (strcat (getenv "DXFM_DCL") "/kreisel_edit.dcl")) + (setq dat (load_dialog dcl-pfad)) + (if (not (new_dialog "kreisel_edit" dat)) + (progn (alert (strcat "Dialog nicht verfuegbar: " dcl-pfad)) (ssg-end) (exit)) + ) + + ;; Ausrichtungs-Labels fuer popup_list aufbauen + (setq ausrichtLabels "") + (foreach entry *kreisel-ausrichtungen* + (if (= ausrichtLabels "") + (setq ausrichtLabels (car entry)) + (setq ausrichtLabels (strcat ausrichtLabels "\n" (car entry))) + ) + ) + + ;; Tiles initialisieren + (set_tile "name" (cdr (assoc "NAME" attribs))) + (set_tile "abstand" (cdr (assoc "ABSTAND" attribs))) + (set_tile "hoehe" (cdr (assoc "HOEHE" attribs))) + + (start_list "ausrichtung") + (foreach entry *kreisel-ausrichtungen* + (add_list (car entry)) + ) + (end_list) + (set_tile "ausrichtung" (itoa (kreisel-rotation-to-idx rotation))) + + (start_list "drehrichtung") + (add_list "UZS") + (add_list "GUZ") + (end_list) + (set_tile "drehrichtung" (if (equal (cdr (assoc "DREHRICHTUNG" attribs)) "GUZ") "1" "0")) + + (start_list "kreiselart") + (add_list "STANDARD") + (add_list "PIN") + (end_list) + (set_tile "kreiselart" (if (equal (cdr (assoc "KREISELART" attribs)) "PIN") "1" "0")) + + ;; Actions + (action_tile "accept" + (strcat + "(setq dlg-name (get_tile \"name\"))" + "(setq dlg-abstand (get_tile \"abstand\"))" + "(setq dlg-hoehe (get_tile \"hoehe\"))" + "(setq dlg-ausrichtung (get_tile \"ausrichtung\"))" + "(setq dlg-drehrichtung (get_tile \"drehrichtung\"))" + "(setq dlg-kreiselart (get_tile \"kreiselart\"))" + "(done_dialog 1)" + ) + ) + (action_tile "cancel" "(done_dialog 0)") + + (setq ergebnis (start_dialog)) + (unload_dialog dat) + + ;; 4. Bei OK: Block loeschen und neu zeichnen + (if (= ergebnis 1) + (progn + ;; Werte aufbereiten + (setq newAbstand (atof dlg-abstand)) + (setq newRotation (kreisel-idx-to-rotation (atoi dlg-ausrichtung))) + + ;; Attribute aktualisieren + (setq attribs (subst (cons "NAME" dlg-name) + (assoc "NAME" attribs) attribs)) + (setq attribs (subst (cons "HOEHE" dlg-hoehe) + (assoc "HOEHE" attribs) attribs)) + (setq attribs (subst (cons "KREISELART" + (if (= dlg-kreiselart "1") "PIN" "STANDARD")) + (assoc "KREISELART" attribs) attribs)) + (setq attribs (subst (cons "DREHRICHTUNG" + (if (= dlg-drehrichtung "1") "GUZ" "UZS")) + (assoc "DREHRICHTUNG" attribs) attribs)) + + ;; Alten Block loeschen + (command "_.ERASE" ent "") + + ;; Neu zeichnen mit Z-Koordinate aus Hoehe-Dialogwert + (draw-module (list (car basePoint) (cadr basePoint) (atof dlg-hoehe)) + newAbstand newRotation attribs) + + (princ (strcat "\nKreisel aktualisiert: " + "Name=" dlg-name + " Abstand=" (rtos newAbstand 2 0) + " Hoehe=" dlg-hoehe + " Rotation=" (rtos newRotation 2 1))) + ) + (princ "\nAbgebrochen.") + ) + + (ssg-end) +) + + ;; -------------------------------------------- ;; KreiselParams: Aktuelle Parameter anzeigen ;; -------------------------------------------- @@ -806,5 +1002,5 @@ ) (princ "\nKreiselInsert.lsp geladen (Version 7.0 - Auto-Nummerierung + Beschriftung + Attribute + Redraw + Eckrad)") -(princ "\nBefehle: KreiselInsert, KreiselConnect, KreiselRedraw, KreiselQuick, KreiselParams, ILS_Eckrad") +(princ "\nBefehle: KreiselInsert, KreiselConnect, KreiselRedraw, KreiselEdit, KreiselQuick, KreiselParams, ILS_Eckrad") (princ) diff --git a/Lisp/tests.lsp b/Lisp/tests.lsp index 953b229..999a433 100644 --- a/Lisp/tests.lsp +++ b/Lisp/tests.lsp @@ -26,75 +26,59 @@ ) ;; ============================================================ -;; EXPORTCSV - Alle INSERT-Entities sammeln und als JSON exportieren +;; EXPORT - Relevante INSERT-Entities sammeln und als JSON exportieren ;; Anschliessend Python-Skript aufrufen fuer CSV-Erzeugung ;; ============================================================ -;; --- Wert sicher als String zurueckgeben --- -(defun csv:to-str (val) - (cond - ((null val) "") - ((= (type val) 'STR) val) - ((= (type val) 'INT) (itoa val)) - ((= (type val) 'REAL) (rtos val 2 6)) - (T (vl-princ-to-string val)) - ) -) - -;; --- String fuer JSON escapen (Anfuehrungszeichen) --- -(defun csv:json-escape (s / pos result ch) - (setq result "") - (setq pos 1) - (repeat (strlen s) - (setq ch (substr s pos 1)) - (cond - ((= ch "\"") (setq result (strcat result "\\\""))) - ((= ch "\\") (setq result (strcat result "\\\\"))) - (T (setq result (strcat result ch))) - ) - (setq pos (1+ pos)) - ) - result +;; --- String fuer JSON escapen (Anfuehrungszeichen/Backslash) --- +;; Nutzt vl-string-subst fuer die haeufigsten Faelle statt +;; zeichenweiser Verkettung (deutlich schneller bei langen Strings). +(defun csv:json-escape (s) + (setq s (vl-string-subst "\\\\" "\\" s)) + (vl-string-subst "\\\"" "\"" s) ) ;; --- Attribute eines INSERT-Blocks als JSON-Objekt lesen --- ;; ename = Entity-Name des INSERT ;; Rueckgabe: String wie {"TAG1":"Wert1","TAG2":"Wert2"} -(defun csv:read-attribs (ename / obj typ tag wert result first-item) +(defun csv:read-attribs (ename / obj ed typ tag wert parts) (setq obj (entnext ename)) - (setq result "{") - (setq first-item T) - (while (and obj (not (equal (cdr (assoc 0 (entget obj))) "SEQEND"))) - (setq typ (cdr (assoc 0 (entget obj)))) - (if (equal typ "ATTRIB") + (setq parts nil) + (while obj + (setq ed (entget obj)) + (setq typ (cdr (assoc 0 ed))) + (if (equal typ "SEQEND") (setq obj nil) (progn - (setq tag (cdr (assoc 2 (entget obj)))) - (setq wert (cdr (assoc 1 (entget obj)))) - (if (not first-item) - (setq result (strcat result ",")) + (if (equal typ "ATTRIB") + (setq parts (cons (strcat "\"" (csv:json-escape (cdr (assoc 2 ed))) + "\":\"" (csv:json-escape (cdr (assoc 1 ed))) "\"") + parts)) ) - (setq result (strcat result - "\"" (csv:json-escape tag) "\":\"" - (csv:json-escape wert) "\"")) - (setq first-item nil) + (setq obj (entnext obj)) ) ) - (setq obj (entnext obj)) ) - (strcat result "}") + (if parts + (progn + (setq parts (reverse parts)) + (strcat "{" (car parts) + (apply 'strcat (mapcar '(lambda (p) (strcat "," p)) (cdr parts))) + "}") + ) + "{}" + ) ) ;; --- Einen INSERT-Block als JSON-Objekt schreiben --- -(defun csv:block-to-json (ename / ed blk-name layer pt rotation handle attribs has-attribs) +(defun csv:block-to-json (ename / ed blk-name layer pt rotation handle attribs) (setq ed (entget ename)) (setq blk-name (cdr (assoc 2 ed))) (setq layer (cdr (assoc 8 ed))) (setq pt (cdr (assoc 10 ed))) (setq rotation (cdr (assoc 50 ed))) (setq handle (cdr (assoc 5 ed))) - (setq has-attribs (cdr (assoc 66 ed))) (if (null rotation) (setq rotation 0.0)) - (if has-attribs + (if (cdr (assoc 66 ed)) (setq attribs (csv:read-attribs ename)) (setq attribs "{}") ) @@ -104,35 +88,71 @@ ",\"handle\":\"" (csv:json-escape handle) "\"" ",\"x\":" (rtos (car pt) 2 4) ",\"y\":" (rtos (cadr pt) 2 4) - ",\"z\":" (rtos (caddr pt) 2 4) + ",\"z\":" (rtos (if (caddr pt) (caddr pt) 0.0) 2 4) ",\"rotation\":" (rtos (* (/ rotation pi) 180.0) 2 4) ",\"attribs\":" attribs "}" ) ) -;; --- EXPORTSIVAS: Sivas-spezifischer CSV-Export mit Summierungszeilen --- -(defun c:EXPORTSIVAS ( / ss i ename json-str out-pfad py-skript cmd fh - ergebnis-pfad first-block count) - (princ "\n[EXPORTSIVAS] Sammle alle Bloecke der Zeichnung...") +;; --- Relevante Bloecke sammeln --- +;; Filtert INSERT-Entities auf exportierbare Bloecke: +;; KR_* = Kreisel Compound-Bloecke +;; AP110* = Omniflo Geraden +;; Omniflo Boegen/Weichen = rein numerische Blocknamen (SivasNr) +;; Vario* = VarioFoerderer-Bloecke +;; Gibt Auswahlsatz zurueck oder nil. +(defun csv:collect-export-blocks ( / ss-all ss-out i ename ed bname) + (setq ss-all (ssget "X" (list (cons 0 "INSERT")))) + (if (null ss-all) (setq ss-out nil) + (progn + (setq ss-out (ssadd)) + (setq i 0) + (while (setq ename (ssname ss-all i)) + (setq ed (entget ename)) + (setq bname (cdr (assoc 2 ed))) + (if (or + (wcmatch bname "KR_*") + (wcmatch (strcase bname) "AP110*,AP_110*") + (wcmatch bname "Vario*,Staustrecke*,AUS_Element*,EIN_Element*") + ;; Rein numerische Namen = Omniflo SivasNr (Boegen/Weichen) + (wcmatch bname "#*") + ) + (ssadd ename ss-out) + ) + (setq i (1+ i)) + ) + (if (= (sslength ss-out) 0) (setq ss-out nil)) + ) + ) + ss-out +) - ;; Alle INSERT-Entities in der Zeichnung - (setq ss (ssget "X" (list (cons 0 "INSERT")))) +;; --- Gemeinsame Export-Funktion --- +;; Sammelt relevante Bloecke, schreibt JSON, ruft Python auf. +;; label = Anzeigename (z.B. "EXPORTCSV") +;; py-name = Python-Skript-Name (z.B. "export_csv.py") +;; csv-name = Ergebnis-CSV-Name (z.B. "export.csv") +(defun csv:run-export (label py-name csv-name / ss i ename fh out-pfad + py-skript ergebnis-pfad cmd first-block count) + (princ (strcat "\n[" label "] Sammle relevante Bloecke...")) + + (setq ss (csv:collect-export-blocks)) (if (null ss) (progn - (princ "\n[EXPORTSIVAS] Keine Bloecke in der Zeichnung gefunden.") + (princ (strcat "\n[" label "] Keine relevanten Bloecke gefunden.")) (princ) ) (progn (setq count (sslength ss)) - (princ (strcat "\n[EXPORTSIVAS] " (itoa count) " Bloecke gefunden.")) + (princ (strcat "\n[" label "] " (itoa count) " Bloecke gefunden.")) ;; JSON-Datei zusammenbauen (setq out-pfad (strcat (getenv "DXFM_RESULTS") "/export_raw.json")) (setq fh (open out-pfad "w")) (if (null fh) (progn - (princ (strcat "\n[EXPORTSIVAS] FEHLER: Kann Datei nicht oeffnen: " out-pfad)) + (princ (strcat "\n[" label "] FEHLER: Kann Datei nicht oeffnen: " out-pfad)) (princ) ) (progn @@ -143,32 +163,28 @@ (if (not first-block) (write-line "," fh) ) - (setq json-str (csv:block-to-json ename)) - (write-line json-str fh) + (write-line (csv:block-to-json ename) fh) (setq first-block nil) (setq i (1+ i)) ) (write-line "]" fh) (close fh) - (princ (strcat "\n[EXPORTSIVAS] JSON geschrieben: " out-pfad)) + (princ (strcat "\n[" label "] JSON geschrieben: " out-pfad)) ;; Python-Skript aufrufen - (setq py-skript (strcat (getenv "DXFM_LIB") "/export_sivas.py")) + (setq py-skript (strcat (getenv "DXFM_LIB") "/" py-name)) (if (findfile py-skript) (progn - (setq ergebnis-pfad (strcat (getenv "DXFM_RESULTS") "/export_sivas.csv")) + (setq ergebnis-pfad (strcat (getenv "DXFM_RESULTS") "/" csv-name)) (setq cmd (strcat "python \"" py-skript "\"" " \"" out-pfad "\"" " \"" (getenv "DXFM_DATA") "\"" " \"" ergebnis-pfad "\"")) - (princ (strcat "\n[EXPORTSIVAS] Rufe Python auf...")) - (command "_.SHELL" cmd) - (if (findfile ergebnis-pfad) - (princ (strcat "\n[EXPORTSIVAS] CSV erstellt: " ergebnis-pfad)) - (princ "\n[EXPORTSIVAS] WARNUNG: CSV-Datei wurde nicht erzeugt.") - ) + (princ (strcat "\n[" label "] Rufe Python auf...")) + (startapp "cmd" (strcat "/c " cmd)) + (princ (strcat "\n[" label "] Export gestartet: " ergebnis-pfad)) ) - (princ (strcat "\n[EXPORTSIVAS] FEHLER: Python-Skript nicht gefunden: " py-skript)) + (princ (strcat "\n[" label "] FEHLER: Python-Skript nicht gefunden: " py-skript)) ) ) ) @@ -177,69 +193,12 @@ (princ) ) +;; --- EXPORTSIVAS: Sivas-spezifischer CSV-Export mit Summierungszeilen --- +(defun c:EXPORTSIVAS () + (csv:run-export "EXPORTSIVAS" "export_sivas.py" "export_sivas.csv") +) ;; --- EXPORTCSV: Einfache Item-Liste aller Bloecke (ohne Summierung) --- -;; Nutzt dieselben csv:* Hilfsfunktionen und export_raw.json, -;; ruft export_csv.py auf fuer die einfache CSV-Erzeugung. -(defun c:EXPORTCSV ( / ss i ename json-str out-pfad py-skript cmd fh - ergebnis-pfad first-block count) - (princ "\n[EXPORTCSV] Sammle alle Bloecke der Zeichnung...") - - (setq ss (ssget "X" (list (cons 0 "INSERT")))) - (if (null ss) - (progn - (princ "\n[EXPORTCSV] Keine Bloecke in der Zeichnung gefunden.") - (princ) - ) - (progn - (setq count (sslength ss)) - (princ (strcat "\n[EXPORTCSV] " (itoa count) " Bloecke gefunden.")) - - (setq out-pfad (strcat (getenv "DXFM_RESULTS") "/export_raw.json")) - (setq fh (open out-pfad "w")) - (if (null fh) - (progn - (princ (strcat "\n[EXPORTCSV] FEHLER: Kann Datei nicht oeffnen: " out-pfad)) - (princ) - ) - (progn - (write-line "[" fh) - (setq i 0) - (setq first-block T) - (while (setq ename (ssname ss i)) - (if (not first-block) - (write-line "," fh) - ) - (setq json-str (csv:block-to-json ename)) - (write-line json-str fh) - (setq first-block nil) - (setq i (1+ i)) - ) - (write-line "]" fh) - (close fh) - (princ (strcat "\n[EXPORTCSV] JSON geschrieben: " out-pfad)) - - ;; Python-Skript aufrufen - (setq py-skript (strcat (getenv "DXFM_LIB") "/export_csv.py")) - (if (findfile py-skript) - (progn - (setq ergebnis-pfad (strcat (getenv "DXFM_RESULTS") "/export.csv")) - (setq cmd (strcat "python \"" py-skript "\"" - " \"" out-pfad "\"" - " \"" (getenv "DXFM_DATA") "\"" - " \"" ergebnis-pfad "\"")) - (princ (strcat "\n[EXPORTCSV] Rufe Python auf...")) - (command "_.SHELL" cmd) - (if (findfile ergebnis-pfad) - (princ (strcat "\n[EXPORTCSV] CSV erstellt: " ergebnis-pfad)) - (princ "\n[EXPORTCSV] WARNUNG: CSV-Datei wurde nicht erzeugt.") - ) - ) - (princ (strcat "\n[EXPORTCSV] FEHLER: Python-Skript nicht gefunden: " py-skript)) - ) - ) - ) - ) - ) - (princ) +(defun c:EXPORTCSV () + (csv:run-export "EXPORTCSV" "export_csv.py" "export.csv") ) diff --git a/bin/create_tests.bat b/bin/create_tests.bat new file mode 100644 index 0000000..aca3863 --- /dev/null +++ b/bin/create_tests.bat @@ -0,0 +1,41 @@ +@echo off +REM ================================================================ +REM create_tests.bat - ILS Testlauf +REM +REM Ablauf: +REM 1. Umgebung setzen +REM 2. Python: ILStest.dxf mit Linien erzeugen +REM 3. BricsCAD: Kreisel einfuegen, exportieren, speichern +REM 4. Python: Ergebnisse gegen Referenzen validieren +REM ================================================================ + +call "%~dp0setenv.bat" + +echo. +echo ================================================================ +echo ILS TEST - Schritt 1: Basis-DXF erzeugen +echo ================================================================ +python "%DXFM_TESTS%\create_ILStest_dxf.py" "%DXFM_TESTS%\ILStest.dxf" +if errorlevel 1 ( + echo FEHLER: DXF-Erzeugung fehlgeschlagen! + pause + exit /b 1 +) + +echo. +echo ================================================================ +echo ILS TEST - Schritt 2: BricsCAD starten und Kreisel erzeugen +echo ================================================================ +echo BricsCAD wird gestartet mit dem Testskript... +echo Nach Abschluss des Tests BricsCAD schliessen. +echo. +start /wait "" %BRISCAD% /s "%DXFM_TESTS%\ILS_test.scr" + +echo. +echo ================================================================ +echo ILS TEST - Schritt 3: Ergebnisse validieren +echo ================================================================ +python "%DXFM_TESTS%\validate_tests.py" "%DXFM_RESULTS%" "%DXFM_TESTS%\references" + +echo. +pause diff --git a/bin/setenv.bat b/bin/setenv.bat index 535fdc9..24bbe38 100644 --- a/bin/setenv.bat +++ b/bin/setenv.bat @@ -15,6 +15,7 @@ REM Pfade fuer verschiedene Komponenten set "DXFM_BIN=%DXFMAKRO%\bin" set "DXFM_LIB=%DXFMAKRO%\lib" set "DXFM_DATA=%DXFMAKRO%\data" +set "DXFM_TESTS=%DXFMAKRO%\tests" set "DXFM_CFG=%DXFMAKRO%\cfg" set "DXFM_LOG=%DXFMAKRO%\log" set "DXFM_BLOCKS=%DXFMAKRO%\Blocks" diff --git a/doc/acadsst/HFS/hfs_mod.lsp b/doc/acadsst/HFS/hfs_mod.lsp deleted file mode 100644 index 02186dc..0000000 --- a/doc/acadsst/HFS/hfs_mod.lsp +++ /dev/null @@ -1,104 +0,0 @@ -;------------------------------------------------------------------------; -; ALU-KOMPONENTEN - HFS_MOD.LSP ; -;------------------------------------------------------------------------; -; AW 14.06.97 / 15.8.98 ; -; 16.08.98 - 2-WAY MODUL eingebaut ; -; 06.11.98 - HP-SORT II eingebaut ; -;------------------------------------------------------------------------; -(defun Dbox (/ Dat) - (setq Dat (load_dialog (strcat lw "/acadsst/hfs/HFS_MOD.DCL"))) - (if (not (new_dialog "HFS_MOD" Dat)) (exit)) - (set_tile "DWG_NAME" m_DWG_NAME); Blockname - (mode_tile "anzeige" 0) - (SetDia) - (ACTION_TILE "DWG_NAME" "(zeig_dia)") - (action_tile "accept" "(SetPara) (done_dialog)") - (action_tile "cancel" "(exit) (done_dialog)") - (start_dialog) - (unload_dialog Dat) -) - -(defun SetDia() - (setq breite (dimx_tile "anzeige")) - (setq hoehe (dimy_tile "anzeige")) - (start_image "anzeige") - (FILL_IMAGE 0 0 breite hoehe -18) - (if (= m_DWG_NAME "0") - (slide_image 0 0 breite hoehe "hfs(kmlight)") - ) - (if (= m_DWG_NAME "1") - (slide_image 0 0 breite hoehe "hfs(km3000)") - ) - (if (= m_DWG_NAME "2") - (slide_image 0 0 breite hoehe "hfs(km5000)") - ) - (if (= m_DWG_NAME "3") - (slide_image 0 0 breite hoehe "hfs(hochl)") - ) - (if (= m_DWG_NAME "4") - (slide_image 0 0 breite hoehe "hfs(hfsmod02)") - ) - (if (= m_DWG_NAME "5") - (slide_image 0 0 breite hoehe "hfs(hochltup)") - ) - (if (= m_DWG_NAME "6") - (slide_image 0 0 breite hoehe "hfs(hfsmod01)") - ) - (end_image) -) - -(defun zeig_dia() - (setq m_DWG_NAME (get_tile "DWG_NAME")) - (SetDia) -) - -(defun setpara() - (setq m_DWG_NAME (get_tile "DWG_NAME")) -) - -(defun datain () - (setq dummy nil) -) - -(defun geometrie() - (if (= m_DWG_NAME "0") - (setq BL_NAME "kmlight") - ) - (if (= m_DWG_NAME "1") - (setq BL_NAME "km3000") - ) - (if (= m_DWG_NAME "2") - (setq BL_NAME "km5000") - ) - (if (= m_DWG_NAME "3") - (setq BL_NAME "hochl") - ) - (if (= m_DWG_NAME "4") - (setq BL_NAME "hfsmod02") - ) - (if (= m_DWG_NAME "5") - (setq BL_NAME "hochltup") - ) - (if (= m_DWG_NAME "6") - (setq BL_NAME "hfsmod01") - ) - (command "_layer" "_m" "H-2" "_c" "2" "" "") - (setq P0 (getpoint "\nPick insert point: ")) - (setq BL_NAME (strcat lw "/acadsst/hfs/" BL_NAME)) - (command "_insert" BL_NAME P0 "" "" "0") -) - -;------------------------------------------------------------------------------ -(defun c:HFS_MOD ( / DWG_NAME BL_NAME P0) - (setvar "limcheck" 0) - (setvar "CMDECHO" 0) - (setvar "BLIPMODE" 0) - (setq EINZEL 0) ; fuer EINZEL=0 Baugruppen / EINZEL=1 fuer APB - (prompt "**** HFS MODULS *******") - (prompt "") - (if (null m_DWG_NAME)(setq m_DWG_NAME "0")); Anfangssymbolname - (Dbox) - (prompt "") - (datain) - (geometrie) -) diff --git a/doc/acadsst/ILS2100/ils_ae_elem.lsp b/doc/acadsst/ILS2100/ils_ae_elem.lsp deleted file mode 100644 index 8638116..0000000 --- a/doc/acadsst/ILS2100/ils_ae_elem.lsp +++ /dev/null @@ -1,181 +0,0 @@ -;------------------------------------------------------------------------; -; ALU-KOMPONENTEN - ILS_AE_ELEM.LSP ; -;------------------------------------------------------------------------; -; AW 14.06.97 / 15.8.98 / 20.9.06 ; -;------------------------------------------------------------------------; -(defun Dbox (/ Dat) - (setq Dat (load_dialog (strcat lw "/acadsst/ils2100/ILS_AE_ELEM.DCL"))) - (if (not (new_dialog "ILS_AE_ELEM" Dat)) (exit)) - (set_tile "DWG_NAME" m_DWG_NAME); Blockname - (set_tile "PNEUM" m_PNEUM) - (mode_tile "anzeige" 0) - (SetDia) - (ACTION_TILE "DWG_NAME" "(zeig_dia)") - (action_tile "accept" "(SetPara) (done_dialog)") - (action_tile "cancel" "(exit) (done_dialog)") - (start_dialog) - (unload_dialog Dat) -) - -(defun SetDia() - (setq breite (dimx_tile "anzeige")) - (setq hoehe (dimy_tile "anzeige")) - (start_image "anzeige") - (FILL_IMAGE 0 0 breite hoehe -18) - (if (= m_DWG_NAME "0") - (slide_image 0 0 breite hoehe "ils2100(29412018)") ; AS LINKS [BG] - ) - (if (= m_DWG_NAME "1") - (slide_image 0 0 breite hoehe "ils2100(29412020)") ; AS RECHTS [BG] - ) - (if (= m_DWG_NAME "2") - (slide_image 0 0 breite hoehe "ils2100(29412021)") ; ES LINKS - ) - (if (= m_DWG_NAME "3") - (slide_image 0 0 breite hoehe "ils2100(29412017)") ; ES RECHTS - ) - (if (= m_DWG_NAME "4") - (slide_image 0 0 breite hoehe "ils2100(29412022)") ; AS LINKS MIT SMC PNEUMATIK - ) - (if (= m_DWG_NAME "5") - (slide_image 0 0 breite hoehe "ils2100(29412023)") ; AS RECHTS MIT SMC PNEUMATIK - ) - (end_image) -) - -(defun zeig_dia() - (setq m_DWG_NAME (get_tile "DWG_NAME")) - (setq m_PNEUM (get_tile "PNEUM")) - (if (or (= m_DWG_NAME "0") (= m_DWG_NAME "1 - ")) ; AS LINKS oder RECHTS als BG - (progn - (mode_tile "PNEUM_1" 0) - (mode_tile "PNEUM_2" 0) - ) - (progn - (mode_tile "PNEUM_1" 1) - (mode_tile "PNEUM_2" 1) - ) - ) - (SetDia) -) - -(defun setpara() - (setq m_DWG_NAME (get_tile "DWG_NAME")) - (setq m_PNEUM (get_tile "PNEUM")) -) - -(defun datain () - (setq dummy nil) -) - -(defun geometrie() - (if (= m_DWG_NAME "0") - (progn - (setq BL_NAME "829412018") - (setq NEV "AS-ELEMENT LINKS ") - (if (= m_PNEUM "PNEUM_1") - (progn - (setq E_ARTINR "829434103") - (setq E_BEZEICHNUNG "BOSCH-PNEUMATIK-SATZ [829434103]") - ) - ) - (if (= m_PNEUM "PNEUM_2") - (progn - (setq E_ARTINR "829434123") - (setq E_BEZEICHNUNG "SMC-PNEUMATIK-SATZ [829434123]") - ) - ) - ) - ) - (if (= m_DWG_NAME "1") - (progn - (setq NEV "AS-ELEMENT RECHTS ") - (setq BL_NAME "829412020") - (if (= m_PNEUM "PNEUM_1") - (progn - (setq E_ARTINR "829434103") - (setq E_BEZEICHNUNG "BOSCH-PNEUMATIK-SATZ [829434103]") - ) - ) - (if (= m_PNEUM "PNEUM_2") - (progn - (setq E_ARTINR "829434123") - (setq E_BEZEICHNUNG "SMC-PNEUMATIK-SATZ [829434123]") - ) - ) - ) - ) - (if (= m_DWG_NAME "2") - (progn - (setq NEV "") - (setq BL_NAME "829412021") - (setq E_ARTINR "") - (setq E_BEZEICHNUNG "") - ) - ) - (if (= m_DWG_NAME "3") - (progn - (setq NEV "") - (setq BL_NAME "829412017") - (setq E_ARTINR "") - (setq E_BEZEICHNUNG "") - ) - ) - (if (= m_DWG_NAME "4") - (progn - (setq NEV "") - (setq BL_NAME "829412022") - (setq E_ARTINR "") - (setq E_BEZEICHNUNG "") - ) - ) - (if (= m_DWG_NAME "5") - (progn - (setq NEV "") - (setq BL_NAME "829412023") - (setq E_ARTINR "") - (setq E_BEZEICHNUNG "") - ) - ) - (command "_layer" "_m" "ILS-AE-AS" "_c" "4" "" "") - (setq P0 (getpoint "\nPick insert point: ")) - (bl-name P0) ;--> Block-Name definieren -> Rckgabe: element-name - (setq BL_NAME (strcat lw "/acadsst/ils2100/" BL_NAME)) - (command "_insert" BL_NAME P0 "" "" pause) - (attribute-aendern "" "" "" "" "" block-kennung "" "" "" "") - - (if (or (= m_DWG_NAME "0") (= m_DWG_NAME "1")) ; AS-Element als BG - (progn - (setq AUSWAHL-SATZ (ssget "_L")) - (EINZELTEIL E_ARTINR E_BEZEICHNUNG "1") - (mach-block P0 "0" AUSWAHL-SATZ) - (attribute-aendern "0" "2" "3" "0" "0" block-kennung "333333333" (strcat NEV "MIT " E_BEZEICHNUNG) "1" "") - ) - ) -) - -(defun EINZELTEIL (E_ARTINR E_BEZEICHNUNG E_MENGE) - (command "_layer" "_m" "ILS-COMPONENTS" "_c" "7" "" "") - (command "_insert" (strcat lw "/acadsst/ils2100/d_einzel") P0 "" "" "0") - (attribute-aendern "0" "0" "23" "" "" block-kennung E_ARTINR E_BEZEICHNUNG E_MENGE "") - (ssadd (entlast) AUSWAHL-SATZ) -) - -;------------------------------------------------------------------------------ -(defun c:ILS_AE_ELEM ( / DWG_NAME BL_NAME P0) - (setvar "limcheck" 0) - (setvar "CMDECHO" 0) - (setvar "BLIPMODE" 0) - (setq ALTFANG (getvar "osmode")) - (setq EINZEL 0) ; fuer EINZEL=0 Baugruppen / EINZEL=1 fuer APB - (prompt "**** ILS MODULS *******") - (prompt "") - (if (null m_DWG_NAME)(setq m_DWG_NAME "0")) ; Anfangssymbolname - (if (null m_PNEUM) (setq m_PNEUM "PNEUM_1")) ; Pneumatik - (Dbox) - (prompt "") - (datain) - (geometrie) - (setvar "osmode" ALTFANG) -) diff --git a/doc/acadsst/ILS2100/ils_anbau_str.lsp b/doc/acadsst/ILS2100/ils_anbau_str.lsp deleted file mode 100644 index b87a8cd..0000000 --- a/doc/acadsst/ILS2100/ils_anbau_str.lsp +++ /dev/null @@ -1,243 +0,0 @@ -;------------------------------------------------------------------------; -; ALU-KOMPONENTEN - HFS_MOD.LSP ; -;------------------------------------------------------------------------; -; AW 14.06.97 / 15.8.98 / 19.9.06 / 11.01.07 ; -;------------------------------------------------------------------------; -(defun Dbox (/ Dat) - (setq Dat (load_dialog (strcat lw "/acadsst/ils2100/ILS_ANBAU_STR.DCL"))) - (if (not (new_dialog "ILS_ANBAU_STR" Dat)) (exit)) - - (set_tile "DWG_NAME" m_DWG_NAME); Blockname - (set_tile "PNEUM" m_PNEUM) - (set_tile "ANBAU" m_ANBAU) - (set_tile "ABHANG" m_ABHANG) - - (mode_tile "anzeige" 0) - (SetDia) - (ACTION_TILE "DWG_NAME" "(zeig_dia)") - (action_tile "accept" "(SetPara) (done_dialog)") - (action_tile "cancel" "(exit) (done_dialog)") - (start_dialog) - (unload_dialog Dat) -) - -(defun SetDia() - (setq breite (dimx_tile "anzeige")) - (setq hoehe (dimy_tile "anzeige")) - (start_image "anzeige") - (FILL_IMAGE 0 0 breite hoehe -18) - (if (= m_DWG_NAME "0") - (slide_image 0 0 breite hoehe "ils2100(SEP_EH_A)") ; rapid fire LINKS - ) - (if (= m_DWG_NAME "1") - (slide_image 0 0 breite hoehe "ils2100(SEP_EH_B)") ; rapid fire RECHTS - ) - (if (= m_DWG_NAME "2") - (slide_image 0 0 breite hoehe "ils2100(SEP_DH_A)") ; Separator Doppel-Hub (Gefälle) LINKS - ) - (if (= m_DWG_NAME "3") - (slide_image 0 0 breite hoehe "ils2100(SEP_DH_B)") ; *SONDER* Separator Doppel-Hub (Gefälle) RECHTS - ) - (end_image) -) - -(defun zeig_dia() - (setq m_DWG_NAME (get_tile "DWG_NAME")) - (if (or (= m_DWG_NAME "0") (= m_DWG_NAME "1")) ; Einfach-Hub Separator LINKS oder RECHTS - (progn - (mode_tile "PNEUM" 0) - (mode_tile "ANBAU" 1) - (mode_tile "ABHANG" 0) - ) - ) - (if (= m_DWG_NAME "2") ; Doppel-Hub Separator LINKS - (progn - (setq m_ANBAU "ANBAU_2") - (set_tile "ANBAU" "ANBAU_2") - (mode_tile "PNEUM" 0) - (mode_tile "ANBAU" 0) - (mode_tile "ABHANG" 1) - ) - ) - (if (= m_DWG_NAME "3") ; Doppel-Hub Separator SONDER RECHTS - (progn - (setq m_ANBAU "ANBAU_3") - (set_tile "ANBAU" "ANBAU_3") - (mode_tile "PNEUM" 0) - (mode_tile "ANBAU" 0) - (mode_tile "ABHANG" 1) - ) - ) - (SetDia) -) - -(defun setpara() - (setq m_DWG_NAME (get_tile "DWG_NAME")) - (setq m_PNEUM (get_tile "PNEUM")) - (setq m_ABHANG (get_tile "ABHANG")) - (setq m_ANBAU (get_tile "ANBAU")) -) - -(defun datain () - (setq dummy nil) -) - -(defun geometrie() - (if (= m_DWG_NAME "0") - (progn - (setq NEV "SEPARATOR 1-HUB LINKS") - (setq BL_NAME "829432001A") - (PNEUM_SEP) - ) - ) - (if (= m_DWG_NAME "1") - (progn - (setq NEV "SEPARATOR 1-HUB RECHTS") - (setq BL_NAME "829432001B") - (PNEUM_SEP) - ) - ) - (if (= m_DWG_NAME "2") - (progn - (setq NEV "SEPARATOR 2-HUEBE LINKS") - (setq BL_NAME "829432005A") - (PNEUM_GEFAELLE) - ) - ) - (if (= m_DWG_NAME "3") - (progn - (setq NEV "SEPARATOR 2-HUEBE RECHTS [*SONDER*]") - (setq BL_NAME "829432005B") - (PNEUM_GEFAELLE) - ) - ) - - (command "_layer" "_m" "ILS-COMPONENTS" "_c" "7" "" "") - (setq P0 (getpoint "\nPick insert point: ")) - (bl-name P0) ;--> Block-Name definieren -> Rckgabe: element-name - (setq BL_NAME (strcat lw "/acadsst/ils2100/" BL_NAME)) - (command "_insert" BL_NAME P0 "" "" pause) - (attribute-aendern "" "" "" "" "" block-kennung "" "" "" "") - - (setq AUSWAHL-SATZ (ssget "_L")) - - ;<<< Pneumatik setzen - (EINZELTEIL E_ARTINR E_BEZEICHNUNG "1" "0") - ;<<< Abhänger für Einfach-Hub Separator - (if (or (= m_DWG_NAME "0") (= m_DWG_NAME "1")) - (ABHAENGER) - ) - ;<<< Für Separator in Gefälle immer das gleiche Profil - (if (or (= m_DWG_NAME "2") (= m_DWG_NAME "3")) - (progn - (EINZELTEIL "829434312" "ABHAENGUNG F.SEP.GEFAELLESTRECKE KPL." "1" "20") - (setq NEV (strcat NEV "+" "ABH.GEFAELLE")) - ) - ) - - ;<<< Anbau [LINKS ]für Separator Doppel-Hub - (if (or (= m_DWG_NAME "2") (= m_DWG_NAME "3")) - (progn - (if (= m_ANBAU "ANBAU_2") - (progn - (EINZELTEIL "829434320" "ANBAU [LINKS] MT-TRAVERSENSTOPPER AN SEP. KPL." "1" "30") - (setq NEV (strcat NEV "+" "ANBAU [LINKS] MT")) - ) - ) - (if (= m_ANBAU "ANBAU_3") - (progn - (EINZELTEIL "829434321" "ANBAU [RECHTS] MT-TRAVERSENSTOPPER AN SEP. KPL." "1" "30") - (setq NEV (strcat NEV "+" "ANBAU [RECHTS] MT")) - ) - ) - ) - ) - - (mach-block P0 "0" AUSWAHL-SATZ) - (setq NEV (strcat NEV " KPL.")) - (attribute-aendern "0" "2" "3" "0" "0" block-kennung "333333333" NEV "1" "") - -) - -(defun PNEUM_SEP () - (if (= m_PNEUM "PNEUM_1") - (progn - (setq E_ARTINR "829434101") - (setq E_BEZEICHNUNG "BOSCH-PNEUM.F.EINFACH-HUB KPL.[829434101]") - (setq NEV (strcat NEV "+" "BOSCH")) - ) - ) - (if (= m_PNEUM "PNEUM_2") - (progn - (setq E_ARTINR "829434121") - (setq E_BEZEICHNUNG "SMC-PNEUM.F:EINFACH-HUB KPL.[829434121]") - (setq NEV (strcat NEV "+" "SMC")) - ) - ) -) - -(defun PNEUM_GEFAELLE () - (if (= m_PNEUM "PNEUM_1") - (progn - (setq E_ARTINR "829434100") - (setq E_BEZEICHNUNG "BOSCH-PNEUM.F.DOPPEL-HUB KPL.[829434100]") - (setq NEV (strcat NEV "+" "BOSCH")) - ) - ) - (if (= m_PNEUM "PNEUM_2") - (progn - (setq E_ARTINR "829434120") - (setq E_BEZEICHNUNG "SMC-PNEU.F.DOPPEL-HUB KPL.[829434120]") - (setq NEV (strcat NEV "+" "SMC")) - ) - ) -) - -(defun ABHAENGER () - (if (= m_ABHANG "ABHANG_1") ; Abhängung an Monster-Profil LP - (progn - (EINZELTEIL "829434310" "ABHAENGUNG F.SEP.AN TRAEGERPROFIL" "1" "10") - (setq NEV (strcat NEV "+" "ABH.MONSTER-LP")) - ) - ) - (if (= m_ABHANG "ABHANG_2") ; Abhängung an Monster-Profil LP für PIN - (progn - (EINZELTEIL "829434310" "ABHAENGUNG F.SEP.AN TRAEGERPROFIL" "1" "10") - (setq NEV (strcat NEV "+" "ABH.MONSTER-LP F.PIN")) - ) - ) - (if (= m_ABHANG "ABHANG_3") ; Abhängung an LP - (progn - (EINZELTEIL "829434311" "ABHAENGUNG F.SEP.AN LP KPL." "1" "10") - (setq NEV (strcat NEV "+" "ABH.AN LP")) - ) - ) -) - -(defun EINZELTEIL (E_ARTINR E_BEZEICHNUNG E_MENGE WINKEL) - (command "_layer" "_m" "ILS-COMPONENTS" "_c" "7" "" "") - (command "_insert" (strcat lw "/acadsst/ils2100/d_einzel") P0 "" "" WINKEL) - (attribute-aendern "0" "0" "23" "" "" block-kennung E_ARTINR E_BEZEICHNUNG E_MENGE "") - (ssadd (entlast) AUSWAHL-SATZ) -) - -;------------------------------------------------------------------------------ -(defun c:ILS_ANBAU_STR ( / DWG_NAME BL_NAME P0) - (setvar "limcheck" 0) - (setvar "CMDECHO" 0) - (setvar "BLIPMODE" 0) - (setq ALTFANG (getvar "osmode")) - (setq EINZEL 0) ; fuer EINZEL=0 Baugruppen / EINZEL=1 fuer APB - (prompt "**** ILS SEPARATOR/STOPPER *******") - (prompt "") - (if (null m_DWG_NAME) (setq m_DWG_NAME "0")) ; Anfangssymbolname - (if (null m_PNEUM) (setq m_PNEUM "PNEUM_2")) ; SMC Pneumatik - (if (null m_ABHANG) (setq m_ABHANG "ABHANG_1")) ; Abhänger - (if (null m_ANBAU) (setq m_ANBAU "ANBAU_1")) ; Anbaubaugruppe für Separator Doppelhub - - (Dbox) - (prompt "") - (datain) - (geometrie) - (setvar "osmode" ALTFANG) -) diff --git a/doc/acadsst/ILS2100/ils_angebot.lsp b/doc/acadsst/ILS2100/ils_angebot.lsp deleted file mode 100644 index 5e218ea..0000000 --- a/doc/acadsst/ILS2100/ils_angebot.lsp +++ /dev/null @@ -1,383 +0,0 @@ -;------------------------------------------------------------------------; -; ILS 2100 ANGEBOT ; -;------------------------------------------------------------------------; -; AW 18.11.2007 ; -; 23.01.2009 Bereinigung und Ergänzung ; -;------------------------------------------------------------------------; -(defun Dbox (/ Dat) - (setq Dat (load_dialog (strcat lw "/acadsst/ils2100/ILS_ANGEBOT.DCL"))) - (if (not (new_dialog "ILS_ANGEBOT" Dat)) (exit)) - (set_tile "DWG_NAME" m_DWG_NAME); Blockname - (set_tile "RICHT" m_RICHT) - (mode_tile "anzeige" 0) - (SetDia) - - (ACTION_TILE "DWG_NAME" "(zeig_dia)") - (ACTION_TILE "RICHT" "(zeig_dia)") - - (action_tile "accept" "(SetPara) (done_dialog)") - (action_tile "cancel" "(exit) (done_dialog)") - (start_dialog) - (unload_dialog Dat) -) - -(defun SetDia() - (setq breite (dimx_tile "anzeige")) - (setq hoehe (dimy_tile "anzeige")) - (start_image "anzeige") - (FILL_IMAGE 0 0 breite hoehe -18) - - (if (= m_DWG_NAME "0") ; Antrieb 800 - (slide_image 0 0 breite hoehe "ils2100(B3000010)") - ) - (if (= m_DWG_NAME "1") ; Spannstation 800 - (slide_image 0 0 breite hoehe "ils2100(B3000030)") - ) - (if (= m_DWG_NAME "2") ; Umlenkstation 800 - (slide_image 0 0 breite hoehe "ils2100(B3000050)") - ) - (if (= m_DWG_NAME "3") ; Antrieb 300 - (slide_image 0 0 breite hoehe "ils2100(B3000020)") - ) - (if (= m_DWG_NAME "4") ; Spannstation 300 - (slide_image 0 0 breite hoehe "ils2100(B3000040)") - ) - (if (= m_DWG_NAME "5") ; AS - (progn - (if (= m_RICHT "LINKS") - (slide_image 0 0 breite hoehe "ils2100(B300020L)") - (slide_image 0 0 breite hoehe "ils2100(B300020R)") - ) - ) - ) - (if (= m_DWG_NAME "6") ; ES - (progn - (if (= m_RICHT "LINKS") - (slide_image 0 0 breite hoehe "ils2100(B300021L)") - (slide_image 0 0 breite hoehe "ils2100(B300021R)") - ) - ) - ) - (if (= m_DWG_NAME "7") ; Separator - (slide_image 0 0 breite hoehe "ils2100(B3000150)") - ) - (if (= m_DWG_NAME "8") ; Gefälle - (slide_image 0 0 breite hoehe "ils2100(B3000160)") - ) - (if (= m_DWG_NAME "9") ; Scanner für BM - (slide_image 0 0 breite hoehe "ils2100(B3000170)") - ) - (if (= m_DWG_NAME "10") ; Scanner manuell für Bekleidung - (slide_image 0 0 breite hoehe "ils2100(B3000171)") - ) - (if (= m_DWG_NAME "11") ; Scanner automatisch - (slide_image 0 0 breite hoehe "ils2100(B3000175)") - ) - (if (= m_DWG_NAME "12") ; Beladung - (slide_image 0 0 breite hoehe "ils2100(B3000320)") - ) - (if (= m_DWG_NAME "13") ; Entladung - (slide_image 0 0 breite hoehe "ils2100(B3000310)") - ) - (if (= m_DWG_NAME "14") ; AE 30 GRAD rechts/links - (progn - (if (= m_RICHT "LINKS") - (slide_image 0 0 breite hoehe "ils2100(B3000340)") - (slide_image 0 0 breite hoehe "ils2100(B3000345)") - ) - ) - ) - (if (= m_DWG_NAME "15") ; ETF Umlenkung rechts/links - (progn - (if (= m_RICHT "LINKS") - (slide_image 0 0 breite hoehe "ils2100(B3000360)") - (slide_image 0 0 breite hoehe "ils2100(B3000365)") - ) - ) - ) - (if (= m_DWG_NAME "16") ; ETF Antrieb rechts/links - (progn - (if (= m_RICHT "LINKS") - (slide_image 0 0 breite hoehe "ils2100(B3000350)") - (slide_image 0 0 breite hoehe "ils2100(B3000355)") - ) - ) - ) - (if (= m_DWG_NAME "17") ; EE 30 GRAD rechts/links - (progn - (if (= m_RICHT "LINKS") - (slide_image 0 0 breite hoehe "ils2100(B3000330)") - (slide_image 0 0 breite hoehe "ils2100(B3000335)") - ) - ) - ) - (if (= m_DWG_NAME "18") ; ETF kompl. rechts/links - (progn - (if (= m_RICHT "LINKS") - (slide_image 0 0 breite hoehe "ils2100(ETF_L)") - (slide_image 0 0 breite hoehe "ils2100(ETF_R)") - ) - ) - ) - - (end_image) -) - -(defun zeig_dia() - (setq m_DWG_NAME (get_tile "DWG_NAME")) - (setq m_RICHT (get_tile "RICHT")) - - (if (= m_DWG_NAME "0") ; Antrieb 800 - (mode_tile "RICHT" 1) - ) - (if (= m_DWG_NAME "1") ; Spannstation 800 - (mode_tile "RICHT" 1) - ) - (if (= m_DWG_NAME "2") ; Umlenkstation 800 - (mode_tile "RICHT" 1) - ) - (if (= m_DWG_NAME "3") ; Antrieb 300 - (mode_tile "RICHT" 1) - ) - (if (= m_DWG_NAME "4") ; Spannstation 300 - (mode_tile "RICHT" 1) - ) - (if (= m_DWG_NAME "5") ; AS - (mode_tile "RICHT" 0) - ) - (if (= m_DWG_NAME "6") ; ES - (mode_tile "RICHT" 0) - ) - (if (= m_DWG_NAME "7") ; Separator - (mode_tile "RICHT" 1) - ) - (if (= m_DWG_NAME "8") ; Gefälle - (mode_tile "RICHT" 1) - ) - (if (= m_DWG_NAME "9") ; Scanner für BM - (mode_tile "RICHT" 1) - ) - (if (= m_DWG_NAME "10") ; Scanner manuell für Bekleidung - (mode_tile "RICHT" 1) - ) - (if (= m_DWG_NAME "11") ; Scanner automatisch - (mode_tile "RICHT" 1) - ) - (if (= m_DWG_NAME "12") ; Beladung - (mode_tile "RICHT" 1) - ) - (if (= m_DWG_NAME "13") ; Entladung - (mode_tile "RICHT" 1) - ) - (if (= m_DWG_NAME "14") ; AE 30 GRAD rechts/links - (mode_tile "RICHT" 0) - ) - (if (= m_DWG_NAME "15") ; ETF Umlenkung rechts/links - (mode_tile "RICHT" 0) - ) - (if (= m_DWG_NAME "16") ; ETF Antrieb rechts/links - (mode_tile "RICHT" 0) - ) - (if (= m_DWG_NAME "17") ; EE 30 GRAD rechts/links - (mode_tile "RICHT" 0) - ) - (if (= m_DWG_NAME "18") ; ETF kompl. rechts/links - (mode_tile "RICHT" 0) - ) - - (SetDia) -) - -(defun setpara() - (setq m_DWG_NAME (get_tile "DWG_NAME")) - (setq m_RICHT (get_tile "RICHT")) -) - -(defun datain () - (setq dummy nil) -) - -(defun geometrie() - (setq NEV "") - (setq E_ARTINR "") - (setq E_BEZEICHNUNG "") - - (if (= m_DWG_NAME "0") ; Antrieb 800 - (progn - (command "_layer" "_m" "ILS-ANTRIEB" "_c" "1" "" "") - (setq BL_NAME "0_B3000010") - ) - ) - (if (= m_DWG_NAME "1") ; Spannstation 800 - (progn - (command "_layer" "_m" "ILS-SPANNSTATION" "_c" "2" "" "") - (setq BL_NAME "0_B3000030") - ) - ) - (if (= m_DWG_NAME "2") ; Umlenkstation 800 - (progn - (command "_layer" "_m" "ILS-UMLENKSTATION" "_c" "2" "" "") - (setq BL_NAME "0_B3000050") - ) - ) - (if (= m_DWG_NAME "3") ; Antrieb 300 - (progn - (command "_layer" "_m" "ILS-ANTRIEB" "_c" "1" "" "") - (setq BL_NAME "0_B3000020") - ) - ) - (if (= m_DWG_NAME "4") ; Spannstation 300 - (progn - (command "_layer" "_m" "ILS-SPANNSTATION" "_c" "2" "" "") - (setq BL_NAME "0_B3000040") - ) - ) - (if (= m_DWG_NAME "5") ; AS - (progn - (command "_layer" "_m" "ILS-AS" "_c" "1" "" "") - (if (= m_RICHT "LINKS") - (setq BL_NAME "0_B3000200_L") - (setq BL_NAME "0_B3000200_R") - ) - ) - ) - (if (= m_DWG_NAME "6") ; ES - (progn - (command "_layer" "_m" "ILS-ES" "_c" "7" "" "") - (if (= m_RICHT "LINKS") - (setq BL_NAME "0_B3000210_L") - (setq BL_NAME "0_B3000210_R") - ) - ) - ) - (if (= m_DWG_NAME "7") ; Separator - (progn - (command "_layer" "_m" "ILS-SP" "_c" "3" "" "") - (setq BL_NAME "0_B3000150") - ) - ) - (if (= m_DWG_NAME "8") ; Separator Gefälle - (progn - (command "_layer" "_m" "ILS-SP-G" "_c" "4" "" "") - (setq BL_NAME "0_B3000160") - ) - ) - (if (= m_DWG_NAME "9") ; Scanner für Betriebsmittel - (progn - (command "_layer" "_m" "ILS-SCANNER" "_c" "5" "" "") - (setq BL_NAME "0_B3000170") - ) - ) - (if (= m_DWG_NAME "10") ; Handscanner - (progn - (command "_layer" "_m" "ILS-SCANNER" "_c" "5" "" "") - (setq BL_NAME "0_B3000171") - ) - ) - (if (= m_DWG_NAME "11") ; Automatik Scanner für die Ware - (progn - (command "_layer" "_m" "ILS-SCANNER" "_c" "5" "" "") - (setq BL_NAME "0_B3000175") - ) - ) - (if (= m_DWG_NAME "12") ; Beladung - (progn - (command "_layer" "_m" "ILS-BELADUNG" "_c" "3" "" "") - (setq BL_NAME "0_B3000320") - ) - ) - (if (= m_DWG_NAME "13") ; Entladung - (progn - (command "_layer" "_m" "ILS-ENTLADUNG" "_c" "4" "" "") - (setq BL_NAME "0_B3000310") - ) - ) - (if (= m_DWG_NAME "14") ; AE 30 GRAD rechts/links - (progn - (command "_layer" "_m" "ILS-ETF" "_c" "6" "" "") - (if (= m_RICHT "LINKS") - (setq BL_NAME "0_B3000340") - (setq BL_NAME "0_B3000345") - ) - ) - ) - (if (= m_DWG_NAME "15") ; ETF Umlenkung rechts/links - (progn - (command "_layer" "_m" "ILS-ETF" "_c" "6" "" "") - (if (= m_RICHT "LINKS") - (setq BL_NAME "0_B3000360") - (setq BL_NAME "0_B3000365") - ) - ) - ) - (if (= m_DWG_NAME "16") ; ETF Antrieb rechts/links - (progn - (command "_layer" "_m" "ILS-ETF" "_c" "6" "" "") - (if (= m_RICHT "LINKS") - (setq BL_NAME "0_B3000350") - (setq BL_NAME "0_B3000355") - ) - ) - ) - (if (= m_DWG_NAME "17") ; EE 30 GRAD rechts/links - (progn - (command "_layer" "_m" "ILS-ETF" "_c" "6" "" "") - (if (= m_RICHT "LINKS") - (setq BL_NAME "0_B3000330") - (setq BL_NAME "0_B3000335") - ) - ) - ) - (if (= m_DWG_NAME "18") ; ETF kompl. rechts/links - (progn - (command "_layer" "_m" "ILS-ETF" "_c" "6" "" "") - (if (= m_RICHT "LINKS") - (setq BL_NAME "ETF_L") - (setq BL_NAME "ETF_R") - ) - ) - ) - - - (setq P0 (getpoint "\nPick insert point: ")) -; (bl-name P0) ;--> Block-Name definieren -> Rckgabe: element-name - (setq BL_NAME (strcat lw "/acadsst/ils2100/" BL_NAME)) - (command "_insert" BL_NAME P0 "" "" pause) -; (attribute-aendern "" "" "" "" "" block-kennung "" "" "" "") - -;---------------------------------------------------------------------- -; (if (or (= m_DWG_NAME "0") (= m_DWG_NAME "1")) ; AS-Element -; (progn -; (setq AUSWAHL-SATZ (ssget "_L")) -; (EINZELTEIL E_ARTINR E_BEZEICHNUNG "1") -; (mach-block P0 "0" AUSWAHL-SATZ) -; (attribute-aendern "0" "2" "3" "0" "0" block-kennung "333333333" (strcat NEV "MIT " E_BEZEICHNUNG) "1" "") -; ) -; ) -;---------------------------------------------------------------------- -) - -;(defun EINZELTEIL (E_ARTINR E_BEZEICHNUNG E_MENGE) -; (command "_layer" "_m" "ILS-COMPONENTS" "_c" "7" "" "") -; (command "_insert" (strcat lw "/acadsst/ils2100/d_einzel") P0 "" "" "0") -; (attribute-aendern "0" "0" "23" "" "" block-kennung E_ARTINR E_BEZEICHNUNG E_MENGE "") -; (ssadd (entlast) AUSWAHL-SATZ) -;) - -;------------------------------------------------------------------------------ -(defun c:ILS_ANGEBOT ( / DWG_NAME BL_NAME P0) - (setvar "limcheck" 0) - (setvar "CMDECHO" 0) - (setvar "BLIPMODE" 0) - (setq ALTFANG (getvar "osmode")) - (setq EINZEL 0) ; fuer EINZEL=0 Baugruppen / EINZEL=1 fuer APB - (prompt "**** ILS ANGEBOT MOULE *******") - (prompt "") - (if (null m_DWG_NAME)(setq m_DWG_NAME "0")) ; Anfangssymbolname - (if (null m_RICHT) (setq m_RICHT "LINKS")) ; Richtung - (Dbox) - (prompt "") - (datain) - (geometrie) - (setvar "osmode" ALTFANG) -) diff --git a/doc/acadsst/ILS2100/ils_angebot_module.lsp b/doc/acadsst/ILS2100/ils_angebot_module.lsp deleted file mode 100644 index 3851c7e..0000000 --- a/doc/acadsst/ILS2100/ils_angebot_module.lsp +++ /dev/null @@ -1,175 +0,0 @@ -;------------------------------------------------------------------------; -; ILS 2100 - ANGEBOTSMODULE ; -;------------------------------------------------------------------------; -; AW 17.10.06 ; -;------------------------------------------------------------------------; -(defun Dbox (/ Dat) - (setq Dat (load_dialog (strcat lw "/acadsst/ils2100/ILS_ANGEBOT_MODULE.DCL"))) - (if (not (new_dialog "ILS_ANGEBOT_MODULE" Dat)) (exit)) - (set_tile "DWG_NAME" m_DWG_NAME); Blockname - (set_tile "ART" m_ART) - (mode_tile "anzeige" 0) - (SetDia) - (ACTION_TILE "DWG_NAME" "(zeig_dia)") - (action_tile "accept" "(SetPara) (done_dialog)") - (action_tile "cancel" "(exit) (done_dialog)") - (start_dialog) - (unload_dialog Dat) -) - -(defun SetDia() - (setq breite (dimx_tile "anzeige")) - (setq hoehe (dimy_tile "anzeige")) - (start_image "anzeige") - (FILL_IMAGE 0 0 breite hoehe -18) - (if (= m_DWG_NAME "0") - (slide_image 0 0 breite hoehe "ils2100(modul1)") - ) - (if (= m_DWG_NAME "1") - (slide_image 0 0 breite hoehe "ils2100(modul2)") - ) - (if (= m_DWG_NAME "2") - (slide_image 0 0 breite hoehe "ils2100(modul3)") - ) - (if (= m_DWG_NAME "3") - (slide_image 0 0 breite hoehe "ils2100(modul4)") - ) - (if (= m_DWG_NAME "4") - (slide_image 0 0 breite hoehe "ils2100(modul5)") - ) - (if (= m_DWG_NAME "5") - (slide_image 0 0 breite hoehe "ils2100(modul1_3)") - ) - (if (= m_DWG_NAME "6") - (slide_image 0 0 breite hoehe "ils2100(modul2_3)") - ) - (end_image) -) - -(defun zeig_dia() - (setq m_DWG_NAME (get_tile "DWG_NAME")) - (SetDia) -) - -(defun setpara() - (setq m_DWG_NAME (get_tile "DWG_NAME")) - (setq m_ART (get_tile "ART")) -) - -(defun datain () - (setq dummy nil) -) - -(defun geometrie() - (if (= m_DWG_NAME "0") - (progn - (setq NEV "SEPARATOR LINKS - RAD") - (setq BL_NAME "829432001") - (PNEUM_SEP) - ) - ) - (if (= m_DWG_NAME "1") - (progn - (setq NEV "SEPARATOR RECHTS - RAD") - (setq BL_NAME "829432002") - (PNEUM_SEP) - ) - ) - (if (= m_DWG_NAME "2") - (progn - (setq NEV "SEPARATOR LINKS - LP") - (setq BL_NAME "829432003") - (PNEUM_SEP) - ) - ) - (if (= m_DWG_NAME "3") - (progn - (setq NEV "SEPARATOR RECHTS - LP") - (setq BL_NAME "829432004") - (PNEUM_SEP) - ) - ) - (if (= m_DWG_NAME "4") - (progn - (setq NEV "SEPARATOR SP") - (setq BL_NAME "829432005") - (PNEUM_GEFAELLE) - ) - ) - (if (= m_DWG_NAME "5") - (progn - (setq NEV "STOPPER - SP") - (setq BL_NAME "829432006") - (PNEUM_GEFAELLE) - ) - ) - - - (command "_layer" "_m" "ILS-COMPONENTS" "_c" "8" "" "") - (setq P0 (getpoint "\nPick insert point: ")) - (bl-name P0) ;--> Block-Name definieren -> Rckgabe: element-name - (setq BL_NAME (strcat lw "/acadsst/ils2100/" BL_NAME)) - (command "_insert" BL_NAME P0 "" "" pause) - (attribute-aendern "" "" "" "" "" block-kennung "" "" "" "") - - (setq AUSWAHL-SATZ (ssget "_L")) - (EINZELTEIL E_ARTINR E_BEZEICHNUNG "1") - (mach-block P0 "0" AUSWAHL-SATZ) - (attribute-aendern "0" "2" "3" "0" "0" block-kennung "333333333" (strcat NEV "MIT " E_BEZEICHNUNG) "1" "") - -) - -(defun EINZELTEIL (E_ARTINR E_BEZEICHNUNG E_MENGE) - (command "_layer" "_m" "ILS-COMPONENTS" "_c" "8" "" "") - (command "_insert" (strcat lw "/acadsst/ils2100/d_einzel") P0 "" "" "0") - (attribute-aendern "0" "0" "23" "" "" block-kennung E_ARTINR E_BEZEICHNUNG E_MENGE "") - (ssadd (entlast) AUSWAHL-SATZ) -) - -(defun PNEUM_SEP () - (if (= m_PNEUM "PNEUM_1") - (progn - (setq E_ARTINR "829 434 101") - (setq E_BEZEICHNUNG "BOSCH-PNEUMATIK-SATZ") - ) - ) - (if (= m_PNEUM "PNEUM_2") - (progn - (setq E_ARTINR "829 434 121") - (setq E_BEZEICHNUNG "SMC-PNEUMATIK-SATZ") - ) - ) -) - -(defun PNEUM_GEFAELLE () - (if (= m_PNEUM "PNEUM_1") - (progn - (setq E_ARTINR "829434100") - (setq E_BEZEICHNUNG "BOSCH-PNEUMATIK-SATZ") - ) - ) - (if (= m_PNEUM "PNEUM_2") - (progn - (setq E_ARTINR "829434120") - (setq E_BEZEICHNUNG "SMC-PNEUMATIK-SATZ") - ) - ) -) - -;------------------------------------------------------------------------------ -(defun c:ILS_ANBAU_STR ( / DWG_NAME BL_NAME P0) - (setvar "limcheck" 0) - (setvar "CMDECHO" 0) - (setvar "BLIPMODE" 0) - (setq ALTFANG (getvar "osmode")) - (setq EINZEL 0) ; fuer EINZEL=0 Baugruppen / EINZEL=1 fuer APB - (prompt "**** ILS SEPARATORS/STOPPER *******") - (prompt "") - (if (null m_DWG_NAME)(setq m_DWG_NAME "0")) ; Anfangssymbolname - (if (null m_PNEUM) (setq m_PNEUM "PNEUM_1")) ; Pneumatik - (Dbox) - (prompt "") - (datain) - (geometrie) - (setvar "osmode" ALTFANG) -) diff --git a/doc/acadsst/ILS2100/ils_sensor.lsp b/doc/acadsst/ILS2100/ils_sensor.lsp deleted file mode 100644 index a2c85a3..0000000 --- a/doc/acadsst/ILS2100/ils_sensor.lsp +++ /dev/null @@ -1,94 +0,0 @@ -;------------------------------------------------------------------------; -; ALU-KOMPONENTEN - ils_sensor.LSP ; -;------------------------------------------------------------------------; -; AW 14.06.97 / 15.8.98 / 20.9.06 ; -;------------------------------------------------------------------------; -(defun Dbox (/ Dat) - (setq Dat (load_dialog (strcat lw "/acadsst/ils2100/ils_sensor.DCL"))) - (if (not (new_dialog "ils_sensor" Dat)) (exit)) - (set_tile "DWG_NAME" m_DWG_NAME); Blockname - (mode_tile "anzeige" 0) - (SetDia) - (ACTION_TILE "DWG_NAME" "(zeig_dia)") - (action_tile "accept" "(SetPara) (done_dialog)") - (action_tile "cancel" "(exit) (done_dialog)") - (start_dialog) - (unload_dialog Dat) -) - -(defun SetDia() - (setq breite (dimx_tile "anzeige")) - (setq hoehe (dimy_tile "anzeige")) - (start_image "anzeige") - (FILL_IMAGE 0 0 breite hoehe -18) - (if (= m_DWG_NAME "0") - (slide_image 0 0 breite hoehe "ils2100(27422001)") - ) - (if (= m_DWG_NAME "1") - (slide_image 0 0 breite hoehe "ils2100(27422002)") - ) - (if (= m_DWG_NAME "2") - (slide_image 0 0 breite hoehe "ils2100(27422003)") - ) - (if (= m_DWG_NAME "3") - (slide_image 0 0 breite hoehe "ils2100(27422004)") - ) - (if (= m_DWG_NAME "4") - (slide_image 0 0 breite hoehe "ils2100(29422039)") - ) - (end_image) -) - -(defun zeig_dia() - (setq m_DWG_NAME (get_tile "DWG_NAME")) - (SetDia) -) - -(defun setpara() - (setq m_DWG_NAME (get_tile "DWG_NAME")) -) - -(defun datain () - (setq dummy nil) -) - -(defun geometrie() - (if (= m_DWG_NAME "0") - (setq BL_NAME "827422001") - ) - (if (= m_DWG_NAME "1") - (setq BL_NAME "827422002") - ) - (if (= m_DWG_NAME "2") - (setq BL_NAME "827422003") - ) - (if (= m_DWG_NAME "3") - (setq BL_NAME "827422004") - ) - (if (= m_DWG_NAME "4") - (setq BL_NAME "829422039") - ) - (command "_layer" "_m" "ILS-AUTOMATION" "_c" "1" "" "") - (setq P0 (getpoint "\nPick insert point: ")) - (bl-name P0) ;--> Block-Name definieren -> Rckgabe: element-name - (setq BL_NAME (strcat lw "/acadsst/ils2100/" BL_NAME)) - (command "_insert" BL_NAME P0 "" "" pause) - (attribute-aendern "" "" "" "" "" block-kennung "" "" "" "") -) - -;------------------------------------------------------------------------------ -(defun c:ils_sensor ( / DWG_NAME BL_NAME P0) - (setvar "limcheck" 0) - (setvar "CMDECHO" 0) - (setvar "BLIPMODE" 0) - (setq ALTFANG (getvar "osmode")) - (setq EINZEL 0) ; fuer EINZEL=0 Baugruppen / EINZEL=1 fuer APB - (prompt "**** ILS MODULS *******") - (prompt "") - (if (null m_DWG_NAME)(setq m_DWG_NAME "0")); Anfangssymbolname - (Dbox) - (prompt "") - (datain) - (geometrie) - (setvar "osmode" ALTFANG) -) diff --git a/doc/acadsst/ILS2100/ils_verb_str.lsp b/doc/acadsst/ILS2100/ils_verb_str.lsp deleted file mode 100644 index ad666b6..0000000 --- a/doc/acadsst/ILS2100/ils_verb_str.lsp +++ /dev/null @@ -1,107 +0,0 @@ -;------------------------------------------------------------------------; -; ALU-KOMPONENTEN - HFS_MOD.LSP ; -;------------------------------------------------------------------------; -; AW 14.06.97 / 15.8.98 / 20.9.06 ; -;------------------------------------------------------------------------; -(defun Dbox (/ Dat) - (setq Dat (load_dialog (strcat lw "/acadsst/ils2100/ils_verb_str.DCL"))) - (if (not (new_dialog "ils_verb_str" Dat)) (exit)) - (set_tile "DWG_NAME" m_DWG_NAME); Blockname - (mode_tile "anzeige" 0) - (SetDia) - (ACTION_TILE "DWG_NAME" "(zeig_dia)") - (action_tile "accept" "(SetPara) (done_dialog)") - (action_tile "cancel" "(exit) (done_dialog)") - (start_dialog) - (unload_dialog Dat) -) - -(defun SetDia() - (setq breite (dimx_tile "anzeige")) - (setq hoehe (dimy_tile "anzeige")) - (start_image "anzeige") - (FILL_IMAGE 0 0 breite hoehe -18) - (if (= m_DWG_NAME "0") - (slide_image 0 0 breite hoehe "ils2100(29412013)") - ) - (if (= m_DWG_NAME "1") - (slide_image 0 0 breite hoehe "ils2100(29412009)") - ) - (if (= m_DWG_NAME "2") - (slide_image 0 0 breite hoehe "ils2100(29414007)") - ) - (if (= m_DWG_NAME "3") - (slide_image 0 0 breite hoehe "ils2100(29414008)") - ) - (if (= m_DWG_NAME "4") - (slide_image 0 0 breite hoehe "ils2100(29422035)") - ) - (if (= m_DWG_NAME "5") - (slide_image 0 0 breite hoehe "ils2100(29422029)") - ) - (if (= m_DWG_NAME "6") - (slide_image 0 0 breite hoehe "ils2100(29422028)") - ) - (end_image) -) - -(defun zeig_dia() - (setq m_DWG_NAME (get_tile "DWG_NAME")) - (SetDia) -) - -(defun setpara() - (setq m_DWG_NAME (get_tile "DWG_NAME")) -) - -(defun datain () - (setq dummy nil) -) - -(defun geometrie() - (if (= m_DWG_NAME "0") - (setq BL_NAME "829412013") - ) - (if (= m_DWG_NAME "1") - (setq BL_NAME "829412009") - ) - (if (= m_DWG_NAME "2") - (setq BL_NAME "829414007") - ) - (if (= m_DWG_NAME "3") - (setq BL_NAME "829414008") - ) - (if (= m_DWG_NAME "4") - (setq BL_NAME "829422035") - ) - (if (= m_DWG_NAME "5") - (setq BL_NAME "829422029") - ) - (if (= m_DWG_NAME "6") - (setq BL_NAME "829422028") - ) - - (command "_layer" "_m" "ILS-COMPONENTS" "_c" "4" "" "") - (setq P0 (getpoint "\nPick insert point: ")) - (bl-name P0) ;--> Block-Name definieren -> Rckgabe: element-name - (setq BL_NAME (strcat lw "/acadsst/ils2100/" BL_NAME)) - (command "_insert" BL_NAME P0 "" "" pause) - (attribute-aendern "" "" "" "" "" "ZZZZZZZZZ" "" "" "" "") -) - -;------------------------------------------------------------------------------ -(defun c:ils_verb_str ( / DWG_NAME BL_NAME P0) - (setvar "limcheck" 0) - (setvar "CMDECHO" 0) - (setvar "BLIPMODE" 0) - (setq ALTFANG (getvar "osmode")) - (setq EINZEL 0) ; fuer EINZEL=0 Baugruppen / EINZEL=1 fuer APB - (prompt "**** ILS MODULS *******") - (prompt "") - (if (null m_DWG_NAME)(setq m_DWG_NAME "0")); Anfangssymbolname - (Dbox) - (prompt "") - (datain) - (geometrie) - (setvar "osmode" ALTFANG) -) diff --git a/doc/acadsst/MENU/laymr14.lsp b/doc/acadsst/MENU/laymr14.lsp deleted file mode 100644 index 2c20e38..0000000 --- a/doc/acadsst/MENU/laymr14.lsp +++ /dev/null @@ -1,462 +0,0 @@ -;............................................................ -;: DATE : 92-01-01 Kunde: tewi : -;: Autor: Schmidt AutoCAD-Version 11 : -;: Version 1.1 ab Version 10 mit anpassen : -;: : -;: LAYM14.LSP Layer-Manager : -;:..........................................................: - -(SPECIAL '(grp)) - -(DEFUN zoal () ;Zoom af - (SETQ vsiz (GETVAR "VIEWSIZE")) - (COMMAND "_ZOOM" "_V") -) - -(DEFUN zovo () ;Zoom vorher, wenn m”glich - (IF (/= (GETVAR "VIEWSIZE") vsiz) - (COMMAND "_ZOOM" "_P") - ) -) - -(DEFUN mdis (/ mlau) - (SETQ mlau 26) - (GRTEXT 0 "LAY-MAN") - (GRTEXT 1 " ") - (GRTEXT 2 " ? ") - (GRTEXT 3 " SET ") - (GRTEXT 4 "COPY GR.") - (GRTEXT 5 "MOVE GR.") - (GRTEXT 6 "MOVE EL ") - (GRTEXT 7 "MOVE ALL") - (GRTEXT 8 "ON LAYER") - (GRTEXT 9 "OFF LAYR") - (GRTEXT 10 "TAU LAY.") - (GRTEXT 11 "FR LAYER") - (GRTEXT 12 "FR ALL ") - (GRTEXT 13 "DEL LAY.") - (GRTEXT 14 "LAY.SELE") - (GRTEXT 15 " ") - (GRTEXT 16 " ") - (GRTEXT 17 " ") - (GRTEXT 18 " ") - (GRTEXT 19 " ") - (GRTEXT 20 " ") - (GRTEXT 21 " ") - (GRTEXT 22 " ") - (GRTEXT 23 " ") - (GRTEXT 24 " ") - (GRTEXT 25 " ") - (WHILE (< mlau mlen) - (GRTEXT mlau " ") - (SETQ mlau (1+ mlau)) - ) -) -(DEFUN ssgad (nset gset / slau seln) ;SSET zu SSET addieren - (SETQ slau 0) - (IF (NULL (EVAL (READ gset)))(SET (READ gset)(SSADD))) - (WHILE (SETQ seln (SSNAME nset slau)) - (SSADD seln (EVAL (READ gset))) - (REDRAW seln 3) - (SETQ slau (1+ slau)) - ) -) - -(DEFUN ared (aset ltyp / asla asna) ;Ausleuchten von Elementen. - (SETQ asla 0) - (WHILE (SETQ asna (SSNAME aset asla)) - (REDRAW asna ltyp) - (SETQ asla (1+ asla)) - ) -) - -(DEFUN alay (txt) ;Layername filtern - (IF (SETQ akel (ENTSEL txt)) - (CDR (ASSOC '8 (ENTGET (CAR akel)))) - ) - -) - -(defun alel (tele elna) ;Elemente filtern - (IF elna - (SSGET "X" (LIST (CONS '0 elna)(CONS '8 tele))) - (SSGET "X" (LIST (CONS '8 tele))) - ) -) - -(DEFUN lann (nwna ngna) ;Layer new name - (STRCAT (SUBSTR nwna 1 1) ngna (SUBSTR nwna 4)) -) - -(DEFUN laqu (/ lach) ;Layer Gruppenname - (SETQ lach "-" - last (SUBSTR (STRCASE (GETSTRING "Group-Letter: <_> ")) 1 2) - last (COND - ((= (STRLEN last) 2) last) - ((= (STRLEN last) 1) (STRCAT last lach)) - ( T (STRCAT lach lach)) - ) - ) -) - -(DEFUN ltes (tlay grou) ;ausschalt Kontrolle - (IF (OR (AND (= (SUBSTR (GETVAR "CLAYER") 2 2) tlay) grou) - (AND (= (GETVAR "CLAYER") tlay) (NOT grou)) - ) - (emsg "change first active layer") - T - ) -) - -(DEFUN layl (/ lext ltan) ;Layerliste - (SETQ ltan T) - (WHILE (SETQ lext (TBLNEXT "LAYER" ltan)) - (SETQ laex (CONS (CONS (CDADR lext) (CDDR lext)) laex) - ltan NIL - ) - ) -) - -(DEFUN ldis (/ run lauf llen) ;Layer am Seitenmenu anz. - (SETQ run T - lauf 0 - llen (LENGTH clis) - ) - (WHILE run - (WHILE (< lauf mlen) - (IF (< lpos llen) - (GRTEXT lauf (NTH lpos clis)) - (GRTEXT lauf " ") - ) ;Menuanzeige - (SETQ lauf (1+ lauf) - lpos (1+ lpos) - ) - ;um 1 erh”hen - ) - (IF (> lpos mlen) - (GRTEXT mlen "Prev. ") - (GRTEXT mlen " ") - ) ;Rckschalten - (IF (> (- llen lpos) 0) - (GRTEXT (1+ mlen) "Next ") - (GRTEXT (1+ mlen) " ") - ) ;Vorw„rtsschalten - (IF (= (CAR (SETQ antw (GRREAD))) 4) - (IF (< (CADR antw) mlen) - ;wenn gltige Antwort - (IF (> (SETQ antw (+ (CADR antw)(- lpos lauf))) llen) - (SETQ antw NIL run NIL) - (SETQ run NIL - lpos (IF (= (- lpos mlen) (1- llen)) - (- lpos mlen mlen) - (- lpos mlen) - ) - ) - ) - (COND - ((AND (= (CADR antw) mlen)(> lpos mlen)) - ;Vorher - (SETQ lpos (- lpos mlen mlen) - lauf 0 - ) - ) - ((AND (= (CADR antw) (1+ mlen))(> llen lpos)) - ;N„chst - (SETQ lauf 0) - ) - (T (emsg "False Field !")) - ) - ) - (SETQ antw NIL run NIL) - ) - ) -) - -(DEFUN lays (ein / clis lpos laex antw atly akly llau lcom) ;Layer schalten - (SETQ lpos 0) - (layl) - (IF ein - (FOREACH xpos laex - (IF (MINUSP (CDR (ASSOC 62 (CDR xpos)))) - (SETQ clis (CONS (CAR xpos) clis)) - ) - ) - (FOREACH xpos laex - (IF (= (CDR (ASSOC 70 (CDR xpos))) 65) - (SETQ clis (CONS (CAR xpos) clis)) - ) - ) - ) - (WHILE clis - (PRINC "\nSelect Layer from the Screen Menu: ") - (ldis) - (IF antw - (SETQ atly (NTH antw clis) - akly (CONS atly akly) - clis (APPEND (REVERSE (CDR (MEMBER atly (REVERSE clis)))) - (CDR (MEMBER atly clis)) - ) - ) - (SETQ clis NIL) - ) - ) - (IF akly - (PROGN - (SETQ llau 0 - lcom (IF ein "_ON" "_T") - ) - (PRINC "\n\nPlease wait ...") - (COMMAND "_LAYER") - (REPEAT (LENGTH akly) - (COMMAND lcom (NTH llau akly)) - (SETQ llau (1+ llau)) - ) - (COMMAND "") - ) - (emsg "Nothing selected!") - ) -) - -(DEFUN laye (/ lacg lauf lant) ;Layer neuer Auswahlsatz - (SETQ lacg (SSLENGTH chgr) - lauf 0 - ) - (REPEAT lacg - (IF (NOT (MEMBER (SETQ lant (CDR (ASSOC 8 (ENTGET - (SSNAME chgr lauf))))) lanl)) - (SETQ lanl (CONS lant lanl)) - ) - (SETQ lauf (1+ lauf)) - ) -) - -(DEFUN layc (/ lall lauf lane linf laco nlna chel laol nwel) ;Layer change - (SETQ lall (LENGTH lanl) - lauf 0 - ) - (REPEAT lall - (IF (NOT (ASSOC (lann (NTH lauf lanl) last) laex)) - (SETQ lane (CONS (NTH lauf lanl) lane)) - ) - (SETQ lauf (1+ lauf)) - ) - (SETQ lall (LENGTH lane) - lauf 0 - ) - (REPEAT lall - (SETQ linf (CDR (ASSOC (NTH lauf lane) laex)) - laco (IF (MINUSP (SETQ lico (CDR (ASSOC 62 linf))))(ABS lico) lico) - nlna (lann (NTH lauf lane) last) - ) - (COMMAND "_LAYER" "_N" nlna "_CO" lico nlna "LT" (CDR (ASSOC 6 linf)) nlna "") - (SETQ lauf (1+ lauf)) - ) - (SETQ lall (SSLENGTH chgr) - lauf 0 - ) - (REPEAT lall - (SETQ chel (ENTGET (SSNAME chgr lauf)) - laol (ASSOC 8 chel) - nwel (SUBST (CONS 8 (lann (CDR laol) last)) laol chel) - ) - (ENTMOD nwel) - (SETQ lauf (1+ lauf)) - ) -) - -(DEFUN lgrn (cona / lpos lgri clis lnwn lnaw lsta ltmp lntp ldtp lddb last) ;Layer Gruppenmanipulationen - (SETQ lpos 0) - (layl) - (FOREACH xpos laex - (IF (SETQ lgri (SUBSTR (CAR xpos) 2 2)) - (IF clis - (IF (NOT (MEMBER lgri clis)) - (SETQ clis (CONS lgri clis)) - ) - (SETQ clis (LIST lgri)) - ) - ) - ) - (IF clis - (PROGN - (PRINC "\nSelect group from the Screen Menu: ") - (ldis) - (IF antw - (PROGN - (SETQ lnwn (STRCAT "?" (NTH antw clis) "*")) - (COND - ((= cona "_OFF") - (IF (ltes (NTH antw clis) T) - (COMMAND "_LAYER" "_OFF" lnwn "") - ) - ) - ((= cona "DEL") - (SETQ lnaw (NTH antw clis) - lsta T - ) - (zoal) - (WHILE (SETQ ltmp (TBLNEXT "LAYER" lsta)) - (IF (= (SUBSTR (SETQ lntp (CDR (ASSOC 2 ltmp))) 2 2) lnaw) - (IF (SETQ ldtp (SSGET "X" (LIST (CONS 8 lntp)))) - (ssgad ldtp "lddb") - ) - ) - (SETQ lsta NIL) - ) - (IF lddb - (IF (ques "Delete this Elements?" NIL) - (COMMAND "_ERASE" lddb "") - (ared lddb 4) - ) - ) - (zovo) - ) - ((= cona "WAHL") - (SETQ lnaw (NTH antw clis) - lsta T - ) - (WHILE (SETQ ltmp (TBLNEXT "LAYER" lsta)) - (IF (= (SUBSTR (SETQ lntp (CDR (ASSOC 2 ltmp))) 2 2) lnaw) - (IF (SETQ ldtp (SSGET "X" (LIST (CONS 8 lntp)))) - (ssgad ldtp "lddb") - ) - ) - (SETQ lsta NIL) - ) - (IF lddb - (PROGN - (PRINC "\nThis Elements are now saved as !GRP") - (PRINC "\nPress any key to continue...") - (GRREAD) - (SETQ grp lddb) - (ared lddb 4) - ) - (emsg "No elements found..!") - ) - ) - (T (COMMAND "_LAYER" cona lnwn "")) - ) - ) - (emsg "Nothing selected!") - ) - ) - ) -) - -(DEFUN laymanag (sele layn / vsiz elem elet akna akel akly clay lanl last) ;Hauptprogramm - (IF (NOT runm) - (pstart "Layer - Manager" "" '(("REGENMODE"))) - ) - (COND - ((= sele 2) - (IF (SETQ akly (alay "\nObjekt wählen\n")) - (PRINC (STRCAT "\nElement ist auf Layer " akly)) - ) - ) - ((= sele 3) - (IF (SETQ akly (alay "\nZiel-Ebene wählen\n")) - (PROGN - (COMMAND "_LAYER" "_SET" akly "") - (SETQ cavar (SUBST (CONS "CLAYER" akly) - (ASSOC '"CLAYER" cavar) cavar) - ) - ) - ) - ) - ((= sele 4) - (IF (SETQ elem (ssget)) - (IF (SETQ akly (alay "\nObjekt auf dem Ziel-Ebene wählen\n")) - (COMMAND "_COPY" elem "" "@" "@" "_CHANGE" elem "" "_PROP" "_LA" akly "") - (emsg "Kein Layer gewählt! ") - ) - (emsg "Kein Objekt gewählt! ") - ) - ) - ((= sele 5) - (IF (SETQ elem (ssget)) - (IF (SETQ akly (alay "\nObjekt auf dem Ziel-Ebene wählen\n")) - (COMMAND "_CHANGE" elem "" "_PROP" "_LA" akly "") - (emsg "Kein Layer gewählt") - ) - (emsg "Kein Objekt gewählt") - ) - ) - ((= sele 6) - (IF (SETQ akly (alay "\nZu änderndes Objekt wählen\n")) - (PROGN - (SETQ akna (CDR (ASSOC '0 (ENTGET (CAR akel))))) - (IF (SETQ elem (alel akly akna)) - (IF (SETQ akly (alay "Select object on the target layer:\n")) - (PROGN - (zoal) - (ared elem 3) - (IF (ques (STRCAT "Layer von " - (COND - ((= akna "LINE") "Line") - ((= akna "CIRCLE") "Circle") - ((= akna "ARC") "Arc") - ((= akna "POINT") "Point") - ((= akna "PLINE") "Polylie") - ( T akna) - ) - " ändern?") NIL) - (COMMAND "_CHANGE" elem "" "_PROP" "_LA" akly "") - (ared elem 4) - ) - (zovo) - ) - (emsg "Kein Layer gewählt") - ) - ) - ) - (emsg "Kein Object gewählt") - ) - ) - ((= sele 7) - (IF (SETQ akly (alay "\nDie zu ändernden Objekte wählen\n")) - (IF (SETQ elem (alel akly NIL)) - (IF (SETQ akly (alay "Objekt auf der Ziel-Ebene wählen\n")) - (PROGN - (zoal) - (ared elem 3) - (IF (ques "Layer für diese Objekte ändern ?" NIL) - (COMMAND "_CHANGE" elem "" "_PROP" "_LA" akly "") - (ared elem 4) - ) - (zovo) - ) - (emsg "Kein Layer gewählt") - ) - ) - (emsg "Kein Objekt gewählt") - ) - ) - ((= sele 8)(lays T)) - ((= sele 9) - (WHILE (SETQ akly (alay "\nLayer zum Ausblenden\n")) - (IF (ltes akly nil) - (COMMAND "_LAYER" "_OFF" akly "") - ) - ) - ) - ((= sele 10)(lays NIL)) - ((= sele 11) - (WHILE (SETQ akly (alay "\nLayer FRIEREN\n")) - (IF (ltes akly nil) - (COMMAND "_LAYER" "_FR" akly "") - ) - ) - ) - ((= sele 12) - (SETQ clay (alay "\nObjekt auf dem aktiven Layer der aktiv bleibt wählen\n")) - (COMMAND "_LAYER" "_SET" clay "_FR" "*" "") - ) - ) - (IF (NOT runm) - (pend) - ) -) - -(PRINC) -(PRINC "\n Layermanager loaded") -(PRINC) diff --git a/doc/acadsst/MENU/ssg.lsp b/doc/acadsst/MENU/ssg.lsp deleted file mode 100644 index 1d23470..0000000 --- a/doc/acadsst/MENU/ssg.lsp +++ /dev/null @@ -1,518 +0,0 @@ -(IF SPECIAL - (SPECIAL '(olde ptest cavar bell prna)) - (DEFUN SPECIAL (x) nil) -) -(DEFUN pstart (tit qust setv / xlen xpos xvar) - (SETQ olde *ERROR* - *ERROR* (IF ptest NIL errhan) - cavar (APPEND '(("CLAYER")("CMDECHO")) - setv) - xlen (LENGTH cavar) - xpos 0 - ) - (REPEAT xlen - (SETQ xvar (CAR (NTH xpos cavar)) - cavar (SUBST (CONS xvar (GETVAR xvar)) - (NTH xpos cavar) cavar) - xpos (1+ xpos) - ) - ) - (SETVAR "CMDECHO" 0) - (COMMAND "_undo" "_G") - (GRAPHSCR) - (PROMPT (STRCAT "\n***** " tit " *****\n\n " qust)) - (PRINC) -) -(DEFUN pend (/ xpos xlen xvar) - (IF cavar - (PROGN - (COMMAND) - (COMMAND "_undo" "_E") - (SETQ xpos 1 - xlen (LENGTH cavar) - ) - (IF (/= (GETVAR "CLAYER") (CAAR cavar)) - (COMMAND "_LAYER" "_SE" (CDAR CAVAR) "") - ) - (REPEAT (1- xlen) - (SETQ xvar (NTH xpos cavar) - xpos (1+ xpos) - ) - (SETVAR (CAR xvar)(CDR xvar)) - ) - ) - ) - (IF olde (SETQ *ERROR* olde)) - (PRINC) -) -(DEFUN errhan (em) - (IF (= em "Function cancelled") - (PRINC) - (PRINC em) - ) - (GRTEXT) - (COMMAND) - (COMMAND) - (pend) -) -(DEFUN ques (dial defa) ;Std Abfrage - (IF defa - (PROGN - (INITGET 1 "Yes No Yes") - (= (GETKWORD (STRCAT "\n" dial " Y/N : ")) "No") - ) - (PROGN - (INITGET 1 "Yes No No") - (= (GETKWORD (STRCAT "\n" dial " Y/N : ")) "Yes") - ) - ) -) -(DEFUN emsg (etxt) - (IF (NOT bell)(PROMPT "\007")) - (TERPRI) - (PROMPT etxt) - (TERPRI) -) -(DEFUN ques (dial defa) ;Std Abfrage - (IF defa - (PROGN - (INITGET 1 "Yes No Yes") - (= (GETKWORD (STRCAT "\n" dial " Y/N : ")) "No") - ) - (PROGN - (INITGET 1 "Yes No No") - (= (GETKWORD (STRCAT "\n" dial " Y/N : ")) "Yes") - ) - ) -) -(DEFUN renv (envn prnn / penv) - (IF (SETQ penv (GETENV envn)) - (EVAL (STRCAT penv "" prnn)) - (EVAL prnn) - ) -) -(DEFUN C:PRG (/ nprg cprg prna) - (SETQ nprg (GETSTRING) - cprg (STRCAT "C:" nprg) - prna (renv "ACADLSP" nprg) - ) - (IF (NULL (EVAL (READ cprg))) - (PROGN - (PRINC " loading...!\n") - (COND - ((FINDFILE (STRCAT prna ".BI4")) - (LOAD prna ".BI4")) - ((FINDFILE (STRCAT prna ".BI2")) - (LOAD prna ".BI2")) - ((FINDFILE (STRCAT prna ".LSP")) - (LOAD prna ".LSP")) - ( T (emsg "File not found")) - ) - ) - ) - (PRINC) -) -(DEFUN C:ed (/ prnn) - (IF (NULL prna) - (SETQ prna "") - ) - (SETQ prnn (GETSTRING - (STRCAT "Programname <" prna ">: "))) - (IF (AND (= (STRLEN prna) 0)(= (STRLEN prnn) 0)) - (emsg "Name not allowed...") - (PROGN - (IF (> (STRLEN prnn) 0) - (SETQ prna (renv "ACADLSP" prnn)) - ) - (COMMAND "SHELL" (STRCAT "ED " prna )) - (INITGET 1 "Yes No Yes") - (IF (NOT (ques "Load the program" T)) - (LOAD prna) - ) - ) - ) - (PRINC) -) -;----------- Block einfuegen mit Layergenerierung ----2.8.92 AW -; KEINE DREHMOEGLICHKEIT !!! -(DEFUN c:symplac ( / einp); / einp ebene symname) - (SETQ einp (GETPOINT "\nInsert-Point: ")) - (COMMAND "_LAYER" "_M" ebene "_co" eb_farbe "" "") - (COMMAND "_insert" symname einp "" "" "0") -) -;----------- Block einfuegen mit Layergenerierung ----14.8.92 AW -; MIT DREHMOEGLICHKEIT !!! -(DEFUN c:sympl_dr ( / einp); / einp ebene symname) - (SETQ einp (GETPOINT "\nInsert-Point: ")) - (COMMAND "_LAYER" "_M" ebene "_co" eb_farbe "" "") - (COMMAND "_insert" symname einp "" "" pause) -) -;----------- Block einfuegen mit Layergenerierung ---16.9.93 AW -; MIT DREHMOEGLICHKEIT UND URSPRUNG NACH DEM SETZEN !!! -(DEFUN c:sympldr2 ( / einp drehung groesse) - (setq groesse "1") - (SETQ einp (GETPOINT "\nInsert-Point: ")) - (SETQ drehung (GETSTRING "\nRotation: ")) - (SETQ groesse (GETSTRING "\nScale: ")) - (COMMAND "_LAYER" "_M" ebene "_co" eb_farbe "" "") - (COMMAND "_insert" symname einp groesse groesse drehung) - (COMMAND "_explode" "_last") -) -;----------- Block einfuegen mit Layergenerierung ---21.11.93 AW -; ABFRAGE: SKALIERUNG/ DREHMOEGLICHKEIT UND URSPRUNG NACH DEM SETZEN !!! -(DEFUN c:sympldr1 ( / einp drehung) - (SETQ einp (GETPOINT "\nInsert-Point: ")) - (SETQ drehung (GETSTRING "\nRotation: ")) - (COMMAND "_LAYER" "_M" ebene "_co" eb_farbe "" "") - (COMMAND "_insert" symname einp "" "" drehung) - (COMMAND "_explode" "_last") -) -;----------- Block einfuegen mit Layergenerierung und Skalierung ---12.2.93 AW -(DEFUN c:sym_scal ( / einp p1 p2); / einp ebene symname) - (SETQ einp (GETPOINT "\nInsert-Point: ")) - (SETQ p1 (GETREAL "\nX-Scale: ")) - (SETQ p2 (GETREAL "\nY-Scale: ")) - (COMMAND "_LAYER" "_M" ebene "_co" eb_farbe "" "") - (COMMAND "_insert" symname einp p1 p2 "0") -) - -;------------ Farbe aendern - AUFRUF aus POP2-------------------------- -(DEFUN c:alt_farb ( / sst_obj neuefarb) - (setq sst_obj (ssget) neuefarb (getstring "\nNew-Color: ")) - (command "_change" sst_obj "" "_prop" "_co" neuefarb "") -) -;-------------------------------------------------------------------- - -(defun block-op (PT0 szoeg auswahl-satz / komponente1 komponente2 - seconds element-name gefunden) - ;------------------ - ; Block definieren - ;----------------------------------------------------------- - ; PT0 - Origin der Baugruppe - ; szoeg - Einfuegewinkel - ; auswahl-satz - Elemente des Blockes in Auswahlsatz - ;------------------------------------------------------------ - (setq komponente1 (strcat (itoa (abs (fix (car PT0)))) (itoa (abs (fix (cadr PT0)))) - (itoa (abs (fix (caddr PT0)))))) - (setq komponente2 szoeg) - (setq seconds (substr (rtos (getvar "cdate") 2 9) 10 9)) - (setq element-name (strcat komponente1 komponente2 seconds)) - (princ) - (princ (strcat komponente1 "\n")) - (princ (strcat komponente2 "\n")) - (princ (strcat seconds "\n")) - (princ) - (princ (strcat "\n" element-name "\n")) - (princ) - (setq gefunden (tblsearch "block" element-name)) - (if (not gefunden) - (progn - (princ) - (command "_block" element-name PT0 auswahl-satz "") - (command "_insert" element-name PT0 "" "" szoeg) - ) - (progn - (alert (strcat "\nBlockname: " element-name " already exists." )) - (setq element-name (strcat "x" element-name)) - (alert (strcat "\nCorrected blockname: " element-name " .OK!")) - (command "_block" element-name PT0 auswahl-satz "") - (command "_insert" element-name PT0 "" "" szoeg) - ) - ) -) - -(defun bl-name (PT0 / komponente1 seconds) -; 14.4.94 -; Verwendung bei Baugruppen, deren Bestandteile aufgelistet -; werden mssen. -; Name eines Blockes gleich am Anfang des Programmes festlegen -; - die Einzelkomponenten werden in "C" mit diesem Wert belegt -; - dadurch ist eine eindeutige Gruppenzugeh"rigkeit m"glich -; - (setq komponente1 (strcat (itoa (abs (fix (car PT0)))) (itoa (abs (fix (cadr PT0)))) - (itoa (abs (fix (caddr PT0)))))) - (setq seconds (substr (rtos (getvar "cdate") 2 9) 10 9)) - (setq block-kennung (strcat komponente1 seconds)) - (princ) -) - -(defun mach-block-ohne-prop (PT0 szoeg auswahl-satz / komponente1 komponente2 - seconds element-name gefunden) - ;------------------ - ; Block definieren - ;----------------------------------------------------------- - ; PT0 - Origin der Baugruppe - ; szoeg - Einfuegewinkel - ; auswahl-satz - Elemente des Blockes in Auswahlsatz - ;------------------------------------------------------------ - (setq komponente1 (strcat (itoa (abs (fix (car PT0)))) (itoa (abs (fix (cadr PT0)))) - (itoa (abs (fix (caddr PT0)))))) - (setq komponente2 szoeg) - (setq seconds (substr (rtos (getvar "cdate") 2 9) 10 9)) - (setq element-name (strcat komponente1 komponente2 seconds)) - (princ) - (princ (strcat komponente1 "\n")) - (princ (strcat komponente2 "\n")) - (princ (strcat seconds "\n")) - (princ) - (princ (strcat "\n" element-name "\n")) - (princ) - (setq gefunden (tblsearch "block" element-name)) - (if (not gefunden) - (progn - (princ) - (command "_block" element-name PT0 auswahl-satz "") - (command "_insert" element-name PT0 "" "" szoeg) - ) - (alert "\nBlockname exists. You need HELP !") - ) -) - - -(defun mach-block (PT0 szoeg auswahl-satz / komponente1 komponente2 - seconds element-name gefunden) - ;------------------ - ; Block definieren - ;----------------------------------------------------------- - ; PT0 - Origin der Baugruppe - ; szoeg - Einfuegewinkel - ; auswahl-satz - Elemente des Blockes in Auswahlsatz - ;------------------------------------------------------------ - (setq komponente1 (strcat (itoa (abs (fix (car PT0)))) (itoa (abs (fix (cadr PT0)))) - (itoa (abs (fix (caddr PT0)))))) - (setq komponente2 szoeg) - (setq seconds (substr (rtos (getvar "cdate") 2 9) 10 9)) - (setq element-name (strcat komponente1 komponente2 seconds)) - (princ) - (princ (strcat komponente1 "\n")) - (princ (strcat komponente2 "\n")) - (princ (strcat seconds "\n")) - (princ) - (princ (strcat "\n" element-name "\n")) - (princ) - (setq gefunden (tblsearch "block" element-name)) - (if (not gefunden) - (progn - (princ) - (command "_insert" (strcat "*" lw "/acadsst/menu/a") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/b") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/c") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/artinr") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/beschr") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/menge") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/position") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/gruppe") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/etikette") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/aufloese") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_block" element-name PT0 auswahl-satz "") - (command "_insert" element-name PT0 "" "" szoeg) - ) - (alert "\nBlockname exists. You need HELP !") - ) -) - -;---------- Attribute aendern - Laenge,Endstueck,Artikel-Nr.-------------------- -(defun ATTRIBUTE-AENDERN (M_POSITION M_ETIKETTE M_GRUPPE M_A M_B M_C M_ARTINR - M_BESCHR M_MENGE M_AUFLOESE / objekt typ - attribut-bezeichnung attribut-wert) - (setq objekt (entlast)) - (while (not (equal - (cdr (assoc 0 (entget objekt))) - "SEQEND")) - (setq typ - (cdr (assoc 0 (entget objekt)))) - (if - (equal typ "ATTRIB") - (progn - (setq ATTRIBUT-BEZEICHNUNG (cdr (assoc 2 (entget objekt)))) - (setq ATTRIBUT-WERT (cdr (assoc 1 (entget objekt)))) - - (if (and (> (strlen M_POSITION) 0) (= ATTRIBUT-BEZEICHNUNG "POSITION")) - (entmod (subst (cons 1 M_POSITION) (assoc 1 (entget objekt)) - (entget objekt))) - ) - (if (and (> (strlen M_ETIKETTE) 0) (= ATTRIBUT-BEZEICHNUNG "ETIKETTE")) - (entmod (subst (cons 1 M_ETIKETTE) (assoc 1 (entget objekt)) - (entget objekt))) - ) - (if (and (> (strlen M_GRUPPE) 0) (= ATTRIBUT-BEZEICHNUNG "GRUPPE")) - (entmod (subst (cons 1 M_GRUPPE) (assoc 1 (entget objekt)) - (entget objekt))) - ) - (if (and (> (strlen M_A) 0) (equal ATTRIBUT-BEZEICHNUNG "A")) - (entmod (subst (cons 1 M_A) (assoc 1 (entget objekt)) - (entget objekt))) - ) - (if (and (> (strlen M_B) 0) (equal ATTRIBUT-BEZEICHNUNG "B")) - (entmod (subst (cons 1 M_B) (assoc 1 (entget objekt)) - (entget objekt))) - ) - (if (and (> (strlen M_C) 0) (equal ATTRIBUT-BEZEICHNUNG "C")) - (entmod (subst (cons 1 M_C) (assoc 1 (entget objekt)) - (entget objekt))) - ) - (if (and (> (strlen M_ARTINR) 0) (equal ATTRIBUT-BEZEICHNUNG "ARTINR")) - (entmod (subst (cons 1 M_ARTINR) (assoc 1 (entget objekt)) - (entget objekt))) - ) - (if (and (> (strlen M_BESCHR) 0) (equal ATTRIBUT-BEZEICHNUNG "BESCHR")) - (entmod (subst (cons 1 (strcat ATTRIBUT-WERT M_BESCHR)) - (assoc 1 (entget objekt)) (entget objekt))) - ) - (if (and (> (strlen M_MENGE) 0) (equal ATTRIBUT-BEZEICHNUNG "MENGE")) - (entmod (subst (cons 1 M_MENGE) - (assoc 1 (entget objekt)) (entget objekt))) - ) - (if (and (> (strlen M_AUFLOESE) 0) (equal ATTRIBUT-BEZEICHNUNG "AUFLOESE")) - (entmod (subst (cons 1 M_AUFLOESE) - (assoc 1 (entget objekt)) (entget objekt))) - ) - ) ; Ende ----progn - ) ; Ende ----if - (setq objekt (entnext objekt)) - ) - (setq objekt objekt) -) - -;---------- Attribute aendern - Laenge,Endstueck,Artikel-Nr.-------------------- -(defun ATTRIBUTE-AENDERN_IO (M_IO M_ID M_VERW M_BEZEICHNUNG M_KENNZEICHNUNG M_SPS / objekt typ attribut-bezeichnung attribut-wert) - (setq objekt (entlast)) - (while (not (equal - (cdr (assoc 0 (entget objekt))) - "SEQEND")) - (setq typ - (cdr (assoc 0 (entget objekt)))) - (if - (equal typ "ATTRIB") - (progn - (setq ATTRIBUT-BEZEICHNUNG (cdr (assoc 2 (entget objekt)))) - (setq ATTRIBUT-WERT (cdr (assoc 1 (entget objekt)))) - - (if (and (> (strlen M_IO) 0) (= ATTRIBUT-BEZEICHNUNG "IO")) - (entmod (subst (cons 1 M_IO) (assoc 1 (entget objekt)) - (entget objekt))) - ) - - (if (and (> (strlen M_ID) 0) (= ATTRIBUT-BEZEICHNUNG "ID")) - (entmod (subst (cons 1 M_ID) (assoc 1 (entget objekt)) - (entget objekt))) - ) - - (if (and (> (strlen M_VERW) 0) (= ATTRIBUT-BEZEICHNUNG "VERW")) - (entmod (subst (cons 1 M_VERW) (assoc 1 (entget objekt)) - (entget objekt))) - ) - - (if (and (> (strlen M_BEZEICHNUNG) 0) (= ATTRIBUT-BEZEICHNUNG "BEZEICHNUNG")) - (entmod (subst (cons 1 M_BEZEICHNUNG) (assoc 1 (entget objekt)) - (entget objekt))) - ) - - (if (and (> (strlen M_KENNZEICHNUNG) 0) (= ATTRIBUT-BEZEICHNUNG "KENNZEICHNUNG")) - (entmod (subst (cons 1 M_KENNZEICHNUNG) (assoc 1 (entget objekt)) - (entget objekt))) - ) - (if (and (> (strlen M_SPS) 0) (= ATTRIBUT-BEZEICHNUNG "SPS")) - (entmod (subst (cons 1 M_SPS) (assoc 1 (entget objekt)) - (entget objekt))) - ) - ) ; Ende ----progn - ) ; Ende ----if - - (setq objekt (entnext objekt)) - ) - (setq objekt objekt) -) - - -;--- Objekt in der DB suchen und Attribut "ndern --------------- -; Parameter: -; ref - handle -; bezeichnung - Attributbezeichnung, die gesucht ist -; wert - neuer Wert -; addition = 0 - Attributbezeichnung wird mit "wert" ersetzt -; 1 - Attributbezeichnung wird mit "wert" erg"nzt -;---------------------------------------------------------------- -(defun suchen-aendern ( ref bezeichnung wert addition - / typ attribut-bezeichnung attribut-wert) - (redraw (handent ref) 3) - (obj-suchen ref) - (redraw (handent ref)) -) - -(defun obj-suchen (ref) - (setq raus 0) - (setq e (entnext)) - (while e - (setq typ (cdr (assoc 0 (entget e)))) - (setq blockname (cdr (assoc 2 (entget e)))) - (if - (and - (equal (cdr (assoc 5 (entget e))) ref) - (equal typ "INSERT") - (equal (cdr (assoc 66 (entget e))) 1) - ) - (progn - (einzel-attr-aendern bezeichnung wert addition) - (setq raus 1) ; rausspringen !!! - ) - ) - (setq e (entnext e)) - (if (= RAUS 1) - (setq e NIL) - ) - ) -) - -(defun einzel-attr-aendern (BEZEICHNUNG WERT ADDITION) - (while (not (= (cdr (assoc 0 (entget e))) "SEQEND")) - (setq typ (cdr (assoc 0 (entget e)))) - (if - (equal typ "ATTRIB") - (progn - (setq ATTRIBUT-BEZEICHNUNG (cdr (assoc 2 (entget e)))) - (setq ATTRIBUT-WERT (cdr (assoc 1 (entget e)))) - (if (= ADDITION 0) ; Attributwert GANZ ersetzen - (progn - (if (equal ATTRIBUT-BEZEICHNUNG BEZEICHNUNG) - (entmod (subst (cons 1 WERT) - (assoc 1 (entget e)) (entget e))) - ) - ) - ) - (if (= ADDITION 1) ; Attributwert ERGAENZEN - (progn - (if (equal ATTRIBUT-BEZEICHNUNG BEZEICHNUNG) - (entmod (subst (cons 1 (strcat ATTRIBUT-WERT WERT)) - (assoc 1 (entget e)) (entget e))) - ) - ) - ) - - ) ; Ende ----progn - ) - (setq e (entnext e)) - ) -) -;-------------------------------------------------------------------------- -(setq lw "m:") -(setvar "attreq" 0) -(setq - v-lay (list "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "10") - v-col (list "7" "1" "2" "3" "4" "5" "6" "7" "8" "9" "10") - v-ltyp (list "continuous" "continuous" "continuous" "continuous" "continuous" "continuous" "continuous" "continuous" "continuous" "continuous" "continuous" ) -) -;---------------------------------------------------------------------------- -(prompt "\nSSG-Menu.. (c) 2013 by SCHÖNENBERGER Systeme GmbH - All rights reserved") -(prompt " ") -(princ) diff --git a/doc/acadsst/MENU/ssg_110617.lsp b/doc/acadsst/MENU/ssg_110617.lsp deleted file mode 100644 index ac46b3b..0000000 --- a/doc/acadsst/MENU/ssg_110617.lsp +++ /dev/null @@ -1,515 +0,0 @@ -(IF SPECIAL - (SPECIAL '(olde ptest cavar bell prna)) - (DEFUN SPECIAL (x) nil) -) -(DEFUN pstart (tit qust setv / xlen xpos xvar) - (SETQ olde *ERROR* - *ERROR* (IF ptest NIL errhan) - cavar (APPEND '(("CLAYER")("CMDECHO")) - setv) - xlen (LENGTH cavar) - xpos 0 - ) - (REPEAT xlen - (SETQ xvar (CAR (NTH xpos cavar)) - cavar (SUBST (CONS xvar (GETVAR xvar)) - (NTH xpos cavar) cavar) - xpos (1+ xpos) - ) - ) - (SETVAR "CMDECHO" 0) - (COMMAND "_undo" "_G") - (GRAPHSCR) - (PROMPT (STRCAT "\n***** " tit " *****\n\n " qust)) - (PRINC) -) -(DEFUN pend (/ xpos xlen xvar) - (IF cavar - (PROGN - (COMMAND) - (COMMAND "_undo" "_E") - (SETQ xpos 1 - xlen (LENGTH cavar) - ) - (IF (/= (GETVAR "CLAYER") (CAAR cavar)) - (COMMAND "_LAYER" "_SE" (CDAR CAVAR) "") - ) - (REPEAT (1- xlen) - (SETQ xvar (NTH xpos cavar) - xpos (1+ xpos) - ) - (SETVAR (CAR xvar)(CDR xvar)) - ) - ) - ) - (IF olde (SETQ *ERROR* olde)) - (PRINC) -) -(DEFUN errhan (em) - (IF (= em "Function cancelled") - (PRINC) - (PRINC em) - ) - (GRTEXT) - (COMMAND) - (COMMAND) - (pend) -) -(DEFUN ques (dial defa) ;Std Abfrage - (IF defa - (PROGN - (INITGET 1 "Yes No Yes") - (= (GETKWORD (STRCAT "\n" dial " Y/N : ")) "No") - ) - (PROGN - (INITGET 1 "Yes No No") - (= (GETKWORD (STRCAT "\n" dial " Y/N : ")) "Yes") - ) - ) -) -(DEFUN emsg (etxt) - (IF (NOT bell)(PROMPT "\007")) - (TERPRI) - (PROMPT etxt) - (TERPRI) -) -(DEFUN ques (dial defa) ;Std Abfrage - (IF defa - (PROGN - (INITGET 1 "Yes No Yes") - (= (GETKWORD (STRCAT "\n" dial " Y/N : ")) "No") - ) - (PROGN - (INITGET 1 "Yes No No") - (= (GETKWORD (STRCAT "\n" dial " Y/N : ")) "Yes") - ) - ) -) -(DEFUN renv (envn prnn / penv) - (IF (SETQ penv (GETENV envn)) - (EVAL (STRCAT penv "" prnn)) - (EVAL prnn) - ) -) -(DEFUN C:PRG (/ nprg cprg prna) - (SETQ nprg (GETSTRING) - cprg (STRCAT "C:" nprg) - prna (renv "ACADLSP" nprg) - ) - (IF (NULL (EVAL (READ cprg))) - (PROGN - (PRINC " loading...!\n") - (COND - ((FINDFILE (STRCAT prna ".BI4")) - (LOAD prna ".BI4")) - ((FINDFILE (STRCAT prna ".BI2")) - (LOAD prna ".BI2")) - ((FINDFILE (STRCAT prna ".LSP")) - (LOAD prna ".LSP")) - ( T (emsg "File not found")) - ) - ) - ) - (PRINC) -) -(DEFUN C:ed (/ prnn) - (IF (NULL prna) - (SETQ prna "") - ) - (SETQ prnn (GETSTRING - (STRCAT "Programname <" prna ">: "))) - (IF (AND (= (STRLEN prna) 0)(= (STRLEN prnn) 0)) - (emsg "Name not allowed...") - (PROGN - (IF (> (STRLEN prnn) 0) - (SETQ prna (renv "ACADLSP" prnn)) - ) - (COMMAND "SHELL" (STRCAT "ED " prna )) - (INITGET 1 "Yes No Yes") - (IF (NOT (ques "Load the program" T)) - (LOAD prna) - ) - ) - ) - (PRINC) -) -;----------- Block einfuegen mit Layergenerierung ----2.8.92 AW -; KEINE DREHMOEGLICHKEIT !!! -(DEFUN c:symplac ( / einp); / einp ebene symname) - (SETQ einp (GETPOINT "\nInsert-Point: ")) - (COMMAND "_LAYER" "_M" ebene "_co" eb_farbe "" "") - (COMMAND "_insert" symname einp "" "" "0") -) -;----------- Block einfuegen mit Layergenerierung ----14.8.92 AW -; MIT DREHMOEGLICHKEIT !!! -(DEFUN c:sympl_dr ( / einp); / einp ebene symname) - (SETQ einp (GETPOINT "\nInsert-Point: ")) - (COMMAND "_LAYER" "_M" ebene "_co" eb_farbe "" "") - (COMMAND "_insert" symname einp "" "" pause) -) -;----------- Block einfuegen mit Layergenerierung ---16.9.93 AW -; MIT DREHMOEGLICHKEIT UND URSPRUNG NACH DEM SETZEN !!! -(DEFUN c:sympldr2 ( / einp drehung groesse) - (setq groesse "1") - (SETQ einp (GETPOINT "\nInsert-Point: ")) - (SETQ drehung (GETSTRING "\nRotation: ")) - (SETQ groesse (GETSTRING "\nScale: ")) - (COMMAND "_LAYER" "_M" ebene "_co" eb_farbe "" "") - (COMMAND "_insert" symname einp groesse groesse drehung) - (COMMAND "_explode" "_last") -) -;----------- Block einfuegen mit Layergenerierung ---21.11.93 AW -; ABFRAGE: SKALIERUNG/ DREHMOEGLICHKEIT UND URSPRUNG NACH DEM SETZEN !!! -(DEFUN c:sympldr1 ( / einp drehung) - (SETQ einp (GETPOINT "\nInsert-Point: ")) - (SETQ drehung (GETSTRING "\nRotation: ")) - (COMMAND "_LAYER" "_M" ebene "_co" eb_farbe "" "") - (COMMAND "_insert" symname einp "" "" drehung) - (COMMAND "_explode" "_last") -) -;----------- Block einfuegen mit Layergenerierung und Skalierung ---12.2.93 AW -(DEFUN c:sym_scal ( / einp p1 p2); / einp ebene symname) - (SETQ einp (GETPOINT "\nInsert-Point: ")) - (SETQ p1 (GETREAL "\nX-Scale: ")) - (SETQ p2 (GETREAL "\nY-Scale: ")) - (COMMAND "_LAYER" "_M" ebene "_co" eb_farbe "" "") - (COMMAND "_insert" symname einp p1 p2 "0") -) - -;------------ Farbe aendern - AUFRUF aus POP2-------------------------- -(DEFUN c:alt_farb ( / sst_obj neuefarb) - (setq sst_obj (ssget) neuefarb (getstring "\nNew-Color: ")) - (command "_change" sst_obj "" "_prop" "_co" neuefarb "") -) -;-------------------------------------------------------------------- - -(defun block-op (PT0 szoeg auswahl-satz / komponente1 komponente2 - seconds element-name gefunden) - ;------------------ - ; Block definieren - ;----------------------------------------------------------- - ; PT0 - Origin der Baugruppe - ; szoeg - Einfuegewinkel - ; auswahl-satz - Elemente des Blockes in Auswahlsatz - ;------------------------------------------------------------ - (setq komponente1 (strcat (itoa (abs (fix (car PT0)))) (itoa (abs (fix (cadr PT0)))) - (itoa (abs (fix (caddr PT0)))))) - (setq komponente2 szoeg) - (setq seconds (substr (rtos (getvar "cdate") 2 9) 10 9)) - (setq element-name (strcat komponente1 komponente2 seconds)) - (princ) - (princ (strcat komponente1 "\n")) - (princ (strcat komponente2 "\n")) - (princ (strcat seconds "\n")) - (princ) - (princ (strcat "\n" element-name "\n")) - (princ) - (setq gefunden (tblsearch "block" element-name)) - (if (not gefunden) - (progn - (princ) - (command "_block" element-name PT0 auswahl-satz "") - (command "_insert" element-name PT0 "" "" szoeg) - ) - (progn - (alert (strcat "\nBlockname: " element-name " already exists." )) - (setq element-name (strcat "x" element-name)) - (alert (strcat "\nCorrected blockname: " element-name " .OK!")) - (command "_block" element-name PT0 auswahl-satz "") - (command "_insert" element-name PT0 "" "" szoeg) - ) - ) -) - -(defun bl-name (PT0 / komponente1 seconds) -; 14.4.94 -; Verwendung bei Baugruppen, deren Bestandteile aufgelistet -; werden mssen. -; Name eines Blockes gleich am Anfang des Programmes festlegen -; - die Einzelkomponenten werden in "C" mit diesem Wert belegt -; - dadurch ist eine eindeutige Gruppenzugeh"rigkeit m"glich -; - (setq komponente1 (strcat (itoa (abs (fix (car PT0)))) (itoa (abs (fix (cadr PT0)))) - (itoa (abs (fix (caddr PT0)))))) - (setq seconds (substr (rtos (getvar "cdate") 2 9) 10 9)) - (setq block-kennung (strcat komponente1 seconds)) - (princ) -) - -(defun mach-block-ohne-prop (PT0 szoeg auswahl-satz / komponente1 komponente2 - seconds element-name gefunden) - ;------------------ - ; Block definieren - ;----------------------------------------------------------- - ; PT0 - Origin der Baugruppe - ; szoeg - Einfuegewinkel - ; auswahl-satz - Elemente des Blockes in Auswahlsatz - ;------------------------------------------------------------ - (setq komponente1 (strcat (itoa (abs (fix (car PT0)))) (itoa (abs (fix (cadr PT0)))) - (itoa (abs (fix (caddr PT0)))))) - (setq komponente2 szoeg) - (setq seconds (substr (rtos (getvar "cdate") 2 9) 10 9)) - (setq element-name (strcat komponente1 komponente2 seconds)) - (princ) - (princ (strcat komponente1 "\n")) - (princ (strcat komponente2 "\n")) - (princ (strcat seconds "\n")) - (princ) - (princ (strcat "\n" element-name "\n")) - (princ) - (setq gefunden (tblsearch "block" element-name)) - (if (not gefunden) - (progn - (princ) - (command "_block" element-name PT0 auswahl-satz "") - (command "_insert" element-name PT0 "" "" szoeg) - ) - (alert "\nBlockname exists. You need HELP !") - ) -) - - -(defun mach-block (PT0 szoeg auswahl-satz / komponente1 komponente2 - seconds element-name gefunden) - ;------------------ - ; Block definieren - ;----------------------------------------------------------- - ; PT0 - Origin der Baugruppe - ; szoeg - Einfuegewinkel - ; auswahl-satz - Elemente des Blockes in Auswahlsatz - ;------------------------------------------------------------ - (setq komponente1 (strcat (itoa (abs (fix (car PT0)))) (itoa (abs (fix (cadr PT0)))) - (itoa (abs (fix (caddr PT0)))))) - (setq komponente2 szoeg) - (setq seconds (substr (rtos (getvar "cdate") 2 9) 10 9)) - (setq element-name (strcat komponente1 komponente2 seconds)) - (princ) - (princ (strcat komponente1 "\n")) - (princ (strcat komponente2 "\n")) - (princ (strcat seconds "\n")) - (princ) - (princ (strcat "\n" element-name "\n")) - (princ) - (setq gefunden (tblsearch "block" element-name)) - (if (not gefunden) - (progn - (princ) - (command "_insert" (strcat "*" lw "/acadsst/menu/a") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/b") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/c") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/artinr") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/beschr") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/menge") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/position") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/gruppe") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/etikette") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/aufloese") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_block" element-name PT0 auswahl-satz "") - (command "_insert" element-name PT0 "" "" szoeg) - ) - (alert "\nBlockname exists. You need HELP !") - ) -) - -;---------- Attribute aendern - Laenge,Endstueck,Artikel-Nr.-------------------- -(defun ATTRIBUTE-AENDERN (M_POSITION M_ETIKETTE M_GRUPPE M_A M_B M_C M_ARTINR - M_BESCHR M_MENGE M_AUFLOESE / objekt typ - attribut-bezeichnung attribut-wert) - (setq objekt (entlast)) - (while (not (equal - (cdr (assoc 0 (entget objekt))) - "SEQEND")) - (setq typ - (cdr (assoc 0 (entget objekt)))) - (if - (equal typ "ATTRIB") - (progn - (setq ATTRIBUT-BEZEICHNUNG (cdr (assoc 2 (entget objekt)))) - (setq ATTRIBUT-WERT (cdr (assoc 1 (entget objekt)))) - - (if (and (> (strlen M_POSITION) 0) (= ATTRIBUT-BEZEICHNUNG "POSITION")) - (entmod (subst (cons 1 M_POSITION) (assoc 1 (entget objekt)) - (entget objekt))) - ) - (if (and (> (strlen M_ETIKETTE) 0) (= ATTRIBUT-BEZEICHNUNG "ETIKETTE")) - (entmod (subst (cons 1 M_ETIKETTE) (assoc 1 (entget objekt)) - (entget objekt))) - ) - (if (and (> (strlen M_GRUPPE) 0) (= ATTRIBUT-BEZEICHNUNG "GRUPPE")) - (entmod (subst (cons 1 M_GRUPPE) (assoc 1 (entget objekt)) - (entget objekt))) - ) - (if (and (> (strlen M_A) 0) (equal ATTRIBUT-BEZEICHNUNG "A")) - (entmod (subst (cons 1 M_A) (assoc 1 (entget objekt)) - (entget objekt))) - ) - (if (and (> (strlen M_B) 0) (equal ATTRIBUT-BEZEICHNUNG "B")) - (entmod (subst (cons 1 M_B) (assoc 1 (entget objekt)) - (entget objekt))) - ) - (if (and (> (strlen M_C) 0) (equal ATTRIBUT-BEZEICHNUNG "C")) - (entmod (subst (cons 1 M_C) (assoc 1 (entget objekt)) - (entget objekt))) - ) - (if (and (> (strlen M_ARTINR) 0) (equal ATTRIBUT-BEZEICHNUNG "ARTINR")) - (entmod (subst (cons 1 M_ARTINR) (assoc 1 (entget objekt)) - (entget objekt))) - ) - (if (and (> (strlen M_BESCHR) 0) (equal ATTRIBUT-BEZEICHNUNG "BESCHR")) - (entmod (subst (cons 1 (strcat ATTRIBUT-WERT M_BESCHR)) - (assoc 1 (entget objekt)) (entget objekt))) - ) - (if (and (> (strlen M_MENGE) 0) (equal ATTRIBUT-BEZEICHNUNG "MENGE")) - (entmod (subst (cons 1 M_MENGE) - (assoc 1 (entget objekt)) (entget objekt))) - ) - (if (and (> (strlen M_AUFLOESE) 0) (equal ATTRIBUT-BEZEICHNUNG "AUFLOESE")) - (entmod (subst (cons 1 M_AUFLOESE) - (assoc 1 (entget objekt)) (entget objekt))) - ) - ) ; Ende ----progn - ) ; Ende ----if - (setq objekt (entnext objekt)) - ) - (setq objekt objekt) -) - -;---------- Attribute aendern - Laenge,Endstueck,Artikel-Nr.-------------------- -(defun ATTRIBUTE-AENDERN_IO (M_IO M_ID M_VERW M_BEZEICHNUNG M_KENNZEICHNUNG / objekt typ attribut-bezeichnung attribut-wert) - (setq objekt (entlast)) - (while (not (equal - (cdr (assoc 0 (entget objekt))) - "SEQEND")) - (setq typ - (cdr (assoc 0 (entget objekt)))) - (if - (equal typ "ATTRIB") - (progn - (setq ATTRIBUT-BEZEICHNUNG (cdr (assoc 2 (entget objekt)))) - (setq ATTRIBUT-WERT (cdr (assoc 1 (entget objekt)))) - - (if (and (> (strlen M_IO) 0) (= ATTRIBUT-BEZEICHNUNG "IO")) - (entmod (subst (cons 1 M_IO) (assoc 1 (entget objekt)) - (entget objekt))) - ) - - (if (and (> (strlen M_ID) 0) (= ATTRIBUT-BEZEICHNUNG "ID")) - (entmod (subst (cons 1 M_ID) (assoc 1 (entget objekt)) - (entget objekt))) - ) - - (if (and (> (strlen M_VERW) 0) (= ATTRIBUT-BEZEICHNUNG "VERW")) - (entmod (subst (cons 1 M_VERW) (assoc 1 (entget objekt)) - (entget objekt))) - ) - - (if (and (> (strlen M_BEZEICHNUNG) 0) (= ATTRIBUT-BEZEICHNUNG "BEZEICHNUNG")) - (entmod (subst (cons 1 M_BEZEICHNUNG) (assoc 1 (entget objekt)) - (entget objekt))) - ) - - (if (and (> (strlen M_KENNZEICHNUNG) 0) (= ATTRIBUT-BEZEICHNUNG "KENNZEICHNUNG")) - (entmod (subst (cons 1 M_KENNZEICHNUNG) (assoc 1 (entget objekt)) - (entget objekt))) - ) - - ) ; Ende ----progn - ) ; Ende ----if - - (setq objekt (entnext objekt)) - ) - (setq objekt objekt) -) - - -;--- Objekt in der DB suchen und Attribut "ndern --------------- -; Parameter: -; ref - handle -; bezeichnung - Attributbezeichnung, die gesucht ist -; wert - neuer Wert -; addition = 0 - Attributbezeichnung wird mit "wert" ersetzt -; 1 - Attributbezeichnung wird mit "wert" erg"nzt -;---------------------------------------------------------------- -(defun suchen-aendern ( ref bezeichnung wert addition - / typ attribut-bezeichnung attribut-wert) - (redraw (handent ref) 3) - (obj-suchen ref) - (redraw (handent ref)) -) - -(defun obj-suchen (ref) - (setq raus 0) - (setq e (entnext)) - (while e - (setq typ (cdr (assoc 0 (entget e)))) - (setq blockname (cdr (assoc 2 (entget e)))) - (if - (and - (equal (cdr (assoc 5 (entget e))) ref) - (equal typ "INSERT") - (equal (cdr (assoc 66 (entget e))) 1) - ) - (progn - (einzel-attr-aendern bezeichnung wert addition) - (setq raus 1) ; rausspringen !!! - ) - ) - (setq e (entnext e)) - (if (= RAUS 1) - (setq e NIL) - ) - ) -) - -(defun einzel-attr-aendern (BEZEICHNUNG WERT ADDITION) - (while (not (= (cdr (assoc 0 (entget e))) "SEQEND")) - (setq typ (cdr (assoc 0 (entget e)))) - (if - (equal typ "ATTRIB") - (progn - (setq ATTRIBUT-BEZEICHNUNG (cdr (assoc 2 (entget e)))) - (setq ATTRIBUT-WERT (cdr (assoc 1 (entget e)))) - (if (= ADDITION 0) ; Attributwert GANZ ersetzen - (progn - (if (equal ATTRIBUT-BEZEICHNUNG BEZEICHNUNG) - (entmod (subst (cons 1 WERT) - (assoc 1 (entget e)) (entget e))) - ) - ) - ) - (if (= ADDITION 1) ; Attributwert ERGAENZEN - (progn - (if (equal ATTRIBUT-BEZEICHNUNG BEZEICHNUNG) - (entmod (subst (cons 1 (strcat ATTRIBUT-WERT WERT)) - (assoc 1 (entget e)) (entget e))) - ) - ) - ) - - ) ; Ende ----progn - ) - (setq e (entnext e)) - ) -) -;-------------------------------------------------------------------------- -(setq lw "m:") -(setvar "attreq" 0) -(setq - v-lay (list "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "10") - v-col (list "7" "1" "2" "3" "4" "5" "6" "7" "8" "9" "10") - v-ltyp (list "continuous" "continuous" "continuous" "continuous" "continuous" "continuous" "continuous" "continuous" "continuous" "continuous" "continuous" ) -) -;---------------------------------------------------------------------------- -(prompt "\nSSG-Menu.. (c) 2007 by SCHÖNENBERGER Systeme GmbH - All rights reserved") -(prompt " ") -(princ) diff --git a/doc/acadsst/MENU/ssg_130829.lsp b/doc/acadsst/MENU/ssg_130829.lsp deleted file mode 100644 index 73739c8..0000000 --- a/doc/acadsst/MENU/ssg_130829.lsp +++ /dev/null @@ -1,518 +0,0 @@ -(IF SPECIAL - (SPECIAL '(olde ptest cavar bell prna)) - (DEFUN SPECIAL (x) nil) -) -(DEFUN pstart (tit qust setv / xlen xpos xvar) - (SETQ olde *ERROR* - *ERROR* (IF ptest NIL errhan) - cavar (APPEND '(("CLAYER")("CMDECHO")) - setv) - xlen (LENGTH cavar) - xpos 0 - ) - (REPEAT xlen - (SETQ xvar (CAR (NTH xpos cavar)) - cavar (SUBST (CONS xvar (GETVAR xvar)) - (NTH xpos cavar) cavar) - xpos (1+ xpos) - ) - ) - (SETVAR "CMDECHO" 0) - (COMMAND "_undo" "_G") - (GRAPHSCR) - (PROMPT (STRCAT "\n***** " tit " *****\n\n " qust)) - (PRINC) -) -(DEFUN pend (/ xpos xlen xvar) - (IF cavar - (PROGN - (COMMAND) - (COMMAND "_undo" "_E") - (SETQ xpos 1 - xlen (LENGTH cavar) - ) - (IF (/= (GETVAR "CLAYER") (CAAR cavar)) - (COMMAND "_LAYER" "_SE" (CDAR CAVAR) "") - ) - (REPEAT (1- xlen) - (SETQ xvar (NTH xpos cavar) - xpos (1+ xpos) - ) - (SETVAR (CAR xvar)(CDR xvar)) - ) - ) - ) - (IF olde (SETQ *ERROR* olde)) - (PRINC) -) -(DEFUN errhan (em) - (IF (= em "Function cancelled") - (PRINC) - (PRINC em) - ) - (GRTEXT) - (COMMAND) - (COMMAND) - (pend) -) -(DEFUN ques (dial defa) ;Std Abfrage - (IF defa - (PROGN - (INITGET 1 "Yes No Yes") - (= (GETKWORD (STRCAT "\n" dial " Y/N : ")) "No") - ) - (PROGN - (INITGET 1 "Yes No No") - (= (GETKWORD (STRCAT "\n" dial " Y/N : ")) "Yes") - ) - ) -) -(DEFUN emsg (etxt) - (IF (NOT bell)(PROMPT "\007")) - (TERPRI) - (PROMPT etxt) - (TERPRI) -) -(DEFUN ques (dial defa) ;Std Abfrage - (IF defa - (PROGN - (INITGET 1 "Yes No Yes") - (= (GETKWORD (STRCAT "\n" dial " Y/N : ")) "No") - ) - (PROGN - (INITGET 1 "Yes No No") - (= (GETKWORD (STRCAT "\n" dial " Y/N : ")) "Yes") - ) - ) -) -(DEFUN renv (envn prnn / penv) - (IF (SETQ penv (GETENV envn)) - (EVAL (STRCAT penv "" prnn)) - (EVAL prnn) - ) -) -(DEFUN C:PRG (/ nprg cprg prna) - (SETQ nprg (GETSTRING) - cprg (STRCAT "C:" nprg) - prna (renv "ACADLSP" nprg) - ) - (IF (NULL (EVAL (READ cprg))) - (PROGN - (PRINC " loading...!\n") - (COND - ((FINDFILE (STRCAT prna ".BI4")) - (LOAD prna ".BI4")) - ((FINDFILE (STRCAT prna ".BI2")) - (LOAD prna ".BI2")) - ((FINDFILE (STRCAT prna ".LSP")) - (LOAD prna ".LSP")) - ( T (emsg "File not found")) - ) - ) - ) - (PRINC) -) -(DEFUN C:ed (/ prnn) - (IF (NULL prna) - (SETQ prna "") - ) - (SETQ prnn (GETSTRING - (STRCAT "Programname <" prna ">: "))) - (IF (AND (= (STRLEN prna) 0)(= (STRLEN prnn) 0)) - (emsg "Name not allowed...") - (PROGN - (IF (> (STRLEN prnn) 0) - (SETQ prna (renv "ACADLSP" prnn)) - ) - (COMMAND "SHELL" (STRCAT "ED " prna )) - (INITGET 1 "Yes No Yes") - (IF (NOT (ques "Load the program" T)) - (LOAD prna) - ) - ) - ) - (PRINC) -) -;----------- Block einfuegen mit Layergenerierung ----2.8.92 AW -; KEINE DREHMOEGLICHKEIT !!! -(DEFUN c:symplac ( / einp); / einp ebene symname) - (SETQ einp (GETPOINT "\nInsert-Point: ")) - (COMMAND "_LAYER" "_M" ebene "_co" eb_farbe "" "") - (COMMAND "_insert" symname einp "" "" "0") -) -;----------- Block einfuegen mit Layergenerierung ----14.8.92 AW -; MIT DREHMOEGLICHKEIT !!! -(DEFUN c:sympl_dr ( / einp); / einp ebene symname) - (SETQ einp (GETPOINT "\nInsert-Point: ")) - (COMMAND "_LAYER" "_M" ebene "_co" eb_farbe "" "") - (COMMAND "_insert" symname einp "" "" pause) -) -;----------- Block einfuegen mit Layergenerierung ---16.9.93 AW -; MIT DREHMOEGLICHKEIT UND URSPRUNG NACH DEM SETZEN !!! -(DEFUN c:sympldr2 ( / einp drehung groesse) - (setq groesse "1") - (SETQ einp (GETPOINT "\nInsert-Point: ")) - (SETQ drehung (GETSTRING "\nRotation: ")) - (SETQ groesse (GETSTRING "\nScale: ")) - (COMMAND "_LAYER" "_M" ebene "_co" eb_farbe "" "") - (COMMAND "_insert" symname einp groesse groesse drehung) - (COMMAND "_explode" "_last") -) -;----------- Block einfuegen mit Layergenerierung ---21.11.93 AW -; ABFRAGE: SKALIERUNG/ DREHMOEGLICHKEIT UND URSPRUNG NACH DEM SETZEN !!! -(DEFUN c:sympldr1 ( / einp drehung) - (SETQ einp (GETPOINT "\nInsert-Point: ")) - (SETQ drehung (GETSTRING "\nRotation: ")) - (COMMAND "_LAYER" "_M" ebene "_co" eb_farbe "" "") - (COMMAND "_insert" symname einp "" "" drehung) - (COMMAND "_explode" "_last") -) -;----------- Block einfuegen mit Layergenerierung und Skalierung ---12.2.93 AW -(DEFUN c:sym_scal ( / einp p1 p2); / einp ebene symname) - (SETQ einp (GETPOINT "\nInsert-Point: ")) - (SETQ p1 (GETREAL "\nX-Scale: ")) - (SETQ p2 (GETREAL "\nY-Scale: ")) - (COMMAND "_LAYER" "_M" ebene "_co" eb_farbe "" "") - (COMMAND "_insert" symname einp p1 p2 "0") -) - -;------------ Farbe aendern - AUFRUF aus POP2-------------------------- -(DEFUN c:alt_farb ( / sst_obj neuefarb) - (setq sst_obj (ssget) neuefarb (getstring "\nNew-Color: ")) - (command "_change" sst_obj "" "_prop" "_co" neuefarb "") -) -;-------------------------------------------------------------------- - -(defun block-op (PT0 szoeg auswahl-satz / komponente1 komponente2 - seconds element-name gefunden) - ;------------------ - ; Block definieren - ;----------------------------------------------------------- - ; PT0 - Origin der Baugruppe - ; szoeg - Einfuegewinkel - ; auswahl-satz - Elemente des Blockes in Auswahlsatz - ;------------------------------------------------------------ - (setq komponente1 (strcat (itoa (abs (fix (car PT0)))) (itoa (abs (fix (cadr PT0)))) - (itoa (abs (fix (caddr PT0)))))) - (setq komponente2 szoeg) - (setq seconds (substr (rtos (getvar "cdate") 2 9) 10 9)) - (setq element-name (strcat komponente1 komponente2 seconds)) - (princ) - (princ (strcat komponente1 "\n")) - (princ (strcat komponente2 "\n")) - (princ (strcat seconds "\n")) - (princ) - (princ (strcat "\n" element-name "\n")) - (princ) - (setq gefunden (tblsearch "block" element-name)) - (if (not gefunden) - (progn - (princ) - (command "_block" element-name PT0 auswahl-satz "") - (command "_insert" element-name PT0 "" "" szoeg) - ) - (progn - (alert (strcat "\nBlockname: " element-name " already exists." )) - (setq element-name (strcat "x" element-name)) - (alert (strcat "\nCorrected blockname: " element-name " .OK!")) - (command "_block" element-name PT0 auswahl-satz "") - (command "_insert" element-name PT0 "" "" szoeg) - ) - ) -) - -(defun bl-name (PT0 / komponente1 seconds) -; 14.4.94 -; Verwendung bei Baugruppen, deren Bestandteile aufgelistet -; werden mssen. -; Name eines Blockes gleich am Anfang des Programmes festlegen -; - die Einzelkomponenten werden in "C" mit diesem Wert belegt -; - dadurch ist eine eindeutige Gruppenzugeh"rigkeit m"glich -; - (setq komponente1 (strcat (itoa (abs (fix (car PT0)))) (itoa (abs (fix (cadr PT0)))) - (itoa (abs (fix (caddr PT0)))))) - (setq seconds (substr (rtos (getvar "cdate") 2 9) 10 9)) - (setq block-kennung (strcat komponente1 seconds)) - (princ) -) - -(defun mach-block-ohne-prop (PT0 szoeg auswahl-satz / komponente1 komponente2 - seconds element-name gefunden) - ;------------------ - ; Block definieren - ;----------------------------------------------------------- - ; PT0 - Origin der Baugruppe - ; szoeg - Einfuegewinkel - ; auswahl-satz - Elemente des Blockes in Auswahlsatz - ;------------------------------------------------------------ - (setq komponente1 (strcat (itoa (abs (fix (car PT0)))) (itoa (abs (fix (cadr PT0)))) - (itoa (abs (fix (caddr PT0)))))) - (setq komponente2 szoeg) - (setq seconds (substr (rtos (getvar "cdate") 2 9) 10 9)) - (setq element-name (strcat komponente1 komponente2 seconds)) - (princ) - (princ (strcat komponente1 "\n")) - (princ (strcat komponente2 "\n")) - (princ (strcat seconds "\n")) - (princ) - (princ (strcat "\n" element-name "\n")) - (princ) - (setq gefunden (tblsearch "block" element-name)) - (if (not gefunden) - (progn - (princ) - (command "_block" element-name PT0 auswahl-satz "") - (command "_insert" element-name PT0 "" "" szoeg) - ) - (alert "\nBlockname exists. You need HELP !") - ) -) - - -(defun mach-block (PT0 szoeg auswahl-satz / komponente1 komponente2 - seconds element-name gefunden) - ;------------------ - ; Block definieren - ;----------------------------------------------------------- - ; PT0 - Origin der Baugruppe - ; szoeg - Einfuegewinkel - ; auswahl-satz - Elemente des Blockes in Auswahlsatz - ;------------------------------------------------------------ - (setq komponente1 (strcat (itoa (abs (fix (car PT0)))) (itoa (abs (fix (cadr PT0)))) - (itoa (abs (fix (caddr PT0)))))) - (setq komponente2 szoeg) - (setq seconds (substr (rtos (getvar "cdate") 2 9) 10 9)) - (setq element-name (strcat komponente1 komponente2 seconds)) - (princ) - (princ (strcat komponente1 "\n")) - (princ (strcat komponente2 "\n")) - (princ (strcat seconds "\n")) - (princ) - (princ (strcat "\n" element-name "\n")) - (princ) - (setq gefunden (tblsearch "block" element-name)) - (if (not gefunden) - (progn - (princ) - (command "_insert" (strcat "*" lw "/acadsst/menu/a") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/b") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/c") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/artinr") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/beschr") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/menge") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/position") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/gruppe") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/etikette") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/aufloese") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_block" element-name PT0 auswahl-satz "") - (command "_insert" element-name PT0 "" "" szoeg) - ) - (alert "\nBlockname exists. You need HELP !") - ) -) - -;---------- Attribute aendern - Laenge,Endstueck,Artikel-Nr.-------------------- -(defun ATTRIBUTE-AENDERN (M_POSITION M_ETIKETTE M_GRUPPE M_A M_B M_C M_ARTINR - M_BESCHR M_MENGE M_AUFLOESE / objekt typ - attribut-bezeichnung attribut-wert) - (setq objekt (entlast)) - (while (not (equal - (cdr (assoc 0 (entget objekt))) - "SEQEND")) - (setq typ - (cdr (assoc 0 (entget objekt)))) - (if - (equal typ "ATTRIB") - (progn - (setq ATTRIBUT-BEZEICHNUNG (cdr (assoc 2 (entget objekt)))) - (setq ATTRIBUT-WERT (cdr (assoc 1 (entget objekt)))) - - (if (and (> (strlen M_POSITION) 0) (= ATTRIBUT-BEZEICHNUNG "POSITION")) - (entmod (subst (cons 1 M_POSITION) (assoc 1 (entget objekt)) - (entget objekt))) - ) - (if (and (> (strlen M_ETIKETTE) 0) (= ATTRIBUT-BEZEICHNUNG "ETIKETTE")) - (entmod (subst (cons 1 M_ETIKETTE) (assoc 1 (entget objekt)) - (entget objekt))) - ) - (if (and (> (strlen M_GRUPPE) 0) (= ATTRIBUT-BEZEICHNUNG "GRUPPE")) - (entmod (subst (cons 1 M_GRUPPE) (assoc 1 (entget objekt)) - (entget objekt))) - ) - (if (and (> (strlen M_A) 0) (equal ATTRIBUT-BEZEICHNUNG "A")) - (entmod (subst (cons 1 M_A) (assoc 1 (entget objekt)) - (entget objekt))) - ) - (if (and (> (strlen M_B) 0) (equal ATTRIBUT-BEZEICHNUNG "B")) - (entmod (subst (cons 1 M_B) (assoc 1 (entget objekt)) - (entget objekt))) - ) - (if (and (> (strlen M_C) 0) (equal ATTRIBUT-BEZEICHNUNG "C")) - (entmod (subst (cons 1 M_C) (assoc 1 (entget objekt)) - (entget objekt))) - ) - (if (and (> (strlen M_ARTINR) 0) (equal ATTRIBUT-BEZEICHNUNG "ARTINR")) - (entmod (subst (cons 1 M_ARTINR) (assoc 1 (entget objekt)) - (entget objekt))) - ) - (if (and (> (strlen M_BESCHR) 0) (equal ATTRIBUT-BEZEICHNUNG "BESCHR")) - (entmod (subst (cons 1 (strcat ATTRIBUT-WERT M_BESCHR)) - (assoc 1 (entget objekt)) (entget objekt))) - ) - (if (and (> (strlen M_MENGE) 0) (equal ATTRIBUT-BEZEICHNUNG "MENGE")) - (entmod (subst (cons 1 M_MENGE) - (assoc 1 (entget objekt)) (entget objekt))) - ) - (if (and (> (strlen M_AUFLOESE) 0) (equal ATTRIBUT-BEZEICHNUNG "AUFLOESE")) - (entmod (subst (cons 1 M_AUFLOESE) - (assoc 1 (entget objekt)) (entget objekt))) - ) - ) ; Ende ----progn - ) ; Ende ----if - (setq objekt (entnext objekt)) - ) - (setq objekt objekt) -) - -;---------- Attribute aendern - Laenge,Endstueck,Artikel-Nr.-------------------- -(defun ATTRIBUTE-AENDERN_IO (M_IO M_ID M_VERW M_BEZEICHNUNG M_KENNZEICHNUNG M_SPS / objekt typ attribut-bezeichnung attribut-wert) - (setq objekt (entlast)) - (while (not (equal - (cdr (assoc 0 (entget objekt))) - "SEQEND")) - (setq typ - (cdr (assoc 0 (entget objekt)))) - (if - (equal typ "ATTRIB") - (progn - (setq ATTRIBUT-BEZEICHNUNG (cdr (assoc 2 (entget objekt)))) - (setq ATTRIBUT-WERT (cdr (assoc 1 (entget objekt)))) - - (if (and (> (strlen M_IO) 0) (= ATTRIBUT-BEZEICHNUNG "IO")) - (entmod (subst (cons 1 M_IO) (assoc 1 (entget objekt)) - (entget objekt))) - ) - - (if (and (> (strlen M_ID) 0) (= ATTRIBUT-BEZEICHNUNG "ID")) - (entmod (subst (cons 1 M_ID) (assoc 1 (entget objekt)) - (entget objekt))) - ) - - (if (and (> (strlen M_VERW) 0) (= ATTRIBUT-BEZEICHNUNG "VERW")) - (entmod (subst (cons 1 M_VERW) (assoc 1 (entget objekt)) - (entget objekt))) - ) - - (if (and (> (strlen M_BEZEICHNUNG) 0) (= ATTRIBUT-BEZEICHNUNG "BEZEICHNUNG")) - (entmod (subst (cons 1 M_BEZEICHNUNG) (assoc 1 (entget objekt)) - (entget objekt))) - ) - - (if (and (> (strlen M_KENNZEICHNUNG) 0) (= ATTRIBUT-BEZEICHNUNG "KENNZEICHNUNG")) - (entmod (subst (cons 1 M_KENNZEICHNUNG) (assoc 1 (entget objekt)) - (entget objekt))) - ) - (if (and (> (strlen M_SPS) 0) (= ATTRIBUT-BEZEICHNUNG "SPS")) - (entmod (subst (cons 1 M_SPS) (assoc 1 (entget objekt)) - (entget objekt))) - ) - ) ; Ende ----progn - ) ; Ende ----if - - (setq objekt (entnext objekt)) - ) - (setq objekt objekt) -) - - -;--- Objekt in der DB suchen und Attribut "ndern --------------- -; Parameter: -; ref - handle -; bezeichnung - Attributbezeichnung, die gesucht ist -; wert - neuer Wert -; addition = 0 - Attributbezeichnung wird mit "wert" ersetzt -; 1 - Attributbezeichnung wird mit "wert" erg"nzt -;---------------------------------------------------------------- -(defun suchen-aendern ( ref bezeichnung wert addition - / typ attribut-bezeichnung attribut-wert) - (redraw (handent ref) 3) - (obj-suchen ref) - (redraw (handent ref)) -) - -(defun obj-suchen (ref) - (setq raus 0) - (setq e (entnext)) - (while e - (setq typ (cdr (assoc 0 (entget e)))) - (setq blockname (cdr (assoc 2 (entget e)))) - (if - (and - (equal (cdr (assoc 5 (entget e))) ref) - (equal typ "INSERT") - (equal (cdr (assoc 66 (entget e))) 1) - ) - (progn - (einzel-attr-aendern bezeichnung wert addition) - (setq raus 1) ; rausspringen !!! - ) - ) - (setq e (entnext e)) - (if (= RAUS 1) - (setq e NIL) - ) - ) -) - -(defun einzel-attr-aendern (BEZEICHNUNG WERT ADDITION) - (while (not (= (cdr (assoc 0 (entget e))) "SEQEND")) - (setq typ (cdr (assoc 0 (entget e)))) - (if - (equal typ "ATTRIB") - (progn - (setq ATTRIBUT-BEZEICHNUNG (cdr (assoc 2 (entget e)))) - (setq ATTRIBUT-WERT (cdr (assoc 1 (entget e)))) - (if (= ADDITION 0) ; Attributwert GANZ ersetzen - (progn - (if (equal ATTRIBUT-BEZEICHNUNG BEZEICHNUNG) - (entmod (subst (cons 1 WERT) - (assoc 1 (entget e)) (entget e))) - ) - ) - ) - (if (= ADDITION 1) ; Attributwert ERGAENZEN - (progn - (if (equal ATTRIBUT-BEZEICHNUNG BEZEICHNUNG) - (entmod (subst (cons 1 (strcat ATTRIBUT-WERT WERT)) - (assoc 1 (entget e)) (entget e))) - ) - ) - ) - - ) ; Ende ----progn - ) - (setq e (entnext e)) - ) -) -;-------------------------------------------------------------------------- -(setq lw "D:") -(setvar "attreq" 0) -(setq - v-lay (list "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "10") - v-col (list "7" "1" "2" "3" "4" "5" "6" "7" "8" "9" "10") - v-ltyp (list "continuous" "continuous" "continuous" "continuous" "continuous" "continuous" "continuous" "continuous" "continuous" "continuous" "continuous" ) -) -;---------------------------------------------------------------------------- -(prompt "\nSSG-Menu.. (c) 2011 by SCHÖNENBERGER Systeme GmbH - All rights reserved") -(prompt " ") -(princ) diff --git a/doc/acadsst/MENU/ssg_old.lsp b/doc/acadsst/MENU/ssg_old.lsp deleted file mode 100644 index 9018e46..0000000 --- a/doc/acadsst/MENU/ssg_old.lsp +++ /dev/null @@ -1,434 +0,0 @@ -(IF SPECIAL - (SPECIAL '(olde ptest cavar bell prna)) - (DEFUN SPECIAL (x) nil) -) -(DEFUN pstart (tit qust setv / xlen xpos xvar) - (SETQ olde *ERROR* - *ERROR* (IF ptest NIL errhan) - cavar (APPEND '(("CLAYER")("CMDECHO")) - setv) - xlen (LENGTH cavar) - xpos 0 - ) - (REPEAT xlen - (SETQ xvar (CAR (NTH xpos cavar)) - cavar (SUBST (CONS xvar (GETVAR xvar)) - (NTH xpos cavar) cavar) - xpos (1+ xpos) - ) - ) - (SETVAR "CMDECHO" 0) - (COMMAND "_undo" "_G") - (GRAPHSCR) - (PROMPT (STRCAT "\n***** " tit " *****\n\n " qust)) - (PRINC) -) -(DEFUN pend (/ xpos xlen xvar) - (IF cavar - (PROGN - (COMMAND) - (COMMAND "_undo" "_E") - (SETQ xpos 1 - xlen (LENGTH cavar) - ) - (IF (/= (GETVAR "CLAYER") (CAAR cavar)) - (COMMAND "_LAYER" "_SE" (CDAR CAVAR) "") - ) - (REPEAT (1- xlen) - (SETQ xvar (NTH xpos cavar) - xpos (1+ xpos) - ) - (SETVAR (CAR xvar)(CDR xvar)) - ) - ) - ) - (IF olde (SETQ *ERROR* olde)) - (PRINC) -) -(DEFUN errhan (em) - (IF (= em "Function cancelled") - (PRINC) - (PRINC em) - ) - (GRTEXT) - (COMMAND) - (COMMAND) - (pend) -) -(DEFUN ques (dial defa) ;Std Abfrage - (IF defa - (PROGN - (INITGET 1 "Yes No Yes") - (= (GETKWORD (STRCAT "\n" dial " Y/N : ")) "No") - ) - (PROGN - (INITGET 1 "Yes No No") - (= (GETKWORD (STRCAT "\n" dial " Y/N : ")) "Yes") - ) - ) -) -(DEFUN emsg (etxt) - (IF (NOT bell)(PROMPT "\007")) - (TERPRI) - (PROMPT etxt) - (TERPRI) -) -(DEFUN ques (dial defa) ;Std Abfrage - (IF defa - (PROGN - (INITGET 1 "Yes No Yes") - (= (GETKWORD (STRCAT "\n" dial " Y/N : ")) "No") - ) - (PROGN - (INITGET 1 "Yes No No") - (= (GETKWORD (STRCAT "\n" dial " Y/N : ")) "Yes") - ) - ) -) -(DEFUN renv (envn prnn / penv) - (IF (SETQ penv (GETENV envn)) - (EVAL (STRCAT penv "" prnn)) - (EVAL prnn) - ) -) -(DEFUN C:PRG (/ nprg cprg prna) - (SETQ nprg (GETSTRING) - cprg (STRCAT "C:" nprg) - prna (renv "ACADLSP" nprg) - ) - (IF (NULL (EVAL (READ cprg))) - (PROGN - (PRINC " loading...!\n") - (COND - ((FINDFILE (STRCAT prna ".BI4")) - (LOAD prna ".BI4")) - ((FINDFILE (STRCAT prna ".BI2")) - (LOAD prna ".BI2")) - ((FINDFILE (STRCAT prna ".LSP")) - (LOAD prna ".LSP")) - ( T (emsg "File not found")) - ) - ) - ) - (PRINC) -) -(DEFUN C:ed (/ prnn) - (IF (NULL prna) - (SETQ prna "") - ) - (SETQ prnn (GETSTRING - (STRCAT "Programname <" prna ">: "))) - (IF (AND (= (STRLEN prna) 0)(= (STRLEN prnn) 0)) - (emsg "Name not allowed...") - (PROGN - (IF (> (STRLEN prnn) 0) - (SETQ prna (renv "ACADLSP" prnn)) - ) - (COMMAND "SHELL" (STRCAT "ED " prna )) - (INITGET 1 "Yes No Yes") - (IF (NOT (ques "Load the program" T)) - (LOAD prna) - ) - ) - ) - (PRINC) -) -;----------- Block einfuegen mit Layergenerierung ----2.8.92 AW -; KEINE DREHMOEGLICHKEIT !!! -(DEFUN c:symplac ( / einp); / einp ebene symname) - (SETQ einp (GETPOINT "\nInsert-Point: ")) - (COMMAND "_LAYER" "_M" ebene "_co" eb_farbe "" "") - (COMMAND "_insert" symname einp "" "" "0") -) -;----------- Block einfuegen mit Layergenerierung ----14.8.92 AW -; MIT DREHMOEGLICHKEIT !!! -(DEFUN c:sympl_dr ( / einp); / einp ebene symname) - (SETQ einp (GETPOINT "\nInsert-Point: ")) - (COMMAND "_LAYER" "_M" ebene "_co" eb_farbe "" "") - (COMMAND "_insert" symname einp "" "" pause) -) -;----------- Block einfuegen mit Layergenerierung ---16.9.93 AW -; MIT DREHMOEGLICHKEIT UND URSPRUNG NACH DEM SETZEN !!! -(DEFUN c:sympldr2 ( / einp drehung groesse) - (setq groesse "1") - (SETQ einp (GETPOINT "\nInsert-Point: ")) - (SETQ drehung (GETSTRING "\nRotation: ")) - (SETQ groesse (GETSTRING "\nScale: ")) - (COMMAND "_LAYER" "_M" ebene "_co" eb_farbe "" "") - (COMMAND "_insert" symname einp groesse groesse drehung) - (COMMAND "_explode" "_last") -) -;----------- Block einfuegen mit Layergenerierung ---21.11.93 AW -; ABFRAGE: SKALIERUNG/ DREHMOEGLICHKEIT UND URSPRUNG NACH DEM SETZEN !!! -(DEFUN c:sympldr1 ( / einp drehung) - (SETQ einp (GETPOINT "\nInsert-Point: ")) - (SETQ drehung (GETSTRING "\nRotation: ")) - (COMMAND "_LAYER" "_M" ebene "_co" eb_farbe "" "") - (COMMAND "_insert" symname einp "" "" drehung) - (COMMAND "_explode" "_last") -) -;----------- Block einfuegen mit Layergenerierung und Skalierung ---12.2.93 AW -(DEFUN c:sym_scal ( / einp p1 p2); / einp ebene symname) - (SETQ einp (GETPOINT "\nInsert-Point: ")) - (SETQ p1 (GETREAL "\nX-Scale: ")) - (SETQ p2 (GETREAL "\nY-Scale: ")) - (COMMAND "_LAYER" "_M" ebene "_co" eb_farbe "" "") - (COMMAND "_insert" symname einp p1 p2 "0") -) - -;------------ Farbe aendern - AUFRUF aus POP2-------------------------- -(DEFUN c:alt_farb ( / sst_obj neuefarb) - (setq sst_obj (ssget) neuefarb (getstring "\nNew-Color: ")) - (command "_change" sst_obj "" "_prop" "_co" neuefarb "") -) -;-------------------------------------------------------------------- - -(defun block-op (PT0 szoeg auswahl-satz / komponente1 komponente2 - seconds element-name gefunden) - ;------------------ - ; Block definieren - ;----------------------------------------------------------- - ; PT0 - Origin der Baugruppe - ; szoeg - Einfuegewinkel - ; auswahl-satz - Elemente des Blockes in Auswahlsatz - ;------------------------------------------------------------ - (setq komponente1 (strcat (itoa (abs (fix (car PT0)))) (itoa (abs (fix (cadr PT0)))) - (itoa (abs (fix (caddr PT0)))))) - (setq komponente2 szoeg) - (setq seconds (substr (rtos (getvar "cdate") 2 9) 10 9)) - (setq element-name (strcat komponente1 komponente2 seconds)) - (princ) - (princ (strcat komponente1 "\n")) - (princ (strcat komponente2 "\n")) - (princ (strcat seconds "\n")) - (princ) - (princ (strcat "\n" element-name "\n")) - (princ) - (setq gefunden (tblsearch "block" element-name)) - (if (not gefunden) - (progn - (princ) - (command "_block" element-name PT0 auswahl-satz "") - (command "_insert" element-name PT0 "" "" szoeg) - ) - (progn - (alert (strcat "\nBlockname: " element-name " already exists." )) - (setq element-name (strcat "x" element-name)) - (alert (strcat "\nCorrected blockname: " element-name " .OK!")) - (command "_block" element-name PT0 auswahl-satz "") - (command "_insert" element-name PT0 "" "" szoeg) - ) - ) -) - -(defun bl-name (PT0 / komponente1 seconds) -; 14.4.94 -; Verwendung bei Baugruppen, deren Bestandteile aufgelistet -; werden mssen. -; Name eines Blockes gleich am Anfang des Programmes festlegen -; - die Einzelkomponenten werden in "C" mit diesem Wert belegt -; - dadurch ist eine eindeutige Gruppenzugeh"rigkeit m"glich -; - (setq komponente1 (strcat (itoa (abs (fix (car PT0)))) (itoa (abs (fix (cadr PT0)))) - (itoa (abs (fix (caddr PT0)))))) - (setq seconds (substr (rtos (getvar "cdate") 2 9) 10 9)) - (setq block-kennung (strcat komponente1 seconds)) - (princ) -) - -(defun mach-block (PT0 szoeg auswahl-satz / komponente1 komponente2 - seconds element-name gefunden) - ;------------------ - ; Block definieren - ;----------------------------------------------------------- - ; PT0 - Origin der Baugruppe - ; szoeg - Einfuegewinkel - ; auswahl-satz - Elemente des Blockes in Auswahlsatz - ;------------------------------------------------------------ - (setq komponente1 (strcat (itoa (abs (fix (car PT0)))) (itoa (abs (fix (cadr PT0)))) - (itoa (abs (fix (caddr PT0)))))) - (setq komponente2 szoeg) - (setq seconds (substr (rtos (getvar "cdate") 2 9) 10 9)) - (setq element-name (strcat komponente1 komponente2 seconds)) - (princ) - (princ (strcat komponente1 "\n")) - (princ (strcat komponente2 "\n")) - (princ (strcat seconds "\n")) - (princ) - (princ (strcat "\n" element-name "\n")) - (princ) - (setq gefunden (tblsearch "block" element-name)) - (if (not gefunden) - (progn - (princ) - (command "_insert" (strcat "*" lw "/acadsst/menu/a") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/b") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/c") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/artinr") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/beschr") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/menge") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/position") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/gruppe") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/etikette") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat "*" lw "/acadsst/menu/aufloese") PT0 "" "") - (ssadd (entlast) auswahl-satz) - (command "_block" element-name PT0 auswahl-satz "") - (command "_insert" element-name PT0 "" "" szoeg) - ) - (alert "\nBlockname exists. You need HELP !") - ) -) - -;---------- Attribute aendern - Laenge,Endstueck,Artikel-Nr.-------------------- -(defun ATTRIBUTE-AENDERN (M_POSITION M_ETIKETTE M_GRUPPE M_A M_B M_C M_ARTINR - M_BESCHR M_MENGE M_AUFLOESE / objekt typ - attribut-bezeichnung attribut-wert) - (setq objekt (entlast)) - (while (not (equal - (cdr (assoc 0 (entget objekt))) - "SEQEND")) - (setq typ - (cdr (assoc 0 (entget objekt)))) - (if - (equal typ "ATTRIB") - (progn - (setq ATTRIBUT-BEZEICHNUNG (cdr (assoc 2 (entget objekt)))) - (setq ATTRIBUT-WERT (cdr (assoc 1 (entget objekt)))) - - (if (and (> (strlen M_POSITION) 0) (= ATTRIBUT-BEZEICHNUNG "POSITION")) - (entmod (subst (cons 1 M_POSITION) (assoc 1 (entget objekt)) - (entget objekt))) - ) - (if (and (> (strlen M_ETIKETTE) 0) (= ATTRIBUT-BEZEICHNUNG "ETIKETTE")) - (entmod (subst (cons 1 M_ETIKETTE) (assoc 1 (entget objekt)) - (entget objekt))) - ) - (if (and (> (strlen M_GRUPPE) 0) (= ATTRIBUT-BEZEICHNUNG "GRUPPE")) - (entmod (subst (cons 1 M_GRUPPE) (assoc 1 (entget objekt)) - (entget objekt))) - ) - (if (and (> (strlen M_A) 0) (equal ATTRIBUT-BEZEICHNUNG "A")) - (entmod (subst (cons 1 M_A) (assoc 1 (entget objekt)) - (entget objekt))) - ) - (if (and (> (strlen M_B) 0) (equal ATTRIBUT-BEZEICHNUNG "B")) - (entmod (subst (cons 1 M_B) (assoc 1 (entget objekt)) - (entget objekt))) - ) - (if (and (> (strlen M_C) 0) (equal ATTRIBUT-BEZEICHNUNG "C")) - (entmod (subst (cons 1 M_C) (assoc 1 (entget objekt)) - (entget objekt))) - ) - (if (and (> (strlen M_ARTINR) 0) (equal ATTRIBUT-BEZEICHNUNG "ARTINR")) - (entmod (subst (cons 1 M_ARTINR) (assoc 1 (entget objekt)) - (entget objekt))) - ) - (if (and (> (strlen M_BESCHR) 0) (equal ATTRIBUT-BEZEICHNUNG "BESCHR")) - (entmod (subst (cons 1 (strcat ATTRIBUT-WERT M_BESCHR)) - (assoc 1 (entget objekt)) (entget objekt))) - ) - (if (and (> (strlen M_MENGE) 0) (equal ATTRIBUT-BEZEICHNUNG "MENGE")) - (entmod (subst (cons 1 M_MENGE) - (assoc 1 (entget objekt)) (entget objekt))) - ) - (if (and (> (strlen M_AUFLOESE) 0) (equal ATTRIBUT-BEZEICHNUNG "AUFLOESE")) - (entmod (subst (cons 1 M_AUFLOESE) - (assoc 1 (entget objekt)) (entget objekt))) - ) - ) ; Ende ----progn - ) ; Ende ----if - (setq objekt (entnext objekt)) - ) - (setq objekt objekt) -) - -;--- Objekt in der DB suchen und Attribut "ndern --------------- -; Parameter: -; ref - handle -; bezeichnung - Attributbezeichnung, die gesucht ist -; wert - neuer Wert -; addition = 0 - Attributbezeichnung wird mit "wert" ersetzt -; 1 - Attributbezeichnung wird mit "wert" erg"nzt -;---------------------------------------------------------------- -(defun suchen-aendern ( ref bezeichnung wert addition - / typ attribut-bezeichnung attribut-wert) - (redraw (handent ref) 3) - (obj-suchen ref) - (redraw (handent ref)) -) - -(defun obj-suchen (ref) - (setq raus 0) - (setq e (entnext)) - (while e - (setq typ (cdr (assoc 0 (entget e)))) - (setq blockname (cdr (assoc 2 (entget e)))) - (if - (and - (equal (cdr (assoc 5 (entget e))) ref) - (equal typ "INSERT") - (equal (cdr (assoc 66 (entget e))) 1) - ) - (progn - (einzel-attr-aendern bezeichnung wert addition) - (setq raus 1) ; rausspringen !!! - ) - ) - (setq e (entnext e)) - (if (= RAUS 1) - (setq e NIL) - ) - ) -) - -(defun einzel-attr-aendern (BEZEICHNUNG WERT ADDITION) - (while (not (= (cdr (assoc 0 (entget e))) "SEQEND")) - (setq typ (cdr (assoc 0 (entget e)))) - (if - (equal typ "ATTRIB") - (progn - (setq ATTRIBUT-BEZEICHNUNG (cdr (assoc 2 (entget e)))) - (setq ATTRIBUT-WERT (cdr (assoc 1 (entget e)))) - (if (= ADDITION 0) ; Attributwert GANZ ersetzen - (progn - (if (equal ATTRIBUT-BEZEICHNUNG BEZEICHNUNG) - (entmod (subst (cons 1 WERT) - (assoc 1 (entget e)) (entget e))) - ) - ) - ) - (if (= ADDITION 1) ; Attributwert ERGAENZEN - (progn - (if (equal ATTRIBUT-BEZEICHNUNG BEZEICHNUNG) - (entmod (subst (cons 1 (strcat ATTRIBUT-WERT WERT)) - (assoc 1 (entget e)) (entget e))) - ) - ) - ) - - ) ; Ende ----progn - ) - (setq e (entnext e)) - ) -) -;-------------------------------------------------------------------------- -(setq lw "m:") -(setvar "attreq" 0) -(setq - v-lay (list "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "10") - v-col (list "7" "1" "2" "3" "4" "5" "6" "7" "8" "9" "10") - v-ltyp (list "continuous" "continuous" "continuous" "continuous" "continuous" "continuous" "continuous" "continuous" "continuous" "continuous" "continuous" ) -) -;---------------------------------------------------------------------------- -(prompt "\nSSG-Menu.. (c) 2006 by SCHÖNENBERGER Systeme GmbH - All rights reserved") -(prompt " ") -(princ) diff --git a/doc/acadsst/Spinnerei/alt/pu1pu2.lsp b/doc/acadsst/Spinnerei/alt/pu1pu2.lsp deleted file mode 100644 index 5dc26fb..0000000 --- a/doc/acadsst/Spinnerei/alt/pu1pu2.lsp +++ /dev/null @@ -1,697 +0,0 @@ -; PU1PU2 - Putzstation ; -; -----------------------------------------------------------------------; -; AW 1.3.98 ; -;------------------------------------------------------------------------; - -(defun start() - (setq auswahl-satz nil) - (setvar "limcheck" 0) - (command "_vports" "_S" "aktiv" "_Y") - (setq BMOD (getvar "BLIPMODE") - MOSM (getvar "OSMODE") - MSNA (getvar "SNAPMODE") - MORT (getvar "ORTHOMODE") - CLAY (getvar "CLAYER") ; aktuelle Ebene - MECH (getvar "MENUECHO") - BKSYM (getvar "UCSICON") - UCSF (getvar "UCSFOLLOW") - Z-HOEHE (getvar "THICKNESS") - ERHEB (getvar "ELEVATION") - ) - (princ) -) - -(defun Dbox (/ Dat) - (setq Dat (load_dialog (strcat lw "/acadsst/spinne/pu1pu2.DCL"))) - (if (not (new_dialog "pu1pu2" Dat)) - (exit) - ) -; (set_tile "SPULEN" m_SPULEN) ; Spulen pro Spulenzug - default: "36" -; (set_tile "TEILUNG" m_TEILUNG)) ; Spulenzugteilung - default: "150" - (set_tile "RICHTUNG" m_RICHTUNG) ; Drehrichtung - default: "LINKS" - (set_tile "FUSS" m_FUSS) ; FUSS - default: OPPOSITE + VERBUNDEN - (set_tile "ANTRIEB" m_ANTRIEB) ; Reibradantrieb - default: "mit Antrieb" (PU2) - (set_tile "GERUEST" m_GERUEST) ; mit Gerüst - (set_tile "BEMASS" m_BEMASS) ; keine Bemassung - (SetDia) - (ACTION_TILE "FUSS" "(zeig_dia)") - (ACTION_TILE "RICHTUNG" "(zeig_dia)") - (ACTION_TILE "ANTRIEB" "(zeig_dia)") - (action_tile "accept" "(SetPara) (done_dialog)") - (action_tile "cancel" "(exit) (done_dialog)") - (start_dialog) - (unload_dialog Dat) -) - -(defun SetDia() - (setq breite (dimx_tile "anzeige")) - (setq hoehe (dimy_tile "anzeige")) - (start_image "anzeige") - (FILL_IMAGE 0 0 breite hoehe -18) - (if (and (= m_RICHTUNG "UHR")(= m_ANTRIEB "1")) ; Drehung in uhrzeigersinn+Antrieb - (progn - (if (= m_FUSS "ZURUECK") (slide_image 0 0 breite hoehe "spinne(pu2ll)")) - (if (= m_FUSS "ENTGEGEN")(slide_image 0 0 breite hoehe "spinne(pu2lr)")) - (if (= m_FUSS "ENTGVERB")(slide_image 0 0 breite hoehe "spinne(pu2lrd)")) - (if (= m_FUSS "NICHTS") (slide_image 0 0 breite hoehe "spinne(pu2lo)")) - ) - ) - (if (and (= m_RICHTUNG "GEGENUHR")(= m_ANTRIEB "1")) ; Drehung in gegenuhrzeigersinn+Antrieb - (progn - (if (= m_FUSS "ZURUECK") (slide_image 0 0 breite hoehe "spinne(pu2rr)")) - (if (= m_FUSS "ENTGEGEN")(slide_image 0 0 breite hoehe "spinne(pu2rl)")) - (if (= m_FUSS "ENTGVERB")(slide_image 0 0 breite hoehe "spinne(pu2rld)")) - (if (= m_FUSS "NICHTS") (slide_image 0 0 breite hoehe "spinne(pu2ro)")) - ) - ) - (if (and (= m_RICHTUNG "UHR") (= m_ANTRIEB "0")) ; Drehung in uhrzeigersinn und KEIN Antrieb - (progn - (if (= m_FUSS "ZURUECK") (slide_image 0 0 breite hoehe "spinne(pu1ll)")) - (if (= m_FUSS "ENTGEGEN")(slide_image 0 0 breite hoehe "spinne(pu1lr)")) - (if (= m_FUSS "ENTGVERB")(slide_image 0 0 breite hoehe "spinne(pu1lrd)")) - (if (= m_FUSS "NICHTS") (slide_image 0 0 breite hoehe "spinne(pu1lo)")) - ) - ) - (if (and (= m_RICHTUNG "GEGENUHR")(= m_ANTRIEB "0")) ; Drehung in gegenuhrzeigersinn und KEIN Antrieb - (progn - (if (= m_FUSS "ZURUECK") (slide_image 0 0 breite hoehe "spinne(pu1rr)")) - (if (= m_FUSS "ENTGEGEN")(slide_image 0 0 breite hoehe "spinne(pu1rl)")) - (if (= m_FUSS "ENTGVERB")(slide_image 0 0 breite hoehe "spinne(pu1rld)")) - (if (= m_FUSS "NICHTS") (slide_image 0 0 breite hoehe "spinne(pu1ro)")) - ) - ) - (end_image) -) - -(defun zeig_dia() - (setq m_SPULEN (get_tile "SPULEN")) - (setq m_TEILUNG (get_tile "TEILUNG")) - (setq m_RICHTUNG (get_tile "RICHTUNG")) ; Drehrichtung - (setq m_FUSS (get_tile "FUSS")) ; Weichenkonfiguration am Ein- und Ausfahrt - (setq m_ANTRIEB (get_tile "ANTRIEB")) ; Reibradantrieb - (setq m_GERUEST (get_tile "GERUEST")) ; Gerüst - (setq m_BEMASS (get_tile "BEMASS")) ; Bemassung - (SetDia) -) - -(defun SetPara () - (setq m_SPULEN (get_tile "SPULEN")) - (setq m_TEILUNG (get_tile "TEILUNG")) - (setq m_RICHTUNG (get_tile "RICHTUNG")) - (setq m_FUSS (get_tile "FUSS")) - (setq m_ANTRIEB (get_tile "ANTRIEB")) - (setq m_GERUEST (get_tile "GERUEST")) - (setq m_BEMASS (get_tile "BEMASS")) - ;------------------------------------------------------- - (initget (+ 2 4)) - ;------------------------------------------------------- -) - - -(defun datain () - ;------------------------------------------------------- - ;>>>> Eingabeteil <<<<<<< - ;------------------------------------------------------- - (if (= m_TEILUNG "0") ; 150-er Teilung - (progn - (setq A '(7250 9050 10850 12650 14450 16250 18050 19850)) - (setq B '(4900 6100 7300 8500 9700 10900 12100 13300)) - ) - ) - (if (= m_TEILUNG "1") ; 165-er Teilung - (progn - (setq A '(7790 9770 11750 13730 15710 17690 19670 21650)) - (setq B '(5260 6580 7900 9220 10540 11860 13180 14500)) - ) - ) - - (setq ANZ_SPULEN (atoi m_SPULEN)) ; um Wert NULL zu vermeiden - - (setq ALTFANG (getvar "osmode")) - (initget (+ 1 2 4)) - (command "_layer" "_m" "A-2" "_c" "2" "" "") - (command "_ortho" "_off") - (setq P0 (getpoint "\nPick insertion point : ")) -; (setq P0 (list (car P0) (cadr P0) UK-SCHIENE)) - (bl-name P0) ;--> Block-Name definieren -> Rückgabe: block-kennung - (setq P1 (list (car p0) (+ (cadr p0) 2650) UK-SCHIENE)) - (if (= m_RICHTUNG "GEGENUHR") ; gegenuhrzeigersinn - (progn - (setq P2 (list (+ (nth ANZ_SPULEN A)(car p1)) (- (cadr P1) 200) UK-SCHIENE)) - (setq P3 (list (car p2) (cadr p0) UK-SCHIENE)) - (setq P4 (list (+ (car p1) 800) (cadr p1) UK-SCHIENE)) - (setq P6 (list (car p4) (- (cadr p4) 200) UK-SCHIENE)) - (setq P8 (list (car p4) (- (cadr p4) 2650) UK-SCHIENE)) - (setq P10 (list (car p0) (+ (cadr p0) 800) UK-SCHIENE)) - (setq P11 (list (car p0) (- (cadr p1) 1050) UK-SCHIENE)) - (setq P15 (list (+ (car p0) 300) (+ (cadr p0) 300) 0)) - ) - (progn - (setq P2 (list (+ (nth ANZ_SPULEN A)(car p1)) (cadr P1) UK-SCHIENE)) - (setq P3 (list (car p2) (+ (cadr p0) 200) UK-SCHIENE)) - (setq P4 (list (+ (car p0) 800) (cadr p0) UK-SCHIENE)) - (setq P6 (list (car p4) (+ (cadr p4) 200) UK-SCHIENE)) - (setq P8 (list (car p4) (+ (cadr p4) 2650) UK-SCHIENE)) - (setq P10 (list (car p0) (+ (cadr p0) 1050) UK-SCHIENE)) - (setq P11 (list (car p1) (- (cadr p1) 500) UK-SCHIENE)) - (setq P15 (list (+ (car p0) 300) (+ (cadr p0) 500) 0)) - ) - ) - - (setq P14 (list (+ (nth ANZ_SPULEN B)(car p0)) (cadr P0) UK-SCHIENE)) - (command "_ortho" "_on") - (setvar "osmode" 0) - (command "_elevation" "0") - (command "_ucs" "_w") - (command "_fill" "_off") - (setq M_ARTINR "821106002") ; artikel.nr fuer alu-profil APG110 -) - -(defun geometrie() - ; ---- Bereich einstellen - (command "_vpoint" "0,0,1") - (command "_zoom" "_w" (list (- (car P0) 2000) (- (cadr P0) 2000) 0) - (list (+ (car P2) 2000) (+ (cadr P2) 2000) 0)) - ; --- Putzstation einfügen - (command "_layer" "_m" "Putzstation" "_c" "5" "" "") - (command "_insert" (strcat lw "/acadsst/spinne/putzstation") P15 "" "" "") - (setq auswahl-satz (ssget "_L")) - - (if (= m_RICHTUNG "GEGENUHR") ; in gegenuhrzeigerrichtung - (progn - (command "_layer" "_m" "A-2" "_c" "2" "" "") - (command "_insert" (strcat lw "/acadsst/alu/b1109065") - (list (car P0) (cadr P0) (+ (caddr P0) UK-SCHIENE)) "" "" "180") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat lw "/acadsst/alu/wbe2r20") P1 "" "" "") - (ssadd (entlast) auswahl-satz) - (if (= m_FUSS "ENTGEGEN") - (progn - (command "_insert" (strcat lw "/acadsst/alu/wbe2r20") P2 "" "" "180") - (ssadd (entlast) auswahl-satz) - ) - ) - (if (or (= m_FUSS "ZURUECK") (= m_FUSS "ENTGVERB")) - (progn - (command "_insert" (strcat lw "/acadsst/alu/wb2r20") P2 "" "" "180") - (ssadd (entlast) auswahl-satz) - ) - ) - - (gemeinsame-el) - - ; Fuß bearbeiten - (if (= m_FUSS "ZURUECK") - (progn - (command "_layer" "_m" "A-2" "_c" "2" "" "") - (command "_insert" (strcat lw "/acadsst/alu/b1109065") P3 "" "" "") - (command "_mirror" (entlast) "" P8 P3 "_Y") - (ssadd (entlast) auswahl-satz) - (setq P12 (list (car p2) (+ (cadr p2) 650) UK-SCHIENE)) - (ap-zeichnen (list (car p3) (+ (cadr p3) 800) UK-SCHIENE) P12) - (command "_layer" "_m" "A-10" "_c" "8" "" "") - (command "_insert" (strcat lw "/acadsst/alu/tv80") (list (car p3) (+ (cadr p3) 800) UK-SCHIENE) "" "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat lw "/acadsst/alu/alu_ks") P12 "" "" "") - (ssadd (entlast) auswahl-satz) - ) - ) - (if (= m_FUSS "ENTGEGEN") - (progn - (command "_layer" "_m" "A-2" "_c" "2" "" "") - (command "_insert" (strcat lw "/acadsst/alu/b1109065") P3 "" "" "") - (ssadd (entlast) auswahl-satz) - ) - ) - (if (= m_FUSS "ENTGVERB") - (progn - (command "_layer" "_m" "A-2" "_c" "2" "" "") - (command "_insert" (strcat lw "/acadsst/alu/sw90l70") P3 "" "" "") - (ssadd (entlast) auswahl-satz) - (setq P12 (list (car p2) (+ (cadr p2) 650) UK-SCHIENE)) - (setq P13 (list (car p3) (- (cadr p3) 440) UK-SCHIENE)) - (ap-zeichnen P13 P12) - (command "_layer" "_m" "A-10" "_c" "8" "" "") - (command "_insert" (strcat lw "/acadsst/alu/alu_ks") P12 "" "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat lw "/acadsst/alu/alu_ks") P13 "" "" "") - (ssadd (entlast) auswahl-satz) - ) - ) - - ; zieren - (command "_layer" "_m" "A-1" "_c" "1" "" "") - (command "_insert" (strcat lw "/acadsst/zier2d/pf0_l") - (list (+ (car p0) 2000) (cadr p0) UK-SCHIENE) "0.5" "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat lw "/acadsst/zier2d/pf0_l") - (list (+ (car p1) 2000) (cadr p1) UK-SCHIENE) "0.5" "" "180") - (ssadd (entlast) auswahl-satz) - (if (or (= m_FUSS "ZURUECK") (= m_FUSS "ENTGVERB")) - (progn - (command "_insert" (strcat lw "/acadsst/zier2d/pf0_l") - (list (car p3) (+ (cadr p3) 1300) UK-SCHIENE) "0.5" "" "90") - (ssadd (entlast) auswahl-satz) - ) - ) - - (prompt (strcat "Modul-Länge=" (itoa (+ LAENGE 1650 (* WIEDERHOLE 6000))))) - (prompt "\n") - ) - ) ; ENDE (if (= m_RICHTUNG "GEGENUHR") - - (if (= m_RICHTUNG "UHR") ; in uhrzeigerrichtung - (progn - (command "_layer" "_m" "A-2" "_c" "2" "" "") - (command "_insert" (strcat lw "/acadsst/alu/wbe2l20") P0 "" "" "180") - (setq auswahl-satz (ssget "_L")) - (command "_insert" (strcat lw "/acadsst/alu/b1109065") P1 "" "" "90") - (ssadd (entlast) auswahl-satz) - (if (= m_FUSS "ZURUECK") - (progn - (command "_insert" (strcat lw "/acadsst/alu/b1109065") P2 "" "" "") - (ssadd (entlast) auswahl-satz) - ) - ) - (if (= m_FUSS "ENTGEGEN") - (progn - (command "_insert" (strcat lw "/acadsst/alu/b1109065") P2 "" "" "180") - (command "_mirror" (entlast) "" P3 P2 "_Y") - (ssadd (entlast) auswahl-satz) - ) - ) - (if (= m_FUSS "ENTGVERB") - (progn - (command "_insert" (strcat lw "/acadsst/alu/sw90r70") P2 "" "" "180") - (ssadd (entlast) auswahl-satz) - ) - ) - - (gemeinsame-el) - - ; Fuß bearbeiten - (if (= m_FUSS "ZURUECK") - (progn - (command "_layer" "_m" "A-2" "_c" "2" "" "") - (command "_insert" (strcat lw "/acadsst/alu/wb2l20") P3 "" "" "") - (ssadd (entlast) auswahl-satz) - (setq P12 (list (car p2) (- (cadr p2) 800) UK-SCHIENE)) - (ap-zeichnen (list (car p3) (- (cadr p3) 650) UK-SCHIENE) P12) - (command "_layer" "_m" "A-10" "_c" "8" "" "") - (command "_insert" (strcat lw "/acadsst/alu/alu_ks") (list (car p3) (- (cadr p3) 650) UK-SCHIENE) "" "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat lw "/acadsst/alu/tv80") P12 "" "" "") - (ssadd (entlast) auswahl-satz) - ) - ) - (if (= m_FUSS "ENTGEGEN") - (progn - (command "_layer" "_m" "A-2" "_c" "2" "" "") - (command "_insert" (strcat lw "/acadsst/alu/wbe2l20") P3 "" "" "") - (ssadd (entlast) auswahl-satz) - ) - ) - (if (= m_FUSS "ENTGVERB") - (progn - (command "_layer" "_m" "A-2" "_c" "2" "" "") - (command "_insert" (strcat lw "/acadsst/alu/wb2l20") P3 "" "" "") - (ssadd (entlast) auswahl-satz) - (setq P12 (list (car p2) (+ (cadr p2) 360) UK-SCHIENE)) - (setq P13 (list (car p3) (- (cadr p3) 650) UK-SCHIENE)) - (ap-zeichnen P13 P12) - (command "_layer" "_m" "A-10" "_c" "8" "" "") - (command "_insert" (strcat lw "/acadsst/alu/alu_ks") P12 "" "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat lw "/acadsst/alu/alu_ks") P13 "" "" "") - (ssadd (entlast) auswahl-satz) - ) - ) - - ; zieren - (command "_layer" "_m" "A-1" "_c" "1" "" "") - (command "_insert" (strcat lw "/acadsst/zier2d/pf0_l") (list (+ (car p1) 1500) (cadr p1) UK-SCHIENE) "0.5" "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat lw "/acadsst/zier2d/pf0_l") (list (+ (car p0) 1500) (cadr p0) UK-SCHIENE) "0.5" "" "180") - (ssadd (entlast) auswahl-satz) - (if (or (= m_FUSS "ZURUECK") (= m_FUSS "ENTGVERB")) - (progn - (command "_insert" (strcat lw "/acadsst/zier2d/pf0_l") (list (car p3) (+ (cadr p3) 1300) UK-SCHIENE) "0.5" "" "90") - (ssadd (entlast) auswahl-satz) - ) - ) - - (prompt (strcat "Modul-Länge=" (itoa (+ LAENGE 1650 (* WIEDERHOLE 6000))))) - (prompt "\n") - ) - ) ; ENDE (if (= m_RICHTUNG "UHR") -) - - -(defun gemeinsame-el() - ; trapezverbindungselemente - (command "_layer" "_m" "A-10" "_c" "8" "" "") - (command "_insert" (strcat lw "/acadsst/alu/tv80") P4 "" "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat lw "/acadsst/alu/tv80") P6 "" "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat lw "/acadsst/alu/tv80") P8 "" "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat lw "/acadsst/alu/tv80") P10 "" "" "") - (ssadd (entlast) auswahl-satz) - (command "_insert" (strcat lw "/acadsst/alu/tv80") P11 "" "" "") - (ssadd (entlast) auswahl-satz) - - ; -- ap träger zeichnen - ABSTAND ermitteln - (ap-zeichnen P10 P11) - (setq LAENGE (fix (- (nth ANZ_SPULEN A) 1650))) - (setq WIEDERHOLE (fix (/ LAENGE 6000))); wenn > 6000 ist der faktor > 0 - (if (> WIEDERHOLE 0) - (progn - (repeat WIEDERHOLE - (setq P5 (list (+ (car p4) 6000) (cadr p4) UK-SCHIENE)) - (ap-zeichnen P4 P5) - (setq P4 P5) ; punkte vertauschen - (setq P7 (list (+ (car p6) 6000) (cadr p6) UK-SCHIENE)) - (ap-zeichnen P6 P7) - (setq P6 P7) ; punkte vertauschen - (setq P9 (list (+ (car p8) 6000) (cadr p8) UK-SCHIENE)) - (ap-zeichnen P8 P9) - (setq P8 P9) ; punkte vertauschen - (setq LAENGE (- LAENGE 6000)) - ) - ) - ) - -; (if (= m_RICHTUNG "GEGENUHR") - (if (= m_FUSS "ENTGEGEN") - (progn - (setq P5 (list (+ (car p4) LAENGE 50) (cadr p4) UK-SCHIENE)) - (setq P7 (list (+ (car p6) LAENGE 50) (cadr p6) UK-SCHIENE)) - ) - (progn - (setq P5 (list (+ (car p4) LAENGE) (cadr p4) UK-SCHIENE)) - (setq P7 (list (+ (car p6) LAENGE) (cadr p6) UK-SCHIENE)) - ) - ) -; ) - (ap-zeichnen P4 P5) - (ap-zeichnen P6 P7) - (if (= m_FUSS "ENTGVERB") - (setq P9 (list (+ (car p8) LAENGE 150) (cadr p8) UK-SCHIENE)) - (setq P9 (list (+ (car p8) LAENGE 50) (cadr p8) UK-SCHIENE)) - ) - (ap-zeichnen P8 P9) -) - -(defun ap-zeichnen (anfang ende) - (command "_layer" "_m" "A-2" "_c" "2" "" "") - (bl-name anfang) ;--> Block-Name definieren -> Rückgabe: element-name - (command "_line" anfang ende "") - (setq auswahl-ap (ssget "_L")) - (mach-block anfang "0" AUSWAHL-AP) - (attribute-aendern "0" "2" "3" (itoa (fix (distance anfang ende))) "" block-kennung - M_ARTINR (strcat "APG110 L= " (itoa (fix (distance anfang ende)))) "" "") - (ssadd (entlast) auswahl-satz) - (setq auswahl-ap nil) - (command "_layer" "_m" "A-10" "_c" "8" "" "") - (command "_insert" (strcat lw "/acadsst/alu/tv80") ende "" "" "") - (ssadd (entlast) auswahl-satz) -) - -(defun BEMASSUNG () - ;--------- - ; Bemaßung - ;--------- - (command "_layer" "_m" "A-8" "_c" "8" "" "") - (command "_dimtad" "0") - (command "_dimtxt" "125") - (command "_dimasz" "40") -; (setvar "osmode" 0) - (command "_dimaligned" P0 P1 (list (- (car p0) 400) (cadr p0) 0)) - (ssadd (entlast) auswahl-satz) - (command "_dimlinear" P11 P2 (list (- (car p11) 400) (cadr p11) 0)) - (ssadd (entlast) auswahl-satz) - (if (= m_BEMASS "1") - (progn - (command "_layer" "_m" "F-8" "_c" "8" "" "") - (command "_dimlinear" P0 P14 (list (+ (car p0) 2000) (- (cadr p0) 400) 0 )) - (ssadd (entlast) auswahl-satz) - ) - ) -) - -(defun motor() - (if (= m_RICHTUNG "GEGENUHR") - (progn - (command "_layer" "_m" "F-1" "_c" "1" "" "") - (command "_insert" (strcat lw "/acadsst/foerder/ra1") P14 "" "" "") - (command "_insert" (strcat lw "/acadsst/foerder/ra2_200") (list (car P14) (+ (cadr P14) 2450) UK-SCHIENE) "" "" "") - ) - ) - (if (= m_RICHTUNG "UHR") - (progn - (command "_layer" "_m" "F-1" "_c" "1" "" "") - (command "_insert" (strcat lw "/acadsst/foerder/ra2_200") P14 "" "" "") - (command "_insert" (strcat lw "/acadsst/foerder/ra1") (list (car P14) (+ (cadr P14) 2650) UK-SCHIENE) "" "" "") - ) - ) -) - -; ---- GERUEST zeichnen ---------------------------------------------------- -(defun structure () - (setq T1 (list (- (car p0) 600) (- (cadr p0) 1175) UK-GERUEST)) - (setq T2 (list (+ (car p0) 1400) (- (cadr p0) 1175) UK-GERUEST)) - (setq T3 (list (- (car p3) 1400) (- (cadr p0) 1175) UK-GERUEST)) - (setq T4 (list (+ (car p3) 600) (- (cadr p0) 1175) UK-GERUEST)) - (setq T5 (list (car t1) (- (cadr p0) 325) UK-GERUEST)) - (setq T6 (list (+ (car P0) 100) (- (cadr p0) 325) UK-GERUEST)) - - ; ---- eine 3-Fläche als Unterlage zeichnen - (command "_layer" "_m" "Boden" "_c" "8" "" "") - (command "_3dface" (list (car T1) (cadr T1) 0) (list (car T4) (cadr T4) 0) - (list (car T4) (+ (cadr T4) 5000) 0) (list (car T1) (+ (cadr T4) 5000) 0) "") - (ssadd (entlast) auswahl-satz) - - ; ---- RT80/80 zeichnen --------------------------------------------------- - (setq auswahl-rt nil) - (command "_layer" "_m" "D-5" "_c" "5" "" "") - ; -- das kurze Stück zwischen DRT80 - (bl-name T6) ;--> Block-Name definieren -> Rückgabe: element-name - (command "_line" (list (car T6) (+ (cadr T6) 35) (caddr T6)) (list (car T6) (+ (cadr T6) 3265) (caddr T6)) "") - (setq auswahl-rt (ssget "_L")) - (mach-block T1 "0" AUSWAHL-rt) - (attribute-aendern "0" "2" "5" "3230" "115-115" block-kennung - "825144004" "RT 80/80 L= 3230" "" "") - (ssadd (entlast) auswahl-satz) - (if (not (= m_FUSS "NICHTS")) - (progn - (command "_copy" (entlast) "" T6 (list (+ (car T6) (- (fix (distance T1 T4)) 1400)) (cadr T6) (caddr T6))) - (ssadd (entlast) auswahl-satz) - ) - ) - (setq auswahl-rt nil) - (bl-name T1) ;--> Block-Name definieren -> Rückgabe: element-name - (command "_line" T1 (list (car T1) (+ (cadr T1) 5000) (caddr T1)) "") - (setq auswahl-rt (ssget "_L")) - (mach-block T1 "0" AUSWAHL-rt) - (attribute-aendern "0" "2" "5" "5000" "250-250" block-kennung - "825144005" "RT 80/80 L= 5000" "" "") - (ssadd (entlast) auswahl-satz) - (setq auswahl-rt nil) - - ; -------- wie oft kopieren ? ------------------------------------------- - (setq wieoft (+ (fix (/ (distance P0 P3) 3000)) 1)) - (setq copyabstand (fix (/ (distance P0 P3) wieoft))) - (setq wieoft (- wieoft 2)) - (copy_element T1 T2 T3 T4) - - ; --- DRT 80 -> 1-mal zeichnen und 4 mal kopieren - (command "_layer" "_m" "D-1" "_c" "1" "" "") - (bl-name T5) ;--> Block-Name definieren -> Rückgabe: element-name - (command "_line" (list (+ (car T5) 35) (cadr T5) (caddr T5)) - (list (+ (car T5) 1965) (cadr T5) (caddr T5)) "") - (setq auswahl-rt (ssget "_L")) - (mach-block T5 "0" AUSWAHL-rt) - (attribute-aendern "0" "2" "5" "1930" "250-180" block-kennung - "825084002" "DRT 80 L= 1930" "" "") - (ssadd (entlast) auswahl-satz) - (setq auswahl-rt nil) - (command "_copy" (entlast) "" T5 (list (car T5) (+ (cadr T5) 3300) (caddr T5))) - (ssadd (entlast) auswahl-satz) - (if (not (= m_FUSS "NICHTS")) - (progn - (command "_copy" (entlast) "" (list (car T5) (+ (cadr T5) 3300) (caddr T5)) - (list (+ (car T5) (fix (distance T1 T3))) (+ (cadr T5) 3300) (caddr T5))) - (ssadd (entlast) auswahl-satz) - (command "_copy" (entlast) "" (list (+ (car T5) (fix (distance T1 T3))) (+ (cadr T5) 3300) (caddr T5)) - (list (+ (car T5) (fix (distance T1 T3))) (cadr T5) (caddr T5))) - (ssadd (entlast) auswahl-satz) - ) - ) - - ; 2" Säulen --------------------------------------------------------- - (setq AUSWAHL-STR nil) - (setq TS1 (list (car T1) (- (cadr T1) 35) 0)) - (setq TS2 (list (car T2) (- (cadr T2) 35) 0)) - (setq TS3 (list (car T3) (- (cadr T3) 35) 0)) - (setq TS4 (list (car T4) (- (cadr T4) 35) 0)) - (command "_layer" "_m" "D-1" "_c" "1" "" "") - (bl-name T1) ;--> Block-Name definieren -> Rueckgabe: element-name - (setq PT1 (list (- (car TS1) 100) (- (cadr TS1) 150) 0)) - (setq PT2 (list (+ (car TS1) 100) (- (cadr TS1) 150) 0)) - (setq PT3 (list (+ (car TS1) 100) (+ (cadr TS1) 150) 0)) - (setq PT4 (list (- (car TS1) 100) (+ (cadr TS1) 150) 0)) - (setvar "thickness" 10) - (setvar "elevation" 0) - (command "_solid" PT1 PT2 PT4 PT3 "") - (setq AUSWAHL-STR (ssget "_L")) - (setvar "thickness" 2990) - (setvar "elevation" 10) - (command "_circle" TS1 "30") - (ssadd (entlast) AUSWAHL-STR) - (setvar "thickness" 0) - (setvar "elevation" 0) - (mach-block TS1 "0" AUSWAHL-STR) - (attribute-aendern "0" "0" "25" "3000" "" block-kennung "821004025" "SL 2\" mit Fussplatte" "" "") - (ssadd (entlast) auswahl-satz) - (setq AUSWAHL-STR nil) - (copy_element TS1 TS2 TS3 TS4) - - ; ----- UPAT Duebel 4 Stück ---------------------------------------- - (command "_layer" "_m" "D-10" "_c" "10" "" "") - (setq WINKEL 0) - (setvar "thickness" 0) - (setvar "elevation" 0) - (command "_insert" (strcat lw "/acadsst/rohr/d_einzel") TS1 "" "" (rtos WINKEL)) - (attribute-aendern "0" "0" "25" "" "" block-kennung "922021003" "HST M12/20" "4" "") - (ssadd (entlast) AUSWAHL-SATZ) - (copy_element TS1 TS2 TS3 TS4) - (setq WINKEL (+ WINKEL 5)) - (command "_insert" (strcat lw "/acadsst/rohr/d_einzel") TS1 "" "" (rtos WINKEL)) - (attribute-aendern "0" "0" "25" "" "" block-kennung "923014001" "UPAT PSL-ANKER TYP B 14/10" "4" "") - (ssadd (entlast) AUSWAHL-SATZ) - (copy_element TS1 TS2 TS3 TS4) - - ; ---- KLEMMRING EINFACH - (command "_layer" "_m" "D-4" "_c" "4" "" "") - (command "_insert" (strcat lw "/acadsst/rohr/" "D_1KR") (list (car TS1) (cadr TS1) 2620) "" "" "") - (ssadd (entlast) AUSWAHL-SATZ) - (copy_element TS1 TS2 TS3 TS4) - (command "_insert" (strcat lw "/acadsst/rohr/" "D_1KR") (list (car TS1) (cadr TS1) 2500) "" "" "") - (ssadd (entlast) AUSWAHL-SATZ) - (copy_element TS1 TS2 TS3 TS4) - - ; Säulen und Klemmringe spiegeln auf die andere Seite - (command "_mirror" "_w" (list (- (car T1) 500) (- (cadr T1) 500) 0) - (list (+ (car T4) 500) (+ (cadr T4) 500) 4000) "" - (list (car P0) (+ (cadr P0) 1325) 0) - (list (+ (car P0) 500) (+ (cadr P0) 1325) 0) "_N" - ) -) - - -; ---- ELEMENTE KOPIEREN ----------------------------------------------------------------- -(defun copy_element (TK1 TK2 TK3 TK4) - (command "_copy" (entlast) "" TK1 TK2) - (ssadd (entlast) auswahl-satz) - (setq AP_BEF_90 (+ AP_BEF_90 3)) ; Rohrschelle für AP kpl. - (setq TM (list (+ (car TK1) 2000) (cadr TK1) (caddr TK1))) - (repeat wieoft - (setq TN (list (+ (car TM) copyabstand) (cadr TM) (caddr TM))) - (command "_copy" (entlast) "" TM TN) - (ssadd (entlast) auswahl-satz) - (setq AP_BEF_90 (+ AP_BEF_90 3)) ; Rohrschelle für AP kpl. - (setq TM TN) - ) - (command "_copy" (entlast) "" TM TK3) - (ssadd (entlast) auswahl-satz) - (setq AP_BEF_90 (+ AP_BEF_90 3)) ; Rohrschelle für AP kpl. - (if (not (= m_FUSS "NICHTS")) - (progn - (command "_copy" (entlast) "" TK3 TK4) - (ssadd (entlast) auswahl-satz) - ) - ) -) - -(defun schluss() - (IF clay - (progn - (command "_layer" "_set" clay "") - (setvar "BLIPMODE" bmod) - (setvar "CMDECHO" 1) - (setvar "MENUECHO" mech) - (setvar "OSMODE" mosm) - (setvar "SNAPMODE" msna) - (setvar "ORTHOMODE" mort) - (setvar "UCSICON" bksym) - (setvar "UCSFOLLOW" ucsf) - (setvar "THICKNESS" Z-HOEHE) - (setvar "ELEVATION" ERHEB) - ) - ) - (command "_vports" "_R" "aktiv") - (princ) -) - -;------------------------------------------------------------------------------ -(defun c:pu1pu2 ( / A B C P1 P2 P3 p4 P5 P6 P7 P8 P9 P10 P11 P12 P13 P14 P15 - T1 T2 T3 T4 T5 TS1 TS2 TS3 TS4 AUSWAHL-STR UK-SCHIENE UK-GERUEST AB_BEF_90 - AB_BEF_BOG DRT80_8080 BMOD MOSM MSNA MORT CLAY MECH BKSYM UCSF HOEHE ERHEB BREITE - Z-HOEHE) - (start) - (setq auswahl-ap nil) ; auswahlsatz fuer die Bildung der traeger - (prompt "******* SPINNING MODULES - CLEANING STATIONS P1 & P2 *******") - (prompt "") - (setq UK-SCHIENE 2390) - (setq UK-GERUEST 2500) - ; --- Zaehler für die Ermittlung der Kleinteile - ; --- Die Kleinteile werden auf D-10 in P0 gesetzt - (setq AP_BEF_90 0) ; Rohrschelle für AP kpl. 821114019 - Abhängig von der Länge - pro RT80/80 3 Stück - (setq AP_BEF_BOG 5) ; Bogenschelle für AP kpl. 821114028 - am Ende des Moduls - (setq DRT80_8080 4) ; ????????????????????? - - (if (null m_SPULEN) (setq m_SPULEN "0")) ; Spulen pro Spulenzug - default: "36" - (if (null m_TEILUNG) (setq m_TEILUNG "0")) ; Spulenzugteilung - default: "150" - (if (null m_RICHTUNG) (setq m_RICHTUNG "GEGENUHR")) ; Drehrichtung - default: "gegenuhrzeigersinn" - (if (null m_FUSS) (setq m_FUSS "ENTGVERB")) ; FUSS - (if (null m_ANTRIEB) (setq m_ANTRIEB "1")) ; Reibradantrieb - default: "mit Antrieb" (PU2) - (if (null m_GERUEST) (setq m_GERUEST "1")) ; mit Gerüst - (if (null m_BEMASS) (setq m_BEMASS "0")) ; keine Bemassung - ;------------------------------------------------------------------------------------------------------- - (Dbox) - (datain) - (geometrie) - (if (= m_BEMASS "1") - (bemassung) - ) - (if (= m_ANTRIEB "1") - (motor) - ) - (if (= m_GERUEST "1") - (structure) - ) -; (mach-block P0 "0" auswahl-satz) -; (command "_rotate" "_l" "" P0 pause) - ; --- Die Kleinteile in 0,0 - (command "_layer" "_m" "D-10" "_c" "10" "" "") - (setq WINKEL 0) - (setvar "thickness" 0) - (setvar "elevation" 0) - ; ---- Rohrschelle für AP kpl. (für die geraden Stücke) - (command "_insert" (strcat lw "/acadsst/rohr/d_einzel") P0 "" "" (rtos WINKEL)) - (attribute-aendern "0" "0" "25" "" "" block-kennung "821114019" "Rohrschelle für AP kpl." (rtos AP_BEF_90) "") - (setq WINKEL (+ WINKEL 5)) - ; ---- Bogenschelle für AP kpl. (für die Bögenabhängung) - (command "_insert" (strcat lw "/acadsst/rohr/d_einzel") P0 "" "" (rtos WINKEL)) - (attribute-aendern "0" "0" "25" "" "" block-kennung "821114028" "Bogenschelle für AP kpl." (rtos AP_BEF_BOG) "") - (setq WINKEL (+ WINKEL 5)) - ; ---- DRT 80 an RT80/80 ???????????????? - (command "_insert" (strcat lw "/acadsst/rohr/d_einzel") P0 "" "" (rtos WINKEL)) - (attribute-aendern "0" "0" "25" "" "" block-kennung "?????????" "????????" (rtos DRT80_8080) "") - (setq WINKEL (+ WINKEL 5)) - ; ---- ENDE der Einfügug der Kleinteile - - (command "_rotate" auswahl-satz "" P0 pause) - (schluss) -) diff --git a/doc/acadsst_uebersicht.md b/doc/acadsst_uebersicht.md deleted file mode 100644 index 73b0787..0000000 --- a/doc/acadsst_uebersicht.md +++ /dev/null @@ -1,70 +0,0 @@ -# ACADSST – Quelldateien Übersicht - -Originale AutoLISP-Makros aus `M:\ACADSST`, kopiert nach `doc/acadsst/` zur Referenz und Archivierung. -Die allgemeingültigen Muster wurden in die Standardbibliotheken unter `Lisp/ssg_*.lsp` überführt. - ---- - -## MENU/ - -Menü- und Basisroutinen, die von allen anderen Makros genutzt werden. - -| Datei | Beschreibung | -|---|---| -| `ssg.lsp` | **Kernbibliothek** – Systemvariablen sichern/wiederherstellen (`pstart`/`pend`), Fehlerhandler (`errhan`), Ja/Nein-Dialog (`ques`), Fehlermeldung mit Ton (`emsg`). Block aus Auswahlsatz erzeugen und einfügen (`block-op`, `mach-block`, `mach-block-ohne-prop`). Eindeutigen Blocknamen aus Position + Zeitstempel generieren (`bl-name`). Attribute eines Blocks ändern – einzeln (`ATTRIBUTE-AENDERN`, `ATTRIBUTE-AENDERN_IO`) und über Entity-Handle mit Suche durch die DB (`suchen-aendern`, `obj-suchen`, `einzel-attr-aendern`). Block-Hilfsfunktionen für Symbole mit/ohne Drehung und Skalierung (`c:symplac`, `c:sympl_dr`, `c:sympldr2`, `c:sympldr1`, `c:sym_scal`). Farbe eines Auswahlsatzes interaktiv ändern (`c:alt_farb`). | -| `laymr14.lsp` | **Layer-Manager** – Interaktive Layer-Operationen über das Screen-Menü: Layer eines Objektes ermitteln (`alay`), Auswahlsatz nach Layer+Typ filtern (`alel`). Layer ein- und ausschalten, einfrieren/auftauen (`lays`). Objekte auf anderen Layer verschieben oder kopieren, alle Objekte eines Typs auf einem Layer verschieben (`laymanag` Selektoren 4–7). Layernamen für Gruppen-Umbenennung berechnen (`lann`, `laqu`). Layer-Gruppenoperationen (Ein/Ausschalten, Löschen, Auswahlsatz erzeugen) über Gruppenkennung (`lgrn`). Layer-Liste im Screen-Menü blättern (`ldis`). | -| `ssg.lsp` (alt) | Ältere Versionen des Menüsystems (`ssg_110617.lsp`, `ssg_130829.lsp`, `ssg_old.lsp`) – nur zur Referenz, nicht produktiv verwenden. | - ---- - -## ILS2100/ - -Makros für das ILS 2100-Hängefördersystem (Aluminium-Schienensystem). Alle Dateien folgen demselben Dialog-Pattern: DCL laden → Vorschaubild je Auswahl → Block einfügen → Attribute setzen → Baugruppe als Block zusammenfassen. - -| Datei | Beschreibung | -|---|---| -| `ils_ae_elem.lsp` | **AS/ES-Elemente** – Antriebsstationen (AS) links/rechts und Endstationen (ES) links/rechts, jeweils mit Bosch- oder SMC-Pneumatik-Satz. AS-Elemente werden als Baugruppe (`mach-block`) mit dem zugehörigen Pneumatik-Einzelteil zusammengefasst. Dialog mit Vorschaubild je Variante. Befehl: `c:ILS_AE_ELEM`. | -| `ils_anbau_str.lsp` | **Separatoren/Stopper** – Separator Einfach-Hub (links/rechts) und Doppel-Hub in Gefällestrecke (links/rechts-Sonder). Konfigurierbar: Pneumatik-Typ (Bosch/SMC), Abhängung (an Monster-Profil LP, an LP mit/ohne PIN), Anbau-Baugruppe für Doppel-Hub. Befehl: `c:ILS_ANBAU_STR`. | -| `ils_angebot.lsp` | **Angebot-Modul** – Vereinfachte Angebotszeichnung der ILS-Komponenten (Antrieb 800/300, Spannstation 800/300, Umlenkstation, AS/ES links/rechts, Separator, Gefällestrecke, Scanner, Be-/Entladung u.a.). Geringere Detailtiefe als die Werkstattmakros. Befehl: `c:ILS_ANGEBOT`. | -| `ils_angebot_module.lsp` | **Angebotsmodule** – Ergänzung zu `ils_angebot.lsp` für weitere vereinfachte Modultypen in der Angebotsphase. | -| `ils_sensor.lsp` | **Sensoren/Automation** – Einfügen von Sensor-Blöcken (Lichtschranken, Initiatoren) auf den Layer `ILS-AUTOMATION`. Fünf Varianten via Dialog. Befehl: `c:ILS_SENSOR`. | -| `ils_verb_str.lsp` | **Verbindungsstrukturen** – Verbindungs- und Strukturelemente (Profilverbinder, Winkelverbinder, Abhängungen) auf Layer `ILS-COMPONENTS`. Sieben Varianten via Dialog. Befehl: `c:ILS_VERB_STR`. | - ---- - -## HFS/ - -Makros für das HFS-Hängefördersystem (höhenverstellbares Fördersystem). - -| Datei | Beschreibung | -|---|---| -| `hfs_mod.lsp` | **HFS-Module** – Einfügen von HFS-Modulen (KM-Light, KM 3000, KM 5000, Hochlift, 2-Way-Modul, Hochlift-TUP, HP-Sort II) auf Layer `H-2`. Dialog mit Vorschau-Slide je Modul. Befehl: `c:HFS_MOD`. | - ---- - -## Spinnerei/alt/ - -Ältere Makros für Spinnerei-Anlagen (Putzstationen). Nur zur Referenz archiviert. - -| Datei | Beschreibung | -|---|---| -| `pu1pu2.lsp` | **Putzstationen PU1/PU2** – Komplexes Makro für Reib­rad­angetriebene Putzstationen (PU2 = mit Antrieb, PU1 = ohne). Konfigurierbar: Spulenanzahl, Teilung (150/165 mm), Drehrichtung (Uhr/Gegenuhr), Fuß-Konfiguration (zurück, entgegen, verbunden, ohne). Optional: Gerüst (2″-Säulen, RT 80/80, DRT 80), Motor (RA1/RA2), Bemaßung. Zählt automatisch Kleinteile (Rohrschellen, Bogenschellen). Befehl: `c:PU1PU2`. | - ---- - -## Gemeinsame Muster (Grundlage für `Lisp/ssg_*.lsp`) - -Alle Makros teilen diese wiederkehrenden Muster, die in die Standardbibliotheken überführt wurden: - -| Muster | Quelle | Standardbibliothek | -|---|---|---| -| Systemvariablen sichern/wiederherstellen | `ssg.lsp` `pstart`/`pend`, `pu1pu2.lsp` `start`/`schluss` | `ssg_core.lsp` → `ssg-start`/`ssg-end` | -| Fehlerhandler mit Aufräumen | `ssg.lsp` `errhan` | `ssg_core.lsp` → `ssg-errhan` | -| Ja/Nein-Abfrage | `ssg.lsp` `ques` | `ssg_core.lsp` → `ssg-ques` | -| Attribute setzen (nach INSERT) | `ssg.lsp` `ATTRIBUTE-AENDERN` | `ssg_core.lsp` → `ssg-attrib-set`, `ssg-attrib-set-many` | -| Attribut per Handle suchen | `ssg.lsp` `suchen-aendern` | `ssg_core.lsp` → `ssg-attrib-by-handle` | -| Eindeutiger Blockname (Pos + Zeit) | `ssg.lsp` `bl-name` | `ssg_core.lsp` → `ssg-make-blockname` | -| Block aus Auswahlsatz erzeugen | `ssg.lsp` `mach-block` | `ssg_core.lsp` → `ssg-make-block` | -| Layer anlegen und aktivieren | alle ILS2100-Dateien | `ssg_core.lsp` → `ssg-make-layer` | -| DCL-Dialog mit Vorschaubild | alle ILS2100-Dateien | `ssg_dialog.lsp` → `ssg-dia-show-slide`, `ssg-modul-dialog` | -| Layer-Operationen interaktiv | `laymr14.lsp` | `ssg_layer.lsp` → `c:SSG-Layer*` | diff --git a/lib/export_csv.py b/lib/export_csv.py index 1feab4d..65f7b50 100644 --- a/lib/export_csv.py +++ b/lib/export_csv.py @@ -84,15 +84,27 @@ def build_gerade_merkmale(block): def build_kreisel_merkmale(block): + attribs = block.get("attribs", {}) + abstand_mm = attribs.get("ABSTAND", "2300") + try: + abstand_m = str(round(float(abstand_mm) / 1000.0, 2)) + except (ValueError, TypeError): + abstand_m = "2.3" + hoehe_mm = attribs.get("HOEHE", "0") + try: + hoehe_m = str(round(float(hoehe_mm) / 1000.0, 2)) + except (ValueError, TypeError): + hoehe_m = "0" return { - "Abstand (Kreiselachse A - Kreiselachse) in Meter": "3", - "Anzahl der Separatoren": "2", - "Kreiselart": "Standard", - "Anzahl der Scanner": "0", - "Anzahl der Rampen": "0", - "Höhe in m": "2", - "Drehrichtung": "UZS", - "Drehung": block.get("rotation", 0.0) + "Abstand (Kreiselachse A - Kreiselachse) in Meter": abstand_m, + "Anzahl der Separatoren": attribs.get("N_SEPARATOREN", "2"), + "Kreiselart": attribs.get("KREISELART", "STANDARD"), + "Anzahl der Scanner": attribs.get("N_SCANNER", "0"), + "Anzahl der Rampen": attribs.get("N_RAMPEN", "0"), + "Höhe in m": hoehe_m, + "Drehrichtung": attribs.get("DREHRICHTUNG", "UZS"), + "Drehung": block.get("rotation", 0.0), + "Name": attribs.get("NAME", ""), } @@ -100,7 +112,6 @@ def build_kreisel_merkmale(block): # Bekannte Blocknamen # --------------------------------------------------------------------------- -KREISEL_BLOCKS = {"AN8", "SP8"} SKIP_BLOCKS = {"K1", "K2", "K3", "K4", "KS_EIN", "KS_AUS"} @@ -182,8 +193,8 @@ def process_blocks(blocks, lookup): }) continue - # ILS Kreisel - if bname in KREISEL_BLOCKS: + # ILS Kreisel (Compound-Bloecke mit Praefix KR_) + if bname.startswith("KR_"): elem_nr += 1 kreisel_count += 1 items.append({ diff --git a/lib/export_sivas.py b/lib/export_sivas.py index b1e7a3f..e3eaefa 100644 --- a/lib/export_sivas.py +++ b/lib/export_sivas.py @@ -104,21 +104,33 @@ def build_gerade_merkmale(block): def build_kreisel_merkmale(block): - """Merkmale-JSON fuer einen ILS Kreisel.""" + """Merkmale-JSON fuer einen ILS Kreisel (liest Attribute aus Block).""" + attribs = block.get("attribs", {}) + abstand_mm = attribs.get("ABSTAND", "2300") + try: + abstand_m = str(round(float(abstand_mm) / 1000.0, 2)) + except (ValueError, TypeError): + abstand_m = "2.3" + hoehe_mm = attribs.get("HOEHE", "0") + try: + hoehe_m = str(round(float(hoehe_mm) / 1000.0, 2)) + except (ValueError, TypeError): + hoehe_m = "0" return { - "Abstand (Kreiselachse A - Kreiselachse) in Meter": "3", - "Anzahl der Separatoren": "2", - "Kreiselart": "Standard", - "Anzahl der Scanner": "0", - "Anzahl der Rampen": "0", - "Höhe in m": "2", - "Drehrichtung": "UZS", - "Drehung": block.get("rotation", 0.0) + "Abstand (Kreiselachse A - Kreiselachse) in Meter": abstand_m, + "Anzahl der Separatoren": attribs.get("N_SEPARATOREN", "2"), + "Kreiselart": attribs.get("KREISELART", "STANDARD"), + "Anzahl der Scanner": attribs.get("N_SCANNER", "0"), + "Anzahl der Rampen": attribs.get("N_RAMPEN", "0"), + "Höhe in m": hoehe_m, + "Drehrichtung": attribs.get("DREHRICHTUNG", "UZS"), + "Drehung": block.get("rotation", 0.0), + "Name": attribs.get("NAME", ""), } # --- Bekannte Blocknamen fuer nicht-Omniflo Elemente --- -KREISEL_BLOCKS = {"AN8", "SP8"} +## Kreisel-Bloecke werden ueber Praefix "KR_" erkannt (siehe process_blocks) VARIO_BLOCKS = { "AUS_Element_links", "EIN_Element_links", @@ -243,8 +255,8 @@ def process_blocks(blocks, lookup): counters["gesamtlaenge_ap110"] += 2000.0 continue - # ILS Kreisel - if bname in KREISEL_BLOCKS: + # ILS Kreisel (Compound-Bloecke mit Praefix KR_) + if bname.startswith("KR_"): elem_nr += 1 kreisel_count += 1 items.append({ @@ -255,10 +267,19 @@ def process_blocks(blocks, lookup): "anzahl": 1, "merkmale": build_kreisel_merkmale(block) }) + attribs = block.get("attribs", {}) counters["anzahl_kreisel"] += 1 - counters["sep_kreisel_ohne_pin"] += 2 - counters["laengen_kreisel"] += 3.0 - counters["anzahl_separatoren"] += 2 + n_sep = int(attribs.get("N_SEPARATOREN", "2") or "2") + kreiselart = attribs.get("KREISELART", "STANDARD") + if kreiselart == "PIN": + counters["anzahl_kreisel_pinband"] += 1 + counters["sep_kreisel_pin"] += n_sep + else: + counters["sep_kreisel_ohne_pin"] += n_sep + abstand_mm = float(attribs.get("ABSTAND", "2300") or "2300") + counters["laengen_kreisel"] += abstand_mm / 1000.0 + counters["anzahl_separatoren"] += n_sep + counters["anzahl_scanner"] += int(attribs.get("N_SCANNER", "0") or "0") if counters["anzahl_streckengruppen"] == 0: counters["anzahl_streckengruppen"] = 1 continue diff --git a/menu/SSG_LIB.mnu b/menu/SSG_LIB.mnu index e68a852..f64b2a8 100644 --- a/menu/SSG_LIB.mnu +++ b/menu/SSG_LIB.mnu @@ -6,6 +6,7 @@ [->Kreisel-Module] [Einfuegen]^C^CKreiselInsert [Verbinden]^C^CKreiselConnect +[Bearbeiten]^C^CKreiselEdit [<-Eckrad]^C^CILS_Eckrad [->Zusatzmodul] [BTMT-Beladung]^C^CILS_BTMT_Beladung diff --git a/tests/ILS_test.lsp b/tests/ILS_test.lsp new file mode 100644 index 0000000..e540bcc --- /dev/null +++ b/tests/ILS_test.lsp @@ -0,0 +1,99 @@ +;; ============================================================ +;; ILS_test.lsp - Automatisierter ILS Kreisel-Test +;; +;; Oeffnet ILStest.dxf, erzeugt 5 Kreisel per draw-module +;; (gleiche Kernfunktion wie KreiselConnect/KreiselInsert), +;; exportiert CSV und speichert. +;; +;; Voraussetzung: SSG_LIB muss geladen sein (ssg_load.lsp). +;; ============================================================ + +(defun c:ILSTEST ( / test-pfad dxf-pfad abstand z-hoehe) + + (princ "\n========== ILS TEST START ==========") + + (setq test-pfad (getenv "DXFM_TESTS")) + (if (null test-pfad) + (progn (princ "\nFEHLER: DXFM_TESTS nicht gesetzt!") (exit)) + ) + + ;; DXF oeffnen (erzeugt durch create_ILStest_dxf.py) + (setq dxf-pfad (strcat test-pfad "/ILStest.dxf")) + (if (not (findfile dxf-pfad)) + (progn (princ (strcat "\nFEHLER: " dxf-pfad " nicht gefunden!")) (exit)) + ) + (command "_.OPEN" dxf-pfad) + + ;; Konstanten fuer die Geometrie + ;; Linien: H1 bei Y=0, H2 bei Y=5000, V1 bei X=0, V2 bei X=5000 + ;; Alle auf Z=2500, je 2000mm lang + ;; Kreiseldurchmesser=800 -> Abstand = Linienabstand - Durchmesser + (setq abstand (- 5000.0 *kreisel-durchmesser*)) ;; 4200mm + (setq z-hoehe 2500.0) + + (ssg-start "ILS TEST" '(("OSMODE") ("CECOLOR") ("ATTREQ") ("ATTDIA"))) + (setvar "OSMODE" 0) + (setvar "ATTREQ" 0) + (setvar "ATTDIA" 0) + + ;; ---- Kreisel 1: Horizontal, oben->unten (90°), STANDARD ---- + ;; AN-Punkt auf H2 (Y=5000), SP-Richtung nach unten (Y=0) + ;; Rotation 270° = von oben nach unten + (princ "\n[TEST] Kreisel 1: Horizontal oben->unten, STANDARD") + (draw-module (list 500.0 5000.0 z-hoehe) + abstand 270.0 + (list (cons "KREISELART" "STANDARD") + (cons "NAME" "TEST_H_ObenUnten"))) + + ;; ---- Kreisel 2: Horizontal, unten->oben (270°), PIN ---- + ;; AN-Punkt auf H1 (Y=0), SP-Richtung nach oben (Y=5000) + ;; Rotation 90° = von unten nach oben + (princ "\n[TEST] Kreisel 2: Horizontal unten->oben, PIN") + (draw-module (list 1500.0 0.0 z-hoehe) + abstand 90.0 + (list (cons "KREISELART" "PIN") + (cons "NAME" "TEST_H_UntenOben"))) + + ;; ---- Kreisel 3: Vertikal, links->rechts (0°), PIN ---- + ;; AN-Punkt auf V1 (X=0), SP-Richtung nach rechts (X=5000) + ;; Rotation 0° = von links nach rechts + (princ "\n[TEST] Kreisel 3: Vertikal links->rechts, PIN") + (draw-module (list 0.0 500.0 z-hoehe) + abstand 0.0 + (list (cons "KREISELART" "PIN") + (cons "NAME" "TEST_V_LinksRechts"))) + + ;; ---- Kreisel 4: Vertikal, rechts->links (180°), STANDARD ---- + ;; AN-Punkt auf V2 (X=5000), SP-Richtung nach links (X=0) + ;; Rotation 180° = von rechts nach links + (princ "\n[TEST] Kreisel 4: Vertikal rechts->links, STANDARD") + (draw-module (list 5000.0 1500.0 z-hoehe) + abstand 180.0 + (list (cons "KREISELART" "STANDARD") + (cons "NAME" "TEST_V_RechtsLinks"))) + + ;; ---- Kreisel 5: KreiselInsert-Equivalent ---- + ;; Position 3000/3000/2000, 6000mm lang, PIN, 10 Grad + (princ "\n[TEST] Kreisel 5: Insert 3000/3000/2000, 6000mm, PIN, 10°") + (draw-module (list 3000.0 3000.0 2000.0) + 6000.0 10.0 + (list (cons "KREISELART" "PIN") + (cons "NAME" "TEST_Insert"))) + + (ssg-end) + + ;; Speichern als DXF + (command "_.SAVEAS" "DXF" (strcat test-pfad "/ILStest.dxf") "_Y") + (princ "\n[TEST] DXF gespeichert.") + + ;; Export CSV (nutzt csv:run-export aus tests.lsp) + ;; Ergebnisse landen in DXFM_RESULTS + (princ "\n[TEST] Starte CSV-Export...") + (csv:run-export "ILSTEST" "export_csv.py" "ILStest_export.csv") + + (princ "\n========== ILS TEST ENDE ==========") + (princ) +) + +(princ "\nILS_test.lsp geladen. Befehl: ILSTEST") +(princ) diff --git a/tests/ILS_test.scr b/tests/ILS_test.scr new file mode 100644 index 0000000..2e7bf73 --- /dev/null +++ b/tests/ILS_test.scr @@ -0,0 +1,5 @@ +(load (strcat (getenv "DXFM_LISP") "/on_start.lsp")) +_.OPEN +(strcat (getenv "DXFM_TESTS") "/ILStest.dxf") +(load (strcat (getenv "DXFM_TESTS") "/ILS_test.lsp")) +ILSTEST diff --git a/tests/ILStest.dxf b/tests/ILStest.dxf new file mode 100644 index 0000000..4fa6746 --- /dev/null +++ b/tests/ILStest.dxf @@ -0,0 +1,3174 @@ + 0 +SECTION + 2 +HEADER + 9 +$ACADVER + 1 +AC1032 + 9 +$ACADMAINTVER + 90 +4 + 9 +$DWGCODEPAGE + 3 +ANSI_1252 + 9 +$LASTSAVEDBY + 1 +ezdxf + 9 +$REQUIREDVERSIONS +160 +0 + 9 +$INSBASE + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$EXTMIN + 10 +1e+20 + 20 +1e+20 + 30 +1e+20 + 9 +$EXTMAX + 10 +-1e+20 + 20 +-1e+20 + 30 +-1e+20 + 9 +$LIMMIN + 10 +0.0 + 20 +0.0 + 9 +$LIMMAX + 10 +420.0 + 20 +297.0 + 9 +$ORTHOMODE + 70 +0 + 9 +$REGENMODE + 70 +1 + 9 +$FILLMODE + 70 +1 + 9 +$QTEXTMODE + 70 +0 + 9 +$MIRRTEXT + 70 +1 + 9 +$LTSCALE + 40 +1.0 + 9 +$ATTMODE + 70 +1 + 9 +$TEXTSIZE + 40 +2.5 + 9 +$TRACEWID + 40 +1.0 + 9 +$TEXTSTYLE + 7 +Standard + 9 +$CLAYER + 8 +0 + 9 +$CELTYPE + 6 +ByLayer + 9 +$CECOLOR + 62 +256 + 9 +$CELTSCALE + 40 +1.0 + 9 +$DISPSILH + 70 +0 + 9 +$DIMSCALE + 40 +1.0 + 9 +$DIMASZ + 40 +2.5 + 9 +$DIMEXO + 40 +0.625 + 9 +$DIMDLI + 40 +3.75 + 9 +$DIMRND + 40 +0.0 + 9 +$DIMDLE + 40 +0.0 + 9 +$DIMEXE + 40 +1.25 + 9 +$DIMTP + 40 +0.0 + 9 +$DIMTM + 40 +0.0 + 9 +$DIMTXT + 40 +2.5 + 9 +$DIMCEN + 40 +2.5 + 9 +$DIMTSZ + 40 +0.0 + 9 +$DIMTOL + 70 +0 + 9 +$DIMLIM + 70 +0 + 9 +$DIMTIH + 70 +0 + 9 +$DIMTOH + 70 +0 + 9 +$DIMSE1 + 70 +0 + 9 +$DIMSE2 + 70 +0 + 9 +$DIMTAD + 70 +1 + 9 +$DIMZIN + 70 +8 + 9 +$DIMBLK + 1 + + 9 +$DIMASO + 70 +1 + 9 +$DIMSHO + 70 +1 + 9 +$DIMPOST + 1 + + 9 +$DIMAPOST + 1 + + 9 +$DIMALT + 70 +0 + 9 +$DIMALTD + 70 +3 + 9 +$DIMALTF + 40 +0.03937007874 + 9 +$DIMLFAC + 40 +1.0 + 9 +$DIMTOFL + 70 +1 + 9 +$DIMTVP + 40 +0.0 + 9 +$DIMTIX + 70 +0 + 9 +$DIMSOXD + 70 +0 + 9 +$DIMSAH + 70 +0 + 9 +$DIMBLK1 + 1 + + 9 +$DIMBLK2 + 1 + + 9 +$DIMSTYLE + 2 +ISO-25 + 9 +$DIMCLRD + 70 +0 + 9 +$DIMCLRE + 70 +0 + 9 +$DIMCLRT + 70 +0 + 9 +$DIMTFAC + 40 +1.0 + 9 +$DIMGAP + 40 +0.625 + 9 +$DIMJUST + 70 +0 + 9 +$DIMSD1 + 70 +0 + 9 +$DIMSD2 + 70 +0 + 9 +$DIMTOLJ + 70 +0 + 9 +$DIMTZIN + 70 +8 + 9 +$DIMALTZ + 70 +0 + 9 +$DIMALTTZ + 70 +0 + 9 +$DIMUPT + 70 +0 + 9 +$DIMDEC + 70 +2 + 9 +$DIMTDEC + 70 +2 + 9 +$DIMALTU + 70 +2 + 9 +$DIMALTTD + 70 +3 + 9 +$DIMTXSTY + 7 +Standard + 9 +$DIMAUNIT + 70 +0 + 9 +$DIMADEC + 70 +0 + 9 +$DIMALTRND + 40 +0.0 + 9 +$DIMAZIN + 70 +0 + 9 +$DIMDSEP + 70 +44 + 9 +$DIMATFIT + 70 +3 + 9 +$DIMFRAC + 70 +0 + 9 +$DIMLDRBLK + 1 + + 9 +$DIMLUNIT + 70 +2 + 9 +$DIMLWD + 70 +-2 + 9 +$DIMLWE + 70 +-2 + 9 +$DIMTMOVE + 70 +0 + 9 +$DIMFXL + 40 +1.0 + 9 +$DIMFXLON + 70 +0 + 9 +$DIMJOGANG + 40 +0.785398163397 + 9 +$DIMTFILL + 70 +0 + 9 +$DIMTFILLCLR + 70 +0 + 9 +$DIMARCSYM + 70 +0 + 9 +$DIMLTYPE + 6 + + 9 +$DIMLTEX1 + 6 + + 9 +$DIMLTEX2 + 6 + + 9 +$DIMTXTDIRECTION + 70 +0 + 9 +$LUNITS + 70 +2 + 9 +$LUPREC + 70 +4 + 9 +$SKETCHINC + 40 +1.0 + 9 +$FILLETRAD + 40 +10.0 + 9 +$AUNITS + 70 +0 + 9 +$AUPREC + 70 +2 + 9 +$MENU + 1 +. + 9 +$ELEVATION + 40 +0.0 + 9 +$PELEVATION + 40 +0.0 + 9 +$THICKNESS + 40 +0.0 + 9 +$LIMCHECK + 70 +0 + 9 +$CHAMFERA + 40 +0.0 + 9 +$CHAMFERB + 40 +0.0 + 9 +$CHAMFERC + 40 +0.0 + 9 +$CHAMFERD + 40 +0.0 + 9 +$SKPOLY + 70 +0 + 9 +$TDCREATE + 40 +2461181.0330439815 + 9 +$TDUCREATE + 40 +2458532.153996898 + 9 +$TDUPDATE + 40 +2461181.0330439815 + 9 +$TDUUPDATE + 40 +2458532.1544311 + 9 +$TDINDWG + 40 +0.0 + 9 +$TDUSRTIMER + 40 +0.0 + 9 +$USRTIMER + 70 +1 + 9 +$ANGBASE + 50 +0.0 + 9 +$ANGDIR + 70 +0 + 9 +$PDMODE + 70 +0 + 9 +$PDSIZE + 40 +0.0 + 9 +$PLINEWID + 40 +0.0 + 9 +$SPLFRAME + 70 +0 + 9 +$SPLINETYPE + 70 +6 + 9 +$SPLINESEGS + 70 +8 + 9 +$HANDSEED + 5 +36 + 9 +$SURFTAB1 + 70 +6 + 9 +$SURFTAB2 + 70 +6 + 9 +$SURFTYPE + 70 +6 + 9 +$SURFU + 70 +6 + 9 +$SURFV + 70 +6 + 9 +$UCSBASE + 2 + + 9 +$UCSNAME + 2 + + 9 +$UCSORG + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSXDIR + 10 +1.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSYDIR + 10 +0.0 + 20 +1.0 + 30 +0.0 + 9 +$UCSORTHOREF + 2 + + 9 +$UCSORTHOVIEW + 70 +0 + 9 +$UCSORGTOP + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGBOTTOM + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGLEFT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGRIGHT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGFRONT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGBACK + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSBASE + 2 + + 9 +$PUCSNAME + 2 + + 9 +$PUCSORG + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSXDIR + 10 +1.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSYDIR + 10 +0.0 + 20 +1.0 + 30 +0.0 + 9 +$PUCSORTHOREF + 2 + + 9 +$PUCSORTHOVIEW + 70 +0 + 9 +$PUCSORGTOP + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGBOTTOM + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGLEFT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGRIGHT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGFRONT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGBACK + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$USERI1 + 70 +0 + 9 +$USERI2 + 70 +0 + 9 +$USERI3 + 70 +0 + 9 +$USERI4 + 70 +0 + 9 +$USERI5 + 70 +0 + 9 +$USERR1 + 40 +0.0 + 9 +$USERR2 + 40 +0.0 + 9 +$USERR3 + 40 +0.0 + 9 +$USERR4 + 40 +0.0 + 9 +$USERR5 + 40 +0.0 + 9 +$WORLDVIEW + 70 +1 + 9 +$SHADEDGE + 70 +3 + 9 +$SHADEDIF + 70 +70 + 9 +$TILEMODE + 70 +1 + 9 +$MAXACTVP + 70 +64 + 9 +$PINSBASE + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PLIMCHECK + 70 +0 + 9 +$PEXTMIN + 10 +1e+20 + 20 +1e+20 + 30 +1e+20 + 9 +$PEXTMAX + 10 +-1e+20 + 20 +-1e+20 + 30 +-1e+20 + 9 +$PLIMMIN + 10 +0.0 + 20 +0.0 + 9 +$PLIMMAX + 10 +420.0 + 20 +297.0 + 9 +$UNITMODE + 70 +0 + 9 +$VISRETAIN + 70 +1 + 9 +$PLINEGEN + 70 +0 + 9 +$PSLTSCALE + 70 +1 + 9 +$TREEDEPTH + 70 +3020 + 9 +$CMLSTYLE + 2 +Standard + 9 +$CMLJUST + 70 +0 + 9 +$CMLSCALE + 40 +20.0 + 9 +$PROXYGRAPHICS + 70 +1 + 9 +$MEASUREMENT + 70 +1 + 9 +$CELWEIGHT +370 +-1 + 9 +$ENDCAPS +280 +0 + 9 +$JOINSTYLE +280 +0 + 9 +$LWDISPLAY +290 +0 + 9 +$INSUNITS + 70 +6 + 9 +$HYPERLINKBASE + 1 + + 9 +$STYLESHEET + 1 + + 9 +$XEDIT +290 +1 + 9 +$CEPSNTYPE +380 +0 + 9 +$PSTYLEMODE +290 +1 + 9 +$FINGERPRINTGUID + 2 +{49398050-CF96-40FD-9CA1-CB4526AAE4CA} + 9 +$VERSIONGUID + 2 +{E9422FBF-5189-4DA2-8E37-FC263FADDE93} + 9 +$EXTNAMES +290 +1 + 9 +$PSVPSCALE + 40 +0.0 + 9 +$OLESTARTUP +290 +0 + 9 +$SORTENTS +280 +127 + 9 +$INDEXCTL +280 +0 + 9 +$HIDETEXT +280 +1 + 9 +$XCLIPFRAME +280 +1 + 9 +$HALOGAP +280 +0 + 9 +$OBSCOLOR + 70 +257 + 9 +$OBSLTYPE +280 +0 + 9 +$INTERSECTIONDISPLAY +280 +0 + 9 +$INTERSECTIONCOLOR + 70 +257 + 9 +$DIMASSOC +280 +2 + 9 +$PROJECTNAME + 1 + + 9 +$CAMERADISPLAY +290 +0 + 9 +$LENSLENGTH + 40 +50.0 + 9 +$CAMERAHEIGHT + 40 +0.0 + 9 +$STEPSPERSEC + 40 +24.0 + 9 +$STEPSIZE + 40 +100.0 + 9 +$3DDWFPREC + 40 +2.0 + 9 +$PSOLWIDTH + 40 +0.005 + 9 +$PSOLHEIGHT + 40 +0.08 + 9 +$LOFTANG1 + 40 +1.570796326795 + 9 +$LOFTANG2 + 40 +1.570796326795 + 9 +$LOFTMAG1 + 40 +0.0 + 9 +$LOFTMAG2 + 40 +0.0 + 9 +$LOFTPARAM + 70 +7 + 9 +$LOFTNORMALS +280 +1 + 9 +$LATITUDE + 40 +37.795 + 9 +$LONGITUDE + 40 +-122.394 + 9 +$NORTHDIRECTION + 40 +0.0 + 9 +$TIMEZONE + 70 +-8000 + 9 +$LIGHTGLYPHDISPLAY +280 +1 + 9 +$TILEMODELIGHTSYNCH +280 +1 + 9 +$CMATERIAL +347 +20 + 9 +$SOLIDHIST +280 +0 + 9 +$SHOWHIST +280 +1 + 9 +$DWFFRAME +280 +2 + 9 +$DGNFRAME +280 +2 + 9 +$REALWORLDSCALE +290 +1 + 9 +$INTERFERECOLOR + 62 +256 + 9 +$CSHADOW +280 +0 + 9 +$SHADOWPLANELOCATION + 40 +0.0 + 0 +ENDSEC + 0 +SECTION + 2 +CLASSES + 0 +CLASS + 1 +ACDBDICTIONARYWDFLT + 2 +AcDbDictionaryWithDefault + 3 +ObjectDBX Classes + 90 +0 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +SUN + 2 +AcDbSun + 3 +SCENEOE + 90 +1153 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +VISUALSTYLE + 2 +AcDbVisualStyle + 3 +ObjectDBX Classes + 90 +4095 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +MATERIAL + 2 +AcDbMaterial + 3 +ObjectDBX Classes + 90 +1153 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +SCALE + 2 +AcDbScale + 3 +ObjectDBX Classes + 90 +1153 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +TABLESTYLE + 2 +AcDbTableStyle + 3 +ObjectDBX Classes + 90 +4095 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +MLEADERSTYLE + 2 +AcDbMLeaderStyle + 3 +ACDB_MLEADERSTYLE_CLASS + 90 +4095 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +DICTIONARYVAR + 2 +AcDbDictionaryVar + 3 +ObjectDBX Classes + 90 +0 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +CELLSTYLEMAP + 2 +AcDbCellStyleMap + 3 +ObjectDBX Classes + 90 +1152 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +MENTALRAYRENDERSETTINGS + 2 +AcDbMentalRayRenderSettings + 3 +SCENEOE + 90 +1024 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +ACDBDETAILVIEWSTYLE + 2 +AcDbDetailViewStyle + 3 +ObjectDBX Classes + 90 +1025 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +ACDBSECTIONVIEWSTYLE + 2 +AcDbSectionViewStyle + 3 +ObjectDBX Classes + 90 +1025 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +RASTERVARIABLES + 2 +AcDbRasterVariables + 3 +ISM + 90 +0 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +LAYOUT + 2 +AcDbLayout + 3 +ObjectDBX Classes + 90 +0 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +ACDBPLACEHOLDER + 2 +AcDbPlaceHolder + 3 +ObjectDBX Classes + 90 +0 + 91 +0 +280 +0 +281 +0 + 0 +ENDSEC + 0 +SECTION + 2 +TABLES + 0 +TABLE + 2 +VPORT + 5 +8 +330 +0 +100 +AcDbSymbolTable + 70 +1 + 0 +VPORT + 5 +23 +330 +8 +100 +AcDbSymbolTableRecord +100 +AcDbViewportTableRecord + 2 +*Active + 70 +0 + 10 +0.0 + 20 +0.0 + 11 +1.0 + 21 +1.0 + 12 +0.0 + 22 +0.0 + 13 +0.0 + 23 +0.0 + 14 +0.5 + 24 +0.5 + 15 +0.5 + 25 +0.5 + 16 +0.0 + 26 +0.0 + 36 +1.0 + 17 +0.0 + 27 +0.0 + 37 +0.0 + 40 +1000.0 + 41 +1.34 + 42 +50.0 + 43 +0.0 + 44 +0.0 + 50 +0.0 + 51 +0.0 + 71 +0 + 72 +1000 + 73 +1 + 74 +3 + 75 +0 + 76 +0 + 77 +0 + 78 +0 +281 +0 + 65 +0 +146 +0.0 + 0 +ENDTAB + 0 +TABLE + 2 +LTYPE + 5 +2 +330 +0 +100 +AcDbSymbolTable + 70 +3 + 0 +LTYPE + 5 +24 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +ByBlock + 70 +0 + 3 + + 72 +65 + 73 +0 + 40 +0.0 + 0 +LTYPE + 5 +25 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +ByLayer + 70 +0 + 3 + + 72 +65 + 73 +0 + 40 +0.0 + 0 +LTYPE + 5 +26 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +Continuous + 70 +0 + 3 + + 72 +65 + 73 +0 + 40 +0.0 + 0 +ENDTAB + 0 +TABLE + 2 +LAYER + 5 +1 +330 +0 +100 +AcDbSymbolTable + 70 +2 + 0 +LAYER + 5 +27 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +0 + 70 +0 + 62 +7 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +28 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +Defpoints + 70 +0 + 62 +7 + 6 +Continuous +290 +0 +370 +-3 +390 +13 +347 +21 + 0 +ENDTAB + 0 +TABLE + 2 +STYLE + 5 +5 +330 +0 +100 +AcDbSymbolTable + 70 +1 + 0 +STYLE + 5 +29 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbTextStyleTableRecord + 2 +Standard + 70 +0 + 40 +0.0 + 41 +1.0 + 50 +0.0 + 71 +0 + 42 +2.5 + 3 +txt + 4 + + 0 +ENDTAB + 0 +TABLE + 2 +VIEW + 5 +7 +330 +0 +100 +AcDbSymbolTable + 70 +0 + 0 +ENDTAB + 0 +TABLE + 2 +UCS + 5 +6 +330 +0 +100 +AcDbSymbolTable + 70 +0 + 0 +ENDTAB + 0 +TABLE + 2 +APPID + 5 +3 +330 +0 +100 +AcDbSymbolTable + 70 +3 + 0 +APPID + 5 +2A +330 +3 +100 +AcDbSymbolTableRecord +100 +AcDbRegAppTableRecord + 2 +ACAD + 70 +0 + 0 +APPID + 5 +33 +330 +3 +100 +AcDbSymbolTableRecord +100 +AcDbRegAppTableRecord + 2 +HATCHBACKGROUNDCOLOR + 70 +0 + 0 +APPID + 5 +34 +330 +3 +100 +AcDbSymbolTableRecord +100 +AcDbRegAppTableRecord + 2 +EZDXF + 70 +0 + 0 +ENDTAB + 0 +TABLE + 2 +DIMSTYLE + 5 +4 +330 +0 +100 +AcDbSymbolTable + 70 +1 +100 +AcDbDimStyleTable + 0 +DIMSTYLE +105 +2B +330 +4 +100 +AcDbSymbolTableRecord +100 +AcDbDimStyleTableRecord + 2 +Standard + 70 +0 + 40 +1.0 + 41 +2.5 + 42 +0.625 + 43 +3.75 + 44 +1.25 + 45 +0.0 + 46 +0.0 + 47 +0.0 + 48 +0.0 + 49 +2.5 +140 +2.5 +141 +2.5 +142 +0.0 +143 +0.03937007874 +144 +1.0 +145 +0.0 +146 +1.0 +147 +0.625 +148 +0.0 + 69 +0 + 70 +0 + 71 +0 + 72 +0 + 73 +0 + 74 +0 + 75 +0 + 76 +0 + 77 +1 + 78 +8 + 79 +3 +170 +0 +171 +3 +172 +1 +173 +0 +174 +0 +175 +0 +176 +0 +177 +0 +178 +0 +179 +2 +271 +2 +272 +2 +273 +2 +274 +3 +275 +0 +276 +0 +277 +2 +278 +44 +279 +0 +280 +0 +281 +0 +282 +0 +283 +0 +284 +8 +285 +0 +286 +0 +288 +0 +289 +3 +290 +0 +371 +-2 +372 +-2 + 0 +ENDTAB + 0 +TABLE + 2 +BLOCK_RECORD + 5 +9 +330 +0 +100 +AcDbSymbolTable + 70 +2 + 0 +BLOCK_RECORD + 5 +17 +330 +9 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*Model_Space +340 +1A + 70 +0 +280 +1 +281 +0 + 0 +BLOCK_RECORD + 5 +1B +330 +9 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*Paper_Space +340 +1E + 70 +0 +280 +1 +281 +0 + 0 +ENDTAB + 0 +ENDSEC + 0 +SECTION + 2 +BLOCKS + 0 +BLOCK + 5 +18 +330 +17 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +*Model_Space + 70 +0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +*Model_Space + 1 + + 0 +ENDBLK + 5 +19 +330 +17 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +1C +330 +1B +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +*Paper_Space + 70 +0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +*Paper_Space + 1 + + 0 +ENDBLK + 5 +1D +330 +1B +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +ENDSEC + 0 +SECTION + 2 +ENTITIES + 0 +LINE + 5 +2F +330 +17 +100 +AcDbEntity + 8 +S_LP + 62 +1 +100 +AcDbLine + 10 +0.0 + 20 +0.0 + 30 +2500.0 + 11 +2000.0 + 21 +0.0 + 31 +2500.0 + 0 +LINE + 5 +30 +330 +17 +100 +AcDbEntity + 8 +S_LP + 62 +1 +100 +AcDbLine + 10 +0.0 + 20 +5000.0 + 30 +2500.0 + 11 +2000.0 + 21 +5000.0 + 31 +2500.0 + 0 +LINE + 5 +31 +330 +17 +100 +AcDbEntity + 8 +S_LP + 62 +1 +100 +AcDbLine + 10 +0.0 + 20 +0.0 + 30 +2500.0 + 11 +0.0 + 21 +2000.0 + 31 +2500.0 + 0 +LINE + 5 +32 +330 +17 +100 +AcDbEntity + 8 +S_LP + 62 +1 +100 +AcDbLine + 10 +5000.0 + 20 +0.0 + 30 +2500.0 + 11 +5000.0 + 21 +2000.0 + 31 +2500.0 + 0 +ENDSEC + 0 +SECTION + 2 +OBJECTS + 0 +DICTIONARY + 5 +A +330 +0 +100 +AcDbDictionary +280 +0 +281 +1 + 3 +ACAD_COLOR +350 +B + 3 +ACAD_GROUP +350 +C + 3 +ACAD_LAYOUT +350 +D + 3 +ACAD_MATERIAL +350 +E + 3 +ACAD_MLEADERSTYLE +350 +F + 3 +ACAD_MLINESTYLE +350 +10 + 3 +ACAD_PLOTSETTINGS +350 +11 + 3 +ACAD_PLOTSTYLENAME +350 +12 + 3 +ACAD_SCALELIST +350 +14 + 3 +ACAD_TABLESTYLE +350 +15 + 3 +ACAD_VISUALSTYLE +350 +16 + 3 +EZDXF_META +350 +2D + 0 +DICTIONARY + 5 +B +330 +A +100 +AcDbDictionary +280 +0 +281 +1 + 0 +DICTIONARY + 5 +C +330 +A +100 +AcDbDictionary +280 +0 +281 +1 + 0 +DICTIONARY + 5 +D +330 +A +100 +AcDbDictionary +280 +0 +281 +1 + 3 +Model +350 +1A + 3 +Layout1 +350 +1E + 0 +DICTIONARY + 5 +E +330 +A +100 +AcDbDictionary +280 +0 +281 +1 + 3 +ByBlock +350 +1F + 3 +ByLayer +350 +20 + 3 +Global +350 +21 + 0 +DICTIONARY + 5 +F +330 +A +100 +AcDbDictionary +280 +0 +281 +1 + 3 +Standard +350 +2C + 0 +DICTIONARY + 5 +10 +330 +A +100 +AcDbDictionary +280 +0 +281 +1 + 3 +Standard +350 +22 + 0 +DICTIONARY + 5 +11 +330 +A +100 +AcDbDictionary +280 +0 +281 +1 + 0 +ACDBDICTIONARYWDFLT + 5 +12 +330 +A +100 +AcDbDictionary +280 +0 +281 +1 + 3 +Normal +350 +13 +100 +AcDbDictionaryWithDefault +340 +13 + 0 +ACDBPLACEHOLDER + 5 +13 +330 +12 + 0 +DICTIONARY + 5 +14 +330 +A +100 +AcDbDictionary +280 +0 +281 +1 + 0 +DICTIONARY + 5 +15 +330 +A +100 +AcDbDictionary +280 +0 +281 +1 + 0 +DICTIONARY + 5 +16 +330 +A +100 +AcDbDictionary +280 +0 +281 +1 + 0 +LAYOUT + 5 +1A +330 +D +100 +AcDbPlotSettings + 1 + + 4 +A3 + 6 + + 40 +7.5 + 41 +20.0 + 42 +7.5 + 43 +20.0 + 44 +420.0 + 45 +297.0 + 46 +0.0 + 47 +0.0 + 48 +0.0 + 49 +0.0 +140 +0.0 +141 +0.0 +142 +1.0 +143 +1.0 + 70 +1024 + 72 +1 + 73 +0 + 74 +5 + 7 + + 75 +16 + 76 +0 + 77 +2 + 78 +300 +147 +1.0 +148 +0.0 +149 +0.0 +100 +AcDbLayout + 1 +Model + 70 +1 + 71 +0 + 10 +0.0 + 20 +0.0 + 11 +420.0 + 21 +297.0 + 12 +0.0 + 22 +0.0 + 32 +0.0 + 14 +1e+20 + 24 +1e+20 + 34 +1e+20 + 15 +-1e+20 + 25 +-1e+20 + 35 +-1e+20 +146 +0.0 + 13 +0.0 + 23 +0.0 + 33 +0.0 + 16 +1.0 + 26 +0.0 + 36 +0.0 + 17 +0.0 + 27 +1.0 + 37 +0.0 + 76 +1 +330 +17 + 0 +LAYOUT + 5 +1E +330 +D +100 +AcDbPlotSettings + 1 + + 4 +A3 + 6 + + 40 +7.5 + 41 +20.0 + 42 +7.5 + 43 +20.0 + 44 +420.0 + 45 +297.0 + 46 +0.0 + 47 +0.0 + 48 +0.0 + 49 +0.0 +140 +0.0 +141 +0.0 +142 +1.0 +143 +1.0 + 70 +0 + 72 +1 + 73 +0 + 74 +5 + 7 + + 75 +16 + 76 +0 + 77 +2 + 78 +300 +147 +1.0 +148 +0.0 +149 +0.0 +100 +AcDbLayout + 1 +Layout1 + 70 +1 + 71 +1 + 10 +0.0 + 20 +0.0 + 11 +420.0 + 21 +297.0 + 12 +0.0 + 22 +0.0 + 32 +0.0 + 14 +1e+20 + 24 +1e+20 + 34 +1e+20 + 15 +-1e+20 + 25 +-1e+20 + 35 +-1e+20 +146 +0.0 + 13 +0.0 + 23 +0.0 + 33 +0.0 + 16 +1.0 + 26 +0.0 + 36 +0.0 + 17 +0.0 + 27 +1.0 + 37 +0.0 + 76 +1 +330 +1B + 0 +MATERIAL + 5 +1F +102 +{ACAD_REACTORS +330 +E +102 +} +330 +E +100 +AcDbMaterial + 1 +ByBlock + 2 + + 70 +0 + 40 +1.0 + 71 +1 + 41 +1.0 + 91 +-1023410177 + 42 +1.0 + 72 +1 + 3 + + 73 +1 + 74 +1 + 75 +1 + 44 +0.5 + 73 +0 + 45 +1.0 + 46 +1.0 + 77 +1 + 4 + + 78 +1 + 79 +1 +170 +1 + 48 +1.0 +171 +1 + 6 + +172 +1 +173 +1 +174 +1 +140 +1.0 +141 +1.0 +175 +1 + 7 + +176 +1 +177 +1 +178 +1 +143 +1.0 +179 +1 + 8 + +270 +1 +271 +1 +272 +1 +145 +1.0 +146 +1.0 +273 +1 + 9 + +274 +1 +275 +1 +276 +1 + 42 +1.0 + 72 +1 + 3 + + 73 +1 + 74 +1 + 75 +1 + 94 +63 + 0 +MATERIAL + 5 +20 +102 +{ACAD_REACTORS +330 +E +102 +} +330 +E +100 +AcDbMaterial + 1 +ByLayer + 2 + + 70 +0 + 40 +1.0 + 71 +1 + 41 +1.0 + 91 +-1023410177 + 42 +1.0 + 72 +1 + 3 + + 73 +1 + 74 +1 + 75 +1 + 44 +0.5 + 73 +0 + 45 +1.0 + 46 +1.0 + 77 +1 + 4 + + 78 +1 + 79 +1 +170 +1 + 48 +1.0 +171 +1 + 6 + +172 +1 +173 +1 +174 +1 +140 +1.0 +141 +1.0 +175 +1 + 7 + +176 +1 +177 +1 +178 +1 +143 +1.0 +179 +1 + 8 + +270 +1 +271 +1 +272 +1 +145 +1.0 +146 +1.0 +273 +1 + 9 + +274 +1 +275 +1 +276 +1 + 42 +1.0 + 72 +1 + 3 + + 73 +1 + 74 +1 + 75 +1 + 94 +63 + 0 +MATERIAL + 5 +21 +102 +{ACAD_REACTORS +330 +E +102 +} +330 +E +100 +AcDbMaterial + 1 +Global + 2 + + 70 +0 + 40 +1.0 + 71 +1 + 41 +1.0 + 91 +-1023410177 + 42 +1.0 + 72 +1 + 3 + + 73 +1 + 74 +1 + 75 +1 + 44 +0.5 + 73 +0 + 45 +1.0 + 46 +1.0 + 77 +1 + 4 + + 78 +1 + 79 +1 +170 +1 + 48 +1.0 +171 +1 + 6 + +172 +1 +173 +1 +174 +1 +140 +1.0 +141 +1.0 +175 +1 + 7 + +176 +1 +177 +1 +178 +1 +143 +1.0 +179 +1 + 8 + +270 +1 +271 +1 +272 +1 +145 +1.0 +146 +1.0 +273 +1 + 9 + +274 +1 +275 +1 +276 +1 + 42 +1.0 + 72 +1 + 3 + + 73 +1 + 74 +1 + 75 +1 + 94 +63 + 0 +MLINESTYLE + 5 +22 +102 +{ACAD_REACTORS +330 +10 +102 +} +330 +10 +100 +AcDbMlineStyle + 2 +Standard + 70 +0 + 3 + + 62 +256 + 51 +90.0 + 52 +90.0 + 71 +2 + 49 +0.5 + 62 +256 + 6 +BYLAYER + 49 +-0.5 + 62 +256 + 6 +BYLAYER + 0 +MLEADERSTYLE + 5 +2C +102 +{ACAD_REACTORS +330 +F +102 +} +330 +F +100 +AcDbMLeaderStyle +179 +2 +170 +2 +171 +1 +172 +0 + 90 +2 + 40 +0.0 + 41 +0.0 +173 +1 + 91 +-1056964608 + 92 +-2 +290 +1 + 42 +2.0 +291 +1 + 43 +8.0 + 3 +Standard + 44 +4.0 +300 + +342 +29 +174 +1 +175 +1 +176 +0 +178 +1 + 93 +-1056964608 + 45 +4.0 +292 +0 +297 +0 + 46 +4.0 + 94 +-1056964608 + 47 +1.0 + 49 +1.0 +140 +1.0 +294 +1 +141 +0.0 +177 +0 +142 +1.0 +295 +0 +296 +0 +143 +3.75 +271 +0 +272 +9 +273 +9 + 0 +DICTIONARY + 5 +2D +330 +A +100 +AcDbDictionary +281 +1 + 3 +CREATED_BY_EZDXF +350 +2E + 3 +WRITTEN_BY_EZDXF +350 +35 + 0 +DICTIONARYVAR + 5 +2E +330 +2D +100 +DictionaryVariables +280 +0 + 1 +1.4.1 @ 2026-05-19T22:47:35.388108+00:00 + 0 +DICTIONARYVAR + 5 +35 +330 +2D +100 +DictionaryVariables +280 +0 + 1 +1.4.1 @ 2026-05-19T22:47:35.388898+00:00 + 0 +ENDSEC + 0 +EOF diff --git a/tests/create_ILStest_dxf.py b/tests/create_ILStest_dxf.py new file mode 100644 index 0000000..5d2d7ed --- /dev/null +++ b/tests/create_ILStest_dxf.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +create_ILStest_dxf.py - Erzeugt die Basis-DXF fuer den ILS-Test. + +Erstellt 4 Linien als Grundlage fuer KreiselConnect: + - 2 horizontale Linien, 5000mm Abstand, je 2000mm lang, ab (0,0,2500) + - 2 vertikale Linien, 5000mm Abstand, je 2000mm lang, ab (0,0,2500) +""" + +import ezdxf +import sys +import os + + +def create_ils_test_dxf(output_path): + doc = ezdxf.new("R2018") + msp = doc.modelspace() + + z = 2500.0 + + # Horizontale Linienpaare (Abstand 5000mm in Y-Richtung) + # H1: (0,0,2500) -> (2000,0,2500) + msp.add_line((0, 0, z), (2000, 0, z), dxfattribs={"layer": "S_LP", "color": 1}) + # H2: (0,5000,2500) -> (2000,5000,2500) + msp.add_line((0, 5000, z), (2000, 5000, z), dxfattribs={"layer": "S_LP", "color": 1}) + + # Vertikale Linienpaare (Abstand 5000mm in X-Richtung) + # V1: (0,0,2500) -> (0,2000,2500) + msp.add_line((0, 0, z), (0, 2000, z), dxfattribs={"layer": "S_LP", "color": 1}) + # V2: (5000,0,2500) -> (5000,2000,2500) + msp.add_line((5000, 0, z), (5000, 2000, z), dxfattribs={"layer": "S_LP", "color": 1}) + + doc.saveas(output_path) + print(f"[ILStest] DXF erstellt: {output_path}") + return output_path + + +if __name__ == "__main__": + if len(sys.argv) > 1: + out = sys.argv[1] + else: + out = os.path.join(os.getenv("DXFM_TESTS", "tests"), "ILStest.dxf") + create_ils_test_dxf(out) diff --git a/tests/references/ILStest_export_ref.csv b/tests/references/ILStest_export_ref.csv new file mode 100644 index 0000000..c8c594c --- /dev/null +++ b/tests/references/ILStest_export_ref.csv @@ -0,0 +1,6 @@ +Elementnummer;TeileArt;TeileId;NachbarIds;Bezeichnung;Planquadrat;rotation;Merkmale +0;"ILS 2.0 Kreisel";"REF_PLACEHOLDER";;"Kreisel :1";"X:500.00 Y:5000.00";;{"Abstand (Kreiselachse A - Kreiselachse) in Meter": "4.2", "Anzahl der Separatoren": "2", "Kreiselart": "STANDARD", "Anzahl der Scanner": "0", "Anzahl der Rampen": "0", "Höhe in m": "2.5", "Drehrichtung": "UZS", "Drehung": 270, "Name": "TEST_H_ObenUnten"} +1;"ILS 2.0 Kreisel";"REF_PLACEHOLDER";;"Kreisel :2";"X:1500.00 Y:0.00";;{"Abstand (Kreiselachse A - Kreiselachse) in Meter": "4.2", "Anzahl der Separatoren": "2", "Kreiselart": "PIN", "Anzahl der Scanner": "0", "Anzahl der Rampen": "0", "Höhe in m": "2.5", "Drehrichtung": "UZS", "Drehung": 90, "Name": "TEST_H_UntenOben"} +2;"ILS 2.0 Kreisel";"REF_PLACEHOLDER";;"Kreisel :3";"X:0.00 Y:500.00";;{"Abstand (Kreiselachse A - Kreiselachse) in Meter": "4.2", "Anzahl der Separatoren": "2", "Kreiselart": "PIN", "Anzahl der Scanner": "0", "Anzahl der Rampen": "0", "Höhe in m": "2.5", "Drehrichtung": "UZS", "Drehung": 0, "Name": "TEST_V_LinksRechts"} +3;"ILS 2.0 Kreisel";"REF_PLACEHOLDER";;"Kreisel :4";"X:5000.00 Y:1500.00";;{"Abstand (Kreiselachse A - Kreiselachse) in Meter": "4.2", "Anzahl der Separatoren": "2", "Kreiselart": "STANDARD", "Anzahl der Scanner": "0", "Anzahl der Rampen": "0", "Höhe in m": "2.5", "Drehrichtung": "UZS", "Drehung": 180, "Name": "TEST_V_RechtsLinks"} +4;"ILS 2.0 Kreisel";"REF_PLACEHOLDER";;"Kreisel :5";"X:3000.00 Y:3000.00";;{"Abstand (Kreiselachse A - Kreiselachse) in Meter": "6.0", "Anzahl der Separatoren": "2", "Kreiselart": "PIN", "Anzahl der Scanner": "0", "Anzahl der Rampen": "0", "Höhe in m": "2.0", "Drehrichtung": "UZS", "Drehung": 10, "Name": "TEST_Insert"} diff --git a/tests/validate_tests.py b/tests/validate_tests.py new file mode 100644 index 0000000..80a8614 --- /dev/null +++ b/tests/validate_tests.py @@ -0,0 +1,232 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +validate_tests.py - Validiert ILS-Test Ergebnisse gegen Referenzdateien. + +Aufruf: + python validate_tests.py + +Prueft: + 1. export_raw.json: Anzahl und Typ der Bloecke + 2. ILStest_export.csv: Zeilenanzahl und Inhalte gegen Referenz + 3. ILStest.dxf: Existenz und KR_-Block-Anzahl +""" + +import json +import sys +import os +import csv + + +def load_json(path): + with open(path, "r", encoding="utf-8") as f: + return json.load(f) + + +def load_csv_lines(path): + """Laedt CSV und gibt Liste von Dicts zurueck (ohne Header).""" + with open(path, "r", encoding="utf-8") as f: + return f.read().strip().split("\n") + + +def validate_raw_json(results_dir): + """Prueft export_raw.json auf erwartete Kreisel-Bloecke.""" + raw_path = os.path.join(results_dir, "export_raw.json") + if not os.path.exists(raw_path): + return False, "export_raw.json nicht gefunden" + + blocks = load_json(raw_path) + kr_blocks = [b for b in blocks if b["block_name"].startswith("KR_")] + + errors = [] + + if len(kr_blocks) != 5: + errors.append(f"Erwartet 5 KR_-Bloecke, gefunden: {len(kr_blocks)}") + + # Pruefen ob alle Attribute haben + empty_attribs = [b for b in kr_blocks if not b.get("attribs")] + if empty_attribs: + errors.append(f"{len(empty_attribs)} Kreisel ohne Attribute: " + + ", ".join(b["block_name"] for b in empty_attribs)) + + # Pruefen ob erwartete Namen vorhanden + expected_names = { + "TEST_H_ObenUnten", "TEST_H_UntenOben", + "TEST_V_LinksRechts", "TEST_V_RechtsLinks", + "TEST_Insert" + } + found_names = set() + for b in kr_blocks: + attribs = b.get("attribs", {}) + name = attribs.get("NAME", "") + if name: + found_names.add(name) + missing = expected_names - found_names + if missing: + errors.append(f"Fehlende Kreisel-Namen: {missing}") + + # Pruefen der spezifischen Werte + for b in kr_blocks: + attribs = b.get("attribs", {}) + name = attribs.get("NAME", "") + + if name == "TEST_Insert": + if attribs.get("ABSTAND") != "6000": + errors.append(f"TEST_Insert: ABSTAND={attribs.get('ABSTAND')}, erwartet 6000") + if attribs.get("KREISELART") != "PIN": + errors.append(f"TEST_Insert: KREISELART={attribs.get('KREISELART')}, erwartet PIN") + if abs(b.get("rotation", 0) - 10.0) > 0.1: + errors.append(f"TEST_Insert: rotation={b.get('rotation')}, erwartet 10") + if abs(b.get("z", 0) - 2000.0) > 0.1: + errors.append(f"TEST_Insert: z={b.get('z')}, erwartet 2000") + + if name == "TEST_H_ObenUnten": + if attribs.get("KREISELART") != "STANDARD": + errors.append(f"TEST_H_ObenUnten: KREISELART={attribs.get('KREISELART')}, erwartet STANDARD") + if abs(b.get("rotation", 0) - 270.0) > 0.1: + errors.append(f"TEST_H_ObenUnten: rotation={b.get('rotation')}, erwartet 270") + + if name == "TEST_H_UntenOben": + if attribs.get("KREISELART") != "PIN": + errors.append(f"TEST_H_UntenOben: KREISELART={attribs.get('KREISELART')}, erwartet PIN") + + if name == "TEST_V_LinksRechts": + if attribs.get("KREISELART") != "PIN": + errors.append(f"TEST_V_LinksRechts: KREISELART={attribs.get('KREISELART')}, erwartet PIN") + if abs(b.get("rotation", 0) - 0.0) > 0.1: + errors.append(f"TEST_V_LinksRechts: rotation={b.get('rotation')}, erwartet 0") + + if name == "TEST_V_RechtsLinks": + if attribs.get("KREISELART") != "STANDARD": + errors.append(f"TEST_V_RechtsLinks: KREISELART={attribs.get('KREISELART')}, erwartet STANDARD") + + if errors: + return False, "export_raw.json Fehler:\n " + "\n ".join(errors) + return True, f"export_raw.json OK: {len(kr_blocks)} Kreisel mit Attributen" + + +def validate_csv(results_dir, references_dir): + """Prueft CSV gegen Referenz (Zeilenanzahl, Kreisel-Anzahl).""" + csv_path = os.path.join(results_dir, "ILStest_export.csv") + ref_path = os.path.join(references_dir, "ILStest_export_ref.csv") + + if not os.path.exists(csv_path): + return False, "ILStest_export.csv nicht gefunden" + + csv_lines = load_csv_lines(csv_path) + kreisel_lines = [l for l in csv_lines[1:] if "ILS 2.0 Kreisel" in l] + + errors = [] + + if len(kreisel_lines) != 5: + errors.append(f"Erwartet 5 Kreisel-Zeilen in CSV, gefunden: {len(kreisel_lines)}") + + # Gegen Referenz vergleichen (falls vorhanden) + if os.path.exists(ref_path): + ref_lines = load_csv_lines(ref_path) + ref_kreisel = [l for l in ref_lines[1:] if "ILS 2.0 Kreisel" in l] + + if len(kreisel_lines) != len(ref_kreisel): + errors.append(f"CSV hat {len(kreisel_lines)} Kreisel, Referenz hat {len(ref_kreisel)}") + + # Vergleiche Merkmale (ohne TeileId, da UUID) + for i, (act, ref) in enumerate(zip(kreisel_lines, ref_kreisel)): + # Merkmale extrahieren (letztes Feld) + act_parts = act.split(";") + ref_parts = ref.split(";") + if len(act_parts) >= 8 and len(ref_parts) >= 8: + act_merkmale = act_parts[-1] + ref_merkmale = ref_parts[-1] + if act_merkmale != ref_merkmale: + errors.append(f"Zeile {i+1} Merkmale unterschiedlich:\n" + f" IST: {act_merkmale}\n" + f" SOLL: {ref_merkmale}") + else: + errors.append(f"Referenz-CSV nicht gefunden: {ref_path} (erster Lauf?)") + + if errors: + return False, "CSV Fehler:\n " + "\n ".join(errors) + return True, f"CSV OK: {len(kreisel_lines)} Kreisel-Zeilen" + + +def validate_dxf(test_dir): + """Prueft ob ILStest.dxf existiert und KR_-Bloecke enthaelt.""" + dxf_path = os.path.join(test_dir, "ILStest.dxf") + if not os.path.exists(dxf_path): + return False, "ILStest.dxf nicht gefunden" + + # Einfache Textsuche nach KR_-Blocknamen im DXF + with open(dxf_path, "r", encoding="utf-8", errors="ignore") as f: + content = f.read() + + # Zaehle KR_-Blockreferenzen im ENTITIES-Bereich + entities_start = content.find("ENTITIES") + if entities_start < 0: + return False, "Kein ENTITIES-Bereich in DXF" + + entities_section = content[entities_start:] + kr_count = 0 + pos = 0 + while True: + pos = entities_section.find("\nKR_", pos) + if pos < 0: + break + kr_count += 1 + pos += 1 + + if kr_count < 5: + return False, f"Nur {kr_count} KR_-Referenzen in ENTITIES (erwartet mind. 5)" + + return True, f"DXF OK: {kr_count} KR_-Referenzen gefunden" + + +def main(): + if len(sys.argv) < 3: + print("Aufruf: python validate_tests.py ") + print(" results_dir = Ordner mit Testergebnissen (z.B. results/)") + print(" references_dir = Ordner mit Referenzdateien (z.B. tests/references/)") + sys.exit(1) + + results_dir = sys.argv[1] + references_dir = sys.argv[2] + test_dir = os.path.dirname(os.path.abspath(__file__)) + + print("=" * 60) + print("ILS Test Validierung") + print("=" * 60) + + all_ok = True + + # Test 1: export_raw.json + ok, msg = validate_raw_json(results_dir) + status = "PASS" if ok else "FAIL" + print(f"\n[{status}] {msg}") + if not ok: + all_ok = False + + # Test 2: CSV Export + ok, msg = validate_csv(results_dir, references_dir) + status = "PASS" if ok else "FAIL" + print(f"\n[{status}] {msg}") + if not ok: + all_ok = False + + # Test 3: DXF Datei + ok, msg = validate_dxf(test_dir) + status = "PASS" if ok else "FAIL" + print(f"\n[{status}] {msg}") + if not ok: + all_ok = False + + print("\n" + "=" * 60) + if all_ok: + print("ERGEBNIS: ALLE TESTS BESTANDEN") + else: + print("ERGEBNIS: TESTS FEHLGESCHLAGEN") + print("=" * 60) + + sys.exit(0 if all_ok else 1) + + +if __name__ == "__main__": + main()