Реклама i
Стань нашим партнером - зарабатывай с нами!
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > как с помощью vba начертить линию

как с помощью vba начертить линию

Ответ
Поиск в этой теме
Непрочитано 09.09.2008, 21:06
как с помощью vba начертить линию
vasyavip
 
Регистрация: 09.09.2008
Сообщений: 47

Здравствуйте, Господа!
Подскажите пожалуйста:
Как с помощью vba начертить группу линий, их образмерить и вставить на чертеже там, где это нужно пользователю!

Я хочу создать базу небольших примитивов, таких как:
линия разрыва, уровень, штамп, спецификация(с выбором количества строк), ведомость расхода стали и все это вставить туда куда надо пользователю а не привязывать к нулевой точке.
Спасибо за ответы.

З.Ы.
завтра скину сюда код спецификации (общестроительной), надеюсь на вашу критику.
Просмотров: 31050
 
Непрочитано 12.09.2008, 11:06
#21
stas_org


 
Регистрация: 05.04.2007
Самара
Сообщений: 1,199


Ну да ладно, Алексей а ты ПГСник, если до, то хотелось бы услышать твое авторитетное мнение по поводу http://dwg.ru/dnl/4412 и Vildar тоже. прошу прошения что не в теме, автор молчит.
stas_org вне форума  
 
Непрочитано 12.09.2008, 14:02
#22
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Если тебе этот макрос помогает ускорить работу, то он хороший

Еще бы графики добавить. Например выделил чертеж с арм.изделиями в виде блоков например и получил спецификацию и выборку.

Я например считаю арматуру ростверка. Все арматурные элементы (каркасы, сетки, стержни) в виде блоков с уникальными именами. Характеристики арм.элементов определяются по имени блока и дополнительно в диалоговом режиме. Ну и выдается ведомость арм. элементов ростверка, спецификации каркасов, сеток и выборка арматуры. Когда я пришел, мне эту фигню дали в рукопашную считать - несколько дней ушло, и тут-то мысль об автоматизации промелькнула )))

Теперь хочу что-то подобное сделать и для ж.б. изделий панелей и плит (у нас панельные дома), пока не соображу что к чему. Думаю создать отдельную тему. - Хотя мне их считать пока не давали ) - тетки бедные мучаются ))

ЗЫ пороль не подобрал )))
Vildar вне форума  
 
Непрочитано 12.09.2008, 14:19
#23
stas_org


 
Регистрация: 05.04.2007
Самара
Сообщений: 1,199


Меня интерисует твой опыт армированиния отдельными стержнями. Я так понял, каждый стержень- это блок, длинну (хоть она разная) можно определить, а вот класс, диаметр, или для каждой позиции блок надо. Я делалаю так: в опалубку в масштабе 1:1 расскладываю все стержни, затем копирую все, удаляю не нужные, и формирую рабочку. раскладку всей арматуры общитываю.
stas_org вне форума  
 
Непрочитано 12.09.2008, 14:40
#24
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


В наших ростверках отдельных стержней мало, и причем в основном один и тот же - 20 А-III L=2000. Блок так и называется "Стержень20". Длина = отрезку. А класс один для всех стержней, задается в настройках (которые сохраняю в отдельном файле).

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

Последний раз редактировалось Vildar, 12.09.2008 в 14:43. Причина: обшибки исправил
Vildar вне форума  
 
Непрочитано 12.09.2008, 14:53
#25
stas_org


 
Регистрация: 05.04.2007
Самара
Сообщений: 1,199


Ну да, у вас армирование по проще, есть вариант назначать отрезкам расширенные данные, только там ерунда с именами для расширенных данных, каждое должно быть уникальным. Может у таких мэтров как kpblc есть подобные инструменты, но они неохотно ими делятся для всеобщего пользования.
stas_org вне форума  
 
Непрочитано 12.09.2008, 15:44
#26
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


За Алексеем таково не замечалось, всегда пожалста )))
Vildar вне форума  
 
Непрочитано 12.09.2008, 15:48
#27
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,835


stas_org, я не использую расширенные данные. Принципиально
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 13.09.2008, 11:34
#28
vasyavip


 
Регистрация: 09.09.2008
Сообщений: 47


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

Вопрос: "как округлить число до двух знаков после запятой"?
Да и еще! Я хотел установить мою программу на другом компьютере, но там она расползлась по экрану и ничего стало не понятно!

Для Алексея! aka kpblc!
Немог ли ты показать пример кода создания анонимного блока, как его подвязать к моей таблице? Хотя бы к первым 10 строкам!
Надеюсь и уверен, что это будет интерестно всем!
Кстати, Алексей! нельзя ли в Vba добавить код LISP'а, ведь там наверняка можно вставлять кучу объектов туда, куда надо!
И если эток код сделать унивессальным? Чтобы его присоединять куда захочешь?? А-а??
Вложения
Тип файла: rar Сортамент2.rar (13.6 Кб, 99 просмотров)

Последний раз редактировалось vasyavip, 13.09.2008 в 12:30.
vasyavip вне форума  
 
Непрочитано 13.09.2008, 23:56
#29
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,835


vasyavip, а ты код вообще-то смотрел?
Код:
[Выделить все]
' Теперь создаем анонимный блок
  Dim blkDef As AcadBlock, BasePoint(2) As Double
  BasePoint(0) = 0#: BasePoint(1) = 0#: BasePoint(2) = 0#
  Set blkDef = ThisDrawing.Blocks.Add(BasePoint, "*U")
  ' Вставляем в него таблицу
  Dim objTable As AcadTable
  Set objTable = blkDef.AddTable(BasePoint, 3, 5, 5, 10)
"Как округлить..." - см. Round
"Хотел установить..." - значит, надо менять логику создания формы и переводить позиционирование контролов на "динамический" код.
"Добавить код LISP'a в VBA" или наоборот - этот вопрос уже поднимался. И не раз. И решался тож
"Вставлять кучу объектов" куда угодно в общем-то можно и через VBA, и через lisp, и через .NET, и через ObjectARX. Вопрос не понял.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 14.09.2008, 10:22
#30
Александр Бауск

FEA/CAD/МКЭ/САПР
 
Регистрация: 20.03.2007
48,38°:35,03°
Сообщений: 1,056
Отправить сообщение для Александр Бауск с помощью Skype™


Цитата:
Сообщение от stas_org Посмотреть сообщение
Ну да ладно, Алексей а ты ПГСник, если до, то хотелось бы услышать твое авторитетное мнение по поводу http://dwg.ru/dnl/4412 и Vildar тоже. прошу прошения что не в теме, автор молчит.
Как минимум одна серьезная ошибка:
1. Нет инсталлятора.
__________________
Reshaping the STEM field
Александр Бауск вне форума  
 
Непрочитано 14.09.2008, 10:23
#31
Александр Бауск

FEA/CAD/МКЭ/САПР
 
Регистрация: 20.03.2007
48,38°:35,03°
Сообщений: 1,056
Отправить сообщение для Александр Бауск с помощью Skype™


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
stas_org, я не использую расширенные данные. Принципиально
Ик... А как же вы живете?
__________________
Reshaping the STEM field
Александр Бауск вне форума  
 
Автор темы   Непрочитано 14.09.2008, 17:33
#32
vasyavip


 
Регистрация: 09.09.2008
Сообщений: 47


Кулик Алексей aka kpblc
А как теперь эту таблицу, после вставки взорвать? Програмно!
vasyavip вне форума  
 
Непрочитано 14.09.2008, 21:39
#33
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,835


Александр Бауск, а так и живем Используем (мы, Божией милостью государь всея Руси...) либо словари, либо ldata. Очень удобственно, доложу я вам
vasyavip, а я из вредности опять отправлю в #18 на предмет анализа кода.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 14.09.2008, 23:00
#34
vasyavip


 
Регистрация: 09.09.2008
Сообщений: 47


Vildar
rtyuehe159263487
если об этом!
З.Ы.
Он ко всем приложенным файлам!

aka kpblc
Код проанализировал, понял что там что-то есть и надо использовать метод 'Explode'
но пока как подступиться я не понял.

objTable.AcadTable = Explode не выходит!
vasyavip вне форума  
 
Непрочитано 14.09.2008, 23:19
#35
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,835


vasyavip, лично я ни капли не понял последней строки. Переведи.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 14.09.2008, 23:36
#36
vasyavip


 
Регистрация: 09.09.2008
Сообщений: 47


aka kpblc
Я имел ввиду, что надо после вставки таблицы ее взорвать! Как это сделать??

Если бы можно было присоедиить код вставки блока к моему первоначальному коду, там, где идет набор линий, и вставить их в указанное пользователем место, то вопросов может и не будет! Буду радоваться и программировать, на радость всех!
vasyavip вне форума  
 
Непрочитано 14.09.2008, 23:39
#37
Александр Бауск

FEA/CAD/МКЭ/САПР
 
Регистрация: 20.03.2007
48,38°:35,03°
Сообщений: 1,056
Отправить сообщение для Александр Бауск с помощью Skype™


Остановите самолет, я сойду.
А у этих ldata, о которых я только что узнал, есть какие-нибудь преимущества по сравнению с XData?

А то бешеной собаке семь верст не крюк - глядишь, сделаю обертку для работы из-под VBA.

>vasyavip
Только через SendCommand.
__________________
Reshaping the STEM field

Последний раз редактировалось Александр Бауск, 14.09.2008 в 23:47.
Александр Бауск вне форума  
 
Непрочитано 14.09.2008, 23:48
#38
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,835


vasyavip, а я тебя еще раз отправлю к коду. Там это сделано.
Александр Бауск, я уже не помню точно, почему я сделал ставку именно на ldata (чтение и запись выполняются через vlax-ldata-get и vlax-ldata-put соответственно). Да и привык я к ним. А словари использую для глобальных вещей, на весь файл.
Расширенные данные (которые в лиспе идут после группы -3) слишком ограниченны, да и при обработке файла Express'овскими командами могут порождать проблемы. У ldata такого не замечал.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 15.09.2008, 22:02
#39
Александр Бауск

FEA/CAD/МКЭ/САПР
 
Регистрация: 20.03.2007
48,38°:35,03°
Сообщений: 1,056
Отправить сообщение для Александр Бауск с помощью Skype™


Спасибо. Гляну.
__________________
Reshaping the STEM field
Александр Бауск вне форума  
 
Автор темы   Непрочитано 15.09.2008, 23:43
#40
vasyavip


 
Регистрация: 09.09.2008
Сообщений: 47


aka kpblc
Если отойти от таблицы и придти, например к созданию линии разрыва. Это я могу сделать, как мне эту ломаную полилинию вставить не в 0,0,0, а туда, куда я хочу.
Я могу написать код , по которому будет чертиться лист по ГОСТ формата всех "А", с выбором в диалоговом окне, какой размер нужен, нужно ли добавить штамп согласования, пока не могу предоставить пользователю возможность заполнить штамп, так как не знаю как вставить текст, вернее как его уместить в рамках ячеек, с нужными параметрами:
высоты, толшины, ширины и т.д.
Есть у меня задумка реализовать в диалоговом режиме проектирование колонны:
1. сечение колонны
2. высота колонны
3. армирование на 1 этаж или на 2 этажа
4. диалоговый режим:
а)защитный слой
б)если защитный слой более 55 мм, то предложить по периметру сетку
в)если сетка необходима, ее подбор и калькуляция
5. конструирование арматуры:
а)сколько стержней по одной стороне?
б)их диаметр
в)если стержни хомутообразующие и средние различного диаметра, то их диаметры и расположение
г)если промежуточные (средние) стержни существуют, то установка гнутых стержней на них или еще одного ромбовидного хомута(!)
-Здесь возникает дилема: как задать программно радиус закругления гнутого стержня при изменении геометрии от угла в 90 градусов к острому
д)конструирование основного хомута
6. Выдача спецификации
7. Выдача ведомости расхода стали
8. выдача ведомости деталей по выбранным параметрам

Я хочу вставить мою колонну в ту точку, которую захочу, колонна будет состоять из нескольких десятков линий и арок.
Я хочу вставить спецификацию туда, куда я хочу, хочу в пространстве модели, хочу в пространстве листа...
Я хочу выдать полностью готовый чертеж, для этого я должен вывести еще и формат листа со штампом, его в диалоговом окне заполнить и вставить туда мою колонну и спецификации к ней!

З.Ы.
Такая вот задумка
З.Ы. 2
Слов "ДЕРЗАЙ" для осуществления этого недостаточно!
Нужно содействие, а меня отпихивают в дебри!!!
Кто-нибудь дайте пример реального кода, как кучу линий вставить туда, куда выберет пользователь!
Если будут предложения по задумке программы для колонны пишите!
Те макросы, что выложил выше, пожалуйста, критикуйте!
Буду рад!
vasyavip вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > как с помощью vba начертить линию

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как из автокада с помощью макроса-кнопки запустить файл exe dextron3 Программирование 37 15.12.2008 19:15
Как начертить? Circul AutoCAD 10 31.10.2007 15:00
Как в Акаде начертить коническую или цилиндрическу развёртку Grinzaid AutoCAD 1 29.01.2004 13:23
Подскажите как построить кривую с помощью команды SPLiNE, к boban Программирование 1 02.11.2003 19:58
Как на LISPе автоматически выбрать линию и точку? Mikhail LISP 4 28.10.2003 10:33