OpenDCL Forums

OpenDCL => Runtime/AutoLISP => Topic started by: Nima2018 on April 18, 2018, 10:35:09 AM

Title: Error in use of command
Post by: Nima2018 on April 18, 2018, 10:35:09 AM
Hi members
I put a command in an opendcl button event click but in runtime an error
appears in Autocad prompts .
When I put this command outside of click event in top of my program it
works correctly , I want my Command to be inside of event click body
, what must I do ?
Title: Re: Error in use of command
Post by: Fred Tomke on April 18, 2018, 10:57:31 AM
Hi,
Quote from: Nima2018 on April 18, 2018, 10:35:09 AM
Hi members
I put a command in an opendcl button event click but in runtime an error
appears in Autocad prompts .
When I put this command outside of click event in top of my program it
works correctly , I want my Command to be inside of event click body
, what must I do ?

without knowing your exact code I think this FAQ may help you.
http://opendcl.com/forum/index.php?topic=1080.0
Regards, Fred
Title: Re: Error in use of command
Post by: Tharwat on April 18, 2018, 10:06:09 PM
Hi,

You can not use command calls in events ( action_tile ) but you can replace the command with a function if available.
What's the command name that you are trying to use in the event?

Similar issue here: http://opendcl.com/forum/index.php?topic=2556.msg12677#msg12677
Title: Re: Error in use of command
Post by: Nima2018 on April 19, 2018, 10:10:52 AM
Hi All
First of all, I thanks for your hints and reply , I learned a lot about "OPENDCL" programming in your points and links.
I really want to bring and execute an assembly that I have created in C# by the following commands :


(command "load" (findfile "myAssembly.dll")
(command "HTS")
;; HTS is command method in myAssembly.dll


When I cut (command "load" (findfile "myAssembly.dll") and paste it top of my program, all routines work but when this command is inside event button onclick,
at the prompt line I get and error !?
And in the case of the second command too , I must change it to below one to get rid of the error :


(princ)
(princ "\nType 'HTS' for execution")
(princ)

I think this is not a good method at all, and there must be a better and more effective one that I do not know about it.
Title: Re: Error in use of command
Post by: Tharwat on April 19, 2018, 10:41:02 AM
Hi,
Try to use the function vla-sendcommand in lieu of command call.

Let me know if that function works for you.
Title: Re: Error in use of command
Post by: Nima2018 on April 19, 2018, 11:16:05 AM
Dear Tharwat Thanks for your advice.
I used the following instructions on the advice of you :



(vla-sendcommand "load" (filefind "myAssembly.dll"))
(vla-sendcommand "HTS")



And this time I saw this error on the command line:  ;error : bad argument type : VLA-OBJECT "load"
Title: Re: Error in use of command
Post by: Tharwat on April 19, 2018, 11:44:31 AM
Please try it like the following:


(if (setq file (findfile "myAssembly.dll"))
  (vla-SendCommand (vla-get-ActiveDocument (vlax-get-acad-object)) (strcat "LOAD " file))
  )