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

Нужна помощь
http://www.geosystema.net/forum/viewtopic.php?f=1&t=2933
Страница 17 из 17

Автор:  Виталий [ 02 окт 2017 13:05 ]
Заголовок сообщения:  Re: Нужна помощь

Добрый день. Подскажите пожалуйста.
Есть несколько меж.знаків. Скажем 70 штук. Они привязані к трем пунктам ДГМ. Как с помощью скрипта прописать в каждом меж.знаке расстояния от каждого пункта ДГМ в отдельный параметр.
Спасибо.

Автор:  Руслан Пархуць [ 03 окт 2017 00:40 ]
Заголовок сообщения:  Re: Нужна помощь

Виталий писал(а):
Добрый день. Подскажите пожалуйста.
Есть несколько меж.знаків. Скажем 70 штук. Они привязані к трем пунктам ДГМ. Как с помощью скрипта прописать в каждом меж.знаке расстояния от каждого пункта ДГМ в отдельный параметр.
Спасибо.

В даному прикладi вiдстанi записуються в лiнiйний об'єкт 1 в параметр 2 та в параметер 2 шару межового знаку (вiдстань1,вiдстань2,вiдстань3).

Код:
; Лiнiйний шар для промалювання промiрiв 
$Layer=1
; Параметр, в який записується довжина лiнiї
$Param=2
;
@Map.DeselectAll
%PointSel
$PointSel=@Dialog.WaitBox Виберiть межовi знаки
$PntCount=@Map.SelCount
@If $PntCount=0 Then @Goto %PointSel
$PointSel=@Map.Selected.List
; заносим список МЗ в масив 1
@Text[1].Text=$PointSel
@Map.DeselectAll
%DGMSel
$DGMSel=@Dialog.WaitBox Виберiть пункти ДГМ
$DGMCount=@Map.SelCount
@If $DGMCount=0 Then @Goto %DGMSel
$DGMSel=@Map.Selected.List
; заносим список пунктiв ДГМ в масив 2
@Text[2].Text=$DGMSel
;
;
; Цикл по межових знаках
%CyclePoint
$PntObj=@Text[1].Line[$PntCount]
$Pnt=@Map.Object[$PntObj].Point[1]
$PP=%Library.ReplaceComma $Pnt
$Pnt2X=@StringPart 1 $PP
$Pnt2Y=@StringPart 2 $PP
;
$Count=$DGMCount
$Text=
; Цикл по пунктах ДГМ
%CycleDGM
$DGMObj=@Text[2].Line[$Count]
$DGMPt=@Map.Object[$DGMObj].Point[1]
$PP=%Library.ReplaceComma $DGMPt
$Pnt1X=@StringPart 1 $PP
$Pnt1Y=@StringPart 2 $PP
;
$Dist=@Calc sqrt(($Pnt1X-$Pnt2X)^2+($Pnt1Y-$Pnt2Y)^2)
$N=@Map.AddObject 0|1|$Layer|2|0 $DGMPt|0 $Pnt|1|$Layer|1|$Param $Dist
$Dist=@RoundTo $Dist 4
@If $Text= Then $Text=$Dist Else $Text=$Text,$Dist
;
$Count=$Count-1
@If $Count>0 Then @Goto %CycleDGM
; Запис в параметер МЗ
@Map.Object[$PntObj].Parameter[$Param]=$Text
;
$PntCount=$PntCount-1
@If $PntCount>0 Then @Goto %CyclePoint
;

Автор:  Виталий [ 03 окт 2017 07:58 ]
Заголовок сообщения:  Re: Нужна помощь

Руслан Пархуць писал(а):
Виталий писал(а):
Добрый день. Подскажите пожалуйста.
Есть несколько меж.знаків. Скажем 70 штук. Они привязані к трем пунктам ДГМ. Как с помощью скрипта прописать в каждом меж.знаке расстояния от каждого пункта ДГМ в отдельный параметр.
Спасибо.

В даному прикладi вiдстанi записуються в лiнiйний об'єкт 1 в параметр 2 та в параметер 2 шару межового знаку (вiдстань1,вiдстань2,вiдстань3).

Код:
; Лiнiйний шар для промалювання промiрiв 
$Layer=1
; Параметр, в який записується довжина лiнiї
$Param=2
;
@Map.DeselectAll
%PointSel
$PointSel=@Dialog.WaitBox Виберiть межовi знаки
$PntCount=@Map.SelCount
@If $PntCount=0 Then @Goto %PointSel
$PointSel=@Map.Selected.List
; заносим список МЗ в масив 1
@Text[1].Text=$PointSel
@Map.DeselectAll
%DGMSel
$DGMSel=@Dialog.WaitBox Виберiть пункти ДГМ
$DGMCount=@Map.SelCount
@If $DGMCount=0 Then @Goto %DGMSel
$DGMSel=@Map.Selected.List
; заносим список пунктiв ДГМ в масив 2
@Text[2].Text=$DGMSel
;
;
; Цикл по межових знаках
%CyclePoint
$PntObj=@Text[1].Line[$PntCount]
$Pnt=@Map.Object[$PntObj].Point[1]
$PP=%Library.ReplaceComma $Pnt
$Pnt2X=@StringPart 1 $PP
$Pnt2Y=@StringPart 2 $PP
;
$Count=$DGMCount
$Text=
; Цикл по пунктах ДГМ
%CycleDGM
$DGMObj=@Text[2].Line[$Count]
$DGMPt=@Map.Object[$DGMObj].Point[1]
$PP=%Library.ReplaceComma $DGMPt
$Pnt1X=@StringPart 1 $PP
$Pnt1Y=@StringPart 2 $PP
;
$Dist=@Calc sqrt(($Pnt1X-$Pnt2X)^2+($Pnt1Y-$Pnt2Y)^2)
$N=@Map.AddObject 0|1|$Layer|2|0 $DGMPt|0 $Pnt|1|$Layer|1|$Param $Dist
$Dist=@RoundTo $Dist 4
@If $Text= Then $Text=$Dist Else $Text=$Text,$Dist
;
$Count=$Count-1
@If $Count>0 Then @Goto %CycleDGM
; Запис в параметер МЗ
@Map.Object[$PntObj].Parameter[$Param]=$Text
;
$PntCount=$PntCount-1
@If $PntCount>0 Then @Goto %CyclePoint
;


Огоромное спасибо!!!!!!!!!!

Автор:  petrogeo [ 15 окт 2017 20:29 ]
Заголовок сообщения:  Re: Нужна помощь

В меню Группа яка може бути максимальна кількість груп?
при відкритті карти в меню Группа відображається 9 груп об'єктів, а має бути 20. Решта групп відображаються після команди Группа|Создать...
І чому програма зберігає перші 9 груп з назвою, а наступні показує з назвою: Group 10, Group 11, ...

Вложения:
.jpg
.jpg [ 101.98 Кб | Просмотров: 394 ]

Автор:  fendak [ 17 окт 2017 18:38 ]
Заголовок сообщения:  Re: Нужна помощь

petrogeo писал(а):
В меню Группа яка може бути максимальна кількість груп?
при відкритті карти в меню Группа відображається 9 груп об'єктів, а має бути 20. Решта групп відображаються після команди Группа|Создать...
І чому програма зберігає перші 9 груп з назвою, а наступні показує з назвою: Group 10, Group 11, ...


це у вас, мабуть, якийсь глюк програми. Я створюю і 30 груп (більше просто не пробував), зберігаю карту, відкриваю і назви груп зберігаються. Правда, в мене назви груп не такі довгі, як у вас. Можливо, в цьому справа.

Автор:  Anton13 [ 30 окт 2017 11:02 ]
Заголовок сообщения:  Re: Нужна помощь

Приветствую всех! Может кто-то сталкивался с такой проблемой (шрифт на ярлыках) и знает решение? Буду благодарен. (обнуление GED.ini не увенчалось успехом)

Вложения:
.JPG
.JPG [ 42.83 Кб | Просмотров: 295 ]

Автор:  Руслан Пархуць [ 31 окт 2017 00:38 ]
Заголовок сообщения:  Re: Нужна помощь

Anton13 писал(а):
Приветствую всех! Может кто-то сталкивался с такой проблемой (шрифт на ярлыках) и знает решение? Буду благодарен. (обнуление GED.ini не увенчалось успехом)
Яка операцiйна система стоїть? Попробуйте цей варiант.

Автор:  Anton13 [ 31 окт 2017 10:31 ]
Заголовок сообщения:  Re: Нужна помощь

Руслан Пархуць писал(а):
Anton13 писал(а):
Приветствую всех! Может кто-то сталкивался с такой проблемой (шрифт на ярлыках) и знает решение? Буду благодарен. (обнуление GED.ini не увенчалось успехом)
Яка операцiйна система стоїть? Попробуйте цей варiант.

Спасибо за отклик! Стоит Win 7 32bit. Помогло следующее - "переименовать файлы «c_1252.nls….. c_1255.nls». добавьте к ним в самый конец «bak» Должно выглядеть так c_1252.nls.bak"

Автор:  Виталий [ 02 ноя 2017 08:43 ]
Заголовок сообщения:  Re: Нужна помощь

Доброго дня. Як можно цей скритп застосуватидля всіх горизонталей. а нае тільки для одної.
Скрипт, який створює підписи для горизонталей

;параметр для якого виносяться підписи
$Param=-2
;крок підписів вздовж контура об'єкта в метрах
$Step=25
;зміщення підписів по вертикалі
$CaptionShift=0
$MapCount=@MapCount
@if $MapCount=0 then @Break
$N=@Map.SelCount
@If $N<1 @Break Виділіть об'єкт для створення підпису
$N=@Map.SelectedObject
;периметр об'єкта
$Len=@Map.Object[$N].Parameter[-1]
;виділяємо першу частину, якщо включено "Показывать длины с углами"
$Len=@StringPart 1 $Len
$Pos=0
;початок циклу
%Start
;виносимо підпис на відстань $Pos від початку об'єкта
;NoUpsideDown - уникаємо перевернутих підписів
@Map.Object[$N].CreateCaptionAlongContour $Param $Pos $CaptionShift NoUpsideDown
$Pos=$Pos+$Step
@if $Pos<$Len then @Goto %Start
@Map.Parameters.SetAttributes -2 0 5 0 10 0 16777215 0 Arial 60 0 -16777208
@Map.RefreshObject $N
@Window.Refresh
Дякую

Автор:  Руслан Пархуць [ 02 ноя 2017 11:43 ]
Заголовок сообщения:  Re: Нужна помощь

Виталий писал(а):
Доброго дня. Як можно цей скритп застосуватидля всіх горизонталей. а нае тільки для одної.
Скрипт, який створює підписи для горизонталей
Код:
;параметр для якого виносяться підписи
$Param=-2
;крок підписів вздовж контура об'єкта в метрах
$Step=25
;зміщення підписів по вертикалі
$CaptionShift=0
$MapCount=@MapCount
@if $MapCount=0 then @Break
$N=@Map.SelCount
@If $N<1 @Break Виділіть об'єкт для створення підпису
$N=0
%Cycle
$N=@Map.NextSelected $N
@If $N=0 Then @Goto %End
;периметр об'єкта
$Len=@Map.Object[$N].Parameter[-1]
;виділяємо першу частину, якщо включено "Показывать длины с углами"
$Len=@StringPart 1 $Len
$Pos=0
;початок циклу
%Start
;виносимо підпис на відстань $Pos від початку об'єкта
;NoUpsideDown - уникаємо перевернутих підписів
@Map.Object[$N].CreateCaptionAlongContour $Param $Pos $CaptionShift NoUpsideDown
$Pos=$Pos+$Step
@if $Pos<$Len then @Goto %Start
@Map.Parameters.SetAttributes -2 0 5 0 10 0 16777215 0 Arial 60 0 -16777208
@Map.RefreshObject $N
@Goto %Cycle
%End
@Window.Refresh

Автор:  Dmitry_Zolotar [ 02 ноя 2017 12:38 ]
Заголовок сообщения:  Re: Нужна помощь

Виталий писал(а):
Доброго дня. Як можно цей скритп застосуватидля всіх горизонталей. а нае тільки для одної.
Скрипт, який створює підписи для горизонталей

Нова версія ged.exe вміє створювати такі підписи за допомогою менеджера підписів. Оберіть шаблон підпису "Горизонталь" та задайте крок в мм.

Автор:  Виталий [ 02 ноя 2017 14:29 ]
Заголовок сообщения:  Re: Нужна помощь

Dmitry_Zolotar писал(а):
Виталий писал(а):
Доброго дня. Як можно цей скритп застосуватидля всіх горизонталей. а нае тільки для одної.
Скрипт, який створює підписи для горизонталей

Нова версія ged.exe вміє створювати такі підписи за допомогою менеджера підписів. Оберіть шаблон підпису "Горизонталь" та задайте крок в мм.


Дякую
только получаються перевернутые надписи.

Вложения:
.jpg
.jpg [ 39.5 Кб | Просмотров: 217 ]

Автор:  VictorR [ 02 ноя 2017 16:33 ]
Заголовок сообщения:  Re: Нужна помощь

"Виталий"
Так и должно быть. Подписи должны быть читабельными а потому слева на право а не наоборот) на черчении учили)

Автор:  Виталий [ 06 ноя 2017 10:05 ]
Заголовок сообщения:  Re: Нужна помощь

VictorR писал(а):
"Виталий"
Так и должно быть. Подписи должны быть читабельными а потому слева на право а не наоборот) на черчении учили)


согласноно литературе:
"УСЛОВНЫЕ ЗНАКИ
ДЛЯ ТОПОГРАФИЧЕСКИХ ПЛАНОВ МАСШТАБОВ
1:5000 1:2000 1:1000 1:500 "
456 (329). Надписи горизонталей следует ориентировать основанием цифр вниз по скату, причем по
возможности к южной или восточной рамкам плана.

Можно ли адаптировать подписи а данным требованиям?

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