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

Все про скрипти
http://www.geosystema.net/forum/viewtopic.php?f=1&t=2809
Страница 57 из 83

Автор:  fendak [ 23 ноя 2017 00:33 ]
Заголовок сообщения:  Re: Все про скрипти

YuretsGr писал(а):
Як намалювати рамку реквізитів ОФ скриптами?

@Map.SelectAll
$S=@Map.Selected.GetMinMax
$X1=@StringPart 1 $S
$Y1=@StringPart 2 $S
$X2=@StringPart 4 $S
$Y2=@StringPart 2 $S
$X3=@StringPart 4 $S
$Y3=@StringPart 5 $S
$X4=@StringPart 1 $S
$Y4=@StringPart 5 $S
$FrameObj=@Map.NewObject ID70000
@Map.Object[$FrameObj].Point[1] $X1 $Y1
@Map.Object[$FrameObj].AddPoint $X2 $Y2
@Map.Object[$FrameObj].AddPoint $X3 $Y3
@Map.Object[$FrameObj].AddPoint $X4 $Y4
@Map.Object[$FrameObj].AddPoint $X1 $Y1
@Map.RefreshObject $FrameObj
@Map.DeselectAll
@Map.SelectObject $FrameObj
@SendChars 5<CR>
[ Операції з об'єктами.Розширити/стиснути ]
@Map.DeselectAll
@Map.SelectObject $FrameObj
@Map.Selected.Delete


Щоб передати значення параметрів в ексель
можна використовувати меню Сервіс - Звіт. Але там буде експортуватися разом з тегами.
можна використовувати спец. скрипт-модуль "Документація" (див. відео Модуль Документація та MS Word)

Автор:  fendak [ 25 дек 2017 22:22 ]
Заголовок сообщения:  Re: Все про скрипти

Доброго дня. Чи не можна зробити так, щоб функція @Map.GetPublicMapQuarterInfo $X $Y, коли відсутній доступ до інтернету, не працює Публічна кадастрова карта чи просто ділянка виходить за межі України, не виводила помилку, а повертала значення "0"?

Чи інший варіант - додати функцію, яка б перевіряла наявність доступу до ПКК

Вложения:
2017-12-25_221931.png
2017-12-25_221931.png [ 9.25 Кб | Просмотров: 7978 ]

Автор:  voha [ 25 дек 2017 23:00 ]
Заголовок сообщения:  Re: Все про скрипти

fendak писал(а):
Доброго дня. Чи не можна зробити так, щоб функція @Map.GetPublicMapQuarterInfo $X $Y, коли відсутній доступ до інтернету, не працює Публічна кадастрова карта чи просто ділянка виходить за межі України, не виводила помилку, а повертала значення "0"?
Як варіант - обробка помилки:
Код:
@CheckErrors 0
$Res=@Map.GetPublicMapQuarterInfo $X $Y
@CheckErrors 1
;;перевірка, чи отримані дані з сервіса ПКК
$YesError=@Calc Pos("<ERROR>","$Res")
@If $YesError=0 then @Goto %BeingLoadedInfo
;;інформація про кадквартал не отримана з сервісу ПКК
@Break Відсутнє з'єднання з мережею Internet або сервіс ПКК не працює
;;отримана інформація з ПКК
%BeingLoadedInfo

Автор:  fendak [ 28 дек 2017 19:33 ]
Заголовок сообщения:  Re: Все про скрипти

Дякую, voha. Це дійсно варіант!

Автор:  Sergey Oleynik [ 29 дек 2017 11:03 ]
Заголовок сообщения:  Re: Все про скрипти

fendak писал(а):
Доброго дня. Чи не можна зробити так, щоб функція @Map.GetPublicMapQuarterInfo $X $Y, коли відсутній доступ до інтернету, не працює Публічна кадастрова карта чи просто ділянка виходить за межі України, не виводила помилку, а повертала значення "0"?

Переробили функції так, щоб вони повертали не помилку а пусту строку.

Автор:  voha [ 29 дек 2017 14:03 ]
Заголовок сообщения:  Re: Все про скрипти

Приємно, коли підтримка в живому режимі. Чемно дякуємо за підтримку.

Автор:  cvchiz [ 05 янв 2018 18:55 ]
Заголовок сообщения:  Re: Все про скрипти

Очередной вопрос. Необходимо установить в скрипте условие - "если датум in4 - msk 73, то ...." Какой командой это можно сделать?

Автор:  fendak [ 05 янв 2018 19:35 ]
Заголовок сообщения:  Re: Все про скрипти

cvchiz писал(а):
Необходимо установить в скрипте условие - "если датум in4 - msk 73, то ...." Какой командой это можно сделать?

$D=@Map.Datum
@if $D=SK63 then ...
@if $D=MSK-73 then ...

Автор:  cvchiz [ 05 янв 2018 20:08 ]
Заголовок сообщения:  Re: Все про скрипти

fendak писал(а):
cvchiz писал(а):
Необходимо установить в скрипте условие - "если датум in4 - msk 73, то ...." Какой командой это можно сделать?

$D=@Map.Datum
@if $D=SK63 then ...
@if $D=MSK-73 then ...

Благодарю.

Автор:  Denidz [ 31 янв 2018 21:50 ]
Заголовок сообщения:  Re: Все про скрипти

Добрый день. Можно ли с помощью скрипта делать подписи длин сторон полигона, только те которые отвечают какому-либо условию? например выводить только те длины которые больше 1 м. В командах связанных с caption вроде бы ничего подобного нет.

Автор:  Руслан Пархуць [ 01 фев 2018 18:58 ]
Заголовок сообщения:  Re: Все про скрипти

Denidz писал(а):
Добрый день. Можно ли с помощью скрипта делать подписи длин сторон полигона, только те которые отвечают какому-либо условию? например выводить только те длины которые больше 1 м. В командах связанных с caption вроде бы ничего подобного нет.

Можна, але iз застосуванням всiх вiдомих менi можливостей програми :) В даному випадку лiнiї L < 20 не пiдписуються.
Код:
$Sel=@Map.SelCount
@if $Sel=0 then @break Виберiть елементи
$Obj=@Map.NextSelected
$C1=@Calc Char(1)
$C2=@Calc Char(2)
$C3=@Calc Char(3)
$C1=@DequoteText $C1
$C2=@DequoteText $C2
$C3=@DequoteText $C3
;
$Buf=@Map.GetObjectParamBuf $Obj
; пошук шару для довжин лiнiй -10
$Pos=@Calc Pos($C1-10$C3,"$Buf")
@If $Pos=0 Then @Goto %ErrCaptionShow
$BufS=@Calc Copy("$Buf",1,$Pos-1)
$Buf=@Calc Delete("$Buf",1,$Pos-1)
$BufS=@DequoteText $BufS
$Buf=@DequoteText $Buf
;
$Pos=@Calc Pos("L257","$Buf")
$Pos=@DequoteText $Pos
@If $Pos=0 Then @Goto %ErrCaptionShow
$Pos=$Pos+1
;
$Count=@Map.Object[$Obj].Count
$I=1
%Cycle
$LineLen=@Map.Object[$Obj].LineLength[$I]
;-------------------------------------------------------------------------------
;                   умова(и)
;-------------------------------------------------------------------------------
@If ($LineLen>20) Then @Goto %Next
;-------------------------------------------------------------------------------
$Buf=@Calc Insert(Delete("$Buf",$Pos,3),"385",$Pos)
$Buf=@DequoteText $Buf
%Next
$Pos=$Pos+4
;
$I=$I+1
@If $I<$Count Then @Goto %Cycle
$Buf=@Calc <addword>$BufS$Buf$C2
$Buf=@Calc Replace("$Buf","<addword>","$C1")
;
$Buf=@DequoteText $Buf
;
@Map.SetObjectParamBuf $Obj|$Buf
@Map.RefreshObject $Obj
@Goto %End
;
%ErrCaptionShow
@Dialog.Message Створiть пiдписи довжин лiнiй для об'єкту
%End

Автор:  Denidz [ 02 фев 2018 14:22 ]
Заголовок сообщения:  Re: Все про скрипти

Вот спасибо огромное за труд, но не работает :D может версия у меня старая (от 15.06.2016 г.). Зато мне такие возможности программы были не известны, сам бы я такое не написал!

Автор:  Руслан Пархуць [ 02 фев 2018 21:51 ]
Заголовок сообщения:  Re: Все про скрипти

Denidz писал(а):
Вот спасибо огромное за труд, но не работает :D может версия у меня старая (от 15.06.2016 г.). Зато мне такие возможности программы были не известны, сам бы я такое не написал!

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

Автор:  aisa-soft [ 05 фев 2018 21:09 ]
Заголовок сообщения:  Re: Все про скрипти

Доброго дня!
//-----------------
@Map.AddNodes ID70001 1
Добавляет пикеты в узлы помеченных объектов. Mode соответствует выбору в окне Добавить узлы (1-7).

Было бы не плохо, если бы была возможность добавить только отсутствующие пикеты в слое (допустим в ID70001) [@Map.SelectLayer ID70001 (1-8) (0/1)].

Автор:  aisa-soft [ 05 фев 2018 21:35 ]
Заголовок сообщения:  Re: Все про скрипти

Как, с помощью скрипта разбить линию?

Вложения:
.PNG
.PNG [ 10.4 Кб | Просмотров: 7598 ]

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