明经通道 AutoLISP 函数  
snvalid
 

检查组成符号表名的各字符的有效性

(snvalid sym_name [flag]) 

snvalid 函数检查系统变量 EXTNAMES 以确定用于活动图形的规则。如果 extnames 的值为 0,snvalid 使用 AutoCAD 2000 以前版本的符号命名规则。如果 extnames 的值为 1(缺省值),snvalid 使用 AutoCAD 引入的扩展的符号命名规则。无论 extnames 的设置如何,均不允许使用下列命名方式:

如果 extnames 的值为 1,AutoLISP 对符号表名称的长度不作限制。

参数

sym_name

字符串,指定符号表的名称。符号表名必须仅由字母、数值字符和美元符 ($)、下划线 (_) 和连字符 (-) 等特殊字符组成。空字符串是无效符号名。

flag

整数,指定 sym_name.中是否可以包含竖线 (|),它可以是:

0 在 sym_name 中不能包含竖线。(缺省值)

1 在 sym_name 中可以包含竖线(但不能是第一个或最后一个字符)

返回值

如果 sym_name 是有效的符号表名称,则返回 T,否则返回 nil。

如果 extnames 的值为 1,则除控制字符、图形字符和下表中列出的字符外,可以使用其他任意字符:

符号表名称中不能使用的字符

< >

小于号和大于号

/ \

斜杠和反斜杠

"

引号

:

分号

?

问号

*

星号

|

竖杠

,

逗点

=

等号

`

后引号

;

分号 (ASCII 59)

符号表名中可以包含空格。

如果 extnames 的值为 0,符号表名中可以包含大写或小写字母字符(如 A-Z)、数字字符 (0-9)、美元符 ($)、下划线 (_) 和连字符 (-)。

示例

下面的样例假定 EXTNAMES 的值为 1:

命令: (snvalid "hocus-pocus")

T

命令: (snvalid "hocus pocus")

T

命令: (snvalid "hocus%pocus")

T

下面的样例假定 EXTNAMES 的值为 0:

命令: (snvalid "hocus-pocus")

T

命令: (snvalid "hocus pocus")

nil

命令: (snvalid "hocus%pocus")

nil

下例中符号表名称中包含竖线:

命令: (snvalid "hocus|pocus")

nil

在缺省情况下,符号表名称中的竖线被认为是无效字符。

在下例中, flag 参数的值为 1,所以 snvalid 认为 sym_name 中的竖线是有效字符(但不能是第一个或最后一个字符):

命令: (snvalid "hocus|pocus" 1)

T

明经通道 版权所有 未经许可 不得传播

 评论