Hallo,
in 2023 haben wir kein Mecanical, das haben die obersten festgelegt.
Ich habe die Zeichnung komplett in die Vorlage unseres Betriebs kopiert und mehrmals Explode ausgeführt.
Ich habe alles auf Layer 0 geschoben mit LSP Datei
;;; Geändert BG 28.11.22: zu ändernde Objekteigenschaft 'ByBlock' auf 'ByLayer' angepasst
(defun c:norm2 (/ *error* adoc lst_layer func_restore-layers fun_get-block-subref-by-block)
(defun *error* (msg)
(func_restore-layers)
(vla-endundomark adoc)
(princ msg)
(princ)
) ;_ end of defun
(defun fun_get-block-subref-by-block (blk-name)
(setq res (list blk-name))
(vlax-for subent (vla-item (vla-get-blocks adoc) blk-name)
(if (wcmatch (strcase (vla-get-objectname subent)) "*BLOCK*")
(setq res (append res (fun_get-block-subref-by-block (vla-get-name subent))))
) ;_ end of if
) ;_ end of vlax-for
res
) ;_ end of defun
(defun func_restore-layers ()
(foreach item lst_layer
(vla-put-lock (car item) (cdr (assoc "lock" (cdr item))))
(vl-catch-all-apply
'(lambda ()
(vla-put-freeze
(car item)
(cdr (assoc "freeze" (cdr item)))
) ;_ end of vla-put-freeze
) ;_ end of lambda
) ;_ end of vl-catch-all-apply
) ;_ end of foreach
) ;_ end of defun
(vl-load-com)
(vla-startundomark
(setq adoc (vla-get-activedocument (vlax-get-acad-object)))
) ;_ end of vla-startundomark
(if (and (not (vl-catch-all-error-p
(setq selset
(vl-catch-all-apply
(function
(lambda ()
(ssget '((0 . "INSERT")))
) ;_ end of lambda
) ;_ end of function
) ;_ end of vl-catch-all-apply
) ;_ end of setq
) ;_ end of vl-catch-all-error-p
) ;_ end of not
selset
) ;_ end of and
(progn
(vlax-for item (vla-get-layers adoc)
(setq
lst_layer (cons (list item
(cons "lock" (vla-get-lock item))
(cons "freeze" (vla-get-freeze item))
) ;_ end of list
lst_layer
) ;_ end of cons
) ;_ end of setq
(vla-put-lock item :vlax-false)
(vl-catch-all-apply
'(lambda () (vla-put-freeze item :vlax-false))
) ;_ end of vl-catch-all-apply
) ;_ end of vlax-for
(foreach blk_def (mapcar
(function
(lambda (x)
(vla-item (vla-get-blocks adoc) x)
) ;_ end of lambda
) ;_ end of function
((lambda (/ res)
(foreach item (apply (function append)
(mapcar
(function
(lambda (x)
(fun_get-block-subref-by-block
(vla-get-name
(vlax-ename->vla-object x)
) ;_ end of vla-get-name
) ;_ end of vla-get-name
) ;_ end of lambda
) ;_ end of function
((lambda (/ tab item)
(repeat (setq tab nil
item (sslength selset)
) ;_ end setq
(setq
tab
(cons
(ssname selset
(setq item (1- item))
) ;_ end of ssname
tab
) ;_ end of cons
) ;_ end of setq
) ;_ end of repeat
tab
) ;_ end of lambda
)
) ;_ end of mapcar
) ;_ end of apply
(if (not (member item res))
(setq res (cons item res))
) ;_ end of if
) ;_ end of foreach
(reverse res)
) ;_ end of lambda
)
) ;_ end of mapcar
(vlax-for ent blk_def
(vla-put-layer ent "0")
;;; < Geändert BG
; (vla-put-color ent 0)
; (vla-put-lineweight ent aclnwtbyblock)
; (vla-put-linetype ent "byLayer")
(vla-put-color ent acByLayer)
(vla-put-lineweight ent acLnWtByLayer)
(vla-put-linetype ent "ByLayer")
;;; Geändert BG >
) ;_ end of vlax-for
) ;_ end of foreach
(func_restore-layers)
(vla-regen adoc acallviewports)
) ;_ end of progn
) ;_ end of if
(vla-endundomark adoc)
(princ)
) ;_ end of defun
nach -BER, A,*,N
sind trotzdem noch Layer außer 0 vorhanden.
Was bedeutet
"und kopiere alles außer dem Führungslinienkommentar in eine andere Datei."
Ich habe jetzt Feierabend und kann erst wieder am Montag rein schauen.
Gruß Hajo
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP