- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CAD二次开发源码.doc
有三个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 Integer
Dim hjx() As String
Dim sset As AcadSelectionSet 定义选择集对象
Dim element As AcadEntity 定义选择集中的元素对象
k = 0
If Not IsNull(ThisDrawing.SelectionSets.Item(ss1)) Then
Set sset = ThisDrawing.SelectionSets.Item(ss1)
sset.Delete 如果选择集已存在,则删除
End If
Set sset = ThisDrawing.SelectionSets.Add(ss1) 新建一个选择集
sset.SelectOnScreen 提示用户选择
For Each element In sset 在选择集中进行循环
k = k + 1
ReDim Preserve hjx(k)
hjx(k) = GetMTextUnformatString(element.TextString)
MsgBox GetMTextUnformatString(hjx(k))
Next
sset.Delete
For i = UBound(hjx) To 0 Step -1
MsgBox hjx(i)
Next
Call dke(hjx())
sset.Delete 删除选择集
End Sub
Sub dke(ku() As String) 提出文字输出到c:\123.txt
Dim i As Integer
Set 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 -1
a.WriteLine (ku(i))
Next
a.Close
Set fs = Nothing
MsgBox 完成
End Sub
Public Function GetMTextUnformatString
文档评论(0)