找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1040|回复: 5

[求助] lisp 怎么获取圆的坐标写入文本后是一个统一的格式。

[复制链接]

已领礼包: 160个

财富等级: 日进斗金

发表于 2017-8-2 11:04:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×


    (setq tt (open "F:/123.hao" "W"))
      (mapcar '(lambda (x)
        (setq ent (entget x)
              zb (cdr (assoc 10 entt))
              xz (car zb)
              yz (cadr zb))
        (princ "X" tt)
        (princ (rtos XZ 2 3) tt)               
        (princ "Y" tt)
        (princ (rtos yZ 2 3) tt)
        (princ "\n" tt)
        )
              lts
      )

(close tt)
我写的代码写入格式:      
X1.000Y1.000
X-11.000Y-11.000


X111.000Y-111.000

我需要的格式:         
X+001.000Y+001.000
X-011.000Y-011.000
X+111.000Y+111.000
即 x坐标 当坐标值为正时 X+000.000
               当坐标值为正时 X-000.000  
精度格式:+或-000.000









论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 20个

财富等级: 恭喜发财

发表于 2017-8-2 11:22:15 | 显示全部楼层
那坐标值 整数部分超过3位的,怎么写? 比如 12345.33
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2017-8-2 12:14:53 | 显示全部楼层
http://bbs.mjtd.com/thread-100314-1-1.html
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-8-2 12:20:30 | 显示全部楼层
本帖最后由 newer 于 2017-8-2 12:39 编辑

数字字首按指定位数补齐函数 xd::string:strpad  见:http://bbs.xdcad.net/forum.php?m ... A%3Astring%3Astrpad

  1. 命令: (xd::string:strpad 2.1 3 "0" 3)
  2. "002.100"



  1. (defun c:tt ()
  2.   (defun _princ(str x)
  3.              (princ (strcat str
  4.                             (if        (< x 0)
  5.                               (progn
  6.                                 (setq x (substr x 2))
  7.                                 "-"
  8.                               )
  9.                               "+"
  10.                             )
  11.                             (setq x (xd::string:strpad x 3 "0" 3))
  12.                     )
  13.              )
  14.   )
  15.   (princ "\n选取圆<退出>:")
  16.   (if (setq ss (ssget '((0 . "CIRCLE"))))
  17.     (progn (setq i -1)
  18.            (while (setq e (ssname ss (setq i (1+ i))))
  19.              (setq cen (cdr (assoc 10 (entget e)))
  20.                    x   (car cen)
  21.                    y   (cadr cen)
  22.              )
  23.              (princ "\n")
  24.              (_princ "X" x)
  25.              (_princ "Y" y)
  26.            )
  27.     )
  28.   )
  29.   (princ)
  30. )



运行结果:

选择对象:

X+084.319Y+031.213
X+064.006Y+016.412
X+036.498Y+024.024
X+039.794Y+031.625

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 160个

财富等级: 日进斗金

 楼主| 发表于 2017-8-2 16:33:21 | 显示全部楼层

机床的加工限度是-250MM+250MM 所以需要000.000
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 160个

财富等级: 日进斗金

 楼主| 发表于 2017-8-3 09:18:27 | 显示全部楼层

谢谢你的热情与无私的帮助!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-24 02:25 , Processed in 0.368309 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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