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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > поочередное включение слоев

поочередное включение слоев

Ответ
Поиск в этой теме
Непрочитано 10.11.2012, 12:45 #1
поочередное включение слоев
vaxo55
 
Регистрация: 05.04.2012
Сообщений: 35

как организовать поочередное включение слоев (допустим "A',"B","C") с интервалом 0,5 сек в VBA или VB.NET
спосибо за ранее
может ктонибудь подскажет ссылку как организуется функция timer.в VB6 знаю, а тут

Последний раз редактировалось vaxo55, 10.11.2012 в 14:20.
Просмотров: 5462
 
Непрочитано 10.11.2012, 13:52
#2
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,437
Отправить сообщение для maratovich с помощью Skype™


Насколько помню, если без перебора то так:
Код:
[Выделить все]
Dim layerObj
Set layerObj = ThisDrawing.Layers.Add(Здесь имя твоего слоя)
ThisDrawing.ActiveLayer = layerObj 'установить активный
layerObj.LayerOn = True  'False 'True'видимость
layerObj.Freeze = False   'False 'True'заморозка
Ну дальше хочешь в цикл хочешь принудительно задавай имя слоя и включай/выключай по таймеру.
maratovich вне форума  
 
Автор темы   Непрочитано 10.11.2012, 14:05
#3
vaxo55


 
Регистрация: 05.04.2012
Сообщений: 35


maratovich
большое спосибо но в VBA таймера нет. может подробно как с таймером если не лень
ожет укажете как функцияTIMER работает в VB6 знаю как а тут...

Последний раз редактировалось vaxo55, 10.11.2012 в 14:26.
vaxo55 вне форума  
 
Непрочитано 10.11.2012, 14:39
#4
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,437
Отправить сообщение для maratovich с помощью Skype™


Так пиши на VB6 из внешки, зачем цепляешься к vba ?
По твоему вопросу, код ниже.
Дорабатывать надо, но смысл думаю понятен:
Код:
[Выделить все]
Private Sub Zapusk()
Dim layerObj
Dim objAllLayers As AcadLayers
Set objAllLayers = ThisDrawing.Layers
For Each layerObj In objAllLayers
layerObj.LayerOn = False  'делаем все невидимые
Next layerObj

ThisDrawing.Regen (acAllViewports)

Vidimost ("A") ' показать
Vidimost ("B") ' показать
Vidimost ("C") ' показать

End Sub
Sub Vidimost(a)
ThisDrawing.Layers.Item(a).LayerOn = True
ThisDrawing.Regen (acAllViewports)
Pausa
ThisDrawing.Layers.Item(a).LayerOn = False
ThisDrawing.Regen (acAllViewports)
Pausa
End Sub

Sub Pausa()
    PauseTime = 1    ' Set duration.
    start = Timer    ' Set start time.
    Do While Timer < start + PauseTime
        DoEvents    ' Yield to other processes.
    Loop
    Finish = Timer    ' Set end time.
    TotalTime = Finish - start    ' Calculate total time.
End Sub
maratovich вне форума  
 
Автор темы   Непрочитано 10.11.2012, 15:08
#5
vaxo55


 
Регистрация: 05.04.2012
Сообщений: 35


maratovich, большое спосибо, тут все понятно, но как с VB6 связатся с autocad? c NET умею а с vb6 не прпобовал, правда знаю уроки Гонсалеса по переходу к NET.может дадите ссылки на литературу, как ваш код реализовать. Я наверно догадались-начинающий но отдел начинающих не нашел
vaxo55 вне форума  
 
Непрочитано 10.11.2012, 15:21
#6
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,437
Отправить сообщение для maratovich с помощью Skype™


Цитата:
Сообщение от vaxo55 Посмотреть сообщение
как с VB6 связатся с autocad?
Читай эту тему :
http://forum.dwg.ru/showthread.php?t=88845&pp=10000
Особенно пост №18
maratovich вне форума  
 
Автор темы   Непрочитано 10.11.2012, 16:35
#7
vaxo55


 
Регистрация: 05.04.2012
Сообщений: 35


спосибо maratovich
все скачал. буду изучать, правда я електронщик, но все равно очень интересно -огромное спосибо
vaxo55 вне форума  
 
Непрочитано 10.11.2012, 16:57
#8
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от vaxo55 Посмотреть сообщение
как организовать поочередное включение слоев (допустим "A',"B","C") с интервалом 0,5 сек в VBA или VB.NET
А какова польза от сего мультика? Смысл в чём?

P.S. По поводу счётчика (пример на .Net) - тынц.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 10.11.2012, 17:38
#9
vaxo55


 
Регистрация: 05.04.2012
Сообщений: 35


Цитата:
Сообщение от hwd Посмотреть сообщение
А какова польза от сего мультика? Смысл в чём?
польза почти никакая есть эл,счема на автокаде, да и учится собираюсь; ну вот: что будет, если анимировать на схеме путь прохождение тока с включение- выключением слоя
vaxo55 вне форума  
 
Непрочитано 10.11.2012, 17:40
#10
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


в контексте AutoCAD'а это извращение.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 10.11.2012, 17:42
#11
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,437
Отправить сообщение для maratovich с помощью Skype™


Цитата:
Сообщение от vaxo55 Посмотреть сообщение
если анимировать на схеме путь прохождение тока с включение- выключением слоя
Наш человек! Нестандартный подход к делу.
Походу тоже в детстве насмотрелся киножурнал "Хочу всё знать".
maratovich вне форума  
 
Автор темы   Непрочитано 10.11.2012, 18:01
#12
vaxo55


 
Регистрация: 05.04.2012
Сообщений: 35


Цитата:
Сообщение от maratovich Посмотреть сообщение
Наш человек! Нестандартный подход к делу
а по стандарту как?
нашел топик "как подключить visual basic 2010 к автокаду, все делаю как указано, но не получается: autocad открывается от ссылки и все
vaxo55 вне форума  
 
Непрочитано 10.11.2012, 18:05
#13
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,437
Отправить сообщение для maratovich с помощью Skype™


Цитата:
Сообщение от vaxo55 Посмотреть сообщение
а по стандарту как?
Понятия не имею.....
Цитата:
Сообщение от vaxo55 Посмотреть сообщение
как подключить visual basic 2010 к автокаду
По идее должно быть по аналогии как на VB6
А ты скачал в ранее данной ссылке в посте №18 вложение ?
Там готовая форма с примером подключения.
Выложи как у тебя подключение идет в visual basic 2010.
maratovich вне форума  
 
Автор темы   Непрочитано 10.11.2012, 18:59
#14
vaxo55


 
Регистрация: 05.04.2012
Сообщений: 35


1 создаю форму
следую за этим
2 Приступаем к программированию поставленной задачи. Как обычно после запуска VB2010, выбираем шаблон Windows Forms Application. Далее следует подключить библиотеку объектов AutoCAD, для этого в пункте меню Project выбираем команду Add Reference, затем на вкладке СОМ дважды щелкнем на ссылке AutoCAD 2000 Object Librari
3 код
Код:
[Выделить все]
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim AcadApp As Autodesk.AutoCAD.Interop.AcadApplication = New Autodesk.AutoCAD.Interop.AcadApplication
        Dim Docs = AcadApp.Documents
        Dim Doc = Docs.Add
        AcadApp.Visible = True
        Dim T1() As Double = {10, 10, 0}
        Dim T2() As Double = {200, 200, 0}
        Dim T3() As Double = {200, 10, 0}
        Dim T4() As Double = {15, 200, 0}
        Doc.ModelSpace.AddLine(T1, T2)
        Doc.ModelSpace.AddLine(T2, T3).Color = AutoCAD.ACAD_COLOR.acRed
        Doc.ModelSpace.AddText("Горизонтальный", T4, 22)
        Doc.ModelSpace.AddText("Вертикальный", T1, 22).Rotation = Math.PI / 2
        Doc.SaveAs("C:\a.dwg")
        AcadApp.Quit()
    End Sub
End Class
4 ошибки
Ошибка 1 Требуется ссылка на сборку "Autodesk.AutoCAD.Interop.Common, Version=18.2.0.0, Culture=neutral, PublicKeyToken=eed84259d7cbf30b", содержащую реализацию интерфейса "Autodesk.AutoCAD.Interop.Common.IAcadDatabase". Добавьте эту ссылку в проект.

Ошибка 2 "AutoCAD" не объявлен. Может быть недоступен из-за своего уровня защиты.

Последний раз редактировалось Кулик Алексей aka kpblc, 10.11.2012 в 22:42.
vaxo55 вне форума  
 
Непрочитано 10.11.2012, 19:18
#15
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,437
Отправить сообщение для maratovich с помощью Skype™


Мдя..... Вот искаверкали язык в 2010........
1. Не верь первому попавшемуся уроку в инете (Листинг 54. Построение отрезков и двух строк текста в AutoCAD)....
Пробуй разные.
2. У меня дома валяется лицензионный VB2007 а пишу как и многие на VB6. Попробуй, тем более для него гора инфы в инете.
3. По твоему примеру ничего сказать не смогу, извени.
maratovich вне форума  
 
Непрочитано 10.11.2012, 19:29
#16
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от vaxo55 Посмотреть сообщение
затем на вкладке СОМ дважды щелкнем на ссылке AutoCAD 2000 Object Librari
...
Требуется ссылка на сборку "Autodesk.AutoCAD.Interop.Common, Version=18.2.0.0, Culture=neutral, PublicKeyToken=eed84259d7cbf30b", содержащую реализацию интерфейса "Autodesk.AutoCAD.Interop.Common.IAcadDatabase". Добавьте эту ссылку в проект.

Ошибка 2 "AutoCAD" не объявлен. Может быть недоступен из-за своего уровня защиты.
А глазки где?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 10.11.2012, 19:42
#17
vaxo55


 
Регистрация: 05.04.2012
Сообщений: 35


maratovich ,
Код:
[Выделить все]
Public Class Form1

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Debug.WriteLine("Процедура сработала")
        Me.TextBox1.Text = ("?")
        Timer1.Stop()
        Timer2.Start()
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
Me.TextBox1.Text = ("!")
Timer1.Start()
Timer2.Stop()

End Subс
End Class
вот код в vb6< но там я разложил 2 таймера c tollbox как же связать VB6 с автокадом по моему невозможно можно в VBA tollbox добавить елемент timer?

Последний раз редактировалось Кулик Алексей aka kpblc, 10.11.2012 в 22:43.
vaxo55 вне форума  
 
Непрочитано 10.11.2012, 19:43
#18
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


@vaxo55
Из каких соображений отказываешься код оформлять надлежащими тегами?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 10.11.2012, 19:47
#19
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,437
Отправить сообщение для maratovich с помощью Skype™


Цитата:
Сообщение от vaxo55 Посмотреть сообщение
вот код в vb6< но там я разложил 2 таймера c tollbox как же связать VB6 с автокадом по моему невозможно можно в VBA tollbox добавить елемент timer?
Я родился в СССР на территории Казахстана, поэтому моя VB6 твоя VB2010 непонимай....
Смотри личку.
maratovich вне форума  
 
Автор темы   Непрочитано 10.11.2012, 20:08
#20
vaxo55


 
Регистрация: 05.04.2012
Сообщений: 35


способо всем за внимание
vaxo55 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > поочередное включение слоев



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
1000 слоев. Нормально или плохо? И другие аспекты правильного черчения в автокаде Vova AutoCAD 96 07.09.2019 16:26
Для чего нужны фильтры слоев?Как ими пользоваться? Aysulu AutoCAD 43 17.04.2019 10:59
Unreconciled new layers при Xref Red Nova AutoCAD 17 10.01.2019 13:00
Массовое переименование слоев в группе файлов nik_mb Готовые программы 19 26.12.2011 17:20
Как повесить на кнопку Включение определенного набора слоев ilka_t AutoCAD 6 16.06.2005 15:50