 - ;;MEFLYING
- ;;由於PT2,PT3非常非常接近,使ANG2变大了,而不等於0
- ;;这样的错误====>真是晕倒!!! 8-(;|
- 指令: TEST
- 选择第一点:------>选1的中点
- 选择第二点:------>选2的中点
- (89.1139 289.075 0.0)
- (89.1139 339.075 0.0)
- (89.1139 339.075 0.0)
- 1.5708--->ang1
- 89.11385688182042,339.0754448543191,0
- 89.11385688182036,339.0754448543191,0
- 0.785398----ang2
- (90.8816 340.843 0.0)
- (90.8816 290.843 0.0)
- (89.9977 339.959 0.0)
- (89.9977 289.959 0.0) nil
- |;(vl-load-com)
- (defun C:TEST (/ ENT1 ENT2 PT1 PT2 PT3 PT4 PT5 ANG1 ANG2)
- (setvar "cmdecho" 0)
- (command "_.undo" "be")
- (setvar "osmode" 39) ;抓取模式 add LUCAS
- (setq OS (getvar "osmode"))
- (setq PT1 (getpoint "选择第一点:"))
- (setq PT2 (getpoint PT1 "选择第二点:"))
- (setvar "osmode" 0)
- (setq ENT1 (ssname (ssget PT1 '((0 . "LINE"))) 0))
- (setq ENT2 (ssname (ssget PT2 '((0 . "LINE"))) 0))
- (setq PT3 (vlax-curve-getclosestpointto ENT2 PT1))
- (print PT1)
- (print PT2)
- (print PT3)
- (setq ANG1 (angle PT1 PT3))
- (print ANG1)
- (print)
- (prompt (strcat (rtos (car PT2) 2 20)
- ","
- (rtos (cadr PT2) 2 20)
- ","
- (rtos (last PT2) 2 20)
- )
- )
- (print)
- (prompt (strcat (rtos (car PT3) 2 20)
- ","
- (rtos (cadr PT3) 2 20)
- ","
- (rtos (last PT3) 2 20)
- )
- )
- (setq ANG2 (angle PT3 PT2))
- ;;由於PT2,PT3非常非常接近,使ANG2变大了,而不等於0
- ;;真是晕倒!!!
- (print ANG2)
- (setq PT4 (polar PT3 ANG2 2.5))
- (print PT4)
- (setq PT5 (polar PT1 ANG2 2.5))
- (print PT5)
- (command "_.line"
- (polar PT1 (+ ANG1 pi) 2.5)
- (polar PT3 ANG1 2.5)
- ""
- )
- (setq ENT3 (entlast))
- (command "_.line"
- (polar PT5 (+ ANG1 pi) 2.5)
- (polar PT4 ANG1 2.5)
- ""
- )
- (setq ENT4 (entlast)) (setq DIST (distance PT1 PT3))
- (setq PT4 (polar PT3 ANG2 1.25))
- (print PT4)
- (setq PT5 (polar PT1 ANG2 1.25))
- (print PT5)
- (command "_.trim"
- ENT3
- ENT4
- ""
- (list ENT1 PT5)
- (list ENT2 PT4)
- ""
- )
- (setvar "osmode" OS)
- (command "_.undo" "e")
- )
测试图 |