الآلية طريقة لتصدير المشاريع مخططات المهندس المعماري؟
-
10-07-2019 - |
سؤال
المشكلة: تم إنشاء الكثير من لدينا وثائق التصميم والهندسة المعمارية والمحافظة عليها في المؤسسة المهندس المعماري - للأفضل أو لل الأسوأ من ذلك، هذه هي الطريقة هو عليه. يتم تخزين هذه الوثائق في منطقتنا مستودع التخريب - الذي يعمل بشكل جيد جدا للناس أن إنشاء وتحديثها - لأن لدينا تراخيص لEA - ولكن العديد من المطورين (على الصعيدين الداخلي والخارجي) الذين يعملون على مصدر برنامج دينا وتحتاج إلى إجراء استخدام الرسوم البيانية ولكن لا جميعا تراخيص EA.
والفقراء الحل: يمكننا أن يدويا تصدير الوثائق EA إلى تنسيق المحمولة ومن ثم تحقق تلك الموجودة، ولكن لا بد ان تكون أوقاتا تنسيق الإصدار المحمولة قديما مع وثيقة EA نظرا لأنه يعتمد على الإنسان ل اتخاذ خطوات لتحويل يدويا.
وأفضل الحل: لقد كان يبحث عن طريقة لأتمتة عملية التحويل. يمكن تشغيل هذا النحو بعد ارتكاب هوك أو كجزء من نظام التكامل المستمر لنا. الجزء نحن في عداد المفقودين هو القطعة التي تسمح لنا لأتمتة عملية التحويل. أي أفكار؟
المحلول
في رمز مثال لقد اكتشفت للتو سوف حفيف وظيفة تفعل بالضبط ما تريد. ولكن مخفية بعيدا عن اسم ليس مفيدا جدا من على ProjectInterfaceExample : ل
option explicit
!INC Local Scripts.EAConstants-VBScript
'
' Examples of how to access and use the Project Interface.
'
' Related APIs
' =================================================================================
' Project Interface API - http://www.sparxsystems.com/uml_tool_guide/sdk_for_enterprise_architect/project_2.html
'
' Global reference to the project interface
dim projectInterface as EA.Project
sub ProjectInterfaceExample()
' Show the script output window
Repository.EnsureOutputVisible "Script"
Session.Output( "VBScript PROJECT INTERFACE EXAMPLE" )
Session.Output( "=======================================" )
set projectInterface = Repository.GetProjectInterface()
' Iterate through all model nodes
dim currentModel as EA.Package
for each currentModel in Repository.Models
' Iterate through all child packages and save out their diagrams
dim childPackage as EA.Package
for each childPackage in currentModel.Packages
DumpDiagrams childPackage
next
next
Session.Output( "Done!" )
end sub
'
' Recursively saves all diagrams under the provided package and its children
'
sub DumpDiagrams ( thePackage )
' Cast thePackage to EA.Package so we get intellisense
dim currentPackage as EA.Package
set currentPackage = thePackage
' Iterate through all diagrams in the current package
dim currentDiagram as EA.Diagram
for each currentDiagram in currentPackage.Diagrams
' Open the diagram
Repository.OpenDiagram( currentDiagram.DiagramID )
' Save and close the diagram
Session.Output( "Saving " & currentDiagram.Name )
projectInterface.SaveDiagramImageToFile "c:\\temp\\" + currentDiagram.Name + ".emf"
Repository.CloseDiagram( currentDiagram.DiagramID )
next
' Process child packages
dim childPackage as EA.Package
for each childPackage in currentPackage.Packages
DumpDiagrams childPackage
next
end sub
ProjectInterfaceExample
وقد تحتاج إلى تهذيب ذلك ليت (أي لا أكتب كل شيء في C: \ درجة الحرارة). وإنما هو بداية جيدة
نصائح أخرى
وأنا لست على دراية مع هذا المنتج ولكن موقع ويب الذي تصل إلى تذكر واجهة التنفيذ. هذا يجب أن تسمح لك للسيطرة على المؤسسة المهندس المعماري من لغة البرمجة مثل VBScript أو جافا سكريبت. قد يكون من الممكن طباعة عبر هذه الواجهة. إذا كان الأمر كذلك، هل يمكن تثبيت PDF برنامج تشغيل الطابعة (أو طباعة ل ملف باستخدام عام برنامج تشغيل طابعة بوستسكريبت واستخدام غوستسكريبت لتحويله إلى PDF.
لدينا مشروع المهندس المعماري وعلينا أن تتكامل بشكل جيد مع Word. كتبنا لدينا النصيبة بك / جيتي تطبيق الويب التي تنشر روابط لdiragrams EA باعتبارها URL HTTP أننا ثم "إدراج وصلة" إلى دينا UCR (أو أي شيء آخر) وثائق. يعرض التطبيق على شبكة الإنترنت شجرة مثل هيكل من الروابط، واحد لكل مجموعة ومن ثم نحن فقط نسخ الرابط في المستند كلمة.
وكان يعمل بشكل جيد حقا. يمكننا أن نجعل العديد من التغييرات كما نحب في EA ثم في مستند Word اذهبوا CTRL + A لتحديد كافة وضرب F9 لتحديث جميع الروابط. للأسف أنا لم أكتب رمز لذلك لا استطيع ان اقول لك بالضبط كيف انها نشرت من EA. أعتقد أن هناك بعض جافا البرمجية فقط أن استطلاعات خادم EA وتمتص كل شيء إذا كشف التغييرات.
وفبسكريبت هو حقا إمكانية سهلة وسريعة. أنا أحسب نصي صغير الذي يسمح لتصدير الرسم التخطيطي. والتفكير فقط عليك أن تعرف هي انها GUID.
Set MyRep = CreateObject("EA.Repository")
If NOT MyRep.OpenFile("D:\Repository.eap") Then
MsgBox("Error opening file")
WScript.Quit -1
End If
Set Project = MyRep.GetProjectInterface
My_Diagram_GUID = "{2256B231-99F6-4c78-9AB0-72E24486D578}"
'Vector export emf/wmf
Project.PutDiagramImageToFile My_Diagram_GUID,"D:\Test.emf",0
'Bitmap export png/bmp/...
Project.PutDiagramImageToFile My_Diagram_GUID,"D:\Test.png",1