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

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

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

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

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

С уважением, rassom
Просмотров: 11985
 
Непрочитано 15.10.2010, 18:29
#2
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


выложи файл Access с примером
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 15.10.2010 в 21:43.
VVA вне форума  
 
Автор темы   Непрочитано 15.10.2010, 19:35
#3
rassom

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


Цитата:
Сообщение от VVA Посмотреть сообщение
выложи файл Accsess с примером
Вот он файл Accsess, но Ваш вопрос на счет примера не понял. В общем таких вот таблиц в базе у меня будет очень много и по данным каждой из них нужно начертить в Автокаде отдельную трассу в полилайне и задать ей конкретный слой.
Что-то выложить файл не удается. Нажал на управление с вложениями и загрузил, но че-то файла не видно


С уважением, rassom

Последний раз редактировалось rassom, 15.10.2010 в 19:44. Причина: Забыл выложить файл
rassom вне форума  
 
Непрочитано 15.10.2010, 20:56
#4
hwd

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


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

С уважением, rassom
Не изобретайте велосипед. Экспортируйте данные в MS Excel (надеюсь, что раз вы работаете в MS Access, то знаете что такое SQL и как этим пользоваться) и передайте их в эту программку (сначала видео до конца просмотрите, там второй задачей идёт как раз ваша) - она вам вычертит 3D полилинию и пронумерует вершины. При этот в виде гиперссылок сохранится связь с источником данных.
Цитата:
Координаты всех трасс у меня находятся в таблицах Access
а должны храниться в одной таблице.

Цитата:
Как написать программу...
Я новичок в программировании и поэтому...
Вообще пишут, как правило ручками (если не учитывать генераторы кода). Прежде чем сесть за кодинг, неплохо было бы прежде определиться с языком программирования (C++/.Net/Lisp/VBA) и предварительно с ним познакомиться (хотя бы в общих чертах). Полагаю, вам подойдёт Lisp, ибо на более серьёзное нужно более серьёзное время для освоения материала.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 15.10.2010 в 21:02.
hwd вне форума  
 
Непрочитано 15.10.2010, 21:29
#5
Дима_

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


Цитата:
Сообщение от hwd Посмотреть сообщение
Полагаю, вам подойдёт Lisp, ибо на более серьёзное ...
из этого я пологаю, что лисп это что-то не серьезное?
Цитата:
Сообщение от hwd Посмотреть сообщение
Не изобретайте велосипед. Экспортируйте данные в MS Excel ...
получить полилинию по координатам из access на "несерьезном" лиспе дело 30 минут.
Автору - выложи формат бд.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 15.10.2010, 21:39
#6
hwd

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


Цитата:
Сообщение от Дима_ Посмотреть сообщение
из этого я пологаю, что лисп это что-то не серьезное?
ты прекрасно понял, в каком контексте это было сказано, не стоит провацировать холивар.

Цитата:
Сообщение от Дима_ Посмотреть сообщение
получить полилинию по координатам из access на "несерьезном" лиспе дело 30 минут.
и что? есть желание? пиши
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 15.10.2010, 21:54
#7
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от rassom Посмотреть сообщение
Что-то выложить файл не удается. Нажал на управление с вложениями и загрузил, но че-то файла не видно
Посмотри внимательно на разрешенные форматы и размеры. mdb там нет. отсюда вывод - или упаковывай в rar или zip или выкладывай на файлообменник и сюда ссылку. hwd прав, координаты всех трасс должны находится в одной таблице.
Для работы с БД из lisp сущесвует библиотека ADOLISP Database Library
Осталось правильно составить SQL запрос.
Здесь на форуме уже обсуждались похожие проблемы. Нелохо бы с этим ознакомится так же для начала.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 15.10.2010, 21:57
#8
Дима_

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


Цитата:
Сообщение от hwd Посмотреть сообщение
ты прекрасно понял, в каком контексте это было сказано, не стоит провацировать холивар.


и что? есть желание? пиши
автор выложит структуру бд (по сути мне нужен только sql запрос который возращает XY(Z) координаты по порядку полилиниии) все остальное стандартное решение (по барабану - хоть в экселе, хоть в acsess, хоть в mysql - odbc все поддерживают).
по первому пункту - ну пошутил
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 15.10.2010, 22:03
#9
hwd

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


Цитата:
Сообщение от Дима_ Посмотреть сообщение
(по сути мне нужен только sql запрос который возращает XY(Z) координаты по порядку полилиниии) все остальное стандартное решение (по барабану - хоть в экселе, хоть в acsess, хоть в mysql - odbc все поддерживают).
Это на любом языке "по барабану", не только на лиспе, поскольку алгоритм прост и очевиден. Но лично мне влом писать, хотя и не сложно - поэтому и рекомендовал воспользоваться уже готовым вариантом.
Цитата:
Сообщение от VVA
hwd прав...
да неужели? в кои-то веки...
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 15.10.2010 в 22:12.
hwd вне форума  
 
Непрочитано 15.10.2010, 22:36
#10
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


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

Хранить координаты (каждая вершина это список из двых или трех точек) в таблицах БД Acces можно двумя основными способами:

1. В какой-то таблице создается MEMO-поле (можно текстовое) и в этом поле хранится список координат в каком-то формате. Другие поля - по разумению, можно и атрибутивную информацию держать. Это очень простое решение - можно вообще одной таблицей обойтись.

Если эта база предназначена только для вычерчивания в AutoCAD, то список можно сделать прямо в виде LISP-списка, который потом можно прочитать и нарисовать линии. Если БД "общего назначения", надо сделать что-то универсальное, используя разделители чисел и точек.

2. Создается специальная таблица с ключевым полем и полями типа X, Y, Z числового типа. В этой таблице находятся координаты всех линий, атрибутивная информация находится в другой таблице и осуществляется связь по ключевым полям.

Здесь уже надо заботиться о целостности данных, да и выборку из такой БД сложнее делать.

Интересный вопрос - как координаты будут попадать в БД? Хорошо еще если есть какие-то источники их поступления.

Извлечение данных из БД делается достаточно просто, через SQL-запрос. Изучать надо SQL, технологию ADO и собственно AutoCAD - если уж чертить в нем. Разумеется всяким мудрым советам по поводу Excel не стоит следовать - это "чтоб мужика запутать и не дать ему дохтуром стать".

И конечно же есть другие системы (не AutoCAD), где хранение координат и информации в БД реализовано изначально, в том числе и рисование.
ShaggyDoc вне форума  
 
Непрочитано 15.10.2010, 22:40
#11
hwd

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


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
это "чтоб мужика запутать и не дать ему дохтуром стать"
я надеюсь, что вам полегчало
вообще-то я показал вариант, который уже можно использовать без кодинга и рассусоливаниях о том, что нужно изучать.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 16.10.2010, 00:13
#12
Дима_

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


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Здесь уже надо заботиться о целостности данных, да и выборку из такой БД сложнее делать.
От себя хочу добавить - что если "по хорошему" - то только вторым способом, ибо в конечном итоге с первым гемора будет больше и закончится он только (гемор) при переходе ко второму.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 16.10.2010, 07:10
#13
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Цитата:
Сообщение от Дима_ Посмотреть сообщение
От себя хочу добавить - что если "по хорошему" - то только вторым способом, ибо в конечном итоге с первым гемора будет больше и закончится он только (гемор) при переходе ко второму.
В общем-то да. По теории - оно так. Но все зависит от характера дополнительной атрибутивной информации, необходимости многочисленных связей из разных таблиц и от многого другого. Т.е. надо правильно проектировать базу данных.

И самый лучший способ - когда об этом и не надо задумываться. Такое реализовано уже в нескольких СУБД. Координаты объектов хранятся в отдельных таблицах, семантические данные - во многих других, и они только ссылаются на "пространственные" данные. Пользователю или прикладному программисту вообще ничего не надо об этом знать - он создает, например, дополнительные таблицы с семантикой, а пространственные данные где-то сохраняются "сами".

И еще один важнейший вопрос - как отобрать необходимые данные, например для рисования хоть в Автокаде. Т.е. для составления самого SQL-запроса. Здесь без визуальной части работы с БД никак не обойтись. Причем желательно чтобы просмотр семантики сопровождался и просмотром геометрии.

Как работает SQL можно прямо на примере форума увидеть. У форума есть БД. В ней десятки таблиц. В них находятся, наверное, уже несколько миллионов записей. Зайдя на форум и щелкнув "Новые сообщения" я посылаю "запрос" search.php?do=getnew (это видно в адресной строке). На этот запрос каждый посетитель получит свои данные. Выбрав конкретную тему мы посылаем "запрос" наподобие showthread.php?t=58427. Конечно, посетитель запросы не набирает, это делает программа - движок форума. Запрос из адресной строки она преобразует в настоящий SQL-запрос, посылает его к серверу БД, а тот возвращает результат в виде, например, сборника текстов сообщений по теме. Этот результат еще преобразуется в HTML-код, чтобы показать нам, бродягам в браузере.

Вот примерно такое же и надо делать с любыми БД. Только отображение по-разному надо решать.
ShaggyDoc вне форума  
 
Непрочитано 16.10.2010, 21:09
#14
hwd

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


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Координаты объектов хранятся в отдельных таблицах, семантические данные - во многих других, и они только ссылаются на "пространственные" данные. Пользователю или прикладному программисту вообще ничего не надо об этом знать - он создает, например, дополнительные таблицы с семантикой, а пространственные данные где-то сохраняются "сами".

И еще один важнейший вопрос - как отобрать необходимые данные, например для рисования хоть в Автокаде. Т.е. для составления самого SQL-запроса. Здесь без визуальной части работы с БД никак не обойтись. Причем желательно чтобы просмотр семантики сопровождался и просмотром геометрии.

Как работает SQL можно прямо на примере форума увидеть. У форума есть БД. В ней десятки таблиц. В них находятся, наверное, уже несколько миллионов записей. Зайдя на форум и щелкнув "Новые сообщения" я посылаю "запрос" search.php?do=getnew (это видно в адресной строке). На этот запрос каждый посетитель получит свои данные. Выбрав конкретную тему мы посылаем "запрос" наподобие showthread.php?t=58427. Конечно, посетитель запросы не набирает, это делает программа - движок форума. Запрос из адресной строки она преобразует в настоящий SQL-запрос, посылает его к серверу БД, а тот возвращает результат в виде, например, сборника текстов сообщений по теме. Этот результат еще преобразуется в HTML-код, чтобы показать нам, бродягам в браузере.

Вот примерно такое же и надо делать с любыми БД. Только отображение по-разному надо решать.
это "чтоб мужика запутать и не дать ему дохтуром стать"(c) - я верно цитирую?
Особенно понравилось плавное переползание на тему SQL-запросов к форумам. Это автору так нужно было, что он наверное прямо чесался без этой информации, а получив её прозрел. Если уж советовать, то книжки, ибо подобные "умные" примеры ясности ему не сильно внесут (имхо).
По теме топика - тынц.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 20.10.2010, 16:37
#15
rassom

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


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

Хранить координаты (каждая вершина это список из двых или трех точек) в таблицах БД Acces можно двумя основными способами:

1. В какой-то таблице создается MEMO-поле (можно текстовое) и в этом поле хранится список координат в каком-то формате. Другие поля - по разумению, можно и атрибутивную информацию держать. Это очень простое решение - можно вообще одной таблицей обойтись.

Если эта база предназначена только для вычерчивания в AutoCAD, то список можно сделать прямо в виде LISP-списка, который потом можно прочитать и нарисовать линии. Если БД "общего назначения", надо сделать что-то универсальное, используя разделители чисел и точек.

2. Создается специальная таблица с ключевым полем и полями типа X, Y, Z числового типа. В этой таблице находятся координаты всех линий, атрибутивная информация находится в другой таблице и осуществляется связь по ключевым полям.

Здесь уже надо заботиться о целостности данных, да и выборку из такой БД сложнее делать.

Интересный вопрос - как координаты будут попадать в БД? Хорошо еще если есть какие-то источники их поступления.

Извлечение данных из БД делается достаточно просто, через SQL-запрос. Изучать надо SQL, технологию ADO и собственно AutoCAD - если уж чертить в нем. Разумеется всяким мудрым советам по поводу Excel не стоит следовать - это "чтоб мужика запутать и не дать ему дохтуром стать".

И конечно же есть другие системы (не AutoCAD), где хранение координат и информации в БД реализовано изначально, в том числе и рисование.
Спасибо всем за советы. Вот на счет SQL , ADO технологии и решение визуальной части задачи, какие книги нужно читать. На счет выбора языка, мне хотелось бы изучать LISP и VB.NET Да еще, у меня сейчас на компьютере есть программа Visual Studio 2010 Proffessional Вот такая исходная позиция. Хочу изучать только программирование для Автокад.
Заранее благодарю всех за новые ответы.
rassom вне форума  
 
Непрочитано 20.10.2010, 16:47
#16
hwd

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


>rassom
Видео смотрел? Похоже на то, что искал (по теме топика)?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 20.10.2010, 16:59
#17
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от rassom Посмотреть сообщение
у меня сейчас на компьютере есть программа Visual Studio 2010 Proffessional
Offtop: Случайно на нем оказалась?

Последний раз редактировалось Do$, 21.10.2010 в 08:24. Причина: Исправил последствия бага инструмента цитирования сообщений.
Do$ вне форума  
 
Непрочитано 20.10.2010, 17:19
#18
hwd

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


Цитата:
Сообщение от Do$ Посмотреть сообщение
Цитата:
Сообщение от hwd
у меня сейчас на компьютере есть программа Visual Studio 2010 Proffessional
Offtop: Случайно на нем оказалась?
ты автором цитаты не того указал
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 21.10.2010, 08:25
#19
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Offtop: Криво работает инструмент цитирования , исправил.
Do$ вне форума  
 
Непрочитано 21.10.2010, 09:05
#20
Сергей Дубина


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


Напугали мужика, что он с темы соскочил.
Для акцесса проще написать ВБА и повестить на кнопку. На входе процедуры строка запроса, в результате работы - черчение через объектную модель АвтоКАДа.
__________________
КазнитьØнельзяØпомиловать:eek:
Сергей Дубина вне форума  
 
Непрочитано 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