切换到宽版
  • 广告投放
  • 稿件投递
  • 繁體中文
    • 4011阅读
    • 1回复

    [分享]《AutoCAD中图形库的创建和管理》 [复制链接]

    上一主题 下一主题
    离线cyqdesign
     
    发帖
    29755
    光币
    94380
    光券
    0
    只看楼主 正序阅读 楼主  发表于: 2006-08-28
    摘 要: 介绍在AutoCAD环境下创建和管理图形库的一种方案、开发环境、流程等。使用图标菜单和合适的对话框展示图文并茂的图形信息,展示了方法的良好效果。 Fq<;-  
    L8FLHT+R-  
    一、前言 ;i2N`t2  
    NI^[7.2  
    AutoCAD软件具有相当优秀的开放型结构(Open architecture)和一个强大的内部编程语言(Autolisp语言,可以完成一些计算机工作和作图功能),可以方便地让用户随意地开发自己的命令、标准库文件和各种应用程序等。 S}rW=hO  
    ;-koMD!2F  
    图形管理是CAD应用的一个重要内容,是CAD应用中较为繁琐、较为困难的部分之一。用户在实际应用中总是为图形太多无法管理大伤脑筋。本文提供了一个图形库创建和管理的方法,其最终效果是展示一个方便快捷、图文并茂的直观的图形库。 u$ZahN!  
    <A,G:&d~  
    二、 方案设计 ]eJjffx  
    jR^>xp;  
    1、实现方案 (!nhU  
    Q7]VB p4  
    许多AutoCAD用户在图形库的创建和管理方面都使用一种较为简便的方法:将图形文件命名为能体现其图形内容的名称,然后将其分类存入特定的文件夹。这种方法的优点在于简便快捷,但其不方便、不直观的缺点却更为突出。 p?X`f#  
    kS$HIOt823  
    针对上述的简便方法,本文提出的方案方便、直观且内置于AutoCAD中。该方案如下: (]yOd/ru/C  
    3??*G8Yp  
    ●生成所有图形的幻灯片文件; I\0mmdi73  
    2HNH@K  
    ●在AutoCAD初始化界面的下拉菜单区加入“图形库”菜单条,此菜单条包含“机械图库”和“电子图库”两个菜单项; o >=YoG  
    ZZa$/q"  
    ●点击“机械图库”和“电子图库”两个菜单区弹出相应的图标菜单,在图标菜单中可以看到图形文件标识名和相应的图形(幻灯片); %0PZZl5b  
    $cLtAo^W  
    ●在图标菜单中拾取图形弹出一幅对话框,该对话框给出图形的一些文字信息(如:作者, 图形内容, 绘图日期, 图号等)和图形的预览; 'ErtiD  
    =~&Fq$$  
    ●点击对话框的确定按钮即可打开拾取的图形文件。 |xTf:@hgHf  
    `NC{+A  
    2、方案论证 'CDRb3w}B  
    p1=sDsLL  
    该方案的关键在于图标菜单和对话框。 ql%>)k /x  
    eTc0u;{V  
    ●图标菜单: r"a4 ;&mf  
    2 AZ[gr@c  
    图标菜单是AutoCAD菜单的一种。图标菜单以20个为一组显示幻灯片,并同时显示一个包含有幻灯片名或其他文字的滚动列表框。图标菜单的长度不受限制,如果一个图标菜单包含的幻灯片多于20个AutoCAD会提供换页按钮,以便让用户换页显示更多的幻灯片。因此,可以利用AutoCAD的开放型体系结构上的二次开发定制图标菜单来对图形库进行管理。 P^%.7C  
    $+Hv5]/hb  
    图标菜单也有不足之处。图标菜单的一个页面需显示20幅幻灯片,所以只能从中获得比较概略的图形信息(尤其是复杂图形)。所以,需要采取一定的辅助措施来对使用图标菜单的缺陷进行弥补。 ;mXr])J  
    h-1eDxK6  
    ●对话框: 9Q".166  
    g5)f8k0+ t  
    从用户观点来看,窗口操作环境是目前最先进最流行的一种人机交互界面。它能控制光栅扫描型显示器和以鼠标器为代表的输入设备, ba?]eK   
    Fc;)p88[  
    向用户提供了图文并茂的可视化环境,是操作更为直观、自然、简便和快速。 6 m5\f  
    <!\J([NM8  
    AutoCAD R12以上版本提供了一种对话框语言(Dialog-box Control j.GpJDq  
    c7jft|4S  
    Language,缩写为DCL),允许用户设计并实现自己的对话框。因此, 可以使用对话框语言编程来对图标菜单中图形进行放大并提供图标菜单中不能提供的文字信息。 - v9V/LJ  
    LB1.N!q1  
    三、 开发环境 H ~c+L'=  
    (U/xpj}  
    ●486以上微机 lqOv_q  
    P 7 [p$Z  
    ●win95或win98操作系统 2-| oN/FD  
    )gNHD?4x  
    ●AutoCAD R12以上版本(本文提供方案在R12、R13、R14中都能实现,但本文提供的开发步骤主要是在R14中实现) v=:RxjEx  
    I\sCH  
    四、 开发步骤 bw{%X  
    %@U<|9 %ua  
    1、建立图形库文件夹 voaRh@DZ%/  
    S<Q6b_D  
    在AutoCAD目录下创建文件夹Storeroom,将需要进入图形库进行管理的图形文件存入该文件夹。 J4te!,  
    ru)%0Cyx  
    2、制作幻灯片库(*.SLB) FXFQ@q*}v  
    \z8TYx@  
    ◆制作幻灯片文件(*.SLD) p/WEQ2   
    &adKKYN  
    在当前视窗中打开图形文件,并将图形移到屏幕中央。然后在命令行键入MSLIDE命令并在“Creat slide ^!|BKH8>f%  
    u~?]/-.TY  
    file”框中键入幻灯片名(按下〈return〉键则将当前图形名作缺省幻灯片名接受)。为了创建幻灯片库,将所有幻灯片文件保存到AutoCAD目录下的support子目录中。 Z{RgpVt  
    ;W#G<M&n'  
    ◆创建幻灯片列表文件(*.txt) +bd/*^  
    J6Mm=bO5  
    假设有mach001.dwg~mach030.dwg共30个图形文件和对应的mach001.sld~mach030.sld共30个幻灯片文件,编辑如下文件(文件名为mach.txt): * Yov>lO  
    .+aSa?h_  
    mach001.sld 9 4W9P't  
    2o/}GIKj  
    mach002.sld F1?@tcr'  
    D?]aYCT  
    mach003.sld THK)G2 =  
    Cs%'Af  
    . xJ%b<y{@  
    e )\s0#  
    mach030.sld 4MRHz{`wa  
    %Q}#x  
    ◆幻灯片库的建立 :4Sj2  
    -BACdX  
    使用AutoCAD的support目录中的实用程序slidelib,将幻灯片文件按照文件列表构造成幻灯片库mach.slb: 1k l4X3q6  
    g<KBsz!{  
    slidelib mach xgJ2W_  
    &#g;=jZ  
    3、编写对话框文件(*.dcl) ` M"Zq  
    =g/K>B  
    对话框主要是展示一个图文并茂的图形库中的图形,在对话框中不仅要有图形预览,还要有该图形的一些文字说明。假设图形库中的mach001.dwg是一个绘制轴承的图形文件:图号为mach-001,则可编制如下对话框文件(文件名为mach001.dcl): !e.@Xk.P6  
    W3 2mAz;  
    dcl_settings:default_dcl_settings{audit_level=0;} ux VXnQQ  
    )R{4"&&2  
    accept_button:ok_button{ J_U1eSz<j  
    {Ca#{LeLk  
    label="确定"; K*;=^PY  
    3,tKqR7g  
    key="accept";  UX2`x9  
    H*yX Iq:  
    } j4H,*fc  
    -YHlVz  
    can_button:cancel_button{ 6E@r9U  
    z7{b>oub('  
    label="取消"; b)$<aFl  
    &{y- }[~  
    key="cancel"; kHX- AsRc  
    X,x{!  
    } tB}&-U|t[~  
    v8 ggPI  
    mach001:dialog{ #12PO q  
    +n^$4f  
    label="机械图库—mach001"; Lc+wS@  
    K!HSQ,AC  
    :row{ gGe `w  
    W?F+QmD  
    :column{ 292e0cE  
    lXW.G  
    :text{ a,M7Bb x  
    Jan73AOX  
    label="图 号:mach-001"; |CY.Y,  
    l5D8DvJCj  
    key="num"; OPBnU@=R  
     U`IDZ{g  
    width=20; *8,]fBUq  
    8WZM}3x$f{  
    fixed_width=true; ,V.X-`Y  
    >=6tfLQ  
    } EmVE<kY .  
    kVy%y"/  
    …… ggJn oL  
    ~WehG<p v[  
    :image{ qL,!  
    C{-e(G`Yd  
    key="img";  9'\18_w  
    4mQ:i7~  
    width=40; g"hm"m}i  
    _CciU.1k&,  
    height=20; _rY,=h{+  
    HPg@yx"U  
    } +P6q wh\v  
    HKb8z@;%@  
    } k^S=i_ U  
    2^E.sf$f  
    spacer_1; q *mNVBy  
    a5:YP  
    :row{ *(PGL YK  
    m/Q@-  
    :text{ iaLsIy#h  
    y5RcJM  
    label=" "; b Zn:q[7  
    + ( `  
    } 1<\@i{;xsU  
    -s,^_p{H  
    accept_button; (w-z~#<  
    tTLD6#  
    can_button; :text{ '_@Y  
    Jj8z~3XnJ  
    label=""; .`)\GjDv  
    fJH09:@^%  
    } } V&eti2 &zO  
    m`}! dBi  
    } 0;#%KC,  
    ?76Wg::  
    4、编制对话框控制程序(*.lsp) 8&IsZPq%l  
    =%%\b_\L  
    下面给出对话框文件mach001.dcl的控制程序mach001.lsp: ^}8(o  
    I_6?Q^_uZ  
    (defun mach001() Nh^T,nv*l  
    sbjAZzrX2i  
    (setq dcl_id (load_dialog "mach001.dcl")) D}>pl8ke~g  
    1j`-lD  
    (if (not (new_dialog "mach001" dcl_id)) SsIy;l  
    +%OINMo.A  
    (exit)) lF2im5nZ?  
    t>)iC)^u  
    (action_tile "accept" "(draw001)") /!=uM .  
    j\B]>PP5  
    (action_tile "cancel" "(done_dialog)") zcF~6-aQ  
    o8-BTq8  
    (setq x (dimx_tile "img") r/$+'~apTk  
    9TIyY`2!  
    y (dimy_tile "img")) 6iV jAxR  
    .{1G"(z  
    (start_image "img") :2pd2S  
    &=Gz[1 L  
    (fill_image 0 0 x y 0) WS/^WxRY  
    2?u>A3^R  
    (slide_image 0 0 x y "mach(mach001)") 5Q#;4  
    ?l! L )!2  
    (end_image) y>Zvose  
    1P. W 34  
    (start_dialog) MUhC6s\F  
    \_Nr7sc\  
    (unload_dialog dcl_id) 11glFe  
    / *RDy!m  
    ) &tB|l_p_-p  
    Jkzt=6WZ0  
    (defun draw001()command "open""mach001") ?&I gD.  
    K{.s{;#  
    5、编制图标菜单 x|d Xa0=N_  
    bE#=\kf|  
    本文通过修改AutoCAD主菜单acad.mnu来实现,其操作步骤如下: P~Q5d&1SO  
    uSLO"\zysX  
    ●在AutoCAD主菜单acad.mnu中加入自己的图标菜单区 zpV@{%VSj  
    lhw]?\  
    AutoCAD主菜单acad.mnu中的“***IMAGE”表示图标菜单区,对应幻灯片库中的幻灯片、对话框和对话框的控制程序,在图标菜单区加入以下内容(本文给出的是机械图库的图标菜单,电子图库的图标菜单与此类似): \(Dq=UzQI  
    gcqcY  
    ***IMAGE #~3x^ 4Y  
    Fvf308[  
    **mach jb~a z  
    T)&J}^j  
    [电子图库] 1mhX3  
    5LbU'5  
    [mach(mach001,mach001)]^C^C(load "mach001");(mach001); ?Z0T9e<  
    EAn}8#r'(8  
    [mach(mach002,mach002)]^C^C(load "mach002");(mach002); L+LxS|S+M  
    ,Dfq%~:grT  
      7 Bm 18  
    4!p ~Mr[E  
    [mach(mach030,mach030)]^C^C(load "mach030");(mach030); *vc=>AEc  
    F`S OF O  
    ●将图标菜单的加载放到AutoCAD下拉菜单区 79U Th@r}  
    no- Lx-x  
    在菜单文件acad.mnu中的***POP10(下拉菜单第十区)前加入如下内容(同时将***POP10改为***POP11): 1@q~(1-o  
    ^"7tfo8  
    ***POP10 %VOn;_Q*B  
    _ I8L#4\(=  
    [图形库] o90SXa&l/  
    Zx,R6@l  
    ID-ELE[电子图库]$I=ACAD.ELE + G;_QE<V~_  
    "~Twx]Z  
    $I=ACAD.* !`q*{Ojx  
    &,4]XT  
    ID-MACH[机械图库]$I=ACAD.MACH + A`Q'I$fj  
    #gq4%;  
    $I=ACAD.* Q}FDu,  
    Zq=t&$*  
    ●将修改后的菜单文件用AutoCAD中的menu命令编译成acad.mns即可。 OLJb8kO  
    u3vBMe0v[  
    五、 应用效果 Z)EmX=  
    bq[j4xH0X  
    进入AutoCAD操作界面后,会发现在下拉菜单区出现了“图形库”菜单项。点击下拉菜单“图形库”菜单项,弹出相应的下拉菜单项,包括“机械图库”和“电子图库”。选择“机械图库”或“电子图库”菜单项(本文使用的是“机械图库”菜单项),弹出图1所示图标菜单。通过鼠标双击图标菜单左边的列表框中的列表项或右边的图标则可弹出图2所示的对话框,该对话框给出了一些与图形有关的信息。也可以先用鼠标拾取一个列表项或图标,再点击“ok”按钮弹出对话框。对话框给出了放大的幻灯片和该幻灯片的信息。点击“确定”按钮则打开图形文件。点击“取消”按钮则不打开图形文件并关闭对话框。 ;<`F[V Zau  
    pW7vY)hj  
    六、 结束语 0JQy-hpF  
    pA%XqG*=Y  
    图形管理是CAD应用的一个重要内容,是CAD应用中较为繁琐、较为困难的部分之一。不同的用户可以有不同的图形管理方案,本文提出的方案完全基于AutoCAD的开放体系结构提供的Autolisp语言和DCL语言,旨在利用AutoCAD提供的上述两种解释性语言,以使AutoCAD用户能方便地应用。
     
    光行天下网站、公众号广告投放、企业宣传稿件发布,请联系QQ:9652202,微信号:cyqdesign
    分享到
    离线823477914
    发帖
    5
    光币
    5
    光券
    0
    只看该作者 1楼 发表于: 2009-04-05
    没人 .w/#S-at  
    ...