Головна » Файли » Готові скрипти

Контроль площі ділянки та суми площ угідь
[ Викачати з сервера (10.2 Kb) ] 30.04.2019, 12:46

Скрипт перевіряє, чи сходиться площа ділянки з сумою площ угідь та автоматично виправляє, якщо не сходяться.

Після запуску скрипту на відкритому обмінному файлі XML, якщо площа ділянки не співпадає з сумою площ угідь, появиться таке вікно:

Якщо натиснути ОК, то наступним повідомленням буде

І в результаті сума площ угідь уже відповідатиме площі ділянки.

Скрипт автоматично підганяє площі тільки чотиристоронніх прямокутних будівель. У інших випадках потрібно вибирати Cansel і вручну підганяти площу виділеного угіддя.

Якщо натиснути Cansel, то появиться інше вікно:

Після якого можна вручну змінити розмір виділеного угіддя на вказану площу із будь-якої сторони. Такий ручний варіант зміни площі може бути потрібний тоді, коли будівля знаходиться, наприклад, на межі ділянки і зміна автоматично запропонованої сторони є не можливою (бо зміниться і площа ділянки). В такому випадку можна, навпаки, змінити протилежну сторону. Для цього потрібно маркувати спершу лінію, яку треба пересунути, потім лінію, довжину якої треба змінити і, оскільки довжина 4.1637 автоматично скопіювалася в буфер обміну, то достатньо в діалоговому вікні зміни довжини лінії просто вставити потрібне готове значення.

Взагалі, як це працює і чому, власне, відбувається розходження площі ділянки з сумою площ угідь?

Причина в округленнях координат та площі. Детальніше про округлення можна почитати і подивитися відео тут - Налаштування округлення.

Наприклад, є така ділянка:

Сума площ угідь тут виходить 0,0993, тобто, на 1 кв.м. менша, ніж площа ділянки. Куди ж подівся цей метр? Щоб це вияснити скрипт робить наступне.

1. Виставляє округлення площі до 6 знаків після коми. В результаті експлікація тимчасово виглядатиме ось так:

Тут стає видно площу якого угіддя можна несуттєво збільшити так, щоб інші не зменшилися. В даному випадку це угіддя №2. 5-та та 6-та цифри після коми тут 48. Тому 4-та цифра після окрулення до 4-ох знаків стає 8. Якщо ж замість 48 написати 51, то тоді 4-та цифра вже стане після округлення 9, що власне і потрібно. Так завдяки ось цим 0,000003 га (0,03 кв.м.) можна збільшити угіддя до потрібної площі.

2. Скрипт автоматично перебирає всі угіддя і шукає те, площа якого найбільш наближена до межі округлення (0,00005) і вираховує, скільки квадратних метрів потрібно для того, щоб площа угіддя переступила цю межу в більшу чи меншу сторону, залежно від балансу площ при 4-ох знаках.

3. Ділить цю площу на довжину довшої сторони даного угіддя і визначає на скільки треба збільшити чи зменшити коротшу довжину будівлі. Зазвичай це не більше 2-ох сантиметів або ж кілька міліметрів.

4. Автоматично зміщує точки будівлі та точки прибудинкової території, щоб вийшли потрібні площа та довжини.

Скрипт призначений в основному тільки для простих ділянок під ОЖБ, де є декілька будівель і прибудинкова територія. На більш складних ділянках не тестувався. Але, оскільки скрипт має циклічну форму роботи, то він повинен виправляти навіть декілька угідь одне за одним, поки не досягне рівної площі між ділянкою та угіддями. Важлива умова - щоб форми угідь (будівель) були чотирикутні прямокутні. Складніші будівлі скрипт автоматично підганяти до потрібної площі не навчений. Але такі будівлі (якщо їх дуже багато і площа угідь розходиться більше як на 1 кв.м) можна виправляти вручну, запускаючи скрипт декілька разів. Принаймні, буде видно яке з угідь і на яку площу потрібно підігнати.

Після завершення обробки ділянки рекомендовано перевірити, чи всі точки прибудинкової території синхронізувалися із точками будівлі (меню Вигляд - Контроль вузлів).

Для встановлення скрипту потрібно просто скачати прикріплений файл у папку Digitals.

Категорія: Готові скрипти | Додав: Микола
Переглядів: 3856 | Завантажень: 1031 | Коментарі: 16 | Рейтинг: 5.0/2
Всього коментарів: 16
avatar
14 powerztm • 20:55, 23.04.2024
Скрипт пропонує завдати довжину виділеної сторони конкретний розмір, яким інструментом це можна зробити?
avatar
0
15 Микола • 21:05, 24.04.2024
Наведіть курсор на центр лінії, де дві риски і натисніть праву клавішу мишки. Появиться ось таке вікно. Тут не забудьте вказати базову точку (тобто, точку, від якої слід змінювати даний відрізок). Відповідно, якщо в даному випадку базовою вибрати точку 2, то на нову довжину зміститься не тільки точка 1, а весь відрізок між точками 1-4, який замаркований (має дві риски по центру). Щоб замаркувати відрізок самостійно, натисніть Alt і клацніть по його центру лівою клавішею мишки.
Щоб навчитися, поекспериментуйте на новій карті, де намалюйте собі прямокутник і пробуйте таким чином змінювати довжини його сторін на більш значні величини, щоб краще було видно, як це працює.
avatar
16 powerztm • 09:59, Вчора
Дякую, вийшло  up
avatar
0
13 Микола • 11:04, 18.04.2024
Скрипт трохи оновлено. Виправлено помилку, коли після автоматичної корекції площі будівлі не виправляло одну з точок прибудинкової, якщо з даної точки починалося обведення будівлі складним полігоном. Також число знаків після коми в площі тепер автоматично повертається до 4 з 6 перед запуском скрипту (раніше треба було повертати вручну, або зберігати хмл і відкривати заново).
avatar
11 Землемер • 18:50, 14.03.2021
cool  якщо можна, то скиньте пліз в приват, бо самотужки я таке не зроблю.
avatar
0
12 Микола • 02:38, 15.03.2021
Там не так все просто. Скрипт спочатку визначає угіддя (будівлю), яке потребує найменшої корекції, для того щоб зійшлася площа угідь із площею ділянки. Це значення з 6-ма цифрами після коми. Наприклад, площа угіддя 0,009942. Після округлення до 4-ох знаків воно становить 0,0099. А потрібно, щоб було 0,01. В даному випадку до площі даного угіддя потрібно додати 0,00009 га. Після цього його площа стане 0,009951 га, що після округлення до 4-ох знаків буде уже 0,0100 га. Ну і відповідно цю ж площу (0,00009) віднімаємо від прибудинкової території і надіємося, що це не змінить її після округлення. Якщо ж змінить - то тоді запускаємо скрипт повторно.
І от що важливо, потім цю площу скрипт ділить на довжину будівлі. Таким чином визначаєтсья на скільки міліметрів треба посунути сторону даної будівлі, щоб в результаті сума угідь співпала. Якщо ж зміщувати тільки одну точку складної будівлі, то в яку сторону і на скільки? Це все не просто вирахувати. І якщо зміщення попаде на сторону складної будівлі, яка є короткою, то воно може бути дуже суттєвим, що викличе розходження із реальними розмірами будівлі. Тому, щоб це все прописати, даний скрипт потрібно зробити ще, як мінімум, у два рази складнішим. І на це треба багато часу. Може колись зроблю. Зараз не маю можливості.
avatar
9 Землемер • 20:38, 12.03.2021
чи можливо зробити так, щоб обрало одну точку з контурів які знаходяться всередині і нею підігнало площу щоб зходилось потім з ділянкою? трохи не хручно з прямокутними будівлями. Багато таких, що мають ломаної форми прямокутники.
avatar
0
10 Микола • 17:57, 13.03.2021
будівля тоді буде непрямокутною
avatar
7 bk2013 • 16:03, 06.07.2019
Микола, якщо я Вам скину шаблон каталога координат Вы сможете подвязать скрипт щоб дилил и переносил на следующие страницы координаты??!!!
avatar
0
8 Микола • 00:36, 07.07.2019
так
avatar
5 bk2013 • 21:33, 03.07.2019
Микола а выделить в окремий скрипт навіть для даного шаблона можливо?
avatar
0
6 Микола • 22:37, 03.07.2019
для якого даного?
avatar
3 bk2013 • 13:24, 03.07.2019
Микола, підскажіть будь-ласка є у вас такий скрипт який ділить таблицю якщо п'ятсот точек з координатами треба їх на декілька сторінок розбити??!
avatar
0
4 Микола • 21:19, 03.07.2019
універсального (на всі випадки) нема, є тільки для конкретного шаблону з конкретними таблицями, використаний у схемі перенесення в натуру теодолітом.
avatar
1 bk2013 • 11:45, 10.05.2019
Микола, як що будинок не прямокутний то нічого не получается?
avatar
0
2 Микола • 15:58, 10.05.2019
Скрипт працює тільки з прямокутними чотиристоронніми будівлями.
Якщо ваша будівля не прямокутна, то вручну підженіть її до потрібної площі. Дивіться її площу з шестизначними на той час (коли натиснули Cansel) цифрами після коми внизу на панелі програми).

Після того, як площу вивели на потрібну, збережіть ділянку, ЗАКРИЙТЕ, та відкрийте знову. Тоді площа знову стане чотиризначною, але уже потрібною вам. Інакше, якщо зразу друкуватимете звіт, то ця шестизначна площа буде у звіті. (після онволення скрипту це вже не потрібно робити)
avatar