|
Lisp : reactor in lisp
CADmium am 13.05.2011 um 07:42 Uhr (0)
Wie ist es mitvlr-object-reactor mit Object event :vlr-modified ? ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."
|
In das Form Lisp wechseln |
|
Lisp : reactor in lisp
zech am 13.05.2011 um 08:00 Uhr (0)
Hallo Cadmium,habe ich schon dran gedacht. Ist aber so, das dem object-reactor vorher alle Objekte bekannt sein müssen. Man muss also ein oder mehrere Objekte dem reactor in einer Liste zuordnen (sog. owner).Mal abgesehen von einem bestimmten Block, wie oben beschrieben. Ich möchte die Referenz des Objektes haben welches ich anklicke und verschiebe, das ist eigentlich alles, alles andere ist dann ein Kinderspiel.Danke
|
In das Form Lisp wechseln |
|
Lisp : reactor in lisp
mkl-cad am 13.05.2011 um 13:16 Uhr (0)
Nur mal so ins blaue getippt.Was ist wenn du den Befehl zum Eigenschaften ändern neu definierst und dann nach der Wahl der Objekte diese prüfen läßt und nur dann wenn alles OK ist den Befehl aufrufst.Sollen denn alle anderen Objekte nicht zu ändern sein können?------------------ Martin Viele Grüße aus dem schönen Münsterland!
|
In das Form Lisp wechseln |
|
Lisp : reactor in lisp
archtools am 14.05.2011 um 19:53 Uhr (0)
Zitat:Original erstellt von zech:Hallo Cadmium,habe ich schon dran gedacht. Ist aber so, das dem object-reactor vorher alle Objekte bekannt sein müssen. Man muss also ein oder mehrere Objekte dem reactor in einer Liste zuordnen (sog. owner).Mal abgesehen von einem bestimmten Block, wie oben beschrieben. Ich möchte die Referenz des Objektes haben welches ich anklicke und verschiebe, das ist eigentlich alles, alles andere ist dann ein Kinderspiel.DankeDein Problem ist kein exotisches, sondern ein ganz und g ...
|
In das Form Lisp wechseln |
|
Lisp : reactor in lisp
zech am 16.05.2011 um 06:35 Uhr (0)
Erstmal allen die geantwortet haben, Vielen Dank.Die Lösung mit dem Objektreactor ist mir dann doch zu aufwändig.Aber in Anlehnung an diese Frage eine Ergänzung. Jetzt ganz ohne Reactor. Ich habe ein Objekt markiert durch klicken der linken Maustaste. Danach starte ich ein Lispprogramm. Ist es mir möglich in diesem Programm durch eine entsprechende Funktion festzustellen welches Objekt markiert ist. Eine Möglichkeit muss es doch geben, da bei der Markierung sich ja auch sofort das Eigenschaftenfenster aktu ...
|
In das Form Lisp wechseln |
|
Lisp : reactor in lisp
Geos am 16.05.2011 um 07:23 Uhr (0)
Probier mal folgendes:(sssetfirst (ssget "_P") (ssget "_P"))und dann(command "_.PROPERTIES")hth------------------Schöne GrüßeErnst www.geopaint.at
|
In das Form Lisp wechseln |
|
Lisp : reactor in lisp
zech am 12.05.2011 um 13:39 Uhr (0)
Hallo,ich habe ein Problem mit de reactoren. Ich weiß nicht genau welchen ich benutzen muss oder obes überhaut geht.(im Moment nehme ich den command reactor mit vlr-commandEnded)Ich habe in der Zeichnung viele verschiedene Blöcke und möchte den reactor nur aktivierenwenn es ein Block ist dessen Name mit "P_" anfängt. Ich klicke also einen Block an mit der linken Maustaste, greife ihn und verschiebe ihn.Jetzt möchte z.B.: den Layer ändern, bekomme ich hin, aber dies macht der reactor für alleswas ich versch ...
|
In das Form Lisp wechseln |
|
Lisp : reactor in lisp
zech am 16.05.2011 um 07:45 Uhr (0)
Ich denke das war ein guter Hinweis.Ich habe allerdings "ssgetfirst" benutzt. Damit klappt es. Ich selektiere ein Objekt in der Zeichnung und ein nachträglich aufgerufenes Lispprogramm kann mit "ssgetfirst" das selektierte Objekt weiterverarbeiten.Danke, ich denke der Fall ist gelöst.
|
In das Form Lisp wechseln |
|
Lisp : reactor in lisp
CADmium am 16.05.2011 um 08:06 Uhr (0)
ssgetfirst ist das eine, aber guck dir auch mal (ssget "I" ... ) an ... ist IMHO vielseitiger------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."
|
In das Form Lisp wechseln |
|
Lisp : vla-explode: MTexte?
Dorfy am 18.05.2011 um 15:59 Uhr (0)
Block oder Blockreferenz...Objekt wählen: ; IAcadBlockReference: AutoCAD Block Reference-Schnittstelle (Blockreferenz); Eigenschaftswerte:; Application (RO) = ...; InsUnits (RO) = "Millimeter"; InsUnitsFactor (RO) = 1.0; IsDynamicBlock (RO) = 0...; Unterstützte Methoden:; ArrayPolar (3); ArrayRectangular (6); ConvertToAnonymousBlock (); ConvertToStaticBlock (1); Copy (); Delete (); Explode (); GetAttributes (); GetBoundingBox (2); GetConstantAttributes (); GetDynamicBlockProperties (); GetE ...
|
In das Form Lisp wechseln |
|
Lisp : reactor in lisp
fuchsi am 16.05.2011 um 12:32 Uhr (0)
vlr-modified Reaktoren sind ziemlich böse, wenn im Reaktor das Reaktor-aufrufende Objekt geändert wird.Frühere versionen von Autocad sind dabei gnadenlos abgestürtzt, da die im Reaktor aufgerufenen Änderung sofort wieder den Reaktor aufgerufen hat.Neuere versionen verweigern mittlerweile jedliche Änderung im Reaktor.Darum sind im Command-willStart (end) Reaktor auch kein (command "....) erlaubt.
|
In das Form Lisp wechseln |
|
Lisp : reactor in lisp
zech am 16.05.2011 um 12:47 Uhr (0)
Das ist jetzt mein Ergebnis und es funktioniert sehr gut,ohne Absturz oder Ähnlichem.(vlr-command-reactor nil ( (:vlr-commandEnded . cmd-end-action)))In der Prozedur "cmd-end-action" wird die Argumentenliste nach "GRIP_STRETCH" durchsucht, wenn ok dann wird mit "ssgetfirst" das Objekt identifziert und wenn das Objekt ein Block ist mit dem Namen "P_*" dann wird es geändert. Dank an alle die hier gepostet haben.
|
In das Form Lisp wechseln |
|
Lisp : Namensbereich zum Schließen des Dokuments nicht gefunden
alfred neswadba am 30.03.2011 um 12:15 Uhr (0)
Hi,wenn Du zeigen würdest, bei welcher Programmzeile (externe EXE klingt ja nicht gerade nach LISP) der Fehler auftritt, dann könnte noch eher ins Detail gegangen werden. Ich kann es insofern bestätigen, dass (mit dotNET, wird mit VBA/VB6 wahrscheinlich ident sein) das öffnen von DOCs, die mit besagter Warnmeldung kommen, seit 2011 Probleme hat. Spich mit dieser Zeile:Code:Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.Open(....fliegt das Teil ab (mit 2010 gings noch mit dieser Art von D ...
|
In das Form Lisp wechseln |