明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1301|回复: 2

[求助]为何图元数据中的坐标精度不够?怎样提取高精度坐标?

[复制链接]
发表于 2009-8-16 12:53:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2009-8-16 17:32:04 编辑

我是菜鸟,请教各位高手:
1。在autucad2004中,我要从一条多义线中提取顶点的坐标,多义线由用户选择,结果输出一个包含顶点坐标的表,但运行结果发现坐标值只有小数点后3位,达不到我的要求,我要求达到AutoCAD允许的最大精度。

2。我尝试了如下解决办法均没用:设置系统变量LUNITS=2(十进制数)、LUPREC=8(小数点后位数),但均未能改变图元数据中坐标的精度。

3。我用内部命令'_id查询多义线顶点的实际坐标是小数点后8位数的。

4。请问我如何令图元数据达到我要求的精度,例如小数点后8位。(最高是多少位?)

代码如下:

------------------------------------------------------------------------------------

(defun c:PRINTDXF(/ i ent entdata )   ;遍历图元名及图元数据
  (setq ent (entnext))
  (textpage)
  (while ent
    (setq entdata (entget ent))
    (setq i 0)
    (repeat (length entdata)
      (princ "\n")
      (princ (nth i entdata))
      (setq i (1+ i))
    )
    (setq ent (entnext ent))
  )
  (princ)
)


(defun getvertex( / plname pldata i e vt return)
  ;返回多义线的顶点坐标表,缺陷:点的坐标只有小数点后三位,精度不够。
  (setq plname (car (entsel)))
  (setq plData (entget plname))
  (if (= (cdr (assoc 0 pldata)) "LWPOLYLINE")
    (progn
      (setq i 0)
      (repeat (length pldata)
        (setq e (nth i pldata))
        (if (= (car e) 10) (setq vt (append vt (list (cdr e)))))
        (setq i (1+ i))
      )
    )
  )
  (setq return vt)
)

发表于 2009-8-16 14:48:00 | 显示全部楼层

本帖子中包含更多资源

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

x
 楼主| 发表于 2009-8-16 17:24:00 | 显示全部楼层
试过上述方法,似乎不起作用,我定义的函数(getvertex)的返回坐标仍然是小数点后3位,而且我的函数并不涉及图形文件保存问题,我新打开一个空白图,在上面画一条多义线,然后调用(getvertex),其返回坐标仍然只有小数点后3位。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 01:42 , Processed in 0.168852 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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