| |
| 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, eine Pressemitteilung
|
Autor
|
Thema: Ansichtsfenster drehen (2531 mal gelesen)
|
nebuCADnezzar Mitglied
Beiträge: 292 Registriert: 17.10.2007 AutoCAD 2023 Inventor 2023 64 bit Win 10 Intel I7 10610U 1.8 GHz Quadro P520 32 GB Ram
|
erstellt am: 15. Feb. 2012 16:34 <-- editieren / zitieren --> Unities abgeben:
Hallo So nach langer auszeit schlag ich mich wiedermal mit lisp rum... lang nicht mehr gebruacht, ich bin mir sicher das die Lösung meies Problems kiki ist :-) Ich hab mir n lisp zusammenkopiert :-) was mir im Ansichtsfenster erlauben sollte n element anzuwählen an dem das Fenster ausgerichtet wird (eigentlich bks objekt, dann _plan an akt bks und zwar so das ich dann den selben massstab hab (_plan macht zoom all)) Das problem ist die Benutzereingabe beim bks objekt, irgendwie fehlt da sowas wie getelement oder so... (defun c:afd (/ p s ausw) (setq p (getvar "viewctr") (setq s (getvar "viewsize") ;(setq ausw (cdr (assoc 5 (entget (car (entsel "\nObjekt wählen: ")))))) (command "bks" "o") (command "_plan" "a" get) (command "zoom" "_c" p s) (command "bks" "w") ) Gruss Robin ------------------ ...glaubst das ist luft die du gerade atmest? in diesem raum... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadplayer Ehrenmitglied CADniker
Beiträge: 1833 Registriert: 28.04.2009 Windows 10 64bit system Autocad Civil3d 2020 ENGLISH Visual Studio 2019 OpenDCL.Runtime.9<P>
|
erstellt am: 15. Feb. 2012 16:43 <-- editieren / zitieren --> Unities abgeben: Nur für nebuCADnezzar
Hi Robin! Bei mir lag das hier rum, vllt hilfts weiter... Musst halt 2 Punkte von deinem Objekt anklicken. Code:
(defun C:DA ( / p0 p1 p2 a pi_2 _expert _osmode) (setq _expert (getvar "EXPERT")) (setq _osmode (getvar "OSMODE")) (setvar "UCSFOLLOW" 0) (initget 1) (setq p0 (getpoint "\nPoint at lower left corner: ")) (setq p0 (list (car p0) (cadr p0) 0.0)) (initget 1) (setq p1 (getpoint p0 "\nPoint out direction of lower line: ")) (setq p1 (list (car p1) (cadr p1) 0.0)) (setq a (angle p0 p1)) (setq pi_2 (/ pi 2.0)) (setq p2 (polar p0 (+ a pi_2) 10.0)) (setvar "EXPERT" 5) (setvar "OSMODE" 0) (command "_ucs" "3" p0 p1 p2) (command "_plan" "") (command "_zoom" "w" (list 0.0 0.0) (list (distance p0 p1) 0.0)) (command "_ucs" "w") (setvar "EXPERT" _expert) (setvar "OSMODE" _osmode) )
------------------ Gruss Dirk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nebuCADnezzar Mitglied
Beiträge: 292 Registriert: 17.10.2007 AutoCAD 2023 Inventor 2023 64 bit Win 10 Intel I7 10610U 1.8 GHz Quadro P520 32 GB Ram
|
erstellt am: 16. Feb. 2012 08:54 <-- editieren / zitieren --> Unities abgeben:
Hallo Dirk Ja das wäre natürlich auch ne alternative, aber wenn ich mir schon die mühe fürn lisp mach, soll es so arbeiten wie ich das will und nich umgekehrt:-) gibts nicht irgend nen befehl der quasi auf ne benuzereingabe wartet? (command "bks" "o" *hierhin*) und dann sollte das ding eigentlich laufen! weil anstatt das ich da den block wählen kann will er bei *hierhin* schon die nächste zeile ausführen... gruss Robin
------------------ ...glaubst das ist luft die du gerade atmest? in diesem raum... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadplayer Ehrenmitglied CADniker
Beiträge: 1833 Registriert: 28.04.2009 Windows 10 64bit system Autocad Civil3d 2020 ENGLISH Visual Studio 2019 OpenDCL.Runtime.9<P>
|
erstellt am: 16. Feb. 2012 09:43 <-- editieren / zitieren --> Unities abgeben: Nur für nebuCADnezzar
In deiner Auswahl vom Objekt musst du ja sagen, um was es sich bei dem Objekt handelt GC 5 weisst ja nur auf das Handle (string) hin. Bei Linienobjekten liest du dir Anfangs- und Endpunkt aus, aber was machst du bei Polylinien, Kreisen, Texten usw (sind ja auch Objekte) ------------------ Gruss Dirk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nebuCADnezzar Mitglied
Beiträge: 292 Registriert: 17.10.2007 AutoCAD 2023 Inventor 2023 64 bit Win 10 Intel I7 10610U 1.8 GHz Quadro P520 32 GB Ram
|
erstellt am: 16. Feb. 2012 10:00 <-- editieren / zitieren --> Unities abgeben:
wieso muss ich das definieren? der befehl (command "bks" "o") ist ja schon so definiert, wenn ich den in der befehlszeile manuell starte sag ich auch "bks" "o" und dann werd ich zur Objektauswahl aufgefordert. Das problem ist das lisp an dem punkt nicht auf ne manuelle benuzereingabe wartet sondern die routine weiterspult... Vieleicht denk ich wiedermal falsch, aber es sollte doch möglich sein lisp zu zwingen auf ne benuzereingabe zu warten! gruss robin ps ich hab ja mit der ausgelammerten zeile ;(setq ausw (cdr (assoc 5 (entget (car (entsel "\nObjekt wählen: ")))))) erst den das objekt auszuwählen und hinterm "o" das gespeicherte objekt mittels "ausw" wieder zuzuweisen, hat aber auch nicht geklappt... ------------------ ...glaubst das ist luft die du gerade atmest? in diesem raum... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
spider_dd Mitglied
Beiträge: 1144 Registriert: 27.11.2003 Win 10Pro Intel(R) Core(TM) i7-7700 NVIDIA Quadro P1000 ACAD, Civil-3D 2018
|
erstellt am: 16. Feb. 2012 10:24 <-- editieren / zitieren --> Unities abgeben: Nur für nebuCADnezzar
|
cadplayer Ehrenmitglied CADniker
Beiträge: 1833 Registriert: 28.04.2009 Windows 10 64bit system Autocad Civil3d 2020 ENGLISH Visual Studio 2019 OpenDCL.Runtime.9<P>
|
erstellt am: 16. Feb. 2012 10:35 <-- editieren / zitieren --> Unities abgeben: Nur für nebuCADnezzar
Ich glaube dein Ansatz ist so nicht ausführbar. Wenn du schon mit "ob" das Objekt abfragst, dann musst du es auch definieren, bevor du es an command übergibst. Die command-zeilen werden stur der Reihe nach abgerattert, ohne stop und aber. Schau doch mal in meinem code, den ich nicht sehr schön, aber praktisch finde. Da wird die user-Ansicht klar definiert und dann an command übergeben. Das ist der Weg. ------------------ Gruss Dirk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
neurosis Mitglied dipl.ing.
Beiträge: 224 Registriert: 22.08.2006
|
erstellt am: 16. Feb. 2012 11:09 <-- editieren / zitieren --> Unities abgeben: Nur für nebuCADnezzar
|
nebuCADnezzar Mitglied
Beiträge: 292 Registriert: 17.10.2007 AutoCAD 2023 Inventor 2023 64 bit Win 10 Intel I7 10610U 1.8 GHz Quadro P520 32 GB Ram
|
erstellt am: 16. Feb. 2012 14:39 <-- editieren / zitieren --> Unities abgeben:
hallo marco jep das hat das problem gelöst und mich direkt zum zweiten gebracht :-) (defun c:afd (/ p s en) (setq p (getvar "viewctr")) (setq s (getvar "viewsize")) (princ p) (princ s) (setq en (car (entsel "\nObjekt wählen: "))) (command "_ucs" "_object" en) (command "_plan" "_c" ) (command "bks" "w") (command "zoom" "m" p s) ) funktioniert so weit so gut, ausser das die Variable "viewctr" nen 3d punkt ausgibt " (-96145.5 -58960.0 0.0) " und der befehl "_plan" nach "_c" aber ne 2d eingabe möchte... ich hab versucht nun per car nur die beiden ersten elemente der liste rauszukriegen aber ich steh gerade aufm schlauch (und das is ja doch auch nich so schwierig...) ------------------ ...glaubst das ist luft die du gerade atmest? in diesem raum... 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. Feb. 2012 14:47 <-- editieren / zitieren --> Unities abgeben: Nur für nebuCADnezzar
|
nebuCADnezzar Mitglied
Beiträge: 292 Registriert: 17.10.2007 AutoCAD 2023 Inventor 2023 64 bit Win 10 Intel I7 10610U 1.8 GHz Quadro P520 32 GB Ram
|
erstellt am: 16. Feb. 2012 15:17 <-- editieren / zitieren --> Unities abgeben:
hallo CADmium schön was von dir zu hören :-) CADmium kenn ich noch du hast mir schon öffters geholfen! (ich war wie gesagt schon laaaange nicht mer hier aktiv...) aber im moment hab ich noch immer null durchblick... ich habs nun auf morgen verschoben... es macht noch immer nicht was es soll, princ gibt immernoch ne dreierliste aus anstatt zweier atom und beima ausführen werd ich aus m Ansichtsfenster geschmissen und im Layout zoomts iiiirgendwo hin :-) war zulange weg, seit ich vor jahren an meinen reaktoren rumgebastelt hab hab ich nich mer gelispelt, und mein Lispbuch is eingelagert nu verzweifel ich an ner car cadr boooa funktion... schönen abend und danke soweit (morgen krig ich das hin :-) ------------------ ...glaubst das ist luft die du gerade atmest? in diesem raum... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Geos Mitglied Vermessungstechniker i.R.
Beiträge: 1017 Registriert: 21.09.2001 ACAD Map 2010, Win 7 Pro eigene Lisp's<P>HW: Core i7 860, 2.8 GHz 3.3 GB, NVIDIA GeForce GTS 250
|
erstellt am: 16. Feb. 2012 19:24 <-- editieren / zitieren --> Unities abgeben: Nur für nebuCADnezzar
Als Vermesser ist mir das Koordinatensystem heilig. Daher mein Vorschlag: Geh (aus dem Papierbereich) ins betreffende Ansichtsfenster (Doppelklick) und dann nimm den Befehl Code: (command "_.DVIEW" "" "_TWIST" ...
dann kannst die gewünschte Richtung zeigen.------------------ Schöne Grüße Ernst www.geopaint.at 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. Feb. 2012 20:08 <-- editieren / zitieren --> Unities abgeben: Nur für nebuCADnezzar
|
nebuCADnezzar Mitglied
Beiträge: 292 Registriert: 17.10.2007 AutoCAD 2023 Inventor 2023 64 bit Win 10 Intel I7 10610U 1.8 GHz Quadro P520 32 GB Ram
|
erstellt am: 17. Feb. 2012 09:26 <-- editieren / zitieren --> Unities abgeben:
Hallo Geos Dein einwand hat allerdings was! Und da mein erster Versuch sowiet funktionierte ausser das der Zomm zentrumspunkt nich da hin wollte wo er sollte hab ich nen neuen Ansatz gemäss deiner Idee: (defun c:afd (/ en drehb) (setq en (car (entsel "\nObjekt wählen: "))) (princ en) (setq drehb (en(assoc 50 (entget ename))))) (princ drehb) ;(setq dreh (- 360 drehb)) (command "_.dview" en "" "_twist") ) nun ich hab das gestern bestimmt 10x gesehen und heute finde ich aber keinen Eintrag mehr wo ich schön rauskuken kann wie man den dxf gruppenkode für die blockdrehung ausliest... ich würde für ne korrektur an der stelle danken :-)
gruss robin ------------------ ...glaubst das ist luft die du gerade atmest? in diesem raum... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
neurosis Mitglied dipl.ing.
Beiträge: 224 Registriert: 22.08.2006
|
erstellt am: 17. Feb. 2012 09:44 <-- editieren / zitieren --> Unities abgeben: Nur für nebuCADnezzar
|
nebuCADnezzar Mitglied
Beiträge: 292 Registriert: 17.10.2007 AutoCAD 2023 Inventor 2023 64 bit Win 10 Intel I7 10610U 1.8 GHz Quadro P520 32 GB Ram
|
erstellt am: 17. Feb. 2012 10:18 <-- editieren / zitieren --> Unities abgeben:
Hallo So das lisp funktioniert soweit so gut bis auf eines: Scheinbar ist der dxf code 50 nicht der Drehwinkel den man über Eigenschaften abfragen kann?! Gruppencode meint dazu: 50-58 Winkel (bei DXF-Dateien Ausgabe in Grad, bei AutoLISP- und ObjectARX-Anwendungen in Bogenmaß) Was ist n bogenmass? In welchem Verhältniss zum Winkel steht das (dann kann mans wieder zurückrechnen...) Gruss Robin ------------------ ...glaubst das ist luft die du gerade atmest? in diesem raum... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
neurosis Mitglied dipl.ing.
Beiträge: 224 Registriert: 22.08.2006
|
erstellt am: 17. Feb. 2012 10:23 <-- editieren / zitieren --> Unities abgeben: Nur für nebuCADnezzar
|
nebuCADnezzar Mitglied
Beiträge: 292 Registriert: 17.10.2007 AutoCAD 2023 Inventor 2023 64 bit Win 10 Intel I7 10610U 1.8 GHz Quadro P520 32 GB Ram
|
erstellt am: 17. Feb. 2012 11:26 <-- editieren / zitieren --> Unities abgeben:
Master of Commander! Ich habs geschaft!! Danke Danke U's sind unterwegs! Und noch was gelernt, von rad hab ich ja noch nie gehört! aber macht natürlich sinn winkel so zu speichern anstatt in grad, gon, stunden oder boooa... :-) (defun c:afd (/ en drehb dreh) (setq en (car (entsel "\nObjekt wählen: "))) (princ en) (setq drehb (cdr (assoc 50 (entget en)))) (princ drehb) (setq dreh (- 360 (* drehb (/ 180 pi)))) (princ dreh) (command "_.dview" en "" "_twist" dreh "") ) schönes Wochenende!! ------------------ ...glaubst das ist luft die du gerade atmest? in diesem raum... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Geos Mitglied Vermessungstechniker i.R.
Beiträge: 1017 Registriert: 21.09.2001 ACAD Map 2010, Win 7 Pro eigene Lisp's<P>HW: Core i7 860, 2.8 GHz 3.3 GB, NVIDIA GeForce GTS 250
|
erstellt am: 20. Feb. 2012 19:08 <-- editieren / zitieren --> Unities abgeben: Nur für nebuCADnezzar
|
nebuCADnezzar Mitglied
Beiträge: 292 Registriert: 17.10.2007 AutoCAD 2023 Inventor 2023 64 bit Win 10 Intel I7 10610U 1.8 GHz Quadro P520 32 GB Ram
|
erstellt am: 21. Feb. 2012 07:19 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen Ja will zur Zeit wohl nur Blöcke als drehvorgabe... irgendwann wenn sobald ichs dann brauche wird die Sache mit den Polylinen wohl auftauchen... aber ich denke das schleifen wir dann schon irgendwie ein :-) ------------------ ...glaubst das ist luft die du gerade atmest? in diesem raum... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |