Прескочи към основното съдържание Прескочи към навигацията

Как да се оразмери полилиния?

AutoCAD Формула AutoCAD
Как може да се оразмери полилиния с множество чупки, така че да имам разстоянията между vertex точките? Става въпрос за оразмеряване на водопроводно трасе с няколко клона и множество чупки. Идеята ми е да не го правя поотделно за всеки сегмент.
;; ============================================================ ;;
;; ;;
;; PDIM.LSP - This lisp for dimensioning of several ;;
;; LwPolylines simultaneously. The program works ;;
;; with current dimensional style. The distance of ;;
;; the dimensional text from a polyline is equal ;;
;; to multiplication of height of the dimensional ;;
;; text (DIMTEXT system variable) on a variable ;;
;; 'tOff'. You can change value of 'tOff' in the ;;
;; program beginning, after note. ;;
;; ;;
;; ============================================================ ;;
;; ;;
;; Command(s) to call: PDIM ;;
;; ;;
;; Select LwPolylines and press Enter. ;;
;; ;;
;; ============================================================ ;;
;; ;;
;; THIS PROGRAM AND PARTS OF IT MAY REPRODUCED BY ANY METHOD ;;
;; ON ANY MEDIUM FOR ANY REASON. YOU CAN USE OR MODIFY THIS ;;
;; PROGRAM OR PARTS OF IT ABSOLUTELY FREE. ;;
;; ;;
;; THIS PROGRAM PROVIDES THIS PROGRAM 'AS IS' WITH ALL FAULTS ;;
;; AND SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;;
;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. ;;
;; ;;
;; ============================================================ ;;
;; ;;
;; V1.2, 9th Okt 2008, Riga, Latvia ;;
;; © Aleksandr Smirnov (ASMI) ;;
;; For AutoCAD 2000 - 2008 (isn't tested in a next versions) ;;
;; ;;
;; https://www.asmitools.com ;;
;; ;;
;; ============================================================ ;;

(defun c:pdim(/ tOff plSet pLlst vLst oldDss cAng cDis cPt)

; NOTE
;
; The distance of the text from a LwPolyline line is equal
; of multiplication of system variable 'DIMTXT' (height of
; the dimensional text) on a variable 'tOff'. Change this
; variable for change this distance.

(setq tOff 1.0)

(princ "\n<<< Select LwPolyline for dimensioning >>> ")
(if(setq plSet(ssget '((0 . "LWPOLYLINE"))))
(progn
(setq pLlst(vl-remove-if 'listp
(mapcar 'cadr(ssnamex plSet)))
oldDss(getvar "DIMASSOC")
); end if
(setvar "CMDECHO" 0)
(command "_.undo" "_be")
(setvar "DIMASSOC" 2)
(foreach pl pLlst
(setq vLst(mapcar '(lambda(x)
(trans x 0 1))(mapcar 'cdr
(vl-remove-if-not
'(lambda(x)(= 10(car x)))(entget pl))))
); end setq
(if(equal '(70 . 1)(assoc 70(entget pl)))
(setq vLst(append vLst(list(car vLst))))
); end if
(while(< 1(length vLst))
(setq cAng(angle(car vLst)(cadr vLst))
cDis(/(distance(car vLst)(cadr vLst))2))
(if(>=(caar vLst)(caadr vLst))
(setq cAng(- cAng pi))
); end if
(setq cPt(polar
(polar(car vLst)cAng cDis)
(+ cAng(* 0.5 pi))(* 1.0(getvar "DIMTXT")))
); end setq
(command "_.dimaligned" "_end" (car vLst)
"_end" (cadr vLst) "_none" cPt)
(setq vLst(cdr vLst))
); end while
); end foreach
(setvar "DIMASSOC" oldDss)
(command "_.undo" "_e")
(setvar "CMDECHO" 1)
); end progn
); end if
(princ)
); end of c:pdim

(princ "\n*** Type PDIM for multiple LwPolyline dimensioning *** ")

Здравейте, интересен лисп. Не съм експерт в програмирането (може да се каже, че съм начинаеща), бих искала така да променя файла, че разстоянието между полилинията и оразмерителните линии да е по-голямо. Мисля, че разковничето е в стойността на toff (setq tOff 1.0), тъй като забелязвам, че ако текстът ми е с височина 2 единици, то и отстоянието на дименсиите от полилинията също е 2 единици. Моля за съдействие!

Здравей, Венета.

Как ще изглежда котировката от този лисп зависи от настройките на текущия стил на котировката в момента на ползване на лиспа - снимка 1 позиция 1.

Екранна снимка от форума

Т.е. настройките на активни стил ще са меродавни за цялата визия на котировката която правиш на база на този лисп.

Надявам се да съм бил полезен с отговора.

Не мога да разбера коя настройка на активния стил трябва да променя. [1] Текстът е с височина 2,4 и разстоянието е 2,4 единици, [2] текстът е с височина 1, а разстоянието остана 2,4 единици? Екранна снимка от форума

Изпиши в командния ред DIMTXT и задай стойността която искаш за разстояние между корировката и линията за която правиш котировка.Например DIMTXT и задай 5 .

Супер, всичко е "6" ;)


Вашият отговор

Запиши се в Аула

или
Вашият имейл е защитен при нас.