איך לכתוב קוד מאקרו בסיסי לסולידוורקס ב VBA? - חלק שני

הי, ממשיכים ללמוד.. הקוד המלא בסיום הפוסט. שימו לב - זהו חלקו השני של השיעור, שמתחיל כאן.

Solidworks macro toolbar
Solidworks macro toolbar

רוצים לשתף ולשאול בנושא השיעור או בנושאי מאקרו נוספים? הצטרפו לפורום סולידוורקס מאקרו

את השיעור הקודם סיימנו בפונקציה OpenDoc6.


עכשיו, כשכבר יש לנו קובץ PART פתוח בסוליד,

נבחר את המשטח שעליו נשרטט לא לפני שנודיע בקוד שבכוונתנו לבחור משטח לשם פתיחת שרטוט. קודם נודיע, אחר כך נבחר את המשטח. אז איך כותבים את זה?

swModel.SketchManager.InsertSketch True

אנחנו כבר יודעים ש swModel הוא המשתנה עבור החלק (PART) שפתוח כרגע בסוליד.

המשתנה הזה מכיל בתוכו את ה SketchManager - אחר המאפיינים אליהם ניתן לגשת מתוך ה swModel. מתוך SketchManager נוכל לבחור באפשרות InsertSketch ולהוסיף אחריה True כדי לפתוח שרטוט.


מה שחסר זה לבחור איפה יפתח השרטוט ולשם כך נשתמש ב:


Bool = swModel.Extension.SelectByID2("Top Plane", "plane", 0, 0, 0, True, 0, Nothing, swSelectOptionDefault)


אם אתם מקלידים והגדרתם את המשתנה swModel כ - ModelDoc2, אז כשתלחצו . (נקודה) לאחר swModel יפתח סרגל קטן עם אפשרויות - תתחילו להקליד את הביטוי Extension וביחרו בו.


SelectByID2

היא פונקציה חשובה שאיתה מבצעים את הבחירה - כמו ללחוץ קליק בעכבר על משטח TOP. בלי הקליק לא נפתח השרטוט..

Bool

בתחילת השורה הוא משתנה מסוג חדש, BOOLEAN, שערכו TRUE או FALSE.

אם נעשתה הבחירה בהצלחה, יהיה ערכו TRUE. אם לא מן הסתם, FALSE.


הפונקציה הבאה היא:


Set swSketchSeg = swModel.SketchManager.CreateCircleByRadius(0, 0, 0, 0.06)

ליצירת עיגול לפי רדיוס.

swSketchSeg

הוא משתנה חדש שמאפשר גישה לכלי השרטוט - קו, עיגול ועוד.


אנחנו לקראת סיום.


הפונקציה הבאה היא:


swModel.SketchManager.InsertSketch True

והפעם לצורך סגירת השרטוט.


והפונקציה האחרונה לסיום היא:


swModel.ClearSelection2 True

ש"מנקה" את העכבר מהבחירה האחרונה. כמו אסקייפ במקלדת.


מצורף כאן הקוד המלא, תוכלו להעתיק אותו כמו שהוא לתוך עורך הקוד בסוליד במקום הקוד שמופיע בו כברירת מחדל ולהריץ לאחר שינוי הניתוב עבור הקובץ שלכם.

Dim swApp                           As SldWorks.SldWorks
Dim swModel                         As SldWorks.ModelDoc2
Dim nErrors                         As Long
Dim nWarnings                       As Long
Dim FileName                   	    As String
Dim Bool                      	    As Boolean
Dim swSketchSeg                     As SldWorks.SketchSegment

Sub main()

Set swApp = Application.SldWorks

FileName = "D:\Google Drive\A.SLDPRT" ' כאן יש לשנות את הניתוב לניתוב של הקובץ במחשב שלכם

Set swModel = swApp.OpenDoc6(FileName, swDocPART, swOpenDocOptions_Silent, "", nErrors, nWarnings)

swModel.SketchManager.InsertSketch True

Bool = swModel.Extension.SelectByID2("Top Plane", "plane", 0, 0, 0, True, 0, Nothing, swSelectOptionDefault)

Set swSketchSeg = swModel.SketchManager.CreateCircleByRadius(0, 0, 0, 0.06)

swModel.SketchManager.InsertSketch True

swModel.ClearSelection2 True

End Sub

אם הגעתם עד לכאן והצלחתם, שתפו בתגובות..


מוזמנים לכתוב גם שאלות