[CHANGE] Verzeichnisse ILS 2d und 3d zusammengeführt und Funktionen entsprechend angepasst; TODO: Vario auf/ab Bögen schalten noch nicht korrekt zwischen 2d und 3d hin und her; TODO: Omniflo Verzeichnisse 2d/3d entsprechend genau so zusammenführen
This commit is contained in:
@@ -135,7 +135,7 @@ Werden via `bin/setenv.bat` gesetzt. Wichtigste:
|
|||||||
|
|
||||||
- AutoLISP-Funktionsnamen: `ssg-*` fuer Kernfunktionen, `C:BEFEHLSNAME` fuer User-Commands
|
- AutoLISP-Funktionsnamen: `ssg-*` fuer Kernfunktionen, `C:BEFEHLSNAME` fuer User-Commands
|
||||||
- Alle Texte in Dateien ohne Umlaute (ae, oe, ue statt ae, oe, ue)
|
- Alle Texte in Dateien ohne Umlaute (ae, oe, ue statt ae, oe, ue)
|
||||||
- Bloecke werden als DWG in `data/ils/` abgelegt, Block-Libraries als DXF in `data/block_libraries/`
|
- Bloecke werden als DWG **flach** in `data/ils/` abgelegt (Block-Libraries als DXF in `data/block_libraries/`). Die Dimension steckt seit dem Flach-Refactor im **Dateinamen bzw. Blocknamen** als Suffix `_2D`/`_3D` (z.B. `AN8_2D.dwg`, `Vario_Bogen_auf_3_TEF_rechts_3D.dwg`), damit 2D- und 3D-Variante gleichzeitig in einer Zeichnung stehen koennen. Zentrale Aufloesung: `ssg-ils-blockname[-dim]` / `ssg-ils-block-datei[-dim]` / `ssg-ils-block-laden[-dim]` in `ssg_core.lsp`. Ausnahmen ohne Suffix: `KS_EIN`/`KS_AUS`/`K1`-`K4` und die Wrapper-Bloecke `VF_*`/`GF_*`/`KREISEL_*`/`ECKRAD_*`. Alle Feature-Module (Kreisel, VarioFoerderer, Gefaellestrecke) folgen der aktuellen Dimension (`ssg-ils-dim-aktuell`: transienter Override `*ssg-ils-dim*` -> `DXFM_DIM`) mit automatischem 3D-Fallback, sodass 2D- und 3D-Aufbau funktionieren. (Die alten Unterordner `data/ils/2D` und `data/ils/3D` bleiben uebergangsweise als Quelle der Batch-/Attribut-Tools bestehen.)
|
||||||
- Komponentendaten (Masse, Sivas-IDs) liegen als JSON in `data/json/`
|
- Komponentendaten (Masse, Sivas-IDs) liegen als JSON in `data/json/`
|
||||||
- Sprache im Code und Kommentaren: Deutsch
|
- Sprache im Code und Kommentaren: Deutsch
|
||||||
|
|
||||||
|
|||||||
+30
-25
@@ -57,21 +57,21 @@
|
|||||||
(if (null *gf-L-ohne-as-es*) (setq *gf-L-ohne-as-es* nil))
|
(if (null *gf-L-ohne-as-es*) (setq *gf-L-ohne-as-es* nil))
|
||||||
(if (null *gf-sum-dz-bogen*) (setq *gf-sum-dz-bogen* 0.0))
|
(if (null *gf-sum-dz-bogen*) (setq *gf-sum-dz-bogen* 0.0))
|
||||||
|
|
||||||
;; DXFM_DIM lesen; 2D wird auf 3D korrigiert (Gefaellestrecke benoetigt Z-Geometrie)
|
;; Bloecke liegen seit dem Flach-Refactor direkt unter data/ils/ (die Dimension
|
||||||
(setq *gf-dxfm-dim* (getenv "DXFM_DIM"))
|
;; steckt im Dateinamen bzw. Blocknamen als Suffix _2D/_3D, siehe ssg_core.lsp).
|
||||||
(if (or (not (= (type *gf-dxfm-dim*) 'STR)) (= *gf-dxfm-dim* "2D"))
|
;; Gefaellestrecke folgt der aktuellen Dimension (ssg-ils-dim-aktuell) mit
|
||||||
(setq *gf-dxfm-dim* "3D"))
|
;; 3D-Fallback; das Laden erfolgt zentral ueber ensure-block-loaded.
|
||||||
;; Block-Pfad: data/ils/3D/ wenn DXFM_DIM nicht gesetzt oder 2D
|
;; block-pfad dient nur noch der Info-Ausgabe (Basisverzeichnis).
|
||||||
(if (null block-pfad)
|
(if (null block-pfad)
|
||||||
(setq block-pfad
|
(setq block-pfad
|
||||||
(cond
|
(cond
|
||||||
((and (getenv "DXFMAKRO") (= (type (getenv "DXFMAKRO")) 'STR))
|
((and (getenv "DXFMAKRO") (= (type (getenv "DXFMAKRO")) 'STR))
|
||||||
(strcat (vl-string-right-trim "/" (vl-string-translate "\\" "/" (getenv "DXFMAKRO")))
|
(strcat (vl-string-right-trim "/" (vl-string-translate "\\" "/" (getenv "DXFMAKRO")))
|
||||||
"/data/ils/" *gf-dxfm-dim* "/"))
|
"/data/ils/"))
|
||||||
((and (boundp '*ssg-lisp-pfad*) (= (type *ssg-lisp-pfad*) 'STR)
|
((and (boundp '*ssg-lisp-pfad*) (= (type *ssg-lisp-pfad*) 'STR)
|
||||||
(vl-string-search "/Lisp" *ssg-lisp-pfad*))
|
(vl-string-search "/Lisp" *ssg-lisp-pfad*))
|
||||||
(strcat (substr *ssg-lisp-pfad* 1 (vl-string-search "/Lisp" *ssg-lisp-pfad*))
|
(strcat (substr *ssg-lisp-pfad* 1 (vl-string-search "/Lisp" *ssg-lisp-pfad*))
|
||||||
"/data/ils/" *gf-dxfm-dim* "/"))
|
"/data/ils/"))
|
||||||
(t nil)
|
(t nil)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -116,13 +116,18 @@
|
|||||||
;; --- Block als einzelne DWG-Datei aus block-pfad laden ---
|
;; --- Block als einzelne DWG-Datei aus block-pfad laden ---
|
||||||
(if (null (car (atoms-family 1 '("ENSURE-BLOCK-LOADED"))))
|
(if (null (car (atoms-family 1 '("ENSURE-BLOCK-LOADED"))))
|
||||||
(defun ensure-block-loaded (blockname / )
|
(defun ensure-block-loaded (blockname / )
|
||||||
;; Zentraler Loader (aktuelle Dimension + 3D-Fallback, Neudefinition bei
|
;; Zentraler Loader (flache Ablage). Laedt den Block in der AKTUELLEN Dimension
|
||||||
;; Dimensionswechsel). Meldung nur bei Fehlschlag.
|
;; (ssg-ils-dim-aktuell: *ssg-ils-dim*-Override -> DXFM_DIM) mit automatischem
|
||||||
|
;; 3D-Fallback, sodass 2D- und 3D-Aufbau gleichermassen funktionieren. Laedt
|
||||||
|
;; den Block unter seinem effektiven, dim-suffigierten Namen und GIBT DIESEN
|
||||||
|
;; ZURUECK, damit Aufrufer ihn zum Einfuegen verwenden. Meldung nur bei
|
||||||
|
;; Fehlschlag.
|
||||||
(if (not (ssg-ils-block-laden blockname))
|
(if (not (ssg-ils-block-laden blockname))
|
||||||
(progn
|
(progn
|
||||||
(princ (ssg-textf "gf-fehler-blockdatei-fehlt" (list blockname)))
|
(princ (ssg-textf "gf-fehler-blockdatei-fehlt" (list blockname)))
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
(ssg-ils-blockname blockname)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -239,7 +244,7 @@
|
|||||||
block-obj temp-obj ks-data ks-ein ks-aus
|
block-obj temp-obj ks-data ks-ein ks-aus
|
||||||
rad-h chv shv ein-x ein-y ein-z dx-loc dy-loc dz-loc
|
rad-h chv shv ein-x ein-y ein-z dx-loc dy-loc dz-loc
|
||||||
offset ausgang)
|
offset ausgang)
|
||||||
(ensure-block-loaded blockname)
|
(setq blockname (ensure-block-loaded blockname))
|
||||||
(if (not (tblsearch "BLOCK" blockname))
|
(if (not (tblsearch "BLOCK" blockname))
|
||||||
(progn
|
(progn
|
||||||
(princ (ssg-textf "gf-fehler-block-fehlt" (list blockname)))
|
(princ (ssg-textf "gf-fehler-block-fehlt" (list blockname)))
|
||||||
@@ -302,7 +307,7 @@
|
|||||||
(if (<= laenge 0.1)
|
(if (<= laenge 0.1)
|
||||||
(progn (princ (ssg-text "gf-laenge-null-uebersprungen")) startpunkt)
|
(progn (princ (ssg-text "gf-laenge-null-uebersprungen")) startpunkt)
|
||||||
(progn
|
(progn
|
||||||
(ensure-block-loaded blockname)
|
(setq blockname (ensure-block-loaded blockname))
|
||||||
(setq scale (/ (float laenge) 1000.0))
|
(setq scale (/ (float laenge) 1000.0))
|
||||||
(setq rad-v (* (float winkel) (/ pi 180.0)))
|
(setq rad-v (* (float winkel) (/ pi 180.0)))
|
||||||
(setq rad-h (* (float hz) (/ pi 180.0)))
|
(setq rad-h (* (float hz) (/ pi 180.0)))
|
||||||
@@ -343,7 +348,7 @@
|
|||||||
ks-ein-raw ks-aus-raw
|
ks-ein-raw ks-aus-raw
|
||||||
ein-x ein-y ein-z aus-x aus-y aus-z
|
ein-x ein-y ein-z aus-x aus-y aus-z
|
||||||
dx dz ins-pt)
|
dx dz ins-pt)
|
||||||
(ensure-block-loaded blockname)
|
(setq blockname (ensure-block-loaded blockname))
|
||||||
(setq rad-v (* (float winkel) (/ pi 180.0)))
|
(setq rad-v (* (float winkel) (/ pi 180.0)))
|
||||||
(setq rad-h (* (float hz) (/ pi 180.0)))
|
(setq rad-h (* (float hz) (/ pi 180.0)))
|
||||||
(setq chv (cos rad-h) shv (sin rad-h) cvv (cos rad-v) svv (sin rad-v))
|
(setq chv (cos rad-h) shv (sin rad-h) cvv (cos rad-v) svv (sin rad-v))
|
||||||
@@ -440,18 +445,18 @@
|
|||||||
|
|
||||||
;; --- Bibliothek initialisieren: AS/ES-Masse aus einzelnen DWG-Dateien extrahieren ---
|
;; --- Bibliothek initialisieren: AS/ES-Masse aus einzelnen DWG-Dateien extrahieren ---
|
||||||
(if (null (car (atoms-family 1 '("GF-INIT-BIBLIOTHEK"))))
|
(if (null (car (atoms-family 1 '("GF-INIT-BIBLIOTHEK"))))
|
||||||
(defun gf-init-bibliothek ( / temp-obj ks-data ks-ein ks-aus)
|
(defun gf-init-bibliothek ( / temp-obj ks-data ks-ein ks-aus as-blk es-blk)
|
||||||
(if *lib-initialized*
|
(if *lib-initialized*
|
||||||
t
|
t
|
||||||
(progn
|
(progn
|
||||||
;; AS-Block laden und Masse extrahieren
|
;; AS-Block laden und Masse extrahieren (effektiver, dim-suffigierter Name)
|
||||||
(ensure-block-loaded "AS_Element_90_links")
|
(setq as-blk (ensure-block-loaded "AS_Element_90_links"))
|
||||||
(if (tblsearch "BLOCK" "AS_Element_90_links")
|
(if (tblsearch "BLOCK" as-blk)
|
||||||
(progn
|
(progn
|
||||||
(setq temp-obj
|
(setq temp-obj
|
||||||
(vla-InsertBlock modelspace
|
(vla-InsertBlock modelspace
|
||||||
(vlax-3D-point '(0 0 0))
|
(vlax-3D-point '(0 0 0))
|
||||||
"AS_Element_90_links" 1.0 1.0 1.0 0))
|
as-blk 1.0 1.0 1.0 0))
|
||||||
(setq ks-data (extract-ks-from-block temp-obj))
|
(setq ks-data (extract-ks-from-block temp-obj))
|
||||||
(vla-Delete temp-obj)
|
(vla-Delete temp-obj)
|
||||||
(setq ks-ein (cadr (assoc "KS_EIN" ks-data)))
|
(setq ks-ein (cadr (assoc "KS_EIN" ks-data)))
|
||||||
@@ -465,14 +470,14 @@
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
;; ES-Block laden und Masse extrahieren
|
;; ES-Block laden und Masse extrahieren (effektiver, dim-suffigierter Name)
|
||||||
(ensure-block-loaded "ES_Element_90_links")
|
(setq es-blk (ensure-block-loaded "ES_Element_90_links"))
|
||||||
(if (tblsearch "BLOCK" "ES_Element_90_links")
|
(if (tblsearch "BLOCK" es-blk)
|
||||||
(progn
|
(progn
|
||||||
(setq temp-obj
|
(setq temp-obj
|
||||||
(vla-InsertBlock modelspace
|
(vla-InsertBlock modelspace
|
||||||
(vlax-3D-point '(0 0 0))
|
(vlax-3D-point '(0 0 0))
|
||||||
"ES_Element_90_links" 1.0 1.0 1.0 0))
|
es-blk 1.0 1.0 1.0 0))
|
||||||
(setq ks-data (extract-ks-from-block temp-obj))
|
(setq ks-data (extract-ks-from-block temp-obj))
|
||||||
(vla-Delete temp-obj)
|
(vla-Delete temp-obj)
|
||||||
(setq ks-ein (cadr (assoc "KS_EIN" ks-data)))
|
(setq ks-ein (cadr (assoc "KS_EIN" ks-data)))
|
||||||
@@ -517,7 +522,7 @@
|
|||||||
(if (<= laenge 0.1)
|
(if (<= laenge 0.1)
|
||||||
(progn (princ (ssg-text "gf-laenge-null-uebersprungen")) pt)
|
(progn (princ (ssg-text "gf-laenge-null-uebersprungen")) pt)
|
||||||
(progn
|
(progn
|
||||||
(ensure-block-loaded blockname)
|
(setq blockname (ensure-block-loaded blockname))
|
||||||
(setq scale (/ (float laenge) 1000.0))
|
(setq scale (/ (float laenge) 1000.0))
|
||||||
(setq chz (cos (* (float hz-grad) (/ pi 180.0))))
|
(setq chz (cos (* (float hz-grad) (/ pi 180.0))))
|
||||||
(setq shz (sin (* (float hz-grad) (/ pi 180.0))))
|
(setq shz (sin (* (float hz-grad) (/ pi 180.0))))
|
||||||
@@ -549,7 +554,7 @@
|
|||||||
;; dz: vertikaler Offset im Block (mm, 0 fuer gerade Bloecke)
|
;; dz: vertikaler Offset im Block (mm, 0 fuer gerade Bloecke)
|
||||||
(defun gf-insert-hz-with-ks (blockname pt hz-grad vert-grad dx dz /
|
(defun gf-insert-hz-with-ks (blockname pt hz-grad vert-grad dx dz /
|
||||||
chz shz cv sv block-obj endpunkt)
|
chz shz cv sv block-obj endpunkt)
|
||||||
(ensure-block-loaded blockname)
|
(setq blockname (ensure-block-loaded blockname))
|
||||||
(setq chz (cos (* (float hz-grad) (/ pi 180.0))))
|
(setq chz (cos (* (float hz-grad) (/ pi 180.0))))
|
||||||
(setq shz (sin (* (float hz-grad) (/ pi 180.0))))
|
(setq shz (sin (* (float hz-grad) (/ pi 180.0))))
|
||||||
(setq cv (cos (* (float vert-grad) (/ pi 180.0))))
|
(setq cv (cos (* (float vert-grad) (/ pi 180.0))))
|
||||||
@@ -581,7 +586,7 @@
|
|||||||
temp-obj block-obj ks-data ks-ein ks-aus
|
temp-obj block-obj ks-data ks-ein ks-aus
|
||||||
p-ein p-aus p-ein-rot p-aus-rot
|
p-ein p-aus p-ein-rot p-aus-rot
|
||||||
offset ausgang)
|
offset ausgang)
|
||||||
(ensure-block-loaded blockname)
|
(setq blockname (ensure-block-loaded blockname))
|
||||||
(if (not (tblsearch "BLOCK" blockname))
|
(if (not (tblsearch "BLOCK" blockname))
|
||||||
(progn
|
(progn
|
||||||
(princ (ssg-textf "gf-fehler-block-fehlt-ausruf" (list blockname)))
|
(princ (ssg-textf "gf-fehler-block-fehlt-ausruf" (list blockname)))
|
||||||
@@ -672,7 +677,7 @@
|
|||||||
blockname temp-obj ks-data
|
blockname temp-obj ks-data
|
||||||
ks-ein-pos ks-aus-pos dx dz)
|
ks-ein-pos ks-aus-pos dx dz)
|
||||||
(setq blockname (gf-bogen-blockname bwinkel bseite))
|
(setq blockname (gf-bogen-blockname bwinkel bseite))
|
||||||
(ensure-block-loaded blockname)
|
(setq blockname (ensure-block-loaded blockname))
|
||||||
(if (not (tblsearch "BLOCK" blockname))
|
(if (not (tblsearch "BLOCK" blockname))
|
||||||
(progn
|
(progn
|
||||||
(princ (ssg-textf "gf-warnung-block-fehlt-nullwerte" (list blockname)))
|
(princ (ssg-textf "gf-warnung-block-fehlt-nullwerte" (list blockname)))
|
||||||
|
|||||||
+13
-11
@@ -19,17 +19,19 @@
|
|||||||
;; DXFM_DIM sicher lesen (type-Guard gegen nicht-String Rueckgabewerte)
|
;; DXFM_DIM sicher lesen (type-Guard gegen nicht-String Rueckgabewerte)
|
||||||
(setq *ki-dxfm-dim* (getenv "DXFM_DIM"))
|
(setq *ki-dxfm-dim* (getenv "DXFM_DIM"))
|
||||||
(if (not (= (type *ki-dxfm-dim*) 'STR)) (setq *ki-dxfm-dim* "3D"))
|
(if (not (= (type *ki-dxfm-dim*) 'STR)) (setq *ki-dxfm-dim* "3D"))
|
||||||
;; Modul-eigener Block-Pfad (nicht in globalem block-pfad speichern,
|
;; Modul-eigener Block-Pfad: seit dem Flach-Refactor liegen alle Bloecke direkt
|
||||||
;; da GF/VF stets 3D-Pfad benoetigen, KI aber DXFM_DIM-abhaengig)
|
;; unter data/ils/ (die Dimension steckt jetzt im Dateinamen, z.B. AN8_2D.dwg).
|
||||||
|
;; KI ist DXFM_DIM-abhaengig (*ki-dxfm-dim*); der Dateiname wird an der Einfuege-
|
||||||
|
;; stelle mit dem Suffix gebildet.
|
||||||
(setq *block-path*
|
(setq *block-path*
|
||||||
(cond
|
(cond
|
||||||
((and (getenv "DXFMAKRO") (= (type (getenv "DXFMAKRO")) 'STR))
|
((and (getenv "DXFMAKRO") (= (type (getenv "DXFMAKRO")) 'STR))
|
||||||
(strcat (vl-string-right-trim "/" (vl-string-translate "\\" "/" (getenv "DXFMAKRO")))
|
(strcat (vl-string-right-trim "/" (vl-string-translate "\\" "/" (getenv "DXFMAKRO")))
|
||||||
"/data/ils/" *ki-dxfm-dim* "/"))
|
"/data/ils/"))
|
||||||
((and (boundp '*ssg-lisp-pfad*) (= (type *ssg-lisp-pfad*) 'STR)
|
((and (boundp '*ssg-lisp-pfad*) (= (type *ssg-lisp-pfad*) 'STR)
|
||||||
(vl-string-search "/Lisp" *ssg-lisp-pfad*))
|
(vl-string-search "/Lisp" *ssg-lisp-pfad*))
|
||||||
(strcat (substr *ssg-lisp-pfad* 1 (vl-string-search "/Lisp" *ssg-lisp-pfad*))
|
(strcat (substr *ssg-lisp-pfad* 1 (vl-string-search "/Lisp" *ssg-lisp-pfad*))
|
||||||
"/data/ils/" *ki-dxfm-dim* "/"))
|
"/data/ils/"))
|
||||||
(t
|
(t
|
||||||
(princ (ssg-text "kreisel-warn-blockpfad"))
|
(princ (ssg-text "kreisel-warn-blockpfad"))
|
||||||
nil)
|
nil)
|
||||||
@@ -415,11 +417,11 @@
|
|||||||
(setq lastEnt nil) ;; Zeichnung ist leer
|
(setq lastEnt nil) ;; Zeichnung ist leer
|
||||||
)
|
)
|
||||||
|
|
||||||
;; AN8 Kreis (Antriebsstation) bei (radius, 0)
|
;; AN8 Kreis (Antriebsstation) bei (radius, 0) - Dim-Suffix im Dateinamen
|
||||||
(command "_.INSERT" (strcat *block-path* "AN8.dwg") (list radius 0.0 0.0) 1 1 0)
|
(command "_.INSERT" (strcat *block-path* "AN8_" *ki-dxfm-dim* ".dwg") (list radius 0.0 0.0) 1 1 0)
|
||||||
|
|
||||||
;; SP8 Kreis (Spannstation) bei (radius+abstand, 0)
|
;; SP8 Kreis (Spannstation) bei (radius+abstand, 0) - Dim-Suffix im Dateinamen
|
||||||
(command "_.INSERT" (strcat *block-path* "SP8.dwg") (list (+ radius abstand) 0.0 0.0) 1 1 0)
|
(command "_.INSERT" (strcat *block-path* "SP8_" *ki-dxfm-dim* ".dwg") (list (+ radius abstand) 0.0 0.0) 1 1 0)
|
||||||
|
|
||||||
;; Tangenten auf Layer S_LP
|
;; Tangenten auf Layer S_LP
|
||||||
(ssg-make-layer "S_LP" "7" T)
|
(ssg-make-layer "S_LP" "7" T)
|
||||||
@@ -1217,9 +1219,9 @@
|
|||||||
(setq lastEnt nil)
|
(setq lastEnt nil)
|
||||||
)
|
)
|
||||||
|
|
||||||
;; AN8 Block einfuegen bei (0,0) - Eckrad ist ein einzelner Kreis
|
;; AN8 Block einfuegen bei (0,0) - Eckrad ist ein einzelner Kreis (Dim-Suffix im Dateinamen)
|
||||||
(dbgp (strcat "INSERT Block: " *block-path* "AN8.dwg"))
|
(dbgp (strcat "INSERT Block: " *block-path* "AN8_" *ki-dxfm-dim* ".dwg"))
|
||||||
(command "_.INSERT" (strcat *block-path* "AN8.dwg") (list 0.0 0.0 0.0) 1 1 0)
|
(command "_.INSERT" (strcat *block-path* "AN8_" *ki-dxfm-dim* ".dwg") (list 0.0 0.0 0.0) 1 1 0)
|
||||||
|
|
||||||
;; Unsichtbare Attribut-Definitionen erzeugen
|
;; Unsichtbare Attribut-Definitionen erzeugen
|
||||||
(dbgp (strcat "Erzeuge " (itoa (length *eckrad-attrib-defs*)) " Attribut-Definitionen"))
|
(dbgp (strcat "Erzeuge " (itoa (length *eckrad-attrib-defs*)) " Attribut-Definitionen"))
|
||||||
|
|||||||
@@ -178,7 +178,9 @@
|
|||||||
(setq dim-neu (if (equal (strcase (getenv "DXFM_DIM")) "3D") "2D" "3D"))
|
(setq dim-neu (if (equal (strcase (getenv "DXFM_DIM")) "3D") "2D" "3D"))
|
||||||
(setq basis (getenv "DXFMAKRO"))
|
(setq basis (getenv "DXFMAKRO"))
|
||||||
(setenv "DXFM_DIM" dim-neu)
|
(setenv "DXFM_DIM" dim-neu)
|
||||||
(setenv "DXFM_BLOCKS" (strcat basis "\\data\\ils\\" dim-neu))
|
;; ILS-Bloecke liegen flach unter data\ils (Dimension im Dateinamen) - kein
|
||||||
|
;; <DIM>-Unterordner mehr. Omniflo behaelt die alte Struktur.
|
||||||
|
(setenv "DXFM_BLOCKS" (strcat basis "\\data\\ils"))
|
||||||
(setenv "DXFM_OMNIFLO" (strcat basis "\\data\\omniflo\\" dim-neu))
|
(setenv "DXFM_OMNIFLO" (strcat basis "\\data\\omniflo\\" dim-neu))
|
||||||
(princ (ssg-textf "dim-switch-modus" (list dim-neu)))
|
(princ (ssg-textf "dim-switch-modus" (list dim-neu)))
|
||||||
(princ (ssg-textf "dim-switch-blocks" (list (getenv "DXFM_BLOCKS"))))
|
(princ (ssg-textf "dim-switch-blocks" (list (getenv "DXFM_BLOCKS"))))
|
||||||
|
|||||||
+85
-44
@@ -329,71 +329,112 @@
|
|||||||
"/data/ils/"))
|
"/data/ils/"))
|
||||||
(t nil)))
|
(t nil)))
|
||||||
|
|
||||||
;; Liefert den vollstaendigen .dwg-Pfad zu einem ILS-Block anhand der
|
;; Effektiver Blockname zu einem ROH-Namen fuer eine EXPLIZITE Dimension.
|
||||||
;; aktuellen Dimension (siehe ssg-ils-dim-aktuell). Faellt automatisch auf die
|
;; Seit dem Flach-Refactor tragen Blocknamen das Dimensionssuffix _2D/_3D, damit
|
||||||
;; 3D-Variante zurueck, wenn der Block in der aktuellen Dimension (noch) nicht
|
;; 2D- und 3D-Variante gleichzeitig in einer Zeichnung existieren koennen
|
||||||
|
;; (Datei = Blockname + ".dwg", flach unter data/ils/). Ausnahmen ohne Suffix:
|
||||||
|
;; - Koordinaten-/Subbloecke KS_EIN/KS_AUS/KSYS_*/K1..K4 (exakte Export-Matches),
|
||||||
|
;; - bereits mit _2D/_3D versehene Namen (kein doppeltes Anhaengen).
|
||||||
|
(defun ssg-ils-blockname-dim (roh dim / )
|
||||||
|
(cond
|
||||||
|
((wcmatch (strcase roh) "KS_EIN,KS_AUS,KSYS_EIN,KSYS_AUS,K1,K2,K3,K4") roh)
|
||||||
|
((wcmatch (strcase roh) "*_2D,*_3D") roh)
|
||||||
|
(t (strcat roh "_" dim))))
|
||||||
|
|
||||||
|
;; Effektiver Blockname fuer die AKTUELLE Dimension (siehe ssg-ils-dim-aktuell).
|
||||||
|
(defun ssg-ils-blockname (roh / )
|
||||||
|
(ssg-ils-blockname-dim roh (ssg-ils-dim-aktuell)))
|
||||||
|
|
||||||
|
;; Liefert den vollstaendigen .dwg-Pfad (flache Ablage data/ils/<blockname>.dwg)
|
||||||
|
;; zu einem ROH-Blocknamen fuer eine EXPLIZITE Dimension. Faellt automatisch auf
|
||||||
|
;; die 3D-Variante zurueck, wenn die Datei der gewuenschten Dimension (noch) nicht
|
||||||
;; existiert - so nutzen z.B. Vario_Motorstation/-Umlenkstation im 2D-Modus
|
;; existiert - so nutzen z.B. Vario_Motorstation/-Umlenkstation im 2D-Modus
|
||||||
;; vorlaeufig die 3D-Datei.
|
;; vorlaeufig die 3D-Datei.
|
||||||
;; Rueckgabe: Pfad-String oder nil (Block weder in Dim noch in 3D gefunden).
|
;; Rueckgabe: Pfad-String oder nil (Block weder in Dim noch in 3D gefunden).
|
||||||
(defun ssg-ils-block-datei (blockname / basis dim datei datei3d)
|
(defun ssg-ils-block-datei-dim (blockname dim / basis datei datei3d)
|
||||||
(setq basis (ssg-ils-basis))
|
(setq basis (ssg-ils-basis))
|
||||||
(if (null basis)
|
(if (null basis)
|
||||||
nil
|
nil
|
||||||
(progn
|
(progn
|
||||||
(setq dim (ssg-ils-dim-aktuell))
|
(setq datei (strcat basis (ssg-ils-blockname-dim blockname dim) ".dwg"))
|
||||||
(setq datei (strcat basis dim "/" blockname ".dwg"))
|
(setq datei3d (strcat basis (ssg-ils-blockname-dim blockname "3D") ".dwg"))
|
||||||
(setq datei3d (strcat basis "3D/" blockname ".dwg"))
|
|
||||||
(cond
|
(cond
|
||||||
((findfile datei) datei) ; aktuelle Dimension
|
((findfile datei) datei) ; gewuenschte Dimension
|
||||||
((findfile datei3d) datei3d) ; Fallback: 3D-Variante
|
((findfile datei3d) datei3d) ; Fallback: 3D-Variante
|
||||||
(t nil))
|
(t nil))
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
;; Merker: welche Dimension ("2D"/"3D") aktuell je Blockname geladen ist.
|
;; Wie ssg-ils-block-datei-dim, aber fuer die AKTUELLE Dimension.
|
||||||
;; (blockname . dim). Verhindert unnoetiges Neu-Definieren bei gleicher Dim.
|
(defun ssg-ils-block-datei (blockname / )
|
||||||
(if (not (boundp '*ssg-ils-dim-geladen*)) (setq *ssg-ils-dim-geladen* '()))
|
(ssg-ils-block-datei-dim blockname (ssg-ils-dim-aktuell)))
|
||||||
|
|
||||||
;; Stellt sicher, dass die Block-DEFINITION 'blockname' in der AKTUELLEN
|
;; Stellt sicher, dass die Block-DEFINITION zum ROH-Namen 'blockname' in einer
|
||||||
;; Dimension geladen ist. Weil 2D- und 3D-Datei denselben Blocknamen tragen,
|
;; EXPLIZITEN Dimension geladen ist. Blocknamen tragen das Suffix _2D/_3D
|
||||||
;; muss bei einem Dimensionswechsel aus der Zieldatei NEU definiert werden -
|
;; (siehe ssg-ils-blockname-dim), daher koennen 2D und 3D gleichzeitig existieren.
|
||||||
;; sonst bliebe die alte Definition (z.B. 3D) erhalten.
|
;; WICHTIG: Ein bereits vorhandener gleichnamiger Block wird IMMER neu aus der
|
||||||
;; Rueckgabe: T (geladen/vorhanden) oder nil (Datei nicht gefunden).
|
;; Datei definiert (Redefine), damit sein Inhalt zur aktuellen Datei passt. Sonst
|
||||||
(defun ssg-ils-block-laden (blockname / dim exists datei temp-obj osm areq adia)
|
;; bliebe eine veraltete Definition (z.B. mit falschem 2D/3D-Inhalt aus einer
|
||||||
(setq dim (ssg-ils-dim-aktuell))
|
;; frueheren Sitzung) bestehen und wuerde wiederverwendet.
|
||||||
(setq exists (tblsearch "BLOCK" blockname))
|
;; Rueckgabe: effektiver (suffigierter) Blockname oder nil (Datei nicht gefunden).
|
||||||
(cond
|
(defun ssg-ils-block-laden-dim (blockname dim / eff datei base temp-obj osm areq adia)
|
||||||
;; Schon in der gewuenschten Dimension geladen -> nichts tun.
|
(setq eff (ssg-ils-blockname-dim blockname dim))
|
||||||
((and exists (equal (cdr (assoc blockname *ssg-ils-dim-geladen*)) dim)) T)
|
(setq datei (ssg-ils-block-datei-dim blockname dim))
|
||||||
(t
|
|
||||||
(setq datei (ssg-ils-block-datei blockname))
|
|
||||||
(if (null datei)
|
(if (null datei)
|
||||||
nil
|
nil
|
||||||
(progn
|
(progn
|
||||||
(if exists
|
(setq base (vl-filename-base datei))
|
||||||
;; Existiert (evtl. andere Dimension) -> aus Datei NEU definieren.
|
;; --- TEMP-DIAGNOSE (nach Klaerung wieder entfernen) ---
|
||||||
;; "_Y" beantwortet die Redefine-Abfrage; danach wird die eigentliche
|
(princ (strcat "\n[SSG-DBG] roh=" blockname " dim=" dim
|
||||||
;; Einfuegung abgebrochen (die Neudefinition ist bereits wirksam).
|
" eff=" eff
|
||||||
(progn
|
" existiert-vorher=" (if (tblsearch "BLOCK" eff) "JA" "NEIN")
|
||||||
(setq areq (getvar "ATTREQ") adia (getvar "ATTDIA") osm (getvar "OSMODE"))
|
" datei=" datei))
|
||||||
(setvar "ATTREQ" 0)(setvar "ATTDIA" 0)(setvar "OSMODE" 0)
|
;; --- ENDE TEMP-DIAGNOSE ---
|
||||||
(command "_.-INSERT" (strcat blockname "=" datei) "_Y")
|
;; Sichtbar machen, wenn die Datei der gewuenschten Dimension fehlt und der
|
||||||
;; laufende Einfuegung abbrechen (Neudefinition ist bereits wirksam)
|
;; 3D-Fallback greift (dann traegt der Block den gewuenschten Namen, aber
|
||||||
(if (> (getvar "CMDACTIVE") 0) (command))
|
;; den Inhalt der anderen Dimension = potenziell falsche Referenz). Jeder
|
||||||
(if (> (getvar "CMDACTIVE") 0) (command))
|
;; aktiv eingefuegte Block sollte in BEIDEN Dimensionen vorliegen.
|
||||||
(setvar "OSMODE" osm)(setvar "ATTREQ" areq)(setvar "ATTDIA" adia))
|
(if (not (= (strcase base) (strcase eff)))
|
||||||
;; Neu -> bewaehrter COM-Weg (kein Redefine-Prompt).
|
(princ (strcat "\n[SSG] WARNUNG: Blockdatei '" eff
|
||||||
|
".dwg' fehlt - Fallback auf '" base
|
||||||
|
".dwg' (Inhalt evtl. andere Dimension).")))
|
||||||
|
(if (and (not (tblsearch "BLOCK" eff)) (= (strcase base) (strcase eff)))
|
||||||
|
;; Neu UND Dateiname == Blockname -> COM-Weg (kein Prompt).
|
||||||
(progn
|
(progn
|
||||||
(setq temp-obj (vla-InsertBlock modelspace
|
(setq temp-obj (vla-InsertBlock modelspace
|
||||||
(vlax-3D-point '(0 0 0)) datei 1.0 1.0 1.0 0))
|
(vlax-3D-point '(0 0 0)) datei 1.0 1.0 1.0 0))
|
||||||
(vla-Delete temp-obj)))
|
(vla-Delete temp-obj))
|
||||||
;; Merker aktualisieren (alten Dim-Eintrag dieses Blocks ersetzen).
|
;; Sonst (Block existiert bereits ODER Dateiname != Blockname wg.
|
||||||
(setq *ssg-ils-dim-geladen*
|
;; 3D-Fallback) -> aus Datei (neu) definieren. "_Y" beantwortet die
|
||||||
(cons (cons blockname dim)
|
;; Redefine-Abfrage, falls der Block bereits vorhanden ist; danach die
|
||||||
(vl-remove-if (function (lambda (p) (equal (car p) blockname)))
|
;; laufende Einfuegung sofort abbrechen (Definition ist bereits wirksam).
|
||||||
*ssg-ils-dim-geladen*)))
|
(progn
|
||||||
T)))))
|
(setq areq (getvar "ATTREQ") adia (getvar "ATTDIA") osm (getvar "OSMODE"))
|
||||||
|
(setvar "ATTREQ" 0)(setvar "ATTDIA" 0)(setvar "OSMODE" 0)
|
||||||
|
(if (tblsearch "BLOCK" eff)
|
||||||
|
(command "_.-INSERT" (strcat eff "=" datei) "_Y") ; Redefine bestehender Block
|
||||||
|
(command "_.-INSERT" (strcat eff "=" datei))) ; neu (kein Redefine-Prompt)
|
||||||
|
(if (> (getvar "CMDACTIVE") 0) (command))
|
||||||
|
(if (> (getvar "CMDACTIVE") 0) (command))
|
||||||
|
(setvar "OSMODE" osm)(setvar "ATTREQ" areq)(setvar "ATTDIA" adia)))
|
||||||
|
;; --- TEMP-DIAGNOSE: verschachtelte Blocknamen in eff auflisten ---
|
||||||
|
(if (tblsearch "BLOCK" eff)
|
||||||
|
(progn
|
||||||
|
(princ (strcat "\n[SSG-DBG] nested in " eff ":"))
|
||||||
|
(vl-catch-all-apply
|
||||||
|
(function (lambda ()
|
||||||
|
(vlax-for e (vla-Item
|
||||||
|
(vla-get-Blocks (vla-get-ActiveDocument (vlax-get-acad-object)))
|
||||||
|
eff)
|
||||||
|
(if (= (vla-get-ObjectName e) "AcDbBlockReference")
|
||||||
|
(princ (strcat " [" (vla-get-Name e) "]")))))))))
|
||||||
|
;; --- ENDE TEMP-DIAGNOSE ---
|
||||||
|
eff)))
|
||||||
|
|
||||||
|
;; Wie ssg-ils-block-laden-dim, aber fuer die AKTUELLE Dimension.
|
||||||
|
(defun ssg-ils-block-laden (blockname / )
|
||||||
|
(ssg-ils-block-laden-dim blockname (ssg-ils-dim-aktuell)))
|
||||||
|
|
||||||
;; ------------------------------------------------------------
|
;; ------------------------------------------------------------
|
||||||
;; DIMENSIONS-XDATA (2D/3D) je Block - App "SSG_DIM"
|
;; DIMENSIONS-XDATA (2D/3D) je Block - App "SSG_DIM"
|
||||||
|
|||||||
+22
-17
@@ -11,20 +11,20 @@
|
|||||||
;; ============================================================
|
;; ============================================================
|
||||||
;; TEIL 1: ABHAENGIGKEITEN
|
;; TEIL 1: ABHAENGIGKEITEN
|
||||||
;; ============================================================
|
;; ============================================================
|
||||||
;; DXFM_DIM lesen; 2D wird auf 3D korrigiert (VF/GF benoetigen Z-Geometrie)
|
;; Bloecke liegen seit dem Flach-Refactor direkt unter data/ils/ (die Dimension
|
||||||
(setq *vf-dxfm-dim* (getenv "DXFM_DIM"))
|
;; steckt im Dateinamen bzw. Blocknamen als Suffix _2D/_3D, siehe ssg_core.lsp).
|
||||||
(if (or (not (= (type *vf-dxfm-dim*) 'STR)) (= *vf-dxfm-dim* "2D"))
|
;; VF folgt der aktuellen Dimension (ssg-ils-dim-aktuell) mit 3D-Fallback; das
|
||||||
(setq *vf-dxfm-dim* "3D"))
|
;; Laden erfolgt zentral ueber ensure-block-loaded/ssg-ils-block-laden.
|
||||||
;; Block-Pfad: data/ils/3D/ wenn DXFM_DIM nicht gesetzt oder 2D
|
;; modul-pfad/block-pfad dienen nur noch der Info-Ausgabe (Basisverzeichnis).
|
||||||
(setq modul-pfad
|
(setq modul-pfad
|
||||||
(cond
|
(cond
|
||||||
((and (getenv "DXFMAKRO") (= (type (getenv "DXFMAKRO")) 'STR))
|
((and (getenv "DXFMAKRO") (= (type (getenv "DXFMAKRO")) 'STR))
|
||||||
(strcat (vl-string-right-trim "/" (vl-string-translate "\\" "/" (getenv "DXFMAKRO")))
|
(strcat (vl-string-right-trim "/" (vl-string-translate "\\" "/" (getenv "DXFMAKRO")))
|
||||||
"/data/ils/" *vf-dxfm-dim* "/"))
|
"/data/ils/"))
|
||||||
((and (boundp '*ssg-lisp-pfad*) (= (type *ssg-lisp-pfad*) 'STR)
|
((and (boundp '*ssg-lisp-pfad*) (= (type *ssg-lisp-pfad*) 'STR)
|
||||||
(vl-string-search "/Lisp" *ssg-lisp-pfad*))
|
(vl-string-search "/Lisp" *ssg-lisp-pfad*))
|
||||||
(strcat (substr *ssg-lisp-pfad* 1 (vl-string-search "/Lisp" *ssg-lisp-pfad*))
|
(strcat (substr *ssg-lisp-pfad* 1 (vl-string-search "/Lisp" *ssg-lisp-pfad*))
|
||||||
"/data/ils/" *vf-dxfm-dim* "/"))
|
"/data/ils/"))
|
||||||
(t
|
(t
|
||||||
(princ "\n[vf_core] WARNUNG: Block-Pfad nicht ermittelbar!")
|
(princ "\n[vf_core] WARNUNG: Block-Pfad nicht ermittelbar!")
|
||||||
nil)
|
nil)
|
||||||
@@ -259,11 +259,16 @@
|
|||||||
;; TEIL 5: KS_EIN/KS_AUS EXTRAKTION
|
;; TEIL 5: KS_EIN/KS_AUS EXTRAKTION
|
||||||
;; ============================================================
|
;; ============================================================
|
||||||
(defun ensure-block-loaded (blockname / )
|
(defun ensure-block-loaded (blockname / )
|
||||||
;; Zentraler Loader (aktuelle Dimension + 3D-Fallback, Neudefinition bei
|
;; Zentraler Loader (flache Ablage). Laedt den Block in der AKTUELLEN Dimension
|
||||||
;; Dimensionswechsel). Meldung nur bei Fehlschlag.
|
;; (ssg-ils-dim-aktuell: *ssg-ils-dim*-Override -> DXFM_DIM) mit automatischem
|
||||||
|
;; 3D-Fallback, sodass 2D- und 3D-Aufbau gleichermassen funktionieren. Laedt den
|
||||||
|
;; Block unter seinem effektiven, dim-suffigierten Namen und GIBT DIESEN ZURUECK,
|
||||||
|
;; damit Aufrufer ihn zum Einfuegen (vla-InsertBlock/tblsearch) verwenden.
|
||||||
|
;; Meldung nur bei Fehlschlag.
|
||||||
(if (not (ssg-ils-block-laden blockname))
|
(if (not (ssg-ils-block-laden blockname))
|
||||||
(princ (ssg-textf "vfc-fehler-block-datei-fehlt" (list blockname)))
|
(princ (ssg-textf "vfc-fehler-block-datei-fehlt" (list blockname)))
|
||||||
)
|
)
|
||||||
|
(ssg-ils-blockname blockname)
|
||||||
)
|
)
|
||||||
|
|
||||||
(defun extract-ks-from-block-raw (block-obj / sub-entities sub-obj ks-results
|
(defun extract-ks-from-block-raw (block-obj / sub-entities sub-obj ks-results
|
||||||
@@ -450,7 +455,7 @@
|
|||||||
(exit)
|
(exit)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(ensure-block-loaded blockname)
|
(setq blockname (ensure-block-loaded blockname))
|
||||||
(if (not (tblsearch "BLOCK" blockname))
|
(if (not (tblsearch "BLOCK" blockname))
|
||||||
(progn
|
(progn
|
||||||
(princ (ssg-textf "vfc-fehler-block-nicht-in-bibliothek-abgebrochen" (list blockname)))
|
(princ (ssg-textf "vfc-fehler-block-nicht-in-bibliothek-abgebrochen" (list blockname)))
|
||||||
@@ -522,7 +527,7 @@
|
|||||||
P-ein xe ye ze P-aus xu-aus yu-aus zu-aus
|
P-ein xe ye ze P-aus xu-aus yu-aus zu-aus
|
||||||
R R-Pein R-Paus tx ty tz T4
|
R R-Pein R-Paus tx ty tz T4
|
||||||
P-out xu-out yu-out zu-out)
|
P-out xu-out yu-out zu-out)
|
||||||
(ensure-block-loaded blockname)
|
(setq blockname (ensure-block-loaded blockname))
|
||||||
(if (not (tblsearch "BLOCK" blockname))
|
(if (not (tblsearch "BLOCK" blockname))
|
||||||
(progn
|
(progn
|
||||||
(princ (ssg-textf "vfc-fehler-block-nicht-in-bibliothek" (list blockname)))
|
(princ (ssg-textf "vfc-fehler-block-nicht-in-bibliothek" (list blockname)))
|
||||||
@@ -610,7 +615,7 @@
|
|||||||
xe ye ze P-ein P-aus xu-aus yu-aus zu-aus
|
xe ye ze P-ein P-aus xu-aus yu-aus zu-aus
|
||||||
R P-xyref P-zref R-xyref R-zref tx ty tz T4
|
R P-xyref P-zref R-xyref R-zref tx ty tz T4
|
||||||
R-Paus P-out xu-out yu-out zu-out)
|
R-Paus P-out xu-out yu-out zu-out)
|
||||||
(ensure-block-loaded blockname)
|
(setq blockname (ensure-block-loaded blockname))
|
||||||
(if (not (tblsearch "BLOCK" blockname))
|
(if (not (tblsearch "BLOCK" blockname))
|
||||||
(progn
|
(progn
|
||||||
(princ (ssg-textf "vfc-fehler-block-nicht-in-bibliothek" (list blockname)))
|
(princ (ssg-textf "vfc-fehler-block-nicht-in-bibliothek" (list blockname)))
|
||||||
@@ -693,7 +698,7 @@
|
|||||||
;; ============================================================
|
;; ============================================================
|
||||||
;; Masse (KS_EIN->KS_AUS als (dx dy dz)) eines Elements aus dem Block ziehen.
|
;; Masse (KS_EIN->KS_AUS als (dx dy dz)) eines Elements aus dem Block ziehen.
|
||||||
(defun vf-element-masse (blockname / temp-obj ks-data ke ka)
|
(defun vf-element-masse (blockname / temp-obj ks-data ke ka)
|
||||||
(ensure-block-loaded blockname)
|
(setq blockname (ensure-block-loaded blockname))
|
||||||
(if (not (tblsearch "BLOCK" blockname))
|
(if (not (tblsearch "BLOCK" blockname))
|
||||||
nil
|
nil
|
||||||
(progn
|
(progn
|
||||||
@@ -713,7 +718,7 @@
|
|||||||
;; oder gerade). Wird genutzt, um KS_EIN so zu drehen, dass KS_AUS entlang hz
|
;; oder gerade). Wird genutzt, um KS_EIN so zu drehen, dass KS_AUS entlang hz
|
||||||
;; zeigt: ein-hz = hz - plan-turn. Fallback 90 (Vorgabe fuer 90-Grad-Element).
|
;; zeigt: ein-hz = hz - plan-turn. Fallback 90 (Vorgabe fuer 90-Grad-Element).
|
||||||
(defun vf-element-plan-turn (blockname / temp-obj ks-data fe fa)
|
(defun vf-element-plan-turn (blockname / temp-obj ks-data fe fa)
|
||||||
(ensure-block-loaded blockname)
|
(setq blockname (ensure-block-loaded blockname))
|
||||||
(if (not (tblsearch "BLOCK" blockname))
|
(if (not (tblsearch "BLOCK" blockname))
|
||||||
90.0
|
90.0
|
||||||
(progn
|
(progn
|
||||||
@@ -734,7 +739,7 @@
|
|||||||
;; vx / vy : KS_AUS.origin - KS_EIN.origin (Block-XY)
|
;; vx / vy : KS_AUS.origin - KS_EIN.origin (Block-XY)
|
||||||
;; Damit laesst sich die KS_AUS-Lage + Achsrichtung analytisch vorausberechnen.
|
;; Damit laesst sich die KS_AUS-Lage + Achsrichtung analytisch vorausberechnen.
|
||||||
(defun vf-element-ks-info (blockname / temp-obj ks-data fe fa)
|
(defun vf-element-ks-info (blockname / temp-obj ks-data fe fa)
|
||||||
(ensure-block-loaded blockname)
|
(setq blockname (ensure-block-loaded blockname))
|
||||||
(if (not (tblsearch "BLOCK" blockname))
|
(if (not (tblsearch "BLOCK" blockname))
|
||||||
nil
|
nil
|
||||||
(progn
|
(progn
|
||||||
@@ -780,7 +785,7 @@
|
|||||||
startpunkt
|
startpunkt
|
||||||
)
|
)
|
||||||
(progn
|
(progn
|
||||||
(ensure-block-loaded blockname)
|
(setq blockname (ensure-block-loaded blockname))
|
||||||
(if (not (tblsearch "BLOCK" blockname))
|
(if (not (tblsearch "BLOCK" blockname))
|
||||||
(progn
|
(progn
|
||||||
(princ (ssg-textf "vfc-fehler-block-nicht-in-bibliothek-abgebrochen" (list blockname)))
|
(princ (ssg-textf "vfc-fehler-block-nicht-in-bibliothek-abgebrochen" (list blockname)))
|
||||||
@@ -843,7 +848,7 @@
|
|||||||
startpunkt
|
startpunkt
|
||||||
)
|
)
|
||||||
(progn
|
(progn
|
||||||
(ensure-block-loaded blockname)
|
(setq blockname (ensure-block-loaded blockname))
|
||||||
(if (not (tblsearch "BLOCK" blockname))
|
(if (not (tblsearch "BLOCK" blockname))
|
||||||
(progn
|
(progn
|
||||||
(princ (ssg-textf "vfc-fehler-block-nicht-in-bibliothek-abgebrochen" (list blockname)))
|
(princ (ssg-textf "vfc-fehler-block-nicht-in-bibliothek-abgebrochen" (list blockname)))
|
||||||
|
|||||||
+19
-19
@@ -50,8 +50,8 @@
|
|||||||
;; TEIL 2: BIBLIOTHEK INITIALISIEREN (ETAGE-SPEZIFISCH)
|
;; TEIL 2: BIBLIOTHEK INITIALISIEREN (ETAGE-SPEZIFISCH)
|
||||||
;; ============================================================
|
;; ============================================================
|
||||||
(defun init-bibliothek-etage ( / temp-obj ks-data ks-ein-pos ks-aus-pos
|
(defun init-bibliothek-etage ( / temp-obj ks-data ks-ein-pos ks-aus-pos
|
||||||
gefaelle-blockname)
|
gefaelle-blockname as30-blk es30-blk)
|
||||||
(if (and *etage-lib-initialized* (not (tblsearch "BLOCK" "AS_Element_30_rechts")))
|
(if (and *etage-lib-initialized* (not (tblsearch "BLOCK" (ssg-ils-blockname "AS_Element_30_rechts"))))
|
||||||
(setq *etage-lib-initialized* nil))
|
(setq *etage-lib-initialized* nil))
|
||||||
(if *etage-lib-initialized*
|
(if *etage-lib-initialized*
|
||||||
(progn (princ (ssg-text "vfe-bib-bereits-init")) t)
|
(progn (princ (ssg-text "vfe-bib-bereits-init")) t)
|
||||||
@@ -65,13 +65,13 @@
|
|||||||
|
|
||||||
;; AS_30_rechts Masse extrahieren
|
;; AS_30_rechts Masse extrahieren
|
||||||
(princ (ssg-text "vfe-extrahiere-as30"))
|
(princ (ssg-text "vfe-extrahiere-as30"))
|
||||||
(ensure-block-loaded "AS_Element_30_rechts")
|
(setq as30-blk (ensure-block-loaded "AS_Element_30_rechts"))
|
||||||
(ensure-block-loaded "AS_Element_30_links")
|
(ensure-block-loaded "AS_Element_30_links")
|
||||||
(if (tblsearch "BLOCK" "AS_Element_30_rechts")
|
(if (tblsearch "BLOCK" as30-blk)
|
||||||
(progn
|
(progn
|
||||||
(setq temp-obj (vla-InsertBlock modelspace
|
(setq temp-obj (vla-InsertBlock modelspace
|
||||||
(vlax-3D-point '(0 0 0))
|
(vlax-3D-point '(0 0 0))
|
||||||
"AS_Element_30_rechts" 1.0 1.0 1.0 0))
|
as30-blk 1.0 1.0 1.0 0))
|
||||||
(setq ks-data (extract-ks-from-block temp-obj))
|
(setq ks-data (extract-ks-from-block temp-obj))
|
||||||
(vla-Delete temp-obj)
|
(vla-Delete temp-obj)
|
||||||
(setq ks-ein-pos nil ks-aus-pos nil)
|
(setq ks-ein-pos nil ks-aus-pos nil)
|
||||||
@@ -99,13 +99,13 @@
|
|||||||
|
|
||||||
;; ES_30_rechts Masse extrahieren
|
;; ES_30_rechts Masse extrahieren
|
||||||
(princ (ssg-text "vfe-extrahiere-es30"))
|
(princ (ssg-text "vfe-extrahiere-es30"))
|
||||||
(ensure-block-loaded "ES_Element_30_rechts")
|
(setq es30-blk (ensure-block-loaded "ES_Element_30_rechts"))
|
||||||
(ensure-block-loaded "ES_Element_30_links")
|
(ensure-block-loaded "ES_Element_30_links")
|
||||||
(if (tblsearch "BLOCK" "ES_Element_30_rechts")
|
(if (tblsearch "BLOCK" es30-blk)
|
||||||
(progn
|
(progn
|
||||||
(setq temp-obj (vla-InsertBlock modelspace
|
(setq temp-obj (vla-InsertBlock modelspace
|
||||||
(vlax-3D-point '(0 0 0))
|
(vlax-3D-point '(0 0 0))
|
||||||
"ES_Element_30_rechts" 1.0 1.0 1.0 0))
|
es30-blk 1.0 1.0 1.0 0))
|
||||||
(setq ks-data (extract-ks-from-block temp-obj))
|
(setq ks-data (extract-ks-from-block temp-obj))
|
||||||
(vla-Delete temp-obj)
|
(vla-Delete temp-obj)
|
||||||
(setq ks-ein-pos nil ks-aus-pos nil)
|
(setq ks-ein-pos nil ks-aus-pos nil)
|
||||||
@@ -134,7 +134,7 @@
|
|||||||
;; Gefaellebogen_links_30 Masse extrahieren
|
;; Gefaellebogen_links_30 Masse extrahieren
|
||||||
(setq gefaelle-blockname "Gefaellebogen_links_30_R500")
|
(setq gefaelle-blockname "Gefaellebogen_links_30_R500")
|
||||||
(princ (ssg-textf "vfe-extrahiere-block-mass" (list gefaelle-blockname)))
|
(princ (ssg-textf "vfe-extrahiere-block-mass" (list gefaelle-blockname)))
|
||||||
(ensure-block-loaded gefaelle-blockname)
|
(setq gefaelle-blockname (ensure-block-loaded gefaelle-blockname))
|
||||||
(if (tblsearch "BLOCK" gefaelle-blockname)
|
(if (tblsearch "BLOCK" gefaelle-blockname)
|
||||||
(progn
|
(progn
|
||||||
(setq temp-obj (vla-InsertBlock modelspace
|
(setq temp-obj (vla-InsertBlock modelspace
|
||||||
@@ -167,7 +167,7 @@
|
|||||||
;; Gefaellebogen_rechts_30 Masse extrahieren
|
;; Gefaellebogen_rechts_30 Masse extrahieren
|
||||||
(setq gefaelle-blockname "Gefaellebogen_rechts_30_R500")
|
(setq gefaelle-blockname "Gefaellebogen_rechts_30_R500")
|
||||||
(princ (ssg-textf "vfe-extrahiere-block-mass" (list gefaelle-blockname)))
|
(princ (ssg-textf "vfe-extrahiere-block-mass" (list gefaelle-blockname)))
|
||||||
(ensure-block-loaded gefaelle-blockname)
|
(setq gefaelle-blockname (ensure-block-loaded gefaelle-blockname))
|
||||||
(if (tblsearch "BLOCK" gefaelle-blockname)
|
(if (tblsearch "BLOCK" gefaelle-blockname)
|
||||||
(progn
|
(progn
|
||||||
(setq temp-obj (vla-InsertBlock modelspace
|
(setq temp-obj (vla-InsertBlock modelspace
|
||||||
@@ -220,7 +220,7 @@
|
|||||||
(setq rad-vert (* (float vert-winkel) (/ pi 180.0)))
|
(setq rad-vert (* (float vert-winkel) (/ pi 180.0)))
|
||||||
(setq chz (cos rad-hz) shz (sin rad-hz))
|
(setq chz (cos rad-hz) shz (sin rad-hz))
|
||||||
(setq cv (cos rad-vert) sv (sin rad-vert))
|
(setq cv (cos rad-vert) sv (sin rad-vert))
|
||||||
(ensure-block-loaded blockname)
|
(setq blockname (ensure-block-loaded blockname))
|
||||||
(if (not (tblsearch "BLOCK" blockname))
|
(if (not (tblsearch "BLOCK" blockname))
|
||||||
(progn
|
(progn
|
||||||
(princ (ssg-textf "vfe-block-fehlt-abbruch" (list blockname)))
|
(princ (ssg-textf "vfe-block-fehlt-abbruch" (list blockname)))
|
||||||
@@ -256,7 +256,7 @@
|
|||||||
(setq rad-vert (* (float vert-winkel) (/ pi 180.0)))
|
(setq rad-vert (* (float vert-winkel) (/ pi 180.0)))
|
||||||
(setq chz (cos rad-hz) shz (sin rad-hz))
|
(setq chz (cos rad-hz) shz (sin rad-hz))
|
||||||
(setq cv (cos rad-vert) sv (sin rad-vert))
|
(setq cv (cos rad-vert) sv (sin rad-vert))
|
||||||
(ensure-block-loaded blockname)
|
(setq blockname (ensure-block-loaded blockname))
|
||||||
(if (not (tblsearch "BLOCK" blockname))
|
(if (not (tblsearch "BLOCK" blockname))
|
||||||
(progn
|
(progn
|
||||||
(princ (ssg-textf "vfe-block-fehlt-abbruch" (list blockname)))
|
(princ (ssg-textf "vfe-block-fehlt-abbruch" (list blockname)))
|
||||||
@@ -290,7 +290,7 @@
|
|||||||
temp-obj block-obj ks-data ks-ein ks-aus
|
temp-obj block-obj ks-data ks-ein ks-aus
|
||||||
p-ein p-aus p-ein-rot p-aus-rot
|
p-ein p-aus p-ein-rot p-aus-rot
|
||||||
offset ausgang)
|
offset ausgang)
|
||||||
(ensure-block-loaded blockname)
|
(setq blockname (ensure-block-loaded blockname))
|
||||||
(if (not (tblsearch "BLOCK" blockname))
|
(if (not (tblsearch "BLOCK" blockname))
|
||||||
(progn
|
(progn
|
||||||
(princ (ssg-textf "vfe-block-fehlt-abbruch" (list blockname)))
|
(princ (ssg-textf "vfe-block-fehlt-abbruch" (list blockname)))
|
||||||
@@ -355,7 +355,7 @@
|
|||||||
temp-obj block-obj ks-data ks-ein ks-aus
|
temp-obj block-obj ks-data ks-ein ks-aus
|
||||||
p-ein p-aus p-ein-s p-aus-s
|
p-ein p-aus p-ein-s p-aus-s
|
||||||
p-ein-rot p-aus-rot offset ausgang)
|
p-ein-rot p-aus-rot offset ausgang)
|
||||||
(ensure-block-loaded blockname)
|
(setq blockname (ensure-block-loaded blockname))
|
||||||
(if (not (tblsearch "BLOCK" blockname))
|
(if (not (tblsearch "BLOCK" blockname))
|
||||||
(progn
|
(progn
|
||||||
(princ (ssg-textf "vfe-block-fehlt-abbruch" (list blockname)))
|
(princ (ssg-textf "vfe-block-fehlt-abbruch" (list blockname)))
|
||||||
@@ -630,7 +630,7 @@
|
|||||||
"Gefaellebogen_rechts_30_R500"
|
"Gefaellebogen_rechts_30_R500"
|
||||||
))
|
))
|
||||||
;; Sentinel: Bibliothek neu initialisieren wenn Bloecke fehlen
|
;; Sentinel: Bibliothek neu initialisieren wenn Bloecke fehlen
|
||||||
(if (and *etage-lib-initialized* (not (tblsearch "BLOCK" "AS_Element_30_rechts")))
|
(if (and *etage-lib-initialized* (not (tblsearch "BLOCK" (ssg-ils-blockname "AS_Element_30_rechts"))))
|
||||||
(setq *etage-lib-initialized* nil))
|
(setq *etage-lib-initialized* nil))
|
||||||
(if (not *etage-lib-initialized*) (init-bibliothek-etage))
|
(if (not *etage-lib-initialized*) (init-bibliothek-etage))
|
||||||
|
|
||||||
@@ -690,11 +690,11 @@
|
|||||||
;; 7. 1. Vertikalbogen (3 Grad geneigt)
|
;; 7. 1. Vertikalbogen (3 Grad geneigt)
|
||||||
(if (= richtung "Auf")
|
(if (= richtung "Auf")
|
||||||
(progn
|
(progn
|
||||||
(setq bogen-name (strcat "Vario_Bogen_auf_" (itoa best-winkel)))
|
(setq bogen-name (strcat "Vario_Bogen_auf_" (itoa best-winkel) "_TEF_rechts"))
|
||||||
(setq bogen-mass (get-bogen-mass bogen-auf best-winkel))
|
(setq bogen-mass (get-bogen-mass bogen-auf best-winkel))
|
||||||
)
|
)
|
||||||
(progn
|
(progn
|
||||||
(setq bogen-name (strcat "Vario_Bogen_ab_" (itoa best-winkel)))
|
(setq bogen-name (strcat "Vario_Bogen_ab_" (itoa best-winkel) "_TEF_rechts"))
|
||||||
(setq bogen-mass (get-bogen-mass bogen-ab best-winkel))
|
(setq bogen-mass (get-bogen-mass bogen-ab best-winkel))
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -727,11 +727,11 @@
|
|||||||
;; 9. 2. Vertikalbogen
|
;; 9. 2. Vertikalbogen
|
||||||
(if (= richtung "Auf")
|
(if (= richtung "Auf")
|
||||||
(progn
|
(progn
|
||||||
(setq bogen-name (strcat "Vario_Bogen_ab_" (itoa best-winkel)))
|
(setq bogen-name (strcat "Vario_Bogen_ab_" (itoa best-winkel) "_TEF_rechts"))
|
||||||
(setq bogen-mass (get-bogen-mass bogen-ab best-winkel))
|
(setq bogen-mass (get-bogen-mass bogen-ab best-winkel))
|
||||||
)
|
)
|
||||||
(progn
|
(progn
|
||||||
(setq bogen-name (strcat "Vario_Bogen_auf_" (itoa best-winkel)))
|
(setq bogen-name (strcat "Vario_Bogen_auf_" (itoa best-winkel) "_TEF_rechts"))
|
||||||
(setq bogen-mass (get-bogen-mass bogen-auf best-winkel))
|
(setq bogen-mass (get-bogen-mass bogen-auf best-winkel))
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -319,7 +319,7 @@
|
|||||||
(setq hz (car (frame->hz-winkel frame)))
|
(setq hz (car (frame->hz-winkel frame)))
|
||||||
(setq m (get-bogen-mass bogen-ab 3))
|
(setq m (get-bogen-mass bogen-ab 3))
|
||||||
(princ (ssg-text "vfl-bogen-ab3-uebergang"))
|
(princ (ssg-text "vfl-bogen-ab3-uebergang"))
|
||||||
(setq pt (insert-rotated-block-with-ks "Vario_Bogen_ab_3" (car frame)
|
(setq pt (insert-rotated-block-with-ks "Vario_Bogen_ab_3_TEF_rechts" (car frame)
|
||||||
0 (car m) (caddr m) hz))
|
0 (car m) (caddr m) hz))
|
||||||
(vfl-frame-3grad pt hz))
|
(vfl-frame-3grad pt hz))
|
||||||
frame))
|
frame))
|
||||||
@@ -341,7 +341,7 @@
|
|||||||
(progn
|
(progn
|
||||||
(setq m1 (get-bogen-mass bogen-auf 3))
|
(setq m1 (get-bogen-mass bogen-auf 3))
|
||||||
(princ (ssg-text "vfl-bogen-auf3-uebergang"))
|
(princ (ssg-text "vfl-bogen-auf3-uebergang"))
|
||||||
(setq pt (insert-rotated-block-with-ks "Vario_Bogen_auf_3" pt
|
(setq pt (insert-rotated-block-with-ks "Vario_Bogen_auf_3_TEF_rechts" pt
|
||||||
(ssg-cfg-or "vario" "gefaelle_winkel" 3) (car m1) (caddr m1) hz))))
|
(ssg-cfg-or "vario" "gefaelle_winkel" 3) (car m1) (caddr m1) hz))))
|
||||||
;; optionaler Separator VOR - in der horizontalen Ebene (0 Grad)
|
;; optionaler Separator VOR - in der horizontalen Ebene (0 Grad)
|
||||||
(if sep-vor (setq pt (vfl-sep-hz pt hz)))
|
(if sep-vor (setq pt (vfl-sep-hz pt hz)))
|
||||||
@@ -1204,7 +1204,7 @@
|
|||||||
;; Aufruf in BricsCAD: VFL_KS_DIAG -> Blockname eingeben.
|
;; Aufruf in BricsCAD: VFL_KS_DIAG -> Blockname eingeben.
|
||||||
(defun c:VFL_KS_DIAG ( / bname obj subs s nm inner il ilnm ps pe len)
|
(defun c:VFL_KS_DIAG ( / bname obj subs s nm inner il ilnm ps pe len)
|
||||||
(setq bname (getstring "\nBlockname fuer KS-Diagnose: "))
|
(setq bname (getstring "\nBlockname fuer KS-Diagnose: "))
|
||||||
(ensure-block-loaded bname)
|
(setq bname (ensure-block-loaded bname))
|
||||||
(if (not (tblsearch "BLOCK" bname))
|
(if (not (tblsearch "BLOCK" bname))
|
||||||
(progn (princ (strcat "\nBlock '" bname "' nicht gefunden.")) (exit)))
|
(progn (princ (strcat "\nBlock '" bname "' nicht gefunden.")) (exit)))
|
||||||
(setq obj (vla-InsertBlock modelspace (vlax-3D-point '(0 0 0)) bname 1.0 1.0 1.0 0))
|
(setq obj (vla-InsertBlock modelspace (vlax-3D-point '(0 0 0)) bname 1.0 1.0 1.0 0))
|
||||||
@@ -1712,13 +1712,13 @@
|
|||||||
;; (Rotation 3 Grad). Rueckgabe: neuer Punkt.
|
;; (Rotation 3 Grad). Rueckgabe: neuer Punkt.
|
||||||
(defun vfl3-flach-ein (pt hz / m)
|
(defun vfl3-flach-ein (pt hz / m)
|
||||||
(setq m (get-bogen-mass bogen-auf 3))
|
(setq m (get-bogen-mass bogen-auf 3))
|
||||||
(insert-rotated-block-with-ks "Vario_Bogen_auf_3" pt 3 (car m) (caddr m) hz))
|
(insert-rotated-block-with-ks "Vario_Bogen_auf_3_TEF_rechts" pt 3 (car m) (caddr m) hz))
|
||||||
|
|
||||||
;; Uebergang aus der flachen Zone (0 Grad) zurueck auf 3-Grad-Basis: EIN ab_3-Bogen
|
;; Uebergang aus der flachen Zone (0 Grad) zurueck auf 3-Grad-Basis: EIN ab_3-Bogen
|
||||||
;; (Rotation 0 Grad). Rueckgabe: neuer Punkt.
|
;; (Rotation 0 Grad). Rueckgabe: neuer Punkt.
|
||||||
(defun vfl3-flach-aus (pt hz / m)
|
(defun vfl3-flach-aus (pt hz / m)
|
||||||
(setq m (get-bogen-mass bogen-ab 3))
|
(setq m (get-bogen-mass bogen-ab 3))
|
||||||
(insert-rotated-block-with-ks "Vario_Bogen_ab_3" pt 0 (car m) (caddr m) hz))
|
(insert-rotated-block-with-ks "Vario_Bogen_ab_3_TEF_rechts" pt 0 (car m) (caddr m) hz))
|
||||||
|
|
||||||
;; Kletter-Segment loesen und Winkel WAEHLEN LASSEN (Modus-1-Solver + vfl-waehle-winkel).
|
;; Kletter-Segment loesen und Winkel WAEHLEN LASSEN (Modus-1-Solver + vfl-waehle-winkel).
|
||||||
;; Mittige Bruecke -> KEIN terminales AS/ES (Masse auf 0, Save/Restore). feste = fester
|
;; Mittige Bruecke -> KEIN terminales AS/ES (Masse auf 0, Save/Restore). feste = fester
|
||||||
|
|||||||
+24
-23
@@ -65,15 +65,16 @@
|
|||||||
"Staustrecke_SP_1000_mm" "Staustrecke_Separator_SP_300_mm"
|
"Staustrecke_SP_1000_mm" "Staustrecke_Separator_SP_300_mm"
|
||||||
"Vario_Umlenkstation_500mm_links" "Vario_Umlenkstation_500mm_rechts"
|
"Vario_Umlenkstation_500mm_links" "Vario_Umlenkstation_500mm_rechts"
|
||||||
"Vario_Motorstation_500mm_links" "Vario_Motorstation_500mm_rechts")
|
"Vario_Motorstation_500mm_links" "Vario_Motorstation_500mm_rechts")
|
||||||
(mapcar (function (lambda (w) (strcat "Vario_Bogen_auf_" (itoa w)))) bogen-winkel)
|
(mapcar (function (lambda (w) (strcat "Vario_Bogen_auf_" (itoa w) "_TEF_rechts"))) bogen-winkel)
|
||||||
(mapcar (function (lambda (w) (strcat "Vario_Bogen_ab_" (itoa w)))) bogen-winkel)
|
(mapcar (function (lambda (w) (strcat "Vario_Bogen_ab_" (itoa w) "_TEF_rechts"))) bogen-winkel)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(setq missing '())
|
(setq missing '())
|
||||||
(foreach bname required-blocks
|
(foreach bname required-blocks
|
||||||
(setq datei (strcat block-pfad bname ".dwg"))
|
;; Existenz ueber den zentralen Resolver (flache Ablage + Dim-Suffix der
|
||||||
(if (not (findfile datei))
|
;; aktuellen Dimension + 3D-Fallback).
|
||||||
(setq missing (cons datei missing))
|
(if (not (ssg-ils-block-datei bname))
|
||||||
|
(setq missing (cons (ssg-ils-blockname bname) missing))
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(if missing
|
(if missing
|
||||||
@@ -95,12 +96,12 @@
|
|||||||
;; TEIL 3: BIBLIOTHEK INITIALISIEREN
|
;; TEIL 3: BIBLIOTHEK INITIALISIEREN
|
||||||
;; ============================================================
|
;; ============================================================
|
||||||
(defun init-bibliothek ( / temp-obj bogen-winkel ks-data ks-ein-pos ks-aus-pos
|
(defun init-bibliothek ( / temp-obj bogen-winkel ks-data ks-ein-pos ks-aus-pos
|
||||||
dx dy dz bogen-name)
|
dx dy dz bogen-name as-blk es-blk)
|
||||||
;; "bereits initialisiert" nur, wenn das Flag gesetzt UND die Bogen-Tabelle
|
;; "bereits initialisiert" nur, wenn das Flag gesetzt UND die Bogen-Tabelle
|
||||||
;; tatsaechlich befuellt ist. Sonst (Stuck-State: Flag gesetzt, aber bogen-auf
|
;; tatsaechlich befuellt ist. Sonst (Stuck-State: Flag gesetzt, aber bogen-auf
|
||||||
;; leer - z.B. nach einer fehlgeschlagenen Extraktion) neu initialisieren.
|
;; leer - z.B. nach einer fehlgeschlagenen Extraktion) neu initialisieren.
|
||||||
(if (and *lib-initialized* bogen-auf bogen-ab
|
(if (and *lib-initialized* bogen-auf bogen-ab
|
||||||
(tblsearch "BLOCK" "AS_Element_90_links"))
|
(tblsearch "BLOCK" (ssg-ils-blockname "AS_Element_90_links")))
|
||||||
(progn
|
(progn
|
||||||
(princ (ssg-text "vfs-lib-bereits-init"))
|
(princ (ssg-text "vfs-lib-bereits-init"))
|
||||||
t
|
t
|
||||||
@@ -114,13 +115,13 @@
|
|||||||
|
|
||||||
;; AS_90 Masse extrahieren
|
;; AS_90 Masse extrahieren
|
||||||
(princ (ssg-text "vfs-extrahiere-aus"))
|
(princ (ssg-text "vfs-extrahiere-aus"))
|
||||||
(ensure-block-loaded "AS_Element_90_links")
|
(setq as-blk (ensure-block-loaded "AS_Element_90_links"))
|
||||||
(ensure-block-loaded "AS_Element_90_rechts")
|
(ensure-block-loaded "AS_Element_90_rechts")
|
||||||
(if (tblsearch "BLOCK" "AS_Element_90_links")
|
(if (tblsearch "BLOCK" as-blk)
|
||||||
(progn
|
(progn
|
||||||
(setq temp-obj (vla-InsertBlock modelspace
|
(setq temp-obj (vla-InsertBlock modelspace
|
||||||
(vlax-3D-point '(0 0 0))
|
(vlax-3D-point '(0 0 0))
|
||||||
"AS_Element_90_links" 1.0 1.0 1.0 0))
|
as-blk 1.0 1.0 1.0 0))
|
||||||
(setq ks-data (extract-ks-from-block temp-obj))
|
(setq ks-data (extract-ks-from-block temp-obj))
|
||||||
(vla-Delete temp-obj)
|
(vla-Delete temp-obj)
|
||||||
(setq ks-ein-pos nil ks-aus-pos nil)
|
(setq ks-ein-pos nil ks-aus-pos nil)
|
||||||
@@ -143,13 +144,13 @@
|
|||||||
|
|
||||||
;; ES_90 Masse extrahieren
|
;; ES_90 Masse extrahieren
|
||||||
(princ (ssg-text "vfs-extrahiere-ein"))
|
(princ (ssg-text "vfs-extrahiere-ein"))
|
||||||
(ensure-block-loaded "ES_Element_90_links")
|
(setq es-blk (ensure-block-loaded "ES_Element_90_links"))
|
||||||
(ensure-block-loaded "ES_Element_90_rechts")
|
(ensure-block-loaded "ES_Element_90_rechts")
|
||||||
(if (tblsearch "BLOCK" "ES_Element_90_links")
|
(if (tblsearch "BLOCK" es-blk)
|
||||||
(progn
|
(progn
|
||||||
(setq temp-obj (vla-InsertBlock modelspace
|
(setq temp-obj (vla-InsertBlock modelspace
|
||||||
(vlax-3D-point '(0 0 0))
|
(vlax-3D-point '(0 0 0))
|
||||||
"ES_Element_90_links" 1.0 1.0 1.0 0))
|
es-blk 1.0 1.0 1.0 0))
|
||||||
(setq ks-data (extract-ks-from-block temp-obj))
|
(setq ks-data (extract-ks-from-block temp-obj))
|
||||||
(vla-Delete temp-obj)
|
(vla-Delete temp-obj)
|
||||||
(setq ks-ein-pos nil ks-aus-pos nil)
|
(setq ks-ein-pos nil ks-aus-pos nil)
|
||||||
@@ -178,8 +179,8 @@
|
|||||||
'(3 6 9 12 15 18 21 27 33 39 45 51)))
|
'(3 6 9 12 15 18 21 27 33 39 45 51)))
|
||||||
(foreach w bogen-winkel
|
(foreach w bogen-winkel
|
||||||
;; Aufwaertsbogen
|
;; Aufwaertsbogen
|
||||||
(setq bogen-name (strcat "Vario_Bogen_auf_" (itoa w)))
|
(setq bogen-name (strcat "Vario_Bogen_auf_" (itoa w) "_TEF_rechts"))
|
||||||
(ensure-block-loaded bogen-name)
|
(setq bogen-name (ensure-block-loaded bogen-name))
|
||||||
(if (tblsearch "BLOCK" bogen-name)
|
(if (tblsearch "BLOCK" bogen-name)
|
||||||
(progn
|
(progn
|
||||||
(setq temp-obj (vla-InsertBlock modelspace
|
(setq temp-obj (vla-InsertBlock modelspace
|
||||||
@@ -205,8 +206,8 @@
|
|||||||
(princ (ssg-textf "vfs-bogen-auf-block-fehlt" (list (itoa w))))
|
(princ (ssg-textf "vfs-bogen-auf-block-fehlt" (list (itoa w))))
|
||||||
)
|
)
|
||||||
;; Abwaertsbogen
|
;; Abwaertsbogen
|
||||||
(setq bogen-name (strcat "Vario_Bogen_ab_" (itoa w)))
|
(setq bogen-name (strcat "Vario_Bogen_ab_" (itoa w) "_TEF_rechts"))
|
||||||
(ensure-block-loaded bogen-name)
|
(setq bogen-name (ensure-block-loaded bogen-name))
|
||||||
(if (tblsearch "BLOCK" bogen-name)
|
(if (tblsearch "BLOCK" bogen-name)
|
||||||
(progn
|
(progn
|
||||||
(setq temp-obj (vla-InsertBlock modelspace
|
(setq temp-obj (vla-InsertBlock modelspace
|
||||||
@@ -521,16 +522,16 @@
|
|||||||
;; horizontalen Mitte vermitteln muessen.
|
;; horizontalen Mitte vermitteln muessen.
|
||||||
(if (= best-winkel 0)
|
(if (= best-winkel 0)
|
||||||
(progn
|
(progn
|
||||||
(setq bogen-name "Vario_Bogen_auf_3")
|
(setq bogen-name "Vario_Bogen_auf_3_TEF_rechts")
|
||||||
(setq bogen-mass (get-bogen-mass bogen-auf 3))
|
(setq bogen-mass (get-bogen-mass bogen-auf 3))
|
||||||
)
|
)
|
||||||
(if (= richtung "Auf")
|
(if (= richtung "Auf")
|
||||||
(progn
|
(progn
|
||||||
(setq bogen-name (strcat "Vario_Bogen_auf_" (itoa best-winkel)))
|
(setq bogen-name (strcat "Vario_Bogen_auf_" (itoa best-winkel) "_TEF_rechts"))
|
||||||
(setq bogen-mass (get-bogen-mass bogen-auf best-winkel))
|
(setq bogen-mass (get-bogen-mass bogen-auf best-winkel))
|
||||||
)
|
)
|
||||||
(progn
|
(progn
|
||||||
(setq bogen-name (strcat "Vario_Bogen_ab_" (itoa best-winkel)))
|
(setq bogen-name (strcat "Vario_Bogen_ab_" (itoa best-winkel) "_TEF_rechts"))
|
||||||
(setq bogen-mass (get-bogen-mass bogen-ab best-winkel))
|
(setq bogen-mass (get-bogen-mass bogen-ab best-winkel))
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -576,16 +577,16 @@
|
|||||||
;; 7. 2. Vertikalbogen
|
;; 7. 2. Vertikalbogen
|
||||||
(if (= best-winkel 0)
|
(if (= best-winkel 0)
|
||||||
(progn
|
(progn
|
||||||
(setq bogen-name "Vario_Bogen_ab_3")
|
(setq bogen-name "Vario_Bogen_ab_3_TEF_rechts")
|
||||||
(setq bogen-mass (get-bogen-mass bogen-ab 3))
|
(setq bogen-mass (get-bogen-mass bogen-ab 3))
|
||||||
)
|
)
|
||||||
(if (= richtung "Auf")
|
(if (= richtung "Auf")
|
||||||
(progn
|
(progn
|
||||||
(setq bogen-name (strcat "Vario_Bogen_ab_" (itoa best-winkel)))
|
(setq bogen-name (strcat "Vario_Bogen_ab_" (itoa best-winkel) "_TEF_rechts"))
|
||||||
(setq bogen-mass (get-bogen-mass bogen-ab best-winkel))
|
(setq bogen-mass (get-bogen-mass bogen-ab best-winkel))
|
||||||
)
|
)
|
||||||
(progn
|
(progn
|
||||||
(setq bogen-name (strcat "Vario_Bogen_auf_" (itoa best-winkel)))
|
(setq bogen-name (strcat "Vario_Bogen_auf_" (itoa best-winkel) "_TEF_rechts"))
|
||||||
(setq bogen-mass (get-bogen-mass bogen-auf best-winkel))
|
(setq bogen-mass (get-bogen-mass bogen-auf best-winkel))
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
+3
-1
@@ -64,7 +64,9 @@ if /i "%1"=="3D" set "DXFM_DIM=3D"
|
|||||||
if /i "%1"=="2D" set "DXFM_DIM=2D"
|
if /i "%1"=="2D" set "DXFM_DIM=2D"
|
||||||
|
|
||||||
REM Abhaengige Pfade nach Override berechnen
|
REM Abhaengige Pfade nach Override berechnen
|
||||||
set "DXFM_BLOCKS=%DXFMAKRO%\data\ils\%DXFM_DIM%"
|
REM ILS-Bloecke liegen seit dem Flach-Refactor direkt unter data\ils
|
||||||
|
REM (Dimension steckt im Dateinamen, z.B. AN8_2D.dwg) - kein <DIM>-Unterordner mehr.
|
||||||
|
set "DXFM_BLOCKS=%DXFMAKRO%\data\ils"
|
||||||
set "DXFM_OMNIFLO=%DXFMAKRO%\data\omniflo\%DXFM_DIM%"
|
set "DXFM_OMNIFLO=%DXFMAKRO%\data\omniflo\%DXFM_DIM%"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user