Body est un conteneur générique pour un corps ACIS qui ne rentre pas strictement dans les catégories Solid3d (volume solide) ou Region (zone plane). Il est souvent utilisé pour :
- Corps de feuille (surfaces).
- Corps filaires (filaire 3D).
- Corps résultant d'opérations booléennes échouées ou d'états indéterminés.
- Conversion entre d'autres formats 3D.
Autodesk.AutoCAD.DatabaseServices
System.Object
└─ RXObject
└─ DBObject
└─ Entity
├─ Body
Hérite de la plupart des propriétés de Entity.
| Propriété | Type | Description |
|---|---|---|
IsNull |
bool |
Vrai si le pointeur ACIS interne est nul. |
| Méthode | Type de Retour | Description |
|---|---|---|
SetBody(IntPtr) |
void |
Définit le pointeur de corps ACIS interne (Avancé). |
GetBody() |
IntPtr |
Obtient le pointeur de corps ACIS interne. |
// Les corps sont rarement créés directement via "new Body()".
// Ils résultent généralement d'opérations de modélisation ou d'importation.
Body body = ent as Body;
if (body != null)
{
// C'est un corps ACIS générique
}// Parfois, une analyse détaillée nécessite de traiter un solide comme un corps générique
// C'est plus courant en ObjectARX (C++) qu'en .NETusing Autodesk.AutoCAD.BoundaryRepresentation;
// Utiliser l'API BREP pour analyser la topologie
using (Brep brep = new Brep(someEntity))
{
foreach (Autodesk.AutoCAD.BoundaryRepresentation.Face face in brep.Faces)
{
// Analyser les faces du body/solide/région
}
}// Comme Body est générique, il est difficile de savoir ce que c'est (Feuille ? Fil ?)
// Souvent la vérification des propriétés de masse ou l'utilisation de l'API Brep est nécessaire.// Les fichiers STEP/IGES importés arrivent souvent comme Bodies
// Les exploser peut donner des Surfaces ou des Courbes
DBObjectCollection parts = new DBObjectCollection();
body.Explode(parts);if (!body.IsNull)
{
// valide
}// Body est souvent utilisé comme pont vers des noyaux externes ou des fichiers SAT hérités// Un "Corps Feuille" (surface) en termes ACIS est souvent enveloppé comme une entité Body dans AutoCAD
// plutôt qu'une entité Surface (qui est plus récente).- Préférer les Types Spécifiques : Utilisez les classes
Solid3douSurfacesi possible.Bodyest un repli fourre-tout. - API Brep : Pour faire quelque chose d'utile avec un
Body(mesurer, analyser), vous avez généralement besoin du namespaceAutodesk.AutoCAD.BoundaryRepresentation. - Performance : Comme tous les wrappers ACIS, ils sont lourds. Libérez (Dispose) quand c'est fini.