将文本添加到lisp
嘿我是新来的,希望有人能帮助我
我写了这个LISP,并从其他LISP中复制了一些东西
我需要的是,在RECT的底部,它将自动写入RECT的维度。
它下面应该写着U.K.=。。。
代码如下:
(defun c:rmid (/ pt1)
(setq
w (getdist "\nWidth: ")
l (getdist "\nLength: ")
pt1 (getpoint "\nSpecify mid point: ")
)
(setq
p2 (list (+ (car pt1) (* 0.5 w))(+ (cadr pt1) (* 0.5 l)))
p3 (list (- (car pt1) (* 0.5 w))(- (cadr pt1) (* 0.5 l)))
)
(setvar "osmode" 0)
(setvar "cmdecho" 0)
(command "rectang" p2 p3
)
(setq OldCmdEcho (getvar "cmdecho")) ;save cmdecho state
(setvar "cmdecho" 0) ;this hide command
(setq Htxt (getdist "\nText height: ")
angTxt 0
DeltaYtxt (* 2.0 Htxt)
)
(while (/= (setq txt (getstring "\nText: " T)) "") ;T=True is for input text with space, if omit T then Text cannot space
(command "_text" "_Justify" "_TL" p3 Htxt angtxt txt)
;New position for next txt
(setq p3 (mapcar '- p3 (list 0 DeltaYtxt 0)))
)
(setvar "osmode" 703);your favourite osnap
(setvar "cmdecho" oldCmdEcho) ;restore original state for cmdecho
(princ)
) 这是你想要的吗?
(defun c:rmid (/ pt1)
(setq w (getdist "\nWidth: ")
l (getdist "\nLength: ")
pt1 (getpoint "\nSpecify mid point: ")
)
(setq p2 (list (+ (car pt1) (* 0.5 w))(+ (cadr pt1) (* 0.5 l)))
p3 (list (- (car pt1) (* 0.5 w))(- (cadr pt1) (* 0.5 l)))
)
(setvar "osmode" 0)
(setvar "cmdecho" 0)
(command "rectang" p2 p3)
(setq OldCmdEcho (getvar "cmdecho")) ;save cmdecho state
(setvar "cmdecho" 0) ;this hide command
(setq Htxt (getdist "\nText height: ")
angTxt 0
DeltaYtxt (* 2.0 Htxt)
)
(command "_text" "_Justify" "_TL" p3 Htxt angtxt (strcat "Width = " (rtos w)))
(setq p3 (mapcar '- p3 (list 0 DeltaYtxt 0)))
(command "_text" "_Justify" "_TL" p3 Htxt angtxt (strcat "Length = " (rtos l)))
(setq p3 (mapcar '- p3 (list 0 DeltaYtxt 0)))
(command "_text" "_Justify" "_TL" p3 Htxt angtxt"U.K.=" )
(setvar "osmode" 703);your favourite osnap
(setvar "cmdecho" oldCmdEcho) ;restore original state for cmdecho
(princ)
)
请阅读代码发布指南并编辑您的帖子,将代码包含在代码标签中。 谢谢,太好了。。。
我稍微改变了输出,所以现在它显示的是300/400/200的DIM,而不是像你做的那样的列表
我现在需要的是,它将我的输入识别为“文本”,而不是数字,这样当我给出200时,它将显示200而不是200.00,当我写+12.00时,它应该显示+12.00而不仅仅是12.00
(defun c:test (/ pt1)
(setq w (getdist "\nWidth: ")
l (getdist "\nLength: ")
h (getdist "\nHeight: ")
uk (getdist "\nUK: ")
pt1 (getpoint "\nSpecify mid point: ")
)
(setq p2 (list (+ (car pt1) (* 0.5 w))(+ (cadr pt1) (* 0.5 l)))
p3 (list (- (car pt1) (* 0.5 w))(- (cadr pt1) (* 0.5 l)))
)
(setvar "osmode" 0)
(setvar "cmdecho" 0)
(command "rectang" p2 p3)
(setq OldCmdEcho (getvar "cmdecho")) ;save cmdecho state
(setvar "cmdecho" 0) ;this hide command
(setq Htxt (getdist "\nText height: ")
angTxt 0
DeltaYtxt (* 2.0 Htxt)
)
(command "_text" "_Justify" "_TL" p3 Htxt angtxt (strcat (rtos w) "/" (rtos l) "/" (rtos h)))
(setq p3 (mapcar '- p3 (list 0 DeltaYtxt 0)))
(command "_text" "_Justify" "_TL" p3 Htxt angtxt (strcat "U.K.=" (rtos UK))))
(setvar "osmode" 703);your favourite osnap
(setvar "cmdecho" oldCmdEcho) ;restore original state for cmdecho
(princ)
)
谁能帮帮我吗?
解决这个问题? Rtos W查看Rtos W 2 0等检查帮助以获取额外标志
页:
[1]