OSArch Community

DWG/DXF support in FOSS

  1. D

    @brunopostle so do projects slowly with time start pulling more and more changes from the most active fork? What if they only make changes to their own fork and don't publish or pull changes from others?

    I'm trying to work out if it fits with the aims of osarch to try and help projects focus on developing the same libraries rather than making small (but perhaps important) changes in isolation.

  2. B

    @duncan I'm not familiar enough with github to know if it has any tools to make poking around other forks and merging from them easy (git itself is designed for exactly this use case).

    A traditional linux distribution packages lots of software, but generally only allows you to install one version of each - this is a major incentive for developers to push their changes back to the original repository, otherwise users will never see them. The recent fashion to create downloadable installers for each project allows developers to bundle modified versions of libraries without bothering to push their changes back (blenderbim is a special case as there are a small number of users who all need to be using the latest code, so an installer makes sense, though once it settles down I would hope stable releases are shipped with linux distributions - this is how you would want to use it in a large architects office).

    It is definitely worth encouraging developers to merge their forks, particularly with library software, I would add that they should be encouraged to make numbered releases - if it is impossible to tell what libraries a user is using then tracking down bugs for them is also impossible.

  3. M

    What I haven't been able to work out is where is the original repo... my quick guess would be https://sourceforge.net/projects/libdxfrw/ - the first step I'd ask is to contact the original authors and see if they can start engaging with the forks, identifying any useful third party changes, and merging them in.

    If the original authors are MIA, then find the second most active repo (likely on Github), and contact that author if it is worthwhile to take the initiative and make his repo a bit more "official" and see if he wants to do the exercise of shopping around fork changes.

    In general, when a dev wants to use or contribute to a project, they will gravitate to the most active one. If the original one shows less activity, if you can encourage a successor, that will naturally over time become the new "home".

    @brunopostle yes, in the future when the BlenderBIM Add-on settles down, I'll package it a bit more traditionally :)

  4. D

    thanks @brunopostle & @Moult it sounds like I've understood the issues now. I tracked down who I thought was the original author "shinsuke" and wrote to all the email addresses I could find. Haven't had a response. Sorry, but I can't remember how I decided they were the original author.

  5. J

    Hello again...

    I was re-installing my Windows 10 partition again because of Autodesk bugs and I have noticed something that LibreDWG could copy.

    Autodesk products use Object Enablers or similars, I mean they do not add support directly for AutoCAD to their products (Civil 3D, Map 3D, Plan 3D, Etc.) what they do is use their framework and then create the Object Enablers to be visualized or to export their .dwg file.

    My hypothesis 1

    ... is than LibreDWG developers could create their own Object Enabler, arx-crx-dbx, for export since FOSS to AutoCAD, and then LibreDWG already does not should need support completely all AutoCAD Objects not matter what version.

    My hypothesis 2

    ... is than with the Object Enabler(s), arx-crx-dbx, than could create LibreDWG, could be recycled to create an AutoCAD plugin to export-import perfectly .dwg to/since our FOSS.

    My hypothesis 3

    ... is than with the already could not be necessary import export since AutoCAD, because the Object Enabler(s), arx-crx-dbx, could add support for Blender or FreeCAD native files and work like External References.

    My hypothesis 4

    ... create Object Enabler(s), arx-crx-dbx, could convert any native DWG file to any supported format for FOSS.

    ... just an idea because looks like AutoCAD/DWG will be in force for many years.

  6. M

    @jtm2020hyo you should definitely get in contact with the LibreDWG devs and have a chat with them! They have a mailing list.

  7. B
  8. M

    Fantastic! This really changes my impression of it as an inactive project! I really hope it gets used more in apps. Is anybody familiar with any activity happening between Blender + LibreDWG?

  9. D

    Yes, LibreDWG is moving very actively and we should encourage its use. At the moment we kind of need to do a feature comparison to libdxfrw which is what's being used now but it not very active and does not have a central maintainer. We also need to see it implemented in QCAD Community Edition in some way, probably as an addon since I doubt the QCAD dev has the motivation to do it himself (and it is still alpha software). LibreDWG is used by FreeCAD so some testing could be done that way.

  10. D

    @jtm2020hyo you should send your suggestions to LibreDWG, they don't watch our forum. https://savannah.gnu.org/mail/?group=libredwg

    I've been wondering about something that concerns me. There are quite a lot of libraries supporting DXF, and a lot of them are forks of libdxfrw since the original developer stopped working on the project.

    * https://github.com/Cheng1087/vtkRenderDxfFile

    The same is true for another DXF support library, libdxf, the library QCAD uses.

    How are these projects supposed to benefit from each others work if each has their own fork and no-one is updating the original project? Is there something I have misunderstood or would it be good to encourage them to talk to each other and merge their work into one repo.

  11. D
  12. M

    @duncan the last link does not seem to be libdxfrw. That's one less to consider :) The good news is that there doesn't seem to be too many forks: https://github.com/search?q=libdxfrw - the first three you've highlighted certainly look like good contenders for a new "upstream".

    The sourceforge seems very dead to me, and there are three authors. dongxuli, rallaz, and rvt. dongxuli seems to no longer be involved. Interestingly, rallaz seems to be the originator of the codelibs and LibreCAD repos. So both of those sound like likely contenders for a new "central upstream". rvt is of course a main dev of LibreCAD ... so ... the LibreCAD repo sounds more promising, but interestingly the codelibs repo seems to perhaps had more activity? Not sure, post a bugreport on either one of those repos and ask them - that should help clarify.

  13. D

    Do we agree that this is against the terms of the GPLv2+: https://qcad.org/en/90-dxflib

    Licensing

    GPLv2 or greater (for open source projects)

    Commercial License (for proprietary projects)

  14. S

    I don't think so, you may release code under whatever license you want.

  15. D

    But @stephen_l you can't enforce a second commercial license if you use the GPL license. That contradicts the freedoms granted by the GPL. They contradict each other. I've read a bit of the commercial license, and it says for example you can't use the library in a competing product. That goes against the GPL freedom to use the software for any purpose.

  16. B

    @duncan the gpl grants permission to use and distribute the software under certain conditions. This doesn't prevent the author granting permission to use and distribute the software under other conditions at the same time. However this only works if there is a single author, or they have asked all contributors to give them ownership.

    You couldn't do this with blender, for example, there are contributors who can't be traced, even if you could persuade them. Qcad I believe have been careful to get contributor license agreements from everybody who has ever contributed.

  17. J

    @duncan: The way I see it is that, yes, you can use the open-source license to create your version, which you can always charge to distribute a copy, although the source code must be available free-of-charge as well.

    If you do not want to release your code then you can use the commercial license and pay for it.

  18. J

    On a different note, the writing capability of this library is very low at the moment (I see DXF R15 (2000)), a good point would be support for at least DXF 2010 or 2013. I wonder if the awesome ezdxf python library could be used to pump this library up.

  19. M

    @duncan as GPLv2 requires sources to be made available, it is therefore not conflicting to offer an additional "proprietary license". This is similar to how Qt works.

  20. D

    Now I understand. The dual licensing is not for the use of end users but for projects that want to include the library in their proprietary solution without sharing their work. Correct me if I'm wrong.

  21. D

    @Jesusbill I've added ezdxf to https://wiki.osarch.org/index.php?title=Drawing_Exchange_Format_(DXF)#Libraries_for_Software_Development do you know what projects use that library? Are there other libraries missing from that page? Does FreeCAD use ezdxf @baswein @yorik or what is the python importer the use?

    I'd love some help working on or comments to https://wiki.osarch.org/index.php?title=Drawing_ExchangeFormat(DXF) . There seem to be quite a few holes in DXF 2D support and as for 3D I'm not sure if anyone is supporting it?

  22. J

    @duncan I don't know any project that uses ezdxf. I remember this comment by @stephen_l on a similar thread.

    PS: By the way the search function works good for me, just typed dxfgrabber and I immediately got the associated thread

  23. Y

    FreeCAD has two different DXF importers: One is derived from the old DXF importer of Blender 2.5x, is python-only and lives at https://github.com/yorikvanhavre/Draft-dxf-importer . It's slowly being deprecated, because it's a bit slow and annoying to maintain/upgrade.. The other is adapted from HeeksCNC, is coded in C++ and lives at https://github.com/FreeCAD/FreeCAD/tree/master/src/Mod/Import/App it's much simpler, but has the advantage to be decoupled (a "base" structure with a very simple reimplementation layer that could be done in other apps too). It is pretty barebone but is very fast and speaks OpenCasCade.

  24. M
  25. D
  1. Page 1
  2. 2
  3. 3
  4. 4

Login or Register to reply.