¼¸ºÎ³ß´çÓ빫²îÂÛ̳------ÖÂÁ¦ÓÚ²úÆ·¼¸ºÎÁ¿¹«²î±ê×¼GD&T (GDT:ASME)|New GPS(ISO)Ñо¿/CADÉè¼Æ/CAM¼Ó¹¤/CMM²âÁ¿

¼¸ºÎ³ß´çÓ빫²îÂÛ̳------ÖÂÁ¦ÓÚ²úÆ·¼¸ºÎÁ¿¹«²î±ê×¼GD&T (GDT:ASME)|New GPS(ISO)Ñо¿/CADÉè¼Æ/CAM¼Ó¹¤/CMM²âÁ¿ (http://www.dimcax.com/hust/index.php)
-   ObjectARX(AutoLISP£© (http://www.dimcax.com/hust/forumdisplay.php?f=178)
-   -   ÓÃautocadµ÷ÓÃÍⲿdllÎļþµÄÎÊÌ⣨vba·½Ã棩 (http://www.dimcax.com/hust/showthread.php?t=12402)

yang686526 2009-04-27 11:05 AM

ÓÃautocadµ÷ÓÃÍⲿdllÎļþµÄÎÊÌ⣨vba·½Ã棩
 
ÓÃ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»ÐУ¬ÎÒÔÙ×ÁÄ¥×ÁÄ¥°É¡£ÊéûÓÐÅä¹âÅÌ£¬ËùÒÔû°ì·¨£¬Ö»Äܰ´ÊéÉϵÄÇýøÈ¥ÊÔÁË¡£


ËùÓеÄʱ¼ä¾ùΪ±±¾©Ê±¼ä¡£ ÏÖÔÚµÄʱ¼äÊÇ 05:42 AM.