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

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

Можно ли автоматизировать черчение полилиниями прямоугольных фигур?

Ответ
Поиск в этой теме
Непрочитано 17.03.2014, 01:37
Можно ли автоматизировать черчение полилиниями прямоугольных фигур?
Vict0r
 
Инвентаризация з/у
 
Брянск
Регистрация: 30.03.2006
Сообщений: 20

Уважаемые форумчане!
Часто приходится чертить прямоугольные полилинии (например: внешнюю стену дома с парой пристроек одной фигурой). При этом ясно что все углы по 90 градусов и было бы отлично не рисовать последний сегмент и потом замыкать его с первой вершиной, а чтобы этот последний угол фигуры достраивался автоматом.
В идеале процесс примерно такой:
1. Указать первую и вторую точки первого сегмента полилинии (одна из стен дома)
2. Повернуть оси координат по этим двум точкам
3. "ortomode" 1
4. Начать чертить полилинию: по первой, второй точке, спросить третью и т.д. до тех пор пока не останется нарисовать последний угол, после чего прерывание по пробелу.
5. Автоматическое достраивание последнего угла полилинии.

Последний раз редактировалось Vict0r, 17.03.2014 в 02:58.
Просмотров: 8323
 
Автор темы   Непрочитано 20.03.2014, 11:29
#21
Vict0r

Инвентаризация з/у
 
Регистрация: 30.03.2006
Брянск
Сообщений: 20


VVA, Всё-таки выловил багу. В одном из приложенных файлов "P90" не срабатывает, но что влияет не разобрался.
Вложения
Тип файла: dwg
DWG 2000
P90_работает.dwg (179.6 Кб, 1496 просмотров)
Тип файла: dwg
DWG 2000
P90_не_работает.dwg (181.2 Кб, 1497 просмотров)
Vict0r вне форума  
 
Непрочитано 20.03.2014, 14:46
#22
VVA

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


Цитата:
Сообщение от Vict0r Посмотреть сообщение
вершиной №1 созданной полилинии была бы первая указанная точка (pt1).
обновил #17
sbi, Такое будет, если 1-й и последний сегмент параллельны. Сейчас эту ситуацию не обрабатываю, т.к. не понятно как поступать в таких случаях
Чтобы понятнее было опишу алгоритм:
1. По указанным точкам строятся отрезки и добавляются в набор
2. По окончании построений ищется точка пересечения прямой, проходящей через 1-ю точку 1-го отрезка в наборе (первая указанная точка) параллельно последнему отрезку в наборе и
прямой, проходящей через 1-ю точку последнего отрезка в наборе (последняя указанная точка) параллельно первому отрезку в наборе
Если первый и последний отрезок параллельны, то пересечения не будет. Пока такая ситуация не обрабатывается.

----- добавлено через ~2 мин. -----
Цитата:
Сообщение от Vict0r Посмотреть сообщение
Всё-таки выловил багу. В одном из приложенных файлов "P90" не срабатывает, но что влияет не разобрался
У меня рисует. Что ты имеешь ввиду под словом "не срабатывает". И что чертишь?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 20.03.2014, 15:36
#23
sbi


 
Регистрация: 27.04.2008
SPB
Сообщений: 3,285
Отправить сообщение для sbi с помощью Skype™


Цитата:
Сообщение от VVA Посмотреть сообщение
2. По окончании построений ищется точка пересечения прямой, проходящей через 1-ю точку 1-го отрезка в наборе (первая указанная точка) параллельно последнему отрезку в наборе и
прямой, проходящей через 1-ю точку последнего отрезка в наборе (последняя указанная точка) параллельно первому отрезку в наборе
Если первый и последний отрезок параллельны, то пересечения не будет. Пока такая ситуация не обрабатывается.
А если ПСК оставить или вернуть в 1-ю точку 1-го отрезка в наборе, а затем при условии, что последняя точка положительна в этой системе координат - провести сначала вертикальную а затем горизонтальную pline, отрицательна - наоборот. Это можно в Lisp?. В VBA, по моему, возможно.
__________________
С уважением sbi
sbi вне форума  
 
Непрочитано 20.03.2014, 16:00
#24
VVA

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


sbi, Сделал немного проще, без анализа четвертей. Обновил еще раз #17
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 20.03.2014, 16:24
#25
Vict0r

Инвентаризация з/у
 
Регистрация: 30.03.2006
Брянск
Сообщений: 20


Цитата:
Сообщение от VVA Посмотреть сообщение
У меня рисует. Что ты имеешь ввиду под словом "не срабатывает". И что чертишь?
Вот комстрока:

Команда: (load "p90")
C:P90

Команда: P90

От точки:
К точке <выход>:

Точки лежат на одной прямой

К точке [Отмена] <замкнуть и выйти>:
Неверная точка.
Функция отмененаНастройка переменной AutoCAD отвергнута: "ortomode" 0
Точка на положительном луче оси Y в плоскости XY ПСК <4605.960,1458.446,0.000>:

Цитата:
Сообщение от VVA Посмотреть сообщение
обновил #17
не работает. Теперь вообще непонятно по какому принципу выбирается начальная точка полилинии (в приложеной картинке кругами обозначены начальные точки построения).

----- добавлено через ~7 мин. -----
нашел опечатку:
Цитата:
Сообщение от VVA Посмотреть сообщение
(setvar "ortomode" om)
но причина не в ней.
Изображения
Тип файла: jpg Сохраненное изображение 2014-3-20_16-22-31.661.jpg (90.7 Кб, 186 просмотров)

Последний раз редактировалось Vict0r, 20.03.2014 в 16:33.
Vict0r вне форума  
 
Непрочитано 20.03.2014, 17:32
#26
sbi


 
Регистрация: 27.04.2008
SPB
Сообщений: 3,285
Отправить сообщение для sbi с помощью Skype™


Vict0r Вы, наверно, забываете, что сами задали 1-точку, направление ко 2-точке и конечную точку, возврат к первой отрезками полиниями, с углом 90 градусов между последними (это замкнутый многоугольник-другого не дано).
Цитата:
Сообщение от VVA Посмотреть сообщение
без анализа четвертей
VVA - может надо вводить условие Y>0 or <0
Миниатюры
Нажмите на изображение для увеличения
Название: лисп3.PNG
Просмотров: 29
Размер:	3.1 Кб
ID:	124772  
__________________
С уважением sbi

Последний раз редактировалось sbi, 20.03.2014 в 17:39.
sbi вне форума  
 
Автор темы   Непрочитано 20.03.2014, 19:55
#27
Vict0r

Инвентаризация з/у
 
Регистрация: 30.03.2006
Брянск
Сообщений: 20


Цитата:
Сообщение от sbi Посмотреть сообщение
забываете, что сами задали 1-точку
Это Вы про
Цитата:
Сообщение от Vict0r Посмотреть сообщение
Теперь вообще непонятно по какому принципу выбирается начальная точка полилинии
если так, то там я писал про
Цитата:
Сообщение от Vict0r Посмотреть сообщение
Было бы вообще идеально, если вершиной №1 созданной полилинии была бы первая указанная точка (pt1).
и
Цитата:
Сообщение от VVA Посмотреть сообщение
Цитата:
Сообщение от Vict0r Посмотреть сообщение
вершиной №1 созданной полилинии была бы первая указанная точка (pt1).
обновил #17
Vict0r вне форума  
 
Непрочитано 20.03.2014, 20:09
#28
sbi


 
Регистрация: 27.04.2008
SPB
Сообщений: 3,285
Отправить сообщение для sbi с помощью Skype™


Vict0r Проба: точки на чертеже можешь не указывать, просто ткни куда хочешь. Вводи в командную строку P90. При окончании ввода нажми пробел. В РЕЗУЛЬТАТЕ=замкнутый многоугольник, с вершиной в 1-ой точке. Дерзай! 1-точкой может быть любая точка "фигуры", например в "модели участка с лесом".
__________________
С уважением sbi

Последний раз редактировалось sbi, 20.03.2014 в 20:15.
sbi вне форума  
 
Автор темы   Непрочитано 20.03.2014, 23:24
#29
Vict0r

Инвентаризация з/у
 
Регистрация: 30.03.2006
Брянск
Сообщений: 20


Указываю первую точку (0,0), указываю вторую(3,5), после чего включается орто, но оси не поворачиваюся в пск по первым двум точкам (остаются в мск).
sbi Желательно, чтобы первой точкой была не любая, я первая указанная.
Vict0r вне форума  
 
Непрочитано 21.03.2014, 00:20
#30
Apelsinov

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


Vict0r,
В автокаде есть такая штука как Polar tracking, где можно задать угол в 90 градусов с опцией relative to last segment. При таких настройках требуемые фигуры рисуются очень просто, вопрос с замыканием фигуры решается с применением привязок конечной и перпендикуляр при object Snap Tracking on
__________________
apel.fas
Apelsinov вне форума  
 
Автор темы   Непрочитано 21.03.2014, 08:36
#31
Vict0r

Инвентаризация з/у
 
Регистрация: 30.03.2006
Брянск
Сообщений: 20


Apelsinov,
Цитата:
Сообщение от Vict0r Посмотреть сообщение
я знаю как рисовать. я спрашиваю про автоматизацию
если таких фигур десятки, то устанешь отслеживать и точно где-нибудь ошибешься.
Vict0r вне форума  
 
Непрочитано 21.03.2014, 14:18
#32
VVA

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


Цитата:
Сообщение от sbi Посмотреть сообщение
может надо вводить условие Y>0 or <0
Сделал по другому. Анализирую, расположена ли полученная точка между указанными (на картинке из #26 она выделена синим квадратом рядом с осью X)

Обновил еще раз #17
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 21.03.2014, 15:58
#33
sbi


 
Регистрация: 27.04.2008
SPB
Сообщений: 3,285
Отправить сообщение для sbi с помощью Skype™


VVA Всё прекрасно работает и даже удовлетворяет изысканному вкусу автора топика!
__________________
С уважением sbi
sbi вне форума  
 
Непрочитано 22.03.2014, 00:59
#34
Apelsinov

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


VVA,
у меня тут очень интересный клинический случай нарисовался, не работает твой лисп в приложенном файле,
в чем дело не могу понять, посмотри, пожалуйста.
Вложения
Тип файла: dwg
DWG 2004
Drawing1.dwg (58.3 Кб, 1140 просмотров)
__________________
apel.fas
Apelsinov вне форума  
 
Непрочитано 25.03.2014, 17:49
#35
VVA

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


Apelsinov, У меня работает. Правда предупреждение выдало о наличии прокси объектов MagiCAD'а
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Можно ли автоматизировать черчение полилиниями прямоугольных фигур?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработка ПОС, искусство проектирования Tyhig Технология и организация строительства 117 25.11.2021 17:38
Какой язык перспективен для инженера-конструктора с условием The_Mercy_Seat Программирование 705 17.03.2021 14:19
Мониторы LCD CRT Разное 94 17.06.2008 10:51