You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过线宽在CATIA VBA中筛选选择集?

工程图中筛选指定线宽的Polyline/Curve2D方案

首先明确:Selection.Search确实无法直接通过线宽属性筛选,因为多数CAD系统的搜索语法仅支持颜色、图层、实体类型等有限属性,线宽(Thickness/LineWidth这类)不在可搜索的属性范围内,所以你之前的尝试既不报错也无结果是正常的。

替代方案是通过API批量获取实体后筛选,比纯逐个遍历快很多,以下是具体实现(以SolidWorks为例,其他CAD系统逻辑类似):

优化版筛选代码(VBA)

Dim swApp As SldWorks.SldWorks
Dim swDraw As SldWorks.DrawingDoc
Dim allEntities As Variant
Dim singleEntity As SldWorks.DrawingEntity
Dim targetLineWidth As Double
Dim matchedEntities As Collection

Set swApp = Application.SldWorks
Set swDraw = swApp.ActiveDoc
targetLineWidth = 1 '替换为你需要的线宽值

'一次性获取所有绘图实体,减少API调用次数
allEntities = swDraw.GetDrawingEntities2(swDrawingEntityType_e.swAllDrawingEntities)

Set matchedEntities = New Collection

'批量筛选类型和线宽
For i = 0 To UBound(allEntities)
    Set singleEntity = allEntities(i)
    '匹配Polyline或Curve2D类型
    If singleEntity.GetType = swDrawingEntityType_e.swPolylineDrawingEntity Or _
       singleEntity.GetType = swDrawingEntityType_e.swCurve2DDrawingEntity Then
        '匹配目标线宽
        If singleEntity.LineThickness = targetLineWidth Then
            matchedEntities.Add singleEntity
        End If
    End If
Next i

'选中所有符合条件的实体
swDraw.ClearSelection2 True
For Each singleEntity In matchedEntities
    singleEntity.Select True
Next singleEntity

更高效的C#版本(LINQ过滤)

var swApp = (SldWorks)Activator.CreateInstance(Type.GetTypeFromProgID("SldWorks.Application"));
var swDraw = (DrawingDoc)swApp.ActiveDoc;
double targetWidth = 1;

//用LINQ一次性过滤类型和线宽,比循环更高效
var matchedEntities = swDraw.GetDrawingEntities2((int)swDrawingEntityType_e.swAllDrawingEntities)
    .Cast<DrawingEntity>()
    .Where(e => 
        e is PolylineDrawingEntity || 
        e is Curve2DDrawingEntity)
    .Where(e => e.LineThickness == targetWidth)
    .ToList();

//选中结果
swDraw.ClearSelection2(true);
foreach (var entity in matchedEntities)
{
    entity.Select(true);
}

非代码替代方案

如果你的CAD系统支持图层管理,可以提前将同线宽的Polyline/Curve2D归类到同一图层,之后直接通过图层筛选,无需编写代码,效率更高。

内容的提问来源于stack exchange,提问作者N.TW12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 20:33:19