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

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

Solidworks 2015. Новости для тех, кто в теме:

- Теперь third-party data можно читать только с помощью API SW.

- Ключ для Document Manager теперь нужно будет обновлять каждый год. Ключ будет распространяться только на те участки API, которые вы затребуете.

- Solidworks 2015 написан на VS 2012 SP4.

- Теперь не будут создаваться менюшки в top-level. Всё будет помещаться в подменюхи Tools.

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


...

- Ключ для Document Manager теперь нужно будет обновлять каждый год. Ключ будет распространяться только на те участки API, которые вы затребуете.

...

Зря они это сделали... :sad:

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

Как программно получить метку вида (например местный вид "А(2:1)" ) как объект и как текст, если на виде ещё куча дополнительных аннотаций?

Есть такая штука как GetUniqueName(), но она возвращает метку из дерева т.е "местный вид А (2:1)", мне же хочется ту метку, что прикреплена к виду т.е "А (2:1)"

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

Сам нашёл.

String sNoteText = swNote.PropertyLinkedText;
       if (sNoteText.Contains("VLNAME"))
          {
              //.......
          }
Ссылка на сообщение
Поделиться на других сайтах

Давно, очень давно никто не выкладывал свежачка)))

Решил тут воплотить идею вставки номера листа к виду. Сделал пока к местному виду. Есть затык, подсобите люди знающие, как найти нижний правый угол метки вида. В данном случае метка выносного вида (та, которая на втором листе "S(1)").

GetTextPositionAtIndex всегда возвращает одно и то же число. Написал методу как по учебнику))

 private Double[] GetDownRightCorner(Note swNote)
        {
            Annotation swAnn = swNote.GetAnnotation();
            Double[] UpperLeftCorner = swAnn.GetPosition();
            Double[] UpperRightCorner = swNote.GetUpperRight();
            Double Height = swNote.GetHeight();
            return new double[]{UpperRightCorner[0]+0.002, UpperRightCorner[1],UpperRightCorner[2]};
        }

 

 

То же самое, одно и то же число, если метку вида передвинуть.

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

И снова сам... всё сам  :sad:

Для того, чтобы найти метку вида, нужно просто получить первый INote для вида. Для того, чтобы словить GetUpperRight(), нужно обязок выделить эту заметку. Выделять нужно через IAnnotation. Фи, как заморочено сделано.

 

Текст метки вида так и не удалось получить, если кто подскажет, буду очень благодарен. Сам пошёл другим (менее качественным путём).

 

Пока для местных видов на разных листах - работает.

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

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

Есть ли какая информация по SWE-PDM API

В идеале с рабочими примерами.

или хотя бы ссылка на начальную литературу

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

Удалено!

Причина - нет ответа.

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

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

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

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

Давно заинтересовавший меня вопрос, наконец то мной решён

Как прочитать свойства материала со вкладки "Настройка".

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

Добрый день. Пишу небольшую програмку на VBA.


Помогите решить следующую проблему. Есть многотельная деталь (где-то 10 тел), требуется выделить конкретную деталь (это не сложно) и переименовать в конкретное имя (вот это не получается).


Спасибо

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

В детали выделяете деталь при наличии 10 тел? :blink:

Вам имя тела надо что-ли переименовать?

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

В детали выделяете деталь при наличии 10 тел? Вам имя тела надо что-ли переименовать?

 

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

 

Да многотельная деталь из 6-10 тел всегда по разному.

Выделяю тело при помощи boolstatus = Part.Extension.SelectByID2("", "SOLIDBODY", 0, 0, 0, False, 0, Nothing, 0) используя только координаты поверхности тела (координаты всегда известны), не используя название тела, которое всегда разное.

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

post-36106-0-18798700-1413782998_thumb.jpg

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

Доброй ночи Господа.

Ломаю голову уже не один день.

С помощью Макроса в СБОРКЕ надо присвоить материалл ТВЕРДОМУ ТЕЛУ

От справки Solida глаза на выкоте

Прикрепляю файлы до чего дошел :wallbash:  

 Просьба обьяснить по подробнее

Заранее благодарен

VBA.rar

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

Доброго времени суток.

Большое спасибо за ответы  :smile:

Выкладываю макрос. Заменяет или Назначает Материал с Базы Солида по выбору Твердого тела и имени его. Окна выбора не добавлял .Каждый на свой вкус их добавит.

 

Dim swApp As SldWorks.SldWorks

Dim swModel As SldWorks.ModelDoc2

Dim swAssem As SldWorks.AssemblyDoc

Dim swPart As SldWorks.PartDoc

Dim swBody As SldWorks.Body2

Dim boolstat As Boolean

Dim BodyMaterialError As Long

Dim CompAssem As Variant

Dim ArrCompAssem As Variant

Dim Bodies As Variant

Dim BazaMat As String

Dim NameMat As String

Dim i As Integer

Dim Telo As String

Sub main()

Set swApp = Application.SldWorks

Set swModel = swApp.ActiveDoc

BazaMat = "solidworks materials.sldmat"

NameMat = "Бальса"
Telo = "Бобышка -Вытянуть2"
'====================================================================

If swModel.GetType = swDocASSEMBLY Then

Set swAssem = swModel

ArrCompAssem = swAssem.GetComponents(False)

For Each CompAssem In ArrCompAssem

Set swModel = CompAssem.GetModelDoc2()

If swModel.GetType = swDocPART Then

Set swPart = swModel

Bodies = swPart.GetBodies2(swAllBodies, False)

For i = 0 To UBound(Bodies)

Set swBody = Bodies(i)

If swBody.Name = Telo Then

boolstat = swBody.Select2(False, Nothing)

BodyMaterialError = swBody.SetMaterialProperty("По умолчанию", BazaMat, NameMat)

End If

Next i

End If

Next

End If

swBody.ClearSelection2 True

'====================================================================

If swModel.GetType = swDocPART Then

Set swPart = swModel

Bodies = swPart.GetBodies2(swAllBodies, False)

For itr = 0 To UBound(Bodies)

Set swBody = Bodies(itr)

If swBody.Name = Telo Then

boolstat = swBody.Select2(False, Nothing)

BodyMaterialError = swBody.SetMaterialProperty("По умолчанию", BazaMat, NameMat)

End If

Next itr

End If

swBody.ClearSelection2 True

'====================================================================

MsgBox " Макрос выполнен "

End Sub


Доброго времени суток.

Большое спасибо за ответы  :smile:

Выкладываю макрос. Заменяет или Назначает Материал с Базы Солида по выбору Твердого тела и имени его. Окна выбора не добавлял .Каждый на свой вкус их добавит.

 

swp -  

Замена материала по имени твердого тела .rar

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

Привет Всем! Может кто ни будь выложить код с  PropertyManagerPageSelectionbox рабочий  :rolleyes: 

Пример с Helpa не предлагайте  :thumbdown: 

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

Что вас там конкретно смутило?

Добрый вечер если это вопрос ко мне, отвечаю.

В примере дается только отрисовка компонентов.

Хотелось узнать как програмно добавить в SelectedItems обьекты?

Как удалить класс адекватно?

При добавлении своего кода виснет комп))))

В примере "Create PropertyManager Page" добавил только в OnSubmitSelection

Заранее Благодарен за Помощь

менеджер свойств материал.rar

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

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

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

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

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

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

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

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

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

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

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




×
×
  • Создать...