Excel Auto Cad Vba Automation

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Excel Auto Cad Vba Automation - Presentation Transcript

    1. øng dông VBA Automation trong viÖc trao ®æi d÷ liÖu gi÷a Excel víi AutoCad Phan Tù H−íng, Tr−êng §¹i häc Má- §Þa chÊt Tãm t¾t: B i b¸o n y tr×nh b y kh¶ n¨ng tù ®éng ho¸ trao ®æi d÷ liÖu gi÷a Excel v AutoCad bëi chøc n¨ng Automation cña ng«n ng÷ lËp tr×nh VBA (Visual Basic for Applications) ë trong chóng. øng dông n y kh«ng chØ ¸p dông trong lÜnh vùc §Þa chÊt c«ng tr×nh (§CCT) m cßn rÊt h÷u hiÖu ®èi víi c¸c b i to¸n kü thuËt kh¸c, rót ng¾n ®¸ng kÓ thêi gian thùc hiÖn v kÕt qu¶ ®¶m b¶o chÝnh x¸c cao. C«ng nghÖ trao ®æi d÷ liÖu n y ® ®−îc øng dông trong phÇn mÒm vÏ mÆt c¾t §CCT GeoSection do T¸c gi¶ lËp. 1. §Æt vÊn ®Ò VBA l mét ng«n ng÷ lËp tr×nh h−íng ®èi t−îng cã kh¶ n¨ng ph¸t triÓn øng dông m¹nh mÏ víi nhiÒu tÝnh n¨ng phong phó. VBA ®−îc tÝch hîp trong m«i tr−êng Office v AutoCad víi c¸c chøc n¨ng gÇn t−¬ng tù nhau (h×nh 1, 2). VBA Automation (sau ®©y gäi t¾t l Automation) l mét d¹ng c«ng nghÖ COM (Component Object Model) trong gia ®×nh Microsoft Window, cho phÐp giao tiÕp (hay truyÒn th«ng) gi÷a c¸c phÇn mÒm víi nhau. COM l kiÕn tróc lËp tr×nh ®−îc ph¸t triÓn bëi Microsoft, môc ®Ých l t¹o ra mét c«ng nghÖ chuÈn cho phÐp x©y dùng ch−¬ng tr×nh theo m« h×nh l¾p ghÐp (component) hay sö dông c¸c s¶n phÈm ® ®−îc ho n thiÖn tõ tr−íc theo tiªu chuÈn COM. Automation cho phÐp ®iÒu khiÓn c¸c ®èi t−îng trong øng dông kh¸c tõ bªn ngo i, hoÆc gäi c¸c ®èi t−îng m cã thÓ thùc thi b»ng nh÷ng tËp lÖnh. VÝ dô nh− cã thÓ ®iÒu khiÓn Excel tõ Word hay AutoCad (v ng−îc l¹i) gièng nh− thùc hiÖn trùc tiÕp trªn øng dông ®ã. ViÖc ®iÒu khiÓn Excel hay AutoCad tõ c¸c ng«n ng÷ lËp tr×nh VB6, VB.NET, C#,... b»ng c«ng nghÖ COM ® ®−îc nhiÒu ng−êi sö dông, cßn gi÷a Excel víi AutoCad rÊt Ýt ®Ò cËp v rÊt hiÕm t i liÖu h−íng dÉn vÒ kiÓu ®iÒu khiÓn n y. T¹i sao chØ ®Ò cËp viÖc trao ®æi d÷ liÖu gi÷a hai phÇn mÒm Excel v AutoCad? Bëi Excel l phÇn mÒm chuyªn vÒ b¶ng tÝnh v biÓu ®å víi kh¶ n¨ng tÝnh to¸n, xö lý d÷ liÖu tuyÖt vêi nhÊt hiÖn nay nh−ng kh¶ n¨ng ®å ho¹ kÐm. AutoCad l phÇn mÒm v o h ng ®Çu lÜnh vùc ®å ho¹ nh−ng l¹i yÕu vÒ tÝnh to¸n, viÖc xö lý v qu¶n lý d÷ liÖu bÞ h¹n chÕ. Trong khi ®ã, c¶ hai phÇn mÒm n y ®Òu ®−îc sö dông réng r i trong c¸c ng nh kü thuËt nh− §Þa chÊt, Tr¾c ®Þa, Khai th¸c Má, X©y dùng, Giao th«ng,... ViÖc t¹o mèi liªn kÕt gi÷a hai phÇn mÒm trªn sÏ kh¾c phôc nh÷ng mÆt h¹n chÕ trªn ®ång thêi khai th¸c triÖt ®Ó chóng trong chuyªn m«n. B¶n th©n hai phÇn mÒm trªn ®Òu ®−îc tÝch hîp ng«n ng÷ 1
    2. lËp tr×nh øng dông VBA, mét d¹ng ng«n ng÷ lËp tr×nh Visual Basic (VB) dÔ häc, rÊt phæ biÕn v ®ang ®−îc gi¶ng d¹y trong m«n Tin häc §¹i c−¬ng cña Tr−êng §¹i häc Má - §Þa chÊt. H×nh 1: Cöa sæ VBA trong Excel H×nh 2: Cöa sæ VBA trong AutoCad Excel VBA Automation AutoCad H×nh 3: M« h×nh trao ®æi d÷ liÖu gi÷a Excel v AutoCad Th«ng th−êng, b i to¸n trong lÜnh vùc kü thuËt ®−îc gi¶i quyÕt theo 3 b−íc nh− sau: NhËp, l−u d÷ liÖu TÝnh to¸n, xö lý ThÓ hiÖn kÕt qu¶ ban ®Çu d÷ liÖu b»ng h×nh vÏ (1) (2) (3) H×nh 4: M« h×nh gi¶i quyÕt b i to¸n liªn quan ®Õn lÜnh vùc kü thuËt 2
    3. Nh− trong h×nh 4, c¸c b−íc (1), (2) thùc hiÖn trong Excel, cßn b−íc (3) sÏ thùc hiÖn trong AutoCad. B i to¸n vÏ h×nh trô hè khoan, mÆt c¾t §CCT hay b i to¸n thiÕt kÕ khoan næ m×n (lÜnh vùc Khai th¸c Má), vÏ b×nh ®å tr¾c däc (lÜnh vùc ®o ®¹c),... cã thÓ sö dông m« h×nh trªn. NÕu chØ sö dông c¸c c«ng cô s½n cã hoÆc lËp tr×nh VBA (riªng tõng øng dông) th× viÖc tù ®éng ho¸ chØ cã thÓ ®¹t ®−îc mét phÇn, cßn tõ b−íc (2) sang b−íc (3) kh«ng thùc hiÖn ®−îc. §Æc biÖt víi nh÷ng b i to¸n cã sè l−îng d÷ liÖu lín sÏ g©y tèn kÐm thêi gian thùc hiÖn, trong khi ®ã sÏ rÊt ®¬n gi¶n khi dïng Automation. Cßn nÕu sö dông VBA AutoCad, VB6, VB.NET hay C++,... thùc hiÖn b i to¸n trªn sÏ phøc t¹p v× ph¶i x©y dùng to n bé ch−¬ng tr×nh tÝnh theo m«i tr−êng ®ã. §iÒu n y ho n to n kh«ng dÔ thùc hiÖn. 2. KÕt qu¶ nghiªn cøu Trong khu«n khæ b i b¸o, lÊy vÝ dô vÒ néi dung chÝnh cña ch−¬ng tr×nh lËp h×nh trô hè khoan (trÝch tõ ch−¬ng tr×nh vÏ mÆt c¾t §CCT GeoSection). §Ó thùc hiÖn ®−îc ch−¬ng tr×nh n y, cÇn ph¶i hiÓu ®−îc c¸c ®èi t−îng cïng víi thuéc tÝnh, ph−¬ng thøc cña chóng trong Excel v AutoCad. C¸c b−íc x©y dùng ch−¬ng tr×nh nh− sau: B−íc 1: Khai b¸o tham chiÕu ®Õn th− viÖn øng dông §Çu tiªn, cÇn ph¶i khai b¸o tham chiÕu ®Õn th− viÖn øng dông cÇn thùc hiÖn b»ng c¸ch chän References trong menu Tools cña cöa sæ VBA (h×nh 1, 2) theo: - Víi VBA Excel: chän AutoCad 2004 Type Library (h×nh 5) - Víi VBA AutoCad: chän Microsoft Excel 11 Object Library (h×nh 6) H×nh 5: Tham chiÕu tíi th− viÖn AutoCad tõ VBA trong Excel Gi¸ trÞ sè trong c¸c tham chiÕu trªn phô thuéc v o phiªn b¶n Office v AutoCad nªn cã thÓ kh¸c nhau gi÷a c¸c m¸y tÝnh, vÝ dô trªn sö dông AutoCad 2004 v Office 2003. Khi ® khai b¸o tham chiÕu nh− trªn, th− viÖn ®èi t−îng Excel (hoÆc AutoCad) dÔ 3
    4. d ng ®−îc hiÓn thÞ trong cöa sæ VBA AutoCad (hoÆc Excel) bëi chøc n¨ng trî gióp Auto List Members. C«ng viÖc n y rÊt h÷u Ých gióp chóng ta dÔ d ng ®iÒu khiÓn øng dông n y tõ VBA cña øng dông kh¸c gièng nh− thùc hiÖn tõ chÝnh b¶n th©n chóng. H×nh 6: Tham chiÕu tíi th− viÖn Excel tõ VBA trong AutoCad B−íc 2: X©y dùng b¶ng nhËp d÷ liÖu ®Çu v o trong Excel Sè liÖu nhËp thùc hiÖn trªn b¶ng tÝnh Excel bao gåm sè hiÖu, ®é s©u, tªn c¸c líp ®Êt ®¸ cïng víi ký hiÖu ®Þa tÇng, tû lÖ ®øng,...(h×nh 7). Ngo i ra, cã thÓ sö dông c¸c chøc n¨ng s½n cã, c¸c h m v thñ tôc trong VBA Excel ®Ó ho n thiÖn b¶ng tÝnh. H×nh 7: B¶ng nhËp gi¸ trÞ ®Çu v o v hç trî tªn ký hiÖu líp trong Excel B−íc 3: X©y dùng ch−¬ng tr×nh xö lý, chuyÓn ®æi d÷ liÖu gi÷a Excel v AutoCad §©y l néi dung chÝnh cña ch−¬ng tr×nh, tr−íc hÕt cÇn ph¶i x©y dùng thñ tôc khëi ®éng m«i tr−êng øng dông v x¸c ®Þnh ®èi t−îng tham chiÕu. H×nh 8 v 9 thÓ hiÖn néi dung thñ tôc khëi ®éng øng dông Excel v AutoCad. C¸c thñ tôc ®ã ®Òu sö dông ph−¬ng thøc GetObject v CreadObject ®Ó tham chiÕu v t¹o ®èi t−îng øng dông Automation ®Ó cã thÓ truy cËp, ®iÒu khiÓn. §èi t−îng cña øng dông tham chiÕu ®Õn l AcadApp (AcadApplication) hay ExcelApp (Excel.Application) m chóng ta cã kÕt nèi v trao ®æi d÷ liÖu gi÷a hai øng dông Excel v AutoCad (h×nh 10). 4
    5. H×nh 8: Thñ tôc ®Ó khëi ®éng AutoCad tõ VBA Excel H×nh 9: Thñ tôc ®Ó khëi ®éng Excel tõ VBA AutoCad Khi øng dông ® ®−îc më, cã thÓ tham chiÕu ®Õn c¸c ®èi t−îng bªn trong ExcelApp (hay AcadApp) nh− m« t¶ phÝa d−íi. - §iÒu khiÓn AutoCad tõ VBA Excel: §Ó vÏ mét ®o¹n th¼ng DuongL (tõ ®iÓm Startpoint ®Õn Endpoint) trong b¶n vÏ AutoCad ®ang kÝch ho¹t (ActiveDocument) th× sö dông dßng lÖnh Set DuongL = AcadApp.ActiveDocument.ActiveDocument.ModelSpace. AddLine(Startpoint, Endpoint) - §iÒu khiÓn Excel tõ VBA AutoCad: §Ó g¸n gi¸ trÞ trong « B2 b»ng 5 trong worksheet \"Khai bao\" cña workbook \"Hinhtru.xls\" th× sö dông dßng lÖnh ExcelApp.Workbooks(\"Hinhtru.xls\").Worksheets(\"Khai bao\").Range(\"B2\").Value= 5 Hai dßng lÖnh trªn sö dông ®èi t−îng AcadApp v ExcelApp ®Ó tham chiÕu tíi, cßn c¸c ®èi t−îng bªn trong cïng víi ph−¬ng thøc, thuéc tÝnh cña chóng ®−îc sö dông nh− ®èi víi VBA chøa trong chóng. C«ng viÖc x©y dùng ch−¬ng tr×nh ®−îc thùc hiÖn ®ång thêi trong VBA Excel v VBA AutoCad ®Ó cã sù so s¸nh trong tõng øng dông. Trong 5
    6. ph¹m vi b i b¸o n y kh«ng thÓ tr×nh b y hÕt néi dung ch−¬ng tr×nh(xem chØ dÉn ë phÇn t i liÖu tham kh¶o). ExcelApp VBA Automation AcadApp Workbooks ActiveDocument Workbook Line Point Worksheets Worksheet Polyline ModelSpace Hatch Range Text Text MText Cells H×nh 10: M« h×nh tham chiÕu ®Õn c¸c ®èi t−îng chÝnh trong ExcelApp v AcadApp H×nh 11: KÕt qu¶ vÏ h×nh trô hè khoan v mét sè ®èi t−îng vÏ chÝnh 3. KÕt luËn Chøc n¨ng Automation gióp chóng ta x©y dùng c¸c ch−¬ng tr×nh cã kh¶ n¨ng tù ®éng ho¸ trao ®æi d÷ liÖu gi÷a c¸c m«i tr−êng kh¸c nhau trong Window (nh− Word, Excel, Powerpoint, Access, AutoCad,...). Sù kÕt hîp gi÷a Excel, AutoCad cïng víi ng«n ng÷ lËp tr×nh VBA tÝch hîp bªn trong cã thÓ gi¶i quyÕt ®−îc nhiÒu b i to¸n kh¸c nhau trong lÜnh vùc kü thuËt. 6
    7. H×nh 12: KÕt qu¶ vÏ mÆt c¾t §CCT Tµi liÖu tham kh¶o 1. Phan Tù H−íng, LËp tr×nh VBA trong Excel, NXB Thèng kª, H Néi, 2008. 2. Steven M.Hansen, Mastering Excel 2003 Programming with VBA, Sybex, 2004. 3. Autodesk, AutoCad 2004 ActiveX and VBA Developers' Guide, Autodesk, 2004. 4. Joe Sutphin, AutoCad 2006 VBA - A Programmer's Reference, Apress, 2005. 5. Néi dung ch−¬ng tr×nh t¹i http://www.giaiphapexcel.com/forum/showthread.php?p=89297#post89297 summary Application of VBA Automation for data exchange between Excel and AutoCad Phan Tu Huong, Hanoi university of Minening and Geology The paper presents the ability of data exchange between Excel and AutoCad by using VBA (Visual Basic for Applications) that is available in the softwares. The application is useful not only Engineering geology but also for solving other technical problems. Is helps to save time and human force. This application is successfully used for the establishment of engineering geological sections with the GeoSection software programmed by the author. 7
    SlideShare Zeitgeist 2009

    + lsxinhlsxinh Nominate

    custom

    1156 views, 0 favs, 0 embeds more stats

    A article guide to use VBA Automation to link AutoC more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 1156
      • 1156 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 15
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?