明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 319|回复: 1

[提问] 卑微的求一个毫米坐标转换为英标的坐标标注

[复制链接]
发表于 2020-11-25 18:04 | 显示全部楼层 |阅读模式
1明经币
本帖最后由 hadessna 于 2020-11-25 18:06 编辑

在论坛找到个国标坐标标注,现需要转换为英标标注。已知1'=304.8mm,1"=25.4mm,比如129736.8mm,需要显示为425'-7 3/4"。个人思路是是把尺和寸分开,除以304.8后是425.6457,向下取整为425',然后"(寸)就按(129736.8-(425*304.8))/25.4,然后的出来的这个值用分数显示,按1/16的精度,得出结果为425'-7 3/4",最好是可以消0,即如果标注得数为0,标注结果不显示0'或0"。

源码如下
;;坐标标注程序
;;--------------------------
(defun C:zb (/ OSNAP PNT1 P1X P1Y P1Z  P STDX STDY  XCOORD YCOORD ZCOORD PTXT )
    (setvar "ORTHOMODE" 0)
    (setq OSNAP (getvar "OSMODE"))
    (command "setvar" "osmode" "515")   
    (command "setvar" "luprec" "1")
    (prompt "NOTE!!! Coords. & leader drawn per current dimstyle; precision per UNITS... ")
             (setq dst (getvar "dimstyle"))
  (command "_.-DIMSTYLE" "_Restore" dst)
    (setq PNT1 (getpoint "\n选取点: "))
    (setq P1X (car pnt1))
    (setq P1Y (cadr pnt1))
    (setq P1Z (caddr pnt1))
    (setq P (getvar "LUPREC"))
    (setq STDX (rtos P1X 2 P))
    (setq STDY (rtos P1Y 2 P))
    (setq STDZ (rtos P1Z 2 P))
    (setq XCOORD (strcat "E " STDX ))
    (setq YCOORD (strcat "N " STDY ))
    (setq ZCOORD (strcat "Z " STDZ ))
    (setq PTXT (getpoint
      "\n选取文字位置: "))
    (command "LEADER" PNT1 PTXT "" XCOORD YCOORD ZCOORD "")
    (command "SETVAR" "osmode" OSNAP)
    (command "setvar" "luprec" "4")
(princ)
)

或直接下载附件
谢谢各位。


附件: 您需要 登录 才可以下载或查看,没有账号?注册
 楼主| 发表于 2020-11-30 10:00 | 显示全部楼层
个人置顶~~~
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 13:34 , Processed in 0.278951 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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