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

;;中西文拆分 By Eachy
(defun yb:string_split (str / strlst strlst1 hz_str e_str)
  (setq strlst (vl-string->list str)
 strlst1 '()
  )
  (while strlst
    (cond
      ((> (car strlst) 159)
       (setq e_str nil)
       (if hz_str
  (setq hz_str (append (list (car strlst)) hz_str))
  (setq hz_str (list (car strlst)))
       )
       (setq strlst (cdr strlst))
       (if (or (< (car strlst) 159)
        (= strlst "")
    )
  (if strlst1
    (setq strlst1 (append strlst1 (list hz_str)))
    (setq strlst1 (list hz_str))
  )
       )
      )
      ((< (car strlst) 159)
       (setq hz_str nil)
       (if e_str
  (setq e_str (append (list (car strlst)) e_str))
  (setq e_str (list (car strlst)))
       )
       (setq strlst (cdr strlst))
       (if (or (> (car strlst) 159)
        (= strlst "")
    )
  (if strlst1
    (setq strlst1 (append strlst1 (list e_str)))
    (setq strlst1 (list e_str))
  )
       )
      )
    )
  )
  (mapcar 'vl-list->string (mapcar 'reverse strlst1))
)




返回多义线的所有端点
(SETQ pts (MAPCAR 'CDR (VL-REMOVE-IF '(LAMBDA (x) (/= 10 (CAR x))) (entget (car entsel)))))
               


;;;获取实体的中点.
(defun GetMiddlePoint ( ename / oname param CurveLen MidPt )
(setq
    oname    (vlax-ename->vla-object ename)
    param    (vlax-curve-getEndParam oname)                        ; End parameter
    CurveLen (vlax-curve-getDistAtParam oname param)
    param    (vlax-curve-getParamAtDist oname (* 0.5 CurveLen))
    MidPt    (vlax-curve-getPointAtParam oname param)
)
(vlax-release-object oname)
MidPt
)

;;;获取实体的中点.
;|
(defun cmidp (ent)
  (vlax-curve-getpointatparam
    ent
    (/ (vlax-curve-getendparam ent) 2.)
  )
)
;;;获取实体的中点.
|;
(defun xdl-curve-midp (ent / p)
  (if (not (vl-catch-all-error-p
      (setq p (vl-catch-all-apply
         'vlax-curve-getpointatparam
         (list
    ent
    (vl-catch-all-apply
      '/
      (list (vl-catch-all-apply
       'vlax-curve-getendparam
       (list ent)
     )
     2.
      )
    )
         )
       )
      )
    )
      )
    p
  )
  p
)





判断一点是否在曲线段的指定距离内

(defun bein (pt a b / lst)
(setq lst (mapcar '(lambda(x)(vlax-curve-getparamatpoint obj x))(list a pt b)))
(or (apply '< lst)(apply '> lst))
)

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

飘过是缘,相识最真

订阅到抓虾
google reader
gougou


点击这里给我发消息


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

常用链接

留言簿(5)

随笔分类

随笔档案

文章分类

文章档案

相册

收藏夹

八面来息

天天充电

同行者

积分与排名

  • 积分 - 58689
  • 排名 - 61

最新评论

阅读排行榜

评论排行榜