FreeCAD / FPA-grant-proposals

Submit grant proposals to the FPA by creating an issue in this repository.
https://fpa.freecad.org
0 stars 1 forks source link

Content and Pedagogy Development for Teaching and Learning of Sketcher Workbench in FreeCAD Software #12

Open lochan94 opened 1 month ago

lochan94 commented 1 month ago

Proposal description

Sketch Tutorials with Interactive Wizard is proposed which shows step-by-step instructions and a learner executes these steps. After every step, the learner can check if the sketch matches the given template and mistakes (if any) are highlighted as a corrective measure.

Deliverables

FreeCAD is an open-source CAD software and therefore its source code is available for the public to modify and adapt. FreeCAD is also an alternative to the commercial CAD software which are proprietary in nature. The commercial CAD software generally have good documentation and course materials to be used for teaching and learning. On the other hand, open-source software generally lack such material and becomes a challenge for onboarding faculty, students and also industry professionals to use the software. In this project, a methodology is proposed where the “Content and Pedagogy” for teaching and learning Sketching (in Sketcher Workbench) in FreeCAD is presented.

FreeCAD has Workbenches which can be developed using C++ and/or Python programming languages. These Workbenches would have Commands/Buttons and when a user clicks on them, corresponding program/code is executed to create geometry or perform some other tasks. In this project, a new Workbench entitled “Learn FreeCAD” is envisaged to have the following features:

Sketch Tutorial Module a) Upon clicking on a button, a set of thumbnails of finished sketches are shown to the user. User selects one of the sketches (for example, Figure 1(a)) and a new blank “Sketch” is shown to the user. Additionally, another panel/window referred to as “Wizard” is shown with step-by-step instructions and the desired output after every step. b) The user is shown the first step, and the instructions are also shown in the Wizard (Figure 1(b)). c) The user is expected to draw the same diagram/figure using the tools mentioned in the Wizard. Upon completion, the user can click on a button in Wizard to check the correctness of the sketch just drawn with the one shown as template. Wizard shows any mistakes and the user gets to correct the same and try again. d) Upon successful completion of the first step, the user can proceed ahead with next set of steps till the final step (Figure 2) which matches the template/thumbnail image. [The task of teacher/instructor to correct mistake is assisted by the Wizard] Figure in attached .pdf file Amrita-FPA-Grant-Proposal_LearnFreeCAD-SketcherWorkbench_TeachModule_20240807.pdf

Timeline

The project deliverables are spread across 9 months. Details are in attached file. Amrita-FPA-Grant-Proposal_LearnFreeCAD-SketcherWorkbench_TeachModule_20240807.pdf

Risks and mitigation

The project coordinators are full-time teachers in an Engineering College and have seen teachers and students struggle while learning CAD. An open-source CAD software with good teaching and learning aids would help in a great way. The developed tutorials shall be first tested at the project coordinator's institute before publicised to other institutes.

Compensation

The total project cost is 6000 USD for a duration of 9 months, which can be paid in 2+1 terms. Details are in attached file. Amrita-FPA-Grant-Proposal_LearnFreeCAD-SketcherWorkbench_TeachModule_20240807.pdf

About you

The project coordinators from Amrita Vishwa Vidyapeetham (an University in Bengaluru, India). They are Dr. Rajeevlochana (as PI: Project Investigator), and Dr. Ravi Kumar and Dr. Mohan Kumar S (as Co-PIs: Co-Project Investigators), who shall be supported by their colleagues, students and potential research interns/associates.

A) Dr. Rajeevlochana G. Chittawadigi: He serves the Department of Mechanical Engineering as its Vice-Chair and enjoys teaching, research and consulting industries. He has obtained his PhD and MS (Research) from IIT Delhi (New Delhi, India), and B.Tech from MNNIT (Allahabad, India), all in Mechanical Engineering. He has more than 9 years of teaching experience at Amrita Bengaluru, 2 years of Research Experience at IIT Delhi and more than 4 years of experience in industries (Hero Honda Motors Ltd., AR-CAD.com, and 3dPLM Software). He has produced and published more than 80 videos on his YouTube channel (https://www.youtube.com/lochan94) aimed at teaching CAD and graphics software (such as Autodesk Inventor, SpaceClaim, GeoGebra, etc.) and has a good knack for developing and delivering educational content effectively. In addition to teaching, he has very good experience in developing addins/plugins for CAD software (Autodesk Inventor, SpaceClaim, etc.) using Visual C#.

B) Dr. Ravi Kumar V.: He is currently working as Assistant Professor in the Department of Mechanical Engineering and is an avid teacher and researcher. He has completed his PhD from Visvesvaraya Tech. Univ. (VTU, Belgaum, India) and his Masters and Bachelors in Engineering from Univ. Visvesvaraya College of Engineering (UVCE, Bengaluru, India), all in Mechanical Engineering. He has mentored the departmental forum named INGENIUM, where he has organized various industrial visits, Workshop and technical Talks, Various competitions etc., and has good rapport with student community to get tasks or projects executed by them. He enjoys teaching CAD course for entry level engineering students which require patient approach to the concepts for effective learning and understanding. He also teaches programming courses using C and C++ where his accreditation as Oracle Certified Professional and knowledge of Java have benefitted.

C) Dr. Mohan Kumar S.: He is currently serving the Department of Mechanical Engineering as an Assistant Professor. He has obtained his PhD, M.Tech, and B.E in Mechanical Engineering from Visvesvaraya Tech. Univ. (VTU, Belgaum, India). He is currently mentoring INGENIUM, the department forum which conducts technical events for the students. He has been teaching CAD, Engineering Drawing, Machine Drawing and Finite Element Methods to B.Tech. students and is well versed with the usage of AutoCAD, Autodesk Inventor, ANSYS, and other related CAD software.

More details in the attached file. Amrita-FPA-Grant-Proposal_LearnFreeCAD-SketcherWorkbench_TeachModule_20240807.pdf

chennes commented 2 weeks ago

Do you have a set of sketches chosen that you plan on including in the teaching module? If so, can you share them here so the grant review committee can understand the scope of what you are proposing?

macdroid53 commented 2 weeks ago

Since FreeCAD is an ever changing application, how would this be maintained and/or updated as changes to sketcher and releases progress?

lochan94 commented 1 week ago

Do you have a set of sketches chosen that you plan on including in the teaching module? If so, can you share them here so the grant review committee can understand the scope of what you are proposing?

We have been using a set of 2D drawings to teach our undergraduate students in their Engineering Graphics and Drawing course. We also isometric drawings that can be drawn in a drafting software (such as AutoCAD). Some of these are in the attachment CAD-Drawings.pdf

The proposal we have submitted would have a provision to create scripts that can make these drawings in a programmatic manner such that step-by-step instruction/action can be seen as the student progresses with the drawing. It is expected that student also executes FreeCAD commands to achieve the same action. Finally, the student would be completing the full sketch and will be able to check/validate if the drawing created matches with the template file.

Later pages (page 67 and above) can also be used for 3D modelling assignments (which can be an extension project at a later stage).

lochan94 commented 1 week ago

Since FreeCAD is an ever changing application, how would this be maintained and/or updated as changes to sketcher and releases progress?

The 2D Drawings (templates) would be converted into scripts (line-by-line instructions) which would call corresponding API functions to generate the individual step. This way, the drawing is generated programmatically. If FreeCAD UI is changed, some minor changes have to be done in the Wizard (or step-by-step illustration). If FreeCAD Sketcher Workbench internal API functions are modified, the proposed project also will have to adapt to those changes.

We feel that since Sketcher is a fairly standard workbench, there would not be major changes to it. If at all required, we shall be maintaining our source code to adapt.

yorikvanhavre commented 1 week ago

This is a very good idea, and similar to something we tried in the BIM workbench already: https://wiki.freecad.org/BIM_ingame_tutorial

I would suggest to have a look at how it is done (it's a simple script at https://github.com/FreeCAD/FreeCAD/blob/main/src/Mod/BIM/bimcommands/BimTutorial.py that parses the wiki page, splits it into sections, and builds a side panel in FreeCAD that shows a section. Each section can have one or two "goals", which are simple expressions that return True when the user completes them.

It might be good here to think of a good system that could be used later on by other workbenches of FreeCAD

chennes commented 1 week ago

What license do you intend to release the new workbench under?

chbhanuvardhan commented 1 week ago

This is a very good idea, and similar to something we tried in the BIM workbench already: https://wiki.freecad.org/BIM_ingame_tutorial

I would suggest to have a look at how it is done (it's a simple script at https://github.com/FreeCAD/FreeCAD/blob/main/src/Mod/BIM/bimcommands/BimTutorial.py that parses the wiki page, splits it into sections, and builds a side panel in FreeCAD that shows a section. Each section can have one or two "goals", which are simple expressions that return True when the user completes them.

It might be good here to think of a good system that could be used later on by other workbenches of FreeCAD

@yorikvanhavre Thanks for sharing. Your suggestion for a generic system seems really good and could be extended to other workbenches.

chennes commented 6 days ago

I want to make sure that my understanding is correct: the grant is for the creation of a workbench that can provide "auto-graded" tutorials, and some small number of actual integrated tutorials. But it would be possible for other tutorial authors to leverage this workbench to create their own tutorials? Or do you view this as a sort of "closed" system where all the tutorials are the ones that your team has directly integrated into the workbench?

Also, what license do you intend to release the workbench under? I think the FPA will only be interested in funding development that is released under a suitable FOSS license.

lochan94 commented 4 days ago

I want to make sure that my understanding is correct: the grant is for the creation of a workbench that can provide "auto-graded" tutorials, and some small number of actual integrated tutorials. But it would be possible for other tutorial authors to leverage this workbench to create their own tutorials? Or do you view this as a sort of "closed" system where all the tutorials are the ones that your team has directly integrated into the workbench?

We shall try to follow a process that can be adapted into other similar tutorials/workbenches to be developed by us or by others. We are eager to keep the source code in public domain as long as students do not get to use it as a hack to get good grades :). We may have to find out the best way forward.

Also, what license do you intend to release the workbench under? I think the FPA will only be interested in funding development that is released under a suitable FOSS license.

We understand that keeping our workbench/addin license as LGPL2+ (same as FreeCAD) is desirable. We agree to the same.