Обсуждение видеоуроков AutoCAD VBA

Автор Тема: Обсуждение видеоуроков AutoCAD VBA  (Прочитано 156600 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обсуждение видеоуроков AutoCAD VBA
« Ответ #150 : 09-10-2017, 19:33:07 »
Есть таблица в экселе с 100 видами 12 ти угольников
Таблица в каком виде?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Re: Обсуждение видеоуроков AutoCAD VBA
« Ответ #151 : 09-10-2017, 20:14:01 »
Создать анонимный блок
Создавать все элементы внутри этого блока
Вставить блок
Разбить вхождение
Удалить вхождение

Откуда и как брать данные - вопрос шестнадцатый, и он может оказаться самым большим тормозом. А может и не оказаться ))
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн moland

  • ADN OPEN
  • Сообщений: 7
  • Карма: 0
Re: Обсуждение видеоуроков AutoCAD VBA
« Ответ #152 : 10-10-2017, 00:02:34 »
Таблица в каком виде?
В каждой строке находятся все размеры (длины)
1.Меня интересует можно ли в автокаде создать некое подобие библиотеки как в Компасе. т.е.выбрал нужную строку - фигура построилась.
2. Можно ли это делать с помощью VBA. Может есть у кого простой код как подгружая данные их экселя при помощи VBA построить любую фигуру например прямоугольник.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обсуждение видеоуроков AutoCAD VBA
« Ответ #153 : 10-10-2017, 00:09:59 »
В каждой строке находятся все размеры (длины)
Я сомневаюсь, что 12-угольник можно построить только по длинам.
1.Меня интересует можно ли в автокаде создать некое подобие библиотеки как в Компасе. т.е.выбрал нужную строку - фигура построилась.
Я не знаю что такое в Компасе библиотека. В AutoCAD есть палитры инструментов. В них в частности можно добавлять блоки. Похоже следует начать с изучения AutoCAD, а потом уже пытаться под него программировать. Причем не пытаться дело так, как это сделано в других CAD-системах. У AutoCAD есть своя логика и идеология работы.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Re: Обсуждение видеоуроков AutoCAD VBA
« Ответ #154 : 10-10-2017, 00:23:57 »
при помощи VBA построить любую фигуру например прямоугольник.
Отлично. Как прямоугольник ориентирован? Строится в текущей системе координат или в мировой? Какие у него вообще должны быть параметры? Построение идет по 2 или по 3 точкам?
И подобных вопросов может быть тьма. Советую прислушаться к тому, что говорит Александр.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн moland

  • ADN OPEN
  • Сообщений: 7
  • Карма: 0
Re: Обсуждение видеоуроков AutoCAD VBA
« Ответ #155 : 10-10-2017, 00:29:50 »
12-ти угольник это пример.

ОК. Мне нужно построть квадрат, но данные о стороне брать извне. Это самая простая задача которую можно представить. Как мне это сделать посредством VBA. В видеоуроках есть что выводится msgbox со сторонами блока, взятыми из экселя или маткада (правда тоже через эксель в итоге). А мне нужно построить блок, взяв размеры извне. Помогите. Мне кажется этой очень простой задачей. дальше я сам разберусь.
как угодно ориентирован. просто чтобы он в итоге строился. Примеров по VBa для автокада не так много в Интернете. Самый простой случай. Хочу чтобы построился квадрат по ширине взятой извне.

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Re: Обсуждение видеоуроков AutoCAD VBA
« Ответ #156 : 10-10-2017, 00:36:23 »
Ок, повторю: система координат? Угол поворота? Откуда брать точки построения?
Если все эти данные есть, то самое простое будет (расписываю алгоритм, поскольку установленного VBA Enabler нет и ставить как-то у меня нет желания ;)):
1. Объявить пользовательский тип данных, в котором хранить координаты точки вставки, угол поворота и нормаль будущего прямоугольника / многоугольника / блока
2. Объявить массив этого пользовательского типа данных (или коллекцию - что больше нравится)
3. Открыть файл Excel (или любой другой источник данных) и прочитать данные, постоянно дополняя массив / коллекцию
4. Проходя по каждому элементу массива / коллекции, выполнять построение соответствующих примитивов.

Как-то так, я думаю.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обсуждение видеоуроков AutoCAD VBA
« Ответ #157 : 10-10-2017, 00:37:15 »
Мне нужно построть квадрат, но данные о стороне брать извне.
А мне нужно построить блок, взяв размеры извне.
Определись что  тебе нужно. Квадрат в AutoCAD можно построить десятком разных способов. Это и четыре отрезка, и замкнутая полилиния с 4-мы сегментами, и 3DFACE, и SOLID и т.д. и т.п.
Блок - это блок. Я бы хотел бы чтобы мы разговаривали на одном языке. И этот язык был бы языком терминов AutoCAD.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн moland

  • ADN OPEN
  • Сообщений: 7
  • Карма: 0
Re: Обсуждение видеоуроков AutoCAD VBA
« Ответ #158 : 10-10-2017, 00:55:40 »
ОК. в принципе все понятно. Буду признателен. если сбросите код VBA или ссылку на него, который ХОТЬ ЧТО НИБУДЬ СТРОИТ. Отрезок, два отрезка, окружность, полилинию, дугу, редуктор в сборе.
 Начало координат самое что ни на есть любое. Направдение тоже.
Я просто хочу посмотреть на любой код или ссылку на него который ЧТО_НИБУДЬ СТРОИТ. А вы мне в ответ 10 вопросов, а какого цвета линии, а начало координат, а плоскости, а толщина линий., а по скольки -точкам. Я исхожу из того что если смогу построить 1 линию смогу построить все.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обсуждение видеоуроков AutoCAD VBA
« Ответ #159 : 10-10-2017, 00:58:34 »
Буду признателен. если сбросите код VBA или ссылку на него, который ХОТЬ ЧТО НИБУДЬ СТРОИТ
Вот это строит квадрат при помощи облегченной полилинии. Запрашивается левый нижний угол и высота квадрата:
Код - Visual Basic [Выбрать]
  1. Sub Add_Sqr()
  2.    
  3.     Dim returnPnt As Variant
  4.     returnPnt = ThisDrawing.Utility.GetPoint(, "Укажите левый нижний угол квадрата: ")
  5.     Dim basePnt(0 To 2) As Double
  6.     basePnt(0) = returnPnt(0): basePnt(1) = returnPnt(1): basePnt(2) = returnPnt(2)
  7.    
  8.     Dim returnDist As Double
  9.     returnDist = ThisDrawing.Utility.GetDistance(basePnt, "Укажите высоту квадрата: ")
  10.  
  11.     Dim plineObj As AcadLWPolyline
  12.     Dim points(0 To 7) As Double
  13.    
  14.     points(0) = basePnt(0): points(1) = basePnt(1)
  15.     points(2) = basePnt(0): points(3) = basePnt(1) + returnDist
  16.     points(4) = basePnt(0) + returnDist: points(5) = basePnt(1) + returnDist
  17.     points(6) = basePnt(0) + returnDist: points(7) = basePnt(1)
  18.  
  19.     Set plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
  20.     plineObj.Closed = True
  21.    
  22.     ZoomExtents
  23.    
  24.    
  25. End Sub
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Пашин Евгений

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
Re: Обсуждение видеоуроков AutoCAD VBA
« Ответ #160 : 10-10-2017, 06:47:14 »
Упс, тут уже есть ответ.

Оффлайн moland

  • ADN OPEN
  • Сообщений: 7
  • Карма: 0
Re: Обсуждение видеоуроков AutoCAD VBA
« Ответ #161 : 10-10-2017, 09:05:55 »
ОК. Спасибо.
То что нужно.
И теперь главный вопрос ради чего я это начал.
У нас на заводе изготавливают отводы секторные из труб. Их большое кол-во. Разные диаметры, длины плеч (сами плечи в одном отводе могут быть разными, углы до 90 градусов (45,46,78.5, и т.д) т.е ассортимент большой. Я геометрически их раасчитал в экселе и с помощью VBA написал программу. Через параметризацию в автокаде я добился нужного результата, но там нужно все параметры (около 10 шт) каждый раз вводить заново и чертеж тогда перестраивается как нужно и это работает.
1.А мне хотелось бы чтобы можно было выбирать из списка что-ли. Можно ли так сделать в автокаде. Или я вообще не понимаю философию автокада.
2. И еще вопрос можно ли строить эти отводы подгружая информацию через эксель. В экселе то у меня все рассчитано.
3. Эту задачу можно ли решить через VBA? Я несмотря на свои 10 вопросов не получил ответ можно ли имея в экселе в ячейке а1 число 10 и запустив соответствующий макрос добиться построения квадрата в любой области чертежа со стороной 10 мм. Я вообще не нашел информации (кода) чтобы так делали. Может так просто не делают в автокаде?




У меня вопрос к специалистам как бы вы реализовали это задачу, просто направление (через VBA. через параметризацию. еще как-нибудь может).

Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 470
  • Карма: 63
Re: Обсуждение видеоуроков AutoCAD VBA
« Ответ #162 : 10-10-2017, 09:07:36 »
Можно, реализовал бы на dotNET без Excel'я

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Обсуждение видеоуроков AutoCAD VBA
« Ответ #163 : 10-10-2017, 09:09:53 »
Я несмотря на свои 10 вопросов не получил ответ можно ли имея в экселе в ячейке а1 число 10 и запустив соответствующий макрос добиться построения квадрата в любой области чертежа со стороной 10 мм.
Ты уроки вообще-то посмотрел? Видеоуроки AutoCAD VBA
Там про получение информации из Excel и построение по полученным данным.
На вопрос отвечаю - можно. Всё что для этого нужно есть в моём коде и уроках. Дерзай!
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн moland

  • ADN OPEN
  • Сообщений: 7
  • Карма: 0
Re: Обсуждение видеоуроков AutoCAD VBA
« Ответ #164 : 10-10-2017, 09:21:08 »
ОК. Спасибо. Для начала хватит инфы