Прямоугольник 4:3

Автор Pav, 14.04.14, 17:02:01

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Pav

Решаю казалось бы примитивную задачу, но никак не выходит. Нужно построить прямоугольник, повторяющий размеры монитора, соотношением 4:3 и с возможностью назначать любую диагональ.

1. При помощи переменных создаю соотношение сторон 4 к 3
2. Ставлю размер на противоположные углы, например 15 дюймов. (Диагональ монитора)
3. Нарушается соотношение сторон, перестраиваю, вылазит ошибка.

Склоняюсь к тому, что баг. Компас 14.1.1 или кривые руки :)
Прошу помочь, варианты с пересчетом, например задать угол и.т.п. не предлагать.

VIO

А уравнение Ферма не подойдёт.
3^2+4^2=5^2
:)

Pav

Нет, не подойдет.
Задача не в том, чтобы задачу решить, а в том, чтобы понять баг это или кривизна моих рук :)

Виктор 1987

сп2 на 14 уже вышел, проверьте с ним.

YNA

Для решения подобных уравнений вам нужна 11-я версии Компаса. Удобнее всего её поставить на виртуальную машину или, если такой возможности нет, параллельно основной. В последнем случае 11- версию нужно ставить "чистую", без всяких библиотек, только для  решения параметрических задач.
Цитата: Виктор 1987 от 15.04.14, 06:41:05
сп2 на 14 уже вышел, проверьте с ним.
СП2 не влияет, и в 15-й версии то же самое. Просто такой алгоритм работы.

Sprinter500

При попытке задать каждую из сторон + диагональ отдельными переменными произойдет переопределение, так как эти три переменные еще имеют взаимосвязь в виде теоремы Пифагора - то есть любая третья переменная зависит от других двух. Поэтому лучше задать диагональ внешенй переменной, по которой расчитываются стороны прямоугольника (это уже на размерных линиях переменные). И все, собственно. Так что глюка нет.

Sinus

если соотношение сторон 3:4 менять не требуется, то можно, как вариант, нарисовать прямоугольник из отрезков
одна сторона три отрезка, одна - четыре. Задать равенство всех этих отрезков и поставить размер диагонали прямоугольника.
Так можно обойтись без уравнений)

YNA

Цитата: Sprinter500 от 15.04.14, 07:33:33
При попытке задать каждую из сторон + диагональ отдельными переменными произойдет переопределение, так как эти три переменные еще имеют взаимосвязь в виде теоремы Пифагора - то есть любая третья переменная зависит от других двух. Поэтому лучше задать диагональ внешней переменной, по которой рассчитываются стороны прямоугольника (это уже на размерных линиях переменные). И все, собственно. Так что глюка нет.
А вот это интересно. Можете показать пример?
Суть задачи такова (см рис): меняя диагональ меняем стороны прямоугольника, при этом отношении их длин остаётся постоянным.
Возможно есть какой то вариант с внешними переменными, но я, честно говоря, не очень в них разбираюсь. :shu:

obesov

 Всё работает и версия, ИМХО, тут ни при чём.  :shu:

Pav

obesov, Вы по теореме Пифагора посчитали, а я просил без пересчетов. Читайте внимательнее, такой вариант уже VIO предлагал в первом ответе.

Цитата: Sprinter500 от 15.04.14, 07:33:33
При попытке задать каждую из сторон + диагональ отдельными переменными произойдет переопределение..
Очевидно, что одну из сторон я не фиксирую, поэтому переопределения с точки зрения человеческой логики нет, но с точки зрения Компасовской ?...
Я рисовал также как показал YNA, можно видеть, что размер на боковой стороне (v2) не зафиксирован.

obesov

 А я вот читаю и не понимаю Вашу фразу без пересчётов.
Вы свой файлик приложите к сообщениям! Тогда, надеюсь, мне лично станет понятно, каким образом
Цитата: Pav от 14.04.14, 17:02:01
...
1. При помощи переменных создаю соотношение сторон 4 к 3
2. Ставлю размер на противоположные углы, например 15 дюймов. (Диагональ монитора)
3. Нарушается соотношение сторон, перестраиваю, вылазит ошибка.

YNA

Цитата: obesov от 15.04.14, 08:31:03
Всё работает и версия, ИМХО, тут ни при чём.  :shu:
Это совсем не то. Вот на рисунке ваш чертёж. Формулы, для лучшего понимания очищены от дополнительных переменных.
Здесь получается ситуация: v2=f(v1). Это элементарная задача и легко решается. Обратите внимание, что в этом уравнении ни как не задействована переменная v3, она здесь вообще не нужна и можно её просто удалить. Но вся соль задачи именно в уравнении, в котором задействованы все три переменные. :)

Sprinter500

Вот держи. Вбиваешь диагональ и автоматом перестраивается
+ Благодарностей: 1

obesov

 Уважаемый YNA!
По моему мнению, в таком виде в задаче заложена бертолетова соль;)
Тут или КОМПАС взорвётся, или Пифагор заговорит на русском ...э-э-э... языке.  :)

YNA

Цитата: Sprinter500 от 15.04.14, 09:22:34
Вот держи. Вбиваешь диагональ и автоматом перестраивается

А вот это уже другое дело. На рисунке показана задача в режиме Чертежа. Формулы у меня конечно примитивные, но суть не в них.
Здесь особенность в том что переменная "а" (диагональ) не присутствует на чертеже, но тем не менее управляет двумя другими размерами.
Мне кажется, что уравнения с тремя взаимосвязанными переменными Компас начиная с 12-й версии не решает. Это нельзя назвать ошибкой, это просто другая технология параметризации.

Pav

#15
Цитата: obesov от 15.04.14, 09:07:18
А я вот читаю и не понимаю Вашу фразу без пересчётов.
Без пересчетов - это значит не использовать геометрические формулы и калькулятор. У меня есть два числа: соотношение n=3/4 и диагональ d=381мм, этих данных достаточно для определения формы прямоугольника, при грамотном подходе только эти данные я и должен использовать и никакие другие.

Вы использовали в своем расчете число "5", которое получили решением теоремы Пифагора, это называется "с пересчетом". Предположим у меня n изменится на 16/9 (широкоформатный монитор), тогда Вам придется снова решать теорему Пифагора и число уже не будет таким красивым как "5".

Впринципе "пересчет" допускается, но для этого должны быть показания: либо ограниченность функциональности, либо баги либо кривые руки. Вот я и хочу понять, в чем тут дело.

Цитата: YNA от 15.04.14, 09:13:40
Здесь получается ситуация: v2=f(v1). Это элементарная задача и легко решается. Обратите внимание, что в этом уравнении ни как не задействована переменная v3, она здесь вообще не нужна и можно её просто удалить. Но вся соль задачи именно в уравнении, в котором задействованы все три переменные. :)
Не уверен, что я понял о чем речь, но у меня не три, две переменные в задаче: n и d. Но и вряд ли в этом дело, Компас может легко и 10 переменных обрабатывать.

Цитата: Sprinter500 от 15.04.14, 09:22:34
Вот держи. Вбиваешь диагональ и автоматом перестраивается
Вы самостоятельно вывели формулы и заложили их в расчет, это круче чем  каждый раз калькулировать вручную, но все таки это немного не то, что мне нужно. У меня задача не в том, чтобы найти обходное решение, а понять почему не работает прямое.

Цитата: obesov от 15.04.14, 09:07:18
Вы свой файлик приложите к сообщениям!
Прикладываю и комментирую:
1. При помощи переменных в файле задано соотношение сторон 4 к 3
2. "Дергаю" прямоугольник за правый-верхний угол, тем самым вижу, что соотношение 4 к 3 выполняется, а также есть одна степень свободы.
3. Накладываю диагональный размер, чтобы определить диагональ и все ломается. (в файле этого размера пока нет, чтобы можно было самому подергать угол и наложить размер на диагональ)

Чтобы еще лучше понять, расскажу контекст вопроса. Человек осваивающий Компас рисовал экран монитора и попросил помочь меня рассчитать размеры, я конечно могу рассчитать, но сказал, что Компас настолько крут, что посчитает за тебя сам :) , тебе нужно только ввести исходные данные. Когда мы с ним все сделали, то увидели, что ничего не работает. Казалось бы элементарная задача...

mutt

В вашем случае задача получается, определена больше чем это необходимо. Вы забыли про то, что в прямоугольнике есть угол 90 градусов, вы его не задаете, но при расчетах системы он присутствует вот и получается, что три переменные задали вы плюс один параметр, который присутствует в системе, от вас скрыт. Со стороны работы системы задача получилась, переопределена вот она и выдает ошибку. Оставьте один из углов к диагонали для того чтобы получить необходимое соотношение сторон и все будет работать.

YNA

Уважаемый PAV. Компас (выше 11-й версии) не может обработать более 2-х связанных переменных. Смиритесь с этим фактом! Эта тема уже многократно обжована на форуме и ни чего тут не поделаешь:
http://forum.ascon.ru/index.php/topic,22338.msg152739.html#msg152739
http://forum.ascon.ru/index.php/topic,22411.msg153443.html#msg15344
Возможно это не все темы, но те которые я помню (просто в них учавствовал). :)
В 14-й, 15-й версии произошли некоторые улучшения, но не принципиальные. :(

Pav

mutt, Ваш вариант это один из трюков с пересчетом, это не подходит, спасибо.

Из темы на которую YNA дал ссылку:
Цитата: YNA от 28.04.12, 09:46:00
... Есть 1000 способов обойти эту проблемы и сейчас вы показываете 678-й способ. (только не обижайтесь!) Понятно что эту трудность можно легко обойти изменив построение, чисто графически или просто посчитав на калькуляторе. Но меня что то зацепила задача именно в таком виде в каком она поставлена и почему она не имеет решения...
Все как у меня :) Не зря говорят, что "мысли летают в воздухе".

YNA, почитал я Вашу тему и даже попробовал решить задачу с двумя отрезками и столкнулся с такой же проблемой как в своей задаче и также вижу, что никто не предложил логического объяснения. Ваша ссылка пряма вообще в тему, что последнее время редкость для нашего форума :)

Цитата: YNA от 15.04.14, 19:09:35
Компас (выше 11-й версии) не может обработать более 2-х связанных переменных.
Попытался я чуть детальнее разобраться и как мне кажется YNA прав. Я бы его формулировку еще дополнил: "Компас не может обработать более 2-х связанных переменных, если система имеет при этом 0 степеней свободы"- это некоторое искусственное правило, которое противоречит человеческой логике. но соответствует Компасовской, это своего рода "баг".
Почему я дополнил, потому что все таки если сделать хотя бы одну степень свободы, то все работает.

Вывод: это баг на логическом уровне. Исправления бага думаю ждать не стоит :) Всем спасибо, кто помог разобраться.