Hello everyone.
I'm a bit riddled by how conversion between the two types should work and whether it is what should be done. As I trace boundary of a 2d figure ( editor.TraceBoundary( ... ) ) I get a collection with - say - one Polyline object.
When I want to extract an arc segment from the polyline, I am using (polyline.GetArcSegment2dAt( ... )). The object I get is of type CircularArc2d.
If I save this object somewhere and pull it back later, how can I have it drawn? So far I tried to convert CircularArc2d to Arc:
CircularArc2d carc = ... Arc aarc = new Arc( Convertor.ToPoint3d(carc.Center), carc.Radius, carc.StartAngle, carc.EndAngle );
But that didn't turn out well. The circular arc seems to determine its start by the start point, having start angle = 0, while the arc understands this zero as "start from polar zero radians, as seen from the center". I tried to set a start point to the arc:
Arc aarc = new Arc(); aarc.StartPoint = Convertor.ToPoint3d(carc.StartPoint); aarc.EndPoint = Convertor.ToPoint3d(carc.EndPoint); aarc.Center = Convertor.ToPoint3d(carc.Center);
But that produces exception saying that setting start point isn't implemented for the Arc type.
I can go for calculating the start/end angle for Arc, but something tells me there must be a more elegant and more precise way to trace arcs, save them externally and use them later. I could use a hand with this one.
Thanks!
Solved! Go to Solution.
Solved by Alexander.Rivilis. Go to Solution.
Hi,
It seems there is not an elegant solution, check this link: http://forums.autodesk.com/t5/NET/Create-Arc-with-StartPoint-EndPoint-Radius/m-p/3773066#M33369. Almost 50 lines of code to create an arc!
Another solution could be using editor.runcommand as implemented by TT in this link :RunCommand .
Gaston Nunez
Gosh, yeah, that doesn't look neat.
Alright, I'll be having some 'fun' with this topic and then come back and mark this as solved if nobody else opposes.
In the meantime, can you confirm there is no way we can actually extract Arc instead of CircularArc2d/3d from a Polyline?
WWFreeman wrote:
In the meantime, can you confirm there is no way we can actually extract Arc instead of CircularArc2d/3d from a Polyline?
Polyline.Explode produce Arcs and Lines.
Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"
Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Right. In my case it was wrong to start using CircularArc2d type.
However, gasty's post has revealed me further very useful stuff. Thank you!
If I happen to write a CircularArc2d -> Arc converter, it will probably be posted here as I saw none.
@Anonymous wrote:
If I happen to write a CircularArc2d -> Arc converter, it will probably be posted here as I saw none.
You can cut CircularArc2d -> Arc converter from this post.
Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"
Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn