kzd2004 发表于 2023-12-28 21:16:05

界面是乱码请问是什么问题引起的?

null. 发表于 2023-12-28 21:18:24

wzg356 发表于 2023-12-24 16:11
改进了常规6项数据取得方式,看看能否支持部分天正的图元。

用天正的可以拿去测试看看


程序不会出错了,还可以选天正图元。

wzg356 发表于 2023-12-28 21:21:00

本帖最后由 wzg356 于 2023-12-28 21:24 编辑

kzd2004 发表于 2023-12-28 21:16
界面是乱码请问是什么问题引起的?
刚下载的?繁体版只能在繁体中文cad用

kzd2004 发表于 2023-12-28 21:42:23

wzg356 发表于 2023-12-28 21:21
刚下载的?繁体版只能在繁体中文cad用

谢谢你了,还真是的。

ZJKUSO 发表于 2023-12-29 15:23:48

能不能调整一下快捷键?QS调用旧版,QSS调用最新版?因为大多数情况,QS就能满足,QSS只有在疑难的情况才需要调用。。

wzg356 发表于 2023-12-29 15:30:24

本帖最后由 wzg356 于 2023-12-29 15:39 编辑

ZJKUSO 发表于 2023-12-29 15:23
能不能调整一下快捷键?QS调用旧版,QSS调用最新版?因为大多数情况,QS就能满足,QSS只有在疑难的情况才需 ...
自己写快捷键命令转Fas,记事本复制粘贴再末尾就行
例如

(defun C:QSs ()(C:myQSELECT))
(defun C:QS ()(C:myQSsELECT))

存lsp转fas,记事本复制粘贴在母fas末尾就行

ZJKUSO 发表于 2023-12-29 15:46:23

本帖最后由 ZJKUSO 于 2023-12-29 15:50 编辑

wzg356 发表于 2023-12-29 15:30
自己写快捷键命令转Fas,记事本复制粘贴再末尾就行
例如


改了,先这样用

ZJKUSO 发表于 2023-12-29 15:48:56

本帖最后由 ZJKUSO 于 2023-12-29 15:56 编辑



我一般搭配这2个功能一起用,90%场景都能应付,qs/CF/dss快速选择,极端情况还是需要小菜选择易


;;重复内容选中(文字或者块),CF******************************************************************************

(defun C:CF( / POINT_ENT SS_K SS_WZ name_k_ori name_k )                                        ;重复内容选中
      (setq POINT_ENT (entget (car (entsel "请选择待匹配的文字或块:"))))
      (prompt "\n")
      (cond
                ((= (cdr (assoc 0 POINT_ENT)) "TEXT") ;单行文字
                        (if (setq SS_WZ (ssget "_X" (list (cons 1 (cdr (assoc 1 POINT_ENT))))))
                              (progn
                                        (prompt (strcat "相同文字数量:" (rtos (sslength SS_WZ) 2 0)))
                                        (sssetfirst nil SS_WZ)
                              )
                              (prompt "未选中任何图元!")
                        )
                )
                ((= (cdr (assoc 0 POINT_ENT)) "MTEXT") ;多行文字
                        (if (setq SS_WZ (ssget "_X" (list (cons 1 (cdr (assoc 1 POINT_ENT))))))
                              (progn
                                        (prompt (strcat "相同文字数量:" (rtos (sslength SS_WZ) 2 0)))
                                        (sssetfirst nil SS_WZ)
                              )
                              (prompt "未选中任何图元!")
                        )
                )               
                ((= (cdr (assoc 0 POINT_ENT)) "INSERT")      ;块
                        ;(vlax-dump-object (vlax-ename->vla-object (cdar POINT_ENT)))
                        (setq name_k_ori (cdr (assoc 2 POINT_ENT)))
                        (setq name_k (vl-string-subst "`@" "@" name_k_ori))
                        (setq name_k (vl-string-subst "`#" "#" name_k))
                        (setq name_k (vl-string-subst "`." "." name_k))
                        (setq name_k (vl-string-subst "`~" "~" name_k))
                        (setq name_k (vl-string-subst "`*" "*" name_k))
                        (if (setq SS_K (ssget "_X" (list (cons 2 name_k))))
                              (progn
                                        (prompt (strcat "相同块数量:" (rtos (sslength SS_K) 2 0) "                        图块名:" (vla-get-EffectiveName (vlax-ename->vla-object (cdar POINT_ENT)))))
                                        (sssetfirst SS_K SS_K)
                              )
                              (prompt "未选中任何图元!")
                        )
                )
                ;添加对天正图元的支持
                (T (prompt "暂未对该对象提供支持!"))
      )
)

;;图层多选过滤,dss******************************************************************************

(defun c:dss (/ en i lystr ss1 ss2)
      (prompt "\n选择源对象<右键结束>:")
(setq ss1 (ssget) i 0 lystr (cdr (assoc 8 (entget (ssname ss1 0)))))
      (repeat (1- (sslength ss1))
                (setq en (ssname ss1 (setq i (1+ i))))
                (setq lystr (strcat lystr "," (cdr (assoc 8 (entget en)))))
      )
      (prompt "\n选择目标对象[区域框选/点选] 或 [全选(右键/空格)]:")
      (setq ss2 (ssget (list (cons 8 lystr))))(if (not ss2) (setq ss2 (ssget "x" (list (cons 8 lystr)))))
(sssetfirst nil ss2)
(princ)
)

wzg356 发表于 2023-12-29 16:02:50

本帖最后由 wzg356 于 2023-12-29 16:53 编辑

ZJKUSO 发表于 2023-12-29 15:48
我一般搭配这2个功能一起用,90%场景都能应付,qs/CF/dss快速选择,极端情况还是需要小菜选择易


...
块名 图层名等转义可用这个函数transsfilter
http://bbs.mjtd.com/thread-189098-1-1.html?_dsign=bba55d1e
我3.0版里面也有

选择工具默认勾选块名-直接用不也可?

第一个也可这样简写


(and(setq e(ssget ":E:S" '((0 . "INSERT,mtext,text"))))
      (setq e(ssname e 0)
                es(entget e)               
                e12(assoc 1 es)
                e12(if e12      (list '(0 . "*text") e12)
                        (list (assoc 0 es) (cons 2(transsfilter(cdr(assoc 2 es)))))
                        );组码表要加图元类型 比如填充图案名也有2码有1码的也不只文字            
                ss(ssget "x" e12)
      )
      (sssetfirst nil ss)
      (princ(strcat "\n选中"(itoa(sslength ss))"个"))
)


hzyhzjjzh 发表于 2023-12-31 12:32:16

谢谢楼主分享!{:1_1:}
页: 1 2 3 4 5 [6] 7
查看完整版本: my快速选择4.0 +自设容差选择函数 fas插件(20240117更)