丁香美女社区,国产午夜av秒播在线观看,老八日三个媳妇的最新进展,国产一区二区波多野结衣,国产又黄又爽又猛免费视频播放

咖迷社區(CAXA數碼大方)

標題: 工藝圖表2007二次開發問題 [打印本頁]

作者: jifeng52618    時間: 2016-3-3 09:31
標題: 工藝圖表2007二次開發問題
有沒有CAXA工藝圖表2007二次開發的開發手冊接口說明文檔,有的話麻煩提供給我一份,感謝
作者: jifeng52618    時間: 2016-3-3 09:38
有沒有做過CAXA工藝圖表2007二次開發的,獲取打開 工藝卡片中的數據,有的話麻煩提供思路或者接口文檔說明,郵箱: ,感謝
作者: caxtest    時間: 2016-3-4 09:36
沒有針對工藝圖表的二次開發接口,工藝圖表中所帶的二次開發全部是針對電子圖板而言的。
但有一個變通的方法,隨工藝圖表版本發布時,總是同時發布提取組件和瀏覽控件
對于07版,是CAXAinfo和CAXAview;
對于2013版及之后,是CAXACappinfo組件和CAXACappview控件,位置在C:\Program Files\Common Files\CAXA Shared\sudamba.cnmon Component。其中CAXACappinfo組件中接口有對工藝文件的打開、卡片的提取等功能。可以嘗試通過此組件進行操作

作者: 18681231    時間: 2016-12-10 23:30
非常希望得到樓上的幫助
作者: caxtest    時間: 2016-12-12 12:59
首先需要CAXA 組件的許可,采用最新的CAXA組件版本(至少2009之后版本所帶的組件)。
對于電子圖板,可以參考組件自帶的例子,已經很夠了。
對于工藝給您幾行代碼可以做參考:
1.提取卡片表格內容
void CTestComDlg::OnButton2()
{
// TODO: Add your control notification handler code here
// 1.獲取輸入文件名,輸出文件名,模板文件
bool bGetInputName = false;
bool bGetOutPutName = false;
bGetInputName=GetInputFieName(1);
if(!bGetInputName)
  return;
bGetOutPutName=GetOutPutName();
if(!bGetOutPutName)
  return;
//  2.輸出到txt
HRESULT hRet;
CLSID clsid;
ICAPPInfo *pInterface=NULL;
ICAPPXmlInfo *pXmlInterface = NULL;
hRet=::CLSIDFromProgID(L"CAXAInfo.CAPPInfo",&clsid);
if(FAILED(hRet))
  return;
hRet=CoCreateInstance(clsid,NULL,CLSCTX_INPROC_SERVER,IID_ICAPPInfo,(void **)&pInterface);
if(FAILED(hRet))
  return;
CString CappFileName = sInputFileName;
CString TxtXmlFileName= sOutPutFileName;
CString sExtFilter = sFileExt;
        VARIANT_BOOL ret;
BSTR BstrEbFileName,BstrTxtXmlFileName;
int iCardMask = 1|2|4|8|16;

BstrEbFileName=CappFileName.AllocSysString();
BstrTxtXmlFileName=TxtXmlFileName.AllocSysString();
if(sExtFilter == "xml")
{
  pXmlInterface =(ICAPPXmlInfo*) pInterface;
  hRet=pXmlInterface->InfoToXmlFile(BstrEbFileName,iCardMask,BstrTxtXmlFileName,&ret);
                pXmlInterface = NULL;
}
else
{
  pXmlInterface =(ICAPPXmlInfo*) pInterface;
  hRet=pXmlInterface->InfoToTxtFile(BstrEbFileName,BstrTxtXmlFileName,&ret);
  pXmlInterface = NULL;
}

if(FAILED(hRet))
{
  ::SysFreeString(BstrEbFileName);
  ::SysFreeString(BstrTxtXmlFileName);
  HandError(pInterface,IID_ICAPPInfo);
  pInterface->Release();
  return;
}
::SysFreeString(BstrEbFileName);
::SysFreeString(BstrTxtXmlFileName);

pInterface->Release();
}

2.在單元格中反寫字符串
void CTest10Dlg::OnAddtexttocappbutton1()
{
        // TODO: Add your control notification handler code here
        UpdateData(TRUE);
        CString sCellContent="";
        CString sTemp="";
        sTemp=m_sColName+"^"+m_sInsTxtToCxp;//+"&"+m_sInsTxtToCxp;
        CComBSTR bstPath,bstFilePath,bsCellContent;
        bstFilePath = m_sFilePath.AllocSysString();
    bsCellContent =sCellContent .AllocSysString();
        bstPath = m_sImgPath.AllocSysString();
        int iAlignMode = m_ComboxAlignMode.GetCurSel();
        int iFillInMode = m_CheckFillInMode.GetCheck();
        CComBSTR bstCardname,bstColumnName;
        bstCardname = m_sCardName.AllocSysString();
        bstColumnName = sTemp.AllocSysString();

        VARIANT_BOOL bRet;
        OnBtnOpenCxpfile();
        if (NULL != g_pICappInfo)
        {
                CComQIPtr<ICAPPXmlInfo> spCappFillInfo = g_pICappInfo;

                spCappFillInfo->WriteTxtInfoToCard(bstCardname,bstColumnName,m_iRowNum,&bRet);
        }
        OnBtnCloseCxpfile();
}

3.在單元格中反寫圖片
void CTest10Dlg::OnButtonAddimgtocxp()
{
        // TODO: Add your control notification handler code here
        UpdateData(TRUE);
        CComBSTR bstPath,bstFilePath;
        bstFilePath = m_sFilePath.AllocSysString();
        bstPath = m_sImgPath.AllocSysString();
        int iAlignMode = m_ComboxAlignMode.GetCurSel();
        int iFillInMode = m_CheckFillInMode.GetCheck();
        CComBSTR bstCardname,bstColumnName;
        bstCardname = m_sCardName.AllocSysString();
        bstColumnName = m_sColName.AllocSysString();

        VARIANT_BOOL bRet;
        OnBtnOpenCxpfile();
        if (NULL != g_pICappInfo)
        {
                CComQIPtr<ICAPPXmlInfo> spCappXmlInfo = g_pICappInfo;
                spCappXmlInfo->WriteImgToCard(bstPath,bstCardname,bstColumnName,m_iRowNum,iAlignMode,iFillInMode,&bRet);
        }
        OnBtnCloseCxpfile();
}

作者: 18681231    時間: 2016-12-17 11:39
caxainfo沒有發現寫反寫的函數,再指點下
作者: caxtest    時間: 2016-12-19 10:31
對于exb:
1.標題欄反填文字
void CTest10Dlg::OnBtnSetheaderinfo()
{
        CWaitCursor cursor;
       
        CComBSTR bsTemp;
        LONG lCount=0;
        VARIANT_BOOL ret;
        CComBSTR bsSeparat1 = _T("^");
        CComBSTR bsSeparat2 = _T("&");

        m_strHeaderInfo = _T("THAO^ABCD&CLDMA^零件&圖樣名稱^ABCDEF&單位名稱^CAXA&材料^水遠鏡&圖紙編號^SPIDER-007&設計_人員編號^XAXAXA&設計_日期^ASASAS");
        bsTemp = m_strHeaderInfo;

        if (g_pIEbInfo != NULL)
        {
                HRESULT        hRet =  g_pIEbInfo->SetHeaderInfo(bsTemp, bsSeparat1, bsSeparat2, &ret);
        }
        else if (g_pIDwgInfo !=NULL)
        {
                HRESULT        hRet =  g_pIDwgInfo->SetHeaderInfo(bsTemp, bsSeparat1, bsSeparat2, &ret);
        }
       
}

2.明細表反填
void CTest10Dlg::OnBtnSetbominfo()
{
        CWaitCursor cursor;
        if (g_pIEbInfo == NULL || TRUE != m_bExbFlag)
        {
                return;
        }

        CComBSTR bsTemp;
        LONG lCount=0;
        VARIANT_BOOL ret;
        CComBSTR bsSeparat1 = _T("^");
        CComBSTR bsSeparat2 = _T("&");

        m_strBomInfo = _T("AA2^7-00-01^目鏡^1^^^^kk^pp^pop&AA3^7-00-02^分化座^1^^^^^&AA4^7-00-03^長水泡^1^^^^^&AA5^7-00-04^調距筒^1^^^^^&AA6^7-00-05^調距^1^^^^^&6^7-00-06^調距彈簧座^1^^^^^&7^7-00-07^物鏡^1^^^^^&8^9-03-29^瞄準尖^1^HPb59-1^^^^&9^9-07-09^望遠鏡鏡筒^1^ZL401^^^^&10^9-02-12^定位鏡^1^A3");
        bsTemp = m_strBomInfo;

        HRESULT        hRet = g_pIEbInfo->SetBomInfo(bsTemp, bsSeparat1, bsSeparat2, &ret);
       
}


3.標題欄反填圖像
void CTest10Dlg::OnButtonAddimg()
{
        // TODO: Add your control notification handler code here
        UpdateData(TRUE);
        CComBSTR bstPath,bstPos;
        bstPos = m_sInsertPos.AllocSysString();
        bstPath = m_sImgPath.AllocSysString();
        int iAlignMode = m_ComboxAlignMode.GetCurSel();
        int iFillInMode = m_CheckFillInMode.GetCheck();
        if (NULL != g_pIEbInfo)
        {
                g_pIEbInfo->SetImageOnHeader(bstPath,bstPos,iAlignMode,(BOOL)iFillInMode);
        }
        else if (NULL != g_pIDwgInfo)
        {
                g_pIDwgInfo->SetImageOnHeader(bstPath,bstPos,iAlignMode,(BOOL)iFillInMode);
        }
}
作者: chenyin0824    時間: 2017-7-31 10:58
非常希望得到樓上的幫助
作者: chenyin0824    時間: 2017-8-1 11:22
能配合caxa電子圖版使用干嗎
作者: caxtest    時間: 2017-8-2 08:21
電子圖板的二次開發功能強大,在安裝目錄的CRX文件夾中有相關文檔、幫助、例子等。甚至AutoCAD相關的二次開發例子可以嘗試平移過來。
上面帖子,是針對工藝圖表部分的二次開發功能沒有對外開放,而采用組件對外提供的接口進行二次開發的方法。電子圖板不需要這樣繞,當然上述代碼也適用于電子圖板文件
作者: 18681231    時間: 2018-4-17 16:54
請教一下,caxaview. setcommand一共多少個參數命令?




歡迎光臨 咖迷社區(CAXA數碼大方) (//sudamba.cn/fORUM/) Powered by Discuz! X3.4