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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Лисп для проставления размера длины дуги

Лисп для проставления размера длины дуги

Ответ
Поиск в этой теме
Непрочитано 25.06.2004, 14:51 #1
Лисп для проставления размера длины дуги
AVF
 
Регистрация: 25.06.2004
Сообщений: 3

Существует ли какой-нибудь лисп для проставления размера дуги?
А то ставить угловой размер, затем исправлять текст, я уже замучился :?
Просмотров: 6227
 
Непрочитано 25.06.2004, 16:12
#2
Torino


 
Регистрация: 21.08.2003
Штаб
Сообщений: 943
<phrase 1=


Размер дуги = длина дуги?
Если есть SPDS Graphics, то можно так:
СПДС -> Размеры -> Дуговой размер
Torino вне форума  
 
Непрочитано 25.06.2004, 20:23
#3
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,835
<phrase 1=


Тема стара как Автокад!
Поиском - одно из решений
http://www.autocad.ru/cgi-bin/f1/board.cgi?t=5540Bw
У Эдуарда для Лиспа
Только для Авт(рус) в (Command "_dimangular" a
у опции надо _ "_t"
Alan вне форума  
 
Непрочитано 26.06.2004, 03:55
#4
Startrek

AutoCAD/AutoLISP
 
Регистрация: 27.08.2003
Seattle/USA
Сообщений: 1,133


Писал для "дикого запада", может и в метрической системе сработает...

(defun c:dimarc (/ cm arcel obj num lu txt)
(setq cm (getvar "cmdecho"))
(setvar"cmdecho" 0)
(setq arcel (entsel "\nSelect an Arc: "))
(while
(if
(/= (cdr(assoc 0 (entget(car arcel)))) "ARC")
(progn
(prompt "\nSelected Object is not an ARC")
(setq arcel (entsel "\nSelect Arc: "))
)
)
)
(setq obj (vlax-ename->vla-object (car arcel)))
(setq num (vla-get-ArcLength obj))
(setq lu (getvar "lunits"))
(cond
((= lu 1)(setq txt (rtos num 1)))
((= lu 2)(setq txt (rtos num 2)))
((= lu 3)(setq txt (rtos num 3)))
((= lu 4)(setq txt (rtos num 4)))
((= lu 5)(setq txt (rtos num 5)))
)
(command "dimangular" arcel "t" txt pause)
(setvar "cmdecho" cm)
(princ)
)
Startrek вне форума  
 
Непрочитано 26.06.2004, 03:58
#5
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Что-бы процес был понятен читай здесь: http://www.cad.dp.ua/stats/content.p...nt=diesel.html
А окончательный ответ найдешь в AutoCAD.ru, а может и здесь используя поиск.
Vova вне форума  
 
Непрочитано 28.06.2004, 08:49
#6
виталич

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


В MechaniCS 2.0 (халявная версия) от CSoft есть такая кнопка, только она проставляет размеры ДУГ или кусков окружностей, но не дуговых сегментов ПОЛИЛИНИЙ.
виталич вне форума  
 
Автор темы   Непрочитано 28.06.2004, 10:11
#7
AVF


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


Спасибо!
Теперь стало легче
AVF вне форума  
 
Непрочитано 20.10.2004, 01:00 Размер дуги
#8
Ден


 
Сообщений: n/a


Можно попробовать такую макрокоманду

^C^C_Lengthen;\;_Dimangular;@;_Text;$m=$(Rtos,$(Getvar,Perimeter),2,1);\
 
 
Непрочитано 20.10.2004, 01:18
#9
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Ден, а откуда взялось это выражение?
Vova вне форума  
 
Непрочитано 25.10.2004, 23:01
#10
ден


 
Сообщений: n/a


Из книги "Язык макрокоманд и создание кнопок"Свет В.Л.
 
 
Непрочитано 27.10.2004, 14:30
#11
kos

LISP-программист
 
Регистрация: 25.08.2003
Тутэйшы
Сообщений: 238


Цитата:
Сообщение от Vova
Ден, а откуда взялось это выражение?
Цитата:
Сообщение от ден
Из книги "Язык макрокоманд и создание кнопок"Свет В.Л.
[sm115] Vova ненавязчиво пропиарил своё произведение...

ЗЫ прошу у почтенной публики пардону за оффтоп.
__________________
Там все есть для счастья - меня там только нет.
Так это значит, что я там - буду!
kos вне форума  
 
Непрочитано 27.10.2004, 15:58
#12
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Видищь-ли Kos, не будучи программистом, я сам составил этот макрос, чем гордился. Потому что ни на один мой вопрос по DIESEL никто и никогда мне не отвечал. Даже из техподдержки AutoCAD.ru аналогичный не работал. Поэтому мне стало интересно, стал ли он "народным достоянием" или все еще именной.
Vova вне форума  
 
Непрочитано 27.10.2004, 21:31 Re: Размер дуги
#13
Tech


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


Цитата:
Сообщение от Ден
Можно попробовать такую макрокоманду

^C^C_Lengthen;\;_Dimangular;@;_Text;$m=$(Rtos,$(Getvar,Perimeter),2,1);\
Цитата:
Сообщение от Vova
^C^C_lengthen;\;_dimangular;@;_t;$m=$(rtos,$(getvar,perimeter),2,2)mm ^M
Весьма похоже, но суть не в этом, макрос от Vova у меня почему-то проставляет угловой размер, а Дена работает безошибочно, но только один раз - при изменении длины дуги размер ее (судя по цифирям) не меняется и на _aidimprec никакого внимания, как и LISP от Startrek.
А не подскажут ли многоуважаемые Гуру, как найти золотую середину :?:
Tech вне форума  
 
Непрочитано 28.10.2004, 01:59
#14
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Оба макроса работают, разница только в точности-1 или 2 знака после запятой, и в налчии мм во втором. По сути они переписывают текст углового размера и поэтому не отслеживают измемений в длине дуги. В книге об этом сказано. Что такое _aidimprec ?
Vova вне форума  
 
Непрочитано 28.10.2004, 09:33 Re: Размер дуги
#15
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


Цитата:
Сообщение от Lamer
...работает безошибочно, но только один раз - при изменении длины дуги размер ее (судя по цифирям) не меняется и на _aidimprec никакого внимания, как и LISP от Startrek.
А не подскажут ли многоуважаемые Гуру, как найти золотую середину :?:
А что понимать под этой серединой? Ассоциативным такой размер не будет. Можно, конечно повесить реактор на дугу, но овчинка выделки, наверняка, не стОит. Лиспов, на этот случай написано немало, вот такой например (исключительно в иллюстративных целях):
Код:
[Выделить все]
(if (and (vl-cmdf "_.dimangular" (setq my_arc (entsel)))
	 (while (not (zerop (logand 1 (getvar "cmdactive")))) (vl-cmdf pause))
	 (= "AcDbArc" (vla-get-objectname (setq my_arc (vlax-ename->vla-object (car my_arc)))))
	 (= "AcDb3PointAngularDimension"
	    (vla-get-objectname (setq my_dim (vlax-ename->vla-object (entlast))))
	 )
    )
  (vla-put-textoverride
    my_dim
    (rtos (vla-get-arclength my_arc) (getvar "dimlunit") (getvar "dimdec"))
  )
)
Можно и его на кнопку повесить, в том числе, и оформив, как команду, но суть от этого, не изменится.
Alaspher вне форума  
 
Непрочитано 28.10.2004, 22:29
#16
Tech


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


Цитата:
Что такое _aidimprec ?
Я так думаю, что Dimension Precision :?

Цитата:
...Ассоциативным такой размер не будет.
А коль все размеры в CADе ассоциативны, почему этот должен отличаться :?:
А можно ли сделать так, чтобы из Properties>Total angle заменялся на Arc Length :?:
Tech вне форума  
 
Непрочитано 29.10.2004, 14:19
#17
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


Цитата:
Сообщение от Lamer
Цитата:
...Ассоциативным такой размер не будет.
А коль все размеры в CADе ассоциативны, почему этот должен отличаться :?:
У этого переписан размерный текст, соответственно, он не будет редактироваться автоматом.
Цитата:
А можно ли сделать так, чтобы из Properties>Total angle заменялся на Arc Length :?:
Нет, по крайней мере, я такого не умею (если я правильно понял - о чём это).
Alaspher вне форума  
 
Непрочитано 29.10.2004, 15:19
#18
Tech


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


Просто интересно, открываешь окно свойств и получаешь все параметры объекта. В частности для дуги, причем для любой, присутствует параметр длина - LENGTH для PLINE или ARC LENGTH для дуги, непонятно только, где он прячется и почему разработчики не включили его в стандартный набор DIMENSIONS :? ... да ну ее к :evil: в крайнем случае можно воспользоваться лиспом от Startrek или макросом от Vova-Ден.
Tech вне форума  
 
Непрочитано 29.10.2004, 15:45
#19
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Цитата:
Сообщение от Lamer
Просто интересно, .... непонятно только, где он прячется
См на первой стр. этого топика 2 ссылочки. Там и узнаешь где прячется длина дуги
Vova вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Лисп для проставления размера длины дуги

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

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