Skip to content

Recettes ​

224 recettes pre-construites. Le LLM les appelle par leur nom via topsolid_run_recipe : aucune generation de code necessaire.

Catalogue ​

Le tableau ci-dessous est construit a chaque publication de la doc a partir de server/data/recipes.md, le catalogue genere depuis le code du serveur (server/scripts/gen-recipes-catalog.py) : les noms sont exactement ceux a passer a topsolid_run_recipe. Dans un agent, topsolid_list_recipes donne la meme liste, filtrable par categorie.

225 recette(s)

RecetteModeDescription
read_designationREADReads the designation of the active document
read_nameREADReads the name of the active document
read_referenceREADReads the reference (part number) of the active document
read_manufacturerREADReads the manufacturer of the active document
read_pdm_propertiesREADReads all PDM properties (name, designation, reference, manufacturer)
set_designationWRITE-PDMSets the designation. Param: value
set_nameWRITE-PDMSets the name. Param: value
set_referenceWRITE-PDMSets the reference. Param: value
set_manufacturerWRITE-PDMSets the manufacturer. Param: value
read_current_projectREADReturns the current project
read_project_contentsREADLists folders, subfolders and documents of the current project (full tree)
search_documentREADSearches for a document by name (CONTAINS). Param: value
search_folderREADSearches for a folder by name (CONTAINS). Param: value
document_typeREADDetects the type of the active document
save_documentWRITE-PDMSaves the active document
rebuild_documentWRITE-PDMRebuilds the active document
create_document_with_templateWRITE-PDM-NO-TRXCreates a new document in the current project from a named document template (e.g. 'Wooden Part'). Runs outside any modification transaction because TopSolid refuses document creation between StartModification and EndModification. Param: value=template_name (ex: Wooden Part)
read_parametersREADLists all parameters of the active document
read_real_parameterREADReads a real parameter by name. Param: value=name
read_text_parameterREADReads a text parameter by name. Param: value=name
set_real_parameterWRITE-PDMSets a real parameter. Param: value=name:SIvalue (e.g. Length:0.15)
set_text_parameterWRITE-PDMSets a text parameter. Param: value=name:value
creer_parametre_reelWRITE-PDMCreates a new real parameter in the active document. Param: value=name:unit:SIvalue (e.g. Longueur:Length:0.05 for 50mm) or name::SIvalue for NoUnit. Supported units: Length, Mass, Angle, NoUnit.
creer_parametre_formuleWRITE-PDMCreates a new formula-driven real parameter in the active document. Param: value=name:unit:formula (e.g. DiagBolt:Length:Longueur * 1.414). The formula uses TopSolid expression syntax (parameter names, operators, SI units). Supported units: Length, Mass, Angle, NoUnit.
creer_esquisse_rectangleWRITE-PDMCreates a 2D rectangular sketch in the active document. Param: value=width:height (mm)
extruder_esquisseWRITE-PDMExtrudes the last 2D sketch of the active document into a 3D solid. Param: value=height_mm
ajouter_inclusionWRITE-PDMAdds an inclusion of a part document into the active assembly document. Param: value=part_document_name
read_3d_pointsREADLists 3D points of the document
read_3d_framesREADLists 3D frames of the document
list_sketchesREADLists sketches of the document
read_shapesREADLists shapes of the document
read_operationsREADLists operations (feature tree)
detect_assemblyREADDetects if the document is an assembly and lists parts
list_inclusionsREADLists inclusions of an assembly
detect_familyREADDetects if the document is a family
read_family_catalogREADReads active family catalog rows (codes), columns (drivers), primitive values and real SI unit metadata. value: {}.
add_family_catalog_columnWRITE-PDMAdds an existing active-family parameter as a catalog driver. JSON value: {"parameter":"Length"}. Exact selector from read_family_catalog availableParameters; primitive types only.
add_family_catalog_rowWRITE-PDMAdds a unique catalog code and optional typed cells atomically. JSON value: {"code":"A","cells":{"Length":{"type":"real","value":0.1}}}. Real values SI.
set_family_catalog_cellWRITE-PDMSets one primitive catalog cell by exact row code and column selector from read_family_catalog. JSON value: {"code":"A","column":"Length","type":"real","value":0.2}. Code identity edits refused.
read_family_codesREADReads family codes
open_draftingREADFinds and opens the drafting associated with the current part/assembly via PDM back-references
detect_draftingREADDetects if the document is a drafting and provides info
list_drafting_viewsREADLists views of a drafting
detect_bomREADDetects if the document is a BOM
read_bom_columnsREADReads BOM columns
read_drafting_scaleREADReads global and per-view scale of a drafting
read_drafting_formatREADReads the format (size, margins) of a drafting
read_main_projectionREADReads the main projection of a drafting
read_bom_contentsREADReads the full BOM contents (rows and cells)
count_bom_rowsREADCounts active BOM rows
detect_unfoldingREADDetects if the document is an unfolding (sheet metal)
read_bend_featuresREADLists bends of an unfolding (angles, radii, lengths)
read_unfolding_dimensionsREADReads unfolding dimensions from system properties (sheet metal)
set_drafting_scaleWRITE-PDMSets the global scale of a drafting. Param: value=denominator (e.g. '10' for 1:10)
set_all_views_scaleWRITE-PDMSets the scale of the drafting AND of every view that has its own scale (views with a relative scale follow). Param: value=denominator (e.g. '40' for 1:40)
set_drafting_formatWRITE-PDMSets the drafting format (paper size). Param: value=format_name (e.g. 'A3', 'A4')
set_projection_qualityWRITE-PDMSets the drafting projection quality. Param: value='exact' (precise) or 'fast' (quick)
print_draftingWRITE-DISKPrints the current drafting (all pages, black & white, 300 DPI, printed to scale)
activate_bom_rowWRITE-PDMActivates a BOM row by its index (0-based, among root-children). Param: value=row_index
deactivate_bom_rowWRITE-PDMDeactivates a BOM row by its index (0-based, among root-children). Param: value=row_index
list_exportersREADLists all available exporters
export_stepWRITE-DISKExports to STEP. Refuses a document without shapes (TopSolid would block on a modal dialog). Param: value=path (e.g. C:\temp\part.stp), add |force to skip the check
export_dxfWRITE-DISKExports to DXF. Param: value=path
export_pdfWRITE-DISKExports to PDF. Param: value=path
export_fileWRITE-DISKExports the active document to any format TopSolid can write, picked from the file extension (.step, .x_t, .igs, .stl, .dxf, .pdf...). Checks CanExport and refuses a 3D export of a document without shapes instead of letting TopSolid block on its modal 'nothing to export' dialog. Param: value=path, add |force to skip the shape check
import_fileWRITE-PDM-NO-TRXImports a CAD file (.step, .igs, .x_t, .sldprt, .sldasm, .dxf...) into the current project with the importer matching its extension, in silent mode, then saves the created documents and lists them with their shape count (export only the ones that have shapes). One file per call. Param: value=path, or path|Folder/Sub folder to import into a folder of the current project (exact names, created when missing)
read_user_propertyREADReads a text user property. Param: value=property_name
audit_partREADFull part audit: properties, parameters, shapes, mass, volume
audit_assemblyREADFull assembly audit: parts, inclusions, mass, invalid elements
check_partREADQuality check: designation, reference, material filled, and 0 invalid elements?
read_mass_volumeREADReads mass, volume, surface from document system properties
read_material_densityREADCalculates density from document mass/volume
invoke_commandWRITE-PDMExecutes a TopSolid menu command by name (case-insensitive FullName or short class name). Param: value=command_name
read_occurrencesREADLists occurrences of an assembly with their definition
rename_occurrenceWRITE-PDMRenames an occurrence. Param: value=old_name:new_name
set_user_propertyWRITE-PDMSets a text user property. Param: value=property_name:value
read_bounding_boxREADReads bounding box dimensions from system properties
read_part_dimensionsREADReads dimensions (Height, Width, Length, Box Size) from system properties
read_inertia_momentsREADReads principal inertia moments from system properties
list_project_documentsREADLists ALL project documents with designation and reference
check_projectREADFull project quality check: parts without designation/reference
compare_parametersREADCompares parameters of the active document with another. Param: value=other_document_name
compare_document_operationsREADCompares operations (feature tree) between the current and another document. Param: value=other_doc_name
compare_document_entitiesREADCompares entities (shapes, sketches, points, frames) between the current and another document. Param: value=other_doc_name
copy_parameters_toWRITE-PDMCopies parameter values from the current document to another. Param: value=target_doc_name
copy_pdm_properties_toWRITE-PDMCopies designation/reference/manufacturer from current to another document. Param: value=target_doc_name
batch_export_stepWRITE-DISKExports ALL project parts to STEP in a folder. Param: value=folder_path
batch_read_propertyREADReads a specific property across all project documents. Param: value=property_name
find_modified_documentsREADLists unsaved (dirty) documents of the project
batch_clear_authorWRITE-PDMClears the Author field on all project documents
batch_set_designationWRITE-PDMSets Designation (Description) on ALL documents of the current project. Param: value=new_designation
batch_set_referenceWRITE-PDMSets Reference (PartNumber) on ALL documents of the current project. Param: value=new_reference
batch_set_manufacturerWRITE-PDMSets Manufacturer on ALL documents of the current project. Param: value=new_manufacturer
clear_document_authorWRITE-PDMClears the Author field on the current document
batch_check_virtualREADChecks the virtual property (IsVirtualDocument) on all project documents
batch_enable_virtualWRITE-PDMEnables virtual mode on ALL non-virtual project documents
enable_virtual_documentWRITE-PDMEnables virtual mode on the current document
check_family_driversREADChecks that family drivers have a designation. Lists those without.
fix_family_driversWRITE-PDMAssigns a designation to family drivers that lack one (inferred from parameter name)
batch_check_family_driversREADChecks drivers of all families in the project
audit_parameter_namesREADAudits parameter name syntax: detects convention inconsistencies and near-duplicates
batch_audit_parameter_namesREADAudits parameter name syntax across all project documents
batch_audit_driver_designationsREADLists driver designations of all project families for inspection (typos, inconsistencies)
read_revision_historyREADLists all major/minor revisions of the current document
compare_revisionsREADCompares parameters of the current revision with the previous one
export_bom_csvREADExports the BOM as text (separated columns)
check_missing_materialsREADLists project parts without assigned material
assembly_mass_reportREADReads total mass, volume, surface and part count of an assembly
read_materialREADReads part material (mass and calculated density)
export_stlWRITE-DISKExports to STL (3D printing). Refuses a document without shapes. Param: value=path, add |force to skip the check
export_igesWRITE-DISKExports to IGES. Refuses a document without shapes. Param: value=path, add |force to skip the check
count_assembly_partsREADCounts parts grouped by type with quantities
save_all_projectWRITE-PDMSaves all documents of the current project
open_document_by_nameREADSearches and opens a document by name. Param: value=name
list_folder_documentsREADLists documents of a specific project folder. Param: value=folder_name
summarize_projectREADProject summary: document count by type, folders, size
list_documents_without_referenceREADLists project documents without reference (empty part number)
list_documents_without_designationREADLists project documents without designation (empty description)
count_documents_by_typeREADCounts project documents grouped by type (.TopPrt, .TopAsm, .TopDft...)
search_parts_by_materialREADLists parts with their material (via mass > 0). Param: value=optional filter
read_where_usedREADFinds where-used references of the current document in the project
attr_read_allREADReads color, transparency, layer and visibility of all elements
attr_set_colorWRITE-PDMSets color. If 1 shape: direct. If multiple: asks selection. Param: value=R,G,B (e.g. 0,0,255)
attr_set_color_allWRITE-PDMSets color on ALL elements. Param: value=R,G,B
attr_read_colorREADReads element colors
attr_set_transparencyWRITE-PDMSets transparency. If 1 shape: direct. If multiple: asks. Param: value=0.0 to 1.0
attr_read_transparencyREADReads element transparency
attr_list_layersREADLists document layers
attr_assign_layerWRITE-PDMAssigns an element to a layer. Param: value=element_name:layer_name
attr_replace_colorWRITE-PDMReplaces a color with another on elements. Param: value=R1,G1,B1:R2,G2,B2 (e.g. 0,128,0:255,0,0 = green->red)
select_shapeREADAsks the user to select a shape and returns its info
select_faceREADAsks the user to select a face and returns its info
get_face_cone_lengthREADGets the length of a selected cone face (mm). Requires a cone face selection.
get_face_cone_radiusREADGets the base radius of a selected cone face (mm). Requires a cone face selection.
get_face_cone_semi_angleREADGets the half-angle of a selected cone face (degrees). Requires a cone face selection.
get_face_torus_major_radiusREADGets the major radius of a selected torus face (mm). Requires a torus face selection.
get_face_torus_minor_radiusREADGets the minor radius of a selected torus face (mm). Requires a torus face selection.
get_item_last_operation_nameREADGets the name of the last operation that produced a selected face.
select_3d_pointREADAsks the user to click a 3D point and returns coordinates
list_positioningsREADLists positioning operations of the active assembly with their constraint status
is_positioning_underconstrainedREADTells if a positioning is underconstrained. Param: value=positioning_name (exact or substring)
get_material_brinell_hardness_factorREADGet the Brinell hardness factor of the active material (from its standards file). Reports (also) error when no material is set
get_material_vickers_hardness_factorREADGet the Vickers hardness factor of the active material (from its standards file). Reports (also) error when no material is set
get_material_glossiness_factorREADGet the glossiness factor of the active material. Reports (also) error when no material is set
get_material_bump_scaleREADGet the bump texture scale factor of the active material. Reports (also) error when no material is set
get_material_bump_rotationREADGet the bump texture rotation of the active material (radians). Reports (also) error when no material is set
get_material_anisotropy_angle_factorREADGet the anisotropy angle factor of the active material. Reports (also) error when no material is set
read_material_mechanical_propertiesREADReads in one call the factors of the material of the edited part: Brinell hardness, Vickers hardness, glossiness, anisotropy angle, bump scale and bump rotation (angles in radians, degrees also shown). Values in SI units; ends with the list of factors that are not set. Requires TopSolid 7.20.400+ (IMaterials getters): refused with an explicit message on older instances
get_coating_brinell_hardness_factorREADGet the Brinell hardness factor of the active coating
get_coating_vickers_hardness_factorREADGet the Vickers hardness factor of the active coating
get_coating_glossiness_factorREADGet the glossiness factor of the active coating
get_coating_bump_scaleREADGet the bump texture scale factor of the active coating
get_coating_bump_rotationREADGet the bump texture rotation of the active coating (radians)
get_coating_anisotropy_angle_factorREADGet the anisotropy angle factor of the active coating
get_profiles_folderREADGets the profiles folder entity of the active document (name + id)
get_operation_versionREADGets the algorithm version of an operation. Param: value=operation_name (use list_operations to find it)
get_edge_facesREADLists the faces bordering a selected edge (count + names)
get_edge_ellipse_curveREADGets the ellipse (plane + radii, mm) of a selected elliptical edge
smooth_sketch_profilesWRITE-PDMSmooths the profiles of the last 2D sketch (G1 continuity). WARNING: modifies the sketch. Param: value=empty (defaults) or tolerance_mm
attr_read_face_colorsREADReads individual face colors
set_angular_scaleWRITE-PDMSets the angular scale factor of the material applied to the edited document. Param: value=<number>
set_anisotropy_angle_factorWRITE-PDMSets the anisotropy angle factor of the material applied to the edited document. Param: value=<number>
set_brinell_hardness_factorWRITE-PDMSets the Brinell hardness factor of the material applied to the edited document. Param: value=<number>
set_bulk_modulusWRITE-PDMSets the bulk modulus of the material applied to the edited document. Param: value=<number>
set_bump_rotationWRITE-PDMSets the bump texture rotation angle of the material applied to the edited document. Param: value=<number>
set_bump_scaleWRITE-PDMSets the bump texture scale factor of the material applied to the edited document. Param: value=<number>
set_cutting_forceWRITE-PDMSets the cutting force of the material applied to the edited document. Param: value=<number>
set_cutting_force_incrementWRITE-PDMSets the cutting force increment of the material applied to the edited document. Param: value=<number>
set_elastic_limitWRITE-PDMSets the elastic limit of the material applied to the edited document. Param: value=<number>
set_elongation_at_breakWRITE-PDMSets the elongation at break of the material applied to the edited document. Param: value=<number>
set_glossiness_factorWRITE-PDMSets the glossiness factor of the material applied to the edited document. Param: value=<number>
set_melting_temperatureWRITE-PDMSets the melting temperature of the material applied to the edited document. Param: value=<number>
set_plastic_strain_ratioWRITE-PDMSets the plastic strain ratio of the material applied to the edited document. Param: value=<number>
set_poisson_ratioWRITE-PDMSets the Poisson ratio of the material applied to the edited document. Param: value=<number>
set_section_reduction_at_breakWRITE-PDMSets the section reduction at break of the material applied to the edited document. Param: value=<number>
set_shear_modulusWRITE-PDMSets the shear modulus of the material applied to the edited document. Param: value=<number>
set_shrinkage_factorWRITE-PDMSets the shrinkage factor of the material applied to the edited document. Param: value=<number>
set_specific_heat_capacityWRITE-PDMSets the specific heat capacity of the material applied to the edited document. Param: value=<number>
set_thermal_conductivityWRITE-PDMSets the thermal conductivity of the material applied to the edited document. Param: value=<number>
set_thermal_expansion_coefficientWRITE-PDMSets the thermal expansion coefficient of the material applied to the edited document. Param: value=<number>
set_ultimate_stressWRITE-PDMSets the ultimate stress of the material applied to the edited document. Param: value=<number>
set_vertical_angular_scaleWRITE-PDMSets the vertical angular scale factor of the material applied to the edited document. Param: value=<number>
set_vickers_hardness_factorWRITE-PDMSets the Vickers hardness factor of the material applied to the edited document. Param: value=<number>
set_young_modulusWRITE-PDMSets the Young modulus of the material applied to the edited document. Param: value=<number>
set_homogeneous_parameter_valueWRITE-PDMSets the homogeneous parameter value (bool) of the material. Param: value=empty(unset)/true/false
set_isotropic_parameter_valueWRITE-PDMSets the isotropic parameter value (bool) of the material. Param: value=empty(unset)/true/false
set_rockwell_factorsWRITE-PDMSets the Rockwell factors (A,B,C) of the material applied to the edited document. Param: value=A,B,C (double or 'null')
set_specular_colorWRITE-PDMSets the specular color (R,G,B) of the material applied to the edited document. Param: value=R,G,B (0-255)
set_coating_brinell_hardness_factorWRITE-PDMSets the Brinell hardness factor of the active coating. Param: value=<number>
set_coating_bump_rotationWRITE-PDMSets the bump texture rotation angle of the active coating. Param: value=<number>
set_coating_bump_scaleWRITE-PDMSets the bump texture scale factor of the active coating. Param: value=<number>
set_coating_vickers_hardness_factorWRITE-PDMSets the Vickers hardness factor of the active coating. Param: value=<number>
set_coating_homogeneous_parameter_valueWRITE-PDMSets the homogeneous parameter value (bool) of the active coating. Param: value=empty(unset)/true/false
set_coating_isotropic_parameter_valueWRITE-PDMSets the isotropic parameter value (bool) of the active coating. Param: value=empty(unset)/true/false
set_coating_rockwell_factorsWRITE-PDMSets the Rockwell factors (A,B,C) of the active coating. Param: value=A,B,C (double or 'null')
add_page_to_bundleWRITE-PDMAdds a new page to the opened drafting bundle. No value expected.
set_current_bundle_pageWRITE-PDMSets the current page of the opened drafting bundle. Param: value=page_number (e.g. 1)
set_bundle_page_format_nameWRITE-PDMSets the format name of a bundle page to 'A3'. Param: value=page_number (e.g. 1)
set_bundle_page_formatWRITE-PDMSets the format of a bundle page. Param: value=page;format_name (e.g. 1;A3 landscape)
set_bundle_page_dimensionsWRITE-PDMSets the dimensions of a bundle page. Param: value=page;width;height (mm, e.g. 1;420;297)
include_draft_in_bundleWRITE-PDMIncludes a draft (all pages on the same bundle page) in the opened bundle. Param: value=draft_doc_name
include_draft_page_in_bundle_current_pageWRITE-PDMIncludes a specific draft page in the current bundle page with offset. Param: value=draft_doc_name;page;offset (e.g. draft;1;0)
add_draft_to_bundleWRITE-PDMAdds a draft to the opened bundle (its pages become separate bundle pages). Param: value=draft_doc_name
get_page_countREADReturns the number of pages of the opened drafting bundle.
create_project_treeWRITE-PDMCreates or reuses a PDM project and optional comma-separated folders, and sets it as current project. Param: value=project_name[;folder1,folder2,...]
create_part_documentWRITE-PDMCreates or reuses a Part document (.TopPrt) in a project/folder, sets Name/Designation/Reference, and opens it. Param: value=doc_name[;designation[;reference[;folder_name[;project_name]]]]
create_assembly_documentWRITE-PDMCreates or reuses an Assembly document (.TopAsm) in a project/folder, sets Name/Designation/Reference, and opens it. Param: value=doc_name[;designation[;reference[;folder_name[;project_name]]]]
set_materialWRITE-PDMSearches a standard material (.TopMat) in material libraries (<250ms) and applies it to a part while enabling physical properties (Mass, CoG). Param: value=[doc_name;]material_keyword (e.g. S235JR or GC_Montant_50x10;S235JR)
set_coatingWRITE-PDMSearches a standard coating (.TopCot, e.g. RAL 7016) in libraries and applies it (or RGB color) to all shapes of a part. Param: value=[doc_name;]coating_keyword[;R,G,B]
provide_extruded_bar_functionWRITE-PDMProvides the TopSolid 'Extruded Bar' (Profilé) function on a part with its 3D Frame (XY section, X horizontal, Z longitudinal), Section sketch, Length parameter L, BottomLeft/TopRight points, and Minimal EnclosingBox. Param: value=[doc_name;]width_x_mm;height_y_mm;length_z_mm
create_extruded_barWRITE-PDMOne-shot creation of a metalwork Extruded Bar part (.TopPrt) with XY section (X horizontal), +Z extrusion (Length parameter L), 'Extruded Bar' function + Frame (XY/X/Z), optional transverse through-holes, material, and coating. Param: value=doc_name;designation;reference;folder_name;section_type(PLAT|TUBE_RECT|ROND|TUBE_ROND|CORNIERE);dims_csv_mm;length_mm[;holes_spec[;material[;coating_or_rgb]]]
create_revolved_partWRITE-PDMCreates a revolved Part (.TopPrt) from an ordered radial/axial polygon profile in millimeters. The profile is closed automatically and revolved around the absolute Y axis. Param: value=doc_name;profile_points(radius_mm,axial_mm|...)[;angle_deg[;designation[;reference]]]
revolve_active_partWRITE-PDMAdds a revolved solid to the active empty Part (.TopPrt). Refuses if the active document already contains a solid. Profile points are ordered radius_mm,axial_mm pairs in the XY sketch plane and are revolved around the absolute Y axis. Param: value=profile_points(radius_mm,axial_mm|...)[;angle_deg]
replace_revolved_profileWRITE-PDMReplaces the profile of the single revolved solid in the active Part. Refuses Parts with additional solid features. The profile uses XY-plane coordinates in millimeters and the absolute Y axis. Param: value=old_sketch_name;segments(P,r,z|L,r,z|A,r,z,cx,cz,CW_or_CCW|...)[;angle_deg]
create_sheet_metal_plateWRITE-PDMOne-shot creation of a metalwork sheet/baseplate (.TopPrt) in XY extruded along +Z, with optional circular through-holes in the same sketch, named parameter Epaisseur, Minimal EnclosingBox, material, and coating. Param: value=doc_name;designation;reference;folder_name;length_x_mm;width_y_mm;thickness_z_mm[;holes_x_y_diam_mm[;material[;coating_or_rgb[;ORIGIN|CENTER]]]]
create_drillingWRITE-PDMDrills a cylindrical hole on the active part at (X,Y,Z) (mm) with outward face normal (NX,NY,NZ) and updates all representations. Param: value=diam_mm:depth_mm:X_mm:Y_mm:Z_mm:NX:NY:NZ
add_inclusion_positionedWRITE-PDMIncludes a part or sub-assembly in an assembly using either (tx,ty,tz[,rx,ry,rz]) or BETWEEN(x1,y1,z1,x2,y2,z2[,ux,uy,uz]) (aligns Extruded Bar +Z from P1 to P2 and section X along uX). Param: value=[target_asm|]child_doc;tx,ty,tz[,rx,ry,rz] OR [target_asm|]child_doc;BETWEEN,x1,y1,z1,x2,y2,z2[,ux,uy,uz]
batch_add_inclusionsWRITE-PDMBatch-includes multiple parts or sub-assemblies into an assembly in a single transaction. Optional 'CLEAR|' prefix deletes existing occurrences first. Each item separated by ';' is either 'docName,tx,ty,tz[,rx,ry,rz[,occName]]' or 'docName,BETWEEN,x1,y1,z1,x2,y2,z2[,ux,uy,uz[,occName]]'. Param: value=[target_asm|][CLEAR|]item1;item2;...
check_collisionsWRITE-PDMActivates TopSolid native B-Rep 3D collision analysis (SetCollisionsManagement + ShapeShapeCollisionEntity) on an assembly, reports any colliding pairs, and restores Modeling stage. Param: value=[asm_doc_name]
update_where_used_and_saveWRITE-PDMUpdates (rebuilds) and saves all documents of the current project in bottom-up dependency order (Parts .TopPrt -> Sub-Assemblies .TopAsm -> Root Assembly .TopAsm) so all Where-Used links stay up to date. Param: value=[project_name]
list_profile_families_and_codesREADLists standard TopSolid library profile families (.TopFam in 'Composants Mécanique TopSolid' & 'Mécanique AFNOR TopSolid') and their section codes. Param: value=[family_name[:code_filter]]
create_profile_by_two_pointsWRITE-PDMPlaces a standard TopSolid 7.21 library profile (.TopFam: Plat, Tube rectangle, Tube carré, Tube rond, Rond, Carré) between two 3D points (mm) in an assembly using TopSolidDesignHost.Assemblies.CreateProfileByTwoPoints. Param: value=[asm_doc_name:]family_name,code,x1_mm,y1_mm,z1_mm,x2_mm,y2_mm,z2_mm[,dir(DX|DY|DZ),rotation_deg,offsetX_mm,offsetY_mm,isInverted]
batch_create_profiles_by_two_pointsWRITE-PDMBatch-creates multiple standard TopSolid 7.21 library profiles (.TopFam: Plat, Tube rectangle, Tube carré, Tube rond, Rond, Carré) in an assembly in a single transaction and saves. Param: value=[asm_doc_name[@clear]:]family,code,x1_mm,y1_mm,z1_mm,x2_mm,y2_mm,z2_mm[,dir(DX|DY|DZ),rot_deg,offX_mm,offY_mm];...
export_project_xliffWRITE-DISKExports the entire project localization dictionary (all folders, documents, parameters, and properties recursively) to an XLIFF (.xliff) file for project translation / traduction / localisation / dictionnaire. Never use ExportDictionaries. Param: value=[project_name;]culture;output_dir (e.g. fr;C:\temp\xliff or MyProject;fr;C:\temp\xliff)
import_project_xliffWRITE-PDMImports translated XLIFF (.xliff) localization file(s) into a TopSolid project (project translation / traduction / localisation / dictionnaire — updates translated names and designations without modifying invariant names). Param: value=[project_name;]xliff_file_or_dir_path (e.g. C:\temp\xliff or MyProject;C:\temp\xliff\MyProject.fr.xliff)

Il manque une recette ? Demandez-la ou ajoutez-la.

Par categorie (detail) ​

Detail ecrit a la main

Cette partie explique la technique de chaque recette. Elle est maintenue a la main et peut avoir du retard sur le code : en cas de doute, le tableau ci-dessus et topsolid_get_recipe font foi.

Proprietes PDM ​

Les proprietes PDM (Product Data Management) sont les metadonnees du document TopSolid : designation, nom, reference et fabricant. Elles sont stockees dans le gestionnaire PDM et accessibles sans ouvrir le document en edition.

RecetteDescriptionTechniqueMode
read_designationLit la description fonctionnelle du document (ex: "Bride de serrage"). Retourne (vide) si non renseignee.Pdm.GetDescription(pdmId)READ
read_nameLit le nom unique du document dans l'arborescence projet (ex: "BRD-001").Pdm.GetName(pdmId)READ
read_referenceLit le numero de reference / part number (ex: "REF-2024-0042"). Retourne (vide) si non renseignee.Pdm.GetPartNumber(pdmId)READ
read_manufacturerLit le fabricant ou fournisseur associe au document.Pdm.GetManufacturer(pdmId)READ
read_pdm_propertiesRetourne les 4 proprietes PDM d'un coup : nom, designation, reference, fabricant. Utile pour un apercu rapide.Pdm.Get{Name,Description,PartNumber,Manufacturer}READ
set_designationChange la designation. Sauvegarde auto.Pdm.SetDescription — value = texte libreWRITE-PDM
set_nameRenomme le document dans le projet. Attention : peut casser des liens si d'autres documents referencent ce nom.Pdm.SetName — value = nouveau nomWRITE-PDM
set_referenceChange la reference / part number. Sauvegarde auto.Pdm.SetPartNumber — value = nouvelle refWRITE-PDM
set_manufacturerChange le fabricant. Sauvegarde auto.Pdm.SetManufacturer — value = nom fabricantWRITE-PDM

Recettes pour explorer l'arborescence du projet, chercher des documents, lister des dossiers. Le projet TopSolid est une hierarchie PDM avec dossiers et documents de differents types (.TopPrt, .TopAsm, .TopDft...).

RecetteDescriptionTechniqueMode
read_current_projectRetourne le nom du projet actif dans TopSolid. Premiere verification utile.Pdm.GetCurrentProject() → Pdm.GetName()READ
read_project_contentsParcourt recursivement toute l'arborescence : dossiers, sous-dossiers et documents. Indente par niveau. Affiche le total dossiers/documents.Pdm.GetConstituents() recursifREAD
search_documentRecherche un document par nom (match partiel, CONTAINS). Retourne nom + designation + reference pour chaque resultat.Pdm.SearchDocumentByName(projId, value) — value = texte a chercherREAD
search_folderRecherche un dossier par nom dans le projet (match partiel).Pdm.GetConstituents() + filtre nom — value = texte a chercherREAD
open_document_by_nameCherche puis ouvre un document dans l'editeur TopSolid. Le document devient le document actif.Documents.Open(ref docId) — value = nom du documentREAD
list_project_documentsListe TOUS les documents du projet avec designation et reference. Format tableau.Pdm.GetConstituents() iteration completeREAD
list_folder_documentsListe les documents d'un dossier specifique. Utile pour explorer un sous-ensemble du projet.Pdm.GetConstituents(folderId) — value = nom du dossierREAD
summarize_projectResume synthetique : nombre de documents par type (.TopPrt, .TopAsm, .TopDft...), nombre de dossiers.Comptage par extension via Pdm.GetType()READ
count_documents_by_typeCompte les documents groupes par type. Retourne un tableau type → quantite.Pdm.GetType() sur chaque docREAD
list_documents_without_referenceDetecte les pieces/assemblages dont le champ reference est vide. Utile pour l'audit qualite.Filtre GetPartNumber() == ""READ
list_documents_without_designationDetecte les documents sans designation. Utile pour l'audit qualite.Filtre GetDescription() == ""READ
search_parts_by_materialListe les pieces avec leur materiau et masse. Filtre optionnel sur le nom du materiau.Parameters.GetRealValue(Mass) + materiau — value = filtre optionnelREAD
read_where_usedWhere-used : trouve tous les documents qui referencent le document courant (assemblages parents, mises en plan).Pdm.SearchMajorRevisionBackReferences()READ
read_revision_historyTimeline des revisions majeures et mineures du document courant avec auteur et date.Pdm.GetMajorRevisions() + GetMinorRevisions()READ
find_modified_documentsListe les documents non sauvegardes (dirty) du projet. Utile avant un export ou une fermeture.Documents.IsDirty(docId) sur chaque docREAD
batch_export_stepExporte TOUTES les pieces et assemblages du projet en STEP dans un dossier. Un fichier par document.Documents.Export() en boucle — value = chemin dossier (optionnel)WRITE-DISK
batch_read_propertyLit une propriete specifique sur tous les documents du projet. Retourne un tableau nom → valeur.Iteration + Pdm.Get{Description,PartNumber,...} — value = nom proprieteREAD
batch_clear_authorVide le champ Auteur de tous les documents du projet. Utile pour anonymiser avant livraison.Pdm.SetAuthor(pdmId, "") en boucleWRITE-PDM
batch_set_designation (v1.6.7)Applique la meme designation a TOUS les documents du projet.Pdm.SetDescription() en boucle — value = texteWRITE-PDM
batch_set_reference (v1.6.7)Applique la meme reference a TOUS les documents du projet.Pdm.SetPartNumber() en boucle — value = referenceWRITE-PDM
batch_set_manufacturer (v1.6.7)Applique le meme fabricant a TOUS les documents du projet.Pdm.SetManufacturer() en boucle — value = fabricantWRITE-PDM
clear_document_authorVide le champ Auteur du document courant uniquement.Pdm.SetAuthor(pdmId, "")WRITE-PDM
batch_check_virtualVerifie la propriete "virtuel" (IsVirtualDocument) sur tous les documents. Liste les non-virtuels.Documents.IsVirtualDocument() en boucleREAD
create_project_treeCree ou reutilise un projet PDM avec ses dossiers (separes par des virgules) et le definit comme projet courant. Premiere recette d'un flux autonome.Pdm.CreateProject() + Pdm.CreateFolder() — value = projet[dossier1,dossier2,...]WRITE-PDM
update_where_used_and_saveRecalcule et sauvegarde tous les documents du projet courant dans l'ordre bottom-up : pieces (.TopPrt), puis sous-assemblages, puis assemblage racine, pour que tous les liens Where-Used restent coherents.Documents.Update() + Pdm.Save() en ordre de dependances — value = [nom_projet]WRITE-PDM

Parametres ​

Les parametres TopSolid sont les variables du modele : cotes, dimensions, textes. Ils pilotent la geometrie parametrique. Les valeurs sont toujours en SI (metres, radians, kg).

RecetteDescriptionTechniqueMode
read_parametersListe tous les parametres du document avec nom, valeur et type (Real, Integer, Boolean, Text).Parameters.GetParameters(docId) + GetParameterType + Get{Real,Integer,Boolean,Text}ValueREAD
read_real_parameterLit la valeur d'un parametre reel par nom (match partiel). Retourne la valeur en SI. Ex: 0.050000 = 50mm.Parameters.GetRealValue() — value = nom du parametreREAD
read_text_parameterLit la valeur d'un parametre texte par nom (match partiel).Parameters.GetTextValue() — value = nom du parametreREAD
set_real_parameterModifie un parametre reel. La valeur doit etre en SI (metres). Ex: 50mm → 0.05.Parameters.SetRealValue() — value = nom:valeurSI (ex: Longueur:0.15)WRITE-PDM
set_text_parameterModifie un parametre texte.Parameters.SetTextValue() — value = nom:valeur (ex: Materiau:Acier)WRITE-PDM
compare_parametersCompare les parametres entre le document actif et un autre. Affiche les differences (valeur A vs B) et les parametres exclusifs a chacun.Diff par nom de parametre — value = nom de l'autre documentREAD
creer_parametre_reelCree un nouveau parametre reel dans le document actif. Unites supportees : Length, Mass, Angle, NoUnit.Parameters.CreateRealParameter() + Elements.SetName() — value = nom:unite:valeurSI (ex: Longueur:Length:0.05 pour 50 mm)WRITE-PDM
creer_parametre_formuleCree un parametre reel pilote par une formule TopSolid (syntaxe expression : noms de parametres, operateurs, unites SI).Parameters.CreateSmartRealParameter() — value = nom:unite:formule (ex: DiagBolt:Length:Longueur * 1.414)WRITE-PDM

Masse, volume, dimensions ​

Proprietes physiques calculees par TopSolid. Necessitent un materiau affecte pour la masse. Les valeurs systeme sont accessibles via les parametres speciaux ($Mass, $Volume, etc.).

RecetteDescriptionTechniqueMode
read_mass_volumeRetourne masse (kg), volume (mm³), surface (mm²) depuis les proprietes systeme du document. Necessite un materiau pour la masse.Parameters systeme : $Mass, $Volume, $Surface AreaREAD
assembly_mass_reportMasse totale de l'assemblage, volume, surface, et nombre de pieces. Vue globale assemblage.GetParts() + proprietes systeme agregesREAD
read_material_densityCalcule la densite (kg/m³) a partir de masse/volume. Utile pour verifier le materiau affecte.masse / volume depuis parametres systemeREAD
read_materialRetourne le nom du materiau affecte et la densite calculee.Parametres systeme $Mass + $VolumeREAD
read_part_dimensionsLit Height, Width, Length et Box Size depuis les proprietes systeme. Valeurs en mm.Parameters systeme : $Height, $Width, $Length, $Box SizeREAD
read_bounding_boxBoite englobante : min/max XYZ en mm. Calcule aussi les dimensions LxlxH.Parametres systeme bounding boxREAD
read_inertia_momentsMoments principaux d'inertie X, Y, Z. Utile pour le calcul de resistance.Parameters systeme : $Principal Moment of Inertia X/Y/ZREAD

Materiaux et revetements ​

Un materiau TopSolid (.TopMat) porte les proprietes physiques de la piece (masse, resistance, comportement thermique...) ; un revetement (.TopCot) porte son aspect (couleur, brillance, texture). set_material et set_coating affectent une reference standard trouvee dans les bibliotheques ; les recettes get_* / set_* ci-dessous lisent ou reglent chaque propriete du materiau ou du revetement applique au document edite.

RecetteDescriptionTechniqueMode
set_materialCherche un materiau standard (.TopMat) dans les bibliotheques de materiaux et l'affecte a la piece, en activant les proprietes physiques (masse, centre de gravite). Recherche generique < 250 ms.Parts.SetMaterial() + recherche PDM filtree .TopMat — value = [nom_doc;]mot_cle (ex: S235JR)WRITE-PDM
set_coatingCherche un revetement standard (.TopCot, ex: RAL 7016) dans les bibliotheques et l'applique a toutes les formes de la piece — ou applique une couleur RVB directe.Coatings + Elements.SetColor() — value = [nom_doc;]mot_cle[;R,G,B]WRITE-PDM
get_material_brinell_hardness_factorLit la propriete « durete Brinell » du materiau actif, depuis son fichier de normes. Signale aussi l'erreur quand aucun materiau n'est affecte.Materials.GetBrinellHardnessFactor()READ
get_material_vickers_hardness_factorLit la propriete « durete Vickers » du materiau actif, depuis son fichier de normes. Signale aussi l'erreur quand aucun materiau n'est affecte.Materials.GetVickersHardnessFactor()READ
get_material_glossiness_factorLit la propriete « brillance » du materiau actif. Signale aussi l'erreur quand aucun materiau n'est affecte.Materials.GetGlossinessFactor()READ
get_material_bump_scaleLit la propriete « echelle de texture bump » du materiau actif. Signale aussi l'erreur quand aucun materiau n'est affecte.Materials.GetBumpScale()READ
get_material_bump_rotationLit la rotation de la texture bump du materiau actif (radians). Signale aussi l'erreur quand aucun materiau n'est affecte.Materials.GetBumpRotation()READ
get_material_anisotropy_angle_factorLit le facteur d'angle d'anisotropie du materiau actif. Signale aussi l'erreur quand aucun materiau n'est affecte.Materials.GetAnisotropyAngleFactor()READ
read_material_mechanical_propertiesLit en un seul appel les facteurs du materiau de la piece editee : durete Brinell, durete Vickers, brillance, angle d'anisotropie (radians et degres), echelle et rotation bump. Valeurs en unites SI ; liste a la fin les facteurs non definis. Exige TopSolid 7.20.400+ (getters IMaterials) : refuse avec un message explicite sur les versions plus anciennes.Parts.GetMaterial() + 6 getters MaterialsREAD
get_coating_brinell_hardness_factorLit la propriete « durete Brinell » du revetement actif.Coatings.GetBrinellHardnessFactor()READ
get_coating_vickers_hardness_factorLit la propriete « durete Vickers » du revetement actif.Coatings.GetVickersHardnessFactor()READ
get_coating_glossiness_factorLit la propriete « brillance » du revetement actif.Coatings.GetGlossinessFactor()READ
get_coating_bump_scaleLit la propriete « echelle de texture bump » du revetement actif.Coatings.GetBumpScale()READ
get_coating_bump_rotationLit la rotation de la texture bump du revetement actif (radians).Coatings.GetBumpRotation()READ
get_coating_anisotropy_angle_factorLit le facteur d'angle d'anisotropie du revetement actif.Coatings.GetAnisotropyAngleFactor()READ
set_angular_scaleRegle la propriete « echelle angulaire » du materiau applique au document edite.Materials.SetAngularScale() — value = nombreWRITE-PDM
set_anisotropy_angle_factorRegle la propriete « angle d'anisotropie » du materiau applique au document edite.Materials.SetAnisotropyAngleFactor() — value = nombreWRITE-PDM
set_brinell_hardness_factorRegle la propriete « durete Brinell » du materiau applique au document edite.Materials.SetBrinellHardnessFactor() — value = nombreWRITE-PDM
set_bulk_modulusRegle la propriete « module de compressibilite (bulk modulus) » du materiau applique au document edite.Materials.SetBulkModulus() — value = nombreWRITE-PDM
set_bump_rotationRegle la propriete « rotation de texture bump » du materiau applique au document edite.Materials.SetBumpRotation() — value = nombreWRITE-PDM
set_bump_scaleRegle la propriete « echelle de texture bump » du materiau applique au document edite.Materials.SetBumpScale() — value = nombreWRITE-PDM
set_cutting_forceRegle la propriete « force de coupe » du materiau applique au document edite.Materials.SetCuttingForce() — value = nombreWRITE-PDM
set_cutting_force_incrementRegle la propriete « increment de force de coupe » du materiau applique au document edite.Materials.SetCuttingForceIncrement() — value = nombreWRITE-PDM
set_elastic_limitRegle la propriete « limite elastique » du materiau applique au document edite.Materials.SetElasticLimit() — value = nombreWRITE-PDM
set_elongation_at_breakRegle la propriete « allongement a la rupture » du materiau applique au document edite.Materials.SetElongationAtBreak() — value = nombreWRITE-PDM
set_glossiness_factorRegle la propriete « brillance » du materiau applique au document edite.Materials.SetGlossinessFactor() — value = nombreWRITE-PDM
set_melting_temperatureRegle la propriete « temperature de fusion » du materiau applique au document edite.Materials.SetMeltingTemperature() — value = nombreWRITE-PDM
set_plastic_strain_ratioRegle la propriete « anisotropie plastique » du materiau applique au document edite.Materials.SetPlasticStrainRatio() — value = nombreWRITE-PDM
set_poisson_ratioRegle la propriete « coefficient de Poisson » du materiau applique au document edite.Materials.SetPoissonRatio() — value = nombreWRITE-PDM
set_section_reduction_at_breakRegle la propriete « reduction de section a la rupture » du materiau applique au document edite.Materials.SetSectionReductionAtBreak() — value = nombreWRITE-PDM
set_shear_modulusRegle la propriete « module de cisaillement » du materiau applique au document edite.Materials.SetShearModulus() — value = nombreWRITE-PDM
set_shrinkage_factorRegle la propriete « retrait » du materiau applique au document edite.Materials.SetShrinkageFactor() — value = nombreWRITE-PDM
set_specific_heat_capacityRegle la propriete « capacite thermique massique » du materiau applique au document edite.Materials.SetSpecificHeatCapacity() — value = nombreWRITE-PDM
set_thermal_conductivityRegle la propriete « conductivite thermique » du materiau applique au document edite.Materials.SetThermalConductivity() — value = nombreWRITE-PDM
set_thermal_expansion_coefficientRegle la propriete « dilatation thermique » du materiau applique au document edite.Materials.SetThermalExpansionCoefficient() — value = nombreWRITE-PDM
set_ultimate_stressRegle la propriete « contrainte ultime » du materiau applique au document edite.Materials.SetUltimateStress() — value = nombreWRITE-PDM
set_vertical_angular_scaleRegle la propriete « echelle angulaire verticale » du materiau applique au document edite.Materials.SetVerticalAngularScale() — value = nombreWRITE-PDM
set_vickers_hardness_factorRegle la propriete « durete Vickers » du materiau applique au document edite.Materials.SetVickersHardnessFactor() — value = nombreWRITE-PDM
set_young_modulusRegle la propriete « module de Young » du materiau applique au document edite.Materials.SetYoungModulus() — value = nombreWRITE-PDM
set_homogeneous_parameter_valueRegle la valeur « homogene » (booleen) du materiau applique au document edite.Materials.SetHomogeneousParameterValue() — value = vide (retire) / true / falseWRITE-PDM
set_isotropic_parameter_valueRegle la valeur « isotrope » (booleen) du materiau applique au document edite.Materials.SetIsotropicParameterValue() — value = vide (retire) / true / falseWRITE-PDM
set_rockwell_factorsRegle les facteurs Rockwell (A, B, C) du materiau applique au document edite.Materials.SetRockwellFactors() — value = A,B,C (nombre ou null)WRITE-PDM
set_specular_colorRegle la couleur speculaire (RVB) du materiau applique au document edite.Materials.SetSpecularColor() — value = R,G,B (0-255)WRITE-PDM
set_coating_brinell_hardness_factorRegle la propriete « durete Brinell » du revetement actif.Coatings.SetBrinellHardnessFactor() — value = nombreWRITE-PDM
set_coating_bump_rotationRegle la propriete « rotation de texture bump » du revetement actif.Coatings.SetBumpRotation() — value = nombreWRITE-PDM
set_coating_bump_scaleRegle la propriete « echelle de texture bump » du revetement actif.Coatings.SetBumpScale() — value = nombreWRITE-PDM
set_coating_vickers_hardness_factorRegle la propriete « durete Vickers » du revetement actif.Coatings.SetVickersHardnessFactor() — value = nombreWRITE-PDM
set_coating_homogeneous_parameter_valueRegle la valeur « homogene » (booleen) du revetement actif.Coatings.SetHomogeneousParameterValue() — value = vide (retire) / true / falseWRITE-PDM
set_coating_isotropic_parameter_valueRegle la valeur « isotrope » (booleen) du revetement actif.Coatings.SetIsotropicParameterValue() — value = vide (retire) / true / falseWRITE-PDM
set_coating_rockwell_factorsRegle les facteurs Rockwell (A, B, C) du revetement actif.Coatings.SetRockwellFactors() — value = A,B,C (nombre ou null)WRITE-PDM

Geometrie et visualisation ​

Acces a la geometrie du modele : points, reperes, esquisses, shapes (corps solides), operations (arbre de construction).

RecetteDescriptionTechniqueMode
read_3d_pointsListe les points 3D avec coordonnees X, Y, Z en mm.Geometries3D.GetPoints() → GetPointGeometry() (×1000 pour mm)READ
read_3d_framesListe les reperes 3D (frames) par nom.Geometries3D.GetFrames()READ
list_sketchesListe les esquisses 2D du document par nom.Sketches2D.GetSketches()READ
read_shapesListe les shapes (corps solides) avec nombre de faces par shape.Shapes.GetShapes() → GetFaceCount()READ
read_operationsArbre de construction : liste les operations avec nom et type (Extrusion, Revolution, Pocket, etc.).Operations.GetOperations() → Elements.GetTypeFullName()READ
get_profiles_folderRetourne l'entite « dossier des profils » du document actif (nom + identifiant).Geometries3D.GetProfilesFolder()READ
get_operation_versionVersion d'algorithme d'une operation de l'arbre de construction.Operations.GetOperationVersion() — value = nom de l'operation (trouvee via read_operations)READ

Mesures B-Rep (selection interactive) ​

L'utilisateur pointe une face ou une arete dans TopSolid (meme selection interactive que select_face), puis la recette lit la geometrie B-Rep exacte de l'element pointe : cone, tore, ellipse, faces adjacentes. Sans ces recettes, un rayon ou un demi-angle doit etre deduit manuellement des parametres du modele.

RecetteDescriptionTechniqueMode
get_face_cone_lengthLongueur de la face conique pointee (mm).User.AskFace() → Shapes.GetFaceConeLength()READ
get_face_cone_radiusRayon de base de la face conique pointee (mm).User.AskFace() → Shapes.GetFaceConeRadius()READ
get_face_cone_semi_angleDemi-angle de la face conique pointee (degres).User.AskFace() → Shapes.GetFaceConeSemiAngle()READ
get_face_torus_major_radiusRayon majeur de la face torique pointee (mm).User.AskFace() → Shapes.GetFaceTorusMajorRadius()READ
get_face_torus_minor_radiusRayon mineur de la face torique pointee (mm).User.AskFace() → Shapes.GetFaceTorusMinorRadius()READ
get_item_last_operation_nameNom de la derniere operation qui a produit la face pointee (quelle fonction a genere cette face).User.AskFace() → Operations.GetItemLastOperationName()READ
get_edge_facesFaces adjacentes a l'arete pointee (nombre, noms et aires).User.AskEdge() → Shapes.GetEdgeFaces()READ
get_edge_ellipse_curveEllipse de l'arete elliptique pointee (plan + rayons, mm) ; verifie d'abord le type de courbe.User.AskEdge() → Shapes.GetEdgeCurveType() + Shapes.GetEdgeEllipseCurve()READ

Modelisation ​

Creation de geometrie parametrique. Les recettes create_* construisent une piece typee en une seule passe : document, esquisse, forme, materiau et revetement optionnels. Elles passent toutes par la transaction de modification (voir « Pattern de modification » plus bas) et ajoutent la forme a toutes les representations du document.

RecetteDescriptionTechniqueMode
creer_esquisse_rectangleCree une esquisse 2D rectangulaire dans le document actif (plan XY, rectangle en 4 segments).Sketches2D.CreateSketchIn3D() + CreateVertex() + CreateLineSegment() + CleanSketch() — value = largeur:hauteur (mm)WRITE-PDM
extruder_esquisseExtrude la derniere esquisse 2D du document en solide 3D et l'ajoute a toutes les representations.Shapes.CreateExtrudedShape() + Representations.AddRepresentationConstituent() — value = hauteur en mmWRITE-PDM
smooth_sketch_profilesLisse les profils de la derniere esquisse 2D (continuite G1 entre segments). ATTENTION : modifie l'esquisse.Sketches2D.GetProfiles() + SmoothSketchProfiles() — value = vide (tolerances par defaut) ou tolerance en mmWRITE-PDM
create_sheet_metal_plateCree en une passe une plaque / tole (.TopPrt) extrudee en XY selon +Z, avec trous circulaires debouchants optionnels dans la meme esquisse, parametre nomme Epaisseur, boite englobante minimale, materiau et revetement optionnels.Pdm.CreateDocument() + Sketches2D.CreateSketchIn3D() (+ CreateCircleSegment() pour les trous) + Shapes.CreateExtrudedShape() + Parts.SetMaterial() — value = nom;designation;ref;dossier;Lx_mm;Ly_mm;ep_mm[;trous_x_y_diam[;materiau[;revetement_ou_RVB[;ORIGIN|CENTER]]]]WRITE-PDM
create_extruded_barCree en une passe une piece profilee metallique (.TopPrt) : section typee PLAT, TUBE_RECT, ROND, TUBE_ROND ou CORNIERE, extrusion +Z (parametre L), trous transversaux optionnels, materiau et revetement.Pdm.CreateDocument() + fonction « Extruded Bar » via Entities.ProvideFunction() + Parts.CreateDrillingOperation() + Parts.SetMaterial() — value = nom;designation;ref;dossier;type_section;cotes_mm;longueur_mm[;trous[;materiau[;revetement]]]WRITE-PDM
provide_extruded_bar_functionApplique la fonction native TopSolid « Extruded Bar » sur une piece existante : repere 3D (section XY, X horizontal, Z longitudinal), esquisse de section, parametre L, points BottomLeft/TopRight publies et boite englobante minimale.Entities.ProvideFunction() (fonction « Extruded Bar » de la bibliotheque) + Geometries3D.CreateFrame() + publications — value = [nom_doc;]largeur_x_mm;hauteur_y_mm;longueur_z_mmWRITE-PDM
create_drillingPerce un trou cylindrique sur la piece active au point (X, Y, Z) mm avec normale sortante (NX, NY, NZ), met a jour toutes les representations.Parts.CreateDrillingOperation() avec DrillingHolePrimitive — value = diam_mm:prof_mm:X:Y:Z:NX:NY:NZWRITE-PDM
create_revolved_partCree une piece de revolution (.TopPrt) depuis un profil radial/axial ordonne (ferme automatiquement, revolution autour de l'axe Y absolu).Pdm.CreateDocument() + Sketches2D.CreateSketchIn3D() + Shapes.CreateRevolvedShape() — value = nom;points(rayon_mm,axial_mm|...)[;angle_deg[;designation[;reference]]]WRITE-PDM
revolve_active_partAjoute un solide de revolution a la Piece active vide (refuse si elle contient deja un solide). Points en paires rayon_mm,axial_mm dans le plan XY, revolution autour de l'axe Y absolu.Sketches2D.CreateSketchIn3D() + Shapes.CreateRevolvedShape() — value = points(rayon_mm,axial_mm|...)[;angle_deg]WRITE-PDM
replace_revolved_profileRemplace le profil de l'unique solide de revolution de la Piece active (refuse les pieces avec d'autres fonctions volumiques). Segments P (point), L (ligne) et A (arc) en coordonnees XY mm.Sketches2D.GetSketches() + Elements.Delete() de l'ancien profil + Shapes.CreateRevolvedShape() — value = ancien_nom_esquisse;segments(P,r,z|L,r,z|A,r,z,cx,cz,CW_ou_CCW|...)[;angle_deg]WRITE-PDM

Attributs visuels ​

Couleur, transparence, calques — tout ce qui concerne l'apparence visuelle des elements. Les couleurs sont en RGB (0-255). La transparence va de 0.0 (opaque) a 1.0 (invisible).

RecetteDescriptionTechniqueMode
attr_read_allLit couleur, transparence, calque et visibilite de tous les elements. Vue complete des attributs visuels.Elements.GetColor/Transparency + Layers.GetLayerREAD
attr_read_colorLit la couleur RGB de chaque shape. Retourne "pas de couleur" si heritee du materiau.Elements.HasColor() → GetColor()READ
attr_read_face_colorsLit les couleurs face par face. Utile quand chaque face a sa propre couleur.Shapes.GetFaces() → Elements.GetColor() par faceREAD
attr_set_colorChange la couleur d'un shape. Si plusieurs shapes, TopSolid demande une selection interactive.Elements.SetColor(target, Color) — value = R,G,B (ex: 255,0,0)WRITE-PDM
attr_set_color_allChange la couleur de TOUS les elements d'un coup. Pas de selection.Elements.SetColor() en boucle — value = R,G,BWRITE-PDM
attr_replace_colorRemplace une couleur specifique par une autre sur tous les elements. Ex: tout le vert → rouge.Filtre par couleur source → SetColor() — value = R1,G1,B1:R2,G2,B2WRITE-PDM
attr_read_transparencyLit la transparence de chaque shape (0.0 a 1.0).Elements.HasTransparency() → GetTransparency()READ
attr_set_transparencyChange la transparence. Si plusieurs shapes, selection interactive.Elements.SetTransparency() — value = 0.0 a 1.0WRITE-PDM
attr_list_layersListe les calques (layers) du document par nom.Layers.GetLayers()READ
attr_assign_layerDeplace un element vers un calque.Layers.SetLayer(elemId, layerId) — value = nom_element:nom_calqueWRITE-PDM

Selection interactive ​

Recettes qui ouvrent une boite de dialogue TopSolid pour que l'utilisateur pointe un element a l'ecran. Utile quand l'IA ne peut pas determiner l'element automatiquement.

RecetteDescriptionTechniqueMode
select_shapeL'utilisateur clique sur un corps solide. Retourne nom et nombre de faces.User.AskShape()READ
select_faceL'utilisateur clique sur une face. Retourne le shape parent et l'index de la face.User.AskFace()READ
select_3d_pointL'utilisateur clique un point dans l'espace 3D. Retourne les coordonnees X, Y, Z en mm.User.AskPoint3D()READ

Assemblages ​

Un assemblage TopSolid contient des inclusions (instances de pieces) avec des contraintes de positionnement. Chaque inclusion reference un document "definition".

RecetteDescriptionTechniqueMode
detect_assemblyVerifie si le document courant est un assemblage. Si oui, liste les pieces.Assemblies.IsAssembly() → GetParts()READ
list_inclusionsListe les inclusions avec le document de definition de chaque instance. Montre la structure assemblage → piece.Operations.GetOperations() filtre IsInclusion() → GetInclusionDefinitionDocument()READ
read_occurrencesListe les occurrences (instances visibles) avec leur document de definition.Assemblies.GetParts() + GetOccurrenceDefinition()READ
count_assembly_partsCompte les pieces groupees par reference (type). Retourne quantite par piece unique et total. Ex: "Vis M8: 4, Plaque: 2 → 6 pieces".GetParts() groupe par GetInclusionDefinitionDocument()READ
rename_occurrenceRenomme une occurrence dans l'assemblage. Match par nom partiel (insensible a la casse).Entities.SetFunctionOccurrenceName() — value = ancien_nom:nouveau_nomWRITE-PDM
ajouter_inclusionAjoute une inclusion d'un document piece dans l'assemblage actif. Le document cible doit etre ouvert.Assemblies.CreatePositioning() + Assemblies.CreateInclusion() — value = nom du document pieceWRITE-PDM
add_inclusion_positionedInclut une piece ou un sous-assemblage avec une position explicite : soit tx,ty,tz[,rx,ry,rz], soit BETWEEN,x1,y1,z1,x2,y2,z2[,ux,uy,uz] qui aligne l'axe +Z d'un profile extrude de P1 vers P2 et la section X selon uX.Assemblies.CreatePositioning() + CreateInclusion() avec transform — value = [asm|]doc;tx,ty,tz[,rx,ry,rz] ou [asm|]doc;BETWEEN,x1,y1,z1,x2,y2,z2[,ux,uy,uz]WRITE-PDM
batch_add_inclusionsInclusions multiples dans un assemblage en une seule transaction. Le prefixe CLEAR| supprime d'abord les occurrences existantes ; chaque item est separe par ;.Assemblies.CreateInclusion() en boucle — value = [asm|][CLEAR|]item1;item2 (item : doc,tx,ty,tz[,rx,ry,rz[,nom_occ]] ou doc,BETWEEN,x1,...,z2[,...])WRITE-PDM
list_positioningsListe les operations de positionnement de l'assemblage actif avec leur statut de contrainte (sous-contraint ou completement contraint).Operations.GetOperations() filtre positionnements + Assemblies.IsPositioningUnderconstrained()READ
is_positioning_underconstrainedIndique si un positionnement de l'assemblage actif est sous-contraint.Assemblies.IsPositioningUnderconstrained() — value = nom du positionnement (exact ou fragment ; voir list_positionings)READ

Profils standard 7.21 ​

Familles de profils standard des bibliotheques TopSolid 7.21 (.TopFam : Plat, Tube rectangle, Tube carre, Tube rond, Rond, Carre — projets « Composants Mecanique TopSolid » et « Mecanique AFNOR TopSolid »). Un profil est place dans un assemblage, entre deux points 3D donnes en mm ; list_profile_families_and_codes enumere les familles et codes disponibles.

RecetteDescriptionTechniqueMode
list_profile_families_and_codesListe les familles de profils standard de bibliotheque (.TopFam) et leurs codes de section.Pdm.GetProjects() filtre bibliotheques + Families.GetCodes() — value = [nom_famille[:filtre_code]]READ
create_profile_by_two_pointsPlace un profil standard de bibliotheque entre deux points 3D (mm) dans un assemblage.Assemblies.CreateProfileByTwoPoints() — value = [asm:]famille,code,x1,y1,z1,x2,y2,z2[,dir(DX|DY|DZ),rot_deg,offX_mm,offY_mm,inverted]WRITE-PDM
batch_create_profiles_by_two_pointsPlace plusieurs profils standard dans un assemblage en une seule transaction, puis sauvegarde.Assemblies.CreateProfileByTwoPoints() en boucle — value = [asm[@clear]:]famille,code,x1,...,z2[,...];famille,code,...WRITE-PDM

Familles ​

Une famille TopSolid est un document parametrique avec des configurations (codes). Les drivers sont les parametres qui pilotent les variantes du catalogue.

RecetteDescriptionTechniqueMode
detect_familyVerifie si le document est une famille. Indique si elle est explicite (instances documents) ou implicite (instances issues du generique, avec catalogue possible).Families.IsFamily() + IsExplicit()READ
read_family_codesListe les codes (variantes) de la famille. Chaque code correspond a une configuration du catalogue.Families.GetCodes()READ
read_family_catalogLit les lignes, colonnes et valeurs typees du catalogue de la famille active.GetCodes() + GetCatalogColumnParameters() + GetCatalogCell*Value()READ
add_family_catalog_columnAjoute une colonne a partir du selecteur exact d'un parametre existant de la famille.Families.AddCatalogColumn()WRITE-PDM
add_family_catalog_rowAjoute une ligne avec un code unique et ses cellules typees.AddCatalogNewRow() + SetCatalogCell*Value()WRITE-PDM
set_family_catalog_cellModifie une cellule identifiee par le code de ligne et le selecteur exact de colonne.GetCatalogRow() + SetCatalogCell*Value()WRITE-PDM
check_family_driversVerifie que les drivers (parametres pilotant le catalogue) ont une designation. Liste ceux sans description.Families.GetCatalogColumnParameters() → Elements.GetDescription()READ
fix_family_driversGenere automatiquement une designation pour les drivers sans description, en deduisant du nom du parametre (CamelCase → mots separes).Elements.SetDescription() auto-genere — aucun valueWRITE-PDM
batch_check_family_driversAudit des drivers de TOUTES les familles du projet. Detecte les drivers sans designation sur chaque famille.Iteration IsFamily() → GetCatalogColumnParameters()READ

Modifier un catalogue implicite ​

Les quatre recettes travaillent sur la famille active. Une famille implicite peut avoir un catalogue : chaque ligne a un code, chaque colonne correspond a un parametre de cette famille. read_family_catalog lit aussi les familles explicites ou derivees ; les trois recettes d'ecriture les refusent.

value contient un objet JSON. Les selecteurs de parametres/colonnes doivent correspondre exactement au champ name retourne par read_family_catalog dans availableParameters ou columns : nom interne non vide, sinon nom convivial exact avec son suffixe <id>. Exemples de valeurs a transmettre :

Recettevalue
read_family_catalogvide ou {}
add_family_catalog_column{"parameter":"D <71>"}
add_family_catalog_row{"code":"A","cells":{"D <71>":{"type":"real","value":0.1}}}
set_family_catalog_cell{"code":"A","column":"D <71>","type":"real","value":0.2}

Commencer par la lecture pour reperer les colonnes et les parametres disponibles. D <71> et L <70> sont des exemples : leurs identifiants varient selon la famille ; recopier les selecteurs de la reponse actuelle. Les pilotes de famille sont decouverts via Elements.GetElements, car Parameters.GetParameters peut les omettre. L'ajout de colonne utilise un parametre deja present dans la famille ; il ne cree ni pilote ni publication. cells est facultatif a l'ajout d'une ligne. Une ligne existante se modifie cellule par cellule.

Types pris en charge : real, integer, boolean, text, code. Un reel est en unites SI : 0.1 represente 100 mm pour une longueur, et un angle s'exprime en radians. Utiliser des nombres JSON avec un point decimal, des booleens true/false et des chaines JSON pour le texte. La lecture fournit le type et les informations d'unite disponibles ; les types non pris en charge sont signales.

Le champ JSON code identifie une ligne du catalogue. Il est distinct de la propriete PDM Code du document et des cellules de type code pouvant referencer une autre famille. La colonne d'identite est la premiere colonne du catalogue (columns[0]), de type texte dans le cas natif qualifie ; son ecriture utilise SetCatalogCellTextValue. Elle ne se deduit ni du nom Code, ni du type ParameterType.Code, qui peut decrire une autre cellule. set_family_catalog_cell refuse de modifier cette colonne : le renommage des codes n'est pas pris en charge.

Les codes dupliques, colonnes absentes et valeurs de type incompatible sont refuses. Les ecritures utilisent une transaction TopSolid ; elles sont indisponibles en mode lecture seule. Ces recettes ne suppriment pas de ligne ou de colonne et ne convertissent pas les familles explicites/derivees. Les cellules famille, couleur et enumeration ne sont pas modifiables par ces recettes.

Export ​

Export du document actif vers differents formats CAO/dessin. Le chemin est optionnel — si omis, TopSolid utilise le dossier par defaut (temp ou bureau). L'exporteur est selectionne automatiquement par nom.

RecetteDescriptionTechniqueMode
export_file (v1.8.16)Export vers n'importe quel format, choisi par l'extension du chemin (.step, .x_t, .igs, .stl, .dxf, .pdf...). Verifie CanExport et refuse un export 3D d'un document sans forme, au lieu de laisser TopSolid se bloquer sur sa boite « aucune entite a exporter ». Verifie que le fichier ecrit n'est pas vide.ExportWithOptions() en mode silencieux — value = chemin, chemin|force pour passer outre le controle de formeWRITE-DISK
import_file (v1.8.16)Importe un fichier CAO (.step, .igs, .x_t, .sldprt, .sldasm...) dans le projet courant avec l'importeur de son extension, en mode silencieux, sauve les documents crees et les liste avec leur nombre de formes. Un fichier par appel.ImportWithOptions() hors transaction — value = chemin, ou chemin|Dossier/Sous-dossier (noms exacts, crees s'ils manquent)WRITE-PDM-NO-TRX
export_stepExport STEP (AP214). Format universel d'echange CAO. Refuse un document sans forme depuis v1.8.16.Documents.Export() avec exporteur STEP — value = chemin (optionnel), chemin|force pour passer outreWRITE-DISK
export_dxfExport DXF (AutoCAD). Pour les mises en plan ou profils 2D.Documents.Export() avec exporteur DXF — value = chemin (optionnel)WRITE-DISK
export_pdfExport PDF. Pour les mises en plan principalement.Documents.Export() avec exporteur PDF — value = chemin (optionnel)WRITE-DISK
export_stlExport STL (maillage triangles). Pour l'impression 3D ou la visualisation. Refuse un document sans forme depuis v1.8.16.Documents.Export() avec exporteur STL — value = chemin (optionnel), chemin|force pour passer outreWRITE-DISK
export_igesExport IGES. Format historique d'echange CAO, encore utilise dans l'aeronautique. Refuse un document sans forme depuis v1.8.16.Documents.Export() avec exporteur IGES — value = chemin (optionnel), chemin|force pour passer outreWRITE-DISK
list_exportersListe tous les formats d'export disponibles dans l'installation TopSolid.Documents.GetExporterNames()READ
export_bom_csvExporte la nomenclature (BOM) du document en format texte avec colonnes separees.Lecture Nomenclatures → format texteREAD
export_project_xliff (v1.8.13)Exporte le dictionnaire de traduction (.xliff) de tout un projet PDM recursivement (dossiers, documents, parametres, proprietes).Pdm.ExportLocalizations(projects, cultures, dir, ".xliff", false) — value=[projet;]culture;dossierWRITE-DISK
import_project_xliff (v1.8.13)Importe un fichier ou dossier .xliff traduit dans un projet PDM sans modifier les noms invariants.Pdm.ImportDictionnaries() / Pdm.ImportLocalizations() — value=[projet;]chemin_xliffWRITE-PDM

Audit et verification ​

Outils de controle qualite : verification des proprietes, coherence des noms de parametres, materiaux manquants. Essentiels avant livraison ou archivage.

RecetteDescriptionTechniqueMode
audit_partAudit complet : proprietes PDM, parametres (nombre + liste), shapes, masse, volume, surface, materiau. Rapport synthetique.Combinaison Pdm.* + Parameters.* + Shapes.* + parametres systemeREAD
audit_assemblyAudit assemblage : pieces, inclusions, occurrences, masse totale, structure.Assemblies.GetParts() + GetOccurrences() + masse systemeREAD
check_partCheck-list qualite : designation renseignee ? Reference renseignee ? Materiau affecte ? Retourne OK/ATTENTION par critere.Verification GetDescription, GetPartNumber, presence materiauREAD
check_projectVerification qualite sur tout le projet : liste les pieces sans designation et sans reference.Iteration complete avec filtresREAD
check_missing_materialsListe les pieces du projet qui n'ont pas de materiau affecte (masse = 0).Filtre $Mass == 0 sur tous les docsREAD
audit_parameter_namesDetecte les incoherences de convention dans les noms de parametres (CamelCase vs snake_case, doublons proches, caracteres speciaux).Analyse syntaxique des noms via regexREAD
batch_audit_parameter_namesMeme audit sur tous les documents du projet. Rapport global.Iteration complete + analyse syntaxiqueREAD
batch_audit_driver_designationsListe les designations de drivers de toutes les familles pour inspection visuelle (fautes, incoherences).GetCatalogColumnParameters() → GetDescription() sur toutes les famillesREAD
check_collisionsActive l'analyse native de collisions 3D B-Rep de TopSolid sur un assemblage, rapporte les paires d'elements en collision, puis retablit le stage Modelisation. Verification ADN : attendre 0 collision avant de conclure.Assemblies.SetCollisionsManagement() + analyse ShapeShapeCollisionEntity — value = [nom_asm] (assemblage actif par defaut)WRITE-PDM

Mise en plan ​

La mise en plan (Drafting) est le dessin technique 2D genere a partir d'une piece ou assemblage 3D. Elle contient des vues, une echelle, un format papier.

RecetteDescriptionTechniqueMode
detect_draftingVerifie si le document est une mise en plan. Retourne le nombre de vues et le format.Draftings.IsDrafting()READ
open_draftingCherche la mise en plan associee a la piece courante (via back-references PDM) et l'ouvre.Pdm.SearchMajorRevisionBackReferences() filtre .TopDft → Documents.Open()READ
list_drafting_viewsListe les vues du plan avec nom et titre.Draftings.GetDraftingViews()READ
read_drafting_scaleLit l'echelle globale du plan et l'echelle de chaque vue individuellement.Draftings.GetScaleFactorParameterValue() + GetViewScaleFactor()READ
read_drafting_formatFormat papier (A3/A4), dimensions en mm, nombre de pages, mode de projection.Draftings.GetDraftingFormatName/Dimensions/PageCountREAD
read_main_projectionIdentifie la piece source de la mise en plan et les vues principales.Draftings.GetMainProjectionSet()READ
set_drafting_scale (v1.6.1)Change l'echelle globale du plan. value=denominateur (ex: 10 → 1:10).Draftings.SetScaleFactorParameterValue() — Pattern DWRITE-PDM
set_drafting_format (v1.6.1)Change le format papier. value=nom (ex: A3, A4).Draftings.SetDraftingFormatName() — Pattern DWRITE-PDM
set_projection_quality (v1.6.1)Qualite de projection. value=exact (precis) ou fast (rapide).Draftings.SetProjectionMode() — Pattern DWRITE-PDM
print_drafting (v1.6.1)Imprime toutes les pages du plan (N&B, 300 DPI, a l'echelle).Draftings.Print()WRITE-DISK

Mise en plan — bundle ​

Un bundle de mise en plan est un document multi-pages (liasse) qui regroupe plusieurs mises en plan : plusieurs plans sur une meme page, ou un plan par page, chaque page pouvant avoir son propre format. Ces recettes pilotent le bundle ouvert dans l'editeur.

RecetteDescriptionTechniqueMode
get_page_countRetourne le nombre de pages du bundle de mise en plan ouvert.Draftings.GetPageCount()READ
add_page_to_bundleAjoute une nouvelle page au bundle ouvert. Aucun value attendu.Draftings.AddPageToBundle()WRITE-PDM
set_current_bundle_pageDefinit la page courante du bundle ouvert.Draftings.SetCurrentBundlePage() — value = numero de page (ex: 1)WRITE-PDM
set_bundle_page_format_nameDefinit le nom de format d'une page du bundle (ex: A3).Draftings.SetBundlePageFormatName() — value = numero de pageWRITE-PDM
set_bundle_page_formatDefinit le format d'une page du bundle.Draftings.SetBundlePageFormat() — value = page;format (ex: 1;A3 landscape)WRITE-PDM
set_bundle_page_dimensionsDefinit les dimensions d'une page du bundle en mm.Draftings.SetBundlePageDimensions() — value = page;largeur;hauteur (ex: 1;420;297)WRITE-PDM
include_draft_in_bundleInclut une mise en plan dans le bundle ouvert — toutes ses pages sur la meme page du bundle.Draftings.IncludeDraftInBundle() — value = nom du document planWRITE-PDM
include_draft_page_in_bundle_current_pageInclut une page specifique d'une mise en plan dans la page courante du bundle, avec decalage.Draftings.IncludeDraftPageInBundleCurrentPage() — value = plan;page;decalage (ex: draft;1;0)WRITE-PDM
add_draft_to_bundleAjoute une mise en plan au bundle ouvert — ses pages deviennent des pages separees du bundle.Draftings.AddDraftToBundle() — value = nom du document planWRITE-PDM

Nomenclature / BOM ​

La nomenclature (Bill of Materials) est le tableau des composants d'un assemblage. Elle est generalement dans la mise en plan.

RecetteDescriptionTechniqueMode
detect_bomVerifie si le document contient une nomenclature. Retourne le nombre de colonnes.Boms.IsBom()READ
read_bom_columnsListe les colonnes du tableau (Repere, Designation, Quantite, Reference...).Boms.GetColumnCount() + GetColumnTitle()READ
read_bom_contentsLit le tableau complet : toutes les lignes actives avec toutes les cellules. Format texte tabulaire.Boms.GetRowChildrenRows() + GetRowContents()READ
count_bom_rowsCompte les lignes actives et inactives de la nomenclature.Boms.IsRowActive() sur chaque ligneREAD
activate_bom_row (v1.6.1)Active une ligne BOM par index. value=row_index.Boms.ActivateRow() — Pattern DWRITE-PDM
deactivate_bom_row (v1.6.1)Desactive une ligne BOM par index. value=row_index.Boms.DeactivateRow() — Pattern DWRITE-PDM

Mise a plat / Depliage ​

Le depliage (flat pattern) concerne la tolerie : une piece en tole est "depliee" pour obtenir le contour plat a decouper. Les plis ont un angle, un rayon et une longueur.

RecetteDescriptionTechniqueMode
detect_unfoldingVerifie si le document contient un depliage tolerie. Liste les plis detectes.Detection via operations de type FlatPatternREAD
read_bend_featuresListe les plis avec angle (degres), rayon interieur (mm) et longueur (mm).Proprietes des operations de pliageREAD
read_unfolding_dimensionsDimensions du contour deplie : longueur et largeur du flan plat en mm.Parametres systeme de depliageREAD

Document ​

Creation de documents (piece, assemblage ou depuis un modele nomme), puis operations sur le document actif : sauvegarde, reconstruction, commande menu.

RecetteDescriptionTechniqueMode
create_part_documentCree (ou reutilise) un document Piece (.TopPrt) dans un projet et un dossier, renseigne nom, designation et reference, puis l'ouvre.Pdm.CreateDocument(owner, ".TopPrt") + Pdm.SetName/SetDescription/SetPartNumber() + Documents.Open() — value = nom[;designation[;reference[;dossier[;projet]]]]WRITE-PDM
create_assembly_documentCree (ou reutilise) un document Assemblage (.TopAsm) dans un projet et un dossier, renseigne nom, designation et reference, puis l'ouvre.Pdm.CreateDocument(owner, ".TopAsm") + Documents.Open() — value = nom[;designation[;reference[;dossier[;projet]]]]WRITE-PDM
create_document_with_templateCree un document dans le projet courant depuis un modele de document nomme (ex: Wooden Part), cherche dans les modeles utilisateur puis entreprise. Tourne hors transaction : TopSolid refuse une creation de document entre StartModification et EndModification.Pdm.GetTemplates() + Pdm.SearchDocumentByName() + Pdm.CreateDocumentWithTemplate() — value = nom du modeleWRITE-PDM-NO-TRX
document_typeRetourne le type du document actif : piece, assemblage, mise en plan, etc. Detecte aussi famille et mise a plat.IsAssembly(), IsDraftingDocument(), IsFamily(), GetType()READ
save_documentSauvegarde le document actif.Pdm.Save(pdmId, true)WRITE-PDM
rebuild_documentForce la reconstruction du modele (recalcul de toutes les operations). Utile apres modification de parametres.Documents.Rebuild(docId)WRITE-PDM
save_all_projectSauvegarde tous les documents du projet en une passe.Pdm.Save() en boucle sur tous les docsWRITE-PDM
invoke_commandExecute une commande menu TopSolid par son nom interne. Attention : certaines commandes ouvrent des dialogues.Application.InvokeCommand(value) — value = nom de la commandeWRITE-PDM

Proprietes utilisateur et document ​

Les proprietes utilisateur sont definies par l'entreprise (dossier PDM dedie) et materialisees dans chaque document comme des parametres speciaux. La resolution par Pdm.GetTextUserProperty(pdmId, "name_string") ne fonctionne pas — l'API attend une PdmObjectId pointant sur la definition. Le pattern fiable est d'iterer Parameters.GetParameters() et filtrer ceux avec une UserPropertyDefinition non-vide.

RecetteDescriptionTechniqueMode
read_user_property (v1.6.2 fixed)Lit une propriete utilisateur par son nom visible (text/real/integer/boolean, auto-type).Parameters.GetUserPropertyDefinition() + match par GetFriendlyName()READ
set_user_property (v1.6.2 fixed)Modifie une propriete utilisateur par son nom visible, parse la valeur selon le type. value=nom:valeur.Parameters.SetTextValue/SetRealValue/... apres lookup UserPropertyDefinitionWRITE-PDM

Comparaison de documents ​

Compare le document courant avec un autre document du meme projet. Utile pour verifier des differences entre revisions ou variantes.

RecetteDescriptionTechniqueMode
compare_document_operationsCompare l'arbre de construction entre 2 documents. Montre les operations ajoutees, supprimees ou differentes.Operations.GetOperations() diff par nom — value = nom de l'autre documentREAD
compare_document_entitiesCompare les entites (shapes, esquisses, points, reperes) entre 2 documents. Montre les differences de quantite.Comptage Shapes/Sketches/Points/Frames — value = nom de l'autre documentREAD
compare_revisionsCompare les parametres de la revision courante avec la revision precedente du meme document.Pdm.GetMajorRevisions() → diff parametresREAD

Report de modifications ​

Copie des proprietes d'un document vers un autre. Utile pour propager des modifications en serie.

RecetteDescriptionTechniqueMode
copy_parameters_toCopie les valeurs de parametres du document actif vers un autre. Match par nom de parametre. Ignore les parametres systeme ($Mass, etc.).Parameters.Set{Real,Text,Integer,Boolean}Value() — value = nom du document cibleWRITE-PDM
copy_pdm_properties_toCopie designation, reference et fabricant du document actif vers un autre.Pdm.Set{Description,PartNumber,Manufacturer}() — value = nom du document cibleWRITE-PDM

Document virtuel ​

RecetteDescriptionTechniqueMode
enable_virtual_documentActive le mode virtuel sur le document courant. Un document virtuel n'est pas sauvegarde physiquement.Documents.SetVirtualDocumentMode(docId, true)WRITE-PDM
batch_enable_virtualActive le mode virtuel sur tous les documents non-virtuels du projet.SetVirtualDocumentMode(true) en boucleWRITE-PDM

Pattern de modification ​

Toutes les recettes WRITE-PDM suivent le meme pattern :

csharp
TopSolidHost.Application.StartModification("Description", false);
TopSolidHost.Documents.EnsureIsDirty(ref docId);
// ... modifications ...
TopSolidHost.Application.EndModification(true, true);
TopSolidHost.Pdm.Save(pdmId, true);

DANGER

EnsureIsDirty(ref docId) change le docId ! Chercher les elements APRES cet appel, jamais avant.

Couleurs de reference ​

NomRGB
rouge255,0,0
vert0,128,0
bleu0,0,255
jaune255,255,0
orange255,165,0
blanc255,255,255
noir0,0,0
gris128,128,128

Unites (TopSolid = SI) ​

GrandeurUnite SIConversion
Longueursmetres50 mm = 0.05
Anglesradians45° = 0.785398
Masseskg
Volumesm³Affiche en mm³ (×10⁹)
Surfacesm²Affiche en mm² (×10⁶)

Tests LIVE ​

59/61 tests PASS sur TopSolid vivant (assemblage REF-MCPTEST).

CategoriePASSTotal
PDM read/write66
Assemblage66
Export (STEP/STL/IGES/DXF/PDF)55
Attributs lecture55
Parametres11
Geometrie11
Projet11

21 recettes non testees automatiquement (Ask* interactives, contexte specifique requis).

Dataset LoRA ​

2164 entrees ShareGPT pour fine-tuner le sous-agent 3B (ministral-topsolid v7 conversational). Couvre les 216 recettes + patterns multi-turn + error-handling + acknowledgments. Le dataset n'est pas versionne dans le depot : il se regenere depuis RecipeTool.cs avec scripts/generate-lora-dataset.py (ou make lora-dataset).

Eval : 96% sur 50 questions (5 tiers, trivial → piege), multi-turn verifie manuellement.

Pattern d'ecriture dans modify_script ​

Les recettes WRITE passent par topsolid_modify_script qui wrappe automatiquement StartModification / EnsureIsDirty / EndModification / Pdm.Save. Contraintes :

  • NE PAS utiliser return "..." — le wrapper l'interdit.
  • Utiliser __message = "..." pour personnaliser le message de retour.
  • return; (void) est autorise pour les early exits — transforme en goto __done;.
  • Variables pre-declarees : docId, pdmId, __message.
  • Une recette dont les seules ecritures sont des appels PDM (Pdm.SetDescription, SetName, SetPartNumber, Save...) tourne sans StartModification : TopSolid refuse ces appels dans une transaction. C'est le cas de set_designation, set_name, set_reference, set_manufacturer, set_user_property, copy_pdm_properties_to, clear_document_author, save_all_project et des batch_set_* / batch_clear_author, qui echouaient avant la v1.8.16. Melanger ces appels et des modifications du modele est refuse avant execution.

Exemple (extrait de set_drafting_scale) :

csharp
if (docId.IsEmpty) { __message = "No document open."; return; }
double factor = 1.0 / denom;
TopSolidDraftingHost.Draftings.SetScaleFactorParameterValue(docId, factor);
__message = "OK: drafting scale set to 1:" + denom;

TopSolid MCP — Serveur Model Context Protocol pour TopSolid Automation