本帖最后由 作者 于 2004-12-25 19:53:05 编辑
;必须以原图为基准作拉伸处理,否则会出错。- (defun c:test022 ()
- (while (setq s1 (entsel "\n\t选择对象<退出> : "))
- (setq eobj (vlax-ename->vla-object (car s1))
- pt0 (vlax-curve-getPointAtParam eobj 0)
- pt1 (vlax-curve-getPointAtParam eobj 1)
- pt2 (vlax-curve-getPointAtParam eobj 2)
- pt3 (vlax-curve-getPointAtParam eobj 3)
- pt4 (vlax-curve-getPointAtParam eobj 4)
- pt5 (vlax-curve-getPointAtParam eobj 5)
- pt6 (vlax-curve-getPointAtParam eobj 6)
- pt7 (vlax-curve-getPointAtParam eobj 7)
- pt8 (vlax-curve-getPointAtParam eobj 8)
- pt9 (vlax-curve-getPointAtParam eobj 9)
- B (abs (distance pt0 pt1))
- A (abs (distance pt1 pt2))
- AH (abs (distance pt2 pt3))
- pt-BH (inters (_midP pt0 pt1)
- (_midPUP pt0 pt1 100)
- pt4
- pt5
- nil
- )
- BH (abs (distance (_midP pt0 pt1) pt-BH))
- c (abs (distance pt0 pt9))
- pt-cH (inters (_midP pt0 pt9)
- (_midPUP pt0 pt9 100)
- pt6
- pt5
- nil
- )
- CH (abs (distance (_midP pt0 pt9) pt-cH))
- D (abs (distance pt8 pt9))
- DH (abs (distance pt8 pt7))
- num (+ (/ a ah) (/ b bh) (/ c ch) (/ d dh))
- )
- (grvecs (list 1
- pt8
- pt9
- 1
- pt9
- pt0
- 1
- pt0
- pt1
- 1
- pt1
- pt2
- 2
- pt2
- pt3
- 2
- pt7
- pt8
- 2
- pt-ch
- (_midP pt0 pt9)
- 2
- pt-bh
- (_midP pt0 pt1)
- )
- )
- (princ "\n数值 = ")
- (princ num)
- )
- (princ)
- )
- (defun _midp (p1 p2)
- (list (+ (/ (- (car p1) (car p2)) 2) (car p2))
- (+ (/ (- (cadr p1) (cadr p2)) 2) (cadr p2))
- )
- )
- (defun _midPUP (pta ptb fb)
- (polar (_midP pta ptb) (+ (angle pta ptb) (/ pi 2)) fb)
- )
|