马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
- ;;;点选等分插入块命令
- ;;;主要针对DIVIDE命令等分插入块时,需要输入块名的不便
- ;;;此代码可以直接点选图中已有块进行分布
- ;;;也可以利用选择集选择非块物体的集合或者块与非块物体的集合
- ;;;然后将集合转化为块后进行平均分布块
- ;;;制作:snsj
- ;;;apple_dfk.lsp
- (defun c:dfk ()
- (initget "A")
- (setq a (getkword "\n点选图中已有块<回车键>/选择非块物体或块与单体的组合按<a>:"))
- (cond
- ((null a)
- (setq a1 (entsel "\n选择要等分的线:"))
- (cond
- ((null a1) (exit))
- )
- (setq a2 (entsel "\n选择要分布等分点的块:"))
- (cond
- ((null a2) (exit))
- )
- (setq a4 (cdr (assoc 2 (entget (car a2)))))
- (initget 1 "Y N")
- (setq a5 (getkword "是否对齐块对象?[是<Y>/否<N>]:"))
- (command ".divide" a1 "b" a4 a5)
- )
- (t
- (setq a1 (entsel "\n选择要等分的线:"))
- (cond
- ((null a1) (exit))
- )
- (setq ss (ssget))
- (cond
- ((null ss) (exit))
- )
- (setq pt1 (getpoint "\n请输入基点:"))
- (cond
- ((null pt1) (exit))
- )
- (setq jdz t
- kj nil
- )
- (while (setq e (tblnext "block" jdz))
- (setq na (cdr (assoc 2 e))
- jdz nil
- )
- (setq kj (cons na kj))
- )
-
- (setq kj1 nil)
- (mapcar
- '(lambda (x)
- (if(not(wcmatch x "[~apple'-]*"))
- (setq kj1 (cons x kj1))
- )
- )
- kj
- )
- (cond
- ((null kj1)
- (setq kj1 "apple-0")
- (setq nb kj1)
- )
- (t (setq zx (car(reverse(acad_strlsort kj1))))
- (setq ds (atoi (vl-string-left-trim "apple-" zx))
- )
- (setq jy (+ ds 1))
- (setq nb (strcat "apple-" (itoa jy)))
- )
- )
- (command ".block" nb pt1 ss "")
- (command ".divide" a1 "b" nb)
- )
- )
- )
-
求各位高手多多指教 |