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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Чайник.command "__extend" не работает.

Чайник.command "__extend" не работает.

Ответ
Поиск в этой теме
Непрочитано 15.06.2011, 19:19 #1
Чайник.command "__extend" не работает.
ГрустныйПрограммист
 
Регистрация: 06.09.2010
Сообщений: 16

вот что делаю :
Код:
[Выделить все]
 (defun c:one (/ Trimmed Extended pickset)

	  (if (setq Trimmed (entsel "\nУкажите первую линию"))
	    (progn      
	      (setq pickset (ssadd))	
	      (ssadd (car Trimmed) pickset)	
	      (if (setq Extended (entsel "\nУкажите вторую линию"))      
			(progn
			(ssadd (car Extended) pickset)
			(sssetfirst nil pickset)
			

				(command "__extend")

					(while (/= (getvar "cmdactive") 0) (command pause))
			
					(vl-cmdf "моя_команда"  (car Trimmed) (car Extended))
			       

			(setq Trimmed nil) 
			(setq Extended nil)

			)
		
	      )
	)
    )
  
) 
Две проблемы :
  1. как правильно вызвать Extend, чтобы удлинить два отрезка до точки пересечения их проекций (они находятся на скрещивающихся прямых и пересекаются в плоскости XY). то есть что-то типа (command "__extend" "п" "п" (car Extended) (car Trimmed)) . Я не разобрался до конца и оставил просто (command "__extend"), но этот вариант требует действий пользователя - ввода в командную строку. И поэтому второй вопрос-
  2. как после command вызвать vl-cmdf, чтобы command полностью выполнился? Я поставил цикл, но не работает - первый комманд задает невидимые вопросы.
Просмотров: 2625
 
Непрочитано 15.06.2011, 19:27
#2
gomer

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


ГрустныйПрограммист, вы действительно грустный индийский программист? Забавно! Во первых не "__extend", а "_.extend", а во вторых не "_.extend", а "_.fillet"
gomer вне форума  
 
Автор темы   Непрочитано 15.06.2011, 19:44
#3
ГрустныйПрограммист


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


спасибо за ответ! к сожалению, я действительно полный чайник, не обижайтесь. Боюсь, что сопряжение не подойдет. Отрезки не компланарны. И мне не нужно соединять их. Только удлинить.
Замена "__extend" на "_.extend" ничего не дала
ГрустныйПрограммист вне форума  
 
Непрочитано 15.06.2011, 19:51
#4
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от gomer Посмотреть сообщение
а во вторых не "_.extend", а "_.fillet"
Здесь есть нюанс
Цитата:
Сообщение от gomer Посмотреть сообщение
чтобы удлинить два отрезка до точки пересечения их проекций (они находятся на скрещивающихся прямых и пересекаются в плоскости XY)
ГрустныйПрограммист, А геометрически решить задачу нет желания?
Код:
[Выделить все]
 
(defun C:one nil
(and
(setq line1 (car (entsel "\nУкажите первую линию (граница): ")))
(setq line2 (car (entsel "\nУкажите вторую линию (удлинение): ")))
(setq
  sp1 (cdr(assoc 10 (entget line1))) ;_Начало линии 1 (граница)
  ep1 (cdr(assoc 11 (entget line1))) ;_Конецо линии 1 (граница)
  sp2 (cdr(assoc 10 (entget line2))) ;_Начало линии 2 (удлинение)
  ep2 (cdr(assoc 11 (entget line2))) ;_Конецо линии 2 (удлинение)
  pt  (inters                        ;_Точка пересечения
	(mapcar '+ sp1 '(0 0))       ;_Удаляем Z
	(mapcar '+ ep1 '(0 0))       ;_Удаляем Z
	(mapcar '+ sp2 '(0 0))       ;_Удаляем Z
	(mapcar '+ ep2 '(0 0))       ;_Удаляем Z
	nil
	)
  )
;;; Если точки пересения нет (pt -nil)
;;; то прекратится проверка and
  (if (< (distance (mapcar '+ sp2 '(0 0)) pt)
	 (distance (mapcar '+ ep2 '(0 0)) pt)
	 )
;;;Ближе начало
    (entmod
    (subst (cons 10 (append pt (list (caddr sp2))))
	   (assoc 10 (entget line2))
	   (entget line2)
	   )
    )
;;;Ближе конец
    (entmod
    (subst (cons 11 (append pt (list (caddr ep2))))
	   (assoc 11 (entget line2))
	   (entget line2)
	   )
    )
    )
)
  )
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 15.06.2011, 19:56
#5
gomer

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


удале, но

Последний раз редактировалось gomer, 15.06.2011 в 20:06.
gomer вне форума  
 
Автор темы   Непрочитано 15.06.2011, 19:57
#6
ГрустныйПрограммист


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


Владимир, спасибо! Подумаю.
ГрустныйПрограммист вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Чайник.command "__extend" не работает.



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
shift не работает в AutoCAD Civil3d b_1 Вертикальные решения на базе AutoCAD 7 11.05.2010 12:29
Работает ли VBA из MS Access (или VB6) application на 64-бит? Alex5556 Программирование 2 03.03.2010 20:53
Лира 9.4 не работает. maxim903 Лира / Лира-САПР 12 14.03.2009 12:42
Помогите!!! Raster Design не работает Галина Прочее. Программное обеспечение 2 30.07.2004 14:58