2016-10-18 11 views
1

Когда я открываю конкретный файл DXF в LibreCAD, диалоговое окно командной строки в 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; 
     } 
    } 

Приведенный выше код не требует пояснений, и я надеюсь, это помогает любому, кто задает тот же вопрос в будущем.

 Смежные вопросы

  • Нет связанных вопросов^_^