يشرح هذا الموضوع كيفية إنشاء مخطط هيكلي في بايثون. يتضمن إعداد النظام، والخطوات التفصيلية، وعينة كود قابلة للتشغيل لإنشاء أداة إنشاء المخططات التنظيمية في بايثون. علاوة على ذلك، يمكنك إجراء تعديلات مختلفة على المخطط التنظيمي وتصدير المخطط الناتج بتنسيق VSDX أو VSD حسب متطلباتك.
خطوات إنشاء مخطط هيكلي في بايثون
- قم بإعداد Aspose.Diagram على نظامك لإنشاء مخطط هيكلي
- قم بإنشاء كائن من فئة Diagram لتحميل الأشكال الرئيسية من قالب Stencil
- أضف الأشكال المطلوبة وأدرج الاتصالات بين العقد المختلفة
- قم بتعيين خصائص المخطط المختلفة باستخدام فئة 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 في بايثون.