Lisp需要修改。。。
你好我有一个老Lisp程序,需要一些修复。。。。我有2个文本需要被线分割(如图所示)。Lisp可以是这样的:-选择上部文字
-选择向下文本
-文字高度
-选择放置位置
有可能吗?有人有类似的吗??提前感谢您的帮助。。。。
hthc。LSP 这是另一条路。
在所选文本上方放置一行。
(defun c:hthc (/ ENT ELST BB LL HT P1 P2)
(while (and (setq ent (car (entsel "Selektiraj donji text")))
(setq elst (entget ent))
(= (cdr (assoc 0 elst)) "TEXT")
)
(setq bb (textbox (list (assoc -1 elst))))
(setq ll (cdr (assoc 10 elst))
ht (cdr(assoc 40 elst))
p1 (polar ll (/ pi 2) (* ht 1.333))
p2 (polar p1 0 (abs (- (caadr bb)(caar bb))))
)
(entmake (list (cons 0 "LINE")
(cons 6 "BYLAYER")
(cons 8 "linija")
(cons 10 p1)
(cons 11 p2)
)
)
)
(princ)
) 另一种选择:
(defun c:fract (/ tEnt1 tEnt2 tEnt)
(vl-load-com)
(and (setq tEnt1 (car (entsel "\nSelect Upper Text: ")))
(eq "TEXT" (cdadr (entget tEnt1)))
(setq tEnt2 (car (entsel "\nSelect Lower Text: ")))
(eq "TEXT" (cdadr (entget tEnt2)))
(setq tEnt
(M-Text '(0 0 0)
(strcat "\{\\H0.7x;\\S"
(cdr (assoc 1 (entget tEnt1))) "/"
(cdr (assoc 1 (entget tEnt2))) ";}")))
(command "_.move" tEnt "" '(0 0 0) pause))
(princ))
(defun M-Text (pt val)
(entmakex
(list
(cons 0 "MTEXT")
(cons 100 "AcDbEntity")
(cons 100 "AcDbMText")
(cons 10 pt)
(cons 1 val))))
谢谢你的时间,但不太明白你的Lisp程序,它要求我选择下来的文字,然后它把上面的行和后面没有什么,否则我错了?? 您好,李,lisp的好主意,有没有可能最终产品是由(单行文字-行-单行文字)制成的,因为我可能需要写数字,这样更容易用文字操作。。看看文字高度?谢谢。。
不知道移动物体的原因。不清楚是否要移动行或文本或以上所有内容。而不是猜测,我把这部分留给你去实现。我刚刚给了你一种基于所选文本大小创建行的方法&将行放在所选文本上方的中点,在创建连续纯文本时,通常会出现间隙。
也许你可以解释一下你日常生活中“移动”部分的意图?
这与我提供的程序完全不同——不是快速修改。
没问题,我觉得有点复杂。。不要浪费时间,有没有可能做一些不同的事情,也许可以选择文本并把一个放在另一个下面,然后我会手动把它之间的行眨眼: 只需分解多行文字,你就会得到两段数据文字和一条线。 你能不能不把多行文字的顶行设成下划线?
您甚至可以构建一个只有两个属性的块,最上面的一个属性的字体设置为下划线。然后可以使用ATTOUT导出。
或者我不明白你想做什么。
格伦
页:
[1]
2