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