马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
由mf7000的发帖引申,参考:http://www.xdcad.net/forum/showt ... tid=49258#post49258
做了一个lsp,另一种写法。
增加 M-厚度反相/ <拉伸到指定点高度>,对多个不同z高度多义线拉伸厚度到同一高度有效(此时厚度不同)
- [FONT=courier new]
- ;;plth多义线拉伸厚度v1.0-----------www.xdcad.net--dreamsky.lxx.梦断江南.2002.7
- (defun c:plth ();( / ptz ss i pt1 pt2 thk ent i entl lpz lpth)
- (princ "\n plth多义线拉伸厚度v1.0------------www.xdcad.net--dreamsky.lxx.梦断江南.2002.7")
- (initget " X Y Z D M " )
- (setq ptz (getstring "\n X-高度按两点x差值/Y/Z/D-距离定拉伸高度/M-厚度反相/<拉伸到指定点高度>:")
- ss (ssget '((0 . "*LINE,ARC,CIRCLE,ELLIPSE")))
- i 0)
- (cond
- ((wcmatch ptz "[xXyYzZdD]")
- (setq pt1 (getpoint "\n第一点:")
- pt2 (getpoint pt1 "\n第二点:")
- thk (cond ((wcmatch ptz "[xX]")(- (car pt2)(car pt1)) )
- ((wcmatch ptz "[yY]")(- (cadr pt2)(cadr pt1)) )
- ((wcmatch ptz "[zZ]")(- (caddr pt2)(caddr pt1)) )
- ((wcmatch ptz "[dD]")(distance pt1 pt2) )
- )
- );end setq
- (if thk (COMMAND "_.CHPROP" ss "" "T" thk ""))
- );end case1
- (T
- (if (= "" ptz) (setq ptz (caddr (getpoint "\n指定高度点:"))))
- (repeat (sslength ss)
- (setq ent (ssname ss i)
- i (1+ i)
- entl (entget ent)
- lpz (cdr (assoc 38 entl))
- lpth (cdr (assoc 39 entl)))
- (cond
- ((or (= "m" ptz)(= "M" ptz))(setq lpth (- 0 lpth)))
- (t (setq lpth (- ptz lpz)))
- );end cond
- (setq entl2 (subst (cons 39 lpth)(assoc 39 entl) entl))
- (entmod entl2)
- );end repeat
- );;end case2
- );;end cond
- (princ)
- )
- [/FONT]
|