[求助]关于JIG中引发的问题,屏幕坐标图标
本帖最后由 作者 于 2010-9-3 20:12:33 编辑 <br /><br /> <p><font face="Verdana">我用drawJig类做了个拖拽,某次拖拽完成后,再缩放模型空间,那个坐标icon,跟着缩放的同时,之前缩放大小的icon保留了下来,结果滚了几下鼠标滚轮,图面好多密密麻麻的坐标icon,在CAD命令行用regenall也没用。还是显示在那里。但又不是每次出现,那是怎么回事呢?</font></p><p>忘了截图了,在遇到了,我截个图贴上来!!</p>
<p>上图了!!</p>
<p></p>
<p><font face="Verdana">另外还问个问题,我看了kean的一段代码,他用了Application.SetSystemVariable("DIMBLK",str),为啥我用这句就出错(我是在一个DrawJig类中用的,使用在New构造函数中)提示eInvalidInput,无效输入,哪位大侠知道怎么回事吗?后来我也试着脱离DrawJig类,在外面使用,也这样提示。就不知道为什么会这样了。我的str值和kean用的一样的,都是Dim str as string ="_DOT"</font></p> <p>应该是有对象没有Dispose</p>
<p> </p> 谢谢版主,我更新了图片,帮忙看看,那怎么回事!!
另外
那个我有Dispose也不行,程序我10的,不好调试,我加msgbox观察,根本没有运行过SetSystemVariable那一句,就是在那一句出现的InvalidInput的。
这就是我的一个函数,不管是在Jig的New中调用,还是在Btn按钮的Click事件中调用,都提示InvalidInput
Friend Shared Function GetArrowObjectID(ByVal sets As CSetting) As ObjectId
Dim BlkName As String = ""
Dim Dbase As Database = Application.DocumentManager.MdiActiveDocument.Database
Select Case sets.ArrowName
Case 1
BlkName = sets.BlockName
Case 3
BlkName = "_ClosedBlank"
Case 4
BlkName = "_Dot"
Case 5
BlkName = "_DotSmall"
Case 6
BlkName = "_DotBlank"
Case 7
BlkName = "_Small"
Case 8
BlkName = "_BoxBlank"
Case 9
BlkName = "_BoxFilled"
Case 10
BlkName = "_Open"
Case 11
BlkName = "_Open30"
Case 12
BlkName = "_Open90"
End Select
Dim OldName As String
If sets.ArrowName <> 1 Then
OldName = Application.GetSystemVariable("DIMLDRBLK")
Application.SetSystemVariable("DIMLDRBLK", BlkName)
If OldName.Length <> 0 Then Application.SetSystemVariable("DIMLDRBLK", OldName)
End If
Dim Trans As Transaction = Dbase.TransactionManager.StartTransaction
Dim BlkTable As BlockTable = Trans.GetObject(Dbase.BlockTableId, OpenMode.ForRead)
GetArrowObjectID = BlkTable.Item(BlkName)
Trans.Commit()
Trans.Dispose()
End Function
但是我就测试下面这一小段代码,是没有问题的
<CommandMethod("xxx")> _
Public Sub test()
Dim ed As Editor = Application.DocumentManager.MdiActiveDocument.Editor
Dim res As PromptResult = ed.GetString("input arrow:")
If res.Status = PromptStatus.OK Then
Application.SetSystemVariable("DIMLDRBLK", res.StringResult)
End If
End Sub
页:
[1]