Hi all!
I've been using FreeCAD for a while now (couple years?) and I've been wanting to contribute since the program is so useful to me. I saw yorik's post recommending that you "present yourself" so that's what this is
I've been able to compile FreeCAD, and actually I just built a new computer partially so that I could compile large programs like it much faster. I've read through a lot of the documentation recommended on the wiki, and I've poked around a bit in the code as well. I know both Python and C++ (and a few other languages).
It'd be cool if someone wanted to task me with a few simple things just to get my feet wet, but really motivation is to work on things like:
- A "paste-into" feature. For example: Copy a sketch, and when pasting it, check if a body is selected in the treeview and paste it into the body if so. I think I tracked this down to the StdCmdPaste method and "insertFromMimeData". Adding a check here to see if there is a body is selected, a check to see if the mimeData can even be pasted there (a part into a body wouldn't make much sense), and then finally pasting the mimedata into the new location.
- A command language similar to Autocad's (maybe the python tools are already good for this? I should experiment more, but I think simplifying it even further would be nice. I'm imagining being able to hit a hotkey and type in a command like "rect x22 y30"). This seems like it'd probably be on the python side of things, but may require some GUI code written on the C++ side?
Anyway. Great job to the developers who have made FreeCAD into what it is! It's an amazing accomplishment and just gets better every day
Introduction / Wanting to help with Development
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Be nice to others! Respect the FreeCAD code of conduct!
Re: Introduction / Wanting to help with Development
Hi and welcome!zackw wrote: ↑Wed Jul 20, 2022 11:29 pm Hi all!
I've been using FreeCAD for a while now (couple years?) and I've been wanting to contribute since the program is so useful to me. I saw yorik's post recommending that you "present yourself" so that's what this is
I've been able to compile FreeCAD, and actually I just built a new computer partially so that I could compile large programs like it much faster. I've read through a lot of the documentation recommended on the wiki, and I've poked around a bit in the code as well. I know both Python and C++ (and a few other languages).
It'd be cool if someone wanted to task me with a few simple things just to get my feet wet, but really motivation is to work on things like:
- A "paste-into" feature. For example: Copy a sketch, and when pasting it, check if a body is selected in the treeview and paste it into the body if so. I think I tracked this down to the StdCmdPaste method and "insertFromMimeData". Adding a check here to see if there is a body is selected, a check to see if the mimeData can even be pasted there (a part into a body wouldn't make much sense), and then finally pasting the mimedata into the new location.
Glad that you want to join in the fun !
Reworking the copy/paste in the tree is a great idea! It really needs to be improved. I actually had that on my roadmap and I'm super-glad if you want to do it. Here's the topic where I discuss a little bit the subject :
https://forum.freecadweb.org/viewtopic.php?f=10&t=65899
Besides, on the same topic, I worked on a copy paste for geometries inside the sketcher. It hasn't merged yet due to not acceptable code structure. It may give you some ideas :
https://forum.freecadweb.org/viewtopic. ... 38#p567538 & https://forum.freecadweb.org/viewtopic.php?f=19&t=65104
If you want to discuss it further don't hesitate ! I'd be very happy if that copy/paste subject is taken care of.
Cheers
Support me on Patreon: https://www.patreon.com/FreeCadDevDiary
FreeCad Dev Diary channel:[/b] https://www.youtube.com/channel/UCGMTmJ ... NiPSSEhBHA
FreeCad Dev Diary channel:[/b] https://www.youtube.com/channel/UCGMTmJ ... NiPSSEhBHA
Re: Introduction / Wanting to help with Development
Regarding your second sugestion, we are currently working on a widget that allows you to type in the dimensions (so that might be what you were thinking about) :zackw wrote: ↑Wed Jul 20, 2022 11:29 pm - A command language similar to Autocad's (maybe the python tools are already good for this? I should experiment more, but I think simplifying it even further would be nice. I'm imagining being able to hit a hotkey and type in a command like "rect x22 y30"). This seems like it'd probably be on the python side of things, but may require some GUI code written on the C++ side?
https://forum.freecadweb.org/viewtopic. ... &start=130
The thread is super long, so if you want a video that explain roughly what it does : https://youtu.be/K8oTQNpI8CQ
If you need more ideas I can give you some, though I think the copy/paste is a great way to get started. And better start by one topic and get it right so that it can merge fast enough.
Support me on Patreon: https://www.patreon.com/FreeCadDevDiary
FreeCad Dev Diary channel:[/b] https://www.youtube.com/channel/UCGMTmJ ... NiPSSEhBHA
FreeCad Dev Diary channel:[/b] https://www.youtube.com/channel/UCGMTmJ ... NiPSSEhBHA
- adrianinsaval
- Veteran
- Posts: 5541
- Joined: Thu Apr 05, 2018 5:15 pm
Re: Introduction / Wanting to help with Development
Hi and welcome to the forum! It's always nice to see new people willing to help, the copy paste thing is a nice idea, this might be related to it (based on the title, haven't looked) issue #6134
Other possible stuff if you're interested:
issue #7078
issue #6884
issue #6860
issue #6697
issue #6254
I couldn't find an issue for it but another request I have seen around is to have the option in Part Design patterns to specify the spacing & instances instead of total range & instances
In general you can look through the issue list and see if anything peaks your interest or matches your skills and work on it, we appreciate any help. Feel free to ask more details about whatever you're interested in.
Other possible stuff if you're interested:
issue #7078
issue #6884
issue #6860
issue #6697
issue #6254
I couldn't find an issue for it but another request I have seen around is to have the option in Part Design patterns to specify the spacing & instances instead of total range & instances
In general you can look through the issue list and see if anything peaks your interest or matches your skills and work on it, we appreciate any help. Feel free to ask more details about whatever you're interested in.
Re: Introduction / Wanting to help with Development
welcome,
what work do you typically do with fc, and what wb's do you utilize?
for the "command like "rect x22 y30"", think you can easily make that as add-on, a non-modal line-edit widget that parses your mini-lang as fcn-call with args, the functions then add objects to the document - can all be done in python imho
anyhow, any interest in mesh wb? could need a bit of love.
it is hard to avoid meshed 3d nowadays, and better cleaning abilities, setting color per face in gui, etc would probably make fc a better one-stop shop for 3d printing.
a nice feature to have in mesh wb would for example be to be able to snap-move a node , today one has to delete surrounding facets and recreate.
simply do things that you have real interest in and find enjoyable and it should all work out to the best.
what work do you typically do with fc, and what wb's do you utilize?
for the "command like "rect x22 y30"", think you can easily make that as add-on, a non-modal line-edit widget that parses your mini-lang as fcn-call with args, the functions then add objects to the document - can all be done in python imho
anyhow, any interest in mesh wb? could need a bit of love.
it is hard to avoid meshed 3d nowadays, and better cleaning abilities, setting color per face in gui, etc would probably make fc a better one-stop shop for 3d printing.
a nice feature to have in mesh wb would for example be to be able to snap-move a node , today one has to delete surrounding facets and recreate.
simply do things that you have real interest in and find enjoyable and it should all work out to the best.
Re: Introduction / Wanting to help with Development
Thanks for the warm welcome!
@paddle Thanks for the links, these are helpful. It also looks like your tool widget is about what I wanted, I suspect that will serve the purpose nicely! I'll have to play around with it soon
I like the behavior suggestion you made, I'm going to work on mapping out how the current copy/paste system works and then come up with a system to cover the intended behavior as much as possible. It'll also be important to handle other object types properly, and to fit with the dependency and undo functions. Should take me a while to figure out
Thanks for the suggestions @adrianinsaval! I saw issue #6134 before, it seems a lot like what paddle suggested. If/when I get stumped on the copy/paste issue, I will look into some of the other feature requests you linked, they all look pretty manageable. And that last thing has been something I've wanted a few times as well - having to stop drafting and calculate the spacing manually is a bit jarring sometimes. Even if it can be done in-program using the equation editor.
@heda I'm typically modelling small assemblies, often times to 3D print. I also have to do enclosures quite a bit, and brackets and the like. Mostly I use Part Design, Sketcher, and Mesh. I don't typically use any of the assembly workbenches just because most of my assemblies are static and pretty easy to throw together without precise constraints. I'm working on a infotainment system for a Ford Focus 2007 right now, the 3d printed parts need to hold all the electronics down and keep them under a fan. I'm also modelling an experimental multi-material feeder for 3d printers, and some other projects.
I do most of my hardcore mesh work in Blender or MeshLab, so I usually only use like the most basic mesh functions in FreeCAD. I also feel like I'm not so good at that kind of programming
@paddle Thanks for the links, these are helpful. It also looks like your tool widget is about what I wanted, I suspect that will serve the purpose nicely! I'll have to play around with it soon
I like the behavior suggestion you made, I'm going to work on mapping out how the current copy/paste system works and then come up with a system to cover the intended behavior as much as possible. It'll also be important to handle other object types properly, and to fit with the dependency and undo functions. Should take me a while to figure out
Thanks for the suggestions @adrianinsaval! I saw issue #6134 before, it seems a lot like what paddle suggested. If/when I get stumped on the copy/paste issue, I will look into some of the other feature requests you linked, they all look pretty manageable. And that last thing has been something I've wanted a few times as well - having to stop drafting and calculate the spacing manually is a bit jarring sometimes. Even if it can be done in-program using the equation editor.
@heda I'm typically modelling small assemblies, often times to 3D print. I also have to do enclosures quite a bit, and brackets and the like. Mostly I use Part Design, Sketcher, and Mesh. I don't typically use any of the assembly workbenches just because most of my assemblies are static and pretty easy to throw together without precise constraints. I'm working on a infotainment system for a Ford Focus 2007 right now, the 3d printed parts need to hold all the electronics down and keep them under a fan. I'm also modelling an experimental multi-material feeder for 3d printers, and some other projects.
I do most of my hardcore mesh work in Blender or MeshLab, so I usually only use like the most basic mesh functions in FreeCAD. I also feel like I'm not so good at that kind of programming