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

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

Страницы: [1] 2 3 ... 10
1
Inventor API / Re: ScreenUpdating как с ним работать
« Последний ответ от mikazakov 28-06-2022, 13:13:19 »
на время обработки можно вызвать стандартный прогресс-бар через АПИ
2
Inventor API / ScreenUpdating как с ним работать
« Последний ответ от filat18 28-06-2022, 08:05:29 »
Казалось бы возможность отключения обновления экрана хорошая штука, позволяющая избавить пользователя от мельтешения на время обработки кода...
Но вот реализация ScreenUpdating, на мой взгляд, сильно подкачала - похоже вместо окна АИ на экране остается только рисунок окна. И в случае нажатия курсора - пользователь выполняет действия над объектами, которые находились под окном АИ (то ли это рабочий стол, то ли какие-то иконки, то ли окна других программ...).
Я вот думаю может лучше ставить свою картину, которая бы закрывала только область моделирования и оставляла в доступности интерфейс АИ?
3
Подскажу еще один реально работающий способ, без регистрации и смс. Гугел называется :)
https://www.google.com/search?channel=crow5&q=autodesk+net+developer+guide

Разве там книга??? Хотя можно и сам гугл в каком то смысле наверное книгой назвать.
4
RevitTormentor,
Единственный недостаток у этой документации - её неполная актуальность, так как она соответствует AutoCAD 2010.
5
AutoCAD .NET API / Сравнение среды
« Последний ответ от D_TRex 26-06-2022, 20:50:37 »
Правила форума гласят, надо создавать новую тему. Так вот писал через WinForm с подключением к AutoCAD прогу, тут советовали что ObjectARX (надеюсь верно написал) это сила, в итоге стал писать плагин (с терминами я ещё плаваю, но по коду ниже будет ясно). Ну так вот бился, я бился и попробовал код из WinForm поместить в плагин, оказалось добавляешь ссылки и всё работает, а в итоге, вот как выглядит список листов чуждом мне языке
Код - vb.net [Выбрать]
  1.  ' получаю список всех листов
  2.         acDoc = Application.DocumentManager.MdiActiveDocument
  3.          Dim acCurDb As Database = acDoc.Database
  4.          Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction()
  5.          Dim lays As DBDictionary = acTrans.GetObject(acCurDb.LayoutDictionaryId, OpenMode.ForRead)
  6.          grdLayout.Rows.Clear()
  7.          For Each item As DBDictionaryEntry In lays
  8.          grdLayout.Rows.Add()
  9.          grdLayout.Rows(grdLayout.RowCount - 1).HeaderCell.Value = Str(grdLayout.RowCount)
  10.          grdLayout.Rows(grdLayout.RowCount - 1).Cells(1).Value = item.Key
  11.          grdLayout.Rows(grdLayout.RowCount - 1).Cells(2).Value = "Клик" ' item.Value
  12.          Next
  13.          acTrans.Abort()
  14.          End Using
и вот так в моём родном VB
Код - vb.net [Выбрать]
  1.         Dim acApp As Autodesk.AutoCAD.Interop.AcadApplication
  2.         Dim CadDoc As Autodesk.AutoCAD.Interop.AcadDocument
  3.         acApp = Autodesk.AutoCAD.ApplicationServices.Application.AcadApplication
  4.         CadDoc = acApp.ActiveDocument
  5.         X = 0
  6.         grdLayout.Rows.Clear()
  7.         Do Until X = CadDoc.Layouts.Count
  8.             grdLayout.Rows.Add()
  9.             grdLayout.Rows(grdLayout.RowCount - 1).HeaderCell.Value = Str(CadDoc.Layouts.Item(X).TabOrder)
  10.             grdLayout.Rows(grdLayout.RowCount - 1).Cells(1).Value = CadDoc.Layouts.Item(X).Name
  11.             grdLayout.Rows(grdLayout.RowCount - 1).Cells(2).Value = "Клик"
  12.             grdLayout.Rows(grdLayout.RowCount - 1).Cells(3).Value = CadDoc.Layouts.Item(X).StyleSheet
  13.             grdLayout.Rows(grdLayout.RowCount - 1).Cells(4).Value = CadDoc.Layouts.Item(X).TabOrder
  14.             X = X + 1
  15.         Loop
при этом я ещё и могу получить и изменять стиль печати не активного листа.

В данной теме нет вопроса, как оказалось проблема не в языке, а в среде использования, так что VB по сей день живой язык и куча примеров "макросов" и кода намного меньше и полезнее, но в итоге конечно лучше гибрид, правда наверное влияет на производительность.
Конечно если Вы только вступаете в "кодеры" то лучше прислушайтесь к гуру, а если "со стажем" то вполне всё работает, просто надо скачать Wizard (тут не посоветую, у меня из трёх машин стало только на одну) и немного "танцев с бубном" и пойметё что и от куда происходит и как использовать.

P.S. по примеру по Object ARX у меня печать завершается (не понятной мне) ошибкой - код из примера, а вот NET API работает без проблем (конечно когда это плагин) когда это внешняя программа - постоянно сыпется ошибками которые не возможно не отловить, не диагностировать и как следствие исправить.
6
Подскажу еще один реально работающий способ, без регистрации и смс. Гугел называется :)
https://www.google.com/search?channel=crow5&q=autodesk+net+developer+guide
7
И чем, интересно, приведенная ссылка отличается от официального руководства разработчика?

Скорее всего ничем, кроме как то, что быстро можно его найти. Нажал кнопочку и оно загрузилось.
Где искать официальное руководство? SDK? Для многих вопрос - что это, и есть ли оно там? Да и где найти это SDK? Сейчас куча ссылок на сайте Autodesk, то по регистрации, то устарели. Держать на диске это руководство - норм, но для начала его надо найти, чтобы скачать, а где??? Goto чуть выше.
А упоминание в закреплённых ветках я не нашёл быстрого. Может и есть, где-то, но в теме "Полезная литература по программированию", это издание - должно быть на первых местах. Чтобы с него и начинали. А уж потом книги. Ну раз уж это руководство выполнено в виде книги, то я решил его сюда и добавить.
Если лишнее и где-то есть уже это руководство на форуме можно убрать. Никаких претензий с моей стороны не будет.
8
И не должно было помочь. Если ты собираешься зацикливать команду размера, то и её нужно в цикл. Как-то так (без проверок на ошибки):
Код - Auto/Visual Lisp [Выбрать]
  1. (defun c:des ( / oldlay olddim adoc lay newdim enl enl1 flag)
  2.  (vl-load-com)
  3.  (setq oldlay (getvar "clayer")
  4.        olddim (getvar "dimstyle")
  5.        adoc   (vla-get-activedocument (vlax-get-acad-object))
  6.        lay    "Размер"
  7.        newdim (cdr (assoc 3 (entget (car (entsel)))))
  8.  )
  9.  (vla-put-activedimstyle adoc (vla-item (vla-get-dimstyles adoc) newdim))
  10.  (vla-add (vla-get-layers adoc) lay)
  11.  (vla-put-color (vla-Item (vla-get-Layers adoc) lay) 5)
  12.  (setvar "clayer" lay)
  13.  (setq enl (entlast)
  14.        flag T)
  15.  (while flag
  16.   (command "_.dimaligned")
  17.   (while (/= (getvar "CMDACTIVE") 0) (command pause))
  18.   (setq enl1 (entlast))
  19.   (setq flag (not (equal enl1 enl)))
  20.   (setq enl enl1)
  21.  )
  22.  (princ)
  23. )
9
И чем, интересно, приведенная ссылка отличается от официального руководства разработчика?
10
Куча примеров для программирования в Автокаде. На все случаи жизни. Я там нашёл много чего "полезного"  :)
http://www.caddsoftsolutions.com/AutoCad%20.Net%20developers%20guide.pdf
Страницы: [1] 2 3 ... 10