Fill Palette (заливка)

0 голосов
спросил 31 Март, 11 от JARIK911 (200 баллов) в категории Программные продукты Esri
    Ребята, подскажите пожалуйста. Как создать свой вариант заливки площадной темы. Можно их подгрузить, написать с помощью скриптов (как?) и возможно такое в ArcView 3.2. Или все ограничиваеться стандартными вариантами заливок?
    

4 Ответы

0 голосов
ответил 31 Март, 11 от Lord (3,920 баллов)
попробуй разобраться с этим скриптом
вешается на кнопку (buttons)

' Name: ghghg.LegendVector на основе скрипта из примеров
'
' Title: Changes legend from RasterFill to VectorFill
'
' Topics: Legends, Graphics and Symbols
'
' Description:
'        Штриховка полигональной темы для градостоительного кадастра
'        расстояние между штрихами 4 мм,
'        штихи напралены слева направо под 45 градусов

theView = av.GetActiveDoc
theTheme = theView.GetActiveThemes.Get(0)
Pam = {"Угол наклона (°)","Толщина линии (мм)","Расстояние между линиями","Тип штриховки"}
Par = {"60°","0,3 мм","6 мм","Штриховать накрест?"}
R = MsgBox.MultiInput("Параметры штриховки полигонов",
               "Задайте параметры штриховки",
               Pam, Par)
if (R.isEmpty) then exit end
w = R.Get(0).Substitute (",",".")
u = w.Substitute ("°","").Trim.AsNumber
F = R.Get(1).Substitute (",",".")
F = F.Substitute ("м","").Trim.AsNumber
F = (F/25.4*720).Round/10
G = R.Get(2).Substitute (",",".")
G = G.Substitute ("м","").Trim.AsNumber
G =G/25.4*72
if (R.Get(3).Trim <> "") Then C=true else C=False end

theLegend = theTheme.GetLegend
symbList = theLegend.GetSymbols

idx = 0
for each s in symbList
newSymbol = VectorFill.Make
if (C) then
      newSymbol.SetStyle(#VECTORFILL_STYLE_CROSSHATCH)
    else
      newSymbol.SetStyle(#VECTORFILL_STYLE_HATCH)
end
newSymbol.SetAngle(u)
newSymbol.SetColor(s.GetColor)
newSymbol.SetOLColor(s.GetOLColor)
newSymbol.SetHeight(F)
newSymbol.SetXOffset(0)
newSymbol.SetYOffset(0)
newSymbol.SetXSeparation(0)
newSymbol.SetYSeparation(G)
symbList.Set(idx, newSymbol)
idx = idx + 1
end

theTheme.InvalidateLegend
theTheme.Invalidate(true)

0 голосов
ответил 03 Апр, 11 от JARIK911 (200 баллов)
не совсем понял с какого момента его скопировать в поле чтоб создать новый скрипт?? и куда вписывать нужные значения?
0 голосов
ответил 03 Апр, 11 от Lord (3,920 баллов)
ничего никуда не нужно копировать. выдели все строки в сообщении. Открой (создай) новый скрипт. В окне скрипта вставь текст из сообщения
убери строки без апострофа
Апостроф в начале строки- это комментарий
я просто написал что делать, думая, что спрашивает компетентный товарищ.
удачи. и читай первоисточники. Извини, инструкции, хоть и по английски. Поверь, трудно описать с чистого листа
что человек хочет.
0 голосов
ответил 04 Апр, 11 от JARIK911 (200 баллов)
спасибо заработало)) да я студент - географ) только осваивать начал) Карта геоботаническая, заливку - вообще не подобрать. а можете посоветовать сайты со скриптами или книги по этому програмированию Avenue, если не ошибаюсь.
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...