jenlin 发表于 2024-9-1 13:45:45

包围盒碰到块元素图框

以下代码也是从论坛得来的凑的,想不需要用户选择的情况下获得最大包围盒。但在碰到图框块元素时出错了,哪位大佬能帮看看么?感谢。

(defun c:ctx(/ dd gbo p1 p2 p3 p4 ps pxa pxb pya pyb ss)
(setvar "cmdecho" 0)
(defun gbo(obj / p1 p2)(vla-getboundingbox obj 'p1 'p2)(mapcar 'vlax-safearray->list (list p1 p2)))
(setq filter '((0 . "*LINE,ARC,ELLIPSE,CIRCLE,TEXT,POINT,ATTDEF,RECTANG,INSERT")))
(setq ss (ssget "X" filter))
(setq dd (*(getvar "dimscale")6))
(setq ps (mapcar 'gbo(mapcar 'vlax-ename->vla-object(vl-remove-if 'listp(mapcar 'cadr(ssnamex ss))))))
(setq pxa (apply 'min(mapcar 'caar ps)))
(setq pya (apply 'min(mapcar 'cadar ps)))
(setq pxb (apply 'max(mapcar 'caadr ps)))
(setq pyb (apply 'max(mapcar 'cadadr ps)))
(setq p1 (list pxa pya))
(setq p2 (list pxb pya))
(setq p3 (list pxb pyb))
(setq p4 (list pxa pyb))
(princ p1)
(princ p2)
(princ p3)
(princ p4)
(prin1)
)



jenlin 发表于 2024-9-1 13:49:41

测试时发现,去掉 INSERT,可以执行,但只有里面的图形,图框的坐标没了,也即丢了图框了,加上INSERT就抛错了。
错误: Automation 错误。 范围无效

qazxswk 发表于 2024-9-1 14:05:08

我在Autocad2007,浩辰CAD2025上操作都是正常的

kozmosovia 发表于 2024-9-1 15:37:51

不是图块的问题,是块里面有MTEXT的问题,

jenlin 发表于 2024-9-1 16:37:56

忘了上传我的测试附件了:L

jenlin 发表于 2024-9-1 16:39:01

kozmosovia 发表于 2024-9-1 15:37
不是图块的问题,是块里面有MTEXT的问题,

好的,我验证一下。
页: [1]
查看完整版本: 包围盒碰到块元素图框