Community
AutoCAD Forum
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Donuts keep getting cut in half. Half donuts dissaiperaing

12 REPLIES 12
SOLVED
Reply
Message 1 of 13
cadmantony
3018 Views, 12 Replies

Donuts keep getting cut in half. Half donuts dissaiperaing

Having a strange problem. Used a donut symbol to resemble a light for a project and we have hundreds on the plan. Finsihed the plan. Then later called teh plan back up and all the donuts were now hald donuts. Cannot figure out why. Any thougths on this? using autocad 2015. We have since made a block out of the donuts to fix the problem. No matter what we tried all the donuts would remain as half donuts. Pretty strange.

 

Thanks for the help.

Tags (1)
12 REPLIES 12
Message 2 of 13
JDMather
in reply to: cadmantony

Can you attach an example file that exhibits this behavior (only need the geometry in question)?


-----------------------------------------------------------------------------------------
Autodesk Inventor 2019 Certified Professional
Autodesk AutoCAD 2013 Certified Professional
Certified SolidWorks Professional


Message 3 of 13
cadmantony
in reply to: JDMather

Sure, thanks for looking into this. It's a real head-scratcher.

 The half donuts indicated in the attached CAD file where originally inserted as full circle donuts. They appeared as half donuts after saving, closing and reopening file.

  Thanks,   Tony

Message 4 of 13
hgasty1001
in reply to: cadmantony

Hi,

 

It seems like someone folded the lower half donut into the upper half, there are 2 polylines for each half donut, also they are not of the same color, maybe the result of a joke or prank.

 

Gaston Nunez

 

 

 

 

Message 5 of 13
cadmantony
in reply to: hgasty1001

No, there are two there ontop of each other because we went back and added another donut ontop to fix the problem. Saved exit and called back up and was half a donut again. Two half donuts ontop of eachotehr. yumm but is not the desired result. 😉

Message 6 of 13
Kent1Cooper
in reply to: cadmantony

When you select one, does Properties say it's Closed?  Maybe it got selected and somehow got that switched to No in Properties, which would have the result you describe.  If that's the problem, you could select them all at once, and pick Yes for that.

Kent Cooper, AIA
Message 7 of 13
pkolarik
in reply to: cadmantony

Have you used the Overkill command on the drawing? That can cut donuts in half like what your drawing is showing if you don't check the box labeled "Do Not Break Polylines"

Message 8 of 13
cadmantony
in reply to: pkolarik

Pkolarik,

You nailed it!  That was the problem. When plan was complete, zoomed way out. Overkill, save, exit. I jsut tested that out. Yep! Need to have "Do Not Break Polyline" checked before ovekilling. Thanks so much. Never would have figured that out!

 

 

   

Message 9 of 13
ejjackson925
in reply to: cadmantony

Is there a command to fix the halved donuts?
Message 10 of 13
Patchy
in reply to: ejjackson925

Half of donut is an arc, what do you want the arc to be ? a circle or a full donut ?

Message 11 of 13
ejjackson925
in reply to: Patchy

Some of my donuts need to be circles and some a full donut. Solutions for both would be nice. Thanks,
Message 12 of 13
Patchy
in reply to: ejjackson925

Circle to donut, use this:

 

(defun c:Circle2Donut ( / c i l r s ) (vl-load-com)
;; © Lee Mac 2011

(if (setq s (ssget "_:L" '((0 . "CIRCLE"))))
(repeat (setq i (sslength s))
(setq l (entget (ssname s (setq i (1- i))))
r (cdr (assoc 40 l))
c (cdr (assoc 10 l))
)
(if
(entmakex
(append
'(
(0 . "LWPOLYLINE")
(100 . "AcDbEntity")
(100 . "AcDbPolyline")
(90 . 2)
(70 . 1)
)
(vl-remove-if '(lambda ( x ) (member (car x) '(-1 0 5 10 40 100 330))) l)
(list
(cons 43 r)
(cons 10 (polar c pi (/ r 2.)))
(cons 42 1)
(cons 10 (polar c 0. (/ r 2.)))
(cons 42 1)
(assoc 210 l)
)
)
)
(entdel (cdr (assoc -1 l)))
)
)
)
(princ)
)

 

*****************************************************************************************************

 

 

Arc to circle, use this:

 



; ATC.LSP V1.0

; by Zoltan Toth

; ZOTO Technologies,

; 23 Greenhills Dve,

; Melton 3337.

; E-MAIL: zoltan.toth@ains.net.au

; WWW: http://www.ains.net.au/zoto/

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; This program takes any number of arcs and converts them into circles.

; Each circle is a new object with all the properties of the arc it

; replaces. Non-arc objects are ignored.

;

;*****************************************************************************

(defun C:ATC (/ CTR2 CTR3 D2 SS2 OBN2 OBD2 OBD3)

(setq CTR2 0) ;initialize CTR2 for object counter

(prompt "\nSelect arcs to convert to circles: ")

(setq SS2 (ssget '((0 . "ARC")))) ;create selection set with arcs only

(repeat (sslength SS2) ;repeat for each object

(setq OBN2 (ssname SS2 CTR2)) ;get object name

(setq OBD2 (entget OBN2)) ;get object data lists

;substitute CIRCLE in assoc. 0

(setq OBD2 (subst (cons 0 "CIRCLE")(assoc 0 OBD2) OBD2))

(setq CTR3 (1- (length OBD2))) ;set CTR3 to 1 less than size of OBD2

(repeat (length OBD2) ;repeat for each list in OBD2

(setq D2 (nth CTR3 OBD2)) ;set D2 to an association list from the arc

;;;;

;if association list is neither a start or end angle,

;copy the association list to OBD3

(if (and (/= 50 (car D2))(/= 51 (car D2))) ;check for assoc. 50 & 51

(setq OBD3 (cons D2 OBD3)) ;copy assoc. list to OBD3

)

(setq CTR3 (1- CTR3)) ;decrement counter CTR3

) ;end of second (repeat)

(entdel OBN2) ;delete arc

(entmake OBD3) ;make circle

(setq OBD3 nil) ;set OBD3 to (nil)

(setq CTR2 (1+ CTR2)) ;increment object counter

) ;end of first (repeat)

(princ) ;exit quietly

)

 

 

Message 13 of 13
Kent1Cooper
in reply to: ejjackson925


@ejjackson925 wrote:
Is there a command to fix the halved donuts?

Welcome to these Forums!

 

Have you tried my suggestion in Post 6?  That should work if they simply became un-closed somehow.  But depending on exactly how that happened, it may be possible that they could be closed into D shapes instead of full Donuts [closed with a line segment rather than an arc segment -- it depends on the bulge factor code for the end vertex of the Polyline].  If that happens, it could probably be overcome, but let us know if that's the case first.

 

[I have a routine that closes Arcs into Circles, and it can accept a one-arc-segment Polyline, but only if it's geometrically equivalent to an Arc, meaning it has no width.  So that wouldn't do to close a Donut with width, but it's probably what I'd start from to make something that does.]

 

EDIT:  I'm attaching that routine [ArcClose.lsp with its AC command], in case you can use it for some things.  The advantage over the ATC command that @Patchy posted is that it will accept selection of half-Donuts [that is, Polylines of one half-circle arc segment, or for that matter of one arc segments whether or not it's a half-circle].  But as I said, only [as currently written] if they have no width.  It could easily be made to accept them with width, by removing one filter element, but like both the routines Patchy posted, any width of a Donut will not be preserved, because the way it does those is to Explode them into Arcs, and then close those into Circles.  That's what I'd work to modify about it if you need them converted not into Circles, but into fully-closed Donuts with their original width.

Kent Cooper, AIA

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report

”Boost