56099


IJCAD2016／VB.netで開発している者です。  
IJCADのCOPY、MOVEコマンド同様にドロージグを使用したコマンドを開発しているのですが、Drag（PromptStatus）で[Enter]キーおよび、右クリックでコマンドを終了させる方法がわからず調べています。  
ご存知の方がいらっしゃいましたら何かアドバイスをいただければ幸いです。

以下はサンプルコードおよび参照元のULRです。

[code]

    Public Sub SampleCommand()
        Dim icDoc As Document = Application.DocumentManager.MdiActiveDocument
        Dim icEd = icDoc.Editor
    
        '移動させるオブジェクトを選択
        Dim icSelectRes As PromptSelectionResult = icEd.GetSelection()
        If icSelectRes.Status <> PromptStatus.OK Then Return
    
        '移動の基点を指定
        Dim icPointRes As PromptPointResult = icEd.GetPoint(vbCrLf + "基点を指定")
        If icPointRes.Status <> PromptStatus.OK Then Return
    
        Using icTrans As Transaction = icDoc.TransactionManager.StartTransaction()
            Dim icMoveJig As MoveEntityJig = New MoveEntityJig(icPointRes.Value)
            For Each icSelObj As SelectedObject In icSelectRes.Value
                icMoveJig.AddEntity(icTrans.GetObject( _
                icSelObj.ObjectId, OpenMode.ForWrite))
            Next
    
            If icEd.Drag(icMoveJig).Status = PromptStatus.OK Then
                icMoveJig.TransformEntities()
                icTrans.Commit()
            Else
                icTrans.Abort()
            End If
        End Using
    End Sub
    
[/code]

サンプル参照元：  
[.NET - DrawJigを使用してオブジェクトを移動させる - IJCAD
ヘルプセンター](https://support.ijcad.jp/hc/ja/articles/206108942--NET-
DrawJig%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92%E7%A7%BB%E5%8B%95%E3%81%95%E3%81%9B%E3%82%8B)


CC BY-SA 4.0
2019-06-25T01:29:27.740
56076
2019-06-26T01:45:27.460
2019-06-25T01:41:29.310
3060
34508
question
.net vb.net ijcad arx
PromptStatusで[Enter]キー、右クリックを取得する方法


サンプルで参照されているソースに下記のコードを追加することで取れるようです。

■Sampler関数

[code]

    　Protected Overrides Function Sampler(prompts As JigPrompts) As SamplerStatus
    　　Dim jigPointOpt As JigPromptPointOptions = New JigPromptPointOptions(vbCrLf + "移動先を指定")
    　　jigPointOpt.UseBasePoint = True
    　　jigPointOpt.BasePoint = BasePoint
    　　jigPointOpt.Cursor = CursorType.RubberBand
    　　
    　　'下記を追加
    　　jigPointOpt.UserInputControls = UserInputControls.NullResponseAccepted
    
[/code]

結果としてPromptStatus.Noneが戻ります。  
現行のコードではキャンセルと同じ扱いとされるので、必要であればIF文で分岐すればよいと思います。


CC BY-SA 4.0
2019-06-26T01:45:27.460
56099
2019-06-26T01:45:27.460
29093
56076
answer