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

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

Выноски

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

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

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

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

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

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

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

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

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


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

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


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

Проектировщик ВК. LISP-любитель.
 
Регистрация: 15.12.2003
Москва
Сообщений: 1,190
<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,295


Цитата:
Сообщение от 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
С.-Петербург
Сообщений: 39,844


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

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


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

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

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

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

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

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

+

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

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

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


>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
С.-Петербург
Сообщений: 39,844


> Лентяй : думаю, не буду одинок, если слезно попрошу поделиться.
> 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,190
<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,190
<phrase 1=


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

а исходники можно заиметь?
конечно, в первую очередь интересует лисп.
Apelsinov вне форума  
Закрытая тема
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Выноски

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