|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
01.02.2004, 11:21 | #1 | |
округление и контроль размеров
конструктор
Москва
Регистрация: 14.12.2003
Сообщений: 112
|
||
Просмотров: 15100
|
|
||||
Сообщений: n/a
|
Практически общая болезнь архитекторов.
Прикольно когда на простом фасаде здания из утолщенного кирпича (х100 мм) появляются отметки типа +4.567. Для округления в разделе Primary Units смотри Dim roundoff - величина округления. Как запретить ручной ввод размеров не знаю. Да и сомневаюсь, что такое необходимо. Если можно запретить, значит можно и разрешить |
|||
|
||||
Архитектор Регистрация: 14.10.2003
Израиль
Сообщений: 365
|
Позвольте израильскому архитектору внести ясность. Я сам сильно страдаю от небрежности сослуживцев и смежников. Методов борьбы сущестмует несколько:
1. Исправить сам чертёж, и тогда размеры исправятся автомвтически. 2. Округлить размеры и избавиться от ручных дописок. Итак: 1. Для исправления самого чертежа необходимо запомнить его (или его часть) как DXF и в опциях (в окне Save Drawing As / DXF Options) выставить decimal places по необходимости. Следует учесть, что округлятся все размеры, вклучая те, которые должнв оставаться нецелыми. Будут и другие побочные эффекты. Так что лучше для этого способа выбрать только самое необходимое. 2. Округление зазмеров. Надо узнать, к какому стилю они принадлежат, зайти в Dimensiom Style Manager / Primary Units и выставить Round off величину округления (кратность). С ручными дописками бороться так: выбрать все объекты чертежа, зайти в properties, отфильтровать выбор на предмет размеров, зайти в Text / Text ovarride и выставить значение <> Вот и всё. Удачи в борьбе с архитекторами.
__________________
С уважением, Влад Гринзайд. |
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Наши архитекторы рисуют, в основном, корректно. В противном случае нашей компании пришлось бы нанимать вдвое больше людей-просчитывать каждую цепочку размеров прежде чем, например, установить конец выходящей из перекрытия трубы так, чтобы он попал в середину стены. А при хорошей основе годится Osnap. Чертить с исправленными размерами это правило очень нехорошего тона. К тому-же, эти люди сами себе вредят-при изменениях в чертежах неточности обязятельно вылезут. Надо в жесткой форме, с примерами, напомнить нерадивым чертежникам, что это автокад, и он не терпит неточностей. Тем не менее, получая набор чертежей от архитекторов, я всегда проверяю размеры специальным Лиспом на предмет наличия отредактированных размеров,
;;; CHKDIM.LSP "Check Dimensions" - detects overridden dimensions ;;; ;;; tested with AutoCAD 12/13/14 ;;; ;;; Copyright (c) 1997 by Christoph Candido, Vienna ;;; E-Mail: [email protected] ;;; ;;; Permission to use, copy, modify, and distribute this software ;;; for any purpose and without fee is hereby granted, provided ;;; that the above copyright notice appears in all copies and that ;;; both that copyright notice and this permission notice appear in ;;; all supporting documentation. ;;; ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED. ;;; ;;;------------------------------------------------------------------ ;;; Purpose: ;;; ;;; Routine to global check dimension texts. ;;; All dimension texts, which are altered by the user, will ;;; be copied to the layer CHKDIM and viewed separately. ;;; (defun C:CHKDIM (/ *chkdim_err* oerr osys ss i en ent txt enlist) (defun *chkdim_err* (s) ; error routine (command "_.UNDO" "_End") (sysvar osys) (setq *error* oerr) (princ) ) (setq oerr *error* *error* *chkdim_err* osys (sysvar '(("CMDECHO" 0))) ss (ssget "X" '((0 . "DIMENSION")(8 . "~CHKDIM"))) i 0 ) (if ss (repeat (sslength ss) (setq en (ssname ss i) ent (entget en) txt (cdr (assoc 1 ent)) i (1+ i) ) (if (and (/= txt "") (not (strstr txt "<>")) ) (setq enlist (cons en enlist)) ) ) ) (if enlist (progn (mapcar 'princ (list "\n" (length enlist) " altered dimension text(s) found ...please wait") ) (if (null *CHKDIM_LAYLIST*) (setq *CHKDIM_LAYLIST* (laysave)) ) (if (= 0 (getvar "UNDOCTL")) (command "_.UNDO" "_All") ) (command "_.UNDO" "_Control" "_All" "_.UNDO" "_End" "_.UNDO" "_Group") (setq ss (ssget "x" '((8 . "CHKDIM")))) (if ss (command "_.ERASE" ss "")) (setq ss (ssadd)) (mapcar '(lambda (en / ent) (setq ent (entget en '("*")) ent (subst '(8 . "CHKDIM") (assoc 8 ent) ent) ent (subst (cons 1 (strcat (cdr (assoc 1 ent)) " [<>]")) (assoc 1 ent) ent ) ) (entmake ent) (ssadd (entlast) ss) ) enlist ) (command "_.DIM" "_UPDATE" ss "" "Exit") (command "_.LAYER" "_Thaw" "CHKDIM" "_Set" "CHKDIM" "_Freeze" "~CHKDIM" "" ) (command "_.ZOOM" "_Extents") (command "_.UNDO" "_End") (princ "\nType LRES to restore previous layer settings.") ) (princ "\nNo altered dimension texts found. ") ) (sysvar osys) (setq *error* oerr) (princ) ) ;;; C:LRES ;;; ;;; (C)1997, Christoph Candido, A-1070 Vienna ;;; ;;; Restores layer settings saved in the global variable ;;; *CHKDIM_LAYLIST*. ;;; (defun C:LRES (/ *lres_err* osys oerr ss) (defun *lres_err* (s) (sysvar osys) (setq *error* oerr) (princ) ) (if *CHKDIM_LAYLIST* (progn (setq osys (sysvar '(("CMDECHO" 0)("EXPERT" 1))) oerr *error* *error* *lres_err* ) (setq ss (ssget "x" '((8 . "CHKDIM")))) (if ss (command "_.ERASE" ss "")) (layres *CHKDIM_LAYLIST*) (setq *CHKDIM_LAYLIST* nil) (sysvar osys) (setq *error* oerr) ) (princ "\nNo layer settings to restore.") ) (princ) ) ;;; STRSTR -- Scans a string for the occurrence of a given substring. ;;; ;;; If neither argument is a string, *ERRORNO* is set to -1 ;;; and nil is returned. ;;; ;;; (C) Copyright 1990, 1991 by Autodesk, Inc. ;;; (defun strstr (_$s1 _$s2 / _$j _$sl _$sl2) (setq *ERRORNO* nil) (if (and (= (type _$s1) 'STR) (= (type _$s2) 'STR) ) (progn (setq _$j 0 _$sl (strlen _$s1) _$sl2 (strlen _$s2) ) (while (< _$j _$sl) (if (= (substr _$s1 (setq _$j (1+ _$j)) 1) (substr _$s2 1 1) ) (if (= (substr _$s1 _$j _$sl2) _$s2) (progn (setq _$s1 (substr _$s1 _$j)) (setq _$j _$sl) _$s1 ) ) ) ) ) (progn (setq *ERRORNO* -1) nil ) ) ) ;;; LAYSAVE ;;; ;;; (C)1997, Christoph Candido, A-1070 Vienna ;;; ;;; Save layer settings, use LAYRES to restore. ;;; (defun laysave (/ ll lay color name flags) (setq ll (list (getvar "CLAYER"))) (setq lay (tblnext "layer" T)) (while lay (setq ll (cons (list "_Color" (itoa (abs (setq color (cdr (assoc 62 lay))))) (setq name (cdr (assoc 2 lay))) "_Ltype" (cdr (assoc 6 lay)) name (if (= 1 (logand 1 (setq flags (cdr (assoc 70 lay))))) "_Freeze" "_Thaw" ) name (if (= 4 (logand 4 flags)) "_Lock" "_Unlock") name (if (minusp color) "_OFF" "_ON") name ) ll ) lay (tblnext "LAYER") ) ) (reverse ll) ) ;;; LAYRES ;;; ;;; (C)1997, Christoph Candido, A-1070 Vienna ;;; ;;; Restore layer settings saved by LAYSAVE. ;;; (defun layres (ll / clay) (setq clay (car ll) ll (cdr ll) ) (command "_.LAYER" "_Thaw" clay "_Set" clay) (foreach n ll (apply 'command n)) (command "") (princ) ) ;;; SYSVAR ;;; ;;; Set and restore system variables. ;;; (defun sysvar (l) (mapcar '(lambda (x / var val vlist) (setq var (if (listp x) (car x) x) val (if (listp x) (eval (cadr x)) nil) vlist (list var (getvar var)) ) (if val (setvar var val)) vlist ) l ) ) (princ "\n****************************************") (princ "\n (c)1997 Christoph Candido, A-1070 Wien") (princ "\n E-Mail: [email protected]") (princ "\n****************************************") (princ "\nCHKDIM ...global check dimension texts. ") (princ) Верните архитекторам их чертеж с указанием отредактитованных размеров и служебным письмом-дескать, работать с вашими основами невозможно, или пусть заказчик платит другие деньги за счет нарадивых. |
|||
|
||||
Moderator
архитектор Регистрация: 21.08.2003
Москва
Сообщений: 3,587
|
Цитата:
А всё дело в том, что никто и слыхом не слыхивал про ГОСТ 28984-91 "Модульная координация размеров в строительстве". В нём, в частности, написано что точность в 1мм, или 1/100 основного модуля, принимается по всем измерениям в пределах до 20мм А это возможно, насколько мне представляется, только в каких-то мелких металлических закладных деталях, когда же такие размеры всплывают на монолите, это наводит на размышления... Намекните, авось поймут... |
|||