[ADD] DIN_FORMATE: Zeichnungsrahmen + Schriftkopf einfuegen
Ersatz fuer das alte ACADSST-Makro DINFORM.LSP/.DCL (SSG2 "DIN-FORMATE..."): neues Werkzeuge-Menue "Din Formate" fuegt einen DIN-Rahmen (A0-A3, A4 quer/ hoch) und optional einen Schriftkopf (Kopf11, DE/EN/FR/IT) per Dialog ein. Block-DWGs liegen flach in cfg/rahmen/ (kopiert aus \infor-ln\SSG_Tools\ACADSST\KOEPFE - nur die von DINFORM.LSP tatsaechlich referenzierten Dateien). Das Laden der Blockdefinitionen laeuft ueber vla-InsertBlock+vla-Delete (COM-Weg wie ssg-ils-block-laden-dim), da ein command-basiertes "_.-INSERT ... _X" in der interaktiven Befehlskette haengen bleibt und nachfolgende getpoint-Aufrufe blockiert. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,206 @@
|
||||
;; ============================================================
|
||||
;; DinFormate.lsp - Zeichnungsrahmen + Schriftkopf einfuegen
|
||||
;;
|
||||
;; Ersatz fuer das alte ACADSST-Makro DINFORM.LSP/.DCL (SSG2-Menue
|
||||
;; "DIN-FORMATE..."): fuegt einen DIN-Rahmen (A0-A4, A4 quer/hoch) und
|
||||
;; optional einen Schriftkopf (KOPF11, vier Sprachen) ein. Die Block-DWGs
|
||||
;; liegen flach in cfg/rahmen/ (kopiert aus \\infor-ln\SSG_Tools\ACADSST\KOEPFE,
|
||||
;; nur die tatsaechlich von DINFORM.LSP referenzierten Dateien):
|
||||
;; A0.DWG, A1.DWG, A2.DWG, A3.DWG, A4Q.DWG, A4H.DWG
|
||||
;; Kopf11.dwg, Kopf11e.dwg, Kopf11f.dwg, Kopf11i.dwg (DE/EN/FR/IT)
|
||||
;;
|
||||
;; Aufruf: Menue SSG_LIB > Werkzeuge > Din Formate, oder direkt DIN_FORMATE.
|
||||
;;
|
||||
;; Rahmen wird im Massstabsfaktor eingefuegt (Skalierung = Zeichenmassstab,
|
||||
;; wie im Original), der Kopf im Faktor/100 (Rahmen-DWGs sind im Format
|
||||
;; 1:1 bei realer Papiergroesse gezeichnet, der Kopf 100x groesser angelegt -
|
||||
;; unveraendert aus DINFORM.LSP uebernommen).
|
||||
;;
|
||||
;; Setzt ssg_core.lsp (ssg-start/ssg-end) und ssg_lang.lsp (ssg-text/-textf)
|
||||
;; voraus, die ssg-ensure als Kern-Abhaengigkeit laedt.
|
||||
;; ============================================================
|
||||
|
||||
(setq *dinformate-rahmen-liste*
|
||||
(list
|
||||
(cons "A0" "A0")
|
||||
(cons "A1" "A1")
|
||||
(cons "A2" "A2")
|
||||
(cons "A3" "A3")
|
||||
(cons "A4 Quer" "A4Q")
|
||||
(cons "A4 Hoch" "A4H")
|
||||
)
|
||||
)
|
||||
|
||||
(setq *dinformate-sprachen-liste*
|
||||
(list
|
||||
(cons (ssg-text "dinformate-sprache-de") "Kopf11")
|
||||
(cons (ssg-text "dinformate-sprache-en") "Kopf11e")
|
||||
(cons (ssg-text "dinformate-sprache-fr") "Kopf11f")
|
||||
(cons (ssg-text "dinformate-sprache-it") "Kopf11i")
|
||||
)
|
||||
)
|
||||
|
||||
(setq *dinformate-massstab-liste*
|
||||
(list
|
||||
(cons "1:1" 1.0)
|
||||
(cons "1:10" 10.0)
|
||||
(cons "1:20" 20.0)
|
||||
(cons "1:25" 25.0)
|
||||
(cons "1:50" 50.0)
|
||||
(cons "1:75" 75.0)
|
||||
(cons "1:100" 100.0)
|
||||
(cons "1:200" 200.0)
|
||||
(cons "1:500" 500.0)
|
||||
(cons "1:1000" 1000.0)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
;; ------------------------------------------------------------
|
||||
;; Verzeichnis der Rahmen-/Kopf-DWGs (cfg/rahmen)
|
||||
;; ------------------------------------------------------------
|
||||
(defun dinformate-verzeichnis ( / cfg)
|
||||
(setq cfg (getenv "DXFM_CFG"))
|
||||
(if cfg
|
||||
(strcat (vl-string-translate "\\" "/" cfg) "/rahmen")
|
||||
"rahmen"
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
;; ------------------------------------------------------------
|
||||
;; Block aus cfg/rahmen laden (falls nicht schon in der Zeichnung).
|
||||
;; Laedt die Definition ohne Interaktion/Prompts ueber vla-InsertBlock am
|
||||
;; Ursprung + sofortiges vla-Delete (COM-Weg, wie ssg-ils-block-laden-dim in
|
||||
;; ssg_core.lsp) - ein command-basiertes "_.-INSERT ... _X" bleibt sonst in
|
||||
;; der interaktiven Befehlskette haengen und blockiert nachfolgende getpoint-
|
||||
;; Aufrufe.
|
||||
;; ------------------------------------------------------------
|
||||
(defun dinformate-block-laden (name / pfad temp-obj ms)
|
||||
(if (not (tblsearch "BLOCK" name))
|
||||
(progn
|
||||
(setq pfad (strcat (dinformate-verzeichnis) "/" name ".dwg"))
|
||||
(if (findfile pfad)
|
||||
(progn
|
||||
(setq ms (vla-get-ModelSpace
|
||||
(vla-get-ActiveDocument (vlax-get-acad-object))))
|
||||
(setq temp-obj (vla-InsertBlock ms
|
||||
(vlax-3D-point '(0 0 0)) pfad 1.0 1.0 1.0 0))
|
||||
(vla-Delete temp-obj)
|
||||
)
|
||||
(alert (ssg-textf "dinformate-datei-fehlt" (list pfad)))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
;; ------------------------------------------------------------
|
||||
;; C:DIN_FORMATE - Dialog + Einfuegen von Rahmen und Schriftkopf
|
||||
;; ------------------------------------------------------------
|
||||
(defun c:DIN_FORMATE ( / dcl-pfad dat ergebnis
|
||||
rahmen-idx rahmen-key
|
||||
sprache-idx sprache-key
|
||||
massstab-idx massstab-key faktor
|
||||
mit-kopf pt1 pt2 oldcmdecho oldblipmode oldlimcheck)
|
||||
|
||||
(ssg-start "DIN_FORMATE" nil)
|
||||
|
||||
(setq dcl-pfad (strcat (getenv "DXFM_DCL") "/dinformate.dcl"))
|
||||
(setq dat (load_dialog dcl-pfad))
|
||||
(if (not (new_dialog "dinformate" dat))
|
||||
(progn
|
||||
(alert (ssg-textf "dinformate-dialog-fehlt" (list dcl-pfad)))
|
||||
(ssg-end)
|
||||
(exit)
|
||||
)
|
||||
)
|
||||
|
||||
(start_list "rahmen")
|
||||
(foreach eintrag *dinformate-rahmen-liste* (add_list (car eintrag)))
|
||||
(end_list)
|
||||
(set_tile "rahmen" "0")
|
||||
|
||||
(start_list "massstab")
|
||||
(foreach eintrag *dinformate-massstab-liste* (add_list (car eintrag)))
|
||||
(end_list)
|
||||
(set_tile "massstab" "6") ; Vorgabe 1:100
|
||||
|
||||
(start_list "sprache")
|
||||
(foreach eintrag *dinformate-sprachen-liste* (add_list (car eintrag)))
|
||||
(end_list)
|
||||
(set_tile "sprache" "0") ; Vorgabe Deutsch
|
||||
|
||||
(setq rahmen-idx 0 massstab-idx 6 sprache-idx 0 mit-kopf "1")
|
||||
|
||||
(action_tile "rahmen" "(setq rahmen-idx (atoi $value))")
|
||||
(action_tile "massstab" "(setq massstab-idx (atoi $value))")
|
||||
(action_tile "sprache" "(setq sprache-idx (atoi $value))")
|
||||
(action_tile "kopf" "(setq mit-kopf $value)")
|
||||
(action_tile "accept"
|
||||
(strcat
|
||||
"(setq rahmen-idx (atoi (get_tile \"rahmen\"))"
|
||||
" massstab-idx (atoi (get_tile \"massstab\"))"
|
||||
" sprache-idx (atoi (get_tile \"sprache\"))"
|
||||
" mit-kopf (get_tile \"kopf\"))"
|
||||
"(done_dialog 1)"))
|
||||
(action_tile "cancel" "(done_dialog 0)")
|
||||
|
||||
(setq ergebnis (start_dialog))
|
||||
(unload_dialog dat)
|
||||
|
||||
(if (/= ergebnis 1)
|
||||
(progn (ssg-end) (exit))
|
||||
)
|
||||
|
||||
(setq rahmen-key (cdr (nth rahmen-idx *dinformate-rahmen-liste*))
|
||||
massstab-key (cdr (nth massstab-idx *dinformate-massstab-liste*))
|
||||
sprache-key (cdr (nth sprache-idx *dinformate-sprachen-liste*))
|
||||
faktor massstab-key)
|
||||
|
||||
;; --- Umgebung sichern -----------------------------------------------
|
||||
(setq oldcmdecho (getvar "CMDECHO")
|
||||
oldblipmode (getvar "BLIPMODE")
|
||||
oldlimcheck (getvar "LIMCHECK"))
|
||||
(setvar "CMDECHO" 0)
|
||||
(setvar "BLIPMODE" 0)
|
||||
(setvar "LIMCHECK" 0)
|
||||
|
||||
;; --- Rahmen einfuegen --------------------------------------------------
|
||||
(dinformate-block-laden rahmen-key)
|
||||
(setq pt1 (getpoint (ssg-text "dinformate-prompt-rahmen")))
|
||||
(if (null pt1)
|
||||
(progn
|
||||
(setvar "CMDECHO" oldcmdecho)
|
||||
(setvar "BLIPMODE" oldblipmode)
|
||||
(setvar "LIMCHECK" oldlimcheck)
|
||||
(ssg-end)
|
||||
(exit)
|
||||
)
|
||||
)
|
||||
(command "_.INSERT" rahmen-key pt1 faktor "" 0)
|
||||
|
||||
;; --- Schriftkopf einfuegen (optional) -----------------------------------
|
||||
(if (= mit-kopf "1")
|
||||
(progn
|
||||
(dinformate-block-laden sprache-key)
|
||||
(setq pt2 (getpoint (ssg-text "dinformate-prompt-kopf")))
|
||||
(if pt2
|
||||
(command "_.INSERT" sprache-key pt2 (/ faktor 100.0) "" 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; --- Umgebung wiederherstellen ------------------------------------------
|
||||
(setvar "CMDECHO" oldcmdecho)
|
||||
(setvar "BLIPMODE" oldblipmode)
|
||||
(setvar "LIMCHECK" oldlimcheck)
|
||||
|
||||
(princ (ssg-textf "dinformate-eingefuegt" (list rahmen-key)))
|
||||
(ssg-end)
|
||||
(princ)
|
||||
)
|
||||
|
||||
|
||||
(prompt "\nDinFormate.lsp geladen - Befehl: DIN_FORMATE")
|
||||
(princ)
|
||||
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.
@@ -0,0 +1,38 @@
|
||||
// ============================================================
|
||||
// dinformate.dcl - Zeichnungsrahmen + Schriftkopf einfuegen
|
||||
// Aufruf ueber c:DIN_FORMATE (Lisp/DinFormate.lsp).
|
||||
// ============================================================
|
||||
|
||||
dinformate : dialog {
|
||||
label = "DIN-Format";
|
||||
|
||||
: column {
|
||||
|
||||
: popup_list {
|
||||
key = "rahmen";
|
||||
label = "Rahmen:";
|
||||
width = 30;
|
||||
}
|
||||
|
||||
: popup_list {
|
||||
key = "massstab";
|
||||
label = "Massstab:";
|
||||
width = 30;
|
||||
}
|
||||
|
||||
: toggle {
|
||||
key = "kopf";
|
||||
label = "Schriftkopf einfuegen";
|
||||
value = "1";
|
||||
}
|
||||
|
||||
: popup_list {
|
||||
key = "sprache";
|
||||
label = "Sprache Schriftkopf:";
|
||||
width = 30;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ok_cancel;
|
||||
}
|
||||
+10
-1
@@ -1063,6 +1063,15 @@
|
||||
"tt-geaendert": "\n%1 Text(e) geaendert.",
|
||||
"tt-stil": "\nTextstil",
|
||||
"tt-stil-fehlt": "\nTextstil %1 existiert nicht in der Zeichnung.",
|
||||
"tt-stil-titel": "Textstil aendern"
|
||||
"tt-stil-titel": "Textstil aendern",
|
||||
"dinformate-dialog-fehlt": "DIN-Formate-Dialog nicht gefunden: %1",
|
||||
"dinformate-datei-fehlt": "DIN-Formate: Datei nicht gefunden: %1",
|
||||
"dinformate-prompt-rahmen": "\nEinfuegepunkt Rahmen (untere linke Ecke): ",
|
||||
"dinformate-prompt-kopf": "\nEinfuegepunkt Schriftkopf (untere rechte Ecke): ",
|
||||
"dinformate-eingefuegt": "\nDIN-Format eingefuegt: %1",
|
||||
"dinformate-sprache-de": "Deutsch",
|
||||
"dinformate-sprache-en": "Englisch",
|
||||
"dinformate-sprache-fr": "Franzoesisch",
|
||||
"dinformate-sprache-it": "Italienisch"
|
||||
}
|
||||
}
|
||||
|
||||
+10
-1
@@ -1063,6 +1063,15 @@
|
||||
"tt-geaendert": "\n%1 text(s) changed.",
|
||||
"tt-stil": "\nText style",
|
||||
"tt-stil-fehlt": "\nText style %1 does not exist in the drawing.",
|
||||
"tt-stil-titel": "Change text style"
|
||||
"tt-stil-titel": "Change text style",
|
||||
"dinformate-dialog-fehlt": "DIN formats dialog not found: %1",
|
||||
"dinformate-datei-fehlt": "DIN formats: file not found: %1",
|
||||
"dinformate-prompt-rahmen": "\nBorder insertion point (lower left corner): ",
|
||||
"dinformate-prompt-kopf": "\nHeader insertion point (lower right corner): ",
|
||||
"dinformate-eingefuegt": "\nDIN format inserted: %1",
|
||||
"dinformate-sprache-de": "German",
|
||||
"dinformate-sprache-en": "English",
|
||||
"dinformate-sprache-fr": "French",
|
||||
"dinformate-sprache-it": "Italian"
|
||||
}
|
||||
}
|
||||
|
||||
+5
-2
@@ -32,7 +32,7 @@
|
||||
[aus 3D-Linie]^C^C(ssg-ensure "Gefaellestrecke") GEFAELLESTRECKE_3DLINIE
|
||||
[aus Linienzug (LINE + ARC)]^C^C(ssg-ensure "Gefaellestrecke") GEFAELLESTRECKE_LINIENZUG
|
||||
[QC Linie mit GF (automatische Auf-Ab-Berechnung)]^C^C(ssg-ensure "VarioFoerderer") QcLinieMitGf
|
||||
[<-QC Linie mit GF und U-Form]^C^C(ssg-ensure "VarioFoerderer") QcLinieMitGfUForm
|
||||
[<-<-QC Linie mit GF und U-Form]^C^C(ssg-ensure "VarioFoerderer") QcLinieMitGfUForm
|
||||
[->Omniflo]
|
||||
[->Boegen APB110]
|
||||
[90]^C^C(ssg-ensure "OmniModulInsert") OMNI_APB_630_90
|
||||
@@ -154,7 +154,10 @@
|
||||
[Text ersetzen]^C^C(ssg-ensure "ssg_texttools") SSG_TEXT_ERSETZEN
|
||||
[Text parallel beschriften]^C^C(ssg-ensure "ssg_texttools") SSG_TEXT_PARALLEL
|
||||
[Texthoehe aendern]^C^C(ssg-ensure "ssg_texttools") SSG_TEXT_HOEHE
|
||||
[<-Textstil aendern]^C^C(ssg-ensure "ssg_texttools") SSG_TEXT_STIL
|
||||
[Textstil aendern]^C^C(ssg-ensure "ssg_texttools") SSG_TEXT_STIL
|
||||
[--]
|
||||
[Faehnchen + Stueckliste aus Zeichnung]^C^C(ssg-ensure "ssg_stueckliste") SSG_FAEHNCHEN_STUECKLISTE
|
||||
[<-Din Formate]^C^C(ssg-ensure "DinFormate") DIN_FORMATE
|
||||
[->Tests]
|
||||
[alle Tests ausfuehren und exportieren]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_run_all.lsp")) (c:SSG_RUN_ALL_TESTS_EXPORT)
|
||||
[Tests ausfuehren und stehen lassen]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_run_all.lsp")) (c:SSG_RUN_ALL_TESTS_OFFEN)
|
||||
|
||||
Reference in New Issue
Block a user