找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 420|回复: 0

[分享]:刚些的一个点选等分块分布代码

[复制链接]
发表于 2003-5-16 22:10:07 | 显示全部楼层 |阅读模式

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

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

×

  1. ;;;点选等分插入块命令
  2. ;;;主要针对DIVIDE命令等分插入块时,需要输入块名的不便
  3. ;;;此代码可以直接点选图中已有块进行分布
  4. ;;;也可以利用选择集选择非块物体的集合或者块与非块物体的集合
  5. ;;;然后将集合转化为块后进行平均分布块
  6. ;;;制作:snsj
  7. ;;;apple_dfk.lsp
  8. (defun c:dfk ()
  9.   (initget "A")
  10.   (setq a (getkword "\n点选图中已有块<回车键>/选择非块物体或块与单体的组合按<a>:"))
  11.   (cond
  12.     ((null a)
  13.      (setq a1 (entsel "\n选择要等分的线:"))
  14.       (cond
  15.         ((null a1) (exit))
  16.         )
  17.      (setq a2 (entsel "\n选择要分布等分点的块:"))
  18.      (cond
  19.        ((null a2) (exit))
  20.        )
  21.      (setq a4 (cdr (assoc 2 (entget (car a2)))))
  22.      (initget 1 "Y N")
  23.      (setq a5 (getkword "是否对齐块对象?[是<Y>/否<N>]:"))
  24.      (command ".divide" a1 "b" a4 a5)   
  25.     )     
  26.     (t
  27.      (setq a1 (entsel "\n选择要等分的线:"))
  28.      (cond
  29.         ((null a1) (exit))
  30.         )
  31.        (setq ss (ssget))
  32.      (cond
  33.         ((null ss) (exit))
  34.         )
  35.      (setq pt1 (getpoint "\n请输入基点:"))
  36.      (cond
  37.         ((null pt1) (exit))
  38.         )
  39.        (setq jdz t
  40.              kj nil
  41.        )
  42.        (while (setq e (tblnext "block" jdz))
  43.          (setq na (cdr (assoc 2 e))
  44.                jdz nil
  45.          )
  46.          (setq kj (cons na kj))
  47.        )
  48.       
  49.        (setq kj1 nil)
  50.        (mapcar
  51.          '(lambda (x)
  52.             (if(not(wcmatch x "[~apple'-]*"))
  53.               (setq kj1 (cons x kj1))
  54.             )
  55.           )
  56.          kj
  57.        )      
  58.        (cond
  59.          ((null kj1)
  60.           (setq kj1 "apple-0")
  61.           (setq nb kj1)
  62.          )
  63.          (t (setq zx (car(reverse(acad_strlsort kj1))))
  64.           (setq        ds (atoi (vl-string-left-trim "apple-" zx))
  65.           )
  66.           (setq jy (+ ds 1))
  67.           (setq nb (strcat "apple-" (itoa jy)))
  68.           )
  69.          )
  70.           (command ".block" nb  pt1 ss "")
  71.           (command ".divide" a1 "b" nb)  
  72.          )
  73.        )
  74.      )
  75.    


求各位高手多多指教
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-2 11:30 , Processed in 0.331459 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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