إنشاء مخطط هيكلي في بايثون

يشرح هذا الموضوع كيفية إنشاء مخطط هيكلي في بايثون. يتضمن إعداد النظام، والخطوات التفصيلية، وعينة كود قابلة للتشغيل لإنشاء أداة إنشاء المخططات التنظيمية في بايثون. علاوة على ذلك، يمكنك إجراء تعديلات مختلفة على المخطط التنظيمي وتصدير المخطط الناتج بتنسيق VSDX أو VSD حسب متطلباتك.

خطوات إنشاء مخطط هيكلي في بايثون

  1. قم بإعداد Aspose.Diagram على نظامك لإنشاء مخطط هيكلي
  2. قم بإنشاء كائن من فئة Diagram لتحميل الأشكال الرئيسية من قالب Stencil
  3. أضف الأشكال المطلوبة وأدرج الاتصالات بين العقد المختلفة
  4. قم بتعيين خصائص المخطط المختلفة باستخدام فئة LayoutOptions وقم بتوليد المخطط الهيكلي الناتج

تمثل هذه الخطوات سير العمل لإنشاء مولد المخططات الهيكلية في بايثون. في البداية، قم بتكوين إعدادات النظام وتحميل الأشكال الرئيسية من ملف Stencil. بعد ذلك، قم بإدراج الأشكال المطلوبة والاتصالات الخاصة بها ضمن المخطط التنظيمي قبل تصدير المخطط الناتج.

كود إنشاء أداة المخططات الهيكلية في بايثون

import aspose.diagram
from aspose.diagram import *
path = "C://"
# Load masters from any existing diagram, stencil or template
visioStencil = path + "BasicShapes.vss"
rectangleMaster = "Rectangle"
connectorMaster = "Dynamic connector"
pageNumber = 0
width = 1.0
height = 1.0
pinX = 4.25
pinY = 9.5
# Define values to construct the hierarchy
listPos = ["0", "0:0", "0:1", "0:2", "0:3", "0:4", "0:5", "0:6", "0:0:0", "0:0:1", "0:3:0", "0:3:1", "0:3:2", "0:6:0", "0:6:1"]
# Define a dictionary to map the string name to long shape id
shapeIdMap = {}
# Create a new diagram
diagram = Diagram(visioStencil)
diagram.pages[pageNumber].page_sheet.page_props.page_width.value = 11.0
for orgnode in listPos:
# Add a new rectangle shape
rectangleId = diagram.add_shape(pinX, pinY, width, height, rectangleMaster, pageNumber)
pinX += 1
pinY += 1
# Set the new shape's properties
shape = diagram.pages[pageNumber].shapes.get_shape(rectangleId)
shape.text.value.add(Txt(orgnode))
shape.name = orgnode
shapeIdMap[orgnode] = rectangleId
# Create connections between nodes
for orgName in listPos:
lastColon = orgName.rfind(':')
if lastColon > 0:
parentName = orgName[:lastColon]
shapeId = shapeIdMap[orgName]
parentId = shapeIdMap[parentName]
connector1 = Shape()
connecter1Id = diagram.add_shape(connector1, connectorMaster, pageNumber)
diagram.pages[pageNumber].connect_shapes_via_connector(parentId, manipulation.ConnectionPointPlace.RIGHT,
shapeId, manipulation.ConnectionPointPlace.LEFT, connecter1Id)
# Auto layout CompactTree chart
compactTreeOptions = autolayout.LayoutOptions()
compactTreeOptions.layout_style = autolayout.LayoutStyle.COMPACT_TREE
compactTreeOptions.direction = autolayout.LayoutDirection.DOWN_THEN_RIGHT
compactTreeOptions.enlarge_page = False
diagram.pages[pageNumber].layout(compactTreeOptions)
# Save diagram
diagram.save("ORGchart_out.vsdx", SaveFileFormat.VSDX)

يُظهر هذا المثال البرمجي كيفية إنشاء منشئ المخططات الهيكلية في بايثون. ومع ذلك، يمكنك تحسينه عن طريق ضبط عدد الأشكال أو ترتيبها، وكذلك اتجاهات الموصلات، والموقع، وما إلى ذلك. وبالمثل، يمكنك تعديل أشكال العقد والاتصالات عن طريق تغيير معرف الشكل الرئيسي وخصائص أخرى لتلبية احتياجاتك.

يغطي هذا الدليل السريع المعلومات المتعلقة بإنشاء أداة إنشاء المخططات الهيكلية في بايثون. أما إذا كنت مهتمًا بإنشاء مخططات Visio من البداية، فيمكنك قراءة المقالة حول إنشاء مخطط Visio في بايثون.

 عربي