找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 193|回复: 3

更改文本样式字体文件

[复制链接]

0

主题

0

回帖

26

积分

管理员

积分
26
发表于 2024-3-4 08:54:14 | 显示全部楼层 |阅读模式
  1. //-----------------------------------------------------------------------------
  2. //----- acrxEntryPoint.cpp
  3. //-----------------------------------------------------------------------------
  4. #include "StdAfx.h"
  5. #include "resource.h"
  6. void ads采用regen();
  7. //-----------------------------------------------------------------------------
  8. #define szRDS 采用RXST("")
  9. //-----------------------------------------------------------------------------
  10. //----- ObjectARX EntryPoint
  11. class CChangeStyleApp : public AcRxArxApp {
  12. public:
  13.   CChangeStyleApp() : AcRxArxApp() {}
  14.   virtual AcRx::AppRetCode On采用kInitAppMsg(void *pkt) {
  15.     AcRx::AppRetCode retCode = AcRxArxApp::On采用kInitAppMsg(pkt);
  16.     return (retCode);
  17.   }
  18.   virtual AcRx::AppRetCode On采用kUnloadAppMsg(void *pkt) {
  19.     AcRx::AppRetCode retCode = AcRxArxApp::On采用kUnloadAppMsg(pkt);
  20.     return (retCode);
  21.   }
  22.   virtual void RegisterServerComponents() {        }
  23.   static void RivilisChangeStyle() {
  24.     AcDbObjectId styleId;
  25.     // Create a text style
  26.     {
  27.       AcDbObjectPointer<AcDbTextStyleTable>
  28.         pTextStyleTable(acdbCurDwg()->textStyleTableId(), AcDb::kForWrite);
  29.       AcDbObjectPointer<AcDbTextStyleTableRecord> pStyle;
  30.       pStyle.create();
  31.       pStyle->setName(L"MyStyle");
  32.       pStyle->setFileName(L"romans.shx");
  33.       if (pTextStyleTable->add(styleId, pStyle.object()) != Acad::eOk)
  34.       {
  35.         pTextStyleTable->getAt(L"MyStyle", styleId);
  36.       }
  37.     }
  38.     acedAlert(L"created text style");
  39.     AcDbObjectId idtext;
  40.     // Create some text
  41.     {
  42.       AcDbObjectPointer<AcDbText> pText;
  43.       pText.create();
  44.       pText->setDatabaseDefaults();
  45.       pText->setTextStyle(styleId);
  46.       pText->setTextString(L"Some text");
  47.       pText->setHeight(10);
  48.       AcDbObjectPointer<AcDbBlockTableRecord>
  49.         pSpace(acdbCurDwg()->currentSpaceId(), AcDb::kForWrite);
  50.       pSpace->appendAcDbEntity(idtext, pText);
  51.     }
  52.     ads采用regen();
  53.     acedAlert(L"created text");
  54.     {
  55.       // Change the font file for the text style
  56.       AcDbObjectPointer<AcDbTextStyleTableRecord>
  57.         pStyle(styleId, AcDb::kForWrite);
  58.       pStyle->setFileName(L"romand.shx");
  59.     }
  60.     {
  61.       AcDbObjectPointer<AcDbBlockTableRecord>
  62.         pSpace(acdbCurDwg()->currentSpaceId(), AcDb::kForRead);
  63.       AcDbBlockTableRecordIterator *pIter = NULL;
  64.       pSpace->newIterator(pIter);
  65.       AcDbObjectId id;
  66.       for (; !pIter->done(); pIter->step())
  67.       {
  68.         pIter->getEntityId(id);
  69.         AcDbEntityPointer pEnt(id, AcDb::kForWrite);
  70.         pEnt->recordGraphicsModified();
  71.       }
  72.       delete pIter;
  73.     }
  74.     ads采用regen();
  75.     acedAlert(L"Regen Current Space");
  76.   }
  77. };
  78. //-----------------------------------------------------------------------------
  79. IMPLEMENT采用ARX采用ENTRYPOINT(CChangeStyleApp)
  80. ACED采用ARXCOMMAND采用ENTRY采用AUTO(CChangeStyleApp, Rivilis, ChangeStyle, ChangeStyle, ACRX采用CMD采用MODAL, NULL)
复制代码

0

主题

0

回帖

26

积分

管理员

积分
26
 楼主| 发表于 2024-3-4 08:54:35 | 显示全部楼层
  1. ---------------------------------------------------------------------------
  2. //----- acrxEntryPoint.cpp
  3. //-----------------------------------------------------------------------------
  4. #include "StdAfx.h"
  5. #include "resource.h"
  6. void ads采用regen();
  7. //-----------------------------------------------------------------------------
  8. #define szRDS 采用RXST("")
  9. //-----------------------------------------------------------------------------
  10. //----- ObjectARX EntryPoint
  11. class CChangeStyleApp : public AcRxArxApp {
  12. public:
  13.   CChangeStyleApp() : AcRxArxApp() {}
  14.   virtual AcRx::AppRetCode On采用kInitAppMsg(void *pkt) {
  15.     AcRx::AppRetCode retCode = AcRxArxApp::On采用kInitAppMsg(pkt);
  16.     return (retCode);
  17.   }
  18.   virtual AcRx::AppRetCode On采用kUnloadAppMsg(void *pkt) {
  19.     AcRx::AppRetCode retCode = AcRxArxApp::On采用kUnloadAppMsg(pkt);
  20.     return (retCode);
  21.   }
  22.   virtual void RegisterServerComponents() {        }
  23.   static void RivilisChangeStyle() {
  24.     AcDbObjectId styleId;
  25.     // Create a text style
  26.     {
  27.       AcDbObjectPointer<AcDbTextStyleTable>
  28.         pTextStyleTable(acdbCurDwg()->textStyleTableId(), AcDb::kForWrite);
  29.       AcDbObjectPointer<AcDbTextStyleTableRecord> pStyle;
  30.       pStyle.create();
  31.       pStyle->setName(L"MyStyle");
  32.       pStyle->setFileName(L"romans.shx");
  33.       if (pTextStyleTable->add(styleId, pStyle.object()) != Acad::eOk)
  34.       {
  35.         pTextStyleTable->getAt(L"MyStyle", styleId);
  36.       }
  37.     }
  38.     acedAlert(L"created text style");
  39.     AcDbObjectId idtext;
  40.     // Create some text
  41.     {
  42.       AcDbObjectPointer<AcDbText> pText;
  43.       pText.create();
  44.       pText->setDatabaseDefaults();
  45.       pText->setTextStyle(styleId);
  46.       pText->setTextString(L"Some text");
  47.       pText->setHeight(10);
  48.       AcDbObjectPointer<AcDbBlockTableRecord>
  49.         pSpace(acdbCurDwg()->currentSpaceId(), AcDb::kForWrite);
  50.       pSpace->appendAcDbEntity(idtext, pText);
  51.     }
  52.     ads采用regen();
  53.     acedAlert(L"created text");
  54.     {
  55.       // Change the font file for the text style
  56.       AcDbObjectPointer<AcDbTextStyleTableRecord>
  57.         pStyle(styleId, AcDb::kForWrite);
  58.       pStyle->setFileName(L"romand.shx");
  59.     }
  60.     {
  61.       AcDbObjectPointer<AcDbBlockTableRecord>
  62.         pSpace(acdbCurDwg()->currentSpaceId(), AcDb::kForRead);
  63.       AcDbBlockTableRecordIterator *pIter = NULL;
  64.       pSpace->newIterator(pIter);
  65.       AcDbObjectId id;
  66.       for (; !pIter->done(); pIter->step())
  67.       {
  68.         pIter->getEntityId(id);
  69.         AcDbEntityPointer pEnt(id, AcDb::kForWrite);
  70.         pEnt->recordGraphicsModified();
  71.       }
  72.       delete pIter;
  73.     }
  74.     ads采用regen();
  75.     acedAlert(L"Regen Current Space");
  76.   }
  77. };
  78. //-----------------------------------------------------------------------------
  79. IMPLEMENT采用ARX采用ENTRYPOINT(CChangeStyleApp)
  80. ACED采用ARXCOMMAND采用ENTRY采用AUTO(CChangeStyleApp, Rivilis, ChangeStyle, ChangeStyle, ACRX采用CMD采用MODAL, NULL)
复制代码

0

主题

0

回帖

26

积分

管理员

积分
26
 楼主| 发表于 2024-3-4 08:54:58 | 显示全部楼层
  1. //-----------------------------------------------------------------------------
  2. //----- acrxEntryPoint.cpp
  3. //-----------------------------------------------------------------------------
  4. #include "StdAfx.h"
  5. #include "resource.h"
  6. //-----------------------------------------------------------------------------
  7. #define szRDS 采用RXST("")
  8. //-----------------------------------------------------------------------------
  9. //----- ObjectARX EntryPoint
  10. class CChangeStyleApp : public AcRxArxApp {
  11. public:
  12.   CChangeStyleApp() : AcRxArxApp() {}
  13.   virtual AcRx::AppRetCode On采用kInitAppMsg(void *pkt) {
  14.     AcRx::AppRetCode retCode = AcRxArxApp::On采用kInitAppMsg(pkt);
  15.     return (retCode);
  16.   }
  17.   virtual AcRx::AppRetCode On采用kUnloadAppMsg(void *pkt) {
  18.     AcRx::AppRetCode retCode = AcRxArxApp::On采用kUnloadAppMsg(pkt);
  19.     return (retCode);
  20.   }
  21.   virtual void RegisterServerComponents() {        }
  22.   static void RivilisChangeStyle() {
  23.     AcDbObjectId styleId;
  24.     // Create a text style
  25.     {
  26.       AcDbObjectPointer<AcDbTextStyleTable>
  27.         pTextStyleTable(acdbCurDwg()->textStyleTableId(), AcDb::kForWrite);
  28.       AcDbObjectPointer<AcDbTextStyleTableRecord> pStyle;
  29.       pStyle.create();
  30.       pStyle->setName(L"MyStyle");
  31.       pStyle->setFileName(L"romans.shx");
  32.       if (pTextStyleTable->add(styleId, pStyle.object()) != Acad::eOk)
  33.       {
  34.         pTextStyleTable->getAt(L"MyStyle", styleId);
  35.       }
  36.     }
  37.     acedAlert(L"created text style");
  38.     AcDbObjectId idtext;
  39.     // Create some text
  40.     {
  41.       AcDbObjectPointer<AcDbText> pText;
  42.       pText.create();
  43.       pText->setDatabaseDefaults();
  44.       pText->setTextStyle(styleId);
  45.       pText->setTextString(L"Some text");
  46.       pText->setHeight(10);
  47.       AcDbObjectPointer<AcDbBlockTableRecord>
  48.         pSpace(acdbCurDwg()->currentSpaceId(), AcDb::kForWrite);
  49.       pSpace->appendAcDbEntity(idtext, pText);
  50.     }
  51.     acTransactionManagerPtr()->flushGraphics();
  52.     acedUpdateDisplay();
  53.     acedAlert(L"created text");
  54.     {
  55.       // Change the font file for the text style
  56.       AcDbObjectPointer<AcDbTextStyleTableRecord>
  57.         pStyle(styleId, AcDb::kForWrite);
  58.       pStyle->setFileName(L"romand.shx");
  59.     }
  60.     {
  61.       AcDbObjectPointer<AcDbBlockTableRecord>
  62.         pSpace(acdbCurDwg()->currentSpaceId(), AcDb::kForRead);
  63.       AcDbBlockTableRecordIterator *pIter = NULL;
  64.       pSpace->newIterator(pIter);
  65.       AcDbObjectId id;
  66.       for (; !pIter->done(); pIter->step())
  67.       {
  68.         id.setNull();
  69.         pIter->getEntityId(id);
  70.         if (id.objectClass()->isDerivedFrom(AcDbText::desc()) ||
  71.             id.objectClass()->isDerivedFrom(AcDbMText::desc()) ||
  72.             id.objectClass()->isDerivedFrom(AcDbDimension::desc()) ||
  73.             id.objectClass()->isDerivedFrom(AcDbBlockReference::desc()))
  74.         {
  75.           AcDbEntityPointer pEnt(id, AcDb::kForWrite);
  76.           if (pEnt.openStatus() == Acad::eOk)
  77.             pEnt->recordGraphicsModified();
  78.         }
  79.       }
  80.       delete pIter;
  81.     }
  82.     acTransactionManagerPtr()->flushGraphics();
  83.     acedUpdateDisplay();
  84.     acedAlert(L"Custom Regen Current Space");
  85.   }
  86. };
  87. //-----------------------------------------------------------------------------
  88. IMPLEMENT采用ARX采用ENTRYPOINT(CChangeStyleApp)
  89. ACED采用ARXCOMMAND采用ENTRY采用AUTO(CChangeStyleApp, Rivilis, ChangeStyle, ChangeStyle, ACRX采用CMD采用MODAL, NULL)
复制代码

0

主题

0

回帖

26

积分

管理员

积分
26
 楼主| 发表于 2024-3-4 08:55:13 | 显示全部楼层
  1. {
  2.                 // Change the font file for the text style
  3.                 AcDbObjectPointer<AcDbTextStyleTableRecord> pStyle;
  4.                 pStyle.open(styleId, AcDb::kForWrite);
  5.                 pStyle->setFileName(L"romand.shx");
  6.         }
  7.         //run style command without doing anything
  8.         ::acedCommandS(RTSTR,采用T("-style"),RTSTR,采用T(""),RTSTR,采用T(""),
  9.                 RTSTR,采用T(""), RTSTR, 采用T(""), RTSTR,采用T(""),RTSTR,采用T(""),
  10.                 RTSTR,采用T(""),RTSTR, 采用T(""),RTNONE);
  11.         ads采用regen();
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|膜结构网

GMT+8, 2024-12-27 23:24 , Processed in 0.139057 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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