马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
这个array命令带有上期offset命令所讲的均分功能。用法请参看。

- (defun c:lary( / dis kw ls nc nr disc disr ss fnc fnr)
- (setvar "cmdecho" 0)
- (if (setq ss (ssget)) (progn
- (initget "R P")
- (if (setq ls (getkword "\n 输入阵列类型 [矩形(R)/环形(P)] <R>: "))
- (setq kw ls)
- (setq kw "R")
- )
- (cond
- ((= kw "R")
- (if (setq ls (getint "\n行数(---)<1>: ")) (setq nr (abs ls) fnr (/ ls nr)) (setq nr 1 fnr 1))
- (if (setq ls (getint "\n列数(|||)<1>: ")) (setq nc (abs ls) fnc (/ ls nc)) (setq nc 1 fnc 1))
- (initget "Divide")
- (if (/= 1 nr) (progn
- (setq disr (getreal "\n行间距(---/计算均分D): "))
- (if (= disr "Divide")
- (setq dis (getdist "\n总的距离: ")
- disr (/ dis (1- nr) fnr)
- )
- (setq disr (* fnr disr))
- ) ;if
- )) ;if
- (initget "Divide")
- (if (/= 1 nc) (progn
- (setq disc (getreal "\n列间距(|||/计算均分D): "))
- (if (= disc "Divide")
- (setq dis (getdist "\n总的距离: ")
- disc (/ dis (1- nc) fnc)
- )
- (setq disc (* fnc disc))
- ) ;if
- )) ;if
- (if (and (= 1 nc) (= 1 nr))
- (princ "\n单元素阵列,没有可执行的操作. ")
- (progn
- (command "array" ss "" "r" nr nc)
- (if disr (command disr))
- (if disc (command disc))
- ) ;progn
- ) ;if
- ) ;
- ((= kw "P")
- (princ "\n弧形阵列请使用cad命令.")
- ) ;
- (T)
- ) ;cond
- )) ;if
- (princ)
- )
|