Скрипт приховує частину підписів, показуючи, наприклад, тільки кожний п'ятий підпис точки
;іd шару об'єкта з підписами
$Id=70005
;параметр з підписом
$ParamIndex=-9
;Крок підписів (залишити видимим кожний $Koef-ий підпис)
$Krok=5
;
$PidpysyNovi=
$VBar=@Calc Char(124)
$VBar=@DequoteText $VBar
@Map.DeselectAll
@Map.SelectLayer id$Id
$SO=@Map.SelectedObject
@if $SO=0 then @Break Не знайдено ділянку в шарі id$Id
$Pidpysy=@Map.Object[$SO].Caption[$ParamIndex]
$Pidpysy=@StringPart 5 $Pidpysy
$PartCount=@StringPartCount $VBar $Pidpysy
$N=0
%Start
$N=$N+1
$Cyfra=@StringPart $N$VBar$Pidpysy
@if $Cyfra=385 then $Cyfra=285
$Koef=$N/$Krok
$Koef=@StringPart 2.$Koef
$Koef=@Calc Copy("$Koef","1","1")
$Koef=@DequoteText $Koef
$CyfraNova=385
@if $N=1 then $CyfraNova=$Cyfra
@if $Koef= then $CyfraNova=$Cyfra
$PidpysyNovi=$PidpysyNovi $CyfraNova
@if $N=1 then $PidpysyNovi=$CyfraNova
@if $N<$PartCount then @Goto %Start
$PidpysyNovi=@Calc replace("$PidpysyNovi"," ","$VBar")
$PidpysyNovi=@DequoteText $PidpysyNovi
@Map.Object[$SO].Caption[$ParamIndex] * * * * $PidpysyNovi
@Map.RefreshObject $SO
Зверніть увагу, що даний скрипт може оброблювати об'єкти, в яких не більше, як (приблизно) 350 точок. Більші об'єкти перед запуском скрипту треба розділити на частини і копіювати для обробки на нову сторінку. |