//---------------------------------------------------------------------------- // EgalTech 2014-2014 //---------------------------------------------------------------------------- // File : LUA_Exchange.cpp Data : 29.09.14 Versione : 1.5i5 // Contenuto : Funzioni di import/export per LUA. // // // // Modifiche : 29.09.14 DS Creazione modulo. // // //---------------------------------------------------------------------------- //--------------------------- Include ---------------------------------------- #include "stdafx.h" #include "LUA.h" #include "/EgtDev/Include/EXeExecutor.h" #include "/EgtDev/Include/EXeConst.h" #include "/EgtDev/Include/EExExportConst.h" #include "/EgtDev/Include/EGkLuaAux.h" #include "/EgtDev/Include/EGnStringUtils.h" using namespace std ; //------------------------------------------------------------------------------- static int LuaGetFileType( lua_State* L) { // 1 parametro : FilePath string sFilePath ; LuaCheckParam( L, 1, sFilePath) LuaClearStack( L) ; // lancio riconoscimento tipo file int nType = ExeGetFileType( sFilePath) ; // restituisco il risultato LuaSetParam( L, nType) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaImportBtl( lua_State* L) { // 1 o 2 parametri : FilePath [, Flag] string sFilePath ; LuaCheckParam( L, 1, sFilePath) int nFlag = EIB_FLAG_NONE ; LuaGetParam( L, 2, nFlag) ; LuaClearStack( L) ; // apro il file bool bOk = ExeImportBtl( sFilePath, nFlag) ; // restituisco il risultato LuaSetParam( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaImportBtlx( lua_State* L) { // 1 o 2 parametri : FilePath [, Flag] string sFilePath ; LuaCheckParam( L, 1, sFilePath) int nFlag = EIB_FLAG_NONE ; LuaGetParam( L, 2, nFlag) ; LuaClearStack( L) ; // apro il file bool bOk = ExeImportBtlx( sFilePath, nFlag) ; // restituisco il risultato LuaSetParam( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaImportCnc( lua_State* L) { // 1 o 2 parametri : FilePath [, Flag] string sFilePath ; LuaCheckParam( L, 1, sFilePath) int nFlag = EIC_FLAG_NONE ; LuaGetParam( L, 2, nFlag) ; LuaClearStack( L) ; // apro il file bool bOk = ExeImportCnc( sFilePath, nFlag) ; // restituisco il risultato LuaSetParam( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaImportCsf( lua_State* L) { // 1 parametro : path del file da importare string sFilePath ; LuaCheckParam( L, 1, sFilePath) LuaClearStack( L) ; // apro il file bool bOk = ExeImportCsf( sFilePath) ; // restituisco il risultato LuaSetParam( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaImportDxf( lua_State* L) { // 1 o 2 parametri : path del file da importare [, Fattore di scala] string sFilePath ; LuaCheckParam( L, 1, sFilePath) double dScaleFactor = 1.0 ; LuaGetParam( L, 2, dScaleFactor) ; LuaClearStack( L) ; // apro il file bool bOk = ExeImportDxf( sFilePath, dScaleFactor) ; // restituisco il risultato LuaSetParam( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaImportPnt( lua_State* L) { // 1 o 2 parametri : FilePath [, Flag] string sFilePath ; LuaCheckParam( L, 1, sFilePath) int nFlag = 0 ; LuaGetParam( L, 2, nFlag) ; LuaClearStack( L) ; // apro il file bool bOk = ExeImportPnt( sFilePath, nFlag) ; // restituisco il risultato LuaSetParam( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaImportStl( lua_State* L) { // 1 o 2 parametri : path del file da importare [, Fattore di scala] string sFilePath ; LuaCheckParam( L, 1, sFilePath) double dScaleFactor = 1.0 ; LuaGetParam( L, 2, dScaleFactor) ; LuaClearStack( L) ; // apro il file bool bOk = ExeImportStl( sFilePath, dScaleFactor) ; // restituisco il risultato LuaSetParam( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaImport3MF( lua_State* L) { // 1 parametro : path del file da importare string sFilePath ; LuaCheckParam( L, 1, sFilePath) LuaClearStack( L) ; // apro il file bool bOk = ExeImport3MF( sFilePath) ; // restituisco il risultato LuaSetParam( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaImport3dm( lua_State* L) { // 1 parametro : path del file da importare string sFilePath ; LuaCheckParam( L, 1, sFilePath) LuaClearStack( L) ; // apro il file bool bOk = ExeImport3dm( sFilePath) ; // restituisco il risultato LuaSetParam( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaAdvancedImport( lua_State* L) { // 1 o 2 parametri : path del file da importare [, dLinToler] string sFilePath ; LuaCheckParam( L, 1, sFilePath) double dLinToler = 0.1 ; LuaGetParam( L, 2, dLinToler) ; LuaClearStack( L) ; // apro il file bool bOk = ExeAdvancedImport( sFilePath, dLinToler) ; // restituisco il risultato LuaSetParam( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaExportDxf( lua_State* L) { // 2, 3 o 4 parametri : GroupId e path del file da esportare [, Flag] [, Filter] int nGroupId ; LuaCheckParam( L, 1, nGroupId) string sFilePath ; LuaCheckParam( L, 2, sFilePath) int nFlag = EEXFLAG_DEFAULT ; LuaGetParam( L, 3, nFlag) ; int nFilter = EEXFLT_DEFAULT ; LuaGetParam( L, 4, nFilter) ; LuaClearStack( L) ; // creo il file bool bOk = ExeExportDxf( nGroupId, sFilePath, nFlag, nFilter) ; // restituisco il risultato LuaSetParam( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaExportStl( lua_State* L) { // 2 parametri : GroupId e path del file da esportare [, Filter] int nGroupId ; LuaCheckParam( L, 1, nGroupId) string sFilePath ; LuaCheckParam( L, 2, sFilePath) int nFilter = EEXFLT_DEFAULT ; LuaGetParam( L, 3, nFilter) ; LuaClearStack( L) ; // creo il file bool bOk = ExeExportStl( nGroupId, sFilePath) ; // restituisco il risultato LuaSetParam( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaExport3MF( lua_State* L) { // 2 o 3 parametri : GroupId e path del file da esportare [, Filter] int nGroupId ; LuaCheckParam( L, 1, nGroupId) string sFilePath ; LuaCheckParam( L, 2, sFilePath) int nFilter = EEXFLT_DEFAULT ; LuaGetParam( L, 3, nFilter) ; LuaClearStack( L) ; // creo il file bool bOk = ExeExport3MF( nGroupId, sFilePath, nFilter) ; // restituisco il risultato LuaSetParam( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaExport3dm( lua_State* L) { // 2 o 3 parametri : GroupId e path del file da esportare [, Filter] int nGroupId ; LuaCheckParam( L, 1, nGroupId) string sFilePath ; LuaCheckParam( L, 2, sFilePath) int nFilter = EEXFLT_DEFAULT ; LuaGetParam( L, 3, nFilter) ; LuaClearStack( L) ; // creo il file bool bOk = ExeExport3dm( nGroupId, sFilePath, nFilter) ; // restituisco il risultato LuaSetParam( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaExportSvg( lua_State* L) { // 2 o 3 parametri : GroupId, Path del file da esportare [, Filter] int nGroupId ; LuaCheckParam( L, 1, nGroupId) string sFilePath ; LuaCheckParam( L, 2, sFilePath) int nFilter = EEXFLT_DEFAULT ; LuaGetParam( L, 3, nFilter) ; LuaClearStack( L) ; // creo il file bool bOk = ExeExportSvg( nGroupId, sFilePath, nFilter) ; // restituisco il risultato LuaSetParam( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- static int LuaExportThreeJS( lua_State* L) { // 2 o 3 parametri : GroupId, Path del file da esportare [, Filter] int nGroupId ; LuaCheckParam( L, 1, nGroupId) string sFilePath ; LuaCheckParam( L, 2, sFilePath) int nFilter = EEXFLT_DEFAULT ; LuaGetParam( L, 3, nFilter) ; LuaClearStack( L) ; // creo il file bool bOk = ExeExportThreeJS( nGroupId, sFilePath, nFilter) ; // restituisco il risultato LuaSetParam( L, bOk) ; return 1 ; } //------------------------------------------------------------------------------- bool LuaInstallExchange( LuaMgr& luaMgr) { bool bOk = ( &luaMgr != nullptr) ; bOk = bOk && luaMgr.RegisterFunction( "EgtGetFileType", LuaGetFileType) ; bOk = bOk && luaMgr.RegisterFunction( "EgtImportBtl", LuaImportBtl) ; bOk = bOk && luaMgr.RegisterFunction( "EgtImportBtlx", LuaImportBtlx) ; bOk = bOk && luaMgr.RegisterFunction( "EgtImportCnc", LuaImportCnc) ; bOk = bOk && luaMgr.RegisterFunction( "EgtImportCsf", LuaImportCsf) ; bOk = bOk && luaMgr.RegisterFunction( "EgtImportDxf", LuaImportDxf) ; bOk = bOk && luaMgr.RegisterFunction( "EgtImportPnt", LuaImportPnt) ; bOk = bOk && luaMgr.RegisterFunction( "EgtImportStl", LuaImportStl) ; bOk = bOk && luaMgr.RegisterFunction( "EgtImport3MF", LuaImport3MF) ; bOk = bOk && luaMgr.RegisterFunction( "EgtImport3dm", LuaImport3dm) ; bOk = bOk && luaMgr.RegisterFunction( "EgtAdvancedImport", LuaAdvancedImport) ; bOk = bOk && luaMgr.RegisterFunction( "EgtExportDxf", LuaExportDxf) ; bOk = bOk && luaMgr.RegisterFunction( "EgtExportStl", LuaExportStl) ; bOk = bOk && luaMgr.RegisterFunction( "EgtExport3MF", LuaExport3MF) ; bOk = bOk && luaMgr.RegisterFunction( "EgtExport3dm", LuaExport3dm) ; bOk = bOk && luaMgr.RegisterFunction( "EgtExportSvg", LuaExportSvg) ; bOk = bOk && luaMgr.RegisterFunction( "EgtExportThreeJS", LuaExportThreeJS) ; return bOk ; }