Visual LISP, AutoLISP and General Customization

Reply
Contributor
Posts: 24
Registered: ‎04-16-2012
Message 1 of 5 (330 Views)
Accepted Solution

Using $ and * special characters in a Custom Command

330 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: 711
Registered: ‎09-14-2003
Message 2 of 5 (315 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*
Posts: 2,387
Registered: ‎12-17-2004
Message 3 of 5 (292 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

Contributor
Posts: 24
Registered: ‎04-16-2012
Message 4 of 5 (274 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*
Posts: 2,387
Registered: ‎12-17-2004
Message 5 of 5 (265 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

You are not logged in.

Log into access your profile, ask and answer questions, share ideas and more. Haven't signed up yet? Register

Announcements
Welcome to the new Autodesk Community!
If this is your first visit, click here to get started and make the most of the Community. Let us know what you think of the new experience in the Community Feedback Forum.

Need installation help?

Start with some of our most frequented solutions to get help installing your software.

Ask the Community