Skip to content

Develoment out of interest and based on an assignment in Algorithmic Folding WS2021

Notifications You must be signed in to change notification settings

jgrenda/Stroke-based-KempeLinkage

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Stroke-based-Kempe-Linkage

Develoment out of interest and based on an assignment in Algorithmic Folding WS2021.

[TOC]

Description

Requirements

Make sure the following dependencies are installed

Usage

This project can be used through a pysimplegui. To open the GUI run main_window.py in the /frontend directory. Within in the interface you are able to select an approximation method. For now only "Polynomial approximation to a degree of N" is implemented. After selecting the method for approximation and entering the degree in the field on the left for N you are able to draw the desired curve on the canvas. Pressing Approximate will display you the calculated approximation right in the canvas.

Unable to load gif

If you are happy with the approximation you can export the result via a press of the Export button. You will be prompted a dialogue on the CLI to configure the initial values of alpha and beta. We can comptutaionally infer a valid configuration, but with the libraries used, this takes forever except for linear function. If you are only interested in the linkage system and do not want it to be correctly restricted by a peaucellier linkage, you can enter arbitrary values within the first quadrant. If you entered both values (or left them empty) the export starts. It will display an image of the calculated linkage system and print out the mechanism expression that can then be imported into pyslvs for simulation.

Unable to load gif

Importing a mechanism expression in pyslvs is done through the usage of the mechanism -> paste option.
Unable to load gif
Hint: for the sake of clarity it is recommended to disable point marks and reduce the width of all lines through the settings (F2)!

The linakge system movement can be simulated by telling pyslvs what points should act as base points and which should act as driver points in the inputs menu. The correct choice for these can be checked by looking the green & blue colored areas of the displayed linkage image from the earlier steps.

Limitations

This chapter will list the currently known limitations of this program

  • As of now the program is work-in-progress and might not function as intended
  • There is only one approximation technique currently implemented (Polynomial approximation to the degree of N)
  • A valid approximation can only be reached when choosing a degree of equal or less than 3 as the code currently doesn't handle squares of cos
  • The initial configuration of alpha and beta must be within the first quadrant, otherwise inconsistencies may occure. This does not apply for any outputs of the linkage, only for the initial angles within the rhombus. There surely is a simple mathematical error somewhere, but we were not able to find it.
  • Pyslvs is a qt-ui with underlying usage of a reduced solvespace-api, a lot of functions are unavailable and the physics simulation is bare bones
  • Without switching to a different visualization / simulation tool the complete path of the output point will not be traced
  • The output area (2*R) is not considered in pyslvs so we will most likely see the linkage breaking at some point
  • ... probably a lot more we are not even thinking of at the moment

Pre-view

Here is what a partially linear simulation might look like. Keep in mind this is still only partially correct.

Unable to load gif

About

Develoment out of interest and based on an assignment in Algorithmic Folding WS2021

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages