马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
 - (defun c:tt (/ e d1 d2 index lst p p+ p- p1 p2 p3)
- (if (and (setq e (xdrx_entsel
- "\n拾取多义线: "
- '((0 . "lwpolyline") (-4 . "&=") (70 . 1))
- )
- )
- (setq d1 (getdist (cadr e) "\n宽度: "))
- (setq d2 (getdist (cadr e) "\n深度: "))
- (setq p (cadr e))
- )
- (progn
- (if (not (xdrx_curve_direction (car e)))
- (xdrx_curve_reverse (car e))
- );_保证逆时针
- (setq p (apply 'xdrx_curve_getclosestpoint e)
- e (car e)
- )
- (while p
- (setq index (xd::polyline:nearindex e p);_拾取点最近的顶点
- lst (xd::polyline:-Index+ e index);_前后索引点
- p (xdrx_polyline_getpointat e index)
- p- (xdrx_polyline_getpointat e (car lst))
- p+ (xdrx_polyline_getpointat e (cadr lst))
- )
- (if (minusp (xd::pnts:area (list p- p p+)));_构成内角
- (progn
- (setq p1 (polar p (angle p p-) d1)
- p2 (polar p1 (angle p+ p) d2)
- p3 (polar p (angle p+ p) d2)
- )
- (xdrx_polyline_addvertexat e index p1)
- (xdrx_polyline_addvertexat e (1+ index) p2)
- (xdrx_polyline_setpointat e (+ 2 index) p3)
- )
- )
- (setq p (getpoint "\nNear Point: "))
- )
- )
- )
- (princ)
- )
|