乐筑天下

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

VBA C3D 2011通过屏幕上的多段线选择对齐

[复制链接]

14

主题

57

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
113
发表于 2011-2-27 13:05:07 | 显示全部楼层 |阅读模式
需要一些帮助,通过在屏幕上选择多段线在2011年添加路线
常规崩溃设置AlignmentStyles。项(0)和.AlignmentLabelStyleSets。项目(0)
我在图形中有样式和标签样式集。我想。项(0)将获得第一个路线样式和标签集。目标是通过选择现有多段线来创建和绘制不属于站点的路线
感谢您的提示和链接,John Coon私有子命令按钮4_Click()。隐藏;公共g_oCivilApp作为AECCaplication;作为AeccDocument的公共GU文档;公共g_oAeccDatabase作为AeccDatabase
Dim AlignmentsIteless作为AeccalignmentsITeless
Dim Alignment作为AeccAlignments
Dim Align mentStyle作为AecalignmentsStyle设置为AeccaligmentLabelStyleSet
Set AlignmentStyle=g_oDocument.AlignmentStyles。第(0)项&引用_“建议”
设置AlignmentLabelStyleSet=g_oDocument.AlignmentLabelStyleSets。第(0)项;(“无标签”)
Dim sAlignName As String作为字符串&nbsp&nbsp
Dim oPoly As AcadLWPolyline
Dim pt As Variant
Dim obj As AcadObject
ThisDrawing.Utility。GetEntity obj,pt,“;选择要转换为路线的多段线:
如果obj的类型为AcadLWPolyline,则设置oPoly=obj;所选实体不是Pline&引用
如果结束&nbsp&nbsp&nbsp
只要长一点,Dim dPolyObjId=oPoly。ObjectID&nbsp&nbsp&nbsp
sAlignName="使用多段线法
sLayerName="0“
&nbsp&nbsp&nbsp&nbsp&nbsp
设置对齐=无对齐。添加(sAlignName、sLayerName、AlignmentStyle、AlignementLabelStyleSet)
AlignmentsSiteless。AddFromPolyline sAlignName、sLayerName、dPolyObjId、AlignmentStyle、Alignment LabelStyleSet、True、True&nbsp
'不确定还有什么
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2011-2-27 21:18:15 | 显示全部楼层
这在2010年对我起了作用,约翰。我不知道'韩元#039;我没有为2011年安装VBA…听说64位版本的速度太慢了,所以我没有VBA
  1. Public Sub aligntest()
  2.     If (GetCivilObjects() = False) Then
  3.         MsgBox "Error accessing Civil 3D!"
  4.         Exit Sub
  5.     End If
  6. Dim AlignmentsSiteless As AeccAlignmentsSiteless
  7. Dim Alignment As AeccAlignments
  8. Dim Align As AeccAlignment
  9. Dim AlignmentStyle As AeccAlignmentStyle
  10. Dim AlignmentLabelStyleSet As AeccAlignmentLabelStyleSet
  11. Set AlignmentStyle = g_oDocument.AlignmentStyles.Item(0)
  12. '"_Proposed"
  13. Set AlignmentLabelStyleSet = g_oDocument.AlignmentLabelStyleSets.Item(0)
  14. '("_No Labels")
  15. Dim sAlignName As String
  16. Dim sLayerName As String
  17.      
  18. Dim oPoly As AcadLWPolyline
  19. Dim pt As Variant
  20. Dim obj As AcadObject
  21. ThisDrawing.Utility.GetEntity obj, pt, "Select the Polyline to convert to an Alignment :"
  22. If TypeOf obj Is AcadLWPolyline Then
  23. Set oPoly = obj
  24. Else
  25. MsgBox "Selected Entity is NOT a Pline ! "
  26. End If
  27.       
  28. Dim dPolyObjId As Long
  29. dPolyObjId = oPoly.ObjectID
  30.         
  31. sAlignName = "UsingTheAddFromPolylineMethod"
  32. sLayerName = "0"
  33.             
  34. Set Align = g_oDocument.AlignmentsSiteless.AddFromPolyline(sAlignName, sLayerName, dPolyObjId, AlignmentStyle, AlignmentLabelStyleSet, True, True)
  35.    
  36. End Sub

回复

使用道具 举报

14

主题

57

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
113
发表于 2011-2-28 08:56:39 | 显示全部楼层
杰夫,这很奇怪,我运行了你的样本,它就像一个符咒。我将相同的代码粘贴到同一个项目中的一个按钮上添加userform hide and show,我在这里得到一个错误:Set AlignmentStyle=g\u oDocument.AlignmentStyles。项目(0),与之前相同
谢谢你的帮助……。我在不同版本中做了一些检查,这是一个半小时的项目,用于标记一些标记,结果不止这些
vba,I'我仍在研究dot-net,它's越来越好,但我认为这在vba中是一个简单的任务,速度更快,事实证明,考虑到我工作的时间,我可能会尝试它
约翰

私有子命令按钮3\u Click()用户窗体1。隐藏
;如果(GetCivilObjects()=False),则&nbsp&nbsp MsgBox“;访问Civil 3D时出错&引用
&nbsp&nbsp&nbsp;退出Sub&nbsp;结束IfDim Alignment无长度作为AeccAlignmentsSiteless>Dim Align As AeccAlignmentsDim Alignment As AecCaligment<Dim AlignmentStyle As AecCallignmentStylesDim AlignmentLabelStyles设置为AecCalingmentLabelstyleSetSet AlignmentStyle=g_oDocument.AlignmentStyles。第(0)项&引用_“建议”
设置AlignmentLabelStyleSet=g_oDocument.AlignmentLabelStyleSets。第(0)项;(“无标签”)
Dim sAlignName As String作为字符串&nbsp&nbsp
Dim oPoly As AcadLWPolyline
Dim pt As Variant
Dim obj As AcadObject
ThisDrawing.Utility。GetEntity obj,pt,“;选择要转换为路线的多段线:
如果obj的类型为AcadLWPolyline,则设置oPoly=obj;所选实体不是Pline&引用
如果结束&nbsp&nbsp&nbsp
只要长一点,Dim dPolyObjId=oPoly。ObjectID&nbsp&nbsp&nbsp
sAlignName=&quot;使用多段线法
sLayerName=&quot;0“
&nbsp&nbsp&nbsp&nbsp&nbsp
设置Align=g\u oDocument.AlignmentsSiteless。AddFromPolyline(sAlignName、sLayerName、dPolyObjId、AlignmentStyle、AlignementLabelStyleSet、True、True)用户表单1。显示&nbsp
End Sub
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2011-2-28 10:54:13 | 显示全部楼层
你能把DVB寄出去吗?我刚刚创建了一个新项目,添加了一个带有3个按钮的表单,使用了这段代码,效果很好。
回复

使用道具 举报

14

主题

57

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
113
发表于 2011-2-28 12:16:21 | 显示全部楼层
杰夫,这是我用的图纸。您的示例位于模块2中,我将其粘贴到按钮中,得到了错误
约翰
回复

使用道具 举报

14

主题

57

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
113
发表于 2011-2-28 12:17:15 | 显示全部楼层
抱歉,错过了vba示例
回复

使用道具 举报

14

主题

57

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
113
发表于 2011-2-28 12:22:46 | 显示全部楼层

杰夫,我得到了这个错误,因为我在一般声明中加载了这个
Option Explicit作为AeccApplication公开g\u oCivilApp
作为AecdDocument的公共g\u oDocument
Public g\u oAeccDatabase作为AeccDatabase
Public g\u oExcelBook作为工作簿。应用
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2011-2-28 19:00:07 | 显示全部楼层
这意味着它现在可以工作了吗
如果你打算使用路线,我发现一个主要问题……你正在使用它来将其用于您的InterfaceObject:;AeccXUiRoadway.AeccRoadwayApplication.6.0“
首先,2011年使用的是8.0版本,而不是6.0版本。但更重要的是,道路应用程序适用于道路对象。你需要AeccXUiLand。基础对象的AeccApplication。
回复

使用道具 举报

38

主题

1350

帖子

6

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1502
发表于 2011-2-28 19:06:01 | 显示全部楼层
问题:为什么不简单地使用C3D中已经存在的“从对象创建路线”命令,并在命令提示下选择多段线来执行此操作
您可以这样做,而不需要将结果对齐作为任何站点的一部分。
回复

使用道具 举报

14

主题

57

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
113
发表于 2011-3-1 07:56:38 | 显示全部楼层
杰夫,希格斯粒子是的,它现在很好用。我只需要添加一些内容来保存或删除现有的多段线&引用;AeccXUiRoadway.AeccRoadwayApplication.6.0“;是我在工作中使用的东西;AeccXUiRoadway.AeccRoadwayApplication.8.0“;是我在家里用的对不起
当我从AeccXUiRoadway更改时。AeccRoadwayApplication到AeccXUiLand。我现在得到一个错误。本人&#039;我会在午饭时查一下,看能不能把它修好
希格斯粒子,我知道我可以从多段线创建对齐;it#039;s绘制绘制的虚线边缘条纹,并从中获取承包商的桩号偏移布局,并将现有路线保存到excel或CV,或从现有多段线创建。It#039;这是一个标记虚线中心线边缘条纹的快速例程。最终获得特定层上的所有中心线多边形,创建路线,绘制标记,最后删除新路线。或者,它将获取所有选定的路线,并在不删除路线的情况下执行相同的操作
I&#039;我不会在VBA的任何新功能上投入太多,直到我能让点网为我工作;我知道我需要花更多的时间在网络上,但它#039;当你知道用VBA在几个小时内,我可以得到一些我可以使用的东西,并且在网络上工作,这可能需要我一周的时间,这是很困难的
一如既往地谢谢杰夫
约翰
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-1 03:59 , Processed in 1.261895 second(s), 82 queries .

© 2020-2025 乐筑天下

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