青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

青华模具培训学院
查看: 2866|回复: 11

[疑难] 我在做一个标准件螺钉的二次开发事件,我们老师要求我们用部件族编程做

[复制链接]
发表于 2011-6-24 11:50 | 显示全部楼层 |阅读模式
我在做一个标准件螺钉的二次开发事件,我们老师要求我们用部件族编程做,我不会啊~
# s: z7 M. x7 L4 K4 ^+ l目前,我才做到生成部件族,表格生成了。
/ q$ V  a# R2 f之后,用VISUAL STUDIO2005新建项目,接下来就不知道怎么做了,因为部件族里面的数据是内部数据,我只会用ODBC链接外部数据库。9 A/ @3 s- h5 O' w1 b
内部数据库,根本就不会啊,跪求解答。
发表于 2011-6-24 12:08 | 显示全部楼层
dingyixia xiongde
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-6-24 12:11 | 显示全部楼层
回复 2# 如意郎君
; E1 X) {! `2 }7 r$ X1 U
# _  {2 E" `, R& q# Z" J' k
5 R; l$ {: a  X0 Z. g/ I    大哥,你会不?兄弟我很急瓦~
回复 支持 反对

使用道具 举报

发表于 2011-6-24 12:20 | 显示全部楼层
二次开发软件不会啊,请路过的高手出招!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-6-24 12:33 | 显示全部楼层
各位路过的大哥,大神,跪求帮忙啊,这个真的是伤不起啊,今天就要求交的,实在没办法咯~
回复 支持 反对

使用道具 举报

发表于 2011-6-24 13:17 | 显示全部楼层
有表格了就是读取表格数据了!. K* r  g; r# r% }6 J/ j+ n
赋值读取的数据给模板文件!驱动表达式生成模型!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-6-24 14:29 | 显示全部楼层
回复 6# UG二次开发毕设
( t2 }; b+ P2 a- l7 [4 H0 B驱动表达式,这我会额,我们要求二次开发把它弄出来,我就不知道这内部数据库怎么连接~# U7 H3 \( l' U% t' z
总而言之,先谢谢了……
回复 支持 反对

使用道具 举报

发表于 2011-6-24 19:55 | 显示全部楼层
回复  UG二次开发毕设
3 y; |8 Y8 ~9 ^  ]: ]驱动表达式,这我会额,我们要求二次开发把它弄出来,我就不知道这内部数据库怎么连 ...
9 |  R6 u' h% c+ F; R8 U: p! k- b凌子涵 发表于 2011-6-24 14:29
1 g( m/ U* V1 w, C& p

  _1 i. o* }1 [, @  L谢我再多没毛用!
/ X5 l$ H  z/ r, v0 f0 N/ r& Y程序又不是一句两句能写出来的!!
3 v. T3 k+ x  G2 d你用UIStyler只做菜单,连接MFC,然后MFC连接数据库!这样数据库的参数就传递给了UIStyler,读取控件值传递给模型表达式,就能驱动生成了!
回复 支持 反对

使用道具 举报

发表于 2011-6-24 19:57 | 显示全部楼层
MFC的DLL可以办到!但是你要在UG里运行的话最好是UIStyler结合上MFC,MFC调用ACCESS
8 p  _2 U# `3 V, w下面是部分代码:(我这是一套的,代码很多也很杂,给你下面部分)
/ ?: D! u$ O5 P( Y1 lBOOL Database_main::OnInitDialog() 4 g1 [; U) r' d$ {/ ^" [- Q
{
# D# l$ U/ R' o$ u+ j        CDialog::OnInitDialog();7 u' W6 B. ?) i/ j
        
  z+ `  g: T+ S: e2 J        // TODO: Add extra initialization here8 S6 L! ], D5 w& f
                try{        
( T2 M5 ?# N8 D& h        m_pdatabase=new CDatabase();
( e1 G0 ~( u# L& C) |        m_pset=new CRecordset();
3 r  v0 o- L7 B% {4 c    m_pdatabase->Open(_T("data"),FALSE,FALSE,_T("ODBC;DSN=data"),FALSE);
, K4 O# _3 B* z6 A4 T$ r) y        m_pset->m_pDatabase=m_pdatabase;        
  Y# F3 s+ F. E        }
( w: C- q+ }& N- P/ H        catch(CDBException* e){
7 V' R7 X- H0 m$ C                e->ReportError();
# D7 I! s0 }- M        e->Delete();1 t7 W# x5 c3 y; e' h( S
            delete m_pset;9 Z/ m; h; j1 G  ^9 r' O
                delete m_pdatabase;
" b* I( C3 \. t. k6 j# e                return TRUE;}  m3 s0 Y; s! y$ v; }6 S
        DataShow("data");
7 I5 I' L' H/ v6 c8 U: X        return TRUE;  // return TRUE unless you set the focus to a control
8 \1 i  o* c+ n" i6 K! X6 w                      // EXCEPTION: OCX Property Pages should return FALSE# v9 @$ t% `% S# F
}
8 \' F; I. w* B, \1 b  f' s: K  O5 s3 n7 r
void Database_main::OnOK() 3 P% E4 i5 ~& {( k2 w( q3 z) j
{
8 n" \$ e9 @0 {        // TODO: Add extra validation here) _( t7 b4 Q' O9 B+ V+ o
   UINT uSelectedCount=m_list_control.GetSelectedCount();
; h* _1 J& G. L( T  ^" d8 |int nItemSel=0;, ?! k; P$ o1 H$ y( s% r% V
        nItemSel=m_list_control.GetNextItem(nItemSel-1,LVNI_SELECTED);2 l/ H0 {; o+ A3 g
                for(int j=0;j<nFieldCount;j++)% E6 G, i% @, \3 h
                    str[j]=m_list_control.GetItemText(nItemSel,j);+ |% P7 o$ n8 O" v) t% {% |
        }; {. a- K) G$ F$ F( Z, p* c( H" v
2 ~9 B# f) {5 h! ~6 K
" V- k2 S: U9 P
1 T+ |  T3 _; F. `$ Q+ a
        
, N9 s5 u1 ~- S$ f4 @! s/ M        CDialog::OnOK();* I, J3 l( t* C0 _0 g& o+ N+ f
}
' M1 I* U3 B/ O& D$ `- J9 y6 w  v$ F  Q6 B# W
void Database_main::ClearList()
" O" `3 }' A( z" Z- d{
8 W; k$ s2 l6 R6 {* v( u        //m_list_control.SetExtendedStyle(LVS_EX_FULLROWSELECT);/ \; p+ I7 ?& R6 K( x+ I# J8 c7 Q
        //m_list_control.SetExtendedStyle(LVS_EX_GRIDLINES);8 T3 L5 v' m/ P& U9 q
        m_list_control.DeleteAllItems();0 _7 C# B) W9 ?' o$ p/ |
        while(m_list_control.DeleteColumn(0));6 m. p6 ^" U6 h# B) v0 k/ f
    UpdateWindow();
) r& a# A% @# ^' u& e  Q; M6 s$ n}: ~0 ^1 p- o( J. V% t# z& l6 s
////////////////////////////////////////////////////////////////////////////////////
" Z4 e7 f3 |$ N; x' ?9 vvoid Database_main:ataShow(CString table_name); O1 a7 A+ S/ p2 l& R
{
$ b/ X' \) _' k- V( \3 K    ClearList();
- w& n5 R$ _% d! r: m" c    CString strSQL;
$ {+ |) F! A9 X1 e$ x- H$ W1 i! ]        strSQL="select * from "+table_name;
6 E9 G( h* ?/ H% X+ \/ \        ShowInformation(strSQL);! L6 ^# [) o* [3 A; T$ h
}
7 h7 k0 ]% Z) }9 F
. e) y. p9 Y0 h8 y& fBOOL Database_main::ShowInformation(CString strSQL)
! o- l* P$ H  f. s{
+ D4 @5 [( y: B7 ]  b5 v' B    if(!m_pdatabase->IsOpen()) return FALSE;+ a6 L! V3 v6 s* r
        if(!m_pset) return FALSE;
% ]% Q& J* G: N# m        try{
$ ]4 [7 Z% N3 Z- u$ k+ O  z                BeginWaitCursor();
& x7 C, s" s0 G1 n2 F! {                if(m_pset->IsOpen()) m_pset->Close();
( G6 _, T3 K) c8 L$ p                m_pset->Open(CRecordset::dynaset,strSQL);
7 y; E4 |& H3 k5 t# y9 Q& U                if(!m_pset->IsEOF())
. \( D- g8 W+ ?* w; \4 J3 f                {m_pset->MoveLast();5 i  A" [5 t  M; Q- x& m
                m_pset->MoveFirst();}* C3 L1 f" j' d9 ]
                nFieldCount=m_pset->GetODBCFieldCount();& g7 p; u3 P" k  p4 j! W  o+ V1 L3 }+ @$ c
                CODBCFieldInfo fieldinfo;) Q$ s8 w# A1 I4 `
                for(int n=0;n<nFieldCount;n++){$ C1 K+ ]8 u2 Q, p% O7 ?
                        m_pset->GetODBCFieldInfo(n,fieldinfo);% O' b& i4 E  B% {' v" N3 V% C
                        int nWidth=m_list_control.GetStringWidth(fieldinfo.m_strName)+35;! Y8 L% A' z. D- \+ Z1 X
                        m_list_control.InsertColumn(n,fieldinfo.m_strName,LVCFMT_RIGHT,nWidth);
# D* L3 @& B& Z7 r+ g, R! J                }
; l9 a' s7 E) |                CString strValue;: V8 Y" E( S) ~; E- z
                m_pset->MoveFirst();6 C. X3 X: y& g/ W
                int nCount=0;
1 h- `- o1 [% m3 |2 z. q                while(!m_pset->IsEOF()){0 n+ Z2 e. _) D9 O8 `
                        m_list_control.InsertItem(nCount,strValue);- Z. {9 Q2 ?2 p' S
                        for(int j=0;j<nFieldCount;j++){4 N% ?; W+ T7 q7 P7 U; U$ k. c
                                m_pset->GetFieldValue(j,strValue);
1 j7 m" h9 {$ c% [- D4 \                                m_list_control.SetItemText(nCount,j,strValue);0 ?/ i/ H9 D* C& e6 \' T2 r: m" ^# p
                        }
1 A% v; r$ A' R  E                        m_pset->MoveNext();
' y/ a! N( s) v. P% c+ j" n+ e                        nCount++;! @1 Q( \- Q2 M0 V0 y4 Y! J3 u
                }
6 e! k4 \- W  ~                EndWaitCursor();
# u  s2 R) Y; ?# d. P) ~        }! v6 a/ p0 R5 }+ Y7 N
        catch(CDBException *e){
+ z! t# _1 A, b                e->Delete();* Z/ l9 |+ Q0 [* u) M
        EndWaitCursor();  ]  |- y1 d1 N! Q
                return FALSE;
: s9 r1 r' a8 x! V9 ?        }: E0 c# ^: p& Y% j4 h: E2 }
        return TRUE;
, @( s, A3 Y" q6 ?# z7 e) L- z}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-6-25 12:17 | 显示全部楼层
回复 9# UG二次开发毕设
6 X/ c3 G+ ~9 k1 v你一套的?那能不能麻烦你打包发给我看看哦,我再理解理解,我qq是279355053,万分感谢额。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|关于我们|sitemap|小黑屋|Archiver|手机版|UG网-UG技术论坛-青华数控模具培训学校 ( 粤ICP备15108561号 )

GMT+8, 2025-2-19 06:29 , Processed in 0.061654 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表