乐筑天下

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

[编程交流] LISP统计镜像块。

[复制链接]

16

主题

104

帖子

88

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-6 06:21:47 | 显示全部楼层 |阅读模式
上周,我为我们的新办公室布局(约160个座位)制定了一系列选项,现在有人问我是否可以数一数有手的桌子。
 
由于我的时间表是手动完成的,我选择相似或使用Lee Macs块计数器来计算嵌套块,我无法轻松做到这一点,因为我只是镜像桌子,而不是使用单独的块。
 
有人有计算镜像块的代码吗?
回复

使用道具 举报

GP_

8

主题

248

帖子

245

银币

初来乍到

Rank: 1

铜币
42
发表于 2022-7-6 06:31:02 | 显示全部楼层
尝试
 
  1. (defun c:cmb ()
  2.    (princ
  3.        (strcat "N. "
  4.                (itoa (sslength (ssget "_X" (list '(0 . "INSERT") (cons 41 -1.0)))))
  5.                " mirrored blocks in dwg"
  6.        )
  7.    )
  8.    (princ)
  9. )
回复

使用道具 举报

16

主题

104

帖子

88

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-6 06:36:50 | 显示全部楼层
谢谢,效果很好!
 
它确实选择了我可能看到的所有镜像块,如果我可以将其插入现有的LISP中,那么我可以计算特定的镜像块。我还刚刚意识到,我可以使用快速选择->块->比例x=-1,它突出显示了所有这些(此外,它给了我与您的代码相同的答案,所以我肯定是一个赢家。)
 
不过,不要告诉我完整的答案,我想学习
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 06:39:47 | 显示全部楼层
 
尝试此代码,并在运行例程后检查命令行。
 
  1. (defun c:Test (/ j ss i e)
  2. (if (setq j 0 ss (ssget "_X" (list '(0 . "INSERT")(cons 410 (getvar 'CTAB)))))
  3. (repeat (setq i (sslength ss))
  4.    (setq e (entget (ssname ss (setq i (1- i)))))
  5.    (if (minusp (cdr (assoc 41 e)))
  6.      (setq j (1+ j)))
  7.    )
  8. )
  9. (princ (strcat "\n Total of Mirrored Block : ( " (itoa j) " )"))
  10. (princ)
  11. )
回复

使用道具 举报

0

主题

375

帖子

385

银币

限制会员

铜币
-7
发表于 2022-7-6 06:42:33 | 显示全部楼层
...只考虑其他情况:
  1. (defun C:TEST ( / ss1 ss i en n ob a l)
  2. (if
  3.    (setq ss1 (ssadd) ss (ssget '((0 . "INSERT"))))
  4.    (repeat (setq i (sslength ss))
  5.      (setq i (1- i)
  6.            en (ssname ss i)
  7.            ob (vlax-ename->vla-object en)
  8.            )   
  9.      (if
  10.        (minusp (* (vla-get-XScaleFactor ob) (vla-get-YScaleFactor ob)))
  11.        (progn
  12.          (setq n (vla-get-EffectiveName ob)
  13.                ss1 (ssadd en ss1)
  14.                )
  15.          (if
  16.            (setq a (assoc n l))
  17.            (setq l (subst (cons n (1+ (cdr a))) a l))
  18.            (setq l (cons (cons n 1) l))
  19.            )
  20.          )
  21.        )
  22.      )
  23.    )
  24. (foreach x l
  25.    (princ "\n")
  26.    (princ (car x))
  27.    (princ " --> ")
  28.    (princ (cdr x))
  29.    (princ " pcs.")
  30.    )
  31. (sssetfirst nil ss1)
  32. (princ)
  33. )
回复

使用道具 举报

16

主题

104

帖子

88

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-6 06:50:36 | 显示全部楼层
</blockquote>
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 06:55:44 | 显示全部楼层
@GP_如果将任何选定块缩放到任何其他比例因子,则编码不会在选择集中获得该块。
回复

使用道具 举报

GP_

8

主题

248

帖子

245

银币

初来乍到

Rank: 1

铜币
42
发表于 2022-7-6 06:57:47 | 显示全部楼层
格伦,不客气。
 
塔瓦,你说得对,我写得太快了。。。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 07:05:52 | 显示全部楼层
 
你还因为速度太快把我的名字写错了
回复

使用道具 举报

GP_

8

主题

248

帖子

245

银币

初来乍到

Rank: 1

铜币
42
发表于 2022-7-6 07:10:31 | 显示全部楼层
已更正。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 18:55 , Processed in 1.264126 second(s), 72 queries .

© 2020-2025 乐筑天下

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