回望南山
记忆痕迹可以鲜明, 回望往事如数家珍——
posts - 177,  comments - 54,  trackbacks - 0


 
;;判断空间两直线平行,不考虑重合.by 狂刀.2005.12
;;参数: li1,li2 为直线实体名.
;;返回: 平行返回T,不平行返回nil.
(defun is= (li1 li2 / a b c b1 d1 d2)
  (setq a (vlax-curve-getfirstderiv li1 (vlax-curve-getstartparam li1))
        b (vlax-curve-getfirstderiv li2 (vlax-curve-getstartparam li2))
        d1 (vlax-curve-getDistAtParam li1 (vlax-curve-getEndParam li1))
 d2 (vlax-curve-getDistAtParam li2 (vlax-curve-getEndParam li2))
 ;将第二条直线改化成与第一条等长的向量;
 c (/ d1 d2)
 b (mapcar '* b (list c c c))
 ;反向向量;
 b1 (mapcar '* b (list -1 -1 -1))

  )
  (or (equal a b 1e-4)  ;同向向量;
      (equal a b1 1e-4) ;反向向量;
  )
)

;; 测试,命令c:is=
(defun c:is= ()
  (princ "\n判断空间两直线平行!")
  (setq li1 (car (entsel "\n选直线1:"))
          li2 (car (entsel "\n选直线2:"))
  )
  (is= (vlax-ename->vla-object li1) (vlax-ename->vla-object li2))
 )


(defun tk (en p / a b c)
  (princ (setq a (vlax-curve-getParamAtPoint en p)))
  (princ " ")
  (princ (angle p (vlax-curve-getPointAtDist en (+ 0.001 (vlax-curve-getDistAtPoint en p)))))
  (princ " ")
  (princ (angle '(202.5903 366.1556 0) p))
  (princ " ")
  (princ (vlax-curve-getfirstderiv en a))
  (princ " ")
)

(defun c:k ( / a b c)
  (setq li1 (car (entsel "\n选直线1:"))
         
  )
  (tk (vlax-ename->vla-object li1) (getpoint "\nget point:"))
)

posted on 2008-03-12 22:07 深藏记忆 阅读(348) 评论(0)  编辑  收藏 所属分类: Vlisp之韵

飘过是缘,相识最真

订阅到抓虾
google reader
gougou


点击这里给我发消息


<2008年3月>
2425262728291
2345678
9101112131415
16171819202122
23242526272829
303112345

常用链接

留言簿(5)

随笔分类

随笔档案

文章分类

文章档案

相册

收藏夹

八面来息

天天充电

同行者

积分与排名

  • 积分 - 59543
  • 排名 - 62

最新评论

阅读排行榜

评论排行榜