| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: Schraffuren in Blöcken löschen (5528 mal gelesen)
|
vevi61 Mitglied techn. Zeichner
Beiträge: 59 Registriert: 08.10.2003
|
erstellt am: 09. Sep. 2009 08:53 <-- editieren / zitieren --> Unities abgeben:
Ich verwende zum Löschen aller Schraffuren einer Zeichnung das Tool "ELALL-SOLIDHATCH.lsp" von CADmium. Es bleiben jedoch vereinzelte Schraffuren in Blöcken erhalten. Mir ist aufgefallen, dass der Mustername in solchen Blöcken im Eigenschaftsfenster als SOLID,_I (anstatt SOLID) angezeigt wird. Gibt es eine Möglichkeit, solche Schraffuren trotzdem global zu löschen? Danke - Eva Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 09. Sep. 2009 09:01 <-- editieren / zitieren --> Unities abgeben: Nur für vevi61
keine Ahnung mehr wie das Proggie aussah ... -> villeicht postest du mal den Link?! , sicher wird aber irgendwo der Objektname abgefragt .. und da muss dann der Objektname der anderen "Solidschraffur" mit rein .... ------------------ - 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 |
vevi61 Mitglied techn. Zeichner
Beiträge: 59 Registriert: 08.10.2003
|
erstellt am: 09. Sep. 2009 10:03 <-- editieren / zitieren --> Unities abgeben:
|
Wolfgang Kirsch Mitglied Büroberater
Beiträge: 41 Registriert: 29.04.2002
|
erstellt am: 09. Sep. 2009 10:15 <-- editieren / zitieren --> Unities abgeben: Nur für vevi61
Doch, zum Umändern reicht es auch bei Dir! Im Programm steht zweimal Code: (strcase "SOLID"))
In einem Editor deiner Wahl (notepad, wordpad, vlide...) die Datei öffnen und dann einfach diesen Teil umändern in Code: (strcase "SOLID,_I"))
.Aufpassen das keine Klammer gelöscht wird, fertig. Abspeichern, ev. unter einem anderen Namen und das war's dann auch schon. ciao Wolfgang Kirsch Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
vevi61 Mitglied techn. Zeichner
Beiträge: 59 Registriert: 08.10.2003 AutoCAD 2012
|
erstellt am: 09. Sep. 2009 10:32 <-- editieren / zitieren --> Unities abgeben:
@Wolfgang, @CADmium Hab das Programm kurzerhand geändert und die Problemschraffuren SOLID,_I werden somit gelöscht. Da jetzt allerdings die "normalen" SOLID-Schraffuren ignoriert wurden, hab ich den ursprünglichen Code nach unten kopiert (nicht sehr elegant, aber es klappt) und alle sind glücklich. Nochmals vielen Dank - Eva Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 09. Sep. 2009 10:38 <-- editieren / zitieren --> Unities abgeben: Nur für vevi61
schön, das du das alleine hinbekommen hast .... um das doppelte Ausführen des Codes zu vermeiden kannst du aber auch anstelle : (=(strcase(vla-get-PatternName ITEM))(strcase "SOLID")) ---> (member(strcase(vla-get-PatternName ITEM))'("SOLID" "SOLID,_I")) schreiben... ------------------ - 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 |
vevi61 Mitglied techn. Zeichner
Beiträge: 59 Registriert: 08.10.2003
|
erstellt am: 09. Sep. 2009 12:57 <-- editieren / zitieren --> Unities abgeben:
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 09. Sep. 2009 13:02 <-- editieren / zitieren --> Unities abgeben: Nur für vevi61
Zitat: Original erstellt von vevi61:
Was tät' ich nur ohne euch Eva
uneffektiver arbeiten ?
------------------ - 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 |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 - 2014 Arcibem System: Windows 2000, XP, NO VISTA Internet-Startseite: http://www.archi.de
|
erstellt am: 09. Sep. 2009 13:46 <-- editieren / zitieren --> Unities abgeben: Nur für vevi61
Um alle Schraffuren zu erfassen, die irgendwie mit "SOLID" anfangen, könntest Du auch Code: (wcmatch (strcase(vla-get-PatternName ITEM)) "SOLID*")
verwenden. Könnte ja sein, morgen hast Du eine Schraffur "SOLID,_M" und übermorgen "SOLID,_Z".Grüsse, Henning ------------------ Henning Jesse VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
vevi61 Mitglied techn. Zeichner
Beiträge: 59 Registriert: 08.10.2003
|
erstellt am: 10. Sep. 2009 07:50 <-- editieren / zitieren --> Unities abgeben:
|
Plotter Mitglied
Beiträge: 267 Registriert: 11.02.2004 Windows 10 64-bit AutoCAD 2021 DDS-CAD Adobe Acrobat Pro DC
|
erstellt am: 13. Jul. 2012 11:54 <-- editieren / zitieren --> Unities abgeben: Nur für vevi61
Hallo, gibt es eine Möglichkeit den Code so zu verändern, dass auch alle Solid Schraffuren in verschachtelten Blöcken gefunden/entfernt werden? Haben jetzt DWG'S bekommen die Blöcke enthalten, die zum Teil bis zu 10-15-fach in der Tiefe verschachtelt sind Zur Zeit nutzen wir den Code mit folgenden Einstellungen:
Code: (defun C:DEL-SOLID( / BLOCK ) (vl-load-com) (vlax-for LAYOUT (vla-get-layouts(vla-get-activedocument(vlax-get-acad-object))) (vlax-for ITEM (setq BLOCK (vla-get-Block LAYOUT)) (if(and(=(strcase(vla-get-objectname ITEM))(strcase "AcDbHatch")) (wcmatch (strcase(vla-get-PatternName ITEM)) "SOLID*") ) (vl-catch-all-error-p (vl-catch-all-apply 'vla-delete (list ITEM) ) ) ) ) ) (vlax-for BLOCK (vla-get-blocks(vla-get-activedocument(vlax-get-acad-object))) (vlax-for ITEM BLOCK (if(and(=(strcase(vla-get-objectname ITEM))(strcase "AcDbHatch")) (wcmatch (strcase(vla-get-PatternName ITEM)) "SOLID*") ) (vl-catch-all-error-p (vl-catch-all-apply 'vla-delete (list ITEM) ) ) ) ) ) (vla-regen(vla-get-activedocument (vlax-get-acad-object)) acAllViewports) )
------------------ - Plotter - ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 - 2014 Arcibem System: Windows 2000, XP, NO VISTA Internet-Startseite: http://www.archi.de
|
erstellt am: 13. Jul. 2012 12:12 <-- editieren / zitieren --> Unities abgeben: Nur für vevi61
Die Verschachtelungstiefe ist dem Program egal, da es durch ALLE Blöcke scant. Sollte also so schon passen... oder hat's nicht funktioniert? Dann bitte eine Beispielzeichnung hier ablegen. Grüsse, Henning ------------------ Henning Jesse VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Plotter Mitglied
Beiträge: 267 Registriert: 11.02.2004
|
erstellt am: 13. Jul. 2012 12:19 <-- editieren / zitieren --> Unities abgeben: Nur für vevi61
Nein, hat leider nicht funktioniert. Habe dann den Block im Block mit dem Blockeditor geöffnet und das Lisp nochmals laufen lassen, dann ging es seltsamerweise. Dachte auch, dass alle "Unter"-Blöcke mit erfasst werden. Wäre für einen Tipp dankbar. Leider sind die DWG's 30 MB groß und in diesem speziellen Fall darf ich sie leider auch nicht einstellen Ferndiagnose ist da schwierig - ich weiß. Aber vielleicht hat ja noch jemand einen Lösungsansatz, den ich Montag morgen testen könnte (fahre jetzt erst einmal ins WE ) ------------------ - Plotter - ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |