FLYFUN 发表于 2004-5-8 21:35:00

csharp_com

using System;
using Autodesk..DatabaseServices;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.ApplicationServices;
using System.Reflection;
using System.IO;
using System.Collections;
using System.Runtime.InteropServices;
using Autodesk.AutoCAD.Interop;
using Autodesk.AutoCAD.Interop.Common;
using System.Diagnostics;
using Autodesk.AutoCAD.PlottingServices;
using Autodesk.AutoCAD.Colors;
using DBTransMan = Autodesk.AutoCAD.DatabaseServices.TransactionManager;
namespace setenv
{
public class entities_com
        {
                private AcadApplication acadApp;
                private AcadDocument acadDoc;
                public entities_com()
                {
                        acadApp=(AcadApplication)Application.AcadApplication;
                        acadDoc=acadApp.ActiveDocument;
                }
                //添加新线型
                public void loadLintType(string ltname)
                {
                        bool hasThisLineType=false;
                        foreach        (AcadLineType entry in acadDoc.Linetypes)
                                if(entry.Name==ltname)       
                                {
                                        hasThisLineType=true;
                                }
                        if(!hasThisLineType)
                        {
                                acadDoc.Linetypes.Load(ltname,"acad.lin");
                                CommandLinePrompts.Message(string.Format("加载线型 {0}",ltname));
                        }
                }
                //插入块
                public bool insertBlock(Point3d basePt,string blkname)
                {
                        double[] pt=new double;
                        AcadBlockReference blockRefObj;
                        pt=basePt;
                        pt=basePt;
                        pt=basePt;
                        blockRefObj=acadDoc.ModelSpace.InsertBlock(pt,blkname,1.0,1.0,1.0,0,"");
                        if(blockRefObj!=null)
                        {
                                blockRefObj.Explode();
                                return true;
                        }
                        else
                        {
                                CommandLinePrompts.Message(string.Format("未找到 {0} 块!",blkname));
                                return false;
                        }
                }
                public bool setTextStyle(string tstname)
                {
                        AcadTextStyle newText=acadDoc.TextStyles.Add(tstname);
                        newText.BigFontFile="hztxt.shx";
                        newText.fontFile="simplex.shx";
                        newText.Height=5.0;
                        newText.Width =0.7;
                        return true;
                }
        }
}
调用
       
                public static void mycmd2()
                {
                        entities_com ets=new entities_com();
                        ets.setTextStyle("hz1");
                }
               
                public static void mycmd3()
                {
                        entities_com ets=new entities_com();
                        ets.loadLintType("DASHDOT");
                        Point3d basePt=new Point3d(0,0,0);
                        ets.insertBlock(basePt,"headA.dwg");
                }
页: [1]
查看完整版本: csharp_com