Округление координат в автокаде. Округление размерных значений

Округление координат кратно значению

Округление координат кратно значению
 
 

Часто возникает потребность избавиться от "паразитных" значений при работе над чертежами, когда координаты узловой точки полосы могут быть скажем такие:
0.111222,23.999999
что может раздражать, мешать работать (т. к. позже появляются задачи со штриховками, два мм могут "гулять" по всему проекту). Просмотрел несколько издавна имеющихся схожих тем "округления координат". Но, потратив около 2-ух часов времени, я так и не нашёл того что мне нужно: утилиту для округления координат узловых точек примитивов чертежа скажем кратно 5 мм, что довольно для строительства. Пришлось издержать ещё 4 часа и вот что у меня получилось:

[Выделить все]; The program rounds the values ​​x, y, z coordinates of the point of the lines, polylines, ; circles, multiply the specified value. ; Radius, coordinates community centers also become multiple setpoint. ; This can be avoided in the drawings of the coordinates of the form 150.0989, ; do say multiple dimensions of 5 mm, which is sufficient for construction drawings. ; Программа округляет значения x, y, z координат узловых точке отрезков, ; полилиний, кругов кратно данному значению. ; Радиусы, координаты центров кругов так же стают кратными данному значению. ; Сиим можно избежать в чертежах значений координат вида: 150.0989, ; сделать все размеры кратными скажем 5 мм, что довольно для ; строй чертежей (defun rn (num w) (* (atof (rtos (/ num w) 2 0)) w) ) (defun rn1 (lst w) (if (or (eq 10 (car lst)) (eq 11 (car lst)) (eq 40 (car lst)) ) (if (listp (cdr lst)) (cons (car lst) (mapcar ‘(lambda (x) (rn x w)) (cdr lst)) ) (cons (car lst) (rn (cdr lst) w)) ) lst ) ) (defun c:rnd (/ ss w cnt inent) (setq w (getreal "Enter the value to which the round: ") ss (ssget) cnt 0 ) (while (setq inent (entget (ssname ss cnt))) (progn (entmod (mapcar ‘(lambda (x) (rn1 x w)) inent)) (setq cnt (1+ cnt)) ) ) (princ) ) (princ "type: "RND"") (princ)

Прошу прощения за несколько неоптимальный код: метод округления выполнен несколько мудрёно, может быть следовало бы "втащить" подсобные функции в тело основной функции, чтобы не сорить в памяти. Но т. к. программа "ругается" при каждом выполнении, а я не владею средствами отладки программ (да я кустарь), функции оставлены "снаружи", что бы можно было починить "на ходу" ежели что отвалится
Может быть кому-нибудь пригодится!
=================================================
PS Вопросец модерам форума:
попробовал скопировать текст программы. При вставке получаются номера строк (я воспользовался тегом LISP). Таковой код неработоспособен. Обыденным notepad это тяжело поправить. По-этому я добавляю вложение, использую тег [code] заместо [code] + [lisp].
Предлагаю поправить тег LISP так что бы не показывались номера строк, либо при "выделить всё" они не выделялись.

Читайте также  Как играть в игры ps3 на пк. Как запускать игры с PS3 на ПК в эмуляторе RPCS3


Последний раз правилось baaba, 13.12.2012 в 20:34.

AutoCAD. Как округлить значения размеров и избавиться от дробей

В этом уроке мы разберем сходу два вопроса:

1. Как быстро привести дробные значения размеров к целым, т.е как из 150,31 сделать просто 150, причем сходу для всех размеров чертежа. Управлять сиим мы будем через параметр точность.

2. Как округлить все размеры до кратных значений. К примеру, превратить 148 в 150. Для заслуги такового эффекта, разглядим настройки округления.

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

Настройки точности и округления доступны при редактировании размерного стиля. Потому 1-ое, что необходимо сделать, это узнать, к какому размерному стилю принадлежат наши размеры. Для этого выделяем размер, открываем палитру Свойства (она раскрывается сочетанием кнопок CTRL+1) и запоминаем заглавие размерного стиля:

Теперь идем в Диспетчер размерных стилей (панель Инструкции, клавиша смотрится как размер с кисточкой):

Выделяем подходящий нам стиль и жмем на клавишу Редактировать:

В открывшемся окне нас интересует вкладка Основные единицы — вся мистика находится там:

В зависимости от ваших целей, следует употреблять один из 2-ух параметров:

1. Точность отвечает за количество символов опосля запятой в значении размера. Ежели вы желаете привести дробные значения к целым, просто измените точность с 0,00 на 0. Произойдет округление до наиблежайшего целого числа по математическим правилам. К примеру, 1008,01 перевоплотится в 1008.

2. Округление дозволяет задать кратность значений размеров. Приведем примеры, чтоб было понятнее:

  • Округление= — никакого округления не происходит
  • Округление=0,5 → 314,57 перевоплотится в 314,5 (т.е на конце постоянно будет или 0, или 0,5)
  • Округление=5 → 318  перевоплотится в 320, а 314 в 315
  • Округление=10 → 318 перевоплотится в 320, а 314 в 310
  • Округление=100 → 318 перевоплотится в 300, а 380 в 400
Читайте также  Бот для поиска людей телеграмм. Телеграм бот для поиска людей по фото

Можно вводить и любые остальные значения — экспериментируйте. Опосля нажатия Ок, окно опций стиля закроется, и характеристики будут использованы ко всем размерам данного размерного стиля. Обратите внимание, что изменятся лишь отображаемые значения — сама графика чертежа остается таковой как есть! Если в чертеже употребляется несколько размерных стилей, то функцию необходимо повторить для каждого.

Еще одна маленькая хитрость — ежели необходимо поменять данные характеристики не у всех, а лишь у 1-го либо пары размеров, можно сделать это последующим образом: для изменения Точности, выделяем размер и получаем доступ к сиим настройкам через контекстное меню (правая кнопка мыши):

А параметр Округления у определенного размера можно поменять через раздел Главные единицы палитры Свойства:

Disclaimer: Используйте приведенные выше советы с мозгом и на собственный ужас и риск!

Если вы чертите верно и аккуратненько, никаких дробей в размерах и не будет. И я настоятельно советую сходу чертить ровно, а не изменять значения, так как округляя, можно чрезвычайно серьезно ошибиться, и эти ошибки в последствии всплывут на шаге реализации проекта. Но мир не безупречен, и время от времени к нам попадают документы неумелых (либо ленивых) создателей, и есть необходимость как-то быстро все это поправить хотя бы зрительно (например, чтоб распечатать). Либо вы в ситуации, когда четкие значения не так важны, к примеру, обмеры помещений для дизайн-проектов. Куда понятнее на чертеже смотрится значение 1100, а не 1097. А 3 мм. полностью могут быть погрешностью измерений — в таковых вариантах округление полностью оправдано. Вообщем, когда речь идет о ремонте, 1-5 мм — ничтожно малые величины, такую точность все равно нереально выдержать при проведении работ, а размеры 1398 мм либо 153 мм будут лишь сбивать с толку ремонтников.

Спасибо за внимание и фурроров в работе!

Читайте также  Как выключить слежку на windows 10. 9 простых способов отключения телеметрии в ОС Windows 10 навсегда

Комментарии приветствуются! Уже 2 🙂

  1. Век живи, век обучайся. В 1992-м году (когда я осваивал Автокад) функции «округление» не было. Спасибо.

Оставьте комментарий