找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1175|回复: 6

[LISP程序]:等间隔重新排列序号球

[复制链接]
发表于 2004-11-11 10:44:38 | 显示全部楼层 |阅读模式

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

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

×
等间隔重新排列序号球
功能:自动按水平或垂直方向等间隔重新排列序号球;
      可提示(缺省值)原来区域内等分间隔。
[PHP]
(defun c:test ()       
  (vl-load-com)
  (prompt "\nSelect NumberBall:")
  (setq ss (ssget) n 0)
  (setq cc (ssadd) tt (ssadd) ee (ssadd) ll (ssadd))
  (while (< n (sslength ss))
    (setq obj (vlax-ename->vla-object (ssname ss n)))
    (setq oname (vla-get-ObjectName obj))
    (cond
      ((= oname "AcDbLeader")
       (ssadd (ssname ss n) ee))
      ((= oname "AcDbCircle")
       (ssadd (ssname ss n) cc))
      ((= oname "AcDbText")
       (ssadd (ssname ss n) tt))
    )
    (setq n (1+ n))
  )
  (setq bb (acet-geom-ss-extents cc t))
  (setq x (- (car (cadr bb))(car (car bb))))
  (setq y (- (cadr (cadr bb))(cadr (car bb))))
  (setq r (cdr (assoc 40 (entget (ssname cc 0)))))
  (if (> x y)      
    (setq cc (acet-ss-sort cc 'getx) ee (acet-ss-sort ee 'getx)
           d0 (/ (- x r r )(1- (sslength cc))))
    (setq cc (acet-ss-sort cc 'gety) ee (acet-ss-sort ee 'gety)
           d0 (/ (- y r r )(1- (sslength cc))))
  )
  (setq d (getdist (strcat "\New Gap <" (rtos d0 2 2) "> :")))
  (if (or (null d)(= d ""))(setq d d0))
  (setq obj (vlax-ename->vla-object (ssname cc 0)))
  (setq pc0 (vtol (vla-get-center obj)))
  (setq n 1)
  (while (< n (sslength cc))
    (setq obj (vlax-ename->vla-object (ssname cc n)))
    (setq pc (vtol (vla-get-center obj)))
    (if (> x y)
      (setq pc1 (list (+ (car pc0) d)(cadr pc)(last pc)) pc0 pc1)
      (setq pc1 (list (car pc)(+ (cadr pc0) d)(last pc)) pc0 pc1)
    )
    (vla-put-center obj (vlax-3d-point pc1))
    (vla-put-textalignmentpoint (vlax-ename->vla-object (ssname tt n))(vlax-3d-point pc1))
    (setq p1 (vlax-curve-getstartpoint (vlax-ename->vla-object (ssname ee n))))
    (setq p2 (polar pc1 (angle pc1 p1)(vla-get-radius obj)))
    (setq sl (vlax-make-safearray vlax-vbdouble '(0 . 5)))
       (setq sa (vlax-safearray-fill sl (append p1 p2)))
       (vla-put-coordinates (vlax-ename->vla-object (ssname ee n)) sa)
       (vla-update (vlax-ename->vla-object (ssname ee n)))
    (setq n (1+ n))
  )
  (setvar "osmode" 37)
)
(defun vtol (v)(vlax-safearray->list (vlax-variant-value v)))
(defun getx (ent)(car (cdr (assoc 10 ent))))
(defun gety (ent)(cadr (cdr (assoc 10 ent))))
[/PHP]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-11-11 21:24:26 | 显示全部楼层
NumberBall:
给个说明或操作示意!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-11-24 04:33:20 | 显示全部楼层
加载程序并运行,框选序号球--由圆,数字文本和引线组成。
回应提示,即可。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-11-24 23:06:01 | 显示全部楼层
确实是比较方便,在注记建筑物栋号时很方便!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2006-11-26 13:37:15 | 显示全部楼层
以上代码为完整代码,在
http://rss20.gnway.net/html/7/292408.htm#program528337089
的代码比较全,序号球的程序集,但是1楼的代吗不全,要输入验证码才能看全文,但是那个网站的验证码是根本无法显示的。所以是不可能得到完整的代码,1楼楼主很好,把完整的代码贴了出来,辛苦了!支持!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-12-9 11:16:06 | 显示全部楼层
2004下出现错误,选择序号球后,会车出现
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 06:47 , Processed in 0.538864 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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