← Back to team overview

kicad-developers team mailing list archive

Re: dxf: import 4 arcs

 

Hi Marcos,

R12 does not support ellipses, so ellipses are converted to lines saving the file ... R12 will solve ellipses import in kicad

Unfortunately R12 supports POLYLINEs, and kicad not.

A good solution is to open palta2.dxf, select the object and explode it (I'm using LibreCAD 2.0.8 in windows:
 Select object, Menu Modify Explode)

Then save your path in R12 and import in kicad!

So at the moment I see that a nice improvement, as you suggested, would be to add a warning in the import dialog saying "use R12 dxf version without polyline"

Attached the dxf and kicad board correctly imported :)

Maurice

On 09/09/2015 15.31, Marcos Chaparro wrote:
Thanks a lot Maurice,
so the solution for a complex outline is to draw it directly in
librecad. Its good to know that exporting to R12 is not bulletproof. I
don't see exporting upgrades coming into freecad, or polyline support
coming into kicad either.

As Cirilo told us, it seems reasonable to me that the mcad could reduce
the representation to a more complex (and simpler at the same time)
representation.

A 'cheap' improvement would be to add a warning in the import dialog
saying "polyline not supported". It would narrow down the problem for
the user, right now all the feedback we have is a shape with lines
instead of arcs.

Its interesting that it doesn't totally fail, the import actually
manages to draw lines with the correct start/finish points, it only
loses angle information, see attached.


Marcos

On Wed, Sep 9, 2015 at 6:24 AM, easyw <easyw@xxxxxxxxxxxx
<mailto:easyw@xxxxxxxxxxxx>> wrote:

    Hi Marcos and Marco,

    please find attached the dxf that I did from scratch using 4 arcs in
    LibreCAD
    I copied manually the path from palta2.dxf, then exported in dxf R12
    The result is fine in kicad and I get a closed path also for Edge cuts.

    in kicad there are 4 arcs
       (gr_arc (start 178.564202 123.937945) (end 153.273203 83.107373)
    (angle -26.04011298) (layer Edge.Cuts) (width 0.1))
       (gr_arc (start 156.68577 88.642784) (end 162.837792 90.749678)
    (angle -140.5586133) (layer Edge.Cuts) (width 0.1))
       (gr_arc (start 196.246745 102.229265) (end 162.837792 90.749678)
    (angle -22.2858684) (layer Edge.Cuts) (width 0.1))
       (gr_arc (start 148.500893 105.004408) (end 137.915937 98.354967)
    (angle -215.4739741) (layer Edge.Cuts) (width 0.1))

    If you search inside palta2.dxf you find POLYLINE that are not
    supported by kicad

    attached a comparison of dxf files

    I suspect that the problem is when exporting dxf from FreeCAD...
    I had some trouble with a different board path exported from FreeCAD...
    In FreeCAD you cannot select which version of dxf you want to use,
    if I remember correctly...

    Maurice








    On 09/09/2015 07.43, Marco Hess wrote:

        Definitely a problem with the DXF importer I would say as the
        resulting
        data in the PCB file are just  straight line segments:

            (gr_line (start 42.68541 28.017695) (end 52.25 35.66) (layer
        Edge.Cuts) (width 0.1))
            (gr_line (start 27.328145 43.265288) (end 42.68541
        28.017695) (layer
        Edge.Cuts) (width 0.1))
            (gr_line (start 50.392159 49.187096) (end 27.328145
        43.265288) (layer
        Edge.Cuts) (width 0.1))
            (gr_line (start 52.25 35.66) (end 50.392159 49.187096) (layer
        Edge.Cuts) (width 0.1))

        Marco

        On 09-Sep-15 14:58, Marco Hess wrote:

            Hi Marcos,

            Apologies, but I did not see your original email where you
            said you
            tried the R12 format alreayd.

            I tried it as well and and it indeed seems to do something
            strange
            with just connecting the end points of the circles or something.

            Regards,

            Marco

            On 09-Sep-15 14:29, Marco Hess wrote:

                KiCad DXF import for those kind of segments don't work
                very well. You
                need to re-export the DXF in a DXF R12 format.

                You can do that easily by opening the DXF in LibreCAD
                and then
                reexporting in R12 format.

                See
                http://docs.kicad-pcb.org/Pcbnew/Pcbnew.html#_creating_a_board

                Section 6.1.2 and 6.1.3.

                Cheers,

                Marco


                On 09-Sep-15 14:24, Marcos Chaparro wrote:


                             Seems that is kind of Berzier Curve, not
                    few arcs. Probably
                             that shape needs to

                         split to single arcs before import.


                    Um, I don't know if its converted to a bezier curve,
                    but I'm sure I
                    made it from 4 arcs, see attached.


                    _______________________________________________
                    Mailing list:https://launchpad.net/~kicad-developers
                    Post to     :kicad-developers@xxxxxxxxxxxxxxxxxxx
                    <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
                    Unsubscribe :https://launchpad.net/~kicad-developers
                    More help   :https://help.launchpad.net/ListHelp


                --
                Marco Hess
                Through IP Pty. Ltd. - AUSTRALIA
                www.through-ip.com <http://www.through-ip.com>
                  |marco.hess@xxxxxxxxxxxxxx
                <mailto:marco.hess@xxxxxxxxxxxxxx>
                p: +61 407 78 55 66 | f: +61 8 8121 6191


                _______________________________________________
                Mailing list:https://launchpad.net/~kicad-developers
                Post to     :kicad-developers@xxxxxxxxxxxxxxxxxxx
                <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
                Unsubscribe :https://launchpad.net/~kicad-developers
                More help   :https://help.launchpad.net/ListHelp




            _______________________________________________
            Mailing list:https://launchpad.net/~kicad-developers
            Post to     :kicad-developers@xxxxxxxxxxxxxxxxxxx
            <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
            Unsubscribe :https://launchpad.net/~kicad-developers
            More help   :https://help.launchpad.net/ListHelp


        --
        Marco Hess
        Through IP Pty. Ltd. - AUSTRALIA
        www.through-ip.com <http://www.through-ip.com>
          |marco.hess@xxxxxxxxxxxxxx <mailto:marco.hess@xxxxxxxxxxxxxx>
        p: +61 407 78 55 66 | f: +61 8 8121 6191



        _______________________________________________
        Mailing list: https://launchpad.net/~kicad-developers
        Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
        <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
        Unsubscribe : https://launchpad.net/~kicad-developers
        More help   : https://help.launchpad.net/ListHelp


    _______________________________________________
    Mailing list: https://launchpad.net/~kicad-developers
    Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
    <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
    Unsubscribe : https://launchpad.net/~kicad-developers
    More help   : https://help.launchpad.net/ListHelp


(kicad_pcb (version 4) (host pcbnew "(2015-08-31 BZR 6138)-product")

  (general
    (links 0)
    (no_connects 0)
    (area 135.951099 82.086294 196.263049 123.851255)
    (thickness 1.6)
    (drawings 4)
    (tracks 0)
    (zones 0)
    (modules 0)
    (nets 1)
  )

  (page A4)
  (layers
    (0 F.Cu signal)
    (1 In1.Cu signal)
    (2 In2.Cu signal)
    (31 B.Cu signal)
    (32 B.Adhes user)
    (33 F.Adhes user)
    (34 B.Paste user)
    (35 F.Paste user)
    (36 B.SilkS user)
    (37 F.SilkS user)
    (38 B.Mask user)
    (39 F.Mask user)
    (40 Dwgs.User user)
    (41 Cmts.User user)
    (42 Eco1.User user)
    (43 Eco2.User user)
    (44 Edge.Cuts user)
  )

  (setup
    (last_trace_width 0.3048)
    (user_trace_width 0.508)
    (user_trace_width 0.762)
    (trace_clearance 0.254)
    (zone_clearance 0.508)
    (zone_45_only no)
    (trace_min 0.254)
    (segment_width 0.15)
    (edge_width 0.15)
    (via_size 0.9652)
    (via_drill 0.508)
    (via_min_size 0.889)
    (via_min_drill 0.508)
    (user_via 1.397 0.889)
    (user_via 1.778 0.889)
    (uvia_size 0.6604)
    (uvia_drill 0.4064)
    (uvias_allowed no)
    (uvia_min_size 0.508)
    (uvia_min_drill 0.127)
    (pcb_text_width 0.3)
    (pcb_text_size 1.5 1.5)
    (mod_edge_width 0.18)
    (mod_text_size 1.5 1.5)
    (mod_text_width 0.15)
    (pad_size 1.524 1.524)
    (pad_drill 0.9)
    (pad_to_mask_clearance 0.0762)
    (aux_axis_origin 0 0)
    (visible_elements 7FFFF77F)
    (pcbplotparams
      (layerselection 0x013fc_80000007)
      (usegerberextensions false)
      (excludeedgelayer true)
      (linewidth 0.150000)
      (plotframeref false)
      (viasonmask false)
      (mode 1)
      (useauxorigin false)
      (hpglpennumber 1)
      (hpglpenspeed 20)
      (hpglpendiameter 15)
      (hpglpenoverlay 2)
      (psnegative false)
      (psa4output false)
      (plotreference true)
      (plotvalue true)
      (plotinvisibletext false)
      (padsonsilk false)
      (subtractmaskfromsilk true)
      (outputformat 1)
      (mirror false)
      (drillshape 0)
      (scaleselection 1)
      (outputdirectory gerb/))
  )

  (net 0 "")

  (net_class Default "This is the default net class."
    (clearance 0.254)
    (trace_width 0.3048)
    (via_dia 0.9652)
    (via_drill 0.508)
    (uvia_dia 0.6604)
    (uvia_drill 0.4064)
  )

  (net_class PWR ""
    (clearance 0.254)
    (trace_width 0.762)
    (via_dia 1.778)
    (via_drill 0.889)
    (uvia_dia 0.6604)
    (uvia_drill 0.4064)
  )

  (net_class PWR2 ""
    (clearance 0.254)
    (trace_width 1.016)
    (via_dia 2.286)
    (via_drill 1.143)
    (uvia_dia 0.6604)
    (uvia_drill 0.4064)
  )

  (net_class mid ""
    (clearance 0.254)
    (trace_width 0.508)
    (via_dia 1.27)
    (via_drill 0.889)
    (uvia_dia 0.6604)
    (uvia_drill 0.4064)
  )

  (net_class mini ""
    (clearance 0.2032)
    (trace_width 0.254)
    (via_dia 1.143)
    (via_drill 0.762)
    (uvia_dia 0.6604)
    (uvia_drill 0.4064)
  )

  (gr_arc (start 156.690954 88.636295) (end 162.837792 90.749678) (angle -140.6964605) (layer Edge.Cuts) (width 0.1))
  (gr_arc (start 178.428488 123.801254) (end 153.273202 83.107373) (angle -26.14405672) (layer Edge.Cuts) (width 0.1))
  (gr_arc (start 148.5011 105.0036) (end 137.915937 98.354966) (angle -215.4666934) (layer Edge.Cuts) (width 0.1))
  (gr_arc (start 196.213048 102.224636) (end 162.837792 90.749678) (angle -22.30721162) (layer Edge.Cuts) (width 0.1))

)

Attachment: palta2-exploded-to-lines.dxf
Description: image/vnd.dxf

Attachment: palta2-exploded-and-imported-in-kicad.PNG
Description: PNG image


Follow ups

References