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

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

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

у вас

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

событие

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 пользователей

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




  • Сообщения

    • 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. Просверленные и/или расточенные отверстия будут не перпендикулярны нижней поверхности детали. Это не исправить никакой компенсацией.
    • Ветерок
      Сделать одно отверстие. Два других делать до поверхности первого отверстия или до его оси. (надеюсь Инвентор это умеет). Или делать отверстия до точки пересечения их осей.   Но в самом углу всё равно придется строить сферу. Только прямыми отверстиями не получится.   Или строить хотя бы одно отверстие вращением со сферическим торцом.
×
×
  • Создать...