luyu9635 发表于 2008-3-5 19:53:00

<p>zzxxqq斑竹你好,谢谢你的程序,我试用了不过不知道什么原因,这个程序在有些图里得出来的最大坐标有时不对,画出来的框会很长,是不是和系统变量有关呀,不知您有遇到没有,请说一下,谢谢,另外借用您的这个程序我把我的阵列程序完成了,对排版方便多了,谢谢,代码如下:</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p><p>(defun C:arr()<br/>&nbsp; (vl-load-com)<br/>&nbsp; (setvar "cmdecho" 0)<br/>&nbsp; (command "ucs" "w")<br/>&nbsp; (princ "\n请选择要阵列的物体:")<br/>&nbsp; (while(null(setq en (ssget))))<br/>&nbsp; (setq minx0 1e6 miny0 1e6 maxx0 -1e6 maxy0 -1e6)<br/>&nbsp; (setq i 0)<br/>&nbsp; (repeat (sslength en)<br/>&nbsp;&nbsp; (setq end (ssname en i))<br/>&nbsp;&nbsp; (setq end_data (entget end))<br/>&nbsp;&nbsp; (Min_Max)<br/>&nbsp;&nbsp; (setq i(1+ i))<br/>&nbsp; )<br/>&nbsp; (setq pmin (list minx0 miny0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pmax (list maxx0 maxy0))<br/>&nbsp; (setq xc(- maxx0 minx0) yc(- maxy0 miny0))<br/>&nbsp; (setq hs (getint "/n请输入行数:") ls(getint "/n请输入列数:"))<br/>&nbsp; (setq jj(getdist (strcat "请输入间距:&lt;" (rtos&nbsp; 2) "&gt;"))<br/>&nbsp;hj(+ xc jj) lj(+ yc jj))<br/>&nbsp; (if (not jj)(setq jj 2))<br/>&nbsp; (command "undo" "be")<br/>&nbsp; (command "array" en "" "r" "" hs ls hj hj "")<br/>&nbsp; (command "undo" "e")<br/>&nbsp; (princ)<br/>)<br/>;;;子程序,求选集是大外形坐标<br/>(defun Min_Max()<br/>&nbsp; (vla-getboundingbox(vlax-ename-&gt;vla-object end) 'minp 'maxp)<br/>&nbsp; (setq minp (vlax-safearray-&gt;list minp)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxp (vlax-safearray-&gt;list maxp))<br/>&nbsp; (setq minx (car minp)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxx (car maxp)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; miny (cadr minp)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxy (cadr maxp))<br/>&nbsp; (if (&gt; minx0 minx) (setq minx0 minx))<br/>&nbsp; (if (&gt; miny0 miny) (setq miny0 miny))<br/>&nbsp; (if (&lt; maxx0 maxx) (setq maxx0 maxx))<br/>&nbsp; (if (&lt; maxy0 maxy) (setq maxy0 maxy))<br/>)</p><p></p>

ZZXXQQ 发表于 2008-3-6 08:40:00

<p>如果选择集中有个块,其插入点在很远的地方,所得到的坐标就会不对。另对SPLINE线也会这样。</p>

yxh1202 发表于 2013-5-25 17:36:36

luyu9635 发表于 2008-3-5 19:53 static/image/common/back.gif
zzxxqq斑竹你好,谢谢你的程序,我试用了不过不知道什么原因,这个程序在有些图里得出来的最大坐标有时不对 ...

(setq minx0 1e6 miny0 1e6 maxx0 -1e6 maxy0 -1e6)
好像就是这一句导致绘制的选择集外框不对,求高人指点

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

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

感谢分享,用这个子程序成功解决了快速建块默认捕捉点问题。
页: 1 [2]
查看完整版本: [求助]如何获得选择集的最大,最小x和y坐标