只需一步,快速开始
使用道具 举报
这个程序应该不难写的。我提供下我的算法:
首先用ssget过滤选择,得到一个选择集ss5;
然后让用户选择是改成统一半径的,还是比例缩放(我认为比例缩放其实就是new r=old r*比例K)。
接着循环,处理选择集中的每一个圆,用(repeat (sslength ss5)
循环中的代码来更新圆的半径
)
ok!
楼主好好思考下,一定能自己编出来。
(defun c:111 (/ sel int rad dat) (if (and (setq sel (ssget '((0 . "CIRCLE")))) (setq int 0 rad (getdist "\n半径:")) ) (repeat (sslength sel) (setq dat (entget (ssname sel int)) int (1+ int) ) (entmod (subst (cons 40 rad) (assoc 40 dat) dat)) ) ) (princ))
(defun c:222 (/ sel int sc rad dat) (if (and (setq sel (ssget '((0 . "CIRCLE")))) (setq int 0 sc (getdist "\n比例:")) ) (repeat (sslength sel) (setq dat (entget (ssname sel int)) int (1+ int) rad (assoc 40 dat) ) (entmod (subst (cons 40 (* sc (cdr rad))) rad dat)) ) ) (princ))
liminnet发表于2009-8-24 23:22:00加我QQ599017495帮你解决
这是很严重的问题。取之于明,用之于明。好象你前一句用得挺好,但后一句不是这样用的。
世界之大!
……
给LZ提供我学Vlisp,写的第一个程序。瞎学的,这个是只能改单一圆,LZ需要修改一下哦
程序:(defun c:cr () ;改圆半径
(vl-load-com)
(setq ent (car (entsel “\n选取圆对象:”))) ;选取圆对象并提取象素名称。
(setq en (vlax-ename->vla-object ent)) ;对象转换为 VLA 对象
(vla-put-Radius en 12);将圆半径改为“12”.
(princ)
本版积分规则 发表回复 回帖后跳转到最后一页
小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 ) ©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途
GMT+8, 2025-2-24 08:40 , Processed in 0.173208 second(s), 25 queries , Gzip On.
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.