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

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

Нужен LISP для заливки отверстий

Ответ
Поиск в этой теме
Непрочитано 18.03.2004, 11:05 #1
Нужен LISP для заливки отверстий
ilka_t
 
Москва
Регистрация: 20.01.2004
Сообщений: 154

что бы зливался угол отверстия, и желательно чтобы при выделении многих обектов (примоугольников) заливка была отдельная для каждого объекта
Надеюсь я смог объяснить чего мне хоется...
Может мне ктонибудь сможет помочь...
Просмотров: 7722
 
Непрочитано 18.03.2004, 11:42
#2
Grinzaid

Архитектор
 
Регистрация: 14.10.2003
Израиль
Сообщений: 365
<phrase 1=


Есть такая штука в ToolPack :
см. картинку.

Не совсем то, но может подойти.
А сам я в таких случаях черчу Solid по 4 точкам - очень удобно: легко копируется с места на место одним объектом и легко растягивается.

Можно процесс его начертания автоматизировать. Надо потумкать.
[ATTACH]1079599396.gif[/ATTACH]
__________________
С уважением,
Влад Гринзайд.
Grinzaid вне форума  
 
Автор темы   Непрочитано 18.03.2004, 12:15
#3
ilka_t


 
Регистрация: 20.01.2004
Москва
Сообщений: 154


Я имел в виду другую заливку

см. рисунок
[ATTACH]1079601327.jpg[/ATTACH]
ilka_t вне форума  
 
Непрочитано 18.03.2004, 12:22
#4
{Smirnoff}

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


В принципе ничего сложного нет, а границы "отверстия" всегда полилиния или могут быть и отрезки? Может не надо заливать после, а сразу рисуешь прямоугольник и он заливаеться как на вашей картинке?
{Smirnoff} вне форума  
 
Автор темы   Непрочитано 18.03.2004, 12:35
#5
ilka_t


 
Регистрация: 20.01.2004
Москва
Сообщений: 154


Сразу залить не получится, т.к за основу берется архитектурный чертеж, границей служит когда как просто линия или полилиния
ilka_t вне форума  
 
Непрочитано 18.03.2004, 12:50
#6
GAP

инженер, строительство
 
Регистрация: 26.02.2004
Питер
Сообщений: 91


VetCAD строит заливку отверстия по трём точкам
GAP вне форума  
 
Непрочитано 18.03.2004, 13:44
#7
Андрей С.

Архитектор
 
Регистрация: 25.08.2003
Москва
Сообщений: 307


Если отверстия сделаны то отрезками, то полилиниями, может, лучше заливать их (кстати, Grinzaid совершенно прав, для этого лучше всего команда _solid) просто указанем двух диагональных точек?

(defun c:dyrka ( / ugol01 ugol02 ugol03 vn-ugol osn00)
(while
(setq ugol01 (getpoint "\nПервая точка диагонали: "))
(initget 1)
(setq ugol02 (getpoint "\nВторая точка диагонали: "))
(setq ugol03 (list (car ugol01) (cadr ugol02)))
(setq vn-ugol(polar ugol03 (- (angle ugol03 ugol02) 0.785398)(/ (distance ugol01 ugol02) 12.0)))
(setq osn00 (getvar "osmode"))
(command "_solid" ugol01 ugol03 vn-ugol ugol02 "")
(setvar "osmode" osn00)
);while
(princ)
);defun

Подразумевается, что отверстия прямоугольные, со сторонами, параллельными осям XY, если они повернуты, перед использованием команды повернуть координаты вокруг оси Z на нужный угол.
Андрей С. вне форума  
 
Непрочитано 19.03.2004, 07:09
#8
Ярослав


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


Вариант

Создаем блок из квадрата со стороной 1 и пропорциональной заливкой. Вставляем его с необходимым масштабированием.
Ярослав вне форума  
 
Непрочитано 19.03.2004, 11:15
#9
Alan

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


У меня в программе ПАРКС угол отверстия заливался. Но мои архитекторы показали мне ГОСТ 21.501-93, в котором отверстия (точнее проемы) не заливаются. См.прилагаемую картинку. Заставили переделать. Может они не правы? Дайте ссылку на правильный или другой ГОСТ, пжл.
[ATTACH]1079684123.gif[/ATTACH]
Alan вне форума  
 
Автор темы   Непрочитано 19.03.2004, 11:29
#10
ilka_t


 
Регистрация: 20.01.2004
Москва
Сообщений: 154


Может мы делаем не по ГОСТу но так понятнее, и мне и строителям, а наши архитекторы не возражают...
ilka_t вне форума  
 
Непрочитано 19.03.2004, 15:25
#11
{Smirnoff}

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


Если действительно сильно нужно, то применяя совет Ярослава, могу потратить 30 минут и выдать функцию, которая сама будет создавать блок и при вставке масштабировать по сторонам прямоугольника. Угол с осью Х может быть любой. Но это если действительно надо не для 10 "дырок". Можно сделать и по щелчку, но т. к. там могут быть не только полилинии но и линии, проще указать две вершины.
{Smirnoff} вне форума  
 
Автор темы   Непрочитано 19.03.2004, 16:16
#12
ilka_t


 
Регистрация: 20.01.2004
Москва
Сообщений: 154


Ето нужно не для 10 и намного больше .
Если не сложно то потратьте 30 минут если не сложно...
(у меня все время полилинии, было-бы совсем идеально если при выделении нескольких прямоугольников, у каждого заливался свой угол,и заливка относилась только к етому прямоугольнику
Заранее вам благодарен..
ilka_t вне форума  
 
Непрочитано 19.03.2004, 16:28
#13
{Smirnoff}

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


Хорошо. Скорее завтра чем сегодня. В общем щелкаем в бесконечном цикле, до выхода по Esc, и при каждом щелчке заливаеться левый верхний угол. Так?
{Smirnoff} вне форума  
 
Непрочитано 19.03.2004, 17:14
#14
Serz

Строительное проектирование
 
Регистрация: 21.08.2003
Москва
Сообщений: 853
<phrase 1=


Цитата:
Но мои архитекторы показали мне ГОСТ 21.501-93, в котором отверстия (точнее проемы) не заливаются. См.прилагаемую картинку. Заставили переделать. Может они не правы? Дайте ссылку на правильный или другой ГОСТ, пжл.
Ваши архитекторы абсолютно правы. Заливаются только дымоходы, причем не так. Вентиляционные каналы перечеркиваются. А указанным способом показываются проемы, но без заливки. См. Приложение 1 к ГОСТ 21.501-93. Два скриншота: первый -
[ATTACH]1079705664.jpg[/ATTACH]
Serz вне форума  
 
Непрочитано 19.03.2004, 17:14
#15
Serz

Строительное проектирование
 
Регистрация: 21.08.2003
Москва
Сообщений: 853
<phrase 1=


И второй -
[ATTACH]1079705695.jpg[/ATTACH]
Serz вне форума  
 
Автор темы   Непрочитано 19.03.2004, 17:54
#16
ilka_t


 
Регистрация: 20.01.2004
Москва
Сообщений: 154


>>Fantomas
Я имел ввиду по другому: выделяешь все прямоугольники и он их заливает сразу все, но заливка относится только к своему прямоугольнику,
хотя то что вы предлагаете тоже не плохо, но придется много раз тыкать по каждому, но ето уже мелочи по сравнению с тем как сейчас приходится извращатся.....
ilka_t вне форума  
 
Непрочитано 20.03.2004, 01:33
#17
{Smirnoff}

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


Вроде все работает, но слишком серьезно не проверял. Выбираем объекты для "дыр" по одному, рамкой или секущей рамкой, жмем [Enter] и наслаждаемся результатом.

Угол с ХУ может быт любой. Геометрия тоже может быть не прямоугольной. При выборе можно допускать некоторую небрежность, поскольку функция отфильтровывает только замкнутые полилинии с 4-мя вершинами. Если что не так, пишите письма...
Код:
[Выделить все]
(defun c:hht (/
	      workSet
	      entCount
	      curEnt
	      vlaEnt
	      coordList
	      i
	      pointList
	      tempLine
	      tempPLine
	     )
  (setvar "cmdecho" 0)
  (vl-load-com)
  (command "_.undo" "_be")
  (princ "*** Select hole objects and press [Enter] *** ")
  (setq workSet (ssget))
  (setq entCount 0)
  (while (/= entCount (sslength workSet))
    (setq curEnt (ssname workSet entCount))
    (if	(= (cdr (assoc 0 (entget curEnt))) "LWPOLYLINE")
      (progn
	(setq vlaEnt	(vlax-ename->vla-object curEnt)
	      coordList	(vlax-safearray->list
			  (vlax-variant-value (vla-get-coordinates vlaEnt))
			)
	)
	(if (and (= 8 (length coordList)) (vlax-curve-isClosed vlaEnt))
	  (progn
	    (setq i 0)
	    (while (/= i 8)
	      (if (= 0 i)
		(setq pointList
		       (list
			 (list (nth 0 coordList) (nth 1 coordList))
		       )
		)
		(setq
		  pointList (append pointList
				    (list (list	(nth i coordList)
						(nth (1+ i) coordList)
					  )
				    )
			    )
		)
	      )				; end if
	      (setq i (+ 2 i))
	    )				; end while
	    (setq
	      pointList	(vl-sort
			  pointList
			  (function
			    (lambda (ar1 ar2) (< (car ar1) (car ar2)))
			  )
			)
	    )
	    (setq pointList
		   (vl-sort pointList
			    (function (lambda (ar1 ar2)
					(and
					  (= (car ar1) (car ar2))
					  (> (cadr ar1) (cadr ar2))
					)
				      )
			    )
		   )
	    )
	    (command "_.line" (car pointList) (nth 3 pointList) "")
	    (setq tempLine (entlast))
	    (setq newPoint
		   (vlax-curve-getPointAtDist
		     (vlax-ename->vla-object tempLine)
		     (/	(distance (car pointList) (nth 3 pointList))
			5
		     )
		   )
	    )
	    (command "_.pline"
		     (car pointList)
		     (nth 2 pointList)
		     newPoint
		     (nth 1 pointList)
		     "_C"
	    )
	    (setq tempPLine (entlast))
	    (entdel tempLine)
	    (command "_.hatch" "_solid" tempPLine "")
	    (entdel tempPLine)
	  )				; end progn
	)				; end if
      )					; end progn
    )					; end if
    (setq entCount (1+ entCount))
  )					; end while
  (princ)
)					; end hht
{Smirnoff} вне форума  
 
Непрочитано 20.03.2004, 12:49
#18
Alan

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


IMHO
Команда должна не выполнять заливку или выделение угла (по вкусу) отверстия , а чертить тот самый прямоугольник а также производить образмеривание и маркировку и всё это в послойно и выполнять вышеназванное действие за один такт с минимумом вопросов и ответов. В ПАРКС это так и делается, см.картинку.
[ATTACH]1079776154.gif[/ATTACH]
Alan вне форума  
 
Непрочитано 20.03.2004, 14:23
#19
{Smirnoff}

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


Все это не проблемма. Без заливки, можно сделать вообще с ходу, т. к. создание замкнутой полилинии, которая потом заливается это промежуточная операция. Образмеривание в другом слое, это не сложно. Если чертить сначала сам прямоугольник, это еще проще.

Но наверное если все уже есть, не стоит изобретать велосипед, тем более в составе специализированного САПР. Там и набор стандартных слоев можно сделать и другие настройки.

Человек попросил, я сделал как он просил. Я слаботочник и по этому не знаю этих ГОСТов. Хотя честно говоря, видел что вертикальные шахты, обозначаються чаще без заливки, именно так как вы говорите. А на старых бумажных чертежаж, как прислал Serz.

Сижу сейчас читаю ISO и EN стандарты на английском, с 1 мая у нас действуют они. Перевели тут стандарт по пожарной автоматике зданий на латышский, оказался АБСОЛЮТНО нечитаемым. Латыши матюгаются. Лучше уж на английском читать буду...
{Smirnoff} вне форума  
 
Автор темы   Непрочитано 24.03.2004, 13:35
#20
ilka_t


 
Регистрация: 20.01.2004
Москва
Сообщений: 154


>>Fantomas
Спасибо за помощь, очень помогает, но у меня есть один вопросик?
Если отверстие сильно вытянутое вертикально то заливка не очень красиво получается, что мне в етом лиспе надо поменять чтобы изменить угол заливки отверстия, а то я в лиспе не разбираюсь.....
ilka_t вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Нужен LISP для заливки отверстий

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

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