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

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

Вопрос

Ответ
Поиск в этой теме
Непрочитано 25.12.2003, 10:09 #1
Вопрос
Baron
 
Регистрация: 17.12.2003
Сообщений: 114

Всем привет!
Кто-нибудь может помочь с простеньким Lispом
Нужно начертать Box чтобы CAD спрашивал только один параметр (длину или ширину), остальные надо сделать по умолчанию (задать),
или, если вдруг это проще, прямоугольник выдавить.....
Спасибо всем, кто нашел время и желание ответить
Просмотров: 6908
 
Непрочитано 25.12.2003, 13:41
#2
Grinzaid

Архитектор
 
Регистрация: 14.10.2003
Израиль
Сообщений: 365
<phrase 1=


А чему равен второй параметр, первому? Т.е. чертим квадрат, или как?
Цитата:
прямоугольник выдавить.....
"Выдавить" Это сленг или в русском ACADе extrude?
Grinzaid вне форума  
 
Автор темы   Непрочитано 25.12.2003, 14:12
#3
Baron


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


Нужен параллелепипед (длина-Х, ширина-600, высота-38), так чтобы задавать только длину……….
Желательно из 0,0,0 с отрицательными значениями………….

For Grinzaid:Насчет русского ACADа не знаю............, а как перевести extrude? Вытеснить? По-моему еще менее понятно.
А когда пишешь по-родному ACADa (Box, например, спрашивают про квадраты )
Baron вне форума  
 
Непрочитано 25.12.2003, 14:21
#4
Grinzaid

Архитектор
 
Регистрация: 14.10.2003
Израиль
Сообщений: 365
<phrase 1=


Код:
[Выделить все]
(defun c:bbb ()
(command "box" "" "L" pause "-600" "-300")
)
Grinzaid вне форума  
 
Автор темы   Непрочитано 25.12.2003, 14:39
#5
Baron


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


Огромное спасибо for Grinzaid
А вот бы еще и в своем слое оригинальном(можно уже созданном), возможно? А точку вставки можно изменить?(допустим 0,0,830)
За ранее спасибо...........
Baron вне форума  
 
Непрочитано 25.12.2003, 14:47
#6
Grinzaid

Архитектор
 
Регистрация: 14.10.2003
Израиль
Сообщений: 365
<phrase 1=


Код:
[Выделить все]
(defun c:bbb ()
(command "box" "0,0,830" "L" pause "-600" "-300")
)
А необходимый слой сделайте активным предварительно.
Grinzaid вне форума  
 
Автор темы   Непрочитано 25.12.2003, 15:01
#7
Baron


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


Cпасибо огромное, я правда если честно уже сам воткнул, но все равно спасибо
А разве программно нельзя вызвать слой?
Вроде того как:
"layer" "xxx"
Baron вне форума  
 
Непрочитано 25.12.2003, 15:20
#8
Grinzaid

Архитектор
 
Регистрация: 14.10.2003
Израиль
Сообщений: 365
<phrase 1=


Можно, но тогда код усложняется: если слой уже есть, его надо активизировать, а если его нет, то создать. Зачем это?
__________________
С уважением,
Влад Гринзайд.
Grinzaid вне форума  
 
Непрочитано 25.12.2003, 15:50
#9
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Цитата:
Сообщение от Grinzaid
Можно, но тогда код усложняется: если слой уже есть, его надо активизировать, а если его нет, то создать.
Такая вот крамола: A зачем анализировать, есть ли уже слой с нужным именем или еще не создан? Создавай каждый раз заново, автокад предупредит, что такой слой уже есть, и пустит вас дальше.
Vova вне форума  
 
Автор темы   Непрочитано 25.12.2003, 15:59
#10
Baron


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


Вопрос был в том, как это сделать программно...............
Baron вне форума  
 
Непрочитано 25.12.2003, 16:18
#11
Grinzaid

Архитектор
 
Регистрация: 14.10.2003
Израиль
Сообщений: 365
<phrase 1=


И ведь действительно! Стыжусь, стыжусь
Код:
[Выделить все]
(defun c:bbb ()
(command "cmdecho" "1" "")
(command "-layer" "n" "BOX" "s" "BOX" "")
(command "box" "0,0,830" "l" pause "-600" "-300") 
)
__________________
С уважением,
Влад Гринзайд.
Grinzaid вне форума  
 
Автор темы   Непрочитано 25.12.2003, 16:24
#12
Baron


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


Вообще-то я отвечал for VOVA, но за прогу огромное спасибо................
Baron вне форума  
 
Непрочитано 25.12.2003, 17:36
#13
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Grinzaid> В книге, обложка которой внизу страницы слева, есть такая фраза: "Книга не предназначена для программистов, хотя и они смогут найти здесь интересные идеи..."
Vova вне форума  
 
Непрочитано 25.12.2003, 17:58
#14
Apelsinov

Проектировщик ВК. LISP-любитель.
 
Регистрация: 15.12.2003
Москва
Сообщений: 1,186
<phrase 1=


Код:
[Выделить все]
(defun c:bbb (/ l echo)
  (setq	echo (getvar "cmdecho")
	l    (getvar "clayer")
  )
  (setvar "cmdecho" 0)
  (command "-layer" "n" "BOX" "")
  (setvar "clayer" "BOX")
  (initget 3)
  (command "box" "0,0,830" "l" (getdist "\nДлина:") "-600" "-300")
  (setvar "cmdecho" echo)
  (setvar "clayer" l)
  (princ)
)
Apelsinov вне форума  
 
Автор темы   Непрочитано 26.12.2003, 09:06
#15
Baron


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


Огромное спасибо For Apelsinov, но прога немного не так работает она вставляет box в разные точки, а хотелось бы в одну......
.Но все равно спасибо за учатие
Baron вне форума  
 
Непрочитано 26.12.2003, 09:53
#16
Apelsinov

Проектировщик ВК. LISP-любитель.
 
Регистрация: 15.12.2003
Москва
Сообщений: 1,186
<phrase 1=


Цитата:
вставляет box в разные точки
Такого быть не должно, возможно срабатывает включенная привязка, вот Вам с отключением привязок:
Код:
[Выделить все]
(defun c:bbb (/ l echo os)
  (setq	echo (getvar "cmdecho")
	l    (getvar "clayer")
	os   (getvar "osmode")
  )
  (setvar "cmdecho" 0)
  (setvar "osmode" 0)
  (command "-layer" "n" "BOX" "")
  (setvar "clayer" "BOX")
  (initget 3)
  (command "box"
	   "0,0,830"
	   "l"
	   (getdist "\nДлина:")
	   "-600"
	   "-300"
  )
  (setvar "cmdecho" echo)
  (setvar "clayer" l)
  (setvar "osmode" os)
  (princ)
)
Apelsinov вне форума  
 
Автор темы   Непрочитано 26.12.2003, 11:22
#17
Baron


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


Очень признателен, спасибо...........
Baron вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Вопрос

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

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