|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
Поиск в этой теме |
17.07.2017, 13:52 | #1 | |
Извлечение длины полилинии в текст и интерпретация размера как шага элементов с последующим выводом в чертеже
Регистрация: 27.10.2009
Сообщений: 31
|
||
Просмотров: 4871
|
|
||||
Маккс
Вы создали тему в "Программирование", что подразумевает помощь в проблемах кода. Если Вы не приложите свой код, то вам скорее всего не ответят, т.к. с ноля здесь делать не будут. Если Вы хотите получить готовое , тогда Вам сюда Поиск исполнителей
__________________
Вопрос : Где находится Тургай ? Ответ : Между Парагваем и Уругваем..... |
||||
|
||||
Регистрация: 27.10.2009
Сообщений: 31
|
Цитата:
2. Пользователь указывает полилинию и размер 3. В указанной точке выводится три текстовых элемента: -значение1 -длина полилинии -(значение размера)/значение2+1 4. Цвет текста вывода зависит от значения1 на данный момент я могу только получить длину полилинии: "(defun c:z-pline-length (/ cEnt tStr tBox tHgt tWid gr sPt cPt lAng bPt tPt pt1 pt2 pt3 pt4) (vl-load-com) (if (and (setq cEnt (car (entsel "\nSelect Object: "))) (member (cdr (assoc 0 (entget cEnt))) '("LWPOLYLINE" "POLYLINE" "LINE"))) (progn (setq tStr (rtos (vla-get-length (vlax-ename->vla-object cEnt))) tBox (textbox (list (cons 1 tStr) (cons 40 (getvar "TEXTSIZE")))) tHgt (- (cadadr tBox) (cadar tBox)) twid (- (caadr tBox) (caar tBox))) (princ "\nPosition Text...") (while (eq 5 (car (setq gr (grread t 5 0)))) (redraw) (if (listp (setq sPt (cadr gr))) (progn (setq cPt (vlax-curve-getClosestPointto cEnt sPt) lAng (angle cPt sPt) bpt (polar cPt lAng (/ (getvar "TEXTSIZE") 2.)) tpt (polar bpt lAng tHgt) mPt (polar bPt lAng (/ tHgt 2.)) pt1 (polar bpt (+ lAng (/ pi 2.)) (/ tWid 2.)) pt2 (polar bPt (- lAng (/ pi 2.)) (/ tWid 2.)) pt3 (polar tpt (+ lAng (/ pi 2.)) (/ tWid 2.)) pt4 (polar tPt (- lAng (/ pi 2.)) (/ tWid 2.))) (grvecs (list -3 pt1 pt2 pt3 pt4 pt1 pt3 pt2 pt4))))) (if (eq 3 (car gr)) (progn (setq lAng (- lAng (/ pi 2.))) (cond ((and (> lAng (/ pi 2)) (<= lAng pi)) (setq lAng (- lAng pi))) ((and (> lAng pi) (<= lAng (/ (* 3 pi) 2))) (setq lAng (+ lAng pi)))) (Make_Text mPt tStr lAng)))) (princ "\n<!> Incorrect Selection <!>")) (redraw) (princ)) (defun Make_Text (pt val rot) (entmake (list (cons 0 "TEXT") (cons 8 (getvar "CLAYER")) (cons 62 2) (cons 10 pt) (cons 40 (getvar "TEXTSIZE")) (cons 1 val) (cons 50 rot) (cons 7 (getvar "TEXTSTYLE")) (cons 71 0) (cons 72 1) (cons 73 2) (cons 11 pt))))" С уважением |
|||
|
||||
Регистрация: 27.10.2009
Сообщений: 31
|
Мощь!!! спасибо огромное!!! Вы настоящий мастер!!! скажите а можно значение количества округлить вверх до ближайшего целого? и сделать так чтобы цвет текста зависил от диаметра, так чтобы текст относящийся к одному и тому же диаметру был одинакового цвета?
|
|||
|
||||
САПР Регистрация: 29.09.2011
СПб
Сообщений: 283
|
Не за что же В нужном месте в функции преобразования числа в строку: (rtos число режим точность), замени точность на 0 (сейчас везде 1), будет округлять до ближайшего целого.
А вот чтобы тексты относящиеся к одному и тому же диаметру были одного цвета, именно этого я и не понял. Диаметр произвольный или есть какой-то сортамент? И как соотнести число диаметра и цвет текста, то есть какому диаметру какой цвет соответствует.
__________________
На работе было скучно:shout: |
|||
|
||||
Регистрация: 27.10.2009
Сообщений: 31
|
Цитата:
если ставить значние 0 то программа округляет до ближайшего целого, а мне нужно чтобы дробь была округлена до целого вверх. как это сделать? есть сортамент: 6-8-10-12-14-16-18-20-22-25-28-32-36-40. Соотношение цвета и арматуры любое- как Вам удобно писать- важно чтобы потом можно было отфильтровать текст по цвету/диаметру. Огромное Вам спасибо!!! |
|||
|
||||
САПР Регистрация: 29.09.2011
СПб
Сообщений: 283
|
Код:
__________________
На работе было скучно:shout: Последний раз редактировалось ciril, 18.07.2017 в 17:42. |
|||
|
||||
Регистрация: 27.10.2009
Сообщений: 31
|
Цитата:
1: пи/4*(d/1000)^2*(длинна стержня/1000)*7850 2. пи/4*(d/1000)^2*(длинна стержня/1000)*(количество стержней)*7850 Заранее черезвычайно благодарен |
|||
|
||||
Регистрация: 05.11.2014
Сообщений: 982
|
Зачем ? Они же Ваши.
http://www.cadtutor.net/forum/showth...-text-elements |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Текст вдоль полилинии или сплайна (по кривой) | Denioska | AutoCAD | 48 | 10.09.2022 21:55 |
Добавление в чертеж длины полилинии | Кочетков Андрей | Программирование | 35 | 14.02.2019 07:22 |
Как определяются расчетные длины элементов плоских ферм? | msv_mnv | Металлические конструкции | 21 | 18.02.2016 23:54 |
Расчетные длины элементов ЛИРА-САПР/СНиП/СП/Катюшин | gdenisn | Лира / Лира-САПР | 5 | 01.09.2015 20:19 |
Как вытащить длины элементов в таблицу? | s7onoff | SCAD | 13 | 17.10.2013 17:58 |