Moin,
Da ich Anfänger bin (jedoch früher 'Turbo Pascal' programmiert), habe ich mich erst mal für die absolute Variante entschieden und zwar unter Py3 ohne __init__.py
Die __init__.py würde es ja grundsätzlich leichter machen eine boxcrator-Version zu erstellen für py2 und py3.
Allerdings erscheint diese in dem Macro-Auswahlfenster von FreeCAD, was ich im ersten Moment dort als unschön / unelegant empfinde
Auch könnte es sein wenn ich einmal unachtsam andere Macros installiere, das diese überschrieben wird von anderen Macros, die die gleiche Technik verwenden...
Die absolute Variante habe ich gewählt weil so ausgeschlossen werden kann, das durch irgendwelche zusätzlichen Einstellungen der Bezug flöten geht
Das FreeCAD einen eigenen Umgang mit Macros Namens FCMacro verfolgt, habe ich gesehen. Damit möchte ich mich später auseinander setzen.
Also ist jetzt der Stand:
In boxcreatorGUI.py:
from boxcreator import boxcreator ->
box = boxcreator.create_box()
So scheint jetzt der Bezug hergestellt zu sein.
Allerdings geht das 'Gemecker' weiter:
Code: Select all
[0.0, 0.0, 0.0, 0.0]
Traceback (most recent call last):
File "C:/Users/User/AppData/Roaming/FreeCAD/Macro/boxcreatorGUI.py", line 190, in createBox
box = boxcreator.create_box(materialWidth, boxWidth, boxHeight, boxLength, notchWidth, drawSides, overhangTop, overhangBottom)
File "C:/Users/User/AppData/Roaming/FreeCAD/Macro\boxcreator\boxcreator.py", line 16, in create_box
side1 = draw_bottom("bottom", materialWidth, boxWidth, boxLength, notchWidth, drawSides, overhangBottom)
File "C:/Users/User/AppData/Roaming/FreeCAD/Macro\boxcreator\boxcreator.py", line 128, in draw_bottom
side1 = extrudeLines(partname, lines, materialWidth)
File "C:/Users/User/AppData/Roaming/FreeCAD/Macro\boxcreator\boxcreator.py", line 189, in extrudeLines
j.Proxy.execute(j)
File "C:\Program Files\FreeCAD_0.19.16808_x64_LP_12.1.2_PY3QT5-WinVS2015\Mod\Part\BOPTools\JoinFeatures.py", line 130, in execute
rst = JoinAPI.connect([obj.Shape for obj in selfobj.Objects], selfobj.Tolerance)
File "C:\Program Files\FreeCAD_0.19.16808_x64_LP_12.1.2_PY3QT5-WinVS2015\Mod\Part\BOPTools\JoinAPI.py", line 68, in connect
new_list_of_shapes.extend( compoundLeaves(sh) )
File "C:\Program Files\FreeCAD_0.19.16808_x64_LP_12.1.2_PY3QT5-WinVS2015\Mod\Part\BOPTools\Utils.py", line 74, in compoundLeaves
if shape_or_compound.ShapeType == "Compound":
Base.FreeCADError: cannot determine type of null shape
Traceback (most recent call last):
File "C:\Program Files\FreeCAD_0.19.16808_x64_LP_12.1.2_PY3QT5-WinVS2015\Mod\Part\BOPTools\JoinFeatures.py", line 130, in execute
rst = JoinAPI.connect([obj.Shape for obj in selfobj.Objects], selfobj.Tolerance)
File "C:\Program Files\FreeCAD_0.19.16808_x64_LP_12.1.2_PY3QT5-WinVS2015\Mod\Part\BOPTools\JoinAPI.py", line 97, in connect
largest = shapeOfMaxSize(danglers)
File "C:\Program Files\FreeCAD_0.19.16808_x64_LP_12.1.2_PY3QT5-WinVS2015\Mod\Part\BOPTools\JoinAPI.py", line 55, in shapeOfMaxSize
raise ValueError("There is more than one largest piece!")
<class 'ValueError'>: There is more than one largest piece!
Der Hinweis in der ersten Zeile
[0.0, 0.0, 0.0, 0.0] ist wohl der 'markanteste' im Moment...
So wie ich das interpretiere kommen die nachfolgenden Meldungen daraus, das Variablen-Werte nicht weiter gegeben werden...
Was mir auch noch fehlt, wie boxcreator die Verbindung mit FreeCAD herstellt um die Linien und die Teile der Box zu generieren...
VG
Walter