找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 5753|回复: 24

[选择集] (XD::SS:Ents)获取选择集实体表

[复制链接]

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-6-4 23:52:30 | 显示全部楼层 |阅读模式
函数发布
函数名称: XD::SS:Ents
调用格式: (XD::SS:Ents ss)
参数说明: ss----选择集
返回值: 实体名表
函数简介: 获得选择集实体表
函数来源: 原创
函数作者: XDSoft
适用版本: 不限 
最后更新时间: 2013-06-05
备注: -
演示图片: -

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

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

×
  1. (defun XD::SS:Ents (ss / ents i ll)
  2.   (if (eq 'PICKSET (type ss))
  3.     (progn
  4.       (setq ll (sslength ss)
  5.             i -1
  6.       )
  7.       (repeat ll
  8.         (setq ents (cons (ssname ss (setq i (1+ i))) ents))
  9.       )
  10.     )
  11.   )
  12.   ents
  13. )


评分

参与人数 1D豆 +3 收起 理由
QiaoCheng + 3 哈哈,管理员没人敢加分俺加

查看全部评分

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

已领礼包: 2个

财富等级: 恭喜发财

发表于 2013-6-5 00:10:10 | 显示全部楼层
要测试啥呀?实在没搞明白!

点评

不是具体函数测试,是发布这个函数的界面表单内容,布局在测试。  详情 回复 发表于 2013-6-5 00:11
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

 楼主| 发表于 2013-6-5 00:11:10 | 显示全部楼层
taner 发表于 2013-6-5 00:10
要测试啥呀?实在没搞明白!

不是具体函数测试,是发布这个函数的界面表单内容,布局在测试。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1742个

财富等级: 堆金积玉

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

使用道具 举报

发表于 2013-6-5 09:02:05 | 显示全部楼层
为了保持选择集元素和表元素顺序一致,代码最好这样:
  1. (defun XD::SS:Ents (ss / ents i)
  2.   (if (eq 'PICKSET (type ss))
  3.     (repeat (setq i (sslength ss))
  4.       (setq ents (cons (ssname ss (setq i (1- i))) ents))
  5.       )
  6.     )
  7.   )

点评

比老大还简洁呢,呵呵  发表于 2013-6-17 18:14
不知道LISP repeat 后面这个数量最终变成汇编语言时候是什么样,我觉得保险起见,还是不要把 (sslength ss) 放到 repeat 后面,还是用个常量保险。 老大的代码最后加个 reverse 就和你想的一样,顺序一致了。  详情 回复 发表于 2013-6-5 10:39
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-6-5 10:39:45 | 显示全部楼层
Love-Lisp 发表于 2013-6-5 09:02
为了保持选择集元素和表元素顺序一致,代码最好这样:

不知道LISP repeat 后面这个数量最终变成汇编语言时候是什么样,我觉得保险起见,还是不要把 (sslength ss) 放到 repeat 后面,还是用个常量保险。

老大的代码最后加个 reverse 就和你想的一样,顺序一致了。

点评

repeat后面的(sslength ss)只计算一次!不会有影响!  详情 回复 发表于 2013-6-5 11:05
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-6-5 11:05:44 | 显示全部楼层
Lispboy 发表于 2013-6-5 10:39
不知道LISP repeat 后面这个数量最终变成汇编语言时候是什么样,我觉得保险起见,还是不要把 (sslength s ...

repeat后面的(sslength ss)只计算一次!不会有影响!若果计算多次,结果就不正确了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2476个

财富等级: 金玉满堂

发表于 2013-6-17 13:35:17 | 显示全部楼层
保持选择集元素和表元素顺序一致 是这样的呀!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 41个

财富等级: 招财进宝

发表于 2013-11-24 12:03:05 | 显示全部楼层
第二行(if (eq 'PICKSET (type ss)) 改成 (if ss 岂不更简洁?何必搞得那么文绉绉的?还让人一时之间没看懂。编程就得力求简洁,越简洁,越好!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 41个

财富等级: 招财进宝

发表于 2013-11-24 12:04:17 | 显示全部楼层
第二行(if (eq 'PICKSET (type ss)) 改成 (if ss 岂不更简洁?何必搞得那么文绉绉的?还让人一时之间没看懂。编程就得力求简洁,越简洁,越好!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-11-24 12:09:35 | 显示全部楼层
958620832 发表于 2013-11-24 12:04
第二行(if (eq 'PICKSET (type ss)) 改成 (if ss 岂不更简洁?何必搞得那么文绉绉的?还让人一时之间没看 ...

如果你这么写,那SS如果不是选择集呢? 下面不就出错了。楼主这么写判断了变量的类型,是增加了保险。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 41个

财富等级: 招财进宝

发表于 2013-11-24 12:13:07 | 显示全部楼层
菜菜学ODCL 发表于 2013-11-24 12:09
如果你这么写,那SS如果不是选择集呢? 下面不就出错了。楼主这么写判断了变量的类型,是增加了保险。

怎么会呢?你大概不会在程序中定义ss为选择集的同时,还将ss定义为其他类型吧?根据个人习惯,ss要么是nil,要么就是选择集,最好不要一个变量多种用途,容易搞混,也没必要。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-11-24 12:16:20 | 显示全部楼层
958620832 发表于 2013-11-24 12:13
怎么会呢?你大概不会在程序中定义ss为选择集的同时,还将ss定义为其他类型吧?根据个人习惯,ss要么是ni ...

这个是函数啊,给别人调用的,可能存在调用的人变量搞错啊,要是自己用的,就熟悉了。我认为可以加上,要不就不加,加 (if ss 是没必要的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 41个

财富等级: 招财进宝

发表于 2013-11-24 13:10:25 | 显示全部楼层
菜菜学ODCL 发表于 2013-11-24 12:16
这个是函数啊,给别人调用的,可能存在调用的人变量搞错啊,要是自己用的,就熟悉了。我认为可以加上,要 ...

不是加(if ss),而是改成(if ss),understand?
楼主都已经在程序之前说明了,ss就是选择集(如附图所示),调用的人变量也会搞错?
每个程序都会有说明的,都有一定的实用范围的。不看说明,当然会搞错,什么变量都可能搞懂,是不是编程者得把各种各样的情况都得考虑了?那程序岂不得做得很长很长?有那个必要么?

参数说明: ss----选择集

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-5 06:05 , Processed in 0.449128 second(s), 66 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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