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

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

Как вставить блоки по направлению полилинии (VBA)

Ответ
Поиск в этой теме
Непрочитано 24.11.2006, 07:27 #1
Как вставить блоки по направлению полилинии (VBA)
dorofei
 
Якутск
Регистрация: 14.11.2006
Сообщений: 12

Я на полилинию хочу вставить блоки (стрелки) по направлению полилинии.

У меня блоки вставляются по точкам, но мне еще нужно чтоб блок были вставлены по направлению полилинии.
Как на VBA это сделать?
Ниже приведен код, который у меня есть:
Код:
[Выделить все]
Option Explicit

Public Sub DrawPlineWsBlock(strBlkName As String, dblScale As Double, _
         dblRot As Double)
  
  Dim varPnt As Variant
  Static objPLine As AcadLWPolyline
  Static dblStrPnt(0 To 2) As Double
  Dim varCords As Variant
  Dim varVert As Variant
  Dim intVCnt As Variant
  Dim intCrdCnt As Variant
  
  ThisDrawing.Utility.GetEntity objPLine, varPnt, "Выбырите полилинию"
'MsgBox objPLine.ObjectName
  
  intVCnt = 0
  varCords = objPLine.Coordinates
  For Each varVert In varCords
    intVCnt = intVCnt + 1
  Next
  

  For intCrdCnt = 0 To intVCnt / 2 - 1  
    varPnt = Empty
    
    varPnt = objPLine.Coordinate(intCrdCnt)
        dblStrPnt(0) = varPnt(0)
        dblStrPnt(1) = varPnt(1)
        dblStrPnt(2) = 0

    ThisDrawing.ModelSpace.InsertBlock dblStrPnt, strBlkName, _
    dblScale, dblScale, dblScale, dblRot
  Next
 End Sub

Public Sub TEST()
  Dim strBlkName As String  
  Dim dblScale As Double    
  Dim dblRotAng As Double 
  
  strBlkName = "BlkName"
  dblScale = 1
  dblRotAng = 0
  DrawPlineWsBlock strBlkName, dblScale, dblRotAng
End Sub
Просмотров: 4665
 
Непрочитано 24.11.2006, 08:16
#2
Кулик Алексей aka kpblc
Moderator

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


Не являюсь спецом по VBA, у меня вопрос: почему б не использовать стандартную _divide с разбивкой блоком?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 24.11.2006, 09:23
#3
dorofei


 
Регистрация: 14.11.2006
Якутск
Сообщений: 12
<phrase 1=


Насчет команды _divide. Я незнаю как сним работать.

А на VBA нашел, как найти угол каждого отрезка полилинии.
Нужно просто найти между осью X и линией, определенной двумя точками командой AngleFromXAxis() .
Сейчас попробую сам сделать.
dorofei вне форума  
 
Непрочитано 24.11.2006, 09:27
#4
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Ну, дела. Человек программирует на VBA для AutoCAD, а элементарную команду AutoCAD'а не знает.
Profan вне форума  
 
Автор темы   Непрочитано 27.11.2006, 03:44
#5
dorofei


 
Регистрация: 14.11.2006
Якутск
Сообщений: 12
<phrase 1=


Цитата:
Ну, дела. Человек программирует на VBA для AutoCAD, а элементарную команду AutoCAD'а не знает.
К сведению, я только начинаю программировать на VBA для AutoCAD. :roll:

Если не трудно, дайте, пожалуйста, ссылку откуда можно скачать help по VBA на русском языке, чтоб были указаны все команды.
А Help на самом AutoCAD'е на английском и к тому же еще не полный (Найденная выше команда AngleFromXAxis() не присутствует в нем).
dorofei вне форума  
 
Непрочитано 27.11.2006, 06:50
#6
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Цитата:
Сообщение от dorofei
Цитата:
Ну, дела. Человек программирует на VBA для AutoCAD, а элементарную команду AutoCAD'а не знает.
К сведению, я только начинаю программировать на VBA для AutoCAD. :roll:

Если не трудно, дайте, пожалуйста, ссылку откуда можно скачать help по VBA на русском языке, чтоб были указаны все команды.
А Help на самом AutoCAD'е на английском и к тому же еще не полный (Найденная выше команда AngleFromXAxis() не присутствует в нем).
Так дело не в том, что Вы только начинаете, а в том, что беретесь за это, не удосужившись ознакомиться с AutoCAD, явно не прочитав ни одной книги, да еще требуя "help по VBA на русском языке, чтоб были указаны все команды"

В таком случае надо программировать на VBA для MS Office. Там и хелп русский. И полный.
ShaggyDoc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как вставить блоки по направлению полилинии (VBA)

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

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