• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            C++ Programmer's Cookbook

            {C++ 基礎} {C++ 高級} {C#界面,C++核心算法} {設計模式} {C#基礎}

            Autodesk CAD實體集合另存為小工具

            一,使用Autodesk CAD的二次開發技術ObjectARX(依賴與Autodesk CAD)。其中有c++和C#版,這里使用C#版。

            二,生成的dll(C#)或arx(c++),必須被拷貝到ACAD的目錄下,且在ACAD中使用命令netload或appload加載生成的dll或arx,加載后我們在ACAD中輸入我們的命令即可。(下面小程序的命令是SaveDwg

            三,小程序的功能是選取ACAD中打開的dwg圖紙上的一些內容,然后保存為另一張dwg圖紙。

            四,c#的代碼如下,比較簡單,只考慮了簡單的情況。

            using System;
            using System.Collections.Generic;
            using System.Text;
            using System.Windows.Forms;
            using System.Collections;

            using Autodesk.AutoCAD.Runtime;
            using Autodesk.AutoCAD.DatabaseServices;
            using Autodesk.AutoCAD.EditorInput;
            using Autodesk.AutoCAD.ApplicationServices;

            namespace SaveDwg
            {
                
            public class Program
                
            {   
             
                    [CommandMethod(
            "SaveDwg")]   
                    
                    
            public void SaveDwg()
                    
            {
                        
            try
                        
            {

                            Database db 
            = HostApplicationServices.WorkingDatabase;

                            SelectionSet selectionset;
                            ArrayList setList 
            = new ArrayList();

                            Editor ed 
            = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;
                            ed.WriteMessage(
            "welcome to use the tool, it can save as a dwg file for your selected entities.\n");
                            PromptSelectionOptions selectionOptions 
            = new PromptSelectionOptions();
                            PromptSelectionResult selectionResult;
                            selectionResult 
            = ed.GetSelection(selectionOptions);
                            
            if (selectionResult.Status != PromptStatus.OK)
                            
            {
                                ed.WriteMessage(
            "select error, please use command again.\n");
                                
            return;
                            }

                            
            else
                            
            {
                                selectionset 
            = selectionResult.Value;
                                
            foreach (ObjectId id in selectionset.GetObjectIds())
                                
            {
                                    DBObject ob 
            = id.Open(OpenMode.ForRead);
                                    Entity ent 
            = ob as Entity;
                                    
            if (ent != null)
                                    
            {
                                        Entity ent2 
            = ent.Clone() as Entity;
                                        setList.Add(ent2);
                                        ed.WriteMessage(
            "copying entity is successful.\n");
                                    }
                                    
                                    ob.Close();
                                }

                            }

                            ed.WriteMessage(
            "select and copy successfully.\n");

                            Database Db 
            = new Database(truefalse);
                            HostApplicationServices.WorkingDatabase 
            = Db;
                            Autodesk.AutoCAD.DatabaseServices.TransactionManager manager 
            = Db.TransactionManager;
                            
            using (Transaction transaction = manager.StartTransaction())
                            
            {
                                BlockTable table 
            = (BlockTable)manager.GetObject(Db.BlockTableId, OpenMode.ForWrite);
                                BlockTableRecord record 
            = (BlockTableRecord)manager.GetObject(Db.CurrentSpaceId, OpenMode.ForWrite);

                                
            foreach (Object obj in setList)
                                
            {
                                    Entity ent 
            = obj as Entity;
                                    
            if (ent != null)
                                    
            {
                                        record.AppendEntity(ent);
                                        
            //manager.AddNewlyCreatedDBObject(ent,true);
                                    }


                                }

                                record.Close();
                                table.Close();
                                transaction.Commit();
                            }


                            SaveFileDialog dialog 
            = new SaveFileDialog();
                            
            string filePath;
                            
            if (DialogResult.OK == dialog.ShowDialog())
                            
            {
                                filePath 
            = dialog.FileName;
                                Db.SaveAs(filePath, DwgVersion.Current);
                            }

                            
                        }

                        
            catch(System.Exception e)
                        
            {
                            MessageBox.Show(
            "copy fail");
                        }

                    }

                }

            }


            五,記得要reference ObjectARX程序需要的dll哦,如下圖:

            六,想要脫離AutodeskCAD處理dwg圖紙,需要使用ObjectDBX技術,最新版改名為realdwg技術。

            posted on 2007-05-24 15:04 夢在天涯 閱讀(3204) 評論(7)  編輯 收藏 引用 所屬分類: ARX/DBX

            評論

            # re: Autodesk CAD實體集合另存為小工具 2007-05-24 15:08 夢在天涯

            命令是:SaveDwg  回復  更多評論   

            # re: Autodesk CAD實體集合另存為小工具 2007-05-25 15:24 ethan

            持續關注你的文章   回復  更多評論   

            # re: Autodesk CAD實體集合另存為小工具 2008-03-16 19:23

            夢在天涯?你好,看了你的關于“Autodesk CAD實體集合另存為小工具”文章很興趣,因為我做模具設計,經常需要將一個圖中的單個圖拷貝給別人線割,如果有了你的那個savedwg,工作為方便好多,但是我又不會C++,能否將編譯后的arx文件發給我,另外,如果能給個視頻教程,本人將更感激!謝謝了!我的郵箱是:guoling0412@163.com  回復  更多評論   

            # re: Autodesk CAD實體集合另存為小工具 2012-01-06 12:45 RoseMorton25

            A lot of specialists argue that <a href="http://goodfinance-blog.com/topics/personal-loans">personal loans</a> aid a lot of people to live their own way, just because they are able to feel free to buy needed stuff. Furthermore, a lot of banks offer commercial loan for different classes of people.   回復  更多評論   

            # re: Autodesk CAD實體集合另存為小工具 2012-01-13 08:13 essay paper

            You can ask if that is a fair to buy essay papers. I claim that's a natural stuff to use academic writing corporations to reach your goal.   回復  更多評論   

            # re: Autodesk CAD實體集合另存為小工具 2012-01-13 08:15 Research paper references

            Do you know people who can help with Research paper made easy accomplishing? I will surely pay cash for such a help.   回復  更多評論   

            # re: Autodesk CAD實體集合另存為小工具 2013-07-31 09:21 visit this website

            Want to buy CV? Have no idea where to buy resume paper? Select this site where you can find resume templates. Our certified resume writers will assure you that buying resume can bring job seekers career success!  回復  更多評論   

            # re: Autodesk CAD實體集合另存為小工具 2013-07-31 09:52 Web page

            Desire to learn about essay writing services? Seeking for trusty organization to get aid from? PremiumQualityEssays rewiew will give you a list of firms from which students may select the most qualified ones to order paper from.  回復  更多評論   

            公告

            EMail:itech001#126.com

            導航

            統計

            • 隨筆 - 461
            • 文章 - 4
            • 評論 - 746
            • 引用 - 0

            常用鏈接

            隨筆分類

            隨筆檔案

            收藏夾

            Blogs

            c#(csharp)

            C++(cpp)

            Enlish

            Forums(bbs)

            My self

            Often go

            Useful Webs

            Xml/Uml/html

            搜索

            •  

            積分與排名

            • 積分 - 1807563
            • 排名 - 5

            最新評論

            閱讀排行榜

            久久99精品九九九久久婷婷| 99精品国产在热久久 | 日韩精品久久久久久| 国产精品一区二区久久精品无码| 久久这里只有精品视频99| 久久精品国产久精国产一老狼| 无码AV波多野结衣久久| 伊人色综合久久天天| 久久久噜噜噜www成人网| 久久精品国产精品亚洲艾草网美妙| 亚洲AV无码久久精品成人| 国产精品久久久久9999| 2021国内久久精品| 久久久久久国产精品无码下载| 伊人久久大香线蕉综合Av| 亚洲欧洲精品成人久久奇米网| 亚洲一区二区三区日本久久九| 2021国内久久精品| 免费一级做a爰片久久毛片潮| 久久久久久无码Av成人影院 | 一本色道久久88综合日韩精品 | 久久精品日日躁夜夜躁欧美| 久久亚洲高清观看| 久久久久AV综合网成人| 欧美国产成人久久精品| 久久久综合香蕉尹人综合网| 国产日韩久久免费影院| 国产精品欧美亚洲韩国日本久久| 久久66热人妻偷产精品9| 国产麻豆精品久久一二三| 中文字幕无码久久精品青草| 久久av高潮av无码av喷吹| 狠狠久久综合| 很黄很污的网站久久mimi色| 国产福利电影一区二区三区久久久久成人精品综合| 99久久国产宗和精品1上映 | 久久精品夜色噜噜亚洲A∨| 日本久久久精品中文字幕| 66精品综合久久久久久久| 欧美日韩中文字幕久久伊人| 91久久福利国产成人精品|