Use of the kill-blend command

lbw

CAD practitioner
Why did kill-blend not take effect, I used the model 0046_boxblend_01_coloured.stp from the example, did a simple test, selected a blend and executed kill-blend, but the model didn't change
1714395364728.png
 

Quaoar

Administrator
Staff member
It requires face ID as the argument. In that case, it would be

Code:
> kill-blend 3

Generally, you may want to try kill-blends-inc to check what this command can and cannot do.
 

lbw

CAD practitioner
kill-blend 3 also does not work, in fact, I selected the face with id 3 by mouse, execute kill-blend, and directly through the kill-blend 3 specified face id 3 effect should be the same, can not work successfully is it my compilation time problem?1714400207139.png
 

Quaoar

Administrator
Staff member
That's weird. This is how it works for me, and I was pretty confident in this functionality as it has been protected with automatic tests from day one. Do you build Analysis Situs yourself? Can you try it in the latest release after installation?
 

Attachments

  • boxblend-test.gif
    boxblend-test.gif
    336.7 KB · Views: 3

lbw

CAD practitioner
My release version is not fully functional, there are some problems, I debugged the program in debug mode, I found the approximate error of kill-blend, it appeared in the place of recognising the blend, 1714910139126.png
so I used the recognize-blends command, and sure enough, it can't recognise the blends, here's the configuration of my compilation, do you see any problem with it?
1714910057942.png

1714910079681.png
 

Quaoar

Administrator
Staff member
Do you mean that the recognize-blends Tcl command does not select any faces when you run it interactively? There does not seem to be anything wrong with your cmake configuration, but what I asked is whether this version works for you or not. You may want to dig a bit deeper into the recognition code of blends to see where it actually exits. I can help you with understanding the code.
 

lbw

CAD practitioner
Yes, I'm using the recognize-blends Tcl command .I got inside the recogniser.Perform function.
1715055816067.png
this is some debugging results, I'm not sure what they mean.

1715056095059.jpeg
1715057768349.png
I went into the recognizer.Perform function inside, see the last obtained result id is empty
1715056476382.jpeg
into the GetFaceIndices function found that m_data is empty,
1715056865767.png
it should be featureRes caused,
1715057091032.png
I went into the extractor.Perform(m_aag, featureRes, filter) function, found that all the face into the if ( !aag->HasNodeAttributes(fid) ) judgement, and then execute continue; can not enter the next TColStd_PackedMapOfInteger &
feature = result->FindFeature( type, attr->GetFeatureId() ); function, so there is no data for m_data,but I don't understand what is the direct cause of this problem
1715056699315.png

1715056814614.png
 

Attachments

  • 1715057600252.jpeg
    1715057600252.jpeg
    631.7 KB · Views: 0
  • 1715057725640.png
    1715057725640.png
    81.8 KB · Views: 0

Quaoar

Administrator
Staff member
Can you try putting a conditional breakpoint here for face 3 and trace forward where it returns false?
 

Attachments

  • 2024-05-07_9-54-15.png
    2024-05-07_9-54-15.png
    181.1 KB · Views: 2

lbw

CAD practitioner
I set a conditional breakpoint here for face 3, but when face is 1, it executes if ( asiAlgo_Utils::IsPlanar(face) )
and return false; a conditional breakpoint here for face 3 is not executed.
1715065760322.png

1715065934043.png
 

Quaoar

Administrator
Staff member
That's correct, face 1 is planar, and this code is looking for a curved fillet face (it should be face 3). Here is how the first three faces are processed for me:
 

Attachments

  • debug-recognize-blends.gif
    debug-recognize-blends.gif
    3.3 MB · Views: 1

Quaoar

Administrator
Staff member
a conditional breakpoint here for face 3 is not executed.
Now the question is why face 3 is never passed to asiAlgo_RecognizeEBF::Perform(). I think we can figure it out sooner or later, but it would require some patience and time :)
 
Top