Перейти к публикации

Новичок в API


Рекомендованные сообщения

Добрый день.

Подскажите пожалуйста, как посмотреть логи подключения библиотеки к Компасу?

По совету интернетов, собрал "Step2" из SDK. Но при подключении к Компасу - ругань.

Скрытый текст

K62pEDY7QO.png

Через панельку ActiveX тоже не работает. Хотя там в списке библиотека есть

Удалил библиотеку из конфигурации.

Попробовал просто добавить через ActiveX - ошибка и список пуст.

Изменено пользователем streamdown
Ссылка на сообщение
Поделиться на других сайтах


UnPinned posts
46 минут назад, streamdown сказал:

А вы попробуйте туда подсунуть part7

Фрагмент перебора массива с элементами сборки

Dim docKomp7 As KompasAPI7.Documents= gAppAccess7.Documents 'интерфейс документов

Dim nP As KompasAPI7.Part7

For z = 0 To UBound(mPartSBexALL) 'UBound(mPartSBex)
            nP = mPartSBexALL(z) ' mPartSBex(z)
            nK = sbMod.InstanceCount(nP)
            ReDim Preserve masPartALL(masPartALL.GetUpperBound(0) + 1)
            masPartALL(masPartALL.GetUpperBound(0)) = nP
            nFeat = nP
            propKeep = nP 'для чтения свойств
            Dim mKomp As Object = propMn.GetProperties(docKomp7.Item(nP.FileName))
            Dim sTyp As String = readPropKMP(mKomp, 20, "Раздел спецификации")
            If sTyp Is Nothing Then
                If nP.Standard Then sTyp = "Стандартные изделия" Else sTyp = "Детали" 'не всегда раздел присвоен явно в компасе
            End If
            Dim sNumber As String = readPropKMP(mKomp, 4)

.....

 

Ссылка на сообщение
Поделиться на других сайтах
44 минуты назад, kvin сказал:

readPropKMP(mKomp, 20, "Раздел спецификации")

Это я так понял с указанием имени. А если я их не знаю? Т.е. хочу все перебрать

45 минут назад, kvin сказал:

readPropKMP

вот это можете ещё показать? Пожалуйста.

Ссылка на сообщение
Поделиться на других сайтах
15 часов назад, streamdown сказал:

Это я так понял с указанием имени. А если я их не знаю? Т.е. хочу все перебрать

Это функция получения конкретного свойства из массива. Вывод всех свойств аналогичен...

 

Function readPropKMP(ByVal mArProp As Object, ByVal ID As Double, Optional ByVal sN As String = "") As Object
        'читаем свойство из массива свойств mArProp
        'ID=4 - обозначение; 5 - Наименование ; 9 - материал; 10 - плотность кг/м.куб
        '15 - позиция; 20 - раздел спецификации
        '21 - разработал; 22 - проверил; 23 - утвердил; 24 - т.контроль; 25 - н.контроль
        'Типоразмер(173984476184)
        Dim nProp As KompasAPI7._Property 'свойство
        Dim z As Integer
        Dim sVal As Object = Nothing
        Dim sF As Boolean
        For z = 0 To UBound(mArProp)
            nProp = mArProp(z)
            If nProp.Id = ID Or nProp.Name = sN Then
                If propKeep.GetPropertyValue(nProp, sVal, True, sF) Then
                    readPropKMP = sVal '+ sF.ToString.ToUpper
                Else
                    readPropKMP = Nothing
                End If
                Exit Function
            End If
        Next
        readPropKMP = Nothing
    End Function

Ссылка на сообщение
Поделиться на других сайтах

@kvin добрый день. Подскажите пожалуйста


 

IPropertyMng propertyManager = (IPropertyMng) app;

IPart7 part;// Компонент, полученный при переборе сборки

var propertyKeeper = (IPropertyKeeper) part;

//перебираем все свойства, полученные от  propertyManager.GetProperties

...

var prp = (_Property) prop;

propertyKeeper.SetPropertyValue(prp, founded.Name, true);

 

При таком способе задания, свойства попадают на уровень компонентов сборки, но если открыть отдельно деталь, то там этих свойств нет. Так и задумано?

Изменено пользователем streamdown
Ссылка на сообщение
Поделиться на других сайтах
10 часов назад, streamdown сказал:

При таком способе задания, свойства попадают на уровень компонентов сборки, но если открыть отдельно деталь, то там этих свойств нет. Так и задумано?

Да вот такое странное поведение Компаса

 

Компас - хранит (зачем-то) 2 значения основных свойств - одно принадлежит сборке другое детали

отсюда сделаем несколько пояснений:

1. Для синхронизации свойств из ДСЕ в сборку (только в этом направлении) - есть кнопка - По источнику

По источнику.png

 

2. Возможная причина появления - использование одной ДСЕ  в разных сборках с разными свойствами

насколько помню такое поведение обсуждалось в ветке SW

как по мне, такое поведение - требуется крайне редко и может приводить к рассогласованию значению свойств

т.е. ИМХО больше вреда чем пользы

 

Совет

проделывать в ручную действия прежде чем автоматизировать

Ссылка на сообщение
Поделиться на других сайтах

ИМХО это сделано по причине возможности использования внешних переменных Компаса. 

Ссылка на сообщение
Поделиться на других сайтах
30.04.2022 в 10:11, streamdown сказал:

Так и задумано?

Да, файл может быть один а компонентов сборки несколько (разные наименования и обозначения). Пока не присвоишь всем одинаковое Обозначение - это различные компоненты для Спецификации...

Я назначаю свойства так:

Скрытый текст

 

Public Sub KMP_AtrWriteFile(ByRef spath As String, Optional ByVal bWrite2File As Boolean = False)
        'запись атрибутов в файл компаса: bWrite2File = true - писать свойства и файла модели; false - писать свойства только компонента
        'одинаковых компонентов может быть много, а файл один
        With Glavnaa
            For z As Integer = 0 To masPartALL.GetUpperBound(0)
                If masPartALL(z).FileName = spath Then
                    propKeep = masPartALL(z)
                    'это запись свойств Компонента
                    Dim mArProp As Object = propMn.GetProperties(docKomp7.Item(masPartALL(z).FileName)) '(documentK7) 'массив свойств
                    'наименование .Текст1.Text
                    NewProperti(mArProp, 5, PastPointAtr(.Текст1.Text))
                    'обозначение PastPointAtr(.Текст2.Text)
                    NewProperti(mArProp, 4, PastPointAtr(.Текст2.Text))
                    'мат.обозначение
                    NewProperti(mArProp, 9, PastPointAtr(.Текст4.Text))
                    'плотность
                    NewProperti(mArProp, 10, 7800)
                    ' теперь тоже самое для файла модели
                    If bWrite2File Then
                        Dim docModel As KompasAPI7.IKompasDocument3D
                        docModel = docKomp7.Open(spath, False) 'открываем нужный документ
                        Dim part7 As KompasAPI7.IPart7 = docModel.TopPart
                        propKeep = part7
                        If Not docModel Is Nothing Then
                            mArProp = propMn.GetProperties(docModel) 'массив свойств
                            'наименование .Текст1.Text
                            NewProperti(mArProp, 5, PastPointAtr(.Текст1.Text))
                            'обозначение PastPointAtr(.Текст2.Text)
                            NewProperti(mArProp, 4, PastPointAtr(.Текст2.Text))
                            'мат.обозначение
                            NewProperti(mArProp, 9, PastPointAtr(.Текст4.Text))
                            'плотность
                            NewProperti(mArProp, 10, 7800)
                            'закрываем файл
                            docModel.Close(Kompas6Constants.DocumentCloseOptions.kdSaveChanges)
                        End If
                    End If
                End If
            Next
        End With
    End Sub

 

 Public Sub NewProperti(ByVal mArProp As Object, ByVal ID As Integer, ByVal sNew As Object, Optional ByVal sName As String = "")
        'смена свойства
        'ID=4 - обозначение; 5 - Наименование ; 9 - материал; 10 - плотность кг/м.куб
        '15 - позиция; 20 - раздел спецификации
        '21 - разработал; 22 - проверил; 23 - утвердил; 24 - т.контроль; 25 - н.контроль
        Dim nProp As KompasAPI7._Property 'свойство
        Dim sProp = Nothing 'значение свойства
        Dim z As Integer
        For z = 0 To UBound(mArProp)
            nProp = mArProp(z)
            If nProp.Id = ID Or nProp.Name = sName Then
                If nProp.ReadOnly Then
                    nProp.ReadOnly = False
                    nProp.Update()
                End If
                Dim erB As Boolean
                erB = propKeep.SetPropertyValue(nProp, sNew, True)
                If erB = False Then
                    Debug.Print(nProp.Name & " - ОШИБКА ЗАПИСИ")
                End If
                nProp.Update()
                Exit Sub
            End If
        Next
    End Sub

 

 

Ссылка на сообщение
Поделиться на других сайтах

Добрый день.

А как можно добраться до переключения вида связи свойства у компонента сборки?

Скрытый текст

KOMPAS_R501wdhKlK.png

И сразу вопрос: свойства в Компасе есть и простые и сложные?

К примеру, "Раздел спецификации" - это просто текст или чтоб его обновить у компонента нужно сначала правильно это свойство создать кодом и потом присвоить компоненту?

04.05.2022 в 08:45, kvin сказал:

Я назначаю свойства так:

Понял. Погуглил ещё. Свойства для входящих обычно вносят редактируя этот компонент.

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...
04.05.2022 в 08:45, kvin сказал:

20 - раздел спецификации

Подскажите пожалуйста, а как вы устанавливаете значение для этого свойства? Просто текст туда вроде не подходит.

Ссылка на сообщение
Поделиться на других сайтах
45 минут назад, streamdown сказал:

как вы устанавливаете значение для этого свойства?

Читать читаю, а изменять не было пока необходимости... Если удастся изменить, расскажите как ))

Ссылка на сообщение
Поделиться на других сайтах
  • 3 месяца спустя...

Как настроить отображение точек после номера пункта в технических требованиях через API? 

Ссылка на сообщение
Поделиться на других сайтах
  • 8 месяцев спустя...
29.08.2022 в 13:20, kvin сказал:

Как настроить отображение точек после номера пункта в технических требованиях через API? 

Если ТТ вставляются программно, можно программно проставлять и номера пунктов и точки к ним.

Ссылка на сообщение
Поделиться на других сайтах
  • 1 год спустя...

Картинки к предыдущему сообщению:

Читаю внешние ссылки файла. Среди них имеются ссылки которые никуда не ведут. Можно их как-то убрать?

 

13.jpg

12.jpg

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.



  • Сообщения

    • gudstartup
      если занизите не сможете вести черновую обработку на высоких скоростях.  на практике станкостроители на высокоскоростных оц ставят высокие значения к тому же при динамическом ударе на скорости бх это вообще значения не имеет вы ни разу в суд не обращались и у вашей конторы нет юридической поддержки в случае решения суда в их пользу а иначе никак не освобождает не хотите обращаться в суд тогда меняйте битые шпинделя за свой счет! к тому же после сильного удара происходит изменение геометрии станка и это всегда легко доказывается так что отпираться бесполезно шпиндель уж точно разворачивает 
    • Bot
      Исследование: видеоигры замедляют старение мозга Результаты интеллектуальных тестов более тысячи добровольцев сопоставили со своими анкетами об их образе жизни. На этой выборке видно, что классические подвижные игры (футбол и прочие физические нагрузки) для поддержки когнитивных функций менее эффективны, чем «современные подвижные игры», например, FIFA, GTA и Minecraft, что несколько противоречит массовому представлению о пользе физкультуры для работы мозга. Также выдвинута гипотеза о том, что положительные эмоции и выделение эндорфинов в процессе игры оказываются более значимыми для когнитивных способностей, чем улучшение кровообращения от утренней зарядки. Apple резко сократила производство Vision Pro Пожалуй, было бы скучно по этому поводу говорить об отсутствии достаточного количества задач, соответствующих (в том числе по цене) этому инструменту. Возможно, продуктивнее было бы взглянуть на это как на очень дорогой эксперимент, в частности, расширивший миллионам мозгов [...] View the full article
    • brigval
      Вариант. На последнем листе спецификации можно вставлять примечания. Над основной надписью пишите, например, "См. примеч. 1" и о чем вы хотели сообщить пишите в примечании на последнем листе. А вообще, приведите скриншот. Где не хватает места?    
    • Alex1986
      Вроде как что-то поменялось. https://help.solidworks.com/2024/Russian/SolidWorks/sldworks/t_saving_sw_docs_previous_versions.htm  
    • Viktor2004
      на практике порог ошибки SV0409 выставляется в параметре 2142 или 2104 каким это боком? Вот ни раз мне никто не высказал. Хотя я ни от кого не скрывал что прописал им это туда   не каждый завод честно признается что случай не гарантийный и он готов заплатить за вызов и ремонт какой эксперт? Я ни разу в жизни еще не видел ни одного эксперта в решении таких вопросов. И доводить до суда мы ничего никогда не собираемся. Смогли доказать вину завода, завод платит. Если не платит, прекращаем с ними взаимодействовать. Если не смогли доказать, берем все на себя без разговоров. Если ситуация мутная, договариваемся на обоюдку если завод государственный, очень даже нужны. Факт подачи в суд освобождает их от ответственности перед государством за ситуацию или срыв заказа
    • gudstartup
      на практике чтобы  получить 409 ошибку инструмент должен быть сломан а деталь развальцована в случае таких событий гарантийные обязательства никак не должны возлагаться на фирму осуществившую пнр пусть со станкостроителем бодаются. но если он обнаружит ваши вкрапления в плк то это вам же и  выйдет боком завод сам наказывает операторов и наладчиков и это реадьность. факт удара вам любой эксперт докажет и попросит предоставить данные мониторинга через судебные органы а заводу на фиг не нужны судебные разборки и он во всем сознается 
    • Viktor2004
      надо. Потому что тут конфликт интересов поставщик-завод. И завод не даст мне информацию со своих ресурсов что бы я доказывал его вину
    • TVM
      Изначально эскизы и вспомогательную геометрию (плоскости, исходные точки и тд) не отображаю при активных кнопках "глаза". Разворачиваю  "4 столбца" в дереве и там отображаю или скрываю и т. д. что необходимо по мере надобности.  
    • gudstartup
      менеджмент сейчас сам ставит для диспетчеризации так что вам не надо напрягаться там и камеры и focas мониторинг событий и режимов выполнения техн. программы. где нет та история оператора поможет только надо стирание ее запретить это их адвокаты не хотели ввязываться а то бы сразу сыграли на преднамеренном изменении вами pmc станкостроителя с целью избежать гарантийных обязательств учитывая вашу малочисленность - вымол просто не справляетесь вот и фейковые сообщения записываете
    • malvi.dp
      Есть такой в соседней теме BlankDatums2a
×
×
  • Создать...