查找、剪切和粘贴文本字符串
大家好,我对论坛和lisp编程是新手。我需要一些帮助来编写在图形中执行以下操作的lisp:
1) 查找默认文本字符串(在本例中为“/”符号)
2) 剪切“/”符号后的整个文本字符串
3) 将其粘贴到原始文本字符串下方的行中
请参阅附图,图中右侧显示了所需结果的阴影区域。
我应该如何解决这个问题?我应该从哪里开始?
我正在使用AutoCad Electrical 2012
非常感谢!
试试这个。。。。
(defun c:Test (/ ss)
;;; Tharwat 16. Nov. 2.12 www.cadTutor.com ;;;
(if (setq ss (ssget '((0 . "*TEXT") (1 . "*/*"))))
((lambda (i / e sn e st po p)
(while (setq sn (ssname ss (setq i (1+ i))))
(setq po (vl-position
47
(vl-string->list
(setq st (cdr (assoc 1 (setq e (entget sn)))))
)
)
)
(setq p (polar (cdr (assoc 10 e))
(+ (cdr (assoc 50 e)) (* pi 1.5))
(* (cdr (assoc 40 e)) 1.2)
)
)
(if (eq (cdr (assoc 0 e)) "TEXT")
(entmakex (list (assoc 0 e)
(cons 1 (substr st (+ po 2)))
(assoc 40 e)
(cons 10 p)
(cons 11 p)
(assoc 50 e)
)
)
(entmakex (list (assoc 0 e)
'(100 . "AcDbEntity")
'(100 . "AcDbMText")
(cons 1 (substr st (+ po 2)))
(assoc 40 e)
(cons 10 p)
(cons 11 p)
(assoc 50 e)
)
)
)
(entmod (subst (cons 1 (substr (cdr (assoc 1 e)) 1 po))
(assoc 1 e)
e
)
)
)
)
-1
)
)
(princ "\n Written by Tharwat")
(princ)
)
你好Tharwat,
感谢您的及时回复,
我忘了提到这是一个与attrib块。文本是块属性的一部分(有没有办法不分解块?新复制的文本不必是块的一部分,它们可以保留为文本)
这是一个好的开始,谢谢。
页:
[1]