Аналитика

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

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




Начать новую тему Ответить на тему  [ Сообщений: 211 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8 ... 15  След.
Автор Сообщение
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 03 окт 2014 23:03 
Гуру
Гуру

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 798
Откуда: Львівська область
Скрипт, який формує Список межових знаків, переданих на зберігання.
Коротко про суть роботи. Формується карта з DMT шаблону. Послідовно запитує виділити закріплені межові знаки на ділянці і будівлю чи ЛЕП, до якої знак прив'язаний промірами. Потім результат промірів і інше заносяться в текстову табличку.
Тут можна переглянути відео - http://www.geosystema.net/forum/viewtopic.php?f=1&t=19487&p=35688#35688

Код:
@Map.DeselectAll
@Map.SelectLayer ID20000
Документи | Опис меж
Вигляд | Показати всі
$OpysMezh=@ActivateMap
$Dialog=@Dialog.WaitBox вставте, якщо треба ЛЕП чи КЖ/КН і натисніть "Продовжити"
@If $Dialog=0 @Break
@Map.DeselectAll
@Map.SelectLayer ID20000
@Map.AddNodes 30
@Map.DeselectAll
;11111111111111111111111111
@Map.DeselectAll
%ZnovuT1
$Dialog=@Dialog.WaitBox Виберіть 1-й закріплений межовий знак і натисніть "Продовжити"
@If $Dialog=0 @Break
$T=@Map.SelCount
$ThisTochka=@Map.SelectedObject
$nomer1=@Map.Selected.GetParameter id70003
$x1=@Map.Selected.GetParameter -4
$y1=@Map.Selected.GetParameter -3
@If $T=1 @Goto %NextT1
@If $T<1 @Dialog.Message Ви не вибрали жодного будинку чи ЛЕП
@If $T>1 @Break Не можна вибирати одночасно більше одного буднику чи ЛЕП
@Goto %ZnovuT1
%NextT1
$Storona1=@Dialog.Select Вкажіть в якій стороні знаходиться ця точка|північній|південній|західній|східній|північно-західній|північно-східній|південно-західній|південно-східній
%ZnovuO1
$Dialog=@Dialog.WaitBox Виділіть будинок чи ЛЕП, до яких буде прив'язаний перший меж.знак і натисніть "Продовжити"
@If $Dialog=0 @Break
$O=@Map.SelCount
$ThisObj=@Map.SelectedObject
$LID=@Map.Object[$ThisObj].LayerID
$ObjVyd1=кутів кам’яної будівлі
@If $LID=12 then $ObjVyd1=опор ЛЕП
@If $O=1 @Goto %NextO1
@If $O<1 @Dialog.Message Ви не вибрали жодного будинку чи ЛЕП
@If $O>1 @Break Не можна вибирати одночасно більше одного буднику чи ЛЕП
@Goto %ZnovuO1
%NextO1
@Map.SelectObject $ThisObj
@Map.SelectObject $ThisTochka
@Map.Selected.Copy
@FileNew
@Map.Paste
@Window.Refresh
@Map.SelectAll
Вигляд | Показати позначені
@Map.DeselectAll
;послідовно виділяємо спочатку точку, а потім будівлю чи ЛЕП
@Map.SelectLayer ID2000000036
$MC=@Map.Count
$N1=0
%Select1
$N1=$N1+1
$LID=@Map.Object[$N1].LayerID
@If ($LID=2000000036) then @Goto %Nextsel1
@Map.SelectObject $N1
%Nextsel1
@if $N1<$MC then @Goto %Select1
Вставка | Промеры и схема...
$P1=@Map.Object[3].Parameter[-1]
$P2=@Map.Object[4].Parameter[-1]
$P3=
$MC=@Map.Count
@If $MC=4 @Goto %NextP3
$P3=@Map.Object[5].Parameter[-1]
%NextP3
@Map.DeselectAll
@Map.SelectObject 3
@Map.SelectObject 4
@If $MC=4 @Goto %NextSel1
@Map.SelectObject 5
%NextSel1
@Map.Selected.Copy
$ThisMap=@ActivateMap
@CloseMap [$ThisMap]
@Map.Paste
;22222222222222222222222222222222
@Map.DeselectAll
%ZnovuT2
$Dialog=@Dialog.WaitBox Виберіть 2-ий закріплений межовий знак і натисніть "Продовжити"
@If $Dialog=0 @Break
$T=@Map.SelCount
$ThisTochka=@Map.SelectedObject
$nomer2=@Map.Selected.GetParameter id70003
$x2=@Map.Selected.GetParameter -4
$y2=@Map.Selected.GetParameter -3
@If $T=1 @Goto %NextT2
@If $T<1 @Dialog.Message Ви не вибрали жодного будинку чи ЛЕП
@If $T>1 @Break Не можна вибирати одночасно більше одного буднику чи ЛЕП
@Goto %ZnovuT2
%NextT2
$Storona2=@Dialog.Select Вкажіть в якій стороні знаходиться ця точка|північній|південній|західній|східній|північно-західній|північно-східній|південно-західній|південно-східній
%ZnovuO2
$Dialog=@Dialog.WaitBox Виділіть будинок чи ЛЕП, до яких буде прив'язаний другий меж.знак і натисніть "Продовжити"
@If $Dialog=0 @Break
$O=@Map.SelCount
$ThisObj=@Map.SelectedObject
$LID=@Map.Object[$ThisObj].LayerID
$ObjVyd2=кутів кам’яної будівлі
@If $LID=12 then $ObjVyd2=опор ЛЕП
@If $O=1 @Goto %NextO2
@If $O<1 @Dialog.Message Ви не вибрали жодного будинку чи ЛЕП
@If $O>1 @Break Не можна вибирати одночасно більше одного буднику чи ЛЕП
@Goto %ZnovuO2
%NextO2
@Map.SelectObject $ThisObj
@Map.SelectObject $ThisTochka
@Map.Selected.Copy
@FileNew
@Map.Paste
@Window.Refresh
@Map.SelectAll
Вигляд | Показати позначені
@Map.DeselectAll
;послідовно виділяємо спочатку точку, а потім будівлю чи ЛЕП
@Map.SelectLayer ID2000000036
$MC=@Map.Count
$N1=0
%Select2
$N1=$N1+1
$LID=@Map.Object[$N1].LayerID
@If ($LID=2000000036) then @Goto %Nextsel2
@Map.SelectObject $N1
%Nextsel2
@if $N1<$MC then @Goto %Select2
Вставка | Промеры и схема...
$P4=@Map.Object[3].Parameter[-1]
$P5=@Map.Object[4].Parameter[-1]
$P6=
$MC=@Map.Count
@If $MC=4 @Goto %NextP6
$P6=@Map.Object[5].Parameter[-1]
%NextP6
@Map.DeselectAll
@Map.SelectObject 3
@Map.SelectObject 4
@If $MC=4 @Goto %NextSel2
@Map.SelectObject 5
%NextSel2
@Map.Selected.Copy
$ThisMap=@ActivateMap
@CloseMap [$ThisMap]
@Map.Paste
;333333333333333333333333333333333
@Map.DeselectAll
%ZnovuT3
$Dialog=@Dialog.WaitBox Виберіть 3-ій закріплений межовий знак і натисніть "Продовжити"
@If $Dialog=0 @Break
$T=@Map.SelCount
$ThisTochka=@Map.SelectedObject
$nomer3=@Map.Selected.GetParameter id70003
$x3=@Map.Selected.GetParameter -4
$y3=@Map.Selected.GetParameter -3
@If $T=1 @Goto %NextT3
@If $T<1 @Dialog.Message Ви не вибрали жодного будинку чи ЛЕП
@If $T>1 @Break Не можна вибирати одночасно більше одного буднику чи ЛЕП
@Goto %ZnovuT3
%NextT3
$Storona3=@Dialog.Select Вкажіть в якій стороні знаходиться ця точка|північній|південній|західній|східній|північно-західній|північно-східній|південно-західній|південно-східній
%ZnovuO3
$Dialog=@Dialog.WaitBox Виділіть будинок чи ЛЕП, до яких буде прив'язаний другий меж.знак і натисніть "Продовжити"
@If $Dialog=0 @Break
$O=@Map.SelCount
$ThisObj=@Map.SelectedObject
$LID=@Map.Object[$ThisObj].LayerID
$ObjVyd3=кутів кам’яної будівлі
@If $LID=12 then $ObjVyd3=опор ЛЕП
@If $O=1 @Goto %NextO3
@If $O<1 @Dialog.Message Ви не вибрали жодного будинку чи ЛЕП
@If $O>1 @Break Не можна вибирати одночасно більше одного буднику чи ЛЕП
@Goto %ZnovuO3
%NextO3
@Map.SelectObject $ThisObj
@Map.SelectObject $ThisTochka
@Map.Selected.Copy
@FileNew
@Map.Paste
@Window.Refresh
@Map.SelectAll
Вигляд | Показати позначені
@Map.DeselectAll
;послідовно виділяємо спочатку точку, а потім будівлю чи ЛЕП
@Map.SelectLayer ID2000000036
$MC=@Map.Count
$N1=0
%Select3
$N1=$N1+1
$LID=@Map.Object[$N1].LayerID
@If ($LID=2000000036) then @Goto %Nextsel3
@Map.SelectObject $N1
%Nextsel3
@if $N1<$MC then @Goto %Select3
Вставка | Промеры и схема...
$P7=@Map.Object[3].Parameter[-1]
$P8=@Map.Object[4].Parameter[-1]
$P9=
$MC=@Map.Count
@If $MC=4 @Goto %NextP9
$P9=@Map.Object[5].Parameter[-1]
%NextP9
@Map.DeselectAll
@Map.SelectObject 3
@Map.SelectObject 4
@If $MC=4 @Goto %NextSel3
@Map.SelectObject 5
%NextSel3
@Map.Selected.Copy
$ThisMap=@ActivateMap
@CloseMap [$ThisMap]
@Map.Paste
;444444444444444444444444444444444
@Map.DeselectAll
%ZnovuT4
$Dialog=@Dialog.WaitBox Виберіть 4-ий закріплений межовий знак і натисніть "Продовжити"
@If $Dialog=0 @Break
$T=@Map.SelCount
$ThisTochka=@Map.SelectedObject
$nomer4=@Map.Selected.GetParameter id70003
$x4=@Map.Selected.GetParameter -4
$y4=@Map.Selected.GetParameter -3
@If $T=1 @Goto %NextT4
@If $T<1 @Dialog.Message Ви не вибрали жодного будинку чи ЛЕП
@If $T>1 @Break Не можна вибирати одночасно більше одного буднику чи ЛЕП
@Goto %ZnovuT4
%NextT4
$Storona4=@Dialog.Select Вкажіть в якій стороні знаходиться ця точка|північній|південній|західній|східній|північно-західній|північно-східній|південно-західній|південно-східній
%ZnovuO4
$Dialog=@Dialog.WaitBox Виділіть будинок чи ЛЕП, до яких буде прив'язаний другий меж.знак і натисніть "Продовжити"
@If $Dialog=0 @Break
$O=@Map.SelCount
$ThisObj=@Map.SelectedObject
@Map.SelectObject $ThisTochka
$LID=@Map.Object[$ThisObj].LayerID
$ObjVyd4=кутів кам’яної будівлі
@If $LID=12 then $ObjVyd4=опор ЛЕП
@If $O=1 @Goto %NextO4
@If $O<1 @Dialog.Message Ви не вибрали жодного будинку чи ЛЕП
@If $O>1 @Break Не можна вибирати одночасно більше одного буднику чи ЛЕП
@Goto %ZnovuO4
%NextO4
@Map.SelectObject $ThisObj
@Map.SelectObject $ThisTochka
@Map.Selected.Copy
@FileNew
@Map.Paste
@Window.Refresh
@Map.SelectAll
Вигляд | Показати позначені
@Map.DeselectAll
;послідовно виділяємо спочатку точку, а потім будівлю чи ЛЕП
@Map.SelectLayer ID2000000036
$MC=@Map.Count
$N1=0
%Select4
$N1=$N1+1
$LID=@Map.Object[$N1].LayerID
@If ($LID=2000000036) then @Goto %Nextsel4
@Map.SelectObject $N1
%Nextsel4
@if $N1<$MC then @Goto %Select4
Вставка | Промеры и схема...
$P10=@Map.Object[3].Parameter[-1]
$P11=@Map.Object[4].Parameter[-1]
$P12=
$MC=@Map.Count
@If $MC=4 @Goto %NextP12
$P12=@Map.Object[5].Parameter[-1]
%NextP12
@Map.DeselectAll
@Map.SelectObject 3
@Map.SelectObject 4
@If $MC=4 @Goto %NextSel4
@Map.SelectObject 5
%NextSel4
@Map.Selected.Copy
$ThisMap=@ActivateMap
@CloseMap [$ThisMap]
@Map.Paste
;створення підписів
@Map.SelectLayer ID2000000033
$result=@Calc - межовий знак $nomer1 закріплений в $Storona1  частині
@Map.Selected.ChangeParameter ID130003 $result
$result=@Calc межі земельної ділянки на відстані $P1 м, $P2 м
@Map.Selected.ChangeParameter ID130004 $result
$result=@Calc та $P3 м від $ObjVyd1 
@Map.Selected.ChangeParameter ID130005 $result
$result=@Calc - межовий знак $nomer2 закріплений в $Storona2 частині
@Map.Selected.ChangeParameter ID130006 $result
$result=@Calc межі земельної ділянки на відстані $P4 м, $P5 м
@Map.Selected.ChangeParameter ID130007 $result
$result=@Calc та $P6 м від $ObjVyd2 
@Map.Selected.ChangeParameter ID130008 $result
$result=@Calc - межовий знак $nomer3 закріплений в $Storona3  частині
@Map.Selected.ChangeParameter ID130009 $result
$result=@Calc межі земельної ділянки на відстані $P7 м, $P8 м
@Map.Selected.ChangeParameter ID130010 $result
$result=@Calc та $P9 м від $ObjVyd3 
@Map.Selected.ChangeParameter ID130011 $result
$result=@Calc - межовий знак $nomer4 закріплений в $Storona4 частині
@Map.Selected.ChangeParameter ID130012 $result
$result=@Calc межі земельної ділянки на відстані $P10 м, $P11 м
@Map.Selected.ChangeParameter ID130013 $result
$result=@Calc та $P12 м від $ObjVyd4 
@Map.Selected.ChangeParameter ID130014 $result
@Window.Refresh
;Каталог координат
@Map.DeselectAll
@Map.SelectLayer ID2000000034
$result=@Calc №                 X            Y
@Map.Selected.ChangeParameter ID130003 $result
$result=@Calc $nomer1     $x1     $y1
@Map.Selected.ChangeParameter ID130004 $result
$result=@Calc $nomer2     $x2     $y2
@Map.Selected.ChangeParameter ID130005 $result
$result=@Calc $nomer3     $x3     $y3
@Map.Selected.ChangeParameter ID130006 $result
$result=@Calc $nomer4     $x4     $y4
@Map.Selected.ChangeParameter ID130007 $result
;номерація
@Map.DeselectAll
@Map.SelectLayer ID2000000035
@Map.Selected.ChangeParameter ID130003 $nomer1
@Map.Selected.ChangeParameter ID130004 $nomer2
@Map.Selected.ChangeParameter ID130005 $nomer3
@Map.Selected.ChangeParameter ID130006 $nomer4
$result=$nomer1, $nomer2, $nomer3 та $nomer4
@Map.Selected.ChangeParameter ID130007 $result
@Window.Refresh
;видалення зайвих точок
$MC=@Map.Count
$N1=0
@Map.DeselectAll
%Pochatok
$N1=$N1+1
$LID=@Map.Object[$N1].LayerID
@If ($LID<>2000000036) then @Goto %Next
$P1=@Map.Object[$N1].Parameter[91]
@If $P1=$nomer1 then @Goto %Next
@If $P1=$nomer2 then @Goto %Next
@If $P1=$nomer3 then @Goto %Next
@If $P1=$nomer4 then @Goto %Next
@Map.SelectObject $N1
@Map.Selected.Delete
%Next
@if $N1<$MC then @Goto %Pochatok
;виділяємо ділянку і все інше, щоб потім пересунути чи вставити в іншому масштабі
@Map.DeselectAll
@Map.SelectLayer ID20000
$MC=@Map.Count
$N1=0
@Map.DeselectAll
%Pochatok2
$N1=$N1+1
$LID=@Map.Object[$N1].LayerID
@If ($LID<=30000) then @Goto %Next2
@If ($LID>=60999) then @Goto %Next2
@Map.SelectObject $N1
%Next2
@if $N1<$MC then @Goto %Pochatok2
@Map.SelectLayer ID12
Вибрати | Усі що примикають
;


Вложения:
.dmt [14.21 Кб]
Скачиваний: 2210

_________________
додатково про скрипти Digitals на www.digitals.at.ua
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 07 окт 2014 14:22 
Гуру
Гуру

Зарегистрирован:
02 апр 2013 15:28
Сообщения: 177
Чудова ідея!!! :D А як зробити можливість пропуску прив'язки межових знаків, наприклад якщо їх тільки два, а не чотири?????
І в якому шарі і який вигляд повинні мати ЛЕПи???? Вставляю як "лінії ЛЕП" показую вікно з помилкою, якщо два стовба то все нормально.


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

Зарегистрирован:
02 апр 2013 15:28
Сообщения: 177
Підкажіть як зробити щоб всі данні можна було заповнювати в одному діалоговому вікні, (адреса, ПІБ, цільове та ін. )


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

Зарегистрирован:
21 мар 2013 14:12
Сообщения: 94
Міцного здоров'я всім!

Цитата:
Підкажіть як зробити щоб всі данні можна було заповнювати в одному діалоговому вікні, (адреса, ПІБ, цільове та ін. )


Загляньте у закладку "Параметры" та прогляньте маску ввода, наприклад у параметру AD.
Тобто модифікувавши, або створивши новий, параметр, Ви отримаєте параметр із потрібними Вам тегами.
Пішов таким же шляхом, якщо цікаво побачити реалізацію - пропоную скачати Part1.exe з viewtopic.php?p=35765#35765.

Сподіваюсь, дана інформація Вам стане в нагоді.
Дякую.


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

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 798
Откуда: Львівська область
Написав сприпт, який автоматично визначає в якій стороні світу знаходиться межовий знак
Тут можна переглянути відео, як воно працює

Перед запуском відриваємо IN4
Код:
;Перевірка наявності відкритої карти
$CountMap=@MapCount
@If $CountMap=0 then @Break Для роботи скрипту потрібен IN4
$N=@Map.Count
@If $N=0 @Break На карті немає об'єктів
@Map.DeselectAll
@Map.SelectLayer ID20000
$N=@Map.SelCount
@If $N=0 @Break На карті немає ділянок
@Map.Selected.CreateCaptions -9 0 2 1 1 2 3
@Map.Copy
$SelObj=@Map.SelectedObject
$Range=@Map.Object[$SelObj].GetMinMax
$MinX=@StringPart 1 $Range
$MinX=%Library.ReplaceComma $MinX
$MinX=$MinX-1
$MaxX=@StringPart 4 $Range
$MaxX=%Library.ReplaceComma $MaxX
$MaxX=$MaxX+1
$CntrX=@Calc ($MinX+$MaxX)/2
$MinY=@StringPart 2 $Range
$MinY=%Library.ReplaceComma $MinY
$MinY=$MinY-1
$MaxY=@StringPart 5 $Range
$MaxY=%Library.ReplaceComma $MaxY
$MaxY=$MaxY+1
$CntrY=@Calc ($MinY+$MaxY)/2
;
$Ser1X=@Calc ($MaxX-$MinX)/3+$MinX
$Ser2X=@Calc ($MaxX-$MinX)/3+$Ser1X
$Ser1Y=@Calc ($MaxY-$MinY)/3+$MinY
$Ser2Y=@Calc ($MaxY-$MinY)/3+$Ser1Y
;
@FileNew Визначення сторони світу
@Map.Layers.SetAttributes 2 0 0 16777215 30 1 16777215 0 Courier_New 80 0 -2147483640
$P1=@Map.NewObject ID10000
@Map.Object[$P1].AddPoint $CntrX $CntrY
@Map.Object[$P1].AddPoint $Ser2X $MinY
@Map.Object[$P1].AddPoint $MaxX $MinY
@Map.Object[$P1].AddPoint $MaxX $Ser1Y
@Map.Object[$P1].AddPoint $CntrX $CntrY
@Map.Object[$P1].Delete 1
;
$P2=@Map.NewObject ID10000
@Map.Object[$P2].AddPoint $CntrX $CntrY
@Map.Object[$P2].AddPoint $MaxX $Ser1Y
@Map.Object[$P2].AddPoint $MaxX $Ser2Y
@Map.Object[$P2].AddPoint $CntrX $CntrY
@Map.Object[$P2].Delete 1
;
$P3=@Map.NewObject ID10000
@Map.Object[$P3].AddPoint $CntrX $CntrY
@Map.Object[$P3].AddPoint $MaxX $Ser2Y
@Map.Object[$P3].AddPoint $MaxX $MaxY
@Map.Object[$P3].AddPoint $Ser2X $MaxY
@Map.Object[$P3].AddPoint $CntrX $CntrY
@Map.Object[$P3].Delete 1
;
$P4=@Map.NewObject ID10000
@Map.Object[$P4].AddPoint $CntrX $CntrY
@Map.Object[$P4].AddPoint $Ser2X $MaxY
@Map.Object[$P4].AddPoint $Ser1X $MaxY
@Map.Object[$P4].AddPoint $CntrX $CntrY
@Map.Object[$P4].Delete 1
;
$P5=@Map.NewObject ID10000
@Map.Object[$P5].AddPoint $CntrX $CntrY
@Map.Object[$P5].AddPoint $Ser1X $MaxY
@Map.Object[$P5].AddPoint $MinX $MaxY
@Map.Object[$P5].AddPoint $MinX $Ser2Y
@Map.Object[$P5].AddPoint $CntrX $CntrY
@Map.Object[$P5].Delete 1
;
$P6=@Map.NewObject ID10000
@Map.Object[$P6].AddPoint $CntrX $CntrY
@Map.Object[$P6].AddPoint $MinX $Ser2Y
@Map.Object[$P6].AddPoint $MinX $Ser1Y
@Map.Object[$P6].AddPoint $CntrX $CntrY
@Map.Object[$P6].Delete 1
;
$P7=@Map.NewObject ID10000
@Map.Object[$P7].AddPoint $CntrX $CntrY
@Map.Object[$P7].AddPoint $MinX $Ser1Y
@Map.Object[$P7].AddPoint $MinX $MinY
@Map.Object[$P7].AddPoint $Ser1X $MinY
@Map.Object[$P7].AddPoint $CntrX $CntrY
@Map.Object[$P7].Delete 1
;
$P8=@Map.NewObject ID10000
@Map.Object[$P8].AddPoint $CntrX $CntrY
@Map.Object[$P8].AddPoint $Ser1X $MinY
@Map.Object[$P8].AddPoint $Ser2X $MinY
@Map.Object[$P8].AddPoint $CntrX $CntrY
@Map.Object[$P8].Delete 1
@Window.Refresh
@Map.Paste
@Map.SelectLayer ID20000
@Map.AddNodes 30
@Map.DeselectAll
Перевірка | Очистить удаленные объекты
@Map.SelectAll
Вигляд | Показати позначені
$MC=@Map.Count
$N=0
@Map.DeselectAll
%Pochatok
$N=$N+1
$LID=@Map.Object[$N].LayerID
@If ($LID=10000) then @Goto %Next
$NomerT=@Map.Object[$N].Parameter[91]
@Map.SelectObject $N
@Map.Selected.Cut
@Map.Paste
$ParentObj=@Map.ParentObject $N
@if $ParentObj=$P1 then @Dialog.Message Точка $NomerT знаходиться на північному заході ділянки
@if $ParentObj=$P2 then @Dialog.Message Точка $NomerT знаходиться на півночі ділянки
@if $ParentObj=$P3 then @Dialog.Message Точка $NomerT знаходиться на північному сході ділянки
@if $ParentObj=$P4 then @Dialog.Message Точка $NomerT знаходиться на сході ділянки
@if $ParentObj=$P5 then @Dialog.Message Точка $NomerT знаходиться на південному сході ділянки
@if $ParentObj=$P6 then @Dialog.Message Точка $NomerT знаходиться на півдні ділянки
@if $ParentObj=$P7 then @Dialog.Message Точка $NomerT знаходиться на південному заході ділянки
@if $ParentObj=$P8 then @Dialog.Message Точка $NomerT знаходиться на заході ділянки
@Map.DeselectAll
%Next
@if $N<$MC then @Goto %Pochatok


Последний раз редактировалось fendak 21 ноя 2014 10:28, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 19 ноя 2014 09:08 
Эксперт
Эксперт

Зарегистрирован:
29 окт 2012 12:15
Сообщения: 99
Откуда: Запорізька область, м. Кам'янка-Дніпровська
Ошибка скрипта в Скрипти [3]
$NomerT=@Map.Object[$N].Parameter[91]


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

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 798
Откуда: Львівська область
значиь у вас номери точок не у параметрі 91, а в якомусь іншому. Поміняйте у скрипті на свій. Замініть у цьому радяку:
$NomerT=@Map.Object[$N].Parameter[91]
91 на свій номер.
Для цього запустіть скрипт до помилки. Потім виділіть точку на межовому знаку і подивіться, який номер параметру, де вписаний номер точки.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 20 ноя 2014 08:21 
Эксперт
Эксперт

Зарегистрирован:
29 окт 2012 12:15
Сообщения: 99
Откуда: Запорізька область, м. Кам'янка-Дніпровська
fendak писал(а):
значиь у вас номери точок не у параметрі 91, а в якомусь іншому. Поміняйте у скрипті на свій. Замініть у цьому радяку:
$NomerT=@Map.Object[$N].Parameter[91]
91 на свій номер.
Для цього запустіть скрипт до помилки. Потім виділіть точку на межовому знаку і подивіться, який номер параметру, де вписаний номер точки.

У мене номер 85, його і поставив, помилка зникла але сторони як на відєо не сворює.
Я далекій від скриптів, але дуже всім вдячен за кожен викладений скрипт. :D


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

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 798
Откуда: Львівська область
ТОВ Аспект писал(а):
... але сторони як на відєо не сворює...

Відредагував скрипт. Вже повинно все працювати.
Не працювало на тих комп'ютерах, де у Windows десятковим роздільником була не крапка, а кома. Тепер без різниці.

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


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

Зарегистрирован:
29 окт 2012 12:15
Сообщения: 99
Откуда: Запорізька область, м. Кам'янка-Дніпровська
fendak писал(а):
ТОВ Аспект писал(а):
... але сторони як на відєо не сворює...

Відредагував скрипт. Вже повинно все працювати.
Не працювало на тих комп'ютерах, де у Windows десятковим роздільником була не крапка, а кома. Тепер без різниці.

Тепер працює! Дякую за увагу :lol: .


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

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 798
Откуда: Львівська область
обновіть програму Digitals

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


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

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 798
Откуда: Львівська область
Скрипт працює з функцією Вставка-Проміри і схема, і вставляє її, автоматично підтверджуючи.
Але зверніть увагу, що якщо Ви перед цим користувалися цією функцією і замість Промірів використовували Схему вимірів, то вам перед запуском скрипту необхідно знову виставити функцію на Проміри.

І при цьому запустити функцію, а не просто вибрати, щоб вона обновилася.
Тобто, малюєте два об'єкти і створюєте проміри-проміри/тільки до видимих-ОК

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 17 мар 2015 14:39 
Эксперт
Эксперт

Зарегистрирован:
21 мар 2013 14:12
Сообщения: 94
Міцного здоров'я всім!

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

Маємо \Path\Файл.txt наступного вмісту:

Стовпчик1 Стовпчик2 Стовпчик3 СтовпчикN+1

Значення11 Значення21 Значення31 ..............
Значення12 Значення22 Значення32 ..............
Значення13 Значення23 Значення33 ..............
Значення1+N Значення2+N Значення3+N ..............

Нехай значенням Параметра1 об'єкта карти є величина "Значення13" (наприклад - Нська сільська рада, що міститься у файлі Файл.txt). А нам необхідно передати у Параметр2, нехай цього ж об'єкту, значення КОАТУУ, котре теж міститься у Файл.txt, відповідно у "Значення33".

------------Зберігаємо нижченаведене, як бібліотеку d:\Digitals\Library\Назва.dsf-----------------
;---Const----------------------------------------------
$Tab=@Calc Char(9)
$Tab=@DequoteText $Tab
$ProgramFolder=@ProgramFolder
;---InputData--------------------------------------------
$InputValue=$PARAMETERS
$ListName=@StringPart 1,$InputValue
$ColumnNumb=@StringPart 2,$InputValue
$FindWhat=@StringPart 3,$InputValue
$ResColumnNumb=@StringPart 4,$InputValue
;---Find&Result-----------------------------------------------
$List=@Text[1].Load $ProgramFolder\Lists\$ListName.txt
$ListCount=@Text[1].Count
$i=2
%Begin
$Line=@Text[1].Line[$i]
$ListElement=@StringPart $ColumnNumb$Tab$Line
@If $FindWhat=$ListElement then @Goto %Find
$i=$i+1
@If $i<=$ListCount then @Goto %Begin
%Find
$OutValue=@StringPart $ResColumnNumb$Tab$Line
$RESULT=$OutValue
-------------------------Кінець бібліотеки-------------

А у тілі основного скрипту пишемо:
-------------------------------------
$FindWhat=Нська сільська рада
$FindValue=%Library.Назва Файл,1,$FindWhat,3
@Map.Object[N].Parameter[N]=$FindValue
-------------------------------------
Файл - назва текстового файлу (без розширення);
1 - номер стовпця текстового файлу, у котрому знаходиться значення, на основі якого будемо шукати (на прикладі - Нська сільська рада);
$FindWhat - відповідно, саме значення, на основі котрого шукатимемо;
3 - номер стовпця у текстовому файлі, де знаходиться саме потрібне нам значення (на прикладі - КОАТУУ).

Бібліотека працюватиме тільки з табульованими списками, тобто розділювач стовпчиків - tab (дев'ять пробілів).

Дякую.


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

Зарегистрирован:
18 июл 2011 09:16
Сообщения: 43
Скачал обновления и прочитал, что добавили интересную функцию "@Map.CreateLayout". Сначала попробовал сам разобраться, но выдавало мне чистый лист. Нашел на форуме пример использования этой функции, тоже самое, формирует пустой лист. Может что делаю не так?
Пример:
$SO=@Map.SelectedObject
@if $SO=0 then @Break Нужно пометить объект
$X=@Map.Object[$SO].Parameter[-4]
$Y=@Map.Object[$SO].Parameter[-3]
$PP=@ProgramPath
$FN=$PP\Pictures\Викопіювання.bmp
@Map.CreateLayout $X $Y 605 605 0 300 8 $FN
@Run $FN

А в "сервис\документы" - вообще такой функции или шаблона не нашел.
После обновления в папке "С:\Digitals\Update\Templates" - пусто, "С:\Digitals\Update\Favorites" - пусто. То-есть: никаких шаблонов скачано не было!


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

Зарегистрирован:
18 апр 2007 11:55
Сообщения: 2299
Откуда: Vinnytsia
Скачайте шаблоны из сообщения. Поместите их в папку Digitals\Templates
Автоматическое обновление не затрагивает карты/шаблоны/справочники. Исключения: datums.ini и xmlnormal.dmf

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


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

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


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

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


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

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