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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > AutoLISP. Пара вопросов по командам (block, длина полилиний).

AutoLISP. Пара вопросов по командам (block, длина полилиний).

Ответ
Поиск в этой теме
Непрочитано 04.07.2014, 12:06 #1
AutoLISP. Пара вопросов по командам (block, длина полилиний).
riddler
 
Регистрация: 17.05.2013
Сообщений: 10

Добрый день.

1. В процессе выполнения программы рисую определение блока (command "_block" "shtamp_small" a2 c c1 c2 c3 c4 c5 c6 "") из элементов, которые уже были ранее отрисованы в пространстве модели ( (setq c (entlast)) и т.д.). Элементов, из которых состоит блок, может быть разное кол-во. В связи с этим, можно ли вместо "c c1 c2 c3 c4 c5 c6" задать одной переменной все элементы (это будет список или др.), которые я хочу включить в состав блока? Переменная будет заранее определена наверно каким-нибудь циклом с условием.
И еще: Можно ли рисовать определение блока в "тихом" режиме? Чтобы, акад, допустим незаметно зашел в редактор блоков, нарисовал его, присвоил имя, сохранил, и только потом командой insert блок вставить в данный чертеж.

2. Существует ли сейчас команда, результатом выполнения которой будет длина выбранной полилинии или отрезка? (то, что существуют лиспы для измерения длин выбранных полилиний, я в курсе, вопрос чисто про команду)
Например: (lenght (entlast)).
Просмотров: 2319
 
Непрочитано 04.07.2014, 12:50
#2
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


1. Типа так
Код:
[Выделить все]
;;; поставим нейтральный примитив, например, ТОЧКА, потом можно из набора убрать
	(command "_.POINT"
	      '(0 0 0) ; или NT - начальная точка блока
      ) ;_ конец COMMAND
;;;  создадим набор
      (setq rr1	(entlast)
	    rr	(ssadd)
      ) ;_ конец setq

;;;почертим что-то

;;; соберём в набор ВСЁ что начертили
      (while (setq rr2 (entnext rr1))
	(setq rr  (ssadd rr2 rr)
	      rr1 rr2
	) ;_ конец setq
      ) ;_ конец while
2. Типа так
Код:
[Выделить все]
;;;  длина полилинии
		(setq pl (entlast)
		       d_pl (vlax-curve-getdistatparam
			   (vlax-ename->vla-object pl)
			   (vlax-curve-getendparam pl)
			 ) ;_ конец vlax-curve-getDistAtParam
		) ;_ конец setq
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Непрочитано 04.07.2014, 13:12
#3
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от riddler Посмотреть сообщение
Можно ли рисовать определение блока в "тихом" режиме? Чтобы, акад, допустим незаметно зашел в редактор блоков, нарисовал его, присвоил имя, сохранил, и только потом командой insert блок вставить в данный чертеж.
Можно. Поиск по форуму, тема "На заметку программистам". Или тоже - поиск, "создание и вставка блока программно"
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 04.07.2014, 13:22
#4
riddler


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


Кулик Алексей aka kpblc, Alan, спасибо за быстрый ответ, буду дальше заниматься.
riddler вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > AutoLISP. Пара вопросов по командам (block, длина полилиний).



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программное создание размерных стилей Кулик Алексей aka kpblc Программирование 96 21.02.2025 13:53
Какой язык перспективен для инженера-конструктора с условием The_Mercy_Seat Программирование 705 17.03.2021 14:19
застревает файл при копировании, в чем дело? maximas AutoCAD 4 12.11.2010 10:34
Не могу расчленить объекты! msuab2004 AutoCAD 6 24.04.2009 00:17