This post was updated on .
Hello, If anybody wants to try it, the source code is here https://www.dropbox.com/sh/5qi02kt3oe0x6es/AADuNoMC07iJCVWMy1TU6vxVa?dl=0 You will have to know how to set up and install a new plugin from scratch and build LibreCad from source. I've built and tested on Windows using Qt Creator 4.7.0:- Version: 2.2.0-alpha Compiler: GNU GCC 5.3.0 Compiled on: Aug 10 2018 Qt Version: 5.11.1 Boost Version: 1.68.0 System: Windows 10 (10.0). It compiles on linux without errors but I don't know how to set up an entry in the plugins menu on linux. About MAC OS X, I have no idea. TODO:- At the moment it will not divide/break the entities but will draw tick marks where the divisions should be, then you can manually divide. Any questions, please ask. Feedback is welcome. Regards |
Administrator
|
super cool!
even with the manual division, this is still going to be a time saver for a lot of people Ries |
This looks awesome. I' ll try it over the weekend. El vie., 10 de ago. de 2018 12:22, R. van Twisk [via LibreCAD] <[hidden email]> escribió: super cool! |
Administrator
|
Many thanks for sharing this.
I've taken the liberty to add your code to our main repository. https://github.com/LibreCAD/LibreCAD/commit/c43f770a The only difference on Linux and OS X is the path to the plugin binary. Menu entries are created automatically by plugin interface, when the binary is found in plugins folder. I made some minor modifications: - renamed plugin, it's simply Divide now - split source files, one source and header file per class - removed blue text color to match better with LibreCAD GUI How about your git skills? Do you have a github account?
investing less than half an hour into Search function can save hours or days of waiting for a solution
|
This post was updated on .
Hello, Rename :- I used DivideOptions as you already have a menu entry and cmdline entry for Divide. Split :- I did them as one file, as they are quite short. Git skills :- Non existant, Github account :- I have one. The source code has been revised serveral times and updated today 28-8-2013. Edit:- I've updated the source to split the the header & the *.cpp files. 13:30 today. I've left the headers with *.hpp extensions. https://www.dropbox.com/sh/5qi02kt3oe0x6es/AADuNoMC07iJCVWMy1TU6vxVa?dl=0 Regards |
Administrator
|
Sorry, I lost focus on this.
First let me say again, that your efforts are more than welcome! If you want to put more work in your plugin, I see two ways. 1) It is extra work for us to merge your contributions into code base manually, I won't do this too often. So if you won't invest in learning some git basics, I would wait for a more final version to merge manually again. 2) If you are willing to give git a try, I can merge latest changes when you are ready for it and then you can continue with your own forked repository. This allows automatic merge for us, which is much less time consuming. For Windows you need git for Windows, which you find here: https://gitforwindows.org/ And I recommend TortoiseGit, a git GUI for git on Windows: https://tortoisegit.org/ All basics are explained on github: https://guides.github.com/activities/hello-world/ Important, when you go with git, is to work on a separate branch. Otherwise, working on forked master branch will mess up things and makes automatic merging impossible. No matter how you decide to go on, you're contribution is welcome. Don't hesitate to ask if anything is obscure, this can save time for all of us. You can also ping us on IRC channel #librecad or Zulip chat at https://librecad.zulipchat.com/ Armin
investing less than half an hour into Search function can save hours or days of waiting for a solution
|
Hello,
At the moment, I have no idea how to 'Divide/Break' from a C++ program. I did think of sending a string of commands but can't work out how to do this. Any sugggestions would be appriciated. I'll think about using github. Regards |
Hello,
I'm still playing with this. To actually divide the entites, I can save the comands to a file or send each command in order. Suppose I have this line "li;0,0;100,100;k;" as an exmample, if I copy and paste into LibreCad's command box and hit return it works as expected. What I can't work out is how to write to the command line box from within my C++ program. Any help/advice would be appriciated. Regarrds |
Administrator
|
The command box is not the correct place for plugins to modify entities.
There is no interface to communicate with command box from plugins. My research shows that the plugin interface lacks some function for your needs. What you can do with the current interface is to add entities, which represent the split entity. Additionally to the tick entities, add multiple lines or arcs, e.g. on a new layer, to match the origin entity. What the plugin interface is missing, is a method to delete the origin entity (Document_Interface::deleteEntity()). This is noted in the class header comment. Another way would be to implement method Plugin_Entity::split() like Plugin_Entity::rotate() or Plugin_Entity::scale() to split the original entity. You can look at RS_Modification::cut() to see how the divide function works in LibreCAD. The origin entity is deleted and two new entities are inserted in place of the previous entity. This is how your plugin should handle it too, delete the origin and insert multiple smaller entities to create the split contour.
investing less than half an hour into Search function can save hours or days of waiting for a solution
|
This post was updated on .
Hello, Breaks & ticks are working on lines, circles and arcs. Break entities will be drawn on a new layer that will be auto created as shown. Tick entities will be drawn on the current layer or on a layer selected with the 'new' textbox on the plugin interface DropBox has been updated. Regards |
Administrator
|
Many thanks for your improvement.
Here is the first response concerning your plugin http://forum.librecad.org/compile-librecad-and-find-new-feature-tp5716473.html When you will have a break for a couple days, let me know. Then I can review and merge your changes to github and you can continue from official code after that. Armin
investing less than half an hour into Search function can save hours or days of waiting for a solution
|
This post was updated on .
Hello,
I've finished for a while. Regards ps. These work on the ticks and breaks. |
Wow, thanks, awesome work and dedication. El dom., 7 de oct. de 2018 09:16, mad-hatter [via LibreCAD] <[hidden email]> escribió: Hello,I've finished for a while. |
Hello,
'added new plugin Divide, many thanks to contributor mad-hatter' https://github.com/LibreCAD/LibreCAD/commit/c43f770a Has been forked to:- https://github.com/mad-hatter99/LibreCAD/tree/master/plugins/divide Now includes drawing the splits/breaks. Regards |
Administrator
|
Congrats for joining github and pushing your first commits to your fork.
Fortunately I could merge your commits, because you committed on top of the latest main repo commit and the main repo wasn't changed meanwhile. This is not the common way, as it could happen, when you work on your fork, that the main repo is changed by commits. Then, when you work on your forks master branch, the main repo and your fork diverge. This will give conflicts and you can't easily sync your fork with the main repo. The workflow, when you work on your fork is to switch to a new branch. git checkout -b dividePlugin masterThis will switch to the branch dividePlugin where you make your changes and commits. When your work is finished, you can create a pull request in the main repo. After your branch is merged in the main repo, you can switch back to master, delete your dividePlugin branch and sync your master branch with the upstream (main repo). Find more details in github help: https://help.github.com/articles/github-flow/ Now, as I have merged your commits, you have to update your fork to stay in sync. Many thanks again Armin
investing less than half an hour into Search function can save hours or days of waiting for a solution
|
Hello,
As I've managed to screw it up, I think you shoud compile and check it works, l'll revert to adding to DropBox. The only thing left for me do on this is to add polylines, this won't happen for 2/3 months. Regards |
Administrator
|
Travis CI has checked this, your commits have build fine. Also the Windows nightly builds will run tonight, so we'll know more tomorrow. Don't worry.
Armin
investing less than half an hour into Search function can save hours or days of waiting for a solution
|
Free forum by Nabble | Edit this page |