乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 77|回复: 10

[编程交流] 丢失的000

[复制链接]

15

主题

43

帖子

28

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
75
发表于 2022-7-6 10:17:52 | 显示全部楼层 |阅读模式
你好
我正在尝试创建桩号高程lisp
 
但我面临一个问题,0位数缺失
例如
 
if(setq标高125.125)
(setq文本(rtos elev 2 3))
 
!text=“125.125”
 
但是(setq标高125.000)
(setq文本(rtos elev 2 3))
 
!text=“125”(我需要这样的“125.000”)
 
我怎样才能解决这个问题。。。。
回复

使用道具 举报

8

主题

1133

帖子

1164

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 10:27:17 | 显示全部楼层
或者,您可以确保将系统变量DIMZIN设置为正确的值
 
 
 
  1. DIMZIN System Variable
  2. Type: Integer
  3. Saved in: Drawing
  4. Initial value: 0
  5. Controls the suppression of zeros in the primary unit value. DIMZIN stores this
  6. value when you enter it on the command line or set it under Primary Units in
  7. the Annotation dialog box. DIMZIN values 0-3 affect feet-and-inch dimensions only.
  8. 0  Suppresses zero feet and precisely zero inches
  9. 1  Includes zero feet and precisely zero inches
  10. 2  Includes zero feet and suppresses zero inches
  11. 3  Includes zero inches and suppresses zero feet
  12. 4  Suppresses leading zeros in decimal dimensions (for example, 0.5000 becomes .5000)
  13. 8  Suppresses trailing zeros in decimal dimensions (for example, 12.5000 becomes 12.5)
  14. 12  Suppresses both leading and trailing zeros (for ex-ample, 0.5000 becomes 0.5)
  15. DIMZIN also affects real-to-string conversions performed by the AutoLISP rtos and angtos functions.
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 10:31:48 | 显示全部楼层
 
这是真的eldon,它将更改您设置的当前dimstyle。尤其是通过程序进行更改时,也需要考虑到这一点。可能需要在程序开始时保存原始dimzin,然后在程序中进行设置,然后在退出时恢复。
 
这完全取决于以后是否使用dimstyle进行尺寸标注。但如果通过该程序正确完成,那也没什么大不了的。
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 10:37:30 | 显示全部楼层
埃尔登,
 
实际上,在测试alanjt之后“s例程和调整dimzin时,它对输出或alan的函数产生了影响。在这种情况下,dimzin可能会覆盖此功能,因此如果从程序中获得正确的输出并避免永久性设置更改,您实际上需要考虑保存、更改和恢复此变量。如果使用此功能将文本放置在图形中,一旦放置,dimzin不会影响放置的文本。
 
很好,我今天学到了一些东西。
回复

使用道具 举报

15

主题

43

帖子

28

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
75
发表于 2022-7-6 10:44:59 | 显示全部楼层
谢谢eldon和Buzzard
现在开始工作了
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:50:19 | 显示全部楼层
我认为这可以构成一个避免更改DIMZIN的解决方案:
 
  1. (defun LM:rtos ( real prec / _padright ) (vl-load-com)
  2. ;; © Lee Mac 2010
  3. (defun _padright ( str char len )
  4.    (if (< (strlen str) len) (_padright (strcat str char) char len) str)
  5. )
  6. (strcat (itoa (fix real))
  7.    (_padright
  8.      (vl-string-left-trim "0" (rtos (abs (rem real 1)) 2 prec)) "0" (1+ prec)
  9.    )
  10. )
  11. )
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 10:54:00 | 显示全部楼层
 
太棒了,李!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:00:50 | 显示全部楼层
谢谢Buzzard
 
编辑:发现一个小问题:
 
  1. (LM:rtos 3.400 0)
  2. "30"

 
固定的:
 
  1. (defun LM:rtos ( real prec / _padright ) (vl-load-com)
  2. ;; © Lee Mac 2010
  3. (defun _padright ( str char len )
  4.    (if (< (strlen str) len) (_padright (strcat str char) char len) str)
  5. )
  6. (
  7.    (lambda ( dec )
  8.      (strcat (itoa (fix real)) (if (eq "" dec) "" ".") dec)
  9.    )
  10.    (_padright (vl-string-left-trim ".0" (rtos (abs (rem real 1)) 2 prec)) "0" prec)
  11. )
  12. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:11:15 | 显示全部楼层
实际上,这可能更快:
 
  1. (defun LM:rtos ( real prec ) (vl-load-com)
  2. (
  3.    (lambda ( l )
  4.      (repeat (- prec (cond ( (vl-position 46 l) ) ( 0 )))
  5.        (setq l (cons 48 l))
  6.      )      
  7.      (vl-list->string (if (= 46 (car (setq l (reverse l)))) (cons 48 l) l))
  8.    )
  9.    (reverse (vl-string->list (rtos real 2 prec)))
  10. )
  11. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:13:30 | 显示全部楼层
顺便问一下,我想问的是,你对虚拟语言的学习进展如何?
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-6 20:45 , Processed in 0.419732 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表