Chinchillas 发表于 2023-6-26 16:45:42

如何rtos函数怎么保留输入数值末尾的0,如输入1.200,文字则显示为1.200


[*](defun c:AQ(/ ang p0 p1 p2 p3 pc pd tt xz1)
(vl-load-com)
(setvar "cmdecho" 0)
(setq TCBF (getvar "clayer"))
(setvar "osmode" 16383)
(or t3 (setq t3 '(0.950)))
(mapcar 'set '( t2 ) t3)
(if (setq t1 (getreal (strcat "\n默认高度<" (rtos T2 2 3) ">: ")))
    (setq t2 t1)
)
    (setq t3 (list t2 ))
(setq p0 (getpoint "\n指定第一点:"))
(setq p1 (getpoint p0 "\n指定第二点:"))
(setq P2 (polar P1 (- (angle P0 P1) (/ PI 2)) 200))
(setq P3 (polar P0 (- (angle P0 P1) (/ PI 2)) 200))
(setq ang (angle p0 p1))
(setq ang (atoi (angtos ang 0 0)))
(while (> ang 90) (setq ang (- ang 180)))
(setq ang (/ (* ang pi) 180))
(setq pc (polar p0 (angle p0 p2) (/ (distance p0 p2) 2)))
(setq PD (polar PC (- (angle P0 P1) (/ Pi 2)) 200))
(setq tt (strcat"CT:Hs+" (rtos (abs T2) 2 3)))
(setvar "OSMODE" 0)
(command "layer" "m" "T-窗台" "c" "120" "T-窗台" "")
(command "PLINE" P0 P1 P2 P3 "C")
(setq xz1 (entlast))
(command "-HATCH" "P" "AR-HBONE" "" ang "S" XZ1 "" "")
(entmake
    (list
      '(0 . "text")
      (cons 8 "T-窗台")
      (cons 72 4)
      (cons 1 TT)
      (cons 41 0.6)
      (cons 10 pD)
      (cons 11 pD)
      (cons 40 120)
      (cons 50 ang)
      (cons 7 "Standard")
    )
)
(setvar "clayer" TCBF)
(setvar "cmdecho" 1)
(prin1)
)

vormittag 发表于 2023-6-27 13:46:51

rtos 受 dimzin 变量控制,临时将 dimzin 设置为 0,命令完成后恢复现场。

飞雪神光 发表于 2023-6-26 17:05:44

本帖最后由 飞雪神光 于 2023-6-26 17:07 编辑

(defun c:AQ(/ ang p0 p1 p2 p3 pc pd tt xz1)
(vl-load-com)
(setvar "cmdecho" 0)
(setq TCBF (getvar "clayer"))
(setvar "osmode" 16383)
(setq dimzin (getvar "dimzin"))
(setvar "dimzin" 0)
(or t3 (setq t3 '(0.950)))
(mapcar 'set '( t2 ) t3)
(if (setq t1 (getreal (strcat "\n默认高度<" (rtos T2 2 3) ">: ")))
    (setq t2 t1)
)
(setq t3 (list t2 ))
(setq p0 (getpoint "\n指定第一点:"))
(setq p1 (getpoint p0 "\n指定第二点:"))
(setq P2 (polar P1 (- (angle P0 P1) (/ PI 2)) 200))
(setq P3 (polar P0 (- (angle P0 P1) (/ PI 2)) 200))
(setq ang (angle p0 p1))
(setq ang (atoi (angtos ang 0 0)))
(while (> ang 90) (setq ang (- ang 180)))
(setq ang (/ (* ang pi) 180))
(setq pc (polar p0 (angle p0 p2) (/ (distance p0 p2) 2)))
(setq PD (polar PC (- (angle P0 P1) (/ Pi 2)) 200))
(setq tt (strcat"CT:Hs+" (rtos (abs T2) 2 3)))
(setvar "dimzin" dimzin)
(setvar "OSMODE" 0)
(command "layer" "m" "T-窗台" "c" "120" "T-窗台" "")
(command "PLINE" P0 P1 P2 P3 "C")
(setq xz1 (entlast))
(command "-HATCH" "P" "AR-HBONE" "" ang "S" XZ1 "" "")
(entmake
    (list
      '(0 . "text")
      (cons 8 "T-窗台")
      (cons 72 4)
      (cons 1 TT)
      (cons 41 0.6)
      (cons 10 pD)
      (cons 11 pD)
      (cons 40 120)
      (cons 50 ang)
      (cons 7 "Standard")
    )
)
(setvar "clayer" TCBF)
(setvar "cmdecho" 1)
(prin1)
)

yaojing38 发表于 2023-6-26 16:51:49

本帖最后由 yaojing38 于 2023-6-26 16:53 编辑

(rtos x 2 3)?不要abs

Chinchillas 发表于 2023-6-26 17:11:23

飞雪神光 发表于 2023-6-26 17:05


谢谢大佬,之前找到了这个方式,放错位置了,一直没搞明白

Chinchillas 发表于 2023-6-26 17:13:08

yaojing38 发表于 2023-6-26 16:51
(rtos x 2 3)?不要abs

这样不行,我试过了

xyp1964 发表于 2023-6-26 18:45:09

(setvar 'dimzin 0)

cchessbd 发表于 2023-6-26 21:20:34

我是取小数后,按剩余长度,另外补零的。

meja 发表于 2023-6-30 20:34:48

vormittag 发表于 2023-6-27 13:46
rtos 受 dimzin 变量控制,临时将 dimzin 设置为 0,命令完成后恢复现场。

又学习了一招
页: [1]
查看完整版本: 如何rtos函数怎么保留输入数值末尾的0,如输入1.200,文字则显示为1.200