Аналитика
http://www.geosystema.net/forum/

Библиотека полезных скриптов
http://www.geosystema.net/forum/viewtopic.php?f=1&t=2539
Страница 11 из 12

Автор:  Dmitry_Zolotar [ 02 авг 2017 15:34 ]
Заголовок сообщения:  Re: Библиотека полезных скриптов

Надішліть посилання на один з проблемних растрів нам на help@vingeo.com

Автор:  thom yorke [ 10 авг 2017 13:21 ]
Заголовок сообщения:  Re: Библиотека полезных скриптов

Написав тиждень тому, але ніхто ніяк не відповів.

Автор:  Ryvol [ 12 авг 2017 02:05 ]
Заголовок сообщения:  Re: Библиотека полезных скриптов

thom yorke писал(а):
Написав тиждень тому, але ніхто ніяк не відповів.

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

Автор:  Dmitry_Zolotar [ 13 авг 2017 23:05 ]
Заголовок сообщения:  Re: Библиотека полезных скриптов

thom yorke писал(а):
Написав тиждень тому, але ніхто ніяк не відповів.

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

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

Автор:  Rutar [ 24 сен 2017 21:18 ]
Заголовок сообщения:  Re: Библиотека полезных скриптов

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

Цитата:
$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

Автор:  quickvox [ 26 окт 2017 15:58 ]
Заголовок сообщения:  Re: Библиотека полезных скриптов

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

Автор:  Руслан Пархуць [ 26 окт 2017 18:00 ]
Заголовок сообщения:  Re: Библиотека полезных скриптов

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

1. Можливо Вам допоможе кнопка "Показ центрiв" iз включеною опцiєю "Значення висот".
2. Скрипт робить пошук точок з рiзними висотами i формує в кiнцевому результатi масив з координатами точок перетину, висоти в яких рiзнi. Запис формується у форматi X Y Z ID. (Правда у скриптi застосована ф-цiя EditAlign, яка добавляє точки перетину мiж об'єктами. При потребi закоментуйте рядок з вказаною ф-цiєю )
Код:
$MapCount=@MapCount
@If $MapCount=0 Then @Break Не вiдкрито жодної карти
$SelCount=@Map.SelCount
@If $SelCount=0 Then @Break Не помiчено жодного об'єкту
$Count=$SelCount
$Buf=@Map.Selected.List
@ExecuteMenu EditAlign
@Map.DeselectAll
; масив помiчених об'єктiв
@Text.Text=$Buf
; масив точок перетину
@Text[1].Clear
; масив точок з рiзними висотами
@Text[2].Clear
; основний цикл
%CycleMain
$Obj=@Text.Line[$Count]
$PntCount=@Map.Object[$Obj].Count
$I=1
%CyclePoint
$Point=@Map.Object[$Obj].Point[$I]
@Text[1].Add $Point $Obj
$I=$I+1
@If $I<=$PntCount Then @Goto %CyclePoint
;
$Count=$Count-1
@If $Count>0 Then @Goto %CycleMain
; сортуємо список точок для перевiрки
@Text[1].Sort
$PntCount=@Text[1].Count
$I=1
%CycleList
$MPoint=@Text[1].Line[$I]
;$MPoint=%Library.ReplaceComma $MPoint
$MX=@StringPart 1 $MPoint
$MY=@StringPart 2 $MPoint
$MZ=@StringPart 3 $MPoint
$J=$I+1
%CycleIns
@If $J>$PntCount Then @Goto %NextPoint
$IPoint=@Text[1].Line[$J]
;$IPoint=%Library.ReplaceComma $IPoint
$IX=@StringPart 1 $IPoint
$IY=@StringPart 2 $IPoint
$IZ=@StringPart 3 $IPoint
@If ($MX=$IX) And ($MY=$IY) And ($MZ<>$IZ) Then @Goto %AddPoint
;
%NextPoint
$I=$I+1
@If $I<=$PntCount Then @Goto %CycleList
@Goto %PrintResult
%AddPoint
$EX=@Text[2].IndexOf $MPoint
@If $EX>0 Then @Goto %AddSecPoint
@Text[2].Add $MPoint
%AddSecPoint
$EX=@Text[2].IndexOf $IPoint
@If $EX>0 Then @Goto %ExitAddPoint
@Text[2].Add $IPoint
%ExitAddPoint
$J=$J+1
@Goto %CycleIns
;
%PrintResult
$Count=@Text[2].Count
$Buf=@Text[2].Text
@If $Count>0 Then @Dialog.Message $Buf
; очищення масиву
@Text[2].Clear
@Text[1].Clear
@Text.Clear
;
@Break

Автор:  thom yorke [ 06 ноя 2017 16:17 ]
Заголовок сообщения:  Re: Библиотека полезных скриптов

Dmitry_Zolotar писал(а):
thom yorke писал(а):
Написав тиждень тому, але ніхто ніяк не відповів.

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

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


Знову застряг уже на першому кроці. Models на етапі експорту елементів орієнтування в .txt видає помилку "export error".

Автор:  Dmitry_Zolotar [ 07 ноя 2017 11:33 ]
Заголовок сообщения:  Re: Библиотека полезных скриптов

thom yorke писал(а):
Знову застряг уже на першому кроці. Models на етапі експорту елементів орієнтування в .txt видає помилку "export error".

Відкрийте цей растр в Ged.exe та надішліть інформацію(меню Растр-Свойства) про растр на help@vingeo.com.

Автор:  Dix [ 15 ноя 2017 19:14 ]
Заголовок сообщения:  Re: Библиотека полезных скриптов

Здравствуйте!! Никто не подскажет каким образом средствами скрипта можно открыть определенный документ word и вставить туда переменные которые заранее определены в документе (DocVariable)???

Такая функция когда-то была в программке TCPScript, очень бы хотелось такого функционала и в наших родных скриптах.

Автор:  Dmitry_Zolotar [ 16 ноя 2017 11:00 ]
Заголовок сообщения:  Re: Библиотека полезных скриптов

Dix писал(а):
Здравствуйте!! Никто не подскажет каким образом средствами скрипта можно открыть определенный документ word и вставить туда переменные которые заранее определены в документе (DocVariable)???

Такая функция когда-то была в программке TCPScript, очень бы хотелось такого функционала и в наших родных скриптах.

Скрипт готовит некие данные и запускает Word с созданием документа на основе шаблона Digitals\Templates\TemplateName.dot
Код:
;путь к программе
$PP=@ProgramPath
;заполняем строками
@Text[1].Add DocVar1=Value1
@Text[1].Add DocVar2=Value2
@Text[1].Add DocVar3=Value3
@Text[1].Add DocVar4=Value4
;Копируем в буфер
@Text[1].Copy
;или сохраняем во временный файл
@Text[1].Save $PP\tempdata.txt
;запускаем Ворд с шаблоном
@Run "c:\Program Files (x86)\Microsoft Office\OFFICE11\WINWORD.EXE" /t"$PP\Templates\TemplateName.dot"

В шаблоне TemplateName.dot необходимо добавить обработчик события создания документа

Автор:  fendak [ 18 янв 2018 14:08 ]
Заголовок сообщения:  Re: Библиотека полезных скриптов

Скрипт формує таблицю, яка містить кадастровий номер, ПІБ чи назву землевласника, адресу ділянки, цільове призначення та площу по кожному файлу XML у вибраній папці

Код:
$Tab=@Calc char(9)
$Tab=@DequoteText $Tab
$WorkPapka=@Dialog.SelectFolder Виберіть папку з файлами xml для звіту
@if $WorkPapka= then @break
@Text[1].FolderListTree *.xml $WorkPapka
$TC=@Text[1].Count
@if $TC=0 then @break В папці не виявлено жодного обмінного файла xml
$Len=@Calc Length("$TC")
$L=@Calc Copy("$TC","$Len","1")
@if $L=1 then $TCText="$TC файл"
@if $L>1 then $TCText="$TC файли"
@if $L>4 then $TCText="$TC файлів"
@if $L=0 then $TCText="$TC файлів"
$Len=$Len-1
$L2=@Calc Copy("$TC3","$Len","1")
@if $L2=1 then $TCText="$TC файлів"
$TCText=@DequoteText $TCText
@Progress.Start $TC Обробляю... (всього $TCText)
@Text[2].Add Кадастровий номер$TabПІБ (назва) землевласника$TabАдреса ділянки$TabЦП$TabПлоща
$XML=0
$XMLYes=0
%LoopXML
$XML=$XML+1
@Progress.StepBy 1
$FN=@Text[1].Line[$XML]
$Valid=@XML.Valid $FN
@if $Valid<>1 then @Text[3].Add $FN
@if $Valid<>1 then @Goto %LoopXML
@FileOpen $FN
;кадастровий номер
$KN=@Map.XMLCadastralNumber
@if $KN= then $KN=@Map.ClearShortFilename
;виділяємо ділянку
@Map.DeselectAll
@Map.SelectLayer ID70005
$SC=@Map.SelCount
@if $SC<1 then @Text[3].Add $FN
@if $SC<1 then @Goto %LoopXML
;рахуємо кількість успішно відкритих
$XMLYes=$XMLYes+1
$N=@Map.SelectedObject
;дістаємо адресу ділянки
$ADVse=@Map.Object[$N].Parameter[ID7000500]
$AD=@XML.XPath Settlement $ADVse
$ADTup=@XML.XPath ParcelAddress/StreetType $ADVse
$AD4=@XML.XPath ParcelAddress/StreetName $ADVse
@if $AD4=- then $AD4=
@if $AD4<> then $AD=$AD, $ADTup $AD4
$AD5=@XML.XPath ParcelAddress/Building $ADVse
@if $AD5=- then $AD5=
@if $AD5<> then $AD=$AD, $AD5
$AD6=@XML.XPath ParcelAddress/Block $ADVse
@if $AD6=- then $AD6=
@if $AD6<> then $AD=$AD, $AD6
;цільове використання
$CV=@Map.Object[$N].Parameter[ID7000510]
$CV=@StringPart 1 $CV
;площа
$Area=@Map.Object[$N].Parameter[ID7000516]
;ПІБ чи назва землевласника
$Prop=@Map.Object[$N].Parameter[ID7000520]
$PrCount=@XML.NodeCount /Proprietors ProprietorInfo $Prop
$Res=
@if $PrCount<1 then @Goto %IgnoreProp
$I=0
%StartProp
$I=$I+1
@if $I>1 then $Res=$Res,
$UrCount=@XML.NodeCount /Proprietors/ProprietorInfo[$I]/Authentication LegalEntity $Prop
@if $UrCount=1 then @Goto %Uryd
$LN=@XML.XPath /Proprietors/ProprietorInfo[$I]/Authentication/NaturalPerson/FullName/LastName $Prop
$FN=@XML.XPath /Proprietors/ProprietorInfo[$I]/Authentication/NaturalPerson/FullName/FirstName $Prop
$MN=@XML.XPath /Proprietors/ProprietorInfo[$I]/Authentication/NaturalPerson/FullName/MiddleName $Prop
$Res=$Res$LN $FN $MN
@Goto %NeUryd
%Uryd
$UrydName=@XML.XPath /Proprietors/ProprietorInfo[$I]/Authentication/LegalEntity/Name $Prop
$Res=$Res$UrydName
%NeUryd
@if $I<$PrCount then @Goto %StartProp
%IgnoreProp
;формуємо рядок та додаємо в таблицю
@Text[2].Add $KN$Tab$Res$Tab$AD$Tab $CV$Tab $Area
@CloseMap $FN
$Cancel=@Progress.Canceled
@if $Cancel=1 then @Goto %EndXML
@if $XML<$TC then @Goto %LoopXML
%EndXML
@Progress.Stop
@Text[2].Copy
;рахуємо файли, які не вдалося обробити
$TC3=@Text[3].Count
$Text=
@if $TC3=0 then @Goto %AllGood
$Len=@Calc Length("$TC3")
$L=@Calc Copy("$TC3","$Len","1")
@if $L=1 then $TCText="$TC3 файл"
@if $L>1 then $TCText="$TC3 файли"
@if $L>4 then $TCText="$TC3 файлів"
@if $L=0 then $TCText="$TC3 файлів"
$Len=$Len-1
$L2=@Calc Copy("$TC3","$Len","1")
@if $L2=1 then $TCText="$TC3 файлів"
$TCText=@DequoteText $TCText
$Text=@Text[3].Text
$Text=Не вдалося відкрити чи обробити $TCText:|$Text
%AllGood
@Dialog.Message Оброблено $XMLYes файлів XML. Звіт скопійовано в буфер обміну. Відкрийте таблицю Ексель чи простий блокнот та виконайте команду Вставити. ||$Text


Вложения:
2018-01-18_130624.png
2018-01-18_130624.png [ 22.01 Кб | Просмотров: 3934 ]

Автор:  Vova_u2 [ 14 фев 2018 15:22 ]
Заголовок сообщения:  Re: Библиотека полезных скриптов

не підсткажите скрипт копіювання всіх значень XML в інший, тобто є в діджиталі вікриті 2 XML-ля, потрібно з одного (активного чи як) вставити дані/значення всіх слоїв (XML земельна ділянка, кадастрова зона, квартал, угіддя) в інший. Дуже дякую.

Автор:  fendak [ 14 фев 2018 15:41 ]
Заголовок сообщения:  Re: Библиотека полезных скриптов

на закладці Інфо є кнопка Параметри.
Відкривши перший xml, створіть шаблон.
Відкривши другий, заповніть по шаблону.

Вложения:
2018-02-14_153938.png
2018-02-14_153938.png [ 8.23 Кб | Просмотров: 3363 ]

Автор:  VictorR [ 14 фев 2018 16:55 ]
Заголовок сообщения:  Re: Библиотека полезных скриптов

Або використайте цей скрипт (першою повина бути відкрита карта параметри якої треба скопіювати):

%1
@ActivateMap 1
@Map.DeselectAll
@Map.SelectLayer ID70000
Правка | Копировать
@Map.DeselectAll
@ActivateMap 2
@Map.DeselectAll
@Map.SelectLayer ID70000
Специальная вставка | Только параметры
@Map.DeselectAll
@ActivateMap 1
@Map.DeselectAll
@Map.SelectLayer ID70001
Правка | Копировать
@Map.DeselectAll
@ActivateMap 2
@Map.DeselectAll
@Map.SelectLayer ID70001
Специальная вставка | Только параметры
@Map.DeselectAll
@ActivateMap 1
@Map.DeselectAll
@Map.SelectLayer ID70003
Правка | Копировать
@Map.DeselectAll
@ActivateMap 2
@Map.DeselectAll
@Map.SelectLayer ID70003
Специальная вставка | Только параметры
@Map.DeselectAll
@ActivateMap 1
@Map.DeselectAll
@Map.SelectLayer ID70004
Правка | Копировать
@Map.DeselectAll
@ActivateMap 2
@Map.DeselectAll
@Map.SelectLayer ID70004
Специальная вставка | Только параметры
@Map.DeselectAll
@ActivateMap 1
@Map.DeselectAll
@Map.SelectLayer ID70005
Правка | Копировать
@Map.DeselectAll
@ActivateMap 2
@Map.DeselectAll
@Map.SelectLayer ID70005
Специальная вставка | Только параметры
@Map.DeselectAll
@FileClose
@goto %1


Можна одразу відкрити n-ну кількість XML параметри яких буде змінено як у першого файла. Скрипт недороблений але користуватися можна.

Страница 11 из 12 Часовой пояс: UTC + 2 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/