本帖最后由 作者 于 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) )
|