|
Autocad VBA : Anfänger sucht Hilfe
Big Sven am 24.01.2006 um 11:15 Uhr (0)
Hallo Forum!Ich bin ein VBA Neuling der sich jetzt ein weinig von Lisp umgewöhnen muss, da ein kleines Projekt diese Sprache benötigt.Mein 1. Problem: Ich möchte einen Text in Acad auswählen und den Inhalt später weiterverarbeiten. Leider stocke ich aber schon bei dem Auslesen des Textinhaltes. Mein Programmcode:Public Sub TextCopy() Dim Prompt As String Dim Object As Object Dim UebergabeText As String On Error Resume Next Prompt = "Wählen Sie ein Quelltext:" ThisDrawing.Utility.GetEntity Object, Pic ...
|
| In das Form Autocad VBA wechseln |
|
AutoCAD VBA : Wieviele Elemente sind ausgewählt
Stelli1 am 30.11.2007 um 18:11 Uhr (0)
Hallo wwwilli, Zitat:Original erstellt von wwwilli:Hallo,das funktioniert nicht stabil bei mir. Es geht bei Ausführung mit F5 oder F8, aber nicht bei Ausführung über einen Button oder Menü Makro ausführen. Dann wird .Count immer 0, und danach ist auch nichts mehr ausgewählt. Was tun?MfG,wwwilliWenn du die Ausführung des Makros auf einem Button gelegt hast funktioniert eine Vorauswahl wenn du den Aufruf wie in dem Link beschrieben gestaltest.Also du definierst (z.B. in der acad.lsp) unter Lisp einen Befehl ...
|
| In das Form AutoCAD VBA wechseln |
|
Autocad VBA : Lisp und VBA
mapcar am 12.11.2004 um 13:34 Uhr (0)
Hi fuchsi, schau mal nach, was du da in der Registry findest: HKEY_CLASSES_ROOTVL.Application.1 oder (Acad 2000-2002) HKEY_CLASSES_ROOTVL.Application.16 (Acad 2004/2005) Fehlen die Einträge, dann kann die CLSID/GUID nicht ermittelt werden. Dann kannst du es immer noch mit einem manuellen Verweis versuchen. Die Sache hat aber Einschränkungen. Das ist zwar eine TLB, aber es gibt keine Definitionen für die Rückgabe. Gibt dir Lisp einen Int, einen Double oder einen String zurück, hast du keine Probleme. Auch n ...
|
| In das Form Autocad VBA wechseln |
|
Autocad VBA : winkel durch dynamischen schnittpunkt
Stelli1 am 03.04.2006 um 21:38 Uhr (0)
Hallo,du kannst in deine Startlisp folgende Lisp einbindenCode:(defun c:MeinBefehl (/) (vla-runmacro(vlax-get-acad-object) "MeinMacro"))Damit kannst du dann das Makro "MeinMacro" auf der Befehlszeile mit "MeinBefehl" aufrufen. Den Befehl kannt du auch alternativ per VBA und Sendcommand ausführen.Variablen lokale und globale kannst du in VBA nach belieben einrichten. Wird eine Variable innerhalb eine Prozedur (Sub/Function) mit Dim Variable deklariert gilt sie nur in der Prozedur. Wird sie in einen Klassenm ...
|
| In das Form Autocad VBA wechseln |
 |
AutoCAD VBA : Polylinie Vertex entfernen
otm am 31.03.2022 um 14:50 Uhr (15)
Hallo Forum,wie kann man aus einer Polylinie (LWPL) einen Punkt entfernen? Konkret den Anfangspunkt, einen mittleren oder den Endpunkt, falls die Methoden unterschiedlich sind.Alle gefundenen Beispiele sind in lisp, damit komme ich aber nicht weiter.Quasi das Gegenteil von AddVertex.Beispiel: Ich habe von einer PL alle Koordinaten ausgelesen und möchte die PL am Anfang um ein Delta kürzen.Ist Delta als das erste PL-Segment, muss ich den ersten Vertex entfernen und dann vom zweiten Element (Delta - Länge d ...
|
| In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Thisdrawing.export geht nicht mit DGN
runkelruebe am 17.03.2009 um 08:26 Uhr (0)
Moin, Zitat:Original erstellt von Andreas Widmann:-DGNEXPORT geht bei mir nicht, kommt nur die Meldung "Unbekannter Befehl ...", liegts am 2008er Acad? Im 2006er gehts auch nicht._DGNEXPORT geht schon, aber dann bekomm ich ja wieder die Maske.Damit hast Du wohl leider verloren. Die Befehlszeilenversion scheint erst 2009 gekommen zu sein. Ich kann Dein Verhalten hier nachvollziehen und in der 2008-er Hilfe fehlt der entscheidende Satz Zitat:Wenn Sie an der Eingabeaufforderung -dgnexport eingeben, werden dor ...
|
| In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Listview - Vom ausgew. Listview-element zum dazugehörigen Block
Stelli1 am 16.03.2009 um 10:48 Uhr (0)
Hallo Volker, Zitat:es scheint ein kleines Verständigungsproblem vorzuliegenglaube ich auch ;) Deshalb noch mal die Interpretation. Zitat:hab gesehen das du nicht die Flächen ID speicherst.gemeint war die ObjektID bzw. das Handle der Polylinie. Zitat:Dann sollest du das in einem weiteren Attribut machen. Auf die ObjectID aus der Felddefinition kannst du IMHO nicht mehr zugreifen. Das entsprechende Attribut hat zwar noch ein ExtensionDictionary aus dem hervorgeht das es sich um ein Feld handelt, aber die De ...
|
| In das Form AutoCAD VBA wechseln |
|
Autocad VBA : noch mal die Frage nach dem Layereigenschaften-Filter
Stelli1 am 05.11.2005 um 19:39 Uhr (0)
Hallo, Zitat:Was verbirgt sich übrigens hinter oLSM , wofür steht o? in deinem Beispiel.wie schon gesagt, ich habe mit dem Layermanager noch nichts gemacht. Das Beispiel kommt aus der Hilfe von 2004. oLSM heisst wohl ObjektLayerStateManager.Aber die Frage ist wie legst du deine Layerstrukturen an ? Mit VBA oder Lisp oder anders?Wenn du es mit VBA machst würde ich mr eventuell eine Funktion basteln die mir die gewünschten Gewerke ein- und ausschaltet.Beispíel (ungetestet)Code:Public WorkspaceState (0 to 10) ...
|
| In das Form Autocad VBA wechseln |
|
Autocad VBA : winkel durch dynamischen schnittpunkt
shodan am 03.04.2006 um 21:04 Uhr (0)
danke für die rasche antwort.das problem an der sache liegt leider daran, dass durchaus 2 linen am angegebenen punkt liegen können. ich hab mich daher für eine "linienunabhängige" variante entschieden und lasse mit objektfang nächster einen punkt auf der linie wählen (da es nur text ist, ist die 100%ige ausrichtung nicht sooo tragisch). das funktioniert jetzt schon sehr schön.zwei fragen hat der blutige anfänger noch:- gibt es eine möglichkeit ähnlich lisp die geschriebene funktion auch direkt über einen c ...
|
| In das Form Autocad VBA wechseln |
|
Autocad VBA : Delphi
mapcar am 02.12.2004 um 12:13 Uhr (0)
Im Prinzip ist es egal, ob du die COM-Schnittstelle in AutoCAD über VBA oder Delphi ansteuerst - die COM-Methoden (früher auch ActiveX-Methoden genannt) sind die selben, egal ob Vlisp, VBA oder Delphi. Ein Unterschied ist allerdings da - wie bei VB (nicht VB A ) läuft Delphi nicht in process , rechne also damit, dass dein Programm stellenweise deutlich langsamer läuft als VBA oder VLisp. Und ein weiterer Hinweis: GetActiveOleObject( AutoCad.Application ) und createobject( Autocad.Application ) sind natürl ...
|
| In das Form Autocad VBA wechseln |
|
AutoCAD VBA : Über das Schriftfeld eines Attributwertes die damit verknüpfte Polylinie ermitteln
Stelli1 am 18.03.2009 um 20:00 Uhr (0)
Hallo Volker,wenn es ein MText wäre wäre es einfach. Da gibt es die Methode in der Com Schnittstelle.Code:debug.print Mtext.FieldCodeBei Attribut ist das aber leider nicht der Fall. IMHO wird die Felddefinition in einem Dictionary gespeichert. Normalerweise müsste man dieses auslesen können.Um das zu Testen hab ich mal versucht und folgenden "Test" gebaut.Code:Sub test() Dim xRecordType As Variant, XRecordData As Variant Dim XRecord As AcadXRecord Dim BlockRef As AcadBlockReference Dim Attributes As Va ...
|
| In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Selbsterstellte Befehle mit AcadDocument_BeginCommand abfangen
Stelli1 am 22.04.2008 um 16:45 Uhr (0)
Hallo,ich verstehe nicht wo das Problem ist. Im obigen Link war eine Lösung aufgeführt wie man ein VBA Makro als AutoCAD Befehl definieren kann.Ich habe die Lisp Zeile zum Test mal in eine Funktion gepackt.Diese Sub muss du als erstes ausführen. Später wird die Zeile in die AcadDoc.Lsp eingefügt. Dann steht der Befehl nach jedem laden des Dokumentes zur Verfügung.Code:Sub EigenerBefehl() Dieser wird normalerweise in der AcadDoc.Lsp untergebracht ThisDrawing.SendCommand "(defun c:MyLoad (/) (vl-vbarun "" ...
|
| In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Block.delete funktioniert nicht immer
Christian Blei am 31.01.2010 um 17:49 Uhr (0)
Hi Alfred, ohne jetzt nachsehen zu können, es sollte ein .Clear geben und damit sollte das SelectionSet geleert sein. Im letzten Absatz hast Du ja darauf verwiesen, funktionierts nicht? Gibt es in .Net nicht. Auch keon remove. Zumindesten in Autocad 2009. Rein gefühlt, die SS haben in .Net nicht die Bedeutung wie in lisp oder Vba. Im Developers Guide Introduction schreibt Autodesk vom Mergen von Selectionsets indem man die ObjectIds in Collections zusammenführt.... TonyT schreibt "remove of Entites" aus SS ...
|
| In das Form AutoCAD VBA wechseln |