GDFGFGF 发表于 2020-12-10 17:18:36

简化阵列

麻烦哪位大神帮忙优化下,感激不尽
简化阵列
(defun c:rrR(/ *hang2 *jj2 *lie2 a1 ab1 b1 ss xlen ylen)
(setq ss (ssget))
(setq ab1 (box ss) a1 (car ab1) b1         (cadr ab1))
(setq xlen (abs (- (car b1) (car a1))))
(setq ylen (abs (- (cadr b1) (cadr a1))))
(if (not *hang)(setq *hang 1))
(setq *hang (if (setq *hang2 (getint (strcat "\n输入行数:<" (itoa *hang) ">:"))) *hang2*hang))
      
(if (not *lie)(setq *lie 1))
(setq *lie (if (setq *lie2 (getint (strcat "\n输入列数:<" (itoa *lie) ">:"))) *lie2 *lie))
(if (not *jj)(setq *jj 100))      
(setq *jj (if (setq *jj2 (getdist (strcat "\n输入间距:<" (rtos *jj 2 2) ">:"))) *jj2 *jj))
(command "ARRAY" ss "" "r" *hang *lie (+ ylen *jj) (+ xlen *jj))
;(princ)      
)

按x轴阵列是没有问题但是按Y轴阵列就会出现重叠的现象

start4444 发表于 2020-12-10 17:18:37

(command "ARRAY" ss "" "r" *hang *lie (+ ylen *jj) (+ xlen *jj))
改为:
(if (= 1 *hang) (command "ARRAY" ss "" "r" *hang *lie (+ xlen *jj)) (command "ARRAY" ss "" "r" *hang *lie (+ ylen *jj) (+ xlen *jj)))

GDFGFGF 发表于 2020-12-10 19:28:55

start4444 发表于 2020-12-10 17:18
(command "ARRAY" ss "" "r" *hang *lie (+ ylen *jj) (+ xlen *jj))
改为:
(if (= 1 *hang) (command " ...

可以了,谢谢

GDFGFGF 发表于 2020-12-10 19:46:34

start4444 发表于 2020-12-10 17:18
(command "ARRAY" ss "" "r" *hang *lie (+ ylen *jj) (+ xlen *jj))
改为:
(if (= 1 *hang) (command " ...

错误: no function definition: BOX    出现问题了

vlisp2012 发表于 2020-12-11 08:03:06

box这个函数?在哪里呢,没上传啊

GDFGFGF 发表于 2020-12-11 09:00:43

vlisp2012 发表于 2020-12-11 08:03
box这个函数?在哪里呢,没上传啊

已经好了,谢谢

GDFGFGF 发表于 2020-12-11 09:10:19

GDFGFGF 发表于 2020-12-10 19:46
错误: no function definition: BOX    出现问题了

已经好了,谢谢
页: [1]
查看完整版本: 简化阵列