找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 4483|回复: 35

[ARX程序]:创建层和线型的arx例子

[复制链接]
发表于 2002-12-24 20:59:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
  1. [font=courier new]
  2. // Ch4_1.cpp : Initialization functions

  3. // CH4_1.cpp
  4. // by Charles Mc Auley
  5. // "Programming AutoCAD 2000 with ObjectARX"
  6. //
  7. // This application demonstrates how to add
  8. // new layer table records to the layer table.
  9. // It also demonstrates how to use a layer table
  10. // iterator

  11. #include "StdAfx.h"
  12. #include "StdArx.h"
  13. #include "resource.h"
  14. //定义实例对象_hdllInstance
  15. HINSTANCE _hdllInstance =NULL ;

  16. /////函数原型说明
  17. /////
  18. // This command registers an ARX command.
  19. void AddCommand(const char* cmdGroup, const char* cmdInt, const char* cmdLoc,
  20.                                 const int cmdFlags, const AcRxFunctionPtr cmdProc, const int idLocal = -1);


  21. // NOTE: DO NOT edit the following lines.
  22. //{{AFX_ARX_MSG
  23. //初始化
  24. void InitApplication();
  25. //卸载arx程序
  26. void UnloadApplication();
  27. //}}AFX_ARX_MSG

  28. // NOTE: DO NOT edit the following lines.
  29. //{{AFX_ARX_ADDIN_FUNCS
  30. //}}AFX_ARX_ADDIN_FUNCS


  31. /////////////////////////////////////////////////////////////////////////////
  32. // DLL Entry Point
  33. ///定义dll入口函数
  34. ////////////////////////////////////////////
  35. ///功能:dll入口函数
  36. ///参数:HINSTANCE hInstance, DWORD dwReason, LPVOID
  37. ///
  38. extern "C"//声明函数为外部函数
  39. BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/)
  40. {
  41.         if (dwReason == DLL_PROCESS_ATTACH)
  42.         {
  43.         _hdllInstance = hInstance;
  44.         }
  45.         else if (dwReason == DLL_PROCESS_DETACH)
  46.         {
  47.         }
  48.         return TRUE;    // ok
  49. }


  50. ////////////////////////////////////////////
  51. ///功能:arx入口函数
  52. ///参数:AcRx::AppMsgCode msg, void* pkt
  53. ///
  54. extern "C" AcRx::AppRetCode
  55. acrxEntryPoint(AcRx::AppMsgCode msg, void* pkt)
  56. {
  57.         switch (msg) {
  58.         case AcRx::kInitAppMsg:
  59.                 // Comment out the following line if your
  60.                 // application should be locked into memory
  61.                 acrxDynamicLinker->unlockApplication(pkt);
  62.                 acrxDynamicLinker->registerAppMDIAware(pkt);
  63.                 InitApplication();
  64.                 break;
  65.         case AcRx::kUnloadAppMsg:
  66.                 UnloadApplication();
  67.                 break;
  68.         }
  69.         return AcRx::kRetOK;
  70. }


  71. // Init this application. Register your commands, reactors...
  72. //功能:初始化
  73. void InitApplication()
  74. {
  75.         // NOTE: DO NOT edit the following lines.
  76.         //{{AFX_ARX_INIT
  77.         AddCommand("CH4_APPS", "CNL", "CNL", ACRX_CMD_MODAL, cnl);
  78.         //}}AFX_ARX_INIT

  79.         // TODO: add your initialization functions
  80.         acutPrintf("Enter "CNL" to create a new layer.\n");
  81. }


  82. // Unload this application. Unregister all objectsregistered in InitApplication.
  83. // 卸载arx程序
  84. void UnloadApplication()
  85. {
  86.         // NOTE: DO NOT edit the following lines.
  87.         //{{AFX_ARX_EXIT
  88.         acedRegCmds->removeGroup("CH4_APPS");
  89.         //}}AFX_ARX_EXIT

  90.         acutPrintf("%s%s", "Goodbye\n", "Removing command group "CH4_APPS"\n");
  91. }


  92. // This functions registers an ARX command.
  93. // 注册命令
  94. void AddCommand(const char* cmdGroup, const char* cmdInt, const char* cmdLoc,
  95.                                 const int cmdFlags, const AcRxFunctionPtr cmdProc, const int idLocal)
  96. {
  97.         char cmdLocRes[65];

  98.         // If idLocal is not -1, it's treated as an ID for
  99.         // a string stored in the resources.
  100.         if (idLocal != -1) {

  101.                 // Load strings from the string table and register the command.
  102.                 ::LoadString(_hdllInstance, idLocal, cmdLocRes, 64);
  103.                 acedRegCmds->addCommand(cmdGroup, cmdInt, cmdLocRes, cmdFlags, cmdProc);

  104.         } else
  105.                 // idLocal is -1, so the 'hard coded'
  106.                 // localized function name is used.
  107.                 acedRegCmds->addCommand(cmdGroup, cmdInt, cmdLoc, cmdFlags, cmdProc);
  108. }


  109. ////////////////////////////////////////////////
  110. //功能:获取新层的linetype

  111. Adesk::Boolean getNewLyrLtId(AcDbObjectId& ltypeId)
  112. {
  113.         //关键字
  114.         char kw[20];
  115.         //线型
  116.         char linType[50];
  117.         //线型指针
  118.         char *pLtName;
  119.         //图形数据库
  120.         AcDbDatabase *pCurDb = NULL;
  121.         //线型表
  122.         AcDbLinetypeTable *pltTable;
  123.         //线型表纪录
  124.         AcDbLinetypeTableRecord *pLtTableRcd;
  125.         //遍历
  126.         AcDbLinetypeTableIterator *pLtIterator;
  127.         int rc;//返回码
  128.         //获取当前dwg文件的图形数据库
  129.         pCurDb = acdbHostApplicationServices()->workingDatabase();
  130.        
  131.         acedInitGet(NULL, "Name List Continuous");
  132.         //获取关键字
  133.         rc = acedGetKword("\nLinetype - [Name/List/Continuous]<Continuous>: ", kw);
  134.        
  135.         switch(rc)
  136.         {
  137.                 /*
  138.                  Return values for user-input functions  Code Description
  139.                 RTNORM   User entered a valid value
  140.                 RTERROR  The function call failed
  141.                 RTCAN    User entered ESC  
  142.                 RTNONE   User entered only ENTER  
  143.                 RTREJ    AutoCAD rejected the request as invalid
  144.                 RTKWORD  User entered a keyword or arbitrary text

  145.                 */
  146.                 case RTCAN://取消命令
  147.                         acutPrintf("\nUser canceled.");
  148.                         return Adesk::kFalse;
  149.                 case RTERROR:
  150.                         acutPrintf("\nFailed in getNewLyrLtId() function. ");
  151.                         return Adesk::kFalse;
  152.                 break;

  153.                 case RTNONE://回车响应
  154.                         //获取线型表
  155.                         pCurDb->getLinetypeTable(pltTable, AcDb::kForRead);
  156.                         //在线型表中搜索"CONTINUOUS",返回ltypeId(AcDbObjectId )
  157.                         pltTable->getAt("CONTINUOUS", ltypeId);
  158.                         //关闭线型表
  159.                         pltTable->close();
  160.                         return Adesk::kTrue;
  161.                 break;

  162.                 case RTNORM:
  163.                         if(strcmp(kw, "Name") == 0)
  164.                         {
  165.                                 rc = acedGetString(0, "\nEnter linetype string name: ", linType);
  166.                                 switch(rc)
  167.                                 {
  168.                                         case RTCAN:
  169.                                         case RTERROR:
  170.                                                 acutPrintf("\nError in retreiving linetype name.");
  171.                                                 return Adesk::kFalse;
  172.                                         break;

  173.                                         case RTNORM:
  174.                                                 if(linType[0] == '\0')
  175.                                                 {
  176.                                                         acutPrintf("\nNo layer name given.");
  177.                                                         return Adesk::kFalse;
  178.                                                 }

  179.                                                 // Check to see if the linetype exists       
  180.                                                 //获取线型表
  181.                                                 pCurDb->getLinetypeTable(pltTable, AcDb::kForRead);
  182.                                                 if(pltTable->has(linType))
  183.                                                 {
  184.                                                         // Retreive the AcDbObjecId of the layer table record
  185.                                                         pltTable->getAt(linType, ltypeId);
  186.                                                         pltTable->close();
  187.                                                         return Adesk::kTrue;
  188.                                                 }

  189.                                                 acutPrintf("\nLinetype '%s' does not exist using CONTINUOUS. ",
  190.                                                                                 linType);

  191.                                                 pltTable->getAt("CONTINUOUS", ltypeId);
  192.                                                 pltTable->close();
  193.                                                 return Adesk::kTrue;
  194.                                         break;
  195.                                 }// switch
  196.                         }// if
  197.                         else if(strcmp(kw, "List") == 0)
  198.                         {
  199.                                 // Here we will use a Linetype Table Iteraror
  200.                                 // to list out all the available linetype
  201.                                 // and then ask the user to enter a
  202.                                 // valid name for one of the layers

  203.                                 acutPrintf("\nThe following linetypes are available. ");

  204.                                 pCurDb->getLinetypeTable(pltTable, AcDb::kForRead);

  205.                                 pltTable->newIterator(pLtIterator);
  206.                                 for(; !pLtIterator->done(); pLtIterator->step())
  207.                                 {
  208.       
  209.                                         // get the current linetype record from the iterator,
  210.                                         // opened for read

  211.                                 pLtIterator->getRecord(pLtTableRcd, AcDb::kForRead);

  212.                                         // get the linetype name from the linetype record
  213.                                         // and store it in pLtName

  214.                                         pLtTableRcd->getName(pLtName);

  215.                                         // close the linetype record
  216.                                         pLtTableRcd->close();
  217.       
  218.                                 acutPrintf("\nLinetype name: %s", pLtName);

  219.                                         delete [] pLtName;

  220.                                 }// for

  221.                                 // Don't forget to delete the iterator
  222.                                 // that's your responsibility

  223.                                 delete pLtIterator;

  224.                                 rc = acedGetString(0, "\n\nEnter linetype string name: ", linType);
  225.                                 switch(rc)
  226.                                 {
  227.                                         case RTCAN:
  228.                                         case RTERROR:
  229.                                                 acutPrintf("\nError in retreiving linetype name.");
  230.                                                 return Adesk::kFalse;
  231.                                         break;

  232.                                         case RTNORM:
  233.                                                 if(linType[0] == '\0')
  234.                                                 {
  235.                                                         acutPrintf("\nNo layer name given.");
  236.                                                         return Adesk::kFalse;
  237.                                                 }

  238.                                                 // Check to see if the linetype
  239.                                                 // exists
  240.                                                 pCurDb->getLinetypeTable(pltTable, AcDb::kForRead);
  241.                                                 if(pltTable->has(linType))
  242.                                                 {
  243.                                                         // Retreive the AcDbObjecId of the layer table record
  244.                                                         pltTable->getAt(linType, ltypeId);
  245.                                                         pltTable->close();
  246.                                                         return Adesk::kTrue;
  247.                                                 }

  248.                                                 acutPrintf("\nLinetype '%s' does not exist using CONTINUOUS. ",
  249.                                                                                 linType);

  250.                                                 pltTable->getAt("CONTINUOUS", ltypeId);
  251.                                                 pltTable->close();
  252.                                                 return Adesk::kTrue;
  253.                                         break;
  254.                                 }// switch


  255.                         }
  256.                         else if(strcmp(kw, "Continuous") == 0)
  257.                         {
  258.                                 // Remember the CONTINUOUS linetype always
  259.                                 // exists in a drawing file.
  260.                                 pCurDb->getLinetypeTable(pltTable, AcDb::kForRead);
  261.                                 pltTable->getAt("CONTINUOUS", ltypeId);
  262.                                 pltTable->close();
  263.                                 return Adesk::kTrue;
  264.                         }
  265.                         else
  266.                         {
  267.                                 return Adesk::kFalse;
  268.                         }
  269.                 break;

  270.         }// switch

  271.         return Adesk::kFalse;
  272. }


  273. ///////////////////////////////////////////////////////////////
  274. ///功能:创建新层
  275. ///参数:char* lyrname, Adesk::UInt16 clr,AcDbObjectId ltypeId, Adesk::Boolean current
  276.                                        
  277. void createNewLayer(char* lyrname, Adesk::UInt16 clr,
  278.                                         AcDbObjectId ltypeId, Adesk::Boolean current)
  279. {
  280.         // 首先判断层表中是否存在名称为lyrname的层,若是则设置该层颜色等,否则创建新层

  281.         //生成层表对象指针
  282.         AcDbLayerTable *pLyrTable;
  283.         //生成层表纪录对象指针
  284.         AcDbLayerTableRecord *pLyrTblRecord;
  285.         ///生成实体ID
  286.         AcDbObjectId recId;
  287.         //颜色
  288.         AcCmColor color;
  289.         //设置颜色
  290.         color.setColorIndex(clr); // set color to parameter clr
  291.         //图形数据库指针
  292.         AcDbDatabase *pCurDb = NULL;
  293.         //获取当前图形数据库
  294.         pCurDb = acdbHostApplicationServices()->workingDatabase();

  295.         //获取当前数据库层表
  296.         pCurDb->getLayerTable(pLyrTable, AcDb::kForRead);
  297.         //检查层是否存在
  298.         if(pLyrTable->has(lyrname))
  299.         {       
  300.                 //从获取层
  301.                 pLyrTable->getAt(lyrname, pLyrTblRecord, AcDb::kForWrite, Adesk::kFalse);
  302.                 //解冻
  303.                 pLyrTblRecord->setIsFrozen(Adesk::kFalse);
  304.                 //设置颜色
  305.                 pLyrTblRecord->setColor(color);
  306.                 //设置线形
  307.                 pLyrTblRecord->setLinetypeObjectId(ltypeId);

  308.         }
  309.         else
  310.         {

  311.                 //创建新层(创建层纪录)
  312.                 pLyrTable->upgradeOpen();//
  313.                 pLyrTblRecord = new AcDbLayerTableRecord;
  314.                 //设置层名
  315.                 pLyrTblRecord->setName(lyrname);
  316.                 //设置颜色
  317.                 pLyrTblRecord->setColor(color);
  318.                 //设置线形
  319.                 pLyrTblRecord->setLinetypeObjectId(ltypeId);
  320.                 //添加层记录与层表
  321.                 pLyrTable->add(pLyrTblRecord);

  322.         }

  323.         // Get the layer Table ObjectId
  324.         //获取层表记录id
  325.         recId = pLyrTblRecord->objectId();
  326.         //关闭层表记录,一定要关闭,否则导致autocad系统错误
  327.         pLyrTblRecord->close();
  328.         //关闭层表
  329.         pLyrTable->close();


  330.         // Set the layer current if current is equal to Adesk::kTrue
  331.         // pCurDb is point to the current drawing database
  332.         // The database AcDbDatabase has a number of query and edit functions for the header variables
  333.         if(current)
  334.         {
  335.                 //设置当前层
  336.                 pCurDb->setClayer(recId);
  337.         }

  338. }
  339. [/font]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-5-7 16:50:37 | 显示全部楼层
下不了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-5-12 21:40:26 | 显示全部楼层
骗斑竹加分的例子,没有什么新意!
抄来的东西!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-5-14 14:00:28 | 显示全部楼层
我自己写的关于添加层的函数
void CPublicApplication::addLayer(char* LayerName,char* LineTypeName,int ColorIndex,BOOL SetCurrent,AcDb::LineWeight weight)
{
    AcDbLayerTable *pLayerTbl;
        AcDbObjectId ltId1;
    acdbHostApplicationServices()->workingDatabase()
        ->getSymbolTable(pLayerTbl, AcDb::kForWrite);
    if (!pLayerTbl->has(LayerName))
        {
        AcDbLayerTableRecord *pLayerTblRcd
            = new AcDbLayerTableRecord;
        pLayerTblRcd->setName(LayerName);
                pLayerTblRcd->setLineWeight(weight);
        pLayerTblRcd->setIsFrozen(0);// layer to THAWED
        pLayerTblRcd->setIsOff(0);   // layer to ON
        pLayerTblRcd->setVPDFLT(0);  // viewport default
        pLayerTblRcd->setIsLocked(0);// un-locked
        AcCmColor color;
        color.setColorIndex(ColorIndex); // set color to red
        pLayerTblRcd->setColor(color);
                acdbLoadLineTypeFile(LineTypeName,"ACADISO.LIN",acdbHostApplicationServices()->workingDatabase());
        AcDbLinetypeTable *pLinetypeTbl;
        AcDbObjectId ltId;
        acdbHostApplicationServices()->workingDatabase()
            ->getSymbolTable(pLinetypeTbl, AcDb::kForRead);
        if ((pLinetypeTbl->getAt(LineTypeName, ltId))
            != Acad::eOk)
        {
            pLinetypeTbl->getAt("CONTINUOUS", ltId);
        }
        pLinetypeTbl->close();
        pLayerTblRcd->setLinetypeObjectId(ltId);
        pLayerTbl->add(pLayerTblRcd);
        pLayerTblRcd->close();
        pLayerTbl->close();
    }
        else
        {
        pLayerTbl->close();
   }
}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-5-15 11:25:30 | 显示全部楼层
我刚开始学AUTOCAD的二次开发觉得还不错
以前还请各位高手们多多指教啊!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-5-15 23:06:24 | 显示全部楼层
多一些这样的好同志,把ARX的东西分解开了,以实例讲述。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-6-27 10:56:36 | 显示全部楼层
希望各位大虾,如果是抄来的东西请把英文全部翻译成中文,免的误会啊。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-6-27 10:57:51 | 显示全部楼层
希望各位大虾,如果不是抄来的东西请把英文全部翻译成中文,免的发生误会啊。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-10-15 14:10:00 | 显示全部楼层
小弟真的是菜 鸟,TMD什么都不会
希望交个朋友一起学习,没有任何条件,学长学弟若是不嫌弃
加我的qq:7562387
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-10-16 20:18:17 | 显示全部楼层
TMD是什么
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-13 23:49:03 | 显示全部楼层
最初由 chxmhsd 发布
[B]我自己写的关于添加层的函数
void CPublicApplication::addLayer(char* LayerName,char* LineTypeName,int ColorIndex,BOOL SetCurrent,AcDb::LineWeight weight)
{
    AcDbLayerTable *pLayerTbl;
        AcDbObject... [/B]


谢谢,很有帮助~~~~
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-15 11:59:28 | 显示全部楼层
多谢提供
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-6 20:55:01 | 显示全部楼层
能有中文解释是最好的,许多代码我们初学的人不是很懂。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-7 08:28:00 | 显示全部楼层
多一些这样实用的东西就好了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-12-8 16:14:20 | 显示全部楼层
很好 我喜欢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-5-29 15:52 , Processed in 0.471548 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表