Доброго дня! Хто може допомогти або підказати що потрібно ще дописати щоб вставляло проміри без нажимання кнопки ок та без діалогового вікна Вставка проміри схема!
@Map.DeselectAll @Map.SelectLayer ID11330000 @Map.SelectLayer ID20000
Вставка | Промеры и схема…
Скрипт для виставлення потрiбних параметрiв вiкна “Промiри та схема” перед викликом вiкна
$CBMode=[Режим (0 - промiри, 1 - схема)]
$CBVisible=[Промiри тiльки до видимих (1 - так, 0 - нi)]
$CBRight=[Круг право (для Режиму $CBMode=1) 1 - так, 0 - нi]
Доброго дня.
Руслан гарно виклав - розписав детально .
Можна ще скористатися функцією dll, тоді перевіряти наявність ключів та секцій не треба: якщо таких немає - будуть створені.; Режим (0 - промiри, 1 - схема)
$CBMode=0
; Промiри тiльки до видимих (1 - так, 0 - нi)
$CBVisible=0
; Круг право (для Режиму $CBMode=1)
$CBRight=0
;
$PPath=@ProgramPath
$IniFile=$PPath\Ged.ini
$Ex=@FileExists $IniFile
@If $Ex=0 Then @Break Відсутній файл $PPath\Ged.ini!
;
;Параметр - рядок, в якому 4 значення, розділених символом "/": повний
; шлях до ini-файла; назва секції; назва ключа; нове значення ключа.
@DLLExec Functions.ChangeValueIniFile $IniFile/FormID.grbMode/ItemIndex/$CBMode
@DLLExec Functions.ChangeValueIniFile $IniFile/FormID.chbVisible/Checked/$CBVisible
@DLLExec Functions.ChangeValueIniFile $IniFile/FormID.chbRight/Checked/$CBRight
;
;@SendChars <CR>
@ExecuteMenu InsertDistances
Тут-же в мене виникло питання. А що, тепер усі форми, по аналогії з вікном “Промiри та схема”, при ініціалізації отримують значення з файла Ged.ini
Раніше ж, вроді - лише при старті Digitals?
Ще б якось була можливість відновлювати початкову позицію табуляції у вікні. Бо коли користувач перед тим натисне не ОК, а Відмінити - то при запуску скрипту потім не працює.
Наприклад, щоб запустити команту Вставка - Сітка із рамкою 5000х5000, включеною галочкою Додати підписи і знятою галочкою Малий масштаб виставив ось так:
$CMLine=@Assign <TAB><TAB><TAB><TAB><TAB><TAB>5000<TAB>5000<TAB><TAB><TAB><1><TAB><0><TAB><TAB><CR>
@SendChars $CMLine
Вставка | Сітка...
Але якщо перед тим в ручному режимі поставити курсор на будь-який інший блок, крім ОК, то не працює потім, бо починає рахувати знаки табуляції від активного блоку в попередньому сеансі запуску.
Доповнено: В принципі, оптимальним варіантом є
$CMLine=@Assign 50005000<1><0>
Тому, що після перезапуску програми дане вікно відновлює своє значення за замовчуванням, а саме: активним стає поле, де вводиться розмір рамки.
В нову версію програми додали скриптову функцію для вставки сітки, аналогічну меню Вставка-Сітка @Map.InsertGrid Layer X0 Y0 DX DY ObjIndex CreateCaption SmallScale Solid
Аргументи функції:
Layer - шар для об’єктів сітки
X0 Y0 - початкові координати
DX DY - кроки сітки по двом координатам
ObjIndex - номер об’єкта, в який вставляється сітка, якщо 0, то в рамку карти.
CreateCaption - додавати підписи, 0 - ні, інше значення - так
SmallScale - малий масштаб, 0 - ні, інше значення - так
Solid - 0 - хрести, інше значення - суцільна сітка
Доброго дня розробникам. Дякую за вдосконалення. Користуючись нагодою - питання: чи можна додати по аналогії InsertSheetLayout Бо наче пропустили, якось ненароком.
Додано скриптову функцію @Map.InsertSheetLayoutLayer X0 Y0 DX DY Overlap ObjIndex
Layer - шар розбивки аркушів
X0 Y0 - початкові координати
DX DY - розміри аркуша в мм
Overlap - розмір в мм перетину аркушів
ObjIndex - номер об’єкта, в який вставляється розбивка, 0 - рамка карти
До ged.lng додати строки:
Insert grid into object or map frame Додає сітку у об'єкт чи рамку карти
Insert sheet layout intoobject or map frame Додає розбивку на аркуші у об'єкт чи рамку карти
нема за що, трохи пiдкорегував скрипт на рахунок довжини, яку потрiбно змiнити (щоб по замовчуванню ставило iснуючу) i забрав зайве дiалогове вiкно (тестував i забув забрати).
Вчора за допомогою скрипту з попереднього посту порадів що нарешті витягнувши ділянку в ин4 не будуть напружувати ці довгі вуси суміжників .
Скрипт вчора працював сьогодні вже не працює. Прошу допомоги.
Скрипт з попереднього посту знаходиться в %Script.Test.Button4 замість строки 8-9 $D=5.
$L=@Map.Layers.FindByID ID70010
$File=@Map.Filename
$ID=@ExtractFileExt $File @if (“$ID”=“.dmf”) and (“$L”>“1”) then $ID=70010 @if $ID=.xml then $ID=70010 @if $ID=.in4 then $ID=50000
$Nej=0
$A1=@Map.Count
$CC=0
%Loop
$Nej=$Nej+1
$LID=@Map.Object[$Nej].LayerID @if $LID<>$ID then @Goto %Continue
$CC=$CC+1 @Map.SelectObject $Nej
$B=@Map.SelectedObject
$F=@Map.Object[$B].Count
$F1=$F-1 @Map.Selected.MarkPoints $F1 @Map.Selected.MarkPoints $F
%Script.Test.Button4 @Map.Object[$B].SetPointMarked $F1 0 @Map.Object[$B].SetPointMarked $F 0 @Map.Object[$B].Reverse @Map.Selected.MarkPoints $F1 @Map.Selected.MarkPoints $F
%Script.Test.Button4 @Map.Object[$B].SetPointMarked $F1 0 @Map.Object[$B].SetPointMarked $F 0 @Map.DeselectObject $Nej
%Continue @if $Nej<$A1 then @Goto %Loop
Мета цього скрипту змінити довжину вусиків суміжників