显示变量和字符
你好几天前我刚开始在AutoLISP中工作,我遇到了一个问题。我需要创建一条尺寸线,其中尺寸值取决于输入值。因此,如果输入为y,那么尺寸线上的文字应等于4.5*(y+1)英寸,并且它还需要具有0.75的字符宽度。目前,它只显示4 1/2“。据我所知,这将是一个实数,这意味着我不能将其与英寸符号连接。任何帮助将不胜感激!(defun c:retan (/ p1 p2 p3 p4 x y i j)(setvar "osmode" 0)
(setq p1 (getpoint "\nfirst corner of rectangle: "))
(setq x (getint "\nEnter Horizontal Count: "))
(setq y (getint "\nEnter Vertical Count: "))
(setq p3 (list (+ (+ 1.625 (* 0.8125 (- x 1))) (car p1))(+ (+ 1.625 (* 0.8125 (- y 1))) (cadr p1))))
(setq p2 (list (car p1)(cadr p3)))
(setq p4 (list (car p3)(cadr p1)))
(command "pline" p1 p2 p3 p4 "c") ;c closes the rectangle's fourth side
(entmakex (list
(cons 0 "DIMENSION")
(cons 100 "AcDbEntity")
(cons 8 "E-DIMS") ;; 8 Layer
(cons 100 "AcDbDimension")
(cons 10 (list (- (car P1) 0.7) (cadr P2) 0)) ;; 10 Arrow Node
(cons 11 (list (- (car P1) 0.9) (/ (+ (cadr P2)(cadr P1)) 2) 0)) ;; 11 Text Position
(cons 70 160)
(cons 1 "{\\W0.75;4 1/2\"}") ;; 1Contents of Dimension Textbox
(cons 71 5) ;; 71 Text Alignment (5=centered)
(cons 42 0.8125)
(cons 53 1.5708) ;; 53 Text Rotation
(cons 3 "REW-1_.125txt")
(cons 100 "AcDbAlignedDimension")
(cons 13 P1) ;; 13 point on line
(cons 14 P2) ;; 14 point on line
(cons 50 1.5708) ;; 50 Angle (radians) 1.5708
(cons 100 "AcDbRotatedDimension")))
(setvar "osmode" 16383)(princ)
)
(cons 1 (strcat"{\\W0.75;" (rtos (* 4.5 (1+ y)) 4 2) "}"))
ymg公司 谢谢ymg,成功了!
页:
[1]