Запрос на функцию

Не все так просто на самом деле:

  1. Подписи объектов могут быть развернуты, таблицы не могут
  2. Придется создавать табличный слой для каждого параметра со своими атрибутами шрифта, кроме того размер шрифта у каждой подписи может отличаться от заданного в менеджере параметров, так что возможно придется для каждой подписи каждого объекта создавать табличный слой.

P.S. Для параметров типа “Таблица” есть возможность создавать таблицы с помощью менеджера подписей (шаблон “Таблица”)

Речь идет не о таблицах, а о слоях типа Подпись. Однако, они тоже не помогут, у них другая ф-ия: принудительное применение стиля подписей ко всем подписям слоя. Что-то вроде специального режима отображения, своего рода Черновой для подписей. Перенос на такой слой не делает ожидаемого: нет порождает отдельного объекта Подпись, таких просто не существует в дигитал, подписи всегда привязаны к объектам. Таблицы действительно отделены, но со своими ограничениями, описаными выше.
Вы не пробовали через экспорт/импорт dxf? Какие трудности возникли?

Здравствуйте, была у меня потребность в написании скрипта для пересчета обменных файлов из СК42(6) в СК63(5), в результате чего смог написать вот такой скрипт:
Карта | Система координат…
Карта | Свойства…
@Map.SelectAll
Правка | Копировать
@FileNew СК63
Карта | Свойства…
Правка | Вставить
Правка | Копировать
@CloseMap
@Map.SelectAll
Правка | Удалить
Карта | Свойства…
Правка | Вставить
Вид | Показать помеченные
Возможно ли это осуществить как то иначе, что бы не приходилось ручками выбирать датум, а прописать это в скрипте, что бы процесс был автоматическим?
Видимо написал не по адресу, если что ткните носом в нужную тему

Доброго времени суток!
Хотелось бы иметь возможность использовать строковую функцию Del.
DeleteStr(var s: String; from, count: Integer).
Заранее спасибо!.

Вам нужна функция для написания скрипта? Такая уже есть.
Пример:

$S=1234567890 $P=@Calc Delete($S,5,2) @Dialog.Message $P

С помощью @Calc еще много чего можно навычислять :slight_smile:

[code] _____________________________________________________________________
| Variable types: |
|=====================================================================|
| x,y : numeric - (integer, float) |
| a,b : boolean (1 or 0) |
| s,t,v : string |
| d : DateTimeString (StampString) |
|_____________________________________________________________________|

_____________________________________________________________________

| Basic operations: |
|=====================================================================|
| numeric: x + y , x - y , x * y, x / y, x ^ y |
| compare: x > y, x < y, x >= y, x <= y, x = y, x <> y |
| ansi compare: s > t, s < t, s >= t, s <= t, s = t, s <> t |
| boolean (1/0): a AND b, a OR b, NOT(a) |
| set variable : x:=formula (or value) ; |
| destroy variable: FreeVar(s); // s=variable name |
| logical: ExistVar(s) // s=variable name |
| formula separation with semicolon : formula1 ; formula2 |
|_____________________________________________________________________|

_____________________________________________________________________

| Type conversion: |
|=====================================================================|
| boolean (1/0): Logic(x) |
| numeric: Numeric(s) |
| string: String(x) |
| char: Char(x) |

integer: Ascii(s)
all types: Eval(f) // where f is formula in […]
string : NumBase(x,base) // base from <2..16>
integer: BaseNum(s,base) // base from <2..16>
_____________________________________________________________________
_____________________________________________________________________

| Math operations: |
|=====================================================================|
| numeric (integer): x Div y, x Mod y |
|_____________________________________________________________________|

_____________________________________________________________________

| Math functions: |
|=====================================================================|
| Abs(x), Frac(x), Trunc(x), Heaviside(x) or H(x), Sign(x), |
| Sqrt(x), Ln(x), Exp(x), |
| Cos(x), CTg(x), Ch(x), CTh(x), Sin(x), Sh(x), Tg(x), Th(x), |
| ArcSin(x), ArcCos(x), ArcTg(x), ArcCtg(x), |
| MaxVal(x [,y, …]), MinVal(x [,y, …]), |
| SumVal(x [,y,…]), AvgVal(x [,y, …]) |
|_____________________________________________________________________|

_____________________________________________________________________

| String operations: |
|=====================================================================|
| s || t , |
| s Like t, // (%,) |
| s Wildcard t // (*,?) |
|
____________________________________________________________________|

_____________________________________________________________________

| String functions: |
|=====================================================================|
| integer: Length(s), Pos(t,s) |
| string: Trim(s), TrimLeft(s), TrimRight(s), Upper(s), Lower(s), |
| Copy(s,x,[y]), CopyTo(s,x,[y]), Delete(s,x,[y]), |
| Insert(s,t,x); |
| Replace(s,t,v,[1/0=ReplaceAll,[1/0=IgnoreCase]] ); |
| IFF(a,s,t); //IF a>=1 then Result:=s else Result:=t |
|_____________________________________________________________________|

_____________________________________________________________________

| Date & Time functions: |
|=====================================================================|
| integer: Year(s), Month(s), Day(s), WeekDay(s), |
| Hour(s), Minute(s), Sec(s) |
| numeric: StrToStamp(d) LastDay(x) // last day in Month (28-31) |
| string: StampToStr(x), StampToDateStr(x), StampToTimeStr(x) |
|_____________________________________________________________________|
[/code]

Нет, для параметра и генерирования дмт шаблонов.
Возникла потребность создания акта согласования границ. Так как я в Репортсе почти ничего не понимаю и смотрю там таким удивительным взглядом :open_mouth: , решил сгенерировать акт в Диге. Все бы ничего, как Neighbors[NM] выдает - “Гуляйченко А.П.,землі загального користування,Бруль В.П.,Гарбуз Микола Петрович,землі загального користування”, а мне “землі загального користування” - не нужны.

… только что пришла идея :bulb: Может усовершенствовать эту самую NEIGHBORS с перечислением “загальновживаних слів”, которых не надо употреблять в нужных местах. Вот где-то так: NEIGHBORS([NM],землі гр., землі заг. кор.).

Конечно также интересно как осуществить подобное в Репортсе.
Спасибо за внимание :smiley:

Распакуйте содержимое вложения в папку Digitals, откройте файл neigh.dmf
В этом примере список смежников берется из параметра NM, разбивается на части, далее удаляется из каждой части строка "землі гр. ", а смежники совпадающие с перечисленными в файле NoneNeigh.txt отображаются черточкой. В итоговой строке остаются только “значимые”.
Neigh.zip (11.9 KB)

Ух и Дмитрий! Ух и ГОЛОВА :smiley:
Я бы так не догадался. Это вечерком с пивком нужно будет связать с проектом.
Спасибо за оперативность :wink: .

В карте Neigh параметр 36 [NM] - это список всех смежеств. У меня этот список - =NEIGHBORS[NM], который создается после генерации. Вот и вся подляна, ин4 - далее “Исходник” в нем параметр “=NEIGHBORS[NM]” - пустой, который как мы знаем заполняется не как все, только после генерации. И получается что по формулам параметров смежников№1-10, а также параметр именованный как “Смежники без загальновживаних слів” разносятся пустые значения для вычисления.
ВЫХОД:

  1. Повторно запустить генерацию акта согласованию границ, где уже заполнится =NEIGHBORS[NM];
  2. Или Вставка - Таблица - Список смежников, а потом генерация документов.

Выводы конечно делать не мне, но было бы неплохо усовершенствовать вот так NEIGHBORS([NM],землі гр., землі заг. кор.)

В файле Lists\Neigh.txt замените все вхождения строки P[NM] на P[IDxxxxx], где P[IDxxxxx] - параметр содержащий список смежников.

Уважаемые разработчики, можно ли сделать так чтобы была возможность собирать объекты по точкам в ВИД-ТРЁХМЕРНЫЙ, ну или если не собирать объекты, то хотя б как-нибудь редактировать.

К сожалению, это не так просто. Кроме того такой редактор будет неудобен. Перемещение точек в 3D можно сделать только вдоль трех ортогональных осей, обычно эти оси параллельны осям системы координат. Если нужно переместить точку в какой-то плоскости, эту плоскость надо сначала как-то задать. Сравните редактирование в автокаде, в 2D и 3D режимах. В 2D редактирование происходит гораздо быстрее и удобнее.

Если нужно редактировать 2.5 данные, например, модель рельефа, удобно пользоваться 3D режимом навигатора. В нем, в трехмерном пространстве, отображаются помеченные в карте объекты. Все изменения отражаются немедленно.

столкнулся с тем что точки тахеометрии попадают друг над другом, захватить надо нижнюю, а хватается верхяя, приходится в 3мерке выделять и переносить высоту одной точки отрезка, неудобно и муторно, а с отрисовкой рельефа вообще засада(((((приходится придумывать разные ухищрения.

В язык скриптов добавлена функция @Map.RecalculateToNewDatum, позволяющая без вызова диалога пересчитать координаты всех объектов карты из одного датума в другой.

В вашем случае ее вызов должен выглядеть так:
@Map.RecalculateToNewDatum SK42(6) SK63(5)

Имена датумов должны быть в точности такими, как в вашем Datums.ini. Если указан лишь один датум, например @Map.RecalculateToNewDatum SK63(5), то программа сделает пересчет в него из датума, заданного в Карта|Свойства (а если он не заполнен, то выдаст ошибку).
Если пересчет сработал, то новый датум будет занесен в свойства карты.
Карта на экране при пересчете не обновляется. Для этого можно, при необходимости, вызвать Вид|Показать все.

Дуже часто при створенні кадастрового плану (з масивних ділянок в яких багато точок) виникає потреба ділити і підтасовувати “таблицю довжин ліній та кутів”, як на малюнку що ниже. Тому в мене прохання про створення можливості в програмі автоматично розбивати таблиці на потрібну кількість задану користувачем, а програма щоб ділила таблиці на задану кількість рівних по рядках частин. Дякую!

спасибо!все отлично работает

Мені і всім полюбасу нада функция разворот об’єкта!!! Тільки не такий тупий як він є! Треба разворот такий як в автокаді! Щоб можна було вибрати точку навколо якої ти будеш крутить об’єкт, потім точку за яку будеш крутить, і в кінці вказуєш куди треба поставить точку 2!
Ще треба щоб була утиліта яка передбає виноску точок в натуру, наприклад треба винести 500 ділянок, я це роблю в іншій програмі, в мене це займає 30 хв., в результаті я отримую журнал в якому є схема на якій пронумеровані точки та відомість кутів та відстаней! А в Діджілалі в ручном режимі за 2 місяці не зробиш і треба 2 пачки бумаги!!!
Якшо це вас зацікавило подзвоніть будь-ласка 0677324904

Помнится ранее Вы обещали выложить принтскрин - дабы показать всему местному “населению” как нужно работать. Ждёмс… В студию…

Виноска. На першому зображені загальний вигляд кінцевого результату.

На зобр. 1 ви бачите 3 листи на першому з них зображена графічна частина на якій показано розбивку масиву, станції і пікети, на другому та третьому геодезичний журнал в якому є: Станція, орієнтир, номера пікетів (197), горизонтальний кут, горизонтальне прокладання.