luyu9635 发表于 2008-3-1 23:07:00

[求助]如何获得选择集的最大,最小x和y坐标

各位,如果选择一堆图元后,怎么取得它的最大,最小x和y坐标值,谢谢

ZZXXQQ 发表于 2008-3-2 23:02:00


(defun C:wx()
(vl-load-com)
(command "undo" "be")
(setvar "cmdecho" 0)
(command "ucs" "w")
(princ "\n请选择物体:")
(while(null(setq en (ssget))))
(setq minx0 1e6 miny0 1e6 maxx0 -1e6 maxy0 -1e6)
(setq i 0)
(repeat (sslength en)
(setq end (ssname en i))
(setq end_data (entget end))
(Min_Max)
(setq i(1+ i))
)
(setq pmin (list minx0 miny0)
       pmax (list maxx0 maxy0))
(command ".rectang" "non" pmin "non" pmax)
(command "undo" "e")
(princ)
)
;;;子程序,求选集是大外形坐标
(defun Min_Max()
(vla-getboundingbox(vlax-ename->vla-object end) 'minp 'maxp)
(setq minp (vlax-safearray->list minp)
       maxp (vlax-safearray->list maxp))
(setq minx (car minp)
       maxx (car maxp)
       miny (cadr minp)
       maxy (cadr maxp))
(if (> minx0 minx) (setq minx0 minx))
(if (> miny0 miny) (setq miny0 miny))
(if (< maxx0 maxx) (setq maxx0 maxx))
(if (< maxy0 maxy) (setq maxy0 maxy))
)
程序对SPLINE线有误差。

xxyyzzlg 发表于 2024-7-22 15:40:36

ZZXXQQ 发表于 2008-3-2 23:02
程序对SPLINE线有误差。

感谢分享,用这个子程序成功解决了快速建块默认捕捉点问题。

mccad 发表于 2008-3-2 07:24:00

求每个图元的最大最小坐标,通过比较得到整个选择集的最大最小坐标。需要用到AX方法。

wwwliuyu 发表于 2008-3-2 08:22:00

我也很想知道,楼上的能不能说得明白点!多义线的最大最小坐标如何求得?当有圆弧的时候!42组码的凸度始终不明白是如何算的?还望指教.

luyu9635 发表于 2008-3-2 12:29:00

管理员,你大慈大悲帮帮俺吧,俺还是菜鸟,你说的ax得太深奥了,俺不明白,请多多指教呀

Andyhon 发表于 2008-3-2 14:16:00

试试这个 ET 内的acet函数<br/>(acet-geom-ss-extents 一堆图元集 T)

luyu9635 发表于 2008-3-3 18:34:00

谢谢zzxxqq斑竹,我先调试下,不懂再来问您

luyu9635 发表于 2008-3-3 18:41:00

我的本意是要做一个简单的阵列程序,因为工作中经常用到,所以想简化,直接选择对象(可以选择单个图元,也可多选),再输入物体间的间距,(比如说输入2,则行和列都为2),这样的话对排版方便多了

助淫为乐 发表于 2008-3-4 20:48:00

jdhszh 发表于 2008-3-4 21:20:00

<p>这个函数似乎也行</p><p>(vl-sort '((1 3) (2 2) (3 1)) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (function (lambda (e1 e2) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (&lt; (cadr e1) (cadr e2)) ) ) )</p>
页: [1] 2
查看完整版本: [求助]如何获得选择集的最大,最小x和y坐标