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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Построение фигуры через AutoLISP

Построение фигуры через AutoLISP

Ответ
Поиск в этой теме
Непрочитано 17.02.2008, 18:22
Построение фигуры через AutoLISP
severnet
 
Регистрация: 17.02.2008
Сообщений: 5

Программно реализовать построение одного из условных обозначений в среде AutoCAD с помощью языка AutoLISP (VisualLISP). Ввод входных данных организовать через командную строку AutoCAD, предусмотреть проверку вводимых данных на допустимость. Подскажите пожалуйста, как это сделать? Очень срочно!
Просмотров: 13236
 
Непрочитано 20.05.2015, 08:26
#41
tujn08


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Если прямоугольник имеет стороны, повернутые вертикально и горизонтально
Привет!
Посмотрел код - как сделать, что бы всегда было вертикально и горизонтально.
Мне надо вставлять красную рамку(строго вертикально/горизонтально) в нужном слое (без излишков по двум точкам).
Полистаю entmake, но ответа все равно буду ждать(засиживаться на этом не хочу).
tujn08 вне форума  
 
Непрочитано 20.05.2015, 09:20
#42
Кулик Алексей aka kpblc
Moderator

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


Чего? А как бы насчет перевода?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 20.05.2015, 09:40
#43
tujn08


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


Программно надо рисовать замкнутый прямоугольник ("_rectang"), по координатам Х1У1 Х2У2 в новом слое (8 . "Слой1") красного цвета (67 . 1)

Вот примерно так надо (только еще вернуться в предыдущий слой):
Код:
[Выделить все]
 (progn
	(vl-load-com)
	(command "_.layer" "_M" "Форматка_рамка2" "_C" "1" "Форматка_рамка2")
	(setq nab (ssget "_X"  (list (cons 8 "Форматка_штамп") (cons 0 "INSERT")))) ; создали набор из всех форматок
	(setq b (sslength nab))
	(setq i (1- b)); количество в наборе и на чало счетчика переключения
(repeat b
			(setq a (ssname nab i)) ; взяли последний элемент в наборе
			(setq X1 (fix(cadr(assoc '10 (entget a))))) ;Y координата выбранного блока
			(setq Y1 (fix(caddr(assoc '10 (entget a))))) ;X координата выбранного блока
			(setq a4 a)
			(setq a (entnext a)) ;тут уже атрибут сидит первого примитива
				(setq blk (vlax-ename->vla-object a4))
				(setq q (mapcar '(lambda ( x ) (cons (vla-get-propertyname x) (vlax-get x 'value))) (vlax-invoke blk 'getdynamicblockproperties)))
				(setq r_X2 (cdr (assoc '"Расстояние1" q))) ;длина
				(setq r_Y2 (cdr (assoc '"Расстояние2" q))) ;высота
			(setq X2 (- X1 r_X2))
			(setq Y2 (+ Y1 r_Y2))
(setq p1 (list X1 Y1)) ;координата начало
(setq p2 (list X2 Y2)) ;координата конец
(command "_rectang" p1 p2)
(setq i (1- i))
) ;repeat b
)
----- добавлено через ~3 ч. -----
Задачу решил ...

Последний раз редактировалось tujn08, 20.05.2015 в 13:08.
tujn08 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Построение фигуры через AutoLISP

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