|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
09.06.2010, 13:04 | #1 |
Форумчанин
Регистрация: 25.09.2008
Сообщений: 209
|
AutoCAD
Здравствуйте.
Возникла задача, в первом варианте: перебор всех ПОЗИЦИЙ, в автокаде-механиксе, принимается свойство позиции "зона", принимается "обозначение", затем "обозначение" должно быть отредактировано. При обдумывании вариантов, остановился писать всё на Delphi, с использованием Automation, т.к. программа для редактирования обозначений позиций написана на Delphi, и организовывать связку акадовский ЛИСП - мой редактор - обратно, если я правильно понимаю, будет крайне затруднительно. попробовал начать, методом тыка, использовать Automation, дошёл примерно до такого: Код:
Второе - объект "позиция" - объект MechaniCS ! Не возникнет ли при этом каких-нибудь очевидных проблем? Даётся ли доступ к объектам MechaniCS, через automation ? Ну и третье, порекомендуйте, что можно прочитать, для "быстрого старта", Automation в AutoCAD. Желательно на русском, и поменьше задачу, в первом варианте, нужно сделать срочно |
09.06.2010, 13:14 | #2 | |||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
Цитата:
I'm learning to live...
|
|||
10.06.2010, 11:47 | #3 | |||
Форумчанин
Регистрация: 25.09.2008
Сообщений: 209
|
Цитата:
Мне нужно подменить их вызов, или редактировать позиции самостоятельно. т.е. программа - полная замена "спецификации" MechaniCS-а, для реализации функционала необходимо и достаточно: 1. Получить все позиции, для каждой считать идентифицирующее поле, лучше всего обозначение , и, обязательно, зону, на чертеже. 2. Задать номер, для нужной позиции (после того, как я их пронумерую в своей спецификации - переберу все, и раздам новые номера). В принципе, практически всё. Остальное - дело моей программы, и замена СП MechaniCS-а, с реализацией необходимого (улучшенного) функционала, готова. Цитата:
Цитата:
Бумажную книгу тоже неплохо бы найти, правда, первый вариант программы надо сделать, как обычно, - ещё вчера..... а вот то, что я нашёл интересненького http://www.delphimaster.ru/articles/autocad/index.html http://dwg.ru/pub/8 Пара примеров, с разными подходами, простенькие. Но в них только СТРОЯТСЯ новые объекты, а мне нужно анализировать имеющиеся. Пролистал документацию - с ходу не могу понять, как же делать приведение типов. Перебираю все объекты, для примера, ищу ЛИНИЮ, у неё хочу найти координату точки: Код:
AcadDoc.ModelSpace.Item(i) as IAcadLine - компилятор принимает, даёт StartPoint, которая имеет тип OleVariant, а как загружать координаты точки - не понятно upd: как загружать координаты точки - нашёл. Это простой массив. ov[0], ov[1], ov[2] - вот три координаты. Наверное, основной вопрос, где же взять описание на типы данных MechaniCS-а: Код:
Последний раз редактировалось AnTe; 10.06.2010 в 12:31. |
|||
10.06.2010, 12:32 | #4 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
На сколько я понял ваш MechaniCS - это все-равно что наш SPDS. А если это так - дело дрянь. Серьезно. Сколько не пытались выципить из СПДС-объектов их свойства ниче не получалось. У меня один очень хороший знакомый плотно занимается программированием под AutoCAD. Он этот AutoCAD как шар вертит, а СПДС объекты как черный ящик. Читаются только свойства группы General, 3D Visualization и т.п.. Остальных как-будто и нет вовсе. При работе с ними возникает ощущение, что значения его свойств находятся вообще не в области памяти самого приложения ACAD.
|
10.06.2010, 13:10 | #5 |
Форумчанин
Регистрация: 25.09.2008
Сообщений: 209
|
Наверное, Полищук?
"Николай Полещук AutoCad2004 Разработка и адаптация приложений" Вчера довольно долго пытался найти эл.версию, безуспешно. Сегодня, после твоего поста, удвоил усилия, и вот... что-то качаю! Sibedir, спасибо! Прогноз, конечно, грустный, однако, надеюсь, не на столько. Знакомая программирует на AutoLisp, и в отладчике видны все свойства некоторых объектов MechaniCS (по крайней мере "основную надпись" читала, и изменяла, программно). т.е. из AutoLISP оттуда она может доступиться к полям объектов MechaniCS. Не знаю пока, как "перевести" всё это в объекты ActiveX, т.к. мне, по всей видимости, гораздо удобнее, если получится редактировать поля из Delphi, а не вызывать моё приложение из акада. Последний раз редактировалось AnTe; 10.06.2010 в 13:14. |
10.06.2010, 13:12 | #6 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
Любопытный факт. С одной стороны AutoCAD знает о свойствах СПДС-объектов. Вы можете менять их не только в диалоговых окнах, вызываемых из дополнительных библиотек, но и в стандартном окне Properties (аналог инспектора объектов в Delphi). Хотя закрадываются сомнения, когда понимаешь, что в этом окне отоброжены не все свойства. Но это еще не все. При работе с фильтром (функция qselect) для всех СПДС-объектов нам доступны лишь свойства из вышеуказанных групп General, 3D Visualization и т.п.. Этими свойствами обладает любой объект в AutoCAD (в силу наследования от общего предка). Остальных свойств объекта AutoCAD не видит.
По всей видимости разработчики фирмы Consistent Software намеренно разместили свойства своих объектов в "отдельном месте", а функцию просмотра свойств в окне Properties просто подменили. Хотя я в этом вопросе не компетентен, это только мое предположение. |
11.06.2010, 13:12 | #7 |
Форумчанин
Регистрация: 25.09.2008
Сообщений: 209
|
В отладчике VisualBasic свойств не видно
Беру первый выделенный объект, вывожу его ObjectName (.ActiveDocument.ActiveSelectionSet .Item(0).ObjectName) Скриншот, отладчика, затем результат, если выделена линия, и если выделен объект MechaniCS "позиция" Насколько я понимаю, полный абзац. Вообще, если я правильно понимаю, если вдруг будут известны имена свойств объектов - к ним можно попробовать доступиться? В отладчике LISP-а идентификаторы свойств видны... Нельзя ли к ним перейти к св-вам VBA, или, похоже, доступа к объектам нет, в принципе? Похоже, после праздников начинаю спешное изучение LISP, и делать вызов своей проги, оттуда... |
11.06.2010, 13:24 | #8 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Я вообще очень мало встречал литературы по программированию CAD/CAM/CAE/PLM... Такое впечатление что их писали партизаны... Цитата:
Хотя конечно мозго%№%№ та еще...
I'm learning to live...
|
||
11.06.2010, 13:34 | #9 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
"САПР на базе AutoCAD - как это делается" Зуев С. и тот самый Полещук Н. - 1092 стр. в djvu - 29.7МВ.
http://www.knigka.info/2008/02/27/sa...delaetsja.html |
12.06.2010, 17:37 | #10 | ||
Форумчанин
Регистрация: 25.09.2008
Сообщений: 209
|
Цитата:
у меня какая-то косячная версия, некоторые страницы перепутаны, некоторых нехватает, в самых интересных местах а вот тут брать нельзя: при нажатии "скачать" выкидывает, похоже на клон депозита "http://depositfille.com/", и закачивается exe непонятного происхождения. с СПДС-объектами интересное замечание. Похоже, меня ожидает какая-то схожая песня. Цитата:
Вообще, интересует вопрос, может, можно из имён процедур autolisp получить имена процедур, для доступа через автоматизацию? или этого доступа там, скорее всего, нет, в принципе? Похоже, придётся писать часть на лиспе, и регить свой com-сервер, для связи с моей программой. Для моей задачи - извращение, однако... ps про партизанов - верное замечание, у меня сложилось точно такое же впечатление Последний раз редактировалось AnTe; 12.06.2010 в 17:46. |
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с AutoCad | KarolinaVlad | Помощь студентам | 1 | 11.03.2010 09:05 |
Мульти текст в AutoCad | M17 | Помощь студентам | 3 | 07.08.2008 13:03 |
Delphi и Autocad | LaNNC | Общие вопросы Delphi | 0 | 29.05.2008 18:41 |
Delphi и AutoCAD | Roof | Общие вопросы Delphi | 3 | 28.07.2007 23:04 |