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

проблема с макросами


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

Dim swApp As Object

Dim Part As Object

Dim boolstatus As Boolean

Dim longstatus As Long, longwarnings As Long

Dim FeatureData As Object

Dim Feature As Object

Dim Component As Object

Sub main()



Set swApp = Application.SldWorks



Set Part = swApp.ActiveDoc

Part.ClearSelection2 True

Part.CreateCircle 0, 0, 0, 0.02243070422535, -0.0169214084507, 0

Part.ClearSelection2 True

Part.CreateCircle 0, 0, 0, 0.0129861971831, -0.01337971830986, 0

Part.ActiveView().ZoomByFactor 1.01

Part.ActiveView().ZoomByFactor 1.01

Part.ClearSelection2 True

Part.InsertSketch2 True

boolstatus = Part.Extension.SelectByID2("Дуга2@Эскиз1", "EXTSKETCHSEGMENT", -0.001943030284829, 0.002285745679694, 0, True, 0, Nothing, 0)

boolstatus = Part.Extension.SelectByID2("Дуга1@Эскиз1", "EXTSKETCHSEGMENT", -0.002593892442302, 0.003044950245533, 0, True, 0, Nothing, 0)

Part.ShowNamedView2 "*Триметрия", 8

Part.ClearSelection2 True

boolstatus = Part.Extension.SelectByID2("Эскиз1", "SKETCH", 0, 0, 0, False, 4, Nothing, 0)

Part.SelectionManager.EnableContourSelection = 1

boolstatus = Part.Extension.SelectByID2("Эскиз1", "SKETCHCONTOUR", 0, 0, 0, True, 4, Nothing, 0)

boolstatus = Part.Extension.SelectByID2("Эскиз1", "SKETCHCONTOUR", 0, 0, 0, True, 4, Nothing, 0)

Part.FeatureManager.FeatureExtrusion2 True, False, False, 0, 0, 0.01, 0.01, False, False, False, False, 0.01745329251994, 0.01745329251994, False, False, False, False, 1, 1, 1, 0, 0, False

Part.SelectionManager.EnableContourSelection = 0



boolstatus = Part.Extension.SelectByID2("", "FACE", 0, 0.003494960490627, -7.513467563172E-04, True, 0, Nothing, 0)

boolstatus = Part.Extension.SelectByID2("Точка1@Исходная точка", "EXTSKETCHPOINT", 0, 0, 0, True, 0, Nothing, 0)

Part.CreatePlaneAtSurface3 0, False, False, False, 0.7853981633975, True





boolstatus = Part.Extension.SelectByID2("Плоскость1", "PLANE", 0, 0, 0, False, 0, Nothing, 0)

Part.InsertSketch2 True

Part.ClearSelection2 True

Part.CreateLine2(-0.003, 0.01343714498129, 0, -0.003, -0.01256147671741, 0).ConstructionGeometry = True

Part.SetPickMode

Part.ClearSelection2 True

Part.CreateLine2(0.01269945861493, 0, 0, -0.02006488627437, 0, 0).ConstructionGeometry = True

Part.SetPickMode

Part.ClearSelection2 True

Part.InsertSketch2 True

boolstatus = Part.Extension.SelectByID2("Точка1@Исходная точка", "EXTSKETCHPOINT", 0, 0, 0, False, 0, Nothing, 0)

End Sub

Ошибка на строке:

Part.CreateLine2(-0.003, 0.01343714498129, 0, -0.003, -0.01256147671741, 0).ConstructionGeometry = True

В чем может быть проблема? Макрос был создан системой автоматически.

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


Проверь, есть ли такое имя плоскости ("Плоскость1"), которую выбираешь в строке

boolstatus = Part.Extension.SelectByID2("Плоскость1", "PLANE", 0, 0, 0, False, 0, Nothing, 0)

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

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

Такое ощущение, что sw игнорирует это событие. И в код макроса ни чего не вставляет.

Как создать плоскость программным путем?

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

Как создать плоскость программным путем?

Ну например:

retval = ModelDoc2.CreatePlaneAtOffset3 ( val, flipDir, autoSize )

Только, как я понял, в макросе был выбор именно "Плоскость1"

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

Именно так она и называлась. В этой ф-ции можно вставить название плоскости?

Что значат параметры этой ф-ции?

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Guhl
      Вы ж меня собрались сводить на современные станки, а тут выясняется, что уже им как минимум 20 лет Если рука упрется в инструмент, ничего страшного не случится. На 1/8 отворачивают, потому что руке нужно время остановится, и неважно есть там тормоз или нет. А вот если в результате супертонких настроек для экономии 200 мсек, упадет фреза, стоимостью как сэкономленное время за 100 лет, вот это будет номер 
    • gudstartup
      вы можете предполагать все что угодно но рука должна быть не в зоне шпинделя а конкретно четко давать сигнал на разжим в строго определенной позиции и при этом шпиндель должен успеть разжаться когда рука начинает движение вниз по траектории. вы много чего подозреваете а я обслуживаю эти станки в течении 20 лет и ваше   0 целых, хрен десятых это с десяток градусов. вы забываете о скорости с которой движется рука.   настраивается не мотор а кулачки по фазам движения а они стоят на редукторе и мотором вы ничего не настроете  тут про 1\8 оборота имеется ввиду когда уже найден нужный угол но можно и без этого обойтись.  
    • maxx2000
      ой да ладно, доступ он будет делать. скачал в магазине хром расширение и сделал
    • filsan
      Благодарю. Попробую выше упомянутыми инструментами. Правда с дополнительными графиками и пользовательским анализом придется повозиться. Придется-таки делать доступ на народный ресурс за справкой))
    • Guhl
      В вашей документации однозначно сказано, что если инструмент выпадает, то произведите настройку Это не противоречит моему утверждению, что цанга должна открываться тогда и только тогда, когда рука в зоне шпинделя, то есть в зоне, где исключается выпадение инструмента    И 1/8 оборота мотора, это сколько в градусах поворота руки? Подозреваю, что 0 целых, хрен десятых
    • gudstartup
      нет там тормоза он включается только в конце цикла. это целиком динамический процесс. да вы равно не поймете- это же не логично а спец оправка по вашему зачем?? это подача сигнал на разжим шпинделя регулируется и если неправильно отрегулируете то инструмент либо выпадет либо будет выдирать.  
    • Guhl
      Так это и есть условие "рука в зоне шпинделя" То есть зона, где инструмент гарантированно не выпадает А отвернуть на 1/8, потому что тормоз накладывается   
    • gudstartup
      а вам что логику ладдера в мануале описывать надо? вот специально для вас  
    • Bot
      CGTech с гордостью представляет новейший релиз VERICUT версии 9.5. VERICUT – это ведущее в отрасли решение для симуляции, верификации и оптимизации таких процессов как обработка металла, аддитивное производство, гибридное производство и композиты. Это независимое автономное ПО, которое легко интегрируется со всеми основными системами CAM и управления инструментом, а также с существующими УП, даже с теми, которые были отредактированы или созданы средствами, отличными от CAM. Смотреть полностью
    • Guhl
      Можете показать мануал, где это описано? Экскурсий не надо. Достаточно привести документальные доказательства
×
×
  • Создать...