Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Umstieg VLISP -> VBA

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:  Umstieg VLISP -> VBA (1195 mal gelesen)
Wurzelsepp
Mitglied


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

Beiträge: 7
Registriert: 13.06.2011

erstellt am: 13. Jun. 2011 12:49    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 liebes Forum!

Grüßeuch erstmal! Bin ganz frisch hier und guter Dinge, mit Eurer Hilfe meine Herausforderungen meistern zu können!

Programmieren ist eigentlich nicht das, womit ich mein Brot verdiene. Aber ich hab mir privat einige Lisp-Programme geschrieben, die mir (und meinen Kollegen) die Arbeit nicht gerade versüßen aber immerhin vereinfachen. Zum Beispiel die automatische Erstellung von Rohr-Formstücken. Meine letzte Aktion war das Hinzufügen von Formularen mittels odcl. Und spätestens damit bin ich in einer Sackgasse gelandet. Für die Formulare musste auf jedem PC eine Laufzeitumgebung installiert werden. Dass Lisp sowieso veraltet ist, darüber brauchen wir nicht reden.
Ich spiele mich daher mit dem Gedanken, meine Lisp-Programme in VBA zu erstellen. Gleich vorweg: Null Vorahnung. Aber am Einarbeiten solls nicht liegen. Das ein und das andere Skript hab ich mir schon besorgt, aber für VBA für AutoCAD scheint nicht viel am Markt zu sein. Ein paar grundlegende Fragen sind bisher offen geblieben. Kann sie mir jemand beantworten?

Wie liefere ich an das Makro die Werte mit den Abmessungen für das Erstellen von Standardteilen? In Lisp ist das ja einfach. Eine Liste (mit Unterlisten) hat sämtliche Parameter enthalten (ein mehrdimensionales array quasi). Über die Eingabe der Nennweite (dem Schlüssel sozusagen) wird die richtige Zeile (Liste) ausgelesen. Muss jetzt eine eigene Datentabelle in Access,... angelegt werden? Wäre schade, weil ich hätte mein Projekt gerne kompakt und nicht verstreut auf mehrere Dateien.
Wenn´s in VBA keine andere Möglichkeit gibt ein array anzulegen als nach dem Schema "wert(n) = xyz" werd ich alt. Weil n gibt´s ganz schön viele.

Eine andere Frage, die ich aber nur stelle, weil sie mir gerade einfällt und ich ja noch keinen Schimmer hab von VBA: In Lisp hab ich ausgehend vom Startpunkt (getpoint) alle anderen Eckpunkte berechnet (polar start winkel abstand) und dann verbunden. Fertig war der Rohrbogen, Reduzierung oder weiß Gott was noch alles. Wie würde das in VBA passieren?

Über die ein und die andere Anregung würd ich mich freuen!

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


Ex-Mitglied

erstellt am: 13. Jun. 2011 14:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

herzlich willkommen bei CAD-de! 

>> Dass Lisp sowieso veraltet ist, darüber brauchen wir nicht reden

Nicht zwangsweise so sehen, es gibt immer noch LISP-Einzeiler, für die Du mit VB(A) Dir die Finger wundschreibst (übertrieben, aber sinngemäß ist es so).


>> Ich spiele mich daher mit dem Gedanken, meine Lisp-Programme in VBA zu erstellen

Da stellst Du jetzt von 'überaltetem LISP' (das aber noch weiter leben wird) auf überaltetes VBA (das kaum eine Überlebenschance hat) ==> Tipp: überleg Dir das! 
Zum einen wird VBA (für AutoCAD) schon seit 2 Versionen mit dem Beisatz zum Download bereitgestellt 'nächste Version gibt's das nicht mehr'.
Zum anderen bist Du mit 64bit-Betriebssystem (und damit 64bit AutoCAD) in einer Performanceklemme (fest angezogene Klemme ), bei vielen Objektzugriffen während Deines Applikationsdurchlaufs kannst Du schon mal Faktor 100 bis 1000 langsamer einrechnen als 32bit.
Denk mal lieber über VB.NET oder C# nach, da steckt mehr Zukunft drin und da Framework auf jedem Rechner installiert ist, brauchst Du (solange Du nicht Fremdlib's installieren musst) auch mit Deiner App nix mitliefern.


Zu Deinen Fragen (die mir zu oberflächlich erscheinen, daher auch meine Antworten oberflächlich)

>> Wie liefere ich an das Makro die Werte mit den Abmessungen für das Erstellen von Standardteilen?

Z.B. mit Array, ob jetzt mehrdimensionaler Array of Variant oder ein Array von Klasseninstanzen oder eine Collection oder ....
Zuviele Möglichkeiten und zu wenig von Deinem Aufbau bekannt, als hier die 'einzig richtige' Antwort geben zu können.


>> Wenn´s in VBA keine andere Möglichkeit gibt ein array anzulegen als nach dem Schema "wert(n) = xyz" werd ich alt

Hast Du eine definierte Stuktur Deiner Rohrteile, dann mach eine Klassendefinition und reihe diese in einem Array oder in einer Collection zusammen.


>> Muss jetzt eine eigene Datentabelle in Access,... angelegt werden?

Nein, wozu? Ich erkenne nicht, wie Du jetzt von AutoCAD auf Access kommst ....    (um einen Array von xxx anzulegen).


>> In Lisp hab ich ausgehend vom Startpunkt (getpoint) alle anderen Eckpunkte berechnet (polar start winkel abstand)
>> [...] Wie würde das in VBA passieren?

Nicht so anders, Du holst Deinen Punkte mit ThisDrawing.Utility.GetPoint und rechnest von diesem weiter.


HTH, - alfred -

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

Wurzelsepp
Mitglied


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

Beiträge: 7
Registriert: 13.06.2011

erstellt am: 14. Jun. 2011 09:20    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 Alfred!

Danke für Deine Hinweise!

Ja, VB.NET ist wohl die richtige Wahl. Gibt es da empfehlenswerte tutorials für Einsteiger in Buchform?

Na jedenfalls bin ich schon etwas beruhigt. Mit Access hab ich gemeint, dass möglicherweise eine externe Wertetabelle (hätte auch excel oder sql sein können) der richtige Weg wäre.

Aber nur nochmal kurz zum Verständnis: Schon klar, am besten direkt in VB.NET. Aber ein VBA Programm muss nicht komplett umgeschrieben werden um es zum Laufen zu bringen, oder? Bzw. das Geld für ein VBA-Buch wäre jetzt nicht rausgeworfenes Geld, stimmt´s?

Lg, Chris

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

ACAD 2008 Mechanical

erstellt am: 14. Jun. 2011 09:34    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 Wurzelsepp 10 Unities + Antwort hilfreich

warum eigentlich odlc .... wenn, dann dcl , welche in die vlx zusammen mit dem Lisp reinkompiliert wird ... keine extra Laufzeitumgebung notwendig usw.

aber bei viel Zeit und Geld spricht natürlich auch gegen das Umschreiben nix 

------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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


Ex-Mitglied

erstellt am: 14. Jun. 2011 09:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

>> Gibt es da empfehlenswerte tutorials für Einsteiger in Buchform?

Für VB.NET jede Menge, für VB.NET mit AutoCAD ist es schon sehr licht.


>> Aber ein VBA Programm muss nicht komplett umgeschrieben werden um es zum Laufen zu bringen, oder?

Nein, nicht ganz. >>>Hier<<< gibt's Lesestoff dazu. Da findest Du auch ein Video, welches die Portierungsschritte vorzeigt.


>> Bzw. das Geld für ein VBA-Buch wäre jetzt nicht rausgeworfenes Geld, stimmt´s?

SCNR: Der Brennwert des Buches liegt i.d.R. höher als der des Papiers der Geldscheine. 
Ganz rausgeworfen nein. Aber wer VBA kennt und auf VB.NET umsteigen will, der hat schon einige Hürden vor sich, das Gewohnte aufzugeben.

- alfred -

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

Wurzelsepp
Mitglied


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

Beiträge: 7
Registriert: 13.06.2011

erstellt am: 14. Jun. 2011 14:44    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

odcl weil das mit dieser Entwicklungsumgebung ziemlich komfortabel war. Mit dcl Formulare mit mehreren Reitern, Bildern, Auswahllisten, usw erstellen... Will gar nicht dran denken!

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