Страница 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