![]() |
【转帖】hatch highlander
hatch highlander....
hatch highlander.... facing a db hatch entity and getting it's loops infos with phatch->looptypeat(), is there an analysis method to isolate : - loops boundaries with no holes - loops boundaries with holes - groups of loops made of [a boundary loop and holes loops inside this boundary] . thanks for any ideas jp where is no such method in dd. you need to process the loop geometry data "manually". sergey slezkin this is precisely my question... we get a set of attributs for each loops enum hatchlooptype { kdefault = 0, kexternal = 1, kpolyline = 2, kderived = 4, ktextbox = 8, koutermost = 0x10, knotclosed = 0x20, kselfintersecting = 0x40, ktextisland = 0x80, kduplicate = 0x100 } but their interpretation looks complex. "outermost" does not seem to mean "boundary" and "external" does not seem to mean "boundary with no hole". so the real question is : can we sort the loops in the 3 requested categories by analysing only the hatchlooptype values ? 1- loops boundaries with no holes 2- loops boundaries with holes 3- groups of loops made of [a boundary loop and holes loops inside this boundary] thanks the header also contains some comments: code: enum hatchlooptype { kdefault = 0, // not yet specified. kexternal = 1, // defined by external entities. kpolyline = 2, // defined by odge polyline. kderived = 4, // derived from a picked point. ktextbox = 8, // defined by text. koutermost = 0x10, // outermost loop. knotclosed = 0x20, // open loop. kselfintersecting = 0x40, // self-intersecting loop. ktextisland = 0x80, // text loop surrounded by an even number of loops. kduplicate = 0x100 // duplicate loop. }; you can't use these flags to determine which loop is the external boundary and which is an island even if the file is absolutely valid and created in autocad. if the file is created by non-autocad application the flags can't be trusted at all except: kpolyline - if a loop is defined by polyline or by an array of edges. also if the loop represents tex box this area is never hatched. try to make a hatch of text entity and a circle crossing the text to see. sergey slezkin i磛e hatches with severeal loops where the combination outermost|external means a standalone boundary and a simple outermost means a hole inside an other loop with a simple external flag. |
所有的时间均为北京时间。 现在的时间是 03:05 AM. |