找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 555|回复: 3

[求助] [求助]:几个lsp函数

[复制链接]
发表于 2005-5-28 10:55:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
foreach  
handent
initget
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 3个

财富等级: 恭喜发财

发表于 2005-5-28 11:05:18 | 显示全部楼层
foreach:
语法

    (foreach name list expr...)

功能及参数

    此函数是将 list 中的每一个元素按顺序对应至name, 然后再判别其在 expr 中的值。您可以设定任意数目的 expr , 而 foreach 仅返回最后一个 expr 经判别后的结果。

范例

(foreach n '(a b c) (print n))

    等于:

    (print a)

    (print b)

    (print c)

    除非 foreach 仅返回最后一个表达式被判别出来的结果。

 

handent:
语法

    (handent handle)

功能及参数

    在每次不同的编辑期间, 同一个图元的图元名可能会不同, 然而此图元的处理代码却永远也不会改变。假如您将某个图元处理代码字符串作为 [prompt] 的参数, 那么 handent 函数将会返回在目前编辑期间该处理代码所代表的图元名。一旦您获取了此图元名, 您就可以使用任何与图元相关的函数来处理这一图元。而在不同的编辑期间, 使用同一个图形执行上述同一个函数与处理代码, 可能会返回不同的图元名。也就是说, 对同一个图元而言 , 不管在什么时候其处理代码均将保持不变, 然而在不同的编辑期间其图元名可能会改变。假如在图形中我们并没有使用处理代码, 或者假如 handent函数中的处理代码并不适用或目前图形中的图元并未使用到该处理代码, 那么此函数将返回 nil。handent 函数也会传回在目前编辑期间被删除的图元。假如您还需要此图元的话, 您可以使用 entdel 函数来取消此一被删除的图元。

范例

    在某一编辑期间键入:

    (handent“5A2”) 可能返回<Entity name:6004722>
 

initget:
语法

    (initget [bits] [string])

功能及参数

    此函数可让下一个 getxxx 函数 (除了 getstring 及getvar 之外) 有不同的选择。initget 永远返回 nil 。可选用的 bit 参数为具有下列数值的整型数:(图1)
这些位标志项可以任何方式相加组合而形成 0 至 127 之间的值。AutoLISP将来的版本可能会利用到其他的initget控制位, 所以请您避免去设定手册中未提到的位。特殊的控制值仅经过 getxxx 函数使其有意义。如下所示:(图2)
如果 initget 设定了一个控制位以及应用程序调用一个对位值而言无意义的用户输入函数, 那么此位将被忽略。这些位将可以在 0 - 255 之间以任何组合来加入。如果无 bits 参数, 那么一零值将被设定。如果用户键入的值既不是我们所要求的形式也不符合任何关键字, 那么AutoCAD 将会要求用户再试一次。

    关键字指定:可选择的string参数将定义可选择关键字的表以检查经由下一个entsel, nentsel, nentselp或getxxx函数的要求(如果用户并未键入期望的输入形式)。如果用户输入符合一在此表中的关键字, 那么函数将返回关键字来当做一字符串结果。用户程序将测试关键字并执行每一个所描述的动作。如果用户输入并不符合关键字, 那么AutoCAD将要求用户再试一次。

    string 参数将根据下述原则来解析:

    ◎ 每一个关键字将经过一个或一个以上的空格来分离。

    例如:“Width Height Depth”将定义三个关键字。

    ◎每一个关键字将可使用 AutoCAD 可识别的缩写。缩写可用两种方式来设定:

    ① 关键字需要的部分可用大写来表示, 而其他则全为小写(如:“Ltype”,“eXit”或“toP”)。

    ② 整个关键字都以大写来表示, 并随后跟随逗号, 再将需要的部分重复地写上。例如:“LTYPE, LT”。在这种情况下, 后面的缩写必须重复第一个字符。所以, “EXIT, X”是无效的。

    第二种方式是为了用于大小写变换不易或根本不可能的外国语言上。

    上述两个简单的范例, “Ltype”与“LTYPE, LT”效果是相同的。所以仅键入LT (无论大写或小写)都会被接受。用户可以在关键字需要的部分后键入字符, 以提供一并不与指定相冲突的方式。例如:用户可以键入LTY或LTYP来作一关键字, 但仅键入L就是不够的, 所以对 LTSCALE或 LTYPEX 这类的关键字, 就不是键入一个或两个缩写字即可分辨的。如果 string 整个以大写或小写字符 (且无逗号后跟着需要的部分) 显示关键字, 那么如果用户键入完整字符, Auto CAD 将仅辨识关键字。

    【注意】由 initget 所建立的控制标志及关键字表皆会应用到跟随其后的 entsel , nentsel, nentselp或getxxx调用, 接着便自动抛弃。这样可避免需再调用其他函数来清除此特定状况。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3个

财富等级: 恭喜发财

发表于 2005-5-28 11:10:48 | 显示全部楼层
图2
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 69个

财富等级: 招财进宝

发表于 2005-5-28 20:29:12 | 显示全部楼层
谢谢!终于清楚了!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-28 06:49 , Processed in 0.259465 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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