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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > можно ли к BOUNDARY прицепить каойнибудь LISP

можно ли к BOUNDARY прицепить каойнибудь LISP

Ответ
Поиск в этой теме
Непрочитано 16.12.2003, 16:07
Dima
 
инженер
 
Одесса-Мама
Регистрация: 30.08.2003
Сообщений: 172

народ а вот такой вопросик:
можно ли к BOUNDARY прицепить каойнибудь LISP чтоб он в нижнем правом или левом или верхнем... углу этого региона вписывал полученную площадь в м2 (ну примерно как в архикаде?
__________________
vinum
Просмотров: 10648
 
Непрочитано 24.12.2003, 12:14
#21
Grinzaid

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


Хотелось бы иметь возможност менять метод селекции на Pick Point
Grinzaid вне форума  
 
Автор темы   Непрочитано 30.07.2005, 19:33
#22
Dima

инженер
 
Регистрация: 30.08.2003
Одесса-Мама
Сообщений: 172
Отправить сообщение для Dima с помощью Skype™


Цитата:
Сообщение от Fantomas
>Apelsinov
Превосходный ЛИСП! Я тоже вчера эксперементировал с BOUNDARY, но чтобы добиться подобных результатов, надо еще работать. Единственное, исправьте ошибочку. У вас усть функция MODES, она в 4-й строке вызываеться как _MODES, соответственно выскакивает ошибка.

>Dima
Я дорабатываю. Будет 3 режима. Выбор замкнутых объектов, выбор "фиктивно" замкнутых объектов (с Boundary), выбор по точкам. Также будет суммирование. С масштабом, я напортачил :? ... Вот вам пока, рабочая функция для замкнутых объектов. Мастаб 1:1 для чертежа 1:1 в миллиметрах, есть настройка высоты шрифта.
Код:
[Выделить все]
(defun c:are (/ temp_scal obj obj_area selection option are_sum cur_area)
  (setvar "cmdecho" 0)
  (vl-load-com)
(if (not scal)(setq scal 1.0))
(if(not theight)(setq theight 250.0))
(setq are_sum 0.0)
(are_comline)
  (while T
    (princ "Select closed object or [Esc] to Quit ")
(setq selection (car(entsel)))
    (if (/= selection nil)
      (progn
	 (setq obj (vlax-ename->vla-object selection))
	       (if (= T (vlax-property-available-p obj "Area"))
		 (progn
	       (setq obj_area (rtos(setq cur_area(/(vla-get-area obj)(* (* (/ 1 scal)1000)(* (/ 1 scal)1000))))2 2))
(command "_.text" "0,0" theight "0" (strcat obj_area " m*2")
"_.copybase" "0,0" (entlast)"" "_.erase" (entlast)"" "_.pasteclip" pause)
	       (setq are_sum(+ are_sum cur_area))
	       (terpri)
	       (princ (strcat "*** Current area = "(rtos cur_area 2 2)", Area summary = "(rtos are_sum 2 2)" ***"))
	        (terpri)
		 );end progn
(alert "Object is not closed!\nSelect other object or press [Esc] to Quit.")
	       );end if
	);end progn
      (alert "Object is not selected!\nSelect object or press [Esc] to Quit.")
      );end if
    );end while
	 (princ)
	);end are

(defun are_comline (/ option)
  (setq option(getstring(strcat
"Drawing scale <1:"(rtos scal 2 2)">/text Size <"(rtos theight 2 1)"> or Enter to Continue. ")))
       (if (not (or (= "D" option)(= "S" option)(= "" option)))
	 (progn
(alert "Invalid input!\nOptions avaliable:\nD - set drawing scale,\nS - set text size,\nW - set text width.")
	   (are_comline)
	   );end progn
	 );end if
      (cond
	((= "D" option)(are_scal))
	((= "S" option)(are_theighght))
	);end cond
	   (princ)
	   );end are_comline


(defun are_scal (/ temp_scal)	
  (setq temp_scal scal)
  (setq scal(getreal (strcat "Enter scale <1:"(rtos scal 2 2)">: ")))
  (if (= scal nil)(setq scal temp_scal))
  (are_comline)
  (princ)
  );end are_scal

(defun are_theight (/ temp_theight)
  (setq temp_theight theight)
  (setq theight(getreal (strcat "Enter text size <"(rtos theight 2 1)">: ")))
  (if (= theight nil)(setq theight temp_theight))
  (are_comline)
  (princ)
  );end are_theight
подставил вместо m*2 => м\U+00B2, но в процессе выполнения команды обратный слеш теряется, как с этим бороться?
__________________
vinum
Dima вне форума  
 
Непрочитано 30.07.2005, 21:56
#23
fixo

Lisp/VBA/VB.NET Hobbyist
 
Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367


Добавь второй слэш:

" м\\U+00B2"

Тока не для всяких шрифтов...
fixo вне форума  
 
Автор темы   Непрочитано 31.07.2005, 00:43
#24
Dima

инженер
 
Регистрация: 30.08.2003
Одесса-Мама
Сообщений: 172
Отправить сообщение для Dima с помощью Skype™


Цитата:
Сообщение от Fatty
Добавь второй слэш:

" м\\U+00B2"

Тока не для всяких шрифтов...
Все гениальное просто....
Благодарю!
__________________
vinum
Dima вне форума  
 
Непрочитано 15.11.2006, 17:40
#25
bimari

проектирование дорог
 
Регистрация: 18.10.2006
Riga
Сообщений: 25


хм... а у меня не одна из предложенных версий не идет... :cry: а нельзя ли эти лиспы адоптировать к 2004 или 2006 Акаду?
bimari вне форума  
 
Автор темы   Непрочитано 16.11.2006, 10:43
#26
Dima

инженер
 
Регистрация: 30.08.2003
Одесса-Мама
Сообщений: 172
Отправить сообщение для Dima с помощью Skype™


Цитата:
Сообщение от bimari
хм... а у меня не одна из предложенных версий не идет... :cry: а нельзя ли эти лиспы адоптировать к 2004 или 2006 Акаду?
у меня работает начиная с 2004 и по 2007!
что-то вы не так делаете!
__________________
vinum
Dima вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > можно ли к BOUNDARY прицепить каойнибудь LISP

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