KeithSloan / ImportNURBS

Add Import of 3DM files to FreeCAD
Other
11 stars 5 forks source link

Add a dependency tag for rhino3dm to package.xml #10

Open wildjerry opened 2 years ago

wildjerry commented 2 years ago

I am trying to install ImportNURBS on a snap installation of freecad-realthunder, which poses a challenge since the files in sys.path are in a read only file system, at least from a user-perspective, even though addons can be installed to those paths just fine. Per the wiki page about the format of package.xml, adding a <dependency> tag will make FreeCad install it automatically. It looks like rhino3dm is already included in the Addon Manager whitelist.

In addition to solving my somewhat niche issue(which I've spent about an hour trying to find a workaround for), this would also streamline the experience of installing the addon for all new users.

KeithSloan commented 2 years ago

Thanks for reporting, by dependency I assume you mean depend as per the wiki.

Package.xml now looks like

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<package format="1" xmlns="https://wiki.freecad.org/Package_Metadata">
  <name>ImportNurbs workbench</name>
  <description>An external workbench for add importer for 3dm></description>
  <version>1.1 Beta</version>
  <date>2022-07-04</date>
  <maintainer email="keith@sloan-home.co.uk">Keith Sloan</maintainer>
  <license file="LICENSE">LGPL-2.1</license>
  <url type="repository" branch="master">https://github.com/KeithSloan/ImportNURBS</url>
  <url type="documentation">https://github.com/KeithSloan/ImportNURBS/wiki</url>
  <url type="readme">https://github.com/KeithSloa/ImportNURBS/blob/master/README.md</url>

  <content>
    <workbench>
      <classname>ImportNURBSWorkbench</classname>
      <subdirectory>./</subdirectory>
      <icon>freecad/ImportNURBS/Resources/icons/ImportNURBSworkbench.svg</icon>
      <freecadmin>0.19.3</freecadmin>
      <depend>rhino3dm</depend>
    </workbench>
  </content>
KeithSloan commented 2 years ago

Let me know if it fixes it for you.

Not sure I understand the difference between having a depend and options in metadata.txt

wildjerry commented 2 years ago

On both the realthunder fork, and the mainline version of freecad, I get the following error:

Some errors were found that prevent to install this workbench: Some errors were found that prevent to install this workbench. Please install the missing components first.

It doesn't look like there is any additional information in the reports view.

KeithSloan commented 2 years ago

I will ask Chris Hennes in the FreeCAD forum, he developed the Addon Manager.

wildjerry commented 2 years ago

I was looking through the code for the Adding Manager, and I didn't find any capability to actually install dependencies. I didn't go through every file, just ran a couple searches and attempted to manually follow the code, but if it is one of the features that the wiki mentions aren't fully implemented, then that would definitely explain why it doesn't work.

KeithSloan commented 2 years ago

I had no problem deleting ImportNURBS and reinstalling. I did do a refresh cache and at some points the Addon Manager seemed to get reporting versions wrong


OS: macOS 10.16
Word size of FreeCAD: 64-bit
Version: 0.20.29177 (Git)
Build type: Release
Branch: (HEAD detached at 0.20)
Hash: 68e337670e227889217652ddac593c93b5e8dc94
Python 3.9.13, Qt 5.12.9, Coin 4.0.0, Vtk 9.1.0, OCC 7.5.3
Locale: C/Default (C)
Installed mods: 
  * MeshRemodel 1.8919.0
  * ImportNURBS 1.1.0
  * dxf_library
  * InventorLoader 1.3.0
  * workfeature
  * Defeaturing
  * Macro-Vision
  * GDML 2.0.0
  * Manipulator 1.4.8
  * Design456
  * SWPart
  * OpenSCAD_Alt_Import
  * Jupyter
  * 3D_Printing_Tools
  * toSketch
  * Curves 0.5.0
wildjerry commented 2 years ago

Just to be clear, did you also remove rhino3DM?

KeithSloan commented 2 years ago

No I just removed the workbench.

But I have also installed a fresh copy of FreeCAD_0.20 (Different name, so python libraries should be a different path) and that works fine on reinstall of workbench.

What OS are you using?

wildjerry commented 2 years ago

Ubuntu 21.10 x86_64

KeithSloan commented 2 years ago

For Addon Manager there is some logging option you can turn on but I cannot remember the details, we need to ask chennes in the FreeCAD forum.

chennes commented 2 years ago

The logging isn't specific to the Addon Manager -- you just turn on logging for all of FreeCAD. If you are running from the command line you can use the --write-log option. Otherwise it's a setting in the general preferences.

KeithSloan commented 2 years ago

With logging turn on what does Report View show?

wildjerry commented 2 years ago

When I first launch the program, it logs a bunch of things, but when I open the addon manager and attempt to download, nothing shows up in the logs.

17:22:49  OpenGL version is: 4.5 (4.5 (Compatibility Profile) Mesa 21.2.6)
17:22:49  Run Gui init script
17:22:49  Init: Running FreeCADGuiInit.py start script...
17:22:54  Init:   Searching modules...
17:22:58  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/AddonManager... done
17:22:59  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/Arch... done
17:22:59  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/Assembly3(InitGui.py not found)... ignore
17:23:01  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/Draft... done
17:23:01  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/Drawing... done
17:23:01  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/Fem... done
17:23:01  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/Idf(InitGui.py not found)... ignore
17:23:01  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/Image... done
17:23:01  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/Import... done
17:23:02  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/Inspection... done
17:23:02  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/Material... done
17:23:02  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/Measure(InitGui.py not found)... ignore
17:23:02  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/Mesh... done
17:23:02  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/MeshPart... done
17:23:02  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/OpenSCAD... done
17:23:02  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/Part... done
17:23:02  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/PartDesign... done
17:23:02  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/Path... done
17:23:02  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/Plot(InitGui.py not found)... ignore
17:23:02  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/Points... done
17:23:02  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/Raytracing... done
17:23:02  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/ReverseEngineering... done
17:23:03  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/Robot... done
17:23:03  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/Show(InitGui.py not found)... ignore
17:23:03  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/Sketcher... done
17:23:03  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/SnapSetup(InitGui.py not found)... ignore
17:23:03  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/Spreadsheet... done
17:23:03  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/Start... done
17:23:03  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/Surface... done
17:23:03  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/TechDraw... done
17:23:03  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/Test... done
17:23:03  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/Tux... done
17:23:04  Init:      Initializing /snap/freecad-realthunder/47/usr/Mod/Web... done
17:23:04  Init:      Initializing /home/ubuntu/snap/freecad-realthunder/common/.FreeCAD/Mod/3D_Printing_Tools... done
17:23:04  Init:      Initializing /home/ubuntu/snap/freecad-realthunder/common/.FreeCAD/Mod/fcgear(InitGui.py not found)... ignore
17:23:04  Init:      Initializing /home/ubuntu/snap/freecad-realthunder/common/.FreeCAD/Mod/fasteners... done
17:23:04  Init:      Initializing /home/ubuntu/snap/freecad-realthunder/common/.FreeCAD/Mod/Rocket... done
17:23:04  Init: Initializing freecad.fc_cadquery
17:23:04  Init: No init_gui module found in freecad.fc_cadquery, skipping
17:23:04  Init: Initializing freecad.gears
17:23:04  Init: Initializing freecad.gears... done
17:23:05  Init: Initializing freecad.asm3
17:23:31  Init: Initializing freecad.asm3... done
17:23:31  Init: Loading FreeCAD GUI
17:23:31  Init: Running FreeCADGuiInit.py start script... done
17:23:43  Init: Activating default workbench StartWorkbench
17:23:43  Loading GUI of Web module... done
17:23:43  Loading GUI of Start module... done
17:23:43  Loading Start module... done
17:23:43  Init: Showing main window
17:23:43  Main window restored
17:23:43  Show main window
17:23:43  Toolbars restored
17:23:43  Init: Entering event loop
17:23:43  Couldn't connect to spacenav daemon. Please ignore if you don't have a spacemouse.
17:23:43  Init: Entering event loop
17:23:43  Init: Processing command line files

The error is still shown in the same place where it shows descriptions.

KeithSloan commented 2 years ago

So ImportNURBS workbench is not installed and when you go to install it with Addon Manager nothing is reported in Report View despite having settings that redirect log errors to Report View? Is this a correct assessment?

KeithSloan commented 2 years ago

Have you tried starting FreeCAD from the command line with the options advised by chennes?

wildjerry commented 2 years ago

I just did and it does seem to give additional information(linked below).

Both of these are a single run-I confirmed this by clearing the logfile first. I note this because it seems odd that it would do two initiailizaions of modules, once "searching modules" and once "searching FOR modules", but I have actually confirmed that these are each a single execution from launch, to opening addon manager, to attempting to install the workbench, to closing FreeCAD afterwards.

I created a gist with the logs.

wildjerry commented 2 years ago

Also, I really appreciate the time you're taking to help me with this issue.