On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение



Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 18.09.05 11:03. Заголовок: Возможно ли программно узнать массу деталей и сборок?


Возможно ли программно узнать массу компонентов сборки находясь в пространстве сборочного чертежа специально не открывая эти компоненты?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 13 [только новые]





Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 19.09.05 08:32. Заголовок: Re:


brigval пишет:
цитата
узнать массу компонентов сборки находясь в пространстве сборочного чертежа


Dim oUnkNoumnDoc As Document
Dim oDoc As Document
Dim oApplication As Inventor.Application

Set oApplication = GetObject(, "Inventor.Application")

Set oDoc = oApplication.ActiveDocument ' открытый чертеж сборки хотя бы с одним видовым окном
If oDoc Is Nothing Then
MsgBox ("Откройте хоть один чертеж *.idw или *.iam") ' ничто не открыто
End
End If

If oDoc.FullFileName Like "" Then ' проверяем спасли ли мы чертеж , если нет спасаем

Dim oControlDef As ControlDefinition
Set oControlDef = ThisApplication.CommandManager.ControlDefinitions.Item ("AppFileSaveCmd") ' AssemblyPropertiesCmd'AppiPropertiesWrapperCmd


oControlDef.Execute




End If
If oDoc.FullFileName Like "" Then ' вы не стали спасать чертеж - выход из проги
'GoTo Again
MsgBox "Вы не спасли файл,программа будет закрыта"
UserForm_Terminate
End
End If
Dim sPathName As String

sPathName = oDoc.ReferencedFiles.Item(1).FullFileName 'Полный путь к файлу сборки ( *.iam)

Set oUnkNoumnDoc = ThisApplication.Documents.Open(sPathName, False) ' открываем сборку без активизации окна

Dim oCompDef As Inventor.ComponentDefinition
Set oCompDef = oUnkNoumnDoc.ComponentDefinition ' коллекция всех элементов сборки

If oDoc.DocumentType Like kDrawingDocumentObject Then
oUnkNoumnDoc.Close
End If

For Each oCompOcc In oCompDef.Occurrences ' проход по всей сборки

On Error Resume Next ' если ,например, деталь unresolve

If oCompOcc.SubOccurrences.count = 0 Then

Dim oMassProps As MassProperties
Set oMassProps = oCompOcc.MassProperties '



Debug.Print "Mass: " & oMassProps.Mass ' масса каждой детали в сборке
End If
Next oCompOcc

Вот и все


Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 19.09.05 09:34. Заголовок: Re:


Витек

Это вариант! Спасибо.
Только не совсем понял почему чертеж надо спасать.

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 19.09.05 09:48. Заголовок: Re:


brigval пишет:
цитата
Только не совсем понял почему чертеж надо спасать


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

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 19.09.05 14:40. Заголовок: Re:


Он может как-то потеряться? Ведь если он открыт, то доступ к нему получить не трудно. Или перебором или сразу по имени.

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 20.09.05 05:44. Заголовок: Re:


brigval пишет:
цитата
Он может как-то потеряться?

Если вы только что создали чертеж и еще ни разу не спасали его, то соответственно и работать с ним используя файловую систему нет возможности, например
oDoc.FullFileName - запрос его полного имени ( с путями) даст error.

или допустим вы захотите запросить у его сборки (*.iam) ссылку на чертеж(reference) ( то есть на файл *.idw который открыт , но еще не спасен вами на диске) - так же будет ошибка.
Если вам этого не нужно, то конечно и спасать предварительно програмно нет необходимости.

Во всем остальном вы правы, работать с ним можно как обычно.
brigval пишет:
цитата
Или перебором

У меня это вызывает сложности , не у меня а у системы.Когда я ищу ,допустим , в сборке чертеж для выбранной детали, то перебором по workspace, и workgroup в проекте приходиться методом перебора открывать ( Documents.Open(sPathName, False) все чертежи и просматривать на какую деталь они ссылаются
Dim RefFilesDesc As ReferencedFileDescriptor
Set RefFilesDesc = oMyDoc.ReferencedFileDescriptors.Item(1)
а это занимает кучу времени, а не открыв файл я не могу получить доступ к его Referenced.
ВОЗМОЖНО КТО ТО ЗНАЕТ БОЛЕЕ БЫСТРЫЙ ПУТЬ ???
При использовании Apprentice Server все происходит гораздо быстрее , чем в среде AIP.
Всего хорошего.

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 20.09.05 08:08. Заголовок: Re:


Витек
Теперь понял. Пока файл не сохранен на диске (не спасен:) )он не получает расширения. И, естественно, не входит в файловую систему.
А методом перебора я предполагал искать среди открытых документов.

Витек пишет:
цитата
запросить у его сборки (*.iam) ссылку на чертеж(reference)

А разве в сборке есть ссылки на чертежи? Это интересно.

цитата
ВОЗМОЖНО КТО ТО ЗНАЕТ БОЛЕЕ БЫСТРЫЙ ПУТЬ ???

Я не понял для чего мне было бы надо ИСКАТЬ ЧЕРТЕЖ компонента (детали или сборки)?

Спасибо: 0 
ПрофильЦитата Ответить
модератор


Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 20.09.05 12:39. Заголовок: Re:


Велик и могуч ты - русский язык!!!
у нас в Эстонии до сих пор говорят "сохранить файл" - а у Вас уже "спасти чертеж"
однако как красиво звучит!...

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 20.09.05 13:33. Заголовок: Re:


student пишет:
цитата
у нас в Эстонии

У нас в России есть понятие спасти ЖИЗНЬ, а сохранить жизнь скорее для братков подходит.

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 20.09.05 13:39. Заголовок: Re:


brigval пишет:
цитата
А разве в сборке есть ссылки на чертежи

Это я не прав, ссылка есть в чертеже на *.ipt либо *.iam , *.ipn из которого он сделан ( да простят меня эстонцы за русский сленг , читайте создан ). А поиск всех чертежей я произвожу при открытии общей сборки для выяснения каких чертежей при разработке и оформления документации еще не достает. При большом проекте удобно.


Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 20.09.05 16:47. Заголовок: Re:


Витек
Понятно. Согласен, что удобно иметь информацию о еще не выпущенных чертежах. У меня такие "документы" помещаются пока в раздел "Прочие изделия". Вероятно, не самый лучший вариант, но информация эта должна присутствовать. Почему в "Прочие..."? Потому что если отсутствует чертеж, то еще не ясно сделает ли конструктор из этого компонета деталь, сборку, прочее изделие или материал.

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 02.12.05 11:04. Заголовок: Re:


Извените как это загрузить запустить

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
ссылка на сообщение  Отправлено: 17.02.06 13:48. Заголовок: Re:




Спасибо: 0 
Цитата Ответить



Не зарегистрирован
Рейтинг: 0
ссылка на сообщение  Отправлено: 17.02.06 13:55. Заголовок: Re:

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 1
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация вкл, правка нет