Как написать программу для AutoCAD 2009?, которая используя координаты хранящиеся в Access 2003 начертит трассу со свойством PLine и выбором слоя. - Страница 2
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как написать программу для AutoCAD 2009?, которая используя координаты хранящиеся в Access 2003 начертит трассу со свойством PLine и выбором слоя.

Как написать программу для AutoCAD 2009?, которая используя координаты хранящиеся в Access 2003 начертит трассу со свойством PLine и выбором слоя.

Ответ
Поиск в этой теме
Непрочитано 15.10.2010, 18:15
Как написать программу для AutoCAD 2009?, которая используя координаты хранящиеся в Access 2003 начертит трассу со свойством PLine и выбором слоя.
rassom
 
Оросительные системы
 
Регистрация: 02.07.2010
Сообщений: 166

Привет всем. Я новичок в программировании и поэтому хотелось бы получить советы или помощь от опытных пользователей. Дело в том, что в проекте над которым я работаю, приходится нарисовать очень много линейных трасс и все это рутинно. Трассы нужно рисовать в полилайне и задать для нее слой с параметрами. Координаты всех трасс у меня находятся в таблицах Access 2003. Как и с чего надо начинать, на каком языке написать код, какую литературу нужно читать и т.д. Конечно, если можно, дать код и инструкции. Заранее благодарю за помощь.

С уважением, rassom
Просмотров: 11987
 
Непрочитано 21.10.2010, 09:14
#21
Елпанов Евгений

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


Цитата:
Сообщение от Сергей Дубина Посмотреть сообщение
Для акцесса проще написать ВБА и повестить на кнопку.
Я бы не рекомендовал использовать VBA в автокаде, когда совсем закончится его поддержка, что вы будете делать?
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 21.10.2010, 09:35
#22
Сергей Дубина


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


Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
Я бы не рекомендовал использовать VBA в автокаде, когда совсем закончится его поддержка, что вы будете делать?
Так или иначе, объектную модель врядли отменят. Я имел ввиду VBA в Акцессе и доступ через объектную модель (библиотеку типов автокада), сам автокад предварительно не открывая.
__________________
КазнитьØнельзяØпомиловать:eek:
Сергей Дубина вне форума  
 
Непрочитано 21.10.2010, 10:32
#23
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Елпанов Евгений
Я бы не рекомендовал использовать VBA в автокаде, когда совсем закончится его поддержка, что вы будете делать?
+1
Цитата:
Сообщение от Сергей Дубина Посмотреть сообщение
Так или иначе, объектную модель врядли отменят.
Это факт.
Цитата:
Сообщение от Сергей Дубина Посмотреть сообщение
Для акцесса
проще написать ВБА и повестить на кнопку.
Я имел ввиду
VBA в Акцессе
и
доступ через объектную модель (библиотеку типов автокада), сам автокад предварительно не открывая.
А ты сам-то пробовал сделать это? Ой-ли проще, да ещё и "сам автокад предварительно не открывая"(с)?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 21.10.2010, 10:37
#24
Сергей Дубина


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


Цитата:
Сообщение от hwd Посмотреть сообщение
А ты сам-то пробовал это?
В 2005 г. чертил таблицу примитивами (встроенных ещё не было).
__________________
КазнитьØнельзяØпомиловать:eek:
Сергей Дубина вне форума  
 
Автор темы   Непрочитано 21.10.2010, 10:41
#25
rassom

Оросительные системы
 
Регистрация: 02.07.2010
Сообщений: 166


Цитата:
Сообщение от hwd Посмотреть сообщение
>rassom
Видео смотрел? Похоже на то, что искал (по теме топика)?
Ссылка на видео не работает. (Access Denied)
rassom вне форума  
 
Непрочитано 21.10.2010, 10:41
#26
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Сергей Дубина Посмотреть сообщение
В 2005 г. чертил таблицу примитивами (встроенных ещё не было).
Через объектную модель AutoCAD, не открывая его?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 21.10.2010, 10:42
#27
Сергей Дубина


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


Цитата:
Сообщение от hwd Посмотреть сообщение
Через объектную модель AutoCAD, не открывая его?
Совершенно верно.
__________________
КазнитьØнельзяØпомиловать:eek:
Сергей Дубина вне форума  
 
Непрочитано 21.10.2010, 10:44
#28
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от rassom Посмотреть сообщение
Ссылка на видео не работает. (Access Denied)
не работает у тебя - я только что скинул её (для проверки) нескольким людям - у них всё работает. Возможно, что админы твоей компании поставили запрет на посещение пользователями сайта YouTube.
Offtop: а ты шустро общаешся - в день по сообщению
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 21.10.2010 в 10:58.
hwd вне форума  
 
Непрочитано 29.10.2010, 08:29
#29
Сергей Дубина


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


Цитата:
Сообщение от hwd Посмотреть сообщение
Через объектную модель AutoCAD, не открывая его?
Вот пример база db1 в ней Форма1, надо выбрать трассу и жать кнопку с биноклем, ошибок не обрабатывал, чертит трассу в файл рядом с базой. акцес-2003, автокад 2009 (2008, 2007)
Вложения
Тип файла: zip db1.zip (25.5 Кб, 66 просмотров)
__________________
КазнитьØнельзяØпомиловать:eek:
Сергей Дубина вне форума  
 
Непрочитано 29.10.2010, 09:10
#30
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


>Сергей Дубина
Довольно таки недурно... Правда если "придираться", то возникает ряд небольших замечаний:
1. В коде жёстко задано, чтобы mdb-файл находился в "Моих Документах" - иначе файл не находится и генерируется ошибка.
2. Не проставляется нумерация точек (причём желательно на спец. отведённом для этого дела слое).
3. Хранить все данные в одной таблице, в данном случае нецелесообразно, в виду дубляжа информации (но для примера сойдёт). Вносить данные в такую таблицу тоже довольно таки неудобно.
4. Пользователь жмет кнопку, и сидит в ожидании сообщения, что мол операция выполнена, а сообщения никакого нет...
5. По поводу VBA-кода: код довольно компактный (весомый плюс). Замечания следующие:
5.1 Открывать подключение нужно как можно позже, а закрывать, как можно раньше. Поэтому строки кода
Код:
[Выделить все]
dbRst.Close
dbConn.Close
Лучше размещать сразу после строки
Код:
5.2 Жёстко прописывать SQL-запрос в коде - неправильный подход (те, кто изучает данный код, могут ошибочно перенять эту манеру).

===================

В целом предложенный вариант решения мне понравился (указанные выше замечания легко устранимы).
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 29.10.2010, 09:30
#31
Сергей Дубина


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


Приведенный пример лишь демонстрация возможностей. В нем также не учитывается толщина линии о которой просил автор.

По замечаниям:

Цитата:
Сообщение от hwd Посмотреть сообщение
1. В коде жёстко задано, чтобы mdb-файл находился в "Моих Документах" - иначе файл не находится и генерируется ошибка.
В коде я жестко путь не прописывал, видимо он гдето в .mdb сидит.
п. 2 - не задавался целью.
п. 3 - Давай не будем, об этом можно спорить бесконечно.
п. 4 - Согласен
п. 5.1. Согласен, спасибо.
п. 5.2. Посоветуй статейку к.л. на эту тему.
__________________
КазнитьØнельзяØпомиловать:eek:
Сергей Дубина вне форума  
 
Непрочитано 29.10.2010, 10:58
#32
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Сергей Дубина Посмотреть сообщение
Давай не будем, об этом можно спорить бесконечно.
А спорить и не нужно, есть такое понятие, как нормализация баз данных. Избыточности информации однозначно быть не должно (это даже не обсуждается). Поэтому указанное мною в п.3 - это указание на ошибку в проектировании структуры базы данных (если придираться).
Цитата:
Сообщение от Сергей Дубина Посмотреть сообщение
п. 5.2. Посоветуй статейку к.л. на эту тему.
Ну, тут даже если логически рассуждать, можно увидеть минус:
- если по какой либо причине спустя некоторое время нужно будет подправить запрос - придётся вносить изменения в код и перекомпилировать его, а это не есть гуд.

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

Помнится в 2008 году я был на презентации MS Visual Studio 2008 в СПб, и там показывали пример, в котором программист прописал sql-запрос в коде приложения. Докладчик прокомментировал этот код так:
"Надеюсь, что программист, написавший данный фрагмент кода, более не работает в этой компании".

Вообще в идеале нужно взаимодействовать с базой данных посредством хранимых процедур, принимающих нужные параметры - это позволит избежать SQL-инъекций (ей зачастую подвержен код в котором для построения запроса используется конкатенация строк).
Поскольку хранимка находится в базе данных, модификация запроса хранимки не потребует перекомпиляции исходного кода программы + защита от SQL-инъекций.

Цитата:
Сообщение от Сергей Дубина Посмотреть сообщение
В коде я жестко путь не прописывал, видимо он гдето в .mdb сидит.
Нет. Думаю, что он использует значение CurrentDirectory - каталог, который был выбран в последнем сеансе работы диалогового окна открытия файла/каталога в ОС Windows.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 29.10.2010 в 11:13.
hwd вне форума  
 
Непрочитано 29.10.2010, 11:38
#33
Сергей Дубина


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


Вот любите вы программеры из пушки по воробьям стрелять.
Цитата:
Сообщение от hwd Посмотреть сообщение
А спорить и не нужно, есть такое понятие, как нормализация баз данных. Избыточности информации однозначно быть не должно (это даже не обсуждается). Поэтому указанное мною в п.3 - это указание на ошибку в проектировании структуры базы данных (если придираться).
Телефонный справочник на 20 человек ты тоже будешь нормализовывать?

Цитата:
Сообщение от hwd Посмотреть сообщение
Помнится в 2008 году я был на презентации MS Visual Studio 2008 в СПб, и там показывали пример, в котором программист прописал sql-запрос в коде приложения. Докладчик прокомментировал этот код так:
"Надеюсь, что программист, написавший данный фрагмент кода, более не работает в этой компании".
На подобных мероприятиях царит атмосфера "буржуазной деловитости", однако в своих хэлпах они приводят код с вставленным sql.

Цитата:
Сообщение от hwd Посмотреть сообщение
Нет. Думаю, что он использует значение CurrentDirectory - каталог, который был выбран в последнем сеансе работы диалогового окна открытия файла/каталога в ОС Windows.
А это надо еще проверить!
__________________
КазнитьØнельзяØпомиловать:eek:
Сергей Дубина вне форума  
 
Непрочитано 29.10.2010, 11:50
#34
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Сергей Дубина Посмотреть сообщение
Телефонный справочник на 20 человек ты тоже будешь нормализовывать?
Неважно на сколько человек. Это сегодня тебя потребовалось на 20, а через неделю вдруг окажется, что нужно на 200 (в жизни такое встречается часто). Разве сложно сразу создать не одну табличку, а две? Не сложно... тогда почему сразу не делать грамотно, если это не требует больших затрат?

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

Цитата:
Сообщение от Сергей Дубина Посмотреть сообщение
На подобных мероприятиях царит атмосфера "буржуазной деловитости", однако в своих хэлпах они приводят код с вставленным sql.
Это приводится для уменьшения объёма кода. Часто в начале хелпа делается предупреждение, что мол
Цитата:
далее в книге запросы везде присутствуют в теле кода - это делается для компактности примеров, однако в реальных "боевых" условиях, запрос следует выносить за рамки кода.
Я не заставляю тебя работать иначе Хочешь - пиши запрос в теле кода (тебе с ним работать и тебе его поддерживать). Моё замечание было адресовано как предупреждение тем, кто прочитав твой VBA-код начнёт "слепо" копировать продемонстрированный подход.

Цитата:
Сообщение от Сергей Дубина Посмотреть сообщение
А это надо еще проверить!
Ну так проверь
Я писал:
Цитата:
Думаю, что
Т.е. это было моё предположение (непроверенное).

п.с. Я только что проверил - моё предположение оказалось отчасти верным:
Если через проводник открыть твой mdb-файл, лежащий не в "Моих Документах" и запустить команду построения трассы - получаю ошибку. Если файл закрыть (не закрывая Access) и затем в Access вызвать окно открытия файла, пройдя в нужный каталог и выбрать твой mdb-файл, то в этом случае для MS Access текущий каталог устанавливается на тот каталог, в который ты прошёл и выбрал mdb-файл. Теперь если запустить команду построения трассы - ошибки не произойдём и трасса будет вычерчена.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 29.10.2010 в 12:06.
hwd вне форума  
 
Непрочитано 29.10.2010, 13:44
#35
Сергей Дубина


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


Полагаю далее развивать полемику бессмысленно, т.к. мы из разных "миров". Я: человек-решение, ты: люди-решение.
__________________
КазнитьØнельзяØпомиловать:eek:
Сергей Дубина вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как написать программу для AutoCAD 2009?, которая используя координаты хранящиеся в Access 2003 начертит трассу со свойством PLine и выбором слоя.



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Информация по идентификационным кодам программ в сетевых лицензиях Autodesk KSI AutoCAD 1 14.09.2009 15:59
Автозагрузка приложения до загрузки чертежа Ax3 Программирование 14 15.02.2008 23:29