Eric, Some time ago, I experimented with a file format of my own (Yet Another CAD= File Format!) What I did was have a link field which would allow one CAD entity to be par= t of another. So, for example, your polyline would describe the first section, then link tothe arc, then link back to the remainder of the polyline. Ostensibly this would describe one entity. The purpose of the link was really to provide a 'group' mechanism, but I do= n't see why it couldn't do what you need. Dave Coventry --- Eric Wilhelm <ewilhelm@xxxxxxxxxxxxx> wrote: Fr= om: Eric Wilhelm <ewilhelm@xxxxxxxxxxxxx> Date: Fri, 15 Oct 2004 1= 6:16:12 -0500 To: cad-linux-dev@xxxxxxxxxxxxx Subject: [cad-linux-dev= ] Re: bumpy polylines # The following was supposedly scribed by #= Chris Somerlot # on Friday 15 October 2004 01:07 pm: >>Th= e dxf allows you to describe a filleted or rounded lwpolyline by >>= ; using a bulge factor. >> >> >>The question is= : how should this fit into rhizopod's 'polyline' >>entity (or sho= uld it.) > >I'm of the opinion it should be broken down into mo= re basic elements >of arcs and lines, and that the polyline entitiy s= hould consist of >links. This would take care of splines as well. = Well, that starts to sound about like a block. I don't think it is worth it to do this just to store curved polylines. Also, I don't wan= t to get too much of the rhizopod format tied-up in links between entit= ies. It may be that the qcad or pythoncad connectors need to explode= these curved polylines, but we should be able to put them back where w= e found them between dxf and rhizopod. Maybe the bulges should b= e stored as an arc (but inline to the polyline.) This makes it easy to= explode them (and does a better job of passing the grep litmus test.) That means that the dxf <-> rhizopod connection is the only pl= ace that has to worry about the 'bulge math' (or is this a fairly commo= n way of describing an arc?) --- # ./<ID>.yml # polyline e= ntity points: - - float # x - float # y - floa= t # z (optional) - - float # x - float # y - floa= t # z (optional) ... arcs: # (optional) - {} - angles: - float # starting angle (radians) - float # ending angle = (radians) points: - - float # x - flo= at # y - float # z (optional) radius: float - {} = ... type: "polyline" closed: boolean --Eric -- "It ain't those parts of the Bible that I can't understand that bothe= r me, it's the parts that I do understand." = --Mark Twain ---------------------------------------------------------------------------- Get email for your= site ---> http://www.everyone.net