几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   ObjectARX(VB.NET/C#) (http://www.dimcax.com/hust/forumdisplay.php?f=176)
-   -   得到cad中所有mtext排序打印 (http://www.dimcax.com/hust/showthread.php?t=9662)

yang686526 2009-04-21 12:30 PM

得到cad中所有mtext排序打印
 
得到cad中所有mtext排序打印
www.dimcax.com
得到cad中所有mtext排序打印
, , ,
如题,每个mtext里面的单词空格隔开,每一个单词提取出来,排序。如:“i am a boy","fff ggg sss" 提取出来后应该是"i" ,"am","a","boy","fff","ggg","sss"再进行排序。 这个题目是群里一个朋友出的,好像是展示f#里面的一个功能吧,那天我用c#编了,贴出来看看。 using system; using system.collections.generic; using system.text; using autodesk.autocad.applicationservices; using autodesk.autocad.editorinput; using autodesk.autocad.databaseservices; using system.data; using app = autodesk.autocad.applicationservices.application; using tranman = autodesk.autocad.databaseservices.transactionmanager; namespace sbydo.cad.test { class test { public void getallmtextwords() { database db = hostapplicationservices.workingdatabase; tranman tm = db.transactionmanager; editor ed = app.documentmanager.mdiactivedocument.editor; objectid[] ids = null;//所有mtext的id typedvalue[] filtervalue = new typedvalue[] { new typedvalue(0, "mtext") }; list words = new list();//存放所有单词 selectionfilter filter = new selectionfilter(filtervalue); promptselectionresult resselectopt = ed.selectall(filter); selectionset ss = resselectopt.value; ids = ss.getobjectids();//得到所有mtext的id using (transaction trans = tm.starttransaction()) {//将所有独立词组存入words for (int i = 0; i < ids.length; i++) { mtext mtext = (mtext)trans.getobject(ids, openmode.forread); string[] sentence = mtext.contents.replace("\\p", " ").split(' '); for (int j = 0; j < sentence.length; j++) words.add(sentence[j]); } } words.sort();//排序 for (int i = 0; i < words.count; i++) //打印 ed.writemessage("\n" + words); } } }
不错
c#最适合开发autocad,因为它拥有vb容易的特点,却具有vc++的强大功能。
其实 一般有用的排序法是:按照x、y坐标值进行二维排序前几天偶简单做的汇料程序,进这样进行的~
这个有价值吗?程序设计而已啊。


所有的时间均为北京时间。 现在的时间是 07:36 PM.