乐筑天下

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

[编程交流] 块到层

[复制链接]

33

主题

117

帖子

85

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
170
发表于 2022-7-6 00:03:18 | 显示全部楼层 |阅读模式
有人能帮忙吗。。。绘制一个包含多个块的图形,所有块都位于零层。
 
我需要一个lisp例程,使他们成为基于邮政编码的个人层(见附图)。
010321xig2zv7vzgyu7r46.jpg
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 00:16:40 | 显示全部楼层
你能寄一张样图吗?
回复

使用道具 举报

33

主题

117

帖子

85

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
170
发表于 2022-7-6 00:16:46 | 显示全部楼层
没有问题。见附件。这只是我正在处理的文件的一个样本。
Southwark邮编。图纸
回复

使用道具 举报

1

主题

80

帖子

79

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 00:23:52 | 显示全部楼层
已测试,并在您发布的示例图形中工作。如果你遇到任何问题,请告诉我。
 
  1. ;;;
  2. ;;; CheSyn 2013
  3. ;;; BLK2LAYER - change layer of block to tag value
  4. ;;;
  5. (defun c:blk2layer ( / oe ss no e x at ax ln)
  6.    (command "_.undo" "BEgin")
  7. (setq oe (getvar 'CMDEcho) )
  8. (setvar 'CMDEcho 0)
  9.    (setq ss (ssget "_x" '( (0 . "INSERT")(2 . "BLK*")(8 . "0") ))
  10.          no 0 )
  11.    (while
  12.        (< no (sslength ss) )
  13.        (setq e (ssname ss no)
  14.              x (entget e)
  15.              at (entnext e)
  16.              ax (entget at) )
  17.            (while
  18.                (/= "SEQEND" (cdr (assoc 0 ax)) )
  19.                (if
  20.                    (= "Postcode" (cdr (assoc 2 ax)) )
  21.                    (setq ln (cdr (assoc 1 ax)) )
  22.                )
  23.                (setq at (entnext at)
  24.                      ax (entget at) )
  25.            )
  26.                (entmod
  27.                    (subst
  28.                        (cons 8 ln)
  29.                        (assoc 8 x)
  30.                        x
  31.                    )
  32.                )
  33.            (entupd e)
  34.        (setq no (1+ no) )
  35.    )
  36. (setvar 'CMDEcho oe)
  37.    (command "_.undo" "End")
  38. (princ)
  39. )
回复

使用道具 举报

33

主题

117

帖子

85

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
170
发表于 2022-7-6 00:36:10 | 显示全部楼层
谢谢,效果很好,谢谢。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 00:39:29 | 显示全部楼层
编写代码的另一种方法
 
  1. (defun c:b2l (/ ss i lay e et enx)
  2. (if (setq ss (ssget "_X"
  3.               '((0 . "INSERT") (66 . 1))
  4.        )
  5.      )
  6.    (repeat (setq i (sslength ss))
  7.      (setq lay nil e  (ssname ss (Setq i (1- i)))
  8.     l  (assoc -1 (entget e))
  9.     et e
  10.      )
  11.      (while
  12. (and
  13.   (null lay)
  14.   (= (cdr (assoc 0 (setq enx (entget (setq et (entnext et))))))
  15.      "ATTRIB"
  16.   )
  17. )
  18. (if (= "POSTCODDE" (strcase (cdr (assoc 2 enx))))
  19.    (setq lay (cdr (assoc 1 enx)))
  20. )
  21.      )
  22.      [color="blue"](if lay [/color](entmod (list (cons 8 lay) l))[color="blue"])[/color]
  23.    )
  24. )
  25. (princ)
  26. )
回复

使用道具 举报

1

主题

80

帖子

79

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 00:44:10 | 显示全部楼层
 
不客气。
 
非常干净,pBe!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 00:55:59 | 显示全部楼层
 
如果程序处理的属性块不包含邮政编码标签,该怎么办?
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 01:00:53 | 显示全部楼层
 
把我带到那里,LM,(除其他外)
 
干杯
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 01:08:11 | 显示全部楼层
..........
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 21:12 , Processed in 0.846291 second(s), 75 queries .

© 2020-2025 乐筑天下

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