sketchucation logo sketchucation
    • Login
    ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    [Plugin] Dxf_In v2.2 20110517 Dxf2Skp

    Scheduled Pinned Locked Moved Plugins
    200 Posts 41 Posters 269.7k Views 41 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • honoluludesktopH Offline
      honoluludesktop
      last edited by

      Jim, I am using Dxf Reference, ACAD 2010 and am not able to identify bulge data within dxf polyline.
      Temp89.jpg
      The group code for bulge in lwpolyline "42", is absent in the 2010 reference for polyline unless it is part of "70" and some other group code. I don't look forward to figuring out how to including it in Dxf_In.

      Incidentally, Dxf_In doesn't check for version number, and will attempt to process any File.Dxf, even one that is manually, incorrectly edited, and rejected by Import SU Pro. It has succeed for the implemented entities, except when the group code is written out of order. I noticed that import SU Pro V7 refused to translate a 2010 Dxf file.

      1 Reply Last reply Reply Quote 0
      • honoluludesktopH Offline
        honoluludesktop
        last edited by

        Hi Jim, Thanks, I have used that open source translator from time to time, especially with a cad.dxf that needed to be accessed by older programs. It has a difficult interface requiring two folders, one for the file and the other for the export. As I recall (perhaps erroneously) it did not allow you to select specific files for translation, and processed the entire folder.

        When Dxf_In detects a lwpolyline, it process it as a SU "continuous edge" by assuming z=0.0. I am not sure if that's what's intended for that entity type, but have successfully translated the examples I had access to at that time.

        There were other anomalies I noticed in comparing Dxf_In to SU Pro imports. The windows in the energy model above, imported with SU Pro, are faces in the same plane as the wall (surface) they are on. Hence the problem displaying its color. For some reason, Dxf_In corrects this by drawing the window as a faced hole in the wall. However, Dxf_In draws some of the energy models faces, back side out, where SU Pro draws them properly. I speculated that the cause of this maybe in part, the order that the faces are drawn. Dxf_In, processes the Cad.dxf in the order the entities are listed. Perhaps SU Pro pre-processes the entities before drawing them. Btw, I hadn't realized that polylines have "bulge". Although I haven't encounter any that did, I guess I need to look at that entity attribute. Is my post above regarding bulge calculation correct to your understanding? Also puzzling to me were the entities in some dxf files that by the manner of their identification in the file, are not drawn. If file size is a consideration, I wondered why these were included in the dxf file.

        1 Reply Last reply Reply Quote 0
        • J Offline
          Jim
          last edited by

          @honoluludesktop said:

          Jim, I am using Dxf Reference, ACAD 2010 and am not able to identify bulge data within dxf polyline.

          It's the POLYLINE's VERTEX that may or may not have a bulge attribute. POLYLINE's are implemented as a sequence of VERTEX's, ending with a SEQEND code. LWPOLYLINE's can have multiple vertex and bulge data but these are stored in the object itself as multiple 10, 20, and 42 codes.

          @honoluludesktop said:

          Incidentally, Dxf_In doesn't check for version number, and will attempt to process any File.Dxf, even one that is manually, incorrectly edited, and rejected by Import SU Pro. It has succeed for the implemented entities, except when the group code is written out of order. I noticed that import SU Pro V7 refused to translate a 2010 Dxf file.

          I am in the process of separating out the dxf reader part of my importer to be more generally useful. It reads a dxf and converts it into a Ruby data structure of Arrays and Hashes. This will allow access to the sections and entities much easier.

          Header variables:
          dxf = DxfReader.load("c:\drawing.dxf") acad_version = dxf['HEADER']['$ACADVER']

          Iterating ENTITIES:
          dxf['ENTITIES'].each do |entitiy| process_entity(entity) end

          Viewing a specific, or entities by type:
          all_lwpolylines = dxf['ENTITIES'].select{|e| e[0] == 'LWPOLYLINE'}

          In addition, you can "pretty print" the dxf allowing for easier analysis, such as this image of the representation of a LWPOLYLINE as a Ruby data structure.

          739.png

          You can see the lwpolyline has 8 vertices (code 90), but only 4 of those bulge data (code 42). I know how to create an arc from 2 verts and a bulge, but I don't know how to apply that formula to this particular lwpolyline.

          But with the DxfReader, you can pick out and try to create this one particular entity for debugging:

          lwpoly = dxf['ENTITIES'].select{|entity| entity[5]=="477"}.first x_values = lwpoly[10] y_values = lwpoly[20] bulge_data = lwpoly[42] nverts = lwpoly[90] for i in 0..nverts-1 pt = Geom::Point3d.new(x_values[i], y_values[i]) entities.add_cpoint(pt) end
          (etc.)

          I will try to clean-up and post the reader this week.

          Hi

          1 Reply Last reply Reply Quote 0
          • honoluludesktopH Offline
            honoluludesktop
            last edited by

            Jim, I think I get it about bulge in polyline as "a sequence of vertexes". The dxf reader sounds like a great tool. Just an idea, but perhaps in addition to displaying the group code, you could provide a short meaning of it (probably too much work).

            In the process of material importing, I tried to convert Acad's basic colors to the ones recognized by SU. Wow, too much work for me, and there were to many approximate correlations. Then I thought of setting the RGB values in SU, but that wouldn't cover materials, so I decided to leave it in the hands of the user to make sure that the same material existed on both sides. Because I do not use ACad, I can't test the validity of that assumption, and will have to depend on feedback. Now I see this discussion, and will leave the matter to experts.

            I read that lwpolyline was implemented by ACad in version 14. So unlike my original speculation, it is not an old form of polyline, rather a newer one then polyline. To my understanding, It is a 2d, variable width, entity that supports curves between pairs of vertex. One application is as "arrow heads" at the ends of dimension line. I have yet to read an explanation why this entity was created. Perhaps because, it helps reduce the size of the drawing database, especially with those that are primarily used in "production drawings".

            1 Reply Last reply Reply Quote 0
            • honoluludesktopH Offline
              honoluludesktop
              last edited by

              V1.5 adds layer names, and materials to faces. In addition, the initial user interface is now organized as a single options menu.

              When selecting DXF_In materials on, unless the material exists in SU, the resulting face is black. I currently have not thought of a practical way to handle that situation.

              Jim, I have been reading up on lwpolyline, and polyline entities. Thanks for your post.

              1 Reply Last reply Reply Quote 0
              • honoluludesktopH Offline
                honoluludesktop
                last edited by

                Oops...wrong conversion values for metric scales. Corrected with v1.6. In addition to minor adjustments, "check for upgrade" is a selection from the Option menu. "Yes" to this will take you to the top of this topic, and clear the options returning SU to its previous condition.

                1 Reply Last reply Reply Quote 0
                • honoluludesktopH Offline
                  honoluludesktop
                  last edited by

                  V1.9 includes improved user interface, and support for faces by layers and materials. The default material colors are based on Acad's color chart of 256 colors. Unlikely to be used, but included is support for colors by SU's color name chart of 140 colors, and the current model's colors. Btw, I had to manually reverse the faces on the right side, near wing of the model.

                  Energy model, scaled and support for color.

                  1 Reply Last reply Reply Quote 0
                  • I Offline
                    ideas_arte
                    last edited by

                    Thank you very much!!!!

                    1 Reply Last reply Reply Quote 0
                    • honoluludesktopH Offline
                      honoluludesktop
                      last edited by

                      V1.10 places a rescaled dxf model on the mouse pointer.

                      Options menu
                      The import file name is in the upper left. Check update take you to the top of this topic's page, and import units include metric as well as imperial scales. Import origins are placed on SU's origin, or subject to the mouse pointer. The default import is for closed polylines to faces, however this may be turned off. Dxf colors by Acad number is also the default, SU names, SU's model materials, or none may be selected.

                      I think all the interface issues have been addressed. I do not intend to add other entities (perhaps only as requested).

                      1 Reply Last reply Reply Quote 0
                      • honoluludesktopH Offline
                        honoluludesktop
                        last edited by

                        V 1.14 includes minor interface refinements, and the "help option" to save current option selections. Below is a example of an imported 3d polymesh whose definition name is created from the name of the file.dxf.


                        temp00.jpg

                        1 Reply Last reply Reply Quote 0
                        • J Offline
                          jbertke
                          last edited by

                          Honoluludesktop,
                          How do I get a copy of your DXF importer plugin? It looks like just the thing I need.
                          Thanks,
                          Jim B

                          1 Reply Last reply Reply Quote 0
                          • honoluludesktopH Offline
                            honoluludesktop
                            last edited by

                            It's here at the top of this topic.

                            1 Reply Last reply Reply Quote 0
                            • G Offline
                              gonedata
                              last edited by

                              honoluludesktop

                              great work!

                              imported 3d polymesh from construction software(agtek)generated dxf

                              the terrain looks perfect...

                              1 Reply Last reply Reply Quote 0
                              • L Offline
                                lovebugjunkie
                                last edited by

                                Thank you for this plugin, very useful.

                                1 Reply Last reply Reply Quote 0
                                • honoluludesktopH Offline
                                  honoluludesktop
                                  last edited by

                                  Added Dxf_In v1.15 french translation thanks to D. Bur.

                                  LES ENTITES DXF SUPPORTEES SONT:

                                  1. Polylignes comme arêtes connectées.
                                  2. Polyligne's (fermées) comme faces sélectionnées par l'utilisateur.
                                  3. LWPolylignes comme arêtes connectées.
                                  4. Lignes comme arêtes.
                                  5. Cercles comme contour d'arêtes.
                                  6. Arcs comme contour d'arêtes.
                                  7. 3dFaces comme faces.
                                  8. Blocs comme groupes ou composants.
                                  9. Maillage Polyligne comme arêtes.
                                  10. Maillage comme faces sélectionnées.
                                  1 Reply Last reply Reply Quote 0
                                  • honoluludesktopH Offline
                                    honoluludesktop
                                    last edited by

                                    Minor update including facing circles when user option to face polylines is selected (v15), and streamlining the readability of the code (v16).

                                    1 Reply Last reply Reply Quote 0
                                    • H Offline
                                      HHF
                                      last edited by

                                      Hello Honoluludesktop...First THANK YOU..for this great plug-in..
                                      my DXF when imported to SKU8 comes flat i.e. the Z height comes at zero..yet when I imported to the 7.1 version comes with the right heights..?
                                      Thanks in advance for your input..

                                      1 Reply Last reply Reply Quote 0
                                      • honoluludesktopH Offline
                                        honoluludesktop
                                        last edited by

                                        Can you post the dxf here? The only Dxf_In entities that default to z=0 are LWPolylines.

                                        1 Reply Last reply Reply Quote 0
                                        • honoluludesktopH Offline
                                          honoluludesktop
                                          last edited by

                                          Hmmmmm..... The dxf reference has a LWPolyline code "elevation" that I had not previously taken into account. Try the attached Dxf_In, and let me know if it works or not. Don't forget to post your dxf file.


                                          my_dxf_In_v1.17.rb

                                          1 Reply Last reply Reply Quote 0
                                          • honoluludesktopH Offline
                                            honoluludesktop
                                            last edited by

                                            HHF, This is the file as translated by an Acad Viewer. The viewer is v2000. I also read the dxf file, and couldn't find the kind of information used to update Dxf_In_v1.18 as part of the new file's entities. Perhaps you shouldn't explode the drawing, and just export it to Dxf as is. Which version of Acad did you use to make the dxf?Temp00.png

                                            1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 6
                                            • 7
                                            • 8
                                            • 9
                                            • 10
                                            • 10 / 10
                                            • First post
                                              Last post
                                            Buy SketchPlus
                                            Buy SUbD
                                            Buy WrapR
                                            Buy eBook
                                            Buy Modelur
                                            Buy Vertex Tools
                                            Buy SketchCuisine
                                            Buy FormFonts

                                            Advertisement