您的位置:网站首页 > CAD新闻

CAD坐标Z归0问题

时间:2010-01-23 23:22:03 来源:

其实这个问题一直困扰我,以前用有一个LISP程序,后来网上发现了另一个方法,一并总结下来。

1.lisp程序

程序代码:(defun c:z0()
   (setvar "cmdecho" 0)
   (setvar "blipmode" 0)
   (graphscr)
   (prompt "Z向归零:") (terpri)

   (princ "请选择要归零的实体")
   (setq s (ssget))
   (setq len (sslength s))
   (setq index 0)

   (repeat len
      (setq a (entget (ssname s index)))

      (setq b10 (assoc 10 a))
      (setq b11 (assoc 11 a))

      (setq x10 (cadr b10))
      (setq y10 (caddr b10))

      (setq x11 (cadr b11))
      (setq y11 (caddr b11))

      (setq b101 (cons 10 (list x10 y10 0)))
      (setq b111 (cons 11 (list x11 y11 0)))

      (setq a (subst b101 b10 a))
      (entmod a)
      (setq a (subst b111 b11 a))
      (entmod a)

      (setq index (+ index 1))
   )
   (princ "成功")
   (princ)
)

2.程序代码:

(defun c:z0()
          (setq cm0(getvar "cmdecho"))
          (setvar "cmdecho" 0)
          (princ "n n n")
          (setq ss(ssget))
          (while ss
               (command "move" ss "" "0,0,0" "0,0,1e99")
               (command "move" ss "" "0,0,1e99" "0,0,0")
               (setq ss(ssget))
          )
          (setvar "cmdecho" cm0)
)

3.

1.将画面ctrl+a全选
2.使用移动(m_)命令,输入第一点位置0,0,0 确定,然后输入第二点位置  
0,0,1e99(是数字一英语字母E和数字九九)确定
3.将画面ctrl+a全选
4.使用移动(m_)命令,输入第一点位置0,0,1e99 确定,然后输入第二点位置0,0,-1e99确定
5.使用移动(m_)命令,输入第一点位置0,0,-1e99 确定,然后输入第二点位置   0,0,0确定

这样Z轴就归零了,原理是将问题的点全部移至正无穷,再移至负无穷,最后再移回到0坐标

一般用第一种,一般均能解决,只是地形图往往很大,需要对计算机的要求较高~~

单位机器不行,家里的双核没问题哈哈