 |
DATAKIT SDK
V2026.4
|
|
◆ CatiaV5WriteSample()
527 std::cout << std::endl <<
"----------------------------------------------" << std::endl;
528 std::cout <<
"CatiaV5 Write start" << std::endl;
531 outputDirectory = inResultDirectory + L
"CatiaV5/";
533 outputDirectory.
mkdir();
550 ProcessAsm( inResultDirectory, inInputFilesDirectory );
◆ ProcessAsm()
Writes a CATProduct assembly: one sub-product referencing a CATPart and one instanced directly from an existing V5 file.
383 outputDirectory = inResultDirectory +
"CatiaV5/";
386 Dtk_string CATPartFileName = outputDirectory + L
"V5_sample.CATPart";
387 Dtk_string SubProductFileName = outputDirectory + L
"SubProduct.CATProduct";
388 Dtk_string RootProductFileName = outputDirectory + L
"RootProduct.CATProduct";
390 Dtk_string V5FileName = inInputFilesDirectory + L
"CatiaV5/9.CATPart";
393 std::wstring tempDirectoryFixed =
resolvePath( inInputFilesDirectory.w_str() );
396 outputDirectoryFixed.
replace( L
'\\', L
'/' );
397 Dtk_string CGRFileName = outputDirectoryFixed + L
"CGR/Engine.cgr";
398 Dtk_string V4ModelFileName = outputDirectoryFixed + L
"CatiaV4/EngineComponent.model";
412 errorStatus =
ProcessPart( CATPartFileName, L
"testPart" );
415 Dtk_ID PartID, V5ID, V4ID, CgrID;
431 Dtk_ID SubProductID, VirtualSubComponent1ID, VirtualSubComponent2ID, PartInstanceID, VirtualSubComponent1_Instance1ID;
432 Dtk_ID PartInstanceID2, CGRInstanceID, V4InstanceID, V5InstanceID, VirtualComponent1_Instance1ID;
439 TransformationMatrix.
setOrigin( 0, 0, 150 );
440 errorStatus =
catiav5w::AddInstance( PartID, L
"PartInstance", TransformationMatrix, PartInstanceID );
447 TransformationMatrix.
setOrigin( 0.0, 0.0, 0.0 );
453 TransformationMatrix.
setOrigin( 0.0, 0.0, 0.0 );
454 errorStatus =
catiav5w::AddInstance( PartID, L
"PartInstance", TransformationMatrix, PartInstanceID2 );
456 TransformationMatrix.
setOrigin( 0.0, 500.0, 0.0 );
459 TransformationMatrix.
setOrigin( 0.0, -500.0, 0.0 );
462 TransformationMatrix.
setOrigin( 0.0, -1000.0, 0.0 );
465 TransformationMatrix.
setOrigin( 0.0, 1000.0, 0.0 );
473 Dtk_ID RootProductID, PartInstance2ID, SubProductInstance1ID, SubProductInstance2ID;
478 TransformationMatrix.
setOrigin( 0.0, 0.0, 50.0 );
479 errorStatus =
catiav5w::AddInstance( PartID, L
"PartInstance2", TransformationMatrix, PartInstance2ID );
482 TransformationMatrix.
setOrigin( 1000.0, 0.0, 0.0 );
483 errorStatus =
catiav5w::AddInstance( SubProductID, L
"SubProductInstance1", TransformationMatrix, SubProductInstance1ID );
484 TransformationMatrix.
setOrigin( -1000.0, 0.0, 0.0 );
486 errorStatus =
catiav5w::AddInstance( SubProductID, L
"SubProductInstance2", TransformationMatrix, SubProductInstance2ID );
492 Path1.
push_back( SubProductInstance2ID );
493 Path1.
push_back( VirtualComponent1_Instance1ID );
494 Path1.
push_back( VirtualSubComponent1_Instance1ID );
505 Path2.
push_back( SubProductInstance1ID );
516 std::cout <<
"=> " << RootProductFileName.
c_str() << std::endl <<
"CatiaV5 Write end" << std::endl;
◆ ProcessPart()
127 MyCurveSetInfo->
SetName( L
"MyCurveSet" );
160 MyOpenShellInfo->
SetName( L
"MyOpenShell" );
172 Dtk_InfoPtr& body_openshellInfo = body_openshell->info();
173 if( body_openshellInfo.
IsNULL() )
196 MySolidInfo->
SetName( L
"My Solid" );
217 if( body_solidInfo.
IsNULL() )
238 MyOpenShellForMeshInfo->
SetName( L
"MyOpenShellForMesh" );
263 MyOpenShellForPlaneInfo->
SetName( L
"MyOpenShellForPlane" );
288 MyOpenShellForInifiniteLineInfo->
SetName( L
"MyOpenShellForInifiniteLine" );
351 Cam =
Dtk_Camera::Create(
Dtk_pnt( 100, 100, 100 ),
Dtk_pnt( 0, 0, 0 ), 100., 100.,
Dtk_dir( 0, 1, 0 ) );
356 NamedView->info()->SetName( L
"MyNamedView" );
◆ resolvePath()
| std::wstring resolvePath |
( |
const std::wstring & |
inRelativePath | ) |
|
29 wchar_t buffer[ MAX_PATH ];
30 DWORD len = GetFullPathNameW( inRelativePath.c_str(), MAX_PATH, buffer,
nullptr );
31 return std::wstring( buffer, len );
36 std::string utf8( inRelativePath.begin(), inRelativePath.end() );
38 char buffer[ PATH_MAX ];
39 if( realpath( utf8.c_str(), buffer ) !=
nullptr )
42 return std::wstring( buffer, buffer + strlen( buffer ) );
46 return inRelativePath;
◆ WriteBodyMaterial()
68 material.m_Lighting.SetAmbientData(
Dtk_RGB( 40, 40, 255 ), 0.6 );
69 material.m_Lighting.SetDiffuseData(
Dtk_RGB( 80, 80, 255 ), 1.0 );
70 material.m_Lighting.SetSpecularData(
Dtk_RGB( 255, 255, 255 ), 0.9 );
71 material.m_Lighting.SetTransparencyData(
Dtk_RGB( 0, 0, 0 ), 0. );
72 material.m_Lighting.SetReflectivityCoefficient( 0.4 );
75 material.m_Analysis.SetDensity( 7850. );
◆ WriteLayerData()
Dtk_BodyPtr CreateAxis()
Creates a reference body (infinite + reference flags) containing a single named axis line with metada...
Definition: testcreatecube.cpp:1568
static Dtk_SmartPtr< Dtk_Info > Create()
Calls default constructor to allocate a new object.
static Dtk_ModelDisplayPtr Create(const Dtk_CameraPtr &inCamera, const Dtk_EntityPtr &inClippingEntity, const Dtk_bool inIsActivated)
Calls full featured constructor to allocate a new object.
uint32_t Dtk_ID
Definition: define.h:688
This is the Transformation dedicated class.
Definition: dtk_transfo.hpp:19
Dtk_ErrorStatus InitVirtualComponent(const Dtk_string &inReferenceName, const catiav5w::FileDescription &inFileDescription=catiav5w::FileDescription())
Initialize a virtual component during CATProduct process.
Dtk_ErrorStatus OverrideInstanceAlphaWithPathID(const PathID &inInstancePathId, const Dtk_UChar8 inInstanceAlpha)
Override the Alpha of an instance in a Sub Product.
Dtk_ErrorStatus AddMaterial(const Material &inMaterial, MaterialId &outMaterialId)
Add a Material in a CATPart context.
Dtk_ErrorStatus AddVirtualComponentInstance(const Dtk_ID &inDocId, const Dtk_string &inInstanceName, const Dtk_transfo &inTransfo, Dtk_ID &outInstanceId)
Add an instance to a DocID into the Current (Sub/Root) CATProduct.
Dtk_ErrorStatus SetName(Dtk_string inName)
Dtk_ErrorStatus ProcessAsm(const Dtk_string &inResultDirectory, const Dtk_string &inInputFilesDirectory)
Writes a CATProduct assembly: one sub-product referencing a CATPart and one instanced directly from a...
Definition: testlibcatiav5write.cpp:380
This class provides several options to tunes CatiaV5 Writter. It must be provided to catiav5w::InitWr...
Definition: catiav5w.hpp:41
void setOrigin(const Dtk_pnt &O)
Set a new O center point.
@ NodeTypeGeometricSet
Definition: catiav5w.hpp:411
This is the wrapper class handling V5 write material data.
Definition: catiav5w.hpp:99
#define DTK_TRUE
Definition: define.h:726
Dtk_ErrorStatus ProcessPart(const Dtk_string &inOutputFile, const Dtk_string &inReferenceName)
Definition: testlibcatiav5write.cpp:90
Dtk_ErrorStatus SetRenderInfosId(const Dtk_ID &inRenderId)
Dtk_BodyPtr CreateInfinitePlane()
Creates a reference body flagged as an infinite plane (InfiniteGeometryFlag + RefEntityFlag),...
Definition: testcreatecube.cpp:1511
This is a high level string class.
Definition: dtk_string.hpp:53
Dtk_ErrorStatus WriteEntity(const Dtk_EntityPtr &inEntity)
Write the entity provided in parameter.
Definition: dtk_uuid.hpp:8
Dtk_AxisSystemPtr CreateAxisSystem()
Creates a named axis system with a custom orientation matrix, red color, layer 123,...
Definition: testcreatecube.cpp:1541
#define DTK_FALSE
Definition: define.h:727
Dtk_ErrorStatus OverrideInstanceColorWithPathID(const PathID &inInstancePathId, const Dtk_RGB &inInstanceColor)
Override the Color of an instance in a Sub Product.
Dtk_ErrorStatus CreateNode(const NodeType &inNodeType, const Dtk_string &inNodeName=Dtk_string())
Create a node in the Specification Tree.
Dtk_ErrorStatus InitProduct(const Dtk_string &inFileName, const Dtk_string &inReferenceName, const catiav5w::FileDescription &inFileDescription=catiav5w::FileDescription())
Initialize a sub Product during CATProduct process.
Dtk_ErrorStatus SetBlankedStatus(const Dtk_Int32 &inBlankedStatus)
Dtk_ErrorStatus CreateCGRDocId(const Dtk_string &inCGRFileName, const Dtk_string &inCGRName, Dtk_ID &outDocId)
Create a CGR Reference and DocID related to a given CGR File.
const Dtk_string & inReferenceName
Definition: catiav5w.hpp:432
Dtk_ErrorStatus InitPart(const Dtk_string &inOutputFile, const Dtk_string &inReferenceName, Dtk_UUID &outPartUUID, const catiav5w::FileDescription &inFileDescription=catiav5w::FileDescription())
Initialize the part
int replace(const int &old_char, const int &new_char)
Replaces all occurrences of a character in a string with a new character.
Dtk_BodyPtr CreatePoint()
Creates a wireframe body containing a single named red point with metadata.
Definition: testcreatecube.cpp:1483
@ NodeTypePartBody
Definition: catiav5w.hpp:412
Dtk_ErrorStatus EndVirtualComponent(Dtk_ID &outDocId)
End - and write - the virtual component initialized by catiav5w::InitVirtualComponent.
static Dtk_SmartPtr< Dtk_Entity > DtkDynamicCast(const Dtk_SmartPtr< T2 > &p)
Definition: util_ptr_dtk.hpp:101
Dtk_ErrorStatus AddInstance(const Dtk_ID &inDocId, const Dtk_string &inInstanceName, const Dtk_transfo &inTransfo, Dtk_ID &outInstanceId)
Add an instance to a DocID into the Current (Sub/Root) CATProduct.
Dtk_ErrorStatus
Definition: error_dtk.hpp:6
Dtk_bool IsNULL() const
Definition: util_ptr_dtk.hpp:118
Dtk_ErrorStatus CreateV4ModelDocId(const Dtk_string &inV4ModelFileName, const Dtk_string &inV4ModelName, Dtk_ID &outDocId)
Create a V4 Model Reference and DocID related to a given V4 Model File.
Definition: util_ptr_dtk.hpp:37
Dtk_string dtkTypeError(Dtk_Int32 errNumero)
Dtk_ErrorStatus EndWrite()
Free the Catia V5 Writer
Dtk_ErrorStatus SetFileRelease(const Dtk_UInt32 inRelease)
Sets the release for the written files.
const char * c_str() const
Retrieve the ASCII conversion string.
Dtk_ErrorStatus CreatePartDocId(const Dtk_string &inPartFileName, const Dtk_string &inPartName, Dtk_ID &outDocId)
Create a Part Reference and DocID related to a given CATPart.
Dtk_LayerInfosSetPtr CreateSetWithFilters()
Creates a layer info set with 9 layers and 2 named layer filters grouping subsets of those layers.
Definition: testcreatelayerinfoset.cpp:27
Dtk_ID MaterialId
Definition: catiav5w.hpp:27
Dtk_MeshPtr CreateMeshCylinder(int nbpoints)
Mesh Cylinder sample.
Definition: testcreatemesh.cpp:338
int mkdir() const
File Utility : Create a Directory.
Dtk_ErrorStatus SetLayer(const Dtk_Int32 &inLayer)
This is a mathematical point class.
Definition: dtk_pnt.hpp:20
void FixPathSeparator()
File Utility : Fixes path separator consistency. It lets you replace the '\' or '/' by the OS needed ...
static Dtk_CameraPtr Create()
Calls default constructor to allocate a new object.
This is a high level array class.
Definition: util_stl_dtk.hpp:84
Dtk_BodyPtr CreateCube()
Creates a 100x100x100 mm closed BRep cube body. Builds the full BRep hierarchy (Vertex,...
Definition: testcreatecube.cpp:1325
Dtk_ErrorStatus EndProduct(Dtk_ID &outDocId)
Write effectively the Sub Product initialized by catiav5w::InitProduct.
std::wstring resolvePath(const std::wstring &inRelativePath)
Definition: testlibcatiav5write.cpp:26
Dtk_ErrorStatus CloseCurrentNode()
close the current node previously created by catiav5w::CreateNode.
Dtk_ErrorStatus SetLayerData(const Dtk_LayerInfosSetPtr &inLayerDataSet)
Set Layer and LayerFilter Data in a CATPart context.
Dtk_BodyPtr CreateCurves()
Creates a wireframe body containing a circle, ellipse, line, and NURBS curve, each with a distinct co...
Definition: testcreatecube.cpp:1368
Dtk_ErrorStatus WriteNamedView(const Dtk_ModelDisplayPtr &inNamedView)
Write the given ModelDisplay as NamedView - V5 camera -.
Dtk_ErrorStatus EndPart()
Free data allocated by catiav5w::InitPart
@ dtkNoError
Definition: error_dtk.hpp:151
void push_back(const T &x)
Inserts an element at the end of the array.
Definition: util_stl_dtk.hpp:416
Dtk_ErrorStatus InitWrite(const Dtk_string &inLogFile, Licence_dtk inLicFct, const WriteOptions &inOptions=WriteOptions())
Initialize the Catia V5 Writer
Definition: dtk_rgb.hpp:8
Dtk_ErrorStatus SetColor(const int &R, const int &G, const int &B)
Dtk_ErrorStatus WriteLayerData()
Definition: testlibcatiav5write.cpp:53
This is a mathematical direction class.
Definition: dtk_dir.hpp:14
Dtk_ErrorStatus OverrideBlankedStatusWithPathID(const PathID &inInstancePathId, const Dtk_bool inBlankedStatus)
Override the Blanked Status of an instance in a Sub Product.
Dtk_ErrorStatus WriteBodyMaterial(const Dtk_InfoPtr &inNodeInfo)
Definition: testlibcatiav5write.cpp:64
Dtk_BodyPtr CreateOpenShell()
Creates an open shell body containing a single trimmed cylindrical surface (half cylinder,...
Definition: testcreatecube.cpp:1353