Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Артем первопроходец
Зарегистрирован: 29.01.2006 Сообщения: 59 Откуда: Прокопьевск
|
Добавлено: Чт Июл 15, 2010 4:50 pm Заголовок сообщения: Подскажите как сделать.... |
|
|
В MS есть инструмент измерения площади....каким образом можно сделать так чтоб при измерении нужной площади контура ...само измерение экспортировалось ну скажем в exel
чтоб в первом столбике писалось название файла в катором проводилось измерение, во втором сам результат измерения ....
при этом в следующей строчке записывались имя файла и измерение из второго файла. и т.д. по порядку... _________________ Было у отца три сына - два умных, а третий на горном факультете учился. |
|
Вернуться к началу |
|
|
Leonid давно здесь сидим
Зарегистрирован: 28.01.2006 Сообщения: 598 Откуда: С.-Петербург
|
Добавлено: Пт Июл 16, 2010 12:49 pm Заголовок сообщения: |
|
|
Это уже практически готовое тех.задание для несложного макроса _________________ Непонимание различия операторов OR и XOR может привести к зависанию в проеме. Спросите у Винни-Пуха. |
|
Вернуться к началу |
|
|
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
|
|
|
Вернуться к началу |
|
|
Артем первопроходец
Зарегистрирован: 29.01.2006 Сообщения: 59 Откуда: Прокопьевск
|
Добавлено: Пт Июл 23, 2010 10:40 am Заголовок сообщения: |
|
|
а как вставить код в класс? _________________ Было у отца три сына - два умных, а третий на горном факультете учился. |
|
Вернуться к началу |
|
|
Leonid давно здесь сидим
Зарегистрирован: 28.01.2006 Сообщения: 598 Откуда: С.-Петербург
|
Добавлено: Пт Июл 23, 2010 1:17 pm Заголовок сообщения: |
|
|
Артем, ты издеваешься?
Copy - Paste |
|
Вернуться к началу |
|
|
Артем первопроходец
Зарегистрирован: 29.01.2006 Сообщения: 59 Откуда: Прокопьевск
|
Добавлено: Вс Июл 25, 2010 4:57 pm Заголовок сообщения: |
|
|
Leonid я канешно извиняюсь....но не мог бы ты подробно расписать где этот класс взять как в него скопировать и потом запустить??? _________________ Было у отца три сына - два умных, а третий на горном факультете учился. |
|
Вернуться к началу |
|
|
Leonid давно здесь сидим
Зарегистрирован: 28.01.2006 Сообщения: 598 Откуда: С.-Петербург
|
|
Вернуться к началу |
|
|
Артем первопроходец
Зарегистрирован: 29.01.2006 Сообщения: 59 Откуда: Прокопьевск
|
Добавлено: Вт Июл 27, 2010 9:08 am Заголовок сообщения: |
|
|
leonid не могу подгрузить vba. дойдя до ввода команды в MS key-in а там нет vba run....
MS version 7.1
vba установленный 6 sp6
может нужно установить другой vba или куда правильно его установить?
где нужно сохранять класс? _________________ Было у отца три сына - два умных, а третий на горном факультете учился. |
|
Вернуться к началу |
|
|
Leonid давно здесь сидим
Зарегистрирован: 28.01.2006 Сообщения: 598 Откуда: С.-Петербург
|
Добавлено: Вт Июл 27, 2010 11:20 am Заголовок сообщения: |
|
|
Всё понял, Артем.
С версии и надо было начинать...
Про VBA в семерке забудь, там его просто нету. |
|
Вернуться к началу |
|
|
Артем первопроходец
Зарегистрирован: 29.01.2006 Сообщения: 59 Откуда: Прокопьевск
|
Добавлено: Вт Июл 27, 2010 2:08 pm Заголовок сообщения: |
|
|
Тогда какие есть способы в 7 версии чтоб реализовать задуманное? _________________ Было у отца три сына - два умных, а третий на горном факультете учился. |
|
Вернуться к началу |
|
|
Leonid давно здесь сидим
Зарегистрирован: 28.01.2006 Сообщения: 598 Откуда: С.-Петербург
|
Добавлено: Вт Июл 27, 2010 6:33 pm Заголовок сообщения: |
|
|
MS Basic. Но разобраться в нем будет чуть труднее, чем в VBA, так что... |
|
Вернуться к началу |
|
|
Артем первопроходец
Зарегистрирован: 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] _________________ Было у отца три сына - два умных, а третий на горном факультете учился. |
|
Вернуться к началу |
|
|
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
|
|
|
Вернуться к началу |
|
|
Артем первопроходец
Зарегистрирован: 29.01.2006 Сообщения: 59 Откуда: Прокопьевск
|
Добавлено: Вт Авг 03, 2010 11:06 am Заголовок сообщения: |
|
|
спасибо...
Leonid подскажи есче , можно как то изменять индентификатор какова либо элемента? скажем назначить параметры для определенного контура.
это профиль горных работ, на нем обведен контур заходки экскаватора. , скажем можно ли к даному контуру назначить дату и № экскаватора каторый работал там. _________________ Было у отца три сына - два умных, а третий на горном факультете учился.
Последний раз редактировалось: Артем (Вт Авг 03, 2010 2:57 pm), всего редактировалось 1 раз |
|
Вернуться к началу |
|
|
Leonid давно здесь сидим
Зарегистрирован: 28.01.2006 Сообщения: 598 Откуда: С.-Петербург
|
Добавлено: Вт Авг 03, 2010 4:40 pm Заголовок сообщения: |
|
|
теги использовать не пробовал? |
|
Вернуться к началу |
|
|
|