标注文字格式
TxtFormat。pdf有人能帮我通过LISP格式化一些尺寸文本吗?
我想把文本格式化为水平堆叠的分数,英寸和分数之间没有空格。E、 g.(setq txt 3.08203)(rtos txt 4 5)得到3 3/32“,但我希望它的格式为3,后跟3/32”,水平堆叠,它们之间没有空格。
非常感谢。 您的示例结果显示它们垂直堆叠? 我正在尝试将文本格式化为pdf附件中所示的格式,我想AutoCAD称其为水平堆叠,但我认为也可以称其为垂直堆叠,基本上我希望它为英寸(无英尺),后跟堆叠在一起的英寸分数,后跟“(英寸符号),任何地方都没有空格。 这是两个独立的东西维度和文本如果你对dim值进行RTO,那么它是一个字符串,不再是维度,所以需要使用我认为的多行文字,感谢上帝的度量。
如果它是一个维度,则可以作为维度样式,但可能会反映真实的维度长度。 您不需要Lisp代码。您可以设置暗样式。
DIMLUNIT=5
DIMFRAC=0
DIMPOST=“” 谢谢,但我已经用这种方式设置了变量,它不会工作。此文本覆盖真实尺寸文本,并以英尺和英寸以及对角分数显示,但我的其他尺寸仅为英寸和水平分数。 正如我之前所说,如果你不rtos的txt会发生什么。标注样式处理其显示值的方式。 @Arepo:
也许我误解了,但我认为建立一个dimstyle会奏效。见附图。
TestDimstyle。图纸 设置dimstyle是可行的,但问题是从obj定义(42.3.03975)中提取的文本显示为3.03975(在本例中),格式为十进制英寸。因此,当我将其粘贴到其他位置时,它会丢失dimstyle中显示的格式。我试图从维度obj中提取文本,保留其格式,或者以显示分数英寸的方式操作3.03975,并将其粘贴到其他地方。我基本上是想得到一个输入为3.0975,输出格式为horiz的函数。分数英寸,如果有这样的事情。无论如何,谢谢你的帮助。 逆向工程格式的多行文字我想到了这个:
(defun c:foo (/ i n s)
(if (setq i (getdist "\nEnter distance: "))
(progn (setq s (rtos i 4 5))
(setq s (cond ((setq n (vl-string-search " " s))
(substr (rtos 500.03975 4 5) 1 5)
(strcat "\\A1;"
(substr s 1 n)
"{\\H0.7x;\\S"
(vl-string-right-trim "\"" (substr s (+ 2 n)))
";}\""
)
)
(s)
)
)
(entmake (list '(0 . "MTEXT")
'(100 . "AcDbEntity")
'(67 . 0)
'(8 . "MTEXT")
'(100 . "AcDbMText")
(cons 10 (getvar 'viewctr))
(cons 40 (/ (getvar 'viewsize) 16.))
'(41 . 0.0)
'(46 . 0.0)
'(71 . 5)
'(72 . 1)
(cons 1 s)
'(7 . "ROMANS")
'(11 1.0 0.0 0.0)
)
)
)
)
(princ)
)
页:
[1]
2