| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Работа с браузером AutoCAD-a

Работа с браузером AutoCAD-a

Ответ
Поиск в этой теме
Непрочитано 24.10.2008, 10:30 #1
Работа с браузером AutoCAD-a
Supermax
 
Руководитель фирмы
 
Москва
Регистрация: 28.03.2007
Сообщений: 1,831

В AutoCAD-e есть свой браузер. Запускается он через метод LaunchBrowserDialog. Запускается он с кучей аргументов, но мне надо его запускать из под COM объекта самого AutoCAD-a - AutoCAD.Application.
Если я смогу это сделать, то узнаю, может этот браузер предоставлять доступ к событиям на странице или нет. Если может, то вебмакросы будут работать не на эксплорере, а на собственном Автокадовском браузере.
Вуду очень благодарен всем, кто мне поможет это выяснить.
Просмотров: 4049
 
Непрочитано 24.10.2008, 10:52
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Ничего не понял. LaunchBrowserDialog сам по себе (по крайней мере внутри справки) не существует и может быть запущен только из-под класса Utility:
Код:
[Выделить все]
Sub Example_LaunchBrowserDialog()
    ' This example will prompt the user for a URL to download and will verify that
    ' a proper URL was entered.  After downloading, the example will attempt to load
    ' the downloaded URL as a drawing.
    '
    ' * Note: Remember to delete the downloaded file from your disk drive when finished.
    
    Dim Utility As AcadUtility
    Dim URL As String, DestFile As String, FileURL As String
    
    Set Utility = ThisDrawing.Utility   ' Connect to Utility object
    
GETURL:
    ' Prompt user for a URL to download.  This should be a URL to an AutoCAD drawing file.
    URL = InputBox("Enter the complete URL of the file you wish to download. " & _
                    "Enter BROWSER to select the URL from a web browser", _
                    "Enter URL To Download", URL)
    
    URL = Trim(URL)                     ' Get rid of blank spaces
    
    If URL = "" Then Exit Sub           ' Did user cancel

    ' Does the user want to select from a browser?
    If StrComp(URL, "BROWSER", vbTextCompare) = 0 Then
        Utility.LaunchBrowserDialog _
        URL, "AutoCAD Browser", "Open", "http://www.autodesk.com", "ACADBROWSER", True
        
        GoTo GETURL     ' Return to display chosen URL and allow modifications
    End If

    ' Determine if user entered a valid URL; if not, prompt again
    If Not (Utility.IsURL(URL)) Then
        MsgBox "The URL you entered is not valid.  Make sure the syntax is a valid URL."
        GoTo GETURL
    End If
        
    ' Download URL
    Utility.GetRemoteFile URL, DestFile, True
    
    ' Display downloaded file information
    MsgBox URL & " was downloaded to: " & DestFile & vbCrLf & vbCrLf & _
           "Press any key to attempt to load the new file as a drawing."

    ' Attempt to load file as drawing; if an error occurs, this was probably not a drawing
    ' file, but rather the text from a web page.
    ' Try loading the downloaded file into a text editor to view the contents.
    On Error Resume Next
    ThisDrawing.Application.Documents.Open DestFile
    If Err.Number <> 0 Then
        MsgBox "Error loading downloaded file as a drawing: " & Err.Description & vbCrLf & vbCrLf & _
               "This is probably not a valid drawing file!"
    End If
    On Error GoTo 0
    
    ' Use IsRemoteFile to determine if this file was downloaded from a URL.
    ' If it was, display the URL it was downloaded from
    '
    ' * Note: Although the results IsRemoteFile will return are already known because
    ' the file was just downloaded, it is important to know how this
    ' method can be used.
    If Utility.IsRemoteFile(DestFile, FileURL) Then
        MsgBox "The file: " & DestFile & " is a downloaded file and was downloaded from: " & FileURL
    Else
        MsgBox "The file: " & DestFile & " is not a downloaded file."
    End If

End Sub
Основное постарался выделить полужирным
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 24.10.2008, 13:54
#3
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Из этой книги п. 7.2.236

Код:
[Выделить все]
(vla-LaunchBrowserDialog
  (vla-get-Utility (vla-get-activedocument (vlax-get-acad-object))) ;_Объект utility
  'retstring                                                        ;_Строка возврата запишктся в эту переменную
  "Пример"                                                          ;_Заголовок окна
  "Жми здесь"                                                       ;_Название кнопки OK
  "www.dwg.ru"                                                      ;_Стартовая страница
  ""                                                                ;_? строка (ключ в реестре), содержащий постоянные параметры
  :vlax-true                                                        ;_разрешение выхода с подтверждением
                                                                    ;_:vlax-true - разрешен
                                                                    ;_:vlax-false - запрещен
  )
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 24.10.2008, 14:46
#4
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Так это я давно знаю. Я хочу сделать с браузером Автокада тоже самое, что мне помогли сделать с WScript.
Если я могу через COM AutoCAD.Application запускать лисп, то запустить браузер естественно тоже смогу. И со стороны это будет вглядеть как применение методов к AutoCAD.Application. Остается только сделать COM сервер и туда все эти методы и свойства прописать.
Вы же не отрицаете, что указатель на объект может быть обернут в COM?
Supermax вне форума  
 
Автор темы   Непрочитано 24.10.2008, 20:40
#5
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Интересная вещь получается. Автокадовский браузер модальный, но если я запускаю AutoCAD.Application как новое приложение, а с действующим устанавливаю связь, то браузер становится немодальным. Так е, ка-лы-мы-ны! DCL панели ведь тоже можно так запускать! Разбиваешь макрос на две половинки. Одна - DCL часть и ее обработка, а другая - функции, которые запускает первая часть из другого Автокада.
DCL становится немодальным! Правда он отстой и такой чести не достоин, уж лучше ObjectDCL, чем такое извращение, но всеж. Может пару библиотечных функций написать для этого?
Supermax вне форума  
 
Непрочитано 24.10.2008, 21:07
#6
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Не надо. Ресурсы машины не резиновые. И далеко не факт, что тебе удастся закрыть "дочерний" процесс acad.exe, если "родительский" аварийно завершится.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 24.10.2008, 21:35
#7
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Так надо в DCL панель кнопочку вделать с завершением со стороны того Автокада. Хотя это все баловство. Браузер надо так запускать, а остальное в порядке баловства.
Supermax вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Работа с браузером AutoCAD-a

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа в AutoCAD с сенсорной панелью Visboard tablet monitor yira Поиск литературы, чертежей, моделей и прочих материалов 1 19.07.2008 17:02
Коллективная работа в AutoCAD (подшивки) Pasha_sevkav AutoCAD 1 27.06.2008 13:10
Работа со старыми чертежами с помощью AutoCAD и Photoshop Shoorup AutoCAD 9 10.05.2007 23:41
Совместная работа CorelDRAW 12 и AutoCAD 2002 Ezdorov AutoCAD 9 31.08.2006 09:36