• Industries
  • Products
  • Buy
  • Services & Support
  • Communities
  • Discussion Groups

    .NET

    Reply
    Active Contributor
    Posts: 27
    Registered: ‎09-02-2012
    Accepted Solution

    Arc and CircularArc2d

    151 Views, 5 Replies
    02-26-2013 09:13 PM

    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!

    Please use plain text.
    Mentor
    Posts: 214
    Registered: ‎04-11-2010

    Re: Arc and CircularArc2d

    02-26-2013 10:07 PM in reply to: WWFreeman

    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

     

     

    Please use plain text.
    Active Contributor
    Posts: 27
    Registered: ‎09-02-2012

    Re: Arc and CircularArc2d

    02-26-2013 10:14 PM in reply to: gasty1001

    Gosh, yeah, that doesn't look neat. :smileyvery-happy:

     

    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?

    Please use plain text.
    Moderator
    Alexander.Rivilis
    Posts: 1,167
    Registered: ‎04-09-2008

    Re: Arc and CircularArc2d

    02-26-2013 10:32 PM in reply to: WWFreeman

    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.

     


    Пожалуйста не забывайте про Утвердить в качестве решения!Утвердить в качестве решения и Give Kudos!Баллы
    Please remember to Accept Solution!Accept as Solution and Give Kudos!Kudos

    Please use plain text.
    Active Contributor
    Posts: 27
    Registered: ‎09-02-2012

    Re: Arc and CircularArc2d

    02-26-2013 10:53 PM in reply to: Alexander.Rivilis

    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.

    Please use plain text.
    Moderator
    Alexander.Rivilis
    Posts: 1,167
    Registered: ‎04-09-2008

    Re: Arc and CircularArc2d

    02-26-2013 10:58 PM in reply to: WWFreeman

    WWFreeman 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.


    Пожалуйста не забывайте про Утвердить в качестве решения!Утвердить в качестве решения и Give Kudos!Баллы
    Please remember to Accept Solution!Accept as Solution and Give Kudos!Kudos

    Please use plain text.