MANISH KUMAR SH 发表于 2022-7-6 21:46:54

根据道路宽度,需要分类

[颜色=#29303b]此处为封闭路网多段线。
[颜色#29303b]要求:
[颜色=#29303b][大小=13px]1。根据道路宽度,需要在图纸内单发命令按钮的帮助下分层分类。
最宽4米道路宽度:Street Road
4到10米道路宽度:次要道路
10到20米道路宽度:次要道路
20米以上道路宽度:主要道路
 
 
Private Sub-CheckPolylineWidth()Dim pl1 As AcadPolylineDim pl2 As AcadPolylineDim pt1 As VariantDim pt2 As VariantDim Dist As Double'将“OSMODE”变量设置为PerpedicularThisDrawing。SerVariable“osmode,128”'选择2条多段线。此图纸。公用事业GetEntity pl1,pt1,“选择第一条线。”pl2=本图纸。公用事业GetEntity pl1,pt2,“拾取第二条多段线以检测道路宽度。”通过绘制一条直线来检查两点之间的距离,然后将lineDim ln的长度作为AcadLineDim wd作为DoubleSet ln=ThisDrawing。模型空间。AddLine(pt1,pt2)wd=ln。长度(wd 10和wd

SLW210 发表于 2022-7-6 22:05:09

请使用代码标签。
这看起来像VBA。你想把它变成口齿不清吗?

MANISH KUMAR SH 发表于 2022-7-6 22:12:12

如果可以通过LISP完成,则提供LISP。
 

SLW210 发表于 2022-7-6 22:26:54

我问你想要什么,你在LISP论坛上发布了,但代码看起来像VBA。

Grrr 发表于 2022-7-6 22:38:58

快速尝试修复VBA代码:
私有子检查polylinewidth()Dim pl1 As Object Dim pl2 As Object Dim pt1 As Variant Dim pt2 As Variant Dim Dist As Double Dim lyrs As AcadLayers’将“OSMODE”变量设置为每个图形。SetVariable“osmode”,128如果Err 0,则Err。清除MsgBox“程序已结束。”,如果“选择2条多段线”,则“缺少第一条多段线”退出子端。重试:此绘图。公用事业GetEntity pl1,pt1,“选择第一条线。”此图纸。公用事业GetEntity pl2,pt2,“拾取第二条多段线以检测道路宽度”层=阵列(“StreetRoad”、“SecondaryRoad”、“MinorRoad”、“MajorRoad”),用于此图形层中的每个项目。层。添加(Item)Next“通过绘制一条线来检查两点之间的距离,然后获得线的长度Dim ln作为AcadLine Dim wd作为Double Set ln=ThisDrawing。模型空间。AddLine(pt1,pt2)wd=ln。长度If(wd 10和wd

SLW210 发表于 2022-7-6 22:58:12

我已将您的线程移动到。NET、ObjectARX和VBA论坛
页: [1]
查看完整版本: 根据道路宽度,需要分类