本帖最后由 st788796 于 2014-10-12 09:11 编辑
一个用法示例,原帖 http://bbs.xdcad.net/forum.php?m ... =676272&pid=3531763
用 c:cal 代替 api 函数, xd::curve:numdiv 中的 api 函数均有对应的 vlax-curve 类函数
 - (defun c:tt (/ e d d1)
- (if (and (setq e (entsel))
- (xd::pnt:mark (vlax-curve-getstartpoint (car e)) 1) ;_标记起点
- (xd::pnt:drawarrow
- (vlax-curve-getstartpoint (car e))
- (vlax-curve-getfirstderiv (car e) 0.)
- 2
- ) ;标示曲线方向
- (setq d (getdist (cadr e) "\n间距:"))
- (setq d1 (getdist (cadr e) "\n线长: "))
- )
- (progn
- (setq lst (XD::Curve:NumDiv (car e) nil nil d))
- (mapcar
- '(lambda (x / v v1)
- (setq v (cadr x)
- v (c:cal "nor(v)") ;_垂向量
- v1 (c:cal "d1*v") ;_放大的指定长度
- ;;p1 (car x)
- ;;p1 (c:cal "p1+v1")
- p1 (mapcar '+ (car x) v1)
- )
- (entmake (list '(0 . "line") (cons 10 (car x)) (cons 11 p1))) ;_绘制短线
- )
- lst
- )
- (redraw)
- )
- )
- (princ)
- )
|