checkfourbar3Pose
by Tim C. Lueth, SG-Lib Toolbox: SolidGeometry 5.6 - 4Bar/Linkages
Introduced first in SolidGeometry 4.4, Creation date: 2019-01-01, Last change: 2025-09-14
checks whether a fourbar joint solution exists for results of center3Pose
Description
r= S(ka,4); % radius of crank
l1=S(kb,4); % radius of follower
l2=S(kb,1)-S(ka,1); % length of coupler
do=S(ka,5); % displacement of coupler
wo=S(ka,6); % Angle deviation before displacement
A0=S(ka,2:3); % Base of crank
B0=S(kb,2:3); % Base of follower
d=norm(A0-B0); % distance between both bases
======================================================================
THIS FUNCTION IS PART OF THE SEQUENCE
1. Create Poses as List of Startpoints A and Endpoints B uses Posesample or Poseui:
>> PS=Poseui(3,.2); SGfigure; Poseplot(PS);
>> PS.A=[-0.00 0.00; 0.00 1.00; 1.00 3.00]; PS.B=[ 1.00 0.00; 1.00 1.00; 1.71 2.29];
2. Calculate a set of parameter variations for possible Solutions:
>> center3Pose(PS.A,PS.B,-20:20,-20:5:20,-3:.2:3); S=ans; whos C;
3. Calculate and analyze all possible permutations of the parameter variation:
>> checkfourbar3Posepermutation(PS.A,PS.B,S); FP=ans;
>> checkfourbar3Pose(PS.A,PS.B,S); % if there is only one assembly
4. Limit the Solution to your needs by limiting the permutations, for example
FULL ROTATION 'u',0 DIMENSION 'l1l2rd',[5 8]
checkfourbar3Posepermutation(PS.A,PS.B,FP,'','u',0,'l1l2rd',[2 4]);
OR FULL ROTATION 'u',0 BASES INSIDE AN AREA
checkfourbar3Posepermutation(PS.A,PS.B,FP,'','cpl',PLcircle(2)+[3 3],'l1l2rd',[0 3]);
======================================================================
All those functions are based on
invkinplan2 - that calculates both configurations for a planar 2bar linkage
See Also: checkfourbarsegment
, center3Pose
, Posesample
, Poseplot
, TofPose
, Posenorm
, Poseui
, isincirclesegment
Example Illustration
Syntax
[ci,s,ord,corg,wres,A0,B0]=checkfourbar3Pose(A,B,S,[dws,k,pl,ki])
Input Parameter
A: | | Starting Points of 3 Poses |
B: | | Ending Points of 3 Poses |
S: | | Solutions comming from center3Pose |
dws: | | selected pair of distance and angle |
k: | | selected values for k; default are first and last of S |
pl: | | length of pose |
ki: | | Direct access to k values |
Output Parameter
ci: | | configuration for pose of a fourbar linkage |
s: | | rotation segment for earch pose |
ord: | | movement order of poses; right-hand-rule |
corg: | | original configuration for each pose |
wres: | | angle segments; 0 => no solution exist; [] => no limits exist |
A0: | | Rotation center of crank |
B0: | | Rotation center of swing |
Examples
PS=Posesample(7);
center3Pose(PS.A,PS.B,[0 1],0,0); S=ans, CPLplot(CPLsample(4)); checkfourbar3Pose(PS.A,PS.B,S)
center3Pose(PS.A,PS.B,[0 3],0,0); S=ans, CPLplot(CPLsample(4)); checkfourbar3Pose(PS.A,PS.B,S)
center3Pose(PS.A,PS.B,[-3 3],0,0); S=ans, CPLplot(CPLsample(4)); checkfourbar3Pose(PS.A,PS.B,S)
Copyright 2019-2025 Tim C. Lueth. All rights reserved. The code is the property of Tim C. Lueth and may not be redistributed or modified without explicit written permission. This software may be used free of charge for academic research and teaching purposes only. Commercial use, redistribution, modification, or reverse engineering is strictly prohibited. Access to source code is restricted and granted only under specific agreements. For licensing inquiries or commercial use, please contact: Tim C. Lueth
Last html export of this page out of FM database by TL: 2025-09-21