|
AutoCAD VBA : Lisp-Programm abwarten
gerhard123 am 08.04.2009 um 08:57 Uhr (0)
Hallo Alfred,ich rufe das LISP-Programm aus VBA auf und waret in der Lisproutine auf eineige Benutzereingaben zB Einfügepunkt und Objektwahl.Das Lispprogramm wird auch aus VBA aufgerufen und warten auf das der Enfügepunkt gestezt wird ... aber das VBA-Programm läuft weiterPrivate Sub openWBlockType() ThisDrawing.SendCommand "blockErstellen " Dim blockDWG, zngName As String blockDWG = "c: empTempALLWBO.dwg" Dateinamen für Bilddatei zusammenbauen ThisDrawing.Application.Documents.Open (blockDWG) Th ...
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Lisp-Programm abwarten
gerhard123 am 08.04.2009 um 08:32 Uhr (0)
Hallo zusammen,wenn ich aus VBA ein Lispprogramm aufrufe, kann ich irgendwie in VBA auf das Ende des Lispprogrammes warten oder das Ende des Lsipprogrammes abfragen?Vorab schon mal DankeGerhard
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Lisp-Programm abwarten
alfred neswadba am 08.04.2009 um 09:06 Uhr (0)
Hi Gerhard,ok, ich gehe davon aus, dass SendCommand auch solange/soviel sendet, bis dem Befehl alle Parameter übergeben sind und dann auch der (LISP-)Befehl fertig abgearbeitet ist.Von der Strategie des Programmierens hast Du hier schon ein eher gewaltiges Problem (einer der Gründe, wieso SendCommand eher zu vermeiden ist) == wenn der User mit ESC Dein LISP abbricht (in Deinem Fall keine Koordinate eingibt), dann stehst Du mit Deinem nachfolgenden VBA-Code auch an.D.h. die weniger saubere Variante wäre, au ...
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Lisp-Programm abwarten
alfred neswadba am 08.04.2009 um 08:48 Uhr (0)
Hi Gerhard,wie rufst Du Dein Lisp auf? In der Regel (wenn VBA und nicht dotNET) wartet die Fortsetzung Deines Codes sowieso auf Beendigung des vorigen Statements.- alfred -------------------www.hollaus.at
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Lisp-Programm abwarten
gerhard123 am 08.04.2009 um 09:16 Uhr (0)
Hallo Alfred,in meinem Lisp steckt nicht sehr viel drinnen, ich erstelle nur einen WBlock. Habe das auch zuvor mit VBA gemacht, mein Problem ist nur der Basispunkt vom WBlock wenn ich diesen wieder einfügen will.Ich wollte mir das verschieben der Geometrie auf den 0,0,0 Punkt ersparen.Hast du vielleicht einen Tipp wie ich das Problem lösen kann?Lg.Gerhard
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Lisp-Programm abwarten
alfred neswadba am 08.04.2009 um 09:29 Uhr (0)
Hi Gerhard, Code:Hast du vielleicht einen Tipp wie ich das Problem lösen kann?...welches Problem, jetzt sinds schon zwei a) das mit dem Geometrie-Schieben vor wblock? Sollte eigentlich kein Problem mehr sein, ist ja schon beantwortetb) das mit dem Warten? Dann nimm aus meiner obigen Antwort die weniger saubere Variante- alfred -------------------www.hollaus.at
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Über das Schriftfeld eines Attributwertes die damit verknüpfte Polylinie ermitteln
steinemann09 am 18.03.2009 um 15:09 Uhr (0)
Hallo Leute,In meinen letzten Beitrag "Vom auussgew.Listviewelemt zum dazugehörigen Block", bin ich auf ein weiters Problem gestoßen, was nicht ohne weiters in VBA zu lösen ist, wie man mir als Quereinsteiger mitteilte. Deswegen will ich es zu einem neuen Thema machen.In meinen Blockattribut (siehe Besispiel.dwg) ist der Wert des Attributes "Flächenbezeichnung" über ein Schriftfeld assoziativ mit einer geschl. Polylinieverknüpft. Der Flächeninhalt der PL wird in das Attribut übernommen.Ich suche nach eine ...
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Block einfügen??mal anders??
steinemann09 am 09.04.2009 um 13:12 Uhr (0)
Hallo Harry,Du hattest vor langer Zeit ein schönes Beispiel über den sendcommand-Befehl. Mir gelingt es zwar einen Parameter an den Lispaufruf zu übergeben, aber auf den Rückgabewert der Lispfunktion kann ich in VBA nicht zugreifen. Hast Du eventuell eine Idee dazu?_____________________________________________________________Sub test()ThisDrawing.Utility.GetEntity BlockRef, inspkt, "Blockwählen" oi = Attributes(3).ObjectID Objekt-Id des 3. Attributwertes hOBJEKTID = oi ThisDrawing.SendCommand "(oi2la " & ...
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Mit sendcommand eine Lisp-Funktion aufrufen
steinemann09 am 09.04.2009 um 13:21 Uhr (0)
Hallo Leute,Ich habe ein Problem mit dem sendcommand-Befehl. Mir gelingt es zwar einen Parameter an den Lispaufruf zu übergeben, aber auf den Rückgabewert der Lispfunktion kann ich in VBA nicht zugreifen. Hat jemand eventuell eine Idee dazu?_____________________________________________________________Sub test()ThisDrawing.Utility.GetEntity BlockRef, inspkt, "Blockwählen"oi = Attributes(3).ObjectID Objekt-Id des 3. AttributwerteshOBJEKTID = oiThisDrawing.SendCommand "(oi2la " & hOBJEKTID & ")" & vbCr Die ...
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Mit sendcommand eine Lisp-Funktion aufrufen
CAD-Huebner am 09.04.2009 um 14:46 Uhr (0)
Lisp an VBA ist leider nur über workarounds möglich.Im Beispiel bietet sich z.B. USERS1 zur Ablage des Layernamens an.Aber warum von hinten durch die Brust ins Auge? Warum nicht alles in Lisp oder VBA schreiben?------------------Mit freundlichem GrußUdo Hübnerwww.CAD-Huebner.de
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Mit sendcommand eine Lisp-Funktion aufrufen
steinemann09 am 09.04.2009 um 15:15 Uhr (0)
Hallo Udo,Zitat"Warum nicht alles in Lisp oder VBA schreiben?"In meinen letzten Beitrag habe ich das ausführlich erläutert. "Über das Schriftfeld eines Attributwertes die damit verknüpfte Polylinie ermitteln " -ist leider nicht in VBA möglich- deshalb der KlimmzugIch habe etwas umständlich mittlerweile das Problem gelöst, in dem ich die über die Funktion GetLispSymbol( siehe Anhang von Henning "Lispschnittstelle_fuer_VBA.pdf") mir den Wert in VBA ermitteln lassen kann.Die Lispfunktion war nur ein Beispiel, ...
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Block einfügen??mal anders??
alfred neswadba am 09.04.2009 um 15:25 Uhr (0)
Hi Volker,über SendCommand bekommst Du keine Rückgabewerte. Du kannst aber in Deinem Lisp den Rückgabewert in einer der USER-Setvariablen speichern und auf diese Variable dann von VBA aus zugreifen.- alfred -------------------www.hollaus.at
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Verweis auf DVB-Projekt während Laufzeit setzen
jemuehh am 11.04.2009 um 11:58 Uhr (0)
Hallo zusammen,Ich habe ein Problem und weiß nicht, wie is dieses lösen soll. Ich habe ca. 150 DVB-Projekte. In jedem Projekt ist ein Verweis gesetzt zu der Datei SYSTEM.DVBWenn ich nun meine DVBs auf einem anderen System installiere, ist natürlich der Pfad zur SYSTEM.DVB verschieden zu dem Pfad, wie er auf meiner Ursprungsmaschine ist.Die Prozeduren un den DVBs werden über Lisp getriggert. Nach der Triggerung wird das entsprechende Projekt geladen und die Prozedur ausgeführt. Ich habe eine Methode entwick ...
|
In das Form AutoCAD VBA wechseln |