| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Alle Schraffuren löschen! (10881 mal gelesen)
|
Ralle Mitglied
Beiträge: 266 Registriert: 12.03.2003 Windows 10 Enterprise 64-Bit, 32GB MEP2018
|
erstellt am: 24. Jun. 2004 09:00 <-- editieren / zitieren --> Unities abgeben:
Hallo, hat jemand vielleicht ein Lisp mit dem ich alle Schraffuren in einer Zeichnung, vor allem auch die in Blöcken, auf Knopfdruck löschen kann? Wär ne große Hilfe für mich. Kann leider kein Lisp. Gruß Ralle Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
C. Thiel Mitglied
Beiträge: 442 Registriert: 15.10.2001 ACAD2k2, MDT6 mit aktuellen SP's, ACAD, ACADM, MDT 2004, SE V15 SP4 + PM/KM WIN-XP/SP1 im Novell-Netz 2,4GHz Pentium, 1GB RAM, Matrox Parhelia
|
erstellt am: 24. Jun. 2004 09:20 <-- editieren / zitieren --> Unities abgeben: Nur für Ralle
|
Ralle Mitglied
Beiträge: 266 Registriert: 12.03.2003 Windows 10 Enterprise 64-Bit, 32GB MEP2018
|
erstellt am: 24. Jun. 2004 09:42 <-- editieren / zitieren --> Unities abgeben:
|
Proxy Ehrenmitglied Stateless-DHCP v6-Paketfragmentierer
Beiträge: 1629 Registriert: 13.11.2003 Tastaturen, Mäuse, Pladden, Monitore, ...
|
erstellt am: 24. Jun. 2004 10:36 <-- editieren / zitieren --> Unities abgeben: Nur für Ralle
Das mit den im Block wird komplizierter (defun C:hatch_kill (/) (command "_.erase" (ssget "x" '((0 . "HATCH")))) ) (princ)
löscht aber auch bei assozitiven Schraffuren die Umgrenzung !
------------------ "Lisp?!?! Why the Hell did you pick the most arcane, obscure, and hopelessly-rooted-in-the-computer-science-department language in the world for an AutoCAD programming language?" Read the whole story: The Autodesk File ca. 890 Seiten | 7500 KB PDF Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ralle Mitglied
Beiträge: 266 Registriert: 12.03.2003 Windows 10 Enterprise 64-Bit, 32GB MEP2018
|
erstellt am: 24. Jun. 2004 11:05 <-- editieren / zitieren --> Unities abgeben:
|
CADwiesel Moderator CAD4FM UG
Beiträge: 1968 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 24. Jun. 2004 13:06 <-- editieren / zitieren --> Unities abgeben: Nur für Ralle
hier mal ein bischen was extra für dich ausgedactes. der Code ist public free macht damit was ihr wollt. wenn ihr euch was zerschießt, seid ihr selber schuld. (Ähnlichkeiten mit existierenden Programmen oder Programmteilen sind rein Zufällig und nicht beabsichtigt) (ich denke sowas in der Art sollten wir uns in die Signatur schreiben) (defun c:hatch-del (/ helems x Bname) (vl-load-com) (if (setq helems (ssget "_X" '((0 . "HATCH")))) (repeat (sslength helems) (entdel (ssname helems 0)) (setq helems (ssdel (ssname helems 0) helems)) ) ;_ end of repeat ) ;_ end of if (setq x (tblnext "BLOCK" T)) (while x (setq Bname (entget (cdr (assoc -2 x)))) (repeat (- (vla-get-Count (vlax-ename->vla-object (cdr (assoc 330 (entget (cdr (assoc -2 x))))) ) ;_ end of vlax-ename->vla-object ) ;_ end of vla-get-Count 1 ) ;_ end of - (if (= (cdr (assoc 0 Bname)) "HATCH") (deleteObjectFromBlock (cdr (assoc -1 Bname))) ) ;_ end of if (setq ;obname Bname Bname (entnext (cdr (assoc -1 Bname))) ) ;_ end of setq (if Bname (setq Bname (entget Bname)) ) ;_ end of if ) ;_ end of repeat (setq x (tblnext "BLOCK")) ) ;_ end of while (vla-regen (vla-get-activedocument (vlax-get-acad-object) ) ;_ end of vla-get-activedocument acAllViewports ) ;_ end of vla-regen ) ;_ end of defun (defun deleteObjectFromBlock (ent / doc) (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)) ent (vlax-ename->vla-object ent) ) ;_ end of setq (vla-Delete ent) ) ;_ end of defun
------------------ Gruß CADwiesel Besucht uns im CHAT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ralle Mitglied
Beiträge: 266 Registriert: 12.03.2003 Windows 10 Enterprise 64-Bit, 32GB MEP2018
|
erstellt am: 24. Jun. 2004 13:35 <-- editieren / zitieren --> Unities abgeben:
|
c@s Mitglied cad kommunikation
Beiträge: 269 Registriert: 07.08.2002 win 10<P> AutoCad 2018
|
erstellt am: 09. Apr. 2008 15:14 <-- editieren / zitieren --> Unities abgeben: Nur für Ralle
Hallo cadwiesel, wenn ich Dein lsp starte kommt Befehl: hatch-del ; Fehler: ActiveX-Server gab folgenden Fehler zurück: unbekannter Name: Count arbeite mit 2009 liegts daran? mit bestem Gruß Jochen ------------------ N W-|-O S Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 09. Apr. 2008 15:36 <-- editieren / zitieren --> Unities abgeben: Nur für Ralle
|
c@s Mitglied cad kommunikation
Beiträge: 269 Registriert: 07.08.2002 win 10<P> AutoCad 2018
|
erstellt am: 09. Apr. 2008 19:48 <-- editieren / zitieren --> Unities abgeben: Nur für Ralle
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 09. Apr. 2008 19:53 <-- editieren / zitieren --> Unities abgeben: Nur für Ralle
wie siehts mit [URL=http://ww3.cad.de/foren/ubb/Forum54/HTML/008331.shtml#000002]dem Teil[\URL] und dem Aufruf (DELALL "AcDbHatch") oder so aus? ------------------ - 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 |
Claudio Mitglied Architekt
Beiträge: 334 Registriert: 13.04.2002
|
erstellt am: 09. Apr. 2008 21:45 <-- editieren / zitieren --> Unities abgeben: Nur für Ralle
@CADmium :...(DELALL "AcDbHatch")->seeehr feines Prog! @CADwiesel : "der Code ist public free" -> Ich war so frei... Habe Count-Problem eleminiert (vla-get-Count... im Übrigen - tolles Engagement! Gruß Claudio (defun c:hatch-del (/ helems x Bname Count) (vl-load-com) (if (setq helems (ssget "_X" '((0 . "HATCH")))) (repeat (sslength helems) (entdel (ssname helems 0)) (setq helems (ssdel (ssname helems 0) helems)) ) ;_ end of repeat ) ;_ end of if (setq x (tblnext "BLOCK" T)) (while x (Setq Count 1) (setq Bname (entget (cdr (assoc -2 x)))) (While count (if (= (cdr (assoc 0 Bname)) "HATCH") (deleteObjectFromBlock (cdr (assoc -1 Bname))) ) (setq Bname (entnext (cdr (assoc -1 Bname)))) (if Bname (setq Bname (entget Bname)) (setq count nil) ) ;_ endif ) ;_ endWhile (setq x (tblnext "BLOCK")) ) ;_ endwhile (vla-regen (vla-get-activedocument (vlax-get-acad-object)) acAllViewports ) ;_ end of vla-regen ) ;_ end of defun (defun deleteObjectFromBlock (ent / doc) (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)) ent (vlax-ename->vla-object ent)) ;_ end of setq (vla-Delete ent) ) ;_ end of defun Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DomiX Mitglied Technischer Zeichner - Elektrotechnik
Beiträge: 37 Registriert: 06.10.2008 Windows XPp SP3; AutoCAD 2009
|
erstellt am: 06. Apr. 2009 11:58 <-- editieren / zitieren --> Unities abgeben: Nur für Ralle
Ich glaube, jeder hier kennt die Funtkion "Filter"? Mit Schraffuren sicher auch... Ich Bräuchte jetzt was, womit ich ALLE Schraffuren herausfiltern könnte, ganz egal, ob im Block, oder einfach... Ich bin da auf "ssget" gestoßen... Bloß, ich bekomme das nicht hin, wie kann ich da die Schraffuren einfach herausfiltern? Und dann, z.B. wie bei normalem Anwäheln umlayern, also von Layer A auf Layer B, dürfte bekannt sein, was ich meine... Wäre euch sehr verbunden, wenn ihr mir sagen könntet, was ich da genau eingeben muss, kenne mich mit dem Befehl so gut wie überhauptnicht aus... ------------------ Viele denken daran, die Menscheit zu ändern, aber kein Mensch denkt daran sich zu ändern... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 06. Apr. 2009 12:20 <-- editieren / zitieren --> Unities abgeben: Nur für Ralle
|