MapBasic. Поворот символа
-
- Интересующийся
- Сообщения: 24
- Зарегистрирован: 05 сен 2009, 17:59
- Репутация: 0
MapBasic. Поворот символа
Читаю UserGuide, все меньше понимаю.
Имеем набор таблиц, выгруженный из Civil'a с атрибутом - поворот блока (радианы, в столбцы пересчитываю в градусы). Необходимо каждый символ повернуть на угол поворота из таблицы. Присвоить шрифт и угол можно с помощью функции MakeFontSymbol-т.е. значение угла из таблицы выступает аргументом rotation.
Не могу понять, как получить доступ к атрибутике определенного объекта (курсор)
Имеем набор таблиц, выгруженный из Civil'a с атрибутом - поворот блока (радианы, в столбцы пересчитываю в градусы). Необходимо каждый символ повернуть на угол поворота из таблицы. Присвоить шрифт и угол можно с помощью функции MakeFontSymbol-т.е. значение угла из таблицы выступает аргументом rotation.
Не могу понять, как получить доступ к атрибутике определенного объекта (курсор)
-
- Завсегдатай
- Сообщения: 265
- Зарегистрирован: 22 окт 2012, 08:35
- Репутация: 50
- Откуда: Нижний Новгород
Re: MapBasic. Поворот символа
Код: Выделить всё
Fetch { First | Last | Next | Prev | Rec n } From table
-
- Интересующийся
- Сообщения: 24
- Зарегистрирован: 05 сен 2009, 17:59
- Репутация: 0
Re: MapBasic. Поворот символа
Код: Выделить всё
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
-
- Участник
- Сообщения: 62
- Зарегистрирован: 14 фев 2012, 16:07
- Репутация: 13
Re: MapBasic. Поворот символа
ну так при обновлении записи нужно указать, какую именно строку нужно обновить. Т.е. в update после set добавить where RowID=counter
-
- Участник
- Сообщения: 62
- Зарегистрирован: 14 фев 2012, 16:07
- Репутация: 13
Re: MapBasic. Поворот символа
а, если использовать counter в качестве указателя строки, тогда наверное не нужно его обнулять, пусть так и начинается с 1
-
- Интересующийся
- Сообщения: 24
- Зарегистрирован: 05 сен 2009, 17:59
- Репутация: 0
Re: MapBasic. Поворот символа
Есть набор слоев. К объектам каждого необходимо последовательно получить доступ
делаю это так:
Fetch ничего не выбирает, думаю, не понимает переменную layer_name.
Как решаете подобные проблемы вы?
делаю это так:
Код: Выделить всё
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
Как решаете подобные проблемы вы?
- dab
- Гуру
- Сообщения: 671
- Зарегистрирован: 16 дек 2011, 20:02
- Репутация: 170
- Ваше звание: Гуру
- Откуда: Москва
- Контактная информация:
Re: MapBasic. Поворот символа
Правило форума: каждому новому вопросу - отдельная тема.
Команда Fetch относится к таблице, а не к слою. Названия таблицы и слоя могут различаться.
Команда Fetch относится к таблице, а не к слою. Названия таблицы и слоя могут различаться.
Код: Выделить всё
iNumTabs = NumTables()
For i = 1 to iNumTabs
table_name = TableInfo(i, TAB_INFO_NAME)
Fetch First From table_name
***
Next
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость