找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 662|回复: 4

[LISP程序]:批量修改圆环(Donut)宽度,内外直径的小工具:

[复制链接]
发表于 2003-6-13 06:58:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
批量修改圆环(Donut)宽度,内外直径的小工具:
(defun c:test ( / ed0 id0 ed id w w0 old ec)
  (vl-load-com)
  (princ "\nSelect DONUTs:")
  (setq ents (ssget) n 0)
  (setq ds (getstring "[Diameter/Wall] <D>:"))
  (if (or (null ds)(= ds ""))(setq ds "D"))
  (initget 6)
  (cond
    ((= (strcase ds) "W")
     (setq w (getreal "\nInput Wall:"))
     (while (< n (sslength ents))
       (setq ent (vlax-ename->vla-object (ssname ents n)))
       (vlax-put-property ent 'constantwidth w)
       (setq n (1+ n))))
    ((= (strcase ds) "D")
      (setq ed (getreal "\nInput External Diameter:"))
      (setq id (getreal "\nInput Internal Diameter:"))
      (while (< n (sslength ents))
        (setq ent (vlax-ename->vla-object (ssname ents n)))
        (setq  w0 (vlax-get-property ent 'constantwidth))
        (setq old (vlax-safearray->list
                         (vlax-variant-value
                      (vlax-get-property ent 'coordinates))))
        (setq id0 (- (caddr old)(car old) w0))
        (setq ed0 (+ id0 w0 w0))
        (setq w (/ (- ed id) 2.0))
        (setq ec (+ (car old)(/ (+ ed0 id0) 4.0)))
        (setq old (subst (- ec (/ (+ ed id) 4.0))(car old) old))
        (setq old (subst (+ ec (/ (+ ed id) 4.0))(caddr old) old))
        (vlax-put-property ent 'coordinates
          (vlax-make-variant
            (vlax-safearray-fill
              (vlax-variant-value (vlax-get-property ent 'coordinates))
              old)))
        (vlax-put-property ent 'constantwidth (/ (- ed id) 2.0))
        (setq n (1+ n))))
  );c
  (princ)
);defun
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-6-14 00:03:46 | 显示全部楼层
多谢高手,但这个程序怎么装上去用呢?我还未接触过呢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-6-14 04:59:53 | 显示全部楼层
你可以在用户工具菜单文件中加上:
ID_dw   [Donutwidth]^C^C(load (findfile "your.lsp"));test
其中your.lsp是该程序所在lisp文件。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-6-14 17:40:34 | 显示全部楼层
看来我还是很菜,“用户工具菜单文件”在哪里呢?请别笑,我没找到。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-6-14 18:04:14 | 显示全部楼层
很好用哟,谢了呀
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-26 22:14 , Processed in 0.177329 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表