FastFiber

VBA form oproepen via DCL dialoog

Gestart door Tom, vr 08 04 2005, 08:03:35

Vorige topic - Volgende topic

Tom

Kan het om een form die in vba gemaakt is op je scherm te laten komen door op een knop te drukken in een dialoogvenster dat in dcl formaat gemaakt is ?

Ik heb dit in mijn dcl bestand gestopt. Maar AutoCAD loopt telkens vast.
(vl-vbaload "c:/tom/dvb/afbeeldingdialogen.dvb")
(action_tile
     "image"
     "(vl-vbarun \"moduleafbeeldingen.toond1000k\")"
   )

Alvast bedankt

Tom

Joop

vl-vbaload "c:/tom/dvb/afbeeldingdialogen.dvb")
(action_tile
"image"
"(vl-vbarun \"moduleafbeeldingen.toond1000k\")"
)

Laat de backslashes weg.

Kijk ook in de VL help AutoLisp Reference onder de V naar vl-vbaload en vl-vbarun.
Een gelovig volger van
"de Sacrale Kunst van Luiheid",
zijn leider "Lisp" en acoliet "Script".

Tom

Als ik de backslashes weglaat krijg ik het volgende. En dat werkt ook niet

(vl-vbaload "c:/tom/dvb/afbeeldingdialogen.dvb")
(action_tile
"image"
"(vl-vbarun "moduleafbeeldingen.toond1000k")"
)

Ik heb het ook al geprobeer om de action_tile door te verwijzen naar een ander programma maar dat lukt ook niet.
(vl-vbaload "c:/tom/dvb/afbeeldingdialogen.dvb")
(action_tile
     "image"
     "(gotodialoog)"

   )
   (defun gotodialoog ()
     (vl-vbarun "moduleafbeeldingen.toond1000k")
   )

Joop

Wat gebeurt er als je het aanroepen van de VBA in een apprte routine stopt?
Bijvoorbeeld: StartVBA

(defun c:StartVBA ()
(vl-vbaload "c:/tom/dvb/afbeeldingdialogen.dvb")
(vl-vbarun "moduleafbeeldingen.toond1000k")
)


en dan onder de tile de lisp opdracht StartVBA uitvoert?
(action_tile
"(StartVBA)"
)
Een gelovig volger van
"de Sacrale Kunst van Luiheid",
zijn leider "Lisp" en acoliet "Script".

Tom

Dit is het laatste wat op de commandoregel komt en dan kan ik niets meer doen in AutoCAD, dan loopt hij volledig vast.
_.-VBARUN

bart

mischien zit het probleem in de backslash
ik gebruik zelf nooit vba dus ik weet niet hoe die er mee omgaat.

probeer een \\  of \ in plaast van /

let er ook op dat lisp voor bepaalde dingen hoofdletter gevoelig is.
Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart

Tom

Ik heb al veel geprobeerd als ik gewsoon in de commando regel de lijn
(vl-vbaload "c:/tom/dvb/afbeeldingdialogen.dvb")
en
(vl-vbarun "moduleafbeeldingen.toond1000k")
invoer doet hij het wel.

in de lispfile lukt het om het te laten loaden.
maar het runnen lukt niet.

Joop

Tom scgrijft:
Citeerin de lispfile lukt het om het te laten loaden.
maar het runnen lukt niet.

Het lijkt mij dat het dan niet mogelijk is om een VBA routine en een DCL routine tegelijk te laten draaien, en er dus niets anders op zit de VBA om te turnen naar Lisp.
Zo ja, kijk dan in de help onder VBA syntax, translating into AutoLISP
En lees ook het volgende:

CiteerAn essential resource is the ActiveX and VBA Reference, which describes the methods and properties accessible to ActiveX clients such as this garden path application. The Working with ActiveX chapter of the Visual LISP Developer's Guide explains how to translate the VBAâ,,¢ syntax in the ActiveX and VBA Reference into ActiveX calls in AutoLISP syntax.
Een gelovig volger van
"de Sacrale Kunst van Luiheid",
zijn leider "Lisp" en acoliet "Script".

Joop

Kijk ook eens naar het volgende document

http://www.afralisp.com/lisp/setup1.htm

PS
het document heeft twee paginas.
Een gelovig volger van
"de Sacrale Kunst van Luiheid",
zijn leider "Lisp" en acoliet "Script".

cadtools@gmail.com


Tom

Hallo,

Het is na een lange tijd dan toch gelukt.

De vl-vbarun lijn is weg gehaald
(vl-vbarun "moduleafbeeldingen.toond1000k")

En de deze zijn in de plaats gekomen.
(setq applic (vlax-get-acad-object))
(vla-eval applic "d1000k.show")

Bedankt voor jullie hulp

mvg

Tom

Tom

Weet iemand het commando om via de lispfile de frm dialoog terug van het scherm te laten verdwijnen ?

Achter mijn OK knop zit het volgende:
Private Sub ok_Click()
thisdrawing.SetVariable "UserI1", 1

End Sub


in mijn lisp file staat het volgende:
(defun goto1000k ()
     (setq applic (vlax-get-acad-object))
     (vla-eval applic "d1000k.show")
     (if (= (getvar "USERI1") 1)
   (?????????????????)
     )
   )