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

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

Помогите умным советом...

Ответ
Поиск в этой теме
Непрочитано 24.06.2007, 20:59 #1
Помогите умным советом...
Agens
 
Minsk
Регистрация: 24.06.2007
Сообщений: 34

Помогите...
Немного знаю VBA других приложений.
С autoCADом немного сложнее...
Хочу написать макрос для вставки блока, который хранится в отдельном *.dwg файле по известному мне пути.
Как это реализовать, может кто знает? ПОМОГИТЕ!!!
Просмотров: 14897
 
Непрочитано 24.06.2007, 21:08
#2
Кулик Алексей aka kpblc
Moderator

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


А насколько обязателен VBA? Потому что это можно решить командными методами.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 25.06.2007, 00:31
#3
Agens


 
Регистрация: 24.06.2007
Minsk
Сообщений: 34


Цитата:
Сообщение от Кулик Алексей aka kpblc
А насколько обязателен VBA? Потому что это можно решить командными методами.
В идеале хочу создать форму для вставки различных блоков.
Пока пользуюсь горячей клавишей для вставки блока из зараннее подготовленного мной каталога (не устаивает то, что надо долго искать по папкам нужную "деталь").
А как это реализовать командными методами?
_insert....?
В приципе, можно создать свое меню с теми же самыми блоками.

Так как это сделать?
Agens вне форума  
 
Непрочитано 25.06.2007, 01:19
#4
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Tool palettes
Vova вне форума  
 
Непрочитано 25.06.2007, 09:26
#5
Pilot

Проектировщик свиноводство
 
Регистрация: 21.08.2003
Сообщений: 2,291


Цитата:
Сообщение от Agens
В идеале хочу создать форму для вставки различных блоков.
Боюсь, что в виде макроса это будет сложно реализовать.
Нужна программа - проще всего на Alisp, можно и на VBA.
Pilot вне форума  
 
Автор темы   Непрочитано 26.06.2007, 22:57
#6
Agens


 
Регистрация: 24.06.2007
Minsk
Сообщений: 34


Цитата:
Сообщение от Pilot
Цитата:
Сообщение от Agens
В идеале хочу создать форму для вставки различных блоков.
Боюсь, что в виде макроса это будет сложно реализовать.
Нужна программа - проще всего на Alisp, можно и на VBA.
С этого сайта я уже скатать макрос VBA, который позволяет вставлять "переход", "тройние", "отвод", но сам макрос защищен паролем, а ломать нет времени, мне проще самому написать.
Дело осталось за малым, просто подсказать мне...

Так поможет кто нить или нет.

Вообще, как можно вставить в лист AutoCADв файл с уже прописаным путем?
Agens вне форума  
 
Непрочитано 27.06.2007, 00:39
#7
Pilot

Проектировщик свиноводство
 
Регистрация: 21.08.2003
Сообщений: 2,291


Цитата:
Сообщение от Agens
С этого сайта я уже скатать макрос VBA
Специалисты по VBA, объясните мне темному: на VBA пишут макросы или все-таки программы.
Pilot вне форума  
 
Непрочитано 27.06.2007, 01:30
#8
Александр Бауск

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


Ни фига, проекты :-)))

Зависит от конкретного ПО, я думаю.
Макрос -- эта когда он в одной главной подпрограмме и, скажем, вешается на кнопку.
Вот такую хрень (см.рис.), которая автоматизирует масштабы, текст, стили линий, имеет базу проката, вменяемый инсталлятор, позволяет превратить любой блок и примитив во масштабируемый и пр., я бы макросом уже не назвал. Эспедеес графикс лайт, кустомизабль :-).

ИМХО.
[ATTACH]1182893454.gif[/ATTACH]
Александр Бауск вне форума  
 
Автор темы   Непрочитано 28.06.2007, 23:18
#9
Agens


 
Регистрация: 24.06.2007
Minsk
Сообщений: 34


Так поможет кто-нить или нет?
Agens вне форума  
 
Непрочитано 28.06.2007, 23:59
#10
Кулик Алексей aka kpblc
Moderator

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


А чем не устраивает #4?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 29.06.2007, 22:56
#11
Agens


 
Регистрация: 24.06.2007
Minsk
Сообщений: 34


Цитата:
Сообщение от Кулик Алексей aka kpblc
А чем не устраивает #4?
Цитата:
Сообщение от Vova
Tool palettes
- вы про это сообщение?

Я, видимо, не силен Автокаде, поэтому и жду пояснений, что с этим делать? Если не лень!
Agens вне форума  
 
Непрочитано 29.06.2007, 23:20
#12
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,626


Так изучи, пожалуйста, AutoCAD - иначе зачем все эти потуги?
Profan вне форума  
 
Непрочитано 29.06.2007, 23:32
#13
Кулик Алексей aka kpblc
Moderator

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


> Agens: А какая версия AutoCAD'a?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 01.07.2007, 11:27
#14
Agens


 
Регистрация: 24.06.2007
Minsk
Сообщений: 34


Цитата:
Сообщение от Кулик Алексей aka kpblc
> Agens: А какая версия AutoCAD'a?
Пока у меня чтот 2006 рус., ищу 2007 или 2008 версию, хочу переходить и узнать что нам новенького.

Насколько я знаю Tool palettes - это панель инструментов. ну и?

Автокад изучал без литературы и по подсказкам друзей. Так что не чтоит злиться тем, кто ходил на ГОДИЧНЫЕ курсы
Agens вне форума  
 
Непрочитано 01.07.2007, 17:37
#15
Кулик Алексей aka kpblc
Moderator

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


В таком случае, думаю, лучше всего будет вызвать Справка - Новые возможности и посмотреть Палитры инструментов.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 01.07.2007, 18:04
#16
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


>Agens
Посмотри здесь:
http://www.autocad.ru/cgi-bin/f1/board.cgi?p=44
Вроде, похоже на решение твоей задачи...
Елпанов Евгений вне форума  
 
Непрочитано 01.07.2007, 19:17
#17
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Цитата:
Сообщение от Agens
не устаивает то, что надо долго искать по папкам нужную "деталь
Все детали из одной папки собери на единый файл. Создай столько файлов, сколько папок (надо полагать, там все организовано по темам). Положи файлы в новую папку с именем MyToolPalettes, например. Открой первый файл, вызови Tool Palletes. Создай новую палитру. Скопируй сюда по-очереди все блоки. (Copy-Paste). Задай персональные свойства (правой кнопкой), если это необходимо-слой, масштаб, угол. Повтори операцию со след. файлом.
Vova вне форума  
 
Автор темы   Непрочитано 02.07.2007, 14:51
#18
Agens


 
Регистрация: 24.06.2007
Minsk
Сообщений: 34


Всем огромное спасибо, разобрался с Палитрой Инструментов. Кла((ная штука.
Может кто еще подскажет, я создаю блок, вставляю в него атрибуты, а когда на листе кликаю два раза по блоку, чтобы поменять атрибуты, акад пытается редактиролвать блок. Вот разбираюсь и ищу.
Agens вне форума  
 
Непрочитано 02.07.2007, 17:47
#19
Magogi

Инженер
 
Регистрация: 02.07.2007
Волгоград
Сообщений: 83
<phrase 1=


Менять значения атрибут можно в свойствах (Ctrl+1), но ваще странно у меня при двойном клике открывается редактор атрибутов.
Если мыша по умолчанию настроена, то можна правой клавишей по блоку и там выбирай че хош (редактор блока, редактор блока или редактор блока на месте)
Magogi вне форума  
 
Непрочитано 02.07.2007, 17:53
#20
Magogi

Инженер
 
Регистрация: 02.07.2007
Волгоград
Сообщений: 83
<phrase 1=


А вот еще че может, если ты сначала создал блок, а потом вставил атрибут, то тебе надо воспользоваться командой AttSync, посмотри справку там все написано... ну если че то поможем…
Magogi вне форума  
 
Автор темы   Непрочитано 03.07.2007, 18:39
#21
Agens


 
Регистрация: 24.06.2007
Minsk
Сообщений: 34


Цитата:
Сообщение от Magogi
А вот еще че может, если ты сначала создал блок, а потом вставил атрибут...
Да ты прав, я разобрался, сначала надо вставить атрибут, а потом создавать блок. Вот.
А как добавить готовый макрос на иконку, чтобы при нажатии макрос сразу выполнялся? Знает кто?
Agens вне форума  
 
Автор темы   Непрочитано 04.07.2007, 22:57
#22
Agens


 
Регистрация: 24.06.2007
Minsk
Сообщений: 34


Может кто поможет описанием свойст атрибута?
А то в одном случает я вставляю блок с атрибутами, выскакивает окно для редактирование атрибутов (присвоения им значений), а в другом просто вставляется блок, а когда по нем два раза кликаешь, только тогда меняешь атрибуты. Что такое "контролируемый", "постоянный"?
Agens вне форума  
 
Автор темы   Непрочитано 05.07.2007, 00:03
#23
Agens


 
Регистрация: 24.06.2007
Minsk
Сообщений: 34


Все, разобрался с атрибутами.
Вставить выполнение макроса на кнопку "^C^C-vbarun <имя макроса>"
Agens вне форума  
 
Автор темы   Непрочитано 21.08.2007, 22:59
#24
Agens


 
Регистрация: 24.06.2007
Minsk
Сообщений: 34


SOS!!! Ребята помогите!!! Акад 2006 у меня...
Начальник идиот, не умеет работать в акаде и меня заставляет чертить "по простому"!!!
Как расчленить блоки с атибутами, чтобы значение атрибутов осталось и атрибуты стали простым текстом!!! ОЧЕНЬ НАДО!!! Не гореть же мне на костре в самом то деле
Agens вне форума  
 
Непрочитано 21.08.2007, 23:17
#25
Кулик Алексей aka kpblc
Moderator

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


burst из Express Tools
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 21.08.2007, 23:20
#26
Agens


 
Регистрация: 24.06.2007
Minsk
Сообщений: 34


Цитата:
Сообщение от Кулик Алексей aka kpblc
burst из Express Tools
Спасибо уже нашел Ваш (твой) ответ

Я СПАСЕН ОТ ТУПОСТИ!!!
Agens вне форума  
 
Автор темы   Непрочитано 27.08.2007, 21:58
#27
Agens


 
Регистрация: 24.06.2007
Minsk
Сообщений: 34


Помогите в такой ситуации: когда я вставляю блок с атрибутами из инструментальной панели, в свойствах поставить "использовать текущий слой", блок все равно остается начального цвета и вес линий не изменяется, а иногда меняется лишь часть блока на свойства пристваемого слоя. В чем тут проблема! (если кто-нить хоть что-нить понял )
Agens вне форума  
 
Непрочитано 28.08.2007, 09:29
#28
p_sh

новичок
 
Регистрация: 19.06.2005
Ярославль
Сообщений: 3,396


надо чтобы всё послою было
p_sh вне форума  
 
Непрочитано 28.08.2007, 09:33
#29
Кулик Алексей aka kpblc
Moderator

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


Внутри блока примитивы, наверное, все же "ПоБлоку"? Гибкости больше...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 02.09.2007, 11:40
#30
Agens


 
Регистрация: 24.06.2007
Minsk
Сообщений: 34


Цитата:
Сообщение от Кулик Алексей aka kpblc
Внутри блока примитивы, наверное, все же "ПоБлоку"? Гибкости больше...
оки, попробую!!!
Agens вне форума  
 
Автор темы   Непрочитано 16.12.2007, 17:10
#31
Agens


 
Регистрация: 24.06.2007
Minsk
Сообщений: 34


Всем снова привет...
Вопрос №1... есть UserForm с textbox, как сделать на VBA табличку (например) 2х2 и в люблю ячейку вставить значение textbox.

Нужен простой пример, а дальше я все сам пойму...

Вопрос №2: как пристоить значение textbox атрибуту?
Вопрос №3: можно ли *.dvb превратить в *.exe?
Вопрос №4: (экспорт из Excel в ACAD) как на VBA значение ячейки А1 присвоить значениею ячейка А1 в табличке ACAD (уже готовой)/

Опять же, нужен простой пример....

Спасибо...

Последний раз редактировалось Agens, 16.12.2007 в 17:44.
Agens вне форума  
 
Непрочитано 16.12.2007, 22:11
#32
Кулик Алексей aka kpblc
Moderator

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


1: если использовать только стандартные контролы, то либо MSFlexGrid, либо MSHFlexGrid (Hierarhial), либо тупо создавать 4 TextBox'a.
2: См. GetAttributes, получай указатель на атрибут через TagString и устанавливай значение, используя TextString
3: Нет
4: См.свойств объекта TABLE. Там все расписано.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 17.12.2007, 23:11
#33
Agens


 
Регистрация: 24.06.2007
Minsk
Сообщений: 34


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
1: если использовать только стандартные контролы, то либо MSFlexGrid, либо MSHFlexGrid (Hierarhial), либо тупо создавать 4 TextBox'a.
2: См. GetAttributes, получай указатель на атрибут через TagString и устанавливай значение, используя TextString
3: Нет
4: См.свойств объекта TABLE. Там все расписано.
1. Описание MSFlexGrid, либо MSHFlexGrid (Hierarhial) есть?
2. где смотреть? ссылка может есть какая?
3. плохо вообще вообще никак?
4. см. п. 2 (аналогично)
Agens вне форума  
 
Непрочитано 18.12.2007, 00:34
#34
Кулик Алексей aka kpblc
Moderator

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


1. Описание стандартных контролов, наверное, лучше всего искать в MSDN. Для MSFlexGrid : http://search.msdn.microsoft.com/sea...00&lang=ru-ru; MSHFlexGrid: http://search.msdn.microsoft.com/sea...cal%20flexgrid
Не, можно, конечно, попробовать раскопать где-нибудь MSDN для VS 6.0, но это около гига (!) Если надо - пиши в ПМ.
2. GetAttributes можно посмотреть в справке AutoCAD Developer help, там вроде как нормально все расписано.
3. Ну почему Excel'ные макросы никто не пытается сделать ехе-шниками, и это нормально? Тут-то все то же самое...
4. Там же,где и п.2. Честно скажу, цитировать всю справку просто некогда. Примеров там, по-моему, более чем достаточно.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 18.12.2007, 22:05
#35
Agens


 
Регистрация: 24.06.2007
Minsk
Сообщений: 34


Новые вопросы:
1. (он же старый) как на VBA подгрузить блок или вставить чертеж?
2. если у меня label's имеют имена f1, f2, f3.... можно им присваивать значения через массив? или с помощью цикла fi (for i=0 to...)?
3. AutoCAD Developer help это стандартный help ACADa?
--------
Прикольно, что описание по VBA к ACADу лежит в справке к LISPу...
Agens вне форума  
 
Непрочитано 18.12.2007, 23:17
#36
Кулик Алексей aka kpblc
Moderator

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


1. ThisDrawing.InsertBlock и дальше по тексту - это если надо вставлять сразу файл / блок в определенную точку. Блин, недавно отвечал на такой же вопрос, еще ObjectDBX упоминал, Fatty, собственные перлы на аркаде... Черт, найти никак не могу. Agens, попытайся - вроде даже на этом форуме было.
2. Я бы делал через цикл. Если Fatty заглянет, может, у него будет более красивое решение. Он тут на caduser вообще показал, как собственную коллекцию создавать - я и не знал такого
3. Меню Help -> Developer Help (Справка разработчика).
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 21.12.2007, 21:40
#37
Agens


 
Регистрация: 24.06.2007
Minsk
Сообщений: 34


Если кто знает как сделать следующее:

если есть TextBox1, TextBox2 и TextBox3 как присвоить этим переменным значения через массив, т.е.

for i=0 to 2
TextBox(i) = i ' допустим...
next i

ОТПИШИТЕСЬ ПОЖАЛУЙСТА...

Может кто еще знает как вставить блок через VBA прописав путь к файлу где он лежит?

С НАСТУПАЮЩИМ ВСЕХ!!!
Agens вне форума  
 
Непрочитано 21.12.2007, 21:52
#38
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Зайди сюда, там и поговорим.
http://dwg.ru/f/showthread.php?t=15213&page=3
Supermax вне форума  
 
Непрочитано 21.12.2007, 21:54
#39
Кулик Алексей aka kpblc
Moderator

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


В VBA нет поддержки индексированных контролов. Поэтому такой номер не прокатит. По-моему, тут пройдет только вариант тупого назначения Text каждому TextBox. Это не VB6
> Supermax : :?: Интересно, а связь какая?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 21.12.2007, 22:27
#40
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Цитата:
Хочу написать макрос для вставки блока, который хранится в отдельном *.dwg файле по известному мне пути.
Как это реализовать, может кто знает? ПОМОГИТЕ!!!
Я тоже хочу, только вот путь этот не один, и блоков не одна тысяча и файлов тоже не счесть. А так интересы совпадают.

Написать макрос по копированию блоков из одного файла в другой вместе с палитрой и прочей бижутерией у меня уже несколько. Да и тут это уже лежит, где только есть место. А вот совместить это с постоянной потребностью тащить из одного файла в другой да все разное - я считаю целесообразно.
В теме про библиотеку блоков я уже отписался на сей счет.
Supermax вне форума  
 
Непрочитано 21.12.2007, 22:52
#41
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Цитата:
можно ли *.dvb превратить в *.exe?
Можно. Мне компетентные люди сказали, что и lsp можно и все остальное.

На С++ пишется прога-сценарий с загруженным в нее заранее библиотечным файлом который может быть чем угодно. Запуская этот EXE файл, он может загрузить и запустить выполнение любого макроса, а также любых прог, в которых этот макрос может работать.
Можно запустить кад, сгенерировать dvb и его уже в каде запустить. Там многое построено на эмуляции нажатия клавиш, кстати. А в каде есть команды запускающие VBA.
Supermax вне форума  
 
Непрочитано 21.12.2007, 22:59
#42
Кулик Алексей aka kpblc
Moderator

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


Agens, я не отвечал на вопрос "как вставить целиком файл как блок" только потому, что этот момент в справке разработчика освещен.
Supermax, теперь понял. Ответил там же.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 23.12.2007, 02:24
#43
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


To Supermax - только это может быть и не C++, а практически любой компилятор, я тебе хоть из под дос сессии любой файл запущу, просто суть в том что этот метод будет работать при условии наличии в системе программ выполняющих макрос (тогоже када) - и смысл в этом exe-шнике лично для меня сомнителен.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 30.12.2007, 10:43
#44
Agens


 
Регистрация: 24.06.2007
Minsk
Сообщений: 34


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Agens, я не отвечал на вопрос "как вставить целиком файл как блок" только потому, что этот момент в справке разработчика освещен.
1. Скажите ключевое слово..... "как вставить целиком файл как блок" ???? оСень нужно!!!
2. как создать групповой фильтр на VBA?
3. как сделать так, чтобы при вставке Mtext он по-умолчанию равнялся по центру, по середине?

С НОВЫМ ГОДОМ ВСЕХ!!!

Последний раз редактировалось Agens, 01.01.2008 в 13:52.
Agens вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Помогите умным советом...