Loading ...
Sorry, an error occurred while loading the content.

849Re: [cc2-dev-l] How to get the selection point of an entity ?

Expand Messages
  • Peter Olsson
    Aug 11, 2010
    • 0 Attachment

      You can change the return type of the callback or cast to DWORD. Both will work.


      I often do:


      pENTREC XPCALL PickScan(hDLIST hDList, pENTREC pEntRec, PARM parm1, PARM parm2)



              return pEntRec;


          return 0;



      You need to cast the result of the DLScan:




      You can also pass pointers to variables in parm1 and parm2 that are updated and return any non-zero value to terminate the scan.




      Från: cc2-dev-l@yahoogroups.com [mailto:cc2-dev-l@yahoogroups.com] För Jdr68
      Skickat: den 10 augusti 2010 19:28
      Till: cc2-dev-l@yahoogroups.com
      Ämne: Re: [cc2-dev-l] How to get the selection point of an entity ?



      Thanks a lot, the _asm thing did the trick.


      I'll not discard the DLScan though but I need to practise a bit more with it.


      I did try to design a Callback function that returns an entity, but whom does it return to as the Callback is called by the DLScan ?


      Do I need to use Parm1 or Parm2 ?


      Thanks again,


      ----- Original Message -----

      Sent: Tuesday, August 10, 2010 5:23 PM

      Subject: Re: [cc2-dev-l] How to get the selection point of an entity ?





      GPOINT2 *pPickPt;


      __asm mov pPickPt, edi;


      You have to be a bit careful with __asm statements. I often have to turn off optimization for the these parts in the release build.


      You might be better off with asking for a point (RD_2DC) and then scan for the selected entity (if any).

      You will need the function SetEachPickView() or SetEachPickViewEx(&PickedPt);

      Do a DLScan and test interesting entities with if(EPick(pEntRec))





      Från: cc2-dev-l@yahoogroups.com [mailto:cc2-dev-l@yahoogroups.com] För Joachim
      Skickat: den 9 augusti 2010 20:30
      Till: cc2-dev-l@yahoogroups.com
      Ämne: [cc2-dev-l] How to get the selection point of an entity ?



      I'm trying to create a command that breaks a line to insert some drawing and I need the coordinates of the selection point.

      I wrote a dynamic cursor that stores X and Y in global variables and it works fine except that it doesn't recognise midpoint etc modifiers.

      The RDATA.H says that with RD_Pick1 you get the entity at esi and the pk point at edi. I know that esi and edi are ASM registers but am at a loss at how to retrieve the info with C++.

      Thanks for any help...


    • Show all 8 messages in this topic