Jump to content

Исправление "кривой" геометрии стен СПДС, отрезков.


Recommended Posts

По работе приходится сталкиваться с такими файлами, в которых криво начерченны стены СПДС, отрезки и т.д., как на картинке ниже, что меня жутко раздражает и я трачу много времени на исправление таких вещей. В какой-то момент я пришел к тому, что я просто в свойствах округляю число в координатах до целого, в данном случае "...59.9995" меняю на "...60". Я подумал, может есть какой-то инструмент, который может это сам делать, например, выравнивать начальные и конечные координаты выбранных элементов с заданным округлением, или, например, привязывать их просто к сетке? Или может lisp какой-то есть такой, ведь это кажется логически простой задачей, может кто-то уже этим озадачивался?

image.png

Link to comment
Share on other sites

13 часов назад, yac91 сказал:

криво начерченны стены СПДС, отрезки и т.д., как на картинке ниже, что меня жутко раздражает

а что не так с координатой точки -739959.9995 ?

к каким последствиям это приводит, кроме жуткого раздражения?

 

по сабжу: в функционале СПДС таких команд нет.

Link to comment
Share on other sites

1 час назад, Volkov сказал:

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

запрос #17461

Речь пока идет о долях миллиметров, а не о нескольких миллиметрах, плюс, исправлять нужно все стены сразу, а не одну. В таком случае округление даст хороший результат, мне кажется. Если архитектор начертил чертеж с погрешностью в несколько миллиметров, то это надо просто заново перечерчивать, а человека либо учить чертить по новой, либо увольнять, потому что это уже, как минимум, будет мешать работать всем смежникам. Сталкивался с такими архитекторами, говорит "мы же не самолеты рисуем)))" А все потом ругаются из-за его такой подосновы.

 

 

2 часа назад, Volkov сказал:

а что не так с координатой точки -739959.9995 ?

к каким последствиям это приводит, кроме жуткого раздражения?

 

по сабжу: в функционале СПДС таких команд нет.

Не до конца понимаю, как вообще рождаются такие (-739959.9995) мелкие неточности, вручную такое "нарисовать" сложно, но я убежден, что чертежи должны быть ровными и правильными. Иногда из-за этого вылезают какие-то неправильные пересечения, иногда погрешность нескольких стен в 0,3 мм дают в сумме непонятные размеры и т.д., для меня странно даже об этом рассуждать, просто — все должно быть качественно и эстетично начерчено.

добавлено через 6 минут
 
 

Нашел вот что-то такое в доисторической теме:

https://www.caduser.ru/forum/topic20481.html

Но тут они, я так понимаю, для выравнивания просто поворачивают отрезок относительно точки, не уверен, что такое решение подойдет. Ну и как в этот код добавить стены спдс — я тоже не совсем понимаю)

Edited by yac91
  • Confused 1
Link to comment
Share on other sites

23 минуты назад, yac91 сказал:

Не до конца понимаю, как вообще рождаются такие (-739959.9995) мелкие неточности

дык это же координата, а не размер!:stena:

 

23 минуты назад, yac91 сказал:

вручную такое "нарисовать" сложно

очень просто! 

давайте по грамотному, как проектировщик, а не как какой-то архитектор...

1. вставить в чертеж массив координационных осей с шагом 6000 (spgrid)

2. вставить стену между двух соседних осей неважно вертикально или горизонтально (spwalladd)

3. выделить стену и смотреть в свойства

=> длина стены 6000 все честно, все красиво, как вы любите.

=> координаты с десятитысячной точностью.

image.png

где неточности?

 

добавлено через 3 минут

если делать так

23 минуты назад, yac91 сказал:

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

то получится именно это

23 минуты назад, yac91 сказал:

Иногда из-за этого вылезают какие-то неправильные пересечения

 

  • Like 1
Link to comment
Share on other sites

16 часов назад, yac91 сказал:

По работе приходится сталкиваться с такими файлами, в которых криво начерченны стены СПДС, отрезки и т.д., как на картинке ниже, что меня жутко раздражает

поддерживаю :)

 

33 минуты назад, Volkov сказал:

давайте по грамотному, как проектировщик, а не как какой-то архитектор...

1. вставить в чертеж массив координационных осей с шагом 6000 (spgrid)

вот по грамотному и вставьте, пожалуйста, сетку осей так, чтобы точка пересечения осей 1 и А имела адекватные кооординаты (например, 0.0000, 0.0000) :)

добавлено через 2 минуты
16 часов назад, yac91 сказал:

Я подумал, может есть какой-то инструмент, который может это сам делать, например, выравнивать начальные и конечные координаты выбранных элементов с заданным округлением

Попытался через таблицу с помощью функции ctlSetValue назначить переменную стены Start X Start point и сразу фатал словил))

Edited by XPom
  • Like 2
Link to comment
Share on other sites

5 минут назад, XPom сказал:

вот по грамотному и вставьте пожалуйста сетку осей так, чтобы точка пересечения осей 1 и А имела адекватные кооординаты (например, 0.0000, 0.0000)

мне это сделать не сложно
image.png

 

Но что толку от целых координат?

Я что-то не понимаю?
 

Просто ооочень часто сталкиваюсь с запросами пользователей о чертежах где объекты разлетелись по Z, где "подчистка" стен не работает и многое другое.

А получаются такие чертежи в том числе после 

Цитата

я просто в свойствах округляю число в координатах до целого, в данном случае "...59.9995" меняю на "...60".

 

уж простите...

  • Like 1
Link to comment
Share on other sites

17 минут назад, XPom сказал:

Попытался через таблицу с помощью функции ctlSetValue назначить переменную стены Start X Start point и сразу фатал словил))

 

Господа разработчики, заблокируйте уж тогда её (переменную стены Start point) для изменения, чтоб пытливые умы не совались, куда не следует, и не валили нану :)

 

540971326_2023-02-02093454.thumb.jpg.db499455aa403770a776a88860237767.jpg

 

P.S. после того, как сделал этот скрин и закрыл редактор таблиц, нанокад упал. Хоть даже и переменную не менял, просто даблклик в ячейке А4 сделал и все

добавлено через 8 минут
16 минут назад, Volkov сказал:

Но что толку от целых координат?

одно из

удобнее отыскивать неортогональные объекты

  • Like 1
Link to comment
Share on other sites

а когда стены неортогональные на 0,0001 градус или не доведены до пересечения на 0.0001 мм, объект "Помещение" зачастую выдает нулевую площадь, хотя контур отрисовывает правильно

  • Like 1
Link to comment
Share on other sites

5 минут назад, XPom сказал:

а когда стены неортогональные на 0,0001 градус или не доведены до пересечения на 0.0001 мм, объект "Помещение" зачастую выдает нулевую площадь, хотя контур отрисовывает правильно

пример в студию и отдельной темой, пожалуйста

 

добавлено через 2 минуты
39 минут назад, XPom сказал:

Попытался через таблицу с помощью функции ctlSetValue назначить переменную стены Start X Start point и сразу фатал словил))

отдельной темой и с примером чертежа, пожалуйста

  • Like 1
Link to comment
Share on other sites

1 час назад, yac91 сказал:

ведь это кажется логически простой задачей

Это как раз тот случай, когда просто логикой не отделаться. Нужны все равно более детальные указания.

 

Например, можно относительно легко (и даже без относительно!) реализовать задачу - для всех выбранных объектов все характерные точки (координаты вершин, центров дуг и окружностей, точки вставки и т.д.) округлить с заданной точностью. Но сразу возникнет несколько "если":

  • что при этом произойдет с отрезком, у которого разность dx была 0.001? Одна вершина запросто может округлиться влево, а другая вправо, т.е. dx еще больше увеличится, когда желательным был бы результат в виде вертикального отрезка
  • с дугами будет еще больше вопросов. Смещение центра приводит к смещению обоих концов, смещение концов изменяет угол и т.д, и т.п.
  • Все фаски и сглаживания вообще рассыпятся.
  • Если произойдет разрыв контуров, то штриховки могут потерять ассоциативность.

В общем, список возможных "если" растет как снежный ком. И практически для каждого "если" нужно свое уточнение.

  • Like 3
  • Thanks 1
Link to comment
Share on other sites

22 минуты назад, XPom сказал:

удобнее отыскивать неортогональные объекты

как часто вы это делаете? и какое практическое применение?

Link to comment
Share on other sites

11 минут назад, Volkov сказал:

пример в студию

нулевую площадь сложно отловить, но вот вам кривой чертежик помещения, попытайтесь в нем создать помещение через точку, и если не получится, то попытайтесь быстро сообразить, где "кривость" Некруглые координаты.dwg

добавлено через 0 минут
14 минут назад, Volkov сказал:

как часто вы это делаете?

в каждом проекте по несколько :)

добавлено через 4 минут
28 минут назад, XPom сказал:

а когда стены неортогональные на 0,0001 градус или не доведены до пересечения на 0.0001 мм, объект "Помещение" зачастую выдает нулевую площадь, хотя контур отрисовывает правильно

конкретизирую, что, енип, "Площадь с учетом отделки" считает 0,00

и речь про нанокад 21 5857 спдс 3451

Link to comment
Share on other sites

У меня очень часто нулевая площадь получается "с учетом отделки", вот пример. Но я не знаю точно, из-за чего это, но в этом примере есть "кривые" стены

Площадь 0.dwg

Link to comment
Share on other sites

32 минуты назад, yac91 сказал:

У меня очень часто нулевая площадь получается "с учетом отделки", вот пример. Но я не знаю точно, из-за чего это, но в этом примере есть "кривые" стены

чертеж из спдс графикс 2021, отредактирован в наноспдс 22

открыл его в наноспдс 23

=> площадь помещения в чертеже отображается 0

выделил помещение

=> в свойствах площадь отображается корректно 35.39м.кв.

вызвал spRegen - обновить

=> площадь помещения в чертеже отображается корректно 35.39м.кв.

 

кривых стен не обнаружил (а в чем собсно кривизна должна выражаться?)

Link to comment
Share on other sites

1 час назад, XPom сказал:

и если не получится, то попытайтесь быстро сообразить, где "кривость"

не получилось, контур не замкнут

image.png

 

экзамен сдан? или еще попридумываем задания ?=)

 

добавлено через 2 минуты

только все это никакого отношения к исходной теме поста не имеет.

товарсч @yac91 говорит об округлении координат!

 

добавлено через 3 минут

и все это синтетически созданные условия

в практике пинать таких бракоделов!

приложение отрабатывает корректно.

  • Like 2
Link to comment
Share on other sites

3 минуты назад, Volkov сказал:

экзамен сдан? или еще попридумываем задания ?=)

сдан, но на 3

верхний левый угол ни при чем (как ни странно)

Link to comment
Share on other sites

3 часа назад, XPom сказал:

назначить переменную стены Start X Start point и сразу фатал словил))

фатала нет, но и координаты не берет (наноспдс 23)

image.png

Link to comment
Share on other sites

1 минуту назад, Volkov сказал:

фатала нет, но и координаты не берет (наноспдс 23)

нужно просто строковый формат для значений в ячейке включить :)

добавлено через 2 минуты
25 минут назад, Volkov сказал:

только все это никакого отношения к исходной теме поста не имеет.

товарсч @yac91 говорит об округлении координат!

так, вы в этой задачке просто округлите координаты всех стен до целых и все встанет на свои места

добавлено через 2 минуты

и не придется искать, где контур не замкнут

добавлено через 3 минут

а если узлы в результате округления разойдутся на 1 миллиметр, это уже будет легко определить визуально

  • Like 1
Link to comment
Share on other sites

33 минуты назад, Volkov сказал:

в практике пинать таких бракоделов!

а если там женщины 50+? :)

  • Like 1
  • Haha 1
Link to comment
Share on other sites

8 минут назад, XPom сказал:

так, вы в этой задачке просто округлите координаты всех стен до целых и все встанет на свои места

добавлено через 3 минут

а если узлы в результате округления разойдутся на 1 миллиметр, это уже будет легко определить визуально

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

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

 

Но собственно функцию типа "округлить все координаты до 0,01" реализовать несложно.

Сложно может быть потом разгребать результаты.

добавлено через 0 минут
3 минуты назад, XPom сказал:
38 минут назад, Volkov сказал:

в практике пинать таких бракоделов!

а если там женщины 50+? :)

Цветы подари!

В лепешку расшибется. но брак гнать не будет)

  • Haha 1
Link to comment
Share on other sites

5 минут назад, EdwardSt сказал:

Если есть какие-либо углы

ну, изменится угол на 0,0000001 секунды и что с того? по барабану нам на стройке на углы))) вы хоть одно помещение видели в натуре с углами 90 градусов? хотя по проекту все ортогонально :D

Edited by XPom
  • Like 1
Link to comment
Share on other sites

1 минуту назад, XPom сказал:

ну, изменится угол на 0,0000001 секунды и что с того?

Вся ветка началась с того, что не устраивал разброс координат в пределах  0,0000001.

Где гарантия, что к величинам углов не будет претензий, как координатам?

 

И отсылки к стройке не совсем уместны. Там не увидят и обсуждаемого разброса координат (а то и целых перегородок).

Но попытки округлять координаты существующих объектов для красоты в чертеже могут приводить к тяжелым последствиям в виде разрыва контуров и потере (или появлению) характерных точек в виде  точек пересечения и связанных с ними ассоциативных элементов (штриховки, размеры).

 

Саму функцию "оперпендикуляривания" или "координатовразумления" вполне можно считать полезной и желательной к применению.

Только неплохо бы дать еще несколько дополнительных наводок, как быть в случаях "если".

Хотя бы из числа перечисленных в этом обсуждении.

Link to comment
Share on other sites

3 часа назад, EdwardSt сказал:

Это как раз тот случай, когда просто логикой не отделаться. Нужны все равно более детальные указания.

 

Например, можно относительно легко (и даже без относительно!) реализовать задачу - для всех выбранных объектов все характерные точки (координаты вершин, центров дуг и окружностей, точки вставки и т.д.) округлить с заданной точностью. Но сразу возникнет несколько "если":

  • что при этом произойдет с отрезком, у которого разность dx была 0.001? Одна вершина запросто может округлиться влево, а другая вправо, т.е. dx еще больше увеличится, когда желательным был бы результат в виде вертикального отрезка
  • с дугами будет еще больше вопросов. Смещение центра приводит к смещению обоих концов, смещение концов изменяет угол и т.д, и т.п.
  • Все фаски и сглаживания вообще рассыпятся.
  • Если произойдет разрыв контуров, то штриховки могут потерять ассоциативность.

В общем, список возможных "если" растет как снежный ком. И практически для каждого "если" нужно свое уточнение.

 

Фильтрами можно выбирать объекты, к которым необходимо применять этот инструмент.

Или так — если начальная и конечная точка по какой-то оси имеет разницу больше чем "x", то не выравнивать по сетке (означает, что объект и не должен быть в ортогональной системе)

Число или количество знаков, до которых округлять тоже нужно, чтобы можно было выбирать. Например, округлять до 1 ед. модели, или, там, до 5, или до 0.5, если надо.

С криволинейными объектами надо думать, может и не надо это им

 

45 минут назад, EdwardSt сказал:

Но собственно функцию типа "округлить все координаты до 0,01" реализовать несложно.

Сложно может быть потом разгребать результаты.

Можно попробовать реализовать её с базовыми пожеланиями, а потом допиливать по результатам её работы)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Tell a friend

    Love Официальный форум компании Нанософт? Tell a friend!
×
×
  • Create New...