乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 77|回复: 5

[求助]如何能获得NURBS实体的DXF组值

[复制链接]

3

主题

7

帖子

2

银币

初来乍到

Rank: 1

铜币
19
发表于 2007-5-24 13:45:00 | 显示全部楼层 |阅读模式
file:///D:/未命名.bmp
这是Nurbs曲线实体段的组码和说明,想提取次数,节点值,权值和控制点值
但是以前没用过CAD的VBA
哪位高手能举例说明一下怎么提取么?
比如
刚看来得
Dim objSel As AcadEntity
If objSel.ObjectName  "AcDbSpline" Then‘选择的不是 AcDbSpline,.....
我想判断如果组码值为71,把值赋给k
如果组码值 为10,把值付给一个数组x
一些关键字不知用什么 啊


回复

使用道具 举报

3

主题

7

帖子

2

银币

初来乍到

Rank: 1

铜币
19
发表于 2007-5-29 17:14:00 | 显示全部楼层
没人知道么?
回复

使用道具 举报

55

主题

282

帖子

5

银币

中流砥柱

Rank: 25

铜币
502
发表于 2007-5-30 00:32:00 | 显示全部楼层
你判断组码为了甚么呢?VBA里好像只能判断对象的属性,判断组码好像无从下手,你想实现甚么呢?不一定非要判断组码的吧?
回复

使用道具 举报

3

主题

7

帖子

2

银币

初来乍到

Rank: 1

铜币
19
发表于 2007-5-30 15:36:00 | 显示全部楼层
我想将样条曲线的阶次,控制顶点坐标,权值以及节点值提取出来,用于二次开发啊
不能实现么?
回复

使用道具 举报

3

主题

7

帖子

2

银币

初来乍到

Rank: 1

铜币
19
发表于 2007-5-30 15:41:00 | 显示全部楼层
这个功能VB可以实现,VBA不可以么?
以下是一个简单的 Visual Basic 6 程序样例,它读取 DXF 文件,并且从给定段的给定对象中提取特定代码和值。
' ReadDXF 从 DXF 文件中提取指定的代码/值对。' 此函数需要四个字符串参数、一个有效的 DXF' 文件名、一个 DXF 段名、该段中对象的' 名称以及由逗号分隔的代码列表。'Function ReadDXF( _        ByVal dxfFile As String, ByVal strSection As String, _        ByVal strObject As String, ByVal strCodeList As String)    Dim tmpCode, lastObj As String    Open dxfFile For Input As #1    ' 获取第一个代码/值对    codes = ReadCodes    ' 遍历整个文件,直到“EOF”行    While codes(1)  "EOF"        ' 如果组码为“0”,并且值为“SECTION”,则        If codes(0) = "0" And codes(1) = "SECTION" Then            ' 这必须是一个新的段,以便获取下一个            ' 代码/值对。            codes = ReadCodes()            ' 如果此段是要获取的段,则            If codes(1) = strSection Then                ' 获取下一个代码/值对,并                codes = ReadCodes                ' 遍历此段,直到“ENDSEC”                While codes(1)  "ENDSEC"                    ' 在某段中,所有的“0”代码都表示                    ' 对象。 如果找到了“0”代码,则存储                    ' 对象名称,供以后使用。                    If codes(0) = "0" Then lastObj = codes(1)                    ' 如果此对象是用户所需的对象,                    If lastObj = strObject Then                        ' 则在代码前后加上逗号                        tmpCode = "," & codes(0) & ","                        ' 如果此代码位于代码列表中,                        If InStr(strCodeList, tmpCode) Then                            ' 则附加返回值。                            ReadDXF = ReadDXF & _                                codes(0) & "=" & codes(1) & vbCrLf                        End If                    End If                    ' 读取其他代码/值对                    codes = ReadCodes                Wend            End If        否则            codes = ReadCodes        End If    Wend    Close #1End Function' ReadCodes 从打开的文件中读取两行,并返回一个包含两个项目' 的数组、一个组码及其组码值。 只要一次读取 DXF 文件中的两行代码,
                        ' 所有程序应该都能够顺利运行。 但为了使代码
                        ' 更可靠,应该添加一些进行错误检查和其他' 检查的代码。'Function ReadCodes() As Variant    Dim codeStr, valStr As String    Line Input #1, codeStr    Line Input #1, codeStr    ' 修剪代码中的前导空格和后续空格    ReadCodes = Array(Trim(codeStr), valStr)End Function
回复

使用道具 举报

55

主题

282

帖子

5

银币

中流砥柱

Rank: 25

铜币
502
发表于 2007-5-31 00:24:00 | 显示全部楼层
如果是读取dxf文件的话,VB和VBA都一样的,但想直接从图形中判断组码,应该就不行了,看看其他高手有妙招没有!
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-7 21:58 , Processed in 0.843797 second(s), 64 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表