乐筑天下

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

各位高手:添加一多义线并设置线型错在什么地方

[复制链接]

9

主题

25

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
61
发表于 2007-5-21 21:41:00 | 显示全部楼层 |阅读模式
'绘多义线
     _
        Public Sub AddPL()
        Dim pl As New Polyline
        Dim DB As Database
        Dim trans As Transaction
        Dim btr As BlockTableRecord
        Dim bt As BlockTable
        'Dim li As Object
        DB = HostApplicationServices.WorkingDatabase
        trans = DB.TransactionManager.StartTransaction
        bt = trans.GetObject(DB.BlockTableId, OpenMode.ForWrite)
        btr = trans.GetObject(bt(BlockTableRecord.ModelSpace), OpenMode.ForWrite)
        'Dim pLinetypeTbl As LinetypeTable = trans.GetObject(DB.LinetypeTableId, OpenMode.ForRead)
        'If pLinetypeTbl.Has("DASHDOT") Then
            'DB.LoadLineTypeFile("DASHDOT", "acadiso.lin")
            'End If
            Dim point2D(2) As Point2d
            point2D(0) = New Point2d(10, 10)
            point2D(1) = New Point2d(10, 5)
            point2D(2) = New Point2d(30, 40)
            pl.AddVertexAt(0, point2D(0), 0, 1, 1)
            pl.AddVertexAt(1, point2D(1), 0, 1, 1)
        pl.AddVertexAt(2, point2D(2), 0, 1, 1)
        pl.LinetypeId = CreatLineType("DASHDOT")
            ' pl.Linetype = "DASHDOT"
            btr.AppendEntity(pl)
            trans.AddNewlyCreatedDBObject(pl, True)
            trans.Commit()
            trans.Dispose()
    End Sub
    Private Function CreatLineType(ByVal LineTypeName As String) As ObjectId
        Dim LineTypeID As ObjectId
        Dim db As Database = HostApplicationServices.WorkingDatabase
        Using trans As Transaction = db.TransactionManager.StartTransaction
            Dim it As LinetypeTable = trans.GetObject(db.LinetypeTableId, OpenMode.ForRead)
            If it.Has(LineTypeName) Then
                LineTypeID = it.Item(LineTypeName)
            Else
                db.LoadLineTypeFile(LineTypeName, "acadiso.lin")
                Dim ltr As New LinetypeTableRecord
                ltr.Name = LineTypeName
                it.UpgradeOpen()
                LineTypeID = it.Add(ltr)
                trans.AddNewlyCreatedDBObject(ltr, True)
               
            End If
trans.Commit()
        End Using
        Return LineTypeID
    End Function
回复

使用道具 举报

32

主题

651

帖子

8

银币

中流砥柱

Rank: 25

铜币
779
发表于 2007-5-22 13:28:00 | 显示全部楼层
Dim it As LinetypeTable = trans.GetObject(db.LinetypeTableId, OpenMode.ForRead)
OpenMode.ForRead 改为OpenMode.ForWrite
没有测试过,只是看见这个地方有问题
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2024-11-22 06:02 , Processed in 0.138107 second(s), 56 queries .

© 2020-2024 乐筑天下

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