Как кодом вывести чертеж на экспорт файла в формат PDF

Автор Тема: Как кодом вывести чертеж на экспорт файла в формат PDF  (Прочитано 9754 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн Сергей SSSАвтор темы

  • ADN OPEN
  • Сообщений: 36
  • Карма: 0
Решил заняться программированием в инвенторе. Нужно перевезти в pdf. Причем имя файла pdf бралось автоматом из обозначения проекта в свойствах сборки.iam

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 752
  • Карма: 195
  • Skype: mikazakov@mail.ru
Нужно перевезти в pdf. Причем имя файла pdf бралось автоматом из обозначения проекта в свойствах сборки.iam
что перевести? модель или чертеж? Язык какой?
Если это чертеж, то можно решить эту потребность другим способом, без программирования.

1. Изначально файлы инвентора должны иметь одинаковое название файла и обозначение.
2.Устанавливаем пдф-криатор для печати чертежа в пдф-файл:
http://pdfcreator.ru/
в нем можно настраивать имена выходных файлов.
3.запускаем планировщик задач (таск шедулер) и создаем пакетную печать чертежей в папке в пдф при помощи пдф-криатора.

и все готово, можно идти пить чай, за 15 мин планировщик задач может 500 чертежей перекатать в пдф.

Оффлайн Сергей SSSАвтор темы

  • ADN OPEN
  • Сообщений: 36
  • Карма: 0
Спасибо, но первоначально обозначение чертежа назначать смысла нет. Неизвестно каким оно будет потом. А язык ilogic. Сложности в том чтобы находясь в чертеже вытащить из свойства модели обозначение (не из свойства чертежа)

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 752
  • Карма: 195
  • Skype: mikazakov@mail.ru
А язык ilogic.
Эта тема видимо популярная, yourtube рулит:



Собственно строка в илоджике:
Код - Visual Basic [Выбрать]
  1. ThisDoc.Document.SaveAs("D:\test.pdf", true)
уже будет сохранять в пдф.
Все остальное, что они в видео делают, просто назначают путь куда сохранять.

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


Оффлайн Сергей SSSАвтор темы

  • ADN OPEN
  • Сообщений: 36
  • Карма: 0
modelName = IO.Path.GetFileName(ThisDrawing.ModelDocument.FullFileName)
это получение имя модели документа. А как получить обозначение из модели документа, чтобы им уже манипулировать в среде чертежа. В данном конкретном случае печать в пдф уже с измененным именем, в котором присутствует обозначение

Оффлайн Сергей SSSАвтор темы

  • ADN OPEN
  • Сообщений: 36
  • Карма: 0
Разобрался
Код - Visual Basic [Выбрать]
  1. modelName = IO.Path.GetFileName(ThisDrawing.ModelDocument.FullFileName)
  2. iProperties.Value("Project", "Part Number")=iProperties.Value(modelName, "Project", "Part Number")
  3. iProperties.Value("Project", "Description")=iProperties.Value(modelName, "Project", "Description")
  4. MName=iProperties.Value("Project", "Part Number")& " " & iProperties.Value("Project", "Description")
  5. ThisDoc.Document.SaveAs("\\To1\обмен\_НА ПЕЧАТЬ\" & MName & ".pdf", True)
  6.  
« Последнее редактирование: 04-04-2016, 13:07:48 от Александр Ривилис »

Оффлайн Сергей SSSАвтор темы

  • ADN OPEN
  • Сообщений: 36
  • Карма: 0
Тут появился следующий вопрос. Как это правило сделать правилом для всех вновь создающихся деталей. Хотел к шаблону подшить это правило- не получилось

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
На форуме действует своё правило: "Один вопрос - одна тема". Так что создай отдельную тему.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Отмечено как Решение Сергей SSS 11-04-2016, 14:51:33

Оффлайн Сергей SSSАвтор темы

  • ADN OPEN
  • Сообщений: 36
  • Карма: 0
Лучший код:
Код - vb.net [Выбрать]
  1. ' Get the PDF translator Add-In.
  2. Dim PDFAddIn As TranslatorAddIn
  3. PDFAddIn = ThisApplication.ApplicationAddIns.ItemById("{0AC6FD96-2F4D-42CE-8BE0-8AEA580399E4}")
  4. 'Set a reference to the active document (the document to be published).
  5. Dim oDocument As Document
  6. oDocument = ThisApplication.ActiveDocument
  7. Dim oContext As TranslationContext
  8. oContext = ThisApplication.TransientObjects.CreateTranslationContext
  9. oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism
  10. ' Create a NameValueMap object
  11. Dim oOptions As NameValueMap
  12. oOptions = ThisApplication.TransientObjects.CreateNameValueMap
  13. ' Create a DataMedium object
  14. Dim oDataMedium As DataMedium
  15. oDataMedium = ThisApplication.TransientObjects.CreateDataMedium
  16.  
  17. ' Check whether the translator has 'SaveCopyAs' options
  18. If PDFAddIn.HasSaveCopyAsOptions(oDataMedium, oContext, oOptions) Then
  19. 'oOptions.Value("All_Color_AS_Black") = 1
  20. oOptions.Value("Remove_Line_Weights") = 0
  21. oOptions.Value("Vector_Resolution") = 400
  22. oOptions.Value("Sheet_Range") = Inventor.PrintRangeEnum.kPrintAllSheets
  23. 'oOptions.Value("Custom_Begin_Sheet") = 2
  24. 'oOptions.Value("Custom_End_Sheet") = 4
  25. End If
  26.  
  27. PDFDirectory = ThisDoc.Path
  28. oFileName = ThisDoc.FileName(False) 'without extension
  29.  
  30. modelName = IO.Path.GetFileName(ThisDrawing.ModelDocument.FullFileName)
  31. iProperties.Value("Project", "Part Number")=iProperties.Value(modelName, "Project", "Part Number")
  32. iProperties.Value("Project", "Description")=iProperties.Value(modelName, "Project", "Description")
  33. MName=iProperties.Value("Project", "Part Number")& " " & iProperties.Value("Project", "Description")
  34.  
  35. oDataMedium.FileName = "D:\PRINT\" & "\" & MName & ".PDF"
  36.  
  37. 'Publish document.
  38. PDFAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium)
  39. 'Launch the PDF file in whatever application Windows is set to open this document type with
  40. i = MessageBox.Show("Открыть?", "PDF Preview",MessageBoxButtons.YesNo,MessageBoxIcon.Question)
  41. If i = vbYes Then ThisDoc.Launch(oDataMedium.FileName)
  42.  
  43.  


В этом случае печать многостраничная возможна
« Последнее редактирование: 07-04-2016, 11:11:49 от Александр Ривилис »