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

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

Выноски

Закрытая тема
Поиск в этой теме
Непрочитано 10.11.2005, 12:20 #1
Выноски
Apelsinov
 
Проектировщик ВК. LISP-любитель.
 
Москва
Регистрация: 15.12.2003
Сообщений: 1,202

Решил я написать программку для простановки выносок на трубы.
Не первая попытка.
Поискал по форумам о выносках.
Нашел лисп-произведение тов.Смирнова для этого дела. - это примерно то что у меня и получается всегда.
(кстати тов.Смирнову просьба - нельзя ли заиметь исходники?)

А именно - блок с атрибутами к которому тянется выносная линия.

Минус таких решений:
Выноска не является единым объектом.
Править ее приходится STRETCH, перенося после выносную линию.

-------------------------------------------------------

Мне очень нравятся выноски что есть в СПДС - но там недостаток в возможности дальнейшей автоматизации. т.к. весь диалог в окне, а сам объект выноски не поддается созданию средствами неСПДС.

Хотя кое что у меня с ними получилось, но коряво, очень.
--------------------------------------------------------

Так вот вопрос к обществу:
Кто и как делает выноски. Какими инструментами пользуется. Какие есть для этого программы?
(про СПДС не надо - это понятно)
Может у кого есть наработки?
Просмотров: 26595
 
Непрочитано 10.11.2005, 12:47
#2
asys

архитектор
 
Регистрация: 10.08.2005
Ростов-на-Дону
Сообщений: 5,345


Я пользуюсь выносками Андрея Балясина http://cadet.msk.ru, минус - это отрисовка выноски полилинией, и простыми примитивами. Плюс - группировка выноски и приятные настройки. Лучше всего реализованы, на мой взгляд, стандартные лидеры AutoCADа, но что отталкивает от них - при выборе линия и текст сами по себе, их бы в группу - было бы здорово
asys вне форума  
 
Автор темы   Непрочитано 10.11.2005, 14:04
#3
Apelsinov

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


Asys
полазив по сайту про выноски не нашел.
Apelsinov вне форума  
 
Автор темы   Непрочитано 10.11.2005, 16:51
#4
Apelsinov

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


опрос коллег выявил следующие используемые методы:
1. Просто линии и текст. (большинство)
2. qleader + mtext -причем mtext отдельно (как ни странно но многие)
3. Сторонние программы с функцией выносок. (не многие ими владеющие)
4. Свои или чужие программульки для отрисовки выносок (единичные случаи)

ИМХО - кошмар...
ведь эту процедуру приходится выполнять сотню раз на дню (у нас).
в основном люди выноски просто копируют и правят текст.
Apelsinov вне форума  
 
Непрочитано 10.11.2005, 16:58
#5
X-DeViL

Бизнес-шмизнес
 
Регистрация: 26.05.2004
Питер
Сообщений: 1,911


5й вариант - Обычный LEADER + mtext (именно leader)
X-DeViL вне форума  
 
Непрочитано 10.11.2005, 17:05
#6
asys

архитектор
 
Регистрация: 10.08.2005
Ростов-на-Дону
Сообщений: 5,345


Цитата:
Сообщение от X-DeViL
5й вариант - Обычный LEADER + mtext (именно leader)
И в единую группу !!!
>Apelsinov
У него там куча всяких прибомбасов, посмотри здесь http://cadet.msk.ru/prog1.shtml и здесь про выноску
http://cadet.msk.ru/prog2.shtml
asys вне форума  
 
Непрочитано 10.11.2005, 17:26
#7
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


Цитата:
Нашел лисп-произведение тов.Смирнова для этого дела. - это примерно то что у меня и получается всегда.
(кстати тов. Смирнову просьба - нельзя ли заиметь исходники?)
Поищу, давно это было... Идея то была очень простая. Блок с атрибутами (размер текста 1.0) создавался с помощью (entmod) из DXF кодов, вставлялся в соответствующем масштабе и заполнялся.

Сейчас сделал бы абсолютно по другому. Но до сих пор не сделал...

Кстати у VK, на его сайте лежал тулбарчик (естественно с лиспами) как раз по теме. Я как то даже пользовался, но немного не моя специфика. У меня в основном кабели и соответсвенно много однотипных надписей. Честно говоря копированием текста такое быстрее всего получается.
{Smirnoff} вне форума  
 
Непрочитано 10.11.2005, 17:32
#8
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431


> {Simrnoff} : А как бы сейчас делал? И, кстати, адресок сайта VK можно указать?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 10.11.2005, 17:47
#9
Apelsinov

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


Asys
посмотрел, неплохая программка.
НО:

зачем вводить 3 точки, когда надо 2, точка соединения полки и вын.линии должно расчитываться автоматом.

весь ввод через окно, это тут лишнее, лучше засунуть в окно настройки по запросу, либо дать две версии - с окном и без.

с каждой новой выноской в чертеже появляется новая группа (и даже после удаления выноски она остается) Чертеж засоряется. И кстати, а нет ли ограничения на кол-во групп в чертеже?

обозначения в нач. выноски лучше бы блоками.

давать русские имена командам - это не хорошо.

+

минусы что были для программки Смирнова.

X-DeViL
я про такой вариант потому не написал, что не нашлось среди опрошенных его использующих. Странно , правда? Вроде-бы встроенная в акад функция....
Apelsinov вне форума  
 
Непрочитано 10.11.2005, 18:01
#10
asys

архитектор
 
Регистрация: 10.08.2005
Ростов-на-Дону
Сообщений: 5,345


>Apelsinov
про программы Андрея Балясина вы абсолютно правы.
А про лидер - мне нравится.
+ -сы
настройки как у размера, там и блок в стрелке и масшаб разных частей
линия тягается за текстом
возможность вставить не только Mtext в выноску
- -сы
текст и палочка разваливаются - не единое целое
нельзя вторую палочку прицепить нормально, надо извращаться (экспрес, руками)
нет такой штуки как - обвел узел кружком, а к нему выноска, причем тянется в центр, но внутри круга ее нет.
asys вне форума  
 
Непрочитано 11.11.2005, 05:52
#11
Лентяй

Project Engineer
 
Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392


Господа, читаю я ваш обмен и тихо радуюсь - ну до чего же я умный, потому как сотворил себе программку, автоматическм отрисовывающую выноски для пучка труб по двум точкам . А вся информация о трубах - в расширенных данных примитива, так что сколько бы не выносил - не ошибешься. Текст организован как размер. посему выноска "приклеена" к тексту. Да, главное забыл! Программа различает единичные и групповые выноски, применяя соотв-но разные стили. так что, ежели кому интересно - могу поделиться.
Лентяй вне форума  
 
Непрочитано 11.11.2005, 06:17
#12
Stronger


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


Хорошая команда leader для проведения различных стрелочек. А кто знает как можно провести ортогональные стрелки. У меня постоянно они чертятся несколько под углом даже при включенном режиме ОРТО.
И потом их приходится постоянно выравнивать путем фильтра кординат и подтаскивать в нужное место.
Stronger вне форума  
 
Непрочитано 11.11.2005, 08:03
#13
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431


> Лентяй : думаю, не буду одинок, если слезно попрошу поделиться.
> Apesinov : на autocad.ru я как-то задавал вопрос об ограничениях применения групп. Вроде как явных ограничений нет, и функции там были для чистки неиспользуемых групп... Но это лирика. Наверное, может оказаться более удобным применение безымянных блоков. У Alapher'a на сайте была функция создания безымянного блока.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 11.11.2005, 08:37
#14
Лентяй

Project Engineer
 
Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392


Цитата:
kpblc: думаю, не буду одинок, если слезно попрошу поделиться.
(Покраснев)Ох, кум, умеешь ты уговорить! :wink: Держите, пользуйтесь, и не забывайте блогодарить меня. любимого, за то, что я есть.
Код:
[Выделить все]
;This program places piping callouts based on serivce-related layer name.
;
(defun pct:getxdt (obj / sz serv mat vls xtp xdt)
  (vla-GetXData obj "INFO" 'xtp 'xdv)
  (if xdv (progn 
      (setq vls (mapcar '(lambda (x) (vlax-variant-value x))
			(cdr (vlax-safearray->list xdv))));setq
      (strcat (car vls) "-" (cadr vls) "(" (caddr vls) ")"));progn
    (progn (if (null sz0) (setq sz0 "")) (if (null mat0) (setq mat0 ""))
      (initget "Yes No")
      (setq kw (getkword "\n Service by Layer [Yes/No]: ? <Yes>"))
      (if (null kw) (setq kw "Yes"))       
      (setq serv (if (= kw "Yes") (vla-get-layer obj)
		   (getstring (strcat "\nEnter pipe service for " (vla-get-layer obj) ": ")))
	    sz (getstring (strcat "\nEnter pipe size for " serv ": <" sz0 ">")))
      (if (= sz "") (setq sz sz0)) (setq sz0 sz)
      (setq mat (getstring (strcat "\nEnter pipe material for " serv ": <" mat0 ">")))
      (if (= mat "") (setq mat mat0)) (setq mat0 mat)
      (setq xtp (vlax-make-variant (vlax-safearray-fill
		     (vlax-make-safearray vlax-vbInteger '(0 . 3)) '(1001 1000 1000 1000)))
	    vls (mapcar '(lambda (x) (vlax-make-variant x vlax-vbString))
			 (list "INFO" sz serv mat))
	    xdv (vlax-safearray-fill (vlax-make-safearray vlax-vbVariant '(0 . 3)) vls));setq
      (vla-SetXData obj xtp xdv)
      (strcat sz "-" serv "(" mat ")"));progn
  );if
);defun
;
(defun pct:leader (pt1 pt2 / lpt)
  (if (< (car pt1) (car pt2)) (setq lpt (- (car pt1) (* 0.09375 sc)))
    (setq lpt (+ (car pt1) (* 0.09375 sc))));if
  (setq ld (vla-addLeader csp (vlax-make-variant
	       (vlax-safearray-fill (vlax-make-safearray vlax-vbDouble '(0 . 5))
		 (append pt1 (subst lpt (car pt2) pt2))))
	     mtxt (if eh acLineWithArrow acLineNoArrow)))
  (vla-put-ScaleFactor ld (/ 1 sc))
  (command "MOVE" (vlax-vla-object->ename mtxt) "" pt2
	   (subst (+ 0.001 (car pt2)) (car pt2) pt2))
);defun
;
(defun ofs (t1 t2)
  (if (<= t1 t2) (+ t1 (/ l 2)) (- t1 (/ l 2)))
);defun
;
(defun C:PCT (/ csp sm om ss clst cpt tpt tbp l pl cp x0 x1 y0 y1 sc ht txt mtxt a1 a2)
  (setq	adoc (vla-get-ActiveDocument (vlax-get-acad-object))
	bks (vla-get-blocks adoc)
	sm (getvar "SNAPMODE")
	om (getvar "ORTHOMODE")
	sz0 (if (null sz0) "")
	mat0 (if (null mat0) "")
	txt "");setq
  (foreach var '("ORTHOMODE" "SNAPMODE") (setvar var 0))
  (prompt "\nSelect Pipe(s) to Call Out: ")
  (ssget)
  (setq ass (vla-get-ActiveSelectionSet adoc)
  	cnt (vla-get-count ass)
	obj (vla-item ass 0)
	cpt (getpoint "\nSelect callout location: ?")
	tpt (getpoint "\nSelect Text Location: ?")
	hor (if (null (car (mapcar '(lambda (x) (setq x (if (> 1e-012 (abs x)) nil T)))
	      (vlax-curve-getFirstDeriv obj (vlax-curve-getParamAtPoint obj
		  (vlax-curve-getClosestPointTo obj cpt)))))) 0 1)
	csp (vla-ObjectIDtoObject adoc (vla-get-ownerID obj)));setq
  (if (= (vla-get-name csp) "*Paper_Space")(setq ht 0.09375)
    (progn (if (= (vla-get-ActiveSpace adoc) 0)
	(setq vp (vla-get-ActivePViewport adoc)
	      ht (/ 0.09375 (vla-get-CustomScale vp)));setq
	(progn (vlax-for vp (vla-get-paperSpace adoc)
	    (if (= (vla-get-ObjectName vp) "AcDbViewport")(progn
	      (setq cp (cdr (assoc 12 (entget (vlax-vla-object->ename vp))))
		    x0 (- (car cp) (/ (vla-get-Width vp) (vla-get-CustomScale vp) 2))
		    x1 (+ (car cp) (/ (vla-get-Width vp) (vla-get-CustomScale vp) 2))
		    y0 (- (cadr cp) (/ (vla-get-Height vp) (vla-get-CustomScale vp) 2))
		    y1 (+ (cadr cp) (/ (vla-get-Height vp) (vla-get-CustomScale vp) 2)));setq
	      (if (and (<= x0 (car cpt) x1) (<= y0 (cadr cpt) y1))
		(setq sc (vla-get-CustomScale vp)
		      ht (/ 0.09375 sc)))));if
		);vlax-for
	     (if (null ht) (setq ht (getreal "Enter text height: "))));progn
	));progn
    );if
  (cond ((= cnt 0) (alert "Nothing Selected! Please Try Again"))
	((= cnt 1)
	 (initget "Yes No")
	 (setq kw (getkword "\n Text Above Line [Yes/No]: ? <Yes>"));setq
	 (if (null kw) (setq kw "Yes"))
	 (if (= kw "Yes") (progn
	   (setq tpt (cond ((= hor 1) (subst (+ (cadr tpt) (/ ht 4)) (cadr cpt) cpt))
			   ((= hor 0) (subst (- (car tpt) (/ ht 4)) (car cpt) cpt)))
		 txt (vla-addText csp (pct:getxdt obj) (vlax-3d-point tpt) ht));setq
	   (vla-put-rotation txt (if (= 1 hor) 0 1.5708)));Yes
	   (progn (setq mtxt (vla-addMtext csp (vlax-3d-point tpt)
			       0 (pct:getxdt obj)) eh T);setq
	     (vla-put-Height mtxt ht)
	     (if (< (car cpt) (car tpt))
	       (vla-put-AttachmentPoint mtxt 4) (vla-put-AttachmentPoint mtxt 6));if
	     (pct:leader cpt tpt)));if
	);=1
	((> cnt 1)
	 (setq a1 (if (< (car cpt) (car tpt)) '(0 4.71239 3.14159) '(0 1.5708 3.14159))
	       );setq
	 (if (= hor 1) (setq a1 (nth 1 a1))
	   (setq a1 (if (<= (cadr cpt) (cadr tpt)) (nth 0 a1) (nth 2 a1))));if
	 (vlax-for ln ass	 
	   (setq sp (cond ((= (vla-get-ObjectName ln) "AcDbLine") (vlax-get ln 'StartPoint))
			  ((= (vla-get-ObjectName ln) "AcDbPolyline")
			   (vlax-curve-getPointAtParam ln (fix (vlax-curve-getParamAtPoint ln
						(vlax-curve-getClosestPointTo ln cpt))))));cond
		 sx (car sp) sy (cadr sp) tln (pct:getxdt ln);tline
		 clst (cond ((= hor 1) (cons (cons sy tln) clst))
			    ((= hor 0) (cons (cons sx tln) clst))));setq
	 );vlax-for
	 (setq clst (vl-sort clst '(lambda (e1 e2) (> (car e1) (car e2))))
	       cmax (caar clst) cmin (caar (reverse clst)))
	 (while clst (setq txt (cond ((= hor 1) (strcat txt (cdr (car clst)) "\\P"))
				     ((= hor 0) (strcat (cdr (car clst)) "\\P" txt)))
			   clst (cdr clst)));while
	 (setq txt (vl-string-right-trim "\\P" txt))
	 (setq mtxt (vla-addMtext csp (vlax-3d-point tpt) 0 txt))
	 (vla-put-Height mtxt ht)
	 (if (< (car cpt) (car tpt))
	   (progn (vla-put-AttachmentPoint mtxt 4) (setq a2 1.5708))
	   (progn (vla-put-AttachmentPoint mtxt 6) (setq a2 4.71239)));if
	 (if (vl-catch-all-error-p (vl-catch-all-apply 'vla-item (list bks "SPN011")))
	   (vla-delete (vla-insertBlock csp (vlax-3d-point cpt)
			 "C:\\IES\\Design Center\\SPN011.dwg" 1 1 1 0)));if
	 (setq pl (vla-item (vla-item bks "SPN011") 0)
	       l (+ (- cmax cmin) (/ 0.125 sc))
	       scx (/ l (- (vlax-curve-getDistAtParam pl 2) (vlax-curve-getDistAtParam pl 1))));setq
	 (setq cpt (subst (/ (+ cmax cmin) 2) (if (= hor 1) (cadr cpt) (car cpt)) cpt))
	 (vla-insertblock csp (vlax-3d-point cpt) "SPN011" scx (/ 1 sc) 1 a1)
	 (setq bpt (cond ((= hor 1) (subst (ofs (cadr cpt) (cadr tpt)) (cadr cpt) cpt))
			 ((= hor 0) (subst (ofs (car cpt) (car tpt)) (car cpt) cpt)))
	       eh nil) (pct:leader bpt tpt)
	 (vla-insertblock csp (vlax-3d-point (cdddr (vlax-get ld 'Coordinates)))
	   "SPN011" (/ (+ cnt 1) sc) (/ 1 sc) 1 a2)
	);>1
    );cond
  (setvar "SNAPMODE" sm)
  (setvar "ORTHOMODE" om)
);end
В прграмме используется прилагаемый блок SPN011, который находится в прописанной директории. Есс-но, это путь нужно переписать, а если очень захочется, вместо этого блока можно использовать другой.
[ATTACH]1131687460.dwg[/ATTACH]
Лентяй вне форума  
 
Непрочитано 11.11.2005, 09:23
#15
Stronger


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


А какое название файла должно быть и какое расширение? И какие управляющие команды?
Stronger вне форума  
 
Непрочитано 11.11.2005, 09:32
#16
ZZZ

электрик
 
Регистрация: 11.03.2005
Киев
Сообщений: 157


Я лично пользуюсь примерно как большинство стандартными qleader.
Правда я проставляю текстовые выноски - маркировка кабелей и электрооборудования.
код проги создания выноски такой:
Код:
[Выделить все]
;;;Выноска - LEADER
(defun c:note-leader  (/ pt l_pt string	temp ob_mtext ob_leader	lSystemVariable	DIMSCALE DIMLDRBLK DIMASZ DIMTXSTY DIMGAP
		       DIMATFIT	DIMTAD DIMLWD DIMLWE)
  (setvar "cmdecho" 0)
  (setq	pt   (getpoint "\nstart point")
	l_pt (list pt))
  (while (and (< (length l_pt) 5) (setq temp (getpoint "\nnext point" (last l_pt))))
    (setq l_pt (append l_pt (list temp))))
  (princ "\ninput text")
  (setq string (Dialog_note_input))
  (if (and string (/= "" string))
    (progn
      (setq string (strcat "{\\f" (getvar "FONTALT") "|b0|i0|c204|p34;" string "}"))
      (setq lSystemVariable (list "DIMSCALE" "DIMTXSTY" "DIMGAP" "DIMTAD"))
      (mapcar '(lambda (x) (set (read x) (getvar x))) lSystemVariable)
      (setvar "DIMSCALE" 1)
      (setvar "DIMTXSTY" (getvar "TEXTSTYLE"))
      (setq DIMGAP (getvar "DIMGAP"))
      (setq DIMTAD (getvar "DIMTAD"))
      (setvar "DIMGAP" (* 0.25 (getvar "TEXTSIZE")))
      (setvar "DIMTAD" 2)
      (cond
	((= (length l_pt) 2)
	 (vl-cmdf "leader" (nth 0 l_pt) (nth 1 l_pt) "A" string ""))
	((= (length l_pt) 3)
	 (vl-cmdf "leader" (nth 0 l_pt) (nth 1 l_pt) (nth 2 l_pt) "A" string ""))
	((= (length l_pt) 4)
	 (vl-cmdf "leader" (nth 0 l_pt) (nth 1 l_pt) (nth 2 l_pt) (nth 3 l_pt) "A" string ""))
	((= (length l_pt) 5)
	 (vl-cmdf "leader" (nth 0 l_pt) (nth 1 l_pt) (nth 2 l_pt) (nth 3 l_pt) (nth 4 l_pt) "A" string ""))
	)
      (setvar "DIMGAP" DIMGAP)
      (setvar "DIMTAD" DIMTAD)
      (setq ob_mtext (entlast))
      (setq ob_leader (z-ent-dxf-code-data 330 ob_mtext))
      (setq vla-mtext (vlax-ename->vla-object ob_mtext))
      (setq vla-leader (vlax-ename->vla-object ob_leader))
      
      (if (vlax-property-available-p vla-leader "StileName")
	(vlax-put-property vla-leader "StileName" "Standard"))
      
      (if (vlax-property-available-p vla-leader "DimensionLineWeight")
	(vlax-put-property vla-leader "DimensionLineWeight" 13))
      
      (if (vlax-property-available-p vla-leader "ScaleFactor")
	(vlax-put-property vla-leader "ScaleFactor" 1))
      
      (if (vlax-property-available-p vla-leader "ArrowheadSize")
	(vlax-put-property vla-leader "ArrowheadSize" (* 0.6 (getvar "TEXTSIZE"))))
      
      (if (vlax-property-available-p vla-leader "TextGap")
	(vlax-put-property
	  vla-leader
	  "TextGap"
	  (* (- 1 (* 2 (atoi (z-list-item "tg_frame" ZVNOTE)))) (* 0.25 (getvar "TEXTSIZE")))))
      (if (vlax-property-available-p vla-leader "Type")
	(vlax-put-property vla-leader "Type" (* 2 (atoi (z-list-item "tg_arrowheads" ZVNOTE)))))
      (if (vlax-property-available-p vla-leader "ArrowheadType")
	(vlax-put-property vla-leader "ArrowheadType" (* 5 (atoi (z-list-item "tg_arrowheads" ZVNOTE)))))
;;;      (vlax-dump-object vla-leader)
;;;       (vlax-dump-object vla-mtext)
      (if (vlax-property-available-p vla-mtext "BackgroundFill")
	(vlax-put-property vla-mtext "BackgroundFill" (atoi (z-list-item "tg_background" ZVNOTE))))
      (if (assoc 63 (entget ob_mtext))
	(z-ent-mod 63  256 ob_mtext))
      (if (vlax-property-available-p vla-mtext "Height")
	(vlax-put-property vla-mtext "Height" (getvar "TEXTSIZE")))
      (vlax-release-object vla-mtext)
      (vlax-release-object vla-leader)
      (vl-cmdf "_.draworder" (ssadd ob_leader) "" "F")
      (note_even-leader ob_mtext ob_leader (getvar "TEXTSIZE"))
      (mapcar '(lambda (x) (setvar x (eval (read x)))) lSystemVariable)
      )
    )
  (setvar "cmdecho" 1)
  (princ)
  )
Код старый (надо немного переделать) но рабочий. Там не хватает много функций но сам принцип создания можно понять.
Отрисовка выносок это одна своя функция и редактирование выноски это другая моя функция, по мимо этого выноску можно редактировать стандартными средствами акада.
[ATTACH]1131690772.JPG[/ATTACH]
__________________
Когда под рукой нет ничего кроме молотка - всё вокруг кажется гвоздями...
Выбор правильного инструмента - залог успеха в любом деле.
ZZZ вне форума  
 
Автор темы   Непрочитано 11.11.2005, 10:50
#17
Apelsinov

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


Лентяй
Попытался запустить это дело. Ничего у меня не получилось.
Я глупый - буду разбираться в коде.

приложенный файл переименовал в SPN011.DWG и заменил путь в коде.
Программа задает кучу всяких вопросов на ненашем языке а после рисует mtext по их результатам и порой тихо завершается, порой ругается ненашими же словами. Я в печали.
Поясни, что она должна делать-то, может чего не хватает?
Может расширенных данных?

Опиши что она должна делать-то, может тогда пойму?

И еще интересно по поводу расширенных данных - как и для чего Ты их используешь, насколько это удобно?

ZZZ
Судя по моим наблюдениям, большинство-то как раз leader не используют. Но это не важно.

В чужой программе разобраться не так-то просто, особенно если она не работает за отсутствием некоторых функций.
Если не затруднит, размести недостающие функции, их на самом деле на первый взгляд тут не так уж и много.
Apelsinov вне форума  
 
Непрочитано 11.11.2005, 11:58
#18
Лентяй

Project Engineer
 
Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392


Apelsinov
Цитата:
Программа задает кучу всяких вопросов на ненашем языке
Интерактивный режим называется.
Цитата:
а после рисует mtext по их результатам и порой тихо завершается, порой ругается ненашими же словами.
Есс-но - по результатам. Программа - она же дура и делает только то, что велено.
Цитата:
Опиши что она должна делать-то, может тогда пойму?
Вот это уже - вопрос по сути, коя же состоит:
1. Предполагается. что в многоситстемном (вода, пар, спирт, бензин, канализация) чертеже каждой ситеме назначен свой слой. Обозначение трубопровода строится как диаметр-система(материал).
2. Информация о трубопроводе записывается в расширенные данные примитива, потому, когда копируется примитив, вместе с ним копируются и данные.
3. Если отрезок не имеет присвоенных расщиренных данных, то программа запрашивает их как инфу о трубопроводе и записывает ее в расширенные данные отрезка.
4. Если отрезок, которому уже присвоены расширенный данные, превращается в полилинию, к которой присоединяются другие отрезки, то эти данные переходят на всю полилинию, т.е. она вся несет информацию о трубпроводе. Поэтому текст в выносках получается одни и тот же.
5. В прграмму встроен определитель масштаба. В случае работы в пространстве модели, программа проверяет, попадает ли выноска с текстом в существующий видовой экран, и если да, то соотв. образом масштабирует текст и выноску так, тобы текст был при печати 3/32" (2,5 мм), и выноска смотрелась красиво. При работе в пространстве листа масштаб равен 1.
Цитата:
И еще интересно по поводу расширенных данных - как и для чего Ты их используешь, насколько это удобно?
Вообще-то на "Ты" с прописной буквы принято обращаться к только Богу, так что я польщен . А так - объяснение см. выше. Была идея автоматизировать построение общих данных по трубопроводам и облегчить редактирование текста выносок, если меняется инфо о системе.
Лентяй вне форума  
 
Непрочитано 11.11.2005, 12:34
#19
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


Цитата:
Сообщение от kpblc
И, кстати, адресок сайта VK можно указать?
Ага, в профиле его нету. Хотя, сайтом это назвать весьма сложно, так, страничка, которая к тому же и не обновляется http://vkle.bazarov.net/prog.htm То о чем разговор - в самом верху.

> {Smirnoff} Что касается однотипных надписей... Можно стандартные надписи прописать прям в кнопочный макрос. Другое дело что пользоваться не очень удобно - надо каждый раз в кнопку тыкать.

PS: сорри за опоздание, редко заглядываю на форум.
vk вне форума  
 
Автор темы   Непрочитано 11.11.2005, 18:11
#20
Apelsinov

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


vk
Посмотрел программки. Впечатляет. Из увиденного это лучшее, пока.

а исходники можно заиметь?
конечно, в первую очередь интересует лисп.
Apelsinov вне форума  
 
Непрочитано 11.11.2005, 18:52
#21
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


Цитата:
Сообщение от Apelsinov
а исходники можно заиметь?
конечно, в первую очередь интересует лисп.
Свыше тысячи строк кода, местами кривовато (в том числе и алгоритм), так что когда последний раз делал изменения, уже сам с трудом понимал что написал когда то Ну, если еще не пропало желание разобраться, могу выложить :wink:
vk вне форума  
 
Непрочитано 11.11.2005, 22:00
#22
ZZZ

электрик
 
Регистрация: 11.03.2005
Киев
Сообщений: 157


Apelsinov
Я привел код програмы как пример и принцип использования стандартных функций акада. Моя прога (приведенная выше)настраивает вид стандартных выносок под мои потребности. Сама соль заключается в том что тебе нужно, наврядли моя прога (в полном объёме) тебе пригодится, всётаки специфика есть во всём. В принципе даже под стандартный лидер можно сделать любую свою оболочку (настройки и даже некоторые вычесления), при этом не придумавать свой объект или групировки и т.д.
__________________
Когда под рукой нет ничего кроме молотка - всё вокруг кажется гвоздями...
Выбор правильного инструмента - залог успеха в любом деле.
ZZZ вне форума  
 
Непрочитано 12.11.2005, 00:11
#23
Tech


 
Регистрация: 18.10.2004
Odessa
Сообщений: 226
<phrase 1=


Может и не совсем по теме, есть интересная примочка "POS", Вл. Колосова (http://dwg.ru/dwl/74), для простановки позиций в виде блока с возможностью редактирования без использования редактора блоков.
__________________
Труд создал человека, а человек - трудности ...
Tech вне форума  
 
Автор темы   Непрочитано 14.11.2005, 15:17
#24
Apelsinov

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


vk
Нет, желание не исчезло.
Писать, конечно, буду свое. Вариант leader+block понравился больше всего. Автоматизация самих значений выносок по типу как у Лентяя (хотя использование расширенных данных как-то настораживает, потому как не видно их невооруженным глазом, нужны инструменты для задания и чтения...не знаю...но попробую).
Часть кода уже есть, просто не хочется изобретать велосипедов.
Пришлете - буду благодарен.
Apelsinov вне форума  
 
Непрочитано 14.11.2005, 22:48
#25
Никита В.

CAD Operator
 
Регистрация: 01.11.2005
Samara-Gorodok
Сообщений: 389


Посмотрел я на вас уманов - впечатляет!
У меня все проще... СПДС мне не понравился по обьективным причинам, поетому я решил создат универсальную выноску в виде динамического блока!!! :twisted:
Приложенный файлик все иллюстрирует!!!
Сразу предупреждаю я его еще эдитить буду...
Выноска разрабатывалась применительно к строительству...
Кроме самой выноски там много чего еще интересного :evil:
[ATTACH]1131997708.dwg[/ATTACH]
Никита В. вне форума  
 
Непрочитано 15.11.2005, 08:10
#26
Лентяй

Project Engineer
 
Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392


Цитата:
Apelsinov: Автоматизация самих значений выносок по типу как у Лентяя (хотя использование расширенных данных как-то настораживает, потому как не видно их невооруженным глазом, нужны инструменты для задания и чтения...не знаю...но попробую).
Гы-ы-ы, я всегда знал, что этим кончится! Потому и наваял другую прогу, чтобы изменять расширенные данные примитивов в соотвествии с измененным текстом выноски и, соот-но, наоборот. Держите, уж, ибо аз есмь добр днесь.
Код:
[Выделить все]
(defun getxdt (obj / vls xdt)
  (vla-GetXData obj "INFO" 'xtp 'xdv)
  (setq vls (mapcar '(lambda (x) (vlax-variant-value x))
		    (cdr (vlax-safearray->list xdv))));setq
  (strcat (car vls) "-" (cadr vls) "(" (caddr vls) ")")
);defun
;
(defun txt-updt (txt0 / tpt ht atp mtxt)
  (setq tpt (vla-get-InsertionPoint txt0)
	ht (vla-get-Height txt0)
	atp (vla-get-AttachmentPoint txt0)
	csp (vlax-invoke adoc "ObjectIDtoObject" (vla-get-OwnerID txt0)))
  (vla-delete txt0) (vlax-release-object txt0)
  (while clst (setq tx (strcat tx (cdr (car clst)) "\\P")
		    clst (cdr clst)));while
  (setq mtxt (vla-addMtext csp tpt 0 (vl-string-right-trim "\\P" tx)))
  (vla-put-Height mtxt ht) (vla-put-AttachmentPoint mtxt atp)
);end
;
(defun xdt-updt (txt / cz serv mat obj vls xtp xdv tbrp)
  (while clst 
    (setq obj (vlax-invoke adoc "ObjectIDtoObject" (cdar clst)))
    (vla-GetXData obj "INFO" 'xtp 'xdv)
    (setq tln (vl-string-right-trim ")"	(substr txt 1 (vl-string-search "\\" txt)))
	  sz (substr tln 1 (vl-string-search "-" tln))
	  serv (vl-string-left-trim (strcat sz "-") (substr tln 1 (vl-string-search "(" tln)))
	  mat (vl-string-left-trim (strcat sz "-" serv "(") tln)
	  vls (mapcar '(lambda (x) (vlax-make-variant x vlax-vbString))
		      (list "INFO" sz serv mat))
	  xdv (vlax-safearray-fill (vlax-make-safearray vlax-vbVariant '(0 . 3)) vls));setq
    (vla-SetXData obj xtp xdv)
    (setq tbrp (vl-string-search "\\" txt))
    (setq txt (if tbrp (substr txt (+ 3 tbrp)))
	  clst (cdr clst));setq
  );while
);defun
;
(defun C:COTUPD ( / br ass tx txt hor kw sp sx sy id tln clst)
  (setq	adoc (vla-get-ActiveDocument (vlax-get-acad-object))
	sm (getvar "SNAPMODE") om (getvar "ORTHOMODE")
	tx "");setq
  (prompt "\n Select Callout Bracket: ")
  (if (null FASTSEL) (load "FASTSEL")) (fastsel)
  (setq ass (vla-get-ActiveSelectionSet adoc)
	br (vla-item ass 0)
	hor (if (vl-member-if '(lambda (x) (= (vla-get-rotation br) x)) '(0 pi)) 0 1));setq
  (setq	txt0 (vlax-ename->vla-object (car (entsel "\n Select Callout: ")))
	txt (vla-get-TextString txt0));setq
  (initget "Data Text")
  (setq kw (getkword "\n Update [Data/Text]: ? <Data>"))
  (if (null kw) (setq kw "Data"))
  (vlax-for ln ass
    (if (or (= (vla-get-ObjectName ln) "AcDbLine")
	    (= (vla-get-ObjectName ln) "AcDbPolyline"))
      (progn (setq xp (vlax-invoke br "IntersectWith" ln acExtendNone)
		   sx (car xp) sy (cadr xp))
	(mapcar '(lambda (x y) (if (= kw x)
		 (setq id (vla-get-ObjectID ln)
		       clst (cond ((= hor 1) (cons (cons sy y) clst))
				  ((= hor 0) (cons (cons sx y) clst))))));lambda
	    '("Data" "Text") (list id (getxdt ln)));mapcar
  )));vlax-for
  (setq clst (vl-sort clst '(lambda (e1 e2) (< (car e1) (car e2)))))
  (if (= kw "Data") (xdt-updt txt) (txt-updt txt0))
);end
Хочу сразу предупредить, что отладкой я особо не утруждался, потому ежели вы найдете какие-нить глюки-бяки, то не откажите известить, устранения таковых ради для.
Лентяй вне форума  
 
Непрочитано 19.04.2006, 12:46
#27
kabzzz


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


Закинул предыдущий код в файл getxdt.lsp, перед всеми defun поставил c:, сделал кнопку где написал ^C^C^P(if (not C:getxdt) (load "getxdt")) getxdt

Выбираю примитив (отрезок) давлю кнопку, в командной строке пишется GETXDT ; error: too few arguments.

И вобще, что есть расширенные свойства и как их редактировать?
kabzzz вне форума  
 
Непрочитано 19.04.2006, 12:50
#28
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431


Цитата:
Сообщение от kabzzz
Закинул код в файл getxdt.lsp, перед всеми вуагт поставил c:, сделал кнопку где написал ^C^C^P(if (not C:getxdt) (load "getxdt")) getxdt

Выбираю примитив (отрезок) давлю кнопку, в командной строке пишется GETXDT ; error: too few arguments.

И вобще, что есть расширенные свойства и как их редактировать?
В зачем ставить c: перед defun или вообще менять код? Он и так должен работать.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 19.04.2006, 12:59
#29
kabzzz


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


просто я не знаю как активировать лисп если не стоит c:
Если можно, поделитесь, что в кнопку писать?
kabzzz вне форума  
 
Непрочитано 19.04.2006, 13:04
#30
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431


^C^C^P(if (not (c:COTUPD)) (load "getxdt.lsp"));cotupd;
ЯТД, так.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 19.04.2006, 16:14 Re: Выноски
#31
getr

Конструктор
 
Регистрация: 06.04.2005
Из тех ворот-откуда весь народ.
Сообщений: 361
<phrase 1=


Так вот вопрос к обществу:
Кто и как делает выноски. Какими инструментами пользуется. Какие есть для этого программы?
(про СПДС не надо - это понятно)
Может у кого есть наработки?
Я пользуюсь прогой Александра Косенко (на основе Г.Поспелова).
Хотя там есть следующие глюки:
1-при выборе флага S=...* и в выпадающем списке "Ничего" отрисовки
выноски не происходит;
2-при выборе флага "Введите текст" и также "Ничего" происходит отрисовка выноски S=3*.
А так на мой взгляд просто и удобно.
Вот этот лисп:
***********************************************************************
; stroka.lsp v.1.3 *
; & stroka.dcl *
; Copyright by Sash (Александр Косенко) *
; Для AutoCAD r.15 *
; 03 ноября 2002 г *
; E-Mail: kosap@yanex.ru *
;***********************************************************************
; На базе программы stroka.lsp
; Модифицировано:
1. шрифт 7 по умолчанию.
; 2. Убрал из s=4мм* слово мм, вроде как не по ЕСКД.
; 3. По умолчанию выберается первый вариант.
; 4. Введены значения по умолчанию - с ними удобнее.
; 5. Пофиксил глюк связанный с простановкой стрелки после ее снятия -
; снимайте теперь на здоровье хоть 2 раза - хоть 20 :)
; 6. Добавил выбор шрифта из раскрывающегося списка - никаких левых шрифтов.
; Либо редактируйте список shrift, а лучше используйте шрифт gosta_w.shx.
; Дорос до v1.1.
; 7. Заметил баг при задании координаты напрвления совпадающей со второй точкой.
; не обрабатывается данное исключение. Взял и исправил.
; 8. v1.2. Избавился от указания направления. Позиции проставляются на слое
; Dim его вы можете заменить на любой используемый вами для этих целей
; 9. Работают привязки, причем корректно.
;10. Добавил возможность выбора начала выноски. v.1.3.
;
;***********************************************************************
; stroka.lsp *
; & stroka.dcl *
; Copyright by PG (Genchik Pospelov) *
; Для AutoCAD r.14-15 *
; 17.июня 1999 г *
; E-Mail: gepos@mail.ru *
;***********************************************************************

;;;-------------> HELP <------------------------------------------------
(defun ab_prog (ab_progr /)

(if (not (new_dialog "ab_text" DCL_ID)) (exit))
(start_list "ab_progr")
(mapcar 'add_list ab_progr)
(end_list)

(action_tile "accept" "(done_dialog)")
(start_dialog)
)

;;;-------------> WORKING FUNCTION <------------------------------------
(defun w_str ( n stxt sz_t / a_txt p_txt pt1 pt2 pt3 sze)

(cond ((or (= n 1) (= n 2)) (setq a_txt stxt))
((or (= n 3) (= n 4)) (setq a_txt (strcat "S=" stxt "*")))
)
(print n)
(setq pt1 (getpoint "\n Начальная точка ")
pt2 (getpoint pt1 "\n Вторая точка ")
;;; pt3 (getpoint pt2 "\n Направление ")
sze (*(strlen a_txt) sz_t 0.7)
)
(if (= strelka 0) (command "_.DONUT" 0 1 pt1 ""))
(if (>= (car pt2)(car pt1))
(setq pt3 (list (+(car pt2) sze 2.0)(cadr pt2))
p_txt(list (+(car pt2) 1.8)(+(cadr pt2) 1.5))
)
)
(if (< (car pt3)(car pt2))
(setq pt3 (list (-(car pt2) sze 2.0)(cadr pt2))
p_txt(list (+(car pt3) 1.8)(+(cadr pt2) 1.0))
)
)
(if (or(= n 1)(= n 3)) (COMMAND "_.PLINE" pt1 pt2 pt3 (command))
)
(if (or(= n 2)(= n 4)) (progn
(setq sze (polar pt1 (angle pt1 pt2) 3.0))
(COMMAND "_.PLINE" pt1 "w" 0.0 1.5 sze "w" 0.0 0.0 pt2 pt3 (command))
)
)
(COMMAND "_.TEXT" p_txt sz_t 0 a_txt)
)
;;;-------------> MAIN FUNCTION <---------------------------------------
(defun c:stroka2(/ $valueы s1txt s2txt
a_sel sz_txt help_pr
info_pr old_snap strelka
shrift )

(setq old_snap (getvar "osmode")
clar (getvar "CLAYER")
oscor (getvar "OSNAPCOORD")
SshNeedLay "Надписи" ; Вместо "Надписи" введите нужный Вам слой
)

(if(null(tblsearch "LAYER" SshNeedLay))(command"_LAYER" "_N" SshNeedLay "c" "Red" SshNeedLay "LW" "0.25" SshNeedLay ""))

(setvar "osmode" 0)

(setvar "cmdecho" 0)
(setvar "CLAYER" SshNeedLay)
(setvar "OSNAPCOORD" 1)

(setq help_pr (list
" - Программа построения линии выноски - " " "
" Ремейк программы Геннадия Е. Поспелова stroka" " "
" Введите текст в нужную графу,"
" выберете требуемую высоту шрифта и "
" начало выноски. " " "
)
info_pr (list
" - Программа построения линии выноски - "
" Ремейк программы Геннадия Е. Поспелова stroka"
" "
" Программа предназначена для свободного распространения "
" в конструкторской и технологической среде. "
" Авторы снимают с себя ответственность за использование "
" программы. " " "
" Автор - конструктор СКБ \"Автоагрегат\" Косенко Александр "
" 03 ноября 2002г."
" Copyright © \"Sash Ltd\" "
" mailto:kosap@rambler.ru "
)
)

;; open window functions
(setq DCL_ID (load_dialog "stroka.dcl"))
(if (not (new_dialog "stxt" dcl_id)) (exit))
;; Set up some defaults.
(setq s1txt "1"
s2txt "3"
strelka "0"
sz_txt (rtos 7 2 2)
a_sel 1
shrift '("7" "1.8" "2.5" "3.5" "5" "10" "14" "20" "28" "40")
nachalo '("Точку" "Стрелку" "Ничего" "")
)
(set_tile "s1txt" s1txt)
(set_tile "s2txt" s2txt)
(set_tile "sz_txt" sz_txt)
(set_tile "on_s1txt" "1")
(set_tile "on_s2txt" "0")

(start_list "szpop_txt")
(mapcar 'add_list shrift)
(end_list)

(mode_tile "s1txt" 2)
(mode_tile "s2txt" 1)
(start_list "strelka")
(mapcar 'add_list nachalo)
(end_list)


(action_tile "s1txt" "(setq s1txt $value)")
(action_tile "s2txt" "(setq s2txt $value)")
(action_tile "szpop_txt" "(setq sz_txt (nth (atoi $value) shrift))")
(action_tile "strelka" "(setq strelka (nth (atoi $value) nachalo))")


(action_tile "on_s1txt"
"(progn (mode_tile \"s1txt\" 0)(mode_tile \"s1txt\" 2)
(mode_tile \"s2txt\" 1)(setq a_sel 1))")
(action_tile "on_s2txt"
"(progn (mode_tile \"s2txt\" 0)(mode_tile \"s2txt\" 2)
(mode_tile \"s1txt\" 1)(setq a_sel 3))")

(action_tile "accept" "(done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
(action_tile "help" "(ab_prog help_pr)")
(action_tile "info" "(ab_prog info_pr)")
(setq what_next (start_dialog)
sz_txt (atof sz_txt)
)
(cond ((= strelka "0") (setq strelka 0))
((= strelka "Стрелку") (setq strelka 1))
((= strelka "Ничего") (setq strelka 2))
((= strelka "") (setq strelka 2))
) ;;;;end cond

(setq a_sel (+ a_sel strelka)
)

; При правильном вводе и нажатии кнопки "Ok" - вызов функции
(if (= 1 what_next)
(cond ((<= a_sel 2)(w_str a_sel s1txt sz_txt ))
((> a_sel 2) (w_str a_sel s2txt sz_txt ))
)
)
(unload_dialog dcl_id) ;; unload


(setvar "cmdecho" 1) ;; end-return operation
(setvar "osmode" old_snap)
(setvar "CLAYER" clar)
(setvar "OSNAPCOORD" oscor)


(princ)
)
;;;---------> THE END <------------------------------------------[/color][/size=2]
А вот файл stroka.dcl:

[size=2][color=blue]//--------------------------------------------------------------
//--------------------------------------------------------------
stxt : dialog {
label = "Строка текста";
: row {
: column {
: radio_button {
label = "Введите текст: ";
fixed_width=true;
key = "on_s1txt";
}
: radio_button {
label ="S= ... *";
fixed_width=true;
key = "on_s2txt";
}
}
: column {
: edit_box {
key = "s1txt";
fixed_width=true;
edit_width = 20;
}
: edit_box {
key = "s2txt";
fixed_width=true;
edit_width = 4;
}
}
}
spacer_1;
: popup_list {
label = "Высота текста: ";
key = "szpop_txt";
list="";
edit_width = 5;
fixed_width=true;
}
// : edit_box {
// label = "Высота текста: ";
// mnemonic = "В";
// key = "sz_txt";
// fixed_width=true;
// edit_width = 20;
// }

spacer_1;
// : toggle {
// label = "Стрелка в начале";
// key = "strelka";
// }
: popup_list {
label = "Рисовать в начале: ";
key = "strelka";
}


ok_cancel_help_info;
}
//***************************************************************
//------------------------------------------------------------------------
ab_text : dialog {
label = "О программе";
: list_box {
key = "ab_progr";
height = true;//16;
width = 58;
}
ok_only;
}

//-----------> THE END <--------------------------------------------------
Если кто-то доработает прогу,-буду очень рад,а то писал Косенко а ответа не дождался.
__________________
"Мнение не бывает ни истинным, ни ложным, а лишь полезным в жизни или бесполезным. ",- Ауробиндо
И не надо делать удивленных движений руками.

Последний раз редактировалось getr, 08.02.2008 в 15:41.
getr вне форума  
 
Автор темы   Непрочитано 18.07.2006, 10:05
#32
Apelsinov

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


забыл я про эту тему...а зря, программку то я написал, и активно ею пользуюсь, да и не только я.

воть:
Код:
[Выделить все]
(apel-com '(APEL-DRAW-LEADER_2STR_IN
	    (list "Ст."	"%%c" "i=0.0" "К1" "К2"	"K3" "К4" "Пр."	"ВР-"
	     "Опуск")
	   )
)
__________________
apel.fas
Apelsinov вне форума  
 
Непрочитано 21.07.2006, 15:23
#33
getr

Конструктор
 
Регистрация: 06.04.2005
Из тех ворот-откуда весь народ.
Сообщений: 361
<phrase 1=


-->Apelsinov
А как запустить Вашу программу?
__________________
"Мнение не бывает ни истинным, ни ложным, а лишь полезным в жизни или бесполезным. ",- Ауробиндо
И не надо делать удивленных движений руками.
getr вне форума  
 
Автор темы   Непрочитано 21.07.2006, 16:06
#34
Apelsinov

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


Цитата:
Сообщение от getr
-->Apelsinov
А как запустить Вашу программу?
Очень просто:
1. Выкачиваете файл по указанному адресу (в моей форумной подписи) http://autolisp.ru/dwlsp/16 с пользовательскими функциями.

2. Загружаете его в акад: _.appload или лисповое (load "имя файла")

3. Запускаете приведенную функцию.
Запустить ее можно, поместив это выражение на кнопку или toolpalettes (последнее - самое удобное, по-моему). Можно завернуть его в собственную функцию для появления соотв. команды в акаде, например так:
Код:
[Выделить все]
(defun c:test ()
  [поместить тут указанное  выражение]
)
Загрузка вышеприведенного выражения приведет к появлению в акаде команды test.
__________________
apel.fas
Apelsinov вне форума  
 
Непрочитано 21.07.2006, 20:27
#35
pyatifan


 
Регистрация: 29.10.2005
Нижегородская обл.
Сообщений: 219
<phrase 1=


Для меня вопрос решён:
KitoxToolset (лежит в Download) без рекламы, из опыта
pyatifan вне форума  
 
Непрочитано 21.07.2006, 23:13
#36
Aragorn

Продажа навыков и умений
 
Регистрация: 20.11.2004
Сибирь
Сообщений: 2,501


Тем не менее, пока лучше выносок, чем в СПДСе не нашел
Aragorn вне форума  
 
Непрочитано 24.07.2006, 06:45
#37
Natashechka

Специалист САПР
 
Регистрация: 09.12.2005
Сообщений: 95
<phrase 1=


такой вопрос, я скачала cd-setup.rar, успешно извлекла файлы, делаю все по инструкции, загружаю Cd-setup.vlx мне пишет успешно загружено, я нажимаю закрыть и в командной строке написано "приложений "кадет" не найдено", далее выгружаю autocad и заново загружаю, далее никаких менюшек дополнительных не появилось, а как работать то?
__________________
С уважением Наталья
Natashechka вне форума  
 
Непрочитано 05.02.2008, 21:55
#38
AIF


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


Привет!
Пользуюсь командой рст, но почему то выноски не появлются, подскажите пож-та чего делать
AIF вне форума  
 
Непрочитано 06.02.2008, 09:09
#39
Bull

Конструктор по сути (машиностроитель)
 
Регистрация: 10.10.2005
Набережные Челны (это где КамАЗ)
Сообщений: 11,391


что за команда-то? Какой КАД? (rus|eng)
__________________
Век живи, век учись - ...
Bull вне форума  
 
Непрочитано 06.02.2008, 09:49
#40
AIF


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


Акад 2006, 2008. Имена слоев проставляются, выноски - нет. и хорошо бы чтобы программа запрашивала масштабный коэффициент.
AIF вне форума  
 
Непрочитано 06.02.2008, 09:51
#41
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431


Откуда такую команду взял, AIF? В обычном AutoCAD'e я такой не припоминаю...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 06.02.2008, 10:20
#42
Bull

Конструктор по сути (машиностроитель)
 
Регистрация: 10.10.2005
Набережные Челны (это где КамАЗ)
Сообщений: 11,391


Если ты всё же про быструю выноску (а не непонятный "рст" какой-то), то перед указанием точки выноски надо опцию "параметры" и после этого enter, потом в появившемся окне выбрать "текст на полочке". А масштаб только потом можно изменить через свойства
__________________
Век живи, век учись - ...
Bull вне форума  
 
Непрочитано 06.02.2008, 20:42
#43
AIF


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


Конечно такой команды в акаде нет, ранее была опубликована, 11.11.2005, 10:37
Насколько я понял, написал ее Лентяй
AIF вне форума  
 
Непрочитано 06.02.2008, 20:43
#44
AIF


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


#16
AIF вне форума  
 
Непрочитано 07.02.2008, 09:30
#45
Bull

Конструктор по сути (машиностроитель)
 
Регистрация: 10.10.2005
Набережные Челны (это где КамАЗ)
Сообщений: 11,391


в личку-то ему написал?
__________________
Век живи, век учись - ...
Bull вне форума  
 
Непрочитано 07.02.2008, 17:47
#46
AIF


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


да, написал. Может у кого есть еще наработки по выноскам???
AIF вне форума  
 
Непрочитано 07.02.2008, 18:24
#47
VVA

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


А что ты хочешь увидеть у выносок?
Вот пример 1 VVA #14
Вот пример 2 VVA #6
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 08.02.2008, 15:16
#48
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


А всетаки в PS (в проджект студио) выноски по лучше чем в СПДС будут, но за не использованием первого приходиться довольствоваться вторым
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 07.08.2008, 01:54
#49
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Подскажите пожалуйста, можно ли сделать выноску такую, как во вложении, только чтобы текст выноски был в несколько строк, а полка была под первой строкой. И еще, что немаловажно, чтобы полка изменяла размер соответственно тексту и при переносе текста шла за ним, но при этом указатель выноски (тот, где стрелка бывает, но я ее убрал) оставался на месте, как это всегда и бывает (по крайней мере в 2008-м КАДе). Мультивыноска при переносе сдвигается вся вместе с указателем, что крайне нежелательно. В моем примере, если перетащить мтекст, который над полкой, полка шустро устремиться за ним, а указатель остается на месте
Вложения
Тип файла: dwg
DWG 2007
Чертеж1.dwg (60.3 Кб, 2067 просмотров)

Последний раз редактировалось skkkk, 07.08.2008 в 02:26.
skkkk вне форума  
 
Непрочитано 18.01.2014, 23:55
#50
Анна Грин


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


Здравствуйте! Подскажите, пожалуйста, как отрегулировать размер выносных линий в автокад ?
Анна Грин вне форума  
 
Непрочитано 19.01.2014, 14:12
#51
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Анна Грин, слишком размытый вопрос. Выносных линий чего? Размеров? Что значит отрегулировать? Поясните подробнее. И желательно чертеж приложить с изображением "как есть" и "как надо".
Как добавить вложение в сообщение
skkkk вне форума  
 
Непрочитано 19.01.2014, 20:21
#52
Bull

Конструктор по сути (машиностроитель)
 
Регистрация: 10.10.2005
Набережные Челны (это где КамАЗ)
Сообщений: 11,391


Через панель свойств посмотрите (там много чего можно "отрегулировать"). А также через стиль (того, что Вы имели ввиду - размера/быстрой выноски/мультивыноски/......) А так, да, непонятный вопрос.
__________________
Век живи, век учись - ...
Bull вне форума  
Закрытая тема
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Выноски

Опции темы Поиск в этой теме
Поиск в этой теме:

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