Перейти к содержанию

Имитация ввода команд в командную строку из VBA


Рекомендуемые сообщения

Учусь по замечательной статье  Дмитрия Руденко habr.com/ru/post/238867 про Nanocad и VBA работать с Нанокадом.

 

Столкнулся с такой проблемой.

Отлично работает имитация ввода простых команд в командную строку, например
ThisDrawing.SendCommand «CIRCLE» & vbCr & «100,100,0» & vbCr & «1000» & vbCr

Но как работать с командами, после которых открываются модальные окна?


Конкретно, мне нужно выполнить команду «pdfimport». Но после этой команды открывается окно открытия файла (а после него — окно выбора параметров импорта), то есть вариант типа ThisDrawing.SendCommand «pdfimport» & vbCr & file_name & vbCr &…
не работает.

 

Возможно, можно как-то выполнить эту процедуру и без командной строки, но такого я тоже не знаю.

 

Общая задача - импортировать чертежи из множества pdf-файлов. Поэтому этот алгоритм должен выполнятся сам, автоматически, без открытия каких-либо окон.

Ссылка на сообщение
Поделиться на другие сайты
17 минут назад, Андрей Х сказал:

 алгоритм должен выполнятся сам, автоматически, без открытия каких-либо окон.

я сейчас подобные кейсы решаю на RPA. c окнами но скриптом. так тоже бывает.
https://www.youtube.com/watch?v=wU16fhQdfNw

либо разбирайтесь с .net/multicad api - оно самое развитое пожалуй.
P.S. ну и конечно "ThisDrawing.SendCommand" - это стоит использовать только тогда , когда в API нет прямого вызова нужно функции.

Изменено пользователем Ivanco
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Расскажите друзьям

    Нравится Официальный форум компании Нанософт? Расскажите друзьям!
  • Похожий контент

    • От Kreator
      4 листа в документе. Листы повёрнуты на 0, +90, -90 и 180 градусов. При вставке видим неправильный поворот в предпросмотре и в процессе вставки.
       
    • От Lion2032
      Есть XML одно из вертикалок Нано.
      Нужно вытащить данные в Эксель.
       
      Дынный код

      point.ChildNodes(1).ChildNodes(1).ChildNodes(1).ChildNodes(1).ChildNodes(1).ChildNodes(3).Text
      вытаскивает следующую строку
       
      Pр (Pном), кВт 11,5
       
      А мне нужны только цифры (11,5) , подскажите что нужно сделать?
       
      Часть исходного кода

      -<Child TypeName="DocRecordFieldItem"> -<Properties> <ColumnName>Pр (Pном), кВт</ColumnName> <Value>11,5</Value> </Properties> </Child>
      РП3.xml
    • От doctorraz
      Собственно код ниже.
      Не получается получить элемент коллекции Layouts (Листов) по имени элемента. попытка приводит к зависанию и вылету Нано 10.1
      Что интересно аналогичный код но с Layers (Слоями) работает.
      Посмотрите, кто понимает.. я недогоняю или ушу ActiveX Нано недостаточно хорош

      Sub Test() Set objApp = GetObject(, "NanoCAD.Application") Set ThisDraw = objApp.ActiveDocument Set Layouts = ThisDraw.Layouts ReDim arOld(Layouts.Count - 2, 1) For Each Layout In Layouts strTmpName = Layout.Name If strTmpName = "Model" Then GoTo SKIP ' Skip modelspace arOld(n, 0) = strTmpName strTmpOrder = Layout.taborder arOld(n, 1) = strTmpOrder n = n + 1 SKIP: Next Stop sLname = arOld(1, 0) Set tempLayout = Layouts(sLname) 'тут зависание и вылет нано End Sub
    • От Doctor_Che
      При имортировании PDF возникает следующая проблема.
      В данных для PDF импота указываю "Векторная геоматрия". Большинство линий распознаются нормально, но некоторые примитивы замыкаются.
      Как можно этого избежать?
       
      Фрагмент исходного PDF

       
      Проблема на распознанном файле



×
×
  • Создать...