• Industries
  • Products
  • Buy
  • Services & Support
  • Communities
  • Discussion Groups

    Visual LISP, AutoLISP and General Customization

    Reply
    Contributor
    Posts: 24
    Registered: ‎04-16-2012
    Accepted Solution

    Using $ and * special characters in a Custom Command

    221 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
    Please use plain text.
    Distinguished Mentor
    Moshe-A
    Posts: 673
    Registered: ‎09-14-2003

    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

     

    Please use plain text.
    *Expert Elite*
    Posts: 1,181
    Registered: ‎12-17-2004

    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

    Please use plain text.
    Contributor
    Posts: 24
    Registered: ‎04-16-2012

    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
    Please use plain text.
    *Expert Elite*
    Posts: 1,181
    Registered: ‎12-17-2004

    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

    Please use plain text.