Последние сообщения

Последние сообщения

Страницы: 1 ... 6 7 [8] 9 10
71
При поиске из страницы топика нашелся только один ответ, почему-то.
Пользуйся этим поиском с выбором раздела или разделов и результаты в виде сообщений, а не тем.

72
AutoCAD .NET API / Re: Не могу получить AcadApplication через COM.
« Последний ответ от Gr.Om 30-10-2025, 16:07:46 »
И что-то поиск у тебя плохо работает. Только в разделе .NET у меня нашлось 104 сообщения с AcadApplication.
Как правило ищу в гугле, а не через поисковик форма. А с ним действительно не сразу понял, как он работает. При поиске из страницы топика нашелся только один ответ, почему-то. А если выйти из темы, то норм.
Да и в целом, когда сталкиваешься с проблемой еще плохо понимаешь, какие ключевые слова нужно использовать.
Когда целый день проковырялся, выяснил проблему, тогда уже понимаешь, почему тип AcadApplication является ключевым:)
А так - куча разных вариантов (учитывая левые придумки AI-чатов) и без контекста или прямого пояснения не понятно, как точно должно быть.
В DevGuide так же про взаимодействие с COM только вскользь и без подробностей.
73
И еще, для общего развития.. Способ через Marshal.GetActiveObject, выходит, используется только в случаях получения Application из других приложений?
Не только. В данном случае это лишнее внутри AutoCAD.
И что-то поиск у тебя плохо работает. Только в разделе .NET у меня нашлось 104 сообщения с AcadApplication.
74
AutoCAD .NET API / Re: Не могу получить AcadApplication через COM.
« Последний ответ от Gr.Om 29-10-2025, 20:14:00 »
Как раз поиском трудно найти что-то дельное и относящееся к проблеме. К примеру поиск по "AcadApplication" дает ссылку на единственный пост:



Я кстати встречал этот вариант в другом источнике, но подумал, что получу им объект API, а не COM и не стал пробовать.
Правильно ли я понимаю, что изнутри автокада правильный и единственный способ именно такой:

AcadApplication COMApp = Application.AcadApplication as AcadApplication;
И еще, для общего развития.. Способ через Marshal.GetActiveObject, выходит, используется только в случаях получения Application из других приложений?
75
На этом форуме и конкретно в этом разделе есть множество примеров получения и использования AcadApplication. Воспользуйся поиском.
76
AutoCAD .NET API / Re: Не могу получить AcadApplication через COM.
« Последний ответ от Gr.Om 29-10-2025, 19:58:20 »
Да нет, в разных источниках находил. В т.ч. вполне авторитетных)):

77
Во всех примерах объект получают в таком виде:
Это ChatGPT такое предложил?
78
AutoCAD .NET API / Не могу получить AcadApplication через COM.
« Последний ответ от Gr.Om 29-10-2025, 19:44:28 »
Подскажите, пожалуйста, - как это правильно делается. Во всех примерах объект получают в таком виде:



Но VS стабильно пишет ошибку "Marshal" не содержит определение "GetActiveObject". Бьюсь полдня, перепробовал все рекомендации.
Подключил уже кучу всего в проект:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

  <ItemGroup>
    <COMReference Include="AutoCAD">
      <WrapperTool>tlbimp</WrapperTool>
      <VersionMinor>0</VersionMinor>
      <VersionMajor>1</VersionMajor>
      <Guid>4d6c720c-0525-4d94-841b-6d5378a564e2</Guid>
      <Lcid>0</Lcid>
      <Isolated>false</Isolated>
      <EmbedInteropTypes>true</EmbedInteropTypes>
    </COMReference>
    <COMReference Include="AXDBLib">
      <WrapperTool>tlbimp</WrapperTool>
      <VersionMinor>0</VersionMinor>
      <VersionMajor>1</VersionMajor>
      <Guid>0ea72311-df28-4318-a51b-92d7fc7df50b</Guid>
      <Lcid>0</Lcid>
      <Isolated>false</Isolated>
      <EmbedInteropTypes>true</EmbedInteropTypes>
    </COMReference>
  </ItemGroup>

  <ItemGroup>
    <Reference Include="accoremgd">
      <HintPath>..\..\..\CAD\NET\OARX\CDROM1\inc\AcCoreMgd.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="Acdbmgd">
      <HintPath>..\..\..\CAD\NET\OARX\CDROM1\inc\AcDbMgd.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="acmgd">
      <HintPath>..\..\..\CAD\NET\OARX\CDROM1\inc\AcMgd.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="Autodesk.AutoCAD.Interop">
      <HintPath>..\..\..\CAD\NET\OARX\CDROM1\inc-x64\Autodesk.AutoCAD.Interop.dll</HintPath>
    </Reference>
    <Reference Include="Autodesk.AutoCAD.Interop.Common">
      <HintPath>..\..\..\CAD\NET\OARX\CDROM1\inc-x64\Autodesk.AutoCAD.Interop.Common.dll</HintPath>
    </Reference>
  </ItemGroup>

</Project>

Marshal точно из нужного пространства:



Чего не хватает?
79
Что в целом не отменяет меньшую функциональность по сравнению с VBA.
Никто не мешает использовать в AutoCAD.NET API элементы COM/ActiveX (т.е. то, что есть в VBA).
80
AutoCAD .NET API / Re: Где в справке искать метод .Select()?
« Последний ответ от Gr.Om 28-10-2025, 14:10:47 »
Да, был неправ частично..
Вот так нагляднее видно, что большая часть поддерживает фильтрацию.



Что в целом не отменяет меньшую функциональность по сравнению с VBA.
Страницы: 1 ... 6 7 [8] 9 10