批量在指定文字的位置处插块,求帮忙啊,急用!!
本帖最后由 77077 于 2014-1-5 20:44 编辑批量在文字位置插块,写不出来啊。括号里面怎么写呀???
;批量在指定文字的位置处插块
(defun c:TT ()
(if (findfile "123.dwg")
(progn
(setq ss (ssget '((0 . "TEXT"))))
(setq i-1)
(while (setq s1 (ssname ss (setq i (1+ i))))
(setq insert_Pt ());→这括号里面应该怎么写呀???
(command "Insert" "123" insert_Pt "" "" "")
)
)
(princ"\n图块不存在!")
)
)
zazhz123 发表于 2025-1-26 15:26
ganxie感谢,可用,如果能改成点选图块名更好了
(defun c:tt ()
"文字插入点插入图块"
(if (and (princ "\n选择文字: ")
(setq ss (ssget '((0 . "TEXT"))))
(setq tk (cdr (assoc 2 (entget (car (entsel "\n选择图块: "))))))
)
(progn
(setq i -1)
(while (setq s1 (ssname ss (setq i (1+ i))))
(setq p0 (cdr (assoc 10 (entget s1))))
(command "-INSERT" tk p0 1 1 0)
)
)
)
(princ)
) ganxie感谢,可用,如果能改成点选图块名更好了 学习了。。。最近刚好用到 一般情况下文字有两个点,一个在10组,另一个在11组,但有时其中一组它可能为0 ;文字插入点插入图块 明经 ZZXXQQ 2014.1.5
(defun c:tt ()
(setvar "CMDECHO" 0)
(setq fnm (if (= (type fnm) 'STR) fnm ""))
(if (and(princ "\n选择文字: ")
(setq nm (getstring "\n输入块名: "))
(setq fnm (if (/= nm "") nm fnm))
(setq ss (ssget '((0 . "TEXT"))))) (progn
(setq i -1)
(repeat (sslength ss)
(setq ent(entget(ssname ss (setq i (1+ i)))))
(if (> (distance '(0.0 0.0 0.0) (setq pt (cdr(assoc 11 ent)))) 0)
(setq pt pt)
(setq pt (cdr(assoc 10 ent)))
)
(command "-INSERT" fnm pt "" "" "")
)
))
(setvar "CMDECHO" 1)
(princ)
)
楼上测试可用,只是我想知道我的代码错在哪里?能不能改? 77077 发表于 2014-1-5 21:59
楼上测试可用,只是我想知道我的代码错在哪里?能不能改?
括号前加',要这句有什公用 自贡黄明儒 发表于 2014-1-5 22:14 static/image/common/back.gif
括号前加',要这句有什公用
我也不太清楚,人家那么写,我也就跟着依葫芦画瓢了! 自贡黄明儒 发表于 2014-1-5 22:14 http://bbs.mjtd.com/static/image/common/back.gif
括号前加',要这句有什公用
括号前加'是这句么?
(> (distance '(0.0 0.0 0.0) (setq pt (cdr(assoc 11 ent)))) 0)
估计因为text对正方式的不一样,它有时可能10组全为0也有可能11组全为0。。。。反正乱七八糟的,所以Z版加了这句 72,73不为0时11组码才有用,71是镜像,颠倒标志, 谢谢ZZXXQQ版主,谢谢LZ,刚好用得上
页:
[1]
2