Страница 1 из 1
MapBasic. Поворот символа
Добавлено: 08 фев 2013, 10:31
proggis
Читаю UserGuide, все меньше понимаю.
Имеем набор таблиц, выгруженный из Civil'a с атрибутом - поворот блока (радианы, в столбцы пересчитываю в градусы). Необходимо каждый символ повернуть на угол поворота из таблицы. Присвоить шрифт и угол можно с помощью функции MakeFontSymbol-т.е. значение угла из таблицы выступает аргументом rotation.
Не могу понять, как получить доступ к атрибутике определенного объекта (курсор)
Re: MapBasic. Поворот символа
Добавлено: 08 фев 2013, 11:51
juffin_h
Код: Выделить всё
Fetch { First | Last | Next | Prev | Rec n } From table
Re: MapBasic. Поворот символа
Добавлено: 14 фев 2013, 11:05
proggis
Код: Выделить всё
Include "MapBasic.Def"
Dim angle As Float
Dim sym_marker as Symbol
Dim counter as Integer
Dim current_object as Object
Set Map
Layer 1 Editable On
angle=0
counter=0
Fetch First From _1
Do While Not EOT(_1)
angle=_1.col1
current_object=_1.obj
sym_marker=MakeFontSymbol(65,RED,24,"Wingdings",40,angle)
Alter Object current_object
Info OBJ_INFO_SYMBOL, sym_marker
update _1
set obj=current_object
counter = counter + 1
Fetch Next From _1
Loop
print angle
Этот код все символы перемеoftn на месо последнего символа. В чем ошибка?
Re: MapBasic. Поворот символа
Добавлено: 14 фев 2013, 11:41
V.Maxim
ну так при обновлении записи нужно указать, какую именно строку нужно обновить. Т.е. в update после set добавить where RowID=counter
Re: MapBasic. Поворот символа
Добавлено: 14 фев 2013, 11:42
V.Maxim
а, если использовать counter в качестве указателя строки, тогда наверное не нужно его обнулять, пусть так и начинается с 1
Re: MapBasic. Поворот символа
Добавлено: 26 фев 2013, 14:10
proggis
Есть набор слоев. К объектам каждого необходимо последовательно получить доступ
делаю это так:
Код: Выделить всё
layer_count=MapperInfo(map_id, MAPPER_INFO_LAYERS)
For i=1 to layer_count
layer_name=LayerInfo(map_id, i, 1)
Fetch First From layer_name
*********
Next
Fetch ничего не выбирает, думаю, не понимает переменную layer_name.
Как решаете подобные проблемы вы?
Re: MapBasic. Поворот символа
Добавлено: 26 фев 2013, 15:24
dab
Правило форума: каждому новому вопросу - отдельная тема.
Команда Fetch относится к таблице, а не к слою. Названия таблицы и слоя могут различаться.
Код: Выделить всё
iNumTabs = NumTables()
For i = 1 to iNumTabs
table_name = TableInfo(i, TAB_INFO_NAME)
Fetch First From table_name
***
Next