Так вот по существу - не работает! Подскажите, может где-то ошибка?
Импорт в конце кода.
X
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using TFlex;
using TFlex.Model;
using TFlex.Model.Model2D;
using System.IO;
namespace API2
{
///
/// Description of MainForm.
/// public partial class MainForm : Form
{
public Document doc;
public Point clickPoint;
TFlex.Model.Model2D.FreeNode FNod;
public MainForm()
{
//Укажите Вашу версию T-FLEX CAD либо T-FLEX Viewer
string version = "T-FLEX CAD 3D 11.0\\Rus";
//string version = "T-FLEX Viewer 11.0\\Rus";
//Метод определяющий директорию, в которую установлен T-FLEX CAD
APILoader.Initialize(version);
//Метод, инициализирующий API
APILoader.InitializeTFlexCADAPI();
//Инициализация компонентов windows-формы
InitializeComponent();
}
//Открыть документ T-Flex CAD
void Button1Click(object sender, EventArgs e)
{
//Показать диалог открытия документа T-FLEX CAD
OpenFileDialog openFileDlg = new OpenFileDialog();
openFileDlg.Title = "Open Document";
openFileDlg.Filter = "T-FLEX CAD Document (*.grb)|*.grb";
openFileDlg.FilterIndex = 1;
if (openFileDlg.ShowDialog() == DialogResult.OK)
{
doc = TFlex.Application.OpenDocument(openFileDlg.FileName);
//Отобразить документ T-FLEX CAD в элементе типа control1
tfcontrol.Document = doc;
//Показать построения (команда "Скрыть построения" в false)
tfcontrol.HideConstructions = false;
}
}
void Button2Click(object sender, EventArgs e)
{
//Закрыть документ
ClosingDocument();
//Создать новый документ
doc = TFlex.Application.NewDocument();
//Отобразить документ T-FLEX CAD в элементе типа control1
tfcontrol.Document = doc;
//Показать построения (команда "Скрыть построения" в false)
tfcontrol.HideConstructions = false;
}
private void ClosingDocument()
{
if (doc != null)
{
//Закрыть документ
doc.Close();
//Обнулить ссылку на документ
doc = null;
}
}
void MainFormFormClosed(object sender, FormClosedEventArgs e)
{
//Закрыть документ
ClosingDocument();
//Деинициализация API
APILoader.Terminate();
}
void Button4Click(object sender, EventArgs e)
{
Close();
}
//Экспорт из GRB в DXF
void Button5Click(object sender, EventArgs e)
{
SaveFileDialog dialog = new SaveFileDialog ();
dialog.Filter = "DXF files (*.dxf)|*.dxf";
if(dialog.ShowDialog() != DialogResult.OK)
return;
doc.Activate();
ExportToDXF exp = doc.ExportToDXF;
exp.Export(dialog.FileName);
}
// Импорт
void Button6Click(object sender, EventArgs e)
{
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = "DXF files |*.dxf";
if (dialog.ShowDialog() != DialogResult.OK)
return;
var document = TFlex.Application.OpenDocument(dialog.FileName);
MessageBox.Show("OK");
SaveFileDialog dialog1 = new SaveFileDialog ();
dialog1.Filter = "GRB files (*.dxf)|*.dxf";
if(dialog1.ShowDialog() != DialogResult.OK)
return;
ImportFromACAD imp = new ImportFromACAD(document);
imp.Import(dialog.FileName);// в этом месте выдает "В экземпляре объекта не задана ссылка на объект"
MessageBox.Show("OK");
}
}
}
а если как вы пишете:
ImportFromACAD imp = document.ImportFromACAD;
imp.Import(dialog.FileName);
MessageBox.Show("OK");
то вообще не компилируется (ошибку уже описывал выше)
дело в том, что классу Document не доступно свойство ImportFromACAD (доступно только ImportedOperations ,ImportVariables). Так вроде!?
Если не прав - просветите пожалуйста!