-
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
Joints by topology #157
Joints by topology #157
Conversation
@@ -29,7 +29,7 @@ | |||
"ghuser": { | |||
"source_dir": "src/compas_timber/ghpython/components", | |||
"target_dir": "src/compas_timber/ghpython/components/ghuser", | |||
"prefix": "(COMPAS_TIMBER)", | |||
"prefix": "CT_", |
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.
I started using Projectname:
in core and fab components, maybe change to CT:
?
@@ -6,7 +6,7 @@ | |||
from Grasshopper.Kernel.GH_RuntimeMessageLevel import Error | |||
from Grasshopper.Kernel.GH_RuntimeMessageLevel import Warning | |||
|
|||
from compas.scene import Scene | |||
from pip install compas==1.13.3.scene import Scene |
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.
does that work? that's a scary import :P
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.
Just to summarize what we discussed earlier, I think a better approach would be to add this capability as a new JointRule
as we have this system in place. At least two reasons I see:
- Currently
CT_ApplyJointsByTopology
is essentially a specialized copy of the auto-joint component, so does a lot of what the latter does (find intersecting beams, detect topology), if we were to use them together these things would be executing twice, and these can be pretty heavy when there's a lot of beams. - If we use the rule system we could later extend the autojoint component to allow some rules to override others (e.g. by order).
The new class could looks like:
class TopologyRule(JointRule):
def __init__(self, topology, joint_type):
...
The topo-joint component can create an instance of TopologyRule
for each topology, mapping it to the selected joint type.
To implement comply
we could (somewhat not elegantly..) pass the detected topology as one of its arguments and return True
if it matches the rule.
def comply(self, beams, detected_topo):
return self.topology == detected_topo
ok I ended up doing a second PR that reflects these comments. can i cancel this PR? |
Added ApplyJointsByTopology GH Component
shortened the
(COMPAS_Timber)
prefix on GH component labels toCT_
bug fixes to Fabrication package
added
reference surface from beam face
function to BTLx, whould help with new joint implementationWhat type of change is this?
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
.