See OdDbPolygonMesh class. You can get MxN array of vertices.
See OdReadEx sample for details.
See OdDbPolyfaceMesh class. You can get a set of vertices and faces.
You can use oddbGetObjectMesh from DbSubDMesh.h. Alternative way is decomposeForSave (see CDwgView::OnEditAcisConversion from OdaMfcApp example application).
'COMPARE' command essentially inserts other drawing as an xref in the model space, then walks through the entities in the model and xref comparing them one by one. Resulting differences are grouped by extents and a polyline ("revision cloud") is generated around them (in the host model).
Sets the DWGCODEPAGE value in the specified OdDbDatabase instance.
\param db [in] Database. \param val [in] Value for DWGCODEPAGE. \remarks
This function provides write access to "Read-Only" system variables. It may be used to bypass non-implemented Drawings functionality or to repair drawings.
*/ TOOLKIT_EXPORT void odDbSetDWGCODEPAGE( OdDbDatabase& db, OdCodePageId val);
Block Reference is like any other entity: if it has ByBlock properties, than values from another stack level are used in case of nested blocks.
See Drawings/Examples/OdWriteEx/DbFiller.cpp Search for OdDbAttributeDefinition.
Please find OdDbDimension class and classes derived from it in our documentation. https://docs.opendesign.com/td/db_dimensions.html
You can use selection filter in OdDbSelectionSet query to exclude unnecessary entities from result selection set:
/** \details Filter selection only. \param vpId [in] id of OdDbViewportTableRecord record or OdDbViewport entity in which to select. \param nPoints [in] Number of points into selection shape. \param wcsPts [in] Selection shape as set of World Coordinate Space points. \param mode [in] Selection mode. \param sm [in] Subentities selection mode. \param pFilter [in] object of type OdDbSelectionFilter or pointer to a OdResBuf chain defining the filter. */ static OdDbSelectionSetPtr select( const OdDbObjectId& vpId, int nPoints, const OdGePoint3d* wcsPts, OdDbVisualSelection::Mode mode = OdDbVisualSelection::kCrossing, OdUInt32 sm = OdDbVisualSelection::kDisableSubents, const OdRxObject* pFilter = 0);
Please see Drawings SDK Developer Guide.
I tried to open the DWG in AutoCad 2020. A message showed up warning 'It made by unauthorized application'.
This message indicates that the file was created with a non-Autodesk(c) software. As we are independent from Autodesk(c) this message must appear (with both regular and trial archives) as otherwise it will be a violation of the legal terms.
Yes, it is possible, but for this action you need to set specific option in the device called blocks cache.
Model Space of the drawing contains single entity - Block Reference. Use explode() or explodeGeometry() fo it. See ODA Documentation for details.
Please see the Developer's Guide.
Note that ODA login required.
Does Drawings SDK provide a component that can be embedded into existing applications (specifically C# WPF)?
Our SDK is written in cross-platform C++. But we have .NET wrappers that can be used for a C# application. We also have a set of C# examples including one for WPF.