LispEx and OdEdLispEngine relationship

Can someone tell me what the relationship is between OdEdLispEngine and the built-in engine? Is it the same? I am looking to add a lisp command method attribute to my managed wrapper app and I am wondering if I can use the OdEdLispEngineReactor classes.Is anyone else playing with DRX yet or am I too early to the party PS: Great work Bricsys!!!

Comments

  • Hello, Daniel,I'm sorry for my late response - I was out of the office for ~ 1 week.That OdEdLispEngine is an EXTREMELY early implementation step for a native Lisp engine by DRX ...And for sure, it is not usable at all, currently.Bricscad uses a completely separated Lisp engine "LispEx", which is implemented at Bricscad side.It is known for high performance and for 99% AutoLisp compatibility (except FAS/VLX file formats).Especially, all Lisp reactor functions (vlr-...) are implemented, a few of them are not yet fully functional - which is about to be fixed/completed.So you might try this way better ?Many greetingsand a nice dayTorsten Moses

  • Hi Torsten,Thank you for your reply, Basically, what I need is to know how to setup a lisp reactor inside of a DRX module. The sample application that ships with Bricscad has a very nice example of setting up a command reactor, but I couldn’t find one for lisp. something likeOdEdLispEngineReactor::lispWillStart(…)Daniel

  • Hello, Daniel,OK, I see what you intend :-)There are 2 major implementations currently :- pure DRX here, probably no chance at all, as our Lisp is not connected to OdEdLisp ...- using BRX interface additionally : here, we have an implementation of AcEditorReactor, which fires all the command reactors, but also the Lisp events ... Currently, those Lisp related events are not yet implemented :-( So you can not yet get this notification from AcEditorReactor to your code - I will care to get this implementedBut here is a workaround :The Lisp engine itself providessimilar reactor events to Lisp code -so in turn, you can have a littleLisp routine loaded at BCad startup,or loaded by your BRX/DRX code usingsds_queueexpr() ... that Lisp routinecan define a Lisp reactor for Lispevents.Thus, your Lisp code gets notifiedwhen Lisp code starts/finishes/cancels- then, this little Lisp routine can call a sds_defun()'ed function ...For each Lisp reactor, you can define a callback Lisp routine.Example :;;--- Lisp Reactor Callbacks(defun cb-started (arg1 arg2) (print "--- cb-started ---")(print arg1)(print arg2)(princ))(defun cb-ended (arg1 arg2) (print "--- cb-ended ---")(print arg1)(print arg2)(princ))(defun cb-cancelled (arg1 arg2) (print "--- cb-cancelled ---")(print arg1)(print arg2)(princ));;--- Lisp Reactor Definitions(setq lsp-start (vlr-lisp-reactor nil '((:vlr-lispWillStart . cb-started))))(setq lsp-end (vlr-lisp-reactor nil '((:vlr-lispEnded . cb-ended))))(setq lsp-cancel (vlr-lisp-reactor nil '((:vlr-lispCancelled . cb-cancelled))))I hope this helps for the moment ??In any case, please keep me updated for any further assistance.Many greetingsTorsten

This discussion has been closed.