乐筑天下

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

[求助]关于.net实现不了的功能,怎么办?

[复制链接]

17

主题

69

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
137
发表于 2010-4-24 12:58:00 | 显示全部楼层 |阅读模式
我开发一些功能,.net实现不了,但是LIsp可以实现,那我该怎么办?可以在.net中调用LISP么?请教各位大侠!
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2010-4-24 13:25:00 | 显示全部楼层
哪些功能?
回复

使用道具 举报

17

主题

69

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
137
发表于 2010-4-25 21:42:00 | 显示全部楼层
版主,你就帮帮我吧,我是在cad06下搞的东西,但是有一个建属性块的时候,就出现致命错误,其他版本的CAD呢,我们这里没有人用
我想弄个.NET中,用LISP把这个功能实现了,我做的程序就缺这一步了!唉!苦恼呀!
回复

使用道具 举报

17

主题

69

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
137
发表于 2010-4-25 21:49:00 | 显示全部楼层
我想着用COM来创建属性块,但是总是搞不好,飞狐版主,你的VBA好,能否教教我呢!
所有点的数据都用.NET得到了,怎么能利用这些数据为每个点创建一个属性块?
能写一段,用COM创建的属性块么?谢了!
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2010-4-25 21:52:00 | 显示全部楼层
Cad06建属性快应该没什么问题的,以前做过的
看看你的代码?
另外,代码在其他版本有没问题?
。net调lisp前面的帖子我不是贴过方法了么
回复

使用道具 举报

17

主题

69

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
137
发表于 2010-4-26 19:21:00 | 显示全部楼层
  1. Public Class Class1
  2.      Public Sub CreateBlockWithAttributes()
  3.         Dim db As Database = HostApplicationServices.WorkingDatabase
  4.         Dim blockId As ObjectId = ObjectId.Null
  5.         Dim record As New BlockTableRecord
  6.         record.Name = "RmNum"
  7.         Using trans As Transaction = db.TransactionManager.StartTransaction
  8.             Dim points As New Point3dCollection
  9.             points.Add(New Point3d(-18, -6, 0))
  10.             points.Add(New Point3d(18, -6, 0))
  11.             points.Add(New Point3d(18, 6, 0))
  12.             points.Add(New Point3d(-18, 6, 0))
  13.             Dim pline As New Polyline2d(Poly2dType.SimplePoly, points, 0, True, 0, 0, Nothing)
  14.             record.Origin = points(3)
  15.             record.AppendEntity(pline)
  16.             Dim attdef As New AttributeDefinition
  17.             attdef.Position = New Point3d(100, 200, 0)
  18.             attdef.Height = 8
  19.             attdef.Rotation = 0
  20.             attdef.HorizontalMode = TextHorizontalMode.TextMid
  21.             attdef.VerticalMode = TextVerticalMode.TextVerticalMid
  22.             attdef.Prompt = "Room Number;"
  23.             attdef.TextString = "0000"
  24.             attdef.Tag = "Number"
  25.             attdef.Invisible = False
  26.             attdef.Verifiable = False
  27.             attdef.Preset = False
  28.             attdef.Constant = False
  29.             record.Origin = points(3)
  30.             record.AppendEntity(attdef)
  31.             Dim bt As BlockTable = trans.GetObject(db.BlockTableId, OpenMode.ForWrite)
  32.             If bt.Has("RmNum") = False Then
  33.                 blockId = bt.Add(record)
  34.                 trans.AddNewlyCreatedDBObject(record, True)
  35.                 trans.Commit()
  36.             End If
  37.         End Using
  38.     End Sub
  39. End Class
平台是Autocad2006 VB.net2005
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2010-4-26 20:00:00 | 显示全部楼层
Public Class Class1
    Public Sub CreateBlockWithAttributes()
      Dim db As Database = HostApplicationServices.WorkingDatabase
      Dim blockId As ObjectId = ObjectId.Null
      Using trans As Transaction = db.TransactionManager.StartTransaction
          Dim bt As BlockTable = trans.GetObject(db.BlockTableId, OpenMode.ForWrite)
          If bt.Has("RmNum") Then
                     Return
          End If
          Dim record As New BlockTableRecord
          record.Name = "RmNum"
          blockId = bt.Add(record)
          trans.AddNewlyCreatedDBObject(record, True)
          Dim points As New Point3dCollection
          points.Add(New Point3d(-18, -6, 0))
          points.Add(New Point3d(18, -6, 0))
          points.Add(New Point3d(18, 6, 0))
          points.Add(New Point3d(-18, 6, 0))
          Dim pline As New Polyline2d(Poly2dType.SimplePoly, points, 0, True, 0, 0, Nothing)
          record.Origin = points(3)
          record.AppendEntity(pline)
          trans.AddNewlyCreatedDBObject(pline, True)
          Dim attdef As New AttributeDefinition
          attdef.Position = New Point3d(100, 200, 0)
          attdef.Height = 8
          attdef.Rotation = 0
          attdef.HorizontalMode = TextHorizontalMode.TextMid
          attdef.VerticalMode = TextVerticalMode.TextVerticalMid
          attdef.Prompt = "Room Number;"
          attdef.TextString = "0000"
          attdef.Tag = "Number"
          attdef.Invisible = False
          attdef.Verifiable = False
          attdef.Preset = False
          attdef.Constant = False
          record.Origin = points(3)
          record.AppendEntity(attdef)
          trans.AddNewlyCreatedDBObject(attdef, True)
          trans.Commit()
      End Using
   End Sub
End Class
回复

使用道具 举报

17

主题

69

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
137
发表于 2010-4-26 21:22:00 | 显示全部楼层

nyukcorkhl3.JPG

nyukcorkhl3.JPG

回复

使用道具 举报

17

主题

69

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
137
发表于 2010-4-26 21:23:00 | 显示全部楼层
还是有错误,这是怎么回事呢?
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2010-4-26 22:00:00 | 显示全部楼层
逐步调试下,是那句代码的问题看看
不过代码在2008下没有任何问题
要么是2006下要用特殊的代码顺序写,要么是Bug
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 21:17 , Processed in 0.716476 second(s), 75 queries .

© 2020-2025 乐筑天下

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