Аналитика http://geosystema.net/forum/ |
|
Нужна помощь http://geosystema.net/forum/viewtopic.php?f=1&t=2933 |
Страница 17 из 50 |
Автор: | Виталий [ 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, ...
|
Автор: | fendak [ 17 окт 2017 18:38 ] |
Заголовок сообщения: | Re: Нужна помощь |
petrogeo писал(а): В меню Группа яка може бути максимальна кількість груп? при відкритті карти в меню Группа відображається 9 груп об'єктів, а має бути 20. Решта групп відображаються після команди Группа|Создать... І чому програма зберігає перші 9 груп з назвою, а наступні показує з назвою: Group 10, Group 11, ... це у вас, мабуть, якийсь глюк програми. Я створюю і 30 груп (більше просто не пробував), зберігаю карту, відкриваю і назви груп зберігаються. Правда, в мене назви груп не такі довгі, як у вас. Можливо, в цьому справа. |
Автор: | Anton13 [ 30 окт 2017 11:02 ] | ||
Заголовок сообщения: | Re: Нужна помощь | ||
Приветствую всех! Может кто-то сталкивался с такой проблемой (шрифт на ярлыках) и знает решение? Буду благодарен. (обнуление GED.ini не увенчалось успехом)
|
Автор: | Руслан Пархуць [ 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 вміє створювати такі підписи за допомогою менеджера підписів. Оберіть шаблон підпису "Горизонталь" та задайте крок в мм. Дякую только получаються перевернутые надписи.
|
Автор: | VictorR [ 02 ноя 2017 16:33 ] |
Заголовок сообщения: | Re: Нужна помощь |
"Виталий" Так и должно быть. Подписи должны быть читабельными а потому слева на право а не наоборот) на черчении учили) |
Автор: | Виталий [ 06 ноя 2017 10:05 ] |
Заголовок сообщения: | Re: Нужна помощь |
VictorR писал(а): "Виталий" Так и должно быть. Подписи должны быть читабельными а потому слева на право а не наоборот) на черчении учили) согласноно литературе: "УСЛОВНЫЕ ЗНАКИ ДЛЯ ТОПОГРАФИЧЕСКИХ ПЛАНОВ МАСШТАБОВ 1:5000 1:2000 1:1000 1:500 " 456 (329). Надписи горизонталей следует ориентировать основанием цифр вниз по скату, причем по возможности к южной или восточной рамкам плана. Можно ли адаптировать подписи а данным требованиям? |
Автор: | VictorR [ 25 ноя 2017 17:12 ] | ||
Заголовок сообщения: | Re: Нужна помощь | ||
Почему не создается полигон кнопкой?
|
Страница 17 из 50 | Часовой пояс: UTC + 2 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |