找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3097|回复: 11

[BUG报告] XDRX_SSGET 异常 0817版本

[复制链接]

已领礼包: 593个

财富等级: 财运亨通

发表于 2013-8-18 12:04:29 | 显示全部楼层 |阅读模式

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

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

×
命令: (xdrx_ssget "\nSelect Circle: " '((0 . "circle")))
; 错误: ADS 请求错误

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

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-8-18 16:35:03 | 显示全部楼层
这个函数还要改写,所以手册没公布,感觉现在的用法不太符合习惯,我把现在的用法贴出来,你试试感觉舒服不。

  1. (defun c:test (/ kwordCallback OtherCallback ss)
  2.   (defun kwordCallback (Kword /)       ; 关键字回调函数
  3.     (princ (strcat "\n选择了关键字: " kword))
  4.     (cond
  5.       ((= kword "XCircle")
  6.         (ssget "x" '((0 . "CIRCLE")))
  7.       )
  8.       ((= kword "XLine")
  9.         (ssget "x" '((0 . "LINE")))
  10.       )
  11.       (T
  12.         (princ "\n错误的关键字。")
  13.       )
  14.     )
  15.   )
  16.   (defun OtherCallback (Kword /)       ; 非关键字回调函数
  17.     (princ (strcat "\n选择了非关键字: " kword))
  18.     kword
  19.   )
  20.   (vl-acad-defun 'kwordCallback)       ; 让lisp函数能被arx调用
  21.   (vl-acad-defun 'OtherCallback)       ; 让lisp函数能被arx调用
  22.   (sssetfirst nil nil)
  23.   (xdrx_initGet "选择对象或[全部圆(XC)/所有直线(XL)]: "        ; 选择时的提示
  24.                 "XCircle XLine_XCircle XLine" ; 关键字
  25.                 "kwordCallback"               ; 关键字回调函数名
  26.                 "OtherCallback"               ; 非关键字回调函数名
  27.                 "移除物体: "               ; 移除选择时的提示
  28.   )
  29.   (setq ss (xdrx_SSGet))               ; 开始自定义关键字选择.
  30.   (cond
  31.     ((= (type ss) 'STR)
  32.       (princ (strcat "\n你输入了关键字: " ss))
  33.     )
  34.     ((= (type ss) 'PICKSET)
  35.       (princ "\n你的选择集是:")
  36.       (princ ss)
  37.       (princ ", 选择集中图元个数是: ")
  38.       (princ (sslength ss))
  39.       (sssetfirst ss ss)
  40.       (xdrx_ssFree ss)                       ; 释放选择集
  41.     )
  42.   )
  43.   (princ)
  44. )

点评

xdrx_ssget 这个函数,对象被多次选择对象时,不能自动去重,例如,统计对象的总长,共4条对象,我2次框选这4个对象时,统计出来的总长,就是实际值的 2 倍。用了快2年才发现的 BUG。  详情 回复 发表于 2021-11-6 19:07
这个关键字在Getxxx类中经常用到,Ssget 的缺陷就是要配合变量才能自定义提示,至于使用关键字的习惯一个是先行 getkword, ssget 仅完成过滤选择,把关键字加上有个习惯问题,要好好斟酌,如果这个改了,xdrx_entsel  详情 回复 发表于 2013-8-18 17:52
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

 楼主| 发表于 2013-8-18 17:52:12 | 显示全部楼层
XDSoft 发表于 2013-8-18 16:35
这个函数还要改写,所以手册没公布,感觉现在的用法不太符合习惯,我把现在的用法贴出来,你试试感觉舒服不 ...

这个关键字在Getxxx类中经常用到,Ssget 的缺陷就是要配合变量才能自定义提示,至于使用关键字的情况,习惯上是先行 getkword,  然后 ssget 仅完成过滤选择,把关键字直接加到 ssget 上有个习惯问题,要好好斟酌,如果这个改了,xdrx_entsel 也可以把关键字加上  

点评

现在的用法是 提示字符,关键字,关键字回调处理函数都在 xdrx_initget 里面定义,你可以多运行下上面的程序,看看习惯不。  详情 回复 发表于 2013-8-18 17:58
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-8-18 17:58:12 | 显示全部楼层
eachy 发表于 2013-8-18 17:52
这个关键字在Getxxx类中经常用到,Ssget 的缺陷就是要配合变量才能自定义提示,至于使用关键字的情况,习 ...

现在的用法是  提示字符,关键字,关键字回调处理函数都在 xdrx_initget 里面定义,你可以多运行下上面的程序,看看习惯不。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

 楼主| 发表于 2013-8-18 18:03:45 来自手机 | 显示全部楼层
肯定要一个过程,alisp的就是返回string,根据这个条件直接写后面的处理代码,arx要写成callback,得改变一下
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8613个

财富等级: 富甲天下

发表于 2013-8-18 18:04:46 | 显示全部楼层
天正TS的做法是:无需设定关键字,在使用ssget函数前,先用函数对键盘输入进行监控,ssget后返回按键的代码,如代码的值等于某指定值,就可以执行特定的函数。如果没有键盘输入,不影响ssget的执行。是否可以借鉴一下?

点评

天正TS 相关函数是什么? ssget前,用什么函数设置的关键字?  详情 回复 发表于 2013-8-18 18:34
这个还是 Initget + Getkword 符合 alisp 的多年习惯  详情 回复 发表于 2013-8-18 18:13
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-8-18 18:13:57 | 显示全部楼层
liuyj 发表于 2013-8-18 18:04
天正TS的做法是:无需设定关键字,在使用ssget函数前,先用函数对键盘输入进行监控,ssget后返回按键的代码 ...

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-8-18 18:34:21 | 显示全部楼层
liuyj 发表于 2013-8-18 18:04
天正TS的做法是:无需设定关键字,在使用ssget函数前,先用函数对键盘输入进行监控,ssget后返回按键的代码 ...

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

使用道具 举报

已领礼包: 8613个

财富等级: 富甲天下

发表于 2013-8-18 19:04:33 | 显示全部楼层
说错了,还得设关键字。
(princ "\nS-设置 / D-单选 / 选择管线:")
(_lxa_ "S" " " "D" " ")
(setq lnss (ssget filter)
        tfk  (_sort1_)
)
(or lnss tfk)
)

点评

关键字肯定要设,关键是这个 ssget 是仅返回个字符还是去调用函数  详情 回复 发表于 2013-8-18 19:07
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-8-18 19:07:53 | 显示全部楼层
liuyj 发表于 2013-8-18 19:04
说错了,还得设关键字。
(princ "\nS-设置 / D-单选 / 选择管线:")
(_lxa_ "S" " " "D" " ")

关键字肯定要设,关键是这个 ssget 是仅返回个字符还是去调用函数

点评

看了下 天正TS是用 tfk (_sort1_) 紧接着ssget的 sort1函数获得键盘输入,ssget时候,如果按键有在上面设置的立面的,ssget自动退出,返回nil 这样好吗,ssget里面也没法设置提示串。  详情 回复 发表于 2013-8-18 19:17
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-8-18 19:17:28 | 显示全部楼层
Free-Lancer 发表于 2013-8-18 19:07
关键字肯定要设,关键是这个 ssget 是仅返回个字符还是去调用函数

看了下

天正TS是用 tfk  (_sort1_)   

紧接着ssget的 sort1函数获得键盘输入,ssget时候,如果按键有在上面设置的立面的,ssget自动退出,返回nil

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

使用道具 举报

发表于 2021-11-6 19:07:47 | 显示全部楼层
XDSoft 发表于 2013-8-18 16:35
这个函数还要改写,所以手册没公布,感觉现在的用法不太符合习惯,我把现在的用法贴出来,你试试感觉舒服不 ...

xdrx_ssget 这个函数,对象被多次选择对象时,不能自动去重,例如,统计对象的总长,共4条对象,我2次框选这4个对象时,统计出来的总长,就是实际值的 2 倍。用了快2年才发现的 BUG。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-20 00:31 , Processed in 0.439062 second(s), 53 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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