Как получить записи AutoCAD Symboltable по имени, используя C#C#

Место общения программистов C#
Ответить
Anonymous
 Как получить записи AutoCAD Symboltable по имени, используя C#

Сообщение Anonymous »

После многих лет использования VB.net я пытаюсь выучить C#, преобразовав многие из моих старых пользовательских библиотек AutoCAD из VB.net в C#. Мне трудно ссылаться на объекты таблицы символов (Dimstyles, слои и т. Д.) По имени. Если база данных рисунка называется DWGDB, активна транзакция с именем Actrans, и известно имя записи (RecName), вы можете сделать это, чтобы получить запись: < /p>

Код: Выделить всё

Dim dsTbl as DimStyleTable = acTrans.GetObject(dwgDB.DimStyleTableId, OpenMode.ForRead)
If dsTbl.Has(recName) then
Dim dsTblRec as DimStyleTableRecord = acTrans.GetObject(dsTbl(recName), OpenMode.ForWrite)
'Do some stuff with dsTblRec
End if
< /code>
в c# я попытался сделать то же самое, как это: < /p>
DimStyleTable dsTbl = (DimStyleTable)acTrans.GetObject(dwgdb.DimStyleTableId,OpenMode.ForRead);
If (dsTbl.Has(recName))
{
DimStyleTableRecord dsTblRec = (DimStyleTableRecord)acTrans.GetObject(dsTbl(recName), OpenMode.ForWrite);
//Do some stuff with dsTblRec
}
< /code>
и < /p>
DimStyleTable dsTbl = dwgDB.DimStyleTableId.GetObject(OpenMode.ForRead) as DimStyleTable;
DimStyleTableRecord dsTblRec = acTrans.GetObject(dsTbl(recName), OpenMode.ForWrite) as DimStyleTableRecord;
Я пробовал другие методы GetObject, но VisualStudio продолжает указывать, что существует ошибка для любой ссылки на DSTBL (RecName) . Это говорит мне, что DSTBL не нуль. Я позаботился о том, чтобы проверить это, поэтому я думаю, что упускаю что -то еще, что очень простое. Должен ли я переходить через каждую запись в таблице, чтобы найти нужную запись, которую я хочу, даже когда я знаю имя? Кажется немного неэффективным. Я пытался объявить DSTBLREC на отдельной линии и почти все остальное, о чем я могу думать. Это также является проблемой при попытке получить доступ к BlockTableRecords. В vb.net dstbl (recname) возвращает объект. Разве это не так для c#?

Подробнее здесь: https://stackoverflow.com/questions/796 ... ng-c-sharp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»