my快选4.5的选择函数ssgetplus应用简介
本帖最后由 wzg356 于 2024-10-5 16:52 编辑函数名ssgetplus
特色:带命令行及屏幕提示
点选、框/反选规则与ssget一致
组码与特性混合过滤
返回:选择集或nil
调用格式(ssgetplus sel fls msg)
参数msg:可以为nil 空字串或提示字串,有的有效关键字的提示无效或有格式化提示
参数fls:可以为nil或ssget的表过滤
也可以可组码与特性混写
数值型特性可以加入"=" "/=" ">" ">=" "<" "<="运算符字串或容差--数字字符
参数sel:可为nil或空字串或关键字字串"L" "X" "P" "A" "I" "F""CP""WP" 及":E"和":S"组合
可为nil 或空格
"F""CP""WP"可互相切换---格式化提示 指定提示无效了
关键字"L" "X" "P" "A" "I"提示就无效无意义了
关键字无效时与nil 或空格等价
函数在这个工具里面下载http://bbs.mjtd.com/thread-189250-1-1.html
涉及的源代码我帖子发过一些
由于兼顾我其他程序使用,代码有些冗长,未单独完成整理(很烧脑),暂不发了。
加载上面的选择工具就可以执行下面语句例子了
(ssgetplus nil nil "点取或框选对象<>:")
(if ssgetplus
(ssgetplus nil '((8 . "0")(0 . "LWPOLYLINE")) "选0层多线段\n拾取或框选对象<>:")
;可用\N多行显示---提示尽量简洁
;这种用法比较多
(progn(princ "选0层多线段")(ssget '((8 . "0")(0 . "LWPOLYLINE"))))
;没有加载ssgetplus函数就用后面这句建议写法
)
(ssgetplus nil (list '(8 . "0") '(0 . "LWPOLYLINE")'(Closed . -1)(cons ">=" '(AREA . 10000))) "选0层闭合多线段\n开发区大户型\n点取或框选对象:")
;选0层面积不小于10000的的闭多线段--- 命令行回显数量 面积汇总
(ssgetplus nil (list '(8 . "0") '(0 . "LWPOLYLINE")'(Closed . -1)(cons "3000.0" '(AREA . 10000))) "点取或框选对象:")
;选0层面积7000-13000的的闭多线段
;注意表结构(cons运算符/容差字串(cons 特性 特性值)) --运算符/容差字串只对数值型特性有效
;这部分逻辑理解要求高
(ssgetplus "CP" (list '(8 . "0") '(0 . "LWPOLYLINE")'(Closed . -1)(cons "3000.0" '(AREA . 10000))) "")
;圈交选择0层面积7000-13000的的闭多线段----栏选、圈围、圈交可切换-----格式化提示 指定提示无效了
(ssgetplus ":e:s" (list'(0 . "LWPOLYLINE")'(Closed . -1)) "选择1条封闭多线段\n点取对象:")
;可以":e"(点取) ":s"(一次结束)分别试验
(ssgetplus "c" (list'(0 . "LWPOLYLINE")'(Closed . -1)) "选择封闭多线段对象:");无效关键字
其实,过滤器是用来服务于索引的...
每当看到你们写新的ssget而没有写索引就觉得路子歪了
页:
[1]