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

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

Как сделать штриховку перегородки шашечками?

Ответ
Поиск в этой теме
Непрочитано 03.08.2017, 06:02 #1
Как сделать штриховку перегородки шашечками?
*LUCKY*
 
Инженер-конструктор
 
Краснодар
Регистрация: 30.05.2007
Сообщений: 38

Всем привет.
Нужна идея как решить такую задачу. Имеется план перегородок различной толщины. Перегородок много. На плане они должны обозначаться как сделано в файле. Я решал на коленке. Просто сделал массив для толщины 100 мм. Для нужной толщины масштабировал, накладывал на перегородку и растягивал (читай закрашивал). Как-то нудно. Плюс ко всему в перегородках есть дверные проемы, есть пересечения перегородок, есть перегородки сложной формы и тд.
Кто что может присоветовать? Может штриховкой как-то? Я правда свои штриховки не делал никогда, обходился штатными...
Извините, если не в том разделе создал тему...

Вложения
Тип файла: dwg
DWG 2010
Чертеж1.dwg (129.4 Кб, 370 просмотров)

__________________
Язык инженера - чертёж и формула.

Последний раз редактировалось *LUCKY*, 03.08.2017 в 08:14.
Просмотров: 11381
 
Непрочитано 03.08.2017, 07:08
#2
baksconstructor


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


Может и бредовая идея,но - создать новый тип линий, который будет так рисовать.
baksconstructor вне форума  
 
Непрочитано 03.08.2017, 10:59
#3
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,826
<phrase 1=


*LUCKY*, так?
Чертеж1_.dwg
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Автор темы   Непрочитано 03.08.2017, 11:40
#4
*LUCKY*

Инженер-конструктор
 
Регистрация: 30.05.2007
Краснодар
Сообщений: 38
<phrase 1=


Цитата:
Сообщение от zenon Посмотреть сообщение
*LUCKY*, так?
Вложение 191788
:-)
Нет. Должно быть как-то так...
Вложения
Тип файла: dwg
DWG 2010
Чертеж2.dwg (131.0 Кб, 484 просмотров)
__________________
Язык инженера - чертёж и формула.
*LUCKY* вне форума  
 
Непрочитано 03.08.2017, 12:07
#5
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,826
<phrase 1=


ну тогда, смотри в сторону динамических блоков. Может быть с мультилинией что-то мутить. Но лучше помучиться и создать свой тип линии.
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 03.08.2017, 12:09
#6
Кулик Алексей aka kpblc
Moderator

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


Свой тип линии тут мало поможет, мне кажется. Может быть, будет проще как раз собственную штриховку определять.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 03.08.2017, 15:33
#7
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


В соответствии с каким нормативным документом принят такой бредовый вид штриховки "перегородок", которых в AutoCAD'е нет?
Profan вне форума  
 
Автор темы   Непрочитано 03.08.2017, 15:45
#8
*LUCKY*

Инженер-конструктор
 
Регистрация: 30.05.2007
Краснодар
Сообщений: 38
<phrase 1=


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Свой тип линии тут мало поможет, мне кажется. Может быть, будет проще как раз собственную штриховку определять.
Да... Я тоже стал склоняться к штриховке... С линией что то не очень получается...

----- добавлено через 56 сек. -----
Цитата:
Сообщение от Profan Посмотреть сообщение
В соответствии с каким нормативным документом принят такой бредовый вид штриховки "перегородок", которых в AutoCAD'е нет?
Это требование для документов БТИ... Новое... С этого года... Перегородки в здании обозначать таким образом...
__________________
Язык инженера - чертёж и формула.
*LUCKY* вне форума  
 
Непрочитано 03.08.2017, 17:39
#9
fktstv

Инженер
 
Регистрация: 20.01.2016
Сообщений: 307


Я бы сделал вот так. Штриховку сделал с нуля в блокноте. Можно в принципе сделать штрихи почаще, чтобы она смотрелась как solid.
Вложения
Тип файла: dwg
DWG 2007
Чертеж2.dwg (142.1 Кб, 406 просмотров)
Тип файла: zip partition.zip (334 байт, 271 просмотров)
__________________
Все, казалось бы, просто, но на самом деле это не так - В. В. Горев, том 1, стр. 338 - М. 2004

Последний раз редактировалось fktstv, 10.08.2017 в 01:24. Причина: shame
fktstv вне форума  
 
Непрочитано 03.08.2017, 18:04
#10
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,991
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Сделал на основе команды Zebra2 команду Zebra5 - рисование шашечкой

__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 03.08.2017, 18:17
#11
engngr

сети
 
Регистрация: 03.11.2008
Московия*
Сообщений: 5,778


http://forum.dwg.ru/showpost.php?p=1...&postcount=833
engngr на форуме  
 
Автор темы   Непрочитано 03.08.2017, 18:26
#12
*LUCKY*

Инженер-конструктор
 
Регистрация: 30.05.2007
Краснодар
Сообщений: 38
<phrase 1=


Ребята! Большое Всем спасибо! Как говорится одна голова хорошо, а Вы мне реально помогли!
__________________
Язык инженера - чертёж и формула.
*LUCKY* вне форума  
 
Непрочитано 04.09.2018, 17:36
#13
Neophyte

геодезия
 
Регистрация: 04.09.2018
Сообщений: 4


Цитата:
Сообщение от VVA Посмотреть сообщение
Сделал на основе команды Zebra2 команду Zebra5 - рисование шашечкой

Мегаогромное спасибо! К сожаление LISP пока мне темный лес...
1. А реально ли попросить сделать более коротким размер команды типа "Z5", "ZZ5" или еще какой? (Работаем ACAD2009 и ACAD2016 в зависимости от машины)
2. Можно ли оставить только один параметр при вводе? Грубо говоря чтобы вводить только ширину шашечки, а длина умножалась на полтора автоматически? Скажем в команде "Zebra6", "Z6", "ZZ6" или что-то подобное?
Neophyte вне форума  
 
Непрочитано 06.09.2018, 14:39
#14
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,991
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Neophyte, В моей подписи есть ссылка на статью. Там почитай раздел "Команда или функция". Он не про программирование, а про общие понятия. Прочитав ее станет понятно, как в обычном блокноте выполнить п.1. Нужно найти строчку C:ZEBRA5 и заменить ZEBRA5 на Z5, ZZ5 или как-то еще.
По поводу п.2 добавил ZEBRA6
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 06.09.2018, 14:42
#15
Neophyte

геодезия
 
Регистрация: 04.09.2018
Сообщений: 4


Спасибо большое!
Neophyte вне форума  
 
Непрочитано 04.03.2019, 12:42
#16
timoshetc


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


VVA, Можете помочь с лиспом Zebra6, а именно при вводе параметров ширины и длины штриха не делается заливка а просто разметка на блоки.
Задача такая: есть стена отображенная либо замкнутой полилинией, либо просто двумя параллельными линиями, требуется "залить" в нее шашечную штриховку. Заранее спасибо
timoshetc вне форума  
 
Непрочитано 05.03.2019, 21:43
#17
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,991
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Добавь команду в файл по ссылке #14. Там недостающие функции
Код:
[Выделить все]
(Defun C:ZEBRA7 (/     ed    e2	  ang	col   dH    DL	  DLN	e1
		H_put i	    nev	  Param	pt0   pt1   pt11  pt2	pt21
		S_spal	    Vobj  e-lay	e-col e-lt  e-lw osm sps TU EL1 EL2 *error*
	       )
;;; Рисование штриховки шашечкой с длиной сегмег=нта = 1.5 ширины
;;;H_put - ширина пути
;;;S_spal - длина сегмента
;;;DL- на сколько шпалы выступают за путь с одной стороны
  (setq	H_put 0.4 ;_ширина пути 0.4 мм
	S_spal 0.6 ;_шаг шпал 0.6 мм
	DL 0.1				
  ) ;_ End of setq
  (mip_undo_check)
   (or *kpblc-activedoc*
       (setq *kpblc-activedoc* (vla-get-activedocument (vlax-get-acad-object)))
   )
    (setq *error* mip-error)
    (_MIP-CLAYER-STATUS-SAVE)
    (kpblc-error-save-sysvar
      (list
	'("osmode")
	'("CLAYER")
	'("DIMZIN")
        '("QAFLAGS" 0)
        '("CMDECHO" 0)
        '("EXPERT" 5)
        '("plinewid"  0)
        '("highlight" 1)
        '("cecolor"   "bylayer")
	'("CELTYPE"  "bylayer")
        '("limcheck"  0)
        '("pickstyle" 0)
	'("ANGBASE" 0)
	'("ANGDIR" 0)
	'("UCSFOLLOW" 0)
        '("LUNITS"  2)
        '("AUNITS"  1)
	(list "LUPREC" (max 2 (getvar "LUPREC")))
	(list "AUPREC" (max 3 (getvar "AUPREC")))
        (list "ucsicon"   (getvar "ucsicon"))
      )
      )
  (vla-endundomark *kpblc-activedoc*)
  (vla-startundomark *kpblc-activedoc*)
  (setq pt1 t)
  (while pt1
    (initget 1 "S")
    (setq TU nil)
    (princ "\nТекущие настройки: Ширина=")(princ H_put)(princ " Длина блока=")(princ S_spal)
    (setq e1 (entsel "\nВыберите ось путей [настройки(S)]: "))
    (cond
      ((= e1 "S")
       (princ "\nШирина блоков в ед.черт <")
       (princ H_put)
       (princ "> : ")
       (initget 6)
       (setq pt2 (getdist))
       (if pt2
	 (setq H_put pt2)
       ) ;_ End of if
       (setq S_spal (* 1.5 H_put))
       (princ "\nДлина блока в ед.черт <")
       (princ S_spal)
       (princ "> : ")
;;;       (initget 6)
;;;       (setq pt2 (getdist))
;;;       (if pt2
;;;	 (setq S_spal pt2)
;;;       ) ;_ End of if
      )
      ((null e1)
       (alert "Ничего не выбрано")
      )
      (t
       (setq TU (cadr e1))
       (setq e1 (car e1))
       (setq pt2 (cdr (assoc 0 (entget e1))))
       (setq vobj (vlax-ename->vla-object e1))
       (cond
	 ((member
	    pt2
	    '("LINE" "ARC" "SPLINE" "LWPOLYLINE" "POLYLINE" "ELLIPSE")
	  ) ;_ End of member
	  (setq pt21 (vlax-curve-isClosed vobj))
	  (if pt21
	    (alert (strcat "\nОбъект " pt2 " не должен быть замкнут"))
	    (setq pt1 nil)
	  ) ;_ End of if
	 )
	 (t
	  (alert
	    (strcat
	      "Объект "
	      pt2
	      " не может быть осью пути\nОсь пути - полилиния, линия, дуга, сплайн, эллиптическая дуга"
	    ) ;_ End of strcat
	  ) ;_ End of alert
	 )
       ) ;_cond  
      )
    ) ;_ End of cond
  ) ;_while pt1
					;e-col e-lt e-lw
  (setq pt1 (entget e1))
  (setq e-lay (cdr (assoc 8 pt1))) ;_Слой
  (setq e-col (cdr (assoc 62 pt1))) ;_Цвет
  (if (null e-col)
    (setq e-col 256)
  ) ;_ End of if
  (setq e-lt (cdr (assoc 6 pt1))) ;_Тип лин
  (if (null e-lt)
    (setq e-lt "ByLayer")
  ) ;_ End of if
  (setq dH (+ (* H_put 0.5) DL))
  (setq osm (getvar "OSMODE"))
  (disable_osmode)
  (setq vobj (vlax-ename->vla-object e1))
  (setq e-lw (vlax-get-property vobj 'Lineweight))
  (setq pt1 (vlax-curve-getStartPoint vobj))
  (setq pt2 (vlax-curve-getEndPoint vobj))
  (setq DLN (vlax-curve-getDistAtPoint vobj pt2))
  (setq col (fix (/ dln s_spal 1.0)))
  (setq nev (- DLN (* col S_spal)))
  (setq col ( abs (- col 1)))
  (setq nev (+ nev S_spal))
  (setq nev (* nev 0.5))
  (if (< nev 0.1)
    (setq nev 0)
  ) ;_ End of if
  (setq	PICK1 nil
	PICK1 (ssadd)
  ) ;_ end of setq
  (setq	PICK2 nil
	PICK2 (ssadd)
  ) ;_ end of setq
  (setq param (vlax-curve-getParamAtPoint vobj pt1))
  (setq ang (vlax-curve-getFirstDeriv vobj param))
  (setq pt11 (list (+ (car pt1) (car ang)) (+ (cadr pt1) (cadr ang))))
  (setq ang (angle pt1 pt11))
  (setq ang (- ang (* PI 0.5)))
  (setq pt11 (polar pt1 ang dH))
  (setq pt21 (polar pt1 (+ ang PI) dH))
  (ssadd e1 PICK2) ;_2017
  (command "_OFFSET" (* H_put 0.5) e1 (trans pt11 0 1) "") ;_ End of command
  (setq EL1 (vlax-ename->vla-object (entlast)))
  (ssadd (entlast) PICK2)
  (command "_OFFSET" (* H_put 0.5) e1 (trans pt21 0 1) "") ;_ End of command
  (setq EL2 (vlax-ename->vla-object (entlast)))
  (ssadd (entlast) PICK2)

 (foreach aa (list pt1 pt2)
    (setq pt0 aa)
    (setq param (vlax-curve-getParamAtPoint vobj pt0))
    (setq ang (vlax-curve-getFirstDeriv vobj param))
    (setq pt11 (list (+ (car pt0) (car ang)) (+ (cadr pt0) (cadr ang))))
    (setq ang (angle pt0 pt11))
    (setq ang (- ang (* PI 0.5)))
    (setq pt11 (polar pt0 ang dH))
    (setq pt21 (polar pt0 (+ ang PI) dH))
    (command "_.line" (trans pt11 0 1) (trans pt21 0 1) "")
    (setq e2 (entlast)
	  ed (entget e2)
    ) ;_ End of setq
    (ssadd e2 PICK1)
    (setq pt11 (polar pt0 ang (- dH DL)))
    (setq e2 (vlax-curve-getclosestpointto EL1 pt11))
    (if e2 (setq pt11 e2))
    (setq pt21 (polar pt0 (+ ang PI) (- dH DL)))
    (setq e2 (vlax-curve-getclosestpointto EL2 pt21))
    (if e2 (setq pt21 e2))
    (command "_.line" (trans pt11 0 1) (trans pt21 0 1) "")
    (setq e2 (entlast)
	  ed (entget e2)
    ) ;_ End of setq
    (ssadd e2 PICK2)
    (setq ed (izmpole ed 8 e-lay))
    (setq ed (izmpole ed 62 e-col))
    (setq ed (izmpole ed 6 e-lt))
    (setq ed (vlax-ename->vla-object e2))
    (vlax-put-property ed 'Lineweight e-lw)
 )  
  (setq i '-1)
  (repeat (+ col 1)
    (setq i (1+ i))
    (setq pt0 (vlax-curve-getPointAtDist vobj (+ (* S_spal i) nev)))
    (setq param (vlax-curve-getParamAtPoint vobj pt0))
    (setq pt11 (vlax-curve-getPointAtDist vobj (+ (* S_spal i) (* 0.5 nev))))
    
    (setq param (vlax-curve-getParamAtPoint vobj pt11))
    (setq ang (vlax-curve-getFirstDeriv vobj param))
    (setq pt (list (+ (car pt11) (car ang)) (+ (cadr pt11) (cadr ang))))
    (setq ang (angle pt11 pt))
    (if (= (logand i 1) 1) ;_2017 нечетное
      (setq ang (- ang (* PI 0.5)))
      (setq ang (+ ang (* PI 0.5)))
      )
    (setq pt (polar pt11 ang (* 0.25 H_put)))
    (setq sps (append sps (list pt)));_2017
    
    (setq ang (vlax-curve-getFirstDeriv vobj param))
    (setq pt11 (list (+ (car pt0) (car ang)) (+ (cadr pt0) (cadr ang))))
    (setq ang (angle pt0 pt11))
    (setq ang (- ang (* PI 0.5)))
    (setq pt11 (polar pt0 ang dH))
    (setq pt21 (polar pt0 (+ ang PI) dH))
    (command "_.line" (trans pt11 0 1) (trans pt21 0 1) "")
    (setq e2 (entlast)
	  ed (entget e2)
    ) ;_ End of setq
    (ssadd e2 PICK1)
    (setq pt11 (polar pt0 ang (- dH DL)))
    (setq e2 (vlax-curve-getclosestpointto EL1 pt11))
    (if e2 (setq pt11 e2))
    (setq pt21 (polar pt0 (+ ang PI) (- dH dL)))
    (setq e2 (vlax-curve-getclosestpointto EL2 pt21))
    (if e2 (setq pt21 e2))
    
    (command "_.line" (trans pt11 0 1) (trans pt21 0 1) "")
    (setq e2 (entlast)
	  ed (entget e2)
    ) ;_ End of setq
    (ssadd e2 PICK2)
    (setq ed (izmpole ed 8 e-lay))
    (setq ed (izmpole ed 62 e-col))
    (setq ed (izmpole ed 6 e-lt))
    (setq ed (vlax-ename->vla-object e2))
    (vlax-put-property ed 'Lineweight e-lw)
  ) ;_ End of repeat
(setq pt11 (vlax-curve-getPointAtDist vobj (- DLN (* nev 0.5))))
     (setq param (vlax-curve-getParamAtPoint vobj pt11))
    (setq ang (vlax-curve-getFirstDeriv vobj param))
    (setq pt (list (+ (car pt11) (car ang)) (+ (cadr pt11) (cadr ang))))
    (setq ang (angle pt11 pt))
    (if (= (logand (1+ i) 1) 1) ;_2017 нечетное
      (setq ang (- ang (* PI 0.5)))
      (setq ang (+ ang (* PI 0.5)))
      )
    (setq pt (polar pt11 ang (* 0.25 H_put)))
    (setq sps (append sps (list pt)));_2017
;;; вычисляем min высоту экрана  чтобы сработала bhatch для 0.4 не менее 200 для 1 - 500
  (setq pt11 (getvar "VIEWSIZE"))
  (setq pt21 (* H_put 500.0))
  (if (> pt11 pt21)
    (progn
      (command "_ZOOM" "_C" TU pt21)
      (setq TU "ZOOM")
    )
  )  
;;;	(if acet-ui-progress-init (acet-ui-progress-init "Обработка ..." (+ (length sps) 5)))
  
;;;	  (command "_-bhatch" "_A" "_B" "_N" PICK1 PICK2 "" "" "_P" "_S")
;;;	   (setq i 0)
;;;	   (foreach aa sps
;;;	     ;;;(if (zerop (logand i 1))(command (trans aa 0 1)))
;;;	     (command (trans aa 0 1))
;;;	     (setq i (1+ i))
;;;	     (if acet-ui-progress-safe (acet-ui-progress-safe i))
;;;	   )  
;;;	  (command "")
  (setq ang "Гидроизоляция")
  (if (null (tblsearch "LAYER" ang))
    (command "_.-LAYER" "_N" ang "")
  ) ;_ end of if
  (izmpole (entget e1) 8 ang)
  (ssadd (entlast) PICK2)
  (setq i (1+ i))
  (if acet-ui-progress-safe (acet-ui-progress-safe i))
  (command "_CHANGE" PICK2 "" "_P" "_LA" ang "_C" "_ByLayer" "_LW" "_ByLayer" "_LT" "_ByLayer" "")
  (setq i (1+ i))
  (if acet-ui-progress-safe (acet-ui-progress-safe i))
  (entdel e1)
  (command "_.-group"	    "_C"	     "*"
	   "Блоки ФБС"	     PICK2
	   ""
	  ) ;_ end of command

  (if (= TU "ZOOM")(command "_ZOOM" "_P"))  
  (setq i (+ i 2))
  (if acet-ui-progress-safe (acet-ui-progress-safe i))
  (if acet-ui-progress-done (acet-ui-progress-done))
  (command "_ERASE" PICK1 "")
  
  (setq PICK1 nil PICK2 nil)
  (setvar "OSMODE" osm)
(kpblc-error-restore-sysvar)
(_kpblc-layer-status-restore)    
(vla-endundomark *kpblc-activedoc*)

  (princ)
)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 12.03.2019, 13:11
#18
timoshetc


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


VVA, добавил код. выдал такую ошибку

Команда: ZEBRA7

Текущие настройки: Ширина=0.4 Длина блока=0.6
Выберите ось путей [настройки(S)]: s

Ширина блоков в ед.черт <0.4> : .12

Длина блока в ед.черт <0.18> :
Текущие настройки: Ширина=0.12 Длина блока=0.18
Выберите ось путей [настройки(S)]:
Acet-ui-progress is not initialized.
Acet-ui-progress is not initialized.
Acet-ui-progress is not initialized.

разбил на сегменты во вложении
Миниатюры
Нажмите на изображение для увеличения
Название: ош_зебра.jpg
Просмотров: 143
Размер:	28.4 Кб
ID:	211816  
timoshetc вне форума  
 
Непрочитано 12.03.2019, 13:25
#19
Кулик Алексей aka kpblc
Moderator

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


ET установлены?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 12.03.2019, 14:00
#20
timoshetc


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


Кулик Алексей aka kpblc, проверил еще раз ET? установленны!
Миниатюры
Нажмите на изображение для увеличения
Название: ET.jpg
Просмотров: 156
Размер:	131.1 Кб
ID:	211818  
timoshetc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как сделать штриховку перегородки шашечками?

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Когда нужна геология? Виктор 1987 Основания и фундаменты 8 22.03.2011 10:30
Нужна идея по решению перечисленных проблем hwd Программирование 39 06.03.2011 16:58
Пожарная лестница. Нужна ли? Рустам Прочее. Архитектура и строительство 6 08.02.2011 19:33
Нужна учебная версия autocad 2007 или файл kneacks AutoCAD 2 26.05.2010 19:07
Нужна помощь Николай1 Прочее. Архитектура и строительство 2 27.02.2004 12:47