kalai 发表于 2022-7-6 08:56:54

当前提取的边界框

你好
我需要获得当前图形的边界框(即最小值和最大值)。
我的代码,

(defun bboxdims (/ ent obj minpt maxpt pt1 pt2)
(vl-load-com)
(if (setq ent (car (entsel)))
   (progn
   (vlax-invoke-method (vlax-ename->vla-object ent) 'getboundingbox 'minpt 'maxpt)
   (setq pt1 (trans (vlax-safearray->list minpt) 0 ent))
   (setq pt2 (trans (vlax-safearray->list maxpt) 0 ent))
   (list (- (car pt2)(car pt1))(- (cadr pt2)(cadr pt1)))
   )
)
)


使用这个,我只能选择单个对象。但我希望选择当前图形中的所有对象,并获得图形的边界框。
 
帮助我

Tharwat 发表于 2022-7-6 09:13:02

这可能有用。。。。。
 

(vla-zoomextents (vlax-get-acad-object))
(setq MinP (getvar 'vsmin))
(setq MaxP (getvar 'vsmax))


 
塔瓦特

kalai 发表于 2022-7-6 09:28:27

谢谢Tharwat,很好用

Tharwat 发表于 2022-7-6 09:42:15

不客气,卡莱。

Lee Mac 发表于 2022-7-6 10:06:16

这将返回所提供选择集的边界框:
 
这里有一个函数来测试它:
 
这里是另一个变体。
页: [1]
查看完整版本: 当前提取的边界框