Сообщество программистов Autodesk в СНГ
ADN Club => Inventor API => Тема начата: niksasa от 09-01-2014, 17:05:37
-
Добрый день. Есть чертеж, на который вставлены виды от разных моделей. Я могу узнать имена файлов всех вставленных моделей или только имя модели первого вида?
-
См. свойство DrawingView.ReferencedDocumentDescriptor.
Из дескриптора можно получить ссылку на документ и полный путь к файлу.
-
См. свойство DrawingView.ReferencedDocumentDescriptor.
Из дескриптора можно получить ссылку на документ и полный путь к файлу.
Что на подобие этого?
http://adndevblog.typepad.com/manufacturing/2012/06/use-drawingviewreferenceddocumentdescriptor-to-determine-the-document-providing-the-properties-in-the-text-format-dialog.html
и
http://inventortrenches.blogspot.com/2012/01/set-your-drawing-view-labels-to-use.html
-
Да, в обоих случаях используется один и тот же способ получения из DrawingView ссылки на документ через его дескриптор. А дельше с этой ссылкой можно делать все, что угодно. Раз есть документ, значит доступны его свойства, параметры и все остальное. Типичная задача - извлечь нечто нестандартное из пользовательских свойств и отобразить непосредствено на чертеже.
-
Всё равно не ясно как мне например для двух видов разных моделей на чертеже задать вместо метки вида свое обозначение.
Если использовать это правило, то для всех видов задается одно и тоже обозначение, хотя виды от разных моделей.
Dim oApp As Application: oApp = ThisApplication
Dim oDoc As DrawingDocument: oDoc = oApp.ActiveDocument
Dim oSheets As Sheets
Dim oSheet As Sheet
Dim oViews As DrawingViews
Dim oView As DrawingView
oSheets = oDoc.Sheets
For Each oSheet In oSheets
oViews = oSheet.DrawingViews
For Each oView In oViews
oModelName = _
oView.ReferencedDocumentDescriptor.ReferencedDocument.DisplayName
oPartNumber = iProperties.Value(oModelName, "Project", "Part Number")
oView.Name = oPartNumber
Next
Next
Какие дополнительные проверки нужно еще задать или нужно конкретно указывать имя каждого вида?
-
В команде
oPartNumber = iProperties.Value(oModelName, "Project", "Part Number")
вместо oModelName нужно задавать не DisplayName, а FullFIleName - полный путь к файлу.
Альтернатива: извлекать Part number из документа, который вам дает дескриптор средствами Inventor API.
(ровно так, как вы поступили в случае c DisplayName).
См. обзор в хелпе про работу со свойствами iProperties.