none
关于用BCB操作AutoCAD的问题,请微软工程师帮助一下 RRS feed

  • 常规讨论

  • #define PG OlePropertyGet
    #define PS OlePropertySet
    #define FN OleFunction
    #define PR OleProcedure

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {

    Variant ExCad,AcadDoc,AcadMod;

     try
     {
      ExCad=Variant::GetActiveObject("AutoCAD.Application.17"); 
     }
     catch(...)
     {
      return;
     }
      AcadDoc=ExCad.PG("ActiveDocument");                     
      AcadMod=AcadDoc.PG("ModelSpace");                    
      ExCad.PS("Visible",1);
      Variant ssetObj; //
      try{
       ssetObj = AcadDoc.PG("SelectionSets").FN("item","CGQ$$1");//
       ssetObj.FN("clear");
      }
      catch(...)
      {
       try{
        ssetObj = AcadDoc.PG("SelectionSets").FN("Add","CGQ$$1");//
        ssetObj = AcadDoc.PG("SelectionSets").FN("item","CGQ$$1");
       }
       catch(...)
       {
          return;
       }
      }
    ///////////////////////????
     int *gpCode= new int[1];
     Variant *dataValue= new Variant[1];
     gpCode[0]=0;
     dataValue[0]="CIRCLE";
     Variant gpc=gpCode;
    ///////////////////////??????
      try
      {
       ssetObj.FN("Select",5,EmptyParam,EmptyParam,gpc,dataValue);  //??这一句不能完成任务,不知是否前边的数据类型不对呢?请指教
      }
      catch(...)
      {
       ssetObj.FN("delete");
       return;
      }
      int kt=ssetObj.PG("count");
      ShowMessage(kt);

    2013年6月25日 13:46

全部回复