乐筑天下

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

[求助]关于JIG中引发的问题,屏幕坐标图标

[复制链接]

14

主题

36

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
92
发表于 2010-9-3 09:14:00 | 显示全部楼层 |阅读模式
我用drawJig类做了个拖拽,某次拖拽完成后,再缩放模型空间,那个坐标icon,跟着缩放的同时,之前缩放大小的icon保留了下来,结果滚了几下鼠标滚轮,图面好多密密麻麻的坐标icon,在CAD命令行用regenall也没用。还是显示在那里。但又不是每次出现,那是怎么回事呢?
忘了截图了,在遇到了,我截个图贴上来!!
上图了!!

b1jko0dcife.jpg

b1jko0dcife.jpg



另外还问个问题,我看了kean的一段代码,他用了Application.SetSystemVariable("DIMBLK",str),为啥我用这句就出错(我是在一个DrawJig类中用的,使用在New构造函数中)提示eInvalidInput,无效输入,哪位大侠知道怎么回事吗?后来我也试着脱离DrawJig类,在外面使用,也这样提示。就不知道为什么会这样了。我的str值和kean用的一样的,都是Dim str as string ="_DOT"
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2010-9-3 13:09:00 | 显示全部楼层
应该是有对象没有Dispose

回复

使用道具 举报

14

主题

36

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
92
发表于 2010-9-3 20:18:00 | 显示全部楼层
谢谢版主,我更新了图片,帮忙看看,那怎么回事!!
另外
那个我有Dispose也不行,程序我10的,不好调试,我加msgbox观察,根本没有运行过SetSystemVariable那一句,就是在那一句出现的InvalidInput的。
这就是我的一个函数,不管是在Jig的New中调用,还是在Btn按钮的Click事件中调用,都提示InvalidInput
  1.      Friend Shared Function GetArrowObjectID(ByVal sets As CSetting) As ObjectId
  2.         Dim BlkName As String = ""
  3.         Dim Dbase As Database = Application.DocumentManager.MdiActiveDocument.Database
  4.         Select Case sets.ArrowName
  5.             Case 1
  6.                 BlkName = sets.BlockName
  7.             Case 3
  8.                 BlkName = "_ClosedBlank"
  9.             Case 4
  10.                 BlkName = "_Dot"
  11.             Case 5
  12.                 BlkName = "_DotSmall"
  13.             Case 6
  14.                 BlkName = "_DotBlank"
  15.             Case 7
  16.                 BlkName = "_Small"
  17.             Case 8
  18.                 BlkName = "_BoxBlank"
  19.             Case 9
  20.                 BlkName = "_BoxFilled"
  21.             Case 10
  22.                 BlkName = "_Open"
  23.             Case 11
  24.                 BlkName = "_Open30"
  25.             Case 12
  26.                 BlkName = "_Open90"
  27.         End Select
  28.         Dim OldName As String
  29.         If sets.ArrowName  1 Then
  30.             OldName = Application.GetSystemVariable("DIMLDRBLK")
  31.             Application.SetSystemVariable("DIMLDRBLK", BlkName)
  32.             If OldName.Length  0 Then Application.SetSystemVariable("DIMLDRBLK", OldName)
  33.         End If
  34.         Dim Trans As Transaction = Dbase.TransactionManager.StartTransaction
  35.         Dim BlkTable As BlockTable = Trans.GetObject(Dbase.BlockTableId, OpenMode.ForRead)
  36.         GetArrowObjectID = BlkTable.Item(BlkName)
  37.         Trans.Commit()
  38.         Trans.Dispose()
  39.     End Function

但是我就测试下面这一小段代码,是没有问题的
  1.       _
  2.     Public Sub test()
  3.         Dim ed As Editor = Application.DocumentManager.MdiActiveDocument.Editor
  4.         Dim res As PromptResult = ed.GetString("input arrow:")
  5.         If res.Status = PromptStatus.OK Then
  6.             Application.SetSystemVariable("DIMLDRBLK", res.StringResult)
  7.         End If
  8.     End Sub
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-15 09:41 , Processed in 4.153864 second(s), 61 queries .

© 2020-2025 乐筑天下

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