本帖最后由 xyp1964 于 2012-4-21 11:50 编辑
 - ;; dmx(断面线) 伪源码需要e派工具箱的支持
- (defun c:dmx (/ ilst ll1 ll2)
- (cmdla0)
- (defun main-pro (/ ss i s1)
- (while (and (setq e1 (entsel "\n选择曲线<退出>: "))
- (setq s1 (car e1))
- (xyp-curve-check s1)
- )
- (setq pt (cadr e1)
- pt (osnap pt "nea")
- l0 (xyp-Get-LengthAtPoint s1 pt)
- l1 (- l0 dist)
- l2 (+ l0 dist)
- ll (xyp-get-CurveLength s1)
- )
- (if (and (> l1 0) (< l2 ll))
- (progn
- (setq s0 (entlast)
- p1 (xyp-Get-CurvePointAtDist s1 l1)
- p2 (xyp-Get-CurvePointAtDist s1 l2)
- p3 (xyp-get-MidPointdn p1 pt wide)
- p4 (xyp-get-MidPointup pt p2 wide)
- )
- (xyp-BreakE s1 p1 p2)
- (setq s2 (entlast)
- s3 (xyp-Entmake-lwPolyline (list p1 p3 p4 p2) nil)
- ss (xyp-SSelEntnext s0)
- ss (ssadd s1 ss)
- )
- (xyp-PeditJoin ss 0)
- )
- )
- )
- )
- (setq ll1 '(dist wide)
- ll2 '(300. 300.)
- )
- (defun ajbcs () (xyp-Multiple-Settile ll1 ll2))
- (xyp-initSet ll1 ll2)
- (setq ilst '(("" "参数" ":boxed_column{")
- ("dist" "宽(D)" "real" "8")
- ("wide" "高(W)" "real" "8")
- "spacer;"
- "}"
- "spacer;"
- ("jbcs" "缺省参数" "button1" "(ajbcs)")
- "spacer;"
- )
- )
- (if (= (xyp-Dcl-Init Ilst "【断面线】" t) 1)
- (main-pro)
- )
- (cmdla1)
- )
|