明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: wanchr

[提问] 什么原因有些块选不中,懂的提教教我,谢谢。

[复制链接]
发表于 2023-12-15 18:00 | 显示全部楼层
masterlong 发表于 2023-12-15 17:54
这么多回复
就没人提醒一下字符串还要加双引号的么?


看样子很像cad系统打印的
 楼主| 发表于 2023-12-15 18:47 | 显示全部楼层
wzg356 发表于 2023-12-15 17:13
与$无关-transsfilter没处理没包含
与#相关

2 . XS-5#基础$1$pile2)
(2 . XS-5#基础$1$pile2)这一行返回就是用的你函数啊,我就是问你怎么处理过还是一样的。
 楼主| 发表于 2023-12-15 18:48 | 显示全部楼层
masterlong 发表于 2023-12-15 17:54
这么多回复
就没人提醒一下字符串还要加双引号的么?

双引号,是什么意思,我看不懂字符串处理。教教我。
 楼主| 发表于 2023-12-15 19:02 | 显示全部楼层
本帖最后由 wanchr 于 2023-12-15 19:54 编辑

  1. (defun transsfilter (str / tf);就是你的函数啊。
  2.   (vl-list->string
  3.     (apply 'append
  4.       (mapcar
  5.         (function (lambda (c)
  6.           (if (or (> c 128) tf)
  7.             (progn
  8.               (if (not tf) (setq tf t) (setq tf nil))
  9.               (list c))
  10.             (progn
  11.               (setq tf nil)
  12.               (if (member c '(35 64 46 42 63 126 91 93 45 44))
  13.                 (list 96 c)
  14.                 (list c)))))) (vl-string->list str)))))
  15. (defun get-entity-info()
  16.   (setq entity-info (entget entity)) ; 获取所选对象的信息
  17.   (princ (strcat "\n你选择的一个原始对象信息:\n" (vl-princ-to-string entity-info))) ; 显示所选对象的信息
  18.   (princ "\n")
  19.   (progn
  20.     (setq aa (assoc 8 entity-info))
  21.     (princ aa)
  22.     (cons (car aa) (transsfilter (cdr aa)))
  23.     (princ "\n")
  24.     (princ aa)
  25.     (princ "\n")
  26.     )
  27. (setq layer-name (cdr aa));就是用你的函数吗
  28.   ;(setq layer-name (cdr (assoc 8 entity-info))) ; 获取所选对象的图层名
  29.   ;(princ layer-name)
  30.   ;(princ "\n")
  31.   ;(setq nname (cdr (assoc 100 entity-info))) ; 获取所选对象的名称
  32.   ;(setq entity-type (cdr (assoc 0 entity-info))) ; 获取所选对象的类型
  33.   ;(setq bname (cdr (assoc 2 entity-info)))
  34. )
  35. (defun build-filter()
  36.     (setq filter nil) ; 初始化过滤条件为空列表
  37.   (if layer-name
  38.     (setq filter (cons (cons 8 layer-name) filter))) ; 如果图层名存在,则将图层名添加到过滤条件中
  39.   (if nname  
  40.     (setq filter (cons (cons 100 nname) filter))) ; 如果名称存在,则将名称添加到过滤条件中
  41.   (if entity-type
  42.     (setq filter (cons (cons 0 entity-type) filter))) ; 如果类型存在,则将类型添加到过滤条件中
  43.   (if bname
  44.    (setq filter (cons (cons 2 bname) filter)))
  45.   (princ (strcat "\n默认过滤条件:\n" (vl-princ-to-string filter))) ; 显示构建的过滤条件
  46. )


发表于 2023-12-15 19: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辅助
 楼主| 发表于 2023-12-15 19:59 | 显示全部楼层
wzg356 发表于 2023-12-15 19:07
"XS-5#基础‘$1$pile" ==字符串

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

老大,帮我看下楼上代码,错哪了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-7-3 09:16 , Processed in 0.128739 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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