| |
| 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: Schraffur mit entmod verändern (1627 mal gelesen)
|
Alfonso Mitglied Holztechniker
Beiträge: 44 Registriert: 24.08.2005 HP Workstation Z400 Intel(R) Xeon(R) CPU W3550 @ 3.06GHz 16.0 GB RAM Nvidea Quadro 4000 Windows 7 Proffessional 64bit AutoCAD 2012 Inventor 2012 Navisworks Manage 2012
|
erstellt am: 16. Aug. 2007 12:11 <-- editieren / zitieren --> Unities abgeben:
Hallo, bin gerade dabei das schraffieren mit einem Lisp zu vereinfachen. Wenn ich mit folgendem Code den Abstand bei einer Benutzerdefinierten Schraffur verändere, wird der neue Abstand in den Eigenschaften angezeigt. Die Schraffur selber verändert sich aber nicht. Woran kann das liegen? (entmod (subst '(41 . 10) (assoc 41 (entget (entlast))) (entget (entlast)))) Gruß Alfonso
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: 16. Aug. 2007 13:14 <-- editieren / zitieren --> Unities abgeben: Nur für Alfonso
Hallo Alfonso, da in der Schraffur auch die aktuellen Musterdaten mit abgespeichert werden, müsstest Du warscheinlich die entsprechenden Einträge (GC 45, 46, 49) auch noch "skalieren", damit das Muster geändert angezeigt wird. (Hab's noch nicht gebraucht, aber probiers mal aus). Grüsse, Henning ------------------ VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 16. Aug. 2007 13:14 <-- editieren / zitieren --> Unities abgeben: Nur für Alfonso
Probiers mit (and(setq HATCH(car(Entsel))) (setq HATCH(vlax-ename->vla-object HATCH)) (=(strcase(vla-get-objectname HATCH))"ACDBHATCH") (not(vl-catch-all-error-p (vl-catch-all-apply 'vla-put-PatternSpace (list HATCH 10.0) ) ) ) (vla-evaluate HATCH) ) oder mit (setq HATCH(entlast))) (entmake (subst '(41 . 10) (assoc 41 (entget HATCH)) (entget HATCH))) (entdel HATCH) Die Schraffur muß ja neu aufgebaut werden .. (evaluate ..) ------------------ - 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 |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 16. Aug. 2007 13:31 <-- editieren / zitieren --> Unities abgeben: Nur für Alfonso
Hallo, hier noch mal ein Test, in dem die Musterdaten GC 45, 46, 49 mit geändert werden: Code:
(defun c:hatch_test (/ hatch skal_alt skal_neu) (setq hatch (car(entsel)) skal_alt (cdr(assoc 41 (entget hatch))) skal_neu (getreal "\nBitte neue Skalierung:")) (entmod (mapcar '(lambda(A) (cond ((member (car A)'(41)) (cons (car A)skal_neu)) ((member (car A)'(45 46 49)) (cons (car A) (/(cdr A) (/ skal_alt skal_neu)))) ('T A)))(entget hatch))))
VORSICHT: Vor dem Gebrauch sollte folgendes bedacht werden: wenn ich die Skalierung einer Schraffur im Eigenschaftenfenster von ACAD2006 ändere ist eine "Sperre" vorhanden, so daß ich keine zu kleine Skalierung eingeben kann. Mit dieser Funktion ist das möglich, wenn der Wert zu klein ist, dann ist ACAD völlig überlastet => ALT+STRG+ENTF ------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Alfonso Mitglied Holztechniker
Beiträge: 44 Registriert: 24.08.2005 HP Workstation Z400 Intel(R) Xeon(R) CPU W3550 @ 3.06GHz 16.0 GB RAM Nvidea Quadro 4000 Windows 7 Proffessional 64bit AutoCAD 2012 Inventor 2012 Navisworks Manage 2012
|
erstellt am: 20. Aug. 2007 12:11 <-- editieren / zitieren --> Unities abgeben:
|
Wolfgang S Mitglied CADaver
Beiträge: 270 Registriert: 06.03.2006 AC 2009, C3D 2009, AC 2010, C3D 2010, AC 2011, C3D 2011, RVT 2010, RVT 2011, ASD 2011 und alles darunter bis R14 + Win XP, Win XP64, Win 7/64
|
erstellt am: 23. Aug. 2007 11:18 <-- editieren / zitieren --> Unities abgeben: Nur für Alfonso
Hab das Tool gerade ausprobiert, es ist wieder (mein altes) Problem: Das Hatch wird im aktuellen UCS neu aufgebaut, die Richtungen der Schraffuren sind somit vorher und nachher nicht gleich. kennt Ihr ´ne Lösung, dass jeder Hatch in dem UCS umdefiniert wurde, in dem er erstellt wurde? bei den Eigenschaften fand ich jedenfalls keinen Hinweis auf ein UCS / OCS lg wolfgang Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 23. Aug. 2007 11:29 <-- editieren / zitieren --> Unities abgeben: Nur für Alfonso
.. bei der ActiveXvariante ist das UCS egal .. da wird alles in WKS gemacht ... ------------------ - 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 |
Wolfgang S Mitglied CADaver
Beiträge: 270 Registriert: 06.03.2006 AC 2009, C3D 2009, AC 2010, C3D 2010, AC 2011, C3D 2011, RVT 2010, RVT 2011, ASD 2011 und alles darunter bis R14 + Win XP, Win XP64, Win 7/64
|
erstellt am: 23. Aug. 2007 12:13 <-- editieren / zitieren --> Unities abgeben: Nur für Alfonso
ja, ebendas ist mein Problem. Ich habe ca. 2000 Hatches (als Beispiel) welche vom User in 5 verschiedenen UCS erstellt wurden. Wenn ich die Skalierung anpasse ist alles umgestellt auf Welt und das ist in dem Fall eine einfache aber falsche Lösung. lg Wolfgang
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 23. Aug. 2007 12:18 <-- editieren / zitieren --> Unities abgeben: Nur für Alfonso
da stellt sich doch nichts auf Welt ich ändere doch bloß Patternspace ... evtl. mußt du da die Größe anpassen , aber koordinaten werden doch nicht verändert Patternspace kannst du dann nicht absolut setzen , sondern als Faktor * momentanen Patternspace der jeweiligen Schraffur ------------------ - 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 |
Wolfgang S Mitglied CADaver
Beiträge: 270 Registriert: 06.03.2006 AC 2009, C3D 2009, AC 2010, C3D 2010, AC 2011, C3D 2011, RVT 2010, RVT 2011, ASD 2011 und alles darunter bis R14 + Win XP, Win XP64, Win 7/64
|
erstellt am: 23. Aug. 2007 13:19 <-- editieren / zitieren --> Unities abgeben: Nur für Alfonso
Code: (and (setq HATCH(car(Entsel))) (setq HATCH(vlax-ename->vla-object HATCH)) (=(strcase(vla-get-objectname HATCH))"ACDBHATCH") (not(vl-catch-all-error-p (vl-catch-all-apply 'vla-put-PatternSpace (list HATCH 0.05) ) ) ) (vla-evaluate HATCH) )
hab ich so verwendet. (PatternSpace vorher war 0.01)
Erstellen des Hatches in einem beliebigen UCS (siehe Screenshot1) Beim Ausführen des Befehls war ich in einem anderen UCS als beim Erstellen. Und im 2. Screenshot sieht man, dass sich die Richtung des Hatches geändert hat. das isses, dass ich meine lg Wolfgang Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 23. Aug. 2007 13:46 <-- editieren / zitieren --> Unities abgeben: Nur für Alfonso
...das passiert auch bei Änderung irgendeines Wertes per Eigenschaftsfenster, weil dann die Schraffur geupdatet wird, da das USC der Erstellung nicht mit in den Schraffurdaten gespeichert wird. (setq HATCH(car(Entsel))) -> ((-1 . <Objektname: 79ad8588> ) (0 . "HATCH") (330 . <Objektname: 79af6cf8> ) (5 . "1C19") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "AM_0") (100 . "AcDbHatch") (10 0.0 0.0 0.0) (210 0.0 0.0 1.0) (2 . "_USER") (70 . 0) (71 . 0) ....(79 . 0) (98 . 1) (10 0.0 0.0 0.0)) Das hatten auch die Geniusprogrammierer als Mangel erkannt und bei ihren Schraffurerstellungsbefehlen dafür gesorgt, das das UCS in den XDATAS mitgespeichert wird. z.B. ((-1 . <Objektname: 79ad82e8> ) (0 . "HATCH") (330 . <Objektname: 79af6cf8> ) (5 . "1BC5") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "AM_8") (100 . "AcDbHatch") (10 0.0 0.0 0.0) (210 0.0 0.0 1.0) (2 . "_U") (70 . 0) .........(10 -44.0378 15.9707 0.0) (-3 ("GENIUS_GENOBJ-N-HTC_13" (1002 . "{") (1000 . "OWNER") (1000 . "GEN") (1002 . "}")) ("GENIUS_GENODEF_13" (1002 . "{") (1000 . "HIER") (1070 . 0) (1002 . "}") (1002 . "{") (1000 . "MANEDIT") (1070 . 0) (1002 . "}") (1002 . "{") (1000 . "NOSEL") (1070 . 0) (1002 . "}") (1002 . "{") (1000 . "BEHIND") (1070 . 0) (1002 . "}") (1002 . "{") (1000 . "OTHER") (1070 . 0) (1002 . "}") (1002 . "{") (1000 . "REACTOR") (1002 . "}")) ("GENIUS_GENHATCH_13" (1002 . "{") (1000 . "DATA") (1040 . 45.0) (1042 . 2.5) (1000 . "_U") (1070 . 0) (1011 -44.0378 15.9707 0.0) (1002 . "}") (1002 . "{") (1000 . "UCS") (1010 -16.2346 -29.2634 0.0) (1010 0.99208 -0.125608 0.0) (1010 0.125608 0.99208 0.0) (1002 . "}")))) und somit hab ich bei Mechanical und dem Befehl Poweredit dein Problem nicht. ------------------ - 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 |
Wolfgang S Mitglied CADaver
Beiträge: 270 Registriert: 06.03.2006 AC 2009, C3D 2009, AC 2010, C3D 2010, AC 2011, C3D 2011, RVT 2010, RVT 2011, ASD 2011 und alles darunter bis R14 + Win XP, Win XP64, Win 7/64
|
erstellt am: 23. Aug. 2007 13:54 <-- editieren / zitieren --> Unities abgeben: Nur für Alfonso
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 23. Aug. 2007 14:00 <-- editieren / zitieren --> Unities abgeben: Nur für Alfonso
.. oder du gehst einen ähnlichen Weg wie Genius damals .. mit nem eigenen (ergänztem) Hatch-Befehl, der die UCS-Daten mit drannpappt... und nem eigenen Hatchedit, das die UCSdaten wieder mit auswertet. oder du bittest Adesk in einem der nächsten Releases, doch bitte diesen Aspekt zu beachten und das Schraffurobjekt entsprechend zu erweitern, denn das das geht,haben sie ja schon bewiesen ( wenn auch nur durch Übernahme der zugekauften Genuisfunktionalitäten) ------------------ - 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 |
Wolfgang S Mitglied CADaver
Beiträge: 270 Registriert: 06.03.2006 AC 2009, C3D 2009, AC 2010, C3D 2010, AC 2011, C3D 2011, RVT 2010, RVT 2011, ASD 2011 und alles darunter bis R14 + Win XP, Win XP64, Win 7/64
|
erstellt am: 23. Aug. 2007 14:03 <-- editieren / zitieren --> Unities abgeben: Nur für Alfonso
Zitat: oder du bittest Adesk in einem der nächsten Releases, doch bitte diesen Aspekt zu beachten und das Schraffurobjekt entsprechend zu erweitern.
ich glaub ich werd aus Protest garnix mehr Hatchen ) vielleicht klappt das ja *lol* Wolfgang
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |