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

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

Скрыть задний план (заливка: фон) для размеров из моего LISP

Ответ
Поиск в этой теме
Непрочитано 21.02.2018, 12:14 #1
Скрыть задний план (заливка: фон) для размеров из моего LISP
Immortal_6666
 
вольный копейщик
 
Регистрация: 03.11.2010
Сообщений: 132

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

Код:
[Выделить все]
 ;; ОСНОВНАЯ ФУНКЦИЯ
(defun TSELECTROINS (strl1 strl2 strb vp hp / xx yy pb pt *OldcLayer* *Oldosmode* echo vposition hposition)
(vl-load-com)

; объявление переменных
(setq echo (getvar "CMDECHO"))
(setq *OldcLayer* (getvar "CLAYER")) ; запоминаем значение текущего слоя
(setq *Oldosmode* (getvar "OSMODE"))
(setq vposition vp) ; устанавливаем значение по умолчанию по вертикали
(setq hposition hp) ; устанавливаем значение по умолчанию по горизонтали

; ввод данных
(setq pb (getpoint"\n От какой точки отсчитываем?")) ; указываем точку отсчета
(setvar "OSMODE" 0)
(setq yy (getint (strcat "\nУкажите высоту: " "<" (itoa vposition) ">"))) ; указываем смещение по вертикали
(if (null yy) (setq yy vposition)) ; обрабатываем пустой ввод (значение по умолчанию)
 
(setq xx (getint (strcat "\nУкажите смещение по горизонтали вправо или (-)влево: " "<" (itoa hposition) ">"))) ; указаваем смещение по горизонтали
(if (null xx) (setq xx hposition)) ; обрабатываем пустой ввод (значение по умолчанию)					

(setvar "CMDECHO" 0) ; отключаем эхо-вывод команд

(setq pt (list (+ (car pb) xx) ( + (car (cdr pb)) yy) 0.0))	; получаем точку вставки

(setvar "CLAYER" strl1)	; устанавливаем текущим нужный нам слой для блока
(vl-cmdf "_insert" strb pt "1" "" "" )	; вставляем блок

(setvar "CLAYER" strl2)	; устанавливаем текущим нужный нам слой для размеров
(vl-cmdf "_dimlinear" pb pt "_h" "@0,150,0")	; ставим горизонтальный размер
(vl-cmdf "_dimlinear" pb pt "_v" "@150,0,0")	; ставим вертикальный размер

(setvar "CLAYER" *OldcLayer*)	; возвращаем первоначальный текущий слой
(setvar "OSMODE" *Oldosmode*)
(setvar "CMDECHO" echo)
(princ)
)


;; ОДИНОЧНАЯ РОЗЕТКА
(defun C:SOCKETINS1 (/)
(TSELECTROINS "rozetki" "dim_elektrika" "socket_w" 300 200)
)
Просмотров: 1780
 
Непрочитано 21.02.2018, 12:46
1 | 1 #2
kacugu

начинающий инженер-гидротехник
 
Регистрация: 18.04.2010
Санкт-Петербург
Сообщений: 893


2 варианта:
1. В настройках используемого размерного стиля установить "цвет заливки" - фон
2. В лиспе перед созданием размеров установить значение переменно dimtfill = 1
kacugu на форуме  
 
Автор темы   Непрочитано 21.02.2018, 12:51
#3
Immortal_6666

вольный копейщик
 
Регистрация: 03.11.2010
Сообщений: 132


kacugu, второй вариант отличный! Даже не думал, что так просто Сейчас попробую
_________

Все получилось! Еще раз огромное спасибо!

Последний раз редактировалось Immortal_6666, 21.02.2018 в 13:09.
Immortal_6666 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Скрыть задний план (заливка: фон) для размеров из моего LISP

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В динамическом блоке wipeout при array не хочет идти на задний план Red Nova Динамические блоки 8 18.09.2016 12:14
Скрыть фон при печати Atnon AutoCAD 4 08.04.2015 10:34
Lisp. Не вставляет значения в базу access. Zaghim LISP 2 11.07.2012 14:29
Умер разработчик языка программирования Lisp andr_g LISP 1 27.10.2011 08:36
{Конкурс} Lisp. Задачки для студентов gomer LISP 10 05.01.2011 16:33