日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

python读取cad_SmartSoft中用C#.Net实现AutoCAD块属性提取|python基础教程|python入门|python教程...

發布時間:2023/12/14 C# 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python读取cad_SmartSoft中用C#.Net实现AutoCAD块属性提取|python基础教程|python入门|python教程... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

https://www.xin3721.com/eschool/pythonxin3721/

本文主要給大家介紹一下SmartSoft中用C#.Net實現AutoCAD塊屬性提取的方法,并給出實例代碼與大家共享。此類實現AutoCAD塊屬性提取功能,在VS.Net2003(2005)+AutoCAD2004(2007)下調試通過。

以下是引用片段:

using System;

using AutoCAD=Autodesk.AutoCAD.Interop;

using System.Runtime.InteropServices ;

using dbx = Autodesk.AutoCAD.Interop.Common;

namespace SmartSoft.ACAD

{

///

/// 讀取AutoCAD屬性信息

///

public class AutoCADConnector:IDisposable

{

private AutoCAD.AcadApplication _Application;

private bool _Initialized;

private bool _Disposed;

#region 類初始化及析構操作

///

/// 類初始化,試圖獲取一個正在運行的AutoCAD實例,

/// 如果沒有則新起動一個實例。

///

public AutoCADConnector()

{

try

{

//取得一個正在運行的AUTOCAD實例

this._Application = (AutoCAD.AcadApplication)Marshal.GetActiveObject("AutoCAD.Application.17");

}//end of try

catch

{

try

{

//建立一個新的AUTOCAD實例,并標識已經建立成功。

_Application = new AutoCAD.AcadApplicationClass();

_Initialized=true;

}

catch

{

throw new Exception ("無法起動AutoCAD應用程序,確認已經安裝");

}

}//end of catch

}//end of AutoCADConnector

~AutoCADConnector()

{

Dispose(false);

}

public void Dispose()

{

Dispose(true);

GC.SuppressFinalize(this);

}

protected virtual void Dispose(bool disposing)

{

if (!this._Disposed && this._Initialized )

{

//如果建立了AUTOCAD的實列,調用QUIT方法以避免內存漏洞

this._Application.ActiveDocument.Close (false,"");

this._Application.Quit();

this._Disposed=true;

}

}

#endregion

#region 公共用戶接口屬性

///

/// 取得當前類所獲得的AUTOCAD實例

///

public AutoCAD.AcadApplication Application

{

get

{

return _Application;

}

}//end of Application

#endregion

#region 公共用戶接口方法

///

/// 根據給定的文件名以AxDbDocument類型返回該文檔

///

public dbx.AxDbDocument GetThisDrawing(string FileName,string PassWord)

{

ACAD.AutoCADConnector Connector=new AutoCADConnector();

//這是AutoCAD2004的Programe ID

string programeID ="ObjectDBX.AxDbDocument.17";

AutoCAD.AcadApplication AcadApp = Connector.Application;

dbx.AxDbDocument dbxDoc;

dbxDoc=(dbx.AxDbDocument)AcadApp.GetInterfaceObject(programeID);

try

{

if (System.IO.File.Exists (FileName)==false) throw new Exception ("文件不存在。");

dbxDoc.Open(FileName,PassWord);

}// end of try

catch (Exception e)

{

System.Windows.Forms.MessageBox.Show(e.Message );

dbxDoc=null;

}

return dbxDoc;

}//end of function GetThisDrawing

///

/// 根據當前文檔和塊名取得當前塊的引用

///

public dbx.AcadBlockReference GetBlockReference(dbx.AxDbDocument thisDrawing,string blkName)

{

dbx.AcadBlockReference blkRef=null;

bool found = false;

try

{

foreach (dbx.AcadEntity entity in thisDrawing.ModelSpace )

{

if (entity.EntityName=="AcDbBlockReference")

{

blkRef=(dbx.AcadBlockReference)entity;

//System.Windows.Forms.MessageBox.Show(blkRef.Name);

if (blkRef.Name.ToLower() ==blkName.ToLower() )

{

found = true;

break;

}

}//end of entity.EntityName=="AcDbBlockReference"

}// end of foreach thisDrawing.ModelSpace

}//end of try

catch (Exception e)

{

System.Windows.Forms.MessageBox.Show ("圖形中有未知的錯誤,格式不正確或圖形數據庫需要修愎。系統錯誤提示:" + e.Message ,"信息",System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning);

thisDrawing=null;

}//end of catch

if (!found) blkRef = null;

return blkRef;

}//end of function GetBlockReference

///

/// 根據給定的塊引用(dbx.AcadBlockReference)和屬性名返回屬性值

///

public object GetValueByAttributeName(dbx.AcadBlockReference blkRef,string AttributeName)

{

object[] Atts=(object[])blkRef.GetAttributes();

object attValue=null;

for (int i=0;i

{

dbx.AcadAttributeReference attRef;

attRef=(dbx.AcadAttributeReference)Atts[i];

if (attRef.TagString==AttributeName)

{

attValue= attRef.TextString ;

break;

}

}//end of for i

return attValue;

}// end of function

#endregion

}//end of class CAutoCADConnector

}//end of namespace AutoCAD

總結

以上是生活随笔為你收集整理的python读取cad_SmartSoft中用C#.Net实现AutoCAD块属性提取|python基础教程|python入门|python教程...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人黄色激情视频 | 老子影院午夜伦不卡大全 | 亚洲精品一二三四区 | 男女洗澡互摸私密部位视频 | 国产做爰免费观看视频 | aaa人片在线 | 欧美啪啪一区 | 欧美色偷偷| 成人黄色大片在线观看 | 91视频官网| 在线激情小视频 | 五月天一区二区 | 激情文学综合网 | 国语对白一区二区 | 我要看免费毛片 | 在线资源av | 中文字幕视频免费 | 天堂网色| 少妇诱惑av| 男女h网站| 欧色图| 日b在线观看 | 久久婷婷国产麻豆91天堂 | 欧美精品乱码 | 欧美黑人三级 | 久久精品久 | a片在线免费观看 | 国产区在线 | 69精品视频 | 1515hh成人免费看 | 久久综合久久综合久久综合 | 国产21区 | av中文资源| 波多野结衣一本 | 欧美精品在欧美一区二区少妇 | 日本黄页网站免费大全 | 久久深夜视频 | 蜜桃av噜噜 | 久久av资源网 | 69xx国产| 91红桃视频 | 国产电影一区二区三区爱妃记 | 深田咏美在线x99av | 大乳女喂男人吃奶 | 国产在线观看免费播放 | 久草综合在线视频 | 黄色网一级片 | 一区欧美 | 成人做爰66片免费看网站 | 久久黄色视屏 | 蜜桃tv一区二区三区 | 久久久久久久久久久久电影 | 无码黑人精品一区二区 | 国产乱色精品成人免费视频 | 国产一区二区免费电影 | 欧美日韩成人一区二区三区 | 香蕉视频一级 | 人妻熟女aⅴ一区二区三区汇编 | 在线观看日本 | 国产亚洲精品精品国产亚洲综合 | 欧美片在线观看 | 成人av免费 | 中国少妇无码专区 | 爱爱福利社 | 91成人在线观看喷潮动漫 | 国产成人精品片 | 天堂精品一区 | 午夜va | 日本婷婷 | 91吃瓜在线 | 少妇把腿扒开让我舔18 | 欧美精品hd | 日本乱子伦xxxx | 天堂在线免费观看视频 | 海角官网 | 男男做性免费视频网 | 高清成人| 一级黄色淫片 | 777色 | 在线观看日批视频 | 国内激情 | 大香蕉精品一区 | 大奶子网站 | 日本黄网站色大片免费观看 | 香港三日本三级少妇66 | 欧美视频网址 | 国产成人无码一区二区在线观看 | 精品中文字幕av | 国产精品成人免费一区久久羞羞 | 波多野结衣99 | 双性皇帝高h喷汁呻吟 | 蜜桃臀一区二区三区 | 国产成人一区二区三区视频 | 亚洲精品国产精品乱码在线观看 | 美女露隐私网站 | 精品国产欧美一区二区三区成人 | 欧美色图3p | 免费av看| 日韩精品国产一区 |