

IJCad C#により、異尺度対応に設定した文字スタイルを作成後、文字を作成しましたが文字属性を確認すると  
異尺度対応が反映されません。新しい文字スタイルには異尺度対応にはチャックが入っており、IJCad上で文字を  
作成すると異尺度対応は「はい」になります。私のコードの間違いを教えて下さい。  
以下に、コードを載せます。

[code]

        [CommandMethod("MyText")]
        public static void Text()
        {
            //ドキュメント、データベースオブジェクトの作成
            Document doc = GrxCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
            Database db = doc.Database;
            
            //トランザクションの開始
            using (Transaction Trans = db.TransactionManager.StartTransaction())
            {
                // ブロックテーブルの読み込み
                BlockTable BlkTbl;
                BlkTbl = Trans.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;
    
                // 書き込み用にブロックテーブルレコードのモデル空間を開く
                BlockTableRecord BlkTblRec;
                BlkTblRec = Trans.GetObject(BlkTbl[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;
    
                // 現在のテキスト スタイルを書き込み用に開く
                TextStyleTableRecord textStyleTblRec;
                textStyleTblRec = Trans.GetObject(db.Textstyle, OpenMode.ForWrite) as TextStyleTableRecord;
    
                string textStyleName = "ＭＳ明朝";
                string textStyleFont = "ＭＳ 明朝";
                TextStyleTable newTextStyleTable = Trans.GetObject(doc.Database.TextStyleTableId, OpenMode.ForRead) as TextStyleTable;
                if (!newTextStyleTable.Has(textStyleName))  //The TextStyle is currently not in the database
                {
                    newTextStyleTable.UpgradeOpen();
                    TextStyleTableRecord newTextStyleTableRecord = new TextStyleTableRecord();
                    newTextStyleTableRecord.FileName = textStyleFont; // フォント名
                    newTextStyleTableRecord.Name = textStyleName; // 文字スタイル名
                    newTextStyleTableRecord.Annotative = AnnotativeStates.True; // 異尺度対応
    
                    newTextStyleTable.Add(newTextStyleTableRecord);
                    Trans.AddNewlyCreatedDBObject(newTextStyleTableRecord, true);
                 }
    
                DBText text = new DBText();
                text.Position = new Point3d(0, 0, 0);
                text.Height = 18;
                text.TextString = "今日は";
                text.TextStyleId = newTextStyleTable[textStyleName];
    
                BlkTblRec.AppendEntity(text);
                Trans.AddNewlyCreatedDBObject(text, true);
    
                // 変更を保存してトランザクションを破棄する(トランザクションの終了)
                Trans.Commit();
            }
        }
    
[/code]


CC BY-SA 4.0
2023-05-24T01:36:42.920
94954
2023-06-01T09:13:42.513
58409
question
.net ijcad
IJCad　C#を使用して異尺度対応に設定した文字スタイルを作成後,文字を作成したが文字属性の異尺度対応が反映されない。


> 異尺度対応に設定した文字スタイルを作成後、文字を作成しましたが文字属性を確認すると  
>
> 異尺度対応が反映されません。新しい文字スタイルには異尺度対応にはチャックが入っており、IJCad上で文字を作成すると異尺度対応は「はい」になります。私のコードの間違いを教えて下さい。

DBTextに対しても  
text.Annotative = AnnotativeStates.True;  
でセットしてみたらいかがでしょうか。

添付のコードを見ると  
newTextStyleTableRecord.Annotative = AnnotativeStates.True;  
で文字スタイルテーブルの異尺度はONにしていますが、  
テキストオブジェクトに対してもセットすると目的の動作ができると思います。


CC BY-SA 4.0
2023-06-01T09:13:42.513
95059
2023-06-01T09:13:42.513
52306
94954
answer