Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Lisp einbinden??

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:  Lisp einbinden?? (2837 mal gelesen)
FiRePhoeniX
Mitglied
Bauzeichner Fachgebiet Tief−, Straßen− und Landschaftsbau


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

Beiträge: 127
Registriert: 22.04.2007

AutoCad 2007

erstellt am: 29. Jan. 2009 14: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 Forum,
ich als Anfänger in VBA hätte mal eine fragen an euch Profis.

Hab vor kurzen mit dem VBA- Programmieren angefangen. Habe vorher Lisp Routinen geschrieben. Jetzt bin ich auf die verrückte Idee gekommen meine Lisproutinen mit einer Grafischen Oberfläche zu verschönern.
Jetzt zu meinen Fragen:

1.Wie kann ich nach den Klicken eines Button eine Lisp Routine starten?
    Geht das überhaupt?
2. Jetzt komm die frage die mich als Anfänger entlarvt. Kann ich eine VBA Anwendung      durch einen Textbefehl so wie bei Lisp ausführen?

Ich danke eich an dieser stelle schon mal.

FirephoeniX

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

tunnelbauer
Ehrenmitglied V.I.P. h.c.
Bauingenieur



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

Beiträge: 7085
Registriert: 13.01.2004

ich hab eh keine Probleme damit...

erstellt am: 29. Jan. 2009 15: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 Nur für FiRePhoeniX 10 Unities + Antwort hilfreich

1.) Mittels "SendCommand"

2.) Meinst du etwa "vbarun"?

------------------
Grüsse

Thomas

Korrekturen zum Kochbuch AutoLISP

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

FiRePhoeniX
Mitglied
Bauzeichner Fachgebiet Tief−, Straßen− und Landschaftsbau


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

Beiträge: 127
Registriert: 22.04.2007

erstellt am: 30. Jan. 2009 09: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

Danke für die Antwort tunnelbauer,
tut mir leid das ich euch wieder auf die Nerven gehen muss aber ich bekomme das nicht hin.
Bin halt noch extremer Anfänger.
Hab jetzt nach dem rat des Tunnelbauers das Kommando „SendCommand“ genommen.

Hier der Code ist nur ein Test:

Private Sub CBtest_Click()

Me.Hide
ThisDrawing.SendCommand ("text")


End Sub

Es funktioniert auch. Das Pogramm schreib mir den wert unten in die Textleisten. Jetzt muss ich nur wissen wie ich es ausführen kann. Und wie ich das hinbekomme, dass das Useform so lange verschwindet wie der Befehl noch läuft ? Hab mal gelesen das es mit Me.hide gehen soll aber irgendwie geht das nicht. Weiß jemand rat oder kann mir eine Gute Anfänger Seite empfählen wo ich mir so was durchlesen kann ?
Danke im voraus.

FiRepheoniX

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


Ex-Mitglied

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

Hi,
Zitat:
ThisDrawing.SendCommand ("text")
...
Jetzt muss ich nur wissen wie ich es ausführen kann
In 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äuft
Ich schreibe meine Programme in der Regel so, dass ich nicht einen AutoCAD-Befehl anstarte und dem User die Eingaben zu dem Befehl machen lasse, denn ich werde kaum (ausser ev. durch Überwachung von ObjectAdded oder ähnliches) im Nachhinein feststellen können, ob der Anwender jetzt alles richtig gemacht hat oder den Befehl abgebrochen hat.
In diesem Fall würde ich zuerst nach einem Einfügepunkt abfragen (über Thisdrawing.Utility.GetPoint), wenn der User hier nicht abgebrochen hat, nach dem Textinhalt (den kannst Du vielleicht sogar schon in Deinem Form mittels einer Textbox eingeben lassen, samt Höhe, ...) und dann verwende ich (für Modellbereich) ThisDrawing.ModelSpace.AddText. Da habe ich die Kontrolle und weiss auch, dass die Form nach 'GetPoint' wieder da sein muss.
Beispiel dafür kannst Du auch in der AutoCAD-VBA-Hilfe finden, suche nach 'AddText Example'.


-------------------------------------------------
Und Lisp kann auch noch ohne SendCommand gestartet werden (ich forumuliere es mal vorsichtig: für Fortgeschrittene;) )

Code:
Public Function Acad_EvalLisp(ByRef AcadDoc As AcadDocument, ByVal LispStr As String) As Variant
  'fuehrt ein lispstatement durch, wenn vorhanden, dann wird ergebnis retourniert
  Dim tVL As Object
  Dim tPL As Object
  Dim tRetVal As Variant
  On Error Resume Next
 
  Set tVL = AcadDoc.Application.GetInterfaceObject("VL.Application.16") ' .16 ... muss an jeweilige Version angepasst werden
  If Err.Number = 0 Then Set tPL = tVL.ActiveDocument.Functions.Item("read").funcall(LispStr)
  If Err.Number = 0 Then tRetVal = tVL.ActiveDocument.Functions.Item("eval").funcall(tPL)
 
  Set tPL = Nothing
  Set tVL = Nothing
  If Err Then
      Err.Clear
  Else
      Acad_EvalLisp = tRetVal
  End If
  On Error GoTo 0
End Function

......und in den 'normalen' Fällen bekomme ich damit sogar den Return-Wert aus Lisp zurück, leider nur als String. Das ist auch nur ein CodeSchnippsel, d.h. bei oftmaligem Aufruf empfiehlt es sich, das Object 'tVL' getrennt in einer Initialisierung aufzurufen, damit dies eben nur einmal passiert und nicht bei jedem Aufruf.


Zitat:
das ich euch wieder auf die Nerven gehen
Mach Dir deswegen mal keine Sorgen, die Antworten passieren hier freiwillig, auf die Nerven kann mir nur wer gehen, der 'von mir' etwas verlangt, und das vielleicht auch noch 'begrenzt intelligent' ist. Beides ist bei Dir nicht der Fall

- alfred -

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

FiRePhoeniX
Mitglied
Bauzeichner Fachgebiet Tief−, Straßen− und Landschaftsbau


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

Beiträge: 127
Registriert: 22.04.2007

erstellt am: 30. Jan. 2009 12:27    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 alfred,

ich danke dir erst mal für die ausführliche antwort.
Werde ich auf jeden fall test.
Ich danke dir auch für deine letzten Worte die haben mir mut gemacht es einfach zu probieren.
Den mit Lisp ist es genau so man muss einfach Üben, Üben, Üben.
Statt meine alten Lisp Routinen in VBA einzubringen werde ich, mal probieren diese in VBA zu schreiben. Obwohl ich die Symtax in VAB irgendwie Komisch finde  .
Kennt ihr vielleicht eine geeignete Seite wo VBA von anfange an beschrieben wird.
Ich kenn nur die:
http://www.battefeld.com/Anwenderberichte_und_Erfahrung/VBA_fuer_BircsCad__IntelliCAD_/VBA_Grundlagen_fur_AutoCAD__Te/vba_grundlagen_fur_autocad__te.html
http://www.afralisp.net/index.htm

Ich finde die setzen viel zu viel Vorwissen voraus.

Mit freundlichen Grüßen

FirephoeniX

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


Ex-Mitglied

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

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 nach obiger allgemeiner 'Schulung' relativ einfach reinkommen wirst.

Viel Erfolg, - alfred -

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

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: 30. Jan. 2009 13:04    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 FiRePhoeniX 10 Unities + Antwort hilfreich

Für die Verbindung AUTOCAD und VBA finde ich AutoCAD programmieren mit VBA recht ok

------------------
  - 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

Hunchback
Mitglied
CAD-Tech


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

Beiträge: 63
Registriert: 10.10.2007

erstellt am: 03. Feb. 2009 08:41    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 FiRePhoeniX 10 Unities + Antwort hilfreich

Und wenn's bloß um die Benutzeroberfläche der Lisp's geht: Schau Dir mal OpenDCL an (opendcl.com). kost' nix! Damit kriegst Du Dialoge hin wie Du sie mit VB nicht so leicht zusammenbringst.

Grüße

Martin

------------------
You seem (in my (humble) opinion (which doesn't mean much)) to be (or possibly could be) more of a Lisp programmer (but I could be (and probably am) wrong).

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

FiRePhoeniX
Mitglied
Bauzeichner Fachgebiet Tief−, Straßen− und Landschaftsbau


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

Beiträge: 127
Registriert: 22.04.2007

AutoCad 2007

erstellt am: 05. Feb. 2009 09:41    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 Hunchback,
dein Programm finde ich Super. Habe es mir sofort geholt und ausprobiert. Aber irgendwie verstehe ich es nicht ganz.
Gibt es vielleicht ein Deutsches Tutorial womit mir der Einstieg ein bisschen leichter fällt.
Zur Not würde ich auch ein Englische nehmen.

mfg

FirePhoenix

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

Hunchback
Mitglied
CAD-Tech


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

Beiträge: 63
Registriert: 10.10.2007

erstellt am: 05. Feb. 2009 13:48    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 FiRePhoeniX 10 Unities + Antwort hilfreich

Am einfachsten im OpenDCL Forum registrieren. Im Forum gibt's dann einen Downloadlink zu einem AU - Tutorial (mit vielen Beispielen).Ist aber leider nur auf Englisch. Im Help-Menu des OpenDCL-Studios ist auch ein kleines Tutorial (Englisch) zu finden.

Grüße

Martin

------------------
You seem (in my (humble) opinion (which doesn't mean much)) to be (or possibly could be) more of a Lisp programmer (but I could be (and probably am) wrong).

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