Jump to content

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


stest6905

Recommended Posts

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

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

Спасибо. 

Link to post
Share on other sites


UnPinned posts

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

 

Link to post
Share on other sites

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

Мир в наших руках, так сделаем его лучше и добрее

Link to post
Share on other sites

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

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

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

 

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

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

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

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

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

 

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

Link to post
Share on other sites

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

 

 

Link to post
Share on other sites
8 минут назад, stest6905 сказал:

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

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

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

Edited by malvi.dp
  • Нравится 1

Мир в наших руках, так сделаем его лучше и добрее

Link to post
Share on other sites
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

 

Link to post
Share on other sites
1 час назад, stest6905 сказал:

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

не подойдёт?

Link to post
Share on other sites
1 час назад, Kir95 сказал:

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

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

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

Link to post
Share on other sites
4 минуты назад, stest6905 сказал:

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

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

Imm_window.png

 

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

 

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

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

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

Link to post
Share on other sites
11 минут назад, Kir95 сказал:

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

Спасибо!!!

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

Screenshot-1.png 

Link to post
Share on other sites

 

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

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

 

Link to post
Share on other sites
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"

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

Link to post
Share on other sites
3 минуты назад, stest6905 сказал:

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

поменяй на 

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

Link to post
Share on other sites
7 минут назад, Kir95 сказал:

поменяй на 

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

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

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

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

Link to post
Share on other sites
2 минуты назад, stest6905 сказал:

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

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

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

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

Link to post
Share on other sites
Только что, Kir95 сказал:

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

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

Link to post
Share on other sites
4 минуты назад, stest6905 сказал:

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

Тогда такую

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

  • Чемпион 1
Link to post
Share on other sites
23 часа назад, Kir95 сказал:

Тогда такую

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

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

Link to post
Share on other sites
В 02.11.2020 в 14:53, stest6905 сказал:

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

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

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

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...