yac91 Posted February 1 Report Share Posted February 1 По работе приходится сталкиваться с такими файлами, в которых криво начерченны стены СПДС, отрезки и т.д., как на картинке ниже, что меня жутко раздражает и я трачу много времени на исправление таких вещей. В какой-то момент я пришел к тому, что я просто в свойствах округляю число в координатах до целого, в данном случае "...59.9995" меняю на "...60". Я подумал, может есть какой-то инструмент, который может это сам делать, например, выравнивать начальные и конечные координаты выбранных элементов с заданным округлением, или, например, привязывать их просто к сетке? Или может lisp какой-то есть такой, ведь это кажется логически простой задачей, может кто-то уже этим озадачивался? Quote Link to comment Share on other sites More sharing options...
Volkov Posted February 2 Report Share Posted February 2 13 часов назад, yac91 сказал: криво начерченны стены СПДС, отрезки и т.д., как на картинке ниже, что меня жутко раздражает а что не так с координатой точки -739959.9995 ? к каким последствиям это приводит, кроме жуткого раздражения? по сабжу: в функционале СПДС таких команд нет. Quote Link to comment Share on other sites More sharing options...
Volkov Posted February 2 Report Share Posted February 2 я больше скажу - такое округление делает стены и отрезки как раз корявее чем они были. запрос #17461 2 Quote Link to comment Share on other sites More sharing options...
yac91 Posted February 2 Author Report Share Posted February 2 (edited) 1 час назад, Volkov сказал: я больше скажу - такое округление делает стены и отрезки как раз корявее чем они были. запрос #17461 Речь пока идет о долях миллиметров, а не о нескольких миллиметрах, плюс, исправлять нужно все стены сразу, а не одну. В таком случае округление даст хороший результат, мне кажется. Если архитектор начертил чертеж с погрешностью в несколько миллиметров, то это надо просто заново перечерчивать, а человека либо учить чертить по новой, либо увольнять, потому что это уже, как минимум, будет мешать работать всем смежникам. Сталкивался с такими архитекторами, говорит "мы же не самолеты рисуем)))" А все потом ругаются из-за его такой подосновы. 2 часа назад, Volkov сказал: а что не так с координатой точки -739959.9995 ? к каким последствиям это приводит, кроме жуткого раздражения? по сабжу: в функционале СПДС таких команд нет. Не до конца понимаю, как вообще рождаются такие (-739959.9995) мелкие неточности, вручную такое "нарисовать" сложно, но я убежден, что чертежи должны быть ровными и правильными. Иногда из-за этого вылезают какие-то неправильные пересечения, иногда погрешность нескольких стен в 0,3 мм дают в сумме непонятные размеры и т.д., для меня странно даже об этом рассуждать, просто — все должно быть качественно и эстетично начерчено. добавлено через 6 минут Нашел вот что-то такое в доисторической теме: https://www.caduser.ru/forum/topic20481.html Но тут они, я так понимаю, для выравнивания просто поворачивают отрезок относительно точки, не уверен, что такое решение подойдет. Ну и как в этот код добавить стены спдс — я тоже не совсем понимаю) Edited February 2 by yac91 1 Quote Link to comment Share on other sites More sharing options...
Volkov Posted February 2 Report Share Posted February 2 23 минуты назад, yac91 сказал: Не до конца понимаю, как вообще рождаются такие (-739959.9995) мелкие неточности дык это же координата, а не размер! 23 минуты назад, yac91 сказал: вручную такое "нарисовать" сложно очень просто! давайте по грамотному, как проектировщик, а не как какой-то архитектор... 1. вставить в чертеж массив координационных осей с шагом 6000 (spgrid) 2. вставить стену между двух соседних осей неважно вертикально или горизонтально (spwalladd) 3. выделить стену и смотреть в свойства => длина стены 6000 все честно, все красиво, как вы любите. => координаты с десятитысячной точностью. где неточности? добавлено через 3 минут если делать так 23 минуты назад, yac91 сказал: исправлять нужно все стены сразу, а не одну. В таком случае округление даст хороший результат, мне кажется. то получится именно это 23 минуты назад, yac91 сказал: Иногда из-за этого вылезают какие-то неправильные пересечения 1 Quote Link to comment Share on other sites More sharing options...
XPom Posted February 2 Report Share Posted February 2 (edited) 16 часов назад, yac91 сказал: По работе приходится сталкиваться с такими файлами, в которых криво начерченны стены СПДС, отрезки и т.д., как на картинке ниже, что меня жутко раздражает поддерживаю 33 минуты назад, Volkov сказал: давайте по грамотному, как проектировщик, а не как какой-то архитектор... 1. вставить в чертеж массив координационных осей с шагом 6000 (spgrid) вот по грамотному и вставьте, пожалуйста, сетку осей так, чтобы точка пересечения осей 1 и А имела адекватные кооординаты (например, 0.0000, 0.0000) добавлено через 2 минуты 16 часов назад, yac91 сказал: Я подумал, может есть какой-то инструмент, который может это сам делать, например, выравнивать начальные и конечные координаты выбранных элементов с заданным округлением Попытался через таблицу с помощью функции ctlSetValue назначить переменную стены Start X Start point и сразу фатал словил)) Edited February 2 by XPom 2 Quote Link to comment Share on other sites More sharing options...
Volkov Posted February 2 Report Share Posted February 2 5 минут назад, XPom сказал: вот по грамотному и вставьте пожалуйста сетку осей так, чтобы точка пересечения осей 1 и А имела адекватные кооординаты (например, 0.0000, 0.0000) мне это сделать не сложно Но что толку от целых координат? Я что-то не понимаю? Просто ооочень часто сталкиваюсь с запросами пользователей о чертежах где объекты разлетелись по Z, где "подчистка" стен не работает и многое другое. А получаются такие чертежи в том числе после Цитата я просто в свойствах округляю число в координатах до целого, в данном случае "...59.9995" меняю на "...60". уж простите... 1 Quote Link to comment Share on other sites More sharing options...
XPom Posted February 2 Report Share Posted February 2 17 минут назад, XPom сказал: Попытался через таблицу с помощью функции ctlSetValue назначить переменную стены Start X Start point и сразу фатал словил)) Господа разработчики, заблокируйте уж тогда её (переменную стены Start point) для изменения, чтоб пытливые умы не совались, куда не следует, и не валили нану P.S. после того, как сделал этот скрин и закрыл редактор таблиц, нанокад упал. Хоть даже и переменную не менял, просто даблклик в ячейке А4 сделал и все добавлено через 8 минут 16 минут назад, Volkov сказал: Но что толку от целых координат? одно из удобнее отыскивать неортогональные объекты 1 Quote Link to comment Share on other sites More sharing options...
XPom Posted February 2 Report Share Posted February 2 а когда стены неортогональные на 0,0001 градус или не доведены до пересечения на 0.0001 мм, объект "Помещение" зачастую выдает нулевую площадь, хотя контур отрисовывает правильно 1 Quote Link to comment Share on other sites More sharing options...
Volkov Posted February 2 Report Share Posted February 2 5 минут назад, XPom сказал: а когда стены неортогональные на 0,0001 градус или не доведены до пересечения на 0.0001 мм, объект "Помещение" зачастую выдает нулевую площадь, хотя контур отрисовывает правильно пример в студию и отдельной темой, пожалуйста добавлено через 2 минуты 39 минут назад, XPom сказал: Попытался через таблицу с помощью функции ctlSetValue назначить переменную стены Start X Start point и сразу фатал словил)) отдельной темой и с примером чертежа, пожалуйста 1 Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted February 2 Report Share Posted February 2 1 час назад, yac91 сказал: ведь это кажется логически простой задачей Это как раз тот случай, когда просто логикой не отделаться. Нужны все равно более детальные указания. Например, можно относительно легко (и даже без относительно!) реализовать задачу - для всех выбранных объектов все характерные точки (координаты вершин, центров дуг и окружностей, точки вставки и т.д.) округлить с заданной точностью. Но сразу возникнет несколько "если": что при этом произойдет с отрезком, у которого разность dx была 0.001? Одна вершина запросто может округлиться влево, а другая вправо, т.е. dx еще больше увеличится, когда желательным был бы результат в виде вертикального отрезка с дугами будет еще больше вопросов. Смещение центра приводит к смещению обоих концов, смещение концов изменяет угол и т.д, и т.п. Все фаски и сглаживания вообще рассыпятся. Если произойдет разрыв контуров, то штриховки могут потерять ассоциативность. В общем, список возможных "если" растет как снежный ком. И практически для каждого "если" нужно свое уточнение. 3 1 Quote Link to comment Share on other sites More sharing options...
Volkov Posted February 2 Report Share Posted February 2 22 минуты назад, XPom сказал: удобнее отыскивать неортогональные объекты как часто вы это делаете? и какое практическое применение? Quote Link to comment Share on other sites More sharing options...
XPom Posted February 2 Report Share Posted February 2 11 минут назад, Volkov сказал: пример в студию нулевую площадь сложно отловить, но вот вам кривой чертежик помещения, попытайтесь в нем создать помещение через точку, и если не получится, то попытайтесь быстро сообразить, где "кривость" Некруглые координаты.dwg добавлено через 0 минут 14 минут назад, Volkov сказал: как часто вы это делаете? в каждом проекте по несколько добавлено через 4 минут 28 минут назад, XPom сказал: а когда стены неортогональные на 0,0001 градус или не доведены до пересечения на 0.0001 мм, объект "Помещение" зачастую выдает нулевую площадь, хотя контур отрисовывает правильно конкретизирую, что, енип, "Площадь с учетом отделки" считает 0,00 и речь про нанокад 21 5857 спдс 3451 Quote Link to comment Share on other sites More sharing options...
yac91 Posted February 2 Author Report Share Posted February 2 У меня очень часто нулевая площадь получается "с учетом отделки", вот пример. Но я не знаю точно, из-за чего это, но в этом примере есть "кривые" стены Площадь 0.dwg Quote Link to comment Share on other sites More sharing options...
Volkov Posted February 2 Report Share Posted February 2 32 минуты назад, yac91 сказал: У меня очень часто нулевая площадь получается "с учетом отделки", вот пример. Но я не знаю точно, из-за чего это, но в этом примере есть "кривые" стены чертеж из спдс графикс 2021, отредактирован в наноспдс 22 открыл его в наноспдс 23 => площадь помещения в чертеже отображается 0 выделил помещение => в свойствах площадь отображается корректно 35.39м.кв. вызвал spRegen - обновить => площадь помещения в чертеже отображается корректно 35.39м.кв. кривых стен не обнаружил (а в чем собсно кривизна должна выражаться?) Quote Link to comment Share on other sites More sharing options...
Volkov Posted February 2 Report Share Posted February 2 1 час назад, XPom сказал: и если не получится, то попытайтесь быстро сообразить, где "кривость" не получилось, контур не замкнут экзамен сдан? или еще попридумываем задания ?=) добавлено через 2 минуты только все это никакого отношения к исходной теме поста не имеет. товарсч @yac91 говорит об округлении координат! добавлено через 3 минут и все это синтетически созданные условия в практике пинать таких бракоделов! приложение отрабатывает корректно. 2 Quote Link to comment Share on other sites More sharing options...
XPom Posted February 2 Report Share Posted February 2 3 минуты назад, Volkov сказал: экзамен сдан? или еще попридумываем задания ?=) сдан, но на 3 верхний левый угол ни при чем (как ни странно) Quote Link to comment Share on other sites More sharing options...
Volkov Posted February 2 Report Share Posted February 2 3 часа назад, XPom сказал: назначить переменную стены Start X Start point и сразу фатал словил)) фатала нет, но и координаты не берет (наноспдс 23) Quote Link to comment Share on other sites More sharing options...
XPom Posted February 2 Report Share Posted February 2 1 минуту назад, Volkov сказал: фатала нет, но и координаты не берет (наноспдс 23) нужно просто строковый формат для значений в ячейке включить добавлено через 2 минуты 25 минут назад, Volkov сказал: только все это никакого отношения к исходной теме поста не имеет. товарсч @yac91 говорит об округлении координат! так, вы в этой задачке просто округлите координаты всех стен до целых и все встанет на свои места добавлено через 2 минуты и не придется искать, где контур не замкнут добавлено через 3 минут а если узлы в результате округления разойдутся на 1 миллиметр, это уже будет легко определить визуально 1 Quote Link to comment Share on other sites More sharing options...
MCAD Posted February 2 Report Share Posted February 2 1 час назад, Volkov сказал: но и координаты не берет В таблицах нет такого типа данных Стена.dwg 1 2 Quote Link to comment Share on other sites More sharing options...
XPom Posted February 2 Report Share Posted February 2 33 минуты назад, Volkov сказал: в практике пинать таких бракоделов! а если там женщины 50+? 1 1 Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted February 2 Report Share Posted February 2 8 минут назад, XPom сказал: так, вы в этой задачке просто округлите координаты всех стен до целых и все встанет на свои места добавлено через 3 минут а если узлы в результате округления разойдутся на 1 миллиметр, это уже будет легко определить визуально Это все более-менее работоспособно, если чертеж горизонтально-перпендикулярный. Если есть какие-либо углы, пусть даже вообще выраженные целыми числами градусов (или даже десятков градусов), то это однозначно приведет к появлению точек пересечений с априори многоразрядными координатами. Округление таких координат приведет к изменению углов. Причем процесс может затронуть и горизонтально-перпендикулярные образующие. Но собственно функцию типа "округлить все координаты до 0,01" реализовать несложно. Сложно может быть потом разгребать результаты. добавлено через 0 минут 3 минуты назад, XPom сказал: 38 минут назад, Volkov сказал: в практике пинать таких бракоделов! а если там женщины 50+? Цветы подари! В лепешку расшибется. но брак гнать не будет) 1 Quote Link to comment Share on other sites More sharing options...
XPom Posted February 2 Report Share Posted February 2 (edited) 5 минут назад, EdwardSt сказал: Если есть какие-либо углы ну, изменится угол на 0,0000001 секунды и что с того? по барабану нам на стройке на углы))) вы хоть одно помещение видели в натуре с углами 90 градусов? хотя по проекту все ортогонально Edited February 2 by XPom 1 Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted February 2 Report Share Posted February 2 1 минуту назад, XPom сказал: ну, изменится угол на 0,0000001 секунды и что с того? Вся ветка началась с того, что не устраивал разброс координат в пределах 0,0000001. Где гарантия, что к величинам углов не будет претензий, как координатам? И отсылки к стройке не совсем уместны. Там не увидят и обсуждаемого разброса координат (а то и целых перегородок). Но попытки округлять координаты существующих объектов для красоты в чертеже могут приводить к тяжелым последствиям в виде разрыва контуров и потере (или появлению) характерных точек в виде точек пересечения и связанных с ними ассоциативных элементов (штриховки, размеры). Саму функцию "оперпендикуляривания" или "координатовразумления" вполне можно считать полезной и желательной к применению. Только неплохо бы дать еще несколько дополнительных наводок, как быть в случаях "если". Хотя бы из числа перечисленных в этом обсуждении. Quote Link to comment Share on other sites More sharing options...
yac91 Posted February 2 Author Report Share Posted February 2 3 часа назад, EdwardSt сказал: Это как раз тот случай, когда просто логикой не отделаться. Нужны все равно более детальные указания. Например, можно относительно легко (и даже без относительно!) реализовать задачу - для всех выбранных объектов все характерные точки (координаты вершин, центров дуг и окружностей, точки вставки и т.д.) округлить с заданной точностью. Но сразу возникнет несколько "если": что при этом произойдет с отрезком, у которого разность dx была 0.001? Одна вершина запросто может округлиться влево, а другая вправо, т.е. dx еще больше увеличится, когда желательным был бы результат в виде вертикального отрезка с дугами будет еще больше вопросов. Смещение центра приводит к смещению обоих концов, смещение концов изменяет угол и т.д, и т.п. Все фаски и сглаживания вообще рассыпятся. Если произойдет разрыв контуров, то штриховки могут потерять ассоциативность. В общем, список возможных "если" растет как снежный ком. И практически для каждого "если" нужно свое уточнение. Фильтрами можно выбирать объекты, к которым необходимо применять этот инструмент. Или так — если начальная и конечная точка по какой-то оси имеет разницу больше чем "x", то не выравнивать по сетке (означает, что объект и не должен быть в ортогональной системе) Число или количество знаков, до которых округлять тоже нужно, чтобы можно было выбирать. Например, округлять до 1 ед. модели, или, там, до 5, или до 0.5, если надо. С криволинейными объектами надо думать, может и не надо это им 45 минут назад, EdwardSt сказал: Но собственно функцию типа "округлить все координаты до 0,01" реализовать несложно. Сложно может быть потом разгребать результаты. Можно попробовать реализовать её с базовыми пожеланиями, а потом допиливать по результатам её работы) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.