明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
123
返回列表 发新帖
楼主: wzg356

[源码] 自设ssget关键字提示函数356版--命令行/屏幕提示两个版本

[复制链接]
发表于 2025-5-19 17:34:48 | 显示全部楼层
wzg356 发表于 2025-5-19 16:43
屏幕提示截去方括号(简单些好),比较完整的更新了  去下载研究

我的程序没写那么规矩,凑活看,这个现在只能在命令行有提示

  1. (vl-load-com)
  2. ;   测试程序
  3. (defun c:Q( / ss_k)

  4.   (setq ss_k (ssgetSEL "" nil "提示语3" ))

  5.   (command "chprop" "p" "" "c" "1" "")(princ))

  6. ;   ssget关键字提示函数简版
  7. (defun ssgetSEL(sel fls msg / ss ov)
  8.   (setq ov (getvar "OSMODE"))
  9.   (setq ss(vl-catch-all-apply 'ssgetSEL00 (list sel fls msg)))
  10.   (setvar "OSMODE" ov)(setvar "nomutt" 0)
  11.   (if(vl-catch-all-error-p ss)(exit)ss)
  12. )
  13. (defun ssgetSEL00(sel fls msg / p p2 d ps)
  14.   (setq sel(if(= 'str(type sel))(strcase sel)sel)
  15.     msg(cond((and msg(/= "" msg))msg)
  16.         ((member sel '(":E:S" ":S:E" ":E"))"\n拾取对象<>:")
  17.         (t "\n拾取或框选对象<>:"))   
  18.   )  
  19.   (setvar "OSMODE" 16384)  
  20.   (cond
  21.     ((member sel '("L" "X" "P" "A" "I"))(ssget sel fls))
  22.     ((member sel '(nil "" ":L" ":D" ":N" ":E" ":S" ":E:S" ":S:E"))
  23.       (setvar "nomutt" 1)(princ msg)
  24.       (if(member sel '(nil ""))(ssget fls)(ssget sel fls))
  25.     );无互动/无点表参数的均可加入
  26.     ;((and (member sel '("F" "WP" "CP"))(listp msg)(>(length msg)))(ssget sel msg fls))
  27.     ;可利用msg设为点表参数执行的ssget"F" "Wp" "Cp"模式 意义不大
  28.     ( (setq d(* 0.5(getvar 'pickbox)(/ (getvar 'viewsize)(cadr(getvar 'screensize)))))
  29.       (initget (strcat (vl-string-right-trim " " sel)"  "))
  30.       ;自定义关键字最后要双空格
  31.       (setq p(entsel msg))
  32.       (cond((and p (listp p))(ssget "_C"
  33.           (mapcar '- (cadr p)(list d d))(mapcar '+ (cadr p)(list d d))fls
  34.         ));仿ssget拾取框尺寸
  35.         ((not p)(setq p(cadr(grread t)))(if
  36.           (setq p2(getcorner p "\n指定对角点:"));框选
  37.           (ssget(if(> (car p)(car p2))"_C" "_W") p p2 fls)
  38.         ))
  39.         ((and p(/= "" p))p);返回关键字
  40.       )      
  41.     )
  42.   )  
  43. )

回复 支持 反对

使用道具 举报

发表于 2025-5-19 17:37:34 | 显示全部楼层
你有种再说一遍 发表于 2025-5-19 17:15
别研究了,能用就行了,想要搞复杂还是得去C#或许ARX,
一个简单的ssget关键字回调函数而已,官方直接提供了 ...

论坛高手云集,我是没能力写的出来,只是想看能不能直接应用一下,这个是个很基础的函数,但是使用频率比较高。所以就粗浅试试看
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-6-1 17:01 , Processed in 0.160116 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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