iCAx开思网

标题: 旋转技巧 [打印本页]

作者: laihz    时间: 2006-10-30 13:27
标题: 旋转技巧
请问那位知道如何把一个不知道角度的东西旋转到跟另一个平行?以前有这样的贴但是我找了半天没找到那位好心人千知一下不胜感激!
作者: Joseph Lin    时间: 2006-10-30 14:08
ROTATE(r)
作者: Joseph Lin    时间: 2006-10-30 14:10
ROTATE(r)
作者: xubojian    时间: 2006-10-30 14:30
(defun c:par ()
(setq ent_1 nil
       ent (entsel "\nSelect a Line:"))
(while ent
  (setq ent_nam1 (cdr (assoc 0 (entget (car ent)))))
  (if (/= "LINE" ent_nam1)
   (progn
    (princ "\nOnly a Line can be Selected")
    (setq ent (entsel "\nSelect a Line again:"))
   )
   (setq ent_1 ent ent nil)
  )
)
(if ent_1
  (progn
   (setq ent_2 nil
         ent (entsel "\nSelect another Line:"))
   (while ent
    (setq ent_nam2 (cdr (assoc 0 (entget (car ent)))))
    (if (/= "LINE" ent_nam2)
     (progn
      (princ "\nOnly a Line can be Selected")
      (setq ent (entsel "\nSelect another Line again:"))
     )
     (setq ent_2 ent ent nil)
    )
   )
  )
)
(if (and ent_1 ent_2)
  (progn
   (setq old_ent1 (entget (car ent_1))
         old_ent2 (entget (car ent_2))
         end_pt1 (trans (cdr (assoc 10 old_ent1)) 0 1)
         end_pt2 (trans (cdr (assoc 11 old_ent1)) 0 1)
         end_pt3 (trans (cdr (assoc 10 old_ent2)) 0 1)
         end_pt4 (trans (cdr (assoc 11 old_ent2)) 0 1)
         ent_pt1 (cadr ent_1)
         ent_pt2 (cadr ent_2))
   (if (<= (distance ent_pt1 end_pt1) (distance ent_pt1 end_pt2))
    (setq ent_ang (angle end_pt1 end_pt2))
    (setq ent_ang (angle end_pt2 end_pt1))
   )
   (if (<= (distance ent_pt2 end_pt3) (distance ent_pt2 end_pt4))
    (setq ent_id 11 end_pt (polar end_pt3 ent_ang (distance end_pt3 end_pt4)))
    (setq ent_id 10 end_pt (polar end_pt4 ent_ang (distance end_pt3 end_pt4)))
   )
   (setq new_ent (subst (cons ent_id (trans end_pt 1 0)) (assoc ent_id old_ent2) old_ent2))
   (entmod new_ent)
  )
)
(princ)
)
作者: nite37    时间: 2006-10-30 17:30
林老师!!~!!好久不见!
作者: laihz    时间: 2006-10-31 08:30
谢谢各位!我做出来了!非常感谢!




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3