获取当前程序的运行目录并生成目录


//获取当前程序的运行目录
#include <Windows.h>
string GetAppPathA()
{
	char szExePath[MAX_PATH] = {0};
	GetModuleFileNameA(NULL,szExePath,MAX_PATH);
	char *pstr = strrchr(szExePath,'\\');
	memset(pstr+1,0,1);
	string strAppPath(szExePath);
	return strAppPath;
}

string strLogPath = GetAppPathA().append("LogInfo\\");
CreateDirectoryA(strLogPath.c_str(),NULL);

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,下面是一个简单的C#程序,可以读取本目录下的DXF文件,并利用AutoCAD的COM组件生成图形: ```csharp using System; using System.IO; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Autodesk.AutoCAD.Interop; using Autodesk.AutoCAD.Interop.Common; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Geometry; namespace DXFReader { class Program { static void Main(string[] args) { // 获取当前目录下的所有DXF文件 string[] dxfFiles = Directory.GetFiles(Directory.GetCurrentDirectory(), "*.dxf"); // 创建AutoCAD对象 AcadApplication acadApp = new AcadApplication(); acadApp.Visible = true; // 遍历所有DXF文件 foreach (string dxfFile in dxfFiles) { // 打开DXF文件 AcadDocument doc = acadApp.Documents.Open(dxfFile); // 获取模型空间 AcadModelSpace modelSpace = doc.ModelSpace; // 遍历所有实体 foreach (AcadEntity entity in modelSpace) { // 创建图形对象 Entity acEntity = null; // 根据实体类型创建不同的图形对象 if (entity.EntityType == AcEntityType.acCircle) { AcadCircle circle = (AcadCircle)entity; acEntity = new Circle(new Point3d(circle.Center[0], circle.Center[1], 0), Vector3d.ZAxis, circle.Radius); } else if (entity.EntityType == AcEntityType.acLine) { AcadLine line = (AcadLine)entity; acEntity = new Line(new Point3d(line.StartPoint[0], line.StartPoint[1], 0), new Point3d(line.EndPoint[0], line.EndPoint[1], 0)); } else if (entity.EntityType == AcEntityType.acPolyline) { AcadLWPolyline polyline = (AcadLWPolyline)entity; // 创建多段线 Polyline acPolyline = new Polyline(); for (int i = 0; i < polyline.NumberOfVertices; i++) { double[] vertex = polyline.GetPointAtVertex(i); acPolyline.AddVertexAt(i, new Point2d(vertex[0], vertex[1]), 0, 0, 0); } acEntity = acPolyline; } // 将图形对象添加到模型空间 if (acEntity != null) { using (Transaction tr = doc.Database.TransactionManager.StartTransaction()) { BlockTableRecord btr = (BlockTableRecord)tr.GetObject(doc.Database.CurrentSpaceId, OpenMode.ForWrite); btr.AppendEntity(acEntity); tr.AddNewlyCreatedDBObject(acEntity, true); tr.Commit(); } } } // 保存并关闭DXF文件 doc.Save(); doc.Close(); } // 退出AutoCAD acadApp.Quit(); } } } ``` 这个程序会遍历当前目录下的所有DXF文件,并将其中的圆、直线和多段线转换成AutoCAD的图形对象,然后将它们添加到模型空间中。注意,需要安装AutoCAD并添加对应的COM组件才能运行这个程序

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小新识图

你的鼓励是我最大的分享动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值