Source code for cTemplates.MainMenu.File

import coat
from cTemplates.Structs import *

CreateFileMenu = MainMenu("FILE")

[docs] @d_menu_section(CreateFileMenu) def S_New(): """ Creates the standard file operations section: New, Open, Recent, and Autosave. Items: - New - Open - Open Recent - Auto Save - Applinks (conditional) """ coat.menu_item("CLEARSCENE") # New coat.menu_hotkey("N", 0, 1, 0) # CTRL+N coat.menu_item("OPEN_FILE") # Open coat.menu_hotkey("O", 0, 1, 0) # CTRL+O coat.menu_item("RecentFiles") # Open Recent coat.menu_item("Autosave") # Auto Save if not coat.is_new_scene(): coat.menu_item("Applinks") # Applinks
[docs] @d_submenu("Install", CreateFileMenu) def Install(): """ Submenu for installing various extensions and assets. Items: - Install Extension - Install Quixel asset as Smart Material - Install Quixel asset as Shader - Install Quixel asset as VerTexture """ coat.menu_item("InstallExtension") # Install Extension coat.menu_item("InstallQuixelAssetAsMaterial") # Install Quixel asset as Smart Material coat.menu_item("InstallQuixelAssetAsShader") # Install Quixel asset as Shader coat.menu_item("InstallQuixelAssetAsFacture") # Install Quixel asset as VerTexture
[docs] @d_menu_section(CreateFileMenu) def S_CreateExtension(): """ Section for creating new 3DCoat extensions. Items: - Create Extension """ coat.menu_item("CreateExtension") # Create Extension
[docs] @d_submenu("Browse", CreateFileMenu) def Browse(): """ Submenu for browsing various system and user data folders. Items: - Documents folder - Installation Folder - Alphas - Strips - Stencils - Smart Materials - User Data - Sample Objects - Sample 3D Alphas - Stored States - Color Swatches - Shaders - Temporary Folder """ coat.menu_item("DocsFolder") # Documents folder coat.menu_item("InstFolder") # Installation Folder coat.menu_item("PensFolder") # Alphas coat.menu_item("StripsFolder") # Strips coat.menu_item("MasksFolder") # Stencils coat.menu_item("MaterialsFolder") # Smart Materials coat.menu_item("UserDataFolder") # User Data coat.menu_item("ObjSamplesFolder") # Sample Objects coat.menu_item("ObjPensSamplesFolder") # Sample 3D Alphas coat.menu_item("StoredStatesFolder") # Stored States coat.menu_item("PaletteFolder") # Color Swatches coat.menu_item("ShadersFolder") # Shaders coat.menu_item("TempFolder") # Temporary Folder
[docs] @d_menu_section(CreateFileMenu) def S_Save(): """ Section for saving scenes and files, including incremental and Steam cloud saves. Items: - Save - Save As - Save Incrementally - Save to Steam Cloud (conditional) - File extensions """ coat.menu_item("SAVE_FILEFAST") # Save coat.menu_hotkey("S", 0, 1, 0) # CTRL+S coat.menu_item("SAVE_FILE") # Save As coat.menu_hotkey("S", 0, 1, 1) # CTRL+ALT+S coat.menu_item("SAVE_INC") # Save Incrementally coat.menu_hotkey("S", 1, 1, 0) # SHIFT+CTRL+S if coat.is_steam_app(): coat.menu_item("Save_to_Steam_cloud") # Save to Steam Cloud coat.menu_insert_extensions("File")
[docs] @d_menu_section(CreateFileMenu) def S_csgo(): """ Specific section for CS:GO related imports/exports if configured. Items: - cs_import - cs_export - cs_texture - rust_export """ if coat.CheckIfExists("csgo.txt"): coat.menu_submenu("CS:GO") coat.menu_item("cs_import") # cs_import coat.menu_item("cs_export") # cs_export coat.menu_item("cs_texture") # cs_texture coat.menu_item("rust_export") # rust_export
[docs] @d_submenu("Import", CreateFileMenu) def Import(): """ Submenu for importing various mesh formats, planes, and reference objects depending on the active room mode. Items: - Import TF2 Sample (conditional) - Import TF2 Mesh as Voxel Reference (conditional) - Model for Per Pixel Painting - Simplified Import (conditional) - Simplified Import of Unclosed Surfaces (conditional) - Import for Sculpt/Vertex Painting/Reference (conditional) - Import Image as Mesh - Import for AUTOPO - Import Multiple Objects (conditional) - Model for Microvertex Painting - Model for PTEX - Import Retopo Mesh - Reference Mesh - Image Plane - Import Curve as Mesh - Import DICOM Slices - SL Object - VDB Object - Import Mesh for Voxelization - ImportGuides (conditional) - File.Import extensions - Import Raw Voxel Data (conditional) - Import Vertex Positions (conditional) - Import to Replace Geometry Only (conditional) - Import and Lock Normals (conditional) """ if coat.is_steam_app(): coat.menu_item("ImportTF2Mesh") # Import TF2 Sample coat.menu_item("MergeTF2_VoxelReference") # Import TF2 Mesh as Voxel Reference coat.menu_separator() coat.menu_item("ImportDPMesh") # Model for Per Pixel Painting if coat.is_medical(): coat.menu_item("SimpleImportForVoxelizing") # Simplified Import coat.menu_item("SimpleImportForSurfaceVoxelizing") # Simplified Import of Unclosed Surfaces else: coat.menu_item("ImportForVertexPainting") # Import for Sculpt/Vertex Painting/Reference coat.menu_item("ImportImageAsMesh") # Import Image as Mesh coat.menu_item("IMPORT_FOR_RETOPO") # Import for AUTOPO if coat.IsInRoom("Voxels") or coat.IsInRoom("Retopo"): coat.menu_item("ImportObjectsByLayers") # Import Multiple Objects coat.menu_separator() coat.menu_item("OPENOBJ") # Model for Microvertex Painting coat.menu_hotkey("O", 1, 1, 0) # SHIFT+CTRL+O coat.menu_item("OPENOBJ_PTEX") # Model for PTEX coat.menu_separator() coat.menu_item("ImportRetopoMesh") # Import Retopo Mesh coat.menu_item("ImportRefMesh") # Reference Mesh coat.menu_separator() coat.menu_item("IMPORT_PLANE") # Image Plane coat.menu_hotkey("M", 1, 1, 0) # SHIFT+CTRL+M coat.menu_item("LoadSplineAs3DObject") # Import Curve as Mesh # Added import dicom object coat.menu_item("IMPORT_DICOM_OBJ") # Import DICOM Slices # if(las_support()){ # menu_item("IMPORT_LAS_OBJECT"); Import las object # } coat.menu_item("IMPORT_SL_OBJECT") # SL Object coat.menu_item("IMPORT_VDB_OBJECT") # VDB Object coat.menu_item("ImportForVoxelizing") # Import Mesh for Voxelization if coat.is_medical(): coat.menu_item("ImportGuides") # ImportGuides coat.menu_insert_extensions("File.Import") if coat.IsInRoom("Voxels"): coat.menu_item("ImportRawVoxelObject") # Import Raw Voxel Data if coat.is_ppp(): coat.menu_separator() coat.menu_item("ImportPositions") # Import Vertex Positions coat.menu_item("ReplaceGeometry") # Import to Replace Geometry Only coat.menu_item("ImportLockedNormals") # Import and Lock Normals
Export = Submenu("Export", CreateFileMenu)
[docs] @d_menu_section(Export) def S_Export_Voxels(): """ Export section specifically for Voxel room operations, including scene, objects, and raw data. Items: - Export Scene - Export Selected Objects - Decimate > Auto-UV Map > Export - Export Dense Quads - Export Projected Quads - Save to Meshes Panel - Save to Splines Panel - Export Raw Voxel Object - Export Depth Along Y """ coat.menu_item("ExportScene") # Export Scene coat.menu_item("ExportSelObject") # Export Selected Objects coat.menu_item("DecimateAutoMapExport") # Decimate > Auto-UV Map > Export coat.menu_separator() coat.menu_item("ExportDenseQuads") # Export Dense Quads coat.menu_item("ExportProjectedQuads") # Export Projected Quads coat.menu_item("ExportPatternForMerge") # Save to Meshes Panel coat.menu_item("ExportCurveProfile") # Save to Splines Panel coat.menu_item("ExportRawVoxelObject") # Export Raw Voxel Object coat.menu_item("ExportDepthMap") # Export Depth Along Y
[docs] @d_submenu("ExportGltf", S_Export_Voxels) def ExportGltf(): """ Submenu for exporting to GLTF format. Items: - Gltf Separate (.gltf + .bin + textures) - Gltf Embedded (.gltf) """ coat.menu_item("ExportGltfSeparate") # Gltf Separate (.gltf + .bin + textures) coat.menu_item("ExportGltfEmbedded") # Gltf Embedded (.gltf)
[docs] @d_submenu("3D-Printing", S_Export_Voxels) def Printing3D(): """ Submenu for 3D Printing tools and exports. Items: - Export For 3D Printing - Export and open in Cura - Prepare to publish """ coat.menu_item("ExportForPrinting") # Export For 3D Printing coat.menu_item("ExportCura") # Export and open in Cura coat.menu_item("PrepareToPublish") # Prepare to publish
[docs] @d_menu_section(Export) def S_Export_Retopo(): """ Export section for Retopology objects. Items: - Export Poly Object """ coat.menu_item("ExportRtpMesh") # Export Poly Object
[docs] @d_menu_section(Export) def S_Export_PPP(): """ Export section for Per-Pixel Painting objects. Items: - Export Objects & Textures """ coat.menu_item("EXPORTOBJECT") # Export Objects & Textures
# menu_item("WorkshopExport");/Export for Steam Workshop # if (ue5_support()){ # menu_submenu("Export"); # { # menu_item("ToUE5"); # menu_item("ToUE5As"); # menu_item("EditUE5"); # } # }
[docs] @d_menu_section(Export) def S_Export_MV(): """ Export section for Microvertex Painting objects. Items: - Export Objects & Textures - High-poly Mesh - High-poly Mesh - High-poly Mesh """ coat.menu_item("EXPORTOBJECT") # Export Objects & Textures coat.menu_item("SAVEHIPOLYX4") # High-poly Mesh coat.menu_item("SAVEHIPOLYX16") # High-poly Mesh coat.menu_item("SAVEHIPOLYX64") # High-poly Mesh
[docs] @d_template def CheckRoom(): """ Checks the current active room and enables/disables relevant export menus accordingly. Runs before the file menu is displayed. """ ExportGltf.Enabled = coat.gltf_support() S_Export_Voxels.Enabled = False Printing3D.Enabled = False S_Export_Retopo.Enabled = False S_Export_PPP.Enabled = False S_Export_MV.Enabled = False if not coat.is_new_scene(): if coat.IsInRoom("Voxels"): Printing3D.Enabled = True S_Export_Voxels.Enabled = True if coat.IsInRoom("Retopo"): S_Export_Retopo.Enabled = True if coat.is_ppp(): S_Export_PPP.Enabled = True if coat.is_mv(): S_Export_MV.Enabled = True
CreateFileMenu.Before.append(CheckRoom)
[docs] @d_menu_section(CreateFileMenu) def S_Export_Extensions(): """ Inserts export options provided by installed extensions. Items: - File.Export extensions """ coat.menu_insert_extensions("File.Export")
[docs] @d_menu_section(CreateFileMenu) def S_Exit(): """ Standard exit command. Items: - Exit """ coat.menu_item("EXIT") # Exit