【请教】用什么办法实现多段线拟合
本帖最后由 wmz 于 2014-10-23 11:38 编辑;;;加入编码
(defun SetData (Obj Data / dxf)
(setqdxf (entget obj))
(setq data (list(list "SOUTH" (cons 1000 data))))
(foreach x Data
(regapp (car x))
(entmod (append dxf (list(cons -3 (list x)))))
)
)
(defun Hdgxhs (lst n bh h blc / XX xk LAY YS e)
(setq sw 34.26 BL (/ blc 1000.0))
(cond ((>= h sw)(setq LAY "DGX" XX "CONTINUOUS"))
((< h sw)(setq LAY "DSX" XX "X11"))
)
(cond ((= (rem h 5) 0)(setq XK (* 0.3 BL) YS 3))
((/= (rem h 5) 0)(setq XK (* 0.15 BL) YS 2))
)
(cond ((and(= (rem h 5) 0) (= LAY "DGX"))(setq xDATA "201102"))
((and(/= (rem h 5) 0)(= LAY "DGX"))(setq xDATA "201101"))
((and(= (rem h 5) 0) (= LAY "DSX"))(setq xDATA "186302"))
((and(/= (rem h 5) 0)(= LAY "DSX"))(setq xDATA "186301"))
)
(entmake (append
(list '(0 . "LWPOLYLINE")
'(100 . "AcDbEntity")
'(100 . "AcDbPolyline")
(cons 8 LAY)
(cons 62 Ys)
(cons 90 n)
(cons 6 xx)
(cons 43 xk)
(cons 38 h)
(cons 70 bh)
)
(mapcar '(lambda (pt)(cons 10 pt)) lst ))
)
(setq e (entlast))
(SetData e xDATA)
(command "_pedit" e "s" "L" "on" "");;;这一句太慢,代替这一句!
) 我的意思是用(vla-put-type e acQuadSplinePoly)是不是快一些?请G版主帮忙!
本帖最后由 llsheng_73 于 2014-10-23 19:17 编辑
(defun Hdgxhs(lst bh h blc / xk LAY e)
(if(not(tblsearch"appid""SOUTH"))(regapp "SOUTH"))
(setq sw 34.26 BL (/ blc 1000.0)
LAY(if(>= h sw)"DGX""DSX")
XK(*(IF(=(rem h 5)0)0.3 0.15)BL)
e(ENTMAKEx(LIST'(0 . "POLYLINE")'(100 . "AcDbEntity")'(100 . "AcDb2dPolyline")
(cons 8 LAY)
(cons 6 (if(>= h sw)"CONTINUOUS""X11"))
(cons 62 (IF(=(rem h 5)0)3 1))
(cons 70 (+ 4 bh)))))
(foreach x lst(entmakex(list'(0 . "VERTEX")(list 10 (car x)(cadr x) h)(cons 40 xk)(cons 41 xk))))
(ENTMAKE'((0 . "seqend")))
(entmod(append(entget e)(list(list -3(list"SOUTH"(cons 1000(cond((and(=(rem h 5)0)(="DGX"LAY))"201102")
((and(/=(rem h 5)0)(="DGX"LAY))"201101")
((and(=(rem h 5)0)(="DSX"LAY))"186302")
((and(/=(rem h 5)0)(="DSX"LAY))"186301"))))))))
)
十分感谢!程序写的太棒了!
但,仍然没有解决拟合问题(查特性时是拟合了,但依然是折线),而且扩展属性也没有加进去。
速度用了9秒(7000个三角形的等高线)。我那个如果屏蔽掉拟合那一句,即
(command "_pedit" e "s" "L" "on" ""),只要8秒,一加上这一句就达到14秒,我嫌他用时太长,故求助!
再次谢谢你!
页:
[1]