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

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

Страницы: 1 ... 4 5 [6] 7 8 ... 10
51
Добрый день.
Столкнулся с проблемой.
Опишу как можно подробнее.
Имеется динамический блок
контур полилиния, заполнение ассоциативная штриховка.
Есть таблица выбора с размерами.
Если вставить в чертеж блок и вручную менять свойство то всё работает прекрасно, размеры полилинии изменяются, и штриховка под них подстраивается.
Но если тоже самое сделать программно, то полилинии изменяются, а вот штриховка не перерисовывается, остаётся такого размера как была в редакторе блока.

Поведение в разных версиях автокад разное.
В 2024 такой проблемы нет
в 2016  решается таким образом:
Код - C# [Выбрать]
  1.  
  2.    blockRefStart.RecordGraphicsModified(true);    
  3.    blockRefStart.RecordGraphicsModified(true);
  4.  

причём именно дважды RecordGraphicsModified.

В 2023 не получается никак. Хотя если выполнить _ATTSYNC то всё перерисовывается корректно. Но не вызывать же его после каждой вставки блока.

Свойство меняю так:
Код - C# [Выбрать]
  1.  foreach (DynamicBlockReferenceProperty prop in blockRefStart.DynamicBlockReferencePropertyCollection)
  2.         {
  3.                  if (prop.PropertyName == "Выбор1")
  4.                      {
  5.                           prop.Value = "Первый вариант";
  6.                           break;
  7.                       }
  8.          }
  9.  

Подскажите куда копать.
Спасибо!

52
DIMTIH в 0
DIMTOH в 0

Благодарю, Александр!
54
Добрый всем день!
Пытаюсь нанести размеры на чертеж.
При установке линейных размеров, текст на них у меня всегда располагается горизонтально, даже для вертикальных размеров:



Вручную я могу зайти в диспетчер размерных стилей и изменить размерный стиль, во вкладке Текст есть настройка "ориентация текста" с возможностью установить "Вдоль размерной линии":



Я попытался создать новый размерный стиль путём копирования существующего, но всё-равно не пойму, где такие настройки стиля найти, чтобы удалось установить текст вдоль размерной линии:
Извините, вам запрещён просмотр содержимого спойлеров.
55
Есть ли возможность реализовать в Autolispe  вызов типа данных ref ? Как обойти эту проблему?
Нет. Не пытайся передавать C#<->VisualLisp COM/ActiveX объекты.
56
AutoCAD .NET API / Как реализовать тип данных ref Object[] в AutoLispe?
« Последний ответ от alex-63 03-06-2025, 13:47:20 »
Какой тип данных соответствует  ссылке (exampe  C#   ref par
Код - C# [Выбрать]
  1.         object par = new Object[] { "" };
  2.         Obj.GetMnParam(ref par, OBP_VALUES);
  3.  
)
На JavaScript
Код - Javascript [Выбрать]
  1. var arrParam = new Array();
  2.       Obj.GetMnParam(arrParam, OBP_VALUES); // Получаем значения параметров
  3.  


в AutoLispe?

Реализация на AutoLIspe:
Импортирую typelibrary
Код - Auto/Visual Lisp [Выбрать]
  1.   (vlax-Import-Type-Library :tlb-filename file :methods-prefix    "sm-" :properties-prefix "sp-" :constants-prefix   "sc-")
  2.  (setq  refpar (vlax-make-variant (vlax-make-safearray  vlax-vbObject (cons 0 0))))
  3. (defun ak_list->variantArray0 (ptsList)    
  4. (vlax-make-variant (vlax-safearray-fill (vlax-make-safearray  vlax-vbvariant; element type
  5.                                           (cons 0 ;from
  6.                                                 (- (length ptsList) 1) ;to
  7.                                                 ) ; array dimension
  8.                                         )                      
  9.                         (mapcar 'vlax-make-variant ptsList)
  10.                      );fill
  11.     )                                  
  12. )
  13.  
(setq  refpar   (ak_list->variantArray0 '("")))
Ни этот (sm-GetMnParam obj refpar OBP_VALUES);
Ни этот вызов не работает (sm-GetMnParam  obj  'refpar OBP_VALUES);
Зато передача по значению срабатывает :
(setq  lPtsArray (ak_list->variantArray0 lPts)) ;     // получить массив координат
(if PL (sm-AddPoints PL  lPtsArray))
Есть ли возможность реализовать в Autolispe  вызов типа данных ref ? Как обойти эту проблему?

57
Нужно передавать ObjectID или ENAME.  VLA-OBJECT передать нельзя.
58
Код - C# [Выбрать]
  1. [LispFunction("ak_list->variant0")]
  2.  public ResultBuffer AkListToVariant(ResultBuffer args)
  3.  {
  4.      return args; // Pass-through (no conversion)
  5.  }
  6.  

1) Вызов (AK_LIST->VARIANT0 1) -> (1)
2 (AK_LIST->VARIANT0 OBJ)
error: invalid data type or data overflow: #<VLA-OBJECT IAcadCircle 0000000039a599c8>
Почему ошибка и как разработать функцию принимающую и возвращающую типы данных  VLA-OBJECT ?
Как то же написана функция VLAX-ENAME->VLA-OBJECT  как реализовать ее на C++ или C#  ?

59
Добрый всем день! Подскажите, пожалуйста, как программно возможно изменить значение отображения ручки для конкретного параметра динамического блока? Если это возможно.
60
AutoCAD .NET API / Re: Ошибка записи содержимого json в xrecord
« Последний ответ от Atomohod 01-06-2025, 20:31:35 »
И еще мне непонятно зачем преобразовывать json в BinaryChank. Это же чисто текстовые данные, а не двоичные.
Я пытался сначала через Asciistring, но по неведомой причине при обратном извлечении из xrecord у меня постоянно не возвращались два последних знака json. На разных json. Загадка.
Страницы: 1 ... 4 5 [6] 7 8 ... 10