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

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

Цветовые схемы вкладки модель

Версия для печати
 
Ответ
Опции темы Поиск в этой теме
Непрочитано 25.05.2010, 00:02 1 | #1
Цветовые схемы вкладки модель
gomer
 
строю, ломаю
 
Украина
Регистрация: 03.04.2008
Сообщений: 5,555

gomer вне форума Вставить имя

По просьбам трудящихся... вот:
Готовый модуль ищите здесь: http://dwg.ru/dnl/5976
Программа дает возможность применять цветовые схемы в Автокад (по типу WinAmp)

lsp:
Код:
[Выделить все]
(defun C:ACS ( / conv what_select what_next dcl_id slist dspl_obj)
  (vl-load-com)
  (setq
	conv (lambda (x) (vlax-make-variant (+(*(caar x))(* (cadar x)(expt 2 8))(*(caddar x)(expt 2 16)))vlax-vbLong))
	what_next 3
  )
  (if (setq dcl_id (load_dialog "ACS.dcl"))
	(progn
	  (while (< 1 what_next)
		(cond
		  ((= 3 what_next)
			(new_dialog "ACS_MAIN" dcl_id)
			(start_list "select")
			(mapcar '(lambda (x) (add_list (car x)))
			  (setq
				slist
				;; ( цвет_фона цвет_курсора цвет_фона_комстр цвет_текста_комстр )
				(list
				(list "Классик" '(0 0 0) '(255 255 255) '(255 255 255)  '(0 0 0) )
				(list "Негатив" '(255 255 255) '(0 0 0) '(0 0 0) '(255 255 255 ) )
				(list "Зима"    '(214 214 214) '(0 0 0) '(255 255 255 ) '(0 0 0) )
				(list "Матрица" '(0 0 0) '(0 255 0) '(0 0 0) '(0 255 0)  )
				(list "Океан"   '(0 0 0) '(255 255 255) '(0 173 173)  '(255 255 255) )
				(list "Паскаль" '(0 0 0) '(255 255 255) '(0 0 255) '(255 255 0) )
				(list "Сакура"  '(0 0 0) '(246 223 233) '(246 223 233) '(120 70 44) )
				(list "Глубокое погружение" '(38 40 48) '(127 159 255) '(38 40 48) '(127 159 255) )
				)
			  )
			)
			(end_list)
			(mode_tile "accept" 1)
			(action_tile "select" "(mode_tile \"accept\" 0)")
			(action_tile "cancel" "(done_dialog 0)")
			(action_tile "accept" "(setq what_select (get_tile \"select\"))(done_dialog 1)")
			(action_tile "help"   "(alert \"Справка пока не доступна\")")
			(action_tile "info" "(done_dialog 2)")
			(setq what_next (start_dialog))
		  )
		  ((= 2 what_next)
			(new_dialog "ACS_ABOUT" dcl_id)
			(action_tile "accept" "(done_dialog 3)")
			(setq what_next (start_dialog))
		  )
		)
	  )
	  (unload_dialog dcl_id)
	  (if (= 1 what_next)
		(progn
		  (prompt "\nПрименяю новую цветовую схему...")
		  (setq
			dspl_obj (vla-get-display (vla-get-Preferences (vlax-get-acad-object)))
			slist (cdr (nth (atoi what_select) slist))
		  )
		  (vla-put-GraphicsWinModelBackgrndColor dspl_obj (conv slist))
		  (setq slist (cdr slist))
		  (vla-put-ModelCrosshairColor dspl_obj (conv slist))
		  (setq slist (cdr slist))
		  (vla-put-TextWinBackgrndColor dspl_obj (conv slist))
		  (setq slist (cdr slist))
		  (vla-put-TextWinTextColor dspl_obj (conv slist))
		)
	  )
	)
	(alert "Невозможно загрузить диалог")
  )
  (princ)
)
(prompt "\nЦветовые схемы вкладки модель\nНаберите в командной стоке <ACS+[Enter]> для запуска приложения")
(princ)
dcl:

Код:
[Выделить все]
ACS_MAIN : dialog {
  key = "main";
  label = "Цветовые схемы вкладки *Модель*";
  : list_box {
	key = "select";
	label = "Выбери из списка:";
  }
  :row {
    fixed_width = true;
    ok_cancel_help_info;
  }
}

ACS_ABOUT : dialog {
  key = "about";
  label = "О программе...";
  : boxed_column {
  : paragraph {
  	children_alignment = centered;
	: text_part {label = "  Цветовые схемы 1.1  ";}
	: text_part {label = "";}	
	: text_part {label = "  БЕСПЛАТНАЯ ВЕРСИЯ  ";}
	: text_part {label = "";}
  }}
  ok_only;
}
Для развития программы пока нет сил
Хотелось бы что бы схемы загружлись из внешних файлов (*.lsp)
Просмотров: 19161
 
Непрочитано 25.05.2010, 00:05
#2
Кулик Алексей aka kpblc
Moderator

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


А развивать придется Хотя бы снять необходимость отдельного файла диалогового окна: http://autolisp.ru/2010/03/15/dcl-dialogs-create/
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 25.05.2010, 00:53
#3
gomer

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


>Кулик Алексей aka kpblc: Думаю в данном случае диалог предпочтительнее, возможно я ошибаюсь...
Насчет bricscad - отдельная тема
1. Диалог нужно создавать динамически, чтобы защитить код... (ненадежно если win-система барахлит, хотя у меня проблем с этим не было пока)
2. Цвета только индексные труколор пока не реализован (может сейчас ситуация изменилась - не тестировал)
В общем получается совсем другая программа
gomer вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 25.05.2010, 01:02
#4
Кулик Алексей aka kpblc
Moderator

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


Вообще-то BricsCAD упоминался в качестве примера, ну да ладно. Основная идея - формировать файл диалога на лету:
Цитата:
Обратите внимание – конечный пользователь получает один (!) лисп, который по мере надобности создает файл диалога и корректно его отображает. Уже не надо беспокоиться о том, чтобы dcl-файл лежал в строго определенном месте.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 25.05.2010, 01:10
#5
gomer

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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Основная идея - формировать файл диалога на лету
ага, что-то типа вот этого:
Код:
[Выделить все]
(defun DynDia ( / objScr objFile strFile dcl_id tmp strEnter)
  (vlax-invoke
	(setq
	  strEnter "Default"
	  objFile
	  (vlax-invoke
		(setq objScr (vla-getinterfaceobject (vlax-get-acad-object) "Scripting.FilesystemObject"))
		'CreateTextFile
		(setq strFile
			(strcat
				(vl-filename-directory (setq tmp (vl-filename-mktemp (getvar "DWGNAME"))))
				(vl-filename-base tmp)
				".dcl"
			)
		)
	  )
	)
	'Write
	(apply
	  'strcat
	  (mapcar
		'(lambda (x) (strcat x "\r\n"))
		'(
			"dlg : dialog {"
			"label = \"Dynamic Dialog Example\";"
			": boxed_column {"
			"label = \"Enter Data to process\";"
			":edit_box{edit_width = 16;key = \"Edit1\";label = \"Enter string: \";}"
			"}"
			"ok_only;"
			"}"
		)
	  )
	)
  )
  (vlax-invoke objFile 'Close)
  (mapcar 'vlax-release-object (list objScr objFile))
  (setq dcl_id (load_dialog strFile))
  (vl-file-delete strFile)
  (new_dialog "dlg" dcl_id)
  (set_tile "Edit1" strEnter)
  (action_tile "accept" "(setq strEnter (get_tile \"Edit1\"))")
  (start_dialog)
  (unload_dialog dcl_id)
  strEnter
)
Причем каждый раз происходит запись на диск...
gomer вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 25.05.2010, 01:54
#6
Кулик Алексей aka kpblc
Moderator

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


Зачем обращаться к Scripting - лично я не очень понимаю...
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 25.05.2010, 14:35
#7
Александр Ривилис

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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Зачем обращаться к Scripting - лично я не очень понимаю...
Я тоже. (open), (princ), (write-line), (close), и т.д. еще никто не отменял.
Александр Ривилис вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 25.05.2010, 16:10
#8
gomer

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


>Александр Ривилис: Согласен с вами Хотя не знаю, что быстрее...
Дело в другом, Обратная схема работает немного коряво (ИМХО) с помощю функции (read-line fd) в цикле... (while или repeat)
Scripting.FileSystemObject позволяет сразу считать весь файл с помощью метода ReadAll

Код:
[Выделить все]
(defun _ReadTextFile (strFile / strFullName objScr objFile Result)
 (if (setq strFullName(findfile strFile))
   (setq
	objScr (vla-getinterfaceobject (vlax-get-acad-object) "Scripting.FilesystemObject")
	objFile(vlax-invoke-method objScr 'OpenTextFile strFullName 1 nil -2)
	Result (vlax-invoke objFile 'ReadAll)
	*dummy*(vlax-invoke objFile 'Close)
	*dummy*(mapcar 'vlax-release-object (list objFile objScr)))
  )

  Result
)
и дальше быстро преобразовать результат в список...
Это очень удобно при работе с форматом cdf
gomer вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 19.08.2011, 13:20
#9
Вовочка

пищевая технология
 
Регистрация: 02.06.2009
Киев
Сообщений: 281
Отправить сообщение для Вовочка с помощью ICQ


gomer, хочу загрузить лиспом, но ничего не выходит. Почему?
Вовочка вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 20.08.2011, 04:15
#10
gomer

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


А что именно не выходит - то?
gomer вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 22.08.2011, 16:13
#11
perpetule


 
Регистрация: 23.09.2008
Волгоград
Сообщений: 791
Отправить сообщение для perpetule с помощью ICQ Отправить сообщение для perpetule с помощью Skype™


Да все работает - замечательно, но хотелось бы свои наборы цветов.
А перекомпилировать я не могу из лиспа в начале топика, проставил свои цвета, даже *.VLX скомпилировал, он даже грузится, и выводит начальные строки типа введите ACS + enter и на этом далее тишина ...

Так, есть еще *.dcl файлик, но что с ним делать - выше моего понимания ...

Последний раз редактировалось perpetule, 22.08.2011 в 16:36.
perpetule вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 22.08.2011, 16:43
#12
gomer

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


а вводить acs в командной строке пробовали?
gomer вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 22.08.2011, 17:10 gomer
#13
perpetule


 
Регистрация: 23.09.2008
Волгоград
Сообщений: 791
Отправить сообщение для perpetule с помощью ICQ Отправить сообщение для perpetule с помощью Skype™


Цитата:
Да все работает - замечательно, но хотелось бы свои наборы цветов.
Слишком большой контраст при классической теме напрягает глаза , белый фон вообще их убивает.
perpetule вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 22.08.2011, 19:56
#14
gomer

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


потому и классическая, что была долгие году "по умолчанию" в автокаде
а на белом фоне тоже многие любят чертить... я тоже с появлением нового стиля сетки склоняюсь к нему...
gomer вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 22.08.2011, 22:25 gomer
#15
perpetule


 
Регистрация: 23.09.2008
Волгоград
Сообщений: 791
Отправить сообщение для perpetule с помощью ICQ Отправить сообщение для perpetule с помощью Skype™


Поменял цвета в исходном коде lsp, скомпилировал vlisp ом оба файла acs.lsp acs.dcl
Но выходной файл acs.vlx не функционирует...
perpetule вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 23.08.2011, 15:30
#16
gomer

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


прошу прощения за кривые ручки, но они не у меня... у меня все работает
Цитата:
Сообщение от perpetule Посмотреть сообщение
выходной файл acs.vlx не функционирует...
опишите подробно ваши действия!
gomer вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 23.08.2011, 18:07 gomer
#17
perpetule


 
Регистрация: 23.09.2008
Волгоград
Сообщений: 791
Отправить сообщение для perpetule с помощью ICQ Отправить сообщение для perpetule с помощью Skype™


Кстати, попытался исходники без всяких изменений с моей стороны перекомпилировать в *.vlx - картина ровно такая же.

Пошагово - копи паст из листингов темы в файлы acs.lsp acs.dcl
_vlisp далее мастер новых приложений - создать - расширенный режим - пути обзором - подкидываю последовательно оба вышеназванных файла на выходе подлучаю acs.vlx котрый скармливаю автокаду, на совет набрать в ком строке acs + enter выполняю далее абсолютно ничего не происходит...
Скармливаю опять acs.vlx из http://dwg.ru/dnl/5976, все опять работает, но мне бы хотелось ваять свои наборы цветов, т.к. даже в течение дня неплохо было бы менять фон, матерчатые жалюзи не до конца солнышко гасят, а оно у нас в Волгограде очень неслабое.
perpetule вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 23.08.2011, 18:53
#18
gomer

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


Цитата:
Сообщение от perpetule Посмотреть сообщение
_vlisp далее мастер новых приложений - создать - расширенный режим - пути обзором - подкидываю последовательно оба вышеназванных файла на выходе подлучаю acs.vlx котрый скармливаю автокаду, на совет набрать в ком строке acs + enter выполняю далее абсолютно ничего не происходит...
Скармливаю опять acs.vlx из http://dwg.ru/dnl/5976, все опять работает
странно... у меня работает и компилированный вариант и просто лисп с диалогом... если в ком строке уже есть приглашение, значит загрузка прошла успешно...попробуйте загрузить лисп (некомпилированный) из папки которую видит акад... если у вас проблемы с акадом или что-то стоит еще, это может выплыть... попробуйте изменить название команды... и скомпилировать еще раз...
gomer вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 24.08.2011, 21:05 gomer
#19
perpetule


 
Регистрация: 23.09.2008
Волгоград
Сообщений: 791
Отправить сообщение для perpetule с помощью ICQ Отправить сообщение для perpetule с помощью Skype™


Цитата:
попробуйте загрузить лисп (некомпилированный) из папки которую видит акад
Попробовал, результат такой же, папка прописана в путях доступа, вер. а. 2010
ACS.lsp
ACS.dcl

Файл *.dcl через меню автокада не грузится (нет такого типа расширений), но просто находится в той же папке.
Цитата:
попробуйте изменить название команды... и скомпилировать еще раз...
попробовал результат тото же.

Просьба к уважаемым лисперам, отпишитесь, будьте так добры, у кого нибудь работает лисп копи пастом из #1

Последний раз редактировалось perpetule, 24.08.2011 в 21:24.
perpetule вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 24.08.2011, 22:35
#20
Кулик Алексей aka kpblc
Moderator

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


Работает, только что специально проверял на некомпилированном.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > Цветовые схемы вкладки модель

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расчетная модель каркасного здания со стеновым заполнением aldt Расчетные программы 5 12.03.2012 08:45
Лира 9.6. Монолитный тоннель и модель грунта Митрич Лира / Лира-САПР 4 12.04.2010 05:38
Предложения по расчетным моделям сооружений aldt Расчетные программы 8 06.07.2009 17:53
Проектирование КЖ в объеме. Haos Другие CAD системы 265 20.06.2009 22:50

|| Главная || Каталог САПР || Тендеры || Публикации || Объявления || Биржа труда || Download || Галерея ||
|| Библиотека || Кунсткамера || Каталог предприятий || Контакты || Файлообменник || Блоги ||