乐筑天下

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

[编程交流] 选择内部的特定块

[复制链接]

14

主题

41

帖子

27

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-5 20:21:14 | 显示全部楼层 |阅读模式
选择多段线/多边形内的特定块,并将选定的多行文字/文字信息更新为以下提到的块标记值
 
标记名:ST_NAME
HSE\U编号
 
它应该询问块名。
212118vbyeayaeb1zjbbs1.jpg
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 20:27:14 | 显示全部楼层
这是一个问题,使用Map还是lisp
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 20:32:21 | 显示全部楼层
你说的是属性块吗?
您想用什么新的文本字符串替换当前字符串?
 
示例图大多比文字更好地描述了目标
回复

使用道具 举报

14

主题

41

帖子

27

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-5 20:34:50 | 显示全部楼层
请查找随附的图纸
测试1.dwg
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 20:38:28 | 显示全部楼层
我看到标签名(ST\u NME和HSE\u NO)是不可见的,即使更改了值,它们也不会被看到。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 20:41:59 | 显示全部楼层
我试图记住这篇文章,但我用lisp在多段线内选择了文本。修改它应该很简单,可以找到一个块并更新属性,这是第2部分。
 
这是一个开始,需要修改以寻找插入,发布的dwg没有关于要替换的内容的信息,需要更多详细信息。
 
  1. ; this is not finished code
  2. (vl-load-com)
  3. (defun getcoords (ent)
  4. (vlax-safearray->list
  5.    (vlax-variant-value
  6.      (vlax-get-property
  7.    (vlax-ename->vla-object ent)
  8.    "Coordinates"
  9.      )
  10.    )
  11. )
  12. )
  13. (defun co-ords2xy ()
  14. ; convert now to a list of xy as co-ords are x y x y x y if 3d x y z x y z
  15. (setq numb (/ (length co-ords) 2))
  16. (setq I 0)
  17. (repeat numb
  18. (setq xy (list (nth I co-ords)(nth (+ I 1) co-ords) ))
  19. (setq coordsxy (cons xy coordsxy))
  20. (setq I (+ I 2))
  21. ) ; end repeat
  22. ) ; end defun
  23. ; program starts here
  24. ; choose output file change acdatemp to what you want
  25. (setq plobjs (ssget (list (cons 0 "lwpolyline"))))
  26. (setq numb1 (sslength plobjs))
  27. (setq x numb1)
  28. (repeat numb1
  29. (setq obj (ssname plobjs (setq x (- x 1))))
  30. (setq co-ords (getcoords obj))
  31. (co-ords2xy)
  32. ; write pline co-ords here
  33. (setq numb3 (length co-ords))
  34. (setq z numb3)
  35. (setq ansco-ords "")
  36. (repeat numb3
  37. (setq ansco-ords (strcat ansco-ords (rtos (nth (setq z (- z 1)) co-ords) 2 3 ) " " ))
  38. )
  39. (setq ans (strcat "Pline " ansco-ords))
  40. (write-line ans fout)
  41. (setq ansco-ords "")
  42. (setq ss (ssget "WP" coordsxy (list (cons 0 "Insert")))) ; selection set of Blocks within polygon
  43. (if (= ss nil)
  44. (princ "\nnothing inside")
  45. (progn
  46. (setq coordsxy nil) ; reset for next time
  47. (setq numb2 (sslength ss))
  48. (setq y numb2)
  49. (repeat numb2
  50. ; this where you would do attrib bit
  51. (princ "\n")
  52. ) ; end repeat2
  53. (setq ss nil) ; reset for next poly
  54. )
  55. )
  56. ) ; end repeat1
  57. (close fout)
  58. (princ)
回复

使用道具 举报

14

主题

41

帖子

27

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-5 20:44:50 | 显示全部楼层
请查找随附的jpg
212120w99dvwc5ax5edvfa.jpg
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 20:48:26 | 显示全部楼层
只需使用lisp、ssget和块UTUID的过滤器并更新,只需首先选择街道名称,然后选择相关块(例如通过多边形窗口)。周围有很多例子。我会一次做多次,而不是一次做一次。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-5 20:52:07 | 显示全部楼层
使用字段值rk25134。你只需要做一次。标签ST_NAME和HSE_NO上的值是什么,文本字符串值将跟随它,还是反过来?但是,田地仍然是一条路要走。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 20:55:52 | 显示全部楼层
Pbe好主意,如果你重命名块更新,只需选择文本作为字段。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 09:14 , Processed in 0.676771 second(s), 75 queries .

© 2020-2025 乐筑天下

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