乐筑天下

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

在折线上扫描实体

[复制链接]

4

主题

11

帖子

1

银币

初来乍到

Rank: 1

铜币
27
发表于 2018-5-14 10:06:25 | 显示全部楼层 |阅读模式
我正在尝试在多段线上扫掠轮廓
下面是我的代码,主要是在使用谷歌时找到的
将acDoc作为Document=Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument
<div>Dim acCurDb As Database=acDoc.Database</div>
以编辑器的形式显示=acDoc.Editor
使用acLockDoc作为DocumentLock=acDoc.LockDocument()
根据PrompentityResult进行调光
将peo设置为PrompEntityOptions=新的PrompEnttyOptions(vbLf和“选择路径”)
peo。SetRejectMessage(vbLf&“错误实体”)
peo。AddAllowedClass(GetType(曲线),False)
per=acEd.GetEntity(peo)
使用acTrans作为Transaction=acCurDb.TransactionManager.StartTransaction()
试试
Dim pathEnt As Curve=TryCast(acTrans.GetObject(per.ObjectId,OpenMode.ForRead),Curve)
将acBlkTbl作为BlockTable=acTrans.GetObject(acCurDb.BlockTableId,OpenMode.ForWrite)进行Dim
将acBlkTblRec作为BlockTableRecord=acTrans.GetObject(acBlkTbl(BlockTableRecord.ModelSpace),OpenMode.ForWrite)进行Dim
以多段线=新多段线()的形式将扫掠器调暗。
sweepEnt。AddVertexAt(0,新点2d(0,0),0,0,0)
sweepEnt。AddVertexAt(1,新点2d(0,0.1),0,0,0)
sweepEnt。AddVertexAt(2,新点2D(0.1,0.1),0,0,0)
sweepEnt。AddVertexAt(3,新点2D(0.1,0),0,0,0)
sweepEnt。AddVertexAt(4,新点2d(0,0),0,0,0)
<div>将ent3D设置为新的Solid3d()</div>
将sob作为SweepOptionsBuilder=新的SweepOptions生成器()进行调整。
呜咽。Align=SweepOptionsAlignOption.AlignSweepEntityToPath
呜咽。基点=路径起点
呜咽。Bank=True
ent3D。CreateSweptSolid(sweepEnt、pathEnt、sob.ToSweepOptions())
acBlkTblRec.AppendEntity(ent3D)
演员。AddNewlyCreatedDBObject(ent3D,True)
acTrans.Commit()
Catch-ex为Autodesk.AutoCAD.Runtime.Exception
MsgBox(“错误:&ex.Message&vbCrLf&Source:&ex.Source&vbcr&lf&Status:”&ex.ErrorStatus)
结束尝试
结束使用
结束使用
当我运行我的代码时,我得到了以下错误:
错误:eGeneralModelingFailure
源代码:Acdbmgd
状态:150
异常是由以下代码行引发的:
ent3D。CreateSweptSolid(sweepEnt,pathEnt,sob.ToSweepOptions())
提前感谢您的帮助<罗伊

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

4

主题

11

帖子

1

银币

初来乍到

Rank: 1

铜币
27
发表于 2018-5-15 00:06:20 | 显示全部楼层
可能需要将SweepEnt添加到数据库
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2018-5-15 03:18:40 | 显示全部楼层
糟糕的是,这不是解决方案。
更改基点会返回完全相同的错误。
路径和轮廓正常,手动扫描功能没有问题。
回复

使用道具 举报

4

主题

11

帖子

1

银币

初来乍到

Rank: 1

铜币
27
发表于 2018-5-16 02:23:21 | 显示全部楼层
我可以让你运行代码。将设置张贴到绘图上。
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2018-5-16 04:16:32 | 显示全部楼层
我使用了切片多边形。如果折线有尖角,您可能需要设置如下:
sob.Bank=False
类似于AutoCAD绘图编辑器,它将根据Bank选项失败
回复

使用道具 举报

10

主题

973

帖子

909

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2018-5-16 04:37:37 | 显示全部楼层
我在另一台具有相同AutoCAD版本的计算机上测试了我的代码,代码在同一个图形上运行时没有问题
修复AutoCAD安装后,我的代码在我自己的机器上也运行良好
我不知道是什么原因导致了问题,但问题已经解决。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-2-4 10:33 , Processed in 0.277057 second(s), 64 queries .

© 2020-2025 乐筑天下

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