Skip to content

assembly_interfaces_xfunc returns only one face per block pair #3

@yck011522

Description

@yck011522

Describe the bug
I have a test data of three blocks. See attached image.
2019-07-18 10_36_53-Window

I used the following code to compute the interface:

assembly_interfaces_xfunc = XFunc('compas_assembly.datastructures.assembly_interfaces_xfunc', python='C:\ProgramData\Anaconda3\envs\compas_assembly\python.exe')
data = {'assembly': assembly.to_data(),
        'blocks': {str(key): assembly.blocks[key].to_data() for key in assembly.vertices()}}

result = assembly_interfaces_xfunc(data)
assembly.data = result['assembly']

I expected Interface 1-3 (marked in red) to return all the intersecting faces between the two blocks.
Or is this function designed to only return one face pair?

I digged ito the code of compas_assembly/datastructures/interfaces_numpy.py
But I couldn't understand the code logic, so maybe I'll ask here.
I also looked into paper Data management and modelling of complex interfaces in imperfect discrete-element assemblies but there wasn't any mention of the code behaviour

To Reproduce
Steps to reproduce the behavior:

  1. Win 10 64 bit, Rhino 6
  2. Sample script attached. Run file 02 and then run 03 inside Rhino Python env.
    InterfaceRhinoPython.zip

Expected behavior
I expect all of the intersecting faces to be return.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions