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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Есть ли программы для преобразования примитивов AutoCAD в код VBA?

Есть ли программы для преобразования примитивов AutoCAD в код VBA?

Ответ
Поиск в этой теме
Непрочитано 09.07.2013, 10:54 #1
Есть ли программы для преобразования примитивов AutoCAD в код VBA?
swell{d}
 
гадание на конечно-элементной гуще
 
Düsseldorf
Регистрация: 31.05.2006
Сообщений: 7,596

Есть набор узлов, которые хочется параметризировать с помощью экселя.
Не знаю, с какой стороны лучше к этому подойти. Узлы содержат некоторое количество пёстрых линий (разная толщина, разные слои, разный тип линий). У меня они все нарисованы для одной толщины стены (всего их 12 штук), а я хочу получать аналогичные для любой толщины, причём программно.
__________________
.: WikiЖБК + YouTube :.
Просмотров: 3202
 
Непрочитано 09.07.2013, 10:59
#2
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


БРРРР
А пример???
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 09.07.2013, 11:08
#3
hwd

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


@swell{d},

Если ты знаешь, как должен выглядеть код VBA, создающий примитивы с нужным тебе уровнем детализации, значит без труда самостоятельно сможешь написать программу, генерирующую исходный текстовый vb файл, который в последствии можно добавить в твой VBA проект.
hwd вне форума  
 
Автор темы   Непрочитано 09.07.2013, 11:19
#4
swell{d}

гадание на конечно-элементной гуще
 
Регистрация: 31.05.2006
Düsseldorf
Сообщений: 7,596


hwd, это да, просто думал, мало ли кто поделится готовым решением. Я просто лошпед, вчера полчаса потратил на то, чтобы задать для линии тип линии по блоку =)
__________________
.: WikiЖБК + YouTube :.
swell{d} вне форума  
 
Непрочитано 09.07.2013, 11:38
#5
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


Я делал подобное правда на лиспе и для лиспа - мне сказали что я дурак =)
Код:
[Выделить все]
 (defun sl_lisp_gen_ (/ ss lstLen sl_ent gg)
  (setq ss (ssget "_+.:S:E:L"))
  (setq lstLen (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
  (foreach sl_ent (entget (car lstLen))
    (vl-catch-all-error-p
      (vl-catch-all-apply
	(function
	  (lambda (x)
	    (princ
	      (strcat
		"(cons "
		(vl-prin1-to-string (car x))
		" "
		(if (eq (type (setq gg (cdr x))) 'LIST)
		  (vl-princ-to-string (cons "list" (cdr x)))
		  (vl-prin1-to-string (cdr x))
		  )
		")\n"))
	    )
	  )
	(list sl_ent)
	)
      )
    )
  (princ)
  )
Вот результат работы:
Цитата:
: (sl_lisp_gen_)
Select entities: (cons -1 <Entity name: 12550138>)
(cons 0 "TEXT")
(cons 5 "132")
(cons 330 <Entity name: 07224718>)
(cons 100 "AcDbEntity")
(cons 67 0)
(cons 410 "Model")
(cons 8 "04_text_")
(cons 100 "AcDbText")
(cons 10 (list 227.277 916.056 0.0))
(cons 40 2.5)
(cons 1 "fdsf")
(cons 50 0.0)
(cons 41 1.0)
(cons 51 0.0)
(cons 7 "SPEC2013")
(cons 71 0)
(cons 72 2)
(cons 11 (list 232.902 915.316 0.0))
(cons 210 (list 0.0 0.0 1.0))
(cons 100 "AcDbText")
(cons 73 1)
На самом деле это действительно нужно только начинающим...
Sleekka вне форума  
 
Автор темы   Непрочитано 09.07.2013, 12:08
#6
swell{d}

гадание на конечно-элементной гуще
 
Регистрация: 31.05.2006
Düsseldorf
Сообщений: 7,596


Ну, пока всё, на что меня хватило: (только отрезки со слоем и весом линии)
Код:
[Выделить все]
Sub tmp1()
    Open "C:\autosave\tmp1.vbs" For Output As #1
    Print #1, "Dim ms"
    Print #1, "Set ms = ThisDrawing.ModelSpace"
    Print #1, "Dim obj"
    Print #1, "Dim pt1(2), pt2(2)"
    Print #1, "pt1(2) = 0"
    Print #1, "pt2(2) = 0"
    Dim app
    Set app = GetObject("", "nanoCAD.Application")
    Set ThisDrawing = app.ActiveDocument
    Set ms = ThisDrawing.ModelSpace
    Set ut = ThisDrawing.Utility
    Dim pt1, pt2
    Dim item
    For Each item In ms
        If item.ObjectName = "AcDbLine" Then
            pt1 = ut.CreateSafeArrayFromVector(item.StartPoint)
            pt2 = ut.CreateSafeArrayFromVector(item.EndPoint)
            Print #1, "pt1(0) = " & Round(pt1(0), 0)
            Print #1, "pt1(1) = " & Round(pt1(1), 0)
            Print #1, "pt2(0) = " & Round(pt2(0), 0)
            Print #1, "pt2(1) = " & Round(pt2(1), 0)
            Print #1, "set obj = ms.AddLine(pt1,pt2)"
            Print #1, "obj.layer = " & """" & item.layer & """"
            Print #1, "obj.LineWeight = " & item.LineWeight
        End If
    Next
    Close #1
End Sub
надо ещё кружочки и полилинии сделать и будет ништяк
__________________
.: WikiЖБК + YouTube :.
swell{d} вне форума  
 
Непрочитано 09.07.2013, 12:18
1 | #7
Кулик Алексей aka kpblc
Moderator

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


Поскольку у тебя фактически будет использоваться VBS, попробуй конструкцию вида:
Код:
[Выделить все]
Dim str As String
  str = "AcDbBlock"
  Select Case True
    Case UCase(str) Like "*POLYLINE"
      MsgBox "PLINE"
    Case UCase(str) Like "*SPLINE"
      MsgBox "SPLINE"
    Case UCase(str) Like "*LINE"
      MsgBox "LINE"
    Case UCase(str) Like "*CIRCLE"
      MsgBox "CIRCLE"
    Case Else
      MsgBox "Smth"
  End Select
Писал и проверял на VBA, так что объявления переменных подгонишь под себя
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Есть ли программы для преобразования примитивов AutoCAD в код VBA?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Распознование примитивов СПДС в AutoCAD Sea AutoCAD 2 19.10.2009 14:07
Полное зависание Autocad 2008 LT после загрузки программы Zaverra AutoCAD 3 03.06.2009 12:29
Программы для преобразования растрового изображения в векторное DianchiK AutoCAD 4 24.04.2008 11:20
Есть ли колонтитулы в AutoCAD? Takoy AutoCAD 16 03.10.2005 11:22
У кого есть Руссификатор для AutoCAD 2005 konstruktor AutoCAD 16 23.07.2004 12:55