IJCAD上でWindowFormを呼び出した際のTabStopについて

投稿者: Anonymous IJCAD2019を用いた.NETアプリケーションの開発をしております。 Application.ShowModelessDialog()で WindowsFormで作成したダイアログを呼び出したところ、 呼び出したダイアログ上でTabキーを押してもフォーカスが移動しませんでした。 Tabキーでのフォーカス移動を有効にするにはどうすればいいでしょうか? 各コントロールのTabStopはTrueとなっています。 public class Class1 { [CommandMethod(“Test”)] public void DoIt() { Form1 form = new Form1(); GrxCAD.ApplicationServices.Application.ShowModelessDialog(form); } } 解決 IJCADの.NET APIで作成したウインドウをモードレスで呼び出した場合、TABでフォーカスは移動されないようです。 モーダルでは大丈夫そうなので、恐らく.NET APIの不具合だと思われます。 IJCADのサポートに、APIの不具合として報告した方が良いと思われます。 余談ですが、WPFを使用して作成されたウインドウは大丈夫なようです。 この際、ShowModelessDialogでなく、ShowModelessWindowで呼び出す必要があります。 回答者: Anonymous

PromptStatusで[Enter]キー、右クリックを取得する方法

投稿者: Anonymous IJCAD2016/VB.netで開発している者です。 IJCADのCOPY、MOVEコマンド同様にドロージグを使用したコマンドを開発しているのですが、Drag(PromptStatus)で[Enter]キーおよび、右クリックでコマンドを終了させる方法がわからず調べています。 ご存知の方がいらっしゃいましたら何かアドバイスをいただければ幸いです。 以下はサンプルコードおよび参照元のULRです。 Public Sub SampleCommand() Dim icDoc As Document = Application.DocumentManager.MdiActiveDocument Dim icEd = icDoc.Editor ‘移動させるオブジェクトを選択 Dim icSelectRes As PromptSelectionResult = icEd.GetSelection() If icSelectRes.Status <> PromptStatus.OK Then Return ‘移動の基点を指定 Dim icPointRes As PromptPointResult = icEd.GetPoint(vbCrLf + “基点を指定”) If icPointRes.Status <> PromptStatus.OK Then Return Using icTrans As Transaction = icDoc.TransactionManager.StartTransaction() Dim icMoveJig…(Continue Reading)

事前選択で選択フィルターを使用したい

投稿者: Anonymous IJCAD2018でC#を使用して開発をしています。 事前選択で選択フィルターを適用した選択結果を取得したいのですが、用意されているCADの.Net APIに該当する機能が見つかりませんでした。 SelectImpliedに選択フィルターが設定できればよいのですが、オプションを指定することができませんでした。 該当等する機能か回避方法があればご教示をお願いいたします。 [CommandMethod(“test”, CommandFlags.Session | CommandFlags.UsePickSet)] public static void Test() { SelectionSet ss; SelectPick(out ss); } // 事前選択の結果を取得 public static void SelectPick(out SelectionSet dst) { dst = null; // 選択フィルタ作成 var selFilter = new SelectionFilter(new [] { new TypedValue((int)DxfCode.Operator, “<OR”), new TypedValue((int)DxfCode.Start, “INSERT”), new TypedValue((int)DxfCode.Start, “LINE”), new TypedValue((int)DxfCode.Operator, “OR>”), });…(Continue Reading)

IJCADでC#で新規図面を開こうとすると「AutoCAD Mechanical Unknown形式図面です」。と警告が表示される

投稿者: Anonymous 現在IJCAD2018を使用してC#で開発を行っております。 機能の1つに図面を作図して保存する機能があるのですが、 保存が完了した後に終了ボタンを押下して図面を閉じると ドキュメントが0枚になることがあるので DocumentCollection acDocMgr = Application.DocumentManager; Document acDoc = acDocMgr.Add(); として新規図面を開く処理があるのですが、 このAddメソッドで図面を開く時に 「この図面はAutoCAD Mechanical Unknown形式図面です。」という警告が表示されています。 この警告を表示させないようにする方法を教えて頂けないでしょうか。 追記 Addメソッドで開こうとしている図面はAutoCAD2013形式で保存されている図面です。 解決 CADが対応していないAutoCAD Mechanicalのバージョンの図面を、開こうとしている為警告が表示されていると思われます。 https://support.ijcad.jp/hc/ja/articles/360000174142 確認ですが使用しているIJCADはメカニカルでしょうか? 例えば、IJCA DMechanical 2018 で AutoCAD Mechanical 2018形式で保存された図面を、 Add メソッドで開こうとするとイメージのような警告が表示されます。 通常のIJCAD2018ではメカニカル形式の図面を開いても警告は表示されないと思います。 (メカニカル特有のオブジェクトはACAD PROXY ENTITYとして扱われます。) AutoCAD2013形式で保存されている図面であれば警告が表示されないと思いますが、開こうとしている図面がどのようなものかを確認することができませんので、一度IJCADのサポートに問題の図面を送ってみては如何でしょうか? 回答者: user30469

IJCADの.netでモデル空間の図面範囲設定したい

投稿者: Anonymous IJCAD2019でVB.net開発をしています。 通常の描画ではモデル空間の図面範囲を行う場合、LIMITコマンドを使用しますが、.netの場合はどのようなメソッドを使用するのでしょうか? 解決 Database.Limcheck プロパティ、Database.Limmax プロパティ、Database.Limmin プロパティを変更することでモデル空間の図面範囲を変更することが可能です。 回答者: user30469

IJCADをvb.netで印刷するときに、印刷領域に窓 (PlotType.Window) を指定するとエラーになってしまう

投稿者: Anonymous IJCADをvb.netで印刷するときに、印刷領域に窓 (PlotType.Window) を指定するとicPlSetVdr.SetPlotType(icLayout, GrxCAD.DatabaseServices.PlotType.Window) のところでエラーになります。 ただし手動で一度印刷領域を窓に設定するとエラーが出なくなります。 最初からエラーが出ないようにする方法はないでしょうか? Using icTrans As Transaction = icDb.TransactionManager.StartTransaction() Dim icLayMgr As LayoutManager = LayoutManager.Current Dim icLayout As Layout = icTrans.GetObject(icLayMgr.GetLayoutId(icLayMgr.CurrentLayout), OpenMode.ForWrite) Dim icPlSetVdr = PlotSettingsValidator.Current icPlSetVdr.SetPlotType(icLayout, GrxCAD.DatabaseServices.PlotType.Window) icPlSetVdr.SetUseStandardScale(icLayout, True) icPlSetVdr.SetStdScaleType(icLayout, StdScaleType.ScaleToFit) icPlSetVdr.SetPlotCentered(icLayout, True) icPlSetVdr.SetPlotRotation(icLayout, PlotRotation.Degrees090) icPlSetVdr.SetPlotWindowArea(icLayout, New Extents2d(New Point2d(0.0, 0.0), New Point2d(4000, 2800))) 解決 添付しているコードを少し見ました。エラーというのは、eInvalidInput(code5)ですか? 自分がデバッグしたときはコード上の、 icPlSetVdr.SetPlotType(icLayout, GrxCAD.DatabaseServices.PlotType.Window)…(Continue Reading)

VB.NET で IJCADのオブジェクトがどのグループに属しているのか知りたいです。

投稿者: Anonymous Groupオブジェクトの検索の方法を教えて下さい。 または、 Entityオブジェクトから所属しているGroupオブジェクトを取得することはできますでしょうか? [2019.11.13] いただきましたヒントを元に下記のコードを書きましたやりたいことは、 ポリラインを検索を検索して、そのポリラインが属しているグループを見つける というものです。しかしながら実行すると 例外がスローされました: ‘System.AccessViolationException’ (gmdb.dll の中) が発生して処理が止まってしまいます。 原因わかれば、教えていただけると幸いです。 Using trans As Transaction = wdb.TransactionManager.StartTransaction() Dim acBlkTbl As BlockTable = trans.GetObject(wdb.BlockTableId, OpenMode.ForRead) Dim wcount = 0 Dim wselobjs As PromptSelectionResult wselobjs = wed.SelectAll() If wselobjs.Status = PromptStatus.OK Then wcount = wselobjs.Value.Count End If For ix = 0 To wcount…(Continue Reading)

IJCADで現在のレイヤを取得したい

投稿者: Anonymous IJCAD2019でVB.net開発をしています。 レイヤを変更して作図するプログラムで、最後に元々選択されていたレイヤに戻したいのですが、選択されているレイヤを示すプロパティがわかりません。 ご教示ください。 解決 DatabaseクラスのCLayerプロパティから、現在のレイヤのObjectIdを取得することができます。 また、CLayerプロパティに変更したレイヤのObjectIdを設定することで、現在のレイヤを変更することができます。 回答者: user30469

外部参照クリップ境界の座標値の取得結果について

投稿者: Anonymous .net APIに関する質問です。 ブロック参照のクリップ範囲を取得する際に、 GrxCAD.DatabaseServices.Filters.SpatialFilterDefinition.GetPoints() (※1)で取得していますが、クリップの設定により下記の通り挙動が変わります。 ※1 (外部参照クリップ境界の座標値を取得する方法)参照 ①プログラムでクリップを設定(※2)した場合: ブロック座標系でのクリップ範囲の座標値を返す。 ※2下記ソースコード参照 Imports Autodesk.AutoCAD.Runtime Imports Autodesk.AutoCAD.ApplicationServices Imports Autodesk.AutoCAD.DatabaseServices Imports Autodesk.AutoCAD.Geometry <CommandMethod(“ClippingExternalReference”)> _ Public Sub ClippingExternalReference() ‘ Get the current database and start a transaction Dim acCurDb As Autodesk.AutoCAD.DatabaseServices.Database acCurDb = Application.DocumentManager.MdiActiveDocument.Database Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction() ‘ Create a reference to a DWG file…(Continue Reading)

IJCADでサムネイル画像を作成すると、サムネイルのモデル空間の背景色が白色になってしまう。

投稿者: Anonymous IJCAD 2018を使用して、C#で開発を行っております。 図面保存時に現在のビューでサムネイル画像を保存したいのですが、背景の色が「IJCADで設定した背景色」ではなく、白色になってしまいます。 サムネイルの背景色を「IJCADで設定した背景色」へ適用する方法を教えていただけないでしょうか? 「IJCADで設定した背景色」とはIJCAD設定画面の赤枠で囲んだ箇所となります。 using CADApplication = GrxCAD.ApplicationServices.Application; using GrxCAD.Runtime; using System.Reflection; namespace Iest { public class CreateThumbnail { [CommandMethod(“Test_CreateThumbnail”, CommandFlags.Session)] public static void Test() { var doc = CADApplication.DocumentManager.MdiActiveDocument; var ed = doc.Editor; var db = doc.Database; // 拡大 ZoomAll(); ed.Regen(); ed.UpdateScreen(); // プレビュー作成 var sz = CADApplication.MainWindow.DeviceIndependentSize; var dHheight =…(Continue Reading)

ブロック定義内の図形を直接編集するコーディング方法を教えて下さい。

投稿者: Anonymous ブロック定義内の図形を直接編集するコーディング方法を教えて下さい。 例えばブロック定義内の円図形の半径を変更する、など。 過去には一度ブロックを分解して、編集、再度ブロック化といった手順で行っておりましたが、現在はブロックの分解は不要というようなお話を伺いました。 もし、サンプルコード等があればご提示いただけると助かります。 以上、よろしくお願いします。 解決 ブロック内の円を選択して、円の半径を入力した半径に変更するサンプルコードです。 public void TestCommand() { var db = Application.DocumentManager.MdiActiveDocument.Database; var ed = Application.DocumentManager.MdiActiveDocument.Editor; var nentres = ed.GetNestedEntity(“nSelect nested circle”); if (nentres.Status != PromptStatus.OK) return; using (var tr = db.TransactionManager.StartTransaction()) { foreach(var id in nentres.GetContainers()) { using (var insert = tr.GetObject(id, OpenMode.ForRead) as BlockReference) { if (insert ==…(Continue Reading)

IJCADで印刷処理を行う時にBlockTableRecordのNameに値を設定しても反映されない

投稿者: Anonymous IJCAD 2018 MechanicalでC#を使用してAutoCADのソースを移植する作業を行っております。 処理の一つに図面を印刷する機能があるのですが 図面が小さい場合はモデル空間に作図された図面をそのまま印刷し、 図面が大きい場合はレイアウト空間に図面を移動させて 範囲を指定してズームを行い、分割して印刷する機能があります。 レイアウト空間に移動を行う理由は、印刷対象となる図面には図枠が存在するのですが その図枠の中だけを拡大したいため、ビューポートを利用しているからです。 図面が小さい場合の印刷は正常にできるのですが、 図面が大きい場合のレイアウト空間に移動を行う処理で BlockTableRecordのNameに値を設定しても反映されない不具合が発生しています。 Document acDoc = Application.DocumentManager.MdiActiveDocument; Database acCurDb = acDoc.Database; using (acDoc.LockDocument()) using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction()) { // カレントレイアウトの切替 LayoutManager acLayoutMgr = LayoutManager.Current; // テンプレートファイル読み込み用データベース Database acExDb = new Database(false, true); acExDb.ReadDwgFile(“テンプレートファイルパス”, FileOpenMode.OpenForReadAndAllShare, true, “”); // テンプレートファイル読み込み用データベースのトランザクション using (Transaction acTransEx = acExDb.TransactionManager.StartTransaction())…(Continue Reading)

図面を開かずにレイアウトを削除する方法を教えて下さい。

投稿者: Anonymous IJCAD2016でvb.bet(.net api)を使用して開発を行っています。 モデル以外のレイアウトを全て削除する機能を実装しています。 今回のレイアウト削除にあたり対象図面は開かずにReadDwgFileでDatabaseを読み込み、裏で削除する必要があります。 現在、コーディングがわからずとりあえずLayout をErase()しています。 Using icdTrans As Transaction = db.TransactionManager.StartTransaction Try Dim ldic As DBDictionary = IcadTrans_GetObject(icdTrans, db.LayoutDictionaryId(), OpenMode.ForWrite) For Each dbObj As DBDictionaryEntry In ldic ‘レイアウト取得 Dim icdLayout As Layout = IcadTrans_GetObject(icdTrans, ldic.GetAt(dbObj.Key), OpenMode.ForWrite) Dim btr As BlockTableRecord = IcadTrans_GetObject(icdTrans, icdLayout.BlockTableRecordId, OpenMode.ForWrite) ‘モデル空間は除外 If UCase(btr.Name) = UCase(BlockTableRecord.ModelSpace) Then Continue For…(Continue Reading)

IJCAD2018 でC#でのプログラミングにおけるaccore.dllとの互換性について

投稿者: Anonymous IJCAD2018を使用してC#で開発を行っております。 AutoCADの場合、 [DllImport(“accore.dll”, CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)] private static extern int acedEntSel(String str, out AdsName objName, double[] result); とすることでacadEntSelを呼び出すことができるようになり、 これを使用することでユーザーが選択したオブジェクトのIDや座標を取得することが できるのですが、これはIJCAD2018では互換性のあるDLLなどは存在しないのでしょうか? 解決 IJCADの.NETからacadEntSel関数を使用するには、 [DllImport(“gced.dll”, CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl,EntryPoint = “gcedEntSel”)] public static extern int acedEntSel(String str, out ads_name entres, double[] ptres); とすることで、関数を呼び出すことが出来ると思います。 回答者: Anonymous

IJCADでレイアウト空間にオブジェクトをコピーすると図枠やビューポートがはみ出る

投稿者: Anonymous IJCAD 2018 MechanicalでC#を使用してAutoCADのソースをIJCADに移植する作業を行っております。 機能の一つにモデル空間の図面をレイアウト空間にコピーして 指定した範囲で拡大して印刷を行う機能があるのですが、 レイアウト空間にオブジェクトをコピーした後に、図枠やビューポートがずれてしまう現象が 発生してしまいます。 テンプレートファイルをIJCADでオープンした場合は正常です。 テンプレートのイメージはこのようなものです。 赤い枠がビューポートなのですが、 この中に図面をコピーして範囲を指定しズームをかけて印刷を行いたいのですが、 現状ではレイアウト空間にオブジェクトをコピーすると このようになってしまいます。 オブジェクトをコピーした後にこのようなソースを追加してみましたが期待した結果にはなりませんでした。 PlotSettingsValidator icPlSetVdr = PlotSettingsValidator.Current; icPlSetVdr.SetPlotType(lay, GrxCAD.DatabaseServices.PlotType.Layout); icPlSetVdr.SetUseStandardScale(lay, true); icPlSetVdr.SetStdScaleType(lay, StdScaleType.ScaleToFit); icPlSetVdr.SetPlotCentered(lay, true); どのようにすれば図枠やビューポートが正常に表示されるのでしょうか。 解決 図枠と赤い枠のビューポートがはみ出てしまっているのは、コピー元のレイアウトの用紙設定とコピー先のレイアウトの用紙設定の余白の設定が違うために発生していると思います。 大きくはみ出てしまっているビュポートは、ビューポートの左下の点の座標が図枠内の座標になるように、ビューポートを移動してみてください。 回答者: Anonymous

IJCADの.NETで寸法値の色を変更する方法

投稿者: Anonymous 寸法値の色を変更しようと以下のようにした場合には 寸法線のみの色が変更されます。 寸法値のみの色を変更する方法はないでしょうか。 Document doc = Application.DocumentManager.MdiActiveDocument; using(Transaction trans = doc.TransactionManager.StartTransaction()) { ObjectId ObjId;// 寸法線のObjectIDが代入されています Dimension dim = trans.GetObject(ObjId,OpenMode.ForWrite) as Dimension; dim.Color = GrxCAD.Colors.Color.FromRgb(0, 0, 0); } 解決 寸法オブジェクトのDimclrtプロパティを変更することで、寸法値の色を変更することができます。 回答者: user30469

IJCADのgced.dllについて

投稿者: Anonymous IJCAD2018MechanicalでC#を使用してAutoCADの時のソースを移植する作業を行っております。 エンティティを選択してフィレットを行う処理があるのですが、AutoCADの時は // Import部分 [DllImport(“accore.dll”, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl, EntryPoint = “acedCmd”)] private static extern int acedCmd(System.IntPtr vlist); // フィレット実行部分 ResultBuffer buf = new ResultBuffer(); buf.Add(new TypedValue(5005, “_FILLET”)); buf.Add(new TypedValue(5009, pt1)); buf.Add(new TypedValue(5009, pt2)); acedCmd(buf.UnmanagedObject); で動作していたのですが、IJCADに移植を行う際に // Import部分 [DllImport(“gced.dll”, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl, EntryPoint = “gcedCmd”)] というふうにImport部分を変更しましたが、これで実行しようとすると 「DLL ‘gced.dll’…(Continue Reading)

ads_commandによるOPENコマンドの実行に失敗します

投稿者: Anonymous 現在、IJCAD2013からIJCAD2018へのマイグレーションを行っております。 ads_command(RTSTR,_T(“.OPEN”),RTSTR,filePath,RTNONE); 上記の処理を実行すると、「コマンドが認識されません」と表示され図面のオープンに失敗します。 IJCAD2013の時には問題なく動作していて、今回もコード自体は特に変更ない状態です。 同じ位置で「ZOOM」を実行した場合は認識されました。 また、マイグレーション前後の環境は下記の通りです。 [前] Windows7(32bit) IJCAD2013(32bit) [後] Windows10(64bit) IJCAD2018(32bit) 何か回避策があればご教示いただけないでしょうか。よろしくお願いいたします。 追記 ご教示いただいた方法で実装したところ、望む動作になりました。 ありがとうございます。 前) void dwgopen() { … ads_command(RTSTR,_T(“.OPEN”),RTSTR,filePath,RTNONE); //元々開いていた図面を閉じる処理 … } 後) void openDocHelper( void *pData) { AcApDocument* pDoc = acDocManager->curDocument(); if (acDocManager->isApplicationContext()) { acDocManager->appContextOpenDocument((const GCHAR *)pData); } else { acutPrintf( _T(“nドキュメント作成に失敗: %s”),(const char *)pData ); } //元々開いていた図面を閉じる処理 ……(Continue Reading)

IJCADで円を作図するコマンドでビルドエラーになる

投稿者: Anonymous IJCAD2017(64bit Pro)で、中心の位置を指定してから半径の値を入力すると、円が作図されるコマンドを作成しています。 半径の指定で終了位置をリアルタイム表示させたいのですが、以下のコード★の箇所でビルドエラーとなってしまいます。 どこを修正すれば良いかわからなくなってしまったので、どなたか教えていただけないでしょうか。 よろしくお願いいたします。 //中心座標を入力する PromptPointOptions pOption = new PromptPointOptions(“n中心座標を入力してください。”); PromptPointResult pResult = editer.GetPoint(pOption); if (pResult.Status != PromptStatus.OK) { return; } Point3d center = pResult.Value; //半径を入力 PromptDoubleOptions dOption = new PromptDoubleOptions(“n半径を入力してください。”); //開始座標を起点として、終了座標をリアルタイムで表示させる dOption.UseDefaultValue = true; dOption.DefaultValue = pResult.Value; //★ PromptDoubleResult dResult = editer.GetDouble(dOption); double radius = dResult.Value; <エラーメッセージ> 型 ‘GrxCAD.Geometry.Point3d’ を型 ‘double’ に暗黙的に変換できません。…(Continue Reading)

IJCAD 文字スタイルにて「MS Pゴシック」を設定する方法

投稿者: Anonymous IJCADの文字スタイルにて「MSゴシック」は、以下のコードで設定できるのですが、 「MS Pゴシック」はどのようにすれば設定できるのでしょうか? Dim txtStyleTblRec As TextStyleTableRecord = New TextStyleTableRecord() With txtStyleTblRec .Name = styleName .FileName = “C:WindowsFontsmsgothic.ttc” .TextSize = 0 End With 解決 文字スタイルにTrueTypeフォントを設定する場合は、FileName プロパティを使用するのではなく、Fontプロパティを使用してフォントを割り当てるようにしてください。 AutoCADのヘルプですが次の記事が参考になると思います。 フォントを割り当てる(.NET) Dim font = New FontDescriptor(“MS Pゴシック”, False, False, 128, 50) このような感じで、FontDescriptorオブジェクトを作成して、Fontプロパティに割り当てることで、文字スタイルに「MS Pゴシック」を設定できると思います。 回答者: user30469

IJCAD 2018 Proで、IJCAD 6.4 Proで「HATCH」コマンドを行った時と同じ結果にしたい

投稿者: Anonymous 現在、IJCAD 6.4 Pro(C++)からIJCAD 2018 Pro(C#)へカスタマイズコマンドの移植を行っています。 旧環境の方で、ハッチを作成しているコマンドがございます。 そのコマンド内で、標準コマンド「.HATCH」を実行しています。 ads_command(RTSTR, “.HATCH”, RTSTR, “ANSI31”, RTSTR, “100”, RTSTR, “0”, RTENAME, entParent, RTSTR, “”, RTNONE); ※entParentはこちらを呼び出す前に作成した閉じたポリラインの図形名 同じことを新環境でやろうと考え、以下の2つを行いました。 ①acedCmdを用いて、同じように標準コマンド「.HATCH」を行った。 ResultBuffer req = new ResultBuffer(); req.Add(new TypedValue((int)ResultCode.RTSTR, “.Hatch”)); req.Add(new TypedValue((int)ResultCode.RTSTR, “ANSI31”)); req.Add(new TypedValue((int)ResultCode.RTSTR, “100”)); req.Add(new TypedValue((int)ResultCode.RTSTR, “0”)); req.Add(new TypedValue((int)ResultCode.RTENAME, entParent)); req.Add(new TypedValue((int)ResultCode.RTSTR, “”)); acedCmd(req.ResbufObject); ※entParentはこちらを呼び出す前に作成した閉じたポリラインのObjectId ②Hatchオブジェクトを用いて、同形式のハッチを作成した。 Document doc = Application.DocumentManager.MdiActiveDocument;…(Continue Reading)

IJCAD 2018 MechanicalでDWGからBMPを抜き出す

投稿者: Anonymous IJCAD 2018 MechanicalでC#を使用してAutoCADのソースを移植する作業を行っております。 機能の1つに「配置選択」というボタンがフォームにあり、それを押下すると 対象のDWGを4方向から見たイメージがボタンに貼り付けられ、ユーザーが選択したボタンの 配置が設定されるという機能があるのですが 今回のAUTOCADからIJCADへの移植に伴い、DWGのバージョンがAC1015からAC1027へと上がりました。 なので事前にDWGをAUTOCADの2013形式で保存してもらっているのですが 以前まで正常に動いていたイメージの抜き出しを行うロジックが動作しなくなってしまいました。 しかし、どのようにプログラムを変更すればイメージが抜き出せるかがわかりません。 プログラムは下記のようなプログラムになります。 FileStream DwgF = null; // ファイルストリーム int PosSentinel; // ファイル記述ブロック BinaryReader br = null; // バイナリファイルを読む int TypePreview; // サムネイルフォーマット int PosBMP; // サムネイル位置 int LenBMP; // サムネイルのサイズ short biBitCount; // サムネイルビット深度 BITMAPHEADER BiH; // BITMAPファイルヘッダー, DWGファイルにはファイルヘッダーが含まれていない byte[] BMPInfo; // BMPファイルのDWGファイルに含まれています MemoryStream…(Continue Reading)