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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Простановка осевых линий на отводах трубопроводов. макрос. никто не видел?

Простановка осевых линий на отводах трубопроводов. макрос. никто не видел?

Ответ
Поиск в этой теме
Непрочитано 22.04.2013, 15:35 #1
Простановка осевых линий на отводах трубопроводов. макрос. никто не видел?
ssn
 
Инженер проектировщик (раздел ТМ - фриланс)
 
Геленджик
Регистрация: 06.12.2003
Сообщений: 1,794

может кто встречал макрос для простановки на отводах осевых линий?
иммем две дуги, по краям дуги соедены между собой. (рис 1)
надо выбрать одну дугу, потом вторую. между ними должна нарисоваться ось (рис 2).
в идеале надо что бы ещё макрос подрезал все линии которые пересекают замыкающие участки отвода (что бы ранее нарисованные оси прямых участков подрезались и примыкали к осям отавода (рис 3).

а то проставление осей на отводах пока самый затычный (не автоматизированный) участок при оформлении (кружок, обрезать, обрезать прямые оси.. муторно)

Миниатюры
Нажмите на изображение для увеличения
Название: 1.jpg
Просмотров: 130
Размер:	15.8 Кб
ID:	101642  Нажмите на изображение для увеличения
Название: 2.jpg
Просмотров: 124
Размер:	20.2 Кб
ID:	101644  Нажмите на изображение для увеличения
Название: 3.jpg
Просмотров: 111
Размер:	16.9 Кб
ID:	101645  

Просмотров: 8546
 
Непрочитано 22.04.2013, 15:47
#2
Кулик Алексей aka kpblc
Moderator

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


Ищи "Новые инструменты для работы с полилиниями" - насколько я помню, там была отрисовка серединной линии.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 22.04.2013, 16:06
#3
CRISTOFF

расчёты
 
Регистрация: 04.07.2009
Воронеж
Сообщений: 908


А почему не используете Отводы по ГОСТ 17375-01 Исполнение 2? Всё уже проставлено! В этом же файле есть отводы исп. 1 (90 град).
__________________
"Сделай первый шаг - и ты поймёшь, что не всё так страшно." (Сенека, древнеримский философ).
CRISTOFF вне форума  
 
Автор темы   Непрочитано 22.04.2013, 16:13
#4
ssn

Инженер проектировщик (раздел ТМ - фриланс)
 
Регистрация: 06.12.2003
Геленджик
Сообщений: 1,794
Отправить сообщение для ssn с помощью Skype™


история такая.
моделирую трубопроводы, потом оттиски в автокад.. и далее оформляю (расстановка размеров, осей, обозначений)
вообщем в автокаде имеем просто набор линий. прямые участки просто линии, отводы это дуги.
ssn вне форума  
 
Непрочитано 22.04.2013, 16:21
#5
Малевич

конструктор (машиностроение)
 
Регистрация: 11.11.2009
Сообщений: 646


Цитата:
Сообщение от ssn Посмотреть сообщение
кружок, обрезать, обрезать прямые оси..
Обычный _fillet имеет такую особенность: если выбрать "радиус", но не задавать его в явном виде, а ткнуть два раза курсором - в точку цетра окружностей и на перп-ре к осевой линии, а потом опять взять "радиус", то его значение будет равно измеренному отрезку. Попробуйте, может устроит.
Малевич вне форума  
 
Непрочитано 22.04.2013, 16:54
#6
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


По мотивам предыдущего сообщения:
Код:
[Выделить все]
(setq arc1    (entsel "\nПервая дуга:")
      arc2    (entsel "\nВторая дуга:")
      rad-lst (mapcar '(lambda (a) (cdr (assoc 40 (entget (car a)))))
		      (list arc1 arc2)
	      ) ;_ end of mapcar
      rad     (/ (apply '+ rad-lst) 2)
) ;_ end of setq
(setvar "filletrad" rad)
(vl-cmdf "_.fillet")
Do$ вне форума  
 
Автор темы   Непрочитано 22.04.2013, 17:05
#7
ssn

Инженер проектировщик (раздел ТМ - фриланс)
 
Регистрация: 06.12.2003
Геленджик
Сообщений: 1,794
Отправить сообщение для ssn с помощью Skype™


идею понял.
только получается много движений. ведь можно ограничиться имеено выбором двух дуг.
а тут получается надо ещё выбрать две оси.
хотя уже лучше конечно

простите конечно, как этот лисп запустить. я понимаю что это функция которую можно куда то вписать, только я не силён в лиспе...

Последний раз редактировалось ssn, 22.04.2013 в 17:10.
ssn вне форума  
 
Непрочитано 22.04.2013, 17:39
#8
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


Цитата:
а тут получается надо ещё выбрать две оси.
О ужас
Цитата:
как этот лисп запустить
Сохранить в текстовый файл, дать ему расширение LSP и потом через _appload загрузить.
Способ поудобнее - закидываем файлик этот (предположим он называется center.lsp) в support-папку, и в комстроку вставляем:
Код:
[Выделить все]
(load "center.lsp")
Предупреждаю, что код этот чувствителен к неправильным действиям, но к критическим ошибкам не приводит.
Do$ вне форума  
 
Автор темы   Непрочитано 22.04.2013, 17:50
#9
ssn

Инженер проектировщик (раздел ТМ - фриланс)
 
Регистрация: 06.12.2003
Геленджик
Сообщений: 1,794
Отправить сообщение для ssn с помощью Skype™


не. это я понимаю. я не вижу команды, которой он запускается.
не вижу имя функции. вот я к чему

а про ужас.. ведь реально сделать в два клика.

Последний раз редактировалось ssn, 22.04.2013 в 18:00.
ssn вне форума  
 
Непрочитано 22.04.2013, 17:51
#10
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 813


Если только дуги попробуй так
Код:
[Выделить все]
(defun C:ofa (/ *error* arc1 dst mp p1 p2 p3)
  
(defun *error*  (msg)
    (if
      (vl-position
	msg
	'("console break"
	  "Function cancelled"
	  "quit / exit abort"
	  )
	)
       (princ "Error!")
       (princ msg)
       )
    (setvar "apbox" 0)
    (princ)
    )
  
(setvar "apbox" 1)
(setvar "aperture" 5)
(if
  (and (setq p1 (getpoint "\nSelect first arc: ")
	p2 (getpoint "\nSelect second arc: ")
	p3 (osnap p2 "_perp")))
  (progn
    (setq arc1 (ssname (ssget p1) 0))
	  (setq dst (/ (distance p1 p2) 2)
	  mp (list (/ (+ (car p1)(car p2)) 2)(/ (+ (cadr p1)(cadr p2)) 2))
	  )
    (command "._offset" dst arc1 "_non" mp ""))
  )
(setvar "apbox" 0)
(princ)
  )
Олег (jr.) вне форума  
 
Автор темы   Непрочитано 22.04.2013, 17:54
#11
ssn

Инженер проектировщик (раздел ТМ - фриланс)
 
Регистрация: 06.12.2003
Геленджик
Сообщений: 1,794
Отправить сообщение для ssn с помощью Skype™


ага. ещё бы победить обрезание осевых линий (как на рис 2 - 3)
если не сложно, добавьте в макрос что бы он создавал ось на слое AXIS (ну либо на любом отличном от линий отвода). а то макрос офсетит основной линией... спасибо
ssn вне форума  
 
Непрочитано 22.04.2013, 18:05
#12
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 813


Это уж сам
Олег (jr.) вне форума  
 
Автор темы   Непрочитано 22.04.2013, 18:24
#13
ssn

Инженер проектировщик (раздел ТМ - фриланс)
 
Регистрация: 06.12.2003
Геленджик
Сообщений: 1,794
Отправить сообщение для ssn с помощью Skype™


чёрт чёрт чёрт. лисп очень не знаю.
придётся в ВБА городить огород
спасибо за помощь

Последний раз редактировалось ssn, 22.04.2013 в 18:32.
ssn вне форума  
 
Непрочитано 22.04.2013, 18:52
#14
Малевич

конструктор (машиностроение)
 
Регистрация: 11.11.2009
Сообщений: 646


Цитата:
Сообщение от ssn Посмотреть сообщение
только получается много движений. ведь можно ограничиться имеено выбором двух дуг.
а тут получается надо ещё выбрать две оси.
Есть такое дело; но тыкать в оси всё равно придётся: прога сама не знает к чему применить полученный радиус. Удобнее, конечно, если значение сразу подставляется в _филлет, но лисп ещё запустить надо.
А с оффсетом, на мою чайниковскую имху, в засаду попадёте с автообрезанием.
Малевич вне форума  
 
Непрочитано 22.04.2013, 19:57
#15
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,481
Отправить сообщение для maratovich с помощью Skype™


Цитата:
Сообщение от ssn Посмотреть сообщение
моделирую трубопроводы, потом оттиски в автокад..
Вот Вам пример как надо делать, тогда ваши проблемы отпадут сами собой.
Вложения
Тип файла: dwg
DWG 2007
Пример.dwg (124.6 Кб, 2002 просмотров)
__________________
Вопрос : Где находится Тургай ? Ответ : Между Парагваем и Уругваем.....
maratovich вне форума  
 
Автор темы   Непрочитано 22.04.2013, 21:04
#16
ssn

Инженер проектировщик (раздел ТМ - фриланс)
 
Регистрация: 06.12.2003
Геленджик
Сообщений: 1,794
Отправить сообщение для ssn с помощью Skype™


Цитата:
Сообщение от maratovich Посмотреть сообщение
Вот Вам пример как надо делать, тогда ваши проблемы отпадут сами собой.
не. это не наш метод. я делаю оттиски (виды) с модели и это в все в инвенторе. на них эти отводы видимо будут с осями в основную линию. хотя конечно интересный способ.

я вот думал сделать такое
выбирать две дуги
определять координаты концов.
возможно строить временные отезки между концами
строить дугу по среднему между двух радиусов
оберазать её по временным отрезкам
обрезать по временным отрезкам все внутри дуг
удалять временные отрезки.

вот такая канитель.
единственно с моим знание ВБА это простая процедура растянется как не знаю что.
ssn вне форума  
 
Непрочитано 22.04.2013, 21:39
#17
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,481
Отправить сообщение для maratovich с помощью Skype™


Цитата:
Сообщение от ssn Посмотреть сообщение
не. это не наш метод. я делаю оттиски (виды) с модели и это в все в инвенторе. на них эти отводы видимо будут с осями в основную линию. хотя конечно интересный способ.
Тут всё просто - делаем модель, потом с помощью "плоскснимок" или секущей плоскостью делаем виды, разрезы на которых все линии основные, на них автоматом получаем осевые линии. Перекидываем одну осевую на нужный слой с требуемыми параметрами, а далее с помощью копирования свойств делаем всё как надо. Быстро и легко. Заодно получаем готовую спецификацию с кучей необходимых данных.
А для того что Вы хотите у меня на кнопке висит макрос который делает осевую у отводов, но там обязательно надо чтобы дуги были мультилиниями и делает осевую тоже мультилинией с количеством точек =100. Данным методом не пользуюсь уже давно по причине использования метода указанного в примере.
__________________
Вопрос : Где находится Тургай ? Ответ : Между Парагваем и Уругваем.....
maratovich вне форума  
 
Автор темы   Непрочитано 22.04.2013, 23:01
#18
ssn

Инженер проектировщик (раздел ТМ - фриланс)
 
Регистрация: 06.12.2003
Геленджик
Сообщений: 1,794
Отправить сообщение для ssn с помощью Skype™


инетесно как в автокаде получить кучу информаии с модели (спецификацию имею ввиду)
ssn вне форума  
 
Непрочитано 22.04.2013, 23:05
#19
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,481
Отправить сообщение для maratovich с помощью Skype™


Цитата:
Сообщение от ssn Посмотреть сообщение
инетесно как в автокаде получить кучу информаии с модели (спецификацию имею ввиду)
См. пример - щелкни по блоку отвода. Выбери блок трубы растяни и посмотри что получилось (незабываем что для изменения атрибутов требуется регенерация или смена вида).
__________________
Вопрос : Где находится Тургай ? Ответ : Между Парагваем и Уругваем.....
maratovich вне форума  
 
Непрочитано 23.04.2013, 00:37
#20
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 813


Цитата:
Сообщение от ssn Посмотреть сообщение
если не сложно, добавьте в макрос что бы он создавал ось на слое AXIS
Попробуй взамен, должно работать с любыми объектами

Код:
[Выделить все]
(defun C:ofa (/ *error* en dst osm ort mp p1 p2 p3)
  (vl-load-com)
(defun *error*  (msg)
    (if
      (vl-position
	msg
	'("console break"
	  "Function cancelled"
	  "quit / exit abort"
	  )
	)
       (princ "Error!")
       (princ msg)
       )
  (setvar 'osmode osm)
 (setvar 'orthomode ort)
    (princ)
    )
  
(setvar "apbox" 0)

 (setq osm (getvar 'osmode))
  (setvar 'osmode 512)
  (setq ort (getvar 'orthomode))
  (setvar 'orthomode 0)
(while
  (and (setq p1 (getpoint "\nSelect first object (or press Enter to exit): "))
	(setq p2 (getpoint p1 "\nSelect second object: "))
        (setq en  (ssname (ssget p2) 0))
	(setq p3 (vlax-curve-getclosestpointto en p1)))
  (progn
    (setq en (ssname (ssget p1) 0))
	  (setq dst (/ (distance p1 p3) 2)
	  mp (list (/ (+ (car p1)(car p3)) 2)(/ (+ (cadr p3)(cadr p3)) 2))
	  )
    
    (command "._offset" dst en "_non" mp "")
    (command "._chprop" (entlast) "" "_LA" "AXIS" "_LT" "CENTER" "_S" 1.0 "");<-- change scale here 
  )
  )
(princ)
  )

(prompt "\n")
(prompt "\n\t---\tType OFA to execute...\t---")
(prin1)
Олег (jr.) вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Простановка осевых линий на отводах трубопроводов. макрос. никто не видел?

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание нового типа линий Apelsinov AutoCAD 915 08.07.2022 12:36