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

Свойства листового металла в базе материалов


VOleg

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

Всем добрый день.

В базе материалов появилась вкладка "Листовой металл", но в справках не могу найти описания ее действия. В базе материалов соответствующие записи появляются, но больше ничего не происходит. А хотелось бы при назначении листового материала автоматом заполнять толщину, радиус гиба и допуск сгиба в моделе.

Может кто знает?

изображение_2022-09-20_212358544.png

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


UnPinned posts

Следующая напасть. В первом случае, где выделено желтым работает, а во втором, ниже, - не работает.

Т.е. если свойство материала не найдено, то свойство в детали нужно обнулить или стереть.

      If fnd11 Then
            If swCustPropMgr.Set(name4, valu4) < 0 Then swCustPropMgr.Add2 name4, swCustomInfoText, valu4
            i = i + 1
            If Format2 = "БЧ" Then
'             Код1Сматериала перепишем и в свойство Код1С детали
                name5 = "Код1С"
                swCustPropMgr.Add2 name5, swCustomInfoText, valu4
            End If
        Else
        valu4 = "0"
           swCustPropMgr.Add2 name4, swCustomInfoText, valu4
            MsgBox "Для материала не найдено свойство " + name4, , sMatName
        End If
 

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

Т.е. если свойство материала не найдено, то свойство в детали нужно обнулить или стереть.

Вы не внимательны, ещё раз:

23 часа назад, Kelny сказал:

Это свойство уже есть в документе? Возможно поэтому и не добавляет.

 

Делал так:

    bRet = ModelDoc2.AddCustomInfo3("", name5, swCustomInfoText, valu4)
    If bRet = False Then ModelDoc2.CustomInfo2("", name5) = valu4

Если свойства нет - оно добавится, если есть - перепишется значение существующего.

 

В самом окне свойств при ручном заполнении нельзя оставить пустую строку - в этом случае изменения сбросятся (восстановится удалённое при нажатии ОК) и обязательно нужно оставлять пробел при удалении вручную, через API можно оставлять пустое поле в свойствах. Это так на заметку, к вопросу о необходимости контроля пробелов и при небоходимости их удалять при сравнениях (при ручном вводе пользователь может не удалить пробел и дописать значение к пробелу).

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

Вы не внимательны, ещё раз:

Если свойства нет - оно добавится, если есть - перепишется значение существующего.

 

Если свойство материала есть, то свойства детали переписываются или создаются новые без проблем.

Но возник вопрос, что у старого материала код1С был, а у нового его еще нет. В этом случае надо поставить 0. Но не ставится. Проверяю значение переменной name4 - есть, выводится, проверяю значение valu4 - есть и выводится по MsgBox. При этом в свойстве детали никаких изменений.

Какая разница как я присвоил значение valu4?

    valu4 = 11111
            MsgBox name4 + valu4
            swCustPropMgr.Add2 name4, swCustomInfoText, valu2


 

Код1Сматериала11111.PNG

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

При выполнении ругается 

image.pngУ меня Код1Сматериала на вкладке Конфигурации, т.к. у разных исполнений м.б. разный материал.

image.png

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

Какая разница как я присвоил значение valu4?

Ни какой.

 

3 часа назад, VOleg сказал:

Если свойство материала есть, то свойства детали переписываются или создаются новые без проблем.

Ещё раз повторят не буду - лениво.

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

Ещё раз повторят не буду - лениво.

ОГРОМНОЕ СПАСБО Вам за терпение при моей тупизне.

Пока ставлю в свойствах материала код1С=0 и все хорошо работает.

Тупо, криво, но работет.

GetKodMat.swp

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

При выполнении ругается 

image.png

Пишет, что Object required. Справка по API очень короткая, вроде все, что там написано, у меня тоже есть.

Может библиотека какая не подключена?

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

@VOleg Пишет, что Требуется Объект, скорее всего в переменной или другого типа данные или они вообще отсутствуют. Надо дебагить, чтобы понять что не так.

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

@VOleg Пишет, что Требуется Объект, скорее всего в переменной или другого типа данные или они вообще отсутствуют. Надо дебагить, чтобы понять что не так.

Все переменные заданы явно, свойство присутствует.      А что такое дебагить?

        Dim name4           As String, valu4 As String
            Dim bRet            As Boolean
            valu4 = "0"
             name4 = "Код1Сматериала"
             bRet = ModelDoc2.AddCustomInfo3("", name4, swCustomInfoText, valu4)
 

_Код1Сматериала.PNG

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

При выполнении ругается 

image.pngУ меня Код1Сматериала на вкладке Конфигурации, т.к. у разных исполнений м.б. разный материал.

image.png

Нет картинок:

Цитата

404: Not found


The file you requested could not be found


IP.Board

 

34 минуты назад, VOleg сказал:

А что такое дебагить?

Пошаговое выполнение программы с проверкой, что где и как присвоино на каждом шаге:

05.10.2022 в 14:15, Kelny сказал:

Можно поставить крастные точки в левом столбце (серый столбик слева от кода) в этих местах для проверки (выполнение кода будет останавливаться в этих местах) что там назначается наводя мышкой на переменные или AddWatches... в соответствующем окошке.

  Скрыть содержимое

img-QZnXj0.png

 

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

            valu4 = "Код отсутствует"
             name4 = "Код1Сматериала"
            MsgBox bRet
              MsgBox name4 + " " + valu4
             bRet = ModelDoc2.AddCustomInfo3("", name4, swCustomInfoText, valu4)
 После третье строчки пишет Fa;se

После четвертой строчки Код1Сматериала Код отсутствует

При переходе на 5 строчку пишет Run-time error '424' Object required

 

_1ответ.PNG

_2ответ.PNG

_3ответ.PNG

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

После третье строчки пишет Fa;se

Что бы не тыкать каждый раз ОК можно посылать результаты в окошко редактора макросов Immediate (меню View-Immediate Window   Ctrl+G):

debug.print "Например, valu4  = " & valu4 

debug.print "Например, name4 = " & bRet

debug.print "Например, Результат выполненя функции = " & bRet

 

36 минут назад, VOleg сказал:

При переходе на 5 строчку пишет Run-time error '424' Object required

Ясное дело опять не внимательность сработала, если у вас объект не объявлен, то как он узнает, что это  такое вообще - вот и сообщает об этом, что вас не понимает.

Ведь в вашем макросе объявлено:  Dim swModel         As SldWorks.ModelDoc2

А в том макросе от куда вы скопировали:  Dim ModelDoc2         As SldWorks.ModelDoc2

Надо попоравить на объявленное у вас, например: bRet = swModel.AddCustomInfo3("", name4, swCustomInfoText, valu4)

06.10.2022 в 14:08, Kelny сказал:

Ещё раз повторят не буду - лениво.

Кстати был не прав и то что предлагал:

05.10.2022 в 10:57, Kelny сказал:

Делал так:

    bRet = ModelDoc2.AddCustomInfo3("", name5, swCustomInfoText, valu4) 'Добавляем свойство, если оно есть получаем False
    If bRet = False Then ModelDoc2.CustomInfo2("", name5) = valu4 'Если свойство не добавлено считаем, что оно существует и присваиваем значение

Равносильно вашему (только сначала проверяется сущствование и в этом случае вносится значение при наличии свойства или если свойства нет уже добавляется отсутствующее свойство и его значение):

Цитата

If swCustPropMgr.Set(name1, valu1) < 0 Then swCustPropMgr.Add2 name1, swCustomInfoText, valu1

 

Но если использовать только ...Add... для добавления свойства, то при наличии свойства оно не добавится и не заменется существующее. Это всё в старых версиях, т.к. в новых версиях добавиил ключ, что бы свойство само заменялось или добавлялось не зависимо от наличия.

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

Ясное дело опять не внимательность сработала, если у вас объект не объявлен, то как он узнает, что это  такое вообще - вот и сообщает об этом, что вас не понимает.

Ведь в вашем макросе объявлено:  Dim swModel         As SldWorks.ModelDoc2

А в том макросе от куда вы скопировали:  Dim ModelDoc2         As SldWorks.ModelDoc2

Надо попоравить на объявленное у вас, например: bRet = swModel.AddCustomInfo3("", name4, swCustomInfoText, valu4)

Огромное спасибо!!!!! Заработала.

Однако запись идет в среднюю вкладку "Настройки", а мне надо в "конфигурации"

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

Однако запись идет в среднюю вкладку "Настройки", а мне надо в "конфигурации"

Вписывайте имя конфигурации (при необходимости добавляйте цикл по всем именам конфигураций):

bRet = swModel.AddCustomInfo3("ТУТимяКОНФИГУРАЦИИ", name4, swCustomInfoText, valu4)

 

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

Дык вписывайте её сюда:

bRet = swModel.AddCustomInfo3("ТУТимяКОНФИГУРАЦИИ", name4, swCustomInfoText, valu4)

 

УРА!!!!!!!! Заработало!!!!! СПАСИБО!!!!!

GetKodMat.swp

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

Снова всем здрасьте.

Т.к. в макросе осталась конструкция Add2, меня все-таки интересует ее работа.

swCustPropMgr.Add2 name4, swCustomInfoText, valu4

Почему она для одних свойств пишет в Конфигурации, а для Код1С пишет в Настройки?

Я сделал отдельно взятый макрос и никак не могу побороть это дело.

В хелпе нет указаний по назначению имени конфигурации.

Add2.PNG

ИзменениеСвойствДетали.swp

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

Снова всем здрасьте.

Т.к. в макросе осталась конструкция Add2, меня все-таки интересует ее работа.

swCustPropMgr.Add2 name4, swCustomInfoText, valu4

Почему она для одних свойств пишет в Конфигурации, а для Код1С пишет в Настройки?

Я сделал отдельно взятый макрос и никак не могу побороть это дело.

В хелпе нет указаний по назначению имени конфигурации.

Add2.PNG

ИзменениеСвойствДетали.swp 37 \u041a\u0431 · 1 скачивание

а с чего вы решили что в этой конструкции должно быть имя конфигурации?

это в вашем коде выше должно быть указано к какой конфиуграции применять все эти свойтсва

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

Пытаюсь разобраться и с AddCustomInfo3.

В прилагаемом файле выписка из хелпа по АПИ. Здесь только синтаксис этой команды. Соответственно вопрос - а где написано что же делает эта команда? Типа: "Если Вы хотите добавить новое или переписать старое свойство пользователя, то смотрите AddCustomInfo3".

AddCustomInfo3.docx

2 минуты назад, Sturmann сказал:

а с чего вы решили что в этой конструкции должно быть имя конфигурации?

это в вашем коде выше должно быть указано к какой конфиуграции применять все эти свойтсва

Да, в хелпе нет такого указания.

Вот и вопрос: А как указать этой команде, что нужно писать либо на вкладку суммарная информация, либо настройки, либо конфигурации?

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

 

Запустил с такой конструкцией

If swCustPropMgr.Set(name2, valu2) < 0 Then swCustPropMgr.Add2 name4, swCustomInfoText, valu4

Начало записывать на вкладку Конфигурации даже со старой записью (видимо что-то переключилось), но только как новое свойство. Изменение уже не проходит. Как будто Мембер равен 0.

Можно ли заставить swCustPropMgr.Add2 менять существующее значение? Где изменить этот Мембер на 2?

Кстати, есть свойство или нет, If swCustPropMgr.Set(name2, valu2) всегда равен -1

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

Нашел еще макрос, вроде конфигурации определяются, но где в нем устанавливается нужная конфигурация для 

If swCustPropMgr.Set(name4, valu4) < 0 Then swCustPropMgr.Add2 name4, swCustomInfoText, valu4?

МакросПримеры.docx

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

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

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

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

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

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

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

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

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

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

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




×
×
  • Создать...