|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Помогите с курсовой!!!Горю!!!
Регистрация: 24.12.2007
Сообщений: 9
|
||
Просмотров: 6156
|
|
||||
Цитата:
__________________
«Артиллерия не токмо грохот, но и наука!» Пётр I |
||||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,626
|
Для DsC.
Цитата:
|
|||
![]() |
|
||||
Инженер-теплотехник Регистрация: 17.08.2006
Смоленск
Сообщений: 311
|
Да-а, ужос чему учат. Помнится нам при изучении АвтоКАДа задали расчитать и начертить (скриптом или ЛИСПом) П-образный компенсатор в три линии со всеми размерами. И называлось это всего лишь типовым расчетом, хотя специальность совсем не программистская.
>> DsC Честно скажу, что за такое не возьмусь, но пару рекомендаций дам (а то гуру сейчас появятся, такое в свой адрес услышиш ![]() 1. Главное. Правильная постановка задачи уже является половиной её решения. 2. Каким образом задаются отрезки? Команда LINE не прерывается, или это отдельные отрезки в произвольных местах? 3. Как задаётся цвет? Для каждого отрезка отдельно через свойства или по слою (отрезки на разных слоях)? 4. Как должен осуществляться выбор отрезков в программе? Наверное должно быть похоже на работу команды FILLET. Вот отсюда и пляши. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
ИМХО: вся программа сводится к (command "_.fillet") с установлением радиуса. А радиус определять через (cond). Например, как-то так:
Код:
![]() ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
>Profan
Прикладное значение, всегда можно найти... Как пример - трубопровод, если обозначать цветами, трубы различных диаметров, то и сопряжения в углах будут подбираться по похожему алгоритму. >DsC А задачка на плоскости или в объеме? |
||||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,626
|
Ну, значит, (с горестным вздохом) Алексей Кулик и Евгений Елпанов еще не профи.
А если серьезно, Алексей, ты уверен, что код будет понятен DsC? Вот и Евгений задает такой вопрос, что кажется, будто задача для него слишком проста, не интересна, хочется усложнить. |
|||
![]() |
|
||||
|
||||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,626
|
Подумал немного над этой задачей. И пришел к выводу, что основную трудность для меня составляет определение максимально возможного радиуса сопряжения двух отрезков в зависимости от их длины и угла между ними. Решалась ли такая задача кем-нибудь? Поиском не нашел пока ничего. Но стало интересно.
|
|||
![]() |
|
||||
Цитата:
Короче, есть два отрезка и они объединены сопрягающей дугой. Что можно сказать о дуге? Во первых, ее центр удален от обоих отрезков на радиус дуги, во вторых, ее угол, равен углу между отрезками, в третьих, начальный и конечные углы этой дуги, перпендикулярны отрезкам. Это только мысли в слух... PS. мной эта задача решалась.. |
||||
![]() |
|
||||
Инженер-теплотехник Регистрация: 17.08.2006
Смоленск
Сообщений: 311
|
Главное, чтобы код был понятен преподавателю
![]() Позволю себе внести некоторые добавки в предложенный код. При определении цвета: Код:
Код:
По поводу математики. Если я правильно понимаю, получив точку пересечения отрезков, отступаем от неё на радиус по каждому из отрезков - получаем точки пересечения отрезков с дугой сопряжения (= нач и кон точки дуги). Значит максимальный радиус сопряжения - это расстояние от точки пересечения отрезков до самой дальней точки наиболее короткого отрезка? (вот же выразился, надеюсь без картинки понятно будет). Последний раз редактировалось Олег К., 25.12.2007 в 15:21. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
(command bla-bla-bla) вернет nil в любом случае. Так что "украшательства" не получится.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
Profan, (command "_.fillet" ent1 ent2) вернет nil в любом случае.
(в сторону): А автора не видно и не слышно ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 24.12.2007
Сообщений: 9
|
Автор вот он =)
Не ожидал такого количества ответов. Хочется ответить всем и каждому, но вот только некоторые поправки: Когда я еще пытался разобраться сам, то преподавательниЦА сказала:"Как задачу поставишь, так и будешь решать" и я подумал на счет того как задавать исходный чертеж...Чтоб не мучаться с поиском последовательных отрезков, создавать их каждый раз программно случайным образом последовательными LINEами со случайной длинной(в адекватных пределах)/ со случайными смещениями очередного конца и со случайным цветом...У пользователя спрашивать только количество отрезков и радиусы...на счет радиусов,кстати, ничего сказать не многу =( Код действительно непонятен почти =( Преподавательница тоже не профи(она специалист широкого профиля - чего тока не преподает!!! и как следствие нормально не знает ничего) так что и ей он будет непонятен скорее всего. Задача решается на плоскости конечно же... На счет применимости данной задачи к жизни могу сказать одно - НИ ОДНА лабораторка ни по одному языку программирования не имела нормального жизненного приложения! Это меня тоже жутко бесит! Все еще с надеждой жду рабочего варианта... |
|||
![]() |
|
||||
Инженер-теплотехник Регистрация: 17.08.2006
Смоленск
Сообщений: 311
|
Ага, коллега. Мы тоже вместе с преподом AutoCAD изучали.
Теперь без шуток. Разве предложенный вариант не рабочий? Уже нужна вторая программа для рисования случайных отрезков? Может проще один раз нарисовать нужные отрезки, сохранить этот файл и работать с ним. >> Кулик Алексей aka kpblc Кто-то говорил про китайских мудрецов и удочки. |
|||
![]() |
|
||||
Регистрация: 24.12.2007
Сообщений: 9
|
Всё, я переучился =(( ...задам наверное самый идиотский вопрос...Запустил я эту программку, ввел радиусы, а как ввести линии?
Последний раз редактировалось DsC, 25.12.2007 в 19:10. |
|||
![]() |
|
||||
Инженер-теплотехник Регистрация: 17.08.2006
Смоленск
Сообщений: 311
|
А что после радиусов программа запрашивает?
У меня вот так: Цитата:
|
|||
![]() |
|
||||
Регистрация: 24.12.2007
Сообщений: 9
|
Я ввел 3 радиуса - 3 числа.
Что вводить при запросе отрезка? Число, координаты(2 числа через запятую)? Или что-то еще? Когда ввожу одно число, просит ввести второй отрезок, ввожу ещ одно число - пишет nil. и даже когда выбираю отрезки мышью - на втором выборе пишет - nil Автокад 2007 русский Последний раз редактировалось DsC, 25.12.2007 в 20:04. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
Олег К., говорил. И буду говорить. Мне было любопытно, кто-нибудь обратит внимание или нет на нестыковочку
![]() ![]() DsC, проверь координаты отрезков. Они (отрезки то бишь) должны быть нарисованы в одной плоскости. Profan, критика принята. Но не исправлена. Оставлено на совесть автора топика ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Lisp/VBA/VB.NET Hobbyist Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367
|
Забудь про все и юзай это, только сначала прочитай
обязательно все комментарии: Код:
Последний раз редактировалось fixo, 25.12.2007 в 23:02. Причина: уточнение комментария: |
|||
![]() |
|
||||
Регистрация: 24.12.2007
Сообщений: 9
|
ОРГОМНЕЙШЕЕ СПАСИБО!Оно работает! Только на сколько я понял не совсем так как хотелось бы...ну то есть не так как в задании.
У меня она запросила 3 радиуса, 2 цвета и 2 отрезка. сгладила все замечательно и на этом завершила свою работу. А как бы ее заставить работать по циклу - несколько проходов?! чтоб обрататывать именно кривую, а не 2 отрезка только! P.S. Не хочется конечно совсем наглеть, но в задании написано ВНАЧАЛЕ РИСОВАТЬ кривую, а потом ее обрабатывать...если это не потребут сильной переделки того что уже работает...буду безумно благодарен =) В противном случае попытаюсь сдать то что есть...ведь умение сдавать - это как и программирование - тоже искусство =) Последний раз редактировалось DsC, 26.12.2007 в 01:45. Причина: добавлен P.S. |
|||
![]() |
|
||||
Lisp/VBA/VB.NET Hobbyist Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367
|
Цитата:
Я в этих филозофиях не шибко, радуйся что я не сплю пока: Код:
|
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
>DsC Если вдруг у препода стоит русский Автокад, купленный официально, то вариант Fatty работать не будет. Чтобы заработал даже у китайцев, нужно в английские названия команд в начало добавить "_"
Было (command "fillet" ... Должно быть (command "_fillet"
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
А чтобы заработало даже у продвинутых китайцев, надо делать
(command "_.fillet" <...>) ![]() (точку поставить)
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ANSYS 10 Помогите разобраться. | Aндрeй | ANSYS | 6 | 12.12.2007 00:03 |
помогите срочно пощитать теплопроводность стены | Sanyok | Конструкции зданий и сооружений | 5 | 23.12.2005 11:15 |