[求助]为何图元数据中的坐标精度不够?怎样提取高精度坐标?
本帖最后由 作者 于 2009-8-16 17:32:04 编辑 <br /><br /> <p>我是菜鸟,请教各位高手:<br/>1。在autucad2004中,我要从一条多义线中提取顶点的坐标,多义线由用户选择,结果输出一个包含顶点坐标的表,但运行结果发现坐标值只有小数点后3位,达不到我的要求,我要求达到autocad允许的最大精度。</p><p>2。我尝试了如下解决办法均没用:设置系统变量LUNITS=2(十进制数)、LUPREC=8(小数点后位数),但均未能改变图元数据中坐标的精度。</p><p>3。我用内部命令'_id查询多义线顶点的实际坐标是小数点后8位数的。</p><p>4。请问我如何令图元数据达到我要求的精度,例如小数点后8位。(最高是多少位?)</p><p>代码如下:</p><p>------------------------------------------------------------------------------------</p><p>(defun c:PRINTDXF(/ i ent entdata ) ;遍历图元名及图元数据<br/> (setq ent (entnext))<br/> (textpage)<br/> (while ent<br/> (setq entdata (entget ent))<br/> (setq i 0)<br/> (repeat (length entdata)<br/> (princ "\n")<br/> (princ (nth i entdata))<br/> (setq i (1+ i))<br/> )<br/> (setq ent (entnext ent))<br/> )<br/> (princ)<br/>)</p><p><br/>(defun getvertex( / plname pldata i e vt return)<br/> ;返回多义线的顶点坐标表,缺陷:点的坐标只有小数点后三位,精度不够。<br/> (setq plname (car (entsel)))<br/> (setq plData (entget plname))<br/> (if (= (cdr (assoc 0 pldata)) "LWPOLYLINE")<br/> (progn<br/> (setq i 0)<br/> (repeat (length pldata)<br/> (setq e (nth i pldata))<br/> (if (= (car e) 10) (setq vt (append vt (list (cdr e)))))<br/> (setq i (1+ i))<br/> )<br/> )<br/> )<br/> (setq return vt)<br/>)<br/></p> <p></p><p></p> 试过上述方法,似乎不起作用,我定义的函数(getvertex)的返回坐标仍然是小数点后3位,而且我的函数并不涉及图形文件保存问题,我新打开一个空白图,在上面画一条多义线,然后调用(getvertex),其返回坐标仍然只有小数点后3位。
页:
[1]