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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > "+" перед координатой. Как? Срочно.

"+" перед координатой. Как? Срочно.

Ответ
Поиск в этой теме
Непрочитано 26.12.2011, 12:59 #1
"+" перед координатой. Как? Срочно.
Zeinum
 
Регистрация: 26.12.2011
Сообщений: 6

Прошу отписаться кто знает. Завтра нести чертеж на сдачу. Есть координатные выноски в виде блоков с полями. Если значение координаты отрицательное - автокад подставляет "-", но "+" при положительном значении - нет. Кто знает, как можно настроить отображение знака "+". Пробовал вставлять формулу с "if", но видимо что-то не разобрался с синтаксисом. Ребят, подскажите срочно, а-то каюк

upd: или хотя бы ткните в справку по синтаксису формул в полях.

Вложения
Тип файла: dwg
DWG 2010
Выноска.dwg (242.4 Кб, 720 просмотров)


Последний раз редактировалось Zeinum, 26.12.2011 в 13:05.
Просмотров: 2964
 
Непрочитано 26.12.2011, 13:24
#2
saa


 
Регистрация: 25.09.2008
Новосибирск
Сообщений: 218


в полях нет условных операторов
__________________
www.saa-blogs.blogspot.com
saa вне форума  
 
Автор темы   Непрочитано 26.12.2011, 13:43
#3
Zeinum


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


Интересует любой обходной путь, хоть какой. Системная переменная отвечающая за отображение плюса, импорт условия из таблицы. Хоть что-то...

Последний раз редактировалось Zeinum, 26.12.2011 в 13:50.
Zeinum вне форума  
 
Непрочитано 26.12.2011, 14:16
#4
ытя


 
Регистрация: 23.09.2005
СПб
Сообщений: 428


Цитата:
Сообщение от Zeinum Посмотреть сообщение
Интересует любой обходной путь
А руками?
ытя вне форума  
 
Автор темы   Непрочитано 26.12.2011, 14:21
#5
Zeinum


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


до завтра не успею в принципе, т.к. чертеж весь в одной четверти я тупо дописал там где надо "+" в редакторе блоков, но это не самый лучший вариант. Хотелось бы сделать законченный рабочий модуль. Так этот блок супер удобный, можно перетягивать, копировать, отражать, масштабировать и т.д. Короче подойдет всем. Есть написаная на лиспе приблуда с полным функционалом, но если нужно двигать много координат начинаются проблемы. Поэтому стремлюсь сделать все в блоке.
Zeinum вне форума  
 
Непрочитано 26.12.2011, 16:27
#6
VVA

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


Числовые функции, которые можно использовать в полях
"коротенькая" формула if в полях ( начиная с поста 11)
1 условие: если что-то получится, выложить сюда
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 26.12.2011, 17:05
#7
Zeinum


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


К сожалению "иф" должен вернуть строчное значение("+"или ""), а не числовое. Поэтому "коротенькая формула" не подойдет. Вроде что-то может получиться через diesel, но пока не могу понять, как дать на вход координату базовой точки блока...
Zeinum вне форума  
 
Непрочитано 26.12.2011, 17:10
#8
Сергей Богатов


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


Express Tools установлен?
Это конечно не лучший вариант , но пробуй так: "_attout" -> создётся текстовик с "выжимкой" из твоих блоков -> массово редактируй чем нибудь этот текстовик -> _attin

P.S.
Если надо срочно "до завтра", то разметь чертёж по четвертям. Выбирай блоки в нужной четверти и "_find" ->меняй "X:" на "X:+" и "Y:" на "Y:+"
__________________
Я-проектировщик бывший проектировщик!

Последний раз редактировалось Сергей Богатов, 26.12.2011 в 17:16.
Сергей Богатов вне форума  
 
Непрочитано 26.12.2011, 18:01
#9
Oliver_88

"ценный кадр"
 
Регистрация: 02.12.2010
Сообщений: 115
<phrase 1=


Попробуй-ка. Команда p+
Код:
[Выделить все]
 (defun c:p+ ( / bes-add-vla-object-selectionset *active_document*)
  (vl-load-com)
  (setq *active_document* (vla-get-activedocument (vlax-get-acad-object)))
  (vla-Regen *active_document* acActiveViewport)
  (vla-StartUndoMark *active_document*)
  
  (defun bes-add-vla-object-selectionset (lst scr doc / ssl)
    (setq ssl
	   (vla-get-ActiveSelectionSet
	     doc
	     )
	  )
    (vla-Clear ssl)
    (if scr
      (if
	(and
	  (not
	    (vl-catch-all-error-p
	      (vl-catch-all-apply
		'vla-SelectOnScreen
		(list ssl
		      (vlax-safearray-fill
			(vlax-make-safearray
			  vlax-vbInteger
			  (cons 0 (1- (vl-list-length lst)))
			  )
			(mapcar 'car lst)
			)
		      (vlax-safearray-fill
			(vlax-make-safearray
			  vlax-vbVariant
			  (cons 0 (1- (vl-list-length lst)))
			  )
			(mapcar 'cdr lst)
			)
		      )
		)
	      )
	    )
	  (/= (vla-get-Count ssl) 0)
	  )
	ssl
	)
      (if
	(and
	  (not
	    (vl-catch-all-error-p
	      (vl-catch-all-apply
		'vla-Select
		(list ssl
		      acSelectionSetAll
		      nil nil
		      (vlax-safearray-fill
			(vlax-make-safearray
			  vlax-vbInteger
			  (cons 0 (1- (vl-list-length lst)))
			  )
			(mapcar 'car lst)
			)
		      (vlax-safearray-fill
			(vlax-make-safearray
			  vlax-vbVariant
			  (cons 0 (1- (vl-list-length lst)))
			  )
			(mapcar 'cdr lst)
			)
		      )
		)
	      )
	    )
	  (/= (vla-get-Count ssl) 0)
	  )
	ssl
	)
      )
    )
  
  (vlax-map-collection
    (bes-add-vla-object-selectionset '((0 . "INSERT")) nil *active_document*)
    (function
      (lambda (f / ls)
	(if (equal :vlax-true (vla-get-HasAttributes f))
	  (if
	    (= 2 (length
		   (setq ls
			  (vlax-safearray->list
			    (vlax-variant-value
			      (vla-GetAttributes f)
			      )
			    )
			 )
		   )
	       )
	    (apply
	      (function
		(lambda (d s / strX strY p)
		  (if
		    (and
		      (vl-string-search "X:" (setq strX (vla-get-TextString d)))
		      (vl-string-search "Y:" (setq strY (vla-get-TextString s)))
		      )
		    (progn
		      (cond
			(
			 (setq p
				(vl-string-search "-+" strX)
			       )
			 (vla-put-TextString d
			   (strcat "X:" (substr strX (+ 2 p)))
			   )
			 )
			(
			 (setq p
				(vl-string-search "+-" strX)
			       )
			 (vla-put-TextString d
			   (strcat "X:" (substr strX (+ 2 p)))
			   )
			 )
			(
			 (and
			   (not (vl-string-position (ascii "-") strX))
			   (not (vl-string-position (ascii "+") strX))
			   )
			 (vla-put-TextString d
			   (strcat "X:+" (substr strX 3))
			   )
			 )
			)
		      (cond
			(
			 (setq p
				(vl-string-search "-+" strY)
			       )
			 (vla-put-TextString s
			   (strcat "Y:" (substr strY (+ 2 p)))
			   )
			 )
			(
			 (setq p
				(vl-string-search "+-" strY)
			       )
			 (vla-put-TextString s
			   (strcat "Y:" (substr strY (+ 2 p)))
			   )
			 )
			(
			 (and
			   (not (vl-string-position (ascii "-") strY))
			   (not (vl-string-position (ascii "+") strY))
			   )
			 (vla-put-TextString s
			   (strcat "Y:+" (substr strY 3))
			   )
			 )
			)
		      )
		    )
		  )
		)
	      ls
	      )
	    )
	  )
	)
      )
    )
  (vla-EndUndoMark *active_document*)
  
  (princ)
  
  )

Последний раз редактировалось Oliver_88, 30.12.2011 в 11:42. Причина: поправил код с учетом №10
Oliver_88 вне форума  
 
Автор темы   Непрочитано 27.12.2011, 16:18
#10
Zeinum


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


Oliver_88, спасибо за лиспик, свою задачу выполнил на все 100. Но есть неудобство - если блок вставлять еще где-нибудь, + остается в атрибуте насовсем) те может иметь место конструкция X:-+10.00 Хотя иначе наверное вопрос не решить. Все равно спасибо. Хотя если есть еще у кого идеи - давайте делиться.

Кстати если кому надо, вот блок масштабной линейки для профилей. В свойствах задается условный горизонт.
Вложения
Тип файла: dwg
DWG 2010
МЛинейка.dwg (143.7 Кб, 675 просмотров)
Zeinum вне форума  
 
Непрочитано 30.12.2011, 11:41
#11
Oliver_88

"ценный кадр"
 
Регистрация: 02.12.2010
Сообщений: 115
<phrase 1=


Zeinum, после копирования/перенесения снова жми p+. Код в №9.
Oliver_88 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > "+" перед координатой. Как? Срочно.



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обязательно ли устраивать тамбур шлюз перед лифтом на промежуточной площадке между цокольным и первым этажами? виталий84 Прочее. Архитектура и строительство 3 20.06.2013 10:10
Обследование храма Покрова, г. Елец, перед реставрацией Tovia Обследование зданий и сооружений 3 23.02.2011 17:06
помогите срочно пощитать теплопроводность стены Sanyok Конструкции зданий и сооружений 5 23.12.2005 11:15