因为这几乎就是你想要的开始。
- (defun c:Bubble (/ *error* p1 p2 nu dia di)
- (setvar "cmdecho" 0)
- (command "undo" "begin")
- (defun *error* (msg)
- (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
- (princ (strcat "\n** Error: " msg " **"))
- )
- (command "undo" "end")
- (setvar "cmdecho" 1)
- (princ)
- )
- (if
- (and
- (setq p1 (getpoint "\nSpecify first point: "))
- (setq p2 (getpoint p1 "\nSpecify second point: "))
- (setq di
- (/
- (distance p1 p2)
- (1+ (setq nu (getint "\nNumber of circles: ")))
- )
- )
- (setq dia (getdist "\nDiameter of circles: "))
- )
- (repeat nu
- (entmakex
- (list
- (cons 0 "CIRCLE")
- (cons 10 (setq p1 (polar p1 (angle p1 p2) di)))
- (cons 8 "0")
- (cons 40 (* dia 0.5))
- )
- )
- )
- )
- (command "undo" "end")
- (setvar "cmdecho" 1)
- (princ)
- )
|