CAD二次开发源码.doc_第1页
CAD二次开发源码.doc_第2页
CAD二次开发源码.doc_第3页
CAD二次开发源码.doc_第4页
CAD二次开发源码.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

有三个CAD二次开发源码均能用:源码1(lisp)程序: CAD文字提取到电子表格,(说明源码1.把文字提取到1个单元格的而且用n隔开,)源码2(lisp)程序: 提取标注到文本,源码3(VBA).提取文字到文本请老师组合成一个lisp程序:要求把CAD的文字和标注都可以分别换行提取到excel中来或文本文档中1.源码1(lisp)程序 (defun c:Q2()(setq ffn (getfiled 写出文件 xls 1)(princ n选取文字.)(setq ss (ssget)(setq ff (open ffn w)(setq i 0)(repeat (sslength ss)(setq ssn (ssname ss i)(setq ssdata (entget ssn)(setq sstyp (cdr (assoc 0 ssdata)(if (or (= sstyp TEXT) (= sstyp MTEXT)(progn(setq txt (cdr (assoc 1 ssdata)(princ txt ff)(princ n ff)(setq i (1+ i) ? ? ?)(close ff)(princ (strcat n写出文件: ffn)(prin1)?源码2.提取标注到文本 (defun c:txtout() (setq fln (getstring n输出文件名:) (setq fln (strcat fln .txt) (setq f (open fln w) (setq a (ssget) (setq n (sslength a) (setq index 0) (repeat n (setq el (entget (ssname a index) (setq index (+ index 1) (setq e (assoc 0 el) (if (= DIMENSION (cdr e) (progn (setq txt (cdr (assoc 42 el) (setq txt-1 (rtos txt) (write-line txt-1 f) ) )(close f)源码3.提取文字到文本Sub mysel()Dim k, i As IntegerDim hjx() As StringDim sset As AcadSelectionSet 定义选择集对象Dim element As AcadEntity 定义选择集中的元素对象k = 0If Not IsNull(ThisDrawing.SelectionSets.Item(ss1) ThenSet sset = ThisDrawing.SelectionSets.Item(ss1)sset.Delete 如果选择集已存在,则删除End IfSet sset = ThisDrawing.SelectionSets.Add(ss1) 新建一个选择集sset.SelectOnScreen 提示用户选择For Each element In sset 在选择集中进行循环k = k + 1ReDim Preserve hjx(k)hjx(k) = GetMTextUnformatString(element.TextString)MsgBox GetMTextUnformatString(hjx(k)Nextsset.DeleteFor i = UBound(hjx) To 0 Step -1MsgBox hjx(i)NextCall dke(hjx()sset.Delete 删除选择集End SubSub dke(ku() As String) 提出文字输出到c:123.txtDim i As IntegerSet fs = CreateObject(Scripting.FileSystemObject)Set a = fs.createtextfile(c:123.txt, True)Set a = fs.OpenTextFile(c:123.txt, 8)For i = UBound(ku) To 0 Step -1a.WriteLine (ku(i)Nexta.CloseSet fs = NothingMsgBox 完成End SubPublic Function GetMTextUnformatString(MTextString As String) As String Dim s As String Dim RE As Object 获取Regular Expressions组件 Set RE = ThisDrawing.Application.GetInterfaceObject(Vbscript.RegExp) 忽略大小写 RE.IgnoreCase = True 搜索整个字符串 RE.Global = True s = MTextString 替换字符 RE.Pattern = s = RE.Replace(s, Chr(1) 替换字符 RE.Pattern = s = RE.Replace(s, Chr(2) 替换字符 RE.Pattern = s = RE.Replace(s, Chr(3) 删除段落缩进格式 RE.Pattern = pi(.;*); s = RE.Replace(s, ) 删除制表符格式 RE.Pattern = pt(.;*); s = RE.Replace(s, ) 删除堆迭格式 RE.Pattern = S(.;*)(|#|)(.;*); s = RE.Replace(s, $1$3) 删除字体、颜色、字高、字距、倾斜、字宽、对齐格式 RE.Pattern = (F|C|H|T|Q|W|A)(.;*); s = RE.Replace(s, ) 删除下划线、删除线格式 RE.Pattern = (L|O|l|o) s = RE.Replace(s, ) 删除不间断空格格式 RE.Pattern = s = RE.Replace(s, ) 删除换行符格式 RE.Pattern = P s = RE.Replace(s, ) 删除换行符格式(针对Shift+Enter格式) RE.Pattern = vbLf s = RE.Replace(s, ) 删除 RE.Pattern = (|) s = RE.Replace(s, ) 替换回,字符 RE.Pattern = x01 s = RE.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论