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

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

Весть мультитекст в обычный. пакетно.

Ответ
Поиск в этой теме
Непрочитано 27.10.2010, 22:57 #1
Весть мультитекст в обычный. пакетно.
bdfy
 
Регистрация: 30.04.2005
Сообщений: 141

Нужно сконвертировать чертежи из автокада в visio. это возможно но большие проблемы возникают с мультитекстом - обрабатывается некорректно.
Нужен лисп/макрос заменяющий все мультитекстовые обьекты на чертеже на обычный. если строк в мультитексте несколько - на несколько обычных текстовых обьектов.
+совсем хорошо если обрабатываться будет сразу целая папка чертежей.
как это реализовать ? готов посильно оплатить разработку
Просмотров: 3783
 
Непрочитано 28.10.2010, 10:54
#2
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


bdfy, попробуй так, но это для каждого активного документа

Код:
[Выделить все]
(defun c:mtext->text( / nbr item)
  (while (setq nbr nil nbr (ssget "_X" (list (cons 0 "MTEXT"))))
    (foreach item (vl-remove-if 'listp (mapcar 'cadr (ssnamex nbr)))
      (vl-cmdf "_.explode" item "")
      )
    )
  )
__________________
cadtools
TararykovDG вне форума  
 
Непрочитано 28.10.2010, 12:35
#3
hwd

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


Цитата:
Сообщение от TararykovDG Посмотреть сообщение
это для каждого активного документа
Пакетную обработку можно глянуть здесь. Там уже имеется (в качестве примера) модуль пакетной обработки чертежей с помощью скриптов. Т.е. можно написать скрипт, разбивающий многострочный текст и скормить его указанной мною софтине, которая может обработать либо все файлы в указанном вами каталоге (рекурсивно, если потребовать от неё), либо все файлы в составе указанной подшивки).
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 28.10.2010, 15:21
#4
bdfy


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


hwd
штука должно быть хорошая. но как ее запустить ? на сайте нашлось все кроме собственно инструкции по запуску (
а прямо в лиспе/макросе перебрать файлы нельзя ? ибо как то сложно выходит. в Lisp я как бы дубом, но под VBA в оффисе это решается просто
вот например
Код:
[Выделить все]
Sub конверсия()

oDoc_path = ThisDocument.Path

 sDir = Dir(oDoc_path & "чертежи\", vbNormal)
     
i = 1
Do Until LenB(sDir) = 0

Debug.Print sDir

i = i + 1
sDir = Dir
If sDir <> "" Then Call dwg2vsd(oDoc_path & "чертежи\" & sDir, i)
Loop

End Sub
TararykovDG
спасибо. работает. выделение правда запрашивает.
bdfy вне форума  
 
Непрочитано 28.10.2010, 15:29
#5
hwd

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


Цитата:
Сообщение от bdfy Посмотреть сообщение
но как ее запустить ?
Писалось под AutoCAD 2009 x86 SP3. На компьютере должен быть установлен .Net Framework 3.5 SP1.
Настройки выполняются через xml-файл (внешний текстовый файл - на сайте он показан в самом низу, понять его не составит труда). Библиотека загружается командой _NETLOAD.
Затем в командной строке AutoCAD набрать команду q4.

п.с. А чёрт... не выйдет заюзать - это оказывается пример, я там в коде примера жёстко прописал путь: @"C:\Documents and Settings\andrey.bushman\Мои документы\Drawing1++.dwg". Указанный менеджер является инструментом, предназначенным для использования программно (это я проглядел). Чтобы вам его заюзать, нужно в команду его завернуть (несложно, но со временем у меня сейчас напряг)...
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 28.10.2010 в 15:34.
hwd вне форума  
 
Непрочитано 28.10.2010, 15:36
#6
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


Можно попробовать просто сохранить чертеж в формат без поддержки MText. Помоему он появился с 2000, в 12 точно его нет.
zamtmn вне форума  
 
Автор темы   Непрочитано 28.10.2010, 15:57
#7
bdfy


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


hwd
странно. чертовски странно что все так исключительно сложно. в автокаде же есть поддержка VBA вроде сейчас ? предложенный мой пример можно реализовать ?
zamtmn
очень интересная идея тем более что пакетный конвертер форматов dwg у меня есть. пересохранил, но результат несколько странный - я редактировать получившийся текст вообще не могу - при выделении он удаляется. причем выглядит он как мультитекст (при преобразовании в обычный шрифт же изменяется)
пробовал форматы
14 - мультитекст есть.
12, 10 - проблема, см. выше. результат во вложении.
Вложения
Тип файла: dwg План ОРУ.DWG (294.1 Кб, 41 просмотров)
bdfy вне форума  
 
Непрочитано 28.10.2010, 15:58
#8
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


Цитата:
Сообщение от bdfy Посмотреть сообщение
выделение правда запрашивает.
bdfy, чтобы нечего не запрашивал поробуй такой код
Код:
[Выделить все]
(defun c:mtext->text( / nbr item cmdecho_var)
  (setq cmdecho_var (getvar 'cmdecho))
  (setvar 'cmdecho 0)
  (while (setq nbr nil nbr (ssget "_X" (list (cons 0 "MTEXT"))))
    (foreach item (vl-remove-if 'listp (mapcar 'cadr (ssnamex nbr)))
      (vl-cmdf "_.explode" item)
      )
    )
  (setvar 'cmdecho cmdecho_var)
  (princ)
  )
По-поводу пакетной реализации на лиспе, есть несколько сложностей.
Лисп работает только в текущем активном документе, через интерфейс ObjectDBX можно получить доступ к неактивному документу, но вот переделать там все mtext'ы на text'ы у меня не получилость.
Я не знаю .Net, но уверен что там все можно сделать (это у hwd спрашивай)
На VBA тоже можно сделать пакетную обработку, ибо там поддерживается многодокументный режим, но у меня пока тоже нет на это времени
__________________
cadtools
TararykovDG вне форума  
 
Непрочитано 28.10.2010, 16:14
#9
hwd

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


Цитата:
Сообщение от bdfy Посмотреть сообщение
чертовски странно что все так исключительно сложно
Сложного там ничего нет. Указанная мною статья ориентирована на .Net-программистов, и довольно таки подробно разжёвывает разработку библиотеки, ориентированной на пакетную обработку чертежей - потому рядовому пользователю статья и кажется сложной.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 28.10.2010, 16:23
#10
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


Автокад вроде при сохрпнении в предидущие форматы заворачивает не поддерживаемые примитивы в блоки выражая их поддерживаемыми, привязывая к ним информацию для восстановления, но почемуто не восстанавливает)).
Из мтекста должен получиться блок состоящий из простых текстов.
Файлы глючат и в визио или только в автокаде?
zamtmn вне форума  
 
Автор темы   Непрочитано 28.10.2010, 18:24
#11
bdfy


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


несколько проб и ошибок показали что пересохраненные в старый формат (с этими самыми псевдоподдерживаемыми блоками) visio не ест совсем - валиться. Только чертеж разбитым мультитекстом конвертируется нормально. но помогите же кто нибудь с пакетным запуском лиспа - стандартная же задача сотням людей я уверен нужная для разных целей - неужели нет работоспособного готового решения ?
...
впрочем как оказалось при ближайшем рассмотрении проблема моя потеряла актуальность. visio мультитекст понимает. неправильно он понимает размер чертежа. поэтому чертежик при конвертации получается размером 1х2мм что при стандартных шрифтах размера около 14 дает мешанину в которой я и не разобрался. пара несложных манипуляций с масштабом все решают.

только вот все равно интересно как в автокаде пакетно файлы обрабатывать ) несрочно уже, но интересно

Последний раз редактировалось bdfy, 28.10.2010 в 18:32.
bdfy вне форума  
 
Непрочитано 28.10.2010, 23:48
#12
gomer

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


Цитата:
Сообщение от bdfy Посмотреть сообщение
только вот все равно интересно как в автокаде пакетно файлы обрабатывать
вот это не поможет?http://cadtips.cadalyst.com/node/tip...keywords=batch
gomer вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Весть мультитекст в обычный. пакетно.



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать этот мультитекст (см. вложение) или это не мультитекст? Нитонисе Программирование 7 09.11.2009 15:14
Не могу написать мультитекст в 2008 автокаде. Мельхиор AutoCAD 7 08.10.2008 08:08