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.gifzzxxqq斑竹你好,谢谢你的程序,我试用了不过不知道什么原因,这个程序在有些图里得出来的最大坐标有时不对 ...
(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]