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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Сброс редактирования текста (мтекста, размерного текста и т.д.)

Сброс редактирования текста (мтекста, размерного текста и т.д.)

Ответ
Поиск в этой теме
Непрочитано 29.04.2011, 09:30 #1
Сброс редактирования текста (мтекста, размерного текста и т.д.)
Uduzr
 
проектирование электроснабжения
 
Екатеринбург
Регистрация: 17.03.2009
Сообщений: 44

Здравствуйте, столкнулся с одной неприятностью.
Допустим создали мтекст щелкнули по нему дважды, выбрали весь текст и поменяли шрифт с того что был согласно стилю на допутим Times New Roman.
Смотрим свойства и видим в содержимом - {\fTimes New Roman |b0 |i0 |c0 |p18;некий текст} (за точность не ручаюсь - получить содержимое через программирование нет возможности по описанным ниже причинам и просто переписал содержимое).
И теперь меняя текстовый стиль на другой шрифт останется неизменным.. И любые изменения выполненные в редакторе потом не исправить сменой текстового стиля.
Для меня это было большой трагедией и я писал Lisp который сбрасывал все эти переопределения оставляя голый текст и я мог спокойно менять стиль и радоваться жизни. Но сменил место работы и мучаюсь с Autocad LT (надеюсь что временно и все же выклянчу полную версию). Таким образом привычное решение проблемы стало мне не доступно. Вот хотел спросить может есть какое нибудь иное средство для борьбы с этой бедой?
Просмотров: 14122
 
Непрочитано 29.04.2011, 10:03
#2
Лиспер


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


Поскольку LT, неясно, что тема делает в "Программировании". Ну да ладно.
Войти в штатный редактор многострочного текста, выделить весь текст, Ctrl+Пробел.
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Автор темы   Непрочитано 29.04.2011, 10:09
#3
Uduzr

проектирование электроснабжения
 
Регистрация: 17.03.2009
Екатеринбург
Сообщений: 44


входить в каждый текст не вариант по умолчанию, программно я просто выделял область и сбрасывал в ней для всех текстов и мтекстов и таблиц редактирование текста.
Ctrl+Пробел у меня лично работает как Пробел в данном случае.
А в программировании потому что люди здесь отзывчивые и грамотные
Неужели ни у кого такой проблемы не было никогда?
Uduzr вне форума  
 
Непрочитано 17.05.2011, 06:08
#4
azetown


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


Я сделал так на Delphi выбирает все Мтекст и Текст проверяет и меняет шрифты и удаляет не нужные теги.

Код:

Код:
[Выделить все]
procedure TForm1.Button22Click(Sender: TObject);
var
    i:integer;
    H_tmp:double;
//  t:iAcadEntity;
    ACMT1: IAcadMText;
    ACT1: IAcadText;
//    f:textfile;
    s,S1:string;

    gpCode: Variant;
    dataValue : Variant;
    sset : AcadSelectionSet;
    
function delTeg(str,Teg:string):string;
var
    Str_1,Str_2: string;

begin   // удаляет все из строки "Str" заданные тэги "Teg" вида ot \F.....to ;
  str_1:=str;
  str_2:='';
  if (pos(Teg,str_1)>0)then while (pos(Teg,str_1)>0) do
  begin
      str_2:=str_2+copy(str_1,0,pos(Teg,str_1)-1);    //str_2:=str_2+copy(str_1,0,pos(Teg,str_1)-2);
      str_1:= copy(str_1,pos(Teg,str_1),length(str_1));
      Delete(str_1,pos(Teg,str_1),pos(';',str_1));
  end;
  str_2:=str_2+str_1;
  result:=str_2;
end;

begin             //изменяет все шрифты и стили на мои заданные: ПКО ПКО1 ПКО2
  if conectAC(0) then // здесь проверка и подключение к автокаду
  begin
     LoadDeaultProperty;  // проверка на наличие необходимых стилей (по необходимости загрузка)

      gpCode := VarArrayCreate([0, 3], varSmallint);
      gpCode[0] := -4;
      gpCode[1] := 0;
      gpCode[2] := 0;
      gpCode[3] := -4;

    dataValue := VarArrayOf(['<OR', 'TEXT', 'MTEXT', 'OR>']);

     for i:=0 to AcadDocument1.SelectionSets.Count-1  do
     begin
       sset:= AcadDocument1.SelectionSets.Item(i);
       sset.Delete;
     end;

     sset:=AcadDocument1.SelectionSets.add  ('sset_me_txt'); // выбираем все Мтекст и Текст (по необходимости можно изменить на -> выбрать только то что нам нужно)
     sset.Clear;

     sset.Select(acSelectionSetAll,EmptyParam ,EmptyParam , gpCode, dataValue);

  //     if form6.Visible then form6.PGB1.Max:=AcadDocument1.ModelSpace.Count;
     begin
         form7.dlg1.ProgressMaximum:=sset.Count-1;
         form7.dlg1.ProgressValue:=0;
         form7.dlg1.Execute;

         if form7.Visible then form7.APrG.Maximum:=sset.Count;
     end;

     for i:=0 to sset.Count-1 do
     begin
//          if form6.Visible then form6.PGB1.Position:=i;
          form7.dlg1.ProgressValue:=i;
          if form7.Visible then form7.APrG.Position:=i;
//====================================================================================
          if sset.Item(i).EntityName='AcDbText' then
          begin
             ACT1:=(sset.Item(i) as IAcadText);
             s1:=ACT1.StyleName;
             if (s1<>'ПКО')and (s1<>'ПКО1') and (s1<>'ПКО2') then
             begin
               H_tmp:=ACT1.Height;
               ACT1.StyleName:='ПКО';
               ACT1.Height:=H_tmp;
             end;
             ACT1.color:= acCyan;
             ACT1.ScaleFactor:=1;
          end;
//====================================================================================

          if sset.Item(i).EntityName='AcDbMText' then
          begin
             ACMT1:=(sset.Item(i) as IAcadMText);

             s:=ACMT1.TextString;
             if pos('\',s)>0 then
             begin
                //удалить тэг шрифта
                s:=delTeg(s,'\F'); s:=delTeg(s,'\f');
                //удалить тег цвета
                s:=delTeg(s,'\C'); s:=delTeg(s,'\c');
                // записать назад
                ACMT1.TextString:=s;
             end;

             //все Мтекст в стиль пко    (искл)
             s1:=ACMT1.StyleName;
             if (s1<>'ПКО')and (s1<>'ПКО1') and (s1<>'ПКО2') then
             begin
               H_tmp:=ACMT1.Height;
               ACMT1.StyleName:='ПКО';
               ACMT1.Height:=H_tmp;
             end;
             //установит цвет
             ACMT1.color:= acCyan;

          end;
     end;
    //ACMT1.TextString:='';
    //    closefile(f);

//   if form6.Visible then form6.PGB1.Position:=0;
   if form7.Visible then
   begin
      form7.APrG.Position:=0;
   end;
   AcadDocument1.Application.Update;
   
 end;

end;
azetown вне форума  
 
Непрочитано 13.09.2012, 11:46
#5
KronSerg

Вода - моя работа
 
Регистрация: 10.11.2009
Санкт-Петербург
Сообщений: 3,638


Народ, а как использовать код на Delphi, или где найти такой же лисп?
__________________
Нерешаемых проблем не бывает.
KronSerg вне форума  
 
Непрочитано 13.09.2012, 12:29
#6
azetown


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


раньше писалось об этом в этом разделе (http://dwg.ru/art/1)
azetown вне форума  
 
Непрочитано 13.09.2012, 12:36
#7
Сергей Дубина


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


На этом сайте есть внешний редактор ACEditor.

http://dwg.ru/dnl/487
__________________
КазнитьØнельзяØпомиловать:eek:
Сергей Дубина вне форума  
 
Непрочитано 14.09.2012, 15:12
#8
Boxa

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


А установить на рабочем месте что то типа nanoCAD (Вроде бесплатный) и проделывать хитрые манипуляции в нем?
Boxa вне форума  
 
Непрочитано 15.09.2012, 11:55
#9
KronSerg

Вода - моя работа
 
Регистрация: 10.11.2009
Санкт-Петербург
Сообщений: 3,638


Решил проблему при помощи одного из творений VVA, взял здесь: http://forum.dwg.ru/showthread.php?t=24790&page=7
__________________
Нерешаемых проблем не бывает.
KronSerg вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Сброс редактирования текста (мтекста, размерного текста и т.д.)



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Вставка в таблицу поля, соотвествующего площади примитива Profan Готовые программы 272 06.06.2021 23:12
Отсутствие в списке двойных кликов адаптации редактирования размерного текста Vova AutoCAD 2 26.08.2011 22:11
СПДС и редактирование размерного текста qwer Прочее. Программное обеспечение 5 21.03.2011 16:49
Как изменить положение размерного текста? Михаил055 AutoCAD 10 10.12.2008 22:06
Редактрование размерного текста в ACAD2006 zenon AutoCAD 16 31.03.2006 11:36