乐筑天下

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

Civil 3D表面处理帮助!

[复制链接]

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2010-6-24 15:11:40 | 显示全部楼层
因此,在C3D 2011(我今天早上刚刚安装,目前正在摸索它的陷阱)中,出现了更多问题。
现在,当我调用该命令时,我收到一条错误消息,显示第二行代码为:
  1. Dim oApp As AeccApplication

一些Google告诉我有一个引用错误,但我不明白a)什么是引用,或者b)如何解决2011年的问题。
这是我当前使用的完整代码:
  1. Sub test()
  2. Dim oApp As AeccApplication
  3. Dim oDoc As AeccDocument
  4. Dim oSurfs As AeccSurfaces
  5. Set oApp = Application.GetInterfaceObject("AeccXUiLand.AeccApplication.7.0")
  6. Set oDoc = oApp.ActiveDocument
  7. Set oSurfs = oDoc.Surfaces
  8. Dim Tindata As New AeccTinCreationData
  9. Tindata.Description = "Building Surface from CPP Building datum" 'SET SURFACE DESCRIPTION
  10. Tindata.Layer = "Surface Bldgs"                 'SET SURFACE LAYER
  11. Tindata.BaseLayer = "Surface Bldgs"             'NOT SURE WHAT THIS DOES
  12. Tindata.Style = "Building Surfaces"             'SET SURFACE STYLE
  13. Dim osurf As AeccSurface
  14. Dim iCount As Integer
  15. For Each osurf In oSurfs
  16.     If osurf.Name Like "BLDG ###" Then
  17.         Dim iTmp As Integer
  18.         iTmp = CInt(Right(osurf.Name, 3))
  19.         If iTmp > iCount Then iCount = iTmp
  20.     End If
  21. Next
  22. Dim sCurName As String
  23. Dim oEnt1 As AcadEntity
  24. Dim oEnt2 As AcadEntity
  25. Dim vPick As Variant
  26. Dim oEnts(0) As AcadEntity
  27. Do Until Err.Number  0
  28.     iCount = iCount + 1
  29.     sCurName = "BLDG " & Format(iCount, "000")
  30.     On Error GoTo ResumeHere
  31.     ThisDrawing.Utility.GetEntity oEnt1, vPick, vbCr & "Select inside pline: "
  32.     Dim sOtype As String
  33.     sOtype = UCase(oEnt1.ObjectName)
  34.     If Not ((sOtype Like "*POLY*") Or (sOtype Like "*FEATURE*")) Then
  35.         Err.Raise -4444444, , "Incorrect object type selected!"
  36.         GoTo ResumeHere
  37.     ''Remove the ElseIf section when the API allows Featurelines
  38.     ElseIf sOtype Like "*FEATURE*" Then
  39.         Err.Raise -4444445, , "Featurelines not currently supported, explode and try again!"
  40.         GoTo ResumeHere
  41.     End If
  42.     ThisDrawing.Utility.GetEntity oEnt2, vPick, vbCr & "Select outside pline: "
  43.     sOtype = UCase(oEnt2.ObjectName)
  44.     If Not ((sOtype Like "*POLY*") Or (sOtype Like "*FEATURE*")) Then
  45.         Err.Raise -4444444, , "Incorrect object type selected!"
  46.         GoTo ResumeHere
  47.     ''Remove the ElseIf section when the API allows Featurelines
  48.     ElseIf sOtype Like "*FEATURE*" Then
  49.         Err.Raise -4444445, , "Featurelines not currently supported, explode and try again!"
  50.         GoTo ResumeHere
  51.     End If
  52.     Tindata.Name = sCurName
  53.     Dim oTinSurf As AeccTinSurface
  54.     Set oTinSurf = oSurfs.AddTinSurface(Tindata)
  55.     Set oEnts(0) = oEnt1
  56.     oTinSurf.Breaklines.AddStandardBreakline oEnts, "Interior Breakline", 0.5
  57.     Set oEnts(0) = oEnt2
  58.     oTinSurf.Breaklines.AddStandardBreakline oEnts, "Exterior Breakline", 0.5
  59.     oTinSurf.Boundaries.Add oEnt2, "Exterior Boundary", aeccBoundaryOuter, True, 0.5
  60. ResumeHere:
  61. Select Case Err.Number
  62.     Case Is = -4444444
  63.         MsgBox Err.Description
  64.     Case Is = -4444445
  65.         MsgBox Err.Description
  66.     Case Else
  67. '        MsgBox Err.Description ''uncomment to test for the error thrown, comment out to run normally
  68. End Select
  69. Loop
  70. End Sub

有人能再次解释一下我错过了什么吗?
回复

使用道具 举报

1

主题

7

帖子

1

银币

初来乍到

Rank: 1

铜币
11
发表于 2010-6-25 09:48:53 | 显示全部楼层
您使用的是2011的64位版本吗?如果是这样,C3D互操作在安装期间不会注册。我将把REG文件附加到这篇文章中,您可以运行它来安装它们。如果没有,则忽略此部分…
在VBAIDE中,转到“工具”菜单,选择“引用”,取消选择与Civil有关的任何内容,向下滚动到Civil 8.0库,然后选择两个与土地相关的项目。
回复

使用道具 举报

4

主题

50

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
66
发表于 2010-6-28 10:31:44 | 显示全部楼层
谢谢Jeff_M-这成功了。
我现在只运行32位,但应该在本周末之前在64位Win7的新机器上运行,这样REG文件就会派上用场。
回复

使用道具 举报

1

主题

7

帖子

1

银币

初来乍到

Rank: 1

铜币
11
发表于 2010-6-28 11:06:08 | 显示全部楼层
有人告诉我,在C3D 2011 x64上,简单地加载VBA模块会大大降低整个程序的速度。您可能最终需要将您的例程转换成. NET。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-1 12:25 , Processed in 0.246175 second(s), 58 queries .

© 2020-2025 乐筑天下

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