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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Текстовому стилю со шрифтом eskdw.shx задать степень растяжения 0.8

Текстовому стилю со шрифтом eskdw.shx задать степень растяжения 0.8

Ответ
Поиск в этой теме
Непрочитано 20.08.2008, 14:35 #1
Текстовому стилю со шрифтом eskdw.shx задать степень растяжения 0.8
Кларисса
 
Регистрация: 30.10.2007
Сообщений: 46

Ужасно прошу прощения за наглость, на лиспе никогда не писала, но вот надо срочно... К товарищу, который набросал этот код, обращаться нудобно, вроде все просто, он и так оказал любезность, но у меня ничего не выходит...

Идея в том, что всем текстовым стилям, а, соответственно, и всему тексту, в котором используется шрифт eskdw.shx, кроме значений, задаваемых всем стилям (шрифт - CS_Gost2304.shx большой шрифт - special_.shx) необходимо задать степень растяжения, равной 0.8. В отличии от стилей, не содержащих eswkdw.shx...

Это кусок программы "Проверка на стиль", я так думаю...

Вложения
Тип файла: lsp STGOST.LSP (1.4 Кб, 73 просмотров)

Просмотров: 4285
 
Автор темы   Непрочитано 20.08.2008, 14:36 Код
#2
Кларисса


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


(defun C:STYLGOST
(/ $ v @ a a1 )
(setq $ *error*)
(defun *error*(q)
(if q (princ (strcat "\n" q)))
(mapcar 'setvar v @) (setq *error* $)
(prin1)
)

(setq v '("CMDECHO""HIGHLIGHT""BLIPMODE""FILLMODE""OSMODE"))
(setq @ (mapcar 'getvar v)) (mapcar 'setvar v '(0 0 0 1 0))
; (command "_STYLE" "STANDARD" "" 3.5 "" "" "" "") (command)
(command "_Purge" "_A" "" "_N" )
(command "_Purge" "_B" "" "_N" )
(command "_Purge" "_LA" "" "_N" )
(command "_Purge" "_LT" "" "_N" )
(setq lines (strcat " ПРОГРАММА ''STYLGOST''\n"
" ЗАМЕНА ВСЕХ ШРИФТОВ ВО ВСЕХ СТИЛЯХ ЧЕРТЕЖА\n"
" НА ШРИФТ ''CS_Gost2304.shx,special_.shx'\n"
" И ПЕРЕКОДИРОВ ''КРИВЫХ'' НА ВИД ШРИФТОВ \n"
" Версия<1><15.ИЮНЯ.2008>\n"
"___________________________________________________\n"))(alert lines)

(PRINC )
(PRINC "\n ЗАМЕНА ШРИФТОВ ЧЕРТЕЖА НА ШРИФТ ''CS_GOST2304.shx,SPECIAL_.shx'' ")
(princ "\n Подождите...")

;;;ccc Проверка на стиль
(setq a (tblnext "STYLE" ))
(while (/= a nil )
(setq a1 (cdr (car (cdr a))))
(command "_style" a1 "CS_Gost2304.shx,special_.shx" "" "" "" "" "")
(setq a (tblnext "STYLE" ))
)
;;;ccc Окончание проверки
;;;;;; (command "_zoom" "_a")
(*error* nil)
(CODD)
)
(LOAD "STYL_COD.LSP")
Кларисса вне форума  
 
Непрочитано 21.08.2008, 08:59
#3
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


Цитата:
Сообщение от Кларисса Посмотреть сообщение
Идея в том, что всем текстовым стилям, а, соответственно, и всему тексту, в котором используется шрифт eskdw.shx, кроме значений, задаваемых всем стилям (шрифт - CS_Gost2304.shx большой шрифт - special_.shx) необходимо задать степень растяжения, равной 0.8. В отличии от стилей, не содержащих eswkdw.shx...
Если исключить буквы помеченные красным (я не понял их связь с остальным текстом), то задача состоит из 2-х отдельных задач: 1-ая - установка всем текстовым стилям использующим eskdw.shx коэфицинта сжатия 0.8, 2-ая - изменение всех текстов в чертеже в соответствии с новым значением (изменения стиля скажутся только на вновь набираемых текстах).

1-ая задача решается легко:
Код:
[Выделить все]
(defun c:demo ()
 (vlax-for i (vla-get-textstyles (vla-get-activedocument (vlax-get-acad-object)))
  (if (= (strcase (vla-get-fontfile i)) "ESKDW.SHX")
   (vla-put-width i 0.8)
  )
 )
 (princ)
)
Со 2-ой задачей - сложнее, поскольку многострочные тексты могут иметь наложенное форматирование. Надо писать полноценный код, сейчас нет времени.

Цитата:
Сообщение от Кларисса Посмотреть сообщение
Это кусок программы "Проверка на стиль", я так думаю...
Приведённый во втором посте код меняет текстовым стилям чертежа шрифтовой файл, как раз в соответствии с красными буквами. Связь с описанной задачей не ясна.
Alaspher вне форума  
 
Автор темы   Непрочитано 22.08.2008, 09:35
#4
Кларисса


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


Alaspher, спасибо за ответ. Похоже, что у меня проблемы не только с LISP, но и с формулировкой вопросов.

Постараюсь исправиться. Глобальная задача в том, что решено внедрять стандарт предприятия и начали со шрифтов. И проблема в том, что широко используемый шрифт ESKDW уже CS_Gost2.304, принятого по СТП.
Итак, что же нужно.
1.Всем текстовым стилям назначить файл шрифта - CS_Gost2304.shx, большой шрифт - special_.shx.
2.Тексту с файлом шрифта ESKDW.SHX назначить степень растяжения 0.8.
И тут меня застопорило… Что сначала, что потом, непонятно… Выходит, что алгоритм такой:
1.Запомнить все стили, где используется шрифт ESKDW.
2.Поменять во всех стилях (включая запомненные) файл шрифта на CS_Gost2304.shx, а большой шрифт на special_.shx.
3.Тексту с запомненными стилями назначить степень сжатия 0.8.

О мама миа… Может быть, это можно без LISP?
Кларисса вне форума  
 
Непрочитано 22.08.2008, 10:11
#5
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


Цитата:
Сообщение от Кларисса Посмотреть сообщение
Alaspher, спасибо за ответ. Похоже, что у меня проблемы не только с LISP, но и с формулировкой вопросов.
Боюсь, что есть ещё одна проблема - неоптимальная постановка задачи.

Цитата:
Сообщение от Кларисса Посмотреть сообщение
Постараюсь исправиться. Глобальная задача в том, что решено внедрять стандарт предприятия и начали со шрифтов.
Не с того начали. Первым делом, после разработки СТП, надо разработать и обкатать на тестах шаблоны, куда будут включены фиксированые стили всего, что только поддаётся стандартизации (купировать хвост кусками - тот ещё гуманизм ). Затем СТП вводится, как обязательный документ для объектов с началом проектирования с назначенного дня "Д". Все уже начатые проекты завершаются так, как они начаты. Где несложно причесать под СТП, там это можно сделать в рабочем порядке, остальное лучше не трогать. СТП, это не библия и со временем неизбежно изменяется, как и любой норматив он не должен иметь обратного действия.

Основной проблемой будет использование материалов из проектов выполненных до внедрения СТП в проектах, которые будут разрабатываться уже в рамках СТП. Тем же СТП это должно чётко регламентироваться - либо проектировщик сам должен привести импортируемые матералы в соответствие, либо разрешить импорт "как есть". Чаще всего используют промежуточный вариант - причёсывают только самые "густые кудри" в том, что импортируется.

Цитата:
Сообщение от Кларисса Посмотреть сообщение
О мама миа… Может быть, это можно без LISP?
Угу - внедрение СТП требует больше административных действий, чем технических.

Изменить сжатие однострочных текстов можно оптом, через свойства.
Alaspher вне форума  
 
Непрочитано 22.08.2008, 11:03
#6
Аshаs-ка

проектировсчик
 
Регистрация: 06.01.2006
Москва
Сообщений: 1,982


Истинно так. Не менять в старых, а также в тех, кто в работе на момент внедрения. И чертежи сторонних разработчиков что, перелопачивать будете? А если менять - так надо открывать шаблон, заточенный под ваши задачи (их, кстати, может и должно быть несколько, с разными наборами слоев, например...), вставлять блоком в открытый шаблон чертеж, и что-то менять... или не менять. . Работка та еще, поэтому старые чертежи не трогаем, а при применении их в новых - правим. Ну, всякие библиотеки и типовые детали править надо, не спорю. Избавьтесь от Мтекста, и жить станет проще и веселее. Избавиться то легко - взорвал, и готово... Я их - мтексты- ваще не люблю, применяю при вставке больших кусков текста, после форматирования взрываю... Можно же потом и объединить, коль приспичит? А кнопку сделать не влом.
Аshаs-ка вне форума  
 
Автор темы   Непрочитано 22.08.2008, 11:17
#7
Кларисса


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


В нашей конторе исторически сложилось так, что для новых объектов используются старые чертежи. А посколько контора большая, народу много и каждый сам себе художник, так что внедрение СТП назрело. Работы много и пользователи ропщут... Так что хочется как-то минимизировать щелчки мышкой...

Alaspher, кажется, мы земляки, я тоже из Е-бурга.
Кларисса вне форума  
 
Непрочитано 22.08.2008, 12:12
#8
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


Цитата:
Сообщение от Аshаs-ка Посмотреть сообщение
Избавьтесь от Мтекста, и жить станет проще и веселее. Избавиться то легко - взорвал, и готово... Я их - мтексты- ваще не люблю, применяю при вставке больших кусков текста, после форматирования взрываю... Можно же потом и объединить, коль приспичит?
Здравое зерно в таком подходе есть - мтексты гемороя много добавляют, но заставить делать это всех пользователей сложно, а заставлять только тех, кто не сильно отбивается - неспортивно.

Цитата:
Сообщение от Кларисса Посмотреть сообщение
В нашей конторе исторически сложилось так, что для новых объектов используются старые чертежи.
Проанализируйте причины и вы наверняка будете удивлены - бОльшая часть того, изза чего люди используют старые чертежи для новых объектов в качестве исходника, должно быть частью стандартного шаблона. Сделайте шаблоны, обучите проектировщиков тому, как ими правильно пользоваться и вставлять начнут только куски. Вот эти куски надо оформлять в библиотеку и приводить в соответствие с СТП.

Цитата:
Сообщение от Кларисса Посмотреть сообщение
Alaspher, кажется, мы земляки, я тоже из Е-бурга.
А почему кажется? Поднимем уральский САПР на недосягаемую высоту!

Рекомендую обратиться в РПК-Урал, к Щипачёву (в сентябре), он уже успешно внедрял СТП в проектных организациях.
Alaspher вне форума  
 
Автор темы   Непрочитано 25.08.2008, 11:57
#9
Кларисса


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


Цитата:
Сообщение от Alaspher Посмотреть сообщение
Проанализируйте причины и вы наверняка будете удивлены - бОльшая часть того, изза чего люди используют старые чертежи для новых объектов в качестве исходника, должно быть частью стандартного шаблона.
Хм... Надо пообщаться с проектировщиками и хорошенько подумать... Может случиться так, что создавать библиотеку придется тому, кто это предложил.

Цитата:
Сообщение от Alaspher Посмотреть сообщение
Рекомендую обратиться в РПК-Урал, к Щипачёву (в сентябре), он уже успешно внедрял СТП в проектных организациях.
Спасибо за совет, я обращусь к нему.

Цитата:
Сообщение от Alaspher Посмотреть сообщение
А почему кажется? Поднимем уральский САПР на недосягаемую высоту!
Да здравствует уральский САПР, самый сапровый из всех САПРов.

Последний раз редактировалось Кларисса, 25.08.2008 в 12:09.
Кларисса вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Текстовому стилю со шрифтом eskdw.shx задать степень растяжения 0.8

Размещение рекламы