https://wiki.librecad.org/api.php?action=feedcontributions&user=R.+van+Twisk&feedformat=atomLibreCAD wiki - User contributions [en]2024-03-29T07:27:58ZUser contributionsMediaWiki 1.22.5https://wiki.librecad.org/index.php?title=User_talk:FeragonUser talk:Feragon2017-07-24T21:33:14Z<p>R. van Twisk: Welcome!</p>
<hr />
<div>'''Welcome to ''LibreCAD wiki''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:R. van Twisk|R. van Twisk]] ([[User talk:R. van Twisk|talk]]) 17:33, 24 July 2017 (EDT)</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User:FeragonUser:Feragon2017-07-24T21:33:13Z<p>R. van Twisk: Creating user page with biography of new user.</p>
<hr />
<div>I'm a developer of LibreCAD 3 since April 2016 with the Google Summer of Code.<br />
I mainly worked on the GUI, a Lua script system and support of custom entities created by script.<br />
<br />
You can see the full list of my coding contributions here : https://github.com/LibreCAD/LibreCAD_3/commits/master?author=feragon</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=Main_PageMain Page2017-03-12T16:04:41Z<p>R. van Twisk: </p>
<hr />
<div><div style="margin:auto; width:1024px;"><br />
<br />
<p style="text-align: center;">'''Welcome to the LibreCAD Wiki!'''</p><br />
<br />
{| width="100%" cellspacing="10px" style="table-layout:fixed"<br />
<br />
|-<br />
<br />
|colspan="4" style="background-color:#f0f0f0; vertical-align:top;"|<br />
<div style="background-color:#8bca01; font-size:11pt; font-weight:bold; color:#fbf8bf; padding:4px; text-align:center">Introduction</div><br />
<div style="padding:12px;"><br />
<br />
LibreCAD (originally CADuntu) is a [https://www.gnu.org/licenses/gpl-2.0.html free] and open-source 2D [[What_is_CAD|CAD]] application,<br />
which uses Qt (a cross-platform application framework). <br />
The project started around 2010 as a fork of QCAD 2.0.5.0.<br />
<br />
Support for reading DWG files was added with [https://sourceforge.net/projects/libdxfrw/ libdxfrw]. <br />
Support for writing MakerCAM SVG files was also added.<br />
<br />
The release of 2.1.0 increased customization of the [[User_Interface|user interface]].<br />
You can now create custom toolbars and menus,<br />
and dramatically change the appearance (among other things).<br />
<br />
If you want to contribute to this wiki, please visit the [[LibreCAD Wiki:Community portal]] page.<br />
Content is available under Creative Commons Attribution Share Alike.<br />
<br />
If you wish you get involved in development, then head over to our [https://github.com/LibreCAD/LibreCAD/wiki/Becoming-a-developer GitHub repo] and get started!<br />
<br />
If you think you've found a bug or have an idea for an improvement, then head over to the [https://github.com/LibreCAD/LibreCAD/issues github issues page].<br />
<br />
If you have any questions or comments please visit our [http://forum.librecad.org/ forum] or chatroom on [irc://chat.freenode.net/librecad IRC at freenode.net].<br />
<br />
The latest stable [https://github.com/LibreCAD/LibreCAD/releases release] is 2.1.3.<br />
<br />
</div><br />
<br />
|colspan="4" style="background-color:#f0f0f0; vertical-align:top;"|<br />
<div style="background-color:#8bca01; font-size:11pt; font-weight:bold; color:#fbf8bf; padding:4px; text-align:center">Screenshot</div><br />
<div style="padding:12px;"><br />
<br />
[[File: line_tools.png|x375px|center|frame|LibreCAD line tools]]<br />
<br />
</div><br />
<br />
|-<br />
<br />
|colspan="2" style="background-color:#f0f0f0; vertical-align:top;"|<br />
<div style="background-color:#8bca01; font-size:11pt; font-weight:bold; color:#fbf8bf; padding:4px; text-align:center">Wiki Navigation</div><br />
<div style="padding:12px;"><br />
<br />
*[[Special:AllPages|All Pages]]<br />
*[[Special:Categories|Categories]]<br />
*[[Special:UncategorizedPages|Uncategorized Pages]]<br />
*[[:Category:Developers]]<br />
*[[:Category:Installation]]<br />
*[[:Category:Tools]]<br />
*[[:Category:Usage]]<br />
*[[GSoC_2017]]<br />
<br />
</div><br />
<br />
|colspan="2" style="background-color:#f0f0f0; vertical-align:top;"|<br />
<div style="background-color:#8bca01; font-size:11pt; font-weight:bold; color:#fbf8bf; padding:4px; text-align:center">Get LibreCAD</div><br />
<div style="padding:12px;"><br />
<br />
*[[Download]]<br />
*[[Installation]]<br />
*[[Build from source|Build from source]]<br />
*[https://github.com/LibreCAD/LibreCAD Source code]<br />
*[[Part_Libraries|Part Libraries]]<br />
<br />
</div><br />
<br />
|colspan="2" style="background-color:#f0f0f0; vertical-align:top;"|<br />
<div style="background-color:#8bca01; font-size:11pt; font-weight:bold; color:#fbf8bf; padding:4px; text-align:center">Usage</div><br />
<div style="padding:12px;"><br />
<br />
*[[LibreCAD Brief Overview]]<br />
*[[LibreCAD users Manual]]<br />
*[[A_short_manual_for_use_from_the_command_line|Using the command line]]<br />
*[[Commands]]<br />
*[[Coordinate_system|Coordinate system]]<br />
*[[LibreCAD_Quick_Start_Guide/Creating_Your_Own_Template|Templates]]<br />
*[[LibreCAD Tips and Techniques|Tips and Techniques]]<br />
<br />
</div><br />
<br />
|colspan="2" style="background-color:#f0f0f0; vertical-align:top;"|<br />
<div style="background-color:#8bca01; font-size:11pt; font-weight:bold; color:#fbf8bf; padding:4px; text-align:center">Developers</div><br />
<div style="padding:12px;"><br />
<br />
*[[LibreCAD v1 Developers' Handbook]]<br />
*[[Math bits]]<br />
*[[API &amp; Development]]<br />
*[[GUI Translators|Translating LibreCAD]]<br />
*[[LibreCAD Plugin Development]]<br />
*[[LibreCAD version 3 design]]<br />
<br />
</div><br />
<br />
|-<br />
<br />
|colspan="2" style="background-color:#f0f0f0; vertical-align:top;"|<br />
<div style="background-color:#8bca01; font-size:11pt; font-weight:bold; color:#fbf8bf; padding:4px; text-align:center">Wiki Help</div><br />
<div style="padding:12px;"><br />
<br />
*[https://www.mediawiki.org/wiki/Help:Contents Help]<br />
*[https://www.mediawiki.org/wiki/Help:Formatting Formatting]<br />
*[https://www.mediawiki.org/wiki/Help:Links Links]<br />
*[https://en.wikipedia.org/wiki/Help:Table Tables]<br />
*[https://www.mediawiki.org/wiki/Help:Categories Categories]<br />
*[https://www.mediawiki.org/wiki/Help:Images Images]<br />
<br />
</div><br />
<br />
|colspan="2" style="background-color:#f0f0f0; vertical-align:top;"|<br />
<div style="background-color:#8bca01; font-size:11pt; font-weight:bold; color:#fbf8bf; padding:4px; text-align:center">Related Web Pages</div><br />
<div style="padding:12px;"><br />
<br />
*[http://librecad.org/cms/home.html Homepage]<br />
*[http://librecad.org/cms/home/get-help/forum.html Forum]<br />
*[http://blog.librecad.org/ Blog]<br />
*[https://github.com/LibreCAD/LibreCAD GitHub]<br />
*[http://sourceforge.net/p/librecad/ Sourceforge]<br />
*[http://alternativeto.net/software/caduntu/ alternativeTo]<br />
*[https://www.youtube.com/results?filters=playlist&search_query=librecad&lclk=playlist YouTube Playlists]<br />
<br />
</div><br />
<br />
|colspan="2" style="background-color:#f0f0f0; vertical-align:top;"|<br />
<div style="background-color:#8bca01; font-size:11pt; font-weight:bold; color:#fbf8bf; padding:4px; text-align:center">New Wiki Content</div><br />
<div style="padding:12px;"><br />
<br />
*[[Features]]<br />
*[[User Interface]]<br />
*[[FAQ]]<br />
*[[Calculator]]<br />
*[[Properties]]<br />
*[[Relative Zero]]<br />
*[[Snapping]]<br />
<br />
</div><br />
<br />
|colspan="2" style="background-color:#f0f0f0; vertical-align:top;"|<br />
<div style="background-color:#8bca01; font-size:11pt; font-weight:bold; color:#fbf8bf; padding:4px; text-align:center">LibreCad News</div><br />
<div style="padding:12px;"><br />
<br />
*[https://github.com/LibreCAD/LibreCAD/commits/master LibreCAD 2 commits]<br />
*[https://github.com/LibreCAD/LibreCAD_3/commits/master LibreCAD 3 commits]<br />
*[http://forum.librecad.org/Announcements-f5707204.html Announcements]<br />
*[[News|More News]]<br />
<br />
<br />
</div><br />
<br />
|-<br />
<br />
|colspan="8" style="background-color:#f0f0f0; vertical-align:top;"|<br />
<div style="background-color:#8bca01; font-size:11pt; font-weight:bold; color:#fbf8bf; padding:4px; text-align:center">Things We Need</div><br />
<div style="padding:12px;"><br />
<br />
Help Wanted. We welcome Open Source Developers to join us, to improve this free drawing tool in exciting fields such as:<br />
* [[Contributors|Contribute]] to the wiki based on your accumulated knowledge. If you have figured out a feature in LibreCAD, please add to our wiki to help other users.<br />
* Implement more command line support for actions. Currently, there are many actions there without command line support, we need to complete this part of implementation and add the relevant documents.<br />
* Add support for native text based on Qt fonts. Right now, only stick fonts are supported. When the usage doesn't require stick fonts, native Qt fonts should be used for better multi-language support and efficiency<br />
* Implement a new and robust hatch generating algorithm<br />
* The current spline implementation is not efficient, we would like to replace it with a better spline implementation and add both spline and Bezier support as well, see [https://github.com/LibreCAD/LibreCAD/issues/322 Bezier]<br />
* We have implemented new math support for hyperbola and parabola. Implementation support for hyperbola/parabola entities would make LibreCAD capable of doing all conic sections.<br />
* Feature tweaking and bug fixing for printing/painter<br />
* Refactor header files to speed up the building process, support for pch headers<br />
* Document writers to help building wiki and user manuals<br />
* Quality Assurance, [https://github.com/LibreCAD/LibreCAD/labels/bug bug] hunting<br />
*[[Editors|Documentation]]<br />
*[[GUI Translators|Translation]]<br />
* Improving [https://github.com/LibreCAD/LibreCAD/issues/523 tangent point detection]<br />
* Improving the [https://github.com/LibreCAD/LibreCAD/issues/822 plugin system]<br />
<br />
You might also want to consider contributing to [https://github.com/LibreCAD/LibreCAD_3 the next generation of LibreCAD].<br />
<br />
* [[GSoC|Google Summer of Code Check List]]<br />
* [[GCI_2016-17|Google Code-in 2016/17]]<br />
<br />
</div><br />
<br />
|}<br />
<br />
</div></div>R. van Twiskhttps://wiki.librecad.org/index.php?title=GSoC_2017GSoC 20172017-03-12T16:02:16Z<p>R. van Twisk: Created page with "GSoC 2015 logo = How to Apply = Please see GSoC Checklist. It's important that you read about how to apply first before you talk to..."</p>
<hr />
<div>[[File:GSoC-2015.png|100px|right|GSoC 2015 logo]]<br />
= How to Apply =<br />
Please see [[GSoC|GSoC Checklist]]. It's important that you read about how to apply first before you talk to use so you have an idea what is going to happen.<br />
<br />
= Expectations =<br />
<br />
GSoC is about getting people involved and contributing to open source over the long-term. As such, we weight our application selection process towards students that are interested in remaining involved in open source software development long after GSoC has ended.<br />
<br />
GSoC is not a job. If you are in for easy money then this job is not for you; if you are in because you like to learn and want to participate in an open source project, the rewards are great.<br />
<br />
We do grade submissions based on perception of the submitter's abilities to complete the task within the program timeframe, general consensus on the technical approach being proposed, and overall interest in having such modifications made to LibreCAD. Open Source is about communication; we do very much like our student's to communicate with us, hang out on the IRC channel and be active on the forum. Not only for the GSoC project but in general be actively involved in LibreCAD.<br />
<br />
Just about every GSoC organization receives considerably more project proposals than can be accepted. Every application gets read multiple times and reviewed in detail. Of those applications, only a small subset are selected so keep in mind that the selection process is rather competitive and difficult.<br />
<br />
Whether or not you are accepted, contributing to open source outside of GSoC is one of the main goals of the program and is the best way to be noticed and get your proposal accepted. Keep that in mind. Thanks for your interest and we look forward to working with new LibreCAD developers!<br />
<br />
= LibreCAD Project Ideas =<br />
<br />
LibreCAD is a free Open Source CAD application for Windows, Apple and Linux. Support and documentation is free from our large, dedicated community of users, contributors and developers.<br />
<br />
<br />
'''REMEMBER''' These are ideas for GSoC, if you want to work on a other subject then any of the the below that will benefit LibreCAD, then please don't hesitate and let us know! Contact me (Ries) or Dongxu and let us know your thought's and ideas!<br />
We ar looking forward to hear how ''you'' want to improve LibreCAD!<br />
<br />
{| class=wikitable<br />
!Project<br />
!Languages<br />
!Difficulty<br />
!Contacts<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[LibreCAD 3 UI Phase 1]]:''' After the project in 2014, LibreCAD engine is maturing, and it's reasonable to add GUI support for drawing and editing actions to start exposing it to end users. We have separated this in 2 phases<br />
First phase:<br />
<br />
Within our current LibreCAD 3 there is a library that handles drawing of entities. <br />
This needs to be extended such that it can handle mouse/keyboard input and have the capability to create entities within our document. We require a framework that can easily be extended such that other entities can be created with or without constrains.<br />
Constrains can include must be a extendable framework<br />
* Snap on grid<br />
* Snap on snap point's of entities<br />
* Snap tangent on other entities<br />
* Vertical/Horizontal constrains<br />
* others... <br />
<br />
This portion doesn't require a UI with icons/buttons but a API in/around the document canvas that can handle the above such it can be included in other applications other then LibreCAD (BRL-CAD/FreeCAD etc...)<br />
<br />
|align=center|C++,QT,UI<br />
|align=center|MEDIUM <br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|R. van Twisk <LibreCAD@rvt.dds.nl>]]<br />
|-<br />
<br />
|- bgcolor=#fafafa<br />
|width=62%|'''[[LibreCAD 3 DXF Entities]]:''' Implement DXF entities. For LibreCAD 2 we are missing a few set of entities like Block and possible a few more. For LibreCAD 3 are looking for a person that can help implement the missing entities. Task would include<br />
* Finding out what entities we are missing<br />
* Implement rendering, manipulation reading and writing the entities<br />
* Create test cases in our unit test<br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|R. van Twisk <LibreCAD@rvt.dds.nl>]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[LibreCAD 3 OpenGL rendering]]:''' Our current rendering engine uses Cairo to render our entities. We are looking for a person that can do a pure OpenGL implementation of it's render engine.<br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|R. van Twisk <LibreCAD@rvt.dds.nl>]]<br />
|-<br />
<br />
|}<br />
<br />
= HOW TO SUBMIT A PATCH? =<br />
1) To create patch first clone our repository and make a new branch<br />
<pre>$git clone https://github.com/LibreCAD/LibreCAD.git<br />
$cd LibreCAD<br />
$git checkout -b new_branch</pre><br />
2) Update your code in new branch<br><br />
3) Create a patch:<br><br />
Assuming your changes are in new branch and didn’t yet merge it to master branch.<br />
<pre>$git format-patch master --stdout > my_patch.patch</pre><br />
This will create a new file my_patch.patch with all changes from new_branch<br><br />
Now, you have a patch for the fix you wrote. Send it to the maintainer of the project …<br />
<br />
It's recommended to use github's pull requests instead of patches: [https://help.github.com/articles/using-pull-requests Using pull requests]<br />
<br />
[[Category:Developers]]</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User:PeptecnologiesUser:Peptecnologies2016-01-18T19:45:16Z<p>R. van Twisk: Creating user page with biography of new user.</p>
<hr />
<div>LibreCAD es una aplicación informática de código libre de diseño asistido por computadora (CAD) para diseño 2D. Funciona en los sistemas operativos GNU/Linux, Mac OS X, Solaris y Microsoft Windows.<br />
<br />
LibreCAD fue desarrollado a partir de un fork de QCad Community Edition. El desarrollo de LibreCAD está basado en las bibliotecas Qt4, pudiendo ser ejecutado en varias plataformas de manera idéntica.<br />
<br />
Buena parte de la interfaz y de los conceptos sobre su uso son similares a los de AutoCAD, haciendo el uso de este más cómodo para usuarios con experiencia en ese tipo de programas CAD comerciales.</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User_talk:PeptecnologiesUser talk:Peptecnologies2016-01-18T19:45:16Z<p>R. van Twisk: Welcome!</p>
<hr />
<div>'''Welcome to ''LibreCAD wiki''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:R. van Twisk|R. van Twisk]] ([[User talk:R. van Twisk|talk]]) 21:45, 18 January 2016 (SAST)</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User:Antonella_GuayarelloUser:Antonella Guayarello2015-05-06T22:02:26Z<p>R. van Twisk: Creating user page with biography of new user.</p>
<hr />
<div>I am from Mar del Plata, Argentina, 22 years old, student of Sistems Engineer, collaborator of Wikidata and Wikipedia (translator). Free software activist, lover of animals and nature.<br />
Currently working in Argentina Association of Internet Users ( Internauta Argentina ) as a volunteer in the area of free software and also develop websites with free technologies.</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User_talk:Antonella_GuayarelloUser talk:Antonella Guayarello2015-05-06T22:02:26Z<p>R. van Twisk: Welcome!</p>
<hr />
<div>'''Welcome to ''LibreCAD wiki''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:R. van Twisk|R. van Twisk]] ([[User talk:R. van Twisk|talk]]) 00:02, 7 May 2015 (SAST)</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User_talk:John_HechtmanUser talk:John Hechtman2015-04-14T16:47:53Z<p>R. van Twisk: Welcome!</p>
<hr />
<div>'''Welcome to ''LibreCAD wiki''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:R. van Twisk|R. van Twisk]] ([[User talk:R. van Twisk|talk]]) 18:47, 14 April 2015 (SAST)</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User:John_HechtmanUser:John Hechtman2015-04-14T16:47:53Z<p>R. van Twisk: Creating user page with biography of new user.</p>
<hr />
<div>Computer tech, ex-recording engineer, writer, amateur inventor. More about me at my website - www.zenarrow.com. Currently live in NYC, and work as a freelance computer tech. I support Windows, Macintosh, and Linux computers. With screen sharing, I can help you anywhere in the world. If you would like help, please email me at jhecht@ix.netcom.com. Thanks!</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User_talk:Niemand_JedermannUser talk:Niemand Jedermann2015-04-14T16:47:44Z<p>R. van Twisk: Welcome!</p>
<hr />
<div>'''Welcome to ''LibreCAD wiki''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:R. van Twisk|R. van Twisk]] ([[User talk:R. van Twisk|talk]]) 18:47, 14 April 2015 (SAST)</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User:Niemand_JedermannUser:Niemand Jedermann2015-04-14T16:47:43Z<p>R. van Twisk: Creating user page with biography of new user.</p>
<hr />
<div>I am interested in translating the LibreCAD manual/ wiki pages into German.<br />
I am a 30 year old native German speaker with 19 years of English learning experience.<br />
<br />
I am interested in translating the LibreCAD manual/ wiki pages into German.<br />
I am a 30 year old native German speaker with 19 years of English learning experience.<br />
<br />
I am interested in translating the LibreCAD manual/ wiki pages into German.<br />
I am a 30 year old native German speaker with 19 years of English learning experience.<br />
<br />
I am interested in translating the LibreCAD manual/ wiki pages into German.<br />
I am a 30 year old native German speaker with 19 years of English learning experience.<br />
<br />
I am interested in translating the LibreCAD manual/ wiki pages into German.<br />
I am a 30 year old native German speaker with 19 years of English learning experience.</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User_talk:GratefulfrogUser talk:Gratefulfrog2015-04-14T16:47:32Z<p>R. van Twisk: Welcome!</p>
<hr />
<div>'''Welcome to ''LibreCAD wiki''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:R. van Twisk|R. van Twisk]] ([[User talk:R. van Twisk|talk]]) 18:47, 14 April 2015 (SAST)</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User:GratefulfrogUser:Gratefulfrog2015-04-14T16:47:31Z<p>R. van Twisk: Creating user page with biography of new user.</p>
<hr />
<div>I am a hacker hacking on microprocessors, 3D printers, laser cutters and so on. I also make RC vehicles, in particular airplanes and helicopters. My biggest hack is the www.arduguitar.org which was featured on hackaday and ac the CCC in 2013. I have run out of words so I will just mention that the Brussels Fablab is a great place to hack. Oh, and I have also build a wind turbine.</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User_talk:RavasUser talk:Ravas2015-04-14T16:47:25Z<p>R. van Twisk: Welcome!</p>
<hr />
<div>'''Welcome to ''LibreCAD wiki''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:R. van Twisk|R. van Twisk]] ([[User talk:R. van Twisk|talk]]) 18:47, 14 April 2015 (SAST)</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User:RavasUser:Ravas2015-04-14T16:47:24Z<p>R. van Twisk: Creating user page with biography of new user.</p>
<hr />
<div>I'm searching for the proper tool for <br />
geometric construction and exploration.<br />
I have about three years of experience programming with Python,<br />
in which I developed a personal standard of minimalism.<br />
By analogy, most software today is like a "swiss army hammer",<br />
lots of features but heavy and hard to swing.<br />
Just give me a hammer and I'll get the other tools if I need them.<br />
<br />
I have used Geogebra, CarMetal, Autocad, InkScape and Illustrator;<br />
and LibreCad, by my standards, is superior software for geometric construction.<br />
<br />
I would like to help this project with suggestions, <br />
feedback and writing wiki content.</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User:James_WinklerUser:James Winkler2015-04-14T16:47:06Z<p>R. van Twisk: Creating user page with biography of new user.</p>
<hr />
<div>I build instruments for the biotech industry. I have designed and constructed DNA chip synthesizers, DNA chip processing equipment, and other various instruments. I design mechanical, electronic, fluidics, optical, software, and in other disciplines. I have over 30 patents, many being multidisciplinary. I have used Solidworks, Pro Engineer, Autodesk products. <br />
<br />
I wrote a program to convert DNA data sets to photomask writer files. This used an interpreter which I wrote to simplify photomask layout. I also wrote an equation parser to facilitate layout.</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User_talk:James_WinklerUser talk:James Winkler2015-04-14T16:47:06Z<p>R. van Twisk: Welcome!</p>
<hr />
<div>'''Welcome to ''LibreCAD wiki''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:R. van Twisk|R. van Twisk]] ([[User talk:R. van Twisk|talk]]) 18:47, 14 April 2015 (SAST)</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User:Purificacion_SilvaUser:Purificacion Silva2015-03-25T15:15:12Z<p>R. van Twisk: Creating user page with biography of new user.</p>
<hr />
<div>I waw bornd at Malaga (spain) on 1967.<br />
I studied at Málaga FP II Sistemas Informáticos y de Telecomunicación IES "La Rosaleda"<br />
2007-2009<br />
I studied Electricista de Edificios año 2007 APIEMA homologado por "Junta de Andalucia"<br />
I worked at Ayuntamiento de Málaga 1989 en Inundaciones de Málaga <br />
I worked at Diputacion Provincial de Málaga en el <br />
1-Centro Basico de Acogida<br />
2- Centro Civico<br />
3-Residencia de la Tertcera Edad de Colmenar<br />
4- Residencia de la Tercera Edad de "San Carlos " de Archidona.<br />
I worked since 2000 to 2006 at Málaga "<br />
<br />
I,m at Málaga (Sapin)</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User_talk:Purificacion_SilvaUser talk:Purificacion Silva2015-03-25T15:15:12Z<p>R. van Twisk: Welcome!</p>
<hr />
<div>'''Welcome to ''LibreCAD wiki''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:R. van Twisk|R. van Twisk]] ([[User talk:R. van Twisk|talk]]) 11:15, 25 March 2015 (EDT)</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User:LeonorUser:Leonor2015-03-25T15:15:03Z<p>R. van Twisk: Creating user page with biography of new user.</p>
<hr />
<div>I am a postgraduate student working on an interdisciplinary project that combines physics, mathematics, computer science and a lot of programming. I am most interested on the impact that mathematics has in everyone's life, something that most often goes unnoticed. I admire well-written software and I am enthusiastic about learning the techniques that make it possible. I enjoy programming puzzles and any activity that allows me to apply my mathematical background to programming. Outside of my postgraduate work and programming, my main interests are public speaking and teaching.</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User_talk:LeonorUser talk:Leonor2015-03-25T15:15:03Z<p>R. van Twisk: Welcome!</p>
<hr />
<div>'''Welcome to ''LibreCAD wiki''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:R. van Twisk|R. van Twisk]] ([[User talk:R. van Twisk|talk]]) 11:15, 25 March 2015 (EDT)</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User:Joe_OConnorUser:Joe OConnor2015-03-25T15:14:54Z<p>R. van Twisk: Creating user page with biography of new user.</p>
<hr />
<div>I am a Professional Surveyor and Mapper in the State of Florida. I obtained my License # 4562 in 1988. I am a graduate of the University of Indianapole (Formerly Indiana Central Collete) in 1974. I am quite passionate about education. I graduated with a Bachelors of Arts in History. I tought for a year may two, when I desided to move to Florida and try out my first major Engineering. I have been in Survey Engineering ever since 1978. <br />
<br />
I continued my education at various schools in the Palm Beach County, Florida area. <br />
<br />
I am currently on Social Security Disabiliy Insurance, which has been a God sent. I did much work in Geometry in my years of Surveying. <br />
<br />
Born in Rockaway Beach Queens, in New York City, I am a city person. Palm Beach County is very urbanized at this time, not so much when I moved here. I have worked with various Engineering and Survey Firms through out my life. I have enjoyed the journey.<br />
<br />
Best Wishes to those path I pass.</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User_talk:Joe_OConnorUser talk:Joe OConnor2015-03-25T15:14:54Z<p>R. van Twisk: Welcome!</p>
<hr />
<div>'''Welcome to ''LibreCAD wiki''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:R. van Twisk|R. van Twisk]] ([[User talk:R. van Twisk|talk]]) 11:14, 25 March 2015 (EDT)</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User:Jim_WinklerUser:Jim Winkler2015-03-18T18:14:54Z<p>R. van Twisk: Creating user page with biography of new user.</p>
<hr />
<div>I am a undegreed engineer with a number of patents in the area of software, fluidics, DNA and peptide arrays, chemistry, optics, and mechanical. Most of these are multi-disciplinary. I often do biotech instrument design of one-of-a-kind machines. I built the instruments that made the first (likely) peptide chip arrays and first DNA chip arrays. I do software, electronics, mechanical, fluidics, and other areas. I have done a significant number of edits on Wikipedia, mostly vandalism patrolling.</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User_talk:Jim_WinklerUser talk:Jim Winkler2015-03-18T18:14:54Z<p>R. van Twisk: Welcome!</p>
<hr />
<div>'''Welcome to ''LibreCAD wiki''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:R. van Twisk|R. van Twisk]] ([[User talk:R. van Twisk|talk]]) 14:14, 18 March 2015 (EDT)</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User:Markus_StroehleUser:Markus Stroehle2015-03-16T19:21:32Z<p>R. van Twisk: Creating user page with biography of new user.</p>
<hr />
<div>About me:<br />
<br />
- Student in Mechanical Engineering at Vienna University of Technology.<br />
<br />
- Working at a accredited test and measurement lab.<br />
<br />
- Trying to use Open Source Software for professional applications.<br />
<br />
I want to give feedback as user, work on the documentation ( user specific content ) and try to code<br />
useful plugins for industrial demands.</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User_talk:Markus_StroehleUser talk:Markus Stroehle2015-03-16T19:21:32Z<p>R. van Twisk: Welcome!</p>
<hr />
<div>'''Welcome to ''LibreCAD wiki''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:R. van Twisk|R. van Twisk]] ([[User talk:R. van Twisk|talk]]) 15:21, 16 March 2015 (EDT)</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User:Randolph_M._FritzUser:Randolph M. Fritz2015-03-05T22:27:05Z<p>R. van Twisk: Creating user page with biography of new user.</p>
<hr />
<div>Lighting Designer, Software Engineer, Building Scientist<br />
Learning LibreCAD for use in my practice<br />
<br />
I was born in New York City, worked with computer networks in Silicon Valley for many years, studied design and have worked as a researcher at Lawrence Berkeley Labs. I am now embarking on a career as a lighting designer. I hold degrees in computing and architecture.</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User_talk:Randolph_M._FritzUser talk:Randolph M. Fritz2015-03-05T22:27:05Z<p>R. van Twisk: Welcome!</p>
<hr />
<div>'''Welcome to ''LibreCAD wiki''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:R. van Twisk|R. van Twisk]] ([[User talk:R. van Twisk|talk]]) 17:27, 5 March 2015 (EST)</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User:J._WebbUser:J. Webb2015-03-05T22:26:58Z<p>R. van Twisk: Creating user page with biography of new user.</p>
<hr />
<div>I am a homeowner trying to lay out the floor plan for my two story house. I am retired and remodeling my home. I have used CAD programs in a minimal capacity when I was employed as a Quality Assurance Engineer. I believe LibreCad will allow me to produce an accurate floor plan with a short learning curve.</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User_talk:J._WebbUser talk:J. Webb2015-03-05T22:26:58Z<p>R. van Twisk: Welcome!</p>
<hr />
<div>'''Welcome to ''LibreCAD wiki''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:R. van Twisk|R. van Twisk]] ([[User talk:R. van Twisk|talk]]) 17:26, 5 March 2015 (EST)</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User:Pierre_CorbeilUser:Pierre Corbeil2015-03-05T22:26:52Z<p>R. van Twisk: Creating user page with biography of new user.</p>
<hr />
<div>After two years of University studies in Mathematics/Physics I realized I was not in a proper place for me.<br />
<br />
I became stage manager in a small theatre in Montreal, then audioman, then Tour Manager for Quebec and French artists, then booking agent.<br />
<br />
At the same time I learned Basic on my Radio Shack 16k computer and then I spent two years writing a multi-user accounting system in C under Unix. This system ran like a charm until the day came when 8" diskettes were no longer available (this was 30 years ago).<br />
<br />
After my years in the show business industry I became promoter for Motocross races and spent 35 years running the "SuperMotocross" race at the Montreal Olympic stadium, wich was one of the biggest supercross races in America, if you know what I am talking about. I also worked as a Television production manager.<br />
<br />
Now I am 68, retired, and I have plenty of free time. I have never lost my interest for computers and specially computer programming.<br />
<br />
My mother tongue is French, and my English is not so bad. I can translate and write in both languages.<br />
<br />
I consider the fact that I am new to LibreCAD as a plus, because I do remember vividly what information I found missing in the users manual. If I can help, I am ready!</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User_talk:Pierre_CorbeilUser talk:Pierre Corbeil2015-03-05T22:26:52Z<p>R. van Twisk: Welcome!</p>
<hr />
<div>'''Welcome to ''LibreCAD wiki''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:R. van Twisk|R. van Twisk]] ([[User talk:R. van Twisk|talk]]) 17:26, 5 March 2015 (EST)</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User:Tom_PetersonUser:Tom Peterson2015-03-05T22:26:45Z<p>R. van Twisk: Creating user page with biography of new user.</p>
<hr />
<div>Industrial Mechanic. <br />
Primary purpose for request is that we have "hatching" wrong for mechanical drawings. Hatching is not for emphasis, hatching conveys material type. Reference is "The Starret Book for Student Machinists." I believe I can expand the hatching section to include the standards for various materials. <br />
I am a competent technical writer.</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User_talk:Tom_PetersonUser talk:Tom Peterson2015-03-05T22:26:45Z<p>R. van Twisk: Welcome!</p>
<hr />
<div>'''Welcome to ''LibreCAD wiki''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:R. van Twisk|R. van Twisk]] ([[User talk:R. van Twisk|talk]]) 17:26, 5 March 2015 (EST)</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User:SdmUser:Sdm2015-03-05T22:26:38Z<p>R. van Twisk: Creating user page with biography of new user.</p>
<hr />
<div>SDM LANGUAGE SCHOOL, 1994 yılından bu yana İngilizce, Almanca, Fransızca, İspanyolca, İtalyanca, Rusça, Yunanca ve Yabancılar için Türkçe olmak üzere çeşitli dillerde eğitim vermekte olan bir dil okuludur. Birebir Eğitimler ve Kurumsal Eğitimler olmak üzere öğrenci adaylarımıza eğitim çözümleri sunmaktayız.İletişime dayalı eğitim metotlarını benimsemiş olan kurumumuz ve eğitmenlerimiz, öğrencilerimizin ihtiyaçlarını birinci planda tutarak, kişilere ve kurumlara özel, ihtiyaçlarına en etkili biçimde cevap verecek olan eğitim planlaması gerçekleştirmekte ve eğitim programı süresince gelişim raporları ve performans deperlendirmeleri aracılığıyla eğitimleri daha verimli hale getirmektedir.Her öğrencinin öğrenme hızı ve öğrenme şeklinin farklı olmasından yola çıkarak tasarlanan dersliklerimizde, hem işitsel hem de görsel yönden teknolojinin en son imkanlarını kullanarak, öğrencilerimizin konforlu dersliklerde eğitim alıyor olması, dış etkenlerden kaynaklanabilecek konsantrasyon bozuklularını en aza indirmektedir.Alanında uzman, pedagojik formasyon sahibi eğitmenlerimiz, öğrencilerimizin tüm eğitim ihtiyaçlarına cevap verecek donanıma sahiptir.Kurulduğu günden beri, öğrencilerin eğitim ihtiyaçlarına kalıcı ve akılcı çözümler getiren SDM LANGUAGE SCHOOL, amatör ya da profesyonel bireyler ve aynı zamanda birçok tanınmış kurum tarafından tercih edilmektedir.</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User_talk:SdmUser talk:Sdm2015-03-05T22:26:38Z<p>R. van Twisk: Welcome!</p>
<hr />
<div>'''Welcome to ''LibreCAD wiki''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:R. van Twisk|R. van Twisk]] ([[User talk:R. van Twisk|talk]]) 17:26, 5 March 2015 (EST)</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User:JieroUser:Jiero2015-03-05T22:26:31Z<p>R. van Twisk: Creating user page with biography of new user.</p>
<hr />
<div>hello from a translater from China, used to learn graphics design for Desktop Publishing. <br />
<br />
Doing little works with inkscape sometimes, now I want to try out LibreCAD creating product views graphics for help section.<br />
<br />
Maybe future, I will become a DIYer, getting my raspberry pi 2 ordered and arriving soon.<br />
<br />
cheers<br />
jiero</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=User_talk:JieroUser talk:Jiero2015-03-05T22:26:31Z<p>R. van Twisk: Welcome!</p>
<hr />
<div>'''Welcome to ''LibreCAD wiki''!'''<br />
We hope you will contribute much and well.<br />
You will probably want to read the [[https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents|help pages]].<br />
Again, welcome and have fun! [[User:R. van Twisk|R. van Twisk]] ([[User talk:R. van Twisk|talk]]) 17:26, 5 March 2015 (EST)</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=GSoC_2015GSoC 20152015-02-23T19:10:36Z<p>R. van Twisk: </p>
<hr />
<div>[[File:GSoC-2015.png|100px|GSoC 2015 logo]]<br />
<br />
= How to Apply =<br />
Please see [[GSoC|GSoC Checklist]]. It's important that you read about how to apply first before you talk to use so you have an idea what is going to happen.<br />
<br />
= Expectations =<br />
<br />
GSoC is about getting people involved and contributing to open source over the long-term. As such, we weight our application selection process towards students that are interested in remaining involved in open source software development long after GSoC has ended.<br />
<br />
GSoC is not a job. If you are in for easy money then this job is not for you, if you are in because you like to learn and participate in open source project, the rewords are great,<br />
<br />
We do grade submissions based on perception of the submitter's abilities to complete the task within the program timeframe, general consensus on the technical approach being proposed, and overall interest in having such modifications made to LibreCAD. Open Source is about communication we do very much like our student's communicate with us, hang out on the IRC channel and be active on the forum. Not only for the GSoC project but in general be actively involved in LibreCAD.<br />
<br />
Just about every GSoC organization receives considerably more project proposals than can be accepted. Every application gets read multiple times and reviewed in detail. Of those applications, only a small subset are selected so keep in mind that the selection process is rather competitive and difficult.<br />
<br />
Whether or not you are accepted, contributing to open source outside of GSoC is one of the main goals of the program and is the best way to be noticed and get your proposal accepted. Keep that in mind. Thanks for your interest and we look forward to working with new LibreCAD developers!<br />
<br />
= LibreCAD Projects Ideas =<br />
<br />
LibreCAD is a free Open Source CAD application for Windows, Apple and Linux. Support and documentation is free from our large, dedicated community of users, contributors and developers.<br />
<br />
<br />
'''REMEMBER''' These are ideas for GSoC, if you want to work on a other subject then any of the the below that will benefit LibreCAD, then please don't hesitate and let us know! Contact me (Ries) or Dongxu and let us know your thought's and ideas!<br />
We ar looking forward to hear how ''you'' want to improve LibreCAD!<br />
<br />
{| bgcolor=#fff<br />
!<br />
!align=center|Languages<br />
!align=center|Difficulty<br />
!align=center|Contacts<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[LibreCAD 3 UI Phase 1]]:''' After the project in 2014, LibreCAD engine is maturing, and it's reasonable to add GUI support for drawing and editing actions to start exposing it to end users. We have separated this in 2 phases<br />
First phase:<br />
<br />
Within our current LibreCAD 3 there is a library that handles drawing of entities. <br />
This needs to be extended such that it can handle mouse/keyboard input and have the capability to create entities within our document. We require a framework that can easily be extended such that other entities can be created with or without constrains.<br />
Constrains can include must be a extendable framework<br />
* Snap on grid<br />
* Snap on snap point's of entities<br />
* Snap tangent on other entities<br />
* Vertical/Horizontal constrains<br />
* others... <br />
<br />
This portion doesn't require a UI with icons/buttons but a API in/around the document canvas that can handle the above such it can be included in other applications other then LibreCAD (BRL-CAD/FreeCAD etc...)<br />
<br />
|align=center|C++,QT,UI<br />
|align=center|MEDIUM <br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >, R. van Twisk <LibreCAD@rvt.dds.nl>]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[LibreCAD 3 UI Phase 2]]:''' After the project in 2014, LibreCAD engine is maturing, and it's reasonable to add GUI support for drawing and editing actions to start exposing it to end users. We have separated this in 2 phases<br />
Second phase:<br />
<br />
Build a UI that communicates with the document canvas. This is the portion that does have the UI/Buttons/Menu's We are leaning towards using QT but any other UI framework is open to suggestion.<br />
Initially we are looking towards the framework portion so we can work and extend but at a minimum we should be able to draw and manipulate the basic entities.<br />
<br />
|align=center|C++ , Qt, UI<br />
|align=center|HIGH<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|R. van Twisk <LibreCAD@rvt.dds.nl>]]<br />
|-<br />
|<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[LibreCAD 3 Math support]]:''' For LibreCAD 3 we need to implement more manipulation and creation of entities based on existing entity information.<br />
Examples of creation:<br />
* Offset of spline, line, circle etc<br />
* Make entities tangent to each other (with restrictions)<br />
* Circle inscribed (example in LibreCAD 2)<br />
* Circle tangential (example in LibreCAD 2)<br />
<br />
Examples of manipulation:<br />
* trimming of entities<br />
* lengthen of entities (to extend to a specific location)<br />
* Rounding ( Bevel of entities<br />
* Change direction of entities. so all start/end's are connected for a list of entities<br />
* Polyline generation of selected entities<br />
<br />
|align=center|C++,Math<br />
|align=center|MEDIUM TO HIGH<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >, R. van Twisk <LibreCAD@rvt.dds.nl>]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[Improve Spline/Bézier Support]]:''' LibreCAD has basic support for [http://en.wikipedia.org/wiki/B-spline B-spline] and quadratic splines, but many interesting features are still missing. For example, methods for trimming, offsetting, hatching, tangential directions, ''etc.'' are required to allow extensive usage of splines in LibreCAD. A rather comprehensive collection of spline mathematics can be found at [http://pomax.github.io/bezierinfo/ A Primer on Bézier Curves]<br />
Examples of spline features to implement:<br />
* Trimming<br />
* Hatching<br />
* Arc length<br />
* Area included by a contour<br />
<br />
|align=center|C++,Math<br />
|align=center|MEDIUM TO HIGH<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >, R. van Twisk <LibreCAD@rvt.dds.nl>]]<br />
|-<br />
<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[Improve contour topology support]]:''' Similar to [http://sourceforge.net/p/librecad/feature-requests/21/ hatching by clicking], more robust handling of contours is desirable in LibreCAD. In the process, support for area enclosed in a contour should be supported as well (see, [[Math_bits#Area_within_a_simple_closed_contour]]).<br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[Improve precision and robustness of equation solvers]]:''' LibreCAD uses its own equation solvers for polynominal equations and systems of equation up to the quartic order. Robustness is of great importance for features such as finding common tangential circles. An ideal solution involves adding multi-precision support for the current equation solvers in used by LibreCAD, either by using a 3rd party library or by direct implementation. <br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[Conic curve support]]:''' LibreCAD supports basic entity types including ellipse. It's desirable to have support for parabola and hyperbola as primitive entity types, giving the LibreCAD equation solvers are capable of handling quartic equations. This imiplementation should be in LibreCAD V3, but backporting to the current stable release V2 is also encouraged.<br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|- bgcolor=#fafafa<br />
|width=62%|'''[[SmartSnap]]:''' Currently LibreCAD has various snap capabilities, but they are only directly on entities, or on the grid.<br />
With smart snap LibreCAD can find endpoints, length, arc sizes of the 'same' at different locations. This allows for much faster creating of drawings because entering of new entities require less steps. Each time LibreCAD finds a smart snap, the point or entry would light up on the screen showing the users the snap interaction.<br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[LibreCAD on mobile]]:''' Qt5 support for mobile (Android and iOS, see [http://doc.qt.digia.com/qtcreator-2.1/creator-mobile-example.html Qt mobile]. The framework of creating a mobile version LibreCAD needs to be created. This platform support should be implemented for the LibreCAD V3, but support for the current stable release (V2) should be considered during the framework design.<br />
|align=center|Qt Android iOS<br />
|align=center|MEDIUM<br />
|align=center|[[dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[Support for multiple units upon data entry]]:''' Similar to [http://sourceforge.net/tracker/index.php?func=detail&aid=3399363&group_id=342582&atid=1433847 feet and inches support], support for supplying LibreCAD with different units. For example if LibreCAD was set to 'foot' in the unit setup, it should be possible to enter a unit of [1" + 2'], or [1.2meter]. LibreCAD would then convert the entered units to the unit LibreCAD is operating/set for. Various measuring system should be supported.<br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|R. van Twisk <gsoc_2014@rvt.dds.nl>,dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|}<br />
<br />
= HOW TO SUBMIT A PATCH? =<br />
1) To create patch first clone our repository and make a new branch<br />
<pre>$git clone https://github.com/LibreCAD/LibreCAD.git<br />
$cd LibreCAD<br />
$git checkout -b new_branch</pre><br />
2) Update your code in new branch<br><br />
3) Create a patch:<br><br />
Assuming your changes are in new branch and didn’t yet merge it to master branch.<br />
<pre>$git format-patch master --stdout > my_patch.patch</pre><br />
This will create a new file my_patch.patch with all changes from new_branch<br><br />
Now, you have a patch for the fix you wrote. Send it to the maintainer of the project …<br />
<br />
It's recommended to use github's pull requests instead of patches: [https://help.github.com/articles/using-pull-requests Using pull requests]</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=GSoC_2015GSoC 20152015-02-23T15:19:15Z<p>R. van Twisk: </p>
<hr />
<div>[[File:GSoC-2015.png|100px|GSoC 2015 logo]]<br />
<br />
= How to Apply =<br />
Please see [[GSoC|GSoC Checklist]]. It's important that you read about how to apply first before you talk to use so you have an idea what is going to happen.<br />
<br />
= LibreCAD Projects Ideas =<br />
<br />
LibreCAD is a free Open Source CAD application for Windows, Apple and Linux. Support and documentation is free from our large, dedicated community of users, contributors and developers.<br />
<br />
<br />
'''REMEMBER''' These are ideas for GSoC, if you want to work on a other subject then any of the the below that will benefit LibreCAD, then please don't hesitate and let us know! Contact me (Ries) or Dongxu and let us know your thought's and ideas!<br />
We ar looking forward to hear how ''you'' want to improve LibreCAD!<br />
<br />
{| bgcolor=#fff<br />
!<br />
!align=center|Languages<br />
!align=center|Difficulty<br />
!align=center|Contacts<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[LibreCAD 3 UI Phase 1]]:''' After the project in 2014, LibreCAD engine is maturing, and it's reasonable to add GUI support for drawing and editing actions to start exposing it to end users. We have separated this in 2 phases<br />
First phase:<br />
<br />
Within our current LibreCAD 3 there is a library that handles drawing of entities. <br />
This needs to be extended such that it can handle mouse/keyboard input and have the capability to create entities within our document. We require a framework that can easily be extended such that other entities can be created with or without constrains.<br />
Constrains can include must be a extendable framework<br />
* Snap on grid<br />
* Snap on snap point's of entities<br />
* Snap tangent on other entities<br />
* Vertical/Horizontal constrains<br />
* others... <br />
<br />
This portion doesn't require a UI with icons/buttons but a API in/around the document canvas that can handle the above such it can be included in other applications other then LibreCAD (BRL-CAD/FreeCAD etc...)<br />
<br />
|align=center|C++,QT,UI<br />
|align=center|MEDIUM <br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >, R. van Twisk <LibreCAD@rvt.dds.nl>]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[LibreCAD 3 UI Phase 2]]:''' After the project in 2014, LibreCAD engine is maturing, and it's reasonable to add GUI support for drawing and editing actions to start exposing it to end users. We have separated this in 2 phases<br />
Second phase:<br />
<br />
Build a UI that communicates with the document canvas. This is the portion that does have the UI/Buttons/Menu's We are leaning towards using QT but any other UI framework is open to suggestion.<br />
Initially we are looking towards the framework portion so we can work and extend but at a minimum we should be able to draw and manipulate the basic entities.<br />
<br />
|align=center|C++ , Qt, UI<br />
|align=center|HIGH<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|R. van Twisk <LibreCAD@rvt.dds.nl>]]<br />
|-<br />
|<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[LibreCAD 3 Math support]]:''' For LibreCAD 3 we need to implement more manipulation and creation of entities based on existing entity information.<br />
Examples of creation:<br />
* Offset of spline, line, circle etc<br />
* Make entities tangent to each other (with restrictions)<br />
* Circle inscribed (example in LibreCAD 2)<br />
* Circle tangential (example in LibreCAD 2)<br />
<br />
Examples of manipulation:<br />
* trimming of entities<br />
* lengthen of entities (to extend to a specific location)<br />
* Rounding ( Bevel of entities<br />
* Change direction of entities. so all start/end's are connected for a list of entities<br />
* Polyline generation of selected entities<br />
<br />
|align=center|C++,Math<br />
|align=center|MEDIUM TO HIGH<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >, R. van Twisk <LibreCAD@rvt.dds.nl>]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[Improve Spline/Bézier Support]]:''' LibreCAD has basic support for [http://en.wikipedia.org/wiki/B-spline B-spline] and quadratic splines, but many interesting features are still missing. For example, methods for trimming, offsetting, hatching, tangential directions, ''etc.'' are required to allow extensive usage of splines in LibreCAD. A rather comprehensive collection of spline mathematics can be found at [http://pomax.github.io/bezierinfo/ A Primer on Bézier Curves]<br />
Examples of spline features to implement:<br />
* Trimming<br />
* Hatching<br />
* Arc length<br />
* Area included by a contour<br />
<br />
|align=center|C++,Math<br />
|align=center|MEDIUM TO HIGH<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >, R. van Twisk <LibreCAD@rvt.dds.nl>]]<br />
|-<br />
<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[Improve contour topology support]]:''' Similar to [http://sourceforge.net/p/librecad/feature-requests/21/ hatching by clicking], more robust handling of contours is desirable in LibreCAD. In the process, support for area enclosed in a contour should be supported as well (see, [[Math_bits#Area_within_a_simple_closed_contour]]).<br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[Improve precision and robustness of equation solvers]]:''' LibreCAD uses its own equation solvers for polynominal equations and systems of equation up to the quartic order. Robustness is of great importance for features such as finding common tangential circles. An ideal solution involves adding multi-precision support for the current equation solvers in used by LibreCAD, either by using a 3rd party library or by direct implementation. <br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[Conic curve support]]:''' LibreCAD supports basic entity types including ellipse. It's desirable to have support for parabola and hyperbola as primitive entity types, giving the LibreCAD equation solvers are capable of handling quartic equations. This imiplementation should be in LibreCAD V3, but backporting to the current stable release V2 is also encouraged.<br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|- bgcolor=#fafafa<br />
|width=62%|'''[[SmartSnap]]:''' Currently LibreCAD has various snap capabilities, but they are only directly on entities, or on the grid.<br />
With smart snap LibreCAD can find endpoints, length, arc sizes of the 'same' at different locations. This allows for much faster creating of drawings because entering of new entities require less steps. Each time LibreCAD finds a smart snap, the point or entry would light up on the screen showing the users the snap interaction.<br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[LibreCAD on mobile]]:''' Qt5 support for mobile (Android and iOS, see [http://doc.qt.digia.com/qtcreator-2.1/creator-mobile-example.html Qt mobile]. The framework of creating a mobile version LibreCAD needs to be created. This platform support should be implemented for the LibreCAD V3, but support for the current stable release (V2) should be considered during the framework design.<br />
|align=center|Qt Android iOS<br />
|align=center|MEDIUM<br />
|align=center|[[dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[Support for multiple units upon data entry]]:''' Similar to [http://sourceforge.net/tracker/index.php?func=detail&aid=3399363&group_id=342582&atid=1433847 feet and inches support], support for supplying LibreCAD with different units. For example if LibreCAD was set to 'foot' in the unit setup, it should be possible to enter a unit of [1" + 2'], or [1.2meter]. LibreCAD would then convert the entered units to the unit LibreCAD is operating/set for. Various measuring system should be supported.<br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|R. van Twisk <gsoc_2014@rvt.dds.nl>,dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|}<br />
<br />
= HOW TO SUBMIT A PATCH? =<br />
1) To create patch first clone our repository and make a new branch<br />
<pre>$git clone https://github.com/LibreCAD/LibreCAD.git<br />
$cd LibreCAD<br />
$git checkout -b new_branch</pre><br />
2) Update your code in new branch<br><br />
3) Create a patch:<br><br />
Assuming your changes are in new branch and didn’t yet merge it to master branch.<br />
<pre>$git format-patch master --stdout > my_patch.patch</pre><br />
This will create a new file my_patch.patch with all changes from new_branch<br><br />
Now, you have a patch for the fix you wrote. Send it to the maintainer of the project …<br />
<br />
It's recommended to use github's pull requests instead of patches: [https://help.github.com/articles/using-pull-requests Using pull requests]</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=GSoC_2015GSoC 20152015-02-23T15:17:31Z<p>R. van Twisk: </p>
<hr />
<div>[[File:GSoC-2015.png|100px|GSoC 2015 logo]]<br />
<br />
= LibreCAD Projects Ideas =<br />
<br />
LibreCAD is a free Open Source CAD application for Windows, Apple and Linux. Support and documentation is free from our large, dedicated community of users, contributors and developers.<br />
<br />
= How to Apply =<br />
Please see [GSoC]. It's important that you read about how to apply first before you talk to use so you have an idea what is going to happen.<br />
<br />
<br />
'''REMEMBER''' These are ideas for GSoC, if you want to work on a other subject then any of the the below that will benefit LibreCAD, then please don't hesitate and let us know! Contact me (Ries) or Dongxu and let us know your thought's and ideas!<br />
We ar looking forward to hear how ''you'' want to improve LibreCAD!<br />
<br />
{| bgcolor=#fff<br />
!<br />
!align=center|Languages<br />
!align=center|Difficulty<br />
!align=center|Contacts<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[LibreCAD 3 UI Phase 1]]:''' After the project in 2014, LibreCAD engine is maturing, and it's reasonable to add GUI support for drawing and editing actions to start exposing it to end users. We have separated this in 2 phases<br />
First phase:<br />
<br />
Within our current LibreCAD 3 there is a library that handles drawing of entities. <br />
This needs to be extended such that it can handle mouse/keyboard input and have the capability to create entities within our document. We require a framework that can easily be extended such that other entities can be created with or without constrains.<br />
Constrains can include must be a extendable framework<br />
* Snap on grid<br />
* Snap on snap point's of entities<br />
* Snap tangent on other entities<br />
* Vertical/Horizontal constrains<br />
* others... <br />
<br />
This portion doesn't require a UI with icons/buttons but a API in/around the document canvas that can handle the above such it can be included in other applications other then LibreCAD (BRL-CAD/FreeCAD etc...)<br />
<br />
|align=center|C++,QT,UI<br />
|align=center|MEDIUM <br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >, R. van Twisk <LibreCAD@rvt.dds.nl>]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[LibreCAD 3 UI Phase 2]]:''' After the project in 2014, LibreCAD engine is maturing, and it's reasonable to add GUI support for drawing and editing actions to start exposing it to end users. We have separated this in 2 phases<br />
Second phase:<br />
<br />
Build a UI that communicates with the document canvas. This is the portion that does have the UI/Buttons/Menu's We are leaning towards using QT but any other UI framework is open to suggestion.<br />
Initially we are looking towards the framework portion so we can work and extend but at a minimum we should be able to draw and manipulate the basic entities.<br />
<br />
|align=center|C++ , Qt, UI<br />
|align=center|HIGH<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|R. van Twisk <LibreCAD@rvt.dds.nl>]]<br />
|-<br />
|<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[LibreCAD 3 Math support]]:''' For LibreCAD 3 we need to implement more manipulation and creation of entities based on existing entity information.<br />
Examples of creation:<br />
* Offset of spline, line, circle etc<br />
* Make entities tangent to each other (with restrictions)<br />
* Circle inscribed (example in LibreCAD 2)<br />
* Circle tangential (example in LibreCAD 2)<br />
<br />
Examples of manipulation:<br />
* trimming of entities<br />
* lengthen of entities (to extend to a specific location)<br />
* Rounding ( Bevel of entities<br />
* Change direction of entities. so all start/end's are connected for a list of entities<br />
* Polyline generation of selected entities<br />
<br />
|align=center|C++,Math<br />
|align=center|MEDIUM TO HIGH<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >, R. van Twisk <LibreCAD@rvt.dds.nl>]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[Improve Spline/Bézier Support]]:''' LibreCAD has basic support for [http://en.wikipedia.org/wiki/B-spline B-spline] and quadratic splines, but many interesting features are still missing. For example, methods for trimming, offsetting, hatching, tangential directions, ''etc.'' are required to allow extensive usage of splines in LibreCAD. A rather comprehensive collection of spline mathematics can be found at [http://pomax.github.io/bezierinfo/ A Primer on Bézier Curves]<br />
Examples of spline features to implement:<br />
* Trimming<br />
* Hatching<br />
* Arc length<br />
* Area included by a contour<br />
<br />
|align=center|C++,Math<br />
|align=center|MEDIUM TO HIGH<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >, R. van Twisk <LibreCAD@rvt.dds.nl>]]<br />
|-<br />
<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[Improve contour topology support]]:''' Similar to [http://sourceforge.net/p/librecad/feature-requests/21/ hatching by clicking], more robust handling of contours is desirable in LibreCAD. In the process, support for area enclosed in a contour should be supported as well (see, [[Math_bits#Area_within_a_simple_closed_contour]]).<br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[Improve precision and robustness of equation solvers]]:''' LibreCAD uses its own equation solvers for polynominal equations and systems of equation up to the quartic order. Robustness is of great importance for features such as finding common tangential circles. An ideal solution involves adding multi-precision support for the current equation solvers in used by LibreCAD, either by using a 3rd party library or by direct implementation. <br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[Conic curve support]]:''' LibreCAD supports basic entity types including ellipse. It's desirable to have support for parabola and hyperbola as primitive entity types, giving the LibreCAD equation solvers are capable of handling quartic equations. This imiplementation should be in LibreCAD V3, but backporting to the current stable release V2 is also encouraged.<br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|- bgcolor=#fafafa<br />
|width=62%|'''[[SmartSnap]]:''' Currently LibreCAD has various snap capabilities, but they are only directly on entities, or on the grid.<br />
With smart snap LibreCAD can find endpoints, length, arc sizes of the 'same' at different locations. This allows for much faster creating of drawings because entering of new entities require less steps. Each time LibreCAD finds a smart snap, the point or entry would light up on the screen showing the users the snap interaction.<br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[LibreCAD on mobile]]:''' Qt5 support for mobile (Android and iOS, see [http://doc.qt.digia.com/qtcreator-2.1/creator-mobile-example.html Qt mobile]. The framework of creating a mobile version LibreCAD needs to be created. This platform support should be implemented for the LibreCAD V3, but support for the current stable release (V2) should be considered during the framework design.<br />
|align=center|Qt Android iOS<br />
|align=center|MEDIUM<br />
|align=center|[[dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[Support for multiple units upon data entry]]:''' Similar to [http://sourceforge.net/tracker/index.php?func=detail&aid=3399363&group_id=342582&atid=1433847 feet and inches support], support for supplying LibreCAD with different units. For example if LibreCAD was set to 'foot' in the unit setup, it should be possible to enter a unit of [1" + 2'], or [1.2meter]. LibreCAD would then convert the entered units to the unit LibreCAD is operating/set for. Various measuring system should be supported.<br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|R. van Twisk <gsoc_2014@rvt.dds.nl>,dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|}<br />
<br />
= HOW TO SUBMIT A PATCH? =<br />
1) To create patch first clone our repository and make a new branch<br />
<pre>$git clone https://github.com/LibreCAD/LibreCAD.git<br />
$cd LibreCAD<br />
$git checkout -b new_branch</pre><br />
2) Update your code in new branch<br><br />
3) Create a patch:<br><br />
Assuming your changes are in new branch and didn’t yet merge it to master branch.<br />
<pre>$git format-patch master --stdout > my_patch.patch</pre><br />
This will create a new file my_patch.patch with all changes from new_branch<br><br />
Now, you have a patch for the fix you wrote. Send it to the maintainer of the project …<br />
<br />
It's recommended to use github's pull requests instead of patches: [https://help.github.com/articles/using-pull-requests Using pull requests]</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=GSoCGSoC2015-02-23T15:08:49Z<p>R. van Twisk: Created page with "Below is a checklist to help students get set up quickly. Items are categorized to help you prepare your application, get set up to work, and become familiarized with basic in..."</p>
<hr />
<div>Below is a checklist to help students get set up quickly. Items are categorized to help you prepare your application, get set up to work, and become familiarized with basic infrastructure.<br />
<br />
There are some step's you (as a student) have to take to participate in GSoC, we have listen them below to help you understand what GSoC is about, what project idea's there are and how to participate. <br />
<br />
<br />
== IN ORDER TO APPLY ==<br />
<br />
* Please checkout our project! See our project idea's page ** [[GSoC_2015|Google Summer of Code Project ideas]] If you don't see a nice project, but you do like LibreCAD and have a nice idea you might want to implement, do let us know!<br />
* Introduce yourself to us, join us on the IRC channel (#librecad@freenode.org), mail us and get in contact! <br />
* Begin your application, see our guidelines<br />
* Discuss and share your project details, the sooner the better. The sooner you know what you want, the better it is for the mentors. If you have question, don't hesitate to ask, we love feedback.<br />
* You are sure you want to work with us?? Great! Submit you application here : [https://www.google-melange.com]<br />
* Make a useful patch for us, show us your skills and surprise us! It's not really required, but it would help us greatly to understand what person you are. You might not be the only one submitting for LibreCAD and we have limited slots.</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=Main_PageMain Page2015-02-23T14:51:21Z<p>R. van Twisk: </p>
<hr />
<div>'''Welcome to the LibreCAD Wiki!'''<br />
<br />
{| width="100%" cellspacing="10px" style="table-layout:fixed"<br />
|-<br />
|colspan="4" style="background-color:#f0f0f0;vertical-align:top;"|<div style="background-color:#8bca01;font-size:11pt;font-weight:bold;padding:4px;text-align:center">What exactly is LibreCAD?</div><br />
<div style="padding:12px;"><br />
<br />
<blockquote>LibreCAD is a free Open Source CAD application for Windows, Apple and Linux. Support and documentation is free from our large, dedicated community of users, contributors and developers. You, too, can also get involved!</blockquote><br />
''From [http://librecad.org LibreCAD's home page]''<br />
<br />
LibreCAD is QCad ported from Qt3 to Qt4. It was originally called CADuntu. It is currently being ported to Qt5. It is one of the most complete open source 2D CAD programs on the market.<br />
<br />
This is the community site which provides semi-static documentation for [http://librecad.org LibreCAD] users and developers.<br />
Content is available under Creative Commons Attribution Share Alike.<br />
<br />
If you wish you get involved with this documentation effort, please visit the [[LibreCAD Wiki:Community portal]] page. If you wish you get involved in development directly, head over to our [https://github.com/LibreCAD/LibreCAD GitHub repo] and get started!<br />
<br />
If you think you've found a bug or have an idea for an improvement head over to the [https://sourceforge.net/tracker/?group_id=342582 LibreCAD Tracker on Sourceforge].<br />
<br />
'''Other Links:'''<br />
*[http://librecad.org/cms/home.html Homepage]<br />
*[http://librecad.org/cms/home/get-help/forum.html Forum]<br />
*[http://blog.librecad.org/ Blog]<br />
*[http://www.youtube.com/results?search_query=librecad Video Tutorials]<br />
*[http://librecad.org/cms/home/get-help.html Other ways to give/get help]<br />
</div><br />
|colspan="2" style="background-color:#f0f0f0;vertical-align:top;"|<div style="background-color:#8bca01;font-size:11pt;font-weight:bold;padding:4px;text-align:center">Screenshot</div><br />
<div style="padding:12px;"><br />
<br />
[[File: Lcnotclosed.png|x325px|center|frame|LibreCAD window]]<br />
<br />
</div><br />
|-<br />
|colspan="2" style="background-color:#f0f0f0;vertical-align:top;"|<div style="background-color:#8bca01;font-size:11pt;font-weight:bold;padding:4px;text-align:center">Wiki Topics</div><br />
<div style="padding:12px;"><br />
<br />
<!-- <br />
*[[Project Introduction]]<br />
*[[CAD Concepts]]<br />
(links moved to "LibreCAD users Manual")<br />
<br />
*[[HowTos and Guides]]<br />
(content moved to "LibreCAD users Manual")--><br />
*'''[[LibreCAD users Manual]]'''<br />
*[[LibreCAD-2 Installation]]<br />
*[[Math bits]]<br />
*[[API &amp; Development]]<br />
*[[GUI Translators|Translating LibreCAD]]<br />
*[[Resource Links]]<br />
*[[Part Libraries]] (& Symbols)<br />
*[[LibreCAD version 3 design]]<br />
<br />
</div><br />
|colspan="2" style="background-color:#f0f0f0;vertical-align:top;"|<div style="background-color:#8bca01;font-size:11pt;font-weight:bold;padding:4px;text-align:center">Versioned Documentation</div><br />
<div style="padding:12px;"><br />
<br />
*[[LibreCAD v1 Users' Manual]] (in progress)<br />
*[[LibreCAD v1 Quick Start Guide]] (in progress)<br />
*[[LibreCAD v1 Developers' Handbook]] (in progress)<br />
<br />
</div><br />
|colspan="2" style="background-color:#f0f0f0;vertical-align:top;"|<div style="background-color:#8bca01;font-size:11pt;font-weight:bold;padding:4px;text-align:center">Documentation Under Development</div><br />
<div style="padding:12px;"><br />
<br />
*[[LibreCAD Users Manual]]<br />
*[[LibreCAD Installation from Source]]<br />
*[[LibreCAD Quick Start Guide]]<br />
*[[LibreCAD Brief Overview]]<br />
*[[LibreCAD Developers' Handbook]]<br />
*[[LibreCAD Plugin Development]]<br />
<br />
</div><br />
|-<br />
|colspan="6" style="background-color:#f0f0f0;vertical-align:top;"|<div style="background-color:#8bca01;font-size:11pt;font-weight:bold;padding:4px;text-align:center">Things We Need</div><br />
<div style="padding:12px;"><br />
<br />
* Help Wanted. We welcome Open Source Developers to join us, to improve this free drawing tool in exciting fields such as:<br />
** Help building LibreCAD wiki. Because LibreCAD doesn't have a user manual yet, please contribute to user wiki based on your knowledge accumulated. If you have figured out a feature in LibreCAD, please add to our wiki to help other users. Due to spam, auto-account creation is disabled. Please feel free to contact us by [http://librecad.org/cms/home/get-help.html irc or forum] to set up your account.<br />
** Implement more command line support for actions. Currently, there are many actions there without command line support, we need to complete this part of implementation and add the relevant documents.<br />
** Add support for native text based on Qt fonts. Right now, only stick fonts are supported. When the usage doesn't require stick fonts, native Qt fonts should be used for better multi-language support and efficiency<br />
** Implement a new and robust hatch generating algorithm<br />
** The current spline implementation is not efficient, we would like to replace it with a better spline implementation and add both spline and Bezier support as well, see [https://github.com/LibreCAD/LibreCAD/issues/322 Bezier]<br />
** We have implemented new math support for hyperbola and parabola. Implementation support for hyperbola/parabola entities would make LibreCAD capable of doing all conic sections.<br />
** Feature tweaking and bug fixing for printing/painter<br />
** refactor header files to speed up the building process, support for pch headers<br />
** Document writers to help building wiki and user manuals<br />
** Artists to create icon themes and GUI layout<br />
** Add support for macports and Windows 8<br />
** Quality Assurance, bug hunting<br />
** Please visit our feature request tracker on sf.net for more information: [https://sourceforge.net/tracker/?atid=1433847&group_id=342582 feature requests]<br />
<br />
If you are interested in starting your open source development for LibreCAD, please feel free to leave your messages in irc/forum.<br />
<br />
*[[Contributors]]<br />
** [[GSoC_2015|Google Summer of Code Mentors and Students, 2015]]<br />
** <del>[[GSoC_2014|Google Summer of Code Mentors and Students, 2014]]</del><br />
** <del>[[GSoC_2013|Google Summer of Code Mentors and Students, 2013]]</del><br />
** <del>[[GSoC_2012|Google Summer of Code Mentors and Students, 2012]]</del><br />
*[[Editors]]<br />
*[[GUI Translators]]<br />
*A [http://www.mediawiki.org MediaWiki] theme that fits a little more neatly with the [http://librecad.org LibreCAD website] (would be nice, anyway)<br />
<br />
** [[GSoC|Google Summer of Code Check List]]<br />
<br />
</div><br />
|}</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=GSoC_2015GSoC 20152015-02-20T14:40:58Z<p>R. van Twisk: </p>
<hr />
<div>[[File:GSoC-2015.png|100px|GSoC 2015 logo]]<br />
<br />
= LibreCAD Projects Ideas =<br />
<br />
LibreCAD is a free Open Source CAD application for Windows, Apple and Linux. Support and documentation is free from our large, dedicated community of users, contributors and developers.<br />
<br />
'''REMEMBER''' These are ideas for GSoC, if you want to work on a other subject then any of the the below that will benefit LibreCAD, then please don't hesitate and let us know! Contact me (Ries) or Dongxu and let us know your thought's and ideas!<br />
We ar looking forward to hear how ''you'' want to improve LibreCAD!<br />
<br />
{| bgcolor=#fff<br />
!<br />
!align=center|Languages<br />
!align=center|Difficulty<br />
!align=center|Contacts<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[LibreCAD 3 UI Phase 1]]:''' After the project in 2014, LibreCAD engine is maturing, and it's reasonable to add GUI support for drawing and editing actions to start exposing it to end users. We have separated this in 2 phases<br />
First phase:<br />
<br />
Within our current LibreCAD 3 there is a library that handles drawing of entities. <br />
This needs to be extended such that it can handle mouse/keyboard input and have the capability to create entities within our document. We require a framework that can easily be extended such that other entities can be created with or without constrains.<br />
Constrains can include must be a extendable framework<br />
* Snap on grid<br />
* Snap on snap point's of entities<br />
* Snap tangent on other entities<br />
* Vertical/Horizontal constrains<br />
* others... <br />
<br />
This portion doesn't require a UI with icons/buttons but a API in/around the document canvas that can handle the above such it can be included in other applications other then LibreCAD (BRL-CAD/FreeCAD etc...)<br />
<br />
|align=center|C++,QT,UI<br />
|align=center|MEDIUM <br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >, R. van Twisk <LibreCAD@rvt.dds.nl>]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[LibreCAD 3 UI Phase 2]]:''' After the project in 2014, LibreCAD engine is maturing, and it's reasonable to add GUI support for drawing and editing actions to start exposing it to end users. We have separated this in 2 phases<br />
Second phase:<br />
<br />
Build a UI that communicates with the document canvas. This is the portion that does have the UI/Buttons/Menu's We are leaning towards using QT but any other UI framework is open to suggestion.<br />
Initially we are looking towards the framework portion so we can work and extend but at a minimum we should be able to draw and manipulate the basic entities.<br />
<br />
|align=center|C++ , Qt, UI<br />
|align=center|HIGH<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|R. van Twisk <LibreCAD@rvt.dds.nl>]]<br />
|-<br />
|<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[LibreCAD 3 Math support]]:''' For LibreCAD 3 we need to implement more manipulation and creation of entities based on existing entity information.<br />
Examples of creation:<br />
* Offset of spline, line, circle etc<br />
* Make entities tangent to each other (with restrictions)<br />
* Circle inscribed (example in LibreCAD 2)<br />
* Circle tangential (example in LibreCAD 2)<br />
<br />
Examples of manipulation:<br />
* trimming of entities<br />
* lengthen of entities (to extend to a specific location)<br />
* Rounding ( Bevel of entities<br />
* Change direction of entities. so all start/end's are connected for a list of entities<br />
* Polyline generation of selected entities<br />
<br />
|align=center|C++,Math<br />
|align=center|MEDIUM TO HIGH<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >, R. van Twisk <LibreCAD@rvt.dds.nl>]]<br />
|-<br />
<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[Improve contour topology support]]:''' Similar to [http://sourceforge.net/p/librecad/feature-requests/21/ hatching by clicking], more robust handling of contours is desirable in LibreCAD. In the process, support for area enclosed in a contour should be supported as well (see, [[Math_bits#Area_within_a_simple_closed_contour]]).<br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[Improve precision and robustness of equation solvers]]:''' LibreCAD uses its own equation solvers for polynominal equations and systems of equation up to the quartic order. Robustness is of great importance for features such as finding common tangential circles. An ideal solution involves adding multi-precision support for the current equation solvers in used by LibreCAD, either by using a 3rd party library or by direct implementation. <br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[Conic curve support]]:''' LibreCAD supports basic entity types including ellipse. It's desirable to have support for parabola and hyperbola as primitive entity types, giving the LibreCAD equation solvers are capable of handling quartic equations. This imiplementation should be in LibreCAD V3, but backporting to the current stable release V2 is also encouraged.<br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|- bgcolor=#fafafa<br />
|width=62%|'''[[SmartSnap]]:''' Currently LibreCAD has various snap capabilities, but they are only directly on entities, or on the grid.<br />
With smart snap LibreCAD can find endpoints, length, arc sizes of the 'same' at different locations. This allows for much faster creating of drawings because entering of new entities require less steps. Each time LibreCAD finds a smart snap, the point or entry would light up on the screen showing the users the snap interaction.<br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[LibreCAD on mobile]]:''' Qt5 support for mobile (Android and iOS, see [http://doc.qt.digia.com/qtcreator-2.1/creator-mobile-example.html Qt mobile]. The framework of creating a mobile version LibreCAD needs to be created. This platform support should be implemented for the LibreCAD V3, but support for the current stable release (V2) should be considered during the framework design.<br />
|align=center|Qt Android iOS<br />
|align=center|MEDIUM<br />
|align=center|[[dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[Support for multiple units upon data entry]]:''' Similar to [http://sourceforge.net/tracker/index.php?func=detail&aid=3399363&group_id=342582&atid=1433847 feet and inches support], support for supplying LibreCAD with different units. For example if LibreCAD was set to 'foot' in the unit setup, it should be possible to enter a unit of [1" + 2'], or [1.2meter]. LibreCAD would then convert the entered units to the unit LibreCAD is operating/set for. Various measuring system should be supported.<br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|R. van Twisk <gsoc_2014@rvt.dds.nl>,dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|}<br />
<br />
= HOW TO SUBMIT A PATCH? =<br />
1) To create patch first clone our repository and make a new branch<br />
<pre>$git clone https://github.com/LibreCAD/LibreCAD.git<br />
$cd LibreCAD<br />
$git checkout -b new_branch</pre><br />
2) Update your code in new branch<br><br />
3) Create a patch:<br><br />
Assuming your changes are in new branch and didn’t yet merge it to master branch.<br />
<pre>$git format-patch master --stdout > my_patch.patch</pre><br />
This will create a new file my_patch.patch with all changes from new_branch<br><br />
Now, you have a patch for the fix you wrote. Send it to the maintainer of the project …<br />
<br />
It's recommended to use github's pull requests instead of patches: [https://help.github.com/articles/using-pull-requests Using pull requests]</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=GSoC_2015GSoC 20152015-02-20T14:39:54Z<p>R. van Twisk: </p>
<hr />
<div>[[File:GSoC-2015.png|100px|GSoC 2015 logo]]<br />
<br />
= LibreCAD Projects Ideas =<br />
<br />
LibreCAD is a free Open Source CAD application for Windows, Apple and Linux. Support and documentation is free from our large, dedicated community of users, contributors and developers.<br />
<br />
*REMEMBER* These are ideas for GSoC, if you want to work on a other subject then any of the the below that will benefit LibreCAD, then please don't hesitate and let us know! Contact me (Ries) or Dongxu and let us know your thought's and ideas!<br />
We ar looking forward to hear how *you* want to improve LibreCAD!<br />
<br />
{| bgcolor=#fff<br />
!<br />
!align=center|Languages<br />
!align=center|Difficulty<br />
!align=center|Contacts<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[LibreCAD 3 UI Phase 1]]:''' After the project in 2014, LibreCAD engine is maturing, and it's reasonable to add GUI support for drawing and editing actions to start exposing it to end users. We have separated this in 2 phases<br />
First phase:<br />
<br />
Within our current LibreCAD 3 there is a library that handles drawing of entities. <br />
This needs to be extended such that it can handle mouse/keyboard input and have the capability to create entities within our document. We require a framework that can easily be extended such that other entities can be created with or without constrains.<br />
Constrains can include must be a extendable framework<br />
* Snap on grid<br />
* Snap on snap point's of entities<br />
* Snap tangent on other entities<br />
* Vertical/Horizontal constrains<br />
* others... <br />
<br />
This portion doesn't require a UI with icons/buttons but a API in/around the document canvas that can handle the above such it can be included in other applications other then LibreCAD (BRL-CAD/FreeCAD etc...)<br />
<br />
|align=center|C++,QT,UI<br />
|align=center|MEDIUM <br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >, R. van Twisk <LibreCAD@rvt.dds.nl>]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[LibreCAD 3 UI Phase 2]]:''' After the project in 2014, LibreCAD engine is maturing, and it's reasonable to add GUI support for drawing and editing actions to start exposing it to end users. We have separated this in 2 phases<br />
Second phase:<br />
<br />
Build a UI that communicates with the document canvas. This is the portion that does have the UI/Buttons/Menu's We are leaning towards using QT but any other UI framework is open to suggestion.<br />
Initially we are looking towards the framework portion so we can work and extend but at a minimum we should be able to draw and manipulate the basic entities.<br />
<br />
|align=center|C++ , Qt, UI<br />
|align=center|HIGH<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|R. van Twisk <LibreCAD@rvt.dds.nl>]]<br />
|-<br />
|<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[LibreCAD 3 Math support]]:''' For LibreCAD 3 we need to implement more manipulation and creation of entities based on existing entity information.<br />
Examples of creation:<br />
* Offset of spline, line, circle etc<br />
* Make entities tangent to each other (with restrictions)<br />
* Circle inscribed (example in LibreCAD 2)<br />
* Circle tangential (example in LibreCAD 2)<br />
<br />
Examples of manipulation:<br />
* trimming of entities<br />
* lengthen of entities (to extend to a specific location)<br />
* Rounding ( Bevel of entities<br />
* Change direction of entities. so all start/end's are connected for a list of entities<br />
* Polyline generation of selected entities<br />
<br />
|align=center|C++,Math<br />
|align=center|MEDIUM TO HIGH<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >, R. van Twisk <LibreCAD@rvt.dds.nl>]]<br />
|-<br />
<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[Improve contour topology support]]:''' Similar to [http://sourceforge.net/p/librecad/feature-requests/21/ hatching by clicking], more robust handling of contours is desirable in LibreCAD. In the process, support for area enclosed in a contour should be supported as well (see, [[Math_bits#Area_within_a_simple_closed_contour]]).<br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[Improve precision and robustness of equation solvers]]:''' LibreCAD uses its own equation solvers for polynominal equations and systems of equation up to the quartic order. Robustness is of great importance for features such as finding common tangential circles. An ideal solution involves adding multi-precision support for the current equation solvers in used by LibreCAD, either by using a 3rd party library or by direct implementation. <br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[Conic curve support]]:''' LibreCAD supports basic entity types including ellipse. It's desirable to have support for parabola and hyperbola as primitive entity types, giving the LibreCAD equation solvers are capable of handling quartic equations. This imiplementation should be in LibreCAD V3, but backporting to the current stable release V2 is also encouraged.<br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|- bgcolor=#fafafa<br />
|width=62%|'''[[SmartSnap]]:''' Currently LibreCAD has various snap capabilities, but they are only directly on entities, or on the grid.<br />
With smart snap LibreCAD can find endpoints, length, arc sizes of the 'same' at different locations. This allows for much faster creating of drawings because entering of new entities require less steps. Each time LibreCAD finds a smart snap, the point or entry would light up on the screen showing the users the snap interaction.<br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[LibreCAD on mobile]]:''' Qt5 support for mobile (Android and iOS, see [http://doc.qt.digia.com/qtcreator-2.1/creator-mobile-example.html Qt mobile]. The framework of creating a mobile version LibreCAD needs to be created. This platform support should be implemented for the LibreCAD V3, but support for the current stable release (V2) should be considered during the framework design.<br />
|align=center|Qt Android iOS<br />
|align=center|MEDIUM<br />
|align=center|[[dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[Support for multiple units upon data entry]]:''' Similar to [http://sourceforge.net/tracker/index.php?func=detail&aid=3399363&group_id=342582&atid=1433847 feet and inches support], support for supplying LibreCAD with different units. For example if LibreCAD was set to 'foot' in the unit setup, it should be possible to enter a unit of [1" + 2'], or [1.2meter]. LibreCAD would then convert the entered units to the unit LibreCAD is operating/set for. Various measuring system should be supported.<br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|R. van Twisk <gsoc_2014@rvt.dds.nl>,dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|}<br />
<br />
= HOW TO SUBMIT A PATCH? =<br />
1) To create patch first clone our repository and make a new branch<br />
<pre>$git clone https://github.com/LibreCAD/LibreCAD.git<br />
$cd LibreCAD<br />
$git checkout -b new_branch</pre><br />
2) Update your code in new branch<br><br />
3) Create a patch:<br><br />
Assuming your changes are in new branch and didn’t yet merge it to master branch.<br />
<pre>$git format-patch master --stdout > my_patch.patch</pre><br />
This will create a new file my_patch.patch with all changes from new_branch<br><br />
Now, you have a patch for the fix you wrote. Send it to the maintainer of the project …<br />
<br />
It's recommended to use github's pull requests instead of patches: [https://help.github.com/articles/using-pull-requests Using pull requests]</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=GSoC_2015GSoC 20152015-02-20T14:14:07Z<p>R. van Twisk: /* LibreCAD Projects Ideas */</p>
<hr />
<div>[[File:GSoC-2015.png|100px|GSoC 2015 logo]]<br />
<br />
= LibreCAD Projects Ideas =<br />
<br />
LibreCAD is a free Open Source CAD application for Windows, Apple and Linux. Support and documentation is free from our large, dedicated community of users, contributors and developers.<br />
<br />
{| bgcolor=#fff<br />
!<br />
!align=center|Languages<br />
!align=center|Difficulty<br />
!align=center|Contacts<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[LibreCAD 3 UI Phase 1]]:''' After the project in 2014, LibreCAD engine is maturing, and it's reasonable to add GUI support for drawing and editing actions to start exposing it to end users. We have separated this in 2 phases<br />
First phase:<br />
<br />
Within our current LibreCAD 3 there is a library that handles drawing of entities. <br />
This needs to be extended such that it can handle mouse/keyboard input and have the capability to create entities within our document. We require a framework that can easily be extended such that other entities can be created with or without constrains.<br />
Constrains can include must be a extendable framework<br />
* Snap on grid<br />
* Snap on snap point's of entities<br />
* Snap tangent on other entities<br />
* Vertical/Horizontal constrains<br />
* others... <br />
<br />
This portion doesn't require a UI with icons/buttons but a API in/around the document canvas that can handle the above such it can be included in other applications other then LibreCAD (BRL-CAD/FreeCAD etc...)<br />
<br />
|align=center|C++,QT,UI<br />
|align=center|MEDIUM <br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >, R. van Twisk <LibreCAD@rvt.dds.nl>]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[LibreCAD 3 UI Phase 2]]:''' After the project in 2014, LibreCAD engine is maturing, and it's reasonable to add GUI support for drawing and editing actions to start exposing it to end users. We have separated this in 2 phases<br />
Second phase:<br />
<br />
Build a UI that communicates with the document canvas. This is the portion that does have the UI/Buttons/Menu's We are leaning towards using QT but any other UI framework is open to suggestion.<br />
Initially we are looking towards the framework portion so we can work and extend but at a minimum we should be able to draw and manipulate the basic entities.<br />
<br />
|align=center|C++ , Qt, UI<br />
|align=center|HIGH<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|R. van Twisk <LibreCAD@rvt.dds.nl>]]<br />
|-<br />
|<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[LibreCAD 3 Math support]]:''' For LibreCAD 3 we need to implement more manipulation and creation of entities based on existing entity information.<br />
Examples of creation:<br />
* Offset of spline, line, circle etc<br />
* Make entities tangent to each other (with restrictions)<br />
* Circle inscribed (example in LibreCAD 2)<br />
* Circle tangential (example in LibreCAD 2)<br />
<br />
Examples of manipulation:<br />
* trimming of entities<br />
* lengthen of entities (to extend to a specific location)<br />
* Rounding ( Bevel of entities<br />
* Change direction of entities. so all start/end's are connected for a list of entities<br />
* Polyline generation of selected entities<br />
<br />
|align=center|C++,Math<br />
|align=center|MEDIUM TO HIGH<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >, R. van Twisk <LibreCAD@rvt.dds.nl>]]<br />
|-<br />
<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[Improve contour topology support]]:''' Similar to [http://sourceforge.net/p/librecad/feature-requests/21/ hatching by clicking], more robust handling of contours is desirable in LibreCAD. In the process, support for area enclosed in a contour should be supported as well (see, [[Math_bits#Area_within_a_simple_closed_contour]]).<br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[Improve precision and robustness of equation solvers]]:''' LibreCAD uses its own equation solvers for polynominal equations and systems of equation up to the quartic order. Robustness is of great importance for features such as finding common tangential circles. An ideal solution involves adding multi-precision support for the current equation solvers in used by LibreCAD, either by using a 3rd party library or by direct implementation. <br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[Conic curve support]]:''' LibreCAD supports basic entity types including ellipse. It's desirable to have support for parabola and hyperbola as primitive entity types, giving the LibreCAD equation solvers are capable of handling quartic equations. This imiplementation should be in LibreCAD V3, but backporting to the current stable release V2 is also encouraged.<br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|- bgcolor=#fafafa<br />
|width=62%|'''[[SmartSnap]]:''' Currently LibreCAD has various snap capabilities, but they are only directly on entities, or on the grid.<br />
With smart snap LibreCAD can find endpoints, length, arc sizes of the 'same' at different locations. This allows for much faster creating of drawings because entering of new entities require less steps. Each time LibreCAD finds a smart snap, the point or entry would light up on the screen showing the users the snap interaction.<br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[LibreCAD on mobile]]:''' Qt5 support for mobile (Android and iOS, see [http://doc.qt.digia.com/qtcreator-2.1/creator-mobile-example.html Qt mobile]. The framework of creating a mobile version LibreCAD needs to be created. This platform support should be implemented for the LibreCAD V3, but support for the current stable release (V2) should be considered during the framework design.<br />
|align=center|Qt Android iOS<br />
|align=center|MEDIUM<br />
|align=center|[[dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|- bgcolor=#ffffff<br />
|width=62%|'''[[Support for multiple units upon data entry]]:''' Similar to [http://sourceforge.net/tracker/index.php?func=detail&aid=3399363&group_id=342582&atid=1433847 feet and inches support], support for supplying LibreCAD with different units. For example if LibreCAD was set to 'foot' in the unit setup, it should be possible to enter a unit of [1" + 2'], or [1.2meter]. LibreCAD would then convert the entered units to the unit LibreCAD is operating/set for. Various measuring system should be supported.<br />
|align=center|C++<br />
|align=center|MEDIUM<br />
|align=center|[[Google_Summer_of_Code/Project_Ideas#Mentors|R. van Twisk <gsoc_2014@rvt.dds.nl>,dli (Dongxu Li < dongxuli2011 at gmail >]]<br />
|-<br />
<br />
|}<br />
<br />
= HOW TO SUBMIT A PATCH? =<br />
1) To create patch first clone our repository and make a new branch<br />
<pre>$git clone https://github.com/LibreCAD/LibreCAD.git<br />
$cd LibreCAD<br />
$git checkout -b new_branch</pre><br />
2) Update your code in new branch<br><br />
3) Create a patch:<br><br />
Assuming your changes are in new branch and didn’t yet merge it to master branch.<br />
<pre>$git format-patch master --stdout > my_patch.patch</pre><br />
This will create a new file my_patch.patch with all changes from new_branch<br><br />
Now, you have a patch for the fix you wrote. Send it to the maintainer of the project …<br />
<br />
It's recommended to use github's pull requests instead of patches: [https://help.github.com/articles/using-pull-requests Using pull requests]</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=LibreCAD_3_-_LibreCAD_3_-_code_styleLibreCAD 3 - LibreCAD 3 - code style2015-01-18T14:30:15Z<p>R. van Twisk: </p>
<hr />
<div>== Code style guide ==<br />
<br />
'''Accessor naming:'''<br />
<br />
<pre>use foo->layer()<br />
</pre><br />
instead of<br />
<pre><br />
foo->getLayer();<br />
</pre><br />
<br />
<br />
'''Immutables:'''<br />
Are immutables must be created 'valid', throw an exception if a immutable is attempted to be created that is invalid.<br />
<br />
example:<br />
<pre><br />
Circle::Circle(Coordinate const& center, double radius) : _center(center), _radius(radius) {<br />
if (_radius < 0.0) {<br />
throw "Invalid radius";<br />
}<br />
}<br />
<br />
All variables in a immutable class must be declared as const<br />
</pre><br />
<br />
'''Exceptions:'''<br />
<br />
Only throw exceptions in rare situations that are effectively unreasonable.<br />
<br />
''For example:''<br />
<br />
<pre><br />
document->entityByID(...); // return null if a entry does not exists<br />
</pre><br />
<br />
<br />
'''hide shared_ptr behind a typedef:'''<br />
<br />
<pre><br />
typedef std::shared_ptr<Circle> Circle_SPtr;<br />
typedef std::shared_ptr<const Circle> Circle_CSPtr;<br />
</pre><br />
<br />
This so we can 'shorten' our shred pointers, example:<br />
<br />
<pre><br />
std::list<std::shared_ptr<const Circle>> myListLong; // Less readble<br />
std::list<Circle_CSPtr> myListReadable; // better readable<br />
</pre><br />
<br />
<br />
'''Shared pointer passing:'''<br />
<br />
never pass shared_ptr by reference:<br />
<br />
Good:<br />
<pre><br />
Line::Line(geo::Coordinate const& start, geo::Coordinate const& end, Layer_SPtr const layer) : CADEntity(layer), Vector(start, end) {..}<br />
</pre><br />
<br />
Bad:<br />
<pre><br />
Line::Line(geo::Coordinate const& start, geo::Coordinate const& end, Layer_SPtr const &layer) : CADEntity(layer), Vector(start, end) {..}<br />
</pre><br />
<br />
'''using namespace std;'''<br />
<br />
Don't bring in the std namespace into global. So always use std::vector, std::map, std::string etc...<br />
<br />
'''Variable declarations on separate lines'''<br />
<br />
For readability we prefer to have variables declared on separate lines.<br />
This will make commenting on variables when needed easer and in general add to readability.<br />
<br />
good style:<br />
<pre><br />
const Coordinate _extensionPoint1;<br />
const Coordinate _extensionPoint2;<br />
</pre><br />
<br />
bad style:<br />
<pre><br />
const Coordinate _extension_point1, _extension_point2;<br />
</pre><br />
<br />
'''Const variables '''<br />
Const modifier must be added after the variable type:<br />
Good:<br />
<pre><br />
Line::Line(geo::Coordinate const& start, geo::Coordinate const& end, Layer_SPtr const layer) : CADEntity(layer), Vector(start, end) {..}<br />
</pre><br />
<br />
Bad:<br />
<pre><br />
Line::Line(geo::Coordinate const & start, geo::Coordinate const & end, Layer_SPtr const &layer) : CADEntity(layer), Vector(start, end) {..}<br />
</pre><br />
<br />
'''Use Camel case '''<br />
Try to use camel case as much as possible<br />
<br />
Some exceptions:<br />
* Variable names in a class can start with a underscore<br />
* add a _ (underscore) if the variable name get's unreadable, for example this is ok Dimension_CSptr <br />
* Function names to add clarification for example on_dimRadial_changed. where 'on' and 'changed' are not part of the variable name dimRadial but they are there to notify something.<br />
<br />
Good:<br />
<pre><br />
const String _textValue;<br />
void on_dimRadial_change() {...};<br />
</pre><br />
<br />
Bad:<br />
<pre><br />
const String _text_value;<br />
void on_dim_radial_change() {...};<br />
</pre><br />
<br />
'''Class name's always start with a upper case letter'''<br />
<br />
'''Variable name's always starts with a lower case letter'''</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=LibreCAD_3_-_LibreCAD_3_-_code_styleLibreCAD 3 - LibreCAD 3 - code style2015-01-18T14:29:41Z<p>R. van Twisk: /* Code style guide */</p>
<hr />
<div>== Code style guide ==<br />
<br />
'''Accessor naming:'''<br />
<br />
<pre>use foo->layer()<br />
</pre><br />
instead of<br />
<pre><br />
foo->getLayer();<br />
</pre><br />
<br />
<br />
'''Immutables:'''<br />
Are immutables must be created 'valid', throw an exception if a immutable is attempted to be created that is invalid.<br />
<br />
example:<br />
<pre><br />
Circle::Circle(Coordinate const& center, double radius) : _center(center), _radius(radius) {<br />
if (_radius < 0.0) {<br />
throw "Invalid radius";<br />
}<br />
}<br />
<br />
All variables in a immutable class must be declared as const<br />
</pre><br />
<br />
'''Exceptions:'''<br />
<br />
Only throw exceptions in rare situations that are effectively unreasonable.<br />
<br />
''For example:''<br />
<br />
<pre><br />
document->entityByID(...); // return null if a entry does not exists<br />
</pre><br />
<br />
<br />
'''hide shared_ptr behind a typedef:'''<br />
<br />
<pre><br />
typedef std::shared_ptr<Circle> Circle_SPtr;<br />
typedef std::shared_ptr<const Circle> Circle_CSPtr;<br />
</pre><br />
<br />
This so we can 'shorten' our shred pointers, example:<br />
<br />
<pre><br />
std::list<std::shared_ptr<const Circle>> myListLong; // Less readble<br />
std::list<Circle_CSPtr> myListReadable; // better readable<br />
</pre><br />
<br />
<br />
'''Shared pointer passing:'''<br />
<br />
never pass shared_ptr by reference:<br />
<br />
Good:<br />
<pre><br />
Line::Line(geo::Coordinate const& start, geo::Coordinate const& end, Layer_SPtr const layer) : CADEntity(layer), Vector(start, end) {..}<br />
</pre><br />
<br />
Bad:<br />
<pre><br />
Line::Line(geo::Coordinate const& start, geo::Coordinate const& end, Layer_SPtr const &layer) : CADEntity(layer), Vector(start, end) {..}<br />
</pre><br />
<br />
'''using namespace std;'''<br />
<br />
Don't bring in the std namespace into global. So always use std::vector, std::map, std::string etc...<br />
<br />
'''Variable declarations on separate lines'''<br />
<br />
For readability we prefer to have variables declared on separate lines.<br />
This will make commenting on variables when needed easer and in general add to readability.<br />
<br />
good style:<br />
<pre><br />
const Coordinate _extensionPoint1;<br />
const Coordinate _extensionPoint2;<br />
</pre><br />
<br />
bad style:<br />
<pre><br />
const Coordinate _extension_point1, _extension_point2;<br />
</pre><br />
<br />
'''Const variables '''<br />
Const modifier must be added after the variable type:<br />
Good:<br />
<pre><br />
Line::Line(geo::Coordinate const& start, geo::Coordinate const& end, const Layer_SPtr layer) : CADEntity(layer), Vector(start, end) {..}<br />
</pre><br />
<br />
Bad:<br />
<pre><br />
Line::Line(geo::Coordinate const & start, geo::Coordinate const & end, const Layer_SPtr &layer) : CADEntity(layer), Vector(start, end) {..}<br />
</pre><br />
<br />
'''Use Camel case '''<br />
Try to use camel case as much as possible<br />
<br />
Some exceptions:<br />
* Variable names in a class can start with a underscore<br />
* add a _ (underscore) if the variable name get's unreadable, for example this is ok Dimension_CSptr <br />
* Function names to add clarification for example on_dimRadial_changed. where 'on' and 'changed' are not part of the variable name dimRadial but they are there to notify something.<br />
<br />
Good:<br />
<pre><br />
const String _textValue;<br />
void on_dimRadial_change() {...};<br />
</pre><br />
<br />
Bad:<br />
<pre><br />
const String _text_value;<br />
void on_dim_radial_change() {...};<br />
</pre><br />
<br />
'''Class name's always start with a upper case letter'''<br />
<br />
'''Variable name's always starts with a lower case letter'''</div>R. van Twiskhttps://wiki.librecad.org/index.php?title=LibreCAD_3_-_LibreCAD_3_-_code_styleLibreCAD 3 - LibreCAD 3 - code style2015-01-18T14:27:48Z<p>R. van Twisk: /* Code style guide */</p>
<hr />
<div>== Code style guide ==<br />
<br />
'''Accessor naming:'''<br />
<br />
<pre>use foo->layer()<br />
</pre><br />
instead of<br />
<pre><br />
foo->getLayer();<br />
</pre><br />
<br />
<br />
'''Immutables:'''<br />
Are immutables must be created 'valid', throw an exception if a immutable is attempted to be created that is invalid.<br />
<br />
example:<br />
<pre><br />
Circle::Circle(const Coordinate& center, double radius) : _center(center), _radius(radius) {<br />
if (_radius < 0.0) {<br />
throw "Invalid radius";<br />
}<br />
}<br />
<br />
All variables in a immutable class must be declared as const<br />
</pre><br />
<br />
'''Exceptions:'''<br />
<br />
Only throw exceptions in rare situations that are effectively unreasonable.<br />
<br />
''For example:''<br />
<br />
<pre><br />
document->entityByID(...); // return null if a entry does not exists<br />
</pre><br />
<br />
<br />
'''hide shared_ptr behind a typedef:'''<br />
<br />
<pre><br />
typedef std::shared_ptr<Circle> Circle_SPtr;<br />
typedef std::shared_ptr<const Circle> Circle_CSPtr;<br />
</pre><br />
<br />
This so we can 'shorten' our shred pointers, example:<br />
<br />
<pre><br />
std::list<std::shared_ptr<const Circle>> myListLong; // Less readble<br />
std::list<Circle_CSPtr> myListReadable; // better readable<br />
</pre><br />
<br />
<br />
'''Shared pointer passing:'''<br />
<br />
never pass shared_ptr by reference:<br />
<br />
Good:<br />
<pre><br />
Line::Line(const geo::Coordinate& start, const geo::Coordinate& end, const Layer_SPtr layer) : CADEntity(layer), Vector(start, end) {..}<br />
</pre><br />
<br />
Bad:<br />
<pre><br />
Line::Line(const geo::Coordinate& start, const geo::Coordinate& end, const Layer_SPtr &layer) : CADEntity(layer), Vector(start, end) {..}<br />
</pre><br />
<br />
'''using namespace std;'''<br />
<br />
Don't bring in the std namespace into global. So always use std::vector, std::map, std::string etc...<br />
<br />
'''Variable declarations on separate lines'''<br />
<br />
For readability we prefer to have variables declared on separate lines.<br />
This will make commenting on variables when needed easer and in general add to readability.<br />
<br />
good style:<br />
<pre><br />
const Coordinate _extensionPoint1;<br />
const Coordinate _extensionPoint2;<br />
</pre><br />
<br />
bad style:<br />
<pre><br />
const Coordinate _extension_point1, _extension_point2;<br />
</pre><br />
<br />
'''Const variables '''<br />
Const modifier must be added after the variable type:<br />
Good:<br />
<pre><br />
Line::Line(const geo::Coordinate& start, const geo::Coordinate& end, const Layer_SPtr layer) : CADEntity(layer), Vector(start, end) {..}<br />
</pre><br />
<br />
Bad:<br />
<pre><br />
Line::Line(geo::Coordinate const & start, geo::Coordinate const & end, const Layer_SPtr &layer) : CADEntity(layer), Vector(start, end) {..}<br />
</pre><br />
<br />
'''Use Camel case'''<br />
Try to use camel case as much as possible<br />
<br />
Some exceptions:<br />
* Variable names in a class can start with a underscore<br />
* add a _ (underscore) if the variable name get's unreadable, for example this is ok Dimension_CSptr <br />
* Function names to add clarification for example on_dimRadial_changed. where 'on' and 'changed' are not part of the variable name dimRadial but they are there to notify something.<br />
<br />
Good:<br />
<pre><br />
const String _textValue;<br />
void on_dimRadial_change() {...};<br />
</pre><br />
<br />
Bad:<br />
<pre><br />
const String _text_value;<br />
void on_dim_radial_change() {...};<br />
</pre><br />
<br />
'''Class name's always start with a upper case letter'''<br />
<br />
'''Variable name's always starts with a lower case letter'''</div>R. van Twisk