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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Параметрическое черчение в AutolLisp с использованием базы данных чертежа

Параметрическое черчение в AutolLisp с использованием базы данных чертежа

Ответ
Поиск в этой теме
Непрочитано 28.03.2008, 10:05 #1
Параметрическое черчение в AutolLisp с использованием базы данных чертежа
Danger_pgs
 
Строительная диагностика
 
Барнаул
Регистрация: 23.02.2008
Сообщений: 24

Доброе время суток, уважаемые форумчане! Встала следующая задача, написать функции на AutoLisp для черчения примитивов и элементарных команд редактирования, т.е. альтернативу стандартным command (типа LIne, Pline, Circle, copy, mirror, move), с использованием базы данных чертежа (типа entmake). Впринципе это должно избавить от многих проблем, таких как черчение за пределами экрана (напрягает позиционировать экран на текущий объект), проблемы с привязкой, да и скорость отрисовки больших проектов увеличивается в разы... Если кто-нибудь занимался подобными разработками, откликнитесь...

Последний раз редактировалось Danger_pgs, 28.03.2008 в 11:04.
Просмотров: 7249
 
Непрочитано 28.03.2008, 10:18
#2
Кулик Алексей aka kpblc
Moderator

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


А вот и ссылочки: блоки, дин.блоки, внешние ссылки, палитры инструментов...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 28.03.2008, 11:07
#3
Danger_pgs

Строительная диагностика
 
Регистрация: 23.02.2008
Барнаул
Сообщений: 24
<phrase 1=


Пардон за мой французский, если я невнятно выразил идею. Уточню: меня интересует непосредственная ПРЯМАЯ работа с базой данных чертежа!
Danger_pgs вне форума  
 
Непрочитано 28.03.2008, 11:09
#4
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,827
<phrase 1=


Danger_pgs хочешь изобрести аналог AutoCad?
Молодца!!
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Автор темы   Непрочитано 28.03.2008, 18:30
#5
Danger_pgs

Строительная диагностика
 
Регистрация: 23.02.2008
Барнаул
Сообщений: 24
<phrase 1=


Короче, тема такая: я пишу дипломную работу основной задачей которой является отрисовка стропильной конструкции со всеми схемаи и узлами в автокаде средствами автолиспа. Должно быть реализованно три метода отрмсовки: всё 1:1 масштабируется вся мишура; все чертежи в заданных мастабах, мишура фиксированная; всё в можели 1:1 оформление на листа через вьюпорты, и всё это СРЕДСТВАМИ АВТОЛИСПА!!! Те кто занимался программным черчением прекрасно знают о недостатках классических функций лиспа, таких как бесконечное зумирование нужного участка чертежа, чтоб лисп не накасячил с привязкой, ведь по сути стандартные команды лира эмулируют работу с курсором мыши и так далее, т.е. при достаточно большом наполнении чертежа, щечёк по какому-либо объекту не гарантирует нам что выделится именно ОН!!! От всего этого безобразия могли бы спасти функции написанные и заточенные для работы с базой данных чертежа (опять же средствами лиспа, поэтому велосипед я не изобретаю). Ещё один фактор - это скорость работы... Попробуйте забабахать лиспик со стандартными (command "Line") и т.д. который отресует вам чертёжик в несколько тысяч элементов... да томительное ожидание... работа с базой в разы ускоряет этот процесс...
P.S. Суть в том, что это лишь маленькая часть моей работы м не хотелось бы тратить время на разработку того, что было сделанно до нас... Как говорила одна умная женщина: "Умные люди придумали, а мы воспользуемся..."
Danger_pgs вне форума  
 
Непрочитано 28.03.2008, 18:43
#6
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


Сначала разберись и не смешивай понятия "функции лиспа" и "команды автокада". Отключение привязок уже отменили? Очень пахнет велосипедом с квадратными колёсами....
Евгений А. вне форума  
 
Непрочитано 28.03.2008, 18:54
#7
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825


Что ты имеешь ввиду под базой данных? Формат DXF? Ну и используй entmake, чем не нравится? Или тебе надо что-то типа:
Код:
[Выделить все]
(defun Kr=AddPolyline (Space PointList / )
  (setq rr (apply 'append (mapcar 'Kr-3dPoint-2dPoint PointList)))
  (vla-AddLightWeightPolyline Space
    (Kr-2Dlist-variantArray rr))
  )
?

Цитата:
Те кто занимался программным черчением прекрасно знают о недостатках классических функций лиспа, таких как бесконечное зумирование нужного участка чертежа, чтоб лисп не накасячил с привязкой
А не пробывал отключать привязку?
Krieger вне форума  
 
Автор темы   Непрочитано 28.03.2008, 23:04
#8
Danger_pgs

Строительная диагностика
 
Регистрация: 23.02.2008
Барнаул
Сообщений: 24
<phrase 1=


Цитата:
Сообщение от Евгений А. Посмотреть сообщение
Сначала разберись и не смешивай понятия "функции лиспа" и "команды автокада". Отключение привязок уже отменили? Очень пахнет велосипедом с квадратными колёсами....
Как раз понятия я не путаю, наверно не хватает проффесионализма объяснить то, что я хотел бы услышать... На счёт велосипеда с квадратными колёсами - воспринимаю только здоровую конструктивную критику (Krieger), так что I'm sorry...
Danger_pgs вне форума  
 
Автор темы   Непрочитано 28.03.2008, 23:10
#9
Danger_pgs

Строительная диагностика
 
Регистрация: 23.02.2008
Барнаул
Сообщений: 24
<phrase 1=


Цитата:
Сообщение от Krieger Посмотреть сообщение
Что ты имеешь ввиду под базой данных? Формат DXF? Ну и используй entmake, чем не нравится? Или тебе надо что-то типа:
Код:
[Выделить все]
(defun Kr=AddPolyline (Space PointList / )
  (setq rr (apply 'append (mapcar 'Kr-3dPoint-2dPoint PointList)))
  (vla-AddLightWeightPolyline Space
    (Kr-2Dlist-variantArray rr))
  )
?

А не пробывал отключать привязку?
Вот это, наверное, как раз то что мне нужно... Просто при таком методе, если я правильно понимаю, вообще отпадает надобность заботиться о привязках и тому подобное... Если не тяжело, поясните пожалуйста текст кода поподробнее, чтоб про остальное не спрашивать, по анологии разберусь!!! Заранее пасиба!
Danger_pgs вне форума  
 
Непрочитано 28.03.2008, 23:18
#10
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Krieger Посмотреть сообщение
<...>А не пробывал отключать привязку?
Или рисовать не командными методами, как показано?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 28.03.2008, 23:39
#11
Danger_pgs

Строительная диагностика
 
Регистрация: 23.02.2008
Барнаул
Сообщений: 24
<phrase 1=


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Или рисовать не командными методами, как показано?
В точку Вся димагогия которую я тут развёл уместилась в одну фразу: "Не командными методами" - гениально...
Теперь по существу:
1. Жду совета;
2. С радость посмотрю готовые лиспы;
3. Есть ещё маленькая задача: отрисовать - пол дела, а как решить проблему с компановкой листов, она в идиале тоже должна выполняться атвоматом. (не так важно, сначала надо с этим разобраться)
Danger_pgs вне форума  
 
Непрочитано 29.03.2008, 09:49
#12
Лентяй

Project Engineer
 
Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392


Совет первый и главный: внимательно прочитать "Help: Developer Documentation" раздел "ActiveX and VBA Developer's Guide" в части "Methods" главы с "Add3DFace Method" по "AddXLine Method" включительно. Прочитав, прочитанное осознать и усвоить.
Если с бусурманскими языками у вас проблемы, добыть и прочитать Священное Писание от Н.Н. Полищука. Добыв, оное Писание внимательно прочитать, а прочитав, осознать и усвоить содержание раздела "ActiveX" в части "Методы vla-add...", главы с " vla-add3DFace" по "vla-AddXLine".
Совет второй: с радостью посмотреть приведенные там же примеры использования соотв. методов.
Совет третий: перестать мечтать о Большой Волшебной Кнопке - подобные мечтания вредно сказываются на здоровье мечтателя.
Успехов!
Лентяй вне форума  
 
Непрочитано 29.03.2008, 10:53
#13
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825


Цитата:
Сообщение от Danger_pgs Посмотреть сообщение
Просто при таком методе, если я правильно понимаю, вообще отпадает надобность заботиться о привязках и тому подобное... Если не тяжело, поясните пожалуйста текст кода поподробнее, чтоб про остальное не спрашивать, по анологии разберусь!!!
Используя не командные методы над привязками думать не надо. Тот же entmake... для создания, например, окружности красного цвета, в точке с координатами (4.0,4.0) и радиусом 1 достаточна такая запись:
Код:
[Выделить все]
(entmake '((0 . "CIRCLE") (62 . 1) (10 4.0 4.0 0.0) (40 .  1.0)))
//взял из справки, если что//
В функции
Kr=AddPolyline просто используется метод vla-AddLightWeightPolyline, которому нужны точки и пространство, просто в новь созданной функции ити данные задаются в удобной форме.
В остальном читай 12 пост. Особенно третий совет. Чувствую завалишь диплом.

> Kpblc В библиотеке функций DWGruLispLib подобное есть? Этот проект вообще не сдох еще?
Krieger вне форума  
 
Автор темы   Непрочитано 29.03.2008, 11:41
#14
Danger_pgs

Строительная диагностика
 
Регистрация: 23.02.2008
Барнаул
Сообщений: 24
<phrase 1=


Благодарю за советы, а что касаемо волшебной кнопки - вообще к мечтателям не отношусь... Стараюсь до всего даходить своими силами, т.к. хорошо запоминается только то до чего дошёл сам, но... не всегда получается, к сожалению.
P.S. 1) Я думаю что у такого подхода к черечению есть неоспоримые плюсы(были перечисленны выше), поправьте меня если я неправ.
2) Если кто знает как избежать проблем при черчении за пределами экрана, поделитесь знаниями, потому как использовать паранарамирование и зумирование не очень удобно...
Danger_pgs вне форума  
 
Непрочитано 29.03.2008, 11:55
#15
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825


Цитата:
2) Если кто знает как избежать проблем при черчении за пределами экрана, поделитесь знаниями, потому как использовать паранарамирование и зумирование не очень удобно...
А какие проблемы за пределами экрана? Может за пределами лимитов? Если мешаются лимиты убери их или увеличь. А вообще рецепт тот же - не используй командные методы.
Krieger вне форума  
 
Автор темы   Непрочитано 29.03.2008, 15:09
#16
Danger_pgs

Строительная диагностика
 
Регистрация: 23.02.2008
Барнаул
Сообщений: 24
<phrase 1=


Спасибо. Так и поступлю. Я думаю тему можно закрыть! К кому обратиться за советом я уже понял, так что буду корпеть...
Danger_pgs вне форума  
 
Непрочитано 29.03.2008, 15:39
#17
Кулик Алексей aka kpblc
Moderator

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


> Krieger : проект почти сдох. У меня элементарно не хватает а) времени и б) терпения прописать справку и привести lsp в "штатный" вид. Хотя на его основе кое-что пишется...
> Лентяй : Вай-вай, как нехорошо ошибаться-то... Вместе же пили... ПолЕщук все же. Николай Николаевич.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.03.2008, 15:53
#18
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
> Krieger : проект почти сдох. У меня элементарно не хватает а) времени и б) терпения прописать справку и привести lsp в "штатный" вид. Хотя на его основе кое-что пишется...
Может помочь чем? Только боюсь квалификации не хватит...
Krieger вне форума  
 
Непрочитано 29.03.2008, 23:42
#19
Кулик Алексей aka kpblc
Moderator

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


См.ПМ.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 30.03.2008, 06:47
#20
Profan


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


Цитата:
Короче, тема такая: я пишу дипломную работу основной задачей которой является отрисовка стропильной конструкции со всеми схемаи и узлами в автокаде средствами автолиспа.
Одно из двух: или человек для выполнения диплома хочет создать маленькую САПР, или для создания маленькой САПР человек выбрал тему диплома. И в том и в другом случае человек рискует пролететь со своим дипломом и со своей САПР.
Profan вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Параметрическое черчение в AutolLisp с использованием базы данных чертежа

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Базы данных и AutoCad tokhot AutoCAD 16 18.05.2018 13:37
Нужен опыт создания базы данных кухонной мебели:) Таня. AutoCAD 19 15.02.2008 17:43
Загрузка параметров дин. блоков из базы данных Дима_ Прочее. Программное обеспечение 11 04.09.2007 17:03
Создание базы данных стандартных изделий для Автокад Владимир В Прочее. Программное обеспечение 4 23.03.2005 10:36