马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
 - (defun c:XDTB_PLTaper (/ dis segs #last #swid lens i e ss var)
- (defun _process (e)
- (setq dis (xdrx_getpropertyvalue e "length")
- segs (xdrx_getpropertyvalue e "allsegs")
- #last 0.0
- #swid 0.0
- lens (mapcar '(lambda (x)
- (xdge::getpropertyvalue x "length")
- (setq #last (+ #last #length)
- wids (list #swid
- (* #xd_var_global_endwid (/ #last dis))
- )
- )
- (setq #swid (last wids))
- wids
- )
- segs
- )
- i 0
- lens (mapcar '(lambda (x)
- (setq i (1+ i))
- (list (+ (car x) #xd_var_global_startwid)
- (if (/= i (length segs))
- (+ #xd_var_global_startwid (cadr x))
- (cadr x)
- )
- )
- )
- lens
- )
- i 0
- )
- (repeat (xdrx_polyline_numverts e)
- (xdrx_polyline_setwidthsat
- e
- i
- (car (nth i lens))
- (cadr (nth i lens))
- )
- (setq i (1+ i))
- )
- )
- (if (and (xdrx_initssget "\n选择要处理的多段线<退出>:")
- (setq ss (xdrx_ssget '((0 . "*polyline"))))
- )
- (progn (xdrx_begin)
- (if (not #xd_var_global_startwid)
- (setq #xd_var_global_startwid 1.0)
- )
- (if (setq var (getreal (xdrx_prompt
- "\n起始宽度<"
- #xd_var_global_startwid
- ">:"
- t
- )
- )
- )
- (setq #xd_var_global_startwid var)
- )
- (if (not #xd_var_global_endwid)
- (setq #xd_var_global_endwid 2.0)
- )
- (if (setq var
- (getreal
- (xdrx_prompt "\n起始宽度<" #xd_var_global_endwid ">:" t)
- )
- )
- (setq #xd_var_global_endwid var)
- )
- (setq #swid #xd_var_global_startwid)
- (mapcar '(lambda (x) (_process x)) (xdrx_pickset->ents ss))
- (xdrx_end)
- )
- )
- (princ)
- )
|