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

Вывод свойства на чертеж


stest6905

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

Здравствуйте.

У меня есть заполненные поля свойства документа. мне нужно вывести на чертеж конкретный пункт (допустим "test"). Подскажите как я могу это вывести используя макрос (не всегда данный параметр нужен)?

Спасибо. 

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


UnPinned posts

по аналогии с другими свойствами как выводишь "обозначение " или "наименование" так и свойство любое.

 

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

А хотел сделать по аналогии с таким:

$PRP:"SW-File Name" ->- $PRP:"ttt"

но я не знаю как в макросе вызвать данные параметры... 

 

3 минуты назад, malvi.dp сказал:

Записать в заметке, сохранить в часто используемых и вставлять когда нужно

Этот параметр считается для каждой детали, это не статический текст...

6 минут назад, Maik812 сказал:

по аналогии с другими свойствами как выводишь "обозначение " или "наименование" так и свойство любое.

 

К сожалению у меня мало опыта в работе с VBA, по этому и обратился сюда... 

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

зачем макросом? просто пишешь где нужно и будет счастье.. как обозначение в свойствах листа, открой посмотри запись.

 

 

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

Этот параметр считается для каждой детали, это не статический текст..

В заметку нужно ввести текст типа: $PRPSHEET:"Имя нужного св-ва модели" и когда это св-во изменится в модели, в чертеже тоже произойдет  его изменение без всяких макросов

Если же это св-во чертежа, тогда $PRP:"Имя нужного св-ва чертежа"

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

В заметку нужно ввести текст типа: $PRPSHEET:"Имя нужного св-ва модели" и когда это св-во изменится в модели, в чертеже тоже произойдет  его изменение без всяких макросов

Если же это св-во чертежа, тогда $PRP:"Имя нужного св-ва чертежа"

За ответ спасибо. Данной особенности я не знал, использую также в своих целях!

 

Мне все таки нужно чтобы этот параметр был доступен в скрипте так как я произвожу вычисления...

В интернете я нашел кусок кода который может показать значение параметра который меня интересует но почему то он ничего не отображает...

Dim swApp As Object

Dim instance As ICustomPropertyManager
Dim FieldName As String
Dim UseCached As Boolean
Dim ValOut As String
Dim ResolvedValOut As String
Dim wasResolved As Boolean
Dim value As Integer

Sub main()

Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
          
value = instance.Get5("test", UseCached, ValOut, ResolvedValOut, wasResolved)

End Sub

 

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

есть заполненные поля свойства документа. мне нужно вывести на чертеж конкретный пункт (допустим "test")

не подойдёт?

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

Я его запускаю и ничего не происходит... Если пройти пошагово то эти пункты пустые... 

Debug.Print " " & swNote.GetName
Debug.Print " " & swNote.GetText <- Вот функция которая получает текст заметки, его тебе и надо проверять.

Плюс я не знаю где смотреть результат (как я понимаю должен где-то быть лог происходящего в скрипте по действию "Debug.Print")

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

Плюс я не знаю где смотреть результат (как я понимаю должен где-то быть лог происходящего в скрипте по действию "Debug.Print")

Нажми здесь в редакторе

Imm_window.png

 

В этой ветке знающие люди быстрее ответят )

 

14 минут назад, stest6905 сказал:

Я его запускаю и ничего не происходит... Если пройти пошагово то эти пункты пустые.

Да, сам макрос, вроде к заметкам чертежа, а не к свойствам

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

Нажми здесь в редакторе

Спасибо!!!

Запустил но параметра по которому хочу сделать поиск не отображается... Как фильтровать?

Screenshot-1.png 

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

 

4 часа назад, stest6905 сказал:

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

Спойлер

Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As ModelDoc2
Dim swModelDocExt As ModelDocExtension
Dim swCustProp As CustomPropertyManager
Dim val As String
Dim valout As String
Dim bool As Boolean
Dim myNote As Object

Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swModelDocExt = swModel.Extension
Set swCustProp = swModelDocExt.CustomPropertyManager("")
bool = swCustProp.Get6("ttt", False, valout, val, False, False)
Set myNote = swModel.InsertNote(valout)
End Sub

Солид не старше 2018, добавляет заметку в чертёж (туда, куда ткнул курсором) с текстом из свойства ttt

взял куски кода из справки солида и немного отсюда 

 

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

Солид не старше 2018, добавляет заметку в чертёж (туда, куда ткнул курсором) с текстом из свойства ttt

взял куски кода из справки солида и немного отсюда 

У меня 2015... Ругается на строку

bool = swCustProp.Get6("ttt", False, valout, val, False, False)
Цитата

"Runtime error '438' object doesn't support this property or method"

Буду изучать. Пока спасибо за информацию

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

У меня 2015... Ругается на строку

поменяй на 

bool = swCustProp.Get4("ttt", False, val, valout)

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

поменяй на 

bool = swCustProp.Get4("ttt", False, val, valout)

Заработало! Спасибо еще раз.

В процессе работы возник другой вопрос:

-как можно вставить полученные данные в свойства с параметром "ttt2"?  

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

-как можно вставить полученные данные в свойства с параметром "ttt2"?  

А ttt2 уже есть в свойствах документа? Просто солид может и создавать и перезаписывать/не перезаписывать существующее свойство

Добавь строчку 

bool = swCustProp.Add2("ttt2", 30, valout)
 

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

А ttt2 уже есть в свойствах документа? Просто солид может и создавать и перезаписывать/не перезаписывать существующее свойство

Есть но оно пустое, макрос по выполнению операций может записать (перезаписать) результат

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

Есть но оно пустое, макрос по выполнению операций может записать (перезаписать) результат

Тогда такую

bool = swCustProp.Set2("ttt2", valout)

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

Тогда такую

bool = swCustProp.Set2("ttt2", valout)

Протестировал все работает, спасибо!!!

Ссылка на сообщение
Поделиться на других сайтах
В 02.11.2020 в 14:53, stest6905 сказал:

Запустил но параметра по которому хочу сделать поиск не отображается... Как фильтровать?

А смысл всего этого был в итоге в чем ? в поиске или вставка свойства зачем нужна?

Да и и готовый макрос можно было выложить людям....

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

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

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

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

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

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

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

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

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

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

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




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