乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 67|回复: 17

[编程交流] 帮助:建议如何提高照明

[复制链接]

48

主题

304

帖子

256

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
240
发表于 2022-7-5 20:22:51 | 显示全部楼层 |阅读模式
在图形中,有带有文本属性的门标记块,例如,1-1,1-2。。。。。
 
在excel中,我有一列门标签,其文字对应于图纸中的文字,例如,1-1、1-2。。。。。。
 
在这个excel中,我突出显示或过滤了某些门标签,例如2-55、2-89
 
如何最好地通过lisp或脚本在图形中高亮显示相应的门?
 
我愿意尝试不同的方法。
 
谢谢
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 20:28:54 | 显示全部楼层
如果你能用excel文件上传包含目标属性块的样例图形,我会一次性为你编写一个程序以节省时间。
回复

使用道具 举报

48

主题

304

帖子

256

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
240
发表于 2022-7-5 20:33:28 | 显示全部楼层
 
谢谢兄弟。
 
我会在午餐时间做这件事,并尽快寄出去。
回复

使用道具 举报

48

主题

304

帖子

256

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
240
发表于 2022-7-5 20:35:37 | 显示全部楼层
随附图纸和excel文件。
 
谢谢
 
 
门标签。图纸
门标签。xls公司
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 20:40:27 | 显示全部楼层
首先将Excel文件另存为csv格式,以便能够使用以下程序进行选择,因为GetField函数不支持其他Excel格式。
 
其次,试试这个程序,让我知道
 
  1. (defun c:test (/ ss s f o ex x)
  2. ;;    Tharwat 08.01.2014    ;;
  3. (cond
  4.    ((not (setq
  5.            ss
  6.             (ssget
  7.               "_X"
  8.               (list '(0 . "INSERT") '(66 . 1) (cons 410 (getvar 'CTAB)))
  9.             )
  10.          )
  11.     )
  12.     (alert "No Attributed Blocks found in drawing !!")
  13.    )
  14.    ((and (setq f (getfiled "Select Excel file :"
  15.                            (getvar 'DWGPREFIX)
  16.                            "csv"
  17.                            16
  18.                  )
  19.          )
  20.          (setq o (open f "r"))
  21.     )
  22.     (read-line o)
  23.     (while (setq x (read-line o))
  24.       (setq l (cons (if (setq ex (vl-string-search
  25.                                    ";"
  26.                                    x
  27.                                  )
  28.                         )
  29.                       (substr x
  30.                               1
  31.                               ex
  32.                       )
  33.                       x
  34.                     )
  35.                     l
  36.               )
  37.       )
  38.     )
  39.     (close o)
  40.     (setq s (ssadd))
  41.     (repeat (setq i (sslength ss))
  42.       (mapcar '(lambda (a)
  43.                  (if (member (vla-get-textstring a) l)
  44.                    (ssadd sn s)
  45.                  )
  46.                )
  47.               (vlax-invoke
  48.                 (vlax-ename->vla-object
  49.                   (setq sn (ssname ss (setq i (1- i))))
  50.                 )
  51.                 'getattributes
  52.               )
  53.       )
  54.     )
  55.    )
  56. )
  57. (sssetfirst nil s)
  58. (princ)
  59. )
回复

使用道具 举报

48

主题

304

帖子

256

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
240
发表于 2022-7-5 20:42:45 | 显示全部楼层
按指示执行。
1.excel另存为CSV
2、打开图纸。
3、负荷试验。lsp
3.运行测试(选择CSV文件)
 
但什么也没发生。 
 
 
回复

使用道具 举报

48

主题

304

帖子

256

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
240
发表于 2022-7-5 20:47:22 | 显示全部楼层
我刚刚意识到,当保存为CSV时,所有的颜色都消失了&门文本更改为日期格式。
回复

使用道具 举报

48

主题

304

帖子

256

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
240
发表于 2022-7-5 20:49:15 | 显示全部楼层
嗨Tharwat
 
作为Pmed,我等待你修改代码。
 
谢谢
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 20:52:02 | 显示全部楼层
 
你好
 
尝试修改后的程序,应该与txt文件格式,在这里我上传了txt文件为您的测试
 
  1. (defun c:test (/ ss s f o ex x l i sn)
  2. ;;    Tharwat 08.01.2014    ;;
  3. (cond
  4.    ((not (setq
  5.            ss
  6.             (ssget
  7.               "_X"
  8.               (list '(0 . "INSERT") '(66 . 1) (cons 410 (getvar 'CTAB)))
  9.             )
  10.          )
  11.     )
  12.     (alert "No Attributed Blocks found in drawing !!")
  13.    )
  14.    ((and (setq f (getfiled "Select Excel file :"
  15.                            (getvar 'DWGPREFIX)
  16.                            "txt"
  17.                            16
  18.                  )
  19.          )
  20.          (setq o (open f "r"))
  21.     )
  22.     (read-line o)
  23.     (while (setq x (read-line o))
  24.       (setq l (cons x
  25.                     l
  26.               )
  27.       )
  28.     )
  29.     (close o)
  30.     (setq s (ssadd))
  31.     (repeat (setq i (sslength ss))
  32.       (mapcar '(lambda (a)
  33.                  (if (member (vla-get-textstring a) l)
  34.                    (ssadd sn s)
  35.                  )
  36.                )
  37.               (vlax-invoke
  38.                 (vlax-ename->vla-object
  39.                   (setq sn (ssname ss (setq i (1- i))))
  40.                 )
  41.                 'getattributes
  42.               )
  43.       )
  44.     )
  45.    )
  46. )
  47. (sssetfirst nil s)
  48. (princ)
  49. )

门标签。txt文件
回复

使用道具 举报

48

主题

304

帖子

256

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
240
发表于 2022-7-5 20:56:44 | 显示全部楼层
谢谢塔瓦。
我已经测试过了。
 
通常它会选择上传的TXT文件中反映的所有标签。
 
但是,我注意到,如果对包含不同标记集的TXT文件重复该命令,它仍然会根据第一个TXT选择标记。
 
然后关闭并重新打开图形文件,并执行了命令,但基于第二个TXT文件,它只选择了特定的标记。然后我在你上传的TXT文件上重复这个命令&它根据你上传的TXT文件选择了标签。
 
希望你能解决。
 
 
 
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-8-18 19:48 , Processed in 2.695661 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表