下面的组合,为什么不能成功呢?
程序想实现量取距离,取其四分之一或三分之一数值赋值A,然后选取 B C D ,把B C D 替换成A。希望高手能帮忙,谢谢了!
(defun c:tt (/ apt1 apt2 list1 en en_data en1 en1_data ss k entype old_text new_text_data)
(prompt " 请直接量取距离或者输入一个值:")
(if (setq apt1 (getpoint " 请指定点:"))
(progn
(setq apt2 (getpoint " 请指定第二个点:"))
(setq list1 (distance apt1 (list (car apt2) (cadr apt1))));返回量取的X轴的值
)
(setq list1 (getreal " 请输入一个值:"))
)
(setq en (/ list1 4))
(setq en_data (entget (car en)))
(prompt "\n请选择要修改内容的文字:")
(setq ss (ssget))
(setq k 0)
(repeat (sslength ss)
(setq en1 (ssname ss k))
(setq en1_data (entget en1))
(setq entype (cdr (assoc 0 en1_data)))
;;;单行文字的内容格式刷
(if
(= entype "TEXT")
(sametext en1_data en_data)
)
;;;天正文字的内容格式刷
(if
(= entype "TCH_TEXT")
(sametext en1_data en_data)
)
(setq k (1+ k))
)
(prin1)
)
(defun sametext
(en1_data en_data)
(setq old_text (cdr (assoc 1 en_data)))
(setq new_text_data (cons 1 old_text))
(setq en1_data (subst new_text_data (assoc 1 en1_data) en1_data))
(entmod en1_data)
);end ofsametext
本帖最后由 风流少年时 于 2015-8-12 16:52 编辑
(setq en_data (entget (car en)))这里的en只是数字了,不是图元。 本帖最后由 freeok 于 2015-8-12 17:21 编辑
要如何转换呢?,,,唉,一直静不下
[*](defun c:tt ()
[*](prompt " 请直接量取距离或者输入一个值:")
[*](if (setq apt1 (getpoint "\n请指定点:"))
[*] (progn
[*] (setq apt2 (getpoint apt1 "\n请指定第二个点:"))
[*] (setq list1 (distance apt1 (list (car apt2) (cadr apt1))));返回量取的X轴的值
[*] )
[*] (setq list1 (getreal "\n请输入一个值:"))
[*])
[*](setq en (/ list1 4))
[*](setq en (rtos en))
[*](setq en (cons 1 en))
[*](prompt "\n请选择要修改内容的文字:")
[*](setq ss (ssget))
[*](setq k 0)
[*](repeat (sslength ss)
[*] (setq en1 (ssname ss k))
[*] (setq en1_data (entget en1))
[*] (setq old_data (assoc 1 en1_data))
[*] (setq entype (cdr (assoc 0 en1_data)))
[*] ;;;单行文字的内容格式刷
[*] (if
[*] (= entype "TEXT")
[*] (progn
[*] (setq ent (subst en old_data en1_data))
[*] (entmod ent)
[*] )
[*] )
[*] ;;;天正文字的内容格式刷
[*] (if
[*]
[*] (= entype "TCH_TEXT")
[*] (progn
[*] (setq ent (subst en old_data en1_data))
[*] (entmod ent)
[*] )
[*] )
[*] (setq k (1+ k))
[*])
[*](prin1)
[*])
风流少年时 发表于 2015-8-12 17:23 static/image/common/back.gif
[*](defun c:tt ()
[*](prompt " 请直接量取距离或者输入一个值:")
[*](if (setq apt1 (getpoint " ...
非常感谢!!! 风流少年时 发表于 2015-8-12 17:23 static/image/common/back.gif
[*](defun c:tt ()
[*](prompt " 请直接量取距离或者输入一个值:")
[*](if (setq apt1 (getpoint " ...
老师,我那个还能帮我改下吗?
之前没想周到,是我量X方向取X距离,量Y向则是取Y向距离。
拜托了!
页:
[1]