明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2315|回复: 10

定义块的小程序

[复制链接]
发表于 2021-3-12 16:03:08 | 显示全部楼层 |阅读模式
(defun emkblk (ss pt name / i)
         (print 1)
         (entmake (list '(0 . "block") (cons 2 name) '(70 . 0) (cons 10 pt)))
         (mapcar '(lambda (x) (entmake (cdr (entget x)))) ss)
         (entmake '((0 . "ENDBLK")))
         (mapcar 'entdel ss)
         (entmake (list '(0 . "INSERT") (cons 2 name) (cons 10 pt)))
)

(defun ZB (obj / obj ss x y)
        (vla-getboundingbox obj 'x 'y)
        (setq ss (mapcar 'vlax-safearray->list (list x y)))
        (list (mapcar 'car ss) (mapcar 'cadr ss))
)


(defun c:B12 ( )
         (vl-load-com)
         (princ "\n请选择要变为块的对象")
         (setq ss (ssget))
         (setq ss1 '())
         (while (setq ent (ssname ss 0)) (setq ss (ssdel ent ss) ss1 (cons ent ss1) ) )
         (setq ss2 (mapcar 'ZB (mapcar 'vlax-ename->vla-object ss1)))
         (setq ss3 (vl-sort (apply 'append (mapcar 'car ss2)) '<) x1 (car ss3) x2 (last ss3))
         (setq ss3 (vl-sort (apply 'append (mapcar 'cadr ss2)) '<) y1 (car ss3) y2 (last ss3))
         (setq pt (mapcar '* '(0.5 0.5) (list (+ x1 x2) (+ y1 y2))))
         (setq WD (itoa (fix  (- x2 x1))))
         (setq HG (itoa (fix  (- y2 y1))))
         (setq NE (strcat "c" "B" WD " " "H" HG))
         (print ne)
         (setq name ne)
         (emkblk ss1 pt name)
         (princ)
)

ps;只需要框选需要定义为块的对象即可,块名为块外接最小矩形的尺寸,前缀c可以自行修改。

评分

参与人数 1明经币 +1 收起 理由
xj6019 + 1 赞一个!

查看全部评分

发表于 2021-3-14 10:45:23 来自手机 | 显示全部楼层
谢谢大侠分享另一种做块方法
发表于 2021-3-14 13:09:49 | 显示全部楼层
能分享的人   最可爱!
发表于 2021-5-23 08:50:18 | 显示全部楼层
感谢大神分享
发表于 2022-12-12 09:52:34 | 显示全部楼层
能分享的人   最可爱!
发表于 2022-12-12 16:01:34 | 显示全部楼层
下载玩玩看看
发表于 2023-10-5 08:39:50 | 显示全部楼层
谢谢楼主分享。我下载试了下,好像不能用:

“命令: b12 未知命令“B12”。按 F1 查看帮助。”

未知命令,加载后输入命令,出现这样的情况。不知为何?
发表于 2024-2-21 10:37:30 来自手机 | 显示全部楼层
很好用,感谢分享
发表于 2024-3-5 08:29:21 | 显示全部楼层
感谢分享感谢分享感谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-28 23:59 , Processed in 0.179832 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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