Список форумов Конференция САПР Bentley MicroStation Конференция САПР Bentley MicroStation
www.ustation.ru
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Растровые файлы с фиксированным размещением

 
Начать новую тему   Ответить на тему    Список форумов Конференция САПР Bentley MicroStation -> Прикладное
Предыдущая тема :: Следующая тема  
Автор Сообщение
jeder



Зарегистрирован: 28.08.2006
Сообщения: 10

СообщениеДобавлено: Чт Dec 07, 2006 1:56 pm    Заголовок сообщения: Растровые файлы с фиксированным размещением Ответить с цитатой

Уважаемые господа, подскажите, пожалуйста, как реализовать следующую задумку.
Есть множество растровых файлов. Файлы подгружаются не интерактивно, а фиксировано, т.е. каждый размещается строго на своём месте.
Запомнить куда какой файл нужно подгрузить - нереально!
Хотелось бы, чтобы подгружался нужный файл, просто ткнув мышкой в нужную область рабочего пространства. Как этого добиться (на VBA)?
И как на VBA в свою программу получить информацию о расположении указателя на экране?
Заранее, всем спасибо!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Dmitriy



Зарегистрирован: 26.07.2006
Сообщения: 14
Откуда: Тюмень

СообщениеДобавлено: Пт Dec 08, 2006 9:46 am    Заголовок сообщения: Ответить с цитатой

Про координаты мышки...
Почитай в хелпе IPrimitiveCommandEvents.
Примеры использования там тоже есть.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Natash



Зарегистрирован: 07.03.2007
Сообщения: 21

СообщениеДобавлено: Чт Мар 08, 2007 10:23 am    Заголовок сообщения: Ответить с цитатой

у меня смежный к теме вопрос

на бейсике реализована такая задача, как автор описывает. один недостаток... не проверяется, загружен ли уже растр на месте куда пользователь кликает. Грузить то грузит, но не проверяет, есть ли уже что то... а ето не красиво
така я же беда с закрытием растров, выгружать выгружает, но не проверяет...

я начинающая. проконсультируйте пожалуйста. как на МСбейсике такую штуку сделать
спасибо
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Leonid
давно здесь сидим


Зарегистрирован: 28.01.2006
Сообщения: 598
Откуда: С.-Петербург

СообщениеДобавлено: Чт Мар 08, 2007 10:42 pm    Заголовок сообщения: Ответить с цитатой

Natash

А все-таки, в чем вы собираетесь это делать - в VBA или MS Basic?
_________________
Непонимание различия операторов OR и XOR может привести к зависанию в проеме. Спросите у Винни-Пуха.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Natash



Зарегистрирован: 07.03.2007
Сообщения: 21

СообщениеДобавлено: Пт Мар 09, 2007 9:47 am    Заголовок сообщения: Ответить с цитатой

Leonid писал(а):
Natash

А все-таки, в чем вы собираетесь это делать - в VBA или MS Basic?


v ms basic
скрипты написаны на нем, просто хочу довести до ума...
т.е. заделать внутрь часть которая проверяет, есть ли на том месте куда кликают уже растр

каким образом ето сделать не найду никак
перерыла интернет...
код читать могу, но и без него разобралась бы наверное, если б подсказка была
в гуиде про работу с растрами не нашла ничего
и я только начинаю осваивать программирование...
короче дуб, но активный Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Leonid
давно здесь сидим


Зарегистрирован: 28.01.2006
Сообщения: 598
Откуда: С.-Петербург

СообщениеДобавлено: Пт Мар 09, 2007 2:35 pm    Заголовок сообщения: Ответить с цитатой

Natash

Интернет перерывать бесполезно, там про МС басик врядли что толкового есть.

В руководстве по МС басику есть упоминание только про
MbeElement.type = MBE_RasterHeader
То есть по идее можно, если пойман элемент - проверить, является и он растром или нет.

Код:

Dim element as New MbeElement
 ... ' get an element by some method
 If element.type = MBE_RasterHeader Then
     ... ' process element
 End If


Если приведете ваш код, может еще чего умного подскажу.
_________________
Непонимание различия операторов OR и XOR может привести к зависанию в проеме. Спросите у Винни-Пуха.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Natash



Зарегистрирован: 07.03.2007
Сообщения: 21

СообщениеДобавлено: Вт Июн 05, 2007 1:20 pm    Заголовок сообщения: Ответить с цитатой

Leonid писал(а):
Natash
Если приведете ваш код, может еще чего умного подскажу.


привет

я все с тем же вопросом, есть скрипт который выгружает растр из группы загруженных, кликаешь на растр и он выгружается
вопрос что бы такое сделать, что б еще и проверялось, в то ли место кликнуто, т.е. есть ли на месте кликания растер.
привожу код для наглядности

Код:

Option Explicit

Sub TestPoistaKuva()

    Dim oMessage        As CadInputMessage
    Dim OsoitusPiste    As Point3d
    Dim oRasterNum      As ElementEnumerator
    Dim oRaster         As Raster
    Dim theRasters      As Rasters
   
    CommandState.StartDefaultCommand
    Application.ShowCommand "Running images dettaching"
   
    CadInputQueue.SendCommand "IMGMANAGER IMAGE UNSELECT"
   
Do While True
   
    If RasterManager.Rasters.Count < 1 Then
        Application.ShowPrompt ""
        MsgBox "There in no images to dettaching. Action was stopped"
        Application.ShowStatus ""
            Exit Sub
    End If
 
    '  Wait for input.
ASK:
    Application.ShowPrompt " Select image to dettach / or press reset to exit"
    Set oMessage = CadInputQueue.GetInput(msdCadInputTypeDataPoint, msdCadInputTypeReset)

    '   Now process the message
   
    If oMessage.InputType = msdCadInputTypeDataPoint Then
        OsoitusPiste = oMessage.point
               
    ElseIf oMessage.InputType = msdCadInputTypeReset Then
            Application.ShowPrompt " Got reset, will exit now"
            Application.ShowStatus ""
                Exit Sub
           
    End If
        ShowStatus "x = " & OsoitusPiste.X & ", y = " & OsoitusPiste.Y & ", z = " _
        & OsoitusPiste.Z
       
    '   Select an image
   
        CadInputQueue.SendCommand "IMGMANAGER IMAGE SELECT"
        CadInputQueue.SendDataPoint OsoitusPiste
       
 '  ...Tut neponjatno
 '  ...Set theRasters = RasterManager.Rasters.GetSelectedRasters
 '  ...For Each...
   
 '  ...If oRaster.ExtendedInformation.IsSelected = True Then
   
        CadInputQueue.SendCommand "RASTER DETACH"
 '  Else: MsgBox "Raster is not selected. Try again"
 '      GoTo ASK
 '  End If

    Loop

End Sub


спасибо
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Natash



Зарегистрирован: 07.03.2007
Сообщения: 21

СообщениеДобавлено: Вт Июн 05, 2007 2:01 pm    Заголовок сообщения: Ответить с цитатой

Natash писал(а):
что бы такое сделать, что б еще и проверялось, в то ли место кликнуто, т.е. есть ли на месте кликания растер.


сама спрашивала сама и отвечаю, нашлось кое-какое решение
вот

Код:

    Set oEnum = RasterManager.Rasters.GetSelectedRasters
   
    If oEnum.MoveNext = True Then
        CadInputQueue.SendCommand "RASTER DETACH"
    Else: MsgBox "Raster is not selected. Try again"
        GoTo ASK
    End If

если б кто еще подсказал, как оно вообще, насколько неграмотно и коряво и что и где можно и нужно доработать
спасибо
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Leonid
давно здесь сидим


Зарегистрирован: 28.01.2006
Сообщения: 598
Откуда: С.-Петербург

СообщениеДобавлено: Ср Июн 06, 2007 10:13 am    Заголовок сообщения: Ответить с цитатой

А что... очень даже прилично и аккуратно Smile
Главное - чтобы работало.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Юра



Зарегистрирован: 30.01.2006
Сообщения: 59

СообщениеДобавлено: Ср Июн 13, 2007 3:31 pm    Заголовок сообщения: Ответить с цитатой

Главное что бы код был оптимальным Smile)
а то буит как сейчас понапишут килотонны не оптмизированных программ а потом говорим - Тромозит ... !
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Natash



Зарегистрирован: 07.03.2007
Сообщения: 21

СообщениеДобавлено: Пт Июн 15, 2007 4:10 pm    Заголовок сообщения: Ответить с цитатой

Юра писал(а):
Главное что бы код был оптимальным Smile)
а то буит как сейчас понапишут килотонны не оптмизированных программ а потом говорим - Тромозит ... !


оптимальный ето как? я только в начале пути, что такое оптимизация не помню
просвятите, прошу, пожалуйста, очень нужно

спасибо всем, кто откликается на просьбы мои и кто не забыл, как сам был в начале пути
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Конференция САПР Bentley MicroStation -> Прикладное Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group