Visual LISP, AutoLISP and General Customization

Visual LISP, AutoLISP and General Customization

Reply
Active Contributor
BlueVue
Posts: 26
Registered: ‎04-16-2012
Message 1 of 5 (380 Views)
Accepted Solution

Using $ and * special characters in a Custom Command

380 Views, 4 Replies
05-04-2012 05:15 PM

I'm trying to write a simple Custom Command that sets any layer that matches "$-*" to a specific color. But as soon as AutoCAD sees the $, it thinks I'm trying to do a DIESEL expression. Supposedly, the quote marks specify that the enclosed characters should be treated as plain text, but that doesn't happen.

 

Here's what I've got:

^C^C-LAYER;C;252;"$-*";;

 

And this is what I get:

Command: -LAYER

Current layer:  "$-HATCH-00-002-PW-BOAT"
Enter an option 
[?/Make/Set/New/Rename/ON/OFF/Color/Ltype/LWeight/MATerial/Plot/Freeze/Thaw/LOck
/Unlock/stAte/Description/rEconcile]: C

New color [Truecolor/COlorbook] : 252

Enter name list of layer(s) for color 252 <$-HATCH-00-002-PW-BOAT>: "

No matching layer names found.
Enter an option 
[?/Make/Set/New/Rename/ON/OFF/Color/Ltype/LWeight/MATerial/Plot/Freeze/Thaw/LOck
/Unlock/stAte/Description/rEconcile]:

It stops, hanging at the incompleted -LAYER command prompt. 

 

Can anyone tell me what I'm missing?? Thanks!

================================
Vanilla AutoCAD 2010
Distinguished Mentor
Moshe-A
Posts: 739
Registered: ‎09-14-2003
Message 2 of 5 (365 Views)

Re: Using $ and * special characters in a Custom Command

05-05-2012 07:41 AM in reply to: BlueVue

Hi,

 

you are right it seems that is' s not possible with menu macro but with AutoLISP it is

replace your macro with this:

 

^C^C(if (null c:setGrayColor) (load "setGrayColor")) setGrayColor

 

create a lisp file and name it setGrayColor.lsp and put it on one of your support file search path

copy and paste this:

 

(defun c:setGrayColor ()
 (command "-layer" "c" 252 "$-*" "")
)

 

close and save the file

 

Cheers,

Moshe

 

*Expert Elite*
hmsilva
Posts: 2,754
Registered: ‎12-17-2004
Message 3 of 5 (342 Views)

Re: Using $ and * special characters in a Custom Command

05-07-2012 04:22 AM in reply to: BlueVue
Try

 

^C^C-LAYER;C;252;(strcat (CHR 36) "-*");;

 

Cheers,

Henrique

Active Contributor
BlueVue
Posts: 26
Registered: ‎04-16-2012
Message 4 of 5 (324 Views)

Re: Using $ and * special characters in a Custom Command

05-07-2012 10:16 AM in reply to: hmsilva

Thanks guys!!

Both solutions work, though I'm going to use Henrique's, as it will be easier to deploy to other users here.

(Sorry Moshe, your solution is good too!)

 

Henrique, I'm assuming the "CHR" allows you to specify any ASCII character? (36=$)

 

Cheers!

================================
Vanilla AutoCAD 2010
*Expert Elite*
hmsilva
Posts: 2,754
Registered: ‎12-17-2004
Message 5 of 5 (315 Views)

Re: Using $ and * special characters in a Custom Command

05-07-2012 12:38 PM in reply to: BlueVue

Yes, you are assuming correctly, "chr" allows you to specify any ASCII character,
and if you do not know the specific ASCII character, just type

(ASCII "$")

and returns
36

Glad to help you.

 

Henrique

Announcements
Are you familiar with the Autodesk Expert Elites? The Expert Elite program is made up of customers that help other customers by sharing knowledge and exemplifying an engaging style of collaboration. To learn more, please visit our Expert Elite website.
Need installation help?

Start with some of our most frequented solutions or visit the Installation and Licensing Forum to get help installing your software.