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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Знатоки Lisp!!! кто подскажет?

Знатоки Lisp!!! кто подскажет?

Ответ
Поиск в этой теме
Непрочитано 30.03.2006, 18:28 #1
Знатоки Lisp!!! кто подскажет?
игорёк
 
проектирование
 
москва
Регистрация: 30.10.2005
Сообщений: 216

Даю команду pline и отвечаю на на запрос точек командой getpoint.
Как сделать чтоб показывалась трасировка от первой точки до второй.
(он запрашивает первую точку и вторую и только потом строит между ними линию)
Просмотров: 6306
 
Непрочитано 30.03.2006, 18:41
#2
Zouss


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


нечестно это... в help все написано...
Код:
[Выделить все]
(setq pt1 (getpoint "Укажите первую точку: "))
(setq pt2 (getpoint pt1 "Укажите вторую точку: "))
(command "pline" pt1 pt2 "")
Zouss вне форума  
 
Непрочитано 30.03.2006, 18:56
#3
Apelsinov

Проектировщик ВК. LISP-любитель.
 
Регистрация: 15.12.2003
Москва
Сообщений: 1,192
<phrase 1=


Из вредности:

Код:
[Выделить все]
(if (and (setq pt1 (getpoint "\nУкажите первую точку: "))
	 (setq pt2 (getpoint pt1 "\nУкажите вторую точку: "))
    )
  (VL-CMDF "_.PLINE" pt1 pt2 "")
)
__________________
apel.fas
Apelsinov вне форума  
 
Непрочитано 30.03.2006, 19:03
#4
Zouss


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


согласен, так лучше
только у меня типа отмазка есть - я сугубо про
Цитата:
Как сделать чтоб показывалась трасировка от первой точки до второй.
Zouss вне форума  
 
Непрочитано 30.03.2006, 21:06
#5
mmax

Программист широкого профиля.
 
Регистрация: 08.09.2005
Челябинск
Сообщений: 722


Не рекомендую "" в команде vl-cmdf, я уже намучался.
Это только из visualnogo lisp все работает гладко, а когда начинается c(load) вот тогда и думаешь откуда глюки.
mmax вне форума  
 
Непрочитано 30.03.2006, 21:14
#6
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


Цитата:
Сообщение от mmax
Не рекомендую "" в команде vl-cmdf, я уже намучался.
Это только из visualnogo lisp все работает гладко, а когда начинается c(load) вот тогда и думаешь откуда глюки.
Пример мучений, пожалуйста! Если это подтвердится, то надо будет составлять багрепорт и слать в Аутодеск.
Alaspher вне форума  
 
Автор темы   Непрочитано 31.03.2006, 10:13
#7
игорёк

проектирование
 
Регистрация: 30.10.2005
москва
Сообщений: 216


Огромное спасибо! Воспользовался этим сайтом второй раз и помогло.
Насколько иногда допускаеш глупые ошибки.
Я на работе пытаюсь автоматизировать построение трехмерной модели здания по поэтажной планировке(конечно с последующей доработкой).
игорёк вне форума  
 
Непрочитано 31.03.2006, 10:17
#8
Кулик Алексей aka kpblc
Moderator

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


В таком случае я бы посоветовал воспользоваться ADT - там такая задача достаточно хорошо (ИМХО) решена
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 04.04.2006, 11:06
#9
игорёк

проектирование
 
Регистрация: 30.10.2005
москва
Сообщений: 216


Я пользуюсь ADT. Мы предварительно чертим поэтажки в 3D MAP.
Taкой вопрос. Возможно ли сделать построение стен в плоскости чтоб вести стену с трасировкой этой стены по её контуру.
Объясняю подробнее: я рисую полилинию по двум точкам, потом изменяю координаты точек на ширину стены и только потом вычерчивается вся стена(тобиш замкнутая четырех точечная полилиния) Хотелось бы по внешнему виду чтоб напоминало построение стены в ArchiCAD. Чертить поэтажки обязательно в MAP потому что потом к каждой стене пристегивается база данных и все это вместе со связями экспортируется в mif/mid....
Это не весь этап построения....
Может кто знает как показать всю встену до указания второй точки...?
Заранее благодарен....
игорёк вне форума  
 
Непрочитано 04.04.2006, 16:59
#10
Zouss


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


Цитата:
Сообщение от можно так
(defun c:d1 () ;демо функция вызова
(setq WallW 250)
(duemo (/ wallW 2))
) ;_ defun

;;; функция (duemo <половина толщины стены>) возвращает список из двух списков координат точек
;;; во время запроса координат хреново рисует на экране типа стену и оставляет иногда мусор из-за
;;; кривости работы функции (grdraw

(defun duemo (halw ;половина ширины стены
/
grinp ;ввод пользователя
pt1
pt2
pt11
pt12
pt21
pt22 ;координаты
E ; условие выхода
)

(setq pt1 (getpoint "Начало: ")
grinp (grread T 4 0)
E T
) ;_ setq


(while E ; цикл пока не нажата кнопка мыши
(progn
(setq pt2 (car (cdr grinp))
ang1 (angle pt1 pt2)
dist1 (distance pt1 pt2)
pt11 (polar pt1 (+ (/ pi 2) ang1) halw)
pt12 (polar pt1 (+ (/ pi 2) ang1) (- halw))
pt21 (polar pt11 ang1 dist1)
pt22 (polar pt12 ang1 dist1)
) ;_ setq

(grdraw pt1 pt2 -1); центральная линия (в данном случае осевая) стены
(grdraw pt11 pt21 -1); остальные линии контура стены
(grdraw pt12 pt22 -1)
(repeat 15000);глупая пауза
(setq E (/=
(car
(setq grinp (grread T 4 0))
) ;_ car
3
) ;_ /=
) ;_ setq
(redraw); освежим экран
) ;_ progn
) ;_ while
(redraw); освежим экран
(list pt1 pt2); отдадим координаты
) ;_ defun
переменные pt11, pt12, pt21, pt22 можно сделать глобальными относительно данной функции и потом по ним быстро изобразить две полилинии... ну тут вариантов многа в общем
Zouss вне форума  
 
Автор темы   Непрочитано 04.04.2006, 18:49
#11
игорёк

проектирование
 
Регистрация: 30.10.2005
москва
Сообщений: 216


Класно получается но эта грязь на экране просто п__ц!
игорёк вне форума  
 
Непрочитано 04.04.2006, 19:01
#12
Zouss


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


разве это грязь? это артефакты. вот замени в (grdraw pt# pt# -1) -1 на скажем 46 - вот это будет грязь!

в свете такой ботвы я думаю красивше будет запустить полилинию например (естественно с шириной равной ширине стены), завершить работу команды после ввода второй точки, выдернуть координаты из полилинии через (entget (entlast)), стереть её и нарисовать то что надо - вычисление координат у тебя теперь есть не так ли?

или в VL искать, может там нормально работающий аналог (grdraw есть
Zouss вне форума  
 
Автор темы   Непрочитано 05.04.2006, 09:42
#13
игорёк

проектирование
 
Регистрация: 30.10.2005
москва
Сообщений: 216


Я внес
(redraw); освежим экран
в цикл и результат получился впечатляющим....!
игорёк вне форума  
 
Непрочитано 05.04.2006, 11:15
#14
Zouss


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


исправил вышеприведенный листинг - игорёк силен, нашел решение
осталось грамотный *error* написать чтоб и после Esc хлама не оставалось
Zouss вне форума  
 
Автор темы   Непрочитано 05.04.2006, 14:31
#15
игорёк

проектирование
 
Регистрация: 30.10.2005
москва
Сообщений: 216


Это ты что с ехидничал...?
Я CAD-ом занимаюсь лет 5. А lisp-ом и BASIC-ом начал только недавно, поэтому прошу не ехидничать.
За два месяца написать приложение которое строит трехмерку на основе поэтажки, учитывая тот факт что два месяца назат я не имел представление о lisp и о BASIC, какое не есть но это достижение....
игорёк вне форума  
 
Непрочитано 05.04.2006, 14:46
#16
Кулик Алексей aka kpblc
Moderator

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


> игорек : у меня аналогичная ситуация, если интересно. Лиспом занимаюсь неполный год Ну это так, лирика.
Насчет лиспа и проч. Я не смотрел и не тестировал код, у меня только один вопрос - а почему ты не пользуешься инструментами ADT в смысле стен, перекрытий и проч? Там это уже сделано в общем-то, ЯТД.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 05.04.2006, 14:52
#17
Zouss


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


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

кстати вопрос, сам не строитель, поэтому скажи, почему строители не пользуются мультилинией для отрисоки стен? на мой дилетантский взгляд штука прям для стен зделана
Zouss вне форума  
 
Непрочитано 05.04.2006, 15:20
#18
vx

свободный художник (freelancer)
 
Регистрация: 24.04.2005
Сообщений: 58


Цитата:
почему строители не пользуются мультилинией для отрисоки стен?
мультилиния редактируется очень гадко (ИМХО)
vx вне форума  
 
Непрочитано 05.04.2006, 15:43
#19
Apelsinov

Проектировщик ВК. LISP-любитель.
 
Регистрация: 15.12.2003
Москва
Сообщений: 1,192
<phrase 1=


Цитата:
Сообщение от игорёк
<...>приложение которое строит трехмерку на основе поэтажки <...> какое не есть но это достижение....
Еще бы! ADT нервно курит в сторонке.
__________________
apel.fas
Apelsinov вне форума  
 
Автор темы   Непрочитано 06.04.2006, 09:37
#20
игорёк

проектирование
 
Регистрация: 30.10.2005
москва
Сообщений: 216


Ща все объясню...
Я пользуюсь ADT, но мы сначала делаем поэтажную планировку.
И не просто поэтажку, а чертим по растру(вставляеш рисунок, изменяеш его с помощю Rubber Seet) просчитываем размеры и т. д.
работать с чужими чертежами просто п__ц! внешние размеры бывают меньше внутренних(Это чертежи БТИ с печатями! А сегодня ваще упал, размеры моста расходятся с его же размерами по пикетам НА 5,65 м!!!) Много времени уходит на выяснение кто и где сделал ошибку. И поэтому хочется ускорить процес построения стен, когда размеры здания просчитаны. Но это обязательно в MAP потому что каждый элемент (стена, окно, дверь) привязывается к базе и это все экспортируется. Потом програмеры бросают полученные элементы на карту, с привязанной базой. Э то наиболее краткое описание процесса. Только потом нужно возвести все это в 3D (в ADT) привязать каждый элемент к базе и снова сэкспортировать программерам. В результате должно получиться карта с поэтажкой каждого дома, с информацией о элементах(ширина дверей, материал стен и др.) и с трехмерным видом этого дома. Потом еще движок будет чтоб ходить по этому дому.
Представляеш какой Doom можно сделать!!!! Но это не для игры...
Стучись ISQ 254-124-274...
игорёк вне форума  
 
Непрочитано 06.04.2006, 10:11
#21
Apelsinov

Проектировщик ВК. LISP-любитель.
 
Регистрация: 15.12.2003
Москва
Сообщений: 1,192
<phrase 1=


прочитал пост 20. В голове фигня поселилась....
__________________
apel.fas
Apelsinov вне форума  
 
Автор темы   Непрочитано 06.04.2006, 13:39
#22
игорёк

проектирование
 
Регистрация: 30.10.2005
москва
Сообщений: 216


плохо то что работа заключается в построении главных частей, и не уделяется внимание мелким деталям тем самым не позволяя создавать что-то красивое...
игорёк вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Знатоки Lisp!!! кто подскажет?

Размещение рекламы