ÓÃautocadµ÷ÓÃÍⲿdllÎļþµÄÎÊÌ⣨vba·½Ã棩
www.dimcax.com
ÓÃautocadµ÷ÓÃÍⲿdllÎļþµÄÎÊÌ⣨vba·½Ã棩
ÎÒÏÈÓÃvisual basic´´½¨ÁËÒ»¸ödllÎļþ£¨¡°externalfunction.dll¡±£©£¬È»ºóÔÚϵͳÖÐ×¢²á³É¹¦£¬ÔÚautocad vbaÖбàд³ÌÐòµ÷ÓÃÕâ¸ödllÎļþʱ³ö´í£º
´íÎóÐÅÏ¢£º¼ÓÔØÓ¦ÓóÌÐòʱ³öÏÖÎÊÌâ
ÎÒÊǰ´ÕÕÊéÉϵIJ½Öè×öµÄ£¬¿´Á˰ëÌìÒ²²»ÖªµÀÊÇÄÄÀï³ö´íÁË
private sub commandbutton1_click()
dim vb6dll as object
dim vb6functionreturnvalue as long
dim xlength as double, ylength as double, zlength as double
on error goto overflow
if not (isnumeric(textbox1.text)) then
msgbox "the x length must be numeric!", vbexclamation
textbox1.setfocus
exit sub
end if
xlength = cdbl(textbox1.text)
if not (isnumeric(textbox2.text)) then
msgbox "the y length must be numeric!", vbexclamation
textbox2.setfocus
exit sub
end if
ylength = cdbl(textbox2.text)
if not (isnumeric(textbox3.text)) then
msgbox "the z length must be numeric!", vbexclamation
textbox3.setfocus
exit sub
end if
zlength = cdbl(textbox3.text)
on error goto errortrap
set vb6dll = thisdrawing.application.getinterfaceobject("externalfunction.dll")
vb6functionreturnvalue = vb6dll.cubevolume(xlength, ylength, zlength)
textbox4.text = vb6functionreturnvalue
exit sub
errortrap:
msgbox "an error was generated. the error description is:" & err.description, vbexclamation
exit sub
overflow:
msgbox "one of the lengths entered is too large,please try again.", vbexclamation
exit sub
end sub
£¨¡°externalfunction.dll¡±ÎļþµÄ´úÂ룺
public function cubevolume(xlength as double, ylength as double, zlength as double) as double
cubevolume = xlength * ylength * zlength
end function
ÕâÊÇÒ»¸öÇóÁ¢·½ÌåÌå»ýµÄº¯Êý¡££©
Çë¸÷λÀÏʦ°ïæ¿´¿´ÊÇÄÄÀïµÄÎÊÌ⣬ÎÒ¾õµÃÊǺì×ÖÄDz¿·ÖÓÐÎÊÌ⡣лл£¡
ÎÒ°Ñvb¹¤³ÌÀïµÄÀàÃû¸Ä³ÉÁËmyclass,ÓÖÖØÐÂÉú³Émyclass.dll×¢²áÒ»´Î£¬»¹ÊDz»ÐУ¬¸½¼þ
http://www.dimcax.comÏÂÔØ´ÎÊýÀïÊÇÔ´...ëÀÏʦ°ïæ¿´¿´¡£
µ÷ÓÃÍⲿdll
°ÑÄãµÄÔ´³ÌÐò´«ÉÏÀ´£¬ÎÒ¸øÄã¸Äһϲ»¾ÍµÃÁË
ÉèÖöϵ㣬²½²½µ÷ÊÔ²»¾ÍÖªµÀ´íÎóÔÚÄÄÁË£¿
dllÎÒÊǾ³£Ó㬵«ÊÇÄãµÄºì×Ö²¿·ÖÎÒµ½ÊÇûÓùý
Õâ¸öÓ¦¸ÃÊÇÊÇcad×Ô´øµÄsampleµÄ´úÂ룬¥Ö÷²Î¿¼µÄʱºò¿ÉÄÜû̫עÒâ
set vb6dll = thisdrawing.application.getinterfaceobject("externalfunction.dll") Õâ¾äд·¨²»ÕýÈ·
ÔexampleÖеĴúÂëÊÇÕâÑùдµÄ
set vb6dll = thisdrawing.application.getinterfaceobject("externalfunction.myclass")
µ÷ÓÃʱexternalfunction¹¤³ÌÃûºó»¹Òª¸úÉÏÀàÃû£¬myclassÈ¡¾öÓÚÄãvb¹¤³ÌÀïµÄÄǸöº¯ÊýËùÔÚµÄÀàÃû£¬ÓпÉÄÜÊÇclass1Ö®ÀàµÄ£¨ÒòΪvbĬÈÏÊÇÕâÑùÃüÃûµÄ£¬Òª¿´Äã¸Ä³ÉʲôÁË£©£¬²»ÖªµÀÕâÑù˵Çå³þÁËû...
ÄãÔÙÊÔÊÔ°É£¡good luck£¡
˳±ã˵һÏ£¬ÕâÖÖµ÷Ó÷½Ê½ÊÇcadÌṩµÄ£¬ºÍvb/vbaµ÷Ó÷½Ê½²»Ì«Ò»Ñù£¬Â¥Ö÷¿ÉÒÔÓÃÓÃÆäËû·½·¨µ÷ÓÃ
Ö§³ÖÂ¥ÉÏ£¬externalfunction.ÀàÃû³Æ£¬Äã¿ÉÒÔ°ÑactivexĿ¼ÏÂÃæµÄexternalcall.dvb´ò¿ª¿´Ò»¿´¾ÍÇå³þÀ²¡£
ûÓбØÒªÕâôÓã¬ÏÈÒýÓò»¾ÍµÃÁË£¬Èç¹û²»ÒýÓÃÄãÊÇÎÞ·¨ÖªµÀdllÀï¶¼ÓÐÄÄЩ¶ÔÏó·½·¨ºÍÊôÐÔµÄ
лл¸÷λÀÏʦָµ¼¡£4Â¥¡°set vb6dll = thisdrawing.application.getinterfaceobject("externalfunction.myclass")
µ÷ÓÃʱexternalfunction¹¤³ÌÃûºó»¹Òª¸úÉÏÀàÃû£¬myclassÈ¡¾öÓÚÄãvb¹¤³ÌÀïµÄÄǸöº¯ÊýËùÔÚµÄÀàÃû£¬ÓпÉÄÜÊÇclass1Ö®ÀàµÄ£¨ÒòΪvbĬÈÏÊÇÕâÑùÃüÃûµÄ£¬Òª¿´Äã¸Ä³ÉʲôÁË£©¡±
ÎÒºÃÏñÓеãÃ÷°×ÁË£¬ÎÒÔÙÊÔһϡ£
¿´À´ÈëÃÅÒªÁ˽âµÄ¶«Î÷»¹ºÜ¶à°¡¡£ÒÔºó»¹Òª¶àÏò¸÷λÀÏʦỊֽ̀¡
ÎÒ¸ÄÁËÀàÃû£¬»¹ÊDz»ÐУ¬¸½ÉÏÁËÔ´´úÂ룬ÇëÀÏʦÓпհïæ¸Ä¸Ä¡£
Õâ¸öºÍautocadµÄ°æ±¾ÓйØÏµÂð£¬ÎÒÓõÄ2008
:
ÎÒ¸ÄÁËÀàÃû£¬»¹ÊDz»ÐУ¬¸½ÉÏÁËÔ´´úÂ룬ÇëÀÏʦÓпհïæ¸Ä¸Ä¡£
Õâ¸öºÍautocadµÄ°æ±¾ÓйØÏµÂð£¬ÎÒÓõÄ2008
²»¹âÊÇÀàÃûµÄÎÊÌ⣬¹¤³ÌÃûºÍdllÎļþÃûµÃ±£³ÖÒ»Ö£¬Ò²¾ÍÊÇ˵dllÎļþµÄÃû³ÆÊDz»ÄÜËæ±ã¸ÄµÄ£¬±ÈÈçÄãÏÖÔڵŤ³ÌÃûÊÇ¡°¹¤³Ì1¡±£¬ÄÇô×îºó±àÒë³öÀ´Ò²µÃÊÇ¡°¹¤³Ì1.dll¡±£¬¹¤³ÌÃû¡¢ÀàÃû¶¼¶ÔÁË£¬ÀíÂÛÉϾÍûʲôÎÊÌâÁË£»
Èç¹ûÔÙ²»ÐУ¬ÄÇÄãÊÔÊÔsampleÖÐÌṩµÄ´úÂ룬Õâ¸ö´úÂë¿Ï¶¨ÊÇûÎÊÌâµÄ£¬ÔÙËüµÄ»ù´¡Éϸĸģ¬¶Ô±ÈÏ£¬ÈÝÒ×ÕÒµ½ÎÊÌâ
лл£¡¶¼¸ÄÁË£¬Ëƺõ»¹ÊDz»ÐУ¬ÎÒÔÙ×ÁÄ¥×ÁÄ¥°É¡£ÊéûÓÐÅä¹âÅÌ£¬ËùÒÔû°ì·¨£¬Ö»Äܰ´ÊéÉϵÄÇýøÈ¥ÊÔÁË¡£