Giter Site home page Giter Site logo

knipknap / better-tool-library Goto Github PK

View Code? Open in Web Editor NEW
14.0 14.0 6.0 2.63 MB

A FreeCAD addon and command line tool for managing tool libraries

License: MIT License

Python 99.88% Shell 0.12%
addon camotics cnc freecad freecad-addon freecad-addons freecad-workbench lathe linuxcnc milling milling-machine tool-library tools

better-tool-library's People

Contributors

alexneufeld avatar arm4g3ddon avatar knipknap avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

better-tool-library's Issues

Library of existing tools - existence and expansion?

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.

V bit import from Fusion 360 files sets TipAngle, not CuttingEdgeAngle

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.

Screen Shot 2024-02-28 at 3 11 55 PM

when you create a new tool freecad closes

2024-06-21.22-38-19.mp4

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:

  • AutoOpenSpreadsheet
  • IconThemes
  • fasteners.backup1715436808.37841 0.5.16 (Disabled)
  • btl 0.9.9
  • FeedsAndSpeeds 0.5.0
  • OpenTheme 2024.5.16
  • Assembly4.backup1718498214.0742533 0.50.12 (Disabled)
  • fasteners 0.5.24
  • TabBar
  • Assembly4 0.50.13

Missing units error not handled

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.

exception in tool.py

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)

Errors on opening

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:

  • btl 0.9.9
  • Curves 0.6.29

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

Feed and speed not work

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:

  • btl 0.9.9
    [/code]

I cannot push a branch so here are more fixes:

In btl/feeds/material.py change "Hardwood" to "Wood (hard)" ... consistent naming change

Add this window snippet to the media dir as machine.png
machine

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

Wrong numpy version on Freecad 0.21 realthunder branch flatpak

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

image

I checked in the python console inside FreeCAD and it tells me it's running numpy 1.21 instead

image

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

Binging up imperial output again ...

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.

Wrong Material for a bit on import

Loaded a bit from "whiteside_tools.json"

whiteside_tools.json

as shown below.

image

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"
},

Multi language

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>

https://stackoverflow.com/questions/53775440/switch-the-display-language-of-multi-language-svg-using-systemlanguage-for-dis

It would be real nice to have the BTL in FreeCAD!

Main screen hard to read when using Dark Theme

Using ProDarkThemePack -- OpenDark looks a bit better, but the gray color still doesn't show up very well.

Screenshot from 2024-01-16 01-48-35

Sub pages look a bit better

Screenshot from 2024-01-16 01-53-37

All end mill images could use more contrast or something.

ValueError: An upper bound is less than the corresponding lower bound.

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.

Tapered ball nose endmills

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 :).

Tool Editor in FreeCad.

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.

How to increase resolution of tool pictograms?

Hello,

i am using a 4k monitor and if i open the better-tool-library application, the pictograms of the tools have a very low resolution as you can see in the attached picture. Is it possible to change this behavior to get better resolution?
Screenshot_BTL

Adding Vendors catalogs

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.

Toolbar Icon won't stay after restart.

After placing the BTL icon where I want it, and restarting FreeCAD, it moves back to very top.
Screenshot from 2024-01-21 14-51-31

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 BTL does not work

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

Proposed fix to fusionserializer.py (in serializers)

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)

'''

Tool from the new tool importer (from F360) don't seem to have feeds & speeds available.

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:
image

I know this is extremely new, as in hours but a few suggestions:

  • when importing large files a % complete would be nice .... Harvey tool is 31.5 Mb Amana was 85k and Amana took 5 sec
  • If you like I will attempt to document the process for importing libs ... it is a bit tedious (but it works... so not really complaing)
  1. File/Create library/New Library Name
  2. Goto bottom of screen select new library name
  3. File/import a library/Select format (ie .tools)

Crash report (support imperial units in the Feeds&Speeds calculator)

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.

Cannot get BTL working in FreeCAD 0.22 (build 37841)

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:

  • when adding the package, the icon does not appear on the bar,
  • when clicking TollTable (P,T) the standard taskbar appear on the right with Library Editor icon, but when clocking the latter one, BTL window pops out,
  • cannot import any older library saved with BTL (in April 2024) - it is stacked with "unused tools", but when I try to add any tool from it, I get the following error:
    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:

  • btl 0.9.9

Any idea what's going on?

No module named 'scipy'

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

Win 11 (insiders Beta) with FreeCad 0.21.0 (rev 33345) Failure to load

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

Multiple BTL icons on FC taskbar

`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:

  • btl 0.9.9
    `

Whenever I change deactivate FreeCAD (switch windows, move to terminal or switch to web browser) I get another icon of BTL on the taskbar:
Zrzut-ekranu-z-2024-04-29-18-03-57
Zrzut-ekranu-z-2024-04-29-18-04-29

And I have to deactivate every icon with a right click at the taskbar, unless I want a hundred of them after a while ;)
Zrzut-ekranu-z-2024-04-29-18-04-51

I know 0.22 is a dev version so far, but maybe someone knows the answer to my problem :)

Changes to fusionserializer.py

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"]),
                )

BTL is not working

Steps to reproduce

  1. Install BTL via the addon manager.
  2. Restart FreeCAD.
  3. Try to find / use BTL.

Expected behavior

A BTL icon appears somewhere in the "Path" workbench. Clicking it opens the BTL GUI.

Actual behavior

Not BTL icon appears in the UI:

image

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

FreeCAD info

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

The logs

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.