明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1167|回复: 5

[源码] 有效位函数(fysf)

  [复制链接]
发表于 2020-6-14 18:51 | 显示全部楼层 |阅读模式
本帖最后由 muwind 于 2020-6-14 19:27 编辑

;10多年前写的,实现如下功能(公司规定):;当数大于100时,无小数,
;当数小于100大于10,保留1位小数
;当数大于0.1小于10时候,保留2位小数
;当数小于0.1时候,保留两位有效数字

;有效数字Significant figures
;原数字Original number
(defun FySF ( Original_num / NowDS )
  (if (/= (getvar "DIMZIN") 8)
    (progn
      (setq NowDS(getvar "DIMSTYLE"))
      (setvar "DIMZIN" 8)
      (command "-dimstyle" "s" NowDS "y")
    )
  )
;消除后续0,因为修改了变量会出现替代样式,本人有强迫症看不得。
;如果能确定"DIMZIN"的值是8,或者其他地方有设置,以上代码可以省略
   (cond   
      ((< Original_num 0.1)
          (rtos Original_num 2 (+ 1 (atoi (substr (rtos Original_num 1 0) 4)))))
      ((< Original_num 10) (rtos Original_num 2 2))   
      ((< Original_num 100) (rtos Original_num 2 1))
      (T (rtos Original_num 2 0))     
    )
)

;发出来一是求优化,一是分享下


"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2020-6-15 13:48 | 显示全部楼层
楼主用下来有什么问题吗?
 楼主| 发表于 2020-6-15 22:04 | 显示全部楼层
xvjiex 发表于 2020-6-15 13:48
楼主用下来有什么问题吗?

没发现没什么问题 ,正常使用
感觉有点啰嗦,^_^
发表于 2020-6-16 08:42 | 显示全部楼层
我也感觉很好,感谢分享!
发表于 2022-6-23 10:41 | 显示全部楼层
小白请教下大佬,这个怎么调用..直接存为.lsp吗?命令在哪设置
 楼主| 发表于 2022-6-23 22:41 | 显示全部楼层
另存为lsp的话你要加载一次
放在你的lisp函数库里面一起加载就可以直接调用了
( FySF 10.23511 ) 返回10.2  
( FySF 1.023511 ) 返回1.02  
( FySF 1023.511 ) 返回1023
( FySF 0.01023511 ) 返回0.01
( FySF 0.0123511 ) 返回0.012
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-6-2 08:14 , Processed in 0.140834 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表