goldy2000 发表于 2022-7-6 12:53:15

Lisp需要修改。。。

你好我有一个老Lisp程序,需要一些修复。。。。我有2个文本需要被线分割(如图所示)。Lisp可以是这样的:
-选择上部文字
-选择向下文本
-文字高度
-选择放置位置
 
有可能吗?有人有类似的吗??提前感谢您的帮助。。。。

hthc。LSP

CAB 发表于 2022-7-6 12:58:37

这是另一条路。
在所选文本上方放置一行。
(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)
)

Lee Mac 发表于 2022-7-6 13:01:14

另一种选择:
 

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

goldy2000 发表于 2022-7-6 13:05:08

谢谢你的时间,但不太明白你的Lisp程序,它要求我选择下来的文字,然后它把上面的行和后面没有什么,否则我错了??

goldy2000 发表于 2022-7-6 13:06:17

您好,李,lisp的好主意,有没有可能最终产品是由(单行文字-行-单行文字)制成的,因为我可能需要写数字,这样更容易用文字操作。。看看文字高度?谢谢。。

CAB 发表于 2022-7-6 13:09:21

 
不知道移动物体的原因。不清楚是否要移动行或文本或以上所有内容。而不是猜测,我把这部分留给你去实现。我刚刚给了你一种基于所选文本大小创建行的方法&将行放在所选文本上方的中点,在创建连续纯文本时,通常会出现间隙。
 
 
也许你可以解释一下你日常生活中“移动”部分的意图?

Lee Mac 发表于 2022-7-6 13:14:52

 
这与我提供的程序完全不同——不是快速修改。

goldy2000 发表于 2022-7-6 13:18:36

 
没问题,我觉得有点复杂。。不要浪费时间,有没有可能做一些不同的事情,也许可以选择文本并把一个放在另一个下面,然后我会手动把它之间的行眨眼:

alanjt 发表于 2022-7-6 13:20:38

只需分解多行文字,你就会得到两段数据文字和一条线。

Glen Smith 发表于 2022-7-6 13:22:38

你能不能不把多行文字的顶行设成下划线?
 
您甚至可以构建一个只有两个属性的块,最上面的一个属性的字体设置为下划线。然后可以使用ATTOUT导出。
 
或者我不明白你想做什么。
 
格伦
页: [1] 2
查看完整版本: Lisp需要修改。。。