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

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

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

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


Подскажите пожалуйста, каким способом можно создать справочную плоскость "среднюю", на базе 2 параллельных плоскостей. И второй вопрос доступны ли в api дополнительные сопоряжения? В частности "ширина"

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

Еще вопрос по табличке BOM, как можно вернуть ссылку на деталь по выделенной ячейке? Хочу создать макрос , который будет вставлять деталь на лист чертежа, указав на поле таблицы.

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

Можете подсказать пожалуйста!! У меня вопрос, как написать простой макрос который добавлял в свойствах файла определенный значение. Например.....наименование и обозначение   и по ним бы прописывал то что я хочу.....шифр и имя детали например. Мне интересно сам принцип написание этого макроса. Я  в справке АПИ не мог найти. Буду очень благодарен если кто нибудь подскажет как написать!!!

Ссылка на сообщение
Поделиться на других сайтах
В 28.04.2018 в 17:42, Санёёк сказал:

У меня вопрос, как написать простой макрос который добавлял в свойствах файла определенный значение. Например.....наименование и обозначение   и по ним бы прописывал то что я хочу.....шифр и имя детали например.

Разбирайтесь, Change_property_V2.0http://kelnyproject.ucoz.ru/load/6-1-0-8

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

Всем привет. Не смог разобраться до конца с методом GetProjectedPointOn применительно к сборке. В деталях точку данный метод проецирует, в сборке не получается. У меня вопрос : у функции 2 аргумента вектор-направления и точка. Если я работаю в сборке, нужно ли мне делать трансформацию координат этих аргументов в пространство компонента детали на которую я пытаюсь спроецировать точку?.

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

Разобрался, причина была в том что не была объявлена переменная Dim mathUtils As SldWorks.MathUtility.

Ссылка на сообщение
Поделиться на других сайтах
В 28.04.2018 в 17:42, Санёёк сказал:

Можете подсказать пожалуйста!! У меня вопрос, как написать простой макрос который добавлял в свойствах файла определенный значение. Например.....наименование и обозначение   и по ним бы прописывал то что я хочу.....шифр и имя детали например. Мне интересно сам принцип написание этого макроса. Я  в справке АПИ не мог найти. Буду очень благодарен если кто нибудь подскажет как написать!!!

На мой взгляд удобнее использовать Excel таблицу параметров, но это дело вкуса. Можно и как во вложенном примере

+Масса+Материал.swp

Несколько сложнее (иначе) дела обстоят со свойствами рисунков профилей, особенно если исходный рисунок задает параметрически размеры нескольких конфигураций. Тут как вариант можно использовать блок "уравнения".

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

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

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, ILL сказал:

@alek77 , а причем тут Solidworks API??

Я перефразирую тогда: 

Подскажите пожалуйста, как на виде развертки в чертеже добавить габаритные размеры и размеры до линий сгиба с помощью API? 

Я даже не подумал, что если спрашиваю в этой ветке, то мой вопрос будет непонятен, сорри  

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

Всем привет

Можно ли подружить солид с visual studio 2017 так, чтобы редактирование макроса открывалось в VS2017?

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

 

8 часов назад, alek77 сказал:

Можно ли

нет.

 

В 05.05.2018 в 21:47, alek77 сказал:

как на виде развертки в чертеже добавить

1) Выбрать исходную точку, выбрать грань, вставить модельные размеры.

2) Хитрым способом выбрать кромку, найти все эскизы, проставить размеры до них.

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

Здравствуйте! По много раз за день приходится пользоваться командой "Копировать проект" со стандартным фиксированным для нас набором параметров. Можно ли как-то с помощью макроса это сделать? Как выйти на этот модуль? Запись макроса, естественно, не помогла. ))

Всем заранее спасибо! )

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

Большое спасибо! Буду разбираться. )

Ссылка на сообщение
Поделиться на других сайтах
23 часа назад, Gaidn сказал:

Можно ли как-то с помощью макроса это сделать

 

Возможно, подойдёт готовое решение

 

 

Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, ILL сказал:

 

Возможно, подойдёт готовое решение

Ссылка что-то не работает. )

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

Ссылка что-то не работает. )

 

Похоже, глюк форума.. Со второго раза правильно ссылку открывает..

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

Добрый, день. Прошу помощи у тех кто освоил api Pack and go? За основу взял код из хэлпа. Проблема при повторном запуске макроса вставки в сборку. На ролике видно, если повторно использую исходный компонент, то подхватываются предыдущие копии. Кто подскажет куда копать?

Скрытый текст

 

Set swPackAndGo = swModelDocExt.GetPackAndGo
' Get number of documents in assembly
namesCount = swPackAndGo.GetDocumentNamesCount'на этом этапе подхватываются лишние экземпляры
Скрытый текст

'---------------------------------------------------------------------------
' Предварительные условия:
' 1. Выбрать заменяемый компонент в дереве построения головной сборки.
' 2. Запустить макрос.
'
' Результат работы программы:
' 1. Генерирует цифровой префикс к выбранному компоненту включая вложенные компоненты.
' 2. Создает экзэмпляр компонента и всех чертежей в папке головной сборки
' 3. Заменяет выбранный компонент созданным экземпляром.
'---------------------------------------------------------------------------


Option Explicit

Dim swApp As SldWorks.SldWorks
Dim swModelDoc As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim swPackAndGo As SldWorks.PackAndGo
Dim openFile As String
Dim pgFileNames As Variant
Dim pgFileStatus As Variant
Dim pgGetFileNames As Variant
Dim pgDocumentStatus As Variant
Dim status As Boolean
Dim warnings As Long
Dim errors As Long
Dim i As Long
Dim namesCount As Long
Dim myPath As String
Dim statuses As Variant

Dim FilePath1 As String
Dim FilePath2 As String
Dim FileName1 As String
Dim FileName2 As String
Dim curObj As Object
Dim objComponent As SldWorks.Component2
Dim SelMgr As SldWorks.SelectionMgr
Dim swAssy As SldWorks.AssemblyDoc
Public Prefix As String


Private Function myGetDate() As String
    Dim MyStr As String
    Dim MyDate As Variant

    MyDate = Now()
    MyStr = Format(MyDate, "yyMMddHHmmss")

    myGetDate = MyStr
End Function
'функция исключения имени файла из полного пути
'Path - полный путь к файлу (включая имя файла)
Private Function myGetFolder(Path As String) As String

myGetFolder = Left$(Path, InStrRev(Path, "\"))

End Function

Sub main()

Set swApp = Application.SldWorks

' Open assembly

Set swModelDoc = swApp.ActiveDoc
Set swModelDocExt = swModelDoc.Extension

Set SelMgr = swModelDoc.SelectionManager
Set curObj = SelMgr.GetSelectedObjectsComponent4(1, 0)
'i = SelMgr.GetSelectedObjectCount2(-1)
Set objComponent = curObj
Set swAssy = swModelDoc

FilePath2 = curObj.GetPathName() 'путь к детали с выбраными телами
FileName2 = Dir(FilePath2, vbDirectory)
FilePath1 = swModelDoc.GetPathName()
FileName1 = Dir(FilePath1, vbDirectory)
FilePath1 = myGetFolder(FilePath1) 'убираем имя компонента из пути
FilePath2 = myGetFolder(FilePath2) 'убираем имя компонента из пути
Prefix = myGetDate
MainForm.TextBox1.Text = Prefix
MainForm.Show
' Open assembly
Set swModelDoc = swApp.OpenDoc6(FilePath2 + FileName2, swDocASSEMBLY, swOpenDocOptions_Silent, "", errors, warnings)
' Get Pack and Go object
Debug.Print "Pack and Go"
Set swPackAndGo = swModelDocExt.GetPackAndGo
' Get number of documents in assembly
namesCount = swPackAndGo.GetDocumentNamesCount
Debug.Print "  Number of model documents: " & namesCount

' Include any drawings, SOLIDWORKS Simulation results, and SOLIDWORKS Toolbox components
swPackAndGo.IncludeDrawings = True
Debug.Print "  Include drawings: " & swPackAndGo.IncludeDrawings
swPackAndGo.IncludeSimulationResults = False
Debug.Print "  Include SOLIDWORKS Simulation results: " & swPackAndGo.IncludeSimulationResults
swPackAndGo.IncludeToolboxComponents = False
Debug.Print "  Include SOLIDWORKS Toolbox components: " & swPackAndGo.IncludeToolboxComponents

' Get current paths and filenames of the assembly's documents
status = swPackAndGo.GetDocumentNames(pgFileNames)
Debug.Print ""
Debug.Print "  Current path and filenames: "
If (Not (IsEmpty(pgFileNames))) Then
    For i = 0 To UBound(pgFileNames)
        Debug.Print "    The path and filename is: " & pgFileNames(i)
    Next i
End If

' Get current save-to paths and filenames of the assembly's documents
status = swPackAndGo.GetDocumentSaveToNames(pgFileNames, pgFileStatus)
Debug.Print ""
Debug.Print "  Current default save-to filenames: "
If (Not (IsEmpty(pgFileNames))) Then
    For i = 0 To UBound(pgFileNames)
        Debug.Print "   The path and filename is: " & pgFileNames(i)
    Next i
End If

' Set folder where to save the files
myPath = FilePath1
status = swPackAndGo.SetSaveToName(True, myPath)
' Flatten the Pack and Go folder structure; save all files to the root directory
swPackAndGo.FlattenToSingleFolder = True
' Add a prefix to the new Pack and Go filenames

swPackAndGo.AddPrefix = Prefix

 ' Verify document paths and filenames after adding prefix and suffix
ReDim pgGetFileNames(namesCount - 1)
ReDim pgDocumentStatus(namesCount - 1)
status = swPackAndGo.GetDocumentSaveToNames(pgGetFileNames, pgDocumentStatus)
Debug.Print ""
Debug.Print "  My Pack and Go path and filenames after adding prefix: "
For i = 0 To (namesCount - 1)
     Debug.Print "    My path and filename is: " & pgGetFileNames(i)
Next i
' Pack and Go
statuses = swModelDocExt.SavePackAndGo(swPackAndGo)
swApp.CloseDoc (FilePath2 + FileName2)
status = swAssy.ReplaceComponents(FilePath1 + Prefix + FileName2, "", True, True)
End Sub

 

solid 2016 sp5.0

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

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

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

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

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

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

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

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

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

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

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



  • Сообщения

    • Mr_Gray
      Если и расфрезеровывать, то обязательно с коррекцией радиуса инструмента G41, чтобы попасть в середину поля допуска. Но лучше все же разверткой или расточной головкой.
    • lem_on
      При хорошей геометрии станка, можно и расфрезеровать. Если неглубокие отверстия, можно и тс сверлом сразу размер получить.
    • Snake 60
      Скорее всего исправляли в конкретной сборке, для конкретных тел. Насколько я помню, надо в самом эскизе профиля заполнить свойство Description
    • Snake 60
      Делаете дырку в свае - вставляете в нее трубу и 2 человеко-силы крутят сваю ) Дёшево и сердито и не нужен никакой планетарный редуктор ))
    • gudstartup
      вы всегда ищите свой путь или будете делать то что вам советуют? с самого начала прежде чем приступать к экспериментам вам нужно было вынуть носитель и сделать образ. diskcopy делает копию гибкого диска на другой а вам надо сделать образ жесткого диска или карты памяти. делайте как советует @Viktor2004 иначе еще чего нибудь сломаете или вам станок не нужен и вы его приобрели для экспериментов ? вот а печатной машинке из прошлого нельзя а вот на синумерике можно - удивительные вещи в настоящем происходят!! на 100 % уверен что там не модуль а либо писимиси ай либо жд @mircomax81 хотите работать в дос почитайте помощь по командам 
    • PuKoLLleT
      Доброго дня всем. Поделитесь опытом,раньше такое не доводилось делать. На торце фланца нужно сделать  восемь отверстий ф17H7 на токарно-фрезерном станке с осью Y ,имеется ManualGuide.В моем понимании нужно просверлить,а затем торцевой фрезой расточить нужный диаметр.Получится такой фокус,или надо разверткой доводить нужный размер?  Стойка Fanuc 0i-Tf.
    • Snake 60
      Всё верно, я даже русификатор делал для него (ушло на это где-то около года). Хороший софт был, я всех знакомых на него подсадил в свое время :) У меня даже где-то образ на виртуалке лежит с SW2014+MechSoft, Жаль, что автодеск его поглотил, а не DS :( А по сути вопроса, проектировал двухступенчатый планетарный редуктор в свое время. Что было нужно: Справочник по планетаркам (автора не помню, если надо поищу), из софта MathCAD + GearTeq (софтина идет вместе с GearTrax, только рассчитывает и моделирует несколько зацеплений согласно выбранной схеме, в том числе планетарки) Ой и ошибаетесь. Звездочки - не равно зубчатые колеса в планетарке) Мы намучились с малой точностью изготовления на эл.эрозии, а Вы лазером ))) Был собран опытный образец редуктора с незакаленными деталями, чисто проверить геометрию, отладить сборку. Так потом начальство этот редуктор сказало испытать в бою, как я не противился)) Помер за пару дней интенсивных нагрузок ))) Материал, термообработка и точности изготовления решают )
    • Snake 60
      @Тихоход  Ещё один вариант - изучать программирование и писать свою программу/макрос. Вот пример конфигуратора двери: https://www.youtube.com/watch?v=wv4HryWQBSk
    • mircomax81
      Посредством Diskcopy можно сделать адекватную копию на флоппи диск?
    • Andrey_kzn
      Да, ведь советовали автору вытащить жёсткий диск и сделать образ. Неужели самому не интересно, как устроен этот старый промкомпьютер? Там может стоять как жёсткий диск, так и CF-карта, или же Disc-on-chip или Disc-on-module.  Как-то очень давно, на подобном промышленном оборудовании (большая печатная машина) я не смог перенести  ПО с родной CF - карты на другую, такого же размера но другой фирмы. Была также станочная оболочка под досом.  Образ я делал Нортон гостом, развернул его на другую CF-карту без проблем. Машина загрузилась нормально и работала ровно 2 дня, на неродной CF-карте,  потом зависла, и отказалась загружаться. Пришлось вызывать сервисника. От него мы узнали, что нельзя просто так взять и заменить карту  - носитель системного ПО, на другую. А полезли мы туда, так как руководство захотело печатать отчёты по работе машины. В станочном ПО такая функция была. Вот только принтер надо было купить у фирмы - производителя этой самой машины. В попытках заставить работать другой принтер мы редактировали файл  AUTOEXEС.BAT, на предмет загрузки драйвера принтера, ничего не получилось, зато перестали открываться некоторые страницы станочного ПО.  Образ у нас был давно снят, и мы развернули его на другую карту памяти. Родную карту я трогать не стал (как чувствовал, что нельзя ). Сервисник восстановил ПО с архивной дискеты на родную карту памяти, и всё заработало. Дискеты с архивами ПО шли вместе с документацией к машине.  Там были дискеты с Досом, станочной оболочкой, параметрами приводов, программой ПЛК. Он же и предупредил нас о предельно аккуратном обращении с родной картой памяти, и посоветовал немедленно сделать образы с архивных дискет, что мы сразу и проделали.. Вот такой сюрприз от машины эпохи Дос.
×
×
  • Создать...