明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1270|回复: 4

[几何] 求助.net的二维多段线的偏移

[复制链接]
发表于 2022-9-22 09:32:35 | 显示全部楼层 |阅读模式
求助使用vb.net语言的二维多段线的偏移,向外偏移。求助示例或者用法。
发表于 2022-10-5 17:34:07 | 显示全部楼层
用这个方法即可:
Public virtual Function GetOffsetCurves(
    offsetDist As double
) As DBObjectCollection

 楼主| 发表于 2022-10-7 09:59:52 | 显示全部楼层
图A是用二维多段线画的,偏移成图B。vb.net。求助。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2022-10-7 12:46:31 | 显示全部楼层
没代码啊,你想求助什么都不知道? 还是你所以都不知道,想求助全部代码?
 楼主| 发表于 2022-10-8 08:36:40 | 显示全部楼层
  1. <CommandMethod("OffsetObject")>
  2.     Public Sub OffsetObject()
  3.         '' 获取当前文档和数据库
  4.         Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument
  5.         Dim acCurDb As Database = acDoc.Database
  6.         '' 启动事务
  7.         Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction()
  8.             '' 以读模式打开 Block 表
  9.             Dim acBlkTbl As BlockTable
  10.             acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead)
  11.             '' 以写模式打开块表记录模型空间
  12.             Dim acBlkTblRec As BlockTableRecord
  13.             acBlkTblRec = acTrans.GetObject(acBlkTbl(BlockTableRecord.ModelSpace), OpenMode.ForWrite)
  14.             '' 创建多段线
  15.             Dim acPoly As Polyline = New Polyline()
  16.             acPoly.AddVertexAt(0, New Point2d(1, 1), 0, 0, 0)
  17.             acPoly.AddVertexAt(1, New Point2d(1, 2), 0, 0, 0)
  18.             acPoly.AddVertexAt(2, New Point2d(2, 2), 0, 0, 0)
  19.             acPoly.AddVertexAt(3, New Point2d(3, 2), 0, 0, 0)
  20.             acPoly.AddVertexAt(4, New Point2d(4, 4), 0, 0, 0)
  21.             acPoly.AddVertexAt(5, New Point2d(4, 1), 0, 0, 0)
  22.             '' 添加新对象到块表记录和事务
  23.             acBlkTblRec.AppendEntity(acPoly)
  24.             acTrans.AddNewlyCreatedDBObject(acPoly, True)
  25.             '' 偏移多段线给定距离
  26.             Dim acDbObjColl As DBObjectCollection = acPoly.GetOffsetCurves(0.25)
  27.             '' 遍历得到的新对象
  28.             For Each acEnt As Entity In acDbObjColl
  29.                 '' 添加每个对象
  30.                 acBlkTblRec.AppendEntity(acEnt)
  31.                 acTrans.AddNewlyCreatedDBObject(acEnt, True)
  32.             Next
  33.             '' 保存新对象到数据库
  34.             acTrans.Commit()
  35.         End Using
  36.     End Sub
已经在书中找到源码。完成了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 04:36 , Processed in 0.150732 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表