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

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

Страницы: 1 [2] 3 4 ... 10
11
VBA / Re: Python & ActiveX/COM Autocad
« Последний ответ от Александр Ривилис 14-01-2022, 22:40:48 »
Marik,
А разве не так должно быть:
Код - Python [Выбрать]
  1. mSp.AttachExternalReference("G:\\Python\\d1020ntr.dwg","Xref01",acadcoord(0, 0, 0),1,1,1,0,False)
?
12
VBA / Re: Python & ActiveX/COM Autocad
« Последний ответ от Marik 14-01-2022, 22:13:40 »
Подскажите, пожалуйста. Пытаюсь загрузить внешнюю ссылку в открытый файл dwg. Программа выдает такую ошибку:
"File "<COMObject <unknown>>", line 5, in AttachExternalReference
pywintypes.com_error: (-2147352567, 'Ошибка.', (0, 'AutoCAD.Application', 'Ошибка при доступе к файлу', 'C:\\Program Files\\Autodesk\\AutoCAD 2016\\HELP\\OLE_ERR.CHM', -2145386426, -2145386426), None)".
Что делаю не так? Вот код:

Код - Python [Выбрать]
  1. import win32com.client
  2. from pythoncom import VT_R8, VT_ARRAY, VT_DISPATCH, VT_VARIANT
  3.  
  4. appAutocad = win32com.client.GetActiveObject("AutoCAD.Application")
  5. aDoc = appAutocad.ActiveDocument
  6. mSp = aDoc.ModelSpace
  7.  
  8. def acadcoord(*args):
  9.     if isinstance(args[0], (list, tuple)):
  10.         coords = [item for item in args[0]]
  11.     else:
  12.         coords = args
  13.     return win32com.client.VARIANT(VT_ARRAY | VT_R8, coords)
  14.  
  15. mSp.AttachExternalReference("G:\Python\d1020ntr.dwg","Xref01",acadcoord(0, 0, 0),1,1,1,0,False)
13
Revit API / Re: Границы видимых элементов
« Последний ответ от enot 13-01-2022, 14:31:57 »
у меня было так
тоже вариант)

Александр Игнатович,  подсказал более "Ревитовский" способ, так что теперь будем знать)
14
Revit API / Re: Границы видимых элементов
« Последний ответ от ivmax 13-01-2022, 14:28:46 »
у меня было так

Код - C# [Выбрать]
  1.             var bbs = elems.Where(x => x is not null).Select(x => x.get_BoundingBox(null));
  2.             var mins = bbs.Select(x => x.Min);
  3.             var maxs = bbs.Select(x => x.Max);
  4.  
  5.             var min = new XYZ(mins.Min(x => x.X), mins.Min(x => x.Y), mins.Min(x => x.Z));
  6.             var max = new XYZ(maxs.Max(x => x.X), maxs.Max(x => x.Y), maxs.Max(x => x.Z));
  7.  
  8.             bb = new BoundingBoxXYZ()
  9.             {
  10.                 Min = min - new XYZ(offset, offset, offset),
  11.                 Max = max + new XYZ(offset, offset, offset)
  12.             };
15
Revit API / Re: Границы видимых элементов
« Последний ответ от enot 13-01-2022, 14:22:59 »
ivmax,
я создавал в ручную новый ББ, брал все мин координаты минимальных точек и макс координаты максимальных точек, возможно это не самый оптимальный вариант, другого способа не нашел
Вы здесь работали с outline или только координаты Min Max использовали?
16
Revit API / Re: Границы видимых элементов
« Последний ответ от enot 13-01-2022, 14:20:55 »
нет. Если точка внутри, то outline не изменится, если снаружи - то растянется
Тогда это то что нужно!
17
Revit API / Re: Границы видимых элементов
« Последний ответ от enot 13-01-2022, 14:20:18 »
так понял, новая точка будет добавлена , только если она приведет к расширению существующего outline , верно?
18
Revit API / Re: Границы видимых элементов
« Последний ответ от Александр Игнатович 13-01-2022, 14:20:08 »
Создаем из BoundingBox-а первого элемента.
когда мы добавляем новую точку , может быть такое что новый outline будет короче прежнего  то есть будет

нет. Если точка внутри, то outline не изменится, если снаружи - то растянется
19
Revit API / Re: Границы видимых элементов
« Последний ответ от enot 13-01-2022, 14:09:44 »
Цитировать
   Outline(XYZ, XYZ)   
Constructor that uses a minimum and maximum XYZ point to initialize the outline.

Цитировать
   AddPoint   
Adds a point to the bounding box, expanding it if the point is outside the existing boundary.

- когда мы добавляем новую точку , может быть такое что новый outline будет короче прежнего  то есть будет
не
Цитировать
outside the existing boundary.
а
inside the existing boundary.
20
Revit API / Re: Границы видимых элементов
« Последний ответ от Александр Игнатович 13-01-2022, 14:07:51 »
Outline - это линия из двух точек



Цитировать
Outline is a generic object that provides a bounding box/bounding outline. It supports operations to scale and transform. It also supports intersections and contains operations
Страницы: 1 [2] 3 4 ... 10