明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1275|回复: 7

[基础] *请路过的高手进来坐坐,顺便帮我看看为什么出错

[复制链接]
发表于 2009-11-12 15:17 | 显示全部楼层 |阅读模式
这是一个改图层名的脚本,这个脚本改完名图层名后,不知道怎么样才能把改好名字的图层置为当前层还有就是这个改图层名的脚本,运行的时候有错误提示,请路过的高手指点一下,以下是脚本内容:
  1. (defun c:m()
  2. (setvar "cmdecho" 0)
  3.   (setq LAY NIL)
  4.   (while (setq LAY (tblnext "layer" (not LAY)))
  5.     (setq NAME (cdr (assoc 2 LAY)))
  6.     (if (and (not (wcmatch NAME "*|*"))(/= NAME "0")(/= NAME "Defpoints")
  7. )
  8. (command "_.rename" "la" NAME (strcat PREFIX NAME))
  9.     )
  10.   )
  11. (setvar "cmdecho" 1)
  12.   (princ)
  13. )
发表于 2009-11-12 17:01 | 显示全部楼层

您的 PREFIX 并未赋值
若有请试试能否通过 (strcat PREFIX NAME)

 楼主| 发表于 2009-11-12 17:47 | 显示全部楼层
怎么赋值呢???
 楼主| 发表于 2009-11-12 18:29 | 显示全部楼层
错误如下
  1. 命令: m ; 错误: 参数类型错误: stringp ni
复制代码
发表于 2009-11-12 18:56 | 显示全部楼层

有一下的提示

  1. 命令: m ; 错误: 参数类型错误: stringp ni

是因为PREFIX没有定义

发表于 2009-11-12 19:58 | 显示全部楼层

这么说吧您想在图层名的前头加什么字串呢

发表于 2009-11-12 20:23 | 显示全部楼层
至于怎么赋值,那要看你想把图层如何改名称了
发表于 2009-11-14 15:29 | 显示全部楼层
1、这是LISP程序,不是脚本。
2、程序遍历层名表,并将每个图层名加上前缀后改名。
3、因为前缀PREFIX未赋值,所以程序出错。
4、设置当前层可以:(setvar "CLAYER" NAME)
5、其实可以直接使用:(command ".layer" "m" "LAYERNAME" "")转到该层。(如果该层不存在,就新建层并转到该层;如果该层存在,直接切换到该层。)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-17 18:59 , Processed in 0.314755 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表