请尝试以下操作:
- ([color=BLUE]defun[/color] c:p2c ( [color=BLUE]/[/color] _vertices _vertices1 _vertices2 _pointaverage e i r s )
- ([color=BLUE]setq[/color] r 0.1) [color=GREEN];; Circle Radius[/color]
- ([color=BLUE]defun[/color] _vertices ( l )
- ([color=BLUE]if[/color] ([color=BLUE]eq[/color] [color=MAROON]"LWPOLYLINE"[/color] ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] 0 l)))
- (_vertices1 l)
- (_vertices2 ([color=BLUE]entnext[/color] ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] -1 l))))
- )
- )
-
- ([color=BLUE]defun[/color] _vertices1 ( l [color=BLUE]/[/color] p )
- ([color=BLUE]if[/color] ([color=BLUE]setq[/color] p ([color=BLUE]assoc[/color] 10 l))
- ([color=BLUE]cons[/color] ([color=BLUE]cdr[/color] p) (_vertices1 ([color=BLUE]cdr[/color] ([color=BLUE]member[/color] p l))))
- )
- )
- ([color=BLUE]defun[/color] _vertices2 ( e )
- ([color=BLUE]if[/color] ([color=BLUE]eq[/color] [color=MAROON]"VERTEX"[/color] ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] 0 ([color=BLUE]entget[/color] e))))
- ([color=BLUE]cons[/color] ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] 10 ([color=BLUE]entget[/color] e))) (_vertices2 ([color=BLUE]entnext[/color] e)))
- )
- )
-
- ([color=BLUE]defun[/color] _pointaverage ( l [color=BLUE]/[/color] x )
- ([color=BLUE]setq[/color] x ([color=BLUE]length[/color] l))
- ([color=BLUE]mapcar[/color] '[color=BLUE]/[/color] ([color=BLUE]apply[/color] '[color=BLUE]mapcar[/color] ([color=BLUE]cons[/color] '[color=BLUE]+[/color] l)) ([color=BLUE]list[/color] x x))
- )
- ([color=BLUE]if[/color] ([color=BLUE]setq[/color] s ([color=BLUE]ssget[/color] [color=MAROON]"_:L"[/color] '((0 . [color=MAROON]"*POLYLINE"[/color]))))
- ([color=BLUE]repeat[/color] ([color=BLUE]setq[/color] i ([color=BLUE]sslength[/color] s))
- ([color=BLUE]setq[/color] e ([color=BLUE]entget[/color] ([color=BLUE]ssname[/color] s ([color=BLUE]setq[/color] i ([color=BLUE]1-[/color] i)))))
- ([color=BLUE]if[/color] ([color=BLUE]entmake[/color]
- ([color=BLUE]list[/color]
- '(0 . [color=MAROON]"CIRCLE"[/color])
- ([color=BLUE]assoc[/color] 008 e)
- ([color=BLUE]cons[/color] 010 (_pointaverage (_vertices e)))
- ([color=BLUE]cons[/color] 040 r)
- ([color=BLUE]cond[/color] (([color=BLUE]assoc[/color] 006 e)) ('(006 . [color=MAROON]"BYLAYER"[/color])))
- ([color=BLUE]cond[/color] (([color=BLUE]assoc[/color] 039 e)) ('(039 . 0.0)))
- ([color=BLUE]cond[/color] (([color=BLUE]assoc[/color] 062 e)) ('(062 . 256)))
- ([color=BLUE]cond[/color] (([color=BLUE]assoc[/color] 370 e)) ('(370 . -1)))
- ([color=BLUE]assoc[/color] 210 e)
- ([color=BLUE]assoc[/color] 410 e)
- )
- )
- ([color=BLUE]entdel[/color] ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] -1 e)))
- )
- )
- )
- ([color=BLUE]princ[/color])
- )
|