VBA C3D 2011通过屏幕上的多段线选择对齐
需要一些帮助,通过在屏幕上选择多段线在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作为字符串  
Dim oPoly As AcadLWPolyline
Dim pt As Variant
Dim obj As AcadObject
ThisDrawing.Utility。GetEntity obj,pt,“;选择要转换为路线的多段线:
如果obj的类型为AcadLWPolyline,则设置oPoly=obj;所选实体不是Pline&引用
如果结束   
只要长一点,Dim dPolyObjId=oPoly。ObjectID   
sAlignName=";使用多段线法
sLayerName=";0“
     
设置对齐=无对齐。添加(sAlignName、sLayerName、AlignmentStyle、AlignementLabelStyleSet)
AlignmentsSiteless。AddFromPolyline sAlignName、sLayerName、dPolyObjId、AlignmentStyle、Alignment LabelStyleSet、True、True 
'不确定还有什么
这在2010年对我起了作用,约翰。我不知道';韩元#039;我没有为2011年安装VBA…听说64位版本的速度太慢了,所以我没有VBAPublic Sub aligntest()
If (GetCivilObjects() = False) Then
MsgBox "Error accessing Civil 3D!"
Exit Sub
End If
Dim AlignmentsSiteless As AeccAlignmentsSiteless
Dim Alignment As AeccAlignments
Dim Align As AeccAlignment
Dim AlignmentStyle As AeccAlignmentStyle
Dim AlignmentLabelStyleSet As AeccAlignmentLabelStyleSet
Set AlignmentStyle = g_oDocument.AlignmentStyles.Item(0)
'"_Proposed"
Set AlignmentLabelStyleSet = g_oDocument.AlignmentLabelStyleSets.Item(0)
'("_No Labels")
Dim sAlignName As String
Dim sLayerName As String
Dim oPoly As AcadLWPolyline
Dim pt As Variant
Dim obj As AcadObject
ThisDrawing.Utility.GetEntity obj, pt, "Select the Polyline to convert to an Alignment :"
If TypeOf obj Is AcadLWPolyline Then
Set oPoly = obj
Else
MsgBox "Selected Entity is NOT a Pline ! "
End If
Dim dPolyObjId As Long
dPolyObjId = oPoly.ObjectID
sAlignName = "UsingTheAddFromPolylineMethod"
sLayerName = "0"
Set Align = g_oDocument.AlignmentsSiteless.AddFromPolyline(sAlignName, sLayerName, dPolyObjId, AlignmentStyle, AlignmentLabelStyleSet, True, True)
End Sub
杰夫,这很奇怪,我运行了你的样本,它就像一个符咒。我将相同的代码粘贴到同一个项目中的一个按钮上添加userform hide and show,我在这里得到一个错误:Set AlignmentStyle=g\u oDocument.AlignmentStyles。项目(0),与之前相同
谢谢你的帮助……。我在不同版本中做了一些检查,这是一个半小时的项目,用于标记一些标记,结果不止这些
vba,I';我仍在研究dot-net,它';s越来越好,但我认为这在vba中是一个简单的任务,速度更快,事实证明,考虑到我工作的时间,我可能会尝试它
约翰
私有子命令按钮3\u Click()用户窗体1。隐藏
;如果(GetCivilObjects()=False),则   ;MsgBox“;访问Civil 3D时出错&引用
   ;退出Sub ;结束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作为字符串  
Dim oPoly As AcadLWPolyline
Dim pt As Variant
Dim obj As AcadObject
ThisDrawing.Utility。GetEntity obj,pt,“;选择要转换为路线的多段线:
如果obj的类型为AcadLWPolyline,则设置oPoly=obj;所选实体不是Pline&引用
如果结束   
只要长一点,Dim dPolyObjId=oPoly。ObjectID   
sAlignName=";使用多段线法
sLayerName=";0“
     
设置Align=g\u oDocument.AlignmentsSiteless。AddFromPolyline(sAlignName、sLayerName、dPolyObjId、AlignmentStyle、AlignementLabelStyleSet、True、True)用户表单1。显示 
End Sub 你能把DVB寄出去吗?我刚刚创建了一个新项目,添加了一个带有3个按钮的表单,使用了这段代码,效果很好。 杰夫,这是我用的图纸。您的示例位于模块2中,我将其粘贴到按钮中,得到了错误
约翰 抱歉,错过了vba示例
杰夫,我得到了这个错误,因为我在一般声明中加载了这个
Option Explicit作为AeccApplication公开g\u oCivilApp
作为AecdDocument的公共g\u oDocument
Public g\u oAeccDatabase作为AeccDatabase
Public g\u oExcelBook作为工作簿。应用 这意味着它现在可以工作了吗
如果你打算使用路线,我发现一个主要问题……你正在使用它来将其用于您的InterfaceObject:;AeccXUiRoadway.AeccRoadwayApplication.6.0“
首先,2011年使用的是8.0版本,而不是6.0版本。但更重要的是,道路应用程序适用于道路对象。你需要AeccXUiLand。基础对象的AeccApplication。 问题:为什么不简单地使用C3D中已经存在的“从对象创建路线”命令,并在命令提示下选择多段线来执行此操作
您可以这样做,而不需要将结果对齐作为任何站点的一部分。 杰夫,希格斯粒子是的,它现在很好用。我只需要添加一些内容来保存或删除现有的多段线&引用;AeccXUiRoadway.AeccRoadwayApplication.6.0“;是我在工作中使用的东西;AeccXUiRoadway.AeccRoadwayApplication.8.0“;是我在家里用的对不起
当我从AeccXUiRoadway更改时。AeccRoadwayApplication到AeccXUiLand。我现在得到一个错误。本人';我会在午饭时查一下,看能不能把它修好
希格斯粒子,我知道我可以从多段线创建对齐;it#039;s绘制绘制的虚线边缘条纹,并从中获取承包商的桩号偏移布局,并将现有路线保存到excel或CV,或从现有多段线创建。It#039;这是一个标记虚线中心线边缘条纹的快速例程。最终获得特定层上的所有中心线多边形,创建路线,绘制标记,最后删除新路线。或者,它将获取所有选定的路线,并在不删除路线的情况下执行相同的操作
I';我不会在VBA的任何新功能上投入太多,直到我能让点网为我工作;我知道我需要花更多的时间在网络上,但它#039;当你知道用VBA在几个小时内,我可以得到一些我可以使用的东西,并且在网络上工作,这可能需要我一周的时间,这是很困难的
一如既往地谢谢杰夫
约翰
页:
[1]
2