你现在可以借我的。。。
- (defun c:cce (/ lt osn oucs ss b d d1 ename elist cp r pn ps pw pe r2)
- (command "cmdecho" (getvar "cmdecho"))
- (setq lt "center")
- (if (= (tblsearch "ltype" lt) nil)
- (command "-linetype" "l" lt "acad.lin" ""))
- (princ "\n Center cross: ")
- (cond
- ((setq ss (ssget '((-4 . "<OR")
- (0 . "CIRCLE,ARC,ELLIPSE")
- (-4 . "OR>")
- )
- )
- )
- (setq b (sslength ss)) ; = number of circles in ss
- (setq d b)
- (repeat b
- (setq d1 (1- d)
- ename (ssname ss d1) ; = last entity in ss
- elist (entget ename)
- cp (cdr (assoc 10 elist))
- r (cdr (assoc 40 elist))
- d (* r 1.5) ; greater this number, greater overlap of center lines (%)
- pn (polar cp (* pi 0.5) d)
- ps (polar cp (* pi 1.5) d)
- pw (polar cp pi d)
- pe (polar cp 0 d)
- d d1
- r2 (* r 0.25)
- )
- ;(setvar "osmode" 0)
- (entmake (list
- (cons 0 "LINE")
- (cons 6 lt)
- (cons 62 3)
- (cons 10 pn)
- (cons 11 ps)
- (cons 48 r2)
- (cons 210 (list 0.0 0.0 1.0))
- )
- )
- (entmake (list
- (cons 0 "LINE")
- (cons 6 lt)
- (cons 62 3)
- (cons 10 pw)
- (cons 11 pe)
- (cons 48 r2)
- (cons 210 (list 0.0 0.0 1.0))
- )
- )
- )
- )
- (T (princ "\n No circle selected! "))
- )
- (if (not (tblsearch "ltype" lt))
- (princ (strcat "\n Linetype "" lt "" was not loaded."))
- )
- (princ)
- )
- (prompt "\n Type < cce > for circle or arc center lines")
|