:)
在网上找了一下,有个功能类似的函数,可以大致使用一下,
不过还不是很好,在spline的时候不能及时反映曲线,这个问题涉及到在pline里面调用'zoom,应该可以写的更好的。
来源:google 的autolisp讨论区
http://groups.google.com/group/a ... 17#cb9427d8ad609042

- ;;;[url]http://groups.google.com/group/autodesk.autocad.customization/browse_thread/thread/2c7be821154011fb/cb9427d8ad609042?lnk=gst&q=pline+%27zoom&rnum=17#cb9427d8ad609042[/url]
- ;;; Jason Wilder
- (defun c:pll( / p1 p2 pset lset)
- (setq lset (ssadd))
- (setq p1 (getpoint "\nStart point: "))
- (setq pset (list p1))
- (setq p2 (getpoint p1 "\nNext point: "))
- (setq pset (cons p2 pset))
- (command "_line" p1 p2 "")
- (ssadd (entlast) lset)
- (command "_pan" p2 p1)
- (while (/= p2 NIL)
- (setq p1 p2)
- (setq p2 (getpoint p1 "\nNext Point: "))
- (if p2 (setq pset (cons p2 pset)))
- (command "_line" p1 p2 "")
- (ssadd (entlast) lset)
- (command "_pan" p2 p1)
- );while
- (command ".erase" lset "")
- (command ".pline")
- (foreach pt pset
- (command pt)
- )
- (command "")
- )
- (defun c:sll( / p1 p2 pset lset)
- (setq lset (ssadd))
- (setq p1 (getpoint "\nStart point: "))
- (setq pset (list p1))
- (setq p2 (getpoint p1 "\nNext point: "))
- (setq pset (cons p2 pset))
- (command "_line" p1 p2 "")
- (ssadd (entlast) lset)
- (command "_pan" p2 p1)
- (while (/= p2 NIL)
- (setq p1 p2)
- (setq p2 (getpoint p1 "\nNext Point: "))
- (if p2 (setq pset (cons p2 pset)))
- (command "_line" p1 p2 "")
- (ssadd (entlast) lset)
- (command "_pan" p2 p1)
- );while
- (command ".erase" lset "")
- (command ".spline")
- (foreach pt pset
- (command pt)
- )
- (command "")
- (command pause pause "")
- );defun
|