-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fabrication initial PR #138
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good job! left some comments. Will probably need another iteration.
I'm not sure I fully get the relationships between BTLx
, BTLxPart
and BTLxJoint
etc, maybe we could sit together and whiteboard it. My general feeling is that we could remove some redundancies between these and the input datastructure (i.e. TimberAssembly
)
elif angle_vectors(normal, -self.beam_a.frame.zaxis) < 0.001: | ||
indices.append(2) | ||
else: | ||
raise ("part not aligned with corner normal, no French Ridge Lap possible") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
there's a BeamJoiningError
you could raise here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
indices.append(2) | ||
else: | ||
raise ("part not aligned with corner normal, no French Ridge Lap possible") | ||
print(indices) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
please remove debug prints.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
elif abs(angle_vectors(normal, -self.beam_b.frame.zaxis) - math.pi) < 0.001: | ||
indices.append(2) | ||
else: | ||
raise ("part not aligned with corner normal, no French Ridge Lap possible") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
there's a BeamJoiningError
you could raise here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
src/compas_timber/parts/beam.py
Outdated
# if side == "start": | ||
# tmin = min(x.keys()) | ||
# if tmin < 0.0: | ||
# ds = tmin * self.length # should be negative | ||
# elif side == "end": | ||
# tmax = max(x.keys()) | ||
# if tmax > 1.0: | ||
# de = (tmax - 1.0) * self.length |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove?
for index, beam in enumerate(self.beams): | ||
start_distance = min( | ||
[ | ||
beam.centerline.start.distance_to_point(self.beams[index - 1].centerline.start), | ||
beam.centerline.start.distance_to_point(self.beams[index - 1].centerline.end), | ||
] | ||
) | ||
end_distance = min( | ||
[ | ||
beam.centerline.end.distance_to_point(self.beams[index - 1].centerline.start), | ||
beam.centerline.end.distance_to_point(self.beams[index - 1].centerline.end), | ||
] | ||
) | ||
if start_distance < end_distance: | ||
self._ends[str(beam.key)] = "start" | ||
else: | ||
self._ends[str(beam.key)] = "end" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not for this PR maybe but for future reference, I think it'll be clearer if we have the (estimate) location of the joint and we then check it against either the start or end of each beam. We could set the location when first joining the beam, we have all information needed there.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
added docstrings, resolved comments.
Fabrication Branch initial PR
introduces BTLx output to Compas_Timber
TODO:
-Documentation, esp. to prepare for MAS T2
-Implement more Joints
-add processes and factories for eg X-Lap Joint
Checklist
Put an
x
in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.CHANGELOG.md
file in theUnreleased
section under the most fitting heading (e.g.Added
,Changed
,Removed
).invoke test
).invoke lint
).compas_timber.datastructures.Beam
.