Finalizing Python interface bindings for Import, Measure, Mesh, Points.

This commit is contained in:
Ian 'z0r0' Abreu
2025-08-31 15:34:03 -04:00
parent e8ea685e1b
commit ca435629b8
29 changed files with 37 additions and 1404 deletions

View File

@@ -10,16 +10,13 @@ set(Measure_LIBS
FreeCADApp
)
generate_from_xml(MeasurementPy)
generate_from_xml(MeasureBasePy)
generate_from_py_(MeasurementPy)
generate_from_py_(MeasureBasePy)
generate_from_py(Measurement)
generate_from_py(MeasureBase)
SET(Python_SRCS
MeasurementPy.xml
Measurement.pyi
MeasurementPyImp.cpp
MeasureBasePy.xml
MeasureBase.pyi
MeasureBasePyImp.cpp
)
SOURCE_GROUP("Python" FILES ${Python_SRCS})

View File

@@ -3,17 +3,11 @@ from Base.Metadata import export
from App.DocumentObject import DocumentObject
@export(
Father="DocumentObjectPy",
Name="MeasureBasePy",
Twin="MeasureBase",
TwinPointer="MeasureBase",
Include="Mod/Measure/App/MeasureBase.h",
Namespace="Measure",
FatherInclude="App/DocumentObjectPy.h",
FatherNamespace="App",
Constructor=True,
)
class MeasureBasePy(DocumentObject):
class MeasureBase(DocumentObject):
"""
User documentation here
"""

View File

@@ -1,20 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<GenerateModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="generateMetaModel_Module.xsd">
<PythonExport
Father="DocumentObjectPy"
Name="MeasureBasePy"
Twin="MeasureBase"
TwinPointer="MeasureBase"
Include="Mod/Measure/App/MeasureBase.h"
Namespace="Measure"
FatherInclude="App/DocumentObjectPy.h"
FatherNamespace="App"
Constructor="true">
<Documentation>
<Author Licence="LGPL" Name="David Friedli(hlorus)" EMail="david@friedli-be.ch" />
<UserDocu>User documentation here
</UserDocu>
<DeveloperDocu>Developer documentation here</DeveloperDocu>
</Documentation>
</PythonExport>
</GenerateModel>

View File

@@ -4,17 +4,11 @@ from Base.BaseClass import BaseClass
from Base.Metadata import export
@export(
Father="BaseClassPy",
Name="MeasurementPy",
Twin="Measurement",
TwinPointer="Measurement",
Include="Mod/Measure/App/Measurement.h",
Namespace="Measure",
FatherInclude="Base/BaseClassPy.h",
FatherNamespace="Base",
Constructor=True,
)
class MeasurementPy(BaseClass):
class Measurement(BaseClass):
"""
Make a measurement
"""

View File

@@ -1,79 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- this creates the bindings for the original measurement objects & methods. it is not part of unified measurement facility -->
<GenerateModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="generateMetaModel_Module.xsd">
<PythonExport
Father="BaseClassPy"
Name="MeasurementPy"
Twin="Measurement"
TwinPointer="Measurement"
Include="Mod/Measure/App/Measurement.h"
Namespace="Measure"
FatherInclude="Base/BaseClassPy.h"
Constructor="true"
FatherNamespace="Base">
<Documentation>
<Author Licence="LGPL" Name="Luke Parry" EMail="l.parry@warwick.ac.uk" />
<UserDocu>Make a measurement</UserDocu>
</Documentation>
<Methode Name="addReference3D">
<Documentation>
<UserDocu>add a geometric reference</UserDocu>
</Documentation>
</Methode>
<Methode Name="has3DReferences">
<Documentation>
<UserDocu>does Measurement have links to 3D geometry</UserDocu>
</Documentation>
</Methode>
<Methode Name="clear">
<Documentation>
<UserDocu>measure the difference between references to obtain resultant vector</UserDocu>
</Documentation>
</Methode>
<Methode Name="delta">
<Documentation>
<UserDocu>measure the difference between references to obtain resultant vector</UserDocu>
</Documentation>
</Methode>
<Methode Name="length">
<Documentation>
<UserDocu>measure the length of the references</UserDocu>
</Documentation>
</Methode>
<Methode Name="volume">
<Documentation>
<UserDocu>measure the volume of the references</UserDocu>
</Documentation>
</Methode>
<Methode Name="area">
<Documentation>
<UserDocu>measure the area of the references</UserDocu>
</Documentation>
</Methode>
<Methode Name="lineLineDistance">
<Documentation>
<UserDocu>measure the line-Line Distance of the references. Returns 0 if references are not 2 lines.</UserDocu>
</Documentation>
</Methode>
<Methode Name="planePlaneDistance">
<Documentation>
<UserDocu>measure the plane-plane distance of the references. Returns 0 if references are not 2 planes.</UserDocu>
</Documentation>
</Methode>
<Methode Name="angle">
<Documentation>
<UserDocu>measure the angle between two edges</UserDocu>
</Documentation>
</Methode>
<Methode Name="radius">
<Documentation>
<UserDocu>measure the radius of an arc or circle edge</UserDocu>
</Documentation>
</Methode>
<Methode Name="com">
<Documentation>
<UserDocu>measure the center of mass for selected volumes</UserDocu>
</Documentation>
</Methode>
</PythonExport>
</GenerateModel>

View File

@@ -28,8 +28,7 @@ SET(MeasureGui_UIC_SRCS
DlgPrefsMeasureAppearanceImp.ui
)
generate_from_xml(QuickMeasurePy)
generate_from_py_(QuickMeasurePy)
generate_from_py(QuickMeasure)
SET(MeasureGui_SRCS
${CMAKE_SOURCE_DIR}/src/Mod/Measure/InitGui.py
@@ -39,7 +38,7 @@ SET(MeasureGui_SRCS
Resources/Measure.qrc
PreCompiled.cpp
PreCompiled.h
QuickMeasurePy.xml
QuickMeasure.pyi
QuickMeasurePyImp.cpp
QuickMeasure.cpp
QuickMeasure.h

View File

@@ -2,18 +2,12 @@ from Base.Metadata import export
from Base.PyObjectBase import PyObjectBase
@export(
Father="PyObjectBase",
Name="QuickMeasurePy",
Twin="QuickMeasure",
TwinPointer="QuickMeasure",
Include="Mod/Measure/Gui/QuickMeasure.h",
Namespace="MeasureGui",
FatherInclude="Base/PyObjectBase.h",
FatherNamespace="Base",
Constructor=True,
Delete=True,
)
class QuickMeasurePy(PyObjectBase):
class QuickMeasure(PyObjectBase):
"""
Selection Observer for the QuickMeasure label.
"""

View File

@@ -1,19 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<GenerateModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="generateMetaModel_Module.xsd">
<PythonExport
Father="PyObjectBase"
Name="QuickMeasurePy"
Twin="QuickMeasure"
TwinPointer="QuickMeasure"
Include="Mod/Measure/Gui/QuickMeasure.h"
Namespace="MeasureGui"
FatherInclude="Base/PyObjectBase.h"
Constructor="true"
Delete="true"
FatherNamespace="Base">
<Documentation>
<Author Licence="LGPL" Name="Ondsel" EMail="development@ondsel.com" />
<UserDocu>Selection Observer for the QuickMeasure label.</UserDocu>
</Documentation>
</PythonExport>
</GenerateModel>