Саша ты пишешь: Я хочу поправить например формулу - просто убрать площадь.
А почему ты полез в базу текстов? Особенно в служебные. Аннотационные тексты только для полей блока! Если ты хочешь какой порог по площади то задавай своё выражение.
Редактирование аннотационных текстов
Сообщений 1 страница 42 из 42
Поделиться124.07.2018 14:01:35
Поделиться224.07.2018 14:28:40
Да, я потому и притянул аннотации за уши в ту тему из-за порога площади. Не хотел в отдельную тему уходить, а скопом задать вопросы так или иначе связанные с площадями: в аннотациях в общем, формулах, а также использование на практике формул (потому и переспросил про "таксационную формулу" и "формулу для плана" вдогонку).
Суть такова: хотел вернуть на планшеты старую добрую таксационную формулу что и сейчас на квадратные планшеты лепят ДВ филиалы. Смотрю, а формулы то отличаются от тех что в тополе. Думал, если что подкорректировать - а в выражениях не силён, да и аннотации не подлежат корректировке. Нет у нас планов, лишь ТЛК. Инструкции то инструкциями, "каждому региону своё" (как сказал когда-то Олег). Вот в чём вопрос был.
Да, ещё вот что хотел: можно ли задать порог площади (и где и как?), чтобы в аннотациях формула "выдел-площадь" на дороги (а дороги в полигонах!!!) ставился без площади? Хочу номер выдела дорог в кружке с отстающей линией, но без площади.
Поделиться324.07.2018 14:33:03
Кстати, если порог площади изменить, то в уже созданных аннотациях останется прежний порог ))) Обновлял таблицы баз данных, перезагружал программу - не помогает. Придётся создавать заново таблицу аннотаций.
Поделиться424.07.2018 14:43:39
Вопрос Дмитрию Александровичу: пасхалка или где живут львы?
Поделиться524.07.2018 15:23:02
Имена полей БД
VYDPLS - площадь выдела
POLPLS - площадь полигона
VYDNOM - номер выдела
1.KatZem - категория земель
1.Bonitet - бонитет (текст)
1.VozKls - класс возраста
1!4.Maket
1!4.1.Parametr
1!4.1.ParamId
ParamId = 301 - год вырубки
ParamId = 302 - тип вырубки
ParamId = 1202 - год повреждения }
Видишь откуда у тебя связь идёт в числителе? Из базы данных а не из блока. Аннотации только с полем блока работают.
Поделиться624.07.2018 15:29:57
Вот к примеру чем я пользуюсь пока.
Valuemacro T_PLANSH;
{ Формирует формулу для планшета,
Вер. 1.0 © Козин А.В., 2017 год }
const
porog1 = 1.0 ; { порог подписи площади выдела }
porog2 = 0.3; { порог подписи части выдела }
var
ResultValue : string ;
begin
if ((@AREA <= porog2) and (@VYDPLS=0)) then
ResultValue := ''
else if (@VYDPLS <= porog1) then
ResultValue := @VYDNOM:C
else
ResultValue := @VYDNOM:C + CHR(10)+ (@VYDPLS:C:3:1)
end.
Вот для планшета. Д.А. сказал выложит скоро.
Площадь пишется с 1 га. porog1 = 1.0 можно править самому какой надо.
porog2 = 0.3 а это порог для номера выдела в частях выдела с нулевым Vydpls.
Поделиться724.07.2018 15:59:04
чтобы в аннотациях формула "выдел-площадь" на дороги (а дороги в полигонах!!!) ставился без площади? Хочу номер выдела дорог в кружке с отстающей линией, но без площади.
1. Если в дорогах есть какое то поле то наверно можно задать выражение чтобы площадь там не ставилась.
2. Номер в кружках с линией. Это ты хочешь чтобы программа понимала куда ей удалить номер выдела?
Да бред это всё.
Поделиться824.07.2018 16:24:50
Вот так, вручную. Только порог взят высокий - 10 га (есть дороги, но до 10 га). Зелёные линий - полигон дорог в них.
Поделиться924.07.2018 16:33:56
Аннотации только с полем блока работают.
Не понял. Аннотационный текст с простым выражением ("формула плана") CalcValue('H:\LesIS\_Les\ToPas\PL_Chisl_L2.tps')+ CHR(10)+CalcValue('H:\LesIS\_Les\ToPas\PL_Znam_L2.tps')
Поделиться1024.07.2018 16:48:29
Valuemacro Pl_Znam; { Работает в составе выражения 'План - знаменатель формулы', позволяет построить выражение в знаменателе таксационной формулы для плана лесонасаждений Версия 5.1, © Старостенко Д.А., 1999-2013 год } const { При площади < порога возвращает пустую строку } Porog1Pls = 0.1; Porog2Pls = 10; Porog3Pls = 10; { Имена полей БД VYDPLS - площадь выдела POLPLS - площадь полигона VYDNOM - номер выдела 1.KatZem - категория земель 1.Bonitet - бонитет (текст) 1.VozKls - класс возраста 1!4.Maket 1!4.1.Parametr 1!4.1.ParamId ParamId = 301 - год вырубки ParamId = 302 - тип вырубки } var ResultValue : string; add_str : string; bon, i, t : longint; DopIDs : list of longint; DopParams : list of string; Tipes : list of string; begin ResultValue := ''; Tipes[1] := 'ЛШ'; Tipes[2] := 'ВР'; Tipes[3] := 'В'; Tipes[4] := 'Л'; Tipes[5] := 'К'; Tipes[6] := 'Т'; Tipes[7] := 'Д'; Tipes[8] := 'Ш'; if @VYDPLS >= Porog2Pls then begin ResultValue := @VYDPLS:C:4:1; if @VYDPLS >= Porog3Pls then if ((@1!KatZem >= 1100) and (@1!KatZem < 1200)) or ((@1!KatZem >= 1400) and (@1!KatZem < 1500)) then begin { Для покрытых лесом земель и редин: Площадь выдела - Бонитет } bon := @1!Bonitet; if (bon >= 100) and (bon <= 500) then add_str := Trunc(bon/100):C:1 else if bon = 99 then add_str := '1А' else if bon = 98 then add_str := '1Б' else if bon = 501 then add_str := '5А' else if bon = 502 then add_str := '5Б'; ResultValue := ResultValue + '-' + add_str; end else if @1!KatZem = 1509 then { Для вырубок: Площадь - Тип вырубки } begin if NUM(@1!4.Maket) > 0 then begin DopIDs := @1!4.1.ParamId; DopParams := @1!4.1.Parametr; for i := 1 to Num( DopIDs ) do if DopIDs[i] = 302 then begin add_str := DopParams[i]; t := Ord(add_str, 1) - 48; ResultValue := ResultValue + '-' + Tipes[t]; end end end end end.
Вот же отрабатывает через базу. Макрос не сложно ведь будет настроить под мои "хотелки" с дорогами, ну а кружочки-линии я сам вручную...
Отредактировано Александр Архипов (24.07.2018 16:50:32)
Поделиться1124.07.2018 16:48:51
Саш, тебя сейчас убедят, что у тебя всё бред и неправильно.
Поделиться1224.07.2018 16:53:11
Саш, тебя сейчас убедят, что у тебя всё бред и неправильно.
Алексей, не торопи коней. Сейчас разберёмся. Это ведь не "синтез синхрофразотрона" ))
Поделиться1324.07.2018 17:09:47
Не понял. Аннотационный текст с простым выражением ("формула плана") CalcValue('H:\LesIS\_Les\ToPas\PL_Chisl_L2.tps')+ CHR(10)+CalcValue('H:\LesIS\_Les\ToPas\PL_Znam_L2.tps')
Это что вопрос?
Да не работает. У тебя на картинке как сделано?
Поделиться1424.07.2018 17:12:21
Так и сделано:
Вначале темы - создание таблицы аннотационного текста с запросом CalcValue('H:\LesIS\_Les\ToPas\PL_Chisl_L2.tps')+ CHR(10)+CalcValue('H:\LesIS\_Les\ToPas\PL_Znam_L2.tps')
Результат - последний скрин. Всё работает. Порог - 10 га (из-за дорог) отражён в коде знаменателя выше
const { При площади < порога возвращает пустую строку } Porog1Pls = 0.1; Porog2Pls = 10; Porog3Pls = 10;
Поделиться1524.07.2018 17:14:22
Сергей Петрович, Дмитрий Александрович!!! У нас всех интересует надпись про "львов" (по латыни) в первом скрине темы. Ответьте пожалуйста, что это значит?
Поделиться1624.07.2018 17:41:35
Всё работает. Порог - 10 га (из-за дорог) отражён в коде знаменателя выше
Да всё вижу. И формулу и порог. И как ни странно долго висела но сработала. Значит когда то поправили. Говорю я поэтому с ними отложил работу. Да и такое честно скажу первый раз вижу. И правильно Алексей говорит не надо это ))))). А просеки, реки, почему не полигоном? Естественно полигон дорог это Выдел? Я не таксатор поэтому спрошу, где то в базе есть указание что это дорога? Если в каком то макете есть это, то думаю можно вытянуть а вот чтобы программа относила правильно номер выдела да ещё в круге это вопрос. Тут вариант два стиля текста.
А этим меня уже не напугать.
Отредактировано Сергей Городничев (24.07.2018 17:45:17)
Поделиться1724.07.2018 17:43:47
Да, дорога - отдельный выдел в базе и ТО и каждый кусочек со своим номером и площадью.
Отредактировано Александр Архипов (24.07.2018 17:47:35)
Поделиться1824.07.2018 17:50:00
Да, дорога - отдельный выдел в базе и ТО и каждый кусочек со своим номером и площадью.
Так там же категория земель стоит. Вот по ней и фильтровать.
Поделиться1924.07.2018 17:53:11
Просеки у нас не рублены со времён Царя Гороха (ныне условно рубленные так скажем, чисто на карте рисованные и по навигатору находимые); реки полигоном, но их нет на скрине (то ручьи - они не учитываются в базе давно у нас)... Да не, кружки-линии вручную можно - это уже вопрос эстетики.
Поделиться2024.07.2018 18:05:19
Меня больше дерево твоё заинтересовало. Как я понял к блоку несколько тематических карт прикреплено. Сколько максимум? И не мешает в работе?
А задачу, ты сам себе создал, сам и порешил. На верхнем скрине дорога зеленая. Даже если просто там будет стоят номер всё будет читаться. Спасибо что "добил" меня а то я так бы и считал что аннотации работают только с полем блока . )))
Поделиться2225.07.2018 03:48:39
Что касается аннотаций - их нужно делать в самом конце, ибо обеспечены фантомы (в лучшем случае - удаляемые поиском в таблице), изменить пороги площади не получится... зато, при незначительных изменениях в базе, когда уже всё почти готово - не нужно править текст формул.
Поделиться2325.07.2018 04:05:49
Оффтопа немного.
Поделиться2425.07.2018 04:22:52
Отредактировано Александр Архипов (25.07.2018 04:37:40)
Поделиться2525.07.2018 06:34:31
Valuemacro T_PLANSH;
{ Формирует формулу для планшета,
Вер. 1.0 © Козин А.В., 2017 год }const
porog1 = 1.0 ; { порог подписи площади выдела }
porog2 = 0.3; { порог подписи части выдела }var
ResultValue : string ;begin
if ((@AREA <= porog2) and (@VYDPLS=0)) then
ResultValue := ''
else if (@VYDPLS <= porog1) then
ResultValue := @VYDNOM:Celse
ResultValue := @VYDNOM:C + CHR(10)+ (@VYDPLS:C:3:1)end
Это топас, а выражение для таблицы аннотаций какое будет?
Поделиться2625.07.2018 06:51:52
CalcValue('h:\LesIS\_Les\ToPas\T_PLANSH.tps') выдаёт синтаксическую ошибку.
Поделиться2825.07.2018 08:04:24
if ((@AREA <= porog2) and (@VYDPLS=0)) then
Я бы даже заменил AREA на POLPLS. Судите сами.
Саш отправил.
Поделиться2925.07.2018 08:30:51
Принял. Заменил. Всё работает. Спасибо!
Поделиться3025.07.2018 08:43:57
Остаётся один вопрос: как разбить показ площади по категориям земель. Точнее установить порог показа площади по категориям земель.
Отредактировано Александр Архипов (25.07.2018 08:47:28)
Поделиться3125.07.2018 10:01:44
Сергей Петрович, Дмитрий Александрович!!! У нас всех интересует надпись про "львов" (по латыни) в первом скрине темы. Ответьте пожалуйста, что это значит?
Не могу сейчас открыть этот диалог, но судя по всему это образец шрифта для данного стиля. Аналог майкрософтовского "Съешь этих мягких французских булочек". Обычно в такие тексты подбирают фразы с наименьшей повторяемостью букв, чтобы представить наибольшее разнообразие. Чехи лаконичнее англосаксов.
Остаётся один вопрос: как разбить показ площади по категориям земель. Точнее установить порог показа площади по категориям земель.
Коллеги, пишите в пожелания и конкретнее, без лишних рассуждений. У Д.А. нет времени на анализ длинных дискуссий. Вот тут обсудили, утрясли, какие то изменения уже сделали - откройте другую тему в пожеланиях и киньте туда согласованное предложение и файлы, которые Вами были изменены.
Поделиться3225.07.2018 12:57:04
Вот тут обсудили, утрясли, какие то изменения уже сделали - откройте другую тему в пожеланиях и киньте туда согласованное предложение и файлы, которые Вами были изменены.
Хотелось бы скрыть показ площади выдела в категориях земель линейных выделов (дорог, рек, линий связи, лэп, газопроводов и т.д.).
Пишу пока сюда. А я так полагаю что и тут порог нужен. Я буду их показывать на планшете. Ты выставляешь порог скажем 10 000 га. а я 10 га. Так бы было оптимально.
Поделиться3325.07.2018 13:06:22
Прочитал ваше обсуждение, на простые вопросы ответить могу, об остальном надо подумать и посмотреть, как сделано у нас сейчас. Я через полгода только помню, что что-то было сделано по такому-то поводу, а как реализовано - точно забываю. Программные тексты исчисляются уже, похоже, величиной в сотни тысяч строк.
И формулу и порог. И как ни странно долго висела но сработала. Значит когда то поправили.
Там всё так и было, проблема здесь, Сереж, думаю, в отсутствии модели для доступа из блока к базе данных. Если открыть просто блок в каком-то проекте, модели не будет и TopoL таксацию не увидит. Наша программа при открытии база+блок строит в проекте модель для доступа к таксации из блока, она довольно сложная, чтобы её строить вручную. Сохранить модель в проекте можно, если не закрывать карты на выходе. Но, если перемещать блоки или БД в другие каталоги (например, кроить планшеты), модель, скорее всего перестанет работать. Это надо учитывать и искать технологические пути, если существующую схему хочется как-то изменить.
По поводу линейных выделов - они сейчас у нас в программе могут использоваться, хотя это не обязательные элементы. Вообще предусмотрено три типа выделов: площадные - это понятно, полигон; протяженные - тоже узкий полигон, но имеющий описание линейника, причем можно выбирать приоритеты - считать площадь полигона или брать описание линейника; линейные - только линия.
Увязка площадей умеет пересчитать линии в повыдельном блоке, рассортировать их по категориям земель, защитности, ширине и по этим параметрам собрать "кадастровые" выделы в карте, и записать линейные выделы в таксацию. Тогда же появляется база блока для линий. Если для нескольких линий, например, дорога, задать другую ширину, то создастся отдельный выдел. Длины линейников программа считает сама по карте.
Отредактировано Дмитрий Александрович (25.07.2018 13:19:08)
Поделиться3425.07.2018 13:22:01
По линейникам есть одно НО. У нас технологическая модель линейников - площадная, полигон. Других нет и не предвидится. Потому и в увязке площадей мы работаем с линейниками как и с другими площадными выделами, только сами рассчитываем длину исходя из реальной площади и фиксированной ширины (но ширина не всегда бывает фиксированной, особенно если работаешь с кадастром) или наоборот - площади и промеренной длинне при нефиксированной ширине (особенно с реками).
Сергей Николаевич, согласен. Пусть будет два настраиваемых порога. Я в пожеланиях отписался ранее.
Поделиться3525.07.2018 13:36:30
У нас технологическая модель линейников - площадная, полигон.
Поясните, пожалуйста - и просеки? И ручьи? А что делаете если объект 2-3 м шириной? И тогда вот это:
По дорогам. Двойная линия у нас не пойдёт, масштаб планшета 1:25к при ширине лесных дорог 6-8 м.
было о чем? Я тогда не понял.
Поделиться3625.07.2018 13:58:50
По поводу изменения порогов, которое сразу-же не отражается в метках и аннотационных текстах. Пороги программа встраивает в виде текста в выражения ToPas: в каталоге макросов есть шаблоны для макросов, где предусмотрены пороги, из них программа делает макросы, которые уже использует TopoL. Поэтому, если пороги изменили, надо просто заново из меню вызвать метки - программа сделает новые макросы для TopoL-я.
С аннотациями аналогично - их придётся отредактировать (пороги в них), если макросы внутри, либо поправить файлы макросов, если это отдельные файлы. Я думаю над тем, как сделать создание аннотационных текстов через меню, но там и удаление предусматривать придется, и обрабатывать ситуацию, чтобы не было визуализации сразу двух разных формул. Вам это нужно в принципе?
Поделиться3725.07.2018 14:12:36
Преобразование линейников в протяженные площадные выделы сильно "утяжеляет" блоки и будет замедлять работу. Сейчас при создании в линейниках базы она имеет поля: Номер квартала/выдела, Категория земель (по таксации) и Ширина, предусмотрено также Имя в виде текста, но программа туда сама ничего не пишет. Это имя можно использовать для создания аннотационных подписей названий рек и т.п. Через меню можно высветить и метки номера выдела для линий, но номер будет на каждом отрезке. Площадей у линейников, естественно, нет, так как по существующему кадастровому подходу все квартальные просеки квартала могут входить в один выдел (при одинаковой ширине).
Поделиться3825.07.2018 14:14:03
Поясните, пожалуйста - и просеки? И ручьи? А что делаете если объект 2-3 м шириной? И тогда вот это:
Просеки (видимо речь идёт о квартальных) на ДВ не учитываются никак, то же и с ручьями. Перейдя на арковскую модель Дальлеспроект похоронил все остальные типы выделов ещё году эдак в 2002-м примерно, кроме площадных (полигонов).
было о чем? Я тогда не понял.
Было о том, если убрать символ дороги (сплошная + пунктир) и заменить на:
либо на две сплошные линии в качестве отдельного символа;
либо показать как есть в основном блоке, то есть буфером как у меня зелёным цветом, только двумя тонкими линиями чёрного цвета (но я на практике отключаю эту линию в блоке, оставляя символ дороги (сплошная + пунктир) - по традиции Дальлеспроекта.
Поделиться3925.07.2018 14:33:22
по существующему кадастровому подходу
А вот взгляните, с чем приходится работать, когда отходишь от косяковых и кривых планшетов и их нелепых условных обозначений:
А это существующая дорога (синим) и проектируемая в лесфонде (красным) - будущий лесной участок. Это пример попроще. Есть и посложнее и протяжённость поболе.
Отредактировано Александр Архипов (25.07.2018 14:39:15)
Поделиться4025.07.2018 14:48:59
оставляя символ дороги (сплошная + пунктир) - по традиции Дальлеспроекта.
Это не традиция а инструкция. А на планшете она показывается если линейная. А полигональная должна быть Границей выдела инструментальная. Но суть не в этом. Выражение надо сперва доработать и попробовать. Потому что это не важно, для текста она и для аннотационного текста. Кому надо уберут площадь в этих категориях а кому не надо оставят. А вставлять в программу или нет порешим позже.
Поделиться4126.07.2018 04:38:13
это образец шрифта для данного стиля
Отнюдь. Стили разные - надпись неизменна. Может недоработка?
Поделиться4226.07.2018 08:52:26
Стили разные - надпись неизменна. Может недоработка?
Видимо так.