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

Вернуться   Форум DWG.RU > Программное обеспечение > Прочее. Программное обеспечение > ПО от CSoft > СПДС 10 VBA. Как тексту в ячейках таблицы программно назначить lineweight?

СПДС 10 VBA. Как тексту в ячейках таблицы программно назначить lineweight?

Ответ
Поиск в этой теме
Непрочитано 14.12.2017, 14:47 #1
СПДС 10 VBA. Как тексту в ячейках таблицы программно назначить lineweight?
AlexV
 
Инженер
 
С-Пб
Регистрация: 02.10.2008
Сообщений: 3,685

Как поменять вот
во всех таблицах СПДС в файле?
Вот код, собирает таблицы в коллекцию, бежит по ним в цикле, потом по ячейкам в каждой таблице.. А как поменять вес текста?

Код:
[Выделить все]
Dim str_tmp As String
Dim i As Integer, j As Integer
Dim SPDS As McCOM2.IServer
Dim tmpTable As McCOM2.SymTable
Dim tmpCell As McCOM2.SymTableCell
Dim FindTable As McCOM2.ObjectsCollection
Dim FindTable1 As McCOM2.ObjectsCollection

Set FindTable = SPDS.Query("McCom2.SymTable", "")
Set SPDS = CreateObject("McCOM2.Server")
Select Case OptionButton2.Value
Set FindTable1 = SPDS.Select("Выберите объекты", False)
If FindTable1.Count = 0 Then Exit Sub
Set FindTable = FindTable1.And(FindTable)
If FindTable.Count = 0 Then Exit Sub
   For Each tmpTable In FindTable
         For i = 1 To tmpTable.ColCount
           For j = 1 To tmpTable.RowCount
              Set tmpCell = tmpTable.Cell(j, i)
               Stop
              Next j
          Next j, i
   Next
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
Просмотров: 7813
 
Непрочитано 14.12.2017, 20:43
#2
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,293
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от AlexV Посмотреть сообщение
Set FindTable = SPDS.Query("McCom2.SymTable", "") Set SPDS = CreateObject("McCOM2.Server")
че реально так работает?
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 15.12.2017, 09:13
#3
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,293
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от AlexV Посмотреть сообщение
А как поменять вес текста?
если ты про толщину линий текста, то через COM никак


Нажмите на изображение для увеличения
Название: вес текста.png
Просмотров: 171
Размер:	51.8 Кб
ID:	196851
__________________
Мастерская СПДС
doctorraz вне форума  
 
Автор темы   Непрочитано 15.12.2017, 09:52
#4
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,685


Цитата:
Сообщение от doctorraz Посмотреть сообщение
че реально так работает?
Та нет, конечно.. Это я коня и трепетную лань из разных функций в одну тварь скопипастил, и Set FindTable поперек батьки влезло..

Цитата:
Сообщение от doctorraz Посмотреть сообщение
если ты про толщину линий текста, то через COM никак
Понятно.. Недоработка, однако! Чего это, свойство есть, а программно его и не пошевелить..
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 15.12.2017, 10:13
#5
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,293
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от AlexV Посмотреть сообщение
Понятно.. Недоработка, однако! Чего это, свойство есть, а программно его и не пошевелить..
через СОМ как правило можно пошевелить только свойства объектов видимые из свойств АК.
если хочешь больше возможностей переходи на NET, пока тебе без разницы на чем писать))
есть такая штука Multicad.net, вот там много че можно сделать. Правда SDK скачал, но не разбирался. Под мои нужды VB за глаза хватает.
__________________
Мастерская СПДС
doctorraz вне форума  
 
Автор темы   Непрочитано 15.12.2017, 10:29
#6
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,685


Цитата:
Сообщение от doctorraz Посмотреть сообщение
через СОМ как правило можно пошевелить только свойства объектов видимые из свойств АК.
если хочешь больше возможностей переходи на NET, пока тебе без разницы на чем писать))
есть такая штука Multicad.net, вот там много че можно сделать. Правда SDK скачал, но не разбирался. Под мои нужды VB за глаза хватает.
пока тебе без разницы на чем писать.. - без разницы, на чем писать - это может, для Александра Ривилиса .. А я окромя VBA - на других языках говорить с автокадом не умею..
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 15.12.2017, 10:44
#7
Сергей812


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


А стилем текста не поиграться в отдельных ячейках?
Сергей812 вне форума  
 
Непрочитано 15.12.2017, 10:59
#8
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,293
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от AlexV Посмотреть сообщение
А я окромя VBA - на других языках говорить с автокадом не умею..
ну если так, то как вариант можно приделать костылики...
наделать шаблонов таблиц, с разными толщинами шрифтов (хотя не понимаю зачем такое может понадобиться) и прочими настройками форматирования подгружать их из базы, а строки/столбцы размножать копированием метод Copy, или попробовать через метод CopyFrom, но я не уверен, что он передает толщину текста.
к тому же настроить из вебе вписывание в ячейку и тип переноса (в ячейке или новая строка) то же не получится
кстати в примере который у тебя, именно так и реализовано)))
__________________
Мастерская СПДС
doctorraz вне форума  
 
Автор темы   Непрочитано 15.12.2017, 11:16
#9
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,685


Цитата:
Сообщение от doctorraz Посмотреть сообщение
ну если так, то как вариант можно приделать костылики...
наделать шаблонов таблиц, с разными толщинами шрифтов (хотя не понимаю зачем такое может понадобиться) и прочими настройками форматирования подгружать их из базы, а строки/столбцы размножать копированием метод Copy, или попробовать через метод CopyFrom, но я не уверен, что он передает толщину текста.
к тому же настроить из вебе вписывание в ячейку и тип переноса (в ячейке или новая строка) то же не получится
кстати в примере который у тебя, именно так и реализовано)))
Когда вес текста в ячейке "по-объекту", его легко поменять, задав вес таблице целиком. Но если кто-то покопался руками в табличке и поназначал разный вес тексту в разных ячейках, и надо "отнормализовать" много таблиц разом.. Думалось, что легко сделать, но раз нет - и ладно, руками тады.. не принципиально.
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 15.12.2017, 11:17
#10
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,293
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
А стилем текста не поиграться в отдельных ячейках?
в стиле нет информации о толщине.
AlexV можешь сделать одну таблицу с ячейками шрифта разной толщины и через CopyFrom таскать в свою (но не забывай, что кроме толщины будут подтягиваться и другие элементы форматирования ячейки)
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 15.12.2017, 11:20
#11
Сергей812


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


Цитата:
Сообщение от doctorraz Посмотреть сообщение
в стиле нет информации о толщине.
СПДС игнорирует стили Акада?
Сергей812 вне форума  
 
Автор темы   Непрочитано 15.12.2017, 11:22
#12
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,685


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
СПДС игнорирует стили Акада?
Стиль текста не содержит в себе веса линий, однако..
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 15.12.2017, 11:29
#13
Сергей812


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


Цитата:
Сообщение от AlexV Посмотреть сообщение
Стиль текста не содержит в себе веса линий, однако..
Разве?
Миниатюры
Нажмите на изображение для увеличения
Название: Стили_текста_dwg.JPG
Просмотров: 18
Размер:	35.7 Кб
ID:	196861  
Сергей812 вне форума  
 
Непрочитано 15.12.2017, 11:33
#14
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,293
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Разве?
мы с Алексом за shx шрифты, через стиль ему толщину в АК не поставить, только через вес линий
Миниатюры
Нажмите на изображение для увеличения
Название: стили.png
Просмотров: 10
Размер:	18.7 Кб
ID:	196862  
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 15.12.2017, 11:41
#15
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,293
Отправить сообщение для doctorraz с помощью Skype™


кстати там в SymTableFormat свойств больше чем в справке по МсСОМ2, но нужного тебе все равно нет(((
Миниатюры
Нажмите на изображение для увеличения
Название: свойства.png
Просмотров: 14
Размер:	62.4 Кб
ID:	196863  
__________________
Мастерская СПДС
doctorraz вне форума  
 
Автор темы   Непрочитано 15.12.2017, 11:45
#16
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,685


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Разве?
Да.. Где в стиле текста LINEWEIGHT?
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Автор темы   Непрочитано 15.12.2017, 11:53
#17
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,685


Цитата:
Сообщение от doctorraz Посмотреть сообщение
кстати там в SymTableFormat свойств больше чем в справке по МсСОМ2, но нужного тебе все равно нет(((
Да, и если закопаться в свойства объекта SymTableCell, где то в глубине есть
, но через свойство родителя Table, и как его выловить/изменить - не понятно..
Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный.png
Просмотров: 145
Размер:	34.1 Кб
ID:	196865  
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 15.12.2017, 12:44
#18
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,293
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от AlexV Посмотреть сообщение
но через свойство родителя Table, и как его выловить/изменить - не понятно..
выловить поменять не проблема... непонятно на что влияет (((
Код:
[Выделить все]
Sub tl()
    Set SPDS = CreateObject("McCOM2.Server")
    Set FindTable = SPDS.Query("McCom2.SymTable", "")
    Set tbl = FindTable(1)
  '  Set ccel = tbl.Cell(1, 1)
  '  Set roww = tbl.Rows(1)
    MsgBox "Толщина была " & tbl("Text lineweight")
    leng = InputBox(dd, "Желаемая толщина")
    tbl("Text lineweight") = leng
    MsgBox "Толщина стала " & tbl("Text lineweight")
End Sub
----- добавлено через ~5 мин. -----
Цитата:
Сообщение от AlexV Посмотреть сообщение
Да, и если закопаться в свойства объекта SymTableCell, где то в глубине есть
это свойства не ячейки а таблицы SymTable
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 15.12.2017, 14:19
#19
Сергей812


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


а текст внутри таблицы СПДС хранится в каких объектах? Одиночный текст, мультитекст или свой тип?
Сергей812 вне форума  
 
Непрочитано 15.12.2017, 15:02
#20
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,293
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
а текст внутри таблицы СПДС хранится в каких объектах? Одиночный текст, мультитекст или свой тип?
предположу, что свой тип.
содержимое текста, это свойство ячейки.
а его вид определяется свойствами объекта SymTableFormat,
Цитата:
В зависимости от того, откуда получен объект, он может определять свойства одной ячейки, ячеек одной строки, одной колонки или всей таблицы.
но у этого объекта нет свойства толщина текста.
т.е. из вебеа недоступно
__________________
Мастерская СПДС
doctorraz вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Прочее. Программное обеспечение > ПО от CSoft > СПДС 10 VBA. Как тексту в ячейках таблицы программно назначить lineweight?

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
СПДС 10 CS, некорректно работает автонумерация листов, при привязке таблицы к формату. doctorraz ПО от CSoft 6 11.05.2016 13:46
Как в ячейке таблицы СПДС сделать перенос строки? kinglir ПО от CSoft 1 06.05.2013 10:28
AutoCAD 2012 + СПДС 7.0.938 - пропадает панель масштаба СПДС prog_mike Прочее. Программное обеспечение 8 18.11.2011 13:27
СПДС 7.0 не подгружается под автокад 2011 solovey_9lo Вертикальные решения на базе AutoCAD 3 18.05.2011 06:29
Универсальный маркер СПДС. Создание итоговой таблицы с выборкой по условию. Veddan Программирование 2 24.04.2011 02:24