Аналитика

Цифровая фотограмметрия, картография и землеустройство
Текущее время: 29 мар 2024 01:25

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




Начать новую тему Ответить на тему  [ Сообщений: 1235 ]  На страницу Пред.  1 ... 67, 68, 69, 70, 71, 72, 73 ... 83  След.
Автор Сообщение
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 09 янв 2020 10:26 
Гуру
Гуру

Зарегистрирован:
18 апр 2007 11:55
Сообщения: 2298
Откуда: Vinnytsia
Ця функція перевіряє правильність синтаксису XML, ніяких перевірок по схемі(ам). Під час масового відкриття файлів є сенс ці файли перевірити щоб не натискати на кнопки в діалогах ("Похибка відкриття...") на кожному невалідному, яких раніше було багато.

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


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 17 фев 2020 18:01 
Специалист
Специалист

Зарегистрирован:
18 июл 2011 09:16
Сообщения: 43
Доброго дня. Допоможіть будь-ласка зі скриптом. Працював нормально, а сьогодні наче сказився - не працює. В 29 рядку пише помилку, я його пробував видаляти, скрипт виконується, але так криво, що краще б не виконувався.
Код:
$NumberParam=ID40042
$Tab=@Calc char(9)
$Tab=@DequoteText $Tab
$SC=@Map.SelCount
@if $SC<1 then @Break
@Text[1].Clear
$I=0
$MC=@Map.Count
%LoopObject
$I=$I+1
$Sel=@Map.Object[$I].Selected
@if $Sel=0 then @Goto %IgnoreObject
$N=@Map.Object[$I].Parameter[$NumberParam]
$X=@Map.Object[$I].Parameter[-4]
$Y=@Map.Object[$I].Parameter[-3]
;$XYZ=@Map.Object[$I].Point[1]
;$X=@StringPart 1 $XYZ
;$Y=@StringPart 2 $XYZ
$Line=$N$Tab$X
$Line=$Line$Tab$Y
@Text[1].Add $Line
%IgnoreObject
@if $I<$MC then @Goto %LoopObject
$FN=@Map.ClearFilename
$FN2=_ПольовийЖурнал.dmf
$NFN=$FN$FN2
@FileNew $NFN=файл C:\Digitals\ПольовийЖурнал.dmt
@Map.DeselectAll
;@Map.SelectObject $I
$TL=@Map.Layers.Add 888777000 6 Text table
$NO=@Map.NewObject $TL
$NewText=@Text[1].Text
@Map.Object[$NO].TableText $NewText
@Map.RefreshObject $NO
@Map.SelectAll
@Map.FrameSelected 210 297 0
@ExecuteMenu ViewShowAllShowAll


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 17 фев 2020 18:33 
Гуру
Гуру

Зарегистрирован:
18 апр 2007 11:55
Сообщения: 2298
Откуда: Vinnytsia
Vaho писал(а):
Доброго дня. Допоможіть будь-ласка зі скриптом. Працював нормально, а сьогодні наче сказився - не працює. В 29 рядку пише помилку, я його пробував видаляти, скрипт виконується, але так криво, що краще б не виконувався.

Код:
$NumberParam=ID40042
$Tab=@Calc char(9)
$Tab=@DequoteText $Tab
$SC=@Map.SelCount
@if $SC<1 then @Break
@Text[1].Clear
$I=0
$MC=@Map.Count
%LoopObject
$I=$I+1
$Sel=@Map.Object[$I].Selected
@if $Sel=0 then @Goto %IgnoreObject
$N=@Map.Object[$I].Parameter[$NumberParam]
$X=@Map.Object[$I].Parameter[-4]
$Y=@Map.Object[$I].Parameter[-3]
$Line=$N$Tab$X
$Line=$Line$Tab$Y
@Text[1].Add $Line
%IgnoreObject
@if $I<$MC then @Goto %LoopObject
$FN=@Map.ClearFilename
$FN2=_ПольовийЖурнал.dmf
$NFN=$FN$FN2
@FileNew $NFN
@Map.DeselectAll
$TL=@Map.Layers.Add 888777000 6 Text table
$NO=@Map.NewObject $TL
$NewText=@Text[1].Text
@Map.Object[$NO].TableText $NewText
@Map.RefreshObject $NO
@Map.SelectAll
@Map.FrameSelected 210 297 0
@ExecuteMenu ViewShowAll

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


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 17 фев 2020 22:01 
Специалист
Специалист

Зарегистрирован:
18 июл 2011 09:16
Сообщения: 43
Dmitry_Zolotar писал(а):
Vaho писал(а):
Доброго дня. Допоможіть будь-ласка зі скриптом. Працював нормально, а сьогодні наче сказився - не працює. В 29 рядку пише помилку, я його пробував видаляти, скрипт виконується, але так криво, що краще б не виконувався.

Код:
$NumberParam=ID40042
$Tab=@Calc char(9)
$Tab=@DequoteText $Tab
$SC=@Map.SelCount
@if $SC<1 then @Break
@Text[1].Clear
$I=0
$MC=@Map.Count
%LoopObject
$I=$I+1
$Sel=@Map.Object[$I].Selected
@if $Sel=0 then @Goto %IgnoreObject
$N=@Map.Object[$I].Parameter[$NumberParam]
$X=@Map.Object[$I].Parameter[-4]
$Y=@Map.Object[$I].Parameter[-3]
$Line=$N$Tab$X
$Line=$Line$Tab$Y
@Text[1].Add $Line
%IgnoreObject
@if $I<$MC then @Goto %LoopObject
$FN=@Map.ClearFilename
$FN2=_ПольовийЖурнал.dmf
$NFN=$FN$FN2
@FileNew $NFN
@Map.DeselectAll
$TL=@Map.Layers.Add 888777000 6 Text table
$NO=@Map.NewObject $TL
$NewText=@Text[1].Text
@Map.Object[$NO].TableText $NewText
@Map.RefreshObject $NO
@Map.SelectAll
@Map.FrameSelected 210 297 0
@ExecuteMenu ViewShowAll

Нажаль не працює. Просто створює пустий dmf і все


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 18 фев 2020 00:28 
Гуру
Гуру

Зарегистрирован:
18 апр 2007 11:55
Сообщения: 2298
Откуда: Vinnytsia
Vaho писал(а):
Dmitry_Zolotar писал(а):
Vaho писал(а):
Доброго дня. Допоможіть будь-ласка зі скриптом. Працював нормально, а сьогодні наче сказився - не працює. В 29 рядку пише помилку, я його пробував видаляти, скрипт виконується, але так криво, що краще б не виконувався.

Код:
$NumberParam=ID40042
$Tab=@Calc char(9)
$Tab=@DequoteText $Tab
$SC=@Map.SelCount
@if $SC<1 then @Break
@Text[1].Clear
$I=0
$MC=@Map.Count
%LoopObject
$I=$I+1
$Sel=@Map.Object[$I].Selected
@if $Sel=0 then @Goto %IgnoreObject
$N=@Map.Object[$I].Parameter[$NumberParam]
$X=@Map.Object[$I].Parameter[-4]
$Y=@Map.Object[$I].Parameter[-3]
$Line=$N$Tab$X
$Line=$Line$Tab$Y
@Text[1].Add $Line
%IgnoreObject
@if $I<$MC then @Goto %LoopObject
$FN=@Map.ClearFilename
$FN2=_ПольовийЖурнал.dmf
$NFN=$FN$FN2
@FileNew $NFN
@Map.DeselectAll
$TL=@Map.Layers.Add 888777000 6 Text table
$NO=@Map.NewObject $TL
$NewText=@Text[1].Text
@Map.Object[$NO].TableText $NewText
@Map.RefreshObject $NO
@Map.SelectAll
@Map.FrameSelected 210 297 0
@ExecuteMenu ViewShowAll

Нажаль не працює. Просто створює пустий dmf і все

Поміняйте строку
Код:
@if $SC<1 then @Break

на
Код:
@if $SC<1 then @Break Помітьте точкові об'єкти з номерами в параметрі $NumberParam

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


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 18 фев 2020 15:15 
Специалист
Специалист

Зарегистрирован:
18 июл 2011 09:16
Сообщения: 43
Dmitry_Zolotar писал(а):
Vaho писал(а):
Dmitry_Zolotar писал(а):
Vaho писал(а):
Доброго дня. Допоможіть будь-ласка зі скриптом. Працював нормально, а сьогодні наче сказився - не працює. В 29 рядку пише помилку, я його пробував видаляти, скрипт виконується, але так криво, що краще б не виконувався.

Код:
$NumberParam=ID40042
$Tab=@Calc char(9)
$Tab=@DequoteText $Tab
$SC=@Map.SelCount
@if $SC<1 then @Break
@Text[1].Clear
$I=0
$MC=@Map.Count
%LoopObject
$I=$I+1
$Sel=@Map.Object[$I].Selected
@if $Sel=0 then @Goto %IgnoreObject
$N=@Map.Object[$I].Parameter[$NumberParam]
$X=@Map.Object[$I].Parameter[-4]
$Y=@Map.Object[$I].Parameter[-3]
$Line=$N$Tab$X
$Line=$Line$Tab$Y
@Text[1].Add $Line
%IgnoreObject
@if $I<$MC then @Goto %LoopObject
$FN=@Map.ClearFilename
$FN2=_ПольовийЖурнал.dmf
$NFN=$FN$FN2
@FileNew $NFN
@Map.DeselectAll
$TL=@Map.Layers.Add 888777000 6 Text table
$NO=@Map.NewObject $TL
$NewText=@Text[1].Text
@Map.Object[$NO].TableText $NewText
@Map.RefreshObject $NO
@Map.SelectAll
@Map.FrameSelected 210 297 0
@ExecuteMenu ViewShowAll

Нажаль не працює. Просто створює пустий dmf і все

Поміняйте строку
Код:
@if $SC<1 then @Break

на
Код:
@if $SC<1 then @Break Помітьте точкові об'єкти з номерами в параметрі $NumberParam

Ну не працює і хоть ти трісни


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 18 фев 2020 15:31 
Специалист
Специалист

Зарегистрирован:
18 июл 2011 09:16
Сообщения: 43
Все, розібрався, там строки місцями поміняти потрібно було. Я тільки не розумію як вони самі по собі перемістилися. А сталося це після вчорашнього оновлення


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 07 мар 2020 10:14 
Эксперт
Эксперт

Зарегистрирован:
30 июн 2017 20:52
Сообщения: 63
Откуда: Херсон
Доброго дня! Може в когось є скрипт, який бы перетворював в XML суміжника з фізичної особи в юридичну. Наприклад: Петров|Петро|Петрович :arrow: землі гр. Попова П.П.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 08 мар 2020 01:02 
Участник
Участник

Зарегистрирован:
01 мар 2020 10:05
Сообщения: 6
Доброго вечора.
Чи є можливість переміщати рамку пічаті за допомогою скрипту?
До прикладу мені потрібно (пічать/перемістити вправо і знову пічать перемістити вправо....)
Маю ось такий скрипт:

$Obj=@Map.SelectedObject
@if $Obj=0 then
$Vec=1 210
@Map.Object[$Obj].Move $Vec
@Window.Refresh

но рамку пічаті не переміщає((((


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 08 мар 2020 19:20 
Гуру
Гуру

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 797
Откуда: Львівська область
VictorR писал(а):
Доброго дня! Може в когось є скрипт, який бы перетворював в XML суміжника з фізичної особи в юридичну. Наприклад: Петров|Петро|Петрович :arrow: землі гр. Попова П.П.


$I=0
$R=0
$CN=@Map.Count
@Map.DeselectAll
%SLoop
;номер наступного об'єкта
$I=$I+1
$LID=@Map.Object[$I].LayerID
@if $LID<>70010 then @Goto %SContinue
$Param=@Map.Object[$I].Parameter[ID7001003]
$F=0
$PPIB=@XML.XPath Proprietor[1]/LegalEntity/Name <root>$Param</root>
@if $PPIB<> then @Goto %SContinue
%StartPFiz
$F=$F+1
$P1PrFiz=@XML.XPath Proprietor[$F]/NaturalPerson/FullName/LastName <root>$Param</root>
@if $P1PrFiz= then @Goto %Next
$P1ImFiz=@XML.XPath Proprietor[$F]/NaturalPerson/FullName/FirstName <root>$Param</root>
$P1PoFiz=@XML.XPath Proprietor[$F]/NaturalPerson/FullName/MiddleName <root>$Param</root>
@if $P1PoFiz=- then $P1PoFiz=
@if $P1ImFiz<> then $P1ImFiz=@Calc Copy("$P1ImFiz",1,1)
$P1ImFiz=@DequoteText $P1ImFiz
@if $P1ImFiz<> then $P1ImFiz=$P1ImFiz.
@if $P1PoFiz<> then $P1PoFiz=@Calc Copy("$P1PoFiz",1,1)
$P1PoFiz=@DequoteText $P1PoFiz
@if $P1PoFiz<> then $P1PoFiz=$P1PoFiz.
$P1PIB=$P1PrFiz $P1ImFiz $P1PoFiz
@if $PPIB<> then $PPIB=$PPIB, землі гр.$P1PIB
@if $PPIB= then $PPIB=землі гр.$P1PIB
@if $F<6 then @Goto %StartPFiz
%Next
$Param=@Map.Object[$I].Parameter[ID7001003] <Proprietor><LegalEntity><Name>$PPIB</Name></LegalEntity></Proprietor>
$R=$R+1
@Map.SelectObject $I
%SContinue
@if $I<$CN then @Goto %SLoop
@Break Конвертовано $R суміжників

_________________
додатково про скрипти Digitals на www.digitals.at.ua


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 08 мар 2020 19:32 
Гуру
Гуру

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 797
Откуда: Львівська область
Скрипник Дмитро писал(а):
Доброго вечора.
Чи є можливість переміщати рамку пічаті за допомогою скрипту?
До прикладу мені потрібно (пічать/перемістити вправо і знову пічать перемістити вправо....)


$Properties=@Map.GetProperties
$Properties=@ReplaceChar ,.$Properties
@Text.Text $Properties
$Koor1=@Text.Line[2]
$Koor3=@Text.Line[4]
$Line1=@Text.Line[1]
$Scal=@StringPart 1 $Line1
$XR1=@StringPart 1 $Koor1
$YR1=@StringPart 2 $Koor1
$YR1=$YR1+210*$Scal/1000
$XR2=@StringPart 1 $Koor3
$RozmirR=($XR2-$XR1)*($Scal/1000)
$XR2=297*$Scal/1000
$XR2=$XR1+$XR2
$YR2=210*$Scal/1000
$YR2=$YR1+$YR2
@Text.Line[2] $XR1 $YR1
@Text.Line[3] $XR2 $YR1
@Text.Line[4] $XR2 $YR2
@Text.Line[5] $XR1 $YR2
$Properties=@Text.Text
$Properties=@ReplaceChar .,$Properties
@Map.SetProperties $Properties
@Window.Refresh

_________________
додатково про скрипти Digitals на www.digitals.at.ua


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 10 мар 2020 17:25 
Эксперт
Эксперт

Зарегистрирован:
09 дек 2015 12:30
Сообщения: 97
Откуда: Закарпатська область
Доброго дня.
Підкажіть будь-ласка, як можна скриптом порахувати площу обмеження по кожному угіддю окремо?
Наприклад, на земельній ділянці два угіддя і через них проходить одне обмеження, як вирахувати площу обмеження по кожному угідді?
Дякую.


Вложения:
Zrazok.jpg [230.09 Кб]
Скачиваний: 0
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 10 мар 2020 21:28 
Гуру
Гуру

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 797
Откуда: Львівська область
petrogeo писал(а):
як можна скриптом порахувати площу обмеження по кожному угіддю окремо?

Якщо цікавить - це реалізовано в Скрипт-модуль "Документація" і виглядає ось так (див. зображення).
Це доволі складний скрипт і він працює тільки в купі з відповідними шаблонами.


Вложения:
2020-03-10_212211.png
2020-03-10_212211.png [ 10 Кб | Просмотров: 6941 ]

_________________
додатково про скрипти Digitals на www.digitals.at.ua
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 11 мар 2020 01:26 
Гуру
Гуру
Аватара пользователя

Зарегистрирован:
22 сен 2007 16:09
Сообщения: 382
Откуда: м.Львiв
petrogeo писал(а):
Доброго дня.
Підкажіть будь-ласка, як можна скриптом порахувати площу обмеження по кожному угіддю окремо?
Наприклад, на земельній ділянці два угіддя і через них проходить одне обмеження, як вирахувати площу обмеження по кожному угідді?
Дякую.

Доброго дня, це можете без проблем зробити за допомогою функцiї @Map.IntersectionWithLayer.
Ось скрипт накидав, першим параметром $RestrictLayerID є ID шару обмеження (в даному випадку -500)
Код:
$RestrictLayerID=ID-500
@Map.DeselectAll
@Dialog.WaitBox Виберiть контури для аналiзу
$ObjectList=@Map.Selected.List
@Map.DeselectAll
@Text[1].Text=$ObjectList
@Text[2].Clear
$Count=@Text[1].Count
@While $Count>0 %LoopObjectList
;
$ObjectID=@Text[1].Line[$Count]
$ObjArea=@Map.Object[$ObjectID].Parameter[0]
;
$RestrictObj=@Map.IntersectionWithLayer $ObjectID $RestrictLayerID
@If $RestrictObj=0 Then @Goto %SkipObjectList
$ObjRestArea=@Map.Object[$RestrictObj].Parameter[0]
@Map.DeleteObject $RestrictObj
@Text[2].Add Об'єкт $ObjectID, площа $ObjArea (пересiчення з шаром $RestrictLayerID складає $ObjRestArea)
%SkipObjectList
$Count=$Count-1
%LoopObjectList
;
$Count=@Text[2].Count
@If $Count=0 Then @Break Спiвпадань з шаром $RestrictLayerID не знайдено
$Buffer=@Text[2].Text
@Dialog.Message $Buffer


... а в цьому скриптi є аналiз декiлькох обмежень
Код:
$RestrictLayerID=ID-500
; перемiщаємо всi об'єкти шару в шар схованих
@Map.SelectLayer $RestrictLayerID
$ObjectList=@Map.Selected.List
@Text[3].Text=$ObjectList
@Map.DeselectAll
$RCount=@Text[3].Count
@While $RCount>0 %LoopHide
$ObjectID=@Text[3].Line[$RCount]
@Map.Object[$ObjectID].Layer=-2
;
$RCount=$RCount-1
%LoopHide
; вибираємо об'єкти для аналiзу на перетин
@Dialog.WaitBox Виберiть контури для аналiзу
$ObjectList=@Map.Selected.List
@Map.DeselectAll
@Text[1].Text=$ObjectList
@Text[2].Clear
; беремо по одному i перевiряємо на пересiчення
$RCount=@Text[3].Count
@While $RCount>0 %LoopMain
$ObjectRest=@Text[3].Line[$RCount]
@Map.Object[$ObjectRest].Layer=$RestrictLayerID
;
$Count=@Text[1].Count
@While $Count>0 %LoopObjectList
;
$ObjectID=@Text[1].Line[$Count]
$ObjArea=@Map.Object[$ObjectID].Parameter[0]
;
$RestrictObj=@Map.IntersectionWithLayer $ObjectID $RestrictLayerID
@If $RestrictObj=0 Then @Goto %SkipObjectList
$ObjRestArea=@Map.Object[$RestrictObj].Parameter[0]
@Map.DeleteObject $RestrictObj
@Text[2].Add Об'єкт $ObjectID, площа $ObjArea (пересiчення з об'єктом $ObjectRest шару $RestrictLayerID складає $ObjRestArea)
%SkipObjectList
$Count=$Count-1
%LoopObjectList
;
@Map.Object[$ObjectRest].Layer=-2
@Map.RefreshObject $ObjectRest
;
$RCount=$RCount-1
%LoopMain
;-------------------------------------------
; вiдновлюємо видимiсть шару
$RCount=@Text[3].Count
@While $RCount>0 %LoopShow
$ObjectID=@Text[3].Line[$RCount]
@Map.Object[$ObjectID].Layer=$RestrictLayerID
$RCount=$RCount-1
%LoopShow
;-------------------------------------------
;
$Count=@Text[2].Count
@If $Count=0 Then @Break Спiвпадань з шаром $RestrictLayerID не знайдено
$Buffer=@Text[2].Text
@Dialog.Message $Buffer

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 21 мар 2020 11:29 
Эксперт
Эксперт

Зарегистрирован:
30 июн 2017 20:52
Сообщения: 63
Откуда: Херсон
Підкажіть будь-ласка як привязати імпортований растр до певної точки.? Необхідно для того щоб привязувати ситуаційний план до правого верхнього кута рамки.


Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 1235 ]  На страницу Пред.  1 ... 67, 68, 69, 70, 71, 72, 73 ... 83  След.

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


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

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


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

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