wzg356 发表于 2023-12-15 18:00:46

masterlong 发表于 2023-12-15 17:54
这么多回复
就没人提醒一下字符串还要加双引号的么?


看样子很像cad系统打印的

wanchr 发表于 2023-12-15 18:47:01

wzg356 发表于 2023-12-15 17:13
与$无关-transsfilter没处理没包含
与#相关



2 . XS-5#基础$1$pile2)
(2 . XS-5#基础$1$pile2)这一行返回就是用的你函数啊,我就是问你怎么处理过还是一样的。

wanchr 发表于 2023-12-15 18:48:28

masterlong 发表于 2023-12-15 17:54
这么多回复
就没人提醒一下字符串还要加双引号的么?

双引号,是什么意思,我看不懂字符串处理。教教我。

wanchr 发表于 2023-12-15 19:02:54

本帖最后由 wanchr 于 2023-12-15 19:54 编辑



(defun transsfilter (str / tf);就是你的函数啊。
(vl-list->string
    (apply 'append
      (mapcar
      (function (lambda (c)
          (if (or (> c 128) tf)
            (progn
            (if (not tf) (setq tf t) (setq tf nil))
            (list c))
            (progn
            (setq tf nil)
            (if (member c '(35 64 46 42 63 126 91 93 45 44))
                (list 96 c)
                (list c)))))) (vl-string->list str)))))
(defun get-entity-info()
(setq entity-info (entget entity)) ; 获取所选对象的信息
(princ (strcat "\n你选择的一个原始对象信息:\n" (vl-princ-to-string entity-info))) ; 显示所选对象的信息
(princ "\n")
(progn
    (setq aa (assoc 8 entity-info))
    (princ aa)
    (cons (car aa) (transsfilter (cdr aa)))
    (princ "\n")
    (princ aa)
    (princ "\n")
    )
(setq layer-name (cdr aa));就是用你的函数吗
;(setq layer-name (cdr (assoc 8 entity-info))) ; 获取所选对象的图层名
;(princ layer-name)
;(princ "\n")
;(setq nname (cdr (assoc 100 entity-info))) ; 获取所选对象的名称
;(setq entity-type (cdr (assoc 0 entity-info))) ; 获取所选对象的类型
;(setq bname (cdr (assoc 2 entity-info)))
)
(defun build-filter()
    (setq filter nil) ; 初始化过滤条件为空列表
(if layer-name
    (setq filter (cons (cons 8 layer-name) filter))) ; 如果图层名存在,则将图层名添加到过滤条件中
(if nname
    (setq filter (cons (cons 100 nname) filter))) ; 如果名称存在,则将名称添加到过滤条件中
(if entity-type
    (setq filter (cons (cons 0 entity-type) filter))) ; 如果类型存在,则将类型添加到过滤条件中
(if bname
   (setq filter (cons (cons 2 bname) filter)))
(princ (strcat "\n默认过滤条件:\n" (vl-princ-to-string filter))) ; 显示构建的过滤条件
)

wzg356 发表于 2023-12-15 19:07:07

wanchr 发表于 2023-12-15 18:48
双引号,是什么意思,我看不懂字符串处理。教教我。

"XS-5#基础‘$1$pile" ==字符串

XS-5#基础$1$pile ====可能是变量、函数或符号

2块名 8图层名 0图元类型 样式名等是字符串

可以用http://bbs.mjtd.com/thread-189005-1-1.html辅助

wanchr 发表于 2023-12-15 19:59:06

wzg356 发表于 2023-12-15 19:07
"XS-5#基础‘$1$pile" ==字符串

XS-5#基础$1$pile ====可能是变量、函数或符号

老大,帮我看下楼上代码,错哪了。
页: 1 [2]
查看完整版本: 什么原因有些块选不中,懂的提教教我,谢谢。