|
AutoCAD VBA : Lisp einbinden??
alfred neswadba am 30.01.2009 um 09:48 Uhr (0)
Hi, Zitat:ThisDrawing.SendCommand ("text")...Jetzt muss ich nur wissen wie ich es ausführen kannIn der Sprache des Anwenders hätte ich mal gesagt, die Buchstaben T E X T hinschreiben, ist ok, aber dann musst Du ENTER drücken;) , in der Sprache des Programmierers heisst das dann:Code:ThisDrawing.SendCommand ("text" & vbcr) Zitat:Und wie ich das hinbekomme, dass das Useform so lange verschwindet wie der Befehl noch läuftIch schreibe meine Programme in der Regel so, dass ich nicht einen AutoCAD-Befehl anstart ...
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Block mit bestimmten Attribut
alfred neswadba am 21.01.2009 um 23:44 Uhr (0)
Hi,anbei ein Beispiel, das Du an die Stelle setzen kannst, an der feststeht, dass die Blockreference gefunden ist. Dann wird das angesprochene sssetfirst gemacht. Ich hoffe es passt für Dich so Code:zuerst mal hinzoomenDim tMin As VariantDim tMax As VariantCall tBlRef.GetBoundingBox(tMin, tMax)Call ThisDrawing.Application.ZoomWindow(tMin, tMax)und jetzt gripzuerst bestehende selection loeschen (bei map 2* aufrufen)Call ThisDrawing.SendCommand("(sssetfirst nil nil)")dann erzeugen damit ein selectionset basi ...
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Lisp einbinden??
alfred neswadba am 30.01.2009 um 12:55 Uhr (0)
Hi,bei Büchern musst Du unterscheiden, was ist AutoCAD-spezifisch und was ist allgemeines VBA (auch gültig dann in Excel, Word, ...)Allgmein hätte ich (auf die schnelle) gefunden: http://www.vb-seminar.de/ welches mir nach ein paar Minuten überfliegen ganz ok aussieht, aber finden wirst Du im Internet jede Menge.Schwerer wird es dann schon, wenn Du VBA mit AutoCAD in Kombinaton suchst. Da hätte ich aber mal vermutet, nachdem Du den internen Aufbau der AutoCAD-Objekte durch Lisp ja schon kennst, dass Du nac ...
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Über das Schriftfeld eines Attributwertes die damit verknüpfte Polylinie ermitteln
alfred neswadba am 18.03.2009 um 15:33 Uhr (0)
Hi,und wenn Dus in Lisp schon hast, es ist nicht verwerflich, unterschiedliche Programmiersprachen zu verwenden, wenn es denn vorteilhaft (und technisch machbar) ist.Wenn Du Lisp in VBA verwenden willst, dann schau Dir das hier an.- alfred -------------------www.hollaus.at
|
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
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 : 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 : Maßstabliste (scalelist) bearbeiten
alfred neswadba am 20.05.2009 um 11:51 Uhr (0)
Hi Andreas,traurige Antwort, mit VBA wirds imho nix, mit dotNET wäre ein Zugriff möglich, mit LISP weiss ich nicht - alfred -------------------www.hollaus.at
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : vb.net Starke Namen
alfred neswadba am 24.06.2009 um 11:58 Uhr (0)
Hi Andreas, Zitat:Ich habe das Problem nun anders gelöst...für Dich gut, für mich schade, weils mich schon sehr interessiert hätte. Mit Lisp verstehe ich nicht ganz, was mit Ausgabe und aus Lisp heraus gemeint ist. Wenn Du aus Deiner dotNET-Applikation Lisp-Code starten und ausführen willst, dann gibt es das VL.Application-Objekt, das gibt Dir die Möglichkeit, LispCode aus dotNET an das VL.Application-Objekt zu übergeben und zu evaluieren, und es liefert auch einen Return-Wert, wenn das Dein Lisp-Code mac ...
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Block Zuschneiden
alfred neswadba am 06.07.2009 um 21:08 Uhr (0)
Hi,sorry, ich sehe keine Möglichkeit, dies in VBA zu tun ohne über Lisp oder dotNET oder ARX auszuweichen.Mit Lisp hast Du hier einen CodeWenn es einfacher sein soll, dann kannst Du auch über das VL-Application-Object mit (command "_xclip" ... aus VBA heraus arbeiten.Aber eine Lösung hier zu präsentieren, die das gesamte Event-Handling für nachfolgendes Ändern der Grenzpolylinie inkludiert, benötigt einige Zeit (zumindest deutlich mehr als ich hier geben kann). Hoffe es hilft Dir trotzdem weiter, - alfred ...
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Block Zuschneiden
alfred neswadba am 07.07.2009 um 09:28 Uhr (0)
Hi,mit z.B. (handent "3D2") kannst Du das Objekt mit dem Handle &h3D2 an Lisp übergeben, Du kannst genauso nur den Handle als Text übergeben und dann im Lisp mit handent auswerten.Wenn es Dir darum geht, wie man in Lisp eine Funktion definiert, die Parameter übernimmt == das kriegst Du auch schon aus der Hilfe direkt raus, da steht z.B. (defun sym ([arguments] [/ variables...]) expr...) HTH, - alfred -------------------www.hollaus.at
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Block Zuschneiden
alfred neswadba am 27.07.2009 um 21:42 Uhr (0)
Hi,vorerst mal sorry, der Thread ist mir entglitten. Zitat:Bekomme das Lisp programm von oben nicht zum laufen?...kannst Du mir den Code zeigen, damit ich mir vorstellen kann, worans scheitern könnte.Arbeitest Du jetzt mit Lisp oder VBA (aus dem heraus Du etwas Lisp-artiges starten willst)?- alfred -------------------www.hollaus.at
|
In das Form AutoCAD VBA wechseln |