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

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

С учетом последних комментов:

у вас

при добавлении вида на чертеж

событие

m_Draw.AddItemNotify += new DDrawingDocEvents_AddItemNotifyEventHandler(m_Draw_AddItemNotify);
не вызывается?
Ссылка на сообщение
Поделиться на других сайтах


С учетом последних комментов:

у вас

событие

m_Draw.AddItemNotify += new DDrawingDocEvents_AddItemNotifyEventHandler(m_Draw_AddItemNotify);
не вызывается?

Да, не вызывается совсем. Причем проверял макросом написанным на VBA, та же самая история.

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

andrey1307n2

попробуйте <noindex>это</noindex> событие.

Скорее всего, добавление вида не относится к AddItemNotify.

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

Это работает. но тогда действуем по методу изложенному в сообщении #307.

Сначала тоже так думал, но, как ни странно- относится.

<noindex>https://forum.solidworks.com/message/328008#328008</noindex>

Просто я работаю с SolidWorks 2008. К версии SolidWorks 2012 много чего поправили и изменили. Это не первый момент который наковырял.

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

Доброе время суток. Возникла сложность с написанием макроса, может кто-нибудь знает как разрешить проблему. О процедуре запуска макроса: создаем сборочный проект в SolidWorks, добавляем файл TestPART-1-4, далее выделяем два отверстия и верхнюю грань (ctrl+leftclick), запускаем макрос Termpaper, 2 пальца и пластина сопрягаются кое-как,сложность возникла в корпусной плите, она должна лежать поверх всего, если кто знает как это исправить помогите. Заранее спасибо. Все детали и макрос в архиве.

ar.rar

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

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

Решил написать маленький макрос который в готовой детальке добавляет конфигурацию с именем размера (который меняется) и меняет необходимый размер.

Вот что получилось:

Sub main()

Set swApp = _

Application.SldWorks

Set Part = swApp.ActiveDoc

boolstatus = Part.Extension.SelectByID2("uyuuu.SLDPRT", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)

Part.ClearSelection2 True

boolstatus = Part.AddConfiguration2("500", "", "", True, False, False, True, 256)

boolstatus = Part.Extension.SelectByID2("", "FACE", -4.78377904437366E-03, 1.49999999999864E-02, -0.216341755998769, False, 0, Nothing, 0)

boolstatus = Part.Extension.SelectByID2("D1@Вытянуть1@uyuuu.SLDPRT", "DIMENSION", -0.608348364572001, -0.480979725349052, -1.36805847861021, True, 0, Nothing, 0)

Dim myDimension As Object

Set myDimension = Part.Parameter("D1@Вытянуть1")

myDimension.SystemValue = 0.5

Part.ClearSelection2 True

boolstatus = Part.EditRebuild3()

End Sub

Далее я решил создать форму с текствоксом и в него вводить одно числовое значение которое будет менятся. Вот что получилось:

Sub main()

Set swApp = _

Application.SldWorks

Set Part = swApp.ActiveDoc

boolstatus = Part.Extension.SelectByID2("uyuuu.SLDPRT", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)

Part.ClearSelection2 True

boolstatus = Part.AddConfiguration2("500", "", "", True, False, False, True, 256)

boolstatus = Part.Extension.SelectByID2("", "FACE", -4.78377904437366E-03, 1.49999999999864E-02, -0.216341755998769, False, 0, Nothing, 0)

boolstatus = Part.Extension.SelectByID2("D1@Вытянуть1@uyuuu.SLDPRT", "DIMENSION", -0.608348364572001, -0.480979725349052, -1.36805847861021, True, 0, Nothing, 0)

Dim myDimension As Object

Set myDimension = Part.Parameter("D1@Вытянуть1")

myDimension.SystemValue = TextBox1.Value / 1000

Part.ClearSelection2 True

boolstatus = Part.EditRebuild3()

End Sub

Вопрос у меня вот в чем: Как изменить имя конфигурации (сейчас оно равно 500))???

Очень ожидаю ответа. Спасибо!

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

Как изменить имя конфигурации (сейчас оно равно 500))???

Вероятно: <noindex>http://help.solidworks.com/2010/english/ap...rationname.html</noindex>
Ссылка на сообщение
Поделиться на других сайтах

maxfederal

Для начала, вешайте изменение значения на кнопку а не на загрузку формы))) Иначе получается деление на null.

И что не получается то?

boolstatus = swModel.AddConfiguration2("500", "", "", true, false, false, true, 256);

			Dimension swDimension = default(Dimension);

			swDimension = (Dimension)swModel.Parameter("D1@Бобышка-Вытянуть1");

			swDimension.SystemValue = Convert.ToInt32(textBox1.Text) / 1000;

			swModel.ClearSelection2(true);

			boolstatus = swModel.EditRebuild3();
Ссылка на сообщение
Поделиться на других сайтах

maxfederal

Какая разница? Синтаксис один и тот же.

Ещё раз:

Для начала, вешайте изменение значения на кнопку а не на загрузку формы))) Иначе получается деление на null.

и

И что не получается то?

на С шарпе написано,

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

Как изменить имя конфигурации (сейчас оно равно 500))???

Я почител, но никак не могу понять что необходимо написать в коде
Например, это:
'Объявляем всё, что нужно

Dim swApp As SldWorks.SldWorks

Dim swModel As ModelDoc2

Set swApp = Application.SldWorks

Set swModel = swApp.ActiveDoc





'VV===========тут происходит смена конфигурации и переименование=================VV

'Меняем активную конфигурацию, если надо, в данном случае с именем 500

swModel.ShowConfiguration2 "500"



'Меняем имя активной конфигурации, например, на 200,

'если указанное имя в конфигурациях уже есть, то переименование не произойдёт

swModel.ConfigurationManager.ActiveConfiguration.Name = "200"
Ссылка на сообщение
Поделиться на других сайтах

streamdown, подскажите можно ли записывать макрос на си шарпе а не на ВБА?

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

(swModel.ConfigurationManager.ActiveConfiguration.Name = TextBox1)

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

maxfederal

Попробуйте прочитать справку по API и по самому VBA!

Private Sub CommandButton1_Click()

Set swApp = CreateObject("SldWorks.Application")

 Set Part = swApp.ActiveDoc

 

boolstatus = Part.AddConfiguration2(TextBox2.Value, "", "", True, False, False, True, 256)

Dim myDimension As Object

Set myDimension = Part.Parameter("D1@Бобышка-Вытянуть1")

myDimension.SystemValue = TextBox1.Value / 1000

Part.ClearSelection2 True

boolstatus = Part.EditRebuild3()

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

Как его привязать?.

(swModel.ConfigurationManager.ActiveConfiguration.Name = TextBox1)

swModel.ConfigurationManager.ActiveConfiguration.Name = TextBox1.Value

подскажите можно ли записывать макрос на си шарпе а не на ВБА?

Так же как и VBA, только в окне сохранения выбрать другой тип файла (это кажется с SW2010, раньше такого не было).
Ссылка на сообщение
Поделиться на других сайтах

swModel.ConfigurationManager.ActiveConfiguration.Name = TextBox1.Value

На эту строчку ругается редактор макросов

а если предварительно новое имя конфы записать в текстовую переменную:

Dim confName as StringconfName = TextBox1.ValueswModel.ConfigurationManager.ActiveConfiguration.Name = confName
в прикрепке архив с рабочим макросом. макрос отработал нормально - в textbox вводи новое имя конфы, жми commandbutton, кофа переименовывается.

Скрытый текст: подключенные библиотеки:
Visual Basic For Applications

SolidWorks Extensibility Type Library

OLE Automation

SldWorks 2012 Type Library

SolidWorks 2012 Constant type library

SolidWorks 2012 Commands type library

Microsoft Forms 2.0 Object Library

Evaluation1

Macro2.zip

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

Спасибо большое!!!

Появилась неожиданая проблемка. Суть ее вот в чем: Когда я запускаю макрос с формой в режиме отладки, тоя вижу окно и могу вводить все данные в форму. Но когда я запускаю макрос в номальном режиме, то окно не появляется и не чего не происходит к тому же солид ни как не риагирует на мои действия. В диспетчере задач видно что макрос запущен и работает, но когда я снимаю задачу виполнения макроса, то солид снова нормально реагирует на действия. Такое чувство что форма не видимая.

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

maxfederal

Попробуйте прочитать справку по API и по самому VBA!

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

Появилась неожиданая проблемка.

У вас не проблемки, а одна большая проблема и эта проблема заключается в незнание основ не то, что SOLIDWORKS API, а даже основ программирования. На таких познаниях далеко не уедешь, нужно вдумчивое изучение базовых примеров по основам программирования, например: "Hello, Word!"

А также необходимо подтянуть базовые познания:

1. Как работать со справочной системой и что такое Help

2. Базовые методы поиска и составления запросов в поисковых системах по интернету.

Такое чувство что форма не видимая.

А вы её отображали, что бы увидеть? Что-нибудь вроде этого: UserForm1.show vbModal или UserForm1.show vbModeles
Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

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

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

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

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

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



  • Сообщения

    • Aurifer
      Редактировал отдельно подсборку открывая через Windows. Потом открываю главную сборку, выходит сообщение "модели изменились, перестроить?", соглашаюсь, ошибка.  Редактировал прямо из основной сборки, кнопкой "редактировать сборку" в дереве построений. Эффект тот же.  Из ограничений, каркас на котором крепятся валы, выбираю ПКМ - "зафиксированный". Чтобы остальные детали (подсборки) двигались относительно валов. И в то же время в "свойства компонента" - "решить как" - ставлю "свободно". Чтобы валы можно было сдвигать/раздвигать между собой. Если решить как, ставлю "точно", то опять же ошибка перестроения.  P.s: Картинку мою видно? Как то криво у меня отображает. 
    • maxx2000
      редактировать можно по-разному, в контексте сборки, либо сделав подсборку активной и редактируется уже в контексте подсборки. А так всё что понятно что ты в сборке наложил ограничения, потом открыл подсборку и в ней наложил ограничения и у тебя естественно возник конфликт.
    • Aurifer
      Добрый день, подскажите что я делаю не так.  Имеется такая сборка: Расстояние между валами не фиксировал, чтобы потом сопряжения сделать по факту. Сборку сделал. Теперь задача сохранить деталь (подсборку) с зафиксированными валами. Но вот не задача.Редактирую подсборку прямо из сборки, делаю валы зафиксированными. Но при открытии файла вне сборки, валы фиксированны, но не в тех местах как в сборке, а в тех где они были до вставки в сборку.  Ладно, опять открываю эту подсборку, делаю в ней сопряжение "граничащее расстояние" . Расстояние оставляю, то которое программа автоматически подставила. Сохраняю. Основная сборка пытается перестроиться и выпадают ошибки, что нельзя решить данные сопряжения!  Пробовал измерить расстояние на ответной части и вбить вручную, ошибки перестроения.  Любые попытки зафиксировать эти валы или их кронштейны приводят к ошибкам перестроения. 
    • SAVASTEEV
      Всем привет, у фанука есть цикл G72 очень удобный цикл когда нужно отрезным резцом сделать какие-либо проточки контура, а как можно задать такую же обработку на сиеменсе? Стойка siemens 808d ? То есть создаю нужный контур, но какой вариант обработки нужно указать? Либо как правильно нужно задать контур, попробовал разные варианты у меня резец выходит либо в заготовку (по симуляции), либо идет как проходной резец (типа как по тому же циклу G71 фанучному)   Буду благодарен за помощь, так-как вручную прописывать и рассчитывать все контуры такое себе.... В 840 и в 828 стойки вроде можно выбрать вариант проточки продольная либо поперечная, но вот как сделать это в 808.... 
    • maxx2000
      установить сверхкомпактные противовесы из обеднённого урана  а если серьёзно, то рассмотреть верньерный механизм
    • gudstartup
      а вы на манометр при резке посмотреть не пробовали?
    • Guhl
      Ха, точно. Я почему-то был уверен, что это только для аналоговых шпинделей. Спасибо! Это согласование датчика
    • Tad
      Делал не раз и не два. Более десячти лет тому назад рекомендовал эту схему с соответствующей картинкой на одном техническом форуме для проверки насоса. Там она была уместна. А теперь хотел бы услышать от вас, в чем я неправ - если выдаете себя за специалиста - аргументы в студию, дабы не прослыть простым трепачем.  
    • Иван1987
    • Maik812
      автоматиче5ская рольставня сама все сделает ей хватает мощности
×
×
  • Создать...