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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Помогите сохранить стиль!

Помогите сохранить стиль!

Ответ
Поиск в этой теме
Непрочитано 05.11.2005, 04:08
Помогите сохранить стиль!
Владимир М
 
-
 
Ухта
Регистрация: 31.07.2005
Сообщений: 381

Вот такое дело! Написал Лисп-программу для изменения стиля шрифта и размерных настроек, а как сохранить под новым стилем в "настройке стилей размеров" незнаю, какие дополнительные данные надо внести? Дело в том что настройка может сбится! Помогите!!!
ВОт и лисп-программа:

(command "STYLE" "gostb" "gostb_pg.shx"
"0.0" ; - высота текста
"0.8" "15" "N" "N" )


(command "TEXT" "S" "gostb" "C"
pttext ; - начальная точка
angtext ; - угол поворота
textval ; - текстовая строка
)

(command "DIMTXSTY" "gostb" "gostb_pg.shx"
"0.0" ; - высота текста
"0.8" "15" "N" "N" )



; Устанавливаем размерные переменные по ЕСКД
; Текст над размерной линией, а не в разрыве
( SETVAR "DIMTAD" 1 )
; Текст вне размерных линий параллелен линиям
( SETVAR "DIMTOH" 0 )
; Текст между размерными линиями горизонтален
( SETVAR "DIMTIH" 0 )
; Проведение линии между выносными, если текст сбоку
( SETVAR "DIMTOFL" 1 )
; Продолжение выносных линий за размерными, мм
( SETVAR "DIMEXE" 2 )
; Отключение генерации допусков
( SETVAR "DIMTOL" 0 )
; Размер стрелок
( SETVAR "DIMASZ" 3.5 )
; Величина отступа размерной линии в базовых размерах
( SETVAR "DIMDLI" 10 )
; Величина смещения выносных линий относительно заданных начальных точек
( SETVAR "DIMEXO" 0 )
; Высота размерного текста, если используемый текстовый стиль не имеет фиксированную высоту
( SETVAR "DIMTXT" 3.5 )
; Режим вертикальности текста относительно размерной линии
( SETVAR "DIMTAD" 1 )
; Высота размерного текста, если используемый текстовый стиль не имеет фиксированную высоту
( SETVAR "DIMTVP" 1 )
; Расстояние, оставляемое пустым при изображении размерного текста в разрыве размерной линии
( SETVAR "DIMGAP" 1 )
; Режим размещения размерного текста и стрелок, если для того и другого одновременно недостаточно места между выносными линиями
( SETVAR "DIMATFIT" 2 )
; Высота букв, предлагаемая по умолчанию для нового однострочного текста
( SETVAR "TEXTSIZE" 3.5 )
Просмотров: 7118
 
Автор темы   Непрочитано 14.11.2005, 13:43
#21
Владимир М

-
 
Регистрация: 31.07.2005
Ухта
Сообщений: 381
<phrase 1=


Цитата:
Какие значения не хотят меняться?
Да все, указанные выше
Код:
[Выделить все]
(("DIMTAD" 1) 
      ("DIMTOH" 0) 
      ("DIMTIH" 0) 
      ("DIMTOFL" 1) 
      ("DIMEXE" 2) 
      ("DIMTOL" 0) 
      ("DIMASZ" 3.5) 
      ("DIMDLI" 10) 
      ("DIMEXO" 0) 
      ("DIMTXT" 3.5) 
      ("DIMTAD" 1) 
      ("DIMTVP" 1) 
      ("DIMATFIT" 2) 
      ("TEXTSIZE" 3.5) )
Владимир М вне форума  
 
Непрочитано 14.11.2005, 13:55
#22
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431


Ок. В таком случае можно попробовать провернуть следующее:
Код:
[Выделить все]
(defun sysvar-set (/ item list_sysvar)
  (setq	list_sysvar
	 '(("DIMTAD" 1)
	   ("DIMTOH" 0)
	   ("DIMTIH" 0)
	   ("DIMTOFL" 1)
	   ("DIMEXE" 2)
	   ("DIMTOL" 0)
	   ("DIMASZ" 3.5)
	   ("DIMDLI" 10)
	   ("DIMEXO" 0)
	   ("DIMTXT" 3.5)
	   ("DIMTAD" 1)
	   ("DIMTVP" 1)
	   ("DIMATFIT" 2)
	   ("TEXTSIZE" 3.5)
	   )
	) ;_ end of setq
  (foreach item	list_sysvar
    (if	(getvar (car item))
      (progn
	(princ (strcat "\nOld  sysvar : \t"
		       (car item)
		       "\t"
		       (rtos (getvar (car item)))
		       ) ;_ end of strcat
	       ) ;_ end of princ
	(setvar (car item) (cadr item))
	(princ (strcat "\nNew sysvar : \t"
		       (car item)
		       "\t"
		       (rtos (getvar (car item)))
		       ) ;_ end of strcat
	       ) ;_ end of princ
	) ;_ end of progn
      ) ;_ end of if
    ) ;_ end of foreach
  (princ)
  ) ;_ end of defun
Стоп, кажись, понял, в чем дело. Вечно у меня проверки на nil неправильно мозги обрабатывают... Надо в цикле снять слово (not).
Будет в результате:
Код:
[Выделить все]
(defun sysvar-set (/ item list_sysvar)
  (setq	list_sysvar
	 '(("DIMTAD" 1)
	   ("DIMTOH" 0)
	   ("DIMTIH" 0)
	   ("DIMTOFL" 1)
	   ("DIMEXE" 2)
	   ("DIMTOL" 0)
	   ("DIMASZ" 3.5)
	   ("DIMDLI" 10)
	   ("DIMEXO" 0)
	   ("DIMTXT" 3.5)
	   ("DIMTAD" 1)
	   ("DIMTVP" 1)
	   ("DIMATFIT" 2)
	   ("TEXTSIZE" 3.5)
	   )
	) ;_ end of setq
  (foreach item	list_sysvar
    (if	(getvar (car item))
      (setvar (car item) (cadr item))
      ) ;_ end of if
    ) ;_ end of foreach
  (princ)
  ) ;_ end of defun
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 16.11.2005, 15:11
#23
Владимир М

-
 
Регистрация: 31.07.2005
Ухта
Сообщений: 381
<phrase 1=


Спасибо! Попробую.
Владимир М вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Помогите сохранить стиль!

Реклама i