| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | PNY: der unverzichtbare Partner für umfassende KI-Lösungen von Workstations bis zu Edge Computing und KI-Cluster-Bereitstellung, eine Pressemitteilung
|
Autor
|
Thema: Layer-Leichen eliminieren (1489 mal gelesen)
|
Nano Mitglied
 
 Beiträge: 179 Registriert: 25.10.2004
|
erstellt am: 12. Dez. 2006 11:20 <-- editieren / zitieren --> Unities abgeben:         
Hallo Mit Hilfe von Jörn  konnte ich eine Bau-Zeichnung konvertieren, die mit verschachtelte Blöcke versehen waren. Nach der Konvertierung sind jedoch noch Layers auf der Zeichnung, die keine Elementen beinhalten. Habe es versucht mit Bereinigung der Zeichnung. GEHT NICHT! Nur mit Layerkonverter konnte ich die Layer-Leichen auf Layer "0" setzten. Kann mir Jemand helfen, wie ich mit ein Lisp-Programm die Leichen eliminieren kann?????? Als Beilage die Zeichnung (zip-Datei). Gruss Nano Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
       

 Beiträge: 13530 Registriert: 30.11.2003 .
|
erstellt am: 12. Dez. 2006 11:33 <-- editieren / zitieren --> Unities abgeben:          Nur für Nano
ja, bei dir hängen noch ne ganze Menge Layer am Blockend-Sequend ... kannst du bloß mit neudefinition der Blöcke lösen. z.B. soFunzt zumindest mit reinen ACAD-Objekten, (die sich entmaken lassen) zur Ergänzung noch was für 2D- und 3D-Polylinien ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nano Mitglied
 
 Beiträge: 179 Registriert: 25.10.2004
|
erstellt am: 12. Dez. 2006 13:14 <-- editieren / zitieren --> Unities abgeben:         
Hallo Thomas Habe mit diesem Bsp. getestet. geht bei mir nicht, warum? Befehlszeile: Ungültiger Feldtyp in 71 in (entmake) Kann Blockdefinitionen nicht verschachteln.nil (setq bl (tblnext "BLOCK" t)) (while bl (setq blname (cdr (assoc 2 bl))) (setq en (tblobjname "BLOCK" blname)) (setq ed (entget en)) (entmake (subst (cons 8 "0") (assoc 8 ed) ed)) (while (setq en (entnext en)) (entmake (entget en)) ) (entmake (list (cons 0 "BLOCK") (cons 8 "0"))) (setq bl (tblnext "BLOCK")) ) Gruss Nano Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
       

 Beiträge: 13530 Registriert: 30.11.2003 .
|
erstellt am: 12. Dez. 2006 16:02 <-- editieren / zitieren --> Unities abgeben:          Nur für Nano
wo kommt denn die dwg her? mach mal (entget(tblobjname "BLOCK" (cdr(assoc 2 (tblnext "BLOCK"))))) -> ((-1 . <Objektname: 7eff9dc0> ) (0 . "BLOCK") (330 . <Objektname: 7eff9db8> ) (5 . "38") (100 . "AcDbEntity") (67 . 0) (8 . "63") (62 . 254) (6 . "Continuous") (370 . 0) (100 . "AcDbBlockBegin") (70 . 1) (71 . 1) (10 0.0 0.0 0.0) (-2 . <Objektname: 7eff9dc8> ) (2 . "*O0") (1 . "")) und nach dxf-Spezifikation dürfte es in der Blockdefinition gar kein GC 71 geben... , deshalb geht das entmaken auch nicht (oder hab ich was überlesen?) ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nano Mitglied
 
 Beiträge: 179 Registriert: 25.10.2004
|
erstellt am: 12. Dez. 2006 16:35 <-- editieren / zitieren --> Unities abgeben:         
Thomas geht es vielleicht mit append, Aber es geligt mir nicht. Habe ich etwas falsch gemacht? (setq bl (tblnext "BLOCK" t)) (while bl (setq blname (cdr (assoc 2 bl))) (setq en (tblobjname "BLOCK" blname)) (setq ed (entget en)) (SETQ liste (SUBST (CONS 8 "A_BAU")(assoc 8 ed) ed)) (IF (ASSOC 8 liste) (SUBST (CONS 8 "A_BAU")(assoc 8 liste) liste) (APPEND liste (LIST (CONS 8 "A_BAU"))) ) (setq bl (tblnext "BLOCK")) ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
       

 Beiträge: 13530 Registriert: 30.11.2003 .
|
erstellt am: 12. Dez. 2006 16:41 <-- editieren / zitieren --> Unities abgeben:          Nur für Nano
Zitat: Original erstellt von Nano: Thomas geht es vielleicht mit append, Aber es geligt mir nicht. Habe ich etwas falsch gemacht?
Ja, mich nicht verstanden
------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nano Mitglied
 
 Beiträge: 179 Registriert: 25.10.2004
|
erstellt am: 12. Dez. 2006 17:12 <-- editieren / zitieren --> Unities abgeben:         
|
Andreas Kraus Ehrenmitglied Elektrotechniker
    
 Beiträge: 1500 Registriert: 11.01.2006 WIN 11 ACAD 2022 BricsCAD V25.1.07
|
erstellt am: 13. Dez. 2006 08:19 <-- editieren / zitieren --> Unities abgeben:          Nur für Nano
Hallo Nano, du mußt nicht mit "entmake" arbeiten. Ich suche mir den Layernamen des entsprechenden Inserts und hangele mich dann durch die Attribute bis zum SEQEND-Objekt. Und dann mach ich das: (vlax-put-property (vlax-ename->vla-object ent_name) 'Layer lay ) Gruß Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
CADmium Moderator Maschinenbaukonstrukteur
       

 Beiträge: 13530 Registriert: 30.11.2003 .
|
erstellt am: 13. Dez. 2006 08:22 <-- editieren / zitieren --> Unities abgeben:          Nur für Nano
aber in der Blockdef ist auch ein anderer Layer als "0" referenziert.. Sie Bsp weiter oben ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |