Главная » Просмотр файлов » Пояснительная записка

Пояснительная записка (1230040), страница 9

Файл №1230040 Пояснительная записка (Проектирование модели инфраструктуры СЖАТ железнодорожного участка с использованием слоев САПР для тренажерного комплекса) 9 страницаПояснительная записка (1230040) страница 92020-10-06СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 9)

Рисунок 2.7 - Представление точек в плоских DXF-файлах

Для расширения стандартных возможностей AutoCAD используются небольшие программы-приложения, написанные на языке AutoLISP. В AutoLISP реализовано тесное взаимодействие с командной строкой, что способствовало его популяризации среди инженеров, работающих в AutoCAD. Для автоматического назначения точкам Z-отметки из ее надписи используется специальная команда ztxt:

Код: (defun C:Ztxt ( / objSet Point ptLst tmp1 tmp2 pat txtZList dst *error*)

(vl-load-com)

(defun *error*(msg)(princ msg)

(vla-EndUndoMark (vla-get-activedocument (vlax-get-acad-object)))(princ)) (vla-StartUndoMark (vla-get-activedocument (vlax-get-acad-object)))

(if (and (setq objSet(ssget "_:L" '((0 . "POINT"))))

(setq Point (vl-remove-if 'listp(mapcar 'cadr(ssnamex objSet))))

(setq ptLst(mapcar 'cdr (mapcar '(lambda(x)(assoc 10 x))(mapcar 'entget Point)))) (setq objSet nil objSet(ssget "_X" (list '(0 . "*TEXT")

(cons 410 (getvar "CTAB"))))) )

(progn (setq tmp1 (vl-remove-if 'listp(mapcar 'cadr(ssnamex objSet))))

(setq tmp1 (mapcar '(lambda(x)(setq x (entget x))

(list (cdr(assoc 10 x))(cdr(assoc 1 x)))) tmp1))

(foreach pt ptlst (setq tmp2 (mapcar '(lambda(x)(list (distance pt (car x))(cadr x))) tmp1))

(setq pat (car tmp2)) (foreach dst tmp2 (if (< (car dst) (car pat))(setq pat dst))) (setq txtZList (cons (cadr pat) txtZList)) )

(setq txtZList (reverse txtZList))

(setq txtZList (mapcar '(lambda(x) (vl-string-translate "," "." (vl-string-trim "%UuoOcC \t" x)) )

txtZList)) (mapcar '(lambda(ptObj pt Z) (vla-put-coordinates (vlax-ename->vla-object ptObj)

(vlax-3d-point (list (car pt)(cadr pt) Z)) ) ) Point ptLst (mapcar 'atof txtZList) ) ) )

(vla-EndUndoMark (vla-get-activedocument (vlax-get-acad-object))) (princ) )

(princ "\nType Ztxt in command line")

При этом нужно учесть некоторые нюансы. Отметка точки должна быть представлена однострочным текстом. В случае если текст отметки многострочный, необходимо преобразовать его в однострочный с помощью команды «расчленить».

Точка может быть представлена блоком, состоящим из заштрихованной окружности (рисунок 2.8), – происходит после экспорта в формат DXF из чертежной модели. В этом случае необходимо использовать команду frto, которая также написана на языке AutoLISP. Программа поменяет набор примитивов на выбранный примитив. Команда frto применяется для замены: одних блоков другими; точек – блоками или окружностями и наоборот; одних надписей – другими.

Рисунок 2.8 - Представление точек после экспорта

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

      1. Работа Команды Ztxt.Lsp

План данного объекта был выполнен в программном продукте AutoCAD. Это самый распространенный метод работы и причины этого были описаны ранее. В данном случае о 3D-координаты точек не учитываются. Для построения 3D-модели виртуального мира такой файл нужно дорабатывать – поднимать Z-отметки и только потом можно полноценно работать в системах трехмерного моделирования.

Для использования программ-приложений, которые написаны на языке AutoLISP, необходимо иметь файл, содержащий код программы и названный для удобства использования именем программы, сохраненный с расширением LSP.

Важно знать, что AutoLISP-программы могут быть запущены только для полной версии AutoCAD, они не работают под AutoCAD LT. Для того чтобы загрузить lisp-файл, запускаем AutoCAD и выбираем Сервис>>AutoLISP>> Приложения (Tools>>AutoLISP>>Load) или вводим в командной строке: _appload. Открывается диалоговое окно загрузки/выгрузки приложений (рисунок. 2.9).

Рисунок 2.9 - Диалоговое окно загрузки/выгрузки приложений.

Чтобы загрузить ztxt.lsp, выполняем действия в следующем порядке:

1. Указываем папку, в которой находится lisp-файл.

2. Выбираем файл, который необходимо загрузить.

3. Нажимаем кнопку Загрузить. Если все прошло удачно, появится надпись: «ztxt.lsp успешно загружено».

4. Для добавления lisp-файлов в автозагрузку нажмите кнопку Приложения. При каждом запуске системы всегда будут автоматически загружаться выбранные команды.

5. Нажимаем кнопку Закрыть для закрытия диалогового окна загрузки/выгрузки приложений. Lisp-файл также можно загрузить перетащив (drag-and-drop) иконку файла в графическое окно AutoCAD.

Как только lisp-файл будет загружен, можно вызвать команду из командной строки. В нашем примере необходимо набрать в командной строке: ztxt. Команда предложит выбрать точки, которым будет присвоена Z-отметка.

Затем некоторое время будет происходить сам процесс присвоения отметки точкам. Данная команда не помогает решать все задачи. Следует помнить, что Z-отметка присваивается от ближайшей точки вставки текста подписи высоты (левый нижний край объекта «однострочный текст»). Если рядом с надписью находится несколько точек, то всем точкам будет присвоена одна Z-отметка. Если в ближайшей подписи содержится не отметка, а текст семантических свойств объекта, Z-отметка присвоена не будет. В целом качество работы программы зависит от загруженности плана.

По окончании работы команды необходимо в местах загрузки вручную исправить отметки. Я не использовал команду frto в моем примере, так как при экспорте из программных продуктов AutoCAD второго поколения точки представлены примитивами: точка, сплайн, линия и дуга . Эта команда будет полезна для восстановления Z-отметок плоских DXF-чертежей, которые были экспортированы из чертежной модели систем САПР либо других геоинформационных систем. В результате проделанной работы получил точки, имеющие свои отметки, по которым возможно построить поверхность земли и, применяя автоматизированные технологии, использовать эту поверхность для размещения различных инженерных сооружений.

    1. Процесс экспорта свойств примитивов из Excel в базу данных

Загрузку данных осуществляется с помощью программы написанной в Delphi, т.к это существенно сократит время на заполнение базы данных.

Были помещены на форму следующие компоненты:

  • pFIBDatabase1: TpFIBDatabase;

  • pFIBTransaction1: TpFIBTransaction;

  • ExcelApplication1: TExcelApplication;

  • ExcelWorkbook1: TExcelWorkbook;

  • ExcelQueryTable1: TExcelQueryTable;

  • ExcelWorksheet1: TExcelWorksheet;

  • Button1: TButton;

  • OpenDialog1: TOpenDialog;

  • pFIBDataSet1: TpFIBDataSet;

  • DBGrid1: TDBGrid;

  • DataSource1: TDataSource;

  • Button2: TButton;

  • procedure Button1Click(Sender: TObject);

  • procedure Button2Click(Sender: TObject);



Получился следующий вид представленный на рисунке 2.10

Рисунок 2.10 - Компоненты

Для компонента базы данных TpFIBDatabase устанавливаем в свойстве параметры соединения путь к ранее созданной базе данных и подключаемся изменеием параметра Connected на true , остальные значения оставляем по умолчанию.

В DBGrid нужно установить значение размеров, в пункте DataSource установить DataSource1 для того чтобы связаться с нашей базой данных. TpFIBDataset и TpFIBDatatransaction делаем активным.

Для компонента TpFIBDataset в свойствах SQL нужно прописать запрос на добавление в базу данных координат и свойств извлеченных из таблицы Excel. Форма для добавления SQL запроса представлена на рисунке 2.11

Рисунок 2.11 – форма для добавления SQL запроса

NAMELINE, DELX, DELY и пр.– имена полей для заполнения. PUTI- название таблицы.SQL запрос прописывается для добавления данных в базу- insert, обновления данных в базе данных- update, удаления данных в базе- delete и обновления информации на форме-refresh.

SQL запрос добавления данных в базу- insert:

INSERT INTO PUTII(ID_P, NAMELINE, DELX, DELY, DLINA, ENDX, ENDY, MASHTAB, SLOY, TIP, TOLSHINA, COLOR)

VALUES( :ID_P, :NAMELINE, :DELX, :DELY, :DLINA, :ENDX, :ENDY, :MASHTAB, :SLOY, :TIP, :TOLSHINA, :COLOR)

SQL запрос для обновления данных в базе данных- update:

UPDATE PUTII SET ID_P = :ID_P, NAMELINE = :NAMELINE, DELX = :DELX, DELY = :DELY, DLINA = :DLINA, ENDX = :ENDX, ENDY = :ENDY, MASHTAB = :MASHTAB, SLOY = :SLOY, TIP = :TIP, TOLSHINA = :TOLSHINA, COLOR = :COLOR

WHERE

ID_P = :OLD_ID_P and NAMELINE = :OLD_NAMELINE and DELX = :OLD_DELX and DELY = :OLD_DELY and DLINA = :OLD_DLINA and ENDX = :OLD_ENDX and ENDY = :OLD_ENDY and MASHTAB = :OLD_MASHTAB and SLOY = :OLD_SLOY and TIP = :OLD_TIP and TOLSHINA = :OLD_TOLSHINA and COLOR = :OLD_COLOR

SQL запрос для удаления данных в базе- delete:

DELETE FROM PUTII

WHERE

ID_P = :OLD_ID_P and NAMELINE = :OLD_NAMELINE and DELX = :OLD_DELX and DELY = :OLD_DELY and DLINA = :OLD_DLINA and ENDX = :OLD_ENDX and ENDY = :OLD_ENDY and MASHTAB = :OLD_MASHTAB and SLOY = :OLD_SLOY and TIP = :OLD_TIP and TOLSHINA = :OLD_TOLSHINA and COLOR = :OLD_COLOR

SQL запрос для обновления информации на форме-refresh:

SELECT ID_P, NAMELINE, DELX, DELY, DLINA, ENDX, ENDY, MASHTAB, SLOY, TIP, TOLSHINA, COLOR

FROM PUTII WHERE

PUTII.ID_P = :OLD_ID_P and PUTII.NAMELINE = :OLD_NAMELINE and PUTII.DELX = :OLD_DELX and PUTII.DELY = :OLD_DELY and PUTII.DLINA = :OLD_DLINA and PUTII.ENDX = :OLD_ENDX and PUTII.ENDY = :OLD_ENDY and PUTII.MASHTAB = :OLD_MASHTAB and PUTII.SLOY = :OLD_SLOY and PUTII.TIP = :OLD_TIP and PUTII.TOLSHINA = :OLD_TOLSHINA and PUTII.COLOR = :OLD_COLOR

Для компонента компонента Button1 прописываем процедуру которая будет отвечать за выбор пути до файла с интересующими нас координатами и свойствами объектов извлеченных из чертежа AutoCAD и отображения их на форме в компоненте DBGrid с последующим импорта из в базу данных:

begin

excel :=CreateOleObject('Excel.Application');

excel.DisplayAlerts :=False;//отключение запросов Excel

if not OpenDialog1.Execute then Exit;

try

Excel.WorkBooks.Open(opendialog1.FileName); //открываем файл Excel

i :=2; //начинаем считывать со 2ой строки

j := excel.ActiveCell.SpecialCells(xlCellTypeLast).Row;// до последней не пустой строки

// процедура загрузки

while i<>j+1 do begin

{id :=excel.cells[i,1].value;}

idauto :=excel.cells[i,1].value;

god:=excel.cells[i,2].value;

a:=excel.cells[i,3].value;

b:=excel.cells[i,4].value;

c:=excel.cells[i,5].value;

d:=excel.cells[i,6].value;

e:=excel.cells[i,7].value;

f:=excel.cells[i,8].value;

g:=excel.cells[i,9].value;

h:=excel.cells[i,10].value;

k:=excel.cells[i,11].value;

l:=excel.cells[i,12].value;

with pFIBDataset1 do

begin

Insert;

pFIBDataset1.insert;

// FieldByName('ID_P').AsInteger :=id;

FieldByName('NAMELINE').AsString :=idauto;

Характеристики

Список файлов ВКР

Проектирование модели инфраструктуры СЖАТ железнодорожного участка с использованием слоев САПР для тренажерного комплекса
255-Пестун Егор Андреевич
Фото документов
6ой плакат.vsd
Плакаты.vsd
Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7031
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее