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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Размер в формате "NхШаг"

Размер в формате "NхШаг"

Ответ
Поиск в этой теме
Непрочитано 12.09.2013, 15:43
Размер в формате "NхШаг"
sam_n
 
Регистрация: 04.06.2013
Сообщений: 34

В очередной раз хочу поднять тему о добавлении к размерам шага в формате "NхШаг=". После долгого прочесывания самым толковым показался такой лисп

Код:
[Выделить все]
 (defun C:shag (/ *error* adoc name_ent list_ent dim_value n1)
  (vl-load-com)
  (defun *error* (msg)
    (vla-endundomark adoc)
    (princ "Работа программы прервана пользователем")
  )
  (vla-startundomark
    (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
  )
  (initget 6)
  (if (not _var_n)
    (setq _var_n0 100)
  )
  (setq	_var_n
	 (getint (strcat "\nВведите положительное целое число <"
			 (rtos _var_n0)
			 ">: "
		 )
	 )
  )
  (if (not _var_n)
    (setq _var_n _var_n0)
    (setq _var_n0 _var_n)
  )
  (setq name_ent (entsel "\nВыберите размер: "))
  (if name_ent
    (progn
      (setq list_ent (entget (car name_ent)))
      (while (not
	       (= (cdr (assoc 0 list_ent)) "DIMENSION")
	     )
	(setq name_ent (entsel "\nВыберите размер: "))
      )
      (setq list_ent  (entget (car name_ent))
	    dim_value (cdr (assoc 42 list_ent))
	    n1	      (rtos (/ dim_value _var_n) 2 0)
      )
      (entmod
	(subst
	  (cons	1
		(strcat	n1
			"x"
			(itoa _var_n)
			"=<>"
		)
	  )
	  (assoc 1 list_ent)
	  list_ent
	)
      )
    )
    (princ "Размер не выбран!")
  )
  (vla-endundomark adoc)
  (princ))
Сам в лиспе слаб и поэтому не могу устранить недостатки:
- надо выделять каждый размер отдельно
- если в самом размере было перебитое, а не истинное значение, лисп это не учитывает
Не найдется на форуме доброго человека?

Последний раз редактировалось sam_n, 15.09.2013 в 11:51. Причина: Описка
Просмотров: 5109
 
Непрочитано 10.06.2019, 15:38
#21
p_sh

новичок
 
Регистрация: 19.06.2005
Ярославль
Сообщений: 3,408


Цитата:
Что за дополнительную панель вы используете?
http://forum.dwg.ru/showthread.php?t=150579

справа - свой модуль для ЖБК
__________________
хорошее - в обыденном
p_sh вне форума  
 
Непрочитано 17.06.2019, 09:09
#22
Зодчий1989


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


Цитата:
Сообщение от VVA Посмотреть сообщение
Вариант с зацикливанием выбора
Уважаемый ,VVA, как Вас отблагодарить?
Интересная особенность лиспа: при применении его на размер 750 с желанием получить 150х5=750 поле ставится на место первой цифры 5 т.е. получается: 150х5=750 и корректируется соответственно(увеличиваешь размер на 150мм и получаешь 160х5=900) чем это вызвано ума не приложу.
__________________
Не ошибается только тот, кто ничего не делает.
Зодчий1989 вне форума  
 
Непрочитано 17.06.2019, 12:52
#23
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,776
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от Зодчий1989 Посмотреть сообщение
Уважаемый ,VVA, как Вас отблагодарить?
Пожертвуй сумму, которую считаешь возможной РПЦ, детскому дому или помощь бездомным животным

Цитата:
Сообщение от Зодчий1989 Посмотреть сообщение
Интересная особенность лиспа:
Приложи пример в виде dwg файла
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 17.06.2019, 15:20
#24
Зодчий1989


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


Цитата:
Сообщение от VVA Посмотреть сообщение
Пожертвуй сумму, которую считаешь возможной
Ок, принято.

Цитата:
Сообщение от VVA Посмотреть сообщение
Приложи пример в виде dwg файла
Пример по DimSSF.dwg
Попробуйте 2 раза на размер применить данный лисп (только обязательно с шагом 150).
Данная особенность образуется всегда, когда совпадают данные цифры: 133=390 или 233=690 1055=5250 1050х50=52500
__________________
Не ошибается только тот, кто ничего не делает.

Последний раз редактировалось Зодчий1989, 17.06.2019 в 15:28.
Зодчий1989 вне форума  
 
Непрочитано 17.06.2019, 16:17
#25
Dr.Smiley

Инженер-конструктор ПГС
 
Регистрация: 17.08.2011
Сообщений: 47


Доброго дня всем. А подскажите как сделать наоборот что бы было "количество Х шаг = результат"
Dr.Smiley вне форума  
 
Непрочитано 17.06.2019, 17:59
#26
Зодчий1989


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


Цитата:
Сообщение от Dr.Smiley Посмотреть сообщение
Доброго дня всем. А подскажите как сделать наоборот что бы было "количество Х шаг = результат"
строку (setq str (strcat (itoa shg) "X" fld "=<>"))
представить в виде : (setq str (strcat fld "X" (itoa shg) "=<>"))
__________________
Не ошибается только тот, кто ничего не делает.
Зодчий1989 вне форума  
 
Непрочитано 17.06.2019, 20:53
#27
Dr.Smiley

Инженер-конструктор ПГС
 
Регистрация: 17.08.2011
Сообщений: 47


Цитата:
Сообщение от Зодчий1989 Посмотреть сообщение
строку (setq str (strcat (itoa shg) "X" fld "=<>"))
представить в виде : (setq str (strcat fld "X" (itoa shg) "=<>"))
Большое, человеческое спасибо вам.
Dr.Smiley вне форума  
 
Непрочитано 18.06.2019, 07:34
#28
DMSskop


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


Цитата:
Сообщение от p_sh Посмотреть сообщение
http://forum.dwg.ru/showthread.php?t=150579

справа - свой модуль для ЖБК
Ого сколько кнопочек Дадите посмотреть?
DMSskop вне форума  
 
Непрочитано 18.06.2019, 14:01
#29
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,776
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для VVA с помощью Skype™


Зодчий1989, Обновил #18
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 18.06.2019, 14:58
#30
Зодчий1989


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


Цитата:
Сообщение от VVA Посмотреть сообщение
Обновил #18
Увы проблема осталась, но порядок её вызова поменялся.
1) Ставим размер
2) Применяем лисп
3) Заходим в размер двойным нажатием, ничего не меняем и выходим
4) Получаем 130х3=390
__________________
Не ошибается только тот, кто ничего не делает.
Зодчий1989 вне форума  
 
Непрочитано 18.06.2019, 17:46
1 | #31
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,776
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от Зодчий1989 Посмотреть сообщение
3) Заходим в размер двойным нажатием, ничего не меняем и выходим
4) Получаем 130х3=390
Проблему подтверждаю, но лисп здесь не причем.
Если в п.3 скопировать значение в буфер обмена и по выходу вставить в редакторе в текст/мтест, то формула не ломается и остается.
Решение - применить DIMSSF повторно. Другого варианта пока не вижу
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Размер в формате "NхШаг"

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вертикальный размер wizds AutoCAD 3 02.05.2013 21:35
Как вставить символ "диаметр" в линейный размер Serghei AutoCAD 9 04.05.2010 11:42
Размер в листе показывает не размер детали! Witalij AutoCAD 6 24.06.2008 07:56
Пользовательский размер листа bimari AutoCAD 2 26.10.2006 18:14