




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)第第6講講 AutoCAD內(nèi)部命令調(diào)用內(nèi)部命令調(diào)用及用戶交互及用戶交互主講人:劉德兒主講人:劉德兒2國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)2 2、使用、使用AutoCADAutoCAD內(nèi)部命令內(nèi)部命令主要內(nèi)容3 3、和用戶交互、和用戶交互4 4、選擇集、選擇集1 1、C+C+類型轉(zhuǎn)換成類型轉(zhuǎn)換成C#C#類型類型3國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)1、C#調(diào)用調(diào)用dll時(shí)的類型轉(zhuǎn)換時(shí)的類型轉(zhuǎn)換C+(Win 32)C#char*作為輸入?yún)?shù)轉(zhuǎn)為char,通過Encoding類對(duì)這個(gè)string進(jìn)行編碼后得到的一個(gè)
2、char作為輸出參數(shù)轉(zhuǎn)為byte,通過Encoding類對(duì)這個(gè)byte進(jìn)行解碼,得到字符串4國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)C+ Dll接口:接口:void CplusplusToCsharp(in char* AgentID, out char* AgentIP);C#中的聲明:DllImport(Example.dll)public static extern void CplusplusToCsharp(char AgentID, byte AgentIP);C#中的調(diào)用:中的調(diào)用:Encoding encode = Encoding.Default;byte tAg
3、entID;byte tAgentIP;string AgentIP;tAgentID = new byte100;tAgentIP = new byte100;CplusplusToCsharp(encode.GetChars(tAgentID), tAgentIP);AgentIPi = encode.GetString(tAgentIP,i*Length,Length);5國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)1、C#調(diào)用調(diào)用dll時(shí)的類型轉(zhuǎn)換時(shí)的類型轉(zhuǎn)換HandleIntPtrHwndIntPtrint*ref intint&ref intvoid*IntPtrunsig
4、ned char*ref byteBOOLboolDWORDint 或 uint(int 更常用一些)6國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)枚舉類型枚舉類型Win32:BOOL MessageBeep(UINT uType / 聲音類型聲音類型); 其中其中的聲音類型為枚舉類型中的某一值。的聲音類型為枚舉類型中的某一值。C#:用戶需要自己定義一個(gè)枚舉類型:public enum BeepType SimpleBeep = -1, IconAsterisk = 0 x00000040, IconExclamation = 0 x00000030, IconHand = 0 x00
5、000010, IconQuestion = 0 x00000020, Ok = 0 x00000000,C#中導(dǎo)入該函數(shù):中導(dǎo)入該函數(shù):DllImport(user32.dll)public static extern bool MessageBeep(BeepType beepType);C#中調(diào)用該函數(shù):中調(diào)用該函數(shù): MessageBeep(BeepType.IconQuestion);7國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)1、C#調(diào)用調(diào)用dll時(shí)的類型轉(zhuǎn)換時(shí)的類型轉(zhuǎn)換結(jié)構(gòu)結(jié)構(gòu)轉(zhuǎn)換轉(zhuǎn)換Win32:使用結(jié)構(gòu)指針作為參數(shù)的函數(shù):BOOL GetSystemPowerStat
6、us(LPSYSTEM_POWER_STATUS lpSystemPowerStatus);Win32中該結(jié)構(gòu)體的定義:中該結(jié)構(gòu)體的定義:typedef struct _SYSTEM_POWER_STATUS BYTE ACLineStatus;BYTE BatteryFlag;BYTE BatteryLifePercent;BYTE Reserved1;DWORDBatteryLifeTime;DWORDBatteryFullLifeTime; SYSTEM_POWER_STATUS, *LPSYSTEM_POWER_STATUS;8國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)1、C
7、#調(diào)用調(diào)用dll時(shí)的類型轉(zhuǎn)換時(shí)的類型轉(zhuǎn)換C#:用戶自定義相應(yīng)的結(jié)構(gòu)體:用戶自定義相應(yīng)的結(jié)構(gòu)體:struct SystemPowerStatus byte ACLineStatus; byte batteryFlag; byte batteryLifePercent; byte reserved1; int batteryLifeTime; int batteryFullLifeTime;C#中導(dǎo)入該函數(shù):中導(dǎo)入該函數(shù):DllImport(kernel32.dll)public static extern bool GetSystemPowerStatus( ref SystemPowerSta
8、tus systemPowerStatus);C#中調(diào)用該函數(shù):中調(diào)用該函數(shù):SystemPowerStatus sps;.sps初始化賦值GetSystemPowerStatus(ref sps);9國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)1、C#調(diào)用調(diào)用dll時(shí)的類型轉(zhuǎn)換時(shí)的類型轉(zhuǎn)換字符串字符串對(duì)于字符串的處理分為以下幾種情況:1、字、字符串常量指針的處符串常量指針的處理理(LPCTSTR),也也適應(yīng)于字符串常量的處理,適應(yīng)于字符串常量的處理,.net中的中的string類型是不可變的類類型是不可變的類型型2、字、字符串緩沖區(qū)的處理(符串緩沖區(qū)的處理(char*),即),即對(duì)于
9、變長字符串的處理,對(duì)于變長字符串的處理,.net中中StringBuilder可用作緩沖可用作緩沖區(qū)區(qū)10國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)1、C#調(diào)用調(diào)用dll時(shí)的類型轉(zhuǎn)換時(shí)的類型轉(zhuǎn)換-字符字符串串實(shí)實(shí)例例Win32:BOOL GetFile(LPCTSTR lpRootPathName);C#:函數(shù)聲明:DllImport(kernel32.dll, CharSet = CharSet.Auto)static extern bool GetFile (MarshalAs(UnmanagedType.LPTStr)string rootPathName);函數(shù)調(diào)用:函數(shù)調(diào)用
10、:string pathname;GetFile(pathname);備注:備注:DllImport中的CharSet是為了說明自動(dòng)地調(diào)用該函數(shù)相關(guān)的Ansi版本或者Unicode版本11國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)1、C#調(diào)用調(diào)用dll時(shí)的類型轉(zhuǎn)換時(shí)的類型轉(zhuǎn)換-字符串字符串實(shí)實(shí)例例變長字符串處理:變長字符串處理:C#:函數(shù)聲明:DllImport(kernel32.dll, CharSet = CharSet.Auto)public static extern int GetShortPathName( MarshalAs(UnmanagedType.LPTStr)
11、string path, MarshalAs(UnmanagedType.LPTStr) StringBuilder shortPath, int shortPathLength);函數(shù)調(diào)用:函數(shù)調(diào)用:StringBuilder shortPath = new StringBuilder(80);int result = GetShortPathName(d:test.jpg, shortPath, shortPath.Capacity);string s = shortPath.ToString();12國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)1、C#調(diào)用調(diào)用dll時(shí)的類型轉(zhuǎn)換時(shí)
12、的類型轉(zhuǎn)換struct具有內(nèi)嵌字符數(shù)組的結(jié)構(gòu):具有內(nèi)嵌字符數(shù)組的結(jié)構(gòu):Win32:typedef struct _TIME_ZONE_INFORMATION LONG Bias;WCHARStandardName 32 ;SYSTEMTIME StandardDate;LONG StandardBias;WCHARDaylightName 32 ;SYSTEMTIME DaylightDate;LONG DaylightBias; TIME_ZONE_INFORMATION, *PTIME_ZONE_INFORMATION;13國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)1、C#調(diào)用調(diào)
13、用dll時(shí)的類型轉(zhuǎn)換時(shí)的類型轉(zhuǎn)換C#:StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)struct TimeZoneInformation public int bias; MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32) public string standardName; DateTime standardDate; public int standardBias; MarshalAs(UnmanagedType.ByValTStr, SizeConst = 3
14、2) public string daylightName; SystemTime daylightDate; public int daylightBias;14國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)1、C#調(diào)用調(diào)用dll時(shí)的類型轉(zhuǎn)換時(shí)的類型轉(zhuǎn)換具有回調(diào)的函數(shù)Win32:BOOL EnumDesktops(HWINSTA hwinsta, / 窗口實(shí)例的句柄ENUMDESKTOPPROC lpEnumFunc,/ 回調(diào)函回調(diào)函數(shù)數(shù)LPARAM lParam/ 用于回調(diào)函數(shù)的值);回調(diào)函數(shù)DESKTOPENUMPROC的聲明:BOOL CALLBACK EnumDesktopPr
15、oc(LPTSTR lpszDesktop,/ 桌面名稱LPARAM lParam/ 用戶定義的值);15國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)1、C#調(diào)用調(diào)用dll時(shí)的類型轉(zhuǎn)換時(shí)的類型轉(zhuǎn)換C#:將回調(diào)函數(shù)的聲明轉(zhuǎn)化為委托:delegate bool EnumDesktopProc(MarshalAs(UnmanagedType.LPTStr) string desktopName, int lParam);該函數(shù)在C#中的聲明:DllImport(user32.dll, CharSet = CharSet.Auto)static extern bool EnumDesktops
16、( IntPtr windowStation, EnumDesktopProc callback, int lParam);16國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)2 2、使用、使用AutoCADAutoCAD內(nèi)部命令內(nèi)部命令主要內(nèi)容3 3、和用戶交互、和用戶交互4 4、選擇集、選擇集1 1、C+C+類型轉(zhuǎn)換成類型轉(zhuǎn)換成C#C#類型類型17國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)2、使用、使用AutoCAD內(nèi)部命令內(nèi)部命令n方式一:使用方式一:使用SendStringToExecute n方式二:使用方式二:使用P/Invoke 18國家制造業(yè)信息化工程重大項(xiàng)目-C
17、AD二次開發(fā)二次開發(fā)使用使用SendStringToExecutenSendStringToExecute 方法將單個(gè)字符串發(fā)送到命方法將單個(gè)字符串發(fā)送到命令行。該字符串必須包含提供給所執(zhí)行命令的參數(shù),令行。該字符串必須包含提供給所執(zhí)行命令的參數(shù),并依照該命令的提示順序所要求的次序排列這些參數(shù)并依照該命令的提示順序所要求的次序排列這些參數(shù) n使用使用 SendStringToExecute 執(zhí)行命令是異步的,直執(zhí)行命令是異步的,直到到 .NET 命令結(jié)束,否則不會(huì)被調(diào)用命令結(jié)束,否則不會(huì)被調(diào)用 19國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)使用使用P/Invoke方式方式n在在Obj
18、ectARX編程中,可以使用以下函數(shù)來執(zhí)行編程中,可以使用以下函數(shù)來執(zhí)行AutoCAD內(nèi)部的命令內(nèi)部的命令acedCommandacedCmd20國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)acedCommand函數(shù)函數(shù)nC+acedCommand函數(shù)的定義為:函數(shù)的定義為: int acedCommand(int rtype, . unnamed); 21國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)22國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)acedCommand函數(shù)函數(shù)n.NET中調(diào)用中調(diào)用acedCommand函數(shù)函數(shù)實(shí)例:繪制圓實(shí)例:繪制圓23國家制造業(yè)信息
19、化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)效果效果24國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)acedCommand函數(shù)函數(shù)n創(chuàng)建將塊生成創(chuàng)建將塊生成ICON命令命令BlockIcon25國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)acedCmd函數(shù)函數(shù)nC+中,中,acedCmd函數(shù)的定義為:函數(shù)的定義為: int acedCmd(const struct resbuf * rbp); n該函數(shù)的參數(shù)是一個(gè)該函數(shù)的參數(shù)是一個(gè)resbuf類型的指針,這里需要的結(jié)果緩類型的指針,這里需要的結(jié)果緩沖區(qū)可以由沖區(qū)可以由acutBuildList函數(shù)生成。由于函數(shù)生成。由于acedCo
20、mmand函函數(shù)實(shí)質(zhì)上也是為要執(zhí)行的命令構(gòu)造了一個(gè)數(shù)實(shí)質(zhì)上也是為要執(zhí)行的命令構(gòu)造了一個(gè)resbuf結(jié)構(gòu),因此結(jié)構(gòu),因此acedCmd函數(shù)和函數(shù)和acedCommand函數(shù)完全能夠?qū)崿F(xiàn)相同的功函數(shù)完全能夠?qū)崿F(xiàn)相同的功能能26國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)acedCmd函數(shù)函數(shù)union ads_u_val ads_real rreal; ads_real rpoint3; short rint; / Must be declared short, not int. char *rstring;long rlname2; long rlong; struct ads_bina
21、ry rbinary; ; struct resbuf struct resbuf *rbnext; / Linked list pointer short restype; union ads_u_val resval; ; 27國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)acedCmd函數(shù)函數(shù)nC#中使用中使用acedCmd函數(shù)函數(shù)創(chuàng)建創(chuàng)建Zoom實(shí)例實(shí)例28國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)acedCmd函數(shù)函數(shù)nC#中使用中使用acedCmd函數(shù)函數(shù)創(chuàng)建創(chuàng)建Circle實(shí)例實(shí)例29國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)2 2、使用、使用AutoC
22、ADAutoCAD內(nèi)部命令內(nèi)部命令主要內(nèi)容3 3、和用戶交互、和用戶交互4 4、選擇集、選擇集1 1、C+C+類型轉(zhuǎn)換成類型轉(zhuǎn)換成C#C#類型類型30國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)3、和用戶交互、和用戶交互nAutoCAD中命令提示中命令提示如在如在AutoCAD中執(zhí)行中執(zhí)行PLINE命令時(shí),能夠得到如下的命令時(shí),能夠得到如下的命令提示:命令提示: 命令命令: _pline 指定起點(diǎn)指定起點(diǎn): 當(dāng)前線寬為當(dāng)前線寬為 0.0000 指定下一個(gè)點(diǎn)或指定下一個(gè)點(diǎn)或 圓弧圓弧(A)/半寬半寬(H)/長度長度(L)/放棄放棄(U)/寬度寬度(W): 指定下一點(diǎn)或指定下一點(diǎn)或 圓弧圓
23、弧(A)/閉合閉合(C)/半寬半寬(H)/長度長度(L)/放棄放棄(U)/寬度寬度(W): 其中的提示其中的提示“指定下一個(gè)點(diǎn)或指定下一個(gè)點(diǎn)或 圓弧圓弧(A)/半寬半寬(H)/長長度度(L)/放棄放棄(U)/寬度寬度(W):”就將提示用戶輸入點(diǎn)和關(guān)就將提示用戶輸入點(diǎn)和關(guān)鍵字結(jié)合在一起。鍵字結(jié)合在一起。31國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā) 3、和用戶交互、和用戶交互nC+ ObjectARX中提供了多個(gè)提示用戶輸入的全局函數(shù),包括中提供了多個(gè)提示用戶輸入的全局函數(shù),包括acedGetString、acedGetPoint、acedGetInt、acedGetKword和和ac
24、edGetReal等等nC#命名空間:命名空間:Autodesk.AutoCAD.EditorInputGetString、GetPoint、GetInt、GetKword和和GetReal等等輸入提示并獲取輸入結(jié)果模板輸入提示并獲取輸入結(jié)果模板輸入提示輸入提示 PromptXXXOptions pOptions = new PromptXXXOptions(“”)獲得輸入結(jié)果獲得輸入結(jié)果 (1)有指定類型返回結(jié)果)有指定類型返回結(jié)果 PromptXXXResult pResult = ed.GetXXX(pOptions ); (2)沒有指定類型返回結(jié)果()沒有指定類型返回結(jié)果(string
25、型型) PromptResult pResult = ed.GetXXX(pOptions ); (3)得到具體結(jié)果,如)得到具體結(jié)果,如 string DK = pResult .StringResult.Trim();32國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)3、和用戶交互、和用戶交互n輸入提示抽象類:輸入提示抽象類:PromptOptions,所有具體提示,所有具體提示輸入類都繼承了該類輸入類都繼承了該類33國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)3、和用戶交互、和用戶交互-實(shí)例實(shí)例n讀入字符串讀入字符串34國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)3
26、、和用戶交互、和用戶交互-實(shí)例實(shí)例n讀入讀入Double型數(shù)據(jù)型數(shù)據(jù)35國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)3、和用戶交互、和用戶交互-實(shí)例實(shí)例n讀入讀入Point36國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)3、和用戶交互、和用戶交互-實(shí)例實(shí)例n拾取實(shí)體拾取實(shí)體37國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)3、和用戶交互、和用戶交互-實(shí)例實(shí)例n打開打開dwg文件(文件(using Autodesk.AutoCAD.Windows;)38國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)2 2、使用、使用AutoCADAutoCAD內(nèi)部命令內(nèi)部命令主要內(nèi)容
27、3 3、和用戶交互、和用戶交互4 4、選擇集、選擇集1 1、C+C+類型轉(zhuǎn)換成類型轉(zhuǎn)換成C#C#類型類型39國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)4、選擇集、選擇集n1)獲得)獲得PickFirst選擇集選擇集 n2)在圖形區(qū)域中選擇對(duì)象)在圖形區(qū)域中選擇對(duì)象 n3)添加或合并多個(gè)選擇集)添加或合并多個(gè)選擇集 n4)定義選擇集過濾規(guī)則)定義選擇集過濾規(guī)則 n5)從選擇集中移除對(duì)象)從選擇集中移除對(duì)象 40國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)4.1、獲得獲得PickFirst選擇集選擇集 nPickFirst 選擇集是在先選擇對(duì)象后啟動(dòng)命令的時(shí)候創(chuàng)建的選擇集是在先選
28、擇對(duì)象后啟動(dòng)命令的時(shí)候創(chuàng)建的n為了獲得為了獲得 PickFirst 選擇集的對(duì)象,必須滿足:選擇集的對(duì)象,必須滿足:PICKFIRST 系統(tǒng)變量必須設(shè)置為系統(tǒng)變量必須設(shè)置為 1 必須給命令定義必須給命令定義 UsePickSet 命令標(biāo)記,用以通知命令要使用命令標(biāo)記,用以通知命令要使用 Pickfirst 選擇集選擇集 調(diào)用調(diào)用 SelectImplied 方法獲得方法獲得 PickFirst 選擇集選擇集 41國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)4.2、在圖形區(qū)域中選擇對(duì)象在圖形區(qū)域中選擇對(duì)象 n允許用戶從圖形中選擇對(duì)象的函數(shù):允許用戶從圖形中選擇對(duì)象的函數(shù): GetSele
29、ction:提示用戶從屏幕中拾取對(duì)象提示用戶從屏幕中拾取對(duì)象 SelectAll:在當(dāng)前空間中選擇所有對(duì)象,但不包括鎖在當(dāng)前空間中選擇所有對(duì)象,但不包括鎖定或凍結(jié)的定或凍結(jié)的 SelectCrossingPolygon:選擇與通過指定點(diǎn)定義的多選擇與通過指定點(diǎn)定義的多邊形內(nèi)部和相交的對(duì)象。多邊形可以是任何形狀但不邊形內(nèi)部和相交的對(duì)象。多邊形可以是任何形狀但不能與它自己相交或接觸能與它自己相交或接觸 SelectCrossingWindow:選擇與通過兩個(gè)點(diǎn)定義的區(qū)選擇與通過兩個(gè)點(diǎn)定義的區(qū)域內(nèi)部和相交的對(duì)象域內(nèi)部和相交的對(duì)象SelectFence:選擇與選擇柵格相交的所有對(duì)象。柵格選擇與選擇與選
30、擇柵格相交的所有對(duì)象。柵格選擇與多邊形相交選擇是相似的,不同的是柵格不能封閉,而且柵格可多邊形相交選擇是相似的,不同的是柵格不能封閉,而且柵格可以與自己相交以與自己相交42國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)4.2、在圖形區(qū)域中選擇對(duì)象在圖形區(qū)域中選擇對(duì)象SelectLast:選擇當(dāng)前空間中最后創(chuàng)建的對(duì)象:選擇當(dāng)前空間中最后創(chuàng)建的對(duì)象 SelectPrevious:選擇在前一個(gè)選擇對(duì)象提示時(shí)選擇的所:選擇在前一個(gè)選擇對(duì)象提示時(shí)選擇的所有對(duì)象有對(duì)象 SelectWindow:選擇完全包含在通過兩個(gè)點(diǎn)定義的矩形內(nèi):選擇完全包含在通過兩個(gè)點(diǎn)定義的矩形內(nèi)部的所有對(duì)象部的所有對(duì)象 Sel
31、ectWindowPolygon:選擇完全包含在通過點(diǎn)定義的多:選擇完全包含在通過點(diǎn)定義的多邊形里面的對(duì)象。多邊形可以是任何形狀但不能與它自己邊形里面的對(duì)象。多邊形可以是任何形狀但不能與它自己相交或接觸相交或接觸 SelectAtPoint:選擇經(jīng)過給定點(diǎn)的對(duì)象并將它們放到活動(dòng):選擇經(jīng)過給定點(diǎn)的對(duì)象并將它們放到活動(dòng)選擇集中去選擇集中去 SelectByPolygon:選擇柵格內(nèi)部的對(duì)象并將它們放到活:選擇柵格內(nèi)部的對(duì)象并將它們放到活動(dòng)選擇集中去動(dòng)選擇集中去 43國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)44國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)4.3、添加或合并多個(gè)選擇
32、集、添加或合并多個(gè)選擇集 n用戶可以合并多個(gè)選擇集,需要?jiǎng)?chuàng)建一個(gè)用戶可以合并多個(gè)選擇集,需要?jiǎng)?chuàng)建一個(gè) ObjectIdCollection 對(duì)象,然后向其中添加多個(gè)選擇集的對(duì)對(duì)象,然后向其中添加多個(gè)選擇集的對(duì)象的象的 ObjectID 45國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)4.4、定義選擇集過濾規(guī)則、定義選擇集過濾規(guī)則 n選擇集過濾規(guī)則類型:選擇集過濾規(guī)則類型:使用選擇集過濾器定義選擇集規(guī)則使用選擇集過濾器定義選擇集規(guī)則 在選擇集過濾器中指定多個(gè)條件在選擇集過濾器中指定多個(gè)條件 添加復(fù)雜的過濾器列表?xiàng)l件添加復(fù)雜的過濾器列表?xiàng)l件 在選擇器過濾器條件中使用通配符在選擇器過濾器條件
33、中使用通配符 過濾擴(kuò)展數(shù)據(jù)過濾擴(kuò)展數(shù)據(jù) 46國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)4.4.1、使用選擇集過濾器定義選擇集規(guī)使用選擇集過濾器定義選擇集規(guī)則則 n常用過濾器的常用過濾器的 DXF 組碼組碼 47國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)4.4.1、使用選擇集過濾器定義選擇集規(guī)使用選擇集過濾器定義選擇集規(guī)則則n過濾器類過濾器類SelectionFilter48國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)4.4.1、使用選擇集過濾器定義選擇集規(guī)使用選擇集過濾器定義選擇集規(guī)則則n實(shí)例:使用過濾器選擇圓圖形實(shí)體實(shí)例:使用過濾器選擇圓圖形實(shí)體49國家制造業(yè)信息
34、化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)4.4.2、在選擇集過濾器中指定多個(gè)條件在選擇集過濾器中指定多個(gè)條件 n示例,給定兩個(gè)選擇對(duì)象的過濾條件:示例,給定兩個(gè)選擇對(duì)象的過濾條件:對(duì)象必須是圓,并且對(duì)象必須是圓,并且必須在圖層必須在圖層 0 上上50國家制造業(yè)信息化工程重大項(xiàng)目-CAD二次開發(fā)二次開發(fā)4.4.3、添加復(fù)雜的過濾器列表?xiàng)l件添加復(fù)雜的過濾器列表?xiàng)l件 n指定多個(gè)選擇條件的方式:指定多個(gè)選擇條件的方式:對(duì)于數(shù)字項(xiàng),用戶可以指定關(guān)系運(yùn)算(例如,圓的半對(duì)于數(shù)字項(xiàng),用戶可以指定關(guān)系運(yùn)算(例如,圓的半徑必須大于或等于徑必須大于或等于 5.0)對(duì)于所有項(xiàng),用戶可以指定邏輯運(yùn)算(例如對(duì)于所有項(xiàng),用戶可以指定邏輯運(yùn)算(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年三四線城市房地產(chǎn)投資風(fēng)險(xiǎn)評(píng)估與市場前景分析報(bào)告
- 藥品進(jìn)口設(shè)備管理制度
- 藥師調(diào)劑授權(quán)管理制度
- 藥店在崗培訓(xùn)管理制度
- 藥店藥品衛(wèi)生管理制度
- 菜鳥貨物倉儲(chǔ)管理制度
- 設(shè)備使用規(guī)范管理制度
- 設(shè)備器材安全管理制度
- 設(shè)備房除塵灰管理制度
- 設(shè)備管理中心管理制度
- 《義務(wù)教育生物課程標(biāo)準(zhǔn)(2022年版)》解讀
- 承包安全協(xié)議書
- 廣東食品安全管理人員抽查考核題庫附答案
- 2025年白芷種植市場調(diào)研報(bào)告
- 《DTP藥房管理中靜脈注射類創(chuàng)新藥物患者用藥風(fēng)險(xiǎn)識(shí)別分析5400字》
- 全國行政區(qū)域身份證代碼表(電子表格版)
- 期末復(fù)習(xí)人教PEP版英語五年級(jí)下冊
- 公司網(wǎng)絡(luò)安全教育課件
- 微弱的光亮(2024年山東煙臺(tái)中考語文試卷記敘文閱讀試題)
- 渠道安全巡檢注意事項(xiàng)
- 互聯(lián)網(wǎng)醫(yī)院共建合同
評(píng)論
0/150
提交評(píng)論