Аналитика http://www.geosystema.net/forum/ |
|
Библиотека полезных скриптов http://www.geosystema.net/forum/viewtopic.php?f=1&t=2539 |
Страница 5 из 15 |
Автор: | fendak [ 03 окт 2014 23:03 ] | ||
Заголовок сообщения: | Re: Библиотека полезных скриптов | ||
Скрипт, який формує Список межових знаків, переданих на зберігання. Коротко про суть роботи. Формується карта з 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 Вибрати | Усі що примикають ;
|
Автор: | klaid [ 07 окт 2014 14:22 ] |
Заголовок сообщения: | Re: Библиотека полезных скриптов |
Чудова ідея!!! А як зробити можливість пропуску прив'язки межових знаків, наприклад якщо їх тільки два, а не чотири????? І в якому шарі і який вигляд повинні мати ЛЕПи???? Вставляю як "лінії ЛЕП" показую вікно з помилкою, якщо два стовба то все нормально. |
Автор: | klaid [ 11 ноя 2014 01:46 ] |
Заголовок сообщения: | Re: Библиотека полезных скриптов |
Підкажіть як зробити щоб всі данні можна було заповнювати в одному діалоговому вікні, (адреса, ПІБ, цільове та ін. ) |
Автор: | Пупкин [ 12 ноя 2014 12:14 ] |
Заголовок сообщения: | Re: Библиотека полезных скриптов |
Міцного здоров'я всім! Цитата: Підкажіть як зробити щоб всі данні можна було заповнювати в одному діалоговому вікні, (адреса, ПІБ, цільове та ін. ) Загляньте у закладку "Параметры" та прогляньте маску ввода, наприклад у параметру AD. Тобто модифікувавши, або створивши новий, параметр, Ви отримаєте параметр із потрібними Вам тегами. Пішов таким же шляхом, якщо цікаво побачити реалізацію - пропоную скачати Part1.exe з viewtopic.php?p=35765#35765. Сподіваюсь, дана інформація Вам стане в нагоді. Дякую. |
Автор: | fendak [ 18 ноя 2014 20:07 ] |
Заголовок сообщения: | Re: Библиотека полезных скриптов |
Написав сприпт, який автоматично визначає в якій стороні світу знаходиться межовий знак Тут можна переглянути відео, як воно працює Перед запуском відриваємо 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 |
Автор: | ТОВ Аспект [ 19 ноя 2014 09:08 ] |
Заголовок сообщения: | Re: Библиотека полезных скриптов |
Ошибка скрипта в Скрипти [3] $NomerT=@Map.Object[$N].Parameter[91] |
Автор: | fendak [ 19 ноя 2014 10:26 ] |
Заголовок сообщения: | Re: Библиотека полезных скриптов |
значиь у вас номери точок не у параметрі 91, а в якомусь іншому. Поміняйте у скрипті на свій. Замініть у цьому радяку: $NomerT=@Map.Object[$N].Parameter[91] 91 на свій номер. Для цього запустіть скрипт до помилки. Потім виділіть точку на межовому знаку і подивіться, який номер параметру, де вписаний номер точки. |
Автор: | ТОВ Аспект [ 20 ноя 2014 08:21 ] |
Заголовок сообщения: | Re: Библиотека полезных скриптов |
fendak писал(а): значиь у вас номери точок не у параметрі 91, а в якомусь іншому. Поміняйте у скрипті на свій. Замініть у цьому радяку: $NomerT=@Map.Object[$N].Parameter[91] 91 на свій номер. Для цього запустіть скрипт до помилки. Потім виділіть точку на межовому знаку і подивіться, який номер параметру, де вписаний номер точки. У мене номер 85, його і поставив, помилка зникла але сторони як на відєо не сворює. Я далекій від скриптів, але дуже всім вдячен за кожен викладений скрипт. |
Автор: | fendak [ 21 ноя 2014 10:32 ] |
Заголовок сообщения: | Re: Библиотека полезных скриптов |
ТОВ Аспект писал(а): ... але сторони як на відєо не сворює... Відредагував скрипт. Вже повинно все працювати. Не працювало на тих комп'ютерах, де у Windows десятковим роздільником була не крапка, а кома. Тепер без різниці. |
Автор: | ТОВ Аспект [ 21 ноя 2014 11:24 ] |
Заголовок сообщения: | Re: Библиотека полезных скриптов |
fendak писал(а): ТОВ Аспект писал(а): ... але сторони як на відєо не сворює... Відредагував скрипт. Вже повинно все працювати. Не працювало на тих комп'ютерах, де у Windows десятковим роздільником була не крапка, а кома. Тепер без різниці. Тепер працює! Дякую за увагу . |
Автор: | fendak [ 24 ноя 2014 13:33 ] |
Заголовок сообщения: | Re: Библиотека полезных скриптов |
обновіть програму Digitals |
Автор: | fendak [ 25 ноя 2014 12:04 ] |
Заголовок сообщения: | Re: Библиотека полезных скриптов |
Скрипт працює з функцією Вставка-Проміри і схема, і вставляє її, автоматично підтверджуючи. Але зверніть увагу, що якщо Ви перед цим користувалися цією функцією і замість Промірів використовували Схему вимірів, то вам перед запуском скрипту необхідно знову виставити функцію на Проміри. І при цьому запустити функцію, а не просто вибрати, щоб вона обновилася. Тобто, малюєте два об'єкти і створюєте проміри-проміри/тільки до видимих-ОК |
Автор: | Пупкин [ 17 мар 2015 14:39 ] |
Заголовок сообщения: | Re: Библиотека полезных скриптов |
Міцного здоров'я всім! Сподіваюсь, що даний скрипт таки буде корисним. Допомагає працювати із текстовими файлами, знаходячи відповідні значення. Конкретніше. Маємо \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 (дев'ять пробілів). Дякую. |
Автор: | Vaho [ 13 май 2015 13:47 ] |
Заголовок сообщения: | Re: Библиотека полезных скриптов |
Скачал обновления и прочитал, что добавили интересную функцию "@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" - пусто. То-есть: никаких шаблонов скачано не было! |
Автор: | Dmitry_Zolotar [ 13 май 2015 16:00 ] |
Заголовок сообщения: | Re: Библиотека полезных скриптов |
Скачайте шаблоны из сообщения. Поместите их в папку Digitals\Templates Автоматическое обновление не затрагивает карты/шаблоны/справочники. Исключения: datums.ini и xmlnormal.dmf |
Страница 5 из 15 | Часовой пояс: UTC + 2 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |