-
WIP Wednesday 8 May 2024
This week in FreeCAD development:
Toponaming: bgbsww added some missing code (there will be more to add, it seems) and started performance testing. So far, things don’t look bad at all performance-wise.
Sketcher:
- PaddleStroke: added arc length to the Dimension tool and fixed the placing of the on-view parameter inputs.
- maxwxyz updated the Sketcher toolbar to list and group all arc tools (incl. hyperbola and parabola).
- FlachyJoe fixed a point where FreeCAD would ask for information about a point of a curve which doesn’t exist.
Assembly: PaddleStroke merged the vast majority of newer Ondsel code: new joints types (Rack and Pinion, Screw, Gears, Belt), limits, Exploded View tool, special drag mode for the distance joint, and various fixes. Some of the features (explosion, new joint types) are considered experimental and require adding ‘ExperimentalFeatures’ boolean parameter added via ‘Tools > Edit parameters…’ (BaseApp > Preferences > Mod > Assembly).
TechDraw:
- WandererFan did a quick fix for the missing fallback default template issue. He also fixed a bug where autocorrect was not handling scaled and rotated reference geometry properly.
- pavltom implemented the user-requested splitting of “sheet” field in the “X / Y” form (X for page ordinal number, Y for total count of pages) into two separate values.
- HowThatWorks added page size to ISO 5457 template borders, replaced page size data fields, and added blank owner data fields.
CAM:
- sliptonic refactored sanity reports to make the logic more modular and further separate it from GUI. He also significantly changed how post-processing is done: not any existing post-processors, but the way they are called; this sets the stage for refactoring the individual postprocessors to have less duplicated code.
- LarryWoestman added tests for A, B, and C parameters to the linuxcnc post.
Materials: davesrocketshop updated material models to separate Hardness from LinearElastic model, added UUID definitions for FEM-dependent models, and updated unit tests. He also expanded the Python API to allow for material creation.
Some of the other changes:
- PaddleStroke introduced QuickMeasure — a status bar area that displays useful measurements for selected geometry features: length, radius, angles etc.
- maxwxyz changed default colors of the new Measure tool for better contrast.
- furgo16 adapted Arch materials to the new Materials path scheme.
- realthunder backported support for toolbar drag-and-drop to status bar and menu bar.
- Roy-043 and paullee0 fixed a few bugs in Arch.
- wwmayer fixed several bugs.
- WandererFan added a privacy policy.
PR stats: In the week from Wednesday, 1 May to Wednesday, 8 May there were 56 pull requests merged. 26 new pull requests were opened.
Issue stats: we closed 73 issues, and 51 new issues were opened. Overall, 1,559 issues are currently open.
-
WIP Wednesday 1 May 2024
This week in FreeCAD development:
Toponaming: most work porting RT’s patches is now done except just one piece of code that was mysteriously overlooked. Both CalligaroV, chennes, and bgbsww contributed to the TNP effort last week. bgbsww also started looking into performance regressions due to toponaming changes and found surprisingly few issues.
Draft: Roy-043 reverted some of the recent material system changes related to Draft for a better implementation in the future, and cjmayo fixed a bug related to QImage objects.
FEM: marioalexis84 added radiation heat transfer for CalculiX, and then he, Syres916, FlachyJoe, and wwmayer fixed several bugs in other parts of the FEM workbench.
UI:
- The unified measurement tool by hlorus (GSoC2023 student) was finally merged. There is more work to be done in the future: 20 bug reports and features requests have already been submitted against the new tool.
- chennes continued working on the new Start page: he implemented a first start section and fixed card size calculation.
- maxwxyz updated the context menu with a toggle for suppress and updated the icon for assembly’s recompute command.
- PaddleStroke did a small reorganization of toolbars in Sketcher, fixed an issue with the TabBar workspace switcher, and removed “Project Shape”” from TechDraw’s toolbar.
- MisterMakerNL contributed an overlay fix for default windows style and various light themes.
- kadet1090 fixed issues with wrong color for preference page tooltips.
DXF support: Roy-043 fixed a bug with polylines importing in the newer importer, as well as a couple of bugs in the legacy DXF importer.
Some of the other changes:
- Nexusnui fixed a scaling parameter bug in importCSG (OpenSCAD).
- wwmayer made the Validate Sketch feature scriptable and fixed several bugs in various parts of FreeCAD’s code.
- 0penBrain and oursland fixed bugs in the build system and CI.
PR stats: In the week from Wednesday, 24 April to Wednesday, 1 May there were 51 pull requests merged. 29 new pull requests were opened.
Issue stats: we closed 28 issues, and 62 new issues were opened. Overall, 1,566 issues are currently open.
-
Vote for a new FreeCAD logo
There have been 46 submissions to the new FreeCAD logo contest. The user poll is closing on May 1 (this Wednesday). You can still pick your top 5 entries. The 5 winning submissions will then be submitted to the maintainers team for the final voting.
-
WIP Wednesday 24 April 2024
This week in FreeCAD development:
TechDraw:
- PaddleStroke unified Insert View tools (View, ProjGroup, Sheet, Arch, SVG, Image). He also made App::Links of views work in TechDraw, this also removes ‘Share Views’ from the toolbar.
- WandererFan fixed several bugs and added two new Python methods, for getting visible and hidden vertices.
- farleyrunkel refactored a minor part of TechDraw code.
Sketcher:
- Roy-043 made constraints and geometry menu texts more consistent and improved GUI texts in Sketcher settings.
- PaddleStroke joined Line and Polyline in a command group in the toolbar and fixed the midpoint autoconstraint to work with polylines.
FEM:
- NewJoker fixed several bugs.
- marioalexis84 extended the ABAQUS writer to select the element types available in CalculiX. He also fixed a bug where the size of the FEM feature symbols couldn’t be changed.
- chennes fixed the compilation of FEM on MSVC.
Materials:
- davesrocketshop brought major improvements to the material tree widget:
- Filters are now lsist and allow a variety of filtering options.
- User preferences allow the inclusion/exclusion of favorites and recents.
- Widget state such as expansion, tree expansions, etc. are saved and restored.
- The current appearance material is now displayed whehn editing.
- There’s now a Python interface.
- wwmayer added support for customizing all material colors and fixed further material issues.
Draft:
- Roy-043 fixed several bugs in the workbench.
- yorikvanhavre removed hardcoded axis colors (red, green, blue) and made the workbench use FreeCAD-wide axis colors.
Start:
- chennes recreated the Start workbench/page as a QtWidgets-based app.
- Several more people contributed further fixes and improvements: Rexbas fixed the migration script, wwmayer made the new Start page look more like the old one, and cjmayo made it possible to use Microsoft GSL on the Start page.
Some of the other changes are:
- wwmayer fixed several other bugs.
- mosfet80 removed more dead and unused code.
- dzid26 fixed a bug where a Save window would remain in the background if FreeCAD is closed by the operating system.
- tomate44 fixed shape projection of complex BSpline curves.
- jwueller fixed a bug in OpenSCAD where CSG computations would start too early.
- farleyrunkel fixed a bug where searching a model tree wouldn’t work for numbers.
- PaddleStroke moved the ‘+” tab of the TabBar workbench selector to the left so that it wouldn’t be hidden by default with many workbenches enabled.
- realthunder fixed a problem with incorrect referencing of App::Part child object’s CopyOnChangeGroup.
- cjmayo fixed several bugs in the code.
PR stats: In the week from Wednesday, 17 April to Wednesday, 24 April there were 54 pull requests merged. 23 new pull requests were opened.
Issue stats: we closed 32 issues, and 60 new issues were opened. Overall, 1,517 issues are currently open.
-
FreeCAD at FOSSASIA
Recently Hanoi was the location of FOSSASIA’s latest feature event, the FOSSASIA Summit. Wonderfully 3 members of the FreeCAD community went along to crew a FreeCAD booth promoting our work and community. Ajinkya, Amulya and Harshita made the journey over to Vietnam from India, Amulya and Harshita taking time out from their schedules at Chandigarh University and Ajinkya travelling from Mumbai.
With the booth set up it saw a steady stream of visitors over the weekend. Ajinkya, Amulya and Harshita all report that the largest group of attendees tended to be undergraduate students. They also report that most attendees hadn’t heard of FreeCAD before and the most mentioned CAD packages were AutoCAD and Tinkercad. Conversations around this showed that in that part of the world AutoCAD is still often taught in colleges and often AutoCAD is offered for free (as in beer) to undergraduates in the region.
Numerous academics and Professors visited the booth, with some pondering about the ubiquity of AutoCAD in the region and taking promotional materials to start conversations back in their departments. Ajinkya, Amulya and Harshita fed back that there were lots of general questions about FreeCAD like, “is it really free?” “can it do x,y z?” and “is it available on Linux, mac, windows?” and more. It’s great to have these fundamental questions asked as they often motivate and enable people to feel that FreeCAD is worth looking at and exploring after the summit.
One great conversation at the booth was that FreeCAD use is high in Taiwan, especially centred around the development and creation of prosthesis. If anyone reading has links into that community we’d love to hear from them and feature their work. The image above isn’t that project but rather a photo from the neighbouring booth showing work from Salvage Garden, an assistive technology makerspace from South East Asia.
Finally massive thanks to Ajinkya, Amulya and Harshita for taking the time out to represent FreeCAD so excellently at FOSSASIA. It’s fantastic vital work you’ve done to promote FreeCAD and also hard work, on your feet and talking FreeCAD for multiple days!
-
WIP Wednesday 17 April 2024
In the toponaming project, bgbsww and chennes are getting really close to finalizing the port of RealThunder’s patches to upstream FreeCAD. There is probably a week more of work, then the planned performance evaluation and improvements can begin.
TechDraw:
- WandererFan fixed several issues, such as broken zigzag lines orientation with rotated 3D view, as well as incorrect dimensions in the new Broken View feature.
- wwmayer fixed hatch clipping in SVG exporting code.
- dplanella organized TechDraw template translations into locale folders so that they wouldn’t mix up with original English templates.
Arch:
- Roy-043 fixed several issues with Arch_Panel, Arch_Structure, and Arch_Wall.
- marcuspollio updated the tooltip of ArchSpace Text to mention recently implemented $longname and $description support.
There are three more notable changes that are user-visible:
- pskowronskiTDx contributed code to better support 3Dconnexion devices such as SpaceMouse on Windows using Navlib.
- PaddleStroke updated the Trim tool in Sketcher to support continuous mode. Now you can select the tool, press and hold the mouse button and then drag the pointer over segments you want to delete. The tool will delete all segments you hover.
- davesrocketshop implemented support for older FCMat files in the new materials system (and wwmayer fixed some issue in that system).
Additional fixes, new tests, and minor improvements came from wwmayer, luzpaz, cjmayo, bgbsww, oursland, and Roy-043.
PR stats: In the week from Wednesday, 10 April to Wednesday, 17 April there were 40 pull requests merged, with a total codebase change of +16,750 / ‑1,535, the vast majority of changes coming in the new 3DConnexion support code. 24 new pull requests were opened.
Issue stats: we closed 21 issues, and 49 new issues were opened. Overall, 1,480 issues are currently open.
-
Forged in FreeCAD: LumenPnP, An Open Source Pick and Place Machine
It’s an amazing age for making things, and an even greater age for making things using open source solutions. At our recent FOSDEM stand we shared the booth with KiCad, the open source electronics environment. It was fabulous at the event to see items and machines made using KiCad and FreeCAD in combination. It’s also quite amazing to consider the complex printed circuit boards (PCB’s) KiCad can create with the tiny component packages placed and soldered into highly accurate positions.
Beyond the mere wonder of it all, it’s interesting to delve into how these components might be placed on a PCB. For small, single unit, home hacking, adding solder paste and placing each component with a pair of tweezers before heating the entire PCB is not uncommon. Stepping up in complexity you may manufacture a stencil to add the solder paste quickly and accurately. However, when it comes to making lots of devices with lots of components then the best solution is “Pick and Place”.
Pick and place uses a robotic system to load the components from reels with some kind of actuator picking up the component and accurately placing it onto the PCB. It’s exactly the technology that large PCB assembly houses use to create all manner of devices.
LumenPnP is an open source pick and place machine and brilliantly all the CAD parts have been designed in FreeCAD. From a distance LumenPnP might look like a CNC router as it has X, Y and Z axis created with precision linear rails. The tool head however features two nozzles each of which provides suction to carry electronic components. The machine cleverly has two camera’s which enable it to detect fiducial markers to accurately align to PCB jobs.
LumenPnP uses a very slightly tweaked version of the open source Marlin Firmware, more commonly found in 3D printers. For software the system relies on openpnp — a great choice with baked in support for KiCad. This makes it trivial to set up positional files for the components on project PCB’s.
The machine is available to purchase from Opulo, but everything is open source and you could build your own. It’s a great system that could save you time and money depending on what volume of PCB’s you are planning to populate.
Looking through the repository you can find that all the CAD work for mechanical components is completed in FreeCAD, with KiCad being used for all the PCB’s. So if you own a LumenPnP you can easily create replacement parts, or indeed you might think of a way to make a modification to the design to suit your particular needs. It also means that it’s open to community contributors without tying them into proprietary tool chains.
Looking around the Opulo site we can also see that there are probably more overlaps and uses for FreeCAD. In one video, a brilliant PCB, shaped like the OSHW logo, is being populated with LED’s. It’s mounted onto the machine in what appears to be a 3D printed conformal jig. This work holding approach means that it’s fast to swap in unpopulated PCB’s accurately keeping the process running with minimal resetting. We’d hazard a guess that this model was made in FreeCAD, with step output export in KiCad, it’s pretty easy to make a jig like this. There’s even more crossover between FreeCAD and KiCad with the excellent KiCad step up workbench that makes it pretty trivial to make custom component models that integrate into the KiCad footprint system perfectly as well as mechanically modelling to your PCB design.
All in all it’s excellent to see all these open source projects and communities overlapping creating new and interesting tools and approaches.
-
WIP Wednesday 10 April 2024
In the toponaming project, bgbsww added more tests and updated existing ones, and CalligaroV fixed two bugs.
In Arch, yorikvanhavre upgraded the reference tool, so that it could work with DXF and IFC files (NativeIFC is required for the latter), and paullee0 fixed a regression that occured when making a block from a DraftWire.
In Sketcher, PaddleStroke changed the rendering of points’ colors (after a discussion with the design working group) and fixed a bug in the Translate tool (horizontal and vertical constraints disappeared after translating).
In TechDraw, WandererFan implemented the so-called broken view — a way to render very large objects on a page by cutting a segment from the middle and juxtaposing them. He also fixed a problem with template autofilling where the total number of sheets in a document would always be equal to 1.
In FEM, FlachyJoe implemented a way to suppress the constraints: a suppressed constraint is no more written in the solver’s input file and thus not taken into account for analysis. Meanwhile lyphrowny migrated calculix tests to ccxtools tests and attempted to resolve two issues by implementing float comparison for FEM tests.
Thanks to davesrocketshop, FreeCAD now uses the new material system for body appearance. A new widget is now available to allow the user to select materials in a consistent fashion. It can also launch the material editor with its more advanced capabilities. Quickly after that, wwmayer fixed some of the regressions that were introduced with this patch.
Several more general fixes were contributed by mosfet80.
PR stats: In the week from Wednesday, 3 April to Wednesday, 10 April there were 28 pull requests merged, with a total codebase change of +9,853 / ‑2,310 (excluding updated translations and icons). We had an average merged PR size of +352 / ‑83. 20 new pull requests were opened.
Issue stats: we closed 23 issues, and 65 new issues were opened. Overall, 1,439 issues are currently open.
-
WIP Wednesday 3 April 2024
This week in FreeCAD development, the most actively worked-on parts of FreeCAD have been the toponaming project, Sketcher, FEM, and UI/UX.
Toponaming:
- CalligaroV imported and improved the WireJoiner class.
- bgbsww fixed a few issues, made minor improvements, and added Python implementations for CompSolid, Face, Shell, Solid, as well as missing entries in TopoShape.
Sketcher:
- Roy-043 renamed “Map sketch to face…” in the main menu to “Attach sketch…” for clarity.
- PaddleStroke implemented a midpoint autoconstraint, fixed a bug in Chamfer tool code, as well as a bug with a B‑Spline icon in construction line mode.
- FlachyJoe added an arc length constraint.
FEM:
- marioalexis84 improved post-processing object style.
- NewJoker changed 2D element thickness from 20 to 1 by default.
- lyphrowny fixed and typo in FEM code and removed calculix from solvers tab in examples.
- davesrocketshop added the property ‘Thermal Expansion Reference Temperature’ to the Thermal properties in the new materials editor.
UI/UX:
- Roy-043 made “View Left” the last option in the “Individual views” toolbar.
- maxwxyz updated FEM and Part Design icons for better consistency and added a missing “View Top” option. He also added missing commands to the tree context menu.
- PaddleStroke added an opt-in Tab-Bar workbench selector (enabled in Preferences). He also fixed the toggling of objects’ transparency in some scenarios and improved the double-click behavior for spreadsheet objects to switch to the Spreadsheet WB.
- NomAnor made it possible to allow adding transformations to MultiTransform if there is no active Body.
Among other changes:
- wwmayer fixed a lot of bugs and developed a new function to approximate B‑Spline from points.
- Roy-043 added a new Fuse property to patharray and pathtwistedarray in Draft. This fixes a problem when applying union/intersect to a point array and other objects.
- tomate44 enabled multi-threading to distToShape following a change in OCCT (starting with v7.6.0). This brings an ×3 to ×6 performance boost on a rather complex 20MB STEP file.
- adrianinsaval fixed building new material code on Windows with debugging enabled.
- NomAnor patched FreeCAD to ignore suppressed features in patterns (Part Design).
- furgo16 fixed WebGL exporting
- paullee0 made a few fixes and improvements in Arch.
- jamwaffles added feed retract option to drilling op settings for reaming/boring heads in CAM.
- yorikvanhavre made it possible to unset modified state with Python code.
- chennes fixed some minor bugs.
- WandererFan fixed a failure on corrupt dimension reference in TechDraw.
PR stats: In the week from Wednesday, 27 March to Wednesday, 3 April there were 70 pull requests merged, with a total codebase change of +9,316 / ‑1,737 (excluding updated translations and icons). We had an average merged PR size of +133 / ‑25. 17 new pull requests were opened.
Issue stats: we closed 47 issues, and 37 new issues were opened. Overall, 1,392 issues are currently open.
-
FreeCAD 1.0 Logo Refresh Contest
With FreeCAD 1.0 on the horizon, it’s time to refresh the official FreeCAD logo. At the request of the project maintainers, the intent here is to follow a similar approach to corporate logos and evolve/iterate the current FreeCAD symbol instead of completely reinventing the symbology of it.
Voting details will be reiterated upon start of a community poll, but a ‘ranked choice’ voting system shall be used. The top 5 submissions will be pushed to the FreeCAD maintainers team for review and final selection.
You can post your submission to this thread of the forum until April 14. Only one submission per person will be accepted.