Перейти к содержимому

Фотография

MapBasic и все что с ним связаноМожет я не один такой?!


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 388

#121
Dragon_Fire

Dragon_Fire
  • Гость
  • 7 сообщений
Спасибо огромное, если еще возникнут вопросы по масштабу, спрошу :D
Насчет "Ты", я только за!)
  • 0

#122
Jismo

Jismo
  • Свой человек
  • 975 сообщений
Вот и отлично! В наших кругах прибавление!!!
  • 0

#123
Dragon_Fire

Dragon_Fire
  • Гость
  • 7 сообщений
При загрузке карты я устанавливаю еденицы измерения расстояния в километры вот так:
Exec("Set Map Distance Units \"km\"");
Но MapInfo продолжает передовать мне координаты в мм (глупо звучит, но смысл в том, что расстояния между точками я получаю от MapInfo в мм).
Мне нужно нарисовать эллепс с радиусом 10км.
Когда я рисую эллепс так:
Exec("Create Ellipse Into Variable o_Ellipse ({0}, {1}) ({2}, {3})", X - R, Y - R, X + R, Y + R);
Он получается радиуса 10мм... Как это обойти?
  • 0

#124
Jismo

Jismo
  • Свой человек
  • 975 сообщений
Тебе нужно делать проверку системы координат, я так понимаю, что тебе нужна декартова система координат(плоская):
If MapperInfo(FrontWindow(), MAPPER_INFO_COORDSYS_CLAUSE) <> "CoordSys NonEarth Units ""m""" Then
		Note "Система координат не ""План схема(метры)"""	
		Exit Sub		
	End If 
Вместо внутренностей блока If можешь там установить плоскую систему координат. а потом уже можешь устанавливать единицы измерения. Попробуй так должно получиться.

ЗЫ: МапИнфо по умолчанию использует систему координат Долгота/Широта
  • 0

#125
Dragon_Fire

Dragon_Fire
  • Гость
  • 7 сообщений
А как установить плоскую систему координат?)
Может тогда ее сразу всегда устанавливать...
  • 0

#126
Jismo

Jismo
  • Свой человек
  • 975 сообщений
Set CoordSys тебе в помощь :)
  • 0

#127
Dragon_Fire

Dragon_Fire
  • Гость
  • 7 сообщений
Спасибо, помогло
Set CoordSys Layout Units \"km\"
:)
  • 0

#128
Радмила Ермоленко

Радмила Ермоленко

    Читатель

  • Гость
  • 29 сообщений
Предлагаем Вам пройти курс повышения квалификации:
«Программирование PLC на языках стандарта МЭК 61131-3»

Цель курса:
Курс предназначен для специалистов в области автоматизации технологических процессов и обеспечивает необходимый уровень знаний для практического программирования PLC различных фирм.

Содержание
Знакомство со средой программирования CoDeSys.
Конфигурация PLC.
Глобальные и конфигурационные переменные.
Операторы и функции (операторы арифметические, цикла, сдвига, выборки, сравнения, вызова, математические функции и т.д.).
Стандартные библиотеки (строковые функции, счетчики, таймеры, детекторы импульсов, регуляторы, генераторы сигналов и т.д.).
Обзор языков программирования МЭК 61131-3 (список инструкций, модификаторы и операторы, структурированный текст, язык последовательных функциональных схем, язык функциональных блоковых диаграмм, непрерывные функциональные схемы, язык релейных диаграмм).

По результатам обучения выдается сертификат

Продолжительность/Стоимость
5 дней (40 часов) / 52 000 тенге на одного участника (корпоративно предполагаются скидки!)
г.Алматы

С уважением,
Директор Учебного Центра «СТИМУЛ»
Радмила Ермоленко
Кон: +7 727 328 86 53
Моб: +7 701 218 50 36
+7 777 012 66 60
e-mail: y.radmila@mail.ru
  • 0

#129
Dragon_Fire

Dragon_Fire
  • Гость
  • 7 сообщений
Всплыла еще одна проблема. Устанавливаю начальные значения так:
Set Map CoordSys Nonearth Units "km"
Set CoordSys Layout Units "km"
Set Map Distance Units "km"
Set Map XY Units "km"
Set Distance Units "km"

В тестовой карте работает отлично - по клику могу получить любые координаты. Зато при загрузке другой карты координаты всегда возвращаются как 17.64 и -17.64 куда бы я не кликнул...
Отличие карт в том, что в тестовой есть workspace и изначально СК nonEarth, а в той, что не работает, много таблиц (я загружаю одну) и СК Earth 1,0

В чем может быть проблема?(
  • 0

#130
Jismo

Jismo
  • Свой человек
  • 975 сообщений
Попробуй в тестовой карте изначально поставить СК Earth 1, 0.
Если ошибка будет таже то тогда тебе надо будет искать проблему именно в СК(я предполагаю что у тебя не устанавливается СК или же она сбрасывается при открытии новой карты), так как ты работаешь с плоской системой координат то и координаты у тебя линейные, а в сферической СК уже координаты не линейные.
  • 0

#131
Jismo

Jismo
  • Свой человек
  • 975 сообщений
2Радмила Ермоленко
Проостите, но тема про MapBasic, можете прояснить в чем суть вашей рекламы? Или же Ваш курс "Программирование PLC на языках стандарта МЭК 61131-3" как-то может помоч людям разобраться в программировании для MapInfo??? Если нет, то пожалуйста рекламируйте в других ветках. Если да, то ждем разъяснений.
  • 0

#132
Jismo

Jismo
  • Свой человек
  • 975 сообщений
2Dragon_Fire Дам один не большой советик :): в MapInfo есть окно Mapbasic, в нем можно экпериментировать.
  • 0

#133
EGO

EGO
  • Частый гость
  • 93 сообщений
2Dragon_Fire
Поэкспериментируй еще порядком загрузки карт.
или повторно определи единицы измерения после загрузки второй карты.
...Встречалась подобная проблема. решилась как-то так...
  • 0

#134
swatch

swatch
  • Частый гость
  • 99 сообщений
2Dragon_Fire
Поясните как вы грузите карты.
Если через workspace, то обратите внимание на выражение
Set Map
CoordSys ...
Смотреть нужно в wor-файл, который открываем
Там указано какая проекция установлена у карты после открытия. Это поможет понять почему разный результат.
  • 0

#135
Jismo

Jismo
  • Свой человек
  • 975 сообщений
Кто-нибудь, знает как отсортировать уже существующую открытую таблицу и сохранить ее с тем же именем?

Вариант сортировки, используя Select не работает, так как создается временная таблица зависимая от базовой таблицы и при закрытии базовой закрывается и временная, да и к тому имя таблицы тоже другое.
  • 0

#136
swatch

swatch
  • Частый гость
  • 99 сообщений
Вариант только такой с временной таблицей.
  Open Table "C:\Untitled.TAB" as untitled ' <--открываем таблицу которую нужно отсортировать по полю, 
  Select * Fom utitled Into temp Order By id2 '<-- сортируем по id2 и запоминаем выборку как temp
  Commit Table temp as "c:\temp.tab" '<-- сохраняем отсортированную выборку
  Сlose Table untitled '<-- закрываем исходную таблицу
  Open Table "c:\temp.tab" As untitled '<-- открываем сохраненную выборку 
  Commit Table untitled As "c:\untitled.tab" '<-- Сохраняем на место прежней
  Сlose Table untitled '<-- закрываем таблицу связанную с файлом "c:\temp.tab"
  Open Table "C:\Untitled.TAB" as untitled ' <-- открываем отсортированную по полю id2 таблицу  
Последние 3 строки нужны для перезаписи файла исходной таблицы.

Честно говоря, вариант кривой :)
Теперь можно задать глупый вопрос: зачем сохранять данные в отсортированном виде, если их очень быстро можно отсортировать Select-ом?
  • 0

#137
Jismo

Jismo
  • Свой человек
  • 975 сообщений
Да вариант конечно ужос :) но всеравно спс. Ответ: для того чтоб показать, что вот так оно работает :). Да и я еще хотел убедится, что в МИ как ни странно нет возвможности сортировки таблиц с последующим сохранением оных.
  • 0

#138
Jismo

Jismo
  • Свой человек
  • 975 сообщений
тут было 2 варианта: 1 либо я не нашел как это делать и 2 либо этого варианта просто нет :)
  • 0

#139
swatch

swatch
  • Частый гость
  • 99 сообщений
В случае с локальными таблицами другого варианта нет.
Прикладной ценности тоже нет. Поэтому, видимо разработчики основываясь на том, что данные сортированные поверх никто сохранять не будет исключили такую возможность :)
  • 0

#140
Jismo

Jismo
  • Свой человек
  • 975 сообщений
Видимо так и есть, ну да ладно велика потеря :)
  • 0


Количество пользователей, читающих эту тему: 1

пользователей: 0, неизвестных прохожих: 1, скрытых пользователей: 0

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.