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

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

Страницы: 1 [2] 3 4 ... 10
11
AutoCAD .NET API / Re: Не могу получить AcadApplication через COM.
« Последний ответ от Gr.Om 29-10-2025, 19:58:20 »
Да нет, в разных источниках находил. В т.ч. вполне авторитетных)):

12
Во всех примерах объект получают в таком виде:
Это ChatGPT такое предложил?
13
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 точно из нужного пространства:



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



Что в целом не отменяет меньшую функциональность по сравнению с VBA.
16
а в NET почему-то только .GetSelection (.SelectOnScreen в VBA) удостоился этой чести.
Нет. Смотри внимательно документацию.
https://help.autodesk.com/view/OARX/2024/ENU/?guid=OARX-ManagedRefGuide-Autodesk_AutoCAD_EditorInput_Editor_SelectWindow_Point3d_Point3d_SelectionFilter


17
AutoCAD .NET API / Re: Где в справке искать метод .Select()?
« Последний ответ от Gr.Om 28-10-2025, 09:18:32 »
Ровно так же, как и в NET. Создание выборки с использованием другой выборки возможно (только?) через .SelectPrevious (на VBA это .Select acSelectionSetPrevious), собственно на картинке он и используется.
Вопрос был в том, что на VBA все способы создания SelectionSet могут использовать фильтрацию, а в NET почему-то только .GetSelection (.SelectOnScreen в VBA) удостоился этой чести.
Из того, что успел изучить в части методов получения наборов выделения, .NET предоставляет ровно тот же перечень инструментов только с обрезанной функциональностью. Поэтому я собственно и задался вопросом. Т.к. только начал штудировать Reference Guide по .NET, возможно далеко не всю картину вижу. Но то, что вижу, что-то как-то расстроило.
18
Ну и где ты нашел, что в VBA для метода Select на вход можно подать набор?
19
AutoCAD .NET API / Re: Где в справке искать метод .Select()?
« Последний ответ от Gr.Om 28-10-2025, 00:37:30 »
И все же еще раз. Может я чего-то недопонимаю в великом и могучем .NET.
Если в VBA я могу в методе .Select выбрать любой способ выделения, и каждый из этих способов может сделать DXF-фильтрацию:



То для API это уже неподъемная задача?!
20
Костыль - это загнать твой набор в набор предварительного выбора Editor.SetImpliedSelection, а затем использовать GetSelection с фильтром. При этом если был набор предварительного выбора, то он пропадает. Ну и команда должна быть с флагом Redraw. Или перебором. Если фильтр простой, то метод с перебором предпочтительней.
Страницы: 1 [2] 3 4 ... 10