求助
本帖最后由 隽轩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 有时候可以加点有时候又不加点 请大家指点指点
怎么个规则?在哪个数字后面加点? 时加时不加 是if 的判断 当数值为实数且小数位非零时就不加 反之则加 (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:24 编辑
mahuan1279 发表于 2023-11-7 22:46
怎么个规则?在哪个数字后面加点?
读取顶点坐标的xy值例如10或10.0时需要写成“10.”-10或-10.0时需要写成“-10.” 多位小数时取三位小数 多谢各位 问题已解决 好像和某个尺寸变量有关。 和dimzin有关吗 查看很多前辈的代码 添加 dimzin为0程序反而不运行了 应该和系统变量有关系
页:
[1]