¶þ´Î¿ª·¢CAD

3.11 Êý¾ÝÀàÐÍת»»º¯Êý

ÓÐʱ»áÒªÇóת»»Êý¾ÝÀàÐÍ£¬ÌرðÊǵ±Ê¹ÓÃacutPrintf()º¯ÊýÔÚÃüÁîÐÐÌáʾÓû§Ê±¡£±í3-10ÁгöÁËADSת»»º¯Êý¡£ ±í3-10 ³£ÓõÄADSת»»º¯Êý

º¯ Êý˵ Ã÷

acdbRToS() ת»»ads_realÀàÐ͵ÄÊýֵΪ×Ö·û´® acdbAngToS() °´¸ñʽת»»½Ç¶ÈΪ×Ö·û´® acutToUpper() °Ñ×Ö·ûת»»Îª´óд acutToLower() °Ñ×Ö·ûת»»ÎªÐ¡Ð´

acedTrans() °Ñµã»òÎ»ÒÆ´ÓÒ»¸ö×ø±êϵת»»µ½ÁíÒ»¸ö×ø±êϵ 1. acdbRToS()[ads_rtos()] acdbRToS()º¯ÊýµÄ¶¨ÒåÈçÏ£º

acdbRToS()º¯Êý°´ÕÕunitºÍprec(¾«¶È)ÉèÖõĸñʽ°Ñvalת»»Îª×Ö·û´®£¬½á¹û·ÅÈëstr£¬str±ØÐëÖ¸Ïò×ãÒÔÈÝÄɸñʽ»¯×Ö·û´®µÄÒ»¿é»º³åÇø¡£²ÎÊýunitѡȡת»»ºó×Ö·û´®µÄµ¥Î»ÖÆ£¬ÆäÖµÓ¦·ûºÏAutoCADϵͳ±äÁ¿LUNITSÔÊÐíµÄȡֵ·¶Î§(1~5£¬²ÎÔÄAutoCADÔÚÏß°ïÖúÖеġ°ÏµÍ³

±äÁ¿¡±)¡£Èç¹ûunit

µÄֵΪ-1£¬acdbRToS()º¯ÊýʹÓÃLUNITSµÄµ±Ç°Öµ¡£²ÎÊýprecѡȡ×Ö·û´®Öаüº¬µÄСÊýλÊý¡£Èç¹ûprecµÄֵΪ-1£¬acdbRToS()º¯ÊýʹÓÃAutoCADϵͳ±äÁ¿LUPRECµÄµ±Ç°Öµ¡£AutoCAD³ß´ç±ê×¢±äÁ¿DIMZINµÄµ±Ç°Öµ¿ØÖÆacdbRToS()º¯ÊýÊÇ·ñ°Ñǰµ¼ÁãºÍ½áβÁãдÈëstr¡£Èç¹ûacdbRToS()º¯Êýµ÷Óóɹ¦

£¬·µ»ØRTNORM£¬·ñÔò·µ»ØÒ»¸ö´íÎóÂë¡£

2. acdbAngToS()[ads_angtos()] acdbAngToS()º¯ÊýµÄ¶¨ÒåÈçÏ£º

acdbAngToS()º¯Êý°´ÕÕunitºÍprec(¾«¶È)ÉèÖõĸñʽ°Ñvת»»Îª×Ö·û´®£¬²ÎÊývÒÔ»¡¶ÈΪµ¥Î»£¬½á¹û·ÅÈëstr£¬str±ØÐëÖ¸Ïò×ãÒÔÈÝÄɸñʽ»¯×Ö·û´®µÄÒ»¿é»º³åÇø¡£×Ö·û´®µÄ´óСȡ¾öÓÚÇëÇóģʽºÍ¾«¶È£¬Í¨³£15×Ö½Ú¾Í×ã¹»ÁË¡£²ÎÊýunitѡȡ½Ç¶Èת»»ºóµÄµ¥Î»ÖÆ£¬ÆäÖµÓ¦·ûºÏAutoCADϵͳ±äÁ¿AU

NITSÔÊÐíµÄȡֵ·¶Î§¡£´ËÍ⣬Èç¹ûÉèÖÃunitµÄֵΪ-1£¬acdbAngToS()º¯ÊýʹÓÃAUNITSµÄµ±Ç°Öµ¡£²ÎÊýprecѡȡ×Ö·û´®Öаüº¬µÄСÊýλÊý¡£Èç¹ûprecµÄÖµÉèÖÃΪ-1£¬acdbAngToS()º¯ÊýʹÓÃAutoCADϵͳ±äÁ¿AUPRECµÄµ±Ç°Öµ¡£AutoCAD³ß´ç±ê×¢±äÁ¿DIMZINµÄµ±Ç°Öµ¿ØÖÆacdbAngToS()º¯ÊýÊÇ·ñ°Ñ

ǰµ¼ÁãºÍ½áβÁãдÈëstr¡£AutoCADÓû§Ö¸ÄÏ˵Ã÷ÁËDIMZINÈçºÎȡֵ¡£Èç¹ûacdbAngToS()º¯Êýµ÷Óóɹ¦£¬·µ»ØRTNORM£¬·ñÔò·µ»ØÒ»¸ö´íÎóÂë¡£

3. acutToUpper()[ads_toupper()]ºÍacutToLower()[ads_tolower()] acutToUpper()ºÍacutToLower()º¯ÊýµÄ¶¨ÒåÈçÏ£º

ÕâÁ½¸öº¯Êý·Ö±ð°Ñ×Ö·û²ÎÊý(ASCIIÂëÕûÊýÖµ)ת»»Îª´óд»òСд×Ö·û¡£

4. acedTrans()[ads_trans()] acedTrans()º¯ÊýµÄ¶¨ÒåÈçÏ£º

acedTrans()º¯Êý°Ñ×ø±êµã»òÎ»ÒÆÁ¿´ÓÒ»¸ö×ø±êϵͳת»»µ½ÁíÒ»¸ö×ø±êϵͳ¡£²ÎÊýpt¼È¿É½âÊÍΪһ¸öÈýάµã£¬Ò²¿É½âÊÍΪһ¸öÈýÎ¬Î»ÒÆÊ¸Á¿¡£²ÎÊýfromÖ¸¶¨ptËùÔÚµÄ×ø±êϵͳ£¬²ÎÊýtoÖ¸¶¨×ª»»ºóµÄ×ø±êϵͳ¡£Èç¹û²ÎÊýdisp²»µÈÓÚ0£¬Ôòpt±»¿´×÷ÊÇÒ»¸öÎ»ÒÆÊ¸Á¿£¬·ñÔòptÊÇÒ»¸öµã¡£ËµÃ÷acedT

rans()º¯Êý×îºÃµÄ·½·¨ÊÇͨ¹ýÀý×Ó¡£AutoCADʹÓõÄ×ø±êϵͳ´úÂëΪ£º1±íʾWCS(ÊÀ½ç×ø±êϵͳ)£¬2±íʾµ±Ç°µÄUCS(Óû§×ø±êϵͳ)¡£AutoCAD»¹¶¨ÒåÁË2ºÍ3£¬ÕâЩֵÎÒºÜÉÙʹÓã¬Äã¿ÉÒÔ²éÔÄÓйØÎĵµ¡£ ÏÂÃæÊÇÒ»¶Î´ÓUCSת»»µ½WCSµÄ³ÌÐò´úÂ룺

ÕâÊǵÚÒ»¶ÎûÓÐʹÓýá¹û»º³åÇøÖ¸ÕëµÄ³ÌÐò´úÂë¡£ÔÚº¯ÊýÖÐÉùÃ÷½á¹û»º³åÇøÀàÐ͵ıäÁ¿Îª¾Ö²¿±äÁ¿£¬ÔÚº¯ÊýÍ˳öʱ»á×Ô¶¯Çå³ý£¬ÎÞÐèµ÷ÓÃacutRelRb()º¯Êý¡£È»¶ø£¬Çë×¢Òâ±ØÐëÔÚresbuf ±äÁ¿µÄÇ°Ãæ·ÅÉÏ&ÔËËã·û£¬ÒòΪacedTrans()º¯ÊýÐèÒªÒ»¸öÖ¸Ïò resbuf ½á¹¹µÄÖ¸Õë(»òµØÖ·)¡£

3.12 Ó¦ÓóÌÐòʵÀýCH3_2

ÔÚ±¾Ó¦ÓóÌÐòÖУ¬ÎÒÃÇÔÙ´Îʾ·¶ÁËacedGetXXX()ÀຯÊýµÄʹÓ㬻¹Ê¾·¶ÁËÑ¡Ôñ¼¯º¯ÊýµÄʹÓᣵ±Ñ­»·Í¨¹ýÑ¡Ôñ¼¯Ê±£¬»¹Ê¾·¶ÁËÔõÑùÀûÓýá¹û»º³åÇøÁ´±í¸Ä±äÑ¡Ôñ¼¯ÖÐʵÌåµÄÌØÐÔ¡£ÔÚÒ»¸ö´¿´âµÄObjectARXÓ¦ÓóÌÐòÖУ¬¸Ä±äʵÌåµÄÌØÐÔÊÇÓÉÏàӦʵÌåÀàÖеÄgetºÍsetº¯ÊýÍê³ÉµÄ¡£ÎÒÃÇÏÈÀ´¹Û²ì

Ó¦ÓóÌÐòʵÀýCH3_2µÄ³ÌÐò´úÂ룬ȻºóÌÖÂÛÆäÒªµã¡£CH3_2.CPPÎļþÄÚÈÝÈçÏ£º Óû§¶¨ÒåÃüÁîCELµÄCH3_2Commands.cppÎļþÄÚÈÝÈçÏ£º

3.13 Ó¦ÓóÌÐòʵÀýCH3_2Òªµã·ÖÎö

±¾Ó¦ÓóÌÐòÄÜѡȡһ×éʵÌ壬²¢°ÑÕâЩʵÌåµÄͼ²ã¸ÄΪѡÖеÄÄ¿±êʵÌåËùÔÚµÄͼ²ã¡£ËäÈ»ÔÚAutoCAD R14/2000ÖÐÒѾ­´æÔÚÀàËÆµÄÃüÁµ«ÎÒҪ˵Ã÷µÄÖ»ÊÇÑ¡Ôñ¼¯µÄʹÓá£ÔÚ¸ÃÓ¦ÓóÌÐòÖУ¬ÒªÇóÓû§Ñ¡È¡×é³ÉÑ¡Ôñ¼¯srcSSµÄʵÌ壬ÈçÏÂËùʾ£º È»ºó£¬½Ó×ŵ÷ÓÃacedEntSel()º¯ÊýѡȡĿ±êʵÌ壬ÈçÏÂËùʾ£º

Èç¹ûÒ»ÇÐÕý³££¬×îºó½«µ÷ÓÃÓû§¶¨ÒåµÄchgEntsLyr()º¯Êý£¬ÊµÏÖ³ÌÐòµÄÈ«²¿¶¯×÷¡£¸Ãº¯ÊýÒªÇóÓÐÁ½¸ö²ÎÊý£ºÒ»¸öΪʵÌ壬ÁíÒ»¸öΪѡÔñ¼¯¡£

×¢ÒâËüÃǶ¼ÊÇads_nameÀàÐ͵ÄÊý¾Ý¡£ÎÒÃDZØÐëÌáȡĿ±êʵÌåµÄÊý¾Ý£¬Õâ¿ÉÒÔµ÷ÓÃacdbEntGet()º¯ÊýÀ´ÊµÏÖ£¬¸Ãº¯Êý·µ»ØÖ¸ÕërbTargEntÖ¸ÏòµÄ½á¹û»º³å

ÇøÁ´±í¡£ÎÒÃÇʹÓýá¹û»º³åÇøÖ¸ÕërbTrav±éÀú¸ÃÁ´±í£¬ÔÚ´ËÌáÈ¡²ãÃû²¢¿½±´µ½lyrName¡£²»ÒªÊ¹Óýá¹û»º³åÇøÖ¸ÕërbTargEntÀ´±éÀú¸ÃÁ´±í£¬ÒòΪÔÚÍê³É¸Ã²Ù×÷ºó£¬ÎÞ·¨ÊÍ·ÅÓÉacdbEntGet()º¯Êý·ÖÅäµÄÄڴ桪һ¸öµäÐ͵ÄÄÚ´æÐ¹Â©´íÎ󣬼«Æäƽ³£¡£ÏÂÒ»²½ÊÇʹÓÃacedSSLength()º¯ÊýµÃµ½Ñ¡Ôñ

¼¯µÄ³¤¶È£¬Ö®ºó¾Í½øÈëÁËforÑ­»·¡£ÔÚforÑ­»·ÖУ¬Ê¹ÓÃacedSSName()º¯ÊýµÃµ½ÊµÌåÃû£¬²¢ÔÚssEntNameÖзµ»Ø¡£ÎÒÃÇÔÙÒ»´ÎʹÓýá¹û»º³åÇøÖ¸ÕërbTrav±éÀú¸ÃÁ´±í£¬µ±µ½´ïͼ²ã½á¹û»º³åÇøÊ±£¬°ÑrbTrav->resval.rstringµÄÖµ¸ÄΪlyrName¡£×¢ÒâÎÒÃÇΪºÎʹÓÃacdbEntMod(rbSSEnt)

º¯Êý¸üÐÂʵ

Ì塣ʹÓýá¹û»º³åÇørbSSEnt¸üÐÂʵÌåÊÇÒòΪrbSSEntÊǽá¹û»º³åÇøÁ´±í£¬¶ørbTravÖ»ÊÇÓÃÀ´±éÀú¸ÃÁ´±íµÄ½á¹û»º³åÇøÖ¸Õë¡£ÔÚforÑ­»·¿ªÊ¼ÏÂÒ»ÂÖÑ­»·Ö®Ç°£¬ÊÍ·ÅrbSSEnt»º³åÇø¡£Ò»µ©´Óº¯Êýµ÷Ó÷µ»Ø£¬ÔÚÍ˳öÓ¦ÓóÌÐò֮ǰ£¬µ÷ÓÃacedSSFree()º¯Êý¡£¿É±ðÍüÁËÊÍ·ÅÑ¡Ôñ¼¯¡£

3.14 Ó¦ÓóÌÐòʵÀýCH3_3

±¾Ó¦ÓóÌÐòʾ·¶ÁËÔõÑù¶ÔÑ¡Ôñ¼¯Ê¹ÓÃads_matrixÊý¾ÝÀàÐ͵ľØÕóºÍÔõÑùʹÓöÔads_matrixÊý¾ÝÀàÐͽøÐвÙ×÷µÄÑ¡Ôñ¼¯º¯ÊýacedXformSS()¡£ÀûÓþØÕ󣬿ÉÒÔ±ÈÀý±ä»»¡¢Ðýת¡¢¾µÏñ¡¢Æ½ÒÆ£¬¿ÉÒÔÈÆX¡¢Y»òZÖáÐýת¡£ÔÚ¸ÃÓ¦ÓóÌÐòÖУ¬ÎÒÃǽöʾÀýÁ˱ÈÀý±ä»»¡£CH3_3.CPPÎļþÄÚÈÝÈçÏ£º

Óû§¶¨ÒåÃüÁîTSSµÄCH3_3Commands.cppÎļþÄÚÈÝÈçÏ£º

3.15 Ó¦ÓóÌÐòʵÀýCH3_3Òªµã·ÖÎö

ÔÚtss()(ת»»Ñ¡Ôñ¼¯)º¯ÊýÖУ¬ÓÐÒ»¸öads_matrixÊý¾ÝÀàÐ͵ıäÁ¿xformºÍÒ»¸öÑ¡Ôñ¼¯ssGrp¡£Ê¹ÓÃacedSSGet()º¯ÊýÇëÇóÓû§Ñ¡ÔñÒ»×éʵÌå¡£Èç¹ûÑ¡Ôñ³É¹¦£¬½«°ÑʵÌå·ÅÔÚÑ¡Ôñ¼¯ssGrpÖС£È»ºó£¬Ê¹ÓÃacedGetReal()º¯ÊýÇëÇóÓû§ÊäÈëÒ»±ÈÀýϵÊý£¬×¢ÒâÎÒÃÇÊÇÔõÑù³õʼ»¯acedInitGet()º¯ÊýµÄ

¡£¼ÈÈ»ÎÒÃÇÓÐÁËÒ»¸öÓÐЧµÄÑ¡Ôñ¼¯ºÍÒ»¸ö±ÈÀýϵÊý£¬ÎÒÃǾͿÉÒÔµ÷ÓÃÓû§¶¨ÒåµÄident_init()º¯Êý³õʼ»¯¾ØÕó£¬ÕâÊÇÒ»¸öǶÌ×µÄforÑ­»·£¬

°ÑËùÓеľØÕóÔªËØ³õʼ»¯Îª0.0¡£È»ºóÔÙÓÃÒ»¸öforÑ­»·£¬°ÑǰÈýÁжԽÇÏßÉϵÄÔªËØ³õʼ»¯Îª1.0¡£±»³õʼ»¯Îª1.0µÄÔªËØÊÇid[0][0]¡¢id[1][1]ºÍid[2][

2]¡£ÔÚ¾ØÕóÍê³É³õʼ»¯ÒÔºó£¬ÎÒÃÇÓÃsfÖеıÈÀýϵÊýÀ´Ìæ´úÕâÈý¸öÔªËØµÄÖµ¡£ÎÒÃÇÎÞÐëʹÓÃforÑ­»·±éÀúÑ¡Ôñ¼¯£¬Ö»Ðè¼òµ¥µØµ÷ÓÃacedXformSS(ssGrp,xform)º¯Êý£¬Õ⽫һ´Î¸Ä±äÑ¡Ôñ¼¯ÖÐËùÓÐʵÌåµÄ±ÈÀýϵÊý¡£ÔÚObjectARXµÄ¼¸ºÎÀàAcGe-ÖÐÓÐÐí¶à¾ØÕóת»»²Ù×÷º¯Êý¡£ ÓÐÐí¶àADSº¯ÊýÎÒÎ´Éæ¼°(»òδÏêϸÌÖÂÛ)£¬Ö÷ÒªÊÇÒòΪÕâЩº¯ÊýÕë¶ÔADS/CÐÎʽµÄ±à³Ì£¬ObjectARXÓÐËü×Ô¼ºµÄ¶¨Ò壬Æä±à³ÌÐÎʽÍêÉÆ

µÃ¶à(²¢·ÇÎÒÓÐÆ«¼û)¡£ÎÒÎ´Éæ¼°µ½µÄADSº¯ÊýÓУºacedDefun()¡¢acedGetFunCode()¡¢acedRegFund()¡¢acedInvoke()¡¢acedGetArgs()¡¢acdbEntDel()¡¢

acdbEn

tMod()¡¢acdbEntNext()¡¢acdbEntGet()¡¢acdbEntUpd()ºÍacdbHandEnt()£¬µÈµÈ¡£ÎÒËùÌÖÂÛµÄADSRXº¯ÊýÊÇÔÚObjectARXÖÐʹÓÿÉÄÜÐÔ×î´óµÄº¯Êý¡£

//////////////////////////////////////////////////////////////////////////////////////////////////////

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)