乐筑天下

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

曲线打断 显示曲线分段首尾坐标正确,CAD图面没变化?

[复制链接]

6

主题

11

帖子

3

银币

初来乍到

Rank: 1

铜币
35
发表于 2016-2-20 11:07:00 | 显示全部楼层 |阅读模式
Public Shared Sub xj_trim(ByVal PL As Polyline)
        Dim doc As Document = Autodesk..ApplicationServices.Application.DocumentManager.MdiActiveDocument
        Dim db As Database = doc.Database
        Dim ed As Editor = doc.Editor
        Using trans As Transaction = db.TransactionManager.StartTransaction()
            Dim p3dCOL As New Point3dCollection
            p3dCOL = ModelSpace.getplCollection(PL) '获取线顶点集合
            Dim res As PromptSelectionResult = ed.SelectFence(p3dCOL)
            If res.Status  PromptStatus.OK Then Exit Sub
            Dim sset As SelectionSet = res.Value
           
            Dim btr As BlockTableRecord = trans.GetObject(db.CurrentSpaceId, OpenMode.ForWrite, False)
            For i As Integer = 0 To sset.Count - 1 '遍历
                Dim fobj As FenceSelectedObject = sset(i)
                Dim fent As Entity = trans.GetObject(fobj.ObjectId, OpenMode.ForWrite)
                If TypeOf (fent) Is Curve Then
                    ' //获取被栏选的直线和栏选点
                    Dim pCurve As Curve = trans.GetObject(fobj.ObjectId, OpenMode.ForWrite) '相交曲线
                    Dim ppd As Point3d = fobj.GetIntersectionPoints()(0).PointOnLine
                    pCurve.UpgradeOpen()
                    Dim P3C As New Point3dCollection
                    '//获取直线和偏移界线的交点集合
                    pCurve.IntersectWith(PL, Intersect.ExtendArgument, P3C, 0, 0) '获取交点集合
                  
                    If P3C Is Nothing Then GoTo ii
                    Dim plist As New List(Of Double)
                    For Each pp As Point3d In P3C
                        plist.Add(pCurve.GetParameterAtPoint(pCurve.GetClosestPointTo(pp, False))) '获取交点最近点
                    Next
                    If (plist Is Nothing) Then GoTo ii
                    plist.Sort() '排序
                    Dim dcol As New DoubleCollection(plist.ToArray())
                  
                    Try
                        For Each cc As Curve In pCurve.GetSplitCurves(dcol)  '曲线打断
                            Debug.Print(cc.StartPoint.X & "," & cc.EndPoint.X) '显示曲线分段首尾x坐标  完全正确
                            ' 将图形对象的信息添加到块表记录中,
                            btr.AppendEntity(cc)
                            ' 把图形对象添加到事务处理中.
                            trans.AddNewlyCreatedDBObject(cc, True)
                        Next
                        '  pCurve.Erase()
                    Catch ex As Exception '出错
                        Autodesk.AutoCAD.ApplicationServices.Application.ShowAlertDialog(ex.Message + "\n" + ex.StackTrace)
                    End Try
                End If
ii:         Next i
            trans.Commit()
        End Using
    End Sub
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2016-2-20 12:39:00 | 显示全部楼层
点击曲线看看
回复

使用道具 举报

6

主题

11

帖子

3

银币

初来乍到

Rank: 1

铜币
35
发表于 2016-2-20 14:32:00 | 显示全部楼层
曲线没变化,没有断开
回复

使用道具 举报

6

主题

11

帖子

3

银币

初来乍到

Rank: 1

铜币
35
发表于 2016-2-20 14:38:00 | 显示全部楼层

显示曲线分段首尾坐标完全正确,但曲线没被打断
执行pCurve.Erase(),该曲线也删不掉
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2016-2-20 15:06:00 | 显示全部楼层
pCurve.Up...Open去掉
其他看不出什么大问题
回复

使用道具 举报

6

主题

11

帖子

3

银币

初来乍到

Rank: 1

铜币
35
发表于 2016-2-20 15:23:00 | 显示全部楼层
pCurve.Up...Open去掉,也不行
回复

使用道具 举报

6

主题

11

帖子

3

银币

初来乍到

Rank: 1

铜币
35
发表于 2016-2-20 15:24:00 | 显示全部楼层
我感觉没进行事务处理
回复

使用道具 举报

6

主题

11

帖子

3

银币

初来乍到

Rank: 1

铜币
35
发表于 2016-2-20 15:52:00 | 显示全部楼层
请大侠帮忙看看
回复

使用道具 举报

7

主题

18

帖子

1

银币

初来乍到

Rank: 1

铜币
46
发表于 2016-2-20 17:26:00 | 显示全部楼层
Debug.Print(cc.StartPoint.X & "," & cc.EndPoint.X) '显示曲线分段首尾x坐标  完全正确
这里每个顶点画一个到 0 0 0的直线,看得到什么了?
去掉Try 结构会有什么错误呢?
回复

使用道具 举报

7

主题

18

帖子

1

银币

初来乍到

Rank: 1

铜币
46
发表于 2016-2-20 17:28:00 | 显示全部楼层
我觉得可能是一个什么致命错误让过程退出了,让 trans.Commit()没有机会执行,所以把错误暴露出来分析下。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2024-11-22 05:30 , Processed in 0.155268 second(s), 72 queries .

© 2020-2024 乐筑天下

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