Google Code Prettify

2017年2月15日 星期三

[Halcon + Visual Studio C#] 匯入設定(一)

今天要介紹的是 Halcon 匯入 Visual Studio 2015 的作法

主要有兩種方式,

  1. 直接在halcon做完,匯入 program.cs ,直接呼叫class即可。
  2. 將匯出的Halcon Action 放入你要修改的地方或是元件內。
兩種有甚麼差異呢?

主要是元件上的 Modifiers 問題,而第二種方式可以直接在呼叫的元件動作內使用並修改,會來的簡單許多,但如果以 Halcon 為主,C# 只做人機介面,那就可以把整個 Halcon 輸出的內容貼在 program 內,時間會來的更快。

所以兩種方式皆可使用。

這篇主要先講第一項 直接帶入 program.cs

     1. Halcon 導出程式


     2. 將 Halcon DLL 加入參考 路徑(MVTec\HALCON\bin\dotnetXX) 或
         可將 DLL 放入 C# 專案資料夾中的 debug 資料夾內,再加入參考
     3. 工具箱中新增 HwindowControl
         工具箱標籤右鍵(Ex. 通用控制項) -> 選擇項目 -> .NET Farmework元件 -> 瀏覽
         找到剛剛的dotnetXX,就可看到工具箱新增 HwindowControl 元件


     4. 將匯出的程式打開,將 public partial class HDevelopExport ... 全部複製於
         VS C# 中 program.cs,並 using HalconDotNet;

         這邊可能會發生錯誤,並沒有辦法 using 或是 最後不能 開始程式,說找不到DLL,
         別急! 第五點會說原因

     5. 將特別注意,如果你的Halcon版本是使用x86,那妳目標平台需改為x86
         專案右鍵 ->  屬性 -> 建置 -> 平台 x86 ->平台目標 x86 

         如此做法應該就沒有問題,接下來就可以試試看可不可以運作,

     Test Funtion

  1. 新增元件 Button & HWindowControl 
  2. Button_Click 中

    HDevelopExport HD = new HDevelopExport();
    HD.RunHalcon(HWindowControl.HalconWindow);
  3. 將匯出的程式打開,將 public partial class HDevelopExport ... 全部複製於
    VS C# 中 program.cs,並 using HalconDotNet;
  4. OK Run Funtion
--------------------------------------------------------------------------------------------------------------

         2017/11/22更新,很久沒有用網誌,都沒有發現有問題,少加東西,
         感謝Holmes Chang網友幫我偵錯 :D

         Farmer在program.cs內的public partial class HDevelopExport 有改一些地方,
         Farmer只加入private void action(){},並且加入一段在
         public partial class HDevelopExport,

public void RunHalcon(HTuple Window)
{
hv_ExpDefaultWinHandle = Window;
action();
}
         
       
         

3 則留言:

  1. 回覆
    1. 非常感謝,沒有你提醒我都忘記了

      我在program.cs 內 還有寫

      public void RunHalcon(HTuple Window)
      {
      hv_ExpDefaultWinHandle = Window;
      action();
      }

      刪除
    2. 最重要的是你要顯示在何處,通常在Halcon的Dispplay是指定內部的視窗名稱
      在action,你要找出你輸出的Dispplay的指令位置,
      我把Dispplay的視窗名稱統一改為hv_ExpDefaultWinHandle
      在一次給他視窗名稱就可

      刪除