怎么用lisp画出选择集的外围线
如题,实现以下功能:框选一大堆图元(比如:直线、多段线、圆、文字、标注等),找到该选择集的中心,在选择集的外围画一个矩形把它框起来,这个矩形的位置和尺寸怎么定。请指教!
占个位,回头研究研究。 vla-getboundingbox得到单个对象的范围,选择集的范围也就容易得到了 接楼上,得到每个对象的框角点后,将其组成点表,然后查找X坐标值的最小值和最大值,Y坐标值的最小值和最大值。然后可以组成两个点表(x最小值,y值最小值)(x值最大值,y值最大值),以这两个点画矩形即可。 问下(vla-getboundingbox aaa)中aaa是什么类型的参数;我尝试获取第一个对象的外框,调试发现下面的代码在运行到(vla-getboundingbox vlaob)时提示参数类型错误
(defun test()
(setq ss(ssget))
(setq en (ssname ss 0))
(setq valob (vlax-ename->vla-object en))
(setq e1(vla-getboundingbox vlaob))
(princ)
) gdslqs 发表于 2011-11-16 16:04 static/image/common/back.gif
问下(vla-getboundingbox aaa)中aaa是什么类型的参数;我尝试获取第一个对象的外框,调试发现下面的代码在运 ...
希望对您有用;; ! ***************************************************************************
;; ! xd_GetObjectBoundingBox
;; ! ***************************************************************************
;; ! 功能: 返回实体包围盒的对角点.
;; ! 参数: 'ename' - Any Drawing Object
;; ! 返回值: 'Lst' - is a list of LL and UR
;; ! 说明: 适用 AutoCAD 2000+
;; ! e-mail: eachy@xdcad.net
;; ! Web : www.xdcad.net
;; ! ****************************************************************************
(defun xd_GetObjectBoundingBox (ename / ll ur)
(vla-GetBoundingBox (vlax-ename->vla-object ename) 'll 'ur)
(list
(vlax-safearray->list ll)
(vlax-safearray->list ur)
)
)
;; ! ***************************************************************************
;; ! xd_GetSSBoundingBox
;; ! ***************************************************************************
;; ! 功能: 返回选择集实体包围盒的对角点.
;; ! 参数: 'ss' - Any Drawing Object Selection
;; ! 返回值: 'Lst' - is a list of LL and UR
;; ! 说明: 适用 AutoCAD 2000+
;; ! e-mail: eachy@xdcad.net
;; ! Web : www.xdcad.net
;; ! ****************************************************************************
(defun xd_getSSBoundingbox (ss / ssl i ptl)
(setq ssl (sslength ss)
i -1
)
(repeat ssl
(setq
ptl (cons (xd_getObjectboundingbox (ssname ss (setq i (1+ i))))
ptl
)
)
)
;;;(xd-points_box (apply 'append ptl))
) x_s_s_1 发表于 2011-11-16 16:08 static/image/common/back.gif
希望对您有用
谢谢,看了你发的这个我就明白了
可不可以把你收集的这些常用函数分享一下啊,呵呵 我都是临时用临时找的,散乱在林林总总的冗长代码中,没整理过,不好意思哈。不过您需要什么可以在本版内搜索,一定有您所需要的 占个位置,以后要用就好找了 学习一下, 不错,不错,正需要这个,有时候写程序写得烦了,有现成的函数实在太幸福了。
页:
[1]
2