Page 1 of 1
Программный поиск текста в DWG файле
Posted: 27 May 2015, 06:47
by Andrey
Добрый день!
Существует ли открытый метод для поиска текста в CADViewX версии 9?
Если нет, то как программно получить структуру документа?
Re: Программный поиск текста в DWG файле
Posted: 27 May 2015, 21:33
by support
Здравствуйте, Андрей.
Метода для поиска текста в CADViewX API нет, чтобы программно получить список примитивов, используйте свойство CADViewX.Image.Converter.Sections(TxConvSection.csEntities).Entities.
Михаил
Re: Программный поиск текста в DWG файле
Posted: 28 May 2015, 07:50
by Andrey
Добрый день, Михаил!
Киньте пожалуйста сюда пример кода на С#.
Re: Программный поиск текста в DWG файле
Posted: 28 May 2015, 21:04
by support
Здравствуйте, Андрей.
Вот пример кода на C# для поиска текста в DWG/DXF файле. Данный код формирует список строк, каждая из которых содержит информацию следующего вида: TEXT [Искомая строка] Position: (X;Y;Z).
Code: Select all
private List<string> SearchText(string textValue)
{
List<string> textInfo = new List<string>();
for (int i = 0; i < axCADViewX1.Image.Converter.get_Sections(TxConvSection.csEntities).Count; i++)
{
Entity ent = axCADViewX1.Image.Converter.get_Sections(TxConvSection.csEntities).get_Entities(i);
// Поиск заданной текстовой строки среди объектов TEXT
if (ent.EntID == TEntityID.eidText)
{
Text textEnt = ent as Text;
if (textEnt.Text == textValue)
{
textInfo.Add(textEnt.EntName() + " Position: (" + textEnt.Point.X.ToString() + ";" + textEnt.Point.Y.ToString() + ";" + textEnt.Point.Z.ToString() + ")");
}
}
// Поиск заданной текстовой строки среди объектов TEXT, расположенных внутри объектов INSERT (вставка блока)
if (ent.EntID == TEntityID.eidInsert)
{
Insert ins = ent as Insert;
for (int j = 0; j < ins.Count; j++)
{
if (ins.get_Entities(j).EntID == TEntityID.eidText)
{
Text textEnt = ins.get_Entities(j) as Text;
if (textEnt.Text == textValue)
{
textInfo.Add(textEnt.EntName() + " Position: (" + textEnt.Point.X.ToString() + ";" + textEnt.Point.Y.ToString() + ";" + textEnt.Point.Z.ToString() + ")");
}
}
}
}
}
return textInfo;
}
Михаил
Re: Программный поиск текста в DWG файле
Posted: 01 Jun 2015, 09:48
by Andrey
Михаил,
а как перебрать слои у чертежа ? (Layers)
почему то попадается axCADViewX1.Image.Converter.get_Sections(TxConvSection.csEntities).Count = 0, если активный слой - какая нибудь картинка или линии.
Re: Программный поиск текста в DWG файле
Posted: 01 Jun 2015, 14:44
by support
Здравствуйте, Андрей.
Следующий код осуществляет перебор слоев чертежа:
Code: Select all
for (int i = 0; i < axCADViewX1.Image.Converter.get_Counts(TxConvSection.csLayers); i++)
{
Layer cadLayer = axCADViewX1.Image.Converter.get_Layers(i);
}
Михаил