简单更改文本值
我不理解使用entmod来更改文本的值这是我到目前为止得到的。。
我只是想改变数值。
(defun C:ddip (/ ss d dstring)
(setq ss (ssget "_:S" '((0 . "TEXT"))))
(setq d (getint "\nEnter Dip :"))
(setq dstring (strcat (itoa d)"°"))
(entmod (subst dstring))
(princ)) (entmod (subst (cons 1 (strcat (itoa d) "%%C")) (assoc 1 (setq e (entget (ssname ss 0)))) e)) 如果这里只使用了d,为什么要将其设为数字?我知道错误陷阱,但你必须对最终用户有一些信心。
(defun c:ddip ( / obj str )
(setq obj (vlax-ename->vla-object (car (entsel "pick text object"))))
(if(or (="AcDbText" (vla-get-objectname obj)) (="AcDbMText" (vla-get-objectname obj)) )
(progn
(setq str (strcat (getstring "\nEnter dip") "%%c"))
(vla-put-textstring objstr)
)
)
)
比格尔,再看看你的密码。 谢谢你,因为你一定打了回复。现在是晚上8点21分。你什么时候在哪里?
一个版本在记事本上,另一个版本在Vlide上贴错了。
很抱歉这么晚才回复。时间是下午1:21,所以我们两个时间相差五个小时。 不用担心,塔尔瓦特。
添加了用于简单文本编辑的多行文字检查。 你好
实际上,没有必要转换为vla对象来完成工作。
无论如何,如果我计划用vlisp编写它,那么我将遵循以下轨道。
(defun c:ddip (/ obj str)
(and (setq obj (car (entsel "\nPick text object :")))
(setq obj (vlax-ename->vla-object obj))
(wcmatch (vla-get-objectname obj) "AcDb*Text")
(/= "" (setq str (getstring "\nEnter dip :")))
(vla-put-textstring obj (strcat str "%%c"))
)
(princ)
) (vl-load-com)
真聪明!
只是一个小的修正-看起来OP想要的不是直径符号,而是度斜率:
\u$(vl列表->字符串'(37 37 99))“%%c”; 非常感谢。
我同意你的观点,因此OP现在有两个选项(直径/度[%%C,%%D])。
页:
[1]
2