77077 发表于 2014-1-5 20:42:19

批量在指定文字的位置处插块,求帮忙啊,急用!!

本帖最后由 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图块不存在!")
)
)

xyp1964 发表于 2025-1-26 16:25:29

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)
)

zazhz123 发表于 2025-1-26 15:26:39

ganxie感谢,可用,如果能改成点选图块名更好了

spoon37 发表于 2019-10-29 22:55:15

学习了。。。最近刚好用到

llsheng_73 发表于 2014-1-5 21:00:13

一般情况下文字有两个点,一个在10组,另一个在11组,但有时其中一组它可能为0

ZZXXQQ 发表于 2014-1-5 21:40:33

;文字插入点插入图块 明经 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:22

楼上测试可用,只是我想知道我的代码错在哪里?能不能改?

自贡黄明儒 发表于 2014-1-5 22:14:22

77077 发表于 2014-1-5 21:59
楼上测试可用,只是我想知道我的代码错在哪里?能不能改?

括号前加',要这句有什公用

77077 发表于 2014-1-5 22:37:14

自贡黄明儒 发表于 2014-1-5 22:14 static/image/common/back.gif
括号前加',要这句有什公用

我也不太清楚,人家那么写,我也就跟着依葫芦画瓢了!

llsheng_73 发表于 2014-1-5 22:43:14

自贡黄明儒 发表于 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版加了这句

edata 发表于 2014-1-7 09:09:30

72,73不为0时11组码才有用,71是镜像,颠倒标志,

liaobin 发表于 2015-6-19 11:36:52

谢谢ZZXXQQ版主,谢谢LZ,刚好用得上
页: [1] 2
查看完整版本: 批量在指定文字的位置处插块,求帮忙啊,急用!!