Skip to content

Commit

Permalink
Implemented toolpath UUIDs and zbottom flags
Browse files Browse the repository at this point in the history
  • Loading branch information
netfabb committed Sep 14, 2024
1 parent 10c127d commit 4c8a280
Show file tree
Hide file tree
Showing 35 changed files with 1,353 additions and 61 deletions.
47 changes: 43 additions & 4 deletions Autogenerated/Bindings/C/lib3mf.h
Original file line number Diff line number Diff line change
Expand Up @@ -3626,14 +3626,32 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_toolpath_getprofilecount(Lib3MF_Toolpath pTo
* Adds a new toolpath layer
*
* @param[in] pToolpath - Toolpath instance.
* @param[in] nZMax - ZMax value
* @param[in] nZMax - ZMax value of the layer. MUST be larger than the last layer added, as well as larger as BottomZ.
* @param[in] pPath - Package Path
* @param[in] pModelWriter - The model writer that writes out the 3MF.
* @param[out] pLayerData - Returns the layerdata object to write the layer content into.
* @return error code or 0 (success)
*/
LIB3MF_DECLSPEC Lib3MFResult lib3mf_toolpath_addlayer(Lib3MF_Toolpath pToolpath, Lib3MF_uint32 nZMax, const char * pPath, Lib3MF_Writer pModelWriter, Lib3MF_ToolpathLayerData * pLayerData);

/**
* Returns the bottom Z Value of the toolpath.
*
* @param[in] pToolpath - Toolpath instance.
* @param[out] pBottomZ - BottomZ value
* @return error code or 0 (success)
*/
LIB3MF_DECLSPEC Lib3MFResult lib3mf_toolpath_getbottomz(Lib3MF_Toolpath pToolpath, Lib3MF_uint32 * pBottomZ);

/**
* Sets the bottom Z Value of the toolpath. Will fail if a layer is already existing.
*
* @param[in] pToolpath - Toolpath instance.
* @param[in] nBottomZ - BottomZ value
* @return error code or 0 (success)
*/
LIB3MF_DECLSPEC Lib3MFResult lib3mf_toolpath_setbottomz(Lib3MF_Toolpath pToolpath, Lib3MF_uint32 nBottomZ);

/**
* Retrieves the Attachment of a layer
*
Expand Down Expand Up @@ -3707,7 +3725,7 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_toolpath_addprofile(Lib3MF_Toolpath pToolpat
LIB3MF_DECLSPEC Lib3MFResult lib3mf_toolpath_getprofile(Lib3MF_Toolpath pToolpath, Lib3MF_uint32 nProfileIndex, Lib3MF_ToolpathProfile * pProfile);

/**
* Returns a profile of the toolpath by UUID.
* Returns a profile of the toolpath by UUID. DEPRECIATED! Please use GetProfileByUUID instead.
*
* @param[in] pToolpath - Toolpath instance.
* @param[in] pProfileUUID - UUID string.
Expand All @@ -3716,6 +3734,16 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_toolpath_getprofile(Lib3MF_Toolpath pToolpat
*/
LIB3MF_DECLSPEC Lib3MFResult lib3mf_toolpath_getprofileuuid(Lib3MF_Toolpath pToolpath, const char * pProfileUUID, Lib3MF_ToolpathProfile * pProfile);

/**
* Returns a profile of the toolpath by UUID. Fails if profile does not exist.
*
* @param[in] pToolpath - Toolpath instance.
* @param[in] pProfileUUID - UUID string.
* @param[out] pProfile - Returns the profile.
* @return error code or 0 (success)
*/
LIB3MF_DECLSPEC Lib3MFResult lib3mf_toolpath_getprofilebyuuid(Lib3MF_Toolpath pToolpath, const char * pProfileUUID, Lib3MF_ToolpathProfile * pProfile);

/**
* Retrieves the count of custom data elements.
*
Expand Down Expand Up @@ -4814,15 +4842,26 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_model_addbuilditem(Lib3MF_Model pModel, Lib3
LIB3MF_DECLSPEC Lib3MFResult lib3mf_model_removebuilditem(Lib3MF_Model pModel, Lib3MF_BuildItem pBuildItemInstance);

/**
* adds an empty Toolpath resource to the model.
* adds an empty Toolpath resource to the model. Bottom Z will be 0 in this case.
*
* @param[in] pModel - Model instance.
* @param[in] dUnitFactor - The toolpath instance of the created Toolpath.
* @param[in] dUnitFactor - A factor that transforms document units into toolpath units.
* @param[out] pToolpathInstance - The toolpath instance of the created Toolpath.
* @return error code or 0 (success)
*/
LIB3MF_DECLSPEC Lib3MFResult lib3mf_model_addtoolpath(Lib3MF_Model pModel, Lib3MF_double dUnitFactor, Lib3MF_Toolpath * pToolpathInstance);

/**
* adds an empty Toolpath resource to the model, with a non-standard Bottom Z value.
*
* @param[in] pModel - Model instance.
* @param[in] dUnitFactor - A factor that transforms document units into toolpath units.
* @param[in] nBottomZ - The bottom Z value to be used in the toolpath.
* @param[out] pToolpathInstance - The toolpath instance of the created Toolpath.
* @return error code or 0 (success)
*/
LIB3MF_DECLSPEC Lib3MFResult lib3mf_model_addtoolpathwithbottomz(Lib3MF_Model pModel, Lib3MF_double dUnitFactor, Lib3MF_uint32 nBottomZ, Lib3MF_Toolpath * pToolpathInstance);

/**
* Returns the metadata of the model as MetaDataGroup
*
Expand Down
40 changes: 40 additions & 0 deletions Autogenerated/Bindings/CDynamic/lib3mf_dynamic.cc
Original file line number Diff line number Diff line change
Expand Up @@ -390,6 +390,8 @@ Lib3MFResult InitLib3MFWrapperTable(sLib3MFDynamicWrapperTable * pWrapperTable)
pWrapperTable->m_Toolpath_GetLayerCount = NULL;
pWrapperTable->m_Toolpath_GetProfileCount = NULL;
pWrapperTable->m_Toolpath_AddLayer = NULL;
pWrapperTable->m_Toolpath_GetBottomZ = NULL;
pWrapperTable->m_Toolpath_SetBottomZ = NULL;
pWrapperTable->m_Toolpath_GetLayerAttachment = NULL;
pWrapperTable->m_Toolpath_ReadLayerData = NULL;
pWrapperTable->m_Toolpath_GetLayerPath = NULL;
Expand All @@ -398,6 +400,7 @@ Lib3MFResult InitLib3MFWrapperTable(sLib3MFDynamicWrapperTable * pWrapperTable)
pWrapperTable->m_Toolpath_AddProfile = NULL;
pWrapperTable->m_Toolpath_GetProfile = NULL;
pWrapperTable->m_Toolpath_GetProfileUUID = NULL;
pWrapperTable->m_Toolpath_GetProfileByUUID = NULL;
pWrapperTable->m_Toolpath_GetCustomDataCount = NULL;
pWrapperTable->m_Toolpath_GetCustomData = NULL;
pWrapperTable->m_Toolpath_GetCustomDataName = NULL;
Expand Down Expand Up @@ -507,6 +510,7 @@ Lib3MFResult InitLib3MFWrapperTable(sLib3MFDynamicWrapperTable * pWrapperTable)
pWrapperTable->m_Model_AddBuildItem = NULL;
pWrapperTable->m_Model_RemoveBuildItem = NULL;
pWrapperTable->m_Model_AddToolpath = NULL;
pWrapperTable->m_Model_AddToolpathWithBottomZ = NULL;
pWrapperTable->m_Model_GetMetaDataGroup = NULL;
pWrapperTable->m_Model_AddAttachment = NULL;
pWrapperTable->m_Model_RemoveAttachment = NULL;
Expand Down Expand Up @@ -3675,6 +3679,24 @@ Lib3MFResult LoadLib3MFWrapperTable(sLib3MFDynamicWrapperTable * pWrapperTable,
if (pWrapperTable->m_Toolpath_AddLayer == NULL)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;

#ifdef _WIN32
pWrapperTable->m_Toolpath_GetBottomZ = (PLib3MFToolpath_GetBottomZPtr) GetProcAddress(hLibrary, "lib3mf_toolpath_getbottomz");
#else // _WIN32
pWrapperTable->m_Toolpath_GetBottomZ = (PLib3MFToolpath_GetBottomZPtr) dlsym(hLibrary, "lib3mf_toolpath_getbottomz");
dlerror();
#endif // _WIN32
if (pWrapperTable->m_Toolpath_GetBottomZ == NULL)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;

#ifdef _WIN32
pWrapperTable->m_Toolpath_SetBottomZ = (PLib3MFToolpath_SetBottomZPtr) GetProcAddress(hLibrary, "lib3mf_toolpath_setbottomz");
#else // _WIN32
pWrapperTable->m_Toolpath_SetBottomZ = (PLib3MFToolpath_SetBottomZPtr) dlsym(hLibrary, "lib3mf_toolpath_setbottomz");
dlerror();
#endif // _WIN32
if (pWrapperTable->m_Toolpath_SetBottomZ == NULL)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;

#ifdef _WIN32
pWrapperTable->m_Toolpath_GetLayerAttachment = (PLib3MFToolpath_GetLayerAttachmentPtr) GetProcAddress(hLibrary, "lib3mf_toolpath_getlayerattachment");
#else // _WIN32
Expand Down Expand Up @@ -3747,6 +3769,15 @@ Lib3MFResult LoadLib3MFWrapperTable(sLib3MFDynamicWrapperTable * pWrapperTable,
if (pWrapperTable->m_Toolpath_GetProfileUUID == NULL)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;

#ifdef _WIN32
pWrapperTable->m_Toolpath_GetProfileByUUID = (PLib3MFToolpath_GetProfileByUUIDPtr) GetProcAddress(hLibrary, "lib3mf_toolpath_getprofilebyuuid");
#else // _WIN32
pWrapperTable->m_Toolpath_GetProfileByUUID = (PLib3MFToolpath_GetProfileByUUIDPtr) dlsym(hLibrary, "lib3mf_toolpath_getprofilebyuuid");
dlerror();
#endif // _WIN32
if (pWrapperTable->m_Toolpath_GetProfileByUUID == NULL)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;

#ifdef _WIN32
pWrapperTable->m_Toolpath_GetCustomDataCount = (PLib3MFToolpath_GetCustomDataCountPtr) GetProcAddress(hLibrary, "lib3mf_toolpath_getcustomdatacount");
#else // _WIN32
Expand Down Expand Up @@ -4728,6 +4759,15 @@ Lib3MFResult LoadLib3MFWrapperTable(sLib3MFDynamicWrapperTable * pWrapperTable,
if (pWrapperTable->m_Model_AddToolpath == NULL)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;

#ifdef _WIN32
pWrapperTable->m_Model_AddToolpathWithBottomZ = (PLib3MFModel_AddToolpathWithBottomZPtr) GetProcAddress(hLibrary, "lib3mf_model_addtoolpathwithbottomz");
#else // _WIN32
pWrapperTable->m_Model_AddToolpathWithBottomZ = (PLib3MFModel_AddToolpathWithBottomZPtr) dlsym(hLibrary, "lib3mf_model_addtoolpathwithbottomz");
dlerror();
#endif // _WIN32
if (pWrapperTable->m_Model_AddToolpathWithBottomZ == NULL)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;

#ifdef _WIN32
pWrapperTable->m_Model_GetMetaDataGroup = (PLib3MFModel_GetMetaDataGroupPtr) GetProcAddress(hLibrary, "lib3mf_model_getmetadatagroup");
#else // _WIN32
Expand Down
51 changes: 47 additions & 4 deletions Autogenerated/Bindings/CDynamic/lib3mf_dynamic.h
Original file line number Diff line number Diff line change
Expand Up @@ -3613,14 +3613,32 @@ typedef Lib3MFResult (*PLib3MFToolpath_GetProfileCountPtr) (Lib3MF_Toolpath pToo
* Adds a new toolpath layer
*
* @param[in] pToolpath - Toolpath instance.
* @param[in] nZMax - ZMax value
* @param[in] nZMax - ZMax value of the layer. MUST be larger than the last layer added, as well as larger as BottomZ.
* @param[in] pPath - Package Path
* @param[in] pModelWriter - The model writer that writes out the 3MF.
* @param[out] pLayerData - Returns the layerdata object to write the layer content into.
* @return error code or 0 (success)
*/
typedef Lib3MFResult (*PLib3MFToolpath_AddLayerPtr) (Lib3MF_Toolpath pToolpath, Lib3MF_uint32 nZMax, const char * pPath, Lib3MF_Writer pModelWriter, Lib3MF_ToolpathLayerData * pLayerData);

/**
* Returns the bottom Z Value of the toolpath.
*
* @param[in] pToolpath - Toolpath instance.
* @param[out] pBottomZ - BottomZ value
* @return error code or 0 (success)
*/
typedef Lib3MFResult (*PLib3MFToolpath_GetBottomZPtr) (Lib3MF_Toolpath pToolpath, Lib3MF_uint32 * pBottomZ);

/**
* Sets the bottom Z Value of the toolpath. Will fail if a layer is already existing.
*
* @param[in] pToolpath - Toolpath instance.
* @param[in] nBottomZ - BottomZ value
* @return error code or 0 (success)
*/
typedef Lib3MFResult (*PLib3MFToolpath_SetBottomZPtr) (Lib3MF_Toolpath pToolpath, Lib3MF_uint32 nBottomZ);

/**
* Retrieves the Attachment of a layer
*
Expand Down Expand Up @@ -3694,7 +3712,7 @@ typedef Lib3MFResult (*PLib3MFToolpath_AddProfilePtr) (Lib3MF_Toolpath pToolpath
typedef Lib3MFResult (*PLib3MFToolpath_GetProfilePtr) (Lib3MF_Toolpath pToolpath, Lib3MF_uint32 nProfileIndex, Lib3MF_ToolpathProfile * pProfile);

/**
* Returns a profile of the toolpath by UUID.
* Returns a profile of the toolpath by UUID. DEPRECIATED! Please use GetProfileByUUID instead.
*
* @param[in] pToolpath - Toolpath instance.
* @param[in] pProfileUUID - UUID string.
Expand All @@ -3703,6 +3721,16 @@ typedef Lib3MFResult (*PLib3MFToolpath_GetProfilePtr) (Lib3MF_Toolpath pToolpath
*/
typedef Lib3MFResult (*PLib3MFToolpath_GetProfileUUIDPtr) (Lib3MF_Toolpath pToolpath, const char * pProfileUUID, Lib3MF_ToolpathProfile * pProfile);

/**
* Returns a profile of the toolpath by UUID. Fails if profile does not exist.
*
* @param[in] pToolpath - Toolpath instance.
* @param[in] pProfileUUID - UUID string.
* @param[out] pProfile - Returns the profile.
* @return error code or 0 (success)
*/
typedef Lib3MFResult (*PLib3MFToolpath_GetProfileByUUIDPtr) (Lib3MF_Toolpath pToolpath, const char * pProfileUUID, Lib3MF_ToolpathProfile * pProfile);

/**
* Retrieves the count of custom data elements.
*
Expand Down Expand Up @@ -4801,15 +4829,26 @@ typedef Lib3MFResult (*PLib3MFModel_AddBuildItemPtr) (Lib3MF_Model pModel, Lib3M
typedef Lib3MFResult (*PLib3MFModel_RemoveBuildItemPtr) (Lib3MF_Model pModel, Lib3MF_BuildItem pBuildItemInstance);

/**
* adds an empty Toolpath resource to the model.
* adds an empty Toolpath resource to the model. Bottom Z will be 0 in this case.
*
* @param[in] pModel - Model instance.
* @param[in] dUnitFactor - The toolpath instance of the created Toolpath.
* @param[in] dUnitFactor - A factor that transforms document units into toolpath units.
* @param[out] pToolpathInstance - The toolpath instance of the created Toolpath.
* @return error code or 0 (success)
*/
typedef Lib3MFResult (*PLib3MFModel_AddToolpathPtr) (Lib3MF_Model pModel, Lib3MF_double dUnitFactor, Lib3MF_Toolpath * pToolpathInstance);

/**
* adds an empty Toolpath resource to the model, with a non-standard Bottom Z value.
*
* @param[in] pModel - Model instance.
* @param[in] dUnitFactor - A factor that transforms document units into toolpath units.
* @param[in] nBottomZ - The bottom Z value to be used in the toolpath.
* @param[out] pToolpathInstance - The toolpath instance of the created Toolpath.
* @return error code or 0 (success)
*/
typedef Lib3MFResult (*PLib3MFModel_AddToolpathWithBottomZPtr) (Lib3MF_Model pModel, Lib3MF_double dUnitFactor, Lib3MF_uint32 nBottomZ, Lib3MF_Toolpath * pToolpathInstance);

/**
* Returns the metadata of the model as MetaDataGroup
*
Expand Down Expand Up @@ -5521,6 +5560,8 @@ typedef struct {
PLib3MFToolpath_GetLayerCountPtr m_Toolpath_GetLayerCount;
PLib3MFToolpath_GetProfileCountPtr m_Toolpath_GetProfileCount;
PLib3MFToolpath_AddLayerPtr m_Toolpath_AddLayer;
PLib3MFToolpath_GetBottomZPtr m_Toolpath_GetBottomZ;
PLib3MFToolpath_SetBottomZPtr m_Toolpath_SetBottomZ;
PLib3MFToolpath_GetLayerAttachmentPtr m_Toolpath_GetLayerAttachment;
PLib3MFToolpath_ReadLayerDataPtr m_Toolpath_ReadLayerData;
PLib3MFToolpath_GetLayerPathPtr m_Toolpath_GetLayerPath;
Expand All @@ -5529,6 +5570,7 @@ typedef struct {
PLib3MFToolpath_AddProfilePtr m_Toolpath_AddProfile;
PLib3MFToolpath_GetProfilePtr m_Toolpath_GetProfile;
PLib3MFToolpath_GetProfileUUIDPtr m_Toolpath_GetProfileUUID;
PLib3MFToolpath_GetProfileByUUIDPtr m_Toolpath_GetProfileByUUID;
PLib3MFToolpath_GetCustomDataCountPtr m_Toolpath_GetCustomDataCount;
PLib3MFToolpath_GetCustomDataPtr m_Toolpath_GetCustomData;
PLib3MFToolpath_GetCustomDataNamePtr m_Toolpath_GetCustomDataName;
Expand Down Expand Up @@ -5638,6 +5680,7 @@ typedef struct {
PLib3MFModel_AddBuildItemPtr m_Model_AddBuildItem;
PLib3MFModel_RemoveBuildItemPtr m_Model_RemoveBuildItem;
PLib3MFModel_AddToolpathPtr m_Model_AddToolpath;
PLib3MFModel_AddToolpathWithBottomZPtr m_Model_AddToolpathWithBottomZ;
PLib3MFModel_GetMetaDataGroupPtr m_Model_GetMetaDataGroup;
PLib3MFModel_AddAttachmentPtr m_Model_AddAttachment;
PLib3MFModel_RemoveAttachmentPtr m_Model_RemoveAttachment;
Expand Down
43 changes: 43 additions & 0 deletions Autogenerated/Bindings/CSharp/Lib3MF.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1376,6 +1376,12 @@ public class Lib3MFWrapper
[DllImport("lib3mf.dll", EntryPoint = "lib3mf_toolpath_addlayer", CallingConvention=CallingConvention.Cdecl)]
public unsafe extern static Int32 Toolpath_AddLayer (IntPtr Handle, UInt32 AZMax, byte[] APath, IntPtr AModelWriter, out IntPtr ALayerData);

[DllImport("lib3mf.dll", EntryPoint = "lib3mf_toolpath_getbottomz", CallingConvention=CallingConvention.Cdecl)]
public unsafe extern static Int32 Toolpath_GetBottomZ (IntPtr Handle, out UInt32 ABottomZ);

[DllImport("lib3mf.dll", EntryPoint = "lib3mf_toolpath_setbottomz", CallingConvention=CallingConvention.Cdecl)]
public unsafe extern static Int32 Toolpath_SetBottomZ (IntPtr Handle, UInt32 ABottomZ);

[DllImport("lib3mf.dll", EntryPoint = "lib3mf_toolpath_getlayerattachment", CallingConvention=CallingConvention.Cdecl)]
public unsafe extern static Int32 Toolpath_GetLayerAttachment (IntPtr Handle, UInt32 AIndex, out IntPtr AAttachment);

Expand All @@ -1400,6 +1406,9 @@ public class Lib3MFWrapper
[DllImport("lib3mf.dll", EntryPoint = "lib3mf_toolpath_getprofileuuid", CallingConvention=CallingConvention.Cdecl)]
public unsafe extern static Int32 Toolpath_GetProfileUUID (IntPtr Handle, byte[] AProfileUUID, out IntPtr AProfile);

[DllImport("lib3mf.dll", EntryPoint = "lib3mf_toolpath_getprofilebyuuid", CallingConvention=CallingConvention.Cdecl)]
public unsafe extern static Int32 Toolpath_GetProfileByUUID (IntPtr Handle, byte[] AProfileUUID, out IntPtr AProfile);

[DllImport("lib3mf.dll", EntryPoint = "lib3mf_toolpath_getcustomdatacount", CallingConvention=CallingConvention.Cdecl)]
public unsafe extern static Int32 Toolpath_GetCustomDataCount (IntPtr Handle, out UInt32 ACount);

Expand Down Expand Up @@ -1727,6 +1736,9 @@ public class Lib3MFWrapper
[DllImport("lib3mf.dll", EntryPoint = "lib3mf_model_addtoolpath", CallingConvention=CallingConvention.Cdecl)]
public unsafe extern static Int32 Model_AddToolpath (IntPtr Handle, Double AUnitFactor, out IntPtr AToolpathInstance);

[DllImport("lib3mf.dll", EntryPoint = "lib3mf_model_addtoolpathwithbottomz", CallingConvention=CallingConvention.Cdecl)]
public unsafe extern static Int32 Model_AddToolpathWithBottomZ (IntPtr Handle, Double AUnitFactor, UInt32 ABottomZ, out IntPtr AToolpathInstance);

[DllImport("lib3mf.dll", EntryPoint = "lib3mf_model_getmetadatagroup", CallingConvention=CallingConvention.Cdecl)]
public unsafe extern static Int32 Model_GetMetaDataGroup (IntPtr Handle, out IntPtr ATheMetaDataGroup);

Expand Down Expand Up @@ -5715,6 +5727,20 @@ public CToolpathLayerData AddLayer (UInt32 AZMax, String APath, CWriter AModelWr
return Internal.Lib3MFWrapper.PolymorphicFactory<CToolpathLayerData>(newLayerData);
}

public UInt32 GetBottomZ ()
{
UInt32 resultBottomZ = 0;

CheckError(Internal.Lib3MFWrapper.Toolpath_GetBottomZ (Handle, out resultBottomZ));
return resultBottomZ;
}

public void SetBottomZ (UInt32 ABottomZ)
{

CheckError(Internal.Lib3MFWrapper.Toolpath_SetBottomZ (Handle, ABottomZ));
}

public CAttachment GetLayerAttachment (UInt32 AIndex)
{
IntPtr newAttachment = IntPtr.Zero;
Expand Down Expand Up @@ -5787,6 +5813,15 @@ public CToolpathProfile GetProfileUUID (String AProfileUUID)
return Internal.Lib3MFWrapper.PolymorphicFactory<CToolpathProfile>(newProfile);
}

public CToolpathProfile GetProfileByUUID (String AProfileUUID)
{
byte[] byteProfileUUID = Encoding.UTF8.GetBytes(AProfileUUID + char.MinValue);
IntPtr newProfile = IntPtr.Zero;

CheckError(Internal.Lib3MFWrapper.Toolpath_GetProfileByUUID (Handle, byteProfileUUID, out newProfile));
return Internal.Lib3MFWrapper.PolymorphicFactory<CToolpathProfile>(newProfile);
}

public UInt32 GetCustomDataCount ()
{
UInt32 resultCount = 0;
Expand Down Expand Up @@ -6880,6 +6915,14 @@ public CToolpath AddToolpath (Double AUnitFactor)
return Internal.Lib3MFWrapper.PolymorphicFactory<CToolpath>(newToolpathInstance);
}

public CToolpath AddToolpathWithBottomZ (Double AUnitFactor, UInt32 ABottomZ)
{
IntPtr newToolpathInstance = IntPtr.Zero;

CheckError(Internal.Lib3MFWrapper.Model_AddToolpathWithBottomZ (Handle, AUnitFactor, ABottomZ, out newToolpathInstance));
return Internal.Lib3MFWrapper.PolymorphicFactory<CToolpath>(newToolpathInstance);
}

public CMetaDataGroup GetMetaDataGroup ()
{
IntPtr newTheMetaDataGroup = IntPtr.Zero;
Expand Down
Loading

0 comments on commit 4c8a280

Please sign in to comment.