ILoveMadoka 发表于 2022-7-6 10:39:42

帮助修改文字宽度Lisp?

哎呀标题应为“帮助修改文字宽度Lisp”
 
 
我不知道这个代码是从哪里来的
(很老了……)
谁能帮我修改一下吗
还要处理多行文字和维度吗?
 
-编辑7.29.2010
**经过一些研究后,请点击多行文字不值得这么麻烦**
我只需要它处理各种维度。
关联、多重引线等。
 

(DEFUN C:TW (/ P OPTION NSTYLE NWIDTH L N E)
(PROMPT "\nChanges text width: ")
(setvar "cmdecho" 0)
(graphscr)
(command "undo" "m")
(Prompt "\nSelect text to be changed: ")
(setq olderr *error*
            *error* cterr)
(setq p (ssget))
(SETQ OPTION "Width")
(cond
       ((eq option "Width")
            (setq nwidth (getreal "\nEnter new width for text: "))))
(if p
    (progn
    (setq l 0 n (sslength p))
    (while (< l n)
(if (= "TEXT"
(cdr (assoc 0 (setq e (entget (ssname p l))))))
(progn
   (cond
((eq option "Width")
(setq e (subst (cons 41 nwidth) (assoc 41 e) e))))
(entmod e)))
(setq l (1+ l)))))
(princ))

 
虽然我想知道如何修改此代码,
如果有其他更适合改变的常规
任何“文本相关”实体的文本宽度
也向这样的人开放。。。
 
谢谢

Tharwat 发表于 2022-7-6 10:46:00

你好
以下内容与您的相同;
(DEFUN C:TW (/ p nwidth l n e)
(PROMPT "\nChanges text width: ")
(setq p (ssget '((0 . "TEXT"))))
       (setq nwidth (getint "\nEnter new width for text: "))
(if (/= p nil)
    (progn
    (setq l 0
   n (sslength p))
    (while (< l n)
(setq e (entget (ssname p l)))
(entmod (setq e(subst (cons 41 nwidth) (assoc 41 e) e))
)
      (setq l (1+ l))))
)
(princ)
)
 
因此,多行文字中的(assoc 41)与文字不同。有关更多信息,请查看DXF。
 
塔瓦特

ILoveMadoka 发表于 2022-7-6 10:48:18

谢谢,但这不是我要问的。
 
 
如果我能自己写代码,我就不会在这里问。。。
 
我尽量避免直接向这里的诸神寻求帮助。。
 
不过还是谢谢你。。

alanjt 发表于 2022-7-6 10:51:59

 
 
:lol:

Tharwat 发表于 2022-7-6 10:55:27

 
我不知道你为什么生气,实际上你应该更有耐心才能获得更多信息。
 
我确信这里没有神,只有人类存在。
 
如果你不寻求帮助,那意味着你也不会帮助任何一个确定的人。
 
因此,如果你不想感谢任何人,你不必感谢任何人。甜心。
 
谢谢你,如果可以的话,我会毫不犹豫地帮助你。请确定。
 
我的问候
 
塔瓦特

alanjt 发表于 2022-7-6 10:55:56

 
你有确凿的证据来支持你的陈述吗?

Tharwat 发表于 2022-7-6 11:01:11

我对你的问题甚至你的声明没有任何评论。。。。。。。。
 
我很高兴成为一个正常人。。。。。。。

alanjt 发表于 2022-7-6 11:03:15

哦,我想不是每个人都像我一样喜欢怀疑论。 
正常是一个相对项:眨眼:

lpseifert 发表于 2022-7-6 11:06:57

你打败了我。

Tharwat 发表于 2022-7-6 11:08:16

“正常”特别是谦逊的D
 
那是我。
页: [1] 2
查看完整版本: 帮助修改文字宽度Lisp?