| |
| 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: DXF-Code Abfragen (610 mal gelesen)
|
PBPaul Mitglied Konstrukteur
Beiträge: 48 Registriert: 28.09.2004
|
erstellt am: 11. Sep. 2006 11:34 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich möchte gern zwischen 3D-Drahtmodel und Gouraud-Schattierung toggeln. Nun weiß ich inzwischen, dass der DXF-Gruppencode 281 für Viewports für Draht =1 und für Gouraud-Schattiert = 4 ist. Wie kann ich mit LISP diesen Status abfragen und ändern ? MfG Paul Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 18.1, LibreOffice 5+
|
erstellt am: 11. Sep. 2006 12:16 <-- editieren / zitieren --> Unities abgeben: Nur für PBPaul
Hallo Paul, was meinst Du mit "toggeln"? Wenn Du nur "umschalten" möchtest, leg` Dir doch das ganze auf einen Schalter. Falls Du es innerhalb einer Routine brauchst, helfen die Lisp-Befehle "entget", "car", "assoc" und "entsel" sicherlich weiter... Nur so auf die Schnelle :-( Gruß Frederik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PBPaul Mitglied Konstrukteur
Beiträge: 48 Registriert: 28.09.2004
|
erstellt am: 11. Sep. 2006 12:22 <-- editieren / zitieren --> Unities abgeben:
|
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 18.1, LibreOffice 5+
|
erstellt am: 11. Sep. 2006 12:45 <-- editieren / zitieren --> Unities abgeben: Nur für PBPaul
OK, mal sehen, ob ich Dir kurz helfen kann - ist eigentlich ein ACAD-Thema, also ein wenig fehl am Platz in diesem Forum, aber gut, Du wolltest ja auf Lisp losgehen:-) Also: In ACAD rechte Maustaste in den grauen Bereich - Anpassen. Es sollte ein Menü auftauchen. Scrollen, bis Du "Benutzerdefiniert" lesen kannst. Dann mit linker MT eine "benutzerdefinierte Schaltfläche" gedrückt in einem Werkzeugkasten ablegen (am besten vorher einen eigenen erstellen, geht auch unter "Anpassen"). Wieder mit der rechten MT auf Deine neue Schaltfläche - Eigenschaften öffnet ein weiteres Fenster. Dort kannst Du den auszuführenden Befehl als Text hinterlegen. Füge da mal Code: ^C^C_.shademode;_2;
ein...Am besten, Du läßt Dir den Toolbar "Schattieren" anzeigen. Nun hast Du eine einfache und eine kompliziertere Lösung: Bau Dir selbst 2 Schalter für jede Art (wenig sinnvoll, da bereits im Toolbar vorhanden!) oder Du bastelst Dir eine Abfrage, welcher Modus gerade aktiv ist und schaltest dann auf den anderen um. Etwas eleganter - aber aufwändiger und mehr Wissen erforderlich. Falls Du allerdings mit dem Werkzeugkaste "Schattieren" bereits zufrieden bist, habe ich mich umsonst bemüht:-( Also mach mal, und laß hören. Viel Glück! Frederik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PBPaul Mitglied Konstrukteur
Beiträge: 48 Registriert: 28.09.2004
|
erstellt am: 11. Sep. 2006 13:12 <-- editieren / zitieren --> Unities abgeben:
Hallo Frederik, wie du scon schreibst, etwas mehr Wissen erforderlich da der Ansichtsmodus keine Variable ist, die man einfach abfragen kann. Der Status des Ansichtsfensters lässt sich nur über den DXF-Gruppencode auslesen. Aber wie? MfG Paul 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: 11. Sep. 2006 13:19 <-- editieren / zitieren --> Unities abgeben: Nur für PBPaul
Hallo Paul, wenn Du Dir zwei Buttons erstellst, kannst Du Dir folgende Macros hinterlegen: Schattieren: $M=$(if,$(and,$(eq,$(getvar,tilemode),0),$(eq,$(getvar,cvport),1)),^C^C_shademode,^C^C_shademode _f) Drahtmodell: $M=$(if,$(and,$(eq,$(getvar,tilemode),0),$(eq,$(getvar,cvport),1)),^C^C_shademode,^C^C_shademode _2) Vielleicht ist das ja schon die Lösung die Du brauchst, sonst mußt Du damit noch ein bißchen rumprobieren. ------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004
|
erstellt am: 11. Sep. 2006 13:26 <-- editieren / zitieren --> Unities abgeben: Nur für PBPaul
Jo, Joerns Vorschlag ist gut! Nochmals zur eingangs gestellten Frage - Status abfragen: Code: (cdr (assoc 281 (entget (car (entsel)))))
liefert Dir die aktuellen Einstellungen, also eine Zahl. Das Umstellen via Lisp auf die Schnelle übersteigt leider meine bescheidenen Kenntnisse:-( [Edit: Einfach mal in ACAD in die Befehlszeile eingeben, Ansichtsfenster wählen. Edit] Frederik[Diese Nachricht wurde von Paulchen am 11. Sep. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 11. Sep. 2006 13:31 <-- editieren / zitieren --> Unities abgeben: Nur für PBPaul
Viewports lassen sich nicht "entmoden" und ActiveX stellt auch keine Property hinsichtlich shademode, somit bleibt eh bloß das "command". Und den aktuellen Modus im Modellbereich auslesen ??? @PBPaul: Gewöhn dich an die 2 Knöpfe ------------------ - 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 |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004
|
erstellt am: 11. Sep. 2006 13:38 <-- editieren / zitieren --> Unities abgeben: Nur für PBPaul
Hallo nochmal, @Cadmium: Gut zu wissen, wieder was gelernt! Da hätte ich als Anfänger lange rumtüfteln können :-) Hat es einen bestimmten Grund, daß sich die Sache nur über "command" lösen läßt - oder ist das die Eigenwilligkeit von Autodesk? Frederik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 11. Sep. 2006 13:45 <-- editieren / zitieren --> Unities abgeben: Nur für PBPaul
steht in der Lisp-Hilfe zu entmode und zu entmake .. zum Grund ... frag die Programmierer.. wahrscheinlich zeichnungsdatenbankmäßig zu viel zu beachten, so daß die entmake-Funktion an ihre Grenzen stieß und ne Weiter/Neuentwicklung wollte man sich sparen.. ------------------ - 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 |
PBPaul Mitglied Konstrukteur
Beiträge: 48 Registriert: 28.09.2004
|
erstellt am: 11. Sep. 2006 13:58 <-- editieren / zitieren --> Unities abgeben:
Danke für die Antworten, geht also doch nicht. Vieleicht wäre eine dynamische TOOLBOX die Lösung. Bei jedem Klick auf dem Button wird dieser ersetzt. Hab mal in VBA nachgesehen aber keine Möglichkeit gefunden ein Button in eine vorhandene Toolbox über VBA zu setzen (nur neu angelegte). Ich glaube ich gewöhne mich lieber doch an 2 BUTTONS. MfG Paul Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11
|
erstellt am: 11. Sep. 2006 14:34 <-- editieren / zitieren --> Unities abgeben: Nur für PBPaul
|
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004
|
erstellt am: 11. Sep. 2006 14:54 <-- editieren / zitieren --> Unities abgeben: Nur für PBPaul
|