knipknap / better-tool-library Goto Github PK
View Code? Open in Web Editor NEWA FreeCAD addon and command line tool for managing tool libraries
License: MIT License
A FreeCAD addon and command line tool for managing tool libraries
License: MIT License
Would it be possible to add a larger library of existing tools to this repo? When I open it, I don't see any existing tools, and I have to create a new library and create a new tool (if that's expected, it would be nice to have that documented, as I could find no guidance on that, and had to play around until it worked.)
I see the small set of tools in the test directory, but I don't see anything in the forum or elsewhere regarding a repo of tools in the freecad tool bit format. Do you know of such a source?
Thanks, great Addon.
Any tools from Fusion 360 can't be used with a V engrave job because the parameters set TipAngle instead of CuttingEdgeAngle. E.g.
{
"attribute": {
"btl-notes": "",
"btl-supplier": "SpeTool"
},
"name": "SpeTool W06008 SPE-X Extra Tool Life Coated Solid Carbide 20 Degree Engraving 0.005\" Tip Width x 1/4\" Shank x 2-1/4\" Long Signmaking Router Bit",
"parameter": {
"Chipload": "0,01 mm",
"CuttingEdgeHeight": "0,69488188976378 in",
"Diameter": "0,25 in",
"Flutes": "2",
"Length": "2,25 in",
"Material": "Carbide",
"NeckLength": "0,69488188976378 in",
"ShankDiameter": "0,25 in",
"TipAngle": "20,0 deg",
"TipDiameter": "0,005 in"
},
"shape": "_fusion_chamfer_mill.fcstd",
"version": 1
}
Compare with the default V bit:
{
"attribute": {},
"name": "60 Deg. V-Bit",
"parameter": {
"Chipload": "0,0 mm",
"CuttingEdgeAngle": "60,0 \u00b0",
"CuttingEdgeHeight": "1,0 mm",
"Diameter": "10,0 mm",
"Flutes": "2",
"Length": "20,0 mm",
"Material": "HSS",
"ShankDiameter": "5,0 mm",
"TipDiameter": "1,0 mm"
},
"shape": "vbit.fcstd",
"version": 1
}
What this functionally means is that even if you add a tool to a Path Operation, it can't be selected in a Vcarve job. The Tool Controller isn't selectable.
my version freecad is:
OS: Manjaro Linux (KDE/plasma)
Word size of FreeCAD: 64-bit
Version: 0.22.0dev.37819 (Git) AppImage
Build type: Release
Branch: main
Hash: 2ca9b6ef8036d5fd808f01205b66eb0424059e21
Python 3.11.9, Qt 5.15.13, Coin 4.0.2, Vtk 9.2.6, OCC 7.7.2
Locale: Italian/Italy (it_IT)
Installed mods:
In playing around with the tool I entered "cutting edge height (H)" as "0.75" and not "0.75 in".
The python console window had lots of error messages, but my guess is few "just users" read that. An error message would be nice. As is nothing gets calculated or displayed.
In tool.py line 325, if shank_l == non_cutting, then an exception can occur: ZeroDivisionError: float division by zero
#325 return min((yield_strength*solid_inertia) / ((shank_d/2)* shank_l),
(yield_strength*fluted_inertia) / ((diameter/2) * (shank_l+non_cutting)))
Suggested fix is below, but I am uncertain if this is correct understanding.
#323 non_cutting = abs(cutting_edge-doc)
Using DEV version as you have added "CAM WB" support
OS: Windows 11 build 22635
Word size of FreeCAD: 64-bit
Version: 0.22.0dev.36526 (Git)
Build type: Release
Branch: main
Hash: 2ebbd83268ffabf41ceaad802714a4ffd9214437
Python 3.11.8, Qt 5.15.13, Coin 4.0.2, Vtk 9.2.6, OCC 7.7.2
Locale: English/United States (en_US)
Installed mods:
Process:
Open CAM WB
10:51:29 Better Tool Library v0.9.9-53-g92fe1a0 loaded successfully.
Click BTL icon
10:52:38 Ouch! Unsupported attribute 'Flutes' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\5mm_Endmill.fctb
10:52:38 Ouch! Unsupported attribute 'Material' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\5mm_Endmill.fctb
10:52:38 Ouch! Unsupported attribute 'SpindleDirection' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\5mm_Endmill.fctb
10:52:38 Ouch! Unsupported attribute 'Flutes' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\5mm_Drill.fctb
10:52:38 Ouch! Unsupported attribute 'Material' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\5mm_Drill.fctb
10:52:38 Ouch! Unsupported attribute 'Flutes' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\6mm_Ball_End.fctb
10:52:38 Ouch! Unsupported attribute 'Material' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\6mm_Ball_End.fctb
10:52:38 Copying required but non-existent shape: C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Shape\bullnose.fcstd
10:52:38 0 Document.cpp(2147): Failed to restore _fusion_center_drill#Sketch.ExpressionEngine: Reference constraint from this sketch cannot be used in this expression.
10:52:38 0.0219593 Document.cpp(2147): Failed to restore _fusion_chamfer_mill#Sketch.ExpressionEngine: Reference constraint from this sketch cannot be used in this expression.
10:52:38 Ouch! Unsupported attribute 'Flutes' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\6mm_Bullnose.fctb
10:52:38 Ouch! Unsupported attribute 'Material' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\6mm_Bullnose.fctb
10:52:38 Ouch! Unsupported attribute 'SpindleDirection' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\6mm_Bullnose.fctb
10:52:38 Copying required but non-existent shape: C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Shape\v-bit.fcstd
10:52:38 Ouch! Unsupported attribute 'Flutes' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\60degree_Vbit.fctb
10:52:38 Ouch! Unsupported attribute 'Material' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\60degree_Vbit.fctb
10:52:38 Ouch! Unsupported attribute 'Flutes' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\45degree_chamfer.fctb
10:52:38 Ouch! Unsupported attribute 'Material' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\45degree_chamfer.fctb
10:52:38 Ouch! Unsupported attribute 'Flutes' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\slittingsaw.fctb
10:52:38 Ouch! Unsupported attribute 'Material' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\slittingsaw.fctb
10:52:38 Ouch! Unsupported attribute 'SpindlePower' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\probe.fctb
10:52:38 Copying required but non-existent shape: C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Shape\thread-mill.fcstd
10:52:38 Ouch! Unsupported attribute 'Flutes' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\5mm-thread-cutter.fctb
10:52:38 Ouch! Unsupported attribute 'Material' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\5mm-thread-cutter.fctb
10:52:38 Ouch! Unsupported attribute 'Flutes' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\45degree_chamfer.fctb
10:52:38 Ouch! Unsupported attribute 'Material' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\45degree_chamfer.fctb
10:52:38 Copying required but non-existent shape: C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Shape\thread-mill.fcstd
10:52:38 Ouch! Unsupported attribute 'Flutes' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\5mm-thread-cutter.fctb
10:52:38 Ouch! Unsupported attribute 'Material' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\5mm-thread-cutter.fctb
10:52:38 Ouch! Unsupported attribute 'Flutes' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\5mm_Drill.fctb
10:52:38 Ouch! Unsupported attribute 'Material' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\5mm_Drill.fctb
10:52:38 Ouch! Unsupported attribute 'Flutes' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\5mm_Endmill.fctb
10:52:38 Ouch! Unsupported attribute 'Material' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\5mm_Endmill.fctb
10:52:38 Ouch! Unsupported attribute 'SpindleDirection' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\5mm_Endmill.fctb
10:52:38 Copying required but non-existent shape: C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Shape\v-bit.fcstd
10:52:38 Ouch! Unsupported attribute 'Flutes' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\60degree_Vbit.fctb
10:52:38 Ouch! Unsupported attribute 'Material' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\60degree_Vbit.fctb
10:52:38 Ouch! Unsupported attribute 'Flutes' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\6mm_Ball_End.fctb
10:52:38 Ouch! Unsupported attribute 'Material' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\6mm_Ball_End.fctb
10:52:38 Copying required but non-existent shape: C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Shape\bullnose.fcstd
10:52:38 Ouch! Unsupported attribute 'Flutes' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\6mm_Bullnose.fctb
10:52:38 Ouch! Unsupported attribute 'Material' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\6mm_Bullnose.fctb
10:52:38 Ouch! Unsupported attribute 'SpindleDirection' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\6mm_Bullnose.fctb
10:52:38 Ouch! Unsupported attribute 'SpindlePower' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\probe.fctb
10:52:38 Ouch! Unsupported attribute 'Flutes' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\slittingsaw.fctb
10:52:38 Ouch! Unsupported attribute 'Material' with value 'None' in C:/Users/cesla/AppData/Roaming/FreeCAD/Macro\Bit\slittingsaw.fctb
I can't use this feature. When i select DOC and WOC always stay in certain percentage... Nothing happend after long time.
[code]
OS: Windows 11 build 22631
Word size of FreeCAD: 64-bit
Version: 0.21.2.33771 (Git)
Build type: Release
Branch: releases/FreeCAD-0-21
Hash: b9bfa5c5507506e4515816414cd27f4851d00489
Python 3.8.10, Qt 5.15.2, Coin 4.0.1, Vtk 8.2.0, OCC 7.6.3
Locale: French/Canada (fr_CA)
Installed mods:
In btl/feeds/material.py change "Hardwood" to "Wood (hard)" ... consistent naming change
Add this window snippet to the media dir as machine.png
In the README.md file around line 128 insert the following: (After:### Converting from Camotics to FreeCAD tool table Before: ##Links)
## Usage within FreeCad UI
### Creating a machine
For now, the easiest way to create a machine is:
- File, Create Tool (select a standard tool), Feeds & Speeds, "+" on the machine line allows you to create a new machine
![Edit Machine Parameters](media/machine.png)
### Importing Vendor Catalogs
BTL can import machine tool vendor catalogs stored in Fusion 360 format. These files are either:
- *.json
- *.tools ( a zipped json file)
To help manage catalogs it is suggested that you follow the process as follows:
1) Create a new library from the BTL pop up, basing the library name off of the vendor name.
- File, Create a library, Enter new library name.... hit "create library"
Your new library name should now be available via drop down in the lower left hand corner. (The default value in this field is "unused tools")
2) Select the library you just created, it should be empty.
3) Now import a vendor catalog into your empty library.
- File, Import Library, Select library to import
It may take a moment for the tools to load, but they should appear in the BTL window
While loading the addon FreeCAD tells that the numpy version is 1.21 and that the addon is unable to initialize
FreeCAD 0.21.0, Libs: 2024.123.0R14555 (Git shallow)
Gtk-Message: 13:50:42.273: Failed to load module "canberra-gtk-module"
Gtk-Message: 13:50:42.273: Failed to load module "pk-gtk-module"
Gtk-Message: 13:50:42.273: Failed to load module "canberra-gtk-module"
Gtk-Message: 13:50:42.273: Failed to load module "pk-gtk-module"
Could not find color scheme ""
Qt: Session management error: Could not open network socket
/app/lib/python3.10/site-packages/shiboken2/files.dir/shibokensupport/feature.py:142: UserWarning: A NumPy version >=1.22.4 and <1.29.0 is required for this version of SciPy (detected version 1.21.4)
return original_import(name, *args, **kwargs)
RuntimeError: module compiled against API version 0xf but this version of numpy is 0xe
During initialization the error "numpy.core.multiarray failed to import" occurred in /home/noracarmi/.var/app/org.freecadweb.FreeCAD.Link/data/FreeCAD/Mod/btl/./InitGui.py
Please look into the log file for further information
A3 available
typing pip list
gives me numpy 1.21.4
as well as a bunch of error messages :
Traceback (most recent call last):
File "/app/lib/python3.10/site-packages/pip/_internal/utils/logging.py", line 177, in emit
self.console.print(renderable, overflow="ignore", crop=False, style=style)
File "/app/lib/python3.10/site-packages/pip/_vendor/rich/console.py", line 1673, in print
extend(render(renderable, render_options))
File "/app/lib/python3.10/site-packages/pip/_vendor/rich/console.py", line 1305, in render
for render_output in iter_render:
File "/app/lib/python3.10/site-packages/pip/_internal/utils/logging.py", line 134, in __rich_console__
for line in lines:
File "/app/lib/python3.10/site-packages/pip/_vendor/rich/segment.py", line 249, in split_lines
for segment in segments:
File "/app/lib/python3.10/site-packages/pip/_vendor/rich/console.py", line 1283, in render
renderable = rich_cast(renderable)
File "/app/lib/python3.10/site-packages/pip/_vendor/rich/protocol.py", line 36, in rich_cast
renderable = cast_method()
File "/app/lib/python3.10/site-packages/pip/_internal/self_outdated_check.py", line 130, in __rich__
pip_cmd = get_best_invocation_for_this_pip()
File "/app/lib/python3.10/site-packages/pip/_internal/utils/entrypoints.py", line 58, in get_best_invocation_for_this_pip
if found_executable and os.path.samefile(
File "/usr/lib/python3.10/genericpath.py", line 101, in samefile
s2 = os.stat(f2)
FileNotFoundError: [Errno 2] No such file or directory: '/usr/bin/pip'
Call stack:
File "/app/bin/pip", line 8, in <module>
sys.exit(main())
File "/app/lib/python3.10/site-packages/pip/_internal/cli/main.py", line 70, in main
return command.main(cmd_args)
File "/app/lib/python3.10/site-packages/pip/_internal/cli/base_command.py", line 101, in main
return self._main(args)
File "/app/lib/python3.10/site-packages/pip/_internal/cli/base_command.py", line 223, in _main
self.handle_pip_version_check(options)
File "/app/lib/python3.10/site-packages/pip/_internal/cli/req_command.py", line 190, in handle_pip_version_check
pip_self_version_check(session, options)
File "/app/lib/python3.10/site-packages/pip/_internal/self_outdated_check.py", line 236, in pip_self_version_check
logger.warning("[present-rich] %s", upgrade_prompt)
File "/usr/lib/python3.10/logging/__init__.py", line 1489, in warning
self._log(WARNING, msg, args, **kwargs)
File "/usr/lib/python3.10/logging/__init__.py", line 1624, in _log
self.handle(record)
File "/usr/lib/python3.10/logging/__init__.py", line 1634, in handle
self.callHandlers(record)
File "/usr/lib/python3.10/logging/__init__.py", line 1696, in callHandlers
hdlr.handle(record)
File "/usr/lib/python3.10/logging/__init__.py", line 968, in handle
self.emit(record)
File "/app/lib/python3.10/site-packages/pip/_internal/utils/logging.py", line 179, in emit
self.handleError(record)
Message: '[present-rich] %s'
Arguments: (UpgradePrompt(old='22.2.2', new='24.0'),)
What's super strange is that inside the addon manager FreeCAD tells me numpy's version is 1.26
I checked in the python console inside FreeCAD and it tells me it's running numpy 1.21 instead
What's the reason of this discrepancy ? There seems to be two distinct numpy versions coexistinp but the flatpak contained environment only sees numpy 1.21 and the addon manager only sees 1.26, and for some reason BTL tries to run against numpy 1.21.
I'm kinda lost on this :(
(I'm running FreeCAD 0.21 realthunder's branch Stable 2024.01.23 release flatpak on Fedora 38)
Thank you in advance and thank you for the addon
I have started looking into this again. I am attempting to make a few changes, let's see if I am headed the right direction. ( I am a C++ kind guy with some Python... so I know enough to be dangerous)
I see in btl\ui\feedsandspeeds.py a method _on_calculator_finished, it appears to be the routine that cycles through the parameters (param) and send them into the screen (table) pipeline.
The inputs to the calculator can be metric or imperial, but the calculator always works in metric. Which means the state of a parameter will always be metric.
My thoughts are to modify "params" to have a method "fmtd_to_display". If the flag mentioned earlier is set, convert from metric to imperial.
So now in _on_calculator_finished you call params.fmtd_to_display in the for row, (name, param) in enumerate(params): loop.
Loaded a bit from "whiteside_tools.json"
as shown below.
The material should be carbide. Also, chipload is in metric while everything else is imperial.
Can there be a flag set when "default" values are used?
Note the material is HSS when the JSON nugget says :
{
"BMC": "carbide",
"GRADE": "Mill Generic",
"description": "Whiteside RD5100 -- 1/2 inch Upcut Spiral - Solid Carbide",
"geometry": {
"CSP": false,
"DC": 0.49999999999999994,
"HAND": true,
"LB": 1.4999999999999998,
"LCF": 0.9999999999999999,
"NOF": 2,
"NT": 0,
"OAL": 2.9999999999999996,
"RE": 0,
"SFDM": 0.49999999999999994,
"SIG": 0,
"TA": 0,
"TP": 0,
"shoulder-length": 1.001,
"thread-profile-angle": 0,
"tip-diameter": 0.49999999999999994,
"tip-length": 0,
"tip-offset": 0
},
"guid": "00ec300d-a6d9-4ca5-8b01-cd2952051cfd",
"holder": {
"description": "Maritool CAT40-ER32-2.35",
"guid": "e800051b-e2d6-4699-a2b6-dad6466a0a0c",
"last_modified": 1485790626152,
"product-id": "CAT40-ER32-2.35",
"segments": [
{
"height": 0.148,
"lower-diameter": 1.5,
"upper-diameter": 1.97
},
{
"height": 0.836,
"lower-diameter": 1.97,
"upper-diameter": 1.97
},
{
"height": 0.176,
"lower-diameter": 1.57,
"upper-diameter": 1.57
},
{
"height": 0.09,
"lower-diameter": 1.57,
"upper-diameter": 1.75
},
{
"height": 0.425,
"lower-diameter": 1.75,
"upper-diameter": 1.75
},
{
"height": 0.05,
"lower-diameter": 1.75,
"upper-diameter": 1.85
},
{
"height": 0.03,
"lower-diameter": 2.442,
"upper-diameter": 2.502
},
{
"height": 0.145,
"lower-diameter": 2.502,
"upper-diameter": 2.502
},
{
"height": 0.079,
"lower-diameter": 2.502,
"upper-diameter": 2.215
},
{
"height": 0.118,
"lower-diameter": 2.215,
"upper-diameter": 2.215
},
{
"height": 0.079,
"lower-diameter": 2.215,
"upper-diameter": 2.502
},
{
"height": 0.143,
"lower-diameter": 2.502,
"upper-diameter": 2.502
},
{
"height": 0.03,
"lower-diameter": 2.502,
"upper-diameter": 2.442
},
{
"height": 0.125,
"lower-diameter": 1.75,
"upper-diameter": 1.75
}
],
"type": "holder",
"unit": "inches",
"vendor": "Maritool"
},
"last_modified": 1571857521400,
"post-process": {
"break-control": false,
"comment": "",
"diameter-offset": 1,
"length-offset": 1,
"live": true,
"manual-tool-change": false,
"number": 1,
"turret": 0
},
"product-id": "RD5100",
"product-link": "https://www.whitesiderouterbits.com/products/RD5100",
"start-values": {
"presets": [
{
"description": null,
"f_n": 0.0011111111111111111,
"f_z": 0.01111111111111111,
"guid": "698ef54a-d00e-4737-8397-550352f44a62",
"n": 18000,
"n_ramp": 18000,
"name": "Default Preset",
"tool-coolant": "flood",
"v_c": 2356.194490192345,
"v_f": 400,
"v_f_leadIn": 400,
"v_f_leadOut": 400,
"v_f_plunge": 20,
"v_f_ramp": 20,
"v_f_retract": 20
}
]
},
"type": "flat end mill",
"unit": "inches",
"vendor": "Whiteside Router Bits"
},
As I understood the main reason your great Library tool will not be included into FreeCAD/main is that there are hard-coded 'names' in the images.
Might this help:
https://graphicdesign.stackexchange.com/questions/62618/multilingual-svg-for-the-web
Support for this in SVG renderers is not universal, so don't rely on it, but where it works it works:
<switch>
<text systemLanguage="de">Das ist der übersetzte Text auf Deutsch</text>
<text>This is the default text in English</text>
</switch>
It would be real nice to have the BTL in FreeCAD!
FreeCAD 0.21.0 AppImage
Ubuntu 22.04.3 LTS
Opened a tool in the tool library editor and went to the Feeds and Speeds tab
18:21:45 Traceback (most recent call last):
18:21:45 File "/home/sgofferj/.local/share/FreeCAD/Mod/btl/./btl/ui/feedsandspeeds.py", line 40, in run
18:21:45 self.worker.start()
18:21:45 File "/home/sgofferj/.local/share/FreeCAD/Mod/btl/./btl/ui/feedsandspeeds.py", line 30, in start
18:21:45 self.result = self.fc.start(progress_cb=progress_cb)
18:21:45 File "/home/sgofferj/.local/share/FreeCAD/Mod/btl/./btl/feeds/calc.py", line 339, in start
18:21:45 results = self.calculate(progress_cb, iterations=iterations)
18:21:45 File "/home/sgofferj/.local/share/FreeCAD/Mod/btl/./btl/feeds/calc.py", line 320, in calculate
18:21:45 self.optimize()
18:21:45 File "/home/sgofferj/.local/share/FreeCAD/Mod/btl/./btl/feeds/calc.py", line 293, in optimize
18:21:45 result = minimize(self._evaluate_point,
18:21:45 File "/tmp/.mount_FreeCATUTG9K/usr/lib/python3.10/site-packages/scipy/optimize/_minimize.py", line 643, in minimize
18:21:45 bounds = _validate_bounds(bounds, x0, meth)
18:21:45 File "/tmp/.mount_FreeCATUTG9K/usr/lib/python3.10/site-packages/scipy/optimize/_minimize.py", line 996, in _validate_bounds
18:21:45 raise ValueError(msg)
18:21:45 ValueError: An upper bound is less than the corresponding lower bound.
18:21:46 Traceback (most recent call last):
18:21:46 File "/home/sgofferj/.local/share/FreeCAD/Mod/btl/./btl/ui/feedsandspeeds.py", line 40, in run
18:21:46 self.worker.start()
18:21:46 File "/home/sgofferj/.local/share/FreeCAD/Mod/btl/./btl/ui/feedsandspeeds.py", line 30, in start
18:21:46 self.result = self.fc.start(progress_cb=progress_cb)
18:21:46 File "/home/sgofferj/.local/share/FreeCAD/Mod/btl/./btl/feeds/calc.py", line 339, in start
18:21:46 results = self.calculate(progress_cb, iterations=iterations)
18:21:46 File "/home/sgofferj/.local/share/FreeCAD/Mod/btl/./btl/feeds/calc.py", line 320, in calculate
18:21:46 self.optimize()
18:21:46 File "/home/sgofferj/.local/share/FreeCAD/Mod/btl/./btl/feeds/calc.py", line 293, in optimize
18:21:46 result = minimize(self._evaluate_point,
18:21:46 File "/tmp/.mount_FreeCATUTG9K/usr/lib/python3.10/site-packages/scipy/optimize/_minimize.py", line 643, in minimize
18:21:46 bounds = _validate_bounds(bounds, x0, meth)
18:21:46 File "/tmp/.mount_FreeCATUTG9K/usr/lib/python3.10/site-packages/scipy/optimize/_minimize.py", line 996, in _validate_bounds
18:21:46 raise ValueError(msg)
18:21:46 ValueError: An upper bound is less than the corresponding lower bound.
18:21:46 Traceback (most recent call last):
18:21:46 File "/home/sgofferj/.local/share/FreeCAD/Mod/btl/./btl/ui/feedsandspeeds.py", line 40, in run
18:21:46 self.worker.start()
18:21:46 File "/home/sgofferj/.local/share/FreeCAD/Mod/btl/./btl/ui/feedsandspeeds.py", line 30, in start
18:21:46 self.result = self.fc.start(progress_cb=progress_cb)
18:21:46 File "/home/sgofferj/.local/share/FreeCAD/Mod/btl/./btl/feeds/calc.py", line 339, in start
18:21:46 results = self.calculate(progress_cb, iterations=iterations)
18:21:46 File "/home/sgofferj/.local/share/FreeCAD/Mod/btl/./btl/feeds/calc.py", line 320, in calculate
18:21:46 self.optimize()
18:21:46 File "/home/sgofferj/.local/share/FreeCAD/Mod/btl/./btl/feeds/calc.py", line 293, in optimize
18:21:46 result = minimize(self._evaluate_point,
18:21:46 File "/tmp/.mount_FreeCATUTG9K/usr/lib/python3.10/site-packages/scipy/optimize/_minimize.py", line 643, in minimize
18:21:46 bounds = _validate_bounds(bounds, x0, meth)
18:21:46 File "/tmp/.mount_FreeCATUTG9K/usr/lib/python3.10/site-packages/scipy/optimize/_minimize.py", line 996, in _validate_bounds
18:21:46 raise ValueError(msg)
18:21:46 ValueError: An upper bound is less than the corresponding lower bound.
18:21:46 Traceback (most recent call last):
18:21:46 File "/home/sgofferj/.local/share/FreeCAD/Mod/btl/./btl/ui/feedsandspeeds.py", line 40, in run
18:21:46 self.worker.start()
18:21:46 File "/home/sgofferj/.local/share/FreeCAD/Mod/btl/./btl/ui/feedsandspeeds.py", line 30, in start
18:21:46 self.result = self.fc.start(progress_cb=progress_cb)
18:21:46 File "/home/sgofferj/.local/share/FreeCAD/Mod/btl/./btl/feeds/calc.py", line 339, in start
18:21:46 results = self.calculate(progress_cb, iterations=iterations)
18:21:46 File "/home/sgofferj/.local/share/FreeCAD/Mod/btl/./btl/feeds/calc.py", line 320, in calculate
18:21:46 self.optimize()
18:21:46 File "/home/sgofferj/.local/share/FreeCAD/Mod/btl/./btl/feeds/calc.py", line 293, in optimize
18:21:46 result = minimize(self._evaluate_point,
18:21:46 File "/tmp/.mount_FreeCATUTG9K/usr/lib/python3.10/site-packages/scipy/optimize/_minimize.py", line 643, in minimize
18:21:46 bounds = _validate_bounds(bounds, x0, meth)
18:21:46 File "/tmp/.mount_FreeCATUTG9K/usr/lib/python3.10/site-packages/scipy/optimize/_minimize.py", line 996, in _validate_bounds
18:21:46 raise ValueError(msg)
18:21:46 ValueError: An upper bound is less than the corresponding lower bound.
How would I go about to add a tapered ball nose end mill? I don't see any option. If there is, please slam me with an "RTFM". If there isn't please consider it a feature request :).
Have 0.21 ...No Tool editor. Unable to alter existing tools. Wasn't able to import BTL
I have also not offset capabilities and the simulation cut is not complete.
I was looking for your import file format specs, and don't see them. (I did look under docs)
I would like to bring in catalogs from Whiteside & Bits&Bits.
Is there a JSON or such format you prefer? ( I already can make FreeCad tools and libraries but your BTL stuff is a mystery)
I know in a previous chat I said I was using CSV or Excel from vendors, because frankly most vendors don't understand anything more than that.
After placing the BTL icon where I want it, and restarting FreeCAD, it moves back to very top.
Additionally, would be nice if it had a Tooltip when you hover over it like others, and if you right click on the toolbars, the name for the btl icon isn't present next to its check mark. I couldn't grab a screen shot of this.
Using v0.21.2 FreeCAD
Uninstalling via the add-on manager removes BTL from the list of installed add-on but it is still there when I run the Parh WB
Issue: When material was carbide in the JSON file the record was still coming in HSS.
Fix:
- Simplify logic
- Always make string compares to lowercase. So Carbide, CARBIDE and CArbide all work
Around line 260, replace material assignment code with:
'''
# default material to hss. fusion allows for ceramics or unspecified
# tool materials, While FreeCad currently only allow for Carbide and HSS
# default set to HSS change is Carbide
tool.shape.set_material(HSS)
tool.set_material(HSS)
if toolitem["BMC"].lower() == "carbide":
tool.shape.set_material(Carbide)
tool.set_material(Carbide)
'''
First I love the new tool importer ... I had played with developing something similar, but something always pulled me away.
Here is a snip of the screen after input:
I know this is extremely new, as in hours but a few suggestions:
Win 11
FreeCad ver 0.21.0 (build 33682)
Better Tool Lib ( no version number, but "up-to-date" 8/8/2023
Tool displays fine.
Go to Feeds & Speeds
Added a machine: OneFinity
set some resonable machine values, returned ..
then crash,
Reloaded....
Feeds & Speeds loads with a bunch of red/orange issues.
Red:
Axial Force 0.00 N ...min/max range given
Mrr= 0.00 min/max range given
Power= 2.2 Kw ...... This is in fact what I put in ... limit was 2.2 max
Torque= 0.00
Orange:
Deflection 0.02 ,im/max given
RPM= 59188 .... I don't recall entering this
So it appears to be a matter of setting reasonable defaults.
Also it was not clear how to add/edit machines except through the tool editor.
Hi.
I know 0.22 is a developer version and should not be used in manufacturing processes, but I found it very useful in many cases. Unfortunately BTL sopped working properly:
AttributeError: 'NoneType' object has no attribute 'get_tool_no_from_tool'
OS: Debian GNU/Linux 12 (bookworm) (GNOME/gnome)
Word size of FreeCAD: 64-bit
Version: 0.22.0dev.37841 (Git) AppImage
Build type: Release
Branch: main
Hash: 5f761c758e2a0164b00a7183b9c0cbe32688e123
Python 3.11.9, Qt 5.15.13, Coin 4.0.2, Vtk 9.2.6, OCC 7.7.2
Locale: Polish/Poland (pl_PL)
Installed mods:
Any idea what's going on?
Hello,
i installed current version (0.9.5) via Addon-Manager.
Now i get following error:
During initialization the error "No module named 'scipy'" occurred in /home/user/.var/app/org.freecadweb.FreeCAD/data/FreeCAD/Mod/btl/./InitGui.py
09:37:52 Better Tool Library loaded successfully.
09:37:52 Feeds and Speeds Addon loaded: PathWorkbench
09:38:00 Warning: Skipping loading of the following files, because they have reserved names used by a builtin shape: ballend.fcstd, bullnose.fcstd, chamfer.fcstd, drill.fcstd, endmill.fcstd, probe.fcstd, slittingsaw.fcstd, thread-mill.fcstd, v-bit.fcstd --> To remove this warning, delete or rename the files
09:38:00 Traceback (most recent call last):
09:38:00 File "C:\Users\me\AppData\Roaming\FreeCAD\Mod\better-tool-library.\btl\ui\init.py", line 22, in on_library_open_clicked
09:38:00 dialog = LibraryUI(tool_db, serializer)
09:38:00 File "C:\Users\me\AppData\Roaming\FreeCAD\Mod\better-tool-library.\btl\ui\library.py", line 51, in init
09:38:00 self.load()
09:38:00 File "C:\Users\me\AppData\Roaming\FreeCAD\Mod\better-tool-library.\btl\ui\library.py", line 101, in load
09:38:00 self.tooldb.deserialize(self.serializer)
09:38:00 File "C:\Users\me\AppData\Roaming\FreeCAD\Mod\better-tool-library.\btl\db.py", line 114, in deserialize
09:38:00 self.deserialize_libraries(serializer)
09:38:00 File "C:\Users\me\AppData\Roaming\FreeCAD\Mod\better-tool-library.\btl\db.py", line 84, in deserialize_libraries
09:38:00 for library in serializer.deserialize_libraries():
09:38:00 File "C:\Users\me\AppData\Roaming\FreeCAD\Mod\better-tool-library.\btl\serializers\fcserializer.py", line 123, in deserialize_libraries
09:38:00 return [self.deserialize_library(id)
09:38:00 File "C:\Users\me\AppData\Roaming\FreeCAD\Mod\better-tool-library.\btl\serializers\fcserializer.py", line 123, in
09:38:00 return [self.deserialize_library(id)
09:38:00 File "C:\Users\me\AppData\Roaming\FreeCAD\Mod\better-tool-library.\btl\serializers\fcserializer.py", line 159, in deserialize_library
09:38:00 tool = self.deserialize_tool(name)
09:38:00 File "C:\Users\me\AppData\Roaming\FreeCAD\Mod\better-tool-library.\btl\serializers\fcserializer.py", line 286, in deserialize_tool
09:38:00 param, value = tool_property_to_param(propname, value, prop)
09:38:00 File "C:\Users\me\AppData\Roaming\FreeCAD\Mod\better-tool-library.\btl\fcutil.py", line 84, in tool_property_to_param
09:38:00 value = parse_distance(value)
09:38:00 File "C:\Users\me\AppData\Roaming\FreeCAD\Mod\better-tool-library.\btl\fcutil.py", line 62, in parse_distance
09:38:00 raise NotImplemented('unsupported value in file: "{}"'.format(value))
09:38:00 TypeError: 'NotImplementedType' object is not callable
`OS: Debian GNU/Linux 12 (bookworm) (GNOME/gnome)
Word size of FreeCAD: 64-bit
Version: 0.22.0dev.36996 (Git) AppImage
Build type: Release
Branch: main
Hash: d92f74ef019fcedbdcdc32055ab2437c950ac23b
Python 3.11.9, Qt 5.15.13, Coin 4.0.2, Vtk 9.2.6, OCC 7.7.2
Locale: Polish/Poland (pl_PL)
Installed mods:
Whenever I change deactivate FreeCAD (switch windows, move to terminal or switch to web browser) I get another icon of BTL on the taskbar:
And I have to deactivate every icon with a right click at the taskbar, unless I want a hundred of them after a while ;)
I know 0.22 is a dev version so far, but maybe someone knows the answer to my problem :)
around line 140 change: (case sensitive)
tool_type = toolitem["type"]
to
tool_type = toolitem["type"].lower()
later the code looks like:
if tool_type in ("ball end mill", "flat end mill", "reamer", "boring bar", "counter bore", "lollipop mill"):
pass
if tool_type == "bull nose end mill":
tool.shape.set_param(
"TorusRadius",
DistanceParam(name="TorusRadius", unit=lunit, v=geom["RE"]),
)
I believe it should look like:
if tool_type in ("ball end mill", "flat end mill", "reamer", "boring bar", "counter bore", "lollipop mill"):
pass
Change to elif ---> **elif** tool_type == "bull nose end mill":
tool.shape.set_param(
"TorusRadius",
DistanceParam(name="TorusRadius", unit=lunit, v=geom["RE"]),
)
A BTL icon appears somewhere in the "Path" workbench. Clicking it opens the BTL GUI.
Not BTL icon appears in the UI:
There is an error in the report view:
02:53:54 During initialization the error "numpy.ndarray size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject" occurred in /home/siarhei_krukau/snap/freecad/common/Mod/btl/./InitGui.py
02:53:54 Please look into the log file for further information
OS: Ubuntu Core 22 (ubuntu:GNOME/ubuntu-xorg)
Word size of FreeCAD: 64-bit
Version: 0.22.0dev.33991 (Git) Snap 754
Build type: Release
Branch: master
Hash: bb13c179e90895e320445ed3ce0a5389c3688151
Python 3.10.12, Qt 5.15.10, Coin 4.0.0, Vtk 7.1.1, OCC 7.7.1
Locale: English/United States (en_US)
Installed mods:
* btl 0.9.9
Msg: FreeCAD 0.22.0, Libs: 0.22.0devR33991 (Git)
© Juergen Riegel, Werner Mayer, Yorik van Havre and others 2001-2023
FreeCAD is free and open-source software licensed under the terms of LGPL2+ license.
FreeCAD wouldn't be possible without FreeCAD community.
##### #### ### ####
# # # # # #
# ## #### #### # # # # #
#### # # # # # # # ##### # #
# # #### #### # # # # #
# # # # # # # # # ## ## ##
# # #### #### ### # # #### ## ## ##
Log: Time = 2023-Aug-29 03:08:39
Log: AboutImage = freecadabout
Log: AppDataSkipVendor = true
Log: AppHomePath = /snap/freecad/754/usr/
Log: AppIcon = freecad
Log: AppTempPath = /home/madhead/snap/freecad/common/temp/
Log: BOOST_VERSION = 1_74
Log: BinPath = /snap/freecad/754/usr/bin/
Log: BuildRepositoryURL = git://github.com/FreeCAD/FreeCAD.git master
Log: BuildRevision = 33991 (Git)
Log: BuildRevisionBranch = master
Log: BuildRevisionDate = 2023/08/26 19:03:58
Log: BuildRevisionHash = bb13c179e90895e320445ed3ce0a5389c3688151
Log: BuildVersionMajor = 0
Log: BuildVersionMinor = 22
Log: BuildVersionPoint = 0
Log: BuildVersionSuffix = dev
Log: Console = 0
Log: CopyrightInfo = © Juergen Riegel, Werner Mayer, Yorik van Havre and others 2001-2023
FreeCAD is free and open-source software licensed under the terms of LGPL2+ license.
FreeCAD wouldn't be possible without FreeCAD community.
##### #### ### ####
# # # # # #
# ## #### #### # # # # #
#### # # # # # # # ##### # #
# # #### #### # # # # #
# # # # # # # # # ## ## ##
# # #### #### ### # # #### ## ## ##
Log: Debug = 0
Log: DocPath = /snap/freecad/754/usr/doc/
Log: EIGEN_VERSION = 3.4.0
Log: ExeName = FreeCAD
Log: ExeVendor = FreeCAD
Log: ExeVersion = 0.22.0
Log: LoggingConsole = 1
Log: LoggingFile = 1
Log: LoggingFileName = /home/madhead/FC.log
Log: MaintainerUrl = http://www.freecad.org/wiki/Main_Page
Log: OCC_VERSION = 7.7.1
Log: PATH = /snap/freecad/754/usr/sbin:/snap/freecad/754/usr/bin:/snap/freecad/754/sbin:/snap/freecad/754/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/freecad/754/kf5/usr/bin
Log: PYSIDE_VERSION = 5.15.10
Log: PYTHONPATH =
Log: PYTHON_VERSION = 3.10.12
Log: PythonSearchPath = /snap/freecad/754/usr/lib/python310.zip:/snap/freecad/754/usr/lib/python3.10:/snap/freecad/754/usr/lib/python3.10/lib-dynload
Log: QT_VERSION = 5.15.10
Log: RunMode = Gui
Log: SMESH_VERSION = 7.7.1.0
Log: SplashAlignment = Bottom|Left
Log: SplashInfoColor = #8aadf4
Log: SplashInfoPosition = 6,75
Log: SplashScreen = freecadsplash
Log: SplashTextColor = #8aadf4
Log: StartWorkbench = StartWorkbench
Log: SystemParameter = /home/madhead/snap/freecad/common/system.cfg
Log: UserAppData = /home/madhead/snap/freecad/common/
Log: UserCachePath = /home/madhead/snap/freecad/common/temp/
Log: UserConfigPath = /home/madhead/snap/freecad/common/
Log: UserHomePath = /home/madhead/snap/freecad/common
Log: UserMacroPath = /home/madhead/snap/freecad/common/
Log: UserParameter = /home/madhead/snap/freecad/common/user.cfg
Log: Verbose =
Log: XERCESC_VERSION = 3.2.3
Log: Create Application
Log: Run App init script
Log: Init: starting App::FreeCADInit.py
Log: Init: Searching for modules...
Log: Init: Initializing /snap/freecad/754/usr/Mod/AddonManager... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Arch... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Draft... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Fem... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Idf... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Import... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Inspection... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Material... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Measure... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Mesh... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/MeshPart... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/OpenSCAD... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Part... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/PartDesign... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Path... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Plot(Init.py not found)... ignore
Log: Init: Initializing /snap/freecad/754/usr/Mod/Points... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/ReverseEngineering... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Robot... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Show(Init.py not found)... ignore
Log: Init: Initializing /snap/freecad/754/usr/Mod/Sketcher... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/SnapSetup... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Spreadsheet... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Start... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Surface... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/TechDraw... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Test... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Tux(Init.py not found)... ignore
Log: Init: Initializing /snap/freecad/754/usr/Mod/Web... done
Log: Init: Initializing /home/madhead/snap/freecad/common/Mod/btl/./(Init.py not found)... ignore
Log: Using /snap/freecad/754/usr/Mod as module path!
Log: System path after init:
Log: /snap/freecad/754/usr/bin
Log: /snap/freecad/754/usr/Mod/AddonManager
Log: /snap/freecad/754/usr/Mod/Arch
Log: /snap/freecad/754/usr/Mod/Draft
Log: /snap/freecad/754/usr/Mod/Fem
Log: /snap/freecad/754/usr/Mod/Idf
Log: /snap/freecad/754/usr/Mod/Import
Log: /snap/freecad/754/usr/Mod/Inspection
Log: /snap/freecad/754/usr/Mod/Material
Log: /snap/freecad/754/usr/Mod/Measure
Log: /snap/freecad/754/usr/Mod/Mesh
Log: /snap/freecad/754/usr/Mod/MeshPart
Log: /snap/freecad/754/usr/Mod/OpenSCAD
Log: /snap/freecad/754/usr/Mod/Part
Log: /snap/freecad/754/usr/Mod/PartDesign
Log: /snap/freecad/754/usr/Mod/Path
Log: /snap/freecad/754/usr/Mod/Plot
Log: /snap/freecad/754/usr/Mod/Points
Log: /snap/freecad/754/usr/Mod/ReverseEngineering
Log: /snap/freecad/754/usr/Mod/Robot
Log: /snap/freecad/754/usr/Mod/Show
Log: /snap/freecad/754/usr/Mod/Sketcher
Log: /snap/freecad/754/usr/Mod/SnapSetup
Log: /snap/freecad/754/usr/Mod/Spreadsheet
Log: /snap/freecad/754/usr/Mod/Start
Log: /snap/freecad/754/usr/Mod/Surface
Log: /snap/freecad/754/usr/Mod/TechDraw
Log: /snap/freecad/754/usr/Mod/Test
Log: /snap/freecad/754/usr/Mod/Tux
Log: /snap/freecad/754/usr/Mod/Web
Log: /home/madhead/snap/freecad/common/Mod/btl
Log: /home/madhead/snap/freecad/common/Mod/btl/./
Log: /snap/freecad/754/usr/sbin
Log: /snap/freecad/754/usr/bin
Log: /snap/freecad/754/sbin
Log: /snap/freecad/754/bin
Log: /usr/local/sbin
Log: /usr/local/bin
Log: /usr/sbin
Log: /usr/bin
Log: /sbin
Log: /bin
Log: /usr/games
Log: /usr/local/games
Log: /snap/freecad/754/kf5/usr/bin
Log: Init: App::FreeCADInit.py done
Log: Init: Creating Gui::Application and QApplication
Wrn: Qt: Session management error: Could not open network socket
Log: OpenGL version is: 4.6 (4.6 (Compatibility Profile) Mesa 23.0.4-0ubuntu1~22.04.1)
Log: Run Gui init script
Log: Init: Running FreeCADGuiInit.py start script...
Log: Init: Searching modules...
Log: Init: Initializing /snap/freecad/754/usr/Mod/AddonManager... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Arch... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Draft... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Fem... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Idf(InitGui.py not found)... ignore
Log: Init: Initializing /snap/freecad/754/usr/Mod/Import... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Inspection... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Material... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Measure(InitGui.py not found)... ignore
Log: Init: Initializing /snap/freecad/754/usr/Mod/Mesh... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/MeshPart... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/OpenSCAD... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Part... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/PartDesign... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Path... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Plot(InitGui.py not found)... ignore
Log: Init: Initializing /snap/freecad/754/usr/Mod/Points... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/ReverseEngineering... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Robot... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Show(InitGui.py not found)... ignore
Log: Init: Initializing /snap/freecad/754/usr/Mod/Sketcher... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/SnapSetup(InitGui.py not found)... ignore
Log: Init: Initializing /snap/freecad/754/usr/Mod/Spreadsheet... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Start... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Surface... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/TechDraw... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Test... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Tux... done
Log: Init: Initializing /snap/freecad/754/usr/Mod/Web... done
Log: Init: Initializing /home/madhead/snap/freecad/common/Mod/btl/./... failed
Log: ----------------------------------------------------------------------------------------------------
Log: Traceback (most recent call last):
File "<string>", line 136, in RunInitGuiPy
File "<string>", line 1, in <module>
File "/snap/freecad/754/usr/lib/python3/dist-packages/shiboken2/files.dir/shibokensupport/feature.py", line 139, in _import
return original_import(name, *args, **kwargs)
File "/home/madhead/snap/freecad/common/Mod/btl/./btl/__init__.py", line 4, in <module>
from .tool import Tool
File "/snap/freecad/754/usr/lib/python3/dist-packages/shiboken2/files.dir/shibokensupport/feature.py", line 139, in _import
return original_import(name, *args, **kwargs)
File "/home/madhead/snap/freecad/common/Mod/btl/./btl/tool.py", line 5, in <module>
from .feeds.util import cantilever_deflect_endload, cantilever_deflect_uniload
File "/snap/freecad/754/usr/lib/python3/dist-packages/shiboken2/files.dir/shibokensupport/feature.py", line 139, in _import
return original_import(name, *args, **kwargs)
File "/home/madhead/snap/freecad/common/Mod/btl/./btl/feeds/__init__.py", line 1, in <module>
from .calc import FeedCalc
File "/snap/freecad/754/usr/lib/python3/dist-packages/shiboken2/files.dir/shibokensupport/feature.py", line 139, in _import
return original_import(name, *args, **kwargs)
File "/home/madhead/snap/freecad/common/Mod/btl/./btl/feeds/calc.py", line 3, in <module>
from scipy.optimize import minimize
File "/snap/freecad/754/usr/lib/python3/dist-packages/shiboken2/files.dir/shibokensupport/feature.py", line 139, in _import
return original_import(name, *args, **kwargs)
File "/snap/freecad/754/usr/lib/python3/dist-packages/scipy/optimize/__init__.py", line 400, in <module>
from ._minimize import *
File "/snap/freecad/754/usr/lib/python3/dist-packages/shiboken2/files.dir/shibokensupport/feature.py", line 139, in _import
return original_import(name, *args, **kwargs)
File "/snap/freecad/754/usr/lib/python3/dist-packages/scipy/optimize/_minimize.py", line 27, in <module>
from ._trustregion_constr import _minimize_trustregion_constr
File "/snap/freecad/754/usr/lib/python3/dist-packages/shiboken2/files.dir/shibokensupport/feature.py", line 139, in _import
return original_import(name, *args, **kwargs)
File "/snap/freecad/754/usr/lib/python3/dist-packages/scipy/optimize/_trustregion_constr/__init__.py", line 4, in <module>
from .minimize_trustregion_constr import _minimize_trustregion_constr
File "/snap/freecad/754/usr/lib/python3/dist-packages/shiboken2/files.dir/shibokensupport/feature.py", line 139, in _import
return original_import(name, *args, **kwargs)
File "/snap/freecad/754/usr/lib/python3/dist-packages/scipy/optimize/_trustregion_constr/minimize_trustregion_constr.py", line 10, in <module>
from .equality_constrained_sqp import equality_constrained_sqp
File "/snap/freecad/754/usr/lib/python3/dist-packages/shiboken2/files.dir/shibokensupport/feature.py", line 139, in _import
return original_import(name, *args, **kwargs)
File "/snap/freecad/754/usr/lib/python3/dist-packages/scipy/optimize/_trustregion_constr/equality_constrained_sqp.py", line 4, in <module>
from .projections import projections
File "/snap/freecad/754/usr/lib/python3/dist-packages/shiboken2/files.dir/shibokensupport/feature.py", line 139, in _import
return original_import(name, *args, **kwargs)
File "/snap/freecad/754/usr/lib/python3/dist-packages/scipy/optimize/_trustregion_constr/projections.py", line 8, in <module>
from sksparse.cholmod import cholesky_AAt
File "/snap/freecad/754/usr/lib/python3/dist-packages/shiboken2/files.dir/shibokensupport/feature.py", line 139, in _import
return original_import(name, *args, **kwargs)
File "sksparse/cholmod.pyx", line 1, in init sksparse.cholmod
ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject
Log: ----------------------------------------------------------------------------------------------------
Err: During initialization the error "numpy.ndarray size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject" occurred in /home/madhead/snap/freecad/common/Mod/btl/./InitGui.py
Err: Please look into the log file for further information
Log: All modules with GUIs using InitGui.py are now initialized
Log: All modules with GUIs initialized using pkgutil are now initialized
Log: Init: Loading FreeCAD GUI
Log: Init: Running FreeCADGuiInit.py start script... done
Log: Init: Activating default workbench StartWorkbench
Log: Loading GUI of Web module... done
Log: Loading GUI of Start module... done
Log: Loading Start module... done
Log: Sandboxing disabled by user.
Log: Init: Showing main window
Log: Main window restored
Log: Show main window
Log: Toolbars restored
Log: Couldn't connect to spacenav daemon. Please ignore if you don't have a spacemouse.
Log: Init: Entering event loop
Log: Init: Executing event loop...
Log: Init: Processing command line files
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.