|
AutoCAD VBA : Makro mit Button starten
archstudent am 31.08.2005 um 23:46 Uhr (0)
Das Makro kannst Du unter Lisp= "Startgruppe" einbinden, damit es immer automatisch geladen wird!Dominik
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Auswahlsatz, Filter für selectionsets
otm am 19.10.2009 um 23:19 Uhr (0)
Hi alfred,hab hier mal zum besseren Verständnis meine Aufgabenstellung zusammengeschrieben.Workflow 2D-Längen- und 2D-Flächenermittlung:1. Benutzereingabe: Objekte auf unterschiedlichen Layern erstellen (Polylinien, Kreise oder Ellipsen, Linien, Blockreferenzen, ....) Es gibt 3 Layerkategorien Längen, Flächen und Texte Ein Layer enthält also entweder nur Längen (- Längen ermitteln) oder nur Flächen (- Flächen ermitteln) oder nur Texte (- wird nicht ausgewertet) Mischformen sind nicht zulässig ...
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : VBA und 3D
alfred neswadba am 31.10.2009 um 20:50 Uhr (0)
Hi Dirk, Mit dem Befehl Umbrenzungdamit beginnt leider schon der erste Problempunkt, diesen Befehl gibt es nicht per API, den kannst Du nur per SendCommand oder per Lisp (command "_bpoly" ... anstarten, es gibt keinen Rückgabewert, eben alle Nachteile, die SendCommand so bringt.Hast Du die Polylinie, kannst Du diese, wie Du schon in den Folgepunkten angeführt hast, extrudieren und (nachdem der Anwender Deiner Applikation den Basisvolumenkörper geklickt hat) auch mittels _subtract weiterarbeiten.Also ist de ...
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Auswahl ohne SelectonScreen
alfred neswadba am 02.11.2009 um 21:50 Uhr (0)
Hi,mit VBA kannst Du zwar ein Highlight der Entities auslösen, diese aber nicht mit Griffen versehen. Dazu benötigst Du einen Umweg über Lisp bzw. SendCommand eines Lisp-Befehls, der mit sssetfirst agiert.Siehe auch hier- alfred -------------------www.hollaus.at
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Auswahl ohne SelectonScreen
alfred neswadba am 03.11.2009 um 17:00 Uhr (0)
Hi, Wie muss der SendCommand-Befehl aussehen ?Ich hab doch oben einen Link hineingepackt, in dem der Syntax doch enthalten ist. Hier nochmals:Code:(setq pickset (ssadd (handent "dein objekt handle")))(sssetfirst pickset pickset)Und je nachdem, wie schön es sein soll, kannst Du im einfachsten Fall die erste Zeile für jeden Elementhandle wiederholen. Wenn Du das SelectionSet durch hast, dann die zweite Zeile starten.Soll es schöner sein (weil bei größerer Anzahl von Elementen halt viele Zeilen in den Befehls ...
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Linie auf Polylinie trimmen
alfred neswadba am 02.12.2009 um 09:22 Uhr (0)
Hi,Code: Dim tPLine As AcadLWPolyline Dim tLine As AcadLine ...tPLine und tLine sollten durch Einleseroutine ja schon bekannt sein Dim tIntPnts As Variant tIntPnts = tLine.IntersectWith(tPLine, acExtendThisEntity) und hier stehen dann die Schnittpunkte drin Wie ruft man die Befehle von VBA aus auf ? Mit SendCommand, aber was ?SendCommand ist hier absolut fehl am Platz, da Du Klicks am Bildschirm durchführen musst (um die Seite der Dehnung zu bestimmen), sollten dann aber mehrere Elemene übereinander ...
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Ansichtsfenster per VBA zuschneiden
idraH am 15.12.2009 um 14:11 Uhr (0)
danke erstmal für die (wenn auch ernüchternde) Antwort.da ich Position und Maße des SF und des AF kenne, würde ich gern auf eine manuelle Aktion (wählen der Polylinie) verzichten. Könnte ich an "SendCommand" eine zuvor erzeugte Polylinie übergeben, so dass keine Nutzeraktion nötig wird?Programmierung läuft rein in VBA und Lisp hab ich mich leider bis jetzt immer vor gedrückt.Könnte ev. noch irgendwas über XDATA laufen? (Friere darüber einige Layer im AF)?viele Grüße, Hartmut
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Ansichtsfenster per VBA zuschneiden
alfred neswadba am 15.12.2009 um 13:59 Uhr (0)
Hi,Methode (bzw. ein abgeleitetes Interface zu AcadPViewport mit Funktionen dafür) hätte ich auch nicht gefunden. Es wird voraussichtlich darauf hinauslaufen müssen, dies mit SendCommand "_mview" & vbCr & "_o" & vbCr abzuhandeln und eine zuvor erzeugte Polylinie bzw. Region dann zu wählen.Arbeitest Du ev. mit dotNET == da schon. Obs mit Lisp ginge, kann ich Dir leider nicht sagen (würde aber mal nicht ausschliessen, auch da zu suchen).Sorry, - alfred -------------------www.hollaus.at
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : VS2008 VB.Net acDoc.SendStringToExecute
CAD-Huebner am 24.02.2011 um 15:11 Uhr (0)
steht für Newline bzw. Enter in Lisp und auch C#.net, deshalb mein Schnellschuss. Aber bei VB.net ist es VBCr (wie mich auch schon Alfred korrigierte).------------------Mit freundlichem GrußUdo Hübnerwww.CAD-Huebner.de[Diese Nachricht wurde von CAD-Huebner am 24. Feb. 2011 editiert.]
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : nach Textteilen im Layernamen suchen
alfred neswadba am 22.02.2011 um 14:01 Uhr (0)
Hi, Was müsst ich noch schreiben das er in deiner Variante die Objekte im ACAD markiert?Markieren (so wie anklicken, sprich die Griffe sind da) geht im VBA nicht, da kannst Du eigentlich nur von VBA aus das LISP zusammensetzen und per SendCommand schicken.Wenn jedoch ein Highlight reichtm dann:Code:Call tEnt.Highlight(True)- alfred -PS: oben hab ich Blödsinn geschrieben (wegen nur Modellbereich..., sorry CADmium ), habs schon editiert------------------www.hollaus.at
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : nach Textteilen im Layernamen suchen
CADmium am 22.02.2011 um 12:53 Uhr (0)
die Zeile in der Befehlzeile oder auf einen Button macht das auch ... ist aber Lisp (sssetfirst nil (ssget "_x" (list(cons 410 (getvar "CTAB"))(cons 8 "*F30*"))))------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Polylinien in einzelne Linien aufsplitten
CADmium am 15.02.2011 um 18:10 Uhr (0)
Tja , mit den Daten wird es das reinste Rätselraten, da wir die auch ein Comuter nicht weiterhelfen können.Bei ordentlichen Daten kannst du ein Selectionset aller PLS machen ... da die Attributblöcke, deren Einfügepunkt einen gewissen Abstand zur PL nicht übersteigt einsammeln ... die Attribute auswerten .. und z.b. er Lisp und den vlax-curve-Funktionen die Koordinatentripel bilden. dann zwischen den gesicherten Koordinaten - wie Alfred schon beschrieben hat - die Zwischenwerte Ermitteln und zu guter Letzt ...
|
In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Einstellungen in den Optionen mittels VBA
CAD-Huebner am 09.02.2010 um 12:53 Uhr (0)
Du könntest die Variable "HideSystemPrinters" im aktuellen ProfilHKEY_CURRENT_USERSoftwareAutodeskAutoCADR18.0ACAD-80XX:407ProfilesProfilnameGeneralauf 1 setzen.Mit Lisp könntest du es so machen:(setenv "HideSystemPrinters" "1")------------------Mit freundlichem GrußUdo Hübnerwww.CAD-Huebner.de[Diese Nachricht wurde von CAD-Huebner am 09. Feb. 2010 editiert.]
|
In das Form AutoCAD VBA wechseln |