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

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

Там где стоит Х мне нужно прописать свойство

X=ModelDoc2.ModelDocExtension.CustomPropertyManager("тут ни чего или конфигурация").Get ("Тут имя свойства")

<noindex>http://help.solidworks.com/2013/English/ap..._Example_VB.htm</noindex>

<noindex>http://help.solidworks.com/2010/english/ap..._example_vb.htm</noindex>

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


Спасибо большое за ответы!! Но у меня почему-то желтым выделяет строчку X=ModelDoc2.ModelDocExtension.CustomPropertyManager("").Get("Формат")

Справку почитал, но я не пойму как мне присвоить значение X. Я сам не программист. Подскажите пожалуйста, что я делаю не так. Уже сил моих нет.

Dim swApp As Object

Dim Part As Object

Dim swModel As ModelDoc2

Dim swModelDocExt As ModelDocExtension

Dim swCustProp As CustomPropertyManager

Dim boolstatus As Boolean

Dim longstatus As Long, longwarnings As Long

Sub main()

Set swApp = Application.SldWorks

Set swModel = swApp.ActiveDoc

Set swModelDocExt = swModel.Extension

Set Part = swApp.ActiveDoc

X = ModelDoc2.ModelDocExtension.CustomPropertyManager("").Get("Формат")

boolstatus = Part.ActivateView("Чертежный вид1")

boolstatus = Part.Extension.SelectByID2("Чертежный вид1", "DRAWINGVIEW", 0.2825576685727, 0.5321152385946, 0, False, 0, Nothing, 0)

If X = 1 Then

Part.UnsuppressView

Else

Part.SuppressView

End If

Part.ClearSelection2 True

End Sub

Свойства из модели или чертежа?

В справке не то? <noindex>http://help.solidworks.com/2012/english/ap..._example_vb.htm</noindex>

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

Но у меня почему-то желтым выделяет строчку X=ModelDoc2.ModelDocExtension.CustomPropertyManager("").Get("Формат")

X = swModel.CustomInfo2("", "Формат")
Ссылка на сообщение
Поделиться на других сайтах

X = swModel.CustomInfo2("", "Формат")

Спасибо, заработало! Но только это свойства чертежа, а как из свойств модели достать инфу?
Ссылка на сообщение
Поделиться на других сайтах

Но только это свойства чертежа, а как из свойств модели достать инфу?

для этого нужно, чтобы переменная swModel приняла занчение не активного документа, а 3D-модели связанной с чертежом. у меня модель и чертеж имеют одинаковое имя и лежат в одной папке (директории), поэтому я ищу модель так (написано на vb.net):

Скрытый текст: бла-бла-бла

If swModel.GetType = swDocumentTypes_e.swDocDRAWING Then 'ecли активный документ чертеж

расширение = ".SLDDRW"

ElseIf swModel.GetType = swDocumentTypes_e.swDocPART Then 'ecли активный документ деталь

расширение = ".SLDPRT"

Else 'если активный документ не чертеж и не деталь, т.е. сборка

расширение = ".SLDASM"

End If

If swModel.GetPathName() = "" Then

MsgBox("По пути сохранения текущего чертежа (" & путь_к_папке & ") 3D-модель не найдена. Возможно текущий чертеж не сохранён.", MsgBoxStyle.Critical)

End

End If

имя_модели = Mid(swModel.GetPathName(), InStrRev(swModel.GetPathName(), "\") + 1, InStrRev(swModel.GetPathName(), расширение) - InStrRev(swModel.GetPathName(), "\") - 1) & ".SLDPRT"

имя_чертежа = Mid(swModel.GetPathName(), InStrRev(swModel.GetPathName(), "\") + 1, InStrRev(swModel.GetPathName(), расширение) - InStrRev(swModel.GetPathName(), "\") - 1) & ".SLDDRW"

полный_путь_к_детали = путь_к_папке & имя_модели

swModel = swApp.ActivateDoc(имя_модели)

If swModel Is Nothing Then

swModel = swApp.ActiveDoc

имя_модели = Mid(swModel.GetPathName(), InStrRev(swModel.GetPathName(), "\") + 1, InStrRev(swModel.GetPathName(), расширение) - InStrRev(swModel.GetPathName(), "\") - 1) & ".SLDASM"

swModel = swApp.ActivateDoc(имя_модели)

If swModel Is Nothing Then

MsgBox("По пути сохранения текущего чертежа " & путь_к_папке & имя_чертежа & " 3D-модель " & имя_модели & " не найдена")

End

Else

GoTo metka1

End If

Else

metka1 linenums:0'>Dim swApp As SldWorks Dim swModel As ModelDoc2 Dim путь_к_папке As String Dim имя_модели, имя_чертежа As String Dim полный_путь_к_детали As String Dim расширение As String путь_к_папке = Microsoft.VisualBasic.Strings.Left(swModel.GetPathName(), Len(swModel.GetPathName()) - (Len(swModel.GetPathName()) - InStrRev(swModel.GetPathName(), "\"))) 'путь к папке активного If swModel.GetType = swDocumentTypes_e.swDocDRAWING Then 'ecли активный документ чертеж расширение = ".SLDDRW" ElseIf swModel.GetType = swDocumentTypes_e.swDocPART Then 'ecли активный документ деталь расширение = ".SLDPRT" Else 'если активный документ не чертеж и не деталь, т.е. сборка расширение = ".SLDASM" End If If swModel.GetPathName() = "" Then MsgBox("По пути сохранения текущего чертежа (" & путь_к_папке & ") 3D-модель не найдена. Возможно текущий чертеж не сохранён.", MsgBoxStyle.Critical) End End If имя_модели = Mid(swModel.GetPathName(), InStrRev(swModel.GetPathName(), "\") + 1, InStrRev(swModel.GetPathName(), расширение) - InStrRev(swModel.GetPathName(), "\") - 1) & ".SLDPRT" имя_чертежа = Mid(swModel.GetPathName(), InStrRev(swModel.GetPathName(), "\") + 1, InStrRev(swModel.GetPathName(), расширение) - InStrRev(swModel.GetPathName(), "\") - 1) & ".SLDDRW" полный_путь_к_детали = путь_к_папке & имя_модели swModel = swApp.ActivateDoc(имя_модели) If swModel Is Nothing Then swModel = swApp.ActiveDoc имя_модели = Mid(swModel.GetPathName(), InStrRev(swModel.GetPathName(), "\") + 1, InStrRev(swModel.GetPathName(), расширение) - InStrRev(swModel.GetPathName(), "\") - 1) & ".SLDASM" swModel = swApp.ActivateDoc(имя_модели) If swModel Is Nothing Then MsgBox("По пути сохранения текущего чертежа " & путь_к_папке & имя_чертежа & " 3D-модель " & имя_модели & " не найдена") End Else GoTo metka1 End If Elsemetka1:

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

Просто смысл в том что мне нужно получить одно йз свойств текущей конфигурации модели на текущем чертеже. Путь к модели неизвестен, название конфигураций тоже. Можно ли это вообще сделать?

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

Pabloa

Можно всё.

Решение - получить модель из вида, получить свойства из полученной модели.

Всё есть в справке. Научитесь ей пользоваться - все вопросы отпадут.

<noindex>http://help.solidworks.com/2012/english/ap..._Example_VB.htm</noindex>

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

Я же повторяю, я не программист, мне нужен готовый код, я не могу перенять то что написано в справке. У меня стоит конкретная задача, больше я к этому не вернусь, не учить же мне теперь VBA для этого.

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

Подскажите пожалуйста, мне необходимо написать макрос

а потом:

мне нужен готовый код

У меня стоит конкретная задача, больше я к этому не вернусь

Для сравнения - "нужна модель, но нет времени осваивать SW". Хотя и справка наиполнейшая, и примеров куча.

Как говорит небезызвестный никнейм:

"Каков бюджет?"

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

а потом:

Для сравнения - "нужна модель, но нет времени осваивать SW". Хотя и справка наиполнейшая, и примеров куча.

Как говорит небезызвестный никнейм:

а там, хоть аддон на C++ :smile:

а я не знал, что здесь деньги за советы берут....я думал спросил как сделать, и тебе помогли....а заместо этого надо 20 раз поумничать, хотя можно было уже 20 раз написать....это не программа которая 2 месяца пишется, это несколько строчек и пару функций....вам это написать - 5 минут, мне, не знающему даже основ, копаться пол месяца...
Ссылка на сообщение
Поделиться на других сайтах

X = swModel.CustomInfo2("", "Формат")

fox1001 справка утверждает, что это немного устаревший интерфейс. Сейчас актуальный CustomPropertyManager: <noindex>http://help.solidworks.com/2012/english/ap..._properties.htm</noindex>

metka1:
а вот с этим осторожнее smile.gif Из цикла можно и красивше выходить, см. break
Там даже цикла нет, что бы от куда-то выходить, а из IF он и сам дальше пойдёт без всяких меток.
Ссылка на сообщение
Поделиться на других сайтах

а я не знал, что здесь деньги за советы берут

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

хотя можно было уже 20 раз написать

))) смешно. Вы не принимаете советов, не хотите сами разбираться, хотите чтоб вам всё выдали да ещё и "не умничали".

Не в ту ветку пишете, тут как раз помогают тем, у кого не получается. У вас не получается даже начать.

Хотите результат - потратьте либо время, либо деньги. Либо ждите пока кому-нибудь будет не лень :cool: "это написать - 5 минут".

Kelny

а я уже наперёд знаю куда fox1001 понавставлял переходов))))

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

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

Когда человек просит совета, а на совет практически требует код - не красиво получается...

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

вам это написать - 5 минут, мне, не знающему даже основ, копаться пол месяца...

Как говорит величайший мультик лучше весь день потерять, а потом за пять минут долететь, зато потом столько вкусненького...

Месяц потеряете, потом работать перестанете, за вас всё компьютер будет делать. Крылья, крылья ... главное хвост...

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

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

Либо ждите пока кому-нибудь будет не лень :cool: "это написать - 5 минут".

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

fox1001 справка утверждает, что это немного устаревший интерфейс. Сейчас актуальный CustomPropertyManager:

спасибки за вразумление :drinks_drunk: как только придет очередная нужда в свойствах копаться - придется засесть за изучение и освоение.

с английским у меня тугова-то, по сему, конеш отстаю от жизни.

Pabloa

<noindex>http://streamdown.blogspot.com/</noindex> - очень рекомендую.

P.S.

Я же повторяю, я не программист

я тоже НЕ не программист, зато я ОООООООООООООООЧЕНЬ бальшой лентяй :biggrin:

а я не знал, что здесь деньги за советы берут....я думал спросил как сделать, и тебе помогли....а заместо этого надо 20 раз поумничать, хотя можно было уже 20 раз написать....это не программа которая 2 месяца пишется, это несколько строчек и пару функций....вам это написать - 5 минут, мне, не знающему даже основ, копаться пол месяца...

не будьте нахалом, имейте терпение :biggrin:

мой опыт мне говорит: с наскоку даже самый простенький рабочий макрос (тем более НЕПРОГРАММЕРУ) не написать. как ни крути, время и силы (в основном умственные... пардон - интелектуальные :smile: ) потратить придется.

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

не будьте нахалом, имейте терпение :biggrin:

мой опыт мне говорит: с наскоку даже самый простенький рабочий макрос (тем более НЕПРОГРАММЕРУ) не написать. как ни крути, время и силы (в основном умственные... пардон - интелектуальные :smile: ) потратить придется.

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

.....а на том сайте не на VBA примеры......для автоматизации моделирования мне всегда хватало таблиц параметров и макросов эксел, а вот щас долшло дело до чертежей, а там уже не так все просто....

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

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

.....а на том сайте не на VBA примеры......для автоматизации моделирования мне всегда хватало таблиц параметров и макросов эксел, а вот щас долшло дело до чертежей, а там уже не так все просто....

как-то странно это всё выглядит - заставили НЕпрограммера писать программу :wallbash: , да ещё и сроки поставили... :g:

кста, ваш макрос до сих пор не работает??? :confused_1:

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

как-то странно это всё выглядит - заставили НЕпрограммера писать программу :wallbash: , да ещё и сроки поставили... :g:

кста, ваш макрос до сих пор не работает??? :confused_1:

у меня сроки по автоматизации проектирования определенного оборудования, с моделированием у меня вопросов нет, с чертежами раньше тоже не было...сейчас просто многовариантность большая, и плюс пожелание производства иметь на основных сборках то, что раньше делалось в подсборках, соответственно чертежи становятся гигантскими....а вопрос основной как виды не нужные гасить в зависимости от текущей конфигурации модели....с остальным вопросов нет.....в общем буду искать
Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

Сделал макрос под себя для заполнения рамки. На компьютере, котором писал все работает нормально, но когда его использую на дрогом форма появляется за SolidWorks, который становится не активным, а на форму можно перейте только через альт+таб. Это первая и главная.

Вторая проблемка: для того что бы выгрузить фамилии нужно щелкнуть по форме (другога варианта не нашел, только если кнопку создавать спец.). Как сделать что бы фамилии подгружались сразу при вызове формы.

Еще 1 вопрос по 2 макросу: пробую сделать макрос для проставления шереховатости по ескд, проблема в одном - шереховатость появляется в нижнем левом угло (т.е. в 0 коорд.). Как сделать что бы можно было выбирать место для расположения шереховатости.

Сами макросы:заполнение_основной_надписи_v1.0.rar

шереховатость_на_поверхности_v1.0.rar

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Viktor2004
      какая ссылка не рабочая? Ссылка на этот же форум. Там в низу пятой страницы мое видео как создавать файлы MACRO
    • WSXASD
      Спасибо. Жаль только там ссылка не рабочая((( Уже весь интернет прошерстил. Нету
    • Павлуха
      Тат помогает серверный юпс. А сохранять солид сам напоминает.
    • Viktor2004
      Вот тут на пятой странице есть https://cccp3d.ru/topic/114285-софт-фанук/page/5/  
    • WSXASD
      Здравствуйте коллеги! Подскажите, как открыть и редактировать диалоговые окна меню Custom? Это своя оболочка от производителя. Зачем мне это нужно? Потому что станок шлифовальный китайский и сделан с китайской логикой. Меняя значения параметров обработки в этих окнах, я меняю переменные, которые затем используются в макропрограмме обработки. Чтобы понять как работает макропрограмма обработки, мне нужно знать какие именно переменные меняются, когда я меняю тот или иной параметр в диалоговом окне. Если я правильно понимаю (может быть и нет) то за эти меню отвечает файл PD0105M.000 Вот как и чем его открыть и посмотреть что внутри?
    • ak762
      а двухтомник какого года издание? а то встречаю в сети только однотомники
    • lem_on
      Артефакты на конкретной детали, конечно не тройное пересечение, но по факту оно так иногда и выглядит, ели не выпедриватся особо. 
    • lem_on
      Офигеть, Шура открыл для себя геометрию!!!  Только стол можно тоже наклонять, либо голову под стол кривой поворачивать и это как раз исправляется параметрами, взять хотя бы провисание головы если ось У на голове находится, что стол под нее криво ставить? 
    • Killerchik
      Конкретно DMU нет, но в принципе поворотные головы да, видел. Давайте разделим проблему на совсем простые кусочки. Меня сейчас интересует только один параметр - перпендикулярность оси вращения шпинделя этого пятикоординатного фрезера к поверхности его стола в плоскости YZ. Допустим, что ось Z параллельна оси вращения шпинделя. Соответственно, к оси Z поверхность стола будет также не перпендикулярна. 1. К столу станка притянута толстая плита, нижняя поверхность плиты шлифована. Поскольку стол не перпендикулярен оси вращения шпинделя, нижняя поверхность детали также будет не перпендикулярна оси вращения шпинделя. 2. При сверлении и/или растачивании цилиндрических отверстия(ий) двигаться должна только ось, параллельная оси вращения шпинделя. Так устроен процесс резания. 3. Просверленные и/или расточенные отверстия будут не перпендикулярны нижней поверхности детали. Это не исправить никакой компенсацией.
    • Ветерок
      Сделать одно отверстие. Два других делать до поверхности первого отверстия или до его оси. (надеюсь Инвентор это умеет). Или делать отверстия до точки пересечения их осей.   Но в самом углу всё равно придется строить сферу. Только прямыми отверстиями не получится.   Или строить хотя бы одно отверстие вращением со сферическим торцом.
×
×
  • Создать...