请帮忙啊!困惑了很久的.....
<A href="dispbbs.asp?boardID=2&ID=31793&page=1" target="_blank" >dispbbs.asp?boardID=2&ID=31793&page=1</A>我在 高级应用 论坛向大家请教了一个关于类似阵列的问题,有很多大侠热烈回帖,方法很多,可是都比较的烦琐,我想请斑竹帮忙编个程序搞定好了。(具体请点上面的链接)
谢谢
谢谢
谢谢
谢谢
谢谢
谢谢
谢谢
谢谢
谢谢
谢谢
谢谢
谢谢
谢谢
用法:将以下代码存成*.lsp文件,在CAD中用APPLOAD命令加载,加载后使用命令:test, 此程序只适合圆柱效果,并不能实现你给的图中的圆锥效果,,,先用用看——块未打散,试用后,再提出相应建议,我再改进(defun ChgBlk(ent dist scale / entL ents)
(setq ents (entget ent))
(setq pt (cdr (assoc 10 ents)))
(setq pt (list (- (car pt) dist) (cadr pt) (last pt)))
(setq ents (subst (cons 10 pt) (assoc 10 ents) ents))
(setq ents (subst (cons 41 scale) (assoc 41 ents) ents))
(entmake ents)
)
(defun c:test( / ent n r i scale dist)
(while (and (setq ent (car (entsel "\n选择要阵列的块..."))) (/= (cdr (assoc 0 (entget ent))) "INSERT"))
(princ "\n选择的不是块!")
)
(setq n (getint "\n输入数量(每边除本身以外):"))
(setq r (getdist "\n输入半径(假设圆柱的半径):"))
(if (not (and ent n r))
(exit)
)
(setq ang (/ pi 2 n))
(setq i 1)
(repeatn
(setq scale (cos (* i ang)))
(setq dist (* r (sin (* i ang))))
(ChgBlk ent dist scale)
(ChgBlk ent (- dist) scale)
(setq i (1+ i))
)
(princ)
) 好的,我先用一下。 谢谢了 斑竹 谢谢了 试了一试,效果还是不行。
斑竹能不能把程序设为是按圆锥表面旋转阵列,这样才是真正的效果啊。
斑竹伟大,斑竹英明,斑竹加油哦 !!···
(defun C:SPLAT (/ SS CE HL OS)<BR> (cond<BR> ((setq SS (ssget))<BR> (setq CE (getvar "cmdecho")<BR> HL (getvar "highlight")<BR> OS (getvar "osmode")<BR> )<BR> (setvar "cmdecho" 0)<BR> (setvar "highlight" 0)<BR> (setvar "osmode" 0)<BR> (command "_.move" SS "" '(0 0 1e99) "")<BR> (command "_.move" "_p" "" '(0 0 -1e99) "")<BR> (setvar "cmdecho" CE)<BR> (setvar "highlight" HL)<BR> (setvar "osmode" OS)<BR> )<BR> (t (princ "\nNothing to splatten."))<BR> )<BR> (princ)<BR>)
测试图<BR>
楼上的大哥用你的加载做出来的还是只能实现圆柱效果,并不能实现圆锥的效果啊。 你是说你不会画圆锥???
哦!用你的程序可以做到吗?我再试试好了
谢谢楼上
页:
[1]