[V8i SS3 MDL] Setting the cursor position in Microstation with MDL

Hi,

does anyone have an idea, how to SET the cursor position in Microstation via. MDL? I can receive the position with mdlSystem_getCursorPosition().

I want to control the cursor position in a scenario, where the graphical input is coming from a different source as a Microstation window (like a digitizing tablet). Actually I paint a transient element as a "pseudo cursor", but this is not satisfying to the user. I must have control over the real Microstation cursor, while the user is placing a linestring and this primitive command is in dynamic view.

Thank you in advance
Tom

Parents
  • Unknown said:
    I want to control the cursor position in a scenario, where the graphical input is coming from a different source as a Microstation window (like a digitizing tablet)

    Doesn't MicroStation already provide an interface for a digitizing tablet?

     
    Regards, Jon Summers
    LA Solutions

  • Hello Jon,

    the graphical input is completly different from a digitizing tablet: Input comes from measuring in a digital 3D image.

    Element creation is working with the mdlInput_send...() functions, but I'm missing a possibility to control Microstations cursor while placing the element to show creation dynamics.

    Regards, Tom

  • Unknown said:
    I'm missing a possibility to control Microstations cursor while placing the element to show creation dynamics

    That's taken care of by MicroStation's input state machine.  Both VBA and the C++ MicroStationAPI provide dynamics methods to show graphics while user moves the cursor.  Which language to you plan to use?

     
    Regards, Jon Summers
    LA Solutions

  • Hello Jon,

    you are right, the poorly documented C++ API ...

    I found an example to implement an own create Line command at LA-Solution, but I don't want to reinvent the wheel: I'm just using the Microstation Place Linestring command and simply want control over the cursor while the command is running. I couldn't find a solution for this till yet, even in the C++ API.

    Perhaps someone of the Bentley team has an idea ...

    Actually I'm coding my project in native MDL and added a C# .NET Form (DLL) to the solution. The form is started by the MDL and the image is presented to the user in this form. I marry these two different worlds (managed/unmanaged) through a intermediate C++/CLI DLL.

    Regards from Germany

    Tom

  • Unknown said:
    I'm just using the Microstation Place Linestring command and simply want control over the cursor while the command is running

    There is no capability to intercept a command function.  You can't, for example, inject a callback to its dynamics function.

    Writing your own place line-string command isn't too hard.  You are then free to do whatever you want during dynamics.  The best API is the C++  MstnTool — the base class for application-defined tools.

    If you prefer to stay with MDL, the mdlState_startPrimitive is the entry point to MicroStation's state machine.

     
    Regards, Jon Summers
    LA Solutions

Reply
  • Unknown said:
    I'm just using the Microstation Place Linestring command and simply want control over the cursor while the command is running

    There is no capability to intercept a command function.  You can't, for example, inject a callback to its dynamics function.

    Writing your own place line-string command isn't too hard.  You are then free to do whatever you want during dynamics.  The best API is the C++  MstnTool — the base class for application-defined tools.

    If you prefer to stay with MDL, the mdlState_startPrimitive is the entry point to MicroStation's state machine.

     
    Regards, Jon Summers
    LA Solutions

Children