Как включить передачу слоев в ассоциативном виде???

Автор EvgeniusWeisses, 29.06.19, 10:59:42

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

EvgeniusWeisses

            using Kompas6API7;
            using Kompas6Constants;
            using KAPITypes;
            using Kompas6API5;
         
       IViews pViews;
            IView pView;
            IAssociationView aView;
            IViewsAndLayersManager pViewsAndLayersManager;
       IKompasDocument2D kompas;
       IKompasDocument2D komDoc2D;
            Document2D Doc;
       IApplication Kompas7;
            IAssociationViewElements asviewelem;
         
            kompas = (KompasObject)Marshal.GetActiveObject("KOMPAS.Application.5");
            Doc = (Document2D)kompas.ActiveDocument2D();
            Doc.ksRebuildDocument();
            Kompas7 = kompas.ksGetApplication7();
            komDoc2D = (IKompasDocument2D)Kompas7.ActiveDocument;
            pViewsAndLayersManager = komDoc2D.ViewsAndLayersManager;
            pViews = pViewsAndLayersManager.Views;
            aView = (IAssociationView)pViews.ActiveView; //получаем активный вид
       asviewelem = (IAssociationViewElements)aView;
           
        В IAssociationViewElements нет такого метода как IAssociationViewElements.ProjectLayers;
   Как включить передачу слоев в ассоциативном виде??? На форуме нет. Пишу на C#, хотя какая разница, метода все-равно нет, то как быть?
         
И еще подскажите как изменить слой для 3D объекта. Все это делаю для того чтобы получить имя детали по позиции на чертеже. Сначала необходимо каждой детали в 3д сборке назначить слой(как это сделать), потом перенести слои на вид(не знаю как сделать), потом на 2д чертеже найти ближайший к точке объект(Document2D.ksFindObj()) и получить его номер (IObject.LayerNumber), а потом по этому номеру получить(как получить) имя и обозначение компонента в 3д сборке.