ccaaz 发表于 2005-1-21 14:23:00

请帮忙啊!困惑了很久的.....

<A href="dispbbs.asp?boardID=2&amp;ID=31793&amp;page=1" target="_blank" >dispbbs.asp?boardID=2&amp;ID=31793&amp;page=1</A>


我在 高级应用 论坛向大家请教了一个关于类似阵列的问题,有很多大侠热烈回帖,方法很多,可是都比较的烦琐,我想请斑竹帮忙编个程序搞定好了。(具体请点上面的链接)


谢谢


谢谢


谢谢


谢谢


谢谢


谢谢


谢谢


谢谢


谢谢


谢谢


谢谢


谢谢


谢谢

meflying 发表于 2005-1-21 15:50:00

用法:将以下代码存成*.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)
)

ccaaz 发表于 2005-1-21 16:20:00

好的,我先用一下。 谢谢了 斑竹 谢谢了

ccaaz 发表于 2005-1-21 17:32:00

试了一试,效果还是不行。


                                                                                                                       斑竹能不能把程序设为是按圆锥表面旋转阵列,这样才是真正的效果啊。


        斑竹伟大,斑竹英明,斑竹加油哦 !!···

龙龙仔 发表于 2005-1-24 08:12:00




(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>

ccaaz 发表于 2005-1-24 16:57:00

楼上的大哥用你的加载做出来的还是只能实现圆柱效果,并不能实现圆锥的效果啊。

龙龙仔 发表于 2005-1-25 07:57:00

你是说你不会画圆锥???       

ccaaz 发表于 2005-1-26 23:27:00

哦!用你的程序可以做到吗?我再试试好了


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       谢谢楼上
页: [1]
查看完整版本: 请帮忙啊!困惑了很久的.....