54256 发表于 2018-10-30 12:05:27

是不是输入非法

一个很简单的问题
(setq lay "地下室平面|car")
(command "_on" lay)

显示的是“未找到匹配的图层名”
我这里用的外参里的图层名,手动可以开关的,用程序就不行,
不用外参里的层的时候,就没问题,我在想是不是图层名里的“|”,是非法的
不知道是不是这样
以上代码我在06里用也没问题,12里不行
求问下原因

lisperado 发表于 2018-10-30 12:57:52

试这函数看是否非法?

(snvalid "地下室平面|car")

;返回值
nil ; 非法
t ; 合法

54256 发表于 2018-10-30 14:45:30

lisperado 发表于 2018-10-30 12:57
试这函数看是否非法?

非法
(snvalid "地下室平面|car" 1)是合法的,
但有什么用?怎么能把非法的改成合法?

lisperado 发表于 2018-10-30 15:40:14

54256 发表于 2018-10-30 14:45
非法
(snvalid "地下室平面|car" 1)是合法的,
但有什么用?怎么能把非法的改成合法?

2007也不行,试试看?
(setvar 'extnames 1)

masterlong 发表于 2018-10-30 16:27:21

图层名称里包含“|”
说明该图纸包含了外部参照
不属于“非法”的范畴

参照图层无法设为当前图层
也不能将图元加入其中
但是图层控制应该是可以直接操作
建议先检查下
"地下室平面|car"这个图层是否存在
如果存在又不能操作
那么或许是CAD版本的问题?

54256 发表于 2018-10-30 16:37:35

lisperado 发表于 2018-10-30 15:40
2007也不行,试试看?
(setvar 'extnames 1)

extnames是设为1的

54256 发表于 2018-10-30 16:44:08

masterlong 发表于 2018-10-30 16:27
图层名称里包含“|”
说明该图纸包含了外部参照
不属于“非法”的范畴


这个图层是存在的,这个程序在06里可以用的,2012里不行
真是见了鬼了

54256 发表于 2018-10-30 17:08:39

找到原因了,图层名里有中文就不行
改成英文就好了有办法破吗

masterlong 发表于 2018-10-31 00:17:02

加一个英文的首字符试试我的函数、变量、层等等都是这样处理的
页: [1]
查看完整版本: 是不是输入非法