Аналитика

Цифровая фотограмметрия, картография и землеустройство
Текущее время: 28 мар 2024 12:58

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ Сообщений: 211 ]  На страницу Пред.  1 ... 7, 8, 9, 10, 11, 12, 13 ... 15  След.
Автор Сообщение
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 21 май 2017 20:35 
Специалист
Специалист

Зарегистрирован:
10 янв 2010 12:05
Сообщения: 32
Откуда: Винницкая обл.
Дякую. Вийшло.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 31 май 2017 20:53 
Гуру
Гуру

Зарегистрирован:
05 окт 2015 23:49
Сообщения: 133
Откуда: Черкаська область
BAM писал(а):
Построение по дир. углам или румбам

1. Нужно пометить первую точку и запустить скрипт
2. Выбераем дир. углы или румбы
3. Для румбов вводим четверть (1 2 3 4) и угол через "," (град,мин,сек)
4. Вводим дистанцию
На экране появится точка. Она атоматом становится первой. Повторяем действие 3,4 скольк нужно.

$V=@Dialog.Select Выбери|Дир. углы|Румб
%next
$n=@Map.NextSelected
@If $n=0 then @Break Пометь первую точку
$nn=@Map.Object[$n].Parameter[4]
$x=@Map.Object[$n].Parameter[-4]
$x=@Calc Replace("$x",",",".")
$x=@DequoteText $x
$x=@DequoteText $x
$y=@Map.Object[$n].Parameter[-3]
$y=@Calc Replace("$y",",",".")
$y=@DequoteText $y
$y=@DequoteText $y
@Map.DeselectAll
@If $V=Румб then @Goto %end1
$a=@Dialog.Ask Угол 90,30,30
@If $a= then @Goto %end
$d=@Dialog.Ask дистанция
@If $d= then @Goto %end
$a=@Calc Replace("$a",".",",")
$a=@DequoteText $a
$a=@DequoteText $a
$d=@Calc Replace("$d",".",",")
$d=@DequoteText $d
$d=@DequoteText $d
$a1=@StringPart 1,$a
$a2=@StringPart 2,$a
@If $a2= then $a2=0
$a3=@StringPart 3,$a
@If $a3= then $a3=0
$a=(($a3/60+$a2)/60+$a1)*3.1415926535897932384626433832795028841971/180
%next1
$ac=@Calc Cos($a)
;@Break $ac
$dx=$x+$ac*$d
$dx=@Calc Replace("$dx",".",",")
$dx=@DequoteText $dx
$dx=@DequoteText $dx
$as=@Calc sin($a)
$dy=$y+$as*$d
$dy=@Calc Replace("$dy",".",",")
$dy=@DequoteText $dy
$dy=@DequoteText $dy
$nn=$nn+1
$N=@Map.AddObject 0|1|ID11340000|1|0 $dx $dy 0|1|ID11340000|1|4 $nn
;
@Map.SelectByParameters 1|4>=$nn
@Map.Selected.CreateCaptions ID93 0 0 1 0 0,1 1
Вид | Показать все
@Map.SelectLayer $nn
@Goto %next
@Goto %end
%end1
$a=@Dialog.Ask Четверть (3,90,30,30)
$a=@Calc Replace("$a",".",",")
$a=@DequoteText $a
$a=@DequoteText $a
$a1=@StringPart 1,$a
$a2=@StringPart 2,$a
$a3=@StringPart 3,$a
@If $a3= then $a3=0
$a4=@StringPart 4,$a
@If $a4= then $a4=0
$a=($a4/60+$a3)/60+$a2
@If $a1=2 then $a=180-$a
@If $a1=3 then $a=180+$a
@If $a1=4 then $a=360-$a
$a=$a*3.1415926535897932384626433832795028841971/180
$d=@Dialog.Ask дистанция
@If $d= then @Goto %end
$d=@Calc Replace("$d",".",",")
$d=@DequoteText $d
$d=@DequoteText $d
@Goto %next1
%end


:!: :!: :!: Допоможіть знайти помилку, можливо у мене - при введенні довжини любого не цілого числа (наприклад: 22,33) видає помилку
Вложение:
.jpg
.jpg [ 23.56 Кб | Просмотров: 51100 ]


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 31 май 2017 21:45 
Гуру
Гуру

Зарегистрирован:
18 апр 2007 11:55
Сообщения: 2298
Откуда: Vinnytsia
Змініть системний розділник з коми на точку.

_________________
Команда разработчиков Digitals
(наш e-mail и ICQ находятся в меню Помощь|О программе)
Новичкам сюда | Новые возможности программы | Купить Digitals


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 31 май 2017 22:31 
Гуру
Гуру

Зарегистрирован:
05 окт 2015 23:49
Сообщения: 133
Откуда: Черкаська область
Dmitry_Zolotar писал(а):
Змініть системний розділник з коми на точку.

Поясніть, будь ласка, докладніше про необхідні налаштування.
Якщо змінюю системні коми на крапки, - вилітає помилка навіть при введенні цілих чисел...
Помилка виникає тільки при введенні довжини не цілого числа, хоч через кому, хоч через крапку.
Кути з минутами та секундами введені через кому обраховуються без помилок...


Последний раз редактировалось Ryvol 31 май 2017 23:40, всего редактировалось 4 раз(а).

Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 31 май 2017 23:10 
Гуру
Гуру

Зарегистрирован:
18 апр 2007 11:55
Сообщения: 2298
Откуда: Vinnytsia
Спробуйте натиснути Ctrl-D під час збору, можливо це те що Вам потрібно. Ще є варіанти.

Чи Вам потрібні саме румби? І саме для об'єктів шару ID11340000? Зі створенням підписів параметра ID93? І лише для тих об'єктів, значення параметра 4 якого більше або дорівнюю значенню аналогічного параметра об'єкта, який був помічений перед запуском скрипта?

Даний скрипт - хороший приклад автоматизації, але він вирішує досить специфічне завдання на нестандартних шаблонах.

_________________
Команда разработчиков Digitals
(наш e-mail и ICQ находятся в меню Помощь|О программе)
Новичкам сюда | Новые возможности программы | Купить Digitals


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 31 май 2017 23:19 
Гуру
Гуру

Зарегистрирован:
05 окт 2015 23:49
Сообщения: 133
Откуда: Черкаська область
Dmitry_Zolotar писал(а):
Спробуйте натиснути Ctrl-D під час збору, можливо це те що Вам потрібно. Ще є варіанти.

Чи Вам потрібні саме румби? І саме для об'єктів шару ID11340000? Зі створенням підписів параметра ID93? І лише для тих об'єктів, значення параметра 4 якого більше або дорівнюю значенню аналогічного параметра об'єкта, який був помічений перед запуском скрипта?

Даний скрипт - хороший приклад автоматизації, але він вирішує досить специфічне завдання на нестандартних шаблонах.


Дякую за допомогу.
:idea: :D Натиснути Ctrl-D під час збору, якраз Те що Потрібно!

Написане було за 10 хвилин до спроби Натиснути Ctrl-D під час збору:
Потрібно із таблиці (списку) із Дирекційними кутами та промірами внести точки на карту та зібрать полігон.
У себе змінив об'єкт шару ID11340000 на шар ID10 і накидав точки теодолітного ходу на карту, але потрібно проміри внести ті що у списку, а вони не цілі числа...
Інших способів не знайшов, тому і прошу допомоги.
Зараз почитаю про варіанти у книжці.
Переглянув, але для себе нічого не знайшов з Дирекційними кутами...


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 01 июн 2017 05:36 
Гуру
Гуру

Зарегистрирован:
06 июн 2010 06:35
Сообщения: 823
Откуда: Ліспроект Володимир Вовчанський
Dmitry_Zolotar писал(а):
Змініть системний розділник з коми на точку.
Скажемо так:
- системний розділювач змінюється в меню Пуск > Панель керування > Мова та регіональні стандарти на вкладці Регіональні параметри кнопка Налаштування вкладка Числа поле Десятковий розділювач;
- системний розділювач визначає: кома чи крапка буде повернуто у скрипт в десяткових числах командами скрипта $x=@Map.Object[$n].Parameter[-4] та $y=@Map.Object[$n].Parameter[-3];
- арифметичні дії виконуються у скрипті лише з десятковими числами у яких розділювач - крапка.

При системному розділювачі - кома:
- $x та $y міститимуть коми, тому $x=@Calc Replace("$x",",",".") заміняє кому на крапку, однак $d=@Dialog.Ask дистанция уводиться з комою, $d=@Calc Replace("$d",".",",") заміняє крапку на кому і $dx=$x+$ac*$d приймає $d з комою (множення на число з комою не виконується скриптом).

При системному розділювачі - крапка:
- $x та $y міститимуть крапки, тому $x=@Calc Replace("$x",",",".") залишить в числах крапки, однак $dx=@Calc Replace("$dx",".",",") замінить крапку на кому і @Map.AddObject 0|1|ID11340000|1|0 $dx $dy 0|1|ID11340000|1|4 $nn подаватиме в карту координати з комою (не створить Digitals об'єкт за координатами з комою, бо системний розділювач - крапка).

Одним словом, попробуйте замінити у скрипті $d=@Calc Replace("$d",".",",") на $d=@Calc Replace("$d",",","."). Тоді при системному розділювачі "кома" має працювати.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 01 июн 2017 07:43 
Гуру
Гуру

Зарегистрирован:
05 окт 2015 23:49
Сообщения: 133
Откуда: Черкаська область
:D :idea: Дякую, замінив на $d=@Calc Replace("$d",",",".") - ПРАЦЮЄ!

Побудова по дир. кутах або румбах
Скрипт, звичайно "специфічний", - нормально працює тільки на новій карті запущений перший раз.
На новій карті сворюю (ставлю) ТТХ ІD10 і "погнав" автоматом вводить дані...
Повторно запускать на цій же карті можна, але кути відкладаються вже не так (не туди)... залежність не досліджував...

Мої зміни:
- Українська локалізація
- В скрипту прописано шар для створення нових точок ID11 "Проектні лінії"
- фунція "Вигляд | Показати всі" після створення точки
- добавлена іконка


Вложения:
дир. кутах або румбах.tlb [6.35 Кб]
Скачиваний: 462
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 02 авг 2017 12:22 
Участник
Участник

Зарегистрирован:
19 окт 2016 18:33
Сообщения: 4
Скрипт трансформування растрів в УСК/МСК чомусь не трансформує всі растри. З декотрих - тільки невелику ділянку на краю растру. Підкажіть, в чому може бути справа?


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 02 авг 2017 15:34 
Гуру
Гуру

Зарегистрирован:
18 апр 2007 11:55
Сообщения: 2298
Откуда: Vinnytsia
Надішліть посилання на один з проблемних растрів нам на help@vingeo.com

_________________
Команда разработчиков Digitals
(наш e-mail и ICQ находятся в меню Помощь|О программе)
Новичкам сюда | Новые возможности программы | Купить Digitals


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 10 авг 2017 13:21 
Участник
Участник

Зарегистрирован:
19 окт 2016 18:33
Сообщения: 4
Написав тиждень тому, але ніхто ніяк не відповів.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 12 авг 2017 02:05 
Гуру
Гуру

Зарегистрирован:
05 окт 2015 23:49
Сообщения: 133
Откуда: Черкаська область
thom yorke писал(а):
Написав тиждень тому, але ніхто ніяк не відповів.

Печалька... :(
Я двічі звертався електронкою 24 та 31 липня, - до цього дня поки немає повідомлення від розробників.
Можливо у віпустці :D
А можливо у них немає можливості переглянути пошту... Печалька... :(
Тоді потрібно іншими способами виходити на зв'язок.
Особисто мені вже не потрібно відповідати, питання вирішене але, як про це повідомить роробників ще не зняю.
Гадаю Вони поставляться з розумінням до моїх питань.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 13 авг 2017 23:05 
Гуру
Гуру

Зарегистрирован:
18 апр 2007 11:55
Сообщения: 2298
Откуда: Vinnytsia
thom yorke писал(а):
Написав тиждень тому, але ніхто ніяк не відповів.

Вибачьте, з ситуацією розібрались і я забув відповісти.

Для проблемних растрів створіть World-файли за допомогою Models.exe-Архив-Экспорт(попередньо обрати діректорію з растрами та виділіти файли в середньому стовпчику). Перевірьте наявність World-файлів для усіх растрів. Видаліть елементи орієнтування з заголовків tif-файлів (кнопка Удалить в середньому стовпчику Models.exe-Архив). Все, можна запускати скрипт.

_________________
Команда разработчиков Digitals
(наш e-mail и ICQ находятся в меню Помощь|О программе)
Новичкам сюда | Новые возможности программы | Купить Digitals


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 24 сен 2017 21:18 
Участник
Участник

Зарегистрирован:
24 сен 2017 15:24
Сообщения: 6
Скрипт для повороту усіх підписів виділених об'єктів вздовж виділеної лінії.
Можливо комусь знадобиться :)

Цитата:
$mapCount=@MapCount
@if ($mapCount=0) then @break Немає відкритих карт
;
; Set variables
;/////////////////////////////////////////////////////////////////////
;
$nextSelect=0
$cycleIndex=0
$directionObject=0
$selectCount=@Map.SelCount
;
@if ($selectCount<1) @break Необхідно виділити один або декілька об'єктів
;
; Run cycle 1
;/////////////////////////////////////////////////////////////////////
;
%RunCycle1
;
$cycleIndex=$cycleIndex+1
$nextSelect=@Map.NextSelected $nextSelect
$markedPoints=@Map.Object[$nextSelect].GetMarkedPointsCount
@if ($markedPoints>0) and ($directionObject>0) then @break Необхідно виділити лише одну лінію
@if ($markedPoints>0) and ($directionObject=0) then $directionObject=$nextSelect
@if ($cycleIndex<$selectCount) then @goto %RunCycle1
;
; Get direction object ot break
;/////////////////////////////////////////////////////////////////////
@if ($directionObject=0) then @break Необхідно виділити лінію, яка слугуватиме напрямком повороту підписів
;
; Get direction angle from object
;/////////////////////////////////////////////////////////////////////
;
$marked=0
$lineIndex=0
$cycleIndex=0
$pointCount=@Map.Object[$directionObject].Count
$pointCount=$pointCount-1
;
; Run cycle 2
;/////////////////////////////////////////////////////////////////////
%RunCycle2
;
$cycleIndex=$cycleIndex+1
$cycleIndexNext=$cycleIndex+1
;
$isMarked=@Map.Object[$directionObject].GetPointMarked $cycleIndex
$isNextMarked=@Map.Object[$directionObject].GetPointMarked $cycleIndexNext
;
@if ($isMarked=1) and ($isNextMarked=1) then $marked=$marked+1
@if ($isMarked=1) and ($isNextMarked=1) and ($lineIndex=0) then $lineIndex=$cycleIndex
;
@if ($cycleIndex<$pointCount) @goto %RunCycle2
;
; Check direction line for errors
;/////////////////////////////////////////////////////////////////////
;
@if ($marked<>1) then @break Необхідно виділити лише одну лінію
;
; Get direction angle
;/////////////////////////////////////////////////////////////////////
;
$angle=@Map.Object[$directionObject].LineAngle[$lineIndex]
$angle=@Calc Replace($angle,",",".")
$angle=-$angle*10+900
;
; Rotate labels
;/////////////////////////////////////////////////////////////////////
;
$nextSelect=0
$paramsCount=@Map.Parameters.Count
;
@if ($paramsCount=0) then @break
;
%Start:
;
$nextSelect=@Map.NextSelected $nextSelect
@If $nextSelect<=0 @Goto %Finish
;
$loopIndex=1
;
%NextParam
;
$caption=@Map.Object[$nextSelect].Caption[$loopIndex]
@if $caption= @Goto %NextCap
;
@Map.Object[$nextSelect].Caption[$loopIndex] * * * $angle
;
%NextCap:
;
$loopIndex=$loopIndex+1
@If $loopIndex<=$paramsCount @Goto %NextParam
@Goto %Start
;
%Finish:
@Window.Refresh


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 26 окт 2017 15:58 
Участник
Участник

Зарегистрирован:
17 май 2014 10:44
Сообщения: 4
Помогите пожалуйста. очень нужен скрипт для проверки несоответствия высот на пересечениях объектов. Нужно что бы точки разных объектов которые пересекаются между собой имели одинаковую высоту, но искать их в ручную нереально сложно. было бы не плохо их в отдельный список выводить для легкого нахождения на карте. Совмещение соседних тут не поможет. иногда одна высота имеет приоритет и нужно указывать ее как высоту для второго объекта пересекающий первый. а функция совместить с соседними делает это автоматом.


Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 211 ]  На страницу Пред.  1 ... 7, 8, 9, 10, 11, 12, 13 ... 15  След.

Часовой пояс: UTC + 2 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB