2016-10-18 5 views
1

、libreCADのコマンドライン]ダイアログボックスが言う:dxfファイルで無効なオブジェクトを削除/検索するにはどうすればいいですか?私はLibreCAD内の特定のDXFファイルを開くと

Invalid objects removed : 1 

は、私は私のDXFファイルにこの無効なオブジェクトを検出し、それを削除したいです。オブジェクトが無効になるのはいつですか?無効なオブジェクトはどういう意味ですか?

+0

長さゼロの線やゼロ角のアークなどをチェックします。 – abenci

答えて

1

私はここにovereどんな答えを受けなかったので、私はlibreCADのソースコードに掘ることを決めた、とrs_graphic.cppでこれを見つけた:

/** 
* Removes invalid objects. 
* @return how many objects were removed 
*/ 
int RS_Graphic::clean() 
{ 
    // author: ravas 

    int how_many = 0; 

    foreach (RS_Entity* e, entities) 
    { 
     if (e->getMin().x > e->getMax().x 
      || e->getMin().y > e->getMax().y 
      || e->getMin().x > RS_MAXDOUBLE 
      || e->getMax().x > RS_MAXDOUBLE 
      || e->getMin().x < RS_MINDOUBLE 
      || e->getMax().x < RS_MINDOUBLE 
      || e->getMin().y > RS_MAXDOUBLE 
      || e->getMax().y > RS_MAXDOUBLE 
      || e->getMin().y < RS_MINDOUBLE 
      || e->getMax().y < RS_MINDOUBLE) 
     { 
      removeEntity(e); 
      how_many += 1; 
     } 
    } 

上記のコードは自明であると私は願っていますこれは、将来同じ質問を驚かせる人に役立ちます。

関連する問題