From 7255d0b2911500b031a037883f9e048c8de91c48 Mon Sep 17 00:00:00 2001 From: Michael Stangl Date: Wed, 20 May 2026 18:54:34 +0200 Subject: [PATCH] =?UTF-8?q?Fix=20der=20H=C3=B6hen=20und=20verformentn?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Lisp/KreiselInsert.lsp | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/Lisp/KreiselInsert.lsp b/Lisp/KreiselInsert.lsp index b82a818..f5426ad 100644 --- a/Lisp/KreiselInsert.lsp +++ b/Lisp/KreiselInsert.lsp @@ -283,6 +283,12 @@ ;; Pruefen ob Block bereits existiert (setq block-exists (tblsearch "BLOCK" bname)) + ;; ATTREQ/ATTDIA und OSMODE VOR Sub-Block-Insertions setzen, damit INSERT + ;; nicht nach Attributwerten fragt und OSNAP die Koordinaten nicht verschiebt + (setvar "ATTREQ" 0) + (setvar "ATTDIA" 0) + (setvar "OSMODE" 0) + ;; --- Geometrie NUR zeichnen, wenn Block noch nicht existiert --- (if (not block-exists) (progn @@ -292,12 +298,12 @@ (princ) ;; Letzte Entity existiert (setq lastEnt nil) ;; Zeichnung ist leer ) - + ;; AN8 Kreis (Antriebsstation) bei (radius, 0) - (command "_.INSERT" (strcat block-pfad "AN8.dwg") (list radius 0.0 0) 1 1 0) + (command "_.INSERT" (strcat block-pfad "AN8.dwg") (list radius 0.0 0.0) 1 1 0) ;; SP8 Kreis (Spannstation) bei (radius+abstand, 0) - (command "_.INSERT" (strcat block-pfad "SP8.dwg") (list (+ radius abstand) 0.0 0) 1 1 0) + (command "_.INSERT" (strcat block-pfad "SP8.dwg") (list (+ radius abstand) 0.0 0.0) 1 1 0) ;; Tangenten auf Layer S_LP (ssg-make-layer "S_LP" "7" T) @@ -356,10 +362,7 @@ ) ;; --- Block am Zielpunkt einfuegen (ohne Attribut-Dialog) --- - ;; basePoint kann 2D oder 3D sein; INSERT uebernimmt die Z-Koordinate - ;; ATTREQ/ATTDIA werden durch ssg-start/ssg-end der Aufrufer gesichert - (setvar "ATTREQ" 0) - (setvar "ATTDIA" 0) + ;; ATTREQ/ATTDIA wurden bereits oben gesetzt ;; Einfügepunkt: X,Y aus basePoint, Z aus ermittelter Höhe @@ -406,7 +409,7 @@ ;; -------------------------------------------- (defun c:KreiselInsert ( / pt abstand typ rotation rotStr hoehe selectedEnt blockAttribs oldOsmode) - (ssg-start "Kreisel Modul einfuegen" '(("CECOLOR"))) + (ssg-start "Kreisel Modul einfuegen" '(("OSMODE") ("CECOLOR"))) ;; Temporär Osnap für Blockerkennung setzen (setq oldOsmode (getvar "OSMODE")) @@ -506,7 +509,7 @@ z1s z1e z2s z2e zCoord zTol ok msg) - (ssg-start "Kreisel Smart Connect" '(("CECOLOR"))) + (ssg-start "Kreisel Smart Connect" '(("OSMODE") ("CECOLOR"))) (setq ok T msg nil) (princ "\n--- Kreisel zwischen zwei parallelen Linien ---")