الآلية طريقة لتصدير المشاريع مخططات المهندس المعماري؟

StackOverflow https://stackoverflow.com/questions/1441479

  •  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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top