AutoCAD Macros

Feb 17, 2004 3 Replies

Hello. I'm trying to get some macros I've written for LT to work in regular AutoCAD using a similar syntax. Here are some short examples...



======== I'm trying to save the last point picked as a registry setting using:



[&Pick Point]^C^C_id \(setenv "ActivePt" (getvar "lastpoint"))

I get the following error:



Command: (setenv "ActivePt" (getvar "lastpoint")) ; error: bad argument type: stringp (1.62005 41.933 0.0)



Can anyone help?



======== Also, can anyone tell me why this works?



[Save]^C^C(setenv "Temp1" (getvar "clayer"))

But this doesn't?



[Save]^C^C(setenv "Temp1" (getvar "clayer"))_line ========


Thanks, Mark


Ok, for whatever reason, this now works in regular AutoCAD:

[Example]^C^C(setenv "Temp1" (getvar "clayer")) _line

WooHOO!

And this works:

[Example]^C^C(setenv "Temp1" (getstring "Temp1 Value: "))

But this still doesn't work:

[Example]^C^C(setenv "Temp1" (getstring "Temp1 Value: ")) _line

It seems that I can't prompt the user for a Setenv value and then continue with the macro. :-( Any suggestions?

Also, the Setenv command in LT gives the current value as the default. For example:

============== Command: setenv Enter variable name: Temp1 Value: Mark

Command: Command: SETENV Enter variable name: Temp1 Value :

Command: ==============

Is it possible for regular AutoCAD to do this as well?

How about:

[Example]^C^C(setenv "Temp1" (getstring "Temp1 Value: "))(command "_.line") ___

Thanks for the response Paul, but it's still a NoGo for me, even after removing the "." before "line". :-(

I'm ready to give up trying to use regular AutoCAD's Setenv LISP function. Even if I did get it to work, it still won't be as robust as LT's SETENV command which gives the current value as the default prompt.

Please consider my situation below and advise me on my best course of action.

I have written literally hundreds if not over a thousand AutoCAD LT macros and to my surprise, more than 90% of them work in regular AutoCAD so far with only minimum tweaking. I don't know LISP nor how to program in regular AutoCAD, only DIESEL using AutoCAD LT. My only problem thus far with regular AutoCAD is running macros containing LT's "_setenv" command.

For example...

======= ID_LabelLine [La&bel Line]*^C^C_setenv Label \_ucs _ob _nea,_mid \_ai_molc _non @ _break _non @$M=$(*,$(getvar,textsize),$(+,$(*,$(strlen,$(getenv,label)),.5),.5))

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required