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

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


Зарегистрирован: 29.01.2006
Сообщения: 59
Откуда: Прокопьевск

СообщениеДобавлено: Чт Июл 15, 2010 4:50 pm    Заголовок сообщения: Подскажите как сделать.... Ответить с цитатой

В MS есть инструмент измерения площади....каким образом можно сделать так чтоб при измерении нужной площади контура ...само измерение экспортировалось ну скажем в exel
чтоб в первом столбике писалось название файла в катором проводилось измерение, во втором сам результат измерения ....
при этом в следующей строчке записывались имя файла и измерение из второго файла. и т.д. по порядку...
_________________
Было у отца три сына - два умных, а третий на горном факультете учился.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Leonid
давно здесь сидим


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

СообщениеДобавлено: Пт Июл 16, 2010 12:49 pm    Заголовок сообщения: Ответить с цитатой

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


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

СообщениеДобавлено: Пт Июл 16, 2010 3:33 pm    Заголовок сообщения: Ответить с цитатой

Это код для команды
Код:

Sub Area()
    CommandState.StartPrimitive New AreaCommand
End Sub


Код созданного нами класса AreaCommand
Код:

Implements IPrimitiveCommandEvents
Private Sub IPrimitiveCommandEvents_Cleanup()
End Sub
Private Sub IPrimitiveCommandEvents_DataPoint(Point As Point3d, ByVal View As View)
    Dim el As Element
    Dim elc As ClosedElement
    Set el = CommandState.LocateElement(Point, View, True)
    If el.IsClosedElement Then
        Set elc = el.AsClosedElement
        Debug.Print elc.Area ' здесь записываем в файл
    End If
End Sub
Private Sub IPrimitiveCommandEvents_Dynamics(Point As Point3d, ByVal View As View, ByVal DrawMode As MsdDrawingMode)
End Sub
Private Sub IPrimitiveCommandEvents_Keyin(ByVal Keyin As String)
End Sub
Private Sub IPrimitiveCommandEvents_Reset()
    CommandState.StartDefaultCommand
End Sub
Private Sub IPrimitiveCommandEvents_Start()
    CommandState.SetLocateCursor
End Sub


Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Артем
первопроходец


Зарегистрирован: 29.01.2006
Сообщения: 59
Откуда: Прокопьевск

СообщениеДобавлено: Пт Июл 23, 2010 10:40 am    Заголовок сообщения: Ответить с цитатой

а как вставить код в класс?
_________________
Было у отца три сына - два умных, а третий на горном факультете учился.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Leonid
давно здесь сидим


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

СообщениеДобавлено: Пт Июл 23, 2010 1:17 pm    Заголовок сообщения: Ответить с цитатой

Артем, ты издеваешься? Smile
Copy - Paste
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Артем
первопроходец


Зарегистрирован: 29.01.2006
Сообщения: 59
Откуда: Прокопьевск

СообщениеДобавлено: Вс Июл 25, 2010 4:57 pm    Заголовок сообщения: Ответить с цитатой

Leonid я канешно извиняюсь....но не мог бы ты подробно расписать где этот класс взять как в него скопировать и потом запустить???
_________________
Было у отца три сына - два умных, а третий на горном факультете учился.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Leonid
давно здесь сидим


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

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

вот, скачай и посмотри
http://ustation.ru/shots/area.exe
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Артем
первопроходец


Зарегистрирован: 29.01.2006
Сообщения: 59
Откуда: Прокопьевск

СообщениеДобавлено: Вт Июл 27, 2010 9:08 am    Заголовок сообщения: Ответить с цитатой

leonid не могу подгрузить vba. дойдя до ввода команды в MS key-in а там нет vba run....
MS version 7.1
vba установленный 6 sp6
может нужно установить другой vba или куда правильно его установить?
где нужно сохранять класс?
_________________
Было у отца три сына - два умных, а третий на горном факультете учился.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Leonid
давно здесь сидим


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

СообщениеДобавлено: Вт Июл 27, 2010 11:20 am    Заголовок сообщения: Ответить с цитатой

Всё понял, Артем.
С версии и надо было начинать... Smile
Про VBA в семерке забудь, там его просто нету.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Артем
первопроходец


Зарегистрирован: 29.01.2006
Сообщения: 59
Откуда: Прокопьевск

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

Тогда какие есть способы в 7 версии чтоб реализовать задуманное? Embarassed
_________________
Было у отца три сына - два умных, а третий на горном факультете учился.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Leonid
давно здесь сидим


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

СообщениеДобавлено: Вт Июл 27, 2010 6:33 pm    Заголовок сообщения: Ответить с цитатой

MS Basic. Но разобраться в нем будет чуть труднее, чем в VBA, так что... Don't know
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Артем
первопроходец


Зарегистрирован: 29.01.2006
Сообщения: 59
Откуда: Прокопьевск

СообщениеДобавлено: Пн Авг 02, 2010 8:04 am    Заголовок сообщения: Ответить с цитатой

leonid поскажи еще пару моментов. как проверить наличие одного файла (txt) в тойже дериктории что и открытые чертежи.
Код:
 Private Sub IPrimitiveCommandEvents_DataPoint(point As Point3d, ByVal View As View)

       
       Dim length As Long
       Dim dgnModelRefP As Long
       Dim currDGN As String
    Dim iFile As Integer
    Dim sLine As String
    Dim el As Element
    Dim elc As ClosedElement
    Dim iDGN As String
    Dim Direk As String
   
    Set el = CommandState.LocateElement(point, View, True)
    If el.IsClosedElement Then
        Set elc = el.AsClosedElement
        'Debug.Print elc.Area           ' здесь записываем в файл
    length = 20
    iDGN = Space(length) 'очистка переменной
     mdlModelRef_getDisplayName dgnModelRefP, StrPtr(iDGN), length, 0 ' получение имени файла
     iDGN = Left$(iDGN, InStr(1, iDGN, vbNullChar) - 5) ' убираем лишние пробелы и расширение файла.
     
   '  Direk = Path & "\" & "ploshad.txt" '  [b]Как открыть ту дерикторию в которой открыты файлы?
                                            ' проверить наличие файла. если нет создать. если есть открыть.[/b]
     iFile = FreeFile
  ' Open Direk For Input As iFile
   

Open "c:\myfile.txt" For Input As iFile
sLine = Input$(LOF(iFile), #iFile)
currDGN = sLine & iDGN & "," & Str(elc.Area)
Close #iFile
        Open "c:\myfile.txt" For Output As #iFile 'Len = Len(MyRecord)
       
    Print #iFile, currDGN
    Close #iFile
       MsgBox (currDGN)
    End If
End Sub
[/code]
_________________
Было у отца три сына - два умных, а третий на горном факультете учился.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Leonid
давно здесь сидим


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

СообщениеДобавлено: Пн Авг 02, 2010 8:28 pm    Заголовок сообщения: Ответить с цитатой

Код:


    If el.IsClosedElement Then
   
        Set elc = el.AsClosedElement
       
        ' получаем имя файла в текущей директории
        Dim strTxtFileName As String
        strTxtFileName = ActiveDesignFile.Path & "\ploshad.txt"
       
        ' открываем файл...
        '       [b]Как открыть ту дерикторию в которой открыты файлы?
        '       проверить наличие файла. если нет создать. если есть открыть.[/b]
        ' есть ли смысл проверять?
        ' команда open for append октрывает существующий файл для добавления данных,
        ' а если файла не сущетствует - создает его
       
        iFile = FreeFile
        Open strTxtFileName For Append As iFile
        Print #iFile, Round(elc.Area, 1)
        Close iFile
   
    End If


Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Артем
первопроходец


Зарегистрирован: 29.01.2006
Сообщения: 59
Откуда: Прокопьевск

СообщениеДобавлено: Вт Авг 03, 2010 11:06 am    Заголовок сообщения: Ответить с цитатой

спасибо... Very Happy
Leonid подскажи есче , можно как то изменять индентификатор какова либо элемента? скажем назначить параметры для определенного контура.


это профиль горных работ, на нем обведен контур заходки экскаватора. , скажем можно ли к даному контуру назначить дату и № экскаватора каторый работал там.
_________________
Было у отца три сына - два умных, а третий на горном факультете учился.


Последний раз редактировалось: Артем (Вт Авг 03, 2010 2:57 pm), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Leonid
давно здесь сидим


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

СообщениеДобавлено: Вт Авг 03, 2010 4:40 pm    Заголовок сообщения: Ответить с цитатой

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

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


Powered by phpBB © 2001, 2005 phpBB Group