zhengchuan 发表于 2012-9-24 23:13:32

我用的是2006。多行多列阵列还是只能变成2行2列

zhengchuan 发表于 2012-9-25 12:20:07

zhengchuan 发表于 2012-9-24 23:13 static/image/common/back.gif
我用的是2006。多行多列阵列还是只能变成2行2列


物体随便选的左上角那个矩形。距离是框选的。

jxwangjx 发表于 2012-10-10 12:55:27

比自带的渐变不了多少

tianyi1230 发表于 2012-10-27 20:15:43


;;简易矩形阵列
(defun C:arr()
(vl-load-com)
(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))
(setq yc (- maxx0 minx0) xc (- maxy0 miny0))
(if (not hs)(setq hhs 2)(setq hhs (fix hs)))
(if (not ls)(setq lls 2)(setq lls (fix ls)))
(initget 6)(setq hs (getint(strcat "\n请输入行数:<" (itoa hhs) ">")))
(if (not hs)(setq hs hhs))
(initget 6)(setq ls(getint (strcat "\n请输入列数:<" (itoa lls) ">")))
(if (not ls)(setq ls lls))
(if (not jjj)(setq jjj 2))
(initget 128)
(setq jj(getpoint (strcat "\n请输入间距:<默认为" (rtos jjj) ">或鼠标框选:")))
(cond ((= (type jj) nil)(setq jj jjj jjj jj hj(+ xc jj) lj(+ yc jj)))
      ((= (type jj) 'STR)(setq jj(read jj) jjj jj hj(+ xc jj) lj(+ yc jj)))
      ((= (type jj) 'list)(setq p1 jj)
                            (initget 1) (setq p2(getcorner p1 "指定对角点:"))
                          (setq lj(abs(- (car p2) (car p1)))
                                hj(abs(- (cadr p2) (cadr p1))))
        )
                               
)
(command "undo" "be")
(command "array" en "" "r"hsls hj lj)
(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))
)

tangjunasd58 发表于 2013-5-16 22:54:49

2010 2013也只能两行X两行阵列。。。。。。。

tangjunasd58 发表于 2013-5-16 23:13:50

下了还用了个币。没有用,,,,,,但可 以借用。。。。。。。

lty 发表于 2013-6-2 19:27:09

人穷没钱,就不看了

tangjunasd58 发表于 2014-6-17 19:33:03

(defun C:MX-are()
(vl-load-com)
(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))
(setq yc (- maxx0 minx0) xc (- maxy0 miny0))
(if (not hs)(setq hhs 20)(setq hhs (fix hs)))
(if (not ls)(setq lls 1)(setq lls (fix ls)))
(initget 6)(setq hs (getint(strcat "\n请输入行数:<" (itoa hhs) ">")))
(if (not hs)(setq hs hhs))
(initget 6)(setq ls(getint (strcat "\n请输入列数:<" (itoa lls) ">")))
(if (not ls)(setq ls lls))
(if (not jjj)(setq jjj 4))
(initget 128)
(setq jj(getpoint (strcat "\n请输入间距:<默认为" (rtos jjj) ">或鼠标框选:")))
(cond ((= (type jj) nil)(setq jj jjj jjj jj hj(+ xc jj) lj(+ yc jj)))
      ((= (type jj) 'STR)(setq jj(read jj) jjj jj hj(+ xc jj) lj(+ yc jj)))
      ((= (type jj) 'list)(setq p1 jj)
                            (initget 1) (setq p2(getcorner p1 "指定对角点:"))
                          (setq lj(abs(- (car p2) (car p1)))
                                hj(abs(- (cadr p2) (cadr p1))))
        )
                               
)
(command "undo" "be")
(command "array" en "" "r"hsls hj lj)
(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))
)

为什么这 个会在有些图纸里可以用,有些图纸里,不能用。在新建的图里不会出错,在有些别人画好的图中就会出现设置了列距还是只阵列一列,行数没问题。

tangjunasd58 发表于 2014-6-17 19:35:48

你这个阵列在我电脑里很慢慢,不知道是什么原因

姜还是老王的辣 发表于 2016-5-22 16:20:06

11111111111111111111111
页: 1 [2]
查看完整版本: 简易矩形阵列