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

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

"Пакетная" замена Мтекста в блоке

Ответ
Поиск в этой теме
Непрочитано 11.05.2011, 15:34 #1
"Пакетная" замена Мтекста в блоке
Werner
 
Регистрация: 11.05.2011
Сообщений: 10

Добрый день жителям форума!

Столкнулся с такой проблемой: необходимо в более чем 500 файлах чертежей изменить текст (Мтекст в блоке). Руками не то чтобы лень, а огромная проблема, учитывая то, что каждый файл - 2-3 Мб, а машинка слабая.. Я пробовал пользоваться BFind (http://forum.dwg.ru/showthread.php?t=50736), но он,увы, не видит текст внутри блока...

Можете ли посоветовать и помочь? Если это важно, то блоки во всех файлах чертежей называются одинаково.

Думал о том, что, в принципе, можно разбить именно этот блок внутри всех чертежей, но решения для пакетной обработки файлов на форуме не нашёл...

Спасибо!
Просмотров: 9420
 
Непрочитано 11.05.2011, 16:29
1 | #2
TararykovDG

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


Werner, выложи для примера один чертеж где необходимо заменить Mtext и укажи имя или имена блоков в которых надо заменить Mtext (а также укажи какой Mtext надо заменить и на что)
__________________
cadtools
TararykovDG вне форума  
 
Автор темы   Непрочитано 11.05.2011, 16:51
#3
Werner


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


TararykovDG, выложил "обрезанную версию"..

Блоки называются "Штамп АС" и "Штамп АС.С", текст имеет формат №-АС и №-АС.С, а заменить нужно АС на КМ
Вложения
Тип файла: dwg
DWG 2010
Example.dwg (544.9 Кб, 1533 просмотров)
Werner вне форума  
 
Непрочитано 11.05.2011, 17:02
1 | #4
hwd

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


Цитата:
Сообщение от Werner Посмотреть сообщение
Добрый день жителям форума!

Столкнулся с такой проблемой: необходимо в более чем 500 файлах чертежей изменить текст (Мтекст в блоке). Руками не то чтобы лень, а огромная проблема, учитывая то, что каждый файл - 2-3 Мб, а машинка слабая.. Я пробовал пользоваться BFind (http://forum.dwg.ru/showthread.php?t=50736), но он,увы, не видит текст внутри блока...

Можете ли посоветовать и помочь? Если это важно, то блоки во всех файлах чертежей называются одинаково.

Думал о том, что, в принципе, можно разбить именно этот блок внутри всех чертежей, но решения для пакетной обработки файлов на форуме не нашёл...

Спасибо!
А ты случаем не Salo65 (тынц)?

у меня где-то был написан код пакетной обработки чертежей по указанному каталогу (с подкаталогами если требуется), либо по указанной юзером подшивке (оба варианта на выбор)... Так же был написан код обработки текстовых примитивов (с использованием регулярных выражений) + атрибутов блоков + выносок + размеров. Правда всё это написано было на .Net и под AutoCAD 2009. Могу порыться, поискать, если у топикстартера автокад 2009 и установлен .Net Framework 3.5 SP1.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 11.05.2011 в 17:10.
hwd вне форума  
 
Непрочитано 11.05.2011, 23:59
1 | #5
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811


Цитата:
Сообщение от Werner Посмотреть сообщение
TararykovDG, выложил "обрезанную версию"..

Блоки называются "Штамп АС" и "Штамп АС.С", текст имеет формат №-АС и №-АС.С, а заменить нужно АС на КМ
Пакетно не получится
Попробуй загрузить этот лисп в Startup Suite в меню Tools->Load Application
при открывании отдельного файла лисп будет автовыполняться

Код:
[Выделить все]
 ;;====================================================;
;; *| demo.lsp | fixo © 2010   All rights removed  |* ;
;;====================================================;

(vl-load-com)
(defun newstring  (old new str)
  (while
    (vl-string-search old str)
     (setq str (vl-string-subst new old str))
     )
  )
(defun demo(/ acapp adoc new_value old_value pattern txt)
(vl-catch-all-apply (function (lambda()
(progn

(setq	old_value "АС"				  ;(getstring T "\nEnter the pattern to be replaced with :\n")
	new_value "КМ"				  ;(getstring T "\nEnter string to be substituted for pattern:\n"))
	pattern	"*№*")
(or acapp (setq acapp (vlax-get-acad-object)))
  (or adoc (setq adoc (vla-get-activedocument acapp)))
(vlax-for blockdef (vla-get-blocks adoc)
     (if (or(eq "Штамп АС" (vla-get-name blockdef))
	    (eq "Штамп АС.С" (vla-get-name blockdef)))
       (progn
  (vlax-for itmobj blockdef
	  (if (and (eq "AcDbMText" (vla-get-objectname itmobj))
		       (wcmatch (setq txt (vla-get-textstring itmobj)) pattern))
(progn
  
  (if (vl-string-search old_value txt)
    (progn
      
  (vla-put-textstring itmobj (newstring old_value new_value txt)))

	     )
	    )
	  )
     )
   )
  )
  )
)
(vl-cmdf "_regen"))))
(prin1)
  )
(demo)
Попробуй такой вариант для массовой обработки файлов

 
Код:
[Выделить все]
;;====================================================;
;; *| batchblocks.lsp | fixo © 2010   All rights removed  |* ;
;;====================================================;
(defun newstring  (old new str)
  (while
    (vl-string-search old str)
     (setq str (vl-string-subst new old str))
     )
  )
(defun demo  (adoc / new_value old_value pattern txt)

  (vl-catch-all-apply
    (function
      (lambda ()
	(progn

	  (setq	old_value "КМ" 			  ;(getstring T "\nEnter the pattern to be replaced with :\n")
		new_value "АС"			  ;(getstring T "\nEnter string to be substituted for pattern:\n"))
		pattern	"*№*")

	  (vlax-for blockdef  (vla-get-blocks adoc)
	    (if	(or (eq "Штамп АС" (vla-get-name blockdef))
		    (eq "Штамп АС.С" (vla-get-name blockdef)))
	      (progn
		(vlax-for itmobj  blockdef
		  (if (and (eq "AcDbMText" (vla-get-objectname itmobj))
			   (wcmatch (setq txt (vla-get-textstring itmobj)) pattern))
		    (progn

		      (if (vl-string-search old_value txt)
			(progn

			  (vla-put-textstring
			    itmobj
			    (newstring old_value new_value txt)))

			)
		      )
		    )
		  )
		)
	      )
	    )
	  )
	)
      )
    )

  )


(defun C:OPB (/  acapp adoc file_obj fn fold full-names-list full_name_list olsp osd)
  (vl-load-com)
  (alert
    "\nPlease wait a minute
\nto ending of batch file operation"
  )

  (setvar "SDI" 0)

  
  (setq	fn (getfiled "Select *ANY .DWG FILE* in a desired folder : "
				 ""
				 "dwg"
				 4
		       )
  )
  (if fn
    (progn
      (setq fold	   (vl-filename-directory fn)
	    full_name_list (vl-directory-files fold "*.dwg" 1)
	    full_name_list (mapcar (function (lambda (x)
					       (strcat fold "\\" x)
					       )
					     )
				   full_name_list
				   )
	    )
      (setq acapp (vlax-get-acad-object)
	    adoc  (vla-get-activedocument acapp)
	    )





      (if full_name_list

	(progn
	  (vla-save adoc)
	  (mapcar
	    (function
	      (lambda (dwgnmame)
		(progn
		  (setq file_obj (vla-open (vla-get-documents acapp) dwgnmame))

		  ;;here is your batch function:

		  (demo file_obj)

		  (princ (strcat "\n" (vl-princ-to-string (getvar 'dbmod))))
		  (vla-regen file_obj acActiveViewport)
		  (vla-saveas file_obj dwgnmame)
		  (vla-close file_obj)

		  (vl-cmdf "_delay" 200)

		  )
		)
	      )
	    full_name_list
	    )

	  )
	(princ "\nNo .DWG files in selected directory\n")
	)
      )
    )


  (princ)
)
(princ "\n\tType OPB to execute...")
(princ)

Последний раз редактировалось Олег (jr.), 13.05.2011 в 01:42.
Олег (jr.) вне форума  
 
Автор темы   Непрочитано 12.05.2011, 00:43
#6
Werner


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


Цитата:
Сообщение от hwd Посмотреть сообщение
А ты случаем не Salo65 (тынц)?

у меня где-то был написан код пакетной обработки чертежей по указанному каталогу (с подкаталогами если требуется), либо по указанной юзером подшивке (оба варианта на выбор)... Так же был написан код обработки текстовых примитивов (с использованием регулярных выражений) + атрибутов блоков + выносок + размеров. Правда всё это написано было на .Net и под AutoCAD 2009. Могу порыться, поискать, если у топикстартера автокад 2009 и установлен .Net Framework 3.5 SP1.
Я не Salo65, не знаю, к счастью или сожалению Но ситуация похожая..
..Чертежи сделаны в формате AutoCAD 2010, файлы разложены по каталогам, подшивок нет - всё в пространстве модели. Единственное что - мне нужно отредактировать вхождения блока, а не атрибуты (если я ничего не напутал)...
Werner вне форума  
 
Непрочитано 12.05.2011, 08:33
1 | #7
TararykovDG

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


Цитата:
Сообщение от Werner Посмотреть сообщение
TararykovDG, выложил "обрезанную версию"..

Блоки называются "Штамп АС" и "Штамп АС.С", текст имеет формат №-АС и №-АС.С, а заменить нужно АС на КМ
Werner, забыл сразу уточнить, у меня ACAD2008, поэтому если не сложно выложи чертеж еще раз, но в версии не старше 2008.

Олег (jr.), а почему пакетно не получиться? Например если через ObjectDBX по анологии с похожим примером для переименования блоков Нужно решение (программа) для массового переименования всех блоков
__________________
cadtools
TararykovDG вне форума  
 
Автор темы   Непрочитано 12.05.2011, 08:46
#8
Werner


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


hwd, отправлял вчера ответ, но почему-то не нашёл его сегодня...

Я не Salo65, и не знаю, радоваться или нет) Я от его способа как раз начинаю сходить с ума

Цитата:
у меня где-то был написан код пакетной обработки чертежей по указанному каталогу (с подкаталогами если требуется), либо по указанной юзером подшивке (оба варианта на выбор)... Так же был написан код обработки текстовых примитивов (с использованием регулярных выражений) + атрибутов блоков + выносок + размеров. Правда всё это написано было на .Net и под AutoCAD 2009. Могу порыться, поискать, если у топикстартера автокад 2009 и установлен .Net Framework 3.5 SP1.
У меня AutoCAD 2010, а Framework не проблема! Единственное что, мне нужно редактировать вхождение блока, а не атрибуты... А код пакетной обработки чертежей очень бы пригодился при использовании скрипта от Олег (jr.).

Олег (jr.), спасибо!

А возможно ли открывать и сохранять с задержкой файлы из определенной папки, например, в другом лиспе? Тогда бы и этот лисп выполнился...

Последний раз редактировалось Werner, 12.05.2011 в 09:24.
Werner вне форума  
 
Непрочитано 12.05.2011, 08:59
1 | #9
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811


Цитата:
Сообщение от TararykovDG Посмотреть сообщение
Олег (jr.), а почему пакетно не получиться? Например если через ObjectDBX по анологии с похожим примером для переименования блоков Нужно решение (программа) для массового переименования всех блоков
У меня есть старая рабочая рутина с иcпользованием ObjectDBX
так она не работает с его чертежом мобыть блок корявый или
еще какие неучтенные дела, хотя она работает как надо (с 2006)
с другими чертежами плюс почему-то с этим чертежом надо вызывать РЕГЕН в конце, а ObjectDBX не откликается на работу с экраном
как известно (напр. ты не сможешь использовать entsel, ssget etc)
Олег (jr.) вне форума  
 
Непрочитано 12.05.2011, 09:11
1 | #10
TararykovDG

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


Цитата:
Сообщение от Олег (jr.) Посмотреть сообщение
У меня есть старая рабочая рутина с иcпользованием ObjectDBX
так она не работает с его чертежом мобыть блок корявый или
еще какие неучтенные дела, хотя она работает как надо (с 2006)
с другими чертежами плюс почему-то с этим чертежом надо вызывать РЕГЕН в конце, а ObjectDBX не откликается на работу с экраном
как известно (напр. ты не сможешь использовать entsel, ssget etc)

Олег (jr.), вот я и не могу тоже попробывать именно с чертежом автора, так как у меня ACAD 2008 и его чертеж не открывается (так как на мою просьбу перевыложить чертеж в версии не выше 2008 автор не откликнулся, может Ты если не сложно выложишь его файл в версии 2008).
Тем более ты сам говоришь, что с другими чертежами у Тебя ObjectDBX работает как надо. Что касается РЕГЕНа, то ObjectDBX работает как Ты сам прекрасно знаешь в неактивном режиме (т. е. чертежеи не будут открываться), а помот при открытии они по идеи сами регеняться?
__________________
cadtools
TararykovDG вне форума  
 
Автор темы   Непрочитано 12.05.2011, 09:35
#11
Werner


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


TararykovDG, пересохранил в формате 7-го АСАDа:
Вложения
Тип файла: dwg
DWG 2007
Example_2008.dwg (492.5 Кб, 1508 просмотров)
Werner вне форума  
 
Непрочитано 12.05.2011, 10:58
1 | #12
TararykovDG

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


Werner, для файла в формате 7-го АСАDа, который Ты выложил вроде все сработало

Код:
[Выделить все]
 
;|	Заменить Mtext в блоке для всех чертежей
	Для работы с неактивным документом используется метод ObjectDBX
	http://autolisp.ru/2010/04/08/proceed-unactive-document/

|;
(vl-load-com)

; Функции _lispru-acad-version и _lispru-odbx взяты отсюда http://autolisp.ru/2010/04/08/proceed-unactive-document/
;	Directory-Dia - http://www.caduser.ru/forum/index.php?PAGE_NAME=message&FID=23&TID=48293&MID=269115#message269115 пост #2


(defun _lispru-acad-version ()	; http://autolisp.ru/2010/04/08/proceed-unactive-document/
;|
*    Возвращает номер сборки AutoCAD'a. Для 2005 вернет 16.1, для 2006 - 16.2
* и т.д.
|;
(atof (getvar "acadver"))
) ;_ end of defun


(defun _lispru-odbx (/)	; http://autolisp.ru/2010/04/08/proceed-unactive-document/
                    ;|
*    функция возвращает интерфейс IAxDbDocument (для работы с файлами DWG без
* их открытия). Если интерфейс не поддерживается, возвращает nil. Проверено
* на ACAD 2002, 2004, 2005, 2006, 2007, 2008, 2010
*    Автор - Fatty aka Олег jr. 
*    Параметры вызова:
* нет
*    Примеры вызова:
(_lispru-odbx)
|;
  (cond
    ((< (_lispru-acad-version) 15.06)
     (alert
       "ObjectDBX method not applicable\nin this AutoCAD version"
       ) ;_ end of KPBLC-MSG-ALERT
     nil
     )
    ((= (fix (_lispru-acad-version)) 15)
     (if (not (vl-registry-read
                "HKEY_CLASSES_ROOT\\ObjectDBX.AxDbDocument\\CLSID"
                ) ;_ end of vl-registry-read
              ) ;_ end of not
       (startapp "regsvr32.exe"
                 (strcat "/s \"" (findfile "axdb15.dll") "\"")
                 ) ;_ end of startapp
       ) ;_ end of if
     (vla-getinterfaceobject
       (vlax-get-acad-object)
       "ObjectDBX.AxDbDocument"
       ) ;_ end of vla-getinterfaceobject
     )
    (t
     (vla-getinterfaceobject
       (vlax-get-acad-object)
       (strcat "ObjectDBX.AxDbDocument." (itoa (fix (_lispru-acad-version))))
       ) ;_ end of vla-getinterfaceobject
     )
    ) ;_ end of cond
) ;_ end of defun


; Исходный код http://www.caduser.ru/forum/index.php?PAGE_NAME=message&FID=23&TID=48293&MID=269115#message269115 пост #2
(defun Directory-Dia (Message / sh folder folderobject result)
    ;; By Tony Tanzillo
    ;; Modified by Tim Willey
    ;; 16 Will let you type in the path
    ;; 64 Will let you create a new folder
    ;; Use
    ;; (Directory-Dia "Create Sheet Index \nSelect directory to grab Drawings \nBy Tim Willey 09/13/07")

    (setq sh
      (vla-getInterfaceObject
        (vlax-get-acad-object)
        "Shell.Application"
      )
    )
    (setq folder
      (vlax-invoke-method
        sh
        'BrowseForFolder
        (vla-get-HWND (vlax-get-Acad-Object))
        Message
        0 ;;; This is the bit number to change.
               ;;; Вместо 0 можно попробовать (+ 16 64)
		;;; 16 - позволяет набирать путь 
		;;; 64 - позволяет создавать новую папку
	""	; - корневой каталог, не обязательный параметр !!! НЕЛЬЗЯ БУДЕТ ВЕРНУТЬСЯ НА УРОВЕНЬ ВЫШЕ !!!
      )
    )
    (vlax-release-object sh)
    (if   folder
      (progn
   (setq folderobject
          (vlax-get-property folder 'Self)
   )
   (setq result
          (vlax-get-property FolderObject 'Path)
   )
   (vlax-release-object folder)
   (vlax-release-object FolderObject)
   (if (/= (substr result (strlen result)) "\\")
     (setq result (strcat result "\\"))
     result
   )
      )
    )
) ;_ end of defun

; Заменяет в строке str все вхождения подстроки old_ss на подстроку new_ss
(defun vl-string-subst-all(str new_ss old_ss / )
  (while (vl-string-search old_ss str)
    (setq str (vl-string-subst new_ss old_ss str))
    )
  str
  ); end vl-string-subst-all



(defun change-mtext-in-blocks(lst_blocks old_str new_str pattern / path_folder lst_files path_file odbx blk_def ent txt index)
  (setq index 1)
  (if (setq path_folder (Directory-Dia "Укажите папку: "))
    (if (setq lst_files (mapcar '(lambda (x) (strcat path_folder x)) (vl-directory-files path_folder "*.dwg" 1)))
      (foreach path_file lst_files
        (setvar "MODEMACRO" (strcat "Всего файлов: " (itoa (length lst_files)) "     Обработано: " (itoa index) "     Текущий файл: " path_file))
	(if (setq odbx (_lispru-odbx))
	  (progn
	    (vla-open odbx path_file)
	    (vlax-for blk_def (vla-get-blocks odbx)
              (if (member (vla-get-name blk_def) lst_blocks)
                (vlax-for ent blk_def
                  (if (and (eq "AcDbMText" (vla-get-objectname ent))
                           (wcmatch (setq txt (vla-get-textstring ent)) pattern)
                           )
                    (vla-put-textstring ent (vl-string-subst-all txt new_str old_str))
                    )
                  )
                )
	    ) ;_ end of vlax-for
	    (vla-saveas odbx path_file)
	    (vlax-release-object odbx)
	    (setq odbx nil)
	  )
	)
        (setq index (1+ index))
      )
    )
  )
  (setvar "MODEMACRO" "")
  (alert "Ну вот и все!!!")
  (princ)
) ;_ end of defun

Вызов: (change-mtext-in-blocks (list "Штам АС" "Штам АС.С") "АС" "КМ" "*№*")
Выбираем папку с файлами (только один уровень вложенности, т. е. прога переберет файлы только в выбранной папке, но не в подпапках)
Соответсвенно если будут др. блоки или др. текст все легко поменять во входных параметрах, например:
(change-mtext-in-blocks (list "Блок 1" "Блок 2" ...) "Вася" "Петя" "*Разработчик*")
__________________
cadtools
TararykovDG вне форума  
 
Автор темы   Непрочитано 12.05.2011, 11:10
#13
Werner


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


СПАСИБО!!!



А не подскажете, почему после прохода скриптом размеры файлов увеличиваются почти в 1,5 раза?

Последний раз редактировалось Werner, 12.05.2011 в 13:06. Причина: surprise
Werner вне форума  
 
Непрочитано 12.05.2011, 14:55
#14
TararykovDG

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


Цитата:
Сообщение от Werner Посмотреть сообщение
А не подскажете, почему после прохода скриптом размеры файлов увеличиваются почти в 1,5 раза?
У меня не так, на Твоем примере Example_2008.dwg:
До - 504 320 байт
После - 459 424 байт
так что как выдишь даже чуть меньше стал
__________________
cadtools
TararykovDG вне форума  
 
Автор темы   Непрочитано 12.05.2011, 15:08
#15
Werner


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


Цитата:
Сообщение от TararykovDG Посмотреть сообщение
У меня не так, на Твоем примере Example_2008.dwg:
До - 504 320 байт
После - 459 424 байт
так что как выдишь даже чуть меньше стал
ну вот.. а у меня из папки в 500 Мб получается папка почти в 750
Werner вне форума  
 
Непрочитано 12.05.2011, 15:20
#16
TararykovDG

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


давай сначала проверь на одном файле Example_2008.dwg, который Ты мне выкладывал, посмори что там получается. И выложи еще какой-нибудь свой файл (напоминаю что у меня ACAD 2008) со значениями размера до и после, а я его у себя попробую.
__________________
cadtools
TararykovDG вне форума  
 
Автор темы   Непрочитано 12.05.2011, 16:22
#17
Werner


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


Для файлов example и example_2008 пробовал пять раз (заменял файлы на исходные), первые три раза - разный результат о_0. А последние два - размеры файлов вообще не изменялись.... 0_0


Для 461: 2113кБ/3088/кБ
Для 461_2008: 1636кБ/1892кБ

Для 461 и 461_2008- результаты близкие к указанным при повторении опыта)
Вложения
Тип файла: dwg
DWG 2007
461_2008.dwg (1.59 Мб, 1498 просмотров)
Werner вне форума  
 
Непрочитано 12.05.2011, 16:50
#18
TararykovDG

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


Werner,
461_2008.dwg
до - 1 669 056 байт
после - 1 628 896 байт

Так что я не знаю чем помочь.
__________________
cadtools
TararykovDG вне форума  
 
Автор темы   Непрочитано 12.05.2011, 17:01
#19
Werner


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


Всё равно ОГРОМНОЕ спасибо!
Если бы не скрипт, сидеть мне неделю с Ctrl-C и Ctrl-v..
Werner вне форума  
 
Непрочитано 12.05.2011, 17:07
2 | #20
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Werner Посмотреть сообщение
А не подскажете, почему после прохода скриптом размеры файлов увеличиваются почти в 1,5 раза?
ISAVEPERCENT установи в 0.
Александр Ривилис вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > "Пакетная" замена Мтекста в блоке



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Замена текстового стиля VVA Готовые программы 322 28.05.2025 09:59
Как получить vla-объект, который находится в блоке или как с помощью Lisp поменять видимость в дин. блоке? Shraybicus LISP 12 28.12.2010 15:45
Замена сразу всех значений в блоке Deliverance AutoCAD 15 26.09.2010 14:58
при работе в блоке вдруг рисуется линия вне блока,из-за которой не сохраняет изменения в блоке Макля AutoCAD 4 24.06.2010 12:10
Замена текста мтекста и атрибутов с помощью lsp и dcl МИХАИЛCAD Программирование 8 19.02.2010 13:36