Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  ACAD VBA Alternative

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  ACAD VBA Alternative (2960 mal gelesen)
Christian B.
Mitglied



Sehen Sie sich das Profil von Christian B. an!   Senden Sie eine Private Message an Christian B.  Schreiben Sie einen Gästebucheintrag für Christian B.

Beiträge: 86
Registriert: 09.03.2006

Windows 7
AutoCAD 2009
AutoCAD Architecture 2012

erstellt am: 13. Nov. 2009 20:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

ich bin noch recht Neu in Sachen ACAD und Programmierung.
Nach mehreren Anpassungen wollte ich das ACAD jetzt etwas für meine Zwecke Optimieren http://ww3.cad.de/foren/ubb/Forum145/HTML/002928.shtml
so zum Beispiel zur Steuerung von DynBlöcken und zum Einstellen von Parametern aus einer Form.

Vor einiger Zeit an der Uni haben wir mit VBA kleinere Excel Makros programmiert, was mir einen einfachen Einstieg in VBA für ACAD erlauben würde, was weniger Zeitaufwendig wäre wie Lisp oder C++ zu lernen.

Nur lese ich jetzt in der ACAD2008 Hilfe dass das für zukünftige Versionen nicht mehr verfügbar ist. Habe leider nicht die aktuelle ACAD2010, sonst könnte ich vergleichen.

1) Projekte wie das mit den Blöcken, macht es da überhaupt Sinn auf VBA etwas zu machen? Was ist euerer Meinung nach die beste Methode (Sprache) dafür?

2) Wie geläufig ist AutoLisp (zukünftig), ob es sich da lohnt sich einzuarbeiten?

3) "Autodesk has begun the transition of VB customization from VBA to .NET technology." habe ich irgendwo auf einer Support-Seite von Autodesk gelesen.
Kann mir jemand kurz erklären was ich mir unter dem .NET vorzustellen habe? Bei Microsoft im MSDN finde ich nur .NET in Visual Basic 6.0 oder C++, die ja beide Eigenständige Programme sind.
Wie wird das dann ins ACAD eingebunden bzw. editiert?
Menü: Makros -> Visual Basic Editor (ist das dann schon VB oder VBA)

Gibt es da eine Möglichkeit mit ACAD 2008 auch schon etwas zukunftsorientiertes zu machen?

4) Wo ist der Unterschied zu ObjectARX; das man sich im AC Develope Center runterladen kann?


Vielen Dank, Christian B.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 13. Nov. 2009 21:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi Christian,

mal zu den 'kleinen' Fragen:


>> dass das für zukünftige Versionen nicht mehr verfügbar ist

Es gibt durchaus Anzeichen, dass VBA in näherer Zukunft sein Ende hat. Z.B. in AutoCAD 2010 gibt es VBA nicht mehr im Package drin, sondern getrennt downloadbar und installierbar. VBA ist auch nicht mehr wirklich 64bit-tauglich, soll heissen mit AutoCAD 2010 64bit bekommst Du eine Performance, die unvergleichlich langsamer ist als die der 32bit-Version. Da kann auch Autodesk nichts dafür, das ist Micrsosoft-bedingt.


>> Projekte wie das mit den Blöcken, macht es da überhaupt Sinn auf VBA etwas zu machen

Normalerweise lese ich erst ganze Pflichtenhefte, um zu beurteilen, ob etwas besser mit SCRIPTING,  LISP, mit VBA, mit dotNET oder mit ARX umzusetzen ist. Obige Frage  'Projekte wie das mit den Blöcken'  ist ein wenig kurz für eine tatsächliche Beurteilung. Diese eine detaillierte Frage läßt sich mit VBA (fast) genauso umsetzen wie Dir Udo mit LISP gezeigt hat.


>> Wie geläufig ist AutoLisp (zukünftig)

Das wird Dir nur Autodesk beantworten können. Ich kann nicht für Autodesk sprechen, aber vielleicht meine Gedanken dazu äussern:

Autodesk ist sich sehr bewußt, dass der Erfolg von AutoCAD an der Flexibilität/der Programmiermöglichkeit hängt. Ab der Einführung von LISP als (relativ leicht zu erlernende Sprache) begann sich AutoCAD von den anderen entstehenden CAD-Systemen immer deutlicher abzuheben. Es gibt extrem viel bestehenden Code in LISP (bei Anwendern und auch bei Applikationsentwicklern) und zu riskieren, dass diese alle plötzlich 'bodenlos' dastehen, würde auch Autodesk ohne langsame Überleitung zu einer ähnlichen Alternative kaum durchführen können.


>> Kann mir jemand kurz erklären was ich mir unter dem .NET vorzustellen habe

'Kurz erklären' ist nicht, da musst Du Dich schon einlesen und der Editor hier (wo ich gerade tippe) und die Zeit lassen es auch nicht zu, da jetzt im Detail einen Vortrag zu halten. Ich versuch's oberflächlich und hoffe, dass das für Dich ausreichend ist.

Die Basis von dotNET-Programmierung ist zum einen dotNET-Framework und damit verbunden CLR und JIT.

Der Ablauf in der Programmierung ist dann:

- Du schreibst Deinen Code

- Du kompilierst Deinen Code, dieses Kompilieren erzeugt aber nicht direkten MachineCode (also bereits auf Prozessorarchitektur ausgerichteten Code) sondern ein CLR-Abbild.

- Startest Du jetzt das CLR-EXE (oder DLL), dann wird eigentlich zuerst in Deinem Rechner aus dem Framework ein Compiler gestartet (JIT), der es für Deinen aktuellen Prozessor nochmals kompiliert.

Der Vorteil ist dann, dass je nach Prozessor diese Form der Kompilierung auf Deinen Prozessor abgestimmt optimierten MachineCode generiert. Hauptsächlich macht sich das bemerkbar, dass (im Normalfall) Du als Programmierer gar nicht mehr darauf achten musst, ob der Anwender auf einem 64bit oder auf einem 32bit-Betriebssystem arbeitet, ob der Anwender 1 oder mehr Prozessoren/Prozessorkerne enthält (wenn Du MultiThreading-Applikationen schreibst). Du schreibst beispielsweise Deinen Code auf 32bit-Basis/DualCore und der Anwender eines 64bit-Systems/QuadCore startet Dein CLR-EXE und hat eine 64bit-Applikation und fertig.

Betonung aber dabei: schön wär, wenn das immer so auch funktionieren würde.


>> Wo ist der Unterschied zu ObjectARX

Unterschied wozu? Zu LISP? Zu VBA? ....   Ich nehm mal an (meine Glaskugel deutet es mir), Du meinst Den Unterschied zu C#. 

- in der Zeit, die Du zum Programmieren und zum Testen brauchst ==> 95% (soll heissen, mit dotNET bist Du brauchst Du nur 5%-10 der Zeit für Entwicklung/Test und Debugging verglichen mit C++)

- in der Technik: für jede Betriebssystemart eigenes Kompilieren/Testen/Debuggen (32bit/64bit)

- in der resultierenden Performance: ein wenig schneller als dotNET, aber nicht um Faktoren (abhängig von 'was wird gemacht')

- deutlich mühsamer in der Gestaltung der Benutzerführung, mit dotNET hast Du Formulareditor-Funktionen, die im C++ (ObjectARX) erstmal mühsam programmiert werden müssen.


So, das war's jetzt mal oberflächlich, ich hoffe es hilft! Detailfragen jederzeit und gerne, aber bitte nicht so globale 'Was ist ObjectARX', denn da gibt es doch genug Literatur im Internet.

- alfred -

------------------
www.hollaus.at

Christian B.
Mitglied



Sehen Sie sich das Profil von Christian B. an!   Senden Sie eine Private Message an Christian B.  Schreiben Sie einen Gästebucheintrag für Christian B.

Beiträge: 86
Registriert: 09.03.2006

Windows 7
AutoCAD 2009
AutoCAD Architecture 2012

erstellt am: 14. Nov. 2009 21:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

erst einmal vielen, vielen Dank an alfred (neswadba), das ist echt professionell hier...super Antwort, jetzt weiß ich so in etwa wo ich weitermachen muss.

Grüße Christian B.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Christian B.
Mitglied



Sehen Sie sich das Profil von Christian B. an!   Senden Sie eine Private Message an Christian B.  Schreiben Sie einen Gästebucheintrag für Christian B.

Beiträge: 86
Registriert: 09.03.2006

Windows 7
AutoCAD 2009
AutoCAD Architecture 2012

erstellt am: 14. Nov. 2009 22:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo da draßen, ich hab mich grad noch etwas mit dem Problem befasst und sind noch ein paar Fragen gekommen.

Wie ich bereits geschrieben habe, habe ich leider nicht die aktuellste Version von ACAD zur Verfügung und nur 2008.

Wie funktioniert das bei .Net und VB.Net mit den Kompilern (hat ACAD2010 einen eingebauten Editor für .NET) und der Einbindung in ACAD?
Im VBA Editor im ACAD 2008 kann ich mir ja die Klassen und Funktionen von ACAD anzeigen lassen, man schreibt seine Module und läd sie anschließend ins ACAD.
Sehe ich es richtig, dass ich dann eigentlich VB.Net Studio bräuchte?
Kann ich auch irgendwie ohne ACAD 2010 bzw für ACAD 2008 .Net Anwendugnen wie z.B. für die Blöcke programmieren?

Vielen Dank für Eure Mühen, Christian B.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 14. Nov. 2009 22:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

Einen eingebauten Editor (dotNET-basierend) gibt es (derzeit noch) nicht für AutoCAD. Du hast zum Programmieren folgende Varianten:

Ganz primitive Version:
Für Entwicklung von dotNET-Applikationen brauchst Du zumindest einen Text-Editor, denn der Compiler ist in Framework schon enthalten, hast Du Framework 2.0 (für AutoCAD 2008) auf Deinem Rechner, kannst Du auch schon loslegen.

Mittlere Variante:
Du lädst Dir VS2008-Express von der MS-Homepage herunter (kostenlos). Damit hast Du schon mal Syntax-Prüfung während des Codierens, macht natürlich deutlich mehr Sinn als die obige Variante! Hier muss aber ein wenig in den Project-Files händisch herumeditieren, dass Du zu einem sinnvollen Debuging kommst.

Große Variante:
VS2008 Professional (kostenpflichtig) lässt Dich ohne Umstände direkt in die Programmierung von AutoCAD-Applikationen einsteigen, nix mit händisch in Solution- bzw. Project-Files herumeditieren.

Konklusio: Zum Einstieg und zum Rantasten nimm die mittlere Variante. Wird's zu Deinem Hauptjob, dann die letzte/große Lösung.


>> Kann ich auch irgendwie ohne ACAD 2010 bzw für ACAD 2008 .Net Anwendugnen
>> wie z.B. für die Blöcke programmieren?

Code schreiben kannst Du schon, kompilieren auch, aber lauffähig wird Dein Code erst, wenn Du auch ein AutoCAD installiert hast.


>> Im VBA Editor im ACAD 2008 kann ich mir ja die Klassen und Funktionen von ACAD
>> anzeigen lassen, man schreibt seine Module und läd sie anschließend ins ACAD

mit VB.NET oder C# oder J# schreibst Du Code in VisualStudio, kompilierst den Code und lädst dann das resultierende DLL mit dem Befehl '_netload' in Dein AutoCAD. I.d.R. hast Du in Deiner Applikation eigene Befehle erstellt und diese stehen dann nach '_netload' im AutoCAD zur Verfügung.

HTH, - alfred -

------------------
www.hollaus.at

Christian B.
Mitglied



Sehen Sie sich das Profil von Christian B. an!   Senden Sie eine Private Message an Christian B.  Schreiben Sie einen Gästebucheintrag für Christian B.

Beiträge: 86
Registriert: 09.03.2006

Windows 7
AutoCAD 2009
AutoCAD Architecture 2012

erstellt am: 15. Nov. 2009 11:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

nochmals vielen Dank für die Antwort.

Ich werde dann wirklich erst mal mit der Express Edition Anfangen und mich versuchen da einzuarbeiten.

Gruß Christian B.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Christian B.
Mitglied



Sehen Sie sich das Profil von Christian B. an!   Senden Sie eine Private Message an Christian B.  Schreiben Sie einen Gästebucheintrag für Christian B.

Beiträge: 86
Registriert: 09.03.2006

Windows 7
AutoCAD 2009
AutoCAD Architecture 2012

erstellt am: 15. Nov. 2009 23:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Guten Abend,

entschuldigung dass ich euch nochmals um Hilfe bitten muss:

Ich hab jetzt mal einfache MSG-Boxen in VB Express ausprobiert.
Nun will ich  eine neue VB-Klassendatei erstellen und dann etwas loslegen.

Im Objektbrowser sollten doch eigentlich nun alle verwendbaren Befehle angezeigt werden. Soweit ist ja VB und VBA gleich.
Nur wo sind jetzt die ACAD speziefischen Befehle?
Momentan habe ich ACAD 2008 am laufen, dort gibt es jedenfalls im VBA Editor eine Bib, die heißt AutoCAD.

Grüße Christian B.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 16. Nov. 2009 09:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

schau Dir mal >>>dieses<<< an.

Wenn dann Fragen sind, dann versuche bitte die Fragen so zu formulieren, dass wir halbwegs erkennen können, was auf Deinem Bildschirm gerade abgeht. Die Angaben hier waren nicht gerade leicht verständlich, wo Du gerade hängst, ich hoffe, dass obiges PDF Deine Fragen beantwortet.

- alfred -

------------------
www.hollaus.at

Christian B.
Mitglied



Sehen Sie sich das Profil von Christian B. an!   Senden Sie eine Private Message an Christian B.  Schreiben Sie einen Gästebucheintrag für Christian B.

Beiträge: 86
Registriert: 09.03.2006

Windows 7
AutoCAD 2009
AutoCAD Architecture 2012

erstellt am: 16. Nov. 2009 15:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi, super, genau das habe ich gesucht!

Habe die Verweise um die nötigen AutoCad  .dll Dateien ergänzt, jetzt habe ich die Befehle wie im VBA Editor.

Habe leider bemerkt, dass es für die Objekte im .Net Editor dort natürlich keine HTML Hilfe mit Beispielen gibt, was sich vielleicht irgendwann mal ändern wird sobald ein .Net editor ins ACAD implementiert wird.

Gibt es irgenwie eine Möglichkeit .dlls bei jedem Systemestart automatisch zu laden; so wie man Lisp Dateien über die Cui laden kann?

Grüße Christian

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

Kinder, kauft Kämme!
Es kommen lausige Zeiten.

erstellt am: 16. Nov. 2009 15:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Christian B. 10 Unities + Antwort hilfreich

z.B. mit dem Eintrag
(command "netload" "C:\\Programme\\ACA2010\\RIB_SLIDE.dll")
in der acad.lsp
Zu näheren Infos bzgl. Dateien beim Start oder in jeder dwg laden, bitte die passende FAQ beachten.

------------------
Gruß,
runkelruebe          Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

System-Info | Excel -Suche | RuA-Suche | FAQ-ACAD | CAD.de-Hilfe | Sei eine Antilope

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 16. Nov. 2009 15:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi Christian,

zuerst gesucht oder zuerst Frage gestellt 

Mit der Google-Suche wärst Du schnell auf >>>dieses<<< gekommen.

Aber wenn Du gerade erst beginnst, lass das bitte! Hat Deine DLL einen Defekt/Fehler, dann kriegst Du AutoCAD nicht mehr in die Höhe. 

- alfred -

------------------
www.hollaus.at

Christian B.
Mitglied



Sehen Sie sich das Profil von Christian B. an!   Senden Sie eine Private Message an Christian B.  Schreiben Sie einen Gästebucheintrag für Christian B.

Beiträge: 86
Registriert: 09.03.2006

Windows 7
AutoCAD 2009
AutoCAD Architecture 2012

erstellt am: 16. Nov. 2009 20:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,
soweit mal danke für eure Ratschläge.

Ahh, nein, an die Registry trau ich mich wirklich noch nicht ;-)

Grüße Christian B.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

Kinder, kauft Kämme!
Es kommen lausige Zeiten.

erstellt am: 16. Nov. 2009 20:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Christian B. 10 Unities + Antwort hilfreich

Hi Christian,

>> Ahh, nein, an die Registry trau ich mich wirklich noch nicht ;-)

brauchst Du bei der acad.lsp Variante auch nicht ;-)
Kannst Du auch jederzeit wieder rausnehmen, einfach ; an den Anfang der Zeile oder ganz löschen.

Lies mal den verlinkten FAQ-Beitrag, der paßt schon. 

------------------
Gruß,
runkelruebe          Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

System-Info | Excel -Suche | RuA-Suche | FAQ-ACAD | CAD.de-Hilfe | Sei eine Antilope

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz