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

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

VBA, Autocad. Подскажите как расположить текст по кругу?

Ответ
Поиск в этой теме
Непрочитано 13.06.2015, 01:54 #1
VBA, Autocad. Подскажите как расположить текст по кругу?
den_vrn
 
Регистрация: 13.06.2015
Сообщений: 5

VBA, Autocad. Задание звучит так: Разработка функции (VBA), выполняющей размещение произвольного текста по дуге окружности. Т.е. создание штампа или печати.
Просмотров: 4807
 
Непрочитано 13.06.2015, 14:19
#2
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,616


И в чем проблема? Разбей строку посимвольно и размещай по траектории с требуемым углом поворота.
Boxa вне форума  
 
Автор темы   Непрочитано 13.06.2015, 14:31
#3
den_vrn


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


Без примера никак... Мне бы на код одним глазком поглядеть
den_vrn вне форума  
 
Непрочитано 13.06.2015, 16:13
#4
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,616


В справке очень хорошо описано, как добавлять текст в чертеж.
В справке VBA Вам помогут функции цикла, Len(), Mid()
Ваша задача действительно не сложная, Вы хотя бы начните, Вам помогут.
Если же ничего не хотите писать, то Вам в другой раздел.
Boxa вне форума  
 
Непрочитано 13.06.2015, 17:56
#5
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


как вы делали бы вручную - нарисовали бы окружность и на ней бы размещали буквы.. угол поворота буквы равен углу луча из центра окружности со сдвигом - так как на 12 часов угол поворота должен быть текста должен быть равен 0. Осталось взять примеры из хэлпа, как писал Boxa выше, и заключить их в цикл. Там и код посмотрите)
Сергей812 вне форума  
 
Автор темы   Непрочитано 14.06.2015, 09:07
#6
den_vrn


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


А как определить точку где вставлять буквы?

Код:
[Выделить все]
Sub CreateText()
  
  Dim textString As String
  Dim i As Integer

  Dim height As Double
  X = 0
  Y = 0
  textString = "Hello, World."
  insertionPoint = cpoint  'centr okrujnosti
  insertionPoint(1) = insertionPoint(1) + Radius + 50  '1 tochka na 12 chasov

  height = 100
  i = Len(textString) ' dlina
  For i = 1 To i
  ch = Mid(textString, i, 1) 'bukva
  insertionPoint(0) = insertionPoint(0) + X ' hag po X
  insertionPoint(1) = insertionPoint(1) - Y ' hag po Y
  Set textObj = ThisDrawing.ModelSpace.AddText(ch, insertionPoint, height)
  
  'textObj.Rotation = -0.707
  'textObj.Update

  X = 100
  Y = 50
    
  Next i
  
End Sub
den_vrn вне форума  
 
Непрочитано 14.06.2015, 09:39
1 | #7
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от den_vrn Посмотреть сообщение
А как определить точку где вставлять буквы?
например, с помощью параметрического уравнения окружности
Сергей812 вне форума  
 
Непрочитано 14.06.2015, 11:26
#8
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Вам не надоело велосипеды изобретать??? Уже вроде не сессия
gomer вне форума  
 
Автор темы   Непрочитано 14.06.2015, 12:19
#9
den_vrn


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


Цитата:
Сообщение от gomer Посмотреть сообщение
Вам не надоело велосипеды изобретать??? Уже вроде не сессия
У заочников сессия только началась


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
например, с помощью параметрического уравнения окружности
Помогло !!!


ВСЕМ СПАСИБО ВСЕ ПОЛУЧИЛОСЬ !!!
den_vrn вне форума  
 
Непрочитано 14.06.2015, 12:27
#10
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
например, с помощью параметрического уравнения окружности
Для тех, кому лень учить матчасть

Цитата:
Сообщение от den_vrn Посмотреть сообщение
ВСЕМ СПАСИБО ВСЕ ПОЛУЧИЛОСЬ !!!
как сдашь, не забудь выложить окончательный вариант... возможно кому-то пригодится...
gomer вне форума  
 
Непрочитано 14.06.2015, 14:59
#11
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от gomer Посмотреть сообщение
Для тех, кому лень учить матчасть
неизвестно, что быстрее, кстати - считать геометрию или использовать вычислительные способности движка автокада через vba)
Сергей812 вне форума  
 
Автор темы   Непрочитано 14.06.2015, 15:51
#12
den_vrn


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


Сто пудово здам, так что сразу выкладываю, только вот что-то с комментариями беда.



Код:
[Выделить все]
Sub CreateText()
  Dim MyAngle
  Dim i As Integer
  MyAngle = 1.57 ' начальный угол 90 для букв
  Naklon = 0     ' начальный угол для наклона
  Radius = Radius + Visota ' Радиус для букв
  insertionPoint = cpoint  'Центр
  i = Len(Stroka) ' длина текста
  ugol = 6.28 / i ' угол для равномерного расположения букв
  
  For i = 1 To i
  ch = Mid(Stroka, i, 1) ' Разбитие строки на буквы
  
  'Параметрическое уровнение для поиска точки каждой буквы
  insertionPoint(0) = cpoint(0) + Radius * Cos(MyAngle)
  insertionPoint(1) = cpoint(1) + Radius * Sin(MyAngle)
    
  Set textObj = ThisDrawing.ModelSpace.AddText(ch, insertionPoint, Visota) 'установка буквы
  
  textObj.Rotation = Naklon ' наклон буквы относительно окружности
  textObj.Update
  
  MyAngle = MyAngle - ugol ' шаг буквы
  Naklon = Naklon - ugol   ' шаг наклона
     
  Next i
  
End Sub

Последний раз редактировалось den_vrn, 14.06.2015 в 17:22.
den_vrn вне форума  
 
Непрочитано 14.06.2015, 15:55
1 | #13
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Эта проблема с кодировкой для VBA как в офисе, так и в автокаде. Попробуйте так: откройте блокнот и там сделайте русскую раскладку для ввода. Затем в VBA в автокаде тоже переключитесь на русский. И только после этого выделяйте текст и копируйте в блокнот. Обратно тоже работает)
Сергей812 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA, Autocad. Подскажите как расположить текст по кругу?

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в AutoCAD преобразовать текст в таблицу? AVZ AutoCAD 30 29.09.2020 13:52
В Autocad текст с одинаковым стилем отображается по-разному Xefan AutoCAD 2 09.10.2011 21:57
AutoCAD 2006, 2008. Почему стал преворачиваться текст горизонтальных размеров? SergeyVM AutoCAD 6 08.04.2011 14:11
Подскажите как в 2009 AutoCAD задать плотность материала?? Север мэн AutoCAD 8 28.11.2010 19:36
подскажите кто может где взять литературу по VBA for AutoCad er Программирование 2 28.10.2003 14:08