 - (PROMPT "\n作者:流河 QQ:859779429")
- (PROMPT "\n 快捷键 TT")
- (DEFUN C:TT (/ THISDRAWING PT1 PT2 PLST E)
- (setq thisdrawing
- (vla-get-activedocument
- (vlax-get-acad-object)
- )
- )
- (VLA-STARTUNDOMARK THISDRAWING)
- (setq
- pt1 (getpoint (STRCAT "\n窗交对象:指定角点1"))
- )
- (if (not pt1)
- (vl-exit-with-value 0)
- )
- (setq pt2 (getcorner pt1 (STRCAT "\n窗交对象:指定角点2:")))
- (IF (NOT PT2)
- (VL-EXIT-WITH-VALUE 0)
- )
- (SETQ PLST (LIST PT1 PT2)
- PLST (VL-SORT PLST
- (FUNCTION (LAMBDA (E1 E2) (> (CAR E1) (CAR E2))))
- )
- PLST (LIST (CAR PLST)
- (LIST (CAR (CAR PLST)) (CADR (CADR PLST)))
- (CADR PLST)
- )
- PLST (LIST (CAR PLST)
- (POLAR (CADR PLST)
- (ANGLE (CADR PLST) (LH:MID PT1 PT2))
- (* 0.3 (DISTANCE (CADR PLST) (LH:MID PT1 PT2)))
- )
- (CADDR PLST)
- )
- E (LH:MakeLWPOLYLINE PLST)
- )
- (IF (NOT (tblsearch "LTYPE" "ACAD_ISO02W100"))
- (vl-catch-all-apply
- 'vla-Load
- (list (vla-get-Linetypes
- (vla-get-ActiveDocument (vlax-get-acad-object))
- )
- "ACAD_ISO02W100"
- "acad.lin"
- )
- )
- )
- (vla-put-Linetype (vlax-ename->vla-object E) "ACAD_ISO02W100")
- (vla-put-LinetypeScale
- (vlax-ename->vla-object E)
- (ABS (* (DISTANCE (CAR PLST) (CADDR PLST)) 0.01))
- )
- (vla-endundomark thisdrawing)
- (princ)
- )
- (defun LH:MID (po1 po2)
- (MAPCAR '(lambda (X Y) (* (+ X Y) 0.5)) po1 po2)
- )
- ;;167.3 [功能] Entmake点表生成多段线
- (defun LH:MakeLWPOLYLINE (lst / PT)
- (entmakeX
- (append
- (list '(0 . "LWPOLYLINE")
- '(100 . "AcDbEntity")
- '(100 . "AcDbPolyline")
- (cons 90 (length lst))
- )
- (mapcar '(lambda (pt) (cons 10 pt)) lst)
- )
- )
- )
|