wenbingwei 发表于 2002-7-19 20:03:00

新手求教:怎样设置线宽和字体?

请问怎样设置线的宽度,如设线宽为0.7毫米?
此外,怎样设置字体和字号,如设置字体为"宋体",字号为500?
请各位多多指教!!!

wenbingwei 发表于 2002-7-22 20:41:00

新手再问:怎样将文本属性“对正”由“左”改为“中间以及标题栏编制

按照版主的指教,我用如下程序在屏幕上显示了文本“审核”,我选中该文本,
查得其属性如下:
   样式:机械制图
   对正:左
   高度:2.5
   宽度比例:1
   接着我在程序中增加ptxt->setHeight(10);语句改变了文本高度。

现在,我想知道怎样将属性“对正”的“左”改为“中间”,即文本的
中心点为插入点(center)?

       AcGePoint3d center(9.0,3.0,0.0);
        AcDbTextStyleTable *pTextStyleTable;
   acdbHostApplicationServices()->workingDatabase()
      ->getSymbolTable(pTextStyleTable, AcDb::kForWrite);
    AcDbTextStyleTableRecord *pTextStyleTableRecord =
      new AcDbTextStyleTableRecord;

    pTextStyleTableRecord->setName("机械制图");
    pTextStyleTableRecord->setFileName("gbeitc.shx");
    pTextStyleTableRecord->setBigFontFileName("gbcbig.shx");
    AcDbObjectId Id;
    pTextStyleTable->add(Id,pTextStyleTableRecord);
    pTextStyleTable->close();
    pTextStyleTableRecord->close();

        CString ltext="审核";
        AcDbObjectId txtId;
    AcDbText *ptxt= new AcDbText(center,ltext);
        ptxt->setTextStyle(Id);
       
    pBlockTableRecord->appendAcDbEntity(txtId, ptxt);

        pBlockTableRecord->close();
        pLine->close();
   
    ptxt->close();


另外,我想问一下"gbeitc.shx"是什么意思,ARX中哪地方对这种样式进行了说明或定义?

如果有可能,哪位能否为我提供一个制作标题栏的完整程序,包括标题栏中字体样式的设定等。

wxj351 发表于 2002-7-22 23:23:00

文本对齐

Acad::ErrorStatus
setHorizontalMode(
    AcDb::TextHorzMode hmode);

hMode        Input horizontal mode for the text

This function sets hMode to be the horizontal mode of the text.
The allowable values for hMode are:
        AcDb::kTextLeft
        AcDb::kTextCenter
        AcDb::kTextRight
        AcDb::kTextAlign
        AcDb::kTextMid
        AcDb::kTextFit
Returns Acad::eOk if successful or Acad::eInvalidInput if the data passed in is not acceptable.

wxj351 发表于 2002-7-22 23:25:00

“gbeitc.shx”是autoCAD自带的字体,英文斜体。

wxj351 发表于 2002-7-19 23:28:00

线宽

例如:
pEnt->setLineWeight(AcDb::kLnWt040);//设置线宽为0.4mm

线宽:实体的线宽用AcDb::LineWeight牧举表示。用户给的值必须是牧举中的值。
下列函数用于实体的线宽设置和查询:
virtual Acad::ErrorStatus setLineWeight(AcDb::LineWeight lineweight);
AcDb::LineWeight lineWeight() const;
线宽的牧举定义:
enum AcDb::LineWeight {
        kLnWt000 =   0,
    kLnWt005 =   5,
    kLnWt009 =   9,
    kLnWt013 =13,
    kLnWt015 =15,
    kLnWt018 =18,
    kLnWt020 =20,
    kLnWt025 =25,
    kLnWt030 =30,
    kLnWt035 =35,
    kLnWt040 =40,
    kLnWt050 =50,
    kLnWt053 =53,
    kLnWt060 =60,
    kLnWt070 =70,
    kLnWt080 =80,
    kLnWt090 =90,
    kLnWt100 = 100,
    kLnWt106 = 106,
    kLnWt120 = 120,
    kLnWt140 = 140,
    kLnWt158 = 158,
    kLnWt200 = 200,
    kLnWt211 = 211,
    kLnWtByLayer      = -1,
    kLnWtByBlock      = -2,
    kLnWtByLwDefault= -3};

wxj351 发表于 2002-7-19 23:34:00

机械制图国标字体的设置

机械制图国标字体的设置。
建议不要使用TrueType字体,使用shx
程序如下:
AcDbObjectId hz()
{
    AcDbTextStyleTable *pTextStyleTable;
        acdbHostApplicationServices()->workingDatabase()
      ->getSymbolTable(pTextStyleTable, AcDb::kForWrite);
    AcDbTextStyleTableRecord *pTextStyleTableRecord =
      new AcDbTextStyleTableRecord;

    pTextStyleTableRecord->setName("机械制图");
    pTextStyleTableRecord->setFileName("gbeitc.shx");
    pTextStyleTableRecord->setBigFontFileName("gbcbig.shx");
    AcDbObjectId Id;
    pTextStyleTable->add(Id,pTextStyleTableRecord);
    pTextStyleTable->close();
    pTextStyleTableRecord->close();
    return Id;
}

wenbingwei 发表于 2002-7-20 20:45:00

谢谢版主!!!

wenbingwei 发表于 2002-7-23 18:15:00

[求助]补问:文本样式怎么不能恢复

补问:
在屏幕上显示了文本“审核”后,我选中该文本,在属性列表中选中“样式”
,然后在其下拉列表中选中“standard”,文本“审核”变为两个问号,当我再
将样式属性由“standard”改回“机械制图”时,仍然显示的是两个问号,我不知
问题出在哪里?而且,当我重新编译源程序,然后在cad中再装载该动态链接库
时,仍旧显示的是问号。
   谢谢各位给我指点指点!

wxj351 发表于 2002-7-23 18:17:00

应该不是这样。

wenbingwei 发表于 2002-7-23 18:34:00

我回去再重新试试,有什么新问题再来向版主请教,谢谢!

页: [1] 2
查看完整版本: 新手求教:怎样设置线宽和字体?