|
|
Upload
| >> Mô tả tóm tắt nội dung file: |
Bộ AutoLISP chiến đấu Do kts. Trần Ngọc Thắng TỰ BIÊN SOẠN + SƯU TẦM dùng được cho AutoCAD Version Hight : Bổn CỐC CHỦ TUYỆT TÌNH CỐC : Ngưỡng mộ Long Cô Nương phái Cổ MỘ : Chờ Chết Sắp Sẵn Quan Tài Trong Mộ ĐÓ _-_-_ ^ _-_-_ Dại Gì Mà Chuyển Nhỡ Mai Này Tôi Chết Còn Có Cái Mà Dùng . . . Năm Nay Tôi Gặp Tuổi Hạn 49 tuổi . Các Cụ Nói 49 chưa qua 53 đã tới . . . Bó Tay Các Bác Luôn . . . Mà Xem Sách Các Thầy PHÁN TÔI RẰNG tôi thọ chỉ có 68 tuổi là tôi chết . . . còn những 19 năm nữa tôi mới đến số tuổi chết . . . Cũng Lâu Đấy Chứ các Bác ./. Chuyện Mã Lương vẽ giỏi đẹp . . . Được ông Bụt hay ông Tiên tặng cho cây Bút Thần : ông Dặn Mã Lương hãy vẽ Giúp Người Nghèo . . . LỆNH VẼ KHUNG TÊN ~ Tiêu Diệt Lệnh : Lệnh Xé Xác thằng Bé Ra Làm 100 Mảnh : Uống Máu - Ăn Gan : Mới Hả Giận |
| >> Tác giả: |
kiến trúc sư . Trần Ngọc Thắng [ đổi đường dẫn đến thư mục chứa LISP ngắn đi nếu dài quá không đọc được ] |
| >> Loại file: |
word Ảnh (jpg, png..) Khác (Nếu file nén thì hãy cho biết loại file gốc trước khi được nén.) |
| >> Link Files trên web khác (nếu có): |
https://www.cadviet.com/forum/topic |
- ********************************************************************************6 I+ W1 G! }' k' l5 ?+ O
- * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *
. G* n& j+ z+ h4 ^ - * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *$ k' E; t( {0 \( \5 |
- * Suu tam & Soan *. W7 V; h3 ~: J# C2 n( ]
- ********************************************************************************
0 v' k5 D! k; `
0 _* r4 v9 \4 R; y# [- ; Next available MSG number is 104
2 i* h2 x) N3 W1 |) `: t - ; MODULE_ID ACAD2000doc_LSP_- T1 m' x5 `0 w" m" I- H& M$ \ p
- ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 2000
& ~; z. }, K3 [ [6 m$ P9 ^( _ - ;;;
: J/ b- A; j* L1 q - ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.
+ {2 I D7 B- R& j" w' O* _! Y" F) p - ;;;7 v6 n; Z8 \/ |
- ;;; Permission to use, copy, modify, and distribute this software7 g$ j6 R; I% ?2 L/ b# E
- ;;; for any purpose and without fee is hereby granted, provided; y+ ^# k* f p a6 S
- ;;; that the above copyright notice appears in all copies and l: I' U, u- R0 _' F. s% e2 P
- ;;; that both that copyright notice and the limited warranty and
% i+ U3 x2 l I) `3 z - ;;; restricted rights notice below appear in all supporting
5 w: v/ d) N8 W5 @ - ;;; documentation.
* T* h- w" J2 k# e9 U% e - ;;;
, G; `& C, n5 N9 y! i3 u - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.; G7 u- \! ~; s, N
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
: S, i0 n4 P+ t3 ^ - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
5 B! V* @" ^0 Z& l - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE4 z0 u: n* n" b7 G
- ;;; UNINTERRUPTED OR ERROR FREE.) W) `7 [8 ?; e5 c0 I) |
- ;;;) d4 s( z. G! f) f1 Q1 t! F
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
6 i" c. H6 b) s! |& h6 O1 o+ H - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer. z n. {% C9 Z" b* d: X
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) ; x* o+ M! K% W" J: A) L
- ;;; (Rights in Technical Data and Computer Software), as applicable.# e5 {# y/ B6 X7 _# l3 f% D4 F" T( X. ]
- ;;;, p$ {8 M! i1 e/ f" f8 y( U0 c
- ;;;.
9 y$ z5 Z9 v. \3 @) F+ d - ;;;
3 t$ V9 h, ~. U% W% S - ;;; Note:" n8 M% H `: F. j( |/ ~/ c
- ;;; This file is loaded automatically by AutoCAD every time
8 i" F/ d* r- o - ;;; a drawing is opened. It establishes an autoloader and) a5 I2 ^7 M i- g
- ;;; other utility functions.
; w8 \1 n; j& L6 V9 u4 u9 d - ;;;
; B- \& m2 X+ D9 C - ;;; Globalization Note: " p7 d0 A2 V# U, a
- ;;; We do not support autoloading applications by the native
. x. c: a* p N# d, F8 ]* _6 ]( z - ;;; language command call (e.g. with the leading underscore
( _( t' `, o6 e/ y - ;;; mechanism.)2 [' e( @3 P$ q) i* a7 \* L6 ]
9 e! l$ ]7 g* t- 8 U) l& O" F$ p: [# t- Z
- ;;;===== Raster Image Support for Clipboard Paste Special =====
$ e6 Q" u2 Z# Z$ ` - ;;
, Q) b( k _+ |% H3 N% u5 Y - ;; IMAGEFILE
) u8 F% X6 K5 r* ] - ;;
2 t' }( W$ o$ M, s5 p0 \" R! k - ;; Allow the IMAGE command to accept an image file name without6 E. s' ~: K. W7 s4 H
- ;; presenting the file dialog, even if filedia is on.
6 A; u+ u5 |: U" J s7 J6 \( a* I( K - ;; Example: (imagefile "c:/images/house.bmp")& o7 w8 ]" H7 T8 E8 { U
- ;;
8 v, F$ @) Q$ I' Z* M1 C( B - (defun imagefile (filename / filedia-save cmdecho-save), B' P! S: H, S5 e
- (setq filedia-save (getvar "FILEDIA"))
5 Q" i$ [- n$ w* K( l - (setq cmdecho-save (getvar "CMDECHO"))
+ m. ~# V$ O* ?1 s3 j! g3 F i - (setvar "FILEDIA" 0)
" y9 a% ^# D: u+ ?& f: N( _: g - (setvar "CMDECHO" 0)3 X0 s- b( B" t* m q
- (command "_.-image" "_attach" filename)& A5 G3 \& L% J: \. C
- (setvar "FILEDIA" filedia-save)+ K) U$ V& L2 I* O* ^" D$ Q0 }7 N
- (setvar "CMDECHO" cmdecho-save)
$ y# O5 B3 ?7 n6 N$ d: W - (princ)2 I9 @' d% a5 S2 I+ ^' A8 q
- )* i/ T+ L. W) w/ r) M
0 J* [& o0 @# T! ^) ~8 O0 m" H- m- (defun c:zx () (command "zoom" ".5x"))
; d" d* _* b3 S/ H1 z' p0 _ - (defun c:zz () (command "zoom" "p"))" |; r8 n3 p w+ _' j! L- n. [3 z
- (defun c:za () (command "zoom" "a"))1 j8 D) j5 [( h; i* L; y
- (defun c:zd () (command "zoom" "d"))" K+ n8 Q& K% p9 ^. f, {
- (defun c:ze () (command "zoom" "e"))
4 h: t% ~, w/ x - (defun c:zr () (command "zoom" "" ""))
# i8 r+ \' q- C4 S) J9 D - (defun c:vv () (command "ucs" "v"))
% ?5 l! C- `/ p/ x& V' e - (defun c:co () (ssget) (command "copy" "p" "" "m")) O1 P" K8 F w5 o* D+ T
- (defun c:c () (command "circle"))* X# ?- \" G# e; ~8 d
- (defun c:rt () (command "rotate"))( l( _2 E3 a0 t+ H7 X
- (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))3 k) `# y" S3 P; e1 m, R
- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))5 \( R/ t% F A: a7 f
- (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
! `& V. ^, L+ [ j' ~ - (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
$ N0 p4 H7 D3 M. m% y+ ~+ O - (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))
/ w0 \ n( Y9 F! t - (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))
/ F1 @4 }) p% s0 K# N3 [' x5 ~4 h3 ^# v - (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60")): |2 X' ^' J8 n9 d4 v$ [
- (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
, j. L# y: f" N+ j' s) n6 c - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))& n Z# N6 b( Y# d( G. N
- (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))% o& m& z0 ^7 b$ e: ]/ A
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90")): R. ?/ v+ _/ r, o! M) X
- (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y")) l! {- c$ M+ e0 l% ~
- (defun c:fd () (command "find" "p" "" )(princ))(princ)
* H1 }* f7 Q% w( l/ g: s+ W' E" l2 P+ o - 7 j+ ?/ E& [# D$ L8 e Y2 _
- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)1 X% v6 Y Z) P! ]1 [& v& W$ t
- (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)
; l+ X7 y, ~4 _2 L- e6 y - (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ)
}4 |; t6 T `, v4 N' g* \ - (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ)' X. H& v- T. t. Q6 ?; V
- (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))# |3 d$ k$ e" J/ G+ u
- (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n"))
! O }9 b4 g# e! a, d/ g - (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n"))9 I" o3 X( l! d8 b
- 7 B: x& v0 W% l# v; i, g& o
- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))$ d6 K7 Q0 L' E
- (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))
' D7 e: n2 Z" o* s6 X - (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))5 P4 I9 W- n# u- Z
- (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n"))
8 i+ K# J9 j% I1 e! Z' j8 p - (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n"))
+ b+ M+ Z$ m J/ `8 P/ f - (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))0 @( L- K6 s+ L D: `2 s
- 7 x# O3 i! k8 G( K$ _. B; j
- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file
' ~, [ i5 F0 i - / D0 T6 r% y; s: Y
- ;free lisp by cadviet,cd2k44
" G1 ?. c' j2 b) _& |8 S/ p - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538302 G. Y$ F4 F4 X/ _4 q
- (defun c:FTEXT (/ ent tstyle ). s- M& L* u1 |- w
- (command "undo" "be")
z7 w1 p# _6 _$ O4 ? - (setq ent (entsel "\n Pick text :"))7 l" P) q# y l g2 u
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))2 n+ T) m" c% U( x: m2 c
- (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")* `+ l: {; p) r6 ~. o
- (setvar "TEXTSTYLE" Tstyle)
. `, L1 j0 q9 J2 h1 q D/ ^! x$ P - (command "undo" "end")
! L$ c2 Q1 M7 B1 f2 g1 J% H - )) s( u1 }* Z" O1 W$ \" W
- ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)
8 s1 L3 X! h! a( K - 3 `4 H6 P5 c$ @# t p; _: K' ?
- ;free lisp by cadviet,cd2k44
0 Y8 V9 V- h9 g& K# f5 G7 T - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
. R+ w! f: w+ N - (defun c:Fvnh (/ ent tstyle )
$ Q) j* ]. n& b6 `7 Z7 I _& \ - (command "undo" "be")) w7 U6 S% c4 Z2 u
- (setq ent (entsel "\n Pick text :"))
' L6 G* t) Q* g7 T8 j1 [4 Q9 }3 M - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))2 r/ K+ X* i2 z+ H L J/ d
- (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")1 u/ |( }% r1 e" C" _& c, C4 U+ I* I
- (setvar "TEXTSTYLE" Tstyle). O9 A \; t0 y4 h! c$ c6 u- h
- (command "undo" "end")
g* T& B) D3 q) W; @ - )( _' i* @0 c- q$ M# \
2 B; t$ j, c9 B$ }7 S- ;free lisp by cadviet,cd2k44% G5 a3 u# \3 R
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830$ V [: r' _; G
- (defun c:Chbg (/ ent tstyle )
: O: Q& D+ H. x& [0 Z - (command "undo" "be")+ V) v3 `! r* g6 ~1 [& S* t
- (setq ent (entsel "\n Pick text :")); B0 H6 u- ?6 Z0 k, m9 ?( H: z
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
2 } k. P. B3 F8 w3 s R2 k; B - (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n") ?( l$ x+ P+ `) z. L
- (setvar "TEXTSTYLE" Tstyle)
3 D8 Q: b* `) `" e" Z5 T( J - (command "undo" "end")+ A1 a5 @" L1 L5 I8 C# I
- )7 w3 W2 Q/ m1 E) Z. ^0 H' c
- 2 r! n! L3 \, b% D( A
- ;free lisp by cadviet,cd2k447 d, u3 t9 C$ H$ k
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
k5 w7 @& T8 T" @4 N - (defun c:Chsm (/ ent tstyle )
; T* U4 {: g. n) z. W - (command "undo" "be")
1 P" F' \) c2 k7 } v7 y0 t5 X9 l# \ - (setq ent (entsel "\n Pick text :"))0 [4 _# S O5 p/ E6 V3 B4 M$ l
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
+ e* g# G! `8 ^" \, K; Q# y - (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
) k+ [: n2 j3 e3 J$ I - (setvar "TEXTSTYLE" Tstyle)8 N8 j- x; \3 i0 ]: z4 u/ W
- (command "undo" "end")6 D( f% j, a2 d- i
- ) T) \2 a1 H" O3 h: T& u5 c5 ?
- 8 N$ t; b1 i; r; @4 V" k
- ;free lisp by cadviet,cd2k44
% p9 Q! ^3 L$ l+ o - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538302 S' ^, m& z2 W% o6 t
- (defun c:Fttf (/ ent tstyle )
q, Q. ^/ y" r - (command "undo" "be")$ }) J- P8 N7 I* U# A
- (setq ent (entsel "\n Pick text :"))4 P+ L+ P" q- i I! ^
- (setq TSTYLE (cdr (assoc 7 (entget (car ent))))); a0 ^# ?. f1 m" d( v7 ~, D7 t
- (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n")$ V. E2 H1 h$ T. }% C5 D
- (setvar "TEXTSTYLE" Tstyle)2 l- L% X* @% I4 M
- (command "undo" "end"), F/ h/ S+ J( X3 i. B, b
- )
+ Q- z" m- o0 S: c - 9 i7 O s* Q; E# E" A
- ;;; ============================================3 ]# P, d) @6 I" L( i' w$ ]
- ;;;! x. r8 x# {% m$ d% e2 ]8 ?
- ;;; LISP Creater Tao Duong Dan AUTOCAD2000
& X, s8 E3 q* D( y/ N - ;;;
# {1 r5 a' j8 F) f7 \2 i - ;;; ============================================! o! D. r. w' o/ \* k7 L! }3 O' l: k$ K k
- 8 w _; Z$ ~" P/ W0 o1 _
- ;;; ============================================
" l" F% B- m- B0 D" ?/ q - ;;;
& a: d- f' K' i( b9 C) B - ;;; CREATING FROM AUTOCAD2000+ F5 T, i) S, u* h
- ;;;
* E1 v/ V3 r& ~+ z' O7 g7 } - ;;; ============================================, ^0 o. T, n: N7 B6 q% }
- a5 ~7 ]* Z/ R, X1 s2 y9 `
- (setvar "INSUNITS"4)
4 G& Y6 A& I) g. W$ u. }- K4 S8 { - (setvar "ANGBASE"0)7 z2 i( K' o7 q# T4 r, V) U G" }9 t
- (setvar "ANGDIR"0)$ |+ X( R% f& ^
- (setvar "AUNITS"0)
6 H7 F1 @/ ^7 h/ z( _7 l - (setvar "AUPREC"8)
( Z- B' Q) O6 [" l9 W5 Q - (setvar "LUNITS"2)0 T( H K) Z2 [$ h" {/ l+ |
- (setvar "LUPREC"8)6 C" @/ y `; _1 c4 h5 Q5 ^
- (setvar "ACADLSPASDOC"1) 8 U+ _3 I s6 B K$ e
- (setvar "pickbox"5)
4 _. E" m, L; q4 D" G: G - (setvar "blipmode"0); |& S8 _/ i+ _$ T
- (setvar "mirrtext"0)6 j+ K. o1 Z) o1 H& \. N
- (setvar "cursorsize"100). C, S# w& u! T/ W
- (setvar "ZOOMFACTOR"75)
1 O. B6 \$ G2 T! |* J9 p( Z! U - (setvar "LTSCALE" 10)- n4 o. [' H/ f: Q
- (setvar "lwunits"1)
2 |9 j$ W" z; e, p - (setvar "DIMBLK" "Closed")/ F, N. R$ v/ Q, B/ V s
- (setvar "DIMGAP"0.0693)7 i; ]) a6 u/ ^- }, A+ o
- (setvar "DIMASZ"0.20)( Y6 P- Q' ]2 X. U. @
- (setvar "DIMCEN"0.2) i/ |: F! ^- W* Q
- (setvar "DIMDLI"0.1)$ F8 l8 G0 g! n
- (setvar "DIMEXE"0.0693) ^9 Y7 x* ~8 K5 y2 U/ A
- (setvar "DIMEXO"0.25)
4 i! S+ E: r" f& |7 c' s& ] - (setvar "DIMDEC"0)
, Q! Y4 j+ T6 ^6 c! _4 E - (setvar "DIMTIX" 1)5 U. c( l9 _! h$ Y( q
- (setvar "DIMTXT" 0.099)
) w: \4 ?% |7 w; p) p* ]; a - (setvar "DIMCLRT" 7)' y9 v8 E& B. D. B: H; u
- (setvar "DIMTVP" 1)
7 v6 J1 J2 M' N. T' L - (setvar "DIMJUST" 0)# d0 n" Z, G" N3 a c6 p+ M
- (setvar "DIMTIH" 0)
( J t( \, a- n3 M* G) F - (setvar "DIMTOFL" 1)' `! C: [* {$ y! q
- (setvar "DIMSCALE" 1111.1111)
- u; L0 f, S7 e! U& }2 Q, T
' m5 B* O& j* e, _3 R" R& V: q- 3 X+ q7 M* f3 @0 s4 D
- 3 p" T; G! D S2 ^
- (defun c:zp () (command "'.zoom" "p"))2 O* ^, {3 u( o$ i# q8 P1 ^
- (defun c:zz () (command "'.zoom" "p"))0 S! |+ X' x2 N* i7 i8 H' H
- (defun c:ze () (command "'.zoom" "e"))) d4 R' |% ]2 c3 C2 \! A
- (defun c:za () (command "'.zoom" "a")): n8 ^! l! q6 E/ Z+ A2 D6 d
- (defun c:zd () (command "'.zoom" "d"))
0 R" i( e% j7 b3 c - (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))+ U8 X2 p7 b' _* _; C
- (DEFUN C:ZX () (COMMAND "ZOOM" "2X"))
3 I; X0 x- l; L3 q6 V3 [ - (defun c:de () (command "ddedit")(princ))# B" A7 h3 U$ Y/ i, {2 N1 R' V8 ~
- (defun c:dda () (command "Dimaligned"))/ t: d6 S; H& A% P' Y7 p! q6 t
- (defun c:ddb () (command "Dimabaseline"))
4 s ~* N) M _/ d - (defun c:ddc () (command "Dimcontinue"))- b7 g" }' r0 }
- (defun c:dde () (command "Dimtedit"))
3 B& C3 \; N0 e - (defun c:ddf () (command "Ddattdef"))
1 K- g# B2 e+ Y; ^- K - (defun c:ddi () (command "Dimdiameter"))) h1 p; j# N: o9 P
- (defun c:ddl () (command "Dimlinear"))
: z1 ?7 q/ V# p% F) i* y: k8 K - (defun c:ddn () (command "Dimangular"))6 N4 _) r1 S; m: G1 ~/ ~/ Z
- (defun c:ddo () (command "Dimordinate"))& [! q T. C" F* Q' P" _2 _( z) N
- (defun c:ddr () (command "Dimradius"))
$ H) f$ k! @ }4 w8 I/ u - (defun c:dds () (command "Dimstyle"))2 f! N: T' M1 J- s
6 c5 M9 W3 ^+ T7 H, I1 g6 Z- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ)$ D3 R. K/ G7 g5 g" l1 `
- (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ)
' `( W J( @' I* H - (defun c:UU () (command "dim1""update""all")); [- B% m# k+ k. r2 R: K4 y
- (defun c:ded() (command "dim1""tedit"))3 m6 ]/ }" x7 @( A8 C8 C- U: V
- (defun c:da () (command "dim1""ali"))
) ?3 e# p4 Z9 ^) @6 n. a2 O- g - (defun c:dll() (command "dim1""l"))5 ]1 E8 a% W- v- X' y5 v! c( a
- (defun c:dan() (command "dim1""an"))7 W& F- l2 @& F5 Q$ r) \+ d
- (defun c:d1 () (command "dim1""ra"))+ W3 ]) F- {' l( ]( \8 r+ i
- (defun c:n () (command "dim1""new"))
+ R9 S( r! `0 u
' {" W8 B' _' Y& U4 l4 ~8 m- (DEFUN C:PE () (COMMAND "PEDIT"))5 k$ h" c, g' H! t! r& U
- (DEFUN C:PL () (COMMAND "PLINE"))
; Y4 n) [% `" r' \5 m7 ]& x( J - (defun c:dd () (command "dist")(princ))1 D- I+ g/ v P
- (defun c:w () (command "pedit" pause "w" "au")(princ))$ S0 M+ Z; I9 t$ F& q' k' F9 K
- (defun c:pg () (command "polygon" "polygon"))
) h2 t% e, b2 @$ x+ X/ t - (defun c:el () (command "ellipse"))
; ^" N6 s- ~' R) y# `* | - (defun c:xe () (command "explode"))
+ H7 {; A( H% P+ x& E - (defun c:eex () (command "extrude"))" t8 @4 p. \1 J: F$ e' u w. n
- (defun c:xg () (command "xline""a"))5 z% V. L1 Y7 x5 h" b/ y5 r1 X3 \
- (defun c:xh () (command "xline""h"))% g0 I9 F$ Q4 m
- (defun c:xv () (command "xline""v"))/ M/ ~7 l. r7 s# ]2 r
3 w' x8 s2 A& S0 F; M- (defun c:oc () (command "osnap""cen"))
* u2 H7 @4 \; L2 ?' h0 J } - (defun c:od () (command "osnap""nod"))
" h/ N/ p) \6 m. _5 [! r4 m* g/ \ - (defun c:oe () (command "osnap""end"))7 \. p5 S1 X2 l- g2 B4 |7 }$ r
- (defun c:oi () (command "osnap""int"))1 [4 A7 |* X. e6 c- ?, O
- (defun c:or () (command "osnap""per"))
0 T9 h/ y' H. ^& ?0 u - (defun c:on () (command "osnap""none"))- t" F' T/ V6 h/ T" t
- (defun c:oq () (command "osnap""qua"))
' v) @+ b' w ?3 t& t! R$ p - (defun c:om () (command "osnap""mid"))8 V7 A3 I0 v+ p/ L0 Y) @
- (defun c:ot () (command "osnap""tan"))
6 b; S) V% `, _& N) n' A s - (defun c:oin () (command "osnap""ins")); R4 a( \: f6 X9 d, j; D# D
- (defun c:oa () (command "osnap""nea"))
& C q E5 `- S% [+ n [9 ` - (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))
' G% @0 ^5 T' u - ;(defun c:du () (command "dim1" "up" "s" "pick" "other"))6 y# T$ g# b3 k J# _
- ;(defun c:nn () (command "new" "y" ))! G, `: D" T% h7 y* h+ |& _
! i4 K! m6 F+ q$ |) d& y& P- (defun c:/ () (command "limits"))1 \3 x: F* a; |" B3 Y( J5 B1 g2 X
- (defun c:`1 () (command "region"))
; X& s0 S; R: i7 {% o/ q5 K - (defun c:`2 () (command "subtract"))
% M& D, `$ E; ?/ n8 e8 {% [) i - (defun c:`3 () (command "union"))
! ?* O' l- R# q8 C3 e( [' T* u( x - (defun c:`4 () (command "intersect"))* r1 J* L2 T7 L" C
- (defun c:`c () (command "cal"))4 W. W5 c% e# d" R6 y" o
- (defun c:`g () (command "Polygon"))
+ q9 y! V ]$ q& ~( ]6 g$ ^
+ R# H+ Y$ C e- ^- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))9 v$ ?( k$ f2 W* e* p% P1 Q
- (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ))
3 t' v& ^6 Q% \( m6 v* a - (defun c:ip () (ssget) (command "print,_plot" ))(princ)
4 Z4 f* E0 ]- M6 N - 5 {( m1 `$ u* u- y
- (defun c:ddm () (command "ddlmodes" pause))/ J+ ^: F: R+ i) \
0 ~* _8 o) e/ C @. t" N- (defun c:sha () (command "shade" pause))
9 p B/ O! r! T
2 k6 A) M! y! @' i2 W% `3 V- (defun c:sr1 () (command "surftab1" "p" "" pause))
) D% \, D3 {# b- T3 o, V - (defun c:sr2 () (command "surftab2" "p" "" pause))" V' G8 K$ L0 x# B- y& \' i
; S& A: x+ Q' K9 e1 T- (defun c:ad () (command "audit""y"))
2 P" y* c+ Y3 \% T0 N$ V- V4 z - (defun c:q () (command "quit"))
8 v, g9 d# v4 o
% X. c' g1 X. _$ x. C' N0 i- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))+ n* S2 z. O) V" M6 p
- (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
. h! ]* U+ r" |) L- N$ d - (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))+ H) z! |6 | i3 @
- (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))6 T& ]" F5 d% S9 t
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))4 s: j; [7 R9 b. ^1 J
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))2 g; @. i6 t3 Z4 E3 b: w- ^
- (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
& ]/ o! K$ p& O9 i: w6 J) r u - (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
( U8 r: o% @( u) u; C7 S - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
$ I( w, F; C+ N V% \
/ p" m. }4 w5 Q! a8 s3 I- (defun c:u3 () (command "ucs""3"))( b# Q% B. U f- g" a4 X
- (defun c:ue () (command "ucs""o""end"))
) D7 y# C7 v+ u$ C9 e" v5 S# k) m - (defun c:ui () (command "ucs""o""int")): e& b7 X" t- o# A1 x6 t/ M2 U
- (defun c:um () (command "ucs""o""mid"))4 v+ w4 a! L& J8 f
- (defun c:uc () (command "ucs""o""cen")). z t3 N G& w% s& _
- (defun c:uq () (command "ucs""o""qua"))3 C7 \0 q' E3 ?2 Z
- (defun c:3s () (command "ucs""3"))
# m% R' k1 q4 ` - (defun c:sx () (command "ucs""s"))' R" [4 i* x8 H* m6 d0 X
- (defun c:sf () (command "ucs""o"))
- B! D& [: i$ t X) n6 [0 ?4 V. u - (defun c:sz () (command "ucs""p")). y) U, E% M) ^9 x. a# _# @0 x
- (defun c:sr () (command "ucs""r"))
& K. H' _- D8 Q+ e1 l+ S$ H - (defun c:sw () (command "ucs""w"))
) P& g3 m) m8 v: ~- n - (defun c:fv () (command "ucs""v"))
- x3 B+ h6 J, K8 T% C! O; |1 Z) ` - (defun c:ux () (command "ucs""x"))2 o0 V% W" N3 U0 R7 P! l
- (defun c:uux () (command "ucs""x""90"))/ |8 X+ \% e; |" f+ }
- (defun c:xxu () (command "ucs""x""-90"))0 `+ ?) p* k3 L) K$ p: {
- (defun c:uy () (command "ucs""y"))
2 c! [: R1 R/ t5 l# Q - (defun c:uuy () (command "ucs""y""90"))
5 ]" A9 g( o, N( P6 o9 ] - (defun c:yyu () (command "ucs""y""-90"))
! q9 Z& f2 s3 j) ?# l: z7 [+ n - (defun c:uz () (command "ucs""z"))0 R) @' x5 a8 r8 Z. W8 y8 V: ^/ b6 k1 h
- (defun c:uuz () (command "ucs""z""90"))
* p3 f1 q V8 s3 {; _+ h$ e2 g - (defun c:zzu () (command "ucs""z""-90"))
$ A( z8 G8 R( ?7 M - (defun c:uci () (command "ucsicon" "Properties" ))(princ)- B5 ]" C$ |3 K. P. G, d
- (defun c:ucm () (command "ucsman" ))(princ)- H7 l7 |+ O+ w$ _
8 q8 J- M) I& f6 c9 K4 Z- (defun c:sa () (command "vpoint""_non""-1,-1,1"))
$ |( C( x1 J4 S5 R$ m - (defun c:sd () (command "vpoint""_non""1,-1,1"))
( M8 e4 w( O$ D' q f( p/ C - (defun c:se () (command "vpoint""_non""1,1,1")) ^9 I. ~/ g8 G: H/ Q, Q1 d, u
- (defun c:sq () (command "vpoint""_non""-1,1,1"))$ g+ P! R! x+ D; a
- (defun c:vc () (command "plan"""))
) d K( H1 V8 J) H - (defun c:vd () (command "dview""all"))
' G6 F8 z1 a& H( x+ F5 U
# v Y& R7 F; ^" T: E- (defun c:TT0 () (command "tilemode""0"))
0 a S3 [: |/ Y7 {* k: z - (defun c:TT1 () (command "tilemode""1"))" U y# f6 y; X5 `/ ?
$ ]" C( V7 n: T1 D. ?5 n- (defun c:vt () (command "vpoint""_non""0,0,1"))6 }$ r3 j) H9 L
- (defun c:vb () (command "vpoint""_non""0,0,-1"))
7 W* \% e9 z5 x - (defun c:vl () (command "vpoint""_non""-1,0,0"))
. Z8 R. q0 K j3 K$ R* v - (defun c:vr () (command "vpoint""_non""1,0,0"))
1 I/ a+ R* D5 H - (defun c:vf () (command "vpoint""_non""0,-1,0"))# B6 w) k. r' ?: K& x/ v
- (defun c:vk () (command "vpoint""_non""0,1,0"))
2 t' A% F3 s" s% O9 W
. k, D5 x( F) ]2 D- (DEFUN C:MM () (COMMAND "MIRROR"))& I9 T2 C8 j! Q8 n
- (DEFUN C:MP () (COMMAND "MOVE" "P")) @- V7 ?% z* a" B
- . F6 A6 c' V9 \0 |/ V
- (defun c:mee (/ a)* o; f/ I+ P% s
- (setq a (ssget))(command "move"a"""end"pause"end"))* M- x$ y3 X! T
- (defun c:mc (/ a)
, q2 x' i( x" h" \ - (setq a (ssget))(command "move"a"""cen"pause"cen")) }# l9 n+ j3 @; p3 Z
- (defun c:cc (/ a)1 m4 Z7 [2 B+ c. X% O/ O
- (setq a (ssget))(command "copy"a"""m"))7 a7 a# P% D8 H4 T s% A+ P1 K
- (defun c:ce (/ a)8 r$ r2 @/ d& b1 m
- (setq a (ssget))(command "copy"a"""m""end"pause"end"))) k+ C0 w) E6 L/ x9 a, Y
- (defun c:cn (/ a)9 z; W' V/ A- L* v, d H0 T
- (setq a (ssget))(command "copy"a"""m""cen"pause"cen"))
; m* i# t" N4 {* z% W6 w - (defun c:tl ()(command "trim""l""")). s; b e+ H( L5 E
- (defun c:tf (/ a)) ?2 O( z* i3 U9 |. {
- (setq a (ssget))(command "trim"a"""f"))
3 D* r' S- a8 s) \$ \+ J - (defun c:el ()(command "extend""l"""))* u: I9 _7 o; c( ?& ]9 k
- (defun c:ef (/ a): y! B: P6 i& W. E
- (setq a (ssget))(command "extend"a"""f"))
. S+ ?0 Y: `- s3 C' E3 u: k
0 c5 D- f! Q% F% W. W- # j" z0 D- N1 k3 V- H
- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110"))% ]2 A2 R# b2 M/ ^3 U$ Y5 O v% x
- (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))* \* _$ e, E( c$ f% Y1 S4 ~7 t# g) Y
- (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330"))% \0 r7 ~3 a% o7 F( m. |1 e
- (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))( A& c7 F3 W. v# \
- (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55"))
- r+ R1 x2 Q" |7 } - (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600"))! {* {$ E) y4 `6 @6 G; u
- (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))- L2 c% x4 _) A+ D: ^ w2 W
- (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))
4 n7 p% A' s; }3 { - (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))% W! m+ r. P5 E, _% g5 z2 U
- (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))
7 {* @9 o+ D6 C( f; f - (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))% A4 `' J! y; z2 W8 E
- (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))
( _$ J2 Z/ w& [; v; ? - (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400")) c; L7 H( r+ O. q" U" @ w
- (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))
4 [1 {, d; l8 ^! G - (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))
( r: j c0 u4 ^) j5 w$ }) d - (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))
" l y- A: b, ^4 _; B' U - (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000")), _ h- o& p; d: c J+ F
4 y1 s* W) |! k7 X6 E- (defun c:mla () (command "-mledit""av"))4 k; _) H/ u& e7 U$ D
- (defun c:mlc () (command "-mledit""mc"))
; F; `; T1 _$ E. m- \$ G - (defun c:mld () (command "-mledit""dv"))
$ K5 b( G( @# V I0 B: P& A. _' P6 I - (defun c:mle () (command "mline""end"pause"end"))
- x. O( k, h7 @7 t - (defun c:mli () (command "-mledit""ca""int"pause"int"))6 N% e8 y: k) ?2 |0 e. y
- (defun c:mlj () (command "-mledit""cj")), n( K0 j6 ]1 J5 Q; y3 P5 e
- (defun c:mlt () (command "-mledit""mt"))' g, b4 [8 x7 L+ i; w
- (defun c:mlk () (command "-mledit""ca""end"pause"end"))
# D$ c# [/ R w% K; {) a7 W; ]4 G9 ? - (defun c:mlw () (command "-mledit""wa"))0 d) O p# J9 ^2 x# u% `
3 m G# r: V! b$ t( V8 O1 ]0 e: d- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA"))2 r& a; @; K$ m3 e6 Y0 y
- (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA"))
2 c1 v k6 y D: b w. g - (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO"))2 l `' E& W; n' c, `% Z# k1 O) q
- (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D"))
/ p( |$ `/ w% A' O# o - (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z"))
6 `' R% K, v: ^3 k0 X
* { W" q; f5 B. s+ V- (defun c:p0 () (command "pline""""w""0""0"))
+ R S/ Y5 K* c y! x+ k% l* U) o/ C - (defun c:ot () (command "offset""t"))
0 K0 Y4 i4 p: T) n5 n3 A - (defun c:t () (command "mtext"pause"j""bl""h"pause))( j* U ]/ h2 {7 ?8 x
- (defun c:uo () (command "ucs""ob"pause))
: P0 N% ]2 H/ G$ x - (defun c:f0 () (command "fillet""r""0"))
: ?: ?, @2 M/ y - (defun c:fr () (command "fillet""r")) y) d l D& f3 T* O
- ' b, P3 V2 V. U+ n, @
- ;CHAMFER0 q) ~+ A8 D5 {0 g2 M
- (defun c:cf () (command "chamfer")). E# R$ D+ {/ B- b0 v* q1 H
- (defun c:cfd () (command "chamfer" "d"))
+ e+ c8 a+ T& t+ S0 @9 T - (defun c:cf0 () (command "chamfer" "d" "0" ""))
2 [; {7 N9 }* k1 y
8 L( y' _5 f5 s) G- ;FILLET
) Q6 i, C! S& t/ o4 J - (defun c:f () (command "fillet"))
+ _ J, {6 Q: j# u5 y' j- a - (defun c:fr () (command "fillet" "r"))' F" ^0 a8 \3 C+ G/ F5 t" T4 C
- (defun c:f0 () (command "fillet" "r" "0"))
1 M) c' J+ Y! Z - & D. F# |+ E! w. R
- (defun c:OO () (command "oops"))* h% d: _, S3 A3 u/ F# }6 W, c: {
- (defun c:dln () (command "dimlinear"))' M$ A2 a" Q! n, i2 K! b+ T9 L
- (defun c:dan () (command "dimaligned"))! v3 H; o! p" Z7 P6 K
- (defun c:ddc () (command "dimcontinue"))
# g) L' w L; }: p: u( W
9 m; x& k A- P8 v- (defun c:sc () (command "scale" "auto"))
+ c8 z' f8 q) O4 a - (DEFUN C:XO () (COMMAND "snapang"))
7 j- B" V9 e! D8 h+ ] - (defun c:cc (/ a)
& p" @! f8 \* v( r% v; l - (setq a (ssget))(command "copy"a"""m"))
$ G4 f9 N& j# }6 Y; b9 H - & V9 L9 e) }% X- U5 H
- (defun c:PJ (/ a)* l; Q$ V6 J# ?) K: @' \7 P
- (setq a (ssget))(command "pedit"a"""j""all""y"))
) \7 P l' f R9 H6 Y) } - (defun c:JJ (/ a)
& Z0 o8 `& S+ q- V% p9 B: Q5 X - (setq a (ssget))(command "pedit"a"""j""y"))
8 p G& a# M: b3 N" k! b* X - (defun c:TN (/ a)/ m; y& m& }2 M" V2 ~
- (setq a (ssget))(command "change"a"""p""T"))
+ i- ?; W2 [1 d, E
7 b( u8 x+ T7 ]
2 u; b+ p8 v5 x5 b1 J2 f U( X- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD=========================3 r5 q$ O, N0 C$ _3 H
- W" ]' v- B; P
- (defun C:IB ()(setvar"cmdecho"1)- h ^. {& s2 e
- (setq pt(cadr(entsel"\nSelect Block:")))7 \, i* F3 Q& N) T3 w
- (setq e1(ssget pt)) ( a6 E+ h2 v7 p4 E: U) V9 A3 `
- (setq e2 (entget (ssname e1 0)))
5 k: [: s$ T. S2 Z& i3 j6 B- ?4 _ - (setq blname (cdr(assoc 2 e2)))
5 U+ k$ M% E8 K- p+ h - (setq oer *error* *error* err2)(command ".insert" blname))
' S$ ]4 |2 P0 r H8 b - & q7 [ G1 V6 n7 q5 j( o
- (defun c:II ()
; o: f6 I$ L/ o, s% `, E - (setvar "cmdecho" 0)7 U6 m- L7 w r# F* W c! |( l
- (setq olderr *error* *error* myerror)4 `3 ?& @# @- g/ z/ _
- (prompt "\nSelect objects: ")
$ q- f4 h4 X; I - (command "select" "au" pause)/ b Y8 s7 T7 b# n# s# u8 h% |; N
- (setq sstxt (ssget "p")8 F# Q% g! d$ O+ y B8 k
- sslen (sslength sstxt)- S) ~( m$ m4 Z2 v7 Y0 ~6 y
- ctr 0
( z9 N8 ]; |+ Z: ~" E* q8 `5 Z - )4 P% v( d1 q! @; D& ^% f/ @
- (command ".undo" "mark")6 o+ ^5 o" B! [5 E/ q! S: W
- (while (< ctr sslen)4 Q% V/ W7 S/ e/ X7 `2 A1 ^
- (setq listxt (entget (ssname sstxt ctr))* J5 O& A8 j4 q1 g" x0 A- h
- txttxt (cdr (assoc 1 listxt))
2 a2 |4 f4 a" q1 g$ @8 @6 _3 | - enttxt (cdr (assoc 0 listxt))$ `! j0 a9 V3 n Q* z
- )
! k3 R/ {% Z/ x! T* z- N5 A - (if (= enttxt "TEXT")
! y2 A9 Y# } t- }, } - (progn
/ R$ B3 @* m3 Z+ N - (setq testxt (substr txttxt 1 3))
9 b- w1 D, S. e4 k - (if (or (= testxt "%%C") (= testxt "%%C"))
& a+ I) w) R Z( m5 {6 j - (setq newtxt (substr txttxt 4))- M6 e+ ]0 b) a; M8 d! @3 F
- (setq newtxt (strcat "%%C" txttxt))
. P) a: R. K8 _* X- s; Q1 p) ]+ J - ). f7 ~4 \% Q: Y Y* D& u
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
/ O* ^ V2 H `4 A# } - (entmod listxt)' e4 m' ^! X1 Z9 _8 _* f) Q
- )
+ b; c8 p3 e1 o/ ]1 y3 M* v9 N - )+ u0 j9 ], c! v2 g2 f; E! Q
- (setq ctr (1+ ctr))
4 F; ~, S! s2 w - )
9 h; o" i2 R. c) V - (setq *error* olderr)* }; z2 d5 O) u i
- (setvar "cmdecho" 1)
6 e4 x) h8 F* K; m3 ~. F4 p - (princ)
. ], b% s& s' Q% I - )! D9 j2 L. {1 G$ O
4 j9 e9 W0 ]* Y7 s7 j+ P- (defun c:DG () g& h. J* h& d9 |
- (setvar "cmdecho" 0)* e% m/ |/ V/ g- E/ ~0 T: G$ P+ Y
- (setq olderr *error* *error* myerror) d' x W* B6 O/ V* i8 p3 _, X
- (prompt "\nSelect objects: ")/ i+ e# C2 v$ G. Q
- (command "select" "au" pause)
5 W3 {: _# m( a! { - (setq sstxt (ssget "p")* i+ ~) y" g# _ f( A7 r, j- \4 M
- sslen (sslength sstxt)+ P s( Q9 \( h) H( [8 g) X: M
- ctr 01 w" N! ~4 B5 | F
- )/ O c* |: b) h" H$ W- K
- (command ".undo" "mark")$ K$ ] W+ E, z% E. G
- (while (< ctr sslen)
% u" S8 S5 N3 |0 Z% X - (setq listxt (entget (ssname sstxt ctr)) u9 }( ]. [6 N7 W* ]
- txttxt (cdr (assoc 1 listxt))- y8 e d! k8 ?0 V: c
- enttxt (cdr (assoc 0 listxt))
' c8 W3 ]( |+ R @4 d - )
& o) S) w* v2 g" W( B - (if (= enttxt "TEXT")
3 w: \% _9 k- k9 L T" U1 v4 ? - (progn0 r; j: I$ f- K. }. ~
- (setq testxt (substr txttxt 1 3))
/ y% |$ q! T/ d4 ]* W - (if (or (= testxt "%%d") (= testxt "%%d"))
6 g& [. e9 M" E- i# n; a: ^6 @& q - (setq newtxt (substr txttxt 4))' t& n* f$ B- }# w6 |9 P5 g
- (setq newtxt (strcat txttxt "%%dC" )). g4 b& l* I" c+ ]% q2 @4 f& g
- )* _& ~9 w, o2 _! L4 o3 T) d
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
1 U: L/ C6 U# H0 R - (entmod listxt)7 H( l' L- O) L9 _: a, Y
- ), f [5 m; }! Z( n
- )* U# b% g! K5 [7 p2 A- \; r1 B: [
- (setq ctr (1+ ctr))
" |! r. {& V0 t) t - )5 ? z% M" Q }0 L) m% |0 P
- (setq *error* olderr)
, n1 T% G3 p v w3 A: C - (setvar "cmdecho" 1)
* g$ ?/ R: |/ Q- k d, @4 M# M - (princ)
# e' g" i/ s* v# q2 z - )
3 v+ z! D9 x: @7 @ - % R) c, q& {! g: G# z3 l1 v4 K
- (defun c:PI ()
7 O+ a' g) T4 R - (setvar "cmdecho" 0). L) p8 [5 b/ R/ O
- (setq olderr *error* *error* myerror)
# ?% `0 T, D7 c" s+ `( e0 [ - (prompt "\nSelect objects: ")+ ` i* V, O$ _! V/ b
- (command "select" "au" pause)
- Z! |8 z; p2 J) A1 q - (setq sstxt (ssget "p")5 P) l7 u( M2 T. b
- sslen (sslength sstxt)
, G6 K3 ?, n6 y# [ - ctr 0% o7 d1 ^7 S( ~8 h% V" z6 ~% m
- )' C) Q# C/ w9 o4 d
- (command ".undo" "mark") c+ w5 Z3 W7 }
- (while (< ctr sslen)" v$ w: A' Q1 z+ Z- I9 I
- (setq listxt (entget (ssname sstxt ctr))
2 x W. j2 R7 F$ g4 f- ^4 R" H e - txttxt (cdr (assoc 1 listxt))( u) ~2 C- n9 t
- enttxt (cdr (assoc 0 listxt))# G: a! a( w, s+ I6 K0 Z
- )" s3 x3 x+ v- a3 o: [' `# m
- (if (= enttxt "TEXT")
1 \, F6 \8 h+ g8 ^% O! m - (progn
# a3 |9 U: S* B) { - (setq testxt (substr txttxt 1 3))% n; B& z. N6 P! _! k: b* ^
- (if (or (= testxt "%%p") (= testxt "%%p"))
9 J( v s" Q$ i9 ~ K( O - (setq newtxt (substr txttxt 4))* _* y$ E4 \) u8 u
- (setq newtxt (strcat "%%p" txttxt))
6 y6 y8 U4 v4 {& l q3 ~ - )& F+ S% z( `$ a8 k& p
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
2 v- L, n5 V8 r - (entmod listxt)) b/ f. F6 t7 V" _3 b
- )
5 ^: H8 A) P* @ - )
) o8 b% Q- z' ]$ B1 {' |8 O - (setq ctr (1+ ctr))
8 q$ z" ?# C6 B. N8 n# I8 f$ u) k- n - )
: C+ U0 r' ]: q" g' ^. M - (setq *error* olderr)! s+ j" d% N) E" D+ u7 a; S
- (setvar "cmdecho" 1)6 e6 q# r: e3 i
- (princ)
7 Y+ \7 j# A1 k6 K - )
2 o. u" |2 d" G - * \- Y. n% P7 @: w' u$ U
- (Defun c:CB (/ a)+ b. M( K! [' c0 {1 p* p. r1 v7 r2 k5 u
- (setq olderr *error* *error* myerror)
: T0 g; u* X0 d" X/ ?+ [2 {* L - (setq ocmd (getvar "cmdecho"))
* t4 u: n2 \( M; A - (setq oblp (getvar "blipmode"))
. @# B% T5 M4 L9 W- L0 N" W - (setvar "cmdecho" 0); i, r0 M% [) o$ i
- (setq a (ssget))
4 ]$ a& H5 B6 K3 n - (command "CHPROP" a "" "C" "bylayer" "")& V' A- o2 `/ u8 ?4 p/ R% x0 N
- (setvar "cmdecho" ocmd)& N: A* k7 `; L+ R9 \
- (setvar "blipmode" oblp)
6 t6 r) R+ }8 Z# w - (setq *error* olderr)
& W" b4 C# `( y' @& w |0 v) l - (princ)9 |, T W8 R. _$ _6 F
- )
2 S- N3 ]! s, O# z5 k* ~4 u/ K3 v2 Z( P
' w& g; ~1 y9 h0 n- v7 G- (defun c:LCC (/ co43 obj23 la23)" W3 W" h6 z. [4 r' N7 ^4 H
- (setvar "cmdecho" 0)0 s; Z- L9 W7 |2 k1 A& P9 t L2 @
- (setq co43 (getstring "\nNew color : "))
- p( B& k) y$ ] g6 a1 y& z+ Z - (setq obj23 (car (entsel "\nPick object on desired layer: ")))* d* s* u" x k% O1 |5 a% n, n
- (if obj23 (progn
# o% ]( ~5 N6 }9 e. Q6 E: U m8 W, ` - (setq obj23 (entget obj23))- j, Y/ O# L- n5 c
- (setq la23 (cdr (assoc 8 obj23)))0 T# [5 c! n, N. F
- (command "layer" "c" co43 la23 ""); K; U7 B/ G/ S6 r! x k; A
- )1 {5 f& Z8 ~( U
- )) P4 A/ H' ?8 Z
- (prompt (strcat "\nLayer has changed..." la23))
5 O) M- d! F5 _ - (setvar "cmdecho" 1)( y& P5 Q6 I N! X' U" J
- (princ)+ |5 u# k* @9 Z6 ~( \8 S
- ) - [. Y& t% X/ C! g* h9 }8 L1 E0 Z
- , ~: x7 g/ s# I
- (Defun c:RP (/ a)
& }% A/ D5 J: @2 b - (setq olderr *error* *error* myerror)
& r% K- c5 v q! S4 V |! _ - (setq ocmd (getvar "cmdecho"))
% U8 V3 H% o5 S p - (setq oblp (getvar "blipmode"))
7 c7 I7 x& I) u a+ N/ d$ V# | - (setvar "cmdecho" 0)
6 Y# x8 t& t n3 K% b' W0 X3 w - (prompt (strcat "\nUSE: Delete object(s) belonging to"0 ~# I& t2 y) {/ T
- " the layer of the entity picked...!"))6 r( t; M7 a) L1 L; m' _3 F" K/ e. X
- (setq a (entsel "\nPick the entity with the desired layer to delete: "))7 J) X" m9 F* S9 O }# u1 g
- (if (/= a nil)
! a. n! G. f8 R' E S - (progn (setq a (cdr (assoc 8 (entget (car a )))))
- t1 T) T) [3 u9 A - (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))
8 N2 o5 L, @, \9 K/ _ - (prompt "\nNo entity selected!"))
1 n j1 v+ H% j) Q( F1 o: f% D8 d - (setvar "cmdecho" ocmd)
: C9 q1 u# M5 J8 E- n2 [ - (setvar "blipmode" oblp)
4 v, o3 D6 T0 O1 j" ^0 e' ^. b# g - (setq *error* olderr)# F( L% _0 C$ b X5 W; k
- (princ)& y$ `/ F: G2 H7 F7 I9 t9 m `8 w
- )
1 j* h. y. c2 A) H4 m& |2 ] - / ]8 T4 M- `# ?4 ~7 u' x: ?
- (DEFUN C:WL(/ SSET NET SSL M), C8 ^8 H. e, k/ R, k* e7 r5 Q
- (PRINC "\nSelect lines :")
( n" d' J# E3 h: O+ }3 _4 G* w - (SETQ SSET (SSGET))
4 W4 F A/ Q [$ L6 c2 J, X - (IF (/= NIL SSET) (PROGN2 M! c/ H p3 W7 O' U
- (SETQ SSL (SSLENGTH SSET))
0 {% @4 U( L; S& |% V$ d - (INITGET 4)& Y* s8 i! u0 t2 [
- (SETQ NET (GETREAL "New width : "))4 y! q2 N9 y$ |" y& M( E+ J1 ]. }
- (IF (/= NIL NET)3 R1 j) s V6 X3 o' T
- (WHILE (> SSL 0)
- ~8 t) A9 T8 i2 f% m4 ] - (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))" E y+ A) q, `: T$ q }3 R
- (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE") , t4 t* n0 r; a7 ~) B5 \5 n
- (COMMAND "PEDIT" M "Y" "W" NET "") % e" I" t0 G: t4 Y N# l
- )
6 ?# O9 G$ ^+ f5 Z - ) 4 g2 C8 ?. P1 _& }4 `# p
- )))
5 r6 w$ x* y* L - (PRINC)$ K- ]; O8 n+ Q( V
- )+ X1 U6 I. c6 R% z. K# w
- $ @6 v/ `" c& [% T1 e9 I
- (defun C:MML ()# L7 h) _( p. a* ?8 i
- (princ "\nSelect objects to move to another Layer.")
) S7 H9 o, |+ h( u% D1 F( K/ N+ I - (setq ss (ssget))
8 f% W; o$ ] E# v9 G - (SETQ UL1(GETSTRING "\nLayer to move entities to : "))3 u' F X( \ i! F( B% x
- (setq counter 0)
' q6 _" M0 _- P/ p' {! B* N- v' G - (prompt "Moving to layer.....")(princ ul1)
$ |; ]/ i: R2 f) u# n8 v - (setq e (ssname ss counter))! e j; K2 [) i* n6 E
- (setq l (cdr (assoc 8 (entget e))))' M- D5 h1 \+ _. \
- (setq S (ssget "X" (list (cons 8 l)))) C# ^& ]: R; @
- (command "CHANGE" ss "" "P" "LA" UL1 "")
: J2 K" Y: H; \6 b( V8 x, x - (setq counter (+ counter 1))" u& }% w& A, H. X
- (princ)3 |/ e2 P" j& H/ f
- ) 7 g* G) p% M8 Z
. D* g& ~* d5 P6 N- ;;; ================================ GHI CHU ============================2 ?! N+ H+ A9 _* h9 B
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========# j7 z+ F5 G1 S
- ;;; =======================Thuong Dung Font Romant.vnh===================9 S* W6 W# Y2 K+ A, A
- ; b( q. N+ C; Q% l9 u
- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
9 F: v+ v) D2 n* R$ f - (setq oer *error* *error* err2)3 n+ J4 F+ h* e# E
- (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")' c( m' q) _2 U% h
- (SETQ Cpt(GETSTRING "\n (ROMANT-vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (UNKNOWN-font)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))7 r' X3 {& ^: X! h
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p"))% X: x% V% _, A5 ^0 M
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh"))0 K; l. R, `' e9 l
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p"))
7 d5 I! j5 Y* ^$ K - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c"))0 r; z! c V( ]3 i6 o
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?"))! j9 t E( z n& B
- (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An"))
% J& W# U3 U% ~, e. i; W* n5 f - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho"))" h! M- e) _. m8 z I
- (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`"))
, Y3 x! T D* U3 C6 C! s" i
! G, T2 R% l) G6 i# h t( B c- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))2 O7 @9 O6 {( |5 E% K4 F7 A4 u
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))5 n, h! i: T! ?/ I- q5 t
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))+ \+ _+ b1 q9 J# [6 N
- (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))
' d' e6 h6 X& k# i# y* M- p - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ")); T. ~0 a9 G: q1 B$ ]. [
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))( b8 ~: J2 p' _9 G; m- i
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
( G4 P/ J6 t, Y' R2 U - (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))1 U3 j% y/ [& L Y' \
- A4 g3 m% A2 ]- }
- (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))
9 T' \9 A4 V5 Q% p. k5 P - (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))
O. m7 ~1 N3 t: l- q+ l# P - (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))
9 C! Z5 S' q: O) G - (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))3 T1 E7 N4 R7 H% G1 K0 S. c ~
- (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R")) Y& B% h3 k* ^5 z+ N8 O8 e
- (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))
6 p+ O4 J/ F. ? - (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))
% |) ~) K$ V/ s - (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))
: ?- ^7 v; C f4 K" G- { ~ - (setq pta (getpoint
p/ o( {6 }, k; C1 q - "\nPick first corner. : "))
. R6 R/ T" p" [2 D0 b; ^ - (setq ptb (getcorner pta
- ~1 }3 d2 ?# Z9 |# B - "\nPick second corner. : "))
3 O( V8 q0 R6 h! t5 N5 l9 { - (setq ptc (list (car ptb)(cadr pta)))0 O1 y" ^4 V: c5 E; m+ n6 Q H
- (setq ptd (list (car pta)(cadr ptb)))7 ^4 A9 t) t7 [2 Z
- (setq ang (angle pta ptb))' s' S1 O( Z- z- D
- (setq d1 (/(distance pta ptb) 2))2 @* m. ?4 g+ G: S% {! u7 ^
- (setq cp (polar pta (- ang (dtr 0)) d1))
7 l6 ?) H' v9 b - (setq X (distance pta ptc))6 X; s0 S: g; N/ }+ c4 d, R o9 M
- (setq Y (distance pta ptd))6 H( J1 u1 E3 m( L
- (setq X1 (rtos x 2 1))$ F5 K! p& @1 z( ? O4 M
- (setq Y1 (rtos y 2 1))
, N9 ^) U* d% R/ l" f - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
; `6 s% a( a4 ^8 l; t9 P& z - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))7 o* Y7 i9 u1 z, ~1 z
- (defun dtr (angg)8 k8 z4 ]5 R0 `6 L
- (* pi (/ angg 180.0)))& T4 U h Z, A( j& _
% [7 u; Z) S6 I, z; l- (defun c:WS (/ pta ptb rmsz pl1)
; n! P: a% _% Y! V1 c" S k - (setq oer *error* *error* err2)
8 w0 F# T3 K3 ?1 ` ~ - (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P)."): i/ J- V/ ^8 G1 {1 b2 f
- (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))4 z( f" [1 r9 A5 a/ x
- 8 e8 v/ ~( d T" Z" f# N0 F
- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))3 T! O1 `9 G, o. m/ [- ?4 T @% ]4 e
- (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100")): p) d+ {4 a \
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))
% ?3 p ]% V3 U - (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))5 p3 A$ F# N" P2 I
- (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))3 g L9 r) s2 x1 I7 T& Q4 ]7 t& O
- (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))
- c6 c3 ]6 L; F. R i1 ^ - (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))" c0 h1 X7 V! ^7 I; i6 |& Q
- ( R8 k. k/ n* d) M5 j
- (IF(OR(= Cpt "L")(= cpt "l"))(SETQ CPT '"MA/W/JT BA/W/FNG TA/M/FNG 1 : TI/R LE/M/J - 1:100"))
8 ?/ f0 e2 S! W4 F% q9 f - (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100"))
# x! F+ C4 d2 D - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))
! p1 c( E9 H( e, o: H5 b/ t - (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))' h7 L! |, X( c) }2 j. a
- (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))8 a2 F6 B( t1 h3 ]3 h1 l0 N' G) J
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT '"KE/M/S/T CA/M/SU KHUNG DO/JC NHA/F : TI/R LE/M/J - 1:100"))
1 a9 j' S* T0 o5 S0 m: M+ z8 H) ] - (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN"))
# w0 ~5 t! Y1 E0 ]- Z2 T - (setq pta (getpoint0 B( ~) Z. s6 c- x" p1 \; p' N
- "\nPick first corner. : "))
1 t4 m& S& K3 w, A7 B! C - (setq ptb (getcorner pta1 a4 p( K t3 \5 b
- "\nPick second corner. : "))" Z5 s: G6 c; S2 A
- (setq ptc (list (car ptb)(cadr pta)))( G4 k* h4 b1 o0 n9 C; I. {
- (setq ptd (list (car pta)(cadr ptb)))$ i, C' Z) }1 r* ?9 \ b; V
- (setq ang (angle pta ptb))
: j! d. r9 }1 b) { - (setq d1 (/(distance pta ptb) 2))9 P# h" V8 \* G- \# G
- (setq cp (polar pta (- ang (dtr 0)) d1)): ^& B" \3 y H ]) Q+ V7 k
- (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
8 U; h2 x: w% {, m5 w - (defun dtr (angg)" ?1 V" l6 N# c/ @9 [
- (* pi (/ angg 180.0)))/ s5 s# ]. S9 @. b( Z& D8 W
- + `0 f2 b! z- y7 Z/ ?# F* A7 G
- ;;; ================================ GHI CHU ============================, H& ^/ {' Y* N; c9 ]+ H: r
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
9 o# ]! c3 ^1 A R. \ - ;;; =======================Thuong Dung Font Romant.vnh===================
/ o8 E, y1 W v" U! l6 j( q - - h' @! s! M- a1 ~1 M, x
- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1) c! U; y6 D+ I5 \
- (setq oer *error* *error* err2); @( C- O6 ]+ P% J1 P6 w, V) R
- (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. "): g: v/ a% [& g. }
- (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))4 A6 `& L! c: |) Z2 y3 u
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p"))) v3 S5 j7 n4 [# i: P1 f7 h+ ]
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))
9 b/ ]: F; P3 V3 a+ T - (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p"))
+ U. x' o' o! n8 y - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c"))
5 S; {" S" F* i9 j- n/ F - (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))! c) V: N8 j D
- (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An"))
, f* x' F8 k) w. Q9 Z6 t - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho"))6 \/ f- I1 S6 ?! ^- f9 o
- (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?"))* p7 }1 D4 P3 f. q1 s
- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
5 v4 \+ V, ~: t( c ?' N - (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
0 J2 J: Q' ~- b - (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
^" E+ c6 Y* t2 y S' I& `& Z0 C& B - (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc"))
" A* @8 n {* b# p% u8 v - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ")); y2 \: ~) q% i
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))/ D. C9 X+ u1 o3 h, Y3 V; a
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
5 s& F0 o( F: \ - (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
9 D8 @- D0 @) s - (setq pta (getpoint
2 D: _* a: I; h1 z' M - "\nPick first corner. : "))7 M. f( E8 o8 u' L" R) g
- (setq ptb (getcorner pta
8 x Q& D" ]# e& @# o, o! s - "\nPick second corner. : "))
6 x+ O# A+ R" l: f# ~/ O+ w- _ - (setq ptc (list (car ptb)(cadr pta)))6 G! K4 _/ u9 P
- (setq ptd (list (car pta)(cadr ptb)))
) ^! O! B- J. b - (setq ang (angle pta ptb))
+ S7 @" [: s- m) U - (setq d1 (/(distance pta ptb) 2))# F4 U$ i% @4 x7 Y2 C' ?7 h
- (setq cp (polar pta (- ang (dtr 0)) d1))
' ?% }- l, w1 B) U5 A2 w - (setq X (distance pta ptc))! t! a1 U/ C; f \$ Z
- (setq Y (distance pta ptd))' U8 D3 v$ M3 C: [2 f3 z/ T
- (setq X1 (rtos x 2 1))
# T- f( x1 C% T - (setq Y1 (rtos y 2 1))
7 q0 z4 a4 {, c3 F5 V5 I6 G- q - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
8 j& c& M; ~. {3 A - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
. C" c( j- M, s$ ~! Z8 N9 J - (defun dtr (angg)# r' n T# E' ?+ g B8 w3 C6 h
- (* pi (/ angg 180.0)))3 I# |; B3 g$ f$ Y: s
- 9 f6 L, |6 m' _8 p4 d+ V/ t' A
- ;;; ================================ GHI CHU ============================
$ Y5 o, r1 }" y7 z2 r - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
. \( ^7 q/ {; K, u/ a+ } - ;;; =======================Thuong Dung Font Romant.vnh===================
3 u+ {0 G/ ?: h+ P$ S; Y5 Q: p( P - 2 w# {8 w2 }) Y% h7 W
- (defun c:GS (/ a b c d)8 n8 W3 |# y9 R; E* y: D1 ^
- (graphscr)4 g% X5 x: a3 r. r4 ~
- (prompt "\nSelect text to set style....")
' z6 f$ m1 @8 Q' _8 r - (setq a (entsel))
6 ]/ }. |4 E2 n1 a$ R2 ~2 S - (setq b (entget (car a)))
m8 A2 s& @% c9 b- q% m* q3 Q; R! ? - (setq c (cdr (assoc 7 b)))/ j" f1 {, D+ P4 ?& d7 t% I
- (setq d (cdr (assoc 40 b))): D! D* n' M" {
- (command "style" c "" d "" "" "" ""))! u2 u! U' X6 t$ \- d; ^
- (princ "\nType GS to set text style.")& I# B: w6 R$ n. l+ N C, _+ p( L
- + Q0 C+ n" E: D$ P* u0 }4 Q# \! Z, n
- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)# o7 y. W' {. l, Q" F( w* G* D3 d% g4 ~
- (setq olderr *error* *error* myerror)
! z) v; ?9 B) X4 x - (setq ocmd (getvar "cmdecho"))
+ x; g; v5 l9 ?8 \+ d+ w - (setq oblp (getvar "blipmode"))3 w0 Q6 k% J3 H8 i: b P/ ~
- (setvar "cmdecho" 0)( r' J' r) ?! z7 O, H4 r* k
- (initget 1) ;3D point can't be null
1 w/ g0 J$ m1 F* ^9 q& W8 a - (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))1 O3 G: O" B) X* U) S ^
- (setvar "ORTHOMODE" 1)8 t/ D- V- a) l6 [
- (initget 7) ;Length can't be 0, neg, or null, h; J6 C/ T2 F" ^6 U
- (Setq l (getdist pt1 "\nLength: "))
2 l( f' G7 V2 t! k9 T3 k& Y' Y7 A - (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))
; j( W7 |- r. k$ q: P - (grdraw pt1 pt2 2)
/ j0 {- S$ @4 v5 s H - (initget 7 "Square") ;Width can't be 0, neg, or null
8 h$ w/ K$ E. Q0 d$ [& w+ P - (setq w (getdist pt1 "\nSquare/<Width>: "))
* [1 v5 E% _! r$ j7 o E+ } - (if (= w "Square")
6 }( z/ r5 q1 K7 o - (setq w l)
# b m- a- W4 ` Y1 u" C - )& B& E. o+ [1 n% R9 ^$ [2 Q
- (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))3 s+ I' U7 G, X/ Y# w( d' u
- (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))3 O* D- o& }9 P: W3 m0 J
- (grdraw pt2 pt3 2)5 m! r {# C3 S! h
- (grdraw pt3 pt4 2)2 V" k. Y( ]% B. }1 Q" t; w2 `
- (grdraw pt4 pt1 2)- [4 V: p, H+ d) o
- (setvar "ORTHOMODE" 0)
1 D7 m5 h9 H; r9 i+ _5 B - (command "pline" pt1 pt2 pt3 pt4 "close")
/ W0 C6 Y& z& E( J4 h2 M5 q/ U7 N - (setvar "cmdecho" ocmd)7 F D4 u! r' g: E6 N
- (setvar "blipmode" oblp)- G! T% f. k, m1 b. N- v
- (setq *error* olderr) ; Restore old *error* handler
" A j! Q) Y7 Q* P I6 q7 x" f/ O - (princ) n) V2 `- V4 T! ]1 b% t
- )
% ~) d$ s4 S: v7 h2 E
; U9 b$ X# f3 U. f: A- (defun c:SG (/ ent pt1 pt2 ang)- {" G5 T; U1 g6 [5 ?
- (setq cmd (getvar "cmdecho"))
& A& e5 v2 P+ i: H T2 o - (setvar "cmdecho" 1)
: v- C8 l& _3 U! L7 y$ y - (prompt (strcat"\nSnap angle will be set to angle of line"))
1 A s( [) P8 P& u% E - (setq ent (entget (car (entsel))))- K. R9 |1 K- B+ X( [2 K
- (setq pt1 (cdr (assoc 10 ent)))
" ]$ J+ `+ {% d# S7 S; y - (setq pt2 (cdr (assoc 11 ent)))2 U Y$ M7 X8 A- j4 x& A" f2 ^
- (setq ang (angle pt1 pt2))
7 {. k+ y$ L7 J7 _. [( `" }5 T0 b - (setq ang (/ (* ang 180.0) pi))
* F$ V6 g$ V5 S4 E - (setvar "cmdecho" 0)
2 z& x6 f. Y# F1 g2 ] - (command "setvar" "snapang" ang)* |& X/ B) M& Y" S3 \# q
- (setvar "cmdecho" cmd)
2 v* d* e+ \" s1 E - )3 f$ C0 S" g) v/ l( U1 i' U9 F
8 }0 ]1 f" M7 B; L# |- (defun C:TG ()) M; ?8 b" q0 p8 B2 J1 t1 X
- (initget "Increase New")
! `3 s/ }; J' t! p1 { - (setq ans (getkword "Increase/<New>: "))8 M0 z) ?9 w: p. Y
- (modang)
+ c1 l8 c# a% S2 U - )
' K2 |# o, W: z) t6 F% Z8 @) {& y - (defun modang (/ ang ss ca e na ssl)7 b+ o$ g1 v, n
- (if (= ans "Increase")0 H, t( u; N3 v
- (princ "\nIncrease angle for text by: ")
9 N$ V8 r% |1 W3 y1 E( r! L$ R# d - (princ "\nNew angle for text: ")
M& d- b; W! r& k - )
[2 \1 C" m2 \1 |4 r2 j: w - (setq ang (getreal))
$ l) S7 s+ D. z& T - (setq ang (* (/ ang 180) pi))
v. L7 y" J$ J: j$ S9 W - (setq ss (ssget))1 v7 a! p/ v3 R6 M" c# L* }
- (setq ca 0 ssl (sslength ss))+ q) M. L6 I- a
- (while (< ca ssl)! z Y% k9 t) r% ?1 m) f& Q
- (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))3 o0 a* l s' P2 t
- (progn1 n8 g1 w" o2 B$ ^
- (if (= ans "Increase")
& }+ g2 w, _; u, d& n$ Q' T - (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))4 z# U$ C% Q3 d' w
- (setq na (cons 50 ang))
G5 g) L$ H2 } - ); O# f1 ?( @. H
- (setq e (subst na (assoc 50 e) e))( ^8 t; }: V8 `" m. @
- (entmod e)/ x# _, _9 K; ^8 n0 `. j' M5 x
- (setq ca (1+ ca))
4 Q6 N: Y: l1 Y$ G# _. b& u7 o - )
8 v% N5 C. M$ Q8 L; o - )& D7 Q9 j! F. |) U( `6 ]% M7 c" Y9 C
- )
X! M/ V5 i- b' S$ M, j - (terpri)
; c) Q3 O6 h& ]! x2 j; o/ c- L" K2 ? - )
9 C7 e; P1 v9 o6 S: u9 Z6 U6 G
# a: A, f, s1 d- : m( \7 D/ N7 M) D
- (defun c:WL ()# e+ _! H2 E" r6 C9 S/ _) x
- (setvar "cmdecho" 0)+ Y" V' O' i* ~; X3 Y
- (setq a 1)
3 w" \" a7 e6 J) l1 |2 Z! A# H - (prompt "\nSelect Polylines to change: ")' r& F/ h- f. ^
- (while (/= a nil)3 `. z! x. I6 G. m7 T
- (progn
9 {# D% U; D% O$ h! {% T( J' j - (setq a (entsel))
; l2 e7 S4 z% i6 u& \ - (if (/= a nil)
4 c7 F% X5 Z: O/ T - (progn
9 L, c& b: Z" Q1 G5 X! Z - (setq b (entget (car a)))
, }4 a! Z5 k7 K' [" p - (setq c (cdr (assoc 40 b))) ?. m6 \- |- o% o d) @
- (princ c): |0 v: h8 u# m0 o+ r; g
- (command "pedit"a"w""lw""")1 w( x8 u9 y! a, u! p
- )))) ' g j8 ~8 v/ [; \
- (princ)
8 F# K* k& ] m) _ - ). w9 P r/ K7 Q7 _* e$ ]# |
% o @8 }' P# a; w* f- }- ;;; ================================ TEXT FIT ============================
2 ^8 X8 m) B( t+ ~ P6 g* } - [4 U; z- s! S' g4 j0 P+ z1 o: Q
- (Defun c:FT ( )
, O$ T4 }* |7 w6 l. x; N - (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )3 `6 c) ~$ [1 v; D: ^: m! p
- (Defun LL-xyz (arg) (CAR (TextBox arg)) ): ?8 J) H6 X6 t2 @( g
- (Defun UR-x (arg) (CAADR (TextBox arg)) )
! ?* B/ R: K4 L1 K7 N6 Q! } - (Defun LL-y (arg) (CADAR (TextBox arg)) )* f. ]6 Y3 ^- A1 k/ j: F* c- Q. {
- (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )! B1 H; T2 ]2 t( C4 Y5 n6 x
- (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )% ^' C- @& h: P( \
- Textent (If ename (EntGet ename)) )
6 I+ D& h( v1 A: k! g4 N - (If (= (CDR (Assoc 0 textent)) "TEXT")
3 R5 L0 V0 w; d% C$ M0 d2 t2 H& D4 u - (Progn (initget 0 "Start")
! W* x) t5 h E& n: c# C/ k - (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )
/ K" x' k/ _% v/ b) h, `9 g m! h - (setsnapang Textent) ;set snap along text entity
* g S8 G) f; E: j& j9 [ N; ] - (setvar "ORTHOMODE" 1) ;drag along the text2 F K0 i. ~6 b7 v
- (setq
7 v+ I$ Y5 \5 V8 _3 W - TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") )
/ v9 h9 l+ k6 F( {, A - (setvar "snapang" 0)
$ a, \; K! L+ W. @$ C- o) k3 g - (cond+ s* U" X: W6 t8 Z
- ((= (type TMP) 'STR) ;;new starting point to be selected6 }* G+ B% P5 K& S
- (setq Start (getpoint "\nPick new starting point: "))! n, e6 u& f F" z$ m5 B% F, c
- (if Start (progn* A$ v5 ~3 d }0 J
- (command "_UCS" "_E" (cdr (assoc -1 textent)))
2 H1 c, w- j ^5 c - (setvar "ORTHOMODE" 1)
, x. J& O* Q6 u3 r/ _" U9 v - (setq NewPt, K2 l9 }; K! R; h
- (if Start* ]6 z* l) f D v% q
- (getpoint (trans Start 0 1) " ending point: ") nil ) )
* U6 ~% I; o* m7 j+ Y6 h! S3 ~ - (if NewPt (setq NewPt (trans NewPt 1 0)))& R" c* n) s0 Z9 J7 a% v x% |
- (setvar "ORTHOMODE" 0)7 `0 P X* c& v9 w' K1 H/ J i4 K
- (command "_UCS" "_W") ) ) )% e4 A7 Z0 F, Y
- ((not (null TMP)) ;;new ending point selected) U" i8 c g# b" j& J
- (setq Start (cdr (assoc 10 Textent)) NewPt TMP) )
& Q* X" u4 f' t/ J) a) D% Q - (t (setq Start nil NewPt nil) ) )
. a9 m. l4 H/ X. j& F$ \ - (if (and Start NewPt) (progn
* m" a# x% E5 \+ v# k4 D - (setq Val (Assoc 41 Textent) ;;current width factor8 C& ?' l5 u K/ X0 W# y% x
- Val (if Val (cdr Val) 1.0) LTC_%
& F$ ?6 a: w y+ H0 u3 e - (* (/ (Distance Start NewPt) NewEnd ) Val ): |8 Q7 C, g" ^" s
- textent (Subst (cons 41 LTC_%)
, U, N' `! W& o9 j9 O( M) I - (assoc 41 textent) textent)
, E" B: b/ [' _0 [9 B7 f, K0 B - textent (subst (cons 10 Start) (assoc 10 textent) textent)0 b% w3 q- n. v6 n' E$ X' c. j
- textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )1 N) e' X- [$ T0 }5 O
- (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))8 C4 k i# O/ }- H( ?: f% U" }
# e+ i' t8 Q( [3 l2 J- ;=====================================================================
5 ?/ S& S7 Q! t) o; C1 u% n - ;=========================COPY + ROTATE ==============================7 R4 z- J0 J1 X! ~+ m! H
- ;=====================================================================; {, s3 N- \* K& ~8 a# K
- ; ^2 [4 Y" ]" t1 _- Y
- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2)
1 W% L2 F3 {# a% a/ { - (setq olderr *error*/ p6 q5 G* R, o3 i
- *error* croerr)9 `$ V% e0 z' G" b- n7 M% B$ B0 C
- (setq cm (getvar "cmdecho"))* w! V: [" D8 N: }' ~7 t8 t1 j- K
- (setvar "cmdecho" 0)
4 G5 F, S+ T B* O, ?5 D - (setq loop t)
% C- T( F1 a0 T - (while (not (setq ss1 (ssget))))
6 h0 V/ v- ~+ }. p ` - (initget 1 "Multiple")
& u% M d! x( ]% p9 E" a - (setq bp (getpoint "\nBase point or displacement>/Multiple: "))( _6 p. P3 A: z' K
- (if (= bp "Multiple")
4 ^; p* }8 V$ H# @ - (progn* f7 a; Y0 x& v4 i
- (setq bp (getpoint "\nBase point: "))
! _& g1 d7 M/ q: W+ a$ T - (setq mult t)" k& ^. L% w v! i( s$ p
- )7 F- r9 @6 l) _6 i
- )
/ I% t1 _( k2 ?. I9 V - (while loop
1 N5 ~% K% l6 b, X3 N - (setq loop mult)
A7 X$ {$ m y7 h& p - (setq lent (lastent))9 j# a: s* j9 x# j
- (command ".copy" ss1 "" bp bp)% R4 d/ V" N: W6 L% n! g A: o
- (setq ss2 (lss lent))' G0 P+ q% R# p3 ]
- (setq lp1 (getvar "lastpoint"))
: i# d: i5 m+ { @' b - (prompt "\nSecond point of displacement: ")
+ `6 k q, L+ M* ~ - (command ".move" ss2 "" bp pause)
" q- G2 v. D& P: V" o - (setq lp2 (getvar "lastpoint"))
. ]# g0 b; M9 q. |' S7 { - (redss ss1)
, b. C7 M: \$ w$ Y% B" H - (if (and (not mult)
$ W# Y3 i* \! r6 `6 a - (= (distance lp1 lp2) 0)
/ Y* |; ?1 S' Y$ y; s - )" C. k2 n: i0 `- Y! C7 \3 J8 c
- (setq lp2 (getpoint "\nRotation Point: "))
( ^% e+ `2 P" |/ _1 @ - )
2 y( Z. m) t4 v6 \, g - (if mult9 v$ J- n0 Z% X( I
- (prompt "\nRotation angle ")
4 ^ z6 b' I7 D `1 W7 F - (prompt "\nReference/<Rotation angle>: ")6 c7 t9 ~( y( ]! G' ~+ l7 z& j9 V. k9 c
- )
- n' T) z1 @4 K5 w K& l - (command ".rotate" ss2 "" lp2 pause)% H, _1 B; a% }3 j9 c
- ) x2 ]% |1 G# g4 A5 C$ m
- (setvar "CMDECHO" cm)* v, R! I, n$ R4 t
- (setq *error* olderr)
! _5 C9 J, W2 t: h1 d - (princ)( ]+ q( ]0 k: P9 @. d0 B; T& j
- )
7 o5 G! w5 N5 a" ^) u" ` - (princ)
; o- y. Z, k6 T2 L0 O) d* U9 f - (defun croerr (s) 1 A; W7 w& S0 {; Q% Q+ C x
- (if (/= s "Function cancelled")
; ~2 x7 `. `* U* \' Z - (princ (strcat "\nError: " s))
4 t' [ `- ?3 z! K [ - )
7 i& M1 {: F8 A5 j- {) h d - (setq S nil)* a% x! v( f/ b: g8 t
- (setvar "CMDECHO" cm) m# c0 L& A7 X$ D7 ^
- (setq *error* olderr)4 K& j @' ?# ^/ a, u; X8 ]
- (princ)8 `4 O+ b$ `3 Z0 y
- )
, w+ Y. N% j& w" R; X, ^' s - (defun lastent (/ a b)
5 u+ o- I( V) R - (if (setq a (entlast))- {$ s; `0 N/ M/ f5 Y! Q9 C
- (while (setq b (entnext a))+ T5 P! r: l5 ~$ a
- (setq a b)& C' y, B( t9 C7 z* R
- )
, Y0 w& ?' g( h( K2 E2 v - )
6 J' i9 ^/ [) ` - a
$ a! V* { E6 L% A - )* v# g! f" I/ g% s5 a' i; `# X/ M
- (defun redss (ss / en i)
' D7 a; k- u, D5 w1 G, Z/ N* ? - (setq i 0)
" C: Y0 f% G; v5 S4 m4 @5 Z - (while (setq en (ssname ss i))
+ o% B+ o9 C( i, r. f: B - (redraw en 1)
: t# O* N7 L0 \ - (setq i (1+ i))
( n0 x/ O$ v* g+ @8 Z2 x - )( d7 A( O: ]; X9 a
- )
0 l) R a/ I$ E - (defun lss (en / sels ed)
9 Q& C* `. B2 c0 b+ B0 }. [& B' e - (setq sels (ssadd))" f; l1 r Q* s0 I1 H- X
- (while (/= en nil)
7 i& H6 c: Z0 _# P Q; U. R; N - (if (setq en (entnext en)) (setq ed (entget en)))8 _ N; H; ]% b! z2 f
- (if (/= en nil) (setq sels (ssadd en sels)))
5 Z8 k: h) G: n, s. u - (if (or (= (cdr (assoc 0 ed)) "Polyline")) W, `# b2 @& ~, S/ e4 u' W
- (= (cdr (assoc 0 ed)) "Insert")! x( g# q( h* G+ Q1 c3 ?' M
- )
5 S! @! k9 P3 b* W+ q. @+ ` - (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))5 b: A$ h* G P/ o( a
- )! ^/ I) o S4 @& }: E
- ). t) f$ b2 D1 i& q+ r
- sels8 _/ n" [! {- S6 d& e
- )) X! R) o% y( b# p
- / @ m- h* F( m# g( s
- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================
- S# r; C& F& w
; h1 R+ C" s9 l' M- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" "")); A' c, I ?6 V4 `. U8 C; {3 J
- (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" ""))
% E- o5 M( m0 W) @* v/ u! L2 J2 D - (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))
0 v& C& o! A5 M6 J9 r8 n - (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))# `2 N1 G, n# F5 `0 X
- (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))) A! M2 S3 v% N2 T" d: b
- (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))
# z. Z7 O/ Q/ W$ i6 B& L! `$ ` - (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))
! Z) |) s0 \0 ?' n4 [ - (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))& `6 D4 u' Z7 {, S& q
- (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" ""))
0 D% u( B1 t( E# |3 k - (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))5 Z* u$ i/ a/ }2 u/ P
- (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))! [9 V- o" Z. I3 i x
- (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))
$ Q5 E, A4 G! P1 t E! U - (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))
% Q) k- Z; p% u6 t4 u - (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))
( i: `( g0 }- l - (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))9 x) N2 A% {. u4 D3 L" H& M
- (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" ""))8 G, O: t0 ]; `4 W& Q7 L/ `# Z
- (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" ""))5 a3 ^1 d4 `' r, \0 J
- (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))0 y! C7 k1 E' C( ]; B
- (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))5 E1 M+ ~+ _1 I5 U; a9 z
4 A! M O+ G: U' J) b5 T& [- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
5 o. D. a$ X, C$ f3 i
& C* ^, v2 I6 O" z# i- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
, x0 F6 i1 D8 J0 j+ ` f9 J - : I* i5 F# J7 q7 a; A* @
- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")
# z2 s& o; K- m0 m, K - (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH") z/ h1 O4 t6 U+ A. w. b5 y
- ' I* I$ `3 [; p @7 a
- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===0 [) B& G' K- E9 K& [' V- ?9 c
! b8 P7 Z5 x. h) \- ;(DEFUN C:netxuatanh ()* D6 `( R" O9 z' r% S5 _
- (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""5 L& X( L4 O' W
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""
/ r% C& Y3 r. g4 I; z - "M" "MANH" "C" "9" "" "Lw" "0.5" ""1 v3 L. g# c, E. o
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""5 t+ `0 M ^3 A
- "M" "DIM" "C" "1" "" "Lw" "0.6" ""2 K0 {# a7 [: J2 o k
- "M" "THAY" "C" "7" "" "Lw" "0.7" ""6 J. q6 s, h9 ~2 J+ ?" A
- "M" "NOITHAT" "C" "3" "" "Lw" "0.5" ""7 `: n T4 X! K# p% B! C6 x& f4 g
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
o5 _, S) Z& b3 F) I- M0 D7 U - "M" "COT" "C" "2" "" "Lw" "2" ""0 O4 D' m1 W% r1 M6 N Y4 }( c
- "M" "Defpoints" "C" "7" ""
" i! {; w5 p9 I5 p2 [# T - "M" "0" "C" "3" "" "Lw" "0.5" ""
" n) V3 w6 f* b - ; "M" "1" "C" "1" "" "Lw" "0.5" ""( y# I' f7 w b4 _* @) ~' B( C# n
- ; "M" "2" "C" "31" "" "Lw" "0.5" ""
! U# b. u0 J e" ? - ; "M" "3" "C" "8" "" "Lw" "0.35" ""
' W4 g7 M+ ]$ N. W, \4 n! p C+ L: Z - ; "M" "4" "C" "4" "" "Lw" "0.8" ""
5 ^9 S! Q! t5 t) a1 u6 f( U - ; "M" "6" "C" "6" "" "Lw" "0.35" ""
- N% ?1 }& W R6 D& }1 K% z - ; "M" "7" "C" "7" "" "Lw" "0.4" ""% s9 j4 M& u t+ y
- ; "M" "8" "C" "8" "" "Lw" "0.35" ""( \( H, Q8 m3 i3 U% F
- "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" ""# e- {. K8 Y5 m* i, I
- "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""
. z$ g% n6 C+ ?) S3 N( x6 s: } - "M" "KE" "C" "8" "" "Lw" "0.3" ""
0 W2 T d C: q4 D - "M" "KT" "C" "9" "" "Lw" "0.35" ""
E7 B+ s X7 g; b' J- z3 k - "M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""
: u n4 ~& f3 R9 l q# Z* R - "M" "NETMANH" "C" "43" "" "Lw" "0.5" ""
' q1 M; y. `# L9 w1 j6 o' t - "M" "TBD" "C" "2" "" "Lw" "0.8" ""3 x9 W5 K/ O6 T7 Y* A* h3 e7 W
- "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" ""' [/ c) Q& I0 V. q% m) a# E2 L
- "M" "TEXTVN" "C" "132" "" "Lw" "0.4" ""
$ H4 B2 F/ I+ Z5 ` - "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""& `: @( @! N3 R/ l" U1 ^' K
- "M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""3 X% E* n- ~. a
- "M" "CUA" "C" "6" "" "Lw" "0.5" ""8 ~4 K4 T: a" T" N9 e. M
- "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" """ y% W' [7 ^; Y# `
- 0 K7 V! D3 s0 K( n
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===
" q0 b8 `8 Q' C# c4 c - , y; S/ h: r5 I$ e/ X1 U! a
- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" ""6 s ?( M8 F( p w" \" g" `9 Y
- "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""
5 h) E f7 D& l. @# k - "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""
5 K4 L" ?( `2 w( Q - ; "M" "250" "C" "250" "" "Lw" "0.35" ""9 a" E2 g, q; ^& N9 f9 z8 H
- "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""1 d/ R: f% d% o# D" o w B
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" ), d( t) T3 K: l h" N
% Q! M* E. v& ^- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======6 P# b3 i0 e9 u+ J Z" r) A5 V
- ;===================================30|04|2024==============================8 `* x. E, r D
- % z1 v4 g) q" i, `6 C3 _3 K
- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )
% u. u9 \4 U5 q- o* w - (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )
3 S* W! o6 @. d% X# ~. R0 g - (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" )! j7 ?5 Z# I# _+ A$ p9 |+ P, E" J+ X
- (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" )
! n( I' m( _9 j; L8 ?, j - (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" )2 c Q, h" X7 _$ Z3 p9 |
- (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" )9 I# f0 i; e4 v9 k0 M# b
- (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" )1 \+ M, G( J p5 {: t
- (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" )
2 I5 S: q8 Z2 g2 E* u4 } k - (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" )' N7 Y% x& Q; @" p9 t$ p4 d
- (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ)& Z4 d! f' [1 T
- , y$ K! ` u+ }- C7 u
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=4 A: |$ z4 M+ W: Y* W. b7 h
- ;===================================17|10|2024===================================: u( W8 x% A% g9 m4 b' X# l. ?
- ! F3 ^, R; w: H
- (Command "DIMTXSTY" "ROMANT-DIM" )
& j$ r: w, A9 F - (Command "DIMBLK" "" "Closed" )
. h; ^3 q9 w6 f5 Y8 `9 P7 [5 ?
, s0 R6 h( N# e) [- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=" Y6 w* J" ?8 c$ c6 @
- ;===================================17|10|2024===================================
) W3 z% w% J/ ^: ?# a7 J
- U9 e8 w% H* _- ;(Command "-units" "2" "8" "1" "8" "" "N")7 m4 S! B2 A2 r# C$ H: |5 ~
- (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ)! ~& k% {+ e: w2 V
2 W) `0 I- P8 [5 i- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
7 Q; b& q) I- g8 d5 q. r - ;===================================17|10|2024===================================3 M. z/ }( _- `% F' H* _
2 q5 p' c! n" u) N8 w- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====
6 P3 Y6 K" S8 ?6 b, w
7 `( W. e' M7 y0 c' ?0 y& F- ;======================== DAT NET IN & TI LE BAN VE =============================$ x* k) ` S6 L9 P) U
1 r6 n2 E: V7 F3 Z- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================- h, M4 m# y9 m: Z5 S) w. q! D
- ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================9 K# l* o/ g: m1 C G& j
- ;=============================11|07|2025==============================' w/ q" Z( o/ n, c* x
- ;Ti Le Ban Ve - 1 : 100
7 h( t6 V% m, F4 x - (Defun c:kta4 ()
0 U7 I) G6 A0 R! P' B! {3 m3 G - (setq mv_sc 100);Ti le ban ve( Y2 Y) R9 h1 Z& e# W# H
- (setq x4 297)6 ~- W8 E0 s. I
- (setq y4 210): z: E* M7 k: d& I$ ^7 E( M
- (setq x4 (* mv_sc x4)
, ?( ?" Q7 d* i4 V! ? - y4 (* mv_sc y4) )- y* g5 e v9 I: @# |2 d
- (command M/ _; B7 b. j: U1 O3 E+ m
- "LIMITS" "0,0" (list x4 y4). h" j" ]9 X E( `$ _ C
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
8 h3 v8 _& V. k! u' I% w+ U - ;Khung CHU NHAT Chinh
( B; v0 D9 f4 D3 z& {, o - "RECTANG" "500,500" "@28700,20000"4 J! x# l% r& m& D& M
- "RECTANG" "700,700" "@28300,19600"
* q. y! K8 B4 D& G% D2 S/ u2 { - ;Khung Ten Chung3 z A. m- r( l- K0 p9 u) O
- "RECTANG" "700,700" "@8000,1250"
6 b; g0 [% E+ v1 j% K! v - "RECTANG" "700,700" "@17300,2500"! _" z$ u" J0 F! X! n
- ;Ten Ban Ve0 r7 J8 G1 [2 J# n; p6 \
- "RECTANG" "18000,700" "@11000,1250". I1 k* s0 N# l
- "RECTANG" "18000,700" "@11000,2500"
4 p8 {3 i; i% n) @ - ;Khung Ti Le + Ngay Thang Nam9 E" J% q% S8 A" m$ E9 L/ u
- "RECTANG" "22500,700" "@2000,2500"
9 f' ^+ E5 u$ c s - ;Khung CHU TRI$ H, ~+ H1 w, s7 h# M$ T3 c) i& p2 P
- "RECTANG" "8700,700" "@3800,2500"3 E# f' E1 v# X2 O% g6 _9 G) |
- "ZOOM" "_a" ))
) J: W+ [( {; c" r# ~% H" n - ;=====================================================================
# s! \& f& I3 ~% N: J) r - ;Ti Le Ban Ve - 1 : 100
- l2 @" Q: O9 V. Z - (Defun c:kt4a ()
" y, ~ v' M2 K0 V) q; O1 `% l - (setq mv_sc 100);Ti le ban ve
3 J6 {) T2 N- r: ~& E& `5 Q$ C - (setq x4 297)
( P) u2 q" D( G% X, N0 g- b, Z - (setq y4 210)7 e% ~8 s' N6 V* x& n) @& ]/ w
- (setq x4 (* mv_sc x4)
, I/ O" | Y$ I# U+ `( q* a/ J - y4 (* mv_sc y4) )
{6 k1 X, J( \2 E8 i - (command * g( p( I. x7 A. `3 Z F
- "LIMITS" "0,0" (list x4 y4)
. y8 V* A4 Q8 L8 ?' C - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
/ [, p5 R3 J0 m5 z0 b - ;Khung CHU NHAT Chinh . C+ a3 e! V+ G: c& `* e2 g8 u
- "RECTANG" "2000,500" "@27200,20000"
( D& `( Q$ a- x+ A& Y! U - "RECTANG" "2200,700" "@26800,19600"2 d! L6 a4 f. ~1 [! K
- ;Khung Ten Chung
7 C( _9 s7 J }" w - "RECTANG" "2200,700" "@6500,1250"
# h; l5 o- C1 \) K4 y* P% x - "RECTANG" "2200,700" "@15800,2500"1 w2 c+ x' }1 x! M1 g: G, V
- ;Ten Ban Ve
9 q( ?$ P4 u8 |2 A3 q - "RECTANG" "18000,700" "@11000,1250"
$ M9 _9 w6 X) e0 S' ~5 E c Z - "RECTANG" "18000,700" "@11000,2500"
4 [* G! a1 d, y; g8 b a - ;Khung Ti Le + Ngay Thang Nam
/ _& W: u$ T: A' n% x9 `; B# H - "RECTANG" "22500,700" "@2000,2500"
0 C+ _: ]6 U* V6 {: W - ;Khung CHU TRI5 r- F8 b6 ]! N( D/ l
- "RECTANG" "8700,700" "@3800,2500"
}; D. R0 d# W! T7 \7 G - "ZOOM" "_a" ))) L$ r. ]$ H# C }# w
- # p, f; r: G! ]' F3 |" S
- ;;; ============================GHI CHU Khung Ten========================
6 J0 X6 E+ U- K H( J - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========% ?& l0 P8 D" y& V1 p& W7 I
- ;;; =======================Thuong Dung Font Romant.vnh===================5 x! N! t# O; e2 M5 p+ v: V
- * W6 D% A- x2 _& G) S& r
- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)! x; m8 O" }' C0 p/ }; u* s% e& K
- (setq oer *error* *error* err2)" F2 A" u3 ]5 ?& {$ J( I0 I
- (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")4 t5 D( Q$ t7 [2 U! w% F
- (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). ")). D' K; k$ W% [ d
- (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))
& [5 ]* W1 L# d5 _" _, i- c - (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))
y, A' b# O5 ~7 U/ s9 X& W4 G" J( s - (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))' O/ ]3 e$ c( J) K; U9 j/ q" Q7 f
- (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))) E; T* R2 Q( K
- (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))
+ c/ z, ^, k% N. N& T - (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))
4 z8 k- @0 A9 @6 Y1 x* { - (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :"))1 f3 `: K- K7 h! o$ ?! z: ~. ~
- (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))
4 x0 [# p+ z: C7 O3 K6 k/ h- R) v - (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :"))9 L: f( q) A; d$ G* p0 Y
- (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :"))
6 a: N' K" L8 Q; W - (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))7 M) k8 O6 ~% q. M' R' U
- (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng")). \( J2 U" Z; r# @( A' V3 X
- (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))
: J# [& `+ `& [/ t/ q$ A# T - (setq pta (getpoint
) {+ l3 D0 z( W g - "\nPick first corner. : "))0 J5 ^; G: H# z9 E7 Q+ r1 J) J1 n+ V4 K! u
- (setq ptb (getcorner pta" q* B1 ^5 N' s
- "\nPick second corner. : "))
4 S0 F% G; I3 q4 R+ j - (setq ptc (list (car ptb)(cadr pta)))2 r& U4 f0 k4 P
- (setq ptd (list (car pta)(cadr ptb)))
1 ]1 Y; @( N. V0 w: [# ] - (setq ang (angle pta ptb))
/ E* @& L3 ?. s J* B' X7 ` - (setq d1 (/(distance pta ptb) 2))
8 D+ {, l' W* v1 a6 R) s- C5 M1 ? - (setq cp (polar pta (- ang (dtr 0)) d1))
. `1 m H- R! ~, N [, n - (setq X (distance pta ptc))
1 N* w" ]5 t) |& ^( Z. O1 ` - (setq Y (distance pta ptd))0 [6 ^4 i4 [! u8 A1 B w/ k
- (setq X1 (rtos x 2 1))
: n5 E, T( M; A7 } - (setq Y1 (rtos y 2 1))
0 p9 ~6 ~2 C1 m8 W( l, g5 K - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
* R* J, X" K; v4 ]% ^4 ? - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
- o; s$ p/ t! f1 ^- H1 P - (defun dtr (angg)
9 ^0 _" E/ k2 X+ R$ H - (* pi (/ angg 180.0)))
8 h; F. `% @$ Y8 n
+ [( q( E2 t" q2 ^6 |- ;=====================================================================3 r! Q1 t U( b8 h
- ;==========================DAT KHO GIAY BAN VE - KIEU 1========================* l* }+ m1 Z% J( D. D
- ;=====================================================================
' a0 l5 B, B2 Z7 L. ^
, p6 N7 n+ b9 d0 ^2 J3 ^7 d% \- (Defun c:a6 ()) d5 r* x% l& e8 G* Z
- (setq mv_sc 100);Ti le ban ve- L$ X- w& Z; F
- (setq x4 74.25)0 x" X" Y0 q% S$ C) Q
- (setq y4 52.5)
* X5 s- x; M9 U, q/ o7 A8 T - (setq x4 (* mv_sc x4)
* q5 X8 [$ R, s6 N { - y4 (* mv_sc y4) )* p Q5 N( ^0 u- |3 ]) O
- (command
" J; N( j6 x; W$ l8 T) v7 H - "LIMITS" "0,0" (list x4 y4)
9 ^" m3 O& S, l0 b6 m - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
2 J, Y" w* g% y) } - "RECTANG" "125,125" "@7175,5000"3 X* I7 D7 T; G
- "RECTANG" "175,175" "@7075,4900"2 \: b: ?7 E+ A2 _7 t! h' e, c9 }
- "ZOOM" "_a" ))4 o6 U {& R3 x& Y. z! A! R
- ;=====================================================================
+ G' h8 q6 O+ ~. T1 S3 B' h5 ? - (Defun c:a5 ()
* Z& @* a7 {3 ]' E# M - (setq mv_sc 100);Ti le ban ve
* A+ K" h# [1 V$ ]! s8 M - (setq x4 147.5)- u0 E/ _7 T U% {! i0 J) F" e! o
- (setq y4 104)
% k, }$ H- T+ }; e3 V! U. [3 O9 D - (setq x4 (* mv_sc x4) - n( w* V/ u1 ~' \* p2 M( f9 m; h
- y4 (* mv_sc y4) )
. D( T' m2 q" G3 \ C" m g m - (command
" @$ e- W: J3 o) E" b% g - "LIMITS" "0,0" (list x4 y4)7 y: ]' I: A- N5 N5 P' J3 ?% d
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
5 w$ O5 z4 Z4 |# T: q - "RECTANG" "250,250" "@14350,10000"
+ t+ I# c4 W1 O/ p - "RECTANG" "350,350" "@14150,9800"
3 ^" W/ }5 E4 H8 m - "ZOOM" "_a" ))
& P, o2 h/ X0 G2 s+ w/ N - ;=====================================================================
+ L% X: c. O# x; S# L - (Defun c:a4 (): I7 ?+ G. X+ |8 |1 s' n
- (setq mv_sc 100);Ti le ban ve
% }- {. l! b% [. X) O0 [) f# e - (setq x4 297)7 V: k9 }6 L( s& o
- (setq y4 210)( k9 S2 C4 e& W) f9 \
- (setq x4 (* mv_sc x4)
8 c' y e w0 w0 y \# f) Y. N - y4 (* mv_sc y4) )3 B9 t5 c0 H2 \' v# Q
- (command 9 l! \; w! _8 V/ p6 P; T8 F
- "LIMITS" "0,0" (list x4 y4)5 ~) ]: C/ ?& X% l- r
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
' g2 T, \, B# m/ O - "RECTANG" "500,500" "@28700,20000"
2 k8 P1 J' x$ h! _( ^ - "RECTANG" "700,700" "@28300,19600"
# C; h4 ^9 l# i% F6 [$ W( Y - "ZOOM" "_a" ))
3 a- d& K& E. f3 f( Q - ;=====================================================================
! Y: u" }! v+ c+ B$ E: _ - (Defun c:a3 ()
& J3 L0 ?# X; R3 V" @' y - (setq mv_sc 100)
$ G( r2 V& Y/ o8 x2 z1 |. E9 t4 [/ P - (setq x3 420)
; _' a( a5 R2 { - (setq y3 297)
7 G/ Z# V$ G: m - (setq x3 (* mv_sc x3)
5 D$ n8 e% ?3 ?4 x9 S7 ~) o - y3 (* mv_sc y3) ); c$ T. S6 K# j+ g6 a, Q" Y% n
- (command 7 W' V/ h" Y5 m: k2 B/ M! V
- "LIMITS" "0,0" (list x3 y3)
, [$ y2 @" p9 ^7 Y6 J - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"; Q* s4 G6 q2 o6 N
- "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"
: V% {0 ]$ L z g p - "RECTANG" "990,990" "@40024.28571429,27720"; e8 T$ ?/ g. C3 I. X
- "ZOOM" "_a" ))" w* K. ]6 h! P7 z5 @0 M' Y
- ;=====================================================================
2 i( U2 q/ X9 P, x5 w/ R - (Defun c:a2 ()5 G5 L( G. T( C
- (setq mv_sc 100)1 p Z0 {, n" x/ a; D
- (setq x2 594)* f2 P: t3 I$ R' {0 g
- (setq y2 420)9 T* T) Z( ~7 n$ F+ A0 m. [
- (setq x2 (* mv_sc x2)
7 D* e" d0 s1 C. z+ s. U# \/ }$ | - y2 (* mv_sc y2) )
# W' F' N. E9 _ - (command
8 ^1 L! J8 n, g+ J - "LIMITS" "0,0" (list x2 y2)$ q4 U7 s0 y9 o( C8 n. _) Y7 [
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"+ y+ f" z% A. m: ]0 p+ j
- "RECTANG" "1000,1000" "@57400,40000" z$ A; g; V6 b g
- "RECTANG" "1400,1400" "@56600,39200"
# \: T5 B6 b+ W. { - "ZOOM" "_a" ))6 Z) F* k0 x4 Z' R
- ;=====================================================================
0 A$ R8 a0 F" r' ] - (Defun c:a1 ()! I' W% Y% F) V/ N& w8 w
- (setq mv_sc 100)! D0 u0 r# y; l6 T. R7 y
- (setq x1 840)+ k# _; [6 E1 I( o- E# `5 b
- (setq y1 594), J- P8 g4 ?/ ?. W/ u3 A8 f5 r9 ?
- (setq x1 (* mv_sc x1)
/ i9 v: Y/ i3 s) k" R' W - y1 (* mv_sc y1) )
/ O G2 \# H, q0 }" }) m% y - (command 2 i; [. o$ l3 [, b! ~& u2 _2 [
- "LIMITS" "0,0" (list x1 y1)
; u3 X0 ]) a) j& t, F0 V% f% D - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
e3 V4 G; G) w; w2 I - "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"
5 K' V' U. W$ y1 p @1 s; m - "RECTANG" "1980,1980" "@80048.57142857,55440"7 c7 _. j" m4 c, B( E! ?3 L; T
- "ZOOM" "_a" ))1 C4 F% s" h) h/ Y* v4 u' [" _
- ;=====================================================================
, ]# r/ t2 D- v1 j8 x& G% A1 N- R - (Defun c:a0 ()
, O5 i( q; z, i$ t5 y& p$ { - (setq mv_sc 100)
( n- z+ _7 n+ W" s0 @1 v - (setq x0 1188)8 ~" k7 _+ A- P9 n7 K( j
- (setq y0 840)
0 n9 F* P+ w; C0 i" P - (setq x0 (* mv_sc x0) / D8 n0 t9 |; `$ U# g+ X4 w
- y0 (* mv_sc y0) )2 E& J4 ^/ ?6 u. Z8 n
- (command
% t i* Y$ A! Y0 t+ P: c" z - "LIMITS" "0,0" (list x0 y0)
8 K/ x! H& e# `6 z" Y+ Q; @ - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C": F& s1 W4 c8 v. P$ u) J
- "RECTANG" "2000,2000" "@114800,80000"4 B% [( ^4 Q: c9 E
- "RECTANG" "2800,2800" "@113200,78400"* {) b; x, t1 I
- "ZOOM" "_a" ))
s3 c U2 R* n$ Z3 X( P& Y
3 R- Q. l& G+ l- ;=====================================================================
5 X m( N0 O5 ~- Q - ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================
- u& L& }1 H M: p7 i) A: k9 f - ;=====================================================================& n" m4 e! X2 E: o
- % b( R7 U, q7 J; t% h7 \% ]
- (Defun c:6a ()
- K0 R) i/ r4 J Z* _' @- i - (setq mv_sc 100);Ti le ban ve. @ }9 \' z, y0 O
- (setq x4 74.25)
/ [- K* \0 `% @3 u1 Y7 W9 x# F - (setq y4 52.5)2 c$ S2 H" H3 }7 E$ F
- (setq x4 (* mv_sc x4) - R4 C& P: G8 {
- y4 (* mv_sc y4) )& C* d X* j8 B7 }9 z1 [/ d0 C
- (command # N3 E2 c% J9 {
- "LIMITS" "0,0" (list x4 y4)
4 _" ]0 v3 `/ w% q- s - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"3 D4 ~" N3 \4 G- B% A/ `& B
- "RECTANG" "505,125" "@6800,5000". Y4 K) j* z5 d% C* T0 e
- "RECTANG" "555,175" "@6700,4900"; s/ Q; ?8 x7 f' {3 ^' k
- "ZOOM" "_a" ))
O' |1 Y$ P' i: Q0 n! H0 b3 N% n - ;=====================================================================
5 G. z( U H$ e% W - (Defun c:5a ()
# H* e1 Q; O! _ - (setq mv_sc 100);Ti le ban ve$ B# s7 Q, G' Z0 ]" o( `
- (setq x4 148.5)& F3 g7 X( z3 d9 A
- (setq y4 105)
' k' A, X% [: a$ s% g. E- D( L - (setq x4 (* mv_sc x4)
& K' `3 o4 C7 N) b - y4 (* mv_sc y4) )
/ C6 s2 X- \3 m: s r& g - (command
9 Y0 l# e O# U! ^5 h6 N - "LIMITS" "0,0" (list x4 y4)8 `( A3 A- R5 X
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"" }; m' }- |( q7 n
- "RECTANG" "1000,250" "@13600,10000"
6 |- Y6 ]: w4 Q1 L8 P5 J3 ` - "RECTANG" "1100,350" "@13400,9800"2 G! ]2 X Z; {' ?. X8 d' p {+ A4 `
- "ZOOM" "_a" ))
# B2 P7 Q+ W, x9 G3 S: M, i2 g - ;=====================================================================
7 } W, `; V$ {% r" a6 j - (Defun c:4a ()
/ _' J& K, y8 i6 ?0 S+ E - (setq mv_sc 100);Ti le ban ve
$ ?+ |$ ?! V' @7 g: g" s$ m# n - (setq x4 297)! b! g3 f3 }1 s8 n! J9 O% o+ |
- (setq y4 210)) I7 x6 H& ?% P
- (setq x4 (* mv_sc x4)
: C. B1 w2 z7 W( B - y4 (* mv_sc y4) )
* z c. F3 s2 ?) m- g$ b4 W - (command
: Z5 Q6 D5 \3 w- D6 ^1 v6 Z: E$ n6 ? - "LIMITS" "0,0" (list x4 y4)% l# Z0 t7 Z! V
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"% F9 H M9 U) ^/ @( o2 l
- "RECTANG" "2000,500" "@27200,20000"
" I) Z6 Z. a$ f# p7 l - "RECTANG" "2200,700" "@26800,19600"3 O, f: Q8 p' N2 D7 p
- "ZOOM" "_a" )); S0 u$ t. R( W0 L* U5 J! y
- ;=====================================================================
. U5 O0 `8 D) L q - (Defun c:3a (); z# a2 k3 g0 T4 i* C4 @1 y
- (setq mv_sc 100)
2 O1 @5 {8 t1 A& ?7 [) p - (setq x3 420.0428571429)
1 U, v- P5 G9 B+ F: \; E - (setq y3 297)' e; ?( i$ J' H. h3 |& Z8 p
- (setq x3 (* mv_sc x3) 0 n) y; W2 K% N7 ~7 j# x9 @
- y3 (* mv_sc y3) )
$ Q/ h: W( i' ^: ~7 b/ x( y - (command
( E( C$ l7 W5 i, E3 u2 J* w6 D - "LIMITS" "0,0" (list x3 y3)
2 [6 N% R- H* o - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"$ s, I' ]4 Y2 }# N8 u
- "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"0 S& e5 ?* A- G- u+ B8 E {
- "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"
8 H/ Q; T( C0 n% A# s/ C - "ZOOM" "_a" ))
2 l$ s7 K4 L- X3 j8 { - ;=====================================================================
5 Y3 E7 H0 z0 l7 r3 x6 s - (Defun c:2a ()+ a2 C/ J+ R4 v: E: l. s! r0 z
- (setq mv_sc 100)
( E$ q7 l3 e* `! U. i - (setq x2 594)( G# `- f. o$ Q0 e, L n
- (setq y2 420)0 s: E# S& b) z5 w9 Q
- (setq x2 (* mv_sc x2) ^% L, q$ q0 a
- y2 (* mv_sc y2) ); K- [0 X" p% F4 w# ^9 d1 q' h
- (command ) X4 W) e% A7 |7 f T$ h
- "LIMITS" "0,0" (list x2 y2)' P5 I, J/ K, S h2 i' ?/ E1 B% ?$ B
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"' u4 H6 v/ m s ? @1 }2 x, Y$ _
- "RECTANG" "4000,1000" "@54400,40000"- u; {' A/ e6 [% H( E
- "RECTANG" "4400,1400" "@53600,39200"
& N" j" b- W2 d0 j* y) h - "ZOOM" "_a" ))+ O' X' Y( n5 \- T, k8 ?
- ;=====================================================================
* P. X K$ d, t: o {1 D/ C - (Defun c:1a (): c1 B& i4 _" _$ [0 c
- (setq mv_sc 100)
, `6 S t( l+ t2 o- D - (setq x1 840.0857142857)7 k7 y8 Q' j' [% N# A
- (setq y1 594). i4 K; L; X$ p/ E
- (setq x1 (* mv_sc x1) 3 z, L* H0 r7 M& a
- y1 (* mv_sc y1) )6 h" X, s* x @
- (command + _" W0 x) q! c0 R
- "LIMITS" "0,0" (list x1 y1)
3 F* r8 M) {# ^* E - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C", D7 @9 r9 D+ v. O: A3 @# g
- "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436". y( ?2 w& D) c1 [3 l8 v
- "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440". O( q! n8 G- l* b# J& d7 F
- "ZOOM" "_a" ))2 M: Z7 X/ ^8 C
- ;=====================================================================
5 T$ G; h8 K+ B6 J- _! U& K - (Defun c:0a ()
6 c* T" J6 H' M* ] - (setq mv_sc 100)8 s; q# U; A# i: o) z$ @
- (setq x0 1188)
' E8 X8 o) {5 m - (setq y0 840)' w: i0 |- u. F# l5 e
- (setq x0 (* mv_sc x0)
6 ~+ \) y; l. V- r O# k6 X C - y0 (* mv_sc y0) )
; Q D6 y/ m. C% L$ n4 V+ G - (command 9 t' c. F3 }7 Z, Z4 r
- "LIMITS" "0,0" (list x0 y0)1 Z; y) g3 J+ ?; h: k
- "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"8 O+ [9 q4 D# b8 G
- "RECTANG" "8000,2000" "@108800,80000". d2 H$ t6 [& }* ^9 y" T
- "RECTANG" "8800,2800" "@107200,78400"
6 ?/ m5 a9 Z' F" q - "ZOOM" "_a" ))' F+ J' f1 H2 w2 k
- - B, N+ V& t) n9 k( O
- ;=====================================================================* q7 R9 G5 a* T, S/ X3 A1 V! v
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================
4 _. C2 I+ @) c: k6 e+ c; u - ;=====================================================================
0 D/ C; T" g: G/ \: @ - (defun c:khogiay (/ oldlst a b c d e f g h kho TL)
' j% Y5 J6 U, [6 n: S( { - (command "undo" "be")
. P" z+ Y1 @8 ? - (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))8 L+ a' f' Y+ D! u7 w
- (setvar "CMDECHO" 0)2 h& O1 i2 ^9 p. u# n4 U; l( m4 K
- (setq a (getpoint "\n chon diem chen :"))! x: p" M, H0 x3 e, T6 f: e
- (if (not TL) (setq TL 1.00))
! s0 c1 p0 a7 a/ c" A4 E# o% R - (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))
* i! [9 j. X2 r6 a4 N- s1 R) _. j+ U - (if TL1 (setq TL TL1))8 M1 X& @% l A% K5 ?) @
- (setvar "osmode" 0)
9 ?$ i9 o2 V) y n) \9 d; X - (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" ""))
1 [' C5 \( \8 V8 F. N - (initget "0 1 2 3 4")
. W4 q. ]5 @* b) L - (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))
5 k% T: Z6 o; b6 @ - (if (= kho "0")
# S1 P. `# Z- o6 ^: [0 Q3 @ - (progn5 ]8 O) A; D7 [1 r
- (setq b (polar a 0 (* TL 1189)))' h' }5 x: p) P9 |# G1 S5 c+ K7 s
- (setq c (polar b (/ pi 2) (* TL 841)))
2 ]& m' d& E) S# T# v - (setq d (polar a (/ pi 2) (* TL 841)))- {; `' p a; q9 ]
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))( ^6 S: P. M* d
- (setq f (polar e 0 (- (* TL 1189) (* TL 24))))
& n' J# d; s/ [. s3 E1 f - (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24)))); D' V1 X/ `/ j
- (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24))))
. D- f* G- K( K3 c" o# i+ V - (command "Pline" e f g h "c")
$ J0 w8 }" Y# ~ - (command "change" "last" "" "properties" "layer" "0" "")% W9 Z: R3 ]6 k+ P
- (setvar "cecolor" "4")' ~/ N. t- h% L8 U6 l
- (command "Pline" a b c d "c"): C" i. E9 v; g- Q7 J# ^* w) ]3 t' `
- (command "change" "last" "" "properties" "layer" "defpoints" ""))) ) M* ]. F/ G0 {
- (if (= kho "1")' k. }3 {( {* Y9 ^5 n4 f
- (progn
+ r4 B+ I! g" n2 J; t - (setq b (polar a 0 (* TL 841))) A, j w3 B2 S% N' h
- (setq c (polar b (/ pi 2) (* TL 594)))
: f) K) S; c9 v- g5 l - (setq d (polar a (/ pi 2) (* TL 594)))
9 K- e! x; W, N1 J+ t/ @! t - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
- {. n0 X8 R- f7 Y" b7 F' [ - (setq f (polar e 0 (- (* TL 841) (* TL 24))))
7 Y0 J1 g) o8 l0 M- ^, |9 i - (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))6 t3 _2 `8 P6 }: T
- (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))# j l0 P( P2 l
- (command "Pline" e f g h "c") : U7 o& U) I) e+ y$ H" R, O
- (command "change" "last" "" "properties" "layer" "0" "")8 M! U" d7 \7 f
- (setvar "cecolor" "4")3 C& G- @/ @; j8 r
- (command "Pline" a b c d "c")
& `% S. W" r$ I - (command "change" "last" "" "properties" "layer" "defpoints" "")))
9 s9 v% `2 x% _* y - (if (= kho "2")% m4 \9 F3 g7 n. [4 t
- (progn
7 ~( ^3 H6 M% E, a9 X - (setq b (polar a 0 (* TL 594)))
$ [; o* B3 @; D: h! ? - (setq c (polar b (/ pi 2) (* TL 420))), D# J% |- J* p3 G$ X% b# E
- (setq d (polar a (/ pi 2) (* TL 420)))
; G, ~: H8 O; V1 Y" r) T! c8 N; y - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))
$ ^" r( X1 R' B8 h$ U3 N - (setq f (polar e 0 (- (* TL 594) (* TL 20))))
! p: D: k; G! O/ [ - (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))5 x* p4 U! g3 y. ]! H
- (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))
' @# T+ `1 U& O2 x - (command "Pline" e f g h "c")
# f% Z% {! q' H$ y$ e/ ~3 Z - (command "change" "last" "" "properties" "layer" "0" "")
% i* |. F4 O: H8 X - (setvar "cecolor" "4")4 c3 B# w/ U) Y$ F. E' e3 ~
- (command "Pline" a b c d "c")
2 T8 Z" b) z- |2 q# D - (command "change" "last" "" "properties" "layer" "defpoints" "")))
! V6 c: C) ], z! _9 p8 x( p - (if (= kho "3")' Y/ n! T' x, H1 G ~
- (progn$ k8 c- Z! m* _2 y4 o3 k h7 c3 m
- (setq b (polar a 0 (* tl 420)))0 P2 h* e2 p: \
- (setq c (polar b (/ pi 2) (* TL 297)))
5 R4 p3 R& T% K) _+ E @: @( T - (setq d (polar a (/ pi 2) (* TL 297)))
: \% D& ~& y% _: j) F1 O5 S Y - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100))))): m; a- T& p- a) u$ F
- (setq f (polar e 0 (- (* TL 420) (* TL 20))))
8 n/ Q0 B+ s: C - (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))# p) t3 L& I% G
- (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))
+ S; F. P( n- `+ O8 }5 Z7 G7 ~2 m) | - (command "Pline" e f g h "c")" p6 y, T' e/ A( m& a* l9 _, y; C
- (command "change" "last" "" "properties" "layer" "0" "")& ?8 F& K, ?' k% [
- (setvar "cecolor" "4") w0 M/ [/ V- w3 q* n" X' H
- (command "Pline" a b c d "c")
* O8 y- i9 _2 z8 F0 `% k - (command "change" "last" "" "properties" "layer" "defpoints" "")))
5 C$ a0 ?8 t$ N/ U1 ` N - (if (= kho "4")- ~* t* _# ^9 j, Q- W
- (progn
0 a6 q ^0 ]0 o0 s - (setq b (polar a 0 (* TL 297)))
' r* S( F7 ?7 ^/ K m$ z3 L - (setq c (polar b (/ pi 2) (* TL 210)))
0 [5 z. l/ Y* H& U2 b0 B4 h - (setq d (polar a (/ pi 2) (* TL 210)))* H) M* x2 {. r! v
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))/ c( v# s5 o7 K, ~9 ]
- (setq f (polar e 0 (- (* TL 297) (* TL 18))))6 \9 D. R. I$ C. r
- (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))* O4 D4 l- @8 d7 L3 v4 ^
- (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))
& p6 Q0 c# T3 O( T2 H: L* M - (command "Pline" e f g h "c")
; K' a0 L' s+ h - (command "change" "last" "" "properties" "layer" "0" "")
A- T1 I8 n, B0 ~ - (setvar "cecolor" "4")8 t: _! M% f% y+ G+ N; K
- (command "Pline" a b c d "c")
+ y4 o5 L3 R: A7 ~ - (command "change" "last" "" "properties" "layer" "defpoints" "")))1 L5 y, R! G. ]% {8 e
- (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)) a) V8 o2 J) }" f; `
- (command "undo" "e")
" R- r2 \ `# d - (princ))$ _# n3 G6 j. J" c) Z
- ;=====================================================================, h% u6 p9 W! o l7 k& R
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================+ ^& B' o4 c% b9 h" j
- ;=====================================================================
! S/ d6 s a! b2 c
' H" a! T% `. x: U; n3 x- ;=====================================================================1 B2 K6 U# T$ g: I6 ~& A
- ;===================DAT Ti Le Theo KHO GIAY BAN VE====================6 |, a4 U4 ^6 E! U. J' M9 K
- ;=====================================================================" }% [. V% ?) ]- m
- 1 f% [/ c* t5 M2 ^1 N0 Y1 D# I
- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
( V( b) t2 u( w. g; ^' L - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""
/ B7 Y6 V- M. N* z2 L, e - "M" "MANH" "C" "9" "" "Lw" "0.1" ""
4 [( B9 Z& o5 ~4 y/ ~8 B - "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
5 I) W8 E# r: A+ u - "M" "DIM" "C" "1" "" "Lw" "0.12" ""
6 N8 N i T# S& C - "M" "THAY" "C" "7" "" "Lw" "0.2" ""
) W1 E* |; l4 Q - "M" "NOITHAT" "C" "3" "" "Lw" "0.12" "") ` v0 v$ I- s! T; a# m
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""
: W! D, H: O/ |( q2 l/ g - "M" "COT" "C" "1" "" "Lw" "0.3" ""
U& {% s1 G; M$ {' N4 L - "M" "Defpoints" "C" "7" ""
/ T; l* o% a3 l" G - "M" "0" "C" "3" "" "Lw" "0.12" ""' S6 Y" j8 V; n# H/ D0 N9 e
- "M" "CUA" "C" "6" "" "Lw" "0.12" ""
7 Q' J/ L9 W- q3 z9 X3 i - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
% A" a- Y; j. `, B* Z" N0 ? - "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))
! g4 M9 x% a* j! N - (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" ""3 t( Q+ J" i7 P4 U2 }2 Z1 e
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""- Z& F2 e2 R4 n c
- "M" "MANH" "C" "9" "" "Lw" "0.12" ""
5 J( [* t @! Q- H2 y5 w/ X - "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
/ P9 o4 t* L/ S# K0 t - "M" "DIM" "C" "1" "" "Lw" "0.2" ""* Q& j# Q6 b- h5 g
- "M" "THAY" "C" "7" "" "Lw" "0.2" ""( k" d* E2 H }+ e; u
- "M" "NOITHAT" "C" "3" "" "Lw" "0.2" ""
' {9 ~2 c" N |% M- Q& x7 L - "M" "HATCH" "C" "5" "" "Lw" "0.1" ""% s4 \- v2 ~, ?+ |3 s3 P. Z+ n
- "M" "COT" "C" "1" "" "Lw" "0.4" ""
% t) ^/ h* m( w( [- z6 N/ w( L- V( a - "M" "Defpoints" "C" "7" ""
m# z. a% H- b8 Y - "M" "0" "C" "3" "" "Lw" "0.2" ""
* W3 `0 {8 G! d" Q - "M" "CUA" "C" "6" "" "Lw" "0.12" ""
! [, f( U, x: y6 L3 y - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
7 ^: G% T* ~% s" c4 d - "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))
' p& C: L* v9 `/ l! N0 O: N. ^" ^7 d - (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" ""
0 Q* C1 c! A$ p* M. q% H& ? - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""
6 `8 Q! m4 J4 o# I$ R - "M" "MANH" "C" "9" "" "Lw" "0.2" "". [% Q6 M& K: n
- "M" "TEXT" "C" "7" "" "Lw" "0.2" "". x+ s0 K7 i* n0 ~) Z# m3 K" D. `
- "M" "DIM" "C" "1" "" "Lw" "0.25" ""
: N8 \+ H8 c; z- P% ]+ f+ ^* m - "M" "THAY" "C" "7" "" "Lw" "0.35" ""
: ~8 D( H+ E( r, o - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""
8 u, x5 [0 X/ _ - "M" "HATCH" "C" "5" "" "Lw" "0.15" ""& x# e: u7 Z- J8 T
- "M" "COT" "C" "1" "" "Lw" "0.6" ""
& x: c0 O+ G) Y! _1 q7 R - "M" "Defpoints" "C" "7" ""
6 ?9 |: c# N5 R2 _7 l5 } O7 s - "M" "0" "C" "3" "" "Lw" "0.25" ""2 J W8 b! g& X# T9 c# v0 s }
- "M" "CUA" "C" "6" "" "Lw" "0.25" ""
# r" f) I# i; B& H1 w - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" ""
5 Q* k3 t1 z* O+ b - "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))9 l' ?0 S( A9 i( P( x9 j
- , r) g. i3 s+ p O; f( x; f# t e
- (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""/ c9 e1 r! Q6 [6 A$ l
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
; `- {6 m3 `% x; J - "M" "MANH" "C" "9" "" "Lw" "0.25" ""
1 v8 G& l% g$ M& p9 u - "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
" P; w1 ], i# h* S - "M" "DIM" "C" "1" "" "Lw" "0.35" ""
% F( d4 v- g3 w3 ~& ]& m - "M" "THAY" "C" "7" "" "Lw" "0.4" ""
! w1 H0 ^4 q: G- Y, `$ Y& v - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""; v3 c# [" k, }' O: m
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
/ I" Q% D7 q1 ^1 |4 f8 Q4 T- S. [ - "M" "COT" "C" "1" "" "Lw" "0.7" ""
) R$ l- l Z# \. g# q - "M" "Defpoints" "C" "7" ""1 A- o7 H! L* f/ P% D
- "M" "0" "C" "3" "" "Lw" "0.25" ""& g; X1 w, k& f. _* y2 E& A! {, {8 M
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""
4 p3 O+ Y! c1 |. o - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" "" R" F! I4 i( i; F# H
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC)
0 X _6 @5 t% u% P+ d: G
# `0 w3 l9 N# o1 w) Z- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" ""
& r! a) [ \& ? - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
$ s8 |5 ?4 Y8 A) x9 ? R - "M" "MANH" "C" "9" "" "Lw" "0.25" ""
9 L- L+ K1 e" ~ - "M" "TEXT" "C" "7" "" "Lw" "0.25" ""! m3 n! n0 U: B# Z! ?' `
- "M" "DIM" "C" "1" "" "Lw" "0.3" ""
; o$ {" } l* m$ b3 b, O$ e" f - "M" "THAY" "C" "7" "" "Lw" "0.4" ""8 v9 t- [1 _2 j
- "M" "NOITHAT" "C" "3" "" "Lw" "0.3" ""6 Z; L/ I4 t* L. ?
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""$ X& ?7 w0 `/ k% q/ g/ h
- "M" "COT" "C" "1" "" "Lw" "0.7" """ O5 o: G" Q; K1 f7 D
- "M" "Defpoints" "C" "7" ""
9 Y1 C! u6 s: j9 z+ K/ r: K Z - "M" "0" "C" "3" "" "Lw" "0.35" ""( _4 V7 k, {: y: Y( _
- "M" "CUA" "C" "6" "" "Lw" "0.35" "", x" ^1 \# L& D; c
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
" p: b0 }, v7 m$ \9 q - "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))
$ n7 d5 m+ A m: T - . N2 C4 ~1 Z! V* u2 F% J6 `- f
- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" ""
8 \3 b* L7 ?) j) K+ P1 r - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""% g$ ]+ f. {8 Z0 ~0 G
- "M" "MANH" "C" "9" "" "Lw" "0.35" ""
& M0 Y, o2 e- B0 ]: `; X- E - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
' S- z3 _/ t0 ^" K6 h" E3 j( I - "M" "DIM" "C" "1" "" "Lw" "0.35" ""
9 G" ~2 H/ N3 F8 K& p k7 ^ - "M" "THAY" "C" "7" "" "Lw" "0.4" ""/ ?1 R0 J& |5 c: T( J; d# x
- "M" "NOITHAT" "C" "3" "" "Lw" "0.35" ""! S. |. e' _9 N
- "M" "HATCH" "C" "5" "" "Lw" "0.25" ""
1 m& R1 b" E$ x! R1 j p2 c - "M" "COT" "C" "1" "" "Lw" "0.85" ""
- l" O, v# @. i" p8 E( T - "M" "Defpoints" "C" "7" ""
5 T4 p/ P: P. n - "M" "0" "C" "3" "" "Lw" "0.35" ""
4 P* L; y# D: x& { - "M" "CUA" "C" "6" "" "Lw" "0.4" ""
8 O! E; X, \) d0 W4 q* K1 g - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" ""
+ Q- l5 g/ z3 N4 ~$ f - "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))
1 ^3 Z; d: p' [) I) n - 1 w0 ?' R/ G# S/ r
- (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""* {7 D+ J* e1 ^) @, W7 p7 y* `
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" ""
! w0 }5 t- ~* a0 a - "M" "MANH" "C" "9" "" "Lw" "0.35" ""
) A/ W9 l* J# T; c1 ?/ W- F3 V$ l* Y* N( O2 O - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
+ C/ M' O: g5 Y$ G q1 Z' H - "M" "DIM" "C" "1" "" "Lw" "0.35" ""
2 l' F+ F3 V; b: u" V; E - "M" "THAY" "C" "7" "" "Lw" "0.5" ""# d3 M3 O' U5 o7 _
- "M" "NOITHAT" "C" "3" "" "Lw" "0.4" ""
& U. Y0 W8 ^) W7 D% p: t% ^ - "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
. o6 d: |2 p1 P+ d) M9 a1 m$ B - "M" "COT" "C" "1" "" "Lw" "0.1" ""
1 U. S$ |. O1 l6 V - "M" "Defpoints" "C" "7" ""; z) m1 }4 G. Y6 ]/ C+ |& t
- "M" "0" "C" "3" "" "Lw" "0.5" ""
1 M2 n; d+ P: c# ?( D! O - "M" "CUA" "C" "6" "" "Lw" "0.5" ""
; ~$ M& k! T# A8 Z - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""
; w- j- J% Z" {1 p& R" P) r - "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))0 Q9 ~" ^; O) I: [' C6 C
- (DEFUN C:O () (COMMAND "OFFSET"))
+ T' g, f5 x8 O* C2 R, _7 y - (defun c:s1 () (command "surftab1"))
0 U" w9 @: R3 M" ~ - (defun c:s2 () (command "surftab2")); @9 W' s+ Y! ]9 d! k4 J
- (defun c:ep () (command "explode"))' Q: Y- e, k$ N" r: P
- (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))
4 T7 R: Z. O1 I' `1 i - (DEFUN C:QV () (COMMAND "QSAVE"))
/ F# h. @' Y0 ]* o- J - (DEFUN C:S () (COMMAND "STRETCH" "C"))4 T/ q! }+ B% c6 Y x
& z, c. B7 e0 i2 s+ {, P- ;************************** CAT DIM **************************4 l$ x' i3 V+ U E6 l9 Y8 q/ |" \
- c; r5 V6 F0 D; j) t1 Y- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I& y/ r/ M. O# m1 |
- PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)2 e" |3 W( J$ u7 h9 C
- (SETQ CMD (GETVAR "CMDECHO"))$ k" b# `" R+ q. J! D/ s
- (SETQ OSM (GETVAR "OSMODE"))
) a T( S2 J6 u0 t! @3 `) f- O - (SETQ OLDERR *error*
- ? V3 t7 S0 N( T& k, ^2 \ - *error* myerror)8 Y0 Q) V" r$ k) P
- (PRINC "Please select dimension object!")
/ G% m5 e- u9 e2 T$ n - (SETQ SS (SSGET))9 [& ^: q. x+ r" d9 f i
- (SETVAR "CMDECHO" 0)6 x7 e8 M, f' N2 g! [( Z( m
- (SETQ PT (GETPOINT "Point to trim or extend:")): e$ K# x; F" ]' s {) ^
- (SETQ PT (TRANS PT 1 0))* d* ^3 V& p( T" h$ f
- (COMMAND "UCS" "W")) I" A1 @# ]$ |6 K3 S/ B/ S. y
- (SETQ LTH (SSLENGTH SS))
! J8 K7 j( x# u - (SETQ DEM 0). P2 z6 m3 i* F/ T
- (WHILE (< DEM LTH)) u6 {" C' R) F8 d/ L4 \3 b
- (PROGN; W6 _6 N8 p e9 H
- (SETQ DS (ENTGET (SSNAME SS DEM)))0 a' @$ g% w# y' b. b" P' E+ G
- (SETQ KDL (CDR (ASSOC 0 DS)))/ Y& A2 j; a1 Z8 W7 F3 H C/ R; p
- (IF (= "DIMENSION" KDL)6 d, U# t: Y- C3 h: M, g/ l
- (PROGN
! R* G8 V S6 s2 R( q! v* Q4 ` - (SETQ PT10 (CDR (ASSOC 10 DS)))3 D' a) J" j" \/ L! F7 Y
- (SETQ PT11 (CDR (ASSOC 11 DS)))
$ z9 y; L' p) w2 H. x- K - (SETQ PT13 (CDR (ASSOC 13 DS)))# h! x6 Y) B6 x$ h( |) W
- (SETQ PT14 (CDR (ASSOC 14 DS)))% U8 [; O& g7 I+ ]- O; F- d. c
- (SETQ N70 (CDR (ASSOC 70 DS)))6 W- M+ Z* s8 }2 ^/ P% y
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
5 Z% a1 h1 }9 D! K - (PROGN! A% c; m& H* q8 K4 ?
- (SETQ GOCY (ANGLE PT10 PT14))
! {( A7 y! Z8 B; |+ \ - (SETQ GOCX (+ GOCY (/ PI 2)))
# a8 ^, A f$ i' }0 {1 ^( }6 [: r - )0 ^2 s8 z. @1 L" ~( C& l+ N6 G
- )
7 c F9 ^. R7 y2 h% a3 r9 t* [ - (SETVAR "OSMODE" 0)
# p8 |+ n8 i" S) b7 u2 w - (SETQ PTI (POLAR PT GOCX 2))
, }+ C, e/ {+ R& G2 n - (SETQ PT13I (POLAR PT13 GOCY 2))
! P# W/ H( @8 @' ]9 n - (SETQ PT14I (POLAR PT14 GOCY 2))
; {* F5 y( R* O3 i+ o - (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))5 R5 B! T9 n6 m0 s. a# ?3 B
- (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))* s$ u- m- I2 x5 j M8 l4 T0 `
- (SETQ O13 (ASSOC 13 DS))
; Z8 f1 U4 S* P) O - (SETQ O14 (ASSOC 14 DS))
; O. ?! K' n7 ~; O6 c9 C - (SETQ N13 (CONS 13 PT13N))5 |+ t# w X6 d6 k% r8 T+ h3 X7 H
- (SETQ N14 (CONS 14 PT14N))
# ?3 N" ?/ L m" M7 [! \0 z% Z - (SETQ DS (SUBST N13 O13 DS))
1 _0 w- n" f4 r8 o - (SETQ DS (SUBST N14 O14 DS))- M9 {0 Q1 @' k/ u/ P/ S
- (ENTMOD DS)
% Z0 U$ o3 f* c- f# [. A2 V - ): c7 y4 n$ ~6 V! ?$ j8 G& l9 S
- )
* d5 c& B, a# W6 Z* R - (SETQ DEM (+ DEM 1))
: J8 a# S# c! {; X' [$ o- {: u - )
6 a0 o$ J& D. w3 W. ~ y$ Q - )
3 P7 H) y2 r% ?( Y N: T# N; B - (COMMAND "UCS" "P")+ }. M& D' O6 ]
- (SETVAR "CMDECHO" CMD)0 P7 X1 f3 C. Z; I5 Q. t' m
- (SETVAR "OSMODE" OSM)
$ y# X( x; y- w2 W) V - (setq *error* OLDERR) ; Restore old *error* handler
6 o$ z3 W" R/ h, z$ ^7 D - (PRINC)
& O* V. ~9 f: m$ ~ - )+ k' u! d' t* `+ @. ?. A( Z' h
- . j% a: Y! J0 C' x
- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI
1 l1 [1 A1 o5 C6 _: z6 @! o* T2 h - PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)- \0 ]/ j& h6 C/ o) B V' B9 A
- (SETQ CMD (GETVAR "CMDECHO"))+ s0 K3 F0 t$ h9 _$ W' P) d
- (SETQ OSM (GETVAR "OSMODE"))
8 s5 D4 B7 ^& o q [ - (SETQ OLDERR *error*# c( Y, @( L5 X" X5 y5 c2 v5 Y! Z
- *error* myerror)( R: w' r6 ?* S' b/ d7 B% z
- (PRINC "Please select dimension object!")
: r) ?* P; R- N& n - (SETQ SS (SSGET))
0 K* e' s* P, F* A _) _ - (SETVAR "CMDECHO" 0)
, h; Z& G5 u; M& t$ N - (SETQ PT (GETPOINT "Point to trim or extend:"))/ _( m* O3 q a
- (SETQ PT (TRANS PT 1 0))
6 H3 v: m& r6 X: _/ B2 X - (COMMAND "UCS" "W")
6 M' }6 t+ V% t, A. e/ Y, N+ x/ o2 ? - (SETQ LTH (SSLENGTH SS))3 Y. @4 c. t$ L
- (SETQ DEM 0)# W; l/ O- P% M& n$ P6 F
- (WHILE (< DEM LTH)/ [; f/ J% I- r) |
- (PROGN
2 q4 T& N; _0 h W! a - (SETQ DS (ENTGET (SSNAME SS DEM)))
& S# c6 M+ Z c* @1 n8 U$ U# c, z - (SETQ KDL (CDR (ASSOC 0 DS)))
6 j, X' ^7 N Q3 J - (IF (= "DIMENSION" KDL)
- ]7 \) Q( y7 x/ ^/ r$ v5 Y - (PROGN5 f0 @' N+ R% I e
- (SETQ PT13 (CDR (ASSOC 13 DS)))
8 [; M' T* w J3 O$ E6 m - (SETQ PT14 (CDR (ASSOC 14 DS)))
: s0 I$ c6 g+ E - (SETQ PT10 (CDR (ASSOC 10 DS)))" }- F8 b, a' t6 M$ i
- (SETQ PT11 (CDR (ASSOC 11 DS)))
2 _2 D% i+ k6 P6 m9 ~ - (SETQ N70 (CDR (ASSOC 70 DS)))% |3 ~; Y" I5 [, z: R
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161)) \1 e' N+ b* y# z6 Q: L, v2 c
- (PROGN* i! X, S- p4 f A' D2 T
- (SETQ GOCY (ANGLE PT10 PT14))
: r2 |: {2 {6 Z4 l8 h0 z - (SETQ GOCX (+ GOCY (/ PI 2))); N. _) Q* j" S
- )
$ ^: P5 I E; `: P - )5 B( t: a+ v/ l/ |+ W
- (SETVAR "OSMODE" 0)" A: h" {! \% S
- (SETQ PTI (POLAR PT GOCX 2))
$ @/ n# p0 O8 b q7 E+ X% m) y/ p - (SETQ PT10I (POLAR PT10 GOCY 2))
! ^ A, x( \$ H - (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))
5 |4 o& r0 M1 m" Y - (SETQ KC (DISTANCE PT10 PT10N))
% G9 f9 N' Y, C - (SETQ O10 (ASSOC 10 DS))
, k. q7 s, {0 e) f) m) D - (SETQ N10 (CONS 10 PT10N))6 e$ m! B4 x! ~+ G6 L
- (SETQ DS (SUBST N10 O10 DS))
; Y! O3 v+ r7 w - (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))( a# t# t0 Z7 O. S9 U. {% {; E
- (SETQ O11 (ASSOC 11 DS))* D, c x$ W$ m1 w& D5 x' i
- (SETQ N11 (CONS 11 PT11N))
5 i4 O1 [" N2 v; G' L; D. Q - (SETQ DS (SUBST N11 O11 DS))
; c7 O# S6 x# |7 p+ |9 P# W - (ENTMOD DS)0 w& L5 Y6 Q5 o
- )
; B* R) Y1 Z! h2 X b+ A7 o - )1 n! |+ O, x# Y% f# e
- (SETQ DEM (+ DEM 1))
% @" Z" G* V- Z; ^# h - )
' ]) A1 i, |5 r" [" }" f - )
$ N& F4 ~" P1 ~! o - (COMMAND "UCS" "P")- t6 T6 I6 b& g; y' {
- (SETVAR "CMDECHO" CMD)
8 D* t0 i2 M$ j* V2 A8 P0 h - (SETVAR "OSMODE" OSM)
* m* N" y4 v5 I& y/ u0 H3 d; J1 V - (setq *error* OLDERR)
3 I5 {' ^+ O9 W8 @, }9 E9 s - (PRINC)
2 |% |8 q2 o- O1 U0 Q) C - )
1 G! ?4 ~9 K/ n) z% i8 y0 V! u - 7 L0 d7 L" C) z0 d& S
- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================
$ A" r" f! V* G3 W. j
C) A( U+ B. ]1 X- i$ P' F% q- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")
% f1 P) l8 Z' K& U2 K) l - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p"). p: b, M) k* v7 j1 m
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt/ r: x9 ?% v1 }7 s% j
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
( w3 u+ E% A5 a4 M - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")# p z: ]" `! R$ \3 W
- (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))
0 e4 l( w' t/ h: z v; v - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
& @0 z `% t7 s2 f - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))% g& z9 Z0 T% k1 Q& I+ Q+ z8 m; J& c
- , D( S. Z( [; Q) d1 [
- ;;; ================ CHEN COT (TUU) =================8 a! f* v7 ~5 N( Z- m- c5 S
- 3 l& [# f: E, ?" g
- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")+ f5 T. b& ?" O0 {4 N. k" l" j
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")( l2 B \2 K% c* I
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt v& r. v1 c6 c8 H
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))( y. ~5 }) v ?4 G/ h+ t3 E
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000"); P5 W: m: `4 _% z) a/ u8 ~
- (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))/ j0 m- C8 t9 p$ p
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))8 j3 S+ i# {7 b5 f! h* Z
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
9 q$ m# u4 l; t* }; Y; B* ^ - , }3 T" X" U/ z! @ X+ @
- ;;; ================ CHEN KY HIEU THEP (TP) =================
" _. o2 E0 A$ e1 Q; c - " f% }2 Z5 K8 B; R! n5 R \5 w
- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")+ k: L0 I3 M5 H) `7 [7 t- j
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
6 H0 J3 y+ r+ D% Q' n - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt. S% r6 }) o& x/ g
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))" L+ M6 b# m! u1 A
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")
; G7 h/ r. Q/ u* m! P6 | - (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))6 B( J) O' B$ s" i& Y
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))- N# P8 d, |9 j; D- T
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
4 x' e1 j# l( W5 x9 c: z6 z8 v - ! g4 y/ y- s* }) R: }
- ;=========================== TAM TUONG (TAM) =================================) x1 a/ Q: x+ Y: T3 |+ G; ~, \
- 2 x2 {8 S* z' s0 b2 E
- (defun c:tam(/ data_m)7 ]. B- j; r9 D0 X9 e
- (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0))! J1 d8 F0 B$ n8 C
- (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))
9 e8 Z+ m+ b- S% V3 \4 _$ m4 E - (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)) Z, A, W3 d( ^: M$ c8 {, j1 ~' q: n/ w
- (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset
! o" Y( r' `; B5 {; C4 D) W - (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr9 v* d: y- o0 }8 X
- (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ)
$ R# k7 ` X7 U( E# ]6 J - )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if
3 a% p7 C7 I2 f+ C$ P8 n7 f+ v - (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1)
6 Q5 q5 Z m% n2 T) I* t; F: F - distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)9 V) i" H' V' r0 a
- (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))8 A4 Q6 N; D, y8 I
- (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<
, Z, d- K: {/ c - (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)$ p( e! ^) K( K4 O
- distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))
3 l5 B4 E$ P8 F5 ^' E5 k% Z - (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p4
7 V. _# c( K9 a, S - (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not
, z, B5 u m5 n" `5 d$ x - (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget/ j6 E' |/ I! m" s; `5 \0 k+ e
- (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))
# W: Q. j& ?* c4 z Z* x - (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))
% A& o4 F& G1 B& J1 R - ) Y) d' R. x9 l- A$ b7 F A
- ;============ GHI CHU PHI (T1) ================
0 y8 z, D! P/ q9 k* ]' _
) O: Y7 O3 E0 D9 h- Q- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))
; b3 [0 v2 J `. ]- K - (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3
O2 S4 a2 w+ |( U7 ~! J' l - (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)3 ~4 l( z0 S# U E
- (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)9 h7 E. i+ f, z1 i$ @3 k
- ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1))
+ S0 B2 Y c# ` - (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)
: J* ]- d5 h; P3 p; J ` - 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1): h% J9 N' B/ U" P: r
- (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )
8 X5 R3 h3 [- s) g9 h - (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150"), t5 `! M: N: M0 d7 \5 u
- (command "ddedit" pause))
" z" T/ D3 C5 h5 a - + z) m1 U& e" A ?
- ;;; ========================== Join (J) =================
$ `- I# N( G9 Y3 F' H1 `% \
, Z2 U3 ^7 H. }5 G- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))
4 W' j% U0 K) R W+ N - (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? "))- t$ Y" u7 g% z8 s
- (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)
. `& O/ m. j1 ^( g% [! p y - ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")" A1 x7 Z( B5 U
- (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC"))
7 n: W; u/ j8 Z6 R% l' B - (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt "")); U& l: X; A6 Y
- (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" ""))
8 ^5 l, c5 }5 B# @0 \( }5 h ^ - (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))
0 |: c, G9 Z5 T$ P# b s" k% e - (setq *error* m:err m:err nil)(princ))3 R y# ?0 O. g
- , w' }# q( ?1 n' _
- ;=====================================================================
0 A. ]) F6 b2 D! y - ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.
4 H" }2 P( _# G4 Q4 o" J' C G ]$ B - ;=====================================================================1 ` f% F2 e; i- W; i2 O7 z. D/ f( h0 v
- 0 C6 f9 h9 t1 y* x+ T: x
- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old): J2 W! C" l2 \' P
- (setq old (getvar "OSMODE")) 0 c+ l* v$ f7 ^# v& G
: g4 `- Y: D* ^0 H l- (setq p1 (getpoint "\nStart point:"))
" I6 c) ^" x3 E - (setq p2 (getpoint p1 "\nEnd point:"))2 x* l$ |7 _& P+ v8 Z. ?% @0 A6 ]7 \. E
- (setq side (getpoint p2 "\nOpen side"))6 }# @5 Q E* e5 O
4 I) ~# p( O) j" N0 V- (setq dis (distance p1 p2)) N/ P5 X& T* P7 E
- (setq ang (angle p1 p2))' k- o: m2 e' {
- (if (< ang (angle p1 side))/ A Z9 E; {5 \: s* |( x% j
- (setq angside (/ pi 2) )
& Q* m' l' J2 @0 b7 a - (setq angside (- (/ pi 2)))+ v- x6 U2 O& o$ P* y
- )4 m4 j _) [1 F8 H, x: T6 Q7 S
- (if (>= (- (angle p1 side) ang) pi)
/ F/ l8 Q6 ^: t, @8 {1 ?1 g - (setq angside (- (/ pi 2)))4 s- O3 l6 g; V: P: F3 a
- )
- S( r% j2 Z" [! k - (if (>= (- ANG (angle p1 side) ) pi): Q2 [" x6 h) y1 @( d4 d. F; e
- (setq angside (/ pi 2))- T: h0 J9 Q9 l
- )# h- u5 q2 m$ D' h
, C! j" ^; I: L+ c6 b- (setq p3 (polar p2 (+ ang angside) dis) )
' a1 I( X7 x" z# M; ^8 t+ M9 [ - (setq p4 (polar p1 (+ ang angside) dis) )
* f/ U- V }1 m+ X - (setq wid (/ dis 15))
- x; }6 X- P7 y( Z( S9 v( { - 2 r4 f% i! V$ J! D a; O' [( i+ n
- (setvar "OSMODE" 0)
# I" \$ ]1 T. _2 T - ( j, V7 F* y) y+ X. d, f
- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
, u! h2 u) K; N# J& s4 Q g - (polar p2 (+ ang pi) wid)
1 e9 n" h1 R- R - (polar p3 (+ ang pi) wid) 0 k8 v6 ]5 c& U% u; K J2 ^9 ?
- "")
4 t; S/ ^& p! u# e9 t, Z4 E
6 n: ~9 C1 J' J$ w# A- X- (setvar "OSMODE" old)" b4 D, I3 [" v: Z* u/ s; {7 d8 `
- (princ)
4 g8 ]2 r3 G2 K; v) |2 Q - )/ X4 E0 B" o# e" a# ~- ]" K$ G; v* A
- & J& b( ~; y/ L- @/ j% ?6 [/ P
- ;=====================================================================
2 `' E1 V1 D4 F4 C4 F( d4 C
1 X) l w4 |9 X; m$ F6 L$ C, L- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old)
Q& C2 w' B" h- s6 Z3 v+ \. h - (defun cua1 (pt1 pt2)! {/ N4 @& a1 i3 n$ [, ]0 K; k
- (setq p1 pt1
% i$ l% o' S% ?; b9 V - p2 pt2)- \+ _5 X4 s# K5 l+ T) J
- 3 Q) J# ]; i7 j/ M! L9 D
- (setq ang (angle p1 p2))1 _8 L4 R# X# u( b6 w2 c
- (if (< ang (angle p1 side))
- M% Z- y9 a& K, |. ~ - (setq angside (/ pi 2) )
3 Y" j% d8 R$ _" d - (setq angside (- (/ pi 2)))5 o% m! Q" D! Y0 a
- )8 E) i: {' v3 u) E' D- w5 V
- (if (>= (- (angle p1 side) ang) pi)
4 u- h( v2 Y9 @6 l$ f' n# F - (setq angside (- (/ pi 2)))) O' Q! m1 N+ F b1 G& V
- )
( C; a# t2 ]- G2 G$ p8 ?3 B - (if (>= (- ANG (angle p1 side) ) pi)
2 x: w3 g- ^5 c% E, [ - (setq angside (/ pi 2))1 f& p- G( ~3 Q" x% Z
- )9 F% W, b" C2 m; o; C2 ~
# Z! |5 }) w6 Q1 v; \0 X# J- (setq p3 (polar p2 (+ ang angside) dis) )4 D+ r5 W. ]/ }# n& a0 q7 z
- (setq p4 (polar p1 (+ ang angside) dis) )
a* B9 p" u. l( e! ? - (setq wid (/ dis 15))
/ f( U7 T8 J# i# j) F3 i7 q
5 a! B( M1 ^- D! V& \- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
4 S: U# q( s( s8 l5 M - (polar p2 (+ ang pi) wid) * ]" \8 l# T0 c; q* ^# Y0 h
- (polar p3 (+ ang pi) wid) 7 B( y- K5 S. y1 _7 K' f
- "")
' n+ p+ T) K' Y5 M; O6 n" K0 B - )/ r4 q# r2 Z5 x1 \* B
- ;=====================================================================
! H7 b: T* N" s+ o. a0 V' Q! p3 E - (setq old (getvar "OSMODE")) : H. a9 l B. `" X+ G3 ~
- 2 h2 n: w7 D! m% y) z0 D
- (setq p1 (getpoint "\nStart point:"))! O9 U1 J p4 x5 H
- (setq p2 (getpoint p1 "\nEnd point:"))$ g O0 r2 P* `9 O7 S
- (setq side (getpoint p2 "\nOpen side"))
9 t9 i. x/ r# j+ @( n - 0 S& V8 Q" o$ Y$ M1 L
- (setq dis (distance p1 p2))/ L' s2 L# T; _* a0 t4 k$ T8 V
- (setq dis (/ dis 2))
6 [$ r* f- ~5 m6 g; b' K# ~* P
6 G8 x: d, Y0 }- (setvar "OSMODE" 0)4 A n7 N7 p; `8 S, A7 @5 Q
- ) B/ ]+ D @& y6 u* k
- (setq p1 (polar p1 (angle p1 p2) dis))
* L T- F# Y9 c - (cua1 p1 p2) ) n2 z; V# e8 T' R. I
* i; E$ z7 n" p1 s2 v* n- (setq ang (+ ang pi))
; m# w" P" d( j& U' O* |# P - (setq p2 (polar p1 ang dis)); \* k5 n+ T" }
- ; (setq side (polar p1 () dis))7 z8 T7 o) Q; q+ m4 E( o4 r+ ?
- (cua1 p1 p2)
8 S( l/ |; }" i - # @$ Z7 {) x5 e. q. X- k6 h. a ~
- (setvar "OSMODE" old)$ o* @+ f( V$ j( _. n; {
- (princ)
" y* M! g7 e, N# }, M% B - )
2 B t3 c$ t( t' @5 o - ) A9 M( H3 B# q* W# b, Z
- ;=====================================================================
2 a0 v9 r8 ~' M. v: k - ;"Glue" text strings. All adopt first's properties.2 c" Q0 h4 L B6 f/ ]$ o
- ; Author:8 `- P! N5 a+ ~
- ; Henry C. Francis1 `3 L) U# } J2 B% u) ]
- ; 425 N. Ashe St.- ]: a! o: R: P
- ; Southern Pines, NC 283870 X, S; h6 T# C s5 j: L$ D0 h
- ; http://www.pinehurst.net/~pfrancis
0 f) y4 k5 e5 F* g - ; e-mail hfrancis@pinehurst.net
; K) u4 ^- x' M! W+ ^& C7 Z N6 W) |& O - ; All rights reserved.' } p: }' s8 Z2 H& X
- (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)
/ m/ x, m, [5 O9 c- \8 U - (while( P0 ]3 s6 ^5 K3 F; F# t
- (not, l( M9 e) S; F5 ^# [+ \
- (and8 I' d4 w- G8 Q3 \( f4 G; T
- (setq ename1 (car(entsel "\nSelect first text string to join: ")))9 B4 d) \8 n6 W9 T9 j
- (setq ent1 (entget ename1))0 O7 ~' n( K- s' R) U4 M
- (eq(cdr(assoc 0 ent1))"TEXT")* z" e; ~% g8 z
- );and2 S4 T1 v" Y7 F% t, s' P
- );not d; J2 h) g( {) M8 p
- );while
; t7 s6 s7 T4 y- [ - (setq old1 (cdr(assoc 1 ent1)))
, h& ~. h# C$ j - (while
* ?- o2 t2 W, O1 q5 I - (not
2 K+ n1 H+ o; E9 t! \ q1 `8 u - (and
/ X' p) n4 N: K3 f, L: ` - (setq ename2 (car(entsel "\nSelect second text string to join: ")))! q0 [ u* C, J. R" l+ t' V
- (setq ent2 (entget ename2))5 |! A4 X7 G/ k( J+ A/ y
- (eq(cdr(assoc 0 ent2))"TEXT")6 t# _0 L! N0 @
- (not(eq ename1 ename2))
( W2 F: s3 X* `' k1 x5 z& [ - );and
% V2 `6 `" X. C2 G% C6 y5 F/ U - );not, W5 h+ w0 ?: X
- );while
# L* ?% V% G) p% R& | - (setq old2 (cdr(assoc 1 ent2))), b0 o/ J0 B% u$ x
- (setq new1 (strcat old1 " " old2)+ k3 z% X; S) t- j. Z* V
- ent1' M2 y! A' h6 Z
- (subst (cons 1 new1)
) i9 L$ {% D% o5 A! G - (assoc 1 ent1)
. J" e* z* E- S. ?& D& [ - ent1): H4 U! i6 v7 ?3 V
- );setq1 [0 V. m3 G6 [ V( e
- (entmod ent1): J- m8 K. ~' J& D
- (entdel ename2) n6 h$ t5 C% C; E! P; i5 @7 [3 n2 p
- (princ)( _1 P# r2 O5 ]3 F+ S
- );defun
% q7 C. F* s6 y& H! m" y$ Q - 1 s) L$ G9 B2 |; ]. p5 b
- ;=====================================================================
0 f5 g0 j2 Z; f+ @% i' e- \7 _ - , R; b: }7 f0 [0 x
- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)3 I0 L2 U; v* q$ ~8 M
+ e0 I7 z4 d, | c- (defun nterr (s)
0 ^- \9 ~; B m - (command "_.UCS" "" "_.UNDO" "E")
; J% v. N" T# U$ s7 u7 q - (setvar "cmdecho" 1)2 L) D B! {$ x
- (setvar "blipmode" 0)3 y( I6 n$ |/ J3 |/ n7 \9 m
- (setq *error* olderr)
% p/ ~3 ?- Z9 x5 ?- M3 X- A - (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil - z& a- D& z( w+ \) A2 v7 S
- nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)! S: A9 p! ?3 n% m& p! z0 G+ R6 `
- (princ)1 E2 \! k' p: M5 R- w3 d
- )
+ p' @+ f; S+ k' \: o7 N - i$ g4 X' T' J" x
- (defun tim_in (dt / p01 p02 ktra)% `2 y& f' c1 ?% y
- (setq p01 (cdr (assoc 10 (entget dt))))
2 S- c6 z8 p& h0 T. i' V, h - (setq p02 (cdr (assoc 11 (entget dt))))( o- X* J) q+ v: m
- (setq ktra T)
4 ~+ Q) i2 v( w) J l - (if (and (> (car p01) (car g1)) (< (car p01) (car g2)) ' O) }5 D; m7 l( M* n' y
- (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))* E. ?1 ~$ h, u5 b
- (setq ktra nil)2 w" Y- M+ w4 o( C/ \
- )& O" k' `; d& H) B0 Q& i/ w2 H2 R
- (if (and (> (car p02) (car g1)) (< (car p02) (car g2)) & y: b3 f/ Q0 a0 Q9 A3 ?, C8 \9 g
- (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
$ V; F& I* m- g; h1 N' H8 o - (setq ktra nil); b8 c: l0 S6 g, f4 u
- )
& q9 A0 b( |4 T3 h$ j - ktra0 o, c2 C$ q7 x, D7 r% C {9 ]
- )
& [/ a) X# A O: s% x: t$ W - 3 p6 o2 h% l9 [- u
- (defun timdt (dt1 dt2 / p01 p02)
y4 \: I U, n - (setq p01 (cdr (assoc 10 (entget dt2))))# D$ @8 F, a8 r& B
- (setq p02 (cdr (assoc 11 (entget dt2))))3 Y6 O) O w# n! Z- j: ]3 }
- (setvar "ucsicon" 0)2 U# {$ r- e1 j
- (command "_.UCS" "E" dt1)
: w a: B& C# Y6 C7 u- ? - (setq p01 (trans p01 0 1))
0 ?1 O5 h3 y( l# @/ G - (setq p02 (trans p02 0 1))' ^* \8 ]# r# [! v5 k$ ^( _$ ?4 p& j
- (command "_.UCS" "")
, \5 w: @- F1 A- x& K, p - (setvar "ucsicon" 1)* }+ \0 X% i. a' M4 `
- (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))$ X" E6 ]! \' I+ @
- T
% c& z: K( X5 {; J% A1 X; f: ` - nil5 u0 y$ l Y. i7 f
- )
& Y3 e, u6 s, ~' V- r - )
, `1 A) o* _ k- C; I
% S1 A8 a# ~# o B$ E+ T/ k- (defun tim_out (dt / p01 p02 kt)
" l8 s! M% g+ W Z8 O0 y8 G9 j* ` - (setq p01 (cdr (assoc 10 (entget dt))))! y( x& V$ W: Q3 k% w3 R- [* J
- (setq p02 (cdr (assoc 11 (entget dt))))
* I" \3 w& k+ Q - (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
+ w; I! ~* }% B4 G - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
# _' h% f* I5 x' [6 W - (setq kt p02)" P) Y) ]5 w. G' V" T6 m2 J! N
- )% b4 N) J X9 w7 Y ?; f9 j# D! o
- (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
* i& M& @/ T* v" r [ - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))# {# S% S# ^; M5 F1 @. K
- (setq kt p01)/ U! x4 N$ E2 P: j) I
- )) b5 ]/ _" C" Q4 r) D
- kt
3 K, v9 a0 q3 v8 T* ]; K - )
5 C% d! V" J4 C+ j9 ~" E! O# s - ! m! n0 ]+ p( J% b @6 E% M
- (setvar "cmdecho" 0)
6 V" ~1 q" x- x4 i( m9 h - (setq olderr *error* *error* nterr)4 X: L0 {2 k( o) D, d9 I5 f
- (command "_.UNDO" "G" "_.UCS" "")
$ J. h4 O' ]% A. n - (while (null ss1)5 m0 A9 X& {1 Q
- (princ "\nChon tuong muon noi...")
6 d) ~6 x3 u: ]& n7 a - (initget 1)
# ]$ ]8 k- q9 ] - (setq g1 (getpoint "\n>Goc thu nhat:"))- Q5 f+ G( N4 \' Q9 }8 G1 G0 _
- (initget (+ 1 32))! n, G# R* r# b* l, |
- (setq g2 (getcorner g1 "\n>Goc thu hai:"))/ F+ q6 V. ~9 J& T2 Q! ~7 n2 l5 p
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))3 \# c# w% y3 t" ^
- (if (null ss1) (princ "\nKhong tim thay doi tuong!"))& v; ?9 G& s5 \& N
- )
+ t+ ?9 W4 ~+ @: L' m) g* N - 8 a" {% L1 L1 E$ b8 j4 p
- (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2)))
5 `0 Z& i* l6 S/ z - g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))' t, ]8 Q( H$ @5 Q1 C3 G
- g1 temp)
' W7 A6 g% z& ^8 R0 N K - (setq ss1 (ssget "w" g1 g2))
. u, z* Y- ~; N, K3 J7 x5 ? - (if ss1 (command "_.ERASE" ss1 ""))
. ?4 B" ]8 Y1 I! z5 k, ^ - (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))' e X! y- R( E5 p" O4 d: S9 r" ^
- 3 F: s6 S# I- y* P
- (setvar "blipmode" 0) f; }( h* Q2 j$ w) a+ [
- (setq i 0 l (sslength ss1))
@6 s' v) q2 N7 k1 j3 x q8 C: h - (while (< i l)
, m. K% D$ d8 H6 X2 w F - (if (tim_in (ssname ss1 i))1 Q1 \9 k) _* Q
- (progn 4 z8 `0 F ?& M' B% m
- (ssdel (ssname ss1 i) ss1)
0 f: p% k# u3 R4 `9 B - (setq i 0 l (1- l))
& L c* l3 s p' ~4 K0 d% D: p - ) - X: b/ }9 v3 l; v9 L" E
- (setq i (1+ i))
8 ]% G q3 H( e7 M$ m* S; Z2 V - )2 S1 L8 x o) W$ r& H8 v+ f9 r2 g
- )! w# Z* @6 o* L" a% y7 f$ Z
- (setq l (sslength ss1))+ L- F6 Z& b) n' x
- (while (>= l 2)5 @) [- p! G% u8 D7 r/ f
- (setq e1 (ssname ss1 0))# p1 g8 v4 Z6 [2 f
- (ssdel e1 ss1)
2 o7 x+ x W! R9 }1 ] - (setq e2 nil i 0 l (sslength ss1))
; ]/ L8 }% c6 U - (while (< i l)
. q. o! E1 p7 r" S - (if (timdt e1 (ssname ss1 i))% [: m2 O8 W/ ~9 T
- (progn
/ C/ X4 j- `4 B" j- N2 g; ~ - (setq e2 (ssname ss1 i))
# Y# x4 I- Z3 O; v# \, n! C, _1 L - (setq dd (tim_out e1))
- b! B7 @. d" g- p7 C h. T5 Z - (setq dc (tim_out e2))( o/ `* r" {8 q" T
- )
) S8 o4 q) E: A - )
. C, F3 m' H' F6 L" y - (setq i (1+ i))1 g8 o% H M4 {4 H7 v4 d- E
- )
4 b* B5 c: C9 x% M0 ^6 Y2 r( X: e - (if e2 (progn
7 |- g% s# P3 p. r - (ssdel e2 ss1)
4 o) m; w! I1 t5 Q% `' k - (command "_.ERASE" e2 "")( L. |) C& ~9 J6 U# u
- (setq temp (entget e1))6 u2 t1 s* I, y* _7 P& k M0 d% ?
- (setq old (assoc 10 temp))
+ k# C2 O% Y5 Y4 s+ h- C% U - (setq new (cons 10 dd))
, l( y, L6 l* k! G - (setq temp (subst new old temp)) `3 s( o' M. @" P5 H
- (entmod temp)# [( J, d6 f3 X% q b. m% Y+ e1 d
- (setq temp (entget e1))
1 t7 i, f6 {- v) O - (setq old (assoc 11 temp))4 @6 t2 ^3 _- U
- (setq new (cons 11 dc))
8 z0 c& m! A3 R9 z% q) @9 ? - (setq temp (subst new old temp))) \5 ^* M. t4 {+ u6 D; Y2 G$ v
- (entmod temp)
' w# _, C. t4 \5 f - (redraw e1)# Z* K/ |* d3 r7 W
- (setq l (sslength ss1))& v3 H. G* Q0 w
- )
8 j9 m% F; D/ E1 e - )
+ J- Q; f: M$ ^) t4 n - )
* N2 }& a) h0 m9 d j+ ~, b - + v. E* Q/ _9 k: V6 t
- (command "_.UCS" "" "_.UNDO" "E")
# J. I1 j" h2 e1 h _ - (setvar "cmdecho" 1)
: k- b/ R( }3 o, M# v - (setvar "blipmode" 0)4 j( D/ m3 X5 M+ f) Z
- (setq *error* olderr)* R3 o! U7 F7 N+ @$ Z5 `% O$ V
- (princ) P) J# u3 O9 k M6 {" _* O
- ): ~2 E0 n9 {" K2 D% `7 b- f
- ;*********************************************************************: A: R6 b+ G6 b& _, p# Y
- (defun ketthuc ()
N+ {+ l8 {8 h' a" K - (setvar "cmdecho" luuecho)
) m8 `, T, G; E* }* R2 ^ - (setq *error* luu/ G, M1 H* H- ]/ S4 z
- luu nil
2 h3 m7 p1 {8 y6 d, L6 ~6 V ~ - luuecho nil. z, x0 J' O5 M( Y& r2 N& |- O
- );setq
2 p2 d2 Z' _& T7 Q - (princ)
. `9 x: K) `% Q# J* D9 F - ) 4 T& k. M4 l& h N
- ;*********************************************************************
) o2 y' S& j5 A i: A1 U% k - (defun modau ()& e/ J; r) A( a0 ~7 d8 h1 `/ _
- (setq luu *error. K9 n( O7 A% v
- luuecho (getvar "cmdecho")
* x# H2 R! D+ v - *error (ketthuc)
" c6 m9 c. @4 j# R - ); p2 n4 p, a9 O6 b
- )9 h: G" ]" M! P6 c* h
- ;*********************************************************************- l, ], i' h5 b' i
- (defun xulytext (text / kytu ma sokt luusokt lui )% j+ {) I) l& e$ B8 X! r* i
- (setq kytu (substr text (strlen text)); j6 J. W5 `) W, q! s/ }+ v2 T' r/ a
- ma (ascii kytu)
% S; h U7 X, Z, X) x J& m" ], c - sokt (read kytu) 6 a! [; _4 D2 {
- lui 1
! l9 k" k% M" ]- Y! o! v; `5 C - )# {( C( r* Y3 j# v" m9 u( }
- (if (numberp sokt)
( O+ T: ?: r! |5 y, ] - (progn, I+ m+ {$ P8 b4 C
- (setq luusokt (1+ sokt))
% {; A* M. X) l# n - (if (and (numberp sokt) , Q$ ~. o! e. j I, v) J7 \1 K
- (> (strlen text) 1)
" V5 w, }8 U \! ]' X. q4 M2 | - ) 3 d8 S3 t8 ?3 i! e! l/ _, I
- (progn0 l8 t' O& P i {, N+ w5 X, {. v
- (setq kytu (substr text (1- (strlen text)))
, y" j# }/ v+ Z2 I+ `4 c. S - sokt (read kytu)
]3 {% e; @9 L% B! ] - )7 K# s$ W4 Q* t7 s8 c9 R# ?6 |
- (if (numberp sokt)
2 K, N8 Y; H/ t4 a# n* \* S N: L - (setq luusokt (1+ sokt)
1 y% h/ A# C- H- v - lui 2
4 a4 K+ J( Z3 ], @3 s! n0 |. J - : S1 H* v0 L( c* }4 E8 V6 ]
- ); _; c L2 w( ^
- )
5 [9 R# L( F$ B7 H" D - );progn ( ]% L$ d }5 m) T) l$ r( P! ?
- )
+ M- V7 B- g) i) ]+ v& l - (if (= luusokt 100) (setq luusokt 0))5 E9 b" T' n& A& R1 E3 S+ Z
- (setq kytu (rtos luusokt 2 0)
9 U$ P$ U& e& o0 x9 c& L -
; n! I! z3 M1 l0 J. m I - text (strcat (substr text 1 (- (strlen text) lui)) kytu)
4 R0 M# m4 t. D - )% g. w6 s6 I: S/ x
- );progn
& @- N( ~! K* \. s - (if (or (= kytu "z")3 a) T1 V* c% H+ Y9 I+ B
- (= kytu "Z")
3 k& p7 z; W, o* V8 G - )
V3 ^+ i) @/ u - (setq text (strcat text "0")6 z5 n6 t, m4 @* ~
- textxl "0"
: U2 m5 h; a; l9 N, P3 t6 y2 N) W - )
! N& V2 d6 d' J+ w2 N - (setq ma (1+ ma)
* Q( X7 N- h& t0 a5 o1 C - text (strcat (substr text 1 (1- (strlen text))) (chr ma))
) \* B- k2 l2 w4 P% u V - )' s( v) Z' a( ]' g8 w4 F# u+ k
- );if9 X9 _; r4 H" o7 e3 r
- );if
( x) t6 K0 n; M1 K - )
- E6 ?( m% e% e8 i - ;*********************************************************************
; T. \+ O! O. i' h - (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)7 f1 Y+ q* g* Q$ Q
- ;Neu doi tuong la text thi tiep tuc
% ^! {+ v- O8 ?' q9 E - (setq doituong (entget tendoituong)( k& o- }6 H- K( g$ }* P2 k
- kieu (cdr (assoc 0 doituong))5 y9 u. b) A( S8 Y9 _% s P
- canle (cdr (assoc 72 doituong))/ `2 d' l8 x5 g% p/ r7 Y3 R
- ) / J1 o+ |9 |/ C- _% w! Q
- (if (or (= kieu "TEXT")$ L' e# e# O, k- D
- (= kieu "MTEXT")
`4 T9 n2 W. E* S - )
& m7 H! R/ i- d8 h# q1 K' k4 v+ n+ Z4 I - (progn
9 Y8 F+ C6 U: g2 | - (setq textxl (xulytext textxl)/ f' t$ C. V2 s3 k) P' s
- text (cons 1 textxl)
" s" }$ S8 z$ ?9 L9 m0 r - vitri10 (cdr (assoc 10 doituong))4 v6 {4 I1 u M$ r1 a
- vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))8 _4 ?# F0 T8 z! t% D7 j
- vitri10 (cons 10 vitri10)# v' g" o! b! @; x9 p
- vitri11 (cdr (assoc 11 doituong))
+ @7 ^2 F7 u3 ]# q - vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))
$ {9 H; ~; m+ {/ Z, l - vitri11 (cons 11 vitri11) r2 |2 r- b" B% M8 ] y. Y
- dem 0
( `+ H F) U( Q5 F/ { - dsach nil
% _3 P8 l9 b: G' S2 b6 g - )
% C) @1 R7 k0 E1 ?2 k - (foreach tam doituong
/ \& s$ m0 e) a' r3 p( D L - (cond
' a- n6 w t9 R" f7 U6 S - ((= (car tam) 1) (setq dsach (append dsach (list text))))% d1 Y3 x+ M9 \- |5 d9 G" `5 A
- ((= (car tam) 10) (setq dsach (append dsach (list vitri10))))+ P9 j7 |# G/ q7 X _
- ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))
2 z3 j( V- ^6 s - ((setq dsach (append dsach (list tam))))5 ]( b) j3 U; @' e' n% Y9 e) L, ~) A# T
- )
3 y3 \' u6 P( x/ r9 I - )$ H, E3 _, w* K! w. }; a
- (entmake dsach)
: C7 F* e; Y/ A6 u7 g - );progn
; L" }$ Y/ u9 R7 m - );if
4 k6 D' d% G* {4 m- `6 p - );. Y1 h6 D4 |! M7 h
- ;*********************************************************************
1 @" D7 [7 V0 N: _0 Q, E& u - ;sao doi tuong cu sang vi tri moi! M. N: E% K$ C6 p% l: ?% f
* t% E6 D @0 Q2 G0 {- (defun copy_dt (tendoituong )
4 s% b; v7 M) i" o2 o/ L9 C. U - (command "copy" tendoituong "" goc toi )' |3 t, G; C: ]0 E
- );defun/ n" x/ q! y, u
- & `- G7 T1 N! W" L
- ;*********************************************************************
3 b+ F3 J' w/ `. f. P& y6 b
- W. A: F: n% F# u% u8 J- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
" j% b" R8 _2 p% ? ?2 V8 w7 g - ; Khoi dau cua chuong trinh
8 f2 ]$ z q- U% d7 M7 C$ \ - (princ "\nCopy Inteligent...\n")
9 I6 I# X& u+ q6 ~1 P) ~. H6 { - (setq luuecho (getvar "cmdecho")
( C! k4 F" D: T' o& m8 m - luu *error*
4 T' ?$ f% F8 P+ y9 y+ d* Z - *error* ketthuc9 G7 `( e) y. j1 H. b, o
- cumdt (ssget)1 I, U$ Z+ S, F) R! X+ b* U7 L) R
- dodai (sslength cumdt): _% B' J9 y0 h
- goc (getpoint "\nSelect base point:"), f7 Z F& o4 r0 k! Q
- thoat nil
& s) Q; }8 x$ m; E" P - dem 01 N4 B5 ?: Z# F; U: A+ p4 t
- textxl nil
' _4 |2 t3 e; B+ q! K+ u' O - );8 d0 J# U$ G0 q( |! g3 I
- (setvar "cmdecho" 0)
4 M( z" v# l: o+ C! G1 S' e# W% O - ; Loc ra duoc ong text de xu ly
4 O% ^. J' A, J - (while (and (= thoat nil)
9 Q8 O, D2 c5 Z' y7 V+ M3 W - (< dem dodai)5 o, J1 f: |% k% |0 a7 n
- )
% u' O$ @- }+ z' F - (setq ten (ssname cumdt dem)+ Q3 B. l' Q- q5 m9 {- a% O
- dem (1+ dem)
% S' ]/ h- v7 F# o: j4 A) k+ G5 k - doituong (entget ten)
% D( p! T4 c8 n+ o( f t* L - kieu (cdr (assoc 0 doituong))
: Z% x4 b8 l/ o2 O" E1 o - )
+ x0 k h o- w3 e$ {. T$ k& R$ ?5 i6 @ - ! Y7 T( ]- m. B/ A
- (if (or (= kieu "TEXT")
; p1 h% L" x1 o - (= kieu "MTEXT")
; B+ V1 A% J; o, N6 P1 n6 X" S% a - )6 z9 f% Y# \8 e( ~ O$ p ]/ U
- (setq thoat T
" v) g% {- ?5 Y - textxl (cdr (assoc 1 doituong))
# U6 w+ B6 w0 G) R+ X - )
; i1 O1 r+ _/ F3 I2 C - )$ @! ]8 ~* e/ E7 m# a1 K
- );" P$ h* G3 A. o) B
- (while T 6 N2 u; L( W' }5 t5 f1 J, x3 f
- (setq toi (getpoint "\nSelect next point: " goc)
2 D+ G+ ^( T+ R& W$ ^7 | - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
+ X! ^# z# v9 j+ C. R q - dem 0- r( F$ P( ]' P6 L; j" h
- )
$ }, s* a. K+ S* A! z; J - (while (< dem dodai)
u5 P6 J; I: C6 G2 [ - (setq ten (ssname cumdt dem)
8 w) H/ ]9 w8 y2 F* h - dem (1+ dem)
- P. [1 R" x. D" _$ v - doituong (entget ten)
. D2 P# s1 o C8 A9 ^5 A+ q$ ~2 ^) d - kieu (cdr (assoc 0 doituong))
7 s, H; ^# O2 O- }1 T1 {. R - )$ c+ I* ]. W: U9 q$ f' L& Z
2 @& D4 N4 x [$ b) g3 _) M- (if (or (= kieu "TEXT")
' M8 j5 U8 U- Z5 A: n) q - (= kieu "MTEXT") ; X. K% l! ~& p$ S' y0 ]
- ). M3 [9 {$ d9 |; U0 S4 D( |" |
- (doitext ten)
1 j" t0 F% E" k$ h7 e - (copy_dt ten)
. |9 G- _; T7 Z7 B - ( n: `! o1 |! G1 I- h" l7 j
- );if
/ u& M, @3 m, {4 K) O+ K - )
9 I6 f+ Q. y2 A0 t - );while
x6 S: S( p' p+ W8 ?* J: V - (ketthuc)- H; i" M, @) T% [ Q9 W
- );defun
" `9 r4 k7 t- X& \! b, y, S - (princ "Type \"DG\" to start")
( Q) ?9 ]* c0 P) m4 o - ;Note: bien toan cuc: textxl vitrilech5 k. a) }# \8 k
$ @8 j9 i) X# m$ ~& @- ;=====================================================================, D3 }" e, d' c( v
- ;;; PLJOINFUZZ.LSP
V/ V1 p3 I& [, U$ g7 g; ?% f - ;;; Joins lines, arcs and polylines using a fuzz distance
2 v5 i/ P( P% j- y( _ - ;;; If only one object is selected it tries to join to all objects that are possible
5 a6 {; h: {* z% n5 C6 m - ;;; By Jimmy Bergmark+ o( P3 A# U" D9 h; s
- ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved1 a% K& }. Q3 {( ~
- ;;; Website: www.jtbworld.com
% M7 J" V) j+ M6 ^9 I: F. P* F - ;;; E-mail: info@jtbworld.com
$ V& a/ c& ?- v% F/ l8 j - ;;; Tested on AutoCAD 2002,2004 and 2005+ f |' q' _7 D. d5 {
- ;;; Latest revision made 2004-11-116 q' u3 [6 T% H1 x, V/ W+ M
- ;;; Minor code cosmetic change made 2004-11-13
@- u. ~4 p0 s! m6 E& K4 G - ;;; Bug corrected 2004-12-23
! U" |) E4 y$ j$ T - }; V! n& }% A" _' _
- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf
' b3 d* V4 P1 T4 i$ t0 a - (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)& X" x6 f( z) X3 o
- (setq oldcmdecho (getvar "cmdecho"))/ j; ]) X; X0 u* A! T. B
- (setq oldpeditaccept (getvar "PEDITACCEPT"))
$ o. E, T, V# F. ] - (setvar "cmdecho" 0)
% g3 k! _' a! A - (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))0 n, H: h/ b5 g: S1 g' X, ]
- (if A2k4 (setvar "PEDITACCEPT" 0))
! ]% F4 e3 v" Z6 `4 x3 w1 |2 t - (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))
W m6 X& [: \; E3 L4 ] - (princ "\nSelect object to join: ")
9 F! \/ T' [ \( H2 O- k L7 w - (setq ss1 (ssget okObjects))) h6 Y% d- ?3 @$ }
- (setq fuzz (getdist "\nFuzz distance <0>: ")): A( q0 }: L5 t! Q
- (if (= fuzz nil) (setq fuzz 0))! k3 W3 i! t: N: e9 F' G
- (if (/= ss1 nil)8 K$ I: ^! L; Y! ]( U6 c1 G
- (progn
+ \+ b& a, N6 |0 K- X( q7 {2 N - (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0))))))* J3 h5 O# |6 V, w Q* A) F
- (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects)))+ M, u7 C$ N) o7 f8 q1 `) @
- (if (member objType '("LINE" "ARC")); X( N0 ^0 F2 K9 ]# O
- (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")
2 W' d: h1 E5 U4 Y# i7 r' m) i: _6 z - (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")3 ?- ]3 c1 g7 H0 T, L
- )
' t" L+ G% [3 X3 X4 P - ), l8 t5 {6 L, Y7 S; I; G
- )7 O, K5 h) Y1 |
- (setvar "cmdecho" oldcmdecho)/ f5 F" [" E' d# W
- (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))* A# j x! ]0 o- I6 c( z
- (princ)
' E1 u1 \( k9 |$ j5 [2 ^3 G! ?! E - )
$ |7 B* ~( k" y+ w0 O
4 e5 b, m/ \0 K- ;===========================VE CAO TRINH===========================
7 i1 u. B6 b6 z6 X - % B$ W. Y [, o- y# I
- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL9 y2 v6 K& Q2 ]; g1 n
- CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)
0 C0 q6 s5 ^# p4 |; Q - (SETQ OLDERR *error*
3 H9 f5 e8 a G& w) z5 V- r3 } - *error* loisb)0 D- x' N" R: X4 j! ]
- (command "layer" "m" "dim" "c" "" """")" E( p: w" m& S5 C7 Y/ z; k
- (SETQ CMD (GETVAR "CMDECHO"))7 w3 d$ o s# D# }" O
- (SETQ NBC (GETVAR "CLAYER")); T# f1 ~; x# l8 x% B
- (SETQ OSM (GETVAR "OSMODE"))
& k. l+ s. Z9 ^! V# K( B J - (SETVAR "CMDECHO" 0)9 {* v5 R5 I2 z6 S Q) }
- (SETQ PT1 (GETPOINT "\nDiem cao trinh:"))
% U& e5 g/ |2 F7 `' p/ n - (SETQ TX (GETSTRING "\nCao trinh:"))
9 k. f5 p, M w- Y# j( q0 Y1 G - (SETQ FCH (SUBSTR TX 1 1))$ x6 P; q* M) T9 b; U" K
- (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))
' } j, j/ O* M$ b' L - (SETQ CRST (GETVAR "TEXTSTYLE"))7 t8 K) u5 C" G/ r
- (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))
4 j x( Z0 b# O, @* }+ K' P0 B. r - (SETQ TSIZE (GETVAR "TEXTSIZE"))$ P! z6 j7 u4 U0 n- N1 v( Q
- (SETQ STR (RTOS TSIZE 2))
. H c4 E4 o+ q- W8 v, L7 X) | L$ C' A/ d - (SETQ PRMT (STRCAT "\nText height <" STR ">:"))
% f R Q3 e; @ - (IF (= RSIZE 0); K% H9 [1 y; W/ D0 a/ h2 ~
- (PROGN1 |; ~+ t! z3 N/ _
- (INITGET 4)
u. R3 M5 B _. _& f - (SETQ TSIZE (GETREAL PRMT))9 f; z/ i. e0 O
- (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))
( z6 o1 k; ]3 B" b) X - (SETVAR "TEXTSIZE" TSIZE))
# b$ Z" ^" J" p6 _ - )0 M/ d( {& ^! ? p! ~
- )6 Z9 ]; K4 l# I
- (PRINC)
9 m% s0 r: n8 V# r7 \3 F3 U - (SETQ TL (/ (GETVAR "TEXTSIZE") 2))! ~6 N( \# L. o! p; g( _5 J
- (SETVAR "OSMODE" 0)- V! |3 k$ @: q4 A( e1 z
- (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))
, u7 x- m' Z2 |- I- n/ X% ? - (SETQ NPI (/ PI 2))$ R( e1 J8 I: I- m& @
- (SETQ PT4 (POLAR PT1 NPI (* 1 TL)))
1 @6 j3 ]5 N% o2 H3 Y7 X" M8 o - (SETQ PT2 (POLAR PT4 PI (* 2 TL)))
5 { D$ x6 Z. L5 L - (SETQ PT3 (POLAR PT4 0 (* 2 TL)))
{3 Y8 w) Z/ a" U0 {* ]' y - (SETQ PT5 (POLAR PT4 NPI (* 5 TL)))
5 T: j9 q6 x! k+ G+ k. Z3 G/ m - (SETQ PT6 (POLAR PT2 NPI TL)): d1 T1 r6 w1 [5 {$ S8 s
- (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))
( Y$ P' ]4 b& f/ h) m) M7 d% D - (SETQ PT8 (POLAR PT6 NPI (* 1 TL)))" J: A+ Y) R% P( K- r+ r
- (SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))* T- P5 k- O+ i; Y0 l- J \
- (SETQ PT9 (POLAR PT1 pi (* 2 TL)))
" \1 P! H+ ~2 }; R - (SETQ PT10 (POLAR PT1 0 (* 2 TL)))
# x0 X& {1 e& T/ b - (COMMAND "COLOR" "7" "") O* G( X# s9 j4 ?
- (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" "")' f8 ^! _5 L* ?8 S0 n: V8 O7 _; ^
- (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX))/ i% B. c4 @7 ^
- (COMMAND "COLOR" "BYLAYER" "")
: Y2 U! Y+ E* p$ ^ - (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")
; N0 }( ?. D2 D( w ? - (COMMAND "COLOR" "BYLAYER" "")/ J/ T2 R7 C" K8 |+ A
- (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")
! J- u/ O' l7 G0 X7 C - (SETVAR "CLAYER" "0")
" N1 A$ l" G$ ~5 H! ~ v" m - (command "ddedit" pause)
\5 L5 a1 R) l7 ^9 U - (COMMAND "COLOR" "BYLAYER" "")
: e' Q8 j- Y( _' ^ - (SETVAR "CMDECHO" CMD)
0 D8 z, W% G7 d; y2 S - (SETVAR "CLAYER" NBC)8 m" q6 y$ D" V) t7 L9 u
- (SETVAR "OSMODE" OSM)
( m: N6 s1 W3 s: l) \: @ - (PRINC)2 Z( f; V% d& n8 M- m
- )
4 y* g, X+ z- u! T% k( G7 E
?% }, d# J/ j% ^# {- ;;; =========================== VE NET CAT CHEO (GC) =============================
8 |! U% H* u6 d6 x9 ]" E. D0 H - $ N3 ~% b& g2 t: |+ C- }1 M% j2 N
- (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang)
' a* o3 q6 |+ y/ v! Y - (setq x (getvar "osmode"))$ g. N. M5 i5 t4 z3 r+ h3 q0 V
- (setq p1 (getpoint "First point : ")2 S+ e. r2 s A5 t& p
- p2 (getpoint p1 "Second point : "))
( a3 g0 @4 p4 C& ?/ T; d/ u& D - (setq l (distance p1 p2)), U; q$ F3 B2 d$ a* N9 l8 E
- (setq p11 (polar p1 (angle p2 p1) (/ l 5))4 |8 u2 R y3 w e B# S+ \2 y8 v! D
- p12 (polar p2 (angle p1 p2) (/ l 5)))
* A! a- i* B K2 K - (setq ang (angle p1 p2))
' {( m3 l& C" Y2 s" Z - (setq p3 (polar p1 ang (/ l 2.5))) q) S$ l9 m; X5 |
- p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))
) Z6 f: v2 W+ t3 \/ ^ - p5 (polar p3 ang (/ l 5))
! @- K$ ~1 j3 |% ]! V; } - p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))8 A0 x. v! z: n- g% p' J
- (setvar "osmode" 0)
" R A; R0 a2 i0 U1 \7 v - (command "pline" p11 p3 p4 p6 p5 p12 "")
( d8 L: H5 |$ j% V; q- g8 z - (setvar "osmode" x)' K$ U( j! X1 F- d. j" x/ b( U
- )1 a1 I* m0 ^& a3 S5 T; j
- ;----------------------------------------------------------------------------------; i' x, o4 K% q
- (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
+ M. m& s7 @3 H% K/ p' I - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
" [& _- K- F- ?3 o( v8 H3 z- f/ v - (setq ps1 (getpoint "\Chon diem thu nhat: "))
" D9 q$ Y+ O9 l& X - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
" N. ?( S+ `# G$ r8 j - (setq sb 50.0 sh 200.0 se 20.0)" N4 n y7 u) ^, G6 q5 z; s; T
- (setq ang (angle ps1 ps2))
7 M/ U. M D' y* k j* T3 z5 c - (setq pf1 (polar ps1 ang (- 0.0 se))) f1 ]# D( ]6 G5 S
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
( V; {% @$ i; h! {; s - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
) j# U: W9 t6 L* ]) `5 C - (setq pf5 (polar pf2 ang sb))
( }. { i" l' [# f; ` - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
, X: w5 I1 W- W0 L2 `4 M - (setq pf6 (polar ps2 ang se))
e# J7 N3 m! [/ {) _5 Q - (setvar "OSMODE" 0): s6 I$ h9 u3 C! Q! I& K" ]* S
- (setvar "BLIPMODE" 0)+ V& O6 k! `3 X
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
( [3 y. n' Y& f% G) \2 u - (setvar "OSMODE" 703)
7 t8 P# p0 Q$ _1 r2 Y - (princ) )" D" A- z! Y- p
- ;----------------------------------------------------------------------------------
2 H9 Y) |. U6 \9 L! ^ - (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
2 z3 ~* i2 j) \5 Z( a; L - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))7 ~) G9 g7 H9 h% V) n
- (setq ps1 (getpoint "\Chon diem thu nhat: "))5 x8 }: J% N; @
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))$ h/ `% h) o% c5 h
- (setq sb 100.0 sh 150.0 se 20.0)7 F' p; |) ?5 a! V7 m, e
- (setq ang (angle ps1 ps2))
% F' U9 j" a5 c: M9 _ - (setq pf1 (polar ps1 ang (- 0.0 se)))* N1 z7 F5 @" b! z9 j
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
2 h1 a1 }* f H; V - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
7 R6 S h9 f0 a! `+ { - (setq pf5 (polar pf2 ang sb))
9 K3 D& e* C; S* U# d% ? - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0))), t# n1 j) P+ M9 H
- (setq pf6 (polar ps2 ang se)). b# @/ I4 o G7 O1 J6 V
- (setvar "OSMODE" 0). ~# Q, r, B* v1 M
- (setvar "BLIPMODE" 0)
- E! t* A: J$ H& ] - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")' P4 o' L/ v, Z7 L b) f
- (setvar "OSMODE" 703): i. {0 o+ g6 A' F5 ?
- (princ) )# }& k G9 u' M4 Q7 P" B$ |( W
- ;----------------------------------------------------------------------------------
' q8 ^* |6 L1 T5 L - (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6' e1 O; t: j$ b$ N1 r
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))1 W; p) h$ G3 M! {+ @1 E: h
- (setq ps1 (getpoint "\Chon diem thu nhat: "))
1 L& K# }" m5 s/ K - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))2 _* v, O* X4 P4 O
- (setq sb 100.0 sh 250.0 se 20.0)
+ Y5 H/ I) X4 |5 g. R - (setq ang (angle ps1 ps2))
8 q+ }$ p- ], ^, E - (setq pf1 (polar ps1 ang (- 0.0 se)))# \; W0 y2 f* d0 M* j
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
+ H0 |8 W2 |' s7 C7 V - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
) S8 |' ^( D, f. Y% H - (setq pf5 (polar pf2 ang sb))% Y# J3 w0 _% k( _
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
( J& b; p6 [# I4 \* ?( ? - (setq pf6 (polar ps2 ang se))
- k9 ]9 S: t; j+ Z- p - (setvar "OSMODE" 0)
. v: f9 Z) {5 j6 R7 m ` - (setvar "BLIPMODE" 0)
- J) h: }& Y0 ~1 v( I - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")( x3 X6 F$ a8 k# h2 e/ a7 S
- (setvar "OSMODE" 703)& x1 Y' y7 W, W" x7 z
- (princ) )
2 \+ P. g4 {5 c" b2 j
- K/ i a; `- }# c7 M2 G( p x/ n- ;==================================================================================
$ j; r; g( u7 z, f) t - (defun c:ang (/ ent pt1 pt2 ang)
* j" @! w- \5 z! g% Z3 ^. Q5 H/ L - (setq cmd (getvar "cmdecho"))
; l; ~4 j5 [) t4 n/ G - (setvar "cmdecho" 1)$ e4 X* |9 C: f0 Y$ E1 H- {
- (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))2 o5 R! u. k5 F$ f$ u4 ?! U4 D
- (setq ent (entsel "\nChon duong thang:"))
% F, k$ t% _( A9 V, ~* k, g- v: s - (if ent 2 q" n l& C0 b9 A0 J. Z
- (progn
3 x8 h0 h, y! C& ?5 U - (setq ent (entget (car ent)))
& y* F$ z% k" G - (setq pt1 (cdr (assoc 10 ent)))
9 A ~* q4 g$ l& E# L: o- E - (setq pt2 (cdr (assoc 11 ent)))' ]9 M! p3 z# o
- (setq ang (angle pt1 pt2))
" p& v5 \9 I, z% Q+ o9 _ - (setq ang (/ (* ang 180.0) pi))
7 ?, r( X7 o' g6 X - (setvar "cmdecho" 0), z2 {3 k" p# H2 H
- (command "setvar" "snapang" ang): V; v% _4 t1 n6 s7 [
- (princ "\nGoc cua truc toa do moi : ")4 v* _0 }0 L4 p, t3 l2 W' t
- (princ ang)9 z+ Z8 T$ Q1 f3 [ R2 I! q- R6 G
- )
' ^2 `% ^, W h6 W( ? - )
: w0 b' [, F( c - (setvar "cmdecho" cmd), K' a) `" G9 ?! s+ M$ ?
- (princ)
/ W" B) ]! E% s5 o6 y3 o2 ]# G& p - )
4 C& X7 w3 s# S - ;==================================================================================% i6 O1 H* P9 A7 _0 A
- ;============================== KY HIEU DOI XUNG ==============================
( u' m4 u0 @; h - ;==================================================================================
, u* ?4 X/ \% i3 q: a, c - * r! k" l' P- o1 e5 [+ k2 C- a
- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT9, |* e/ o8 [, p9 Q- ~, M7 G
- SZ G45 G135 G90 G180 SS loi)
- F" c% {9 p+ G- U+ ] _( t - (defun loi (s)' A G# w% {6 j2 e
- (if (= s "Function cancelled")
4 S7 g/ O' P/ T8 X( q: o - (princ)
; ~; W, |" C2 [" j. c/ M - (princ (strcat "Error:" s))% i! f! @& _: H5 r- L& w+ G5 _
- )
! a) y. x' Y7 H - (SETVAR "CMDECHO" CMD)
5 l7 o, d- ^9 z1 p - (SETVAR "OSMODE" OSM)
! I; T% i, U6 I& G1 t - (SETQ *error* OLDERR)
" T$ i+ Y( K& m+ P: ?' K R - (PRINC)
' W! ]9 V7 X% H* K - )5 W1 i1 @8 W! a+ W/ }
- (SETQ CMD (GETVAR "CMDECHO"))/ _+ r4 K3 R2 v5 E7 M$ w& P
- (SETQ OSM (GETVAR "OSMODE"))
* H7 e9 S6 I' H: N - (SETVAR "CMDECHO" 0)
) b2 t$ Z( Z, }8 g( k - (SETQ OLDERR *error*
3 m3 y% [: |7 m/ x, f - *error* loi)7 p% ?4 D4 V6 F: v' n1 }/ j" I
- (SETQ SZ (GETREAL "Size <1>:"))
! p8 H0 P$ E- q* ~! I - (IF (= SZ nil) (SETQ SZ 100))9 G) b8 I" z5 m$ [, _
- (SETQ G45 (/ PI 4))- `8 \4 ^6 k& N1 v, e4 Y; G
- (SETQ G135 (* 3 (/ PI 4)))0 w4 D: T6 r4 q9 Y, [$ f
- (SETQ G90 (- G45 (/ PI 2)))
% e1 r9 [2 x: b" T) ` - (SETQ G180 (+ G135 (/ PI 2)))) x- v, e/ `1 ?8 ?
- (SETQ PT1 (GETPOINT "\nDiem doi xung:"))( j+ \+ H0 v+ J3 X' ~3 F
- (SETVAR "OSMODE" 0)
: I$ e9 g- L: X2 T - (SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))
+ h% W- B7 v' m1 b/ V, j, j - (SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))
- M$ t% Z& H" `9 h+ p3 r4 x" p - (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))$ j* X& T! H! ~. e2 O$ @8 P3 t
- (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))
9 ?" a3 }& u! L7 M5 L( n9 `4 |, B( I - (SETQ PT6 (POLAR PT5 G180 (* 2 SZ))). a: q# t4 j4 H; W
- (SETQ PT7 (POLAR PT1 G135 (* 1 SZ)))# l7 [" ^' Z$ J3 W
- (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))
# _! u% ?2 S- d( k- H1 i - (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))
! \. S# C% R) G) j2 C$ } - (PRINC "\nGoc quay:"). j# O* S: R# n6 R8 p1 b( v* t
- (SETQ SS (SSADD))
u5 L% \+ ^4 ]- u; }/ I o* g - (command "layer" "m" "Dim" "c" "" """")$ Y: w6 a. m# @1 s5 K: r- E
- (COMMAND "COLOR" "1" "")' E: a1 c( a; a
- (COMMAND "LINE" PT8 PT2 "")) j$ b M1 x3 ?3 W: J
- (SETQ SS (SSADD (ENTLAST) SS))
6 Y6 {" v) E, R+ Q - (COMMAND "LINE" PT9 PT5 "")$ A0 ~( y9 x2 K
- (SETQ SS (SSADD (ENTLAST) SS))
/ M% r, O* l" U% u - (COMMAND "COLOR" "1" "")
# L/ ?# V3 W K - (COMMAND "SOLID" PT2 PT3 PT4 "" "")
0 S- K5 Z/ \ ]- X4 h; W - (SETQ SS (SSADD (ENTLAST) SS))5 ?1 O9 `7 U8 ~, n/ H) _
- (COMMAND "SOLID" PT5 PT6 PT7 "" "")
! z+ L' p) ?& s# l q - (SETQ SS (SSADD (ENTLAST) SS))
- C8 x/ {% w2 p) ?: u; p - (COMMAND "ROTATE" SS "" PT1 PAUSE)
5 p1 N# g& r5 c- X - (COMMAND "COLOR" "BYLAYER" "")
4 G) _' ]" P& Y2 p: Z; N - (SETVAR "CMDECHO" CMD)9 Y0 P6 T0 H* v1 _8 s( x- W
- (SETVAR "OSMODE" OSM)) m& h- ]' U4 D+ T* }
- (SETQ *error* OLDERR)4 } N% a+ `5 C; t7 @2 I2 E
- (PRINC)
7 O+ t: y$ R/ g y- C7 g - )" {- K, T. }! M3 h
- + _9 s9 p7 E* }9 q4 s
- ;==================================================================================
4 }& f8 B% }( N8 M# C6 ?7 X& F - ;================================= KY HIEU TRUC ===============================4 C+ e% F j2 Y4 L# p! B) v
- ;==================================================================================
" g4 U- U. c. g/ g, W' p) M3 n4 w - : w# C& F! B0 Y+ Z* m8 a
- (defun C:vetruc ()
0 d t9 m* V; s* K6 U - (setq bk (getvar "USERR3"))
' ^& u+ N. b" _1 O5 K% d - (if (= bk 0)
" o" [/ \( ]( h6 G8 u; F+ s( b - (progn' |9 h$ f# c& R+ h
- (setq cont "1")
3 Z$ ^5 S1 M* A1 m0 \- f - (setvar "USERR3" 1)
& v& t1 g, V. V0 Q1 `! D. _3 y - )
( ^' s& \6 ~+ }, U" x - (setq cont (rtos bk))
( o* Y) Q# L B8 g6 R' F9 m1 d2 }7 X - )
H$ f1 ]& N& ?0 p4 j - (setq pt1 (getpoint "\n Nhap diem dat:"))" O" @7 E3 q6 m1 t7 E+ E. H. j
- (command "layer" "m" "Dim" "c" "" """")
7 o0 F( `4 r" y6 {( g! \: i; E - (command "osnap" "") I. F3 `8 y0 ]
- (COMMAND "COLOR" "7" "")# y7 r8 J3 p4 T4 _7 d& i
- (command "circle" pt1 150 "")
: \1 C$ w0 G2 ~0 h/ ]4 G0 ] - (setq pt2 (polar pt1 0 150)) o8 w& f4 b5 s( z
- (setq pt3 (polar pt1 (/ pi 1) 150))
$ t: v/ {! `. T P* Q; s - (setq pt4 (polar pt1 0 300))
4 Z$ |1 L$ K1 }0 U0 o5 |. c - (setq pt5 (polar pt1 (/ pi 1) 300)) b! V! U* T( d s$ a8 D( b$ k
- (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150)): e0 }' Z r6 I W* p
- (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))
0 O2 `( Z7 L/ c; e% }( g* J- ~ - (setq pt8 (polar pt1 (/ pi 2) 150)) X- j" \! N7 b
- (setq pt9 (polar pt1 (/ pi 2) 300))
$ T! z6 k2 S' r( T - (setq pt10 (polar pt1 0 150))
5 ^+ K) l. y/ j( q9 m( m$ ^ - (setq pt11 (polar pt1 (/ pi 4) 150))
9 Z/ |6 J, O/ C. k6 [! A - (COMMAND "COLOR" "BYLAYER" "")
4 ^0 B" U: ]6 w - (command "line" pt2 pt4 "")+ c# F# W8 u3 p1 ?7 M
- (command "line" pt6 pt7 "")
( {% t0 ], L f0 k& v% i. H - (command "line" pt3 pt5 "")
4 E- m- }# y1 m5 H' t - (command "line" pt8 pt9 "")
" C4 }* j, Y8 U& e - (setq dk (strcat "\n Size:<"cont">"))
& }& V) i: m% W" W4 K - (setq bk (getreal dk))+ t1 w4 W, t% Q9 ~
- (if (= bk nil)
' p) o2 K& G* E: g - (progn
% i2 R' F: ]9 f: A - (setq bk (getvar "USERR3"))
# ]2 j# F! F. D - ); S I/ r. S' a; L
- (setvar "USERR3" bk)% S/ B! A% x% d
- )" K9 f& _8 f7 Y( j! Z
- (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")
: P, y. @$ v7 `+ a) k - (COMMAND "COLOR" "7" "")
5 U0 ~5 w7 B7 l$ y$ s6 Z4 M0 W: P - (COMMAND "STYLE" "Truc" "impact" "" "" "" "" "")' q/ w+ G3 d( T+ f' ~# }
- (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "") $ D! Q& z# K" A( M0 I
- (COMMAND "COLOR" "BYLAYER" "")
- P9 c; a- ]- G; ]% w - )1 L9 e3 [9 @3 n3 m" l6 J+ h
3 W% {- L0 _. b' @$ d- ;=====================================================================
) ]) ~8 Q) E' v/ N6 V, A - ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)* G) C+ l( w, R' R8 C+ ?
- ;/ X- U0 j5 P" H; }* g1 M6 G
- ;Jeffery P Sanders
; V5 {# j- j' X: | - ;
# q5 k: z3 L( O3 H b - (defun C:CA(/ en enlist tx newtx cnt tp asc note)
+ `2 O- X# p) z1 m- M% ~ - (setvar "cmdecho" 0)' i( L1 H' D# I' n( a
- (if(setq en(entsel))( Q7 P& |1 C0 z2 s* `
- (progn
" o! M0 T6 o- ~5 j: Y - (setq enlist(entget(car en)))
& g' m; y, m/ r4 c$ x - (if(= "TEXT"(cdr(assoc 0 enlist)))
5 W7 S9 b6 @3 w/ y" ~- _8 d - (progn0 }& A+ S/ C$ V; Z3 i( P$ E
- (setq tx(cdr(assoc 1 enlist))3 V v" u8 k# o7 F2 M- R0 n
- newtx "" cnt(strlen tx)
9 t2 {+ m# R6 D# V" b9 X1 b) g$ \ - note "\n...CASE Reversed. \n "9 J$ Z2 z+ j- x. Q8 T9 Q! h \
- )+ l: W7 V9 B3 }) E7 e
- (while (> cnt 0)( @" ]9 {$ r. T
- (setq tp(substr tx cnt 1))
; y3 |+ o' V( L7 `7 ~ - (setq asc(ascii tp))" O; X! ^. V f! L- b- K. e3 f
- (if (> asc 96)
1 O7 n( P& g1 g5 @$ f7 Y - (setq tp(strcase tp))
! ~9 k5 w \( Q; R - (setq tp(strcase tp T))
% c) `0 j6 p5 j2 c0 K. U - )
2 m' q. O! U# N( k* y - (setq newtx(strcat tp newtx))4 g4 O. k9 z* }! l5 O% Y
- (setq cnt(- cnt 1))
3 g" c# r% S8 z( w3 c5 j" ~ - )! x- B6 |: H: Y1 O& D# f _- P
- (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))
$ l9 R7 Y2 g. k: o - (entmod enlist)
1 v1 O2 {3 V7 J* S2 e" X - )
4 B# X, s9 s1 ]1 b' B: b1 l - (setq note "\n....Text Only Please. \n ")5 E1 m) a3 x7 _2 ^; P) _( v; P
- )# _1 n! e- \; {3 d
- )
b0 B6 S; z0 U2 M3 V8 X! | - (setq note "\n....Nothing Selected. \n ")4 S% B/ h" f6 ?1 A; ^3 m8 x e
- )( X' u' E0 |# O% z# b; @+ I
- (setvar "cmdecho" 1)' S; Y2 A5 W. _) n0 R3 g
- (princ note)) B& K9 k; d6 w% t0 t4 p3 n/ D+ K5 j w
- (princ)# ]3 C! G4 j$ J8 C
- )
9 z1 F- t p; F* k( j" p# y5 g
: O: q, ]4 F t: {5 M- ;=====================================================================$ Y) Y2 {. X% }& E& P
- ;==================== NEW TEXT STYLE UPDATE ==========================
" i5 i! o' d, R5 G - ;=====================================================================
/ m2 o. y8 X" `
9 B! d5 P: ^: S- (defun c:nS (/ tdt ssdt sodt index)
1 i" C3 G0 L2 K7 _" @5 Y - (defun ObjName (ssdt /)
7 P4 V' s" A0 M/ i/ t: k - (cdr (assoc '0 (entget ssdt))). h1 u7 C5 p5 y8 \5 A- `$ ?% v( s5 E, ~
- )5 d. ?6 h+ R# G1 o) U3 d8 q% L/ H, F! |
- (defun MoPL (ssdt /)
7 ^$ x$ C+ R3 K. F$ O- V - (= (cdr (assoc '70 (entget ssdt))) 0)
7 O& [" x, [4 g6 \9 a6 a( ?) L - )
% d- e# \" C( Q# W% Q - (defun NoiPL (ssdt /)" S) x2 V/ ~+ l' C- G* f" \
- (if (MoPL ssdt)1 z Q" @- Q% n. E" t
- (command ".PEDIT" ssdt "J" "All" "" "X")# B! F9 r' r; y7 I4 g( A% p
- )% S1 x' W+ s0 o' [7 x/ E
- )9 \$ e, o6 l8 Q( g) q! ` E
- (defun NoiLC (ssdt /)
6 j3 i- d) l. }) O - (command ".PEDIT" ssdt "Y" "J" "All" "" "X")6 L( E5 R) f. E3 N! x7 v9 x
- )
7 J0 g8 a- ?1 j/ S' D N - (setq' e; X& Z H7 I; l
- tdt (ssget): J* i4 [' w# }+ B
- sodt (sslength tdt)
; {$ J# F9 ~& a/ `% T: \ - index 0/ p2 j7 A3 z& E0 ^4 F3 p" F) N
- )
. _& ]6 |& s: F' e. `% o( f; J - (repeat sodt, u9 u( \. ^8 [3 O, f5 @
- (setq
$ g" g: E* @4 j: A6 a - ssdt (ssname tdt index)
0 t: H. o6 C" a _7 M$ ~ - index (1+ index)
3 ?) u$ q# M a - ); Z! P+ }) z' e( o6 J* r# R. G
- (if (or (= (Objname ssdt) "LWPOLYLINE")
1 [0 Q" F: q& r; ]4 t - (= (Objname ssdt) "POLYLINE")3 ^0 C4 z1 d5 R. ?% l& O) y
- )- z8 D& a# C, H
- (NoiPL ssdt). @1 i @; g( M
- )2 M/ h! \/ U L$ G
- (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))
4 b0 g( @9 W, z - (NoiLC ssdt)# Y- ]# I. \" ~( _# M
- )
& i. o& `' d/ E: \( ]- | - ): k6 |) X7 e" k. W
- (princ)
' M/ a" T3 F9 Q3 |" [8 [& y - )6 O- h( p/ J/ H! B- P
1 Q6 Z* @2 c1 C6 O, Q# F( Z$ Z+ A- ;=====================================================================4 H! c& N3 A& L- P
- ;;; AREAM.LSP
$ ]4 Z3 c2 X" n6 M3 j# P3 r# ~7 { - ;;; Function: Calculates the total area of selected objects
6 v0 v& T% q0 a3 b( J - ;;; By Jimmy Bergmark
* ~ j# V5 f- c - ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved6 c: g. H* j4 l- u' z
- ;;; Tested on AutoCAD 2000
5 j7 A/ [6 _) S8 Q7 m9 \! l, f - & Q3 u/ b- c2 N8 n0 C" X8 C" h
- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)8 u. l6 R* i" r6 q& v1 B- V6 x
- (defun errexit (s)
5 c' i: r9 ^% R* K0 q( P - (restore)) A% R7 ?! b! I/ C& Y
- )
( q- [& c5 m" { - % H2 G' u' Z; a. L4 m9 i9 `
- (defun undox ()
) |: g& M$ W8 p* r - (command "._undo" "_E")
& Y$ D F+ P6 H$ M4 Z8 g" G - (setvar "cmdecho" oldcmdecho)
9 w4 v7 S& S1 } O$ p T) Y - (setq *error* olderr)5 z7 r& u& m/ d, L& H
- (princ)- z) `: D* D: N, S5 Y' ?
- )
* B2 Z6 O; x0 s- C% v4 \0 w
: q9 |8 \9 n1 Q4 V" U5 c g8 H! W1 F- (setq olderr *error*) A% \" K7 Q* w9 l) l
- restore undox
& g J6 m: I6 Y7 E - *error* errexit
1 j7 W, C' O7 N - )- d0 D7 I4 L' Q/ S3 Q( d$ h
- (setq oldcmdecho (getvar "cmdecho"))' I& c/ V3 L* l* @( A0 s
- (setvar "cmdecho" 0)
0 X# V9 j* @. O# E$ T6 G9 Y - (command "._UNDO" "_BE")
1 Z( V; G9 x8 U4 B - (if (setq ss1 (ssget '((-4 . "<OR")
9 B* X8 t/ z4 o9 \$ g - (0 . "POLYLINE")
) z: y5 l' O n6 P4 Q ?4 t" V z - (0 . "LWPOLYLINE")+ H2 P; \7 m! h+ w' T2 }
- (0 . "CIRCLE")
4 i2 u n% a0 W0 m - (0 . "ELLIPSE")
' I# E4 i3 y [/ L p! B7 N - (0 . "SPLINE")
9 D1 f# M( n! p - (0 . "REGION")$ }& t: ?) z& t5 ?
- (-4 . "OR>")
, S6 f# F3 x5 N/ a5 c/ ~ - )
* B- b) s0 K+ e5 S$ M - )# q+ s! F2 b/ ?4 k! p# O; j) I
- )3 q' y' q1 q+ K& C1 f
- (progn# s% x. ^6 h+ e! S B7 S
- (setq nr 0). S' j1 P! r$ T' V+ U+ S1 b2 O( h
- (setq tot_area 0.0)
$ A P% R2 Q& t4 V/ g0 T4 d - (setq en (ssname ss1 nr))
. R7 p1 J0 P4 n" I7 f - (while en& D- ]" z( I! a) P% i3 @" n
- (command "._area" "_O" en)- x- B( Y) _/ N$ Z
- (setq tot_area (+ tot_area (getvar "area")))( K% ^) C! ?0 O: H) Z6 G4 ]
- (setq nr (1+ nr))
" M$ I1 u. {4 {5 {: a/ D! _% B - (setq en (ssname ss1 nr))
6 V2 {; A; H( x4 m" j o - )
% u7 `6 ^/ ^7 c3 D( K( K - (princ "\nTotal Area = ")
& W* x/ i- j5 t2 D2 _ - (princ tot_area)
' O% E: B; x) K6 i2 } - )$ H4 m. M( y+ @; B
- )
+ z7 C6 w+ S- ]: j" T - (restore)( U* c% m) E# E3 d
- )% h! D* a8 \/ T; K( ~
- * J3 h- p4 B6 V) @; A. h e
- ;===================================================================== W9 F% N8 R3 f! b! F
- ;;; By Jimmy Bergmark, Y8 g# P0 ^, ^3 N8 y7 w$ A
- ;;; Copyright (C) 2008 JTB World, All Rights Reserved
4 |/ r! `& _' P+ \0 w/ s; q6 a - ;;;' r) d0 `% n: i3 K+ x2 h
- ;;; Created: 2008-03-31
z. ]+ A: H( n. X- |2 \ T - ;;;
% p0 {7 k- a7 @, Z" M9 [( r - ;;; Convert Attribute definitions to mtext, B2 M; c0 ?. p1 o! K
- ;;;* ?, N4 ^2 t# w* ]# n
- ' M! i( d: F3 @2 p. e( T) S
- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)/ k& @: S; g- p6 q8 Z
- (setq eset1 (ssget (list (cons 0 "ATTDEF")))
( w4 }8 m9 h# \9 H7 E3 ]* K - blkcnt 0
2 \6 q0 z8 x; n# F - )
$ s0 p P$ K: T& U9 G& V% I
$ j4 m2 [4 B) h- (if eset1/ M, L+ p' k* O/ o7 W
- (while (<= blkcnt (- (sslength eset1) 1))
% l& F x. A3 _* p; H6 ` - (setq en (ssname eset1 blkcnt)1 \) E. |# G: p: T- L
- enlist (entget en)7 g. u" d! C0 D6 u0 v# H0 d
- ht (cdr (assoc 40 enlist))9 U( A2 z0 @/ A% K
- pnt (assoc 10 enlist)
- k. `, M, g7 J' _0 _: M - pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt)
: E: W" K- \2 Y" t" I" N5 B$ u2 y - space (cdr (assoc 67 enlist))' O! T+ |4 X$ P9 _
- )
9 ]6 j6 ~+ ]) |2 b& n3 ~$ @ - (setq vl (list v& p4 X' N9 ?
- (cons 0 "MTEXT"); m2 q5 q3 Q# F$ A- ^3 i
- (cons 100 "AcDbEntity"): {; ~8 J# l+ w: e1 w8 E7 }
- (cons 100 "AcDbMText")
/ u1 a o: N p$ L - (assoc 7 enlist)
' D' R- l6 J) k. w - (assoc 8 enlist); [" G8 o& N! b! T0 o5 B
- pnt
6 z4 W9 t. ], q/ H+ K* a% K - (assoc 40 enlist)$ H% |8 w$ V& x
- (cond ((assoc 62 enlist))
- N! U0 ~" S# U. a4 _" O - ((cons 62 256))) r0 v/ n: P) a; }9 t/ m
- )
/ v" T+ T2 H5 e4 ^ - (cons 1 (cdr (assoc 2 enlist)))- D2 m5 R$ F! u0 R5 E
- (if (= space nil)( v z7 N& B$ M0 {+ ?
- (cons 67 0)
6 n. c y' k7 v" n - (cons 67 space)
) E& g* G* }' U& k - )
6 j/ O1 f/ Y; ~% t - )8 \0 J) m% J d8 T
- )
7 P- h4 r2 H2 D4 M' D, G) W - (entdel en)
) s5 O1 J6 E$ `6 s, z - (entmake vl)4 Q( R" t" e @6 w/ ]8 o2 ?: n
- (setq blkcnt (1+ blkcnt))
6 O: x s8 G( a, N" I - )' J; K& T) U% y9 [9 u
- )
5 K8 h9 [! o2 ]* n% S - )* z0 ^# k% Q' j6 N4 x! A
- - ~# |. L( s8 n+ M+ Z P. P
- ;=====================================================================4 F8 u+ }6 i, O8 a# S
- $ m& @/ o" i W# w; l; H" m9 V
- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)8 ~' ~. G u- ?: G1 O r
- ; Khoi dau cua chuong trinh* H6 `, \1 _0 o
- (princ "\nCopy Inteligent...\n")
- J+ I- A! |, u# f6 f! F' \ Q - (setq luuecho (getvar "cmdecho")
5 O8 b. F: x1 b j# w3 P - luu *error*
" l1 g0 Z' M# U% m! | - *error* ketthuc1 e* w) {: P! H, a
- cumdt (ssget)& s4 p8 g6 B8 y& |. i
- dodai (sslength cumdt)
& K; @& n$ \8 l" V/ F! w - goc (getpoint "\nSelect base point:")6 R" Y( r3 d) [2 H& O6 E) w. K' s
- thoat nil: l- R1 l& c/ U7 m% ]3 W+ a
- dem 0! o& I, C" } c: B6 H$ T. t R* ?/ g4 N
- textxl nil3 p6 X/ l7 v4 t- B- y
- );9 y; S& @& `# F7 H% w3 H
- (setvar "cmdecho" 0)5 X; H' P- Z) m4 ]2 Z* H! y2 v4 X0 N
- ; Loc ra duoc ong text de xu ly
* H a9 a. J; T8 o8 T+ h - (while (and (= thoat nil), F3 T5 L* [( g. L/ {* X* x- T
- (< dem dodai)" z* T4 Q$ f5 S* `% K7 V, U" q
- )
# f; R; X$ Q) }( Y& m7 n - (setq ten (ssname cumdt dem)
1 p6 Y- p- l* t - dem (1+ dem)- ?# v' D6 i7 x' ]
- doituong (entget ten)
$ K$ A! W/ Y6 N. n S7 X {: W - kieu (cdr (assoc 0 doituong))
" w! S& e' v8 W5 x7 g - )
( x5 w. D9 w( B$ K+ l -
0 q7 Y9 t' Q0 S, v& \2 n - (if (or (= kieu "TEXT")
/ @. A; E" R( a, u - (= kieu "MTEXT")
0 d7 U; X, M/ H* p% ?1 s - )/ S: \# D* A4 ^+ Q
- (setq thoat T
, x$ ^* V' v7 G) R6 h0 d9 F5 N - textxl (cdr (assoc 1 doituong))
J/ u9 b" c' m6 o - )
, t) G8 C0 X' ^+ E0 t: G+ c9 {) E - )* T& D7 J: L$ T( u! Z Y B0 l
- );% X9 X0 \5 Z! p! k
- (while T
7 [8 C7 e( N) O4 O- k8 v - (setq toi (getpoint "\nSelect next point: " goc)
0 {( Z! C. a! B+ s - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
/ U7 F6 l# T1 j9 J( D: E) { - dem 01 q( ~5 a5 f: @
- )
6 F* j; F/ { T* j8 s% t4 p - (while (< dem dodai)
0 x' W" X" Y R, x8 \3 Y( y8 c - (setq ten (ssname cumdt dem)0 f/ w* b( j! o/ I" J9 Y
- dem (1+ dem)
- ]. Z. Z0 h0 ^! I - doituong (entget ten)* U$ c7 x& F6 X( M4 x% N5 k8 S
- kieu (cdr (assoc 0 doituong))
u( A8 o3 K1 n( | - )4 T- h$ a7 w* o
- * ], {' d0 B) s: H9 n: I
- (if (or (= kieu "TEXT")9 |& V5 S+ c" n: G+ ^2 r1 [
- (= kieu "MTEXT")
: C, M+ o* R8 B0 P/ J) s - )# \6 d% E- b2 K# B0 l! S
- (doitext ten)# s% ]& _+ _3 h6 ~: t. O6 |: ~
- (copy_dt ten)0 E8 r/ M/ E( r. }: b$ q( _- \4 s
- 9 X& ]7 x/ `5 m# B' Z" V9 q! a9 n
- );if, k" j* t+ e# x5 N0 r1 O
- ) q% u9 _- e7 J' c
- );while
2 T) H, }# b m0 O! E' ~: M - (ketthuc)
6 C; f5 P L; D) D5 e/ `, b0 s - );defun; j2 t' k$ f6 c) k' s- t
- (princ)- x- i$ G2 `* |$ E
- $ b' d& p) X+ v8 v2 [
- ;=====================================================================
4 T. u1 M6 |+ R/ x. \, O - ;;; By Jimmy Bergmark, Y( I& e, V; ]% E
- ;;; Copyright (C) 2008 JTB World, All Rights Reserved
: F3 Y7 @& K% A' X! m6 F - ;;;
# ^; @0 ^0 f* F7 ~' e: C z% Z! y - ;;; Created: 2008-03-31! @" K! @+ Q0 F4 W% _" V2 O2 O
- ;;;8 N+ C3 O- a& ]9 I$ a
- ;;; Convert Attribute definitions to text
3 j9 x, z. e3 e2 D7 w5 X# h - ;;;
8 a' ?& x# R& } - ; ^7 J- ?! q: b5 v i! |5 C
- (defun c:ATT (/ eset1 blkcnt en enlist vl space)4 @5 c8 @5 S3 B' T8 I% N: j3 r0 b$ r3 n
- (setq eset1 (ssget (list (cons 0 "ATTDEF")))9 [8 H. k( z: S6 r0 r+ \
- blkcnt 0$ J+ C. f( |9 o
- )
* G/ k) M4 [5 N5 q6 q
[# x" Y* `: M" R( o) Z- (if eset1
. w' G& l8 H. _) E" H - (while (<= blkcnt (- (sslength eset1) 1))
, h$ x, y% Q, x8 ]8 _ - (setq en (ssname eset1 blkcnt)* K/ `1 l1 `/ z0 h' I
- enlist (entget en): b3 C* q- M$ |
- space (cdr (assoc 67 enlist))
( L7 F6 q( N3 x0 E - ); F' n* f9 C, p0 l$ F
- (setq vl (list- H8 ~7 T9 e8 [0 [& }) ?1 n
- (cons 0 "TEXT")
2 }! @* g4 [- _0 y' U7 V# x9 Y - (cons 100 "AcDbEntity")
* l6 X$ @# R$ W - (cons 100 "AcDbText")% j* ~+ j. c- t! X* f
- (assoc 7 enlist)
9 N9 d2 W& s& F; B - (assoc 8 enlist)
4 V4 r$ q4 a: V* ^2 Z+ p - (assoc 10 enlist)! g* Q7 p# V; p8 D
- (assoc 40 enlist)3 m/ g- v( {3 R' t; l' C
- (cond ((assoc 62 enlist))! Z7 V" G3 X9 ~
- ((cons 62 256))9 E2 R R: ^% a2 L
- )5 o+ o0 t& t8 S
- (cons 1 (cdr (assoc 2 enlist)))9 C+ w( f8 D1 g3 n2 S. Z4 V
- (if (= space nil)& g7 A9 a V E, C
- (cons 67 0)
* v; w5 m t7 C' w. T - (cons 67 space) t! v6 z; \6 c+ B) S" A
- )& y# f$ r. k5 s: s
- )
% I5 z4 y5 f+ j+ ]6 G$ q% X - )
; D6 u" a* g1 ?; r - (entdel en), j- U9 }( c' O' _; p
- (entmake vl)( q6 d3 J3 o% w3 @) I. S2 s% F; }: B
- (setq blkcnt (1+ blkcnt))
5 n3 Q, C4 U8 e* s) ?! _ - )* H1 I% o- a; t: Z+ g( L6 E2 ?
- )) m. r( w9 _" i
- )1 j9 }: m5 f+ b/ {
- ;=====================================================================: I; r1 V6 m; Z% A
- ;============================ Doi Truc ===============================
) K8 Z, k) f$ r0 B2 W( [ - ;=====================================================================
7 x. P& g% \7 C - * p6 r# }8 p( {6 [
- ;=====================================================================& p8 w. X, e+ r
- ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============
/ c" Y* c: ~ R" S0 e/ B7 Z: a - ;=====================================================================
W4 C p$ G2 f$ C; { - (defun c:ga1 ()
$ J* [7 Q2 L- Z) j1 S: X1 l - (setq a (getpoint "\nChon diem: "))/ p5 a9 H2 h5 y
- (setq b (getpoint a"\nChon diem: ")): `% \$ k2 ]) D0 |& z2 r& r
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
4 ~7 C" l8 I) Z' \, R( | - (command ".circle" c a)) p9 Q& Z, V# s/ Z! u& L9 p
- (command ".line" a c ""): e8 k) a8 L4 u/ ?
- (command ".array" "last" "" "p" c "1" "" "")2 t9 C: Y& g/ S$ u
- (princ))
- u- D3 H" h; \! } - ! M6 J! \# c9 i$ u- P2 A& M4 F2 X
- (defun c:ga3 ()
5 H4 {9 T1 N3 _; m( m* Y3 ? - (setq a (getpoint "\nChon diem: "))$ B4 {( @- Z, l, i! U# X* [
- (setq b (getpoint a"\nChon diem: "))5 T4 D. a" }6 P. _6 K( }- ]
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))* J7 W1 N8 `7 u) G0 O
- (command ".circle" c a)0 Z% }" B6 L7 }
- (command ".line" a c "")
# }, H1 g! E" f - (command ".array" "last" "" "p" c "3" "" "")
3 W/ t/ |- n. Y ^; K - (princ))9 |0 e7 w2 E! D P" |7 L+ _
: p( Y5 S- o8 P8 o6 R. T- (defun c:ga5 ()
% d0 @3 o) D! C- g4 h# G - (setq a (getpoint "\nChon diem: "))# s( t. }; {$ B, l. ^& v
- (setq b (getpoint a"\nChon diem: "))) f9 U2 ~6 g' g+ {+ e; x
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))3 W* F, F6 n1 ]1 P5 @ a
- (command ".circle" c a)( d7 h% q1 u1 g* L* a) ~( l6 x
- (command ".line" a c "")
6 Z% b! p7 k l2 H! A6 z - (command ".array" "last" "" "p" c "5" "" "")
# C) B: ?* f5 t$ U - (princ))1 N9 }# i' H8 m! b8 `- F
- ' X8 {1 S0 ^& X; g" T; T
- (defun c:ga7 ()' D2 [& T, M2 H! B f3 X7 w
- (setq a (getpoint "\nChon diem: "))
$ a; V+ P# q1 I/ N* v - (setq b (getpoint a"\nChon diem: "))$ U+ }0 u- i' z$ |, G6 w$ g( g
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
# ?* c, V) ]7 T7 \! P - (command ".circle" c a)2 V' [$ N8 @& }5 G& T
- (command ".line" a c "")- j3 K$ y% A6 }' y+ ?
- (command ".array" "last" "" "p" c "7" "" "")
- \" Y ~0 T0 }' V1 h" b - (princ))
0 Z' [- E2 b D - 0 w$ `" |" \ h6 ~! R1 ]
- (defun c:ga9 ()1 D( R/ P. P0 {8 p% H
- (setq a (getpoint "\nChon diem: ")). k+ L( i p/ M! K E0 l) c7 Y
- (setq b (getpoint a"\nChon diem: "))4 O6 a( Z$ k7 q5 A* i- ~- p9 H7 E
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
2 ?) `, I0 h* I5 o - (command ".circle" c a)) I; A1 K; D" m7 k( r. u
- (command ".line" a c ""), E4 r* C! @" I- N
- (command ".array" "last" "" "p" c "9" "" "")
1 P+ Q# B5 N, R4 P) x; U - (princ))2 n m/ O6 J" f5 s" M
- # {, Y/ e4 Y) C. R& j7 x
- (defun c:ga11 ()3 X- x$ J6 p' Q' M* v
- (setq a (getpoint "\nChon diem: "))
. X, J8 v7 ?% d9 A - (setq b (getpoint a"\nChon diem: "))
+ b o4 M# o; I! r - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
3 f: H7 o& ^4 z - (command ".circle" c a)
; l8 j( m6 p# `8 v - (command ".line" a c "")
I5 ?0 l6 h: A - (command ".array" "last" "" "p" c "11" "" "")+ t* d' Y+ U% H* Y
- (princ))
: e+ K' \1 B( C" h# C$ V# p( A- |, W
3 I6 J' B5 N! u! J$ _% I- (defun c:ga13 ()
% k; k/ W6 }8 a5 i; v/ a" F2 W+ a - (setq a (getpoint "\nChon diem: "))' k6 W0 @1 }0 K+ D
- (setq b (getpoint a"\nChon diem: "))
+ s3 B0 i( }: d+ N - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))% g: k2 D. e2 v* V
- (command ".circle" c a)
( F" M: O5 h) j - (command ".line" a c "")
' P6 r' O& w0 H4 g - (command ".array" "last" "" "p" c "13" "" "")% z( [) o, K4 ~
- (princ)). \- Z+ |) B4 e* t+ d/ D
" P4 J: F1 m- f, ~" A' n; }- (defun c:ga15 ()
6 v' G2 h- Q% f- V - (setq a (getpoint "\nChon diem: "))+ @4 R( t0 M3 Y" s
- (setq b (getpoint a"\nChon diem: "))
+ y4 ~# u! X# Z' G, ]7 Z, x/ _ - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))! a; Y9 w) V) O0 v
- (command ".circle" c a)
' C- o4 o. L: q2 _ - (command ".line" a c "")% @1 @) l( A) Q
- (command ".array" "last" "" "p" c "15" "" "")
# y4 H' r$ g! z n% _ - (princ))
& T P7 U/ t* F- f3 M$ x* V - 6 H9 W! L( Y! C# h0 \
- (defun c:ga17 ()$ L2 R) Y2 F, z8 Q* b4 d6 m
- (setq a (getpoint "\nChon diem: "))$ Z0 x7 Y: h) V8 |5 H
- (setq b (getpoint a"\nChon diem: "))
% g+ f0 \% m" s7 W( z& y( M S - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))7 @0 ?$ r5 l1 n" R& k
- (command ".circle" c a)
7 i C7 e: A; M5 o' x; s! Z9 |# @ - (command ".line" a c "")
$ d( B! O M, [3 W: [ - (command ".array" "last" "" "p" c "17" "" "")7 v. ]: }- F5 z/ b4 t: J
- (princ))
3 y8 J9 E/ ^% U( r: g& e
( M7 N4 E, p7 o3 S; ?- J' J- (defun c:ga19 ()4 t+ e; f! u6 {' ^7 d" c; T5 C) d% C
- (setq a (getpoint "\nChon diem: "))
- f2 d; \3 l1 D7 L( ^ - (setq b (getpoint a"\nChon diem: "))
9 }5 A; v& u+ I/ c% b7 {; U - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
& a c! F) v _9 E. F5 q+ V - (command ".circle" c a)7 g2 J" j( j$ `# Q3 p# U) C5 A/ c6 p& ^
- (command ".line" a c "")) c Y- N* d7 h( C5 X
- (command ".array" "last" "" "p" c "19" "" "")
& Z1 C: |/ H) U# ~ - (princ))% v2 O9 p( o" {) N! l- r
- 7 }2 Y, v5 S/ K& E/ B9 H: W
- ;=====================================================================
7 B. a! D0 M2 |) |4 l' A - ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============
& }; X( W1 ~; [' L" j+ g2 `5 U! [, A - ;=====================================================================
. h) J( L- A+ h8 M! w# ~% H- H+ Y - (defun c:ga2 ()$ I" p, |' ?9 J3 d# _
- (setq a (getpoint "\nChon diem: "))+ v$ Q7 V6 A6 J
- (setq b (getpoint a"\nChon diem: "))% I8 `* I7 R! D1 w0 c0 V& i
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
/ G8 l0 n! R2 @$ F, V) s) v3 D - (command ".line" a c "")
9 c- x# {( S% o+ ^% R& f - (command ".array" "last" "" "p" c "2" "" "")* R* l# I9 K' r+ n5 P
- (command ".circle" c a) p9 j: L+ K# \, f* }
- (princ))
, q, X4 e/ R y, c* M( G }9 u# o+ p
. j8 C; ?. S8 ^* A6 \- (defun c:ga4 ()+ \ D9 E0 m& _
- (setq a (getpoint "\nChon diem: ")); j- H8 W; s8 z, K
- (setq b (getpoint a"\nChon diem: "))
3 f' R8 ?+ n# v - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
1 J& l0 {" I! I+ R. z# X6 d - (command ".line" a c "")
) o! V" H, J8 l - (command ".array" "last" "" "p" c "4" "" "")
5 R: }. E# E. s* S& R4 L/ c |8 j( } - (command ".circle" c a)
# s; ]; x( D# s1 p - (princ))
, Z0 ?8 f+ M3 c7 L6 ]& r3 e1 V
4 K. o, q K- z3 O- (defun c:ga6 ()
4 P8 g v l. f6 {% v- ^ - (setq a (getpoint "\nChon diem: "))
$ P& N) O8 x3 C - (setq b (getpoint a"\nChon diem: "))
' g4 e/ |# C1 d/ F, ? - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))8 j: \3 d" L+ W, L: h
- (command ".line" a c "")
# ?; J3 D9 h5 ], t" V - (command ".array" "last" "" "p" c "6" "" "")' o# o, H, E7 j3 ~9 d2 I; J1 m
- (command ".circle" c a)6 n! F; V h; w
- (princ))$ S* z' C2 M4 A4 o. {
- A5 Q D0 h# ~8 m& d) ^
- (defun c:ga8 ()) N0 s# N8 w5 z2 g; a' G0 n0 Z
- (setq a (getpoint "\nChon diem: "))" x8 l2 @& d% l/ W; S o
- (setq b (getpoint a"\nChon diem: "))& B; W2 h8 P: s4 q% ^" `/ V* Q
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))). M9 L+ ~. ~& }5 M5 k- l7 {
- (command ".line" a c "")
+ s7 _! z* R& b" q! ? - (command ".array" "last" "" "p" c "8" "" "")0 r( K( z# h$ f3 u0 R2 _$ e/ R
- (command ".circle" c a)/ O+ d$ T' u9 |
- (princ))! U+ C" N. r% o+ f
. P- \, K$ z8 V. E- A- (defun c:ga10 ()
1 [% I! b) f( a+ \ - (setq a (getpoint "\nChon diem: "))6 N% P- Z- C5 i0 b2 k4 g* O
- (setq b (getpoint a"\nChon diem: "))4 g+ F& P; {2 r# _3 p2 A
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))+ r3 F& m' Y- Q; n
- (command ".line" a c "")
: O5 G6 B8 m# z0 N - (command ".array" "last" "" "p" c "10" "" "") N7 t6 S9 P+ m- T1 F b) d0 P
- (command ".circle" c a) w5 I& c1 Q/ T8 `& _
- (princ))
$ j- h% M9 O7 v: H3 N: X' b - 6 D4 T7 e$ \& @7 Q! H
- (defun c:ga12 ()4 f8 _; y$ e$ y1 @" D7 j1 i
- (setq a (getpoint "\nChon diem: "))4 L n( g' ]& b0 F+ u; M+ C- s7 w
- (setq b (getpoint a"\nChon diem: "))2 K9 }1 o: M/ h4 Y% h) Y
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
5 |# {+ y7 ~ H4 T - (command ".line" a c "")* i3 J6 a; L- m2 ]: d
- (command ".array" "last" "" "p" c "12" "" "")
( X7 [& p& y9 R7 \) h$ J, p - (command ".circle" c a)4 F* A& {: D1 e" d
- (princ))
/ Z% F5 w- c. U/ P" ]
$ F/ K' u5 p/ n; K# f2 ?# |- (defun c:ga14 ()
/ P) o* H6 C7 T/ [ - (setq a (getpoint "\nChon diem: "))0 e X: ~& Y) M7 W: ~0 h5 l! L
- (setq b (getpoint a"\nChon diem: "))
! X/ u1 \9 z0 N9 m0 o! c* g. R - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))! ^+ b) \/ c( G' \1 `
- (command ".line" a c "")
9 p5 N, C8 G0 H1 t6 c/ ? - (command ".array" "last" "" "p" c "14" "" ""). F. v% Y2 x- |0 ?( j+ _
- (command ".circle" c a)8 Y; L9 E; s% _
- (princ))9 g; S# n1 H6 N3 R
: z6 j. f, ~. R5 N' P, z- (defun c:ga16 ()
- h3 n a1 w9 |2 Z1 j& o) }# X - (setq a (getpoint "\nChon diem: "))
; E, z6 n9 T" ~1 I/ h - (setq b (getpoint a"\nChon diem: "))# z* v, ]0 U0 i, o) D
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
* f3 `) r: Q. h1 o - (command ".line" a c "")
' q# t- N" t n5 ?4 r+ I. \, R - (command ".array" "last" "" "p" c "16" "" "")6 @7 @) \3 _" s$ s1 |# v, S( K
- (command ".circle" c a)
, T" J" O' l* \- c - (princ))7 S6 [" W$ X5 l4 B3 r
- + {+ e: N3 i w* ~4 j6 {
- (defun c:ga18 ()7 V A/ t" `/ j: z" I, e
- (setq a (getpoint "\nChon diem: ")), q0 \0 k/ V7 b* H3 L
- (setq b (getpoint a"\nChon diem: "))
D4 @* G1 j: N4 b - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
2 v, ]$ B2 M; ?) T+ a) N0 H - (command ".line" a c "")
* O, x6 \3 W2 i$ o' N+ M' O% Q, i4 s - (command ".array" "last" "" "p" c "18" "" "")3 W+ c) e1 u3 a1 b. O" R* S' R
- (command ".circle" c a)
# S/ @. n2 Y( m! G b; [; ` - (princ))
( c0 _8 r: u& v+ n$ }8 E% b - `/ Z! h& k0 D. A9 a k
- (defun c:ga20 ()' U; g6 N1 J, P1 ]" F
- (setq a (getpoint "\nChon diem: "))+ v7 k' B! y Z) r
- (setq b (getpoint a"\nChon diem: "))
) p6 I! D; m# ]2 Y8 Y* m$ O4 u - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))2 u8 B# N2 D& O# v V
- (command ".line" a c ""): C( M# W& I8 [, D" `
- (command ".array" "last" "" "p" c "20" "" "")5 g5 v! t/ I% ?" n
- (command ".circle" c a)
$ V/ g; V5 V7 e7 x - (princ))
9 V4 g" v5 |7 |8 W" r7 Y7 t - $ ]! |# S- l" F' P0 O
- ;=====================================================================* c4 P3 w# p K/ X( y* ~/ P/ K
- ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============
( {$ r$ K, D; x$ i/ I4 @ - ;========================== 06-11-2016 ~ 18h00 =======================: w& u. Y) {+ J7 t5 j. f
- ;=====================================================================! H, A8 @/ Z/ g1 R* k
- (defun c:ga (). ]8 M1 A5 w& w) @( r% X
- (setq a (getpoint "\nChon diem: "))
r6 N# r6 b8 E - (setq b (getpoint a"\nChon diem: ")). R2 {" }( E1 K. ^) l% }; p
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
7 F% S4 I7 B( W0 Y2 b+ [# r - (command ".circle" c a)/ w% Z. {/ j, o, {
- (command ".line" a c "")1 m9 k$ E0 ?7 U V
- (command ".array" "last" "" "p" c "NUM" "" ""), w! x" e; @) r
- (princ))3 u8 Y4 K* \6 `5 H7 }; d' q: R
- L' c- A- E5 d$ X" y- ;=====================================================================
/ w8 J4 c; d! l% P( L$ Y8 d - ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============
4 P6 R. ^( f% f! s - ;========================== 06-11-2016 ~ 18h40 =======================
+ \4 R' i* e h P5 c4 i* l8 u0 I - ;=====================================================================" J$ `/ }; L( S; r" J8 N
- + |! K9 H( u0 V, ?+ \
- (defun c:hoathi ()
2 F D+ R! C" [, \& _% q/ V - (setq a (getpoint "\nChon diem: "))% i h/ P- ^+ v4 ]4 p
- (setq b (getpoint a"\nChon diem: "))
$ T8 S% Q$ I. b" | - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
+ \) H+ Y& O6 M8 U o7 E/ X, R" l0 J - (command ".line" a c "")
% _ K6 \/ a% T( c/ d8 D6 ^ - (command ".array" "last" "" "p" c "NUM" "" "")
: G# v1 g6 |- m/ U# A; e# _ - (princ))+ A0 O) U6 J0 c" a
- $ J8 A9 J% P6 A
- ;=====================================================================8 |! d1 r: G6 [6 y/ C
- ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============
0 G6 x3 q4 w( ~1 K3 Y - ;========================== 03-11-2024 ~ 19h33 =======================* G+ I. n2 j* C: u5 d
- ;=====================================================================6 F$ X* u( I! o8 p5 ?9 Z, f
- ( b8 ?2 y- Z& {. l
- (defun c:cung ()
. W [- G- L2 E# l: q: \ - (setq a (getpoint "\nChon diem: "))
# y! f- }5 J, J- }! {( b1 `1 }: ~ - (setq b (getpoint a"\nChon diem: "))
" ?) P5 M! E e' ?! ? - (setq c (getpoint a"\nChon diem: "))
$ S+ {' {) P9 I4 a6 o5 Z - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
9 ?1 t0 q H3 n! y6 m9 t - (command ".arc" a b c "")4 ?4 N0 ~9 f- a% i8 ~
- (command ".array" "last" "" "p" c "NUM" "" "")
# P$ X. o+ A7 p- ?( d. K6 }, j - (princ))
9 }! `4 \( f0 }0 C# V- x
* S! k* l! {; M- ;=====================================================================5 O7 m2 F8 a# [6 a. I' j5 T2 K
- ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============" I+ k2 R6 B! l
- ;========================== 03-11-2024 ~ 20h02 =======================
% Y6 Z) r* r! C9 m - ;=====================================================================
( Z2 t3 ^; l# w& k; m1 P
; j* C0 J5 Z. b' k- (defun c:hecloic ()- H& l3 [) L& ]" B: {& ^( n0 n" t
- (setq a (getpoint "\nChon diem: "))
9 H# o/ j" e2 x& x/ c - (setq b (getpoint a"\nChon diem: multi "))7 E7 n8 F- M. U, [+ D- o9 P$ U$ P' B
- (setq c (getpoint a"\nChon diem: "))(princ)
/ n& X* E' \, Q, D; i, l - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))). S+ D5 _4 P# U% t# c* X& S
- (command ".arc" a b c "")! m4 s0 E# z; h
- (command ".array" "last" "" "p" c "NUM" "" "")5 c! @7 i' K7 I2 ~/ I
- (princ))! v( N( E. T# `& x3 y/ X e
- ; f- V3 M% }' a
- ;=====================================================================: i& M- z1 X4 a: b' N2 \
- ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============7 X) H) y" G" K1 v
- ;========================== 03-11-2024 ~ 19h38 =======================( m8 X+ [' J: M
- ;=====================================================================) l7 S4 q! M$ m' w0 _& y
- 4 o0 P2 q" b2 b* B/ N- k
- (defun c:gay ()/ P. ]! P3 o0 S6 v& ^% s, l
- (setq a (getpoint "\nChon diem: ")) o+ h1 g0 n& o1 u: p) d
- (setq b (getpoint a"\nChon diem: "))! U8 g- J# n6 I6 s* b
- (setq c (getpoint a"\nChon diem: "))(princ)
/ K9 b _1 w# l6 G& G - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))3 k! f. X( x$ W5 a4 c a* y& @5 o- V
- (command ".pline" a b c "")% @4 b4 K! q9 Z3 ~; d8 J! s
- (command ".array" "last" "" "p" c "NUM" "" "")0 s. R$ m" k9 e" l8 |( u$ D
- (princ))
$ B3 X* g0 G9 I, P/ m
8 v, ^8 Y, N& [2 [- ;=====================================================================4 M I ]3 p+ d* b8 s0 [* B
- ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============% |6 }0 ^3 @! e" [
- ;========================== 03-11-2024 ~ 20h02 =======================
4 k: \# u# R- ~9 @+ G N - ;=====================================================================
) s0 d" Y' O4 v' u8 t" r& ^, i E - , u8 }/ ^$ {+ p* w! C, L9 G/ b# b9 o
- (defun c:hecloit ()- s N3 I7 J2 K1 R
- (setq a (getpoint "\nChon diem: "))
2 y a& a7 N0 y% ?$ R, O# t - (setq b (getpoint a"\nChon diem: multi "))' G* |! V( W8 n9 `2 i8 S; c
- (setq c (getpoint a"\nChon diem: "))(princ)
0 Y- Z5 @3 ?: f# X9 G - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
" J# j; t0 M' X4 R - (command ".pline" a b c "")+ j4 Q: Q9 B7 H) b2 @8 Q
- (command ".array" "last" "" "p" c "NUM" "" "")
0 v: X% `( ] I: y! K3 e7 G - (princ))9 {7 ^4 e$ f# J9 l6 S' p
- / D' H/ A9 P% \% P
- a. {8 Y. ]% @. S
- ;;; ============================ Merge Hatch =============================
& \/ n7 [" ~: U& m4 \& D - 9 R) B7 h B4 A ? S1 K) m
- (defun c:mh (/ ss entht sl i dt dtht)+ R+ O* K3 B/ w) n! A
7 ^3 t; S7 X' |, R: X5 v- (princ "\nMerge Hatch - free lisp from CADViet.com")$ |7 p' s; c4 Z9 H) b" S
- h. k' V& t6 X: G1 Y/ s- (setq- D% E( b E5 X1 w" p i* v5 A5 }8 M
- ss (ssget '((0 . "HATCH")))
+ u) `( R% K& a# M! b( \/ U - sl (if ss
3 B4 r/ ~( F9 g$ H1 \ - (sslength ss)4 i6 P+ H% N: N0 A/ [ `4 ~
- 0
5 X4 Y% d* Y9 B& N# f- r9 I - )/ [' R1 p1 t% i, F$ K
- i 0
, ?% \* H% `: e - l 0
1 ^; |6 I; t2 O - )) l2 F) |0 ^* z4 O+ H
; K6 N. w, |+ u S! t2 z1 r- (repeat sl0 V- D5 B0 h) F4 i: G3 L6 l
- (setq1 P) _$ l0 d# z
- entht (ssname ss i)
* |9 `: O. Y7 [- p7 l( `8 e - dtht (getbdata entht)9 ~1 Y% J7 c6 q# `6 Z
- dt (append dt dtht)
$ i" s1 z$ P% }( |' P9 S# \5 j9 w - l (+ l (cdr (assoc 91 (entget entht))))
8 a+ D/ G8 E) B1 F/ [# \/ m) s/ ^ - i (1+ i)
) G4 K( ^ @) c5 u0 o6 `/ b( r - )$ _1 I2 P& }/ m8 [* V z% u
- ) K7 ^9 N& _& j
- ' ?/ q+ R6 F2 @( W L: U# \
- (setq ent (ssname ss 0)
* U0 t, J& J% Z: A. v H( | - ss (ssdel ent ss)
; s# K. E8 M5 X" t! q2 B) ~/ [ - tt (entget ent) m7 H8 b" z- R8 @: p* @) U
- duoi (member (assoc 75 tt) tt)
# T" }. v. O; V' Y3 Q/ w - dau (reverse (member (assoc 91 tt) (reverse tt)))/ Z0 X$ f0 E& ~: o
- tt (append dau dt duoi)" N+ ?; }( P) F( m& k9 L. c; h2 \
- tt (subst (cons 91 l) (assoc 91 tt) tt)
* S" {0 w# m, L - )3 i2 k& O8 g$ d) g; K/ y
- (entmod tt)- U% u$ m. K- p
7 F6 H! E5 ~) |- (command ".erase" ss "")3 ~% M1 J6 q" k0 h+ h6 R
- (princ)
: l. ?" @+ `. a! p - )
+ H) S. D8 ]" ^
# ^+ k6 p7 m8 Y4 t3 t- (defun getbdata (ent)! e) i5 x8 k" ?
- (setq tt (entget ent)8 ^2 z0 Q* \5 D/ \' \1 f
- tt (cdr (member (assoc 75 tt) (reverse tt)))2 K' s' J, g" c1 M
- tt (cdr (member (assoc 91 tt) (reverse tt)))
% A- I* @: z3 ?. @8 f - )
& Q& L1 M5 P5 W) m$ f - )6 Q- k* v; @) X7 Y, W4 ^
; O8 _! v& u: z8 |6 _( ^$ G9 w
8 K% @2 e, F1 C- (princ)' f8 T; T `& ]( v2 G
- ! e1 G5 o; ]* C
- ;;; =========================== CAC LENH LAYER ==============================
7 g7 W* x6 O& \1 \1 a9 L - ;;; =========================== Layer hien hanh =============================
+ y; e+ n# x* N& C( P( M% K
0 ~" T8 J3 X! k, D$ n- (defun layset (/ LAY) (setvar "cmdecho" 0)% z$ @3 h3 _' U, ^7 \0 i# W) D
- (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))) X+ a; ]- g' d
- (if LAY (progn
5 T0 ] V- N6 Z, Q. `6 S' U) \ - (setq LAY (cdr (assoc 8 (entget (car LAY)))))/ T, b! V" k. {" i
- (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )9 J% o B) I9 {# B, c x- K7 M
- (progn
& Y3 C* T& g' L- ` - (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop)) . l9 A6 ^. _9 e$ U2 N
- (progn& v* ^ n8 E5 |, i! S3 w; _! s- `- A/ ^
- (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )
, o6 O' @ p+ |" y - (defun c:LLL () (layset))(defun c:LAYSET () (layset))
0 K! J" y$ ?: N' i - ; x9 d9 s: n5 z$ M0 Z
- ;;; ================== Cap nhat doi tuong vao layer hien hanh ==================2 a( w6 X: Z- t3 e/ z- ]
- $ T2 g, D& t# u k
- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)
$ Z- S. U0 B I8 @) W2 t - (if (not (setq SS (ssget "i")))9 ?- Y( t+ D2 ]3 C+ b) N0 e
- (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")8 E* h% Z1 `- ]3 a* \1 E, Y
- (setq SS (ssget)) ) )
: E6 Z: O6 @+ Q* B! w n* R1 ^4 v) r - (if SS (progn5 [' g! x5 ?4 g% k- ~
- (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "") , n: ?! b& m% x. z
- (if (> (getvar "cmdactive") 0) ! ]+ f4 j) \; P4 ]
- (progn2 S8 n* A: Q5 d; h) {
- (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )$ v; i- b5 ~( z8 C2 \9 E
- (setq SS nil) ) (if (> CNT 0)
# k6 x6 p9 S6 }6 f- X+ n - (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )
& q' S2 f, `6 S; d1 u - (if SS (progn
/ _9 h+ h+ ~ u% X; y - (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")
1 A/ O! I1 L& R+ c2 r9 X* ]; |; W8 ~ - (if (= (sslength SS) 1)
, u; r9 Z$ }1 ? - (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))
& \' L3 D$ {$ M7 [ ~ D* [3 V - (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end/ I9 b' E, `- @$ M
- (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur))
* z8 k4 W3 L# X5 R
- Y6 b) K& V% R. V( Z6 a- ;;; =========================== Layer Iso ===================================
, C2 {/ {8 _. k" Y( X @6 U
2 K( s4 ^6 W" d; k/ t+ }+ l- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)2 ]+ Z( |4 g6 W. I
- (if (not (setq SS (ssget "i"))) (progn
7 u5 Q# n5 `; z5 e- i2 w - (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ")
k2 u8 ~; c3 n; g' w" x- g - (setq SS (ssget)) ) )7 s+ Y! o7 p$ H# t; Y
- (if SS (progn (setq CNT 0)4 X2 d4 B( |! [& f
- (while (setq LAY (ssname SS CNT))
- b! q6 ?3 L" X0 ?/ \$ C - (setq LAY (cdr (assoc 8 (entget LAY))))
; `; Q' t9 {, I: c. j$ x - (if (not (member LAY LAYLST))" G! h i0 C+ w1 @0 {
- (setq LAYLST (cons LAY LAYLST)) )
4 Y2 b; N0 Q4 \5 ^6 l) F o$ o - (setq CNT (1+ CNT)) )* h0 c% {, x, i! a( W2 L A, |8 `
- (if (member (getvar "CLAYER") LAYLST)4 z* a7 o Z6 G# }
- (setq LAY (getvar "CLAYER"))0 U% F: }6 {' U/ t; i0 _8 A
- (setvar "CLAYER" (setq LAY (last LAYLST))) )# m/ f q4 H( g* O( C( G, |8 S: P
- (command "_.LAYER" "_OFF" "*" "_Y")$ U$ o, ]6 N+ c
- (foreach VAL LAYLST (command "_ON" VAL))1 H! W# i7 T! }& V4 I
- (command "") (if (= (length LAYLST) 1)
! p! I5 Y0 S& K7 F: i4 | - (prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))9 B; d% v4 a4 e' J1 N h
- (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "0 I& A' F: a- r
- "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) ); Y8 l# d! `- T7 Z
- (defun c:LAYISO () (layiso)) (defun c:LI () (layiso))4 `; P* |2 Q3 Z/ n: H$ I
0 q- l3 `7 K' J3 G; A2 z, @ D( G- ;;; ========================= Layer Match ==================================9 A5 @7 f: @4 n. e9 u! q
- 9 O- H8 r4 i- q. O7 |3 T
- (Defun LAYMCH (/ SS CNT LOOP LAY ANS)
5 T' n6 m; |$ e/ e: r. L/ O* I - (setvar "cmdecho" 0)5 v+ M; N3 {! d8 E
- (if (not (setq SS (ssget "i"))) (progn, a+ q# I& ^0 j# A6 q9 s
- (prompt "\nChon doi tuong muon thay doi Layer : ")7 e0 n G9 o# V. K3 Q
- (setq SS (ssget)) ) ): i. r0 m: y* X- L. L; D3 t
- (if SS (progn0 m6 y1 D) p- A# W
- (setq CNT (sslength SS)) e1 w) D5 ~5 `9 u" I4 b a8 V
- (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "") 2 K5 L9 Y' l& v9 R; G3 r( [% R
- (if (> (getvar "cmdactive") 0) (progn
) \- ~6 M# W3 L F" x - (command "0,0" "0,0") (setq SS (ssget "p")
' o+ P% t4 e2 @( ~ c2 V# p" k* k - CNT (- CNT (sslength SS)) ) )
0 k P4 D4 d% V. m' j' ` - (setq SS nil) ) (if (> CNT 0)
2 a0 u- d" `! I - (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) ). B* q D, j3 r0 k! |& ]
- (if SS (progn1 Y |# p& n- W/ }; H
- (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T ) R& e, ?) K8 I2 a1 Y5 w/ u! ]
- (while LOOP (cond
" c6 o' C$ N; x3 Y2 y - ((not LAY)
4 Q4 l! e* Y' Q/ b - (prompt "\nKhong chon doi tuong.")
( P9 M/ n: A1 M% j( n1 k+ x9 ] - (prompt "\nSu dung layer hien hanh? <Y> ")! ]) t5 ~% `5 A% K5 B' e( N. {
- (setq ANS (strcase (getstring)))" ?, `4 }: H9 d5 z: r. p
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
( `9 ~ U4 E& \( [ - (setq LAY (getvar "clayer") LOOP nil ) ) )
6 D7 t5 u2 |7 k - ((listp LAY) (setq LOOP nil) )
5 f& v6 i" l+ @ t" W2 f/ k5 n - ((= LAY "Ten")8 H- [/ G$ a! z: P- ?
- (setq LAY (getstring "\n>Nhap ten layer: "))
- B0 p/ I( S( j C$ O - (cond
9 {) o6 ]5 l# V& f7 ~" @ - ((tblsearch "LAYER" LAY) (setq LOOP nil) ). j& |+ `$ H F0 H! C. b
- ((/= LAY "")5 @6 \9 k$ ?/ Y' B* b
- (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")
$ n- L9 D7 y! L0 z! e5 J - (setq ANS (strcase (getstring)))1 e9 e# l& H9 G0 n
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
( ]8 C' t$ B9 h' x8 s- a; @0 {6 Y - (progn
- c+ u9 }" o2 c3 ^/ v, m1 F - (command "_.LAYER" "NEW" LAY "")1 l! F* A( E" h9 P
- (setq LOOP nil) )4 w; i' q4 s8 U+ X0 Y
- (prompt "\nLoi ten layer.") ) ) ) ) )
w7 O) W3 d) I. V - (if LOOP (progn (initget "Ten")6 u1 u8 ?; n6 W1 s3 f
- (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP
5 t: i. u' k* V/ P - (if (listp LAY), F, p+ X6 R; A$ b
- (setq LAY (cdr (assoc 8 (entget (car LAY))))) )- J( d; i. _3 w9 A5 ^, W
- (command "_.chprop" SS "" "_la" LAY "")
3 u/ Y0 U! @! r - (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )
/ k0 T* d8 s3 ~. X" n: O - (if (= LAY (getvar "clayer"))0 j( Q0 s$ U9 \) V3 D
- (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )" f- o9 @8 C. L: ~; V8 o2 q
- (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch))
" h# y% b, {. l0 r - $ e. v5 d; B! [# ~3 c% r- Q2 l4 }
- ;;; ============================ Layer OFF =================================
$ x2 l9 ^, X' i7 f: o( F; [0 W - % R7 G9 l2 z% N3 U3 I4 G* U
- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE)1 k0 R0 m* m" H
- (SETQ SSET (SSGET))/ i3 l: K/ x8 D. l+ K
- (IF (/= NIL SSET) - d- L0 t1 e- U5 S. [
- (PROGN( X: q: b& @. }$ G
- (SETQ SSL (SSLENGTH SSET)). g# ?! X5 o' X$ w
- (SETQ LAY "")
, U' [2 `* V3 t1 g - (SETQ I 0)
2 Z6 t: m% ^5 b - (SETQ MODE 0)
+ Y# H# R) j! E8 u5 r/ s1 g- Y - (WHILE (< I SSL): [3 p7 E) E" ?$ u$ p& V
- (SETQ ENT (ENTGET (SSNAME SSET I)))
1 o5 L0 B( C- l( ]* j - (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
1 Q5 w: B; G* g( A) ~6 v - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )), ~ v/ ~2 }$ z2 x0 L! H) O. j$ t
- (SETQ I (+ I 1))" K7 E* }! }' h/ ]
- )) z: s* v0 f$ a1 y# O
- (COMMAND "LAYER" "OFF" LAY "")
* E# U! f3 G* X! W! W - (IF (= MODE 1) (COMMAND "") )! }) ]0 I. m( d# o* t+ A
- )
; X g2 e* [2 Z& e. [6 A, |5 y - )
( O7 W) e) j$ v& h- l& U6 j; L( _/ h - (PRINC)
- M; l7 b; r0 j5 L& J - )& s. K- w! \' ^' r
- ' F' `# |& {! s6 r) `2 S
- ;;; ================================ Layer ON ==============================
2 K$ R5 A1 h1 o' `/ B5 E
0 s; d0 @( R/ y; n- (Defun LAYON () (setvar "cmdecho" 0)- R3 l* i% \0 e. a* _' z6 k
- (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")
$ [8 I. d. L i7 K# O" Q# S - (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))1 L6 o8 B8 K! D' @. i
- (defun c:LAYON () (layon)) (defun c:LOO () (layon))! G0 c5 g+ [0 \* l+ I/ E( J
- (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))) F$ I, I! x. W1 Q4 Z9 ~. @
R! X2 A1 `/ @5 I! U6 P- ;;; ============================== Layer Freeze =========================== W% P- n* a* b
- x2 m: [ J, F) ~5 W+ [( E7 k- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0)
1 b. e* c% |0 q- S - (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))
$ }- s4 f8 C+ ]4 _: V/ x' {+ S - (IF (/= NIL SSET) (PROGN
7 v7 j( T' K4 M& O& w, Z - (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0)
6 d1 x0 W e7 y0 X# Z# Z7 x - (WHILE (< I SSL)# X: I' S2 r1 Y! O9 o+ L) Y
- (SETQ ENT (ENTGET (SSNAME SSET I)))4 `0 r+ [/ U& x' x M6 x9 `
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) ), y7 K# d* d' @
- (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))" s0 c% M" A5 k. Z& w
- (COMMAND "LAYER" "FREEZE" LAY "")" U7 H! n3 z" p, ~8 {- n) g
- (IF (= MODE 1) (COMMAND ""))))" m5 v2 `& @: S0 a' _5 R) k8 I! c
- (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)
: J9 ]8 n3 K2 p# U - (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )
1 {& V& }8 t( t' c. l. G1 |2 R0 C - (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz))( L( h6 }/ ?& V1 w
4 T, B1 S$ @, C. Y/ f! V* k- ;;; ============================== Layer Thaw ===============================
, q4 P6 I- ?; c5 k8 ]2 ]
: S/ v% I0 t% H' M- (Defun LAYTHW ()
4 j" G) r% b3 O6 }! \ - (setvar "cmdecho" 0): V7 Y- @' K% e0 r- ~' Z
- (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")
5 i. s6 Q" \; J6 V - (Command "_.LAYER" "_THAW" LAY "")
& Q0 O. ~) I/ | o, o - (princ (strcat "\n Layer : " LAY " da THAW."))
: a/ ^+ ]' N2 E4 I; j/ X* Q - (princ) )
5 T6 W$ z+ r$ c) K1 o8 k - (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))
0 I) a3 f: N+ U( K2 p
% n, r2 B$ K d, f4 }- ;;; ============================== Layer Lock ==============================/ j ~' p0 U# J5 ?5 E/ R
( | F* h0 E/ u; I( t f" {- (Defun LAYLCK (/ LAY)
0 k; A4 ^, {& l5 V) A - (setvar "cmdecho" 0)
! t4 |5 S' {- v4 `& ^ - (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))) z8 M. O5 r' t
- (if LAY
+ G3 i6 ^- o6 @0 Q' H2 C - (progn
6 l# i- l5 B' f6 L4 D# V - (setq LAY (cdr (assoc 8 (entget (car LAY)))))
+ {, W( H6 ?6 z" b% _1 n - (Command "_.LAYER" "_LOCK" LAY "")% Z4 J0 F8 D; D
- (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )! `$ e4 E M) Z' q; l
- (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))
) s+ D" k8 G: o - 6 Q: F1 z% f6 e/ _" c- M5 I2 d
- ;;; ============================== Layer UnLock ==============================
8 x# H% w. D. R3 J# o - & J! B" @* r% ~; D. K3 |# p* T4 k
- (Defun LAYULK (/ LAY)
% I; \% Q l7 } - (setvar "cmdecho" 0)
3 T9 c4 t9 r! L- W8 D" B% h - (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))" r0 d8 t; W9 f- l5 e. c6 G
- (if LAY' w! H' y' ]; F- V" u! x+ i
- (progn: f6 `1 z, W& a( j. v4 F
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))9 G4 \9 @: c, m/ T: e' S' Z
- (Command "_.LAYER" "_UNLOCK" LAY "")
6 H m: F% T' s! Q6 z - (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) ), p- m- b S/ |* d7 _) _2 e2 Q1 w
- (defun c:LAYULK () (layulk)) (defun c:LU () (layulk))+ U7 p( O' A9 g2 o2 M
& N' `( r$ g9 p$ w6 B! F& x5 E- ;;;===================== Delete all objects of Layer ========================
7 P& G% T) B9 \, p. Q: K7 s; M0 V - + y. @% O. O! T
- (defun DELAYER (/ ocmd L S) % s% v& J( B/ c0 b! ]$ O
- (setq ocmd (getvar "CMDECHO"))1 E; L! p4 G. K6 }
- (setvar "CMDECHO" 0)
5 \: `& a4 B6 k - (setq L (strcase (getstring "\nLayer(s) to delete: ")))
, t- B% _7 M& f+ }# R; P - (setq S (ssget "X" (list (cons 8 L))))
9 M8 E: n' Z! q3 W - (if S
* v* x3 ~' R) J! Y5 c! t - (command "ERASE" S "")
5 M; Q' \7 z9 f! O - (princ "Layer empty or not a valid layer name.") )
- w; s. N0 I D' x3 t9 j - (setq S nil)
; n& J# C+ Y- U - (setvar "CMDECHO" ocmd) 8 L5 q. Y/ v2 A5 A, f" U1 [7 l3 d
- (princ) )
# @! P* I/ g& l1 m1 x( C - (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))
& m# h, j; S) `" y7 W - 3 z C# _) ^8 `) f8 T& M' O; x6 M
- ;;; ========================= HET CAC LENH LAYER ===========================! x# j6 Q* q+ x' v: @, O
- 0 h% h3 J8 `) G4 f8 }
- ;;;====================== EXTEND NHIEU DOI TUONG ===========================
! W% a F `1 [9 n6 J5 o4 @
8 W- ^. V6 Z8 z- (Defun C:EET ()
8 R+ R; z1 P5 X9 H - (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)
9 ~8 i: K U. h" a; j! O5 J4 i8 R - (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))2 u) @8 }+ M# e' U+ F4 z, e
- (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS)), Q3 `9 J2 J, Q J' {
- (Setq I -1)2 t! n K' i& u) U: |* ^0 K$ n; K, i
- (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG "")* J N' U$ W) H5 @: N, z; C5 c+ }3 K
- (Repeat LEN, b$ K2 ]+ z. [( G8 |
- (Setq I (1+ I))0 v. m* v# M) @, E
- (Command (List(SSname SS I) SIDE)) ) (Command ""), l* ^1 K7 h1 T6 q; p! ]9 ?( F( w
- (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )
" V" }+ O" L" r8 @0 R- [
$ R7 e+ E$ I* G8 B* `- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============' w6 P* T2 A x& e. @6 ]
- 3 t9 r7 u0 \% b8 j# Q1 h
- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)
+ D2 G& v! ?/ I' ~ - (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND "))
5 y' y* ^& Q3 r6 v - (setvar "osmode" os)( V; {7 |3 t2 B
- (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))" B& W. i9 |; r( J) m& J0 K6 q7 C
- (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))
1 y& p8 a) g8 _8 m- _; p2 s
' P* z: x( r3 X, U8 o* x- ;; ================ Change width of polylines =========================6 I2 w) g% {9 D C
- 8 L( V e( U" H
- (DEFUN wp (/ a b sophantu sodem list1 ha:wid)
) I& f2 c! ~4 m8 }+ D0 ~" L - (PRINC "\n Chon doi tuong can thay doi do day (Width) !")
5 z* c% P) L \$ b4 P+ T - (setq b (ssget)) % C* M/ X) }- h/ v1 j0 h
- (setq sophantu (sslength b)) 5 t7 M9 h/ U6 A% A% y# y% n; w
- (if (null ha:wid) (setq ha:wid (getvar "tracewid")))4 @5 O0 N% b0 V& ]% y
- (princ "\nDo rong polyline <")
$ s" o0 R( j, a - (princ ha:wid)' D( p4 g, x, O. h I- |+ d ?- B7 p
- (princ ">: ")9 b% v A! Z1 D% f
- (initget 4)5 M' m! h% J# y9 e! a
- (setq ha:wid (getdist))+ q- s. W/ Z5 b, p7 ~1 E
- (if (null ha:wid) (setq ha:wid (getvar "tracewid")))5 W/ J: h, T7 [- b, x$ O9 Z3 A4 `! a
- (setvar "tracewid" ha:wid)( c4 E( b4 U! I; U7 Q
- (setvar "cmdecho" 0)
. v" T7 o4 H$ h3 t - (setq sodem 0)
$ w2 \0 ?. P, j8 e - (repeat sophantu+ x o: E7 n& b* W- V1 V8 f; M+ ~9 R, ?
- (setq a (ssname b sodem))- R( G4 c- F0 |/ e' ]
- (setq list1 (assoc 0 (entget a)))
: J9 N- i" o" {$ h( @9 g( R$ ^ - (cond- [8 Q5 }" n/ G1 [: {
- ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))% C% q; Z s2 n7 W7 X/ U
- (PROGN (command "_Pedit" a "" "w" ha:wid "")) ) . \8 R. G" r/ O. z! D% I* [
- (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))* ~/ k( G6 l" [2 u
- (defun c:wp () (wp)) (defun c:pw () (wp))6 s' F6 v. ~- W7 y9 D
- # I8 u4 Y# Q, X2 G d6 Y. m
- ;; ================ Change radius of circles ==========================4 J9 F! e8 k2 \# B3 i q R
- % {, {& t( v- [. i1 i) [# F3 Y6 t6 `
- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))
& [& \! x1 t5 g" _3 d - (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : "))
2 e0 o0 D* x0 A6 U - (IF (/= RD NIL) (PROGN (SETQ I 0)6 I! Q4 u3 D. U& r# t
- (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )% T% a3 C t( @ v# }
- (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN
$ m' w; C: ^7 c; C& h5 c3 a - (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )
0 N* I$ q4 ^; G9 E, C! r! Y6 g( | - - }2 O- k( O5 C, j7 U
- ;;; ============================== TEXT Hight ===============================7 ^5 y" q4 d. L
- 1 V1 J, z9 D( G B- F8 q
- (defun texthght (/ ent hght)
% s% D7 U4 i: [ - (setvar "cmdecho" 1). h1 Q) g0 X, p) A7 } t/ w) X* Q
- (prompt (strcat"\nSelect text entity with required text height")) p+ {: W/ _4 P; H6 E
- (prompt (strcat"\n."))
1 W/ M) n7 B- q: { - (setq ent (entget (car (entsel))))2 U/ I, x( C% U" t& T5 k9 \
- (setq hght (cdr (assoc 40 ent)))8 @, S7 R& F4 c* N
- (prompt (strcat"\nText height now set at "))(prin1 hght)
, \; W2 C* J- A) l( K - (prompt (strcat"\n.")) & `% P) D! |( o8 {* l, E" g7 i y
- (setvar "cmdecho" 1)$ g. M+ R4 y* Y
- (command "DTEXT" PAUSE hght "") )
1 w% Y, F7 _/ i' Z5 B2 { J - (defun c:teh () (texthght)) (defun c:texthght () (texthght))
" J! t* e+ Z: N( y" h; G! X8 J - / Q) r8 r& N, x
- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================1 l. a) `! J* ^8 T7 L& p) @6 d
- 8 z" W |' x `: r+ X3 c
- (defun c:tuu () (setvar "cmdecho" 0)8 L! C- I$ `: V. \7 Q* Q9 u
- (prompt "\nHay chon dong TEXT can gach chan ")
$ }; P) w/ G5 x+ r' E u4 g - (prompt "\nSelect objects: ")9 J+ s5 U3 J- T, [( N
- (command "select" "au" pause)
9 H7 E5 g: F1 R - (setq sstxt (ssget "p")
% _/ P. {& y' A, ?! ]( h" X - sslen (sslength sstxt)
( [8 X! ]$ A; A J/ @6 R - ctr 0 )
4 o# x ~. |; _7 \8 i! L" j2 L - (command ".undo" "mark")7 c2 [; G, l* v" L" M: r# o) N
- (while (< ctr sslen)
) x/ A4 c2 g# H; h& n - (setq listxt (entget (ssname sstxt ctr))
/ G! R) f; s" y - txttxt (cdr (assoc 1 listxt))
* I5 x/ K" j; f5 t8 k - enttxt (cdr (assoc 0 listxt)) )
9 ?0 i$ N" i* a' W# f. H - (if (= enttxt "TEXT")
9 _+ Q9 z( K; \0 x. m - (progn
0 ]7 X2 Z, O, z7 m1 b1 d+ u - (setq testxt (substr txttxt 1 3))
% ?; r0 K6 k7 i7 m5 Y8 k - (if (or (= testxt "%%u") (= testxt "%%U"))+ F' t0 [ v% w- l
- (setq newtxt (substr txttxt 4))
- |2 M! j3 |( @ T5 C+ k3 L. H' M9 | - (setq newtxt (strcat "%%u" txttxt)) )
' @- E; t. ]# J; k - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
& Y: m8 z, ?+ D7 z' h3 y- d! K1 v - (entmod listxt) ) )5 n2 _. p% b/ A m7 N/ w* G
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
* z; T# M3 T5 O g/ G, E( |$ @
, ^4 u4 [; v" p% d3 A: [- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================* V, e* u9 t5 c9 T( I! A
j3 V ?& R$ u$ B! Z3 o. Q- (defun c:tob () (setvar "cmdecho" 0), p5 t+ G5 ^" D5 Y ~
- (prompt "\nHay chon dong TEXT can gach tren dau ")
3 N9 H9 P+ P: J& p; c! [1 c9 R. _ - (prompt "\nSelect objects: ")
" l) ]# g0 ]4 k. K$ b; ?# r/ V - (command "select" "au" pause)) s1 B/ `0 ]. s. B e. g
- (setq sstxt (ssget "p")
2 {* O$ T9 ~) @- ]# D. H1 X - sslen (sslength sstxt)
. }* p: M; e+ C4 t9 { - ctr 0 )& U7 v& d) \) Q& P
- (command ".undo" "mark")
% S- T+ M" p( ~( [, P' ~5 k5 V - (while (< ctr sslen)& p" S( J, C, q9 B5 C( e/ U1 ?
- (setq listxt (entget (ssname sstxt ctr))
& y! z- F9 F6 P, n `% Q6 @) ?2 Y - txttxt (cdr (assoc 1 listxt)). C/ c7 F/ v& I" G8 Y
- enttxt (cdr (assoc 0 listxt)) )8 t* H0 h8 u" v6 k4 C
- (if (= enttxt "TEXT")
1 f. D9 A: r. J% N# {# M - (progn
! B. [0 Y; y8 j+ z' B0 i. ? \/ ?/ b p - (setq testxt (substr txttxt 1 3))
" }5 p( D* z+ I9 l9 U/ T; a* d' K - (if (or (= testxt "%%o") (= testxt "%%o"))
5 M, T! O9 ]+ U2 h4 f, \& L! b - (setq newtxt (substr txttxt 4))
' {* W E& ]. n( g. Y2 @( _ - (setq newtxt (strcat "%%o" txttxt)) )/ b" j4 k6 x; i
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
: W3 g9 c1 B: O k - (entmod listxt) ) )1 j5 z9 g2 J8 Q* |- p0 V, W
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))- r9 j2 c" j, K! `, b& X& \
; \0 Z6 v8 B( d- ;;; ========================== Tim & thay the TEXT ==========================
9 @( \ h8 o$ a* _ - , m: o: g: Z& c$ T
- (defun frstring (str search replace / str1 str2 index find)4 f8 B' B5 ?( D4 y- A
- (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))$ ?5 x' Y( p9 o0 f& w# e
- (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))" j! O# g3 e$ x: ^" ^
- (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))
: [* o2 d: m) S6 D8 B - (defun hai (/ dial)
. x, Q& p. t l* r( `" w; h - (setq dial (load_dialog "hai.dcl")) ;;goi dialog
( h& _# W& G+ b7 ~- {3 e+ f% U9 M! Q - (if (not (new_dialog "find" Dial)) (exit)) ;;% z- j3 {6 _+ M$ V/ L2 _$ R
- (mode_tile "find" 2); Tao dau nhac tai hop thoai8 M( ?) N) Y1 i( N; a( w
- (action_tile "find" "(hai1)")8 o3 \9 W) S, |
- (action_tile "replace" "(hai2)")
( J7 u( y, `! [ - (action_tile "cancel" "(done_dialog) (exit)"). u" Q; {. R5 B: J; U
- (start_dialog) 0 _- `5 T7 ]! a0 m* d$ K9 I
- (unload_dialog dial))5 E8 u/ C# e6 x/ ?* J" X6 ^
- (defun hai1 () (SETQ str1 (get_tile "find"))); [/ s" P( [2 H
- (defun hai2 () (SETQ str2 (get_tile "replace")))% C( b/ I; \5 j
: @1 d5 w8 Z5 }# W* D- (defun c:TTT (/ a str str1 str2 newstr taphop sodem)
9 Z$ |9 |' M: r- R) b - (hai)
0 s& ^2 {' h/ `; n+ r, w - (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le") A! n7 [2 v+ i) p& }
- (progn, V8 g' |, B5 }2 P$ E& {* r( q
- (setq taphop (ssget '((0 . "TEXT"))))" s/ X& s3 g; h; c: [
- (setq sodem 0)0 l. [2 k! u* d. E, s+ h* s! Q
- (if taphop d& ?! l) Q6 M* y! W( V
- (progn
g( V8 q0 E: p8 U) M4 ~. a# V! u - (Repeat (sslength taphop)
* [! R2 R/ J' \- G# R4 y - (setq a (entget (ssname taphop sodem)))$ P, T" d& h! `+ f3 W
- (setq str (cdr (assoc 1 a)))
4 x0 `. p7 U; Y! S N1 n | K - (setq newstr (frstring str str1 str2))( ~0 E. B$ o+ w& ]
- (setq a (subst (cons 1 newstr) (assoc 1 a) a))" V- R- q+ P" P" U8 G+ N
- (entmod a)
1 u- ~: c2 t/ V0 m3 ^! ~ - (setq sodem (1+ sodem)) ) )* p5 X9 c- Y( _ s
- (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))
1 D- `( m. W; r/ ]# p; g
8 h z$ m- U" S+ C! \- ;;;============================= CHTEXSTY.LSP =============================# ~! s* K7 c' L' y
0 r/ K; b& T. o- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST ")
/ |# S1 G7 u* U8 Y& w" u - (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2))). o) B/ N; J* N0 U& L- r
- (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))
}0 G" ^' A( z( p, Q9 w @) c - (Initget 1) (Setq C (Getstring "\nEnter new text style: "))
7 ~; q0 g! Z% C; ~/ ` - (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))4 \* M* P4 [2 [: N2 x s
- (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C))2 | J4 z( G, T& `- p9 g( Q6 q8 C
- (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))
- {, ]! {! \! k) I2 ~4 R - (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))
# p% e% o( | D- l3 F - (Initget 1) (Setq A (Strcase (Getstring4 L0 R% {9 R9 h' f5 f3 W
- "\nEnter text style to change: "))) (Initget 1)
# H9 n, h! g9 H4 t - (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext))
/ h8 j8 E3 M" j) `3 i9 y/ O, d - (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If
+ @( o5 U6 S# q3 C - (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))% t1 T. e- R0 D% @+ ]
- (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))
; @( P- `9 _8 k0 }+ I0 V" q - (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J))
; Q0 J3 Q& \) t: w4 Q/ J - (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))
. j; f3 m8 c0 p: g6 {. h' F
8 a$ g& z# [ Q- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A))4 I0 ?8 X8 m" W' ^$ z
- (Setq J (Cdr (Assoc 50 A))))* G9 ]! ?; P4 Z
/ d3 w- K! d4 c- ;;; ============================ DRAW CLOUD =============================
( ?9 A/ _/ t I. ~
- f( }* _' u. ? E7 @- P- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)9 ]9 q4 v6 W8 X; [6 `. o3 m" I# z
- (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")- O) P; q' ?! ~; A3 W9 @/ Z
- (setq la (getvar "clayer"))8 T0 X0 i) w. L* \9 [
- (command "layer" "m" "cloud" "c" "5" "" "")
! w% A4 T3 X9 {7 A9 b. R8 v' S; L - (setq pt1 (getpoint "\nEnter first point of Cloud: "))
9 @6 C! H* o' V3 w0 G - (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))
. j R0 Z- k5 O V2 B/ ]3 J - (setq cnt 1 ss (ssadd))- D; N f6 o: G( F
- (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))
8 [3 {3 ~" _. d- A" b - (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75))0 v( I2 t5 ~3 M5 G1 O C
- (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))
' d* O. E1 y% M/ B& C8 u - (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0), T/ _- d# f/ l/ a! |0 Z
- (command "pedit" arc1 "y" "j" ss "" "x")
* `* H6 W5 A3 g9 V" f/ R/ t( Z - (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)
' U0 ?- d, J/ V1 i8 x - (command "layer" "s" la "") (setvar "cmdecho" 1) (princ))
" g) B' l. J, _ - (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD)): g% {! S; l, p
/ W! ?/ D& `8 P$ j/ t) E+ W- ;;; ================================ Funtion-Dulieu ========================% A" J% G8 R6 L- i; ] p
- ;;; ================================ Funtion-Dulieu ========================
- R! R+ E1 \( w" Y% W6 S9 F4 y - ;;; ================================ Funtion-Dulieu ========================5 z" y% v( u! y2 q
- + @$ t7 L6 {& H- O, R: A8 s
- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) ). w. Q* D1 b7 D3 G
- (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh"))- U. u4 _& z1 a
- (defun khoangcach (kh khq11 khq12 / h0 h1) (setq h1 (polar kh (angle '(0 0) (vectophap khq11 khq12)) 500)) (setq h0 (inters khq11 khq12 kh h1 nil)) (distance kh h0))
1 S. H6 r7 h# r - (defun hacat (hacat1 hacat2 / hacat3 chon) (if (and (/= hacat1 nil) (/= hacat2 nil)) (progn (setq hacat3 (polar hacat1 (angle hacat1 hacat2) (/ (distance hacat1 hacat2) 2))) (setq chon (ssget hacat3)) (command "break" chon hacat1 hacat2) ) ) (princ) )" _! w# v5 U0 E$ B9 R. _, o( }
- (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))
: Y: f9 U6 E' u2 I6 g; D - (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))# ^0 G$ M5 _! h6 R
- (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))- I- K1 Q3 ]3 t, u" z* g7 ~! O
- (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))
0 C* r. Y$ D7 w$ a( b. [; w - (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong))))
3 \/ K0 d+ G4 n7 _3 @ - (defun ha:giaodiem (dc1 p1 p2 / hc hc1 diem1) (setq diem1 (vectophap p1 p2)) (setq hc1 (polar dc1 (angle '(0.0 0.0) diem1) 100)) (setq hc (inters p1 p2 dc1 hc1 nil)))
! z6 V6 x- C8 M7 X4 O - (defun dtr (dtr) (* pi (/ dtr 180.0)))
- h1 v# B% v+ }( h - (defun rtd (rtd) (* 180.0 (/ rtd pi)))- _8 g8 g v9 L! T* U8 \
- / u5 a" f4 H% B
- ;;;==============================PROGRAME===============================
l" U3 k- q* i/ h - ;;;=====================EditDiM Hien Hop Thoai Dep======================+ a+ y6 z8 ]9 J
- ;;;==============================PROGRAME===============================
) D8 S% A a4 t. @- |& a+ g
( K2 h+ T; P1 j4 d3 B( g- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh): ~& i! T2 q2 f! ]" C9 y
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
$ J( U) H7 t5 c+ I$ n - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)' c+ n- }! Q7 o( E" O6 g* {
- (Setq Oldlis (Entget (Car Chon))
* u& [+ j* O8 L5 b - Pt10 (Cdr (Assoc 10 Oldlis))
# B* c* a1 \5 A* G( C; Z - Pt13 (Cdr (Assoc 13 Oldlis)): F* ]8 r- {* {- e+ I& w- U
- Pt14 (Cdr (Assoc 14 Oldlis))5 @& I2 l" V& W+ v
- St (Cdr (Assoc 70 Oldlis))) V+ U* f3 W" W4 C& p
- Dimdefault (Cdr (Assoc 1 Oldlis))! H" P, U0 @/ `" B
- )
( F [- M" S4 P" T - (Cond1 h# N+ z2 L/ n G' F" `
- ((Or (= 32 St)(= 0 St)(= 160 St)): C4 W0 P& p4 I- P" ?5 z
- (Progn, D- m- L- y2 B" i% R) }" q; B
- (Setq Ang (Cdr (Assoc 50 Oldlis)), K2 x+ Y6 B' x
- Pt (Polar Pt13 Ang 500)
& ]0 X4 C' F6 t: B/ ]+ V9 h - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
; I% T$ \0 v$ f; e7 f - Dis (Rtos (Distance Pt13 Hc))
! s8 x) L) u, w- m" S \( i0 ` - )
6 V0 X+ V5 j, C/ L1 G - )
3 i# b5 ]( P! ]& g& p - )" C' b# x4 L D1 c% B1 C
- ((Or (= 33 St)(= 1 St))# P0 a6 P/ \- X- W2 {
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))1 ]* f( z0 q9 {! u. z/ G
- );;End Cond) v! ~6 o, ?! ^0 J: E% ?1 E, B
- (If (= Dimdefault "") (Setq Dimdefault "<>"))4 C6 O) U3 W; C% @# g) i7 P$ Q) ]
- (Setq Dial (Load_Dialog "Hai.Dcl"))
$ T1 ]& c3 ~/ |& h+ Z+ N5 | - (If (Not (New_Dialog "eddim" Dial)) (Exit))9 H3 u& T4 B/ B0 o" g
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
8 L3 h( y! ]) i8 U - (Set_Tile "text" Dis))8 d- I. ]% H# }$ Q/ y1 [
- (Set_Tile "ha:edim" Dimdefault) A. N" w% j' ^- [
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai3 a! |& o) t( j8 r7 W8 {0 h) {! ^
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")' J. T/ T Z& k0 G8 s# W
- (Setq State (Start_Dialog))(Unload_Dialog Dial)$ Z" X0 `% {5 k, A9 V+ b
- (If (And Str (= 3 State))
7 c8 i% @6 @8 [% _+ b - (Progn
+ G) x1 ~* L2 k+ W; [% k* I' e" K - (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
( c- ]+ r' e$ _" | U% x& l3 | - )
, J- G8 f5 H! ~$ k$ [ - (Defun C:EH (/ Chon Name )- I+ u5 r* R( P+ ]7 V5 t6 z# H
- (Defun *Error* (Msg)- h4 Q5 s5 [: r$ `$ q& z
- (Princ "\nerror: ")(Princ Msg)(Princ " ")
+ t$ g9 q- H" d( m5 n - (Start_Dialog)(Unload_Dialog Dial): Z2 V8 z8 A6 s5 _$ m
- (Setq *Error* Olderr)(Princ)
1 B! v, e& I1 |% e$ C9 s/ V( k+ b - )
$ C( i& C& v9 I3 w: | _ - (Setq Olderr *Error*)
3 g1 Y1 X0 I" q - (Setq Chon T)
$ I6 P `3 _. x1 g. S - (While Chon
$ f) F% D: _. g2 |/ t* G - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
3 Y X% Y* K) [4 r. w% D - (If Chon
: v8 k$ P$ c. g3 ]8 s - (Progn4 B# b! h; A# ]: V- ~
- (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))7 O9 \* l9 t7 Z i- i W
- (Cond- Y9 [( e7 E2 S; r* l/ W- {9 [
- ((= Name "INSERT")(Command "Ddatte" Chon))4 x: E# G( |& U( p6 T e
- ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))8 K6 u: l9 j6 B# F
- ((= Name "DIMENSION") (Hai_Edim Chon))
4 `( d+ i+ S7 B0 q/ E# G7 X4 d' s V - )
8 q9 ~& U+ n5 N: P: ~) C - );End Cond' _; h% M# O3 [! v( V
- );End Progn/ h6 N9 [# T/ a0 Z
- );End While
C7 C* h; g7 U0 `6 h - (Setq Olderr *Error*)(Princ)/ G U% O0 b8 ~3 g8 d( H
- );End Program+ u4 U. W& N% D) u" R, d
! Y9 T5 v# |: z5 h- ;;;====================DDeditDim=====================8 k4 J" S0 ]+ k+ t# U) H8 U1 Q
- ;;;=====================Hai.DCL======================6 J! [' D) \- |; y$ A @
- ;;;====================DDeditDim=====================
' B2 ?* }: T+ L8 F/ T" P5 w - 1 T f- m6 y x6 J" Y( C
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
. r$ c- h3 ^4 t" c; _) B9 I/ u - ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
* D0 X& i6 k8 N. D4 `. t - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)
. W$ d: u8 @- B) i - (Setq Oldlis (Entget (Car Chon)): ~0 m0 m3 o5 g1 L9 B" l x
- Pt10 (Cdr (Assoc 10 Oldlis))
Y% S' z( p' u4 E0 [ - Pt13 (Cdr (Assoc 13 Oldlis))- ?( v% f8 w+ y) ]
- Pt14 (Cdr (Assoc 14 Oldlis))
$ t+ I' p. C& q# u! d1 c; E - St (Cdr (Assoc 70 Oldlis))7 m' I% n8 U+ P; F4 e+ G
- Dimdefault (Cdr (Assoc 1 Oldlis)), [( x6 U: Z& ?. D0 _9 X
- )
F% e) _/ H) Y# `- ` - (Cond
8 \# T" O: l, t1 N - ((Or (= 32 St)(= 0 St)(= 160 St))
) Z) u+ `( F; ?- y7 |! ?8 B/ X - (Progn! ]4 G! O( F: \# \$ c0 ?+ {
- (Setq Ang (Cdr (Assoc 50 Oldlis))- `, u% g/ ?; a
- Pt (Polar Pt13 Ang 500)% [9 H0 P* U6 K3 K6 g. k
- Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)6 a: W$ f$ p" ^% T1 V
- Dis (Rtos (Distance Pt13 Hc))
9 g, \ m |4 Z8 l - )
$ r s2 C6 e+ I4 b. `( F - )) J i6 T6 g& b8 z M
- )
' Z% ~( m9 |" [0 ? - ((Or (= 33 St)(= 1 St))+ E5 K" M1 P6 c& w& C7 X# U/ R% E
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
) [4 @# t0 k6 {7 a$ d, n - );;End Cond- q$ Z z% t2 ? Y5 X
- (If (= Dimdefault "") (Setq Dimdefault "<>"))
' x: Z" c' ]* p; c0 p2 H3 x% @3 { - (Setq Dial (Load_Dialog "Hai.Dcl")): s; E2 @6 Z- v* E: }# K6 H- r! ~
- (If (Not (New_Dialog "eddim" Dial)) (Exit))/ }1 `& F( f" a3 ^
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))$ E/ F1 i3 [6 Z
- (Set_Tile "text" Dis))9 Y. q' `5 ~2 z8 P5 b
- (Set_Tile "ha:edim" Dimdefault)9 Y/ ^6 z* M: p* N9 v0 `* P# H' \
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
* M$ x- X- `9 ^ | - (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")+ C; Q3 z( U- |* e: u$ |: z" g
- (Setq State (Start_Dialog))(Unload_Dialog Dial)
3 d5 m/ u2 a1 G* s - (If (And Str (= 3 State))! ~" j" t$ M q$ n. ]9 E/ @9 {
- (Progn
" k {1 D' f* Q5 E8 i6 A! Y - (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
5 q7 A' F" ^' u/ d" x! f - )8 s: Q+ B, w' W( ~9 Z* i
- (Defun C:EH (/ Chon Name )
1 W3 Z* \5 p. X; H
( U' p" C' O: h- ;;;********************Du Lieu********************% g! P- K1 H, r" g
* r& J* k+ |7 T) C3 P9 q& s- A- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))3 M( p: P& [9 G8 D
- (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon). A% b2 [2 b: ~
- (If (And (/= Hacat1 Nil) (/= Hacat2 Nil))
1 U) x4 b2 M$ w: Y) d - (Progn% f$ _/ m+ n" [, S9 f0 C
- (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))
( \0 ~) K6 J6 R0 L: h8 ` - (Setq Chon (Ssget Hacat3))
% Q. D3 {1 s& @3 A) @! o m( k - (Command "Break" Chon Hacat1 Hacat2)1 g- |* w9 h7 L( O o( F2 ~$ Y
- )
5 ^4 _# X6 Y: R! v/ ]1 c% D - )
/ `5 @2 G8 n1 M8 B - (Princ)4 {: l8 V. B2 n; C$ Y* e
- )
8 L9 x) V" C, }4 v1 H3 j, J - ;;
: g: X' _) E0 A. o$ V0 f6 T% i - (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))
% a! i9 }& i, y - ;;8 V% g8 C' _! U5 ^1 n4 w, A$ p0 b4 F
- (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop)). _9 L! E1 { Q2 @1 K/ Z9 ^/ l# h
- ;;
/ |$ H/ o3 P) |0 t0 x3 R; O, B - (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))
3 O8 o- K7 L6 Y. q - ;;7 L4 Q! z+ ?0 R$ P) ~, }
- (Defun Reinit ()(Setvar "Cmdecho" 1))$ `) V7 @- |" J
- ;;& B# j1 a' H6 {8 H) c/ V
- (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2))), U( E9 N5 J- S D/ x) G
- ;;
$ f! Q1 u3 w/ y, B9 P1 P - ;;Cho 2 Diem Tinh Ra Vec To Phap; q' b8 }# B/ L) Z$ ~2 Z3 T
- (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))
$ ?# J8 Q: q0 p& q - ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang/ V- A! e$ ^! y7 A) U. l- f3 I
- ;;Da Biet 2 Diem Thuoc Duong Thang
4 T+ S9 m( l/ c/ z+ A/ R - (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2)
c3 W4 Y& ~: g6 G8 | - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)/ T* z- [( c0 i$ F4 W
- Hc (Inters P1 P2 Dc1 Dc2 Nil)))
5 F0 I: o! A# |6 g5 }2 N - ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang
. |# ~& t( ?( \ - ;;Da Biet 2 Diem Thuoc Duong Thang. Y+ x$ B# P- e% R6 x- i
- (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)
" F) ]2 `. G* s7 ~) ?9 ?+ c8 V - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
% H7 ]; C( W3 |9 w1 s - Hc (Inters P1 P2 Dc1 Dc2 Nil)); b* R5 F0 i2 l9 \4 Z+ R0 F
- (Distance Dc1 Hc)1 L: n; V* l9 G0 s# I
- )
8 T+ m5 O' O d% u: X7 p. |, _ - (load "nhapcua.lsp")
8 B0 ?: T# I- ^9 S9 q: o9 K. a - (Defun *Error* (Msg)' {: E; k8 ]+ t _1 q: d% P, _7 ^, ]
- (Princ "\nerror: ")(Princ Msg)(Princ " "). u/ d `. U3 N" P
- (Start_Dialog)(Unload_Dialog Dial): ~# C% t! _8 h- k
- (Setq *Error* Olderr)(Princ)
8 x3 N6 M) Y6 o5 a) D, q) L ~; E& i8 Y - )1 w2 g2 s/ i* e1 c1 t) ^4 x' D; \7 t
- (Setq Olderr *Error*)0 \. h6 {% m+ `3 s! C
- (Setq Chon T)2 B, {) z) I+ d
- (While Chon0 [5 n3 [3 l: R2 e3 T
- (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))2 o% o7 [5 X2 k3 Q2 C# g
- (If Chon
" l3 I6 b+ m5 ~" G" R( P2 o - (Progn
$ u' H0 X. [1 Y5 n" y7 w/ n" T - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))8 |5 S# F2 q( q
- (Cond, ?5 G+ y+ @) O8 t I& S& N+ @
- ((= Name "INSERT")(Command "Ddatte" Chon)); J+ v: @/ t6 v0 s( x0 ?9 f; U1 X
- ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
! G- U/ P4 N" ~) M* h - ((= Name "DIMENSION") (Hai_Edim Chon))
) D9 W3 e" ?1 R9 o& a1 i+ O) O - )
( ?2 r1 S7 o" b8 u - );End Cond; j0 N8 e/ F) I- d) M# T# Z1 I7 [
- );End Progn
4 a$ S4 f8 M' i u/ N - );End While) ]' a' G2 P c/ S- x% Q$ u6 P0 P
- (Setq Olderr *Error*)(Princ)& B! B9 u3 }, z* \4 V
- );End Program$ V/ m5 F9 m! f' X+ X: R
1 X) P2 S. O* e- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
- |8 G! [( O4 E3 U9 s2 \ - ;====================================Nhapcua.LSP====================================
5 |; Y, ]; C( n) E7 z4 y- }3 E+ p - ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================7 G& d; t9 C" Q: E
/ W5 {6 f3 s( ?' ^- ' z, f$ d$ i6 j: A+ O/ @
# n6 H1 h: v7 J) y/ b- ;*******************;*******************;*******************;*******************0 L# ~8 C: f, v9 R" _
- ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****
- g" D% |$ P; I8 ? a6 n/ b6 M - ;*******************;*******************;*******************;*******************
9 k2 t5 m; d F( B
* V: S2 U* ]; M1 _( e3 e$ t- ;VE HINH BINH HANH
" A) u4 n& ~8 H; l
& K8 t D, J; @- X( o; c- (defun c:binhhanh (/ p1 p2 p3)
; m1 D7 {# j+ d - (setq p1 (getpoint "\n Nhap diem thu nhat:"))
5 T* Q! J) _4 w7 @9 S# q) e: [5 b - (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))
% g7 [* K+ X/ ?1 B - (setq om (getvar "osmode"))
" J4 D% D7 `! i3 T6 u$ W - (setvar "osmode" 0)
& M& L$ ]2 O. W; w* i) x; i - (command "line" p1 p2 "")
* N! E; \1 h6 R3 u3 F( q, q5 R. V - (setvar "osmode" om)( I- w: F" s0 u" C- S% a
- (setq p3 (getpoint p2 "\n Nhap diem thu ba:"))
4 K/ b* N& L/ I' ~+ J. j" O" m q - (setq a (angle p2 p1))
+ F; c* c9 R& ` - (setq d (distance p1 p2))7 L6 g; s- i% t
- (setq p4 (polar p3 a d))
2 `8 O" o7 S, L; e - (command "OSNAP" "none")
8 v* q: M! A2 ^0 f - (command "erase" "l" "")
; i- c* O' Z Q9 I! d - (command "pline" p1 p2 p3 p4 p1 "")
5 ]3 L( e* s% _* r4 d - (setvar "osmode" om)4 Y8 {: V5 [+ x% I
- )
& h; W1 f& l% T) ]' w) b. {% k: j - 7 @. U- z, v' W9 S0 {
- ;VE LUOI COT/ J( @0 b( @; |4 h$ X- @
0 R- Y: w; p" K- (defun c:LuoiCot ()" w6 q% ^/ I) i
- (setq om (getvar "osmode"))
$ K, ?( h- _& v: D/ |7 _9 y9 x - (setvar "osmode" 0)& H( J* P7 N2 j& d
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
8 q* x- C* e4 O1 x2 }7 z1 g - (setq p0 (getpoint "\n Chon Basic Point:"))* g$ |) D" f+ }
- (setq nc (getreal "\n Nhap chieu ngang cua cot : "))7 J, k8 j3 g- J2 Z- n8 r5 `1 {% l# Y7 b
- (setq dc (getreal "\n Nhap chieu doc cua cot : ")). v4 Y) n( s# I, B' w; @
- (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )# h! z) ~8 G" g; J6 R2 X
- (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
2 ]% b: O, ]; t) `7 _9 h - (command "rectang" p1 p2)
6 R5 E. m7 p, d4 H! N% s+ X, @+ U0 R1 T - (command "hatch" "solid" "l" "")
" d6 L" l/ f$ `+ ~! N6 K6 x$ m - (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))
7 S/ Y5 I& s% `2 D9 e' U( W3 {2 ?1 n0 n# a - (setq nn (getint "\n So buoc cot phuong ngang : ")) v% A( k- r+ ~8 W- S* N* E( h
- (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )4 Y% J4 u9 a3 u$ s/ |
- (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
/ x1 f n2 W9 w' R$ Z3 J - (command "select" "w" w1 w2 ""): n2 W" ]& V- q& p$ L; [6 K
- (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )
8 X2 r+ s; y# h/ ^/ t, G; c - (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")
( Z/ N ]3 ?. c. c9 f% C - (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) )); Y" R$ i- x5 s Q$ I; B) }4 m
- (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))
9 r9 _4 {: Q) k* _' P) v - (command "zoom" "w" w1 w2)) w- I" s4 W, q. H4 {2 T
- (command "select" "w" w1 w2 "")' C4 I) K5 E) M. y+ ?
- (setq bcd (getreal "\n Buoc cot theo phuong doc : "))
- D, C7 [" X+ ]3 { - (setq nd (getint "\n So buoc cot phuong doc : "))
$ J' }. B* K1 n9 K) k5 S2 \ - (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )
6 S& B3 F! i7 G - (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")
* a# Y# I5 t7 r) C. c7 S4 E) Q; C9 v - (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )
% q' d2 X" \. M! w! p$ x5 l' C - (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) )
/ y, {9 R$ U. Z; B6 D) W+ F8 j - (command "zoom" "w" w1 w2)4 \7 E4 N( z* r! }# s) c
- (setvar "osmode" om)
; D& `. _2 z# c' l! b - ), a+ i/ W4 U0 g3 y3 Q
- % P/ Q7 G8 s+ r! f
- ;VE CUA DI
" X1 t0 f+ w# X, X9 | - 6 C4 t( d+ [# @, o. d
- (defun c:cuadi ()) R, q5 m( z! u; U) j9 G9 o1 }' f: e
- (setq om (getvar "osmode"))# N5 v! w, x- g, Q/ c
- (setvar "osmode" 0)
! D8 F. ]6 O5 M4 ]& A2 t
' G( I& V. Z0 O, i9 [- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
/ t8 r9 \7 J" B. H1 U, [& H - (setq b (getreal "\n Nhap be rong cua : "))! j2 A! v) n# W+ C$ U$ \ `
- (setvar "osmode" om)
. t. _( j3 |0 ^+ v/ r" w1 F - (while (< 0 1)
' t3 U8 z8 R# z9 Z! D+ o - (progn, i! w8 H8 R+ |
- (setq p0 (getpoint "\n Chon Basic Point:"))
7 M6 k# ]8 {& f5 Y - (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:"))1 w$ f8 i# |: q |1 `9 v
- (command "osnap" "none")3 K+ }+ E i/ p4 f2 t
- (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))
; v5 ~6 ]/ B2 L, Y* ?+ q - (setq a1 (angle p0 p1)), h5 t) \) L" X+ ~+ m$ [/ z. T
- (setq p1 (polar p0 a1 (/ (* hstl b) tile)))$ X: |: Z" e9 u4 c! z
- (setq a2 (angle p0 p2))
) {- Y9 B( h) w! g - (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )
3 ^; S, J# _( H. { - (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")2 G! E2 [1 z4 Y$ c
- (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))
`! P3 i5 ^, M$ z! e4 @! a - (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi))
' T3 Y5 C ]" q7 l - (setvar "osmode" om)# ]8 {) w9 w6 ~/ i! v/ \- r. }" y r
- ))
5 M1 Z& A- `% [$ @1 f - )7 T/ e% I9 U* `6 Z/ _
' g2 @. r( j1 i' U- ;VE CUA SO/ r+ z. M& F" x- P& W
- 7 a! z Q) L- f
- (defun c:cuaso ()/ Y; O: Q3 ~4 @0 z j) A* V& ~' K
- (setq om (getvar "osmode"))
+ ~ ~+ q: M6 [ o6 ]+ B6 o) ~ - (setvar "osmode" 0)
% g0 a/ ]" M. W. \
0 a8 {" U* K! j& W, s- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x=")), }2 m$ |* H% O8 V: y
- (setvar "osmode" om)- o" t5 d, t5 r+ N# ^5 O/ j7 S5 ^
- (while (< 0 1)
( h6 B& Z4 Z- H0 a. ]3 g - (progn
4 C' _4 \# M" O6 J% P* N; {8 ]- g( l- b - (setq p0 (getpoint "\n Chon Basic Point:"))/ |8 ?3 _+ O q+ P3 V# {
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))$ j) c$ J) E, A0 x3 |$ y
- (command "osnap" "none")1 A$ P6 \* {: i( u
- (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))1 v3 ?9 q# v$ F! H- _2 D1 j8 n
- (setq b (distance p0 p1))
9 U- m( T: e6 j& l - (if (< b (/ (* hstl 600) tile)) (setq du 50))4 o: @1 n6 a4 v5 X# }
- (if (> b (/ (* hstl 600) tile)) (setq du 150))
7 W' C- Q* `& x* u - (if (> b (/ (* hstl 1800) tile)) (setq du 200))! i$ k. p& I. {! J& k" ]
- (setq a1 (angle p0 p1))) v1 f: X1 \7 e7 o
- (setq a2 (angle p0 p2))
5 l/ A+ q* h/ ]2 e# Q8 e( a2 o H - (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )" s3 {* t' I! I8 g
- (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )2 v* V9 m6 G' @1 L
- (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )
/ p: c, R: C. u - (command "pline" p0 "w" "0" "0" p1 "")) v' p* J; P1 Z- r1 Z
- (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")* o. F& ]7 B2 g5 `1 y2 W1 Z
- (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")" w% J' }! V6 ^" g- v
- (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile)))
) [ Q+ Q6 d2 [: W: T - (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")
$ J% U M0 U& _" B+ N% a* H - (setvar "osmode" om)
9 y9 [$ D6 g5 s! J8 r4 C+ v! w - ))
6 ^) O/ O& t Z - )3 G& G8 s/ V3 l1 Z# ]
) w- T" n4 r: f9 F8 x$ S: C5 ~- ;;;=== General Utility Functions ===
% r( ]$ C* ?. P* _
5 P: Z: k: v" ~; ]2 H" R& K- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined 6 o3 A8 _8 Z( u( G9 l* |! x. C# g6 H0 \
- ; ADS function. Now it's a simple AutoLISP function that calls the
, j5 g1 c7 H0 F) [' p - ; built-in function (help). It's only purpose is R12 compatibility. 0 Y6 @, X! S9 T7 I( v! l, v3 @
- ; If you are calling it for anything else, you should almost certainly
0 @, v' d4 Z; v4 ?; |% P - ; be calling (help) instead.
; ^$ }5 E* O# c5 l5 j1 B - 1 }4 ?0 w- {# y
- (defun acad_helpdlg (helpfile topic)
8 `) W2 z# q4 U9 P. G3 I - (help helpfile topic)
) \9 M+ L- X9 P, ~7 y' W - )
% Y' N, K; r% B; J" a# U1 K8 Q
?& J3 F* K0 l) l% t* g/ f- 3 U' m/ y) D3 {% {2 g6 i. d, S
- (defun *merr* (msg)
6 Q% C1 T* q5 \6 ` - (setq *error* m:err m:err nil) Q l F$ F" y3 M2 m& ~
- (princ): _$ T* Q# y; E/ {3 k
- )0 _% e J5 }) K. _" `8 O2 z
2 Q( o; t/ j' D8 }- (defun *merrmsg* (msg)
* L( @- M" r. g! P: b - (princ msg)
' u, k. ?8 c; ~8 }7 \ Q, F W' W. [ - (setq *error* m:err m:err nil)
$ y: {1 J/ @" v+ U - (princ)) E3 w" o# x; W4 ?8 J# j
- )! ]7 S: ~: O5 w5 [( y7 ]
- $ T0 G! y6 _2 a6 N6 q
- ;; Loads the indicated ARX app if it isn't already loaded" G% E- D# F9 S! R4 f
- ;; returns nil if no load was necessary, else returns the- T. x1 Q$ r! u S7 n
- ;; app name if a load occurred.
# \/ v" s4 q. A5 C4 G" p0 r9 \) x - (defun verify_arxapp_loaded (app)
0 p" w& B: \, H8 b/ I - (if (not (loadedp app (arx)))
8 B* f, \3 U& k0 X5 S - (arxload app f)
% c0 {0 K1 t- u - ): f2 [. d8 Y: {1 u
- )
! w% @2 F( `$ P$ ?: i3 h6 T% h - 6 i9 ~5 y: `& W5 A9 M% Y
- ;; determines if a given application is loaded...8 s7 t; O! M' y# u( o% a
- ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....7 k$ A1 ~+ e8 a/ B$ G( A' o
- ;;- O" o0 `) _7 \# u
- ;; app is the filename of the application to check (extension is required)
. U) z# S) H% z' U6 l3 L5 | - ;; appset is a list of applications, (such as (arx) or (ads)
8 z- D) C/ p" y) r/ K- z" d - ;; + H( `' X4 u6 O" ~ p. z
- ;; returns T or nil, depending on whether app is present in the appset; E1 K; a: H$ R
- ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"
/ N& ^: W: A* p% } - ;; Also, if appset contains members that contain paths, app will right-match
1 Y/ V4 x3 p, y2 p" @ - ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that
% ~8 J# [! x% D: B( L - ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."# H+ R! X; p. X. s: x Q# H- c( K
- (defun loadedp (app appset)
V) n" d, M: D/ }2 u- Y - (cond (appset (or 0 N( B& I7 Q8 x' U* U+ l
- ;; exactly equal? (ignoring case)! t! q6 Y8 v5 x6 k/ I
- (= (strcase (car appset))" d" T7 `5 x9 Y5 c
- (strcase app)) L2 `# V4 R. o
- ;; right-matching? (ignoring case, but assuming that
- h8 d/ U. D! S$ p - ;; it's a complete filename (with a backslash before it)
9 ?. k& b3 m& q. k. r$ R( a - (and 8 V) e0 T4 n" i G* m: e2 [: c7 O
- (> (strlen (car appset)) (strlen app))- k. v1 l: u: n
- (= (strcase (substr (car appset) l9 P; v' X4 q- u3 S' ?2 G$ `
- (- (strlen (car appset))
- o \; q: b" {) O - (strlen app) 9 P6 ]8 l; V: f1 Z i2 n
- )
+ V& A9 b/ t8 s4 x: V" T0 O - )
. P+ w6 P7 B Z - )
' h) C$ M [" S4 O# }5 W1 a7 O - (strcase (strcat "\\" app))
+ L7 Y H, v3 J. T a' ]# V Q- A% Y5 U - )
- V0 S+ n% I: c) i4 a7 q7 W6 q - )
: C4 ?7 X1 m8 g4 ]2 K6 E3 ?7 C0 T7 S - ;; no match for this entry in appset, try next one....( g) g$ j- u& A& I/ \9 l
- (loadedp app (cdr appset)) )))
$ E5 d$ `9 f: [9 U+ h. G - )
! [' ~8 X9 E. u
: k$ A% g8 @/ v# U3 B$ U5 T6 y
$ n/ w: o0 C7 a& ?8 D8 W- ;;; ===== Single-line MText editor =====
- g' F1 Y/ s3 C - (defun LispEd (contents / fname dcl state)
7 C5 J( R6 v1 v9 l - (if (not (setq fname (getvar "program")))5 L0 d6 z5 U* \
- (setq fname "acad")' e* r3 B# C! G
- )% U* H m' B. f0 Y _! A
- (strcat fname ".dcl")
7 n* j- j+ G0 L5 `: ]" r% { - (setq dcl (load_dialog fname))
! |6 j( i6 x- c/ e" c& _8 \; n - (if (not (new_dialog "LispEd" dcl)) (exit))$ M1 S, L: z+ l* B
- (set_tile "contents" contents)
! Z) D% Z6 j# ]5 c% [% N - (mode_tile "contents" 2)
6 M& k+ V, Q1 s, T8 A - (action_tile "contents" "(setq contents $value)")4 d* G E& G$ F
- (action_tile "accept" "(done_dialog 1)")- G/ D8 q, O9 D3 E, L
- (action_tile "mtexted" "(done_dialog 2)" )- d9 P$ ]: F6 F6 A
- (setq state (start_dialog))1 L; Q) m7 U! z
- (unload_dialog dcl)
3 v/ I, O1 p: p" r/ z) X - (cond, ]4 b, _. `/ e- M9 n
- ((= state 1) contents)0 H/ T! y4 C) b2 J' n5 Z& {
- ((= state 2) -1)
, `- S9 m3 X* \ - (t 0)9 H) h9 \" M& R! c( r2 i6 S
- )+ ?! e9 R3 _5 e
- )/ S9 c* U/ [1 C# ^1 e5 D' Z
: y/ H# _; o, p- ;;; ===== Discontinued commands =====
) Z3 [* w3 {- i8 Q1 P0 E - (defun c:ddselect(/ cmdecho-save)
6 I' ^- m9 K. d) P+ a+ J - (setq cmdecho-save (getvar "CMDECHO"))) o' M* O2 \( M5 G$ T
- (setvar "CMDECHO" 0)
! ^1 y0 U* F8 r, [; @ - (command "._+options" 7)
( m- P! c5 ~) E* F2 ^+ }3 q - (setvar "CMDECHO" cmdecho-save)4 X1 o1 m$ {$ B% h! L& `
- (princ)2 n1 d: o8 F/ k* h5 N, T
- )
* [! J# o& ^$ p/ Z* C& ^& |
3 A) K3 S, Q" F6 I% f- (defun c:ddgrips(/ cmdecho-save); w: E2 s3 I# f( U Y; M
- (setq cmdecho-save (getvar "CMDECHO"))
6 \2 t9 e$ X' Y9 e2 [4 L& O o - (setvar "CMDECHO" 0)5 ~5 ~4 V& P" E
- (command "._+options" 7)
. C- A: r3 {) k* ]8 g, Q1 f - (setvar "CMDECHO" cmdecho-save)
0 h- v7 N# L4 G% c- f ~ - (princ)
) R$ E& \8 d2 ]# q" | - )
3 j8 Y) N2 F8 X' f. T6 y- l
/ I0 {9 X- e9 x- (defun c:gifin ()
" g4 v& Z9 J" \/ S. |7 _ - (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n"): @8 t: e" d& ?
- (princ)
: m' B* L9 p7 k" Y3 O* J - )
' c: _ F3 l& v - 7 ^: b" b! [9 p1 |/ L
- (defun c:pcxin ()1 y$ _1 I, u1 f
- (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")) x P0 I* W% y8 k
- (princ): b& e ?% D& b. l
- )
2 {5 R- `" v. Y9 d - - G$ k8 L6 P4 x1 L
- (defun c:tiffin ()
8 z7 o- v3 P0 E3 r - (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
: {4 F% W, `9 k% u& [ f- W- R* L. m - (princ). r1 K# [8 N2 e8 D9 D0 D" _
- )5 I7 ?1 i6 M; d# _
- / p3 g. v+ G% n! |- Z- C: I6 o) v
- (defun c:ddemodes()
. r" R* M# F, M: R# U2 Y, k7 I - (alert "The Object Properties toolbar incorporates DDEMODES functionality. \nDDEMODES has been discontinued. \n\nFor more information, select \"Object Properties toolbar\" from the AutoCAD Help Index tab.")
: G; A6 N: ~6 u1 a! _ - (princ)
! ~5 Y$ m- @( h5 L; j8 x t - )- ~) \9 C6 l3 Q9 [
- u3 b' u# z4 h5 v8 q: q- r4 L/ i- (defun c:ddrmodes(/ cmdecho-save)5 w1 i* e" f# D8 I5 H
- (setq cmdecho-save (getvar "CMDECHO"))
* w1 M& E% u! b% Z - (setvar "CMDECHO" 0)1 K) `$ W* \3 l4 Y. J
- (command "._+dsettings" 0)
Y. _6 }# H& w$ X - (setvar "CMDECHO" cmdecho-save)
; v5 h( X0 g# m7 \" C6 E% G8 b5 z - (princ)
8 [% Y" V/ [6 N4 e - )/ t8 N# M8 d1 o5 U4 h- U& q% ~# K* X
# i0 }+ L: A4 r% }- ;; HPCONFIG
, G9 v0 C: z( f - (defun c:hpconfig (/ hlppath)
: v' \- t9 u8 S4 X' U# K# O - (if (not (setq hlppath (findfile "acad.hlp")))
9 Z& y" {6 s9 _ - (setq hlppath ""))* ^' B$ f' b$ b
- (help hlppath "hpconfig")" d' X! k2 X8 F4 {4 n
- (princ) F0 t8 `3 j1 k
- ). p/ i* ]# `$ z( F9 w. Z
- |/ n8 o& M8 C
- ;; OCECONFIG* r$ R9 V- u, x
- (defun c:oceconfig (/ hlppath), V( k" J$ y% q. e, U) ?3 n
- (if (not (setq hlppath (findfile "acad.hlp"))); h' R/ X2 Y6 p; A1 O. x
- (setq hlppath ""))! P" \) }; d1 Y8 K& ?: ~9 T
- (help hlppath "oceconfig")$ i1 X* H& S+ R- ^4 U) g
- (princ)
! q0 J: v$ R, y, c) S: N3 y - )+ Q* K, q. V/ X! ^, A; S7 S3 Q c1 x
- 8 D( {; y7 n! r: u8 q$ U
- ;; CCONFIG
) S# e1 ?9 ?0 h - (defun c:cconfig (/ hlppath)' | N' @, p) u1 b. e2 z
- (if (not (setq hlppath (findfile "acad.hlp"))), @) Y1 j9 q9 R5 a0 s- n4 L& _
- (setq hlppath ""))
: f* t" } Y' Y3 @5 {" ^ - (help hlppath "cconfig")
8 W; b5 W* p8 u+ B9 j+ a r N# T - (princ); S* k, O% M/ c
- )
* x5 Z# k1 J8 u! j/ }+ Q - . H9 u3 u+ a; C
- ;;; ===== AutoLoad =====( r8 s; \0 P& W
- 9 O5 J! d6 t3 S/ \/ G& O
- ;;; Check list of loaded <apptype> applications ("ads" or "arx")$ j/ e% `2 D& y; L
- ;;; for the name of a certain appplication <appname>.
' f+ n. a7 `# J; G$ _' ~/ g* [( @! c3 R: [ - ;;; Returns T if <appname> is loaded.
2 i& u$ `+ l( _8 \
5 V1 U7 L" X" ~6 i4 Q) f- (defun ai_AppLoaded (appname apptype)
' y5 P! g4 l/ G X3 M - (apply 'or
; J+ \4 \: u& K - (mapcar ' C/ }% c: h# n7 g) h: u4 [! t* i
- '(lambda (j); U& j7 }" n, Z3 Z( j
- (wcmatch
1 T: V6 S. }4 T - (strcase j T)
9 |( _4 I8 r3 t4 `" o$ K - (strcase (strcat "*" appname "*") T)
4 N- W% H, X+ D% L( x - ) 4 i1 P5 ?; c4 \0 W+ q# `: E
- )
' y+ ]- o" d* L% e+ G - (eval (list (read apptype)))
7 c" K: J w0 ?; F - )( x$ j. ]$ W' b! s. e7 W
- )! e& b$ O* W+ s+ i1 N; _: }
- )
$ K/ g' L9 I0 {& X5 c5 p7 ~4 G; L - 8 k/ H% o" u2 F6 z$ h0 q& w" r
- ;; & ^3 P% ]9 r! P& |: J: s
- ;; Native Rx commands cannot be called with the "C:" syntax. They must
$ n* D8 ^" ?& h, A9 y - ;; be called via (command). Therefore they require their own autoload & L5 X- {' P' [+ `
- ;; command.
% f4 G1 Y; ~) F5 E" r3 i
9 y' Q4 c5 B' e2 _# _7 ~0 M5 W/ |- (defun autonativeload (app cmdliste / qapp)
0 S' a8 m H6 |* z. Z% B% g - (setq qapp (strcat "\"" app "\""))) y/ S4 R6 c9 g# s
- (setq initstring "\nInitializing...")
H; I. u4 K- V/ G2 V - (mapcar2 u8 b1 b6 Q4 `1 p& A6 l
- '(lambda (cmd / nom_cmd native_cmd). G. K9 Z9 u: u- U) a/ v. b1 V
- (progn9 Y E+ A6 ]7 f+ A4 p
- (setq nom_cmd (strcat "C:" cmd))
7 `4 J. V: E4 E1 Q r! Q3 C - (setq native_cmd (strcat "\"_" cmd "\""))) D: s% x; G- p: [
- (if (not (eval (read nom_cmd)))7 T& ^: z# K, o/ W. _8 n0 I
- (eval) \( B8 g4 ~: K- j8 T: d. b
- (read (strcat
! T+ B k. R$ y. n# y5 u3 f" i - "(defun " nom_cmd "()"
2 h3 ^/ M' K# } - "(setq m:err *error* *error* *merrmsg*)"
& J! K3 t+ T" z: f1 U5 ] - "(if (ai_ffile " qapp ")": J9 K( Z+ v+ M- f& J( n" D9 r& W
- "(progn (princ initstring)"
6 m& f+ E& @% ?+ N9 U1 o - "(_autoarxload " qapp ") (command " native_cmd "))", a+ |' P! {$ l* w, A' c& x% t
- "(ai_nofile " qapp "))"
2 Q" Z/ D; j. t3 O: T, Z - "(setq *error* m:err m:err nil))"
$ v6 s( D$ Q5 R2 E3 Q) W! p0 U - ))))))
2 N* e. o% X5 E - cmdliste)' g( N5 e b5 B! O
- nil$ \8 N. ~9 w8 s9 X$ } ?
- )
, w* A5 t/ o5 K1 z F. E1 @
/ y) ^, T9 e7 n, |- (defun _autoqload (quoi app cmdliste / qapp symnam)0 l9 q( Y% u# Z. ]
- (setq qapp (strcat "\"" app "\""))1 _( C2 J i& Z6 q! t
- (setq initstring "\nInitializing...")9 I; l/ S' v; A. F
- (mapcar' L% ]2 t+ }5 U. U6 L; Y
- '(lambda (cmd / nom_cmd)( m& f7 U2 p9 z6 t% I
- (progn+ d4 N* h9 o- G( r+ S4 P
- (setq nom_cmd (strcat "C:" cmd))
( n; I% V0 i3 G4 x - (if (not (eval (read nom_cmd)))/ p) i5 d& J/ W4 `! |
- (eval/ U2 q l1 w d% q
- (read (strcat
( Q# g9 Q( Y& G# Y! b! Z- Z - "(defun " nom_cmd "( / rtn)"
z7 N! f" h6 c5 O' o, c- @ - "(setq m:err *error* *error* *merrmsg*)"5 o- L$ O2 A; A+ A( C
- "(if (ai_ffile " qapp ")"4 `( R$ w |. r) T+ J4 m3 e
- "(progn (princ initstring)"7 t% l+ V% D" ?
- "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"
9 E6 f" H2 n2 T& L - "(ai_nofile " qapp "))"
% ?3 p' C, M# [* s: S/ F. x - "(setq *error* m:err m:err nil)", J) u4 d" X, r. J' O; |0 [% l
- "rtn)"% W& E$ ^* ]1 S1 A
- ))))))
U5 p0 @! ^3 c( @ - cmdliste)" s9 G2 Z1 v/ H, ]8 B
- nil
2 } _; F' N# ]1 V- J - )
9 e E" ^0 s1 l0 c9 c - S1 q' U4 c; l5 q, }! h+ d) A' v
- (defun autoload (app cmdliste)& r/ N- U- E( }5 B; x) T; r
- (_autoqload "" app cmdliste)5 [( X: c* @ `+ S$ M4 A2 L
- ); ^& B: {5 H, m* v" o
- . y7 o$ X0 \9 Z% f5 g
- (defun autoarxload (app cmdliste): `# v2 P. H% R1 J; Q& w
- (_autoqload "arx" app cmdliste). C+ }( o& v1 p# K
- )6 k7 o* |* \( e: j
- 7 I8 g$ @7 T5 A9 [ G$ ?( ], p3 z% [/ X
- (defun autoarxacedload (app cmdliste / qapp symnam)0 }/ X9 o d/ l3 z# p* s
- (setq qapp (strcat "\"" app "\""))
" _. g# k1 O3 @0 e5 O& l$ d - (setq initstring "\nInitializing...")
) @: x+ Q6 ~" E3 m5 x) a" k - (mapcar1 V9 f4 ?* f$ D& T5 S7 K% _& ]( D
- '(lambda (cmd / nom_cmd)+ x" u8 i8 a `8 P% c0 d& V0 f
- (progn
4 U& @4 t& K+ `! p - (setq nom_cmd (strcat "C:" cmd))6 S H/ Y+ l6 o3 @
- (if (not (eval (read nom_cmd)))
, a/ t& }: i8 W - (eval
/ S3 u, ~3 Y+ d* B& i9 g$ v - (read (strcat$ e8 z3 I/ _+ g) h& a3 g9 e# ^$ D
- "(defun " nom_cmd "( / oldcmdecho)"
9 \2 X, V9 ^$ w; |. t - "(setq m:err *error* *error* *merrmsg*)"0 Z# l( r8 M- J; ?; z0 E
- "(if (ai_ffile " qapp ")"
+ z. M k, [7 b, @: V+ C1 f: F - "(progn (princ initstring)"$ n( K: n4 T3 r" x2 O8 d' a7 ~* A
- "(_autoarxload " qapp ")"
. a4 O n3 L7 P4 F" U% r0 c/ w: l - "(setq oldcmdecho (getvar \"CMDECHO\"))"& L% J' P& N- c$ j, m3 W& _+ h
- "(setvar \"CMDECHO\" 0)"! X$ f% Z0 T% O+ A. v
- "(command " "\"_" cmd "\"" ")"" z) K: x6 }$ @
- "(setvar \"CMDECHO\" oldcmdecho))"0 ]" d' d$ y" t. A/ u) l1 z
- "(ai_nofile " qapp "))"
3 I& c: S/ S( F - "(setq *error* m:err m:err nil)". O2 J# z3 f; f# Y8 k
- "(princ))"# z9 E4 m8 t$ V6 @. d4 L
- ))))))9 ~- j- A' ]8 _( K( u. r* z/ c
- cmdliste)
7 P7 l/ r! C' K7 z' c4 `; v - nil% z. \7 c4 x1 C" K3 `+ ~/ {
- )
' z0 [- V. ?! m - 2 J" h; G$ Y+ e3 p [) n
- (defun _autoload (app)
' D3 C: Y0 }6 {6 m& N - ; (princ "Auto:(load ") (princ app) (princ ")") (terpri)
2 e& M/ i. U7 s5 a - (load app)/ A g1 r" z: X& B$ o! n
- )
/ [8 f' i3 Z( N/ h - - X G8 W+ ]5 N$ S4 T
- (defun _autoarxload (app)
* i, t) a; n+ U& o: w2 L% D* S - ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri)
+ [% N$ r& F ^ - (arxload app). w' o J/ [* \6 f6 t" m- f
- )' b1 A7 {! `4 k \
- 9 k5 \7 B8 S4 j3 A' j
- (defun ai_ffile (app)
4 v) T3 b9 l6 ~$ L1 G$ A, g2 G - (or (findfile (strcat app ".lsp"))
7 c$ { B7 X3 U2 U4 U4 E9 b - (findfile (strcat app ".exp"))
- b3 R) R% c% X% ^% r& c% I0 { - (findfile (strcat app ".exe"))7 V9 y3 R* m$ Q# X: {+ i
- (findfile (strcat app ".arx"))
: @3 w9 {' o% C+ H* A - (findfile app), [2 P! y! q+ x9 f/ c0 e! ~; S
- )
0 t3 |7 [! E5 |0 S4 @7 q - ), e* J* K; t W: p9 g
- 8 T+ @1 g0 y2 b0 v2 W' @
- (defun ai_nofile (filename), B7 d6 Q: m) o1 M/ T r+ J+ u
- (princ
2 [' V9 X$ b1 ` ~* m: e - (strcat "\nThe file "
; B7 O. ~1 K7 A+ {! r1 d - filename/ C) |7 i: f9 u$ m' r$ g
- "(.lsp/.exe/.arx) was not found in your search path folders.") [8 a/ b4 Y. L# e
- )
7 h$ v/ |& F C5 O {/ C. `# Y - )5 B0 K& c. a1 k2 ^- U) o
- (princ "\nCheck the installation of the support files and try again.")6 q' I X+ |4 s- ^% I8 z5 @4 {
- (princ)
. r4 v" u# d) z4 o- }' ~ - )- P4 ?) s: i; k
- ' n( x) V7 d, Z! `0 q, w' r
& N9 Q; Q, x' A- ;;;===== AutoLoad LISP Applications =====5 y/ T: v9 \3 s9 c0 G
- ; Set help for those apps with a command line interface
' n6 N& n3 h$ U% V- w5 f# |& f - 0 }4 y/ {/ Z6 i4 H% J
- (autoload "edge" '("edge"))( h) a- j: P( @8 ]# q
- (setfunhelp "C:edge" "" "edge")% q# P! B2 l9 U
( I+ A! c# W4 w% a9 n* E- (autoload "filter" '("filter " "filter"))
3 N7 K. `+ }7 M. j4 {% w - 1 |7 s1 [1 d7 e) x: E2 F
- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"
. C( r7 z4 e L5 L2 { - "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")3 o( _+ u) x+ u! [( T: d1 T
- )
. M1 J3 c/ e9 n" U/ a - (setfunhelp "C:3d" "" "3d")6 D; W5 J/ N2 r* l6 C+ Y4 H
- (setfunhelp "C:ai_box" "" "3d_box"), z! k6 [2 @9 c: F1 `9 e5 G" ]1 {
- (setfunhelp "C:ai_pyramid" "" "3d_pyramid"). V* G6 ]! t( Y2 X- v4 @, h
- (setfunhelp "C:ai__wedge" "" "3d_wedge")/ V% m( V4 z6 w2 j T9 j
- (setfunhelp "C:ai_dome" "" "3d_dome")% o( ]$ M! ]: L
- (setfunhelp "C:ai_mesh" "" "3d_mesh")' t2 b* z* N+ S/ [; o
- (setfunhelp "C:ai_sphere" "" "3d_sphere")( R! s. V$ R1 k+ J3 i
- (setfunhelp "C:ai_cone" "" "3d_cone")! u# L. b: M2 p2 @0 b- c: ^- J7 h
- (setfunhelp "C:ai_torus" "" "3d_torus")
% v0 K2 R4 i* L% d& @% j - (setfunhelp "C:ai_dish" "" "3d_dish")
8 a* u) L- S! K5 O7 i% x - 5 D% h3 G0 |& w& Q/ c, w
- (autoload "3darray" '("3darray"))
H; K- ?6 g* x/ a; ]* w$ j. q6 f* Q - (setfunhelp "C:3darray" "" "3darray")/ _+ I/ h5 O! m. D% m$ L/ M" k/ C, [
# [2 M! \( w" M0 B0 O. u0 C- (autoload "ddvpoint" '("ddvpoint"))
( r- \4 x Q* r4 W
5 m$ S1 _! \) d5 t/ N# h1 S- (autoload "mvsetup" '("mvsetup"))
9 e$ P: {% U. B* n) @! m - (setfunhelp "C:mvsetup" "" "mvsetup")' V/ o, @# g, f0 o* p8 d" j9 B
" e' @7 }1 ?& F# ~ i0 e' j7 o- (autoload "ddptype" '("ddptype"))
) ?! h' h4 o l4 g# k a- R
& y" D6 s [3 I$ H! v6 q& @- (autoload "attredef" '("attredef"))
! k! }1 W; ]6 Y( R: w+ s - (setfunhelp "C:attredef" "" "attredef")
8 R) ^: q8 e# r% h
( |! v/ e9 ~& m/ t- S. J- F$ m- (autoload "xplode" '("xp" "xplode"))
0 L7 m% ]7 `: q7 y9 p1 f - (setfunhelp "C:xplode" "" "xplode")
# t) R* b0 s; F9 P8 ` - 9 ~' |) d0 ^& r! Y1 X; H+ X
- (autoload "tutorial" '("tutdemo" "tutclear"( }9 j d* a" g$ N9 z
- "tutdemo"
9 I6 F5 b4 T+ D0 D3 |' ~& i - "tutclear"))5 `2 T, d$ T+ h9 ^( x
- 2 A# _. ?: M0 b1 \9 m6 a
- ;;;===== AutoArxLoad Arx Applications =====
( ]- k7 D# v. M* a
4 B' V {- X" |7 |, H- (autoarxload "geomcal" '("cal" "cal"))* g& a n/ N( ~4 K% `) f
- 5 q1 [2 S: R5 D1 r
- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align"
$ A8 {/ M; s# T, j7 e% {3 M - "mirror3d" "rotate3d"
" _0 r* n! G5 L+ I3 U - "align"))* j+ X$ G! M8 f' p! x( V8 o; \
- * ?) X! c x6 P( D
2 e6 w% g' a' X5 I5 c- ;;; ===== Double byte character handling functions =====
P$ P4 `0 X* ~, d9 k r- n - 7 X3 m4 }4 r5 [! Z9 v9 L
- (defun is_lead_byte(code)* P4 @0 w3 z+ L
- (setq asia_cd (getvar "dwgcodepage")); K2 M2 Q7 U' j! q" S9 @: l* Z
- (cond
' @2 u& Y v4 }+ z7 K# U6 i& s - ( (or (= asia_cd "dos932")
0 t; s; w- h& @2 x0 ` j - (= asia_cd "ANSI_932")
' J0 x0 C( j5 t - )1 S1 `% J7 m" N% D' c% ]& w/ o, H8 Z
- (or (and (<= 129 code) (<= code 159))
D' w! c- i9 U4 [8 P - (and (<= 224 code) (<= code 252)); n: M# P1 @+ f: j, L$ n
- )* O/ Z- ^, z, Q
- )% ]6 X& h% p- ?1 ]/ p2 S
- ( (or (= asia_cd "big5")
: B2 s, o" w; Z* k1 o8 A - (= asia_cd "ANSI_950")
# y4 H4 b* t6 X% E, N( E0 } - ) x) o5 @8 s9 {' H
- (and (<= 129 code) (<= code 254))
1 m8 p; q% ~5 b - )
- ]- s- b2 m+ F: ^ - ( (or (= asia_cd "gb2312")
/ o0 B+ a, t2 K0 w( `0 }1 X - (= asia_cd "ANSI_936")# {5 V, n" r( Z2 W6 O& |, n$ L7 g
- )9 p/ R; r0 k0 a+ c
- (and (<= 161 code) (<= code 254))3 Z1 v! s/ N9 w8 L# a- V/ n* S
- )
6 q) ^6 `2 u8 v3 M) J - ( (or (= asia_cd "johab")
4 G3 U6 Y/ g% E) U9 K - (= asia_cd "ANSI_1361")3 B+ i6 ?" H K' D" Z! J
- )
* r, | O; N- p% V+ G7 v - (and (<= 132 code) (<= code 211))
( y* j j! n9 c. R% r3 G C. C - )3 G) S) [( ] u9 s* ^ T
- ( (or (= asia_cd "ksc5601")
* m( h6 e* r. k4 \9 G - (= asia_cd "ANSI_949")
6 ]5 u ]; o! v% t. l - )
2 B2 L/ s/ p8 o7 d. |+ W* f0 h - (and (<= 129 code) (<= code 254))
4 L9 Z3 _: U8 _' [3 t - )
9 C- j$ J0 K! y/ _1 Y - )
5 l# ^, _9 t$ i" E; g - )5 w% n$ f5 [1 O0 N) F U9 [' p* \
- 6 J6 ~; B* l8 ?
- ;;; ====================================================
- q" m" k4 f! x* b3 r
& l8 |; O) H- D" S- \
" f9 a1 _. @- W; s2 x- ;;;
% R6 @1 ~3 M' H, D0 a4 N/ ] - ;;; FITSTR2LEN6 B* m0 \. ]9 j* i
- ;;;7 c* w9 W& q9 c7 G* a
- ;;; Truncates the given string to the given length.
, y& ?- h$ H/ x6 ]8 K+ {% y - ;;; This function should be used to fit symbol table names, that3 t0 p& q5 y; L! j
- ;;; may turn into \U+ sequences into a given size to be displayed- v, Q _2 f' L, _* y' r6 c
- ;;; inside a dialog box.4 D' D7 ~5 b% q! z! F$ n5 I' P
- ;;;$ m: Z* @ z3 Z$ q" B) q$ N
- ;;; Ex: the following string: % q/ n3 m5 A; O7 t. P- O
- ;;;; p/ ^8 @" ?" G. O9 O* K& s' |
- ;;; "This is a long string that will not fit into a 32 character static text box."
9 D/ Z; P+ J: J) P I - ;;;8 z# J7 e5 ^+ ]& L% P6 ]
- ;;; would display as a 32 character long string as follows:' `7 v+ @& B% U, N: g9 J
- ;;;
6 {7 |) _% J0 Q$ L - ;;; "This is a long...tatic text box."3 C. P2 S! \! c9 w$ C
- ;;;
3 W& \5 x% S2 X$ e! U
0 M. S, g' T, d! I2 B: D- (defun fitstr2len (str1 maxlen)
: I1 K8 e$ j$ N6 D5 O( B% _ S
! q( N1 j7 d: N2 C0 B2 Y- ;;; initialize internals6 c6 ~1 \- P: D. Y& [: R5 O/ j
- (setq tmpstr str1)
% N5 A) r: ?+ x - (setq len (strlen tmpstr))* ~$ w) p: Z# G8 T" o$ H
0 e# d+ A* m$ a0 w7 B5 t2 t- (if (> len maxlen) ! Z+ H9 {& W i: d' w5 v# H6 ?; }
- (progn
# U( ^2 `- @& d+ o - (setq maxlen2 (/ maxlen 2))
) }( G& o- C8 Y6 B/ j2 Z( r - (if (> maxlen (* maxlen2 2))
- X* X# R, r3 h. k1 ]6 \8 n8 Y - (setq maxlen2 (- maxlen2 1))
! l! _' O) I: S4 p) f- w - )6 n6 H3 ]9 X6 ]8 Z# Z5 m( j6 W
- (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1))7 s9 \' [/ y# M5 H8 g6 S
- (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))7 M- e5 D8 x& _' ~
- (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))/ {9 X/ F) V9 `; s3 q, S8 M4 N1 L
- )
\2 V! _$ Y' v" ? - (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))) ]9 K; z; y+ T5 k6 }& n
- (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))
0 U' z1 g+ f# L& Q) J4 ^9 n; s5 z/ r - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))
/ m7 X8 D- ]- \/ a( d; T$ M - )
( Q+ l) Y$ g, U3 w - (setq str2 (strcat tmpstr1 "..." tmpstr2))
0 S4 e1 i* [! V3 v1 V - ) ;;; progn% ]9 \0 }6 e/ U- ^! b
- (setq str2 (strcat tmpstr))
6 d/ W1 k& l8 d9 T$ W; |5 c& h - ) ;;; if; ` N" N9 w* C2 U& _
- ) ;;; defun: [& n- y% n1 g6 Z6 J' l" [3 \4 `
- ! ]: r) m( a$ K2 f$ r# B
- 7 x5 [) {! z- U
- ;;;* w: x# H1 A$ ^
- ;;; If the first object in a selection set has an attached URL
. R" F5 {" `' \: p. K+ \+ R - ;;; Then launch browser and point to the URL.
4 P0 @) y+ ?2 ]3 e; b; w. x- } - ;;; Called by the Grips Cursor Menu
* s* t0 z$ L+ W9 c7 B1 D - ;;;
' u% b) _" h+ o( I0 j" ~7 Y - 8 f2 }- O" {$ W4 ]* g; |
- (defun C:gotourl ( / ssurl url i)
( J' S' u- _' |( u$ C) C: s - (setq m:err *error* *error* *merrmsg* i 0)" k2 S' E+ M+ u+ m! z9 I8 w
3 W0 [3 v( u% y, e; { M& F- ; if some objects are not already pickfirst selected,
* B7 m& |5 D( { Q7 J0 G - ; then allow objects to be selected O8 K0 J' \; E! s
- , J0 [. G* f% W5 J1 O* K
- (if (not (setq ssurl (ssget "_I")))5 F4 K* w4 h( r+ w9 ^9 y3 K
- (setq ssurl (ssget))
' F* o' r6 t' R9 s - )
/ a; A* v, P* Z" D6 r! _* q! w
0 D+ _. |, Z+ X' @- ; if geturl LISP command not found then load arx application
9 j+ P( @. [0 Z% X$ B$ x - & I0 t6 P$ V: Y. w
- (if (/= (type geturl) 'EXRXSUBR)7 V9 k) j' X5 n' Y7 s
- (arxload "dwfout")1 [7 A' p9 ~1 b. a h
- )1 o* r2 I/ G% u6 o' ~5 k
- . G9 C( z, @" W( O; q) l
- ; Search list for first object with an URL9 [% G( `! F% |& M, c
- (while (and (= url nil) (< i (sslength ssurl)))4 ^. v7 t& ], T. z/ x9 o8 U
- (setq url (geturl (ssname ssurl i))
4 K( O0 b8 j" H# V* C, V1 V - i (1+ i))
; {0 o' u$ U* x) {) O5 T - )
2 {7 f9 Z3 b, T+ e; Q - $ f$ C" m! \' P3 r5 e' x
- ; If an URL has be found, open browser and point to URL1 {' b& C* m' Z [. T
- (if (= url nil)
9 }8 j0 u* T! x - (alert "No Universal Resource Locator associated with the object.")5 {: ?+ q. i. W$ a: }
- (command "_.browser" url)# b3 u) i g9 A8 C7 P2 M
- )* S$ @: i+ l8 g A
- , ?7 P8 y$ C: X ]% A# Z9 H
- (setq *error* m:err m:err nil)! n0 j9 |& M6 n( h+ L. M* _
- (princ)
/ n$ C0 R- |" `' x6 i
, n: W# @9 z( _: G0 `" |8 P0 c- )
* H9 v0 `' s2 a# ] - 6 Y" ~4 Q5 r& D4 o. M5 {
- ;; Used by the import dialog to silently load a 3ds file
- |: @' s% h w - (defun import3ds (filename / filedia_old render)0 _' r& L/ _6 H1 C1 C# {
- ;; Load Render if not loaded6 Z4 j& s; b! _- S! W
- (setq render (findfile "acRender.arx"))$ y4 s) M7 o) q# f5 g* _( V/ d E/ W
- (if render
5 D4 @8 U& i& ~( R - (verify_arxapp_loaded render)
* S; n" P; S Y _* X* g7 D - (quit)
( m X. F# N+ ?- t6 B. _ - )
2 u) b1 C) g9 j* x: Z
$ m0 X" S V2 U5 g/ J% q- ;; Save current filedia & cmdecho setting.
3 `9 `- p; H1 F4 D - (setq filedia-save (getvar "FILEDIA"))
4 i, \7 x! S5 f+ ]$ l( G - (setq cmdecho-save (getvar "CMDECHO"))
( r! Y: I- c( c. Y' t! F - (setvar "FILEDIA" 0)0 [, o& Q( z$ F2 w8 H+ h& t
- (setvar "CMDECHO" 0)! G" B& |, \# H1 e
- 8 b. y/ Q& J2 U8 Q( D, j* _- }% d
- ;; Call 3DSIN and pass in filename.
8 Y/ \' t7 j0 j+ ^. } v6 h - (c:3dsin 1 filename)
/ G& Y P! q e; g* T0 F* | - ) u/ d* n& ?. l$ b$ s
- ;; Reset filedia & cmdecho
3 y* B `& J! T. l0 P - (setvar "FILEDIA" filedia-save)
9 P% X6 |8 V# G4 l+ S - (setvar "CMDECHO" cmdecho-save)
# V& L/ w0 r; Z7 R0 j4 K) ^9 G/ z - (princ)$ u( z# y8 B# ~2 K& i
- )2 Y9 [1 U5 f9 k2 |
- 2 A! d+ P) {0 o; J
% k# U% [0 l: Z$ J- ;;;=== Menu Functions ======================================; u0 x- v& i& e% _% a
- $ K v* }6 k9 |& ]
- (defun ai_rootmenus ()3 r6 S4 j0 c6 M* Z: o9 T8 D# @
- (setq T_MENU 0)- N9 {" H" @. J1 [ a
- (menucmd "S=S")& L0 D& W$ C Q0 n8 q2 _
- (menucmd "S=ACAD.S")( k) ]; s. W/ ]; X: o0 ^
- (princ)
5 L$ S4 c" p) y( [' ?: Y0 t F0 v9 h - )
" f9 \; M6 [. `3 l) l/ a4 A E: r
# Y& ~. U" J _* k- W& C( U8 p- (defun c:ai_fms ( / fmsa fmsb)
+ k# r7 O) @3 H( K( H5 @9 f/ W - (setq m:err *error* *error* *merr*)
% w8 X, Q. L/ r+ _! l6 y* f - (ai_undo_push)
( G2 X! {* z& I4 ~# j4 R" k6 N9 z - (if (getvar "TILEMODE") (setvar "TILEMODE" 0))
, k+ Z: i+ u' A" f - (setq fmsa (vports) fmsb (nth 0 fmsa))
5 m ]. U, B! V, { - (if (member 1 fmsb)5 ^7 i M9 d9 c% ?0 o$ c5 u: H6 D
- (if (> (length fmsa) 1)
6 o# c! i! K5 i! g - (command "_.mspace")% V+ x! y1 e3 k; x
- (progn
1 U8 f2 {1 N6 J/ O- C! z3 ^4 `! m - (ai_sysvar '("cmdecho" . 1))
6 l3 e# M5 C0 h# _0 _9 a - (command "_.mview")% e: ^3 b* c6 G5 v
- (while (eq 1 (logand 1 (getvar "CMDACTIVE")))
6 e# G: \- X2 b* C9 T8 E - (command pause)
4 w3 T8 ?3 o, s3 P: ~& f - )
- @+ ?# W0 X2 P1 p) {" N6 E - (ai_sysvar NIL)0 \& }0 |& g: M# v
- (command "_.mspace")" s9 h/ f/ o7 D. j
- )8 r. `: F5 w* }, Q$ \
- )" {! s- h6 j8 @
- ). _/ V2 U% i9 H0 H9 S0 ?. r
- (ai_undo_pop)
' m: }/ S9 K& g+ M2 o+ K - (setq *error* m:err m:err nil)
2 k+ Z' h l, L8 }/ d4 d, B - (princ)
0 v6 d/ \% j% B& s9 R - ): K% E/ F; F5 H
- ; ^- h8 B9 Y1 J0 `
- (defun ai_onoff (var)
3 y6 c. Y% c! |" | - (setvar var (abs (1- (getvar var)))), @! f' g, i# B8 [1 ?
- (princ)
e+ B6 A2 Z# Q+ T - ); p3 o) X- u' B, R( [0 i) {
- % X' b% y9 K; w& ]" L9 W" E
- ;;; go to paper space
+ t5 D2 w& s- W2 p2 y5 L# \5 o& j - (defun c:ai_pspace ()
0 o; f" q, J3 }$ d/ H - (ai_undo_push)( y& M( g4 F( H" L7 z- y
- (if (/= 0 (getvar "tilemode"))9 j1 x& e* W+ B5 |
- (command "_.tilemode" 0)0 x8 z: Y& B3 u
- )3 }& |; H$ i8 _# t( t
- (if (/= 1 (getvar "cvport"))) U/ S# V( X! B7 M; O1 j
- (command "_.pspace")
3 ^0 N5 }8 i# K0 S* D4 ^ - )
3 X$ d" f$ h- x% l - (ai_undo_pop)
3 s7 E x) ?/ W - (princ)/ ^3 G- e% o8 D* o
- )8 e& a$ c2 q* ]
- ( e z& K; C/ L( O4 T" L& b- `) u" f
- ;;; go to tilemode 13 }2 T; U/ [, H
- (defun c:ai_tilemode1 ()
% a& Q: R+ R2 D a5 [ - (ai_undo_push)
8 z& Q' y, m, Z* O4 v$ k$ _' l - (if (/= 1 (getvar "tilemode"))* l8 S! F0 ?" ?. |; H
- (command "_.tilemode" 1) s9 N8 S- U- @8 e! s: }: V
- )
# {9 ?$ s0 y4 v. _; Z- u& x - (ai_undo_pop)
/ a( k& `2 k. Y - (princ)
' r6 Y. Z3 E! Q! `7 t, x A* f - )
4 F$ S. p- X1 V
) L6 W5 d1 y, r3 T& K- ;;; Pop menu Draw/ Dim/ Align Text/ Centered
2 O- V, |5 J8 p6 B - ;;; Toolbar Dimensions/ Align Text/ Centered
1 Y- d4 m1 r; j1 P
; h/ j4 d: z- J g# r- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss)' G( |5 d( Q6 T% R
- (setq ai_sysvar (getvar "cmdecho"))
/ d1 P. F) \" @0 A+ ]" L |3 k - (setvar "cmdecho" 0)4 g& d1 j1 w M' a& G/ [* W
- (cond. T, ]! H$ F4 y' G9 R
- ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION"))))
`, e% o6 `9 @. W. l( n: ~ - (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss ""
/ B5 b9 b0 Q4 ] - "_.dimtedit" ai_dim_ss "_h")! U3 Q6 @! K: t r: {/ F" K3 L2 [
- )6 ~9 _" t( R* \3 v$ t3 x
- (T nil)9 V3 f2 Y5 i; V, H7 L+ Z( _
- )+ u& i' _" ^1 P
- (setvar "cmdecho" ai_sysvar)* E8 v% r- j; T/ ^+ v- m! @
- (princ)# h, y2 K" G$ o; F/ F2 n' @
- )
+ L8 N9 A/ M: f- @& m7 w - / `0 X, B# h: s/ ?; D, n3 r
- ;;; Shortcut menu for Dimension Text Above $ X+ K2 R/ g# W
- / }" Z4 ?( i0 l
- (defun c:ai_dim_textabove (/ ss)
/ R3 X/ @0 L# K - (ai_sysvar '("cmdecho" . 0))
2 M; j7 j, U7 d& C6 z" f- r - (if (setq ss (ssget "_I"))
: F) Z( ~/ r2 N# n8 m% [ - (command "_.dimoverride" "_dimtad" 3 "" ss "")
$ Q5 Y' ]6 j- [ O9 @# S - (if (setq ss (ssget))( d% @6 R6 J t9 P- \. F2 [1 ^
- (command "_.dimoverride" "_dimtad" 3 "" ss "") 0 U. D1 I! Y0 O
- )+ P. I. h0 y8 e) J9 F7 u
- )
" G# d: y) n. t, r" U - (ai_sysvar NIL)& p7 \; J$ B% r5 W: Z/ ]- t( l2 L
- (princ)
% w: j3 |8 h U5 X! h9 }1 R8 p ^ - )* o# M6 Q8 }. H0 Q6 _
- " P( W6 R5 z) ^% }
- ;;; Shortcut menu for Dimension Text Center
/ J) d7 r- D( b8 K4 Q - : c4 g! \; ], [: z8 ?
- (defun c:ai_dim_textcenter (/ ss)+ e$ C2 [. z' K. A6 e, t
- (ai_sysvar '("cmdecho" . 0))
) T5 _! @7 c9 @; g3 y" t' b - (if (setq ss (ssget "_I"))
$ b1 s: [$ k' S7 N - (command "_.dimoverride" "_dimtad" 0 "" ss "")) d7 ^: g9 d% H4 P! K. x) p1 K7 X
- (if (setq ss (ssget))1 Y) V; q; c5 [
- (command "_.dimoverride" "_dimtad" 0 "" ss "")
' B; P! `$ E/ z$ i8 g3 V* M: K - ), g, ?) L: H# ]% ~) a
- )
1 H1 ?/ R w! X# X4 a* C5 O7 \1 w - (ai_sysvar NIL)
- {/ T' r3 R/ Q2 J$ ^8 [ - (princ)
/ E) D0 {3 x" @, Q N - ). ]/ e' V" L% I2 U
- & e7 g" j& `3 j) ]9 ?
- ;;; Shortcut menu for Dimension Text Home % P' ~4 q% A+ ?/ H
- 3 I I9 l2 N5 f; i) o" U1 X- O
- (defun c:ai_dim_texthome (/ ss)2 M) S* s5 j" E8 |5 S- z
- (ai_sysvar '("cmdecho" . 0)): n0 ?& `0 C3 L0 @$ ?
- (if (setq ss (ssget "_I"))" t) j4 M" z" L1 i9 u
- (command "_.dimedit" "_h")' L3 H: S2 r$ R4 ~2 r) i
- (if (setq ss (ssget)); Q8 ~) o- Z. s
- (command "_.dimedit" "_h" ss)1 L, D" l9 ~' N: k3 o+ O& a
- )8 P, r7 P# X8 n/ j6 E- n* k
- )
0 w6 W* q& q+ {( `. x$ q6 q - (ai_sysvar NIL)
8 y/ y0 L2 P3 x4 n# C! U - (princ)" G R4 H3 K( D& F: f; h8 o
- ). S# C6 L% d3 k/ ^4 {6 Z
- / i$ l; J1 U3 z* p/ u. }& C
- - _ x) K# S& l& V3 B% D; Z" u
- ;;; Screen menu item for CIRCLE TaTaTan option., ^3 Z& y' `, w( B* m7 \: V5 B
- ;;; first, get points on entities& @5 r$ p+ g$ V) f
- (defun ai_circtanstart()
F" M3 C# _5 H4 `" X - (setq m:err *error* *error* *merr*)- S8 ^6 ~& o4 O3 i2 n Q) b7 r8 B
- (ai_sysvar
% O ]& Y+ z3 G5 F# r. A7 w - (list '("cmdecho" . 0)
. ^$ E- q$ W1 I - ;; make sure _tan pick for CIRCLE gets same entity
* Y ?( _3 b# P* f7 K2 ?( r - (cons "aperture" (getvar "pickbox"))
8 [4 C' l4 Y) { - )
4 F0 u, W+ t+ D3 g: [7 S) T - )
5 h' y3 k1 g: s9 E) M3 { - ;; prompts are the same as CIRCLE/TTR command option5 ?) Q) n9 P0 R1 _
- (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))7 a4 I. ~2 M J: R: i
- (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))7 ^7 Q) v! R% L7 m8 m! ?
- (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil))1 A' e; o( k2 L
- )
1 e. \+ i+ y0 _; h; N - ;;; Command-line version* k6 ~2 X `0 f; m' o
- (defun c:ai_circtan (/ pt1 pt2 pt3)1 x" A0 K2 J0 U. |- D
- (ai_circtanstart) R/ v9 p, ]/ h* \5 ]% v
* c. n: u& Y& T0 g0 [3 R, p+ U9 j- (ai_sysvar '("osmode" . 256))
% U) |+ [7 |) r+ k2 ?' j - (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)
( j" |1 i! y2 g. d* O* D9 M - . ]+ p9 C" ]" }
- (ai_sysvar nil)$ o3 j& c3 V* g, b, i$ Y
- (setq *error* m:err m:err nil)
# C0 r. a, t) j - (princ)) {8 H' ?6 [- n2 f* A1 a
- )
+ Z; w1 C5 _0 f - ;;; Use this if CMDNAMES == CIRCLE
' O! _' m4 g4 z. Y - (defun ai_circtan (/ pt1 pt2 pt3) Y2 W% O7 B8 Z4 }, b2 g' ~: Y C
- (ai_circtanstart)
6 X& [( X6 n% b5 e, H5 e/ F v0 Y+ v, o - . O- a, C% k4 n3 }$ \
- (ai_sysvar '("osmode" . 256))+ T7 n! |& ~ q0 E3 I j
- (command "_3p" pt1 pt2 pt3)0 ~. k7 y1 A! W: b! U* P
-
5 Y5 q F) }0 v& P* q) U - (ai_sysvar nil): i. O5 m" I- O" e4 b: k
- (setq *error* m:err m:err nil)9 O, W8 h( R8 b' ~0 a' T
- (princ)2 m5 X6 b6 c } J/ A
- )
* e0 R; L6 [8 d2 q5 l7 [. V - 6 L @- V$ c c) \$ L
- + K7 \ ?/ n! D+ k+ V+ h5 ~; j
- ( T6 I; p) E) q7 w/ g2 V
- ;;; Shortcut menu Deselect All item.
1 y2 v7 }4 g$ H3 y - - u; V. _7 l1 P0 ~) P' o
- (defun ai_deselect ()
4 Q( L) u1 E4 k' y+ g - (if (= (getvar "cmdecho") 0) ;start if' h8 O0 ~& Y! i6 h
- (command "_.select" "_r" "_all" "")
# L) ~: C2 ~0 i3 u1 l9 C; o - (progn ;start progn for cmdecho 1 A9 s" Q5 W- m1 c! W$ W
- (setvar "cmdecho" 0)
, f, k8 g( V8 Z6 o/ f - (command "_.select" "_r" "_all" "")
$ A: N* [( R- Q3 S. M' `* ? - (setvar "cmdecho" 1)1 \5 q7 {: i3 _4 S9 s
- ) ;end progn for cmdecho 1
, ]% K0 R" G( M, U - ) ;end if) \+ @* t$ a1 @( i9 U
- (terpri)
f9 d6 @5 b& s1 f - (prompt "Everything has been deselected")
0 F- j( [2 r" T) m - (princ)
" J$ i1 S/ c4 |' K( g - )
+ `& ~7 p0 U7 L - - N. V4 P9 Z" R" H1 @/ s) O
- ;;; Command version of ai_deselect to be called from the CUI
+ Z& f) e6 ?' ]9 I9 Y& r+ u$ \! g - ;;; so it gets properly recorded by the Action Recorder
, D9 p( L$ Q2 E0 E - ;;;
) m1 y& q& t2 W9 p - (defun c:ai_deselect ()
- R- R9 H: U% K0 w - (ai_deselect)
9 u0 D( p9 s8 x9 J- _5 y5 } - (princ)
) ~6 G9 ]7 `) q - ) S, c% o9 a$ s4 J% {
- * A! ^0 m# ^; {, a7 w; j
- ;;;+ c+ g! X, g4 _; y4 w. t7 E
- ;;; Enable Draworder to be called from a menu+ U# d: ?# U, @
- ;;; Checks for Pickfirst selected objects8 M; z; D2 u0 t
- ;;;0 K& m$ f x* y$ S4 |4 C
- ; i% j% w% d) ~* p1 z
- (defun ai_draworder (option / ss )
" c% a. t ^. o' x/ M' X* W& `0 b
9 w7 h# {: ?% Q6 a' D) G* v- (setq m:err *error* *error* *merr*)
) P9 l4 U, n+ n7 ^; Z9 J: a - (ai_sysvar '("cmdecho" . 0))
) A& u9 Z8 ]* P4 D8 D: m! p# J
# _, J: `: X. ?) M* s1 H- (if (setq ss (ssget "_I"))* z4 g2 P" G' l# R- g a$ j
- (command "_.draworder" option)$ k. n; L; P- c6 K
- (if (setq ss (ssget))
/ K @5 I6 ^( q9 \$ s6 v: N3 y8 Z* ] - (command "_.draworder" ss "" option)$ I# E/ O3 E, L
- )
4 j* F" K+ g9 A' H" s, u" i; r - )6 B9 X$ C: M& ^/ P5 A
- (ai_sysvar NIL)& B/ i7 e9 K1 Q. L
- (setq *error* m:err m:err nil)
8 \! v5 G y/ z: A5 k( h - * m8 o, q) _$ P, @/ F
- (princ)
3 A8 G/ [# g; H% x8 p3 H - )
. V1 [4 S$ U2 ]9 ~' h0 Q; @ - . D. q0 H6 I6 o2 m3 ?; y( p- a. ^/ `% x
- ;;; Command version of ai_draworder to be called from the CUI9 M3 p- X! B+ e( G: j ?
- ;;; so it gets properly recorded by the Action Recorder
$ V& V7 [# @0 P - ;;;
. h5 O4 N- x f" c8 Q* ~3 d w - (defun c:ai_draworder ()" E" u" s6 E7 e4 _ G }
- (initget "Above Under Front Back")
2 H- \3 A& d5 Q# z" C% G - (ai_draworder (strcat "_" (getkword)))
" b& V( t" p% I+ A2 F) O) s% v - (princ)! w( z8 G' a* i; v: g
- )
# X% t* B# ^7 [
' A. x1 d; p Q }. g2 l; E- (defun c:vlisp ()( [3 P9 x+ U: E: i4 d
- (if (/= nil c:vlide) (c:vlide))! M8 ~3 ]! R3 E+ \. g; R/ q5 ^! \4 g1 V
- )
\6 u& }& o3 J0 {
# m. k0 L& i1 w I2 F5 m- ]4 N- (princ "loaded.")+ G5 f: r# ]& x Z! y, D6 _
- ' b4 ?; V% b. ~3 x' T2 U
- ;; Silent load.
; H b, H! i, D3 z9 T - (princ)4 J3 D R9 }* \9 | S+ l0 {1 U
- ( F& l6 X8 u& R4 Z: Z* }/ z1 y
- ;;;----------------------------------------------------------------------------0 A' X9 O2 I9 v4 _/ |9 v9 p
- ;;;/ H, E) j2 _) u- R) n# B. E
- ;;; DDCHPROP.LSP Version 0.5
9 b c3 \& d( m3 }6 B - ;;;
- q6 M6 X: q v- H* t - ;;; Copyright (C) 1991-1993 by Autodesk, Inc.
7 C$ I$ D, @- f d5 l4 `) @7 d - ;;;7 M& z# S) W# b1 P/ }& u9 Q
- ;;; Permission to use, copy, modify, and distribute this software
0 ], w3 i) h; Q- {6 R - ;;; for any purpose and without fee is hereby granted, provided
7 y3 }) [$ p* D: v& p - ;;; that the above copyright notice appears in all copies and that* J. g7 Y3 O; F" G
- ;;; both that copyright notice and this permission notice appear in" g5 ]' }- R+ f
- ;;; all supporting documentation.
, [0 S& \7 u# o3 V, ^# h4 V - ;;;
7 k% I( l U, U* y) F - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED
8 z' s/ L3 d& \; R$ l5 H - ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR! `6 G+ o) {9 C7 ?! a
- ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.# M2 I' G$ M/ w
- ;;;
* L! j8 y4 T$ V& F0 [- D' v - ;;; 2 February 1992/ \ }0 U* ?1 j8 _* o
- ;;; : x" B) ~+ ^% |5 _! s( D
- ;;;----------------------------------------------------------------------------3 I5 O3 l }7 ~9 X+ w. K
- ;;; DESCRIPTION
0 k9 w0 T2 \+ ^! D - ;;;----------------------------------------------------------------------------/ i* w0 w; k8 y3 z* E1 @1 C
- ;;; C:DDCHPROP is a dialogue interface for the CHPROP command.
6 f6 Q/ V. ~" F/ I& S l8 h - ;;;
/ c& e3 j6 w% u; i; X - ;;; The command looks similar to DDEMODES. The main dialogue has an image
. s9 g1 R+ g# ^3 K1 d" N - ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness).
: q* C0 X q: X* _# a7 Y, x3 X - ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box. . @! ]$ C. O7 Q1 i7 Z0 x$ a" Q
- ;;; The dialogues are all defined in the DDCHPROP.DCL file.) I! o& m3 m" F+ H' X3 I
- ;;;
) K, r s; N& x3 T - ;;; q z z- J" c/ m4 q& z+ n7 g
- ;;;----------------------------------------------------------------------------
4 ]2 r3 G/ p; ~ - ;;;----------------------------------------------------------------------------6 V, {- W3 z) A5 ]/ Q r' |& p
- ;;; Prefixes in command and keyword strings: - o; ], a3 p* N# G, }, @- b
- ;;; "." specifies the built-in AutoCAD command in case it has been : T1 T/ U, Z) o: f6 o" u& s
- ;;; redefined.
0 J8 M' _. V/ a0 r2 j - ;;; "_" denotes an AutoCAD command or keyword in the native language
; w! w3 d/ F7 F( m - ;;; version, English.% N. @ b6 K0 ]4 T: g! g
- ;;;----------------------------------------------------------------------------0 J. z9 f1 V: [" |% ~+ z
- ;;;0 R. i% z8 \1 ^9 Z. g% l1 t2 z
- ;;;
# W5 T8 u: [& `' \+ z - ;;; ===========================================================================
3 I* I7 H+ c2 T" \+ y) g) K* {0 o - ;;; ===================== load-time error checking ============================
7 k0 ^6 R$ m* M; {5 G - ;;;6 H ~- [3 z. m2 i( k9 s; U
- / W' a% h1 x+ X' m8 ]- X
- (defun ai_abort (app msg)
7 M! v% l9 V6 X' h; z; [9 } - (defun *error* (s)! H1 Y5 [9 ?3 O: y
- (if old_error (setq *error* old_error))
, h( c: @' v5 J+ ?( @ - (princ)
1 o* A7 J& u# S4 N' C# S& e - )
% z* m" l5 C! H# C+ A0 ? - (if msg
+ N; `% ^4 n( E: g; w5 a - (alert (strcat " Application error: ") f9 K' c7 R B- D- S
- app
5 {- f$ p* m2 ]- M% }/ j8 U - " \n\n "
i/ f O# z3 o - msg1 p; G1 F" C. ]6 |
- " \n"$ x9 [ K+ q$ C* X+ @4 n
- )
4 c- k& k6 A# M; q: U5 z" I - )$ O$ _6 ~6 h- e% e( [7 T5 u! m, j
- )
% A+ o% A0 A7 k4 ?# n$ z5 h - (exit)- T) {6 b0 I, P
- )- B( [& I3 A z; b1 M6 @- ~
0 ?+ F7 [; [/ B0 r5 W9 K- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,2 \" F# F( r1 }
- ;;; and then try to load it.
1 X# K. |, J% S: p! a - ;;;2 r/ D8 N6 a7 D7 s
- ;;; If it can't be found or it can't be loaded, then abort the5 p6 Q) M( f0 @) T9 x
- ;;; loading of this file immediately, preserving the (autoload)
3 B7 S! i. ]2 ?) Q' c - ;;; stub function.$ d2 T5 a& {9 D& G5 N) d/ n
( a+ {% n h6 W- (cond
' Y8 y3 J' D8 T - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
: S! K h5 S4 v0 U - 5 [ |( H3 E% ~1 v
- ( (not (findfile "ai_utils.lsp")) ; find it; T: \ P$ L {# R4 H7 D
- (ai_abort "DDCHPROP"
9 b% U' {. m* O. d - (strcat "Can't locate file AI_UTILS.LSP."7 i) V: e9 V2 {' f/ N
- "\n Check support directory.")))
# y. T# i0 |! ] - 5 m+ K( W% y7 u0 [3 N& L
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
|% b0 D$ S: m; Z' @; `# t5 B - (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))
( E1 J# ]9 e X2 s) O - )
6 H6 ?$ {# S5 ?; H - # a, y8 A% z+ }' r
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP& g( d" I$ S9 n' j
- (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses
1 v0 {$ p( N- t4 h9 D& t - ) ; ai_abort's alert box dialog.9 G1 C' o$ A _* [% T
- 2 J; R3 o7 t h) h e# d$ p
- ;;; ==================== end load-time operations ===========================
7 V/ X- Q7 X( ^. h u
- o3 Y5 A4 i2 L; P" t- ;;; Initialize program subroutines and variables.
" X; y5 j! W3 _
7 B4 q- k A8 w9 p- (defun ddchprop_init ()/ n: N" B# |' d
- . u2 I$ N; ` }
- ;;6 E' r" L; c4 l# E5 S, t
- ;; Define buttons and set values in CHPROP dialogue box
" f. q- a6 N7 K - ;;: h- z2 W; c& f
- (defun call_chp ()
6 `6 B. @% H" V3 O2 T; W - (if (not (new_dialog "ch_prop" dcl_id)) (exit))4 U+ F4 g* W3 U; S6 j7 _) }# v( Z
- (set_tile "error" "") Y: k4 y) C+ H# y& R
- ;; Set initial dialogue tile values
! z4 }5 i: L: u/ ` S* T' R4 d* n - (set_col_tile)
( D! n% ], m7 `* ]2 z - (if (= lay-idx nil)
, O+ }, s# A6 C4 S0 y" d/ F! S - (set_tile "t_layer" "Varies")
- A3 z! E& g" l$ r: g( k2 G - (set_tile "t_layer" (nth lay-idx laynmlst))) S: b& O) L' y [& X
- )
% s' [* b7 s# G" h2 a - (cond : N& Y2 H& y d8 a) }: |
- ((= lt-idx nil)# {0 W5 S& d0 X8 I4 l3 @( |
- (set_tile "t_ltype" "Varies")* z4 Z( U+ b8 M5 c: i7 v* I/ n" t m5 w
- )
& T' f4 N" d/ i; r - ((= lt-idx 0) ; set tile "By layer & layer linetype"
# ]: `) G, p. G/ ` - (set_tile "t_ltype" (bylayer_lt))
+ `4 Z5 @1 s7 f/ f - )
0 Q; D/ C, h: T; P - (T
) @; |4 y" p9 Q4 p0 E/ K1 b" v - (set_tile "t_ltype" (nth lt-idx ltnmlst))
. m m8 r# E9 _' N - )
) P* [& P& |. U. m0 u/ W - )
1 w+ |; c) o' e1 s" [ - (if (or (= ethickness nil) (= ethickness "Varies"))
) A" G4 e' Y0 w, x; w. f* |9 E! c - (set_tile "eb_thickness" "Varies")$ m# r1 u) _: b3 o. n" k( X
- (set_tile "eb_thickness" (rtos ethickness)): F3 g: R9 L! e4 W, ]5 W) c! ~- r
- )
5 ^* o) ?" P/ [8 f9 C - ;; Define action for tiles; E1 A w; n1 e4 l& x$ m& D R A8 J
- (action_tile "b_color" "(setq ecolor (getcolor))")- ]# v1 Q" b* Y
- (action_tile "show_image" "(setq ecolor (getcolor))")3 N7 q0 s/ c5 Z, L
- (action_tile "b_name" "(setq elayer (getlayer))")% K/ D, w/ W }: ~5 `# O
- (action_tile "b_line" "(setq eltype (getltype))")
& t |, [2 u. L+ Q) \! L& z - (action_tile "eb_thickness" "(getthickness $value)")* d( g6 }# |$ \2 X
- (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")" T& Z5 a- g* K- }9 s/ K
- (action_tile "accept" "(test-ok)")
: w0 o6 l2 k9 l) o! I" A: y5 F" a - (if (= (start_dialog) 1)
/ m+ w3 W: X1 r - (progn
! G6 N3 Z& Y! ^4 G' i - (command "_.chprop" ss "")
( r% g. E- _# Z% m$ b; h5 d - (if ecolor
8 P! W5 I5 g% c" P8 ] - (progn9 r7 ~& f, S) n7 p' Z- K# h
- (if (= 0 ecolor ) (setq ecolor "BYBLOCK"))
9 Z! _- l+ H2 |& \$ H - (if (= 256 ecolor ) (setq ecolor "BYLAYER"))2 V. J5 o; C+ T* j' a
- (command "_c" ecolor)4 ^! V* T& v* V$ \1 Q$ O) M" L% @
- )
/ T; B& O- F% T4 M5 [8 h+ J* A - )
4 h# Z2 U' u* x% c - (if (and (/= eltype "Varies") lt-idx)
- L2 [2 N& v0 m7 q+ l+ Y" W- } - (command "_lt" eltype)8 p; Y$ m4 h: y4 f# c E" W
- )
! v0 o, c7 F2 p% \8 l4 g* D+ } - (if (and (/= elayer "Varies") lay-idx)& \/ Q( l( }. X* I o
- (command "_la" elayer)- [6 Z; c7 _( ] D5 A) U x
- )
2 K! F. H( X+ s! y# Y - (if (and (/= ethickness "Varies") ethickness)& T- ?5 s$ v1 `+ U% m
- (command "_t" ethickness)7 O: W3 h& Q7 L+ Q* D
- )
4 D8 _% Q$ b7 b' w& W* y - (command "")( e" t" M* J3 C, ]3 w9 C0 U
- )
0 M' @' Q& I! o: }( t' N; p - (princ "\nProperties unchanged")& f4 @7 o' N1 }/ V/ y9 e T4 r
- )
( `% i+ C( D. Z( C6 Q& c - (princ)! u4 J( A) Q8 u# {; t5 z D. h* W
- )5 |; }) l6 E7 P A6 j; H6 I
- ;; A+ b3 J, d- I# y/ q
- ;; Function to set the Color text tile and swab to the current color value.6 l- {- |% Z/ K! p/ F r
- ;;7 n! Q$ N6 U$ D, g1 T
- (defun set_col_tile()
% I$ Z% l& ~4 D4 N- T5 \( D - (cond i% ?" u" \* u0 s. ~* y3 V9 [
- ((= ecolor nil)
) w) l) h6 T5 ?9 _: R - (set_tile "t_color" "Varies")% v( U* I% @$ Y: |7 @
- (col_tile "show_image" 0 nil)
1 G2 ^, Z& B$ }+ _: A: B- J - )
$ d; l9 u1 n8 ?0 l - ((= ecolor 0)
: T/ A, H0 W# q+ a. |* H d4 J( ] - (set_tile "t_color" "BYBLOCK")
" P7 W1 }$ Q# q& a8 X - (col_tile "show_image" 0 nil)+ R/ `6 Y% \: j; ]& o7 V
- )
- U P9 W/ {* H - ((= ecolor 1)- Y2 m: e/ R$ \$ L5 z
- (set_tile "t_color" "1 red")- ]2 C# X( h, y
- (col_tile "show_image" 1 nil)7 G$ y% z- w F# E/ T* W
- )+ N0 p5 `3 O/ b1 {' Q# }- @7 G- ]9 H
- ((= ecolor 2) R8 d/ c. O+ u/ S
- (set_tile "t_color" "2 yellow")
* H4 Q7 z2 H! k1 E" D+ i# z: { - (col_tile "show_image" 2 nil)5 m1 ^' N) q- q9 t
- )
- o4 \5 b: R) J2 A+ P0 m - ((= ecolor 3)6 e+ A4 U6 Q9 S' D) p
- (set_tile "t_color" "3 green")- }* S/ F9 b& w; H
- (col_tile "show_image" 3 nil)$ m% k. r/ p8 g6 M' n! Z
- ). m" |8 r/ m: O" V* s" q- i( R
- ((= ecolor 4)' z6 ^% m" n3 C5 `- q
- (set_tile "t_color" "4 cyan"), _0 U" E. O) v: S
- (col_tile "show_image" 4 nil)
- _7 W" {1 K5 d$ w7 m4 s- r/ J - )% g9 D7 [( U2 j% }: B$ ]
- ((= ecolor 5)
6 v: ^0 z" L! \ - (set_tile "t_color" "5 blue")
0 y9 X+ @+ Q. Q1 J: d1 \, N% c - (col_tile "show_image" 5 nil)
% r3 a- J8 `5 z. o7 |$ Z9 \+ M: I Y - )5 q2 o) A- y. g: \- W
- ((= ecolor 6)# h7 ~/ Y5 m7 L
- (set_tile "t_color" "6 magenta")% }- ]$ t: A$ b8 x j
- (col_tile "show_image" 6 nil)
\6 e: k' h ?# R( w; \ - )
- I ]: s+ ^3 m$ U6 J& ]3 r - ((= ecolor 7)
( d1 E1 h1 y& E$ C - (set_tile "t_color" "7 white")& U1 M U3 i, R7 f
- (col_tile "show_image" 7 nil)
; l2 J4 v$ o0 r: C4 `1 ~ - )1 z9 I) _* N! T: r8 W
- ;; If the color is "BYLAYER", then set the tile to
. w. H( u( W1 l8 [. B - ;; show it's set By layer, but also indicate the5 s. B0 }" @. e9 D2 J0 X" P
- ;; color of the layer - i.e. By layer (red)% h7 N1 ^ K: O
- ((= ecolor 256)
( y5 G; R* o/ G - (set_tile "t_color" (bylayer_col))) g4 D* ]) k1 c1 Q& L2 @$ p) y
- (col_tile "show_image" cn nil)7 G& }# f: o' r0 v0 j* L
- )
" B6 K- z0 D( R# H) T( x8 ^ - (T % g6 m+ }4 g5 ~. M
- (set_tile "t_color" (itoa ecolor))
( j- s) P$ I) O5 @ - (col_tile "show_image" ecolor nil)! A6 V9 I; N, x1 v. p' M- c
- )4 S8 V! _; Z8 K( G/ U, ^) M3 n& j. M; Q
- )
6 W* T: B6 F, F; C - )
6 q' p1 r% Z; z, f1 a: m - ;;% ^& S1 y. y, T+ H
- ;; Function to put up the standard color dialogue.
4 I; A3 I, L+ y9 N! n4 r - ;;4 n4 C$ k: `; O( H/ t3 ^
- (defun getcolor(/ col_def lay_clr temp_color)1 b6 ~' R1 ]# \
- ;; col_def is the default color used when rq_color is called. If ecolor 4 H+ E: ~4 |/ Z& l4 n' F$ X
- ;; is nil (varies) then set it to 1, else use the value of ecolor.
% W9 }! B/ _2 U( M3 x - (if ecolor" Q: W; b6 \1 C+ g
- (setq col_def ecolor)( F: |9 i( E! r# L. X
- (setq col_def 1)( ~ T5 h x7 ~3 H8 z6 M
- )/ ]/ b. B2 W4 x* _2 ^
-
8 e( V9 n& f+ x; m. ^ - ;; If we're working with a single layer, get its color
# k2 O! [4 G5 r- v - ;; for use in the color swatch if the user selects color BYLAYER.
% B4 _' h+ G0 I) O - (if (/= elayer "Varies")
, j$ k1 J* D t0 v - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))) N; P/ o& J- Y
- (setq lay_clr 0)' E. h, W+ M4 w* F+ U: g3 U& I3 _- y0 S
- )9 F: s8 @& D7 n: p% W
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
, c [+ O& b, v" D* W - (progn: J- y3 K) M3 r( d+ f! I
- (setq ecolor temp_color)* @$ J1 B$ \9 ?, t+ u: i
- (set_col_tile)
( d, X9 S& }0 ?% } - ecolor5 {% ]1 h5 v) Y9 q
- )$ \4 |, Q: z6 c
- ecolor
; z2 }3 C' a* H' J$ Z/ k% x" ^+ M' G - ) & v: V8 t( b% r3 w j3 U( G
- )
4 @' q6 A# e3 _8 ]! X% L! V6 p - ;;
- T( d- A$ ~1 G% \4 |: y; M - ;; This function pops a dialogue box consisting of a list box, image tile,
! h L7 }2 Z+ R' V - ;; and edit box to allow the user to select or type a linetype. It returns
/ u* H) b4 V- P4 t& B - ;; the linetype selected.( U% v+ N$ Z; @& q
- ;;* ]/ ~( q3 f9 a7 ]+ Z4 n7 ~! M7 p
- (defun getltype (/ old-idx ltname)0 Q9 a; z4 d+ c; u$ O
- ;; Initialize a dialogue from dialogue file- b. N1 C* r3 X5 N$ h$ a
- (if (not (new_dialog "setltype" dcl_id)) (exit))
$ ?- k1 O0 }& f; k& @" r0 V/ ] - (start_list "list_lt")
% K9 t6 \3 f- J; Z% U - (mapcar 'add_list ltnmlst) ; initialize list box6 ]9 O B9 T7 ~
- (end_list)
, s- q$ C4 ?! F/ ?: x1 e - (setq old-idx lt-idx)
/ l% y1 X u' G+ c2 @ - ;; Show initial ltype in image tile, list box, and edit box
: F' g' P% n0 b+ y1 e6 b - (if (/= lt-idx nil)+ a0 B U" p% V9 |+ n. V2 C8 Z* `
- (ltlist_act (itoa lt-idx)). L. i& f9 I1 w0 `3 M
- (progn
7 P% X% S- {2 I4 E6 a - (set_tile "edit_lt" "Varies")) d" X+ H9 v) [) @- r. Q# M |
- (col_tile "show_image" 0 nil)
. ?7 ?% N y5 h# r) c# y; n# ] - )- [" Q$ X+ k1 j& ~! d6 q. Z
- )
& a. Q% Y' t/ l0 x. X a - (action_tile "list_lt" "(ltlist_act $value)")
6 R( C! Q! U% [) i - (action_tile "edit_lt" "(ltedit_act $value)")
- e' L" L R4 U8 X; u - (action_tile "accept" "(test-ok)")1 K E: K [! y' N
- (action_tile "cancel" "(reset-lt)")
8 }" H2 r2 D2 p3 E4 m& Q - (if (= (start_dialog) 1) ; User pressed OK
$ n. Y# }4 M8 ]% c5 i" m! v* E% n$ P1 e - (cond ' v) Z7 G5 V5 z- c* t; J) x
- ((= lt-idx nil); `- J, |" i6 v% l/ g
- (set_tile "t_ltype" "Varies")
0 _4 L t. b/ _7 d K+ { - "Varies"% Q, b# ?4 t5 @0 B
- )8 l; u* C2 r0 f
- ((= lt-idx 0)
7 \5 g ]* ^2 Z5 H# ^2 G/ J - (set_tile "t_ltype" (bylayer_lt))
6 ]' V$ l1 n) W - "BYLAYER"% ^5 ]$ X1 K% q3 U
- )! n* s* {' h8 ], ~8 e; }7 j, M
- ((= lt-idx 1)
; G7 }* _( C0 ]1 C* b' Y5 R - (set_tile "t_ltype" "BYBLOCK")
5 N# [7 D7 B6 y1 ?( h: U - "BYBLOCK"0 _5 t6 S; g& a$ f4 q% ^. a
- )! f2 H# Z3 _, [8 t5 f6 o
- (T 8 L, f8 D& A- |! r6 @
- (set_tile "t_ltype" ltname) & o }3 ]/ H* L; |1 U
- ltname; c" X- S3 K/ Q" d3 g1 P! w- @% x
- )# f2 K/ ]% m# n% Z# G# I3 S
- )
% ?4 U. [8 o' d ?8 o - eltype
7 [5 l7 p8 ~8 B+ G, x" ^0 n - )
' m$ A) j" f' X+ |! {/ j - )1 F/ l6 ~ p$ k/ q, a
- ;;% d, ?1 M+ H8 F2 h R
- ;; Edit box entries end up here
) h( J; p# P# R# M, k0 h - ;;
7 |9 o- O: d, A K - (defun ltedit_act (ltvalue)* F+ m" a1 Q% K g' U/ @
- ;; If linetype name,is valid, then clear error string,
1 {! p5 k& u1 ]0 b0 u! z( \4 | - ;; call ltlist_act function, and change focus to list box.
; y2 \! n2 F) b- A2 ~: u - ;; Else print error message.
+ ~% d. n8 G- b! `( L1 Y) h' W' H$ E - (setq ltvalue (strcase ltvalue))- f% r+ m/ @2 V3 c; |* r! r; r
- (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))0 W X8 O' y/ V0 E
- (setq ltvalue "BYLAYER")
& N+ g; |$ R( t$ g8 |2 T& N - )
( d) n! O: W& Q `3 Q& E - (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))6 o# J1 x+ w w# Q7 J3 t* e0 G4 ^
- (setq ltvalue "BYBLOCK")! D9 F) ~! n0 i V
- )' ^. a4 A# P5 `" s" t2 j
- (if (setq lt-idx (getindex ltvalue ltnmlst))5 x+ @3 D+ O2 C, _" {% _4 R9 |
- (progn. ]) q& b# z5 b9 N
- (set_tile "error" "")3 m8 E( E2 K! H
- (ltlist_act (itoa lt-idx))
' d; L: M/ ]2 b( N: w - (mode_tile "list_lt" 2)5 ^7 h; C/ H& F, P4 n: a% H b
- )
0 _$ h/ ?# u1 O7 N - (progn
5 ~ v+ Z, I0 C$ X( ~ - (if (/= ltvalue "VARIES")
6 @ m7 U6 h/ L( e8 ` \' C - (set_tile "error" "Invalid linetype.")& m, U: Z7 ^" g1 x l! {
- )
/ V( i/ f1 g8 g" e/ _; `9 P4 p - (setq lt-idx old-idx)' q: w1 Q2 Z5 a: X$ ]
- )
. T4 F# X- n3 b$ i8 C% t2 C9 L - )
; C/ b( R' r/ A# h r5 G/ y - )
2 t( S6 L9 G% | r, s0 F - ;;
+ N, e! A6 N! O# n- d3 F. \0 ` - ;; List selections end up here
# n7 K0 S. V! {" n - ;;
, P' p$ @# s, ~) c6 r9 v - (defun ltlist_act (index / dashdata)
; O' h1 I. F3 e - ;; Update the list box, edit box, and color tile+ ^- h% l) g6 K* V
- (set_tile "error" "")0 K; q7 z5 d' h$ x/ n% V
- (setq lt-idx (atoi index))
& R5 `6 `! z* D7 o4 M8 z - (setq ltname (nth lt-idx ltnmlst))6 u9 P2 y3 }5 V& \
- (setq dashdata (nth lt-idx mdashlist))' ~7 N0 V N4 j, |, y' c2 g
- (col_tile "show_image" 0 dashdata)$ P3 D0 h! d; e+ d6 n. j
- (set_tile "list_lt" (itoa lt-idx))
# G5 L1 g- h' Z8 o3 G' v5 O% C3 d - (set_tile "edit_lt" ltname)
, Y8 Y+ g. m! M - )
7 N$ {3 N" g7 a3 Y( j - ;;( L/ C( W( L+ {; _! x
- ;; Reset to original linetype when cancel it selected
: T5 |5 C' _3 S- S - ;;
5 E' J5 `/ s& I0 l3 D; } - (defun reset-lt (). `' j- _1 k* T+ {3 c F
- (setq lt-idx old-idx)
' i0 l9 _3 l9 z+ k# H( F - (done_dialog 0)1 O1 C3 L E) ~/ S" I- D
- )8 E0 B) D9 s L2 y S
- ;;$ P" |/ l- x# d7 R2 [
- ;; This function pops a dialogue box consisting of a list box and edit box to
4 p9 o1 G3 I. N; g - ;; allow the user to select or type a layer name. It returns the layer name 7 s9 r+ n( b; v! X& U3 u
- ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the
+ S1 L6 n R" c: K$ } - ;; drawing.( o7 H' h: g: _1 a4 l! B
- ;;. Y- F! O& v4 P) g' H
- (defun getlayer (/ old-idx layname on off frozth linetype colname)
- T; s% R4 s* M - ;; Load a dialogue from dialogue file
, k2 Q, X" ` \4 o6 k' Q - (if (not (new_dialog "setlayer" dcl_id)) (exit))$ ]" M7 t* p: [8 I& ^' m) ]. [/ e
- (start_list "list_lay")7 b7 n9 ~" Y6 A; l9 @/ z
- (mapcar 'add_list longlist) ; initialize list box9 f4 h5 O' t, ]0 n& \) P
- (end_list)! e- w5 n8 U2 z# L
- ;; Display current layer, show initial layer name in edit
# C) D9 |; C8 T. u& [: \4 s - ;; box, and highlight list box.6 Y, \3 M6 X4 E& @
- (setq old-idx lay-idx)
/ a C C, e* I( o0 ?4 ~7 T - (if (/= lay-idx nil) (laylist_act (itoa lay-idx))); {8 ^) L1 s$ m7 N( s
- (set_tile "cur_layer" (getvar "clayer"))
6 V3 f6 M A( |( b5 J4 b$ H2 q5 @ - (action_tile "list_lay" "(laylist_act $value)")
' m! ?/ ~# V [& A% N$ l( F - (action_tile "edit_lay" "(layedit_act $value)") r5 ~" G5 Q' s: b$ {1 D
- (action_tile "accept" "(test-ok)")
" t% d- n! C3 d) a% L' \ - (action_tile "cancel" "(reset-lay)")
( Z) }0 y: c7 N8 { - (if (= (start_dialog) 1) ; User pressed OK
. s* }5 k: P0 U2 N5 q3 o - (progn. l+ B" }0 Z) X7 V( g
- (if (= lay-idx nil) (setq layname "Varies")): ^9 X. Q# }( c5 Z0 W* C x
- (set_tile "t_layer" layname): W* M+ i8 M6 w5 I9 p
- ; If layer or ltype equals bylayer reset their tiles
( v& @# E% K) d, g- `0 { - (if (= lt-idx 0)
; D7 S: U3 W+ Z; A4 r - (set_tile "t_ltype" (bylayer_lt))
$ e( V* y2 j) n+ h5 o - )2 U+ {' t/ o, m( @ b
- (if (= ecolor 256)
1 B# r: r- m" E" m7 q* [ - (progn
( u/ s& r( D+ b$ i6 {. F1 x& ] - (set_tile "t_color" (bylayer_col))( R& \( U% i# M% z0 U7 a% S' y
- (col_tile "show_image" cn nil)5 E8 V6 H l! C- U+ A9 u! ^
- )
3 d+ }/ p6 a1 K0 B - )3 _$ L/ ^9 ?/ h+ k8 J3 z
- layname
* L& L' H6 p* c) V T. g - )! ^/ j" f$ `1 J( u: \
- elayer. U: \3 Y7 g" ]+ Q W
- )4 C7 O9 v" w& ^/ y9 `3 k4 y, X
- )
7 r% ?4 b! F8 _+ c0 h - ;;
( I. h0 C/ ]$ \* D7 q) Y# h - ;; Edit box selections end up here v: ?% m8 T# w
- ;;' S, u# U/ w) F0 I# I7 _
- (defun layedit_act (layvalue)
! O$ o) z. O* i( L. n - ;; Convert layer entry to upper case. If layer name is
2 }; b, {( Y1 a& o - ;; valid, clear error string, call (laylist_act) function,
, t6 g( A! ]+ ] i. X+ v, l. G - ;; and change focus to list box. Else print error message.5 E2 [3 C0 R. J0 i5 @0 B
- (setq layvalue (strcase layvalue))& r( e. \( ?0 U% [; o# }
- (if (setq lay-idx (getindex layvalue laynmlst)); f; V) v& D" Q. r H/ H( K- e
- (progn6 H/ f, ~" P3 H6 I: z
- (set_tile "error" "")
& i+ L+ w* x# }! l$ `9 N$ V( J - (laylist_act (itoa lay-idx))
% X/ v6 x9 @! W/ u1 y" G' T1 _ - )
& D0 H/ Z" ^& H: x0 r. x - (progn
) g, z( m: @- j/ h& n' P5 M2 z - (set_tile "error" "Invalid layer name.")$ L/ e" d2 k7 Y, L) g0 c
- (setq lay-idx old-idx)& J/ X. A P0 ~3 p4 j# m4 m |
- )* W$ F2 g* y3 a2 _
- ); o0 r9 W3 @5 P, g8 V$ |
- )5 ]( S4 a" T) M% f, ?
- ;;
1 J% J; d8 g6 j% \3 T4 m- ^" J3 k Q - ;; List entry selections end up here
3 a$ E) [& [8 ~7 K g% ] - ;;
. R) L9 e, V# P2 }' E - (defun laylist_act (index / layinfo color dashdata)
- R, l6 ]1 L3 Q+ E! _5 A; G - ;; Update the list box, edit box, and color tile. a; f) ]. {9 c1 l, U2 p' R
- (set_tile "error" "")4 s1 @9 l9 Z) o& h% t6 f
- (setq lay-idx (atoi index))3 n P* i( _. ]6 h
- (setq layname (nth lay-idx laynmlst))# D. s8 P7 x1 D8 J' Z
- (setq layinfo (tblsearch "layer" layname))
& D" A1 y( @3 l+ P - (if (= (logand (cdr (assoc 70 layinfo)) 4) 4)
: o# Q) z3 q& m - (set_tile "error" "Cannot change entity to locked layer.")
4 \ O5 L7 z7 g2 M - (progn+ `9 F' T- H* _& ~6 P
- (setq color (cdr (assoc 62 layinfo)))
' j& v$ }6 u2 e I+ s - (setq color (abs color))1 i: G O) X3 X J) K3 Q' b
- (setq colname (colorname color))
4 l# q7 }0 G$ e5 N: T3 e% T - (set_tile "list_lay" (itoa lay-idx))
' x4 l9 a5 F( O9 ^5 K: T - (set_tile "edit_lay" layname): f# d) J: [) {( b
- (mode_tile "list_lay" 2)
% M; a: m1 t6 t2 L6 n. w" b - ): H2 ^4 `# s8 {/ M! b) y/ C
- )+ O' W, y# R/ o3 Q& U( x5 U7 D s. A
- )) `) D: n( ~, j1 ] j; X1 p
- ;;) N: p/ y* X# T1 \
- ;; Reset to original layer when cancel is selected# h: I y; Z: R
- ;;
: B6 u7 A$ j/ d0 ~4 E. i4 K( x* S - (defun reset-lay ()
- N0 X# P% j) O& w1 p - (setq lay-idx old-idx)1 M. X8 c. z- i5 \2 z
- (done_dialog 0)
9 x- z! B6 x% g& C2 G x - )* }, a; `! I/ Q) g( P% E: W8 h
- ;;
3 ~% g8 l% I+ { - ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
& q- }6 s. N- U/ c - ;; string can't be converted to a real, this routine checks if the first 5 x$ E9 {3 O3 P
- ;; character is "0". It also checks to see if the value equals "Varies".. p; _$ k. x! ~* d% \
- ;;; w# l. ]( D# g+ O
- (defun getthickness (value)
. ^" s. h1 r5 w - (setq value (strcase value))
$ v1 V' q/ K9 X7 L) Q3 c - (if (or (= value "VARIES")
2 D0 r/ T& ?* a% [ - (distof value)
( K' h+ |" N( Y- `0 Y0 e - )
# E: T6 u6 `* d - (progn
4 V/ E$ K( B9 Z6 t& ]8 o$ R5 b8 \% Q - (set_tile "error" "")) y8 l/ D$ ~; k, c3 O- R9 W% |
- (if (= value "VARIES")
2 A. e- z+ e0 k& t P - (progn
5 W3 |8 G6 N7 S- N( h - (set_tile "eb_thickness" "Varies")
) `3 a+ }$ S2 \- r% g - (setq ethickness nil)$ l9 h) q; Q1 h$ V6 v- z* v/ P% h [
- )
- F; G5 b) Z! g: S: Q - (progn
6 G7 E, N* k( C0 R1 E- L6 y - (setq ethickness (distof value))
0 U2 w' a* X) |' J! _ - (set_tile "eb_thickness" (rtos ethickness)) c* ~/ L, M9 V+ U9 U8 ?6 F
- ethickness$ ^/ ~ `9 {) L1 d* V& a
- )
2 G/ M/ Z5 H0 c% h6 @! G# N - )
/ A, K4 R/ X# n - )
% g2 u; b! B! D; ~& |) ` - (progn* i( z. P! e1 o5 v. }
- (set_tile "error" "Invalid thickness.")$ V2 G$ w2 m1 F6 E6 e/ |
- nil
7 I) Y# s0 H/ F+ z# [0 M3 Q+ R - ); ~. ^- a6 U: y6 X/ q P
- )
3 T) r3 ?6 l5 |9 z - )0 Z8 T2 w, }4 k$ p* M0 y
- ;;! |2 A' R C( L/ B
- ;; This function make a list called laynmlst which consists of all the layer
3 c1 q' X6 a& h* B) T0 }/ n; p - ;; names in the drawing. It also creates a list called longlist which , \- k5 T# G7 z3 S/ R5 d# F
- ;; consists of strings which contain the layer name, color, linetype, etc.
K* X- C: K4 `4 \ - ;; Longlist is later mapped into the layer listbox. Both are ordered the ( _) g, r3 G& m+ Q$ t
- ;; same.
( f4 ]9 G8 x/ b: ^. o - ;;
: x$ ?( n4 W) g2 L# v$ I - (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname X' s; t$ V( f7 [: f9 a( N
- xdlist vpldata sortlist name templist bit-70 r0 y. R2 F- N" H) o! f
- )
" M# t* ^ W! t - (if (= (setq tilemode (getvar "tilemode")) 0)
; k. ^, D6 Z! d6 H6 C8 i# L4 A3 c - (progn
0 a" B6 N/ s2 A+ k - (setq ss (ssget "x" (list (cons 0 "VIEWPORT")
3 Z8 z1 C/ g' X: b: Z7 v - (cons 69 (getvar "CVPORT"))
' h, Y r2 b( `' r! ]7 g# Y - )' q; R& o' d; W
- )
) I& B7 W" E* l% d* N - ) ( H2 |* s% D3 L$ _3 [3 r) U2 ~
- (setq cvpname (ssname ss 0)): E8 S6 {% L0 ^$ q) ~( G, o
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))
Z S; W$ p! m4 w2 Y8 z - (setq vpldata (cdadr xdlist))
/ z1 A7 V# B' B: ?" t- F - )
% ~% K, ]/ b$ R - )' {7 s) r. z0 J V8 D
- (setq sortlist nil)* h l* D; ~" Q/ Z6 }, V- ~ t# M/ U
- (setq templist (tblnext "LAYER" T))
. Q# W5 p, n/ w4 @2 Y% j, L - (while templist
1 y) l& W+ A9 O/ U - (setq name (cdr (assoc 2 templist)))
; Q2 l$ }3 F, t! P - (setq sortlist (cons name sortlist))
9 W% B& f! l0 y7 D, k( @$ N - (setq templist (tblnext "LAYER"))
5 y M/ ]8 O+ G8 w& i - )
+ q- }" E4 H6 t% c/ ^ - (if (>= (getvar "maxsort") (length sortlist)). |1 ]. a% _* V+ o8 D1 Z
- (setq sortlist (acad_strlsort sortlist))8 P' q- D+ I* Y1 b$ g. E0 x
- (setq sortlist (reverse sortlist))
* W+ \$ y ~: J8 ^3 [- g8 I - ): B8 P; d0 }& O
- (setq laynmlst sortlist)
& K, q) D9 d) d) G- z" d3 ? - (setq longlist nil)
& Q0 W5 H) O) r* T1 U5 [; T - (setq layname (car sortlist))
+ q- P7 l* c8 A" F7 U" i* P2 O - (while layname0 h, d) J& q% B/ D, A+ z
- (setq laylist (tblsearch "LAYER" layname))
2 d7 z! {. v- h0 q7 X7 H - (setq color (cdr (assoc 62 laylist))); d2 B/ s% M1 [# w- F/ V1 A
- (if (minusp color)
% t7 G7 O7 U+ T+ g4 o8 Q2 M - (setq onoff ".")
$ Z( k4 y i+ c. j - (setq onoff "On")
. R6 m8 }6 T) ^& Y - )+ u+ p" b7 Y9 D/ Y# \* W* y; ]
- (setq color (abs color))
6 g( R0 O: x6 K) @3 Z6 Y - (setq colname (colorname color))
6 j2 N$ ~. T. [1 L; ?: c2 ~- z - (setq bit-70 (cdr (assoc 70 laylist)))( W- o9 e7 n4 J( X" P- N9 a
- (if (= (logand bit-70 1) 1); V9 D% D( t: Z
- (setq frozth "F" fchk laylist)
( W4 ~9 B1 G0 ^7 z' L - (setq frozth ".")$ d5 r9 w8 H8 j4 @ h) w6 Y& h
- )- U" L+ {. i4 N# {+ G. J( M+ O
- (if (= (logand bit-70 2) 2)( C' y' z, x4 G" X9 X
- (setq vpn "N")
- L- a! O1 b; {* y' @ - (setq vpn ".")
& i, J9 j; S2 y5 n; p+ L" W# t - )8 t3 N, S4 D6 d' J6 S6 C
- (if (= (logand bit-70 4) 4)! x! @% x0 T6 x8 r0 H
- (setq lock "L")8 C* S2 x4 ^ x, j$ Z
- (setq lock ".")* d$ n* ~& x" j- Y, x" L: R
- )1 Z9 h- s/ \9 y* T" n+ O1 s
- (setq linetype (cdr (assoc 6 laylist)))
' J& X. ^" x0 f3 z0 G) R: p/ j - (setq layname (substr layname 1 31))
! e" Z! K! n( [$ S - (if (= tilemode 0)
+ B6 K( m: A( Q4 r( y3 W0 B* v - (progn
/ o1 P/ ~5 e6 t, e9 [) x' ^ - (if (member (cons 1003 layname) vpldata); N! @+ Z: @' [6 i; Q2 q: F
- (setq vpf "C"). u ~0 a5 P; E
- (setq vpf ".")" l! l& v% O h: B1 g( r
- )
$ h9 R: s: d1 { - )$ b8 H3 M: ^. X/ g; p9 t' }
- (setq vpf ".")4 ?& Y; e! _( m- S5 f, b9 r
- )& Q4 K! r& f/ b: F
- (setq ltabstr (strcat layname "\t"! T+ t O& f, a# H
- onoff "\t"
' x6 m0 u( f1 P; ]$ Z% y - frozth "\t"8 }5 L. h4 G+ o& i8 g0 T& c, O6 s
- lock "\t") j- j% A6 G# l) ^3 _6 k4 A' e
- vpf "\t"
9 Z- }/ d" T: n! Z) N - vpn "\t": P8 g5 ^* j) w* n& h+ @
- colname "\t"
2 n! P' n0 O$ V, S$ R* [4 r6 Z - linetype2 c+ V+ y3 t! s/ T
- )1 A: E; I7 c8 z
- )+ E5 r* R6 c" |/ ^$ \: z# G! [
- (setq longlist (append longlist (list ltabstr)))
' x- x% w3 q7 Z1 I - (setq sortlist (cdr sortlist))6 [7 k" s' e* {7 T3 y
- (setq layname (car sortlist))# H1 n+ A5 k2 `5 u- E1 a
- )1 C0 w( W& O, R* N1 ^
- )
+ a& d9 ]0 t6 {+ i; k' q - ;;4 ?" f. H1 F1 v- o5 X& X
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of J( T; J% d& z, H; Z# O) ^$ l
- ;; linetype names read from the symbol table. Mdashlist is list consisting 6 |: M3 ?8 }- N7 h; D
- ;; of lists which define the linetype pattern - numbers that indicate dots,
. c% K0 I$ |0 E' i9 T - ;; dashes, and spaces taken from group code 49. The list corresponds to the
+ z( e" d7 V. m% i2 h- H, n - ;; order of names in ltnmlst.
( Z0 i9 C# Z2 t) D - ;;- q% v: O; y. D% Z; _# P8 R
- (defun makeltlists (/ ltlist ltname)% |2 s8 d- z! t) Z1 w. V
- (setq mdashlist nil)
1 j7 }! B2 C( c# k$ _! q5 d4 N% f( T - (setq ltlist (tblnext "LTYPE" T))
t7 _4 @: x+ L4 v& W. r - (setq ltname (cdr (assoc 2 ltlist)))
0 i( K# t7 i9 z; u - (setq ltnmlst (list ltname))6 @& o. t! n+ ]/ y5 P S. e. [
# ^' m! T$ R4 i4 P8 O- (if (= ltname "CONTINUOUS")8 N4 U2 T' H: k9 T4 v9 y+ V, P% q v' q
- (setq mdashlist (list "CONT"))
8 ~* ~% T! y. d- A0 | - (setq mdashlist
$ w5 ]$ ?2 L4 ~& j* ]: W( F - (append mdashlist (list (add-mdash ltlist))); Y0 \7 H [/ J4 {+ L5 u+ h0 S
- )
1 w2 `# `6 ~9 p - )
5 \6 \( R1 y8 s0 e - (while (setq ltlist (tblnext "LTYPE"))
\" r* }5 F' D, u" c: R# o! K - (setq ltname (cdr (assoc 2 ltlist)))
& }& n* ^8 }3 J# P+ N) E - (setq ltnmlst (append ltnmlst (list ltname)))1 t8 g4 F8 Q4 }' a+ m/ B8 q
- (setq mdashlist
6 t. m2 K- T* n0 ]9 e - (append mdashlist (list (add-mdash ltlist)))
, l3 V; o1 p, s* F$ h9 z - )
2 s$ R! L" M; W - )
; M3 p& o; H, M! Z1 y - (setq ltnmlst (cons "BYBLOCK" ltnmlst))
3 }; h/ A3 O9 c - (setq mdashlist (cons nil mdashlist))
9 S6 T, d; T& J* j6 c4 H F - (setq ltnmlst (cons "BYLAYER" ltnmlst))( n4 ?( `# j. X; ^" u2 c
- (setq mdashlist (cons nil mdashlist))' C! j0 E2 L t$ N- V
- )
2 \: T5 v L' o$ f$ ^9 q9 P5 Q) A - ;;
1 r4 [: S. y" E+ x- I4 S1 v* F - ;; Get all the group code 49 values for a linetype and put them in a list
4 f6 `8 G" |+ O- G/ t - ;; (pen-up, pen-down info)4 d2 c) R$ X) [" O
- ;;
: G% x, ^9 r( F1 I; b - (defun add-mdash (ltlist1 / dashlist assoclist dashsize)3 {+ [& Y, r$ u% M5 J) h
- (setq dashlist nil): i" r5 X [. v+ f& J
- (while (setq assoclist (car ltlist1))- x, y$ F3 `# q& s8 w1 w1 c I
- (if (= (car assoclist) 49)
, N! J/ s# _. @( M* d& S; C - (progn( ]& e% F! N7 \9 a
- (setq dashsize (cdr assoclist))& g: r2 z8 P3 ?* K/ U
- (setq dashlist (cons dashsize dashlist))
" v) h; x' u7 [0 G - )
" y6 |% R0 z5 j! l' ~* _ - )+ T/ L5 P4 W$ i. a
- (setq ltlist1 (cdr ltlist1))
8 f* x3 K( Y9 A: |% u( Q9 b - )
; q. D2 T- Y/ u) k - (setq dashlist (reverse dashlist))4 W+ b" D' J9 o
- )
/ e0 `9 V- E8 g! i' I - ;;
- r& v9 ]; [- G9 ? - ;; Color a tile, draw linetype, and draw a border around it% B& O/ P' O' F
- ;;
9 x7 Q. H- ] u) a# k - (defun col_tile (tile color patlist / x y)
* |3 r1 w, q# h- v - (setq x (dimx_tile tile))
7 k4 \( T4 t: }7 ?6 @- b2 ?4 g - (setq y (dimy_tile tile))# G) W; z2 _' g6 m3 ~" N# ?
- (start_image tile)
W9 y. t; ?! k( ? - (fill_image 0 0 x y color)
; U1 H; u( p o; G6 s6 M - (if (= color 7)
" C" d5 N( r9 k. I; E$ k1 t - (progn
# _% K( I" }+ m8 i - (if patlist (drawpattern x (/ y 2) patlist 0))
, ^, |/ [4 G, b: _; G+ S - (tile_rect 0 0 x y 0)- P. t" R; w1 r& U( l
- )
, a" R& @' S/ f - (progn4 D E3 H0 v- }0 ?
- (if patlist (drawpattern x (/ y 2) patlist 7))) @8 H: X {1 {. C0 ~7 d
- (tile_rect 0 0 x y 7)
3 o: `; m, N1 I( @ - )
& r, Z) w- b7 W' B, U& r4 v - )3 }1 i8 `" W E" o+ t7 V) T
- (end_image): a$ V. \7 S/ [: v m# D
- ): J* t8 b- @4 F' s$ M. Z# ]
- ;;: D7 Z% C+ G5 y3 }; u2 D
- ;; Draw a border around a tile8 Z9 H( r3 h9 `
- ;;
" z( f, u9 k& t) J: j - (defun tile_rect (x1 y1 x2 y2 color)
6 s( Q& X$ S2 Q7 O- u, \. ~ - (setq x2 (- x2 1)); l7 F/ `# h7 z# ?* \% O4 Z* F$ `
- (setq y2 (- y2 1))5 |% Q9 F2 H' m. H# F7 d* B6 }
- (vector_image x1 y1 x2 y1 color)
$ k0 R+ U' T3 K - (vector_image x2 y1 x2 y2 color)
/ [! ?) `6 f/ g3 F7 C - (vector_image x2 y2 x1 y2 color)" V' Y- H% y% q" E
- (vector_image x1 y2 x1 y1 color)- y, L6 o' s. T
- )
f: r k! {0 J! X0 u* |: v - ;;" X+ L/ [, o* u5 d# R
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
$ S$ ^! F, R5 q) ]& i1 G7 [7 O) w - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a L3 x6 L2 u& n$ D& h# d% f
- ;; list of numbers that define the linetype, and color is the color of the ) F e! j7 g$ P5 ?$ o: P2 J
- ;; tile.5 W! D# p9 k: Z" @* M! Q1 X6 H
- ;;' m( S) \. G& L# W
- (defun drawpattern (boxlength y2 pattern color / x1 x2
5 `+ {0 Y/ g1 C9 T: U8 v* O: e - patlist dash)8 F6 G, j6 c* q Q6 X& f: J5 b" r
- (setq x1 0 x2 0)
8 b! h0 O: d6 T' l8 t$ y - (setq patlist pattern)
$ S3 Q% j u9 q7 ?4 i7 N# I, q+ `+ s7 a - (if (= patlist "CONT")
4 U* y& x( ]% t, m# ] - (progn
, @+ t% z! i) x- G+ L r - (setq dash boxlength)- i6 }: Q1 ?/ H8 ?
- (vi)
! Z- a( ^8 G, r6 { - (setq x1 boxlength)" ^- |) S: M# K4 S" F; `6 |
- )
: I9 Q* {6 A8 R3 Y/ a' S. K& Z- \ - )" f! S: _, D) L/ a6 S- P c6 j
- (while (< x1 boxlength)
! x6 a+ m( _7 H* m8 Z( _ - (if (setq dash (car patlist))! ]& H; D S) s5 e" ]: a
- (progn+ G& |" T, l( m7 ?2 A; l, C
- (setq dash (fix (* 30 dash)))
1 E2 P2 o: ?. C( Z2 v - (cond
( Q7 M# o) J( K: q/ `. q0 K* v - ((= dash 0)
- x v1 z. H# [+ b O; y - (setq dash 1)
8 x% W$ Y: ~5 t9 D- M& e* a - (vi)
! C% @" Q, [0 K4 J - )
; n+ n) b- D5 S. b' B; O! M - ((> dash 0)
, _2 S6 |: k7 ]( o - (vi)
N" l1 L( R9 O2 t' o5 @ - ). \) d3 ^9 f8 m$ x3 \1 \8 L0 q4 g
- (T
0 m9 \! f$ ^$ ?) E4 @) O - (if (< (abs dash) 2) (setq dash 2))
2 \# |% E( l6 E - (setq x2 (+ x2 (abs dash)))4 ?, Z* M: T0 ] ?( I3 ]3 @
- )3 x- o |9 E8 J& Z& B- f
- )
4 W8 h* h% e7 t; s& { - (setq patlist (cdr patlist))9 R' ~4 L! d0 G# m. L6 g
- (setq x1 x2)( X% A0 I4 m- N9 L- z! g5 y- w
- )
, y3 v, X# q, j" n - (setq patlist pattern)( V' ^4 o- ]$ k: R
- )6 a, { R6 R# I) }, m% s
- )
1 x/ ?' i' ]7 D& ?0 F - )
' ?/ K ^% a3 x4 G# b - ;;
# K- J+ c/ W9 y* R- o s - ;; Draw a dash or dot in image tile4 |# B& V4 X: \; Y: D9 o2 h8 a
- ;;
% G( t- D y a0 S( s! n; E$ \ - (defun vi ()
4 R( p3 H+ S+ `% p+ J8 m, { - (setq x2 (+ x2 dash))& V! d6 E( W" O8 ^% \& L
- (vector_image x1 y2 x2 y2 color)6 Y( E* P$ M( m! s4 n6 H' \
- )- Y9 S; d) ~& z- c- _
- ;;
5 [- s5 [- k- F$ T! n3 h# n: i - ;; This function takes a selection and returns a list of the color, linetype,
+ N8 a6 x; W; d1 }% a o - ;; layer, and thickness properties that are common to every entities in the
5 k+ b4 I4 _ v7 }0 ^7 `1 f, g - ;; selection set - (color linetype layer thickness). If all entities do not , e. c: W6 t2 ^4 p% h
- ;; share the same property value it returns "Varies" in place of the 6 H1 l' T4 R6 K
- ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0): v+ I2 }- y+ g6 {
- ;;
* _$ K: \$ T$ n8 i e* N! T - (defun getprops (selset / sslen elist color ltype layer: D% O: }$ O' W0 F9 G
- thickness go chk-col chk-lt chk-lay chk-th ctr)/ ^) c4 c0 z! x# M: v1 ~8 V2 o1 i# h
- (setq sslen (sslength selset))
5 Y0 z, {6 L2 r! T, _/ a - (setq elist (entget (ssname selset 0)))' u* O8 \' b% i7 E; @
- (setq color (cdr (assoc 62 elist)))
; R4 i; O% F/ e" ?# S - (if (not color) (setq color 256))
x G3 C1 Q' Q- }1 v5 w/ s - (setq ltype (cdr (assoc 6 elist))): z% p9 p: o+ m+ U: g2 G
- (if (not ltype) (setq ltype "BYLAYER"))( n2 S8 ~6 v. ~# f* k4 F
- (setq layer (cdr (assoc 8 elist)))) E' P4 [9 u% l7 n4 @+ E0 X) e
- (setq thickness (cdr (assoc 39 elist)))
9 @! k( [- |6 Q. f8 _ - (if (not thickness) (setq thickness 0))
" O6 F7 C6 w: q( B, U3 {& D - (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)
' D, p. J' U# L: ^7 m+ } - : Q8 J e3 ?+ @% E. H% M- |/ h e Z
- ;; Page through the selection set. When a property
' X3 O6 Z& i# w/ v' |' G - ;; does not match, stop checking for that property.3 H }7 d% c( |; q# h# q" Q
- ;; If all properties vary, stop paging.' n4 c0 m2 ]6 \ x+ o5 y# G+ ?
- * f* y K6 [4 s0 k
- (while (and (> sslen ctr) go)
/ E: c7 c: @9 x5 C/ D - (setq elist (entget (setq en (ssname selset ctr))))
& ?4 d/ D7 H/ T( W9 l) W* |3 V - (if chk-col (match-col))/ J5 m; L; y1 ~
- (if chk-lt (match-lt))
% E6 N7 G. H. L5 s - (if chk-lay (match-lay))
# v f' W+ o0 y+ L2 |$ M6 ^( h% ~ - (if chk-th (match-th))) }! c9 k$ P( d1 u8 q1 a
- (setq ctr (1+ ctr))! s, r9 n7 M) T3 n
- (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th))
: b" n) C9 v; @3 g+ Z - (setq go nil)0 S ]4 r/ p& D- ^$ d" | ]' E
- )0 q! G2 ^+ f/ ?) y( D8 `% M
- )
6 G! o/ a8 _) `# ` }7 R, u - (list color ltype layer thickness)
% Y4 s- N4 ], f' ?3 s- |. P2 | - ) D, P! f/ G7 G/ T+ X+ ^' T% A9 Q
- " D* p6 ^& W& F0 ~3 P9 d9 L
- (defun match-col (/ ncolor)' ?% d; i3 g" U' Q, w; J( g
- (setq ncolor (cdr (assoc 62 elist)))
% u! E$ M4 p2 M4 }2 f2 g: | - (if (not ncolor) (setq ncolor 256)) j# S9 Q; Z, ]' w, O, Q4 r* E# v
- (if (/= color ncolor)
. ^/ S( M: @0 @) P - (progn
' D K1 s- y9 V) o; h* w - (setq chk-col nil)0 N. R% K8 o" q+ G9 x
- (setq color nil)
8 X' f' R/ |9 c' T/ c - )
3 ]. c+ J9 O% D# [, l# X5 X; Q - )
: Q8 T7 k* V2 M( e6 G - )
3 h2 `# A% `* }! S% ] ~% D - * X' h' f) _$ l* R
- (defun match-lt (/ nltype); F- x4 T2 v0 W
- (setq nltype (cdr (assoc 6 elist)))
, U& e# M8 M# O" Z) ` - (if (not nltype) (setq nltype "BYLAYER"))% L, S9 j3 ^1 F) B: `) X
- (if (/= ltype nltype)
- T5 l9 L: A. n7 a. ] - (progn
' I" I2 ^0 k- `: ]( Y - (setq chk-lt nil)
, M2 n- o$ x) ? - (setq ltype "Varies")" H& t+ Y8 J4 H+ I( r
- )/ ? w, }7 U0 ^ a. [- J
- )% s# Y q. g7 I+ i% S
- )
]. m5 U; R& S( i/ @1 b
- G. S9 }9 \9 J9 m y- (defun match-lay (/ nlayer)- d: _1 S2 j+ t" z3 u) ]
- (setq nlayer (cdr (assoc 8 elist)))
2 I/ e" o- B0 V9 k - (if (/= layer nlayer)+ G7 c7 ^/ x; ~4 ? x) G
- (progn7 m) }- e2 R: B E p
- (setq chk-lay nil)4 R5 C6 |5 F* M$ u5 O4 i0 \ `6 a
- (setq layer "Varies")) y2 f$ f" ?; e; I S; ^) D
- )" Z4 J& { @, J7 U
- )
w+ F( F1 q5 R7 {4 r, N - )9 P& d4 i$ @$ j; u: Q
" `% }) J* n0 |4 O/ F; e- (defun match-th (/ nthickness)3 `9 K* i( k5 M. P2 k
- (setq nthickness (cdr (assoc 39 elist))): h5 K9 ]8 [% D% m# n
- (if (not nthickness) (setq nthickness 0))
( ~ n1 Z% \3 ^, o - (if (/= thickness nthickness)
* u. u: Y" \7 `% N! X U- f* }5 \ - (progn
2 D& O N8 ~( U, q - (setq chk-th nil)
! M4 Z) Y {6 v7 X3 n4 P9 C8 K6 G - (setq thickness "Varies")& P* L0 p6 e4 A# h. Y ?5 e5 ?, H
- )
' Z m7 e. r- S2 R9 x% n' N - )
$ T' v1 S- e% i+ c+ H - )) S# ~" d* [% Q9 Y/ Z, x$ E F8 F
- " }. h. O5 w7 U6 |
- ;;
\2 b# Y& A/ Y- @ - ;; If an item is a member of the list, then return its index number, else $ r8 O& r% T' u$ _: Y- e; z- o
- ;; return nil. l2 b4 l) T/ Z# \8 `
- ;;$ f& x& V8 h3 _
- (defun getindex (item itemlist / m n)
: k8 b7 Z/ ?/ _9 \5 T$ B& y - (setq n (length itemlist)): H! Q" R8 X! x! r3 [% p' J/ {4 ~
- (if (> (setq m (length (member item itemlist))) 0)0 u* {# \2 s6 u- S
- (- n m)2 _$ @' w0 j! `( [+ E4 K9 i9 R
- nil
7 T4 p+ r, c w) H7 s V% q! p5 i9 A - )
+ K. E( z( g: R9 Z- K# a! | - )
7 q! t2 ^" r) R- V# m2 |' f" m - ;;
, {( @- x2 n# l9 a7 c - ;; This function is called if the linetype is set "BYLAYER". It finds the 0 |/ W+ h9 p2 ~; m. d. G N
- ;; ltype of the layer so it can be displayed beside the linetype button.
9 t8 \+ c! |3 Q$ O: G2 ~4 L2 j - ;;. c D7 r- U$ e" O. B/ n
- (defun bylayer_lt (/ layname layinfo ltype)( u/ P5 z) W+ w" @2 O, N
- (if lay-idx( t* j- d6 Z2 n: p" l
- (progn
/ n$ ]& v- j3 M2 M; S - (setq layname (nth lay-idx laynmlst))
1 Z- W3 c) B8 `' l( r - (setq layinfo (tblsearch "layer" layname))6 e6 I! }7 J: J, x/ x
- (setq ltype (cdr (assoc 6 layinfo)))
7 |; B5 ^9 M) A; Z* q4 N - (strcat "BYLAYER (" ltype ")")
$ I% W2 y0 w8 z x2 L/ J, G - )' u' a) d! X' \% w- L( l
- "BYLAYER"
" [- B4 J! _1 c& y - )
9 j! g; B. n. b9 Z( | - ); l6 n- Y4 `% Z
- ;;
, { }* r: T2 b S; ?5 H - ;; This function is called if the color is set "BYLAYER". It finds the
" j% N( V* f" v3 U - ;; color of the layer so it can be displayed beside the color button.! X2 {8 M8 H2 F
- ;;# G. H5 O' A$ e
- (defun bylayer_col (/ layname layinfo color)& D1 O4 B8 M8 g. E$ d3 H) e R
- (if lay-idx
1 b$ V9 S" ~) ~% u, C+ { - (progn
1 P) ^! k, J' Z3 v% K+ y - (setq layname (nth lay-idx laynmlst)) m1 i, J. j4 [' b+ ^4 S. k
- (setq layinfo (tblsearch "layer" layname))
+ Z" y8 u2 |# g' w k - (setq color (abs (cdr (assoc 62 layinfo))))
! U3 p( g4 j, x" S- W, X/ a4 Y, L - (setq cn color)
% K" \* g% Z3 F6 a x Q: g - (strcat "BYLAYER (" (colorname color) ")")
7 y: Z' ?4 v# x9 R - )
0 }" ]# W8 v# }8 J( K, f - (progn0 h1 \) {, @8 b# J3 E
- (setq cn 0)/ B/ R* H) e- h( O+ F
- "BYLAYER". H! a6 F- J& N+ T; O# J
- )& w& J' j L! X; g! z
- )& p I5 B7 ~, f3 P1 d
- )' p( e$ R/ a% R w5 J- h
- ;;" j- I {/ T# D; B( d' E2 G
- ;; If there is no error message, then close the dialogue
" d e. y* @& L7 ]5 V6 d - ;;; N# G9 J& _# h/ l
- ;; If there is an error message, then set focus to the tile) n9 g, ^9 g% t) j4 p
- ;; that's associated with the error message.
4 }9 Y0 q7 A0 w4 s+ s - ;;+ v3 R2 j7 x5 I; g: k9 W
- (defun test-ok ( / errtile)
8 A- u9 S S' s" ?/ I! X9 B/ Q - (setq errtile (get_tile "error"))1 W& ]4 G; l5 h/ @
- (cond1 g9 k2 H% x f) p, _; L
- ( (= errtile ""): V- U, x" B8 y" }: v" n
- (done_dialog 1))
/ {8 I9 E# s5 c' `. ?; Y( i9 u- A - ( (= errtile "Invalid thickness.")* r* S* {/ ~2 a7 t; ~
- (mode_tile "eb_thickness" 2))
1 `" l$ x, ]0 g/ i/ M8 ] - )
2 T- M& ^. R- r* i5 \# N3 e+ Q i - )" x- z c" _' J' y& |! ?
- ;;. O( x) L' V0 f% `1 m$ i0 Q
- ;; A color function used by getlayer. {6 w2 P5 h U1 r) m+ w# j; j
- ;;
9 `( d( \* k1 s) L, e - (defun colorname (colnum), o; F: h: {4 K- X0 S
- (setq cn (abs colnum))
4 j0 o. k7 L* x% [# k, G1 ` - (cond ((= cn 1) "red")$ U' M% Y5 R* L7 \7 ^
- ((= cn 2) "yellow")# g% {9 R, F. [% Q& f/ s6 r; z
- ((= cn 3) "green")$ K# C) r& E5 |+ C9 ?) E( z
- ((= cn 4) "cyan"). |: [4 S/ L* A5 M% S7 ?
- ((= cn 5) "blue")
3 P, K) h/ } K - ((= cn 6) "magenta")
4 {6 k% E( l( Q8 V! i6 c% e4 D - ((= cn 7) "white")5 A+ Y1 F6 S/ Q6 `7 S: y; [
- (T (itoa cn))8 }! s0 p+ j6 E" p3 V: ]
- )
. a6 k+ H2 Q3 N0 Y5 z) U" T3 j% z o - )
- Q/ {7 L" g1 \. w
2 g6 U7 E9 c @) Y" t( L& a- ;;; Construct layer and ltype lists and initialize all
) j- t# c. y# J' ?3 [ - ;;; program variables:
7 s- v9 j: O6 |4 e
Q/ L6 O5 m- k1 ?' @5 m- (makelaylists) ; layer list - laynmlst( S3 {6 u" W8 a& d2 k
- (makeltlists) ; linetype lists - ltnmlst, mdashlist
! X: x8 [6 P2 N l# I* w6 _ - ;; Find the property values of the selection set.: x( _0 W0 J% r9 W- j, E$ a) V# O
- ;; (getprops ss) returns a list of properties from$ ` t. y8 _; l. o& ^4 w& F
- ;; a selection set - (color ltype layer thickness).
( N. T# O0 L0 K- V - (setq proplist (getprops ss))% R/ I5 N6 R% ~- P# ]
- (setq ecolor (car proplist))+ m/ x1 M7 L2 l0 C* h5 }
- (setq eltype (cadr proplist))
; t6 v+ u* H& p7 j. a y# Z% ]6 d - (setq elayer (caddr proplist))
4 T( b! Z- x, d' X - (setq ethickness (cadddr proplist))
. f8 e+ S7 t) ~- @* x - ;; Find index of linetype, and layer lists
$ d/ }: {$ G8 R - (cond
. Q) Z: j) x4 M6 i& d5 f - ((= eltype "Varies") (setq lt-idx nil))! X) n& g. ? z, e9 i
- ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))
2 W5 g' e6 _' T7 [& E5 [ - ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
- l( w% k/ p' x( r6 n - (T (setq lt-idx (getindex eltype ltnmlst)))
( D3 d/ T9 x, w - )
! A9 M I. F. X4 m& i# X - (if (= elayer "Varies")
! _% P1 z& _+ B1 a4 U - (setq lay-idx nil). `5 O7 {5 S- `* X" ]0 B
- (setq lay-idx (getindex elayer laynmlst))
4 e9 R: c9 O, S; e; { - )- E/ ?( G, {5 v* y
- (if (= ethickness "Varies")
, o; A! l, a1 ^& ~" m- u9 K1 Q - (setq ethickness nil)" Z) k) Q. W/ [5 p9 [* a1 A
- )
/ l/ i7 Z6 _$ R! \+ L - ( V: X' w* i+ e( J5 \) I
- ) ; end (ddchprop_init), u! S( Y, i/ x1 ^: R- _
3 n l1 B9 I, u$ O2 u+ ]4 r7 B- ;;; (ddchprop_select), G$ f$ B& N0 i9 K! g6 p
- ;;;
1 U/ ^- ~/ }" B8 G - ;;; Aquires selection set for DDCHPROP, in one of three ways:$ f# K8 K8 }9 k) J; _3 b# R! I
- ;;;
. u% W5 T+ _8 Z# O; ]7 _ - ;;; 1 - Autoselected.# q: |+ b2 U) x* n) G# r! \& g' r
- ;;; 2 - Prompted for.
z0 @8 J: {) s ^& s( I' x - ;;; 3 - Passed as an argument in a call to (ddchprop <ss> )
5 g! t# R8 {+ o9 o3 C - ;;;
( t y6 t% N7 ~# @- G( Z - ;;; The (ddchprop_select) function also sets the value of the2 R# C# |+ T6 r9 h
- ;;; global symbol AI_SELTYPE to one of the above three values to' L0 U; h$ t; j
- ;;; indicate the method thru which the entity was aquired.4 Q& z7 }/ U: Z+ u8 P- ~# x
- 0 r1 S- m- ]: G( e( B
- ; y# ]* ]$ A3 Z, G
- (defun ddchprop_select ()1 v6 z: z0 I0 ]" }) b$ Y$ w
- (cond
: O+ `% j$ z) L - ( (and ss (eq (type ss) 'pickset)) ; selection set passed to( R3 j. G2 @# p0 D' P4 Z5 y
- (cond ; (ddchprop) as argument; u7 R/ o. ~! D3 I- k, I- v. \
- ( (not (zerop (sslength ss))) ; If not empty, then
% j F* x* g- E - (setq ai_seltype 3) ; then return pickset.
: I' \9 L& P& d9 q7 b8 O - (ai_return ss))))% w- m. W% M8 B5 J2 |, ?" s( w! c
' r6 s! w- e1 O( {' F% d1 D2 o- ( (ai_aselect)) ; Use current selection
4 I% @, E1 o2 c. n) t# \# X0 I: T' P - ; set or prompt for objects! [% M, R8 T5 |$ L; Y+ C- P
- : j H/ t5 n! i' |* m3 [' y
- (t (princ "\nNothing selected.")" ~' V8 v& u* k1 {. H# Z$ |, g
- (ai_return nil))$ b( d. n7 } I) p& o& G
- )
\" e0 }. D C - )
- f" D$ f+ K# f8 V, T) T - + {1 N l0 L" {; E p- U( V
- ;;; Define command function.4 G% ^( D ]& K7 V' O
- 3 c0 _' L9 z: D) Z8 c
- (defun C:CH ()
: V( s# R6 B8 L1 O - (ddchprop nil) e* `- n! @9 s, \+ q$ A
- (princ)
v. g% Z' n% h# @ - )
- }1 j4 z. o1 \2 j
* V+ k5 B" I. K5 L2 Z7 V- , ?$ g( ~7 F. V
- ;;; Main program function - callable as a subroutine.% \, j: X, F# Y" i, j& Y' m' n2 \
- ;;;4 a- R- ?; Q9 m% K
- ;;; (ddchprop <pickset> )
3 W' Q9 E( m, z - ;;;* \; A |0 i6 v5 x# ~8 m
- ;;; <pickset> is the selection set of objects to be changed.' B0 t% Z3 B, J; B6 D
- ;;;
2 r8 N: I& q4 z* f+ A; E - ;;; If <pickset> is nil, then the current selection set is! d: `8 O' D& c$ h) g2 ^5 d
- ;;; aquired, if one exists. Otherwise, the user is prompted
5 R7 f8 ?' G$ F4 f# w$ k - ;;; to select the objects to be changed.
# F3 W5 V ?- n7 m7 ?; q - ;;;
% f/ u L9 ]: o, K5 w2 l - ;;; Before (ddchprop) can be called as a subroutine, it must- X4 Q* M3 A5 _& F4 M% `' w
- ;;; be loaded first. It is up to the calling application to2 q8 |# f4 ~( R! R
- ;;; first determine this, and load it if necessary.
* T% v. f2 V, U9 v& P* G! k
- Q3 r5 \& p; ~, i- E- g% o- (defun ddchprop (ss /5 h! B t2 U* ]! I; d2 C! m' \. V) E
- . W" T" A* M \7 b6 e& l
- add-mdash ecolor ltedit_act s1 Z- R- {; q2 o% s0 B P
- assoclist elayer ltidx selset" \& U* x( K. v+ h, M: G
- bit-70 elist ltlist set_col_tile
4 a: ~. y% z. p6 r& P - boxlength eltype ltlist1
. }+ j9 b. N: ~0 Q( Q7 U - bylayer-lt en ltlist_act sortlist* X F$ C1 l' [+ F0 ^, p
- bylayer_col ethickness ltname# M& o/ `, i# r0 J$ y1 ] Y( T
- bylayer_lt fchk ltnmlst sslen0 o5 X0 s* C3 T& N0 `
- call_chp frozth ltvalue templist
6 B5 E) r% U$ |, ~1 `6 { - chk-col getcolor ltype temp_color
( h- y4 s& A( S3 v1 U: D7 d - chk-lay getindex m test-ok' f5 i' l( R. }% Q5 z" M, U+ [6 d
- chk-lt getlayer makelaylists testidx7 ?" Q: `) c) u9 }" Q C- |
- chk-th getltype makeltlists testlay. b% g) i, h3 b" y, X& h
- cmd getprops match-col th-value
+ l& V/ E5 t X# Q# {0 s$ T* R7 T2 j - cmdecho getthickness match-in thickness+ V# U$ F. a3 u' b2 _' H8 i7 j$ C$ L
- cn globals match-lay tile/ R3 @) J9 t$ R* x8 |# J
- cnum go match-lt tilemode
& T1 e0 y. ~: ~5 T! n - col-idx index match-th tile_rect- T3 _. M' \/ b; W! m/ G
- colname item match_col vi
3 W) ~4 |' V E0 B* s - colnum item1 mdashlist vpf
* D( y4 Y" j0 B' ?) \# \) j0 R - color item2 n vpldata( Z/ T4 Z3 Y/ V* }) D& i
- colorname itemlist name vpn
% q! T2 G0 H* e* D - col_def lay-idx ncolor x% |# L8 L1 ~! l4 G4 `9 t' ?
- col_tile layedit_act nlayer x1
' B& q2 O) d' Z; R1 L - ctr layer nltype x2
5 m3 \0 l8 q% ^4 C- D& m, t% h% T - cvpname layinfo nthickness xdlist
! G# V; [$ T V7 y - dash laylist off y" L- a; @2 e2 }& |
- dashdata laylist_act old-idx y1
' Q" H& ]$ X3 O3 _$ y& s' g, o - dashlist layname olderr y2# \9 N- [' c ` r9 ^( @6 C
- dashsize laynmlst on undo_init
* e( V( I. w: U3 t1 }7 }$ U - dcl_id layvalue onoff
' j ?3 v# d" T( G! U - linetype patlist' p H: X7 j, f3 {2 o1 i' }
- ddchprop-err list1 pattern8 `7 L6 r7 y& Q$ g
- longlist proplist7 P |2 p9 v. M
- lt-idx reset-lay- w+ R* g+ r3 y7 U
- drawpattern ltabstr reset-lt
- w! w3 ^0 e; n3 ~! w5 H$ @9 B j& f - )
3 N& @' h, a" W* E - & T6 |1 D" j' q2 E
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
' C3 u: _, U Z4 h# } - old_error *error* ; save current error function
4 B1 ~/ {8 R! F0 U- M2 S& q5 ?+ [; x - *error* ai_error ; new error function9 k# q m7 a- m+ z) Y5 G m
- )
- y p# E+ d1 Q) A" P! s- O9 o - , @8 b, q: {7 L5 V9 I
- (setvar "cmdecho" 0)( I3 s' A: ]' ~% c
- . I: X( N% E+ p0 J O$ `" x2 I
- (cond8 _( s9 ]4 ]2 X3 A! `* y* T
- ( (not (ai_notrans))) ; Not transparent?" G7 T- q( J. N
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
1 p; R, k- x$ v+ X+ {' v - ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?
% b# s. ?: y3 I0 w; p - ( (not (setq ss (ddchprop_select)))) ; objects to modify?
: X, @0 Q1 V! }# X - n# o! R4 \) z. V$ v/ ~0 e6 \
- (t (ai_undo_push)) P, j1 ?" \8 [$ u
- (ddchprop_init) ; Everything's cool,2 ]" ?8 V( P! I1 @$ D
- (call_chp) ; so proceed!" \7 a( `5 c- m/ w3 j( [
- (ai_undo_pop)5 E- W+ l$ |0 f! {
- ): V1 c# ?- D( d8 d0 j6 T3 ?
- )/ o9 G/ h7 L1 I o' {
- / Z) H. D6 q1 d% V& i D1 W+ l
- (setq *error* old_error) 4 o$ @" n2 M4 f
- (setvar "cmdecho" old_cmd)
( q( r. m; l4 d - (princ)4 Q e A% _0 `
- )7 @8 C1 J& L1 R# a) d( u
- $ `# n8 d3 J( P0 C) K( I+ ~! x
- ;;;---------------------------------------------------------------------------- A. z, c2 V. R4 i- F( Z Z
: r( N+ p7 L7 B6 |- (princ " DDCHPROP loaded.")' z8 i) U, [( u! ~/ j
- (princ)5 ]8 e/ o# u! `9 I
- - w( F0 M$ z# R8 A
- ;;;----------------------------------------------------------------------------
7 J, g$ R2 ~7 S1 }% V2 y# W$ u2 M. @ - . a& d* J7 A! _8 o I- c+ w
- ;--------------------------------ddmodify.lsp----------------------------------/ V2 F/ o* T+ Z/ t q5 ]* t
- ; Next available MSG number is 111
$ v8 t1 \& w6 z# w - ; MODULE_ID DDMODIFY_LSP_, N. R. p/ T I& @9 G- {$ C
- ;;;----------------------------------------------------------------------------' w6 V+ Y" W" P. i0 s# }2 o
- ;;; DDMODIFY.LSP
" ~( E& v! J2 D7 a5 t% w8 p. j/ F - ;;;2 W) {6 w* d) Z& J
- ;;; Copyright 1997 by Autodesk, Inc.
$ K" F+ N. x' l - ;;;
' j: C) z: B1 Y# C" L0 m - ;;; Permission to use, copy, modify, and distribute this software$ D4 _: a# y, b' J
- ;;; for any purpose and without fee is hereby granted, provided2 M+ M# S6 h9 i( l& H
- ;;; that the above copyright notice appears in all copies and& Z" S) _9 e1 U( f/ y
- ;;; that both that copyright notice and the limited warranty and- f+ j% y. }" W0 N% p
- ;;; restricted rights notice below appear in all supporting# h$ C: _5 [$ [) A% i0 P
- ;;; documentation.
& S7 N7 B! Y# ]1 M/ ~7 l' i - ;;;
* ~1 T6 _" Q' I0 @3 n3 f - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
" F7 z0 c7 M3 J% B' H7 ~: x - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF9 i: K( ?( Z5 X6 X! j0 ^5 s% u: c! o
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC./ A2 ] I6 X1 |! a
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
; V" h& F% y k- X: a - ;;; UNINTERRUPTED OR ERROR FREE.6 q9 v! F) W4 a: j- b7 c
- ;;;. N) y% `# E2 Z3 m. W3 d
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to7 O G* y* N' c, N! o! |& c" m& {
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer4 a- }2 I4 o! H: G
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
" t7 }$ s4 _2 g8 `& c - ;;; (Rights in Technical Data and Computer Software), as applicable.
: D0 F0 w! A2 ~& _, ^% \( D& [1 @3 k - ;;;- j2 }& d) u X8 c
- ;;;.- M5 ~$ ~/ s6 ~! \% ?! g+ ]
- ;;;
3 V* P* _2 `1 m/ ^: m - ;;;----------------------------------------------------------------------------
* n5 r" @3 K. Y( m! u9 ? - ;;; DESCRIPTION' p. V8 I t1 L+ i
- ;;;$ m" w2 C$ [6 ?% d: ]5 J+ A8 E
- ;;; This function allows the user to get a listing comparable to the LIST# t- `; e8 q2 }1 ?
- ;;; command for most objects. In addition, most object fields in the7 X0 t, q1 P3 Y+ `) P- |& _
- ;;; dialogue box are editable. Points can be specified dynamically by
4 y1 z [2 d: o7 G- R; s& D - ;;; temporarily dismissing the dialogue box. Each object has a unique
( Q5 Q6 e4 f" t9 L; C5 K. K% O$ y$ y - ;;; dialogue.2 p8 {: {; M+ S* D, O
- ;;;
% M+ D6 J# L6 |& E' n6 R/ i - ;;; Naming conventions/ R d$ N3 @0 Q# U, u! f
- ;;; Long function and widget names may use an underscore "_"
) C p8 O1 l6 N; G - ;;; in their names to make them easier to read, long variable3 ?7 l# g( H0 I( N& N. U1 ?0 c% \% T! K
- ;;; names use a dash "-".
* S) p! }6 K3 {+ U. w, m - ;;;----------------------------------------------------------------------------
0 E. x$ r; W3 N/ N: I$ O! Z - ;;;----------------------------------------------------------------------------6 G6 R! W# j0 i" E
- ;;; Prefixes in command and keyword strings:
4 j: R. P7 A7 a5 }. p9 b# u( q - ;;; "." specifies the built-in AutoCAD command in case it has been
. l- `* I1 X/ F0 l+ i8 ~ - ;;; redefined.' A. C) `, J2 {0 c4 X) V
- ;;; "_" denotes an AutoCAD command or keyword in the native language
0 r1 d& X6 L6 K/ {: U* f - ;;; version, English.+ Y$ t# s8 B! ^( ^* p1 |1 O
- ;;;----------------------------------------------------------------------------
$ j* u$ e- s* x* e9 B - ;;;+ ~% c$ b. `1 B- \
- ;;; Avoid (gc)s on load to improve load time.
% Q% {( {/ ~2 v# i - ;;;
$ B. I: `2 L( n. y9 F. v, m8 Z - (defun do_alloc (/ old_allod new_alloc) H$ f. Z' F% V% f+ x2 O$ {& @
- (setq old_alloc (alloc 2000) new_alloc (alloc 2000))5 k2 x# L" N6 ^; i& p
- (expand (1+ (/ 17000 new_alloc)))
" w- v# p/ ?! G+ N9 m - (alloc old_alloc)
; f4 s' x3 [! \$ B4 l - )# j7 f* ]8 [4 V7 c' _- m( c" E
- (do_alloc) ^9 i. p7 y" W; o8 ]' X4 ~
- (setq do_alloc nil)
# E9 T2 n# ]8 j; d: @ - . v s# ~9 m% ?# ^
- ;;;
% v/ ?& |% q# K& }9 }/ _ R - ;;;
- c2 { @( L* h& t0 ?8 G; u- N. p - ;;; ===========================================================================
$ _# X+ _7 O' M" d/ g; c+ L - ;;; ===================== load-time error checking ============================8 k6 ?+ G; l, {8 a- c( {% E
- ( J. N6 F& ?. H$ Q! J& L* N9 i
- (defun ai_abort (app msg)2 t+ G) Z0 ]; F3 ` j
- (defun *error* (s)
- d- z! b2 C# Q( ]+ c; B+ x - (if old_error (setq *error* old_error))/ @1 c. g( ~ |- R7 z
- (princ)
7 J# N" s$ v% A! E# @ - )7 T `" ^, p7 Q7 ^" n
- (if msg7 I; R0 `. d% g
- (alert (strcat " Application error: "7 ]) G: P* h9 \
- app; C" z2 n5 I3 J/ T' Z" B; u( W
- " \n\n ": n8 o8 Y. n% ]& z8 ^5 S
- msg" g6 Q3 k: F7 b0 J) D
- " \n"6 s, N& n8 f9 a: l' h4 P# U
- )
% q* E5 y; g$ u+ ^ - )
- e5 {4 T+ s: q- \ - ); W0 q2 c: ?( ~- Z7 U# J
- (exit)9 S% q( `7 _2 M& ]5 R
- )6 q/ x5 v: u {& C/ p b. z1 I
- ' |$ k( V. [6 J2 k' Q) O
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,* K5 F6 w) ]& }# B) ]( h
- ;;; and then try to load it. If it can't be found or can't be
" V3 t* f+ Q- f# |! Y s - ;;; loaded, then abort the loading of this file immediately.
9 x1 r. i- U8 @9 ^
. K n# L* _. G2 q6 {( r) s6 U( i) h- (cond5 c0 |0 a6 Z# u# g6 o
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.( M$ W# d; a8 s. A3 ^
4 ?+ J* \! `, M; I- ( (not (findfile "ai_utils.lsp")) ; find it
6 z' t% U4 ?* i$ z2 t7 b: {4 @ - (ai_abort "DDMODIFY"
' u- @5 T" i7 e- n" | - (strcat "Can't locate file AI_UTILS.LSP.". a$ P3 r! _* E8 X
- "\n Check support directory."))). D0 w; w: U% J% m: q' u+ K! C9 y: R
- 9 @7 i7 a7 o' s+ l3 K0 u5 X8 k
- ( (eq "failed" (load "ai_utils" "failed")) ; load it r' t4 v% l' V( R1 x
- (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP")), }7 m/ j/ p' d4 P( l( ]- J: y
- )& B5 v& y- S) ]4 D X
! g% a7 a: @& l8 j1 F: g, R- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can1 g$ r& P8 ~1 y, r2 F
- ;;; be assumed that all functions defined therein are available.
9 _" B9 V, f: x" r - * `4 `8 X/ p+ a- V) k0 A) y
- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort* O& R, Y" F% S
- ;;; if the file can't be found or xloaded. Note that AI_ACADAPP3 ?3 q9 m1 D* K7 h( g. `: W
- ;;; does not abort the running application itself (so that it can
+ G h$ d+ b% M$ \" q2 o g - ;;; also be called from within the command without also stopping3 u( O6 ~4 q! H( n) Y
- ;;; an AutoCAD command currently in progress).
9 R7 [; @- B* G& c J/ Y$ q( ] - 5 e$ U5 ]5 \) z5 y0 V! f
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
5 K7 [- b8 b! Z* D! o - (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses' v! {$ K8 y: O
- ) ; ai_abort's alert box dialog.
! X4 F5 j/ T9 `- u6 b
, v2 W3 a/ w' T4 D- ;;; ==================== end load-time operations ===========================4 a: f+ q1 `0 e5 s9 Q J
- 3 I! s8 Z( F7 B! i& O
- ;;; global variables6 O7 j1 b, G' J2 O1 S* `
j* \) M" n# {; _8 n8 {- (setq hatch-elist nil)
# {8 c3 Z2 W5 m1 i7 t
+ ^ Y* W/ u% k( ~6 Z- d+ N- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are
' P5 c* H0 X+ t. M/ k o0 S - ;;; assumed to be available.. ~. e4 F! k1 Q% \! ~1 p
# e- u+ q* C V# R. k$ A, E$ \- ;;; Define and encapsulate all subroutines that are declared& ]8 c1 T" Z7 E* y, ?) j
- ;;; locals of the (ddmodify) function.
7 z; i9 d, A, e( O7 y - 4 D8 ~2 {" W. _0 ^- v. m- f% _
- (defun ddmodify_init ()0 K4 S' {+ P: J& e' d; y; p1 n
- ;;( \, ?6 c1 O( o' h: w
- ;; These three functions modify the enitity list for common properties. Since
" t7 Z! x7 a2 I* Z - ;; color, ltype, and thickness are absent from the object list when they are
. u* B$ U ~; T C2 J - ;; set to their defaults (i.e. color = bylayer), a simple substitution using
9 K, d [; s( s2 Y/ {/ F0 l - ;; SUBST is not possible./ u1 {3 i- \. z" U7 y
- ;;
$ A% D# ?. s- O" d6 A& D O - (defun modify_properties ()
a3 O q1 {& k - (emod ecolor 62)" s! C9 H) ]5 p5 F- q
- (emod eltype 6)
5 q- l( @. A! n$ a. Z0 n$ x - (emod ethickness 39)3 {, M9 ^4 p3 n) I% U! k4 S
- (emod eltscale 48)9 R% ]+ H# S6 P o
- (tempmod elayer 8 nil)
) y' ^% A* J/ e a' X" T; t - )4 P% U: W j! w: ^( \* A8 W
- ;;
* j) R0 i1 ?6 G5 N- c8 O! i - ;; This function is used for modifying common properties of the ACIS
1 k( O( \. u# T: c9 ~ - ;; based geometry objects. Thickness is not valid for these objects9 @( A- P( x( b& U6 c
- ;; so it is left out.& I3 W h7 B# a( J+ b5 ^5 d r4 T
- ;;
) r! n3 h* O$ {* |2 r# Y5 O - (defun modify_prop_geom ()
# J, o) k N1 M+ h$ F" c; v" H - (emod ecolor 62)
0 [9 A& N0 ?' v# K" z - (emod eltype 6)) V7 t7 i& ?7 [9 L: {
- (emod eltscale 48)4 d- a" n5 v' a2 }# l
- (tempmod elayer 8 nil)6 G' x% Z0 \/ R3 e
- )8 p' {- Y4 V4 l
, G p2 \' W8 f G* X- h5 A- (defun emod (value bit)
5 y6 W, v2 N& C: g - (if (= bit 62)
, L5 l* I1 E) D( B8 c: X( T. R - (progn
( Z0 U+ P. e* O$ t& u* M: r - (if (or (= value "BYLAYER")
$ x' n9 \: |+ d5 @ - (= value "BYLAYER")) (setq value 256))! s- a8 _9 n8 ^7 p, \- [: o) K& j
- (if (or (= value "BYBLOCK")
& ]: ~7 D( S$ g' y8 D7 T - (= value "BYBLOCK")) (setq value 0))
2 j" L' x- { ?- o- h - )7 ^9 B2 |# n! S
- )1 a2 a+ I) d9 ?
- (if (setq oldlist (cdr (assoc bit elist)))
, Y9 Q5 J4 Y) c% P# C - (tempmod value bit nil)+ ^6 L0 w1 F, T; x5 `2 Z5 A
- (setq elist (append elist (list (cons bit value))))# D" z+ ~4 _) T
- )" S/ x; n, K' V) X6 D+ c0 ~
- )
3 U) ~3 |: ^* a. \8 d - ;;
. J! `) ^4 }/ t$ c1 l8 W - ;; Resets object list to original values. Called when the dialogue or
* Q4 c- ~, n0 G - ;; function is cancelled.
+ _: ?+ z/ i. l+ D0 J - ;;
' B0 a5 y" F3 d - (defun reset ()
, F1 z! g. w, \% c2 a - (setq elist old-elist. e8 v0 v1 [& h1 l0 A+ Y0 x W; Q% q6 v
- ecolor (cdr (assoc 62 old-elist))
# _8 {+ f7 B0 W9 P G - ethickness (cdr (assoc 39 old-elist))
# {( r* T" W; f2 _ ?$ j$ S - eltype (cdr (assoc 6 old-elist))7 v# Y. [; A, P$ p& g
- elayer (cdr (assoc 8 old-elist))
* F6 }$ c, }" n0 |, X - eltscale (cdr (assoc 48 old-elist))( `3 i; H4 k# H0 w8 D+ m' g
- )& V& x3 \6 R$ w) K+ D, s; E
- (if (not ecolor) (setq ecolor "BYLAYER"))
1 g! x4 H8 z0 Q0 M8 v' M - (if (not eltype) (setq eltype "BYLAYER"))
7 i3 K# j( F' Y6 J9 `9 Y* P - (if (not ethickness) (setq ethickness 0))& s+ X& k# m3 c1 r% O* c( N
- (if (not eltscale) (setq eltscale 1))
! c/ a8 w* U, Q - (modify_properties)% }6 C5 \' l( N; z6 K- |- E
- (setq reset_flag t)
$ F! P1 M7 d+ U) T1 M - (entmod elist)
% r. g# u# R( s/ x) p - )
0 U/ Q9 w% q( p, [8 o - ;;
1 F2 Q) d- K1 F8 z0 k' e% a; p - ;; Modify object when dialogue is temporarily dismissed to reflect latest! F$ \' _: K7 Y
- ;; settings of dialogue. It converts the point from current UCS coordinates to
- T/ e! e1 G2 q0 B; z- C - ;; the proper object coordinates (world or object).
: t( w- X- J2 z1 K - ;;
, a* Z5 R3 G; \: y' f5 @( G - ;; Arguments: value - in current UCS coordinates8 a9 }. Y* ?7 D( h
- ;; bit - object code (i.e. 10 for start point)8 t& j! V& G/ ]; o
- ;; ptype - point type 0=world 1=planar
' O+ e( P5 c. m) F: K" ^' X5 X: C - ;;8 G1 W& O- C$ C. b( R
- (defun tempmod (value bit ptype / newpoint)% M' d: M6 b0 H# n0 O$ ] I
- (cond
5 \: w& H; ]. R* i: u- y - ((= ptype 1) (setq value (trans value 1 ename)))6 j# a w& U2 i7 I! d
- ((= ptype 0) (setq value (trans value 1 0)))9 T$ e, Y& O. o+ Z3 c
- )
& J& t* X7 w! T; O T, @" @( J* E - (setq elist (subst (cons bit value)
1 y7 u& C' M% Z# y+ ^3 q - (assoc bit elist)4 Y2 Y. k% q4 n6 J( ]. P
- elist
' o/ }3 b5 p1 T - )" [% w, \, Y7 ]) g0 \ E# ^
- )7 L8 o: S; e* m+ |# r' j+ r9 k
- )
& h# R6 X) x! Z# a4 U/ p/ x' ~! B - ;;
" I! G8 |+ ^3 Y! K - ;; The following functions are called after a dialogue has been temporarily, N4 D7 s j' k$ b$ O. z
- ;; dismissed and the user is selecting a point. If a point is selected the% h- D- D' L/ M. k
- ;; object list is modified and new X,Y,Z values set. If no point is selected
& S9 j- e. ?& l% w) s - ;; (null response), then the point is reset back to its previous values.2 w% h$ B4 A" k5 d. H0 B1 S+ x
- ;;
6 C; _9 y* }; B" |4 Y& f* y& a - (defun ver_pt1 (ptype)
! V8 m4 F; Z( q - (if pt1
- c# O' N0 H; G( { - (progn
% H* j; j. X9 S/ K - (tempmod pt1 10 ptype), z) l5 @( A0 R- \; \- [$ m. b6 V5 V
- (entmod elist)6 S$ ]+ e7 A; d: e- L" u }4 G
- )
- R4 p# x( }" y( Z+ D: c) c$ I - (setq pt1 (list x1 y1 z1)): W& S! [: ]8 R. T2 q
- )! j m! e* D) b2 H" V. ^3 { V7 B
- )) e' s& g1 Q1 B$ b
) r, z9 |' e# V- ; (move_pt1 <ptype> )/ a7 ?+ `/ A' K+ B
- ;5 f* ^ ?/ j& F) l
- ; Called in liew of (ver_pt1) to translate block insertions which
: J X4 X) o& E% w; F% w - ; might have variable attributes attached to them. If the distance
) s" \8 n) h$ k/ \0 { [ - ; the block is to be moved is < 1e-6, the move is deferred.6 D/ Z* B' B% R2 c
- 5 }% ]$ b. n/ a8 T$ u( A8 ~6 ?
- (defun move_pt1 (ptype / basept hi)
5 V$ Y& U4 @. V) C4 {$ t - (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))
; {0 S; e: J8 \8 m - (cond" I. k5 I \9 W5 {: n* b
- ( (not pt1)# i: e3 s( B3 z" Y9 X. c* ?: G8 D
- (setq pt1 (list x1 y1 z1)))
" ~/ [; _ l: i& S- D& v - 7 S1 H3 {' C/ D+ j* \
- ( (> 1e-6 (distance pt1 basept)))
+ N% O1 U" s# i) h; e- l% O - * c, m: L! g. c/ a! t
- (t (tempmod pt1 10 ptype)
5 G4 x& A& ?& R: }. W9 x' y - (setq hi (getvar "highlight"))
) ^# {9 x3 V: j) z7 E - (setvar "highlight" 0)" _+ l, k9 [, C1 U6 y- {
- (command "._move" ename "" basept pt1)! _5 Q- N4 i, Y! f( [/ ?9 x
- (setvar "highlight" hi))2 a. ^, H! T, }9 ?( B( z2 \) F
- )
T8 \4 m" k8 Q) p- h" w9 X1 V - )
& j' [: h- P3 u4 k9 L! t: d# K( _ - 8 F9 \( t7 X+ N, J" a8 B
- (defun ver_pt2 (ptype)
! [5 n; a9 N; S/ k3 G& l( V7 H3 }9 O - (if pt2# }/ M" W0 l9 {3 M) @% U- C" \* P
- (progn, G, g' n" p! C! p7 K$ v* [* J5 o. f
- (tempmod pt2 11 ptype)
, u- G0 D, ]7 M9 I+ D. z - (entmod elist)$ e; o' c" z% i3 p
- )
# m8 |" {/ j! ^( o - (setq pt2 (list x2 y2 z2))1 D1 @' \$ B6 Q( Y6 D8 `
- ). p2 n! P+ W# i( {6 ^
- )
& ~' z1 ~* C: O6 F
, k0 n5 \$ P" Q- (defun ver_pt3 (ptype)/ |- m: S/ v3 x& n
- (if pt36 }6 Z( |7 D! q8 W( L6 o' ^
- (progn
' E! W4 T+ [- V- @% J. n$ v- Z. y - (tempmod pt3 12 ptype)9 S0 @% `0 i& r1 y$ x0 p4 H5 u8 C
- (entmod elist)
, X3 U( R8 |6 E# _5 L - )* L+ h1 ~! W9 L, {" M
- (setq pt3 (list x3 y3 z3))
% v9 D; _& g6 s7 w+ Y2 k- k - )0 l* {$ d3 G8 I" ^& q
- )
) [+ N( Y# Z& D4 `* o
5 r8 W8 c# r# L+ {. `* w- (defun ver_pt4 (ptype)
I. E* { T0 O; U - (if pt44 M: B5 S3 s" a( V
- (progn' }+ k: X. {" o+ \) {" H
- (tempmod pt4 13 ptype)( `$ H8 z6 a: c# N R
- (entmod elist)1 h" z) k3 |/ y5 G
- )- ]: P* I6 \! W9 f5 }, C
- (setq pt4 (list x4 y4 z4))8 ~ e4 ]; e7 I) u2 E# C+ N+ |
- ): D& k# t1 Q; j+ F i: N* u
- )% e8 O) z, U# x$ P' T% M
- ;; Xline/Ray' f- d& [7 P3 D* N ^2 C
- (defun ver_xline_pt1()7 X& m) r$ d' N" W
- (if xline_pt1
: x! J4 ^3 o* l2 u' w1 g1 \ - (progn
( H2 Y1 n; d9 b1 d - ;; convert to WCS.
! m* F1 n$ y& {* ~( K+ k" l - (setq value (trans xline_pt1 1 0))& M+ ?. b) t p% `% s8 D) Y; K
- (setq elist (subst (cons 10 value), D+ p+ X- E2 o7 I1 x' r6 r6 C
- (assoc 10 elist)% z' N5 g- Q! p
- elist
7 h" d5 d/ w4 J+ R" Q - )
L6 g4 g0 L2 s# U1 Y - )8 Z# X6 [& [% n Q; c
- )7 U7 \# u: g1 }, N% a) _
- (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
/ g% @$ m0 q# ^- M3 E% F$ o3 k - )+ [# {- ?8 a$ t6 \# v& B) g
- )
5 T# t) L4 \# B; q: f - 3 }. J# R7 ^6 }8 E
- (defun ver_xline_pt2()
3 f4 ]1 v: Q; v) _5 U# Q1 O1 G - (if xline_pt2
# u1 a0 Z+ f3 I - (progn' x1 Y4 s5 `* w6 g0 \& j5 S
- ;;
9 C3 E2 ]- W. {" L% _ - ;; Calculate new Direction Vector WCS; I+ y. k4 E" q' j0 G
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))
G" T# p* G6 @2 K - (setq temp_dir (trans xline_pt2 1 0))
& q; Q. W1 M2 [; ?" b8 C2 S; J% k' W - (setq temp_dir_x (car temp_dir))
* j# s5 G& J# I) g - (setq temp_dir_y (cadr temp_dir)) K' Y# f: n D9 V6 J; J
- (setq temp_dir_z (caddr temp_dir))% Z- R# G3 a7 W: Q
- # l5 W, B7 E$ L' q
- (setq temp_xline_pt1 (trans xline_pt1 1 0))
" {1 O: G* r5 n4 P+ R% L0 R+ O% |! l - (setq temp_xline_x1 (car temp_xline_pt1))
" Y# |& L4 b* l2 }1 O$ |* H - (setq temp_xline_y1 (cadr temp_xline_pt1))
+ I2 h; }1 x$ Q1 X9 X D - (setq temp_xline_z1 (caddr temp_xline_pt1))
: m# w( ^3 S- X" W8 ^
2 u/ O( _$ U, {, e0 Z- m# z- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
$ z, D* q- @0 @2 c8 ~- t( s - (expt (- temp_dir_y temp_xline_y1) 2)
# L! i* f; a5 z, [; y' h! X5 C$ { - (expt (- temp_dir_z temp_xline_z1) 2) m4 ^( r% o8 j3 T4 ?6 X$ b
- )))
# r; A4 d* w& w - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
. D# l1 x2 A, s - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
" v& b+ ^8 A) `% l - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
7 a+ J: c% X. T - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))
+ T$ T: e- m! {# H" {/ K7 g4 d, w - (assoc 11 elist)
2 o. z6 s" d" f ` - elist
! P, B3 S/ d! K# w7 f - )1 W' A7 g# m- E$ V5 }
- )
7 B/ c+ `* w; `- `1 P: v, Q" T - (entmod elist)( V# R- v ?& C/ F- x" z/ V
- (setq xline_x2 (car xline_pt2))' H+ H' ^1 @6 E: u( P- V
- (setq xline_y2 (cadr xline_pt2))2 V8 e/ i. j+ {8 C
- (setq xline_z2 (caddr xline_pt2))
& q) [7 `/ ^9 x0 U4 @ O - 9 I) P) {% ], j: P) o
, L0 W2 o% x9 ~- \' U2 c- ). ]2 A9 |2 M6 ~. `7 x# S2 U2 V
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
; `5 Z8 ]2 l+ k, u! x* ? - )! O l0 w7 P, R
- )
6 b) C$ u4 G) a5 T8 _# J0 @0 K - ) q0 ]( g$ q% s1 W
- ;;
4 {. K$ ?$ ^4 S - ;; Common properties for all objects
( ]' ~6 z& k: l8 A' ~' a' t8 |# M - ;;( C; A0 [3 O1 x1 t4 F/ o( [ m/ s
- (defun set_tile_props () q+ a4 e: i% |
- (set_tile "error" "")7 M3 V/ w$ Q1 R
- (setcolor)
# Q9 _9 K- q8 M! W/ D. ~. l% U& l - (cond
# q! d& `: y) ], Z$ g) J - ((= eltype "BYLAYER")) a( a- Z; ^, q( T2 d6 y' N
- (set_tile "t_ltype" (bylayer_lt))): z; w0 M$ J% j7 j9 l- z
- ((= eltype "BYBLOCK")
/ y) @8 L' Z* V, e' N8 f! W - (set_tile "t_ltype" "BYBLOCK"))' h5 i+ D% u. L0 r
- (T (set_tile "t_ltype" eltype))
2 b" C2 N7 ^9 k4 f - )2 v" p$ @. [4 [9 k2 ?4 {2 h" y
- (set_tile "t_layer" elayer)2 S, n# ]4 l& |5 G7 A$ V* A0 ] c
- (set_tile "eb_thickness" (ai_rtos ethickness))1 N% G" F6 ]! h: W0 @$ v( M+ ]
- (set_tile "eb_ltscale" (ai_rtos eltscale))6 h# V; o. ? |: [) _
- (setq which_tiles (ai_common_state etype))
3 C" i1 O+ P- d+ J5 F: h - ;; Disable tiles if need be...
; o; y/ H/ c( C% C2 a
6 a& o6 f9 ]* D. s' g3 ?- ;; Layer Button and Text Field
0 @; c% W8 J; _ - (if (/= 1 (logand 1 which_tiles))2 J/ F P! `* m L
- (progn
; o7 Y* P$ O0 M' p2 F - (mode_tile "t_layer" 1)1 A M. |. a' n+ N/ l
- (mode_tile "b_name" 1)
! t+ o; T) i+ q( ^$ ^, x - )
- Z' E U" ~' ^( g: G0 O - )/ a. |* q( w+ r1 d- I$ c7 W
- ;; Color Button and Text Field: E3 U1 R$ A' j
- (if (/= 2 (logand 2 which_tiles))
' k; K8 |8 Y3 J( \) g - (progn+ d) ~& C- O0 j" n) v. I' V
- (mode_tile "t_color" 1)# H; ^$ [( j% c8 \& Y, D! L
- (mode_tile "b_color" 1)9 G8 m# K H* @4 y# p
- (mode_tile "show_image" 1). l& S2 [: {1 u- r8 F' ~% S: G
- )# k; z* _$ A: |
- )$ v) d* m# i/ m# B/ e7 Y. e
- ;; Linetype Button and Text Field$ u; `% ^- R- m; t8 F+ |
- (if (/= 4 (logand 4 which_tiles)), o0 a7 F- F# d4 n' a; {
- (progn- E/ G' b5 Z$ }$ A; k$ }$ U% O4 H4 d
- (mode_tile "t_ltype" 1)
' N5 H6 {) r1 R" n/ M - (mode_tile "b_line" 1)4 C. O4 n' v2 S
- )5 s1 _! a; n& B1 K8 e& B/ k9 l. U5 Q2 X
- )
" Q3 L# \4 g! b' V: v' l - ;; Linetype Scale Edit Field
. @" X: u5 V5 h - (if (/= 8 (logand 8 which_tiles)); Q4 L; s4 d& h2 D2 j
- (progn
3 u. p( n& ?. T - (mode_tile "eb_ltscale" 1)
# w( u/ D9 b2 h$ w7 Q- x) H - )
) R" N; P: K& P( y: i3 |, u - )
! O# g5 J1 C1 ?. ~! F% U - ;; Thickness Edit Field.
* a! s6 }* D+ O6 w/ L' { - (if (/= 16 (logand 16 which_tiles))4 q) Z7 m4 d1 }# c( O: g9 P7 ]3 W( M
- (progn/ g+ j) B. P+ Z
- (mode_tile "eb_thickness" 1)( `( H" ]. F: o( o# P$ D
- )9 h0 l6 ?/ q( Z+ \8 x5 X, ~
- )
2 @! A) `! d3 v - )% e# L7 _( T0 a" m, q3 O3 k+ G
- ;;' V' \; }2 S* W# t" C$ t U
- ;; XYZ Point values for all enitites
# Y5 _, P I, K - ;;. _5 C) }5 A9 b* F% r. P. t! v
- (defun set_tile_pt1 (ptype)! ~# h3 i- X' B$ I
- (if (= ptype 0)
) m6 H# F* M; Z0 T1 O- K5 _9 S7 D - (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))
) u( _% t1 [1 R6 R! ` B - (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
& ]4 e f+ H; B: F - )* Q/ s F. D8 S( i# E" y' g( \
- (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1)))): ~7 J" G% c; s7 y& I' F2 H
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1))))$ b8 o1 f; e3 V% C& ]
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))/ w; q: J l/ D$ j
- )% _5 i8 H5 M' b0 N* M
- (defun set_tile_pt2 (ptype)3 D4 o: Q& D" ^
- (if (= ptype 0)
9 d2 b" [5 R. t( B2 R8 F - (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))9 a. _- j4 T5 _; _5 j% x6 R2 ~
- (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
$ h5 h4 W% i1 u5 S2 c - ), @$ V$ S. p8 `9 J
- (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))( P. p( V( k4 g+ d: \9 h# X
- (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))% O0 }% s0 Z3 l7 \
- (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))
7 m p; M" ?* O: x" U - )4 \( W4 ]1 k$ U; A( k% h
- (defun set_tile_pt3 (ptype)
$ W' G) S" g- i- F( g: H! P - (if (= ptype 0)
0 }% e1 r$ a: c - (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))
5 v: g9 T/ l7 ~: G1 M A - (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))
; c P- p H9 r1 `3 u: V - )! C% w" C5 @) [
- (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))) W9 P7 ?1 A: y0 T/ v; C
- (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))8 y, G/ c! H, e
- (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))
; a/ _5 W# z) A# K8 q - )
! N# G4 k& S k4 p6 W! Y" o& R9 J Y - (defun set_tile_pt4 (ptype)3 m C& |& U2 H5 B
- (if (= ptype 0)
0 o' n* Y$ J2 P5 p. C8 R$ p7 D - (setq pt4 (trans (cdr (assoc 13 elist)) 0 1))
+ l( V% o, W/ X - (setq pt4 (trans (cdr (assoc 13 elist)) ename 1))
. b. ^# X! v0 T1 [8 I - )& y& b# `, T d$ |
- (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))% f; n3 h3 B4 V0 B. ]
- (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))* c k7 S+ I. a* B
- (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))6 p( U! H2 l/ p4 j$ T: p7 R9 ^% K* a
- )
, d7 B5 X, [6 v0 N, K, B9 A) H - ;;
6 X/ r# K/ Z+ s1 H9 y4 S$ Q0 M( A5 T - ;; Xline/Ray
% G4 ]1 K3 [$ _+ T7 @ - ;;
( @* w$ l8 V, Q8 Q - (defun set_tile_xline_pt1 (). A+ t7 Q+ x9 K% w6 U
3 {0 r( l/ O% C- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))
5 q7 w4 e) G. H4 l
( J( @6 m3 u* R' L4 {" w- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))
& b' ]8 Y6 v2 ^3 R# j" H - (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))
7 Z5 p1 O& \0 s# L4 v0 W. q7 n - (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))9 {( b; }$ ?9 X- v9 m
- )$ z0 e0 S2 V* U) f- L5 M5 S! H
- (defun set_tile_dirv ()# j& o/ v9 U3 y. i, `
- ;; Convert 11 group to local UCS (displacement)
- n( U% e$ y6 K+ d7 j - (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1))
" }" y% p! |) O
7 g) m+ t i* Q H$ Q0 E- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))
+ [" A* {8 v: F! x( `/ D! y) X. ^" w - (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt)))); r7 {: Q, U' [- \
- (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt)))); T* O# [$ ^" N f
- )+ ]( J% @0 L* G
- (defun set_tile_xline_pt2 ()* l. @; z; u# T
- (if (not xline_pt2)$ B5 n4 {0 l" I) T1 u/ ~
- ;; Initial second point is Root Point + Direction Vector& S, c6 Q, o, O8 f! F0 `
- (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))
9 N$ d/ R( L! d2 Y- l/ w$ z6 \% W - )
0 K" a$ |4 J8 E7 \ - (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))
! I# t! b* Z9 |3 p - (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2))))
* A5 ^: r8 T( ^) l6 O - (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))
6 ~7 E/ E4 C+ l1 ` A3 T: h - )
$ b. G9 I% {; E4 [+ U" E
( x, X' D3 P" U" j: Z1 p- ;;( O. g; \) G( A7 L9 Y% M
- ;; Handle for all objects: y! Y0 ~1 U2 ]2 U4 N
- ;;
: r& w, ?% X9 x# Q# X" H5 \* O+ ] - (defun set_tile_handle ()& B% s! q, s5 f7 `2 @
- (if (setq hand (cdr (assoc 5 elist)))
7 ]4 g" t& S8 Y! \8 {: A# [ a9 O) a - (set_tile "Handle" hand)
! Q; l% D4 o, L% r1 K% o& w1 }: W - (set_tile "Handle" "None")
: o5 Y. y% G* u- M$ o% j/ X( \ - )* \9 z, e. w: @) I% q9 R
- )
: m! s' ^& J9 t8 l0 B5 o; P) a - ;;
4 j! B; A7 p7 W4 V - ;; Radius for ARC and CIRCLE
$ S0 J; A" l8 X2 {7 L4 B - ;;
3 o% ~/ Y+ P3 Y6 g - (defun set_tile_rad ()
1 q/ i* i6 u m - (setq radius (cdr (assoc 40 elist)))
9 i/ ?$ I* [' a7 {* ]0 V( w ]& Q - (set_tile "radius" (ai_rtos radius)); ~ [. g% b# m) l# ]! b; B
- )
5 L2 Y2 M' z5 W- R" M5 e5 d - ;;
* h/ V8 K1 K8 `# W - ;; Start angle for ARC
8 d9 \7 Q: g5 g - ;;* |+ G# U" k; h) u2 i
- (defun set_tile_stang ()( j0 k1 A/ I; B5 \, S3 Q
- (setq st_ang (cdr (assoc 50 elist)))( X- y& e% n/ a9 S
- (set_tile "st_ang" (ai_angtos st_ang))
0 z4 O# L4 P3 [% D - )2 L s c: l. k+ q* S x6 N. X
- ;;
2 a3 ` {* I0 c. J7 g9 D$ l- C$ i - ;; End angle for ARC
8 W) U9 M3 ]6 h& K3 V) v( I - ;;. _- ~( w- a* G" g: a
- (defun set_tile_endang ()+ C* Y" c# G; W) X+ ~
- (setq end_ang (cdr (assoc 51 elist)))' G2 I9 k1 m2 ]
- (set_tile "end_ang" (ai_angtos end_ang))* d# d3 j2 t2 k# e4 L
- )" _0 `/ J9 r# @2 {- C
- ;;
* ^0 ]$ y2 p" G0 @, T - ;; Rotation Angle - Text, Attributes, Block insertions and Shapes
4 i$ X6 h+ ^* w% t. @1 M: R9 ^7 m - ;;
R. c- \! s0 L - (defun set_tile_rot ()' Y6 R! k* Q) f/ N( {* X4 V$ C& I) W
- (setq rot (cdr (assoc 50 elist)))
" o( H5 G9 ^% ? - (set_tile "rot" (ai_angtos rot))
0 K6 x$ s6 ], h3 }! b6 P6 l8 G6 e# @4 O - )( S. W4 i* _0 ^7 r/ p
- ;;5 v4 O& O' A9 v; i, E
- ;; Height - Text, Attributes and Shapes: ?9 [) |3 a8 U# c3 u( p# _/ t, [$ L
- ;;& I5 k9 }& p* z) Y/ K
- (defun set_tile_hght ()
6 |8 E" H' y" N+ t0 } - (setq hght (cdr (assoc 40 elist)))
2 Y, P& _# G5 @; Q, g - (set_tile "hght" (ai_rtos hght))4 Z/ c( }# Q- D
- )
) K$ D6 }3 j# L5 ?. N - ;;- C: a# I2 K, U
- ;; Width Factor - Text, Attributes and Shapes
, z' l* l8 d: t8 G! s% v - ;;1 n1 K8 R0 V& c: F
- (defun set_tile_wid ()
4 K2 q/ S1 ]0 q' c - (setq wid (cdr (assoc 41 elist)))1 D5 C% W! Q9 _" i6 r
- (set_tile "wid" (ai_rtos wid))' I) k. V! D1 U% \
- )
. E4 y# h, c+ G, p' D6 d - ;;
" e: n' A" c% j3 P$ t1 w# M - ;; Obliquing Angle - Text, Attributes and Shapes( @% U2 `- L% B5 a0 Y, u4 ~5 |
- ;;( s' l/ q; O% ]& f' Q8 q
- (defun set_tile_obl ()
& T u. ]* y7 L1 I) a1 [! t3 c - (setq obl (cdr (assoc 51 elist)))
2 m5 ^$ U& A; v - (set_tile "obl" (ai_angtos obl))
) u; [* L0 k* o - )( [$ z9 C# G$ ~" x
- ;;
' s4 w- p: M) K7 m6 }: B - ;; Text string
1 Y$ z- i( a$ c! E [# q - ;;
$ |! w% Y& J; J2 g9 ~/ R5 W: Y - (defun set_tile_text ()6 F# V" Y% S, d2 n$ G
- (setq text (cdr (assoc 1 elist)))
: F. A2 K$ Y. B3 d& J! @4 ` - (set_tile "t_string" text)* G* g+ f% v: g$ l1 l
- )
0 G6 _- C$ z$ J; f - ;;
; m- f1 j% d+ p! F# y4 g( T - ;; Attribute Tag
6 H) D& f, k" K! t. a% h: \! g8 k - ;;
7 l! q- W8 ~2 K) f. X - (defun set_tile_tag ()) A4 d3 e3 t8 _/ q# U1 I9 n5 T4 N
- (if (= etype "ATTDEF")4 B7 N3 X! T5 P% D2 t$ y% a
- (progn
# Y/ y! e$ P/ Q j! I D3 y& t+ ^ - (setq attag (cdr (assoc 2 elist)))7 P2 o. X1 t( X7 |6 C% D& f
- (set_tile "tag" attag)
8 ^+ U% R2 u1 C8 ~ x$ d - )
# Q& @0 n3 |+ b! L, I8 X - )# _7 v( e/ K7 S3 [2 F& ]. o
- )
. W' Y/ k h) S$ y6 d7 Z' V - ;;. B3 C- S" P0 g* z+ O' P+ i4 C4 {
- ;; Attribute Definition
: y1 y! A% T! Y5 i - ;;
" n/ G7 E- g$ h T% H - (defun set_tile_prompt ()
& ?0 x! G% G; o( L - (if (= etype "ATTDEF")! W/ b& h5 d9 p% f
- (progn! h8 J2 | |6 v& R' _
- (setq atprompt (cdr (assoc 3 elist)))
r7 _+ U% S# E - (set_tile "prompt" atprompt)
$ j* r, l8 n/ e! e- t3 C - )
) a5 m0 x( d4 ] - )
/ { y+ V5 N- I, B- b: P: m& f: I - )
7 r+ @* \, q% m# y, }: A - ;;+ @$ E- D. n w/ k, d
- ;; Justification setting for Attributes and Text. Initializes
" S$ Y- M2 ~6 ~- k - ;; popup list box
' Z! I9 t& r5 A& l' k( X - ;;
) a4 x) r7 p* L) {. R7 ?2 ~ - (defun set_tile_just () z- |% b: j& O W: |- d( [
- (setq ha (cdr (assoc 72 elist))) ; horizontal alignment
2 Q7 ^0 V+ P4 G2 d q - (setq va (cdr (assoc 73 elist))) ; vertical alignment
) G9 v4 t2 j1 r - (setq ha-prev ha)
3 a! f' M J% e - (if (= etype "ATTDEF"); ?8 W, w& w" j% k$ s1 R4 G
- (setq va (cdr (assoc 74 elist))) ; vertical alignment3 K0 J) ^+ s' K4 e6 M6 v7 D l
- )% k5 m8 ]! b4 G0 Q- { v
- (setq jlist2 z8 {1 b" [( b3 W7 V1 k
- (list "Left" "Center" "Right"7 Z. r2 ^+ g- [0 q9 A' \8 R
- "Aligned" "Middle" "Fit"9 P9 @! D1 x* L; g+ u, |& p1 a
- "Top left" "Top center" "Top right"2 |! B& b1 U" w. @7 G i
- "Middle left" "Middle center" "Middle right"5 F( O6 ^: z) s+ [( y
- "Bottom left" "Bottom center" "Bottom right"6 A+ z$ m5 s3 n( P, f' Q: b0 p
- ); U" ^ w/ G( h( ~) A( U/ ^" }
- )
: i( [! s7 u" p - (start_list "popup_just")# ^. R2 `5 @: B2 F6 s0 d
- (mapcar 'add_list jlist)& c5 l( P6 @* d
- (end_list)
! H+ ?5 S6 V9 S; h; ~5 b% { - (set_just_idx)
! ?& X6 s0 K8 x- i$ y9 x - (set_tile "popup_just" (jlist_act just-idx))1 r+ i, d3 i& E y/ I" H& e
- )
$ r+ m7 d0 G- w* _: }4 G3 M; i - ;;$ |. E( f3 r% [- L7 W. ^
- ;; Style setting for Attributes and Text. Reads symbol table for popup list
" C# s( ^1 q3 w$ J( E* ` f - ;; box.- Y) r3 w* [- G" c# o. A4 J* p- v
- ;;
0 W. a5 T- B [" P% d( T - (defun set_tile_style (/ sname style-idx tlist) Y! X* X3 f, F* r) [
- (setq tlist (tblnext "STYLE" T)
) \, k8 y8 o. S- [ - slist nil)
4 {5 b% e" x7 m - (while tlist8 X7 J' ~$ d# F" j6 v
- (setq sname (cdr (assoc 2 tlist)))/ ~! {1 K) [9 b5 I" K* T/ E
- (if (and (/= sname "")
' c, [4 C+ v3 W1 |( p# } - (/= (logand 16 (cdr (assoc 70 tlist))) 16))
& X3 L; [; N# \3 ^5 c - (setq slist (cons sname slist)))
# w5 p9 l6 C/ a - (setq tlist (tblnext "STYLE")))
6 j% v; b4 H3 |8 o$ Y - (if (>= (getvar "maxsort") (length slist))6 }7 ^7 }! _) o, @" p
- (setq slist (acad_strlsort slist)) ; alphabetize style list. d' Y6 a+ |& d: m# F
- (setq slist (reverse slist))) ; or reverse it to put it in DB order
+ Y9 Y# Z z& z! q6 @" w
7 s) o, m* O$ |2 N3 k! |- (start_list "style")! w& p' a& |9 n2 d9 s
- (mapcar 'add_list slist)) V- C' K5 w% V# x" e& |8 }% s" P
- (end_list)$ P5 S4 b1 D! x9 p) `
- (setq tstyle (cdr (assoc 7 elist)))9 E' ~5 \/ H p4 }: w* {
- (setq style-idx (getindex tstyle slist))* z( @+ `, d& K- w. Q
- (set_tile "style" (itoa style-idx))- k! j" M' v0 ~: Q
- )
- S6 k3 ~6 ]1 d - ;;
! X: v9 X* E% u% t& J - ;; Text and Attribute setting - upside-down, backwards
+ |$ \5 e; A- E) x - ;;: t3 e4 K5 R. O/ B9 J
- (defun set_tile_bk-up ()$ R4 ^4 A4 b8 p, u# y8 D. l
- (setq bk-up (cdr (assoc 71 elist)))# m' ]* M6 R$ a( f$ ^/ }
- (if (= (logand bk-up 2) 2)
! X" l+ C. E5 b/ I: T: ^* p4 I! S - (set_tile "bkwd" (itoa (setq bkwd 1)))
% N W- ?$ h1 Y' ? - (set_tile "bkwd" (itoa (setq bkwd 0)))
5 |8 m1 _ F; A B; _5 z - )3 |5 ]" l( }& S5 M2 w6 ?3 q
- (if (= (logand bk-up 4) 4)
# I' Q( b, o1 Y0 X- s - (set_tile "upsd" (itoa (setq upsd 1)))- G; F* g3 x/ p z/ W* s8 X# x# z
- (set_tile "upsd" (itoa (setq upsd 0)))
5 x- A* u J2 ~5 N - )) v% G: X( l2 L4 @3 Z
- ), ]# `; f% E$ S3 k K( X( e
- ;;8 Q# N; {" s7 e* ?1 i7 R
- ;; Attribute setting - invisible, constant, verify, preset
+ F3 q- j8 N( T7 \' W - ;;8 { D' [8 {, ?
- (defun set_tile_icvp ()9 g5 i" g* Z# W3 c0 W3 J1 m' }( b7 q
- (if (not (setq icvp (cdr (assoc 70 elist))))
+ ?: U, X0 I9 L9 O - (setq icvp 0)# _( H; }; z5 _: I6 E# ?
- )- b Q, p$ s. \' V5 E% e$ w
- (if (= (logand icvp 1) 1)" @. M q, C. H# {: a
- (set_tile "inv" (itoa (setq inv 1)))
) r: ]8 h K1 q- d$ i! S - (set_tile "inv" (itoa (setq inv 0)))
* |7 U/ E. \4 h6 U8 o - )
) r6 n6 `* i; R1 D4 n( R - (if (= (logand icvp 2) 2)
5 o% P- B% @1 L- A. C - (set_tile "con" (itoa (setq con 1)))
; K; C$ a# C B2 X) H p - (set_tile "con" (itoa (setq con 0)))" P3 v( g# p l F6 a
- )/ t' e/ f* z. e; I3 A; P
- (if (= (logand icvp 4) 4)% s5 v! m' {0 |# ~( O
- (set_tile "ver" (itoa (setq vfy 1)))
* q" }% P; J" m4 }8 { - (set_tile "ver" (itoa (setq vfy 0)))0 Y5 e7 U1 S- D6 B6 ^
- )6 }: V2 s6 K" G. @/ z
- (if (= (logand icvp 8) 8) T, ?! ]/ T, b) z. T, a; N$ H/ Y
- (set_tile "pre" (itoa (setq pre 1)))
1 M4 T+ @1 B8 D; A( ]) y - (set_tile "pre" (itoa (setq pre 0)))
4 H) e* N* H. X - )
* V! E$ p ^% v* c) u9 [5 p& T9 p - )$ _+ r9 k; y% ]& O, w7 c
- ;;& ^; `* } A$ E0 f# S/ w ?
- ;; Scale factors for block insertions
5 o, t3 x' Y. c7 k0 v' }/ @ - ;;6 v/ E: C6 }+ |1 A1 B5 V
- (defun set_tile_scale (/ temp)
$ e9 d. x Y) H4 |+ | - (setq temp (getvar "LUNITS"))$ ^/ _( Z, P6 B2 b4 q* p2 o+ c
- (setvar "LUNITS" 2)3 W, Y$ r) G: k m) R
- (setq xscale (cdr (assoc 41 elist)))
+ }! a, ~- V& `& ?/ \$ c. ]3 I, w - (set_tile "xscale" (ai_rtos xscale))! }4 B H, d8 s* e Y2 @" I, f. e
- (setq yscale (cdr (assoc 42 elist)))* y% M/ |) T2 s4 y
- (set_tile "yscale" (ai_rtos yscale))
- }, p# R, k6 d( u - (setq zscale (cdr (assoc 43 elist)))
7 Y: e+ e" D* p - (set_tile "zscale" (ai_rtos zscale))
! G" a) T5 j$ e1 _5 R - (setvar "LUNITS" temp)
6 N: ], F) T5 N9 O! c& G4 {4 j* \ - )- T4 E' ?. f& E& N- H. e" H6 a
- ;;+ ?8 f& Z1 ?/ h5 I `
- ;; Rows and columns for block insertions
0 L8 x) S3 ?/ w5 n7 y - ;;
! b/ I. x \% M& v0 ^& w - (defun set_tile_rc ()
0 E6 k8 \5 g7 R' R0 j( g) ]8 j; n. ? - (setq columns (cdr (assoc 70 elist)))
; r, n: l8 |' C$ \' n2 S; m - (set_tile "columns" (itoa columns ))
5 f% l9 i& W- ~# V' [5 s, N" E& o - (setq rows (cdr (assoc 71 elist)))
5 p4 R3 r! ]0 F9 X. l - (set_tile "rows" (itoa rows)), B P" c7 Q( l0 B2 n/ c) V
- (setq col-sp (cdr (assoc 44 elist)))5 r' [* p* Y( y! j) z. v r- q
- (set_tile "col_sp" (ai_rtos col-sp))
- e3 c. c8 U7 Y. l2 Z9 Z) ` - (setq row-sp (cdr (assoc 45 elist)))/ f6 a' x/ h" H; [' c
- (set_tile "row_sp" (ai_rtos row-sp))
1 N' r- J. P9 A - (if (/= hasclip T)
/ y: P2 J5 i0 q& H* L - (mode_tile "xcliponoff" 1)
# P1 c& _2 r; o$ _) p) ~8 C3 _; Q5 h - (set_tile "xcliponoff" (itoa xcliponoff))
9 u' T2 ?% A8 x' L. T# o1 Z1 Q/ S - ): P, j# W2 ~7 {: ^4 Z# J9 p
- ), T7 {% d' R3 G J" }9 o
- ;;
& \/ |4 [* R. u - ;; Invisible edges for 3DFACE$ D6 {+ |+ L4 f9 L
- ;;7 d* d; w5 t1 X; N/ B
- (defun set_tile_edges ()
1 u7 A" w2 [, C6 f; {7 U - (setq f-vis (cdr (assoc 70 elist)))3 n( \! Y& N! q& {4 x
- (if (= (logand f-vis 1) 1)0 V% X: x! M- O
- (set_tile "edge_1" (setq edge1 "0"))1 T7 \4 {% `5 @
- (set_tile "edge_1" (setq edge1 "1"))
6 l9 R+ C c8 D) |3 |# B! s - )
2 j: k" N1 a0 `* [ - (if (= (logand f-vis 2) 2)
3 A1 U, w* v9 J) P! T v) Z2 E. e) d - (set_tile "edge_2" (setq edge2 "0"))2 z! y$ \+ O8 U8 n' `+ x
- (set_tile "edge_2" (setq edge2 "1"))" \; f1 Y: I ?' |5 `. W
- )) H& L/ m0 a8 y# u" [6 z, v$ c# h
- (if (= (logand f-vis 4) 4)
. |/ @* O% A+ [# p - (set_tile "edge_3" (setq edge3 "0"))
) P, H- U; }0 l# t- J - (set_tile "edge_3" (setq edge3 "1"))0 Q* o) z5 i9 t2 R+ k! L$ r
- )
9 X) B" p+ r' p% z$ c1 x4 A* ` - (if (= (logand f-vis 8) 8)
+ n/ U" v6 C8 L+ F - (set_tile "edge_4" (setq edge4 "0"))
& w" }3 Z6 U. d$ S1 K6 ]3 U0 v3 d - (set_tile "edge_4" (setq edge4 "1"))
/ K& r4 v, q4 l: v- W% V/ D3 I - )% X) |1 M/ P7 t$ B* Z. Q7 s6 |
- )
8 n" j2 }" m$ \* b - ;;0 A, K5 P) f3 R6 M/ j8 A! ~7 p% `
- ;; XYZ Point values for polyline vertex
/ \* t% p. f; {0 [0 Z+ \ - ;;
3 ~$ Q: G2 [3 b! x9 G4 | - (defun set_tile_vpt (ptype)
% x H7 e' x! K2 p" Z* j4 { - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")4 z/ h& J' z" Z
- (progn, [" P/ ]4 t5 }+ J
- ;; ctr is 1 based, vertices are zero based.
7 N/ r6 f3 h, ]0 G& `& ]! n/ O6 A - (setq vpt (cdr (getLwVert (- ctr 1))))- v6 d5 H0 X9 X! e: E
- (set_tile "xtext" (rtos (setq x1 (car vpt))))
# A6 n4 R, c( Y. S! X - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
, M* M% ~; _. W; g) j/ f7 R" f- x - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
6 A) ] w8 B3 {2 L - ) d' A- E% v* K# p! g
- (progn1 M3 Q! G3 C# S& a# n6 o5 r
- (if (= ptype 0)
i/ V3 H1 d) B0 s - (setq vpt (trans (cdr (assoc 10 vlist)) 0 1))8 H; H$ N( {% |7 P1 t% N
- (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))
, m6 e K9 }# c M3 ^* X - )
* \: B% O7 p' Q0 ?$ u' b
: s2 h8 r Y2 l' k5 M- (set_tile "xtext" (rtos (setq x1 (car vpt))))
0 k; {5 e! g$ h2 y - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))6 b2 ?. o9 S, i1 O2 d, a
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
$ d: M: m6 f3 N) l* \1 Q/ S - )4 [8 J: _3 ^0 ^- n, {& C, F8 s: A
- )0 b6 o: I7 {% d2 S5 N8 R
. n$ s3 a0 v/ R- z# _) \- )
1 M7 z3 p8 e: b - ;; This is the equivalent to doing an entnext on the heavy weight# f# J- W7 g) e
- ;; polylines. The hard coded '4' below allow stepping over the$ l& q- O1 N# f% [
- ;; 40 41 and 42 group code information. The while loop finds the
, C$ o: Y ^9 G5 F, U6 I3 g* E - ;; first vertex which will be used as the starting assoc in the
4 {+ Z) F( `+ X% y - ;; call to nth.# \. p% a8 x/ Y
- ;;
$ V5 T/ s% _# L I' k; { - (defun getLwVert (tmpctr / count tmp)
- J' Y. i$ u3 k% Y0 V, M7 W e" l - (setq count 0)7 T! H; G2 |) V; a
- (while (/= (car (nth count vlist)) 10)
7 x; T* |" I& D3 X; }5 I - (setq count (+ count 1))
6 \$ w" i7 j. k - )) J0 c3 z4 Z6 `# J8 A
- ;; If the counter reaches the number of vertices,5 |5 ~* Z6 m5 V h2 I) j
- ;; reset ctr and tmpctr to zero again.4 g) b7 G/ P7 b, q# e, d1 }7 B
- (if (= tmpctr (cdr (assoc 90 vlist)))9 O$ E+ L4 [& L, H/ Q) V$ j, Q
- (progn$ j) f* O4 H! y3 w3 p' N' A' A7 s
- (setq ctr 0)
, I* K2 v3 f% b$ ?( k; V. u - (setq tmpctr 0): S" Y" ?, @& F& _2 ^; [4 V
- ). n, s# o' b' n- M- k; z4 a
- ). |9 l4 q. v9 N
- (setq tmp (nth (+ count (* tmpctr 4)) vlist))0 j: {& j5 L! g8 S
- (setq tmp (append tmp (list(cdr (assoc 38 vlist)))))1 K4 K" o) o0 }5 a+ f! m
- (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))6 i8 n& o. G0 m3 T
- (setq tmp (cons 10 pt1))
2 U2 j6 K9 |# X# z( a, W8 E - (setq tmp tmp); K7 f1 P1 d( q7 q% m2 E, q F
- )
: Q" d% H2 \9 I Y - ;;
+ {9 |& C2 y( o( O3 s - ;; Set tiles for Spline properties. If the spline is rational then we8 v2 J3 F9 m/ S! T
- ;; need to display the weight values of the control points, so set' w/ R1 b4 E$ J0 u8 r2 U
- ;; flag to 1.
8 O2 w' w! ~6 f% o, O - ;; 1 = rational spline+ P8 V! m# W' `, h$ v1 l+ \9 _
- ;; 0 = non-rational spline5 o6 I6 u, @0 e, E5 e- u
- ;;* [) w! [. ?$ D B- y
- (defun set_tile_spline_props ()8 ?2 f( f3 b6 o6 U2 z
- (setq rational_spl_flag 0) ;; initialize rational spline flag
: F0 r u) |# E: H4 x. U - (set_tile "Degree" (itoa (cdr (assoc 71 elist))))9 y5 r, ]& T- z. ~1 z( S+ \
- (setq bit70 (cdr (assoc 70 elist)))
0 C9 t) B$ t! } - (if (= (logand bit70 1) 1)
. ?7 z, _# u" U! I4 b( U* | - (set_tile "SpProp4" "Closed")
$ s' Q& ]8 P0 B, ~$ @ - (set_tile "SpProp4" " ")
6 O! K u$ w0 a) z1 k - )
$ a5 x {0 T: \3 n1 @: D3 _ F - (if (= (logand bit70 2) 2): c9 N& r, w' k: C( f& o% r
- (set_tile "SpProp3" "Periodic")
" [: M/ ^5 d4 w3 b! n7 W" P - (set_tile "SpProp3" "Non-Periodic")
0 \$ Q' B( \9 o) @) Z6 k - )
) h H6 D$ O$ \5 z/ D - (if (= (logand bit70 4) 4)
4 t6 t5 O4 [( z; H7 f D! Z - (progn% S- G+ W* {5 \$ G
- (set_tile "SpProp2" "Rational")
6 S. F m& M) @" t T4 ?1 b - (setq rational_spl_flag 1) ;; this is a rational spline4 q; f6 r T% [, e0 K
- )
/ P) P# d! u/ S' f: z - (set_tile "SpProp2" "Non-Rational")2 S( P$ u3 z& R7 O* y) t( X
- )
% { m: u2 e7 R# e" a" V0 O7 l - (if (= (logand bit70 8) 8)
) B9 m+ S7 Y9 H V0 t - (set_tile "SpProp1" "Planar")6 e3 i w! D! |9 v$ O
- (set_tile "SpProp1" "Non-Planar")0 w' z) q' k: U5 V9 z0 {5 [" |& T
- )" {& [1 k. d& }9 ^& X6 Y& y
- (if (= (logand bit70 16) 16)" D# }' `# h+ ?9 ]
- (set_tile "SpProp5" "Linear"), F5 f- Q9 W' w+ e
- (set_tile "SpProp5" " ")
6 I% C) t, b/ f( A7 C6 [% A - )
, z, r* K6 L+ B& I3 \1 m - )
2 Z Y" u: L) I; U# h7 r9 K8 k - ;;
6 @: j7 u0 P: ` - ;; XYZ Point values for spline points1 c0 X/ x3 H. Q$ ]- V
- ;; Need to account for WCS/UCS
) N% t0 N+ q4 Z+ Z - ;;
/ ^! ~+ n3 n3 W/ j- P" [ - (defun set_tile_cntl_pt ()
3 N; I, o$ h: }/ a - (setq cntl-pt (cdr (assoc 10 elist)))
; c( V4 D$ f7 d9 E2 u3 g6 f: i% K - (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))+ c _; F' A/ M7 v! D
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
- K R* e# Q; M1 T1 p0 e - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))
) f* w3 E+ _, Q9 D; q3 x1 ? - (if (= rational_spl_flag 1) ;; if rational spline
7 O) Z* N& Q8 W" ?% |$ ` - (progn ;; show weight
" ^ V3 ^$ M P - (setq weight (cdr (assoc 41 elist)))
; N" L* S; c* w+ t5 d - (set_tile "weight" (rtos weight))
: p3 K1 G2 [3 ]0 X3 u3 X: v6 R - ) ;; else6 T4 s3 ]9 N; O# v% [' U4 e8 t
- (mode_tile "weight_text" 1) ;; disable weight field
. @# u" H$ e8 y. ~: P - )* Q/ _! O k; \; |
- ): c( X8 ?- c5 y l7 W
- ;;3 y+ j# M4 [* u' o' l& h7 W
- ;; XYZ Point values for spline points
. a6 L) D5 o7 L; R3 v" q% X - ;; Need to account for WCS/UCS: W! y( E# W. [$ D0 j; M6 R
- ;;
( [: x! D; A8 }$ R6 n8 I - (defun set_tile_data_pt ()# m' m+ H6 n- s4 c R
- (if (not (assoc 11 elist))6 |0 h2 ~1 r$ G' r( _" w4 C- ^
- (mode_tile "data_pts" 1)
2 W. B# C4 N8 x! G0 A, s - (progn. p% z8 @" z) Q' u
- (setq data-pt (cdr (assoc 11 elist)))3 e" O4 i- w% C
- ;; display points with current precision.( [9 i7 G$ q/ n" b$ s- [
- (set_tile "dxtext" (rtos (setq x1 (car data-pt))))
% S5 i6 C( r+ C8 n6 ^' [: \ - (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
' j+ j# X) S) j - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))9 w2 ^9 K4 L2 N7 q- K6 t/ t* `
- )* e- h4 I7 }9 S* ]" i1 q! _
- )
8 j' o b3 Q4 p3 D3 }% F, V - )
e2 v# I* _# I - ;;5 \& Q! q) k; Y4 u
- ;; Fit curve, fit spline, or smooth spline surface setting
* G+ k% V7 Q$ x9 z - ;;
0 {. |* y8 _4 e9 _+ j - (defun set_tile_fitsmooth ()
% Z' `! E7 |% a* w2 [6 z5 G" { - (cond
) D5 b4 W0 R, H5 @! ^$ d( [' { - ((= (cdr (assoc 0 elist)) "LWPOLYLINE")
% ?3 B. `' |9 ]1 u. S4 |, P - (set_tile "none" "1")+ |& a: o5 x& ^, Y# m
- )
% P& t/ m( f# l0 ^6 U! d - ((= (logand bit70 4) 4)
1 P+ S P9 @" o& Y - (cond
9 }0 c) b7 L7 R! d4 U - ((= bit75 0)( S% b6 n$ n6 U: D
- (set_tile "none" "1")9 @* p9 ]: n& k& S* y
- (setq spltype 0)
! |2 j# s% _; y+ |5 M - ): E/ l8 T6 W2 v# [
- ((= bit75 5)
- z$ S) O" [& G+ Q6 d2 N. C - (set_tile "quad" "1")6 e6 {; H2 X$ r$ ?0 `2 R
- (setq spltype 5)
( b/ p+ I& {8 v2 {' J2 o: v - )
; @/ y* ?; A, H' Z - ((= bit75 6)9 w( a2 U# g/ b- q4 x) Q* e
- (set_tile "cubic" "1")) h* V3 H/ N/ I0 L5 j
- (setq spltype 6). k9 u' V: F8 R' b$ y0 }+ j/ \
- )
% d# @- f, M9 {: ` - ((= bit75 8)& k' `4 g! `% ^) o
- (set_tile "bezier" "1")1 T$ n, K6 b- [+ q+ }
- (setq spltype 8)6 B; [1 C3 n1 \3 u" s; L
- )7 x( e1 I1 S! f0 {
- ). t; S# p1 m6 c9 C' @/ t# K
- )7 `! k, \0 b8 t) a! c" u
- ((= (logand bit70 2) 2)! H2 B+ x$ o2 O+ E& h% D) |$ V( l. e
- (set_tile "fit" "1")
( L* Y& G* ^" W0 T4 J0 M - (setq spltype 1)5 J+ E. K' m# q6 D
- )2 @4 l) G* A- ]! h
- (T (set_tile "none" "1"))
1 `) V( U- D* o/ e$ m7 r0 K - )
/ L2 _+ L; F) S$ v& W - )
; ]: U( h1 @4 o* G0 @/ J - ;;) z8 ?3 I& m# \# c0 _, \
- ;; Closed or Open mesh and polyline setting
' Y" |$ g( M# b0 T) E5 e - ;;; c7 k9 J. u+ R# G
- (defun set_tile_closed ()4 _1 D- h' d% g" [: N1 t
- (if (= pltype "3D mesh")4 o" v, }+ f1 O; t$ E) p
- (progn
5 Z1 I/ L+ D$ R - (if (= (logand bit70 32) 32)0 x: t! ~! S7 @8 [* R0 c' Z1 j0 Z
- (set_tile "closedn" (setq closedn "1"))
' d1 f8 i3 y$ I5 X - (set_tile "closedn" (setq closedn "0"))
' U6 d' N2 ?5 R+ x" L' f) Q& S( E - )
5 T# _# r+ Y$ X; |) D4 c9 {) o - (if (= (logand bit70 1) 1)- i" g% t$ P1 g) i; {+ V' \4 a
- (set_tile "closedm" (setq closed "1"))
1 Y$ o" l5 ]1 ?; P7 G3 j, N" } - (set_tile "closedm" (setq closed "0")) R% N9 g0 {0 A1 T2 i( ]6 N
- )
7 }& _; W/ m* O2 l - (setq old-closedm closedm old-closedn closedn)
3 X7 c0 h" S/ F1 p( G - )9 }6 j* T J& x0 |8 j
- )
' [8 s/ h6 g O8 _- | - (if (or (= pltype "2D polyline")
! T/ W5 M5 D; h5 g# x - (= pltype "3D polyline")) T. C, g, G$ L. f1 \
- )' I0 n; w; @* Y( |5 b" u3 ?
- (progn6 `/ U' P: y& r# j. a& x$ @6 C8 j1 C* U
- (if (= (logand bit70 1) 1)
8 ^: a2 ? H6 J, Y- M. D; h7 X2 h - (set_tile "closed" (setq closed "1"))
- b+ N/ m. J) a* b! H. T - (set_tile "closed" (setq closed "0")); D* e: ?. a* d `9 T
- )
! _) U5 R. A: {4 T# C - (setq old-closed closed)
7 u! d2 z: J1 a1 K# {9 R% b3 F* S - )
$ `" C z' M8 M+ s - )
& o: |8 X- K! F - )
7 b; t/ l2 k( @2 U - ;; Set common action tiles
- V7 T- f$ X' G9 I' G, F' b - ;;
6 ~& T8 e3 f# {1 Y$ x1 e! ? - ;; Defines action to be taken when pressing various widgets. It is called
+ j/ f' \* v3 v5 H - ;; for every object dialogue. Not all widgets exist for each object dialogue,# v# @. b, ]4 P: H
- ;; but defining an action for a non-existent widget does no harm.) s# z- y+ V' l5 E9 v
- (defun set_action_tiles ()
! A# x) g: Z0 {, S. j5 | - (action_tile "cancel" "(dismiss_dialog 0)")
- S; @! e6 X# Y* L- n5 J' D' s - (action_tile "accept" "(dismiss_dialog 1)")( x2 E& }3 k& u! D: O# e
- (action_tile "help" "(help \"\" help_entry)")
( B* C* b3 T* P: R - (action_tile "b_color" "(getcolor)") C2 b, H% Y0 H D: w
- (action_tile "show_image" "(getcolor)")+ W1 e6 ~. _% K
- (action_tile "b_name" "(setq elayer (getlayer))")0 E& }5 V0 r+ i, r, l
- (action_tile "b_line" "(setq eltype (getltype))")6 y. H$ s( G7 q4 N/ w
- (action_tile "eb_thickness" "(getthickness $value)")& t2 h8 i% T- B
- (action_tile "eb_ltscale" "(getltscale $value)")
' z! H( @/ @& y$ Q
$ r* i- q! N) ~5 R- (action_tile "pick_1" "(dismiss_dialog 3)")0 a9 n1 j* c+ @ l
- (action_tile "pick_2" "(dismiss_dialog 4)")$ \; y$ |% K5 l
- (action_tile "pick_3" "(dismiss_dialog 5)")2 ~$ E7 @7 I3 k9 C( G5 b7 S
- (action_tile "pick_4" "(dismiss_dialog 6)")3 H* C" |; j. ?% r- X% G5 m! a
- (action_tile "x1_pt" "(ver_x1 $value)"): T% q+ R' x7 o' U6 z8 H5 Q
- (action_tile "y1_pt" "(ver_y1 $value)")% p( `3 s9 Q% L# e
- (action_tile "z1_pt" "(ver_z1 $value)"): p, n% ]1 X$ I+ c3 Z8 e" M
- (action_tile "x2_pt" "(ver_x2 $value)")9 x% d _. L: z: N- L6 w- d; Y& E
- (action_tile "y2_pt" "(ver_y2 $value)")
5 n( Q; n0 V/ Y! Y6 m' _ - (action_tile "z2_pt" "(ver_z2 $value)")
2 J: G0 |, H. c7 j - (action_tile "x3_pt" "(ver_x3 $value)")
& ?" I! m+ X) A5 h P6 O# x3 g$ C - (action_tile "y3_pt" "(ver_y3 $value)")5 ]% Y$ W0 O9 E. Z _9 Y4 i3 [
- (action_tile "z3_pt" "(ver_z3 $value)")
I' e/ c9 x' a+ N H - (action_tile "x4_pt" "(ver_x4 $value)")
) Z) T4 D3 o2 n( k# J2 Q/ A - (action_tile "y4_pt" "(ver_y4 $value)")2 C$ u% f( J/ e+ d. h2 q* h
- (action_tile "z4_pt" "(ver_4 $value)")
& T+ i8 p' c1 U! B4 Q0 q
5 a+ q" E" l) w0 w2 ^& N- ;; Action tiles for Xline & Ray
: H5 j% r; Q" j" o& H8 r: ^ - (action_tile "xline_x1" "(ver_xline_x1 $value)")* _9 j% w! M1 t" L; b
- (action_tile "xline_y1" "(ver_xline_y1 $value)")0 z2 x% z( h9 |+ Y5 u: f# V
- (action_tile "xline_z1" "(ver_xline_z1 $value)")
) M; r* @8 n6 h b0 c - (action_tile "xline_x2" "(ver_xline_x2 $value)") \3 [% ~! J _7 ?* Z4 @! S* V
- (action_tile "xline_y2" "(ver_xline_y2 $value)")0 E3 x" A1 H# t; V% c
- (action_tile "xline_z2" "(ver_xline_z2 $value)")
B: i6 Z4 i d, b$ A! B! Q
8 |8 A0 u# }+ e b- (action_tile "edge_1" "(setq edge1 $value)")$ Q0 K- E9 g0 p1 `% L
- (action_tile "edge_2" "(setq edge2 $value)")
- }5 V2 r3 x2 `! o% @ - (action_tile "edge_3" "(setq edge3 $value)")
: j2 {0 Q/ [6 J2 I - (action_tile "edge_4" "(setq edge4 $value)"), b0 Q* }% r& ?8 M
+ x' @+ u8 S7 R9 q- (action_tile "radius" "(ver_rad $value)") ^$ s' w$ _9 G6 }5 V( |; U' n- u
- (action_tile "st_ang" "(ver_ang1 $value)")
, p" z# t( K F: K3 f0 d - (action_tile "end_ang" "(ver_ang2 $value)")
5 X! T% A' ^1 D; w, o; O - (action_tile "end_eang" "(ver_eang $value)")! m7 z) p+ \$ ~1 Y6 E" j3 j; K
- (action_tile "minrad" "(ver_minrad $value)")
[4 R# y) K: Y$ J. X9 D. o3 U - (action_tile "majrad" "(ver_majrad $value)"). g& P6 D* q, X! H& N: F
- 6 {! ]4 J+ g# j% l8 H
- (action_tile "xscale" "(ver_xscl $value)")
0 r- L: N7 r% s% K - (action_tile "yscale" "(ver_yscl $value)")
l" x: I; g" A( k t$ s8 {# I* u - (action_tile "zscale" "(ver_zscl $value)") }4 k0 M% H9 t1 M8 g
- (action_tile "rot" "(ver_rot $value)"), e: x1 p1 \* s$ x% I4 p2 t. H
- (action_tile "columns" "(ver_col $value)")- ?6 g# L: S# X2 k+ R) y2 b/ X" g
- (action_tile "rows" "(ver_row $value)")9 n# S0 W9 h9 \! J% j6 L
- (action_tile "col_sp" "(ver_colsp $value)")6 v: V7 E- _: ?. e& M. [6 m
- (action_tile "row_sp" "(ver_rowsp $value)")
+ l. L$ V' M! _& Z
1 G ?0 v% f. |; P! c. f2 o- }7 }- (action_tile "hght" "(ver_hght $value)")
2 ?1 ^4 U6 c1 x* m3 ? - (action_tile "wid" "(ver_wid $value)")
) o2 G; B4 q9 Q4 d/ [ - (action_tile "obl" "(ver_obl $value)")7 {! Y# P: L: }6 B5 v/ v
- (action_tile "style" "(style_act $value)")) {; l/ k4 K: w6 k7 L* s" w
: ]/ n" R2 [7 O. ~' X& p( _! l- (action_tile "t_string" "(ddgettext)")) u: J2 \5 X4 z4 a5 B* h
- (action_tile "tag" "(ver_tag)"): H, E# ]2 K# G L/ `
- (action_tile "prompt" "(ddgetprompt)")
* o4 L1 f; O4 t- o6 k2 ? - (action_tile "bkwd" "(setq bkwd (atoi $value))")8 t1 L- F' y) A
- (action_tile "upsd" "(setq upsd (atoi $value))")8 N' l2 _8 l* a& o/ D
- (action_tile "inv" "(setq inv (atoi $value))")# C: X. j; R& N$ k4 b0 x( z
- (action_tile "con" "(setq con (atoi $value))"): o- k, h4 y1 [* H8 e3 V
- (action_tile "ver" "(setq vfy (atoi $value))")
% {4 Q% K1 V n - (action_tile "pre" "(setq pre (atoi $value))")' D: w6 o0 V3 N" B0 F$ L6 `
- (action_tile "popup_just" "(jlist_act $value)")7 p0 _! ?, U+ \! `0 F
- ; K4 M% l/ T' [2 M6 Y5 U
- (action_tile "closed" "(setq closed $value)")' j/ u R( z) K0 b- B
- (action_tile "ltgen" "(setq ltgen $value)")% k2 f% L; Q/ }9 f! H0 K
- (action_tile "closedm" "(setq closedm $value)"). M$ \8 \; F0 F; M* Q
- (action_tile "closedn" "(setq closedn $value)")
, A. I0 O& x8 F9 L3 g - (action_tile "next_v" "(next_vertex)")
# M$ L$ \7 E; s" w, \. u - (action_tile "xcliponoff" "(setq xcliponoff $value)")
5 [- }7 @1 `* }4 Y5 H; k5 I: g - 7 D9 C8 q$ v& a0 s; @' K. ^5 n
- (action_tile "next_cntlpt" "(next_cntl_pt)")9 O- h1 H) Q* z
- (action_tile "next_datapt" "(next_data_pt)")* G" H) X8 f6 E. R5 z: R/ c
! R8 J' C7 }5 }) d. J% {- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")
/ y) B. [& B: c* G% B! r2 N+ n/ F: g - (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")
5 E9 \8 l6 e% V+ S - (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")9 M# I( _4 c% U! W& Q8 j8 a+ f6 _' z
- (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")
; h- r" i" }8 q# \# ~ - (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")
: W ? ~/ R6 T @1 T# Z, a5 U
7 t4 y. u" e6 W% x- (action_tile "u" "(ver_u $value)")3 S6 K# z( H/ @6 m$ j" k
- (action_tile "v" "(ver_v $value)")5 Y7 a( I# z. O/ g" n
- )! _5 C' B1 S% P( n3 c5 r" a2 Z
8 b6 _; d' M) y4 Y! Y ]- (defun ddgettext()) K$ u) |1 c) O4 C! L& t* b
- (setq text (get_tile "t_string")) d3 Z/ S E3 ]- R' Y" J; O
- )% Y5 h) J: _4 G& I# \
1 A# w: @6 Y& D2 `* y- (defun ddgetprompt()( [& W+ C2 a, i/ h- R: c/ ^. L+ v$ u
- (setq atprompt (get_tile "prompt"))
- L% e; { v2 T# a - )7 T9 d% Y! R" b& l0 A6 Z% U, i
- & f8 Q7 q( }/ s. B8 B' a) J6 Y
- ;; As OW doesn't support disabling of individual radio buttons within# h# U7 s" T( a& X" @7 W! L
- ;; clusters, a check must be performed as to the legitimacy of the
6 f7 I" q8 p: C0 ~9 b7 }( p4 n* d; ^ - ;; button pushed and reset if necessary.
. d e- u# b% ]& | - (defun radio_gaga (pushed)! e. X$ `* Z8 r( g! b e
- (cond' J& T8 C# q [5 H( O7 T
- ((and (= pltype "3D polyline")
- o; e7 I4 T" y) N8 a+ {/ {$ B - (or (= pushed "fit")2 p8 l1 M* R; P; ?" ]0 y; |
- (= pushed "bezier"), |4 u0 m. R4 y9 J' X1 |& @
- )* K. ?! |0 r7 |/ }- U+ E( N# A
- )
" \# [ z' |1 `0 M d) H - (set_tile "none" "1")
* d$ q6 f( _- \ - nil
# \+ E* q3 n1 W/ S5 f4 _1 Q - )
& A( }7 K7 k+ X9 `; C' g- {! [ - ((and (= pltype "3D mesh")
$ @; j- [3 n$ A9 c E - (= "fit" pushed)/ u! o$ A' X/ ]* s' u4 Q" b( t
- )4 S" ^' L7 l$ d& G" m! M% { K
- (set_tile "none" "1")
# }: v5 F, [/ `# i! y& a) r - nil
+ ]! i# f6 u1 z7 v. Q- N7 _7 ^ - )- D9 n+ Q/ C4 M1 i
- ((= pltype "Polyface mesh")+ g7 g3 c8 F/ r, c. G% k! F
- (set_tile "none" "1")( k5 c& a2 J& [) N% Y. p1 T. w: E- s
- nil. K1 p" ?2 Z# F$ @
- )! R7 ?3 c0 W2 N) g* y
- ((and (= pltype "2D polyline")' J9 k) u1 T7 ^# ^9 }0 ^( L# C3 `1 `7 M
- (= "bezier" pushed)
+ }" |! I- f3 [" Q - )# S; U3 D7 M0 w
- (set_tile "none" "1")" B9 X& r$ W$ N! ~: z \
- nil
! j! Z$ I& ~6 L8 ?$ r" u - )
" X5 D- Z8 {) j( C6 ] - (T)9 I1 i w! @! q4 ]2 u0 p
- )$ ^$ q! }9 ?5 G9 Q( J0 }
- )+ q; U4 G" y3 P9 j- `
- ;;: H# o8 X5 t; [' y
- (defun set_uv (type_n). z! M+ {+ L! ]+ i4 {
- (setq spltype type_n)
( v) J, z4 b3 F; q) E& }) ?' l - (if (= pltype "3D mesh")
2 l4 P, J& V# Y; I8 Y4 l0 b - (if (= spltype 0)
7 A9 @; e# G ` - (progn9 N6 p+ U8 Q$ h; Z
- (set_tile "u" (itoa (setq u 0))), `, N/ U4 e# ^# y# p4 ~ k; z
- (set_tile "v" (itoa (setq v 0)))! v4 c+ r( F/ {; S' [
- ). q4 l/ P2 \' [( C" f/ W
- (progn9 E8 G+ n* }. C: G+ r8 f
- (if (= u 0)1 i& _) `/ G! s' g4 j' ^% O7 T; p" ]/ a
- (set_tile "u" (itoa (setq u (getvar "surfu"))))
' `2 G: G7 z6 b; ^8 z2 D - )
2 W5 q) A, W$ Y. J, n" C$ K - (if (= v 0)& A5 ~" A, g# c. Z
- (set_tile "v" (itoa (setq v (getvar "surfv"))))
5 j o; Z; |. ~1 A/ Q! _6 D - )
4 G) W8 W' H+ `3 `/ T - )1 k9 w" k- @$ r8 D: e& J
- )
$ I R6 V" i9 `- D - )
" w6 h; x- D$ g S - )* I4 B: d9 {/ x7 l
7 L# F' d6 t2 z" M* P
$ N+ \9 Y" ^) l' H- ;;
; K" d& s2 b1 N# x2 S6 r - ;; Verification functions
9 w3 e! q# z2 k! Q6 x/ V - ;;
8 A. o; ~0 a' m! D; M) z% q7 d - ;; Verify distance function. This takes a new X, Y, or Z coordinate or
/ J$ r) n% v6 f8 F4 p; r, q# Z* g% L% I4 o - ;; distance value, the tile name, and the previous value as arguments.: P7 v1 F8 d: W# o
- ;; If the distance is valid, it returns the distance and resets the tile.
% Y7 k- k3 [- L; R5 U - ;; Otherwise, it returns the previous value, sets the error tile and keeps
: d" O3 H3 [1 e - ;; focus on the tile. Shifting focus to the tile with invalid value can4 J$ a* u, d; b
- ;; trigger a callback from another tile whose value is valid. In order0 I D5 F3 C+ V1 U
- ;; to keep the error message from being cleared by this secondary callback,) P' \9 E, p9 H2 r1 {7 C. W
- ;; the variable errchk is set and checked. The last-tile variable is set4 Q% v3 j& y9 X$ G1 n) G, u2 D
- ;; and checked to ensure the error message is properly cleared when the) G. x% Q: b% h6 x9 E. Y
- ;; user corrects the value and hits return.
4 k. C1 c6 B. Q' P9 ?! n; t! h - ;;# i0 l) q' D& m+ }2 ?
- (defun verify_d (tile value old-value / coord valid errmsg)6 v! I, O. o X" L4 R+ N+ x5 P: O0 z
- (setq valid nil errmsg "Invalid input value.")4 p$ Q: P! A2 d1 m0 E' W9 s" v
- (if (setq coord (distof value))
* ^6 [8 L5 \* z( U- c- ^5 I4 i - (progn: c' i& `% }- L Z" h1 C+ N0 `, g$ c. Q
- (cond
- h1 A/ Q2 ^! J0 M$ Z - ((or (= tile "radius"), C5 P9 |. k6 j9 \6 t5 Y" Q3 x3 [
- (= tile "hght")
' s) d1 c, L' O$ { - (= tile "wid")( e) _* n' Y' \# d* w/ Y
- (= tile "majrad")5 l) W) ^: z8 l& y# F
- (= tile "minrad")
3 U8 s: k0 s V# A& I1 _ - (= tile "eb_ltscale")
% i# J, z. q+ `! q9 ^ - )
! ?1 j$ _1 @; { - (if (> coord 0); m. L7 ~ f) Q1 v1 Q) `
- (setq valid T)$ y3 k) q1 G( ?: v* ?$ p
- (setq errmsg "Value must be positive and nonzero.")6 U m' a& y- X) W4 ]0 z
- )5 r4 V% c/ L; U* r
- ); u( ~- B( g3 i+ L8 p
- ((or (= tile "xscale")
- V# F3 |9 E- i2 T& o5 G; X7 E - (= tile "yscale")
' _7 v* ~, w1 ?% Y {- ~2 H. d+ ? - (= tile "zscale")
* b$ i) O. o# o" `" Q: @ - )
+ e3 I( A& r: p, q1 w! k - (if (/= coord 0) q% F9 P# Y' s4 M+ o8 _# h
- (setq valid T)
3 ?$ N; b& B( \ - (setq errmsg "Value must be nonzero.")$ k; i+ A6 Q- U2 w2 [1 H
- )
7 q* r* K. t( w) B; d/ V - )7 q$ p _6 g7 `9 l: q1 [1 {
- (T (setq valid T))1 `; s/ A3 V0 Q7 s$ H: ^7 ]
- )3 f1 ]& [5 E7 [" j% n
- ), U% L" q! o& b& M
- (setq valid nil)
0 F0 g$ R8 u- t - ): `" ]3 M% W e; @8 ^
- (if valid
( b5 C5 D4 J! ^ - (progn
) t p8 S" w8 W! |& C6 U- U+ ~" _ - (if (or (= errchk 0) (= tile last-tile))) K# w, p: M, J# h
- (set_tile "error" "")
1 s/ a. q% ^: x2 a1 C - )
; z8 Q' _# z( z/ ? - (set_tile tile (ai_rtos coord))( R9 ~) ~/ r& r% U1 I9 t
- (setq errchk 0)
( u8 \$ |$ W( d" _7 w4 G9 h. r; R - (setq last-tile tile) \' K, e' ?( ~8 I
- coord
: W; v/ W% |+ E0 g6 |( z - )% r5 c9 e2 k' q# x3 O
- (progn
+ T$ U0 b* A }; c - (mode_tile tile 2) ; Move focus to offending field
( T$ _) j! D6 g2 [8 R! T - (mode_tile tile 3) ; Select offending text
+ A5 E% { q- K* ? - (set_tile "error" errmsg)
6 M. ]/ d4 h# P4 ?! E" W g; } - (setq errchk 1)
" G0 D+ J1 z; i5 ~( i- } K - (setq last-tile tile)% e- }/ E6 v4 @4 n! t3 v: C
- old-value- S' w) t/ @4 e- d/ j" Z' O
- )1 v- x, B2 h* R
- )
: Z0 d$ M- o' U) _8 k - )
# h# N4 ]7 Z- ~) U9 Q& N! D - ;; Function for Xline coord edit box checking.% v8 {7 q* }+ O
- (defun verify_xline (tile value old-value / coord valid errmsg)
$ x \' g9 s1 e. [1 _8 j: t c - (setq valid nil errmsg "Invalid input value.")
8 {% ]$ }' y+ Q3 G - (if (setq coord (distof value))/ V9 P1 [! Y2 a4 m4 N1 ]0 K
- (setq valid T)
6 [4 a8 z' N) Y# Z7 b: B& P - (setq valid nil)) `8 R8 F) Y# b6 P
- )7 n" E7 Q/ ]0 R- _2 e
- (if (and coord7 ^. c; w* A$ E* I1 Y5 q' Z0 c* R
- (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) )
% ?, h: Z" M, j2 w7 V7 [ - (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )
, u2 T3 G+ ^7 { - (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) )' N2 N- b4 B+ [: J, k' H
- )9 S5 x! L9 p8 G/ s: Q
- )
( p& O! I" M0 y! L0 g" E& S - (progn
: X* b- W& {' f - (setq errmsg( k, h0 k% C) A3 K/ Z6 s4 W
- "The Root point and the Second point cannot be equal.")! f& ~ `* v# h) ^! i. U+ M
- (setq valid nil)
d/ O* X, d4 m" @6 m$ D. ^ - )
9 b, D" W( {$ b! h - )
7 ?6 v' p) M, L7 f! a7 V - (if valid) {4 t# i" y/ c) e# M }
- (progn1 N. A1 C. V# h J j0 W% h
- (if (or (= errchk 0) (= tile last-tile)) D! v, X# R& G
- (set_tile "error" "")
" B) K7 q1 d& ~& Q - )7 I0 {$ V; d$ s. x( N5 A; J. j* K% A
- (set_tile tile (ai_rtos coord))
, G. F9 X% F6 V( j5 M" N, y - (setq errchk 0)4 K4 Y, ]& h* n
- (setq last-tile tile). b3 A: O1 F5 k; W& i5 a# J( L
- coord* t4 P. ]$ V! n& q# ?
- )# Z& c! g* I1 a. C$ `; S b* V \$ _
- (progn, R7 I4 L' [, z6 W; A/ `, a& S
- (mode_tile tile 2) ; Move focus to offending field- B- r {# h( H2 g1 r
- (mode_tile tile 3) ; Select offending text
: A N) O4 P1 N - (set_tile "error" errmsg)
1 W% x, B' m# J - (setq errchk 1)
5 E+ A1 J& Y. v* \ - (setq last-tile tile)5 q3 ?" j. U& t
- old-value
# k1 V$ A3 ^- B1 v9 G4 T! m$ \ - )/ `. O2 n: l4 v& {9 ^; G
- )
- I% @: B( e, A5 N - )
: H n4 j/ `* ]# E9 {- F& i1 F3 h - 9 \' }# @ B, X2 k2 e, y
- ;;
8 q8 N& j) L; V- G/ a0 }4 y - ;; Verify angle function. This takes an angle and a tile name as arguments.6 y, U* h! L1 ~7 v
- ;; If the angle is valid, it returns the angle and resets the tile.
, { r6 a' F4 J1 B: ` - ;; Otherwise, it sets the error tile and keeps focus on the tile., A3 [. N! l, q- S! `3 \
- ;;- V- C: ]8 c) K
- (defun verify_a (tile value old-value / ang valid errmsg oblqmax)/ b5 W+ l t/ H# ^# }3 P9 G% R9 t4 x
- (setq valid nil
) S- V4 A! }- o; Y' N1 I) C% D - errmsg "Illegal input value."
$ X. z3 K- y$ t; T5 y: W5 S - )
0 E1 s5 F- h6 g4 E; S& s - (if (setq ang (angtof value))/ s- h8 S- ?8 r: d" I/ g
- (cond) p% V& f/ ^3 l6 h# V: p
- ((= tile "obl") ; Restrict obliquing angle- i8 b$ p5 n; G5 C. v
- (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))
0 m; Q) m9 i% l9 [3 H - (if (or (<= ang oblqmax)* ]* ~0 W. `/ ~# i
- (>= ang (- (* 2.0 PI) oblqmax))
4 Z; a `5 ] Q) T* t! F - )
0 t7 N+ R# c ^8 |3 e5 B - (setq valid T)7 X" h9 I F$ y2 A2 L! }
- (setq errmsg
. X( u& d5 [$ r3 e ]) s* l, f - "Value must be between -85 and +85 degrees.")9 F6 U% e) }9 N# _( R" {
- ), o/ A V6 q9 M; E* l; B: O
- )( @" @% b* x; ^+ U
- (T (setq valid T)) ; Other angles not restricted: }4 X' K5 w0 J3 u( j t8 T
- )
4 h3 R3 p1 t- a* }7 U. b - (setq valid nil) ; Invalid angle input
5 @5 o/ p7 o- F" W: S7 n - )/ E: k+ ?7 G# s, m0 a
- (if valid
( m$ T( Q; Q/ E$ t/ V3 I" N8 o - (progn8 [$ @. V2 y( G% _$ K' M
- (if (or (= errchk 0) (= tile last-tile))
* t: r3 R e) D( U. P( K - (set_tile "error" "")
+ P6 c3 z- v h1 O. M5 W - )
4 j; f6 z. s3 F3 } - (set_tile tile (ai_angtos ang))( O$ W0 B4 G# E0 c, h2 x3 j
- (setq errchk 0)2 B" G0 J+ O4 ~6 n+ o# b; ~
- (setq last-tile tile)
- ~9 T8 `: F3 ]7 K1 L$ z - ang
! w' Z& r# c9 |9 ]* c - )
6 P5 d" @& v+ F2 J( Z' d; C, A - (progn
* E; \# m- s% d3 \, {/ t! }& f - (mode_tile tile 2) ; Move focus to offending field
2 @8 U% y& Y5 c - (mode_tile tile 3) ; Select offending text
2 n: B, j: K1 s& S3 e* H8 A! A3 l - (setq last-tile tile)2 w4 z9 t* g: f0 U3 R3 T K4 J; |
- (setq errchk 1); ^" D- F, E* R; P
- (set_tile "error" errmsg)
3 P) G; S) ^: {1 j' [: O0 O/ \5 B - old-value3 u# @9 F+ v7 V6 v& H; K: l
- )
: W+ r, m! [' p: M - )# d/ f" A& t2 P. e. {/ Y& z2 f6 x
- )
* @: ]9 \6 T: s - ;;
; M& c; ^' q$ Y$ W - ;; Verify angle function. This takes an angle and a tile name as arguments.7 |8 x* \' q' I1 ~; E
- ;; If the angle is valid, it returns the angle and resets the tile.. [5 K7 @7 T; [* o
- ;; Otherwise, it sets the error tile and keeps focus on the tile.( K( k# y# w3 A# m+ @) q
- ;; This function is specifically for the end angle of the ellipse object. If, R0 D) Z9 k- v) ~! u
- ;; the end angle resolves to zero then we want to display it as 360.
( D: x5 c$ s: ^5 j/ T! ?6 ` - ;; y& J: {/ f* P* B
- (defun verify_ae (tile value old-value / ang tempend)1 P. J9 ^: U3 A- l4 Z) [
- (if (setq ang (angtof value))' M- m7 ]3 H K' u9 s+ K
- (progn
* K6 b5 `& w, X( s$ v( g - (if (or (= errchk 0) (= tile last-tile))
' }9 q. U# o( Y v+ U& U - (set_tile "error" "")
3 R% h, k, U0 w: A' J$ L - )
; v" z5 v1 F) O M - (setq tempend (ai_angtos ang))
+ o" a% I- g8 o j, Z - (if (= tempend "0")) |- Z2 H( C+ G+ G1 e7 l* v/ C
- (set_tile tile "360"). }- @2 E0 M5 M( Z3 [2 W
- (set_tile tile tempend)
' _. z. y: w3 v- p6 D2 n - )
% ]; m# g1 q8 G( E, Q3 x F - (setq errchk 0)
/ Q7 q x- Q' l* `+ P, }- `, {7 g# N - (setq last-tile tile)/ g0 ? N( |. n, S( {4 V# r
- ang6 v) I, L |/ T k) r- n
- )5 M/ d/ [. g+ E) I b2 i
- (progn
& p' b* A* D3 K - (mode_tile tile 2) ; Move focus to offending field
2 r6 D, O8 U' o' V [5 i - (mode_tile tile 3) ; Select offending text
& p3 x: f# }% d* f/ v - (setq last-tile tile)
5 W o0 N. s0 i7 ?! ~6 W: i - (setq errchk 1)
. L7 S1 X& P8 _' i8 Y - (set_tile "error" "Illegal input value.")
% }: c' X/ M. S0 J - old-value
# v4 P" c _0 C! Q - ): `5 o8 J/ R# b6 h$ u" Y
- )
% C# Y W5 o* ?) k - )
) S! J4 }& b. R4 u8 O - ;;
3 L1 B$ g4 H5 ^ - ;; Verify integer function. This takes an integer and a tile name as
$ w; ` z4 }7 M! Y" ^- l- c - ;; arguments. If the integer is valid, it returns the integer and resets the
6 u& q" C! Y% D - ;; tile. Otherwise, it sets the error tile and keeps focus on the tile.# [) C" k* W' u6 q& v4 N u& [
- ;;
$ _" b O$ T" h - (defun verify_i (tile value old-value / int valid errmsg)0 X' Z# e" E9 O% c3 l0 o
- (setq valid nil)3 y# Z2 W9 p L6 T
- (setq errmsg "Value must be an integer.")! w# v u; ~ _) S/ R* {7 s8 \
- (setq int (atoi value))
9 X$ f) q' \5 W' |# e v3 ^ - (if (setq intchk (distof value))
9 w6 q+ L7 u0 V ^! T - (cond/ Z7 q7 N5 B9 z1 |+ n& {* M4 x D) r
- ((or (= tile "columns") (= tile "rows"))
4 @; c+ e- c* W, a1 Z - (if (and (= int intchk)' k8 I( z% K/ s! x
- (>= int 0)
: b& U) o$ [) F# N3 m - (<= int 32767)
& O! P% u% ?& n2 P5 N7 q. U0 f - )
o: ^' A7 G2 v. O: ~ - (setq valid T)
5 h1 A. t5 a' f! E2 P - (setq errmsg "Value must be an integer between 0 and 32767.")
3 Y3 o- z0 ]: m; \1 C - )* V' J0 I# g5 o. w$ O8 t- ?
- )9 ?6 k6 r3 m! J& {: |8 X p$ O5 i
- ((and (or (= tile "u") (= tile "v")))5 z" u3 Y6 R8 a+ t
- (if (and (= int intchk), m, C$ R; Z" v+ e' B
- (>= int 0)# _2 c+ S* V" m/ B* [ {. y x
- (< int 201)
$ b7 e3 ^5 a3 o - )3 b9 Y4 d: s% g7 f) A8 ^
- (setq valid T)$ a. T% Z2 Z0 F
- (setq errmsg "Value must be an integer between 0 and 200.")
2 f2 S+ Y* L |- a - )
+ {9 h# R& y2 w; `! @. O1 Q+ l - )
) g- I& |6 y# T' h& V! Q - )* u9 G$ z; ~; _& Z7 | j, t" U
- )
8 R' M1 e( J4 u( X1 U1 M - (if valid
- d+ ~7 V' m0 p1 Q% a& t9 l - (progn/ ~" q% }6 a3 e6 B# w1 W
- (if (or (= errchk 0) (= tile last-tile))
9 @9 a- X4 l% Y2 Q - (set_tile "error" "")
7 |$ B7 J3 a, b% U - ): I1 X W0 M+ ?0 [: a/ _
- (set_tile tile (itoa int))
! _1 a2 \+ ~* S4 N# h. B3 @ - (setq errchk 0)
J Q+ R# q1 \: p, \8 A - (setq last-tile tile)0 B; ?) B) K( M c
- int
: O: g5 Z4 A) F; `9 K - )
+ v) a1 b1 ^. `2 a - (progn- |4 w. d' W$ c
- (mode_tile tile 2) ; Move focus to offending field
0 s# a" b9 }5 l; k0 u& U - (mode_tile tile 3) ; Select offending text |, f: I! L6 S% L$ s, p+ t2 @4 C
- (set_tile "error" errmsg)2 l i0 J$ D3 o" B+ `. d
- (setq errchk 1)
& e: L$ R2 L/ P$ O$ X - (setq last-tile tile)
5 m9 R. X2 V2 V; \1 b0 c- k - old-value
8 r+ A4 I5 _9 E4 q8 w! J - )+ b% ?& n5 {( U& I7 L6 ?/ _
- )
b2 }. Y! @- ?8 s& w* M/ [ - )
3 l, C; g/ l; n! S9 u" a2 J2 m - ;;
. p7 P7 y& ?/ t1 h! w - ;; Functions that verify tile values for integers& G, c+ _+ y/ n4 J
- ;;, \" G4 }% k3 T3 x
- (defun ver_col (value)# x( G% W- E! q; o) A
- (setq columns (verify_i "columns" value columns))
; {! J- T( y1 L( B- m - )3 e a/ z; S9 u7 J$ `( {% N, n9 L
- (defun ver_row (value)
7 L( y& H! o& g" Z; O, z# z - (setq rows (verify_i "rows" value rows))8 T& `: I/ q8 c/ G
- )
! T& J/ q+ b2 B/ D( R9 `6 t - (defun ver_u (value)
: \$ ~/ X4 O4 |7 e1 s1 K/ G# ^ - (setq u (verify_i "u" value u))5 ^" @' Z+ B' H; Q2 Y O$ a
- )
; Z+ Z B1 T! } - (defun ver_v (value) ^6 R' Y6 [' f" N& T# Z1 _( H" u
- (setq v (verify_i "v" value v))/ s9 ^8 |' ~8 M3 D6 f2 f: z- D
- )
/ [6 ^( c3 }- x) f _7 ~ ]$ O" ` - ;;
. Z- }* \' H" v( K& j - ;; Functions that verify tile values for reals2 @$ w: g; B* G; T q* P' [5 R- Q
- ;;
3 J' W. t- `5 v- \9 { - (defun ver_x1 (value)% i" r" D4 q, C- ^8 i
- (if (setq x1 (verify_d "x1_pt" value x1)) (calc))/ r/ _3 @% S7 B) q' E
- ): l" H' ^2 \! |/ N6 \! p
- (defun ver_y1 (value)9 F) `* K3 Z# L0 ^8 Z) i- F" g
- (if (setq y1 (verify_d "y1_pt" value y1)) (calc))
5 n. Q. I. k H0 N6 ?! V - )7 P- T+ {( o7 U3 V
- (defun ver_z1 (value)$ W: `' y2 p& v1 l
- (if (setq z1 (verify_d "z1_pt" value z1)) (calc)), c6 k+ Y: W* l. M
- )
3 l2 F9 [6 d1 y$ z0 X; i" O - (defun ver_x2 (value): o6 A* q; O- B2 G f& w+ N
- (if (setq x2 (verify_d "x2_pt" value x2)) (calc))- k+ o6 u6 s8 @8 Z2 m/ N
- )
/ }' a' e5 j" E/ E* ~& f - (defun ver_y2 (value)
+ @ s' B2 M8 O& J8 I - (if (setq y2 (verify_d "y2_pt" value y2)) (calc))/ @2 U4 l4 c" ]* O* R
- )
3 Y F# L0 e! b, K2 w - (defun ver_z2 (value)
\4 s4 d, x: y& h( K - (if (setq z2 (verify_d "z2_pt" value z2)) (calc))" ?; C) X- M% T4 [
- )
+ d0 n) I5 d& Y" I - (defun ver_x3 (value)
( C+ o" u) x( }% B' `" \9 ~1 A - (setq x3 (verify_d "x3_pt" value x3))
! {* @: x9 d3 M7 g8 S - )# m3 t' _: x+ I5 L8 {9 d! K
- (defun ver_y3 (value)
0 _8 L; m2 |/ G2 ?& O - (setq y3 (verify_d "y3_pt" value y3))$ Q7 T/ p) j' v3 m7 a" q
- )/ W0 k6 @ ^) w; O; ?
- (defun ver_z3 (value)
) h, g( o2 V2 E$ M8 h! f( _ - (setq z3 (verify_d "z3_pt" value z3))
( |& G+ p) g- l$ |# y - )
) Z; N7 ]% ?2 u8 }1 d/ ] - (defun ver_x4 (value)
$ R, K4 @% c$ I4 P4 g$ e) u( L - (setq x4 (verify_d "x4_pt" value x4))+ y/ t F/ `* o! P2 b
- ): {5 L; I* f7 t6 C3 K9 I+ t& l7 u
- (defun ver_y4 (value) d$ B3 O v% J/ r' E
- (setq y4 (verify_d "y4_pt" value y4))
0 ]$ {1 ~# w9 U - )8 |" T" J# Q$ W+ ~6 r. j
- (defun ver_4 (value)- L! \& \- I( H& I
- (setq z4 (verify_d "z4_pt" value z4))& ]2 d( r$ j e- Y2 Z( B7 n0 Y
- )
$ H4 |, R) A5 Z$ X( g! u- J, ^! m7 ] - (defun ver_xscl (value)
# f9 M% q/ Q6 Y% M# Z. H5 H; u - (setq xscale (verify_d "xscale" value xscale))7 P8 T8 L% U( _. A+ w7 \
- )
0 N, h9 \( K9 y - (defun ver_yscl (value)
4 q5 w0 k- Z' C6 r. q7 M - (setq yscale (verify_d "yscale" value yscale))
. T, x; E. ^- c - )
7 }! a1 M' @7 q8 x' r; ^ J - (defun ver_zscl (value)5 G' G4 ^& W ]! S
- (setq zscale (verify_d "zscale" value zscale))/ a! m0 n/ E9 W8 X# n5 }% c, ^
- )/ d8 m( \; \: x& \9 L
- (defun ver_colsp (value)1 }: X# z( v3 L: ?9 s9 w! ?, z
- (setq col-sp (verify_d "col_sp" value col-sp))4 D6 S+ A3 L2 B* J2 m5 t6 H7 }
- )
6 ~6 H! f6 d2 K6 j3 v - (defun ver_rowsp (value). _! C2 A9 w3 i+ ^/ l B( ?3 v+ X1 B
- (setq row-sp (verify_d "row_sp" value row-sp))
; p9 i/ f0 S+ C1 I4 h [' M; | - )9 n( |7 t$ u% R n% h
- (defun xclip ()
0 W$ U6 A7 L9 } - (setq xclipmode t)* S: z. ^. A4 E5 C* V) K p( Z
- (if (= xcliponoff "1")
6 A/ m5 }8 `5 [$ c/ p - (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")/ e# ~ z# d: `/ F* k, a* M+ [
- (command "_.xclip" (cdr(assoc -1 elist)) "" "_off")3 B0 P. r. x( `4 N
- )
) p5 x3 U" E3 G9 d - )
; N7 B) [' s0 R - (defun ver_rad (value)2 f/ j$ ?9 E1 C' e m5 p2 F
- (if (setq radius (verify_d "radius" value radius))
7 Q, N$ [% F3 {, t, b - (calc)5 k/ ]! K* [, d+ D
- )
8 N7 s* s/ F* P3 M- B/ q - )
, Z" C) k. i- b; P! l3 |+ S- { B# | - (defun ver_majrad (value)5 o, U* W$ A* q9 x
- (if (setq majrad (verify_d "majrad" value majrad))
4 x* b- c. P/ T) j8 y* c/ Y - (ell_calc_newval "majrad")
3 z1 I2 g+ j5 p! ^ - )
' c. X0 y7 N+ R) ^& R. Y; A - ) I& z X& L! x
- (defun ver_minrad (value)
6 F/ I, O4 {9 r1 _4 m5 z9 ~! F( g - (if (setq minrad (verify_d "minrad" value minrad))
D/ X; B; ]9 t% z4 ^5 z9 |2 A - (ell_calc_newval "minrad")3 m: X3 i. J& P7 W+ d% G+ w
- )
/ j8 a, g* a( f. J) l# z - )5 ?2 V' e! U. x2 O* G, w
- (defun ver_hght (value)( Y: ?( R2 V- M4 M& Y0 E
- (setq hght (verify_d "hght" value hght))$ ]& H4 O( d/ a3 ]/ D
- ): l2 k# {$ ^* k7 N
- (defun ver_wid (value)
) F3 u' Q3 [7 {! X' E* a( G# T$ L - (setq wid (verify_d "wid" value wid))8 j( e& Z( i1 q! G" F; K5 }
- )- x6 h( z- d1 c9 e
- (defun ver_xline_x1 (value / temp)
1 g3 a$ P8 l) I; P3 a* S! k1 h - (setq temp xline_x1)
6 X$ E p. p: S+ {; N1 @" b& X - (setq xline_x1 (verify_xline "xline_x1" value xline_x1))
% P& X) p O. v, ]0 L3 a. T - (if (/= temp xline_x1)" H5 ~8 T8 D, V# F) {* `5 |, v
- (progn (modify_xline 0) (set_tile_dirv) )
7 r) X" [% K ^$ g7 E6 k! B - )* t& X( @2 x& }! A1 s5 B
- )" V* Q# B4 @. @9 w" \# A7 `9 }
- (defun ver_xline_y1 (value / temp)& _( a F G2 J0 y# W0 Q
- (setq temp xline_y1)' D% ~0 N/ l) a
- (setq xline_y1 (verify_xline "xline_y1" value xline_y1))
. G$ u% m% I+ I& ]1 o( e( a* x - (if (/= temp xline_y1)7 {1 |$ p U2 [4 d J9 U
- (progn (modify_xline 0) (set_tile_dirv) )
; O9 O: b8 f$ r - )
, I- I( ?% }2 a. V7 I" G9 c/ _ - )2 d% o/ c! J! Z9 o5 b6 o7 r2 g
- (defun ver_xline_z1 (value / temp)5 {1 \! Y: q9 l
- (setq temp xline_z1)
) V' ?* z; `1 U - (setq xline_z1 (verify_xline "xline_z1" value xline_z1))
: V, ^1 F0 A- k7 H' H - (if (/= temp xline_z1)( m) K: E1 h' c& d+ l$ u
- (progn (modify_xline 0) (set_tile_dirv) )! _7 |: p! B# {. F& o
- ), n" v b h: B. f7 [
- )
8 i" d! r, U5 W; X, t - (defun ver_xline_x2 (value / temp)* r" W6 s0 t( p9 ?: x" W- k, H
- (setq temp xline_x2)
4 I; Y0 ^. [7 C+ U8 J: ? - (setq xline_x2 (verify_xline "xline_x2" value xline_x2))! \" ^: }1 {' G2 w
- (if (/= temp xline_x2)2 j# n: [$ i2 z. E2 k' M& x! Q
- (progn (modify_xline 0) (set_tile_dirv))
$ h0 L; @+ Y0 g5 N - )" v7 l w5 g. _* |) U$ e
- )
7 E0 A" |3 I& {7 [+ f - (defun ver_xline_y2 (value / temp)
* G, |7 J( L7 l5 `! I2 X- s - (setq temp xline_y2)
- w" A( d5 _) m - (setq xline_y2 (verify_xline "xline_y2" value xline_y2))
1 i/ o/ J. C3 y3 c - (if (/= temp xline_y2)
: a6 {( H# A/ O - (progn (modify_xline 0) (set_tile_dirv) )
8 u- R- w0 O u$ L4 x0 H - )
! P) l |, u/ ^- `9 V$ B - )- s+ b/ [# F1 w" I9 h
- (defun ver_xline_z2 (value / temp)8 g/ c9 y i& B' f
- (setq temp xline_z2) \5 d9 Q% _8 m
- (setq xline_z2 (verify_xline "xline_z2" value xline_z2))2 \& K$ T+ B5 A O4 B; y$ y% L8 w
- (if (/= temp xline_z2)
( H9 ^$ ~- H2 S' v, A - (progn (modify_xline 0) (set_tile_dirv) )
& [# v+ u- c, ? - )" J+ J2 g1 i* N4 L7 \
- )
6 {3 T: I# O; _* G3 V6 L - ;;
% Y; h5 x- m8 _- D6 y$ L - ;; Functions that verify tile values for angles
L: u, S+ U9 U8 M) x - ;;! V5 @: d) `. m, m. }7 U2 m' x6 w
- (defun ver_ang1 (value)
2 i7 P# ?# J+ y! w, ^! K, O - (if (setq st_ang (verify_a "st_ang" value st_ang))
; {9 ]7 y6 M' U - (calc)
/ R2 Y4 S% R& i8 J1 y& ] - )" ^& ?: _6 B2 B
- )
7 C+ q. f' Y$ ?9 _, b j+ p - (defun ver_ang2 (value)
5 f, s; X: ?7 e$ O' e* |! N1 c - (if (setq end_ang (verify_a "end_ang" value end_ang))
1 t, c8 y7 X3 i x; \ - (calc)
" ?: O. x3 u8 j% y2 |* H - )
+ Z5 k' X4 |4 ?( J% ^- I - )5 O: e) G3 h8 O3 u! C( P3 O% o
- ;;
0 H" f; E9 _7 K3 K" x - ;; Verify tile value for ellipse end angle. Handled slightly
* }5 a7 w/ n+ p; H4 R a3 t/ @) o - ;; differently than the other angles.; P# c+ f% P$ @. M
- ;;
) H( P4 O4 A2 ]* W% B7 `8 m6 }* Q - (defun ver_eang (value): _2 }3 V" j4 v0 M2 M( \5 B
- (setq end_eang (verify_ae "end_eang" value end_eang))4 n2 Y u, B! i1 t6 T& ?3 Y1 v4 r
- )
4 Q$ l9 h$ b' ]. b - (defun ver_rot (value)
0 z) l D. O9 B2 Z/ T0 _ - (setq rot (verify_a "rot" value rot)), d: V& H2 S- x+ M' n5 R
- )% A6 J8 ~9 N- F& q% C! c
- (defun ver_obl (value)
" b. }5 W$ I; e) [ - (setq obl (verify_a "obl" value obl))! x( D7 [" \ b3 J
- )$ r, @5 y1 C; u* @
- ;;: e- s) U" _2 x3 `5 a
- ;; Function that verifies attribute tag field for null string,
: p0 _: p |% k+ B8 C' ] - ;; or a string that contains one or more spaces. Tile value3 T [+ k. r* ~- x1 R& p
- ;; is also converted to upper-case as well.
; K3 j/ H! D. p! Z! I# X- Q - ;;
* B" f5 b4 W p7 Z6 R8 I) z - ;;6 C6 w# K9 }. [' {. ^
- (defun ver_tag ( / tval)
* p( X }/ a4 ^5 ]! @$ f - (setq tagval (get_tile "tag")), \( | U) h5 h$ t' o9 V9 G0 Y6 B
- (set_tile "error" "")5 a3 |- _6 K; B% D# H) S% h$ d" B
- (cond
8 w9 m& y' h4 _! A - ( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))
/ o! c, r( q S- y5 q- _: g* b - (wcmatch tval "* *"))
7 X0 w" `& h$ b! }% C; Y3 [4 s - (set_tile "error" "Invalid attribute tag.")3 j; n: h9 J8 c- [$ Y1 i; M
- (mode_tile "tag" 2)
; |7 {- m8 Q+ g3 p) Z5 e4 U - (mode_tile "tag" 3))0 H, G X0 V! T6 T ~+ o
- (t (set_tile "error" "")- }) W" L: X+ g: Q' _4 [" ?/ C
- (set_tile "tag" tval)) N: H) Z' }' t/ S
- (setq attag tval)))- w. W! D _: s( U h
- )1 l. ~2 Q% R3 y. O# a) \
- ;;
q, g) |7 I% Y& c# [ - ;; Calculation functions7 d# P6 x# R3 X1 [# {, a* S' q5 Z
- ;;: w* O6 Y8 X+ s. I2 e7 T. g% c1 }
- (defun calc (): l3 Q' \( g9 Y f! Z; [
- (if (= etype "LINE") (line_calc))
! Z+ J/ N; [! O: E8 V% o - (if (= etype "ARC") (arc_calc)); e, R- b5 t. a2 A0 Y) J
- (if (= etype "CIRCLE") (cir_calc))6 Z( ^+ @0 D, |! n
- ). S! d8 ] F' F6 y" H
- ;;
, h1 m1 b, V) a: n8 | - ;; Calculation functions for lines, arcs, and circles
) E H' \+ \# J% H: t3 N- |4 e5 } - ;;
% i7 { Q+ ~0 j% t5 T - (defun line_calc ()- _2 z: F2 r; S6 Y: ?
- (setq stpt (list x1 y1 z1))$ w+ F/ }( ~4 U3 Y {' G; ?( [% u
- (setq endpt (list x2 y2 z2)) f6 d) r. K }% h2 u0 R7 a
- (set_tile "delta_x" (rtos (- x2 x1)))4 @$ {; B! f% C( \* r' R3 b0 o u, i+ J
- (set_tile "delta_y" (rtos (- y2 y1)))8 _) u/ j* U2 u% U0 }7 Q
- (set_tile "delta_z" (rtos (- z2 z1))). ]/ I7 n7 M4 y# w( T
- (set_tile "l_length" (rtos (distance stpt endpt)))
% j: s; K K% D4 T - (set_tile "l_angle" (angtos (angle stpt endpt))); ]# P7 C! S4 I5 x
- )
& t/ R! a- q6 w1 l4 F& a4 d
/ \% t1 [0 d/ y$ i- (defun cir_calc ( / area units)8 |7 b) K9 \( e$ G, l1 D
- (setq radtest radius)
8 h. I: L u ^, U9 _. |! \ - (set_tile "Dia" (rtos (* 2 radius)))
/ v/ q1 T1 N+ Z+ s u/ P0 w( |! o - (set_tile "Circum" (rtos (* 2 pi radius)))
2 Y, S- k2 y4 ^7 H - (setq area (* pi (* radius radius))): ~) u( \) b6 J) ^2 s6 r: K. i
- (setq units (getvar "LUNITS"))
) j% k4 \* K* }) X - (if (or (= units 3) (= units 4))
s d7 e/ X- W5 @% J7 A* C* [ - (progn9 r$ u5 X4 }+ n% k+ N
- (setq area (/ area 144.0))
3 T0 A) s- o9 r4 ^' E4 n$ t - (set_tile "Area" (strcat (rtos area 2) " square ft"))
% p5 q: u) L# Q! p7 i, l* X - )6 H# X% D! g# x& G( k1 Y
- (set_tile "Area" (rtos area))
+ I! q4 }* f( Z7 F4 y4 y+ e& [4 @6 K - )
; l+ f: V* Z4 C3 E. ~! Z - )6 H/ b0 b, n7 j- C1 J4 e5 }9 z
- / n5 `9 e7 }! v8 {( g) ~- g
- (defun arc_calc ()
$ J$ d- v* `$ c2 f - (setq totang (- end_ang st_ang)). v$ A8 G8 l# ?: [, v( c
- (while (< totang 0)- f0 F8 p( {1 _1 r! e* U+ L
- (setq totang (+ totang (* 2 pi)))# A" k9 k! @) }9 e$ m) ^
- )
* J' {! J4 @8 p: t% g$ ~5 s. L - (while (> totang (* 2 pi))3 t0 B% W, k! I
- (setq totang (- totang (* 2 pi)))0 |9 j* }) J5 `( C% b
- )
0 j5 \1 Z" X: f% i" G' K( t - (set_tile "tot_angle" (angtos totang))
/ k2 j' c, \6 t4 Y x3 [, R! c! \1 N - (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi))))
/ P9 l, F$ M/ Z - (set_tile "arclen" (rtos arclen))
+ L$ W$ s# C$ ]( b$ X5 Y1 x - )
% M. Q% b$ q; M3 a% [6 [7 Z - ;;% n- i; o0 s5 Z3 m
- ;; Calculate the major radius, minor radius, major axis direction. y9 r; z1 | y
- ;; Get radius ratio. Convert Start, end parameters to start and end
" u7 M/ J* h$ N - ;; angles. Save Major Radius value in "old_majrad" in case the user5 V- h* M$ D4 N
- ;; chooses to input a new Major Radius value later. It's needed to$ P' k7 Q2 S; f
- ;; calculate a new Major Axis Vector value.
( g0 A: W+ {" x3 } @ - ;;! ^; i+ x# k/ c5 v- p; l: ~* T
- (defun ell_calc ()5 f1 Q8 ~; P$ p
- ;; Get major radius from the major axis vector.
# o7 K) V: H7 Y: d8 T - (setq majaxis (cdr (assoc 11 elist)))
; k6 [& p% t0 p- p5 N - (setq xx (car majaxis))/ u3 s; _2 ~ |: }6 x; e
- (setq yy (cadr majaxis))
: V5 m# i c g+ F: _ - (setq zz (caddr majaxis))3 C5 S7 Y1 ]! }9 Z! w. ^" F _
- (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) )))
2 x1 j2 ?* w/ F; C2 C& f - (set_tile "majrad" (ai_rtos majrad))
8 Q Y) [/ K9 a# Q - (setq old_majrad majrad)( T' Y" y4 ?; m2 J* u4 A2 g
- ;; Get radius ratio- Q8 f: b, I3 U9 Q
- (setq rrat (cdr (assoc 40 elist)))
9 I" O! I$ S- F6 r- g+ y - (set_tile "rratio" (rtos rrat))
6 f* ]* d- z i. b7 [8 g/ c - ;; Calculate minor radius
1 a% G9 L' a( u; N' _8 w - (setq minrad (* majrad rrat))
5 Y& k* a k6 X; ~, F - (set_tile "minrad" (ai_rtos minrad))
1 o, q7 k: O# j- N - ;; display major axis vector7 s2 D8 ]/ A- B
- (set_tile "Majraddirx" (rtos xx))3 k- R! P1 k5 @0 c' S x* A2 X
- (set_tile "Majraddiry" (rtos yy)), `+ ?* d0 ]1 z# ?0 M. Y
- (set_tile "Majraddirz" (rtos zz))
, h5 P' l/ N3 j v* d: b$ O* {
7 \/ u1 x+ |' \% L. l- ;; Convert start parm to start angle
1 T F) q, Z. R; Z - (setq stparm (cdr (assoc 41 elist)))! p# e4 m& ?: N0 C q
- (setq vecx (cos stparm))
. r+ d# t3 T" _& T+ A( H6 F - (setq vecy (sin stparm))
/ ]! m3 s: n5 k7 M' q - (setq st_ang (atan (* rrat vecy) vecx))5 h0 q- M5 Q+ n- \) V6 R) p3 Z
- (setq tempst_ang (ai_angtos st_ang))
* W; x4 i4 ~, F' a! s O1 a W - (set_tile "st_ang" tempst_ang)/ _, ^5 V' F% x7 I( ~# M7 `
- ;; Convert end parm to end angle. If end angle evaluates to 0( }) z& A2 h. t6 h
- ;; degrees then display it as 360 degrees.* W( n* m& y7 P( w4 Q7 ?) ^
- (setq endparm (cdr (assoc 42 elist)))
% O6 Y/ g) o, h6 W$ J" H( a, }% l F8 H - (setq evecx (cos endparm))! T' G( k. P9 _7 G
- (setq evecy (sin endparm))8 k( e( M% w7 t0 _7 c, t! L
- (setq end_eang (atan (* rrat evecy) evecx))
. B/ }7 p! i5 x' w/ j% V4 O& t; i, Z - (setq tempend_eang (ai_angtos end_eang))& T3 f* z! O- b& m' W+ }
- (if (= tempend_eang "0")
7 y5 C. p& q6 [9 K4 r* Q5 U$ r - (set_tile "end_eang" "360")! ?: ]4 f( e. i' R% ]7 j
- (set_tile "end_eang" tempend_eang)# o- ^* ?! A3 i+ X. |6 |. a1 A( ~
- )
7 p: i& G/ ~4 ~* y# T - ;; Get area of the ellipse., o5 N8 r5 T/ J
- (ell_calc_area)
( W% ?* C+ K4 b - )
2 R( Q$ S5 h/ v3 n( N. f. m - ;; Calculate area of ellipse. If it is an arc then% r9 s: b: u) h
- ;; grey out area display.
% K0 v; T( M, D$ K, [ j - ;;' L& A% O9 o4 l" ^
- (defun ell_calc_area ( / area units)
0 H5 Q4 Y# Y+ @ - (if (and (= tempst_ang "0") (= tempend_eang "0"))7 M6 |2 H: e G
- (progn; H5 V5 H& @6 Y6 n# h9 P6 Z
- (setq area (* pi majrad minrad))
! l0 L8 ~* d% A( S - (setq units (getvar "LUNITS"))4 q/ D: ^1 G8 } N* u& ~
- (if (or (= units 3) (= units 4))
: l. e5 S, s! c/ q - (progn" _7 S0 v+ k- r3 Q7 Z# b3 N3 D+ |
- (setq area (/ area 144.0))6 M1 L# u: F- Y Q, \' O' B
- (set_tile "Area" (strcat (rtos area 2)" square ft"))
+ ~" F% z. z& E7 Z( g - )
- P+ I& o5 H' R0 q) e - (set_tile "Area" (rtos area))5 l) a" a% @8 P# P2 e# g/ n1 B$ v
- )) \/ e) L9 C L' t' ?
- )
) b1 h' A# D) G7 M2 l& U - (mode_tile "Area_text" 1)
Z8 k* S' b' q% z4 }3 B3 F# Z! s+ o - )
% `& v, C- w8 \( M7 f6 I - )
5 A% z# C1 X% d, F - ;;
8 L/ I# n8 r2 f+ Z( c+ \ - ;; Calculate new values for ELLIPSE
; @6 F; f6 D5 w1 Q7 p% f% ? - ;; Minor Radius, Area
& f1 f u! q8 B, C. g# [ - ;;
# e* {+ b2 b, c k0 Y/ N - (defun ell_calc_newval (ell_tile)
/ g7 J+ t3 E' z* D8 @ - (if (= ell_tile "majrad")( q$ ?8 C: L T! Z
- (progn
+ X/ j8 s+ `& V- d8 r - (setq rrat (/ minrad majrad))3 U# H2 C! Q3 i1 D1 n8 G) B
- (set_tile "rratio" (rtos rrat))) B, D9 i9 Y) ?5 }+ N5 {: M. r
- (ell_calc_area)# u2 g. J+ G5 P5 }$ c5 R
- )! V* S& _7 y' S! ]/ ?8 [3 F
- )0 N$ F3 p; X) \4 w
- (if (= ell_tile "minrad")7 w5 \4 i4 j( \3 r- X* m, p0 P
- (progn
' C* Z0 X, N; ? \( ?/ b1 _ - (setq rrat (/ minrad majrad))
% j0 a' p% h2 a' @* R% R5 u9 i - (set_tile "rratio" (rtos rrat))
% N% b2 G( V8 ?+ ? - (ell_calc_area)
% c& y0 t& f8 P. Q - ): y" |1 q: S# L. D
- )3 t( ?5 j4 `+ ?* m
- )" g ^. z( R$ |, N6 a
+ b$ f: |" n3 v+ f" z1 G: ~( ^, I- (defun set_dimen_props (/ loop a stl txstyname)& u8 I Z7 i3 ^# O; e- S' F. W
; u& `+ m+ v) `2 l* @. t( k- (setq stname (cdr (assoc 3 elist)) ; get style name
T& i- q$ L3 d6 l; Z6 I1 r - stl (tblnext "DIMSTYLE" T)+ E# \1 l; t/ b/ G. [& G
- stlist nil) M7 m9 U; K/ F0 |$ ^/ O
- ;; Get all style names and list them in alphabetical order
4 p+ U& E) {# u9 C( F* c8 E# g% h9 S4 l - (while stl9 U; w8 N4 V# r) Z
- (setq sname (cdr (assoc 2 stl)))
: j: S, O8 t! p; X! Z+ v7 G5 h9 F - (if (/= (logand 16 (cdr (assoc 70 stl))) 16)
3 x8 \, L+ Q. o6 X8 g4 m5 ]3 N - (setq stlist (cons sname stlist)))
+ b) x$ m d7 N - (setq stl (tblnext "DIMSTYLE"))); @# c4 z7 j) i5 m' v+ s
- 8 s1 r9 q3 e% |4 h% H4 h
- (setq len (length stlist), u+ G9 W3 P' c2 |
- loop 0( ]- E) k- ?6 A2 [0 M" h5 R* Y- W7 a
- dimsty stname
! E5 W' `7 Z) A1 {0 \8 e' u+ D" J - )- f2 t+ R4 W: j! \
- ' i! {, ?) }3 W5 d6 a# `" a4 R' p
- ;; alphabetize style list, depending on maxsort
4 |/ o0 M5 H" Q/ j5 x - (if (>= (getvar "maxsort") len)5 \8 |& K# ^1 | h# D
- (setq stlist (acad_strlsort stlist))
% K) R. a# r3 C2 g# N. { - (setq stlist (reverse stlist)))
) Z6 f+ ~8 j `# ^
e8 a! E* T. y$ ? L9 m- ; *UNNAMED style (dimsty = nil at this point) is replaced with
3 L$ F3 z( `& t+ \: H - ; the current style. After R13, we require dimensiosn to have a
% h- g0 S0 p2 V4 z+ p1 X - ; dimstyle, so we plug any holes where we find them.( z- K5 \3 c, q2 `
- (if (null dimsty)# C3 W, `* U! B! |, v! @, x1 v
- (setq dimsty (getvar "dimstyle"))
3 J! ^3 w+ H r' Y - )9 N4 b& l# E1 T1 ^% \4 g) f( p& M
- ; Show the styles in combo box
* J" K5 V2 r8 j, Q: ^0 E6 Z - (start_list "mod_style" 2)+ r5 w X7 @5 o8 N0 A* l
- (while (< loop len)- ^/ L) N4 C: X' E4 r- n) }
- (add_list (nth loop stlist))
7 H7 X; l& l. e2 p3 u - (setq loop (1+ loop))9 `: U: V# Q k1 \
- )
# E+ d5 u; o3 V% i# B
( a; M, g: y6 W1 j' N- (end_list)- e: P8 j& x* o# a
- 4 M# Y) N0 h% q5 ?4 y( T" t
- ; Hilight the style name of the selected entity
8 K c) t" C7 B$ g - (while (and (< 0 loop) (/= dimsty (nth loop stlist)))
$ y/ S% A% ~0 R8 B" Z3 f- r - (setq loop (1- loop))5 E- _. v, p, E x8 ]9 E; S
- )
& o. ?; L3 s# D - (set_tile "mod_style" (itoa loop)) ^% F r }, {3 m4 f
8 Q6 N6 ]3 B+ D9 d* n( ~- ; The following is the list dimvars. It must be sorted in the same
! O, U( }5 e7 ^! G) } - ; order as the resfub returned from DDIM (ADS module).
% A% i) C2 U5 g, j" q# \7 e3 F3 P g - $ _) r3 a9 D! ~& A7 a/ s% d! N6 L# I
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
& e. L( s! ]9 @- w - "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
/ \' C6 j3 j+ S - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"0 E: ?( {9 N4 q6 h) Q1 ~2 ~. R* i
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"; U# n$ |1 `: D2 `1 S. k
- "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"* E/ Z" _; v% Y5 ^, p! _' a/ r( D# e
- "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"
q" v$ R. Q# Y( ] - "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"# u, F0 K" @3 @3 O( p( j
- "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"; e7 i7 ^1 P) V( z' ?2 R
- "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
9 k) o! a0 { a) ^0 x - "dimdec" "dimtdec" "dimaltu" "dimalttd"- Q' J" f& c9 F# H
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"
3 E* Z6 g) f( J: s7 A. Z - "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
4 U+ U, ]. Z; R3 u - "dimtxsty"
; R, z& u) g, G% g8 `, H( u3 K5 B - ))
9 A: O1 U! O. T: M; D - (progn
$ o* } ~- O: K% ]. S - (setq sv_dvlist (ddimen_getostate dimsty)2 `% Q( N# U1 {4 ^& n) @
- txstyname (assoc 340 sv_dvlist)
' @; i [6 t4 `7 I - sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))" ^: p5 o9 T0 E4 ~3 y6 [
- txstyname sv_dvlist). C$ R* ^ l7 W' L+ y( V
- dimlist sv_dvlist; e b. F3 W* [1 |) @2 u
- )% z5 V' h$ R# l! h; t; V3 r) e
- )) L! j9 I2 C. ]1 W0 \
- (if (= dimtype "DDLEADER")
% U% q" A- t8 l, b& g8 [ - (mode_tile "mod_format" 1)
0 V8 W& h1 r8 l4 j0 n - )' E/ {; B* Q7 G; C# @% W
- (action_tile "mod_style" "(setq dimsty (ddimen_style))")
& L# L D7 w7 u7 J4 C - (action_tile "mod_text" "(done_dialog 4)")
2 {6 A- B# R2 d" G% C4 u - (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")
$ X! G0 Z3 v: d4 ^/ v& ~) @- k - (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")/ t+ j" O. a+ L3 z# O1 r8 k
- (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")
& g" B" o3 t2 q6 F t: r: U5 T - (action_tile "accept" "(done_dialog 1)")5 c- U$ r1 k) T1 L0 k& y
- )
- Y9 J0 `( J/ N4 P3 { - ;;
( p2 c& A0 T9 O% e - ;; Get dimvars that have been restored.
+ b; N6 W8 k# d, K - ;;( C3 N# A9 ~+ T8 [' u
- (defun ddimen_getvars (/ elm dvlist dv i)2 w# c0 o4 ^3 g& \/ b9 ?4 C
- (setq i 3/ v" c3 h& K; G5 Q
- dvlist (list (cons 0 "DIMSTYLE")
& _( Z. m% G: X$ x% ]9 s; d - (cons 2 (getvar "dimstyle")) (cons 70 0))
( V5 E7 c, ?0 c7 T - )/ l- O) o5 M$ s) j2 C' I2 n- |
- (while (setq dv (nth i dimtbl))
7 }0 F0 ^0 w# {! K- x5 s9 P3 S7 z - (setq elm (getvar dv)
+ _) d. _/ I- I: K/ y0 i" I0 g - dvlist (append dvlist (list (cons dv elm)))
8 s# P' k" M( s6 }& Q+ b - i (1+ i)' F, s& Y; T4 W& {8 j
- )) l: N) I% o; A8 r
- )
) k9 ?0 e4 J9 l1 V( G - dvlist
& o! l% u( C" T9 y+ n# d1 |" P - )
, P. ~) P% i) n* ]8 {5 o) Z
% b/ R% b1 L- C6 _- ;;5 }5 Q( T C, P) k) _" Y9 o
- ;; Get the original states of dimvars. This is for DIMENSION entities.8 S+ ]% F4 Y# O# E
- ;;
% Q. J; ^9 ~& e - (defun ddimen_getostate (dimsty / dvlist elm i dvvars)- @+ D4 @- n" Z! R1 l
- (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list0 v9 Q# C/ }6 k9 i$ ]( e
- dvvars (ddimen_getvars) ; Get dimvars for that entity
$ O$ x Z o! }+ k" z - i 16 v" `* r, q: G( k6 r9 k
- )
% ^( g$ {% X1 S! n5 q4 [
8 o) c5 S2 v$ w8 w h- ; Create a list that contains values of the selected entity.
, O! g2 l: _6 d8 \& e* t! S
' g9 g* L* b2 t9 s8 `- (while (setq elm (nth i dvlist))
; z3 M y; o8 T+ c - (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)
4 M* E% k s) y- s+ w3 b - i (1+ i)9 i: N X- J$ f& u: ]
- )
D& y' t. G( j2 R - )& H5 s( a( @4 r, q" y
- dvlist- S# r; r8 e s" P6 {4 A
- )
) k! }% V/ G- P. H4 F9 c
a! E' f) Y" ^0 D# j- ;;
3 x# h( y4 ], c' @! S - ;; Restores dimvars of the selected enity.% T8 h3 g- N7 h& }8 f. Z
- ;;
7 A1 p3 G; u+ Q. \ - (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)
7 w7 O# d* d i7 | - (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
4 Y; L" d1 j8 I4 z3 _3 {' J - "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
4 m& x' S, S9 D& y# z - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
6 K) R" j: _* V: l$ _0 a7 E - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"' E9 ]% V9 V. c6 g( s5 l3 n0 f+ {
- "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"3 C" V% G1 n) ~- D8 g& v& M
- "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"$ ^$ C: j0 W, v
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"( U0 I' Z1 w( Y- u
- "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
, j3 I- C1 S: w$ J - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"* ?6 P W2 v5 [3 G! ~! \
- "dimdec" "dimtdec" "dimaltu" "dimalttd"( W! y1 U5 t( `0 }( V7 ^5 e
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"8 M, w. t9 [$ P; s( x1 S
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
/ O& R) U' A, a Q; D5 V - "dimtxsty"
: x; |' s' B8 q+ ? - )). [# t% d/ B% ~6 g' k
- (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings% p- n+ |% K+ x8 Z" x
- (progn
7 _6 U* e* C' r - (setq en (cdr (assoc -1 elist)))
5 V+ ]# b3 H/ e2 M - (command "_.dimstyle" "" "" en)
t {) e; G/ r/ @$ S - ); e. m" \# [6 y. T; v" V
- dimsvcurset& Z! g4 \7 s8 Y0 H
- )/ n' N" k# p0 M2 e
- ;;. j# i5 V+ L/ o) l1 }! ` C
- ;; Modify Leader
/ U4 K; U5 B1 I2 f' b7 \ - ;;
7 @' a ^% t3 G \" e: | - (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl6 ?; `* k- u" c( e! }
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist' G& y% ?( O: g3 Q; @* @
- dimtype dimsvcurset)
. \6 Q" p2 d- T8 F - (setq dimtype "DDLEADER") B6 q+ G& i5 {, G" ~) {9 H
- dimsvcurset (ddimen_dimsty_restore)/ J6 n4 R6 [$ G8 Y% C3 C
- ) A! `& o' F V( o( A
- (if (not (new_dialog "ddleader" dcl_id)) (exit))0 y2 E; E) Q) o$ _$ F' q8 F7 h
- ;; Set initial tile values
z, T; ]. f, F, U/ t& J1 [0 L - (set_tile_props)
7 K* t0 G) Y r; z - (set_dimen_props)
& t1 x# K5 Y5 H, A! i - (set_tile_handle)5 B0 R7 h) q& U( Q) x9 R3 e1 o
- ;; Define action for tiles" J: R6 x; D7 N
- (set_action_tiles)2 T6 r [ Y0 q9 y2 @
- (mode_tile "mod_text" 1)
6 x# [# Q0 z9 K6 d4 p - + J" _9 C2 f( \/ ?$ b
- (action_tile "mod_style" "(setq dimsty (ddimen_style))")
( }$ @# I7 f$ J. k3 a - (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")2 @; o2 Z) [, R; U: T0 K ^% ~
- ;; Get ARROW and TYPE.) J" N$ ?- g7 ^
- (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))4 p1 I/ m' T6 @ t
- (if (= 1 (logand (cdr (assoc '72 elist))))
; i( _. ~4 W* ?0 B- h! R - (set_tile "s-s" "spline")( n2 j; X! z7 j) j0 _
- (set_tile "s-s" "straight")
; T) ^6 m( [6 t1 F - )1 e5 \0 |/ x# K2 ? n# N
- ;; Start the dialogue.6 W6 Z# o9 A$ f1 B* P( {7 m' b: c- e
- (setq dialog-state (start_dialog))
+ `9 Y. l3 E0 k; K1 d N7 b - (if (= dialog-state 1)
: A u; {0 P Y5 O - (progn3 Z! r0 j( Y1 w& y g
- ;; update the style* `2 _1 ~4 h% z
- (if (/= dimsty stname)' F+ |! W( e v" H( e% G
- (progn" |% N% Z9 p( c) l: u6 `- p, O0 g
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case7 Y m* W6 s3 ?4 U% b
- ; doesn't have it.! ?1 S3 ~. N9 i/ ~) S% ^5 @$ G/ H+ B
- (if (null (assoc 3 elist))
# p& o3 w* Z% |7 w' X- w0 m - (setq elist (append elist (list (cons 3 dimsty))))
1 n8 q2 d# e$ o. p6 ?0 w - ; else just replace it.0 r+ a0 [1 ]3 m d6 L1 p2 N
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
% @, w' l9 s; S4 i! [3 p - )
2 q/ m( I1 a6 H7 E - ; refresh sv_dvlist with new dimstyle.+ c( a5 u. w( ]$ u7 h' n* B
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))) l/ b, w' e% L. P
- )/ k0 R) I/ R; H2 o9 w7 K8 A1 H5 G2 q
- )$ M0 _" a& n6 ?# J9 m( }4 w
- (if (not (null dimlist)) ; attempted to change dimvars. e. _& ~% L; l4 q4 q6 i/ U
- (ddimen_complist sv_dvlist dimlist dimtbl)1 |7 ]( Y& v+ Z2 x y% R1 v% s
- )! _$ |9 ~" K3 E4 d( \& Y
- ;; update for ARROW.
; m1 \% C, v+ |. ` - (if (= "1" arrow)
% e- I0 w0 _% l2 h) G* _3 U# Q; w2 G - (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
0 _) O& Z) `: T- g; L l - (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist))% F' B6 S' ]& e- Q# `, `6 ]
- )2 D. p6 W+ ~0 J$ f5 {3 D
- ;; update the TYPE.( M* G* S- j2 i9 D; c+ f
- (if (= "spline" leadtype)9 u G! _' C% c3 G
- (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
" ]- f% W6 C2 j! v! m* H - (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))- [1 q l: W! [
- )
7 p, H) E. K% V - (modify_prop_geom)5 U5 H. w" L: ]7 Q
- ;; update the Color0 e$ C g# {' h" @2 O% i
- (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))
' I% e2 H! p1 B' L* P% \# Q - (entmod elist)
* G9 D% x: R% b7 g - )- U0 k$ H3 b h$ i
- )0 e% g6 ] R% `
- (ddimen_setvars dimsvcurset) ; Prepare to exit5 ?* L- x+ k, J; }$ k
- )& g; j" `0 l% I7 x: g6 {
- 4 \0 F& I' D$ O
- ;;
7 _; X% @% o/ q6 N, n - ;; Get dimvars of a dimstyle with overrides.$ ? X7 \* }7 n' G" ^( i; y+ W
- ;;; W7 u* @ s% c1 O8 N2 u
& s/ G# @) n. H4 c- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)
n( q. F0 r9 R - % {2 q9 m! w t9 O6 h
- ;; Get override information for the specified entity.
) P1 s- `# Y* \* n6 t# s - ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we
, Q7 }4 `, V/ Y& q. C' j - ;; must obtain override information through this tedious operation.
/ g& {! e4 B1 w+ b7 @! m - (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))
2 r0 q$ i& g7 r3 d: N - dvlist (tblsearch "dimstyle" dimsty)5 f3 |4 C/ v$ ? ~. v
- i 2
/ m4 q. |9 U' q1 ^7 h. J - )
% [) U! C/ C* J6 D$ A
, M2 g- `+ U2 `- ; Update the list with overrides if overrides exist.
% W2 Z- r9 f7 J
( L' j. V& A$ R5 Q- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr))))
- ?! }* g& P5 N. B: T; ^/ D8 s v3 j: } - (progn7 r% M% E" c! i8 n
- (while (setq elm (cdr (nth i dimovr)))% X2 B* l9 E+ b' F! L3 r
- (progn8 i. j z" K1 _1 b% I2 C) j1 {
- (if (or (= elm "{") (= elm "}"))
9 d$ j4 D& y8 K9 E - (setq i (1+ i))
7 O+ J6 Z6 F: Z! { - (progn
. z' F! y6 s [: P9 i H - (if (or (and (< 180 elm)
+ d; O* b% }! F6 @1 h' \! @6 j5 {2 } - (< elm 190)
! _/ D8 Y5 _4 e$ T4 c - )
4 w1 T$ G1 A% f0 B - (and (< 80 elm)
7 J* c2 }1 w7 v( n8 T" r - (< elm 90)
2 V3 O2 j7 E4 Z - )% P7 u9 z R- C# d
- )4 }! y/ u- e0 L, c8 V
- (setq elm (- elm 10))
' j1 S6 |2 z5 J! m; p4 ?) B; g - )
( h& V3 `$ o0 U - (setq i (1+ i)* y6 S! j- ~- j
- elm (cons elm (cdr (nth i dimovr)))
) E# R- l; y. s7 B- c1 D* N - dvlist (subst elm (assoc (car elm) dvlist) dvlist)( ]2 {/ I6 ^3 z0 V* Q6 R
- i (1+ i)
- [" V9 O: O8 R( R3 _, ~ - )
5 o+ l! ~, Z! h" l, }9 p) { - )* H: C X2 `* c9 y( U; K7 G
- ), J( W- K' \: ]
- )! j+ n# Y& B! `
- )# \8 }- y# ?7 Z3 K/ `8 ^
- )6 d' n8 z/ }" h3 A# w, h( N1 L- P# h
- )" i9 @8 M5 |+ K- D
- dvlist
x, E; o% E: o$ p2 x - )" G8 s) s7 f& ]" V6 H9 M. C: F
$ Q' z& ^1 P* k3 P- ;;; Y9 i0 }) ~( n" x- ]7 r' a
- ;; Modify POINT: P. I: U# o) R8 _$ _# E0 r
- ;;
* Y9 [$ g$ I3 ^9 e - (defun modify_point ()( C/ j* d, S% @, K, W7 i
- (modify_properties)
( E* t6 W* T7 L+ _/ Q - (setq pt1 (list x1 y1 z1))6 {/ c- A) m& J7 T }
- (tempmod pt1 10 0)# x5 V: l8 `8 ?5 c
- (entmod elist)
' o6 X" ]! ~& w - )
! y! K7 _; F) H - 7 r! P) [# ]1 t0 r& k, h& S
- (defun ddpoint ()6 {! X' y5 j1 E/ h7 F+ y
- (if (not (new_dialog "ddpoint" dcl_id)) (exit))
4 h% D- F5 Q0 R, D* u) R - ;; Set initial tile values
3 @5 m K9 D: t# Z5 t ` - (set_tile_props)' k; Q/ Y. A% _, W' W
- (set_tile_handle); z) q+ W, F2 V0 k
- (set_tile_pt1 0)& \2 n; x4 k6 |" W y
- ;; Define action for tiles
, G! V( X! C: p) M0 u4 o: ~ - (set_action_tiles), ]7 A, n& N5 k1 F; L" E
- (setq dialog-state (start_dialog))
e/ b3 O" k, v8 W& h6 d - (if (= dialog-state 0)
: r, d! y, s3 m# f - (reset)
, K' C( Z! {' J" {$ _6 k - )! Y& E' B$ K$ S5 q
- (if (= dialog-state 3)
, Y* }% N+ G! F3 _ - (progn6 U$ x! W7 ~" B8 m
- (modify_point). `" x9 q8 B$ C' S" H0 d
- (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))8 Z! B9 |/ j' q7 Q0 o. u
- (ver_pt1 0)
% g+ {4 {: B) D: L3 _ - (ddpoint)! p+ u9 B7 T# t
- )0 L% f" Y4 H& F9 ]4 D! g
- )
; X( g9 H; O5 u5 P/ L - (if (= dialog-state 1)
' o; E' S u/ u' c' K - (modify_point)
* n- W5 H9 A7 G& c: q8 H* o: ?8 [" @7 R - )2 x J9 Y6 I i( L- @
- )
$ L C, C$ B3 a9 D E4 x - ;;
9 H7 V/ H6 c' m - ;; Modify LINE
[9 _+ T; S0 b- d2 s- B* ~ - ;;. Q+ f9 K7 M1 x2 `5 {
- (defun modify_line ()
- W2 [! f# w1 X* N& O& Y1 Z - (modify_properties)
0 X8 W$ h) E9 E( ]+ ~% F' z2 s - (setq pt1 (list x1 y1 z1))% U8 }0 y+ k1 y+ h) ^
- (setq pt2 (list x2 y2 z2))7 Y) m; M, D: f1 {4 H3 ?" }
- (tempmod pt1 10 0)
w7 r) l! w" K: l' `- W3 d4 A1 `# S9 v9 ] - (tempmod pt2 11 0)9 c3 U* u0 k4 d- T* k7 V& D
- (entmod elist)% x b7 l, l7 ^$ k
- ), A% y! E' A* G% `8 n+ M
- (defun ddline ()5 [4 U7 L2 F2 z" P
- (if (not (new_dialog "ddline" dcl_id)) (exit))5 q7 V+ ]# ^& ~' n, \' j
- ;; Set initial tile values. D9 w6 h- y; M. y# j. S
- (set_tile_props): H% E% Q& I1 Z. n2 T
- (set_tile_handle)9 R# x; M! [' W( O- a, A
- (set_tile_pt1 0)5 }- G9 O4 v3 P2 A9 o W
- (set_tile_pt2 0)& n& |. M$ R( a' X6 B
- (line_calc)
. ?2 p" O9 L! \, P# x' n/ A. Y - ;; Define action for tiles
/ _/ L" N3 y* y1 w! w& U - (set_action_tiles)2 G* k8 B3 {% Z# }, l% A
- (setq dialog-state (start_dialog))
( i) f+ j3 _5 `, H6 V - (if (= dialog-state 0) x3 p3 ^; s# c9 M; y: c
- (reset)
) [: Y, C. ^2 | - )3 p9 {' p- t# f- j/ \
- (if (= dialog-state 3)9 T) K% d- q6 E( E# _9 B
- (progn
5 m! E1 t3 r: x - (modify_line)0 ?, _9 }$ j7 G
- (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))( t" S! w a; o; ? |" B5 n0 B
- (ver_pt1 0)0 _+ ]0 h+ T$ M) w: G& G
- (ddline)
7 H( {) Q5 c3 A; T& A - ): @+ ?% G6 p4 |
- )
+ d) g: X( @: W - (if (= dialog-state 4)
1 ?6 V) q3 L9 }& L - (progn' D0 J2 ^& B4 `
- (modify_line)
; U% f b4 b- I2 u7 Q - (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))
9 t1 [% p1 q2 M' h6 S5 j - (ver_pt2 0)
# [: q- V; j1 z* k/ g - (ddline)4 u# U: W; E+ J8 j2 Z; Q, S
- )
2 v5 U$ `5 N4 s+ }4 V9 K' U- ?7 V" g - )& P# P4 b" Z9 p
- (if (= dialog-state 1)
) j5 z& J1 ^3 J; @9 k: Z& l - (modify_line)
: f1 X+ W* V& f; }* B! R" Y - )
9 o C* I6 i. R& N - )$ l' t! F8 {+ J* Z
- ;;
. e6 Y+ D8 k% q. V: ] Z: d - ;; Modify MLine# X. T6 e! k/ v' l' V0 M, k
- ;;
! ?+ ~" ~! {' Y3 a, h* \! I - (defun modify_mline ()7 J3 {- o" k/ e( I) _ z5 ~
- (modify_properties)
: o) a4 d8 u o" F - (entmod elist)
1 {5 g$ L9 E6 _/ r, O - )4 Y0 Z) L# Y; J
- (defun ddmline ()
+ C6 l4 U d; h, T - (if (not (new_dialog "ddmline" dcl_id)) (exit))
) ?! U, u' l; F+ M% w5 L - ;; Set initial tile values8 W$ _; Z* n* C0 `8 B
- (set_tile_props)
; O/ B6 B0 p9 {( S# q% W - (set_tile_handle)
. i! Z6 O5 D0 R d) v7 A1 ~) F. W - ;; Set mline style text field.: e1 ?9 I* g* J n1 a8 M
- (set_tile "ml_style" (cdr (assoc '2 elist)))+ `* d0 J- A. s6 P$ ` M
- 9 Y, R7 d# [ Z+ Z( U# Q, ^
- ;; Define action for tiles/ W+ l% r8 J* J; C
- (set_action_tiles)
7 \* S) g3 b3 Y8 U. O# ` - (action_tile "ml_edit" "(done_dialog 3)")
9 l- Y v( q s4 I4 m/ j+ q$ q - (setq dialog-state (start_dialog))' b/ D6 E' `! r7 J+ r% t5 I* c( a3 D
- ;; Dialog cancelled, reset to original values., T. M: X; r* \' C$ s, _
- (if (= dialog-state 0)
8 q0 E5 ^( H4 W+ K6 o - (reset)! a7 J+ }- s' x) @
- ) x+ H6 b) ]. H; q e' A& M
- ;; Dialog OKed, update the mline.
: ]+ }, T0 G( E+ m. I/ L( F - (if (= dialog-state 1)4 ]% A& Q+ p$ d
- (modify_mline)
4 {- A( \" @2 w! Z" K - )
6 z8 P& t0 b: D$ ~8 v# s- ?" D7 C - ;; Edit Mline, call MLEDIT.# X* j0 U/ U+ }/ i- [8 @; ~2 Y& y
- (if (= dialog-state 3)
1 W# f$ a: J8 u: h; [) P - (progn
% T/ L8 a5 u. X1 Y) d1 p1 a - (modify_mline)# p% [* h5 a. U @. I
- (command "_mledit")
7 P! F6 k: {+ U9 {1 ] - (ddmline)
; R% w) C7 u# y, K- U4 v; X% Y - )
\$ f, U; r6 Y$ L) x - )3 x! v$ ^( \" ^( ^1 p. |
- )& O5 R1 ~9 ]/ `: T+ f
- ;; G0 X5 d# u" K( t
- ;; Modify Xline
/ k7 G) P, r5 E' S- @ - ;;
& R$ u6 I% u9 K. v - (defun modify_xline (flag)
0 V8 Y) w: Y1 ` - (modify_prop_geom)
, _$ m2 \& l K+ e - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
0 g$ g/ a* z0 @0 p' ~9 D9 q7 \ - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))( f0 m% u1 y( Y# q% B& H' M; y5 {
- ;; Update the Root point.& B4 q9 [- m: q! ~- y$ Y+ M
- (setq elist (subst (cons 10 (trans xline_pt1 1 0))
$ B% j# j2 J' W: n - (assoc 10 elist)
1 ?4 ?% Y! V& V. t6 w - elist
2 i, h+ @' u, N" \) N$ J - )$ r0 M* W' S6 B& n4 W7 c
- )
% F; j. H, t! p7 I - ;;
. p. y$ b' R5 A3 C: l - ;; Calculate new Direction Vector WCS
4 Z p* P9 K" C3 A; u - ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))% z2 r( f# R1 w, [, }- x
4 _3 d! G7 H* n' R3 W- (setq temp_dir (trans xline_pt2 1 0))
1 ? u( O- i l8 [* A8 B - (setq temp_dir_x (car temp_dir))
! L* ` L' C* {; w3 k2 `9 U - (setq temp_dir_y (cadr temp_dir)): R6 k2 d$ {3 _# ^
- (setq temp_dir_z (caddr temp_dir)); j& H% D' `% ^
9 d# i1 q! r* i* r. I- (setq temp_xline_pt1 (trans xline_pt1 1 0))
5 S+ B9 n# A7 i S) @: s - (setq temp_xline_x1 (car temp_xline_pt1))
% m) y( _1 Y# D2 Y - (setq temp_xline_y1 (cadr temp_xline_pt1))
. t) l- `6 Q4 c0 F4 m1 h6 O - (setq temp_xline_z1 (caddr temp_xline_pt1))
- s. \% k& c& B5 S - , {# I' G9 d3 e6 G n
- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
, m; f" j* v6 u; _: K7 i: l+ @" e - (expt (- temp_dir_y temp_xline_y1) 2)
" b" _8 ~+ L+ I" ]2 N+ Q/ g - (expt (- temp_dir_z temp_xline_z1) 2)3 B+ B6 o% N: I5 e
- )))% V* M: ^; i6 `0 V5 o
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))$ b7 g4 u# U1 C: S
- (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
5 m+ c# _2 h, I' ?: q+ i( t - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))7 b% m6 F" K4 |
- (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z)); } M c5 c7 C
- (assoc 11 elist)
# D9 L3 W; y( T, n: b4 ~1 u - elist
4 ~( q+ o0 U2 J) O U - )8 ]" I0 h( W! q/ L: g( Z& F2 N
- )
8 e$ ^& d" B; ]! G8 W' F9 R - (if (= 1 flag)
( U) p- y. x0 `. y8 n! X - (entmod elist)
/ E0 y9 L" ^0 W+ I - )
9 l4 s, g, p' q# ^; s) Q - )# T' H2 _2 n+ b0 }
8 L5 v7 U4 d O+ |: w- (defun ddxline ()
- @* v: r3 W2 i/ Y - (if (= etype "XLINE")7 z% ]. v8 ^ i: i L
- (if (not (new_dialog "ddxline" dcl_id)) (exit))
9 H) _7 ]! {" F# O0 f - (if (not (new_dialog "ddray" dcl_id)) (exit))( J4 I& R4 H* W3 Y! l) S$ a! D; f
- )
O; O4 {! v& t8 N - ;; Set initial tile values
0 ^( M* c. A# R- K0 |% S n - (set_tile_props)5 W% L8 N$ j2 T& ^. T
- (set_tile_handle)
( D! m6 ~! L" J: Y2 u - (set_tile_xline_pt1)
1 p% j% S8 T% @# j* F - ;; Convert to UCS and post Direction vector.
# ~' C& e9 f* x7 Z - (set_tile_dirv)
% n$ u4 ]5 c2 { \5 S - ;; Calculate second point by adding Root Point + Direction Vector.
1 v0 d9 b6 \1 g- R; G - (set_tile_xline_pt2)/ S6 _( k. N* K
- ;; Define action for tiles
7 c" y8 X3 N E# T) m - (set_action_tiles)
) x/ V. b& A" K - (setq dialog-state (start_dialog)) `2 a* F) Q7 }4 @; t6 P
- (if (= dialog-state 0)
1 X6 i% d* E% ]0 l0 a6 f5 W - (reset)+ u5 o! f4 d. S, O9 u7 d7 @
- )+ e$ ^: G2 s8 I" m. I& i
- (if (= dialog-state 3)
+ d% k' Z7 M, g - (progn
, y- [. ] w% q3 `! S - (modify_xline 1)+ I' G1 b s( H" [
- (while (equal xline_pt22 b( S$ J- g0 v# n0 d; @
- (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)
( R A* r# \. P0 K+ Z - (princ "The Root point cannot equal the Second point.")3 a& y' C9 Z) ~$ A) {
- )9 |) u3 ^& B3 U" B5 A
- (ver_xline_pt1)
" `- m- G: p. T% b8 ^( h+ z - (ver_xline_pt2)5 l' k( s) {+ D3 u( n3 N1 D
- (princ)# v( s `0 D4 U# o
- (ddxline)
" |* |$ F _! ~8 j4 O( }* D2 f - )
- n9 [! Q. R* D - )
+ M, V I! ?7 m7 U3 M$ S" o - (if (= dialog-state 4)
) D/ W3 N8 G- w& t8 E - (progn
3 a5 v. a f3 c( [. v8 g - (modify_xline 1)2 u& j+ R k5 ?: R2 w; N+ A
- (while (equal xline_pt1, G# U% M0 Q: u; B7 X
- (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)* d: b1 W0 O, n, t5 D: ^
- (princ "The Second point cannot equal the Root point.")2 c( ]- N( X0 f* p/ G
- )2 S6 T$ g- ^' G. ^$ G
- (ver_xline_pt2)
9 \3 B( }& }7 J - (princ)
" T8 b: `& U) h1 ^' `0 u( Z/ z4 x! a# q b - (ddxline)
& r# @( H) a. [& s- W$ X+ h( B% Z - )
2 ~6 \% S8 w& ]9 b$ j4 u1 o - )! o3 j, L9 W+ Y! L+ _
- (if (= dialog-state 1)
7 I" l7 m0 x* {/ G( {( Y# D - (modify_xline 1)1 B0 }4 }' i, F& P
- )3 Y. a# S8 |/ D* T9 E4 j
- )0 x" v4 w* u2 w
- ;;
3 I- `9 @: b! ~9 P - ;; Modify ELLIPSE
7 p- r" a% j1 f* [1 q - ;;4 u5 `+ }: D8 R5 h0 J
- (defun modify_ellipse ()9 u" s2 u, ], z$ S6 K
- (modify_prop_geom)! a+ L: O0 M3 y2 A
- ;; Update Ellipse Center Point value.
* b- o B Q0 `; F2 L - (setq pt1 (list x1 y1 z1))
5 x* y' w5 f; E - (tempmod pt1 10 1)1 ^6 C: A+ Z7 Z. c6 |; b* s% }
- ;; Update Start Parameter value., U* }# |9 v% H' }, l, r
- (setq y_val (sin st_ang))9 g; }1 c! C0 {& [" ?1 b
- (setq x_val (* rrat (cos st_ang)))( `, m' h' y {
- (setq stparm (atan y_val x_val))0 h9 J, ^5 k/ ?1 c/ u
- (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))" M6 R, d3 \& U& y' F! ~: q/ x
- ;; Update End Parameter value. Normalize it, if it's less than
0 n# h. ~6 f: G& I - ;; the start parameter.
$ E; s1 z8 g1 \* s - (setq y_eval (sin end_eang))
" `7 K* c0 p9 {3 x% C2 Y5 i8 U - (setq x_eval (* rrat (cos end_eang)))7 O( B2 n A8 A, x
- (setq endparm (atan y_eval x_eval))
8 P) i, q( ~9 r, H6 R! I. k - (setq diffparm (- endparm stparm))! W. W( M* V% G) ?- L1 e" W
- ;; Epsilon of 1.0e-6 radians for checking a zero length arc. a/ h { J- a; m( q# ]- j
- ;; Since zero length arcs are not allowed - construct the full" C1 r. q# z4 l; {2 N8 H
- ;; ellipse in this case.) @* h" d/ P0 \0 U ]% l
- (if (<= (* diffparm diffparm) 1.0e-12)
8 R* Z8 z$ M( N/ q& Q& p! j - (setq endparm (+ stparm (* 2 pi)))
, j1 }9 f5 c$ Z! _2 h0 \. I% x - )
) V% \4 h: |7 R2 f& s. R, | - (if (<= endparm stparm)
3 Y y4 `( N4 E6 }5 m% X6 c% | - (setq endparm (+ endparm (* 2 pi)))) F2 \8 C7 z; H! G, v1 o0 u9 {
- )) ~# d( ~. p9 Q$ A
- (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))
/ o+ V* W2 h8 }6 w% R8 b, s7 r - ;; Calculate the Major Axis Vector by first calculating5 `6 V, |+ q4 n7 U
- ;; a unit vector using the old Major Radius value. Then. z; z9 a% u T6 l& V1 E2 Z" n" c* \& }# Q
- ;; Multiplying that by the (possibly) new Major Radius% b1 G* w$ O) ^! ~6 R! g1 z
- ;; value to get the new Major Axis Vector value.
* y5 a Z" m5 h6 c* A% ^: U - (setq unitxx (/ xx old_majrad))9 {" g4 t3 e. D# j J
- (setq unityy (/ yy old_majrad))
* k. H; O( F$ N - (setq unitzz (/ zz old_majrad))
4 ^0 N( {* X9 G) I4 G8 m - (setq newvecxx (* unitxx majrad))! n( i* T4 N( c# h
- (setq newvecyy (* unityy majrad))
/ y! E; m2 B6 k1 I - (setq newveczz (* unitzz majrad))' ^1 n/ `* E3 I0 H: e; d
- (setq newmajaxis (list newvecxx newvecyy newveczz))0 D S7 y1 m5 d. M% g; h
- ;; Update Major Axis Vector value7 j3 o# E3 w& z" L7 K
- (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))
* N/ w$ E: [) Q) k5 Z+ l$ T: a - ;; Update Radius Ratio value# R+ W- d4 ~- I, i
- (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))
1 P% w% e, V, q. q# A% z+ D( _ - (entmod elist)
) E" G6 l0 O3 h/ i* g - )& M" N* B3 k, ?* w1 Z3 |/ T
, f: }/ y7 K A- (defun ddellipse ()
& r2 S F$ Y2 P; H# u$ L - (if (not (new_dialog "ddellipse" dcl_id)) (exit))) B. N+ z; o& \7 V t2 l2 m* @7 K. U+ O
- ;; Set initial tile values# W; ], b- R8 E: I
- (set_tile_props)2 \" D8 O- T3 x( f1 b V
- (set_tile_handle)4 [+ d; d4 g% ~% B# b" N
- (set_tile_pt1 1)
: w0 p2 \! F2 |1 P/ v" X - (ell_calc). Z1 S, Z/ W: P9 j2 K
- ;; Define action for tiles0 U" [! t# N g: D4 Q
- (set_action_tiles)/ Q3 R# `- W# `4 D% X, y1 T" O! Q' b
- (setq dialog-state (start_dialog)) K" R, A2 ~" d1 S [% T
- (if (= dialog-state 0)
8 @5 W: r& l( U; k- Z8 x, P! R' l - (reset)
% a1 X5 X6 U1 @2 F2 } - )" l: {8 I2 J( n3 Y' [! e
- (if (= dialog-state 1)
) J+ r/ _5 p( c2 U" X A+ `% \1 e4 l - (modify_ellipse)9 a+ h* t. |# M2 x( l7 F7 ~ y
- )
# y8 f7 c4 w3 i3 T- K: o - (if (= dialog-state 3) ]1 P2 Q( s8 d8 B% O( U2 g
- (progn. i# T9 @8 G$ O& z
- (modify_ellipse)
) U& y" N7 y, f - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: ")), _( d! m+ @7 g1 B& @/ n/ n" C) b. h
- (ver_pt1 1)9 ]. [3 P; C, z, x9 E
- (ddellipse)
8 {5 c4 A6 i/ |6 r, f1 t - )- S/ l2 M4 R0 U$ C
- )* f% f+ @# L/ s* F! s' Y
- )+ q) r7 J* A: B% n
- ;;
; ?+ R+ f6 f5 {% U7 z - ;; Modify REGION( P- B$ [( @( c. t' G7 T; M" m o& T
- ;;
2 `7 g; U0 [' N - (defun modify_region (), t) v% I' e/ D2 o% {9 Z
- (modify_prop_geom)$ F# f" U; s& K, v/ o# C
- (entmod elist)3 d6 ~. |" {( _2 q" J
- )! }+ _" g/ c- X4 Q
* b5 p+ c7 h3 ?. ^- (defun ddregion ()) c( c; Z- A! A- V2 M% W
- (if (not (new_dialog "ddregion" dcl_id)) (exit))
- Z1 t. w! L$ H - ;; Set initial tile values
: B8 W O6 u- h+ c. ? - (set_tile_props)
* R0 W9 v( p9 v - (set_tile_handle)
. T4 K" G( F" ~! U/ x2 D* x8 ~ - ;; Define action for tiles' y2 l0 q9 n; Y3 J4 G6 h x
- (set_action_tiles)2 s" L9 p( c" ^; ~
- (setq dialog-state (start_dialog))
6 y- R8 h9 |; T - (if (= dialog-state 0)7 h |" m/ Q% H" F0 S
- (reset)
1 n# h" b( Y1 F1 [# v4 T. I - )0 p. a! O }% X# x' d0 T
- (if (= dialog-state 1)) G- W4 q1 j! s! [1 {
- (modify_region); o; O7 b$ N5 M; h r
- ) M( l- \7 |* A: E( A2 [: d
- )
7 D4 s& M9 Y7 v3 Y4 l - ;;- C! ]7 n) @0 u* N* F3 ^
- ;; Modify 3DSOLID
0 H' d1 ?- L, `. Z1 z - ;;
f" M* T" x j' U f$ H! ^- [7 E! s - (defun modify_3dsolid ()
1 i9 f9 k: X6 {% |" ] - (modify_prop_geom)
9 v2 C: t# O+ ~4 o5 Q - (entmod elist)
4 X6 f3 Z) z! I$ ?" F" _: q5 u - )! }+ J- v8 m* l9 `1 c m4 O6 C
: }9 ^6 b7 }; a7 ~3 b- (defun dd3dsolid ()1 A1 o. W7 ~1 H/ F% _" w9 g; v1 s
- (if (not (new_dialog "dd3dsolid" dcl_id)) (exit)) l" Z6 e6 K4 |1 K8 h
- ;; Set initial tile values8 s. z. g+ Z8 q; g/ T4 z
- (set_tile_props)1 E' m6 n* z! `5 _" ]
- (set_tile_handle)& R! M3 k% c0 b. N7 F
- ;; Define action for tiles
) I- I( i# f) y0 e Z# F$ k" ~8 U - (set_action_tiles)
+ S8 B1 t- s: ^% t+ ?$ x - (setq dialog-state (start_dialog)): s/ r7 q8 A* b4 V7 R1 ?6 u
- (if (= dialog-state 0)
. _5 i' J9 C, X" d& c: Y - (reset)
8 [, D ~1 M/ D, c - )" N: p! Z p! k
- (if (= dialog-state 1)- J4 Q$ j$ Y8 x6 r" S- v8 ~# Q/ Q
- (modify_3dsolid)7 s! l: M7 `7 A1 v
- ). i8 o, f, ]& y( Y: b
- )
/ }+ ^0 U& j+ Z7 ~5 _( p - ;;$ C" `3 c- Q k. |9 x
- ;; Modify AcDbHatch0 n+ B& h3 v( \7 ?
- ;;
& I! G& }. p5 m - (defun modify_hatch ()3 G- L b; X, _. K% J# s5 A
- (modify_prop_geom)% U& l/ I* R) F! A
- (entmod elist)6 e8 ^, Z9 J9 ~3 E3 s/ X( \7 a+ |
- )
: `+ x0 d. w I# v6 M. F - # Y- y8 I+ c7 P) E+ s
- (defun ddnewhatch ()
$ G8 h' j1 l; ^ - (if (equal hatch-elist nil)* n$ o6 s/ ?! t# v
- (setq hatch-elist old-elist)
' E* J0 Q9 K+ E/ \( O+ Q$ Y - )+ `# C: i6 E4 v% R( K
- 5 J* o( I# i* w' x/ C- F
- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit))
4 a' A2 C) @; U) K5 P
1 L' Z: `+ ~7 a- ;; disable the thickness tile
+ B+ F8 j1 }. z( a$ X; p$ | - (mode_tile "eb_thickness" 1)
) M7 i+ @. d$ A, F - (mode_tile "e_thickness" 1)
$ L9 b2 F" E5 g- l* J. @ - : ~9 D3 M9 ^, `2 W" N
- (setq help_entry "modify_associative_hatch_dialog")7 D% ]5 F% o7 X" L- e0 B
- (set_tile_props)
- [5 g$ Z' Y7 m - (set_tile_handle)2 D) k/ D6 d ~
- 5 Z! w ]7 D$ b1 S9 `
- ;; Define action for tiles
( K6 C e# a' X7 U - (set_action_tiles)' E. Z6 }/ m/ N+ a2 ~
- (action_tile "b_hatch" "(done_dialog 2)")
* h- `; w) K O0 N/ K - (setq dialog-state (start_dialog))4 }+ } O) i8 U0 U, e
- (cond9 b3 i0 {6 K+ U. ]( l) D8 f
- ( (eq dialog-state 0)
( |0 Z" z2 B7 N2 q- Q" P - (setq old-elist hatch-elist)7 S' y( y/ q1 j% G% M
- (setq hatch-elist nil)
# H7 g/ r9 W2 d1 V( E - (if (= (checkforlockedlayer ename) nil)/ P$ _" `) z8 i( h: b
- (reset)8 _; c4 q& R$ j+ }
- (progn ;;; special handling for locked layer reset
/ X1 t i& l8 N" o/ V( e - ;; unlock the layer
2 W* Q) m( x* f - (setq layername (cdr (assoc 8 (cdr (entget ename)))))" v! T: V0 O# v& Y, G0 K
- (command "_.-LAYER" "_Unlock" layername "")
0 x: k6 A6 d; i5 l - ;; reset modifiction9 c0 m6 d& d/ _9 M6 h5 k- A6 |
- (reset)
% U, G* N2 N k8 G( ` - ;; lock the layer again
E! F8 J2 [- T3 ?$ W$ ] Z - (command "_.-LAYER" "_Lock" layername "")
( m: H4 Z6 u p6 [8 U1 q( H - )& w8 x [3 R8 J8 y. L
- )% D4 X8 F9 @; S, P/ n# t' y
- nil ;;; makes (ddnewhatch) return nil for Cancel$ V( t1 Y) G& X/ ^+ ^0 x# [2 N2 q
- )6 j5 X% f1 Y1 O* Q9 `% X5 R1 B
- ( (eq dialog-state 1) t" q) J. I9 u( t/ `, V) G
- (setq hatch-elist nil)
* ~' a0 y% E2 `1 ^ O/ r- A - (modify_hatch)0 F" [* N$ B$ S% F4 X3 o1 m
- T ;;; makes (ddnewhatch) return T for Ok+ L0 [% N; {2 \% R2 G
- )
; ^1 V7 X2 q4 a* j - ( (eq dialog-state 2)
/ H# k3 q6 U5 w! Y; [, y7 b
0 |8 i2 B% Q2 G9 Y5 {6 E- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))& G! [' S+ P' n8 v
- 4
+ b- {9 s; Z" t. T) z - )
( z. C$ [1 `% z( V - ;;; new selected layer is on a locked layer+ o5 e, Y3 J" m! p1 r) O' G9 m, {
- ;;; we can simply modify the hatch properties
9 y9 W' S) d/ ]& G" y - (modify_hatch)
3 q$ `: Q7 f* z - (progn* Y5 |* ?* R8 Z9 s* S
- (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))
) X( V5 J# O) }, D. |: G - 4
3 ~9 h+ p! o$ Q6 a/ `0 v9 X: L4 o - )
" M$ A# O' L& ?& c; k! k$ x - ;;; We changed the layer previously and now the hatch lies on a locked layer.
$ P4 c" R* G: O' T# e1 x& P - ;;; We have to unlock the layer forethat we can update the hatch properties.
3 q# [6 T6 i. h0 h - ;;; If we don't do that (entmod) fails to update to the new layer.
/ u" z! f3 H' z! H7 X - (progn( b1 V- Z, w* \, B# w. s
- (setq layername (cdr (assoc 8 (cdr elist))))% q4 @# A2 P6 X' {
- (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer, o8 r3 `8 Y4 Z) D( l7 Z6 ~
- (modify_hatch) ;;; update the properties* O$ |" G% {8 v/ ?; L- n/ Y$ a2 f
- (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again I- q. q: U3 U: d" {5 m& L5 H; A) H
- )
9 w9 g. K; N8 T+ a2 I6 J. E1 f( y/ m - ;;; All other cases we simply update the properties
% v5 |5 e7 e" W& y* {9 W - (modify_hatch)$ z3 Y% p4 M: c& } T b
- )
7 Z0 d6 }) @3 h2 J# n - )# ^7 [8 ?: H; M: Z
- ) / |3 I! n# g0 j! h# I' P7 K
- (if (= (checkforlockedlayer ename) nil). R0 `% G* d+ c% r. p1 M9 B
- (command "_hatchedit" ename)( {. r* q8 m8 R! d" ~2 s. ?5 w6 r
- (alert ;|MSG111|;"The hatch object is on a locked layer.")
) U: Z' {1 O) r, a - )
0 _* ^. a7 u# c0 U, o: A2 t - (ddmodify ename)1 \9 ^, T6 k: I, }8 w! o7 a% Q
- )1 E% x2 H( q4 B& j
- )* z8 F3 t$ ?0 E" q
- ): D* ^! s) T i# W& J3 J: H' V
- ;;
. v" y4 T) D9 h7 o6 F0 n$ s) E u - ;; Modify BODY8 X [8 n% g4 K/ {8 u& @3 I
- ;;9 d$ b5 P; |2 w, n; R; q4 `
- (defun modify_body ()
$ }1 y1 p/ q8 f0 v. N2 F3 [ - (modify_prop_geom)
+ Q' T" M( k" H) H. a7 D. f - (entmod elist)/ m- `" s4 b! ~" c
- )) W9 G- a- [9 i$ Y( m4 \
- 0 v5 _7 b% P* d' Q
- (defun ddbody ()4 g {2 c0 `& U' r
- (if (not (new_dialog "ddbody" dcl_id)) (exit))
, l9 v9 F5 z, W- M3 \ i0 h. `: l3 B* g5 e - ;; Set initial tile values+ N9 E$ a1 D+ i! m9 @/ p& ~
- (set_tile_props)
9 T) r% b7 C3 [0 A9 R - (set_tile_handle)# j b" y) M+ C) |2 a" d7 ?
- ;; Define action for tiles' Q% t" @ y# U: m: e/ d; x# N
- (set_action_tiles)
5 z7 A8 R r# P7 M; M2 Y7 t2 w - (setq dialog-state (start_dialog))
, C. M! S" q7 t& `6 E0 K$ u - (if (= dialog-state 0)
; B, q$ H6 L$ M& y f O8 e. Z: b - (reset); j: \5 j3 f. b% I6 M$ D
- )
+ Z8 T, r/ N# n& s! {+ I+ C - (if (= dialog-state 1)# F4 J7 p$ N( E+ G# L0 U9 a& E: o
- (modify_body)3 O) X# T* b; U, C# w
- )
+ e6 g% W3 g+ B" y4 @! w9 L4 ^% z - )
/ p3 `- l& U, o+ B# w6 Y - ;;
# o2 [5 j5 Q' n1 |( w - ;; Modify CIRCLE& t' ], U4 a! u) u4 v9 ^
- ;;2 j" p/ ^4 ]' g- u0 q
- (defun modify_circle ()
5 l5 e: w& N$ `" q' M - (modify_properties)
: M7 g" p2 F/ M8 T, ?9 s0 n - (setq pt1 (list x1 y1 z1))
3 y7 {. S) A$ ~# n- r - (tempmod pt1 10 1)
6 G( G' r% l, b: i/ ]+ ] - (tempmod radius 40 nil)7 B: v1 {- Y3 [3 s: }1 z/ w7 u, C9 k
- (entmod elist)/ G! k4 _& J+ M. V, `$ e
- )* Y/ L! ~0 T# x4 T& }! R! ?" S) ~0 S
7 h# x3 h: h7 ~' x- (defun ddcircle ()% ^) I* i. n2 C
- (if (not (new_dialog "ddcircle" dcl_id)) (exit))
, p% I: N+ C$ Z4 p8 e5 Y7 ] - ;; Set initial tile values% M3 _! l) \! g9 V# U4 A
- (set_tile_props)* F/ G9 B; f" \2 N3 K
- (set_tile_handle)' h! C4 ~& X( T% X# ?0 ` B
- (set_tile_pt1 1)% d& e% Y" f3 x% k
- (set_tile_rad)
/ {. p% c6 u. e. |% i3 h7 J - (cir_calc)8 F, x% o" ~- x3 B1 M; g& y
- ;; Define action for tiles
6 h0 M, m* z0 h - (set_action_tiles)- s' I9 M9 z' ^2 I8 e2 q1 [
- (set_tile_pt1 1)6 M$ g& B6 _/ ~. c! k
- (setq dialog-state (start_dialog))$ J# P4 Y$ g6 S% R6 u; b" T- L
- (if (= dialog-state 0)/ L5 n! A# Q6 `; l
- (reset)
4 |( r( ]+ f J - )
8 ]4 E! `# g4 ]. i) M0 ~1 E1 i0 N - (if (= dialog-state 1)
( u& ?: M3 v& O) { - (modify_circle)+ j# f) o, P; M7 t0 a# ]! B
- )
8 p+ q/ D. A8 r - (if (= dialog-state 3)
, Y' T' b$ I( u" ^% h- s8 L - (progn3 T4 o o% V; E$ p- v* x" \
- (modify_circle)
" `' f6 x- |) W% S/ A - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))- O+ I o' K; Z% v
- (ver_pt1 1)! H* k4 o# C& c( o
- (ddcircle)$ ?7 G/ \8 P! Q8 p! H. x
- )
$ C1 z2 J2 R3 Q' m; X, t - )
4 I. z( k) j9 B- i$ P) q - )
/ M0 p. z/ ]# o. e0 S+ M - ;;
3 ^ A4 i" ~2 |; ]5 S3 |, k5 Q - ;; Modify ARC
0 a% S' F6 }9 o8 w {* j* M - ;;; T% q# n& Q# L- K: {- A
- (defun modify_arc ()
; d, X; L9 U( f+ u3 [ - (modify_properties)
+ j1 V1 x7 A" k8 O" A7 h6 V - (setq pt1 (list x1 y1 z1))5 O9 b7 C8 R9 k# Y4 V3 @% I& u
- (tempmod pt1 10 1)' G" V8 z% K$ |4 o( `) M" d7 L
- (tempmod radius 40 nil)
2 v; P* r0 d; p0 S0 s+ l - (tempmod st_ang 50 nil)
# f [- I+ H+ t - (tempmod end_ang 51 nil)
& O4 Q8 G8 O( V$ @. N& W+ S. P) d - (entmod elist)
9 l7 ~8 d5 H) B' Y' O - )
9 [& s f9 O% ?1 y* f" O5 {8 U - (defun ddarc (): v, W% X/ J0 I
- (if (not (new_dialog "ddarc" dcl_id)) (exit))
, m2 G3 N% H$ ^6 ]9 E - ;; Set initial tile values
4 E0 t5 X- T0 t0 [# B - (set_tile_props)2 P- p4 q6 c$ j) [- S% ~% X
- (set_tile_handle): G; Z0 x* b! w$ x& M# Z6 T9 ^0 q
- (set_tile_pt1 1)
0 \4 D- t3 E% [' J - (set_tile_rad)* T' q$ o8 O7 _' r" g0 S$ F* [9 W6 [
- (set_tile_stang)9 O. o' Q0 R; H B5 _4 p
- (set_tile_endang)/ \1 C% |9 ~2 S# \- R- F
- (arc_calc)
; p5 Q' \$ X9 S4 o; a - ;; Define action for tiles( S' B y6 j' b% e/ F/ F3 v/ P
- (set_action_tiles)
, |: ~4 R/ r' K$ F( u - (setq dialog-state (start_dialog))- j/ |9 L* v5 I4 l
- (if (= dialog-state 0)
: p5 {: ]7 T; O! w- R! k - (reset)- @0 C- w G- T& s
- )
7 _% U$ L! E% G! Y8 I1 E - (if (= dialog-state 1); x* \2 e+ t( \9 Z I. ^' \6 ?
- (modify_arc)
6 D+ B5 N2 j; x) G+ ^- X - )4 X) X* ^3 Y+ X5 |" M! _) |
- (if (= dialog-state 3)
" Q% R- k0 Q( y" K" D9 d0 C: s# w - (progn; p9 z5 }) @2 h1 V2 `! @
- (modify_arc)$ K& w! T6 Z1 Q" g
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
8 j" k" {- z3 p# _+ `5 R( X - (ver_pt1 1) ~+ d1 t8 y' }* y; t, n9 u
- (ddarc)0 @2 g- S2 Y) n4 O& j
- )3 h. J1 z# G+ C. z+ h
- )
1 J+ Y- V* b9 Y! N$ M% m/ C - )
3 r7 @9 _& _) m& A% F) Y4 s% h# l0 Q - ;; x2 ^0 A- P4 L( \& T4 R+ ~0 }4 Z
- ;; Modify SOLID or TRACE% o2 e* @! @( ?$ h3 U! T+ y
- ;; Note the Z value of the object is determined by the Z value of the fourth
9 H+ h2 \, _1 [! V( u - ;; point - code 13. Changing the point values of a solid or trace from a UCS
& \3 _; `/ j' N0 t - ;; that is nonplanar to the UCS the object was created may confuse the user.
% A# l( Q1 k! {/ v - (defun modify_solid ()4 _$ }3 R0 W" T- u: r/ X
- (modify_properties), T1 g: J$ W2 G. s1 O0 `" L
- (setq pt1 (list x1 y1 z4))
' p) g- o0 H; _% W! c" X$ o - (setq pt2 (list x2 y2 z4))
. i1 T2 B8 o3 ~7 y# |2 ~ - (setq pt3 (list x3 y3 z4))
8 \. T% |* k! K+ I8 J u6 R - (setq pt4 (list x4 y4 z4))
" X; W! G4 a* Z' V - (tempmod pt1 10 1); Q5 I1 [1 O+ ?" k6 a" v
- (tempmod pt2 11 1)
# e6 x9 H# K" X9 C( Q( A - (tempmod pt3 12 1)
7 v3 P% ]; R* m6 b& v8 J - (tempmod pt4 13 1)
) d# i& a) x& J3 X1 H - (entmod elist)
4 a1 J$ l6 r I D( ` - )
1 X& y" n4 i9 h
8 T% a! K& V! N- (defun ddsolid ()7 s' H3 E m. i% u( a. a* r' A
- (if (= etype "SOLID")0 N' C( i& u+ b% |' p% M* Y
- (if (not (new_dialog "ddsolid" dcl_id)) (exit)), N |8 e3 t6 E; P. E' [8 z$ d( ?/ T9 ]
- (if (not (new_dialog "ddtrace" dcl_id)) (exit))
, h2 O4 R, g4 @6 T. y) V7 y) A3 n% \ - )$ h% B+ n+ H/ G; |' q' K$ V5 R* f
- ;; Set initial tile values* T, A- e- C6 T# j" O
- (set_tile_props)
4 z# K- ~ z1 g: _ - (set_tile_handle)7 ?% Z( Y' _2 |2 }) i& B1 z
- (set_tile_pt1 1)
# Y P. T# e* o& M0 V& N! B - (set_tile_pt2 1)
& ?/ _5 g6 @. H! Q5 m4 v! t1 B - (set_tile_pt3 1) @, A: m( ?, D
- (set_tile_pt4 1)
& h$ M4 z8 I d* v, z - ;; Define action for tiles
3 N' [9 G- ?8 ?2 J - (set_action_tiles)) z9 k0 ]0 t; }; L5 U+ {
- (setq dialog-state (start_dialog))! ?5 L! `/ c+ |0 W& C7 X
- (if (= dialog-state 0)% r' Y5 [; ] Z) c1 c
- (reset)* P J2 a) _( w+ w- X" [
- )
# J2 j8 Z' Q! p5 f - (if (= dialog-state 1)
) J4 A" L4 B) f% } b - (modify_solid)
, Y1 D! N/ m1 t2 U* d' U1 D - )% N& B; N, i& |$ c) h
- (if (= dialog-state 3)
8 C. E0 B! w, d8 K* r - (progn
, G$ e& ?: O* o O6 b$ U( V - (modify_solid)
% {, g: p9 P* i! I5 ~ - (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))" C2 Y$ [* `! u \( S5 P7 D
- (ver_pt1 1)
# W6 I9 f8 B3 |/ m' \% s& O d - (ddsolid)
* `3 q+ _0 a+ o4 r, P1 Q - )
* {* ?) F% j% y/ ~ - )
" g7 n5 o7 n' d, v - (if (= dialog-state 4)
# }8 X2 k4 n2 Y, t+ V - (progn
7 l, u' R* K3 P3 f* Q& d: C7 W6 Q* j - (modify_solid)4 N) w) L. C2 U4 ^& ^
- (entmod elist)$ I, {4 G( w; \( S5 [
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: ")); I7 s+ `' X L
- (ver_pt2 1)5 T+ i9 O) E/ Y) ]
- (ddsolid)0 Q8 l* {$ ~- q( t
- ). P! M/ z- I) W; _3 q" ^
- )
3 w, e: J, L' ] - (if (= dialog-state 5)
- ~9 H: h/ r) J2 _* [. e7 o - (progn
5 t. ~1 k/ Z# C5 x) Y - (modify_solid)
7 L1 M9 K6 h1 ?- B* _/ g' L - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))* A* x/ y2 ~5 }4 m
- (ver_pt3 1)
, u0 k* W3 I3 }4 p( O% n& Y - (ddsolid)9 T! K; i7 ^2 m( j" ~5 g# V# E! P
- )6 ?4 C( @* f9 U- Q! n/ s
- )
# O/ o% N6 F5 V3 ^1 f, c( b! o - (if (= dialog-state 6)
& F% x7 v6 f( N5 o - (progn
3 o9 Z% B W; q - (modify_solid)
3 H2 {1 ~+ s0 O% u; c9 ^6 }4 F, G - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
. W0 Y v) k9 ^/ t: o ] - (ver_pt4 1)" A& }0 D* @8 y2 D' n
- (ddsolid)
- K- u' E* d1 k, z3 b - )7 R- G3 b( J/ o# a' p& z4 b5 h" J
- )1 F, y4 T& \4 Y4 C( ?& w* ^$ C
- )
s6 s' K9 U8 i4 w l8 p - ;;
* b; P; n/ ]" q& M8 D" q - ;; Modify 3DFACE
9 o/ p3 b, L! W. t - ;;9 i: [2 V* |3 j
- ;; Check visibility of edges
4 k6 h# J9 }7 l# C6 u - ;;
q4 M ]& B L& P- H: m2 | - (defun edgetest (/ bit1 bit2 bit3 bit4)6 J5 K* r7 `8 K! g ~: R& y
- (if (= edge1 "1") (setq bit1 0) (setq bit1 1))
3 H1 M" }; o. Y8 a - (if (= edge2 "1") (setq bit2 0) (setq bit2 2))5 j6 @# h7 `* C: q1 y, d
- (if (= edge3 "1") (setq bit3 0) (setq bit3 4))
% N9 b! k8 \# L2 r7 b3 D - (if (= edge4 "1") (setq bit4 0) (setq bit4 8))* u5 F* G R2 q8 o
- (+ bit1 bit2 bit3 bit4)0 B( V: u6 F- Z4 c/ \* N! u* d
- )2 n9 z5 v% K: p( u4 u
) h. W4 v6 o: B! y/ |" k! J6 B6 R7 G- (defun modify_3dface ()
- D+ d% i3 _$ b- X" l9 A }: z& b, v - (modify_properties)
( x' A) w% {; C! g" g - (setq pt1 (list x1 y1 z1))
) m' D+ A/ ~- k; ^7 i0 x3 W - (setq pt2 (list x2 y2 z2))
, J! G! l$ V& s: f( I2 ]/ `( V - (setq pt3 (list x3 y3 z3))) y, O8 |* O& e1 s, S a
- (setq pt4 (list x4 y4 z4))2 s" J) L, k- s) ?- V8 l
- (tempmod pt1 10 0), E' {6 T4 E' j6 N* G s0 x# j6 _3 i5 c
- (tempmod pt2 11 0)3 l& j( n a& ~9 G
- (tempmod pt3 12 0)3 k! n) {* c0 y
- (tempmod pt4 13 0)- l+ Z a: X% @% }
- (tempmod (edgetest) 70 nil)
9 W1 ?4 ~4 x4 y( ^* j$ X* o' X - (entmod elist)$ B9 D8 [# H* Q( R8 p
- )
* g" G# `/ H7 d& O; _ - 4 i6 n, L, \3 |. |
- (defun dd3dface ()$ L' ]- e# V6 m) [3 x P }' K
- (if (not (new_dialog "dd3dface" dcl_id)) (exit)) Z* Y; K( X" b. g
- (set_tile_props)
* h1 ^+ b7 r% c% i8 k7 }8 E - (set_tile_handle)& p0 ~; ^ I, W, v5 S4 V; y6 S
- (set_tile_pt1 0)3 U0 L) F# f; Z' w& ]
- (set_tile_pt2 0)
9 ?- c$ J3 R! F; S! F - (set_tile_pt3 0)
" B& |" L% o/ J( [ - (set_tile_pt4 0)
0 M [! ]* T( \- x0 V: ^ - (set_tile_edges) _9 }6 e6 N% _2 T
- ;; Define action for tiles" u+ j; {) R% r% J. q
- (set_action_tiles)* m/ z% k; _: j, z5 m# q
- (setq dialog-state (start_dialog))7 B" P h: X- D, o3 v; w
- (if (= dialog-state 0)5 B% x2 w" t# K& @/ [9 L
- (reset)
; |: C$ I( V) y# P3 i, S' a" K* h - )- ^. \- s0 G7 u0 {$ s
- (if (= dialog-state 1)
$ W; P, C& z. x; f" m& P - (modify_3dface)
# _% y* V' H9 k% v+ |+ S - )
k) r# Y( n- D( X- a" U - (if (= dialog-state 3)% A& z9 t3 [/ S+ i9 H% T
- (progn
% g9 C1 n1 D; e' B( t - (modify_3dface)
% i* d2 w9 ?) U5 q8 L - (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))
% ?9 h( b$ z C& K S0 P4 G - (ver_pt1 0)6 C! K9 H. J- i B, n' b
- (dd3dface)
8 H3 U% b- c5 i- f) g* Z9 Y - )
/ i6 ]& Z ?2 @/ l. q; {; H - )
5 _4 o- _9 H* Q; V8 U. L - (if (= dialog-state 4)
' `2 q( a1 G/ B" T - (progn- L- E2 @8 e% l& _8 F
- (modify_3dface)1 Y# }7 \9 _; W1 _/ Y/ {
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
7 v2 I$ U4 c( h! p - (ver_pt2 0)/ T" P7 u" K7 w6 ]; r& C
- (dd3dface)3 y- R5 Y: n2 Q" z. r% t
- )+ j0 v2 v) C. z" j& j
- )
' f7 @4 J/ p f4 @. L - (if (= dialog-state 5)4 o9 N* e& i1 `3 G
- (progn
% _2 c( L: p+ a - (modify_3dface)8 W: N; x8 q/ U( f. z; h6 H; e
- (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))
. n1 L6 |; s! _2 v - (ver_pt3 0)! L; r5 I# ~4 s5 r) A B; n
- (dd3dface)
4 }; a3 `1 F# P0 j& {# Z% a+ V$ ^ - )
0 c3 x7 f& W* K - )) t4 {) \, k1 T
- (if (= dialog-state 6)
4 b9 @! H) t& @ - (progn/ o$ E% X: T l* P- r# Q$ x- ~7 ?
- (modify_3dface)
' `! l& E: a6 f: n) m - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: ")) m. j1 L6 i7 P" ?* O
- (ver_pt4 0)& @9 P7 D5 Q" E
- (dd3dface)
/ p7 k& X4 K$ |! |. I9 J/ y6 w2 U' N - )5 b- h- o4 K7 O4 f! H; ?
- )
+ F2 q1 q b) n4 Y5 e# A - )( @5 V) _- f* Z5 h
7 E9 @; B3 X2 [- Z" \" F5 }( Q- G- ;;( a/ |3 L+ f, G: _
- ;; Image functions% [$ f3 J, c% z' o
- ;;! Z/ x! I5 ]* @8 N
- (defun image_scale (/ upixel en n userscale temp)0 u3 D$ d8 m4 e4 h e/ F
- ;; Calculate the size of an image pixel in AutoCAD units
, [/ c% [8 L, e* V+ q7 { - (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))
4 ?) v- ~9 X: ^8 c2 [- q, @ - 7 S3 @. c; @* X9 ]; B
- ;; Retrieve the user scale) Z0 Q" p' ^) W* }. K
- (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))
' A5 X& x) d/ ?6 g e/ [4 V
9 M0 t. S1 u- q+ A& V- ;; Next, extract the image units and pixel resolution
9 |/ A1 L3 b2 X6 W1 g% z0 n& n$ B. q - (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))5 n! k; T( U, a0 g( E9 G
- (setq image:scale (* (cadr (assoc 13 elist)) upixel))1 ]0 |6 N, j/ _, H3 U
- (progn
6 |1 [7 b$ o- c# D4 p4 i - ;; Convert the user scale to the proper word
, X3 [1 ~- a% y - (setq n (cdr (assoc 72 en)))
# C( i& r8 p7 p0 l9 |/ ^2 M - (setq temp (getvar "LUNITS"))5 S+ s5 e/ c& Q; n# ?
- (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5)), z1 d- b* V6 {) S7 {2 E
- (if (= n 1) (setq userscale "Millimeter"))4 |0 R$ ?% Y; R$ b) q9 W
- (if (= n 2) (setq userscale "Centimeter"))
5 U1 x! N' b4 N F2 s, k - (if (= n 3) (setq userscale "Meter"))
6 ^% p- H0 N6 Z7 \/ a2 N. s - (if (= n 4) (setq userscale "Kilometer"))# X! Y5 B7 d" C0 a q
- (if (= n 5) (setq userscale "Inch"))9 M; G S4 s: W. ] b, p" X& @
- (if (= n 6) (setq userscale "Foot"))+ g3 r) y: {3 u0 z4 h
- (if (= n 7) (setq userscale "Yard"))( f, y0 f2 \; ] ^. {+ _
- (if (= n 8) (setq userscale "Mile"))) k$ D% J4 m% \ N" B9 O% n; X
- (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))
; J6 U- G7 I8 t& w' i2 Z) t1 [ - )
* \% q$ D' `& s - )
) i: s* q Z S9 U6 L - )
- t4 y" L& k' H' k) J- _
; s2 q: W o* T( b- ;;
8 i7 V$ G4 O" i! e4 X2 e+ t - ;; Scale factors for block insertions
1 s0 W' h1 ^% q( m - ;;& ~0 q$ U; `9 c. ]8 V4 B
- (defun image_set_tile_scale (/ temp)
3 o+ e6 J, J8 h1 N$ X) \2 Q8 y - (setq temp (getvar "LUNITS")) {- q1 ^: d8 z# O- _4 Y6 U
- (setvar "LUNITS" 2). U: @+ ?! D( g
- (set_tile "xscale" (ai_rtos (* image:scale image:mult))) O# M2 m6 H, z6 ?
- (set_tile "wid" (ai_rtos (* image:width image:mult)))1 i) X( G i; N& ?
- (set_tile "hght" (ai_rtos (* image:height image:mult)))9 O Q, u% @. |5 y0 f% J
- (setvar "LUNITS" temp)7 t' ]2 z5 o9 o5 L+ {' [
- )% X4 R1 h0 c$ \7 r* O" o
- * }; N8 W1 |5 ~
- ;;
3 M) o9 q) N, C - ;; Set the scale, width and height values appropriately.
+ U9 f" F( J5 _- ?2 |6 s - ;;6 ?9 Z* ?8 P# S1 O3 N# Z
- (defun image_update (field value / orig_value new_value mult)0 |: t1 B3 \- `8 h: [" y
- (if (= field "xscale")
8 c" ?0 t! j* S) V# ^' n - (setq orig_value image:scale)
# X( X! J# v$ ]1 F% A, [ - )
1 U0 a8 [" L5 o) w2 ]! Q - (if (= field "wid"). [% n% a5 \ H7 W
- (setq orig_value image:width)3 Q4 G# u6 u% j; ?7 P
- )4 Z- H5 T) u! N6 B: k3 T
- (if (= field "hght")
# I( \# O* F2 h6 U% l, Z - (setq orig_value image:height)/ r6 `; E- K7 g( b3 Z7 E
- )
" S. R9 | N4 m - (setq new_value (verify_d field value (* image:mult orig_value))); }$ e& }7 I5 }+ j6 U1 a
- (if (/= new_value old_value)/ f) m' y9 @1 V* o5 Q
- ;; Make sure the user has entered a sufficiently large value, W2 V E+ A* N7 B$ y1 m
- (if new_value
0 \& L7 d% u0 I$ M6 z5 Y - (progn
# q; V) u1 K4 G3 R2 H3 P7 t - (if (< new_value 1e-8)
' N' {* B% h+ c; s R6 y - (setq mult image:mult)1 P; N' ^2 G- @
- (setq mult (/ new_value orig_value)); c9 b E( C( r: u7 _
- )5 g& k/ U/ u" i9 s
- (setq image:mult mult)7 a" G4 V9 {+ {9 [4 Y1 F |
- (image_set_tile_scale)7 i( @! `/ m( u) H
- )% i- n5 x% R+ [+ }9 d- G" ~& u- a
- )
5 T8 z; t" U c% J - )* N$ @1 X4 {# g* P9 L
- )4 E3 O3 e& y$ s: Z6 V/ ]: K
- 3 g. c" }0 o& w, o
- (defun image_disp_opt (bit)
" {) ]# H) s: d# P - (setq image:options (Boole 6 image:options bit))3 D6 l5 H: e2 L
- )
0 R: z2 ~0 v) \
* U+ w, g+ u# J* q4 T- (defun image_modify ()% `+ d: U4 ]5 D: \# ?
- (modify_properties)
* b- S2 G" |9 M - (setq pt1 (list x1 y1 z1))& F9 }" H" K! ?' E7 ~/ F0 f
- (tempmod pt1 10 0)
; m+ ~$ S8 C& U8 s+ E" ~ - (entmod elist); x5 e& s# ^% }* c
- )
5 V5 @" C, J( F% Q7 D8 Z/ I
. ~6 O# h/ R4 e- Z9 `& q& i9 P- (defun image_clean_variables ()# Y8 T, `, R7 N/ e" W; F9 E
- ;; Clean up global variables used here: ^* O! [( S) N* ?# U# Q6 Z
- (setq image:scale nil)
" Y5 \ {5 l# B- T/ {" W. F - (setq image:angle nil)
9 F; [* B. w2 A: e - (setq image:width nil), t% z/ C. o- ]4 Z3 a, Z r
- (setq image:height nil)
9 p: u9 ^$ f# ^' Z - (setq image:options nil)7 ]+ t. y' A4 _4 p0 ?. O% \( n' Y
- (setq image:oname nil)
" j- R7 \" A0 D# f+ S; k - (setq image:olist nil)
0 n! j3 W. Z0 u* e: K# }0 G - (setq image:mult nil) a. B7 J+ P6 v, k
- (setq st_ang nil)4 |( M. T k+ J% |' `+ J" \: X
- )* x' t$ e$ b1 d, ?3 U9 e
- : p& N0 V; _+ M1 t
- (defun image_scale_vector (v1 value)
+ j8 z' J( a0 a - (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))
" Q+ `9 b/ C* J1 D+ p) V, [& }5 i. n - )
9 A# V3 G6 D! y3 `$ f m, j* I - O% m0 q5 M: _, g
- (defun image_cross_product (v1 v2 / vx vy vz)" C4 o( N" l& V
- (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))) R/ p, t) W9 A/ X
- (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))3 @7 C3 a5 e+ S3 ?% l$ i
- (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))! U4 i* L% N# {+ ], k: g
- (list vx vy vz)5 E3 W X4 t/ ^; B' k& [
- )8 ^: s+ q u8 w1 T; F' n* p
- . m' [7 u! M8 P7 M. u+ r& I
- (defun image_dot_product (v1 v2)) P$ @7 `0 q% P) x
- (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2)))7 G+ G# W: N) q2 P
- )
6 e( S" j2 k% ^) Q+ I8 ], j* e - ' ?& X7 g" s1 Q i
- (defun image_add_vector (v1 v2)
9 Q* l2 q1 i1 w- p% n4 @5 `" l+ s - (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))+ O; V2 M6 r3 B4 o* ^1 a
- )
' F, ]3 _3 Y+ N: x8 s5 l# Z+ Z
# u& c) Z8 S+ ]; K" N/ L" z- (defun image_subtract_vector (v1 v2)- i5 b3 U, _! S8 N" B; B6 v
- (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2)))
0 t, J1 |8 d6 K C - ), d* V- h6 J& J' ^9 w4 Z4 `
- - Q0 n4 K9 t8 d) g4 ~. J
- (defun image_normalize_vector (v1)/ W4 c5 q) U/ Z/ g( C/ d! |
- (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))0 g+ \$ ~) n2 d/ m
- )& U, G* F! s& r: K3 c! {3 u* E
+ } x8 b8 R( w9 w; Q* P- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)) a S3 q( F2 E) M9 C- Q) G$ {
- ;; Normalize the axis
9 x! n) l" p) g5 w8 a - (setq axis (image_normalize_vector axis))# A8 Y9 Q6 T z$ e( A" Z
- (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))9 V3 Y) _$ g3 v4 r* @% ~
- (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))
, J" h/ |9 I' W N6 J* H6 i% l6 k - (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane))- e0 b& A$ J% M8 Y9 j
- (setq in_rot_plane* h: O: R: v& j, g3 F
- (image_add_vector
0 A7 {, {' f5 c* | - (image_scale_vector axis_x_in_rot_plane (cos angle))
. B9 j, O# M; ]5 M2 ^ - (image_scale_vector axis_y_in_rot_plane (sin angle))) ?# B1 n1 M1 [+ M
- ); J3 l( }- G! q
- )
5 d# U' @4 B; h/ D# E3 Y. L2 M - (image_add_vector along_axis in_rot_plane)1 w; n. j/ V- Q( }- W A z
- ), D; S3 z' S R' G; @1 \
- 0 @9 j" W% P. Z
- ;;9 w& M1 c( J% A8 D5 O/ }
- ;; Calculate current rotation angle if appropriate.
& E/ P) S6 L7 y4 s% c" A% T - ;; If not, grey out the rotation field.4 D g' q- n8 d6 w/ J( z
- ;;& N6 T8 Y3 f0 F
- (defun image_rotation (/ normal rlength zlength sqrt_tolerance)
7 ~5 \) D" J6 o0 j' [0 r - ;; Determine if image normal is codirectional with
3 |) K% Y0 D1 b: F - ;; the current UCS Z-vector.7 z8 D3 [2 j& b4 b( c
- ;;5 l9 X4 \# |/ B: M+ h
- (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))
' _7 ?- p: E- Q2 N - (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))
7 r0 n3 _9 L3 e& W/ d1 j: u - (setq zlength (* (last normal) (last normal)))
' \4 Q+ c" ?7 p. F5 `4 `9 G" \7 F - ;; Note that the value .0001 in the radians is approximately 0.0057 degrees.
, M8 F6 Z( c; k: R, j$ a8 i" [0 r3 a - ;;4 M9 I. j- U2 k
- ;; cos(.0001)^2
# [! d% {$ d% z5 P8 m; V' Z - ;; Tolerance = --------------+ J* l L! X! h4 z
- ;; sin(.0001)^2
8 v( |) P+ S* Q$ }' i7 r - ;;
B$ I. N+ c( @ - (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))
: y# t X8 z' [% x1 p - (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))% m& G" K& D3 f( P! P% r% P
- (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))
; _6 o2 T1 U" @& Z6 y" m7 \$ [ - (progn
0 }' `( m8 B7 s6 D( W - (mode_tile "st_ang" 1)) v9 ]4 I1 y# O, H6 b; G
- (setq image:angle 0)* \9 X5 L5 q( X+ X0 a, U+ q- d
- )
' u3 F/ q* ^9 l - )
J3 |- W& T0 w - ) M. W+ z5 B* a$ g" o h, Q: O
- 1 E e/ I* o" U/ d1 m6 k5 _! P
- ;;8 ]* O7 J6 N6 d$ X2 M4 A- M
- ;; Modify Image! ?' t, @/ K, D/ Z
- ;;1 ^: e/ I0 S9 n3 w
- (defun modify_image (/ u_vector v_vector z_vector)
0 `. Y; E3 C* }1 O6 U4 N: H! A% J - (modify_properties)" I+ \$ N* y- @5 z
- (setq pt1 (list x1 y1 z1))
+ F$ \1 W* D, Z3 ^6 `; o - (tempmod pt1 10 0)
6 B) J. K {" O, h- B - ;; Make display option changes to image4 w/ ]' v z4 u) }7 t: i7 E6 \+ k9 j+ p
- (emod image:options 70)3 D' y, H7 Q! ~" C, `
- ;; Get the u and v vectors
9 W2 z/ ~1 n1 h& o- C - (setq u_vector (cdr (assoc 11 elist)))
' e% B" j5 Y7 o - (setq v_vector (cdr (assoc 12 elist))): E$ p* a3 i& {$ T, T z
- 6 P6 u: _% O* I+ ^4 o) w
- ;; Make scale changes to the vectors- _7 Y- _2 d- v; S" m0 j
- (if (/= image:mult 1); y7 E+ n v7 [1 _. a
- (progn
3 E: J( s) V |5 U$ i9 ]$ _ - (setq u_vector (image_scale_vector u_vector image:mult))! U9 B q3 B7 C- V
- (setq v_vector (image_scale_vector v_vector image:mult))# a: F7 @6 s$ v% J6 t1 Z0 H
- )1 a( w; G# y8 D7 P; h3 O% k
- )
- l% F* K/ V+ y; i( l3 I' w! G - ;; Rotate the vectors
# j% r1 h) e& O v# X4 N5 `1 e9 m - (setq st_ang (- st_ang image:angle))
, w' p9 ^" ?& {, u; A. E - (if (/= st_ang 0): K: x7 B8 I- Q* O- S+ W
- (progn+ I& _8 d4 G# q! O
- (setq z_vector: d) w- u8 ~+ N6 Q- f
- (image_cross_product2 c+ F7 s% R' \" v. u9 K- e! K7 f! w
- (image_normalize_vector u_vector)7 Z7 Q3 J( @ o- M
- (image_normalize_vector v_vector)
1 N% ~4 D5 e9 D2 ?3 g5 d/ M; ^ - )
; l- z3 a* j0 M, M) O - )
y1 g% D9 D3 B - (setq u_vector (image_rotate_vector u_vector st_ang z_vector))
; y5 E! ?7 n: P, `0 h! y( _; B! I - (setq v_vector (image_rotate_vector v_vector st_ang z_vector))/ d2 Z8 s3 @# r4 }
- )
' A' l$ ^- k; G' C; l3 V% F - ) D- _1 q* R5 n4 L/ `3 N
- (emod u_vector 11)# c! ^8 u/ n$ |2 V/ n
- (emod v_vector 12)
; n1 O# D9 Z5 ]3 k0 R9 t - (entmod elist)
: ^2 d$ ~4 p2 o$ f. e - )2 I" M5 G9 d# e
4 a5 v6 w+ o, \+ c( t- ;;
5 z8 M& Z: e+ F/ @ - ;; Run imageadjust on given entity, working around possible0 x3 R1 k" J/ G, }; e
- ;; re-entrancy problems5 A' S; H7 A+ Z( E6 O
- ;;9 ~+ R! Z) k* ?/ U$ j4 X
- (defun image_adjust (ename)
/ _1 k2 T% I1 Y" } ~! x6 Q' d. J - (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded..., Y* M; m1 q3 w6 m
- (imageadjust ename)
7 e! ^2 R) ?8 U1 _ - )7 |+ z5 p8 w' a; q
- % }. T) O- T1 Z' z0 o$ n0 w$ e. ?
- (defun ddimage (). ?3 o. d+ m" K
- (if (not (new_dialog "ddimage" dcl_id)) (exit))
# ]! T" X( D* U, h; f! K& d - : j# T" b& l' v0 Z
- ;; Grey out the thickness field.7 M1 _) N& c, S' }( k0 Z6 k
- (mode_tile "b_thickness" 1)
* y! n3 _7 `( x5 [- E- z' k - (mode_tile "eb_thickness" 1)2 ]: [$ h! J7 ]/ {# k# t
- 1 d$ o' Z7 t3 z( B' r3 z
- ;; Get the associated def object.
: B( Q4 J- @5 w0 O0 X' {4 ]! l - (setq image:oname (cdr (assoc 340 elist)))6 J1 s, Q: [. @" y d
- (setq image:olist (entget image:oname))& e& U! F8 H& g
- , Z& z5 w. j" w7 k
- ;; Set initial tile values
/ o/ z$ d0 A! x" V - (set_tile_props)' E+ W/ V: C- {7 k/ C
- (set_tile_handle)
5 o" b% ~% k7 _! U, B: D - (set_tile_pt1 0)
' k. O, }4 }( b! a, j) p( q: D' U - (setq image:scale (image_scale))2 |. ^7 w% y+ i: U. z- s8 V2 m
- (setq st_ang (image_rotation))
$ `7 Q* d' Q) z% w4 N9 k6 a2 z - (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))% |3 @5 P4 q8 ^5 b
- (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))) B4 ?! @2 t& j4 ~' k: P) V s
- (setq image:options (cdr (assoc 70 elist)))$ K( ^- Z7 ^/ k! l( q
- + ]' B7 i+ {2 ?8 g
- ;; Record the last multiplier for use in image_update function3 P0 T8 S M) R' j# l
- (setq image:mult 1)( f+ [% Z$ `$ |) s8 K; E& D8 P7 l
! q5 K, t( {/ h# A8 ^: g& s" h# O- ;; Retrieve the image name$ m0 i2 O! r* X# q: p* c7 R" b
- (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))* c0 m+ I; V' n- K4 x
- (setq flag 0)
+ g+ ]1 f' s3 |% @* f - (foreach n fn& \1 s" p8 d: I7 @! f+ [
- (if (= flag 1)2 i x* J* X* k
- (progn
9 _: `% l9 ^: [" E! a) G/ Z0 P' g - ;; Display the image name
8 R4 L3 P: m8 ` - (set_tile "image_name" (cdr n))
A& g+ r t3 {: D% X! ] - (setq flag 2)
2 K% f7 y7 z& `3 w - )
7 y9 u6 t* l* `5 w/ P - )1 Y) S$ V/ l+ w) _" P
- (if (= flag 0)
5 s+ W0 ]2 ?2 t- d/ I - (if (equal (cdr n) image:oname) (setq flag 1))
( l/ i" p- _2 z8 x - )' b: H9 F1 H1 w- r% x+ p1 l
- )
6 t0 n8 ]9 K4 z9 | - % g9 l2 L& K# E
- (set_tile "image_path" (cdr (assoc 1 image:olist)))7 E& t4 O6 ^- }5 c* T4 @
- (set_tile "st_ang" (ai_angtos image:angle))
# B0 _% F2 B7 A- H! d; J - (image_set_tile_scale) Y, S7 O7 M; s. f' p! v. r4 j
- 9 W; _$ e6 }: s2 Y& m$ D7 U4 w) d
- ;; Check the appropriate boxes) ~3 Y, X/ U2 {) Z; w! Z
- (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))# C7 n6 W6 @3 `0 C/ T2 j
- (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1"))
" l, V* `* d! l& L" ~ b# S7 R - (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))
5 T) z' ~6 \& z- @4 I) H - (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))' W, s; w) ]7 x; J, J
- $ ~. s0 N6 i/ m
- ;; Define action for tiles
2 y( s, u- z8 ~- {: N - (set_action_tiles)
$ _: I# K# K- |& n7 C! ~) a2 o - (action_tile "xscale" "(image_update \"xscale\" $value)"); {2 }& R- g2 t+ }/ u
- (action_tile "st_ang" "(ver_ang1 $value)")
V; P" O* [. n - (action_tile "wid" "(image_update \"wid\" $value)")9 }6 P; R: {' o
- (action_tile "hght" "(image_update \"hght\" $value)")' r/ \8 s! w( [9 f; O# l( t
- (action_tile "image_show" "(image_disp_opt 1)")
7 ?3 z6 G- H6 ^) p* u - (action_tile "image_non_ortho" "(image_disp_opt 2)")
' \* C, m' `3 d) {/ B - (action_tile "image_clipped" "(image_disp_opt 4)")0 ^. L' t1 K4 g& { f; o e' N
- (action_tile "image_transparency" "(image_disp_opt 8)")
: R% G% E) o: t0 o. \+ g - (action_tile "image_adjust" "(done_dialog 4)")4 _1 L" b! C( c
- ! S! Z7 o3 t$ ^7 y) j. X: E6 F2 a
- (setq dialog-state (start_dialog))% Z4 L! s* y: s0 F1 Y
- (if (= dialog-state 0)
c0 H& ~( b* Q" ?2 y4 y. U - (progn
9 b* l+ B+ w, E$ W - (reset)
$ P- C5 H1 c: _7 E$ A* h3 e - (image_clean_variables)$ |5 J1 B# z% U: |# N. A7 @( W# B
- )1 X9 V/ d9 j! l
- )
0 R% n8 V, V! J3 h& w - (if (= dialog-state 1)) \" j c, J$ O. n. y/ j* B
- (progn
1 m! d, E8 O- y- Z% ] - (modify_image), B' I# o2 N7 {7 a0 U1 r7 l) s7 T
- (image_clean_variables)% o3 N3 p8 A9 e1 t
- )
# H+ Q. L# _2 Z) u' S, r - )# \% F4 H& T% S# k {* ^# X: E
- (if (= dialog-state 3)3 ~7 u2 i) v/ l O1 o" g F
- (progn
/ R8 ^$ p7 g9 M - (modify_image)
- q0 r9 L$ K P) F! Q! j - (image_clean_variables), z8 t4 b, {- L+ Z! l
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))# K. V* e R" M$ r5 P4 d
- (ver_pt1 0)) `: v2 X' L/ h: O
- (ddimage)7 K1 o* b! h$ }9 o8 ?" N- o* W+ [( S; U
- )! Y6 j$ ` E( p5 ~$ m1 a4 \, H
- )
7 n# @; F k; T0 V9 } - (if (= dialog-state 4) }. D9 j" V; a6 V8 Y
- (progn
5 ]8 p! E+ U4 A* x0 u; c - (modify_image)
0 x; G- c# x. Y w# L& r! i - (image_adjust ename)
; _5 |# n% W6 ^# y8 `$ U - (setq elist (entget ename))# G0 S0 z: B/ \8 q
- (ddimage)2 @7 m e: |* _- x- A
- )1 z. ?" O) a0 V% u( s1 c6 v5 Q
- )2 a c/ ^$ u! |9 w1 N
- )
8 C6 l( `' @! R* f# T5 M
2 Q: v! d' b' P7 B5 I& [- ;;) W5 J* I# k1 b, }/ `, k7 |- @
- ;; Modify BLOCK (and its Attributes, if any)
3 K+ o, g. g5 {' D4 \* T - ;;- L+ E2 e3 i( A( Y K- a6 e
- (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr
) k* N3 h5 W3 k1 Z- @$ r | - new_wid old_wid old_rot scaling old_scale0 P5 I" S! I5 ^: M( V- e! _
- xdelta ydelta zdelta xbase ybase zbase ipos)
% t0 q5 g' O& a5 C1 k9 G - (modify_properties)
5 {/ n" |0 a: y) ?
: Y x3 l! h3 E5 i$ J- V- ;; First, translate and scale the Attributes, if there are any.
! }% g# e/ S5 R/ x3 g - (setq old_rot (cdr (assoc 50 elist))6 {3 g7 e( a; K/ E5 D3 |% i6 t
- old_scale (list (cdr (assoc 41 elist))
' _6 ?8 `' l( J1 r$ v6 _8 a7 e - (cdr (assoc 42 elist))9 ]) j2 v0 r/ l% b3 C! ?) M
- (cdr (assoc 43 elist))
; V+ V3 y8 `" [, H0 Z - )
9 v4 n8 d! z- G) I3 w8 {) Q+ T - scaling (or (/= xscale (car old_scale))
/ c9 B. B3 k/ d - (/= yscale (cadr old_scale))+ L2 p1 k& b- l6 U
- (/= zscale (caddr old_scale))" r, w, O: Q! ^- v* X
- ): M+ d' u3 N4 p' n" E# X' S
- attr nil ; No Attributes modified yet
! E. r1 Z: L# q# i$ v5 @ - )
3 D# U+ G" v: d3 ]) w, O - (if scaling
1 N/ m4 n! s# E7 r D$ L - (progn& S* q1 {! t* @
- (setq xdelta (/ xscale (car old_scale))
0 H$ A: ]4 r. a, Y0 k - ydelta (/ yscale (cadr old_scale))
2 x& Y% _% l% ^; f, z - zdelta (/ zscale (caddr old_scale))4 J$ t6 {7 t+ b1 o( ]; x2 V5 h
- ipos (cdr (assoc 10 elist))
) F2 V; V. G; H7 i - xbase (car ipos)6 q" S, c2 F2 Y2 u& ]
- ybase (cadr ipos)
/ J) M5 d, B% q4 W/ v. Y - zbase (caddr ipos)
5 _9 P8 W5 a8 f4 V( o$ j8 \! N; T$ M6 S - en2 (entnext ename) ; First Attribute
5 {8 H P+ D4 [1 J z - )
8 s" t4 |$ X$ T3 L5 i* U& g
2 b0 q4 N1 L9 R3 k- ; If the Block is rotated, temporarily un-rotate it, along0 g _5 A! u) V' G4 n
- ; with all its Attributes, so the scaling/translation of the
6 J) n% b7 s5 T/ m- N& o F) s - ; Attributes won't have to take the Block rotation into account.& @2 l2 c+ Q: ]+ I; o6 }5 F
- (if (/= old_rot 0.0)) N. Z1 L( A. @1 ^1 U) C5 |+ I
- (progn/ z2 K( |4 K8 H: c$ V5 Y9 P
- (command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))
! a, G M% W7 {( s8 o" _9 ?% Q - (setq old_rot 0.05 q; e! _, @2 I. N a' m6 s
- elist (subst (cons 50 0.0) (assoc 50 elist) elist). s5 m8 _8 Q" u. K( f; U
- )9 v& [: m0 a1 w: ?0 z
- )
8 j a* G, K9 N; L - )
* ?- [4 F P, B: G" b8 p - . R7 |. G3 J; [
- (while en2
& ^% M7 F, s- U; g2 G8 \: d2 O2 A - (setq el (entget en2))
& g8 c S, ?9 r. W- e" N - (if (= (cdr (assoc 0 el)) "ATTRIB")
$ G; A" l% w5 c9 s7 }# \$ l - (progn/ k6 `: j9 K- c
- (setq old_hgt (cdr (assoc 40 el)) ; Height
4 p$ [; m5 ?9 s; K9 R$ G8 B1 s - old_wid (cdr (assoc 41 el)) ; Width-factor! _8 H6 Y( m9 ~, F. f4 U
- oldp1 (cdr (assoc 10 el)) ; Generation start point
: h6 f; `5 g/ l' k' I0 @# J - oldp2 (cdr (assoc 11 el)) ; Optional alignment pt4 y7 t. I/ E' d
- ha (cdr (assoc 72 el)) ; Horizontal alignment/ Q& ~( g ?0 d& I8 e$ @
- va (cdr (assoc 74 el)) ; Vertical alignment5 n! }& g! f( D7 h9 ]
7 M; k4 G0 ^9 [5 A1 {& J) M- ; Translate gen. start point
) x+ D) Z% X$ q% p4 } - p1 (list (+ xbase (* xdelta (- (car oldp1) xbase)))
- i8 x& g, e1 E6 C7 R1 E - (+ ybase (* ydelta (- (cadr oldp1) ybase)))
; Y/ u1 r9 a! c2 e% x+ c$ A, _/ b5 c - (+ zbase (* zdelta (- (caddr oldp1) zbase)))
, Q+ @# d# F5 X |3 k - ); l2 V: n0 U3 }9 U4 M
- el (subst (cons 10 p1) (assoc 10 el) el)
, Y3 Q R2 P- t1 E' _- b8 ^+ s - )
/ q2 W( y; H: P7 Z# Y
( t3 ]1 ]; G; z- ; Translate alignment pt similarly, if present and applicable
6 ]4 J2 ~( m6 D1 \' l" D" } - (if (and oldp2 (or (/= ha 0)! L% o9 ]5 c1 h) s
- (/= va 0)0 r9 H5 v C2 x8 \
- )' X8 n9 {7 {/ t0 z
- )# |$ G; w# ?7 m( ^* K
- (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))
$ l* Z* ?6 Q& S - (+ ybase (* ydelta (- (cadr oldp2) ybase)))$ O: @. m5 h" m% y# O
- (+ zbase (* zdelta (- (caddr oldp2) zbase)))$ E" l$ J. [9 u( Z2 N
- )
% h* X% y' E+ y2 b$ B - el (subst (cons 11 p2) (assoc 11 el) el)9 B+ P* C) p9 i. N$ }0 q9 ^
- )2 M' K$ x: m5 [ W: g x
- )" y. E4 S" }" k" ~9 E/ Q
- $ h+ V' I d2 s, O6 B# Q
- ; Each Attribute's height and width-factor were computed) d; i9 R( `; r$ G; V
- ; based on the Block's scale factors. Adjust them now, y0 q# a( ^0 ?' r1 d6 B8 _2 v
- ; by first reducing to values for 1x1 scale...
& u9 g8 m! Q: t% s - (setq new_hgt (/ old_hgt (cadr old_scale))/ }* t0 R Q: u
- new_wid (/ old_wid (/ (car old_scale) (cadr old_scale)))
- u9 |- k5 }: w1 b$ ~1 O - )) W' E/ @3 M5 ^3 r4 ~+ h& K; E
- ; ...and then rescaling.: j6 m" l5 e! _5 E2 B7 ^$ Q& o3 U
- (setq new_hgt (* new_hgt yscale)% t# V$ {6 t m" c @
- new_wid (* new_wid (/ xscale yscale))
8 r0 ` m0 ?3 C7 z - )
4 x! T+ m3 P" T! f - (if (/= new_hgt old_hgt)$ Z. _8 `. n: |! w- f8 o. j
- (setq el (subst (cons 40 new_hgt) (assoc 40 el) el)); j- H& X2 d- ]
- )9 L5 U- C8 |- M0 K" s2 l% i
- (if (/= new_wid old_wid)
3 k1 f' C7 t" E, b3 z5 C6 R - (setq el (subst (cons 41 new_wid) (assoc 41 el) el))& a T" J# r. u2 G+ N* K6 q! p; w" B
- )* y, }# B7 t7 B8 ?
- (entmod el), q" Z' i8 x g' }# U5 F3 M7 I2 T5 K
- (setq attr T ; At least one Attribute modified) v: c; ], C. J. x# \/ ]6 b
- en2 (entnext en2) ; Next Attribute5 `( K! y4 r# ~0 }( U* ^% C7 P, W" \
- )! u% C3 \0 q2 t
- )
, m' J2 `0 U8 u! C7 q - (setq en2 nil) ; No more attributes
- B% ?& A% z6 ]1 k9 @/ L - ), t& M9 f. ^8 V; T8 j, o2 {
- )3 @; V$ l h! H& [2 ]
- )
# k- |9 I3 l Q$ {) h( h9 t - )
# G2 P( V& B1 h - 8 p9 E7 {& T. {+ o
- (setq pt1 (list x1 y1 z1))' K2 f9 X8 U/ q# N I2 z/ w7 t
- (tempmod xscale 41 nil)
" O1 r4 M8 l+ h1 h0 w- }9 v - (tempmod yscale 42 nil)
' H" ?2 e1 n. d) m- p - (tempmod zscale 43 nil) L! a; o( _0 X% z6 F
- (tempmod col-sp 44 nil)
~% c2 o4 c& E1 b. N4 H - (tempmod row-sp 45 nil)
' | C, F; p+ n8 n2 B - (tempmod columns 70 nil)
. a8 ^, r1 y2 Z# O+ F+ x - (tempmod rows 71 nil); |2 Q: Q: \; d% H) p
- (if (= xclipmode nil)# t3 }( J$ ]9 j' N; S
- (entmod elist)
5 q* D% T) ~* t0 d; E2 ?+ o - (setq xclipmode nil)+ m% j+ y( _9 w7 V6 ?
- )
* p( b4 `: G' J! |, O* C - (move_pt1 1)7 N5 ]( p0 w2 B0 K
- ' z% O- c, T- D( ~: W+ \9 g1 p* n
- ;; Now do the rotation with the ROTATE command.5 Y @8 C) S3 h! r
- (if (/= old_rot rot)# _; g# I7 i. o3 y: U6 m* Z
- (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))1 u- G O( R$ C; X- d3 c
- (if attr ; Else, if attributes were modified,) ^9 n# t' j2 o/ N+ _
- (entupd ename) ; just regen to force attrib display
; d4 C: n1 |: ?4 ~! O - )
( K, V6 i# P& E$ l - )* v- ]# ?' ^8 h
- (setq elist (entget ename))3 g5 u J4 ^) p8 \' M: v) p
- )
& B1 K8 U; N! P- x2 X - (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)
6 T& U' j# N! ?7 m! S - (setq newhatch 0)
9 v# c D3 F+ b3 h% Y - (setq blkname (cdr (assoc 2 elist)))* U: G w1 ?3 `! O) o
- (setq blklist (tblsearch "block" blkname))
# a0 X8 Q: X+ m I& n - (setq blktype (cdr (assoc 70 blklist)))3 i( Y! c2 E! N5 V
- (setq xcliponoff 0)
, N( f& H7 \: z) B - (if (or (= blktype 0)(= blktype 36))1 t. e6 P8 w/ F9 r" w8 c4 S
- (progn( e" ]. T8 }7 o1 ^
- (setq xcliponoff (xclipon elist))5 Q' o( L, B6 W5 ^1 ]
- (setq temp_xclip xcliponoff)
+ g2 {0 v! Q) v0 P% V7 p - )
' Z* U" d6 p4 F5 B* S - )
5 X3 g4 Q& p8 n - (if (= (logand blktype 4) 4)
, r2 t2 I3 u' T) y - (progn
. Z/ [2 Y& a7 }" l' j J - (setq xrefpath (cdr (assoc 1 blklist)))
?! m. H1 ?: o( j! Z - (setq help_entry "modify_External_Reference_dialog")3 f; j, S3 d" f: X
- (if (not (new_dialog "ddxref" dcl_id)) (exit))3 @" t7 A1 Z) L' ]* T5 ~. y
- (set_tile "Bl_name" blkname)" E: t6 E# @% x
- (set_tile "path" xrefpath)
% U4 U0 ?& r6 G. s9 y - )
7 O* S0 @/ }; O - (progn* f( e* {3 C: ~# U
- ;; Get program name for use as Xdata app name
. L0 W+ N0 G3 t& `3 `* ?& a3 W" M3 m - (if (not (setq program (getvar "program")))0 G3 r. W, J' _; _% U. J
- (setq program "acad")4 r$ a$ t2 ?, ]; |1 b- H7 g( V
- )% L& D+ G6 h& a( `% _) K
- (if (and (setq temp (assoc -3 (entget ename (list program))))5 d; {# ~: q: P B; Y
- (= (cdr (assoc 1000 (cdadr temp))) "HATCH")3 u1 E1 e6 k4 ^8 _; [, _
- (assoc 1005 (cdadr temp))
$ f% r8 n9 ~% o/ y0 h0 J - )
8 O1 R: U( E+ K( T y - (progn
7 O/ C8 p; p! @' Z - (setq newhatch 1)1 I* X. H9 O" L4 ]# n* ?
- (setq help_entry "modify_Hatch_dialog")
9 j( d/ q0 a# Z0 d" Q# k% r - ;;; convert the object into a new hatch
. J; m" p$ a0 d ^$ M" _ - (ai_undo_on) ;; enable undo
. l" a! Q7 E4 G5 I" ` - (COMMAND "_.UNDO" "_Mark")
6 F& Z& h5 y7 H, t( F" T+ P - (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")3 v6 H3 c: L; m+ u4 |. @7 g9 a" ]
- ;;; suppress nasty message from convert command0 f' _4 T! {8 x& O
- (princ "\r \r")3 Y9 b1 F* z8 s( ^
- (setq elist (entget (setq ename (cdr (assoc -1 elist)))))
) u7 W1 {# g1 m' X+ o# ] ^ - (setq old-elist elist)& C! P/ l- s/ d6 F
- ;;; If we have cancelled ddmodify
% Q% M' r0 O8 s6 i) B: e - (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok
9 O# t# A& ?# @4 G - (command "_.UNDO" "_Back")
) [1 Z5 y9 E; _2 E - )
! k; Y9 i% D3 y. T - (ai_undo_off) ;; restore undo state) d$ [# B/ q8 n/ t" k" b% `- J Q
- )3 ?# F. s& e5 H+ P
- (progn* y3 t9 [7 b Y- q8 \/ U! j
- (if (not (new_dialog "ddblock" dcl_id)) (exit))
$ z* w* w- E# B5 A1 s5 v* @% { - (if ( = "*" (substr blkname 1 1))
) h9 y+ \/ l) @ Q - (set_tile "Bl_name" (strcat blkname " - Anonymous block")) Z. ], C [4 f- M
- (set_tile "Bl_name" blkname)! B1 n: G5 F& K& t
- )9 e2 R* W/ u% A
- (setq help_entry "modify_Block_Insertion_dialog")- {/ L- o( Q0 W, y
- )& s* R, ]! j' N9 k" z2 ]
- )7 l+ K8 D0 u2 I+ A/ h+ S4 T" p. j
- )) I- j8 o2 M/ u( m0 ^' w1 Q$ L, r. v
- ); ~. U1 z9 F- C
- (if (= newhatch 0)( {+ R; Y0 U0 _/ n" m1 l7 E: s7 z" a
- (progn
- G9 B" R) G( ?5 J6 V* M - (set_tile_props)& m2 U' j$ e) x. j$ ^; }& F5 F
- (set_tile_handle)
3 P( k( ?( _" W1 w - (set_tile_pt1 1)$ U- K' p$ {! o6 a0 m+ C2 B
- (set_tile_rot)* X5 G5 y% @8 I9 s
- (set_tile_scale)8 w; h# c( c2 @
- (set_tile_rc)8 c/ l. z6 k" o% e: D, Q" P
- (if (= (logand blktype 1) 1) Y9 a) k5 M; J
- (progn
9 E' N+ t/ ~& s# a' i - (mode_tile "xscale" 1)
5 G f" I9 i2 } - (mode_tile "yscale" 1)
" M. B; G* X) f- V* o$ |4 h - (mode_tile "zscale" 1)
" s" z) M! a! T - (mode_tile "rot" 1)8 C; `5 U8 m5 o! K `% p
- (mode_tile "columns" 1)
3 r9 ]' f2 E6 I$ B5 q0 A - (mode_tile "rows" 1)
1 | [8 e: Y- U$ J o - (mode_tile "col_sp" 1)' q9 o5 i: x- x; |3 M5 b
- (mode_tile "row_sp" 1)
, Z: g+ ]9 Y+ i5 w( l2 k5 } - )
7 E. Z; t6 A9 Q, b - )5 v3 P! A9 ?% |+ C
- ;; Define action for tiles
g2 s7 T: n; b( u - (set_action_tiles)3 E! U' J5 F: `( ^$ x& v, Y+ g) O- c
- (setq dialog-state (start_dialog))
5 K |" W7 p$ {! m% h - (cond
1 ?" v0 d+ o5 G: D+ g- g; s - ( (eq dialog-state 0)2 z9 N! } o/ P5 a2 \- t: D
- (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))9 y1 q8 {# j3 p! p2 Z" a/ Y
- (move_pt1 1) E I+ D( A/ {0 N3 W3 W1 a' W( z
- (reset))
, ^7 J. n# w# e& P - ( (eq dialog-state 1). c; {+ o% u2 g( K1 C9 k9 I
- (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))
" p9 T% Z' e- J# [) b - (xclip)' |9 M g% \3 v% |
- )
* E) f, ?1 B1 x - (modify_block))( x( q/ d4 J. h" b# h5 ^
- ( (eq dialog-state 3)
! V: O* S2 y) U - (modify_block)
3 `; k4 |8 }- q0 D5 H - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))( J6 N) X( s. m0 u) g; Q
- (move_pt1 1)
+ d$ I% X* N G4 Q) E0 x9 v - (ddblock))" ~* _* d" [7 w
- ( (eq dialog-state 4)
, }* |1 m% l: q7 e - (modify_block); M! z4 w# D8 T0 U" ^
- ;; Get current handle.: f% R( D7 \6 e. H+ b, W( n) h8 \
- (setq hand (cdr (assoc 5 elist)))
8 E7 F* ~* o+ \& p- a& {& y - (command "_hatchedit" ename)
) A) A# q$ V3 Z; u: h - ;; If OK in hatchedit, a *new* entity is created and the old one
8 P8 r* H$ M5 L; w' G - ;; is deleted. So if the old one exists, it must have been a' X4 J1 e8 A2 t( Z. o# e& q
- ;; so rest the entity.
& t+ b( G3 Y& j; e ~4 ] - (if (entget (handent hand)) (reset))1 G2 [, O% g- q* t
- )
1 s3 p0 F, I0 w0 r8 d( J - )
% {9 g3 O$ p) ^7 m; x - )8 x/ i7 s- o" p3 [% d6 J
- )$ j+ Y" i1 M, ~' X. d# {8 c
- )
# \3 G ~4 o+ O. r' W1 l8 U, I - ;;
+ V5 ~$ r5 Y# S- V8 r - ;; Modify SHAPE. q; r! @4 H: d, R7 J
- ;;
* X% N/ J( x H' Y1 Y! M B- p - (defun modify_shape ()4 p1 L5 n! U* D; G5 B) r
- (modify_properties)) P6 G- j' Y& ^8 z
- (setq pt1 (list x1 y1 z1))' L6 r+ ~9 z6 K% k$ |3 S
- (tempmod pt1 10 1)
2 M' [2 V! s3 j" a8 v - (tempmod hght 40 nil)- V. u7 [) s( Z0 ^
- (tempmod wid 41 nil)
+ x! k4 c) J0 k; ^' A6 |4 ? - (tempmod rot 50 nil)( c0 s; U" v9 x6 c3 V' @
- (tempmod obl 51 nil)
5 a. n+ W0 u; ^* l( M* M$ G! E% q0 D - (entmod elist)
: g& U( g7 S# \. _# D8 ]) v& G - )/ j8 u- V y6 V( V6 Z: ^
# x+ K- ^& r, C- (defun ddshape ()+ X* h; V5 |' f/ M! G: I5 v9 d8 s
- (if (not (new_dialog "ddshape" dcl_id)) (exit))/ K0 d. Y# U1 D- I
- (set_tile_props)* Z; O& j+ g3 v5 ^+ c0 A
- (set_tile_handle)
8 @/ f. W( R( t8 s Y - (set_tile_pt1 1)
/ [; B8 M/ J5 f! I8 \ - (set_tile_rot)0 B, V1 a+ ?& h! A" @% U
- (set_tile_hght)
$ }) B+ Q0 l0 Y R - (set_tile_wid)1 d/ ^1 l2 ]7 Q/ M' V# ]
- (set_tile_obl), F& U' O8 C4 _+ N o' `
- (set_tile "sh_name" (cdr (assoc 2 elist)))+ Y+ e, T3 \$ V0 ?
- ;; Define action for tiles
: X' H% q! A5 p" X/ r; {3 K - (set_action_tiles)
8 f3 ?+ i( p7 D# q - (setq dialog-state (start_dialog))
% j k2 W' B8 e3 x! F - (if (= dialog-state 0)2 e. W% u& J3 M5 }) W4 l
- (reset). ^2 j, ^; J7 t6 [( h" w
- )
3 P- L g: t5 n2 C7 P% _( ~ - (if (= dialog-state 1)
& ~& j2 l+ G v( ~ d - (modify_shape)
8 x$ @; i U2 q - )* {( \5 h) G3 M- i5 b9 z9 H
- (if (= dialog-state 3)& e- I% L" i; }( j; }
- (progn
" e3 ~4 O0 M$ s# |- ^" o2 d! }. J( I6 d - (modify_shape)
. x; Q! i7 {" R5 D, @& H - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))( C' b, K. G) x8 k: r1 f
- (ver_pt1 1)) v/ w9 W0 b! {! A$ k
- (ddshape)' a# v( P* |6 j% ~
- ), {/ P, N. ^, [2 Q
- )' q1 t3 H( B1 [, r, O4 O
- )$ j7 X5 N0 Q- b; ?- P
- ;;
) ~2 u# t! ~$ k; o1 k - ;; Modify TEXT or ATTDEF( k8 S3 T0 C4 |9 d. {) _
- ;;' {% R( p/ G: H) B
- ;; Set bit code for upside-down and backwards setting# J9 L( R: B: n
- ;;
' G: a7 {( q% a* n4 [ - (defun code_71 ()" `1 N' Z* Y5 R* t2 A' ?. _
- (cond ((and (= bkwd "0") (= upsd "0")) 0)
" j/ f3 A0 x% t9 |2 @1 [ - ((and (= bkwd "1") (= upsd "0")) 2)
. _7 X+ h8 O, q t) s7 o: T - ((and (= bkwd "0") (= upsd "1")) 4)8 V. _0 N; u$ O/ ?6 p% T3 S: `
- ((and (= bkwd "1") (= upsd "1")) 6)
& {+ V5 @4 l) c8 ? - )5 E1 F, n0 y6 C g$ T
- )1 s) r+ n6 I/ j P4 h! _2 C
- ;;! l; M, Z8 V# q1 E8 c z+ r
- ;; Style action. Reset widget values to style defaults0 ^8 q% n% x* d) Q* a% @$ c
- ;;
( C" l4 g! u( g - (defun style_act (index / style-list)
! T% W4 h- _0 m7 H4 S8 _( G* u, U$ k - (setq style-idx (atoi index))6 Z) b7 |0 u7 C: j6 ?$ y+ P/ M' i, O
- (setq tstyle (nth style-idx slist))
# G0 Q& H+ U3 W0 I m8 d6 O( l - (setq style-idx (itoa style-idx))9 K) |9 T+ ]- c* B; W' c
- (set_tile "style" style-idx)* I. L, B" q$ e1 v ^
- (setq style-list (tblsearch "style" tstyle))
3 j9 i6 D+ K; V+ T* X - (setq shght (cdr (assoc 40 style-list)))
* N; N, S& I. C; ]& ? - (if (/= shght 0)
/ x: i+ v$ t) _* G - (progn
& U: T% H2 V% ]; S - (setq hght shght)
8 d* \0 c/ E6 w4 {8 Z% J, x - (set_tile "hght" (ai_rtos hght))) Q7 R" c5 a6 R" i
- )/ h( C4 M/ F- N
- )
/ `: Q$ o( h. |+ B$ k4 O* g - (setq wid (cdr (assoc 41 style-list)))5 g8 O; h8 u8 E
- (set_tile "wid" (ai_rtos wid))
! f4 X5 h2 O6 o) O& P* K* t - (setq obl (cdr (assoc 50 style-list)))2 z3 q8 N$ ~9 I* F @
- (set_tile "obl" (ai_angtos obl))
8 T/ B' M( z5 x+ p - (setq bk-up (cdr (assoc 71 style-list)))1 w9 }1 @. g* e8 f: K
- (if (= (logand bk-up 2) 2)
f& Y8 a' z+ e" L7 W2 i: h; N - (set_tile "bkwd" (itoa (setq bkwd 1)))
5 W3 l5 I* ~; W2 W - (set_tile "bkwd" (itoa (setq bkwd 0)))
; X, d8 P0 ~' Q/ \& ?7 R - )- {0 R2 s' g/ J2 ~' Z- k3 F
- (if (= (logand bk-up 4) 4)
) R" P% `! g I, N - (set_tile "upsd" (itoa (setq upsd 1)))! M3 ~" ?9 L" d( _+ b) {
- (set_tile "upsd" (itoa (setq upsd 0)))4 q% n# p: Z* Y3 G* d: k
- )
7 P4 Z/ O. ^2 {& D - )6 `4 M# b2 m2 H2 J8 A8 q
- ;;# m1 S( @8 B9 \8 a
- ;; Justification action. Set vertical and horizontal alignment variables,6 e; N$ ^! n" t" \5 R
- ;; grey out rotation and height if alignment = "aligned", grey out rotation; i1 ?* B {" Z- P% Q+ n
- ;; if alignment = "fit".& v$ B: P! x5 p3 A# J1 p
- ;;
; K) S1 i# N/ H8 c6 g4 I- ^7 J - (defun jlist_act (index / templist)7 K) m; A' e: C& p2 t* K
- (setq just-idx (atoi index))$ a; D- e3 ^) y4 H
- (cond+ q1 o4 T8 {+ Z, q' q
- ((= just-idx 0) (setq va 0 ha 0)); R3 t* S: i! p9 \+ x% g
- ((= just-idx 1) (setq va 0 ha 1))
7 T' p7 O6 E/ N7 k" Q - ((= just-idx 2) (setq va 0 ha 2))- C6 S1 {# Z) I/ A" h$ v
- ((= just-idx 3) (setq va 0 ha 3))
( @' t- L2 S) p3 |) y - ((= just-idx 4) (setq va 0 ha 4))
3 r5 F2 Q# z4 z - ((= just-idx 5) (setq va 0 ha 5))
7 a9 W" O8 \( a, V: Z - ((= just-idx 6) (setq va 3 ha 0))
& a2 U6 D+ W1 K: T$ F8 p3 \( W - ((= just-idx 7) (setq va 3 ha 1))9 ?* x K1 P" d8 D* j; j ^
- ((= just-idx 8) (setq va 3 ha 2))
# z% ~. _" ]/ l/ ~ - ((= just-idx 9) (setq va 2 ha 0))
* O+ v' h* y4 ?& k9 r6 d! V - ((= just-idx 10) (setq va 2 ha 1))
0 x1 N% x% q ?3 U V/ |) ^: U - ((= just-idx 11) (setq va 2 ha 2))9 D k$ P. q3 m( \, W+ W" }
- ((= just-idx 12) (setq va 1 ha 0))
$ P. b$ \. ^% Z: C3 c% h( C - ((= just-idx 13) (setq va 1 ha 1))2 |" h9 A( O# m4 o7 G' k- E
- ((= just-idx 14) (setq va 1 ha 2))
+ S# r* p: `. b" N; {6 d- A - )4 J4 r6 R* ?% b- {
- (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text
5 y+ r) y0 F0 _ k1 z! O - (mode_tile "rot" 1)- U* z2 F @8 \* q; y/ j0 O) [
- (mode_tile "rot" 0)
2 L5 f4 D- w( X* Z2 O4 N2 v( P/ |& Q - )6 C5 q- r# b% [
- (if (= ha 3) ; If Aligned text
/ k9 A' f5 }* J- V# E: j2 f4 u/ P - (mode_tile "hght" 1)
( l* e4 l! q& S) P) N9 n - (mode_tile "hght" 0)1 Y0 a8 y7 v0 H7 }6 u/ y9 }( O
- )
$ g4 w' V5 ^, o4 w - (if (= ha 5) ; If Fit text
+ s. m- @) P7 P5 a I6 P' Y - (mode_tile "wid" 1)
; l) Q0 L, P+ ?1 T2 {' Z$ u - (mode_tile "wid" 0)
) J8 [5 {" z4 b4 { - )$ X% n! m8 c" h, @2 ?- u7 j" h) E
- ;; Reset rotation and height if changing from aligned.
. X: b8 R& y3 W* Q0 { - (if (and (= ha-prev 3) (/= ha 3)); p2 a8 H5 H4 g8 p: B1 N
- (progn$ [' l" Y; i3 A+ A: N
- (set_tile "rot" (ai_angtos (setq rot 0.0)))$ v' s' t" Q1 Z+ A8 n. Y2 ?5 a
- (set_tile "hght" (ai_rtos (setq hght 1.0)))- o: }( u- Y h6 Q1 M2 f
- )
$ u! t R, m8 L" I1 H. H. B4 P - )1 T5 }% h( V5 f# j4 R2 K0 T
- 9 G6 h7 Q1 l1 m& j# M/ `
- ;; Reset rotation and width if changing from fit.( @% q6 E( i' ^; g
- (if (and (= ha-prev 5) (/= ha 5))9 J% {* z; Z( v8 a( L
- (progn
6 _7 q9 Q5 Y- y- P) N - (set_tile "rot" (ai_angtos (setq rot 0.0)))
9 ]: s8 N0 h% H; H, m& z' E - (set_tile "wid" (ai_rtos (setq wid 1.0)))% b6 }: [: u$ U# O# Q) \
- ): o! n( g& G, @
- )2 j0 y# s! w9 y) Q* U2 B
- m* r- |8 H0 r& P/ q
- (setq ha-prev ha) ; update ha-prev for next time
: n, V) d. P+ x7 J+ {: e - (setq just-idx (itoa just-idx))( _1 B0 U1 s8 a: p+ B
- )
6 |& O& |9 v6 R9 ~# b( m - ;;8 }6 W+ \1 [5 V) M2 z8 W
- ;; Set intitial alignment setting based on vertical and horizontal alignment
6 U4 o0 }, g1 H+ V5 s/ s - ;; bit codes.
5 k s6 |0 x H0 f ^8 ] - ;;4 g- x8 P' j0 F# r! ^' ]
- (defun set_just_idx ()
) r! M4 @4 e% B1 m# r ` - (cond1 Z9 @6 |" f) a& a" h7 `7 G0 I! E
- ((= ha 0) ; Horiz alignment = Left: X( j8 \& r7 u* P( D
- (cond
( p) X9 q6 O! K |; t4 t - ((= va 0) (setq just-idx "0"))
3 r% v; j# w4 X9 N - ((= va 1) (setq just-idx "12"))* { T# {, [; `) b+ Y5 l9 q5 R
- ((= va 2) (setq just-idx "9"))
3 U' f1 {+ G! e) m& z) n" N' n# v - ((= va 3) (setq just-idx "6"))
|0 M3 U$ w: B - )
5 p, v* ]2 `7 [' K1 [# I( F; L6 R - )" O( R! A: c7 R: q7 P& @: q9 U
- ((= ha 1) ; Horiz alignment = Center
" T& T' H( z0 l! K" g- L' [! i - (cond: ?* D4 C9 @8 V: V& ]" a+ B* ]- S, O
- ((= va 0) (setq just-idx "1"))
2 _* j' R! ^, P# q- s - ((= va 1) (setq just-idx "13")) ]9 W1 B' W$ M5 Q$ J. c
- ((= va 2) (setq just-idx "10"))& c) _: O5 ?) G3 x+ b4 o
- ((= va 3) (setq just-idx "7"))
7 P9 O ]: j; d8 q X - )
6 q9 _+ T2 v) c2 P: Y7 v - )
1 q5 w1 R4 y# z8 S - ((= ha 2) ; Horiz alignment = Right
8 S8 L9 a$ g. P& v) i( T8 Z - (cond7 M' S+ k( T2 ~1 ^4 | g
- ((= va 0) (setq just-idx "2"))5 E% Q; H( y/ m: k0 V8 e
- ((= va 1) (setq just-idx "14"))
: u1 J1 c: I; {) ]7 c - ((= va 2) (setq just-idx "11"))
$ ~. _+ } |. R \. W( q - ((= va 3) (setq just-idx "8"))
" x% E% I1 ]: E$ E6 m) s - )
0 u( |, m. X; y - )7 h2 V+ q2 q9 q, Q% l! J
- ((= ha 3) (setq just-idx "3")) ; Aligned
1 o B( d7 M7 _- x - ((= ha 4) (setq just-idx "4")) ; Middle2 z, X" I. ^% z. T, c
- ((= ha 5) (setq just-idx "5")) ; Fit
* ]' c& C+ R+ R/ B8 j d - (T (setq just-idx "0"))
8 H; w# O7 A, f5 X. p5 s - )% B9 F& e, Q f2 i* @9 l
- just-idx
! W4 b' a( j5 ]2 E4 j, @' g! _ - )
# f, L1 a4 D$ _5 {
U' R2 _6 Q5 h+ e; u A- (defun modify_text () V& A# E/ Z2 Q4 q1 _/ ~
- ;; insertion point
/ k3 d; j3 @( F - (setq showpt (list x1 y1 z1))
& S" e# y2 O4 x% y# Z) P - (setq bit-10 (trans showpt 1 ename))
u9 F6 C9 h5 E- ~. `1 l( O$ K - ;; alignment point
/ c5 W0 g m# C. j - ;; for 'Aligned' or 'Fit', alignment point must be different, L" _2 P# n x
- ;; for all others, use insertion point
& I9 J3 c: s, C- i - ;; (ACAD will recompute insertion point)
d+ b$ k2 G5 Y! f+ J - (if (or (= ha 3) (= ha 5))
' X0 D4 Q' u" X; z# i - (progn
" e$ H0 C6 Y1 ^% x" q' a M - ;; if no alignment point, fabricate one. ]) Q0 i1 s" g" `8 V2 W% O
- (if (not alipt)7 ?6 i( q- l5 `& u
- ;; add text width to insertion point
$ Y1 j4 @9 S' G% { - (setq alipt
0 x! D/ j: _0 ?3 v - (list (+ (car showpt) (car (cadr (textbox elist))))8 T* Z' a" `$ t+ S- E4 T) z' ^
- (cadr showpt)
a2 V8 }* e/ D* ]% p - (caddr showpt)% T5 E- C1 P3 F
- )
+ I6 \2 v) B( W - )
# {& T p7 Y- R4 ^% ?& T - )9 e6 Y# N6 A+ z9 o9 x- b$ ]
- (setq bit-11 (trans alipt 1 ename))
% i) v+ G6 F$ C0 @0 K4 S+ X - )
& |4 v; F$ [9 c7 h+ T" {! O - (setq bit-11 bit-10)
: ^/ E( q" k5 w; z - )6 d" i5 S: }* b3 m
- (modify_properties)2 F2 ~ T4 a# S9 H: | U& m+ g
- (tempmod tstyle 7 nil): e% }) F) D5 F2 v
- (tempmod bit-10 10 nil) U$ _! ~; x% l! [, Y
- (tempmod bit-11 11 nil)
$ ^# ~, f5 S* A: t, _3 n3 S/ Z - (tempmod text 1 nil)5 U% G! N+ x! W. Q T1 s3 t. ?3 _
- (tempmod hght 40 nil)
( K2 A" w# a% ~- L - (tempmod wid 41 nil)
, ~! x+ T1 D1 \6 o6 ?2 w - (tempmod rot 50 nil)0 Z/ x+ B$ t2 r5 a5 t* [, _6 k: ]$ a
- (tempmod obl 51 nil)- E9 ^+ N r+ S4 @! m) v6 Q6 H
- (setq bk-up (+ (* bkwd 2) (* upsd 4)))+ l' S1 f5 b6 M+ x
- (tempmod bk-up 71 nil)
* _4 j" T% T/ Z# V5 X! S - (tempmod ha 72 nil)
% U4 b$ J/ E3 c+ m& d2 b* n - ;; Attdefs use 74, text 730 J# @+ S) T9 n. s8 L3 R& K- z* q
- (if (= etype "ATTDEF")
' h4 B! e4 v. n# S8 X7 W- c* @, v - (progn" J8 _+ U& ?5 P# ]& v! q" F, o
- (tempmod attag 2 nil)$ |+ ~( @! j7 v) F+ @. h+ x
- (tempmod atprompt 3 nil)8 p% t1 _' }! {9 n* F$ j
- (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))
2 q# J% [* j0 t8 Z( t0 a - (tempmod icvp 70 nil)$ E/ T9 i" Z9 o) ? h
- (tempmod va 74 nil)
# L; @$ @$ l- d* e2 `$ ` - )5 G% D5 Z; N$ J( r' c3 L" ]: Q4 _' B
- (tempmod va 73 nil)4 W# k6 n/ O0 I6 H! B7 h A
- )
9 N# O! [$ x; y+ r* Z - (entmod elist)
/ u; _ z+ X# v( @$ m1 z - )
8 `& R) p+ l' ?" i4 l
# m% `$ h0 D6 z7 \! Z- (defun ddtext (/ 2ndpt slist i)# D1 {" l" R8 \3 Z+ K/ V4 s
- (if (= etype "TEXT")
; b) i5 M! i9 Y: j; G9 b% t# | - (if (not (new_dialog "ddtext" dcl_id)) (exit)). q/ ~7 l7 a, W/ H& c$ ^
- (if (not (new_dialog "ddattdef" dcl_id)) (exit))! ?" F V( h9 b. V; ^" W0 R1 f" s
- )
( b3 j Q. X) n, l7 D! N( l: k - (set_tile_props)/ J2 d9 y: l' ~. ` T" V+ N
- (set_tile_handle)
9 P" v7 S' L$ S) [* |+ u - (set_tile_text)
+ |0 m' b( w6 F" T* T - (set_tile_tag)
4 G! o# {- X: g0 @5 v - (set_tile_prompt)! W7 E6 N% \; M0 N% V% R: T
- (set_tile_hght)% Q5 x* G8 e" a' \) X
- (set_tile_wid)
- C0 l5 P1 Z/ I7 P/ T C - (set_tile_rot)
5 ?" i2 U* v# J) s4 t - (set_tile_obl)
6 p& ?- G X2 L - (set_tile_bk-up)9 P; i+ p4 p8 [; O7 M. I
- (set_tile_icvp)
3 S3 f4 S) H! O* \ [5 X; v# A5 Y - (set_tile_style)
0 P% F) H! s3 L( a- i4 L - (set_tile_just)/ k* i4 J3 F* z
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1)): B ^ s& ?% o- q, \$ U, ~
- (if (not (assoc 11 elist))
# L' l2 D& v2 \ z* ^ - (progn (setq pt2 pt1)
2 }# Z. }7 j3 Y. @ - (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))8 Z" `9 s$ N2 z* G
- )8 d/ L0 ?' b8 f$ A( W8 z
- ;;(trans '(0.0 0.0 0.0) ename 1))
# u0 n; n% {# A u e+ \: ^! H - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
% l8 P& ]# y- U! F5 ^% O) A - )
( u e; X; l x, P - (if (or (and (= ha 0) (= va 0))9 m# e; S) }' l
- (= ha 3)( h' O$ ]5 y$ R" H0 M3 M- J
- (= ha 5)6 E( e9 O. J7 Z
- )$ [( d% V" h7 r7 M, O) Y- n
- (setq showpt pt1)7 C2 b- o" W1 }3 ~8 T/ d& X& r
- (setq showpt pt2)$ ^7 |! ^4 i S" Z
- )( M% P2 j! O9 T
- (if (or (= ha 3) (= ha 5))
. t/ H$ q2 H; D3 m4 | - (setq alipt pt2)/ R2 ^8 P6 W. g; U0 t8 H7 m
- (setq alipt nil)
% g3 E t3 s4 \$ O8 q - )
' t) }* K. o( ] - / v1 Z8 A: [+ T9 f
- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt))))
m8 x) u/ d6 n - (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt)))): H E$ T: d j& b s; J
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))1 ^' p; E/ K$ I. o: Q o
- , ?5 r% V i( m8 L& O
- ;; Define action for tiles
9 P+ p7 B9 D/ i' _$ g+ t - (set_action_tiles)
; R0 K3 g5 n8 _- S' Y3 C - ;; Set focus initially to the text edit box.
+ p' _5 s. C: c' h# C1 | - (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))
& M6 d5 @7 V# n4 q" U/ \/ P - (setq dialog-state (start_dialog))
' H7 B5 O9 f: N - (if (= dialog-state 0)' j- t- z, m" w
- (reset), M) s. z2 B2 v$ R: b' i0 O0 l
- )
+ s, B* n( ^* N2 k& _ - (if (= dialog-state 1)$ @/ t( t% i+ k5 i' B: l2 d! A- x
- (modify_text)
+ S/ s7 z4 i+ c$ e- ?" h - )+ i) @5 @" ~; I k% z L
- (if (= dialog-state 3). g) G. y3 M% M; X7 T
- (progn
( z9 o# {& `5 P8 Z; g" k6 p - (modify_text)
9 v) s- v* t& e2 k! Z$ H: D - (if (or (= ha 3) (= ha 5))
* K, @# l% k+ ]& F3 n Z |. y+ M - (progn
, f! P8 \* J! ]# U( G - (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))
, z' c7 C( ~# E1 N& U - (if (not showpt)
b1 \4 e5 H' k - (setq showpt (list x1 y1 z1))
6 Y5 O& o* b3 Y. _1 p - )/ P+ T, t' C% n/ N s
- (setq 2ndpt (getpoint showpt "\nSecond point: "))- F6 s8 I) S/ g2 X2 F1 i
- (if 2ndpt
9 U( q4 i! H1 y$ n - (progn+ i' I# y, Y- S" K+ d
- (setq alipt 2ndpt)
$ K: D5 S, X1 y - (tempmod showpt 10 1)
5 |8 J4 P$ v \# M2 J0 u - (tempmod alipt 11 1)
' j8 t% B! Y9 i: Q$ d! Q0 i& w$ Z9 s - (entmod elist)( K! ?8 v# ]* M& k8 B6 \
- )
( `# m+ Y2 m# x$ a ? - )
3 i! g% p3 T2 h* x - (setq elist (entget ename))3 S8 W k6 O8 y! `2 c' s
- )
: b+ \( ?2 o4 `# y - (progn
, ?% g) o1 i8 l - (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: ")), q- f; q( X& i" X* x
- (if showpt: g/ u3 `+ C7 Q. N
- (progn' D; U2 A+ X0 a4 S+ S2 T' x
- (if (and (= ha 0) (= va 0))) E+ ?+ n$ u/ L1 e$ m- x
- (tempmod showpt 10 1)
3 G$ y% z. [: X8 p, X, y( N - (tempmod showpt 11 1)% a, ]1 ] j5 W1 S' e
- )# r; D9 g8 g' C+ G" x! u: _5 y9 n) L
- (entmod elist)! h8 k P7 k, o, N
- )
8 Z5 w% n9 [6 G+ [ l - (setq showpt (list x1 y1 z1))
1 h" ^; t. P0 f+ R+ k( K - )
9 a& a4 B4 E* |4 f) e+ o - )7 M" V+ O+ j8 h
- )
# X% ]7 E/ W1 o" h2 v$ b - (ddtext)8 d# r1 v& ?+ m1 o6 Y) c
- )& y, J5 q! L1 C$ `" g7 G: `
- )5 P+ D% t }6 W& V, Q3 ?1 T
- )
6 M* W, M# F6 F* I/ o* }0 X! F0 y
1 G+ k& s- D( ?! P! C {- ;;
9 D6 u5 o& S3 X9 f3 C' u7 c1 _/ x - ;; Modify MTEXT
7 V Q3 c3 } R, `: h - ;;
1 e( F* v& L( D$ _ - (defun modify_mtext (). g ]0 M# L- H$ ?$ |
- (modify_properties)1 N# I' \. X L4 J- G
- (setq pt1 (list x1 y1 z1))
! R' y0 Z$ o4 Q/ N* A+ D8 U# E - (tempmod pt1 10 0)
6 s! S/ v- G: M& F! D - (tempmod text 1 nil)
2 X* i2 N6 N9 r - (tempmod tstyle 7 nil)
2 k5 y) x/ H; y7 k0 c5 m9 [ - (tempmod just-idx 71 nil)
& T2 W( `3 C, ~: |: B - (cond! Z- u/ J7 `9 B; u# d4 ?
- ((= dir-idx 0) (setq dir-idx 1))
. b+ j# W. D* u1 C* U - ((= dir-idx 1) (setq dir-idx 3))) g9 U/ B; ?( J% M
- ((= dir-idx 2) (setq dir-idx 5))! {; z& z# R6 _: G5 T) V1 g3 ^
- (T (setq dir-idx 1))2 ]5 [) X; C2 I# `5 @
- )
+ k8 J, d @0 I& U - (tempmod dir-idx 72 nil)5 W6 Z+ p/ w# F8 B4 V2 {
- (tempmod hght 40 nil)! D# ?' t. e$ z/ q! q
- (tempmod wid 41 nil)
1 H' C( F9 K) ~1 ]0 E$ B0 b) l - (tempmod rot 50 nil)$ U. @" {" }& B& S! B
- (entmod elist)0 u6 x4 H) N# I# [) i6 f
- )
# p" x! d l V' m
4 W# z" D6 I" }$ s8 j- ;; Set MText text style
) ^; g& \3 d4 d# ~ - (defun MText_style (index / style-list)4 T b7 t7 R' I* I; i
- (setq style-idx (atoi index))9 _- ^/ G- ~) }& b
- (setq tstyle (nth style-idx slist))5 _ ^" d% ^, c8 A+ P Y& P
- (setq style-idx (itoa style-idx))) x9 Z: I. i& a4 o/ W: ] |
- (set_tile "style" style-idx)
% @) u4 Q; A O2 m9 S, }- U& J1 M - (setq style-list (tblsearch "style" tstyle))
5 u; h, m( i, z* z6 K! l+ v- @: h - (setq shght (cdr (assoc 40 style-list)))
/ y$ l5 q! U J' G+ O! R( }( K9 [) v - (if (/= shght 0)) f# g, n9 t) w9 G' i
- (progn1 n5 ]# j4 P& t' N0 O1 T6 T% A
- (setq hght shght)) p5 R. i2 _- U' }4 e! [' N
- (set_tile "hght" (ai_rtos hght)): B# V( \: w# \2 z: T
- )1 L( A2 E' D5 w
- )
" T; `: q2 P ?. `! c, _% { - )
/ ], T. ]: C; U4 S0 h
1 B% M: `$ F# v3 _# @- ;; Run DDEDIT on given entity, working around possible re-entrancy
& j4 |7 u. t1 T- ?/ l$ }0 w - ;; problems with MTEXTED
6 N$ \/ s# G+ X+ ]" R! h$ d+ U - (defun safe_ddedit (ename / orgMTextEd work)
7 Q$ b% h( X: @0 x6 o% d( w9 } - (setq orgMTextEd (getvar "MTEXTED"))
X7 e& w% G% |$ k3 e - (setq work orgMTextEd)
8 S0 ~3 B; R/ j$ A! @ - (if (= ":" (substr work 1 1))
* `! q, K- d2 H4 A! r3 k f - (progn5 T: s) m0 Z1 G
- (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))" [( p! G- S4 E& ?/ N# \. K
- (setq work (substr work 2))
& H5 P6 k3 X' A1 k, @; t+ o - )& k4 a# p }1 g8 }( G
- (if (= "#" (substr work 1 1))
$ O, U. _& k+ c% ^- l - (setq work (substr work 2))& ?6 @! {3 Q9 q* j/ ]$ u$ [5 P
- )$ E- _4 U+ s6 Q2 t: f" O! r
- (setvar "MTEXTED" work)
- O9 P3 F$ t9 _ - )
$ _& G# l- A8 q, `* W/ ~ - )
, { q7 U( \2 h - (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...% {4 @% J/ G2 D
- (command "_DDEDIT" ename "")7 T) n2 C/ R6 e8 m2 O$ h3 q
- (setvar "MTEXTED" orgMTextEd)
8 u; C7 H# |* M- u - )) g/ c3 V5 r8 z. L2 A- d; w5 k' d
- ) Z- E" D2 W, Y# }
- ;; Verify MText object width% F& [" Q* F5 ~! V% I5 e) V2 k6 t
- (defun ver_MtextWidth (value)3 A, E) F+ ^9 i( G% L; B1 v
- (setq value (distof value))
. B4 K* U" H3 i; i3 p) \ - (set_tile "MTextWidth" (ai_rtos value))
) i; n% z' M. T7 f7 U - (set_tile "error" ""), K* l: B8 b. }, U# B
- (if (< value 0.0)" T' x: y8 Q' s1 A
- (set_tile "error" "Value must be zero or positive.")8 l) p4 @+ [/ ?8 P5 v
- (setq wid value)
3 L6 e6 _$ w9 k' H% {' W) g - )
. [- e0 r q$ E - ), g) Y) ]7 T9 U1 Z
( l- {$ P. _* ?7 d+ w+ c. k- (defun ddmtext ( / gc3)
& ^% ]+ H. [1 s5 v7 j - ;; Get dialog8 ]! e$ V0 z, a6 U8 {- l
- (if (not (new_dialog "ddmtext" dcl_id)) (exit))
3 j, T% _7 [. Y" { - ; q5 v5 a2 m4 p( H4 q" v; G
- ;; Load list boxes
6 a# ]# R. v6 T# P' _8 r% ]1 _6 q - (start_list "MTextJustify")9 x! z3 o. `3 y" t- u) p
- (mapcar 'add_list '(
6 F% U5 N% u, w7 A2 h8 q - "Top Left"
" p D o0 I( F* ~ - "Top Center"
8 n; V' ^0 l9 ] e+ W* p - "Top Right"
4 n; }+ ^- c0 t' S3 W# v, U" Y - "Middle Left"
7 |8 _* e5 A8 \# }7 q- \6 _' Y! ^ - "Middle Center"+ z# Q! p1 m5 J! A
- "Middle Right"
( f. R' k: p* R4 P6 Z. ?4 z; ?6 a - "Bottom Left"
- L( k# a! n0 m/ Z - "Bottom Center"1 z+ i/ a. Z( g) k
- "Bottom Right", N: D4 T6 Y9 ?! ]
- )
7 o8 O. H, ]- C - ); j7 `/ [9 J0 Y6 U( p0 d3 T
- (end_list)
1 C2 J. x/ @ a6 o9 y# t - ! x+ G; d0 B+ O: k5 \) z! l, o
- (start_list "MTextDirection")+ R& F9 C" d& q: X6 s
- (mapcar 'add_list '(( h4 Z! i: h: m0 T) _; J S6 y, l2 |- j
- "Horizontal"( X; j h% s- E0 E7 T6 Z' [" M$ Z
- "Vertical"( J! @. X4 f* s. ^0 \ k& \0 f
- "By Style"
% S% l# q- u; v2 s! C9 W& X) L. w3 u - )8 D {2 J! R7 m0 w' x% X8 [
- )
; T' G0 A) Z0 b3 r3 u2 f v( E - (end_list)1 A4 ~$ Q8 L1 N( w1 [/ b" n/ P
# s) ]; c- E! ?8 [" q$ I6 S- ;; Set initial tile values
3 `1 |' d# i- P6 Y: c - (set_tile_props)
8 b/ M9 j4 k c1 V6 [ - (set_tile_handle)) j d* G9 Y9 h; w
- (set_tile_pt1 0)
! D1 ~! ]- y1 h7 Q - (set_tile_style)" U! ?9 |3 d/ `) h) g
- (setq just-idx (cdr (assoc 71 elist)))8 x" j) v, U( f5 b9 ]$ @. l
- (set_tile "MTextJustify" (itoa (1- just-idx)))
1 ?! Z* D; x. T( i E1 Q) S- K - (setq dir-idx (cdr (assoc 72 elist)))* P. t3 F4 u$ P/ `
- (cond
0 i" {- t$ h. l6 X+ g( e4 A& j - ((= dir-idx 1) (setq dir-idx 0))" H5 `: ^3 X( I3 K [; i
- ((= dir-idx 2) (setq dir-idx 0))0 Z) q* T) {( l: h0 D5 w! h$ R
- ((= dir-idx 3) (setq dir-idx 1))
: m" l: Z* }2 E: T! U, F L - ((= dir-idx 4) (setq dir-idx 1))
) l. t4 Z* ^; Z; M2 w - ((= dir-idx 5) (setq dir-idx 2))
- v, N* i& x+ z/ {* s' y - (T (setq dir-idx 0))
8 Z7 Y, y! o! n- K5 Z - )
7 {$ @/ J$ J% {2 Z) m - (set_tile "MTextDirection" (itoa dir-idx))
6 x B3 G+ G" u, r* u- z. d- w; v - (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))
2 T; p) B3 ~4 z1 V - (set_tile_hght). u7 A2 [5 ~) i% @% D2 U
- (set_tile_rot)
$ u- o" L0 r8 H
' p3 G9 y9 ?7 r7 m; A7 S- ;; Set edit box, disable if too long
! [( ^' I3 H u/ Q7 v+ C3 S! V - (setq gc3 (cdr (assoc 3 elist))" s4 g- a M% v* p
- text (cdr (assoc 1 elist)))) A) l2 U/ ~" b; Z& v, @6 h9 d
- (if gc3) O7 t( i3 l( b1 @
- (progn ;; Text is over 250 chars, disable edit tile
0 e; x7 `( f# W1 d x, w1 C - (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))! B' R8 p F8 T3 w, \
- (mode_tile "t_string" 1)7 P6 l4 [/ ]% ]2 a8 t
- )0 u; K9 f" i; O& U# a
- (if (> (strlen text) 80)# q/ ]" p3 `: @# D8 ~
- (progn ;; Still too big
% S" z9 a# l3 f8 k1 j9 L0 [ - (set_tile "t_string" (strcat (substr text 1 25) " ..."))
* O, A- _0 s/ H/ \% J - (mode_tile "t_string" 1)% l8 B% n8 \6 F5 m; O; E$ G
- )
7 e7 Q m3 ^6 i" {( {8 I% R - (set_tile "t_string" text)! L; e$ M7 R7 n) Q
- )/ @: s# b/ b% I0 [! B' U8 M& M
- )5 z: E+ ^2 E) R% D8 s9 d
5 _$ f7 u/ o0 e3 K' F; U1 w( \/ c% I- ;; Define action for tiles. O8 [1 h; o4 b2 `) y3 \& d& T0 d0 w
- (set_action_tiles)
2 x, V( s% h$ _5 V - (action_tile "style" "(MText_style $value)")3 |' f/ W" f7 Y
- (action_tile "MTextWidth" "(ver_MtextWidth $value)")9 p6 O; K3 Y: T4 c9 O) J
- (action_tile "MTextEdit" "(done_dialog 4)")
. j& j$ [0 t+ X7 Y- p% f6 z - (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")3 R! p( G5 ~* }
- (action_tile "MTextDirection" "(setq dir-idx (atoi $value))"), e* Z: C" y. \5 F7 M
- : U! R( u0 f. ?3 I
- ;; Set initial focus to text edit box.& J5 R2 z W0 d5 o
- (mode_tile "t_string" 2)$ u2 I! Z9 ?' ?
- 7 ?. M8 j, I' b7 n. w* \
- ;; Run the dialog# F7 ], ]6 s5 }' u5 m8 G! v0 ?- {
- (setq dialog-state (start_dialog))" Y) ^' C3 [; ]6 H1 c1 o1 i/ Z; o
- (cond
5 @) v d8 g5 F4 D! \8 W6 ^ - ;; Cancelled - restore saved data) `! l) `( V* F5 q9 s* G# u# @+ y
- ((= dialog-state 0) (reset))
8 _$ i% m* ~ z: T" k( s - ;; OK - save new data1 q3 j2 J" n! R& |. U6 a( H9 B# Q5 l
- ((= dialog-state 1) (modify_mtext))
, I& d$ K! Z6 |: s- U0 R, L - ;; Pick new insertion point8 z' a. [; q2 I) _% D2 g" y
- ((= dialog-state 3)
6 v2 D2 v7 Q8 t% k/ i - (modify_mtext)- F& ?9 l. d% X4 O
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
" f0 u2 T; h3 R/ p: k - (ver_pt1 0)
+ M6 ? I) J$ x% d' F - (ddmtext)0 C" j# t) E5 c) A. m
- )
! i9 {; F& ]; `, a7 {$ c" z - ;; Run full editor( J; {: s* F, u; Q! _9 E8 j2 o i$ k
- ((= dialog-state 4); b9 u$ K- p3 }3 s0 k
- (modify_mtext)
+ I& [6 _! F5 X) Q2 s" T - (safe_ddedit ename)
5 e: V) B. t e' _* r - (setq elist (entget ename))+ h9 V" @3 j S- H& s& g& M
- (ddmtext)' c& E. t! w9 Z! E
- )5 q9 Z- d) `1 v/ i. X% z! [8 W- Y
- (T nil)1 P, U: M; l# R6 D& t1 J# {
- )( G* z- I" P# u+ F
- ), l7 d9 M/ K: C/ F, f2 b# W
- 6 m0 D7 w; P# F% I8 ^: A( X+ a) p4 [, R
- ;;0 j! x& s5 d' V, `
- ;; Modify VIEWPORT* |. y! Q2 ?4 A# h3 e5 k: {% I
- ;;
( H8 ~ \: X7 S# I - 0 M5 U7 \' k, l3 D4 d
- (defun ddvport ()3 \( ^ h6 A3 |
- (if (not (new_dialog "ddvport" dcl_id)) (exit))+ U1 M, y! ~) u; V# f
- (set_tile_props)7 s* ` `! o, z
- (set_tile_handle)
+ @! h' B3 h5 ]) W1 H - (setq vpt (cdr (assoc 10 elist)))
% G M z2 [. z- g$ P# m- U9 a - (set_tile "xtext" (rtos (setq x1 (car vpt))))) U1 {( _; k) h# X' N% O/ a
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))8 V0 l2 ]: p7 E/ q
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
+ W6 l0 O: N: {+ Y: b - (setq wid (cdr (assoc 40 elist)))
/ u7 t* \) V% F4 r1 s2 t - (set_tile "wid" (rtos wid))
# g' N8 A5 H, m6 Z2 d$ G2 t& T - (setq hght (cdr (assoc 41 elist)))* o' l' Y! n: f
- (set_tile "hght" (rtos hght))
3 ^$ C1 i; a" i9 }1 l% a - (setq vpid (cdr (assoc 69 elist)))& T* m& x& K/ Z4 e! W: U
- (set_tile "vpid" (itoa vpid))
; Y6 g: r3 u5 K3 U9 K - (setq on-off (cdr (assoc 68 elist)))$ D( f6 [7 @0 `0 k! N; K
- (cond1 v5 M: R$ n* G$ f( p
- ((= on-off 0) (set_tile "on-off" "OFF"))$ X; z7 y2 U: C- V3 u
- ((> on-off 0) (set_tile "on-off" "ON and Active"))' q- a: A! J( |% T" Z. \; r I
- (T (set_tile "on-off" "ON and Inactive"))
% ~* a7 i6 q$ H) } - ): v$ [) y9 M/ e, g3 B2 c
- 5 [% M8 J* W+ j2 U0 [4 Y$ `
- ;; Define action for tiles' t+ [3 y/ l- h/ F& ]3 u
- (set_action_tiles)
3 _ p" [3 m+ c- e - # V/ H/ w& i' E" ~
- (setq dialog-state (start_dialog))
% y, _' c+ k3 [1 z( l" a - (if (= dialog-state 0)
7 \0 ^1 G) U: N+ h F* K - (reset)
! w" f' Q/ N2 }* _! e - )2 {9 t* P7 H- e% h4 \
- (if (= dialog-state 1)
: b6 ^; V4 V$ g4 Y - (progn* C6 }$ @+ ^/ z+ Q! u0 q
- (if (= ecolor 0) (setq ecolor "BYBLOCK"))$ W7 k9 Q: u% W/ t- ?1 n
- (if (= ecolor 256) (setq ecolor "BYLAYER"))
/ [& U% S7 j- \. q4 s: L - (command "_.chprop" ename ""2 ?+ R. G7 O* r( x! E3 O
- "_la" elayer+ T E# Q: N5 c8 n2 [0 C5 V
- "_c" ecolor ""9 ^8 s" O9 L3 T
- )
/ N2 g6 }. n9 u - ): N, x4 E0 s& P d# y/ @
- )
3 h8 r5 v, ~' I; @2 Q' @. r* _' r* O - )
) D$ n2 o4 D5 G; s - ;;
8 v! Z8 ]7 ]3 K9 f/ H4 N [. _; P! s - ;; Modify POLYLINE
# ^4 e% H" Z# e- O0 K$ c - ;;
) R2 T' s; Y2 [3 |" {# c: ~, Y - (defun modify_polyline ()
* I, L4 X1 C7 G9 H - (modify_properties) O3 H I, t" Y
- (if (= ltgen "1")+ U5 ~- W. Z* j# X. i
- (if (/= (logand bit70 128) 128)
2 | ^' Q$ E4 v# x - (setq bit70 (+ bit70 128)) X% Q+ o, @" z1 j& |
- )
' a+ E; w9 \" z4 Y/ B( o1 i - )
) A6 J) B b- @9 k: A/ t - (if (= ltgen "0")" l2 n4 T ~" G2 e; q! ^
- (if (= (logand bit70 128) 128). y0 q2 A0 C% p( V9 h: z
- (setq bit70 (- bit70 128))
" P r* d1 I# H8 Z - )' I) B" b7 u' e- ]1 N4 l$ H9 C
- ); O7 K: L0 ]9 ?6 W0 _# ^' j. q
- (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))
% k% u- A3 L3 B* V, L - (entmod elist)
5 B+ s6 j$ M- | - ;; Added to take care of updating Vertex information for color3 b; N& u, O/ \$ u& S
- ;; and linetype.
( ~: [2 \5 {, v( }! P; F* ^4 r - (setq save-ename ename save-elist elist). |% R) q( W* P/ G4 k5 T3 B, _0 r
- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")4 d v: p t# A5 C6 v
- (progn
, E' V" ?$ N" g7 h; { \ - (emod ecolor 62)
$ i# m# r7 o# _5 L! Y6 B - (emod eltype 6)
6 i+ L$ w6 r8 h6 z. H5 U* S% n - (emod eltscale 48)
( o, h6 O2 L# o! W7 s+ }* d - (entmod elist)( a# W4 C" T& v, m) C- H/ b
- )" R4 `5 Y3 D& \( p7 c! h# f; @
- (progn5 W0 v H# {5 t
- (setq ename (entnext save-ename))
) y( [* B- D+ _% s - (setq elist (entget ename))
) _7 Y0 A( i6 f3 m8 V* q
1 J) J- r+ H* Y9 y4 |- (while (not (= (cdr (assoc 0 elist)) "SEQEND"))" S) v1 x, v0 x6 f: N
- (emod ecolor 62); D2 H/ x; X5 K1 }7 B7 u i
- (emod eltype 6)
+ ?/ Y/ X& o. {1 U8 F( e2 { - (emod eltscale 48); b- { {! D3 ~" {6 P
- (entmod elist)! P6 t; I+ t& ?; A
- (setq ename (entnext ename))
/ x. c( S2 T/ [( W' C3 h - (setq elist (entget ename))
8 ]$ J2 x7 A" n$ C/ b - ) S- G; s! Z2 u8 P" q
- )0 Q$ m/ ?0 q/ W/ t, q6 {3 E
- )8 t3 i; l+ D% C: l0 M: M
- ;; Update the SEQEND
" n& ?8 Y1 l a5 T - (if (= (cdr (assoc 0 elist)) "SEQEND")5 a+ V1 C& a9 j' w
- (progn; t, P/ S6 n& w
- (emod ecolor 62)
9 X! t# X' B# a/ o - (emod eltype 6)) V6 y* `/ k# f5 Q# |1 X2 B
- (emod eltscale 48)! d! h* \2 [( J& n" W
- (entmod elist)" J' b6 E7 o" ?0 r! }$ u# x
- )! D& {+ j% M+ U+ U8 S& Q
- )6 K- L) K, v, e) }0 w5 l9 U5 _
- ;; Go back to header.
" ?( x/ R% k; I9 C/ o$ i3 } - (setq ename save-ename elist save-elist)6 U7 l5 J9 w7 A5 C; ^1 c& _
- , ^" K2 \5 h6 ]- z/ c
- (entupd ename) b+ x7 ]# N9 ` p- u! N( ?% P, l, A* p
- )
0 N5 K7 p y4 H9 I C
' I6 R; ~9 q# {1 `9 k- ;; Increment vertex. Set tile values to next vertex
! Z5 ^$ y Y0 Y/ b8 Q2 z: y" q" o - ;;
8 j# a8 C! B* R3 Q" | - (defun next_vertex ()
$ V" w# P/ }9 ` - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
* C4 d8 z$ m! n S! D& v - (progn: Z. l5 f3 f4 r. |$ ~
- ;; If the counter reaches the number of vertices,
4 g1 X0 s" a1 i - ;; roll it over to zero again.
! T! \. C0 [7 R) l! [: c J - (if (= ctr (cdr (assoc 90 vlist)))( u: H0 t4 s6 u1 ^" D
- (setq ctr 0)
/ s9 J3 _/ w3 O3 t8 f9 B - )
/ T9 o1 D' o' l# t5 y - (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
8 _2 I& }0 P$ [( T - (set_tile_vpt pointype): C& u1 ~, z! w! A% i
- )
|5 J" { r- q6 J w2 P; t - (progn
3 M* a( l3 k5 d; _ - (setq vname (entnext vname))0 @3 j( u3 k* I
- (setq vlist (entget vname))% F. z; ^, @2 f" I9 ?( z3 o
- (if (= (cdr (assoc 0 vlist)) "VERTEX")4 x" t% @( F9 P" P$ R; v/ X+ @
- (progn3 g; Y) p6 r4 ?8 C! a
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
0 H: z9 p4 C7 L - (set_tile_vpt pointype)
; P) |2 f3 x Z( m/ \/ `- Y3 {# f0 ~ - )
# ^- `" d7 M8 G& o% Y+ Y$ B7 f - (progn; p2 _9 u3 W: W! q! ~" L4 Y7 x% |
- (setq vname (entnext ename))2 g) {( }- ? e* u6 m9 d( E& b2 c# p5 g
- (setq vlist (entget vname))1 V0 q8 P: g7 X1 } w# V
- (set_tile_vpt pointype)
% a4 N% C$ ~3 x- O k& R - (set_tile "ctr" (itoa (setq ctr 1)))/ Z$ ^& b) t# K* x$ L B
- )) ^: O ?" A3 o3 ~
- )! x0 [0 r2 H( g: d8 \# q1 t
- )
( z5 s2 y) Z5 J8 u. V2 U - )4 z3 l }' W9 C, Q0 O, A
- )6 B3 ]. i9 [' E- W" G+ q
+ z6 Q" f0 v2 B( C- (defun ddpline (/ oldecho)8 U3 o; ~' z9 [- G2 o3 a
- (if (not (new_dialog "ddpline" dcl_id)) (exit))
6 ]- V* ^( p4 S6 |8 ~& q, f$ {! L - (set_tile_props)7 U4 W" V9 \' {% v8 p1 O B
- (set_tile_handle)4 F, H+ q: ?" i f
- (setq bit70 (cdr (assoc 70 elist)))) z5 D- X5 P' T, N; c/ {% D1 F
- (setq bit75 (cdr (assoc 75 elist)))# a7 c% f; m' b
- (cond
' l2 Q0 K+ Q) }) V# [/ | - ((= (logand bit70 8) 8) ; 3DPOLY
) X2 p4 G" K& |6 K7 _ - (set_tile "ptype" (setq pltype "3D polyline"))
0 T2 Y6 T9 a: a- t# L- ?" `$ S$ R - (setq pointype 0) ; WCS or ECS point values9 y B7 T+ t- X* h, y; l- d% ~9 C7 I, U7 c
- (mode_tile "fit" 1)
! b, a) J! K% ]7 l# F; z - (mode_tile "mesh" 1)
+ O2 c1 e& a; ^/ o' @6 c" `+ U - (mode_tile "bezier" 1): J# F* L* p' ^
- (mode_tile "ltgen" 1)
& U# M. u" h/ `3 x! l - (set_tile "none" "1")
7 H, _4 g% ` n' | - (set_tile_closed) W; f5 }3 ?3 u+ g. f9 W
- (set_tile_fitsmooth)9 s$ l. g, X) }1 H3 C
- )) O3 U p$ T' O6 B
- ((= (logand bit70 16) 16) ; 3DMESH0 A+ J: P- ~; `) Q* ~* c/ q+ Z) Z
- (set_tile "ptype" (setq pltype "3D mesh"))& f2 v8 k0 b0 f. {$ a
- (setq pointype 0)
" D6 j Y, H% j* Y, |0 g: `) u8 c - (mode_tile "pline" 1)) P" ?5 |& k' E; X/ T
- (mode_tile "fit" 1)
/ H" z6 R- v3 p) A. X) L! C+ E9 j - (mode_tile "ltgen" 1)
* |! E) X( r) d; ^- `% r - (setq m (1- (cdr (assoc 71 elist))))
& t! f7 j4 e5 L$ k8 T - (setq n (1-(cdr (assoc 72 elist))))
3 \3 A# L1 f* c3 [! c' S - (setq u (1- (cdr (assoc 73 elist))))$ M8 y* l) A; K8 r" N, V; J( r
- (if (< u 0) (setq u 0))3 @" O* S3 Y+ y' u/ p
- (setq v (1- (cdr (assoc 74 elist))))
% y, t' E- D |- v% |9 `9 e - (if (< v 0) (setq v 0))
/ W+ V4 f" `5 q4 ^ - (set_tile "m" (itoa m))2 a. J1 ?3 Y+ t
- (set_tile "n" (itoa n))
5 A6 S. p5 ^2 X3 ` - (set_tile "u" (itoa u))
. q* K8 E% ]4 Y% h6 L4 v+ P$ N5 u - (set_tile "v" (itoa v))! @/ p* W& K9 @6 n
- (set_tile_closed)" d( l1 C4 x7 v+ L9 O7 ?1 A
- (set_tile_fitsmooth)
2 B+ _3 ]8 V, |8 K1 m, B/ c - )
# G2 o5 B! C" _# S/ c& x$ t - ((= (logand bit70 64) 64) ; POLYFACE MESH! V6 G1 u1 x$ y* _' h+ k5 p P
- (set_tile "ptype" (setq pltype "Polyface mesh"))% X! @, z# C' c8 J C: }: v
- (setq pointype 0)4 ~* ^- t) O: e1 g! H& K) f' r
- (mode_tile "f-s" 1)
2 p# t* w+ h8 k$ A5 J - (mode_tile "mesh" 1)6 ]6 q" P% K' o
- (mode_tile "pline" 1)7 z' w8 R# |: n* ^ v- H" i8 p
- )
. p. `! } t5 h5 n3 | - (T ; 2D POLYLINE
. u I0 d8 l: Z# L& J# c' \ - (set_tile "ptype" (setq pltype "2D polyline"))8 w/ O' E( J1 ]! k* }+ d
- (setq pointype 1). j- s7 \! x( s3 P5 A2 r
- (mode_tile "bezier" 1)1 b4 |; d1 |* q; b* r- a) ^
- (mode_tile "mesh" 1), U: l) C" S9 S* P
- (if (= (logand bit70 128) 128)
! B1 v" q: `$ X; W- K7 Z8 e. t - (set_tile "ltgen" (setq ltgen "1"))& W2 X: A6 t6 q9 t5 B- a3 o3 s
- )6 u: ~8 i3 ] y( Q: A
- (set_tile_closed)8 Q& Q0 w3 S$ v4 {* \4 e9 @/ [
- (set_tile_fitsmooth)
6 {6 v8 q" X# D - )7 C" B- A& ?7 Y$ k
- )
5 @! s5 `7 ]7 H
5 f5 X' {' W) \# e% F0 N0 Y- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
9 p) w0 p |7 F/ N1 W v f - (progn/ R4 I: P2 ^: T9 R
- (if (not next) (setq vname ename))! ?4 @* b# x/ C1 v! @
- (setq next T)! g8 A* ]. P' ]: j
- (set_tile "ctr" (itoa (setq ctr 1)))3 W6 _# f g' N7 M
- (setq vlist (entget ename))
$ J* }& ]. b& y- y' ]& y - )/ @( G" q& s8 ~
- (progn; [% W' Q0 v0 C0 }
- (if (not next) (setq vname (entnext ename)))3 G" `- K! p& j! K1 P0 x6 c' _
- (setq next T)+ C$ h9 P$ h+ {4 u V
- (set_tile "ctr" (itoa (setq ctr 1)))
' Q% p' D; [" _1 D: l - (setq vlist (entget vname))$ u9 I2 m' V5 b u) `: b
- )
! q# H4 X. ?8 j; J- q - )
+ V+ U8 H. q1 ]! r& Z$ q1 F - (set_tile_vpt pointype)
4 ^/ J9 R9 c: U9 O+ U6 w8 X! |( E - ;; Define action for tiles
) _ V5 L7 n2 S - (set_action_tiles)6 c1 d6 t- y' h: d5 b+ C6 l
- (setq dialog-state (start_dialog))0 q" E; ]" c% Q; z
- - M6 e0 s$ F5 D7 f" C
- (if (= dialog-state 0) `2 s1 A% F1 J4 N5 {8 g: Q
- (reset)5 t: C7 s: m4 f8 `( |0 c+ L
- )# T$ n& b, ]) ]8 m [
- (if (= dialog-state 1)
' W9 ?7 Q. k. h( P - (progn
2 }/ U$ Q! ?! P4 _, |8 F - (modify_polyline)
5 g9 I; o9 K2 M- B; t X/ D - (if (or (= pltype "2D polyline")
* M' n# Z; |9 y - (= pltype "3D polyline")* `; ?' q5 o; @$ O3 Q6 g
- )
* I( S4 ] x+ D$ a) @, W) U9 ?5 O - (progn- W0 s& ]+ R$ G9 S; p( o
- (command "_.pedit" ename)
: T% L& h* t0 z% F2 f - (if (= spltype 0) (command "_d"))
; F7 J5 Q/ t& U2 H$ j+ x& O - (if (= spltype 1) (command "_f"))& D0 b# D& a: E$ ^" m7 H2 @1 @
- (if (or (= spltype 5)0 R$ I$ H* t( _
- (= spltype 6)
8 i0 v+ x) D' S! M5 F Y' E2 N - )7 K- q9 @. w3 ]; |9 h" I7 O
- (progn% s3 @9 F: ]& [) U& S
- (setvar "splinetype" spltype)1 q5 O" j9 |' F- F
- (command "_s")$ y# M+ B( G8 i- D# U9 a$ {
- )2 l9 \" \: b! J K C" U
- )
5 `7 r# g" O$ I0 B: [- i8 A) S8 F5 T - (if (= closed "0")' x4 o- A; m Z8 G8 P# B2 Z
- (command "_o")
2 m. N: i" t9 j. a - (command "_c")
- G8 k/ J9 t; [# Q" D - )* o! T9 f0 c P0 E. b
- (command "")) y+ T$ j- u- z# c
- 0 h' Y3 y; s! f+ u& ]
- (if (= spltype 0)% ~! M8 d5 X) \; n0 w( T
- (progn; k6 b- f' j' }$ H# |) {
- (setq oldecho (getvar "cmdecho"))
1 f& u/ X& U* R, f0 }% o$ j - (command "_cmdecho" 0)4 J. b1 m! J7 Y
- (command "_convertpoly" "_light" ename "")
7 L4 x, S5 d1 i2 U. `$ Z - (command "_cmdecho" oldecho)0 O7 v; M8 t% ^
- )% L( Z* z+ ~7 n. U& i. p7 W* ?; j
- )" Y- ]0 T5 P% h% C
- )
5 H3 d4 ?/ M1 u w6 c/ o - )! y* U9 g/ @/ ]+ b2 C' X
- (if (= pltype "3D mesh") r) l/ K' X, T9 ^! l( a
- (progn/ u& D% ] a/ t
- (command "_.pedit" ename)
* Y' w9 O! ^ p: S, O - (if (= spltype 0) (command "_d"))
& ]- ?: D! R- ^: p - (if (or (= spltype 5) m8 Y0 Q% D' N4 W- P. t( R& c
- (= spltype 6)2 J1 _ D% \9 X8 l- Y
- (= spltype 8)8 s4 h U7 f- h/ ]" ^
- ). J; ^# t6 w! F" M( `. D$ B ~
- (progn
) \( y! y- v$ r ~3 L' q' x - (setvar "surftype" spltype)! k2 P# _8 O( T
- (setvar "surfu" u)+ ^ p+ c- h ^+ P' G" Y% q+ a( i
- (setvar "surfv" v)
6 H3 `. M$ a/ R9 U8 k0 g - (command "_s")$ G% q5 }; B \7 Z) d/ T1 e7 y5 B3 |7 k0 c
- )6 O+ c$ G5 T4 l1 Z
- )
/ p2 l9 U. M0 D2 ^0 e7 W! W4 A - (if (/= closedm old-closedm), i: S% e; F. p
- (command "_m")
" a" G0 J1 U" m4 C - )7 |" Z0 w7 @/ R/ r, Z4 v# z
- (if (/= closedn old-closedn)5 Z# Q# S* L2 R* I0 m
- (command "_n")
2 n& w2 [ h5 j1 I% M1 M - )
8 W9 Y0 l" k# O# S - (command "")
( k* Y: ~7 _" A3 S! q% S# H; J - )
: o) i& r+ C# I: [ - )- x; h- e3 B* v" x" K
- )
! P& ~2 T4 D6 Y5 q7 o - )1 d+ N; l$ L0 T' ] s
- )4 }* _4 c# t2 P/ H) {* Y
- ;;$ ~3 m/ H! @7 @0 {# {0 |' m
- ;; All the spline data is contained in a single elist. We must do some: F" u& Q- R3 ^0 P
- ;; tricky list processing to loop through the elist in order to display" @8 ?6 ?8 ]1 f. S* i3 g4 d; w
- ;; all of the control points.5 T3 P, h# x" K. M- v7 q
- ;;
! E7 E8 l$ h( T6 i5 r, R - ;; The structure of the elist is different for rational and non-rational1 O6 ?0 U0 K1 G& a% O+ x* s' Y
- ;; splines. Therefore, we check the rational spline flag.
3 u3 }/ d7 ?2 \ - ;;+ L7 p0 o+ O- ], c% n
- (defun next_cntl_pt ()
& w5 X, f8 P+ Q1 q7 b4 m. l6 B - (setq elem-no 0) ;; elem-no = element counter
( ~2 D6 f% y# ?; j - (if (= first-10-time 1) ;; If first time, find location of first# E- w9 _! G: o
- (foreach list_item elist ;; cntl point element in elist
% }3 Q- ?+ z$ I% }- I# y - (progn- O3 J' G( j0 E7 Z
- (setq elem-no (+ 1 elem-no))/ o, A% I/ G( A$ P
- (if (= (car list_item) 10)
" L J: W7 E& h3 W- D/ L& i+ }5 s1 d - (progn
! d. t! Y# x) k( I& t0 C! R4 d - (if (= first-10-time 1)
$ V, R) Y0 Q+ r# n! Z - (progn
0 h' h: @1 u; ^9 ~2 K+ q% C& L - (setq first-10-rec (- elem-no 1))! v/ Z/ O' I* x) B$ W& ?+ r
- (setq first-10-time 0)% r5 M! V' p0 p2 N6 t, ]. d
- (if (= rational_spl_flag 1) ;; if rational! u+ q+ W! t, e! Z5 C
- (setq cur-10-rec (+ elem-no 1))
/ m% G- b& ?3 M$ p* r, d - (setq cur-10-rec elem-no)
# x2 l% ^2 G: _" u: X' n. X g( L( E) C - )
, I2 H/ k& c) a5 C g. r1 a4 ~ - )
6 b" W6 C# v& F4 q - )
& W: w7 \" |9 y V% ^4 e( f - )
3 q8 D, _( K+ @7 S4 f, J* ]6 k0 F6 c - )
9 `" C; |( A `/ b% ]+ S - )
/ @0 S# u. J2 L8 f a" {0 Z - )4 L6 u4 Z5 }8 T5 ?1 C
- )1 l+ H( _2 \! J* k ^% ]7 y
- ;; Now we know the location of the first "10" record; it's stored+ Y; u+ S# T+ Y; a
- ;; in first-10-rec. The first 10 record was already displayed when
( v! F8 P+ q' h$ G, j) b7 X4 v - ;; the dialog first came up so let's display the second one when8 y5 ~& o. d' U) `. J3 U
- ;; the user presses the "next" button (the first time through)./ |% r& T) U9 [/ J! H8 I& v' x- M( \- j
- ;;2 q) t% F5 p3 t' J, R" p
- (setq temprec (nth cur-10-rec elist))# x. x: _' c4 P E! Q9 ^; @
- ;;1 E- l* Q7 h* d2 H" h
- (if (= (car temprec) 10) ;; if 10 record
! i) d9 I! {, O$ ] - (progn- O3 q ~9 g0 H2 r* E% U: Z
- (if (= rational_spl_flag 1) ;; if rational spline7 @: U% |4 U) D" I% d( ~1 U
- (progn) y+ V! Q' k' G! [* I
- (setq tempweight (nth (+ cur-10-rec 1) elist))
9 G1 R3 _* J1 x& J9 z - (setq cur-10-rec (+ 2 cur-10-rec))) ^# g, ?5 C6 }5 @7 T7 [; C
- )
6 D* ]8 F0 { U2 I8 D - (progn ;; else
+ Q9 [ z$ J2 O - (setq cur-10-rec (+ 1 cur-10-rec))
* a' V4 q* V' r+ l - )
; l( I# `: x0 G3 Y- z+ g - )8 b3 i+ v; C' \8 Y& ^" H4 |! _
- ) ;; end if rational spline* V- o; c$ O9 O' C2 `
- (progn ;; else reset counters
1 E- Z( I1 ?7 j3 @ - (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec& |1 ^& I! z, _. G# N- X) y Z% N
- (setq tempweight (nth (+ first-10-rec 1) elist))3 N$ x! {, S5 L( b, q( S
- (setq cntl-pt-indicator 0)
5 C) `, q6 ^2 Z$ I& ^( e4 Q - (if (= rational_spl_flag 1) ;; if rational
4 O/ a8 M, d' Y8 h& z5 @ - (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec
; C: l( E1 ^* Y0 b - (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec$ ^, N! X J3 V% E
- )
1 l+ Z; F5 i) s% V# O/ k" i - )
+ Y: B! L( S2 c- e6 Q8 r/ q1 A - ) ;; end if 10 record; V* V4 D2 I+ L1 \
- + N7 m- f4 ?1 h8 I
- ;; Display cntl point, weight and ctr. Increment ctr.& J7 w# z/ G; k
- (setq cntl-pt (cdr temprec))' z+ x& q9 Y/ r) B. r. f
- (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))" ~; S: [6 O% c7 m+ N2 E- x
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))9 c& }, R$ K6 C! d0 o( c, m
- (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))
) q, i! l1 n& v+ }; [- @ - (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))# I/ W3 V# e( l7 U# h
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))% V' C1 B) w4 M" z: Y$ s
- (if (= rational_spl_flag 1) ;; if rational
' \; Q6 f! I% ?. X - (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght
; ]5 q% Z' R$ {0 j( \ n( M6 } - (mode_tile "weight_text" 1) ;; disable wght8 i. B9 s+ n4 m& ?0 g' F. j% T- @
- )
, r8 H" N" A5 s* a - )
2 p' X+ y6 F& R# {2 G/ d - ;;) v% b" K5 K& e7 a* P2 J! |5 Z
- ;; All the spline info is contained in a single elist. We must do some
! K/ D' `" R* A$ @ U - ;; tricky list processing to loop through the elist in order to display7 [2 @+ G3 k$ X9 t3 h o7 W
- ;; all of the user data points.
8 R# n4 @& }! S, n - ;;. _2 H& ` x0 ~! K; q; P. v) U
- (defun next_data_pt ()
2 {- P* G' {( P" ]# s, m - (setq elem-no 0) ;; elem-no = element counter
3 K; H0 Z; `8 f - (if (= first-11-time 1) ;; If first time, find location of first3 `4 j/ P9 h% \4 B m
- (foreach list_item elist ;; data point element in elist, ^+ Q: q) t* M& |- @, `
- (progn
( j' f6 q. U% m6 Y5 T- L1 Y+ Y - (setq elem-no (+ 1 elem-no))( \7 t! f8 \1 |: i, Y2 R
- (if (= (car list_item) 11). [2 z( u r+ l6 i5 G
- (progn
+ @# @ ~4 U, e+ X - (if (= first-11-time 1)
' X M4 k/ S# K! ] G - (progn
: l6 T( U9 F+ v - (setq first-11-rec (- elem-no 1))
& w' q9 _0 I0 O2 _. [4 Z2 n - (setq cur-11-rec elem-no)3 F x# y; O0 e, f: l' Y5 q: K% F
- (setq first-11-time 0)
. R3 ?: r5 C% t0 Z/ e - )
9 q5 N/ C: h9 R2 g - )& H0 v" P7 }. C1 ^! Q
- )
- X$ S6 Q$ z; b4 z - )
' e: B* y w' E( i2 r6 Z - )9 M/ ]/ S" I$ ~9 x* M; ?
- )
. m3 {& w. l1 r) |, @; ^ - )9 ]0 n$ E- z$ N+ I$ q3 o4 E' N
- (setq temprec (nth cur-11-rec elist))# f+ C7 _9 ?8 u8 O2 ?& G
- ;; If it's not a DXF "11" element then we've gone past the last1 }6 Q% _0 q5 ^* t( Z$ V& b! L
- ;; "11" element. Go back to first "11" element. Reset counters.
) ]8 J$ R% s) o9 m - (if (= (car temprec) 11)7 j% D! i9 F/ O3 U
- (setq data-pt (cdr temprec))
: P, a/ C# y a k3 }) p q5 L - (progn ;; else
0 b9 i' q) ~9 B) y! K" T( [ _ - (setq data-pt (cdr (nth first-11-rec elist)))
4 H4 l% g9 u1 i$ l0 Z - (setq cur-11-rec first-11-rec)
0 W! S6 e/ I. J5 j% S) a - (setq data-pt-indicator 0)
% m* L' g7 W, @4 Z - )
1 h& r# H- [; K \$ z3 X. ] - )' W8 \, E6 ~( Q: J( I$ h
- ;; Display data point and ctr. Increment counters.
( D+ d4 ^ {* l% |7 f3 [ - (set_tile "dxtext" (rtos (setq x1 (car data-pt))))
( Y5 k5 h$ E+ i3 U; A) r" u - (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))& P* ~' Y+ }5 n6 C0 i
- (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
8 ~+ P# w. l% `: C; L/ J4 s - (setq data-pt-indicator (+ 1 data-pt-indicator))" V0 e# ~/ h: I
- (set_tile "data_ctr" (itoa data-pt-indicator))
8 g: u) [( X: _" q9 Q5 N$ v - (setq cur-11-rec (+ 1 cur-11-rec))/ e" R& m0 m- ^& m
- )
& ~8 }$ d. G+ `8 ~ - ;;
1 L% V) {7 \. i! F$ n B - ;; Modify SPLINE' M0 T, R6 S2 V: P9 B& G
- ;;9 U% b1 L' W8 y q- U& i- _
- (defun modify_spline ()3 \: ^5 C W% j; d, F/ R/ `/ i5 P
- (modify_prop_geom)
, f' D7 y# B" z+ Y) U5 l) |3 |+ u; I - (entmod elist)
. c4 F% V5 E$ I$ w" | - )
9 l v+ {/ E4 K& E4 ]7 }: c& I# P - # x+ i9 F' u0 E- p1 ~9 R
- (defun ddspline ()
2 g0 V1 g. Z7 n ]" ? - (if (not (new_dialog "ddspline" dcl_id)) (exit)), y$ _7 `) Q1 b4 M- J
- (set_tile_props)
4 o! d7 m- S- m+ D# N - (set_tile_handle)+ G; q# C$ d% q; l3 _+ Z
- (set_tile_spline_props)
% d* n+ L; E, A2 ` B9 p" I - ;; Display first control point( R5 h' k! t2 {2 O1 K% a1 z0 C% Z
- (set_tile_cntl_pt)9 M' T% d; D( Z
- ;; Display first data point
) Q& q9 Y# U) r! r, F - (set_tile_data_pt)
0 W1 n2 [) \/ d2 G: [2 `
2 Z8 w: E2 v3 c5 E& {3 d- ;; Initialize flags to indicate first time through the dialog.( n9 j+ ~5 } c4 K
- ;; For control points and user data points the "next" buttons8 F2 T0 O7 m7 j, W: r
- ;; in the dialog call the appropriate functions.
: s/ H+ U* B2 S/ \ - (setq first-10-time 1)+ _6 b( N0 l# ^9 d; b) r/ W
- (setq first-11-time 1)
+ T' p! j4 P6 ?* p0 v% J3 h - ;; initialize control point number counter
: [6 _% w5 k5 ?3 S - (setq cntl-pt-indicator 1), z! g4 o& X0 R8 {6 k! ?
- (setq data-pt-indicator 1)- _. c3 P6 y, H2 P) b; E$ B
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
7 c& }& [% P+ K; E' g& i - (set_tile "data_ctr" (itoa data-pt-indicator))
) P+ @; h% ^5 l3 N3 r1 h) o - (set_action_tiles)5 I4 Z t* j1 g; C5 \
- (setq dialog-state (start_dialog))" I. _4 H2 }" |1 x# D" e
- % m4 r( @9 T1 B7 q( P0 S) _
- (if (= dialog-state 0)
% j/ D% I; F6 l7 Q6 z; l7 H+ Q - (reset)6 @. |: W* }$ b; W
- )' N; q2 ]( ^7 R
- (if (= dialog-state 1)
* y* ~% f; u: b S0 _. O7 [ A9 g - (modify_spline)
( k, c$ `1 Z6 V1 G# H - )) l7 N7 N1 ^( ~2 i% d
- )0 E% N3 h% O4 P# C2 |, h6 @
- / f: Q1 O+ a# ]
- ;;
\( m9 |1 K/ E) V; Z2 }9 {. Y - ;; Modify DIMENSION
* [' v1 k! t7 q | - ;;
) p# P! o9 F4 ^- Q5 Z: S [( \ - (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl) M# o2 i+ y; T z4 C" V/ b
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
+ j% u2 u; m8 R; n9 R9 ]' } E - dimtype dimsvcurset)
# ~0 I/ e Y- t - (setq dimtype "DDIMEN"
6 Y. ^7 e1 d- b+ G$ i$ L4 I. k - dimsvcurset (ddimen_dimsty_restore)
9 ^ h! Q& R) C! Q& ?1 n$ ~ - )! O, u% N' X' C5 ]1 a/ q0 g
- (if (not (new_dialog "ddimen" dcl_id)) (exit))
& ]8 Y/ y: ~' }4 z7 y# R - (set_tile_props): M9 W2 |+ q3 J2 f% y6 i
- (set_dimen_props)
6 K K g, D2 f G) `# h - (setq dimtext (cdr (assoc 1 elist)))
* P$ F# U% A7 T& {! B" T7 |( y - (set_tile "t_string" (if (= "" dimtext) "<>" dimtext))* T+ b; \' x( W6 u
- (set_tile_handle)
% H: `8 ], u& m! p5 y - ;; Define action for tiles
, s( v1 l% C7 `* u - (set_action_tiles)
( ]; z; u7 E: i! E! j) `' I - ) q4 I/ b9 l7 e
- ;; Set initial focus to text edit box.$ Q6 V& `$ Q- j6 h" v9 W
- (mode_tile "t_string" 2)/ g0 o; Y! E- w
3 w/ M- ~! u; A; @# a- (setq dialog-state (start_dialog))4 M# a- u L" C
- (if (= dialog-state 0)7 X- g# @4 ]. S( W2 j/ r
- (if (= ddimmt 1)5 c8 d ?) b8 ?1 ]: k
- (reset)
( t6 u" P% J6 \: W8 D2 F: ^ - )
* [3 I, w( w. X, K4 o* o3 q9 A - )7 b4 P, O% _ B
- (if (= dialog-state 1)
* {5 U( p4 @# G - (progn1 m9 O! q3 a' h3 |' w/ y0 [
- (if (/= dimsty stname); @/ L K) s# h9 j0 f' g: d0 v6 M
- (progn/ n W# I! G. K2 O% I' N
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case/ |4 G4 _8 ~* j& s
- ; doesn't have it.
' u8 M ]' ]! p# B+ m; B9 W1 I - (if (null (assoc 3 elist))
9 I6 T, V% t5 ]/ _ - (setq elist (append elist (list (cons 3 dimsty))))' R! [2 ` L# Q# M% Z) W) }
- ; else just replace it.8 Q L+ |- C, I$ p! ^
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))' P1 o K2 K; V3 B
- )/ `1 s5 V- S0 q8 i& G8 f* Q
- ; refresh sv_dvlist with new dimstyle.4 l" ]- o+ H# l- p
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))& C# K# ~$ Z8 i8 U9 G; W9 v
- )
4 D5 I5 K8 l/ V( `3 P - )0 {3 C# y5 E& J4 W3 F* R# z1 E
- (if (not (null dimlist)) ; attempted to change dimvars
) A' n" G; c7 o7 @1 T) F - (ddimen_complist sv_dvlist dimlist dimtbl)
6 i! e' x/ b" t$ k J - )
4 R$ c- p* m1 S( e6 F6 P/ d0 F - ; Modify dimension text
( R4 l$ N2 X4 t, N4 @' z - (if (/= dimtext text)+ Z3 F' H3 c8 c) c
- (progn( m' Z: i8 a" Z6 n+ B
- (setq dimtext (if (= text "<>") "" text)): ?9 N8 x) f: j2 t( l, ]* _; l! c! V
- (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
0 z' E" ], X4 I0 M N - )' m4 ~1 I# G0 R! T U) j
- )
) |, F, L6 Q5 |/ [- l - (modify_properties)
' c9 o3 c& |1 b6 i- O" L - (entmod elist)7 V' q/ h2 X# f2 o+ Q
- )
9 g$ Q+ i4 _! |1 U; d - )8 T9 d* e, M* |/ A/ L5 L. _( p' B
- (if (= dialog-state 4)
9 Q R" `/ ^4 D8 Q - (progn
3 r. [5 W4 }2 y. W: _# q( W q9 a - (setq ddimmt 1)
! ~" I% \' B. a- E# z2 Y2 A5 P4 c2 \ - (if (/= dimsty stname)7 G( n" B) G' R7 ^5 o( \
- (progn- ~0 y+ `: ^$ q
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
0 B" V5 g$ v) O. r d6 g0 k - ; doesn't have it.
2 b1 q. D/ E6 h6 y9 A! U, N - (if (null (assoc 3 elist))
?2 T- j2 k- j, y0 Z% Q `2 i% w# F - (setq elist (append elist (list (cons 3 dimsty))))
" l* J; b! p# p! `1 ^- E - ; else just replace it.
; f: g* z3 x' x' | Y - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))% B2 k3 d5 m; J. b: V" x- }
- )) |+ f6 k; [3 F; R9 ]: k! s
- ; refresh sv_dvlist with new dimstyle.' F0 n3 Y+ e9 m" X
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))! N! l1 |$ O! U) i1 F0 V" X
- )
5 M6 o( F* O U: n0 I; ^9 v' p - )% K; D1 o% l/ `% j& u- i& q2 S# T
- (if (not (null dimlist)) ; attempted to change dimvars
. ^7 N! U5 M$ E0 ^6 A, O% P - (ddimen_complist sv_dvlist dimlist dimtbl)
& K {3 a$ p D( u9 q0 i - )
( |6 r1 r* R! H1 }% S3 } - ; Modify dimension text1 D, ~% W& m& @% w% C' E5 S
- (if (/= dimtext text)
3 Y1 A+ n. @* F - (progn
. E5 B9 o' ?% F" ~3 H - (setq dimtext (if (= text "<>") "" text))
+ N5 R) k# A1 @+ z1 P - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
! v% Y1 C; W3 @3 q" G1 G5 P( ] - )
2 U7 l9 k$ O- s- r: D4 e1 L - )
# j7 M) Q) g7 h% Z+ ^ - (modify_properties)
& H8 m& d8 _4 V6 } - (entmod elist)) O- B/ }* ]7 x. D" a* I2 E# }
- (safe_ddedit ename)
6 G& a& t l# x5 r+ n' w - (setq elist (entget ename))3 R- g' |3 S: [/ x- v5 l8 |
- (ddimen)
5 y7 R: @: |, J% D1 I5 ~! G& y! t2 T - )# R& v4 @1 M0 y' ]9 ~, \; ]
- )
/ _5 s3 x$ r& h% D - (ddimen_setvars dimsvcurset) ; Prepare to exit1 W# `- i5 J1 i: h5 A
- ) ?7 m. E2 i$ D# J
- . l [. P# t+ W% n3 W9 G0 \
- ;;
4 Y- ^4 r/ I% e - ;; Modify TOLERANCE. i2 B7 m! t6 [+ F h$ `8 {7 h
- ;;9 `( A. ~/ N" a' h$ q" }. e
- (defun ddtolerance (/ a stname n dimtbl
0 x. D+ P" h# ]9 B0 H5 H - dimsty dimlist dimovr sv_dvlist stlist dimtype
2 z: d$ O9 Q% b/ s$ C - dimsvcurset)
$ p" A$ h: q1 }( S- i - (setq dimtype "DDTOLERANCE"
: ~, I' `% \" s, p, _ - dimsvcurset (ddimen_dimsty_restore)& @9 \! E; t' N$ v% X! M% ]( D
- )
4 _2 o" u+ Y8 ^ H+ i3 r6 O) J - (if (not (new_dialog "ddtolerance" dcl_id)) (exit)), ~5 {8 Z4 m/ C' ?
- (set_tile_props)
. m: _. U9 k7 V0 o" D: T6 C1 P, B - (set_dimen_props)
1 m2 y' Q& M1 V7 |; Y - (set_tile_handle)
2 C+ o8 g' m* \" m. G3 T - (set_action_tiles)
6 b+ I# W& i+ d& ]# ?3 X - (setq dialog-state (start_dialog))# m" R0 |. S; J
- (if (= dialog-state 0)2 H% e/ N6 s+ \% F/ z5 I" V
- (if (= ddimmt 1)
8 S7 o, t b# Z( Q! y& W - (reset)
- u0 t/ y! J5 i0 ^9 Z/ x - )5 {' |' |; ~2 m
- )) g; H! @0 a& z3 a3 v! q0 m
- (if (= dialog-state 1)9 \$ q9 P' F7 w
- (progn
# Q2 g9 r; w9 a# E3 V5 A - (if (/= dimsty stname)
+ N6 e' Q7 @" d$ X4 @& U% q$ j3 c - (progn
0 }9 n3 u+ \- _ - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case( m8 X0 d9 ]- u* L$ G
- ; doesn't have it.
% F/ [; v) g- t$ X( @+ J - (if (null (assoc 3 elist))
) [; I7 E% z H1 @& k8 K$ D - (setq elist (append elist (list (cons 3 dimsty))))/ x$ f2 q1 H& f. Q$ R
- ; else just replace it., j, l$ z; d) q% b
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist)). ]4 z2 u3 i( O3 z
- )
) u4 D% p7 m/ J; j$ d' M& ]3 i - ; refresh sv_dvlist with new dimstyle.
% m7 N) \1 }& o1 r# Q; J6 s" e' f - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
! G. i, i) \ M- p2 l/ P4 ~; x - )
" `, P" ^2 s* _ M0 U! B - )
* z" h5 f5 ^ E8 ^1 T' j$ u - (if (not (null dimlist)) ; attempted to change dimvars
9 ^" T5 a9 {+ d } - (ddimen_complist sv_dvlist dimlist dimtbl)& Z+ v. Z( L1 P' w9 s4 R6 i$ ?
- )0 t- F8 o* i) }0 J
- (modify_prop_geom)( w _/ h& y( s3 N
- (entmod elist)
& _2 ~' I3 W8 Q7 n - )
5 n5 ^% p4 W$ S# _3 E - ): s; a F4 C/ b+ m: r1 \; F. u. L
- (if (= dialog-state 4)
_% @9 H3 ~1 | - (progn
. O% W* T, h n: B5 u1 u4 n% y2 @ ` - (setq ddimmt 1)
7 @4 U* [9 ]" ^ - (if (/= dimsty stname)
2 T1 A, p" l$ A; w) T u - (progn v" S- O- d# P- |9 W
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
F2 Z9 W+ k; Q# F+ ~6 ^ - ; doesn't have it. D9 Q9 s/ _0 E. `8 p: J' h
- (if (null (assoc 3 elist))4 _$ f; b$ a" q( ^# U
- (setq elist (append elist (list (cons 3 dimsty))))6 `! E5 t7 |8 b1 x; r) L$ n/ s! G
- ; else just replace it.
0 @ C' H. u/ \) o - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))) ?+ ^8 f% h* P) L6 c+ _
- )
/ W! [9 ?; p) N% r+ A - ; refresh sv_dvlist with new dimstyle.
/ A+ x1 }( [. e& h& R, H9 z6 G. x& J - (setq sv_dvlist (tblsearch "dimstyle" dimsty))1 [- z$ q' j, K. `
- )9 v& K" O6 h, Y# _+ a
- )) \4 L$ `5 I p/ Y. S; T$ }1 q
- (if (not (null dimlist)) ; attempted to change dimvars |- R) V5 c' q
- (ddimen_complist sv_dvlist dimlist dimtbl)
" h3 v2 `" Z% l - )
$ N, p$ a' ?; R - (modify_properties)
; H; P4 w: h# B8 T/ t - (entmod elist)2 Y1 Q |0 ?4 x- G' V4 I8 }$ T
- (safe_ddedit ename)
# p) e0 W8 o& U# U2 U - (setq elist (entget ename))
# ^3 C, P7 M7 b# G# m; T) n - (ddtolerance): [& Q0 |3 K, ?( Q6 G
- )
$ Z* w9 O. y( r6 n - )
$ j- D/ _2 `" F" K' n - (ddimen_setvars dimsvcurset) ; Prepare to exit
' ?7 R6 s, l* u9 I) _9 w& n3 T+ e - ). B$ a& y* A B3 r4 V2 k* b
- 1 }, j1 Q4 g- v3 q
- ;;
2 {# L( J ]* s- a: W - ;; ddimen_dlg - jump to ADS ddim module5 g9 f& V/ R3 T! ?3 m
- ;;9 U: q: w! [. W
( _9 T) u5 @! d2 H/ p% u- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)
/ c! l# ~. @0 J' o+ e* v9 X - 1 ?8 ?+ Z3 Y5 Q
- ; Jump to DDIM with overrides if any.4 H) b/ @0 f+ g
- (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry
& O& P0 B5 y8 w3 s9 e* \* S - ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format
2 Z: k! z: `, O( N* I" w - ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation: Z8 _4 R+ @6 p7 T* ?2 Y
- )! _& c/ S! q' P: U& r
- )) J, }& H; j- E' x$ O9 b
" s1 _7 X" r( Y& D5 d- ;; w# _6 k4 p1 M/ B- ]2 D
- ;; Dimension variables updated are stored as overrides.
5 r! e$ J' i7 Z+ t0 m$ _" k p - ;;$ `/ R! k$ T" v- F
- 0 D) T. F& k k1 B
- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar
* {9 W) V0 [' @ - dv dime commandIssued)
; {: c4 U4 _- n8 I3 k9 q/ ~4 Y q - * r$ f: ~" ~3 q& u- M0 x4 N
- ; Here we skip the following first three items:& E' N& w! E7 X$ [* k
- ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0)
* n& X6 A/ C* d( w( M C - ;
8 {8 F0 Z) r0 s - ; The list comparison immediately begins with dimvar.+ Y+ z- W1 x$ `: L9 j8 Z8 N
- ;
6 X7 X) \, V4 h6 F. C R" Q - ; dimolist - original states of dimvars
$ I |4 v5 ~( i* y5 S$ \& `. Z - ; dimnlist - new dimvar list which is of the resbuf's! R% w9 L! j% N! H6 t/ q% }5 ~
- ; dime - entity name for the dimension; }7 K% _: [+ x! P% c* ~) [
- ; odvar - value of dimvar for the dimolist
7 t' P# e% p3 r8 z1 C% J% ` Q - ; ndvar - value of dimvar for the dimnlist
) l4 Z3 @: X5 r0 M5 w - & G7 w; a6 v# O3 P
- (setq i 3
m, O+ u2 L* ^: k# V% | - dime (cdr (assoc -1 elist))* [ o, h% Z$ n2 Z$ p
- ); M, a: \$ J1 D
- (while (setq odvar (cdr (nth i dimolist)))
, l# s+ `( J$ K2 k" N; D - (progn
2 M7 D. Z+ i- B4 S. B - (setq ndvar (cdr (nth i dimnlist)))5 V: |+ q. O: v d" i4 _3 X
- (setq dv (nth i dimtbl))$ O: ?; w, ~$ q. U, }9 q+ ^
- (if (eq dv "dimtxsty"). g- u5 v; [' e. }$ O
- (setq odvar (cdr (assoc 2 (entget odvar)))
) O% r; c& A; K8 n - ndvar (cdr (assoc 2 (entget ndvar)))
. S; g' N$ k# J8 B; ?, y% h - )* {' t: E% m/ L- C) C2 o: E; o- q
- )' J9 f4 A) h- k, I" p- a. S3 {
- - _+ p9 j' K' h, d
- ;
3 D! p' L% r) v: L$ g$ }2 u% Q" F* r - ; In order for DIMOVERRRIDE to operate correctly with string
1 P3 D4 g j. s' Z; u8 ^9 b - ; based dimvars, we must pass "." versus NULL strings.8 S- y# V2 e& m- [$ A
- ; In this case ndvar is the new dimvar value the user wishes; A/ }9 M, y- h6 r+ B+ K& h) z7 W ~
- ; to update on selected dimensions.
+ l9 L2 U" G7 ~+ f - ;1 w) r: F, I `% ?/ X5 F
- (if (/= ndvar odvar)2 i8 l$ Q& Y( s9 `: z1 ?
- (if (= 'STR (type ndvar))
9 s( n, s! }% I( n - (if (= ndvar "")
* c* C- \0 r, g; M3 x' X+ n/ U - (setq ndvar "."))))
1 v: {* C4 S N% }: c
2 U( p% k; v" G. E- (if (/= ndvar odvar)7 {3 S0 L4 c% Q6 C f M
- (progn8 t2 W' ]/ J' A9 ^1 @7 x( Y
- (setq dv (strcat "_" dv))
+ ~7 q8 u+ s0 ~* m7 ~ - ;, U$ d) C: S/ k3 P) s- @7 e
- ; Start the dimoverride command
7 ^7 D# N/ {* k/ y - ;+ t( c3 ^: X K( `1 o+ O4 v
- (if (not commandIssued)* t g5 K0 E2 } _
- (progn
3 J, H# }3 ^0 w4 {) q9 Z2 J3 A - (command "_.dimoverride")8 Q& \) L! E4 u4 f5 j
- (setq commandIssued "T")) ~# R+ t' c' r
- )
; F; a$ a$ G+ o9 L: Y - )& X5 M2 p8 J2 M, |3 H9 E! t) B
- ;# O& A$ t) Z: Y! K7 N
- ; Issue dim overrides
# w7 p( I) C r - ;8 M/ J+ G( ]0 `$ m* Q6 E
- (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre"))
; ~. G0 d% f; \7 y7 p5 {+ x - (or (= ndvar 0) (= ndvar 256))2 D2 ^; I; V0 Y1 m S4 \: K
- )# y& X( m( f5 l3 D1 {9 a
- (progn
, l+ J" G9 x/ Y$ A/ D# U* z - (if (= 0 ndvar) (command dv "BYBLOCK"))
1 J; i7 D9 p0 o3 l4 t9 w8 {* E2 ] - (if (= 256 ndvar) (command dv "BYLAYER"))
( R [, q( d0 Z/ c* V - )
$ t# k: Q+ ~& A+ g8 K0 d( F - (command dv ndvar)
+ `7 _+ d$ d u* b0 X) t( { - )
9 R S9 ?. T$ V9 N6 a! ] C - )
/ }8 K# @: Z+ \% n% R2 f - )
. Z6 Z0 t7 m. r, ~ - (setq i (1+ i))9 r6 v! N' A2 s9 |* e& M/ L* ~0 A
- )
* j) J$ ^# J" C* ` - )
* K% `2 i6 _ m - ;, C, \; P+ u9 I! G/ e# K) x: e
- ; Select Entity and terminate command7 z! e! e1 i$ B0 t, H: E9 r
- ;
/ \: H5 |2 A9 G - (if commandIssued
7 W5 x9 n+ e- w9 s. r) K, D - (command "" dime "")1 Q) }* P- L8 u z6 V# V b" |' Y0 t
- )6 S! T' ?" ?4 h4 P& q6 ?+ n
- ): ]; p8 {" Z) W# T: G' S/ g6 Q/ a) T
- ; i! {/ W/ x& v+ H& H# u
- ;;6 e! ]. R# A w5 [( c* H% k
- ;; Get style name currently selected style name.) j# x* `9 V( z+ R, D, Y
- ;;
) G' P0 \0 u8 h$ N5 h
' X/ Z) q6 o, F# x+ I( A O- (defun ddimen_style (/ dimsty)& c4 L: o t- z6 s. A1 N: s8 x+ c
- (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)! t* l( {+ ~" ]/ {
- dimlist (ddimen_getdimvars dimsty)' K/ H" J7 X. _7 `8 k
- )8 T" I1 J* y! g2 e
- dimsty w, {1 @/ p5 m
- )$ ^ e' y2 [9 g6 s' Z
$ o# x( ~' ~1 b: l! o- ;;* V8 B2 X' d/ i% y: H9 t8 W
- ;; Set dimvars
, q* k6 O. H4 |! F% n1 F - ;;. x& x2 a. n, m: d( f
- (defun ddimen_setvars (dimsvcurset / dv i)
' r2 z8 {1 f6 ?3 N7 F' c0 { - (setq dv (cdr (nth 1 dimsvcurset)))
' Y/ M* A& _* N# x5 z% h - (command "_.dimstyle" "" dv)2 [: }! t; A% Q1 t
- (setq i 3)# R$ ~+ @, ]8 j6 @8 p# g3 R9 q! V
- (while (setq dv (nth i dimsvcurset))
* @- r/ _0 t1 ?" C- C - (progn) Q! d3 Y. f, R- p1 E
- (setvar (car dv) (cdr dv)): E! V, E$ r9 H
- (setq i (1+ i))3 \$ @9 {6 p+ m, T. [+ j
- )
1 l$ G& N9 ~4 d1 g" s - )
, h- }6 l( _0 V; h/ }5 |' G - )
! t: S7 N$ F" L5 e% t - ;;
! L3 A$ W0 O8 h' p - ;; End-of-dimension
7 [3 ~2 n2 W, ~1 |( {6 W7 i$ A - ;; ==================/ A: u) B$ R: J, }
+ e$ g Z: v# D; ~4 Y3 ]9 q7 F- ;;
& P8 K7 f/ B& ]% a @ - ;; Sub-dialogues for properties. Common to all object dialogues
6 j. w6 a: E& y5 u: ~/ I$ _9 X- |1 i; t - ;;- Y+ V* T, u. M- D
- ;; This function pops a dialogue box consisting of a list box,image tile, and
+ {% B( a5 D4 v7 e - ;; edit box to allow the user to select or type a color number. It returns3 x: C: a9 n0 z1 z
- ;; the color number selected.
0 k& O6 V% o# G3 F: _( G - (defun getcolor (/ old-idx colorno cname lay_clr)8 }8 N" S; T' P6 \
- (if (= (get_tile "error") "")
9 U' m% q* A2 C9 M) ]" Z6 h - (progn
) f4 a: P5 B7 p6 h/ t( X - ;; Get the color associated with this object's layer, for use
[! Z i6 W1 b) G. i% e* N - ;; in the color swatch if the user selects color BYLAYER.
+ @2 C% Q! p; f: p - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))$ J0 }+ b/ r* P" Z+ L' K# U
- (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr))) _) | W+ z' ?1 X, o9 B
- (progn
. k( O7 W$ K! u: [ - (setq ecolor temp_color)
# n) P0 ^" R2 f. ]7 L) z g1 ? - (setcolor)- ?7 S. z9 ?2 y) C1 f5 o
- )8 P6 D* V1 T* d t1 V( a- U6 Y- g
- (setq testcolor temp_color)
2 m9 _: s9 O# B% C* G6 r5 W - )
* x+ R9 r+ p: i3 D- ] - )
( u0 Q/ X* }7 C- K/ {0 U4 h; _6 z - )3 m4 ?" N* k; Y8 Z* `
- ecolor
) P" w! X% ~& Z, m8 c - )
2 s/ |7 w/ P; x) m - ;;2 V, w6 o& M8 q6 w. ^ X* c/ Z
- ;; Function to set the color tiles.9 {6 G& h0 k/ y3 X# @
- (defun setcolor()
" H# o( }. {" ~. z6 T2 _ - (cond
" c* U- @! T! d; V - ((= 0 ecolor); |; h5 l( r+ c: k& U9 o6 ?$ ?
- (set_tile "t_color" "BYBLOCK")
9 W+ s3 ]* ~+ H* W - (col_tile "show_image" 7 nil) ; show BYBLOCK as white/ G( O& e5 V0 h) x0 D$ N8 r2 T
- )/ p# j2 t$ F$ W8 \8 \) V0 U# J5 F6 @
- ((= 1 ecolor)4 W7 Y* N2 U0 U9 P
- (set_tile "t_color" "1 red")2 I4 E! J; M; \. _4 @) z+ h5 b. x
- (col_tile "show_image" 1 nil)- F$ p: ^# ]! ^+ g- H
- )2 b, k- H' [; K/ O0 ^4 s
- ((= 2 ecolor)( x8 Y* E' x1 S3 Q5 y0 C+ E
- (set_tile "t_color" "2 yellow")8 k `3 O2 m1 c/ `
- (col_tile "show_image" 2 nil)+ V/ }" Z* `' T8 T$ r
- )
; j8 ~) `' W, h: I1 }1 \& W - ((= 3 ecolor), m% l& V: k/ Q, ~" V( q3 j
- (set_tile "t_color" "3 green")" \% k. F/ a- t" I S
- (col_tile "show_image" 3 nil)3 A$ x# ~% |1 d2 K. y
- )3 Q4 Y( m* c! H5 a% G9 |
- ((= 4 ecolor)5 S; z: Q5 x* j/ V
- (set_tile "t_color" "4 cyan")
7 U; h4 l* b& H - (col_tile "show_image" 4 nil)2 B: H- C/ Y5 |, j: L/ o
- )9 C: F- [! f! w1 z7 y4 @/ I
- ((= 5 ecolor)
% P1 ]0 `/ ~' i) E1 S+ S - (set_tile "t_color" "5 blue")# ~( L1 Y# S: W; ?. o
- (col_tile "show_image" 5 nil)
% F. b( J# l; N, \7 e8 J- Z - )" W7 [3 W' k" {7 J3 h
- ((= 6 ecolor)
: w9 [4 D y& W+ }0 b7 Y - (set_tile "t_color" "6 magenta")
3 p4 j; K# U1 Z. E% N9 v - (col_tile "show_image" 6 nil)
4 z9 p- K! D+ a$ N! o; A' q* G - )
' x* Z; E% z- g% }- g - ((= 7 ecolor)! g; a9 t, q7 y* O' ?1 Q% m
- (set_tile "t_color" "7 white")5 j" K7 X0 b8 ^6 v
- (col_tile "show_image" 7 nil)
+ x4 q! {6 p1 Y$ `. g# u - )! S4 E5 z# c9 f+ q+ V ]7 k
- ((= 256 ecolor)# v( N% R3 n7 x( H
- (set_tile "t_color" "BYLAYER")
, v- b, `. T h$ R - (col_tile "show_image" (bylayer_col) nil)
" C+ u7 C0 a( P9 t - )$ I, R' L- u/ H: J8 i
- (T8 ^6 o+ V& g1 A9 F+ o3 Y$ l
- (set_tile "t_color" (itoa ecolor))
; p% m! J' V& }* m/ Z - (col_tile "show_image" ecolor nil)3 X \9 m% X6 `' S$ Q
- )
4 f# {$ x% Q! e- E# m4 u" v - )
h3 [0 B, B. j i, ?" C8 n6 N* O - )
; u& a! c6 e! |. l' ? - ;;6 G& ]" ^' |0 e% n* X1 R
- ;; This function pops a dialogue box consisting of a list box, image tile, and4 E) S5 _6 `4 K5 M! o& {: I6 M
- ;; edit box to allow the user to select or type a linetype. It returns the2 @, @" O$ `4 i/ T% h+ P; Y: D
- ;; linetype selected.- m# c* `( P0 T# V- `8 D
- ;;
3 d& `) g" u+ b1 [9 [2 }$ \* o - (defun getltype (/ old-idx ltname)- \/ K* l& S2 S- T9 B% r
- (if (not lt-idx)3 I* X& s" G* ]$ F/ z* h( L
- (progn' d, G. p( j+ l
- (make_lt_lists) ; linetype lists - ltnmlst, mdashlist
7 o: `3 v. e( q$ n; ~ - (cond; l6 R1 H- b3 x/ b5 m% p: P
- ((= eltype "BYLAYER")" n+ F: Q6 Y* I: w
- (setq lt-idx (getindex "BYLAYER" ltnmlst)))
: I0 |3 y* E1 r1 D4 t% _- k! t4 B0 V - ((= eltype "BYBLOCK")
* B. v" L# S2 I1 z9 A - (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
0 z" ]# m4 d, ?+ m: g - (T (setq lt-idx (getindex eltype ltnmlst)))) Z# z- p+ ?6 z6 V% Q
- )
9 B' p5 K; I& G6 a, F6 t T - )- @' Q; t: K9 p: `, ?1 `
- ); t1 z6 r4 C7 w6 `- U7 [7 \
- ) \' m: B; k0 o5 c4 n
- (if (= (get_tile "error") ""). ?2 _' j+ {7 H2 Z
- (progn: R7 J& K) g9 f' t& ` [! G
- (if (not (new_dialog "setltype" dcl_id)) (exit))
+ Q, z& A4 y; X; f" z! b2 L m - (start_list "list_lt")+ N2 `! b# I; A5 N& Z: Q+ h. X9 i
- (mapcar 'add_list ltnmlst) ; initialize list box
8 K4 U; ?" s" s% f - (end_list)6 j, S9 {# e( y5 W# d$ q1 ?( A' J" A
- (setq old-idx lt-idx)
, J; k1 C* X$ I! Q - (ltlist_act (itoa lt-idx))
( C1 g7 S1 L% O! D. z8 o$ C. E - 0 Q8 i# j" ?1 D9 R7 F R5 c% l. v
- (action_tile "list_lt" "(ltlist_act $value)")9 o/ O' C0 W1 q
- (action_tile "edit_lt" "(ltedit_act $value)")
% [! n5 j# E {1 Y* k - (action_tile "accept" "(test_ok)")
, j0 X6 c2 I9 K5 T - (action_tile "cancel" "(reset_lt)"); G( C; G: v! H: Q( y4 c* m
4 h! v2 z9 W, K' b- (if (= (start_dialog) 1) ; User pressed OK
% _( R! G+ W* D' ^4 |; k4 o - (cond
# E' q3 \, d9 B: x! k$ @4 U. _ - ((= lt-idx 0)" y- l( ^" F% A6 F$ o& A
- (set_tile "t_ltype" (bylayer_lt))
3 E5 h- y7 \! l' [9 p - "BYLAYER"
; i+ Z( F7 X) b+ f. }6 e) ^: r - )
2 P2 |' M1 y" v) P6 r - ((= lt-idx 1)
; ^' G8 Y2 \/ [" f. y - (set_tile "t_ltype" "BYBLOCK")) [2 H6 \1 U2 j2 ~6 @
- "BYBLOCK"/ P- i7 G! C( v- y/ Z
- )
7 J2 A$ B9 W$ P$ m8 F - (T (set_tile "t_ltype" ltname) ltname)( f/ g4 G, x7 Q, i# W0 q9 l- X
- )
% n$ A% t6 H# N) ?0 w+ N* n! H - eltype6 ?3 l0 k; z$ ^' H% u3 u
- )3 L. x6 Y0 y$ K- e* ~7 w- h
- )
4 v9 x2 R' ]6 w' w - eltype$ E; v7 O" s0 ?* |! |( N5 T
- )( _4 H d2 s9 h+ x+ V
- )
( I; C8 V% Q f! ^. e6 Z - ;;7 L: [/ o5 a& O$ h
- ;; Edit box entries end up here
+ u2 e# ]8 r3 G1 Z( h h* Q - (defun ltedit_act (ltvalue)0 q3 C& Z/ [- {; b5 K0 P
- (setq ltvalue (xstrcase ltvalue))
& P8 [& n/ B5 j; B - (if (or (= ltvalue "BYLAYER")
! t" `+ N7 ]& N, A- i* }9 m5 g - (= ltvalue "BY LAYER"))2 [1 P8 p, d2 u& @3 O6 |2 K- x; d
- (setq ltvalue "BYLAYER")
9 {' i9 a5 g) z - )6 Z+ |9 x& J0 B" ~
- (if (or (= ltvalue "BYBLOCK")8 ^8 @9 \8 T) h4 @
- (= ltvalue "BY BLOCK"))- i- q& C3 t# b* }6 \, Z& t% `
- (setq ltvalue "BYBLOCK")
& l4 {* h, w% B1 t; f - )
: j9 ^7 `. X g) ]7 K9 Q - (if (setq lt-idx (getindex ltvalue ltnmlst))
4 k! V" [. E2 T. Y! P k- {$ E - (progn
9 u# c( ~% P( k1 i: T8 K8 d - (set_tile "error" ""), [- a( p4 x9 h$ d
- (ltlist_act (itoa lt-idx))
7 D* T8 n0 l `8 Z1 } - )
7 L- V O6 Q- g$ E7 W$ K+ l, a. C - (progn
1 @# |5 V( E+ F- Y X - (set_tile "error" "Invalid linetype.")0 Q+ o# b- [2 m+ w% ^, i: H6 X0 h% P
- (setq lt-idx old-idx)
) u7 [% d# w9 m5 A6 q - ;; (mode_tile "edit_lt" 2)+ h' N+ L- t8 f- Q( V
- ;; (mode_tile "edit_lt" 3)$ D. [ D8 B( N+ l0 I- N! v
- )0 D2 t8 u( A. M- }. S% D
- )
( h$ ^& d- m# W0 Q - )
8 |8 S- t. H* w' ^1 H - ;;
& x, {/ G# E5 ]/ k7 e - ;; List selections end up here. Update the list box, edit box, and color; Q" M+ v# M; W! F- a, w, Q3 X8 l
- ;; tile.
' j9 [# l, w' j. _3 i/ X( B - ;;
- q9 T) y9 x( l: H! e. d - (defun ltlist_act (index / dashdata)5 `5 F+ l) t1 O0 |" v. Y1 L
- (set_tile "error" "")
, U3 z$ U$ M$ e: Z - (setq lt-idx (atoi index))
5 E0 h. [' w* [ - (setq ltname (nth lt-idx ltnmlst))
# t2 R9 R7 T# P- A' ~; x" j - (setq dashdata (nth lt-idx mdashlist))$ C, s* j, F2 O
- (col_tile "show_image" 0 dashdata), {5 g7 \+ g$ f. z! u% B) t
- (set_tile "list_lt" (itoa lt-idx))
: N8 X* @0 H& N4 x' g. Q6 q. j - (set_tile "edit_lt" ltname); X( y, E: `9 ], r+ n5 @
- )
; q; f; E, {9 s/ {8 Z% W4 D- e1 ? - ;;6 {8 p% Y, ]% s1 b7 R8 D! U: G
- ;; Reset to original linetype when cancel it selected! D" }9 Z. w( j
- ;;; y8 e/ N- f { w7 u
- (defun reset_lt ()
8 S: }, F/ t1 d7 S( @3 I - (setq lt-idx old-idx)
; W; {. D6 C+ T9 Q- | - (done_dialog 0)4 w3 t( v& c# j; @
- )
9 K& D: v, s1 U$ H$ c: R! @ - ;;. {3 @8 f+ z8 ~0 Z) _
- ;; This function pops a dialogue box consisting of a list box,image tile, and1 _% ^. d* m9 {2 R" _
- ;; edit box to allow the user to select or type a layer name. It returns the, L" }& m+ u& `- T8 M- I8 X8 Q
- ;; layer name selected. It also has a button to find the status (On, Off,
8 @/ z; F7 ^ W+ J3 X7 X6 s2 a' w4 M - ;; Frozen, etc.) of any layer selected.0 L8 o4 a; @7 T
- ;;
7 }8 V8 y' C! ^. [, P5 {! | - (defun getlayer (/ old-idx layname on off frozth linetype), l; G7 d8 d5 g( d* {
- ;; Create layer list the first time the layer
" l/ ]( s N# k$ P( ]0 ` - ;; dialogue is called.
$ j: I$ {' ^5 X5 s - (if (not lay-idx)
8 S x6 S' b+ k - (progn
5 A# T0 O" [1 @# b$ W8 Y1 D, A - (make_lay_lists)
2 i O7 p0 G1 F* l j - (setq lay-idx (getindex elayer laynmlst))- i. w5 r$ V' F! }6 {, u& X/ }
- )
' v, L% e+ ^- |7 E/ N9 J - )! @. m! f! n6 @" {$ h1 d: E
, C, X0 p5 Z9 L1 h# U- (if (= (get_tile "error") "")
; F7 x0 E5 q, M: w2 r; } - (progn
/ F9 E. b5 i. L. B* M& b# h! D0 @ - (if (not (new_dialog "setlayer" dcl_id)) (exit))
7 G8 h- g7 h0 h4 ~- T - (set_tile "cur_layer" (getvar "clayer"))1 v$ u8 e2 J8 x) f: a+ I: z
- (start_list "list_lay")
- e5 D$ ~8 h! Z! Z - (mapcar 'add_list laynmlst) ; initialize list box _" D8 f3 T) b+ S& S
- (end_list)
+ Z, i- C# a b+ E8 B - (setq old-idx lay-idx)
" r) a1 G# J" K, P - (laylist_act (itoa lay-idx))/ K# z X, r0 Q# g. N8 c
- (action_tile "list_lay" "(laylist_act $value)")
+ c5 h3 g' e0 `# ^1 \ - (action_tile "edit_lay" "(layedit_act $value)")! q8 m3 Q6 @& s# G8 B* `! ^
- (action_tile "accept" "(test_ok)")9 m) u/ B! O- K1 K8 o
- (action_tile "cancel" "(reset_lay)")/ S, O5 L: x$ r2 i
- (if (= (start_dialog) 1) ; User pressed OK
& C' M- Z) J8 p$ P/ b2 V - (progn
/ }, F/ a. R _0 x; y9 Q - (set_tile "t_layer" layname)
5 C+ U, Q9 v8 S - (setq elayer layname)2 C W* G M! T) c
- ;; If layer equals bylayer reset color tile
6 p2 G! O$ H: E+ F - (if (= ecolor 256)
3 U) V" q! W$ O# A" m0 \ - (col_tile "show_image" (bylayer_col) nil)
) d# I' ?' C& S' ?7 y - )
& z0 X' l% T0 [+ ]7 A! s - layname! R) g' Q6 J' d2 W# W- c# A5 X. S
- )
& \ ^# Q. E8 \8 p# @' V8 p- ] - elayer
0 Z4 m) B! w/ a y# a - )
0 p' z- R0 r! W% \* M3 v - )/ o2 ]% j8 x; b, w( c
- elayer3 `( h+ n3 u# m4 x9 r# Z
- )5 D6 k* H5 R6 [% Q4 I* d$ Q
- )( t3 \) [8 ^$ [' j# @) y0 B5 @
- ;;
5 \4 n# ^" h) t$ R* M* d - ;; Edit box selections end up here. Convert layer entry to upper case. If
D; I% N7 j, x8 t' l - ;; layer name is valid, clear error string, call (laylist_act) function.
+ M! I* ~8 V( | - ;; Else print error message.
$ X" p6 k0 ]! j, I" c, H0 } - ;;
8 c3 R* b/ V2 |' }9 d! J - (defun layedit_act (layvalue)
! T) k$ i& ~3 j3 |; H, t - (setq layvalue (xstrcase layvalue))' \8 H# V0 X% e# y) ^( G
- (if (setq lay-idx (getindex layvalue laynmlst))0 E+ {: A' {, e
- (progn
8 u4 r$ ^ w$ ?' L$ [) B* k - (set_tile "error" "")
" @' A+ K, y1 f1 V5 c - (laylist_act (itoa lay-idx))& z& s, z7 _* k
- )3 d8 i* t5 z0 n/ x$ _- V" z
- (progn
; A* T2 R7 J' f) t8 q7 R8 g( h; U - (set_tile "error" "Invalid layer name.")- o) O! l5 [$ Y# G/ q2 C6 O
- ;; (mode_tile "edit_lay" 2)
& c9 h# l& t0 g' {. K9 D+ k - ;; (mode_tile "edit_lay" 3)# d3 Y$ Z' k0 ~0 t! t
- (setq lay-idx old-idx): S t) ?. b& d
- )
3 H9 @6 {( n! | - )
) C) { Z; v1 c; K# U. r - ), K# c* ^0 I5 J" p
- ;;* ]9 X" P! B8 k' ?6 V9 n
- ;; List entry selections end up here.
# ^) N9 B9 C6 p4 J - ;;
2 q) V+ q& r7 h1 `4 A - (defun laylist_act (index / layinfo color dashdata)
I `- g+ Z+ x7 ?- L - ;; Update the list box, edit box, and color tile.' ?2 X; k8 B' h3 c* ]8 l
- (set_tile "error" "")0 x- J- S/ P: ^" f3 X
- (setq lay-idx (atoi index))
. p( ~9 Q/ p0 S1 {1 [- b6 w6 W - (setq layname (nth lay-idx laynmlst))2 F' Q# G. C* f9 X
- (setq layinfo (tblsearch "layer" layname))
* Z0 K9 U# F5 f! R$ g - (setq color (cdr (assoc 62 layinfo)))
9 Q- R; m2 _. ~) J) `8 b - (setq color (abs color))- c, O/ j5 j+ I( o! ^! S% X
- (setq colname (colorname color))( L+ \( o! o3 E' e' Q
- (set_tile "list_lay" (itoa lay-idx)): k2 J( H M a' @9 X" x
- (set_tile "edit_lay" layname)
* T5 x, g6 @: D& v- |5 O* [ X - )
3 \( q( C5 k' g7 o$ X1 Z9 { ~ - ;;( ^ |) s6 J0 O3 @2 g
- ;; Reset to original layer when cancel is selected.
! m7 c$ N) C: |+ e/ {0 o0 x - ;;6 c( o) B- E. \' Y' b& V) u
- (defun reset_lay ()
- `9 W+ z/ U# D; q - (setq lay-idx old-idx)* o$ r( R* u1 Z/ H e- h' I+ C
- (done_dialog 0)
. |1 k8 S1 G6 l5 H0 P$ @ - )6 u | P( z4 C9 z* B& B# g7 f/ z. `
- ;;
6 C" V4 T `' G+ A1 e+ K7 T - ;; Checks validity of thickness from edit box.
+ Z" a) @% u, g2 R - (defun getthickness (value). ] ]# k9 \" ~8 I2 z$ R1 c
- (setq ethickness (verify_d "eb_thickness" value ethickness))! n* m( S- V/ l
- )
' i& G$ t; c; ^ - ;;) ~9 |) {1 [" d8 x
- ;; Copy of (getthickness) for ltscale. If more, make this function
. [' R; C' r# p" c) W+ ? - ;; generic.
& g% d. u/ c1 d% o1 d - (defun getltscale (value)
- C z& @/ Q6 T9 ? - (setq eltscale (verify_d "eb_ltscale" value eltscale))& V; R- J! z+ h; c* L2 W# `
- )0 z. i9 J3 H2 K ~: a; Y' U
- ;;* \" S+ N# R3 \! C. H. ~
- ;; This function makes a list called laynmlst which consists of all the layer5 z7 |0 A2 F9 N3 G$ B. g+ h
- ;; names in the drawing. It also creates a list called longlist which
, H/ O# v3 K# w0 X - ;; consists of strings which contain the layer name, color, linetype, etc.
9 j/ u) [! c1 u1 n0 x - ;; Longlist is later mapped into the layer listbox. Both are ordered the
8 O" \: C: n9 p( R# B2 ?1 P4 N - ;; same.
5 s2 w" B$ }; e7 w3 h/ d$ [/ \8 n( w - ;;
# f/ _: n1 @& h$ l - (defun make_lay_lists (/ layname sortlist name templist layer_number)" F1 |9 p6 X* [3 _" |. U
- (setq sortlist nil)
+ p7 X8 E0 U8 k6 H) c9 M' p- [ - (setq templist (tblnext "LAYER" T))
+ w o `& X) n5 V4 w( e" k - (setq layer_number 1); \0 \/ q/ A9 n- J k% V3 y
- (while templist
L! B( Z7 `4 r( \! A0 |4 } - ;; No xref dependent layers, please.+ z# I9 i" v+ R; w D
- (if (/= (logand 16 (cdr (assoc 70 templist))) 16)! @: m. d$ y9 ~0 X
- (progn- w) ]2 W" [5 E; Q3 c1 E
- (setq name (cdr (assoc 2 templist)))% a) J7 d% y6 d; R! ^
- (setq sortlist (cons name sortlist))
& p! m4 A3 ^" x! B6 v - )9 n2 e/ K5 z! n' Y3 g
- )
% C1 ~" R! i$ [* \% i' p5 a - ; Get the next layer.
. u0 Y- F$ m0 U" I1 Z) }2 T - (setq templist (tblnext "LAYER"))' g+ W0 S# |4 P+ b8 L4 F
- ;; Not dead message...
) c8 n. F0 v) i3 e7 V1 O3 C9 Y - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))
6 L7 j! ~$ a: {3 T - (set_tile "error" (strcat "Collecting..." (itoa layer_number)))+ g" M7 Q) f. X
- )
& p; q* q& H+ ^/ ]8 N3 w - (setq layer_number (1+ layer_number))9 v) }. v7 X/ m3 _2 j' Q
- )( `' G5 m/ t$ P4 \% Y
- (set_tile "error" "")% r0 X! X, [+ R6 s" \9 @( R8 a+ p
- (if (>= (getvar "maxsort") (length sortlist))
2 ?9 W, i+ i3 h8 U - (progn' H5 ]; ~) h: e0 n
- (if (> layer_number 50)
; |& E! ~- S% w8 O) N - (set_tile "error" "Sorting...")
9 t) |0 q$ I/ R$ ?. K1 l' O# ]; ^ - )+ Q1 H9 @8 ^% W
- (setq sortlist (acad_strlsort sortlist))' D% H0 z& m$ D0 C1 m$ p
- )4 X. f; K0 J$ w1 f' U9 F# Y
- (setq sortlist (reverse sortlist))* j" ]- ^( r* R0 A
- )0 c. l/ h9 w$ i3 e& e
- (set_tile "error" "")
, A9 H0 t9 }! D: m& _6 w - (setq laynmlst sortlist) A" p* d1 I5 X1 M; o7 d
- )
$ E& H7 w, K# K/ A - ;;
) x" k0 ~5 f, W4 E* s - ;; This function makes 2 list - ltnmlst & mdashlist.
5 T1 b, Q; }) g8 l, @% J$ p - ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist
+ E2 q2 ] m: Y! c - ;; is list consisting of lists which define the linetype pattern - numbers
$ d2 I2 P/ R2 i( a( p" u% u - ;; that indicate dots, dashes, and spaces taken from group code 49. The list
! B0 O/ ]( J' k( d8 @# n4 @ - ;; corresponds to the order of names in ltnmlst.
+ y0 @) ]5 C7 R# | - ;;' k" \# `8 T' M3 V' @
- (defun make_lt_lists (/ ltlist ltname)( L- O& G& t8 l8 X! B* D
- (setq mdashlist nil)5 ?) [5 V6 L" D5 a0 |
- (setq sortlist nil)
. x; o, z0 X/ J6 y2 e" K! p - (setq ltype_number 1)# ~0 d, O5 @% G; G _+ V2 y1 j
- (setq ltlist (tblnext "LTYPE" T))
& J' m4 [( g/ m$ ?4 C9 A - ;;(setq ltname (cdr (assoc 2 ltlist)))& U9 z/ b4 E" B& K$ y0 `1 X1 k+ B
- ;;(setq ltnmlst (list ltname))
$ x' O( U. ]: h - (while ltlist/ o% E8 E( w# D) E7 R+ k& O
- ;; No xref dependent linetypes, please.
2 J8 \8 D' U# r1 ] - (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)& H% L+ u- H1 k$ {* k2 |- q
- (progn' x" M# X* O R9 A
- (setq ltname (cdr (assoc 2 ltlist)))
% y; j' S# d/ b8 ~9 T+ S) h - (setq sortlist (cons ltname sortlist))
# w. I* [8 p- E9 l9 ` - )
7 I; U! T0 O8 k3 V - )
3 s* F U( J Y* E! i6 {! k: p - ;; Get the next linetype.
1 Z3 b! [' U# O9 i9 K - (setq ltlist (tblnext "LTYPE"))
3 G' g4 V- k$ X" l' e - 6 @# w+ P8 Y( H# f/ {
- ;; Not dead message...
& ?) F4 ^: y" f* t7 q1 M - (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))
$ ~4 M! Q- W7 D: q' ~ [7 E5 f. C - (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))
1 L) ]2 C7 C: Q4 K6 g' k - ), v: E. @2 h3 q, h$ T" y, Q
- (setq ltype_number (1+ ltype_number))
) y+ ~& m" P5 i" n* I# f, C& @ ` - 9 O9 \# X3 O) F2 d
- )
- }) \" F/ n1 K - - M8 F! a) J+ p; d4 O7 y. T
- ;; Remove Collecting message.
2 L$ D- [- d2 A1 G, {" E - (set_tile "error" "")
8 B7 J; V" `, j) W3 N# Q" b - 4 C; x. V" s' _, x; [+ {3 V
- ;; Sort based on maxsort.
4 z5 R8 r3 q3 |' J3 A - (if (>= (getvar "maxsort") (length sortlist))
- z# L4 W) ]/ @ t8 Y0 ~4 U, k - (progn
5 D+ ~9 k; g8 S& v. [ - (if (> ltype_number 50)9 k' ~ L' M" P& y: l
- (set_tile "error" "Sorting...")
' q! r' y+ [2 I - )0 T5 p8 r3 C. W! w+ C: T1 ]
- (setq sortlist (acad_strlsort sortlist))6 W% i9 W4 s8 [
- )0 }$ A9 e$ M$ W/ u* i9 |) n+ [0 L
- (setq sortlist (reverse sortlist))6 s# v% T2 h# P
- )* q' f4 ~0 a3 q/ w
- (set_tile "error" "")
! A+ d' X/ Q9 B/ d& \ - (setq ltnmlst sortlist)2 X' [1 E3 C% T8 X q
- w: ~% X! O7 m- (foreach ltname ltnmlst* {* |/ \& h% @3 p) |3 A2 l$ {" `$ f
- (setq ltlist (tblsearch "LTYPE" ltname))
4 X6 ^: `" ?8 ] - (if (= ltname "CONTINUOUS")# |; U2 P2 I) Y2 ~( p5 m
- (setq mdashlist (append mdashlist (list "CONT")))
4 y3 {4 x& q+ j/ j; }3 `" T; Q - (setq mdashlist# }: c, A& j \/ A z0 {
- (append mdashlist (list (add_mdash ltlist)))
, n! l! U! C$ O' S; T/ y% l; ^ - )+ ?' i; ]- u' s* g
- )& `5 F, B- e$ c" `" g( m) _! B
- )
$ a& b- ]% @. N" U - (setq ltnmlst (cons "BYBLOCK" ltnmlst))" i/ s5 Z% V% O7 N+ s3 {7 [
- (setq mdashlist (cons nil mdashlist))8 |$ R/ I6 n+ }, u6 l0 W
- (setq ltnmlst (cons "BYLAYER" ltnmlst)); e( s6 k7 P% S! I2 A* W1 {- @
- (setq mdashlist (cons nil mdashlist))
+ |2 q5 G# t% _5 }9 X, c - )6 Q1 i6 [9 T- E7 l2 m+ T
- ;;$ z+ J5 B- \8 {' @; N
- ;; Get all the group code 49 values for a linetype and put them in a list1 [1 w/ \5 V j+ V8 v
- ;; (pen-up, pen-down info).
, ^3 \7 a+ F4 O* O) C - ;;
+ Y* r* u' f5 y8 a3 P$ d - (defun add_mdash (ltlist1 / dashlist assoclist dashsize)8 v1 O7 f$ [+ G
- (setq dashlist nil)
% Q) K* P0 j& T+ \ - (while (setq assoclist (car ltlist1))- X- r4 N' t) {5 G' j. o/ k. p
- (if (= (car assoclist) 49)- k' U9 O2 y! V0 ]% F. u# X
- (progn, c3 G* d9 h$ H) i4 d A' F
- (setq dashsize (cdr assoclist))/ a# M k- g* A5 }( k
- (setq dashlist (cons dashsize dashlist)). `2 G, T8 L: r1 R
- )6 |' {6 }0 s+ W4 U5 W2 M
- )* M4 s0 d* x; }2 a C% e
- (setq ltlist1 (cdr ltlist1))
4 B K/ S4 f( q3 x X' |& m - )
% f0 x p" c! K/ ^ - (setq dashlist (reverse dashlist))( ?9 g9 Y, G0 g$ s8 {, r$ u* r
- )
: L* b) |! n5 y) x6 u1 F$ g) X8 y - ;;
6 S, f" n7 k w8 l% {7 ?0 u# |. @% o - ;; Color a tile, draw linetype, and draw a border around it3 I1 t1 ]! x8 }% f
- ;;! }/ @) y8 b2 A8 F$ ?0 G
- (defun col_tile (tile color patlist / x y)
: k1 J4 x: I W - (setq x (dimx_tile tile))/ R- h' ~1 G$ T
- (setq y (dimy_tile tile))* L9 P; C0 p) ?7 R
- (start_image tile)
: V: ^1 j* o2 \! x2 _6 U - (fill_image 0 0 x y color)2 v! K( H8 V6 n& ~5 C. n
- (if (= color 7)
' W+ A. X! }9 Z0 M& }' l8 H. r+ j - (progn' c# x/ J# k) w0 M# I4 l) O
- (if patlist (drawpattern x (/ y 2) patlist 0))6 A" S) `4 C& w! w+ T9 P! s
- (tile_rect 0 0 x y 0)$ U: U8 t1 t% ]* t: g+ @/ ^) g# U: c
- )
& F, o4 ?$ s. m* t - (progn
$ ^' |) J4 ]/ ?, \5 U - (if patlist (drawpattern x (/ y 2) patlist 7))% b O2 m2 P9 j( M% p. J4 r9 T
- (tile_rect 0 0 x y 7)
9 B o; t$ ^, F - ). @9 e6 ?/ V% K& m0 O! o$ i
- ). G% ~9 K' S8 A5 t7 u. F9 e9 l
- (end_image)
' E( Z2 z- H* f2 R/ `; y - )+ H8 @6 B% `! g& t, Z
- ;;' J2 b7 \$ o" W
- ;; Draw a border around a tile; v6 a: f& o- }3 ^
- ;;
" m1 b }+ ~/ L% ` - (defun tile_rect (x1 y1 x2 y2 color)% x# O& J ^0 l5 b% n9 }) ~
- (setq x2 (- x2 1))
/ g. v. f2 r& N1 X - (setq y2 (- y2 1))2 u4 T$ W7 L2 k, {
- (vector_image x1 y1 x2 y1 color)
& P ~! z" B+ A( z( i - (vector_image x2 y1 x2 y2 color)
/ t8 `7 F1 k% a, O* {, Q& I - (vector_image x2 y2 x1 y2 color)% ^0 A& A5 d# ^
- (vector_image x1 y2 x1 y1 color)
% p' ?; p& K5 h$ ^1 L7 m% b7 d - )0 X8 }; Y4 g! A9 J8 f1 A( O) d
- ;;7 t$ H" {& J; E) T+ S! [/ O& c
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image: _- i5 y& @" b2 S' b9 A% w
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
, U( ~7 Z$ U4 E8 e- s# [* j; m9 U - ;; list of numbers that define the linetype, and color is the color of the
. Z3 B( `6 r: L3 `4 h9 O3 S - ;; tile.
, v$ r2 ^) g& X; L" k - ;;$ {. ~3 _% y" l% C
- (defun drawpattern (boxlength y2 pattern color / x1 x2/ u( { |# C' @0 J
- patlist dash)
4 r3 \! G! i7 g; y; o7 M/ l - (setq x1 0 x2 0)
; U( E7 M0 [. ?) L, G6 n1 ]1 N - (setq patlist pattern)
8 Y5 N1 {* Y$ d - (setq fx 30)
+ q9 Y+ D/ e T2 g+ d+ p - (if (= patlist "CONT")
1 Z/ ~8 v( z/ T' z - (progn (setq dash boxlength)# c' S9 e7 U0 s2 @7 S* {2 ~( {
- (vi)
9 U. @4 F6 p$ k, U3 R" l% x - (setq x1 boxlength)& b0 Z9 W1 }, `* F* U/ _
- )
$ R4 z6 A$ @5 \7 V2 W - (foreach dash patlist
; M' i# k/ d+ X `/ Z3 x1 [ - (if (> (abs dash) 2.5)
8 g; z% u/ L L- S4 x4 i$ k' r" R% E - (setq fx 2)/ G: h/ {) l2 N; T
- )
0 X% l5 q, U$ B& _' ~ - )3 f# C. F F" }7 [* Y! H
- )0 ]! M. U% R. |) e' K9 e0 @
- (while (< x1 boxlength)8 ?- L3 F5 Z" c$ S# R0 v
- (if (setq dash (car patlist))( Q9 S. M1 _) N* @3 N$ z; J' t
- (progn. y2 z- D5 F/ T0 q7 R# R6 U
- (setq dash (fix (* fx dash)))1 G1 d6 J8 M% n/ _
- (cond& |! H6 O" i( D+ R4 n
- ((= dash 0) (setq dash 1) (vi))
; C3 a8 l6 c8 Y8 V& t. m - ((> dash 0) (vi))9 e* p t; b4 s. ~" W, Q( H, |
- (T" w# Q9 |( i1 e& L2 p
- (if (< (abs dash) 2)
2 f6 M; B3 d& {( ^7 n+ g) d- E1 L - (setq dash 2)
! Y! i {4 w) ?, V; }1 E - )
6 |8 g( @1 O! q$ V; p - (setq x2 (+ x2 (abs dash)))
, t1 I0 I5 x1 J& a' m - )
! k, P. D1 Y8 ~/ h- L5 c6 S - )3 g; L g4 `6 u+ K. {2 T; X2 O% r, _+ H w
- (setq patlist (cdr patlist)), R4 {' R# k; `2 F7 {: t
- (setq x1 x2) W! Z% Y+ w$ @* R
- )
8 c% Y2 \+ s9 f; ^% o - (setq patlist pattern)) u/ v/ S1 h8 C2 {0 K7 p$ K% g; @
- )' ^, z7 Y, t9 l/ y, ?
- )
5 }3 b* u7 ?9 s( X. Y- E! f( k - )
+ x Q: h2 H/ X7 s6 T - ;;* Z) s: U: @& k: O( f
- ;; Determain state of xclip
6 \9 g* `0 f- K' G' \% ?' z4 W - ;; Returns the group 71 value of the spacial filter dictionary.6 f. N3 D6 m1 n. @2 }7 G
- ;; If the entity doesn't have a spacial filter dictionary, this
3 E& }: x7 k; a2 t1 | - ;; returns 0. If it does it will return 0 or 1 depending on the! @8 S2 G9 G3 Z0 s: @- S+ p
- ;; current setting of the state of the clipping visibility.
2 V( d: c9 P+ B2 D - ;;7 Z W. T" `; q
- (defun xclipon(elist)
& \3 |$ _& s9 U2 p9 |( u6 r - (setq hasclip T)' f' h! | ~- I4 I! P5 q1 A0 J% L
- (if (/= (assoc 360 elist) nil)
) G$ y; }4 t) h4 } - (progn% [7 k b+ y3 o' B! A
- (setq tmp (entget(cdr(assoc 360 elist))))
6 ]. k* Q! s4 s - (if (/= nil (assoc 360 tmp))
2 d4 e/ q# B$ P- N: e0 z( M. h, W - (progn$ y d2 Z) J9 _7 O5 r
- (setq tmp (entget(cdr(assoc 360 tmp)))) o" @+ V) N' b3 a3 \
- (if (/= nil (assoc 360 tmp))
' a% e' U; c9 N! T7 P2 R$ q - (progn
& \7 q5 M+ t+ s" Z8 G - (setq tmp (entget(cdr(assoc 360 tmp))))
3 _8 w, p& Z1 V. A( f - (if (/= nil (assoc 71 tmp)): ]0 m' P# R3 J) a! a" M! T
- (cdr(assoc 71 tmp))
( f: m+ X" N4 |! |3 e8 P - (progn
' T1 H9 l( E8 X- K I - (setq hasclip nil)- C- L: r" _/ L$ R: J/ J
- (eval 0)7 w' I' c( q1 w' r3 e2 v- M2 V
- )
8 R% }6 o$ I4 V- D u) g/ I6 c - )
1 [# T' X) ^# @( @ t- N3 ] - )
3 |4 w- Y5 I- K& V* @, X - (progn
" Q" i J0 n% G- \% q - (setq hasclip nil)
4 _: Z" C: w" U/ F" U" b - (eval 0)
! F- u7 V% u- p. R1 d - )8 S3 S5 O, B. Y+ X8 |
- ); ?1 C% s6 X/ G! M5 e
- )" N$ }- [' S4 U
- (progn
; b6 K1 ^ Q+ u% S. A - (setq hasclip nil)
9 Q0 s5 j+ M3 ^ - (eval 0)/ f; Q. T2 r4 Q: X# P
- )
6 u# F4 M) E( Y* j# l - )5 o0 _ m5 k( Z" W+ p6 e1 S
- )
8 b) \; J* J$ J" h5 z: k+ C7 b - (progn
/ D+ t1 P! h+ l* c& }: b1 S - (setq hasclip nil)
1 v2 I& L6 p! x' k - (eval 0)
& t1 s% n/ f" |4 {; a( q - )
{, C( d7 e5 x - )
; R5 T1 u7 N6 [9 E! q - )4 y& ?7 l% t r" b+ t' h
- ;;8 U( E* `2 t# D! s3 Q; l. d
- ;; Draw a dash or dot in image tile1 V/ r# _- j9 a, e
- ;;
1 b$ O) f o4 s( C - (defun vi () M+ z) N6 I0 J& u/ l5 t# |; K
- (setq x2 (+ x2 dash)) q" o7 U% E+ h; n3 ^
- (vector_image x1 y2 x2 y2 color)
& U7 F0 c# f# _1 F - )" ?4 d9 s+ e# V. K/ m+ m. o
- ;;' L. Z @: ]9 N/ n$ ~
- ;; If an item is a member of the list, then return its index number, else! s$ V# z0 X/ ~9 k+ `- o
- ;; return nil.; P4 R7 X; E: w( y5 w" l
- ;;
- u. h- L0 h+ e - (defun getindex (item itemlist / m n)" d" d5 j) _) d6 ?! Y1 N+ p
- (setq n (length itemlist))
/ j& P5 T& n9 p. R# g, Z# ^ - (if (> (setq m (length (member item itemlist))) 0)
- t- B2 [9 Z$ [8 R9 E8 ]0 c - (- n m)- v9 \+ a5 G* {; r/ p% x
- nil
* `% v0 t# x9 @& _5 f9 T' E- ]3 Y - )
( @# h0 q4 |, _9 v. f* ^) ` - )1 ?' b# [5 S) X, P; r; F
- ;;
/ ^3 y" b) B4 M$ n1 z- C C* V& _+ a - ;; This function is called if the linetype is set "BYLAYER". It finds the: y, [* j3 Z, b$ ?
- ;; ltype of the layer so it can be displayed beside the linetype button.- K) f7 R; \4 `7 g, d+ ^8 v
- ;;
% T8 ?: i, r9 f" E" K - (defun bylayer_lt (/ layname layinfo ltype)
" T7 j$ z' V# @2 |, \# Y - (if lay-idx
# c2 k& u- M5 ~: l X# Y5 f2 |) r - (progn/ ]: x. J! H2 z0 K9 e G7 x& h8 C I. S
- (setq layname (nth lay-idx laynmlst))/ q* @8 K# M" e- h$ @4 [ q+ t0 \9 D
- (setq layinfo (tblsearch "layer" layname))6 u! M: T. A1 u. U
- (setq ltype (cdr (assoc 6 layinfo)))0 D6 j; s! c+ M4 n2 l
- "BYLAYER"8 e: Z [, `2 v& X7 p# M& h) w
- )! J; t) G2 l+ B. L- w
- "BYLAYER"
% k# h! n X, Y% ^/ X* U1 |# [ - )
. ^* N! O* P6 D, Q - )4 D) B# l r# V
- ;;4 q+ o* t( o& j6 @6 P+ W
- ;; This function is called if the color is set "BYLAYER". It finds the color' |# [7 b1 w: Z$ A! j3 \4 [
- ;; of the layer so it can be displayed beside the color button.
) D/ M# A9 w! x; k- k - ;;5 L5 h0 l/ M. i9 q
- (defun bylayer_col (/ layname layinfo color)
4 n% E# @9 Z* p) s9 F - (setq layinfo (tblsearch "layer" elayer))
' I+ B# ?1 V, _5 [; J8 t - (setq color (abs (cdr (assoc 62 layinfo))))
2 K5 e0 H. }3 |7 F9 O7 \ - )
9 i# \2 R0 i W' f7 {& d - ;;/ b7 m& L# a5 @' M: h5 z! n7 c
- ;; Used to set the color name in layer subdialogue.' E% |7 v; ^( W/ L
- ;;
$ q1 ?5 k5 G4 P* ~$ C1 ~' |; P - (defun colorname (colnum / cn)
1 ]3 K1 t9 c# ]( R! V: R1 o/ Z - (setq cn (abs colnum))
^; I$ F4 G& u. }; H7 @. B) M - (cond ((= cn 1) "red")
% _9 p6 ]% n$ }( j - ((= cn 2) "yellow")
6 f7 W' F- X5 f+ K% B# W - ((= cn 3) "green")
2 } J7 B j0 G8 d2 v - ((= cn 4) "cyan"); e2 c# @! E( L m7 I }2 P
- ((= cn 5) "blue")
/ z& S8 c7 n& B: w! E! J - ((= cn 6) "magenta")
( p. z9 w* e- E( X) n- H" J - ((= cn 7) "white")" Q2 [6 S/ B/ K! c7 B0 g
- (T (itoa cn))+ R- g; H% T, q" u& r4 d
- )# R6 O( h! Y+ Z9 X
- )
9 e4 {) |3 Q) H- b l' |% D - ;;
* s6 Y/ ?% L, @3 o - ;; If their is no error message, then close the dialogue.
; v% W# F( ]$ W1 n" P8 \$ R. H, c/ W9 q - ;;
4 w7 F { U8 S0 i' F - (defun dismiss_dialog (action)8 R+ L/ ^3 X" P% \$ W" E
- (if (= action 0)
7 {* w( L- A% \4 p9 z2 S% l- P X - (done_dialog 0)
/ |5 [) q5 j6 e2 T. @4 Z - (if (= (get_tile "error") "")
$ b/ L) I6 k8 c' A4 C - (done_dialog action)
: z% y0 L6 e! j6 F* W - )
! g; m* i1 R9 S$ F - )
- y' l( B6 N, X; u, @, Z - )0 t; U& G$ M5 w# G
9 ?4 p+ `6 k, F$ y0 S7 G9 d9 a- (defun test_ok ()
$ K# @* E' _) ] - (if (= (get_tile "error") "")) b! G4 G, V; j' H
- (done_dialog 1)5 |- g2 z! C; v! @* G
- )5 e+ @" B) \6 f- m o4 Q
- )
' i7 N: h* J9 w
6 J- A f1 t0 T3 I- (defun cancel ()6 i# g/ J# d' ?& A0 L% B- Z( _% R
- (done_dialog 0)* g. d+ Z1 L( R* `3 `
- )
* { z" P. O6 V& V1 y6 p4 @ - - O3 c$ j6 P& N) G& H2 M0 A% t
- ;;; =======================================================================2 J+ \9 M+ R' c( ?8 x1 B
- ;;; SETUP layer and linetype lists for application, and initialize all# y/ v. I1 N; u
- ;;; program variables.
" D O% i/ ?$ v7 k - : C* c9 J$ T/ N) [
- (setq elist (entget ename)
4 d) k7 \- N) c - old-elist elist5 `9 T; R2 W* r+ g5 W$ L$ F+ d$ c
- modlist elist
; p; f$ a5 H5 D# h, a' T7 T - etype (strcase (cdr (assoc 0 elist)))
A; n: U) D0 i/ b" U - ecolor (cdr (assoc 62 elist))
5 P1 t0 Q0 @- y* n3 {: Z - elayer (cdr (assoc 8 elist))5 ]4 W l" W8 G
- eltscale (cdr (assoc 48 elist))& G, d6 U& C; V( s
- ethickness (cdr (assoc 39 elist))5 n6 D; Y9 S1 s. t& L' z$ Y
- eltype (cdr (assoc 6 elist))
4 d( C4 |: u1 `, r" `* X3 R - )
2 M0 {0 z. E9 L- B3 H6 p8 I) U - (if (= (assoc 210 elist) nil)3 h1 {/ S# _7 m% G/ ]$ i" u
- (setq extru (list 0.0 0.0 1.0))- A. ^9 j6 I) Q
- (setq extru (cdr (assoc 210 elist))), e8 K; W7 O* G/ V
- )2 E* `" b2 U7 N$ `
- ' C" \0 f: T- E( x5 l0 g
- (if (not ecolor) (setq ecolor 256))
+ J! K, {, ], k' } - (if (not eltype) (setq eltype "BYLAYER"))
2 M6 i$ o2 I5 u3 A% ^# ` k5 H - (if (not ethickness) (setq ethickness 0))) `6 b- K$ d9 t! M/ U7 R* p, G2 M
- (if (not eltscale) (setq eltscale 1))9 y5 O1 u" u/ F7 n5 p# @
- ) ; end ddmodify_init
8 j2 `0 C8 g# q9 a8 y6 y0 P- S
9 O- x* X, @- q# b& |- ;;; --------------------------------------------------------------------------' L, b* e* v3 X/ K. D5 z* {9 P
- ;;; Function: DDMODIFY_SELECT [2 v% v+ z; T7 R% Q/ v
- ;;;
2 @+ ]4 i. E" s' e1 c' | - ;;; Object aquisition function.
! v$ N8 t: A) m9 i) t% ~9 Z - ;;;
3 i1 v& j% A: g. [: f - ;;; (ddmodify_select)
: S$ r+ }! T* ~- H0 H# f6 }/ H9 ? o - ;;;! ^ M$ X; o4 U! N6 j
- ;;; Obtains object to be modified, in one of three ways:/ O- z0 }+ C& ?& S2 b0 m$ O9 [
- ;;;% G2 h, h/ T* T4 R$ l
- ;;; 1 - Autoselected.
' T/ d3 I: |9 k1 s - ;;; 2 - Prompted for.8 o. P$ g9 @, {5 Z" i# k
- ;;; 3 - Passed as an argument in a call to (ddmodify <ename> )* P' Q, X6 S) v' R: v: \9 H
- ;;;5 H. V/ i. R# L% r) Y4 s* E# _
- ;;; The (ddmodify_select) function also sets the value of the
) j$ T" r3 K9 J# R, t - ;;; global symbol AI_SELTYPE to one of the above three values to
, n! o1 O. L. r+ _# G - ;;; indicate the method thru which the object was aquired.* H4 u: g- L' _; k7 {. x3 ~' W
- ;;;
6 D, I, B8 U# c9 c4 R9 s1 V - ;;; This value can be useful to applications that want to RESTORE% Y+ o8 \# o `3 v
- ;;; an object that was autoselected to its previous selected state, @3 x9 \6 A2 j: X$ e9 s
- ;;; when they terminate, although there doesn't appear to be any% L/ q+ W! K: m2 }6 A8 t
- ;;; way to do this right now.
1 b* R( @; L# A1 { }/ o2 u
/ b0 y1 G( f; c- (defun ddmodify_select ()4 y8 J" N- G$ i/ Z; G: e
- (cond% N9 S1 p/ v- T- N# Z9 t$ t g' ^
- ( ename ; (ddmodify) was called
M3 ]5 a1 U" l9 ?- t - (cond ; with an <ename> argument( M5 ~9 C1 y2 D6 w
- ( (entget ename) ; If object is non-deleted$ v" x3 ] `7 ^2 b' S4 S
- (setq ai_seltype 3) ; then return its ename.( Y, ^; ]0 a2 b% u' L5 I
- (ai_return ename))))
, V8 T n2 J2 ?: _! E8 U - 3 T% C. Z4 p' K( Z8 |3 ?
- ;; return auto-selected , see ai_utils.lsp
( N: ^% t% W3 J$ m$ A7 y - ( (ai_autossget1 "\nSelect one object to modify: "))
, O! D" Q9 d2 A. q
% T# @) a0 ]! ^- y5 ?- (t (princ "\nNothing selected.")! d8 T4 ?* d4 z! b- A% x" Z: }$ l
- (ai_return nil)), P! k( k, p# Y
- )
+ s3 z" `" R" x/ _' T# a0 i - )
$ ^8 R+ ~6 j z7 |/ ~7 v - ( K1 ~& c+ `/ I* E3 t
- ;;; ============= Command line interface function =======================
" ~; Y( g% m7 J+ ]4 B. @' c - 0 N& Z7 ]$ D; I) U7 P0 i
- (defun C:MMO (); G# ` B# w5 S N8 o" c. n
- (ddmodify nil)
* C+ D. o: P2 c3 G6 ^6 a! \0 I - (princ)
+ T2 }! v, l6 k' _+ S. ? - )
4 E; C8 |" `* E* q- F
0 ^2 I S- n4 N# R* G5 P- ;;; ================== (ddmodify) - Main program ========================
2 j0 [ j+ ]% S: g: t - ;;;+ B1 c8 J# x/ D1 @6 F; p
- ;;; (ddmodify <ename> )
7 m& W3 v# q, g5 ~ - ;;;
3 D T5 C' f( x+ @, Q - ;;; Main program function, callable as a subroutine.
% L- }# m/ s! S8 M' W: q ]9 y - ;;;4 g) C6 V; O2 s' u) D- }' t
- ;;; <ename> = object name of the object to modify.' T/ v) t7 W5 n2 i
- ;;;
, b( J' j8 Y; |1 z( V# A# P0 t j - ;;; If <ename> is nil, then user is prompted to select1 x% d4 K' }# C* v
- ;;; the object interactively.% a) B) B, b" W" \) i9 w, G$ S* U
- ;;;* A+ [+ m5 T' @7 W
- ;;; Before (ddmodify) can be called as a subroutine, it must
7 I. q' A' q: X! R - ;;; be loaded first. It is up to the calling application to' x1 L0 v* d% f# O
- ;;; first determine this, and load it if necessary.
% r& N) W7 h' B: i3 W
4 {4 X) j5 E4 {# p" i' P$ q
& Q9 `3 n& J% Y9 h S7 d/ }7 C# ]- (defun ddmodify (ename /
! R6 Q, ]$ F7 r f @ i5 b* { - 2ndpt ell_calc_area move_pt1 templist- X, ^- i- I4 x& S0 Y
- add_mdash ell_tile n tempmod
) v, u1 B. \3 P2 P. \& x4 b2 L. J - alipt eltscale name tempst_ang$ U5 E2 i, F* t2 G1 z$ o
- ang eltype newpoint test_ok
" Z; ~( n4 g# y2 F B4 { - arc_calc emod next text3 v$ z0 y: j( c; d
- arclen end_ang next_vertex th-value* l& w9 Y' c2 q' R. j7 F
- assoclist endpt obl tile
; G- e6 n& n, u+ L. i - atprompt errchk off tile_rect6 J/ Z) M! R: f% V0 j4 X. J9 ]
- attag ethickness old_majrad tilemode
- y0 N1 x1 w, q4 n& `8 x& z - attprompt etype old-closed totang
- t+ `1 N9 }" R - bit extru old-closedm tstyle! D5 u Q8 u7 o9 }+ d6 Z& ?
- bit1 fchk old-closedn u
# g- E/ d3 L( N' @ - bit-10 first-10-rec old-elist undo_init
2 v0 u' h/ `' X' c/ ]4 Z! t - bit-11 first-10-time olderr upsd8 r1 b9 d X+ D; B
- bit2 first-11-rec old-fit v M) v% Q) p! F4 P" ?- d4 x; Z* e
- bit3 first-11-time old-idx va* a7 J+ D0 k- i7 \8 E/ O7 R, R
- bit4 fit oldlist value
7 N, x; i# e- `5 D - bit70 frozth old-spltype ver_41 t1 x, Q, F% S6 ^0 `
- bit-70 f-vis old-u ver_ang1
1 _+ B. W) _. Z: T( [$ }. ^ - bit75 fx old-v ver_ang2
- N- P/ @ x# P - bk-up get_color on ver_col5 l3 F. J1 H8 J; |* l4 F% d
- bkwd getcolor onoff ver_colsp
3 O1 q" x9 m1 |3 f+ p& C7 L3 t - boxlength getindex on-off ver_eangle: Q8 L( Q; {! V3 j) F0 m* l5 r! }3 |
- bylayer_col getlayer patlist ver_hght
9 \- H7 }" U6 y' V8 {( U' U - bylayer_lt getltype pattern ver_majrad
" Q7 D! n/ D& R) P$ Q - calc getthickness pltype ver_obl
& V3 Z: k" u1 w/ V' |, K# ~" _( r - cancel globals polytype ver_pt1
+ b# {8 I1 ~' \/ _0 i - cir_calc ha pre ver_pt2
/ l. [( ?# V: f K8 q$ S/ K+ z9 i - closed ha-prev proplist ver_pt3
2 g V8 Y; s- I2 C# F - closedm help_entry pt ver_pt46 i" N( T+ T& B, H% ?7 L! i
- closedn hght pt1 ver_rad
/ Z4 R& N% s, ^8 E - cmd icvp pt1_eq_pt2 ver_rot
) `5 L) p% D- V) J6 h( i r* ^ - cn image_add_vector pt2 ver_row
2 F2 v$ s% Y% _* n! y% k3 _* z - cname image_clean_variables pt3 ver_rowsp% t; d' i m1 Q; B( Q8 J
- cntl-pt-indicator image_cross_product pt4 ver_tag
& X$ M( r1 t8 t0 A" E/ I - code_71 image_disp_opt ptype ver_u
+ @4 P) z# r d3 K3 G - col_tile image_dot_product radius ver_v3 C, x% |( L4 P9 ~/ @% ?
- col-idx image_normalize_vector rational_spl_flag ver_wid0 ^, [7 J! N+ c' E H) j/ T5 a4 M. e
- colname image_rotate_vector reset ver_x1$ W4 F7 `+ K J+ r
- colnmlst image_scale reset_flag ver_x2( w$ q. h& [/ t2 h/ i6 l' _
- colnolst image_scale_vector reset_lay ver_x3
0 _1 ?- c% P" a& [: w! y* s - colnum image_update reset_lt ver_x4
2 n! X# o5 B0 D: A# Q a# D - color index reset_uv ver_xline_pt1& h# F0 n4 {: b" [# z8 Z
- colorname inv rot ver_xline_pt2
1 |- M- o6 b; b2 j# g$ X - colorno item rows ver_xline_x1+ S. @3 l- g, l) b! t3 N$ n
- col-sp item1 row-sp ver_xline_x2
; [3 B& V V+ u; q4 q- A0 H9 c - columns item2 rrat ver_xline_y1
7 s: B7 k1 h4 \1 k - con itemlist s ver_xline_y2
! E) L$ N1 `( r/ ?. G - coord jlist set_action_tiles ver_xline_z17 P2 ]% _: n) u
- ctr jlist_act set_just_idx ver_xline_z2, Y5 R7 u/ Q. b( M
- cur-10-rec just-idx set_tile_bk-up ver_xscl
3 g! S1 q9 j2 H: O. ~7 n - cur-11-rec layedit_act set_tile_cntl_pt ver_y1
5 x: v3 A# e" g& Y - cvpname lay-idx set_tile_data_pt ver_y2
3 {8 ?" I7 z' H3 j8 r - dash layinfo set_tile_dirv ver_y3% d4 @; n* G$ N' s( ~8 n3 K- w1 q. X
- dashdata laylist set_tile_edges ver_y4
5 Z7 O6 Y8 O; X; g' x, m5 L9 g! { - dashlist laylist_act set_tile_endang ver_yscl1 Q% h0 }% s2 X3 U
- dashsize layname set_tile_hght ver_z1! e& J# t- C5 |8 t8 M4 O, A
- data-pt-indicator laynmlst set_tile_icvp ver_z2. g0 }4 ]. z& c, l
- dcl_id layvalue set_tile_just ver_z36 h/ R5 }& t" m' w
- dd3dface line_calc set_tile_obl ver_zscl
& y+ X$ q! t, B; a% A( v7 J# \1 i+ z% V - dd3dsolid linetype set_tile_prompt verify_a
! O% h9 `: [# F1 w% K# t7 G N, \1 ]; u - ddarc list1 set_tile_props verify_d( [4 `5 B" e/ i5 u a A6 r; u
- ddblock longlist set_tile_pt1 verify_i P. x, Z5 _& z' K$ {/ j
- ddbody ltabstr set_tile_pt2 verify_xline
5 T" G# a- \( W5 m1 E* G$ a5 L6 }( G - ddcircle ltedit_act set_tile_pt3 vfy
+ o6 j; j& T2 | - ddellipse ltidx set_tile_pt4 vi8 L" B1 q+ Q' g. @% j* G
- ddgetprompt lt-idx set_tile_rad vlist
) ~, {; A. |: u& _! J* D - ddgettext ltlist set_tile_rc vname9 B( I2 y2 {# k
- ddimage ltlist_act set_tile_rot vpf5 \2 x+ M7 J# D- k6 |; A
- ddimen ltlist1 set_tile_scale vpid7 t/ h+ Z3 p3 K9 p
- ddleader ltname set_tile_spline_props vpldata
8 W& a j0 _$ j: q& ~ - ddline ltnmlst set_tile_stang vpn
5 N3 j7 c5 \# w- \9 l$ m. o - ddlist ltvalue set_tile_style vpt
* I# w, _9 A& ]/ Q - ddmline ltype set_tile_tag which_tiles
- G8 a, v+ c x - ddmodify_err m set_tile_text wid% l% o1 a- l6 z3 o
- ddmtext majrad set_tile_vpt x+ B' t/ w6 P# w# z" G
- ddpline make_lay_lists set_tile_wid x1! U7 x, w5 G+ U5 A! O/ v8 \: N
- ddpoint make_lt_lists set_tile_xline_pt1 x2
$ e) @" d7 _) H - ddray mdashlist set_tile_xline_pt2 x3! V5 r+ _: b/ U4 a; `2 I
- ddregion minrad setcolor x4
9 o4 o- K8 o- {; m/ s+ t5 G - ddshape modify_3dface shght xdlist
0 O3 N" h9 C' { - ddsolid modify_3dsolid showpt xline_pt1
; D8 E9 z) S& D+ ? - ddspline modify_arc size xline_pt2( }6 b! {% b) w! O5 s
- ddtext modify_block slist xline_x1. K5 k* r; E- w# g) |0 @2 s
- ddvport modify_body sname xline_x2
$ q) C7 `2 C" Z) p s- q - ddxline modify_circle sortlist xline_y1" R; ~1 ? Y7 U9 X# k4 V
- denom modify_ellipse spltype xline_y2' x2 s9 w8 G L" K) K+ N$ ~! [
- dialog-state modify_image ss xline_z1! t/ [! {$ {$ x( e' P' S
- dir_pt modify_line st_ang xline_z25 V0 z, u) b, c# | F
- dir_ptx modify_mline stpt xscale I" K& L) E/ D4 s: L
- dir_pty modify_mtext style_act xx
; U* b1 V+ J( @7 T8 X% a* m, Y - dir_ptz modify_point style-idx y
z8 y' p; {; K8 Z% B2 [5 y - dismiss_dialog modify_polyline style-list y10 a7 y8 V, ~- o$ w6 R4 N# F6 ?
- drawpattern modify_prop_geom tagval y20 g, w# s/ N- C8 H) h
- echo modify_properties temp y3! Y6 F7 ~! j$ g
- ecolor modify_ray temp_color y4( W* M7 F _$ r9 G
- edge1 modify_region temp_dir_x yscale
- F+ f2 e0 G7 q& F; ^ - edge2 modify_shape temp_dir_y yy
7 L" O6 u0 p- S, {& O2 ] - edge3 modify_solid temp_dir_z z1
& n; l* S# }+ P - edge4 modify_spline temp_xline_pt1 z2
9 e# ?/ s* c8 O! B2 c- w - edgetest modify_text temp_xline_x1 z3
' t2 U4 e* X3 j: O; c - elayer modify_vport temp_xline_y1 z4
6 Y% i# S+ Q4 s) g+ a: N - elist modify_xline temp_xline_z1 zscale
2 Z; ~7 `( ] } q8 S2 h - ell_calc modlist tempend_eang zz! N9 }4 }# R* S" J+ w) v. Q/ w! _' r
- dir-idx safe_ddedit ver_MtextWidth xcliponoff
+ z- k" i* S3 C! C - MText_style1 \) h! M) z* \. y
- )
, w! S" V; s% U+ J6 ^ - ! V m1 r' q' {, u. b
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
5 L! K9 F4 l; u2 I+ J - old_error *error* ; save current error function( |2 T6 r) e$ Q% L% v( t8 @% Y4 l
- *error* ai_error ; new error function+ E3 ]' o; b% c3 b, g: B
- )4 B. }. `, o0 b( d: A$ g; f3 {. @
- . a% l2 I8 s1 K
- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle2 {2 F/ Z) @1 L6 R7 Q$ J- p
- (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection! |1 O* u2 n! ], v
- (setvar "pickstyle" new_pickstyle) ; bit and set to new value
9 }: I |' `, f. I% G: y0 x
m) e5 [( P% s) C- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)+ Z1 l2 k3 p9 }% l
- (t 1)))
0 p# U) v; X: I2 V - (cond4 j2 M8 p1 F$ J: ^0 S4 b; [- j& I
- ( (not (ai_notrans))) ; Not transparent?
3 |" P" |# a1 j9 b1 ` - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?0 I! d! b! |* y3 z
- ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?
, G. a8 B2 m3 b/ _$ S; X - ( (not (setq ename (ddmodify_select)))) ; object to modify?: D. C$ f. r# U; h3 e. [
D4 i/ F% h+ D$ s- (t (ai_undo_push)3 W0 n- @1 n+ i" ~, Z& T3 c, Y; Y
- (ddmodify_init) ; everything okay, proceed. e, x6 I& ~# f H
- (cond
; K" S5 |, O4 [ B - ((= etype "LEADER")- l& m# P4 c( S; ]
- (setq help_entry "modify_Leader_dialog")
; [4 V) y& Y4 Q - (ddleader)
' d/ t5 i0 ]% _2 j0 ^) k+ s - )- l* U9 \0 T# B5 T- x: U
- ((= etype "ARC")
) s5 ]: k* v' f" w( V$ k: n) D - (setq help_entry "modify_Arc_dialog")
0 c2 f4 d+ V' P3 G# X9 E2 k2 Y - (ddarc)
_! P; A3 [( T, V( }9 A - )5 w8 E" R+ S0 U, r9 e/ F
- ((= etype "ATTDEF")
2 K' p1 ?7 j; L, O% D7 X m: L! f: S9 s - (setq help_entry "modify_Attribute_Definition_dialog")9 w8 n/ b/ R1 _, O5 I. {9 b4 d
- (ddtext)
, c+ G Y+ x( k* u& x" i - )4 Q" h" U; k1 J0 `6 t; S \' ]8 u
- ((= etype "CIRCLE")% l/ ], W/ } ~' r: z
- (setq help_entry "modify_Circle_dialog")6 u$ p) F% S# V% Q5 G
- (ddcircle)
$ i+ Z4 H; z! H - )# c' g# n/ J. g
- ((= etype "ELLIPSE")
1 s4 M! u2 w/ n& E - (setq help_entry "modify_Ellipse_dialog")
+ Z: A7 j4 r5 T- _6 D; V - (ddellipse): J; N9 L9 ~! v6 n/ v( S( c7 q5 m
- )$ A3 U ^% I3 P( ~+ N* Z0 t
- ((= etype "3DSOLID")
, y- Z( `9 {- w- @$ k - (setq help_entry "modify_3d_Solid_dialog")( O8 Q5 ?1 J4 O# D( E
- (dd3dsolid)) ?8 k+ K3 d0 g+ O( {# N% _
- )
8 V6 B3 T( {; h! C5 w - ((= etype "BODY")
4 m, M, _$ v0 c. D - (setq help_entry "modify_Body_dialog")
+ E/ [0 O2 J( }. B! Y% Z* ] - (ddbody)+ y/ Z. l2 ~6 v/ q
- ) z/ N" Q( [0 K; }/ u5 ~$ v
- ((= etype "REGION")
* h Y9 ?- Y! G - (setq help_entry "modify_Region_dialog")
3 ^, _* l: x% }) @8 c& G( \" Y9 q - (ddregion)
& O0 W0 }/ l2 d7 S( b - )
+ F- y) t0 s' d4 E5 s* f - ((= etype "HATCH")
`" l' y7 w4 N8 Z - (setq help_entry "modify_Hatch_dialog")
# G1 P6 m! R' i3 M( A; s* Q - (ddnewhatch)
4 l4 W9 X$ {% F" J6 v, `) X - )5 i \ r# m( O, G
- ((= etype "SPLINE") u3 A# X% y1 \# Y8 {
- (setq help_entry "modify_Spline_dialog")3 E8 M; b; r$ {
- (ddspline). \9 i* B. K; D2 R& x2 K
- )
6 Z5 `- j/ ?, Q, L - ((= etype "INSERT") ; see ddblock for help_entry
/ b; i: ?+ j, r9 |# [( c - (ddblock)! k, p7 N/ U1 _6 d2 x
- )
0 i6 B/ X4 k. S4 P4 U) K - ((= etype "LINE")6 f. n4 H, B# w/ J0 b
- (setq help_entry "modify_Line_dialog")5 R/ B) d& o& R
- (ddline)
. G3 m9 M- n, E1 V - )% I- ~1 n6 g. W5 r- t
- ((= etype "MLINE")# I D% k% K. G" r; f8 V
- (setq help_entry "modify_multiLine_dialog"): u( ?0 {5 |! m' x+ P; b
- (ddmline)& L5 U( G# T( @1 @9 M
- )
" @$ \6 k) B0 Z' _4 c# y1 D - ((= etype "RAY")7 ^" x' ]3 v3 T7 p
- (setq help_entry "modify_Ray_dialog")# Q1 L0 [1 O1 `, G; N# [! ~( n
- (ddxline)/ i- P& [0 ^* \8 @* k- z
- )
% K- D! X3 a2 Y0 F7 x - ((= etype "XLINE")
7 ?" P. z+ A& K# E - (setq help_entry "modify_Xline_dialog")# S# n. ?4 v) [/ K+ `
- (ddxline)
4 O3 B8 m! ?$ y - )
$ o. h6 j5 p+ ]+ Q7 w2 I% J - ((= etype "POINT")
) |9 G* P {1 T& ]7 K) w# V - (setq help_entry "modify_Point_dialog")- A9 u3 u) Y! G3 {
- (ddpoint)
/ A+ c( S k) c Z6 u7 J. \4 r& N - )! n" K* a- j [
- ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))* H* C8 e8 _/ u$ H: T! }0 y
- (setq help_entry "modify_Polyline_dialog")
& J# V$ q; Q5 V - ;; If a 2D pline, check to see if it is planar to the current9 J: b1 J, y0 y' r) ~" m8 u, P! Z
- ;; UCS, reject if not. To see if the pline is parallel,( L% O+ F0 Y2 ^' b8 d+ n2 h
- ;; the 210 group (WCS) is added to the current UCS origin (WCS)# C( U( `$ }: A' N' i/ p% E
- ;; and then converted to the current UCS and checked to see if' G, V8 {* l7 k' S6 x/ ~
- ;; it is equal to (0,0,1).
0 |$ F0 r! a" @! L4 V
) T6 A9 ] c/ ?' H3 t9 b: d- ;; Incase the 210 is default and not in the dxf list.) }6 [4 V* Y0 u- i2 S# `
- (if (= (assoc 210 (entget ename)) nil)2 l4 s6 M# {3 K: F- V4 @6 |3 f- j
- (ddpline)' x$ y4 q8 z+ \' M2 |
- (progn
1 \: d; {) l1 \" I! ? - (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))
' l% V3 `+ i$ H- \0 x- I, ?6 s3 {$ J5 b - (not (equal '(0.0 0.0 1.0)1 n' _0 V0 R7 [; \5 u% h3 |8 o& p
- (trans (mapcar '+
* l+ z. k1 i2 o2 D2 \1 Z - (cdr (assoc 210 (entget ename)))
9 d2 t7 P; x6 n; D' P( t) Q - (trans '(0.0 0.0 0.0) 1 0)
3 E. l) b; q& x* | - ); b! v3 l. E2 M( h( \5 { f7 c
- 0 1
1 W& k0 q' e- Q8 T7 R - ). g, f% l: L- f1 p7 t( y. _7 i! ~
- 0.0000000001 ; fuzz
8 ?" l3 ?( \: u1 H9 V& g* ~ - )- }- r# y; {, l0 N2 G
- )' z$ }5 x1 U$ y: S1 r+ | e
- )1 b7 M" |0 {2 L3 r7 u6 @* f$ A
- (princ "\nThe 2D Polyline is not parallel to the current UCS.")2 B( }+ R/ t# i
- (ddpline)3 s7 b) r0 g' D- w u& ]
- )
" \( G1 y( m P- Y1 u8 b' n - )
* d4 g* W! t; s" ?1 e) n# d, a - )- L) O6 J0 e9 ]: e) t7 ^
- )5 ], ~1 k; j8 N6 k' U+ b+ _
- : q E* n; H6 G, P3 M4 O5 H& ?
- ((= etype "SHAPE")
& q' `7 `& \) _0 ` - (setq help_entry "modify_Shape_dialog")
. P& l: [- P/ m: X* t/ n - (ddshape)8 P' F! ^$ g; ~ o
- )9 ~0 q4 ~! G" F# q7 ?. x
- ((= etype "SOLID")
6 C& h8 ` ^5 Z) f% S - (setq help_entry "modify_Solid_dialog"), V4 C5 s p5 [9 O+ T4 i @ I0 b
- (ddsolid)# n% ~7 N; b* S
- )) @; n ^9 f1 `. h+ k5 _4 y
- ((= etype "TEXT")- D( H3 b; {# M+ P4 I9 E' o
- (setq help_entry "modify_Text_dialog")
* O5 ~2 w* H% x" p. u. @ - (ddtext)0 `* e2 F6 ?/ Y$ b" m% ?: z
- )
/ D: g1 W0 q+ M0 c1 M# x6 f" R# V - ((= etype "MTEXT")
, M8 q8 B9 _5 k& s& S: G* j - (setq help_entry "modify_MText_dialog")" ~: z# q4 `% T" ^' y9 n
- (ddmtext)1 X! k& a: _" q# u7 @
- )
' o; u% f6 `5 H d - ((= etype "TRACE")* \0 C3 n9 e* c2 u
- (setq help_entry "modify_Trace_dialog") g- s6 c. g$ t5 D' F7 L( w
- (ddsolid)
- n) ~8 |3 u4 h5 t* Q: J - )' r2 A# q! J0 N
- ((= etype "VIEWPORT")/ q `4 a* w1 J/ E8 l% H
- (setq help_entry "modify_Viewport_dialog")
, W( p9 S% w. N5 d8 v. y - (ddvport)
# N! s2 ^0 |* d - )
B, L5 Q4 m( _" S) w8 \ - ((= etype "IMAGE")8 i" E- w* G$ F+ B, Q6 m1 ]) ^) F
- (setq help_entry "modify_Image_dialog")8 _5 F: j2 u# Z9 I& V) a) T
- (ddimage)
3 w' w1 U: C0 r" Z/ }. q* c - )
; S. S" A+ l6 H8 z - ((= etype "3DFACE")
9 G0 L' ]2 ~$ Q* b3 x$ ? - (setq help_entry "modify_3D_Face_dialog")
0 b1 t$ q( c% ^- t/ m3 n p/ W - (dd3dface)
$ _9 R0 ~- S7 F3 I5 V - )
. Z+ a. |5 a6 n5 G - ((= etype "DIMENSION")% t# z% y! t4 J# a' S$ `( X6 e
- (setq help_entry "modify_Dimension_dialog")5 `( A5 _. [ m; J- T2 V& b
- (ddimen)8 |' `- F7 _8 Z; j& ?
- )
& m' P9 u/ O/ @! K - ((= etype "TOLERANCE")
# E9 g" s2 e5 G, A3 K0 } - (setq help_entry "modify_Tolerance_dialog")
$ b' Q# a9 B( ^ - (ddtolerance)7 m! R l7 X) J: W; w
- )) `) @" O# A5 D! v# G0 |
- ;; Fall-through condition changed by MCAD for MDT 1.1 release.* F1 l4 |: P, ~; [+ F
- ;; This allows DDMODIFY to work on any custom object or any new object type
& x) T: N- N* ?7 v3 {0 ^7 f6 k - ;; that isn't specifically handled above by calling the more generic DDCHPROP.
$ e# Q* x# F+ b - (t
0 O- x% {+ K( C9 U2 q2 U3 ] - (if (and (not ddchprop) (not (load "ddchprop" nil)))! e' h% F3 d6 l: M# |8 J! R9 H) t& p
- (princ (strcat "No dialog support for object type: " etype ".")))2 E4 n) `. o( ?+ e
- (progn, ^& V$ V$ o1 J* L3 S; c7 y. h" U
- (setq tempss (ssadd ename))
8 D( y- u* L( b0 @/ K$ s1 J8 D+ Y: K - (ddchprop tempss)7 p8 {% \0 R' l4 n+ l% ^- ?1 Q
- (setq tempss nil)1 O- w4 E" r! E0 C# W
- )
; [9 ~* r1 ^2 ]- Z# b1 x - ). c7 {2 s' o) }) i8 C+ K5 X' Y, d
- )
2 W7 U: k( K6 k! ?( U - ;; Previous fall-through condition.+ O) Y2 a# f- | _2 H6 j
- ;; (t (princ (strcat "No dialog support for object type: "
1 `' v" y2 t2 q* J! g1 ` - ;; etype "."8 f' }6 U# E! ^- e8 b) H; \9 A
- ;; )
4 T( J) _, ^2 Z, f& R8 ^3 s2 e1 M5 a - ;; )$ j* u, _; {8 k
- ;; )
! E! [$ m, }3 c7 C E- h( `6 F- ~ - ;; )
) G$ g4 H( d2 H, `& E4 K2 B" J! F# l - (ai_undo_pop)4 E( M: I- d" R4 G# q
- )
* ^# X9 F. m) W$ s h% k - )- D' k0 g8 M7 O
" F3 C( C0 j+ P1 K3 t+ ~8 B- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle+ P& c% c6 _7 C6 T) u& ^3 Q
- (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back# L0 ~% C. H$ n5 i
- ) ; to what we started with
* U( E! o# Z7 _" ] - : ?( D7 w3 o" s+ R! h
- (setq *error* old_error)
4 x9 Q* T7 e& h- o! g7 B# ], s1 c - (setvar "cmdecho" old_cmd)
; |5 A$ z& w u' z- p, j+ J) i - (if (not reset_flag) ; if object was modified, then
) W2 P* d9 f7 l5 l; h; q - (ai_return ename) ; return it's ename to caller8 {" M2 t: e4 y
- )
2 o- m& r; j% C: l7 x" B - )
$ ]5 N8 }& x" A1 W$ M - ' X8 t1 ^9 A1 L6 X" y4 S5 c9 P
- (defun checkForLockedLayer (ename)( ~/ i! x$ W0 M
- (setq layername (cdr (assoc 8 (cdr (entget ename))))). b- E! I+ N3 y: V9 J
- (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))/ p: @; T. m& x/ F5 I2 H9 j
- (if (= layerflag 4)# ~, i0 [! @2 C5 [# g0 Y
- T2 \+ j; ?7 ?# i8 {! @
- nil
& K& n w$ d) s7 @7 k+ I - )
8 X2 ?7 |( I. Z5 ~& _ - )# g8 S! Q! [& H! m& ]& `: j
$ M5 p$ D: F7 j( `$ d% W: l9 l- (princ " DDMODIFY loaded. ")& p& p' |* A9 e1 J7 ~3 H! E7 L
- (princ)
, E. F/ F3 F6 G1 t z( L - ;;;???;;;---------------------------------------------------------------------------------------; `6 N& j7 D+ ?! ~! b, y
/ I# {8 b7 j7 t2 R$ N" V- B2 }, t- ; Next available MSG number is 8 H- T/ ?3 @1 n2 @( E
- ; MODULE_ID DDUCSP_LSP_
~' w# }8 [: n. U - ;;;/ Q# ^# R X8 t0 s
- ;;; dducsp.lsp( x2 n; l( u7 ?9 }- @9 n
- ;;;: c j: f' x: K7 P [+ R
- ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.
, {7 ^. s: h$ Q t0 d E# Q; @ - ;;;
5 k5 t$ G5 m" N G2 C* m - ;;; Permission to use, copy, modify, and distribute this software
1 o; M0 \% K0 ^( D, U: ^ - ;;; for any purpose and without fee is hereby granted, provided
q, p0 u* `" v h/ u" B. B - ;;; that the above copyright notice appears in all copies and
; F* O6 a; m' q$ P# Y2 E4 j - ;;; that both that copyright notice and the limited warranty and2 g0 q: o7 n- g- \* K6 T
- ;;; restricted rights notice below appear in all supporting% a6 R# P" q) `) m
- ;;; documentation.9 H& z# ^# J1 Z) X+ {. j
- ;;;
4 I. v6 j2 R x3 \ - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
/ q# c9 L5 {% ]' q- D! F, G. l - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF" ^ i! d$ D6 V# R2 |3 k, c3 c. E
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.8 ]/ s0 l$ R1 x5 \* d4 ~/ l K" z
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
+ {* b; D+ X* x7 t5 r* o - ;;; UNINTERRUPTED OR ERROR FREE.
) ]7 c6 ]% v! R' z& w$ d - ;;;
& t/ U) A1 ~/ V+ H } - ;;; Use, duplication, or disclosure by the U.S. Government is subject to) H- U% t' T, V5 b5 M8 p& t8 H
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer. u% y# S8 ]5 D9 @
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) , u- s7 D. o" F' \5 j
- ;;; (Rights in Technical Data and Computer Software), as applicable.
1 B3 D, a1 X( b+ s; G - ;;;& W) C0 H* k$ @/ ?
- ;;;.
8 e( {+ U3 Y Y5 Q# A( h - ;;; C:DDUCSP - User Coordinate System presets dialogue.. Z+ e. \# r. U9 m( }% d/ b* R
- ;;; # F" C( F' C. }% D4 l
- ;;; Uses DDUCSP.DCL for the dialogue definition. The. L4 T* m" x9 e- P, l! ]
- ;;; slide images are in ACAD.SLB." ?" V* w# F s, d" k& X- |
- ;;;
" W; k9 y! o- } - ;;; ===========================================================================
+ L4 L3 C, L9 d' V m3 v K - ;;; ===================== load-time error checking ============================
4 @ l- G0 u2 ^) s. n% O) F - ;;;
: c$ {5 b- |( ^9 N! }, G - ! E6 |" C/ q! N v9 b" D
- (defun ai_abort (app msg)
! V* w9 W* d4 a! |: o3 _ - (defun *error* (s)
6 \4 ^4 |. e2 \/ r, p9 G& z# X/ ^) i - (if old_error (setq *error* old_error))
/ C; `9 b5 k' B - (princ)/ y% C5 r5 L5 b# T, N: J+ B
- )
& I4 O/ I. f' c) L" m, o' ] - (if msg
" @4 \+ X8 u4 n; }( {* P+ K3 D - (alert (strcat " Application error: "' f" k2 F# p* P8 G' c9 `
- app! Z- u* z0 C4 Y4 n8 @
- " \n\n ") |5 |0 a% B; ?/ [* V% w/ ^* C
- msg. L( R t+ ^6 U" R% v6 K# B
- " \n"7 N2 k6 j7 g0 d% M/ y; m5 |
- )
! D6 x6 E- j# j - )
! _4 \1 M' [" ]( y* S z3 h - )
; ?. i p6 N3 U% j3 u& [9 k - (exit)
/ _; G) n9 ?) Q - )
5 N9 @* S1 D7 T2 X - 3 G( F7 o, r0 o% {# p y8 p: b& f
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it, y' P5 F2 H0 \& f8 i, r
- ;;; and then try to load it.2 X! S! \$ a4 h8 B% B( D
- ;;;( o* b, t$ D9 @
- ;;; If it can't be found or it can't be loaded, then abort the. z4 A" ?# l+ Q' \! u+ v7 |
- ;;; loading of this file immediately, preserving the (autoload)9 H5 g" ~& S. d D& y1 k/ y
- ;;; stub function.3 V/ y1 B/ a3 s
- , f$ z3 p2 l. f0 o
- (cond7 Q3 O. \2 f8 v+ l" ]: x% J, Z
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
# B' w( ~, e% E - - z* i: {% u1 J: {' a' _
- ( (not (findfile "ai_utils.lsp")) ; find it5 x* L) M n9 O& a) t5 z
- (ai_abort "DDUCSP"
3 ?4 _0 d* O" K5 D/ h - (strcat "Can't locate file AI_UTILS.LSP."! k) y2 M+ f* r1 R
- "\n Check support directory.")))
5 j; _% |- R, a! f" ]' m
$ S) P; ?7 B# O# m8 V: t- ( (eq "failed" (load "ai_utils" "failed")) ; load it
8 D7 Y7 s; R5 V) ^/ r0 d2 e% X - (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))" i) M: q7 g) k. n
- )
* \/ G; f' ]8 c; @& `' _" p1 ~/ v
; V! q! g/ a: u! ~1 T9 e- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
9 V& e g0 f3 o5 A- Z- i5 j - (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses
" A' _( k; O6 Y6 z* r - ) ; ai_abort's alert box dialog.
8 m8 q. q2 q5 |- h0 ~( V! j2 U6 _ - $ N, A- i! I5 f
- ;;; ==================== end load-time operations ===========================1 l5 O& d! l+ @. R/ @
- 5 M! G: W/ F$ T
- (defun ai_ucsp_start ( / program)
0 Z1 z9 z% ^3 n4 `( v - ;; Get program name) b4 v+ y; e3 m; m0 s: S( D
- (if (not (setq program (getvar "program")))' k) Y$ H$ _7 U) Z* v' U
- (setq program "acad")
- m7 F! }, U, M0 Q T# A - )
9 s; e1 p6 {4 F9 A: j, C0 @( A6 \ - (foreach v0 '("world" "left" "cview" "top" "front"
$ E3 t+ S/ M/ J' U - "bottom" "back" "right" "prev")
8 _* t3 n( p9 {8 j3 P. w - (start_image (strcat "ucsp_" v0))- V8 h1 @! Z& B5 I* S1 F
- (slide_image+ V( L( E4 s5 ~6 A4 {* D# v
- 0 0: u- Y' c2 ?3 r, V% A7 M
- (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1)
6 K& g5 X" ?" m) r8 s) E - (strcat program "(u-" v0 ")")
! G6 a: K* E5 i - )* Z7 R/ x. g5 D( r: `6 u
- (end_image)1 r. R9 a! b: s
- )
& m6 B+ t6 P# ^+ M( u) J- A8 M - )
8 u# E3 C+ {9 w0 b9 I! _
0 {7 F7 h6 J9 c: \- R- (defun ai_ucsp_set ()0 m1 Q8 U; S: v+ g) K! H6 E( g
- (if ai_ucsp_sv
7 |+ b( Q) t$ K* T% m - (command "_.UCS" "_V")
4 S7 i3 u7 q6 G) |; d, O - (if ai_ucsp_prevs
+ S H7 ^0 H. J9 h - (command "_.UCS" "_P")
$ d# G- X j w8 y6 H9 G - (if ai_ucsp_chg% |+ i& p) \& }7 ^7 ~3 f
- (progn
% }+ |: Y1 T2 c! ?1 l - (if (/= ai_ucsp_a "*")
* p: G6 Y# k; M7 G; ~ - (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))5 Z G9 `. ]9 N& ^
- )
- s# W) ?6 Z) b: q - (if (< ai_ucsp_pick 6)
$ {$ Q8 ^, {4 T, j; f5 T - (setq ai_ucsp_set0 "@")
8 q' j6 M" Y: N5 H - (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*")
7 W1 b& ~0 r0 P1 @1 Q - ); M( E) G9 y+ g8 C; G' T& F0 t7 x' b
- (cond ((= ai_ucsp_pick 0)# Z' K7 j* U. c$ E% k1 G
- (setq ai_ucsp_set1 "0,-1,0"& N* V9 N2 g) G# B
- ai_ucsp_set2 "0,0,1"
/ h7 v$ k3 o/ h4 t" a) ?) J4 [ - )
& p B6 ]8 h6 [; m3 G7 I2 M" f - )
$ j- @9 |# O$ s - ((= ai_ucsp_pick 2)
: }! @- Z( x6 P' u5 a: H - (setq ai_ucsp_set1 "1,0,0" `7 T' d" V: b9 `/ d3 g+ m
- ai_ucsp_set2 "0,0,1"
, K3 K3 I3 i5 R* t* V2 K - )8 L2 J- P4 a( e# G5 S
- )
" J6 ]5 L+ G# m5 D4 Z - ((= ai_ucsp_pick 3)% U7 `9 n$ d/ M% |) v: Q
- (setq ai_ucsp_set1 "1,0,0"% Q- \) `8 k+ r. m9 P' v2 l
- ai_ucsp_set2 "0,-1,0"
; Z5 B: j: t) A1 k! L& b - )
+ J, Z9 o: U5 o2 c x. i: h - )
8 n! R* e/ P: Z) o - ((= ai_ucsp_pick 4)
/ j% u6 W( w3 U& j$ E - (setq ai_ucsp_set1 "-1,0,0"
8 z0 [! Q- R: @# Z - ai_ucsp_set2 "0,0,1"$ i; J7 u+ |% y8 b# {
- ); t; n' |/ M! |' R* x l1 u8 t
- )
# a8 i) \: W! g7 B/ c5 }9 G5 `& B/ u - ((= ai_ucsp_pick 5)
% Y1 V; C- k3 ^$ {4 a4 i - (setq ai_ucsp_set1 "0,1,0"$ A- ^/ R" W/ z- l. p: E @$ o$ Z
- ai_ucsp_set2 "0,0,1"
: }1 D# S! L7 ~; [6 T7 H - ), r8 V1 \; \# e( w- H n2 s
- )! p! V6 r; c4 N/ p) K: k: A, x
- (T
; V% ~% T+ x9 s3 K2 B Z ?, L8 R - (setq ai_ucsp_set1 "1,0,0"
: \ z4 n1 Q' D - ai_ucsp_set2 "0,1,0"
3 [5 C; ? A. o) _3 f; U" g* D' R( X! u - ): ~2 D3 W9 q# P- A
- )+ k; C$ i6 p f, |+ ~: Y2 P3 ]
- )2 m: g, A* J3 d% ~' C# e
- (command "_.UCS" "_3P" ai_ucsp_set0 2 n; o! ~# M/ v: ?* U' O: b! z5 A
- (strcat ai_ucsp_a ai_ucsp_set1)
0 {9 p8 s+ e8 R' K8 [ - (strcat ai_ucsp_a ai_ucsp_set2)# R6 n( S; n' z2 e) ^5 i% R
- ) 2 o6 f5 Z2 q% o* x/ J& N
- )
# |% L4 z: b5 \! f+ e - )
! N" b; `3 n$ _7 y& R - )
* P `: n0 X2 j% y1 g% r+ ~ - )( r6 `, R$ ~) n2 y" B/ `
- )
* x' J3 Q7 t8 Y8 M, J - ( j- k+ E1 B; `, ?2 I- g
- (defun ai_ucsp_p (val currtile)
* j0 g/ _& g* S& K - (mode_tile ai_ucsp_currtile 4)
3 W; g' C0 R' @" _6 E" b( c4 I - (setq ai_ucsp_pick val4 B# N2 j R* ^) i, _
- ai_ucsp_sv nil I) ^7 S5 s' G, j }- V
- ai_ucsp_currtile currtile
) J# m( ^" h. z7 c2 a8 p - )' }& S, }/ G7 k. x" Z
- (if (/= val 1)
- z. U5 V- E$ e7 z - (setq ai_ucsp_chg T)1 N1 @+ [9 j$ p
- )
. O% m; W5 }) X1 f( u8 n$ U. a - (mode_tile ai_ucsp_currtile 4)
! e' b5 ]6 F0 m: l: T& T1 X - )7 c! K0 @% N7 l' E
- : T/ a/ x4 x- e& z3 { X/ X7 `
- (defun ai_ucsp_swcs ()" z* O; S" P8 n
- (mode_tile ai_ucsp_currtile 4)8 Q k' ~8 a. a7 _
- (set_tile "ucsp_a_wcs" "1")/ J# x7 }, Y8 `& F, U8 `
- (setq ai_ucsp_pick 6
/ ?! y$ P( ` n9 O. N0 X! w. ? - ai_ucsp_sv nil
# ]# w9 C2 U6 }/ [, ?( l1 I - ai_ucsp_currtile "ucsp_world"
# {) l% ]" z9 u q' I - )6 t" J8 i7 p: q
- (if (/= 1 (getvar "WORLDUCS"))
+ W0 q9 b* q2 i% E - (setq ai_ucsp_chg T)& _1 r) @6 {4 k% m
- (setq ai_ucsp_chg nil)4 q# t H/ u# M) S0 t$ M6 P+ D: d
- )% R0 ]/ p6 \( d, _$ Y) d' o
- (mode_tile ai_ucsp_currtile 4)
! k( g8 J% O r5 ~ q - )
, l9 D' N" v5 H/ s7 V" H - 7 f b2 E. g* ^% P7 A
- (defun ai_ucsp_cview ()% ~- i( k( H9 E* K
- (mode_tile ai_ucsp_currtile 4)
6 n9 c" [. B3 D5 _2 x - (setq ai_ucsp_sv T . V& E( _+ X9 u& U1 {0 P
- ai_ucsp_chg nil
4 h. {" | A/ t8 f5 o - ai_ucsp_currtile "ucsp_cview"
' \' W+ |, o: f# n% h - )! f! u b4 ^- U
- (set_tile "ucsp_a_wcs" "1")# |) o. `9 ]: L* P; c9 \ S
- (mode_tile ai_ucsp_currtile 4)* [' q9 v/ L5 z/ n4 m( T# W
- )
r' P4 @, P# K6 S/ I/ g9 u' D
& C( Y- z$ p) J6 c) y- (defun ai_ucsp_rucs (typ)& K2 o5 d' U% Y. P {0 I$ m3 Z% z+ z, `
- (setq ai_ucsp_a typ)
% B- F% d( e5 ]6 { - (mode_tile ai_ucsp_currtile 2). L$ X) x, n6 Y, l& h+ s
- )
9 v% C& s5 m) _/ u& Q' x' U/ ~8 R
r% {6 ?- L# x; L4 K. s8 J- (defun ai_ucsp_prev ()
. q1 f$ t, B- b7 z- P - (mode_tile ai_ucsp_currtile 4)# l) O7 y7 Y3 C/ i- |& J! H% i# T4 @
- (setq ai_ucsp_prevs T& g) {5 b" r9 u4 q7 [* Y1 |
- ai_ucsp_currtile "ucsp_prev": M$ A8 U4 ^+ \
- )
. C }, d" \/ I. [ - (mode_tile ai_ucsp_currtile 4)5 b: |& Y, ~# n. y
- )7 P' j# X6 z& D5 m
- J% D \* T' J" p0 A2 j; K7 E5 }- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)
+ F, B0 z" p( k" V - (if (not (new_dialog "dducsp" dcl_id))' v3 i! K( c1 w: f8 F5 ~
- (exit)" l, E" w. S: I
- )" l8 u" g2 E- @) k2 y8 y
- 5 {+ m6 J5 {3 X/ q0 r: D+ C
- (ai_ucsp_start)
7 I. J5 W- k/ f: S' w0 w8 T - (setq ai_ucsp_a "@" ) L4 E2 r( s: a) ?7 ?0 p
- ai_ucsp_pick 2
2 p3 `# m0 w& p0 {0 ^9 ^+ B - ai_ucsp_currtile "ucsp_top"
1 _/ Z6 y. E0 [ - )( E! P2 `3 [, ^+ i
- (if (= 1 (getvar "WORLDUCS"))
2 D$ B- q; j4 `7 E( q - (progn3 k B8 H8 E/ D5 {6 ]" ?
- (set_tile "ucsp_a_wcs" "1")# O6 O) n+ ~7 [5 c( ]& x
- (setq ai_ucsp_currtile "ucsp_world"): F# x5 g6 [1 J2 _4 _
- )
: c" M7 ~3 s- f% r0 R - (set_tile "ucsp_r_ucs" "1")
" S5 H U$ h3 f/ e, z; Q9 E - )* \ O" N( s1 X0 T/ \! s+ J
- (mode_tile ai_ucsp_currtile 2)
3 g6 q) h$ H+ p - (mode_tile ai_ucsp_currtile 4)
+ }& U, x5 g# C/ R, x7 F& t' h - (action_tile "ucsp_world" "(ai_ucsp_swcs)")
) C3 g- [# B7 C - (action_tile "ucsp_cview" "(ai_ucsp_cview)")# J, p5 j- ]; |5 N, M- C
- (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")
5 S9 Z. w, b1 J: _* f- Z - (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")+ q8 V6 p; B. H
- (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")5 W- h" p& E( _7 g* k x+ J
- (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")% |( z, W# q) z1 l" s1 a
- (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")' d$ ~$ e5 r- L; }5 B% o
- (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")
( b. U( }/ }6 o3 E' i/ L - (action_tile "ucsp_prev" "(ai_ucsp_prev)")
( Z, k. n7 E. }+ z& i! O - (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")* q* v/ D6 L' @, x6 J+ s1 n
- (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")
. x/ r( R* r, A2 [9 ]+ K - (action_tile "accept" "(done_dialog 1)")
( Z5 U: ~' o f1 {$ x7 o - (action_tile "cancel" "(done_dialog 0)")0 N5 V9 J6 c0 `3 z; E# M
- (action_tile "help" "(help \"\" \"DDUCSP\")")
7 ^$ K$ L, R0 a' ^ - (if (= (start_dialog) 1): J3 s! S- w% Z8 M
- (ai_ucsp_set)4 r5 n. a- n, C9 U: E
- )! A6 E; p0 @9 d B7 {
- )
3 v' k' D! `5 }) D( ~
5 X7 M5 Q" Y6 b$ F7 x- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs
* y/ {1 |" ?- g; H g - ai_ucsp_sw undo_init)
: F4 ?- @5 z/ J! l! r
+ F# K, b6 r* ^8 ^ Q+ K- ;; Set up error function.; @ U4 ]+ C2 H# V. K8 Z8 X/ E
- (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho. l! l2 z4 w' x9 d6 R4 a
- old_error *error* ; save current error function
7 \! H. Q* k8 h1 ]1 { - *error* ai_error ; new error function/ N2 A5 ~( \2 D/ m
- old_osmode (getvar "OSMODE") ; disable OSNAP for duration- j c, i* ~3 c' `8 l9 g+ A
- ); d9 D! A1 Y+ O
- a4 G1 [/ D* W) L* u$ q- (setvar "CMDECHO" 0)
$ C2 r' Y* e( [/ }# _9 a. w% ? u - 4 _( e) F& a! P( a9 j6 Q8 j
- (cond3 _. g5 \; D$ W
- ( (not (ai_notrans))) ; transparent not OK
1 }- V* k. W! v* u: z - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
) M. u, ^4 h% a( L' H( W - ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?; h( P2 r7 z8 S( Y" e; J$ i* T) |
- (T (ai_undo_push)8 T- k( ~& w! y; \
- (setvar "OSMODE" 0)) y$ S. H* ]( s) X' t' [5 X
- (ai_ucsp_main)
4 L5 @$ K. O0 p: X) r. h: m - (setvar "OSMODE" old_osmode)4 ?5 `: t. K/ Q) i
- (ai_undo_pop)8 q$ C1 V X( ?! Y
- )
5 b/ l/ K8 E- o6 H+ P3 s1 E - )
0 f0 Z" W n" t; K, k2 A1 f
5 x% o. I: a: |. c1 f, m- (setq *error* old_error)
* r) g5 w8 i y: m - (setvar "cmdecho" old_cmd)
7 c6 B% k# p- m; S& Z n9 s - 2 t8 @! P) t( S. Y# j. Q% g
- (princ)/ {/ x0 [4 ]% @( H6 K
- ) `/ m* X9 `, m! z" L
4 o" t. q% p$ w9 q- (princ " DDUCSP loaded. ")7 O' c6 q" I3 `# f9 G# }
- (princ)
a$ ]! D1 B1 L! P% N/ k - ; c* V; K) \: J- @: W9 ^
- ;;;???;;;---------------------------------------------------------------------------------------6 n( e5 p7 @* Y+ p5 C
( K, n, G7 U& F/ G$ q- ;;;----------------------------------------------------------------------------# v0 c9 r# V% R" f3 z
- ;;;" o$ l$ V2 H9 R6 L
- ;;; EXCHPROP.LSP
1 ?7 H+ C5 T$ n) s3 |7 V j - ;;; Polyline and text modification capabilities added by
0 W. R/ ^& m# w+ f. ` - ;;; Randy Kintzley
) p2 ^! m, q0 h6 b+ X) O3 a - ;;;
6 I7 @. x z8 u" A/ _1 ? - ;;; Copyright (C) 1997 by Autodesk, Inc.. n, S5 @0 z- u- |0 E9 Q p
- ;;;
$ d# g0 |) u9 x' @# v9 d7 B6 F - ;;; Permission to use, copy, modify, and distribute this software
0 e; j( ?3 l* j$ N3 n5 [ X - ;;; for any purpose and without fee is hereby granted, provided
, q; c9 d3 ?- q8 J' n- I) I - ;;; that the above copyright notice appears in all copies and7 [7 x- P8 {6 N6 y- X
- ;;; that both that copyright notice and the limited warranty and6 k, S1 t9 U$ N- ?$ @. K
- ;;; restricted rights notice below appear in all supporting
; O, ^, G4 S% o# c! t - ;;; documentation.0 V; Y2 A- c8 f/ @$ [
- ;;;- {2 _" y2 c+ q; X
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
6 C4 ~* F# T: G% h - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
3 }, Q' c% A+ d! U' I2 Y2 k8 n( p - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
" g. f) U' M3 R. c* C" }0 j/ Y - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
, h& }; v( Z, a; a9 M - ;;; UNINTERRUPTED OR ERROR FREE.: L2 T9 c. W) |: Z# N# R
- ;;;5 s$ d, K: h1 q" A" ?/ L7 K8 a% H
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to+ c8 ~0 J) e' Q( a5 e! i; P
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer3 V; I* V9 z2 r" E H, C. _
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
% w8 T, ~; O8 n, X - ;;; (Rights in Technical Data and Computer Software), as applicable.7 k- _6 i% Z; u d
- ;;;7 J$ r6 H6 w; X) O0 x/ b2 m
- ;;;.
8 c2 a6 m! j: {( e - ;;; 28 February 19979 T7 V+ _, T( v* M
- ;;;& c" n- @6 A# V; v, s& i! o; ?5 M
- ;;;- w+ I8 A" p6 E
- ;;;----------------------------------------------------------------------------
2 b: n3 s. J* O- M; d - ;;; DESCRIPTION
4 u! h+ o' `9 R% a6 L# r0 F - ;;;----------------------------------------------------------------------------
% ]0 B5 j3 }2 m) g8 w- I - ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This
: \" z& ~7 O' Q/ h8 X; F - ;;; command gives the user the abilitie to change several characteristics / l( {7 s% |& W3 j+ C7 @% _, i
- ;;; of selected polyline and text objects. ) z- o: C, }4 D3 q/ d% j7 V
- ;;; The style and height of selectected text objects can be modified
% U3 U7 s6 _" |0 b( x - ;;; (including text, mtext and attribute definitions) as well as, width and
! j9 |+ n- C/ n - ;;; elevation characteristics of selected polylines (includes lightweight and , \; x4 S- |& }: @8 }6 p, L
- ;;; traditional polylines.)* T* B8 _! `( Z7 ?: D) \& J4 ^
- ;;;----------------------------------------------------------------------------
) y5 \* k! [. z! {% |/ \0 a - ;;;----------------------------------------------------------------------------" C1 n0 D2 `3 i/ @& d
- ;;; Prefixes in command and keyword strings:
4 q* }8 ^& \6 Y$ a - ;;; "." specifies the built-in AutoCAD command in case it has been- z1 |( q1 h4 B2 s9 Z# D
- ;;; redefined.
) Z. A9 s% }! K: g - ;;; "_" denotes an AutoCAD command or keyword in the native language
: Y( x) d, s; d4 ]: l6 i4 s7 w" f! ~ - ;;; version, English.4 `8 ?7 s' ?* [# Y a
- ;;;----------------------------------------------------------------------------
f# K! Q) l+ o' Q# c - ;;;4 \0 L2 Z2 L6 ~5 Z3 y
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
% G" }, C: I* r v# Z - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;# z+ l! J: S1 s) ^
- ;Functions created as result of loading file: exchprop.lsp7 M6 W( [2 R1 k8 z6 n0 z0 l8 y
- ; DDCHPROP2- O& h! |0 j8 v0 M' k6 a
- ; DDCHPROP2_INIT
2 g7 D, j# V% n1 {6 \/ Y7 q' W - ; DDCHPROP2_SELECT
3 U% Y* i$ h1 d# q3 e - ;
/ B7 v8 j- D9 H% H' T( D - ;Variables created as result of loading file: exchprop.lsp: j7 n* I2 ?' E
- ; OLD_ALLOC* q: D; E% q' P/ h8 v
- ;/ t( w$ q3 P/ ^- N4 l' c
- ;Functions created as a result of executing the commands in: exchprop.lsp
1 |4 j2 L( ?8 L: ^8 Z' N6 m2 @ - ;) |% P; ~/ I" I: E/ l
- ;Variables created as a result of executing the commands in: exchprop.lsp
" R8 b: d0 q- @/ H - ; AI_SELTYPE" }/ ^5 A0 r4 G, S6 v( l! N! s& `
- ; BONUS_ALIVE
3 m, c) S+ |1 \: e/ V2 D$ G - ; BONUS_OLD_ERROR( x# i& ?& f# C0 r5 A; q: d3 p% Q* Z
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+ B6 z& Y7 O# r D; N - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/ c7 N' t" W& e+ J. u# A
1 y v7 W" _, q8 i- ;;;
3 v, W9 W% d J f/ i& ]" V" ] - ;;; Avoid (gc)s on load to improve load time.
3 X/ |, w6 z0 M8 H4 W - ;;;
# p c9 j$ j9 } - (defun do_alloc (/ old_allod new_alloc)
, M) i, d/ ?( s p' V! T- H D" X - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))! K$ m/ x1 ^1 M) Z8 o+ }
- (expand (1+ (/ 4750 new_alloc)))
. g8 x, f& c& B% n - (alloc old_alloc), S0 N/ H% H [: e( ]* x) M
- );defun: g. R. a, |8 a8 G/ G: Z/ p
6 w4 f. f- S: X. [0 b; e9 K- ;runs at load time - rk
2 x8 |7 g& E: i! C) M! d: W - (do_alloc)
- h- g4 P+ K2 |3 f, ] - (setq do_alloc nil)0 q. Z, C9 n9 J. _' a+ p& ?* j9 k
- ;;;) o3 u* I5 C1 m! T) P1 A
- ;;; ===========================================================================
: l* e* W0 j1 a( [$ H! a; W - ;;; ===================== load-time error checking ============================
6 }# w: V" R" S$ U1 n - ;;;9 P# `# _2 U) T6 a- f K% T5 D
- ) Y9 ?1 ?; v- M1 e
- (defun ai_abort (app msg)
. M5 V& q E$ N$ ^; y. {4 T, K' j; g - (defun *error* (s)
% B- t, ~9 \( z3 I) c5 T* _ - (if old_error (setq *error* old_error))" ] H$ e/ E$ J
- (princ)9 R& K# j* p6 d
- );defun' s) w# ^# L5 ]0 h
- (if msg9 n" h' g! e& \0 h# r
- (alert (strcat " Application error: "
3 X* n6 w* ?" @' n) N - app" T$ W# p( {: Y+ h
- " \n\n "9 U/ X3 }6 s; Q, Y/ C
- msg
! m) U! M: }5 n* d# [* I" P% N - " \n": }% e. Z' v/ @0 |3 b, }9 j; r
- )
; Y% J. F7 N R- n+ Z- a - );alert/ b! L" o$ e3 ^. q
- );if3 Y: e! f7 ]1 U
- ;(*error* msg)
7 |7 G3 k4 N) H0 ] - (exit)
$ Q* m) K! ?. N1 R. e* k$ j1 h$ ?/ b - );defun ai_abort
1 e$ N3 L7 T! H, @1 D$ w% |4 b - 2 C" K) Y( P5 m+ v& f
- ;runs at load time - rk8 X" g/ h7 h8 g- T
- ;(if (and *error* ;added the if wrapper around this - rk.
- G# W% T8 z% \5 J! K8 ]8 V1 M - ; (not old_error) / a% z6 p: j: C$ s, f
- ; );and 0 B! o! G! Y% h# e9 J% L) m) H
- ; (setq old_error *error*);setq8 |0 [$ D$ H( S4 h( j
- ;);if( E% `% z- Y, I7 J Q) U6 f
- ; ~4 |1 v: x A6 J
0 ^5 j8 m* i: [+ X) N6 n: f- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,- I. Z9 m* a8 Y5 i, Y( o
- ;;; and then try to load it.
8 ], @$ d! J+ u8 ~% T! P$ Q - ;;;4 B9 C1 p3 |& x0 W) [2 M9 i% ], @
- ;;; If it can't be found or it can't be loaded, then abort the
1 Z1 ~7 K. f' l: X) X2 e% \2 i - ;;; loading of this file immediately, preserving the (autoload)3 b4 e% c, \! O
- ;;; stub function.) V3 a: p, z0 }5 s2 ]
- ; C* A& Q: @, t9 ~! }4 r5 e8 X
- ;runs at load time - rk.
0 `* M) z6 f+ I! l' ` - (cond
5 b, N7 n- h5 w - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
6 o$ g, x( E) o1 ~- x" b - ( (not (findfile "ai_utils.lsp")) ; find it/ F$ b4 g% S/ F/ r9 y0 _
- (ai_abort "EXCHPROP". _4 @' R2 C) e4 p" I- A
- (strcat "Can't locate file AI_UTILS.LSP."
: ]- d3 y* Q. B% L; L - "\n Check support directory.")1 x. d- Y: p; T: P
- );ai_abort( g/ X4 ? R1 ^$ z) ?, u
- )" ~+ ` A: K- V' O5 {, S
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
/ G. o! U" j7 d' l E - (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")
+ j$ R$ ?; C& _, z - ); P) A" m# o x3 g7 c
- );cond close& k2 a2 H0 |4 Z* x! `) m6 ~
- . `# }& T2 i& s1 L7 [8 _( S1 j" |8 E
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
$ S$ Z- Z" }: p$ e s. o - (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses# D6 i1 v" s" i
- );if ; ai_abort's alert box dialog.
+ ?4 z7 Z% g5 i) |' W) W4 y
/ y8 O2 [& L' p( h9 p ]& N- ;;; ==================== end load-time operations ===========================$ {" A8 S) W7 Y& p* m
- G! ^8 x2 ~3 l* n/ D- ;;; Initialize program subroutines and variables.$ p2 U/ l+ q- ~! N0 Y' ?2 v
- I' s: D6 | l6 g- (defun ddchprop2_init()' l7 d( { o) L/ Y/ {" m
: g g# N$ o; ?; H& L6 {- h% N- $ P {2 t. Y G- V
- l3 p+ F2 d# i# P- ;;
( s- B% Y( }# f1 I# w - ;; Define buttons and set values in CHPROP dialogue box3 V5 t7 Y5 u8 T ?. ^ F- Y
- ;;$ R4 l2 O( ?+ [
- (defun call_chp2 (/ cmdact p1 p2)* \8 L( J0 F* N
$ C( j4 B6 A# k) L0 ~8 I- (if (not (new_dialog "ch_prop" dcl_id))
! J$ [1 y/ L' s - (exit)
# M% {& j( s! O7 }8 O+ I0 V - )8 H6 \% W. }; m& d
- 9 g" h/ @$ |6 q: G/ L* C
- (set_tile "error" "")
- E* V* }8 S5 t, ], q - ;; Set initial dialogue tile values
) G. ^ t+ ^) V v5 m. L8 h! d - (set_col_tile). A6 m! U" X& b" x3 B( U$ ]! V% z: M
- (set_tile "t_layer" elayer)
% `& {% O3 P$ A+ D
1 c( K A( H" l" y- g0 _6 R- (cond- u1 T# H6 y1 D. D
- ((= lt-idx nil)* a$ Y+ l0 o- a3 I" b4 O
- (set_tile "t_ltype" "Varies"): F4 }! n4 O) m) x& L" ~0 s
- )
, m( ~! Y' I$ k6 m - ((= lt-idx 0) ; set tile "By layer & layer linetype"
: B) T. b# v" \" t - (set_tile "t_ltype" (bylayer_lt))
' ]; O) D$ b3 I. y2 S' V4 v [# x o - )" d7 r9 U U$ y- X2 Y. q
- (T
9 z& s! X& |' j4 l: x8 ~ - (set_tile "t_ltype" (nth lt-idx ltnmlst))
3 S% _/ q; W* X. X& _+ I% S, E/ m" _9 l - )
2 u( w5 ]. B# \0 G k$ d* i - )* e6 i6 y* H3 s2 v, L4 i$ B) I8 C; K
2 p W* }( a9 F6 R9 Q- (if (or (= ethickness nil)
, M0 h/ Q( Y' k' v# W - (= ethickness "")
5 d6 l' `8 F8 ` - (= ethickness "Varies")
# k; [% R* y: K8 K1 Q6 ]5 n- L6 j - );or' P) F: u* U; e# d
- (set_tile "eb_thickness" "")
. a) }% Y8 D/ j/ G* ?4 E - (set_tile "eb_thickness" (ai_rtos ethickness))
, @7 m$ l1 L& X5 p( t) \ - );if
1 T3 T1 ?! X$ e# Y+ z - (if (or (= eltscale nil)
% I1 a) z* ]( _: x - (= eltscale "")5 n( r& e* P. z! S
- (= eltscale "Varies")
* A0 a5 z* Y( f9 J! R3 ?& ~ -
! C# c3 y5 P- O5 P4 } - )
0 o% v, k2 g8 H- l0 ]3 Z0 D* W; ] - (set_tile "eb_ltscale" "")& F' ^" H+ r5 P1 ?' z K! K* p
- (set_tile "eb_ltscale" (ai_rtos eltscale))" j7 E7 O) \# E+ R
- )
o" b2 k; _8 \1 [* M% V/ y - (if* c) q( y9 {% @7 H& z
- (numberp ewidth)* D8 o, M {% Q/ k1 E$ J) y
- (set_tile "poly_wid" (ai_rtos ewidth)). \% {7 Q) u7 I2 e
- (set_tile "poly_wid" ewidth)" M3 A& R- M5 A* @2 k/ q+ d3 O1 J
- )
4 _2 ~7 S3 C4 }: e! T( N - (if& d. i' u$ v6 J9 p0 L1 P
- (numberp eelevation), L0 B8 A; a- x; I
- (set_tile "poly_elev" (ai_rtos eelevation))
# v; u; R% m, F" P* E4 @, H - (set_tile "poly_elev" eelevation)
8 j: u! |( |* |5 |; t. T! I1 }( A - )
9 r& {$ w: K' [& b. ]/ N - (if8 m. `' _. t1 l1 Q% P
- (numberp eheight)
- _# N/ k- C; p5 {. y* j6 a* q; L - (set_tile "text_hgt" (ai_rtos eheight))7 K9 }2 t' K I$ S! F1 s0 j
- (set_tile "text_hgt" eheight)
. Y, T" C; I) y Q0 ~0 |6 {, H - )
0 ]0 b" {4 e) h5 D' T - (if (not estyle)
2 f0 n" s8 n! F - (setq estyle "")
- T, c% P. E7 }+ e$ u# z - );if
d% ?" p- A9 `9 O& Z - (setq hair_style_list (tnlist '("style" 16)));setq; z. M" l+ F* p
- (if (not (member estyle hair_style_list))) h* _# Z7 R" b, A
- (setq hair_style_list (append hair_style_list (list estyle)));setq ]# L5 Z1 x l. Y
- );if / _9 B* d: \. V4 J; `" l0 _* ?; b
- ( ]* j( d2 V3 o- p- d) z
- (setq hair_style_list (acad_strlsort hair_style_list));setq! j! J; a" m; p' S. n3 Q
- (mpoplst "text_style" hair_style_list)! n" s) z; S( O5 n
- (set_tile "text_style"
6 l# ~6 N- n: C2 c - (itoa (position estyle hair_style_list))
+ r0 [3 \1 v( ~ ~9 U) T - );set_tile ! e* s/ _' p8 k7 e6 \ _! f
- & U3 N9 T8 S5 `4 G9 s* j
- ;; Disable tiles if need be... ;@RK6 _& S' ~. ?7 N0 ?; m% z4 f5 |
- (setq a 0)
n, ~6 @# K; }8 _+ ~ - (while ( < a (sslength ss))
3 i8 j3 |4 Y8 [$ b - (setq which_tiles
* u1 d4 D1 a! [8 m, e( T# w - (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))
, [% G1 W6 s) ? -
+ @5 Y4 {6 B/ x6 u! D - ;; If all fields are enabled, don't bother checking anymore.
4 ?0 T5 g* \; D% Y+ k& [8 Z - (if (/= which_tiles (logior 1 2 4 8 16))- |8 X8 ?0 @: R3 S, G- a4 f
- (setq a (1+ a))3 R' ~0 w$ m& d2 }
- (setq a (sslength ss))
: j6 w2 G0 B3 R/ Z( T+ H2 f - )
5 F' D' l9 g3 W8 d, K - )3 r4 u0 `. k* |' D9 J( @* m; q
- ;; Layer Button and Text Field
" e: @- n/ |" m( I1 c2 _& J8 y
: c1 M8 t, c5 v. F. L) z- (if (/= 1 (logand 1 which_tiles))
* O6 c* I$ K! _* n, y: [" S) y - (progn
. I5 C5 S# M4 v8 C! K& {( \% G - (mode_tile "t_layer" 1)* U- ~ d3 A! [' q% O1 p
- (mode_tile "b_name" 1)
7 O" L& B* e8 r2 u- W$ r - )( b v) c& O$ @7 G3 w
- )7 [, M! f' T: j: u8 F
, \6 u2 z( v9 @ Q! {- ;; Color Button and Text Field8 c' h0 F! G, P h! ?9 c
- (if (/= 2 (logand 2 which_tiles))
7 G) g* @/ o5 a/ S% C- b4 I - (progn
5 P- l5 H6 o& ]% r) D2 N - (mode_tile "t_color" 1)
; X1 i* p, S" L3 w7 a - (mode_tile "b_color" 1)
4 q" Z0 A& N4 F$ { - (mode_tile "show_image" 1)
% D' a/ L% N% v/ M& f - )5 t) C$ b( A: @5 U) ?- h7 i2 B
- )# f6 o {! w8 A! w
- ;; Linetype Button and Text Field, J! } C J \, k
- (if (/= 4 (logand 4 which_tiles))# u2 k2 ]7 B( z6 y/ O$ ~
- (progn) g" r9 H% }* w( L/ s {5 t
- (mode_tile "t_ltype" 1). R8 {, a+ O& q( d& g; ~
- (mode_tile "b_line" 1)
5 b$ F3 ~9 a9 k9 C4 g - )
8 u0 d: R7 V1 k5 B* {2 R+ K% I5 [/ @% I0 E - )
9 b t+ x7 }* F+ B( F - ;; Linetype Scale Edit Field
) e7 h# @5 Q4 Z% H) d4 N - (if (/= 8 (logand 8 which_tiles))% Q( }" S7 @( v
- (progn
# ?8 X! r1 }6 O+ Q, |* V6 f! V" a - (mode_tile "eb_ltscale" 1)9 E$ B/ ~4 p: X
- )
3 W0 | W; s- c - )
# [8 x; t, ?! S5 w4 s - ;; Thickness Edit Field.8 b, C6 ?) {, E! s9 x: }3 w
- (if (/= 16 (logand 16 which_tiles))( I% R7 r c) |/ q/ U0 x0 I1 s
- (progn8 O* ^& ~2 v; u6 M" d
- (mode_tile "eb_thickness" 1)
; e E5 ?/ Q% w - )2 m( F6 r, f+ Y9 M
- )* ] N2 @; y- p( y* q1 w4 }
2 B3 M4 S8 A: Y8 \! O- T- ;; Polyline box and tiles @rk 10:05 AM 1/30/97- e0 Y& u q$ o6 O/ L9 P
- (if (not (= 2 (logand 2 eflag)))+ l+ J! b1 t3 Y8 h' k
- (progn1 A$ E, p5 f ?8 n- w
- (mode_tile "text_hgt" 1)/ v' d) I! } x9 e3 D/ J
- (mode_tile "text_style" 1)
+ a$ `2 U$ w3 W+ x: @ - );progn- f) O) c8 X$ C0 I) g: g
- );if0 l3 | @* W D1 n) _9 M
- (if (not (= 1 (logand 1 eflag)))5 r# G% L* @: f
- (progn & X, F Y3 b, @6 [/ F3 ^
- (mode_tile "poly_wid" 1)
3 R; E$ I, R* d- E: p# O - (mode_tile "poly_elev" 1)
% I9 @( ~: H2 m - );progn then disable polyline fields! [% S+ R1 V' o$ B1 O/ T7 L* s
- );if# C8 d: h$ A+ X: {
- - w4 e: U4 |, d, a) W m+ j
- ;; Define action for tiles* M2 X$ `0 j5 }0 Z; S
- (action_tile "b_color" "(setq ecolor (getcolor))")
7 [, q# A! Z, m - (action_tile "show_image" "(setq ecolor (getcolor))")
. ^# d, b' N9 F4 ^3 o Y - (action_tile "b_name" "(setq elayer (getlayer))")
, F) P! H6 B5 U - (action_tile "b_line" "(setq eltype (getltype))")9 }7 a5 S) z8 J+ K7 S' r# |
- (action_tile "eb_ltscale" "(getscale $value)")
7 z: b6 V' i4 A$ ^ - (action_tile "eb_thickness" "(getthickness $value)") \% [" \+ }: |: y2 V+ J. a. i
- (action_tile "poly_wid" "(getwidth $value)")
! M# U$ `' K" u( P1 Q4 ]+ R - (action_tile "poly_elev" "(getelevation $value)")
$ U/ B4 t4 c/ G( E - (action_tile "text_hgt" "(getheight $value)")
, U& a8 K- b7 L$ P T/ T - (action_tile "text_style" "(getstyle $value hair_style_list)") 2 P- w2 Y& D6 p! w/ ?" z+ ?
- (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")/ r+ }( X" C1 U& R- Q; ?* f0 I4 T
- (action_tile "accept" "(test-main-ok)")
" D$ L( r8 x1 J- c1 x% N - # b* o/ B, _9 J/ l5 {# E i
- (if (= (start_dialog) 1)6 p# m1 N& |# ^" H- K
- (progn+ K) p2 d9 l% q' \# A$ c, b
- ; Update special properties for polyline and text selection-sets.
5 ~* T9 J; h6 v1 s V5 j - + l. }6 ?; z- W. X% n
- (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop
- V- f J6 |# J3 }: N - (or ewidth
6 o- p+ {) u% L9 m7 t9 Q( G - eelevation
+ e, \4 H3 O7 C) m - );or0 P: c& p- r: i5 W+ C
- );and1 U" m s/ z, s! v; ?% U- e
- (progn
! p! ?5 V- J1 e0 \7 @; M) }0 Z& a - (setq ss-index 0
7 C$ B0 Y F8 F4 \ - ss-length (sslength poly_ss)- d' v4 _& |+ u) ~3 L
- );setq% m* N: F+ Z3 y4 d7 ]5 ^) J3 B
- (while (< ss-index ss-length)( H0 B# y% ?6 R$ P
- (setq ename (ssname poly_ss ss-index)' n* X3 s! G. G! q( t
- elist (entget ename)$ T2 J' b1 K1 a! X8 Y- \
- );setq }8 z1 D ]( _, [" e
- (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp
0 D6 l9 C! `/ | I1 M - (if ewidth
& h3 V' M, T5 B7 n0 D - (command "_.pedit" ename "_W" ewidth "_x")
9 _5 A F- V1 Y! ^% Z - );if
b/ R3 R( x& |2 k& T' @ - (if eelevation ; a& c( f! l+ E) `" I. U7 ~
- (progn. t2 m: ?$ T1 ?! O% p# Y
- (setq p2 (list 0.0 0.0 eelevation));setq
4 [0 m6 J k- J. p$ x: L! ^6 m - (if (equal (cdr (assoc 0 elist)) "POLYLINE")
# e2 K O C0 g* q& N - (setq p1 (list 0.0 0.0/ ]' b6 o( Y' r
- (caddr (cdr (assoc 10 elist)))' E5 R" _( I1 y( o9 h. S6 m
- );list
* z, t+ H' T, U* {, w1 [ - );setq
, k/ P) x; S& O5 \ - (progn7 X2 A1 K. F! B+ ?( r. K" w
- (if (assoc 38 elist)
5 `8 x9 u% y1 C! ]9 ?% | - (setq p1 (list 0.0 0.0
7 i9 `8 `+ m7 l% U) q2 l1 O - (cdr (assoc 38 elist))
: h6 G6 D/ c! N7 s# ?% [; K - );list. b( d) I' ?- y" z2 \ }
- );setq3 [ H% m/ [3 o. W8 i' Z$ D
- (setq p1 '(0.0 0.0 0.0))
# f+ I0 q% y3 D. n; V - );if( v( ] t+ o0 \- y
- );progn 6 G/ C! T; b3 K( i0 U
- );if
" C* s7 h9 t! h% _7 I! e - (command "_.move" ename "" p1 p2)
K6 ]! Y* s& i- m0 q; l: { - );progn then change the elevation of the polyline9 Z+ H) b+ {! D+ j4 M/ A
- );if* E, ~8 S6 _/ c9 [
- (command "_.ucs" "_p")
9 h4 V" H% z$ v& H+ h! A' v* L i - (setq ss-index (1+ ss-index))" A6 X, ]/ ]7 [& Z9 n- A
- );while: L2 p2 v3 O* h
- );progn then polylines are in the selset& v; Z4 b: S; v, x
- );if
! p1 o0 A/ p' L) o3 X3 F - (if (and (= 2 (logand 2 eflag)) ; text
, x& L7 s: u" w- ^) |7 H - (or eheight
; ?0 k6 v+ a# T" A* B- s& q W) N - estyle$ F! a* f7 c* y7 h" E. e
- );or
+ I2 L3 Z2 x. A0 ^) Z - );and
6 x; F/ H+ C; k2 |& [- l. U4 B - (progn
, L' X+ b! E3 E: F - (setq ss-index 0 ss-length (sslength txt_ss))
1 }" i/ w6 x( d! N* t: i' u& S; O - (while7 a2 S9 Z0 A- ?% ]. P6 r
- (< ss-index ss-length)
8 |) z7 o4 s; x& ~2 P2 J - (setq elist (entget (setq ename (ssname txt_ss ss-index))))% M# D0 V) k& K
- (if (numberp eheight)
- n1 M; W! b8 X2 ] - (setq elist (subst (cons 40 eheight)
8 I* f ~0 j- ~$ p) F% i$ Y0 J - (assoc 40 elist)
$ T" m; K3 ?& o0 L - elist1 @: u: \. p' G$ p+ T2 x# H0 ~
- );subst" n! s, ?5 \- N" l3 e% j
- );setq
# E8 @( |" Z+ w% F0 e" f! }; | - );if
, ~+ X; E4 ^- d# `, H# r" n7 @ - (if (and estyle ;(not (equal estyle ""))) @6 S H! s6 _: a; @; s1 b
- (not (equal estyle (cdr (assoc 7 elist))))
& h2 r) P: M3 h" v - );and
) n8 F, }* }: V# }8 i' ^! { - (progn 7 J9 R" S4 j# t6 j7 _3 }9 b
- ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt
: h* Z# B- D5 m& o* w - ;(if (equal "MTEXT" (cdr (assoc 0 elist)))
8 n+ m8 U0 l; ^, b( C) ? - ; (setq elist (fix_mtext_fonts estyle
! v9 q4 ^3 r" F% ?; X - ; elist
: J; x& r% |$ [ - ; )
$ ]. k& K; t) R* Z; Z+ N0 U# g - ; );setq then. Y* r0 u' c. c
- (setq elist (subst (cons 7 estyle)
) D) o$ u9 z* A5 J, {5 K8 Y: ^( n& s - (assoc 7 elist)
/ @: E6 e2 Q" Y T- O1 |1 g - elist7 O+ h. r, p3 U. m+ `, E
- );subst
: h! k7 e) n. H y6 [4 X - );setq else
5 q: v. U0 e0 |1 k( W - ;);if
N1 w' v# ~- b* u - );progn1 m9 ] @+ z2 P7 {0 A Q
- );if
8 s# W" v' _; V* f' W - (entmod elist), c- L* V" w% \: X* B$ v9 j
- (setq ss-index (1+ ss-index))( V& `; k% v8 l( g
- );while
: R& v3 s1 P- F. j* ^ - );progn then
0 f, A/ f& ~( K8 z# Q - );if+ r V6 r n% s" ~4 \- V" L
' o; N7 k1 ?' {* A( j- (setq cmdact (getvar "cmdactive"))% ~5 X& p! H# x: N, h, u5 B
- (command "_.chprop" ss "")
0 e, q: U8 U0 c. }1 C - (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?
/ R( C* o* {& w7 s: b* k8 [ - (progn8 A' k0 W. J0 b' ?! b5 D
- (if ecolor* d1 i, X9 i7 }- x( x; F
- (progn/ V7 U# m _" D" V+ R, ^1 k
- (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK"))
5 {6 p2 I$ f# |+ A - (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))6 g# ^% w% L8 O! m, _5 ^
- (command "_c" ecolor)
" Z; d' g) ^- u* t' k' y3 c - );progn then+ A: t+ S# e0 C4 {/ O$ U
- )
0 _/ v6 }) y% O. M" X - (if (and lt-idx
+ q7 Q3 H& t7 l0 ]6 ~, o - (/= eltype ;|MSG0|;"Varies")
- K% k/ W+ R" E. D+ H0 h5 H - )
' t% M9 b+ k$ j9 @( h+ H - (command "_lt" eltype)
- j0 o2 a+ I' B; k% {; X - )
8 V/ D) X+ F9 } - (if (and lay-idx 7 T4 C- D3 j" K4 u' R
- (/= elayer ;|MSG0|;"Varies") `# f1 \9 M/ @" n9 W2 P% |+ ]( k
- )+ E2 c, ?+ _+ I
- (command "_la" elayer)
( ?) J0 t: d$ a - )
_/ R; x% r. @' b0 M - (if (and ethickness 5 W3 I P9 l" X
- (/= ethickness "")7 ~% q+ j- {% A: G# s1 y6 `5 Q
- (/= ethickness "Varies")
8 m- w" |; P. }( _3 U8 i& Y - )# S1 U ]( s* s0 o5 h
- (command "_t" ethickness)$ n/ \& z+ o" `8 g
- )
, G( ?( U8 p1 q6 S$ B - (if (and eltscale (/= eltscale ""))
6 x4 H D' t: ^1 `$ | - (command "_lts" eltscale)2 k" x( b+ p- R
- );if4 ?; e0 R( l: Z$ ~( G! ~& B9 a
- (command "")
" _8 ^" o0 B, S - )
0 p+ Q- R# V' V: V7 i, A - (princ "\nProperties unchanged") ; CHPROP didn't like our SS set: c* O; F* H# J
- )$ t8 b, g) i! S
, \+ r$ t( `) c: d- );progn then OK was picked in the dialog.: H" Q2 s( z5 Y1 G. k5 P- D) J& \% G8 j
-
1 w( n: {: [8 Z - ;; Fred GERBER - 25-AUG-94
) L1 q& t9 w+ H+ X - ;; Don't print the "Properties unchanged" message when the user cancels
8 B/ U9 U6 ^5 k( ? - ;; the dialog because he knows that already (otherwise he would have4 `' D) X5 R4 } m0 h: ~6 O' x
- ;; hit the "OK" button). Display the message only if CHPROP fails for
+ _7 L) P) U8 H6 U' {) N - ;; some reason, because it is not the expected behavior of the command.. ?9 M2 y; f& \, V7 d
- ;;
" P. I" D- Q: ]6 @ - ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")6 q2 @2 P1 H0 A% T2 y
- );if- b3 z7 w4 `6 {
- (princ)
- y- G+ H* j) v4 U% {- p+ E' b - );defun call_chp2
( G; M* f5 z- _& b x - ;;; m0 v: G3 ?5 I+ M( Q
- ;; Function to set the Color text tile and swab to the current color value.
: z: m4 { D+ u: ~# r& L - ;;
0 W% R+ k5 a% h% I; L0 ^9 u6 X - (defun set_col_tile()
7 s0 |- y$ g& I4 q0 x - (cond& D- j+ V, t% e8 {8 g9 S( P
- ((= ecolor nil)
+ n" m; R! p, t - (set_tile "t_color" "Varies")/ O' d" Y0 t) r1 g, H" R' }! j
- (col_tile "show_image" 0 nil). f J) g3 a$ n: j& t5 l5 x! f
- )
( K+ l$ A" s& r, U R - ((= ecolor 0)
, u$ u* l0 t# w: y: y4 w - (set_tile "t_color" "BYBLOCK")) d$ a9 m1 F/ {/ I$ ^3 b% K0 I( v
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white
+ T) Z+ X+ |1 H* a2 s. A% j4 l - )
- p; ` }" g+ a$ I+ M/ k/ \ - ((= ecolor 1). k. F( Y `" D7 B& d# m
- (set_tile "t_color" "1 red")1 b1 S$ u& Q0 @
- (col_tile "show_image" 1 nil)8 S" [; V# S) L; Z2 v9 ^
- )# T, _! ^8 s; D
- ((= ecolor 2)- ], A& i2 f: f; M7 K7 N3 S
- (set_tile "t_color" "2 yellow")/ D) V1 N8 r4 O+ y* j4 |" t
- (col_tile "show_image" 2 nil)! J- C$ X0 l% W
- )
+ a y: h3 k1 E% K - ((= ecolor 3)
0 o+ y9 m t- R: ` - (set_tile "t_color" "3 green")
! @8 A7 F) S5 K8 m0 _0 z2 O! c - (col_tile "show_image" 3 nil), h5 }( P& X' J/ M; }6 q
- )
1 O' l, _( D& h - ((= ecolor 4)
. j- z/ ~5 |) U! J- `! x( z } - (set_tile "t_color" "4 cyan")
, [- |6 F; J/ K, h" j/ p - (col_tile "show_image" 4 nil)
9 f) \4 S2 q! h& x - )
4 U8 N; g1 G9 N K - ((= ecolor 5)6 Z! _. t, G9 ]* x f9 [
- (set_tile "t_color" "5 blue")8 t, Z# y6 @/ A* Z' M, z Z
- (col_tile "show_image" 5 nil)5 F& E1 q3 _' z. B' H" ]
- )0 V1 w* N9 @% V/ g# ]
- ((= ecolor 6)
! w6 I3 p. e# D - (set_tile "t_color" "6 magenta")
; T7 J8 f$ f) A - (col_tile "show_image" 6 nil)
. R, U' h1 @. s1 _* \, p0 o - ) s/ J9 k1 u2 ^$ a# H/ ]
- ((= ecolor 7)
) e' O1 j. {" }& [, A1 p - (set_tile "t_color" "7 white")
- N& c( g7 y, w4 | - (col_tile "show_image" 7 nil)+ }0 J: t% i; _( x! _9 f4 L n
- )/ w: ~; e" Y: }' ~- L6 a7 \+ D
- ;; If the color is "BYLAYER", then set the tile to- [2 o, u3 r& e$ a# b# d/ z
- ;; show it's set By layer, but also indicate the
% o, k3 W o' b: F% N+ w6 O2 ^# m% c - ;; color of the layer - i.e. By layer (red)5 d4 q6 Y" L2 R) K6 Z4 K& b; x* y6 F# _
- ((= ecolor 256)1 U+ ~7 g5 I9 c6 D% [+ b5 \: v
- (set_tile "t_color" (bylayer_col))5 z) ^0 g) S5 ^! r, Z) T
- (col_tile "show_image" cn nil)
& U, H$ g6 U1 \0 @; C3 y/ r: p - )
* A( o6 U3 x. ?# \6 {3 W' _/ [ - (T
5 l4 v/ \, o/ {& {1 j - (set_tile "t_color" (itoa ecolor))* Z$ `" s4 v; i$ g" e
- (col_tile "show_image" ecolor nil); |4 B0 }' a3 H4 `
- )
8 h2 h7 U3 @5 I: }" t - )
6 m/ l m. _' A+ R, ^* T$ s; W3 k1 G - )
9 Q/ b. @+ l! C F6 g' \ - ;;+ c8 S# m- `5 W8 ~
- ;; Function to put up the standard color dialogue.; Y; S, H: y% s1 H- {
- ;;2 B x* A& B5 S5 B5 T* U; n# f! @' T
- (defun getcolor(/ col_def lay_clr temp_color)2 E7 Z6 S; X- Y# j7 |
- ;; col_def is the default color used when rq_color is called. If ecolor
1 J2 Y# N' k; y# E. o - ;; is nil (varies) then set it to 1, else use the value of ecolor.
; z: m( L. @5 S! f$ @" L - (if ecolor2 e2 D5 G v4 U8 m$ C9 t3 u
- (setq col_def ecolor)
9 k& }) Y$ d8 ^- L3 c* Z2 H6 G- R- T - (setq col_def 1)" n. k' U2 n& J0 u: g' j+ @
- ), E) F+ q( K5 k( h4 E }4 L
- ; @4 p7 G7 B3 d+ R) R
- ;; If we're working with a single layer, get its color
( v; Y. I% K3 y; t: J: R. z - ;; for use in the color swatch if the user selects color BYLAYER.
- G, T( q$ s* L8 U" u: F4 X( i - (if (/= elayer ;|MSG0|;"Varies")
% b5 N1 O q# {9 H4 m - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))# n. L8 y8 W; r3 V( [! Q7 g
- (setq lay_clr 0)+ R1 D! @- V, }' f! |3 S3 L4 h
- )* M$ |" M) m, I5 j
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
# k# p- F3 I4 I8 ~* F - (progn
, H1 m! G+ R' S/ h P - (setq ecolor temp_color)4 q$ x. S8 P$ c- m
- (set_col_tile)9 w0 B& E- t e' m" T; I; ?; [$ n
- ecolor
" {# z; w: ?6 i5 b# `4 L - )* v% Q$ U% V7 p" c* o; f
- ecolor
) x/ B" v% r2 p& e: P+ u$ a, ]) g - )( d3 w- h& n& a' v" s
- )
9 l# p' ]6 z4 w" d, q: g - ;;( X# C1 h, j, R- S
- ;; This function pops a dialogue box consisting of a list box, image tile,1 l1 ` ?8 I! i" h
- ;; and edit box to allow the user to select or type a linetype. It returns
% w3 P- D" H' N& U" m - ;; the linetype selected.
; g( M2 _2 o8 D - ;;' y5 N% K) G6 k8 X5 H
- (defun getltype (/ old-idx ltname)* G3 ^! \) K) ~8 u
- ;; Initialize a dialogue from dialogue file# }( m! Q4 l6 \- @7 i9 R1 F
- (if (not (new_dialog "setltype" dcl_id)) (exit))
4 ^' `" x$ [ ^4 V( n - (start_list "list_lt")
4 x6 `7 `2 i0 w' A7 x - (mapcar 'add_list ltnmlst) ; initialize list box
3 `; i F1 Q* d; e( t - (end_list)
5 z' G+ [- e2 O) o1 n5 N - (setq old-idx lt-idx)5 Y8 [7 ]- C! c4 o- ?1 j
- ;; Show initial ltype in image tile, list box, and edit box
5 V) ~; d" K4 M1 t - (if (/= lt-idx nil)9 c$ Q6 A! e. F
- (ltlist_act (itoa lt-idx))
5 g& P$ a# K1 u$ j8 C - (progn U3 m) B" F. `9 \+ ^
- (set_tile "edit_lt" "")
( ~! A/ O0 [0 M3 L - (col_tile "show_image" 0 nil)# o0 r+ L8 S) _& r0 z8 n
- );progn else- h/ p# t1 f" C0 |5 U( a
- );if1 k0 x! s$ e: X- x
- (action_tile "list_lt" "(ltlist_act $value)")9 X% D* L0 I7 r: R2 x
- (action_tile "edit_lt" "(ltedit_act)")
& Z. J' e1 J) m9 P1 b' e - (action_tile "accept" "(test-ok)")# f7 {* v8 m" U1 ]7 F
- (action_tile "cancel" "(reset-lt)")1 q- a1 L% u# c, Y
- (if (= (start_dialog) 1) ; User pressed OK
+ A8 b7 z& Y2 ?+ J$ U/ c+ i5 |# v - (cond
/ d: l- Y1 Y8 @' [) v - ((or (= lt-idx nil)
% i- Z7 d8 n9 C# Q1 ]- \ - (= lt-idx (1- (length ltnmlst)))5 H h4 f) h `# F) U3 I7 w
- );or
8 t* ~; x9 U6 V1 V0 X( _. [# m - (set_tile "t_ltype" "Varies")
$ E9 K. e m4 D5 Z+ p* f: [, M% E - ;|MSG0|;"Varies"! S& D0 _" W; a7 G9 P
- )
( m5 q# y4 j9 W0 Y - ((= lt-idx 0)1 {0 {- ]/ X6 {0 x: O
- (set_tile "t_ltype" (bylayer_lt))) L# [3 W) J0 D9 ~' Z' R% D
- ;|MSG0|;"BYLAYER"
6 s$ u/ k A T& f: N+ Y - )
& t4 X. K' ?0 O" x8 E - ((= lt-idx 1)6 W9 @$ g# n7 F }6 M
- (set_tile "t_ltype" "BYBLOCK")# W9 `/ c3 q; b" A
- ;|MSG0|;"BYBLOCK"% i. K2 P. u a6 p$ f
- ): R! ~* o4 ?+ p) @5 g4 z. n
- (T* g' j. v) p- ]5 W
- (set_tile "t_ltype" ltname)0 G0 a. f1 J4 D3 R+ b' Q, X
- ltname
* B7 y: a* e2 e& Q# N* \( {/ N$ g - )- p( X# _% ?& p! T. J
- );cond then
9 S6 P! Z/ K& o( I/ F+ t - eltype
# s! V. J# d9 w% o( A1 z" f3 m3 | - );if) w4 t ]7 ]7 c9 {& k
- );defun
$ N: n: z4 B1 l: f - ;;/ N9 _# V- x1 ]! E' }- U: B
- ;; Edit box entries end up here
$ r4 {0 T3 f2 y - ;;
~/ u8 ~ j- m1 h4 E - (defun ltedit_act ( / flag)" _0 P5 k# ]# p& Y' V% x5 h
- ;; If linetype name,is valid, then clear error string,$ y8 `2 p1 I G- p
- ;; call ltlist_act function, and change focus to list box.9 L& {' \0 X, i% Y- K
- ;; Else print error message.
( P! E& p8 s- c% D. b4 b -
+ ~5 _" | N4 z2 Z - (setq ltvalue (xstrcase (get_tile "edit_lt")))
4 T- j5 U0 o7 [( [: H2 F8 F5 ^! R - (if (or (= ltvalue ;|MSG0|;"BYLAYER")
& M6 h! m4 `! y/ z+ ~7 q& X - (= ltvalue "BY LAYER")8 X1 [ ?' V; w. c, C
- )
1 H( j- @2 B" K! C/ v - (setq ltvalue "BYLAYER")
a S! E( x; t9 ] - )
! L1 W% N+ L8 `& w; M - (if (or (= ltvalue ;|MSG0|;"BYBLOCK")6 Y, h- x' k( Y" N, |
- (= ltvalue "BY BLOCK")3 z( P6 V8 ?! H
- )/ o( f1 D* G8 I3 {* f; _
- (setq ltvalue "BYBLOCK")8 o& R _: P( @0 D
- )* Z& O: [5 H% u7 e) U/ d) O
- (if (setq lt-idx (getindex ltvalue ltnmlst))
; c5 j. b0 G7 a: ?( b2 {) [ - (progn
; r) |. j9 o9 c% _0 e j - (set_tile "error" ""). C& b- D0 }# _" l5 B6 S
- (ltlist_act (itoa lt-idx))+ _8 g, C ?, J* j5 Q
- ;(mode_tile "list_lt" 2)% |5 t& J; ?3 _( a3 k, r6 ]6 j4 {
- );progn then$ ?; F+ ~" u6 j4 l, d2 U
- (progn* n) H, o1 a k( ?3 s! `' q/ [
- (if (/= ltvalue "")
2 G5 m8 R+ o3 X+ J9 ~8 b4 U - (progn7 I$ z' r, u: h' L; v+ j- }$ |
- (set_tile "error" "Invalid linetype.")
& [/ I6 O. i/ Y3 V5 O6 g - (setq flag T)5 d% }- }7 A' |; e5 Y
- );progn
: n0 T( @# s. ^ - )
. c4 [# ]: x' i) w7 i+ q& z - (setq lt-idx old-idx)+ ` B8 U$ [4 Q& V3 l
- );progn else
5 ]% _. ]% V, N' x - );if
2 P0 B. e# c3 i: {/ m3 c - (if (and (not flag) ;added so a return will take you out of the dialog.3 i" W+ Z! ]& X( B
- (= $reason 1)6 D: v4 _* U X, N: O$ G
- );and a4 A* ]* T# n0 Q% A, \+ N5 ?
- (done_dialog 1)
0 k6 m0 q, p7 K - );if $ V- H/ G; F% p" h
- );defun ltedit_act
. n; l5 a, I0 R! N* s* M! g - ;;
+ f _1 `$ r7 T" ^ - ;; List selections end up here# h" }% _/ Y) P7 t0 w8 v
- ;;, J7 b$ `! x$ c( N. [
- (defun ltlist_act (index / dashdata)' S! [' o* l3 P2 b& ~
- ;; Update the list box, edit box, and color tile
- c7 R- M, v1 q7 U F+ S - (set_tile "error" "")6 |. V1 A& X; P: t
- (setq lt-idx (atoi index))
2 N& y9 a6 w6 l% L' X7 M, O) E1 } - (setq ltname (nth lt-idx ltnmlst)), V( r1 l$ w; ]7 P( x0 C" b
- (setq dashdata (nth lt-idx mdashlist))
r. K% p: d9 l7 k - (col_tile "show_image" 0 dashdata)
) T9 `. h2 N) q% V& I9 K" \ - (set_tile "list_lt" (itoa lt-idx))
( b: n9 ` N. v2 Z- ? - (set_tile "edit_lt" ltname)
( b0 f8 S9 u3 ?) c8 a0 n2 v& h - )
. @4 C; m. y( y. Q - ;;
: g9 @; |: W0 `4 k& \ [# Q - ;; Reset to original linetype when cancel it selected
, ^& q& k3 H3 h t - ;;& a+ A9 w: g; `
- (defun reset-lt ()4 U6 C3 g7 H5 @( P
- (setq lt-idx old-idx)) O0 F" _# M' k4 E
- (done_dialog 0), d5 {- S% p0 k, g
- )
% N1 Z3 U) U2 S& e - ;;4 ?. ~% N2 t3 z; n6 s0 h3 I
- ;; This function pops a dialogue box consisting of a list box and edit box to$ ]; R5 F" K5 V; J7 k& o
- ;; allow the user to select or type a layer name. It returns the layer name
% o/ q# [$ H; o$ l" e; ^( u: v5 `. \; C - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the
# @' r8 U3 @# l+ C - ;; drawing.
6 a8 r* {! v& P" m; \ - ;;- B& I* K) C0 ^0 `$ P8 G5 J
- (defun getlayer (/ old-idx layname on off frozth linetype colname): ?* W* z8 s: h0 h. ]: ?, B
- ;; Create layer list the first time the layer
% P6 t V8 E6 O$ Z5 d! p- @ - ;; dialogue is called.4 R7 h$ i# f( B( @$ j! S) S
- (if (not lay-idx)
: r, `) L. D+ E7 E2 `% | - (progn
3 H" G: p3 `- N! O) K* M1 F2 v - (makelaylists) ; layer list - laynmlst
9 z4 }, Q* M' U) {! H - ;rk
2 g# T: |, u! o7 ^7 K3 {$ h: f - (setq lay-idx (getindex elayer laynmlst))
; l% t. {- F" x/ G - );progn
8 b; x* E: ]; ?$ o% M2 {* _% [ - );if! X) q Z1 t& e
' d& b; S) e0 S/ {) G( `+ z. u- ;; Load a dialogue from dialogue file
0 ^' B$ E. N6 r/ c6 ]5 h+ M - (if (not (new_dialog "setlayer" dcl_id)) (exit))1 j0 }- U5 G, u6 M7 F9 N; A
- (start_list "list_lay")) v2 }/ ~' }9 d( {& k& H
- (mapcar 'add_list longlist) ; initialize list box5 w1 f+ Z8 o: `9 v# T$ \, H p" u
- (end_list)
/ J$ ]4 l3 m/ s W/ ^7 k - ;; Display current layer, show initial layer name in edit
2 g2 O* m6 [2 m) V4 a- D - ;; box, and highlight list box.
# T# A% r# ]' ^$ s9 F - (setq old-idx lay-idx)& [3 P& E/ f- H$ t6 f
- (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
+ {' i# \0 k/ Q2 S; h - (set_tile "cur_layer" (getvar "clayer"))
f4 p* L7 P7 E3 f) S, F4 C, o5 b" i0 i; | - (action_tile "list_lay" "(laylist_act $value)")
, h) a% B3 ]9 e$ q3 `* [ - (action_tile "edit_lay" "(layedit_act)"). _9 p0 ]; C* p& y- |
- (action_tile "accept" "(test-ok)")& p+ @5 @: V( I
- (action_tile "cancel" "(reset-lay)")
- \9 g V% b" B2 o1 \- z6 l: l0 n - (if (= (start_dialog) 1) ; User pressed OK
0 y0 {3 V* z `2 m4 q: E0 T5 r% J8 [ - (progn0 V+ x7 d) V& d
- (if (or (= lay-idx nil)( J' {1 h2 O$ M. c: S
- (= lay-idx (1- (length laynmlst)))- B9 }) z: A/ M
- );or
' g1 D. i. m* s A' ^# ^ - (progn
; K3 X& y% c0 Y" F+ o i - (setq lay-idx nil)
: U9 F6 b- H& R4 v* I8 |' W1 ~ - (setq layname ;|MSG0|;"VARIES")( u9 {* s" f' C2 p9 N2 T
- (set_tile "t_layer" "Varies")
- m" @- L( V6 } - (setq layname "")9 o) _" C8 S! b/ s8 o9 Z$ P
- );progn
- e3 \2 r& L: r' }8 A2 D - (set_tile "t_layer" layname)
% D8 b+ y, x, e' I8 U( R# k) \ - );if2 G- Z0 U5 l8 \
- ; If layer or ltype equals bylayer reset their tiles9 O$ o# j3 B' I6 b' p
- (if (= lt-idx 0)+ i, f8 J2 b! q" G! R1 u
- (set_tile "t_ltype" (bylayer_lt))
% A6 T2 x# Y) Q1 T U1 b, A - );if8 R' z3 _4 ?/ Y8 L" K7 K3 a3 P
- (if (= ecolor 256)
& q) p0 [( ?1 B& G( I$ K - (progn
: [: U% `. G( S( M0 h - (set_tile "t_color" (bylayer_col))
8 I" a- r `8 a - (col_tile "show_image" cn nil): B4 _+ h* C3 g: ~9 w
- )6 [% W2 Q: H4 E4 g
- );if
; C V3 C, [! ?1 ] - layname
6 c# ^1 W/ {( ~7 y ` - );progn
5 K4 o3 T; g3 U0 E% T' c' l S: K - elayer
& i3 s* _6 m. j% B B1 t5 y. A( S - );if. C5 D0 D( V, J" M) p& x; M3 h
- )
. w- x7 j( ]$ d+ R |9 }3 o - ;;8 b# U+ r b# p% e
- ;; Edit box selections end up here
( @, [: p8 [3 e* V. i - ;; W2 ]9 A3 f& I1 O' m! _9 g) U
- (defun layedit_act()7 i4 y( _0 [/ ]9 X# Z7 u
- ;; Convert layer entry to upper case. If layer name is
% l1 R0 [4 Y. _+ f' E - ;; valid, clear error string, call (laylist_act) function,( u1 k9 P- x6 o a0 H; R; w2 p+ ?
- ;; and change focus to list box. Else print error message.
" x3 S- \' i! N& _0 ?$ q1 i1 D3 I - (setq layvalue (xstrcase (get_tile "edit_lay"))); K* H* k! z! _) b3 P, V
- (if (setq lay-idx (getindex layvalue laynmlst))0 M9 ?/ E3 a7 S4 m7 p
- (progn7 r- i& h6 G$ i1 Y1 @+ ~
- (set_tile "error" ""): J" j& ]8 v) m: z$ \. c
- (laylist_act (itoa lay-idx))4 a% x- x1 {, x' a s# _8 ^
- )
2 o. O9 N+ K5 W" O: q6 E! X - (progn
6 J% ]# t9 ?7 q' Z - (set_tile "error" "Invalid layer name.")6 J) l0 L) n4 b& B# P1 u, c
- (mode_tile "edit_lay" 2)7 i2 J" W$ n6 l# B9 e
- (setq lay-idx old-idx)2 n) r0 u' `' e% z+ E9 P- v9 L& X
- )
( B% F# m+ a: z, y: E# O6 b - );if
% @' P0 ^% h5 n9 L - );defun
4 s& T# z$ O) ]# g/ m - ;;- B. s& T6 u4 H3 x% B3 E i* G
- ;; List entry selections end up here
6 Y6 E T& H" a; i6 z0 k - ;;
4 _- r$ o7 r5 | - (defun laylist_act (index / layinfo color dashdata)
) ]. v A- a8 n F - ;; Update the list box, edit box, and color tile* n5 O8 W9 h! K+ |) p* I; d
- (set_tile "error" "")
3 O$ p+ W* |3 S. B: f - (setq lay-idx (atoi index))
2 F- n9 T/ o N9 |* O7 ` - (if (not (equal lay-idx (1- (length laynmlst))))
; \' O5 \- s$ n! g$ ^: N3 E - (progn
* b( D% @; x8 ?8 r) |2 \3 T - (setq layname (nth lay-idx laynmlst))$ |6 q: U2 |: V/ ]- d& W4 ~
- (setq layinfo (tblsearch "layer" layname))1 H. y- T {; ^- O, P8 d0 S
- (setq color (cdr (assoc 62 layinfo)))% ]5 A0 j' K! V" \5 P6 t7 h/ \
- (setq color (abs color))
, s4 x9 f" n) t# }1 m - (setq colname (colorname color))
/ V- I! P* A7 x - (set_tile "list_lay" (itoa lay-idx))
" `# G$ C; K R2 R; O - (set_tile "edit_lay" layname)5 F# p6 e6 R, h
- ;(mode_tile "list_lay" 2)7 q$ W' P' c9 f! A7 v1 X1 e h
- );progn then $ m: ^% s1 {9 I5 r& V- H
- (set_tile "edit_lay" "") ( h$ c' ~: V& _8 r+ H( H8 u3 C2 G1 l
- );if 0 X$ S, u+ E$ T9 K
- );defun laylist_act
) u8 t2 [ n* E% o$ u. ? - ;;5 U5 `2 h0 S8 g, r0 a2 H( W. q1 a
- ;; Reset to original layer when cancel is selected
4 k6 K' i+ [4 \2 n* e2 k) t; ^% i - ;;
. K( t( Z% c1 D T4 \6 |& m/ o* L - (defun reset-lay ()
. B: {4 O- S: o% s* M9 i5 N - (setq lay-idx old-idx)
' p5 w6 T7 j2 F$ s# Q ]' i - (done_dialog 0)1 {* Y+ f4 W; j q, g
- )" c! ]8 N! Q4 A
- + K9 A2 Z& h9 y- b/ k
- ;; Checks validity of linetype scale from edit box. It checks to6 R$ H, P. m: f% ~& P0 G
- ;; see if the value equals "Varies".9 t4 I7 K- [7 i: r. X
- ( a" z, }9 F. M( d
- (defun getscale (value / rval)
0 h9 H# E4 Q5 o; l - (setq value (strcase value)7 Z5 d7 _/ o( o6 V( i, }
- rval (distof value)
9 T! \2 _! W$ ~# n9 L9 s - );setq
9 `9 \4 i, N7 @" h$ T) j6 u4 ] - (if (or (= value "")4 O7 g, {4 F$ G. f$ g( c, X2 H
- (> rval 0.0)" N; J: W2 Z7 D
- )
* z, J) G X( x, k q# \% }! q - (progn
" E1 b3 i! D0 U0 P) Y8 [! i - (set_tile "error" "")
! b" }4 @9 E( K. M' {5 o - (if (= value "")4 M+ F( m2 ?6 }* U
- (progn8 b9 [, d6 U' j9 j* @7 e
- (set_tile "eb_ltscale" "")
7 A- R2 H" y( \8 G; y0 ~ - (setq eltscale nil)! Y4 G! ?' ?$ X: H. U
- );progn then
) D1 g$ m9 x* K R/ q - (progn- ?( O' d( }& ]7 _" z
- (setq eltscale (distof value))
# }9 o& o( V+ L - (set_tile "eb_ltscale" (ai_rtos eltscale))
7 } j Q3 c6 b - eltscale
, y6 n) W, e' K$ U3 ]5 g& y" x - );progn else! |$ c! g* f- n' n* \; x
- );if0 `& Q0 d. Z! E, r
- );progn
* W K7 @* C: i7 K - (progn" F1 [* ^+ m9 l/ B& e$ c* Z' F7 Z
- (set_tile "error" "Invalid ltscale.")
0 v& H3 L E& ~3 Z* t - nil3 N3 }* q" V. e$ C. v' m n
- );progn else
4 Z5 |7 X) E/ G; ] - );if
1 @& o* |# s) e7 N9 }" {) r+ P - );defun
7 G! r% m2 O* j+ ~, S - ;;6 `; \# L- \! M% c; V$ u7 \
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a9 D, o. o9 g; C |7 N3 R
- ;; string can't be converted to a real, this routine checks if the first
% T, ?2 c! A9 D/ T4 b4 [ - ;; character is "0". It also checks to see if the value equals "Varies".( Q$ G' d# c$ O- q; y; E7 X" x
- ;;
4 i/ u6 l. N! F) m3 S - (defun getthickness (value)
2 U* O0 ^5 s. F) a4 N5 @+ o) @* x, t - (setq value (strcase value))9 a9 z0 }/ O: |* O4 j
- (if (or (= value "")
9 ]: L$ g k6 {/ W# |- Q - (distof value)8 W/ x- @0 S; b& w& {2 l! G
- );or I9 ?" @! ]) W' e) C
- (progn4 D7 ~5 Z+ {3 @+ G( i# v
- (set_tile "error" "")9 y. j; `& i$ p% h/ r
- (if (= value ""), y9 Y, q! @: m& O# D
- (progn/ D, [8 V0 Q/ {8 B/ N! d+ [
- (set_tile "eb_thickness" "")% l! t: Q$ \$ b* e0 n4 h
- (setq ethickness nil)# S6 ~1 B4 i+ L2 ^% |
- );progn
9 ]$ T2 P$ l) I+ m; \( i1 K7 U - (progn$ `0 N3 d7 M, g# J; ?* J9 l2 c
- (setq ethickness (distof value)), }( H( t& _- X' x8 m9 j4 r
- (set_tile "eb_thickness" (ai_rtos ethickness)). F" N4 W. I u+ g* ~
- ethickness" S# G# k/ L4 k% o. G
- );progn5 G8 Q1 |, O& g6 j# ?' P. Z; n
- );if
4 g1 H& s! F3 B/ H" Z - );progn
. j- @, k7 ]( ?" n+ N! \, X4 A6 @ - (progn
" f6 w/ M$ E: K - (set_tile "error" "Invalid thickness.")
. K+ b0 X* C2 o) e9 L - nil
& L$ N( o1 }! \- M1 j0 _; l - );progn
' Z, e6 W. g3 v# y# [ - );if3 y: Q7 }7 l' n. v( X9 H: p
- );defun
4 r( T. s7 W5 p: V& D# s R% v/ o* G6 G - ;;5 N& S; V* j) ^& Q6 C1 x4 n
- ;; Checks validity of polyline elevation from edit box.3 \2 p. n2 }$ o N
- ;;
; O. h/ G5 X( v" g - (defun getelevation (value)) Y/ L9 E; \' Z9 @+ c* ]. i
- (setq value (strcase value))
. B0 W ]9 e) j5 K, e - (if (or (= value "")
/ b8 ~. g5 R1 V( ^5 c - (distof value)8 V+ _4 b: L' v" V- N9 W
- )
) X. J; @( C) `9 M# P9 ` - (progn
: |4 X" Z- d7 B2 q4 p - (set_tile "error" "")* b. c, F# G3 p( d1 ^
- (if (= value "")4 G3 V, f) s, C2 P s
- (progn
- m, Y( D" L7 g" o5 W4 P2 i - (set_tile "poly_elev" "")
/ l. A% N* L2 _% c - (setq eelevation nil)
6 R0 b: `3 m* ~ - );progn
% b/ \5 N/ G5 \3 `: c - (progn+ G; b# @6 M, H0 u9 @
- (setq eelevation (distof value))2 p1 j1 }( x. g! q
- (set_tile "poly_elev" (ai_rtos eelevation))
: N' W- y' o# g- x8 { - eelevation
0 L* s. Z" C+ n* N) p' J) q: F - );progn- p5 b8 I6 p v, p- i( y4 Q
- );if1 |+ m; |( `* {1 Y3 W R( ?
- );progn3 u# p" q( G) }# `
- (progn
6 ?% ]) J$ E U, ~ - (set_tile "error" "Invalid elevation.")/ }( Q5 j. I% D9 d, y
- nil
/ g& N; r* n; ] A" q, n* o - );progn
* o3 q* u! C/ ?/ a" q# D - );if
5 Z+ w6 \+ {, ~5 X5 F - );defun" j! H7 ]4 V0 N
- ;;$ n- Q' o b* }; |6 a. z, K6 f
- ;; Checks validity of polyline width from edit box.
# i% ?5 h+ n( k) E, Z - ;;
* V( |' E) E' b, _- h- w2 | - (defun getwidth (value / rval)2 w/ ]# g' |1 c# y2 x
- (setq value (strcase value)$ c f' b, @( u' d: i1 w! ]
- rval (distof value)8 C; S2 Z" j7 q
- )
`4 o+ w! A' j% A* k7 R( F5 m% x$ T - (if (or (= value "")# x2 K T; d! L, Y2 O
- (>= rval 0.0)- `; A7 k1 P5 c* [
- )
% ]- \' x- t6 ]8 m9 U [5 X7 G - (progn: x z: k- v3 O2 `3 C5 T
- (set_tile "error" "")
4 y; ~) p9 }- J5 E$ S0 q - (if (= value "")
% @( _% |) W' g, } - (progn
2 _) h- ~; c% ^ - (set_tile "poly_wid" "")
* F' A7 D, \0 X5 w, X" B( i3 ` - (setq ewidth nil)
9 z! U; R) d/ {! e i - );progn
8 V, f9 j: Z5 |6 \ - (progn
6 j4 e& t$ c. w - (setq ewidth (distof value))/ H+ o; t5 q6 l3 o/ P% C3 L( ^
- (set_tile "poly_wid" (ai_rtos ewidth))- D3 u0 O- z5 C
- ;width
: ?! t V/ i5 R$ q0 s - );progn. m8 ]( B$ }% c" @
- );if
/ ` h. m2 F8 H& q2 t. I - );progn, i3 d- K& B- ?, @2 M8 ~. U
- (progn
a( U8 E6 z2 }, \' x' T - (set_tile "error" "Invalid width.")! ~: }( B% R2 }' a& N( z$ k; s9 s
- ;(setq ewidth nil), \* a- t, m" w+ R$ J, g
- nil
7 H( l! p& D8 c! b: f1 _5 d - );progn
7 Y( h: [6 @& S9 y* e$ u - );if1 k. x4 X! _( Y! C3 h- `, _
- );defun+ O1 H7 s; t9 _3 k9 G
- ;;2 ^7 f! I# Q+ k8 _: f! R) p0 o9 x
- ;; Checks validity of text height from edit box.7 t$ F$ ?" {7 v7 f, @# i5 l7 P, V2 O6 v
- ;;. Z8 e9 i, k' A. b% t
- (defun getheight (value / rval): X7 Y& B' e% `
- (setq value (strcase value)6 E( l# {# o) {: n7 j7 ]5 F
- rval (distof value)
, B6 a3 K- o8 l7 q" c: Q% f/ ~ - )" n4 f4 P2 R) H! W" ^% L# o9 o
- (if (or (= value ""). z6 F" _# s' i0 L5 Z
- (> rval 0.0)( ]% B) M0 A' O5 ]: {7 C- k
- )
( s k3 u' A. o# e3 s( c$ c - (progn. J" `% t" r1 f; L* }7 o
- (set_tile "error" "")
9 m: P i6 T, ~8 j* S% i - (if (= value "")
5 n: |8 i( ]; u, I - (progn
; w9 n/ m$ Q: @9 q - (set_tile "text_hgt" "")
: L* w' T; e" I - (setq eheight nil)
# ~$ ~0 |$ K4 ]) K& p8 s - );progn; j/ @5 m1 `/ K3 z. o
- (progn
* V1 J9 O# L8 U# V8 o9 A6 F# D) R - (setq eheight (distof value))
6 g) z7 w& {# A - (set_tile "text_hgt" (ai_rtos eheight))
( Q4 f8 D: i, }* ~1 a. n" j! R$ s1 T - eheight
: S# D$ [' O: h- V - );progn f3 H" {% g$ N: u1 n) {, j* U; v
- );if
' A# h; ^$ g4 T - );progn
: @8 E9 u: F+ R! R+ @ - (progn
1 D8 F' \6 z3 m) D/ D) h5 `5 Z v - (set_tile "error" "Invalid height.")' R' r$ K+ N9 R- A
- nil
. e: n. x1 N: z$ ] - );progn
1 }0 {2 X/ c% Y9 k0 F6 t - );if
( i! @4 a& v8 V; N4 X+ q$ H1 z - );defun) d& K2 _5 K, ]4 E5 z5 I+ y2 L3 P
% {, J0 L$ b+ [/ y" v) ]+ T- (defun getstyle (value lst / rval)$ ~% s& n! X' L2 S& l
- ;(setq value (strcase value))
0 l$ d8 }1 S: `0 i# C - (set_tile "error" "")8 y2 A0 n+ X/ o/ J- [
- (setq estyle (nth (atoi value) lst))8 g+ B: ^( ` i! d6 f
- (if (equal estyle "")2 m7 a3 t/ E3 Z) x
- (setq estyle nil)! y& e' `# K/ s9 G* M+ g) |3 t
- );if
3 i$ i, S Q% r \ -
) w9 B+ V5 s- ?: X - );defun getstyle7 z' ` K" t$ {+ [8 V& _
8 o7 x6 ^& i/ ?/ u) [* e- ;;
- E' w( w4 T& e; h5 M8 ~ - ;; This function make a list called laynmlst which consists of all the layer
0 l9 M) t: p% p- b$ N9 V) x - ;; names in the drawing. It also creates a list called longlist which
1 \1 d$ b8 q! t) M" W - ;; consists of strings which contain the layer name, color, linetype, etc.
" @3 ?7 ?; z) f2 y& i1 O2 A1 f! _ - ;; Longlist is later mapped into the layer listbox. Both are ordered the
. Z7 g; A+ _" i4 l6 i9 ? - ;; same.
, P5 e* L4 e( H+ m' b) K6 f - ;;4 l; a0 ^" q" Y
- (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname
. G/ B* Y; G( e9 d$ j - xdlist vpldata sortlist name templist bit-70
8 v d2 L& E. d! u. l - layer_number
, w' X8 f( c8 }* i* X7 Q# x - )
2 G( ?: z& X/ g5 K# W8 D( A - (if (= (setq tilemode (getvar "tilemode")) 0); ]2 J. w# F E# P
- (progn8 G* d0 Q+ \" J# @
- (setq ss (ssget "_x" (list (cons 0 "VIEWPORT")
+ u4 T% `/ U! H. c! R8 D - (cons 69 (getvar "CVPORT"))
# T( Q# `6 _# Q - )
* A* W8 n c" w W - )
" M( x% |- V2 H d - )# v9 S/ ]. {$ F6 d5 [' i
- (setq cvpname (ssname ss 0))
9 O4 z9 f; L0 h1 _; C - (setq xdlist (assoc -3 (entget cvpname '("acad"))))0 S4 I* q# A( Q% n; L
- (setq vpldata (cdadr xdlist))
% I) j! `; P k& q+ n3 j - )
, e1 B- @! `9 F - )
; q* f5 W3 U1 g - (setq sortlist nil)
! ~& f7 b3 e0 W. y6 l3 E2 z" m - (setq templist (tblnext "LAYER" T))
1 H2 x' f+ ^# b$ ?) H - (setq layer_number 1)
- k Q+ F Q% |5 Z. T! [ - (while templist
; j a2 v/ P2 [1 y3 ` - (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))
( A0 u& I4 W( q) v, [2 O - (progn 7 I0 T k6 J- u( ~# I
- (setq name (cdr (assoc 2 templist)))# V4 f& P* {0 ?; K# V h
- (setq sortlist (cons name sortlist))* I+ m% r1 ?" l5 _8 [. L
- ;; Not dead message...
9 y$ \3 N8 @+ b( c - (setq layer_number (1+ layer_number))
; Y8 C% k" ?! X+ T/ c - );progn
% x9 l' U' T0 Z) q2 t& }1 s - );if
2 A4 l, M- A- l/ T( x3 p - (setq templist (tblnext "LAYER"))3 S, Z' L1 \+ ^5 m: x5 ~* c+ |
- (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))2 H$ P8 i F' d
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))4 C C; L( D% @4 k4 h% j( }3 q
- );if+ k& l) Y! r I% ~5 t. N
- )5 ~( ?1 J4 M. C6 t) v3 N& C
- (set_tile "error" ""). b1 c# K, o/ o8 p7 e
- (if (>= (getvar "maxsort") (length sortlist))
/ E+ a) z. X. x9 |( t; u: }. F- O - (progn. }. L4 Y; s: I+ @- p
- (if (> layer_number 50)9 p7 e+ m/ q' c9 W' w; G
- (set_tile "error" "Sorting...")" F _, j+ F: c
- )
" s# [* C! _7 n: }/ L9 } - (setq sortlist (acad_strlsort sortlist)). I: t2 p6 x# C1 ], r* f
- ); J2 t( }) ?) ^7 A$ ?
- (setq sortlist (reverse sortlist))
K% Q+ E5 Q# v+ n! d1 ^ - )4 D1 |) D9 b. ]) ?* T' b/ e3 A
- (set_tile "error" "")+ ?' }0 E1 ]) D0 |5 K6 ~4 D
- (setq laynmlst sortlist)
3 l0 d+ h9 |% A6 z - ;rk
9 h/ Q" Q Q5 K2 m - (setq laynmlst (append laynmlst (list "")))
7 s: |2 V9 z( F- K7 ~
5 u1 A I: b y, a- (setq longlist nil)4 f! Y& n' z' d. w
- (setq layname (car sortlist))
2 S3 I6 l6 C3 l' H" g' q6 d - (setq layer_number 1)
5 e3 b2 J% B( V$ M8 `' @. { `7 h - (while layname# W' R8 Y* N' ^% C
- (if (= (/ layer_number 50.0) H1 u# n5 r4 K+ b% L0 A" @6 \
- (fix (/ layer_number 50.0))% d' x% f, X- o1 T3 P# J% B( E
- )
6 q) G; ? @$ H. k! D4 l) Z6 U - (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))
$ {) j9 N* ]/ x N - );if
E- V* f4 t' G5 @9 G& g - (setq layer_number (1+ layer_number)), j' q& [, T$ _ p ?' c
- (setq laylist (tblsearch "LAYER" layname))
( d7 l- J. J% r. u% o `3 L - (setq color (cdr (assoc 62 laylist)))$ s1 v% O7 ?, q' p- D7 ^8 M2 n2 _3 ?
- (if (minusp color)
' r" s3 F2 U( [ Y& ` - (setq onoff ".")
$ E8 @1 `2 n3 f5 L0 {+ d. H( v - (setq onoff "On")
* ^ T7 m" k$ c1 C( L# n - )
$ |+ o0 M6 f5 M# k5 b2 J$ O5 o - (setq color (abs color))
* E9 Z/ }' t f8 N; E5 q* f - (setq colname (colorname color))
" W/ g' E+ d) F+ Q - (setq bit-70 (cdr (assoc 70 laylist))), P r1 E9 Y" W; P5 T. W
- (if (= (logand bit-70 1) 1)
7 H# w1 {" B; s: \) T - (setq frozth "F" fchk laylist)
- N/ ~! V* V3 ?9 q - (setq frozth ".")- I& f$ K6 f2 j' g; H9 l
- )+ x: v5 ~3 k# S3 P& m' j
- (if (= (logand bit-70 2) 2): g1 O- [) ] a0 z; I
- (setq vpn "N")& @" z: [5 i c7 ]& s" K" L1 r' l
- (setq vpn ".")
" U1 A# N7 d& |2 u: |& o& s# R7 H - )5 i d, H- ` Z! z, L" O, i4 R
- (if (= (logand bit-70 4) 4)
1 ]. p3 `( |' G: d. O& y( Y" K" E - (setq lock "L")
- e, g& R' \4 t/ G - (setq lock ".")
% \0 q; ]6 t* {. ~- F! [7 W - )
# t5 z3 F$ |3 |3 n$ T - (setq linetype (cdr (assoc 6 laylist)))8 i# h0 g8 P* g
- (setq layname (substr layname 1 31))1 q) b4 Y9 d' Z3 S+ z0 o
- (if (= tilemode 0)
- j! q+ K7 V M6 J - (progn# n8 g2 U8 n! R: X' w$ z
- (if (member (cons 1003 layname) vpldata)
4 D: q U( u+ T. E9 Y - (setq vpf "C")9 M! @5 L* w H* f! ~
- (setq vpf ".")$ [: l9 N' M' t+ k/ z
- )
* z9 m) a1 [5 p" ] - )5 {$ z" D. O8 F# J: Y P) g: v
- (setq vpf ".")
6 `! e4 l% M0 }1 t2 U! N) \. W. k - )" K' ], s9 Y4 o$ d0 I+ W, @
- (setq ltabstr (strcat layname "\t"6 \1 o5 j' _6 U, }) s' W3 F; S
- onoff "\t"
: o! l% ~ ?! G2 ^1 ^ - frozth "\t"0 Q( q5 z; v* r# T; c
- lock "\t"
9 F7 r: ^7 O) q9 b1 S# _/ d0 z8 {3 v - vpf "\t"5 O! q2 ~6 N. x4 F
- vpn "\t"# v, b! o4 R+ }+ {
- colname "\t"
" [5 Z# V- v. u- j: D8 C - linetype
! L2 F" _8 I5 Q - )/ X8 {' G/ @+ w1 r
- )
- i+ g s% M% N - (setq longlist (append longlist (list ltabstr)))+ t5 ~" j0 A: T/ C9 m
- (setq sortlist (cdr sortlist))# _1 _( f( C3 V# w
- (setq layname (car sortlist))
6 }( [! a- x# Q0 W2 H; i. n/ O - );while+ S C1 b9 E8 P9 \
- (setq longlist (append longlist (list "")))
: ^" [3 t' @, V/ k# `; O - (set_tile "error" "")
# Z6 V% Z/ \0 w5 d% J/ [ - )$ m7 _" }- Q! T, j
- ;;$ Q' k1 k( }2 s2 |
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of& s9 Z8 u9 W* \: B' [/ f. H5 @
- ;; linetype names read from the symbol table. Mdashlist is list consisting
9 J$ `. G; c8 ^+ ? - ;; of lists which define the linetype pattern - numbers that indicate dots,
4 `' E, x! O, n* H - ;; dashes, and spaces taken from group code 49. The list corresponds to the
" n- [- D! j2 y {$ N - ;; order of names in ltnmlst.
6 j- p) G3 K# h - ;;: E: f0 \# @5 E6 E
- (defun makeltlists (/ ltlist ltname)
( R! z8 m+ h( e1 ~% Q - (setq mdashlist nil)
1 y9 b0 E8 `5 p2 L7 w7 U - (setq ltlist (tblnext "LTYPE" T))
, H6 \$ B9 _- {$ i/ P1 S - (setq ltname (cdr (assoc 2 ltlist)))
: e" e# T/ c8 K6 a - (setq ltnmlst (list ltname))* K4 L6 {+ ?/ b$ y
- (while (setq ltlist (tblnext "LTYPE"))4 Q' g# ~5 p: m- u9 [0 p2 F Q
- (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))
, ~. C, h1 o9 R4 ? - (progn / w8 V- A# B5 v1 N
- (setq ltname (cdr (assoc 2 ltlist)))
* Q' H. F; m4 z0 t* b9 L - (setq ltnmlst (append ltnmlst (list ltname)))9 d2 S$ u3 ?( c; v \" i
- );progn/ F& {7 L/ W. Z; z3 a; k$ d
- );if $ O7 }; ?0 ^( T# Z6 j. O7 v' R
- );while
$ H# [6 C# O4 U. a - (setq ltnmlst (acad_strlsort ltnmlst)) J5 e5 Z* @% A5 q$ k
- (setq ltnmlst (append ltnmlst (list "")));add by rk ' ~; t, r2 y4 x
- (foreach ltname ltnmlst) b6 l( |- \; S1 P+ @
- (setq ltlist (tblsearch "LTYPE" ltname))
! K T3 A! j! P: l) N - (if (= ltname "CONTINUOUS")
2 @! C$ |! S- h' h8 h( _ - (setq mdashlist (append mdashlist (list "CONT")))- O5 Y t+ U8 I# ~2 f& C
- (setq mdashlist3 H7 C' N8 ^ e
- (append mdashlist (list (add-mdash ltlist)))9 B- p8 A5 W( ]9 B9 C: p- X, b7 ?
- )
! U' J1 E9 |) o; ^# ~6 W - )
. I0 P/ S% G( g- n/ d- ]+ J$ l - )
6 h7 F l0 E, C9 f K - (setq ltnmlst (cons "BYBLOCK" ltnmlst))
3 E- O3 o* S5 U: Q9 P - (setq mdashlist (cons nil mdashlist)), c m- `" |3 l% ^$ k7 a7 u
- (setq ltnmlst (cons "BYLAYER" ltnmlst))8 o% s/ i- V T& I' Q# y! S
- (setq mdashlist (cons nil mdashlist))
' F0 f q& K6 ], A, u* h$ V1 ?9 | - )& N7 K* A, r5 U) H
- ;;6 y5 B9 J7 `5 a+ q
- ;; Get all the group code 49 values for a linetype and put them in a list0 Y2 u. }1 P5 ] f6 k3 i
- ;; (pen-up, pen-down info)
% }3 v+ v l: O0 c - ;;
2 f+ N2 p+ r0 V- b - (defun add-mdash (ltlist1 / dashlist assoclist dashsize)) w' x$ O/ j0 b& R4 L) q3 `6 @
- (setq dashlist nil)9 c2 E+ D9 N& v7 Z: @3 s3 X
- (while (setq assoclist (car ltlist1))$ @- \& W( u( K7 }3 X; |
- (if (= (car assoclist) 49)
J; Q. v h( [1 W - (progn
" h+ k/ T3 t4 J ] - (setq dashsize (cdr assoclist))
g" t5 T1 j. O3 ?; S: C - (setq dashlist (cons dashsize dashlist))' e+ M7 v5 E- R8 J7 X, e8 M3 z5 S
- )+ }! k4 C2 r+ L) C b& `* z! t
- )
4 X) _# x. o& U4 h) g: z4 [$ i; J% X - (setq ltlist1 (cdr ltlist1))
& s1 ]: Q0 U4 F - )
; C1 k" z+ t: ^ - (setq dashlist (reverse dashlist))
% ?& ?5 ]7 |- T( o2 s6 A' \1 w6 T - )% O% m) k) g/ ~/ h# J# m' \# z7 O
- ;;. ^3 q: M) ~, W/ R6 z
- ;; Color a tile, draw linetype, and draw a border around it. \6 d% b% i1 S S1 Y4 l
- ;;& v; I$ j1 w- L, u
- (defun col_tile (tile color patlist / x y)
5 d/ C4 H: U2 X+ u0 ]0 @. `4 Q - (setq x (dimx_tile tile))
; ~/ \# C; H* @& {3 l' X1 @ - (setq y (dimy_tile tile))8 Q' p% F O3 K( q
- (start_image tile)
4 m2 I6 k: w* v# E# `, r" e( O - (fill_image 0 0 x y color). I- i" X( m1 F8 ], q
- (if (= color 7)
! Q# S4 u' U. w3 b7 h% p- K7 ` - (progn
6 J/ e2 P5 O2 Y& ?* J3 E: H - (if patlist (drawpattern x (/ y 2) patlist 0))
; Q3 D5 V0 Q8 f4 p0 k: K5 [ - (tile_rect 0 0 x y 0)8 }! V% m! n& |3 O- z- G, b' ^
- )
1 r4 B0 @% [4 J* E$ y1 E - (progn' U. y# L4 N8 B/ H- k3 `( }: n' n: ^
- (if patlist (drawpattern x (/ y 2) patlist 7))! f' n' ?" w* y2 k. s/ q6 @/ r
- (tile_rect 0 0 x y 7)
l& L# o9 m$ X2 F* T - )6 G5 n2 G9 ~* R0 w8 u4 K
- )2 |8 ]% f; m: f m
- (end_image)
( s2 d7 I2 E7 t6 h- c. N - )
8 }5 V( g8 ~$ p( t. _* P! v - ;;( i/ H/ ?" P; B% ?9 E
- ;; Draw a border around a tile
! Y# _5 i, E5 Y2 ]: C3 f - ;;) C9 d$ x5 \5 _# s3 H
- (defun tile_rect (x1 y1 x2 y2 color)
: x4 E/ ~# |2 l5 b$ }) I - (setq x2 (- x2 1))
0 ^" U* _9 Q/ _7 Z2 e" ^9 l - (setq y2 (- y2 1))
3 K+ g# `8 X" x& E8 l - (vector_image x1 y1 x2 y1 color)1 o2 Q% i c3 c# v" s- j% ]
- (vector_image x2 y1 x2 y2 color): h- `6 {" H9 z' P2 p/ ]
- (vector_image x2 y2 x1 y2 color)
/ z' n( g6 L3 u/ a* @ i - (vector_image x1 y2 x1 y1 color)9 O% K0 m1 k0 Y- `" Q) t/ a
- )
* W) h! m) Z. E; H. H. P6 E1 n - ;;
+ J! N1 y8 i( C# K - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
R! R) } ]; \8 i9 f5 ^% V- Z$ `; `% C - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
4 ~3 D# ~2 _7 t - ;; list of numbers that define the linetype, and color is the color of the
O e+ j( X8 X- o1 Q* Q& t - ;; tile.
$ _4 u( e9 Z3 ~$ @/ k; f - ;;( Q- ^. | Z% a. ? f& h
- (defun drawpattern (boxlength y2 pattern color / x1 x2, Y! V" q7 T8 {+ Q
- patlist dash)
) j+ _ V! ?; N9 a - (setq x1 0 x2 0)/ Z1 m+ {( l5 o4 ?; i/ K5 z8 Q
- (setq patlist pattern)8 u9 T' |0 ^ d/ [& T
- (setq fx 30)/ @$ L2 M$ Y3 @+ K/ a
- (if (= patlist "CONT")
+ d5 @8 b! i& f1 Q/ L - (progn
; K1 C( J- `+ j& d( @ - (setq dash boxlength)$ C. U3 n x) x" C$ v$ k4 h: G
- (vi)
% {; B& _: ^+ p( L - (setq x1 boxlength)6 J3 r# A+ t& @; g3 ^# J6 f. v' \
- )
7 P8 y& j c5 X* N& E3 o9 K - (foreach dash patlist7 W- L/ _. R/ ^$ [ b/ t! b
- (if (> (abs dash) 2.5)
% H4 j7 U: B! ]2 @ - (setq fx 2)1 D. x7 T3 r$ }% q; f8 i0 u
- )
% Y. E! u) q9 o( J - )) O" i" L, G0 N
- )4 V" _/ `6 i* B0 X
- (while (< x1 boxlength)/ K) Y' ?. D5 K1 A- {
- (if (setq dash (car patlist))% A; k$ c% A) ?6 D$ i! U
- (progn" W5 }' Y [3 \0 P( h
- (setq dash (fix (* fx dash)))! ^$ |+ F4 }1 g) F1 L9 D4 }# t U: Z
- (cond% `) l8 ~( u5 |4 T4 [" \
- ((= dash 0)
. C: b& B3 D, u U- _+ K - (setq dash 1)8 e6 V9 J; ^8 V& f* P
- (vi)
, J0 K! f) [- j9 f - )
% a9 i/ z. ~" _8 N' v& p# K - ((> dash 0)
* M( ?1 @& u9 s& R: W; G - (vi)
2 L7 v. _( m! A - )3 I: |5 Q! O ]6 j6 d2 \' r
- (T
' o) B% p/ `+ u$ s+ d - (if (< (abs dash) 2) (setq dash 2))
x& k& ~9 W9 o) M$ R9 W - (setq x2 (+ x2 (abs dash)))
/ z8 O' f: O. e2 z8 I0 r+ O( x - )9 H8 {6 z5 b( i
- )5 c2 f5 _4 _0 ?
- (setq patlist (cdr patlist))3 g" N3 u9 C: }. a" \# w) i
- (setq x1 x2)2 @( P# V( ~) ^- y# O
- )) y$ S! k+ R! z {# Z
- (setq patlist pattern)
# h S+ H8 j; o5 g! E5 r - )0 i9 z0 Z2 K/ l: C7 n
- )
: H d' x9 B }4 p - )
+ R$ W/ C% @! ` - ;;
+ W8 B- V7 j# r, O; o - ;; Draw a dash or dot in image tile, r4 B, J3 Z3 p; E1 c$ M6 ^
- ;;
# f; @% \! U! d& u2 U# |7 o - (defun vi ()' z, G: Z' V, _# h, j A; f
- (setq x2 (+ x2 dash))+ A& E; k. u8 Z- i; n( v
- (vector_image x1 y2 x2 y2 color)$ M6 y4 w5 Z: a' E! b
- )0 I& O B, W* }: p
- + c. Z. H0 A: o, A/ t( f
- ;; This function takes a selection and returns a list of the color,
" G) R2 Q3 W- N' |$ Z1 l) [ - ;; linetype, layer, linetype scale, and thickness properties that5 t' K* H( T" I; n1 ~
- ;; are common to every entities in the selection set - (color
& s/ G9 g6 ^4 V ]6 k - ;; linetype layer thickness). If all entities do not share the same z2 S8 @( H) i! S/ V8 y
- ;; property value it returns "Varies" in place of the property/ h% ~$ V) H4 D% n3 K. }" I% `
- ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0)* \5 f6 \+ l$ G u
- ;; The last item in the return list is an integer flag for the, b# D, A- G& X' k. ?! d" W& R
- ;; homegenity of the selection-set object types.
- b1 U/ [% i( `+ Q. I$ j; b4 r - ;; 1 = All polylines
! z7 |% K( H# r) I - ;; 2 = All text or mtext or attdef, or a combination of the three
# B* J8 n$ I" A8 @4 W4 i - ;; -1 = Any other mix of objects* K2 U* R& k) z
3 h, X% ], o" V! K; V& E3 k) x8 }, ?- (defun getprops (selset / sslen elist color ltype layer ltscale thickness
7 c6 g) @3 A$ j( r6 l4 k. ? - width elevation height go ctr ! \3 _% B- p! C( Q1 l0 Q9 o
- eflag $ j# G! I2 L* H: F( R5 |
- etype temp
- b5 a! ^* V; I( o: } - txt_ss ;;;;rk 11:24 AM 1/30/97$ e9 P5 X' g9 Y( A/ v/ @
- tmp 6 x1 Z6 k K& [: X3 J4 F* l
- poly_ss : g# D8 h6 H0 j d' A
- style
) }) m0 X c/ {5 ~( B3 Q - ): X4 h" k' ^/ ^5 q7 A2 f
8 |; T8 c* t4 P3 N3 F/ ]) |& P5 F
! } P: H' `, h) ]) e" E0 {+ F- (setq sslen (sslength selset)
8 T* G8 [; F3 s# v3 r - elist (entget (ssname selset 0))
0 j2 ]8 E5 j+ V - etype (strcase (cdr (assoc 0 elist)))% V/ e) Y# Z! Z9 x. P
- color (cdr (assoc 62 elist))3 U, `2 F8 U. |- u0 d% b2 A/ M
- ltype (cdr (assoc 6 elist))
7 ?* }" i0 C D" k0 h - layer (cdr (assoc 8 elist))
2 U& K1 v- ~1 D0 a& u- o f4 }( Z - thickness (cdr (assoc 39 elist))! m/ O( _# y/ V, z& R* V: y
- ltscale (cdr (assoc 48 elist))$ K+ W1 r3 ] s# Y
- );setq% b8 t" o9 v+ V2 l' m, C% w. E
% } `/ N( F- G- (if (not color) (setq color 256))7 m6 l+ K' z4 r; a7 D
- (if (not ltype) (setq ltype "BYLAYER")) d3 w* f* J: I
- (if (not thickness) (setq thickness 0))
5 O5 `, t5 U" @9 B. ^7 M - (if (not ltscale) (setq ltscale 1))* j3 j$ ]7 x" A3 C" C+ V
( p( M# O, j9 ~% _& ?- (if (not width) (setq width ""))5 D' y4 Q$ _/ a4 o* O
- (if (not elevation) (setq elevation ""))
# `9 @- `3 U, i1 b9 ?. K7 R - (if (not height) (setq height ""))0 Y/ \; ^; h5 D, X/ ~: l
. R% H n' _6 N- (setq go T
0 b$ G) Q0 ]2 l, T - chk-col T
: s% T* G- Z: _! a- @7 h | - chk-lt T
1 p: y: \4 C- [( T( B z' A, ` - chk-lay T
: @! a j6 _: F [+ p( N. U# ^ - chk-lts T , T) T# v/ [! _* s0 ~1 B" c
- chk-th T 0 Y) l9 S6 C; _. A9 D% d8 T
- ctr 0
+ E3 Q. @8 T/ i2 P n - );setq: A2 R9 k+ R. A% B
- . p @' \/ a0 R$ A# @! M7 n, I, X
- ;; Page through the selection set. When a property& T" t% k" c0 x+ P% c" V5 V
- ;; does not match, stop checking for that property.
1 G% Z) b; u5 C+ Y* o7 G1 e, ~ - ;; When the selection set is not homogenous, stop checking.; G$ L- }" q% Q2 y
- ;; If all properties vary and the set is not a type 13 L1 h, q* v3 b2 j0 V) g- o; z
- ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging.
' Q6 I; F& v6 I6 S3 `! u9 S' ` - 4 `6 W. ]) h7 u( q
- ;Lets set the eflag so we know if the selection set includes any ; y% K+ c1 t! v0 B' Z7 Y v8 {/ a7 g
- ;combination of polylines, lwpolylines, text, mtext or attdefs.( I$ U( V% ?# Y; o$ q: _
- . d1 r) |4 d2 U, B9 }
- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/97; w+ R: ]. L" m- L0 H
- (setq eflag 0)
( S* J4 `; e2 @/ C( d$ O - (if (setq poly_ss
9 W0 M- j5 | @& X( T, b - (ssget "P" (list '(0 . "*POLYLINE")5 i) ]$ I8 A5 M7 I' K$ V: x
- '(-4 . "<AND")
! l- w4 ^9 `6 d! @7 ^2 J: y, ?; q - '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")
8 ^/ o$ A5 G( Z' b5 Z1 X - '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")' G* C$ S, Z; r
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")+ T% i# N7 E0 ?# I8 {! K
- '(-4 . "AND>")
N4 O+ r/ I* P1 {) c" g. I4 _( ` - );list
9 m, v. h& `* o X2 k' P: K: w - );ssget get 2d polylines (legacy and lw)
X0 L8 f; h1 W. M - );setq' Z* I# E' c }
- (progn. H9 {3 @" e& F% g1 W$ e# C3 ? s
- (setq eflag (+ eflag 1))
6 K% v' H$ q+ \% F- l$ s - # Y- g$ [' h O0 p( J
- (setq tmp (entget (ssname poly_ss 0)));setq
4 ]6 P% f9 n" `2 ^! s, \6 a: K - 6 c5 J- Z, Z* J3 F( ?* S# K
- (if (equal "POLYLINE" (cdr (assoc 0 tmp)))
, w' @8 A- m3 M& N* J* z - (setq elevation (last (cdr (assoc 10 tmp))))
+ b$ P/ n7 V0 P$ m6 L- j - (setq elevation (cdr (assoc 38 tmp)))
! a( M( r0 s- T0 W. `! G0 q - );if
' x9 _! {7 L/ @# H/ T+ I" _/ M - (if (not elevation)
1 _2 _1 s! N! s3 t& p - (setq elevation 0.0);setq
0 }, c* y5 d7 Z% h - );if
7 a3 j4 R9 {/ e3 r# e
5 Z( r1 Z3 z5 t2 e7 H- (setq tmp (ssget "P"
9 o2 G$ Y! k3 o1 T$ E+ a - (list - K9 s6 G9 U9 N; P' y4 T& q/ s V& l
- '(-4 . "<OR")5 M+ K/ g$ V1 O
- '(-4 . "<AND") 3 C* ?/ Y% q9 J% z8 x
- '(0 . "LWPOLYLINE")9 l/ x8 K5 C& I0 B
- (cons 38 elevation)4 ^- b" ^* X; c! p' {! {
- '(-4 . "AND>") U8 I0 [' z1 H: T; F1 {; \; `
- '(-4 . "<AND"), E' t. R: O `9 g
- '(0 . "POLYLINE")" O7 k- a" G4 S& r* y/ _
- '(-4 . "*,*,=") ( C+ A" Z2 ~% j6 c. `+ s
- (cons 10 (list 1.0 1.0 elevation)): ]5 b0 s# p- N; B1 z) x% R* f O. c1 u
- '(-4 . "AND>") ! B$ I0 k X) P. h0 j
- '(-4 . "OR>")7 l% u, ~# U' K* ]! g" ]7 k
- );list p# j$ q3 R! [+ O7 J/ D! ]: o
- );ssget* a I- K6 o; |8 t) H- ~( o
- );setq/ ^ b- K1 T0 ^+ f1 _0 C! i
" A3 s A: h: m8 j- r; ^, ]- (if (and tmp
" a; _( C8 N4 N - (equal (sslength tmp) (sslength poly_ss))
9 c. q# f+ K' t" m; s, F9 m; H - );and
% ]" N5 A$ g* I/ f - (setq elevation (ai_rtos elevation));setq
8 q) i) H( n. q" |) w# c - (setq elevation "")
) M: I- z9 p& A: ~ - );if3 B( g8 D3 A; i' @$ M2 L3 O
- " Y2 a& D1 o5 |' t# ^- ~9 ?
- (setq width (pl_width_getter poly_ss));setq
" `4 } H: j' V# x% y8 q4 N -
% G6 G0 _' D6 X9 ?3 b - );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!5 A) [# u' x0 p6 @& i5 j' u
- );if9 v# v2 t* l3 t; o7 R
- (command "_.select" selset "")( [7 R, J; M# V
-
, Q+ ^. F" E7 W, { - (if (setq txt_ss 0 ~) [3 x, O ?1 H4 z; _3 e
- (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT")
1 f% `7 q& b& X5 H0 k8 j) k: O' T - (0 . "ATTDEF") (-4 . "OR>"))* A$ H/ h! b) n) U
- ) 8 Y/ y6 q! X6 k0 N* z
- );setq
. j |6 d1 {1 F, b - (progn
% G, x3 J; ^# S( j% [0 |; V+ V% T - (setq eflag (+ eflag 2))
: k6 i' n$ ]; r) n3 ] - (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))
9 H3 q& U4 s% G% ^6 T% ^& G - tmp (ssget "P" (list (cons 40 height)))
* c( z* R9 s5 I0 ~8 Y3 j - );setq
! ?7 y3 |" e- S! R" F5 z - (if (and tmp
& X2 V$ O4 B, A2 a; `4 ? - (equal (sslength txt_ss) (sslength tmp)) + h P5 L* {) r! A* g
- );and9 V9 }$ h( G0 T7 A/ @9 t
- (setq height (ai_rtos height));setq ;@rk need to translate from float
; W) Z5 q* Z& q8 F5 y - ;to string and back again easily) r$ `8 j5 K+ \; N
- (setq height "");setq else the height varies ) `7 a6 d# @$ Q
- );if0 S- _ ~5 F1 S0 _$ f
- (command "_.select" txt_ss "") 1 v/ H1 p/ B2 a
- (setq style (cdr (assoc 7 (entget (ssname txt_ss 0))))# |/ G4 v5 D" W/ }
- tmp (ssget "P" (list (cons 7 style))) ( ?, K/ E% ?- a% g5 Q5 c
- );setq 1 \( e+ C' [" x
- (if (not (and tmp4 y8 H# {7 E {7 S' h! @9 I
- (equal (sslength txt_ss) (sslength tmp)) & e) J+ d0 C+ b1 `. l7 o! t! z
- );and6 N$ l; L3 o4 J0 D7 C* @$ b
- );not0 Z G \8 G) N$ m( T2 o
- (setq style "");setq then the style varies 5 `; L6 d/ A3 k. i3 {
- );if
, L5 z- }) q1 s - );progn the text type objects are in the selection set& n T# h5 p0 z& I
- );if
7 `. `4 J. t* e$ m - (command "_.select" selset "")
9 ^% J7 \& u9 @ - - K1 ]0 ]( K0 I+ z+ ~" ~5 J
- (while (and (> sslen ctr) 7 V1 U* N f( A9 g0 D0 ~5 V
- go
) L' [5 C% e7 c& G& I) Z' N; O - );and9 U/ d0 s# \9 X$ e
- (setq elist (entget (setq en (ssname selset ctr))))
+ [8 l/ |; u$ B9 `7 z! Q' t
* j; o' ?9 f3 ~9 d- (if chk-col (match-col))
0 t- O0 \6 `+ }0 W' J - (if chk-lt (match-lt))
8 N; U8 }( J& y - (if chk-lay (match-lay))3 f _1 ?9 y+ `! q% b) u% G8 C
- (if chk-lts (match-lts))- k J& i8 D8 U& Z3 J
- (if chk-th (match-th))
. }* O- Q1 ^: q" b3 H - ; r; ?: o; G" p
- ;(if chk-etype (match-etype))' D4 L( @) ]( k [, |2 f
3 f( E) g& A$ I1 S2 C- (setq ctr (1+ ctr))
8 M# w. |5 ?$ @/ }9 j. h - (if (and (not chk-col)4 C; w" S# M. ?$ X# G
- (not chk-lt)
4 U' F% U/ g* Q. \ - (not chk-lay); p, A3 G3 D# e" j
- (not chk-lts): m9 x: ]) S: H2 A* y
- (not chk-th)
, f j8 K2 }+ m4 y - ;(not chk-etype)
4 N8 L; \* @! c2 ?; h. v) C8 f) t2 } - );and
' b. D V- [8 F - (setq go nil)
2 u# R2 \4 G. e0 Y) J6 i - );if
" w+ i2 C$ a/ w. X4 W: B; q - );while2 M. L; S. V, `/ s% r
-
8 ?8 \1 t7 s; |( d1 [- C" E- u4 x* D - (list color ltype layer thickness ltscale
4 s7 I3 B7 a3 S% M& l- C& {) a - width elevation height eflag
- N' x4 L5 j! `# |7 A4 D8 q - style poly_ss txt_ss
1 v; C- A a; Y1 y - )
; S$ S) i! D% X0 d8 Y - );defun getprops
4 s' R! Y% E+ n$ }7 L - & M2 m6 J" A* I2 C, O9 m E
- ; This is a speedy little routine to tell whether the polylines in % g0 e) @* [9 I" I
- ;the selection set argument are of varying width or a constant value.
0 {0 `7 d7 o* P( `' e1 T1 M! | - ;Looping through the vertex's has to be done for old polylines when
, e+ a8 }4 `1 G& x4 ~ - ;the polyline header has width values of 0.0. Basically, in this case,
- Y n9 g0 R! X$ f+ C - ;information in the polyline entity header is abmiguous. Width values
! ]% e7 ~3 u5 Q* M- \6 r8 r( F1 Q1 w - ;of 0.0 in the header entity could mean the polyline has a constant
3 o# V+ ~; H! H: E: @3 m2 V+ { - ;width of 0.0 or it could mean that the polyline has vertex's of varying
. W$ `9 [3 r9 K0 r - ;width.
2 @8 P2 c. O5 x' o3 X; P. a% t3 U - ;+ g% W5 g; A1 [, e$ g/ S( Q
- ; It's all in wrist. Err a.., I mean it's all in the 'if'$ Q$ s* W: n$ h6 t/ Z
- ;;
5 d& P/ s, r+ A - (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2); ~& F* U% v2 v4 J0 _
* m: F: C( v; h3 W# p6 V, Q# Q- (if ss ( Q* A" Y7 ~8 Q4 s
- (command "_.select" ss "")7 y3 ?" Q# v) V* K# r7 H
- );if+ t! `% p! v! {9 y4 H
- (setq width ""
& l8 ]! y4 d- g - flag nil0 d* L, [. t- G$ I3 p% p
- flag2 nil
2 g0 H8 D1 \. F. b5 v - );setq
7 C X% p! | y9 A. O4 U7 \ - (if (not 4 w! W/ D6 L9 z$ D% e9 ^
- (and ss+ }* T( \% @3 f. `8 Y' x2 I+ Z
- (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq! s5 r; \0 L' f+ U
- (setq na (ssname ss2 0)1 w: ~# S* E% m1 U" j
- width (cdr (assoc 43 (entget na)))" r- S/ X+ E) {% n
- );setq( o: ]# x$ X2 Z# ^$ d
- (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")
7 s" S. G" }3 ]' q - (cons 43 width)4 X# ?: {0 D5 R- `7 |# V
- );list8 g% W% ?9 [" P4 J) a; F0 m7 ~
- );ssget
: C% C8 ?1 r# G0 U. L+ e - );setq3 W) F6 Z7 M& u( u! G; L, R" d, K9 d- k
- (setq flag T) - h. @8 S" s9 @) q; r. W4 S/ \
- (equal (sslength ss2) (sslength ss3))
- O, C5 _" n [: E, q - );and
& m! n! Q+ x5 J8 n$ F- u - );not
0 c7 w* j4 y6 v - (progn4 C8 x1 H* ?# O5 I+ ^( E
- (if flag
) G+ N1 s7 ]* b - (setq width nil)
5 I& U. l) @- T1 l) H - );if" |+ G, ?( E _2 K; ~( C; p
- );progn
4 W" t# j2 X5 w( W - );if
2 S; I6 R4 f: [: V* z - # g0 o' k% c; Z, g9 ]( ]
- (if (not
* C' l0 f7 u2 p3 m4 u% G - (and
9 ~/ }1 r! O) n) U4 A: X - ss
0 _2 _1 E$ Y1 Y8 V1 f$ X - (progn (command "_.select" ss "") " w5 g. n3 O# K
- (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq _3 J# x3 |2 n6 E
- ) 9 J" H' ]; |9 J1 U9 W
- (setq na (ssname ss2 0)8 C; n2 m5 |9 F$ T; J x
- e1 (entget na)* M/ K5 u" C1 y0 G& B
- width_a (cdr (assoc 40 e1))3 x/ d" E Q/ I3 C
- width_b (cdr (assoc 41 e1))+ T' v- E4 Q0 E7 M3 ?0 ~, O% G
- );setq' {+ z8 n" }) C; p2 P
- (equal width_a width_b)+ }7 \* k: Q7 K
- (setq ss3 (ssget "p" (list '(0 . "POLYLINE")
8 O: n3 u8 Y3 ?' T6 o$ d - (cons 40 width_a)3 w6 T6 K. A6 b/ M3 T9 l$ D
- (cons 41 width_b): `6 ^- k2 E5 s& d
- );list- c* @0 e$ @& O( k" W" Y
- );ssget
6 ]( ]2 Z# T3 y4 B# |3 } - );setq
8 }' u/ ]$ G5 j$ y4 J3 [ - (setq flag2 T)
P9 G$ V$ ]( X. H3 j - (equal (sslength ss2) (sslength ss3))6 L9 O, J) u: f1 d' I- b) Q7 V
- );and
+ q" H/ N& w+ j2 x0 e9 b - );not
- K9 Y; @6 e% W( E5 ` - (progn
$ M) M) |; m) h* ~+ Q; U - (if flag2" p, J9 f* A+ H7 t
- (setq width nil);setq# d6 r2 @- q: {
- );if
* l* y1 c% _ @ - );progn then+ F, J$ v" A! _0 ~) K7 j% V: j
- (progn. A ^3 r2 p+ E7 W S0 Q% ~
- (if (or (equal width "")
) h8 H I I h5 v j6 q$ Q - (not flag)
% R, L1 C* i: h9 o/ o0 y$ T& y - );or
* C7 ~3 E+ S: ?. ? - (setq width width_a)/ ?3 n: M5 @0 \7 K: C- c: u# y! P& x
- (progn) J/ X, j% I4 r+ l4 N: E2 a
- (if (not (equal width width_a))- t- S: k5 J' z1 E( z1 [6 I
- (setq width "")
" K9 N; \6 P# G5 b! b& S - );if " F H4 \, f0 s3 o* {- T `3 V& x& O t
- );progn
7 s( z/ J' t8 J - );if
* G+ o' }! M O) P" e) N) G - );progn! b i) w( k7 I) D0 T
- );if
8 p8 h3 G. h7 g9 f7 w# \' A -
1 }3 R2 G" u1 r& k! B - , N% c o( G) w
- ;now for the special handling for old polylines$ j: t8 x5 p3 f, p
- (if (and width & T; k2 ^3 ^; N
- (equal width 0.0)) V& ^% ^* \ C1 P) ^
- flag2' ?! o' j5 m1 ]; d" D
- );and
w+ R8 k% \5 Q% [4 v - (progn5 A5 ~8 f5 k; m, p" b% x
- 5 M( r8 N2 P/ z0 F( R- P7 q1 V
- (setq n 0);setq
% y; h6 |3 o& Y" u, q& B7 h3 G - (while (and (equal width 0.0)
: t) x+ G8 \# Y y3 B* D/ f - (< n (sslength ss3))
" `; E2 m4 g) F# o - );and& |- j0 U g( Q# ]4 o7 ]
- (setq flag nil4 Z. Y8 H) N. {& H/ v5 c- F) S W
- na (ssname ss3 n)
% p: d9 ~1 I! _( {. D - na (entnext na)9 t5 p2 h1 y) L, b3 o/ M
- e1 (entget na)
4 u0 M! e. w' E/ l3 a - );setq
5 G2 M0 V6 Y* ^ - (while (not flag). B6 E$ P" H3 w9 \$ `
- (if (or (equal (cdr (assoc 0 e1)) "SEQEND")
" O$ d7 _( K7 e* `& ~" J - (not (equal (cdr (assoc 40 e1)) 0.0))
5 u6 n2 G- f1 Z5 _) A0 g - (not (equal (cdr (assoc 41 e1)) 0.0))
* Y% B( o4 r" Q# r1 ]0 Y - );or
" _. Y/ f4 x( E u* L: Y% P' @ l# w - (progn
. U2 X4 k* n/ H - (setq flag T);( z0 Y( f' r7 O" o
- (if (not (equal (cdr (assoc 0 e1)) "SEQEND"))# ^1 E0 G j' Q; z* R T
- (setq width nil)
- C, ] T$ s' | - );if
6 T' s& h0 y2 x, P. e( G - );progn then jump out of the loop- ?! | F+ F5 H' _" ^
- (setq na (entnext na)
, o) ^6 \+ v0 H) V: J# e1 E: b# { - e1 (entget na)
5 j0 t) {7 v+ _( k) h0 o - );setq
6 k% P+ a7 [+ B* n' p - );if 3 F! C8 R! k/ j* q. L; F2 y6 o
- );while& H0 X; ^" C5 B2 G. a# K
- (setq n (+ n 1));setq
& ^- A' w' i# X- Y0 k - );while
e y7 s" J- }2 S8 | -
: w# z9 r4 v5 |8 `/ k3 ]; I9 J9 L* x - );progn then it's a legacy
) R5 w- Q ^6 F$ G" z# {6 ?6 s - );if ;legacy polylines that may have varying widths
! r% ?2 P+ c4 _
* \& y! ~4 ]* f8 }2 a- (if (not width)
, G" R, S; b: n5 Y, V- q" { - (setq width "");setq3 o, M! R$ Q8 b2 v, [
- );if
/ u9 c: v7 \2 z* N6 b - (if (not (equal 'STR (type width)))1 [2 ?/ a7 b& S, J; p# @( a
- (setq width (ai_rtos width));setq
2 y+ f2 \1 y+ m% ~) U. E - );if
* i" S! @3 r+ j7 y" g -
+ v8 P% k! y* p g8 n" q - width
. G* t# k% P" p - );defun pl_width_getter
) V6 | p# D7 n' Y4 A - 6 B. g; T$ Y( H
- ! Y* W, L% N5 A7 {5 Y' @( K( x9 h
- (defun match-col (/ ncolor)" O1 D3 H$ s# T$ L; F9 T! e1 ?3 a
- (setq ncolor (cdr (assoc 62 elist)))9 Y4 g6 h$ \ n1 M' d9 E
- (if (not ncolor) (setq ncolor 256))
% m7 A% k5 |6 t' l - (if (/= color ncolor). j' I: r+ j+ @
- (progn
+ X0 n6 v. W0 K- S( g - (setq chk-col nil)% h2 q9 s1 a( x$ z
- (setq color nil)
# l. \4 ~# m+ u6 e, t - )/ v6 Z: t( |& c+ J
- )7 g* c1 E& c7 H6 |! e9 M
- )
# q8 O# K( v; I
! q# V1 S1 q% n5 z$ Q- (defun match-lt (/ nltype)
! N* p9 x5 I& C. w) W1 W7 d - (setq nltype (cdr (assoc 6 elist)))( G& U6 a/ A* G! q
- (if (not nltype) (setq nltype "BYLAYER"))
( i( s$ \. ~3 Q8 j - (if (/= ltype nltype)
' g Y( f: {' g" ? - (progn6 C* c7 d0 o! I) m e7 O U' W ~
- (setq chk-lt nil)
( \% v. S$ V: z - (setq ltype ;|MSG0|;"Varies")
9 f8 @3 K6 p- d3 G( C. Q - )
; W7 b: f; S0 B, D8 ? - )/ {: R6 D" Q9 u8 |
- )6 j) U7 C G m
5 [2 d* p( V! h0 O/ W1 Q5 z6 |5 e- (defun match-lay (/ nlayer)
5 w5 S6 s$ L, V/ d2 @2 ] - (setq nlayer (cdr (assoc 8 elist)))6 k* ]$ y# a8 G; G0 e; K9 t* x
- (if (/= layer nlayer)
+ @! L/ y2 t) y4 T( o% \1 p - (progn% a) v' u, X$ ?1 f; R
- (setq chk-lay nil), }6 a# r$ m3 C6 D3 v
- (setq layer ;|MSG0|;"Varies")
' m, l7 v. ?4 i2 H. E* U" s1 A - )
0 m* P d- |9 L/ `+ c* H! f8 j - )
: _0 X; m7 F, e- f* N - )
* ?/ I, h4 k* n0 J) q2 W - 7 N5 w4 `+ z4 K9 o: O3 M S
- (defun match-th (/ nthickness). s3 } g2 ]) f; I3 U8 ~
- (setq nthickness (cdr (assoc 39 elist)))
9 L- b" G2 I9 I- M) ^ z! {! V2 e - (if (not nthickness) (setq nthickness 0))
) F7 N, f% O5 |4 P5 N% B+ ]: O - (if (/= thickness nthickness)6 F. E4 N% n, P" W( H8 p" r5 ]
- (progn1 r2 \& m, E: E4 Q$ U
- (setq chk-th nil)) R3 o8 |" J: U; u6 @7 w
- (setq thickness ;|MSG0|;"Varies")
: ]5 j4 a0 `9 N* X1 R" ~! n" u$ e - )4 Q4 ^8 k* x) ?+ |9 `
- )% g- ^6 L1 ~, L. X3 Z# E8 ^" [
- )1 w; I8 j( u H0 O- B% _* z
. b+ Y* M& j3 r- (defun match-lts (/ nltscale)" L0 j* j- s) y. v2 e [* s
- (setq nltscale (cdr (assoc 48 elist))) s' p2 s4 V }( S
- (if (not nltscale) (setq nltscale 1))
, I; B" A( `" e$ \5 `3 u$ Q - (if (/= ltscale nltscale) D" y0 d8 N5 m! b8 S
- (progn
; B3 H: ~5 H o6 o) k& n - (setq chk-lts nil)
$ b8 t7 i# g, {0 H - (setq ltscale ;|MSG0|;"Varies")
7 [4 i0 Q2 e. p: \9 B. ` - )
; f3 M4 \9 f' h - )
2 K6 O& A* u& B - )
8 v K8 j) a1 S8 c* b6 F6 c
2 B/ l6 b) j9 u! o9 @ P9 A3 d- ;;. L) N8 }5 d4 @9 G- c
- ;; If an item is a member of the list, then return its index number, else6 _ P; d& e% D8 b ` A r& ]
- ;; return nil.
$ \3 ^- |* s, f" X- y: Y - ;;
" \# Y7 d$ ]* [) k - (defun getindex (item itemlist / m n)- H# [1 b# G5 r' |
- (setq n (length itemlist))
4 a/ b! p. F P( C( j5 K4 j, \ - (if (> (setq m (length (member item itemlist))) 0)- }& E' G! A$ a% Z6 w' B
- (- n m): S* I0 O" |. \4 i4 f: d
- nil
3 d6 p" o6 S0 ~+ { q: u- a: q - )2 w, J1 u; f, \* W4 ]8 Q9 p- [
- )
$ b, ]5 g. A7 l* D. i8 E$ R - ;;* y; k" T' o* R! g' L7 U8 ]# r
- ;; This function is called if the linetype is set "BYLAYER". It finds the' ^- M/ _5 |2 \/ h: C7 w( g" s
- ;; ltype of the layer so it can be displayed beside the linetype button." Q1 ]+ ]( ^- `; Z3 {8 M) {
- ;;4 A& w' w- _9 K2 l! Z2 v
- (defun bylayer_lt (/ layname layinfo ltype)$ u; U( C' Z. N2 t/ _
- (if lay-idx
8 [" j i8 E7 _& \. J - (progn
. ~/ d1 y. z7 b5 {+ S: R - (setq layname (nth lay-idx laynmlst))
7 E+ m5 C$ `% x. ~* ] - (setq layinfo (tblsearch "layer" layname)), j* O; a& d2 x6 r9 n# T
- (setq ltype (cdr (assoc 6 layinfo)))
8 w* s: E6 G2 A" }: A- K+ {6 S - (strcat "BYLAYER" " (" ltype ")")
' B1 n+ J. I, X7 k$ r - )) U, J2 ]& H) j! {4 p
- "BYLAYER") x1 S" L) K" i. q3 }
- )4 V% n2 w# a& v) B: c: m
- )' }0 R+ H& _3 ~8 d, y3 `
- ;;! d( k1 ]2 v% b5 I9 Z0 D) e
- ;; This function is called if the color is set "BYLAYER". It finds the
1 o& d }/ i6 F2 K - ;; color of the layer so it can be displayed beside the color button.
3 `0 e* W) t5 Z - ;;- k8 i0 M, B, i2 M$ H3 S
- (defun bylayer_col (/ layname layinfo color)
7 k6 b' Y3 y/ R b - (if lay-idx
4 A5 _" `1 @% C+ M) ]5 L1 ]1 Q$ |8 p - (progn$ T% i$ t0 p8 T$ y7 n N
- (setq layname (nth lay-idx laynmlst))
|+ O1 o9 ?7 l2 L0 K - (setq layinfo (tblsearch "layer" layname))" q k+ |2 d3 x+ u, h, o0 H3 g
- (setq color (abs (cdr (assoc 62 layinfo))))% N% @; T2 _, `& D. Q- c
- (setq cn color)0 n0 i# d+ x D& G1 R- t9 f8 N! o
- (strcat "BYLAYER" " (" (colorname color) ")")
$ G0 G; R5 r, X A - )! I3 c7 s1 R+ [) N3 l; `' p5 h& [
- (progn$ b, l* V/ O1 N8 e+ X
- (setq layname elayer)
* e- L: t$ G" X' P/ u - (if (and (/= elayer "")
* s# u3 e1 b6 E! v. d - (/= elayer "Varies")
2 \! S7 A; {$ r& n8 ?3 O4 [ - );and
. S* x* Y: }' {/ I- R2 p - (progn8 w5 s3 r% E) B/ B
- (setq layinfo (tblsearch "layer" elayer))
; z1 m' a& O6 y7 Y5 W+ a5 ~1 u$ J - (setq color (abs (cdr (assoc 62 layinfo))))
" i9 v6 P+ `7 D# a& P - (setq cn color) \7 p5 N! T! p @% q
- (strcat "BYLAYER" " (" (colorname color) ")")- W" L" u0 @5 H( b9 Q" Z8 Q
- )
2 x: Z( ]2 I4 J - (progn+ ?0 }9 h5 Y, }# I
- (setq cn 0)
5 m5 q3 Z8 ` T8 q" H - "BYLAYER"
, M6 G2 l% r( \3 C" a - )
* x, C; |6 L- [ - );if7 [- Q/ k1 t7 ~7 a1 D4 y2 y, C
- );progn4 X. ^( t9 M7 Z9 P3 @+ m. \
- );if
- R: Q) v, O9 v2 x" ? - )
/ M0 R+ H/ F) @) X/ q - ;;# z" D2 d9 A! o$ c; _
- ;; If there is no error message, then close the dialogue) V; V" m) f1 f. Q0 N$ [& e: R
- ;;
& p% I/ M0 d+ p - ;; If there is an error message, then set focus to the tile# ^: u/ a5 G9 N; j: D0 B
- ;; that's associated with the error message.% X% d& o. u1 q Q, `) [% h- f' L
- ;;
" `+ L: Z$ E9 V - (defun test-ok ( / errtile)
3 u2 k$ n8 g- O5 q# p - (setq errtile (get_tile "error"))9 t: v6 g& h# R& S
- (cond6 ?, l5 s7 P' B: P
- ( (= errtile "")+ p. j8 \ ^- K. {
- (done_dialog 1))5 M8 p8 A( K! w0 X' e
- ( (= errtile "Invalid thickness.") O. M" ]8 z5 g T8 a, c: _
- (mode_tile "eb_thickness" 2)). w$ ?" O( `- x
- )1 B) g/ X. ?; f: D3 m
- )
4 U) ^) L8 u y, W3 I - ;;3 Q+ t2 q3 u1 x" v
- ;; OK in main dialogue.
$ L7 F9 b2 X3 @) v' ?" h - ;;
8 j& ^1 J! D# Q: B7 J - (defun test-main-ok ( / flag)& T9 _5 v# _$ Z! G8 B
- (setq flag T)
( z5 s0 B0 O# c% F - (if (not (or (distof (get_tile "eb_thickness"))
* {/ v/ h+ R3 M/ O4 ]8 W; u. d - (= "" (get_tile "eb_thickness"))1 Y$ O( [- _/ U0 \% O
- );or5 h3 X, U8 _, k% D
- );not m% w: F. |3 r
- (progn
, q$ A/ k: k8 n; c' C0 S/ Z' q) f - (set_tile "error" "Invalid thickness.")
4 d' Y( h) `& E* o. W: I - (mode_tile "eb_thickness" 2)
% C# w& o c( m; Q& R# G( P3 S9 X - (setq flag nil);setq, [; G4 d. `3 |; F0 r5 a6 s
- );progn
, V7 r9 R0 e& I2 P0 N' G - );if
- T/ X6 `& A1 G5 d, I ~0 l - (if (and flag |; F; _# E/ w
- (not (or (< 0 (distof (get_tile "eb_ltscale")))" r4 |5 ?6 h4 y, U
- (= "" (get_tile "eb_ltscale"))
4 r% Y3 r! L- y v9 [$ ]; T m; d - );or
& c. p9 s, | Z' ~8 l- | - );not' }9 h* U. a& r
- );and / a/ [" t' E: K
- (progn6 Q; x/ a4 G/ J7 s0 T9 K5 C" \
- (set_tile "error" "Invalid ltscale.")
1 j. J- x a% h- b - (mode_tile "eb_ltscale" 2)
" H5 B3 ]; h+ G9 G- S W - (setq flag nil);
3 j6 q4 b& t0 r4 Z - );progn then# ~' L! P- X+ M- S6 U; s6 u) W* I8 B
- );if
- J! f U5 T* _* i - (if (and flag
1 S3 e9 u* l/ w. l: v - ; Don't test the tile's value unless it's enabled.
, R, Z- t( [& T3 o6 O - ; We're not set up for the display-only value
+ w, D9 Q4 S1 s - ; of "" here in the error handler.4 V( ]+ v6 h# H7 c2 M
- (= 2 (logand 2 eflag))9 L. \1 v! l5 F7 o4 W
- (not (or (< 0 (distof (get_tile "text_hgt")))* T8 L8 B! p6 ^/ Y% E
- (= "" (get_tile "text_hgt"))! i8 d/ b5 @: ?- ~
- );or, @# @. C& z8 s5 b5 b. b9 R0 s C
- );not
: L: r7 i8 B, b - );and
8 T( j, U3 T4 }( } - (progn! D, n# M# L) s, D
- (set_tile "error" "Invalid height."), x. _+ ]3 P" S+ e& F
- (mode_tile "text_hgt" 2)0 a6 C/ Q( c4 A @0 p
- (setq flag nil);
+ t b$ R) N1 N2 ?2 B) s* A - );progn then
' ~; ~! V5 s7 g - );if
( |( ~7 P/ `$ z - (if (and flag; d& p' t' n0 m' T- Z: @$ l
- (= 1 (logand 1 eflag))
- D8 d% q8 m6 D2 S! n! d+ q: a - (not (or (<= 0 (distof (get_tile "poly_wid")))
6 k; l C7 O* d O! ^' j! L' n - (= "" (get_tile "poly_wid"))" _3 [9 a4 @) O; ]- p/ }
- );or* d7 A- @7 g% [
- );not
3 O3 c/ c/ H( [) z" o( F' E - );and
/ ^+ _6 Y: X& S - (progn" a) R/ X. G! n: X" S# O* H' k
- (set_tile "error" "Invalid width.")
; }: G0 H* f# j - (mode_tile "poly_wid" 2)
# `4 N* i- |2 e( ]+ n6 l) ^ - (setq flag nil)
4 O/ a; U4 ]6 J7 d; h1 q; T - );progn then# R0 ^1 T. x8 J; `' h
- );if
3 s3 _; H, D v( C1 O9 M) {3 z# V - (if (and flag( _: N |: b; d/ B9 y
- (= 1 (logand 1 eflag))# h" b' Y0 Q6 ~6 ?
- (not (or (distof (get_tile "poly_elev"))
. {; U, R' n" L/ ] - (= "" (get_tile "poly_elev")): U$ v, R$ r1 V2 k3 H
- );or
3 t3 h4 k C$ E. H& R - );not1 {: O, |$ I8 }2 G( R4 d
- );and
/ g- i6 h2 S# M- \7 Y. ? - (progn3 [$ Z% y3 n0 x2 Y' \0 A; o
- (set_tile "error" "Invalid elevation.")
$ U W! x+ T7 J! W - (mode_tile "poly_elev" 2), t; h5 J- N# |' I/ P2 o% Z' Q
- (setq flag nil)
2 j* d7 L: Y( y- B - );progn then
6 z1 Y8 u/ @# Q1 W1 z8 B$ d9 t4 p - );if
/ Q* s- R$ a& [* t$ |9 b2 R - (if flag 4 b, A+ ~/ x a! L/ G0 h
- (done_dialog 1): R/ l7 I2 R; A- c% e/ n
- );if
$ V& }( U9 `) q( i7 y: X. A% m: z - );defun test-main-ok: m2 k6 O9 @% N& r: w
; a/ B! R" y6 D9 l4 P- ;;. o3 D% p1 y/ m4 B9 U
- ;; A color function used by getlayer.1 K+ D; _; {5 ?2 `
- ;;- n$ I5 N! i" i
- (defun colorname (colnum)
5 h& t& d0 w3 [) x" X n2 T3 }+ `( \ - (setq cn (abs colnum))2 h0 Q) y8 q0 D* _( c: y: S
- (cond ((= cn 1) "red")6 }! [3 P9 t5 X# b
- ((= cn 2) "yellow")
( T% P( { t: u2 n0 v' ~; m - ((= cn 3) "green")5 k- H% F- ^" s; d8 B
- ((= cn 4) "cyan")* H8 J' G! e7 v0 R* U- k
- ((= cn 5) "blue")3 m+ x; N8 g! q9 C) |
- ((= cn 6) "magenta")
: e( K6 c2 S* g - ((= cn 7) "white")' K$ G4 Z) R' q' P( |# N! O; x: I
- (T (itoa cn))
9 q5 y) x- \+ U5 |# m8 e - )0 N. P |' ]1 w* `
- );defun
- v |" v: G2 U0 K! [ - 4 J+ C, o2 l" v4 D+ g
- ;;; Construct layer and ltype lists and initialize all7 N7 {! J; j% i$ F) s
- ;;; program variables:
4 l# L9 E M. n9 _& N: V - ! E) ]6 Y* w I. S" |# T/ J# v
- ; (makelaylists) ; layer list - laynmlst( g( m6 m( C9 z2 ?- p% ]3 Y% L
- N( B! L9 r* E2 b) \- ! z$ I$ P9 _ n; @2 F
- (makeltlists) ; linetype lists - ltnmlst, mdashlist! R) B/ L- S- g+ o4 f8 U
- 9 @( k) h2 I$ W: M5 H- d
- ;; Find the property values of the selection set.+ c% s- L" W0 |+ B$ |
- ;; (getprops ss) returns a list of properties from1 f$ o) _$ @5 h- \" F7 v
- ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH)./ ^. t: j' b9 R' W4 S9 I5 ]
- 9 n' J4 c0 P: N2 U* L. y0 d1 h
- (setq proplist (getprops ss));@rk interesting things happen here% _* L y! Q5 x7 T7 L
% x& Y3 j- v1 [- T* N- (setq% z# j* }% m" v" Y- B
- ecolor (car proplist)3 _8 K7 E) v9 J2 M$ T( {- p% n! T d
- eltype (nth 1 proplist)
8 W6 q+ _2 V) X4 x, c& | - elayer (nth 2 proplist)
# @# J: ?6 J# ?0 C) r% q; T8 e u - ethickness (nth 3 proplist)% @# o1 d- b7 s/ K/ I Q9 M4 F- G
- eltscale (nth 4 proplist). V2 D9 H; v( A6 o/ I
- ewidth (nth 5 proplist)' d; y3 [7 `5 T- e
- eelevation (nth 6 proplist)! E6 y- R U' Z( s
- eheight (nth 7 proplist)' N- x: c1 T$ C# I1 L
- ;etype (nth 8 proplist);commented out and replaced with the line below. RK.- x' ?" C5 {. M! Z: _- ?
- eflag (nth 8 proplist)5 o9 X3 Z/ ]) f5 R6 T
- estyle (nth 9 proplist)
) t+ ]( m* w7 i% x - poly_ss (nth 10 proplist)$ b( [& O$ x' [) u( @5 ~
- txt_ss (nth 11 proplist)
3 w+ q6 c4 }4 i8 L - );setq" N4 U- z% c4 N7 R
' d" X6 J* v1 ~6 [( l( z9 w- ;; Find index of linetype, and layer lists. z% S& L+ b! _/ R! y- ?
- (cond0 x" Y1 n( W8 s5 G
- ((= eltype "Varies") (setq lt-idx nil))3 T: A V( e4 \
- ((= eltype "BYLAYER")
' F/ j( _' M0 S( y: o6 Q, i3 z - (setq lt-idx (getindex "BYLAYER" ltnmlst)))
0 S* a% W' H& F+ O' D- ] - ((= eltype "BYBLOCK")
- P1 j% a. c3 W( T O - (setq lt-idx (getindex "BYBLOCK" ltnmlst))). d' O1 i1 m. v) V1 w
- (T (setq lt-idx (getindex eltype ltnmlst)))- i( r' a4 ?) n; Q! |
- )+ R% w4 h2 Q+ ?' L. H' x3 S' ?
- (if (= elayer "Varies")* B8 M. Z1 T" s. N/ \5 i1 l
- (setq lay-idx nil)
, s( n; Q4 L( a4 H& o$ G - (setq lay-idx (getindex elayer laynmlst)) C V j9 d* F, N" B% d& {" b
- );if0 t0 K+ l8 p5 {% z+ J# h( d1 M
- (if (= ethickness "")9 M5 v/ \4 b* z) [: F% i! Y5 F: y
- (setq ethickness nil)
8 [3 ]: f+ b6 x. v: Y4 |1 ~ - );if! k; H3 K0 {& E" Q5 |
- (if (= eltscale "")' z0 x0 h' ]0 t8 u
- (setq eltscale nil)
% o5 N" M$ t% O. l. K- O$ O/ G, K9 A - );if" J& L% ~5 c. ~+ f) T4 T' h- \
- # y1 q" C4 [2 g6 ]1 q2 H1 z
- );defun ddchprop2_init ; end (ddchprop2_init)
5 a8 S5 U( Z( Q' _) P e9 `& |
h, E1 W5 `, U M$ Q- E- ;;; (ddchprop2_select)5 ~4 e! e- Y, `& G( o! o7 g
- ;;;
C" l! l4 j. c7 A! o2 ` - ;;; Aquires selection set for DDCHPROP2, in one of three ways:
' T0 @9 k2 a% b, |, Y( F+ n - ;;;% Y8 G3 A6 M2 y# B- C
- ;;; 1 - Autoselected.
3 \. b1 B$ t: p. N - ;;; 2 - Prompted for.
; @2 q% e0 |0 [- s! _ - ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )+ t: |7 L% c0 S( |6 v$ ?, P
- ;;;
" D3 v7 H, m7 y- L/ g& l: C m - ;;; The (ddchprop2_select) function also sets the value of the
1 T1 j, b( [8 }" C9 p( q$ N - ;;; global symbol AI_SELTYPE to one of the above three values to m+ \ F* Z @) d+ D) @2 Z- z
- ;;; indicate the method thru which the entity was aquired.) u) R" \$ m. H' @
- , Q# Y; q, u: W& n6 Z4 I6 b
- ( `+ c) r! Y& }1 \/ _- W8 e4 ^5 @
- (defun ddchprop2_select ( / )* T# s6 Q" Z5 d# C5 |
, M+ b5 l( `1 e- q' ?( l- / B: i( ^ T B/ @' f+ g: S: r
- ;returns only entities in ss that are in the current space.
; {# {% d/ e; w6 Q1 x* v A - (defun ss_in_current_space ( ss / a cur_space ss2). s8 s: {; t; \$ P4 h/ z0 o
- 3 W6 k! ?9 H3 H/ Y
- (if ss
, o" f- E/ o. K. n, M/ a# k - (progn7 {% u% Y% B" Y9 M
- (if (and (equal (getvar "tilemode") 0)
% v- @$ a: v, g( |4 k/ j - (equal (getvar "cvport") 1)
+ ~, H9 ?. b' |/ Z - );and 0 S' c8 \# a. }0 S
- (setq cur_space 1);then paper space is where we are.
n$ ]8 W9 I8 J) J - (setq cur_space 0);else model space.- E# v q( O* F) U6 [5 v
- );if% M* Z. p; ^' k
- (command "_.select" ss "")
: }; r8 |9 z' r0 x3 o - (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq
1 v; @7 q: G. M& Q( `0 z2 Z4 t - (cond ;;;;;tell the user what's going on./ @9 |( S6 u+ e
- ((not ss2) (princ "\nNo objects found in current space."))
* }7 K' ^: ?" H( a - ((not (equal (sslength ss) (sslength ss2)))
5 B" w0 z+ h, @ - (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2)))6 c" L7 a- Z6 `
- " object(s) were not in current space."" J3 B+ c$ J7 g/ `, j2 V* {: G3 M* q; V4 i
- )1 N( w# Y8 n9 O) E$ ~( d
- )
6 P" E. C' M. ?( h - )
+ _* L$ O2 L) K. j& H! ~ - );cond 4 N" q" K8 W' n3 @! z5 Q8 _
- );progn then
6 Y7 }/ ~0 u' T, {& s - );if ) S2 }# V( N6 s# T& g. q7 |# e
- ss2
' y9 `0 [7 @5 p8 n0 P. V. n - );defun ss_in_current_space
. K; E, v$ O. q1 f+ `2 w: |
6 E" R+ U t; N- 5 q& o% n, x8 E- [7 U% K
- ;;;begin the work of ddchprop2_select
: {/ @1 e1 L% v' }/ k% Y4 m3 O - ( H9 P2 e# ?* k0 z
- ;; temporarily restore original highlight setting.
3 I; @: U$ f, S p6 p- a4 e# c* i/ V - (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))
, {) c8 u0 T4 t4 \: i - (cond
& m- f" {& o6 g1 x - ((and ss
1 s4 W, q5 n/ U$ x. s - (eq (type ss) 'pickset)* r3 v$ M* T3 y3 P! K
- ) ; selection set passed to& u( A5 K' F$ Q0 z$ I2 x
- (cond ; (ddchprop2) as argument6 l2 \ `5 C0 T! X& v; j8 p
- ((not (zerop (sslength ss))) ; If not empty, then
& F* ]. ^6 Y' n, A" s - (setq ai_seltype 3) ; then return pickset.; I7 o4 c2 y0 b6 V% f/ J) B5 J
- (ai_return ss), n/ b# P0 ^& u
- ). Z- y6 S3 ~4 ~
- );cond close
* n% Y+ K! H" O* C6 Z0 w - );cond #1
- C8 e% M- T4 x' f+ r! C - ((setq ss (ai_aselect))) ; Use current selection" @3 k/ ^. z4 R7 B0 y
- ; set or prompt for objects
' N$ }. W9 ]1 s& |6 V - (T (princ "\nNothing selected.")% l$ k( T \+ N' n) }8 ?
- (ai_return nil)
( z3 U( {' I2 a3 G5 ] - )9 ], j, Z5 r4 W, g5 b
- );cond close5 @: A O+ Z! B, e. v
- (b_restore_sysvars)
1 d) |: P0 o/ J9 ]& j9 R - $ v9 Y; G( X- n3 Z
- ;(if ss3 g% W+ T8 u1 {. E8 Z
- ; (setq ss (ss_remove_locked ss))
* c# R/ {6 V5 I. g+ Q5 L - ;);if7 U6 d. i# `* U! d0 v7 m s4 y# j
- (if ss
0 j* c+ y6 p3 x: a: Q/ d - (setq ss (ss_in_current_space ss)) 6 E3 |0 {+ n' c6 z; o3 g1 P% y: p
- );if
+ s' j" w9 H9 i- Q Z a4 O
1 e" y3 R; C2 B K- ss
6 s, ]- P) I, o/ {: ]: V - );defun ddchprop2_select! z$ ^: y5 M" r
. F* q* F% j% @% {+ R& L
, @0 B. Q1 A+ s4 x s- ;;; Define command function.
3 q! |& `) U2 K( ^4 r5 _* H; r8 I - (defun C:CCH ()9 W1 }8 n& P2 u7 h3 d
- (ddchprop2 nil)1 f2 l. k) f' x2 @5 q: Q) `+ j
- (princ)- ^! t% a$ \: j+ Z8 U
- );defun; \( q- `8 h1 z/ [0 b U' ]
3 r: z6 {7 B' x* o; ~
7 `, B- g; K G) E9 ~" E/ i3 k- ;;; Main program function - callable as a subroutine.6 k0 v' Q8 D; Z( |
- ;;;9 h1 z/ l( T0 G& f: d; V
- ;;; (ddchprop2 <pickset> )
( S8 H$ G# }& B) o" h, z& X - ;;;$ z/ `" ` r, l# F- t# p x- G4 I
- ;;; <pickset> is the selection set of objects to be changed.
- J( \/ @3 O3 i! b9 g6 T J - ;;;
9 a, D# B" W6 I - ;;; If <pickset> is nil, then the current selection set is
5 k: g' t! x7 {+ c - ;;; aquired, if one exists. Otherwise, the user is prompted
1 `. [5 B3 H( Q" w. n u4 D2 M - ;;; to select the objects to be changed./ s7 T* J* H" i- _" e: u
- ;;;: e& @8 ^7 P9 l
- ;;; Before (ddchprop2) can be called as a subroutine, it must+ H8 ^4 h, W: I6 X& |- s: w" t# N
- ;;; be loaded first. It is up to the calling application to& T) p1 v/ R$ ]# y0 L9 B
- ;;; first determine this, and load it if necessary.
( |! W# P$ K& h7 b- g$ `
+ T3 r9 {7 S& `/ T8 w# z( q9 m4 _% q) k- (defun ddchprop2 (ss /. F5 W# J3 j( d! b# ]1 y# A
0 k) ^. b5 ~; k1 o- C- a; o3 u4 S. d2 u3 q' h! Y; ]
- add-mdash* {; Y, o$ C/ q& W
- assoclist0 k. N" R- b# O% _( o
- bit-70 q4 ^, E) a/ G, q/ g, i6 j$ o$ I" i
- boxlength
( D& v5 f! ^. e- t - bylayer-lt7 R' q( r& ], V6 r) p6 V
- bylayer_col$ `8 Z% I- G4 \& _2 y
- bylayer_lt- u$ _* H3 i+ O& B! @) O
- call_chp23 W$ E2 e4 W) j3 [7 U; |
- chk-col8 x; j, v6 y( ~2 T; U
- ;chk-etype ;var removed by rk ! x# c) S; y% c4 X" S
- chk-lay $ D( s! v5 g0 k+ p& G6 Y, r4 J0 C
- chk-lt3 y( x% ?! K5 z( l% N% F- E
- chk-lts ;var added by rk
' r8 O# R+ j7 Z+ ]2 g) K - chk-th5 K! x8 ~# w1 l# @1 J. R2 k t" O
- cmd& r! S" {7 v2 \6 A# B
- cmdecho, d% q+ D- F9 \' F, D% i
- cn2 g. @7 U: R! _% u/ r4 N, W! o
- cnum- [0 _! r( y+ j) m& J h
- col-idx) e8 m# N- F5 l
- col_def1 g& ?/ R3 U% K+ ^2 k& Y
- col_tile8 T3 }0 E1 D9 l( c7 I( l
- colname5 O" j* ]! n r M
- colnum
4 b/ E; Z8 W# D6 `) M* T% C - color- E* C; K$ n! s; U
- colorname7 u! K' t8 V, v+ j% ]
- cvpname
4 C6 g, Z3 G1 K& n. B g - dash
5 J( ^* P5 U" [ y3 s, T. |" x# I+ F - dashdata- ~9 a' I0 _3 }5 R0 i
- dashlist
2 ]# i& B7 K- ^; W - dashsize0 Y5 J; w0 q7 o% m' i& g/ n
- dcl_id/ x' _% y8 ^) |, P3 p' R7 H. y# D
- ddchprop-err9 u8 \" G7 k6 e$ P
- drawpattern
/ q$ w, S4 I6 g - ecolor
8 S" W) D- R0 N+ u4 }8 p+ _ - eelevation& Z& _8 M Q$ }8 J- d8 F: T6 D3 a
- eflag
H4 ~6 j. x1 Y& k - eheight
( k6 r/ V G; U& H2 f, C0 D) P" | - elayer
4 a% W* l9 ~. X0 n+ w# S+ c - elevation
- e/ \& u# i# n6 ^2 v - elist
3 r; @: f w1 {" P! L6 I! ^( ]6 t- T. R - eltscale7 {, \& i6 ~) {. X
- eltype
0 g6 z' p T# S/ B" Z - en
( x% J+ t- K; L- }' N - ename
' w% l x/ Y9 n* ~9 c- N- q% m- F - ESTYLE ;var added by rk- q0 A+ r$ U+ E, `8 A
- ethickness5 J& W( M+ K, s& t3 O% K+ j
- ;etype ;var removed by rk
+ u: z- I- E+ h4 s: |/ H - ewidth
( ?2 d+ U+ ~0 O6 |" @$ U - fchk
! S* z1 w1 m0 q - frozth/ _" w% H% |) e' ~
- fx. r( @. i) q, g" l% R
- getcolor; O9 w6 C4 T* m; k2 `' g
- GETELEVATION ;function added by rk
7 E& ~' F$ x3 X) X0 A% A, J - GETHEIGHT ;function added by rk
& R2 n0 N3 y) B& U I J+ p' t - getindex
( E# {# M# T5 p5 i( F- r1 X - getlayer
3 H3 ?& ~7 n+ B. d/ T4 d4 V$ W6 d - ;get_locked_layers ;function added and then removed by rk
3 ^. C) ^( A/ W( d7 O - getltype+ y6 q$ X( V9 m3 C/ u; I) u* m
- getprops
5 ~1 a: x- Q! R/ U: z/ a6 A4 p& a - getscale ;function added by rk# v. l' l1 ?- i ]
- GETSTYLE ;function added by rk: u3 c z4 g3 j5 r7 [ ~ n
- getthickness
' l0 v7 c! J) I' q" } - GETWIDTH ;function added by rk
3 U J9 A+ Z3 ~ - globals+ I9 L, L% z/ K* f3 ?. e# m$ Q
- HAIR_STYLE_LIST ;var added by rk3 p) i8 Z3 Z' X# g" |
- height
7 i& q6 ]: q, d* }( y: w9 E0 D - index
" @% s2 x# i) U# `$ O- S% z - item! \- x3 X% Q* Q* V
- item1& e; L' M; Z' H4 {* k$ L& A- R
- item2
6 v- s- Z* o$ _9 E, |! j - itemlist! ^0 R, z/ i" V8 h
- lay-idx1 y7 w/ O J, U$ G# `! @5 m
- layedit_act
$ D' f: B1 h% Y$ G3 F( c! \ - layer. y9 [9 Z6 h+ w8 v) ^
- layinfo
0 M2 m) b3 O7 i2 ], F, H# L - laylist m6 N% R1 `2 l, U
- laylist_act
6 S# I$ h' B" o: n+ Z - layname4 Z* q( L$ |$ o7 M2 u8 w
- laynmlst
; I. A) X8 ~) J: g) R1 ^9 t9 j - layvalue
' t( _3 W9 U% y/ X - linetype
: V5 |9 [& a8 R5 d% r/ v - list1( L3 ?: i( D1 T `& g9 ]
- longlist* j8 c6 d" J- `4 v f5 J) {1 w9 k
- lt-idx
+ f" c7 w$ g" _1 \( Z - ltabstr8 F5 E4 u0 o6 _" T' |+ u
- ltedit_act ]* Q7 R+ Y" d, d: E, j% X- j9 C. g2 K
- ltidx5 w8 n: o W+ a" j, V& z" G. \
- ltlist
0 N8 t0 i8 J- V3 o, L. M( A - ltlist1
' Z# Z8 `" ]# Q: k - ltlist_act+ H+ Q& A! @9 O. _
- ltname5 u* G8 p6 p0 D7 d2 V- n
- ltnmlst
% C' }, ]- T8 |4 m. e, x - ltvalue
8 f: _7 b1 S/ s1 J/ w i - ltype1 L: X2 {, d6 k5 Q8 G
- m
) l" H( H ]0 F7 c# s3 K - makelaylists
/ E! k0 c. f$ _ - makeltlists
* x& c( t- C' i2 e: @7 ] - match-col
/ k) L7 p/ `# d - ;match-etype ;function removed by rk) n4 l8 O0 w' C8 ]7 r0 a- q3 |$ s
- match-in1 `, J5 _, ^' r/ m2 t
- match-lay
# ^8 L- m! P$ s2 Y/ r& E6 l - match-lt
3 s5 d2 \( o4 G' `: W3 C8 o - match-lts2 {4 |6 Q. l4 i8 S x
- match-th( f. `" X# U8 K+ H" m% T8 w( X
- match_col
7 D" t @. r- g8 w - mdashlist
7 v4 n7 t1 D6 R/ L - ;MPOPLST ;function added and then move to ac_bonus.lsp by rk
+ e) k# [+ Z: q" i$ C" U* D8 [ - n
Y, Y. f/ h: B) T0 K$ T - name+ c7 {' D; o/ P+ G( i2 @
- ncolor
3 w5 r2 o; J; R, ? - nlayer
* w9 ]7 W, C$ C# k9 r# l5 | - nltype
2 x; K0 q& R# Q2 d* B# `9 e - nthickness
2 S& |# a1 ]# _9 o* a+ L9 B2 J - off
7 _/ y* k5 w8 c& x4 o/ Z% G - old-idx
" v% i6 b" W/ i - olderr
! p) h" R; Z, H/ o; j9 D. K - on
G- V$ {8 b* }! ?6 ?, d- N9 g - onoff
9 T/ U- j5 z) j, z3 f - patlist
8 L6 J7 g9 S# W* T9 @ - pattern& d4 a6 Y2 t* C" |$ j/ w9 a
- PL_WIDTH_GETTER ;function added by rk/ r7 |% R( P5 |0 Z. u
- POLY_SS ;var added by rk
* s. [* p/ [! b* k, _' y2 z3 I - ;POSITION ;function added by rk and then moved to ac_bonus.lsp
' `/ `7 V, O7 S - proplist7 H( `4 [) ~7 w0 p
- reset-lay3 @( G5 K9 b4 p- ^, J- e+ v0 t
- reset-lt# c* g; A# E6 K7 ~
- s% m4 {# h" \: L; {8 o
- selset5 l/ n" T# C6 w7 \* X
- set_col_tile
7 Y9 J8 L+ T% h9 S6 |, R - sortlist
" O. W/ ?, A# P* k' [; T - ss
( k/ {7 o7 k/ ]2 }, b6 B" a/ q - ss_in_current_space ;function add by rk.
* C+ H$ I G* b- y7 J - ss-index
- n5 I! A% r6 m2 {: P - ss-length
d' U e3 b4 `. j7 G1 F+ s - ;ss_remove_locked ;function added and then removed by rk.3 X7 M8 w) ?# Z6 m
- sslen
! S4 |% a4 Q) _ - temp_color* N$ G! a" E, s
- templist
9 }$ T2 z, U! C2 t) A# p - test-main-ok
2 n. o4 D! ^7 N8 o& h: q - test-ok( Y3 T) q7 G2 b! {8 z5 v
- testidx
+ m5 P+ O; V g! ]5 j - testlay: U# z# a4 y' r
- th-value: Z: A& y# V1 w7 k' L
- thickness- S. r5 s# C1 F% B
- tile
6 o" O$ X4 h' b# h# a+ p/ G - tile_rect1 ^) W/ x3 F2 I. x8 C
- tilemode0 r* C `6 d( ]1 M2 e
- ;TNLIST ;function removed and moved to ac_bonus.lsp by rk4 V8 k# g5 I* A& E3 s9 _; R8 J
- TXT_SS ;var added by rk
6 G' k& ?7 V9 Z3 w, J( r - ;undo_init ;removed by rk.
; T0 `9 L& g- c& b h - vi
$ Z7 K; V ~! ]% l7 `0 S - vpf) M% J% }8 G/ _* y/ L& u
- vpldata+ a4 i7 u' q r2 ]7 o/ _5 O6 S
- vpn8 ?. K; B1 }( K+ h
- which_tiles7 E& Y( C4 F( b1 ^+ `
- width) Z6 j# E3 H6 @7 L: z9 e
- x
0 ~# d/ Z, K7 r4 _' l& U - x1" O" j; ?6 f7 o5 n
- x2- ]' F5 W6 B3 b9 g; n
- xdlist& S) e q+ `5 U9 n3 p
- y
0 t7 z0 C/ q* C$ o3 t' M; H - y1+ L6 @: }. t& K# g
- y2
! Z% N# j- ]( M8 c! X: U# g - )
# s% }" T' r( b9 P9 T
8 V# x7 z, V0 ~0 e) U- (if (and (not init_bonus_error) , j0 u6 f4 l& S |# L' X5 B( Z; c0 j
- (equal -1 (load "ac_bonus.lsp" -1)) " ~# e) C* n. D/ u7 m: K
- );and
6 S# d: o0 u5 `5 Y7 O) L* ~ - (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit)), \' A/ Q8 n" }5 K% g: g! E3 p
- );if3 h4 Z, g% N5 L5 Y
- (init_bonus_error (list% I8 U3 e" j) S! }2 J9 H9 J( N" i
- (list "cmdecho" 0
9 g, v4 d9 r% v - "highlight" 0
9 B" A, f9 l$ s% z4 F$ ^ - "regenmode" 1
3 r5 q3 I& A& r3 b: K7 ?+ r3 B! P - "ucsicon" 02 f; x# M1 G6 f
- ) / |1 N2 |5 ]# h6 H) s2 ~
- T ;flag. True means use undo for error clean up.
4 b% R* O; |9 S! ? - );list
. S; R# z; O5 W# ` - );init_bonus_error8 Y2 `9 ^" c% h) V$ {3 l' L2 L) K
+ \0 b6 t, _9 D1 j+ l- (cond
# T9 b% Y0 V K% e - ( (not (ai_notrans))) ; Not transparent?9 I$ z. F# e7 g
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?4 ?7 ^. A2 _& X' c9 o* P: H
- ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?
# O5 h1 ]0 w% B' P' C D7 J. | - ( (not (setq ss (ddchprop2_select)))) ; objects to modify?
( K d% E/ {5 `1 w - (t # L; S( B8 A& S L6 ~
- ;(ai_undo_push)
2 W# f1 W0 f. u9 G - (ddchprop2_init) ; Everything's cool,% j4 \/ l; h+ h+ O$ [! _
- (call_chp2) ; so proceed!) i5 E8 |# a1 @' B5 J7 Y
- ;(ai_undo_pop)
) n7 @/ [. @: p8 z. u% j# m - )8 F( ?1 x# M F z k
- );cond close
5 ]6 F q/ E+ n3 {5 |
/ O2 ]" B; c! U/ o8 j- (restore_old_error)7 R* d. Z' c" A# F: t
4 C3 [2 u! [ u& ]# m" {- (princ)5 H7 U( Q9 Z. g1 l8 _
- );defun ddchprop2
, B$ I6 x8 y3 ~ - 2 ~7 } M& A: B* i/ O! [: M2 d* N
- ;;;----------------------------------------------------------------------------( i0 \+ b/ f9 X v0 ]0 G4 E" L
& v H' g# F* ]( h- (princ " EXCHPROP loaded.")
& ~/ M0 }: H; C8 V( N9 R - (princ)# z5 s6 m2 O& z% `( n) K# w
- 5 U' Q e C" {1 o2 G0 G
- ;;;----------------------------------------------------------------------------
8 L0 ]! G& J; s2 f- L0 }8 N - ;;;---------------------------------DDCOLOR_LSP--------------------------------
! @, n2 r2 T. o7 }* S( d' ^ - ;;;----------------------------------------------------------------------------
$ |0 L" E5 |7 O( l8 W
) ?0 o; }8 `! T; A/ O1 n/ i2 o- ; Next available MSG number is 24
) T# e# |& V" H8 t - ; MODULE_ID DDCOLOR_LSP_7 ~# o: u0 b- h& b3 V
- ;;;( O7 V5 V0 \( P. p9 T( t9 S$ V* d0 M
- ;;; ddcolor.lsp
# N4 u# A2 u$ H, Z- U6 F3 p7 B7 A - ;;; 2 A! z/ B) [. T: G) N' ^
- ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.
7 p3 k5 ~; @! N: `5 R: [! q - ;;;
: x" ?3 y4 D# \% g) | - ;;; Permission to use, copy, modify, and distribute this software
; |8 l2 L4 f$ ~1 Y t# S) V - ;;; for any purpose and without fee is hereby granted, provided' m* V) G1 p* G. M
- ;;; that the above copyright notice appears in all copies and
4 M, b: x. I3 Q ?+ |; E, J - ;;; that both that copyright notice and the limited warranty and
0 D/ A# ^ Y" h1 a6 h - ;;; restricted rights notice below appear in all supporting
& M5 e; f4 _8 h8 t8 E% a - ;;; documentation.* Z6 \! [. w. O# Y: U$ i* I; H
- ;;;
3 a' Q9 W4 Z% Q- \0 n - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.+ L' Y; r$ A* N) B: [5 `
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF e4 j- I/ v0 }1 x
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
0 s! h5 P: Z3 T3 ?. |3 P- |- d - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
' v0 O, q! _! U$ V/ U n0 c - ;;; UNINTERRUPTED OR ERROR FREE.% q& o6 ]& I+ D% U/ X1 B
- ;;;- C; {9 g3 j. p4 t5 g
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
! a) C$ X+ u8 g+ A/ k4 ?& Q( {% W - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer) b. G% S; j: T% N3 z3 I0 _) S
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) , p# m+ C. \' B. c$ ?
- ;;; (Rights in Technical Data and Computer Software), as applicable.
6 @3 I5 X8 \3 x& l: O- ^ - ;;;. z; n3 Y0 L Y3 p$ A* y
- ;;;.
! |5 P& p( H# B/ P* M - ;;;: H0 L( `* D+ B7 X6 ]. x: @/ \
- ;;;----------------------------------------------------------------------------, k# U" U g) [
- ;;; DESCRIPTION
$ ]# Z% @9 u( K: g" X - ;;; 3 E3 a) p: A) k9 i
- ;;; Chromatic Pallete style color selection dialog.
1 }) Q9 P) H9 v4 j b* t6 g& @0 p - ;;;
/ o, n* r% o1 z; {* g: N - ;;; Globals:
4 H5 Z! m9 Y. P) }; z! }4 l# } - ;;;
; a+ O5 b+ | \7 t - ;;; chroma_color - Integer color index. The last value selected) Z+ h! w7 h# b5 A
- ;;; by the user in chroma dialog. It is not cleared or reset/ T G' I/ K' m' U% c& W% z' Q" [
- ;;; by a cancel. Only used for communication between callback7 Q; C/ m# a7 I, w
- ;;; functions and the (chroma) funciton., V+ W3 {1 b: G/ I
- ;;; $ I6 T v/ W; S4 F: ^% B0 Y
- ;;; Depends on the definitions for the dialog provided in chroma.dcl.8 { [" h; `9 r/ e& j8 `; e$ K$ W
- ;;;
1 b% O8 P' R. ~& ?, w - ;;;
0 T: a4 e2 {2 `' B# [4 i - ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma
+ h. G7 Z3 p8 X; M8 v9 F - ;;; pallete style color selector.4 }, n& C# \& q
- ;;;9 M$ Y5 z2 J. c8 c
- ;;; ===========================================================================3 X& I) S0 W3 U6 B, S' n) h* Z( F
- ;;; ===================== load-time error checking ============================
x* x* C% h6 H: j7 a - ;;;6 f! z+ ]9 ^9 ^% r1 V' ]
. L3 w& J1 [& n" T0 O+ \, y- (defun ai_abort (app msg)0 f1 B' Y7 o7 S$ a( _
- (defun *error* (s); g n3 G; a d: K$ j5 c' x
- (if old_error (setq *error* old_error))
5 r5 m3 e! E: ] - (princ)
9 z. k8 ]( I: @* P" p/ N8 V - )7 ?8 S0 E! d% ~) M# \' l1 b
- (if msg Z; G9 i! H' ?; O/ n7 }
- (alert (strcat " Application error: "
* u) B2 R2 j0 C0 q: x! X; | - app+ u: Z9 `! |0 A; I3 K" G$ {' E
- " \n\n "
; ^: _9 O6 ^, ?, ` - msg5 n8 g+ q @$ Z! H T" y" p
- " \n"$ o" R }) q! B. q ]
- )$ i$ f) i! H& ] W
- )' {$ ~! G; w2 T* T8 N# K
- )
( u" t1 s9 D M' R- j# F9 m4 F. \ - (exit)1 V, Q( i' @! }
- ): R/ j7 ]- n2 e& ~9 V2 q* f
- 5 A' w9 e% v. h0 \ O) A
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,+ ~9 E" f3 j8 C5 C* ]
- ;;; and then try to load it.
" m, {. `0 W" O# ?9 p/ F" t - ;;;' R: [) Q( v9 x9 |4 h- _0 }9 f; j
- ;;; If it can't be found or it can't be loaded, then abort the$ b) ^5 U+ j" ] n P! d
- ;;; loading of this file immediately, preserving the (autoload)2 F+ B1 U9 q& q7 Q5 |1 l1 J
- ;;; stub function.
8 J5 H5 O: n* I+ z7 h - : X" v5 S5 n; G
- (cond: A W8 X- V" E0 \
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
- E5 I% f: p* w& Y! ?1 T - * \ i# P9 w1 ~8 J0 M- t
- ( (not (findfile "ai_utils.lsp")) ; find it
) R7 r- G+ q$ k7 j/ M - (ai_abort "DDCOLOR": W1 W' ^! h9 E! B1 E9 j' Y
- (strcat "Can't locate file AI_UTILS.LSP."" G* i! L. O( q& ~6 y
- "\n Check support directory.")))
1 E% {: ^- A% u; v6 c' l - * r+ ?/ V' K* w& k. t3 r" A
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
/ ?, J# ^ a- J s, r0 R8 `- i - (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))
' \3 Q; d, b# b9 {- F3 w3 C# B - )
* M; j0 x% i* g2 n
% f" H4 W% Y" {: M- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
) k8 l6 P9 @6 O T - (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses
0 u D" M" Q j5 T - ) ; ai_abort's alert box dialog.
; J( x7 @) {' _$ n' u- i7 R7 F
7 R" Q/ h# q2 j% q! _2 E* s- ;;; ==================== end load-time operations ===========================, h# W7 U) o6 m, T5 \6 Y& P. X* J
- " Y+ d$ Z; g" Y) \
- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)' W# k! e# U! d3 K
-
8 D+ F5 `7 _5 W- E - ;; Main Color function, called by setup code.: k* E+ a' T' y7 ~
- (defun ddcolor_main()
2 ]' X% Q/ ~/ c - ; `3 W$ n6 e2 n: F3 }
- (graphscr)8 P" e6 p5 U! d6 P4 R
- 4 e7 y% B$ }: B$ g" e
- ;; Get the color of the current layer, for possible BYLAYER color swatch.1 U7 e* V6 O5 w- J4 c- K) h7 s7 m
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))( v% m( y1 g* Y8 v$ d2 d) `
- 7 r1 x4 z4 d/ ]2 v, T
- ;; Call the dialog here...
0 R. m, K' f* M: f9 {# r& E - (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr)) Y$ H* z/ B& ^: d6 @" H6 A
k% w1 x, g9 j1 {2 T- (if clr- t) m* {& V" h
- (setvar "CECOLOR" (citocs clr)))+ D3 o; G- [+ q$ A! u
- )
1 M" z% m" J5 I8 M* P7 \/ H2 _2 C% i4 r
# [9 s& T, p8 l' s- ;;;2 b, o' I% K3 M4 ^
- ;;; CSTOCI -- Color string to color index2 N; X9 h6 ?- q: b' j' L
- ;;; Convert an arbitrary case string into a color index.3 L; |4 A5 y& S+ B6 ?% a
- ;;; Returns nil if string is not a valid color.
1 O- ]+ u3 \7 {. a6 b1 k - ;;; W* f+ S3 J; s& F% ]6 ^( ~) v
- (defun cstoci (str), y% g c# ]3 d2 y2 S% J
- (setq str (strcase str))* `0 x8 Q2 A$ |
- (cond
* ~! ~) h2 U: C2 W - ((= str "RED") 1)9 ?, @: o2 z& |/ p
- ((= str "YELLOW") 2)$ q7 { q% k- V% M
- ((= str "GREEN") 3)
, `& d) V! p: h2 l% w - ((= str "CYAN") 4)( r: O; Y* p" ^6 [, P
- ((= str "BLUE") 5)0 Z l6 H+ ?) x
- ((= str "MAGENTA") 6), n5 x# k! N! X S
- ((= str "WHITE") 7)6 E/ |3 c) q0 k* q# }
- ((= str "BYLAYER") 256)
; ?- i6 W- G! h. `! A - ((= str "BYBLOCK") 0)
6 R: y0 E- {* b9 M/ q4 x( i! ] - ((= str "BY LAYER") 256)0 q% w) }7 T% |! ^+ G& m
- ((= str "BY BLOCK") 0)
2 o2 e+ t/ D/ E( w, t - ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))
" E: {" G$ `/ n: E$ j1 q4 | - (nil))
6 L8 l, U' t* I$ Y4 B - )
/ C/ A- Y V4 h, \ - 3 N& o. M' j$ U( ]2 ^! m
- 6 M+ g5 F U2 M8 {- p0 k
- ;;;
9 k/ B$ W5 f+ Y( u' V" s3 h - ;;; CITOCS -- Convert color index into standard color name.1 k8 J' v6 L" \9 c5 P/ U+ r
- ;;; Will return the standard and logical color names as text0 R" o' o3 F. v4 Y
- ;;; strings. Returns nil for out-of-range color indicies.3 Q; L. ?' g `' z
- ;;;2 k1 v3 u* E, [1 Y& h8 @
- (defun citocs(i), E- ]( m5 v; e
- (cond
$ ?# X5 T5 g. {5 x R% |; q& e - ((= i 0) "BYBLOCK") m: m% ~% d" J, {' t8 E
- ((= i 1) "red"): C( i. V, [$ Z' E& I. `4 }
- ((= i 2) "yellow")
7 W9 s- s6 F6 C# U - ((= i 3) "green")- U d" U \5 |7 c
- ((= i 4) "cyan")4 K7 m+ V. k6 w& U5 s9 D$ m9 g2 z: ?8 ~
- ((= i 5) "blue") G: y; [& m9 e+ j: U. k8 e. c
- ((= i 6) "magenta")
( A; v [4 j# e - ((= i 7) "white")
# q1 C* F% ?3 { - ((= i 256) "BYLAYER")' c% @8 h5 \" x1 z# w# I; E
- ((and (< 0 i) (> 256 i)) (itoa i)), v+ i$ k# n3 R1 s
- (nil))
, b' p( q( X* S1 O$ v - )+ t- R# P7 N# P3 ?7 y- b
8 W, p- y0 ^: C2 C- ;; Start of ddcolor: D7 l0 ^0 [9 F9 k
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
' B4 l: Y" M" q3 g9 h l$ I - old_error *error* ; save current error function
+ G* {" O4 W( W - *error* ai_error ; new error function- W+ C6 H/ E) L6 d
- )
e" M5 ]/ b6 }# e5 r+ W* L9 o4 g - ) ~8 m! O4 B# B% u' c
- (setvar "cmdecho" 0)1 F& N7 X/ K6 \, y
- ) D6 A% q" M* I- T, j
- (cond1 H+ k' s/ W; E! r6 R$ h! o7 X+ u
- ( (not (ai_trans))) ; transparent OK
6 A. Q! @2 W( P$ a( E - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?5 c( N0 _. M; w# g- B( F
, z1 f) K, y, y9 W- (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))
* C& W8 b+ B& p$ e& }7 b3 k% e: L - (/= 8 (logand 8 (getvar "cmdactive")))
: F- R) L. x1 X0 C - )
- d E" K1 @/ v; j5 ~$ L' P - (ai_undo_push)
! H4 k2 S3 _0 {& V, q - )
5 \1 x4 I' Z# f) o, a7 P
8 m! t& X4 Q" Q% S3 I- (ddcolor_main) ; proceed!
! S, s& M; }, u8 F - ; K' a0 P5 ?) j* e+ j
- (if (and (/= 1 (logand 1 (getvar "cmdactive")))" x2 ]( K- a: R, |7 m/ p
- (/= 8 (logand 8 (getvar "cmdactive")))
1 G- `* z7 @9 H5 G6 \ t7 Y - )8 W5 ]3 [* J$ S9 a0 D' Z! h" e
- (ai_undo_pop)
/ T1 P I8 ^" a - )/ n; |+ _9 t$ D9 g" r7 W
- ); F" t+ a7 O9 \# j, e
- )
6 f b1 k6 z0 s- v8 y
& w% l4 C' P3 u- (setq *error* old_error) * t' B0 g7 K5 ~ E3 x8 ~# D+ Y
- (setvar "cmdecho" old_cmd)
5 T1 V' E0 |- p: E9 a' W - (princ)
_. W1 j) s# H9 ]
}& z4 Q3 k2 q# C! C! a/ ?- )9 p! D7 |( p6 `! [) l3 m" l+ |
- % i5 A! a3 m2 I# w- p: C
- ;;;----------------------------------------------------------------------------
2 `) A9 d1 g6 ~8 O
! ]# X1 @1 B+ n& S$ Y- (princ " DDCOLOR loaded. ")9 ]$ ] A$ q# W5 W( S& B
- (princ)
8 a8 A8 |9 F$ g) \, x0 E5 t
0 `- l; C, X) i+ p) G$ o% O- ;;;--------------------------------------------------------------------------;/ y: k' |% m5 r- D
- ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;
6 T1 W# s/ O0 F+ C( | - ;;;--------------------------------------------------------------------------;
, }7 ^' E ^7 E3 \( C5 ^) ?: T - ;;; ssx.lsp
9 S6 o6 I( t# S c$ B - ;;; Copyright (C) 1990 by Autodesk, Inc.! ^. B2 |4 O' ?$ y
- ;;; Copyright (C) 1991 by Control Systems, Inc.
3 U' p6 i; |6 @ - ;;;' L. C9 J8 _2 t$ A* P: T
- ;;; Permission to use, copy, modify, and distribute this software and its& J) C! U: Z+ k
- ;;; documentation for any purpose and without fee is hereby granted.
$ C, \' T2 W) _ ^" F - ;;;
+ b/ y4 M6 w# S - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.( s! w' P1 q- ^
- ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF
- T2 U" x/ \4 Q" \. t) J/ V' K - ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED., o( U+ X+ l' F A7 r- c
- ;;;% l4 w$ F0 w V
- ;;; Larry Knott Version 2.0 7/18/88
1 F d! ?& A! I1 R - ;;; Carl Bethea & Jan S. Yoder Version 3.0
2 |5 D$ q1 A. O9 N5 Q: \0 k - ;;; Enhancements to (ssx).
4 O5 [+ w) s6 b/ }$ _+ N6 X - ;;; 15 March 1990 % G% h6 ~! A: ?! r
- ;;;) c/ M) s, f3 J9 b6 G% u6 ?; R* d
- ;;; ARTIST Software, Inc Version 4.0 December 1991
$ {" S1 n e; y0 `5 B$ L: q - ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,1 I3 n; N+ V$ U: Q
- ;;; use Flexicon menus
) m4 I a; W( | j - ;;; v. Y- l( _+ c% @) L* e
- ;;;--------------------------------------------------------------------------;) P, t) B. o$ S- D# Z4 j2 O" E
- ;;; DESCRIPTION
! q; o K# w! L6 z - ;;; SSX.LSP ! i. p1 e/ K( y( d! Y
- ;;; 4 ?; Q$ {: W2 t1 W
- ;;; "(SSX)" - Easy SSGET filter routine. $ X( [$ s2 _, c2 h
- ;;; 3 A" W! l8 i5 v- X
- ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt
+ Z% O. |: y) c( ^4 n/ I1 W - ;;; to create a "previous" selection set or type "(SSX)" in response to
! A0 r) ?- ~1 D) N( y( o% a& E. { - ;;; any "Select objects:" prompt. You may use the functions "(A)" to add 1 D% c4 a4 F7 p- n2 g% F0 S
- ;;; entities and "(R)" to remove entities from a selection set during 0 r8 s& E* f% I
- ;;; object selection. More than one filter criteria can be used at a
. K; }) `1 K1 z9 C2 x8 q! L - ;;; time. % e( C, X0 Z/ M- }
- ;;;
" \' B2 E y t* N; w; q' B2 D3 e: e - ;;; SSX returns a selection set either exactly like a selected4 v# z! r+ M# b1 K! Q) X7 v
- ;;; entity or, by adjusting the filter list, similar to it.! @( g+ Y4 O, }6 N- d; ~9 w
- ;;;
( i1 m) _5 v5 ?0 u/ e0 v* T( ]% ~# j - ;;; The initial prompt is this:) E1 g( F( q% d' Z7 @% j/ l
- ;;;
t2 V b) j, V% O( l - ;;; Command: ssx4 S; d% C& R: q6 e8 H4 t, @
- ;;; Select object/<None>: (RETURN)
: i2 f* [( j; S' m& U: ? - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: ( i$ m8 S4 r$ c. A, G+ a
- ;;;
$ k' b9 Q( f$ ^2 l+ k9 o - ;;; Pressing RETURN at the initial prompt gives you a null selection 5 ^ ?2 W2 P) R1 L% A& T' E
- ;;; mechanism just as (ssx) did in Release 10, but you may select an 6 M' r; @4 y3 m5 ^
- ;;; entity if you desire. If you do so, then the list of valid types
8 D# L, V/ q3 L& ? - ;;; allowed by (ssget "x") are presented on the command line.
" N0 }( o' z0 H$ w6 J1 _& d - ;;;
, |. H" ]7 B8 r i+ b - ;;; Select object/<None>: (a LINE selected), f$ w. G1 r8 C, S! \6 h
- ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
6 O2 r9 Z7 w/ ^! Q. y - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: ' V$ H0 y4 [' t% }0 Q2 _) T
- ;;;
/ w6 \# Y7 `' {2 M& d' G - ;;; At this point any of these filters may be removed by selecting the & \5 {! e7 P9 Y5 g6 U
- ;;; option keyword, then pressing RETURN.3 J: e& n+ _$ t& d* n
- ;;;
9 z' d# _7 g; E1 H8 J& S - ;;; >>Layer name to add/<RETURN to remove>: (RETURN)1 k9 y8 `2 ^0 o x5 b2 i/ f
- ;;;
$ c9 W- z) ]; S: m; \! t7 G* H+ A - ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))1 b2 b% T+ T+ {% ~0 Q, r
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: 0 }- H! p1 i! y0 Y1 @' R
- ;;;
& k1 m' m7 K* F0 @7 a - ;;; If an item exists in the filter list and you elect to add a new item, ! F( [* x5 H1 a m* H9 }
- ;;; the old value is overwritten by the new value, as you can have only
* G4 A) A& Q8 J+ G' j& ]/ y2 ` - ;;; one of each type in a single (ssget "x") call.
8 E9 u0 x) G2 W! G - ;;;, \. W+ E/ u: z9 a) j" d" O
- ;;;--------------------------------------------------------------------------;; z7 v0 E$ b' N* J1 x/ s
- ;;; `7 K/ P8 e7 V! r3 l2 ?1 c' _3 j5 q2 y
- ;;; Find the dotted pairs that are valid filters for ssget, s3 b) J" m+ F. ~
- ;;; in entity named "ent".
, e2 G! E' m7 l - ;;;: B; L! P8 t l, S
- ;;; ssx_fe == SSX_Find_Entity
5 }/ I7 x# g5 t$ e$ Z& A' U - ;;;/ [7 T* D. w& n0 r& e- F7 B
- (defun ssx_fe (/ x data fltr ent)/ t$ ^8 [! [7 I
- (if (and (= flexvar 1)(/= t2 "Pick"))
6 q; U. u: x; Q5 v8 }4 o3 @9 F9 R - (setq ent nil)
$ o. y! v7 F- w3 v: L" E - (setq ent (car (entsel "\nSelect object/<None>: ")))) F* \: p( j0 M- d& f q) p8 \
- )% s+ V4 \0 x" Q
- (if ent
7 i- L& A) w- W" R# J% s% K# l - (progn
$ H5 |/ I/ O9 F3 ~ \ - (setq data (entget ent))
8 g% a2 O% b5 h, }6 l: J - (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 382 }# @$ y, }9 N5 K, x7 I
- (if (assoc x data): R+ E5 c( \4 R" I
- (setq fltr 6 t ^2 ~6 B$ L/ s1 W/ h8 V
- (cons (assoc x data) fltr)! i# S$ U/ ^0 p3 T+ ~+ a: v$ w
- )
' C8 n1 Z! S$ r3 t; J - )& O; B, u- U( _% y5 l# x( p. u
- ) $ n, h# N# E5 v( _
- (reverse fltr)# u( S; U- u" b8 o3 B
- )4 s2 f a* }" Z3 N: g: K, X& z
- ) 6 e9 V7 k' d) @& h0 ^/ E8 T2 N
- )
`5 C6 k/ Q8 e5 w0 C7 U& f - ;;;; }/ @1 T5 A, `( b' w( m
- ;;; Remove "element" from "alist".
1 m- X* ~$ g: s- } - ;;;- z; K( c% `7 \! {& z! h% R
- ;;; ssx_re == SSX_Remove_Element
6 A0 b. ^3 p7 O( e - ;;;
: u1 O7 O; E1 i$ `5 b4 w - (defun ssx_re (element alist)
$ F) X. x4 a+ M0 i - (append* c; P# Z. ]/ V$ s, w% g$ |
- (reverse (cdr (member element (reverse alist))))7 d# ?* @$ }( V' f$ Q/ F0 U1 `
- (cdr (member element alist)) 5 `$ ?8 @8 r$ s0 R
- )
7 x& z3 W+ f3 W: H- k8 p' a( o' {# t% ` - )
, j+ S, C6 V+ b- ?6 W; W+ a, x - ;;;
* T2 I0 T# ~' S6 Y/ E - ;;; INTERNAL ERROR HANDLER ) q+ P; p) }4 y+ F
- ;;;
8 P) H/ b/ k% `" H - (defun ssx_er (s) ; If an error (such as CTRL-C) occurs
4 \* c; O: }) j& C4 A2 x% u, I - ; while this command is active...
- I9 s( w( @: m0 q8 Y - (if (/= s "Function cancelled")
7 W4 k6 R$ g6 k& |6 z - (princ (strcat "\nError: " s))+ w- R e7 x5 E7 g% k) p: [# f
- )9 {- f2 d- [" O
- (if olderr (setq *error* olderr)) ; Restore old *error* handler
0 a( O' e( B, Z - (setq flexvar 0)
6 s2 @" f8 S, d6 X- H - (princ)
+ A0 C+ u8 z9 O$ Y& }+ g - )
" A" `0 c+ E( ^9 ]% l - ;;;
+ S$ m" z5 x' J' I9 F+ g - ;;; Flexicon call routine* h5 ?! Z8 ^1 E' W; d, _4 H. V
- ;;;
& e5 F' e, j" `) r3 P - (defun flexmnu (a)6 \7 a( L9 ]4 ~
- (if (= flexvar 1)
6 e! {+ M! b C7 u - (command "FLEXICON" (strcat "FLEX" a))
( S; o. [! r+ z, r - )
; N4 u2 d5 Y$ m- M& X- T3 J - )% R) \8 G. _" y0 {
7 Y/ ]) O* f3 Z- ;;;
2 @; S) w i- S+ T* X2 Q2 q - ;;; Get the filtered sel-set. R" N& h$ l0 y+ i \7 ]% M' }
- ;;;
, X0 D P7 f. \' J" Y% j0 w - ;;;
( i0 U4 |( h# C4 u9 p$ t - (defun ssx (/ olderr). C- p9 }# H# |4 a/ Y
- (gc) ; close any sel-sets ; O' `' v$ H- e# l3 _. q
- (setq olderr *error*
3 G, _: S2 U3 }: l) A - *error* ssx_er
0 X; P6 B4 N9 g% j3 d, m - )
- ^, u% J0 w7 l- u - (setq fltr (ssx_fe))
; X& j8 L- n) m3 ~) I- _8 A - (ssx_gf fltr) : z8 o$ @0 B8 j% b/ Z! s5 B1 c
- (if (= flexvar 1)! E' V) ^% f) S7 C
- (progn7 b5 F0 R0 {& t' M0 Q; Z
- (prompt "\n \n \nNow select the required EDIT command and (P)revious.")5 G$ k; B- f$ q- ^9 s K/ N$ U8 \
- (flexmnu "EDIT")
' E8 I( q% \6 R; X: a - )# b* J5 [0 ]5 W0 g' _ h, h2 j
- (command "p")9 k/ o7 T2 k6 N. d3 @
- )# v' j7 i3 J) ~* B) U
- (princ)2 L) u0 z6 y0 H
- )% Q# f. t: b2 T. S( Q4 d6 m7 o
- ;;;) W; c; H+ N1 H( }
- ;;; Build the filter list up by picking, selecting an item to add,
# U7 w* [( M: Q7 \, }8 X1 h& F - ;;; or remove an item from the list by selecting it and pressing RETURN.
& X3 t9 B* ]3 e8 v - ;;;
8 Y; R4 k9 Q( V# b' [ - ;;; ssx_gf == SSX_Get_Filters& m; P( W. L! F. u
- ;;;
. X! N0 \$ x0 K/ f - (defun ssx_gf (f1 / t1 t2 t3 f1 f2)
4 y `1 l9 o3 b( b8 ` - (while
* h, w. X8 |$ @4 n: Q+ Y - (progn
1 f/ c. j" a/ A; }/ t. N* ^ - (flexmnu "SSX")
) t, U0 u* d# i5 i: m - (cond (f1 (prompt "\nFilter: ") (prin1 f1)))
6 w$ @, Z3 a& r - (initget : i0 K. ^( s+ f. t! H ?
- "Block Color Entity Flag LAyer LType Pick Style Thickness Vector")
' L* Q: t" t5 m* [1 k4 d- n+ N - (setq t1 (getkword (strcat$ b B" `# h) Z0 J& o8 u) F6 [
- "\n>>Block name/Color/Entity/Flag/"
" }1 z' ~* e, Y6 e2 H9 o - "LAyer/LType/Pick/Style/Thickness/Vector: ")))
2 {5 d( ^$ f* Q5 ~7 F - )
3 G+ z' e6 F; b1 O2 X - (setq t2; H% E( Y$ p q3 ]6 f
- (cond' N2 ^! Z% h6 k7 f/ g+ k8 B
- ((eq t1 "Block") 2) ((eq t1 "Color") 62)
+ |) Z8 Q" b( F - ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)- g* J1 q7 B0 E: g/ _; x7 |7 w
- ((eq t1 "LType") 6) ((eq t1 "Style") 7)# r% q6 D/ X( o$ i
- ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)
. P( f7 \9 @8 I1 s7 p; R4 ` - ((eq t1 "Vector") 210)
+ \8 X) A+ v# y/ t - (T t1)" u: Q) U+ n* K0 n0 R- g7 ~
- )
: L3 U2 d4 j! v, e2 Q; ~9 X - )+ M0 P5 v, {; Y% [ C' b
- (setq t3) x( d: Y. @& Y2 r$ m6 J7 Q( T: x
- (cond* N4 V" c+ `; A b' h) a0 ~: s
- ((= t2 2)( W6 f$ h- |& L5 u: x: k' n/ ]
- (if (= flexvar gtads 1)
1 ^4 C/ _3 j3 H) s) t - (progn
9 `/ i. r8 `4 g8 j8 E - (prompt "\n>>Block name to add/<RETURN to remove>: ")
, ^. J- q: H1 L - (gttable "BLOCK")( {1 n1 H$ Z) F- q& B
- )
+ O2 S4 p& r+ X - (getstring "\n>>Block name to add/<RETURN to remove>: ")/ C8 U6 }, ]4 u. o$ ]3 x- i
- )
" o! \2 W# `( Y, ?7 W% N* Q7 P - )
V _% w5 G/ c+ K4 e. a - ((= t2 62) (initget 4 "?")
. Y J7 D9 Y8 C% o3 N' B - (cond
& y) z, l; ?1 }. L - ((or (eq (setq t3 (getint ( _3 r, L! z, l
- "\n>>Color number to add/?/<RETURN to remove>: ")) "?") + x, {7 `* U, x
- (> t3 256))! c! x7 o8 `6 p0 R
- (ssx_pc) ; Print color values.% _# ?5 Z! j, r5 ?
- nil
7 t" }1 X8 h6 d- N - )
& e8 o! X4 M6 }( U0 u% o - (T$ H. l. V7 m" \, Q1 Z- C
- t3 ; Return t3.
1 d+ d, r" Q1 x) E4 w4 n" T - )" O! J) \3 V, J) F5 `, d
- )+ a K! D+ E8 `* H! o4 ^! u
- )
0 ]+ \8 C. z7 a6 ] - ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))
3 ]. @5 e) R& @( w0 [. A4 f& x - ((= t2 8)$ ?: p/ U, A# p* I$ Z
- (if (= flexvar gtads 1)
' a. I( \4 g! f0 J3 e% e+ I" t - (progn1 k/ D, w* R% ]8 T
- (prompt "\n>>Layer name to add/<RETURN to remove>: ")
) U8 b) V3 I4 l- ^% b/ ?* ? - (gttable "LAYER")
3 @: o; w& f6 y" T* m: ~+ n0 ~ - )
' h( X( }8 C3 V3 H& E: B* v4 Y2 D - (getstring "\n>>Layer name to add/<RETURN to remove>: ")
7 j- D& E9 J1 z8 ?3 b7 E - )% V$ x7 r9 {; {/ I
- )
* i2 Z* }" t+ Z - ((= t2 6)
K# @" n& z8 w - (if (= flexvar gtads 1)& k# D& N+ l. T# [9 ^5 j* L5 d3 Q
- (progn: [1 n$ p8 t- T2 ^6 ~
- (prompt "\n>>Linetype name to add/<RETURN to remove>: ")
" I# }5 H5 N* z) k' Y \& C - (gttable "LTYPE")) [( G; W; N6 O f
- )6 @$ g. e! Z8 [$ `' z& q, }1 I% I
- (getstring "\n>>Linetype name to add/<RETURN to remove>: ")& ^; H5 r8 D+ z* r5 Q
- )0 c0 c+ H$ o: Y: p, n( w3 g
- )
2 o, J: y7 f4 u2 ~3 Q r - ((= t2 7) . E/ w: B- K3 |8 U
- (if (= flexvar gtads 1)
# e3 ]+ x9 S- w - (progn4 w; U c9 [# j1 k
- (prompt "\n>>Text style name to add/<RETURN to remove>: ")* Z3 P5 E* Q( B8 Y
- (gttable "STYLE")7 v, w/ w4 V7 Z W M! ^ z5 l
- ). R0 n$ V8 b: o6 p! B9 K$ n
- (getstring "\n>>Text style name to add/<RETURN to remove>: ")
1 E* a$ X$ b% J. H0 n4 | - )
# M# T ] S0 |7 F( c4 S - )$ n/ T9 C |( t. i
- ((= t2 39)
: `1 d$ w: G4 L- L& e# V- V - (prompt "\n>>Thickness to add/<RETURN to remove>: ")8 s0 Z( Y$ E4 N, U( ^5 \
- (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))
5 s$ V/ X) O; @) l/ @' p+ m - ): ~! o( W- I4 l+ U1 @# a
- ((= t2 66) (if (assoc 66 f1) nil 1))- L# v; \# A- u4 H* `
- ((= t2 210) 9 W- x, O4 f% D2 X( G/ H& O' ^
- (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")9 n) r- p1 O6 Z: {+ Z: k( }
- )
/ i# S; Q$ x/ B" } - (T nil)
# J1 D+ R* N. D( @! l) D - )# v3 K) R$ i" {6 O2 S0 _
- )
( ~) v4 l% J N( V" }) A' A# D - (cond5 S: v* ~, l. ^
- ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity5 j8 J' G) o# E$ n
- ((and f1 (assoc t2 f1)) ; already in the list
) A; D* E0 q6 [6 w$ o* K - (if (and t3 (/= t3 ""))
( V3 s% A9 Z9 Y& o3 Z - ;; Replace with a new value...
# M8 e- H" O3 s+ t0 U# T - (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1)) " M0 w V. d5 q( k* N4 n
- ;; Remove it from filter list...3 u9 J p$ Q( j
- (setq f1 (ssx_re (assoc t2 f1) f1)) 9 Y7 u1 {& }3 H) \( e0 u
- ) 0 z' ~5 {2 O$ i% \
- )3 x7 d6 X s! X: I+ I/ E
- ((and t3 (/= t3 ""))* L; i5 D2 J8 v2 Y
- (setq f1 (cons (cons t2 t3) f1))
+ ~" r3 e2 c/ `! S - )
+ K4 u s4 H9 m - (T nil)
$ ^) r( m" s0 X+ J% Y' q0 |' u# D' u' X - )- L7 K0 x( A$ q `! k$ @! D* Z6 D
- )2 ]' ^& P* r4 W* I
- (if f1 (setq f2 (ssget "x" f1)))
# ]0 m* D1 {- T0 U' u8 E; w - (setq *error* olderr)
8 e. U/ w' e# V9 _5 M, ~ - (if (and f1 f2)
0 O: h4 E- Q* F+ F4 V2 i0 G( B - (progn, M4 C5 A6 E6 S4 |
- (princ (strcat "\n" (itoa (sslength f2)) " found. "))
6 \- p4 t- m9 k, S - f2
+ l: f* Y$ y. s w# G" y - )! z+ ?0 j: j: |0 q: D; `7 S) d
- (progn (princ "\n0 found.") (prin1))0 c& h2 k3 Z. S1 F+ H4 F
- )
9 P2 V* C9 ^' T - )9 D# e3 Y5 i+ @1 t8 ]
- ;;;
5 O: Z/ ?$ o' _1 T- { - ;;; Print the standard color assignments.+ R5 v4 e& n0 m- i
- ;;;1 [# z$ E4 r0 u
- ;;;
1 e4 C+ W" J0 z' Z - (defun ssx_pc ()7 k6 W) S. v% R, x* Z) o; K5 B! n
- (if textpage (textpage) (textscr))6 y7 o }9 K3 `, G. B
- (princ "\n ")" u, q/ H; P4 U, w& k- {
- (princ "\n Color number | Standard meaning ")
+ {3 w. k4 W. ^" n! m, | - (princ "\n ________________|____________________")
, @6 M7 r$ ~6 w; C - (princ "\n | ")
' w6 \# {' N5 ^' q% K' g& _6 l( n - (princ "\n 0 | <BYBLOCK> ")8 e7 T2 n$ C t) s
- (princ "\n 1 | Red ") b+ }* H2 U2 Y' W+ ]2 I2 t
- (princ "\n 2 | Yellow ")
: D/ Y3 z$ K6 }& a9 D; E2 ` - (princ "\n 3 | Green ")" C0 M0 U% J. J& Q e: M1 F& G
- (princ "\n 4 | Cyan ")
$ G9 v1 q# w7 h* S# y/ g- z4 A - (princ "\n 5 | Blue ")) F7 m' f: ^: ?
- (princ "\n 6 | Magenta ")$ T7 i/ w+ D0 x/ j0 F1 q! [
- (princ "\n 7 | White ")
# p7 @$ W7 |9 N0 m9 z - (princ "\n 8...255 | -Varies- ")8 B9 G7 j! |/ D$ Z
- (princ "\n 256 | <BYLAYER> ")1 v* I" s2 F1 }! R
- (princ "\n \n\n\n")
' t9 M' a8 V& j# m - )
$ V! t. s' D; O; S B7 r1 V. H - ;;;9 B1 I) f4 i) D! s/ p
- ;;; C: function definition.
k1 u2 @% v5 U% t& T - ;;;
+ ?' V" o1 \7 c: m& ^( j - (defun c:ssx () (ssx)(princ))$ S2 L" p" }2 \: Z
- (princ "\n\tType \"ssx\" at a Command: prompt or ")" W" \0 V' b0 y
- (princ "\n\t(ssx) at any object selection prompt. ")
9 j6 R" S$ G7 ?4 Y: g1 D - (princ): O5 M# T3 x% w' @6 B. |
- # k: }5 C) E( s1 l: j9 k
- ;;;--------------------------------------------------------------------------;
# E8 W! M" r2 C/ h& j& E: w; n9 _0 I - ;;;--------------------------------------------------------------------------;' d3 O0 z& C& C7 `7 Y9 M
- ;;;--------------------------------------------------------------------------;; r+ ~% j# N F4 ]
- (defun S::STARTUP (), M7 j9 V7 l9 |9 s3 _' k
- (setvar "cmdecho" 0)
( u7 H4 z R" F" ]5 I6 k+ q - (setvar "cmdecho" 1) P8 ?: K0 P0 ~3 M0 y
- (setvar "LTSCALE" 10)
! M2 Q# a0 @3 s9 I5 X- [/ w
3 d% T7 @2 Q2 |6 H8 H8 A: v$ U- ;(command "_load" "chenKH.fas")
/ k# v( y* C* @ - ;(command "_load" "ctcot.fas")
% w2 O6 S6 C( D8 a - ;(command "_load" "damdoc.fas")
1 U- g" a) i9 `; ?1 C! |4 t - ;(command "_load" "ghichu.fas")+ R( n6 q+ s$ E0 f2 k
- ;(command "_load" "hamtutao.lsp")
, e: N" j+ Y/ \/ m: H - ;(command "_load" "KHOITAO.fas")/ k0 W, y. N$ {7 X2 R' L7 t# U6 E
- ;(command "_load" "KHthep.fas")
$ g R+ V* a3 s! r& p- o& o" G - ;(command "_load" "mbmong.dcl")- o" W' S/ O1 U
- ;(command "_load" "mbmong.fas") q. h/ S2 T4 W
- ;(command "_load" "mccot.fas")( o/ E9 z" }4 ~$ u% h( x; V" Z; y8 n
- ;(command "_load" "mcdam.fas")
! Q h6 j5 U# W0 L3 j$ ?" | - ;(command "_load" "mcmong1.dcl")+ l/ c8 ]$ F- Z/ j2 V5 ]
- ;(command "_load" "mcmong1.fas")
& a- S P2 N( Z7 ~, `( q - ;(command "_load" "mcmong2.dcl")
# j% i4 o7 T+ Z4 h* J1 ^( Q* g5 Z* W) h - ;(command "_load" "mcmong2.fas")8 A: r Z9 \& Q& q1 ?: V) ~
- ;(command "_load" "mcmong3.dcl")
+ J* [% e( I P7 \9 u. y* A; [ - ;(command "_load" "mcmong3.fas")
; y$ P# t$ |# V- V, u - ;(command "_load" "mcsan.fas")
% }( b' e/ V/ }) e. D4 j - ;(command "_load" "thepdai.fas")2 E+ A' {( J$ Q
- ;(command "_load" "thepdoc.fas")
2 b0 V/ W( U' u; M0 z - ;(command "_load" "thepmb.fas")
4 `' s+ j2 M# ~1 f h; U# E* w! c6 R - ;(command "_load" "thepphbo.fas")
& g& T) ?, W! z* y D' L& n - (command "_script" "thongso.scr")
; s$ T+ ^' P2 |7 A9 l# O, [- D - ;(command "_load" "thongso1.dcl")* V* \9 r+ Y& U# A1 K6 \
- ;(command "_load" "thongso1.fas")( F! l M6 u6 t5 b5 k R6 ?
- ;(command "_load" "thongso2.dcl")
$ h# m7 t9 [! N, a - ;(command "_load" "thongso2.fas")2 G7 P% T0 H2 W
- ;(command "_load" "tietdien.fas")" G* {% p1 U6 i) e3 H0 W3 E: |
- ;(command "_load" "vehan.fas")) [) Q& K9 D8 ]
- (command "_load" "phamDuy782006_TKT.lsp")
" I2 D1 @9 \$ @5 c- K6 [% G) q# S - (command "_load" "phamduy782006ganhtd.lsp")2 k [. T; d1 i
- (command "_load" "phamduy782006ganhtds.lsp")
/ F; l% S0 B4 W$ a# o+ { - (command "_load" "phamduy782006htd.dcl")
0 b7 c- W" G* Q- O( `5 f1 G - (princ)
2 q8 s3 X* N& ]" B - ); I) V; |% S' M0 U& n
- r1 N3 ]. l3 J9 H6 {& f6 A: E
- ;; Silent load.7 o& N3 ~1 b' x
- (princ)! R J% R" T% p5 L; A
+ p9 y4 Y! r; W: h1 o" i1 A/ s! I- ( W$ Y" ]) b6 V* M
- ;; Silent load for the Express Tools.
' ?0 o3 s) r0 k g. T# H+ G8 I - ;; Altering this line will affect Express Tools functionality+ V0 F7 n5 e8 y
- (load "acettest.fas" (princ))9 ]; C* C; n7 N" Q5 N
- �32
Sao chép mã
3 _3 @9 R; H; n$ r& s3 H, {: f00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ0 A3 t# K6 v9 |4 [5 u
|
|