隽轩2013 发表于 2023-11-7 21:26:55

求助

本帖最后由 隽轩2013 于 2023-11-7 21:49 编辑

请教各位大神 在CAD中编译.NC程序时需要在整数后面加个点 例如10 编译成 10.
(DEFUN ZS+DIAN (NUM)
      (IF (AND (= (TYPE NUM) 'REAL) (/= NUM (FIX NUM)))
                (STRCAT (RTOS NUM 2 3))
                (STRCAT (RTOS NUM) ".")
      )
)
上面的lisp 有时候可以加点有时候又不加点 请大家指点指点

mahuan1279 发表于 2023-11-7 22:46:32

怎么个规则?在哪个数字后面加点?

飞雪神光 发表于 2023-11-7 23:06:19

时加时不加 是if 的判断 当数值为实数且小数位非零时就不加 反之则加

vitalgg 发表于 2023-11-8 14:37:06

(defun at-cnc:n2s (num)
"数字转字符串,一些老的CNC设备需要参数有小数点。"
(setq num (rtos num 2 cnc:units))
(if (null (member (ascii ".")(vl-string->list num)))
      (strcat num ".0")
    num)
)

隽轩2013 发表于 2023-11-8 19:07:00

本帖最后由 隽轩2013 于 2023-11-8 19:24 编辑

mahuan1279 发表于 2023-11-7 22:46
怎么个规则?在哪个数字后面加点?
读取顶点坐标的xy值例如10或10.0时需要写成“10.”-10或-10.0时需要写成“-10.” 多位小数时取三位小数

隽轩2013 发表于 2023-11-8 20:44:33

多谢各位 问题已解决

ghgh0130 发表于 2023-11-9 06:18:22

好像和某个尺寸变量有关。

隽轩2013 发表于 2023-11-9 08:19:57

和dimzin有关吗

隽轩2013 发表于 2023-11-9 08:22:16

查看很多前辈的代码 添加 dimzin为0程序反而不运行了

czb203 发表于 2023-11-9 10:14:56

应该和系统变量有关系
页: [1]
查看完整版本: 求助