Programmation

Développement ObjectARX AutoCAD :
Module de conception de façades (mur Bois/Bloc)

Programmation

Programmation

Evaluez vos connaissances sur AutoCAD :
Questionnaires sur les Xréfs et sur les Blocs.

Code ObjectARX, C# et API



Extraits de code pour tester l’existence d’une présentation dans le dessin :


ObjectARX C++ API
const ACHAR* acPresentation = ACRX_T("TEST");
AcApLayoutManager *adrClManager = (AcApLayoutManager*)acDbHostApplicationServices()->layoutManager();

assert(adrClManager != NULL);

AcDbLayout *adrMsPage = adrClManager->findLayoutNamed(acPresentation, false);

if (adrMsPage == NULL)        
    acutPrintf(_T("\n Présentation \"%s\" n'existe pas."), acPresentation);
else
    acutPrintf(_T("\n Présentation \"%s\" existe."), acPresentation);
 
▲haut de page

C#
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
Database adrDB = HostApplicationServices.WorkingDatabase;
string stPresentation = "TEST";

using (Transaction tr = adrDB.TransactionManager.StartTransaction())
{
    DBDictionary presentDict = tr.GetObject(adrDB.LayoutDictionaryId, OpenMode.ForRead, false) as DBDictionary;
    bool clcExiste = false;
    foreach (DBDictionaryEntry present in presentDict)
    {                    
        Layout tmpPresent = tr.GetObject(present.Value, OpenMode.ForRead) as Layout;
        if (tmpPresent.LayoutName == stPresentation)
        {                        
            clcExiste = true;
            break;
        }
    }

    if (!clcExiste)
        ed.WriteMessage(string.Format("\n Présentation \"{0}\" n'existe pas.", stPresentation));
    else
        ed.WriteMessage(string.Format("\n Présentation \"{0}\" existe.", stPresentation));

    tr.Commit();
}
 
▲haut de page