DATAKIT SDK  V2026.2
solidworksw.hpp
Go to the documentation of this file.
1 #ifndef __DTK_SOLIDWORKSW_H__
2 #define __DTK_SOLIDWORKSW_H__
3 #include "def/define.h"
4 #include "struct/str_def.h"
9 #include "util/util_draw_dtk.hpp"
10 #include "util/util_stl_dtk.hpp"
11 ////////////////////////////////////////////////////////////
12 // solidworksw.h //
13 ////////////////////////////////////////////////////////////
14 
15 //! \brief Exported APIs for solidworks Write Library
16 
17 namespace sw
18 {
19  namespace sww
20  {
21  //language for writing part and assembly
22  enum language
23  {
24  french = 0,
25  english = 1,
26  italian = 2,
27  deutch = 3,
28  chinese = 4
29  };
30 
31  //! \class FileDescription
32  //! \brief This class provides several informations about a Solidworks File.\n
33  //! It can be used with sw::OpenPart and OpenAssembly functions to specify file properties.
34  //! \code
35  //! //...
36  //! FileDescription sw::sww::Desc;
37  //! Dtk_ErrorStatus dtkerror;
38  //! dtkerror= sw::sww::OpenPart( inOutputFile, Desc);
39  //! //...
40  //! \endcode
42  {
43  public:
44 
45  protected:
46 
48 
49  public:
50 
51  //! \BaseConstructor
53  {
54  }
55 
56  //! \BaseDestructor
58  {
59  }
60 
61  //! \BaseConstructor
62  FileDescription( const Dtk_tab< Dtk_MetaDataPtr >& inArrayProperties ) :_AdditionalProperties( inArrayProperties )
63  {
64  };
65 
66  //! \brief Get Metadata Array - read only -
68  {
69  return _AdditionalProperties;
70  }
71 
72  //! \brief Add Metadata - read only -
73  void AddMetadata( Dtk_MetaDataPtr& inMetadata );// {if (inMetadata.IsNotNULL()) {_AdditionalProperties.push_back(inMetadata);}}
74 
75  //! \brief Clear Array - read only -
76  void Clear()
77  {
78  return _AdditionalProperties.clear();
79  }
80 
81  };
82 
83  //! \class Instance
84  //! \brief This class provides Instance about a Solidworks File.\n
85  //! It can be used with sw::sww::OpenAssembly functions to Add Instance
86  //! \code
87  //! //...
88  //! soldiworksw::Instance instance;
89  //! Dtk_ErrorStatus dtkerror;
90  //! dtkerror = sw::sww::AddInstance( instance);
91  //! //...
92  //! \endcode
93  class Instance
94  {
95  public:
96 
97  protected:
98 
101  Dtk_string _ConfigurationName; // configuration index is always 0 because we only write one config per file
106  public:
107 
108  //! \BaseConstructor
110  {
111  _Color = Dtk_RGB( -1, -1, -1, -1 );
113  }
114 
115  //! \BaseDestructor
117  {
118  }
119 
120  //! \BaseConstructor
121  Instance( const Dtk_string& inSolidfileName, const Dtk_string& inInstanceName, const Dtk_transfo& inTransfo, const Dtk_RGB& inColorInstance = Dtk_RGB( -1, -1, -1, -1 ), const Dtk_Int32& inBlankedStatus = DTK_FALSE, const Dtk_string& inConfigurationName = Dtk_string() ) :
122  _Name( inSolidfileName ), _InstanceName( inInstanceName ), _Matrix( inTransfo ), _Color( inColorInstance ), _BlankedStatus( inBlankedStatus ), _ConfigurationName( inConfigurationName )
123  {
124 
125  };
126 
128  {
129  return _Name;
130  };
131 
133  {
134  return _InstanceName;
135  };
136 
138  {
139  return _ConfigurationName;
140  };
141 
143  {
144  return _Matrix;
145  };
146 
147  const Dtk_RGB& GetColor()
148  {
149  return _Color;
150  };
151 
153  {
154  return _BlankedStatus;
155  };
156 
157  void AddMetadata( const Dtk_tab<Dtk_MetaDataPtr>& inArrayMetadata )
158  {
159  m_ArrayMetadata = inArrayMetadata;
160  };
161 
163  {
164  return m_ArrayMetadata;
165  };
166  };
167 
168  //! \brief ONLY for PSKERNEL user
169  //! \return dtkNoError if it is OK.
170  //! \remark Informs that the session is started
171  //! \param [in] inStop : set -1 after StartParasolid
172  void SetIsAlreadyStart( const Dtk_Int32& inStop );
173 
174  //! \brief Initialize the Solidworks Writer
175  //! \return dtkNoError if it is OK.
176  //! \remark This is the first function called for the writer.
177  //! \param [in] inLogFile : Log file
178  //! \param [in] inLicFct : Licence fuction or Null
179  //! \param [in] inLanguage : by default sw::sww::english
181 
182  //! \brief Free the Solidworks Writer
183  //! \return dtkNoError if it is OK.
184  //! \remark used at the last function used for the writer.
186 
187  //! \brief option to store the body color
188  //! \param [in] inStoreBodyColor : used DTK_TRUE for enabled
189  //! \remark used after InitWriter
190  void OptionStoreBodyColor( Dtk_Int32 inStoreBodyColor );
191 
192  //! \brief option to not store the comment
193  //! \param [in] inRemoveComment : used DTK_TRUE for not removing comment
194  //! \remark used after InitWriter
195  void OptionRemoveComment( Dtk_Int32 inRemoveComment );
196 
197  //! \brief Initialize the part
198  //! \remark used at the beginning of conversion.
199  //! \param [in] inOutputFile : Name of the Solidworks Part (sldprt) file to be Written.
200  //! \param [in] inFileDescription : Description File
201  //! \param [in] inConfigurationName : Name of the Configuration of the Solidworks Part (sldprt) file to be Written.
202  //! \remarks The given path into inOutputFile must exist and you must have write permission in this folder.
204  const Dtk_string& inSolidworksFile,
206  Dtk_Unit inUnit = DTK_UNIT_MM,
207  const Dtk_string& inConfigurationName = Dtk_string() );
208 
209  //! \brief Add parasolid file
210  //! \param [in] inParasolidFile : Name of the Parasolid File to be added.
211  //! \remarks only work with pskernel writer.
212  Dtk_ErrorStatus AddParasolidFile( const Dtk_string& inParasolidFile );
213 
214  //! \brief Add parasolid stream with only one body without header
215  //! \param [in] inFlux : parasolid flux from one body
216  //! \param [in] inSize : size of inFlux
217  //! \param [in] inInfo : info for body
218  Dtk_ErrorStatus AddParasolidBodyStream( const char* inFlux, size_t inSize, const Dtk_InfoPtr& inInfo );
219 
220  //! \brief Add parasolid Id body
221  //! \param [in] inParasolidId : Id of the Parasolid body to be added.
222  //! \remarks only work with pskernel writer.
223  Dtk_ErrorStatus AddParasolidId( const Dtk_Int32& inParasolidId );
224 
225  //! \brief Write the entity provided in parameter.
226  //! \param [in] inEntity : The Entity to be written
227  //! \return dtkNoError if it is OK.
228  //! \remark This function is used to write entities .
230 
232 
233  //! \brief Free data allocated by sw::sww::OpenPart
234  //! \return dtkNoError if it is OK.
235  //! \remark used at the end of conversion.
237 
238  //! \brief Initialize a Assembly .
239  //! \param [in] inFileName : Name of the Solidworks Assembly (sldasm) file to be written.
240  //! \param [in] inConfigurationName : Name of the configuration of the Solidworks Assembly (sldasm) file to be written.
241  //! \param [in] inFileDescription : Description File
242  //! \return dtkNoError if it is OK.
243  //! \remarks The given path into inFileName must exist and you must have write permission in this folder.
245  const Dtk_string& inFileName,
247  Dtk_Unit inUnit = DTK_UNIT_MM,
248  const Dtk_string& inConfigurationName = Dtk_string() );
249 
250  //! \brief Add an instance into the Current Assembly (sldasm).
251  //! \param [in] inInstance : Instance definitionwith (Full path name , instance name and position.
252  //! \return dtkNoError if it is OK.
254 
255 
256  //! \brief Write effectively the Assembly initialized by OpenAssembly.
257  //! \return dtkNoError if it is OK.
259  };
260 }
261 
262 #endif
Dtk_transfo
This is the Transformation dedicated class.
Definition: dtk_transfo.hpp:19
sw::sww::language
language
Definition: solidworksw.hpp:23
sw::sww::Instance::GetInstanceName
const Dtk_string & GetInstanceName()
Definition: solidworksw.hpp:132
sw::sww::OpenPart
Dtk_ErrorStatus OpenPart(const Dtk_string &inSolidworksFile, const sw::sww::FileDescription &inFileDescription=sw::sww::FileDescription(), Dtk_Unit inUnit=DTK_UNIT_MM, const Dtk_string &inConfigurationName=Dtk_string())
Initialize the part
sw::sww::Instance::GetColor
const Dtk_RGB & GetColor()
Definition: solidworksw.hpp:147
sw::sww::AddParasolidId
Dtk_ErrorStatus AddParasolidId(const Dtk_Int32 &inParasolidId)
Add parasolid Id body.
sw::sww::italian
@ italian
Definition: solidworksw.hpp:26
sw::sww::OptionRemoveComment
void OptionRemoveComment(Dtk_Int32 inRemoveComment)
option to not store the comment
catiav5w::inTransfo
const Dtk_string const Dtk_transfo & inTransfo
Definition: catiav5w.hpp:622
sw::sww::OptionStoreBodyColor
void OptionStoreBodyColor(Dtk_Int32 inStoreBodyColor)
option to store the body color
Dtk_string
This is a high level string class.
Definition: dtk_string.hpp:53
sw::sww::Instance::_ConfigurationName
Dtk_string _ConfigurationName
Definition: solidworksw.hpp:101
sw::sww::Instance::~Instance
~Instance()
Destructor.
Definition: solidworksw.hpp:116
dtk_metadata.hpp
sw::sww::Instance::AddMetadata
void AddMetadata(const Dtk_tab< Dtk_MetaDataPtr > &inArrayMetadata)
Definition: solidworksw.hpp:157
DTK_UNIT_MM
@ DTK_UNIT_MM
Definition: util_draw_dtk.hpp:76
sw::sww::FileDescription::GetAdditionalProperties
const Dtk_tab< Dtk_MetaDataPtr > & GetAdditionalProperties() const
Get Metadata Array - read only -.
Definition: solidworksw.hpp:67
DTK_FALSE
#define DTK_FALSE
Definition: define.h:720
util_draw_dtk.hpp
sw::sww::AddParasolidBodyStream
Dtk_ErrorStatus AddParasolidBodyStream(const char *inFlux, size_t inSize, const Dtk_InfoPtr &inInfo)
Add parasolid stream with only one body without header.
catiav5w::inBlankedStatus
const Dtk_string const Dtk_transfo const Dtk_bool inBlankedStatus
Definition: catiav5w.hpp:623
sw::sww::FileDescription::FileDescription
FileDescription()
Default constructor.
Definition: solidworksw.hpp:52
sw
Exported APIs for solidworks Write Library.
Definition: solidworksw.hpp:18
Dtk_Unit
Dtk_Unit
Definition: util_draw_dtk.hpp:73
sw::sww::FileDescription::_AdditionalProperties
Dtk_tab< Dtk_MetaDataPtr > _AdditionalProperties
Definition: solidworksw.hpp:47
sw::sww::Instance
This class provides Instance about a Solidworks File. It can be used with sw::sww::OpenAssembly funct...
Definition: solidworksw.hpp:94
sw::sww::Instance::_Matrix
Dtk_transfo _Matrix
Definition: solidworksw.hpp:102
sw::sww::Instance::GetBlankedStatus
const Dtk_Int32 & GetBlankedStatus()
Definition: solidworksw.hpp:152
sw::sww::AddParasolidFile
Dtk_ErrorStatus AddParasolidFile(const Dtk_string &inParasolidFile)
Add parasolid file.
sw::sww::InitWriter
Dtk_ErrorStatus InitWriter(const Dtk_string &inLogFile, Licence_dtk inLicFct, sw::sww::language inLanguage=sw::sww::english)
Initialize the Solidworks Writer
sw::sww::Instance::m_ArrayMetadata
Dtk_tab< Dtk_MetaDataPtr > m_ArrayMetadata
Definition: solidworksw.hpp:105
Dtk_Int32
int32_t Dtk_Int32
Definition: define.h:679
sw::sww::FileDescription::AddMetadata
void AddMetadata(Dtk_MetaDataPtr &inMetadata)
Add Metadata - read only -.
sw::sww::AddMetaData
Dtk_ErrorStatus AddMetaData(const Dtk_MetaDataPtr &inEntity)
sw::sww::ClosePart
Dtk_ErrorStatus ClosePart()
Free data allocated by sw::sww::OpenPart
sw::sww::AddEntity
Dtk_ErrorStatus AddEntity(const Dtk_EntityPtr &inEntity)
Write the entity provided in parameter.
sw::sww::FileDescription
This class provides several informations about a Solidworks File. It can be used with sw::OpenPart an...
Definition: solidworksw.hpp:42
sw::sww::FileDescription::Clear
void Clear()
Clear Array - read only -.
Definition: solidworksw.hpp:76
sw::sww::Instance::_BlankedStatus
Dtk_Int32 _BlankedStatus
Definition: solidworksw.hpp:104
sw::sww::EndWriter
Dtk_ErrorStatus EndWriter()
Free the Solidworks Writer
sw::sww::FileDescription::FileDescription
FileDescription(const Dtk_tab< Dtk_MetaDataPtr > &inArrayProperties)
Default constructor.
Definition: solidworksw.hpp:62
sw::sww::CloseAssembly
Dtk_ErrorStatus CloseAssembly()
Write effectively the Assembly initialized by OpenAssembly.
sw::sww::Instance::GetName
const Dtk_string & GetName()
Definition: solidworksw.hpp:127
Dtk_ErrorStatus
Dtk_ErrorStatus
Definition: error_dtk.hpp:6
sw::sww::chinese
@ chinese
Definition: solidworksw.hpp:28
Dtk_SmartPtr
Definition: util_ptr_dtk.hpp:37
sw::sww::OpenAssembly
Dtk_ErrorStatus OpenAssembly(const Dtk_string &inFileName, const sw::sww::FileDescription &inFileDescription=sw::sww::FileDescription(), Dtk_Unit inUnit=DTK_UNIT_MM, const Dtk_string &inConfigurationName=Dtk_string())
Initialize a Assembly .
sw::sww::Instance::_InstanceName
Dtk_string _InstanceName
Definition: solidworksw.hpp:100
catiav5w::inFileDescription
const Dtk_string const catiav5w::FileDescription & inFileDescription
Definition: catiav5w.hpp:460
dtk_transfo.hpp
sw::sww::Instance::_Name
Dtk_string _Name
Definition: solidworksw.hpp:99
str_def.h
sw::sww::Instance::GetMatrix
const Dtk_transfo & GetMatrix()
Definition: solidworksw.hpp:142
util_stl_dtk.hpp
sw::sww::english
@ english
Definition: solidworksw.hpp:25
sw::sww::AddInstanceComponent
Dtk_ErrorStatus AddInstanceComponent(Instance &inInstance)
Add an instance into the Current Assembly (sldasm).
sw::sww::Instance::GetMetadata
const Dtk_tab< Dtk_MetaDataPtr > & GetMetadata()
Definition: solidworksw.hpp:162
define.h
sw::sww::FileDescription::~FileDescription
~FileDescription()
Destructor.
Definition: solidworksw.hpp:57
Dtk_tab
This is a high level array class.
Definition: util_stl_dtk.hpp:84
Pdfw::inInfo
Dtk_tab< Dtk_dir > Dtk_ID Dtk_InfoPtr inInfo
Definition: pdfw.hpp:677
sw::sww::deutch
@ deutch
Definition: solidworksw.hpp:27
dtk_string.hpp
sw::sww::french
@ french
Definition: solidworksw.hpp:24
catiav5w::inInstanceName
const Dtk_string & inInstanceName
Definition: catiav5w.hpp:621
dtk_rgb.hpp
Dtk_RGB
Definition: dtk_rgb.hpp:7
sw::sww::Instance::_Color
Dtk_RGB _Color
Definition: solidworksw.hpp:103
Licence_dtk
char *(* Licence_dtk)(char *)
Definition: str_def.h:71
sw::sww::Instance::Instance
Instance()
Default constructor.
Definition: solidworksw.hpp:109
sw::sww::Instance::Instance
Instance(const Dtk_string &inSolidfileName, const Dtk_string &inInstanceName, const Dtk_transfo &inTransfo, const Dtk_RGB &inColorInstance=Dtk_RGB(-1, -1, -1, -1), const Dtk_Int32 &inBlankedStatus=DTK_FALSE, const Dtk_string &inConfigurationName=Dtk_string())
Default constructor.
Definition: solidworksw.hpp:121
sw::sww::Instance::GetConfigurationName
const Dtk_string & GetConfigurationName()
Definition: solidworksw.hpp:137
sw::sww::SetIsAlreadyStart
void SetIsAlreadyStart(const Dtk_Int32 &inStop)
ONLY for PSKERNEL user.