|
|
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 |
- ********************************************************************************+ m, K5 i3 X9 M; n
- * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *9 p2 P7 e# D9 R6 ? t, m$ A( _% E5 M' [
- * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *. ~" H$ H0 ^4 M6 a6 `
- * Suu tam & Soan *
' _& q2 r6 L2 ^% l - ********************************************************************************- Y3 ? A7 j9 H
6 \* Y$ M) ~( |* i+ m- ; Next available MSG number is 104( `3 N0 v' s p; E
- ; MODULE_ID ACAD2000doc_LSP_
7 _) \ b0 p4 X; ^ - ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 20005 a5 E3 }# K+ i' K! U
- ;;;
, N+ _' q% R* D' P - ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.( U. e( K& ~( M- y7 u
- ;;;
5 @& _; N4 D% e$ `/ e4 O. X6 Q - ;;; Permission to use, copy, modify, and distribute this software: ^$ c6 V; ~& x& q/ l3 I8 T
- ;;; for any purpose and without fee is hereby granted, provided+ a2 n4 n2 @$ J: Q0 n
- ;;; that the above copyright notice appears in all copies and4 c- U8 P0 n( ^
- ;;; that both that copyright notice and the limited warranty and
! c6 g9 z3 [" S( d/ _( i) j - ;;; restricted rights notice below appear in all supporting
: Z7 S( \# G7 _$ w - ;;; documentation.
2 {- ^7 I- g/ ^ a3 s0 g9 X - ;;;
7 S1 h5 y& J7 s - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
* b* }% {' v# ?; N. ~3 [1 I, N; v) c - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF; }( n. g4 E1 q7 G& P' T
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
, u; c0 p% P, l9 A; p$ f' g o. e/ Q+ `, m - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE3 o( m" P: V* V7 t3 U5 f, j' s
- ;;; UNINTERRUPTED OR ERROR FREE.; V5 T* o: w2 J
- ;;;4 R) _4 `; T8 ^& _, }6 |0 }# v. w6 [
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to6 b, R! y* f+ j3 e [& z! F
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
8 G& P/ B% D; j$ G6 D$ S - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
& z) {, O4 U' O3 L f3 h5 x; j' |. R, P - ;;; (Rights in Technical Data and Computer Software), as applicable.
1 d; D: n: j4 ~1 n; @- Z - ;;;6 P' k9 O( d( Y( [) W7 g5 r
- ;;;.
! `) d0 T+ n1 | - ;;;& W' I* \/ u$ o5 R
- ;;; Note:- r! y8 M% v) @; P7 N$ R
- ;;; This file is loaded automatically by AutoCAD every time
6 V% w8 u, ~: ^% i. k0 z5 E% z8 F1 V' G - ;;; a drawing is opened. It establishes an autoloader and
/ S ` D0 f# k5 ^" U7 [ N - ;;; other utility functions.! e2 r8 ` [' U5 F: E
- ;;;
7 a7 [# H. m. y- p' } - ;;; Globalization Note: & o/ B7 f5 M4 h" d) `. C
- ;;; We do not support autoloading applications by the native 7 k I6 b9 v) S4 g) _4 z% e3 ]
- ;;; language command call (e.g. with the leading underscore
# l4 R1 G/ K; W4 e& h% N' j- m' H - ;;; mechanism.)8 \ c% E( q/ @) U7 {. C3 V5 J! ^
$ g& J# Y+ e; J. K! m- 6 n X& ~ C7 X, a
- ;;;===== Raster Image Support for Clipboard Paste Special =====: [1 d. ~! L; e: U
- ;;4 O' Z3 c. G$ d7 x
- ;; IMAGEFILE
1 T5 `6 f: w+ o8 A3 t# ?6 c - ;;+ n7 `( P5 Z) }+ Q) Q8 r. e
- ;; Allow the IMAGE command to accept an image file name without
, [ c/ C7 k3 ~8 A - ;; presenting the file dialog, even if filedia is on.+ p( E9 {( Q" x3 b+ K. G
- ;; Example: (imagefile "c:/images/house.bmp")
" m5 J. l7 i7 F, b - ;;# d3 t6 R7 `2 ^" l" y
- (defun imagefile (filename / filedia-save cmdecho-save)
) h7 _, b, K1 T5 w y: V/ d& ` J8 i - (setq filedia-save (getvar "FILEDIA"))
* P: G5 \8 t, z+ X; Y5 m9 y" | - (setq cmdecho-save (getvar "CMDECHO"))7 a! q- P+ O+ j, c; U1 W. f
- (setvar "FILEDIA" 0)5 S. n# u' O, ?$ u
- (setvar "CMDECHO" 0)
; H8 n W" o: Q( n: Q - (command "_.-image" "_attach" filename)) }2 j) g* r0 Y v
- (setvar "FILEDIA" filedia-save)5 n# g/ H4 O2 \6 e/ N
- (setvar "CMDECHO" cmdecho-save)/ N* o/ `# p5 T5 b' _' ]
- (princ)
# y) l9 _8 q. y1 j3 h - )
: X1 I5 ?5 W" q: d- t# ^6 E& d, \& L - 1 y1 p5 a; O! ?5 A' ], n( ?- {
- (defun c:zx () (command "zoom" ".5x"))
9 W+ `! M k, _9 L: h- z) U6 p9 E( o7 W% j - (defun c:zz () (command "zoom" "p"))
7 u# m# l- B, T4 A: z - (defun c:za () (command "zoom" "a"))& U% w4 Z) z% v; x- f
- (defun c:zd () (command "zoom" "d"))
! W. a7 V4 H$ i - (defun c:ze () (command "zoom" "e"))
, V5 `$ u1 r% f$ k! }3 ?; b - (defun c:zr () (command "zoom" "" ""))' P) Q. H9 o6 P4 r; ], r8 L, }& ]
- (defun c:vv () (command "ucs" "v"))
% i4 f4 _- K0 }) m& W% ?7 p" y+ i6 L6 U( B$ U - (defun c:co () (ssget) (command "copy" "p" "" "m"))
) o& T4 i1 _: y( {, ~ l: H - (defun c:c () (command "circle"))& c+ {. B5 R" `% W. h% s$ |# X' H* E% C
- (defun c:rt () (command "rotate"))' f6 a8 C* m7 S0 G: i) P* v1 D
- (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))% m0 G" ^2 n; J" ^1 ?
- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30")) G+ N. A7 |9 q8 F- F
- (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
6 Q# Q/ f0 o. o6 N9 E) F - (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))3 N' l: x; z1 _ P5 ^
- (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))7 \# a6 p# m+ m2 k
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))
9 K: o' ?" ?8 {+ `6 ? - (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))4 i; e9 \$ k+ k+ b) @
- (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
- H/ b2 H7 n# j/ k; W5 L - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
' Q9 l) X9 L# Y% g! I( \ - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))
) X3 i7 c/ m. [" S- {7 Y/ _ - (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
& i" C ~# U" ` - (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y"))) x. X, v3 a' f
- (defun c:fd () (command "find" "p" "" )(princ))(princ)
/ X; d& `% ^: I8 E2 j% a. d5 g! P - " p2 [+ ?. O; O* E1 ^/ E
- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)- Q' O$ O6 T0 c) c2 ^/ W" D$ S% g
- (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)
! a$ a4 g; j, y4 \# N - (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ)
5 ^( D6 v/ ^0 f2 D' E; G - (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ)+ P, P& R9 j2 S; _& f1 d
- (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))$ \. v" c: A; q b; f
- (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n"))
+ q. h2 A: s5 ]$ X8 i% m - (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n"))6 F* }, O) i8 D2 v3 l, w' e( Y
, C9 c- K# L" o6 n$ i8 F/ T- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))5 \1 U9 r& j$ m( v! W& x4 p7 q
- (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n")); L$ W& ^4 X/ e; k' j% F# d
- (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))5 _; D' b R, A4 ^
- (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n"))
! w. _, f9 v0 z/ C9 B6 D9 b4 e - (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n"))$ E# \2 U6 Q# E8 j8 N
- (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))
! G, N& m; Y7 |9 } - + F9 F F& j- s
- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file
! o0 y6 |+ E! c$ F( ]
6 w5 F: s: x2 T) H' J: E- ;free lisp by cadviet,cd2k446 _, W: w* w8 i/ {
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830( A, c8 Y2 W8 s
- (defun c:FTEXT (/ ent tstyle )9 K9 L" E' D+ \9 x+ V
- (command "undo" "be")
! M+ p0 k+ ?! p - (setq ent (entsel "\n Pick text :"))# j: |' j0 p7 x" b
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))" z2 u* {( l/ t) q! K
- (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
# c/ k6 j/ T0 L, [/ D - (setvar "TEXTSTYLE" Tstyle)
+ v2 [ v% w4 C# c4 i6 q1 |: W# e - (command "undo" "end")
l3 y. Z9 U5 K$ }3 G* I$ } - ) U- [% t1 o; H# g: |8 F6 B
- ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)
, a$ a" q5 |5 ?' ?% v' {0 c - ; M; }# J; b: ~5 k. v
- ;free lisp by cadviet,cd2k44
6 t8 V9 e, y, X! d! E/ D- Z) b - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830+ a' y" [6 Q+ M- b! ^9 R& f/ e
- (defun c:Fvnh (/ ent tstyle ): v1 {4 g$ m& u9 I. ^# Z
- (command "undo" "be")
: g3 ^3 F8 _( o4 x S - (setq ent (entsel "\n Pick text :"))# a9 T1 h$ _4 ~# M5 D6 L$ x T
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))( J) t4 ^, Q) C- d( ~" w; T
- (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
2 z$ g1 }! S. B( x# ?) a - (setvar "TEXTSTYLE" Tstyle), @0 u; H8 M: ~
- (command "undo" "end")
& r' Y: r8 V7 i1 F) k0 q: ^/ t - )
z/ U9 D* x1 M. ?( s$ ~
3 X4 r# X' |: B: l- ;free lisp by cadviet,cd2k44. Z- |: |- f5 M& o% J
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
5 \6 o# t" Q: ^ - (defun c:Chbg (/ ent tstyle )1 ?" k& `/ R) `# M- T4 K
- (command "undo" "be")
9 i, W3 `& k* d% U - (setq ent (entsel "\n Pick text :"))! ~3 w* a( e% Z6 S: H
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))& h' R$ P6 X: [6 P& V
- (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
$ i- G7 ?! O2 x" R - (setvar "TEXTSTYLE" Tstyle)
5 a2 J$ [- ~5 c0 S2 Z: ` - (command "undo" "end"). g6 n2 `/ |4 k- L# h4 j8 m
- )
) y) l2 K3 L, h3 L% x2 q
9 i$ Z. J* m8 l, x9 S) G- ;free lisp by cadviet,cd2k44$ [# B0 _ a; d+ Y) E% U: o
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
+ m1 M2 g M+ \& S% h - (defun c:Chsm (/ ent tstyle ): `& o! a: U, j" C, y5 B
- (command "undo" "be"): i# n5 Z4 k& l. h" l
- (setq ent (entsel "\n Pick text :"))$ d, V* [. z' ]. w- D# X
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
9 }8 \8 K8 \1 D/ s. l9 ^$ T - (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
) K! _% _4 s) Z" ?- y( t9 q - (setvar "TEXTSTYLE" Tstyle)5 t. L$ l6 x1 ^& G3 A/ f/ T) p
- (command "undo" "end")# u* ]; ^8 [/ J7 t" {( c
- )6 J4 T q- Z4 ?- `8 w: y; n* J
- " @& F+ _/ z/ @8 a: J( t* D5 {+ M
- ;free lisp by cadviet,cd2k44
7 d, S# H6 T n: Q; ] - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
* _- @9 R- G% e1 ?! Z6 y# n& n - (defun c:Fttf (/ ent tstyle )) |- |4 z: [3 i/ D( I9 V7 `% `
- (command "undo" "be")
4 `* w/ ]. L- k3 g0 K0 ^" g - (setq ent (entsel "\n Pick text :"))
5 i3 f7 U2 V" w" ?/ K! Z H5 B - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
9 @9 w' Q2 v2 z$ `1 G# v - (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n")8 I3 s8 T% h' T( O3 @ q9 P( h* ^
- (setvar "TEXTSTYLE" Tstyle)! P, \2 Y7 r+ q, {! Y' J1 F; o
- (command "undo" "end")
% v; _& T' E' x) d7 X% m - )
* N3 V) \! G+ m! s7 R4 v, w - 5 t" ~& M5 t5 l/ |2 k
- ;;; ============================================
7 g& H) P1 P4 B; o2 H/ q7 N6 F - ;;;
2 E% `, C0 r5 N v; j - ;;; LISP Creater Tao Duong Dan AUTOCAD2000
. r b% {( h B4 j7 ^ - ;;;
+ g3 x: `9 @* o* a. B - ;;; ============================================0 \$ c4 |: B" U2 _; h: F( Q
b: j& E6 u2 h2 [" Y- ;;; ============================================9 d5 I' G# D& z6 J
- ;;;1 B% A# ~( {/ M; c0 O) n- K
- ;;; CREATING FROM AUTOCAD2000. Q1 v! Z [9 ~8 ?& h
- ;;;
# ?" r! w* y | - ;;; ============================================
$ ]3 p0 T* ~1 X. m( s) v/ k
$ Q2 Y0 Y! w( J) Y0 }, o; l( s. M. y- (setvar "INSUNITS"4)
4 P$ M% s9 P5 Q; V6 z4 z4 ] - (setvar "ANGBASE"0)
' K7 J4 t+ c, ?% ?& H+ {# Q9 U - (setvar "ANGDIR"0)
8 ~( i" D, J; @+ p: |# D3 O - (setvar "AUNITS"0)8 i" D7 W f4 j5 r |" S
- (setvar "AUPREC"8)* b2 E3 \: j' X; k5 r4 K
- (setvar "LUNITS"2)) `, z$ i6 J$ K' Z- J! Q8 K
- (setvar "LUPREC"8)& o" Z' O! t2 I% D
- (setvar "ACADLSPASDOC"1) ( Z, y8 w& S4 Z8 R8 {1 \/ Q
- (setvar "pickbox"5)
2 B& h. ^6 A9 W3 f- { - (setvar "blipmode"0)% Q3 _3 ?8 @) T( q; {0 q+ `
- (setvar "mirrtext"0)
7 r1 O$ G+ \0 k- [/ L- a - (setvar "cursorsize"100)- v8 z& L( T1 B+ z$ ]0 v
- (setvar "ZOOMFACTOR"75)
* w4 V5 E: G: F8 b* L - (setvar "LTSCALE" 10)" @* y$ s$ \' ?) x/ i$ f
- (setvar "lwunits"1)
. m& q" h |' A- C O, ` - (setvar "DIMBLK" "Closed"). I4 z& Y" J+ K
- (setvar "DIMGAP"0.0693): {& G$ J) R: N. m0 V9 e, {
- (setvar "DIMASZ"0.20)
7 u. t$ g! D1 ? - (setvar "DIMCEN"0.2)( ]" ~4 @8 m3 H( I$ `" m
- (setvar "DIMDLI"0.1)- A( w( y; z# v5 p5 x7 L
- (setvar "DIMEXE"0.0693)
0 E& u- j0 R" r8 k1 x$ W - (setvar "DIMEXO"0.25)* u$ W) I4 U. Z; g7 K
- (setvar "DIMDEC"0)& O, T- E8 u4 A0 d: W
- (setvar "DIMTIX" 1)
7 @' f3 W! S- l3 b" s) L/ D5 }/ p - (setvar "DIMTXT" 0.099)1 f+ u3 |' A2 l# w, _) G3 w
- (setvar "DIMCLRT" 7)
4 y7 W( Y4 N* k7 h% c6 X2 P+ y - (setvar "DIMTVP" 1)* _1 C, c9 C4 O8 x. O' a: @& e
- (setvar "DIMJUST" 0)( \) `' F' I' }2 k
- (setvar "DIMTIH" 0)$ w$ I, Y7 _0 ^4 M: g
- (setvar "DIMTOFL" 1)8 y- r6 |0 `+ ?8 ^. B0 t4 _& Q/ \
- (setvar "DIMSCALE" 1111.1111)
1 I0 {0 T4 T' u$ ?* H/ Z - * f- |$ I1 G; B* x! h7 W5 O
1 |4 _2 z7 |3 G# R3 [( s- * W0 I' w! d! z9 P1 t/ \. f
- (defun c:zp () (command "'.zoom" "p")) N% K6 p- h! g" X, ?. S" L
- (defun c:zz () (command "'.zoom" "p"))/ x8 G% [. T3 Z; k/ x U# Q1 }7 g& x
- (defun c:ze () (command "'.zoom" "e"))6 X- `1 I1 L3 }# ]
- (defun c:za () (command "'.zoom" "a"))
! q7 G) B, t! N' C& i - (defun c:zd () (command "'.zoom" "d"))
- p: T! H4 W1 m g& N% ] - (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))
- O8 E1 c! t% p9 r3 ? - (DEFUN C:ZX () (COMMAND "ZOOM" "2X"))6 @. ?/ ~. l0 O. ~
- (defun c:de () (command "ddedit")(princ)): }9 X' u3 Y3 T6 v, g( c f3 W
- (defun c:dda () (command "Dimaligned"))/ L+ k Y& r7 q
- (defun c:ddb () (command "Dimabaseline"))$ o2 f- F2 p5 N" E$ g0 x
- (defun c:ddc () (command "Dimcontinue"))
$ I* \2 V" @- d0 T' i" z - (defun c:dde () (command "Dimtedit"))4 |9 A) u" g' p' s6 m
- (defun c:ddf () (command "Ddattdef")) N6 T9 A1 b2 u% \
- (defun c:ddi () (command "Dimdiameter"))
1 y1 J) r- J" H+ G6 R; n - (defun c:ddl () (command "Dimlinear"))& C, z5 g0 ? M k! e6 r
- (defun c:ddn () (command "Dimangular"))
# A D3 @3 v" _1 |- G$ |: c7 P% \' ~- A - (defun c:ddo () (command "Dimordinate"))6 E0 S/ M( |& K6 g4 E9 Q
- (defun c:ddr () (command "Dimradius"))
9 V, w2 z! [$ C - (defun c:dds () (command "Dimstyle"))! |: m6 {0 p* F; b' m7 `
: K) Y" \/ v( E; [3 B+ Z w: e- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ)+ v1 N5 O7 j9 h1 P
- (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ); g$ J# H, b5 A5 x
- (defun c:UU () (command "dim1""update""all")) z/ H5 m1 D4 \2 m* k" }8 P
- (defun c:ded() (command "dim1""tedit"))8 G+ {( W4 M: }' _! W
- (defun c:da () (command "dim1""ali"))
3 K3 ~: l- ~3 @' t$ h - (defun c:dll() (command "dim1""l"))
' f6 a; J# k" N% q - (defun c:dan() (command "dim1""an"))
0 y4 n2 H6 B4 _" T0 Q& N2 E - (defun c:d1 () (command "dim1""ra"))
2 H |. v5 I" w4 R$ b% I - (defun c:n () (command "dim1""new"))% s3 N- \# x' r" p& Z# P8 f# Q p5 G
- 8 ]/ A3 z' G; {! e* `. a T9 T( W
- (DEFUN C:PE () (COMMAND "PEDIT"))8 g2 r+ R( P! i* U6 S
- (DEFUN C:PL () (COMMAND "PLINE"))3 w" V+ z; S- a8 U+ V S' I, W* U
- (defun c:dd () (command "dist")(princ))
" f5 G5 n6 v; y! M/ y - (defun c:w () (command "pedit" pause "w" "au")(princ))
: y) ?8 \7 a* R9 M - (defun c:pg () (command "polygon" "polygon"))
6 x; L3 f2 X, _. s. g9 Q* k0 q - (defun c:el () (command "ellipse"))- N7 J& `1 Z2 A5 ~/ y. ?! C
- (defun c:xe () (command "explode"))
& B2 H1 I u1 Y3 Q1 _5 K4 } - (defun c:eex () (command "extrude"))
1 w% _ i8 N Z Y" [ - (defun c:xg () (command "xline""a"))
9 S/ \/ V9 |* U4 V - (defun c:xh () (command "xline""h"))
( r2 Z% E0 c- R# I - (defun c:xv () (command "xline""v"))) b+ i2 a: g: }3 I7 C
2 [$ O ~* F0 [; N+ {- (defun c:oc () (command "osnap""cen"))
% I4 ]2 p. q3 P9 L) q0 j- d - (defun c:od () (command "osnap""nod"))
9 Q4 C3 N5 Z+ R) V( C - (defun c:oe () (command "osnap""end"))
+ s# ]$ I; @) ^- e$ x+ b - (defun c:oi () (command "osnap""int")): G) U! d0 {9 g: _
- (defun c:or () (command "osnap""per"))
% r& Z5 q+ m, G. _) M5 ? - (defun c:on () (command "osnap""none"))3 k+ l* b) V. E- v8 |
- (defun c:oq () (command "osnap""qua"))" G# q. }1 X0 h3 u h3 c8 c0 X
- (defun c:om () (command "osnap""mid"))
( O5 L( S6 m7 K! e - (defun c:ot () (command "osnap""tan"))
; P: g' y7 n1 b. N: k - (defun c:oin () (command "osnap""ins"))
2 T" @7 [ ` W' | - (defun c:oa () (command "osnap""nea")): _- E( q0 e! b6 n# p$ k' Y
- (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))% }2 A! \$ u! m
- ;(defun c:du () (command "dim1" "up" "s" "pick" "other"))
* P. J6 v; j' i9 o - ;(defun c:nn () (command "new" "y" ))
T& c/ m$ Y1 I% y% b# z# {
3 I* q, d' v- c5 O2 I- (defun c:/ () (command "limits"))! H7 g% Y# V) R& J* S! q
- (defun c:`1 () (command "region"))3 ^) V! W! k- Q4 G$ _" R7 C
- (defun c:`2 () (command "subtract"))5 S" w1 t8 O1 u
- (defun c:`3 () (command "union"))7 j$ }9 w* ?9 x4 S! A
- (defun c:`4 () (command "intersect"))
2 \/ m1 h* x9 e - (defun c:`c () (command "cal"))
4 v/ e2 F2 ~( X" p a - (defun c:`g () (command "Polygon"))1 V* G1 m' ^, {9 u% y- q R" A0 X
- ' G ^, X) Y- N; W; ~
- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))! U6 H" m6 w/ J6 S5 N
- (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ))
0 }8 `5 L" i4 p; d - (defun c:ip () (ssget) (command "print,_plot" ))(princ)' M( l9 s7 {7 R3 r6 h
' @8 o2 j9 p1 `. ]+ L- (defun c:ddm () (command "ddlmodes" pause))
; f& z. {6 g" L - 7 B1 ^, B7 T% Q7 G- j5 I9 @; R
- (defun c:sha () (command "shade" pause))
4 ^% n* }( Z8 x. ^# I
0 s$ }* ~; O5 b) `3 w/ q- (defun c:sr1 () (command "surftab1" "p" "" pause))
* m6 F7 R' _4 N; x4 B - (defun c:sr2 () (command "surftab2" "p" "" pause))5 H4 ?: y7 _" J- I9 v, Q" N
- t, C' x4 A" R+ B" D, |4 Q- (defun c:ad () (command "audit""y"))# K! n) Y# I+ F. h1 z9 n; b
- (defun c:q () (command "quit"))
+ a, w: Z+ V7 S; w3 y- v
- I- G* L g5 F) n- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
. V2 @, ~5 \; z( ? - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
9 ^/ e: C, z) u9 H( V# N4 r - (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))' F1 U; g& A) }' {
- (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))% m6 p8 D* U" o
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60")). b( Q' ~& ?5 U" ^
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60")). |9 W9 p5 c" X# [
- (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))/ H5 u, s: y3 X9 ?. K" G2 u$ V
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))# ]# H; L4 y5 M1 a* `/ S- X
- (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))0 C+ }9 s' p% ?( w
# h$ P0 d% g% P6 B8 c% X" v% a- (defun c:u3 () (command "ucs""3"))& X/ U. Q ^- k
- (defun c:ue () (command "ucs""o""end"))% a+ a' ^) F1 c
- (defun c:ui () (command "ucs""o""int"))
: \3 O4 t# Q1 ~8 N - (defun c:um () (command "ucs""o""mid"))
, A; p5 ?0 b1 w - (defun c:uc () (command "ucs""o""cen"))
4 V" T/ O4 L8 Z3 u1 p0 W" J& F - (defun c:uq () (command "ucs""o""qua"))
$ ~2 @: r- f; j5 U' u" D9 h. w& S! }+ t) n - (defun c:3s () (command "ucs""3"))4 B- K. k8 D- a2 s8 s, s. d6 Z7 ~
- (defun c:sx () (command "ucs""s"))
/ q$ Q( t0 Q3 z( H - (defun c:sf () (command "ucs""o"))
/ ?" h, X4 R* ]% [& S2 m - (defun c:sz () (command "ucs""p"))$ s Y0 d1 b; ]. `5 m0 b7 B, Y7 I
- (defun c:sr () (command "ucs""r"))
' W5 C6 }) Z5 U% E; i( \( ~ - (defun c:sw () (command "ucs""w"))4 q! w0 p+ o# M$ U) m+ Z$ f; ]
- (defun c:fv () (command "ucs""v"))0 B- W! M O W# u+ d+ |
- (defun c:ux () (command "ucs""x"))4 F/ J8 p1 h b2 E! Q$ }0 x& d3 Z
- (defun c:uux () (command "ucs""x""90"))- \' d# V" t+ L* Q7 j
- (defun c:xxu () (command "ucs""x""-90"))
% e. }$ N( U/ X! O: ?$ c1 R! m# m- ?5 ?' O - (defun c:uy () (command "ucs""y"))' h# L& N5 E: T& @3 A
- (defun c:uuy () (command "ucs""y""90"))
! L0 g8 { v9 A7 R. v: j2 J - (defun c:yyu () (command "ucs""y""-90"))- w) @) i! l- C* O* b( @0 o
- (defun c:uz () (command "ucs""z"))8 T6 B. E) j' |# D3 w4 y5 d! W$ q
- (defun c:uuz () (command "ucs""z""90")) r* A) p/ Y' ]
- (defun c:zzu () (command "ucs""z""-90"))
" J6 R" ^( b& N6 f5 U7 Y: d - (defun c:uci () (command "ucsicon" "Properties" ))(princ)+ {6 f: f& j9 t9 z
- (defun c:ucm () (command "ucsman" ))(princ)4 ~: n4 }7 ]& E0 e7 `
- 2 _" C# t- y e" n
- (defun c:sa () (command "vpoint""_non""-1,-1,1"))% y: |8 X9 O7 {
- (defun c:sd () (command "vpoint""_non""1,-1,1"))# l- V7 V1 @2 y9 N6 W
- (defun c:se () (command "vpoint""_non""1,1,1"))
+ B; D' A- l% S: \* J& X: {5 ? - (defun c:sq () (command "vpoint""_non""-1,1,1"))
% B& K' }; X* ]/ O& c/ C2 u - (defun c:vc () (command "plan"""))
( b: U# l( z- D2 s6 Y - (defun c:vd () (command "dview""all"))
8 U$ B; T# ~3 C2 Q - 8 q' I! z# \% p, f
- (defun c:TT0 () (command "tilemode""0"))3 Z4 z5 ~, f$ d+ A; n1 w7 U
- (defun c:TT1 () (command "tilemode""1"))' U/ ?* l5 q6 _0 N) a
" D m! K7 O6 X# W4 ?) y- (defun c:vt () (command "vpoint""_non""0,0,1"))
' e: h$ b1 V" j - (defun c:vb () (command "vpoint""_non""0,0,-1"))2 h+ }1 ]- B4 B
- (defun c:vl () (command "vpoint""_non""-1,0,0"))
& h. ]6 z4 C9 ]0 Y8 y2 ]. R4 X' |# ^ - (defun c:vr () (command "vpoint""_non""1,0,0"))4 d. v' i; {- n1 j
- (defun c:vf () (command "vpoint""_non""0,-1,0"))
- h j5 J' n* S0 I8 ]; X5 A" ]' ? - (defun c:vk () (command "vpoint""_non""0,1,0"))' {' U& g; H/ j0 [
- $ v" Z+ L: s* {: A% G! `! v% C
- (DEFUN C:MM () (COMMAND "MIRROR"))
, ]6 t/ m( T# Q2 k% O, q - (DEFUN C:MP () (COMMAND "MOVE" "P"))) D5 ~( E* H, X3 ?2 o/ k' Y
$ f+ I+ P2 C1 [" w- (defun c:mee (/ a)
+ T7 b2 v6 @# @& h; n3 J* k - (setq a (ssget))(command "move"a"""end"pause"end"))
5 e: }& h4 D( j+ [1 P2 | - (defun c:mc (/ a)
: ]; ^" m; Z% m7 g - (setq a (ssget))(command "move"a"""cen"pause"cen"))& T4 z# b7 d9 @$ ?; L1 ?
- (defun c:cc (/ a)
; e: D2 E. j+ C4 L - (setq a (ssget))(command "copy"a"""m"))
4 e- b. I, s+ g - (defun c:ce (/ a); q% p* S, V3 {6 h
- (setq a (ssget))(command "copy"a"""m""end"pause"end"))# [' O' J1 a. ]8 L, ]' n' Z3 @
- (defun c:cn (/ a)2 j% F8 |8 @# N( ~
- (setq a (ssget))(command "copy"a"""m""cen"pause"cen"))
! p$ Z5 a$ s1 ~& ` - (defun c:tl ()(command "trim""l"""))
5 a, |, Q* n8 w m8 q8 n0 c% t8 R0 l - (defun c:tf (/ a)
( |* D0 B% H3 } - (setq a (ssget))(command "trim"a"""f"))
) D0 ]- w' C$ ^; J$ k D0 Y - (defun c:el ()(command "extend""l"""))( ~# a0 u% {7 H
- (defun c:ef (/ a)
9 Y1 S' a f7 G - (setq a (ssget))(command "extend"a"""f"))
# t9 L2 V. l4 a - 6 m5 k/ H2 V5 p+ k2 n& W
- 9 g4 y/ x. N& F2 R e: Y! }# L
- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110")), D) S A2 k' i* L3 _7 |
- (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))
" e. ~0 h R; @: }6 [ - (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330")): x S. X( d" x/ y
- (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))7 w) w4 f9 c9 @( b
- (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55"))
; j: U1 m# `. {% j- Q1 m - (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600"))
1 H0 \0 S; }; D. i - (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))1 r& F1 f; y7 Z3 x3 X2 r
- (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))3 r" E$ v) p* \7 T" A& F
- (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))$ ]5 d9 |- c6 Z% E
- (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))
e% r$ C( ^# y$ |6 T - (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))
+ I2 a G+ J0 o- z9 P - (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))) g8 J8 P: j, W
- (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))! _3 _$ P# d& m, S2 v: G5 _
- (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))+ U! v: c9 b( o8 p
- (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))- e; m' |% d0 Y1 P6 @/ q
- (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))
: P# e R, h7 ~$ ^4 F8 J. n - (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000"))
. n8 j$ F1 C3 ~: H i2 x& L5 k: M2 A - 7 R" o! Y* u5 N5 M7 A9 b% `$ t" y
- (defun c:mla () (command "-mledit""av"))" U# j# i' M( ]8 ]6 O4 V+ Z
- (defun c:mlc () (command "-mledit""mc"))
2 w; L; ]7 f w# z3 k: f3 Y0 M - (defun c:mld () (command "-mledit""dv"))
& g( C3 ^7 m9 q7 @: q4 ~5 U% a - (defun c:mle () (command "mline""end"pause"end"))
) g: q" ?8 Z- z+ c - (defun c:mli () (command "-mledit""ca""int"pause"int")): v2 @6 e" @7 S7 Z- e+ a
- (defun c:mlj () (command "-mledit""cj"))) Z- b6 ^) B5 f5 Z6 N' x
- (defun c:mlt () (command "-mledit""mt"))
% q' d" g+ }* q( B - (defun c:mlk () (command "-mledit""ca""end"pause"end")). r/ D* m1 v+ l: U) W% j/ r
- (defun c:mlw () (command "-mledit""wa"))
! b) F: c8 x+ r1 ]. e
! b5 _# o4 P3 t/ M- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA"))
2 A! i* H' P/ g* z) y) s - (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA"))
$ g M2 O" D( c% k - (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO"))1 u' c4 H% n1 k7 z: N: t, J
- (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D"))2 A' O0 j$ N& y5 f
- (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z"))+ v* j# f( ~+ V* P
+ H! T6 h1 W7 N" K2 F- (defun c:p0 () (command "pline""""w""0""0"))3 `. E8 L, d: a6 |9 l2 ^
- (defun c:ot () (command "offset""t"))5 o- L( w1 X6 G5 s0 B: S- i6 h8 F
- (defun c:t () (command "mtext"pause"j""bl""h"pause))7 W# C1 ?; x* `+ \* o- n& Z6 L! P
- (defun c:uo () (command "ucs""ob"pause))
- n# C7 r* @# N! k( ~6 C, X - (defun c:f0 () (command "fillet""r""0"))/ ~( [9 u$ ]9 j& w! ~% ]
- (defun c:fr () (command "fillet""r"))
$ S, ^( U. x9 g. q, j- ?( \8 F! | - : o) j9 z) M3 X; \+ V6 e
- ;CHAMFER
( k: i! p* y$ o$ q1 Q3 j5 D9 N - (defun c:cf () (command "chamfer"))
7 y6 {) ~2 {* q. E: z - (defun c:cfd () (command "chamfer" "d"))
# J& A7 P l5 }6 Z8 U9 D3 {+ L - (defun c:cf0 () (command "chamfer" "d" "0" ""))
) C$ N: D( L# z" }3 ^7 _ - / L0 w7 o) @0 h2 E4 V1 a) a2 ]
- ;FILLET/ N& S9 m4 Y3 P# W/ q
- (defun c:f () (command "fillet"))
* @) A* P% ^' A0 R - (defun c:fr () (command "fillet" "r"))/ P/ Y5 n1 x5 n4 n* N9 X" ^4 y
- (defun c:f0 () (command "fillet" "r" "0"))
% j0 E6 j. V4 n) a9 @+ R0 g/ Z4 k
5 S* h% E! l; _# D9 j- (defun c:OO () (command "oops"))$ u" ^9 B9 j v, r* q
- (defun c:dln () (command "dimlinear"))
0 i, O3 A3 ^+ {3 A# g - (defun c:dan () (command "dimaligned")), c: n$ W8 s* C
- (defun c:ddc () (command "dimcontinue"))! P! n- ? }7 G) ^ P
7 f* N& e5 }& Y# s8 K- (defun c:sc () (command "scale" "auto"))
6 T3 I+ W) T' V) u+ ]9 Z) V - (DEFUN C:XO () (COMMAND "snapang")). j/ `( H5 Q7 W
- (defun c:cc (/ a)$ q# r4 [4 l2 \
- (setq a (ssget))(command "copy"a"""m"))3 Z) H. b8 R/ @3 B: D
9 s7 R2 _+ _+ |* b; J- (defun c:PJ (/ a)
) p3 X$ x8 L# e* k- x5 U8 g - (setq a (ssget))(command "pedit"a"""j""all""y"))
+ t1 G1 K. K# r - (defun c:JJ (/ a)
* W& ?! O! U4 l! v9 I - (setq a (ssget))(command "pedit"a"""j""y"))
" z6 O% ]2 s( G9 k# W, f o - (defun c:TN (/ a)
: b, {) Y4 y% K, d# C - (setq a (ssget))(command "change"a"""p""T"))) u3 i# s! W3 v2 l
; D4 u: f h, P" V8 n4 _- 9 @; T3 b$ F$ @8 t; T/ N
- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD=========================# ~ u! J' n' X% k$ J# _
- 6 M/ J5 e) p7 e
- (defun C:IB ()(setvar"cmdecho"1)& P; J2 w0 L& e2 Q1 X
- (setq pt(cadr(entsel"\nSelect Block:")))
# Y% A, E# j" k - (setq e1(ssget pt))
4 A& b8 X/ b/ L( R& y - (setq e2 (entget (ssname e1 0)))
, o/ x5 f+ E5 J+ Y4 X0 [% l - (setq blname (cdr(assoc 2 e2))) _ z; ]% U! c' w8 H
- (setq oer *error* *error* err2)(command ".insert" blname))9 r1 X4 a% ?' ?7 g9 O, {
" C/ r1 a5 Y" N, n) O5 D" ~. s- (defun c:II ()9 g0 v' l9 l1 p+ @9 j
- (setvar "cmdecho" 0)
' q. Z L6 j' i6 Z - (setq olderr *error* *error* myerror)4 t+ h: G/ i1 Q$ b! B
- (prompt "\nSelect objects: ")
: |. J: e( X1 W1 b/ g - (command "select" "au" pause); I- N6 V7 {2 j. {2 \
- (setq sstxt (ssget "p")
9 a+ h" F+ k$ J: H' o8 G( y - sslen (sslength sstxt)
. k, m# e4 \' @8 Z. j - ctr 0, r \3 z6 S) w
- )
4 |3 B, H2 r' A4 F - (command ".undo" "mark")4 a3 I1 d& c% {: T
- (while (< ctr sslen)5 Z# C5 q/ h+ d' b" O
- (setq listxt (entget (ssname sstxt ctr))
' C3 @( u! k& D0 v" W. q. K - txttxt (cdr (assoc 1 listxt))2 t- w$ M2 l8 F1 J/ d% c% r
- enttxt (cdr (assoc 0 listxt))% M# V' T9 b4 M4 }
- )# J7 Q/ h& u; D* k# `* ]# c
- (if (= enttxt "TEXT")
9 h& T$ g- Z3 V7 @( G - (progn' t! H' x' ~0 Z \* [
- (setq testxt (substr txttxt 1 3))
' k+ K$ n3 W* Q* u- } - (if (or (= testxt "%%C") (= testxt "%%C"))+ } H/ r! N- n# d) Z, {( ?+ F
- (setq newtxt (substr txttxt 4))
* e4 Z1 a( G% E$ b - (setq newtxt (strcat "%%C" txttxt)). q1 t7 S! v( T% H4 h: m
- )
9 p3 w- M n# C0 q - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
5 H: w+ g4 O. ]6 V& Z- | - (entmod listxt)
% d8 P2 \5 t7 R/ T' w" ] - ) ?9 O7 G& b/ L* C6 B4 @! L5 }
- )
# M: \0 w$ h0 z# G; f - (setq ctr (1+ ctr))
! c% |7 S7 k+ y6 P' i+ X - )- s1 G( o7 F' w) t- l, A0 X2 ?
- (setq *error* olderr)
& z E' I' ?8 Y6 E - (setvar "cmdecho" 1)# L) I( e% R- I% {9 X( C
- (princ)
9 u- f, d/ @# E' S; e1 U9 b1 _ - )
( j: r7 X9 _3 K! Y
n' g- `1 X5 F1 V6 X$ G- (defun c:DG ()7 f' N1 {$ v# I% f
- (setvar "cmdecho" 0)
0 u, q8 K0 ~% [. O - (setq olderr *error* *error* myerror)
$ W2 T2 i, i' u) S; I - (prompt "\nSelect objects: ")
1 q! ]7 F7 I! K& f7 C, r - (command "select" "au" pause)
4 N: r! L, s8 S% B8 D* J- e - (setq sstxt (ssget "p")) M; a8 @7 v& g: [6 }+ I
- sslen (sslength sstxt), \6 V; Y1 k" I
- ctr 0, M: l& Y8 v6 l9 ~; L! d0 x: D8 b6 L- A+ {
- )
' K# l/ ?4 u9 u& s( H - (command ".undo" "mark")1 A* d7 ?+ `2 t2 r, M! V
- (while (< ctr sslen)
( q* x6 C1 r% i/ x" o) L; O6 b- z - (setq listxt (entget (ssname sstxt ctr)), n, m' r7 R c/ d
- txttxt (cdr (assoc 1 listxt))1 s3 u4 \1 h) g3 o# O( {
- enttxt (cdr (assoc 0 listxt))
2 z Q% l- N" y# {& _ - )
7 M9 L: q8 q, Y7 L( d - (if (= enttxt "TEXT")! f5 L7 d) K, j) f2 D0 F* H
- (progn
% J% T/ U, \- h6 {4 n) b# @; R - (setq testxt (substr txttxt 1 3))
) V9 g) g& [" g, \ - (if (or (= testxt "%%d") (= testxt "%%d"))- `: w( S" J4 f) v0 n
- (setq newtxt (substr txttxt 4))- q' b' M, {- O6 T% Q
- (setq newtxt (strcat txttxt "%%dC" ))
# T0 _& H, U5 @- B - )- ^& r" Q$ M7 q) g1 J3 H4 r" t
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
2 G' m. a8 O4 @; t1 h1 N - (entmod listxt)
+ h% \8 E. a* {( X0 T# u: X - )
) g" l7 r5 H; @& D$ S - )/ N4 D! F# p) `3 \1 P, j* b8 a
- (setq ctr (1+ ctr))
" _2 \$ @8 c* d8 T4 ^9 M4 R, R+ I - )' P8 {3 ~& t! v% l: J8 J- L
- (setq *error* olderr)9 s! o" g7 h% P! ]0 h
- (setvar "cmdecho" 1)
5 T8 V% _) k, l$ }$ m. q4 v* J2 y - (princ), @3 m1 P% P/ O, N+ F
- )9 B5 t! C, q8 H3 n
- + z9 {$ i; z8 J' L- r6 O
- (defun c:PI ()- ]( c) `3 G+ ~- R6 ^ [% j
- (setvar "cmdecho" 0)1 x3 _; t D8 J# s
- (setq olderr *error* *error* myerror)
. X& Q O# S/ g; m2 m9 ^2 ` - (prompt "\nSelect objects: ")
+ F! h9 J) u: A - (command "select" "au" pause)1 l3 { t/ l9 G
- (setq sstxt (ssget "p")
@: n0 n# l! P9 [- ? - sslen (sslength sstxt)' \ u$ ?" g5 V. ]) k( H
- ctr 0* Z! ]* x' n& |! v, b7 n
- )2 W+ N4 a# r% ]
- (command ".undo" "mark"), l& i( u. p9 C# H6 L
- (while (< ctr sslen)
7 w4 Z9 y" E3 v' F/ g9 J - (setq listxt (entget (ssname sstxt ctr))
; E+ E: }9 Z) l S - txttxt (cdr (assoc 1 listxt))3 D1 \, _, L3 I4 t9 H
- enttxt (cdr (assoc 0 listxt))! u* [* k% ^9 G4 S
- )
: d9 z$ L. H1 \/ P8 [& J - (if (= enttxt "TEXT")
- i: c; x1 {$ E6 u! f - (progn
! J6 p6 e9 `) u# h - (setq testxt (substr txttxt 1 3))
' D$ z) V r( B# ?1 H! N - (if (or (= testxt "%%p") (= testxt "%%p"))
" G$ w7 D) a, j. _* ]# M# T - (setq newtxt (substr txttxt 4))% q0 \$ O& p1 f6 P& }
- (setq newtxt (strcat "%%p" txttxt))) s' l& a' @% P
- )2 k% B; L. }+ }" q4 M
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt)). v: d9 W s! }: Z2 B4 ?
- (entmod listxt)
$ B' C; T: @0 P$ N B: ? - )! s* m/ v/ [$ h& ]4 p$ G
- )% g/ R5 F+ m& K( J6 E; X
- (setq ctr (1+ ctr))
/ w, w# p8 v5 m1 s3 H* p3 w - )- M) h. W$ E* |
- (setq *error* olderr)
: i i& a# d, J" z% Y; t - (setvar "cmdecho" 1)! @1 l& A/ g& {5 @* O
- (princ)
' F3 Y! Y9 @8 t* X$ M3 M+ x - )
, f, @0 I8 ]6 ?3 S! a - ; |1 P1 C- U7 ?4 m- V
- (Defun c:CB (/ a)& T% F+ ]6 U! i4 h5 d2 K
- (setq olderr *error* *error* myerror)" q# @( ?, d. [1 v# G- Y: \6 l
- (setq ocmd (getvar "cmdecho"))5 ~3 B* | H# w
- (setq oblp (getvar "blipmode"))
9 }( O1 Z) Q; Y. J - (setvar "cmdecho" 0)
% s& o `. @* k2 D - (setq a (ssget))
7 C C9 S1 n8 j6 a* k - (command "CHPROP" a "" "C" "bylayer" "")+ X7 `0 f& Y" F) W! F
- (setvar "cmdecho" ocmd) `- a O- l! a% o6 `* K
- (setvar "blipmode" oblp)
7 h1 s; X. }4 z; ?1 V& v8 T2 H5 ^ - (setq *error* olderr)
$ ^ B/ [# H5 ]% b' v8 x7 l - (princ); w: G7 n. x" _: o0 K
- )+ H' Y8 H' ?- z* I* z* j
- 7 O9 X7 H$ c( `1 k
- (defun c:LCC (/ co43 obj23 la23)2 e" D& k" R1 F" }: b. Z& B
- (setvar "cmdecho" 0)& ]( w. G: S8 x) p' q
- (setq co43 (getstring "\nNew color : "))) w7 B, `( d1 Y9 s+ ]. I: L5 w
- (setq obj23 (car (entsel "\nPick object on desired layer: ")))
4 s; E1 L, O# I5 }2 d0 j, x3 O - (if obj23 (progn5 ?) z. p( t9 k. U Z+ ^2 U
- (setq obj23 (entget obj23)) C/ h, b: B% z5 y' |
- (setq la23 (cdr (assoc 8 obj23)))4 W! S! w: m8 U$ r
- (command "layer" "c" co43 la23 "")
- L5 q1 P+ b8 Z: b6 r - )
& S6 [, f3 o5 ] - )
! R7 T" @6 g/ W - (prompt (strcat "\nLayer has changed..." la23))
! E- T9 b* `* @5 x4 p( P - (setvar "cmdecho" 1)+ |$ j% ]* f- F. j8 m
- (princ)
% |& [9 T! ~% Z3 y - )
5 A1 X2 t% @2 |- F - ( C3 z0 f* b0 |5 h
- (Defun c:RP (/ a)% _2 J L; y* \; V) C
- (setq olderr *error* *error* myerror)
/ F3 B3 G, u& y3 d0 v! r& K - (setq ocmd (getvar "cmdecho"))# Z0 b, k$ K' i$ Y1 _+ n
- (setq oblp (getvar "blipmode"))+ h2 I) W: l$ d. J) ^% K1 F
- (setvar "cmdecho" 0)
% ^/ z0 B. { G! M - (prompt (strcat "\nUSE: Delete object(s) belonging to". Q' w/ l+ b1 e# c1 T4 m9 i
- " the layer of the entity picked...!"))+ W8 Q6 o5 ~6 _0 P+ d' N
- (setq a (entsel "\nPick the entity with the desired layer to delete: "))
3 h! Z1 i; l& [4 u5 l4 X - (if (/= a nil)% A. N$ l* U0 l9 S0 V: A
- (progn (setq a (cdr (assoc 8 (entget (car a )))))
$ k# z( j+ c6 }% h6 w# a - (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))
0 P: o4 L j8 T* M9 H! S1 V' T - (prompt "\nNo entity selected!"))0 c: }( M! a* P" k* u9 R
- (setvar "cmdecho" ocmd) i# e) e+ H; a! U! Z
- (setvar "blipmode" oblp)/ `: g* T, u* R& v
- (setq *error* olderr)
X* o1 X6 _3 W - (princ)8 s: F# C9 B% I: C! W% G8 ^
- )
+ U( g: I1 z) R - 0 I8 v+ M/ q1 U3 p$ U# q4 W
- (DEFUN C:WL(/ SSET NET SSL M)% i. L( E( i, J! K/ S) d# N
- (PRINC "\nSelect lines :")- w- [+ y* p9 g6 q% I
- (SETQ SSET (SSGET))
1 @1 \) |5 o9 d: Z0 q* J# R - (IF (/= NIL SSET) (PROGN, n8 D R" |$ x3 n( z$ t
- (SETQ SSL (SSLENGTH SSET))
+ [2 D' U& X' j& T2 L% @: _9 ` - (INITGET 4)
% Y& @7 o" X; p( t+ } - (SETQ NET (GETREAL "New width : "))# B3 r3 M& B4 \% Q1 t+ ~( `( D
- (IF (/= NIL NET)
" i3 D) k0 h2 Z; ^8 K/ Q - (WHILE (> SSL 0)+ a; l+ f& s9 C3 X& o' \8 v2 l3 w
- (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))
6 J7 { o4 p7 y& ?# q0 C - (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE")
" m* u# X, F" m - (COMMAND "PEDIT" M "Y" "W" NET "") 2 w- R7 ~( U. h4 ^% h5 u8 f
- )
9 E% G1 k+ M! E5 O - ) ( d2 t: w1 L5 _$ \6 A
- )))
2 ]& Z5 l0 ~# z - (PRINC)8 f8 b! d' l+ T# F2 q
- )
/ ~1 j9 d0 T% z# B, p
, M; f, U) v' d x2 }+ z/ u" i d- (defun C:MML ()
% H9 W4 b( R. _ - (princ "\nSelect objects to move to another Layer.")* n) X: [: I- p z, t. R
- (setq ss (ssget))
; b. j- N# V! a+ y: Q1 n - (SETQ UL1(GETSTRING "\nLayer to move entities to : "))
; j6 s3 t6 v* U$ T2 D4 ? - (setq counter 0)* N: o: i* T0 ~* @9 F, C
- (prompt "Moving to layer.....")(princ ul1)
- t# W, `8 v* P c4 E' F - (setq e (ssname ss counter))& d( I" \, g2 D( `1 ~( @
- (setq l (cdr (assoc 8 (entget e))))5 y. _ B* y' S
- (setq S (ssget "X" (list (cons 8 l))))
" l8 ]- p* q+ P. ~9 q6 q; w - (command "CHANGE" ss "" "P" "LA" UL1 "")1 T' f5 Z0 K8 M
- (setq counter (+ counter 1))( n# I: l, U0 S, f) x& y
- (princ)- Y& x% u. w/ y$ y( u
- )
8 a6 c% V7 m6 V9 O4 S/ O, ]* ` - $ m, e: p4 f, E+ M: c! k" w8 H
- ;;; ================================ GHI CHU ============================; J0 O6 i# R4 `
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
) X8 n1 d+ N9 E | j8 q - ;;; =======================Thuong Dung Font Romant.vnh===================1 \8 k' ^4 a b
- k( e* L$ c& j& m0 p- Q- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
# a' |6 }+ l$ n0 n' U- N8 Q - (setq oer *error* *error* err2)
5 ~) D% x0 C- U$ V/ x. W; { - (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")
/ M, ?3 Y5 w. P6 L0 N# s - (SETQ Cpt(GETSTRING "\n (ROMANT-vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (UNKNOWN-font)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))
3 X$ Z' n# y- P! ?& o$ P - (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p"))7 Y R, j8 ]) {7 S( r% s1 G4 n
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh")): L2 P3 s2 ]$ u# e0 m
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p"))
( h9 ~5 R& ]6 m5 H9 H' A& p( h - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c")), [: v/ A5 V- d2 X' b0 E* n, M; l
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?"))) L8 T) f- K+ w/ e$ c; H& A" j9 A8 r
- (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An"))' ] h E9 b6 }
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho"))
; ?( ]* p' k6 w$ j0 f - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`"))
2 m; r, K/ \6 C8 r" C: Q - G& _4 r8 G/ W4 x8 |
- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))1 [% V/ t9 b7 R/ M$ d5 j, E% s/ `" A
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))" T3 k V) v5 e
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))7 p% M# ~2 H/ w) v8 e
- (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc")). ]: l9 l5 b! z6 a- J/ I
- (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))+ n. l0 E0 ?% M G$ Q9 E
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))
" I, Z+ |1 v" d6 Y3 r7 G - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
( S. {1 U1 ~7 w# P) w - (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
7 O+ }6 k; q3 z4 R$ b -
5 I- u' o: O2 C$ X" [% Y; k - (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))% C7 R6 j9 h) e6 x5 Y
- (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))7 L" _" R1 }: ?9 V4 N+ C
- (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))& ]& V; r7 Q. V& ~2 E3 |" f( R
- (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))& a4 L; v! E5 J Q) @/ Q" w; d- N
- (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))% X$ \+ I0 f# N: V
- (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))
- K5 P# a- ^+ {. |% `$ U - (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))$ R* w! D1 c. E0 W8 ?
- (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))
: X2 r4 K; X7 n - (setq pta (getpoint
2 ?8 J" i J, U' e& r# X3 V - "\nPick first corner. : ")), P7 }* E( o# B: I3 h
- (setq ptb (getcorner pta
: ?7 `% ]9 O7 ~7 U- {! A" b, x' ` - "\nPick second corner. : "))0 ^* s' p8 u# B( l }
- (setq ptc (list (car ptb)(cadr pta)))+ h1 [ i/ _! }- M f+ S9 k
- (setq ptd (list (car pta)(cadr ptb)))
y; X) @ V6 }; L1 y/ U$ J: t3 Q) M8 w1 T - (setq ang (angle pta ptb))
0 M2 G# e/ f* O6 W5 N - (setq d1 (/(distance pta ptb) 2))( c& [6 }: k: E9 L# c0 X
- (setq cp (polar pta (- ang (dtr 0)) d1)), N$ g- c* O9 k1 Z+ H( _: o
- (setq X (distance pta ptc))
1 H" y/ k9 F, G5 H4 L& r+ L - (setq Y (distance pta ptd))
3 ~5 s. {/ @. Y4 k - (setq X1 (rtos x 2 1))
4 _4 X J* [* G2 i$ }# F - (setq Y1 (rtos y 2 1))- u* I. i+ \% v: o+ c0 C5 x
- (setq rmsz (strcat "(" X1 " x " Y1 ")")). j9 [( Q) D. C4 B a* J; I
- (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz)); }3 L) e7 \1 v" R& g+ Q& X
- (defun dtr (angg)
: {& ?# S+ C' n2 O - (* pi (/ angg 180.0)))
2 W. f/ i+ H% ?6 s* ~
1 f! w" O& S; @: s- (defun c:WS (/ pta ptb rmsz pl1)
# v" p* e/ f( @2 v3 H. Q! M - (setq oer *error* *error* err2)
0 q, T/ x# w& w7 }: O2 X% l - (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P).")' S1 n/ {' B9 O9 |8 @
- (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))
1 q! _& X; K6 z4 `5 j8 S
; u+ L3 M* a+ r( V; b5 u" B2 }- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))
& X6 ~' X, [% o/ C8 I& _% Z - (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))2 e' p% r2 g: Z8 W, w
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))
9 g' ]2 }+ S$ j: H6 s - (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))
' K3 c/ E/ N* O( \, P - (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))
' Q7 \( G, D6 G' G& Q0 z7 I4 U - (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))+ V! [( ?% G& X# ?! i
- (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))( U9 {- j; ~, U2 v% ?' L; p
- / m# J2 }; T- _4 S# ^7 h
- (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"))' \3 ], c6 N# f4 E
- (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100"))
1 y) X1 q8 }9 q) X) c% c/ ~ - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100")) t6 g+ R$ G: K. S: O/ P
- (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))
+ R' G( @& T: d8 C' v# L - (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))
) E1 E: ~3 B& Y; T2 q5 s - (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"))
% m3 h8 u* {; s3 E3 O - (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN"))
% j2 N4 C6 u' }1 Z& k$ m/ q4 n - (setq pta (getpoint( H8 y2 s- B3 F' ~( @) Z5 i
- "\nPick first corner. : "))
0 e* ?9 \; Z1 {; O1 |! ] - (setq ptb (getcorner pta
6 V9 j; a1 q9 K6 Y5 d - "\nPick second corner. : "))
) R# b% R$ F% L, ^ - (setq ptc (list (car ptb)(cadr pta)))( c- Q$ \# A$ I% R+ O2 ^- p2 w
- (setq ptd (list (car pta)(cadr ptb)))
. Z6 |; ?7 q" O - (setq ang (angle pta ptb)). ?7 n; A/ u3 | b4 k/ X# ]
- (setq d1 (/(distance pta ptb) 2))
1 m& Z+ w) d: G. n - (setq cp (polar pta (- ang (dtr 0)) d1))# i; `5 t) r) u- z, M; q9 t
- (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
+ v) @& t7 l9 \0 v5 s - (defun dtr (angg)" a4 V1 ~( a6 _0 B" e2 \) M
- (* pi (/ angg 180.0)))
# P+ O+ L# I+ n( m& y# ] - 7 b2 V3 e* T8 B0 Q: Q+ r7 r0 W
- ;;; ================================ GHI CHU ============================
- A9 Y9 o/ M9 _6 o6 K0 H* y! | - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========5 F5 ~, \# W3 }3 t" P! V0 S2 i% t4 f
- ;;; =======================Thuong Dung Font Romant.vnh===================: b' G7 A* U5 Z
- ( G0 R3 g( C8 }; |4 l
- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)% C1 T# x5 w: K) V0 j, m0 v
- (setq oer *error* *error* err2)2 u+ B& q1 Q: u m$ C
- (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. ")2 r p9 H1 z1 p8 s: A6 B# ~* w
- (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))
# ^! i1 C2 \* y* M( V. a2 K4 y# Q - (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p"))3 Q/ X9 R7 q/ @2 e; J
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))
% K l8 {9 n3 L- u# I6 u/ y7 F* ] - (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p"))
2 ^% m# s' e7 g) g - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c"))
+ ^6 `" A- u3 ` - (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))6 t( e: D* K' r" f) F7 H2 |
- (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An"))9 @3 O3 c7 }" V# ?
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho"))
+ O H( C3 N. f, A7 w - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?")); r( b0 I9 v+ i
- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))% s0 f7 U0 _+ B0 z
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
3 }1 v8 ?; o* {+ M- b) L! J" R - (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
1 V2 Y8 Y9 c# X8 M# ^ - (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc"))
3 V- n; h: j" a: C# G, W% y - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))8 W$ }0 i0 M' b* I
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n")): n f! W4 G5 I
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))! n) N* g5 d8 Y5 o
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å")) 5 h5 Y0 ?, j, f$ f2 r- i" e4 g
- (setq pta (getpoint! R& H& y- T7 | Q' s; a+ }
- "\nPick first corner. : "))/ d+ e, D& ~- G9 y! @
- (setq ptb (getcorner pta$ p# b9 g; q3 _4 c, [% ^0 O% L; U# h2 J
- "\nPick second corner. : "))
6 ^/ r9 k- x% w v+ ]% i' Q/ { - (setq ptc (list (car ptb)(cadr pta)))( n$ {. j; K2 \! p
- (setq ptd (list (car pta)(cadr ptb)))4 j& E8 p" i h" J
- (setq ang (angle pta ptb))8 @. P7 ]% y- ]$ ?; i7 {; E" O; y
- (setq d1 (/(distance pta ptb) 2))% E/ @) q; X4 A0 e' y. w
- (setq cp (polar pta (- ang (dtr 0)) d1))
$ p% W2 G3 Y6 ^$ M' S/ H# R+ K8 o- T - (setq X (distance pta ptc)) f4 l" s+ m& @6 X1 l
- (setq Y (distance pta ptd))4 u% k* a! K6 g
- (setq X1 (rtos x 2 1))3 v' h4 q1 R5 l9 g
- (setq Y1 (rtos y 2 1))
; w% `. E( _9 V: q- \ - (setq rmsz (strcat "(" X1 " x " Y1 ")"))2 m$ E; o" K5 E$ \: H+ ]1 j5 ~( G
- (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
) ~7 a3 N1 }! N, ~" n, M - (defun dtr (angg)
2 ^2 i" t, H$ U( E - (* pi (/ angg 180.0)))
% w% n: |% Z8 P g2 k8 d3 \ - L7 C4 L$ _3 S/ P0 @
- ;;; ================================ GHI CHU ============================$ C' ?7 M4 i* t
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========& q! a; w$ W) I1 {) f u
- ;;; =======================Thuong Dung Font Romant.vnh===================9 R8 ]+ U1 z* O$ g. o# r! H# D0 ]9 W
- 1 @ Q6 ]! A0 N3 U+ U2 \ p2 ~
- (defun c:GS (/ a b c d)' r+ z2 L. I) A8 g8 U: c
- (graphscr)! n/ r: ]( d2 O! p* Y; |
- (prompt "\nSelect text to set style....")0 e" {0 k0 o8 d2 D9 h* i
- (setq a (entsel))
3 {$ S5 v, y& {4 \( n0 C9 w5 d1 F( Q - (setq b (entget (car a)))
3 \& U0 Y1 f& q7 g! u+ p - (setq c (cdr (assoc 7 b)))
9 }/ C {7 a. \$ C - (setq d (cdr (assoc 40 b)))
$ M9 U* ] a a( B% h3 |( l - (command "style" c "" d "" "" "" ""))" q- [) |5 J; y; U/ r- g
- (princ "\nType GS to set text style.")
2 g9 P, o$ E& t& A; k# K
; `+ w6 E) D1 \+ h- d! p, u' N9 m- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)# t8 U' X. g, O/ c4 R' J
- (setq olderr *error* *error* myerror)
# _6 F& ]8 q& e - (setq ocmd (getvar "cmdecho"))
5 T; r8 s! j( f - (setq oblp (getvar "blipmode"))
8 t8 N; y# J& ~: M3 l - (setvar "cmdecho" 0)
S1 i: f2 M9 ] - (initget 1) ;3D point can't be null
" O/ }$ c0 L, _3 H+ _, _ - (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))
5 N5 {0 G) }# t1 J - (setvar "ORTHOMODE" 1)
5 Q* X! i! y: m+ e# A5 | - (initget 7) ;Length can't be 0, neg, or null
" L' w% r6 J" x+ x& m) a: C) H- W - (Setq l (getdist pt1 "\nLength: "))
! \( {: v. S* ^8 v) c! O" M6 | - (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))% I c" P/ D* U. t
- (grdraw pt1 pt2 2), L+ \/ Z3 K8 z+ d9 f! P
- (initget 7 "Square") ;Width can't be 0, neg, or null
0 g0 B1 w: L, S7 J' s - (setq w (getdist pt1 "\nSquare/<Width>: "))
8 V9 `2 R* z. c4 ]' L6 c$ g8 f - (if (= w "Square") 2 r! A8 o Z) s. U6 [6 D
- (setq w l)- M& t9 t! q h# F4 W
- )9 K6 j% i, I9 I" R; v8 Z& E ^
- (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))" R, Y" V3 o9 ~% F
- (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))
% n/ `3 S/ {) ^7 h E - (grdraw pt2 pt3 2)3 B) h( `5 ]+ o
- (grdraw pt3 pt4 2)4 |1 `6 p8 p# Z5 O+ y- W
- (grdraw pt4 pt1 2)3 T3 a# Z5 O7 X& T
- (setvar "ORTHOMODE" 0)# o3 k8 Y4 i5 k2 k0 I4 \
- (command "pline" pt1 pt2 pt3 pt4 "close")
& b# ]8 [7 z# M; o b - (setvar "cmdecho" ocmd)
/ `0 x4 k) K+ L4 i - (setvar "blipmode" oblp)
! U- I) E6 ?$ y' z1 M0 k - (setq *error* olderr) ; Restore old *error* handler
# t, n% l7 j/ Z3 r# | - (princ)2 ^' S$ W! j. ]; ?" j% C8 v
- )
( b0 X: \9 X8 S7 f
" f; c) o' c- X2 m0 _5 D- (defun c:SG (/ ent pt1 pt2 ang)- Z- `# `, V* y4 u: j$ J
- (setq cmd (getvar "cmdecho"))1 X2 P" C, |# g D g7 E
- (setvar "cmdecho" 1)* r+ [/ {. ]2 d
- (prompt (strcat"\nSnap angle will be set to angle of line"))+ w, m) z5 M5 S5 d% E
- (setq ent (entget (car (entsel))))
# O* m. C/ B( w9 \! E. V - (setq pt1 (cdr (assoc 10 ent)))
4 ?$ K! {6 }# c - (setq pt2 (cdr (assoc 11 ent)))
0 W$ X3 P6 N" v/ p - (setq ang (angle pt1 pt2))8 C# v L6 W4 W4 H* N
- (setq ang (/ (* ang 180.0) pi))
( X1 \) e! T- g& b9 O - (setvar "cmdecho" 0)9 K& g5 ?' _( p: D( }
- (command "setvar" "snapang" ang). ]: E4 J" A! [' _" P* L
- (setvar "cmdecho" cmd)
* P2 g9 y. }: D" k, K9 \6 C* c - )/ M# E( [9 D7 \/ _( s
* W x: V `. `- X% e a+ O- (defun C:TG ()
5 h. l1 C# e. Z& j- f& H8 N7 k q - (initget "Increase New")
+ P$ s3 C& v3 Q - (setq ans (getkword "Increase/<New>: "))& Y3 V/ Z2 _ R3 e# b. o- ^
- (modang)
. z5 R: u" [! n' m4 _+ k. L - ). h9 Y4 p& E3 {4 q
- (defun modang (/ ang ss ca e na ssl); _5 U& T; _* I" u% U0 `! b) X
- (if (= ans "Increase")
- Z3 E+ b4 Y; E9 F8 ~$ K - (princ "\nIncrease angle for text by: ")3 d2 C7 N) u+ \/ x% f
- (princ "\nNew angle for text: ")6 o0 o6 E& r+ A8 V
- )# Z9 A0 V8 z7 \. Y$ }
- (setq ang (getreal))
# {, t2 p% N9 v8 m( e - (setq ang (* (/ ang 180) pi))
2 W& i& D4 l2 a1 x - (setq ss (ssget))( h; x& K; y+ u
- (setq ca 0 ssl (sslength ss))3 \. a, m( D0 x/ W5 J; Z- c
- (while (< ca ssl)
4 r/ G y' S# y; R3 A# m - (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))
! Q- S2 x$ f- ]* M+ E. o6 x - (progn
! [: p2 v5 j6 Z8 R* f, ?6 t - (if (= ans "Increase")# z9 e" x4 C+ } C( q( {/ @ J: ]
- (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))
. \$ I: `( V. U n+ _ - (setq na (cons 50 ang))
; i8 x1 W _4 H7 o" o E - )
$ f3 R; [# E& ~ - (setq e (subst na (assoc 50 e) e))+ I7 m( M$ F+ d
- (entmod e)( ~( Z# l& H9 S1 q m. A; e
- (setq ca (1+ ca))
o$ T9 e$ a1 l - )8 }; W% m. ?( W" T( t
- )
/ _% O4 u7 q+ j1 n6 ]' g - )
' L) O" W. t2 o g9 R. Y - (terpri)" \8 w* ~9 P, v, r
- )
9 p; P) N4 J* V& o5 ?; E# Y, |/ g - ) q. {6 p' x" C( c7 M6 J4 n
- " H& ^: X% r& Y/ i8 O2 a/ D
- (defun c:WL ()# \: Q3 R; Q w5 e: n$ v) B
- (setvar "cmdecho" 0)" C8 |* B% q. g) {8 e0 Z: K( r5 {
- (setq a 1)
: i- X, ^% b. v8 v" C - (prompt "\nSelect Polylines to change: ")1 Q# A$ v$ R& S+ d( Q4 d
- (while (/= a nil)8 B5 I" U% R) k
- (progn5 p# n9 {! Y- Q
- (setq a (entsel))
; `$ r {8 a' N - (if (/= a nil)+ G1 `; U& t8 S+ Q1 }9 H$ E7 x
- (progn6 n- {$ G9 l- h2 {; S* O" e
- (setq b (entget (car a)))
: l: `6 o/ p. E, L; \4 B$ V8 j# ` - (setq c (cdr (assoc 40 b)))
7 h& e/ z* p4 y% X; R - (princ c)8 Q1 z) h% B, I
- (command "pedit"a"w""lw""")) I5 n. C5 e& S# w8 s
- )))) & P$ \' w& L: R2 _
- (princ) p3 E: D' T( R) L
- )
: Y! I. X% [* A8 g) J) g( ~+ I - : e' K, ?9 Q; R0 u
- ;;; ================================ TEXT FIT ============================
& h9 I; I2 \( T
+ W/ ?9 n, K. d7 J5 F- (Defun c:FT ( )
% ^1 {) u$ p3 T9 |# C( j; z - (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )* W. S3 }9 u* E1 u- U7 l. @0 S
- (Defun LL-xyz (arg) (CAR (TextBox arg)) )
5 p# k; G; V( N1 C% `% m - (Defun UR-x (arg) (CAADR (TextBox arg)) )8 _6 M) R6 ^$ L" r# J; W" s
- (Defun LL-y (arg) (CADAR (TextBox arg)) )
8 P! }& n3 b7 ] J0 q - (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )
( A! H) d, `+ ?- l" F/ k0 |7 B - (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )% Z7 o4 r4 G v
- Textent (If ename (EntGet ename)) )
% p; `1 \8 k! L* H* z% r4 B - (If (= (CDR (Assoc 0 textent)) "TEXT")- o) @0 L+ j# U+ X+ b
- (Progn (initget 0 "Start")# M; b! [$ f% Z% o! j( P
- (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )" G$ @; v, g, A+ J- x
- (setsnapang Textent) ;set snap along text entity' J- D* C6 J9 T, A
- (setvar "ORTHOMODE" 1) ;drag along the text- h2 @- T+ k* E& E& J2 B3 F
- (setq
& H/ v' W* b' K) m - TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") )/ h6 c+ L2 L( Z
- (setvar "snapang" 0)
7 W3 D, `# W9 M4 Y$ Z5 l - (cond. X- n0 z' ?0 |0 O; g/ _/ a. b8 I
- ((= (type TMP) 'STR) ;;new starting point to be selected, w M- i* Z; T, \3 J0 w8 T
- (setq Start (getpoint "\nPick new starting point: "))
3 z* W6 f) i& \8 y7 b - (if Start (progn3 K0 v* g& K+ Q. j% I
- (command "_UCS" "_E" (cdr (assoc -1 textent))): x4 }- ?- W5 z2 d
- (setvar "ORTHOMODE" 1), R" I# l( [) l5 Q9 J4 H
- (setq NewPt
" y( C7 m9 t; U - (if Start. `7 f; c+ X' D2 e% J! s
- (getpoint (trans Start 0 1) " ending point: ") nil ) )
9 @: a, ]* s. M1 S3 l' S4 A - (if NewPt (setq NewPt (trans NewPt 1 0)))" w, n Y' U5 g& n
- (setvar "ORTHOMODE" 0)+ A# ]* U$ M( c5 t
- (command "_UCS" "_W") ) ) )
. G/ V/ ?- q' N' M7 S# D - ((not (null TMP)) ;;new ending point selected
0 x3 ]2 g. i: s' M1 H - (setq Start (cdr (assoc 10 Textent)) NewPt TMP) )
/ p; B: P' O! @* _! s* v - (t (setq Start nil NewPt nil) ) )
' E. Q* S9 D2 j$ Q1 Y - (if (and Start NewPt) (progn7 {$ l) ~/ x8 q& ~; ?8 k
- (setq Val (Assoc 41 Textent) ;;current width factor4 r2 N" z- I3 S4 P; g. O
- Val (if Val (cdr Val) 1.0) LTC_%
3 Z5 W- U7 H* ~0 e# x - (* (/ (Distance Start NewPt) NewEnd ) Val )
$ v8 C3 Y- f1 a/ q4 k# c. h - textent (Subst (cons 41 LTC_%)9 E& H1 `; e0 t( V2 O& H
- (assoc 41 textent) textent)7 L" z) ?) K7 J: `; y
- textent (subst (cons 10 Start) (assoc 10 textent) textent)) k% d8 I; P5 X) K! d. p
- textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )
& c, T# i" |1 W+ ~ - (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))7 I4 i- w+ @; ^& Y7 W
7 d4 V4 C7 P3 Q6 [6 c2 c8 d- ;=====================================================================( j- C# a, Y4 Y) Z3 V: j
- ;=========================COPY + ROTATE ==============================
5 ?/ r; r9 a( i* g7 S - ;=====================================================================6 U) H5 \0 ?4 ^
- : w% l3 Z/ ]7 U0 d/ v! s
- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2). ], l# J; E! B# O8 s+ {- m
- (setq olderr *error*
$ d9 i/ H5 T6 a* B/ O' n3 E - *error* croerr)
8 U, y% p( c) d& F: T* C - (setq cm (getvar "cmdecho"))
- ]' }( H u+ U1 ~9 ~ - (setvar "cmdecho" 0)# w$ v2 T. X$ e8 H% K
- (setq loop t)
6 m) S o0 i6 Y% C - (while (not (setq ss1 (ssget)))) W7 R: ^( k, u" y1 R
- (initget 1 "Multiple")# D1 u7 D$ d, a# v8 o" u
- (setq bp (getpoint "\nBase point or displacement>/Multiple: "))
1 F" O# v- C+ V! u - (if (= bp "Multiple")
- i8 s7 _7 a! [! x# T0 g - (progn2 i. b( b6 g% F7 p) l2 a) E
- (setq bp (getpoint "\nBase point: "))- p6 F; ~# T* }5 ~" Q- y
- (setq mult t)& G$ @% C% H' [* C) r" @
- )
: L3 V8 a( X4 o0 }" T! u - )
: X4 S* B% L9 k1 R - (while loop" k# Y& M" r( Y- `, j
- (setq loop mult)& }3 i7 V4 x) U6 L; k
- (setq lent (lastent))& a( l; \5 M6 H f7 n
- (command ".copy" ss1 "" bp bp)
+ R t* i6 b9 @ - (setq ss2 (lss lent))) u0 R+ g$ R6 E. X! k( I% i- k' b
- (setq lp1 (getvar "lastpoint"))- E7 H8 L0 n9 B6 B z1 ~4 _
- (prompt "\nSecond point of displacement: ")
. T) ]2 Z. ^" G# t. q: \9 n! B! Z - (command ".move" ss2 "" bp pause)5 y5 A: L1 w6 z5 c
- (setq lp2 (getvar "lastpoint"))
" l' M" @4 L% A2 f9 a - (redss ss1)
) x0 `9 @* C, }* C4 \+ v' l; ~ - (if (and (not mult)/ V* h3 s3 ~. W* ^2 C/ k' [
- (= (distance lp1 lp2) 0)
& S& U3 P+ e) [- @7 r& G5 q: | - )
, \3 ?' _8 [4 y; ~ - (setq lp2 (getpoint "\nRotation Point: "))
# d6 n$ O6 ^( B. H; V% p - )
1 T, Q; J8 A# f; h- \0 W* }# R - (if mult
, c( h* e) l- Y8 u" i3 G - (prompt "\nRotation angle ")
7 G% a" F# b f- }. \ - (prompt "\nReference/<Rotation angle>: ")3 Z4 |; U; B8 I5 g* c: M
- )
( T+ f# p8 D* B) e! } j4 l - (command ".rotate" ss2 "" lp2 pause)
: Z( Y0 B) G5 }1 \1 u1 i - )/ K# X' L* ]/ @8 r9 K, R, R
- (setvar "CMDECHO" cm)/ O# l3 W6 N, N
- (setq *error* olderr)7 H [+ Y9 t# \6 C
- (princ)( {; N r: I5 u/ c" X8 |0 i
- )& p9 b/ L: w! z7 i! C$ w
- (princ)0 Z% P( d# W S0 a7 w7 ]
- (defun croerr (s) 7 F5 h8 ^) G" Q+ h3 N! Q
- (if (/= s "Function cancelled")
' \. s8 L5 n& {1 O# t$ x* y - (princ (strcat "\nError: " s))' o; \5 ~. F) h y* @5 b5 ]
- )
" b6 |( T' U( I2 x& i/ o - (setq S nil)5 U5 e: T0 S5 C( ?; \6 \
- (setvar "CMDECHO" cm)5 Y# N0 s. e6 }' j# x
- (setq *error* olderr)6 M9 x2 R5 e1 J, h- k% E* o; U
- (princ)
8 g' K/ J* s0 k. E/ [2 M - )
7 }7 g0 {: }* z - (defun lastent (/ a b)
6 _9 o- b+ ~7 C% m) S, W- @9 f - (if (setq a (entlast))
7 F- L" c9 B7 m" M7 f/ K* l7 S0 b - (while (setq b (entnext a))
0 G0 h) h$ s0 {2 A6 B( x# \# m3 _5 K - (setq a b)5 c" [/ \% b' Q6 o2 ]! K2 N
- )5 w+ }( p+ I& J3 ^
- )5 ]5 M! \# w. b8 F
- a# o# @! v% f5 q9 E% d" x
- )3 S/ ^1 ~ r1 n* ~4 {
- (defun redss (ss / en i)
2 u& V! Q8 j- \" X - (setq i 0)
6 T2 ~& P, ~/ G8 c' u/ _ - (while (setq en (ssname ss i))0 w) y% y6 ?) r$ i% e6 @+ ^2 P1 b
- (redraw en 1)0 W! Q* G, u W3 P- Y
- (setq i (1+ i))
8 l! J+ k9 R) ~* `. F3 O' p - )# D ^4 m/ X( O' l3 A
- )
3 `4 L- K) f n t' y. T2 m - (defun lss (en / sels ed)
! D3 D- x' B" Z - (setq sels (ssadd))8 H7 b( @: Q/ K$ F
- (while (/= en nil) Y2 M5 l) d5 m
- (if (setq en (entnext en)) (setq ed (entget en)))
" N* M1 G5 v" }. T; e( \6 L5 b - (if (/= en nil) (setq sels (ssadd en sels)))
: d0 x) }4 X {/ I* J- @3 @ - (if (or (= (cdr (assoc 0 ed)) "Polyline")
+ Y* d8 H# f m! b% S9 x7 ^2 ^ - (= (cdr (assoc 0 ed)) "Insert")
6 J+ F1 S# Q0 c4 c9 | - )6 a9 g" R* m# {5 q) E
- (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))" S4 [ i2 A6 J# G/ Y9 E$ C; d
- )
6 b+ ?2 ~9 y( i: F - )
3 V0 J- z' |& D) f! o - sels, u0 r4 l1 f; `
- )
: E! E( |9 q1 N9 o+ x2 v' r# \
& \* f9 y% \4 j" w0 D# t- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================3 w0 [/ s1 A4 ^) X& M4 \
1 m+ |) c7 m; Y; z9 R( t- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))4 z* Y' m2 r5 p9 M+ h8 J. u
- (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" ""))
3 B3 s" M8 D2 i4 a; s2 ~( P9 {/ X - (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))
7 q1 _+ R4 J" T7 `' D# A7 } - (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))& U( ?5 v8 B5 I& E% T$ ^0 C/ b3 i
- (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" "")), `! B# K9 N9 l; S' o
- (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))) C: H- m; o& ?( A
- (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))
0 L9 h5 b; T! x4 l - (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))
1 \: M0 Q5 s; Y# O+ U1 `/ | - (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" ""))
) v V6 M' o# G. S8 `5 }3 k - (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))* n) _; u) p ^ s# \1 {/ x( _3 l, s" s2 ~
- (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))
) B+ k; p+ b* G% n# J. w - (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))- r* F9 R. l! i+ n* I9 y( h
- (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))" t0 Q' O1 \* c* s
- (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))- E$ v. u- H- H0 C5 O* X% N
- (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))% e: m7 _) [2 I- o* z6 W' }
- (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" ""))
9 b, i) j2 g1 L4 q8 u* u3 Q5 Y - (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" ""))
; q# U# T1 R. _! z% w1 x4 E - (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))& D5 U6 m+ l: n2 K9 ?
- (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))
6 f9 p$ z5 N3 G6 M. h - * l+ R: R! `( d* K
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
9 i# x0 p6 ?/ }8 v* j' Y8 ~: x - : n' P7 S: c6 {* ~6 f! ?
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============5 R5 p1 Q) \4 Z3 R% `9 `
% n1 P5 y1 o+ V _- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")
' Z# y" l; B R' }6 g t. k - (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")
% Q7 Z4 d& }0 q6 N' K6 V. m - : X$ v, A; @) P! {% O
- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===7 p1 I G' V3 A3 `+ u* g
- / C: \: X5 b0 q- h* q
- ;(DEFUN C:netxuatanh ()! d3 B* a. }; O4 w' S \2 |8 i
- (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" "": V' T0 n) W+ w4 e
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""
' N$ n8 @9 z$ X c8 a8 r& U - "M" "MANH" "C" "9" "" "Lw" "0.5" ""
4 q% r e0 u# T3 [" Z( g" j - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""; v9 T- m K n
- "M" "DIM" "C" "1" "" "Lw" "0.6" ""! R* \7 A4 }2 }! }* c1 B
- "M" "THAY" "C" "7" "" "Lw" "0.7" ""
3 P2 G. w6 g$ B% V# W @ - "M" "NOITHAT" "C" "3" "" "Lw" "0.5" ""
* A9 j) Y% ?5 [3 P3 s - "M" "HATCH" "C" "5" "" "Lw" "0.35" ""5 y8 K9 K: a) |9 l# M/ U, m
- "M" "COT" "C" "2" "" "Lw" "2" ""
8 h, s( j2 w% @4 ?8 L0 U - "M" "Defpoints" "C" "7" ""% e0 q, p/ t) e( Y9 l; S% {
- "M" "0" "C" "3" "" "Lw" "0.5" ""
1 o) o/ {1 c- ^9 W8 A - ; "M" "1" "C" "1" "" "Lw" "0.5" ""
' \0 Z' d2 A; ~) s" s9 `' n- G - ; "M" "2" "C" "31" "" "Lw" "0.5" """ M, U' I4 g7 G, q0 N" l' t
- ; "M" "3" "C" "8" "" "Lw" "0.35" ""
: o0 x! R! X1 \: f - ; "M" "4" "C" "4" "" "Lw" "0.8" ""
' E' V, ?( j; o& A1 Q - ; "M" "6" "C" "6" "" "Lw" "0.35" "". W) E. f+ M. K4 R' k1 o6 U
- ; "M" "7" "C" "7" "" "Lw" "0.4" ""
' L F) o1 p! C( l" A! ~ - ; "M" "8" "C" "8" "" "Lw" "0.35" ""
) S# h- C0 X* W2 w/ ?% K6 l - "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" ""0 C2 l; @/ c+ g1 |3 J5 X( f* k8 I
- "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""
' x# A3 z1 }* ?6 x! U/ I7 ` - "M" "KE" "C" "8" "" "Lw" "0.3" ""
! _% J3 Q( `9 D8 ]1 j$ s Y - "M" "KT" "C" "9" "" "Lw" "0.35" "". }& e" i* `. G1 a
- "M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""
. c. D' t5 ~/ }* }! F - "M" "NETMANH" "C" "43" "" "Lw" "0.5" ""/ m( H' d% }, D$ J- d% ~# Q
- "M" "TBD" "C" "2" "" "Lw" "0.8" ""# I. ~5 ~ C3 {8 y2 N
- "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" "": N2 p6 d, X+ O, ?
- "M" "TEXTVN" "C" "132" "" "Lw" "0.4" ""
0 b/ c9 k% I8 s' M - "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""
( t1 {1 I) `$ P) |0 u, N" S6 y - "M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""( B# ~+ N3 i2 c, r# j$ Y, F
- "M" "CUA" "C" "6" "" "Lw" "0.5" ""
4 {+ T: J4 n) f1 t - "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""
: Z8 J1 \8 ^- }$ }7 [ - ( r c" K; P. u1 @" `
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===
9 O: W+ @ \3 F - 6 _1 \- S0 ?8 G, [5 U
- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" ""
: H: w5 J" U6 z, n# s - "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""9 ?) l* M. g2 g/ S( X H/ A3 V
- "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""% @5 G9 V2 h$ u# e
- ; "M" "250" "C" "250" "" "Lw" "0.35" ""
' d' q! z5 E3 E) I0 n1 R# H1 J! ? - "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""
3 U4 Z, B1 e1 M) ^/ p6 Y) S - "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" )
! e8 a) p+ G0 `9 g6 c: M" k2 n - + b1 @2 a/ ^! s/ Y3 O$ E
- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======
! ~" w) q& O- h' Y$ ^ - ;===================================30|04|2024==============================- `7 Y6 Z3 Y2 ~8 |, _9 D
- # z7 U7 @3 P6 x- A x
- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )
3 z3 w8 l% s$ i2 s5 d. J - (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" ) |& i R. J' _2 S( i5 R) d
- (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" ): I9 W! M2 g4 F* c2 Z
- (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" )
9 m9 d" F: O1 d - (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" )
0 J7 ?8 u! D- o0 j3 ]1 J - (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" )
; I$ ^ @. Z3 T" p6 ~0 J" ^ - (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" )
# n, a9 ]" A! }) B" e' ]0 { - (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" ); e; K+ v+ S c4 S4 J8 i: o
- (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" )
9 o y/ R& N0 J - (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ)
9 w' j& A ^' p! z5 G5 o9 ^
8 r) {% V8 Q9 S d' ] A. ^- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=3 a# ] i+ V8 p' z2 @
- ;===================================17|10|2024===================================5 n. u. l' `1 S6 n
- & [, Z! r9 b$ }$ N0 l# a
- (Command "DIMTXSTY" "ROMANT-DIM" )1 E& s8 p9 e( }) f+ t- q* }& p
- (Command "DIMBLK" "" "Closed" )/ n* a7 F7 ?- w4 C0 C+ \( l! X* q f
* @) l0 i6 x$ D j% X( z* P- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
" E2 `" p8 N4 t5 o - ;===================================17|10|2024===================================
" Z+ ^3 ]! ~( H1 J( z6 n7 P# W( j - / o: N5 Z) K& M* U, B; C0 g/ G8 h4 K
- ;(Command "-units" "2" "8" "1" "8" "" "N")
- \1 v! n) z) A0 q/ V - (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ)- p' S) q7 u0 O4 M4 d
2 W6 ~) T9 F& A, O- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
) s5 d+ `, c+ ~; [8 L' h - ;===================================17|10|2024===================================
* p( x5 o8 F% E0 V/ Q9 S+ }7 Q1 Y - 2 t8 ]1 U/ d4 R( ?
- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===== b/ d, _7 g4 Y8 T, U
- % K7 S( ?0 {* t+ ]3 x g" `, E; n- g. W
- ;======================== DAT NET IN & TI LE BAN VE =============================- z* i6 c! G+ I) n* r- n ~
) s v, T9 f9 N4 Q' l) u- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================' T7 X+ J. d3 @6 D8 z# s P
- ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================* b4 Y9 A. j8 S8 x/ B6 Q: x/ a9 k
- ;=============================11|07|2025==============================
; t/ p0 s6 e$ I' Y- Y. G8 T - ;Ti Le Ban Ve - 1 : 100
( b" P) ?# J* Y# K - (Defun c:kta4 ()
! s4 z S, q! l$ [; M: O+ X, a - (setq mv_sc 100);Ti le ban ve
6 C5 x5 ^4 F; s - (setq x4 297)
5 L7 f, {) j; ^8 X7 S# c - (setq y4 210)' Z* {$ b6 d+ E
- (setq x4 (* mv_sc x4)
+ W! a7 O1 N" x - y4 (* mv_sc y4) )' e. J$ z+ ?7 \" H
- (command + X$ O2 e Z8 Y+ i6 p
- "LIMITS" "0,0" (list x4 y4)6 b$ j2 F% R+ e4 J. K y6 f
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"% k9 H- t2 e6 d
- ;Khung CHU NHAT Chinh
5 U$ @" B& e8 y* d p - "RECTANG" "500,500" "@28700,20000"
7 K. I, \' Z" Z5 a) u& C. z( o - "RECTANG" "700,700" "@28300,19600"+ _ K& V# O% ~+ D/ g5 T
- ;Khung Ten Chung4 I! ]* G5 N+ _* b6 I
- "RECTANG" "700,700" "@8000,1250", R& y) U }! i2 z9 F
- "RECTANG" "700,700" "@17300,2500"
% J. {* I8 k# Q0 t# \ - ;Ten Ban Ve
x0 Y2 U5 K2 L( J - "RECTANG" "18000,700" "@11000,1250"
: G+ z- y: q) \6 n a - "RECTANG" "18000,700" "@11000,2500"
: m4 K5 D) ]$ O - ;Khung Ti Le + Ngay Thang Nam5 s& ]/ v1 l( i& O4 B9 W( N! V. W
- "RECTANG" "22500,700" "@2000,2500") F( I8 o4 R9 T( {
- ;Khung CHU TRI
& v( j. H* n7 K# _# b6 J) o3 Q - "RECTANG" "8700,700" "@3800,2500"
' d( p0 j1 H, P - "ZOOM" "_a" ))
' |5 Y* J1 L" n2 S9 |* H+ B) m - ;=====================================================================
5 Y' d4 V2 c# t; t - ;Ti Le Ban Ve - 1 : 100
y6 Y- B+ y/ b- T7 G( p$ v - (Defun c:kt4a ()
! k T( G% i m& Z! Z; Z - (setq mv_sc 100);Ti le ban ve3 d9 K0 e. m6 B" n! f1 y
- (setq x4 297)
8 o& V: K2 Z5 o5 K7 C q' F* I- o7 s7 O - (setq y4 210)
% c1 s, S8 d$ P/ s- ?' d - (setq x4 (* mv_sc x4) ( h/ Z# ]& I, x. G
- y4 (* mv_sc y4) )
; I& J5 O* J$ _5 g( u1 ^( ? - (command 9 L i2 }% C6 \% q. W% r6 y
- "LIMITS" "0,0" (list x4 y4)% t( e$ I0 ~% F/ V* l
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
5 c4 J) S( Q3 [+ M - ;Khung CHU NHAT Chinh 1 E2 h! ^3 @! J `4 e( s
- "RECTANG" "2000,500" "@27200,20000": J4 [, }( r" y% P
- "RECTANG" "2200,700" "@26800,19600". r7 ^5 m* a H2 M
- ;Khung Ten Chung
! @9 T7 t4 [! t' ` - "RECTANG" "2200,700" "@6500,1250"
w H: I4 }2 o7 g2 Y& l - "RECTANG" "2200,700" "@15800,2500"
4 X+ D i* B0 X1 p; Z7 c - ;Ten Ban Ve
7 C9 U6 j0 @/ s- q+ d, T - "RECTANG" "18000,700" "@11000,1250": P$ D6 }! E9 Z9 c
- "RECTANG" "18000,700" "@11000,2500"
# b$ c! v9 _5 h _: a A - ;Khung Ti Le + Ngay Thang Nam
9 u6 A9 Y# h5 Q$ [" I p8 }( _ - "RECTANG" "22500,700" "@2000,2500"
# H4 L3 J0 U8 j- v; v - ;Khung CHU TRI
{! u" R! C7 K$ |+ }7 W - "RECTANG" "8700,700" "@3800,2500"9 o* y2 K' f+ B. y
- "ZOOM" "_a" ))
/ Z, |( f R) q+ w - 6 J) q( W- g! v% s% U. K0 l
- ;;; ============================GHI CHU Khung Ten========================
% A) ?. G& C- R: k: Q/ L4 \ - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
$ w& Y3 M# x4 E7 }) g+ x - ;;; =======================Thuong Dung Font Romant.vnh===================9 N3 Y. J5 L; g. u5 Y
; j; H* b. U0 X+ W! n8 Z. }- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)1 F) t5 g- C! N7 H& y. |$ Q
- (setq oer *error* *error* err2)+ g1 N5 R7 S. b$ ?7 ~! I0 Y. p9 y8 ^* |
- (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")
' f; e r# L1 |5 F* n - (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). "))9 U$ g; {0 c4 m- K5 q
- (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))
0 F3 }5 q" t* z* ?3 T/ I+ f - (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))/ w w0 x, A% z
- (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))" U9 B \% e& o" \5 d% G( V
- (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))
( k- r$ F. B/ |9 v4 ? - (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))
, y; ~# C8 Z" h0 A( s6 s - (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))* o1 D6 v) f% ^5 {' _/ M
- (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :"))% t, j0 x6 q M% k+ @% N0 {% B7 H
- (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))" f& w3 e4 V& b5 E
- (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :"))4 b% C: B+ D+ p( E0 x; x
- (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :"))
1 x. @# T5 L* D& y& C - (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))) J, |# x* o k n" N
- (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))
- |) l) l1 Q$ z9 l - (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))
7 V; M% I: `8 N* j - (setq pta (getpoint% Z0 I q8 @- h, l
- "\nPick first corner. : "))7 N: S/ R4 f! `% c7 G7 ^
- (setq ptb (getcorner pta1 b, m; X, E; M4 ~; B T
- "\nPick second corner. : "))
, D# N% ~7 \! v" N - (setq ptc (list (car ptb)(cadr pta))) M2 B$ b* s- J4 {: K
- (setq ptd (list (car pta)(cadr ptb)))
# T! F8 h3 T8 _ - (setq ang (angle pta ptb))
$ ^/ p7 P) P. i4 ~ - (setq d1 (/(distance pta ptb) 2))* y; Q, f: A9 X+ C; b
- (setq cp (polar pta (- ang (dtr 0)) d1))( Q- f7 K5 S" t
- (setq X (distance pta ptc)). i$ o0 r6 [$ H$ [! z
- (setq Y (distance pta ptd)). ]& J8 I. m6 s
- (setq X1 (rtos x 2 1))
2 z2 j' c6 P: G! v3 E0 } - (setq Y1 (rtos y 2 1))
- ^3 U1 G) m/ m! Y3 t; S; ^ - (setq rmsz (strcat "(" X1 " x " Y1 ")"))9 ~' M- t3 Z0 J: J( [" f- C
- (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
: }8 w$ a: s/ F: O - (defun dtr (angg)9 y% Q& |8 X' {8 _
- (* pi (/ angg 180.0)))
! U+ }/ D8 s! n% r - : ^7 d% V5 X" w6 N0 |7 L
- ;=====================================================================% [; {+ W+ g7 y+ a. M) j
- ;==========================DAT KHO GIAY BAN VE - KIEU 1========================
! c; c/ j* t% k( ^3 L - ;=====================================================================
2 M# {9 Z5 p% b0 |/ @ - / ?5 H( O% w8 K
- (Defun c:a6 ()
, s7 I0 d/ q( A0 D4 p/ O0 F: X - (setq mv_sc 100);Ti le ban ve
2 i% U* G. t1 f; w8 g; J k - (setq x4 74.25)
) K& i- _. l% p: Z/ u% ` - (setq y4 52.5)
; U* y8 T; b$ V& m8 E; x7 p - (setq x4 (* mv_sc x4) 9 ^: L+ V- b6 y4 V$ {
- y4 (* mv_sc y4) )
4 N. X# x7 T. R8 ~- y: x- e' T - (command 0 ^* Q+ X* Y' `
- "LIMITS" "0,0" (list x4 y4)
# [1 d3 [$ M" s) ^+ B% o/ } - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C": d2 _2 Y! s1 o$ v2 p, s
- "RECTANG" "125,125" "@7175,5000"6 B% a# U. |- \
- "RECTANG" "175,175" "@7075,4900"7 u+ w) f$ x& y) L) i5 V
- "ZOOM" "_a" ))+ t2 u* M$ M1 y2 S1 h' I- s
- ;=====================================================================- [! l/ I+ K1 n/ P
- (Defun c:a5 ()7 B: G; ^7 }& y! @( L+ ~
- (setq mv_sc 100);Ti le ban ve
B8 m% X; A* i0 [9 _3 Y - (setq x4 147.5)% T& I+ H# k* N, D+ b/ o$ G
- (setq y4 104)* X& B o1 s3 r! V4 \% v
- (setq x4 (* mv_sc x4)
5 N- y: t3 a M: ?! Z - y4 (* mv_sc y4) )$ z' z* Y4 X7 @
- (command
3 ?! K9 g4 s$ L% o; X - "LIMITS" "0,0" (list x4 y4)6 Z: R! D& O& q
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
9 N1 ~1 \2 Z C& ~ - "RECTANG" "250,250" "@14350,10000"
( W; ~" a. U, G: `4 { B. {: Z" k" G! t - "RECTANG" "350,350" "@14150,9800"
; D5 Q! ~$ d s$ V/ [ - "ZOOM" "_a" )): l* ^, n7 [% O/ D) A6 d
- ;=====================================================================( j: e; ?) r, B( Y7 _) _+ }
- (Defun c:a4 ()
) n, b% Z" o* S - (setq mv_sc 100);Ti le ban ve
& f. H# h" M3 M - (setq x4 297)1 `8 y4 D* f8 Z7 u6 i! e/ }
- (setq y4 210)
3 A; s3 x P* U6 _' m! l2 p - (setq x4 (* mv_sc x4)
# @ q/ Z- b6 P0 G3 |3 s - y4 (* mv_sc y4) )4 f2 T9 d! U" S6 B! P
- (command ' v$ j7 u$ P# I& B0 G
- "LIMITS" "0,0" (list x4 y4)
+ ~# @, T) D9 o! X8 [$ s) S6 A - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
! a2 p; ]& z" N, p7 n - "RECTANG" "500,500" "@28700,20000"# s' \) o/ W0 o5 S
- "RECTANG" "700,700" "@28300,19600"
. l3 ]7 E6 q3 N9 r% ^, \# ~9 {+ T - "ZOOM" "_a" ))
2 Q3 W7 o/ T1 G+ S: Q% v- P - ;=====================================================================% W5 j0 q3 ]$ ?6 i& N
- (Defun c:a3 ()& b' M! j! t* n* ~
- (setq mv_sc 100)
* r7 h9 W9 O- a# } - (setq x3 420)
, X6 V2 C( W- [$ ?9 h - (setq y3 297)
/ `5 i" p& f% ^ X6 g' k% ?: Z - (setq x3 (* mv_sc x3)
x$ P2 I/ Y7 J1 i ^1 x/ d3 l% B - y3 (* mv_sc y3) )
3 ~7 N$ Q' J: H/ r- ? - (command ( t" H ? I+ n/ M, \8 I9 m
- "LIMITS" "0,0" (list x3 y3). x& E7 Z- s- k( e9 x
- "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"" |' ?5 {7 {2 E5 `0 _7 d# ]" Q
- "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"+ {+ `. D% L) Q
- "RECTANG" "990,990" "@40024.28571429,27720"! b# H0 \: ?! Y; ]
- "ZOOM" "_a" ))# v- M( ^9 v& }) Z
- ;===================================================================== \+ x5 z, }+ L. Q3 q2 n$ O
- (Defun c:a2 ()+ C/ Q" G1 R8 g
- (setq mv_sc 100)/ @! x+ u) e* B: T6 |+ x6 d
- (setq x2 594)) x& U3 j( J$ j- N- u
- (setq y2 420): Z, {* W: T$ P
- (setq x2 (* mv_sc x2)
$ Y( H0 M! l# N- S4 T - y2 (* mv_sc y2) )9 L0 d: ~0 \ g5 |' O+ P
- (command 6 Z; `, D* @3 ?/ H s8 h5 x
- "LIMITS" "0,0" (list x2 y2)
" }# I) p9 Y! g) r6 p. z - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
" Y4 ?0 n$ S6 }9 O6 j: L9 ? - "RECTANG" "1000,1000" "@57400,40000"
& o; `$ i0 h+ y% b G4 Y. o9 G6 Z" b) Q - "RECTANG" "1400,1400" "@56600,39200"+ g6 C# A& @: [) ]6 E: {
- "ZOOM" "_a" ))
8 G7 s% _4 T9 K5 s- t5 `2 ?9 p( B3 x - ;=====================================================================
z G) k) E# l6 T - (Defun c:a1 ()
# t9 `, ^+ x- | g2 C - (setq mv_sc 100)4 g8 D% ~) Z/ Y9 w1 A
- (setq x1 840)
$ b6 k0 K* K# H! \ - (setq y1 594)
/ J" O4 M7 k4 [4 V4 l {- c6 n - (setq x1 (* mv_sc x1) + g( K4 ]. f, a9 k) C
- y1 (* mv_sc y1) )- A8 M- F d9 G4 l) q5 k+ x
- (command 9 e# l, a7 `( V) [$ J; `
- "LIMITS" "0,0" (list x1 y1)3 H& _9 q; E- X2 F, x- b; k( y
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"2 W1 Z6 R- l- r2 ]/ a, H% d
- "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"! K( b# l& C {/ A8 W6 i8 ^0 L
- "RECTANG" "1980,1980" "@80048.57142857,55440". F. Q: Q4 D1 \# B/ n" l# V
- "ZOOM" "_a" ))2 W. {2 d8 m/ |7 P$ F& y5 j
- ;=====================================================================
, r: s& J% o C- H - (Defun c:a0 ()& {/ Z n4 E1 Q! Y# k
- (setq mv_sc 100)
/ @& `+ P* X0 M! r - (setq x0 1188). X4 D( H. ] W' p2 s' w( T* _
- (setq y0 840)
2 Z* a# O# S4 b4 R, Q* t5 m - (setq x0 (* mv_sc x0) 3 B5 I! ?* L- d% a/ J+ p
- y0 (* mv_sc y0) )
5 _" L5 \' T8 b K3 q- s - (command + z# \9 v8 f8 R- \- I" P; D
- "LIMITS" "0,0" (list x0 y0)
8 l8 n0 M% H$ @# [ - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
$ `! ?% X: b+ C& u& {. C. g - "RECTANG" "2000,2000" "@114800,80000"1 N8 _ Y) P8 @: c5 }+ `5 i
- "RECTANG" "2800,2800" "@113200,78400"
2 O, q2 G t) P+ n" K. _) Y - "ZOOM" "_a" ))- ~. P, j) g! o3 I5 [. l
: C8 { ~, Z+ L- ;=====================================================================
1 d& G# z0 @' J) d. s7 K - ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================
5 {1 f* Q9 N# o9 J. B. w - ;=====================================================================& M3 A9 R+ c) }6 K+ b9 h" y' _
) r0 m* C$ @3 g- (Defun c:6a ()/ Y5 j' G t* U0 [3 R6 t
- (setq mv_sc 100);Ti le ban ve
" h, e6 F7 |- b* P7 F+ q( [$ l - (setq x4 74.25)
( @* `- a! K( R" b7 R' G7 T - (setq y4 52.5)
/ ` d& P0 g+ U - (setq x4 (* mv_sc x4)
6 \& h2 ^3 D8 P! ]$ m, s8 J' i - y4 (* mv_sc y4) )- V0 r5 }. p' |- u1 p( U& j: ]7 C
- (command 7 e9 {3 i+ w, i9 `( {# F
- "LIMITS" "0,0" (list x4 y4)8 {1 H5 Z5 C$ v6 O# m! C
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"; @. d; H- ^: i# ^
- "RECTANG" "505,125" "@6800,5000"
9 t0 y) M+ ?$ T A6 T$ u - "RECTANG" "555,175" "@6700,4900"; z- M* x5 t& _0 Z. }
- "ZOOM" "_a" ))+ x& k4 Q* R8 |- H# p, w! h
- ;=====================================================================5 K- `5 [! ` f0 f' O; N' q6 Z
- (Defun c:5a ()
5 q2 T, t b6 {& _6 N( J - (setq mv_sc 100);Ti le ban ve
1 m) K2 k" ?# _5 I3 R/ y3 L - (setq x4 148.5)$ P* ?- D. N& f! j! J8 G9 I4 c/ F
- (setq y4 105)- X M6 B2 @" I, H
- (setq x4 (* mv_sc x4) + k) X, F: p5 t
- y4 (* mv_sc y4) )) d5 s# \& M/ o: F$ {6 m6 v
- (command * @3 V) M" p8 h, f
- "LIMITS" "0,0" (list x4 y4)8 I% J, C$ L% v6 Y8 B4 R
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
+ u! ]: c0 l5 ]+ L6 v/ J - "RECTANG" "1000,250" "@13600,10000"+ ?$ o; T9 I* ]/ B! j
- "RECTANG" "1100,350" "@13400,9800"3 S* s. ~( _2 c; y5 \
- "ZOOM" "_a" ))
& T* h' O8 ~+ \ - ;=====================================================================, b3 _+ G% I) B% l1 g* z5 |3 D' w6 b
- (Defun c:4a ()
& B, N9 a6 P! }. n - (setq mv_sc 100);Ti le ban ve4 F" ` s5 {9 a: ~( S) b
- (setq x4 297)
5 b/ t1 p+ B. K - (setq y4 210)
3 \: A0 T d, e1 d) Z - (setq x4 (* mv_sc x4)
1 j1 u! e- t& @' x& l! B - y4 (* mv_sc y4) )# r. H( u1 @! j- z
- (command % M, h) G! U' { O! ~) k- ? t! a$ `
- "LIMITS" "0,0" (list x4 y4)
8 T7 `! J. f4 @% b/ z - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
4 h7 Y7 }6 a: Q+ S! H; u; V - "RECTANG" "2000,500" "@27200,20000"* E) j. v. I' Y* ?4 V2 `& c4 m( q
- "RECTANG" "2200,700" "@26800,19600"
5 B" E! W! d8 G- i2 S& b - "ZOOM" "_a" ))
3 N! x3 m! y5 I8 j' h f - ;===================================================================== ?! d/ P; |8 p/ I( f
- (Defun c:3a ()
) E; J! I: x% X) Y; o - (setq mv_sc 100)
, |9 E8 h3 q& \0 x- s- z# E; e8 ` - (setq x3 420.0428571429)
7 P. [' a4 D# ` - (setq y3 297)
) l4 I3 c: d/ N9 C: S - (setq x3 (* mv_sc x3) , P, q4 {& ~8 W8 q9 k0 {! M6 K# y
- y3 (* mv_sc y3) )& k. A% V# }& s5 w/ E0 n* `6 i
- (command
6 v/ {, h* H/ T# D9 S - "LIMITS" "0,0" (list x3 y3)
9 x# M! r8 z+ K4 F# M - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
: Y" p6 b3 ]0 e- I( A- ~6 T - "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"
. a- z* k9 G, i; z9 h - "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"9 @: _6 f+ M! P a) [ G
- "ZOOM" "_a" ))
" f. v+ p3 s# i- `& f+ Q - ;=====================================================================* F1 S0 }5 B" b5 D x+ ?8 I
- (Defun c:2a ()
: s! Y3 F$ n9 B; W! {' E: Q8 K - (setq mv_sc 100)( x1 A9 X f; X2 B$ z
- (setq x2 594)% }+ F; I6 j8 l
- (setq y2 420)
4 w$ Q1 U) Q- T3 g - (setq x2 (* mv_sc x2) " d; R1 O; S( H0 ?2 O) z7 Z$ _
- y2 (* mv_sc y2) )* s% j* p% n9 n% h" h( V# F
- (command 2 N8 M' u7 z& ?, H# g
- "LIMITS" "0,0" (list x2 y2)
4 g7 I! ]5 G; E! K - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
0 N0 w# W5 @, \, ] - "RECTANG" "4000,1000" "@54400,40000", a( W" r1 V$ a' N
- "RECTANG" "4400,1400" "@53600,39200") i7 u* g( O/ n9 |+ |4 ]
- "ZOOM" "_a" ))
/ \3 ^' [1 ?+ b; A - ;=====================================================================8 U) j, w% X! O3 b* }
- (Defun c:1a ()
4 }% n2 O9 \! j3 q* g - (setq mv_sc 100)
* x( O0 P' h$ H. L# q- G - (setq x1 840.0857142857). ?+ y1 k; t- Z/ W# r0 h
- (setq y1 594)
8 D6 w6 \3 y% R - (setq x1 (* mv_sc x1)
/ e4 H( W+ B4 d$ V6 v, N8 Q, d - y1 (* mv_sc y1) ) _* J! z: Z) L4 S5 m4 L6 p$ S
- (command
6 O7 e/ v# }9 W6 [7 i - "LIMITS" "0,0" (list x1 y1)2 S7 i) Q: B! l! s2 ?
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
4 V- e0 e' b2 O" h5 R7 Q( E - "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"
+ q1 I0 q. ~, ?6 d. {7 k: b - "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"! a {( M8 G B9 g
- "ZOOM" "_a" ))
$ n! j% m+ T5 V" g$ z - ;=====================================================================
: r+ a/ Q( d4 f R; X( S3 g - (Defun c:0a ()/ q* M. G. W( P4 M. I# K
- (setq mv_sc 100)- X! w7 P& [8 `/ k" W
- (setq x0 1188)
3 T4 F: i! q) \3 O3 \! r - (setq y0 840)9 Q9 x* r+ ?/ R3 F6 P5 S! ^8 N
- (setq x0 (* mv_sc x0) 0 l; o* }: x3 T$ }
- y0 (* mv_sc y0) )4 J: A* F. G. k" d
- (command
* S0 _: i( M" f5 w9 R - "LIMITS" "0,0" (list x0 y0)
c- C% T* T; V) L; d+ ? - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"* S; f5 ?7 ~6 \ ^: D% d
- "RECTANG" "8000,2000" "@108800,80000"( H; ], E% l3 D: T* C
- "RECTANG" "8800,2800" "@107200,78400"5 s( e0 J% f2 I" N: M0 R
- "ZOOM" "_a" ))5 X: o/ x$ C: T. i4 }* x* Y
# N$ @; t& M' _- ;=====================================================================- f7 {5 Y6 I* g! E: k
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================+ B3 {7 O: D. S8 K( k: u# d! @: P
- ;=====================================================================$ }# k, n! R; f
- (defun c:khogiay (/ oldlst a b c d e f g h kho TL) j- {( O$ r7 [( J& T1 Z
- (command "undo" "be")6 ?3 }) B+ Z. ~* H( i7 _
- (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))
8 G( W+ H, M* g Q. U0 a; V - (setvar "CMDECHO" 0), k; @2 l% U/ R" M e) o
- (setq a (getpoint "\n chon diem chen :")). M; }$ R9 q6 `* d% j( `# d# p- L
- (if (not TL) (setq TL 1.00))
0 d9 {& x& _1 i: W - (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))+ o1 q" y! }0 s7 z8 o
- (if TL1 (setq TL TL1))6 j; |& \5 Q6 \0 | y6 a/ K; p H t
- (setvar "osmode" 0)% h! q" n9 n: f
- (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" ""))( K, h" ]( T! l
- (initget "0 1 2 3 4")
% {+ m8 V6 l* F. h( a6 b; [ G* t9 a - (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))
* q' K8 l- U4 u5 H - (if (= kho "0")
, t6 p" l0 m- h6 l* I( W - (progn
9 \* W) I( Z3 X! i - (setq b (polar a 0 (* TL 1189)))
7 k" d( _+ H' c, L0 A( q - (setq c (polar b (/ pi 2) (* TL 841)))
% a6 r! i. w7 q - (setq d (polar a (/ pi 2) (* TL 841))) N* W1 J7 P+ Y$ K% d. r. ]
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))% B1 u, J# n9 D( i9 `
- (setq f (polar e 0 (- (* TL 1189) (* TL 24))))' S" \* c. Y$ B" j9 A; A& H8 `" U
- (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))+ z4 u9 Q7 R* w" @
- (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24))))
$ z" c3 J+ ~( \7 ~ - (command "Pline" e f g h "c") ( P9 \3 U( ]$ `* w! [& u% D. k
- (command "change" "last" "" "properties" "layer" "0" "")- z) c6 }: l8 m+ l Y6 d8 o8 u
- (setvar "cecolor" "4")
0 ~# w* q; H9 J - (command "Pline" a b c d "c")$ p' g! }. ~7 `
- (command "change" "last" "" "properties" "layer" "defpoints" ""))) % b. @9 a/ l2 v, k" g! ~8 L( P; ?
- (if (= kho "1")
$ p$ n2 Z/ c. u3 t1 k! X2 ^ - (progn4 Q* T" a/ g4 O- J
- (setq b (polar a 0 (* TL 841)))5 w7 L4 D# v# P. O# s2 [ t
- (setq c (polar b (/ pi 2) (* TL 594))) n2 ^% D7 X; x s0 |( ~; I
- (setq d (polar a (/ pi 2) (* TL 594)))4 W( D2 }1 T3 G8 I% |! G* ^, l
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))" i3 m% i! ]: h- Y) @, |
- (setq f (polar e 0 (- (* TL 841) (* TL 24))))
* x& y! G) r- E - (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24)))): z" r {+ N9 e% t6 r# E' W
- (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))6 x1 \3 B% q$ k* m( K1 s5 m# y7 q0 k
- (command "Pline" e f g h "c") 7 d# b; J; x; u0 V: K# u6 x
- (command "change" "last" "" "properties" "layer" "0" "")% Z2 f! q3 u# K( ~ ~
- (setvar "cecolor" "4")* Y, K& k% \4 b$ i
- (command "Pline" a b c d "c")7 {6 a' |8 W+ L! t( N# t
- (command "change" "last" "" "properties" "layer" "defpoints" ""))); y* j7 [7 x: k, j% \1 q
- (if (= kho "2")
1 G3 o0 Z; }- } - (progn+ m# G- N2 c) M8 ?) j
- (setq b (polar a 0 (* TL 594)))7 M0 Q7 t4 `0 E
- (setq c (polar b (/ pi 2) (* TL 420)))* I$ w4 i" ^+ X! M; `0 O
- (setq d (polar a (/ pi 2) (* TL 420)))
6 U4 @/ Z8 O! `+ G/ f& {3 W2 v# q7 I - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))
, s/ o0 Z3 l5 r6 U, M0 ` - (setq f (polar e 0 (- (* TL 594) (* TL 20)))): T' X z. D+ U" ~9 t5 Q0 Y
- (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))
1 X% G6 b6 t2 C4 b$ u! d/ O - (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))
$ F# |/ W1 I A( y- T - (command "Pline" e f g h "c")
+ t ?- I0 f" {5 R* T - (command "change" "last" "" "properties" "layer" "0" "")
( _: O9 Z/ |& J) q9 @ - (setvar "cecolor" "4")- P" j0 @2 B) q! [* M! q& U
- (command "Pline" a b c d "c")
0 w" D( t3 v% n; f$ ] - (command "change" "last" "" "properties" "layer" "defpoints" ""))): ?3 A2 Q C7 W1 y7 u3 L/ B
- (if (= kho "3") o5 ~+ ` C% }! _* {; h( T
- (progn
/ b, r" N; V' p! u* H - (setq b (polar a 0 (* tl 420))) K8 C- v- q: ?/ ]7 p
- (setq c (polar b (/ pi 2) (* TL 297)))
A& k3 o4 O, r+ x8 H( o% F- s - (setq d (polar a (/ pi 2) (* TL 297)))3 m" h# Y) n0 L; r* @; p
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100))))): X9 n/ y# ?6 u* p
- (setq f (polar e 0 (- (* TL 420) (* TL 20))))& s3 n) f3 |* c- H# X+ O+ ]
- (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))1 r* d+ B3 B' m
- (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))0 s# f4 l. C- E, w. } p& M
- (command "Pline" e f g h "c")& H) L, O! m$ S; O2 {
- (command "change" "last" "" "properties" "layer" "0" "")
3 F3 G* _0 Y6 W/ f2 c' z9 P) p - (setvar "cecolor" "4"); K& ?% Y- O) o& o. e9 Q
- (command "Pline" a b c d "c")
# J0 Y+ G$ j1 d& u( n% A, ], V - (command "change" "last" "" "properties" "layer" "defpoints" "")))* g) J, y: m7 ^4 ?7 s9 b
- (if (= kho "4")0 G& y- z, o# R5 @' k7 E& N/ t
- (progn6 h2 d2 Y% j1 [$ B! N
- (setq b (polar a 0 (* TL 297))). e( E/ Z! i4 m# J* ]) M) J
- (setq c (polar b (/ pi 2) (* TL 210)))
0 d- A' }: R8 o& Z4 F) g - (setq d (polar a (/ pi 2) (* TL 210)))
1 j. b3 H) X/ |9 e" B - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))
% q2 R1 N' }' ~: O - (setq f (polar e 0 (- (* TL 297) (* TL 18))))
" l; x' k7 f. x2 e; k+ g2 G - (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))
2 w h, O) y& r' e - (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))9 X8 _0 ^) E5 ~5 |
- (command "Pline" e f g h "c")
: K; P9 \( H3 o& H! W - (command "change" "last" "" "properties" "layer" "0" "")4 h5 d. G. Y3 R5 \. m7 \7 }4 y
- (setvar "cecolor" "4")
9 w" {0 [! a8 U3 _( n" s - (command "Pline" a b c d "c")
& I1 q8 K+ s+ p( B- j- M& U - (command "change" "last" "" "properties" "layer" "defpoints" "")))% {( y4 @( {6 h& j- g8 f- W
- (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)% m4 I9 h% g9 y9 y( Q. K7 A
- (command "undo" "e"). p) `, |5 Z( }% Q
- (princ))
; l, n- ^; [+ _8 q4 y: Z - ;=====================================================================) S" t5 @: E" z& }4 C( V
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================' A! ^4 |4 h9 K0 Y. v2 i2 {. }
- ;=====================================================================- @. \' N6 S& p% {4 g+ p9 a+ f
- 0 H; [! D: `) h' H' l! G
- ;=====================================================================4 j, U# V, j5 b9 r! H
- ;===================DAT Ti Le Theo KHO GIAY BAN VE====================
6 p9 L6 Q- G1 S# K: a# W - ;=====================================================================% s9 x9 x4 s' J% V9 [
8 R6 c) a$ Y. @) x- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
) O# n' C0 Z: Q1 W - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""
; R. t( {6 D) f' {& @ - "M" "MANH" "C" "9" "" "Lw" "0.1" ""# p8 @) \2 f7 ~& s
- "M" "TEXT" "C" "7" "" "Lw" "0.12" ""7 H2 t+ m) l- m# d
- "M" "DIM" "C" "1" "" "Lw" "0.12" ""
- R8 g1 X9 B. w) i; S% E* I - "M" "THAY" "C" "7" "" "Lw" "0.2" ""
7 e! m1 |4 B. H! Z, c0 S, O$ j - "M" "NOITHAT" "C" "3" "" "Lw" "0.12" ""
* H2 U \4 u5 c# H5 \ - "M" "HATCH" "C" "5" "" "Lw" "0.1" ""; [3 p/ m" t% J% M6 N
- "M" "COT" "C" "1" "" "Lw" "0.3" ""
) v9 y$ F, M c7 { b E8 u - "M" "Defpoints" "C" "7" ""
$ d. ]. j' x# a& g4 u) C - "M" "0" "C" "3" "" "Lw" "0.12" ""
5 N' G2 Q0 A2 m3 x% x' n% A( o - "M" "CUA" "C" "6" "" "Lw" "0.12" """ D" F, O5 ?1 e; T( B
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
( d& b) z4 s0 T" w' d: S, G1 ^ - "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))9 R5 }% s( ]2 l1 b5 b# ]# e/ ]* @
- (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" ""6 y2 |+ I$ ~& W
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""1 e* T% i! v3 I& ?# q" b" Q& x
- "M" "MANH" "C" "9" "" "Lw" "0.12" ""% v+ M8 b, ], D* |& Y7 T
- "M" "TEXT" "C" "7" "" "Lw" "0.12" ""! o" X7 q) r8 ?* y# P9 c; H
- "M" "DIM" "C" "1" "" "Lw" "0.2" ""8 [% r0 V; o( S: f; ?& U
- "M" "THAY" "C" "7" "" "Lw" "0.2" ""
, q$ A6 f0 T# _! S: ]9 \& x - "M" "NOITHAT" "C" "3" "" "Lw" "0.2" ""& M3 m" j8 E4 o/ h2 f
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""
, z% M$ o% O( H5 i5 k - "M" "COT" "C" "1" "" "Lw" "0.4" ""* L, ^7 ]2 ^: p2 w; y3 F
- "M" "Defpoints" "C" "7" ""
* v' }. O: i) {8 g) }% f - "M" "0" "C" "3" "" "Lw" "0.2" ""
" H; o2 l1 B, v4 U: v1 P - "M" "CUA" "C" "6" "" "Lw" "0.12" ""
% [& W+ }2 \' y% T3 ~ - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
$ p& X. K! w y8 N2 ?: X& ] - "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))9 q Z8 [+ @" @, p3 Z3 |( K. ?
- (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" ""9 z* A3 l6 {2 G9 r7 _ n% C
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""$ F7 z' G! p) ?* ]5 F1 J
- "M" "MANH" "C" "9" "" "Lw" "0.2" ""' ]- y" f W' J
- "M" "TEXT" "C" "7" "" "Lw" "0.2" ""0 d: e1 W* S; k' w& `/ n6 ?
- "M" "DIM" "C" "1" "" "Lw" "0.25" ""
_9 h/ N9 d- b. J- F" _+ p - "M" "THAY" "C" "7" "" "Lw" "0.35" "") x8 O" A0 ?7 o/ I
- "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""
* i. c9 w3 ]) `" Y - "M" "HATCH" "C" "5" "" "Lw" "0.15" ""
0 W2 M8 u5 b* c0 R) O/ \ - "M" "COT" "C" "1" "" "Lw" "0.6" ""+ j% T9 x6 ], }+ g
- "M" "Defpoints" "C" "7" ""
3 _3 C# v$ y8 ?1 ~. f! }% V - "M" "0" "C" "3" "" "Lw" "0.25" ""
6 W+ ~2 S+ `) P# w- Z! E) \ - "M" "CUA" "C" "6" "" "Lw" "0.25" """ U" B" r8 X) T/ B
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" ""( H* u4 T$ q& z! z5 F
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))$ h! ?7 N; V. R$ \! K/ a
- 9 G- j) t) J2 B) c1 ?4 \; s
- (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""
7 W z5 C' ~+ L0 B) ]1 h - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
7 n$ X6 A$ q: T - "M" "MANH" "C" "9" "" "Lw" "0.25" ""
1 D" h( W% L( L1 ~: j' q8 C$ z4 l - "M" "TEXT" "C" "7" "" "Lw" "0.2" ""; ?2 C, y0 @# X4 w I ^9 G+ K& I
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""# O$ G& o* I0 l# M
- "M" "THAY" "C" "7" "" "Lw" "0.4" "") q8 d9 E6 ?* n8 q
- "M" "NOITHAT" "C" "3" "" "Lw" "0.25" "") Y# P% i# k+ V
- "M" "HATCH" "C" "5" "" "Lw" "0.2" "": [+ h( @0 ?- r+ U8 C' E
- "M" "COT" "C" "1" "" "Lw" "0.7" ""* c5 Q# E& i4 j& R: [/ c: Q
- "M" "Defpoints" "C" "7" ""
7 P: I2 }5 u H) ?; ] - "M" "0" "C" "3" "" "Lw" "0.25" ""4 p2 [* m3 c* G
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""
. H8 D/ p& ]: k. V$ s- s - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""3 I3 V, v- I/ I) r) F
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC)
! P) e$ Y X% H7 ]3 c+ v - 5 u. D* T+ T& A
- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" "" u$ [+ C) i( |7 A% L8 |
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
9 w$ _3 b) j. ~, I" S i - "M" "MANH" "C" "9" "" "Lw" "0.25" ""
- W; B' B" E/ W5 O# y4 z - "M" "TEXT" "C" "7" "" "Lw" "0.25" ""5 ~0 a' n4 a5 ?$ p$ N, o: O/ C
- "M" "DIM" "C" "1" "" "Lw" "0.3" ""
- |* B* \* s, U& I* k/ t - "M" "THAY" "C" "7" "" "Lw" "0.4" ""$ z+ i# Y/ Z& @. K1 z1 Y
- "M" "NOITHAT" "C" "3" "" "Lw" "0.3" ""
/ Z% I3 M8 T" V2 S - "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
$ }# ?! @3 x( z! h3 X$ g$ ] - "M" "COT" "C" "1" "" "Lw" "0.7" ""
* Y2 i# V3 ~; u* v5 t - "M" "Defpoints" "C" "7" ""
8 Z8 w9 R' }- Z1 N9 ]3 J0 | - "M" "0" "C" "3" "" "Lw" "0.35" ""' N" j. N: h: n8 ~5 Z- I# [9 m1 f
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""
/ p* ~2 R# o6 Q2 z3 ? - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""3 F1 U7 j# J( X/ L, P
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))
$ C6 S0 G4 }, _4 L' k5 X& t
7 ^ x% H$ Y+ A8 Y( `5 h( \# b- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" ""
. ^/ A- n: f& p1 ~/ H# I - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""
) D: n/ Y, {0 P, h1 p* } - "M" "MANH" "C" "9" "" "Lw" "0.35" ""6 @8 Y- k2 t. ]- e4 [5 K
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""4 w6 Q" m% T- d3 y& `" j
- "M" "DIM" "C" "1" "" "Lw" "0.35" "") g; u \$ P5 U% T8 _7 ^
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""
/ c: T7 {9 `- q - "M" "NOITHAT" "C" "3" "" "Lw" "0.35" ""
! L" l9 D. t. z0 p' n5 D$ Q - "M" "HATCH" "C" "5" "" "Lw" "0.25" ""
$ Z0 j1 D6 ?5 c5 A0 c# A - "M" "COT" "C" "1" "" "Lw" "0.85" ""8 l8 A. V7 v$ @) _6 d& C. Q& T
- "M" "Defpoints" "C" "7" ""
* [8 q; B( e5 e9 d( W - "M" "0" "C" "3" "" "Lw" "0.35" ""1 x8 W4 L( t# j0 B3 N. D- f! h4 V7 ] w
- "M" "CUA" "C" "6" "" "Lw" "0.4" ""
- Z7 p: o4 } h! G6 @9 P - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" "") U" y' R% v7 q- X! l; x
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))
6 w9 J4 `! k5 @! Z - # E# b: B/ q/ {: T4 \0 S6 g* ?
- (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""
3 {6 N( \) Q3 Y) O! ?: Y1 Y( G - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" ""$ a& N% o5 y2 R
- "M" "MANH" "C" "9" "" "Lw" "0.35" ""* y: A) }, p; a
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
0 U. ?2 M6 `( F' N0 X - "M" "DIM" "C" "1" "" "Lw" "0.35" ""
! X2 @' t' ?5 e( q7 R( W% g ^' T - "M" "THAY" "C" "7" "" "Lw" "0.5" ""
5 }6 w' Z; ?3 c' B - "M" "NOITHAT" "C" "3" "" "Lw" "0.4" ""- s+ L$ V& x/ A7 _: y4 b, M
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
( H: R( S1 L; o$ ? - "M" "COT" "C" "1" "" "Lw" "0.1" ""( K' B6 D- x! [* P/ m9 }9 z
- "M" "Defpoints" "C" "7" ""2 L8 A% K8 [$ e# W
- "M" "0" "C" "3" "" "Lw" "0.5" "", R- J0 t. Q3 @+ I4 I1 R; X% `
- "M" "CUA" "C" "6" "" "Lw" "0.5" ""
9 B) Q( J' F! T( m& ]; e q - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""
$ g/ x0 D) `! c" z6 N9 | - "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))' A/ |, S& a* ?. S4 `8 |
- (DEFUN C:O () (COMMAND "OFFSET"))
* ]4 o8 |( _) T, \# }: S - (defun c:s1 () (command "surftab1"))$ P+ ` }9 |: q4 \0 I* c
- (defun c:s2 () (command "surftab2"))
6 @" ~, g2 E$ o* O - (defun c:ep () (command "explode"))7 T9 D. h' j! s. F" h
- (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))4 L) J1 @3 I( J* @ ~1 N
- (DEFUN C:QV () (COMMAND "QSAVE"))) _+ G& ^, C* p1 K3 a" X
- (DEFUN C:S () (COMMAND "STRETCH" "C"))
% V( n& ?. y0 J& B7 @( @3 o& ~
8 x7 @8 `$ I8 g: f. t8 V- ;************************** CAT DIM **************************
# q: d$ a* F/ H' N' P" V
# N9 b* }* R2 R- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I, x% ]2 s2 w& v0 P
- PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)9 O F( a7 J: C0 e5 g9 `& X
- (SETQ CMD (GETVAR "CMDECHO"))9 k% r. S) ?/ Z. i+ ~& @5 `
- (SETQ OSM (GETVAR "OSMODE"))8 ~" b2 J: ~/ c2 k4 W
- (SETQ OLDERR *error*
) H; ~: C* y# w' W" M% X - *error* myerror)
; E" D, M+ a; i3 F7 u# Q z5 W1 U - (PRINC "Please select dimension object!")
5 i$ L W" b/ a2 ]' g- z' Y4 W. J - (SETQ SS (SSGET))' y3 x- \ }9 W/ u/ r' g4 Z$ r0 ~
- (SETVAR "CMDECHO" 0)
8 G7 L+ J3 A. ~& W$ p2 x- q - (SETQ PT (GETPOINT "Point to trim or extend:"))
, o w& w$ ?, `7 K3 G+ d2 O# C/ k - (SETQ PT (TRANS PT 1 0))
t' e, X* A* {: G5 W0 P2 u - (COMMAND "UCS" "W")
! d/ \. f: O1 A- {* z - (SETQ LTH (SSLENGTH SS))
4 n+ v, y0 Q" n) [: J' g - (SETQ DEM 0)
7 H' e+ Z1 Y2 s - (WHILE (< DEM LTH)
6 [( Y7 A4 C$ J - (PROGN9 ^: Y3 I4 T, ^4 p5 k
- (SETQ DS (ENTGET (SSNAME SS DEM)))
6 B$ q- p- s! ] - (SETQ KDL (CDR (ASSOC 0 DS)))
9 H' d; G3 o0 ~; P. d' G6 _/ w - (IF (= "DIMENSION" KDL)+ N, D* v. ^, F% f& F- f
- (PROGN1 U! B5 d- D, o: Y9 U
- (SETQ PT10 (CDR (ASSOC 10 DS)))- f" p3 y7 n( r* V
- (SETQ PT11 (CDR (ASSOC 11 DS)))/ g8 c5 y& ] U [
- (SETQ PT13 (CDR (ASSOC 13 DS)))# j( C2 s" b) l% Y! f! {4 {
- (SETQ PT14 (CDR (ASSOC 14 DS)))
' p( J( G0 h* H& t% z - (SETQ N70 (CDR (ASSOC 70 DS)))- {% k4 m5 F! ?% j
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
* I2 A* ]7 b' L4 W" d0 w - (PROGN/ [ Y, H$ }+ P8 O! n
- (SETQ GOCY (ANGLE PT10 PT14)) Q+ b$ j G; e* A* l
- (SETQ GOCX (+ GOCY (/ PI 2))): J& ^/ L9 n% r
- )9 N" l. i* U0 P& s {2 u
- )
1 e( ]6 ]7 Y, r7 K2 R+ [ - (SETVAR "OSMODE" 0)
( b" B8 c3 d5 y2 ~ - (SETQ PTI (POLAR PT GOCX 2)) n2 g! t/ G, v6 i& ?
- (SETQ PT13I (POLAR PT13 GOCY 2))
! W" p: {7 `5 G8 O - (SETQ PT14I (POLAR PT14 GOCY 2))
4 X x" Y t, V) G" N; U# E, f - (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))
" n- F- [5 t' f' r5 [ - (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))
% B1 i7 c; O5 Q2 t$ L - (SETQ O13 (ASSOC 13 DS)): b9 _, t1 L" {8 G7 [ W# X% e
- (SETQ O14 (ASSOC 14 DS)). H1 l% v I0 N& B
- (SETQ N13 (CONS 13 PT13N)), g' {' k$ @4 a3 M6 N H% n
- (SETQ N14 (CONS 14 PT14N))
/ C" v1 S! G. O: P; i) ?/ l - (SETQ DS (SUBST N13 O13 DS))+ E" i; c5 w- G1 _& N
- (SETQ DS (SUBST N14 O14 DS))4 I6 V- K3 {! J
- (ENTMOD DS)& `- Y8 P- Q2 V4 i
- )
* h) m R2 u* p/ F - )6 d! ~$ H% V8 f$ L. A K9 c) E5 Z
- (SETQ DEM (+ DEM 1))
) O3 k& x8 o; w - )
( ]/ r$ d8 G9 k - )
1 j, z! L( D. I( I0 Q - (COMMAND "UCS" "P")- v+ X' N0 Z# ]! R8 C$ K# y9 p! g
- (SETVAR "CMDECHO" CMD)
2 N, O3 c& X5 A& N" _' ` - (SETVAR "OSMODE" OSM)4 s( n+ x4 @% M- u1 Q* f2 Y; h& v
- (setq *error* OLDERR) ; Restore old *error* handler
[+ e( i u/ B - (PRINC)
" _! Q4 r9 e% R) \" P - )
: F! Q5 L% {2 ?8 z9 r
, L% e5 d% x$ ~- H- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI M: E3 ]; q* n; Z/ d% k2 E
- PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)
+ m1 _8 ^3 q1 |4 o - (SETQ CMD (GETVAR "CMDECHO"))
6 j: }0 w) }0 g7 }% B; d3 r - (SETQ OSM (GETVAR "OSMODE"))# g/ e7 l# t7 _- O( b/ D b+ t
- (SETQ OLDERR *error*
w3 n& k4 A2 m+ r - *error* myerror)
8 \7 V% Y" Y6 f/ A: B) W& o: u- v - (PRINC "Please select dimension object!")# J T4 ~3 h" n$ f
- (SETQ SS (SSGET))
. K" H8 S1 L8 a - (SETVAR "CMDECHO" 0)
. I4 m% A5 |' t" h. H - (SETQ PT (GETPOINT "Point to trim or extend:"))6 b& H4 C5 k1 }. q% I
- (SETQ PT (TRANS PT 1 0))
?- V! L0 v9 U6 a - (COMMAND "UCS" "W")
0 S7 g% U- u( ?; [! V - (SETQ LTH (SSLENGTH SS))" |/ e; o5 x6 c/ B( L# ~
- (SETQ DEM 0)
+ d. G3 }% p7 R! S, G; O - (WHILE (< DEM LTH)
/ [' Z3 j5 X6 n4 {$ [ - (PROGN$ R" \/ C9 P3 l0 Q$ n7 u! ~" x( l0 I" o
- (SETQ DS (ENTGET (SSNAME SS DEM)))+ r0 C7 o, K. y v8 g! [
- (SETQ KDL (CDR (ASSOC 0 DS)))( P5 b" R4 H# H) ~! r2 F
- (IF (= "DIMENSION" KDL)6 q3 P: |, f1 j. k& q% o$ _
- (PROGN
( Z, ?# E9 F ~* |8 H' b5 n3 w7 T - (SETQ PT13 (CDR (ASSOC 13 DS)))2 L+ G+ ~; J( K$ w% J* ]
- (SETQ PT14 (CDR (ASSOC 14 DS)))1 U% ?; N. }0 j+ S4 b0 E8 x4 `1 @" {6 }
- (SETQ PT10 (CDR (ASSOC 10 DS)))
( l% M; s+ G% O) { - (SETQ PT11 (CDR (ASSOC 11 DS)))3 e2 U0 H! i0 {! H
- (SETQ N70 (CDR (ASSOC 70 DS)))/ K3 j* K% \) @! e. ^* e
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))0 ]& W# K# E I2 t+ Q0 d5 H4 q; ]: [( u
- (PROGN
. _5 l4 F5 t9 I0 W3 Q/ m. s. n - (SETQ GOCY (ANGLE PT10 PT14))
" Z/ a/ y0 q9 o; d! z1 K - (SETQ GOCX (+ GOCY (/ PI 2)))
$ N: i' E( z! _2 [- h( F# K - )
3 v: \& _. a( o) t- }6 ]; w. ~ - )
4 o/ h1 b) Q: R1 n* S - (SETVAR "OSMODE" 0)
0 Y/ i& {0 @+ T% I% L - (SETQ PTI (POLAR PT GOCX 2))
6 b/ T1 I9 i K+ X! ?7 X7 q6 H! j - (SETQ PT10I (POLAR PT10 GOCY 2))8 V* _3 j! `( ?: X
- (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))' t. R7 o! x. X- d$ |, q! `' A3 }
- (SETQ KC (DISTANCE PT10 PT10N))
: Q7 P2 E5 M" @, L3 e$ P) L - (SETQ O10 (ASSOC 10 DS))
4 f2 z& L7 f& T - (SETQ N10 (CONS 10 PT10N))
% d& Q! ]( C* J% O7 S: Y7 r - (SETQ DS (SUBST N10 O10 DS))
5 r; j& p: v; j- `" a - (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))1 U" T# \4 L" @! l. t0 S9 h
- (SETQ O11 (ASSOC 11 DS))
" B& W* z7 {% m, ^3 | - (SETQ N11 (CONS 11 PT11N))
5 z, v+ X( t0 w, H. i( i* B - (SETQ DS (SUBST N11 O11 DS))
9 C V( a; O5 ]& h% @, ]: V - (ENTMOD DS)7 j/ [2 P l5 h' p8 p; j6 }% T
- )
/ w+ v& S8 f/ s# I- s/ v* u/ Z - )! V/ G+ Z) t, u1 [2 |0 q
- (SETQ DEM (+ DEM 1))
G! k% ~- {/ M, w: l - )
j+ U+ b' {9 j% ? - )
- j& [- V5 y& M3 \/ X5 L4 R. l - (COMMAND "UCS" "P")
" b$ x. p1 b/ J5 h! [& ~' { - (SETVAR "CMDECHO" CMD)
) G9 _5 B0 P! H! u1 f! y - (SETVAR "OSMODE" OSM)
5 j% ]: k- q: A3 E* k* G4 x/ f - (setq *error* OLDERR)
/ F- z1 y- @2 t& N9 z - (PRINC)$ t9 G5 K( q3 S) g( N
- )
; }) f. m6 c. j( p7 O - " d1 W' u8 c7 ~, Q5 ]/ {
- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================& Z; O* J% ]3 b$ E! P
- . N1 y* m) q6 ]2 M) ]
- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")
3 i9 I9 ]8 r5 a/ ]" |2 |5 L1 Q - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p"), \) Z) \# f& ^0 S& r, {- u7 Y+ W
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt/ x& W4 @6 {9 l8 o1 Q6 q0 w
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt))) R' _4 `( i- v8 C4 p% ~1 h
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")7 _, a$ t& k' t8 b/ G
- (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt))), x F: D0 N. v& ^* _9 Z
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
9 X$ u& j, F; ]) a4 n; H0 [7 [ - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))* ~7 I! \$ L, @0 {5 t- u; w0 g3 i+ b
- * W8 v% c1 r0 N, \, f6 }+ `
- ;;; ================ CHEN COT (TUU) =================
0 R! {% d$ }- Q) B6 Y6 O- k" \( j, v - 4 R+ E6 d( l/ _, w+ t% O6 S
- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")$ s7 n; x, w4 c3 E9 E
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
, q0 ~( I) a8 Y9 v - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
# } q" t3 T; ` - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
3 N$ P* ]; I2 V8 d4 Z - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000") g6 v; t' o1 q5 E
- (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))
2 n Y- L( s" F( j N7 h, R - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))* I. p$ V0 q5 J. b8 {
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))+ [/ D4 k5 K+ S, d2 L& G
- 5 G& F( I: \, |$ F; U. ]" [( S
- ;;; ================ CHEN KY HIEU THEP (TP) =================
% d# R8 e7 S% [6 i
1 s- V; u( ^ y" g1 r- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")0 Q" Z- r' I5 n5 t* H0 |& r5 ^
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")7 n3 a. l- W) \: @& o
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
# Y- ^2 b! n) ?. q0 e' h. A - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))- B# Y9 b8 e0 q" Q
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")- w6 l0 _5 H8 D
- (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))8 t- z i, L/ U& L
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
9 m: s8 z% e# N4 f! s& K* u - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ)): H( \% ?! s' P* u/ E5 v# U7 c
2 y( ~, w6 i; v( @. A- ;=========================== TAM TUONG (TAM) =================================
6 K1 ]4 O& z" j( E
% \ m8 M1 _6 T5 E9 v4 v5 Q; e; m- (defun c:tam(/ data_m)
) P9 i! f3 M; R+ R - (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0))
2 V/ _# E9 o; T8 m9 T: U8 J - (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))
, \& a4 s `5 x' O) G4 ^+ b$ E - (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)$ n( n% L- \, j) X4 C
- (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset
7 I) V# u/ _6 }0 r& t - (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr
7 R Z7 Q$ S3 z" z7 V F% D( R - (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ)
8 |+ a4 }9 ]8 L) [! p6 P& q5 x# ? - )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if
' T( \. q0 F; L I! O; g - (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1)
6 Y1 K& d. w2 i# }4 f - distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2). h9 `; X! Z( o3 w: }1 @; }
- (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))
- A+ J) y% N! I1 X8 V - (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<) T' f4 V3 x" _1 @2 S
- (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)4 b; Y8 T: k+ z. W
- distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))
, n+ z1 o6 O1 I. a - (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p48 M4 k1 [( O+ O
- (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not. T) o6 D6 Q; |) }
- (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget
4 L# Q4 Y" B, h! Z1 J& p - (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))/ O0 f) t9 W3 Z0 x" h6 k$ ?- z
- (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))
9 u/ D7 H0 y$ e1 T5 {0 l' r: l- k - # \# K, w* V+ l0 z d/ P9 k# Y! l. v
- ;============ GHI CHU PHI (T1) ================
! t& \ U; J; o4 a" }2 S
( ^* e F. L4 `" ~9 h; ~0 M- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))
; m" J6 G- _, S0 p! V% O - (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3
& a) t t, f+ S: `/ x1 K$ [ - (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)
+ X6 A8 ]7 h/ {0 k) J2 j; \3 v - (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)/ `6 Z1 e0 X" n; S7 h) D
- ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1))
: e! ~8 N( x9 B: U; }) ] - (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)
- `4 b. N* x) ]* Y! y# S) Z - 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1)3 E$ T7 I* J2 {
- (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 ), V$ I/ [5 S1 g! p9 S" m5 ~9 U! j
- (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150"); A* l* @% O0 k8 d$ J: J* C
- (command "ddedit" pause)) K# @. [6 m0 I, x6 u' B
- ; G0 U' B; _# {: _
- ;;; ========================== Join (J) =================
/ a/ o: x! X8 e, P6 y1 C0 O! v% p
, f6 Q* a+ Q% c( W0 N7 ^& s; }) {, b- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))
3 H9 k1 Z% A. x* p2 _& \3 o$ w - (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? "))
; G4 k$ V G' d8 L8 E - (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)0 x J: j, O4 _) o. e/ R. }
- ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")
2 U G6 |* X l2 t# [* m' i1 O/ K - (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC"))9 M4 E$ r/ B1 E* g6 `/ c Y. A0 K g
- (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt ""))
" ]/ }, j5 N5 x1 q9 ] - (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" "")) # a3 N% C1 P* A4 o- _
- (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))
; o- [: p9 w7 a! s6 m* ~; w - (setq *error* m:err m:err nil)(princ))
5 L, A; o/ @" a. P' j3 q* w' v% l! u - ]% b% s( Y( C* c" I( P% T8 z
- ;=====================================================================# u& r, k& w1 @. f' U3 T
- ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.
5 {9 ? ~; B( w! D) P' J$ Z - ;=====================================================================# H0 E v8 Z: z! x% [; t" L
- - L1 @" s$ _( d2 H" ^* q1 Q! ^& K
- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old)
" k/ n/ N$ j8 N g- {+ | - (setq old (getvar "OSMODE")) ! y, e `6 I+ g$ z* m
. T* p- ?/ N5 k, e3 D2 h; @6 @2 q; K) z- (setq p1 (getpoint "\nStart point:"))* [' y( `/ ^" V! g
- (setq p2 (getpoint p1 "\nEnd point:"))
% x5 E0 r( L& v9 W9 c - (setq side (getpoint p2 "\nOpen side"))
4 m" {( `7 y" ^) ]( M
$ D* q( O) M0 }$ n( b% T/ |, }- U- (setq dis (distance p1 p2))
. U _. o4 e4 @) t+ ~, D2 D - (setq ang (angle p1 p2))
, g" q+ |3 \' |7 E - (if (< ang (angle p1 side))
9 T0 `! j G. a/ I, c: d - (setq angside (/ pi 2) )
q0 B0 E. ]+ B( Z) _+ K - (setq angside (- (/ pi 2)))# @2 f' V. F/ Y( V% ]/ N
- )
! L5 {0 `: ]4 e0 u" K4 z - (if (>= (- (angle p1 side) ang) pi)
! G2 I' h8 B' c% H - (setq angside (- (/ pi 2)))
% V" G; }- A; v) }+ M+ Q - )
; _ Z3 @ m$ h$ B% y - (if (>= (- ANG (angle p1 side) ) pi)
4 O; L5 x0 I( D1 m - (setq angside (/ pi 2))
! k+ c1 i" m, ]' k3 \* j - )2 j2 N0 G' r2 u6 Y/ O
- ; G% x: t2 S7 S: `8 S* I
- (setq p3 (polar p2 (+ ang angside) dis) )8 a% _9 H- ]/ F" |8 j: ?
- (setq p4 (polar p1 (+ ang angside) dis) )
/ z; k6 s7 H- i& B! S% G2 { - (setq wid (/ dis 15))
* ] e& N% i6 u5 y - ) g9 Z& k: g8 L* i" \/ J. b( j3 g* I
- (setvar "OSMODE" 0)) L5 z+ C! k o% M9 h! s
- / s1 C/ V1 ^8 W8 S L
- (command "PLINE" p1 "A" "D" p4 p3 "L" p2 ( ^5 {: a' {# D1 _4 |
- (polar p2 (+ ang pi) wid)
: C1 [7 c# d+ \- m - (polar p3 (+ ang pi) wid)
k- ]7 z! @. ]- ~ - "")2 } |. d8 X; ]8 q8 D( W* z
9 |+ t1 L5 b, @. c5 O6 p# }- S5 J- (setvar "OSMODE" old)
3 g. R5 ^ e7 } - (princ)
- |0 m1 m1 d: j b$ ? - )' h! E- p0 J o) z5 W& L
- 3 N3 B5 S. w' B" o
- ;=====================================================================/ }& I( S8 d- r/ ?/ q ^
- ! D7 T! \! f, x: p: I( k, V
- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old)1 {- ^3 s* @4 Y s6 Z! c
- (defun cua1 (pt1 pt2)$ Q" W. C/ o' M4 a! Q3 o
- (setq p1 pt1
" J* p8 Q3 z$ Q8 b - p2 pt2)$ e$ K% e% j3 l6 ]! n: |2 `
: c& u5 h& i# E4 a, w- (setq ang (angle p1 p2))
+ I3 r; ^, V- G - (if (< ang (angle p1 side))) V; n' x# m. ]) B
- (setq angside (/ pi 2) )
0 }& M: C3 s E/ N ^$ S- ? - (setq angside (- (/ pi 2)))
2 M C& ~. Y% q0 y, Q; z - )
" E6 Z: P1 n1 p+ O - (if (>= (- (angle p1 side) ang) pi)
) \8 ?# V. o3 B2 g8 ~% N& d - (setq angside (- (/ pi 2)))! L) n+ K" x& m' m3 b
- )! |: z5 B# c: U1 f" z+ U( f5 w- O D6 t% w
- (if (>= (- ANG (angle p1 side) ) pi)% O# o9 u' { u, ~
- (setq angside (/ pi 2))6 R3 t8 \; k: O; K: E" Q* X
- )8 Q% d7 q2 u. m) z% m
8 w/ f; r& o4 X, r$ h- (setq p3 (polar p2 (+ ang angside) dis) )) z2 r$ u- n: x" D a& s C
- (setq p4 (polar p1 (+ ang angside) dis) )& u& T" k+ R6 \5 L. Y$ b' x
- (setq wid (/ dis 15))4 O1 J9 } f% t6 ]4 @# `% k: b
1 i! z* C( Q. k* {- (command "PLINE" p1 "A" "D" p4 p3 "L" p2 . x" {% T6 {- c/ Y
- (polar p2 (+ ang pi) wid)
# Y I& H% l9 j0 h8 c7 G - (polar p3 (+ ang pi) wid) 7 g& x3 O) q: o/ Z& }
- "")
o8 W" L6 W( x V. i - )' L& f' g8 k2 n8 k0 Y& S# S1 v
- ;=====================================================================
& U4 c% B$ b8 M0 D G' k% t# V - (setq old (getvar "OSMODE")) * O+ J0 W0 \( R$ U7 T
- ! h2 M0 u5 m' n, d
- (setq p1 (getpoint "\nStart point:")) O* W* C4 V Q) E" H- M
- (setq p2 (getpoint p1 "\nEnd point:"))
$ V: b* f9 G% C- m/ V& T - (setq side (getpoint p2 "\nOpen side"))- @ Z; x& l+ c% Y& E5 s, I
- % I) k K e; C5 r, E; [
- (setq dis (distance p1 p2))
4 q: j, I4 ?3 v, Q3 } - (setq dis (/ dis 2))- B$ h% h& k6 e7 b) F+ u4 r/ o
- ' j3 X: I+ W; N M2 @( [
- (setvar "OSMODE" 0)
$ ~# _ t4 m/ g* @7 ]" R - & i, B! r8 ^2 {6 C
- (setq p1 (polar p1 (angle p1 p2) dis))
( E' ^, E/ ^. S% }, L - (cua1 p1 p2)
' t* d/ R3 c8 H1 K" i6 P - & L5 _+ v9 b+ D6 |: F* n2 m0 F* c
- (setq ang (+ ang pi))' ?: \. s6 `& b0 D; H
- (setq p2 (polar p1 ang dis))
. p$ c2 l- }. b3 X+ D) ~ - ; (setq side (polar p1 () dis))
+ I, \1 ]4 V5 J - (cua1 p1 p2)
, K2 o$ o* o3 |) w z - % q9 S* c9 Q+ e8 _' m% F6 C
- (setvar "OSMODE" old)
# [9 p) t/ V) X6 z - (princ)1 \' h @5 y r0 ~
- )5 ~: j2 A, X; ~7 @
- . {0 l# v' `- y- S3 _5 k
- ;=====================================================================3 v1 U! O0 _: Z+ u/ N u( w
- ;"Glue" text strings. All adopt first's properties.2 A5 M, o' k. ], I. v+ }' \
- ; Author:0 \2 w* Z( ?- r
- ; Henry C. Francis% S" [9 a, z1 S
- ; 425 N. Ashe St.$ i$ m$ _' i O5 L) E* _! b h
- ; Southern Pines, NC 283872 ?0 u$ B/ P# d) f! H2 I, i; ?
- ; http://www.pinehurst.net/~pfrancis
- S7 A* z( f" v3 g' x' w$ g! E7 ^( o - ; e-mail hfrancis@pinehurst.net
6 f u% X+ R$ V# J w6 E; u - ; All rights reserved.
( T5 R2 \7 U, |; Y: V7 c8 A - (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)
/ I7 B0 t( Q/ z. [3 i0 l - (while/ F5 F; n6 r) H1 l) f
- (not1 ~8 T& U$ ]- g% y. S6 x, M
- (and
7 u9 [# m8 D `% ~! B - (setq ename1 (car(entsel "\nSelect first text string to join: ")))
( l0 i/ w- s& J m6 v - (setq ent1 (entget ename1))/ @3 x; Y2 v7 } K7 o
- (eq(cdr(assoc 0 ent1))"TEXT")
; X7 F- ~* l! x) X7 L - );and
0 ]; Q, {! j+ b - );not
$ P, s2 c) k$ H3 ?4 s* K4 L - );while, `0 D& C' {* a
- (setq old1 (cdr(assoc 1 ent1)))2 @# y5 b8 \! ?
- (while
0 V1 }' R$ _9 H/ O, O1 J j - (not7 r1 z) C) i! O$ I
- (and% d7 p3 l7 B% L: A
- (setq ename2 (car(entsel "\nSelect second text string to join: ")))' i' q2 P/ P8 m9 y# P9 t
- (setq ent2 (entget ename2))
6 t3 r, s2 U: W$ e& p5 a) Z b4 ^4 J - (eq(cdr(assoc 0 ent2))"TEXT")
2 L! e, D. X0 t - (not(eq ename1 ename2))( P* k1 T4 M8 W* [6 @) D/ x; x1 \2 [" |
- );and
$ u. p, P" F u3 U' k) g - );not
( `/ F% `' T& z1 k( V9 K - );while
/ r0 q) C4 y3 d& c8 L - (setq old2 (cdr(assoc 1 ent2)))
0 \. c: Q) C, e, b/ l - (setq new1 (strcat old1 " " old2)# U3 k1 ^& M `) [/ W3 a
- ent1
, Z" I* p6 x* n4 x- U" d h. q( i - (subst (cons 1 new1)
+ z$ w `, Z; f" M1 h1 Q2 n - (assoc 1 ent1)) Q) z. [/ d1 z6 X
- ent1)* n4 n" D8 N6 R& {$ {/ H
- );setq
/ c/ r& w7 Q' S6 `! I - (entmod ent1)
* {" ?) }5 S; v - (entdel ename2)9 N' R$ b' |8 ^2 M$ t0 m& L
- (princ)4 x4 D2 l4 f. U
- );defun/ j# s# \0 K+ w7 W% A& x7 b, b; m
$ T- n! R% a5 M& [: H L( \- ;=====================================================================
9 v) W3 P. a: }. d1 p
% L6 t" U) `- P5 U, |$ l) j6 r' X- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)- u+ y+ z( F2 j( x# H7 o
- 5 E/ |; f4 t# @- T Z
- (defun nterr (s)$ O" a& n7 Z. o. i% D/ q. t8 C3 C1 A, \
- (command "_.UCS" "" "_.UNDO" "E")- Y0 P9 _+ U8 }/ _, `9 u" \
- (setvar "cmdecho" 1)
! w& y3 ?+ s1 {3 h$ ?- A( }- q - (setvar "blipmode" 0)
* ]1 ^) y( j! f: F9 v3 \ - (setq *error* olderr)
: f, s. p' d, I) `4 c+ a9 v - (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil 2 u" E# T+ K9 [. R" D
- nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)( X/ R" W3 d0 ?2 N) J+ \) R
- (princ)
' q! v/ v7 c7 [ - )
' r3 v- p( _7 ]! ~. S3 Z - - a/ C6 P& `. C! I1 t" G
- (defun tim_in (dt / p01 p02 ktra)
' i# L# z7 E* K% p, ^& U - (setq p01 (cdr (assoc 10 (entget dt))))6 k! k) A3 u: {+ l5 r
- (setq p02 (cdr (assoc 11 (entget dt))))- ^- Y7 q+ l: h
- (setq ktra T)( S/ v1 [1 k% l
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
1 b* T* | e, E6 j' n( r$ c3 D - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
) ^4 Z+ F; |3 w - (setq ktra nil)
8 s9 Q N; i& V! X - )
' r1 a" m( B6 b7 n5 M7 ~& m - (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
- A5 R0 x& O; Z- D1 b9 a, F - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
7 L# Y2 K6 F$ Z" t2 l& e0 S8 V - (setq ktra nil)
" H9 y. b$ X5 w, M2 m2 a - )
9 T4 d3 g i" H7 d4 | - ktra! |& d; q3 M* t2 r5 }* h( ]3 ~& J
- )
( M6 }; R# L6 H' o$ u+ D# w1 w% ]4 L
+ N6 {' T- D' i$ E1 p- (defun timdt (dt1 dt2 / p01 p02)
1 {& {/ n, o! W- f2 s8 t - (setq p01 (cdr (assoc 10 (entget dt2))))
" l; w1 L# I' x1 T' B - (setq p02 (cdr (assoc 11 (entget dt2))))- v4 @% Z* ]* P5 H' c2 [
- (setvar "ucsicon" 0)
, `. |8 R% F: A5 D7 X! D) o - (command "_.UCS" "E" dt1)
" O. M3 X$ P8 x. m - (setq p01 (trans p01 0 1))# q2 W, {7 N1 Y
- (setq p02 (trans p02 0 1))$ \% L7 V/ i* Q Z% q
- (command "_.UCS" "")
4 A! e5 P: W' T - (setvar "ucsicon" 1)
4 ^' r$ y3 j2 z2 ~ - (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))) Q6 T2 h W, a$ L
- T
9 K2 r2 X5 R, z- X - nil
" U4 Y5 n4 P0 D9 }9 k% ` - ). K6 p3 r; ]" V% a6 {& d- S
- )
* B5 r0 e$ q g- n$ D" M v
6 D$ ~+ q. ^1 F2 r- (defun tim_out (dt / p01 p02 kt)
7 [. J" n& Y/ [7 Y - (setq p01 (cdr (assoc 10 (entget dt))))
# N Y2 _4 H8 ^ }$ ^( F) Y - (setq p02 (cdr (assoc 11 (entget dt))))
: N( ~; [- W! w1 u3 I: f. j - (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
; E r/ }% B9 j5 I+ j0 p7 n. l - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))& i |* r0 B2 S" m% }
- (setq kt p02)& C" j$ I( [9 f! J) x0 G
- )
- m. @/ f# h: a7 d( Y I6 G3 Z - (if (and (> (car p02) (car g1)) (< (car p02) (car g2)) 7 [- |4 F4 o; B
- (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
7 r% |, T" ?8 P1 G5 E - (setq kt p01)
/ _) q0 c4 f2 t3 t+ {; J# e - )! T8 h4 |# f7 R9 N! ]( v' r- H+ g
- kt
2 L% S t: M) [: q8 s. B+ u - ); Q5 g! |; u [& C8 ~
# [. u% T6 w, y" z+ C& j- (setvar "cmdecho" 0)2 p. p* p9 [9 P% w9 ?
- (setq olderr *error* *error* nterr)% \( k$ r" t K
- (command "_.UNDO" "G" "_.UCS" "")
: X' U1 U; t# W2 r! g5 S- u - (while (null ss1)) y- X. `' w5 g# i4 c$ m
- (princ "\nChon tuong muon noi...")
+ @& |+ K& a0 \" v w9 v! K - (initget 1)
3 F3 F4 D5 X5 R" n - (setq g1 (getpoint "\n>Goc thu nhat:"))
7 E8 V" _/ k* N7 P0 ?% n - (initget (+ 1 32))
3 U' d+ |+ Z( H- n6 T- h" j% w - (setq g2 (getcorner g1 "\n>Goc thu hai:"))
" }6 \& ^9 n5 w/ _ - (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
" F* W+ n6 S. V( B i - (if (null ss1) (princ "\nKhong tim thay doi tuong!")): q' D; H8 d8 R6 f, l* Y- d
- )- p9 D7 n4 K& k5 H5 ~# c
-
) @; E4 N2 d+ A5 p ?- X - (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2)))
. O" @) C' q* Q, l - g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))
( o" M/ y# ?" D: f" w - g1 temp)
4 y! t3 i" H( N7 ^3 G' y - (setq ss1 (ssget "w" g1 g2))8 V$ G: o6 T( r: {
- (if ss1 (command "_.ERASE" ss1 ""))
8 D: F/ L( ]& a y; U/ I$ U) a - (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
0 j- n# `$ ~( q - % N+ x$ k7 n) o8 U* p) c* l+ ~
- (setvar "blipmode" 0)5 R o7 F9 p* r& W- t3 z4 `
- (setq i 0 l (sslength ss1))
4 {9 T9 U1 H: k( r - (while (< i l)& O- V, J* j4 |+ Z, n
- (if (tim_in (ssname ss1 i))
9 [4 T$ ^! i4 G0 v( F; t* K, R - (progn
1 w7 p! X' t9 G! L7 Y) R# j4 X/ ~ - (ssdel (ssname ss1 i) ss1)8 ]8 ^3 q9 S _
- (setq i 0 l (1- l))8 `8 F! b% J% x
- )
2 }* L6 C! p' _- w* z* r - (setq i (1+ i))
. Q0 z1 J9 i1 H - )
" D# u6 G# N/ Y8 v! N8 k( Y3 @; _8 r - )
. ]$ Y) q: i8 D6 O+ S - (setq l (sslength ss1))" Y" N! t" c9 i6 X0 g. }
- (while (>= l 2)
& O& d/ m, p d2 @1 V' H+ d+ s7 \ - (setq e1 (ssname ss1 0)): V! ?- N, w# ]) |0 |5 c0 g
- (ssdel e1 ss1)
9 z6 _3 k4 G- M/ T0 j - (setq e2 nil i 0 l (sslength ss1))6 P2 k }$ L5 ?5 K1 h
- (while (< i l)
& p) ]) p5 U. p& [7 G - (if (timdt e1 (ssname ss1 i)). |( E" L0 t& d) W1 v5 a
- (progn
( ~+ E8 {, t* h7 L$ t( q - (setq e2 (ssname ss1 i))
, W0 g4 U5 J! F: ] n N3 ]- s( D1 ` - (setq dd (tim_out e1))
% S" f- [$ R% d - (setq dc (tim_out e2))
s( U: |3 \6 z( H$ o3 w; ]; p - )! p( v, x) t; ~( F( E/ ^
- )3 n. _# m L& J
- (setq i (1+ i))( T! g' x+ k+ D. {2 f. j" U( f: X- A B
- )$ u$ R3 R0 ]% ^7 G4 y$ e% ^
- (if e2 (progn
5 I1 p! E) C9 ` f8 K- e( @ - (ssdel e2 ss1)
# \0 S: @) }+ N5 w2 _1 @8 s - (command "_.ERASE" e2 "")- j1 Z- o$ A5 N$ y$ W
- (setq temp (entget e1))) t6 b0 e+ Q7 z- C# ]3 P7 K, c
- (setq old (assoc 10 temp))
: {; g9 Z! f! f; b5 a( y# g7 h - (setq new (cons 10 dd))
6 E5 D9 `# c9 w+ V4 a - (setq temp (subst new old temp))
# A( g+ h7 Z' `, W3 m( i2 f# x - (entmod temp)+ ] G9 Z* V4 `* T
- (setq temp (entget e1))) K9 o" x% i- h2 {! _/ E
- (setq old (assoc 11 temp))
& D, V) L' m' p - (setq new (cons 11 dc)); q1 v. P ?9 F9 K2 i: g2 W
- (setq temp (subst new old temp))
3 w" V4 @" v( B% d* k - (entmod temp) w/ d/ f4 g# o1 U+ L5 W& Y9 r
- (redraw e1): U0 u- E X3 _! S4 \# W1 g
- (setq l (sslength ss1))
: q; }4 C) L5 F: w/ W - )
, }+ [& C' Y7 I) i' g) f; J - )( w) |- |# [8 N
- )
& q) v& v: {; Q; a# i
) c \* v0 o6 `, W: P- (command "_.UCS" "" "_.UNDO" "E")
7 S, D% j# J1 ^3 O - (setvar "cmdecho" 1)
, e% }& o% Z2 V* d$ U& F - (setvar "blipmode" 0); ~8 [, b7 |; J$ o. n& ~
- (setq *error* olderr)
1 y) s. S7 l. f3 W7 z6 |) i9 E) J - (princ)/ u1 V1 j, S; P( m4 t- R
- )- e; l2 F5 d# i+ O: e3 b
- ;*********************************************************************! {2 g, _/ i2 Q
- (defun ketthuc ()
8 L3 P: w# {; l- } - (setvar "cmdecho" luuecho). l: [$ i) Z# n' y' b# J V8 r: A
- (setq *error* luu
+ V4 ~. H" q2 \1 d1 u) c - luu nil : y$ q, c1 B8 s b) A' \
- luuecho nil0 R% S+ c7 Z2 B7 u4 q1 {& U: L/ W
- );setq; G1 n; y5 G4 Y* T- o/ r
- (princ)+ g, U% b7 y. ~: o' D& K
- )
* Y) c. m# y0 ]0 G) M' N3 m - ;*********************************************************************
) `* Y5 |5 U: j! Z* ^) J - (defun modau ()' n9 R; M8 _# ~- N: a2 X) s' }
- (setq luu *error
. ?! `# |2 z, r$ [0 N - luuecho (getvar "cmdecho")
. }8 C/ f, G) w* i. j; T8 I' o - *error (ketthuc)
& ~5 L3 n- P. }+ M* d% { - )
4 k8 }/ Z# G* Y1 R# Y/ D - )3 ^6 q; k- D/ r* \" t
- ;*********************************************************************/ F8 i3 P% e4 F
- (defun xulytext (text / kytu ma sokt luusokt lui ), A" O# i5 S, C- T5 \# e# K( Q1 U
- (setq kytu (substr text (strlen text))8 c5 |, v1 `2 T: K
- ma (ascii kytu)1 p- U n. X, @) s5 s
- sokt (read kytu)
I9 x0 U; f: ~2 C4 Q% H - lui 1
0 E& P% Q& t6 @9 X7 C, q6 F - )6 |, L+ K( y/ T. w" J2 X( S3 \
- (if (numberp sokt)
2 M, G. R6 }) F% a T9 w# f3 j; f- a - (progn
. _# V! K2 A8 B; x8 [" q - (setq luusokt (1+ sokt))
( I7 q7 z7 m! s& n* @ - (if (and (numberp sokt)
9 l6 c9 E; s6 `0 Y - (> (strlen text) 1)( _6 u, g7 y, f0 T) W
- ) # F% `7 o' E1 [* q
- (progn
) X' ?: L; ~& L8 o7 {9 { - (setq kytu (substr text (1- (strlen text)))
; g5 {: j3 [" c4 k0 A - sokt (read kytu) , O" Z# v; M6 X. J# }" Z
- )- n# z5 { z6 X. U& F6 ~
- (if (numberp sokt) , O3 i& p+ C& @
- (setq luusokt (1+ sokt)
' O/ H7 p8 F6 m2 U; b - lui 2- G: o4 S) | ?! X5 w
- ) l& ]+ w( k P! h
- )9 \% y4 f$ a% q6 B4 A
- )- Q, _; t$ d2 B* }; r, L* E7 |
- );progn 6 S% J8 a7 E2 d+ r8 @) [
- )+ e* k R ^: n9 C
- (if (= luusokt 100) (setq luusokt 0))" z) B# \0 r4 O" J$ l
- (setq kytu (rtos luusokt 2 0). H0 O. r( X6 E! i5 T9 [8 ?
-
5 u+ l+ y) H: [ M3 }$ \ - text (strcat (substr text 1 (- (strlen text) lui)) kytu)
* _, [. @6 l4 R o# J! Z3 P9 I- S: R5 U - )! I) O- e1 k3 L1 \' w! v1 t: v
- );progn : A% C: E' e8 \! v# d
- (if (or (= kytu "z")
9 y/ A/ K( [6 U - (= kytu "Z")
" J. R' ?3 R- i K( P - )
; Z( q* _3 x, q4 m0 p - (setq text (strcat text "0")
: G: |7 h3 {$ V- }) _ - textxl "0"
`; T; e: t2 n0 X; a - ) Z$ j8 L4 T9 V
- (setq ma (1+ ma)
8 b( H0 k$ ?$ S! A - text (strcat (substr text 1 (1- (strlen text))) (chr ma))
" @6 J$ E2 _! Q8 q6 z2 d$ q. j - )# O9 _$ ~+ ]4 Y6 x% P! H. b$ Y
- );if4 ]7 b7 \* A+ P5 X4 Z/ p$ v- O, Q" X
- );if* i; p, O0 f4 U+ |; @: [
- )+ ~$ q. l3 }6 o: h6 g
- ;*********************************************************************
) j* X: n5 h" _4 D( Z# k - (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)
% g+ t5 \, W! t - ;Neu doi tuong la text thi tiep tuc
e! G; [, I( d - (setq doituong (entget tendoituong)8 W6 Q8 t8 X( u5 j) w
- kieu (cdr (assoc 0 doituong))
( W$ K9 b& [: A - canle (cdr (assoc 72 doituong))
+ C" z% D1 F1 s1 t5 [: K/ c - )
6 A5 S) m4 U% s& K - (if (or (= kieu "TEXT")
: @, j: ?6 W6 w! ^! _ A9 r - (= kieu "MTEXT")
9 \- a! ^1 k/ {: g3 K2 I2 T - )
' l/ F7 T" ^: L2 ~ - (progn
+ E% |# R7 s0 V5 f& p4 }/ a Z - (setq textxl (xulytext textxl)
0 t' \8 l7 s R0 R - text (cons 1 textxl)
) q& q `+ ]- I9 [& I8 u8 x U - vitri10 (cdr (assoc 10 doituong))
0 D" \: J8 @3 I) T: s( n4 a+ T - vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))
- ^ t! X, K4 l - vitri10 (cons 10 vitri10)
5 o6 T: G$ g- w% I( {- J$ B - vitri11 (cdr (assoc 11 doituong))% `, P G" c5 E Y" T q, l z
- vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))# r* c6 e, z9 s, Q( D R, q" E
- vitri11 (cons 11 vitri11)
( Z7 J' b, C3 I6 o - dem 0
! V" J; s& g0 y7 Q - dsach nil1 {) H& L9 h5 z* Z
- ): ]1 J+ j: z$ W" ], R
- (foreach tam doituong
$ X) \ |: O; P M6 V4 e+ s - (cond) U$ E+ d& T8 K4 Q
- ((= (car tam) 1) (setq dsach (append dsach (list text))))6 k4 W: I5 u# d9 a7 D
- ((= (car tam) 10) (setq dsach (append dsach (list vitri10))))
- L) t( c/ P" ]! S8 l: A - ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))
$ I/ \1 D( R9 H" q! a6 r - ((setq dsach (append dsach (list tam))))
2 k2 a4 _5 |/ B6 x. r6 |0 n - )) N0 ~+ W. J' o9 \3 u2 Q5 ]
- )
# B# R/ G7 u0 L- V( X% r' e$ I - (entmake dsach)0 _1 r, t8 _4 J3 t+ v4 r3 O
- );progn( y2 i; K: F8 q" K: x
- );if1 @5 k; j4 B7 O' ]7 |
- );
) r4 E( j: r ]) ] - ;*********************************************************************
$ Y ~" O2 ]) [$ Q d - ;sao doi tuong cu sang vi tri moi: w4 e( `! D# T0 {: X
: J" r$ e5 B% }5 v9 i" R5 G5 q& l- (defun copy_dt (tendoituong )
0 ^$ d5 E% F% L; \8 f* v, K2 ]5 Z8 M - (command "copy" tendoituong "" goc toi )
( D- `0 ]( A2 ^+ m% G" c - );defun) B, L" g4 `- @% r, q6 H
( u/ x8 Y, H5 S3 ?% q( v1 q/ `- ;*********************************************************************8 F" B$ U- T5 p8 P- d. M. T+ J
- 5 T, z" P7 S# O3 E, X$ c( F
- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
/ w& m2 n9 t# D) ]9 i3 ^0 ? - ; Khoi dau cua chuong trinh
9 N3 z7 q0 _9 @6 v, Q1 e8 } - (princ "\nCopy Inteligent...\n")
' s8 {: ?* o5 V - (setq luuecho (getvar "cmdecho")
+ k5 U3 @5 y( `( h3 h3 K: R5 h - luu *error*7 p! x' u4 X0 [
- *error* ketthuc
$ F3 C3 Y" _' Q' ^' o& Q y - cumdt (ssget)2 g. \' M' y- N
- dodai (sslength cumdt)1 [3 n& Z. X7 g
- goc (getpoint "\nSelect base point:")1 [- e* |5 y0 E7 L* F
- thoat nil
% x# I) q9 ]* u8 p2 r7 X - dem 0- e. b! w" k6 U4 H/ n
- textxl nil* N5 y' t1 p6 k& X
- );
' @2 ^+ t5 }" d* x. y - (setvar "cmdecho" 0)
$ d( c, \, ~. j: x - ; Loc ra duoc ong text de xu ly+ B" {0 U( P, i! T
- (while (and (= thoat nil)
' i; Z5 a+ `! V% O/ x- G$ p& r' r - (< dem dodai)/ y$ H# B* E4 P0 O
- )
0 }! L! i: ~2 S& W/ @6 p. z6 Y - (setq ten (ssname cumdt dem)/ S% l: r5 N: [/ q" h+ n
- dem (1+ dem)1 C, [9 q% G3 a, p) x( z0 ~
- doituong (entget ten)' U9 t' i) B [7 b6 o8 J
- kieu (cdr (assoc 0 doituong)) 5 N4 u2 Y# f) F" q
- )! R0 H' ~* e0 b3 j6 y# m
-
9 U3 R; q$ ~" e) H - (if (or (= kieu "TEXT")
) f- O2 u8 i% u, @( f' z+ a" l - (= kieu "MTEXT")
3 [+ \& z, `& g- s- i - )
: Z2 o9 C! ?# Q3 U - (setq thoat T
, G; {6 X( U; [ - textxl (cdr (assoc 1 doituong))
6 u0 B. j0 z: n& j) w; s - )& b+ P; {& _9 ` h9 ~ D+ t
- )
3 t. E" u0 }+ t5 k/ B: h& A+ Z4 | - );% i, O3 x! S4 k7 l7 B
- (while T
" B J6 b! H* ] - (setq toi (getpoint "\nSelect next point: " goc)
/ O5 y a3 i, {) \ - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))4 E3 ]8 }+ i6 e1 h! H2 _
- dem 0
6 _8 z% P/ ^4 F% b$ m) q! o2 h: p - )
9 y9 Q+ ]7 {; e# X, ~; B! _/ c7 r - (while (< dem dodai)
% Q1 T8 l3 c$ g) o. @/ j$ _ - (setq ten (ssname cumdt dem)
& [4 I; t; N9 E% y' r y. g - dem (1+ dem)
8 l/ e, G3 J7 x0 l" s; s2 k - doituong (entget ten)
8 ]2 U; v9 c; Q" }$ U+ R - kieu (cdr (assoc 0 doituong))
% I! c/ n* F k# ~% p* { - )
}$ X5 I* L8 m5 ~& u1 Y1 ]
- Z" a4 w+ q2 [4 n2 f- (if (or (= kieu "TEXT")
, R$ ~/ \8 Q, ?2 K - (= kieu "MTEXT") ( B# P* M7 B9 h5 ^% ` Z9 p
- )# I$ f2 b3 q0 Q+ I6 {
- (doitext ten)3 r$ n$ R E! i7 E- I2 s5 s
- (copy_dt ten)& X6 m( R3 U' y3 A) j$ o
1 s1 Y, r' M6 v; F/ S% A- );if; r9 y1 ^4 U* K0 L. D; J' t
- )
' y1 Q1 U, N3 O) n# T8 v/ U/ r - );while
u8 h2 j/ _" s; y - (ketthuc)
# m }! b( C8 K/ t5 O# W0 _ - );defun! E& { R' i n9 f0 P2 ~
- (princ "Type \"DG\" to start")
* ?6 i( I. ~+ J2 h5 @7 \1 C - ;Note: bien toan cuc: textxl vitrilech
6 ]. @3 |; K4 ^. T - # D! a- ]6 W# g1 B5 e
- ;=====================================================================
* ?& q# U( o! j4 b% P - ;;; PLJOINFUZZ.LSP
' s5 P; t# [' j+ N. X- l9 h& B3 G4 y - ;;; Joins lines, arcs and polylines using a fuzz distance* F- ~( ?+ f8 i$ {1 k& }. m& a% \8 h
- ;;; If only one object is selected it tries to join to all objects that are possible+ |9 j! k. g2 a5 b$ Y+ q
- ;;; By Jimmy Bergmark' q; }' M6 b1 C+ {( D- b- W+ X R
- ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved
- s6 h) T" z/ r& E - ;;; Website: www.jtbworld.com
" Q3 D5 I- R2 I - ;;; E-mail: info@jtbworld.com
& ~! R6 ^% P- Q1 v- W+ O: D - ;;; Tested on AutoCAD 2002,2004 and 2005; c6 ~- k3 q$ J3 @" Z0 V
- ;;; Latest revision made 2004-11-113 g4 B3 _* l! g4 I2 q0 R+ T# n
- ;;; Minor code cosmetic change made 2004-11-13" o- [! s' w* `
- ;;; Bug corrected 2004-12-23
5 y6 E ` F6 ~( R; `7 b - 2 N1 F( l8 }% \5 a6 Y
- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf
, `8 U- t+ O3 q3 \% a9 x. G - (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)0 H& E" i- ~8 z, D7 D. t; k
- (setq oldcmdecho (getvar "cmdecho"))) J2 ^- |0 P$ T* H
- (setq oldpeditaccept (getvar "PEDITACCEPT"))- K% \! u5 T% _8 ~1 `# Y
- (setvar "cmdecho" 0)
- q3 V# T5 w( D* |7 f" w - (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))" l3 Z7 a" S! v0 _& d( J
- (if A2k4 (setvar "PEDITACCEPT" 0))( { u! w: p7 H$ o$ R; s
- (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))
8 l4 T t+ n9 G* f7 F7 K. ? - (princ "\nSelect object to join: "); X+ k- j7 [ C/ R; `$ a
- (setq ss1 (ssget okObjects))
8 e* q1 w3 Q1 g' q7 M4 D) O" _ - (setq fuzz (getdist "\nFuzz distance <0>: "))
8 E9 u) @. t: Z& v/ ]! f# h. ~* h - (if (= fuzz nil) (setq fuzz 0))
1 O- v0 j' B" g4 K9 y1 w0 z/ o - (if (/= ss1 nil)( v% p) t/ x4 F/ f z9 }: y1 B
- (progn& c: I" r, Z+ V3 Q5 R* G
- (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0))))))
1 F b c1 y* q4 \ - (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects)))
, W4 ?. L* r% ^& w% I6 _4 U, { - (if (member objType '("LINE" "ARC"))
' Y( M& ^, \' y2 a& H( Z8 v5 V( A - (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")0 _5 @4 L! X9 V' S+ L
- (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")7 S5 A3 k: O. L% l' D+ G/ p, E
- )# y* Y, j; o" h8 N j j
- )
}9 C; q# @) ^8 F1 ? x# x - )
+ w0 P; w7 _ s7 R. ~0 p: s - (setvar "cmdecho" oldcmdecho)8 H: _. | Y/ Q$ C# T
- (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))
! }& W: t a2 u6 h" H - (princ)
$ m& ?5 N: H3 E0 |# M" j( Q - )5 s0 C( F8 n" |. G+ r
) ^$ ~6 e+ S: J1 I) ]) m- ;===========================VE CAO TRINH===========================9 C+ y+ R9 X+ H' @
- 7 J W6 r" @ L" @. j M) W
- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL! F7 h6 S2 t9 @! S* f
- CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)
! ]7 `+ B& Z" U7 U3 d - (SETQ OLDERR *error*
. z, `6 A O- B4 m4 B, |) K( w - *error* loisb)
" U& x) e& h# i, U" ^' u - (command "layer" "m" "dim" "c" "" """")
+ s8 H6 n, ~0 C- D% P0 v q0 | - (SETQ CMD (GETVAR "CMDECHO"))3 h3 `+ K% i9 K& E9 G/ q
- (SETQ NBC (GETVAR "CLAYER"))
8 o8 b/ b$ f( h$ }! H% c - (SETQ OSM (GETVAR "OSMODE"))+ O$ J) O* E5 D
- (SETVAR "CMDECHO" 0). b( i; q) ]' L! m- R! _5 ?
- (SETQ PT1 (GETPOINT "\nDiem cao trinh:"))( C" T) m3 Q6 X. r. b
- (SETQ TX (GETSTRING "\nCao trinh:"))
, M1 H/ }# F" }, t$ T$ c& a - (SETQ FCH (SUBSTR TX 1 1))
3 R$ v6 S a! e/ G( x" x - (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))
4 F1 P1 J& U/ V; e - (SETQ CRST (GETVAR "TEXTSTYLE"))
- I6 U, k7 `3 i% R - (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))" h4 g% y! n6 n9 R$ u& f: D ~1 M/ s- h
- (SETQ TSIZE (GETVAR "TEXTSIZE"))! ]' ~& \3 e8 m4 K7 V% a) x% ~
- (SETQ STR (RTOS TSIZE 2))3 G; Z: U2 V7 a4 m
- (SETQ PRMT (STRCAT "\nText height <" STR ">:")); m6 |; S; G" a+ F" R
- (IF (= RSIZE 0)
S5 h) b, y/ ~' N \" e+ Y, j - (PROGN
1 q: A) [9 N, U& @6 h+ g - (INITGET 4)
1 z- ^. c& x' q8 T - (SETQ TSIZE (GETREAL PRMT))9 G: ?; v9 V( C p4 B3 x
- (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))
. }5 V6 z, H: l4 O& i2 e - (SETVAR "TEXTSIZE" TSIZE))2 [% h' P" O- g$ b) ?6 B
- )
$ p0 w% [1 f* n - )
2 n3 p) |6 O! S5 A% `% U7 Y2 f9 l - (PRINC)) N2 ]$ }0 S6 ?5 \7 l, Z+ Q
- (SETQ TL (/ (GETVAR "TEXTSIZE") 2))
1 d# b- q7 l, d4 R- O/ y - (SETVAR "OSMODE" 0)- C" b2 m/ ~# V6 U
- (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))" ~& {/ b: E% M2 N
- (SETQ NPI (/ PI 2))4 I! ^7 B, [. j' h+ m% u) y& U) k* K
- (SETQ PT4 (POLAR PT1 NPI (* 1 TL)))% B2 N. i9 E- n% o$ t0 a8 ~; ^
- (SETQ PT2 (POLAR PT4 PI (* 2 TL)))( y2 Y, a. M) U, n% z2 O' ~
- (SETQ PT3 (POLAR PT4 0 (* 2 TL))) r. l }% s7 e: v+ c% T
- (SETQ PT5 (POLAR PT4 NPI (* 5 TL)))9 i- I! a7 o1 o. M- g& O' H& }( O
- (SETQ PT6 (POLAR PT2 NPI TL))# c. s2 k% L) n; L
- (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))
* K6 d3 T; G1 ]- L+ S - (SETQ PT8 (POLAR PT6 NPI (* 1 TL)))0 p3 h7 X+ p7 d! W* e
- (SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))
* w% H: h; S- r8 ^! u4 @ - (SETQ PT9 (POLAR PT1 pi (* 2 TL)))
0 d# j h% p# V - (SETQ PT10 (POLAR PT1 0 (* 2 TL))). F& z$ }7 e8 w6 v8 z% K9 j" `2 @
- (COMMAND "COLOR" "7" "")
8 q$ ]8 @1 l! s8 A) N - (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" "")6 {$ t9 ^3 v" R5 M
- (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX)) ]# y2 L, W8 {
- (COMMAND "COLOR" "BYLAYER" "")
- L. j5 G- x, S$ G# y+ W - (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 ""), l0 d6 u2 e5 q2 G
- (COMMAND "COLOR" "BYLAYER" "")
( Z0 t( a5 R: \& a/ U - (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")$ Q( e$ a1 |4 [3 Y# t
- (SETVAR "CLAYER" "0")
/ R3 `, u( c0 k, c! ^& ] - (command "ddedit" pause)
- H; j7 |1 V8 H - (COMMAND "COLOR" "BYLAYER" "")
& z/ ?# t4 ~3 l9 l% v' u - (SETVAR "CMDECHO" CMD)3 D- X; p' b2 U2 V6 C
- (SETVAR "CLAYER" NBC)
0 r3 o5 r+ e- n; q - (SETVAR "OSMODE" OSM) b2 B( ^& A4 K( O
- (PRINC)0 I$ I1 z; F( s n9 U+ j* G
- )4 Z( D1 i) q$ D/ q6 `' I$ Z
- 1 t/ ], b) Y) L7 N; g7 V) p
- ;;; =========================== VE NET CAT CHEO (GC) =============================1 Q. ]% ~1 I7 p# l
- 4 r V7 W/ f6 l1 m( }6 u
- (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang)
* [" k/ m& D* {0 L7 J* M" L5 Z - (setq x (getvar "osmode"))
- B" K6 A2 B: K$ S+ n - (setq p1 (getpoint "First point : ")" B; y+ \8 j. P. r6 c1 I
- p2 (getpoint p1 "Second point : "))
; n& I5 S7 O+ I) B: x: [ R - (setq l (distance p1 p2))
: N& _ ]* L0 }6 e - (setq p11 (polar p1 (angle p2 p1) (/ l 5))
9 O1 {4 T3 J* Y - p12 (polar p2 (angle p1 p2) (/ l 5)))
: D" h: b" D& N - (setq ang (angle p1 p2)). I/ R% o# u. n1 C) O5 C4 a5 y
- (setq p3 (polar p1 ang (/ l 2.5)); q5 w& ?2 c2 Z0 p
- p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))
" S/ F! I* z* u0 e - p5 (polar p3 ang (/ l 5)), f. L$ \0 }$ Q. j2 s$ f; D
- p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))) ^# w8 n) p- K" g0 h/ O8 w
- (setvar "osmode" 0)1 | r, Z4 D8 H5 j9 x+ S- l2 i
- (command "pline" p11 p3 p4 p6 p5 p12 "")7 S* k+ i' U4 \6 s9 ?
- (setvar "osmode" x)! c, ^# I9 a/ v. N, y' E0 S% ^3 m
- )) ]1 j5 ~9 L# Z, g, k7 m
- ;----------------------------------------------------------------------------------
* a9 J' }2 G, J - (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6: i: }$ \8 Y% N) p" Z, n
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))7 @8 _) c3 H$ F
- (setq ps1 (getpoint "\Chon diem thu nhat: "))' n) R1 Y! }7 _9 u
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))# R8 h1 s3 r& n
- (setq sb 50.0 sh 200.0 se 20.0)6 v( K! \# g! I& S. h% S
- (setq ang (angle ps1 ps2)): i' y d; ~9 b
- (setq pf1 (polar ps1 ang (- 0.0 se)))7 a a- u9 E/ w; u5 [! ? o
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
% ^( [, j, s1 O% ?' Y - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
3 A9 H7 ?% D. m' I( c8 t4 r% s - (setq pf5 (polar pf2 ang sb))
" N8 _5 Y K& L0 |) g) s& w - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
( E( p, y# s. P* i) Q: t - (setq pf6 (polar ps2 ang se))
! a% ~7 P7 z, u - (setvar "OSMODE" 0)
* P3 E a- g8 _: v - (setvar "BLIPMODE" 0)7 D: D" j1 N8 v: {+ u
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")" o# E8 S9 w; v$ H% S/ _* V7 T
- (setvar "OSMODE" 703)& Y) \3 k4 d7 [# j; k, l
- (princ) )
A- f, I# O, v, F9 g: ?% | - ;----------------------------------------------------------------------------------9 {( y, Y& C) H
- (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf60 ^6 W2 @- b4 m0 {. V
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
) u2 H- n3 Q; U: Z - (setq ps1 (getpoint "\Chon diem thu nhat: "))
/ h( k D& i, e( Y0 L: X - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))6 {( J* }4 Y& G7 k$ K
- (setq sb 100.0 sh 150.0 se 20.0)
0 P& d5 D0 f0 S+ [ G: c. T - (setq ang (angle ps1 ps2))
, _- ]" p/ y6 u* g2 e - (setq pf1 (polar ps1 ang (- 0.0 se)))$ U- c5 k" ?+ m8 R
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))3 A" _# F* B; Z a- A3 i& E1 S
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))" }$ ?; I; F2 w# x1 H0 i2 E
- (setq pf5 (polar pf2 ang sb))9 N. e: H2 P( _9 |( r% f0 x
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
|0 ~5 j' H j9 }) W& n- d4 H - (setq pf6 (polar ps2 ang se))
/ D0 Y# s, \ h) t3 y - (setvar "OSMODE" 0)
: M* [* W+ u/ [' U8 S - (setvar "BLIPMODE" 0)) K" \: {& v( |. V0 P
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")( \2 D7 C7 `( o
- (setvar "OSMODE" 703) {& w& \+ b& i- O% k* [9 ?' b
- (princ) )$ Q3 l( q( R; z6 H9 r
- ;----------------------------------------------------------------------------------+ v: Q6 h" B, ~5 }* r8 F/ T9 f
- (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
* g4 O( i+ u9 R }8 C. _# m - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
3 x& I' q& S9 D8 n# ?. A3 g2 \) e0 d - (setq ps1 (getpoint "\Chon diem thu nhat: "))
% y! C1 x6 u) z/ S1 z5 h - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))6 r# [7 g5 v. O
- (setq sb 100.0 sh 250.0 se 20.0)
6 u: N6 v6 n; O& h' X a' D - (setq ang (angle ps1 ps2))
+ h6 Q$ A( P9 w) t' U2 Y5 M - (setq pf1 (polar ps1 ang (- 0.0 se)))
; v' h! b7 s. }% e - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
) P5 v+ h4 k: {# ]# t5 n - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))/ V% D" o9 u) D$ n
- (setq pf5 (polar pf2 ang sb))
- l! Y& g5 }: m0 b! e - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
3 I0 ^/ U2 P# H& ^, C5 | - (setq pf6 (polar ps2 ang se))
/ ]# w9 X. J7 e7 J1 Y$ @ - (setvar "OSMODE" 0)" e, `7 j" f4 X. p* O. j; Q! R3 g1 Q
- (setvar "BLIPMODE" 0)8 U1 _+ [6 m1 e L! s# R0 \' u
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
0 ]' @' Y7 E/ [ - (setvar "OSMODE" 703)
; S2 H" v! j" L/ [; [ - (princ) ); }0 h$ L; x* h) w- m: y& n# s
- : d5 I; J; d/ `( u! k* _ u
- ;==================================================================================* i. m+ ]) ^& M7 d
- (defun c:ang (/ ent pt1 pt2 ang)
- y2 D- X8 `6 _ r" Z2 n - (setq cmd (getvar "cmdecho"))% }# n2 e; S! n7 I" E
- (setvar "cmdecho" 1)' m- f; N4 [" S4 d _! o! K
- (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))2 Q: Z' e" _9 g
- (setq ent (entsel "\nChon duong thang:"))) }; {- ]- {2 | y2 B) ^
- (if ent
. \, L7 g4 ]6 N9 g4 Y! e0 _4 b - (progn/ }6 ]$ t" t0 t9 l
- (setq ent (entget (car ent)))+ I7 O x0 j! }) T
- (setq pt1 (cdr (assoc 10 ent)))
* _# [; d, L8 s: _' X6 @. l! K - (setq pt2 (cdr (assoc 11 ent)))9 ^) K0 c7 _4 m: q1 m
- (setq ang (angle pt1 pt2))
( l( I( G2 h0 q: {! ]# { - (setq ang (/ (* ang 180.0) pi))/ j I! R! s/ b- {
- (setvar "cmdecho" 0)( Z8 s" {) m* p D _- Q- _; i
- (command "setvar" "snapang" ang)* I- A- o" h; v S$ x
- (princ "\nGoc cua truc toa do moi : ")
1 n7 s+ U( c) k" O - (princ ang)
% s4 w/ u; R6 [2 u9 F- x2 a4 v: s - )
5 B+ [! ` ?0 f8 i7 ]3 e - ): j9 T1 }& t. P( h0 B
- (setvar "cmdecho" cmd)
8 U; \( \" @( v, R/ W+ K2 S - (princ). q' X3 Q) l$ w( c' W. F
- )% b' x8 I- b: a" S) y
- ;==================================================================================9 y4 [6 \7 I9 u9 R; m# B* g
- ;============================== KY HIEU DOI XUNG ==============================
9 f% k3 m/ [+ L" \, S! Y% C - ;==================================================================================3 K) [+ q2 B/ D% j8 G. A9 Y! R% J
. k0 r/ t* m, C& d- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT99 V) o: K4 B- r# _
- SZ G45 G135 G90 G180 SS loi)
3 Y& Q$ B- \8 B4 x P% Y$ T - (defun loi (s)
/ R. p& H0 o4 o* Y - (if (= s "Function cancelled")
. V* Y8 V, Q7 \5 M" @( c - (princ)3 X1 h+ \" d/ P3 z
- (princ (strcat "Error:" s))+ t8 h4 o3 D% W3 v* W
- ) ]: C- v8 Z ^8 w- a8 R
- (SETVAR "CMDECHO" CMD)9 ~" l+ G. q: Y, F$ A& v9 R
- (SETVAR "OSMODE" OSM)0 u8 M1 J$ j6 h" N# h3 G. I% C) N
- (SETQ *error* OLDERR)
- A" Y/ r2 m8 U+ C - (PRINC)
# S6 R2 f% ? d; J' t2 ^" J7 d- f, I4 k - )$ c! R2 W$ J- x0 Q% E m
- (SETQ CMD (GETVAR "CMDECHO"))0 w+ h3 p1 c3 }3 b- o( N0 ?
- (SETQ OSM (GETVAR "OSMODE"))
6 t$ b, Y! D2 m$ t e - (SETVAR "CMDECHO" 0)( ]* l6 ~5 K1 Y6 @
- (SETQ OLDERR *error*/ M4 P& m9 x8 s. R% x# M
- *error* loi)
5 P9 ]5 A7 u2 ~( w - (SETQ SZ (GETREAL "Size <1>:"))
# `# ]3 r$ k- l5 o, ]- R& V - (IF (= SZ nil) (SETQ SZ 100))8 }0 `; b4 a6 E$ {: D
- (SETQ G45 (/ PI 4))# c* d8 ?* x0 N6 |( p0 r
- (SETQ G135 (* 3 (/ PI 4)))' \8 N$ \0 r* g8 b- s
- (SETQ G90 (- G45 (/ PI 2)))8 I) o( |" j$ o u0 |5 b0 d
- (SETQ G180 (+ G135 (/ PI 2)))
' c* o3 P X' d& i6 J - (SETQ PT1 (GETPOINT "\nDiem doi xung:"))
% {# R- y& ^8 R( H. } - (SETVAR "OSMODE" 0)" q d7 h( N$ m4 K
- (SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))* T: f% N; o& p+ K, c
- (SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))2 |# X* o6 u7 C2 J; d+ P4 Z
- (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))
; }# Q1 o8 R y6 p) _% T! }( [ - (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))
* B' D# O6 r' V - (SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))
/ U3 r( Y8 h- I0 Z9 x - (SETQ PT7 (POLAR PT1 G135 (* 1 SZ)))
& h4 {1 m/ z8 t" \+ V& j& V6 P - (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))
' E, k' e' u2 t" G - (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))
6 I- W9 g1 ?0 [ - (PRINC "\nGoc quay:")
, s9 l- [ u) ]( f! t - (SETQ SS (SSADD))+ c; z! o0 h" Y: z
- (command "layer" "m" "Dim" "c" "" """")
2 D* B* [8 { I& s' c - (COMMAND "COLOR" "1" "")
# t& J3 F9 I' P) u/ I8 A1 g+ B - (COMMAND "LINE" PT8 PT2 "")3 q2 g5 S7 t0 x N& u
- (SETQ SS (SSADD (ENTLAST) SS))
6 |8 `' g5 \/ Q; l: R - (COMMAND "LINE" PT9 PT5 "")
# n. L7 u1 ~. d9 P5 z# ~" s0 n - (SETQ SS (SSADD (ENTLAST) SS))7 `: B: | K7 n, ^
- (COMMAND "COLOR" "1" "")
; C8 x: ^7 v" U) c! ?, M0 K6 t - (COMMAND "SOLID" PT2 PT3 PT4 "" "")! ~/ [5 Q# b5 y2 A$ C
- (SETQ SS (SSADD (ENTLAST) SS))
( ^+ q3 w c( I - (COMMAND "SOLID" PT5 PT6 PT7 "" "")% S" u8 ]6 c _/ p$ Y, g- W
- (SETQ SS (SSADD (ENTLAST) SS))
8 D. w8 {: }& z0 I - (COMMAND "ROTATE" SS "" PT1 PAUSE)
# \( R, c& o; e# v l - (COMMAND "COLOR" "BYLAYER" ""). \6 ^8 G1 ] z4 {5 J4 Y$ ~! M
- (SETVAR "CMDECHO" CMD)6 w! x7 M0 B$ z3 L9 `4 S1 O; @
- (SETVAR "OSMODE" OSM)3 ~3 z5 \+ [! I- ], M2 N; ]3 _/ t* `( i
- (SETQ *error* OLDERR)
* Y' [" J* _! B6 E% N1 [ - (PRINC)5 c/ |8 W7 @3 t3 ^' ~3 Y+ l3 I
- )
8 h4 ?* H1 h# ~5 l0 d - ; C$ ?" G5 m& _( t
- ;==================================================================================
" k2 J6 S) [# e: \/ k9 G- c - ;================================= KY HIEU TRUC ===============================
: P8 q6 f- T* f - ;==================================================================================' w# e; m2 p- f- I( s- W2 g
- 7 g! m) e; j3 B0 U$ G- F
- (defun C:vetruc ()- w2 g% F; n0 o9 p+ O0 A
- (setq bk (getvar "USERR3"))
6 f- _' S$ K- g& b - (if (= bk 0)
" }: B9 [1 `! f& p, K" o - (progn
5 ]$ \# Y( C1 w: a, q& d - (setq cont "1")
) |3 {7 X5 a/ B: f5 G- i. E$ P* H8 v - (setvar "USERR3" 1)
- \ l; u. U4 c( |/ f! c3 \ - )3 Q. T# X; m j) _) {
- (setq cont (rtos bk))' Y# X v; `3 S9 T3 }/ A) t- E& `
- )% e& `4 a9 F" o {/ S7 M
- (setq pt1 (getpoint "\n Nhap diem dat:"))
2 E( Z R& `/ ?. ~, i+ ^* O1 | - (command "layer" "m" "Dim" "c" "" """")
2 Z- f% }, Y9 O4 }! D+ d0 t - (command "osnap" "")
! C# c/ K% K5 p2 L, C' v3 F& {* } - (COMMAND "COLOR" "7" "")4 b2 F+ X+ {) |
- (command "circle" pt1 150 "")
+ h% J: Q ^6 F" u8 p3 G - (setq pt2 (polar pt1 0 150))
3 q# Q) t5 }3 ~0 T1 L - (setq pt3 (polar pt1 (/ pi 1) 150))
4 U6 Z3 k4 C$ ?0 k8 {8 G - (setq pt4 (polar pt1 0 300))# i: F: `) ~- x' g. \) _8 E- m+ P
- (setq pt5 (polar pt1 (/ pi 1) 300))! R+ R0 C1 j' |5 i* U- a) g" ?. c
- (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150))& G3 K3 [ Y# i. P# {( I
- (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))
5 k% S; \( F6 Y; |2 z - (setq pt8 (polar pt1 (/ pi 2) 150)), L L4 `5 w' J' M% |! X
- (setq pt9 (polar pt1 (/ pi 2) 300))
$ D5 G* [4 t1 ?4 p - (setq pt10 (polar pt1 0 150))3 Y# L6 S" }1 [
- (setq pt11 (polar pt1 (/ pi 4) 150))
/ k5 j7 V6 N* x. G- f - (COMMAND "COLOR" "BYLAYER" ""). G8 ~+ c7 N }& J0 ^& O3 U( o$ W
- (command "line" pt2 pt4 "")
7 P! M* I# O5 N' \. ?9 U - (command "line" pt6 pt7 "")
8 v0 l# h; t9 `2 s0 B1 y7 d; | - (command "line" pt3 pt5 ""): h, d7 j8 w; P& r2 T% o6 f$ Q2 T
- (command "line" pt8 pt9 "")
9 V* E; T6 ]1 c" x; ^ - (setq dk (strcat "\n Size:<"cont">"))5 T# w, z( E% A( }
- (setq bk (getreal dk))
" w$ q; g% G. \1 J - (if (= bk nil)
% |/ o+ B1 s/ x. X) I) ^7 M+ j - (progn
' Z3 c8 P; @7 q6 t2 U - (setq bk (getvar "USERR3")): t0 }& d" i6 l* U3 u2 {7 |
- ) @4 D1 ?# T8 ^$ K) \
- (setvar "USERR3" bk)) d7 U5 a$ w0 L2 J9 E
- )0 _1 K2 v+ Q4 ?! c7 x# X2 X& _+ \
- (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")
; \' N7 y7 K' c. Y6 F& C0 u+ O - (COMMAND "COLOR" "7" "")4 i& P# }! `, A- Z
- (COMMAND "STYLE" "Truc" "impact" "" "" "" "" "")1 J$ o8 N* \; b: M' i5 e1 H* c
- (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "") 4 D1 \2 z- [% w9 K) H# S; d
- (COMMAND "COLOR" "BYLAYER" "")
& O+ Z; V8 D" \7 X7 b1 b - )
) V# @+ F8 @5 E7 R - ! [$ t- y$ |6 S) c# @. S
- ;=====================================================================3 Z7 Z) N! J) d$ W
- ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)
: [% I7 l. T n8 P/ z - ;5 P/ n& b( r7 H6 N7 B
- ;Jeffery P Sanders
T7 k: l" j/ h- g% S - ;
! T6 ]/ p3 F7 B - (defun C:CA(/ en enlist tx newtx cnt tp asc note)5 _" D K: R8 j1 K4 M
- (setvar "cmdecho" 0)6 l+ N; C. j6 L( N( V
- (if(setq en(entsel))! W8 x" ]' |' s6 p Q7 T
- (progn H7 z3 B8 T" p$ _ i/ f! j$ E
- (setq enlist(entget(car en)))% k1 s/ F1 E' Z; k" ]8 k% C+ X/ c6 Z
- (if(= "TEXT"(cdr(assoc 0 enlist)))8 K. b1 l+ O: l, ~+ ]' r: \ R
- (progn1 l+ _: E7 I: k* W5 u9 v7 F
- (setq tx(cdr(assoc 1 enlist)): w; V2 {* D: q! e7 Y$ g' q1 L: i( t# H
- newtx "" cnt(strlen tx)
& I9 P* R8 U/ w" r9 `; S" n - note "\n...CASE Reversed. \n "
5 R6 j' l( d( k' i8 `/ s - )
7 z$ o& D2 K/ V; z6 U( q' | - (while (> cnt 0)' d( v$ |1 K d! r, ]
- (setq tp(substr tx cnt 1))) e1 v8 E6 S/ k) U# N4 J' ^; }
- (setq asc(ascii tp))
7 m! _7 Y3 n) o$ Z) w# D - (if (> asc 96)
/ @$ r+ ^4 k. [7 P - (setq tp(strcase tp))% }5 C0 ]8 ?$ p Z! x# F4 T
- (setq tp(strcase tp T))
0 Y6 M! R/ r- } y( Y3 ?% }' K - )
! L& [, n6 _0 b( t" i; W - (setq newtx(strcat tp newtx)): g( Q, {! f( }! A/ _
- (setq cnt(- cnt 1))" l& \- {' d( \1 B
- )
/ W: Q0 y, d% m1 q2 a - (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))5 f. {) O7 D3 ^ d# a# ?
- (entmod enlist)
& }: B H7 J: ~( ~' g. ~ l5 b - )
; a# ~& x) U# Z3 T8 \) Z8 }6 \ - (setq note "\n....Text Only Please. \n ")
; u, j, B" X% t/ H' w* O - )
5 q. k; r2 J* M4 ] - )
2 R/ N/ z% A7 I- `$ b- w6 N, ^8 ^6 Q' w - (setq note "\n....Nothing Selected. \n ")
2 p1 F5 e. A+ S2 A - )9 F( e$ h6 r; k8 G
- (setvar "cmdecho" 1)
& Y3 E3 x! i) c) w - (princ note)
. Q' z- J8 p! u f% o: l - (princ)0 Q% z, v5 \, |9 K% h: C% b0 L
- )
' l7 _9 e8 u" W! n
: t# F3 L. G" s2 l; s- ;=====================================================================
" e2 p* o( C; w( V! y! k - ;==================== NEW TEXT STYLE UPDATE ==========================% Z- t5 K" ?- z
- ;=====================================================================, C# K" \) m* T5 ~( M" d0 G) K0 P
3 W7 R# v9 M! u [ c- (defun c:nS (/ tdt ssdt sodt index)
; M5 x% a2 N% I6 h+ O$ \. }/ K! D - (defun ObjName (ssdt /)- B) D! {6 V* m4 O
- (cdr (assoc '0 (entget ssdt)))" q1 O* Q( R5 w, B1 D
- )
: U+ r0 S+ W: M9 |4 p - (defun MoPL (ssdt /)4 f) t, J+ u) J
- (= (cdr (assoc '70 (entget ssdt))) 0)
/ s/ `, b2 K2 K0 z - )
! C! b8 `- K+ L8 G - (defun NoiPL (ssdt /)
( R G1 [9 I1 W* A7 J - (if (MoPL ssdt)
" |$ `: f1 X3 i( N6 d' I9 ^- k - (command ".PEDIT" ssdt "J" "All" "" "X")) M+ e- u6 e) R+ D% U
- )0 W8 x w" L* @3 z% K
- )
" U# O. j6 ]4 `0 g# w. }" ^ - (defun NoiLC (ssdt /)# C T" `; l1 E& C- c( V4 \
- (command ".PEDIT" ssdt "Y" "J" "All" "" "X")
1 K' v3 K- H8 z - )$ _. A% c) P: s, T4 `5 T+ u
- (setq, l! b* O$ M( Q0 n9 ]
- tdt (ssget)
* b, `3 Z* K0 m- U. L* ^ - sodt (sslength tdt)8 X z) E, c5 b/ o- @& g& [# c
- index 0
3 r: X) j0 J6 U* k& p) |! H - )& x3 U ~% D/ _
- (repeat sodt# `& _1 u' [! p- N7 e) a$ [
- (setq
$ U2 ^0 W5 {4 J( |* J - ssdt (ssname tdt index) R# ]* |) W4 [# P1 {% K
- index (1+ index)2 y7 z3 Q: p% {& Y" R- t, v. b
- )$ ^% e, t+ J- j8 P6 ?; Q
- (if (or (= (Objname ssdt) "LWPOLYLINE")
0 T& x" I( a- }' @ - (= (Objname ssdt) "POLYLINE") F* c+ ~" s" f* H! e5 h! S/ b# r: j0 j
- ). Z6 z6 p) M( o. R; y, f Q
- (NoiPL ssdt)
9 U$ J7 b' L0 ~+ l* u - )
1 A! j; l8 C& D - (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))
$ T: [. g9 ^4 j - (NoiLC ssdt) I- \2 d8 D. C3 `
- )& Q% @- j) g9 c
- ): P2 Z$ ?2 e* l1 A/ I! R( |2 `6 N
- (princ)1 X" r) q" P: q
- )
8 G# o% K: Y7 S5 W
$ X! e- M7 c$ k+ g; N- ;=====================================================================
/ U$ d" ~5 A2 g; E - ;;; AREAM.LSP
/ l( t v+ ~. T% i9 ?3 ` - ;;; Function: Calculates the total area of selected objects+ [- J; }* A# M' Q" a3 }
- ;;; By Jimmy Bergmark" z8 J R i( ~0 q, Z5 ~7 g2 }. F$ M
- ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved
1 Y/ ~; {, b% ~; m. V5 |$ j9 @ - ;;; Tested on AutoCAD 2000
& ^ s u. b. p/ ^ - 5 e; y, x* ~$ J5 R$ f) B* C2 D- Z
- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)( C) d+ j# Q8 z% T0 Q
- (defun errexit (s)
, `6 y3 ^. R5 s& z$ U - (restore) c3 x# e8 i" j
- )
1 }/ a1 f1 R& s! y - $ S' S n( F7 E
- (defun undox ()1 C2 J& B p* ]( C" W
- (command "._undo" "_E")
& M3 I/ |; U" |- s' w" K - (setvar "cmdecho" oldcmdecho)9 i0 X: {$ n5 _% Z
- (setq *error* olderr)
* G/ n) U8 U0 l) c- O - (princ)
& }, j& {/ n# H( u - )1 H" m. y7 C2 n7 t/ m/ a0 M
$ {5 n$ s1 D$ {& Z- (setq olderr *error*4 t6 ]8 D S# Q- C3 i+ j$ C
- restore undox; [% L# e' Q Y% ], \1 `+ G" [
- *error* errexit
5 x) z$ _" n7 Z) Y. P+ X - )8 l' S2 j G) {* O
- (setq oldcmdecho (getvar "cmdecho"))
. d& Q" |& y% d) c* r& J - (setvar "cmdecho" 0)& _9 Y! M( a8 B3 o, Y% C9 y; |* Z
- (command "._UNDO" "_BE")5 B% ?' D2 {, f% L' f+ N
- (if (setq ss1 (ssget '((-4 . "<OR") k! q, }/ W0 G/ ]4 _' ~
- (0 . "POLYLINE")6 C$ s: a% c# U/ @
- (0 . "LWPOLYLINE")
8 e4 c2 s" Y' ?2 F" J6 n& r0 a - (0 . "CIRCLE")9 e( {5 R# e0 R6 w" Z
- (0 . "ELLIPSE")
! s: n/ S! o7 a - (0 . "SPLINE")! A$ | Q7 N, l0 M; n! q5 Z4 Y* |
- (0 . "REGION")
Z/ F) _8 o& V4 t# C0 J( p - (-4 . "OR>")
+ T* X: \6 U9 `+ c6 K" |/ T - )
/ T+ }& @ g: r$ _" C! r$ v3 P1 O$ O - )
( J# G- l* ~" Q5 \$ C& k" U _ g - )
, p0 R4 q6 I. n% [. h$ {& A - (progn
2 U8 |$ J7 ^% X# I - (setq nr 0)" d* B+ [+ O4 ~3 W; x& o" I9 F
- (setq tot_area 0.0)
$ E# ~* {, K# H! K - (setq en (ssname ss1 nr))
0 k! P% n2 g9 `, T: ^- d - (while en8 r8 h6 R/ W' h) _& r
- (command "._area" "_O" en)
4 p3 w8 ?$ ^4 d7 |; n* p, O# E - (setq tot_area (+ tot_area (getvar "area")))
1 h7 Q8 J7 L2 i* E1 k: v - (setq nr (1+ nr))
5 q# ?9 N: ^: B# S4 \ - (setq en (ssname ss1 nr))2 x5 ^0 p8 J4 o; p
- )
2 t8 s5 }0 q( n+ o - (princ "\nTotal Area = ")
s' m3 K9 P$ c" d; V" x - (princ tot_area)
$ z* l* \7 E- r - )7 Z* h$ b9 ?4 X
- ), e% n! r2 T4 x- [
- (restore)
" ~5 N( D5 x: l `( Q% Z% ] - ): i5 i$ j' V; U% |& K9 K7 y
0 l, j' }4 q4 X/ O- ;=====================================================================
4 K% G% `9 w: Z/ I2 N0 p) Y' W - ;;; By Jimmy Bergmark# C6 E5 v, y& U" X
- ;;; Copyright (C) 2008 JTB World, All Rights Reserved; o0 Z2 Y* \* ]' R+ T& H/ H( N
- ;;;
4 z9 p0 `6 z$ h* ~ - ;;; Created: 2008-03-31
7 F1 m4 \4 {" n% G1 e; C - ;;;
! N- A* ^- ?- E5 {* E9 p" @4 P - ;;; Convert Attribute definitions to mtext2 e6 y' \$ K5 D3 J
- ;;;$ F9 y2 j5 G( \9 Q& B
- & B! m: {* ?: g. H' ^4 y
- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)
/ A$ g# p$ I8 v( q7 X' ?8 p7 N - (setq eset1 (ssget (list (cons 0 "ATTDEF")))' C9 s" j' n" }3 }! Q
- blkcnt 0' I6 @3 j9 r- Q) Z2 ?
- )+ F2 q# H5 R; M, ?$ p2 n
- # e9 F( W7 s( U; T; V" r. [8 h
- (if eset1! b( s; ~! s+ X4 S! d4 S
- (while (<= blkcnt (- (sslength eset1) 1))9 r+ P$ L+ G5 E0 Z7 [
- (setq en (ssname eset1 blkcnt)9 j- s, f; z; ]
- enlist (entget en)
) r2 j8 h( \0 _+ { w - ht (cdr (assoc 40 enlist)). ]3 \$ V# L2 C. o2 z0 S- c
- pnt (assoc 10 enlist); f+ z+ k/ I, ?' C8 u
- pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt), b, t$ T1 q4 o c; f
- space (cdr (assoc 67 enlist))
: u0 U" V! n5 z* R - ). n1 e+ r( M1 K1 M
- (setq vl (list! z# z _1 `7 P; N7 c. q/ N) g% u
- (cons 0 "MTEXT")
& L1 E+ ]5 g' D# \ P - (cons 100 "AcDbEntity")/ m6 h; ^7 X) ?1 v9 ?3 j
- (cons 100 "AcDbMText"): l* `1 h( X% k4 w2 }; o8 ]( Y
- (assoc 7 enlist)/ O$ T$ i! k- s. e7 w# o" I& J7 J. b+ H
- (assoc 8 enlist)
3 ?! g. ]- z6 r. C0 L8 g7 v - pnt
$ [6 N- p& c4 }, n - (assoc 40 enlist)
5 e1 c5 y$ u9 e# n& N$ r0 |1 r/ E - (cond ((assoc 62 enlist))
+ P; R( I+ x& h: K - ((cons 62 256))
; ~9 h0 _( Y0 n5 _- k- K0 x9 K - )- v$ Z, B/ A( r& K) w
- (cons 1 (cdr (assoc 2 enlist)))5 y ?/ o6 C* v( \' Z3 r; }/ O" Z& u
- (if (= space nil)* L: {. }( _! W5 V% t+ a" v
- (cons 67 0) s! V- v1 u1 g0 ]) A! ]; h, ^
- (cons 67 space)
4 t# Z8 g+ s2 F4 R - )3 g1 ^/ Q/ I, `+ o' T% d. c
- )
. e) d i) D n5 f! Q- J- N [) ]4 q: B - )- E; g6 R% Y/ P/ [8 X" h
- (entdel en)3 I( W' G' @4 A8 p( D6 ?0 Q
- (entmake vl)3 ?- u! o9 ?( i) ?' ~
- (setq blkcnt (1+ blkcnt))3 ?; o5 C/ g$ {: `% c
- )! v |. }7 ~7 m6 y8 B! y6 D
- )) W! s: x# Q! K' O2 l. u' ^
- )- H8 m. ~% a& O0 P# R- W
' ~+ D( r; v& @8 x4 y$ H8 r- ;=====================================================================
% r& @/ v6 O" y2 a$ K
4 ^1 [: K" i! C, U2 {2 l3 _) j- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
7 W( I- l* `. U h$ ` - ; Khoi dau cua chuong trinh# r+ V+ B3 ]( _1 t+ b3 P4 z
- (princ "\nCopy Inteligent...\n")0 ~7 L" x+ ~' B5 p: n3 I6 Z7 L6 b
- (setq luuecho (getvar "cmdecho")
3 N! e1 N9 _5 o - luu *error*) c+ B% w6 x+ `2 O
- *error* ketthuc
4 j6 r$ F" n& `; K; h5 _ - cumdt (ssget): j7 A5 K' l, c9 r1 k; U
- dodai (sslength cumdt)
0 U9 @3 y& G7 X1 W4 l - goc (getpoint "\nSelect base point:")
+ {" g# d/ P. l: V% R - thoat nil
& q6 \. s$ A% c! x$ t P( O2 u - dem 00 p$ S) [* V3 L+ F8 | e! n" S
- textxl nil; [0 q7 b3 c5 g" H) l$ g) ?+ m& [
- );
! A7 i. Q' O% b$ O" N4 q$ K. ? - (setvar "cmdecho" 0)
+ Z0 `. j1 b6 o3 ]9 S - ; Loc ra duoc ong text de xu ly* w- q0 K2 c& t0 ?
- (while (and (= thoat nil)) x; M- R4 F3 O! z) n
- (< dem dodai)
% y x3 X& P& U# R. J [ - )( c8 J: L4 E# S1 S7 Z6 @1 v% b
- (setq ten (ssname cumdt dem)
+ _2 p7 N# P J7 {. E - dem (1+ dem)& Y6 @8 _' U# F* ?% e
- doituong (entget ten): u9 b* n5 d4 r
- kieu (cdr (assoc 0 doituong))
# w8 d* C7 u! p9 ^ - )
3 P$ j5 z" o3 L. ^/ ~ - 8 r- X" Y7 K$ D. \8 P
- (if (or (= kieu "TEXT")
' p( e# U0 G7 o* X - (= kieu "MTEXT") 6 l0 E' ]/ W r9 k b" q" O! W
- )* Q) {! A) y) \* d
- (setq thoat T
9 t% u0 U6 z4 O: R I, W - textxl (cdr (assoc 1 doituong)) , j0 Y0 t6 v d. E, e! _( Y1 Z0 R
- )
+ A! I$ ^ a, G! B - ): r# Z7 u: K$ s
- );
+ G3 Q" E0 T1 T ? - (while T + t O4 Z3 m# `; }2 @
- (setq toi (getpoint "\nSelect next point: " goc)
. l/ P7 D& Q9 s$ O - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))3 S; G) _" n3 m
- dem 0
& T1 i9 C! D1 f! {2 c5 f4 O' n: E - )
$ J: }" B# v$ u% D- ?* _ - (while (< dem dodai)
, V! m$ \1 ~2 \, f - (setq ten (ssname cumdt dem)# l, [8 E( M' ?1 E
- dem (1+ dem); K9 r- ?, ]% p7 T) k
- doituong (entget ten)
2 o. G) z* }+ H. g" Z# f. \ - kieu (cdr (assoc 0 doituong)) + \# P/ `9 r/ X7 u {, v2 g% i; U0 ~ h. w
- )& x d: K0 C) ~
- 5 F4 L- U+ F2 j: ?2 @; G
- (if (or (= kieu "TEXT"); k) v u9 X6 V% v
- (= kieu "MTEXT")
" J0 q: }, P" t# J. ^9 f3 L! O - )! j, T* n, r7 I) ]. p5 E
- (doitext ten)2 m. t! ^+ E; a& O$ @8 @+ y4 a* V
- (copy_dt ten)% \- Y( w9 q" N0 ?3 T8 d$ v
- * m4 R9 ^) c. ^5 Q0 C
- );if3 D1 s, b8 B. u9 t7 \. k6 g) p; T
- ): M y& @. E" {0 R K
- );while7 H! ^: _2 H5 m& f) x* @" @
- (ketthuc)
* t) b9 U; F5 z& W - );defun
9 e& B& [# F: L, } - (princ)
7 X& z( N4 W+ @" N! ^6 n - $ w8 z2 E$ Q2 T- r0 b
- ;=====================================================================
7 q; \& L) e. ]* X5 u# K - ;;; By Jimmy Bergmark9 C9 ]5 i" n) q( j' R
- ;;; Copyright (C) 2008 JTB World, All Rights Reserved6 w9 P y3 N% C# y1 Z
- ;;;$ F3 d ~/ C* J
- ;;; Created: 2008-03-31
3 r: M. I2 ?' B+ C( N1 P - ;;;& B2 J7 N7 M2 D# {' B1 B
- ;;; Convert Attribute definitions to text4 W4 [+ f4 H3 m: `
- ;;;
8 `, h D |% W5 N: ~ o, @
$ \5 Z' e, b/ w! L6 _- E+ m- (defun c:ATT (/ eset1 blkcnt en enlist vl space)9 n6 W0 g/ {9 T; D
- (setq eset1 (ssget (list (cons 0 "ATTDEF")))! h, I' z4 O3 W* W; T2 j1 D
- blkcnt 0- n( I0 n+ x& k
- )4 a0 p2 m' `' d3 e, ^2 B& T
- # n1 A2 j: M( e& ~( Z$ R
- (if eset1
. }4 F' ^, R6 U! O - (while (<= blkcnt (- (sslength eset1) 1))1 t y; W. b Z( K' c
- (setq en (ssname eset1 blkcnt)9 ~; g" L: W G# d4 g4 J0 J& n
- enlist (entget en)
5 f0 f' ?/ t# f _ - space (cdr (assoc 67 enlist))
1 Y- K- A3 J: K( Q, S - )4 b3 p6 K$ w# ]$ a6 L
- (setq vl (list
3 P5 ?; {; b: S+ ] |6 }( Y: S9 M - (cons 0 "TEXT")
; H, D( U. v! o/ `( C, G - (cons 100 "AcDbEntity")
: P e2 x7 D9 I6 l3 s; d0 K* V* ` - (cons 100 "AcDbText")
) J: `6 y& f+ Y. k0 ?. i! a - (assoc 7 enlist)
3 C1 Z8 l) ^8 ]1 o K4 {, R1 N, m - (assoc 8 enlist)
# }, q# C+ a9 x2 q$ c; { - (assoc 10 enlist); e2 f" m3 M& I9 }: `
- (assoc 40 enlist)
1 L8 K+ I$ \. Q% W5 ]/ w3 J - (cond ((assoc 62 enlist))* T5 B4 g/ }: D/ o
- ((cons 62 256))
% y, [& w' U, s4 n, g6 ^2 V - )4 z$ C3 ?5 e0 Z- ?$ V6 d, X
- (cons 1 (cdr (assoc 2 enlist)))
8 \+ n" G) y+ Z4 r0 @ - (if (= space nil)
( x$ F/ O! G. @! q - (cons 67 0)# _9 D2 H% Z! X
- (cons 67 space)
, X2 i6 j9 X% s - )0 [! G3 x9 |! r
- )
& s! {9 M! i5 d$ e - )/ v2 b9 U" ], {; ?' R
- (entdel en)
" ?) j6 ?. l0 G9 u+ R7 T - (entmake vl)' s1 t$ F6 E7 k' i$ ]
- (setq blkcnt (1+ blkcnt))" I" Y; x! E5 o. \7 U( `
- )
h4 ?# j4 P! t4 T" s3 L2 w - )
4 E- ~8 B3 n( x* G" U+ E - ); j7 o+ j: F/ _( V3 r
- ;=====================================================================
2 C- ?3 F! x$ V/ O3 y. ~ - ;============================ Doi Truc ===============================4 j |& a- O1 e
- ;=====================================================================: n+ j5 T7 a% m1 \7 d
- ! G/ O1 @+ [: B; U5 m9 ]
- ;=====================================================================
& C+ {, y& R& o2 t0 S% k, b - ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============4 u4 |% z+ O% M! O
- ;=====================================================================
/ O# T& L. u5 l0 C& a; ]$ W - (defun c:ga1 ()
& o* a2 g C- t" p$ O1 q6 }$ K, h - (setq a (getpoint "\nChon diem: "))' X2 i9 ]* ~6 E4 p% i# T
- (setq b (getpoint a"\nChon diem: "))
4 j( P$ q2 ?1 C1 I! M" e* p - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))); }9 k# ?% |; b! `
- (command ".circle" c a)0 J, w" I. I# @8 b! h
- (command ".line" a c "")
* e) a. G! L2 h! Z# W: m - (command ".array" "last" "" "p" c "1" "" "")
4 i/ |% a! e. K$ U% R - (princ))# Q$ ^7 J) }5 h! v( u
4 j" y' s. `% h- (defun c:ga3 ()
& n' [8 k. ~1 H: b6 ` - (setq a (getpoint "\nChon diem: "))
6 l- _+ }: ~5 x5 O - (setq b (getpoint a"\nChon diem: "))7 U5 U% r/ t3 F. A0 g8 ]8 f: ~
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
" s7 v4 x2 H7 l0 E2 p - (command ".circle" c a)
% b6 K6 e1 B5 ?. M4 W0 c - (command ".line" a c "")
2 ~$ O4 X6 g8 T3 e: @ - (command ".array" "last" "" "p" c "3" "" ""); s8 G; z& O3 W! E) x
- (princ))
; G3 W9 r3 f+ C6 J0 t
- w0 L9 k$ b8 c% G' Y6 F y( t- (defun c:ga5 ()
+ D9 V+ Q# f) R" a. M. n' {4 E - (setq a (getpoint "\nChon diem: "))' Z* w$ U2 Z7 \$ {
- (setq b (getpoint a"\nChon diem: ")), x' Y- B( F- _$ C, j3 \
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
5 C) N! }$ T8 t - (command ".circle" c a)
; S+ r7 R; c. ^ - (command ".line" a c "")
5 I# [0 X$ D6 a A - (command ".array" "last" "" "p" c "5" "" "")
5 j+ P; x1 T0 A& I/ X, U8 A R1 } - (princ))' \, \7 i. l* w$ o: C5 A
- / e- B* n/ o, j5 ^
- (defun c:ga7 () G* S: i- }4 W
- (setq a (getpoint "\nChon diem: "))6 W0 a) {) \# ^! V/ w0 M# ]: h8 P# q
- (setq b (getpoint a"\nChon diem: "))
7 V& k r/ w8 i- w7 ?) Z - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))$ j- ~( C1 W2 z7 R+ s' F
- (command ".circle" c a). G, t& a& m4 E* n+ m( q
- (command ".line" a c "")
- E& R5 M6 W$ M) ?- O! ~+ {8 g - (command ".array" "last" "" "p" c "7" "" "")
$ e- w2 {6 f6 q7 u - (princ))7 i6 ?1 B2 z( ]: a/ d
( M2 b5 C0 L5 o' N- (defun c:ga9 ()
- U) m6 q7 I8 ~& r - (setq a (getpoint "\nChon diem: "))- M5 y0 l% T/ J9 ]: v; g6 `
- (setq b (getpoint a"\nChon diem: "))
& c. d/ W! A, S, G. W& Q2 e3 K N - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))" A+ D1 L9 _/ K% u# T: z
- (command ".circle" c a)+ P0 G% t- `: O6 v1 m" g+ S- d" x
- (command ".line" a c "")0 @' ?, _; o4 S! Z2 ~ l
- (command ".array" "last" "" "p" c "9" "" "") F0 m; s9 @+ c' b j+ i
- (princ))8 W* k) e, x" e9 [
- % k! ]# C: D7 D% g
- (defun c:ga11 ()
4 v1 \; Z N8 ]2 Q) T7 Y - (setq a (getpoint "\nChon diem: "))( v4 G+ N& k# O6 q7 [) c d$ d B0 w
- (setq b (getpoint a"\nChon diem: "))
$ f/ r( J }1 G4 V7 A - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))& h) ^5 p% f: E! n: r9 c2 R
- (command ".circle" c a)( q* W1 M" J( G7 H* S4 m& P+ C
- (command ".line" a c ""), i: B1 O4 w. k7 z( i4 F
- (command ".array" "last" "" "p" c "11" "" "")
8 ? h! ?6 k, J3 U - (princ))
9 s6 q, v' v: h( l
: O6 f0 q2 |8 F# ^+ [1 \- (defun c:ga13 ()
, q- U. L) m2 s- f G% s' Y) N& y9 f3 r/ b - (setq a (getpoint "\nChon diem: "))
V1 M3 z2 V% M0 h - (setq b (getpoint a"\nChon diem: "))/ V/ {# ~9 u% F8 n# z
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
% x: Q2 w6 Z/ H2 R - (command ".circle" c a)' T# w- V* ?2 @7 Y7 A9 r
- (command ".line" a c "")& D9 f" e* n4 o4 A0 Q
- (command ".array" "last" "" "p" c "13" "" "")
& b: J7 P h! x5 B - (princ))7 U9 |; X# a# H4 l5 J' s
5 a$ Q# ^# s. h- (defun c:ga15 ()
4 c# l2 a# u$ A - (setq a (getpoint "\nChon diem: "))0 j- P) p; T/ A& [
- (setq b (getpoint a"\nChon diem: "))& Z$ }! i6 I$ j P
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))) J9 Y) l: I9 ^' H
- (command ".circle" c a)
6 [% z8 v R; [ t- x# B2 t - (command ".line" a c "")# c, L6 ~1 V4 Z ~4 C
- (command ".array" "last" "" "p" c "15" "" "")# c. M6 t; U( ^! E
- (princ))3 @9 t* s/ S/ {) G2 d5 [
- % i2 W/ _+ t3 D$ B
- (defun c:ga17 ()9 I$ B9 H+ P8 P' `& J
- (setq a (getpoint "\nChon diem: "))1 ~. ]+ ]9 N* n P
- (setq b (getpoint a"\nChon diem: "))( I5 I( z* g) M: n2 {$ @$ \2 |3 n8 A
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))2 g( H' \+ O ~! I7 S
- (command ".circle" c a)
% h" B3 c7 h$ c! L# k! {6 F, E6 Y - (command ".line" a c "")
) g! P) G8 h9 ~$ X - (command ".array" "last" "" "p" c "17" "" "")4 p. V5 T6 q$ B9 ~
- (princ))2 l2 H! A" R" ]. U
- 9 D$ W0 J7 ^% f7 ]
- (defun c:ga19 ()
( o5 n% x; {5 i5 K8 t# T( \ - (setq a (getpoint "\nChon diem: "))
% W* I' [7 x3 Q5 [ T+ k - (setq b (getpoint a"\nChon diem: "))5 _' |# I8 Q* b; d/ m" O
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
: K4 ^8 ^9 `. r- M. p - (command ".circle" c a)
4 ~6 y" g! E4 _ - (command ".line" a c "")& I( C8 n+ O7 }- c6 G; a8 p- V3 l( ]
- (command ".array" "last" "" "p" c "19" "" "")1 p0 f2 f$ v5 p+ ]; U3 w
- (princ))
" i: z" R2 n- R8 O
$ g* p$ E" [# G- ;=====================================================================
9 x6 }0 y, l ]5 j2 ~ - ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============
' p2 a. @+ A# x: h" c! ^- O - ;=====================================================================" U! i1 B5 q9 g
- (defun c:ga2 ()+ H" a$ z' X& O
- (setq a (getpoint "\nChon diem: "))5 z& Q: R2 W- R$ o
- (setq b (getpoint a"\nChon diem: "))* m8 V! Y0 K1 f
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))# o0 p6 p; N1 _( X1 O+ i
- (command ".line" a c "")2 s& \% K) m' T; v% b
- (command ".array" "last" "" "p" c "2" "" "")
3 A+ \- u, Y0 C" K. z - (command ".circle" c a)2 Y+ ^6 }6 |. ]1 `8 p4 s
- (princ))
/ v- A$ c2 ?; {3 s
, k$ J* O. d) m% L- a- (defun c:ga4 ()3 a& h0 v. @6 B7 f+ E: p5 S6 A$ Q
- (setq a (getpoint "\nChon diem: "))
, L' r) T; f# G Q - (setq b (getpoint a"\nChon diem: "))
% L% e- O9 v5 W4 o. L+ Q2 j: r! Z& v _, F( q - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
! n. k: ^$ o/ U5 x4 ] - (command ".line" a c "")7 W& G! u6 k* H3 \/ Q0 k( y
- (command ".array" "last" "" "p" c "4" "" "")
T% d% U: G/ q - (command ".circle" c a)$ J2 u8 R9 q: O
- (princ)) w |- {% A/ N. ]" C8 [8 p
( F' |* Q4 f3 O- (defun c:ga6 ()
; j9 y& |( c0 S; f - (setq a (getpoint "\nChon diem: "))! S3 r) P1 y7 H
- (setq b (getpoint a"\nChon diem: "))' f1 w! h' [5 o
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
% ?0 m' {% r: g7 N" d% x - (command ".line" a c "")7 ~9 F2 Y* p4 \& t7 M( t- o" q
- (command ".array" "last" "" "p" c "6" "" "")
* |" o! N0 u/ H, q" H" t - (command ".circle" c a)4 O2 y& \. _% ]+ q+ G& @
- (princ))
/ E* p. N) |: c+ q/ H8 y3 \8 i" T
{' t% R6 _7 K, D2 J' A J$ t( c- (defun c:ga8 ()$ v4 a* M* k) m0 z
- (setq a (getpoint "\nChon diem: "))
: P" I4 p* r% r/ v5 U - (setq b (getpoint a"\nChon diem: ")); J+ |8 I3 [# U0 H
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))- Y/ [1 Q) C$ A% b& f/ h) t
- (command ".line" a c "")
4 a3 D* e4 x* A6 u - (command ".array" "last" "" "p" c "8" "" "")
( i/ R+ H w( }. \4 | X; V) \ - (command ".circle" c a)
! _0 e) H, H8 X( b4 B+ ` - (princ))
; [ h* |8 ~- @- a. l - + g& T, n7 o3 K( C1 `* l2 t1 B
- (defun c:ga10 ()
5 t- o, ^- N/ a5 C# q0 z' N - (setq a (getpoint "\nChon diem: "))9 i' |2 _: I4 M
- (setq b (getpoint a"\nChon diem: "))' S5 W4 ]: e! a m6 z
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
9 a$ q" t- A( R# y - (command ".line" a c ""), E2 J3 {1 R; P; w! Z
- (command ".array" "last" "" "p" c "10" "" "")
" v; s2 o! s2 W; E1 m q - (command ".circle" c a)
]7 [& e- P2 Z6 }+ N3 Q2 ] - (princ))2 Z" A- B- ]4 R1 j+ A
1 O i4 O- _& L% {; G. K- (defun c:ga12 ()+ B, |; q) A- U
- (setq a (getpoint "\nChon diem: "))
. e6 q) y4 k3 r+ ^9 b! S/ [ - (setq b (getpoint a"\nChon diem: "))' O6 ~, J/ ~; ~, Q+ R6 Z9 t( {7 g- j
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))), m, F& Y5 v' D
- (command ".line" a c "")
2 Y/ n: h5 C6 T& }0 N7 k* _ - (command ".array" "last" "" "p" c "12" "" "")! A. r% I( U* }
- (command ".circle" c a); C, o5 |' v- x5 r% q' o& C4 V
- (princ)), R2 A1 y3 v1 Y3 s/ E: ]: v" T
- ( j& a I3 O! }- k
- (defun c:ga14 ()3 `3 h; @7 M. d
- (setq a (getpoint "\nChon diem: "))
. m5 ~" i, V& P% @/ z - (setq b (getpoint a"\nChon diem: "))6 ]. h2 X q7 ^( n
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))4 }4 d8 d& Q9 P% T/ e F: F; V. S
- (command ".line" a c "")
" R6 }" ~' ^3 B" A, W - (command ".array" "last" "" "p" c "14" "" "")
5 w. _. l* p1 A' i# p* J - (command ".circle" c a)
f' X. W, J0 n. V6 K2 o9 A U% R$ Q, y - (princ))
& g }' Q& c2 e( w, f
$ I' _2 Y+ U6 c6 t4 A- (defun c:ga16 ()
* j& ?8 Y9 H1 w! h: n7 z' h, p - (setq a (getpoint "\nChon diem: "))% ^5 e: V( M# Z: b
- (setq b (getpoint a"\nChon diem: "))
( Y$ u; w; q, U, b% C% t4 X3 ` - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))8 L4 _& g! P; M2 t: W6 d+ E. j6 w0 v
- (command ".line" a c "")) M% `8 O* G- @( l0 L9 L; L
- (command ".array" "last" "" "p" c "16" "" ""). l( }% C; J8 L' t
- (command ".circle" c a)
: d" f8 t2 j0 k- `0 y" B - (princ))
6 Z& W! n! t% H8 M; A
# r. w& }2 R, z+ q. \. f6 k/ i- (defun c:ga18 ()
; ^$ o! o# V/ M! s! V( n5 i - (setq a (getpoint "\nChon diem: "))
- I0 p0 \# y4 {3 [. V" ~3 @9 v - (setq b (getpoint a"\nChon diem: "))
2 a- `" K7 b# m6 j& N1 ^+ Q I1 r - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))" C9 ^ U4 M2 S3 ]# ^; _8 A% P
- (command ".line" a c "")9 c/ Y, Q4 G0 |( F
- (command ".array" "last" "" "p" c "18" "" "")% X: S. \( Z, e% ?" Q2 D
- (command ".circle" c a)* H: O: T8 B8 B: w
- (princ))
+ t7 j$ b0 d. H. W( Y1 K
q) n0 I. q9 h! V* z5 _- (defun c:ga20 ()% b+ \( u: ~( e" I: J, Q% ~
- (setq a (getpoint "\nChon diem: "))
+ I# h3 V; t7 y+ f" r - (setq b (getpoint a"\nChon diem: "))7 T5 s; n, n: b0 r" O3 ]2 I
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
6 a$ o) s1 E# u% s& K8 O7 d4 N - (command ".line" a c "")! Y: o4 Z$ v b* X& ?
- (command ".array" "last" "" "p" c "20" "" ""); ?6 k) k1 P% D l, G1 x. N
- (command ".circle" c a)7 [/ m, `, j0 y- I' v$ [2 I8 R
- (princ))% A0 ? j8 [/ j% \: q
' l" [9 T, B; M# Z2 l4 B$ Z- ;=====================================================================! O* s Y7 P2 ]) s$ u* r1 z
- ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============
& _! g# r0 u' ~; s7 G/ t( i - ;========================== 06-11-2016 ~ 18h00 =======================
/ f7 X+ g/ U% J% Q+ D& ?4 {' Y - ;=====================================================================
# F, L- e7 h( _# C& f O& i - (defun c:ga ()
/ T) P; _1 J4 z6 l. {: W& Z - (setq a (getpoint "\nChon diem: "))
; A, O% _( }9 I9 Y - (setq b (getpoint a"\nChon diem: "))
; t/ z/ o0 P- F+ K1 ^ - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))1 c% m- \6 m; B: U! `/ P+ V
- (command ".circle" c a)
& q- ~3 R( `; `$ n; V- m - (command ".line" a c "")
4 r8 m9 d; Z4 B3 Z- Z4 o, q - (command ".array" "last" "" "p" c "NUM" "" "")
7 L8 X# T$ t6 q7 }$ z* m$ o6 W - (princ))
' V$ s9 Q1 ? j - 8 h8 ^! [) T8 N5 Y
- ;=====================================================================' b% I7 S. M8 y% v2 C& C' Q0 S
- ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============$ k5 x. r+ S7 @
- ;========================== 06-11-2016 ~ 18h40 =======================% k8 K/ t( W' f9 i! i7 b
- ;=====================================================================
# r7 Z1 \% f6 L5 R5 o1 }
( w% Q. l. a% K" V% O- (defun c:hoathi ()6 f. `) h- I( y+ G9 L, o- i
- (setq a (getpoint "\nChon diem: "))
$ F# p& h9 B- V) G. \. L - (setq b (getpoint a"\nChon diem: "))/ m4 A ]) q4 |7 P( l5 D: B4 S% h# M' S
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))); e, I c' i4 X/ J* [7 b# y
- (command ".line" a c "")
' l9 m5 v& P* K; f- b4 `& z' J# u - (command ".array" "last" "" "p" c "NUM" "" "")
) u: |3 Q S1 Q - (princ))
# q6 p/ J9 N3 @. Z2 ^6 E - / V7 c* Y2 u9 w$ d
- ;=====================================================================# U5 Z1 p. L S3 y* q! T' {& z
- ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============3 }8 ~0 J, ^! x5 b/ R+ Q
- ;========================== 03-11-2024 ~ 19h33 =======================. i Q5 Q! e7 x- |. g) O% j# Z+ A5 Z
- ;=====================================================================
7 }' R/ N+ ~( Q4 _+ r - : G% \3 u( x+ Z: e
- (defun c:cung ()( ?: G" h* z6 k! b
- (setq a (getpoint "\nChon diem: "))
, z9 J: `. K$ h3 I& R8 Y, _. w - (setq b (getpoint a"\nChon diem: "))
0 [) m9 h. Q7 s' F7 X/ M& \ m - (setq c (getpoint a"\nChon diem: "))8 @! M7 x) D, G# B) w
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
. _0 M- a% D. Q - (command ".arc" a b c "")) u' {) q& c6 I
- (command ".array" "last" "" "p" c "NUM" "" ""): U: G i0 a9 [9 w$ V
- (princ))
8 I* U% \2 r1 C% U' u3 o - 0 B1 C* `- b2 B) w6 L/ M
- ;=====================================================================
4 |% v5 k4 j6 \" K$ @1 {0 ?1 X - ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============
3 [5 Z& e2 H9 q0 H6 D# C) j$ I; ` - ;========================== 03-11-2024 ~ 20h02 =======================
9 z1 }+ u; G. `" ]7 d% y) }+ ^ - ;=====================================================================) m7 U! ~4 v- O; P2 t/ M
/ l* ?! \4 ~. j% U' z3 R. n- (defun c:hecloic ()9 Q. P' @& r1 R5 b) [. s5 H
- (setq a (getpoint "\nChon diem: "))
9 x) Q( ]4 S. h; V) e) q V* J0 e - (setq b (getpoint a"\nChon diem: multi "))$ V/ V$ b* m( t2 P" G5 x3 ^) u
- (setq c (getpoint a"\nChon diem: "))(princ)
% r6 B; @* N: C i1 M7 d$ P% _# g - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))( c- S& {. N0 ?7 L# N- w' a
- (command ".arc" a b c ""). f, ]5 W" W# t: l( A K/ I
- (command ".array" "last" "" "p" c "NUM" "" "")
; I8 j/ T4 j7 F% t - (princ))8 U7 Z' I, \" K5 H& w; W2 I b
- : t/ b* L( }2 V7 i i' p
- ;=====================================================================! O# b& }/ x$ a: u
- ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============" t6 C% s% g) ^! S D9 M
- ;========================== 03-11-2024 ~ 19h38 =======================) G; N8 o: E9 x- g
- ;=====================================================================
# q$ B# U C; F9 M - : \. e' Q# ]5 {
- (defun c:gay ()+ u# T1 Q9 R& m
- (setq a (getpoint "\nChon diem: "))6 r! E4 F3 D- m z+ t; f4 @
- (setq b (getpoint a"\nChon diem: "))
# x6 i3 k3 R2 j$ ^" ]) w" P - (setq c (getpoint a"\nChon diem: "))(princ)5 b$ v) t% P& J5 t/ M" ]9 n T
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))6 K4 P/ i/ f& t0 v
- (command ".pline" a b c "")
( V& g ~! K& ?& d* ^ - (command ".array" "last" "" "p" c "NUM" "" "")
! k, _) b, p$ j - (princ))
$ q; v9 b9 B% b - 7 w, p- ]9 g9 a* L5 u+ ?. {
- ;=====================================================================9 p0 F9 T9 H2 Y- u
- ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============
5 B" e& {+ w/ {9 n* q f+ z- d - ;========================== 03-11-2024 ~ 20h02 =======================
& Z) K8 g( Q+ Q$ f - ;=====================================================================1 r/ H% g' d6 Y0 o G
7 `6 w8 C* i! m/ x# U- (defun c:hecloit ()
+ U1 F5 M# w8 s - (setq a (getpoint "\nChon diem: "))( c: L0 N! R2 b- r4 w
- (setq b (getpoint a"\nChon diem: multi "))0 U7 N+ P! c8 A [
- (setq c (getpoint a"\nChon diem: "))(princ)# {( u5 V9 @2 M8 Z
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
8 x) R1 A+ o0 Z3 D! ~ - (command ".pline" a b c "")
0 o0 z0 e& t }( {) [9 {& g - (command ".array" "last" "" "p" c "NUM" "" "")/ }7 Q$ o6 m# N1 s0 R
- (princ))
# V* |3 J* u; }; s - ; h @3 @7 g4 E9 i
& L' C# M# F6 H* [6 A1 p" m9 R! h- ;;; ============================ Merge Hatch =============================( F* J7 @/ r5 q) n
- 6 Z! Y6 K- I) j( X
- (defun c:mh (/ ss entht sl i dt dtht)
& ^# @$ n$ r" i% q - 6 q) P7 c5 H: B7 [( s! G* L
- (princ "\nMerge Hatch - free lisp from CADViet.com")
Q$ X4 Q* Y$ d
% B, f P$ g$ J$ Q5 h- (setq
Y% k0 w" Y, Z* u - ss (ssget '((0 . "HATCH")))5 q" F6 s$ ^8 U: m+ ^0 e
- sl (if ss
" |0 O% B& s" s - (sslength ss): y4 T8 y, L. Q1 v
- 0) e# s8 J) L- Y* k/ Q
- )0 S4 c$ u% c# x3 {$ x. Y
- i 0
) F1 m: \& [& y# g$ { - l 05 x) n/ I7 h }0 y
- )
2 I, a( f1 s* _& w9 j+ D - + _; b+ P0 o7 r1 ?. h
- (repeat sl% [1 T, d$ W8 U$ G
- (setq
6 ?$ X1 F( V I( ~1 g' n* E - entht (ssname ss i)
: y( s; j. g& l3 j7 V - dtht (getbdata entht)6 C+ b+ [1 R; p4 |5 h
- dt (append dt dtht)0 q! I# ?6 d* \
- l (+ l (cdr (assoc 91 (entget entht))))
" Z. y# {4 ~1 X2 `6 v - i (1+ i)+ Y. }& ~; n9 l' l
- )0 z5 e. O# {; n" n6 q t5 r: R4 W4 s$ _
- )% A( I- H2 O1 h3 c
2 J, m% |8 q& }& Y6 X; A+ u5 v- (setq ent (ssname ss 0)
: D [: y0 {- A8 I - ss (ssdel ent ss)
2 X0 C1 p6 |: K, C - tt (entget ent)/ |2 G: f9 ~, N0 P$ H
- duoi (member (assoc 75 tt) tt)/ W' g0 [; ] D9 d: T
- dau (reverse (member (assoc 91 tt) (reverse tt)))
, [8 C4 Z6 _+ d1 b* q' e3 i - tt (append dau dt duoi)( }) k/ g) Y1 Y
- tt (subst (cons 91 l) (assoc 91 tt) tt)
3 Y2 D0 o/ P: {3 E - )% p5 K) K5 W8 z! I
- (entmod tt)3 i: _5 S1 {/ R( H, I
- 3 F( x5 D* }# K8 G
- (command ".erase" ss "")
. H. Q8 z. F! H: s - (princ)3 e: m1 F& f4 }2 Z# F
- ), {0 s& ]' [3 [
- & z7 E$ D3 m: z5 K
- (defun getbdata (ent)
; q" D0 l+ u5 e& L5 ~) u - (setq tt (entget ent)
0 ^5 @8 D; E% b; q! f - tt (cdr (member (assoc 75 tt) (reverse tt)))
- i; H; k7 \' C - tt (cdr (member (assoc 91 tt) (reverse tt)))
# Z( v' J$ G4 L% f1 C( N - )( U4 F- x9 A" r5 O e* F* {+ Q7 r2 i
- )* M% }9 ]& s, ?1 n8 D. f* Z% W
* Y# Y* I% f7 s3 E7 b- $ l6 M5 [- e: i9 D# F
- (princ)
7 v- a( x0 a0 A6 P1 {, x - $ @4 m. R# X7 f+ A7 K2 @" `6 z
- ;;; =========================== CAC LENH LAYER ==============================
& L+ [' b4 `" S1 N7 x - ;;; =========================== Layer hien hanh =============================3 ?9 A! n4 @8 s' C$ R
- 7 d8 Z8 D8 v% L2 c8 X
- (defun layset (/ LAY) (setvar "cmdecho" 0)
" o& e ^7 i8 m' }* e - (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))% [" d4 s7 u7 g% e8 d- o
- (if LAY (progn
$ z5 y/ ?" ` d4 j n4 _ - (setq LAY (cdr (assoc 8 (entget (car LAY)))))2 j! ~0 z. {, W" {1 ?0 i2 s' p
- (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )
# q$ O& C; p1 ]( x* H7 B - (progn7 N2 A5 n5 F) {% t2 x+ Q
- (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop)) 5 M4 A/ m8 M1 @3 ?
- (progn
5 F+ r A1 }6 ?" m8 [0 E - (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )# r/ f$ c6 }6 J" {: y/ u- i0 w
- (defun c:LLL () (layset))(defun c:LAYSET () (layset))+ M: s: E- y$ x1 Z7 s0 K& r3 d2 g
- 5 }1 _2 d. E; F" s) N
- ;;; ================== Cap nhat doi tuong vao layer hien hanh ==================/ B p% m3 b8 M% X* i. Q
- 7 C. J* i2 \: ]/ F! q
- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0), g) |$ r7 t1 k( o
- (if (not (setq SS (ssget "i"))): D( m8 {5 _- {5 d& P1 V& B: D! e4 O
- (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")
- {" `4 C2 x/ e/ | - (setq SS (ssget)) ) )
! V& H, K$ t- ]: m2 d: I7 r - (if SS (progn6 N1 V3 L& E: s/ H
- (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "") ! Q; ^' H" `+ R6 D
- (if (> (getvar "cmdactive") 0)
" m2 c9 ]2 M4 c$ Y8 F0 }0 F - (progn6 B6 U4 k# ]9 x2 ~/ l8 U1 j8 \$ D
- (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )7 v' K# k; o3 o$ q( s' O$ C* e
- (setq SS nil) ) (if (> CNT 0)
0 H1 v: E o$ ?5 r8 `% J - (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )% i6 {, [8 i$ |+ a$ j
- (if SS (progn
, }; @( W5 s, P) i: F a* i - (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")
, ^ K0 b7 h% F - (if (= (sslength SS) 1)3 g! n3 d9 U% p! d
- (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))
- J( @/ k3 ^; Y& b, u - (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end8 B6 a: x Y) c: a
- (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur))7 S6 I. g7 F6 o% Q9 d& B
- 8 O m" O" F' @$ K n* C
- ;;; =========================== Layer Iso ===================================
, M4 l) i4 u% O X) V- T( U+ z) z
" L9 b- w$ w1 }) M- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)2 e6 {! h! @7 _+ t; i
- (if (not (setq SS (ssget "i"))) (progn
; s- S. @' h0 u! Q# h0 E - (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ")
: P5 H7 D P6 a( ^) J( O: q - (setq SS (ssget)) ) )6 D4 N3 h0 n1 o
- (if SS (progn (setq CNT 0)
1 k1 u) V: |2 u7 }9 |3 }& w5 N2 K' w - (while (setq LAY (ssname SS CNT))4 W2 Y! P6 P5 x# n; M
- (setq LAY (cdr (assoc 8 (entget LAY))))
- F) N4 Z+ x2 x8 e- ` - (if (not (member LAY LAYLST))& E* J$ C" c( b7 h1 P& P( e. J$ w
- (setq LAYLST (cons LAY LAYLST)) )
C1 M$ \3 Q3 k) G* g0 G' A$ h - (setq CNT (1+ CNT)) )
1 X0 L) \9 h4 J& \ - (if (member (getvar "CLAYER") LAYLST)
! B% I* s: n) J w - (setq LAY (getvar "CLAYER")): p' L2 d" t& H
- (setvar "CLAYER" (setq LAY (last LAYLST))) )* T+ G# m- ^5 f4 w- G, K
- (command "_.LAYER" "_OFF" "*" "_Y")
2 s0 K7 {; l! ^; e - (foreach VAL LAYLST (command "_ON" VAL))
7 S+ Z2 E: g- e* N' y - (command "") (if (= (length LAYLST) 1)
. M# P2 H/ k7 t+ w4 S! R' k* W - (prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))
% d4 }3 c: U/ r9 q2 W L - (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "" [4 K) h- i( X: d7 [$ R/ k @3 e" C
- "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )- G- p( |9 f9 P* h. \! g" z
- (defun c:LAYISO () (layiso)) (defun c:LI () (layiso))+ ]5 s7 F1 n! H- s+ k
- " U+ F# S. I9 N1 X3 c2 @$ M( e" z
- ;;; ========================= Layer Match ==================================
Z) S5 N k4 P" K! b* \; S0 P$ \ - * p; o- g2 i" M! t7 x( [7 _. j8 \ B
- (Defun LAYMCH (/ SS CNT LOOP LAY ANS)# k6 ?/ _% `' b+ G& u
- (setvar "cmdecho" 0)' M& W* Z6 p! c9 p
- (if (not (setq SS (ssget "i"))) (progn! V8 G6 E: Y0 {7 a) J
- (prompt "\nChon doi tuong muon thay doi Layer : ")
$ t- L" ]# G3 Q3 b2 R* k- L - (setq SS (ssget)) ) )/ W5 V/ `3 M( k1 Y5 \$ c
- (if SS (progn
# C" \* r A, [& T8 ? - (setq CNT (sslength SS))
E- Q& N$ f# ^/ ]9 t - (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "")
# {! M, `( c- H c* M5 J3 z1 d% U - (if (> (getvar "cmdactive") 0) (progn) ]/ ]3 V9 e* ~- ? W6 R
- (command "0,0" "0,0") (setq SS (ssget "p")
- P5 h: V, e# q/ z! D - CNT (- CNT (sslength SS)) ) )' u1 _3 g6 l7 p/ q3 {& N) M
- (setq SS nil) ) (if (> CNT 0) ; f# N7 Q3 I" L. q3 `! V
- (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) )+ i6 ?9 `4 q) {1 j9 a9 L v
- (if SS (progn9 d: } n# k4 f0 V/ C
- (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )
7 ]4 I" c9 Z: J# ] - (while LOOP (cond* e- h' E2 l5 V/ Y( `' L6 ]
- ((not LAY)
0 ~3 h1 i4 H; m' b: h- u& W* }8 v - (prompt "\nKhong chon doi tuong.")8 W3 K4 A j( ^" t2 H% n0 q( ]
- (prompt "\nSu dung layer hien hanh? <Y> ")
4 v% k1 u7 F5 {/ C - (setq ANS (strcase (getstring)))# q; W1 K/ Z# u) W8 k, F/ R
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))* D2 ~; K# @; [- e. a
- (setq LAY (getvar "clayer") LOOP nil ) ) )
% B- c# B9 ^1 _; t- f5 m - ((listp LAY) (setq LOOP nil) )
8 ?3 W# i! d; t- u - ((= LAY "Ten")
* u Z) J$ A7 a; `5 N8 } - (setq LAY (getstring "\n>Nhap ten layer: "))
0 Z9 E( e* C! K- b% r+ P - (cond
4 n; h x+ z/ F, v - ((tblsearch "LAYER" LAY) (setq LOOP nil) )
0 |; u" W& Z# [5 ~) E - ((/= LAY "")& u& ?# |: m6 ~" _
- (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")! @# Y5 m$ @) C% J% ?+ ~. D0 ^2 x/ \
- (setq ANS (strcase (getstring)))$ U9 q& N0 Y0 V" Q
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES")). i6 |( x+ P) Z% @
- (progn- t* o& H. M$ b+ i6 k# O! L) j- Q
- (command "_.LAYER" "NEW" LAY "")! U3 S: j. S" }, b" }' o% I
- (setq LOOP nil) ): A* x- |8 t( f- U
- (prompt "\nLoi ten layer.") ) ) ) ) )
3 g Q d3 E* a - (if LOOP (progn (initget "Ten")
# V5 V; p1 Q7 C# |% y3 E7 G$ n - (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP6 _ @7 m% X. H# a B0 S
- (if (listp LAY)
7 ]! D$ K8 k& m# r' F. f - (setq LAY (cdr (assoc 8 (entget (car LAY))))) )
3 o6 q9 c: C6 } I; q O4 C - (command "_.chprop" SS "" "_la" LAY ""), F# M% F) n+ L. d/ b: n5 q% K/ ^
- (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )5 i" b# Y; k1 i+ p8 F! ~, l6 a/ Y
- (if (= LAY (getvar "clayer"))
% J! ~. s& `2 y0 Q1 }" ? - (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )
/ K- O3 |0 a D* q) ] - (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch))0 b/ n, F: k2 D @
0 D' X; c/ r$ [: W3 B- ;;; ============================ Layer OFF =================================
9 |1 R" `1 x- i1 G2 o
: P) I& p3 [- |& ~, z/ E) ~# `5 @- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE)% V: H, K6 J9 l- r# Q) a" A8 Q
- (SETQ SSET (SSGET))1 v5 ~6 d3 {- E& W( a' d! i
- (IF (/= NIL SSET) ! T9 _6 K( S- _. T" g5 V3 O S* o
- (PROGN2 C3 Z4 c* ^" B1 `. d
- (SETQ SSL (SSLENGTH SSET)); Y6 m7 s0 T+ V' t$ {$ h. [
- (SETQ LAY "")
l: }4 J' p* ~9 N - (SETQ I 0)0 K6 X( n2 `" h4 }* _
- (SETQ MODE 0)
, B" r9 |1 ?) W/ r) x9 u! _ - (WHILE (< I SSL)
' @2 f7 f. | O - (SETQ ENT (ENTGET (SSNAME SSET I)))
3 P; D F+ |' q1 g - (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
- K9 f; P1 j; ]+ U - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))! m% f9 j: L% s9 i1 `; [
- (SETQ I (+ I 1))
q- k- q. n5 S0 X - )
1 [% b- w' j0 D! E' t k - (COMMAND "LAYER" "OFF" LAY "")$ n5 e9 O8 |4 D7 D( g% O
- (IF (= MODE 1) (COMMAND "") )% o) r6 X3 W5 z7 z0 m
- ) J) y; X8 d" D8 P2 L
- ): k4 v. \2 N1 e: o
- (PRINC)* Y# R+ _" D( Q+ |% L8 R
- )& y' J$ ]6 C) q& t, U, J, O2 {
9 T! g, V, k% \/ O3 Z: P- ;;; ================================ Layer ON ==============================
' r; I" o' c8 q; _: Q
% P& j( ~6 h" X. Z. M' Y* R- (Defun LAYON () (setvar "cmdecho" 0)
7 N* D e d% }5 F N% s5 o* j3 A3 e3 T - (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")
( N# v8 {# \' E: T; {4 v7 i - (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))0 y8 c4 R3 }2 N& r
- (defun c:LAYON () (layon)) (defun c:LOO () (layon))
$ g6 Z% C7 \4 x- P/ M7 u - (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))
; ]9 {6 _6 {% Z& W* G) d3 Q - / T9 o- M& h |! N
- ;;; ============================== Layer Freeze ===========================
; u4 C8 P7 ^) o6 j% W5 M - ; o* t% o1 n$ l5 ~5 _
- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0)
" F/ a; W& _# o$ l4 l. v) n - (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))3 f, p- R0 Y& r+ q- e
- (IF (/= NIL SSET) (PROGN
7 @3 S0 b- k# N6 O) L - (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0) - R9 J5 {4 {) ^5 i$ }- `
- (WHILE (< I SSL)9 |; H5 ~& V! _, d8 A
- (SETQ ENT (ENTGET (SSNAME SSET I)))2 v. q, a' f( z; R; V* M
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
" m. D8 Y8 S ~0 N# s: i8 h - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))
4 S7 g; g! g; d+ Y: ]7 O0 | - (COMMAND "LAYER" "FREEZE" LAY "")
5 b1 h. H5 o( |' A; |. H' j5 W - (IF (= MODE 1) (COMMAND ""))))
# f: D5 T- p! m( `7 x1 l) w - (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)! ?3 L" \ Z! m3 d! }
- (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )+ c0 z/ e- Q& g, v
- (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz))
+ n; ?* M/ V' U+ O$ ]8 T# { - # u% h' W4 \' w" l6 q W# U
- ;;; ============================== Layer Thaw ===============================
' [. E( Q" `+ W+ R* a7 }% ^: I - ! S! d) i" _0 }( Z
- (Defun LAYTHW (); d' e0 c) O0 q; P8 e0 z
- (setvar "cmdecho" 0)0 N* B u% C" n# r1 }0 h
- (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")
2 ?/ p) k3 M. w* ]4 K) ~ - (Command "_.LAYER" "_THAW" LAY "")+ [0 j4 F7 F9 T7 m8 _2 z+ G
- (princ (strcat "\n Layer : " LAY " da THAW."))" G2 _* G8 b) C% g; u
- (princ) )( b) s5 m6 S2 F( k5 o/ B
- (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw)); L$ P) a+ ]* S/ d& O% I' N
- 9 I9 Q7 Z2 X7 z' f
- ;;; ============================== Layer Lock ==============================- `& L# @8 F0 H% j' @
- ' a8 d; Y. R4 G3 |( t
- (Defun LAYLCK (/ LAY) D& f7 c: J) J" F7 C0 c
- (setvar "cmdecho" 0). ~2 S+ B5 I9 {
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))
% }* T* a3 \$ w$ d8 { - (if LAY
$ a6 V0 O! K0 _- W7 U - (progn" ?" k5 C4 a3 \& d* k# V
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))
% S7 p c+ R% v& C. B1 g! W: s - (Command "_.LAYER" "_LOCK" LAY "")
3 T0 N$ T7 h* o8 m% e0 [9 H3 k - (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )
* V- ]( c: _' y' O) b* P - (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))! A4 C7 ?2 W( a& z
- 9 S5 x! J. a" E* R1 I/ r
- ;;; ============================== Layer UnLock ==============================1 p P, M$ F! E- l3 s8 Z9 U' p
- 6 H! k1 H8 \( `6 }, ^" V
- (Defun LAYULK (/ LAY)
; ]9 e" Z9 W0 {9 J8 @5 x X - (setvar "cmdecho" 0)
# ^9 |0 @) G+ g. Y; O9 o - (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))0 s2 Q7 i$ ` _- f
- (if LAY* F2 p) @+ o0 {
- (progn
; i& n2 u: C" X: F - (setq LAY (cdr (assoc 8 (entget (car LAY)))))# l# n' p3 J, u. w+ A3 `0 C ?
- (Command "_.LAYER" "_UNLOCK" LAY "")
* x+ q. D+ g; ~) t- y3 h - (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )/ \* {. W, O6 c) q
- (defun c:LAYULK () (layulk)) (defun c:LU () (layulk)): H, |0 q5 o* U, ]. ~+ ~
3 x; C0 @/ \# f( M' m- ;;;===================== Delete all objects of Layer ======================== x1 {6 R: G5 o) g1 q8 C
- ; F% a" X/ [0 U+ U8 V7 K M
- (defun DELAYER (/ ocmd L S) 8 Y/ h$ p# y3 ~
- (setq ocmd (getvar "CMDECHO"))
' f* ]4 L& e: r% \! J - (setvar "CMDECHO" 0). Z6 p5 M3 G: u( Q
- (setq L (strcase (getstring "\nLayer(s) to delete: ")))
! A: {6 k( _, l2 O - (setq S (ssget "X" (list (cons 8 L)))) 4 w1 f( Z+ \% Z! e, n6 T1 F$ ?
- (if S
9 W* |$ o5 \, X* [ - (command "ERASE" S "") - V- I# N& P; @2 k% Z
- (princ "Layer empty or not a valid layer name.") )
8 n7 x3 C: I% o; D8 K& u$ [) x - (setq S nil)
. Z- p7 o, H @ X4 k- i- j - (setvar "CMDECHO" ocmd)
, L5 G+ Y& {) U, w6 i7 f - (princ) ) # b1 m+ B; B1 H* j
- (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))
; C# C& S7 G" Z& W3 [, d+ f
1 L, M. ~6 X$ j- ;;; ========================= HET CAC LENH LAYER ===========================
# I# u. \: p: j! k - : g6 ]# |: Y9 g0 ] \* G; Z
- ;;;====================== EXTEND NHIEU DOI TUONG ===========================& _" ^; m( O [4 O9 p
- N! S K+ T- R# j* k
- (Defun C:EET ()
! l8 J2 A* F% O% X1 e8 }" _5 J6 X - (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)' i0 M% d' B( X; ~2 {8 V
- (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))
3 n" x, T0 T5 N) G. d - (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))
( |) a: E1 }7 k4 o) I - (Setq I -1)8 Z- `: M( f* y. J- {$ h0 f2 [! d
- (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG "")- ?' a3 e* d1 M, B! Z
- (Repeat LEN" z* I: ]) L+ E
- (Setq I (1+ I))
( `9 k+ k; v) ^ t. {* l, u - (Command (List(SSname SS I) SIDE)) ) (Command "")
! ^0 j8 X$ {4 a7 K; t9 U6 t1 Y - (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )
) z$ z4 A+ a8 L/ ^6 N - : {$ t: @! P3 |- [1 ?5 a
- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============
% ~" ^/ W2 X Y# B - ; P: k" }6 K9 Y6 A j' p: |
- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)# {5 z& V; R6 g1 [3 @
- (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND "))& i0 n+ @9 o4 ~. a
- (setvar "osmode" os)5 e/ s5 V+ R" }6 g2 y
- (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))
) v2 [$ j5 c: u u: u ` - (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))
+ ]9 J% v" p. p" }! q" J
& m) |2 B1 H2 p6 W( C- ;; ================ Change width of polylines =========================
. t+ r% k7 x' G. L, |
+ i" H' d- ^- \* h6 j9 g( @$ |- i- (DEFUN wp (/ a b sophantu sodem list1 ha:wid)
' q g1 W A. ? - (PRINC "\n Chon doi tuong can thay doi do day (Width) !") ! S" H" n* s. V# s0 [
- (setq b (ssget))
& U, T, Y6 b5 z3 A& s - (setq sophantu (sslength b))
4 O/ ]4 H! ~" q( ]# Y& ~+ n1 P - (if (null ha:wid) (setq ha:wid (getvar "tracewid"))); a/ |6 U% D. ]1 u0 v1 E. G; K' s. x
- (princ "\nDo rong polyline <")' B) G0 u8 E1 g. r
- (princ ha:wid)
1 Z; p6 W3 h$ O - (princ ">: ")
5 a; _' }3 ?0 h* A4 p7 r$ y - (initget 4)
3 J4 I/ B7 \' F0 `2 E% V( G, A7 \ - (setq ha:wid (getdist))
/ @$ T+ ~ Z4 Y+ Y1 k* x! n e - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
( r* P% o7 P( F1 ~4 v* ?0 G, P" [ - (setvar "tracewid" ha:wid)
5 Q7 ]2 v( K$ |3 h6 t3 k% j - (setvar "cmdecho" 0)
% Q$ F2 H* ^( T( c! Z S6 _ - (setq sodem 0) 2 _) p% r% [ x' V0 [9 R
- (repeat sophantu. G- n. Z6 @4 X5 f
- (setq a (ssname b sodem))
5 r% o2 _, b) ^8 B - (setq list1 (assoc 0 (entget a)))
+ u( D R" ?9 g6 C% M% d/ r% p8 ], A - (cond# ]6 M5 P5 I' {
- ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))1 O7 Z- @, S* p# k( e& C0 i
- (PROGN (command "_Pedit" a "" "w" ha:wid "")) ) " C1 {# \& i! k5 W8 n
- (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))
- E8 N8 u8 g+ v6 ]: K, |3 [! l - (defun c:wp () (wp)) (defun c:pw () (wp))
, E" H% z0 ?( f5 }4 x e1 { - * H. p X; s7 B3 C" b
- ;; ================ Change radius of circles ==========================
' Z; b6 o, ?% u) b: `& z( s - 1 c$ y% k: r$ q/ q
- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))& e6 A6 s2 O0 ~8 y# o+ m
- (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : "))
0 W' {8 q) S7 @8 j \% Y8 a' p - (IF (/= RD NIL) (PROGN (SETQ I 0)4 [6 S. k: y) r
- (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )
# i. j$ u1 `3 w3 N4 e% E" i - (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN
, x! j' g8 S" y" y: N - (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )
. j2 M7 {; d7 G( W3 b7 Z4 G
6 ^8 i$ n8 P; t3 G( C9 N- ;;; ============================== TEXT Hight ===============================
' I9 g' w9 ^1 \+ Y5 }% f: y - : x% z4 X; u, O( Q5 K
- (defun texthght (/ ent hght)/ ~7 ]- O2 l, h
- (setvar "cmdecho" 1)6 Y( v5 O2 Z* I6 ^
- (prompt (strcat"\nSelect text entity with required text height"))2 n' d. ^4 @! o0 j" n$ @; b7 I
- (prompt (strcat"\n.")); { Y5 R+ r4 `1 i# d6 Z9 ]. F
- (setq ent (entget (car (entsel)))); M" C* q1 T7 W1 h1 B* T% d4 e4 H
- (setq hght (cdr (assoc 40 ent)))
) O6 K8 ?! t" T! _ - (prompt (strcat"\nText height now set at "))(prin1 hght)0 t) [6 B' p$ a1 l1 n
- (prompt (strcat"\n.")) $ P; i6 l& s9 [0 l* G/ X
- (setvar "cmdecho" 1) \! q. x9 \. t9 O& \
- (command "DTEXT" PAUSE hght "") )! d4 S- _: X+ V9 X5 s$ j3 U
- (defun c:teh () (texthght)) (defun c:texthght () (texthght))
8 G: o4 C- U. s- U& O { - ' ~+ W3 A7 R u Q& g
- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================& s6 Q8 h* L& a9 ~" `4 g: R
$ t7 d; k r$ j5 l- (defun c:tuu () (setvar "cmdecho" 0)/ |& q+ ?+ C5 P6 \3 D: [1 _
- (prompt "\nHay chon dong TEXT can gach chan ")
' m8 |8 M. E5 N' U$ \ - (prompt "\nSelect objects: ")
I d6 P) m+ P) E1 S - (command "select" "au" pause)
2 \% O2 E' `# q1 N- o - (setq sstxt (ssget "p")# A9 @( X6 k/ u
- sslen (sslength sstxt)
2 M' O3 i8 P% ^% E+ O( c# D% K5 s - ctr 0 )
6 Q' n7 i. T: V8 W) n! E3 h. A - (command ".undo" "mark")
5 n$ O# P& f8 n, J8 m) G - (while (< ctr sslen)
9 C0 C8 K7 ?5 U1 D) |5 x7 D - (setq listxt (entget (ssname sstxt ctr))
$ G) T. @0 K) J- Q6 H# s - txttxt (cdr (assoc 1 listxt))
- A$ O/ `* E0 d+ X - enttxt (cdr (assoc 0 listxt)) )/ x$ I! e( l, f" B9 o3 n
- (if (= enttxt "TEXT")
' D5 B. g, X m. S& S |* q - (progn5 L- o+ m" X; `
- (setq testxt (substr txttxt 1 3))
' P+ V1 j% {0 h; ]6 U& k: Y - (if (or (= testxt "%%u") (= testxt "%%U"))6 j, c. v: J+ U) j( w: C5 u
- (setq newtxt (substr txttxt 4))
& `0 \9 t3 P- i3 a3 g* y) t - (setq newtxt (strcat "%%u" txttxt)) )
0 Y1 B. R4 I) r' Z6 y3 G2 _2 m - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))5 @9 p; @8 `6 ]7 B
- (entmod listxt) ) )4 C' a, M4 }2 M" \( V0 n
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
9 i8 R9 ^% C4 C2 v6 D, X4 u - # v* O2 h4 U/ a: ]& M
- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================3 I7 m# N a0 D% Y L
' d; S5 {# r- f5 a. t. y- (defun c:tob () (setvar "cmdecho" 0)
5 n' X0 n; @% {( `) w @ - (prompt "\nHay chon dong TEXT can gach tren dau ")( K: z, k% e, B0 l. R* ]. e
- (prompt "\nSelect objects: ")8 Z; O7 D6 r( Y, G D' b2 R2 p% R
- (command "select" "au" pause)9 T+ @9 Y. M: f9 r& H* ~" F8 `
- (setq sstxt (ssget "p")
5 R/ K* |0 T- [! j1 U - sslen (sslength sstxt)
( S* a' c. c; X( g* m; X. U - ctr 0 ) ^$ L* w$ z6 U, Y, K0 X
- (command ".undo" "mark")
/ Y: h/ C3 K- C, y - (while (< ctr sslen)
* L$ A( X, R6 h - (setq listxt (entget (ssname sstxt ctr))- o. E; }4 B8 L9 ^: \
- txttxt (cdr (assoc 1 listxt)) S4 r* q3 _( I; b
- enttxt (cdr (assoc 0 listxt)) )) C9 u ]2 X+ [% g/ p
- (if (= enttxt "TEXT")5 q2 Z3 _, P% n- a
- (progn m5 d9 h1 t/ [+ J+ f F$ Y5 ?
- (setq testxt (substr txttxt 1 3))
) N1 x6 w7 G4 E! ?* \2 a - (if (or (= testxt "%%o") (= testxt "%%o"))1 P+ U9 a% `$ D
- (setq newtxt (substr txttxt 4))
& R1 v/ s+ g, X$ R: u* D - (setq newtxt (strcat "%%o" txttxt)) )/ `1 N3 t7 Q" O6 f( v- g6 a
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
- N( i8 d' R+ G1 W( B1 ] - (entmod listxt) ) )
. g$ b; r% ?, B: Z% W - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
6 J3 R8 S p' ], b
- C1 O& |) j# s3 J- ;;; ========================== Tim & thay the TEXT ==========================1 D! _7 |' Z5 W) |2 @* f( z
: l' R; z$ [1 u7 v- c5 z1 W- (defun frstring (str search replace / str1 str2 index find)
. q4 B$ |, d5 v6 j - (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))0 Q, y6 W, g* o/ Z2 W9 n' V0 |
- (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))6 q; K2 \ S$ s% M- I1 X a
- (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))
5 y! ~' b7 y- ~" s/ Z% }- n8 R - (defun hai (/ dial)' g% J) s* K1 _
- (setq dial (load_dialog "hai.dcl")) ;;goi dialog" o0 k1 l3 V/ U4 f4 j1 V8 L' [
- (if (not (new_dialog "find" Dial)) (exit)) ;;
0 e8 V) g4 F9 k4 \2 u$ Y - (mode_tile "find" 2); Tao dau nhac tai hop thoai: W/ g5 m k- r- c! N
- (action_tile "find" "(hai1)")
2 q( f3 g( p, H j8 _ - (action_tile "replace" "(hai2)")
' ?( ]" M) m: r* `! ^ - (action_tile "cancel" "(done_dialog) (exit)"). U5 b9 a* q+ z- J+ z
- (start_dialog)
4 n+ s9 E5 b3 ~/ x, \9 Q u - (unload_dialog dial))
0 h, Z, Y9 x9 R! N - (defun hai1 () (SETQ str1 (get_tile "find")))
' T4 c. I: } n$ f3 C* [ - (defun hai2 () (SETQ str2 (get_tile "replace")))
2 s2 U G, L5 i1 t% I - - D8 o3 B, i2 B3 `; P
- (defun c:TTT (/ a str str1 str2 newstr taphop sodem)1 V' q& ~2 [: q
- (hai)
3 |/ n0 d; b( T8 k/ G! { - (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le")0 P# }6 L$ d" y9 L( s; O5 N7 k
- (progn9 J' e3 \7 K' |5 F7 t) o5 K* H
- (setq taphop (ssget '((0 . "TEXT"))))
/ c6 A) P9 l) Y8 a# d - (setq sodem 0)
: D; |) C- J5 a3 ` R - (if taphop
' V7 h* W& o: O+ R) |+ Y - (progn
9 l6 d9 F/ E; D" g - (Repeat (sslength taphop)
; D+ u) D( f' p3 a - (setq a (entget (ssname taphop sodem)))
- {1 ~( m$ R1 G* [ - (setq str (cdr (assoc 1 a)))7 w. L8 y6 O/ e! g! ?" Y
- (setq newstr (frstring str str1 str2))
3 D1 M/ |/ E! c: ?8 T+ X - (setq a (subst (cons 1 newstr) (assoc 1 a) a)) C7 m3 H$ [& C* m1 U9 X
- (entmod a)
* B$ Y5 w% r, r4 i/ @ - (setq sodem (1+ sodem)) ) )
$ L0 F; e7 A6 p# d E3 B! W - (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))
3 w1 J3 \: a3 L; A' d - 1 z1 N' n6 O: b- G2 y* F
- ;;;============================= CHTEXSTY.LSP =============================* I4 O( ]9 @+ p0 u3 K
7 J) M! `( w& s3 n* c6 f0 x S9 ?2 T- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST ")
& D! l3 @1 b! K - (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))& N( ^; Y* W0 M
- (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A)); s s' i t+ v
- (Initget 1) (Setq C (Getstring "\nEnter new text style: "))
1 H) x S# y9 j) b- K - (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))+ C' \7 |* b' H9 a" ? H$ H7 H
- (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C))# T& s/ b% V4 b* _ Y+ K$ f
- (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))
! X7 R) z! s4 W% h5 s - (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))/ T% X" L) R! G, T# p$ b
- (Initget 1) (Setq A (Strcase (Getstring
4 ~% J" u* x6 q1 A- D3 b - "\nEnter text style to change: "))) (Initget 1)# ~$ V! t9 G* c `
- (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext))) X0 k0 S; }! a& R( t
- (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If
( y- a2 Y* b: z) U* n* |% Q6 H0 E - (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))
3 e1 B) w' L7 o' X - (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))0 N' z; f9 b O. p1 c8 l) C
- (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J))9 q6 j- o( W9 Q9 h6 U% v# i
- (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))
: y% a Q' D+ Q% w4 Y0 n* ~
8 I) j7 v+ z3 i! H+ e- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A))0 [! f( U4 p/ N- I! r" L/ }
- (Setq J (Cdr (Assoc 50 A))))
7 J0 f- J/ R! ~- `' l$ a5 b - 2 t7 i7 K$ n6 @! [
- ;;; ============================ DRAW CLOUD =============================0 s) r1 V+ F0 B7 Q5 ?. I
9 U$ M" ^5 ?2 E" Z$ |, o6 w) i- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)
1 `0 c m! w s8 ~ - (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")
9 i! h, h. p: ^: A5 e - (setq la (getvar "clayer"))
: r' V* O' O& } - (command "layer" "m" "cloud" "c" "5" "" "")
& P2 B0 x0 ]* `$ X - (setq pt1 (getpoint "\nEnter first point of Cloud: "))( Q! d3 N; z/ t& z n
- (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))- M7 B: v* l9 K/ M/ O$ N
- (setq cnt 1 ss (ssadd))
: Q7 C$ i5 P9 Q) h" U' M6 l( Y - (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))
8 ^( z+ H; v$ Z# ?+ y% H T - (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75))3 B" @3 R6 A1 p* w3 }
- (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) )): P" {% v1 z, B, Q6 C4 c) Y1 |1 @9 d
- (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0)
6 ^8 l# d( k8 Q$ D: e: ^ - (command "pedit" arc1 "y" "j" ss "" "x"): h6 ?- p- T9 T1 R) o/ D/ x
- (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)4 P- t ?# f* q0 g/ R! W
- (command "layer" "s" la "") (setvar "cmdecho" 1) (princ))
7 |) n: v" s: w# r4 \1 q' ^+ Z - (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))
2 n9 ^# ]# G8 g4 r
$ d+ y. W& w" ?) B+ B5 g- ;;; ================================ Funtion-Dulieu ========================4 M" h5 Y6 {. o! e
- ;;; ================================ Funtion-Dulieu ========================' ]7 ?$ p( d0 |. _2 K4 ^
- ;;; ================================ Funtion-Dulieu ======================== a6 Q' b3 r' M8 P- L
+ y7 X% X+ E- q' o* s% q- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )8 V6 n# b8 K) ?; z. _2 Z* ~* S" P
- (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh"))
- n! {0 j9 p+ H2 G/ V( G6 o - (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))
/ b: D! f- e5 z" ` - (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) )
# t: p _+ F# O: r0 K9 m5 n, y - (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))
/ I; T. V* U) d: y7 l: Q$ Z - (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))
; c' y! r( v3 s/ W' L. x; Z - (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))
3 V' D" q2 |- g$ v8 b - (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))% g" w* }& {6 Z7 [
- (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong))))2 o; Y2 Y* K3 ^" Y5 V
- (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)))
3 K# b7 o' k" T$ A7 H( m - (defun dtr (dtr) (* pi (/ dtr 180.0)))
- U. g' m: }3 x1 h5 a9 ?$ R4 |+ z - (defun rtd (rtd) (* 180.0 (/ rtd pi)))
9 U& Q2 V. G: _+ E5 g - ( d' Y$ t: g& L! h* m( `3 F
- ;;;==============================PROGRAME===============================: I! m8 S/ f/ O/ }1 c
- ;;;=====================EditDiM Hien Hop Thoai Dep======================$ k* v, `0 f* w1 o6 t: E, u- o
- ;;;==============================PROGRAME===============================
1 o, k! @0 W% M( n, G* ? - " M, b8 X, u9 H1 g
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)2 C5 @! D+ c8 z- d" s
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl3 O! G( J' a1 z; I7 Z, Z) @: y/ n
- (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)" |/ l/ a4 G. }8 i) s" Y6 p) q
- (Setq Oldlis (Entget (Car Chon))
, u+ C1 m' T2 K ^6 L: I" r - Pt10 (Cdr (Assoc 10 Oldlis))
$ W& v6 | e3 W$ m+ \4 A9 ] - Pt13 (Cdr (Assoc 13 Oldlis))
5 ~5 _- N4 ~+ ?$ ^ - Pt14 (Cdr (Assoc 14 Oldlis))
5 V0 H4 K, S6 u- O$ M" `" b+ x - St (Cdr (Assoc 70 Oldlis))
! ], c8 S# m/ G: v' U; d) K1 T- ? - Dimdefault (Cdr (Assoc 1 Oldlis))
: |" R7 M0 N# z, { - )
; W; [! w ?# U# e - (Cond. |0 E% f+ r# K+ ?
- ((Or (= 32 St)(= 0 St)(= 160 St))3 d' Z' N+ {) I5 O1 G
- (Progn) b9 i' L6 _2 n1 R) _: ^% |
- (Setq Ang (Cdr (Assoc 50 Oldlis))
) j Y# J. P6 ~3 O" R - Pt (Polar Pt13 Ang 500)
' f) y# c/ n. X" E% x1 R6 X! A - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
, M! j, K9 k- H" Z - Dis (Rtos (Distance Pt13 Hc))& J& A1 ~/ C5 [$ ^& c
- )
L) k# ^2 g! F' a - )' o+ P; a, p- G& O0 J. h% V- C" O
- )
' D# F; W4 K" M& l& [- r. a - ((Or (= 33 St)(= 1 St))2 i" Y6 m* A6 N% Z
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))5 ?1 \. ?8 w3 e9 C
- );;End Cond, H- |7 k4 U6 }2 c
- (If (= Dimdefault "") (Setq Dimdefault "<>"))
7 z* T/ Y! A6 q5 ^( W5 b, ^& z - (Setq Dial (Load_Dialog "Hai.Dcl"))9 ^4 h; ?! I! q
- (If (Not (New_Dialog "eddim" Dial)) (Exit))
, h/ A* \: ?; o6 k - (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
7 t+ x% u# _% z6 U/ e' e+ Q; v - (Set_Tile "text" Dis))! |+ J+ f0 z/ u% b
- (Set_Tile "ha:edim" Dimdefault)
4 ~; R K9 k* P) X, Q8 l* q& p - (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai7 G; ?3 A8 X* Z0 a) |5 y, r
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")% C% v/ @5 Y4 ^6 S! V! ?
- (Setq State (Start_Dialog))(Unload_Dialog Dial)
% ]! T. p* I; H" u$ C# M. p6 q - (If (And Str (= 3 State))4 O- }* j6 h+ @" _9 K- t* e* C( E
- (Progn
6 w, ], I' G/ ~8 q - (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))! R0 Z/ b5 s9 c4 } I5 `- E {3 i
- )
3 D0 ?# Q' I, e8 B, m5 } - (Defun C:EH (/ Chon Name )0 k: K: f$ W( W" g. q
- (Defun *Error* (Msg)
+ C6 R! {( f- U. ?) r - (Princ "\nerror: ")(Princ Msg)(Princ " ")
/ |* N9 U- r% a. q1 B$ z - (Start_Dialog)(Unload_Dialog Dial)
6 C6 Y: h$ Q8 z: U8 C( T: f) x# O - (Setq *Error* Olderr)(Princ)
4 B8 R& Q2 v2 K1 t" C - )$ B) i0 A J2 e8 @. I5 h
- (Setq Olderr *Error*)
/ e! R, t; O# w - (Setq Chon T)5 z* ~, J3 X. V" d5 {
- (While Chon
$ t V/ p# [0 b( P- h - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
) m6 {, |6 Z6 a - (If Chon
5 \6 u1 u6 U x* F: X - (Progn
* S2 d4 I7 ]3 o5 k& H - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))8 e' d$ ]& D i; F+ a
- (Cond1 [# C, Q( y4 ]5 w
- ((= Name "INSERT")(Command "Ddatte" Chon))4 R+ d; Z3 G% J2 y' J
- ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))! ^& \2 b+ Y9 t( ^" H
- ((= Name "DIMENSION") (Hai_Edim Chon)), B Y- ]4 c* r% ]
- )
+ [( j* l4 l8 F% ~) C; e - );End Cond* V3 J% I$ z+ A, c8 J9 i/ L
- );End Progn2 |& I- _# N% z% A4 |$ q
- );End While2 T0 z, R7 i* o. V* i: T4 A4 i
- (Setq Olderr *Error*)(Princ)
! }; e: G% l+ } - );End Program: r* l, ?6 z: v0 E$ S' X E
2 {( `% C) f: O; R' w# R3 T- ;;;====================DDeditDim=====================
: U2 M1 `1 v: L1 _2 r - ;;;=====================Hai.DCL======================# Z6 O2 V) I/ ^& m0 \/ i
- ;;;====================DDeditDim=====================
+ H/ z2 a$ i$ l- B6 U - ! R9 M2 S. B. d1 h
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
: f7 N0 N9 F4 r2 h' Z - ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
1 y: w" r# F8 E% T; }4 w! H: D - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)- O+ } q1 t. b* r
- (Setq Oldlis (Entget (Car Chon))
- F. M# {% |( a% ] - Pt10 (Cdr (Assoc 10 Oldlis))' u1 W9 @& C1 G$ ]# D2 e
- Pt13 (Cdr (Assoc 13 Oldlis))8 B4 i! ~$ @$ \5 X* U1 y
- Pt14 (Cdr (Assoc 14 Oldlis))4 b0 V) P- e( S# P) t
- St (Cdr (Assoc 70 Oldlis))
( q. r3 d ?, c8 z& K* y - Dimdefault (Cdr (Assoc 1 Oldlis))$ ~2 ?4 |( x# _* ^# i U
- )
5 v0 T U! x% k v - (Cond0 X& J" ^# h* ~7 Z' x
- ((Or (= 32 St)(= 0 St)(= 160 St))
" _' O0 Q# P i! }* i - (Progn b3 C$ Q$ m+ d; {/ ~3 x4 t
- (Setq Ang (Cdr (Assoc 50 Oldlis))( y! {' y2 A0 @, H3 ^; p* g
- Pt (Polar Pt13 Ang 500)
; Z8 r0 t) A8 R' Z: Q8 N - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
/ R: @: ?8 E$ I' p! j - Dis (Rtos (Distance Pt13 Hc))
. Z o7 g2 ~( V+ B+ r# c2 z& \/ U - )
3 p* ~0 w& j: {$ h' i - )' @6 C* |+ p8 ~5 r
- )
) D. J& ?- Y B8 _) w7 r& |. u - ((Or (= 33 St)(= 1 St))) _+ j6 q; z2 U: L( [
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
' K2 k$ u1 y* l) e3 I* \& _ - );;End Cond/ L& t+ Q4 N( M1 @
- (If (= Dimdefault "") (Setq Dimdefault "<>"))3 l C' o6 B7 @
- (Setq Dial (Load_Dialog "Hai.Dcl"))/ G2 _, M2 i0 z
- (If (Not (New_Dialog "eddim" Dial)) (Exit))
k' C4 Q* q8 l" U8 I' v/ @ - (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))6 l3 Y! {( F* o- @. z3 P
- (Set_Tile "text" Dis))
) w6 j- o% O8 P4 M3 ? b - (Set_Tile "ha:edim" Dimdefault)$ `. L7 U5 O: \: p
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
! l8 J1 ]" x2 w8 o - (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
) v6 k: W1 b5 w' c9 ^ - (Setq State (Start_Dialog))(Unload_Dialog Dial)1 k7 E L v) s q' x- X) I
- (If (And Str (= 3 State))
/ D6 Z! ?$ D7 n - (Progn
# U2 [7 R7 V! H, k# Q! Y. s - (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))6 {* @8 J% n2 Q# H; {9 f+ ]
- )
! Z0 f2 V: d7 E* H# n - (Defun C:EH (/ Chon Name ): e P& i+ i: s! Q
- ! w- J4 Y* T" w2 k! e' y
- ;;;********************Du Lieu********************# v! I( |8 M% A8 f- [8 [9 _
2 \3 I, b) e( c& S9 p7 m- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))
; l6 L# y( J, Q; C; A - (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)2 \( Y, j; B- G& p0 B2 k A. B
- (If (And (/= Hacat1 Nil) (/= Hacat2 Nil)); V8 p2 k0 C+ \+ ~% M G
- (Progn J' z' D, q. a. L
- (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))* }1 _4 |7 |! ?. K( O) _# e: H
- (Setq Chon (Ssget Hacat3))
: r6 v& e5 f& r - (Command "Break" Chon Hacat1 Hacat2)
3 X! R% ?/ J* M+ z2 X - )
# C2 U8 I; w4 F9 y/ b, n - )
# x8 W: P5 A& w5 R - (Princ)8 E2 K8 V. F* u# z0 |* Z
- )
: {& C$ F" s# Y$ K/ ] - ;;
9 J' M+ v6 x0 _5 } - (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))3 V9 g5 X6 A* j& C" u" u- T/ Z; {
- ;;9 @$ s5 z; y9 k+ G* I3 `& H" H
- (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))! D$ |$ b0 x! C+ g
- ;;
- c5 `9 q8 |7 \' _9 Z - (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))
1 Q) u: w7 l* }$ X/ h! O - ;;
+ Z9 o9 e U" ^3 E - (Defun Reinit ()(Setvar "Cmdecho" 1))
# I. ?( E! u; ~* V1 Y* U - ;;
3 ?6 c% r9 P+ r) ? - (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))
/ [! Q" d) A) D: `1 Q - ;;
8 y5 R( S# ^& y! m - ;;Cho 2 Diem Tinh Ra Vec To Phap
% z7 K6 r/ ?5 E* { - (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))$ O' w6 u3 }% n0 v7 B$ |5 p( m+ Z/ Z
- ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang# d; z6 i6 n* P) {
- ;;Da Biet 2 Diem Thuoc Duong Thang
* _. a$ x8 y0 f) r; ~- }! j1 R* | - (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2)
1 g/ z: M& x! F, c. t) K - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
, z) K* i. ^2 l: P2 f/ ~ - Hc (Inters P1 P2 Dc1 Dc2 Nil)))3 T8 F: v" ]! k+ H0 ^! J
- ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang! H) W; l, c+ v/ f
- ;;Da Biet 2 Diem Thuoc Duong Thang8 c& s7 }) _, O- D- Z0 x
- (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)
* O0 J$ W) B- _( h7 }- V* M. x - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)7 P W' |+ I; c* k
- Hc (Inters P1 P2 Dc1 Dc2 Nil))
, m6 E) s5 \" g. h. S - (Distance Dc1 Hc) E, e4 W5 k6 m
- )$ \6 K- ]& d1 [
- (load "nhapcua.lsp")- R! [1 e6 A7 g6 C: c m
- (Defun *Error* (Msg)% D! t; W# h, ~& k! @8 e* K( S! ~
- (Princ "\nerror: ")(Princ Msg)(Princ " ")
+ E7 Q% E& Q/ J! v% K& k i - (Start_Dialog)(Unload_Dialog Dial)
a1 O n w4 p* G- S - (Setq *Error* Olderr)(Princ)& E; Q( O% A2 ^' L) p7 U" {
- )
) G. X0 F* L# b. J+ ~6 Z - (Setq Olderr *Error*)
3 f% J. y8 L3 P* y - (Setq Chon T), J# v6 j# ~/ k2 s
- (While Chon
% j" G8 Z% \7 D* s* V - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
7 s6 C6 {0 X& B' Z* q" W% g2 ?( Q - (If Chon
# a7 b' ?. O9 s - (Progn
a G7 Q! X" Y - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
" n# r, E1 q) m$ [. \ - (Cond& n/ E9 N; N" t0 b. B: K4 {/ N. `
- ((= Name "INSERT")(Command "Ddatte" Chon))
, A/ k% S9 R; u, ^1 A8 H - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
( x) y! o f2 n. ]; W" G1 C0 M - ((= Name "DIMENSION") (Hai_Edim Chon))3 W8 j9 B: C7 M
- ) C2 U! F" n8 Z8 G' M
- );End Cond& G: J) N1 Q3 b, x \! _
- );End Progn
7 w+ Q: t9 x0 P( V6 i0 X; H& }" Y6 b$ j - );End While
; u: K9 f) } `/ p2 m; @3 Q - (Setq Olderr *Error*)(Princ) S5 o% A7 q0 p- r5 X2 l( S. v/ x
- );End Program7 }+ e, U/ S9 r
- & V2 m" }0 n/ {0 x# r
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================4 {& q8 e( B! ^$ e
- ;====================================Nhapcua.LSP====================================
; a8 _- H5 m& W$ k, Q7 p' c - ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================9 J: N- C6 F! F Q3 t
9 {) o) I9 U. k9 x/ f9 j
- D* A- z' p$ o! v$ s& j- b% r2 V
5 R2 x! G0 O4 |4 r& \- ;*******************;*******************;*******************;*******************( x/ P0 c* W( T. U6 @9 M
- ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****
1 R. k, N) }( J - ;*******************;*******************;*******************;*******************% v# B3 l/ ^6 I7 {# u. r
. W( c7 J) J9 ?$ k* r1 Y- ;VE HINH BINH HANH
9 V( t4 ~: K7 g& o
5 c9 j! c, T5 P. m3 L- (defun c:binhhanh (/ p1 p2 p3)
) x' d+ F3 Y* q y6 T - (setq p1 (getpoint "\n Nhap diem thu nhat:"))5 I! @% N3 {5 v# x/ V
- (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))% ~6 d& n$ b' k) ?
- (setq om (getvar "osmode"))7 t0 a- t$ |/ O/ T; R# s/ G) H
- (setvar "osmode" 0). k1 n1 E7 w" @
- (command "line" p1 p2 "")5 l' R s! |% J+ r) J, }- f* a
- (setvar "osmode" om)
) |4 v( t% `; V" b - (setq p3 (getpoint p2 "\n Nhap diem thu ba:"))+ l( L: A, e# ]' `4 r6 |
- (setq a (angle p2 p1))
- s% S' C5 Z: x7 M, b! X - (setq d (distance p1 p2))3 }3 n; e) f& d; N4 H' z( u
- (setq p4 (polar p3 a d)). v& L3 H5 t9 S: q. E
- (command "OSNAP" "none")% f6 C. ^6 j! ?1 E5 u1 y, S
- (command "erase" "l" "")
% {2 W, B' ~- b- p8 K* Q - (command "pline" p1 p2 p3 p4 p1 "")
# j: a t- Y' D; x - (setvar "osmode" om)
8 r- B) t8 D, l2 V. O! E - )
# X( l# s2 y' a8 Z; I% f - . W7 d0 b! _, p: |
- ;VE LUOI COT
I4 W! U. Z5 O - " c% L1 B: ^8 o- M
- (defun c:LuoiCot ()# j# Q7 R: ]$ y+ v
- (setq om (getvar "osmode"))' L. ~1 X1 f( N! ~5 L; }
- (setvar "osmode" 0)
7 c& a8 @6 L( {% m# j3 C - (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
4 H! C' x8 [( k% K6 v" Z9 s# \6 w - (setq p0 (getpoint "\n Chon Basic Point:"))
$ _; i# I" f" I$ `9 V( f' H - (setq nc (getreal "\n Nhap chieu ngang cua cot : "))
$ D2 X; k0 e/ t S/ o0 {7 o' w - (setq dc (getreal "\n Nhap chieu doc cua cot : "))
6 P, c& N$ T. T5 L - (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) ): n5 n5 j0 @# Q9 H, ?6 {
- (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
' c$ z; d. Q! ^" ^4 u% k+ X$ T4 h - (command "rectang" p1 p2)' E6 [8 y' M( ^+ s& e* Q
- (command "hatch" "solid" "l" "")
& j4 n8 G X& V - (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))
4 x9 r5 @. E1 ^ n4 u$ _ - (setq nn (getint "\n So buoc cot phuong ngang : "))
+ z, }" F6 {4 l" J6 C4 ` - (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
2 O, S+ L# S) i' }! k+ t9 A - (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
" f( ]/ L. s2 _3 L* \ - (command "select" "w" w1 w2 "")
8 h! N# a" E2 Z" k - (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )7 L9 Y) u0 I$ O! R2 G' Y! W
- (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")
1 q, b4 \& k$ a2 y7 @$ s - (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))3 X! {/ \$ `7 _8 V* K" J- u. I
- (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))
$ ` Y5 k% g& u5 h. R( M - (command "zoom" "w" w1 w2)
$ `& g: o7 X9 q6 x1 A - (command "select" "w" w1 w2 "")2 O$ D; E, {% {
- (setq bcd (getreal "\n Buoc cot theo phuong doc : "))
2 p) K% o9 e9 H3 i8 ^0 c - (setq nd (getint "\n So buoc cot phuong doc : "))
# Z; P; v' [* l5 V3 h - (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) ) R' q G% b' E
- (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")! w" E( M7 V4 g' S5 _$ k# T" [; ~
- (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )* M; L1 c( g# Q
- (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) )
) W$ B' G. F! G2 z- ~6 G - (command "zoom" "w" w1 w2)- i. l. ]" f+ g" m( V
- (setvar "osmode" om)+ z3 O: A+ [8 Z" e8 `" P
- )6 i6 p' j O8 |7 X
$ y# ^6 d3 E% S+ t5 e6 o- ;VE CUA DI- G9 S; J- k7 V; S" _
. i. f% Z7 M6 q- (defun c:cuadi ()
0 e# n; w z3 g5 @$ a6 R" b# X, ~- I - (setq om (getvar "osmode")); P6 W. t6 v4 k' E
- (setvar "osmode" 0). N/ w$ V4 _. i8 L. f0 v4 }
! b: ?, v9 e5 R# [: J6 T- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
$ N% f$ g. O/ F - (setq b (getreal "\n Nhap be rong cua : ")) e+ Q; I5 G. `- n G4 }$ F
- (setvar "osmode" om)$ o( v4 ]+ W3 S9 E' _. W
- (while (< 0 1)
9 k( Z) _3 S9 W% L% I$ E - (progn
* ~ Q1 H0 w9 A+ B1 R" L3 `* S - (setq p0 (getpoint "\n Chon Basic Point:")); q' H; Q2 V0 q& l
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:"))
4 A( `% h, @+ x0 C - (command "osnap" "none")) @* Y% ]# \- X7 S/ M9 W
- (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))
* Z$ U+ v. z, e! o - (setq a1 (angle p0 p1))% z: O8 D2 k- G& y$ A* M3 m; d
- (setq p1 (polar p0 a1 (/ (* hstl b) tile))) {1 _0 e5 J3 f o
- (setq a2 (angle p0 p2))
8 T9 C3 G" \3 @. z - (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )
6 V# M7 c$ z7 V& z4 o - (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")- }" o: d% L3 t8 z
- (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))
: a5 R8 s4 W. `2 d2 @; l* a - (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi)) $ w! Q3 g( @& S
- (setvar "osmode" om)# g1 Z+ T, p v3 @( _
- ))1 h( F' N) A& I1 v
- )
4 H% c5 L/ ]4 Z, s5 v
5 m+ K. V$ j/ x, T4 h7 {9 n- ;VE CUA SO4 L$ }* }4 \& I6 g% V; g a3 t; x
- Y2 k) u2 Q/ \- (defun c:cuaso ()
* n8 P+ R( w1 {/ r$ W3 G& Z7 p' ` - (setq om (getvar "osmode"))% w# q8 m7 J# g
- (setvar "osmode" 0)
7 b8 a" }- ~0 j' k
/ l) _- P* P, e- B7 D% s& A- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))# A3 b/ k8 s- `6 Z/ `; b# ^7 `
- (setvar "osmode" om)
# b7 z- j) ~ v4 K0 } - (while (< 0 1)
& m: D' L" a8 `" n, m, ^/ N - (progn+ ]' c. R' k- o4 i A# M6 Y( x2 E
- (setq p0 (getpoint "\n Chon Basic Point:"))9 h" f7 U% K+ f. w% g* j
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))& N4 r$ l8 P' g( x( Y1 J
- (command "osnap" "none")
+ ?3 ~& l0 L# t/ g v - (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))
# x6 f! _ x9 ^. j4 r; B) T - (setq b (distance p0 p1))
* r; \( S* m3 G2 x1 @9 P9 r5 P+ ~( v - (if (< b (/ (* hstl 600) tile)) (setq du 50))
- }2 d1 v6 ]4 _6 |/ ^0 u - (if (> b (/ (* hstl 600) tile)) (setq du 150))
3 O2 d3 T* T+ _8 [3 V/ Z - (if (> b (/ (* hstl 1800) tile)) (setq du 200))2 w/ c% U0 P/ ~$ q6 S2 C4 [* J! V1 u
- (setq a1 (angle p0 p1))5 `& B; ^ a* {$ w
- (setq a2 (angle p0 p2))& O, B/ G5 x5 z9 ?% ?% @, a
- (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )' a) v* I) R4 ^
- (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )& R1 ], S1 s6 \. e7 _
- (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )
1 k; b! L' D9 L2 [! P/ m9 q - (command "pline" p0 "w" "0" "0" p1 "")1 }: V" Q5 f: }" S
- (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")
% w! ]2 ]( H7 b0 j1 [& K - (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")
7 |3 m+ e8 ?, P% s. _% h: p - (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile)))
2 Q9 p: g% c4 n5 x - (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")
6 ` G6 c) q6 J' R9 d0 Q+ w - (setvar "osmode" om)" \1 i2 [' W% s" J9 l' K2 w( r
- ))7 x( ]+ O( }) S" y0 g
- )
1 {: e0 w) F1 Y9 r - 6 i! W+ N. |0 `. C/ g {3 ]
- ;;;=== General Utility Functions ===5 x0 `6 O6 L8 o' O
3 I4 A$ x, D) ?4 t( O) I' R! ?# w- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined
; F. ?8 S) @/ @ - ; ADS function. Now it's a simple AutoLISP function that calls the
* U3 [: }- U. m9 @* Q - ; built-in function (help). It's only purpose is R12 compatibility. 8 r+ ~0 {) _1 A t+ K% Y: W! ^, `0 x
- ; If you are calling it for anything else, you should almost certainly
, @6 g: d- }, B9 d! d& c7 _9 { - ; be calling (help) instead. - h: |, P- y, q3 _
- * b ?- O8 ~' z: H* L( P r- ~
- (defun acad_helpdlg (helpfile topic)
& ~) I+ J8 V) N9 A( X" [1 y1 H; r - (help helpfile topic)7 h0 y4 |4 A1 }! M. [
- )
/ y3 t( U0 _8 a) `. y+ W
% ^ B$ W. o% y! Q8 k* P: i- ; ?4 s# X4 a8 P9 v; B
- (defun *merr* (msg)+ X, Y/ t$ N8 U! d. B) R6 g
- (setq *error* m:err m:err nil)
. w1 E, O: v( v& ?. E, T - (princ)
. D! b& f. I- Q7 {. h5 n - )
! h* z9 {: Z0 x - - g+ Y# [4 J$ e& |# T
- (defun *merrmsg* (msg)
, }& z4 ]+ }6 L - (princ msg)% C1 A+ K+ @' V( V0 K* y, \
- (setq *error* m:err m:err nil)5 ]! C! x+ j+ p" n+ j! Q9 B1 V r9 c
- (princ)
1 r4 r T/ f& O; W1 v - )- Y. ]" c5 C6 C3 G
- & P( L5 k& r4 B5 l
- ;; Loads the indicated ARX app if it isn't already loaded2 n- H# J& E" S6 l' i
- ;; returns nil if no load was necessary, else returns the
: V- Z3 L/ X4 v8 F% P& m8 a% K - ;; app name if a load occurred.# Z% V# Q/ T7 x
- (defun verify_arxapp_loaded (app)
3 L0 Y- G0 t4 B& Y8 `" T - (if (not (loadedp app (arx)))5 i! ^4 ]& c7 e5 L& C) J' Z( |
- (arxload app f)/ j% O9 B4 f$ a0 D1 j5 d
- )' Y+ o9 l5 @+ g! g2 s
- )# E2 ?! m1 _1 S: |7 N2 t# a2 s& m
- G/ ~8 d4 E$ z" j8 V0 N- ;; determines if a given application is loaded...
$ c \, [, _ H2 D4 | - ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....9 a. b5 W# D# Z& s
- ;;
# R+ N! M$ {0 S2 k# T" V - ;; app is the filename of the application to check (extension is required)% D$ A3 M. G/ z9 @9 b
- ;; appset is a list of applications, (such as (arx) or (ads)# p% h0 ^/ ]8 Y) X- d( R7 p; e
- ;; 1 o3 `0 }# f& I, Z( b% @
- ;; returns T or nil, depending on whether app is present in the appset
1 l% U& n3 Y9 u - ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"
& R/ [0 V! [3 s/ y$ i; W9 h3 O - ;; Also, if appset contains members that contain paths, app will right-match
r% r4 L/ P# R; W$ h - ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that
" q2 g c- t5 ] - ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."7 S/ i, a0 n! g# f7 j# Z
- (defun loadedp (app appset)
2 k) G8 Y& r: ^# ` - (cond (appset (or
: x, _- [) |: {5 Z2 ? - ;; exactly equal? (ignoring case)
0 Z5 k7 M4 I6 M; \ - (= (strcase (car appset))" W# I/ w7 h- _$ ~4 w
- (strcase app))
# l* r5 C5 t4 \% _" _ - ;; right-matching? (ignoring case, but assuming that3 O/ W6 H; H4 w$ S7 w; |8 `
- ;; it's a complete filename (with a backslash before it)5 w8 D, \& G4 o
- (and ; B* G8 q' \; }# \/ c4 P/ p& S
- (> (strlen (car appset)) (strlen app)); ]* ^1 k0 `) L" s" P
- (= (strcase (substr (car appset)
# N8 R' H# _" Q6 w, E" q3 D' G& N1 f - (- (strlen (car appset))
; \! ?# L# M v' X/ d - (strlen app)
, |* H) N# ^' Q; D - ) 9 A, E4 ?% I7 W9 S
- )) M* e! | c7 G5 d
- ) 3 {, i& z: ]( Y# q- {! U( G
- (strcase (strcat "\\" app))
9 F2 r6 M3 ~! g; J7 i6 g - )& V5 e2 N4 I1 f$ c6 f4 o
- ). `9 s8 C: m' c' t. p+ Q3 u
- ;; no match for this entry in appset, try next one....
* V) n( d8 {8 U$ w1 m - (loadedp app (cdr appset)) )))
, u! x* p5 k1 D6 R% ], J - )
& u; o* j* G& s0 E - 2 ~" w( F+ g% n/ u. ^
2 ~* P! r# V5 c- ;;; ===== Single-line MText editor =====2 g X1 p6 N. m$ G# w7 {6 ]4 h
- (defun LispEd (contents / fname dcl state)
* s7 Q9 k. q9 T1 S6 c. I" z3 {; R% v - (if (not (setq fname (getvar "program")))
8 \" u+ |) V% M2 @5 D4 ? _ - (setq fname "acad")# ]4 n8 W+ E) @* \* D
- )
+ A, I6 R& d+ s% z& U8 W - (strcat fname ".dcl")
" I0 F+ Y- t) b, Q" N4 e - (setq dcl (load_dialog fname))" D' X! M n! c2 {% F1 a; C
- (if (not (new_dialog "LispEd" dcl)) (exit))
0 }: V. Q2 p5 O, F) V7 B& _, x - (set_tile "contents" contents)
. h$ w' l( K2 m+ A4 \! r. p - (mode_tile "contents" 2)
. R1 k7 v7 H6 B" ~+ Z: { - (action_tile "contents" "(setq contents $value)")
% i) S- d6 G2 R9 ?( S - (action_tile "accept" "(done_dialog 1)")
+ Q- u" b( N+ W h1 q* R - (action_tile "mtexted" "(done_dialog 2)" )6 J. Z% @: J( a2 }5 t! ^
- (setq state (start_dialog))
# d* s5 W. q, i - (unload_dialog dcl)
) K, f O) j4 w5 n* h; Z - (cond
3 ^5 E$ P9 z' E" U - ((= state 1) contents)
; `. f9 S/ i0 l+ X; o' F1 B/ [; W - ((= state 2) -1)
+ @$ G: p$ m; U+ }( w r7 L - (t 0)
" n1 X* m7 c7 |) e7 J - )2 E2 |9 ?$ d6 U% t* }' B: q q" T
- )
6 g- v$ I8 o- p2 O5 L! H; C2 ~9 t - 2 @) i4 I! i+ G' D' _
- ;;; ===== Discontinued commands =====% u4 t9 A$ X! \* d0 g, u$ z6 r
- (defun c:ddselect(/ cmdecho-save)! G2 H# ^; c5 K
- (setq cmdecho-save (getvar "CMDECHO"))% u& Y( ^# L* h2 r! |+ ~# |+ p
- (setvar "CMDECHO" 0)
: Y! q f- d7 a - (command "._+options" 7)" U6 V" `0 Z1 y( i0 H0 C0 K
- (setvar "CMDECHO" cmdecho-save)
& j5 @: n/ y. K2 j' ?; [ - (princ)! a! U9 B1 {+ F
- )
1 b; J( T2 g" T3 W: @4 V3 U5 m3 M - . D$ e) Q8 a& r# W( ~
- (defun c:ddgrips(/ cmdecho-save)
/ E4 Z: s4 \$ l1 i9 ~/ ]0 m/ ` - (setq cmdecho-save (getvar "CMDECHO"))
4 C/ }4 ?% ?% ?8 V/ i- T0 [ - (setvar "CMDECHO" 0)
9 i4 L7 k7 f! s6 o - (command "._+options" 7)3 r& q) G' W& ]3 l. I9 X
- (setvar "CMDECHO" cmdecho-save)7 i y4 M* _+ x5 c
- (princ)# u* c7 Z+ `" R! B. E* p. H" S; E
- )7 ]7 r+ d7 J) m- o
- ' n7 d6 U; P0 f' i0 q3 j# o+ C
- (defun c:gifin ()2 c* e( w) G8 }4 c5 A/ W
- (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")6 c3 H% A" t" `7 S% f8 z: W
- (princ)
7 Y9 G- c' D. h% B; K - )% s# w; }- n# _, K* S$ `
# |7 u" D' l2 n8 e* z- (defun c:pcxin ()
# l7 ]5 l0 [* U9 q( G* i& @8 S - (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
8 M7 o8 n* i* v. e% @0 d* @0 ` - (princ)
* @! p+ [9 K6 X# E* O5 H5 ^. h - )5 I: c' _ v/ e$ R% E4 _2 t: \
- 4 I; r7 d& e# n! j3 d0 S( E1 D3 B8 ^
- (defun c:tiffin ()9 c0 c0 s9 _, l
- (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
( }/ H% U U8 ~6 w5 D3 M+ F - (princ)
; e3 }3 e' I: `# m* y/ c$ s - )
! F: U4 a+ h* h5 E/ b8 @ - / R5 l: N% [3 j! e
- (defun c:ddemodes()+ J9 I, e' T+ y% K
- (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+ v8 n0 `9 [5 O* `. H6 k) |
- (princ)
1 k$ J/ l! g3 Z) R, \, V/ G - ); z w# s1 a# z6 O/ G$ c- T$ O1 l& K
- 6 n8 D! S2 U% Q. F
- (defun c:ddrmodes(/ cmdecho-save)7 x' ?. j" Z0 v! ?- A
- (setq cmdecho-save (getvar "CMDECHO"))# T$ ]/ z$ x" ]7 ]' k7 \9 G
- (setvar "CMDECHO" 0)
' s: ^/ }# m+ _4 i& q - (command "._+dsettings" 0)
& \$ E0 ^- @7 X# n8 c5 n8 | - (setvar "CMDECHO" cmdecho-save)1 s( i( C% H% [/ a4 Q! ]! j7 r
- (princ)
1 ^. X: g; d r1 H8 W8 g! y2 p+ P - )
0 ^' M. a4 G( N: e& X - % k3 M! C$ I" W9 A: `- ~
- ;; HPCONFIG
1 `# Y' I! V* _( c - (defun c:hpconfig (/ hlppath)
/ q4 k) J2 n0 t - (if (not (setq hlppath (findfile "acad.hlp")))
% A- y! z+ y0 i - (setq hlppath ""))0 A4 K: J# \$ ?! }. E
- (help hlppath "hpconfig")3 k+ z8 ^) W. @$ _) N, J' C
- (princ)& E) m" v5 i1 d$ M6 O4 H/ k) \. z
- )9 E! U8 }# [- [5 P& |6 a
# s, S6 V' ?! A, L2 D# a- ;; OCECONFIG1 D7 ^, P( D6 P. W! A0 @
- (defun c:oceconfig (/ hlppath)
7 z4 j6 g7 A0 F e - (if (not (setq hlppath (findfile "acad.hlp")))2 d( [, G$ P8 M q6 S) m
- (setq hlppath ""))1 d; a4 X( }7 t4 z7 w
- (help hlppath "oceconfig")
, |! Z [ `2 }0 q2 D% q- Q - (princ)) T0 \( T8 |0 j- ]
- )
( D1 }5 D4 u' k8 Y1 E6 z - : p9 L7 c! f1 A j
- ;; CCONFIG, F" \" h* |, M8 k, _% Q& v/ F
- (defun c:cconfig (/ hlppath)5 z+ J/ j, t/ d
- (if (not (setq hlppath (findfile "acad.hlp")))
6 _/ z/ y% t4 o6 q. S) k - (setq hlppath ""))
+ P3 c) N* c7 g+ {3 y8 a - (help hlppath "cconfig")
& X I J+ q4 V - (princ)
8 H0 d7 C* [ U* a - )( T2 Y. z/ F D/ Y9 w' G6 g! u1 u
- ! m& E Y/ g( z+ E$ ]5 @
- ;;; ===== AutoLoad =====
& M( }, T6 f: X6 ?% Q7 G- ^0 Q) M( H - + f" N. O0 ?3 {1 c. e' H( Q8 Y$ h
- ;;; Check list of loaded <apptype> applications ("ads" or "arx")3 N3 C6 _2 R* x
- ;;; for the name of a certain appplication <appname>.
+ U4 P6 L2 y# s$ @/ f5 x - ;;; Returns T if <appname> is loaded.
( c9 R: ~0 j$ Z* `8 l
6 w5 _$ I) K" j$ G% W- (defun ai_AppLoaded (appname apptype)6 |7 T6 O! [( g
- (apply 'or
9 c* O; r1 q$ z9 Y1 ]- M* K - (mapcar $ Y8 ?' l3 S I( A: Z3 H
- '(lambda (j)% w+ [& F5 A# M0 L! R8 h5 w
- (wcmatch
) a3 p/ H0 j# k; b - (strcase j T)4 o: X% L4 H; g- a7 O5 G% } b) a
- (strcase (strcat "*" appname "*") T)
5 z9 J7 ~% g8 l2 X+ p - )
2 A3 y8 ?5 u& u - )
4 ~2 d& O0 S0 F1 \# C* W - (eval (list (read apptype)))! Z% X9 Y$ t2 G9 E# r
- ) @6 S; j, k) n4 M0 ~* @
- )/ W! w! j5 {1 x
- )
# [6 r! ~! \1 [
8 W2 _# P& G$ C! L( _" y' I- ;;
. {8 _' _: `' i* r6 E' P2 G8 @2 }, Q - ;; Native Rx commands cannot be called with the "C:" syntax. They must
/ E" d1 z3 \9 \ y& v - ;; be called via (command). Therefore they require their own autoload
: y G5 z: u0 D* [* Z$ \ - ;; command.( A* ]0 v- ~$ ]3 G
6 q Q9 V4 s, B i% J- (defun autonativeload (app cmdliste / qapp)3 h+ }0 u) w" W# Z
- (setq qapp (strcat "\"" app "\""))% \ l/ f* k" Z
- (setq initstring "\nInitializing...")8 L) }2 g4 h' h
- (mapcar
; A% }8 b$ ` S, s! l9 F4 A$ z - '(lambda (cmd / nom_cmd native_cmd)
/ Q: N& X3 O2 l a2 ~; M; X - (progn/ @) N6 T+ F2 J( h
- (setq nom_cmd (strcat "C:" cmd))! {; k2 W) j" _6 H
- (setq native_cmd (strcat "\"_" cmd "\""))
5 o2 P/ p: |# T' p- i( m+ s5 m - (if (not (eval (read nom_cmd)))0 m& H! ^, S0 s
- (eval0 e3 ]9 ]) E$ x( R0 Y9 ]2 |- N
- (read (strcat
P4 _1 D& [1 Z, e - "(defun " nom_cmd "()"
Y1 B1 |- r- S5 W( N: d - "(setq m:err *error* *error* *merrmsg*)"
" R( S1 Y) C( [" f, } - "(if (ai_ffile " qapp ")"
/ k# G1 e# h0 A( R - "(progn (princ initstring)"; n$ J+ F. m( H8 F6 w9 R2 Z
- "(_autoarxload " qapp ") (command " native_cmd "))"
1 a* M) K) d( S' f1 a9 C1 E" T - "(ai_nofile " qapp "))"8 d6 Y- k6 v2 Y5 x, b/ U1 L
- "(setq *error* m:err m:err nil))", c- R/ C: B: O$ }
- ))))))
- N: I! o* m8 F C4 D- c# H7 n4 A o - cmdliste)
; O& c- o# _" S: f1 ^. X ]/ K - nil- s" R/ r* z' ^5 R5 p/ x2 y
- )& ^ w1 L, Z) x5 n2 ]* Y8 j
- ) G/ X/ L' Y5 d
- (defun _autoqload (quoi app cmdliste / qapp symnam) g& q/ V# |3 E o" D+ e
- (setq qapp (strcat "\"" app "\""))
; i$ x* \+ L+ o$ h) ]( Y' s - (setq initstring "\nInitializing...")
6 L* i* N+ |( j$ D r# z4 e - (mapcar
3 ]$ U0 @2 w1 A' p5 _9 ` - '(lambda (cmd / nom_cmd)
% v# @; a, B( G - (progn
8 _$ r# B( O4 r - (setq nom_cmd (strcat "C:" cmd))4 O' j* \0 U5 e
- (if (not (eval (read nom_cmd)))
8 D, Y" S+ s. @. o/ I: G- I8 r - (eval2 j8 h- K$ H1 A3 n. t
- (read (strcat) Q, D. [ b) z0 c
- "(defun " nom_cmd "( / rtn)"
- }- T% X$ T2 J# B/ c% f/ T - "(setq m:err *error* *error* *merrmsg*)"5 [) b* `' g: R3 t" |
- "(if (ai_ffile " qapp ")"
- P. }" h6 P( ?& L- z- F% i$ [ - "(progn (princ initstring)"* p. U2 @! H0 C6 r
- "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"
( F3 n8 t9 m" y; T3 i9 A& w - "(ai_nofile " qapp "))"
# d9 g9 p n6 R |. x - "(setq *error* m:err m:err nil)"0 j9 w' {$ h, z1 c
- "rtn)"
5 }$ O$ [" \) N) {) W - ))))))* R; }" h% @9 |- H
- cmdliste). ?2 m) n/ b M
- nil# s. C1 c0 ? s# I- |% m2 y: B
- )
* [$ p9 h2 W4 ]+ g: u- D4 U. E
- l; c" t# p3 \& S+ z" a- (defun autoload (app cmdliste), T3 c! q9 }' k2 j- `0 |. o. I
- (_autoqload "" app cmdliste)3 Q2 ^* e2 X% w7 e Q5 O
- )
% u' e2 F6 \8 U( L$ {5 S6 V9 s$ f S
& s. a$ w+ q( ]/ c# m' x* ^ w- (defun autoarxload (app cmdliste)
& y+ J, G/ w' t! v4 r - (_autoqload "arx" app cmdliste)! q7 w6 h2 W1 W& x8 ~6 z6 e+ c
- )9 d" I% F/ _2 c) b* g
- 3 s- d) g2 p, B0 L
- (defun autoarxacedload (app cmdliste / qapp symnam)# Z- Z! m* i9 N: \6 D
- (setq qapp (strcat "\"" app "\""))
& p4 \- d1 q; O" l - (setq initstring "\nInitializing...")
& M( R2 q/ E5 L+ {" `; g" c - (mapcar1 q, w- L: k2 g/ j, g# H* T% `4 B' b
- '(lambda (cmd / nom_cmd)
+ D6 C( X% D c - (progn
) V7 r% h$ _+ Q* Y7 y - (setq nom_cmd (strcat "C:" cmd))
; i, m4 Z. O7 w: h" w - (if (not (eval (read nom_cmd)))* ]1 r( O4 D/ @0 A" y' }; Z) f# {
- (eval! r/ ]: G2 P5 a0 P, R1 ?, `$ P: f
- (read (strcat
7 y$ `8 R3 h& Q$ g - "(defun " nom_cmd "( / oldcmdecho)"
) v: u2 d, N/ L- G; S; U! T - "(setq m:err *error* *error* *merrmsg*)"0 k, X0 g$ X8 Z: d. {3 q: M
- "(if (ai_ffile " qapp ")"7 k8 y' C/ l7 r) B" L. p
- "(progn (princ initstring)"( O( h3 o2 b- A# q) ?: |
- "(_autoarxload " qapp ")"3 V3 ^6 D5 x3 [
- "(setq oldcmdecho (getvar \"CMDECHO\"))"
4 M# ~1 }( M3 P - "(setvar \"CMDECHO\" 0)"
( G5 g2 Q4 `, g+ T4 `9 a2 M - "(command " "\"_" cmd "\"" ")"
; Z: Q7 n$ i1 i5 _ - "(setvar \"CMDECHO\" oldcmdecho))"+ r7 a3 k& m7 R2 P
- "(ai_nofile " qapp "))", I0 M/ g4 d! Z; M, m8 @# t" u/ P1 ^
- "(setq *error* m:err m:err nil)"% H8 R. A$ W: `6 ?! u- B
- "(princ))"
# |1 @* q" y" G) P2 t0 L6 P9 g - ))))))4 F# k+ N4 [& y' i" L7 }" Y
- cmdliste)
3 j% y5 r) w) u4 z - nil
$ z! V$ u4 p! n0 z5 ^ - ) t m$ ^& X0 Z8 f& O
- ' I, x+ V# `* T
- (defun _autoload (app)
# N9 B/ l1 N8 G r" X' w6 O - ; (princ "Auto:(load ") (princ app) (princ ")") (terpri)
3 C! e9 Y& P3 p) p/ Q) W - (load app)
( l) A7 D/ Z7 Q- f9 @ - )
; y- @8 D/ _( [) \
* \5 d0 V* }1 t5 m- (defun _autoarxload (app)7 V4 b, d6 X% q- q/ Y1 q5 }4 u
- ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri)9 k7 ]$ K( R, ^) e6 E! g& i5 w4 @3 n$ h
- (arxload app)/ D3 t' j; [8 G" o0 r6 }/ Q
- )3 E2 r5 ]' n7 k$ L* k
_# q" c% ^* \$ W- L% E- (defun ai_ffile (app)1 y: c! c4 } f5 m+ k) |3 Y, V8 a
- (or (findfile (strcat app ".lsp"))
( E* s$ V( l5 O: Y, _ - (findfile (strcat app ".exp"))" W0 |! [$ a. K2 O3 Y* t# V# h
- (findfile (strcat app ".exe")), K/ S( Y, [ v1 m5 L
- (findfile (strcat app ".arx"))
# C* a1 a( S1 e; D* ?: p, _ - (findfile app)
+ w6 z& Q2 N' B - )
9 ~/ B. G1 [+ n5 s9 F2 p - )$ |& t# ]5 l$ K! t
- 3 o( _. g1 ~7 M( ~
- (defun ai_nofile (filename). q- e* d; j9 \: U# E6 V
- (princ
! |; H$ P! r ?, j/ o - (strcat "\nThe file "
$ b3 _ S$ Y5 W7 m/ e - filename
& p; E& f+ G- u; P- U/ @ - "(.lsp/.exe/.arx) was not found in your search path folders."* a) H6 b. s/ o( r: G, z$ L
- )
) [# o. h% Z; q' Y8 j% C; y - )6 K3 [$ U( S$ h2 Q
- (princ "\nCheck the installation of the support files and try again."). r, F9 C. o) [- z( ]7 x$ z, P
- (princ)/ p2 t/ X1 f; h2 C% L( X3 n
- )
; O1 h ~4 O/ R3 F# ]
+ A( f9 X. ]* [' ~/ ~- # y5 ^, p: t+ D! {0 c3 g
- ;;;===== AutoLoad LISP Applications =====
9 O }$ f+ q! W) e% O) d- L - ; Set help for those apps with a command line interface
' s/ v7 R5 x/ ? - & V' t" m' L' `! ]! g2 ~
- (autoload "edge" '("edge"))3 u) D; P5 L. i/ V
- (setfunhelp "C:edge" "" "edge")& C- f, c9 i3 o
* r6 W0 x8 Q5 A2 ]- (autoload "filter" '("filter " "filter"))! O+ {2 F# J' A
- # W4 F$ @ [0 c9 e% b1 L
- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"
. g! G9 \* G2 k- ` - "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")( b( |, U7 S9 d; E
- ), Q/ b) x/ t% w- K) E5 P$ _
- (setfunhelp "C:3d" "" "3d")
& E! m+ S+ D( X7 ?# x6 |* H3 y - (setfunhelp "C:ai_box" "" "3d_box")
s, } p% r) W - (setfunhelp "C:ai_pyramid" "" "3d_pyramid")
; s& _& x; {+ S8 H% P% V - (setfunhelp "C:ai__wedge" "" "3d_wedge")
% i! d* S& p! R6 x8 W3 i - (setfunhelp "C:ai_dome" "" "3d_dome")0 G6 a9 d, u! |" G! D( i- K! X
- (setfunhelp "C:ai_mesh" "" "3d_mesh")6 G2 g, u: u1 l. ^% W
- (setfunhelp "C:ai_sphere" "" "3d_sphere")' k; F1 o/ s2 t1 s9 j! |1 {
- (setfunhelp "C:ai_cone" "" "3d_cone")& v( B+ a1 E( z# E! z
- (setfunhelp "C:ai_torus" "" "3d_torus")
7 S" ?, S9 g$ V0 P1 t% b2 W - (setfunhelp "C:ai_dish" "" "3d_dish")+ N0 b9 N- T$ q: `5 R
9 [- r+ u" f B. w( J- (autoload "3darray" '("3darray"))
. e% D( a& [7 I: Q) n - (setfunhelp "C:3darray" "" "3darray")
+ \1 e/ e& z" u) E e+ z - * q" V1 u' @. i
- (autoload "ddvpoint" '("ddvpoint"))0 T/ d. o, S; s1 q* Z/ w' z
- 5 f$ l! h9 x( @
- (autoload "mvsetup" '("mvsetup"))& i& E# N9 Q0 ~3 O; r9 Y
- (setfunhelp "C:mvsetup" "" "mvsetup")
8 s1 [4 ]5 U5 N- [+ w! C4 O i% L9 O
; v' A, n. H4 j( q- (autoload "ddptype" '("ddptype")). F) u: c, f: A% s3 f3 c3 o: l+ K7 G
* m4 O6 k1 }) a/ w5 H- (autoload "attredef" '("attredef"))$ ^2 \- I1 X: s( K7 E- c
- (setfunhelp "C:attredef" "" "attredef")2 J1 t7 E X1 \9 w: N: e
( \. ^; t0 |; n; |, k- (autoload "xplode" '("xp" "xplode"))* \3 F" P R% ]+ ~; d. O. z
- (setfunhelp "C:xplode" "" "xplode"), A1 p) y2 U- a+ K5 l ~, V5 L ~3 |& ^
( C2 |5 _/ G& G& g- (autoload "tutorial" '("tutdemo" "tutclear"% S6 j5 A; k& {& s
- "tutdemo" 3 u5 z8 k2 i2 ]; [6 R
- "tutclear"))
- S E& T' K' i: J( d) }1 W' o - ( v/ n! m9 n$ S2 Y% W! t8 ?0 o3 K& r
- ;;;===== AutoArxLoad Arx Applications =====
. Y$ B% s9 \6 U - " H3 M6 B% \( e0 u; |% q% K% v
- (autoarxload "geomcal" '("cal" "cal")); i" O: \. I8 c- z# f7 g4 z$ D
" n+ q" h; p+ s- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align"3 t/ d& ^# z& n1 L! u2 j# H/ D- V& A
- "mirror3d" "rotate3d" ( V( G9 k1 M5 Q# g
- "align"))
* q/ b i/ B' I4 o5 o0 y9 z6 K+ a4 ^
0 H9 H7 ?' \- N8 y. D+ V
% z' u3 {8 Z& h: b& s- ;;; ===== Double byte character handling functions =====& t! Z" E( i& s1 u; L: Y7 \
. A5 ]- L% f! {+ V4 Q- (defun is_lead_byte(code)7 i2 V- t O8 U# Q7 a
- (setq asia_cd (getvar "dwgcodepage"))+ \0 {9 [3 O: X+ ]
- (cond
* Y7 k& A$ C+ r, ]% t, l - ( (or (= asia_cd "dos932")
) b* C( q' X5 E7 u$ a6 K0 Q! M - (= asia_cd "ANSI_932")
3 W) F; W) S$ {2 ~& a - )* ]+ _8 |; g7 _8 Z' m8 }
- (or (and (<= 129 code) (<= code 159))
+ Y7 u+ r! B6 O9 ], m# Y H% T - (and (<= 224 code) (<= code 252))+ K9 Y' q) v' s2 T, v
- )
6 C. V9 P, L/ ^8 B. k7 @ - )5 |0 Q8 ?! I8 E$ U( W, O
- ( (or (= asia_cd "big5")+ w: P. r) Y. B! ?) z9 ~: ^
- (= asia_cd "ANSI_950")
: z- g; X7 X* b; v0 ? - )2 m0 i5 U0 f4 Q; h! s" @3 c% o
- (and (<= 129 code) (<= code 254))
% ?* G" s9 _! Z% B* @* Q - )
, N, s# B$ c/ Y; r" X" W k - ( (or (= asia_cd "gb2312")
! O4 g/ N1 ]* _9 p# y2 C - (= asia_cd "ANSI_936")3 E2 K+ s. K: M6 h( ^7 I
- )
9 h s z1 I+ w6 W; P - (and (<= 161 code) (<= code 254))
/ ^0 ~: P: h" r, { j - )# g0 Q! h0 p1 @1 C2 \# L; g
- ( (or (= asia_cd "johab")
) O2 h7 \$ ]0 ?, w0 A1 S) g - (= asia_cd "ANSI_1361")' T) r2 n0 E9 w$ i' x. r d
- )% c5 q; @) j9 K; L
- (and (<= 132 code) (<= code 211))# D; r, ~/ }5 E
- )& e+ h! M2 C; G- p" G$ O
- ( (or (= asia_cd "ksc5601")3 X) b$ P; ^4 \7 E/ W% x8 ]( J9 I
- (= asia_cd "ANSI_949")9 d% t0 w7 m# W) I: ~
- )+ `7 J/ m0 E* ^4 g+ v0 E: V9 {' C
- (and (<= 129 code) (<= code 254))- E. U$ @' \/ q6 c
- )6 g. Y- r/ x0 ~* D0 Y
- )* ]9 p) E/ y q" |+ G
- )8 E1 M6 m& T: Z! v
- ; [' j/ o, W2 M' @9 w
- ;;; ====================================================
6 m2 F, _$ ~ ~: @8 Z - : G. S7 n% }( x
* U3 Z8 a3 l! U R' D9 u; l3 }- ;;;
0 E! V* A: _3 V+ w - ;;; FITSTR2LEN4 {, u$ K5 R1 p1 \, \
- ;;;
. z" O& s g, v0 r# X% G5 s - ;;; Truncates the given string to the given length. % d/ m5 r. n6 h' F
- ;;; This function should be used to fit symbol table names, that k2 v2 @; N. ~( v V, }5 u2 s
- ;;; may turn into \U+ sequences into a given size to be displayed
8 |+ M, m& a D) E- ^ - ;;; inside a dialog box.
& a+ b9 ?; b. B- \* w# Q( W - ;;;
; k5 o7 P+ S* M( z8 B- X8 j - ;;; Ex: the following string:
; J5 Z6 { P6 X& Q( _ - ;;;5 e& i* X: p; H2 J
- ;;; "This is a long string that will not fit into a 32 character static text box."
/ E$ H2 I! L, p4 K0 R3 J# H& M" Y% \6 q - ;;;# T1 Z( t# K, j: u2 l
- ;;; would display as a 32 character long string as follows:( @/ d2 b6 g3 z4 C
- ;;;; m" Z$ H5 g* }( n$ n' D( q
- ;;; "This is a long...tatic text box."
5 u% W$ b7 C& V; L. ]8 E- u - ;;;' H; c3 D/ t& ^2 [1 H
# x( E0 ^& r7 U- L2 O8 s1 e* H- (defun fitstr2len (str1 maxlen)1 `" N4 D: F4 H6 W' I. O
) A, @( V( q5 @$ d" t1 v }- ;;; initialize internals
* l- O6 i! f' U) f( } - (setq tmpstr str1)
* q; b* w2 z, l# s( ^ - (setq len (strlen tmpstr))
8 m& A+ O- {4 q7 r& u3 z ?, F& C - 3 \$ z9 ~9 o( ?% [: |% n5 b5 L
- (if (> len maxlen)
6 N$ h1 H3 d9 P T0 } - (progn
5 @( E P: s3 ~4 s5 M) |( _ - (setq maxlen2 (/ maxlen 2))3 A' b* |2 G- X' S1 u
- (if (> maxlen (* maxlen2 2))
9 i* u5 y; T6 y. q4 B$ G - (setq maxlen2 (- maxlen2 1))5 E5 R, T9 U3 B; Z2 c
- ): f* @5 }& A% k8 D2 M
- (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1))5 x5 o% t' `; n- L0 Q
- (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))3 I0 z+ _, r( [) A4 Z& R
- (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))
8 P3 g, ~& G: c @% x& U - )- g2 r5 m" X3 P/ A" W
- (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))4 b" J" a4 A* o$ \8 j; s9 g
- (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))
% l" O8 Q( Y. p, p _ - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))
+ q4 t T2 C/ D5 L" K9 T - )# x' r; I |* I
- (setq str2 (strcat tmpstr1 "..." tmpstr2))0 \& D3 h, ~- _! i6 `
- ) ;;; progn4 C& p* ?7 N5 _) A' {
- (setq str2 (strcat tmpstr)). C2 I$ i: A, E
- ) ;;; if
+ C7 h7 v9 E( \) H- N- ~* C - ) ;;; defun
+ L$ n$ a5 A4 U. B# ]8 V$ _& \ - w* n- Z! _& }* @* Y* c! i E
! }7 s+ I1 b; z- F- ;;;
# J7 ~+ m& ~" i4 u# Y3 A) m1 w - ;;; If the first object in a selection set has an attached URL- u3 D. @5 i2 [+ m2 R1 M+ {/ |
- ;;; Then launch browser and point to the URL.
1 f2 ~3 @4 J7 R- M - ;;; Called by the Grips Cursor Menu
5 d3 b+ \9 l5 F" }/ }1 O - ;;;
! I. `6 ~9 H3 s$ O3 a% x' e - ' Y. W& {& @. ^$ c$ R8 _
- (defun C:gotourl ( / ssurl url i)! E- m1 i! W* h! T
- (setq m:err *error* *error* *merrmsg* i 0)
' j, @& s; |) i2 P; e) m, B* ~ - 3 j+ b4 g5 N) q( T1 l" [; x
- ; if some objects are not already pickfirst selected, : s- ^$ h* |& r8 I" l
- ; then allow objects to be selected
- _% |' |+ U2 q# S7 n+ m, X - 5 C! c# X: k" V% t
- (if (not (setq ssurl (ssget "_I"))), o+ F v1 t- F+ A5 R3 _& @7 \: k$ `
- (setq ssurl (ssget))
+ ?& p1 L) N# X+ Z1 Y, i - )
/ l' J- l: l$ V0 G - 3 j, s: w, [/ z0 L/ X4 k/ l
- ; if geturl LISP command not found then load arx application* `+ J, d: f4 J) E
- / J' A( D- c. B
- (if (/= (type geturl) 'EXRXSUBR)1 a# |) R- N1 |; Z* m
- (arxload "dwfout")
$ R6 d2 A' S2 A& y4 A - )9 ^6 J2 K9 G0 u, q0 g) z) V
- - l/ X' A+ }+ s. d* @9 @5 }
- ; Search list for first object with an URL2 N1 \7 I5 y3 A i
- (while (and (= url nil) (< i (sslength ssurl)))
3 j) Z8 f' v" A9 s - (setq url (geturl (ssname ssurl i))0 k! w' `/ E1 B
- i (1+ i))
% C$ g1 o0 M3 ~! y/ H: l - )
( T, e4 p# @( c( Y9 Q - / _9 [- M: c6 O6 l! ~1 z3 f
- ; If an URL has be found, open browser and point to URL( n# o8 U" N1 {, W
- (if (= url nil)3 |& q" v/ N E' D
- (alert "No Universal Resource Locator associated with the object.")
5 j( z' e: B+ \' A2 o - (command "_.browser" url)/ q L& w; U F. ^3 A; r+ U3 O
- )
1 u$ e! c& w, G3 m1 p; L - [1 R" T+ ?+ J8 @# i
- (setq *error* m:err m:err nil)0 ]+ H+ M1 P# f' d8 }
- (princ): j* S( U4 |/ q% ?3 m; }3 y" O
" O! q- g2 u$ b/ y, K- )
, \8 C3 t; D( _; m, j - & u* }8 G$ C8 [1 y) s. f2 g, t
- ;; Used by the import dialog to silently load a 3ds file. g$ N0 b& H4 s% P
- (defun import3ds (filename / filedia_old render)' ~8 v Q6 P) w8 R& b g* w
- ;; Load Render if not loaded' d& ?$ |$ @) N
- (setq render (findfile "acRender.arx"))
* @: b8 }& S! C! N& V; s3 d - (if render
8 C! ?+ e* ]/ m8 \! V4 Q1 w - (verify_arxapp_loaded render) 0 y' ^: j' [' a& Y+ k% }4 A. y
- (quit)
4 y) ^5 T# h1 c - )/ ~& ]" L2 x1 C/ {
9 @$ Y- F# Z9 O: V" R- ;; Save current filedia & cmdecho setting.
4 R1 r4 s6 Y! v1 n; c; U - (setq filedia-save (getvar "FILEDIA"))
. b: L) e+ u* D; X4 y9 E - (setq cmdecho-save (getvar "CMDECHO"))
- j' a4 C4 A1 ~ - (setvar "FILEDIA" 0)
% Q* z' P# c0 n( S" { - (setvar "CMDECHO" 0)# t* d, M( P% J2 M
1 A! ~# L) W5 R" D: u8 }5 M$ l- ;; Call 3DSIN and pass in filename.
U! p c9 K B6 p1 b$ S: M1 m - (c:3dsin 1 filename)
% J1 ~4 v6 F/ ~1 x; c7 ]) i
5 C5 G' q9 e; B- f& y, X- v- ;; Reset filedia & cmdecho8 L: u' k, D+ W9 l i
- (setvar "FILEDIA" filedia-save)
- m" U! M3 ~, g; r' [7 X - (setvar "CMDECHO" cmdecho-save)
( l5 B) N8 T0 o" l( b4 [ - (princ)/ W9 k8 q3 P+ m/ d$ A6 C
- )6 w, u' T& Y% a$ W6 N) Y
- ! B! g3 ^6 w$ z0 g
- : w" g6 |8 ^; b/ H, H4 b# V
- ;;;=== Menu Functions ======================================
$ o; ^/ z$ E/ C) V5 l2 m* J* h$ ^
& N. e' u G1 l5 t o1 j- (defun ai_rootmenus (): ^9 Z1 x* [- V! j: K, H9 P9 b
- (setq T_MENU 0)
: n: `- F7 z6 v8 D - (menucmd "S=S")! |* f7 m4 H0 R$ V, d" W! m
- (menucmd "S=ACAD.S")
a$ a0 ?* n- Q: m - (princ)
0 X+ d' f5 s. b) Q# u. B$ `/ _" @ - )
: [; G, Z0 F0 T+ f+ }9 |2 \5 w - * K1 V& [( i. B3 O8 |# H
- (defun c:ai_fms ( / fmsa fmsb)/ H5 `+ T1 B& b+ d1 \$ ~" t, _
- (setq m:err *error* *error* *merr*)# G6 {! U' x$ N9 [2 e
- (ai_undo_push)' V" g) ^3 P; a3 j
- (if (getvar "TILEMODE") (setvar "TILEMODE" 0)), k$ J3 g' I1 p2 S4 @8 ^
- (setq fmsa (vports) fmsb (nth 0 fmsa))# _' Z1 X% w' N: P9 s7 P5 E
- (if (member 1 fmsb)
4 |: H5 z+ y6 T2 r5 Z$ J - (if (> (length fmsa) 1)
: O, O0 T7 f4 z( \9 o1 @6 C - (command "_.mspace")
! {" {6 L! i1 a/ I+ F - (progn
V- O2 ~; M7 O6 J8 R$ n - (ai_sysvar '("cmdecho" . 1))( F: W: G7 e9 P: D1 D8 t
- (command "_.mview")0 A2 w* @9 Z t7 z; @* q; M
- (while (eq 1 (logand 1 (getvar "CMDACTIVE")))8 V: z; ] u6 c' Q5 c8 [
- (command pause)
7 @+ w2 G* T, y2 R8 F - )% [. m$ d) y6 b6 E
- (ai_sysvar NIL)
% X* Z- O+ x, c) ?5 _0 n2 P" C - (command "_.mspace")
# Z4 U% I. b1 B - )
6 T) n* H9 m$ W/ A - )6 A8 B+ }3 l4 J9 F9 k2 \. p, E" r8 L
- )
# F2 W3 { X( B a+ D - (ai_undo_pop)
U& l6 O- v% u - (setq *error* m:err m:err nil)4 c0 I' C9 Z/ E- g+ V% r
- (princ)
' j/ O* p) l# m% n - )$ E/ B* a8 Q( e9 U
- , `, t' t% T" X% B; u8 K
- (defun ai_onoff (var)
+ G9 x7 m4 H6 y2 | - (setvar var (abs (1- (getvar var)))) {+ L, B) n/ V& g0 c1 |, I: L
- (princ)
1 k. }4 _. S) z2 q9 }4 P! s - )
# s& W; q0 r# T+ T+ l) R o8 v" F: J - # S7 N( A( B3 J( n: h& u
- ;;; go to paper space
! Z* L' y5 \' n - (defun c:ai_pspace ()# b |: D$ M& M4 z
- (ai_undo_push)
9 D1 y0 a( C+ z0 t# c$ i. n8 m( T - (if (/= 0 (getvar "tilemode"))% Q7 ^# P4 V+ n3 [
- (command "_.tilemode" 0); n0 ]* ~$ D" I
- )
3 O, n% n+ e4 X' ^2 A c - (if (/= 1 (getvar "cvport"))
: `* R" B. S7 ]0 T, t: M& i$ } - (command "_.pspace")
" T/ g# w. f. ]- [2 R5 t - )
" s; b) ~6 v0 j - (ai_undo_pop)5 k$ O% G1 ?- g
- (princ)
$ H0 F L: p: J1 W2 W6 I - )
/ w% Z7 T) R1 W* l' H3 ^. s: v$ p - : I6 O7 F) Z4 ^$ o7 K8 L
- ;;; go to tilemode 1
1 z+ H+ e: ~: ]$ U - (defun c:ai_tilemode1 ()+ ~6 N d0 T1 g7 g4 {/ l- S! O; o' K6 v
- (ai_undo_push)4 E' b& I4 |/ K. U6 N. B
- (if (/= 1 (getvar "tilemode"))' B% T. K3 R1 {7 Y- D
- (command "_.tilemode" 1)3 m$ [1 b+ t1 n9 A9 u
- )
0 T( B0 l" e7 b. y% M9 { - (ai_undo_pop): T3 T! }2 I! r& w
- (princ)2 Y# D7 \- _5 C S1 x' l
- )
y5 t* {/ ?' _9 ]9 j
) |6 @8 ? q" _& ^3 l% L4 b! w( [- ;;; Pop menu Draw/ Dim/ Align Text/ Centered
! `& U9 Z) }/ V2 T* s - ;;; Toolbar Dimensions/ Align Text/ Centered9 x" l3 C! j/ N4 z# a7 L D/ t
: k+ ], B: [9 y0 o# O3 M* [- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss)5 a% I7 d, U% T# Q$ O2 X; R u' f
- (setq ai_sysvar (getvar "cmdecho"))3 V+ y5 {' O8 D @# u7 c
- (setvar "cmdecho" 0); e; s$ [9 _/ X" r0 H; w
- (cond# ?& t; F+ J! I0 o5 _3 ]/ j* X
- ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION"))))
$ H" d/ T( N+ V+ i4 s. |5 ] - (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss ""
( h% U6 O0 k! Y0 a - "_.dimtedit" ai_dim_ss "_h")
9 s6 c/ L- o2 C9 g( r - )) G8 P/ }7 o# N' p0 K
- (T nil) L& M, ^1 v* o# p& U
- )
6 @, _# ^6 J0 R( @9 Z - (setvar "cmdecho" ai_sysvar)
b; z( l% f" f* t7 H$ a" Y, Y: i8 C - (princ)
& n, A% L& ]5 s; o6 \* G2 ]1 x% B - )
" a, ?8 H4 [0 G, k: L, }. r c
7 u1 ~: t! y* }- ;;; Shortcut menu for Dimension Text Above ) _* W- S) v. U5 I5 f( Z
$ L2 Q T) t8 m' t/ E, T- (defun c:ai_dim_textabove (/ ss)
* L$ p( Z" @% c" F) p6 P3 [ - (ai_sysvar '("cmdecho" . 0))# X" a7 n$ k* ^& j% V
- (if (setq ss (ssget "_I"))
Q$ M( s0 N7 e" H/ A0 g5 _; e7 c# q - (command "_.dimoverride" "_dimtad" 3 "" ss "")
9 s' |3 x- Y2 y3 E6 e" s5 X u# Z% U# p - (if (setq ss (ssget))
]% V5 n; {4 v, r- S! r - (command "_.dimoverride" "_dimtad" 3 "" ss "") 0 h2 o/ j# X9 V; j3 o2 P4 g
- )
' I# S% S6 Q( k, S1 p* Z! q - )
" [+ s0 X1 p& h# w* D: {$ t) G - (ai_sysvar NIL)& [% w: w& Q3 u# ]
- (princ)
3 E) B3 j* p. |! G/ U% r - )* ]: ]; b' K4 O- j
- ) ~! @+ B0 x _5 s: q2 P- ~* U
- ;;; Shortcut menu for Dimension Text Center & u8 f% j: m. K& ]2 N/ S* h
- 6 v& Y% Q1 L+ ]/ U% v0 v( D
- (defun c:ai_dim_textcenter (/ ss)
, s4 [, _& a0 @/ Q1 d2 K: G! h - (ai_sysvar '("cmdecho" . 0))
. h2 g9 N/ ~6 ~& { - (if (setq ss (ssget "_I"))
) n1 o+ d* O$ V" Z5 u2 r& s# `* i - (command "_.dimoverride" "_dimtad" 0 "" ss ""). S8 D4 Z9 r8 f! r
- (if (setq ss (ssget))* F0 i# ?; _) X5 P& X
- (command "_.dimoverride" "_dimtad" 0 "" ss "") " r/ X$ r5 Y" ]* K" h0 o
- )
- R9 {/ \7 z1 U4 Z: j6 O( C - )
9 h ?$ ]5 m. p0 @/ A [ - (ai_sysvar NIL)1 |" W4 O8 [) b, s! b) f8 V6 S
- (princ)
# |' o) L- Z% O0 k8 X# h ^8 Z - )
, k" W1 ~2 \/ j. W+ X& S- m - ~1 j+ w& x; p! r' C
- ;;; Shortcut menu for Dimension Text Home
! R( L/ _3 ?" j' {" i6 y
1 M) c. R8 M! O/ b- L2 K6 K4 L' R3 \- (defun c:ai_dim_texthome (/ ss)
: i; O/ R9 Q: d- C4 G S6 I% J7 x - (ai_sysvar '("cmdecho" . 0))
/ n: j2 _* D; o0 ?3 T7 M - (if (setq ss (ssget "_I"))
/ J: D: r4 E) Z: o' v0 h - (command "_.dimedit" "_h")
! h# H1 G0 w) J' T7 U. A - (if (setq ss (ssget))
! L6 q1 y! i! V) G4 u! L - (command "_.dimedit" "_h" ss)% T; \+ @& l0 C3 c
- )" Q) s" ~! M8 F; d r( }, r$ _
- )
0 r0 M9 l# A( B' ~ - (ai_sysvar NIL)+ L& }9 V. g' l c9 K
- (princ)- v* b6 h/ ^6 d! V8 o8 a
- )
7 M9 m8 E# {) x' A' n4 n4 A! i - 6 S4 {$ ~, e* F
2 o( F8 O& X: q: V I' I- ;;; Screen menu item for CIRCLE TaTaTan option.
& I% m( C+ h. ~7 m - ;;; first, get points on entities
4 f% v0 d* E+ j - (defun ai_circtanstart()
& C( c% j: {, ]$ m; x% U- W - (setq m:err *error* *error* *merr*)
0 `4 Q+ B! D; L* l. @% c% o - (ai_sysvar 7 ?& p. G+ C/ k7 Z+ Z$ q9 X) }) ]
- (list '("cmdecho" . 0)
Y" i4 e3 O* ^! H4 g - ;; make sure _tan pick for CIRCLE gets same entity( Y$ O5 M* Y4 B# y" B( k
- (cons "aperture" (getvar "pickbox"))
4 a7 v9 L* G. p - )( {: z1 r. ~+ Y5 L
- ): ?" k o$ T. R% a
- ;; prompts are the same as CIRCLE/TTR command option
6 n) G8 M# m" S - (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))
" H) _" n9 Y4 F: C: m+ { C" O - (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))/ B( W, Q5 a: Z/ u) b0 q
- (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil))
( ]' }5 p- H7 }! \6 A" Z# c - )
" a4 F6 `, ~% ^ - ;;; Command-line version. y8 K2 x& |5 g+ l7 Z# s
- (defun c:ai_circtan (/ pt1 pt2 pt3)
% F5 S( C- `5 f5 U$ t$ s# { - (ai_circtanstart)
]: I6 W- [3 x/ Z, E H3 V+ Q - }7 L6 B. p2 i5 p6 h$ }& U# _7 V* b
- (ai_sysvar '("osmode" . 256))- b; e+ `% m0 N, I
- (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)/ R! t! L( n3 L4 a5 U5 T
- 8 r/ Q& @0 S% g$ B. ?% D
- (ai_sysvar nil)
$ k; b5 g/ {% d - (setq *error* m:err m:err nil)
3 @- t9 M, ~3 X, }( A - (princ)
" i( W) l, x! H- M" l - )
; ^6 R `4 ~5 [2 g: \$ X& t8 i* d - ;;; Use this if CMDNAMES == CIRCLE+ P5 }4 C% I, H: M( ]( }. p. K
- (defun ai_circtan (/ pt1 pt2 pt3)
; z$ r8 k9 n/ ?. j( F& X$ o- U - (ai_circtanstart)( c( I8 B7 c, V0 S F! h5 o
- 7 h& u( X. x: F! J: a
- (ai_sysvar '("osmode" . 256))# p7 Y; G! w9 |, x8 D& B
- (command "_3p" pt1 pt2 pt3)
; g1 \* k9 c+ E; O# l -
( j7 f `+ `4 E& N |1 g1 x2 T* Q4 V - (ai_sysvar nil)# S* \$ ^3 F5 e/ ^8 a t( w0 K$ p
- (setq *error* m:err m:err nil)
& Q1 \. \& c" D3 J2 J - (princ)
7 n+ G3 U) a" j - )
5 |+ f5 y. O- Q
( w% o5 N! X' O- 9 Q: g8 V/ ]. y. j, |
- 4 p& K; d7 @6 x; o- _$ ?2 W
- ;;; Shortcut menu Deselect All item.
% P, h4 K# J3 q - 8 J0 j2 F4 e- n3 R, O
- (defun ai_deselect ()
- s& Z" T2 P0 Z7 | L6 r - (if (= (getvar "cmdecho") 0) ;start if; c$ H! Y# D9 z R
- (command "_.select" "_r" "_all" "")- L( |) H7 C& w, `$ z* U
- (progn ;start progn for cmdecho 1% j/ s0 T* ^9 y4 P; j
- (setvar "cmdecho" 0)( c0 U r/ _ I) z$ @, ~: A
- (command "_.select" "_r" "_all" "")
8 ^7 G3 r. |: W _ - (setvar "cmdecho" 1)
+ q4 y/ f# Y9 d3 {5 b) `6 Y6 |4 ~ - ) ;end progn for cmdecho 1% Y7 J8 z6 o+ k( z+ Q7 x
- ) ;end if+ W9 o0 s. n& K, r. g8 @2 {
- (terpri)4 M/ B Y# R2 R1 q
- (prompt "Everything has been deselected")
, |" z1 h' ^! I# w& \ - (princ)
; }+ F8 D! Q( [( P8 x7 F - )1 g+ l2 S$ B' U5 u: v) V. W
1 G: ]# s; q1 r0 S/ R# K2 F0 {- ;;; Command version of ai_deselect to be called from the CUI. c! z+ d6 t4 @3 _" S
- ;;; so it gets properly recorded by the Action Recorder
! U B" A2 G$ l2 O! p - ;;;
% A4 s, j$ j& ?1 l; x3 V9 [4 @ - (defun c:ai_deselect ()- p% L$ z3 S. `! q) g
- (ai_deselect)
5 B. Y* B. h; @( U$ w - (princ)- |1 d0 V* x) _, w
- )
, r3 n1 S* C6 ^ - # E. ]) w/ E1 j! s# f
- ;;;
! Q3 p# b6 @& S& W" S' q - ;;; Enable Draworder to be called from a menu, E1 _ Z- m% Q& D
- ;;; Checks for Pickfirst selected objects$ O' P$ h$ Q& r3 @1 Z
- ;;;
% S F0 M& U; Z& o P
* y- @( j( t2 I2 U' l7 P7 M- (defun ai_draworder (option / ss )& S: `8 z7 V" Q. Y/ j; p7 W
/ g6 B6 R( {" i- (setq m:err *error* *error* *merr*)
2 a! v7 `! U8 F5 b# \ - (ai_sysvar '("cmdecho" . 0))5 u1 ^3 C4 r4 s# }
7 n$ D; A7 q, Y$ K. y9 { H- (if (setq ss (ssget "_I"))$ ?/ L/ d6 W1 B4 k( y5 d* d! P
- (command "_.draworder" option)+ j% }: F3 [4 E1 T3 Z
- (if (setq ss (ssget))$ u$ m8 [; e% x( i
- (command "_.draworder" ss "" option)$ y8 g+ o' r7 m% p9 [
- )
3 e- b* }: z3 h! H/ _ - )* S3 [' J8 A6 t4 i+ Y
- (ai_sysvar NIL)
& J8 E- _3 X6 l - (setq *error* m:err m:err nil)
/ x) G, @7 E, m# c - # ?9 ~( z) C0 o( E, X
- (princ)8 t0 {( T" p8 Q# u+ g
- )1 X( q, `4 \2 E4 z+ g" F4 |' H
- $ x+ [0 h9 r( R
- ;;; Command version of ai_draworder to be called from the CUI
+ B, `% T" _! g5 o/ S" D& y - ;;; so it gets properly recorded by the Action Recorder% a1 d* W3 V! h7 S
- ;;;/ }; t6 f* J- F R6 g
- (defun c:ai_draworder ()
% v# J* X- B2 h8 D& O" | - (initget "Above Under Front Back")
& L' F9 [7 Y, ^# e9 g; _9 u' b1 D - (ai_draworder (strcat "_" (getkword)))3 I p o+ D/ x, B7 w4 X {
- (princ)
9 C% F( H9 e4 g! X, g - ), U/ ?% D4 G, i$ F" L
9 F, ^6 o, T; v- (defun c:vlisp (); Y7 ?- ` n: _3 K/ u/ S
- (if (/= nil c:vlide) (c:vlide))
$ b0 O* s/ l: ^" Y - )
" g5 S" {1 }) Z8 ?7 z; d
& o8 ]. ]2 k) t/ E; h- (princ "loaded.")9 Z; d6 P, g' |8 K3 Z8 z
- " J" _) B% k: u3 B( ~2 a
- ;; Silent load.! I* i# _7 h4 X6 o! n1 [
- (princ)4 T" S7 g- h+ x& f
7 \2 V' m. w! t( M9 _- ;;;----------------------------------------------------------------------------
8 A( | A' G( G8 d7 E; A% x1 R, h2 D/ I4 v - ;;;7 B) m) b/ O. s+ ?
- ;;; DDCHPROP.LSP Version 0.57 a0 a' f! M/ `$ G5 H
- ;;;$ u) T. J+ b3 A
- ;;; Copyright (C) 1991-1993 by Autodesk, Inc." |& u; L: ~0 A4 B$ `) K6 T
- ;;;
# S9 ?3 h; O& u0 p. l) c - ;;; Permission to use, copy, modify, and distribute this software! a% Y( c, s) n/ N( S/ [
- ;;; for any purpose and without fee is hereby granted, provided
1 J' h! B: j, p3 ?* p: g - ;;; that the above copyright notice appears in all copies and that! v) k) F1 F" ~! S& B6 c
- ;;; both that copyright notice and this permission notice appear in4 @4 v; u I( Z
- ;;; all supporting documentation.) t: y, v# `" i1 q' V# A+ A
- ;;;" Y# Y6 r0 w, _$ A, M1 L
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED* H3 z5 a; `5 M; E8 h0 r" x- v
- ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR
" t/ G8 U/ p$ G/ k5 E" u( v - ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.+ K# N) J H! J# V% i( p
- ;;;9 _7 y/ z* S+ P3 D, K) k1 L0 h8 w
- ;;; 2 February 1992
. D7 W; _8 n' P6 b. K' r7 j - ;;; * ?: e2 ?/ b) J x( k G
- ;;;----------------------------------------------------------------------------
3 i" v) {' w1 z6 q7 x - ;;; DESCRIPTION: M5 J5 S* [5 }9 {
- ;;;----------------------------------------------------------------------------4 ^: C7 D8 g: M- K' `
- ;;; C:DDCHPROP is a dialogue interface for the CHPROP command.
' G: U( p* y! t0 b- o4 d& K- Y$ I5 f4 p - ;;;; L( Y5 q/ ~6 M3 ^ f
- ;;; The command looks similar to DDEMODES. The main dialogue has an image
9 J- @# o2 C1 m8 K: {8 w$ C - ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness).
0 c6 m& c+ @4 B6 j2 l; h - ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box.
, G$ p+ b t, A2 ^ - ;;; The dialogues are all defined in the DDCHPROP.DCL file.
" O; H) B4 a' n+ w - ;;;) g: \% N3 E$ S
- ;;;! \2 s( z* P. d
- ;;;----------------------------------------------------------------------------& z$ Q0 Q' q& N4 N) T1 ~
- ;;;----------------------------------------------------------------------------
: {2 K5 }+ c# I0 H! h - ;;; Prefixes in command and keyword strings: " s3 A. M; U, J: Q! U& L) ~
- ;;; "." specifies the built-in AutoCAD command in case it has been
& K; N$ L1 Y* `5 d1 [ - ;;; redefined.
+ k9 `! j8 u4 Q8 X - ;;; "_" denotes an AutoCAD command or keyword in the native language
6 H2 @5 @1 }3 I+ P8 c/ n - ;;; version, English.
/ J/ z0 i8 g/ ^ v. a/ t( {) U - ;;;----------------------------------------------------------------------------
0 R: t# q! ?; a# G/ k; c - ;;;
5 r# [" U( a' Z2 F - ;;;# u/ S" q! \: X$ P$ s" A6 N4 _
- ;;; ===========================================================================2 x. h( O t( V7 ~6 S
- ;;; ===================== load-time error checking ============================
- q* k `8 f" ^. x f* ? - ;;;
5 w% F$ V3 k' @. k' q3 U _6 h
; P: x9 w+ N3 y- g4 z2 q# ]- (defun ai_abort (app msg)
2 r& U3 ^- [9 m - (defun *error* (s)
: ~4 N4 ^$ h% X- A- r3 f6 I& L - (if old_error (setq *error* old_error)); N3 Z; U1 S# h% _
- (princ)* u6 Q5 J5 C- B
- )
: G0 M3 O8 _3 O+ N - (if msg
6 c( C$ ?2 o ]# Y% B - (alert (strcat " Application error: "5 R% y* Q4 B. c* w# S
- app$ p5 K# v! g) D8 e: _
- " \n\n "
/ J9 q- O0 x- N2 H% [8 p2 J4 q - msg) ~* w4 u) f9 P$ M3 e$ {) O1 U
- " \n"
/ ] k+ G5 O% u7 s - )
4 Y+ h1 X8 e( C3 O3 A/ ]( ` @ - )
: F8 {" g: W8 U6 E. ~ - )7 D4 \) } G7 [: _8 m7 c
- (exit)( D4 n# b" J! B" X, m: \
- )
3 s, c1 ~( `5 C8 u6 t - 6 ^4 s' [% R' u1 l3 N/ E) U
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
6 V; Z. h# R* h - ;;; and then try to load it.5 X' K! m1 i8 x7 _' G B3 k8 ^
- ;;;
+ s& p4 I- L7 n1 o5 C; ?* c' } - ;;; If it can't be found or it can't be loaded, then abort the
1 Q' F3 K8 }0 I3 G" M- p - ;;; loading of this file immediately, preserving the (autoload)
; U8 [4 s" m- Y2 F! ~% h3 ^ - ;;; stub function.' i' P6 Y2 ~6 `' B$ F1 }
6 D* U; q9 j, I" N/ @9 Z2 n- (cond- y) b9 q8 T1 D! r; z6 e
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded./ Z5 ]. C+ F0 H* O; P
/ `; S8 f5 @. A: p+ H3 X0 `; u- ( (not (findfile "ai_utils.lsp")) ; find it0 Z% h2 L* u5 f. K
- (ai_abort "DDCHPROP"6 s9 `- u- K Q; o
- (strcat "Can't locate file AI_UTILS.LSP."9 {& D) x: q7 G' }) @2 u9 t
- "\n Check support directory.")))6 E5 m: C0 Q+ s& A0 f3 d3 ]) I2 {
- 6 k0 U2 X. N5 H
- ( (eq "failed" (load "ai_utils" "failed")) ; load it3 m& G. c1 p& S& O) J
- (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))
! t* t, B+ ^' J4 h - )
E3 c9 E5 H) ?( C - 0 `( u U$ A3 e' H1 X( C" w* W
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP4 R# A6 Y8 q% q$ X( q
- (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses1 Q# `8 {0 Q: E/ e/ l
- ) ; ai_abort's alert box dialog.* Q* \. [) P( d! a9 e7 h( J9 G
3 C7 w& l& ]9 ?- ;;; ==================== end load-time operations ===========================
, Z5 E7 f. R! M. F
4 c$ f- r9 v5 T6 I: B. U8 l) y" }; O- ;;; Initialize program subroutines and variables.
6 e! M+ z; k! s% O. O" P! @
4 g T" Y% P3 j- (defun ddchprop_init ()
3 F) |4 {) C9 L7 P+ d0 K! T4 `6 U - 2 _9 V* S! T9 |
- ;;
$ ?- s* Y5 Y$ |+ m* [' s! b - ;; Define buttons and set values in CHPROP dialogue box 4 `. a ~9 w5 c- k/ w+ b
- ;;( m7 X1 e G" l8 R$ C) T" e
- (defun call_chp ()
8 k1 v: O& F7 z! X1 g - (if (not (new_dialog "ch_prop" dcl_id)) (exit))
5 M5 J& U6 i5 ^1 {* c - (set_tile "error" "")
) n- [( ]1 M; A7 t9 V! p2 o - ;; Set initial dialogue tile values5 l q! e1 U9 K- R2 p& ?4 b( k
- (set_col_tile)
% h, Y) e- i1 K4 x - (if (= lay-idx nil)
" v( V7 s3 i1 z( ~% v - (set_tile "t_layer" "Varies")
8 I- D+ O% Z$ {" S/ a2 D7 Q6 z - (set_tile "t_layer" (nth lay-idx laynmlst))2 N, j6 f. v. o
- )
0 z, U5 W4 ~& q8 c2 }. I - (cond
" v' G" H7 G5 h) u - ((= lt-idx nil)1 \8 @2 u. Q" i" T6 a, C8 x, h
- (set_tile "t_ltype" "Varies")
, J* _5 H1 a7 Y: k - )
9 t# H7 F5 ^. A: H; e5 N9 o! d7 { \ - ((= lt-idx 0) ; set tile "By layer & layer linetype"- B+ Q9 V G# I/ A! I3 c* M
- (set_tile "t_ltype" (bylayer_lt))
# N, Z7 F. I4 N* d4 }( y, M0 Q6 P - )
; p' L! O$ g/ j5 K! ^% ` - (T
* Q/ F b' |8 w: |. G - (set_tile "t_ltype" (nth lt-idx ltnmlst))4 e% b* p9 |) T
- )6 D. s! P" y E Q' Z' ^9 h
- )/ Q0 K3 g/ N E, ^' I J0 ]
- (if (or (= ethickness nil) (= ethickness "Varies"))5 o, i: a3 E- l$ A( U
- (set_tile "eb_thickness" "Varies")
7 c: {! P0 }# T- ]+ D2 E9 Q3 A - (set_tile "eb_thickness" (rtos ethickness))
6 h3 z9 A+ q; b# s [ - )
, E% B; f: t) Z. l8 l3 @: U1 A - ;; Define action for tiles
& e! a7 I7 L/ I! C - (action_tile "b_color" "(setq ecolor (getcolor))")% H! C9 M" l' x9 M9 {, y# g/ q
- (action_tile "show_image" "(setq ecolor (getcolor))")
7 ]9 W6 W- h* U, G, L3 j1 | - (action_tile "b_name" "(setq elayer (getlayer))")
3 e* g2 o. x1 L6 ~0 P7 s; y - (action_tile "b_line" "(setq eltype (getltype))")
3 F: t/ @! D$ s( W! c9 i3 g4 B& j - (action_tile "eb_thickness" "(getthickness $value)")
/ w0 O/ x( g7 d' o! M - (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")
* r4 K# o/ s/ c7 X2 q+ q1 i0 P& O - (action_tile "accept" "(test-ok)")
3 g" p! G C! @' B7 \ - (if (= (start_dialog) 1)
8 m9 [. J! Y& s$ u6 k' p9 X - (progn
7 D# ~- X+ s: e0 C- m( ~, d3 G - (command "_.chprop" ss "")
4 S; G& K) l2 \! M/ U - (if ecolor
5 }3 m8 Z% W3 V% ~4 Y# A+ M - (progn4 }2 a; w4 |9 N/ k
- (if (= 0 ecolor ) (setq ecolor "BYBLOCK"))
* N: L4 `6 K! M" }! q5 } - (if (= 256 ecolor ) (setq ecolor "BYLAYER")); J: T) x0 K7 f! q \8 Q& Q5 \- z6 l
- (command "_c" ecolor)" s+ c- J5 }9 i6 V0 G: b1 }; A
- ) K C. C* S: S8 R8 V$ P2 E
- )/ t1 R* Y5 h/ y9 z) J ]
- (if (and (/= eltype "Varies") lt-idx), U5 d. A, W! H) R5 S& Q
- (command "_lt" eltype)8 _. y* z; v# z6 j2 w* M2 F4 p
- )
+ Y( g# ?5 ?- O# c0 b8 D - (if (and (/= elayer "Varies") lay-idx)
U2 J/ t+ H/ _3 h# o3 U$ f - (command "_la" elayer)( w q+ C( A8 M/ N# s3 F
- )+ @2 E! f8 }& M$ h+ Z
- (if (and (/= ethickness "Varies") ethickness)% |/ ^1 {" H" c6 M) _: X3 g
- (command "_t" ethickness)5 g4 m7 {3 L H0 _7 W4 q8 t
- )% e& o& b: O6 V+ h- t. d3 ^
- (command "")3 w& }# C1 q A5 [& P& c/ @ }
- )
9 P! A; [+ j8 f; p8 U9 [ - (princ "\nProperties unchanged")
) q/ v. O+ E: D9 X5 N. n - )$ R- d/ t; N! F- W8 r6 y( {# L
- (princ)
% k; Z6 X: _ v1 O( x# K - )/ }. D7 W0 D6 q
- ;;
: [6 b& b- s; f; ?4 ~/ L r - ;; Function to set the Color text tile and swab to the current color value.
! z. t% E& o6 ~3 ?7 j - ;;$ ~6 a$ i# l( d& l$ o$ {. n2 P/ \, A( g
- (defun set_col_tile()2 u' s$ k/ @4 j( f' y' T& o7 b
- (cond 1 @& L7 {9 V. _) D. k) Q
- ((= ecolor nil) q& N$ ]+ t) }( ^! x
- (set_tile "t_color" "Varies")& L. J9 b$ U" X/ w1 }) {9 k
- (col_tile "show_image" 0 nil)/ `* c3 h) a2 s
- )
. V4 t/ G/ |( C0 C: Z8 s# ?% `, ~ - ((= ecolor 0)6 `/ {2 c. R+ V+ _/ s6 y+ S/ d
- (set_tile "t_color" "BYBLOCK")
9 O, w% Q4 c# r7 F - (col_tile "show_image" 0 nil)
( ], E \* d# n t: H: i1 c9 @; ? - )
& N' t8 o# K. E1 t - ((= ecolor 1)
% b& Q6 _9 @. F2 I. k# q* I - (set_tile "t_color" "1 red")
/ D) y2 |; r y7 }4 ?# V - (col_tile "show_image" 1 nil)
7 {+ A; y. @- @0 ^2 b - ). X6 R9 d! Q4 D, s7 t; e
- ((= ecolor 2)' S! q' V9 q8 y8 Y! s- `
- (set_tile "t_color" "2 yellow")
0 }7 o. @+ M4 F/ s4 e; t6 O - (col_tile "show_image" 2 nil)
( J! W4 p( I5 u8 B - ): @6 f5 R0 r: ^$ S
- ((= ecolor 3)
( m1 h- H$ n% h) P6 o. O - (set_tile "t_color" "3 green")4 S; P8 o2 R( a% a6 }
- (col_tile "show_image" 3 nil)9 ?5 L' y/ u' Z# W
- )
6 y9 A+ y% f# O$ i - ((= ecolor 4), W, P5 O2 T2 z7 `
- (set_tile "t_color" "4 cyan")
5 E. [8 b9 g, |: s - (col_tile "show_image" 4 nil)7 D/ B7 u! D( |! D/ J: m5 z
- )
3 a8 G x& b; [9 u - ((= ecolor 5)9 q: r7 r" O+ [3 b- g
- (set_tile "t_color" "5 blue")
) ?: I+ O5 X4 O$ |$ L5 Y5 W* t5 X0 t& e - (col_tile "show_image" 5 nil)+ U( [; F3 l! G& M% g. ?9 I0 |
- )6 K/ q1 y- E6 p# V% t
- ((= ecolor 6)
7 t& q! Q: I- ?& T6 W9 K - (set_tile "t_color" "6 magenta")! c) v' h0 B9 E( l/ J" L. C. ~
- (col_tile "show_image" 6 nil)1 y, R! g. J' o" E/ m6 M; U
- )4 [% G$ N& b+ _% j3 [$ N
- ((= ecolor 7)( L" | q" U0 W* ]1 j3 ~3 z+ Z2 k4 L
- (set_tile "t_color" "7 white")4 K. i" f7 B3 X+ A1 S4 ^1 `
- (col_tile "show_image" 7 nil)0 @) Q3 ~& U% x8 b/ \
- ); N& o8 g7 B1 i0 K d
- ;; If the color is "BYLAYER", then set the tile to
! L. v/ A+ A) u! m. C) T; ~) s - ;; show it's set By layer, but also indicate the
4 } P' @: E" X$ _3 y. i3 L8 O# {: n' m - ;; color of the layer - i.e. By layer (red)) C6 J$ v! ?9 K2 A% n8 w
- ((= ecolor 256)
* R7 U- k1 P& L5 v8 `4 Q# A8 D - (set_tile "t_color" (bylayer_col))
+ L1 m# [3 U& P' T - (col_tile "show_image" cn nil)
0 K# w% R3 a0 @) x; Y - )! K' k, D0 h T& q% B" H4 m
- (T ) }% Q& E7 _. Y9 P$ R( l; S# c+ q6 B& M' l
- (set_tile "t_color" (itoa ecolor))
" _0 c& _, e. h, O y' X2 ~6 Q9 Y - (col_tile "show_image" ecolor nil)1 _. i" y! N6 m+ R P; X5 f
- )
# V( e* Y) |" \) E. f! Q6 R - ); H4 N1 J! l+ s; o l
- )
: e- a- x- p3 z2 F, a2 ~ - ;;
) Y: \+ y( s5 x/ b/ o2 j6 w& s1 R6 u - ;; Function to put up the standard color dialogue.
* j, I' O9 d: I; M$ ^) \% h - ;;
" _8 e3 O; D. x# P: ~ - (defun getcolor(/ col_def lay_clr temp_color)- x5 b* m' r% Q( f# Z% b
- ;; col_def is the default color used when rq_color is called. If ecolor 2 E% u `# c, h. r; ~1 `+ J
- ;; is nil (varies) then set it to 1, else use the value of ecolor.' e/ C) [! k. B$ I' n
- (if ecolor
3 r( n% J. D" O+ n5 y - (setq col_def ecolor)& d( ^+ N0 u" M! W* e4 L
- (setq col_def 1)
0 M1 h ]" J' a0 U - ); R8 x. H. e/ A( {, e g
- 8 f% L* A* u' V9 D- e5 r
- ;; If we're working with a single layer, get its color
, I# V) T/ t- w! ~1 V# e. c7 ^ - ;; for use in the color swatch if the user selects color BYLAYER.( x: Z9 l5 E; j" n( `% P* }% @% R
- (if (/= elayer "Varies")
, k! m0 d/ }% Q# y7 F+ h- G" x - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))$ S \% ~/ m; Q
- (setq lay_clr 0)! k) l; n- Y$ i
- )& m' A) u$ f$ e2 R% w U+ J
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))% `9 [/ x6 y1 O, Q
- (progn# {* L# K/ H4 C$ k1 [: |
- (setq ecolor temp_color)8 V, ]% ?, q4 S; X8 i) z
- (set_col_tile)1 ?5 V4 N8 \. `1 f' V6 H
- ecolor- X4 X; Z# I9 z+ E5 l! {
- ) D2 `3 d! b( u: [1 Y+ ]% s0 Q; u
- ecolor
: i" s3 h& z4 [+ W - ) 4 \ i& D+ W/ k* n
- )8 I& ~5 T0 J1 o; X
- ;;
& q% f, k2 f1 z3 I - ;; This function pops a dialogue box consisting of a list box, image tile,
- w! q0 P( q( m) Q/ |( u - ;; and edit box to allow the user to select or type a linetype. It returns 2 Y; u- x; M0 x' u. m$ z- ]
- ;; the linetype selected.% S' L# q x+ ~+ m5 l4 t
- ;;
% k; e6 D+ t$ T0 D* ~3 q3 ? - (defun getltype (/ old-idx ltname)6 P4 U- L8 Q, q. h- i4 B) w5 i
- ;; Initialize a dialogue from dialogue file1 Z C, G. S, F; q
- (if (not (new_dialog "setltype" dcl_id)) (exit))
f9 _2 g' f% f: ]& G1 _9 E# ?! e - (start_list "list_lt") M k# c% A0 ] R( L
- (mapcar 'add_list ltnmlst) ; initialize list box
. y" y, ^0 w1 I5 m0 T7 |( x! A - (end_list)
9 `5 |% l; z* R" H5 x - (setq old-idx lt-idx)
2 |1 p$ p- Y$ \ ?" K( e - ;; Show initial ltype in image tile, list box, and edit box
0 k, ~2 e* v4 D+ d - (if (/= lt-idx nil)3 |. L+ ]/ [; G1 l3 Z& b; z
- (ltlist_act (itoa lt-idx))8 O6 b: _% D5 r% E
- (progn$ T* K3 T& ]* a" ?' b
- (set_tile "edit_lt" "Varies")
7 L: }) ~3 X( [, H% m$ w - (col_tile "show_image" 0 nil)3 _: f$ B7 k$ b! |& |2 X
- )0 Z8 n; e7 k7 H! p. |' k E
- )
9 m, X) C9 q5 ~) g! W - (action_tile "list_lt" "(ltlist_act $value)")
6 Q ?) v7 Q8 u2 o - (action_tile "edit_lt" "(ltedit_act $value)")- W* V5 d7 N8 I$ v6 p+ X
- (action_tile "accept" "(test-ok)")/ y; T" ~/ P, T# L( A; D: O0 w
- (action_tile "cancel" "(reset-lt)")
1 Q. t G3 ^, N: \% Q' l - (if (= (start_dialog) 1) ; User pressed OK, A+ j' A) O! @3 ]4 G# L; N
- (cond
0 W5 i+ \2 q: T7 Q/ S" R- b- x - ((= lt-idx nil)3 v: E0 ~2 B8 I3 n2 X0 d& N
- (set_tile "t_ltype" "Varies")
" ]6 m- P+ `! `. n7 h0 G6 ]0 R8 e* Z - "Varies"/ u h) ?- h; E. S7 N
- )1 _+ K1 c4 Z/ p; e
- ((= lt-idx 0)
) d1 a/ X2 b' s# V - (set_tile "t_ltype" (bylayer_lt))# t3 Q# c2 l) d0 W
- "BYLAYER"
j4 q" ^4 f1 N6 U3 C: ?( j& ~ - )
$ C7 H0 N$ B; z/ g; m( t. q - ((= lt-idx 1)' N. D/ q% _7 l* n' q2 m, L
- (set_tile "t_ltype" "BYBLOCK")
/ {* K5 D" B7 u - "BYBLOCK"9 P- u* T* B: R( z; M
- ). V$ s9 U# J# w9 l d- L0 B/ {
- (T 9 s- K9 `( `) {( j
- (set_tile "t_ltype" ltname) 0 k4 j, z& O: Q: v
- ltname
9 k k% {* c8 |! o - )1 D$ \/ J9 x9 L3 i" ]
- )
! \) g) b+ D# g- j, j - eltype6 \, K+ A! i9 `- y( L
- )) i6 s, V( t+ b( A* f* b
- )! W0 ^5 W; O" n: X( W7 p7 l
- ;;" T d0 u" r- M- b: W3 a
- ;; Edit box entries end up here
) N: G+ z0 ~- c - ;;
0 h/ ^- i& s9 a - (defun ltedit_act (ltvalue)
; K. ^# ?$ q2 V6 W; D# D - ;; If linetype name,is valid, then clear error string,
, a& }- f& g7 M( _ - ;; call ltlist_act function, and change focus to list box.
3 U* S8 O1 k W - ;; Else print error message.& l4 r5 ?6 B" O' s1 e# v8 V; `- s& n
- (setq ltvalue (strcase ltvalue))7 u8 B& b; y9 J
- (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))2 i' `1 Y) D) w g4 S
- (setq ltvalue "BYLAYER")' m/ T3 H7 \$ H! U5 O. C# I6 ^/ c6 i
- )
}# M: A6 r6 F6 g* z% ]4 M) w - (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))
' q; G" ?6 }, t - (setq ltvalue "BYBLOCK")8 Q1 _& b+ ]. O$ I+ p6 x/ { C
- )
4 f5 j( U6 Y7 C* F - (if (setq lt-idx (getindex ltvalue ltnmlst)), _6 I" a& w) K6 q, ^8 w
- (progn
' r% }3 B4 E# T- U9 R - (set_tile "error" "")
1 [$ b( N0 f- v% c# M, A - (ltlist_act (itoa lt-idx))
I8 l4 y. f. O; }, e; a3 G3 d - (mode_tile "list_lt" 2)) P1 c1 e' }$ Q& _( f8 \4 h( d8 {
- )7 p$ `9 p" t+ x9 g" p7 W! m* u7 L
- (progn
4 T+ N( ]1 o f) M9 L - (if (/= ltvalue "VARIES")
( F9 g* t3 r, d' u. A, p* S0 O" l - (set_tile "error" "Invalid linetype.")
) y9 m7 J' c0 Y' H8 [1 u) v - )
1 C, F& ^& ]- y - (setq lt-idx old-idx)
# _% [8 g9 ~' | - ) 2 I% F. e$ a' h( i2 v
- )
( B4 v& p+ M( H: e9 }* _ - ); c, E# p) l5 J; u# W
- ;;& t- O; L7 \ c
- ;; List selections end up here8 _1 f8 k% h* R" Z( I3 o4 [' |" K
- ;;
7 x6 n7 ?0 M; t- `; n - (defun ltlist_act (index / dashdata)
/ ?9 K; W1 B @/ c - ;; Update the list box, edit box, and color tile( W' E0 u3 C" ?. N
- (set_tile "error" "")
" d# a! h, O+ y5 W+ i! L - (setq lt-idx (atoi index))
6 J& O* s8 }3 j& J - (setq ltname (nth lt-idx ltnmlst))0 S, o' @; v, s6 S3 ~
- (setq dashdata (nth lt-idx mdashlist))
+ z7 ^0 Z; ?- E/ j - (col_tile "show_image" 0 dashdata)
8 e: V0 I8 o1 @1 c/ L- j - (set_tile "list_lt" (itoa lt-idx))
: d' q% p7 Y( z4 _/ ^; m. p - (set_tile "edit_lt" ltname)0 a8 F9 }2 \' S7 K
- )
2 m* p, R4 i* j - ;;5 y- ?. U5 {) \1 o2 ~+ S& c& _5 o
- ;; Reset to original linetype when cancel it selected8 L1 s X& f2 X3 } n2 w2 L( _% Q
- ;;3 j& I7 U3 |" v3 X* w4 M
- (defun reset-lt ()
# ?+ l' j7 w1 P/ m9 z n1 M - (setq lt-idx old-idx)7 g" i, B+ L8 X5 B0 t6 X% n/ C
- (done_dialog 0)2 h4 M. `) _& m; ]9 e( h1 j# b1 `' M
- )3 S4 h$ F* r, {. n# b6 W
- ;;
% I/ U. {! [7 R- M - ;; This function pops a dialogue box consisting of a list box and edit box to / A9 D! z% ^5 R3 J; R
- ;; allow the user to select or type a layer name. It returns the layer name
/ k P' B8 t6 _7 | - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the
; f. |$ l7 B: {, o - ;; drawing.! X) `, q1 F! _. X% @
- ;;1 z7 _% K9 U8 L5 G' U; O
- (defun getlayer (/ old-idx layname on off frozth linetype colname)8 C/ `( M- {& M9 R/ _2 D
- ;; Load a dialogue from dialogue file& y0 n% i- f5 ~* L) B; i- d. s
- (if (not (new_dialog "setlayer" dcl_id)) (exit))/ S$ _) U( E1 c2 A% n: A
- (start_list "list_lay")
8 e* s9 D! E) o' Z, P1 i - (mapcar 'add_list longlist) ; initialize list box
9 H2 M9 y% U7 I7 H# S& \ - (end_list)4 v5 @/ z) r8 F1 i. P& w+ x3 w
- ;; Display current layer, show initial layer name in edit ; m% W& i/ d. A) W9 I5 _
- ;; box, and highlight list box.
& [/ S% B/ ]2 {) A; M& W0 o - (setq old-idx lay-idx)2 W' y3 J- o) b, e5 Z
- (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))' u' K9 r& V4 @5 e
- (set_tile "cur_layer" (getvar "clayer"))
" u0 M' [5 G( y/ o' I9 m/ Q7 t - (action_tile "list_lay" "(laylist_act $value)")
& G# l, \& B- C7 p# a - (action_tile "edit_lay" "(layedit_act $value)")
2 _4 E- ~3 g+ m* [$ S9 C% x9 I - (action_tile "accept" "(test-ok)")
+ Z8 W' Z( k) L - (action_tile "cancel" "(reset-lay)")( x7 B2 o! w( F9 e- M$ v! l
- (if (= (start_dialog) 1) ; User pressed OK
3 t- A/ s" I* F0 K - (progn
0 L4 G! z% D) M6 G+ ?. _ - (if (= lay-idx nil) (setq layname "Varies"))" y; E, P! X/ R" Q9 Q3 e- P- |8 [
- (set_tile "t_layer" layname)/ w# D6 o' R, ~# C. ^& D
- ; If layer or ltype equals bylayer reset their tiles
/ y2 F* q5 W" \- Q - (if (= lt-idx 0)
2 ]" E i& s9 s- P, o. u1 B - (set_tile "t_ltype" (bylayer_lt))
$ i p* J2 f0 U, D9 F- s - )' F6 k1 @: F: M
- (if (= ecolor 256); a: l/ Z1 z+ e! V
- (progn' _+ S: f- E8 E1 {
- (set_tile "t_color" (bylayer_col))
8 K" Q" F1 R# n1 q - (col_tile "show_image" cn nil)
0 K8 Y8 k; S5 |5 M: L6 d0 U' S/ Q - )
+ e7 A7 x4 l3 A8 l! x, g4 S - ), i1 n8 I9 ]2 H3 D0 y
- layname; L$ F' O/ I! ~4 D4 N
- )
$ i# ~# C& B1 T& Z5 z. O) I - elayer5 o5 X; ]' ] R6 j8 t- L. d$ p
- )
4 F4 g/ o; P4 @. K* N2 U1 S! c1 Q - )
, O5 _0 p& u$ g$ j) U0 l - ;;4 {6 b0 z% p9 Q2 T
- ;; Edit box selections end up here* [# U, j; t$ M( P
- ;;1 }/ W6 ?5 ?7 B$ Z# Z/ L* {
- (defun layedit_act (layvalue)& h4 y9 W, R3 _9 B
- ;; Convert layer entry to upper case. If layer name is* A3 n- @! w% E' [) s
- ;; valid, clear error string, call (laylist_act) function, W, f$ y. F; l
- ;; and change focus to list box. Else print error message.. c6 [; I# ?1 y: p I* T0 [9 h
- (setq layvalue (strcase layvalue)), g# ^( s6 U! g o; ~8 i1 \
- (if (setq lay-idx (getindex layvalue laynmlst))
# R7 a5 V! H6 E- O - (progn
v/ L4 |2 C+ v! U% T& j - (set_tile "error" "")4 U y: Y7 q( `( H. r9 U# k
- (laylist_act (itoa lay-idx))
- r( S! N3 m7 r+ n: q - )
7 a4 @. R8 g# `0 i( q( o$ H, a - (progn
) e/ h% ~1 e6 @7 c+ e2 m - (set_tile "error" "Invalid layer name.")
4 j* n% N& t1 {* L# C - (setq lay-idx old-idx)
$ W. K( h g6 i+ `% U - )
' N8 O* C+ Q. h7 [" v+ y8 Q - )
* D, M8 U1 C/ P' W - )
" N) _1 Q& I: h - ;;
4 y; E4 ^" X: [) t1 w' e - ;; List entry selections end up here0 M, j' A! C. G: P7 k3 m }& I
- ;;5 n8 q1 ^9 |8 z" q0 M
- (defun laylist_act (index / layinfo color dashdata)
( h! C& \. w X9 f2 g# s - ;; Update the list box, edit box, and color tile
$ F; r _0 F% M' U6 i u - (set_tile "error" "")
+ x( \7 l- Q# j* P2 m/ y - (setq lay-idx (atoi index))
( s) u* z2 Q. D* E1 z T( p! ?: X - (setq layname (nth lay-idx laynmlst))" n: ^2 K4 O0 l* f, }
- (setq layinfo (tblsearch "layer" layname))
0 k/ L9 u/ L* O: Z9 S - (if (= (logand (cdr (assoc 70 layinfo)) 4) 4)
6 Q. u& Y/ S3 H( }7 { D' j - (set_tile "error" "Cannot change entity to locked layer.")
" P5 T# M" T" [( b1 G4 S - (progn
. Q# Y7 R& y3 ~4 {$ p - (setq color (cdr (assoc 62 layinfo)))
" H, ]0 L* T4 a" v3 \ - (setq color (abs color))
3 B( _1 |% l, n! s0 o - (setq colname (colorname color)); l. `7 _1 v" F8 {9 n- U7 s
- (set_tile "list_lay" (itoa lay-idx))
9 u) u+ D" G4 n' t3 \ - (set_tile "edit_lay" layname)) {. g& r0 F- n0 l" A! Y
- (mode_tile "list_lay" 2)
) u7 q2 i Y u: R- V6 H - )
: L) s) f: F/ @. J3 k. x4 q% n - )
1 b; m2 b* o+ ~' n2 C5 i) |, A9 K - )
/ l+ d9 X* G; L! f3 V8 J - ;;
8 e( N+ x x, O0 |0 T( x: j* I8 B* \ - ;; Reset to original layer when cancel is selected
/ o0 a6 V! @! C& p4 l - ;;! r1 ?) a8 T$ l% U; N# M
- (defun reset-lay ()4 ?& X) M; d3 L" A5 z
- (setq lay-idx old-idx)
- h7 T$ g% Q5 m# ]) h - (done_dialog 0)+ R6 e. l @5 q6 v# Z
- )
5 G" }7 J( ]9 z0 @ - ;;8 t5 F4 N! \" i2 {* g6 l7 I
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
0 v+ t! C" c9 i9 G: X - ;; string can't be converted to a real, this routine checks if the first % n4 b4 c2 l% p9 }. [
- ;; character is "0". It also checks to see if the value equals "Varies".
% E" |+ V5 J1 t( z - ;;9 x {$ }& e, p& l3 ^
- (defun getthickness (value)
$ n" T1 q2 g) p6 Z9 A9 w - (setq value (strcase value))' v7 t' {! v2 M3 I
- (if (or (= value "VARIES")( S9 J# h% o: g, ~! G, v: n% T% q
- (distof value)
6 I& ?1 w& i* }: b8 l: O7 o - )7 E! A E, B! j9 V
- (progn9 K" \ w6 o# V( C' Z, n4 I0 H
- (set_tile "error" "")" p" a( J7 X# R2 ]( q
- (if (= value "VARIES")
: x, `' a! I7 y4 r- G - (progn$ e5 f; `& J3 F3 B+ D
- (set_tile "eb_thickness" "Varies")
0 t- i& l c3 E# \4 O - (setq ethickness nil)
6 |; s' U- G* Z - )
5 y% D+ w( p5 m7 Y* v7 v" J) c( B# A - (progn% o! e# Z, t5 H
- (setq ethickness (distof value))% Q/ ~" R. Q0 _: O
- (set_tile "eb_thickness" (rtos ethickness))% K1 }+ W. q4 |' L0 ^4 T
- ethickness9 t% W: J) k1 i2 e! E* j; _
- )4 G. c4 [2 {- z& T+ ^; N' [& H
- )
4 `" |0 K; H7 `1 r$ f - ), N, o4 u4 x6 c9 F$ v3 Y
- (progn
. ^) U) k q7 O$ g - (set_tile "error" "Invalid thickness.")9 L: y8 E c% R
- nil
# {9 Q. P7 b8 H W' b& U+ l B8 h - ) ^! l$ w' v3 i$ C1 [! T
- )" d4 d3 G- n# u" F
- )
0 h/ V, A* i! b& p P+ E - ;;5 ~9 \" X% T. F3 e$ h: U
- ;; This function make a list called laynmlst which consists of all the layer / c/ p" f! b7 }; j
- ;; names in the drawing. It also creates a list called longlist which ; `2 l1 h) q8 d* g# y5 o
- ;; consists of strings which contain the layer name, color, linetype, etc.
1 e) Y/ }6 z/ v3 U3 Z - ;; Longlist is later mapped into the layer listbox. Both are ordered the
3 t5 m! s) t6 e0 [ - ;; same., ^1 _4 C; t6 w- y" h" [
- ;;
" k; X. H+ o( r: N4 `& ]0 Q - (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname
! c; _& N! M. m0 I4 v - xdlist vpldata sortlist name templist bit-70* z8 o% y# U4 j3 Z/ _- h
- ), j/ Y1 w3 n# s% `; _3 |
- (if (= (setq tilemode (getvar "tilemode")) 0)1 y/ B( i7 a7 I3 V# C
- (progn3 u* c* f- a$ H" ]% g( `! W
- (setq ss (ssget "x" (list (cons 0 "VIEWPORT"); T) j( z6 |- G
- (cons 69 (getvar "CVPORT"))
1 m% I: {6 l$ c$ K% E* m3 c6 B - )
1 ^9 q/ L% j2 e - )
' m9 ^9 M, g+ {5 l1 p8 ^ - ) $ N7 J4 {- f ]
- (setq cvpname (ssname ss 0))6 z: M4 ?3 q* Y/ a, Q
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))* `% P- c9 M9 o S: \9 a- u% r8 r
- (setq vpldata (cdadr xdlist))
% D' ~! f6 Q1 v1 d# j9 ~ - ): x, m7 l# x, A* L1 w2 J: `
- )
6 C0 n7 c! J6 l& ~* x0 N - (setq sortlist nil)
, i- R/ y# Y1 }3 O" d' X: z - (setq templist (tblnext "LAYER" T)). g" b% J- U7 I' i% K. ^
- (while templist/ }4 r" X2 c, z6 L
- (setq name (cdr (assoc 2 templist))) Q- O' _( b Z
- (setq sortlist (cons name sortlist))
. ]+ }! J3 n( h! c - (setq templist (tblnext "LAYER"))$ M$ n) S6 u6 V7 ~' O
- )
0 m$ i1 K: k* M+ h! x3 V& I9 d1 v7 m - (if (>= (getvar "maxsort") (length sortlist))1 A. [7 _4 n8 n( i" j8 @
- (setq sortlist (acad_strlsort sortlist))
9 l/ M/ ?1 C8 o* j - (setq sortlist (reverse sortlist))
8 I" x/ B7 A6 b - )& K2 K5 u r# V7 d2 s8 I
- (setq laynmlst sortlist)& A: ^5 X% y+ J0 s4 j, s2 B6 q; F
- (setq longlist nil)+ n* x3 _7 d. r
- (setq layname (car sortlist))6 D1 e: `# c- I# @4 i( O
- (while layname0 O: A, D/ q. l, L3 h
- (setq laylist (tblsearch "LAYER" layname))
6 u( @& p% r X/ m( s I n' l% h7 @0 u) D4 Q - (setq color (cdr (assoc 62 laylist))) a7 z+ x; s+ l0 y
- (if (minusp color)+ I+ p) i1 K1 i0 q. t
- (setq onoff ".")
, M/ n( R4 l$ ]( f - (setq onoff "On")7 h' }1 I' k; j; f! V
- )+ r& [+ G) `& B: Q
- (setq color (abs color))
6 L7 x; l0 ]$ C5 `/ X9 k - (setq colname (colorname color))
) | W2 }) C! q+ @! j - (setq bit-70 (cdr (assoc 70 laylist)))
3 W3 F6 V6 o$ p% u% p" S& w" O - (if (= (logand bit-70 1) 1)$ K/ Y% p. ^1 X% o3 C4 l9 Z
- (setq frozth "F" fchk laylist), N2 i# }" b5 Q9 ~* r1 e7 O
- (setq frozth ".")3 s: q0 j, @& P1 G
- )
$ o; K' S; k0 i9 q' m" ` - (if (= (logand bit-70 2) 2): a' D( X* b# t6 d6 T8 P* T0 F
- (setq vpn "N")$ T( P, |6 P# ~2 @! O8 U
- (setq vpn ".")
) [5 w$ h3 G: s+ H% X - )6 S1 N/ r f# n, Q
- (if (= (logand bit-70 4) 4)2 ]9 U; F" w) p4 }7 [& d+ {1 Q
- (setq lock "L")
0 t4 u) k+ l9 h9 ~ - (setq lock ".")
' F$ X, ^' T1 v5 N1 F- F - )2 U& B( M- w, ~/ x8 I( j3 D& p5 h
- (setq linetype (cdr (assoc 6 laylist)))7 w( D" t& z5 n! O# s
- (setq layname (substr layname 1 31))/ ^3 l7 H- A: z1 `# G6 q+ S* ]
- (if (= tilemode 0): F" \% f2 s7 I5 F- [9 P
- (progn" `0 g- I9 V' K9 x3 P) s5 J+ O
- (if (member (cons 1003 layname) vpldata)
8 w) F" P9 e+ v& d# ^ - (setq vpf "C")
$ c" D: i$ L" L( {9 D& u - (setq vpf ".")
- n+ ] Y. y. V% \' ? - )0 M9 o; |! u- n/ B. x
- )8 l- Z3 A% z$ W0 @& }
- (setq vpf ".")3 L4 |5 m2 N- W1 V1 N
- )( k* c; P. W$ R; g2 S: x
- (setq ltabstr (strcat layname "\t"$ `( M2 [/ l g. G4 R" A
- onoff "\t"
0 ?/ e7 y+ h R% O( v- t - frozth "\t"5 F) v; b* \+ Y" Y; E# E
- lock "\t") k4 l( |1 [3 P5 ]4 B2 ?
- vpf "\t"
9 I3 `7 u- a5 _ - vpn "\t"; i5 \2 K; k( t4 P6 _% t
- colname "\t"
- Z' q/ `8 K' Z( m; n/ p/ \- N - linetype: U7 h) |$ l+ V2 ^% }3 p& l% _
- )
; B1 }9 o- v" K- Z - ): L/ B! p- a. P) [: L, u" L% e
- (setq longlist (append longlist (list ltabstr)))" T- {3 I. X: f! W5 U8 W7 I- H
- (setq sortlist (cdr sortlist)): _# R6 b3 C# c9 c( t
- (setq layname (car sortlist))
8 x3 u+ `& N4 W) v - ) C2 y. \# f& C
- )0 h& W: l& L$ z, M1 ^# J5 c
- ;;& D. B. L5 q! C' N' u. J5 c
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
O e& c5 G, @6 D6 e - ;; linetype names read from the symbol table. Mdashlist is list consisting 6 Z5 U2 _9 g0 ?/ b# y" w* [
- ;; of lists which define the linetype pattern - numbers that indicate dots,
# z! O: ]5 @9 C9 S+ b8 b4 W - ;; dashes, and spaces taken from group code 49. The list corresponds to the , e& k7 G& f |/ m$ D
- ;; order of names in ltnmlst.
' Z. E. d# j6 @/ q( }% _ - ;;
5 s6 F0 r; f2 e; x - (defun makeltlists (/ ltlist ltname)/ R: n; p6 a K4 E7 ^+ z
- (setq mdashlist nil)2 i/ n, u. i9 b0 v/ ]) s# [( f7 j
- (setq ltlist (tblnext "LTYPE" T))$ n: I4 |1 V$ _$ D6 i, [
- (setq ltname (cdr (assoc 2 ltlist)))' ~& [1 o1 B8 E: Y5 I6 j& j! p
- (setq ltnmlst (list ltname))
+ j& B2 ~& v2 Y: J
+ a& j" p3 z; c3 ], |3 q- (if (= ltname "CONTINUOUS"): w3 _! r5 T+ Y6 Y
- (setq mdashlist (list "CONT"))7 k: s" n0 r# t5 D0 @0 i
- (setq mdashlist
$ h; k: A: @0 |3 h - (append mdashlist (list (add-mdash ltlist)))1 V) b6 ^3 g' O) m9 F' T/ _
- ). u1 I+ h$ S' V8 L U0 r
- )
* R$ s9 _6 P" E3 q1 h G: l+ H r - (while (setq ltlist (tblnext "LTYPE")) G) G0 u7 [8 S" V1 i. `5 k
- (setq ltname (cdr (assoc 2 ltlist)))+ a# W" K6 u% V$ a3 b4 i" ? o+ y
- (setq ltnmlst (append ltnmlst (list ltname)))2 K$ L( U' ^2 R3 L
- (setq mdashlist
; S& R. D2 e1 }- y - (append mdashlist (list (add-mdash ltlist)))- V) ?$ @' T' W+ ~0 f9 D
- )
0 ~8 d1 C8 @! o; y - ) n/ ~7 ^/ r; U" M
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))
]0 r- o( S* o; T - (setq mdashlist (cons nil mdashlist))
2 w; U8 `& g: S- J+ ?) c) u - (setq ltnmlst (cons "BYLAYER" ltnmlst))
5 T) n/ Q4 a4 H( R6 a2 h1 h* b - (setq mdashlist (cons nil mdashlist))" V7 b; f% ?7 d$ m
- )$ [8 x+ e8 k! L4 ~. a- ~, |0 }% O
- ;;
6 p9 G8 D& y9 J9 |% b9 I - ;; Get all the group code 49 values for a linetype and put them in a list $ L& B. t; I0 p, ?0 f8 D) s
- ;; (pen-up, pen-down info)4 C+ E1 R G S$ W# r
- ;;
7 k; T* G3 h" \6 C. [! B1 i - (defun add-mdash (ltlist1 / dashlist assoclist dashsize)9 k N# v2 ?$ R( U1 b
- (setq dashlist nil)! A( b/ i4 v2 x1 L
- (while (setq assoclist (car ltlist1))1 r9 u# p9 ?( F! @: m
- (if (= (car assoclist) 49)& m5 n3 Y3 ~1 R: Q
- (progn( B. A: F2 H$ b0 l# w
- (setq dashsize (cdr assoclist)). g; y, o B z! J/ ?: O
- (setq dashlist (cons dashsize dashlist))5 v3 @/ D( F0 _) {
- ), n& A/ t" v, i/ C9 e
- )1 h6 z0 y4 w8 Z2 h3 f' W5 I
- (setq ltlist1 (cdr ltlist1))
/ L3 M V5 I4 d7 E& ^7 j/ L+ Y& k - )6 V+ J1 X" v: @- A Y
- (setq dashlist (reverse dashlist)), m0 T( c, ~3 \" A
- )/ P) U; K5 B( d- }
- ;;+ s% t+ q, K+ Z
- ;; Color a tile, draw linetype, and draw a border around it: s: i @; W1 H) ~* }% ]
- ;;
8 S1 `; [, e( \ - (defun col_tile (tile color patlist / x y)
* W0 _, ?' P! e - (setq x (dimx_tile tile))
7 |' m# |6 `5 b: g - (setq y (dimy_tile tile))( m+ X3 j; O6 `) e2 E; @3 |
- (start_image tile)% J+ T& Z& l% o! t! c0 F) o
- (fill_image 0 0 x y color)
4 ~2 a/ r/ G0 M1 }4 P: C% V - (if (= color 7)- \& l: A2 ]4 ?& O
- (progn
2 X6 ?- Q7 P! O+ {2 r- F/ C - (if patlist (drawpattern x (/ y 2) patlist 0))
3 E, U+ ~3 q r% ^+ I- G1 ]% G - (tile_rect 0 0 x y 0)9 O6 `4 `7 V" U; ?5 }8 K3 r
- )
^, t" ?1 V5 Y) Q; J4 i4 e - (progn k$ r* ^, G, q' V( n
- (if patlist (drawpattern x (/ y 2) patlist 7))
/ d* x5 R8 R5 u) |1 j0 k$ R4 q - (tile_rect 0 0 x y 7)
% f4 z1 `0 f. _; F0 { - )0 M8 z7 |6 Z) F* {' [
- )3 G0 j ~! J q. k
- (end_image)
2 B* T* |- y+ O5 Q3 t - )$ ?- w* S; L) }6 q3 V
- ;;. u' l5 d1 l- N% c
- ;; Draw a border around a tile
5 B/ l, `. _. \% ~, j - ;;
$ V2 t: M/ x/ N' p: }1 ^ - (defun tile_rect (x1 y1 x2 y2 color)
% ]2 W2 x: T8 P7 p, o1 ` - (setq x2 (- x2 1))' i' \9 ^5 G0 a* h- {
- (setq y2 (- y2 1))
* }; W7 z c/ p% x - (vector_image x1 y1 x2 y1 color)
; N) v( e& R* E* |" S1 ]$ |9 u - (vector_image x2 y1 x2 y2 color)
% @8 ~/ p6 ]" `* C+ _" z - (vector_image x2 y2 x1 y2 color)8 M3 q6 P; P" Y, T) G- x r
- (vector_image x1 y2 x1 y1 color)
1 ^+ p6 X0 t7 l2 q8 K8 i9 a - )
. y0 V9 C8 H- _; S7 e - ;;
; ~ m! e6 p9 s& s7 ? - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
/ I6 N9 _* a: {! @4 R - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
% ]% s. ]+ _) ?$ c) d6 W - ;; list of numbers that define the linetype, and color is the color of the ' w7 J7 W9 [8 M( e4 H
- ;; tile.! ^# e, w, O6 h: I/ x8 ?) Z7 V
- ;;
4 M! a- ~0 ]5 L* z - (defun drawpattern (boxlength y2 pattern color / x1 x2
% H D. D) o7 A/ _7 [# U - patlist dash)
8 {8 M' {$ \& m( n/ E+ O5 M+ w" Z - (setq x1 0 x2 0), C% j8 M7 w ?( I: u+ f
- (setq patlist pattern)
0 a& \ s% M- g& s; i - (if (= patlist "CONT") S4 B! O9 z8 d _ W
- (progn
* Y3 v' q, R/ U2 b! B) M, } - (setq dash boxlength)
8 y+ s% s9 [2 a. V7 X - (vi)9 c: T$ y- q8 T' x- }2 T
- (setq x1 boxlength)$ J5 ^' n8 T( V- T* c1 t+ a
- )
, f" M5 F2 o- ` - )
) g1 B b; }3 V9 N8 I& c - (while (< x1 boxlength)/ a8 S8 U3 F: b
- (if (setq dash (car patlist))
" C# I# X8 w3 g6 g% a - (progn
7 V1 M8 J% h6 B0 K3 i) V - (setq dash (fix (* 30 dash)))( J' p0 J: W% k5 @2 M& S
- (cond
3 P' a8 H+ ]' t+ U2 e - ((= dash 0) 6 n- ?) q6 b* L1 m. e; M" O- n
- (setq dash 1)
7 p2 K! W8 S2 Z+ j& C. I6 p! i9 c- G - (vi) K+ a, S0 B. {! U
- )5 c- c( F7 x: m# x0 P! L9 K/ @
- ((> dash 0)
4 h* z! p; V1 |# Z - (vi)2 u$ x+ z7 Z) ] i R7 ~2 G
- )$ u& k* G* q! T0 A+ r% o
- (T # C9 q" K2 Y' E5 D: V
- (if (< (abs dash) 2) (setq dash 2)); S9 C. F6 @# Z2 \9 ?+ o
- (setq x2 (+ x2 (abs dash)))* S) X( o, \. H, L
- )6 O0 W# W- F5 z) ^$ |
- )+ e8 O$ I5 H- c
- (setq patlist (cdr patlist))" \" O/ N; M( v" A- w$ X
- (setq x1 x2)3 s; D$ Z$ L8 K1 j2 _* D
- )
) E7 Z( S+ f3 V7 M# r - (setq patlist pattern)# A3 |: {: j6 A9 q5 Y
- )5 a2 P- |. L7 p* h/ O
- )
# Q. w3 k: T: j4 U2 ~6 x - )( \6 m$ r% l+ {; f# r
- ;;
( }3 s m! j0 Y" {( N; N - ;; Draw a dash or dot in image tile
* Z+ g) o; J7 b% A& y2 { - ;;* l( d# \( O# I$ ^+ d# m- m
- (defun vi ()1 S* X' W" o7 z6 Y; C
- (setq x2 (+ x2 dash))
/ E, T4 Q. k9 T ^! E, G - (vector_image x1 y2 x2 y2 color)4 P+ s; B) o' @" G% V) M5 b. { A
- )/ i5 Q* u+ K( ~! N5 |
- ;;
0 `# U0 E: C5 }+ X. H - ;; This function takes a selection and returns a list of the color, linetype, # w( e3 l. F' I5 B. V! }
- ;; layer, and thickness properties that are common to every entities in the
* X6 j- a$ p" ]% _+ F - ;; selection set - (color linetype layer thickness). If all entities do not
Z5 U d0 W a3 C4 E& }, ] - ;; share the same property value it returns "Varies" in place of the * w% H& \( B7 c7 E) J1 q
- ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)# m/ r0 M$ a& v- t6 x
- ;;
+ a/ o6 c, j2 M# m/ H& I0 k: b( } - (defun getprops (selset / sslen elist color ltype layer
$ W1 t1 x" C& W' z& ?; _3 z& v6 k5 U - thickness go chk-col chk-lt chk-lay chk-th ctr)
% h9 T8 A& O4 T! P0 F9 Z - (setq sslen (sslength selset))
* N2 E# K/ A) Y# z f - (setq elist (entget (ssname selset 0)))
2 I+ i# p4 H0 [' R% r - (setq color (cdr (assoc 62 elist)))
8 _# P' N: y4 h M! z - (if (not color) (setq color 256))
5 b8 @! z9 K) J) y - (setq ltype (cdr (assoc 6 elist)))
1 g a9 L* b7 r2 y - (if (not ltype) (setq ltype "BYLAYER"))1 s. u& t. P$ M5 i3 E( `1 t
- (setq layer (cdr (assoc 8 elist)))
/ s- z6 k! X5 f) g6 M. r. h - (setq thickness (cdr (assoc 39 elist))) s* o$ z$ y$ O
- (if (not thickness) (setq thickness 0))3 Y" Q' _- S" Q' {; M1 V/ P- |$ n
- (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)
: ~2 @# j$ q8 |, L* f& l, `. J' z - 0 `1 s4 n3 x/ w w
- ;; Page through the selection set. When a property9 }" \6 H2 k4 E' V: a- R
- ;; does not match, stop checking for that property.6 k1 X- n9 j5 O+ f y `2 a' D
- ;; If all properties vary, stop paging.
8 o" k9 n5 b2 j, Z8 I
- u/ j2 O6 l: L2 B: B5 v8 F/ \- (while (and (> sslen ctr) go) P+ }' G" I; _+ y( Y* D- O9 | v. ]0 O/ `
- (setq elist (entget (setq en (ssname selset ctr))))( k; W* `, T+ I$ \# }
- (if chk-col (match-col))
7 `3 F" X. f% G! V$ ~ - (if chk-lt (match-lt))! X; r$ S! X: D' s/ F
- (if chk-lay (match-lay))
' d+ A+ _% T1 k6 j3 ~5 P - (if chk-th (match-th))2 M$ }" D* q g" X+ L' ~+ X
- (setq ctr (1+ ctr)), U) E; C5 ?0 g, W$ f* E8 t3 @
- (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th))
* s7 }2 a. I0 \. i( C S) b4 s - (setq go nil); h1 E5 P! {- D+ c1 R2 {$ R: y# P
- )/ U% z% b, A0 Q( R: F" X; H7 w7 f0 _+ }
- )& g- c& Q, A% q# w- O* G t
- (list color ltype layer thickness)- `; \: U0 U) H% D& W1 A
- )
1 d+ l7 ? d$ ]
2 Q- V( @0 R. H, Q- (defun match-col (/ ncolor)5 k2 h8 A1 d9 S# l, s" D( ~* T
- (setq ncolor (cdr (assoc 62 elist)))
. G1 O O# [. X3 d2 m# \% d - (if (not ncolor) (setq ncolor 256))6 w- K& O1 o' {3 |) o6 ?4 O+ \& ]! M
- (if (/= color ncolor)+ x: S5 m+ \! P$ @% K
- (progn
8 K' i( _9 B7 \" V ` - (setq chk-col nil)" L9 Q; h; Q6 K( {
- (setq color nil)
! R* w' i: C9 X# ^6 w6 W - )
7 e* z( q/ a2 e - )# O$ Y3 d- O6 O( ^& O, i D
- )
' K, Z+ N8 _9 G5 U/ v+ p
. r; Q* _7 W" {* Z% k. o8 W- (defun match-lt (/ nltype)5 M8 f5 n# @2 R
- (setq nltype (cdr (assoc 6 elist)))
# |# C$ Y6 n6 r+ I2 A$ n2 E - (if (not nltype) (setq nltype "BYLAYER"))* G. n; @$ \7 o) B8 b& k( r* x
- (if (/= ltype nltype)% a- h) m) Z& t; i- M
- (progn
1 v0 q. h0 S) r; U3 d* ~3 M! b - (setq chk-lt nil)( D5 g) `* F+ h
- (setq ltype "Varies")
1 j( G/ ^+ n' z1 ~ - )- v; |3 V+ \0 R* j7 P
- )! x7 h7 ^) V7 M
- )0 p( U1 v; ^- {2 E
- $ G7 _) J8 e5 K/ Y, o
- (defun match-lay (/ nlayer)
9 n. |6 ^: q: X - (setq nlayer (cdr (assoc 8 elist)))
. o5 J3 z% N+ H7 P1 h8 o* S2 E - (if (/= layer nlayer)
" v/ c6 k: Z1 c5 `, C- B - (progn6 `. v* ~( ]3 ]9 F+ A) J
- (setq chk-lay nil)
/ `- t# X2 |( k3 l8 Y- y - (setq layer "Varies"). Y. w% i9 y. l0 E0 s
- )
; p9 ?0 d; I$ W+ } - )) P4 {6 [: I1 E9 i0 n; y; Z
- )) s( a) d+ M6 W
- 6 k' t, l& n9 s: l7 k* I
- (defun match-th (/ nthickness)& e/ W3 l3 R; l: q, |# t( A
- (setq nthickness (cdr (assoc 39 elist)))$ h' q. N9 T! t
- (if (not nthickness) (setq nthickness 0))9 _# Y) B" l4 b
- (if (/= thickness nthickness)8 [; f2 _4 v7 Z$ ^- b
- (progn
+ y- j* M6 y6 ^" r p' W- U* h - (setq chk-th nil)
8 i2 u- F9 D8 p - (setq thickness "Varies")
. L: Q* J" X& M3 i+ R6 r- T$ n - )
. V, g: {3 P& h0 i' W - )
/ t. l C" r- {7 x; m* N - )
/ t; \- m. Z; d9 H - ) y, e1 @0 E/ f% `3 j6 i; N
- ;;
) q/ t/ X! c' q! e' x - ;; If an item is a member of the list, then return its index number, else
6 z2 E3 }6 u5 \ l. T - ;; return nil.: C# O# D( @- ^; J% B f
- ;;
7 G3 B! @* P& y# i7 ? - (defun getindex (item itemlist / m n)
# r1 T) J& X$ X/ i! c H - (setq n (length itemlist))
; c1 ]1 r9 Y/ L- @; C- M - (if (> (setq m (length (member item itemlist))) 0)
" H& C5 k0 N: o& R% ~4 d - (- n m)
# ?. E" N. ^4 {- o3 o0 A - nil5 R( t" U# q: D" ^
- ); Y2 T+ W9 Q5 Y7 [$ ~9 a* E* Y& ]
- )
9 S& J2 t! Q2 ^7 _9 p - ;;' w+ C/ V+ K# g
- ;; This function is called if the linetype is set "BYLAYER". It finds the
6 w0 n+ I1 A; `: d% Y- s - ;; ltype of the layer so it can be displayed beside the linetype button.
6 }7 ^7 f% o* m - ;;' D: h$ e% A" a# {
- (defun bylayer_lt (/ layname layinfo ltype)+ s! A g1 F3 g/ v; ^3 k0 k
- (if lay-idx& s! v: H# E$ L2 K% P( H( S
- (progn9 f% A4 _. Y. K, h
- (setq layname (nth lay-idx laynmlst))
5 m1 ?1 f Q- [% h, ]! o - (setq layinfo (tblsearch "layer" layname))
5 a4 J. C: c. q& n - (setq ltype (cdr (assoc 6 layinfo)))
9 f% x; }) K/ Y6 x: j7 j - (strcat "BYLAYER (" ltype ")")# r% R5 _$ G) ~& ]8 ^5 K0 V$ ?
- ), t0 ^: y" q ?4 f5 q
- "BYLAYER"( A' c, A( o: @
- )
2 y" p& s+ G1 E1 R& B" I - )$ q: u. l! F5 a8 F5 \
- ;;
& L A. O& ^+ A# F: c6 h; f8 a; ` - ;; This function is called if the color is set "BYLAYER". It finds the
X! x7 i& T$ N p) C - ;; color of the layer so it can be displayed beside the color button.$ J- `8 `1 c+ M- A, I
- ;;
7 B0 r5 p* H# D2 W' b - (defun bylayer_col (/ layname layinfo color)
& O6 G- g3 F7 ^8 O - (if lay-idx
6 c) @' ] w6 c! _) A - (progn3 F& M* F$ q" Q4 }: q
- (setq layname (nth lay-idx laynmlst))
* t( h* d9 G- C0 s - (setq layinfo (tblsearch "layer" layname))
- x8 c8 j) n$ M - (setq color (abs (cdr (assoc 62 layinfo))))1 g: _' L% w- S$ j
- (setq cn color)0 E6 E( `) x/ u/ X; x
- (strcat "BYLAYER (" (colorname color) ")")
2 |( U; V6 y- ^, o - )# q1 _" }8 v# | e5 F. \7 f& Y
- (progn& d8 N2 E2 U( a& R- P& U+ s
- (setq cn 0)8 I9 \% _- ^: `4 _
- "BYLAYER"
) H) n6 ]3 R7 F0 y5 F - )
^; e# ?7 M; Z1 p - ): \, |1 L* I8 s8 V1 _1 v$ C2 k
- )
* Q5 f6 g$ @- g* x - ;;
% b9 H9 _2 V3 v; s4 x+ u - ;; If there is no error message, then close the dialogue
7 t) u% P& Z$ G, u8 s; ^* K# G t - ;;
2 `% }6 } H1 ?% p2 A - ;; If there is an error message, then set focus to the tile
0 I7 [" a$ r, C& L - ;; that's associated with the error message.
- o, t l/ z! l- ~# t6 B1 r4 Y - ;;
0 {1 {+ m$ e# ? - (defun test-ok ( / errtile)
) P7 K q ?* @0 f - (setq errtile (get_tile "error"))# b2 c, o) B4 ~3 q. W. u7 W% o
- (cond( |( e4 b+ z3 d4 A3 m; z% V
- ( (= errtile "")
, A l4 ? u, H - (done_dialog 1))/ t z! a# [1 E4 L3 r( @4 f
- ( (= errtile "Invalid thickness.")/ S. u, g8 A+ t; s, X
- (mode_tile "eb_thickness" 2))2 O( V% L5 z! J+ ?0 o( | ?
- )
- p E+ A/ \* Y9 S5 f( C! g - )0 \, ]3 w$ i, I# G$ _ j- H) A
- ;;
, ^( G' ]. `, w2 g% I- | - ;; A color function used by getlayer.( p2 j) u! ^8 y+ { s, B( D
- ;;
6 n# ^, `4 Z s6 B$ V; B - (defun colorname (colnum). C3 m$ { c" \" B' f
- (setq cn (abs colnum)). ]3 l# U8 m# o1 y" ^$ J
- (cond ((= cn 1) "red")/ |& c) u1 k( S4 P
- ((= cn 2) "yellow")
( _% O5 o$ o% m- n - ((= cn 3) "green")4 h) w3 v0 q& y' j2 J' `- q& u
- ((= cn 4) "cyan")/ j3 v( W0 m3 |, _4 C: G* z U3 |
- ((= cn 5) "blue")
, P( \ [. N" v5 T. v# y - ((= cn 6) "magenta")
3 _$ x2 Y$ a f+ a - ((= cn 7) "white")! f. G+ U+ e3 S! {- T
- (T (itoa cn))- A; f. J7 v$ _# n+ ]8 t; k, a
- )
' U5 _5 t: d6 R) {! _7 o4 R - )
* m4 h4 U( J3 b0 S- c9 q3 h- t
5 A5 b2 o9 l- k- ;;; Construct layer and ltype lists and initialize all
4 Z2 P9 q" G& c @- r" N M9 O! C$ f2 k - ;;; program variables:
; G, ~- }2 s& }% E$ Y7 h1 S' b - 1 k+ D6 ?3 V3 @, D* {
- (makelaylists) ; layer list - laynmlst
; B% F- D* X- ~8 u6 K, F/ R - (makeltlists) ; linetype lists - ltnmlst, mdashlist! [2 d' U$ Y5 V7 L C
- ;; Find the property values of the selection set.
S+ z# c1 o$ D- ` - ;; (getprops ss) returns a list of properties from# O6 E1 j2 ?: Q3 G+ R, e
- ;; a selection set - (color ltype layer thickness).! e" z& n. P) z5 V' h: w* X
- (setq proplist (getprops ss))
$ y6 `) N) O' G - (setq ecolor (car proplist))
: N2 ~) ^& B& T, ] S0 z - (setq eltype (cadr proplist)) K) o6 L3 F: N
- (setq elayer (caddr proplist))
1 m( z1 b7 M- t8 R1 O - (setq ethickness (cadddr proplist)) o/ N$ c4 e% c! M! V3 I! w) Z
- ;; Find index of linetype, and layer lists
; l. O( Q# e3 T7 v, p/ m - (cond" |, U8 `( X U/ u( l; \. y2 U
- ((= eltype "Varies") (setq lt-idx nil))
k- C3 X8 u; K3 T' { - ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))
1 N" ?. O' \7 V( y8 q - ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst)))( {$ A) c- \% I* c. @- `2 h, X+ s
- (T (setq lt-idx (getindex eltype ltnmlst)))& _; |+ c$ z0 d! a1 x$ i# i
- )6 Z! L) {3 e8 Y( r" B" a; t
- (if (= elayer "Varies"). T5 f- X T- U; k8 q* {5 V
- (setq lay-idx nil)+ @% A/ x6 ^; L. B) w
- (setq lay-idx (getindex elayer laynmlst))
! h3 o0 ?/ q+ t6 D5 F! v! D9 n - )
/ j1 s' F8 W4 D5 s3 E& d8 e) n - (if (= ethickness "Varies")- H3 @) H4 G0 [2 B; w
- (setq ethickness nil)
+ ?9 l# S- L8 O - )3 T. G5 N9 ?7 f/ H, Z1 o1 Y4 Q2 m
7 w7 P: y3 z3 u- c- ?- ) ; end (ddchprop_init)/ b1 X0 q( U/ d) i$ `* X
, x! v2 F8 r- J; y' Q4 d! P- ;;; (ddchprop_select): }. P- }' L1 R6 d0 |" f! \
- ;;;# J# C3 \3 a% l% H, B
- ;;; Aquires selection set for DDCHPROP, in one of three ways:
' y, j% u0 R9 N - ;;;+ Y6 `# U9 K x* h) s% L1 @
- ;;; 1 - Autoselected.& I7 R: k5 G5 ], F _/ C4 l
- ;;; 2 - Prompted for.
$ ~8 x( j' J3 W& q" f G/ g - ;;; 3 - Passed as an argument in a call to (ddchprop <ss> )
: \% u2 t% k5 ]& _ - ;;;
' z* _7 n. ?; L: s3 k4 c - ;;; The (ddchprop_select) function also sets the value of the) }0 c0 y* o( J6 ]6 X' ^* A
- ;;; global symbol AI_SELTYPE to one of the above three values to
3 A7 m. D/ h2 |9 O - ;;; indicate the method thru which the entity was aquired.
2 M% l; }) x6 c$ m9 R( x9 }) t; h
; _0 c. E& |) m6 t9 M
+ Y4 ?% g6 u W5 x" F- a- (defun ddchprop_select ()* i$ t! p/ G& R0 N: U3 ^
- (cond
; ^: a, O3 ~, [8 P* |, |& {( z$ B - ( (and ss (eq (type ss) 'pickset)) ; selection set passed to6 o( J" L8 g. I1 n
- (cond ; (ddchprop) as argument* A1 ^2 K$ ]3 O5 Z' D) `# @
- ( (not (zerop (sslength ss))) ; If not empty, then
4 e6 ?' D; `0 B - (setq ai_seltype 3) ; then return pickset.
( z6 v, r. k6 l/ E( v) V( x2 u - (ai_return ss))))9 |) ~$ k% {- e& W1 }# ]* Q
* Z3 i0 n/ ]% k& z+ N- ( (ai_aselect)) ; Use current selection
: J0 J8 h$ j1 i0 T, |5 R5 n1 e& U8 n - ; set or prompt for objects/ ^! n# |6 {0 S4 O" \
- 7 e5 O* d( d1 n) t( H. F4 m
- (t (princ "\nNothing selected.")
8 }) C4 h [! F, N" E - (ai_return nil))- f$ d; `: H/ H
- )
- R! _# A$ l1 x4 s: G" g - )% {: W& `9 H9 A) k6 Z. l7 s7 L9 I
- " S/ ?; ]( n" M# A; w
- ;;; Define command function.
9 \; X8 K* u) J0 @, G
! `5 s, y/ g# D/ x: v- (defun C:CH ()
* g( L& ^" E) N: E) ^ - (ddchprop nil)
, g( S1 j" r1 \- ~' F - (princ). G0 v0 A a4 Q2 t6 x
- )+ D) Y" v! v- W% |
- 1 W8 G. f' f @' ^0 W G3 I
5 n: ]3 ]" x* g2 x/ s7 B+ l0 p- ;;; Main program function - callable as a subroutine., E9 E3 k3 w7 ^5 V. i5 c/ z1 \- q
- ;;;- O+ |4 M" g: h
- ;;; (ddchprop <pickset> )
& G) w- k+ s1 B, D5 [+ ` - ;;;
& S& ^ P! R- Q( X9 n: @ - ;;; <pickset> is the selection set of objects to be changed.1 u0 p# t* A7 t/ D' v$ B1 d
- ;;;7 n* d+ p R7 {- g
- ;;; If <pickset> is nil, then the current selection set is" E5 p9 T5 ^, R5 B' J, Z5 r6 o e
- ;;; aquired, if one exists. Otherwise, the user is prompted
* m: I/ u) L- M& d2 X) k: U - ;;; to select the objects to be changed.
9 L& c" B( t- A, j% q. N5 ]! ~ - ;;;
. Z+ K4 \' S8 p - ;;; Before (ddchprop) can be called as a subroutine, it must, O) I' k9 f$ ^
- ;;; be loaded first. It is up to the calling application to
& G8 Q) R- }% T# W7 S - ;;; first determine this, and load it if necessary.
N* \$ s% `: e( S5 P; H - - |5 H% {( Z* z: P) u
- (defun ddchprop (ss /5 E" x; l0 Z" I! k- D
2 @) c* f: K$ ~( I/ v, J- add-mdash ecolor ltedit_act s& t, ?9 O, \' N
- assoclist elayer ltidx selset
; ?* h* t- Y# o - bit-70 elist ltlist set_col_tile3 _% [* T- _9 S/ A* k5 C
- boxlength eltype ltlist1
0 X) G+ y2 Z1 o6 y' _! Z7 j - bylayer-lt en ltlist_act sortlist8 B/ X2 H M; W0 u8 c. F
- bylayer_col ethickness ltname
% c0 P3 W7 Q5 j/ v" a7 U - bylayer_lt fchk ltnmlst sslen
1 @. n1 v6 U' S# m* t1 i4 W& E - call_chp frozth ltvalue templist
1 M, [, s; p# b \- G' a - chk-col getcolor ltype temp_color
+ c& z; @! K, b0 q) w; o - chk-lay getindex m test-ok6 b3 J7 n; v+ l4 p* R/ }
- chk-lt getlayer makelaylists testidx) x( J6 W% q: b6 m4 X
- chk-th getltype makeltlists testlay0 L, [7 `6 ^- d9 ~( i! {+ b7 x9 m
- cmd getprops match-col th-value& E$ O0 ^ G7 B( p7 f8 |
- cmdecho getthickness match-in thickness
, }+ J1 Q# V' K$ G/ f3 ]. V - cn globals match-lay tile0 L$ |7 y; p$ k( k
- cnum go match-lt tilemode
, E$ L; N( H9 c0 J- l8 [3 G - col-idx index match-th tile_rect% ]3 ]0 l {; z6 l. p2 G
- colname item match_col vi* E/ [4 W! ^" O0 Z2 @
- colnum item1 mdashlist vpf9 {( o. B: \1 H# T
- color item2 n vpldata0 ?2 B3 ]2 i" T7 ?" y
- colorname itemlist name vpn
) C6 r4 i4 I( j6 ^ - col_def lay-idx ncolor x
& s. R3 ]; d) q6 C - col_tile layedit_act nlayer x1
- O' H |3 S- z! H3 {+ e - ctr layer nltype x26 W4 a0 F+ J8 u3 P
- cvpname layinfo nthickness xdlist, y$ L7 f# ^9 Z/ s7 d6 b" A* p
- dash laylist off y
9 Z! f) J6 v) K6 P+ q - dashdata laylist_act old-idx y1& X+ Z+ a2 I e% ~ _- @0 C. j) P
- dashlist layname olderr y2* q% V+ k+ ~- p. V8 e* B! n7 g
- dashsize laynmlst on undo_init3 p3 _$ A$ N' u0 X
- dcl_id layvalue onoff0 L) x0 R, P" r. e
- linetype patlist( X9 C5 ~( G3 I# L8 x
- ddchprop-err list1 pattern
6 }! o! o1 F; E7 p! l$ A0 o- Z( ` - longlist proplist& s* W! P* \* o% U7 \8 t
- lt-idx reset-lay2 A% c. y0 I) b1 P) M6 U
- drawpattern ltabstr reset-lt
; y, }, q; z* A$ d, D( t' Z/ | - )# b: `- X6 [2 X
- : {# K! p* G- t8 O
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho/ Q% V1 k. J& L8 Z
- old_error *error* ; save current error function( Q. C4 e# x5 @$ X* B- T k
- *error* ai_error ; new error function. H$ A: g+ `1 O7 p
- )) O5 Y+ ?0 W1 c
- , F+ z9 X, M6 B0 |
- (setvar "cmdecho" 0)
% K! `2 K2 q q) ]% }. y5 w - 0 @1 d9 D" r2 N$ D2 K
- (cond: C. H) _; x0 h8 Z
- ( (not (ai_notrans))) ; Not transparent?0 q' Z% h, x3 u1 ]5 y! j- u# c# Q( {8 g
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
- F, G# ], ~8 [9 y$ f$ F- K4 @ - ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded? X7 k5 r3 q- E
- ( (not (setq ss (ddchprop_select)))) ; objects to modify?- {+ {1 [+ p* g. ?* o$ v
- 7 v1 `; ]9 L9 y
- (t (ai_undo_push): M! T3 N( g+ P4 S
- (ddchprop_init) ; Everything's cool,9 a9 J( z( h7 M! J! W$ G3 T
- (call_chp) ; so proceed!
3 ^1 j, D4 A- R; I0 \- @' e6 p - (ai_undo_pop)5 S7 S8 Y2 }) B5 Z, Q4 t6 }7 H
- )& C$ M8 L: V* u# A1 Y) p
- )
" ^6 W# L5 U8 f - $ R5 ~% Q1 h- i, c" l* G
- (setq *error* old_error)
' m8 t( R5 R6 m8 u6 V - (setvar "cmdecho" old_cmd)' U @# T3 q z2 S
- (princ)
) m k0 b% ^) l - )
4 y0 r) H3 i9 S - ( Y( Z3 @% j( F* s. N; `$ O
- ;;;----------------------------------------------------------------------------
% R3 A) a" h5 _4 x1 Y4 t: W - ( D4 q$ `% S; V. A, E: s
- (princ " DDCHPROP loaded.")7 c+ ~2 L$ ^0 v6 W& ?
- (princ)3 y* |$ B& y1 S8 w$ p% b1 t* P
3 k- [' v2 [ f# C3 y- ;;;----------------------------------------------------------------------------
# N* @2 p; r* K+ v9 D3 F7 V
f# [- r2 Z( Z5 `9 X- ;--------------------------------ddmodify.lsp----------------------------------2 h$ U7 W. D1 |$ n$ U0 ^4 I
- ; Next available MSG number is 111/ k8 P- O G4 @9 t( y
- ; MODULE_ID DDMODIFY_LSP_9 f; B" h6 p" `: ~: S- j3 X' Y* M1 U' \
- ;;;----------------------------------------------------------------------------
- P" [$ } v1 g' a - ;;; DDMODIFY.LSP% V/ j. p) P. m. W. x
- ;;;
4 q! ~. k' @: n. M8 g4 g - ;;; Copyright 1997 by Autodesk, Inc.0 r- _% w. h J* J
- ;;;
8 F J6 D! ~0 E3 j" q1 h5 g - ;;; Permission to use, copy, modify, and distribute this software
& P5 ^+ @9 T; l' X8 S3 E6 N - ;;; for any purpose and without fee is hereby granted, provided
/ O0 o. O9 |" M9 [5 |/ X+ p - ;;; that the above copyright notice appears in all copies and0 ^( T9 e1 l3 k% r" s1 Y
- ;;; that both that copyright notice and the limited warranty and
* i) Q3 b7 x5 _6 w4 I! s0 n9 a - ;;; restricted rights notice below appear in all supporting: Y: B) ^# I- @1 _
- ;;; documentation./ E5 [! q+ s: P6 t5 C
- ;;;+ m! B g( [; |8 b; |
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
' u$ J9 l; R- q+ D# z+ s( q - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
0 |( ^2 I/ V }) G% U7 f% @9 C - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC." e1 B" D, y1 L5 G# q- W
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE4 ~/ Y& U. Z7 V9 T
- ;;; UNINTERRUPTED OR ERROR FREE.
! d/ t2 j2 Q7 _( \$ z( n0 V - ;;;& o( P8 Q6 m: I* `. `9 i
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
0 G& m! x. m9 z$ j& c) u - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer/ z( p& T, U: X1 N5 a% W1 }
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
; h/ {6 t2 F+ _+ ~0 K p4 f - ;;; (Rights in Technical Data and Computer Software), as applicable.( r7 x& K% p& Q1 @3 b
- ;;;
9 w) U, @9 g# k4 _! | B; F9 n - ;;;.
5 B% ?6 |5 w# E/ X7 F; _ - ;;;7 w8 }6 ]0 \# h7 \( Z2 j
- ;;;----------------------------------------------------------------------------
! k5 Z7 A" s+ t - ;;; DESCRIPTION4 m# i c9 \* a" A
- ;;;
& }( O$ M9 O7 ^! K5 k - ;;; This function allows the user to get a listing comparable to the LIST5 k1 z4 U! [; J- R3 O/ X
- ;;; command for most objects. In addition, most object fields in the
+ y% I/ X6 l- Q L7 j7 n8 q5 o7 b - ;;; dialogue box are editable. Points can be specified dynamically by6 c7 r7 R' g6 Q; K4 g* @; n8 g
- ;;; temporarily dismissing the dialogue box. Each object has a unique
- m- r2 w0 q( @8 n5 w7 Q8 Z$ E; H - ;;; dialogue.. H% y4 l/ J; Y7 c; f% R5 T1 C
- ;;;. M; B J- d* K) h/ b7 W
- ;;; Naming conventions; y8 c% i0 L% w
- ;;; Long function and widget names may use an underscore "_"
- Z9 p& F* `' w - ;;; in their names to make them easier to read, long variable( O; H2 Q+ K/ B' t6 u) A# Z' b
- ;;; names use a dash "-".
7 x2 V! v' `5 k0 i/ D7 {( r - ;;;----------------------------------------------------------------------------: ?! q6 c9 L1 P, W u- z- T
- ;;;----------------------------------------------------------------------------0 O* L0 S+ i3 g* \. e
- ;;; Prefixes in command and keyword strings:* n9 g0 W% |) h
- ;;; "." specifies the built-in AutoCAD command in case it has been/ v. \) w' A* O. w% i0 o
- ;;; redefined.' X O6 z S: g
- ;;; "_" denotes an AutoCAD command or keyword in the native language& _; C2 s7 R [& g9 o/ g( F
- ;;; version, English.. j- t$ E/ K/ i, p
- ;;;----------------------------------------------------------------------------
& M* k) A+ |& ^$ J5 y5 Q" ^ - ;;;- m) B3 F2 f3 g$ C' w3 _
- ;;; Avoid (gc)s on load to improve load time.
/ Y+ u* V, q6 D+ m8 P, ` - ;;;& `! L% H/ A& Z6 Y R; Y8 c1 P+ w
- (defun do_alloc (/ old_allod new_alloc)0 }6 t9 t1 I& Z
- (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
M! R' A9 ~( }( v) k - (expand (1+ (/ 17000 new_alloc))) {' X9 Y% F& t1 W: H
- (alloc old_alloc)
9 \* X- {* c& x2 w- g - )" G& W% I& p G! u. z* n
- (do_alloc)
4 S4 q G; U+ w - (setq do_alloc nil)
/ H- Z- q8 `1 P7 V. T$ J4 C
' f& b% A2 a" \' V: P- ;;;" G0 j, t5 k/ G0 }$ k- r* M2 d$ q
- ;;;
" A) r. z9 ?% O - ;;; ===========================================================================$ i4 b6 y. d3 y- O" M+ G
- ;;; ===================== load-time error checking ============================
# B) f4 C3 ]0 c7 Y
' Y+ ]9 ]6 s& M( c6 F1 b! @- (defun ai_abort (app msg)9 |) F% [( {! p4 [
- (defun *error* (s)
6 h) \: l5 Q5 E. b( {% k: R& T% M - (if old_error (setq *error* old_error))
& d+ r' Y7 c2 A- C: w9 p0 A - (princ)+ g" C% o6 m5 X3 H( U1 f
- )' b: n" ~. e. x4 {4 G7 J6 c
- (if msg
+ [' I+ T. B6 c8 f - (alert (strcat " Application error: "
6 d- O( Y8 O- t; y6 j/ x% m - app ]; A4 c% u5 Y* Q0 |
- " \n\n "; u7 V! S9 L) G9 w1 ?! r0 f
- msg$ Z/ H! A' z+ b. K2 ? M4 Q( z5 z
- " \n"1 v) U! J" T/ V' s; y
- )
I) t0 R# I+ ]* E3 i- b: X. x - )5 Q1 ] w/ @3 V5 _
- )- w! y& U# ~$ G1 {* d; c" f
- (exit)
0 Z; X1 Y1 s; Z5 A4 O, x9 y - )4 s8 A3 v6 ~" T7 n
! x9 G, v( A/ k7 |& h$ ~- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,- f) S8 S0 g5 d, t" n
- ;;; and then try to load it. If it can't be found or can't be
3 T7 ?: b5 m, W9 n6 t- a - ;;; loaded, then abort the loading of this file immediately.
5 ?7 G( p+ i- ` - ' J, s& @! h* I
- (cond
# C+ P. p. |/ W( P0 r - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.0 |& o9 C; ?4 b T8 | I, X* l
' f ~6 t5 q6 a) D- ( (not (findfile "ai_utils.lsp")) ; find it1 X; r3 {6 E8 c
- (ai_abort "DDMODIFY"3 U1 C d& r& ]' o6 `
- (strcat "Can't locate file AI_UTILS.LSP."
- a3 H& p2 l+ q$ E - "\n Check support directory.")))
; z$ U" k/ H# \
# [ a+ a/ k7 l- P. w i- ( (eq "failed" (load "ai_utils" "failed")) ; load it
1 q* P- M" I) y. [ - (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP"))$ w6 R/ X2 m' D- ^+ A7 ]& W1 ?
- )
: i/ B4 l' k6 p- [ - 3 E* R& Q# H' q; E, n/ U" ~
- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can% d- @" s1 R& g j+ x, l+ `2 O! x
- ;;; be assumed that all functions defined therein are available.' X( N7 ]& v9 L" G2 t
- 6 B& v* f3 c4 \: U% k' e
- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort
# |+ C, N1 R$ X- q& E9 {4 U - ;;; if the file can't be found or xloaded. Note that AI_ACADAPP7 \ C9 o; V+ X$ G
- ;;; does not abort the running application itself (so that it can' X/ w+ S2 n; @0 z; u; \9 H
- ;;; also be called from within the command without also stopping6 S; E3 v' m1 ?* v, K6 w+ j/ C+ O
- ;;; an AutoCAD command currently in progress).
0 C4 A5 {: G' E) E, c - ! f' N: ^$ h- u: Z- [$ O
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP, a, m- D6 d2 X8 r" U% \
- (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses6 f" ]) K9 [ D$ Z8 G, o
- ) ; ai_abort's alert box dialog.
7 v2 G( x* y% R* L. g( N - 5 z2 f+ F7 W+ ]8 l: C! ] O
- ;;; ==================== end load-time operations ===========================
0 ^6 F- j$ z3 @0 s9 ^* L - 4 @5 m6 e7 O& n* S. d* l
- ;;; global variables6 h7 O; R! O4 I. t4 l7 @0 f, |" P
: [9 N6 I& K A: B- (setq hatch-elist nil)7 p2 u0 h b8 y; u- n9 Y
: E+ j- S; w5 W; z* j- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are7 b8 o$ l/ E/ V& w
- ;;; assumed to be available.; f: D( D- o. N) |/ F6 A
2 i* T7 C% \ ~- ;;; Define and encapsulate all subroutines that are declared7 T* P. y( r8 B
- ;;; locals of the (ddmodify) function.
5 N/ A8 J* ?, p2 e
6 f- o+ }5 g' o( V8 X. b" O- (defun ddmodify_init ()' Q! d5 u0 o, o R# }! v3 k
- ;;
- `7 e- ]- B7 g4 u |3 H - ;; These three functions modify the enitity list for common properties. Since
- @/ g. G0 y- L4 ?2 b - ;; color, ltype, and thickness are absent from the object list when they are' `& [, W* ]9 x; h5 }+ {
- ;; set to their defaults (i.e. color = bylayer), a simple substitution using
' a% t' V" W i - ;; SUBST is not possible.. n1 c% q2 ?; m$ k
- ;;
, {4 ~- T. Q( U* G9 S$ D. i; ^ - (defun modify_properties ()
4 Q S' L" E: o3 } - (emod ecolor 62)! D, \9 B6 I' Q+ k
- (emod eltype 6) k4 _4 ]; S( ^0 _, _9 @8 e- G# A
- (emod ethickness 39)3 \3 y7 H9 K/ j3 o2 A
- (emod eltscale 48)
/ d- E6 A/ G% n - (tempmod elayer 8 nil): V' I4 d1 {' N) @
- )
( |2 N" }) r1 x; C. H0 k7 } - ;;% O$ Q" N: q1 a0 g" x- x5 l
- ;; This function is used for modifying common properties of the ACIS( r+ Y7 f8 k# D
- ;; based geometry objects. Thickness is not valid for these objects% n$ W; \: S6 w1 A
- ;; so it is left out.+ i, ~5 o `1 l, [
- ;;
8 H' ?$ i, i& R+ t - (defun modify_prop_geom ()
1 t$ V9 G; c0 E2 S5 _$ g% t - (emod ecolor 62)
v7 P7 W& U$ u - (emod eltype 6)) }0 D! Z2 w6 ?5 B/ y$ Q; t1 m
- (emod eltscale 48)2 j3 a/ q' a; w! X, v
- (tempmod elayer 8 nil)
; g( |" N! a/ w - )+ N* L( B6 c! Z& x; `$ E4 r7 i
- / e" E- j* k5 X* T" E
- (defun emod (value bit)
& [/ |( C0 a( K. q8 g8 g - (if (= bit 62)
/ R* t- ~7 C, A0 T( y - (progn
2 Q# a; o: a0 r6 t8 p1 u# U+ D& m - (if (or (= value "BYLAYER")
) \; O5 \6 ?& p7 A& L3 e' l - (= value "BYLAYER")) (setq value 256)). t. F5 q; _8 s
- (if (or (= value "BYBLOCK")! T8 T4 H( Q! l) K6 i8 ^0 u
- (= value "BYBLOCK")) (setq value 0))7 E4 a1 G# I+ }" }) N, V
- )5 R+ F: l8 N0 z+ T' H
- )
. L! R; b* z# g7 z6 \4 ?6 o - (if (setq oldlist (cdr (assoc bit elist)))
% ?- l& A9 D( m `: u+ E - (tempmod value bit nil)
# q: d* w, ~# q( z' k - (setq elist (append elist (list (cons bit value))))/ |8 G& Y. y: \; [# Y7 t1 F
- )& Y8 ^% ?# e% U4 ~+ k# S) ?
- )
6 M: U# w4 t: F* J D; m6 J* B - ;;* A# w) d9 \( Q# v! I* K
- ;; Resets object list to original values. Called when the dialogue or
# @! L+ k1 R; I8 @1 d0 o6 g - ;; function is cancelled.
, C# C, M. x7 o - ;;
- o- L& V) ~4 Z- P) R - (defun reset (): Y/ n* W$ p( Z$ a
- (setq elist old-elist K' f7 q+ K: d2 t9 \3 c: {. S! U
- ecolor (cdr (assoc 62 old-elist))" U+ j% |: r* I; J, \ v3 W( E
- ethickness (cdr (assoc 39 old-elist))3 {0 |+ r p4 C% V
- eltype (cdr (assoc 6 old-elist))
3 b) y( {% ?) z" C - elayer (cdr (assoc 8 old-elist))8 Q: v& |' g" Z5 c% B. |8 r3 }
- eltscale (cdr (assoc 48 old-elist))
% r' y, g: |) T" F! j8 ]4 g - )
" R+ v' p, \. D: u - (if (not ecolor) (setq ecolor "BYLAYER"))
0 r6 ~1 }- |2 e4 | - (if (not eltype) (setq eltype "BYLAYER")), L; L1 _* B5 E6 u% b: n/ J
- (if (not ethickness) (setq ethickness 0))
8 f; e+ P' E- i: ^ m - (if (not eltscale) (setq eltscale 1))& _! W9 [9 g1 S0 O
- (modify_properties)
& G k& G( n. r% R- p - (setq reset_flag t)9 f$ N9 h6 q, f5 S1 D
- (entmod elist)
) M; d5 I T2 V$ v - )' ~. Z/ _/ W- ]0 n) X
- ;;
- j2 G: L8 F+ \' Z( m" W* M, M3 N& z - ;; Modify object when dialogue is temporarily dismissed to reflect latest
9 U# V: x% R) ?& h - ;; settings of dialogue. It converts the point from current UCS coordinates to
' r% }* ~7 X3 ^' Y9 t% M( Z: k - ;; the proper object coordinates (world or object).& Q) V8 w* U) _1 i' ~
- ;; i' j7 x4 o1 _
- ;; Arguments: value - in current UCS coordinates5 O0 S& ]6 D5 ^8 O3 b; Z2 I* M
- ;; bit - object code (i.e. 10 for start point)
" A2 w2 h' ^. {) F: g6 O - ;; ptype - point type 0=world 1=planar
6 x" D2 M' g* _1 k3 L - ;;
& ]7 N- J$ Q: k2 b - (defun tempmod (value bit ptype / newpoint)
5 H6 j& s. ^. `+ O - (cond
) Y( P. Q; d: |: [; ^: L3 n - ((= ptype 1) (setq value (trans value 1 ename))), S. P2 D2 S5 I3 |
- ((= ptype 0) (setq value (trans value 1 0)))
0 y, H$ W4 @ u' s5 \8 A! \+ H - )/ O% [% w) d! A( R' {) O! p
- (setq elist (subst (cons bit value)
. I: f }2 D6 N' O. P, K7 `; Z/ b6 A - (assoc bit elist)5 {' E$ J, P" k$ T3 {" b* K
- elist7 Y+ c0 s4 @* R4 p7 N0 u' c
- )
: B9 ?0 f, o( H6 G - )
1 ?- _2 r* H- X5 K3 x& e5 l - ), ?; _( @' t& K+ Q) W' t
- ;;3 E" d% r$ Q) O4 p
- ;; The following functions are called after a dialogue has been temporarily
9 l% v1 A8 p3 m7 t8 |2 q - ;; dismissed and the user is selecting a point. If a point is selected the$ L7 d/ O# A* d! _! L6 x/ ~
- ;; object list is modified and new X,Y,Z values set. If no point is selected
0 j$ j4 H" ^9 y V. _ - ;; (null response), then the point is reset back to its previous values.
" b3 R; B! Y* {+ F. G* l8 K) K - ;;
1 ^8 V8 H+ _2 n- U) ] {. j - (defun ver_pt1 (ptype)
- ^, Q5 i5 z ~ - (if pt1: H4 d1 W. J* v0 [, k2 V
- (progn+ t; N- W& B/ m$ j- w: N9 S
- (tempmod pt1 10 ptype)
4 Q. \- [/ i" y u) r# E - (entmod elist)
. n; w* F% {8 G - ); W4 t8 c) D& n7 {+ t$ n& W3 [( ^
- (setq pt1 (list x1 y1 z1))
$ h, ?8 i, T& N; G2 Q: ?6 F( m& c4 ` - )2 J+ X" d# U% ~+ P0 H
- )8 D' p& J3 C& u J
: o- D7 ^, Q4 F) G6 R* Z% j% A1 u- ; (move_pt1 <ptype> )6 N5 Q( k, }- s0 ]$ v# o5 t* R
- ;3 @* p( }( o# W# o
- ; Called in liew of (ver_pt1) to translate block insertions which3 G" q/ w1 B- X+ n
- ; might have variable attributes attached to them. If the distance
p: j8 a" T! @7 b S+ F+ M G+ m - ; the block is to be moved is < 1e-6, the move is deferred.
4 M) {$ E7 f6 W8 ~# K3 _
+ @3 q% d+ K' W* o0 J$ x# K- (defun move_pt1 (ptype / basept hi)
. w1 K, W v0 Q& p; c! { - (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))( }/ A+ r, t+ }: L# O
- (cond& V. {9 e7 R" s) t; {. O- j; @
- ( (not pt1)# \4 n. A/ S7 R/ t" [
- (setq pt1 (list x1 y1 z1)))' j; O4 h8 _) C! m! U
- ) V3 Y3 H2 g4 Q3 ]
- ( (> 1e-6 (distance pt1 basept)))
, v/ b7 t: A5 s6 c5 U; H( D7 S - 8 _4 H5 O* F. I8 ?
- (t (tempmod pt1 10 ptype)
! r- M0 n a! k! G: L - (setq hi (getvar "highlight"))3 L4 q3 ^0 {0 {1 q" j B2 G5 D
- (setvar "highlight" 0)
* M7 C! L; s% [: l - (command "._move" ename "" basept pt1)# p; C7 G/ k( ^7 n( G: V
- (setvar "highlight" hi))
# B/ X0 X) ?% | - )" n6 c$ m! Z0 y/ X2 L
- )6 p, F1 K$ B- [7 i8 K7 Z. Y4 f- |
1 h8 W8 x3 T4 I1 M! R% z- (defun ver_pt2 (ptype)
5 d5 \7 i; m7 G4 Y - (if pt2
$ z2 Q& O( S4 w# q6 ?6 }6 Q! a, g) Y - (progn
0 }8 v/ o2 n- S3 l: g) f6 ~9 } - (tempmod pt2 11 ptype)
( t7 t! b8 I& v G3 n8 N, p# V- j - (entmod elist)1 `6 w! l# e# t/ m [. K
- ) [# _$ ]; i; e7 S0 [8 y
- (setq pt2 (list x2 y2 z2))
- P3 G6 l# F# `; @8 ~8 [; z - )
0 R2 F' b) G1 L0 L - )
2 ^# i9 {+ ~) D
5 z' _) l9 j, d3 S, Q# z" ?( T- (defun ver_pt3 (ptype)8 R% n3 G7 W8 q
- (if pt37 V4 f0 j5 f8 ]7 x: ?7 r* l9 T
- (progn
/ o4 \4 P$ p- m& `$ R; U - (tempmod pt3 12 ptype)0 V) _/ x$ L0 v6 F' P) Y' f! F
- (entmod elist)
1 p2 }. ^4 Z6 b# R6 R - )
$ t0 \* w2 r7 H; }! ?5 J3 f - (setq pt3 (list x3 y3 z3)): h- |: U; k" P. W6 b9 ^
- )" J7 {! I1 K% B" S5 n! u$ e
- )% X0 T d" T1 ^, N6 P% a
- ; n/ S$ I1 s. m0 |
- (defun ver_pt4 (ptype)
& G0 U# F% ^& I0 b H- P - (if pt4
# ^8 N8 t8 M0 y* g - (progn
, T2 [- d) T1 A+ t8 {, h( w - (tempmod pt4 13 ptype)" O1 t2 K; J0 x
- (entmod elist)
0 X& O% R1 u8 {5 `7 z - )) \. I" M; V0 P, I; x) O
- (setq pt4 (list x4 y4 z4))5 {+ A/ K V' Q2 c) V3 y
- )* H4 n; h, X& q1 h7 q
- )
$ b6 J1 E' K# |! [& q - ;; Xline/Ray; W0 T0 k# |. _" S( D- _( @/ j
- (defun ver_xline_pt1()( w; A/ i& W! ~ t9 S; p. G
- (if xline_pt14 m/ z* D+ K" r
- (progn9 G+ V4 B& ?$ T% T, c
- ;; convert to WCS.& L0 w5 m0 j/ U+ j$ i" P+ k% q
- (setq value (trans xline_pt1 1 0)): I: G' `: T0 t. ]4 z" `
- (setq elist (subst (cons 10 value). ~6 l3 C6 l: J
- (assoc 10 elist)* Q3 M1 n0 P" |7 g0 w
- elist
- Y0 k$ u8 g+ Z5 a& z - )
. v8 q5 }; N8 o - )9 g7 a& B" e; {/ `
- )
) |/ R" F0 _% S' j: |1 a - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
& X( W4 o3 j; d6 Q( }) v$ S - ); y5 W7 s( E: i" k& l/ z% Q
- )
1 a; B1 i9 y7 v" B: S: G6 Z8 z - 9 p5 |' J/ t. z: @6 Z
- (defun ver_xline_pt2()
5 R& L- o8 J3 m! m& F! p. i - (if xline_pt26 x+ Y) W( O; U B5 I O c1 G# O
- (progn
# m4 x1 M2 o { - ;;
5 P/ g1 D8 V; _/ @9 t* v - ;; Calculate new Direction Vector WCS4 Y3 i% a% O _1 |
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))# [! \5 R9 C0 {1 w! _: l
- (setq temp_dir (trans xline_pt2 1 0))
) g* I% Y# ~& x - (setq temp_dir_x (car temp_dir))- D8 {' s; i1 y& U' T! A- f
- (setq temp_dir_y (cadr temp_dir))8 w+ _ ]1 V3 c z
- (setq temp_dir_z (caddr temp_dir))6 V' J- L7 Y9 w8 `
- % l, Q+ L; G! W3 B4 |1 o) Z% y
- (setq temp_xline_pt1 (trans xline_pt1 1 0))8 P! p" w! i+ v. Y
- (setq temp_xline_x1 (car temp_xline_pt1))
7 f2 R# v# X: K7 v; s# W: \ - (setq temp_xline_y1 (cadr temp_xline_pt1))
5 I$ ^8 d E+ R, t+ C* A - (setq temp_xline_z1 (caddr temp_xline_pt1))
2 `3 {( W3 h4 \9 ^; m - 4 q9 R& w# ^! ~# V/ {. k
- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)1 h3 d2 [" `1 u5 u
- (expt (- temp_dir_y temp_xline_y1) 2)& y+ i6 [( n0 `. z3 ^
- (expt (- temp_dir_z temp_xline_z1) 2)
, {. |9 |5 P( a6 k; i - )))
: g' \% Y( a7 [# u; g - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
/ a- y8 j P) N. k! p- O7 P - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))6 J' I+ G4 F, l$ d4 J* B: u
- (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom)): q7 {+ R4 G# [! l {7 o! c
- (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))9 G: Y1 P, E, D- R# q0 ~
- (assoc 11 elist) X( n* H+ `2 w1 [2 T$ J, f
- elist
% V1 V- h# A9 } l6 j7 x - )9 r9 \$ y! |9 L/ O- A& s
- )# q' E( `% P" q1 u+ E3 U
- (entmod elist)
$ t. ~9 [/ m8 t' R - (setq xline_x2 (car xline_pt2))
3 Z! `1 A: w) k) s5 Z - (setq xline_y2 (cadr xline_pt2))
" _5 X4 y8 M; Q; ~3 h - (setq xline_z2 (caddr xline_pt2))
& c4 D' @( v# }; u1 @. t
- G6 ~4 M0 s" W& @
; A* }2 O, w+ u3 C% c C- )
+ K% U" u! o% H3 U r! S/ } - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2)) q5 X5 ]7 i8 L7 n/ y/ q9 k
- )' U2 u# X9 q" }$ b; o8 Y/ l) E" n& X
- )+ b# S) O* h# m' F5 ?3 |/ U) _9 e
5 x6 g1 f8 L7 T, {' a5 z- ;;
: }3 K( Q7 R6 g# x2 _ - ;; Common properties for all objects
5 J4 \2 `4 y" C/ }: L5 c - ;;
t$ u2 o% j3 V( U - (defun set_tile_props ()
: W' R1 R$ ?- k - (set_tile "error" ""), {1 r4 X' H- }- p
- (setcolor)5 b6 Q! U8 T4 z: _$ H [
- (cond" x( ?) |, O6 p( m, e
- ((= eltype "BYLAYER"). w' d# N8 q" ~% ]; B- H
- (set_tile "t_ltype" (bylayer_lt)))
; W5 A. y2 K6 ^0 q* N8 }; { - ((= eltype "BYBLOCK")
" |4 K$ Q# P. _" n, L3 h - (set_tile "t_ltype" "BYBLOCK"))
' K5 g9 g' R! O @( | - (T (set_tile "t_ltype" eltype))
; E7 e( s d, }: J7 T0 t9 X - )' w+ @; I' z5 M
- (set_tile "t_layer" elayer). E* f$ d6 A+ D; S) Q" h J) w
- (set_tile "eb_thickness" (ai_rtos ethickness))- B5 B7 F2 }* s# ?
- (set_tile "eb_ltscale" (ai_rtos eltscale))$ `% H+ v1 R- I$ ]
- (setq which_tiles (ai_common_state etype))
* p3 o: E# W: r; `: X - ;; Disable tiles if need be...( M6 y8 u' H$ p/ P* B5 {& c2 Q0 e( `
- ! P. P# E' T$ D& k, E) U/ T
- ;; Layer Button and Text Field
* j r4 u% {2 T+ z' @8 c+ Y - (if (/= 1 (logand 1 which_tiles))7 F5 h3 e6 H' F* s6 T: e. ^
- (progn
8 U6 q( z" F) ^' r; c# M - (mode_tile "t_layer" 1)0 m9 k; ]: F Y; k" ~4 A
- (mode_tile "b_name" 1)$ Q( k! I# w/ d7 p
- )5 a4 ^- R4 W0 V9 J& o9 s
- )
4 A" b, \4 W* }* { - ;; Color Button and Text Field
: @2 i2 _0 L4 [; o8 K6 y - (if (/= 2 (logand 2 which_tiles)). U& n0 _4 B4 r8 T1 w) w, L9 ?
- (progn- I$ ]" C6 `6 V; u
- (mode_tile "t_color" 1)
. l" l" ~% { B - (mode_tile "b_color" 1)' ~: _7 ?$ {& `; X; y( R
- (mode_tile "show_image" 1)
S7 X, E% ~$ E% E* s - )
) V7 W( `; O6 U5 x" F& j; ~ - )8 m; U8 L7 e7 E8 j; Q- |5 i+ @6 U
- ;; Linetype Button and Text Field
r/ }" d; }6 U: W0 r& Z" } - (if (/= 4 (logand 4 which_tiles))
5 I: o( |+ P/ W) W" E+ i; C - (progn
3 ^* K7 E8 r, p" d+ V4 J8 W - (mode_tile "t_ltype" 1)
1 u" y% [/ ]6 q2 ~+ E- F+ R - (mode_tile "b_line" 1)
( e$ F g: E/ _ - )
6 @% c' I$ C3 i# W8 P! f9 T( W - )5 m5 x8 z1 k3 i& C
- ;; Linetype Scale Edit Field
& v6 C9 t. O9 k% T. \7 _ - (if (/= 8 (logand 8 which_tiles))8 O6 y# j { w" }( ?" M
- (progn# m+ Z4 p( X V- V9 S$ S
- (mode_tile "eb_ltscale" 1)! a$ i8 m; D; H
- )
3 E$ Q1 q( e4 l9 y) Z0 f$ ~& j6 k - )( O2 h# i5 w: P$ {0 _/ u
- ;; Thickness Edit Field.2 c, ]% M$ W' G. S2 Z7 y
- (if (/= 16 (logand 16 which_tiles))+ }* W% S- D3 N) q4 r: l
- (progn$ a# b" w! Y4 T
- (mode_tile "eb_thickness" 1)
' y: F/ J( c9 H8 m Y' `; N! ? - ), r: ^0 [: F. s0 x' z5 b1 `. F2 Y
- )9 C8 P# ]! E+ i4 ^; b
- )
% ?- `% J d. b# i) n - ;;6 O4 g# s4 ^ q: S1 Y" d M
- ;; XYZ Point values for all enitites
1 M! A) M0 e" U" d% M4 J; u - ;;5 B$ }+ f& ?" ~
- (defun set_tile_pt1 (ptype)' h% F' v- ?$ \4 Y$ Q: U* l
- (if (= ptype 0)
, E4 r& N+ X9 _; @; ?0 ]% b - (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))
, }0 K, {+ F9 Y7 ]: ~1 @ - (setq pt1 (trans (cdr (assoc 10 elist)) ename 1)). R; z7 b2 z6 z. x
- )
2 U. S9 B$ `! F/ Z; G$ I - (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1))))5 p0 d8 O0 z5 G* a% n9 e
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1))))! z0 {/ F% g. j( u7 m
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))
. q+ }' ?5 _* u4 w$ g" J& Q - ). b; K$ U$ v% Z6 ]$ y
- (defun set_tile_pt2 (ptype)- T8 Q( I& M* u: Q5 c
- (if (= ptype 0) S9 [( P, c* L
- (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))
9 c% m5 [1 `2 x5 _ - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
; |+ M# \3 o1 i3 M" D$ j - )3 i. @8 f$ K9 v
- (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))& E( d P2 ], W3 C% C) |# B
- (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))
+ Q t( S2 K% {* L( v) c; ]( l - (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))
: f; G. i9 l* {, B3 W - )
" ^+ Q) z& }8 d1 W( }$ X4 v& b - (defun set_tile_pt3 (ptype)
" V: d1 S) A" x. j+ a) @: B - (if (= ptype 0)
" }% h+ h2 F% H- K1 |) L$ B0 v0 k8 _ - (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))
2 ?7 L- \: p+ L, S - (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))
, Q K( |+ P2 I4 V, ~+ n - )6 k. ~% I3 ?0 G d. _; p" t
- (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))* w/ ]& E6 d+ I+ h6 G1 u6 ^
- (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))
" y5 ?" R" R* P - (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))
8 w2 s" [0 n6 }: Z4 q - )# [% p7 Q+ N& X$ F# j
- (defun set_tile_pt4 (ptype)7 }4 T( O! B7 Z6 y2 x
- (if (= ptype 0)
+ k& e& a3 l7 Y- s! d - (setq pt4 (trans (cdr (assoc 13 elist)) 0 1))
0 T3 b2 H( w- U$ M - (setq pt4 (trans (cdr (assoc 13 elist)) ename 1))
$ Z% P( x" V+ }! T( R1 x: D - )
/ F) I! {( }9 M4 v% k8 E2 m4 | - (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))# }; [; T( V9 M: O1 F* `: i
- (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))
" W! [8 d& k4 }! Q: i& f - (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))
; U/ A/ [! F1 F - )% _- j% E( h) B. M$ w* q2 y
- ;;
1 @% H0 U/ S& N) v6 V/ | - ;; Xline/Ray
* {2 e, v8 t" \! I9 d9 Y/ A - ;;
5 _/ T9 j' O4 @ a2 z - (defun set_tile_xline_pt1 ()8 t# @ }% e, n' i/ o
- : q( s4 E8 g; ^% W/ H4 z) r
- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))
7 A8 h. Z; o( } - * L0 C# e# h! j! W
- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))/ c5 S) j7 n: J. d- Q/ P
- (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))
8 e5 U; G% Y3 B g - (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))4 r8 j$ U, ~3 X8 e7 p) g
- )) i, ?8 ]+ j6 j/ c" K3 ]
- (defun set_tile_dirv ()3 ?: E! E# a4 Y/ |+ b% V
- ;; Convert 11 group to local UCS (displacement)
W1 M& a5 C0 y8 z - (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1))9 i# X: _$ @0 f
# Y: p# x' t1 G, [- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))
/ p5 h+ t4 k2 G' d - (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))9 W/ c. q3 a0 w- {
- (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))/ K! p% J7 b% q4 Z
- )
6 |2 t, B0 v; i* k; y( j9 @! ^ - (defun set_tile_xline_pt2 ()
7 d/ h- L/ T. j5 f, u - (if (not xline_pt2)3 {4 f2 _8 U4 w
- ;; Initial second point is Root Point + Direction Vector
7 O# d, J6 l5 R: x - (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))7 K+ n3 s' R) {1 g7 n; T3 J/ V
- )
7 A7 v% v) c4 u% P" j( g) v. p - (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))
$ \! |) v- W. E4 p. y% w - (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2))))
* z- S4 ?9 \2 L( `# ~ - (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2)))): z' | {' u/ i) A q$ R
- )
2 ]$ n' B5 I" V# s) K; X, I
! `. T3 C( Q- Y$ M- G9 }1 H- ;;3 }# U9 M, a4 V R. f: r, [; n
- ;; Handle for all objects
& a# e. [" [1 m+ O! L - ;;! Z& y8 C H) M9 c: L' D7 X, A
- (defun set_tile_handle ()) D8 O$ a1 K! b9 a5 O! j% P! v
- (if (setq hand (cdr (assoc 5 elist)))* E1 U& o/ [; k: l+ F( F8 P
- (set_tile "Handle" hand)' N% i/ T( d' O: V
- (set_tile "Handle" "None")
8 u& b! y7 t( g, w4 U% F8 M - )
' e! r: c6 l; w - )/ }7 p% P T, c9 ^0 a, \
- ;;
9 f0 c8 s$ V) Q" V% r7 ~' H - ;; Radius for ARC and CIRCLE
' ?" p; c& g5 R3 _ O W - ;;
$ P; h) C3 u, _. l/ d - (defun set_tile_rad ()8 v8 m1 q6 u2 B# B
- (setq radius (cdr (assoc 40 elist)))/ c2 w P5 s/ g! w" y1 A7 i
- (set_tile "radius" (ai_rtos radius))8 W6 L( Y9 b. W5 Q
- )
' F6 \* I2 D' Q$ ~& V - ;;
4 ~2 m2 ~) ]1 |0 ?4 [ G - ;; Start angle for ARC7 j" m" t1 k" v, A
- ;;4 x6 q" m8 Y8 |
- (defun set_tile_stang ()
' m0 q4 g$ v, l& p/ _ - (setq st_ang (cdr (assoc 50 elist)))
, {( }/ U9 c4 S3 ^- }- j" f5 x; ^" R - (set_tile "st_ang" (ai_angtos st_ang))
. k0 S8 n" A4 _6 n% \$ z. P - )0 L- ^1 X6 ]# x3 E
- ;;! C* P" O7 z! H7 s5 T+ ?0 z
- ;; End angle for ARC. s! `% ~: j3 w0 K% C4 V
- ;;
' x- d' i# D4 f v - (defun set_tile_endang ()
; x ]. n$ S# D6 o7 ] X - (setq end_ang (cdr (assoc 51 elist)))
3 r* [) i- n1 I: E$ A6 i - (set_tile "end_ang" (ai_angtos end_ang))
! ]# Y5 b% ]5 r! A9 p5 {/ o6 y - )
% t, ?' v' k; F: A4 k" J- I - ;;5 ]7 R6 M" S+ G, d
- ;; Rotation Angle - Text, Attributes, Block insertions and Shapes
+ G. \ l8 ^6 w. U$ A) r' W - ;;( {, {! q0 z, @0 R) z
- (defun set_tile_rot ()! \2 w3 _0 G1 w' k$ g* F
- (setq rot (cdr (assoc 50 elist)))
/ p* Q: f" W( l) [ - (set_tile "rot" (ai_angtos rot))
" X9 M+ Q' n" [) O2 Y7 z - )2 O) x5 ]1 N% k- t3 c' V
- ;;4 z+ b% D* G& y% l
- ;; Height - Text, Attributes and Shapes
1 l/ u1 ~% E+ P* z, C$ { - ;;
" x' E9 B$ l5 T! I - (defun set_tile_hght ()
1 h" x, D( l" _) L; v, w - (setq hght (cdr (assoc 40 elist)))& K. d- H( x7 I4 c; e
- (set_tile "hght" (ai_rtos hght)), y1 b( C$ m# R2 t
- )# g( q3 ~$ _! u4 ]4 O2 K6 L2 y
- ;;' f: p! a, ?* M) f( F4 N" g
- ;; Width Factor - Text, Attributes and Shapes
; J' N# F3 Q+ M$ z - ;;
0 }' l1 p4 s) W+ e' {) b - (defun set_tile_wid ()
5 ^! g J; @' u. N, {! [ K } - (setq wid (cdr (assoc 41 elist)))" W. P( ]6 J: V' r) w
- (set_tile "wid" (ai_rtos wid))
* H$ d1 _8 D" n F: F - )( ~% c, }5 {( L0 r4 x* T6 Z
- ;;
8 U3 i/ a4 C8 F9 M* _3 f% c - ;; Obliquing Angle - Text, Attributes and Shapes, r. O' j1 R3 `# c. g% T
- ;;2 Q6 ^* o" [3 i3 t1 I9 N5 X
- (defun set_tile_obl ()
5 g5 @ M! g4 x! Y - (setq obl (cdr (assoc 51 elist)))6 e1 C$ Q& }% F9 f# Y* L! k
- (set_tile "obl" (ai_angtos obl))
' |7 |8 N8 S3 Y5 U& m - )0 ^4 Z/ Z x: m8 C; k
- ;;
! s; q; ~: I& q) i6 K% P4 C' I - ;; Text string
0 v6 v |$ |! @; f) V - ;;
( Y1 {% ]+ ]% C0 o5 j - (defun set_tile_text () f- A3 l8 Q0 [7 g1 }0 s, z# ~' F
- (setq text (cdr (assoc 1 elist)))
+ M- j3 n) A/ V - (set_tile "t_string" text)
4 ~, Z1 U; Y) W' |5 h - )
, d# p! y6 c: G) M( F# V6 V/ r0 l - ;;$ z, C6 `4 ]) q. B
- ;; Attribute Tag- `* [ s; S7 X/ B$ ]$ G
- ;;- U1 B$ e, f$ u% V( V: ?) q
- (defun set_tile_tag ()
0 Q( V0 ^& W: n/ w8 \ - (if (= etype "ATTDEF")) M4 N' ~! y3 R
- (progn
{+ Y: g5 H% i - (setq attag (cdr (assoc 2 elist)))
% `: J$ Y0 D# Y& B; P3 J - (set_tile "tag" attag) k) S' f0 @+ f( B
- )" j& T: ^' Y0 u2 r r7 x$ A
- )2 Y! h3 [3 ]- ^
- )( L# V; V* ]7 Z; G0 C x
- ;;
9 l, }+ |9 N$ N$ ]% n4 w- v3 F - ;; Attribute Definition
$ q; O- O+ G" | - ;;4 q0 N6 W6 E8 T
- (defun set_tile_prompt ()
! d/ E% `0 u, G) ]! y - (if (= etype "ATTDEF") v0 R ?. M" W- S" U( s$ C2 q
- (progn. x* w* A. }: `( d/ q
- (setq atprompt (cdr (assoc 3 elist)))
% n- |9 g6 `+ U* u/ a - (set_tile "prompt" atprompt). M7 R$ x$ C. b$ U( ~) G
- )
% v& x) h! M% q - )
# d7 {1 G# L' B$ U0 | - )
& _6 z8 S1 w7 s& H7 z( v - ;;4 r4 r9 d) C" o0 B, K
- ;; Justification setting for Attributes and Text. Initializes
: i1 \4 y# o0 z0 s( r) L - ;; popup list box! E' @2 \3 D( l5 {# E% l6 e
- ;;
' b' \7 q5 [/ d8 |0 e& w - (defun set_tile_just ()
- {+ r5 B( I1 N& A - (setq ha (cdr (assoc 72 elist))) ; horizontal alignment$ W) I" A# z& }/ x1 V! A% R; X7 L
- (setq va (cdr (assoc 73 elist))) ; vertical alignment
3 F* u7 Z3 N! k% U" z) H$ @3 f/ k3 t - (setq ha-prev ha)* W, Y# e. j) b3 }1 a6 Z
- (if (= etype "ATTDEF")
* q. t! E+ i/ i# D5 d - (setq va (cdr (assoc 74 elist))) ; vertical alignment
7 }) \" U# ^+ t( b - )8 I% L/ j+ K4 f5 A: M. ^3 H
- (setq jlist2 }+ { R0 i9 ~+ g
- (list "Left" "Center" "Right"1 x! y, `+ x( a2 }7 m" F
- "Aligned" "Middle" "Fit"
6 }% Q; B7 T% ?$ }% U( p - "Top left" "Top center" "Top right"1 j* [! [- r) I. H8 O
- "Middle left" "Middle center" "Middle right"4 [) @, ~7 Q4 j/ _/ y' v
- "Bottom left" "Bottom center" "Bottom right"" Q% e/ O+ u# v `2 Q
- )+ P2 t; r4 P1 p2 ^) N
- )8 j, M7 X/ l: w: x% C0 @! F. p1 |
- (start_list "popup_just"): {* i. c7 F3 I7 L9 H6 x1 O# Q
- (mapcar 'add_list jlist)
* P/ f" V& p6 D - (end_list)6 K- [3 v, R& I" w
- (set_just_idx)4 M1 [$ ~/ l* x
- (set_tile "popup_just" (jlist_act just-idx))2 ^. k$ [# y1 f. d/ J% j
- )$ S9 d7 G' `! c9 D+ t
- ;;
: s w' V+ |2 r3 P1 i; q8 i t - ;; Style setting for Attributes and Text. Reads symbol table for popup list7 ^8 T) R" ^9 ?1 x, `
- ;; box.( }/ O' U# @% j) h' n1 S& m- h
- ;;
) o+ M; H* G0 E: C" F1 C - (defun set_tile_style (/ sname style-idx tlist)
: F7 j2 j! V3 H+ k; S2 m; s - (setq tlist (tblnext "STYLE" T)* b2 o+ g& W. M! ~! O" H( i
- slist nil)
, H# D/ S% I/ K2 I1 P6 s - (while tlist( i% ]/ p5 D2 L2 f* L, h6 F
- (setq sname (cdr (assoc 2 tlist))); M/ `7 D5 ^" `- L- d0 ?4 ~# v
- (if (and (/= sname "")6 S' V$ U. }8 C* v5 H6 `; U
- (/= (logand 16 (cdr (assoc 70 tlist))) 16))
& p O c% D7 A - (setq slist (cons sname slist)))
1 N3 G% H1 o. g0 i7 U - (setq tlist (tblnext "STYLE")))
3 G$ M+ v2 s! U2 u% r" h6 _& `' ~ - (if (>= (getvar "maxsort") (length slist))3 r; t- v; U: z c$ [
- (setq slist (acad_strlsort slist)) ; alphabetize style list
! X( E7 X) Q C; k& F# C - (setq slist (reverse slist))) ; or reverse it to put it in DB order" | ?' \3 f2 \- l+ ^# e
0 u+ M5 \* A* `$ A- (start_list "style")
) S8 X( E8 I) ]! q* w* z/ J, x - (mapcar 'add_list slist)
; R" L/ C4 o+ P/ z5 j$ B( ?: K - (end_list)
) y; y9 }% r0 J* e - (setq tstyle (cdr (assoc 7 elist)))
7 x4 b) |4 l2 ]/ i1 n, B - (setq style-idx (getindex tstyle slist))& u x7 H3 g% H, Y
- (set_tile "style" (itoa style-idx))9 R+ z) k. [5 K' E% X: z7 `
- )
' d" e) |" k5 Z4 D/ Z - ;;
0 U+ @, J# ^- A* Q: E - ;; Text and Attribute setting - upside-down, backwards
* _- Q* m; I" W# _7 R - ;;
9 _% S+ O1 e1 S) q+ A - (defun set_tile_bk-up (). C! a" I& F. S ?; p- _8 Y
- (setq bk-up (cdr (assoc 71 elist)))* c# a. k' K- `
- (if (= (logand bk-up 2) 2)
$ H K' m' d- d0 @$ m6 B" O - (set_tile "bkwd" (itoa (setq bkwd 1)))
, @8 z$ V, f( S/ P8 L) w# n - (set_tile "bkwd" (itoa (setq bkwd 0)))$ L1 E9 ~' Q: y
- )
! S! e) o0 P& A" m! j5 g, ?) ]1 H - (if (= (logand bk-up 4) 4)8 J/ a% {5 ?3 W5 L. H' w
- (set_tile "upsd" (itoa (setq upsd 1)))% g% j v+ c/ v. O) O( H
- (set_tile "upsd" (itoa (setq upsd 0)))
- u+ T+ C' y# y6 e6 r - )
1 j' O+ ]. x- K$ B: y - )
Y7 q% L. T Y* G8 B0 Q4 h( q - ;;
6 K; D% [* R% \) b' M/ Q4 _+ X - ;; Attribute setting - invisible, constant, verify, preset' x& |, a0 C1 b) v9 B; l+ J
- ;;
5 H/ g$ k4 o; ^7 E - (defun set_tile_icvp ()$ u; K+ M5 O7 I8 l ?& q+ O+ H
- (if (not (setq icvp (cdr (assoc 70 elist)))); ?! k( S. X9 u Y; Q9 v
- (setq icvp 0)$ s7 f# K3 h; _' K$ K
- )
" `% N4 f q3 ]7 { - (if (= (logand icvp 1) 1). Q! k4 A- ^% o# F8 A8 T9 y# g" b
- (set_tile "inv" (itoa (setq inv 1)))
) E2 Y8 U7 Q1 X1 B, Y3 C - (set_tile "inv" (itoa (setq inv 0)))
& Z+ B( D3 d b( l2 b* v) m - ) m; @& r6 }- Y! u0 R2 K
- (if (= (logand icvp 2) 2)
; O P; E, J$ L* a/ e. D* P9 R - (set_tile "con" (itoa (setq con 1)))
* O1 t' v! k- v - (set_tile "con" (itoa (setq con 0)))
! b' z! }2 q$ a- B6 q' l - ) S, r+ S( M! `7 ?" ]
- (if (= (logand icvp 4) 4)6 Q& w2 V; V @2 }
- (set_tile "ver" (itoa (setq vfy 1)))
3 j- e( x5 n, T. E- [! o. w5 } - (set_tile "ver" (itoa (setq vfy 0)))1 l4 \ x6 M+ {% u. a \
- )& X( g! D1 l/ K. B# Y9 x
- (if (= (logand icvp 8) 8)
+ w( K4 p6 B u! J) L" X7 M - (set_tile "pre" (itoa (setq pre 1)))$ I* x+ v! I* Y7 o( I( \
- (set_tile "pre" (itoa (setq pre 0)))1 U/ v. J' W) K) u5 \8 e* t0 W8 l
- )
/ L" p; }8 Q; j; [9 W( W/ a/ @) L - )) E( l i! \2 S* k5 x
- ;;$ h& z$ o( f( T0 w6 W* x
- ;; Scale factors for block insertions& [0 D ~9 R/ H/ \- a/ n
- ;; k( g a2 I8 H& _
- (defun set_tile_scale (/ temp)
( d: y! E' K0 z% p, ^ - (setq temp (getvar "LUNITS"))# @/ p0 Q+ d L
- (setvar "LUNITS" 2)3 X; M# J9 p1 J8 e
- (setq xscale (cdr (assoc 41 elist)))- r; ]! z9 ~( o* Z; h O0 D
- (set_tile "xscale" (ai_rtos xscale))
: B9 @! ~. D9 s5 X; G - (setq yscale (cdr (assoc 42 elist))), B, y( r/ h0 u& F5 d# a7 J
- (set_tile "yscale" (ai_rtos yscale))
2 D( N2 n+ S4 V - (setq zscale (cdr (assoc 43 elist)))
, T: Q# E. k1 y7 v% z; X - (set_tile "zscale" (ai_rtos zscale))
1 f8 D0 k4 u2 O3 m* a - (setvar "LUNITS" temp)
; \- _6 E5 V: f; Y& {! S+ [9 N - )
2 H- x( |9 }7 z1 k+ t7 m3 Q* D" B - ;;
" o1 S7 q; y5 I$ r* A1 h6 K) O1 [2 i [8 ] - ;; Rows and columns for block insertions, h |/ x! I7 v9 [- ?8 F4 V8 `3 h# t* O
- ;;" W! T& w) |) ?
- (defun set_tile_rc ()
8 v# h. |& P8 _0 \ - (setq columns (cdr (assoc 70 elist)))
4 t3 \8 Y& n, C. s4 S+ M - (set_tile "columns" (itoa columns ))
( v* w2 q; Q% O" q7 Q/ R, |& b7 T - (setq rows (cdr (assoc 71 elist)))
( t6 r+ i. s8 Y0 Z# O2 u+ Z4 O - (set_tile "rows" (itoa rows))) N% C& i( q& s" a8 @8 u
- (setq col-sp (cdr (assoc 44 elist))); e% j* U! {. _7 K( a
- (set_tile "col_sp" (ai_rtos col-sp))+ l0 f3 z. y; x
- (setq row-sp (cdr (assoc 45 elist)))
0 H# r+ X4 z0 X( u0 X - (set_tile "row_sp" (ai_rtos row-sp))
5 F# @( Z6 l! V# l3 H - (if (/= hasclip T)$ }- I) X8 y1 C v0 ~( {; C% R5 `
- (mode_tile "xcliponoff" 1)
9 }; o E7 P8 A$ o1 X+ Q9 t$ q" ^ - (set_tile "xcliponoff" (itoa xcliponoff))
% ~3 E" i2 D& N8 p9 b - )
5 E _. u3 v: j7 h1 A1 q- i, ] - )0 w; H6 K F& w* @0 T0 W* [
- ;;+ \% _% U' r# a5 G
- ;; Invisible edges for 3DFACE8 J5 s# c9 x/ _- c/ H! t1 N
- ;;; U8 V8 b. I1 s2 p) o5 h' ~0 h
- (defun set_tile_edges ()* Z% X! M- d; D# s- b( u
- (setq f-vis (cdr (assoc 70 elist)))
; O t* P7 I6 [4 y9 k+ I' A - (if (= (logand f-vis 1) 1)
* _- G5 l6 F% o7 Y$ U - (set_tile "edge_1" (setq edge1 "0"))
& J; `1 e d- x b - (set_tile "edge_1" (setq edge1 "1"))/ y& s9 t5 t `8 O* d. ?$ P+ Q
- )
8 ]% q6 w) n- d - (if (= (logand f-vis 2) 2)
* w+ K- m6 a A, F# v - (set_tile "edge_2" (setq edge2 "0"))
! t- N6 F" l3 \! I- L% m6 I ~ - (set_tile "edge_2" (setq edge2 "1"))
: J E$ j7 [# j3 F; i - )) _* Z$ I/ H( C: `
- (if (= (logand f-vis 4) 4)% {1 p8 b; V- P
- (set_tile "edge_3" (setq edge3 "0"))
, }2 |, ?& K' f - (set_tile "edge_3" (setq edge3 "1"))# h5 e/ D# G. m; V' r
- )- I$ k' B) h. S# n
- (if (= (logand f-vis 8) 8)
6 D# T# o+ B2 T - (set_tile "edge_4" (setq edge4 "0"))
; z# u9 u" T& e& \ a0 j - (set_tile "edge_4" (setq edge4 "1"))
$ h: r) ?: Y# r$ G% f - )
& |" r$ V& s; \5 \5 v - )
, F; R6 V, L( k9 E - ;;$ b9 X* u! t! _7 m
- ;; XYZ Point values for polyline vertex
! i0 u+ d6 A4 O4 d) s1 e5 c - ;;
) i# G9 d2 V; D/ D4 P - (defun set_tile_vpt (ptype)
+ N) }/ \0 B0 _, V7 c. X. P - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
q2 h) ~4 h' R% }, D - (progn# }# v% l# J2 x9 |) Q% p8 @+ r3 f
- ;; ctr is 1 based, vertices are zero based./ w6 ^ K$ ]- |0 i1 W% h+ f$ E
- (setq vpt (cdr (getLwVert (- ctr 1))))# ?$ }% c. [3 j9 W$ j
- (set_tile "xtext" (rtos (setq x1 (car vpt))))1 v9 j" @8 B: V# Z
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))7 K% `) `5 `5 F* Y+ \4 h) \
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))! W3 h8 C0 Z9 F
- )- d H+ @, Q" j# M% k7 p: I
- (progn
; @- l: S' p, ~6 m, z( C - (if (= ptype 0)3 B$ d2 y9 a: A4 J
- (setq vpt (trans (cdr (assoc 10 vlist)) 0 1))+ Q/ z T: \. F7 ?' ]& y* Y
- (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))4 N6 ?0 V# K1 U# s% h
- )
# \7 d$ O9 v0 i. S+ E
0 u6 Z* X' I! f) Q# Y9 K7 K- (set_tile "xtext" (rtos (setq x1 (car vpt))))
h# [8 u' x. @6 n( Y - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
: p, X e4 A2 z- }, I - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
: X+ w6 i+ e9 D# @ - )
* K- y$ B: _9 |+ {# X' Z+ I/ c - )/ `* Y/ ~7 n5 h9 a) v5 c
* w4 b: m* L6 q- )
- O9 v, {, Z$ ^! e - ;; This is the equivalent to doing an entnext on the heavy weight' |# O% }2 R& [, k. r! e
- ;; polylines. The hard coded '4' below allow stepping over the
6 l9 Q# h" ^) o; {5 g - ;; 40 41 and 42 group code information. The while loop finds the7 v2 g' I1 A1 c
- ;; first vertex which will be used as the starting assoc in the
2 F/ l7 u8 k0 T5 f - ;; call to nth.
9 f: z0 V% k. ~% n - ;;
+ |( A& J j- \7 q1 O - (defun getLwVert (tmpctr / count tmp)$ C9 ? E8 A" R4 x' J ~
- (setq count 0)) p1 G3 t, N0 }$ l; B
- (while (/= (car (nth count vlist)) 10)7 s2 O+ B" r( m0 s# H' T
- (setq count (+ count 1))3 B/ R, ~2 s" @4 ~! f4 I
- )
V& n a& d" w4 F3 P y - ;; If the counter reaches the number of vertices,; w5 r# ^' G+ Y/ M, R* k- M: H
- ;; reset ctr and tmpctr to zero again.% Y+ n1 ^3 `. E0 w% W
- (if (= tmpctr (cdr (assoc 90 vlist)))/ I1 t1 {1 l5 Q- a& s& H4 l* o# A
- (progn2 p, ?) t# W7 q+ v; I( |
- (setq ctr 0)% `. {, B) i5 I" _ F. V7 t
- (setq tmpctr 0)) A3 @+ D9 h. Y/ o
- )
7 a2 [4 Q; E& |7 Y9 N J' G$ N - )! a+ o' P* [: R' e
- (setq tmp (nth (+ count (* tmpctr 4)) vlist))
- `# N3 X# z5 _1 U1 O - (setq tmp (append tmp (list(cdr (assoc 38 vlist)))))
2 G( M# X( u4 r- e7 z - (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))
% k' K9 I: O) z4 b& R* y! V - (setq tmp (cons 10 pt1))
) \' m3 k6 G D3 V. H - (setq tmp tmp)
% V7 X% [8 A+ T+ x* \ - )2 ~# m$ I4 m+ G; i
- ;;* v' J- r0 }8 Y
- ;; Set tiles for Spline properties. If the spline is rational then we3 S; X' F4 l% |9 G: n: y) h- u* v
- ;; need to display the weight values of the control points, so set
0 B& h# @0 k8 c3 r6 X - ;; flag to 1.
( T: r. H1 T3 f - ;; 1 = rational spline
4 Q; f6 A: k3 f- ?' o# D3 H - ;; 0 = non-rational spline
4 c7 V9 X8 A0 t( a - ;;
0 z2 x5 D! w* B* O0 ]/ v - (defun set_tile_spline_props ()9 R! p* y5 D) O0 E/ I7 Q3 d) R
- (setq rational_spl_flag 0) ;; initialize rational spline flag- s8 J) t, @* P! D. ?+ Q
- (set_tile "Degree" (itoa (cdr (assoc 71 elist))))
7 r1 s3 T; r' E2 Q5 X/ L - (setq bit70 (cdr (assoc 70 elist)))
L) R; W U# d9 _ - (if (= (logand bit70 1) 1)5 M- A" ?5 r0 F3 K" u, {3 ~( x
- (set_tile "SpProp4" "Closed")# d/ f% k f! ]# ?8 R& ^! c
- (set_tile "SpProp4" " ")* r. y: s0 F4 n- y2 F g$ I
- )
; u# `/ ]$ C: N- H$ R7 V" c - (if (= (logand bit70 2) 2) k' e" g) \6 s A* i) @
- (set_tile "SpProp3" "Periodic")6 E2 g6 M$ |4 A2 D( g* j7 Q
- (set_tile "SpProp3" "Non-Periodic")& ~( [1 E- M$ |6 m7 X
- )3 M/ u+ e& Q! J
- (if (= (logand bit70 4) 4)
7 H# u; Z( W' A, H: Y5 y3 _2 _ - (progn
4 y* F6 A3 V7 p6 i' i8 g - (set_tile "SpProp2" "Rational")
1 L) u. i) {( K# n9 ^* \/ L - (setq rational_spl_flag 1) ;; this is a rational spline
4 @/ a9 q5 v% g% y8 w& J; N - )
+ w$ x! U( }$ W+ w4 V$ F - (set_tile "SpProp2" "Non-Rational")% ~7 N+ F! r! F- t- _! T1 L+ g
- )
; l# v9 v5 H( A$ T+ E - (if (= (logand bit70 8) 8)
5 }' T( Z- k V A3 j7 K8 I, L( a - (set_tile "SpProp1" "Planar")7 r: \% w8 C* }9 @9 g0 U2 s2 w
- (set_tile "SpProp1" "Non-Planar")
4 N+ S1 }# |* \* O - )4 k) H, a# J3 E! Y# Y/ I3 p i
- (if (= (logand bit70 16) 16)# h$ G* `3 a2 [$ A( g% }! ^0 N
- (set_tile "SpProp5" "Linear")1 n0 `$ V- K( K& F B
- (set_tile "SpProp5" " ")
6 A4 X6 C0 b3 _& Z - ); o# u$ c5 u* h
- ); E: T* T# V5 j" `- _
- ;;; K. ?2 x2 V G5 |& P+ R% D. ?
- ;; XYZ Point values for spline points
8 I6 K% k6 w- n+ U$ A g - ;; Need to account for WCS/UCS2 y% H; `) o5 W" O+ x
- ;;
/ O/ k6 Y e1 M' E& x - (defun set_tile_cntl_pt ()
4 s' D( q! O* w; e: M" v8 k& g1 C5 o - (setq cntl-pt (cdr (assoc 10 elist)))! ?2 N- y( q p
- (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))0 K- c) @/ x- z5 U
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
% q9 F9 i! R) e" {/ a$ V - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))
6 B) i3 v+ r# T( F' v8 \ - (if (= rational_spl_flag 1) ;; if rational spline
" {# a! p5 d8 s- B+ t( B; K2 y - (progn ;; show weight
0 k1 {% x7 f: m. { - (setq weight (cdr (assoc 41 elist))) |* [& X, t7 `' G6 o) h O; V e
- (set_tile "weight" (rtos weight))
) r U& t0 p) r) x& x2 G; h - ) ;; else
+ k1 Y# F a( E3 m( I - (mode_tile "weight_text" 1) ;; disable weight field; o# u6 W2 V# z# I
- )% m) F& ^* u! [
- ). o/ E v6 j% S5 |* \ G
- ;;9 O" x$ S9 M* G0 x. b
- ;; XYZ Point values for spline points
% c }* v3 }4 c - ;; Need to account for WCS/UCS
" ?. M+ v! b% D# T - ;;
# T3 U* p7 {) D% `' x9 ?: [# x - (defun set_tile_data_pt ()) Y! ?& h! N# y0 t+ ~; y7 p5 A
- (if (not (assoc 11 elist))
1 |9 v& _9 W+ H5 l; ~ - (mode_tile "data_pts" 1)
3 V5 z, T; V- D1 k! h2 y - (progn
* J2 _* u8 s6 c2 P - (setq data-pt (cdr (assoc 11 elist)))
* V D( K8 b3 q# L& ^& }( j - ;; display points with current precision.( i3 B2 z% t7 f+ V# Q& @) f
- (set_tile "dxtext" (rtos (setq x1 (car data-pt))))6 C7 W" O# K8 T$ f5 P' } w
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
9 P, _6 _( u0 C1 B; P, ` - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))4 {4 Z" N: s. r3 z
- )- l) ^% \6 v4 x4 @& H3 _" G1 j
- )
4 d4 ^$ _: N+ u% A - )
; K, z+ J2 M: x0 S - ;;. q: A" A1 |9 `4 d, J6 [9 A
- ;; Fit curve, fit spline, or smooth spline surface setting( j" q6 E) B- I2 \( E$ Y4 a
- ;;5 q" [- D* A2 i/ Z% Q/ R
- (defun set_tile_fitsmooth ()$ y+ c \( i$ e! J) Q' l6 \
- (cond
# H& n5 o+ H: } - ((= (cdr (assoc 0 elist)) "LWPOLYLINE")2 a% T: u, Y# k$ v4 M" c
- (set_tile "none" "1")
; y- x C* V( ` - )
% r8 h; h, R; e5 t8 r6 ]/ A - ((= (logand bit70 4) 4)% U$ n! g) M9 C. E& \. g
- (cond
! b9 A4 M* c+ o& }" G - ((= bit75 0)
6 V" }( i. l) @ - (set_tile "none" "1")
: _% A4 w! n1 g8 D - (setq spltype 0); q7 ^4 ~ O7 E5 K9 A; }
- ). q7 n2 W1 E% C, y
- ((= bit75 5)
& ], r9 \6 ?* s1 u4 w - (set_tile "quad" "1")+ ^# s9 H& F+ C; t
- (setq spltype 5)
/ }2 `; g4 {1 {5 G. u. v K - )
" o' b8 u- T/ `: X# L5 H - ((= bit75 6)5 u: @7 e! X) K, I. `3 Z2 B
- (set_tile "cubic" "1")
3 \% ]5 I, q/ g ~. j# n - (setq spltype 6)
$ ^' y5 ~. y( y, Y8 t! b% ~ } - )
( t" R) D5 z& i3 K5 p, S - ((= bit75 8)
+ T% I# d) A) Z - (set_tile "bezier" "1")* D- A' }$ l7 Y, K" M* v
- (setq spltype 8)! \8 O, ~0 x" l- m( c+ l5 J, F8 D
- )' _6 @& |3 D3 Q
- )
9 |2 d' N1 E, u4 X - )
. |, t; |+ m% j0 a+ B" g - ((= (logand bit70 2) 2)
5 P# S! Y% T) O - (set_tile "fit" "1")
9 h+ U! e9 q9 ^ - (setq spltype 1)9 M; _- ?4 @' `# d
- )2 D W7 t7 y4 h+ H" l( T: _
- (T (set_tile "none" "1")): F# Y- i- v0 O" z
- )
. J1 a7 ?3 @2 d% R - )% P. y/ X$ E/ N0 a( i3 Q
- ;;
, k2 H; m% Q9 Q4 T) z7 F$ ? f - ;; Closed or Open mesh and polyline setting1 q7 v8 ]- e! }7 ]2 t( ^7 o4 N" }! ]
- ;;
! @4 w9 X& z5 O/ Q - (defun set_tile_closed ()
" z( t: i* B- m6 V M - (if (= pltype "3D mesh")& h& m$ K: ]7 B3 Q0 T
- (progn
7 T/ N, x' D. F2 Q/ u - (if (= (logand bit70 32) 32)
* L# H/ n2 }0 j. y8 [1 d# E' J3 g - (set_tile "closedn" (setq closedn "1"))6 m5 i" i9 Z/ z9 \
- (set_tile "closedn" (setq closedn "0"))2 o/ K& j Q( |5 M" f+ ^7 o
- )
& m J5 u4 ~3 n$ @; |; ~ - (if (= (logand bit70 1) 1)
$ V- k, _7 O/ T/ Y8 P+ X; P* L* E - (set_tile "closedm" (setq closed "1")); x: n: M6 c l" C
- (set_tile "closedm" (setq closed "0"))) I8 O& _% `2 z% @* T( l" D
- )
r; s' J; p; H) R - (setq old-closedm closedm old-closedn closedn) b+ T0 i/ M1 j4 N" c# u$ h/ K- b+ u
- )
. d& g+ s# s( l1 G* ] - )% q! G+ q5 J7 Y" J& [
- (if (or (= pltype "2D polyline")) k6 ^% F9 s! M* [, R B
- (= pltype "3D polyline")
& y; r/ K( w' I; R - )4 \& E) F9 ]9 u% e
- (progn# a X2 D# z: }" q/ T* b
- (if (= (logand bit70 1) 1)
$ m/ \" s! p. ]! U& n) G - (set_tile "closed" (setq closed "1"))) b, X) G) ]8 P+ s- M) H/ ~4 L
- (set_tile "closed" (setq closed "0"))6 V1 E; T/ o! g* B+ Q
- )- o$ r; d! F) G& s( E: e1 p
- (setq old-closed closed)$ r4 Y z+ H+ H2 U6 j
- )
: s# X0 y2 S8 Q* `* O - )& j9 T+ E$ n# P' w4 r3 M" r
- )/ e) ^6 ~' {' e! w$ [, G {7 s% f. f
- ;; Set common action tiles$ C$ |7 \% } n2 B# j
- ;;# _: Y3 P, q, @7 ~& B8 G, }
- ;; Defines action to be taken when pressing various widgets. It is called O. i/ v$ T$ x1 i
- ;; for every object dialogue. Not all widgets exist for each object dialogue,
8 r$ g1 ], z8 s+ z$ ] - ;; but defining an action for a non-existent widget does no harm.
- _) e5 z; Y( F/ f) R: F - (defun set_action_tiles ()
( T2 e9 R/ ]( r* K2 B# ~0 c - (action_tile "cancel" "(dismiss_dialog 0)")( d; ^) u& Q$ d4 l
- (action_tile "accept" "(dismiss_dialog 1)") d y2 [) h/ R# ^
- (action_tile "help" "(help \"\" help_entry)")
3 c& }# m/ @! l/ G2 ~ - (action_tile "b_color" "(getcolor)")
) x7 F5 {9 P8 M# B( O - (action_tile "show_image" "(getcolor)")
" [3 F" Q; H# |1 P8 o" R - (action_tile "b_name" "(setq elayer (getlayer))")4 P% h* s2 s, u
- (action_tile "b_line" "(setq eltype (getltype))")! o% T; V% b5 ~& E# s
- (action_tile "eb_thickness" "(getthickness $value)")
; C% Q$ l! ~2 B5 F* d+ Y- C/ o - (action_tile "eb_ltscale" "(getltscale $value)")
( Z- N* G0 b6 |
* t5 p% S, |+ Z1 g9 z- (action_tile "pick_1" "(dismiss_dialog 3)")
" m9 u7 }- F" P! ?- y, i1 y- R" d - (action_tile "pick_2" "(dismiss_dialog 4)"). u" C% y5 k% R, J! T: G% b
- (action_tile "pick_3" "(dismiss_dialog 5)")
* \5 S& B" }" f# b4 [ - (action_tile "pick_4" "(dismiss_dialog 6)")! H+ v* s6 C$ H8 {/ ]
- (action_tile "x1_pt" "(ver_x1 $value)")
" c4 q. Y: K. @% K3 ^ _ - (action_tile "y1_pt" "(ver_y1 $value)")% h& ^$ k" a5 S+ I
- (action_tile "z1_pt" "(ver_z1 $value)")
$ V" J! `; m2 g* S - (action_tile "x2_pt" "(ver_x2 $value)")9 o, u1 k% f. a* c" `8 b
- (action_tile "y2_pt" "(ver_y2 $value)")2 h: d u+ u- f+ H" R; [
- (action_tile "z2_pt" "(ver_z2 $value)")5 U5 G) F+ @8 R8 N; [
- (action_tile "x3_pt" "(ver_x3 $value)")8 N/ Y! Y/ {6 C
- (action_tile "y3_pt" "(ver_y3 $value)")* z8 R+ Z1 J) |; z) \6 N
- (action_tile "z3_pt" "(ver_z3 $value)")
2 @0 u8 G! f+ j$ Q. v - (action_tile "x4_pt" "(ver_x4 $value)")
9 U G1 \) [# q& S - (action_tile "y4_pt" "(ver_y4 $value)")
1 ^/ }# W1 ^; y) G) o3 `9 P. S& m8 R - (action_tile "z4_pt" "(ver_4 $value)")
3 J) v8 E' s% O7 X/ M! s: ?+ Q - ( `+ i( I1 V+ E2 l8 }
- ;; Action tiles for Xline & Ray1 M: ]" B" e# Q& L$ E9 P
- (action_tile "xline_x1" "(ver_xline_x1 $value)")
! ~/ h! j) \6 ]! ]! L - (action_tile "xline_y1" "(ver_xline_y1 $value)")9 Y' Q6 T% I% f8 }+ C
- (action_tile "xline_z1" "(ver_xline_z1 $value)")
3 G/ I% j; V6 x+ c5 s- O( S - (action_tile "xline_x2" "(ver_xline_x2 $value)")
+ s3 x/ T1 E. M - (action_tile "xline_y2" "(ver_xline_y2 $value)")
* I% I e3 X3 J7 b8 L8 i - (action_tile "xline_z2" "(ver_xline_z2 $value)")8 T- d8 E4 ]1 ^) l6 j# C( d
- 9 c" ~! J* ^# u; \" l7 g# c; D/ W
- (action_tile "edge_1" "(setq edge1 $value)")
$ t0 ?/ [. j, A x* q; {3 y4 k - (action_tile "edge_2" "(setq edge2 $value)")
/ B7 T4 X2 j V. ?$ R8 m - (action_tile "edge_3" "(setq edge3 $value)")% M% V# d- ?! {8 l7 q" i; k
- (action_tile "edge_4" "(setq edge4 $value)")- C2 O5 j% \) y6 J& v+ D9 Q# L* r
- ) j4 o- R# f! X# A1 ~( q3 D
- (action_tile "radius" "(ver_rad $value)")- z2 g% Z! f" r; R
- (action_tile "st_ang" "(ver_ang1 $value)")8 u$ J; k5 @' }
- (action_tile "end_ang" "(ver_ang2 $value)")' f6 F, ]' q/ u+ }6 f
- (action_tile "end_eang" "(ver_eang $value)")# }# c* b- B& P; t' ^+ A0 L& w
- (action_tile "minrad" "(ver_minrad $value)")
: `+ t7 }# L3 P/ C - (action_tile "majrad" "(ver_majrad $value)")0 ?; u$ Q9 W2 q
0 P6 y* J _5 d) O0 ~- (action_tile "xscale" "(ver_xscl $value)")" k4 s) ~( R n; y
- (action_tile "yscale" "(ver_yscl $value)")4 v( |; c1 V6 O- H" x
- (action_tile "zscale" "(ver_zscl $value)")+ s* a- Q7 H7 {. j5 i( i4 C
- (action_tile "rot" "(ver_rot $value)")
# v( Q) C9 L# F) C {: x* b - (action_tile "columns" "(ver_col $value)"). J2 M- |! f$ y X" u
- (action_tile "rows" "(ver_row $value)")2 `' j# I; r3 N; I4 U. E/ O
- (action_tile "col_sp" "(ver_colsp $value)")- G7 o+ P, O$ l2 |$ U1 {
- (action_tile "row_sp" "(ver_rowsp $value)")0 \5 {( k9 y2 `" E, w* {9 X. e
- ' ]' D* s' c4 Y( B/ _+ e e
- (action_tile "hght" "(ver_hght $value)")
; `8 {. p7 [0 E( f7 D - (action_tile "wid" "(ver_wid $value)")( P' [" i2 w! }: T' ]( ~0 X4 d
- (action_tile "obl" "(ver_obl $value)")2 `5 S7 k: R$ i3 g; q
- (action_tile "style" "(style_act $value)")
. O6 p3 o: V( i; H: f
/ ^# ]% o# v, j+ I ?6 \0 k- (action_tile "t_string" "(ddgettext)")% L$ E8 z& f- Y1 F
- (action_tile "tag" "(ver_tag)")
% |7 c9 C k7 X5 y - (action_tile "prompt" "(ddgetprompt)")
* D1 F$ B& l6 I$ W4 I( x: e5 H5 D - (action_tile "bkwd" "(setq bkwd (atoi $value))")
! u: s5 s) I; v9 ? - (action_tile "upsd" "(setq upsd (atoi $value))")/ [3 h8 g0 l1 `* @( ]: l3 T; h9 g
- (action_tile "inv" "(setq inv (atoi $value))")2 W- n1 T0 E' q6 g w6 [
- (action_tile "con" "(setq con (atoi $value))")6 S z+ d8 P) y0 T( q0 X
- (action_tile "ver" "(setq vfy (atoi $value))")
* }0 Q$ b- j+ D - (action_tile "pre" "(setq pre (atoi $value))")5 h' ]5 J" g2 r H2 a" y# j2 n
- (action_tile "popup_just" "(jlist_act $value)")- C& N/ e; M$ f0 o0 P
- + K4 j5 l- ?% J# `: L
- (action_tile "closed" "(setq closed $value)")5 H# \! w% H8 `5 A
- (action_tile "ltgen" "(setq ltgen $value)")8 u& g" y( L1 {$ V+ Y
- (action_tile "closedm" "(setq closedm $value)")
* w* W: R: Q9 Q7 h - (action_tile "closedn" "(setq closedn $value)")2 _% D2 N4 S+ |) D
- (action_tile "next_v" "(next_vertex)")0 Y: C! G( j T' Y) g3 Z% ?
- (action_tile "xcliponoff" "(setq xcliponoff $value)")
6 T- y3 s" f8 W2 a- d2 M - V+ S/ T8 d0 O9 B, ^
- (action_tile "next_cntlpt" "(next_cntl_pt)")" H) u0 H. {7 K
- (action_tile "next_datapt" "(next_data_pt)")
+ N N# i0 f/ \ H( ?" v
9 Z1 d9 d& t0 m1 t J: G3 [- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")& \& b& s, g" R& D9 J' j/ M7 X, K
- (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")
5 P0 Q9 j2 q# _! } - (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")
/ P- v9 Q6 ^2 r - (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")
e8 n" a7 q# A! {! U - (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")
: Z+ _& E' P8 A! ?7 V9 O$ y' [ - 3 r F9 Z0 d) ^6 k4 F( C& [$ n0 U
- (action_tile "u" "(ver_u $value)")! B( H2 F, {. @, C1 Y/ A
- (action_tile "v" "(ver_v $value)"): i/ R5 Z$ m3 j' b& o. A
- )
5 z: g! J: P8 ^: m G6 T
1 S0 `# s" {; @# c; N- (defun ddgettext()
; Y5 t: O' j6 @# u4 d8 E+ j: C - (setq text (get_tile "t_string"))9 x' C$ C8 q1 V8 P
- )
* Z5 L. f- U/ l" L/ [- B$ H+ F
- R. x) f; F0 d5 ?- (defun ddgetprompt()
+ r' b+ }7 I7 R, a; ~ - (setq atprompt (get_tile "prompt"))
3 {& C2 }+ J# Q) x - )
% a1 I8 a" s- U+ H" T
3 _: I$ z" v2 k- ;; As OW doesn't support disabling of individual radio buttons within$ v/ V5 f' x& a! u# z
- ;; clusters, a check must be performed as to the legitimacy of the
V4 v9 t$ m4 |9 D, h6 _ - ;; button pushed and reset if necessary.. P( J) p9 s2 C
- (defun radio_gaga (pushed)$ Y" V: o0 B) Z4 J& z, ^ T% Z
- (cond
6 g H* a) }' r# G) E - ((and (= pltype "3D polyline")
( n+ I l8 K/ L+ Y; ? - (or (= pushed "fit")' h# [6 z2 X7 r: `, j- f
- (= pushed "bezier")2 w- `# J/ J" O& Y
- )
" @- s: b+ O: ?! {2 t - ); M% M" m9 n7 e- h. U
- (set_tile "none" "1")
) S. `% V7 S: _; j - nil3 e; E6 L# V- T
- )$ d9 u# s/ ` r+ m+ {! o# g1 c
- ((and (= pltype "3D mesh")& e+ W8 v2 L% h
- (= "fit" pushed); r+ y* V( ?+ j+ C2 v
- )
$ D7 y# w8 _" s( v - (set_tile "none" "1")
6 x* U. n5 ?( D% o9 U, ]: t - nil" d, z; i) @. E& O/ u
- )) j# O2 ?5 q$ Z
- ((= pltype "Polyface mesh")! Q5 M8 K+ f: J: y
- (set_tile "none" "1")0 S9 X9 D* e p- W
- nil% W$ R$ o# U' P- }
- )( ~/ {% Y3 C1 [+ {" U* M
- ((and (= pltype "2D polyline")* w! U! D$ b# @* W r# O% P
- (= "bezier" pushed) v9 P7 {8 c1 @( f: |+ Z9 ?' f
- )9 z9 H& `, [9 K) n0 \; t$ c5 W
- (set_tile "none" "1")0 ?$ n4 {, m2 p' e1 X
- nil
0 c' i' L4 u3 S$ o7 y& B$ `$ ^ - )4 I* V" U- O. ]- S( j
- (T)' b/ s. ^. t; o7 ]/ q& l# h
- )' Z% y7 }( m, f4 R: A
- )
# F# t7 C" T3 j0 a7 U, P - ;;
$ z) @/ ?7 l$ P/ e& ^* n" i5 e - (defun set_uv (type_n)
5 B- V2 H7 R1 B9 N7 f s - (setq spltype type_n). P- K& R: |: w# J7 c& @3 D; C
- (if (= pltype "3D mesh")! ^( P7 I4 M8 V# \! ]
- (if (= spltype 0)- o* w* H1 Q8 u
- (progn8 R) |# k7 j: e, q' c
- (set_tile "u" (itoa (setq u 0)))
4 v7 U% d& z4 B& T Q - (set_tile "v" (itoa (setq v 0)))' S; L% N* S( p9 [; X; j6 L
- )5 Z- Q$ `1 @7 j6 X' `/ p/ W/ S
- (progn
% J% }8 C4 @/ N l - (if (= u 0)1 h) [, O: h9 A
- (set_tile "u" (itoa (setq u (getvar "surfu"))))
/ e' Y1 q/ J, L8 D2 w L, @ - )
7 w5 l H2 ]$ G' X9 m - (if (= v 0)1 O$ ^+ ]3 E( n! p! s; e
- (set_tile "v" (itoa (setq v (getvar "surfv"))))3 p; l w- B- s$ D. `( V; t5 M" X' s% b
- )* v/ q$ y! q' N% }7 O
- )0 l* ~, K* I4 ~3 _6 }9 Z
- )
' m: F& a, l4 M - )1 K6 W [0 W4 R( |
- )
/ ]3 ?( i- L6 q; f - % D& m; I7 e1 C+ T' s Q* Z
- , G& s$ H# T4 M
- ;;+ I F3 [3 {5 ?, U' c6 x
- ;; Verification functions
0 @; o. i) g) G' L: l - ;;6 @9 y$ i1 a& ~0 V" j( f, Q Y; y- h
- ;; Verify distance function. This takes a new X, Y, or Z coordinate or# \+ q% H& W. W9 M5 z2 ^2 w; X% }" ]
- ;; distance value, the tile name, and the previous value as arguments.0 E* @" |8 c6 f* d
- ;; If the distance is valid, it returns the distance and resets the tile.
) _* E0 `+ E+ X) f* |1 g. J5 W" a. M - ;; Otherwise, it returns the previous value, sets the error tile and keeps
' R9 z7 }8 n) c$ w" c - ;; focus on the tile. Shifting focus to the tile with invalid value can' n. `% `8 j1 X: Q2 B, `- ?
- ;; trigger a callback from another tile whose value is valid. In order( V/ [- V, x$ k( g" H) v. l
- ;; to keep the error message from being cleared by this secondary callback,
& z& L) L5 O |: A; @5 l; T W - ;; the variable errchk is set and checked. The last-tile variable is set6 r' G/ t2 H. z! f% z
- ;; and checked to ensure the error message is properly cleared when the
8 N9 @0 G: w1 ^9 `# f( Q1 O5 ~ - ;; user corrects the value and hits return.! J' j* I- Z4 G! u0 @( S& `
- ;;
# A9 i9 s% c0 Z8 M - (defun verify_d (tile value old-value / coord valid errmsg). ]& r- k$ }. N- A
- (setq valid nil errmsg "Invalid input value.")
1 g, L1 `9 y* A+ Z. u3 N' D - (if (setq coord (distof value))
! M2 ~2 h% H( j& ^+ Q" ~. V - (progn8 J4 X8 ?$ p+ b ~( O+ |2 o. J
- (cond
& m( [$ G1 @3 D9 @! c2 m) h5 o - ((or (= tile "radius")4 N# ?% v1 M! Y# I! F. C
- (= tile "hght")) H) T' i2 `& S, T
- (= tile "wid")6 T. u" A d. R$ c. u. I
- (= tile "majrad")
+ }4 }6 O" Q* D* @0 O9 | - (= tile "minrad")* F# i5 g z: e! L3 T. ]
- (= tile "eb_ltscale")
/ L. f( y6 ?- R- T- ]# O) a# H, }5 [ - )* ?' f3 B$ S9 [, x. x5 a" v$ [% z
- (if (> coord 0)
. u$ N2 A+ n! p o - (setq valid T)
/ b- a, V. {: G$ M5 ~1 H1 ?& h - (setq errmsg "Value must be positive and nonzero.")
! | ]. e8 X( E* h. s g n2 B - )2 E, y$ K2 P8 C( I2 T' P
- ): e# n# l7 O& R u. P' N& X3 }
- ((or (= tile "xscale")
; M v& U. M' o- d" X - (= tile "yscale")
" N( m; D- D5 r0 q2 L9 |. H4 H - (= tile "zscale")
# V4 t* {& s. x: ^8 r( A( f! r" x - )0 H' [/ u6 b% A
- (if (/= coord 0)
1 d; W2 g- z- i* l' N: G- C - (setq valid T)
0 j* Y6 \7 S5 q' U - (setq errmsg "Value must be nonzero."): a; i( [6 O) J6 R1 C3 @9 v
- )) h( N. |% `, U `4 x7 {7 I
- ), J( A0 d" b' f9 L- h, L1 I/ j
- (T (setq valid T))9 z; r9 j/ l( J8 C2 j$ [5 h
- )# \- C8 r7 b) `. i; M0 t; x
- )
9 m$ f5 ^: w# D - (setq valid nil)+ k( G' j) w C7 y! P' N; |
- )0 P8 R; G0 z) D% p L
- (if valid
9 Q1 q6 o* H% V4 K9 x! o: q - (progn
4 i0 f$ s0 [3 P - (if (or (= errchk 0) (= tile last-tile))
9 g6 i* C; F+ w: ~8 N! u - (set_tile "error" "")
* P- z9 L4 o, _ - )* C6 K( |0 K- L2 C
- (set_tile tile (ai_rtos coord))
1 }. q' h: [9 P0 C - (setq errchk 0)
5 b7 H2 X2 t2 U4 i; h: Z - (setq last-tile tile)
9 }7 g8 [) @& {( b6 P- H - coord
5 n0 A5 B) t- e) B; i - )
5 L% N9 e0 Y/ e' G A: ~ - (progn7 j* P6 L/ g8 ?/ B3 L9 P/ j% A& C% E
- (mode_tile tile 2) ; Move focus to offending field' ]6 r" U% `$ n7 b( }1 X
- (mode_tile tile 3) ; Select offending text
! Q# d" G% C. R - (set_tile "error" errmsg)4 w$ f3 e) z$ Z$ b+ L" c
- (setq errchk 1)
# T2 D7 _0 p& |4 |$ l- \. t# H - (setq last-tile tile)/ w& b) E( p8 @+ k3 T
- old-value
" q* v% v$ m ^! F- J! g - )
2 o' U% Z, r' E - )$ |: ]' j2 N$ M) ?& B$ k& l
- )
' p: {& r9 D& Z( J5 x - ;; Function for Xline coord edit box checking.6 E5 y+ _7 Z( l& R; }" q
- (defun verify_xline (tile value old-value / coord valid errmsg)
* C9 C H$ ~# v - (setq valid nil errmsg "Invalid input value.")) L+ p, v: H/ g/ T$ Y( D: n
- (if (setq coord (distof value))7 c( @: m- F% x8 ]+ ]; c& o
- (setq valid T)
+ @* Q' e% C! f; c7 A - (setq valid nil)6 b; S k( c3 e/ ~
- )1 t) s9 ~+ u7 n9 ~: @
- (if (and coord. w( y+ z% A; n7 T
- (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) )9 @7 s$ ~4 C1 u
- (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )% d2 ~1 F( r" X; u: d" Z z* B
- (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) )" f( @6 T6 v2 U2 T9 K) I# G; H: L6 f
- )8 @2 r" K5 t2 @/ r& x2 H# W/ G
- )
0 s' C; t1 L/ @* @- R) k* R; h$ V. K+ E; x - (progn! Y. _6 a! |* Y' p' g- P( f ?
- (setq errmsg- n( D9 J/ V2 {0 r) Y
- "The Root point and the Second point cannot be equal.")
$ z1 P8 f$ X* { - (setq valid nil)
$ r0 e- T7 E0 l$ V& a- g- H# | - )
; ?, r0 z* o* W# w; f5 c% o - )
3 }$ k3 ?" t% H8 Y6 F6 D - (if valid
0 P& K' t% F# j - (progn8 I0 z5 ~1 c! {2 F$ x4 S* o
- (if (or (= errchk 0) (= tile last-tile))3 J: W$ h% x% z3 O; |9 D, j# l, }
- (set_tile "error" "")
3 e+ \! w8 Z7 d7 m5 u/ P - )
: o2 x3 |7 F( y$ ] - (set_tile tile (ai_rtos coord))) r% ~' y# Y' T7 K
- (setq errchk 0)( Z3 f) p! G7 D4 x# E: x
- (setq last-tile tile)
& q$ e" E, T" g2 [ - coord5 b% |# m: O" M( p
- )% r: ^3 X7 o! U
- (progn
' l S! k+ ^; a5 [8 r" W% P: t - (mode_tile tile 2) ; Move focus to offending field
& H: G0 D4 i; |7 g' L* N! {/ Z8 v; s - (mode_tile tile 3) ; Select offending text
' d0 A: R. d' l. P5 @ - (set_tile "error" errmsg)4 [2 v4 y) s5 l" S8 [7 X
- (setq errchk 1). P0 T3 L! k& k. N
- (setq last-tile tile), D" d: m/ w, M
- old-value
8 W! ^0 E, H2 D9 N0 } - ); j, e# t/ C a% }3 \
- )+ F% R# p# Z( r+ x/ ?
- )1 C6 S6 P/ }/ |! t1 T$ ^# H& i+ U
4 A! T) V' }! E- e: W4 z- ;;2 k- l( f9 N3 Q; s3 ]
- ;; Verify angle function. This takes an angle and a tile name as arguments.9 G9 U6 F) u. ~# l
- ;; If the angle is valid, it returns the angle and resets the tile.0 y n' _5 M: T
- ;; Otherwise, it sets the error tile and keeps focus on the tile.
0 E+ G& p* S' N2 O - ;;
8 S" w+ W9 t! [ A# Y0 w. w. x - (defun verify_a (tile value old-value / ang valid errmsg oblqmax)
2 O" t p# }+ i2 k. @( U, s f - (setq valid nil
' q9 ], o) I: Y/ x8 z5 W) y - errmsg "Illegal input value."8 R" h5 p" E5 W/ ?
- )
6 O8 `$ D* P" W - (if (setq ang (angtof value))
7 a4 r& H1 C/ j9 ?9 x2 T4 m) T! a - (cond
- i3 p4 c/ n$ X- O - ((= tile "obl") ; Restrict obliquing angle
1 y. x, p" A, U+ y - (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))" X3 t$ y6 H& ` ]: Y: V* U* f1 r
- (if (or (<= ang oblqmax)
! Q8 Z/ t9 i; |1 V8 K8 C - (>= ang (- (* 2.0 PI) oblqmax))' A. z# J7 m% \# x* C4 x4 _
- )3 ~; t+ N1 g: r$ X) H9 z% G' \2 R
- (setq valid T)1 `/ N% L1 l, V( c) Q2 q& F8 n
- (setq errmsg& ?1 U- L4 j% U3 T1 A
- "Value must be between -85 and +85 degrees.")
; j! ~0 K9 u- F# e6 B - )$ P* g0 q" k9 M0 A5 k2 F
- )3 @. q3 `. y; |) V
- (T (setq valid T)) ; Other angles not restricted+ V3 s6 A# ]+ ~$ i& ~
- ), e, }9 g" c/ P" Z7 H' J
- (setq valid nil) ; Invalid angle input
2 j X" u1 E' |1 t8 G5 l+ L$ _# P - )
" ~9 k: m& d' } ]) _% p* s" B - (if valid
8 W. d, }1 Q/ ?2 @$ u - (progn
( M. T6 A- |/ z4 Y; o& O, ~$ p! C - (if (or (= errchk 0) (= tile last-tile))7 u9 `+ `" `! \6 H) s i
- (set_tile "error" "")4 ^9 ]+ {% g4 N2 R- K3 s. Q; ?
- )7 t3 { |2 o1 [: N/ \
- (set_tile tile (ai_angtos ang))
& A, G$ H% n& p( ^: O! j$ C - (setq errchk 0)
8 f8 R* b0 t$ W- R3 b) Z$ S - (setq last-tile tile)
% ~+ m" E" A( E b/ L* q7 b - ang
0 ^- c; t& @/ S! |7 h; d! a: C9 t - )# m* v$ _# V; C6 c
- (progn g# l# ^5 t* j) R
- (mode_tile tile 2) ; Move focus to offending field
' v# a4 Z& g/ a! I5 x; r8 v! M5 w - (mode_tile tile 3) ; Select offending text
9 G ~6 p- E6 B2 Z7 ` F l - (setq last-tile tile)' K/ ]3 h$ Q7 U5 [& _3 g' o
- (setq errchk 1)
/ N. X" H9 O% @ - (set_tile "error" errmsg)
9 m% U- f6 F o: ^: @! B2 V4 N - old-value
+ M3 F8 g# q: P+ C; P( z5 g+ A- d: ~ - )2 |0 A% @2 y6 ?6 Z/ x: q4 L }
- )) Q4 M5 R8 K! p- y0 n
- )1 l h' K9 G% b/ D
- ;;! a9 T; ~& k5 I$ Z) e
- ;; Verify angle function. This takes an angle and a tile name as arguments.$ t$ `! u. }3 g. ~+ x
- ;; If the angle is valid, it returns the angle and resets the tile.+ ?2 U/ a/ W/ K% g2 u# Y
- ;; Otherwise, it sets the error tile and keeps focus on the tile.
& v, q8 y# e3 G: _* i8 R - ;; This function is specifically for the end angle of the ellipse object. If
: T+ H) B- H' h$ d- L) i; Y2 w* l9 x - ;; the end angle resolves to zero then we want to display it as 360.
+ N2 f6 ?9 B+ ^) M ]! |& z) n - ;;
7 l7 J+ H0 I1 {; f - (defun verify_ae (tile value old-value / ang tempend)
# ?4 S7 |) J0 P# m# l - (if (setq ang (angtof value)); x. K6 I' g9 D$ B1 f h& A
- (progn
- J/ o5 G# X3 B; W0 f* q - (if (or (= errchk 0) (= tile last-tile))
* b! ]$ F6 P# w% B - (set_tile "error" "")+ R+ B- L. T2 e3 D5 a! Z6 V
- )
5 Q) @+ B6 T6 u7 D6 a8 Z P4 X, O! u - (setq tempend (ai_angtos ang)). V M/ C- e1 G" r( c
- (if (= tempend "0")
. A- K4 ~; m. {& a - (set_tile tile "360")( s+ c# c" k! c0 m
- (set_tile tile tempend)7 P3 f9 g9 Y/ y3 J3 G
- )
+ c1 n' l' }- T& R - (setq errchk 0)4 S3 v% o& }* I: {+ Z* w* n
- (setq last-tile tile)
8 P9 z9 {1 y. f. a+ \: q - ang1 B/ i6 `9 s6 o+ G+ H2 B1 _/ r
- )% Y* K) H3 g7 U( Y% n1 W( @
- (progn
8 G" |6 O! q. ^6 L7 E$ X - (mode_tile tile 2) ; Move focus to offending field& y& X; @5 I. m) b) w) V
- (mode_tile tile 3) ; Select offending text! _% ~" v7 B" L7 l- H
- (setq last-tile tile)
8 u9 d' X% L8 l2 S; S/ [: ^$ a8 ` - (setq errchk 1)
{! x5 J3 ]* M! ` D ?$ c - (set_tile "error" "Illegal input value.")
% @( r# F8 [+ L - old-value# I) x( x7 C6 x" v8 u3 U, q( S) n
- )
: {3 T# V, g% w7 v$ n' a9 a - )
' i t8 Z4 d3 B3 L - )
. o4 }5 a: I4 t0 Q) h - ;;
6 E: u, p7 \/ b - ;; Verify integer function. This takes an integer and a tile name as
) k4 g* b# F4 P% O' U! d7 g3 N* j - ;; arguments. If the integer is valid, it returns the integer and resets the. c$ K7 M0 r; s" a
- ;; tile. Otherwise, it sets the error tile and keeps focus on the tile.
! N& L! P- e' \/ @) ?" b8 @ - ;;1 s/ w1 Q' d2 n- l9 H) |
- (defun verify_i (tile value old-value / int valid errmsg)0 D I8 ^! l- J% k
- (setq valid nil)7 m9 P5 c( s5 u
- (setq errmsg "Value must be an integer.")
$ F3 R+ {9 s: K& f0 }8 g - (setq int (atoi value))) H. B& C; s6 O7 @ X' D* z
- (if (setq intchk (distof value))
6 I0 a' h( ?/ _3 a7 Y% Z$ w - (cond* Q) j, Y- Z, Q' Y1 ~
- ((or (= tile "columns") (= tile "rows"))
* _9 l) K- b; A - (if (and (= int intchk)8 `) X/ W" _; ^' C6 v& [: F
- (>= int 0)
2 O& p$ r" g/ I) _ - (<= int 32767)* M! N+ S' a' e1 a
- )* F4 A7 t/ r+ B' G: u+ W5 t
- (setq valid T)
; \6 E5 D6 X; E6 v; j& @/ `* c# l - (setq errmsg "Value must be an integer between 0 and 32767.")5 e4 ?- f y6 ~, j
- )
+ w! C k4 Q4 Y8 }6 ]: z$ @ - )
% [7 z$ M# }: B# L1 P% H: n! O - ((and (or (= tile "u") (= tile "v")))
7 k2 D, }, D/ f, V# _ - (if (and (= int intchk)
$ G- F* K3 g# w |/ `! z J - (>= int 0) N1 n# W9 l2 V! ?6 j$ h1 i! N
- (< int 201)
/ k) X# Q1 F! a8 @ - )5 \1 F( Q9 V: i, m1 `6 v
- (setq valid T)
& ^! E; }" b, ^5 Q; o: n, S - (setq errmsg "Value must be an integer between 0 and 200."). l7 s3 H, f0 N2 E7 X/ A! ?
- )
! q# x( x4 _& J. J - ): F7 O/ D0 j. E' l! Z! U# C
- )" M$ O) ]2 W* G0 x; t* ]
- )
- R+ v$ I/ D# Z9 K J. H7 R - (if valid. h: T. D, l Q- a" b Z6 p3 O, s
- (progn
2 A" ?3 ]$ T* h' {! w9 C4 {3 W, ~) N# g - (if (or (= errchk 0) (= tile last-tile)): {: C+ G0 I3 d5 r/ b
- (set_tile "error" "")3 J+ B: u" j9 W$ m. D
- ): M- V" S3 p k$ f
- (set_tile tile (itoa int))/ a0 r9 I$ ~. G
- (setq errchk 0)
1 l c2 W& Y' G. d/ [% U - (setq last-tile tile)
8 a! J1 n$ ]9 ~* h1 F( \+ u - int7 N3 y4 l5 e/ f, N2 G; |
- )
" ^4 i, f; _. H( j% j `' s- @1 } - (progn8 M5 I3 x0 l. l& a1 V
- (mode_tile tile 2) ; Move focus to offending field% v: Z1 k5 f3 S8 i
- (mode_tile tile 3) ; Select offending text
% O1 N% P, y6 n7 c! M( ^7 ]. D - (set_tile "error" errmsg)4 u; S# d r- s$ J8 \% s
- (setq errchk 1), M5 `; Y, Q4 R- x* H" ?
- (setq last-tile tile)
) _$ m! [; S/ f0 c9 a - old-value" P' ], {2 I+ I& c2 c! W
- )0 w% f' a/ L) X b- e1 d# N2 Q
- )1 F2 v0 F# u4 T7 R; t* P/ W
- ) s, B1 i1 w, i5 c1 w c; m
- ;;
, o' a0 o) i- V5 o - ;; Functions that verify tile values for integers5 x3 D/ V1 o8 T9 r" S, R2 o( X0 m5 A' y
- ;;$ X Z" _( F2 i: J' m, D
- (defun ver_col (value)
5 i2 k3 I# e: u* G - (setq columns (verify_i "columns" value columns))4 @. D# i# E: u1 ~
- )4 j; Q! b7 ^8 @6 \, }) b% M
- (defun ver_row (value)0 t( S; H$ f* N9 H7 Q
- (setq rows (verify_i "rows" value rows))
( I) @: m0 L( `" i$ W - )1 |# w4 [% s G" O3 ?/ c0 [; J( ~9 d
- (defun ver_u (value)
, b* C8 r+ }- m' I- @( o# }: X' _ - (setq u (verify_i "u" value u)): |( l- D' L% q6 }- I# z' ~
- )0 v# c9 x$ p; V- P) {
- (defun ver_v (value)
6 S7 Y* P8 m* l# C - (setq v (verify_i "v" value v))
" p O: _- I z$ P$ u - )7 H u9 w( c' P! N
- ;;
" y9 F7 N. ~1 h- E- u1 A+ h" V - ;; Functions that verify tile values for reals" G. q: ?8 ?' d! O: u- g
- ;;, M6 k- \; ~; N* {( _# h, j
- (defun ver_x1 (value)' R* K3 Q9 |- S j
- (if (setq x1 (verify_d "x1_pt" value x1)) (calc))
9 G/ p9 X' m0 q- b! D, ?: q - ). }* S3 x s& b
- (defun ver_y1 (value)
7 c2 G3 ^7 c6 u - (if (setq y1 (verify_d "y1_pt" value y1)) (calc)); ]8 O: b; s4 S) g2 x
- )0 {5 p" ?- p# d" T
- (defun ver_z1 (value)
$ E7 o8 J9 N+ C, ^2 I" b% o - (if (setq z1 (verify_d "z1_pt" value z1)) (calc))8 T: n3 V, Y1 G5 M
- )
3 o9 J# P$ P5 m - (defun ver_x2 (value), t7 q' W# O& ]! E- X
- (if (setq x2 (verify_d "x2_pt" value x2)) (calc))% q1 I7 [$ M# N& B$ c
- )* O/ C5 Y' Y$ k7 w% U
- (defun ver_y2 (value)# a& G3 M! p1 O g
- (if (setq y2 (verify_d "y2_pt" value y2)) (calc))+ |3 T7 Z {5 C8 W( e0 V
- )- ~1 e9 H! _9 i! m8 Q: ^3 K
- (defun ver_z2 (value). N& X* d" @9 |, S
- (if (setq z2 (verify_d "z2_pt" value z2)) (calc)), a, w% p7 \- I |/ m
- )
/ Q( I% X* W$ B' O6 {9 | C - (defun ver_x3 (value)
3 H( e0 e7 y: [ x1 |% { - (setq x3 (verify_d "x3_pt" value x3))
( |& {8 k' @# |7 U- b. C. P9 M% @) D - ) Q! }9 G3 `$ G k# K! } A5 J0 Z0 Y
- (defun ver_y3 (value)
/ U$ M/ i* |% t# _, h6 I2 ? - (setq y3 (verify_d "y3_pt" value y3))
" }3 W+ Q1 [3 e - )
+ R/ d" h( u3 D# Q% q6 Y0 y: R - (defun ver_z3 (value)1 N, w8 `; i7 Z2 S7 D/ ]/ h
- (setq z3 (verify_d "z3_pt" value z3))
' k3 W! M0 p. I, B2 j - )
9 D) k. [7 n. D0 [; \# y# w' Q9 @ - (defun ver_x4 (value)
( ^. z, C! N r - (setq x4 (verify_d "x4_pt" value x4))
( O6 B. {: E' h( p$ I2 @ - )
7 i/ Y% c% w. \, i! Y4 Y0 D. p1 [ - (defun ver_y4 (value)
2 p) R; f& V0 i' s D) {/ N - (setq y4 (verify_d "y4_pt" value y4))
/ Y3 c( {" e& Q+ a1 U+ |. s: W4 H. S - )$ m! S1 X% ]7 y0 Q& ~2 Y
- (defun ver_4 (value)6 B) u& j, G% n5 L, O
- (setq z4 (verify_d "z4_pt" value z4))
5 s1 X, o0 F: y - )
6 }- ^* e3 ^% L( g - (defun ver_xscl (value)) v0 s! Y2 ~, D
- (setq xscale (verify_d "xscale" value xscale))
6 C# j! @& [6 k - )
4 K$ L3 N4 ]# l# J - (defun ver_yscl (value)( K- Y3 ^" B. V5 h& t1 ^
- (setq yscale (verify_d "yscale" value yscale))
5 |0 j2 S/ I6 n/ x( T8 i - )
8 T/ V' |3 ?+ U( g' t - (defun ver_zscl (value)' O5 U4 B" W7 Z% [% v3 A2 o/ Z
- (setq zscale (verify_d "zscale" value zscale))
7 T) K6 e B, e2 D4 ?9 J$ _ - )8 Q& E7 Y( Y; \6 u* W. s$ u$ m
- (defun ver_colsp (value)* J9 J7 Y2 l+ C3 e( r$ ^% ]9 a1 ^8 Q! [
- (setq col-sp (verify_d "col_sp" value col-sp))% m& h2 R+ _' L; x( r8 ~) x: E
- )( z4 j3 p1 o3 U
- (defun ver_rowsp (value)
2 M6 G4 X8 M) t/ O( K - (setq row-sp (verify_d "row_sp" value row-sp))5 b/ y9 i$ e" q3 }& t' Y& e
- )
5 L5 b0 D" ^( L! | - (defun xclip ()' j! C5 A @3 U; }
- (setq xclipmode t)
4 r4 x- W( M! t J - (if (= xcliponoff "1")6 M: ^& P. b1 Y8 ?: K3 D: h
- (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")" [' M+ D& M0 t, Z
- (command "_.xclip" (cdr(assoc -1 elist)) "" "_off")5 T) U& I& [# Q) L
- )
- A0 [: Q2 A' `' t4 i3 L - )
/ y6 m7 L( n5 l; Q) ] - (defun ver_rad (value)
g' F. a4 I) t* p8 E- h1 k5 `: I - (if (setq radius (verify_d "radius" value radius))& M* b5 D; N0 s9 m& S6 n7 B: U
- (calc)4 U, j2 F7 k$ I( K: t4 _
- ), ]( k9 l) K" O4 g5 p
- )/ i% n: m) k' h3 U9 }) B
- (defun ver_majrad (value)
. g4 h( Z) h; _/ v0 H9 n - (if (setq majrad (verify_d "majrad" value majrad))7 @1 g& q; H: K8 d" \
- (ell_calc_newval "majrad")
o4 U) C! u. D( G7 \. A6 s- O - )" D% O" s' A2 \' E5 b
- )
c* s: |) n9 W. u - (defun ver_minrad (value)
) X( u4 G$ s& }5 A7 k! x - (if (setq minrad (verify_d "minrad" value minrad))
5 a5 \% p1 W7 E1 B) ? - (ell_calc_newval "minrad")
. F* N0 y. V5 k1 ^ - )7 ^: k2 @0 z! p8 {) S& Z* h! I
- )/ j6 \3 G- ]6 P6 w/ W& M% Q- I0 A
- (defun ver_hght (value)
. G% \, y3 V2 |. }( S" D, N - (setq hght (verify_d "hght" value hght))3 `/ Q0 e* Y0 P+ O
- )* k3 i' o6 H6 b, }: [. V. [1 M
- (defun ver_wid (value)
6 n: F6 [! U# @& D) z1 } - (setq wid (verify_d "wid" value wid))6 |( T6 n& H+ _3 T. p' T
- )& z9 m2 Y" G$ v1 U+ \0 B% h3 j
- (defun ver_xline_x1 (value / temp)
/ t* k; P. c" r& N# U+ H4 ] - (setq temp xline_x1)" _) u& g/ l) A5 F0 e9 R( U1 D
- (setq xline_x1 (verify_xline "xline_x1" value xline_x1))( K! Z+ W% K5 E& d! f
- (if (/= temp xline_x1)- j; p, @$ x2 L7 b) H$ J
- (progn (modify_xline 0) (set_tile_dirv) )
: }3 W6 a+ L* a! V2 V - )* H: T* J# ?& i( @* x1 i
- )
1 M4 J, V/ }) K: [ E) ? - (defun ver_xline_y1 (value / temp)
& B0 O7 R U7 i2 }0 K - (setq temp xline_y1)
. a( l: ]( M" j9 c - (setq xline_y1 (verify_xline "xline_y1" value xline_y1))5 w7 c) e) c, a6 ?. i. W$ Q
- (if (/= temp xline_y1)! ~" y1 h D5 Y6 r* I! q
- (progn (modify_xline 0) (set_tile_dirv) )4 g# @5 I% G! a% ~# K4 C1 [
- ). q# U$ k9 }; E9 ]
- )
3 `( k, c" L: w7 ` - (defun ver_xline_z1 (value / temp)
+ c( A& L: }+ b8 ~/ U7 C6 ?" e - (setq temp xline_z1)1 z6 _, K# T" W! g2 F9 i. Z0 C
- (setq xline_z1 (verify_xline "xline_z1" value xline_z1))
6 ^, k9 Q/ X: n9 I" w - (if (/= temp xline_z1)( t/ Y3 D8 ^& E7 }# n
- (progn (modify_xline 0) (set_tile_dirv) )
! m3 W8 @$ S$ X4 Q5 v6 j - )
: n! z# C! B9 M% K - )
/ w' L1 G& I l' Q& X - (defun ver_xline_x2 (value / temp)
) w! z7 j3 U% D8 D" H5 T; p - (setq temp xline_x2)
# F- t9 K/ c9 P - (setq xline_x2 (verify_xline "xline_x2" value xline_x2))
- `& z+ M& S8 N, Y- R* b0 S) Z - (if (/= temp xline_x2)- m* m8 W* a9 a- h5 G9 Z8 ~
- (progn (modify_xline 0) (set_tile_dirv))
3 b% I* B. | Y- F - )
: e2 ~! r9 Y' w; a - )6 Z' f' U# Z( H e0 q" e
- (defun ver_xline_y2 (value / temp)
9 e* \3 v1 P$ u9 S - (setq temp xline_y2)0 K% u; }- d; @" x% X5 ]5 ~" p( w
- (setq xline_y2 (verify_xline "xline_y2" value xline_y2))# Y" |5 w3 f2 P6 [
- (if (/= temp xline_y2), e- z& W' A/ v* U3 A5 G8 Q p+ Q; V/ D
- (progn (modify_xline 0) (set_tile_dirv) )
! T, {) r6 J" A# A - )
4 Z6 v' }' z1 u' k - )* y( w* L5 `* k4 M8 N. F& Z
- (defun ver_xline_z2 (value / temp)* Q& a. V' F5 S
- (setq temp xline_z2)- r& Z [& z- u3 b2 F9 c; p7 Y
- (setq xline_z2 (verify_xline "xline_z2" value xline_z2))* F1 a4 Q( z6 e* O9 J. H
- (if (/= temp xline_z2)1 e1 Z+ X- o$ o, _
- (progn (modify_xline 0) (set_tile_dirv) )
1 \' B* F) V1 B# [2 m - )
9 I* c3 e; ^+ o0 l( J9 { - ), _0 J ?6 ^' L; Z1 `1 [* X! v' U8 F
- ;;
$ [4 a$ c+ o1 _0 D* f - ;; Functions that verify tile values for angles+ e, g8 _- b9 _4 X) L6 D
- ;;9 F4 V$ W: M1 u, L8 t2 P
- (defun ver_ang1 (value)9 m! b! R5 g8 q+ t2 J: l1 D5 L
- (if (setq st_ang (verify_a "st_ang" value st_ang))
- @9 B, O T/ Q) V - (calc)9 ?! ~" l7 k9 O8 `3 K
- )
7 R5 }: S. k: @2 ?2 Q - ); p4 g. L. s9 E) A0 M f
- (defun ver_ang2 (value)" m: r. {0 r" C8 c& {8 @
- (if (setq end_ang (verify_a "end_ang" value end_ang))+ H/ Z8 m" _2 Q0 m3 Y
- (calc)% w6 v& L1 l" k- M" y1 i9 c# Y
- )
- n2 Q' I/ K: D( C; y3 ~; X) S - )
. _: x. e5 R m0 i9 H" l4 e - ;;# K$ R5 j( c' T; ]& ?" @7 y9 D1 O
- ;; Verify tile value for ellipse end angle. Handled slightly
: k+ m6 n, D+ q+ f - ;; differently than the other angles.) `" y8 y; n3 k2 }9 ^' Z) s+ B
- ;;/ m1 k8 ~) L! a7 K8 O( w2 X
- (defun ver_eang (value)
' F5 I1 H+ z: c: j* B/ T - (setq end_eang (verify_ae "end_eang" value end_eang))" L: s8 @8 f2 [; A0 A% U1 D1 b" e' a
- )0 ~# c9 V Z g$ z/ {7 f& p
- (defun ver_rot (value)$ X( C% i& O8 J; E* m: f, N
- (setq rot (verify_a "rot" value rot))" r% Z4 _, q% \& s& J2 O
- )- c$ C0 l) U# g9 W6 n+ _7 P
- (defun ver_obl (value)5 L6 ]! E. r* c# l
- (setq obl (verify_a "obl" value obl))4 X* F& B1 j# J* \2 }
- )+ r' H6 k! S5 G# x; z" |2 z4 l
- ;;' L+ c, r- y/ n- x4 F
- ;; Function that verifies attribute tag field for null string,
# Z, O7 \4 m* y& Y4 q5 Z - ;; or a string that contains one or more spaces. Tile value7 ^# \' z$ p! L; \! X) e
- ;; is also converted to upper-case as well.$ `! M8 `, ]7 Z V2 |
- ;;' o; u" m% {9 Z' H& Q8 m
- ;;
( X* X: {& g# E& ?4 s, H - (defun ver_tag ( / tval)6 C7 |' X0 S; |; {
- (setq tagval (get_tile "tag"))
+ t# H7 H( I. j' `( `+ t, x - (set_tile "error" "")
5 G# Q# f2 e. r/ W5 V( q9 u - (cond
# y2 M$ W9 X' ^1 C5 g2 U! }' R - ( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))+ _$ |4 Y( v! B+ R! {3 ?
- (wcmatch tval "* *")), _1 U# O7 t5 G ^
- (set_tile "error" "Invalid attribute tag.")/ C% ~# c1 r% ?/ W% L
- (mode_tile "tag" 2)1 \0 u, z" f9 ?6 C2 a4 y! J
- (mode_tile "tag" 3))
) c/ }$ T# M1 h& u* P3 m - (t (set_tile "error" "")# t7 P6 M: I- u! v& ^- R. V. Q
- (set_tile "tag" tval)
# M/ m ]4 \/ x* m, y - (setq attag tval)))
6 Q( y4 @+ Z) D - )
/ N& u/ I+ T5 O; C, j0 p* ?; F - ;;2 V+ w, k" b, E, s
- ;; Calculation functions
* w! B$ l( a( `" G* r2 v - ;;
, f' A* R$ C$ T: j - (defun calc ()9 J4 u3 U5 a: T- p1 R) }
- (if (= etype "LINE") (line_calc))( I" l" F4 [/ j7 R* I
- (if (= etype "ARC") (arc_calc))
; e# J4 O# i8 w: `+ d - (if (= etype "CIRCLE") (cir_calc))
5 n) n& f. T( u; n - )3 R3 w8 Y' e' e4 K
- ;;. y7 M o' I/ d" v
- ;; Calculation functions for lines, arcs, and circles8 w% @; S5 S! Y p
- ;;
* y. Q. |- Y1 A) B3 K. h+ ` - (defun line_calc ()
# q' G2 g+ J! ^: Q+ @" B - (setq stpt (list x1 y1 z1))
, e- A/ P) N3 a0 y - (setq endpt (list x2 y2 z2))( ]# L: \" S" _! Y8 D3 `2 a
- (set_tile "delta_x" (rtos (- x2 x1)))
6 R7 c$ H9 s( V+ c! ? - (set_tile "delta_y" (rtos (- y2 y1)))
, M7 L$ }' F. C! t7 o' b9 r. s - (set_tile "delta_z" (rtos (- z2 z1)))
! n( @8 H/ L. k, I4 Y1 I - (set_tile "l_length" (rtos (distance stpt endpt)))3 f0 V) U! y* v1 I
- (set_tile "l_angle" (angtos (angle stpt endpt))). v1 k6 }' F% [# E, G0 H8 N
- )0 a, d5 K7 z/ s& x% Z9 k: b# V' w
, A3 [" o4 ?4 l- (defun cir_calc ( / area units). w( G% x m7 y# N" ]
- (setq radtest radius)/ h9 R+ G$ f' j3 F& M8 y
- (set_tile "Dia" (rtos (* 2 radius)))
- W; x* v" d+ r7 D, X - (set_tile "Circum" (rtos (* 2 pi radius)))
1 \# A) L- M" f4 D: u; Y p - (setq area (* pi (* radius radius)))& ?8 k: ?8 w$ @/ V2 s
- (setq units (getvar "LUNITS"))
, K. L0 b7 Z5 O( n. {9 b; Y5 L - (if (or (= units 3) (= units 4))
9 ]- ~. C9 q& m0 w! k$ f- t - (progn
2 i' x) P$ R! x) W$ z - (setq area (/ area 144.0))% A0 z( m2 h4 U6 [2 B+ X& C6 [
- (set_tile "Area" (strcat (rtos area 2) " square ft")): W8 Q( \+ I0 S K+ E8 [
- )
0 ]9 L; f( x3 x% W; s - (set_tile "Area" (rtos area))! T) q& j* `" P& I9 Q! _5 P, }. Q
- )5 W9 U) h, N% a% _- R3 B* _4 x
- )2 [/ A9 o5 L. Y
U& @& |5 t. g' q% i, f8 O& d- n) U- (defun arc_calc ()
4 H# x( _( @6 W - (setq totang (- end_ang st_ang))
1 F, n2 k- z& m$ n8 z4 h( _/ t2 \ - (while (< totang 0)" j1 X# u+ P d# W) [
- (setq totang (+ totang (* 2 pi)))' }, J6 {$ T; H2 u& d
- )6 {% ~2 s, B" T4 A/ O
- (while (> totang (* 2 pi))2 d7 Z: f& g8 `' Q% {$ z6 S, m" P
- (setq totang (- totang (* 2 pi)))
* ]' ^, b N- I- }" T, [( r* J - )
2 H8 Y6 T" o ], k5 M - (set_tile "tot_angle" (angtos totang))
! u0 D9 k% y2 Z$ [ - (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi))))
3 f/ W6 F/ J/ U w! }) {: ? - (set_tile "arclen" (rtos arclen)). a1 s+ p1 h+ i- h ~; C# U
- )
4 t4 x; `, `$ K: b) @- @ - ;;
- R* T7 d1 H4 g& C. P1 r - ;; Calculate the major radius, minor radius, major axis direction.: d h: Y' X, t6 L* [; ^
- ;; Get radius ratio. Convert Start, end parameters to start and end
- p) p" q, n# N. I - ;; angles. Save Major Radius value in "old_majrad" in case the user
- I# h( Z9 w* t. ` a! F; s" g - ;; chooses to input a new Major Radius value later. It's needed to0 p$ H: p0 }1 Y( U' s, u2 R
- ;; calculate a new Major Axis Vector value.
/ l! y: P7 I, n% T0 _ - ;;
; Z+ `: n3 x M6 E8 D - (defun ell_calc ()
3 y0 H, ^6 ?7 |' `! l6 t - ;; Get major radius from the major axis vector.( H) ~5 F+ e3 S7 J
- (setq majaxis (cdr (assoc 11 elist)))
) J5 v! L2 M* ^1 U8 `, M - (setq xx (car majaxis))
5 R# l: b' t- c" U - (setq yy (cadr majaxis))# I" ^; x9 X- r4 z" s5 E
- (setq zz (caddr majaxis))
( E( m' b& G6 K! W9 @ - (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) )))- T& T. Z. O1 C+ B' c4 L$ R
- (set_tile "majrad" (ai_rtos majrad))
; a1 S# Y; Q$ J* N2 x - (setq old_majrad majrad)# p- D+ G, G9 h g+ }3 i
- ;; Get radius ratio3 w! T8 |& }9 ?" ?9 C1 w9 J2 v
- (setq rrat (cdr (assoc 40 elist)))6 i9 f/ f0 m1 E) a' p& d' [ S
- (set_tile "rratio" (rtos rrat))4 V9 Z. `% B: {9 [& X+ I
- ;; Calculate minor radius1 j {6 O1 l' Q3 d% B
- (setq minrad (* majrad rrat))$ V8 ]- v: b' D/ f
- (set_tile "minrad" (ai_rtos minrad))) L% A; M0 V& `9 C
- ;; display major axis vector8 c: n7 W% I+ ^8 w( n. V* G: |
- (set_tile "Majraddirx" (rtos xx))
1 W* O: P% }, g - (set_tile "Majraddiry" (rtos yy))3 d1 c/ i) O9 Z8 y* O9 T% s
- (set_tile "Majraddirz" (rtos zz))0 N- E5 {! g6 q# s8 {
L% u3 p) G, e7 @$ _0 V @8 U- ;; Convert start parm to start angle4 r. y$ g! s" N( O* v
- (setq stparm (cdr (assoc 41 elist))); g7 Q3 S6 Q- a! O5 L
- (setq vecx (cos stparm))
0 z* K2 x0 v" ~1 D0 R% K - (setq vecy (sin stparm))
$ u. w9 s2 R0 _4 b; ^; | - (setq st_ang (atan (* rrat vecy) vecx))# E+ r7 M% d2 v/ Y" _7 k0 f! G
- (setq tempst_ang (ai_angtos st_ang)), k# D% `0 R* u; `& o9 a
- (set_tile "st_ang" tempst_ang)
, |5 p# L/ Y7 u - ;; Convert end parm to end angle. If end angle evaluates to 0" w. S+ n4 x( I E& t1 t/ b! ~6 T& I
- ;; degrees then display it as 360 degrees.
7 o0 d/ ]/ G0 _' m& A9 Z9 V - (setq endparm (cdr (assoc 42 elist)))
; f% ]( O5 l7 f/ n3 i0 H - (setq evecx (cos endparm))/ E* T9 t8 E- g+ J3 N, Z
- (setq evecy (sin endparm))) K, C1 V( P5 d+ B
- (setq end_eang (atan (* rrat evecy) evecx))
, d* o/ o( r/ W/ ?) r - (setq tempend_eang (ai_angtos end_eang)): q, C. L+ d+ R
- (if (= tempend_eang "0")' ]% i) {/ G* h/ L* a. o
- (set_tile "end_eang" "360"). f' a' v4 R1 b
- (set_tile "end_eang" tempend_eang)' a7 [- o0 [2 J; _# u
- )
9 ?2 h9 n4 ]$ g - ;; Get area of the ellipse.
4 V8 q s- Z% y! u n2 | - (ell_calc_area)
% l) A: B/ P) V, A [3 h! I - )7 C0 M0 x+ b* G/ D
- ;; Calculate area of ellipse. If it is an arc then
, U9 `3 z g1 J# t9 M3 o' b& ]7 B0 m - ;; grey out area display.
# v# Q7 j' s, K) \, D) B - ;;
* |8 T% Q% c, `# ^: s' _$ G) G - (defun ell_calc_area ( / area units)
) f) A* V6 S* q) s6 J - (if (and (= tempst_ang "0") (= tempend_eang "0"))
. q' L# {' ?4 ?5 r6 X - (progn
* ] e4 P! \3 F, y: x& H - (setq area (* pi majrad minrad))
$ t6 X7 c) k/ h" a - (setq units (getvar "LUNITS"))
' j8 y% i' Y4 J7 E; i - (if (or (= units 3) (= units 4))
" y# U& e) B" J# y7 o, _ - (progn% p. h) l6 A: D' o7 U! X- o4 G+ f0 X
- (setq area (/ area 144.0))
# s; F) B/ f" ^( |# N, ^# q9 K - (set_tile "Area" (strcat (rtos area 2)" square ft"))
* s+ `% z+ J0 {( l3 h- A; X0 x - )
1 \& {4 A/ E) E- ~1 ^' _ - (set_tile "Area" (rtos area)): G' M2 p& C, t* i- @3 F* ~$ R
- )
8 `4 T! `# z, Q# E/ M4 ?# F1 |+ B - )
3 ]; J: J2 |3 U - (mode_tile "Area_text" 1)
]3 y- }8 R" P/ m5 n - )
5 g7 \; k3 I9 X8 j: M - )2 c! B- |$ [4 M1 Z+ q" b
- ;;
+ B+ u, _+ o6 N" R% s& [% b - ;; Calculate new values for ELLIPSE
, d( x% Q3 F& \* N$ s - ;; Minor Radius, Area" ~' K1 \6 z+ E" [ f; O
- ;; C" g, x: K8 T7 A8 s
- (defun ell_calc_newval (ell_tile)
- S A% |9 d6 z; s! B5 Y- H - (if (= ell_tile "majrad")5 p' k3 b! P! v+ ?9 F2 W, I
- (progn( e Z8 r. }- h
- (setq rrat (/ minrad majrad))3 F& c- B. B; r; M. ]: n8 C
- (set_tile "rratio" (rtos rrat))
4 `. O8 O5 l0 I, @2 H2 B3 g - (ell_calc_area)) p9 g: s1 b1 N2 e
- )
# c: v! r/ \; O2 e# V' p" r6 s) j0 }- c - )
1 m) S* e) \! C5 X }4 _" o - (if (= ell_tile "minrad")
! X, I4 f+ ?* s* x- S. n0 l2 j+ A - (progn3 P( o. S8 {0 t0 m& g% R0 P9 ^5 D) J
- (setq rrat (/ minrad majrad))( f# u8 R4 G; C3 [* i" Q; ]
- (set_tile "rratio" (rtos rrat))
0 M, S( A4 L+ g8 @ - (ell_calc_area)
6 Y! }* I3 T# c& D* y$ P - )
, i9 A* [' A8 y9 y' D - )
9 N( _' ~2 j$ A9 f/ G( s - )
6 L/ F% _/ E8 G - ; {+ h* p0 L( F3 e/ e
- (defun set_dimen_props (/ loop a stl txstyname)* L3 `9 Y* \& i6 v2 M: x0 D
- 3 t, J" i; f! R. W7 p3 o
- (setq stname (cdr (assoc 3 elist)) ; get style name
' m9 p& i2 p2 j3 }3 r - stl (tblnext "DIMSTYLE" T)
; v# ]7 |6 z( b4 `7 m, A - stlist nil)
! m; u! i. q! P/ ? - ;; Get all style names and list them in alphabetical order
: q4 E4 K% k( ?& P& Q( _! u - (while stl
# H) v m5 z1 w( s/ M* v - (setq sname (cdr (assoc 2 stl)))
; n9 A9 U9 |4 g! C - (if (/= (logand 16 (cdr (assoc 70 stl))) 16)/ G* Q/ j/ g% I4 S
- (setq stlist (cons sname stlist)))6 k: z- p( C# R1 N
- (setq stl (tblnext "DIMSTYLE")))/ ]$ l; Q8 k; K9 q2 {
- # H! u2 ]# L- b. J6 y- h
- (setq len (length stlist)
0 N9 O4 H" @2 a, Q9 z% c+ @! E - loop 0
% T3 P) R1 m2 ?9 x - dimsty stname
l& u, V; S+ J+ M2 N - )
1 T8 \7 s* N6 n! R2 |) H/ p - + k, L( V: v, I3 {% P0 T
- ;; alphabetize style list, depending on maxsort6 c2 {% _! C6 g
- (if (>= (getvar "maxsort") len)
7 W0 C" {: K* C0 c+ Q - (setq stlist (acad_strlsort stlist))
* x$ d: x7 C9 t! m- e - (setq stlist (reverse stlist)))* Z3 ]+ i4 ^% A! y
) J# @) O8 L9 w( r9 h5 o- ; *UNNAMED style (dimsty = nil at this point) is replaced with0 r1 L7 ]* |2 x1 j! a" i
- ; the current style. After R13, we require dimensiosn to have a
' Q* l8 _$ A3 X8 M - ; dimstyle, so we plug any holes where we find them.
0 I- @2 ?! V7 }$ u - (if (null dimsty)
5 L2 f) u4 |' K( Z - (setq dimsty (getvar "dimstyle"))
* b" T& V2 U; T1 h& I8 ^1 q - )
; K2 B. A8 l* X, M& O+ e - ; Show the styles in combo box
+ ~' g5 }: {3 k - (start_list "mod_style" 2)
0 s; q5 I6 u$ V' G - (while (< loop len), ?) g6 \5 r$ ?
- (add_list (nth loop stlist))
2 E& n% T4 X# b - (setq loop (1+ loop))
/ r, a+ F1 x3 R/ u9 A0 c0 s* z - ). q/ d% w. i! c' A* O0 B
- $ b0 S" A/ V" k% N, ~3 Y
- (end_list)2 ~% n& y! T; t2 s; [
- 7 E* V5 l: f0 C4 O4 d
- ; Hilight the style name of the selected entity
" x; p2 q8 H0 {3 P - (while (and (< 0 loop) (/= dimsty (nth loop stlist)))
- |$ N s, q* S+ O8 z3 e- n M - (setq loop (1- loop))
7 W5 v6 a5 Y; I - )
- @4 c( e1 t/ ?9 ]& y' P5 H, @ - (set_tile "mod_style" (itoa loop))) B" |' l. K0 c& f- v
. @( m: E' F7 c0 t( e( v- ; The following is the list dimvars. It must be sorted in the same
1 I5 W- L q( K" A# f - ; order as the resfub returned from DDIM (ADS module).
9 x2 w0 }$ I" G4 n+ I# W( c
E) Q% N% u. `. [+ l) u8 x- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"/ C/ I8 |; l2 N& l0 f9 X: d" ~
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2": E3 P* g8 Y: ^- Z. s* r
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"& f! [! ^: k3 g( T3 f
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
3 o6 h: i# C5 T( v: Q _0 Z - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"8 w8 n8 S+ `4 u: T" m
- "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih") Q: g7 `% N0 ] t' @% B3 O' F
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
7 Q y' I8 B2 ~; ^$ o& J - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"4 x" v, }6 S% J0 ]' Q4 v. B
- "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"% i* c4 E6 l1 u9 `$ Q
- "dimdec" "dimtdec" "dimaltu" "dimalttd"
3 ?' ]3 q9 p: d, l) h$ t - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj". a( ]1 U# Q9 N
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt". R; p* k/ B9 r- O0 r
- "dimtxsty"
+ a3 S: g' N" X9 t) s - ))6 L# j4 g' Z( [3 \$ \9 a" r3 w9 h
- (progn
6 N) ]# Z9 z' J! _ - (setq sv_dvlist (ddimen_getostate dimsty)
+ |8 }8 v- P/ A G/ r8 |( i) {# C - txstyname (assoc 340 sv_dvlist)
% k U1 `6 O+ m: c6 c& D* c: S1 D - sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))' C( j& z3 ?7 o0 f9 v* R/ \
- txstyname sv_dvlist)% }4 f3 w `3 L& H8 t
- dimlist sv_dvlist+ `$ Q: i$ j: b, Y. f
- )
8 l# s% ? p. z/ s - )4 T, Y" `; D! Y+ P. t
- (if (= dimtype "DDLEADER") g) v( L, }7 S7 B7 a
- (mode_tile "mod_format" 1)& o* {1 m( l C
- )
; a" Z1 h) x' Y1 t u - (action_tile "mod_style" "(setq dimsty (ddimen_style))")+ Y! k ~% d+ P8 c$ d/ R
- (action_tile "mod_text" "(done_dialog 4)")# P% N4 W' X' p0 U6 q7 G& F
- (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")' d2 ~+ ]; [8 D4 h
- (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")
" n. A+ g- J0 E4 z) H - (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")
# \1 q6 s J4 Q- G; S: f& g+ Y; g - (action_tile "accept" "(done_dialog 1)"), e% n$ @8 m# l" Y
- )
: U+ S4 C- d9 v* A: W( l - ;;9 {' K" T0 C9 b' e1 P0 m) Q0 p
- ;; Get dimvars that have been restored. Y. L- c, e5 h6 {
- ;;6 t2 v1 b5 C% @3 i2 U2 F4 l; l
- (defun ddimen_getvars (/ elm dvlist dv i)
$ i7 H. ^8 Z. Q# k; `# W - (setq i 3
J! u. \" P/ F' m- ?1 V - dvlist (list (cons 0 "DIMSTYLE")
6 T L) P8 d# d- R - (cons 2 (getvar "dimstyle")) (cons 70 0))& t1 O- S; @2 f1 c3 \
- )9 F0 [) p) f$ `7 @4 A
- (while (setq dv (nth i dimtbl))
# T8 J( q. y0 q$ U$ B U8 K - (setq elm (getvar dv): d2 J/ Y) V) E. G
- dvlist (append dvlist (list (cons dv elm)))5 A" b* I; ~6 l! u
- i (1+ i)
7 @9 ?" L5 F) H - )
3 T5 l o2 e% K9 C4 k* _9 k - )
8 m+ r! T7 ~2 T - dvlist3 Q0 G1 _9 G; S1 m1 h
- )1 g5 A7 o% u- e$ i
- / u! j$ Y2 V- N8 B# c
- ;;: [) [0 A C- T w
- ;; Get the original states of dimvars. This is for DIMENSION entities.7 L: L- ~# r S6 X
- ;;- ]. K% I4 s. L1 w
- (defun ddimen_getostate (dimsty / dvlist elm i dvvars)
0 u( u# H3 a; N0 u6 Z, h) k0 K - (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list9 _6 S: o$ c: h$ ~
- dvvars (ddimen_getvars) ; Get dimvars for that entity8 ?! ^/ N0 P, e2 _
- i 13 R. f! J9 Q' r. V! R* q
- )/ M6 B3 H+ o+ E9 h5 |
0 G( f) S3 V- z' l! b8 \( h% r% i- ; Create a list that contains values of the selected entity." V, A, q7 F& i$ w! W2 t5 F
- 7 ]7 e/ A" ^* N+ [- v7 T1 S4 F
- (while (setq elm (nth i dvlist))
( N: _3 p# L, ]9 J* f: x0 h3 k - (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)% W+ ~! @, ?3 `. F1 H1 U0 z
- i (1+ i)# E4 e) |+ \% W) Y) k! @
- )# B a$ f7 E' F$ b2 P
- )
- e3 l( |$ o# c: g - dvlist
1 t3 Y0 e& u* n8 m: V3 \- R5 D - )" \8 ?1 @! y# w6 J; j* U# x
0 Y+ p% z- p) V: h% y( K- ;;8 a$ i2 Y, B" P$ Z! W+ _
- ;; Restores dimvars of the selected enity.
/ @0 a+ G% s2 |9 f" i" P - ;;! f7 W9 D' {4 h. a9 ?& F! ^
- (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)
$ ^7 n5 x, ]6 L. L - (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
2 y! ^7 Q! W t0 x4 ?5 `+ Z- r - "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2": W9 _' L, W1 ?" Q, h
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
8 W) m( J, g. C \# Z8 U/ L8 P - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
7 f5 x7 ^5 r1 P" X5 n5 X - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"7 q, H% B: i- M; V8 i/ ~1 C r
- "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"
- o+ Q8 t9 [3 ~( H, e; J- t2 l - "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"* I. b. W- E. h0 x5 d8 a- P
- "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"/ @# M: c8 T2 {# N# I
- "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
% K- n; x( w. T8 Z; Q, \* ^& ~ - "dimdec" "dimtdec" "dimaltu" "dimalttd"
$ p2 B! r- i5 _ - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj", x9 l7 {6 A2 U5 d
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
' L( a+ N: {5 c# x: m) P - "dimtxsty"
% u; D. k' [' _. z - ))- ]8 E# j# W; L* M6 _( i( Q7 O
- (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings% g, Z; K8 S7 y5 D" t
- (progn/ Q' b @) J. \3 Z
- (setq en (cdr (assoc -1 elist)))" h1 ]4 e9 t5 `
- (command "_.dimstyle" "" "" en)
( x# Y/ ]2 h5 d9 m5 h! @ - )( E& B6 N q, n: X
- dimsvcurset
" L. `5 g; {" t; i Z% b - )3 {( H* S, E* B( K0 O' i% J* S
- ;;
% K4 t/ F9 K" K( c+ H( l - ;; Modify Leader( h1 L& C4 V5 l
- ;; C# M. V$ @' T7 [ C3 R6 l
- (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl
& P% k8 ]8 l. r/ L - dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
6 q/ b9 x* l7 }: n! M) }) T) c - dimtype dimsvcurset)
3 u1 h! y X l# Y8 E1 D2 { - (setq dimtype "DDLEADER": `. Z( ~7 s! f, f% |- n; `
- dimsvcurset (ddimen_dimsty_restore)
( u; m Z$ ~0 _$ k1 l& Z - )1 p" m" J9 _& U# Y
- (if (not (new_dialog "ddleader" dcl_id)) (exit))& y( W& f. b3 _* e
- ;; Set initial tile values
6 j$ u: @8 g' N( G1 W9 S - (set_tile_props)( o/ q r+ O! C# w0 r! l( M' v
- (set_dimen_props)2 p% K" g" K9 T: G; c4 Y% M
- (set_tile_handle)6 `& n f* j% N- {' e
- ;; Define action for tiles" Q" O8 i7 M) j$ m: ^. B' F& s
- (set_action_tiles)
0 |/ P9 \, Y: L# P% m+ |. v$ F- [/ s - (mode_tile "mod_text" 1)
; a, \# _% g i* @7 [ - + `: D+ x, a& k; _2 [7 K0 S0 B
- (action_tile "mod_style" "(setq dimsty (ddimen_style))")% S P) G ?' p; N' k
- (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)"), z; t/ M& J# b7 M6 O
- ;; Get ARROW and TYPE.' a. x" S k% d0 N; Y3 C' Z9 f
- (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))
" O% j6 y( j6 Z- s0 Y - (if (= 1 (logand (cdr (assoc '72 elist))))
. Y7 ^% A7 k8 S" o3 `" { - (set_tile "s-s" "spline")- [/ Q% G2 ^5 K; k( }0 I+ O7 R4 j
- (set_tile "s-s" "straight")' C' C5 V; j9 _8 o
- )
# t) N, J1 D$ U4 w+ g7 n( X - ;; Start the dialogue.8 s) A: X8 N, x0 x/ }! m6 t8 Z
- (setq dialog-state (start_dialog))
* E& t* r8 J5 | - (if (= dialog-state 1)
/ m( ~( r6 `% [# l" t - (progn
1 V. c$ M# Y6 h - ;; update the style
# m3 R" u6 t2 v. e" l t% D - (if (/= dimsty stname)
% b1 K6 `% v$ }, C" z Q - (progn
* l7 u9 F* U. w; K/ n" V - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
! \% s' {. ]& w5 \; q8 R1 s8 I+ i - ; doesn't have it.
4 M j; e/ `6 `7 l9 g6 ~ - (if (null (assoc 3 elist))) P3 T6 P F) k5 l3 P
- (setq elist (append elist (list (cons 3 dimsty))))
. J Y& a k1 f' ^ - ; else just replace it.
o8 P" i) h: f! o3 A+ ^) O `8 u - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
/ A1 `8 D% c( \* p - )2 A$ O) `3 h2 P- F/ W
- ; refresh sv_dvlist with new dimstyle.: @' F! H1 w9 R p' V& @
- (setq sv_dvlist (tblsearch "dimstyle" dimsty)): j/ Z! v: o# J9 ]% r7 x. `' R
- )1 d0 Y# Y1 C6 j+ Z
- )
% ]+ m9 X0 b Q4 ?( O/ w - (if (not (null dimlist)) ; attempted to change dimvars
- n' x: T% C, t0 k+ G - (ddimen_complist sv_dvlist dimlist dimtbl)$ u% X# E7 R$ p/ ]7 b( P
- )
* {! c7 w8 V# f, B Y6 d5 O; t7 m - ;; update for ARROW.( j. V' R7 g7 |& y' L/ j/ O
- (if (= "1" arrow)
0 T5 n) o" w) m - (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
+ w% O, O, X' E: V, Q4 Y - (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
; K* b6 U! ?. y2 F* ?2 T - )
9 z* |6 n4 h' }& j6 u! f - ;; update the TYPE.: s! C8 t: \: c0 Y& f7 g
- (if (= "spline" leadtype)
6 H% }- B5 s2 E! }; b - (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
& D- a8 t9 e I/ a" R: Y, x2 L* l - (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))( ]4 h. j1 e ?) c7 m
- )
0 g6 Y5 w' A o+ |( F6 J - (modify_prop_geom)8 ]7 v; F% Y% V3 r3 D8 m) Z: A
- ;; update the Color
/ Q) B$ {4 p3 C; S4 g( g! [5 j - (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))
$ }9 v# Z3 H4 w) ? - (entmod elist): K0 }( ~6 u; q; G4 j* g
- )
5 K$ d) r7 M# u7 c; @9 A - )# i) ?& w/ \+ L$ D2 v" f0 r5 R: u# ]
- (ddimen_setvars dimsvcurset) ; Prepare to exit' ]. r& S- M* K7 t+ x4 B4 I. ?
- )
) _! y- ?- x' c
' @' G1 @8 ]' {! _. a- ;;, M# ]" [7 o8 t& V: z3 o* ?
- ;; Get dimvars of a dimstyle with overrides.3 I' }* L/ o& }# M( i4 X# b m# y
- ;;+ s, b8 D( k# O0 \- `; V- u* o
/ ?+ o+ w/ W- m8 w) z0 y- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)/ C9 p- Y8 W% U1 Q$ M
' U$ h4 I5 v: ^- ;; Get override information for the specified entity." Q; |5 x5 C! W7 y! T2 _
- ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we
" D; n( y! E% I, f. L) F' a - ;; must obtain override information through this tedious operation.. k4 B. D1 W+ U
- (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))& v2 w* S+ M) d8 j
- dvlist (tblsearch "dimstyle" dimsty)
3 W$ e m) G4 z: I: Q1 r8 X - i 2
4 f' I+ B$ {8 p$ b Q* R - )
7 w; o3 W9 ?2 q- Q# L; r - & Y5 n# z5 I. v6 |# T& ^
- ; Update the list with overrides if overrides exist.
5 ]3 Y+ `1 y4 k" s8 `! k4 `
~: p4 y0 \7 x7 E- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr)))), v# R8 X6 W) W! i& I
- (progn' T1 d+ }. g6 V
- (while (setq elm (cdr (nth i dimovr)))) M( V+ S9 n% w8 Y9 h* P. `
- (progn( d y9 h& l& r# N- @, |
- (if (or (= elm "{") (= elm "}"))
1 @* [5 ?, S/ O - (setq i (1+ i))
0 K! \! Z g, w - (progn2 L0 ~- S! \7 F" K# l. I/ M
- (if (or (and (< 180 elm)
; J* P# J) L8 P% a; l3 E, q - (< elm 190)' J* R5 l# p% R0 D1 J. B3 v. n' ~1 m; N
- )% j; Z; p; E P2 k3 U/ ?
- (and (< 80 elm)5 J8 v. b: F# v9 d
- (< elm 90)! M3 Z3 H7 [" E l* C ?
- )7 u/ C/ I: T" O/ J. m
- )0 {9 B" w2 i2 b' K: ?
- (setq elm (- elm 10))
* {8 s m8 J. s: u - )
5 ~$ _3 w$ e; y7 g- M2 U4 M - (setq i (1+ i)2 c" l) v k$ f
- elm (cons elm (cdr (nth i dimovr)))
1 ~" t1 C5 e6 c9 f' g. f' O/ t - dvlist (subst elm (assoc (car elm) dvlist) dvlist)2 ?& u- c) r5 E8 W* R7 W' ^
- i (1+ i)! s+ }9 X& z' x3 r
- )
8 s- g: |$ u- C - )
4 v+ H% d. Q F- i0 M/ ~ - )
% V7 c8 s9 t$ {$ G - )% d) p! u& V/ B& e" n- G$ a6 m6 G- j
- )
' K: ]4 K; g) W* Q, b8 B' @* W j( y - )
- J. N. I" h! o. x+ \ - )* }7 \9 ]3 J8 [4 `1 W
- dvlist- r6 |. X2 h$ N4 u. V+ N
- )8 A! D8 R( ?! @) p d
- / C. V J9 H' v- x) J
- ;;- T" V, F7 _( z
- ;; Modify POINT
5 i" L- g6 G. m* R8 a. E# q X7 P6 O - ;;
5 z0 w+ i; U; N; M) i - (defun modify_point ()
+ r4 Y) o6 x2 F; U$ G4 J - (modify_properties)
) H9 U9 v6 b- h* V7 ` - (setq pt1 (list x1 y1 z1))9 A$ V7 H# K# |/ U
- (tempmod pt1 10 0)
! m3 P" k5 u2 X! i/ I3 k - (entmod elist). B0 s( r% ]# {. U' V1 b! p# R
- )
5 ], I$ E' W) @ }' z$ _
. [6 [! l5 x4 z4 o: x- (defun ddpoint ()
4 Q- N2 B% ?& I: W* q$ M5 c2 e - (if (not (new_dialog "ddpoint" dcl_id)) (exit)). E# y9 w# c' ~+ h! ~* ~
- ;; Set initial tile values2 t$ ^& f' |3 L
- (set_tile_props)
6 x1 d7 {) }( Z$ u! y. V - (set_tile_handle)
9 G; p- T" q9 y9 t) ?& X2 y1 u5 j7 Q - (set_tile_pt1 0)5 n3 Q& S; |$ C4 z- |
- ;; Define action for tiles
! B( v$ O+ }# y) P- d1 U - (set_action_tiles)
$ F+ |7 a- r. F/ a" ~6 ^4 W - (setq dialog-state (start_dialog)). A, {" s2 K. ^9 p
- (if (= dialog-state 0) R; U: C C3 ]
- (reset)
9 q3 e& W. g) O - )! o$ s- v3 u4 ?! Y7 g, @. f
- (if (= dialog-state 3)
- v" W& G: {: C! l* S5 Q - (progn
% z! I+ a) \$ Y' b# O# b8 j - (modify_point)- k0 v; x0 j9 [
- (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))& v4 _; C+ m" u2 {! f
- (ver_pt1 0)
- K8 |) Z- B9 Y5 [. q! t6 r, N# Z - (ddpoint)
7 Y+ J( t& p' Z d( M- t, ] - )
$ L8 F) v: L1 k' [ - )/ F* a. X% D/ c Q3 {2 q! }2 I; l
- (if (= dialog-state 1)7 T0 {% @ @' |- W5 r
- (modify_point)6 F4 Z& {% l" ]* X
- )+ r0 H' S& p0 Y" X
- ), G( L9 F: }8 N% N. [4 i9 h/ d
- ;;1 _# d% O/ k) C4 p7 g: u
- ;; Modify LINE
3 J, A6 H# T8 U: |: g1 D - ;;, W, z4 `+ h8 E
- (defun modify_line ()5 e' r1 P/ V+ H; k
- (modify_properties)' C; k# w5 S/ s& o+ l+ H& H; Q
- (setq pt1 (list x1 y1 z1))7 a8 B. z) ~- F
- (setq pt2 (list x2 y2 z2))
: M0 G9 C: x- Z - (tempmod pt1 10 0)/ W1 [- H( }5 B1 K" d' N. R
- (tempmod pt2 11 0)
# G7 X& D+ L2 x; D+ v9 p - (entmod elist)
0 e& [, _) K& A+ C8 K& C - )
4 S- _9 s9 X( K4 x9 _ - (defun ddline ()
7 V1 P, e, }. e: Q& ], {$ t - (if (not (new_dialog "ddline" dcl_id)) (exit))+ q# s* a+ [! ^2 Y2 c! H' d. C
- ;; Set initial tile values
. j5 w7 D: G. Z2 Y6 Q0 h - (set_tile_props)0 i3 |7 V6 E9 g' S
- (set_tile_handle)
8 L9 f! E; }; ^3 p' U. i- o) s - (set_tile_pt1 0)4 X3 }0 x# L0 i5 j
- (set_tile_pt2 0)) j, `/ D, }4 q7 y2 G# W
- (line_calc)' V" b( Y9 E$ D8 b/ h# a+ R; q' n8 @ x
- ;; Define action for tiles
6 V7 x% A- c4 M8 s2 p; e - (set_action_tiles)
0 Y8 Z& F$ d4 ] - (setq dialog-state (start_dialog))
5 p+ T8 w. T w - (if (= dialog-state 0)
9 \8 U( R6 ?5 V4 G& A4 u - (reset)) i3 Q; V; R3 j8 b! v
- )
3 m" M$ s6 R0 \ - (if (= dialog-state 3)
" N. B4 E0 ?2 }% [2 d - (progn
: d) X' N3 c- Q/ \5 r* O" E5 Y( i - (modify_line)+ p S3 `( B" k! d+ A
- (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))( j' _/ M) I- V
- (ver_pt1 0)
8 k0 c( v$ \7 S2 x - (ddline)
3 A5 p7 C2 s) } - )1 G. _" p2 y, P/ U6 a
- )
3 j1 a# K: O; W2 Q+ p7 _! | - (if (= dialog-state 4)
6 p4 Z# O; L1 K S0 f* X - (progn
5 m* t+ ~# ^: L - (modify_line): S p r( m2 v, ^/ l' S
- (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))* X/ b+ G) U0 b' O4 A- o8 g
- (ver_pt2 0)4 l. q& J! m- j3 S, o
- (ddline)5 u$ `! {. W" Y8 ` {; `
- )
" ?0 K1 {6 [) I" Z - )
n N! l$ u( B' g# L: w - (if (= dialog-state 1)
+ e- { ^; \$ r. S# K- Z1 Y) m - (modify_line)
+ s$ m# w$ T6 N. H$ h. ^! D$ t - )# Q* Q) H" u( |3 z- u, \
- )
1 q, Q3 u4 i ?7 d' B7 l( A6 @ - ;;
L; l2 _% W! P9 i' g, x0 u) }5 h3 @ - ;; Modify MLine
; s l$ }: e! k6 s+ u - ;;
: X! P: L& P: U( Z& l9 { - (defun modify_mline ()
' }" p3 t+ B# n4 l3 n) T5 ?& W9 P - (modify_properties)
4 A2 R* H3 c, r4 d. S% X - (entmod elist)
& Z, V9 p5 l8 a - )
; a/ s7 @* G# z1 w$ T) e - (defun ddmline ()/ M( s3 |! b( m" P8 U& ^2 v
- (if (not (new_dialog "ddmline" dcl_id)) (exit))
' P' D7 T+ w0 v. k! m8 e& b' v2 ]) O - ;; Set initial tile values
: u4 Q7 J& K& B6 U% z- m - (set_tile_props)
% ]4 C- o5 n9 X! M( A - (set_tile_handle) C$ D: P+ S7 N
- ;; Set mline style text field.% A6 s. b4 o; i* I
- (set_tile "ml_style" (cdr (assoc '2 elist)))2 x5 t4 R" V: j: E! r
9 O6 e# m& I$ u# N% W. {( _* g- ;; Define action for tiles
, @; g+ K! Z; b5 n$ a - (set_action_tiles)
2 z$ F% b3 ], W7 H ]# t1 o: j8 Y - (action_tile "ml_edit" "(done_dialog 3)")6 F) A$ @' `7 s7 ?
- (setq dialog-state (start_dialog))
+ F4 U' P3 g. W4 P( `" B( Q1 @ - ;; Dialog cancelled, reset to original values.
8 \! _! |" m2 f! t, z - (if (= dialog-state 0)3 n7 Y; M7 d9 V: k9 J* f; ?- `7 ^7 `
- (reset)
7 q4 a0 A. B! C/ V& t - )
* { w( ~0 w" z, G" n' l* B - ;; Dialog OKed, update the mline.* D* n0 Y' I. b2 t
- (if (= dialog-state 1)
& S$ E" B1 e' }1 E) Y - (modify_mline)
& s: z8 e& K9 w7 a% f( M& a - )7 `8 l# | A- z* F# v9 J
- ;; Edit Mline, call MLEDIT. ]" ^' X# ?; N' c p8 _
- (if (= dialog-state 3)
. s3 Z& k+ I6 j5 s) V - (progn, N+ V. G2 y6 @1 ~ P* ]% X
- (modify_mline)$ J L5 c& ?- R. V$ I
- (command "_mledit")2 v* I8 s- M' K3 ?/ i
- (ddmline) R) h! X. b3 c6 O L
- )9 v3 n: U( D8 f6 t2 j( R
- )- S* `" b$ j: D, u& [( j+ ~
- )9 Y6 f' ]- L1 V t# f# Q- q
- ;;
) ]1 C% i4 k! A" T: K+ N) s i' b& q - ;; Modify Xline
6 F2 a2 t+ v6 X# ] - ;;5 i& J+ ^0 V* G6 H3 T
- (defun modify_xline (flag)2 e2 O) S/ k1 p! b! i- @8 g9 U
- (modify_prop_geom)
$ m% z) B, ?6 l+ r4 x/ b+ t T - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))9 r0 i8 g8 F$ E5 {% p
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))1 f; Q' J. w) M, M. {7 L$ K
- ;; Update the Root point.
* L9 h$ t8 K! z$ |" R3 c P, x- s - (setq elist (subst (cons 10 (trans xline_pt1 1 0))1 R# V9 \) z; \
- (assoc 10 elist)* m; Q% E5 N/ E( B' T
- elist: w! X* a6 i& {5 k( U2 Z( h
- )- c9 K3 g( j. N+ j1 g: F- ]
- )' A* {8 ^/ c+ q/ @( c
- ;;8 n$ P0 Y% Q" D# s! T5 j/ @( q1 `
- ;; Calculate new Direction Vector WCS% U+ X" _- l9 B1 g2 V% Z% K& p+ V
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))' q- t: N: K* V# G
- " o6 T& y1 A- L5 d
- (setq temp_dir (trans xline_pt2 1 0))- Z/ @) L8 }6 ]
- (setq temp_dir_x (car temp_dir))" j+ P" U9 m1 u/ t- |. ?$ m
- (setq temp_dir_y (cadr temp_dir))5 D) X& ~& M' T$ ^8 }& _
- (setq temp_dir_z (caddr temp_dir))
9 z6 N9 G1 s d0 e& C
: o: _6 {' J; e; P# Y* u" f3 a' S2 Z- (setq temp_xline_pt1 (trans xline_pt1 1 0))3 r" I* A( z i6 M' x: u$ x2 c( m
- (setq temp_xline_x1 (car temp_xline_pt1))
6 [; q% E+ Z: }8 O - (setq temp_xline_y1 (cadr temp_xline_pt1))8 v ~! j3 L. ~3 D2 X$ O, y7 K( K
- (setq temp_xline_z1 (caddr temp_xline_pt1))
* r; r% V4 B- l4 X+ Y; x
; }, @! f, f" s( w2 ~% t- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)7 r% ]: p4 j7 d. Y& X
- (expt (- temp_dir_y temp_xline_y1) 2)
) h$ P5 A8 T( M2 D, X, _, Z - (expt (- temp_dir_z temp_xline_z1) 2)
6 j1 y1 q% b& y1 ~! s5 E* {6 d* s* [$ f - )))6 D! _9 ^/ O- P- u" U9 F$ t1 V V' b
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
9 r- s$ Z; {* [. P+ j - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
. M* b, M( w' c: M - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))5 Y5 ^# R% j$ q- X$ t! `
- (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z)). a* q* d4 u9 A
- (assoc 11 elist)
( P. u- r: e- d& ~) m/ M3 p - elist# }4 E0 Y9 i: z4 S
- )
. ]2 w2 C3 R- _ - )
P6 ^5 {2 V6 x2 h% l/ p - (if (= 1 flag)5 ~# Y* ]8 L+ q! T
- (entmod elist)' O% x2 h6 `1 @# ^ b3 c- ~% y
- )
+ e; j8 \9 F0 ~3 S - ), Q- M* e3 T* K# F7 F
) S# T: V8 W e8 R0 M" N- (defun ddxline (), H. e; K+ D" }/ {) r! X
- (if (= etype "XLINE")
. I L/ w7 C9 s9 o R( ^& p6 {# ` - (if (not (new_dialog "ddxline" dcl_id)) (exit))6 w) p. g! ]% r9 i6 K- C1 n) p
- (if (not (new_dialog "ddray" dcl_id)) (exit))& h& H! h2 J8 w+ [8 t9 T, W0 \
- )
. H" X8 O: E+ B) \% x. } - ;; Set initial tile values: P8 V! @0 F( |0 B8 L- N; |$ H4 k& y
- (set_tile_props)
( s8 I# \+ b! N0 | - (set_tile_handle)8 ]" n1 _% G4 |' z8 |6 m. {
- (set_tile_xline_pt1)9 Q% M5 L) @: z) ^+ m1 b
- ;; Convert to UCS and post Direction vector.
# |* } G4 P3 a - (set_tile_dirv)8 y' G& h2 E) ~' ?! q1 P3 C% \
- ;; Calculate second point by adding Root Point + Direction Vector.5 `+ n4 S. G C2 [
- (set_tile_xline_pt2)+ L+ x6 ^8 w6 k! f2 `% @( n
- ;; Define action for tiles
: {: y% d0 }, ]# M/ T+ I - (set_action_tiles)# v, `; A0 p/ O6 _% e$ E) I
- (setq dialog-state (start_dialog))
0 b# h% L: e: Q( ?: i - (if (= dialog-state 0)0 ]" g, j' S/ j9 l5 @$ m, J
- (reset)$ ]# e7 L! U- E, _! i( c
- )# P2 h, ?2 u" n4 A
- (if (= dialog-state 3)- c( {0 N- b" K) O% ]8 y6 G& r$ t
- (progn L) y6 T, g, N. S; H7 z
- (modify_xline 1)
* C' K5 \' N( a0 {$ N9 ?8 T* ^+ f C - (while (equal xline_pt2
- W2 O- f& o. R0 a - (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)) C. E- s. d5 P
- (princ "The Root point cannot equal the Second point.")9 Z* T, b- L( N' B+ @
- ) H" w# S/ n% S9 g! o4 u) n& Y
- (ver_xline_pt1)( D1 s. T" E v
- (ver_xline_pt2)
* a, q1 j+ G1 B( A8 `7 F* F: s" D - (princ)
( `5 D0 Y; U- W. r( ]2 S - (ddxline)" v: F* V. T6 i: e
- )
0 V" z1 a* J" E6 s4 f, E - )
J- u7 b2 ~% b$ p# n - (if (= dialog-state 4)
6 T- [7 M S/ | c - (progn9 r7 p" |2 z2 P. L/ Y9 ^9 B7 Q v
- (modify_xline 1)
) y ?2 ^9 p0 c. h _ - (while (equal xline_pt1
) N) @7 H2 |, d* W$ ` - (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)
0 S$ e7 ~% T0 e! [ - (princ "The Second point cannot equal the Root point."). P8 E B; U0 y& H$ D! \* A
- )2 G+ U6 l- r7 O8 T& ]$ M
- (ver_xline_pt2)
2 x, u9 M0 S* M! R1 O# Z9 K - (princ)
$ R$ u% v/ T6 l( N; N( g+ N - (ddxline)
: D0 u: B+ @4 Q - )
, ], m _2 h- A2 w! _+ g; @ - ): o; ] ?/ j9 U5 u' u8 l8 I$ x
- (if (= dialog-state 1)) W5 S8 J9 q8 ]2 A
- (modify_xline 1)/ H% i# f" U3 Y B( K
- )" Z/ G# ?; ?% K# z
- )
- l& j( }9 a8 S# _# h) { - ;;; J1 |6 E5 o! J3 T5 h) n5 `
- ;; Modify ELLIPSE; z9 B; w1 T H) w
- ;;# j# v, w% \' z; n
- (defun modify_ellipse ()) e3 j& {( ~) t7 }+ ]% q$ ^) F" U
- (modify_prop_geom)
0 E) D3 a2 B- Y: c; F - ;; Update Ellipse Center Point value.
2 m U. _3 V; [% J - (setq pt1 (list x1 y1 z1))
* j1 N% i1 I0 U; w1 J1 j7 G - (tempmod pt1 10 1)
* N6 I( X, t$ a4 w: k - ;; Update Start Parameter value.0 D$ G5 D$ @! u9 `6 F/ D
- (setq y_val (sin st_ang))0 \% N7 F- e" V* ^/ z; ]
- (setq x_val (* rrat (cos st_ang)))
% W1 @* M5 I M - (setq stparm (atan y_val x_val))
# @. ~( _5 Z1 D' o/ y - (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))
4 K F d& U6 \! w! P, x% [ - ;; Update End Parameter value. Normalize it, if it's less than. ?8 g0 I6 T. b
- ;; the start parameter.
$ F1 i( X- ~: L4 X# g- \ - (setq y_eval (sin end_eang))9 a7 k) u& z! K
- (setq x_eval (* rrat (cos end_eang)))
) s6 H# {- A7 X* F+ i ?& P - (setq endparm (atan y_eval x_eval)) d7 _2 g; K {* T
- (setq diffparm (- endparm stparm))7 q8 P" }7 E$ ^ D, n
- ;; Epsilon of 1.0e-6 radians for checking a zero length arc.; p+ [; u$ `- L+ K6 W6 v
- ;; Since zero length arcs are not allowed - construct the full3 o' ~0 G" \! c4 z% R
- ;; ellipse in this case.
6 F& O/ ^& T( w% Q/ H - (if (<= (* diffparm diffparm) 1.0e-12)
6 h& _6 m3 r1 Y6 |6 e. s - (setq endparm (+ stparm (* 2 pi)))) U) U' j2 Y7 l2 G# [
- )9 a* U7 }0 H9 I0 T7 E) J
- (if (<= endparm stparm)' a0 ~+ M; P" H( I
- (setq endparm (+ endparm (* 2 pi)))
! w' g! r- S1 y+ S+ [" c - )+ [' \* j2 T( c( L" b
- (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))7 M* x3 `' _* E( w2 T! q
- ;; Calculate the Major Axis Vector by first calculating
$ q8 n7 `3 |1 R; O A0 \" \% X' v4 k - ;; a unit vector using the old Major Radius value. Then
- b C: M* k$ q) M: X' R2 l - ;; Multiplying that by the (possibly) new Major Radius
/ W( j5 m9 F9 \ r. t) @ - ;; value to get the new Major Axis Vector value.
1 M1 M6 y' I/ s7 }! E - (setq unitxx (/ xx old_majrad))2 P7 y. P" r/ w
- (setq unityy (/ yy old_majrad))
( K, ~+ v/ M/ D: T- n/ ?( r - (setq unitzz (/ zz old_majrad))) l) t% L* r, ?2 W5 ~3 {( P
- (setq newvecxx (* unitxx majrad))7 K* F9 ^: o; e1 j% ]
- (setq newvecyy (* unityy majrad))
0 g2 M% @. m/ [9 h - (setq newveczz (* unitzz majrad))
2 Z" d% B: T$ o! l! \1 d; T - (setq newmajaxis (list newvecxx newvecyy newveczz))* T" W- S5 s% Y' Y( k, P/ `/ [
- ;; Update Major Axis Vector value
% y( Q# y8 ]8 p; Z+ {7 `; d - (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))) D$ o+ U' |1 d" t
- ;; Update Radius Ratio value
) M3 [8 h3 a* ]( V' L2 w5 j - (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))
: _/ G _% ~& b$ X - (entmod elist)& a, u' o( `' o5 y- z
- )) z% p' Z. ]8 V% e: E" r% U; e
I- h( j( E9 [4 {1 F- (defun ddellipse ()5 | d, U% a+ J: p; ^$ B/ h
- (if (not (new_dialog "ddellipse" dcl_id)) (exit))1 o# ^/ ~$ Q3 y" i, K N4 M
- ;; Set initial tile values
4 Y) h% S9 r5 s: p2 C& g - (set_tile_props)8 y. x$ q1 i9 U* f
- (set_tile_handle)
3 q4 b \5 x1 @" E ^8 | - (set_tile_pt1 1)7 v: G9 J- e' ?! m
- (ell_calc)7 K8 [0 ?1 J2 E/ q2 P# \
- ;; Define action for tiles
' c# u5 d+ j# U2 s$ i - (set_action_tiles); ~* `7 g7 u' N# [8 G: M
- (setq dialog-state (start_dialog))
6 F) N- H. S! C' }$ a) q - (if (= dialog-state 0)
# |0 v7 h, Z; ^* l: G& H( G; i6 l# |2 P - (reset)
8 h: S5 K1 h7 U, V6 C' R1 ` - )
9 |1 O$ ^* k& N6 Q8 k4 H2 |! P' C - (if (= dialog-state 1)
8 B& B' }4 m* G- U4 x9 p9 I# _/ ] - (modify_ellipse)
! k: D4 ]0 t$ k- ^ - )
6 I0 ^$ C) N: R# X( Z- d - (if (= dialog-state 3)$ f. l& }3 Z# {2 j2 R$ W
- (progn$ A1 t1 w i5 M$ _& D* b0 x# Y) Y
- (modify_ellipse)
/ e+ ?9 r' P3 m* c2 z - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))) y K$ T) x7 ^, d3 w! P" `
- (ver_pt1 1)1 x1 R7 ^2 B& \, R* H5 T2 M) [6 K' x& \
- (ddellipse)
" s/ z. e- M" m - )2 u# F9 T3 }" _( c ?7 g4 A1 s9 S! O
- )* D- E) O+ J8 L2 N. l
- )! ~# U, E. v" w. c
- ;;
4 U) V% U1 F M. l- J7 L - ;; Modify REGION, H" }( J1 A) k! h, c
- ;;' o* j8 U, |0 s H2 u% _6 K6 k. N; S& P
- (defun modify_region ()+ v _5 v2 q& I0 S+ r" f
- (modify_prop_geom)1 b; z! z( ^9 x
- (entmod elist)4 E. b9 P2 p8 w/ ]2 b
- )
6 @* b. v1 @3 h9 e8 b
' C) o/ \) ~$ ~- (defun ddregion ()6 N; b. a9 p3 j1 O8 V* Z& s* D, ^
- (if (not (new_dialog "ddregion" dcl_id)) (exit))
; e4 K" V& ^: q; ]* a - ;; Set initial tile values/ \) c) ~1 P- S, q% H5 l
- (set_tile_props)
# ]- U% r6 d9 B" j* n3 ^* \6 |* } - (set_tile_handle)) s- r. V( M; ?' `" P# f
- ;; Define action for tiles% ]% q' \7 f& |! a" n% i
- (set_action_tiles)/ m6 h8 m- `* p3 {9 h7 G
- (setq dialog-state (start_dialog))+ S: c' ]! N h4 ~
- (if (= dialog-state 0)) u/ _! F/ p1 {/ W5 a) Q& N
- (reset); L6 k6 l9 e; l/ G& x
- )4 z- y t2 }& C3 C% ]
- (if (= dialog-state 1)
; w3 [( C/ I5 m$ J G4 _ - (modify_region)
6 M6 l: v" E: }5 e( b/ {9 F - )
6 Y: X' s! J& N% ?$ l" V6 T - )2 T" ?5 [% {) h* N: }
- ;;9 W9 z! c0 l6 U; v- Y) a% R1 H
- ;; Modify 3DSOLID
1 C: z4 l3 q" O& e! A - ;;
! ], M- F3 N. c+ [ - (defun modify_3dsolid ()+ h0 V$ N/ g5 _: {* U
- (modify_prop_geom)
" k8 u& ]6 z% N( Z9 M" N! H9 g. w - (entmod elist)4 b2 q6 P4 N8 D
- )
& Q+ g" X# L5 ]) ~, I6 ] - / f, _# F2 I& { \, p Z4 Y
- (defun dd3dsolid ()
( n% l; |: x! V# u, |5 i - (if (not (new_dialog "dd3dsolid" dcl_id)) (exit))
) ?' u- `7 B: w: J6 P - ;; Set initial tile values
. D0 x3 P ^$ A' q1 s& h3 l, X - (set_tile_props)9 m' @6 ^- j% N* ]4 `
- (set_tile_handle)
/ N; z9 ~+ ~ H( _! @% @ - ;; Define action for tiles
7 E* E8 v" T- p% M g - (set_action_tiles)2 g, O& Q7 v, M3 ?$ X, Y# ?
- (setq dialog-state (start_dialog))
9 t w1 i. \) W3 e$ U - (if (= dialog-state 0)# a: I3 G$ `" M$ ^3 a( N! |
- (reset)" U5 }$ H' o3 _/ J8 E
- )% o0 y5 r9 I- ^6 p" q# C$ \
- (if (= dialog-state 1): a7 F9 B% i' Y6 Z( U2 r! o# R
- (modify_3dsolid)7 m* x9 i1 O/ F q7 d
- )
: w% _. k# s, T9 _+ J - )
; _6 b+ ?+ f: S/ N9 u1 K) e - ;;
; R2 {/ y* }# B1 ` - ;; Modify AcDbHatch* P7 D- m9 g/ ~, T/ }
- ;;; v9 m+ @* p" ?3 k* \! P
- (defun modify_hatch ()" m' R, [6 u. z& @7 K
- (modify_prop_geom)
9 d' s! J& h5 b) J/ Y9 S6 t/ p - (entmod elist)1 A5 C' v M( v; ^+ c
- )
& @# B! G- o' v, T8 p: D! \ - 1 {' s) S" M8 L' {! o
- (defun ddnewhatch ()
( X) v4 _8 F- K H& | - (if (equal hatch-elist nil)
. G, y. P$ {+ y4 A+ \ - (setq hatch-elist old-elist)
2 K* Y, A* b2 Z- b - )' a5 t0 X2 t1 {) B
- % m& G! J5 d( e/ u! I' ]0 M; {7 X( Y
- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit))
9 h. w' ?0 _! j. L - ; Z! h* M1 r" C
- ;; disable the thickness tile% ~0 b4 I- \" o. e0 \$ z
- (mode_tile "eb_thickness" 1)
7 L: u' f; G: H/ Z/ H - (mode_tile "e_thickness" 1)3 a, `: X) c8 a3 Q! A" C6 Q3 \
4 d; Z+ o7 b! V# b( N- (setq help_entry "modify_associative_hatch_dialog")6 P n2 q' `5 d
- (set_tile_props)
' _9 w, A7 W7 j6 O3 b+ o - (set_tile_handle)
7 n1 b o; n7 g7 z/ [$ I
0 M. D3 H5 L6 t8 c3 X- C5 S# ] p! D- ;; Define action for tiles1 K+ h+ ?3 N4 G9 o) s o5 ~4 ~6 ?
- (set_action_tiles)
6 b0 C6 Y4 B3 g9 r# j - (action_tile "b_hatch" "(done_dialog 2)")
- g% p" l+ h0 P% A - (setq dialog-state (start_dialog))7 y: Q8 j$ b$ b9 U
- (cond
& c5 n# D* @. R8 p+ R9 D - ( (eq dialog-state 0)% Q- L" w6 M0 ~' @3 @% |. i6 A s
- (setq old-elist hatch-elist)8 |6 m) |; r* s0 ]
- (setq hatch-elist nil)
( ^/ O7 d) y( ?/ N - (if (= (checkforlockedlayer ename) nil)
8 Q' u# I9 f- V" A6 G - (reset)
/ Y" I6 L0 }3 N# I - (progn ;;; special handling for locked layer reset0 c: g0 m4 x3 W; {, s& i+ m- ]3 k
- ;; unlock the layer
( t$ U" ?1 i4 N2 R - (setq layername (cdr (assoc 8 (cdr (entget ename)))))% H# d7 c6 V3 M9 Z. u; a
- (command "_.-LAYER" "_Unlock" layername "")/ D ]( E& q" i/ _3 [1 D& |2 P6 Z
- ;; reset modifiction
9 g; P! v5 q: E' ` - (reset)/ V3 Z/ T* V8 y7 N. ~* G
- ;; lock the layer again
: P1 H; R; q: ?0 V - (command "_.-LAYER" "_Lock" layername "")
3 Z2 c; i; v" v) E/ o - )
% o8 K0 h0 h5 T' n! s - )
# e8 g K( d% }1 E! }/ [# i - nil ;;; makes (ddnewhatch) return nil for Cancel8 y* ^* Y6 k( h: [- w
- )# R) Q& U+ @$ Q; J" f8 t1 V+ a2 H
- ( (eq dialog-state 1)+ g7 a7 f! \, t% ^/ v Z7 Q# R
- (setq hatch-elist nil)
( t1 T) R. W+ c/ Y0 Z& l3 T - (modify_hatch)
# P7 F! J" G# Q. i - T ;;; makes (ddnewhatch) return T for Ok
: a1 B3 X- T' p5 A4 w1 e! E, i: K - )8 [: m" E3 P: Y8 Y; _: j: z
- ( (eq dialog-state 2)
7 A+ |9 Y+ d6 E M7 f$ K - & K& i" d P+ t' Q% B
- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))
Q1 b2 {4 j6 J7 q4 | - 4
: T0 w, V2 U* L; D0 I J- r6 _3 O$ W - ) + G! n3 u/ {- Y+ Y' z! ?
- ;;; new selected layer is on a locked layer$ K& W+ g4 ~# T9 g" I
- ;;; we can simply modify the hatch properties
8 E5 T+ |7 i# R5 B9 s/ f$ h - (modify_hatch); O! b |2 @5 Y, W8 z E$ p
- (progn
- S3 A8 C) m. c* S$ ^* T0 H - (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))* k. ?* W g4 e
- 4& P3 ~0 O* R* _- J) U
- ) ; u2 o1 H6 x I3 N2 |
- ;;; We changed the layer previously and now the hatch lies on a locked layer.
?6 E4 N+ f9 P1 z5 a7 v: s: }( o - ;;; We have to unlock the layer forethat we can update the hatch properties.7 _ J2 K* }/ `9 b' _' t9 S9 J S
- ;;; If we don't do that (entmod) fails to update to the new layer.5 T; C7 T0 Q0 |8 ?* x$ P! q, n
- (progn$ w5 G2 f& k8 N1 l$ }; u
- (setq layername (cdr (assoc 8 (cdr elist))))
* s8 o5 e: h5 E ~' L( v' `6 s& Z - (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer1 u d% v1 I+ a/ c/ e8 d
- (modify_hatch) ;;; update the properties! }+ D- \7 P4 p9 Q; N
- (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again
% I2 x% S- P7 u* r% ` - )
& Q+ \9 y* t6 t; { - ;;; All other cases we simply update the properties
; d8 m2 D, E& R# h- s6 ^5 F - (modify_hatch)
+ Z5 b1 I# D6 n - )' o- x( q, n* P. v" [
- )' G% {# ^5 y, T' E6 ~
- ) + K# G9 J0 ^& ~9 S! }. b, ]8 ?
- (if (= (checkforlockedlayer ename) nil)
0 h+ ?4 A$ x# u7 u5 ^ - (command "_hatchedit" ename)5 ?$ [1 V5 ?! q3 |
- (alert ;|MSG111|;"The hatch object is on a locked layer.")# P7 t' y% k* p, a) N, ?& A- p0 C
- )
; l4 @4 n/ V5 q - (ddmodify ename)
( B' _' C, G: O' z - )
0 ~9 I. C' l( Q - )
& l% W* _6 p" @ - )2 O8 b' t2 N4 }6 X+ b3 N* h
- ;;
( L, K; S! g/ a2 w, M - ;; Modify BODY/ i# h; m1 k5 B# b
- ;;1 d, D# ]- K/ ]0 \; F, _
- (defun modify_body ()
% A) M9 B- ?. i7 E# M3 r6 W$ O - (modify_prop_geom)
& n% W/ g" T/ \$ T - (entmod elist)6 f1 O) k0 D: H, h
- )( H9 \$ q0 V$ ]' }6 ^
- 6 F& H3 c+ W. }
- (defun ddbody ()
: B: q% n$ V2 s - (if (not (new_dialog "ddbody" dcl_id)) (exit))
0 l; S+ k+ o ?, s; v D - ;; Set initial tile values
( k, O# O9 u: M# ? - (set_tile_props)
`4 k- \* f7 \7 D9 ~ - (set_tile_handle)
, n4 U6 v/ g/ d - ;; Define action for tiles
4 j7 A5 T8 ?" r! i9 W t6 n0 [. W - (set_action_tiles)4 a7 j( g& N, K" K
- (setq dialog-state (start_dialog))# V+ B7 @9 j/ N+ u- E5 X
- (if (= dialog-state 0)
3 {9 U# I6 g+ G# ^* } - (reset)
4 @# A2 X* g. z/ v" A0 H0 s6 G - )" e) W$ P- r0 g k- [
- (if (= dialog-state 1)
/ C2 Q; i; u t& W+ e( ?5 g - (modify_body)
6 \ [7 l/ I/ k$ B. p `0 e - )
/ q; D* c2 A5 B0 ^; R, Q; C! Z3 v - )( s. k% \# ]4 c& I! i
- ;;
) M: O# \. r- ~8 Q5 K' ?7 f% _/ B - ;; Modify CIRCLE& D2 A) @1 h" L) j0 R: d" n
- ;;) G0 U& e y8 f5 M2 t$ A" o
- (defun modify_circle ()
% D4 w1 w T" j# N - (modify_properties)2 G% Z( V8 F) [, l& X' W
- (setq pt1 (list x1 y1 z1)) x# T$ T o9 u9 Y# ^
- (tempmod pt1 10 1)* |6 P( u* x# d
- (tempmod radius 40 nil)5 i; X# w1 L" b& ^3 \) t# P( _0 ~
- (entmod elist)
8 n+ X V! A* z3 B8 ]: [+ R! h - )
+ ^* n2 t/ d p. x# a! `; c - ! [. M1 o& M9 q6 D2 D. X6 {
- (defun ddcircle ()5 @9 ~6 e. n* \" [7 D% R. I( x
- (if (not (new_dialog "ddcircle" dcl_id)) (exit))5 j: e! W# y/ r8 E- E. Q3 ~
- ;; Set initial tile values
Z0 Y, |6 s9 `! M" ` - (set_tile_props)
; B& m- Z* J; M2 m - (set_tile_handle)& F, H0 Q. `0 h5 h S$ r9 ^" Z
- (set_tile_pt1 1)( W3 W0 S$ X- j7 e3 V: d3 N
- (set_tile_rad)
- v$ P' {9 P" d* S' V6 ^ - (cir_calc)
# q7 g. S! @' r+ [8 k! E3 X - ;; Define action for tiles! I# U5 }4 |0 a8 M1 _
- (set_action_tiles)# o6 c" V- U& y5 T$ n2 ]2 y, O
- (set_tile_pt1 1)/ X/ U- Q6 G2 E% q* w. Y5 m
- (setq dialog-state (start_dialog))
- F/ O! G+ ]: f - (if (= dialog-state 0): W6 O$ D8 Q; T7 H- J# o. S
- (reset)
8 G* K! l% W4 ]) f" e1 G - )
; N8 e! B0 O0 `) W! l - (if (= dialog-state 1)
- U8 H- L& s4 Y, H# Y2 x. N - (modify_circle)
; ^+ k: A/ I( o, H - )
9 F9 k/ q; U0 E7 W) m- u9 @/ n) o* f - (if (= dialog-state 3)
. P# Y+ n4 E7 o1 i$ T - (progn
' s$ a6 X6 O( F! m9 M1 p) N7 d3 Q - (modify_circle)
G A" b$ s5 J8 n4 m+ y6 g - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
/ B" s1 p6 ~- p8 G - (ver_pt1 1)
5 U- ? `) W, c5 f6 D - (ddcircle)
: `% e# R0 X" d6 J0 e - )
2 ]: H( m- t' n8 G: q4 a - )
" y( g+ H7 A+ U9 z - )# H9 x% k# u% F
- ;;' b5 P% n9 W2 f- B8 C& ?. O
- ;; Modify ARC& K1 W: x2 I+ \# e
- ;;: g5 P& R9 [/ @0 t/ f, K/ M
- (defun modify_arc ()0 ^0 b* h8 O- s. ?6 U2 k
- (modify_properties)' J/ V5 h% [3 o2 D
- (setq pt1 (list x1 y1 z1))
- }) a- N0 G) ~) I. _ - (tempmod pt1 10 1)3 l7 Z4 V) t9 C* h6 ^+ R
- (tempmod radius 40 nil)
4 A4 t. j4 p1 `$ [ - (tempmod st_ang 50 nil). b" D. p$ B3 P( F; e7 R: I
- (tempmod end_ang 51 nil)
+ T8 s. c+ g3 L/ }( V - (entmod elist)7 v, x: H v0 l& s/ x
- )8 r; i ?8 v( W+ O8 I
- (defun ddarc ()
3 O6 f2 d Z5 L y: d2 S - (if (not (new_dialog "ddarc" dcl_id)) (exit)), I. [. d! [4 Z" B; I
- ;; Set initial tile values
% y+ z# D1 t! {5 j& L9 O& N R - (set_tile_props)1 t3 C& C3 L& @1 o
- (set_tile_handle)7 ^' `: w/ @% u; u8 l8 q) a
- (set_tile_pt1 1)
3 ~0 A+ }# `' f2 p4 E - (set_tile_rad)
4 ]2 q6 Q$ h8 s2 M* m - (set_tile_stang)
9 O% V2 ?7 `" e' t+ e- w+ s - (set_tile_endang)& m: F+ ~" f, t& v; L0 e: }
- (arc_calc)
( y9 G; m- p- G) B' L - ;; Define action for tiles' R) A5 t3 p+ v6 ^+ G9 [
- (set_action_tiles)* z! M5 O# C$ U. A
- (setq dialog-state (start_dialog))
/ q/ L$ P" x" t2 ?& Y0 @" y - (if (= dialog-state 0)4 y2 v$ d' f" t. O
- (reset)
/ j" {' G" _/ g9 H9 h - )2 k L4 w# Y5 `' }
- (if (= dialog-state 1)6 o: x5 A! u& e ?# {, K
- (modify_arc)
+ h8 w! g0 y' C2 X1 E% [7 A - )
5 G; _8 W* p8 u - (if (= dialog-state 3)
2 Y0 c2 l" A: u2 K - (progn
: h B, x$ e# _) I. E - (modify_arc)
* U1 {4 l J/ o Q) P3 x - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
: k5 S' s. ]+ [+ ?0 E! P0 P2 E - (ver_pt1 1)
, I! G' ]3 b6 `3 Y u - (ddarc)
) f1 F1 A( Y% d1 S& }0 M7 |: p6 J - )
! @* X; Q$ {7 ~% G( e7 n - ) {& l d; q1 R% f' _7 {4 G9 a
- )9 Q8 `% Y- [5 N) |. {6 N9 u
- ;; N5 j; e( ]% m" B
- ;; Modify SOLID or TRACE/ [+ c8 P* j/ [% S J
- ;; Note the Z value of the object is determined by the Z value of the fourth
3 `) ] \5 N' @% ` - ;; point - code 13. Changing the point values of a solid or trace from a UCS% j# f: C2 R% y3 C2 T
- ;; that is nonplanar to the UCS the object was created may confuse the user.) o+ _9 R/ A6 v( v" E
- (defun modify_solid ()2 Z1 A+ E" v6 G; Z1 Y
- (modify_properties)
! i5 G5 e! P+ u" q. m - (setq pt1 (list x1 y1 z4))
$ Q5 `% `9 r( d# [ - (setq pt2 (list x2 y2 z4))! b) b, U5 E: y8 L: N0 y
- (setq pt3 (list x3 y3 z4))5 e) w# O0 p# J! T$ f
- (setq pt4 (list x4 y4 z4))# q; g) q" B2 b; A! P: [
- (tempmod pt1 10 1)
0 L% [2 b7 g% p5 K - (tempmod pt2 11 1)& y6 ^' u; f: }( } p# S6 h$ J
- (tempmod pt3 12 1)
7 J6 D# k/ a" F; u5 a! b - (tempmod pt4 13 1)# X; E/ K2 K2 H& i$ x& x" J( g
- (entmod elist)
" ]: Q6 R# l3 u6 c) ]/ m, V& q1 H - )4 m U4 V& ~9 l0 n9 q
- * B' w7 n7 u' W- O$ R
- (defun ddsolid ()
9 \. Q7 [, h: b) Q6 [ - (if (= etype "SOLID")
, R5 n0 Z4 j8 `, A: I& \$ }/ H - (if (not (new_dialog "ddsolid" dcl_id)) (exit)). v. O6 \/ a/ f8 f
- (if (not (new_dialog "ddtrace" dcl_id)) (exit))- \2 {( U* q# z- o9 z
- )9 Y; t2 A. |- N" N( W1 w7 C7 G
- ;; Set initial tile values
r( K- i1 o# r& Z1 k8 @, I4 b4 r - (set_tile_props)
3 a$ H1 j. d/ K# n - (set_tile_handle)
/ a% \3 x: Y0 z. Q, w4 P+ j - (set_tile_pt1 1)
9 t: D0 e- D. p {: ^* p3 t - (set_tile_pt2 1)3 V) _% }& J, r
- (set_tile_pt3 1). ?) w6 p! J) r2 f
- (set_tile_pt4 1)
; U# s" z+ Z, K! J/ k8 `3 ^ - ;; Define action for tiles9 r ~6 m/ J( K$ I9 i" q
- (set_action_tiles)7 m) H0 \+ Z& o7 e" r
- (setq dialog-state (start_dialog))
- o. \ q6 B' |* R& S, B3 U - (if (= dialog-state 0)
5 t9 @+ k) x3 S! G - (reset)
* d% v/ y+ }' t# L+ |6 J A - )
* D- f9 G0 K: {0 d9 J5 G- h( w - (if (= dialog-state 1)( [5 b9 s* [5 _( x
- (modify_solid)
8 w& p- w7 t4 X4 o; u# }4 N) X" s; w - )2 N0 Z/ y8 V h% ?
- (if (= dialog-state 3)
1 A: c) \( z' G4 ]0 t7 A3 U - (progn
% f( m% O1 Z7 w8 [( z8 X - (modify_solid)
; I' y6 a0 T, E# \, j' y; P3 L - (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))
* X n6 o' B' @ [- B+ O5 v4 O) K9 n - (ver_pt1 1)9 \ Q; O4 ^8 O: b% B- I& x
- (ddsolid)( s2 L, _; a, a* i% y
- )
, `- D- N" d$ P" i - )6 C( l9 _* S+ C. |7 k4 E7 R6 X0 y2 L
- (if (= dialog-state 4)- L c; f& |: [6 A Y. P+ W7 r" M
- (progn
* e. ~- E0 N' C( ~: |7 [- @- Z - (modify_solid); y- v; J% [8 R* C
- (entmod elist)
. F* `% O" r8 Q# v( s - (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
! U) R- i3 K, n. [' Y! X+ I3 F - (ver_pt2 1)8 ^! e; r( q: I( Q* E
- (ddsolid)
. q2 t1 m' n/ z: ^! Y) ~ - ). K! A! `- N' ~! p
- ) h* n$ w' I- b. I2 \
- (if (= dialog-state 5)
' d# e* j: y9 r5 d4 y: ^: T - (progn
+ \3 G4 F: E/ h9 _7 @2 N, t# J - (modify_solid)$ j- l0 [! p/ n0 v0 l/ u
- (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))1 H f2 ] k" i* U" w0 q; p
- (ver_pt3 1)& \8 y; g0 B: C7 z# G" d$ b+ K
- (ddsolid)
* t G6 v* @ i2 u8 J! Q - )
: w* N' w5 L6 y5 A4 G - )
1 W; k$ [0 }" V) H( E; L8 x - (if (= dialog-state 6)0 e( q- C# }6 W5 j. W
- (progn
$ z7 k: V3 a) Y/ n# C' @ - (modify_solid)
r1 a( r% I- r' A6 @ - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))* S, i. j! {+ r% ?, @
- (ver_pt4 1)7 H: O) a; A6 I, a1 h& a
- (ddsolid)7 H- n8 V2 r: u4 O q, [
- )
5 P6 ^. U1 s# r! g - )1 v& K* n/ ?* ^7 O: Z2 @0 ]! i. V
- )
9 x0 q& X' F+ e: @5 K - ;;
1 n9 x. ?& ]$ Q+ J# C - ;; Modify 3DFACE _& S. n" L; X
- ;;
% G, l8 p5 R2 e0 z5 @ F! C+ B6 j - ;; Check visibility of edges
: N+ Q; ?8 F, f* r" ^ - ;;
1 i0 K1 t' ~- C- m8 Y - (defun edgetest (/ bit1 bit2 bit3 bit4)
$ m4 o! s( t" V6 n% h - (if (= edge1 "1") (setq bit1 0) (setq bit1 1))1 F5 ]$ M& d: R$ r
- (if (= edge2 "1") (setq bit2 0) (setq bit2 2))8 B4 N& p" Y" I( G' I
- (if (= edge3 "1") (setq bit3 0) (setq bit3 4))+ |8 w6 Z) f/ ^$ e
- (if (= edge4 "1") (setq bit4 0) (setq bit4 8))1 }4 i3 z; U. h! \8 t
- (+ bit1 bit2 bit3 bit4) m- D- }/ _9 d- h& `
- )& g" V# N& S$ q# }* x: n0 w
- 2 d! }2 m' v. J4 k
- (defun modify_3dface ()
$ c/ d: m; z9 B3 @ - (modify_properties)" c. @" E* d* ]3 e' G
- (setq pt1 (list x1 y1 z1))$ o$ S# H& H# V4 B8 s: k2 a
- (setq pt2 (list x2 y2 z2))
& v* S/ _$ n. m - (setq pt3 (list x3 y3 z3))6 X$ l) o# ^. _/ o7 \( J
- (setq pt4 (list x4 y4 z4))
0 _- v+ l2 `* [5 e w$ _) D - (tempmod pt1 10 0)5 B7 R3 q0 f2 H! m
- (tempmod pt2 11 0)
8 ]" C. Z8 m( k5 p - (tempmod pt3 12 0)
: o/ r# a- r2 b$ h - (tempmod pt4 13 0)
8 ?6 l# D: [- P$ S1 T1 Q3 m1 h* ]- o - (tempmod (edgetest) 70 nil)
8 C# o; p7 m& n2 m( k1 J! l% } - (entmod elist)4 w m4 }* a# @% e
- )
7 u5 ^' D, n% [. k4 ~3 E4 P
1 s: I. t; {' b7 o; Q- (defun dd3dface ()$ l% H6 j+ O( A2 p( _$ F
- (if (not (new_dialog "dd3dface" dcl_id)) (exit))5 J S$ n' V3 J, t: F
- (set_tile_props), e, Q' J- ^7 H; @
- (set_tile_handle)7 b1 @8 x1 n ~3 X7 s$ B% O! W
- (set_tile_pt1 0)
- L2 c* [. j2 f - (set_tile_pt2 0) {2 T5 [( ]3 l) p+ M3 I- Y
- (set_tile_pt3 0)
5 D9 v: ~. J; N2 I2 R8 c - (set_tile_pt4 0), }! M, r. c; S: f
- (set_tile_edges)
. r* A. M# x- S" A - ;; Define action for tiles2 D* U W3 u: d5 U
- (set_action_tiles). W& Q& h$ z4 O. p/ y" V
- (setq dialog-state (start_dialog))2 K; w- u4 Z Y) m2 x
- (if (= dialog-state 0)
: q, H: |! k0 z9 X - (reset)
* K8 ^( Y3 L6 X* M. I' J* M& F' y - )8 M3 F% s9 ^! @( b4 u
- (if (= dialog-state 1)
' v S" N3 S+ u5 Q2 } - (modify_3dface)! C$ j' Z4 Z3 j
- )9 ^( ^) w- o, d+ x
- (if (= dialog-state 3)! |8 t" a" s! D& O l/ M' h
- (progn2 Q/ B2 O" V4 c: S3 B/ ?& K" e7 s
- (modify_3dface)4 Y7 S9 H) ?1 [: P/ ` y6 ]
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))
: q% P/ j d, Y* a2 B1 m% h - (ver_pt1 0)
! v$ y. M" D" Y3 D6 A& ]5 \+ y - (dd3dface)
p, f A* V) T C$ G' E - )
* X: `, N- N/ O9 n8 E: `$ H - )! m. m; B) G8 x( H7 M) ~
- (if (= dialog-state 4)0 \6 k4 C9 g3 H5 G
- (progn: _$ M8 ^+ D7 p8 J# q
- (modify_3dface)+ u1 |! R! q2 L# b) X7 S
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))8 }( ]( `$ B. ?) Q' {/ u( R' K
- (ver_pt2 0)
! f. Z0 S- I1 M$ j - (dd3dface)) d2 i, v# j) F8 s
- )+ n5 c6 T" Q* J A% p% \( ~2 y
- )
9 s+ `- {8 l% S, T4 I6 H - (if (= dialog-state 5)
* w9 @' I7 j( d, X" g$ x - (progn
+ y1 K5 R- J3 m0 }0 ?0 C% ^4 V - (modify_3dface)
8 n2 h6 ]2 [4 G; u/ g+ p) P - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))5 c8 G6 W3 G5 }, J- t- y
- (ver_pt3 0)
8 b% d2 L8 ^) m6 } - (dd3dface)" k% n5 C u- ?- f5 d( [
- )* x! j: k3 u7 v% W" \
- )
+ D' M$ Y5 o& T1 @$ O0 K, Y& l S - (if (= dialog-state 6)
# F7 V9 U5 p% d" x - (progn
( v/ t! a9 e: }: N' Y. W - (modify_3dface)
( E) B4 T, m7 t' w2 N - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
; O3 W1 p& d; p4 R1 K7 Z* V - (ver_pt4 0)) M# q4 y; T. Y' m
- (dd3dface)
: F+ q+ H7 z& c& B+ g R+ p - )1 Q& q t7 X: y f: H0 p8 J
- )
( r {+ Z9 v" b& E+ W7 b$ ` - )
# ?" K8 I. E& ?5 T, Q- p5 w
. `6 t2 T0 Z8 u3 ?6 M) F- ;;1 W v! X8 M3 `) b7 K5 c4 V& `
- ;; Image functions
4 }( h+ e7 \8 c. N! Z, I- w7 C - ;;2 [& d7 s! O6 _: b
- (defun image_scale (/ upixel en n userscale temp)- n( x3 w7 W* J$ u6 a w
- ;; Calculate the size of an image pixel in AutoCAD units; G7 e) g( x# o6 r; g
- (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))
# S$ p" |* E- }& x
, L- x4 n" l* Y- ;; Retrieve the user scale, e) |' K" R9 j: V0 v4 u
- (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))% p6 [7 u- M) s8 E' ^, u1 y: X
- 2 J$ K" U9 t$ ^1 K% Y- U
- ;; Next, extract the image units and pixel resolution( f8 A" K# b' X7 N/ z: _
- (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))2 F9 y; C s4 p/ }& f
- (setq image:scale (* (cadr (assoc 13 elist)) upixel))) j |/ ]' J% J: A
- (progn" Y: b2 j# ~% |" Y! z6 A
- ;; Convert the user scale to the proper word
. a; e6 V! c# g) z9 U - (setq n (cdr (assoc 72 en)))0 z* V" P/ ?" \: p( ~+ S% @
- (setq temp (getvar "LUNITS"))
N3 ?8 `: C7 [+ A8 C - (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5))
! C' H% r7 ?( P: x3 c3 r - (if (= n 1) (setq userscale "Millimeter"))
O# U" X/ X5 n9 K. r; ] - (if (= n 2) (setq userscale "Centimeter"))- V! W$ U, t5 |1 G% H
- (if (= n 3) (setq userscale "Meter"))
& t% t7 l) a2 s" \2 [5 Q - (if (= n 4) (setq userscale "Kilometer"))
6 I3 a( y5 s/ p2 J& n4 W; R - (if (= n 5) (setq userscale "Inch"))
! U6 A3 }' f$ H - (if (= n 6) (setq userscale "Foot"))# \* y& f& P- W
- (if (= n 7) (setq userscale "Yard"))
6 `1 u) L$ l( B) p - (if (= n 8) (setq userscale "Mile"))
4 m/ X4 l, ?: L* A. b7 L - (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))
$ c& Q' K3 h- \: A! I3 H - )
- K9 C# W9 W6 u e$ }) u2 T - )+ _+ d0 |. c/ |% Y8 w5 ~) L! `8 w
- )
* A* T* K3 t6 I5 v* _% `+ ~) @ - / j7 N6 f/ r& t4 a
- ;;
+ Y% S; @& T$ y6 C$ a - ;; Scale factors for block insertions; L0 e! q) C6 `6 L! x( U" G
- ;;% q, w* n7 V6 ]% z3 A: ~2 X
- (defun image_set_tile_scale (/ temp)
' F: J9 r/ m6 q& K - (setq temp (getvar "LUNITS"))) s; O9 w- P, v; \
- (setvar "LUNITS" 2)3 h% R+ C4 z2 }
- (set_tile "xscale" (ai_rtos (* image:scale image:mult)))* ]# z9 \1 W8 y; A
- (set_tile "wid" (ai_rtos (* image:width image:mult)))* i7 _. |9 B9 O2 G# l
- (set_tile "hght" (ai_rtos (* image:height image:mult)))
5 {( ^/ r' E, K+ a7 k1 ]0 {/ V- X - (setvar "LUNITS" temp)8 D) Z3 O0 r2 Z0 s
- )
1 {6 I& ]: @" G3 M! @8 F. t
) X5 p; A" o- p* b! ~- ;;
, v1 Z k- {8 G - ;; Set the scale, width and height values appropriately., E! z; h5 D; Q% O
- ;;& X: T7 \4 r! E: \- C
- (defun image_update (field value / orig_value new_value mult)" w" \; I" A! M6 h: N
- (if (= field "xscale")
( `, j$ G* f/ R( ?9 P! p8 o - (setq orig_value image:scale)* G' S4 z }& O s/ y
- )
6 |+ y! E. ^" X' ~ - (if (= field "wid")
R: s% ^, n$ K& ~$ W - (setq orig_value image:width)
& W) a# z, C* E+ z2 t5 N - )
3 `( S/ u j( d8 X9 d( g4 j6 T - (if (= field "hght"); m" V( Q+ c- Y
- (setq orig_value image:height)+ P9 o; p$ S3 k3 |
- ) b6 I8 E% k0 Y+ l! d$ \
- (setq new_value (verify_d field value (* image:mult orig_value))) K9 a' I# p. o) D6 W8 V/ S; v
- (if (/= new_value old_value)0 I& }0 d/ Z5 x& A9 M+ S7 K
- ;; Make sure the user has entered a sufficiently large value
% b# K! B" F+ d) R( |+ u - (if new_value
- X. Q) k! V+ c - (progn
/ O% D8 c( A. {. W2 z, O ? - (if (< new_value 1e-8). f7 f, V. |' @& A9 O, _
- (setq mult image:mult)
$ {1 O2 v' t; z: L" {; `% C1 z - (setq mult (/ new_value orig_value))
1 W2 x0 Y- K5 g3 I# P - )! o; W: h' ^6 Q/ l
- (setq image:mult mult)
# E" i/ G+ m% K) r' F0 y - (image_set_tile_scale)
( K/ T/ X% ^' K" p: t+ R5 @! } - )
3 ]9 h) h/ z! C7 A5 S2 H - ) V: N1 B' F4 T2 b
- ). s! }! A6 c% \$ F" {
- ) O$ U- D# W9 k9 f
- - D6 [9 L* y/ h. X& ]6 l- g
- (defun image_disp_opt (bit)
T: K7 u% v* o - (setq image:options (Boole 6 image:options bit)); ? p/ _/ a/ @
- ). Z; h* o, p" T$ ]
' u2 ?0 q2 W6 N: ^- (defun image_modify ()% ~" p, w4 E! I: T; @5 l
- (modify_properties)8 i9 g/ f6 W7 I' L4 C1 U
- (setq pt1 (list x1 y1 z1))
+ x$ N( g$ {2 k+ Q) C# h* q - (tempmod pt1 10 0)
/ d# X$ n, Q9 K" b9 K* a# X+ u - (entmod elist)
5 P {* k0 X4 n! |$ D% D9 [3 ]2 ~6 d - )
' f. |; c' T* `0 M) Q - : q* P5 @: U4 {+ \# g8 a
- (defun image_clean_variables ()9 B# K9 l' f# [) S" b
- ;; Clean up global variables used here
# c* k$ v' r S6 J* Q' U. y - (setq image:scale nil)& G3 W# `" ]2 D3 x
- (setq image:angle nil)
0 W) [: s' f( s - (setq image:width nil)+ M# [) N( t1 Q, ?
- (setq image:height nil) _: n9 _8 i# i0 c) C4 j* L
- (setq image:options nil)* b' H z9 A/ P2 P. p0 R7 ^# k
- (setq image:oname nil)/ s- J1 G+ i% o* p0 ?* R
- (setq image:olist nil)
7 ]5 a2 g, r6 Y0 _4 I - (setq image:mult nil)1 `( h/ m0 ~& t& b
- (setq st_ang nil)+ r/ W' r4 C% T; _# h3 H) d
- )
- k4 g K9 y% \" g& L9 x
5 i9 z7 [7 }0 x6 q3 h7 d! L- (defun image_scale_vector (v1 value)
; Q/ S7 P) p6 T/ @! f* q# \ - (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))- L8 F+ G: {! _2 U2 F5 r: A
- )
) \$ n6 E2 [% u/ { - 5 |7 c2 _+ D3 y. v- h9 X" n
- (defun image_cross_product (v1 v2 / vx vy vz)) ]" m# z; k* b2 I1 z
- (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))
7 y$ J8 |5 ~7 t$ f - (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))
3 G) v0 H" I3 Q3 \" Y8 J, s - (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))
* E# `& K- ]! ]0 ~0 E# n6 a4 { - (list vx vy vz)' c; m; C9 n. o7 ^4 ~. T
- )
( H- P- q4 t" r - % X; \& R& F9 l6 Y) [
- (defun image_dot_product (v1 v2)" z" `7 T' g3 s/ B- i* _4 Z1 s, w
- (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2)))
5 g+ x: i* t7 y: E7 P - )" Z- b- V$ Y- v( k& |; z e
- 5 t: E/ y& @5 O1 o" {
- (defun image_add_vector (v1 v2)1 _3 K! f4 g4 M& X& h
- (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))' C9 @: b. S" ~' g* o
- )+ q/ ~; i2 d) s6 U: N
- # g2 z6 t) h- J% O
- (defun image_subtract_vector (v1 v2)
/ j3 Q: C5 i: u1 t/ r% Y - (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2))) K \. [: v4 F. z) H4 D {( ?
- ) J. z, b/ M4 P/ `$ R
- $ K/ B( w* V% o, _' N' l) I
- (defun image_normalize_vector (v1)+ j& M/ [# U# D( G" `* C \
- (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))
# b" H% Y# z" o8 J( y - )
6 [2 ?5 |# U9 D; u5 n# v$ a
# C' B( g. ~+ l/ R* T0 X# Q% U% T- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)) {# S& c$ n' w. k
- ;; Normalize the axis
9 Y. Q& d( L$ E3 n - (setq axis (image_normalize_vector axis))
- m: c6 p9 s5 C l/ J5 r - (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))& T% A1 i2 u. ^: i3 j, s
- (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))
! ?, Q# Q- ~# f M6 ~ - (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane)) W" p! J2 P D* R
- (setq in_rot_plane
3 R' U( E/ ?8 c" \$ b J9 T - (image_add_vector' A/ ]/ i& h3 U% _: C
- (image_scale_vector axis_x_in_rot_plane (cos angle))
6 d i( M, s7 z( E4 {# f - (image_scale_vector axis_y_in_rot_plane (sin angle))" g! Z4 a7 \8 }
- )3 @* ?! g9 Q& V$ r+ u
- )
) d; m) |. B) t - (image_add_vector along_axis in_rot_plane)
) _6 T% C) E* a5 w1 v" o - )
5 A% E5 s- k! L+ h - # U: W3 i6 c; Y0 W5 w
- ;;
- p: o2 P) `& N* u& g4 ]- c5 H/ e) F - ;; Calculate current rotation angle if appropriate.8 R2 B' [2 s; b3 ]$ Z5 U, B
- ;; If not, grey out the rotation field.
: S2 b" s$ F! i, d% b3 } - ;;
7 C. W' Y: u8 ]+ s9 Q. Z3 m - (defun image_rotation (/ normal rlength zlength sqrt_tolerance)1 F5 h$ t" h3 }7 ^1 O9 n
- ;; Determine if image normal is codirectional with+ U; B" M7 k' D
- ;; the current UCS Z-vector.! B+ v8 ~. p- j% u7 y& D
- ;;
% ~$ C% [- [- c5 D8 [ - (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1)). g7 }* z8 U: t+ P/ ^3 C- S% W
- (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))
8 v0 w( k( U) N: G - (setq zlength (* (last normal) (last normal)))$ a. }# E6 I/ n. e: A
- ;; Note that the value .0001 in the radians is approximately 0.0057 degrees.
1 W0 \; G, v: `5 A; y8 n7 f7 s - ;;
: L2 S! m) f# U; p+ C( I9 q - ;; cos(.0001)^2
7 }$ @: W3 w2 x9 T - ;; Tolerance = --------------
( S2 ]- V2 V* y3 t - ;; sin(.0001)^24 E9 Y8 d/ i8 W( i- W
- ;;; X8 A! b5 _. U0 r- [& U
- (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001))), g9 K/ j6 M8 X9 @, M
- (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))' w9 |1 l3 S# L! B" E" s) S
- (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))/ Q& L: M2 d! P2 `, i T. C
- (progn: n0 a) e8 c) b8 y8 C S2 c# j* I
- (mode_tile "st_ang" 1)# q" O4 G$ Q8 T+ U
- (setq image:angle 0)
7 p% w$ F |% R$ u - )
" m2 E( a1 ~' f - )8 Z9 ~' i* f/ d0 p$ m
- )/ a$ y% k' c% j& e( h* @
9 _/ h2 E4 G; g }- \- ;; M/ Z# I; p( Q" `- \6 q, B
- ;; Modify Image
% D0 b) [/ N/ b. {" b - ;;. J. O) e# h! l1 Q( E2 V+ L5 C
- (defun modify_image (/ u_vector v_vector z_vector)
! G b2 J3 \3 `6 A0 K$ S - (modify_properties)
5 ^1 e! R4 P# n2 w2 m - (setq pt1 (list x1 y1 z1))2 G( S% A7 d& `; i$ N7 c+ \
- (tempmod pt1 10 0)
* C' g* {& a, u9 x - ;; Make display option changes to image& r3 @$ @1 ~# M" J9 Q# G
- (emod image:options 70)
( N. r* w# s/ ^, k; V - ;; Get the u and v vectors0 V& A0 Y1 |. R6 T+ b; W& V
- (setq u_vector (cdr (assoc 11 elist)))% Y- y% L% \5 [" X- u. g
- (setq v_vector (cdr (assoc 12 elist)))5 I) r+ ?( s2 N1 f
* A* j3 t1 D k7 {' X* N6 u- ;; Make scale changes to the vectors
$ M8 b) G( o/ @4 x. d" I - (if (/= image:mult 1)( F( ~, o# r2 k6 g5 ?
- (progn6 \# B4 Z F4 Y" G5 C3 i
- (setq u_vector (image_scale_vector u_vector image:mult)). ?: C, Y/ N6 _- n" C
- (setq v_vector (image_scale_vector v_vector image:mult))
* O! M" T/ _! _$ Q; r: r - )/ ]. Q& q6 I+ C8 @' _6 n9 m5 i
- )
+ k# i( ^7 _3 K2 j2 B - ;; Rotate the vectors3 ?4 O8 ~4 {( H6 a
- (setq st_ang (- st_ang image:angle))
. g6 K! e. O1 Z% k- t- C# c - (if (/= st_ang 0)
* _6 m3 a" l$ B& ~! U2 @! Z* h - (progn- Q9 j* ~) M% r3 N6 [; Z
- (setq z_vector+ Y9 G; R7 e4 R0 z
- (image_cross_product% _1 |4 ]; u: N. x" ^$ l
- (image_normalize_vector u_vector)
/ m8 j" b: Y- Z9 C) ^ - (image_normalize_vector v_vector)2 H2 q! ~( S3 ^% Z" l: V
- )
# R5 u* ]3 H" W - )# L, c+ W8 G% a- E( o
- (setq u_vector (image_rotate_vector u_vector st_ang z_vector)), ?/ d/ K! n3 @6 o. K1 O
- (setq v_vector (image_rotate_vector v_vector st_ang z_vector))
# b) b4 N5 P* f - )5 O2 X2 G3 S P; S- O& g1 ]& t
- )
. Q, W- T" p: Q2 y2 }! x - (emod u_vector 11)
* f( m! `* E6 K7 \ - (emod v_vector 12)
6 T0 |7 ` z2 Y. f$ j( R - (entmod elist): O9 N! w6 ?: g. v
- )
0 d4 L0 x# m( e9 A. | - 4 P( o2 t% k6 \' ~8 F M! a* w7 C
- ;;
5 A) m- `, O2 t& F9 i' X0 v - ;; Run imageadjust on given entity, working around possible
4 s2 Y! Y$ ?3 T4 c* ?; W; z- Y9 @8 ^ - ;; re-entrancy problems% Y- `& s- f/ D+ e g9 g
- ;;
: S$ L8 q" E2 Q. W - (defun image_adjust (ename)
, `) ~8 F: Q' q. ~" V5 q - (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...
7 @$ J2 S" _: k7 _- }1 f# B - (imageadjust ename)& e! J R) r6 `# w; O
- )
6 c- U" m. h% V6 |! ~3 z4 f# F - + M& X% e' z/ n
- (defun ddimage ()
; V# O" t5 A, O/ F9 z - (if (not (new_dialog "ddimage" dcl_id)) (exit))- z' @; _+ `3 l% M! z; N+ b
, b7 N* Q- O: V- ;; Grey out the thickness field.
( |) X, X/ B8 h9 D/ m, K) } K9 h - (mode_tile "b_thickness" 1)7 W' q ]" ]! A/ t9 E: K/ O8 L6 D
- (mode_tile "eb_thickness" 1)6 x* R' q0 w6 [' x$ s
- . x& o! h" k& n. L) n
- ;; Get the associated def object.5 Q4 q% E) e2 a
- (setq image:oname (cdr (assoc 340 elist)))
' a) }( T" g3 U+ @0 \# E% e - (setq image:olist (entget image:oname))
! f- ^; k1 b: i+ w7 @' ?7 O
) a# ~" y: \0 B2 A* B- ;; Set initial tile values% w& H% ~' X) r6 b) g" X4 K, ~
- (set_tile_props)
1 b b; y% H, Z) K - (set_tile_handle)! L+ G) j9 i) v
- (set_tile_pt1 0)
0 |6 N: M1 a2 W- D - (setq image:scale (image_scale))
: C! z) o/ Z) \+ \1 H- @ - (setq st_ang (image_rotation))
; Y- \+ z: \% ]6 S - (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))
" Y; _8 P$ u( U9 @1 D. l9 w' l& O - (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))
9 V, O: E2 H: Z- b3 k2 K8 p5 S - (setq image:options (cdr (assoc 70 elist)))
: ~2 Z5 y5 `- D8 o% I
1 a6 I$ g1 @: i! O# x! M) Q- ;; Record the last multiplier for use in image_update function
" `6 F0 ~$ K5 ?) ?+ [2 _7 ^1 O' K- C, \ - (setq image:mult 1)
, B/ a. w) w3 a - 6 M6 g5 v9 M) E! S
- ;; Retrieve the image name
5 r6 ? k' w( M5 z - (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT"))), B! [$ N _! l7 R& I! J
- (setq flag 0)
# R" M9 D, {3 A7 F - (foreach n fn8 E5 L/ `0 ~( r: N. \
- (if (= flag 1)
" c- W* U% N7 K2 n3 l* F b1 T - (progn
# h! J I( D8 v$ c' s5 b6 N5 ? - ;; Display the image name8 z0 A+ w* {6 u: ?1 P! Z4 u4 @9 f
- (set_tile "image_name" (cdr n))
4 H, {! B( ?* f, @, V b - (setq flag 2). q8 m+ p1 m0 \5 s! F* [7 R$ M
- )
; A1 X/ G* t3 @ L) K% d, y, V - )2 F& D- e) H; e) w, W
- (if (= flag 0)
9 J9 l- z& I0 J1 Q - (if (equal (cdr n) image:oname) (setq flag 1))
9 T5 {; k( o' M' g, O# ` - )
+ H* B$ D, `# V( y) a( @ - )# {- [/ m6 q9 Z7 e; `& V" B
& Q% T, `- K' ~7 Y9 j) J; h- (set_tile "image_path" (cdr (assoc 1 image:olist)))
. a8 a- J' C2 c - (set_tile "st_ang" (ai_angtos image:angle)) n3 ~& Q9 ^5 t7 K% y, H) w1 F' a
- (image_set_tile_scale)
/ m" g. V: K, }- i) L
1 s" r9 y+ e' O, k* b- ;; Check the appropriate boxes
7 x+ [9 w, E: B K: g$ S - (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))1 l8 h; @8 C. C& w
- (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1"))
: v# E$ i' ?! ]' f8 R( b - (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))1 e9 g% @) e7 N0 M( y
- (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))
& n; C4 r% t0 v/ H! x
$ o/ [$ \, r2 s0 g& b- ;; Define action for tiles
$ G7 N& n( s! h3 j' j4 Y6 I - (set_action_tiles)
/ f. S. Q' E) Y/ |/ |( t - (action_tile "xscale" "(image_update \"xscale\" $value)")
7 ^' n5 t S, I" X8 L. L - (action_tile "st_ang" "(ver_ang1 $value)")- B( w; \. ]. q1 l* i/ N& w8 b/ k
- (action_tile "wid" "(image_update \"wid\" $value)")
& o' ?; M) I& X4 g M& g7 z - (action_tile "hght" "(image_update \"hght\" $value)")& K0 Z8 G$ j* a& N
- (action_tile "image_show" "(image_disp_opt 1)")
- K. x1 X, R; X% F1 J9 @* a - (action_tile "image_non_ortho" "(image_disp_opt 2)"). k0 D7 ]. n2 t% E8 `
- (action_tile "image_clipped" "(image_disp_opt 4)")
- P7 [! }8 F( _" ^8 p1 ?) U4 D - (action_tile "image_transparency" "(image_disp_opt 8)"). i9 e- T7 M0 W
- (action_tile "image_adjust" "(done_dialog 4)")
( s5 T+ p8 s, U7 e) U- {4 t F
; ?5 |* H5 o. g4 F# R- (setq dialog-state (start_dialog))
6 d& ]! x: A7 f - (if (= dialog-state 0)
: D+ {. r7 w. n g W# ^ - (progn
; v- a: q$ C, p+ C( }7 t4 d( X - (reset)
2 a, Y! Z5 W0 s, s6 }" J - (image_clean_variables)% w* O; V( o" \. n# }, F: r4 ]
- )
6 r, M, B ]- U/ u - )
. h. ^, q! p% J9 H a - (if (= dialog-state 1)
/ `4 E" {. Z" o) o - (progn
6 u$ g* J7 Z8 ?+ j5 N! d y& f0 q5 ^ - (modify_image)
" O! y! h7 s+ w) L - (image_clean_variables)9 j* }" q6 p4 ]
- )
! t, _* j1 ?2 n1 ?" k - )( b- X3 M% L; a
- (if (= dialog-state 3)4 U- S* \8 e9 D; h B1 V ]- J
- (progn
2 @9 J( I8 Y% ~ - (modify_image)
4 A. V8 o1 P3 F, o2 @) Y - (image_clean_variables)2 G( p, t: Z/ ~: o) S0 R% T; ?
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
' j' T- Q6 H0 N# _- [# e5 E - (ver_pt1 0)
8 B$ |: x5 _# r) T& C( f" P - (ddimage)
$ y: C+ |% E; Z, p/ {9 F; k' K - )
* O+ ]- U# n$ H# g& W5 A* | - )
5 m1 v+ e& a9 c/ u7 K - (if (= dialog-state 4)
6 J' M7 x0 t p3 f( K - (progn; O& Z1 {, ?! j+ }& Y0 ?6 D/ u0 ~
- (modify_image)
4 N, i( Z+ V/ [; ?0 ?) U9 j - (image_adjust ename)
/ {+ d! j% U$ p$ H, i: f - (setq elist (entget ename))
5 _5 G/ L+ h* k; o) ~ - (ddimage)
) z# u* P. Q8 l- f2 _ ~; V - )
. J7 q! n5 _. G$ P1 D2 R! I - )
8 m. z- W5 U5 h, j. ]6 O% Y/ O - )0 ^, r& _9 a6 h
- 8 m1 T( R6 v W$ ~
- ;;9 Q" s& O$ J5 N, {0 Q
- ;; Modify BLOCK (and its Attributes, if any)0 I8 I9 ^7 o# R
- ;;, q3 F8 Z7 Y5 A1 d8 d, s' I
- (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr
0 L5 y+ c8 V1 L2 k - new_wid old_wid old_rot scaling old_scale
) \7 `/ j6 B2 d2 h - xdelta ydelta zdelta xbase ybase zbase ipos)
1 }5 H: S# e; l2 N! [ - (modify_properties)
: Z7 q7 T7 O5 }( C
! S @% r5 H- Q' B2 R+ J- ;; First, translate and scale the Attributes, if there are any.
% f& N' B& ~' f' z. P3 s4 `: @ - (setq old_rot (cdr (assoc 50 elist))9 p' h% Q3 e; f1 j" C. w0 @
- old_scale (list (cdr (assoc 41 elist))
7 \% I, X3 b0 ] - (cdr (assoc 42 elist)), D& I! Q# p4 w9 ?( P6 E! G
- (cdr (assoc 43 elist))
i1 h- m# @4 L - )8 u* S; I: e- M# y' N
- scaling (or (/= xscale (car old_scale))
. f; d. T9 S/ f9 Z- o( w - (/= yscale (cadr old_scale))# w7 i' Z2 Q+ A/ R5 K7 x9 g
- (/= zscale (caddr old_scale))
: H( o! I/ e, N' Z7 q* _0 a ] - )% E& _3 _: B! G7 t' w6 z$ O: L: G
- attr nil ; No Attributes modified yet
$ }- I0 h, M; @2 P& {0 `7 D - )
5 a: U7 V7 N" z - (if scaling
J- J/ D7 v6 R4 x' P5 h - (progn
3 D# G/ C4 g( G* t p2 Q+ E" Y: t - (setq xdelta (/ xscale (car old_scale))
1 a6 F+ O1 L. z7 D' a- d+ R - ydelta (/ yscale (cadr old_scale))' d* l/ c( K p' h. K
- zdelta (/ zscale (caddr old_scale))
$ q U5 i K# |$ D! ]% E5 C* J4 C - ipos (cdr (assoc 10 elist))3 C# y4 ]) S5 u( J
- xbase (car ipos)- w) D0 k3 ~* \ [+ l. v
- ybase (cadr ipos): V) z3 U2 C$ L7 q% B; |
- zbase (caddr ipos)* H8 l' I6 ]) N! m8 f* p7 ?& r
- en2 (entnext ename) ; First Attribute! m+ E2 `2 T R- X
- )
/ l- o1 E1 k; E
7 o2 j# ~. e( w1 i: w- ; If the Block is rotated, temporarily un-rotate it, along
3 c+ ~* ^+ T% J2 S - ; with all its Attributes, so the scaling/translation of the4 y8 W: Y; ^% Y" _6 @3 Y
- ; Attributes won't have to take the Block rotation into account.* d, ]$ s- J$ Q# m* D7 K2 t2 S0 ?# I
- (if (/= old_rot 0.0). Z& ]+ B/ q8 g8 K3 J8 s( [( N, a
- (progn
7 X/ [3 B. {# g; L - (command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))/ y$ {; b; m/ X0 S5 }% S5 [! k4 d/ f" w
- (setq old_rot 0.00 D1 |4 \* D# K% X! |$ X0 P
- elist (subst (cons 50 0.0) (assoc 50 elist) elist)
" \: I5 {5 H. {& W0 G - )
y2 Q, L+ A: @+ m4 B7 q - )
: z9 `) R# _) `2 z& _0 Z - )' R; d& G+ }7 Z. a( F
# k" {+ F+ H6 _" M f- (while en2
2 O7 d) B4 C9 M' ]5 o# q/ F Y - (setq el (entget en2))
" f0 Q" d3 g, `% W5 c. c+ p - (if (= (cdr (assoc 0 el)) "ATTRIB")1 @4 S# ^1 R2 Z) B* Z; w3 z( u" A! n7 X
- (progn) Z5 Z2 ^6 ]3 J- ~7 w
- (setq old_hgt (cdr (assoc 40 el)) ; Height, C4 |" z1 H. c, x, U$ N5 K% F" b
- old_wid (cdr (assoc 41 el)) ; Width-factor
1 p& u- m2 ~" u0 p - oldp1 (cdr (assoc 10 el)) ; Generation start point" n* O/ i# x8 y- t. I9 d
- oldp2 (cdr (assoc 11 el)) ; Optional alignment pt! `# J! U! O# q; F3 E
- ha (cdr (assoc 72 el)) ; Horizontal alignment! k3 U+ `0 {, b/ r% g
- va (cdr (assoc 74 el)) ; Vertical alignment
! ?, f1 K" B) D. T - : B: ]! V! H# S4 }
- ; Translate gen. start point
3 j7 R. `: z1 A6 [' G" M# y M8 ? - p1 (list (+ xbase (* xdelta (- (car oldp1) xbase))). Y& N' j7 l+ K+ w$ S9 g5 R
- (+ ybase (* ydelta (- (cadr oldp1) ybase)))
) {# s1 I2 K. Y* B - (+ zbase (* zdelta (- (caddr oldp1) zbase)))
. D4 h$ k; a1 q - )
& i- X1 R% }" |7 i% R - el (subst (cons 10 p1) (assoc 10 el) el)! J. f: }; N" `2 z
- ), F+ T r" K4 T- k% V
$ A3 A. e' v z7 k. ~# j- ; Translate alignment pt similarly, if present and applicable
% M' Y1 ~( o9 m% M) o) C - (if (and oldp2 (or (/= ha 0)
: A) d1 Y5 l$ Y% h1 x - (/= va 0)+ X! [' g. r& g6 D
- )( A: ?+ N, h6 w) t- U8 T7 d. t
- )
( S! D/ m$ E0 ~ - (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))
, R3 w2 {' |( p5 |2 w2 J9 d9 b V } - (+ ybase (* ydelta (- (cadr oldp2) ybase)))
. ]( U* p& S2 E5 Z# B0 V - (+ zbase (* zdelta (- (caddr oldp2) zbase)))$ N, M8 n; U3 {# K
- )2 T) J$ W2 Y* J+ R* @4 h
- el (subst (cons 11 p2) (assoc 11 el) el)
* g3 F& r5 ?/ o1 o4 U - )
& q8 |' H: v7 D - )4 T7 U+ J6 i Z
- . e" V) I4 K' r9 p
- ; Each Attribute's height and width-factor were computed' t7 r! M' z# L
- ; based on the Block's scale factors. Adjust them now,, f( V) U! L% r( l' `/ ~8 T* |
- ; by first reducing to values for 1x1 scale...
' m) _! g4 Z9 P* S6 q" \8 E - (setq new_hgt (/ old_hgt (cadr old_scale))
N8 D+ z, j; o* Y - new_wid (/ old_wid (/ (car old_scale) (cadr old_scale))) B6 @9 T' ~4 ^/ U8 Z9 g2 A
- )
2 j7 Z- c e0 X+ I1 I - ; ...and then rescaling.- p$ s1 P O$ d5 W4 J
- (setq new_hgt (* new_hgt yscale)
# T" b: a% @ B3 G3 I- ~ - new_wid (* new_wid (/ xscale yscale)). n' p2 u( d! v) J. ~
- )
0 P. a- n% Z% V8 m1 Q - (if (/= new_hgt old_hgt)
- m/ g `7 E- U! t6 r - (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))
9 J, \& {2 g- \: U- c0 Z" Z" ?" j - )+ w* P8 d& ~9 J$ E
- (if (/= new_wid old_wid)8 ?$ ^9 @% U, i7 a2 ~
- (setq el (subst (cons 41 new_wid) (assoc 41 el) el))% H) P8 s3 x5 j# [+ D8 G
- )2 R# u2 Z7 u h' B$ a8 H
- (entmod el)# @9 D6 q0 [* Q4 s3 t9 B
- (setq attr T ; At least one Attribute modified
! O- ]+ _0 Q4 E5 P$ A' f - en2 (entnext en2) ; Next Attribute4 L$ v! p1 P" ?6 Z L5 Z
- )
5 Q7 m, j: a# \& ]2 o2 X - )% q& s7 v% o& K, ~- B
- (setq en2 nil) ; No more attributes
1 q7 V V7 M6 R# A$ l: x% k - )& o& S; I5 [6 Q S9 H& q* A! `
- )
) b8 v5 e& j2 Y8 Y - )
; n7 i0 S/ a$ P3 k9 @ - )% ^, k+ O8 `) Y+ X
- 4 R" a, y; _! \7 r/ k
- (setq pt1 (list x1 y1 z1))
) X6 Z- ~+ x3 _ - (tempmod xscale 41 nil)4 M1 C% K3 D6 R1 q* ]. [( [" ~
- (tempmod yscale 42 nil)
' V9 I" d/ V1 t) B - (tempmod zscale 43 nil)
' F4 q' h x4 F* ?+ q' @ - (tempmod col-sp 44 nil)
8 n3 S6 r* w! z# Q2 F5 O Y - (tempmod row-sp 45 nil)
* E1 ]% z+ V. ]3 \9 n4 E6 m - (tempmod columns 70 nil)
7 c1 \3 x: V1 x% _ - (tempmod rows 71 nil)( \9 l/ ]( X( V# {( r7 `- S0 Y
- (if (= xclipmode nil)
* b U/ `0 c& g( T - (entmod elist)( r9 |7 E/ n/ K1 g0 C6 a! Z! A& X
- (setq xclipmode nil)2 V% \0 v/ D0 f* G: W' h0 x
- )
9 W: g0 v3 J$ y1 i+ i5 i - (move_pt1 1)( X, X+ P; O* V7 Y
. b c# n, ^! Z- ;; Now do the rotation with the ROTATE command.' e3 Y y ^5 Y3 N' p5 _* N! l
- (if (/= old_rot rot)
- q' @) ]! q6 o% u( _2 ] M - (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))
4 ?! Q; Q* H6 u0 h - (if attr ; Else, if attributes were modified,' |+ _: Y% S7 ?. A; H. b
- (entupd ename) ; just regen to force attrib display
3 f- b j( R" d7 \4 w E, b3 {3 V1 h - )
/ W$ ]. T0 o; F0 W/ g8 I - )3 D' W- {0 P% k) \! e- d
- (setq elist (entget ename)). X4 H. s+ i3 Q$ X# F
- )
# c# E9 d4 z* f! W+ K - (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)
3 o" M: x1 k( \0 }0 [. L6 a9 r1 A - (setq newhatch 0)
1 T/ r3 M9 A3 R# u/ M# z" K - (setq blkname (cdr (assoc 2 elist)))
/ f! b! q' I* r: G3 a - (setq blklist (tblsearch "block" blkname))
- @4 T" `2 M: V" l$ p, ?5 e - (setq blktype (cdr (assoc 70 blklist))); _) i6 j% H5 R. y2 P: N8 k) N
- (setq xcliponoff 0)
1 g0 G4 t& R1 W; w, J - (if (or (= blktype 0)(= blktype 36))
/ _ p4 G4 t+ K, Q - (progn
6 f# t, [# Z* `, g7 }$ t. ^$ a - (setq xcliponoff (xclipon elist))
& H% e& e' P9 q; a$ g - (setq temp_xclip xcliponoff)0 W7 A" H/ {: I* _% M) F
- )9 X7 g( j' O- u% n3 H6 [8 c8 ?
- )
* I+ u5 Y# |. I6 @1 J. y - (if (= (logand blktype 4) 4)% D. P' w/ x2 H( K
- (progn8 K$ g6 _$ s5 j
- (setq xrefpath (cdr (assoc 1 blklist))) w+ s: ~# D Q5 \: C6 g
- (setq help_entry "modify_External_Reference_dialog"); J$ M; @+ n7 w* K8 ]9 d5 ]* c- c
- (if (not (new_dialog "ddxref" dcl_id)) (exit))
, j5 B+ k& x/ ^! u' \* U - (set_tile "Bl_name" blkname)
' A' P& z. Y$ h- g( H# R - (set_tile "path" xrefpath)0 p0 J; N) d9 E
- )# x7 N( W" S2 R, x- A& j
- (progn( B7 R# ~3 F1 u% W
- ;; Get program name for use as Xdata app name
4 u; @! v6 O* w1 p5 b! K% J - (if (not (setq program (getvar "program")))5 o5 t. {, X% S8 H/ W: k
- (setq program "acad")
+ N: Y% B3 H, o& x# Z - )
% t' i4 F' x k- N0 W6 q' | - (if (and (setq temp (assoc -3 (entget ename (list program))))0 x3 z2 H* ?/ N7 M
- (= (cdr (assoc 1000 (cdadr temp))) "HATCH")
8 }1 Q* O$ C" l+ n2 H$ e: Y - (assoc 1005 (cdadr temp))+ a K- N& g( _) P( p
- )
W! y6 Q+ ~9 m6 K - (progn
/ }4 y& d/ s; g* t - (setq newhatch 1)$ L- ?8 H3 T. _3 O
- (setq help_entry "modify_Hatch_dialog")
4 g9 m: x9 ~. a. ?; f - ;;; convert the object into a new hatch
! F3 [# S4 n, R - (ai_undo_on) ;; enable undo
/ ?5 c/ E$ K, e3 a9 m4 F - (COMMAND "_.UNDO" "_Mark")
" E0 ]" L u$ C - (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) ""): \6 A: j5 A1 [3 J% c6 _0 b
- ;;; suppress nasty message from convert command
* Y' V. L4 B2 a7 c2 d3 f - (princ "\r \r")
+ V7 a2 {6 C- w$ V1 q# p7 p7 a& L - (setq elist (entget (setq ename (cdr (assoc -1 elist)))))
$ o4 I G: n8 A8 v: x: ] - (setq old-elist elist)" N# i: O7 }- X* a& ~, P
- ;;; If we have cancelled ddmodify# f6 p' M8 {" w' z4 s% a; G
- (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok1 K, \8 W( f& J: @
- (command "_.UNDO" "_Back")
, h5 P9 N: S2 e O* @' O7 S8 y8 u: | - )7 B# a' v; W4 T9 v, J4 z/ S
- (ai_undo_off) ;; restore undo state, V3 k3 ~6 A' d* `. j- ]$ x9 h5 ^. S
- )
7 H6 A; j5 {- D/ @6 u+ s. ^( J" u! w - (progn
- B6 X- J1 s" }4 K - (if (not (new_dialog "ddblock" dcl_id)) (exit))* J: u0 a* N2 W* k4 \
- (if ( = "*" (substr blkname 1 1))
/ w; e; w- i6 q9 D; L, j - (set_tile "Bl_name" (strcat blkname " - Anonymous block"))
) A* |9 s( E- J% C- w& l - (set_tile "Bl_name" blkname)
9 w1 H6 G1 S' r1 W0 K1 b1 ^ - )/ A3 v# R6 i! Q2 c8 A
- (setq help_entry "modify_Block_Insertion_dialog")
+ F, C% J. l8 l: b - )7 S: d9 o7 n8 B, O8 j
- ) R. K8 C0 ]3 ~& m" N
- )1 |' s+ H. p5 |6 N3 m
- )
9 z/ G, P% }- K( [3 |6 V- s6 y - (if (= newhatch 0)/ b7 _' G$ D. u- S- A1 n" \% ]0 D
- (progn, n- K' b% X) j' _& l5 p: u
- (set_tile_props)
7 y' {( L' x+ m - (set_tile_handle)
" U6 G' N/ u4 o - (set_tile_pt1 1)
1 }" e2 @. f n# @, k - (set_tile_rot)
* {% c9 j( f6 F% Z! N$ B$ W2 i% c - (set_tile_scale)
6 g) n3 Z- m1 q - (set_tile_rc)* O$ J) r' V$ z- C. X# L
- (if (= (logand blktype 1) 1)! s1 I+ `5 [& J4 c( C4 q' W
- (progn" T' I$ {( r. i% _( R* l
- (mode_tile "xscale" 1)
4 n+ W4 [2 G* L8 w - (mode_tile "yscale" 1)
* l; }/ p9 q" q" s. P. t - (mode_tile "zscale" 1), B2 F# q$ q5 _+ |; C$ W0 G% c
- (mode_tile "rot" 1)4 j b6 H+ P6 r1 a
- (mode_tile "columns" 1)6 j* [; ^1 S O2 P& U
- (mode_tile "rows" 1)
% j2 r2 }) ~ h- _ - (mode_tile "col_sp" 1)
2 T# J" b T! O# V - (mode_tile "row_sp" 1)- v9 ~* @4 Z* d* ^5 B+ h7 C2 v
- )
7 R1 R+ i; f1 M3 z - )" R3 v2 G% H1 {
- ;; Define action for tiles1 U+ x9 L* @; x, L# {$ {
- (set_action_tiles)
2 q6 I' ?6 p! c - (setq dialog-state (start_dialog))( G) N& J: T4 } N0 X
- (cond
% d# X# z; U! ?7 [8 h. b - ( (eq dialog-state 0)) ~# {5 g8 R# s. S
- (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))
/ e8 s L5 D7 l/ k0 j' t - (move_pt1 1)
: p. s# j7 }3 ]9 ?& X" ~ - (reset))5 I2 Y( Z$ a" d2 ]
- ( (eq dialog-state 1)! R( C+ e+ u4 A( J; R
- (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))5 Q( r) ^1 d# x$ `6 S( n/ n3 P! W+ u9 `
- (xclip)
9 c0 w; b+ o- F; j; K - )
, M: s. N2 d( h" B - (modify_block))& o) |4 \5 T: k
- ( (eq dialog-state 3). {& j5 p i8 E4 j+ W
- (modify_block)
' Z+ M+ F, r8 \1 h ?- r% X - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
, Y) f6 m, a" x1 h% S - (move_pt1 1)( u& x1 ?, a6 h6 y' G- c/ g
- (ddblock))$ X) A( Y8 o. W, Y* T/ s: [ c7 t! T
- ( (eq dialog-state 4)2 \4 x: {3 [! o% o! q
- (modify_block)! A9 q1 B' V$ \6 f
- ;; Get current handle.( n* G% ~) V* Q. e8 h7 \- z
- (setq hand (cdr (assoc 5 elist)))
. J7 t2 U6 I$ Q% Z. J) P5 d. J - (command "_hatchedit" ename)
2 X/ s* B$ j$ q9 p' q3 F - ;; If OK in hatchedit, a *new* entity is created and the old one
& A8 r! B1 i5 w& q - ;; is deleted. So if the old one exists, it must have been a. \0 m3 W0 }8 Q, D# B
- ;; so rest the entity.* j+ @/ |1 H' t: V" U4 t( Q
- (if (entget (handent hand)) (reset))
5 ?# N+ k1 q: c - )+ ?# Y: l. s$ m2 B0 L
- )
8 y; [9 |+ g' X1 A5 s1 X - )- E6 y4 @7 n1 z9 a0 A% ^' g
- )
' @$ ?) v0 v. `" I* b% D- w: i - )4 R b0 p0 a' }' m. k! n
- ;;
9 t7 O- N' q9 i% @ - ;; Modify SHAPE" o! C6 ~8 k) q4 Y5 ~
- ;; m5 Q2 B7 B7 S8 ^' S
- (defun modify_shape (). m) D8 @6 b7 U! \- j
- (modify_properties)3 b& }+ I/ ?7 X; Z* B
- (setq pt1 (list x1 y1 z1))
9 H/ s( Y7 ?# q8 ?% Y4 q) K @ - (tempmod pt1 10 1)
. e) u( {& o8 k0 i - (tempmod hght 40 nil)% G$ J" N( K, m1 o6 ~* I
- (tempmod wid 41 nil)
6 _" ~/ G/ ~# ~, ] - (tempmod rot 50 nil)5 k: c c3 d+ @9 m3 V. b' F/ |
- (tempmod obl 51 nil). N, l$ X' E+ l& ?' c
- (entmod elist)
4 ?* v' J+ {9 i; |; A7 ~ - ). ~7 Y, h) {7 i
/ |/ N" w* N1 c P+ j5 `# u2 B- (defun ddshape ()0 n! t& {7 q) v6 C9 c" ~
- (if (not (new_dialog "ddshape" dcl_id)) (exit))3 j- {+ Q% g( C3 n
- (set_tile_props)* ?$ V% t3 P' @0 V$ D
- (set_tile_handle)
" }) `& Y3 f; D, H) x" c4 V - (set_tile_pt1 1)
. O2 s0 z$ n% X* g; q( X& C) u - (set_tile_rot)
( w, i' f1 p+ `5 Z: X) C- {7 A; V- b8 t - (set_tile_hght)
8 N5 l: Y V) x3 R7 x+ Y - (set_tile_wid)& G7 P+ m$ e8 q1 K# j
- (set_tile_obl)" b7 F+ o D$ H7 r% \8 d. \
- (set_tile "sh_name" (cdr (assoc 2 elist)))
8 _( p) p1 x9 | - ;; Define action for tiles* Y( c, l& m& D3 f4 M4 R
- (set_action_tiles), n, w& Y: d* Z. P& a9 t6 S) E6 C
- (setq dialog-state (start_dialog))
+ G7 a! u# F1 Q - (if (= dialog-state 0)5 v4 Z u5 d; d/ y, R! D
- (reset), f% S! K1 i8 o
- ), x0 F$ N1 W' i; t
- (if (= dialog-state 1)
- ]* }% i0 q9 _9 P& d - (modify_shape)$ I' z/ W* L# J
- )9 L+ |# h9 G9 J/ v0 h) c# R
- (if (= dialog-state 3)
! Y, W/ }' R( H( j! y - (progn
: B2 }8 T' {2 J( g! Y0 ?% M: g: S - (modify_shape): W0 g8 A, Z8 ?9 j
- (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
. |. F: n) @* q4 I: H/ s - (ver_pt1 1)( J, k; E+ x( L7 r- p
- (ddshape); H! d* a2 ]: D
- ), X C1 b0 _- P- U k
- )
' @' K2 Q \5 \5 h- ~ - ): Z0 V9 F& R# _4 V* u7 X
- ;;. L8 [" x) C" t# q; {
- ;; Modify TEXT or ATTDEF* \9 ^' _. X# p6 _
- ;;
. D0 a. A" T- ]4 K4 M, d - ;; Set bit code for upside-down and backwards setting4 O2 F, a( d. s+ j2 x
- ;;$ l! N2 J% n( i- `
- (defun code_71 ()" G$ k0 g3 L( e" w$ i/ e- W
- (cond ((and (= bkwd "0") (= upsd "0")) 0)- y1 `6 X. Y; H1 M |
- ((and (= bkwd "1") (= upsd "0")) 2)! ]. v6 o3 _! ?( z: u. j, _3 |
- ((and (= bkwd "0") (= upsd "1")) 4)4 v8 X2 F/ H4 g
- ((and (= bkwd "1") (= upsd "1")) 6); _- f- R5 u5 a
- )
1 g, H2 G! y' g! M+ T& | - ) e" N6 ]6 G# l1 Q) u
- ;;, M2 G4 F4 e- {
- ;; Style action. Reset widget values to style defaults
, x2 z; M6 o& E# E8 j. d4 ] - ;;
; l6 K. }, G8 q' z1 |+ T( v - (defun style_act (index / style-list)
) Z8 E% L- f% t8 Z - (setq style-idx (atoi index))
6 ~! M1 O7 B" ^. c; ] - (setq tstyle (nth style-idx slist))* b4 F4 y9 }3 g) F5 t% ]$ R
- (setq style-idx (itoa style-idx))5 r+ B1 d: }3 P" N3 M
- (set_tile "style" style-idx)
5 c8 _! k' U* f2 |' b. _' \8 D - (setq style-list (tblsearch "style" tstyle))8 [" k# E& C# o9 G/ U+ W0 r J
- (setq shght (cdr (assoc 40 style-list)))
8 d" }$ T) r5 H! p& P: M - (if (/= shght 0)7 A, ~4 M. j% U
- (progn% r0 m" n: _/ K$ d) r6 T5 z
- (setq hght shght)
0 W" O p7 q9 j* f9 g# W - (set_tile "hght" (ai_rtos hght))2 ]# G9 }% r6 i4 {0 q
- ): [- t4 A7 y/ ~
- )
' G" @, D5 d Z7 z7 {5 [/ n! x n. S - (setq wid (cdr (assoc 41 style-list))): E$ q. J5 d6 X" I
- (set_tile "wid" (ai_rtos wid))$ J1 A' t+ S, c; J7 j" N2 k
- (setq obl (cdr (assoc 50 style-list)))
u% j: r# U* s+ h4 L! d- p - (set_tile "obl" (ai_angtos obl))
/ b$ F: O; l8 Q6 P2 Z( } - (setq bk-up (cdr (assoc 71 style-list)))6 V9 b$ u. F6 F! o6 s
- (if (= (logand bk-up 2) 2)) t _: N4 c7 k% }, x$ |8 ]& I
- (set_tile "bkwd" (itoa (setq bkwd 1)))
) b0 ]7 ]- W. F+ }; _ - (set_tile "bkwd" (itoa (setq bkwd 0)))1 @6 y9 m f8 W( i" b" q& Z' Q
- )2 w5 s6 I- e v( u4 t/ K
- (if (= (logand bk-up 4) 4)9 j8 } f2 w0 A" L* Z. ?
- (set_tile "upsd" (itoa (setq upsd 1)))
+ o5 T' G, P$ w) g - (set_tile "upsd" (itoa (setq upsd 0))) ]' k' S( I) _$ c9 a5 @
- )* f# k9 h2 M& K* L
- ); V" o+ b( a. V: W2 ]- _0 ~
- ;;2 l; k L H0 G0 B4 j/ P
- ;; Justification action. Set vertical and horizontal alignment variables,) l$ r; e" z( ^8 u
- ;; grey out rotation and height if alignment = "aligned", grey out rotation5 f8 K" V; R+ \; G
- ;; if alignment = "fit".( j! m( x, j6 h3 W
- ;;
. o; [9 J( X* H$ r& Z- S6 a - (defun jlist_act (index / templist)! |4 l7 C- T; u
- (setq just-idx (atoi index))2 n' j. W/ @% C {; j# T
- (cond
+ m8 h# y! S G9 f% i2 I9 m( u - ((= just-idx 0) (setq va 0 ha 0))6 Z1 L. z' b. [
- ((= just-idx 1) (setq va 0 ha 1))
5 y; i" ~$ c" j% v7 X$ n: D - ((= just-idx 2) (setq va 0 ha 2))3 L. N* X0 V. }* K. I
- ((= just-idx 3) (setq va 0 ha 3))' x0 _/ B1 j/ m* h+ F% h3 }% T
- ((= just-idx 4) (setq va 0 ha 4))
* g4 ~: ]7 Z4 V+ m1 I) x - ((= just-idx 5) (setq va 0 ha 5))0 N J1 q6 P# ~& `& a$ D& u, W" M
- ((= just-idx 6) (setq va 3 ha 0))
8 k4 F7 h3 A6 z9 v- w, @4 Y - ((= just-idx 7) (setq va 3 ha 1))! M* H! O; B0 ~3 V1 i
- ((= just-idx 8) (setq va 3 ha 2))
6 i4 K/ g" N/ j0 s- s$ b - ((= just-idx 9) (setq va 2 ha 0))& S- T; o h0 C; n
- ((= just-idx 10) (setq va 2 ha 1))2 s+ r% _$ ?) p
- ((= just-idx 11) (setq va 2 ha 2))" {4 t4 N* j: E9 H9 L5 k7 b
- ((= just-idx 12) (setq va 1 ha 0))
7 c& E" b* ~, l - ((= just-idx 13) (setq va 1 ha 1))* k/ J) z/ |! _( z# b3 V% ~
- ((= just-idx 14) (setq va 1 ha 2))
5 U7 b9 H7 i* n2 B; U: X - )
- F( p0 y6 ~/ b - (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text
$ H+ S, G1 Y, u5 n* ~/ Q - (mode_tile "rot" 1)
" o2 ~) U! g7 x - (mode_tile "rot" 0)
, _. }/ W: _, I; o( v - )
/ P4 e9 V5 L7 p3 a$ n+ x - (if (= ha 3) ; If Aligned text4 w! ^( ]' V$ b$ ~0 h
- (mode_tile "hght" 1)8 j) t1 @* v8 S; h: G: ]2 }; E E
- (mode_tile "hght" 0)+ T; b3 A; T5 B
- )* A5 N) S, r* |9 Z- m- g h
- (if (= ha 5) ; If Fit text2 L) ^( K" o% ]* u
- (mode_tile "wid" 1)9 l6 h5 ^4 `& b" q9 Z) W% t' d
- (mode_tile "wid" 0): E' Z6 h" x, s' `3 B; k6 z
- )
6 s5 e9 V* u$ b - ;; Reset rotation and height if changing from aligned.% n2 y# F" z* t- C' A& V
- (if (and (= ha-prev 3) (/= ha 3))
B0 G. ^. Y$ [3 c) j - (progn
8 F9 V/ k% B6 p& D& J U6 Z - (set_tile "rot" (ai_angtos (setq rot 0.0)))
1 L" T; `' ~% e - (set_tile "hght" (ai_rtos (setq hght 1.0)))
8 [9 d7 w, d) j - )
9 |8 _; ^& p1 {* W - )
% s# ^2 i- D* z5 A& P* V
1 e% ^# ]9 W2 J+ E S2 ~- ;; Reset rotation and width if changing from fit.
, f: d W. w P; Q; |1 b' t - (if (and (= ha-prev 5) (/= ha 5))
' `: d! n8 I7 n! F3 F" `% q - (progn$ U! e3 E) w* H' Q
- (set_tile "rot" (ai_angtos (setq rot 0.0)))6 a% h. @1 b% j F4 U* _1 R
- (set_tile "wid" (ai_rtos (setq wid 1.0)))
- B. L6 z' E1 J) t+ c- M9 H6 W# h - )
/ _2 D+ U/ v8 m X+ u - )
@2 U- E: g% t0 v' j: q5 n# _
r/ I9 q" \" R( i( y6 r* i- (setq ha-prev ha) ; update ha-prev for next time8 W* ]+ M! z& w" c6 t- M
- (setq just-idx (itoa just-idx))
! `/ J: L% V4 A; Q$ B- B - )
4 S/ I+ X* m; W - ;;
( S# u. M0 g8 o+ `0 g$ X5 X7 r4 L - ;; Set intitial alignment setting based on vertical and horizontal alignment3 i4 A- b' _3 _) i" z
- ;; bit codes., y5 _% H' {3 a' F! q$ z7 ^
- ;;
2 m; l2 B0 n3 q; H - (defun set_just_idx (). G$ o9 j$ E, O% Z; ^& ~# ~
- (cond6 p- d& \7 J9 T
- ((= ha 0) ; Horiz alignment = Left
! F7 q3 D# u& V. A0 a7 L5 O - (cond
3 t4 v+ y) I( ?) e( V/ E - ((= va 0) (setq just-idx "0"))
" P% j- _* s. f% t( ? Z+ r - ((= va 1) (setq just-idx "12"))( U. c$ h6 o+ M
- ((= va 2) (setq just-idx "9"))
4 C2 r" _5 @& M+ e% O! ^: V x- m - ((= va 3) (setq just-idx "6"))8 R" f4 [# c9 a( ^
- )) L6 h1 Z' D S6 `7 ~7 @% k
- )
+ I$ u6 a% Z6 X, h& G+ j G0 Q - ((= ha 1) ; Horiz alignment = Center
" z" J, I8 J$ O) a9 Z - (cond
- K: f0 A0 F. D* f* y - ((= va 0) (setq just-idx "1"))6 k; }$ p/ e9 q9 {4 P2 Z( D
- ((= va 1) (setq just-idx "13"))
% u! W! a; H; V - ((= va 2) (setq just-idx "10"))9 o: j! ?5 Y0 x5 \
- ((= va 3) (setq just-idx "7"))
& Y V% a6 d# x/ d - )+ w8 j# N ?7 }+ P
- )
: j# P* U* _) r; l8 C" x" x - ((= ha 2) ; Horiz alignment = Right# N3 ?" E/ c5 b5 D
- (cond
* m: E3 l# S# R* B/ A5 a - ((= va 0) (setq just-idx "2"))9 _; V$ t# I8 ~% w( z
- ((= va 1) (setq just-idx "14"))- P: v5 S! \5 w. f- V
- ((= va 2) (setq just-idx "11"))" I: M! Y0 ?2 N$ z& M
- ((= va 3) (setq just-idx "8"))8 r! M L2 y3 [7 z( {
- )
7 a. ~2 N( }/ _ - )
8 ^1 N+ ?5 E( G. z - ((= ha 3) (setq just-idx "3")) ; Aligned
% I7 k, L4 ?9 |3 Q5 T - ((= ha 4) (setq just-idx "4")) ; Middle
9 V; U% C1 g& Y2 v, b# D/ _ - ((= ha 5) (setq just-idx "5")) ; Fit D6 J+ s2 U+ W' G$ S6 Q0 j9 o
- (T (setq just-idx "0"))
4 f% f% \! ]7 P# h - ) I2 \, k! |) E+ t5 a' z7 ~
- just-idx
/ _) `7 ~8 o- d1 z' l( Q: ] - )
# v0 ^/ B0 J8 R6 ?, ?5 v6 \2 u7 [# s
: O _4 R9 ?2 w/ P" A- F, E4 o H- (defun modify_text ()1 F( O' g. v `0 {* @/ l. E
- ;; insertion point( Z6 ~5 x4 k( m1 ]
- (setq showpt (list x1 y1 z1))2 K# I$ R5 K, t5 Q' X% }
- (setq bit-10 (trans showpt 1 ename))
1 |/ z$ T5 U' V) z) J - ;; alignment point* J1 a5 F- r4 g. e2 N9 e
- ;; for 'Aligned' or 'Fit', alignment point must be different- L0 F7 S& s1 N- {1 S" q
- ;; for all others, use insertion point
1 Y; {) C. o2 K# w8 w5 b$ w# o - ;; (ACAD will recompute insertion point)# j' k1 |' P: m7 {, m
- (if (or (= ha 3) (= ha 5))
`5 |! n1 t* b# u - (progn
# J( i5 Y, y ~$ O - ;; if no alignment point, fabricate one) K3 a5 _; B& w9 U# C
- (if (not alipt)
0 ^' Q8 x: r% b% H; T) p# @% O) V - ;; add text width to insertion point
- ~: g1 `' G3 y - (setq alipt' e% [, R" @" \6 ^' f
- (list (+ (car showpt) (car (cadr (textbox elist))))
8 p s; o4 S' l - (cadr showpt)
! n; @+ J' n( `& N: X9 | - (caddr showpt)2 d9 ]6 i( y* I0 b
- )% C# s5 W6 X4 `6 G, q3 [3 O" P
- )4 |7 z& ?1 B/ X+ `& I) i# v {
- )( Q3 Y% ]. B. a& U
- (setq bit-11 (trans alipt 1 ename))5 u {% u. A* t: a
- ): C% E( k" j( M8 S7 u. @
- (setq bit-11 bit-10)
' R; W2 R0 k/ h7 ?4 Q+ m$ p& ]) h - )) ~" ~ ]" k# A% S3 ]. b' _
- (modify_properties)) @' D. g+ B3 s0 d9 e% X- e5 R* C+ f
- (tempmod tstyle 7 nil)
0 |$ }7 T* n7 S* ^9 ~6 i$ f - (tempmod bit-10 10 nil)( W$ W- y7 T# ~' }
- (tempmod bit-11 11 nil)
& ~4 f9 ^6 H# H - (tempmod text 1 nil)
; S7 |7 q( P7 z - (tempmod hght 40 nil)
$ r) N, o! I: J, M - (tempmod wid 41 nil). H/ V& q8 ]' v) ^
- (tempmod rot 50 nil)2 _8 N4 S: {2 n) h- a
- (tempmod obl 51 nil)
8 ]& x# d* }' G" N Y - (setq bk-up (+ (* bkwd 2) (* upsd 4)))
2 Y5 M# h$ l$ U/ j' z1 N - (tempmod bk-up 71 nil)
. p5 j' U: @! ~7 ` \4 F4 b5 y - (tempmod ha 72 nil)
+ o9 x1 R- y! I - ;; Attdefs use 74, text 73( y2 A% }6 k- v# u5 k! [4 b5 X
- (if (= etype "ATTDEF") ]) L- ~9 W: N% q& w
- (progn
3 S8 l) M4 _4 G$ M# ^; g; f$ @ - (tempmod attag 2 nil)5 r. |+ B4 Z# h( D$ T: u
- (tempmod atprompt 3 nil)
' X: q$ o; C- J) F - (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))
) a7 h+ O+ J* T& L/ V( R - (tempmod icvp 70 nil)
' q* x v1 U, F - (tempmod va 74 nil). L& f- {' u, ?0 _2 o! B
- )
+ x2 R/ Q+ T+ K. U7 V5 s - (tempmod va 73 nil)
0 g; t4 N% z2 J9 \ o - ). }, F9 I/ h$ \! W
- (entmod elist)7 p+ }% D3 L: \) c' Q- r
- )# ^" P4 @3 e. F8 q! V/ k! ]& q
) m# M% @+ ?% u+ a4 Y. S3 h" O& }- (defun ddtext (/ 2ndpt slist i)
0 b: p) G3 O) u' W - (if (= etype "TEXT")
3 t5 N A: I- |3 L - (if (not (new_dialog "ddtext" dcl_id)) (exit))
) }1 h8 g* w( T# G: W$ Q - (if (not (new_dialog "ddattdef" dcl_id)) (exit))7 J6 C, t6 i( V8 r: D/ F
- )* t u7 V. u8 N" V/ b9 ]0 o
- (set_tile_props); ~) r5 k% l& K: {4 i0 P n, C
- (set_tile_handle)
( k" W! m& G- I' M - (set_tile_text)) q% O9 c% V5 k
- (set_tile_tag)
_/ H5 l8 `3 v* t& M - (set_tile_prompt)
5 q# r7 w4 d# r7 i; a3 [! ^ - (set_tile_hght); n/ U9 r# a8 ]" ~; u$ n
- (set_tile_wid)
4 U4 d) N& W7 @8 |& K' X - (set_tile_rot) N: Z5 t9 Q- D) ^
- (set_tile_obl)
( V' N+ @9 L/ j6 e0 Z6 V - (set_tile_bk-up)1 r: R' {2 Z& @+ \) w) N; V+ N
- (set_tile_icvp)
2 K' ?0 n0 `! e - (set_tile_style)
4 ~9 m+ J7 e* m/ o - (set_tile_just) f# u- ~' Y: r1 e
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))0 o) ~/ g5 k+ H, L+ @+ B
- (if (not (assoc 11 elist))$ q4 ]+ }* s: R2 N
- (progn (setq pt2 pt1)
- g2 \3 W! w+ ]- U4 b- {) [, x - (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))
, n5 u4 Z5 w, z% ]! x$ p. _ - )) P% V0 y0 ]/ r/ {" V
- ;;(trans '(0.0 0.0 0.0) ename 1)) E( d9 s9 e/ \& U
- (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))# y& y' H6 G/ x4 B
- )/ f) @, F: Y5 H# h5 c8 K# p8 `
- (if (or (and (= ha 0) (= va 0))9 }% ^+ T0 c1 ?, [# N
- (= ha 3)
# b5 x/ b6 z6 |4 \6 z% {8 M - (= ha 5)
' J% |- A& E% H8 e$ t7 Y6 ~ - ): Q, L" q: y: _4 N
- (setq showpt pt1)
$ v& S2 I1 c: {4 ^ - (setq showpt pt2)
2 t* b2 ]5 I5 s - ): u; |6 o$ S% t6 F O6 j* E
- (if (or (= ha 3) (= ha 5))
0 c+ v* ~ |" y- G8 u) y - (setq alipt pt2)
* l3 o% i- f* N7 F" h+ T+ t3 E - (setq alipt nil)5 D& m1 C+ u3 [& y
- )6 f' p- @8 C) \2 k; h, Y! r( T
Q+ H9 W8 G. \) R; _) c- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt))))
9 R4 X- z( A8 N V X) L+ K u - (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt))))
% ~; K p6 t' l# G - (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))* _, A* E; k1 H2 j
- ) P9 @2 N+ h! j
- ;; Define action for tiles$ W$ D) K6 O+ }0 i& ~* |! h
- (set_action_tiles)
9 D* [- N6 H, H7 r' {2 a2 _ - ;; Set focus initially to the text edit box.
" F5 d+ \) q9 s7 G - (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))
( b9 h$ @4 Z6 r c U& ~ - (setq dialog-state (start_dialog))
: l4 m' k( H3 q9 @2 |/ J' v - (if (= dialog-state 0)4 L9 [# u. t8 Y' Q/ {' B
- (reset)$ O5 X* f& ^, w. m
- )
# s! P5 g1 e! ^( E2 m - (if (= dialog-state 1)8 r, ], p6 y0 o e( ^1 f
- (modify_text)
4 d' o* O' K8 f& R - )
% A* K* d; N' D% U. M# m7 J/ d8 u" @ - (if (= dialog-state 3)! f! \( T) Y+ m; w
- (progn+ S. b8 f7 u" P0 Y! M
- (modify_text); L; J7 r% I: m: a
- (if (or (= ha 3) (= ha 5)). {1 W* X# R& O9 W/ S1 ?
- (progn' g* W; d" G5 f% K- Y9 J) g
- (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))
" Q- e) h% c/ x, u4 X2 S - (if (not showpt)
& K" ?) J6 S* \! c: X- H& V - (setq showpt (list x1 y1 z1))
# F/ V* ^8 d; _# S" ~ - )
4 h' F( m( t7 ?4 |, z, v - (setq 2ndpt (getpoint showpt "\nSecond point: "))& {7 \. j6 [- U. L# z
- (if 2ndpt: X. V) n/ c" @: x" @8 R
- (progn
: E0 F! M3 E: }- T# W* `! v" ` - (setq alipt 2ndpt)4 Y2 a9 l- J/ G" e2 n/ \
- (tempmod showpt 10 1)3 h4 R) B8 ]* n; b
- (tempmod alipt 11 1)3 I1 f/ J2 S5 V; @9 c
- (entmod elist)# r1 n- N* u- |' N$ \ W
- )" ~( L* k: }6 S8 S
- )
+ R8 E7 ?7 C5 q C+ Y - (setq elist (entget ename))1 M! }2 F. d. Q8 H1 a
- )% U5 ~3 \' p3 P
- (progn
. K) V. l" @) L3 s e7 A( p$ I3 } - (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))( }) X- I$ y" E, R
- (if showpt3 e" @% X1 `( K0 m7 `/ p l
- (progn" _: D# r' m% ?
- (if (and (= ha 0) (= va 0))
. f X; D7 d K* `3 X - (tempmod showpt 10 1)( n3 X4 K2 c1 Z: Z" A) ^
- (tempmod showpt 11 1)
9 O7 f- J2 J' E9 m F# e - )
: p: |/ M: g9 l) @: U9 ^* q - (entmod elist)% E# {. t( I1 u9 m# i6 |
- )
5 O; b5 `2 ~9 q4 y# B" g - (setq showpt (list x1 y1 z1))
; S1 Y) }0 [2 Z% I9 l& J4 x# Q - )0 G; @( k7 U' A6 m' K+ d
- )- z4 {5 Z4 L/ z4 h& E: d2 q$ p ^
- )5 n9 ~# Z$ j! v( }7 y
- (ddtext)6 s' H6 D. E; A0 @ A, O f
- )9 P y9 j( y& Q, J8 ^; F0 h
- )
: c6 ]8 |: n, r: c# x7 x - )
9 J/ m+ C% q- o/ ? - : r0 c1 g) E1 y* C# P2 A
- ;;
$ H4 @8 d6 x( j O6 U* F; C - ;; Modify MTEXT8 N* H, T" Z3 T! Q F% o' M- }
- ;;: M' i' U. P/ v S" ]* H7 J
- (defun modify_mtext ()/ Q3 ~1 T% k/ G0 {8 L4 c/ X
- (modify_properties)
% r9 y3 c, f# |0 p& l - (setq pt1 (list x1 y1 z1))3 K+ _& _) B- ~4 u' l
- (tempmod pt1 10 0)2 e, W$ o) D% l
- (tempmod text 1 nil)
# G8 A& c Q& R1 x# e- U4 y - (tempmod tstyle 7 nil)7 G# g/ [" h3 J& [& L4 A# X1 L
- (tempmod just-idx 71 nil)0 J! j) V/ q# D- d- K5 m
- (cond
) [! o2 S' u( A4 s5 _. Q - ((= dir-idx 0) (setq dir-idx 1))
L/ O( `& |& t: Q) h4 ^ - ((= dir-idx 1) (setq dir-idx 3))7 U$ I/ ?! ~$ I2 z3 G9 D
- ((= dir-idx 2) (setq dir-idx 5)): M- N: x- n3 s& o
- (T (setq dir-idx 1))
5 [& ~/ v2 k! r! D! b9 X+ Y - )+ A- C4 Y' ]2 _3 r$ m4 {% o0 Z' g
- (tempmod dir-idx 72 nil) h9 ^" ]. q% ] f8 D: i' `3 X$ o
- (tempmod hght 40 nil)' Q; s: b/ P+ M5 e# c
- (tempmod wid 41 nil)$ {! K6 @3 t3 E: {" ~* X* a$ {& l9 [! m
- (tempmod rot 50 nil)
' J/ y5 v2 ?. n/ y8 M - (entmod elist)) l9 I- v* T0 r x9 X4 }
- )* s) j8 `- ]- q! k" d
- + m' `1 M! P5 C% e
- ;; Set MText text style
- r" \2 G* B2 W3 A) l - (defun MText_style (index / style-list)+ W" Q0 _' _5 P
- (setq style-idx (atoi index)): W2 |- r, S: d: G; ^
- (setq tstyle (nth style-idx slist))8 i( ~* v5 r3 f) b* n
- (setq style-idx (itoa style-idx))" w8 b# z" n/ G
- (set_tile "style" style-idx)
0 f: M0 T7 }1 a - (setq style-list (tblsearch "style" tstyle))
8 Y3 r a! r7 d+ {$ x. p, o$ o! R - (setq shght (cdr (assoc 40 style-list)))
5 c( r. `5 T0 s8 \( e! p j - (if (/= shght 0)5 F8 f9 q9 r y3 m z" V
- (progn/ c* u$ N8 t4 [' k3 s8 i' k
- (setq hght shght)) R8 o* q8 L; e! j
- (set_tile "hght" (ai_rtos hght))! W4 m: T) h, Y
- )
( o5 q- C- k& n$ y - )4 i" b. {' A3 u6 {9 W( H8 [% `7 ~
- )
& Z% X5 ?0 `7 N7 g
9 F n1 ]# m' C5 Z$ J- Q- ;; Run DDEDIT on given entity, working around possible re-entrancy: q! G& Q+ J/ V# Z0 C8 Z
- ;; problems with MTEXTED( X" O( i7 d) M7 |6 y
- (defun safe_ddedit (ename / orgMTextEd work)% N4 |1 E/ }* e) o
- (setq orgMTextEd (getvar "MTEXTED"))
, W0 R' C* F4 j( I - (setq work orgMTextEd)
8 o' h. l; g, n7 w& y, i& ?* M" v - (if (= ":" (substr work 1 1))
& k9 k2 a6 ]& q# c. I- d - (progn) ?8 Y2 q9 p3 U1 {
- (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))' n0 `, Y! R# l! F. W. Z/ }; _
- (setq work (substr work 2))
. C) X" k# M9 r - )- O- a1 _* c3 S& W6 L8 Z
- (if (= "#" (substr work 1 1))
# L8 U% I; T" d# {6 b5 ]4 i0 D- \; n: G - (setq work (substr work 2))0 [; @% u$ p' q/ M# i
- )3 I3 c4 Q) C7 s8 x& R
- (setvar "MTEXTED" work)
, [7 c1 e# V3 m% i( C$ N+ y - )
8 q; m# _3 C- V- A. I/ [" l: h; E - )% m( A# V" ^8 f. z- b6 r1 ]# h0 |
- (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...
. U, W1 Y. z6 ?$ s) P' [ - (command "_DDEDIT" ename "")( X$ { s9 N, G5 k8 K' h$ ?) L6 c
- (setvar "MTEXTED" orgMTextEd)
! s8 i* j/ P$ S. a - )
+ D+ }7 m% j& _( v3 E g7 I - ! [% [ [5 ~0 V/ h) P
- ;; Verify MText object width- q. k8 P) H0 J% [8 U7 T. y6 b) q
- (defun ver_MtextWidth (value)
% L5 j1 @- f6 Z ^3 `; b1 G) U - (setq value (distof value))
/ S' l2 \- w9 a" s1 b+ ^ - (set_tile "MTextWidth" (ai_rtos value))
6 W( O: i. J2 l. U% T! `9 Q4 ? - (set_tile "error" "")
% F2 b0 e9 ^7 W3 c - (if (< value 0.0)/ u5 O8 v; J8 p" h
- (set_tile "error" "Value must be zero or positive.")
9 x* b2 H* i$ [* R! d# s - (setq wid value)
@. b( l" ]: l* Y6 X& I2 f - )& |/ |- [& A+ q1 I: e1 q# Z
- )4 g( Q f( r$ S( D D% \9 {5 a; Z) H3 ^; G
- & q& i, ^1 }9 h4 [! G2 c4 b
- (defun ddmtext ( / gc3)
6 }8 ~1 c. t. j$ O& b - ;; Get dialog
5 Z4 U$ ?7 U; G1 O0 U3 K }9 F - (if (not (new_dialog "ddmtext" dcl_id)) (exit))2 b2 y2 f5 ?! p5 |- p i; r- ?: g
- ; _/ z4 M9 \0 P& Z" R( n# P
- ;; Load list boxes
* W1 B4 b3 s. [0 w) R+ g, t - (start_list "MTextJustify")
/ a2 e( l2 A" I6 r: p& K s& J - (mapcar 'add_list '(
8 ~! o4 t& }* Z. d& g6 X) r - "Top Left"9 n. v! l( p' u* D
- "Top Center"6 F* }' I) x3 J$ d& g4 _
- "Top Right"4 N& u: Q2 d x7 |
- "Middle Left"0 X0 u- i8 l: u% r. t$ U7 i
- "Middle Center"& o+ O4 u: R- h& W6 F/ P8 V* A
- "Middle Right"" e3 N2 a3 Z& y* j
- "Bottom Left"4 ~# i' a% s; U
- "Bottom Center"9 K( }. J, R; u. z* a" N
- "Bottom Right"7 H" q9 u2 `6 o6 d& _8 K
- )2 W/ B0 f( B3 v/ N
- )
' e* p. t: P4 @" v: W+ S* a - (end_list)' g8 Z2 h9 D8 u4 [! w! g# Q
# `% y m" K$ S& X% @- (start_list "MTextDirection")
& }$ C$ u9 g/ Y) @ - (mapcar 'add_list '(6 {- k$ \( \. O& s* u \9 @) T
- "Horizontal"- c u9 A' }) g3 L
- "Vertical"
4 ]5 K( b V4 t - "By Style"* x1 h/ E1 V/ c- C+ S0 K
- )7 b+ U" L6 @! J8 }
- )3 I& \1 v: S6 B( T, J. c9 L
- (end_list)
1 p6 h# B# f { - / A7 K) c$ @' G( ~3 g/ }$ l9 [
- ;; Set initial tile values
4 A7 N. q( X+ v9 V" m+ D - (set_tile_props)9 Z( J ], _ n* E& f0 c" w$ \( y
- (set_tile_handle)" e2 H+ \/ i8 e, W s+ Z
- (set_tile_pt1 0)
- j7 n+ d2 S# u) p) R& R - (set_tile_style)
. o/ g6 m( [$ T0 }% o6 {5 B) Y - (setq just-idx (cdr (assoc 71 elist)))! \ G4 P1 i. s' q1 R* q6 \2 u
- (set_tile "MTextJustify" (itoa (1- just-idx)))$ r2 ? W+ W8 ?# q# T
- (setq dir-idx (cdr (assoc 72 elist)))' k O9 f' D# j. B) J7 N. O [) c5 B8 q
- (cond
' r& i g7 M8 Z - ((= dir-idx 1) (setq dir-idx 0))
* G2 X; J; v) S - ((= dir-idx 2) (setq dir-idx 0))
/ ~$ e: }8 }9 z' z$ J - ((= dir-idx 3) (setq dir-idx 1))$ A+ U+ w& I9 Y* [ u [
- ((= dir-idx 4) (setq dir-idx 1))
( Q3 ^( D& u" ^; X' j0 w - ((= dir-idx 5) (setq dir-idx 2))% b+ J( u- U/ c0 `, W
- (T (setq dir-idx 0))% W5 v; B9 ]( s
- )! c/ a+ A, d' w# h7 k4 a
- (set_tile "MTextDirection" (itoa dir-idx))2 Y# l; b0 s( Z H/ y: N
- (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))! d3 F) b. L( h
- (set_tile_hght)& N0 w$ f: a! W4 Z+ t8 F
- (set_tile_rot)
% Z" L0 i. j0 A- F. m
0 B+ d* V( n$ k/ X! R3 e. b- ;; Set edit box, disable if too long8 a6 f; V8 q/ y; e' p5 l
- (setq gc3 (cdr (assoc 3 elist))# E* x- \$ _: R. t+ }
- text (cdr (assoc 1 elist)))
: ~& S8 V0 Z9 B1 q- h - (if gc33 A6 y2 r. c$ r% g/ H2 T! A) @ K
- (progn ;; Text is over 250 chars, disable edit tile# s& {! f& j: ~5 D
- (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))$ |, g0 ]6 x* V, w4 p
- (mode_tile "t_string" 1)
6 E' Z' C- \; A - )
8 s0 Q# }/ s, d7 B - (if (> (strlen text) 80)0 z# Z" Y' E4 v' ^! X
- (progn ;; Still too big, m& p; a3 T1 R, x
- (set_tile "t_string" (strcat (substr text 1 25) " ..."))9 ^9 d d* O$ r, c3 R5 ?
- (mode_tile "t_string" 1)
U2 D b4 _6 q# Y4 K - ). ^/ N# r: d+ [ x- P6 q
- (set_tile "t_string" text)$ B2 J* w! R: Z" ~
- )
: n9 F0 D; B5 y3 Z7 v& R) i2 |' ?& K - )7 m, j. p! b# d) R+ z9 _- r( _
- 9 C6 p! @6 b$ I. N/ J0 f
- ;; Define action for tiles( u3 \7 c' V7 z# f9 w7 P- F$ O8 G, h. G
- (set_action_tiles)
6 {3 u* G0 C# T* U - (action_tile "style" "(MText_style $value)")
3 r, d& o' B4 \$ S6 J. r; S/ S* B - (action_tile "MTextWidth" "(ver_MtextWidth $value)")2 v# H/ g. n7 C; u
- (action_tile "MTextEdit" "(done_dialog 4)")
. G9 A, b$ K2 W3 j. K - (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")- I0 b" w! E( f' T
- (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")
, b7 P' x3 M) ]1 ?) h) P0 c
2 U; x7 s; @5 ]+ M; Q% {7 h* [1 Y- ;; Set initial focus to text edit box.+ e3 ~0 J6 X. _/ {# K1 _# y5 v
- (mode_tile "t_string" 2)9 [, o4 q8 Y: c* y
- u% a7 I. U# z& O# l1 T; }- ;; Run the dialog1 N) }8 I5 j; E/ T, e0 `
- (setq dialog-state (start_dialog))
% ` A. \* @; u6 I - (cond. g5 t4 Z- G) ?) K5 W
- ;; Cancelled - restore saved data2 g& R) _ u4 K. P2 X/ n& K9 t
- ((= dialog-state 0) (reset))+ b& w& z% f1 A% r3 T8 o0 T
- ;; OK - save new data l) z1 ]3 Z8 G
- ((= dialog-state 1) (modify_mtext))
/ s: v, D0 X, @6 l; H8 V1 L0 u - ;; Pick new insertion point6 I) Z& ^9 W* s4 _% n
- ((= dialog-state 3)
' W* C1 {# l9 w% x1 c - (modify_mtext): p* H1 l5 A2 j. |& ?7 j
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))( U6 E/ M9 f1 `! l* ^) n R
- (ver_pt1 0)
T2 G X. I' z/ s& ^6 y( z8 S+ O8 s" B1 c - (ddmtext)
# G; z8 C3 v: |9 B - )
& Q: _7 g$ g) m" D+ L - ;; Run full editor
1 i% H7 l6 ~% i9 Q2 l. j2 m6 h - ((= dialog-state 4)9 [- H4 }) z1 V& v* D
- (modify_mtext)
5 K; R u$ w, K6 C7 V! Z - (safe_ddedit ename)% v" L" A. |: k$ k5 D/ r
- (setq elist (entget ename))
/ P9 Y* |! o. m8 _ - (ddmtext)
( U/ p$ c( Y. \! H+ \ - )
; @( B1 ?* M+ u | - (T nil)
+ z* ?8 U/ Y! N- h' r: ] - )
, r @4 U$ T- ]" p* Q( P0 J2 @% v - )! E. u: Z" Y6 ]; S* g) E4 b9 {
* }4 H- P9 [8 J1 W, o- ;;
/ d r) H1 E, O( Z - ;; Modify VIEWPORT9 n3 d& r" I: {0 O. G- Z/ r/ r
- ;;& U! _1 n/ Z( W
- 3 ^* A# d* M# Z
- (defun ddvport ()6 }; o5 o: i3 `0 P+ O% b+ S
- (if (not (new_dialog "ddvport" dcl_id)) (exit))
; p3 p# T8 W* y* ]3 c - (set_tile_props)
2 k5 r( }/ W; C! J - (set_tile_handle)
+ a) E. }% |" c$ ]. q - (setq vpt (cdr (assoc 10 elist)))( Y; r# X9 G: T" F; c
- (set_tile "xtext" (rtos (setq x1 (car vpt))))
. B0 u5 r2 j2 [% h& q- Y/ r - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))/ A' ^: b( D6 n; c7 t1 k$ s: \2 k
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))7 `6 @. H7 a* k* c" w
- (setq wid (cdr (assoc 40 elist)))6 \% y4 z7 ] A( x9 ? i
- (set_tile "wid" (rtos wid))
% |, o( C) [6 Q& j( f - (setq hght (cdr (assoc 41 elist)))
1 q& e# h, k& L W2 [ - (set_tile "hght" (rtos hght))
+ p- A8 }$ m1 X( ~8 y - (setq vpid (cdr (assoc 69 elist)))! u6 k; I0 s1 j/ L: ]9 i
- (set_tile "vpid" (itoa vpid))
3 c) R, x1 I( y' \4 N - (setq on-off (cdr (assoc 68 elist)))
6 l Y( _# q1 A9 b7 A$ m - (cond
8 T5 b/ h3 r- w2 o' D0 t - ((= on-off 0) (set_tile "on-off" "OFF"))
M4 p- j3 V' D4 j - ((> on-off 0) (set_tile "on-off" "ON and Active"))& q5 {0 X6 c# B8 B
- (T (set_tile "on-off" "ON and Inactive"))
& \0 a. u. d6 e - )
4 [7 Q# B. q7 X5 ], w - 1 K# `1 b4 N9 V4 L7 K
- ;; Define action for tiles
6 p: U* k4 u/ g; `! a1 R. W - (set_action_tiles); Z9 ~7 F4 W% u% ]
# X# d! U3 L+ f- (setq dialog-state (start_dialog))0 ~: H: x* r, s; F0 [: H! T1 R
- (if (= dialog-state 0)& |- }# u x; |
- (reset)9 M: R- H: @1 U$ v, J* H8 T. K+ ~ f
- )
; y& s% x- ]# m N- L - (if (= dialog-state 1)4 f! [) p0 a) Z& ~% u8 b- P1 f- \( s
- (progn# Y3 c" l. A% S$ y1 Z
- (if (= ecolor 0) (setq ecolor "BYBLOCK"))
$ x: V3 o" c* V& a; z" X - (if (= ecolor 256) (setq ecolor "BYLAYER"))7 ^* N6 T! a3 s, D& Y y8 H
- (command "_.chprop" ename ""
; c5 r# F, k. _/ m' ~ - "_la" elayer# Q2 a9 i3 F X. C) X3 |) d) M9 ^
- "_c" ecolor "" f3 J' _. w$ n1 I% j
- ): J9 j9 o! Z9 b; ^9 y- [2 [
- )! n7 q! Y/ j9 L8 f( i2 p
- )" a9 f8 T' \; ~5 `. }3 K7 _
- )
2 z5 T+ `9 D( [( C; q7 Y1 s6 y - ;;3 Z0 {6 |2 _! y# K
- ;; Modify POLYLINE; @* v: p U% T
- ;;/ C- `% l7 f8 A: m4 D
- (defun modify_polyline ()# _! \5 }+ b0 t" f0 R: |
- (modify_properties)* j( l7 ^: H6 D/ X
- (if (= ltgen "1")
3 }5 z8 q' C( D1 Z8 ~% U - (if (/= (logand bit70 128) 128)
# A0 `: l8 m5 S! P7 `+ @( q - (setq bit70 (+ bit70 128))( F, R1 i7 c% X a* H
- )
( x& a: i, \" \$ \' _) Z- N" J- _ - )
5 v; F$ ?% y8 F2 o+ B0 M - (if (= ltgen "0")
% i U7 E$ y: j/ h; E! r - (if (= (logand bit70 128) 128)
$ S# P% Z5 o" A R; m8 D- M - (setq bit70 (- bit70 128))
& l/ }+ C0 u) K6 M+ d/ g6 m - )
. [" D5 N# ]0 l0 c - )% P; c- ]2 d# q S
- (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))
2 f2 O' e1 ^! f: u, j - (entmod elist)# }3 Z! t/ I& |3 w4 W$ b2 l
- ;; Added to take care of updating Vertex information for color
% u i7 R7 D, d& `0 p! n5 j - ;; and linetype., H: [7 [" F5 V4 d7 O. q. ?+ [
- (setq save-ename ename save-elist elist)+ R$ P( A. L6 J- ], E- v4 a4 ^
- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")& q p/ n) H* ?
- (progn- O, n2 ]4 n3 L9 i0 [, b5 k4 M
- (emod ecolor 62)( f: v' `8 h9 w( M# t0 Q
- (emod eltype 6)7 X# W/ M# e9 n2 u1 R
- (emod eltscale 48)
3 N1 K. ^' `2 e$ k( e - (entmod elist): [9 C8 d& w' [# ?2 ~; E
- )
6 H8 L9 P' p, `. |2 z' R - (progn
% Z. e& \1 o. N* a, E | - (setq ename (entnext save-ename))
. U* W# @5 b7 }: b. U- | - (setq elist (entget ename)) z) t: w" k+ j* O7 S' u
- ; D6 A9 J" ?. P; l0 Q! j
- (while (not (= (cdr (assoc 0 elist)) "SEQEND"))& ?8 c" ~$ h: ^* l
- (emod ecolor 62)6 R3 C, Y S+ _; \) ?3 h$ f7 i
- (emod eltype 6)
2 h, S v) r* ] - (emod eltscale 48)5 G) n" v: _% e1 T4 r$ b9 Y
- (entmod elist)6 F7 |0 h. u7 V/ l
- (setq ename (entnext ename))) y5 d" Q2 k5 T; X8 Z
- (setq elist (entget ename))
6 n z8 N6 \+ ]/ O" o - ): F% G9 j- z [8 F
- )
4 h" `9 r! a: g; W - )
1 x0 a" i- k- A. P - ;; Update the SEQEND9 B% m# \2 [+ K q! ^5 x1 O5 u
- (if (= (cdr (assoc 0 elist)) "SEQEND")3 J( T" [ w+ O. V" F
- (progn
* A: k, E$ M# D0 y - (emod ecolor 62)
@+ `# |9 u" R3 [" D - (emod eltype 6)
( s3 G/ r. I3 M% E- D - (emod eltscale 48)5 @6 J6 k B8 @' c0 N. l/ f
- (entmod elist)
; j! G2 P: J3 M! N2 X" x+ f - )
, V( j) @3 \8 S( G( h - )
6 P5 q* @1 g% E - ;; Go back to header.
, z/ c3 A# C& i( V! l' W s# Z - (setq ename save-ename elist save-elist)$ J: c% u: I& g2 a, }1 o A: `
6 G) \2 y/ o& R+ v8 }! H3 h- (entupd ename)
# X/ Y* i( P1 O& T9 ]. s( Q" [$ l - )
: F) W, u X( N W7 X - & D, s! d8 o( B% c' G* U U
- ;; Increment vertex. Set tile values to next vertex
! `/ N# F8 _, x, V8 x8 J - ;;+ P/ V8 c7 b( ~$ K7 c; R/ Z5 {- N
- (defun next_vertex ()6 {$ z& ~7 P+ y% Y$ ]
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
7 H7 z4 [4 K' h - (progn
, c& M" ^# ^% s4 v8 P - ;; If the counter reaches the number of vertices,
: J1 I3 e0 K% j# m/ K - ;; roll it over to zero again.- k4 C% L8 z2 Y; e/ t
- (if (= ctr (cdr (assoc 90 vlist)))$ p f: q3 }" i
- (setq ctr 0)
% C' h8 `( L$ s; I2 S - )1 w# j! y- O5 ]0 v( ~* Q8 O
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))# r/ j% Z# b( @# P* }- S
- (set_tile_vpt pointype)
; J& ?2 K6 c3 X) ~ - ): r1 y4 ~$ C& P2 R$ L
- (progn3 r9 b1 _8 X3 R; |1 \
- (setq vname (entnext vname))
9 M) q% x f i; g. z2 j - (setq vlist (entget vname))
( | Q8 y! j: Y4 } - (if (= (cdr (assoc 0 vlist)) "VERTEX")
Y" [0 S* ]7 Y$ ~) ^; v - (progn
1 T3 }8 V% L9 L - (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))# c2 n" {) _* ~, S. `8 p {" Z0 b
- (set_tile_vpt pointype)
0 s! {1 ~: _3 S" J6 a/ L. V0 q) X - )
7 l; [) [( d/ R: a7 V$ a5 d - (progn
" ?+ G- N1 ]* s- a! j4 z" C, l |& y - (setq vname (entnext ename))
1 f1 {) i; O# h+ K* N - (setq vlist (entget vname))
7 S3 I* l `) _# p- D- O8 K: { - (set_tile_vpt pointype)8 t5 h& _' f S! w; c) p( a2 N {
- (set_tile "ctr" (itoa (setq ctr 1)))' G# m* {5 c: I2 y
- )# X) G. g" ]$ a0 J
- )! E/ T0 S, f3 v4 M# |1 [% F
- )$ d1 y" u" b2 I3 O- G5 q, a
- )
' R* R4 Q M! K% z H - )
" K% C0 j4 {8 _/ ]$ n% ~! X
c, \+ B% k3 r/ |, i7 j- (defun ddpline (/ oldecho)
; ]; W0 a4 G3 Y! u" x& W L - (if (not (new_dialog "ddpline" dcl_id)) (exit))
, O) ^. ?/ `: D* p( m - (set_tile_props)
8 Z' f$ }4 Z1 x3 j d" t - (set_tile_handle)
! F1 {# A K: V1 \ - (setq bit70 (cdr (assoc 70 elist)))
% H5 A1 g: r: V* l$ M3 ` - (setq bit75 (cdr (assoc 75 elist)))
0 M, r3 I6 o( r. R" ? - (cond; {. j) E0 h) Y7 q0 B
- ((= (logand bit70 8) 8) ; 3DPOLY: \$ ?$ O$ m5 O' U0 z* m0 m
- (set_tile "ptype" (setq pltype "3D polyline"))
# x' X: ^! b! [4 Q3 \7 g! v3 Z ` - (setq pointype 0) ; WCS or ECS point values
' Z7 u9 Z5 J# d& A - (mode_tile "fit" 1)6 k0 L- i! h( t. p7 l
- (mode_tile "mesh" 1)
4 f* D# R" e! j7 X- ? - (mode_tile "bezier" 1)8 U& G- u& G9 W( V( S C2 S' c4 ~
- (mode_tile "ltgen" 1); _% \0 r, [8 k! T7 ^3 z) f
- (set_tile "none" "1")
) B/ a, L$ r) o - (set_tile_closed)
* `6 B* E0 Y+ W+ w1 C. R - (set_tile_fitsmooth)
- m1 `2 a7 a, y* f; K; t, |) o - )
7 V% m( z0 x* D+ t0 g0 T - ((= (logand bit70 16) 16) ; 3DMESH( Z8 R( _6 m6 n9 v, I4 @
- (set_tile "ptype" (setq pltype "3D mesh"))2 ]% J7 g+ b0 W( G+ m* |+ k
- (setq pointype 0)- Y! S4 w5 }& @ ]
- (mode_tile "pline" 1)
, J+ b7 f9 h: I' M2 U - (mode_tile "fit" 1)
. i9 ~) L$ D3 I! G - (mode_tile "ltgen" 1)8 x$ N: Y) ^( m; d$ b
- (setq m (1- (cdr (assoc 71 elist))))
# t6 `* T# K! c. @! I - (setq n (1-(cdr (assoc 72 elist))))
/ h0 ~ a9 G, b, ? - (setq u (1- (cdr (assoc 73 elist))))
# h" J) M- x6 V, J3 _ - (if (< u 0) (setq u 0))! I4 x) M! F0 ] v, D$ a8 D/ N
- (setq v (1- (cdr (assoc 74 elist))))
2 Q1 {+ u5 n8 h% G/ u - (if (< v 0) (setq v 0))
! d& _; o( H7 i( V4 L5 ? - (set_tile "m" (itoa m))
9 {: a+ ~ l$ Z# n - (set_tile "n" (itoa n))
; t q: F/ q- H! }6 q1 L - (set_tile "u" (itoa u))' d- n* p+ ~, c% {) D i
- (set_tile "v" (itoa v))! h6 a; m) H6 u6 l0 a: U! A
- (set_tile_closed)# n+ m; ^9 @# u
- (set_tile_fitsmooth)5 P8 o2 r* b. H
- )
4 G" R$ O! j+ E - ((= (logand bit70 64) 64) ; POLYFACE MESH
$ U4 `4 x5 I( R2 A3 G( q - (set_tile "ptype" (setq pltype "Polyface mesh"))
+ n3 ^0 {" q3 J7 X - (setq pointype 0) a9 T ~/ H$ _# B; l1 G2 a% M
- (mode_tile "f-s" 1)' Z8 y, l* C" P+ c1 H! R1 w
- (mode_tile "mesh" 1)
' ~, D5 X' i! N5 q% L - (mode_tile "pline" 1)
1 G ? H0 q5 r2 a' ?+ o8 t - )
5 `# w" w- d) l( w. Q. \7 E) z1 z) j - (T ; 2D POLYLINE! Y8 V+ b7 q4 L6 H6 i
- (set_tile "ptype" (setq pltype "2D polyline"))7 y, N0 P8 Y* [/ t
- (setq pointype 1)
' j$ S0 F9 ^. D4 n9 H, W+ r1 r. }+ { - (mode_tile "bezier" 1)) {# b/ n: x0 L4 T
- (mode_tile "mesh" 1)0 p2 S5 L' x6 a) `& O# d
- (if (= (logand bit70 128) 128)
3 D0 K8 N3 R ~" V - (set_tile "ltgen" (setq ltgen "1"))
* Y' W' v3 g: n6 G# l% y - )
' {# v T3 G$ u) d; u0 U - (set_tile_closed)# S8 [0 `+ O0 G; [+ H7 G( \6 E
- (set_tile_fitsmooth)- ]- I9 ~: V. l: Q n
- )! M# W& i5 D2 `6 f: a3 w8 w
- )/ w+ w; v3 |0 M( Y2 E# v% `
# E( Q$ w2 O7 j8 H- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")) Q" E+ _9 N8 G* V; t F
- (progn
6 @7 v! m0 w% N: a2 L7 z! B - (if (not next) (setq vname ename))
, c }* Z% m& e4 g0 z- U& x - (setq next T), O# a* B+ }6 a7 e6 \8 k
- (set_tile "ctr" (itoa (setq ctr 1)))
) F' o/ i' d2 R& w7 i) ^ - (setq vlist (entget ename))! b' `4 d7 p4 T; N9 q y5 b; W
- )
" N% G# b3 k8 g- f3 D6 H1 y - (progn& C2 z1 A0 _8 ] N8 U
- (if (not next) (setq vname (entnext ename)))
9 b( q7 F5 s4 N1 S4 N( } - (setq next T)* a/ O4 P4 n" ~% u1 n$ A2 @$ j0 ?
- (set_tile "ctr" (itoa (setq ctr 1)))! i3 r( E3 h Y0 i
- (setq vlist (entget vname))
6 s J5 T5 o1 H# {7 g6 R* @* i, |, Y7 O - )
% r/ s( e+ s# Y( S( _$ ?& U - )1 J4 Q- z( ^0 a) u7 }; t4 C
- (set_tile_vpt pointype)
9 c9 e" w2 K4 f$ ` - ;; Define action for tiles* C* V2 }3 r; J. M( u7 }9 u4 U1 g
- (set_action_tiles)
, l! V/ ` h* ~7 I n2 O - (setq dialog-state (start_dialog))
7 Z( x1 ], S" r* C# W' ?; w
! M/ W# T" _* U- (if (= dialog-state 0)
, w6 I {( b, w' G# c - (reset)( X! u6 r I' d
- )2 F/ z0 j8 r; I! P4 y2 M2 ~ f
- (if (= dialog-state 1)7 j W6 E9 J4 ?4 D
- (progn
5 {6 ~0 N' _4 c/ u+ b - (modify_polyline)
; F) C6 A$ T1 g* b/ @ - (if (or (= pltype "2D polyline")* u( t" Q& c" s/ K* }" @6 p
- (= pltype "3D polyline")) k( I9 T2 e/ l" q
- )
, U1 d& C$ e' ~/ | - (progn
" L' o* _, ~/ {% l - (command "_.pedit" ename)/ n+ l8 h/ P5 D |7 h/ d
- (if (= spltype 0) (command "_d"))
' o# e& p" ?! z4 U1 k( f - (if (= spltype 1) (command "_f")), z3 i: a% E' ]* ~3 l# d& P
- (if (or (= spltype 5)" l: D9 o4 {0 w' `, B8 c" Z
- (= spltype 6)
! Z0 ?1 [1 S( U, T1 U; \9 ~ - )
* Q5 |- `1 T! T2 I - (progn H( M- @- ?; @8 S
- (setvar "splinetype" spltype)0 |, T+ B. f3 t, ]: \
- (command "_s")$ f5 a/ z/ u3 Y' C
- ) t2 r" m4 N6 _' ~* ?' f1 `
- )+ V# d) Q+ S4 l) s8 C. T
- (if (= closed "0")
- o5 ]' d: X7 P6 o+ o - (command "_o")0 z3 J5 _. w5 c! ~8 f
- (command "_c")
" T+ W3 L- R9 s2 b* Z - )6 X- P4 ]& T N6 G
- (command "")
3 A. f/ r" g6 t5 [9 N M
* G0 W g( {2 X9 R/ b* Q9 k" ~- (if (= spltype 0)& g2 \; t d3 e" [6 e
- (progn
6 L3 [* P6 C7 m( W: L - (setq oldecho (getvar "cmdecho"))( T! T! U8 {+ p% l/ |
- (command "_cmdecho" 0)9 Q( b# f5 H6 F& o* _% ] C
- (command "_convertpoly" "_light" ename "")- ]: [9 I- _9 f6 M Y5 E. O0 K
- (command "_cmdecho" oldecho)( B) r0 D" [* ^4 g2 Q' a) c
- )' \- m, \4 v7 Z
- )2 E! E; p/ O, _( _! l' t# |9 S
- )
6 C5 i7 G% G' O- a- r0 _ - ), j. q% N0 G* B% D
- (if (= pltype "3D mesh")
) Y. B- } K0 n& W8 Y - (progn3 [! d7 F9 `# h6 o' a0 o
- (command "_.pedit" ename)
" S! q2 j2 ~. b9 H! l - (if (= spltype 0) (command "_d"))
6 h2 f' [% _) S6 @: S! { - (if (or (= spltype 5)
" M/ |2 C( e1 _ - (= spltype 6)
. B3 G1 X0 z! }1 L- O7 J - (= spltype 8)
/ p+ ]! t$ s& B$ f. s; f! S! U7 \ - )
! P; }, s7 h8 K' l - (progn
( g. S0 P' Z. `5 Q$ N, N& G0 i - (setvar "surftype" spltype)
+ L: |3 p, m' }" O" P! _( K( b - (setvar "surfu" u)
% I! n7 D! n3 E) l* m; a2 s - (setvar "surfv" v)
4 k' H6 r$ Q) [3 r9 s - (command "_s")* @& q- p; z1 }- m& g! k3 N2 Q
- ); y1 v! \8 h% E- g! c2 X
- )
1 z, W, b6 S5 E - (if (/= closedm old-closedm)
# M( }' _, `' `9 w! T - (command "_m")
- g* e2 c+ f* M0 W - )
- k' T" r: J- J- h. @- b - (if (/= closedn old-closedn)
& h& d$ [( r! ]- H5 V+ p2 C - (command "_n")
0 D6 H* f, [% Y3 l7 W' M - )- r- b" r, _% N4 ]% m% o. O3 D
- (command "")/ h* L# |& ~/ X: \ q
- )7 X3 H8 R- x! P0 X
- )
: l6 \2 i: p5 V5 J - ); Q. f6 E% P" H: \( L8 ^, S
- )- n8 J1 |4 h8 Q" \1 y
- )' g% e5 E L3 c: z
- ;;
$ c( K; c1 K, T9 b3 O# b - ;; All the spline data is contained in a single elist. We must do some
. G. _# M' ~* h4 k - ;; tricky list processing to loop through the elist in order to display
- m( m b7 c, u$ G: T0 \ - ;; all of the control points.7 f8 ~( Q5 J" q% d, Q
- ;;6 z0 b6 q' d$ v# v
- ;; The structure of the elist is different for rational and non-rational1 d4 V0 t3 U. O+ O1 v# R* ]4 E; ~
- ;; splines. Therefore, we check the rational spline flag.
$ I E* Y1 ~) Z" ]: V6 X - ;;7 I$ j5 i0 e( _4 R' `6 R
- (defun next_cntl_pt ()
4 ]1 ~$ h1 W5 J" Z* H% K - (setq elem-no 0) ;; elem-no = element counter0 f" n( g/ l8 X# f$ D
- (if (= first-10-time 1) ;; If first time, find location of first7 s* U# F; P5 V
- (foreach list_item elist ;; cntl point element in elist* @$ ^# {' b. ]# E
- (progn
& c5 R# l2 z1 f) f* O - (setq elem-no (+ 1 elem-no))) u1 i0 y" ^ J" M! z
- (if (= (car list_item) 10)
' _( M7 s: k9 j) o' p; w% j - (progn
& V) f1 i. F5 z3 `3 ^ - (if (= first-10-time 1)
& @6 j( g3 Q+ a9 f3 [ - (progn
1 a2 H0 J8 h( H6 o/ Y - (setq first-10-rec (- elem-no 1))
6 Y) E6 D' W3 q v8 k' p* | - (setq first-10-time 0)% V& X' c: P1 ~7 U9 N+ e2 d/ y
- (if (= rational_spl_flag 1) ;; if rational7 b3 Y; c. ^' @: Q
- (setq cur-10-rec (+ elem-no 1))
! G* _* p1 T; G8 l. j - (setq cur-10-rec elem-no)0 O2 J7 P4 Q' |/ ^+ w. e) N$ J
- ). { M6 p( [7 X
- )4 s& h1 s7 M+ l/ P c! Y
- )
9 A b; g! V- t- o$ ^6 w u - )& m% E) @0 e$ p4 S9 n
- )- s) @! S5 ^4 w4 U& P7 o& ]
- )! Y) Q( ~- x: g* T
- )0 ~5 n0 H0 h" _# t& s
- )8 j. L. C9 X$ p! c9 T+ ]
- ;; Now we know the location of the first "10" record; it's stored
% m3 K% s; ^! i - ;; in first-10-rec. The first 10 record was already displayed when
# F; L- P+ U1 @ - ;; the dialog first came up so let's display the second one when$ \" R, x5 y7 I+ Q
- ;; the user presses the "next" button (the first time through).6 x! i; R1 U; Y, Y; v) o) x
- ;;
0 W$ K/ z# l9 G( c - (setq temprec (nth cur-10-rec elist))
7 F3 R/ {2 a! } r8 `* V - ;;
, p7 n' M4 e+ d* U* B - (if (= (car temprec) 10) ;; if 10 record
* k7 ^% m, p4 I l$ r' N: H - (progn' _0 }" _: C( u/ s! C
- (if (= rational_spl_flag 1) ;; if rational spline
' }2 y: C) u' b0 S! J) p+ J - (progn
' X/ j3 S* t% ?6 {8 l+ g - (setq tempweight (nth (+ cur-10-rec 1) elist))
% T5 ^- U, i8 X! t/ l$ U - (setq cur-10-rec (+ 2 cur-10-rec))* d- S {+ Q* L+ ]# t: D
- )
$ Z8 i/ M% ?% w1 P: ? - (progn ;; else
6 W7 K6 z- X( w3 }3 L$ v; K. y - (setq cur-10-rec (+ 1 cur-10-rec)): x9 t, @' {% Y& T' E4 E; L
- ), F* a, [3 @' U# D+ p
- )
! r' e( J/ K" p- y7 P, ` - ) ;; end if rational spline: W: E) x B4 o1 m; y) B
- (progn ;; else reset counters( e9 C9 h" }6 v+ r' G# W% B
- (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec. L: O) X8 |2 T5 o0 F$ @5 f# j1 ^: L
- (setq tempweight (nth (+ first-10-rec 1) elist))
" s. d: b9 X( k1 _/ ~0 b* { - (setq cntl-pt-indicator 0)$ K9 r* b5 N: A3 J" |, g4 p3 n4 @. Z
- (if (= rational_spl_flag 1) ;; if rational A2 O% W- c ?1 [% }
- (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec# G2 {4 [* A2 G& L7 g
- (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec
0 _7 T& O0 ]+ Z - )# z- C* x8 o# W8 r( X+ b, s- P6 B
- )1 r$ W# v7 f8 T! \2 _
- ) ;; end if 10 record
! ]8 s* r2 Q" }& M. z - 5 \+ Z5 @& L& P2 T
- ;; Display cntl point, weight and ctr. Increment ctr.
2 q: m9 r. O, Q O0 [# M. H1 C - (setq cntl-pt (cdr temprec))9 D" g: K6 S5 G+ B" O% s5 F
- (set_tile "xtext" (rtos (setq x1 (car cntl-pt)))): T0 }$ j# l+ b, @& p6 I$ A
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))8 ]0 l4 L+ \% Y2 _
- (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))9 {" g6 @( c- `. K4 c n" i) L# i
- (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))7 x$ O9 j4 Q) W0 z3 j4 [
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
; F/ q1 ~3 t8 n5 U: y6 z7 a: z - (if (= rational_spl_flag 1) ;; if rational: `9 I" M5 n7 y& D: p' Q2 T
- (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght ]: ~' B x: | ^
- (mode_tile "weight_text" 1) ;; disable wght
2 L, c0 b. y1 n4 u( q$ I* c1 t5 B - )
/ M+ ?6 v: f, J. A9 v# N4 `7 I9 s - )
/ M; o! |, x/ p- ~' R) l8 a - ;;
8 L5 j# x0 l2 l" r% J8 T - ;; All the spline info is contained in a single elist. We must do some
4 j" y# ~6 [. p# M/ f - ;; tricky list processing to loop through the elist in order to display
4 C; q* ], A1 C: i d" L - ;; all of the user data points.
4 S; `% [7 j% i8 w0 v4 a - ;;* l8 `7 S9 U% H/ D
- (defun next_data_pt ()6 q6 c* n3 k' i2 \1 ~# B
- (setq elem-no 0) ;; elem-no = element counter
0 D: h: _' u7 Z - (if (= first-11-time 1) ;; If first time, find location of first
% _' n9 e) k" Z6 Z, ^ - (foreach list_item elist ;; data point element in elist8 q/ r2 P, X% C1 P
- (progn9 }1 s8 I' I* c s& C" ~! E
- (setq elem-no (+ 1 elem-no))
1 Z( k8 |3 I8 v/ l5 @6 ?/ ^2 B - (if (= (car list_item) 11)
3 {8 b9 e* g. U# K - (progn; D6 }+ \: r9 X9 r
- (if (= first-11-time 1): e+ J! r5 Y9 F' B: E* m
- (progn+ [! X: d- z I* {1 U
- (setq first-11-rec (- elem-no 1))' S4 Q. t N+ L9 W/ g* S4 a
- (setq cur-11-rec elem-no)
Z/ W4 w: t# B e4 P z - (setq first-11-time 0)( n' \6 d N4 p7 e8 m; D
- )
0 |8 e( v" [+ l - )# v% _5 L% e: p- y
- )
6 `7 y; Z6 X; s" \' r - )$ y' m9 ^3 }) w! e) B3 j- y: p
- )0 e" Y+ ~) I3 }* V1 q- T" s
- )6 Q. R7 u6 O3 T0 L/ p3 L
- )
$ F1 r4 i p: @" g, u. ~ - (setq temprec (nth cur-11-rec elist))
1 S& k0 L3 u9 l! C - ;; If it's not a DXF "11" element then we've gone past the last: E- D1 Q5 M0 C H+ z
- ;; "11" element. Go back to first "11" element. Reset counters." a' G' M. P5 Z. }( o5 C9 H8 ?
- (if (= (car temprec) 11)2 ~: u7 K. A3 f9 t2 @
- (setq data-pt (cdr temprec))
0 V2 {2 H6 m/ `9 w, H. Z( o - (progn ;; else4 G9 @8 r' h! l5 z
- (setq data-pt (cdr (nth first-11-rec elist))), x' f# d: Z* u, o+ P$ q
- (setq cur-11-rec first-11-rec)5 O( W1 F6 V ?2 _
- (setq data-pt-indicator 0)/ P& K o/ l0 k$ _$ {" M- P+ y
- )
5 K/ l' B& I" V- H+ C- m - )
, p* n6 B* F, J5 A, _ - ;; Display data point and ctr. Increment counters.' M/ f( A& Z o
- (set_tile "dxtext" (rtos (setq x1 (car data-pt))))6 p X$ [* B' v6 F3 z7 n; b
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
( E! [/ b) ^: V - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))8 V) N" b% Z: x2 {# B: u" F6 {
- (setq data-pt-indicator (+ 1 data-pt-indicator)) V1 g( |: S$ _* G$ D0 V' ^
- (set_tile "data_ctr" (itoa data-pt-indicator))2 \4 E+ T# c3 l3 B& u9 T2 j
- (setq cur-11-rec (+ 1 cur-11-rec))
, A' V' J( p1 F, }" o - )
_9 J1 s1 z: ^1 b7 H - ;;. H' c; t; Z% M$ ^# ~9 \
- ;; Modify SPLINE1 _; a/ D, A( T s( P4 H/ U1 D6 F
- ;;
7 }) E u$ I! `+ h0 l - (defun modify_spline ()
5 { j5 ^( W- G* g$ S) j2 l: z - (modify_prop_geom)" u! x( T3 v- n: g% F
- (entmod elist)! l. m) @4 ]: I; B+ f' r* p0 ^
- )
2 c5 }' a+ N0 {2 [ S4 G6 S! a$ ^ - " Y& j2 p) N# x1 Q r
- (defun ddspline ()6 |- n8 i" A! W5 j3 u
- (if (not (new_dialog "ddspline" dcl_id)) (exit))* ?' Q9 I* J3 e8 I: ?* r8 @% T; N
- (set_tile_props)
% I$ y4 P0 t. F6 `. u5 A - (set_tile_handle)5 c7 j' i0 r# X
- (set_tile_spline_props)
8 r9 ] ^- G; j6 N - ;; Display first control point9 N8 T- u% u' W/ x9 h& k
- (set_tile_cntl_pt)
& n. W& I/ ~* `0 d - ;; Display first data point4 ~4 F( @8 y+ c( G* h0 q
- (set_tile_data_pt)
/ W1 N* J/ O, ^; P. x - 5 Y' N/ k# {7 L: Q0 I0 K& w4 B! K
- ;; Initialize flags to indicate first time through the dialog.
! ]* t) `# ^" x. E- F! t3 f* u - ;; For control points and user data points the "next" buttons
& n- ~5 _% p J: Y - ;; in the dialog call the appropriate functions.
( V0 f+ g- Z6 k# P/ a - (setq first-10-time 1)
6 ^ ~5 ^+ l$ g$ T8 U - (setq first-11-time 1)7 I% L8 L/ z0 v. Z$ b
- ;; initialize control point number counter k) s5 X8 l g+ r( ~( }
- (setq cntl-pt-indicator 1)0 H: x2 n+ x8 p
- (setq data-pt-indicator 1)
! }+ c- l+ h$ N+ A* s p9 ` - (set_tile "cntl_ctr" (itoa cntl-pt-indicator))# q4 @; q: s4 d7 v) }+ T5 y4 j: a
- (set_tile "data_ctr" (itoa data-pt-indicator))' Q! s, }+ U& a [' P* l
- (set_action_tiles)
: K6 X. N/ d" Y5 Y+ {7 b# g* N2 n - (setq dialog-state (start_dialog)); s: |+ R: G- ?4 D
3 D' T) S, o1 F2 W, o- (if (= dialog-state 0)
) }2 Z( [; z$ q/ _ - (reset)8 M4 {' G- M: i' z" `
- )
K8 h5 @5 \* i - (if (= dialog-state 1)5 w. C8 w$ |6 N/ I- Z1 A9 s
- (modify_spline)
2 F) j* t; X8 S; `# @ - )
+ M! N5 h" t. |2 t* p" Z - ). e5 S. ^7 n* f; [
- ' z. e) b) y6 a4 c8 }
- ;;: W! c% [ e, p! Z
- ;; Modify DIMENSION7 o3 c+ t& o S- }
- ;;
1 X& T N1 W# A$ s8 o& x8 [ - (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl
0 S5 E8 N( o( p1 L# X - dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
; R D# y9 N- l7 b# L1 L& @( Z. O - dimtype dimsvcurset)
8 ^- Y1 D$ b2 K - (setq dimtype "DDIMEN": u1 P6 `& A! S) M1 W2 Q3 p# p
- dimsvcurset (ddimen_dimsty_restore)
- s0 t$ Q' R! y9 w$ _$ O2 p - )
2 m' F4 k* L! b3 H6 L; ]* Q - (if (not (new_dialog "ddimen" dcl_id)) (exit))
% {2 [! i: F7 f- }# V - (set_tile_props)
/ l2 s6 }6 T& P9 Q: s) g - (set_dimen_props)
1 q- P/ P, e% P2 z" [ - (setq dimtext (cdr (assoc 1 elist)))
# H2 d8 @' Q# H: N6 i9 o - (set_tile "t_string" (if (= "" dimtext) "<>" dimtext))
0 P3 D& E6 @ N& x* o7 A - (set_tile_handle)) I# r1 G k. e ?& R O0 E& P
- ;; Define action for tiles
9 ~- g( t; H, s$ o3 o - (set_action_tiles)
! z/ e9 M; p) q8 U, ~
7 g: {( g: Z# k1 l2 Z- ;; Set initial focus to text edit box.' J ?. }9 S; B0 e. ^% P
- (mode_tile "t_string" 2)
- u9 Z8 P2 r! l. I2 r
7 }6 M' y/ F8 T1 l8 M- (setq dialog-state (start_dialog))3 p2 O& {3 P/ Q1 ~# o7 ^" a
- (if (= dialog-state 0)
/ } j: \' k ^% h - (if (= ddimmt 1)
5 a. X9 l& g. ]0 B% O0 f0 j8 |, M | - (reset)
' s Q$ X6 |& b! t0 ]% y3 R- h; I - )2 _7 Y5 h- O6 u
- )
# _; p5 g' e+ `' D# @8 V9 r - (if (= dialog-state 1)9 p4 d1 A/ R# G3 a
- (progn4 Z5 P; Z+ `6 t+ Q z* N; T0 w8 Y+ r
- (if (/= dimsty stname)' \! K( B. `3 C T& ], w. _
- (progn' r& N7 L0 B# h. l: G1 P
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case. X; v( L3 ?1 q r' {+ P h
- ; doesn't have it.- Y3 x- H3 U" d+ ]
- (if (null (assoc 3 elist))
- y1 c! ^2 {) l5 q4 x% G0 E) o - (setq elist (append elist (list (cons 3 dimsty))))% {) [# T9 d/ G, \
- ; else just replace it.
# U6 Y- \$ ?5 M% _ - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))9 d5 Q; }6 B; U" O% c: i
- )' r+ U+ m- S3 b7 H+ s$ E
- ; refresh sv_dvlist with new dimstyle.% c9 T& F- C* d9 t1 S6 b( M
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))' v9 Y0 \/ o: C8 ^* w, G
- )/ c1 [" G' D5 Z# E; K
- )
4 D* U. G, v6 n: ]0 \8 |& V% A - (if (not (null dimlist)) ; attempted to change dimvars+ `3 C- Q6 O7 N
- (ddimen_complist sv_dvlist dimlist dimtbl)
& H2 B, e. C. ?. Z6 p) X - )1 f/ ~( }; Z" L+ h' E4 j- W; |1 {
- ; Modify dimension text
+ ]3 p: v% F1 } I& i# b1 r - (if (/= dimtext text)
. {& }$ G% w; R m) d: P( G: T- J, v - (progn
~; }/ c- V; ~- Z9 B+ q - (setq dimtext (if (= text "<>") "" text)) o4 w4 t6 k6 H9 ?0 P
- (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
1 f' S" z5 r' h3 S* c - )
; F# ^) J1 _5 s4 s5 w9 P - )
6 f+ P- v/ }) m9 \& H - (modify_properties)
7 k ^; o4 B" N0 q! I- l; k5 D - (entmod elist)
: V: B4 H t3 g' r; h9 g. N - )
1 n9 V( n; x9 b3 Z - )2 G1 e2 K9 j# y( F( c
- (if (= dialog-state 4); B) e/ i# H1 i: ~) L
- (progn
2 s' `. p" L3 H! g# z' W - (setq ddimmt 1), Z2 n3 T+ ], K& x. ^& H
- (if (/= dimsty stname). ~5 Y c: V5 M4 |7 }
- (progn3 S8 Y' B9 P: z: o2 C
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case& x; N' @% I; D& V/ X$ _
- ; doesn't have it.
; O* U; }; R/ U" M* f a - (if (null (assoc 3 elist))% }6 u x2 r3 \- R/ O
- (setq elist (append elist (list (cons 3 dimsty))))9 ~1 m# R' { r- y/ H/ n
- ; else just replace it.0 d- ?; w% I. l+ r" n
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
8 a4 D$ M( A5 l9 ~2 h/ M - )
( u; A7 a& ?" b% g7 x% S' ?+ L - ; refresh sv_dvlist with new dimstyle.5 L% `/ Y C4 [& l: u. Z. r$ V
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))5 M; \( F3 x% ]% c+ C0 \
- )2 P% v0 K2 a' I$ N- a0 N
- )
( V2 Z/ _% s) _6 w5 x - (if (not (null dimlist)) ; attempted to change dimvars
1 h2 y# D- [$ c - (ddimen_complist sv_dvlist dimlist dimtbl)
; L! G, T9 ^5 i4 L. l( ]/ F - )
% k7 C7 E b6 g4 W% f) c - ; Modify dimension text+ y$ z* j6 W# s& o5 w: b
- (if (/= dimtext text)9 k+ v9 I: ]3 ~! e G
- (progn( k- T) u8 q# ]7 c
- (setq dimtext (if (= text "<>") "" text))
8 R' `. i4 ~5 V. @ - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
/ z# A! d9 o) g5 [ - )
- j0 p/ ^! m6 F( X - )
/ M3 A" t1 M7 u' Q" m' ] - (modify_properties)4 p. y1 G! O, a/ F6 N5 P( L% b
- (entmod elist)4 P) e x5 j- V: j" R) @: ~
- (safe_ddedit ename)
L. S- b. f! ~, e) P. \) t% Y - (setq elist (entget ename))9 O) r5 R7 [( f6 h" W
- (ddimen)
$ k) u& ]# F0 P, a- t - )! B) f+ ^0 B/ ?$ q F: b
- )6 A1 u* O& {4 ]) R3 S$ k7 `' U
- (ddimen_setvars dimsvcurset) ; Prepare to exit
' v m8 ^6 Z: l/ j/ i - )
' s3 _1 y( M& |# S2 D
9 a! z) Y; ]; s1 A3 D- ;;3 s0 L8 F" M" n& J" [
- ;; Modify TOLERANCE q) x- q L' V$ @- `6 K) q S% \/ ^. z
- ;;* p/ N0 F* L5 R3 y5 |/ s
- (defun ddtolerance (/ a stname n dimtbl
7 N2 U- {. l8 r/ f - dimsty dimlist dimovr sv_dvlist stlist dimtype. P! C4 h5 R; q9 S" F6 s T
- dimsvcurset)
" \7 h0 F% n! t& D- ^2 A7 k( v5 Q - (setq dimtype "DDTOLERANCE"6 D* ^+ P5 X4 R6 ^7 j: {+ }5 _
- dimsvcurset (ddimen_dimsty_restore) Z& c* J! N7 i5 j; B) K: T5 `
- )
: t, _+ \# q$ T2 Y0 J7 T$ _0 m - (if (not (new_dialog "ddtolerance" dcl_id)) (exit))
! j# w" L7 N6 M" A* F' [* p" t - (set_tile_props)
1 ? K1 x4 K, b- @% T9 |! d: [ - (set_dimen_props)! s) N' N5 a. `$ t1 j
- (set_tile_handle)
$ P0 ?' V4 \$ U/ o( D' l: |. \ - (set_action_tiles)
$ g: C( }' \6 o: P - (setq dialog-state (start_dialog))
9 ^1 i; W: y$ \) u" d u - (if (= dialog-state 0)
! G7 G5 ?4 }. b- j6 P5 h2 d - (if (= ddimmt 1)0 K1 g0 Y& X" _" B2 G! R a
- (reset)
; o4 `, Z# i* O/ c - )
+ {# L* X1 k# ]/ Q - )! b9 a0 z) E2 M. W" M/ ]6 t
- (if (= dialog-state 1). }7 Y+ x% g: _5 P
- (progn, n' {* U, C2 l; x8 m
- (if (/= dimsty stname)
' a& H( H/ T4 [+ T' c" C W% q$ V - (progn Z" N; F0 s# }+ \) |2 l
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case/ `6 Z& C# e. S! R+ P- g
- ; doesn't have it.9 } f E2 v$ ^- L) U$ I
- (if (null (assoc 3 elist))0 L+ E6 A- a; V
- (setq elist (append elist (list (cons 3 dimsty)))), K0 n' O* s7 F6 j; j
- ; else just replace it.# n& U( I% U; H, s/ {# T7 e
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
6 a! I2 ~1 j' X7 u& _5 H$ _ - )) @; ~# I5 ]: \* x4 e( J. {' g$ N& P
- ; refresh sv_dvlist with new dimstyle.
3 X( N& R* P* ?% Y3 K# H' j) G. @ - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
4 _0 ~7 C2 A4 y3 ^8 b - )
2 ^ ?& v0 h, @" Y, c# t - )
6 C$ U/ o! X% j' z' c J - (if (not (null dimlist)) ; attempted to change dimvars1 X1 A5 g6 o" D2 B; o6 P( S
- (ddimen_complist sv_dvlist dimlist dimtbl)
! U7 U) |5 D( a7 r9 E2 X; A - )
! R5 {$ }' D, d - (modify_prop_geom)
/ a, T6 }& [$ R- Q1 ^' f' w! g - (entmod elist)
) N9 Q0 h9 j- n2 ^* }8 | - )
* I5 E# ~0 S6 N5 [9 M0 ` - ); i$ t" ^0 a& j% A6 B6 s
- (if (= dialog-state 4)
, c0 {% Y+ \; i/ p5 v* G# s - (progn
4 g0 q7 C6 K6 x0 U: y: A9 E2 E! p" B - (setq ddimmt 1)4 h" S+ l, t/ ^& R8 l+ L
- (if (/= dimsty stname)* |2 O9 Q+ X g* ^1 e4 i
- (progn& \& j' Y. P: }# r" |7 G" \
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case6 Y" s# v6 ^% E+ L7 U- P2 o
- ; doesn't have it.
/ S# O- F/ K& x - (if (null (assoc 3 elist))
6 M* _$ b" s7 m/ j9 K/ n9 R' I Y2 z9 C - (setq elist (append elist (list (cons 3 dimsty))))2 Q! _0 n. E& r* F
- ; else just replace it.
$ G3 E, B& ?& o+ H4 r F% C# N4 p8 Q - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))0 ~! g4 v9 B4 X! y1 U
- )! _ b& B. X5 t* N. p( v( v; k: \
- ; refresh sv_dvlist with new dimstyle.# x$ r; m2 q& v* s" w$ w- h1 ~1 }
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
( b7 l4 Z# S6 V - )& x1 q& Y s8 H k( e% R* L) ~
- )
1 q9 ?; v( K2 m7 R1 b9 o3 n - (if (not (null dimlist)) ; attempted to change dimvars) O, a) q9 Q" A G+ y5 F
- (ddimen_complist sv_dvlist dimlist dimtbl)
; [# N! A9 v& P* k0 }% F( Z1 o - )
2 [. r- M: L0 o3 @! Y/ r - (modify_properties)
7 q% ]' R2 j; L: ]) _ - (entmod elist)2 h' g2 D5 _5 w9 s
- (safe_ddedit ename)
( a& b; D8 H5 O, u - (setq elist (entget ename))' d3 ]: E1 H" M' d7 \
- (ddtolerance)
% Q! Y! c; P+ C% [# h - )
' x" H7 ^0 R4 i' r - )
7 @) M* }, b; }& {) H - (ddimen_setvars dimsvcurset) ; Prepare to exit
( y+ V! B- b, p# j' r$ n+ q* W6 ` - )5 x6 |+ G! K& H* P0 Y$ u4 g* M" h
. s6 X1 G I) O p- ~- ;;
, q+ x) y+ t- `/ K - ;; ddimen_dlg - jump to ADS ddim module
; C! o4 ]6 o: H' ? - ;;5 c [7 M5 s$ M: O
- 4 b: r0 x* |, `
- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)2 g& Z7 V9 T! C$ t f* D
5 F9 K) z9 K# }& I2 o- ; Jump to DDIM with overrides if any.
6 w: I# j3 m' |' ]6 D - (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry
6 u7 x* z8 j: |# v- o5 w3 f3 E - ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format8 X0 s$ T9 |, s4 p8 Z i) h
- ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation2 y! Y' P$ @2 A9 f6 P
- )
+ s; p, k1 H& K0 f - ) z$ S1 k9 \% H# z8 i
5 ~; D: g L0 M4 h% ]( x- ;;8 J/ {: V1 F( p& w
- ;; Dimension variables updated are stored as overrides.
& ]5 R! C2 A1 ^ d! q/ i - ;;" {" C4 z# A/ w2 T' N, Y
- " @2 [8 f) m# X7 a; p' B. D; l
- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar
- o n7 O5 t4 m3 x5 y6 { - dv dime commandIssued)
+ }; E# `3 F* |# A4 a% O# e - 1 b! ^9 z& i& G3 K* f# F/ a
- ; Here we skip the following first three items:
( `4 p/ `8 H, a - ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0)6 n) d* `2 [: a( i
- ;
8 L; D3 N. x* E: W, X4 l" |3 U! A - ; The list comparison immediately begins with dimvar.
* e4 m% B, |: I) f. B* n+ S V - ;& | \; }6 D G* _1 Z/ }* H# h" v( N$ e
- ; dimolist - original states of dimvars( ^: I# O& h- f7 K. ?. {. u0 M& [
- ; dimnlist - new dimvar list which is of the resbuf's
' z6 G/ c; [/ x - ; dime - entity name for the dimension- m/ d0 _# v; a( O
- ; odvar - value of dimvar for the dimolist
/ ?6 J0 F8 v* U# g# a - ; ndvar - value of dimvar for the dimnlist
3 P2 h4 p0 m* \ - ( N$ L. E# ], k' ~6 S5 ]
- (setq i 32 y; K# A+ c h4 K/ ]
- dime (cdr (assoc -1 elist))
\3 P1 ? g: J, |. G4 m: I7 Y. ]" Z - )
1 Q5 N1 G1 t0 f3 f8 X - (while (setq odvar (cdr (nth i dimolist)))/ A2 x9 L# |; I
- (progn' S9 E$ E2 P8 p6 e2 q: c- X
- (setq ndvar (cdr (nth i dimnlist)))+ ~3 K/ `. ]2 [2 J% \! T
- (setq dv (nth i dimtbl))
/ R! X2 A: S: ~9 b8 | - (if (eq dv "dimtxsty")6 F" [$ M' B1 o6 {
- (setq odvar (cdr (assoc 2 (entget odvar)))
4 F$ m! b% _$ ?( Q. j: w - ndvar (cdr (assoc 2 (entget ndvar)))* f2 ]4 T9 H6 J, ]! n
- )
7 ?- y7 c% X- |6 [. \. \* M - )3 c* b' ~+ n( A4 {2 ]& K
- ; d0 c8 b1 E% Z
- ;
# j7 g0 [" d& y( l; k - ; In order for DIMOVERRRIDE to operate correctly with string, Y. V$ Z" l0 O! d
- ; based dimvars, we must pass "." versus NULL strings.4 X$ P* h) s8 I2 A
- ; In this case ndvar is the new dimvar value the user wishes) P- z2 i7 q d) ]
- ; to update on selected dimensions.
1 D, \" t Q5 i6 }% b/ e: i - ;
' U: d. g- E) Q - (if (/= ndvar odvar)- l' c2 Y7 d1 S
- (if (= 'STR (type ndvar))2 i1 { x; L+ z' t
- (if (= ndvar "")
6 J! e, ]7 z" [& C; _4 I& L/ t% ~& v( Y - (setq ndvar "."))))
) s& m# s7 `1 D, Y( z
7 C2 o2 `2 `$ D0 ]/ v- (if (/= ndvar odvar)
! ?# n1 t8 S; S2 ]/ C3 c" [ - (progn" c6 C; R2 d0 {+ ^4 _
- (setq dv (strcat "_" dv))7 j, P& u8 H) P6 q8 ~; ]( p
- ;
7 U- w4 H" r; M6 O - ; Start the dimoverride command
) |6 R. h+ O! ~; x: D$ f - ;
% V" D0 {3 j0 O! D% r4 O3 r1 } - (if (not commandIssued); X# W2 I9 \8 ]; @( B8 N
- (progn. w5 X( c$ o! O1 w- q$ } `
- (command "_.dimoverride")5 y' {* v( P) G" A. a
- (setq commandIssued "T")
1 R: K2 |! r2 S4 y/ {, C' \3 b9 w - )7 j7 {# U1 g+ W+ `) x
- ): _8 h! T& }! W2 ?/ G5 r: j
- ;
7 G! U; z0 v; n' P- T - ; Issue dim overrides% w2 }. D% ?& o7 j+ Z C
- ;
' d4 h# C/ u; I& W! P5 a# k- B A& n - (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre")); z6 F; |& x! L* c* l) @
- (or (= ndvar 0) (= ndvar 256))6 S% V1 o3 S# j* \ F8 \7 n
- )
$ P) t* c1 T* _/ U - (progn2 k7 ~: A' u8 e9 U
- (if (= 0 ndvar) (command dv "BYBLOCK"))
- s' z/ ?1 x) K! P5 L - (if (= 256 ndvar) (command dv "BYLAYER"))/ Q/ Y) v I; r; j9 O. b# |0 g$ D
- )7 B5 Q5 S# J8 g) a1 ~7 S6 I9 w
- (command dv ndvar)6 G7 t7 i4 v+ D4 h# p
- )
+ n3 y. e' l( h6 y0 W. E" c! h6 Z" u - )
/ J" a% {) a8 V - )
7 ]3 n( Z% v2 U2 D - (setq i (1+ i))+ r) k: C; X! y/ F; ?# P
- )5 L8 u# r6 R0 ]8 v2 b( o/ I
- )$ \7 H9 E9 }: w" G
- ;4 H! x0 |& G$ Z
- ; Select Entity and terminate command7 r$ Q" V* u; _3 y& X$ U
- ;) B$ ^" F5 w6 Y
- (if commandIssued; \! o9 b7 Q8 |8 y
- (command "" dime "")
$ J5 A- W' L% l9 R& A; w1 Z2 V4 J - )' a. N3 t' c1 F- f( x6 @, d
- )
+ O7 B* ^8 \# { Y+ \* E" ] - : E7 `4 l/ y; C
- ;;
: O: w9 q6 _. d - ;; Get style name currently selected style name.* z4 B6 M. D3 z7 s; V
- ;;
% |. z0 n% X$ G( V - ! b) e6 E4 `& V/ J% U
- (defun ddimen_style (/ dimsty)
/ l$ L3 j7 H* o) e8 O - (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)
1 J1 J* R$ L6 H) j - dimlist (ddimen_getdimvars dimsty)
$ y: p# H( ~8 Z+ c - )
- a$ P1 g2 Z0 D; R - dimsty
9 g2 U1 c& I4 L' ` - )
4 T) B& J' a. \: H: D
f4 f% X2 W* u$ }) ?- ;;
% f) g" @* {3 [. a$ S3 ?, F - ;; Set dimvars- R# p6 v6 D( M7 N0 o4 n( Q8 g
- ;;
9 o9 M" {- G3 b5 e& q! V - (defun ddimen_setvars (dimsvcurset / dv i)) p) K% O+ n' D2 x1 l* h' Z
- (setq dv (cdr (nth 1 dimsvcurset)))
5 }9 d* s0 A( i) ?3 Z G' v - (command "_.dimstyle" "" dv)
+ [# C) U$ L5 y8 Z: {! s - (setq i 3) l/ w# S4 c# o7 C( Y3 N
- (while (setq dv (nth i dimsvcurset))% S# ?9 P3 l9 i9 S
- (progn4 L* Z# \: a" K; H# k
- (setvar (car dv) (cdr dv))3 U+ V5 {: f+ B; C( Y5 N
- (setq i (1+ i))
( f: u1 P5 }* k) n! ? - ). m% Q: z$ F$ @) V) @' G$ c
- )3 K D5 R& [8 s' ~! q1 T
- )% ~' e9 y# R5 @: |! }! R) _
- ;;# `6 g$ g. Y8 I; I
- ;; End-of-dimension
. v9 h4 `) q1 t - ;; ==================: [( n1 ~: \/ ]
$ r$ M# C% B; D4 f/ Y1 H; X- ;;
7 m3 g3 M/ `0 x( ~) } - ;; Sub-dialogues for properties. Common to all object dialogues
* d2 t6 x% }) _ - ;;. h( ? V3 t1 e$ g0 J
- ;; This function pops a dialogue box consisting of a list box,image tile, and! U4 L1 L& N3 l5 ^1 W; _
- ;; edit box to allow the user to select or type a color number. It returns3 D2 | t1 L: M: @: M$ W" f1 M
- ;; the color number selected.6 S; n0 p0 X8 ?* |/ m
- (defun getcolor (/ old-idx colorno cname lay_clr)
7 e! V- E0 L7 r# L2 _; k# x" y - (if (= (get_tile "error") "")
( `9 b9 B; \6 [5 R1 b3 a - (progn
9 s" X M7 r# R @ - ;; Get the color associated with this object's layer, for use
( k& E; M& Y, \8 e6 y - ;; in the color swatch if the user selects color BYLAYER.( j# |0 j5 v# }4 t* ]' G
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))0 q- G4 t F0 i+ s' k. W% L
- (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))
1 D4 c+ [, I0 q8 l+ ?7 B1 j7 g% X - (progn ^; j; ~6 q! P6 J) \
- (setq ecolor temp_color), m. {: a; n5 |: }- k# p# p
- (setcolor)
2 `" Q8 _: d1 {6 x& i8 D - )3 e$ q8 e( t, H8 @4 z
- (setq testcolor temp_color)
6 H/ j; {) M c( X! q+ U' b - )
& _% z: u4 C0 ]- B; a! |* l - )* G0 q9 y. Y5 f+ T. c
- )
- X5 x/ v v, R8 Q; p - ecolor
2 L# u) W8 ~/ r1 C" b+ Y - )) |2 _$ _5 m. W! s( `% U
- ;;
( G0 u0 t' [; t" E' Y0 V5 g - ;; Function to set the color tiles.! _! m a. s1 a2 c/ V" c, h- h
- (defun setcolor()3 r: J& Y7 F1 g" h) j ]& Z8 f
- (cond
: Y9 m% Y: d0 p& Q# o+ t( n. C0 M - ((= 0 ecolor)
" E1 p# b7 T% l* } - (set_tile "t_color" "BYBLOCK")
4 a S6 F& S" o# i, c - (col_tile "show_image" 7 nil) ; show BYBLOCK as white
) I1 O( {' `# L" d [! i7 k( k7 \ - )4 J* l$ ^5 i; \2 L7 B4 J) g
- ((= 1 ecolor)/ }& Q5 c3 L) Z: q! \+ ]
- (set_tile "t_color" "1 red"); X. M% [# K% b, D
- (col_tile "show_image" 1 nil)( H& {6 n( v m; c, q+ Y* {2 G
- )
) y5 L. }$ t9 {0 g3 L& m - ((= 2 ecolor), C3 ^- m9 I& H1 G* P# Z
- (set_tile "t_color" "2 yellow")
) C+ u% H7 ~! q1 ~& Z/ v - (col_tile "show_image" 2 nil)
1 Z4 L% D1 H0 a( R& ]/ _. k - )! D% Z" `( l- m
- ((= 3 ecolor)8 q: V+ P7 r' |
- (set_tile "t_color" "3 green")& n" [) ?5 T) N
- (col_tile "show_image" 3 nil)/ x' ]+ K; n% F8 F
- )+ S1 V" Y2 J$ m! _
- ((= 4 ecolor)7 K+ N2 p. E! ~! w8 a" o" ]
- (set_tile "t_color" "4 cyan")
% Z0 k0 I+ T4 `' v: n - (col_tile "show_image" 4 nil)) j: N9 y2 C" Z+ |7 V5 b
- )
, v6 s1 N% g8 r3 ~6 y. J - ((= 5 ecolor)8 h$ N$ E" q$ W# B5 W
- (set_tile "t_color" "5 blue")' m9 z/ h9 q, Q
- (col_tile "show_image" 5 nil)
% [/ P( T; [7 E/ f - ): W+ _, q$ s( c+ Q( E( }: M
- ((= 6 ecolor)6 j; a1 u; s+ K
- (set_tile "t_color" "6 magenta")
* ^3 K# {3 ?& v: ] - (col_tile "show_image" 6 nil)
$ n T2 j5 l4 H: |1 P# c9 W - )* I) |" b2 }. S( i% G% B
- ((= 7 ecolor)
E% [9 ^. b* d0 u! j$ A0 } - (set_tile "t_color" "7 white")+ a) R$ w" d8 N; R" n \ Y/ ?* _3 P
- (col_tile "show_image" 7 nil), k- \9 W! h7 E7 m( L
- )0 t, P9 E' g4 I- N; r( r& U
- ((= 256 ecolor)9 o! @, [' S% a' a) j
- (set_tile "t_color" "BYLAYER")
9 J* E# ^. R4 r9 G' G - (col_tile "show_image" (bylayer_col) nil)3 M2 |7 r; `' D
- )
R! K8 z0 Q, m8 e5 J! _ - (T
# ~* z8 {8 W4 s* T7 j - (set_tile "t_color" (itoa ecolor))
# d1 ~. X. z. s4 ~* x6 ]/ r - (col_tile "show_image" ecolor nil)
6 K: ]8 Y/ l" V - )! h2 j$ i7 V3 d- [: z* s
- )
; z8 H. E- j$ }% F( b$ ? - )
) K" g5 g+ e8 W - ;;
- l, r8 b1 L# l- m7 ] - ;; This function pops a dialogue box consisting of a list box, image tile, and
8 `0 H& C2 q$ v7 ?. m, C3 N - ;; edit box to allow the user to select or type a linetype. It returns the
4 @; D( I: ]2 ?" Q0 s# q4 @6 y - ;; linetype selected.
9 w3 u3 f8 C; O+ l - ;;" I3 E8 H$ H4 ^; l: ^9 S" ~; s1 O# X
- (defun getltype (/ old-idx ltname)0 P" J. A5 b7 _: M
- (if (not lt-idx)3 P8 q6 [7 t, O* P! g$ G
- (progn
! ?9 U# b% t' I9 E: {" c) ]' Q1 V - (make_lt_lists) ; linetype lists - ltnmlst, mdashlist
Q* Z8 W0 U( B7 B; J6 { - (cond
2 K `3 ^/ U0 c9 z d* `# z, B - ((= eltype "BYLAYER")
/ \. L7 f2 t( n/ E# N - (setq lt-idx (getindex "BYLAYER" ltnmlst)))
1 ?+ N6 s: w5 J - ((= eltype "BYBLOCK")+ g' \* v c& P
- (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
* U2 n7 ?% a! O/ @6 z - (T (setq lt-idx (getindex eltype ltnmlst)))
# n' P6 h3 H8 e* i - )% J0 F( M3 S8 y, ^" s9 c; K
- )
4 u' W r% w& ?/ g q& X( o0 Y - )9 U/ s( q7 E1 n- ^
- * S4 S, {6 Q1 |2 H# T) U$ \3 y
- (if (= (get_tile "error") "")- k) w" r8 |1 |2 X- g2 p- s/ x9 T
- (progn
6 C) m. Z$ V6 N2 s$ K$ Y - (if (not (new_dialog "setltype" dcl_id)) (exit))
0 q) c0 |+ a% e$ ^# [1 Z# C' P/ A0 w - (start_list "list_lt"). O* Q& v' i c
- (mapcar 'add_list ltnmlst) ; initialize list box" W4 }9 E7 h( I+ J- u9 g: R/ {
- (end_list)
2 t7 s% ], }1 a d - (setq old-idx lt-idx)
$ g$ u; j9 E5 L# u! w - (ltlist_act (itoa lt-idx))
) [; S% `; q) M8 |$ l
5 a2 V2 Y4 d! T8 [- t3 S! K1 N- (action_tile "list_lt" "(ltlist_act $value)")8 C$ v5 Q7 q3 W
- (action_tile "edit_lt" "(ltedit_act $value)")3 m% R! C2 Q4 _7 Z( P, b
- (action_tile "accept" "(test_ok)")
. [7 a8 s2 ^+ {' Y5 R - (action_tile "cancel" "(reset_lt)")
# ]1 V/ ], Y; }
3 `# B) i0 N) _- (if (= (start_dialog) 1) ; User pressed OK
/ i0 X" d e+ d8 P- B5 d3 s- X - (cond) M3 ?: g+ `, \& E, Q
- ((= lt-idx 0)
@* x" r) |5 ~: K/ ]9 m! D' t - (set_tile "t_ltype" (bylayer_lt))1 `7 w5 w( M0 {
- "BYLAYER"3 f: D3 R/ s! t
- )
' n% J7 @) {; U( g3 x( K4 z - ((= lt-idx 1)
?4 x) E" c% E - (set_tile "t_ltype" "BYBLOCK")# {! v% g8 R. A, [
- "BYBLOCK") c0 \0 I9 e% H
- )
D% y i" x) ?$ J - (T (set_tile "t_ltype" ltname) ltname)
. p. e. e4 s. s b - )& B' [7 ?# m7 Q! Q2 F
- eltype. G. P3 l' ]# i O
- )/ N4 {* U$ j9 A4 {0 ?7 Y- ~
- )" d# |+ N& M( d3 N
- eltype
$ F3 z0 @! d) Q; N* ? - )9 @/ ~3 d$ F' u) [8 e% Z
- )$ k6 L( _% V) z0 R K
- ;;
# ?) z* u9 p/ t* h# X - ;; Edit box entries end up here' Z$ J3 z) R; A2 G
- (defun ltedit_act (ltvalue). R- {2 k) j& i9 @7 p* o
- (setq ltvalue (xstrcase ltvalue))( E7 q9 ]& u& ]* A# @$ Y5 K% Q" i# U
- (if (or (= ltvalue "BYLAYER")6 C- ~: C/ n! |' P. r
- (= ltvalue "BY LAYER"))
8 B* K/ H1 y0 d1 u6 S/ m9 P) [: [( D - (setq ltvalue "BYLAYER"), q' }$ R6 u9 k: N
- )! O/ f9 j5 {: A8 I
- (if (or (= ltvalue "BYBLOCK")
4 E. l; a" v6 ^5 \ - (= ltvalue "BY BLOCK"))
. d& |& A. T- F% _. B - (setq ltvalue "BYBLOCK")
+ o J2 {$ d$ \$ \) S0 ?/ y - )8 \6 q7 G! Y6 q6 Y, k1 d
- (if (setq lt-idx (getindex ltvalue ltnmlst))
: G1 i" z/ T. r' A, { - (progn7 J# N N* r J5 p' m, Y
- (set_tile "error" "")6 }) G$ j3 `, P i* X* p* U' q8 U
- (ltlist_act (itoa lt-idx))
' y) W5 o @9 |* n - )
/ I( j/ y. e" a* c; V% m& j. l - (progn
. i. M/ D/ s) R1 W8 w - (set_tile "error" "Invalid linetype.")7 J" Z& S! p/ a# N8 y- B/ `
- (setq lt-idx old-idx). _9 R) {1 P8 E& z" |. C
- ;; (mode_tile "edit_lt" 2)
6 x+ v$ V. k1 m' U' y" X - ;; (mode_tile "edit_lt" 3)
2 Q _3 N8 P) |$ k/ c F - )
9 b f5 v7 P V- C2 Q - )
+ R8 ~9 z2 u% y6 F - )
6 X* V( e; x2 r! c: M - ;;* o2 t. j# N3 n: |
- ;; List selections end up here. Update the list box, edit box, and color3 _0 \( a( @1 i5 U
- ;; tile.6 Q; T; A; t& }" B
- ;;0 [: E5 A" y9 U
- (defun ltlist_act (index / dashdata)
6 i8 F3 O2 |0 j2 N - (set_tile "error" "")8 B% p8 D" q, k+ ~
- (setq lt-idx (atoi index))
2 v1 ?4 J" j$ B2 k( ]$ |. s" @5 ~ - (setq ltname (nth lt-idx ltnmlst))4 m+ ]8 v3 e0 P1 [) q2 k$ b
- (setq dashdata (nth lt-idx mdashlist))) L+ s& z7 Q# B& z2 W% ]0 z; W
- (col_tile "show_image" 0 dashdata)
! n, n9 M$ v+ T$ m* B: B# r& b - (set_tile "list_lt" (itoa lt-idx)), S5 ?+ g: p/ R
- (set_tile "edit_lt" ltname)# @$ P! `/ \, `# B
- )
# ?5 C5 Y, O$ F5 u3 ] - ;;
! l, B) p4 k6 i' D0 O) L; g - ;; Reset to original linetype when cancel it selected' e4 M' H% y: {5 g+ k3 R2 E
- ;;
8 v( W7 q& K% c: w v - (defun reset_lt (). }% L2 R9 _" m0 V1 F' B
- (setq lt-idx old-idx)
# U- ^/ v& u! u3 u0 Y - (done_dialog 0)& F5 d Y$ s1 {' ?
- )
: O: i( Q; E+ E$ p9 ?: J - ;;
( T* Q0 ?/ h; ^' N' r - ;; This function pops a dialogue box consisting of a list box,image tile, and
9 u" {4 Y0 x% f- {2 ~! U - ;; edit box to allow the user to select or type a layer name. It returns the2 S& b: u8 y' k8 p0 [0 v3 ]
- ;; layer name selected. It also has a button to find the status (On, Off,
/ T0 Q) x0 D" B d3 ?1 y - ;; Frozen, etc.) of any layer selected.0 O- p n% s `1 [8 P( j
- ;;
* L$ z4 r7 p$ V, H5 x$ W - (defun getlayer (/ old-idx layname on off frozth linetype)0 C+ R7 v) q3 W! y
- ;; Create layer list the first time the layer
, |' S. y H1 h - ;; dialogue is called.
* K0 C, ~: Y5 S3 \) } - (if (not lay-idx)0 k2 c, m/ h4 [# Q
- (progn& C* {* R8 D" u
- (make_lay_lists)! Y; ^+ _ i) s- h& ^ p% B
- (setq lay-idx (getindex elayer laynmlst))9 V0 I3 c7 T2 [# a
- )
) t1 d% _$ x& p% m- B a( r - )
( b7 l1 v1 x- J, y, M& ? - 9 _- V' }0 B9 C3 T( v- s4 w1 K
- (if (= (get_tile "error") "") U4 X. a" L' z/ o( t3 S
- (progn6 m0 W( t5 I! c. ?7 W. C/ J
- (if (not (new_dialog "setlayer" dcl_id)) (exit))$ S9 C- K+ r& \4 G( y2 ]; J( ~
- (set_tile "cur_layer" (getvar "clayer"))" P: x. O* }- x: t! S: O
- (start_list "list_lay")
1 c: e8 V& y9 { J5 A - (mapcar 'add_list laynmlst) ; initialize list box
- v" z7 S/ M1 c a* T - (end_list)- N/ m9 h, h* u) v i
- (setq old-idx lay-idx)9 O+ N9 _1 X6 ^+ d0 I* w; u
- (laylist_act (itoa lay-idx))& c2 g2 g9 |- u* n0 D0 R m
- (action_tile "list_lay" "(laylist_act $value)")
1 w8 `4 a& Q$ w: p0 l - (action_tile "edit_lay" "(layedit_act $value)")5 ] X* Z3 E- y; O, Z$ y: u* i% Q
- (action_tile "accept" "(test_ok)")" \4 M. ?, P# {+ I- r
- (action_tile "cancel" "(reset_lay)")
, @% J# k- o1 t& B J3 V. z - (if (= (start_dialog) 1) ; User pressed OK
% i( p0 K, G G) K# D( O - (progn o) B/ U5 B3 x( a/ Z( e ?- l
- (set_tile "t_layer" layname)
E2 w$ Y8 {, H0 V5 ]. ] - (setq elayer layname)
* u& L+ A$ x+ T7 k1 R5 g0 p - ;; If layer equals bylayer reset color tile
. N, J. a: T# L9 z" }/ I - (if (= ecolor 256)' u9 |* G7 |4 I1 m+ _& h7 n- i) B
- (col_tile "show_image" (bylayer_col) nil)
- H6 |9 K/ K. L5 _ - ), E- l9 D# I" z0 M9 Z! o
- layname
9 r! N7 N3 v* N9 c - )8 D- a: G8 x6 T4 X9 b! u* I
- elayer4 I- l) s+ C6 p: d1 D
- )' B* C" c. Y0 V9 R( \3 D1 B
- )& p( q5 D: V! `# M6 D
- elayer$ U' B1 i% F" ~( x2 Z8 i. J \. U
- )
1 E- R8 P' E; A - )$ W4 D% R+ B8 g4 w- A
- ;;
' Y v, J/ S/ g& x - ;; Edit box selections end up here. Convert layer entry to upper case. If
7 d, t! a% w# y8 M1 [6 p - ;; layer name is valid, clear error string, call (laylist_act) function.7 o, j" o. t, u& y+ H! o
- ;; Else print error message.6 }- G2 w6 [* g7 o1 d; X. @
- ;;
# @" p9 i* w* \( w4 h7 y - (defun layedit_act (layvalue)
9 v" v; b3 y2 ]! F9 v. d1 u - (setq layvalue (xstrcase layvalue))
& h" \2 s! \) p6 W0 j. |1 ?# y) b - (if (setq lay-idx (getindex layvalue laynmlst))
8 b( w* h) J$ H8 [" E x - (progn
" {( r6 ^ y. O# S: U2 [# c - (set_tile "error" "")% t& V' y3 x0 D6 h0 J2 C
- (laylist_act (itoa lay-idx))
! U' @" _- V0 p) f/ r/ Q" q - )' X3 m8 x+ ~6 k% N5 Z
- (progn2 @2 i9 b2 H& V9 K! C
- (set_tile "error" "Invalid layer name."); \$ _% ]+ E1 E s
- ;; (mode_tile "edit_lay" 2)
1 ?( Q) N# m8 u3 { - ;; (mode_tile "edit_lay" 3)
" ^1 r, c/ r+ P9 B. u7 M. L" A2 m& l6 u - (setq lay-idx old-idx)$ c( S2 D# I& S8 v/ S
- )6 q! [% m- Z' @2 t8 T; d, `
- )
U4 H: k' p9 T - )4 P, {5 V% [2 [& Q1 D G' u6 K
- ;;3 x8 D% R( O) A2 P5 v0 y- a6 c' e
- ;; List entry selections end up here.) ?2 x% m8 H! v$ T" Y! `
- ;;
$ S$ m, p2 \, T) } - (defun laylist_act (index / layinfo color dashdata); }0 A6 y2 K, `0 u
- ;; Update the list box, edit box, and color tile.
1 ^7 {' X+ d! m. ~& g, B; B - (set_tile "error" "")
+ |( y, i# ]3 m - (setq lay-idx (atoi index)); R2 B) `, J9 A0 c* `. _% W* s4 I
- (setq layname (nth lay-idx laynmlst))! U: t! R3 V1 y- {/ f$ q/ n' N: V6 l
- (setq layinfo (tblsearch "layer" layname))
: {8 H) U) T2 D0 v: b6 _ - (setq color (cdr (assoc 62 layinfo)))
$ Y- _; d p. t0 x1 e; {; Q - (setq color (abs color))
) o9 N. ]8 k( ^: r! \- @ - (setq colname (colorname color))
* F! v/ B* y- c+ @$ I; q - (set_tile "list_lay" (itoa lay-idx))
3 n7 n0 ~ w2 n! U+ \/ R2 O3 c - (set_tile "edit_lay" layname), D8 K5 e* m5 a7 ]" t; ~: h
- ): j x; q; r; T% d% V
- ;;
! x6 {7 W* H5 w; v- s - ;; Reset to original layer when cancel is selected." f9 u3 Q9 N' M
- ;;9 X4 T7 F8 R/ N# D( B
- (defun reset_lay ()8 h9 M9 p, E" R) t
- (setq lay-idx old-idx)
3 k% ]" ]+ w; E( h/ I - (done_dialog 0)
7 S0 t9 v# }$ G - )5 R/ C/ R0 z0 A2 P% A
- ;;; ?" n/ l H0 i5 q' J* x: u4 o
- ;; Checks validity of thickness from edit box.0 j7 n* ^8 C: }; n! f# y
- (defun getthickness (value)/ |: ]1 Y$ i7 h4 \0 P
- (setq ethickness (verify_d "eb_thickness" value ethickness))& `9 A# h! v8 B9 |
- )1 ^; q* w4 }7 W* T$ M
- ;;
' l; g# T; \4 y5 X+ f- p" @" V$ U - ;; Copy of (getthickness) for ltscale. If more, make this function
% ]5 @' `6 y% @+ m; q' u$ F - ;; generic.
4 \/ z9 l- x% e) g- F) I+ Z Z& J - (defun getltscale (value)
0 f( c4 ~% V. ~( r4 L& K1 E - (setq eltscale (verify_d "eb_ltscale" value eltscale))
; |2 f9 S; k* D% H& ?0 [ - )8 Y6 X" F* @, I8 D4 ^% b
- ;;8 k4 g+ |4 d3 ?
- ;; This function makes a list called laynmlst which consists of all the layer
- F+ q2 J# n( H2 j; [6 S) K - ;; names in the drawing. It also creates a list called longlist which+ |, y5 m3 ~/ E
- ;; consists of strings which contain the layer name, color, linetype, etc.
2 m4 A4 D0 A9 c/ S8 ` - ;; Longlist is later mapped into the layer listbox. Both are ordered the
' m; Y1 w2 Z) j) l' f - ;; same.8 ^; U9 I. B; y) o) }" b: ^
- ;;
$ @. D% G. A a - (defun make_lay_lists (/ layname sortlist name templist layer_number)
. s0 g% E1 _& h, [ - (setq sortlist nil)
* Z0 e& b( \+ W# N - (setq templist (tblnext "LAYER" T))
7 ^: Q" K0 }. Q% H1 e - (setq layer_number 1)
2 c/ I8 _+ c+ o9 a. Z5 K - (while templist5 U' h1 _ h! i M7 c
- ;; No xref dependent layers, please.
9 c+ t9 P) S# ?9 l' R - (if (/= (logand 16 (cdr (assoc 70 templist))) 16)
; K4 p# z: M2 K4 b; C" W# F5 V - (progn
: ]9 v, b6 i" ^" s) ?8 Z - (setq name (cdr (assoc 2 templist)))9 D ^$ @* I( M0 v
- (setq sortlist (cons name sortlist))
" V, z# g# ?2 d, G5 A4 G1 F) f4 | - )
3 D4 e" N ~) v1 M& ^0 X - )# Z) \% o, C! ?! f/ r$ G' C
- ; Get the next layer.9 A& ]- ?& r- ]8 b9 |" G1 n5 p
- (setq templist (tblnext "LAYER"))
* [9 i& r/ K( [, g( g - ;; Not dead message...
/ u" B% `* n* t% s - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))
' L: q, S- V0 l4 l$ T - (set_tile "error" (strcat "Collecting..." (itoa layer_number)))& |4 V) U1 E* o# n% I0 i' d
- )4 _) \: \5 t& R; q/ }/ X/ M/ e4 q* P
- (setq layer_number (1+ layer_number))
* A! |+ E+ ?. d0 t4 D& l - )7 { c5 e$ ^+ {0 E- I5 }& {' G
- (set_tile "error" "")7 x' `1 t7 f2 u$ M' k
- (if (>= (getvar "maxsort") (length sortlist))
! e" f. k) e' F$ L8 u - (progn
4 P; Q4 S& e h" T - (if (> layer_number 50)- j) P: g x( }' h
- (set_tile "error" "Sorting...")) s U# e' J7 C* d9 ~* |
- )5 m9 L2 L! d8 t0 D. e2 K( ]
- (setq sortlist (acad_strlsort sortlist))" K8 P" i7 ?, u1 S8 M
- )
" M- ^9 d: H9 B1 {' E - (setq sortlist (reverse sortlist))( f/ F4 H( X2 J# s3 z
- )
4 X1 a7 z m( ~6 L& J% \ - (set_tile "error" "")0 Y# E5 ~7 M! |2 u0 B+ c& F
- (setq laynmlst sortlist)+ Q# r& V1 C5 w/ R1 O& `
- )# h# y! [: @9 L8 t0 G/ i! H
- ;;4 ?) q) g8 Y4 C3 x% e
- ;; This function makes 2 list - ltnmlst & mdashlist." `( `; i4 V, T3 a
- ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist1 A8 ^. C& i$ b
- ;; is list consisting of lists which define the linetype pattern - numbers2 g( v! V. N' a0 o5 I+ ^$ p
- ;; that indicate dots, dashes, and spaces taken from group code 49. The list/ n! N5 o# E; n' v
- ;; corresponds to the order of names in ltnmlst.
# ~2 s0 U9 W) ?) R& }, P9 ~4 v - ;;9 B7 U3 x* [" S
- (defun make_lt_lists (/ ltlist ltname)2 x3 X1 Z% Q c' D- `( Y) U0 Q
- (setq mdashlist nil)
/ z1 X/ l& l( L9 o3 e( o - (setq sortlist nil)
3 V* ~$ e2 \* M9 v1 D7 q1 v - (setq ltype_number 1)
6 q5 [6 N4 I( b* ?4 Z - (setq ltlist (tblnext "LTYPE" T)); K8 }2 ?, j2 X7 H* c! l, |
- ;;(setq ltname (cdr (assoc 2 ltlist)))
! Z4 Q( x# [! \% L7 Q- W* ?# E - ;;(setq ltnmlst (list ltname))
0 J* F5 b; A b - (while ltlist
7 i, m. R9 @( f$ A) P1 h - ;; No xref dependent linetypes, please.
5 U9 [ `8 }3 _ - (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)) S7 u4 H J2 u" k E
- (progn, \8 @+ h! a2 G
- (setq ltname (cdr (assoc 2 ltlist)))
+ I0 y" x# K( E0 d" Q" e# V3 j - (setq sortlist (cons ltname sortlist))* h' Z, q- z+ v3 j' M' P
- )
! f3 G! A& ]- n' G) X1 e6 o - )
& P p [4 R, V2 E3 a7 \; Q - ;; Get the next linetype.3 S+ k& w" L1 R7 U: r& J% e
- (setq ltlist (tblnext "LTYPE")); D. m x+ P& h# V% G3 S4 y* p: `+ C
- ; I. L$ {, X* F( i9 h8 M3 G
- ;; Not dead message...
e6 i/ E1 f/ a1 A$ w - (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))
} @5 U: q# Z) r - (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))) `6 M+ Z3 a' B1 F
- )
7 }. x0 m! G: ^/ @, L9 j - (setq ltype_number (1+ ltype_number))( e" f* W) F+ q, |& J+ U
- / M; t7 _1 H7 M
- )
: Y1 y7 t3 L0 d - 3 G1 `# S7 D1 O% {1 ^) ]
- ;; Remove Collecting message.
- _" q( S! k$ x! ]% g - (set_tile "error" "")4 [) M& t! K3 L) G. R2 c' l, ^( @3 d
, w- z; z9 e7 |' H# m4 B/ H, A- ;; Sort based on maxsort.
5 H; m. D( F" |$ W. a) } - (if (>= (getvar "maxsort") (length sortlist))
- O1 P) w5 x% ^# U - (progn* @0 X- o, X1 B+ I* B! q6 k* R
- (if (> ltype_number 50)- G/ T* h' I3 H9 Q; i
- (set_tile "error" "Sorting...")
% q8 A& W9 i7 k* I' q, O" _) @ - )
3 X9 J# k3 t) K - (setq sortlist (acad_strlsort sortlist)); g8 s$ f0 W1 ]! i8 j
- )
- t2 ]2 K' s n - (setq sortlist (reverse sortlist))
' Q% J' T% ?0 M" E' g" N" V: t; j - )
) ]0 S7 ]. |5 t% p3 I - (set_tile "error" "")8 ^) u; a" @0 R" t
- (setq ltnmlst sortlist): h! N$ I8 `5 I& P' t$ M+ i
: K3 s1 `; T: l) r" B4 x: I- (foreach ltname ltnmlst1 u3 v9 ~. W- O; [% z/ A1 R6 [
- (setq ltlist (tblsearch "LTYPE" ltname))
# g# p! n8 Z/ \ - (if (= ltname "CONTINUOUS")! }$ n) ^6 d" H6 v( P
- (setq mdashlist (append mdashlist (list "CONT")))
2 i2 j# N0 F! V$ K6 g( v" f - (setq mdashlist
6 F |# y6 ^+ g3 Z" B; ^- O - (append mdashlist (list (add_mdash ltlist)))
9 v# @6 s, v8 L9 y; U - )
4 w/ _7 q9 u h; h0 P: j5 F( b - )
; M, V- E2 G1 n% q% X/ v0 V - )* m* d$ L- _% {" N$ O+ f; m( f& D1 _
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))
. y% t7 s* E5 i" _/ }! _ - (setq mdashlist (cons nil mdashlist))
% m% U5 x8 O8 S0 H, ]% j - (setq ltnmlst (cons "BYLAYER" ltnmlst))
5 o3 Q4 t- p6 K; d - (setq mdashlist (cons nil mdashlist))8 j8 b T3 r' `+ J5 `
- )2 f4 D& a: B) ?, b3 p: d$ n
- ;;
+ C& M( g1 q& h+ ^$ h; F4 \ - ;; Get all the group code 49 values for a linetype and put them in a list
' Y. R; H: a! e - ;; (pen-up, pen-down info).
5 C) K5 b! Q8 I' |- y - ;;3 H# g& T! }5 J1 [' R6 Z
- (defun add_mdash (ltlist1 / dashlist assoclist dashsize)
' Y/ ?* i+ t/ O8 p - (setq dashlist nil)9 W- Y* Y* i6 Z' R
- (while (setq assoclist (car ltlist1))' a/ y" W7 m' w( |! }
- (if (= (car assoclist) 49)1 D C$ b& M0 `( @
- (progn
. v. u$ Q3 ]1 X - (setq dashsize (cdr assoclist)) ^$ d, v/ P6 U) |
- (setq dashlist (cons dashsize dashlist))
# y8 X$ n9 I* R, l. g% M4 s - )# w# m7 R) z* l) `9 ^
- )3 C& l% H" [- S4 r
- (setq ltlist1 (cdr ltlist1))
3 G( ^' |0 }1 @+ e - )
7 V6 g; f* U1 F3 v8 C C - (setq dashlist (reverse dashlist))9 `" i3 i( r0 d8 r1 M4 c
- )! A7 @1 D6 a, B) p! c
- ;;* j0 y. h/ o- F
- ;; Color a tile, draw linetype, and draw a border around it
; I2 D, F- K$ @! r' k/ _ - ;;
0 S5 c$ P# q. b: L# R- j& f- X - (defun col_tile (tile color patlist / x y)
k# d" `4 V C H( m# k - (setq x (dimx_tile tile))
0 J% S2 Y3 }( k4 S* A - (setq y (dimy_tile tile))) X# |+ H& u/ s7 ~; h2 ?
- (start_image tile), y9 P4 k0 N4 }4 j0 `( [4 _
- (fill_image 0 0 x y color), \; c: F o7 @
- (if (= color 7)
4 Z* M I2 Y( G! }, U& e2 q - (progn
8 k$ y/ \% B) ~- [/ ^6 U - (if patlist (drawpattern x (/ y 2) patlist 0))5 K( s6 R, l! J( i; t
- (tile_rect 0 0 x y 0)
9 j7 ]# V- k8 M% w8 a, K - )4 Z* |4 m+ |' `. {' f
- (progn
6 B8 @1 ~- N. M. A1 s - (if patlist (drawpattern x (/ y 2) patlist 7))# R7 n4 a: V2 E3 I2 h
- (tile_rect 0 0 x y 7)
+ X: W$ {$ U& e$ q7 |3 a - )! P) e7 ]1 ^; f; F3 Y2 g" x
- )
! X, B# n: o" V1 L- T - (end_image)
$ C* k6 ^% }: @. w5 k0 F - )9 z- u: ?8 D9 x, ?! a
- ;;
/ m, b: P4 S$ _) L0 b9 d - ;; Draw a border around a tile
# ^9 h, j K+ N( k - ;;
4 v0 u2 @: E% J" ] - (defun tile_rect (x1 y1 x2 y2 color)
* x/ Z \: j6 B" Z3 \ - (setq x2 (- x2 1))
5 _: w$ B% Y. }+ a4 g - (setq y2 (- y2 1))7 U3 |) K; F6 d6 F2 `* ]
- (vector_image x1 y1 x2 y1 color)
( ]- a1 E% Q9 z1 s# t4 N - (vector_image x2 y1 x2 y2 color): q0 ?6 k- @/ v2 s
- (vector_image x2 y2 x1 y2 color)$ P3 a. Y+ N$ v0 D+ I" @
- (vector_image x1 y2 x1 y1 color)
: j0 H9 @5 f' I0 s T+ C - )
5 Y3 v: @: d+ h: Z& }; Y- v - ;;
8 S5 J7 t6 X$ @8 c6 z1 L, i; n5 I - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
0 j' }" b1 H6 e' `2 v |$ D - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a! y$ |; y) a( B9 ?. E# @( @
- ;; list of numbers that define the linetype, and color is the color of the+ D3 K7 k9 `9 H; U8 b
- ;; tile.
8 }6 H7 F" k* {2 g3 z& b* ?- m - ;;
$ Z. p/ s) @" H5 P2 | s - (defun drawpattern (boxlength y2 pattern color / x1 x2
: R2 B A* Z3 U, Q6 V - patlist dash); R3 W V* l6 Y0 r
- (setq x1 0 x2 0)
; M6 i/ i( U4 \4 }' Z - (setq patlist pattern)
; H5 T; M5 Q, l7 m3 B - (setq fx 30)4 P4 i4 h4 `9 I+ x& T; p
- (if (= patlist "CONT")9 w. t. M5 f0 r: a3 ~4 v
- (progn (setq dash boxlength)
& w: ?1 H( \9 V- t - (vi)! q( L2 `4 L1 E( A( t6 ^ X# w( {
- (setq x1 boxlength)
! S4 t( i* L g- ?- ^9 m$ c - )
4 h7 N4 Y, y# G% D* { - (foreach dash patlist& f3 d2 ^" A8 P4 K! D1 N2 C* F
- (if (> (abs dash) 2.5): W: r& ]7 z; D: S" ^0 l
- (setq fx 2)
4 z- v' K1 W/ \) Y* R* V - )/ X# _6 S9 Y- V4 X$ D. I9 b
- )
! v: D( U0 D! U - ), }' j. x+ e. n4 U
- (while (< x1 boxlength), H( q3 B& `4 t2 Y' ^3 V$ }0 e3 ]
- (if (setq dash (car patlist))# @+ g/ }, l1 F i" y
- (progn% W/ d) h: }' b4 U! H% E
- (setq dash (fix (* fx dash)))
0 X6 B% V6 t! g* ^0 Y - (cond/ c% t! R1 U3 x; x% S1 w8 u/ P
- ((= dash 0) (setq dash 1) (vi))
0 h5 h% c& Q* @! N: V' _. _! U1 c - ((> dash 0) (vi))
7 D# e$ |9 ]( ~* Z( y" q, F - (T
0 K0 E0 ?/ O: ~5 O3 \ - (if (< (abs dash) 2), F$ k) c1 a" u: O( n L# A' l" J
- (setq dash 2)! @6 S7 L! Z7 B7 j2 z
- )
% x9 [, h c8 Q- f- P- s7 ^ - (setq x2 (+ x2 (abs dash)))4 D, u7 ?6 F6 t& A" O2 w1 B
- )
' ]8 o6 f$ C! j+ X9 E, i6 C - )
6 H, X& n$ B+ V3 E' L' | - (setq patlist (cdr patlist))# H2 t/ W5 g# m( Q W# n
- (setq x1 x2)2 p) M& F8 V, C/ a" j1 p+ W* ?
- )
& Z9 H3 R( M+ f+ J% N - (setq patlist pattern)8 ]) B, q `; ~! ]* N! u: N3 [
- ); M$ M* W8 y; f' n1 m* C
- )% w% t- \& R$ U0 }* ?
- )
, g2 q4 b/ I' L - ;;$ l& z$ U6 s2 F, @
- ;; Determain state of xclip8 S9 D# j1 X& U7 V+ L% F: a
- ;; Returns the group 71 value of the spacial filter dictionary.5 {& f6 |$ X1 @2 ~+ y* {
- ;; If the entity doesn't have a spacial filter dictionary, this R/ I; T* l+ G# i) k
- ;; returns 0. If it does it will return 0 or 1 depending on the
! }, {9 C& F+ U3 } y9 k - ;; current setting of the state of the clipping visibility.. g" ]+ [9 v1 Y& m- S: ?
- ;;
+ p2 {- a& g2 B1 @ - (defun xclipon(elist)
4 N0 M$ B" \9 W! d& n6 t; Y - (setq hasclip T)
- o/ o- T" \; F1 J% x& U( J - (if (/= (assoc 360 elist) nil)
1 `6 s7 P4 j) Z$ Z" n - (progn3 c$ l8 p0 a) P' {
- (setq tmp (entget(cdr(assoc 360 elist)))); M- |( O& W0 } N
- (if (/= nil (assoc 360 tmp))
1 X3 _2 ]6 `2 |6 s - (progn" y, X- [& Z" W# i
- (setq tmp (entget(cdr(assoc 360 tmp))))# j1 ?4 Y% y% z$ f' D
- (if (/= nil (assoc 360 tmp))% K: J2 `1 k) @2 E# C |
- (progn; H, a0 R; p6 q, {' s: c
- (setq tmp (entget(cdr(assoc 360 tmp))))
, N) d+ t, m- Z! f/ x - (if (/= nil (assoc 71 tmp))
& U5 @5 Q6 s) S- Q - (cdr(assoc 71 tmp))' J" T- W8 C% ^, d; x; _
- (progn o, n* I2 R5 n- N+ I: R
- (setq hasclip nil), _6 k; k. _; r8 T7 u
- (eval 0)$ @( Z3 b+ M P& e; V' N W8 J' A
- )
) H+ l8 o4 q* H2 a( ^) v1 t: w' e' ^ - )
) H. K; g7 f$ [7 U0 Y& e( w - )2 ]* z' [! k' U& Q4 G
- (progn
+ P0 {) ~4 L3 M/ f - (setq hasclip nil)0 Y8 q) b( d& Q! _" T, O4 M
- (eval 0). ]2 r( k6 c- S2 l7 G* G
- )6 ]/ y* T% T7 H9 V7 x
- )
' j6 C( a% S: r0 o6 O - )
0 O( B( I0 W7 \0 C - (progn
9 O5 r2 f G# \( i& J1 G - (setq hasclip nil)
5 B/ f; [9 j- ^. x3 ?- h. P! O! L - (eval 0)
2 U1 ?+ g- u1 n8 E/ D - )
6 k( P7 _/ y, U6 e; w - ): B5 L. ?) S* z2 j" g8 n; B3 L
- )
& | J' R* }; O9 ^' v( v5 ]% b, i - (progn 8 f3 p6 g% q; e; R8 P, V
- (setq hasclip nil)# R; A6 @, U' m; |
- (eval 0)
: c0 g( u0 _- }' P, ^* | - )4 ~' A' _- o+ _- o5 I' f
- )
# p$ ^% j8 Z7 h* `0 S8 v. d: L - )! ?7 |; c7 A6 O# N/ x3 Q3 C& T
- ;;
2 M! ]% }' T7 u2 f$ ^0 S4 E - ;; Draw a dash or dot in image tile7 _' ~$ h7 D4 D
- ;;
! D5 h, Q0 Y6 ~" y - (defun vi (); P, C- E7 e" x8 {
- (setq x2 (+ x2 dash))
' [$ }' \* H; ^9 k' i/ Q9 c - (vector_image x1 y2 x2 y2 color)
8 W1 i( M0 {7 n2 }( Q - )
; u4 F7 }) p- y: C5 _& ~: `# _ - ;;
) m) [& q' Q; i. D* S0 s - ;; If an item is a member of the list, then return its index number, else8 t/ O. X; f" j7 d4 Y4 ?6 K0 a
- ;; return nil.* |+ X V! [, {
- ;;
6 g; [* Z* z6 t# E( T6 }; \ - (defun getindex (item itemlist / m n). O4 x: Q$ f; y7 ~4 x( ]
- (setq n (length itemlist))
9 S" [: D# s0 }) X, N: | - (if (> (setq m (length (member item itemlist))) 0)
, q+ z3 i& B3 u1 L2 g4 b - (- n m)
T2 d9 w+ g+ i/ H - nil
+ m' r( B( g& E - )
+ r' ^! R( `2 ]) o, d - )3 n0 L1 a, g# I/ X' V7 q
- ;;* ^7 L; m6 j' x8 ]& d( U
- ;; This function is called if the linetype is set "BYLAYER". It finds the8 c5 h% p- R2 s# Z8 m
- ;; ltype of the layer so it can be displayed beside the linetype button.: o) L5 l3 N: T) q( Z& s
- ;;5 w, k/ X7 W( U; B& \" `. E
- (defun bylayer_lt (/ layname layinfo ltype)" L4 a) ]) H1 ^3 l% T4 v6 y
- (if lay-idx
; _+ _4 b4 G) K) T9 s$ m - (progn3 q0 u2 C8 |* Y# R/ ~
- (setq layname (nth lay-idx laynmlst))7 X; {) D3 J a# \# x
- (setq layinfo (tblsearch "layer" layname))# C3 j! n6 \0 u1 t: I% T, E& \
- (setq ltype (cdr (assoc 6 layinfo)))$ o3 A' R! @7 q
- "BYLAYER"
2 L; q; y$ f+ e u( M ?" e - )
8 c6 ]8 R) @, E8 a6 _3 k - "BYLAYER"4 _/ L" n& ?- V
- )$ y) a( h7 N- t
- )
, l! {( t& J9 I2 b5 v7 g - ;;+ J7 m0 L) Y5 f1 E
- ;; This function is called if the color is set "BYLAYER". It finds the color
1 s% u5 q9 ^/ G s3 s# \% b& X. v - ;; of the layer so it can be displayed beside the color button.
9 d1 J( O7 g# U1 f - ;;. O; Z+ Z3 V2 Z/ |9 g6 }0 J
- (defun bylayer_col (/ layname layinfo color)
+ k% k) a7 H3 k& k0 d - (setq layinfo (tblsearch "layer" elayer))
) U- B4 g4 x8 o8 _8 n - (setq color (abs (cdr (assoc 62 layinfo))))
& I: Q. R7 F0 g3 Z' H& G5 | - )
. S4 {0 U: o8 K/ y a6 J* x% p - ;;
) r/ f9 N# d& e9 X9 e# l+ p - ;; Used to set the color name in layer subdialogue.4 A3 \# Z- m3 h8 g- |7 E
- ;;
9 w& Y4 W% Z' [7 J - (defun colorname (colnum / cn)
$ {# A: u2 w2 }; d! c - (setq cn (abs colnum))
5 {7 o8 s" T! a! B! d - (cond ((= cn 1) "red")
, U m, R7 b4 c& p! _; b - ((= cn 2) "yellow")- V0 M6 m" ^* B" l/ U, j& d6 Z& H; n
- ((= cn 3) "green")
! f3 H) s9 ^/ ? - ((= cn 4) "cyan")
4 R% p+ q; ?, z, x( `4 F - ((= cn 5) "blue")
& B" [- x, @' }+ L - ((= cn 6) "magenta")
0 `) a( P3 e- Z1 f - ((= cn 7) "white") x) c" `6 f& d& H9 L# {( [0 t& c' }
- (T (itoa cn))
; s" n7 E7 Q) E: l$ ] - )
3 j$ a2 Q# J+ y; N/ i# L. I - )5 o% b u2 c J' N5 e6 c/ B9 s
- ;; ]; o3 }, s/ N& u
- ;; If their is no error message, then close the dialogue.
( T; D( ]1 |9 h: U5 S& F7 k - ;;0 r7 F; o$ [# n- R
- (defun dismiss_dialog (action)1 M+ _$ s3 s6 s, g$ z
- (if (= action 0)
" W* s3 y! G+ f( P - (done_dialog 0)0 v6 W) m* A0 f/ H0 K
- (if (= (get_tile "error") ""). t. ~. U$ b" P
- (done_dialog action)
4 i7 g6 m! e4 c) ]$ e/ U# m - )' e% g' ^; s5 V3 `8 ]9 n7 ]
- )( Z L9 ]% W. g
- )1 O3 O) ~& r% K- \4 R
4 B( z" [/ E5 |1 M- d5 g- (defun test_ok ()* O) y: X0 W9 L3 Y+ C; o
- (if (= (get_tile "error") "")% I o) q% m% h0 V- ~' h" r
- (done_dialog 1)
0 `7 q" K( W4 h i' s - )
" f! ]6 r5 X `* j6 ^0 J+ W - )
5 M0 S" l' ?/ A* S$ R7 K
/ q8 g- a1 Q2 f3 ~9 T& m) m3 I7 h- (defun cancel ()3 d) B6 o- {7 k
- (done_dialog 0)
0 d; R0 U4 G' V" p: F. N9 a' A - )
9 Q1 D V2 n# h! R. M, V
5 M( j3 `. S' _3 ] D- ;;; =======================================================================
: m3 a; X: c5 B& ]$ m - ;;; SETUP layer and linetype lists for application, and initialize all, I$ L2 L7 ]& ?
- ;;; program variables.
: C1 J) b4 L0 V V5 M( Y9 H
2 v; g2 f& y% s- D- (setq elist (entget ename)
2 q+ L/ g, Q6 F6 q2 t7 u$ d - old-elist elist- V2 S0 _ M8 J( X: `. ]' m; ^3 J
- modlist elist
5 u: i5 V7 i5 g r% I* d( q - etype (strcase (cdr (assoc 0 elist)))& m& n) R5 C5 `) Z9 c
- ecolor (cdr (assoc 62 elist))! g/ b$ ]7 Y0 N7 C9 m5 x
- elayer (cdr (assoc 8 elist)); _, H5 q! J9 w' m+ {9 V& e4 Y- G
- eltscale (cdr (assoc 48 elist))
d9 v3 K( d# l1 c* b - ethickness (cdr (assoc 39 elist))
' I- ]; A$ e$ F* B5 B0 P5 V - eltype (cdr (assoc 6 elist))
- y. m: N/ D% D6 U+ u/ { - )
, \4 N( }4 E5 c& ? - (if (= (assoc 210 elist) nil)) u( x& ?: d9 B7 k, j& e# j% w
- (setq extru (list 0.0 0.0 1.0))' g. G6 @6 D( h& m- ?( A7 y1 Z7 c
- (setq extru (cdr (assoc 210 elist)))5 S9 ~; W; j+ K) R
- )- s3 M$ u3 a8 _$ t( G
( N1 {+ m1 R' O) @- (if (not ecolor) (setq ecolor 256))
" w t. M k1 W - (if (not eltype) (setq eltype "BYLAYER"))
2 J$ y7 Z! @& l0 C - (if (not ethickness) (setq ethickness 0))
6 ]& y$ e$ m3 { ^ - (if (not eltscale) (setq eltscale 1))7 p. R8 o: [& a5 |1 l3 i4 z
- ) ; end ddmodify_init, {" O$ j2 }, O: h( ?8 }; y/ _
. i4 k1 n1 x6 |! v3 T% H, ^1 O- ;;; --------------------------------------------------------------------------& i* n/ R! h* Q2 h% w
- ;;; Function: DDMODIFY_SELECT0 ?9 e6 S# Y% g3 ?/ A' C6 M
- ;;;
) y. ]8 y, G+ o3 R - ;;; Object aquisition function.
2 m' C* u& S) q i$ O8 e; K - ;;;2 N o- o- p" A q" Q* S
- ;;; (ddmodify_select)
( W8 p+ o/ j$ t2 k+ q9 e - ;;;$ o/ c1 Z3 n. i
- ;;; Obtains object to be modified, in one of three ways:
3 S3 ^1 o1 y7 C- N3 K# N8 y) A - ;;;5 V" b$ O3 z/ q- D
- ;;; 1 - Autoselected.$ b+ q2 s! `+ c+ A3 f
- ;;; 2 - Prompted for.
. o! o k8 N! S, f; V- H+ a* \5 ` - ;;; 3 - Passed as an argument in a call to (ddmodify <ename> ): M8 O/ \9 n; H) J
- ;;;
3 r C M M4 z+ ~( E - ;;; The (ddmodify_select) function also sets the value of the! h* [5 S0 w1 ~$ S7 s* ]' t
- ;;; global symbol AI_SELTYPE to one of the above three values to
, [! h6 K7 [9 ?3 v8 L1 E& H - ;;; indicate the method thru which the object was aquired.) a0 O5 i& \5 G
- ;;;
" D8 _: P3 F, Q) }: U. w - ;;; This value can be useful to applications that want to RESTORE
2 A1 U( A O; e' U - ;;; an object that was autoselected to its previous selected state
0 e, r& H# E2 h/ [/ t& p! S - ;;; when they terminate, although there doesn't appear to be any
# m- `9 s- |7 R5 L% ` - ;;; way to do this right now.4 x7 u! b% R2 j' p! M/ M1 W& E
- / r1 T2 Q3 l0 z( |' r# M
- (defun ddmodify_select ()
4 i) [# ]) p: D - (cond# N: m7 ?# C& c
- ( ename ; (ddmodify) was called! }2 N8 E4 r2 V: Q: f& Y$ t6 z
- (cond ; with an <ename> argument% F6 z) T9 B7 L9 ^+ U% `) G
- ( (entget ename) ; If object is non-deleted
6 y9 S+ _, k5 i) |1 ~/ j - (setq ai_seltype 3) ; then return its ename.; B* n8 j7 G3 y3 ]1 e- L @, ^
- (ai_return ename))))0 A# H b0 }+ u9 u: v: j" b
- - e! W) h1 X. r. Q
- ;; return auto-selected , see ai_utils.lsp! N/ M: N0 G' e! n, t" H5 ?
- ( (ai_autossget1 "\nSelect one object to modify: "))
0 N5 c1 @+ _ M. L8 Z( |0 _7 D
" v: Y5 _. K$ V# r1 S- (t (princ "\nNothing selected."); y* `. f& I% x9 ]) s
- (ai_return nil))
* O. y# [; ~5 E2 |5 Y8 w/ P% d - )
! i$ |8 T z1 Q! Y# H4 L% b3 [ - )
7 u2 i5 Q* Y+ F# P( p
, C# m4 b( p$ [: K* H- ;;; ============= Command line interface function =======================$ F# B, l9 b* D
- " B* B. R$ Q: ]; E
- (defun C:MMO ()- Q, x- s; U2 N( Z E
- (ddmodify nil)% Y# |3 B4 p1 h- L# v2 x5 u7 A3 Y
- (princ); t6 h K" o" V3 Q% Z, m K |5 L
- ), c% h8 r$ ^/ C) K0 c/ S
- ( }2 L0 t5 W. w5 s8 ]
- ;;; ================== (ddmodify) - Main program ========================
* I# Q. D- a+ Z5 E6 {0 { - ;;;+ u: j3 h8 }) S* e: V6 S& R! Z
- ;;; (ddmodify <ename> ) D0 c- _+ P; L' w" y) c
- ;;;5 P. I& o k5 i: n, j
- ;;; Main program function, callable as a subroutine.. c( G: ~% {/ c5 l) w+ q
- ;;; k1 G$ V1 Y% w% O+ c' G& _
- ;;; <ename> = object name of the object to modify.% j% R) ?6 S u4 H% {
- ;;;
2 T) b" v2 b( a3 V. D! z4 \ - ;;; If <ename> is nil, then user is prompted to select! l2 h0 D3 T+ @9 X5 n
- ;;; the object interactively.
" H/ R e8 ]0 C) ` - ;;;0 ~1 e' n5 R' _2 z& @. O. m0 u c
- ;;; Before (ddmodify) can be called as a subroutine, it must4 v/ I- H5 ?% l% j9 T9 X2 q9 v
- ;;; be loaded first. It is up to the calling application to
( T4 s5 x" L$ a* u+ T0 [% A% ^) }$ O - ;;; first determine this, and load it if necessary.
) j: i3 _" ?0 P% r% \2 b - 5 i: z- n6 z! z0 Z. t
- . Q( W$ i3 S' h: i
- (defun ddmodify (ename /
) Q$ h+ P5 v7 D2 ?( s - 2ndpt ell_calc_area move_pt1 templist1 X- T5 _( H' J8 q' {
- add_mdash ell_tile n tempmod7 Y. D, J( h" _
- alipt eltscale name tempst_ang1 A; }! F( F c8 O! T6 v
- ang eltype newpoint test_ok
) _1 T; X" E/ u2 w - arc_calc emod next text
. D9 I! y4 w w - arclen end_ang next_vertex th-value- c) U0 t$ d6 o4 L
- assoclist endpt obl tile
4 @( O, x. `6 `: [) q8 T; d g# O - atprompt errchk off tile_rect/ k2 S! Z. i: `" m- l$ b7 k
- attag ethickness old_majrad tilemode4 r5 [ ^( }* g$ _9 o; L7 ]
- attprompt etype old-closed totang
+ ?4 ^0 F3 s) \% _8 N - bit extru old-closedm tstyle3 z. x6 o" x2 I% ~% d- J c
- bit1 fchk old-closedn u
8 O/ _- o/ r) m+ s( p. c; W - bit-10 first-10-rec old-elist undo_init
' y1 j# h4 r" |9 O. i# }( J - bit-11 first-10-time olderr upsd
# e+ C6 L( B1 G' B. h/ I6 }9 u - bit2 first-11-rec old-fit v
8 k- L0 ~4 d- q& o! V - bit3 first-11-time old-idx va: p$ a0 ?5 t$ r+ u5 A( c
- bit4 fit oldlist value
?9 X+ A1 }6 F+ G - bit70 frozth old-spltype ver_48 y% n$ L g6 t! P. D
- bit-70 f-vis old-u ver_ang11 k; V8 E: O# i A) j4 _
- bit75 fx old-v ver_ang2! S+ ^! h1 M8 D
- bk-up get_color on ver_col+ E t1 ]8 w; |3 N$ O: H0 K
- bkwd getcolor onoff ver_colsp
3 x" u( U/ |( i( p |- r5 } - boxlength getindex on-off ver_eangle5 B3 g' \" I; C
- bylayer_col getlayer patlist ver_hght
1 O' }; N L6 E' d8 H - bylayer_lt getltype pattern ver_majrad, F9 Q0 l* h8 N& S1 L$ F
- calc getthickness pltype ver_obl6 k1 ~ n" \/ t
- cancel globals polytype ver_pt1
* b2 H$ T9 o; f, U! [ - cir_calc ha pre ver_pt29 y' N* O" N" n/ z6 M- Y* g \
- closed ha-prev proplist ver_pt3
9 U7 O# q8 X; ~. K! C0 T2 B) c" E1 O - closedm help_entry pt ver_pt4
$ n v6 f7 i0 I2 A8 [7 | - closedn hght pt1 ver_rad
1 O9 h" m+ M* R, C9 a9 y4 l" y - cmd icvp pt1_eq_pt2 ver_rot: }9 m! T" G8 j( K8 N( N8 X
- cn image_add_vector pt2 ver_row
: S7 ~& ]" C* _3 N& R& B7 B8 T - cname image_clean_variables pt3 ver_rowsp
9 t( {5 c& Q; _7 A - cntl-pt-indicator image_cross_product pt4 ver_tag
8 U' w9 u6 P8 m9 [ j/ @ - code_71 image_disp_opt ptype ver_u
, n* J0 ^1 h6 ]* w5 Y - col_tile image_dot_product radius ver_v
4 O4 N/ l4 z* r$ \! m9 t - col-idx image_normalize_vector rational_spl_flag ver_wid
R2 a8 n1 A+ R# r+ b( }% R" s - colname image_rotate_vector reset ver_x1! p% x0 X4 v1 O I2 Q" f- n8 |
- colnmlst image_scale reset_flag ver_x20 Q) j4 g6 k L2 ]! v5 J2 u
- colnolst image_scale_vector reset_lay ver_x3' ]' a# ~. f" V
- colnum image_update reset_lt ver_x44 p$ ^& M& H: J* q4 I5 j' O9 o' ]
- color index reset_uv ver_xline_pt1
. b. i5 h$ v+ B( u" s& C+ S, E- a - colorname inv rot ver_xline_pt2
# l0 k; T; Y9 R, _! e - colorno item rows ver_xline_x1
% y, ? B3 O- D, ` - col-sp item1 row-sp ver_xline_x2
$ z; H4 W9 u! @, M/ f - columns item2 rrat ver_xline_y1
& k2 \: P4 M2 _/ }: ^/ Q3 z# p - con itemlist s ver_xline_y2
. m1 Y: ~5 N9 g v3 W - coord jlist set_action_tiles ver_xline_z12 z/ J5 T$ w8 R1 {+ a
- ctr jlist_act set_just_idx ver_xline_z2
) A( Y, B* G2 x& g% W0 U' G* k - cur-10-rec just-idx set_tile_bk-up ver_xscl- D% K" j+ K; W3 N% p/ D
- cur-11-rec layedit_act set_tile_cntl_pt ver_y1
: e3 k. q2 _3 `% d% ?& n% m# }, @ - cvpname lay-idx set_tile_data_pt ver_y2
6 u4 l! G" g% ~% P - dash layinfo set_tile_dirv ver_y3% K$ H! x, V, c& d1 i9 e
- dashdata laylist set_tile_edges ver_y4$ |( @( E# N% H; s4 ?8 r
- dashlist laylist_act set_tile_endang ver_yscl
5 g, |2 x2 ]4 N0 W% T - dashsize layname set_tile_hght ver_z15 j8 u. @0 ]* F' f6 b( ^9 u
- data-pt-indicator laynmlst set_tile_icvp ver_z2
0 Y6 h3 ?/ Q, b: V( X) L+ n - dcl_id layvalue set_tile_just ver_z3
5 y7 t, t4 G* Z" }1 O+ e; K - dd3dface line_calc set_tile_obl ver_zscl
1 c9 t+ p2 y' @; R/ `+ | - dd3dsolid linetype set_tile_prompt verify_a
/ ]4 W, `. u5 V' Z; y. t - ddarc list1 set_tile_props verify_d, l6 t0 G) N* f% l# O H' `
- ddblock longlist set_tile_pt1 verify_i- X6 s+ M. V* Z4 n+ k
- ddbody ltabstr set_tile_pt2 verify_xline
; \1 N7 h% g0 ]* i+ k# [ - ddcircle ltedit_act set_tile_pt3 vfy
* |/ B J/ I0 z$ R8 A$ S - ddellipse ltidx set_tile_pt4 vi2 w; I" t1 c0 S3 H1 U4 r7 y; I
- ddgetprompt lt-idx set_tile_rad vlist l1 r9 F+ w. i6 J
- ddgettext ltlist set_tile_rc vname& U5 V! A. X) U3 N
- ddimage ltlist_act set_tile_rot vpf l. b/ T+ \, C4 `/ [
- ddimen ltlist1 set_tile_scale vpid4 O8 ^+ i4 o, U& S/ y) H1 `$ X; f
- ddleader ltname set_tile_spline_props vpldata5 Z$ |# y# ?; @9 g
- ddline ltnmlst set_tile_stang vpn$ ]! _ Q1 G5 P5 c. l3 e& S- a- _ R& h
- ddlist ltvalue set_tile_style vpt
- ? s/ Q* J8 ^ A - ddmline ltype set_tile_tag which_tiles
+ J7 h% x/ \1 T! h4 G, z4 c8 w6 F6 M - ddmodify_err m set_tile_text wid
f9 @0 b7 E5 R; }1 w+ H/ z( [8 u+ @' d' d - ddmtext majrad set_tile_vpt x4 k1 s' F+ A: t: \) V) K' @
- ddpline make_lay_lists set_tile_wid x1
; }$ {# x8 A1 E, }, t$ m5 a; h - ddpoint make_lt_lists set_tile_xline_pt1 x2 \6 a9 a2 h6 Z
- ddray mdashlist set_tile_xline_pt2 x3
5 l" s) g) [0 Y/ x6 B- T ] - ddregion minrad setcolor x4
$ H, ~6 w- x! M q- r1 A - ddshape modify_3dface shght xdlist, x' z2 }! S% f6 ]: x& F- a
- ddsolid modify_3dsolid showpt xline_pt1
* w( U" b! q, S$ X' T# s" B; ` - ddspline modify_arc size xline_pt2
# f1 L9 O. `' U - ddtext modify_block slist xline_x1$ i" k( W6 _0 }0 a
- ddvport modify_body sname xline_x2
5 t& y5 C4 ~! M( o3 O) I4 L - ddxline modify_circle sortlist xline_y1
- @+ t- }$ @) U# t - denom modify_ellipse spltype xline_y20 `6 m. R' o1 K3 P3 I
- dialog-state modify_image ss xline_z1
6 G. l5 E8 y+ N% h( k5 h - dir_pt modify_line st_ang xline_z2
- {4 N* M: X+ A/ L. U; k3 X5 |% s - dir_ptx modify_mline stpt xscale
: A A8 @) K8 w" I - dir_pty modify_mtext style_act xx& d1 `6 Y4 m$ f/ `; H J3 W, l1 |" E
- dir_ptz modify_point style-idx y# B6 g8 C2 t+ P$ d. u
- dismiss_dialog modify_polyline style-list y1
% t3 h! I2 |, v - drawpattern modify_prop_geom tagval y28 s3 B6 P& C; B8 \3 L
- echo modify_properties temp y3: K, e7 S6 K3 U. ^& C
- ecolor modify_ray temp_color y41 ~+ V2 n$ g$ h& ]5 y% ?( v7 s) b* ~
- edge1 modify_region temp_dir_x yscale
, L& O. L9 D/ E: _& P - edge2 modify_shape temp_dir_y yy
" |8 G/ O; `2 Y( x3 {' n& v2 z8 ^0 B - edge3 modify_solid temp_dir_z z1: L) {5 C* J, h8 i( L0 h
- edge4 modify_spline temp_xline_pt1 z2
3 N( m- K4 A V. e/ S - edgetest modify_text temp_xline_x1 z3
: \9 A7 }6 d) q - elayer modify_vport temp_xline_y1 z40 P" D8 G* \: W4 b. b
- elist modify_xline temp_xline_z1 zscale7 h, }$ o o& q G
- ell_calc modlist tempend_eang zz. F1 z5 e: q# l( v9 N
- dir-idx safe_ddedit ver_MtextWidth xcliponoff
$ E- ^/ i3 G0 q$ u0 n% P. o - MText_style9 c* L5 @1 \* I2 j
- ): }; f. p+ j; n1 L
/ J) U$ ~$ t8 ]$ W# u5 W% |- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
7 a8 t( b( ]' j! _) k9 H - old_error *error* ; save current error function
4 l. }2 T7 [( W3 V# ^ - *error* ai_error ; new error function7 P- ~8 z7 R# z
- ) R' ~ c4 z, V* ~2 V
- 4 J' [# D, u- D0 e0 D6 n5 `
- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle& ~& @/ c+ `' u7 K0 v) ^' e" s
- (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection, _& T* x5 }% v5 K: k
- (setvar "pickstyle" new_pickstyle) ; bit and set to new value
7 z; v7 Z" Q* @" v r3 V& T- F
( X9 {' s s2 p- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)
/ O9 @# r& T9 \% O# ]# | - (t 1)))6 g) g+ ~6 z& [ j1 L1 x6 W9 |+ R% |
- (cond; m b$ { e" p; S
- ( (not (ai_notrans))) ; Not transparent?
q% |. j: {8 h6 o* a - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
( U8 B" ^% m+ d6 F( |+ g( f - ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?
/ P1 D7 R. ]* f - ( (not (setq ename (ddmodify_select)))) ; object to modify? q& x. ~4 u/ ? c g
- ?: g+ j+ L9 z2 J- (t (ai_undo_push)5 A6 I* G& ^6 H+ k9 _: _
- (ddmodify_init) ; everything okay, proceed.
* f9 \5 I0 l% C/ A4 V4 P - (cond
5 l8 P' p' w8 d) i - ((= etype "LEADER")
9 h5 k" e7 F% v ~; K" E% z - (setq help_entry "modify_Leader_dialog")2 }$ H1 _' x- T; U2 T- i! |
- (ddleader): s7 N7 M9 l2 |) `; L
- )- }, P* }0 V* q* m9 j
- ((= etype "ARC")
( b7 @( k% J* i4 l9 I6 R - (setq help_entry "modify_Arc_dialog")
7 a/ n5 @/ x& g' e. a - (ddarc)8 B* o5 @2 Z1 ]. y
- )
6 B8 {# U# \# I8 l - ((= etype "ATTDEF"): @# I4 D+ _/ S# O6 d
- (setq help_entry "modify_Attribute_Definition_dialog")
) r7 Q [! v2 X: o - (ddtext)6 k; p/ W# v4 u; I% T9 M9 f, R
- )
) D; `! v4 W. r+ q4 B0 ~ - ((= etype "CIRCLE")0 b& G, v! b' @. d# A
- (setq help_entry "modify_Circle_dialog")
! W* q$ | T% H* y- l - (ddcircle)
# _- d* M7 N: y2 m1 n3 q - )& D7 S; a8 v' W1 |' @6 `. G) U
- ((= etype "ELLIPSE")
% x, j$ x2 J3 m% A8 h8 E0 r - (setq help_entry "modify_Ellipse_dialog")- j" H8 {4 `( p9 u" w$ i8 ]( f, z
- (ddellipse)
( O7 m- S% ^6 c4 n; t - )+ n$ j) w7 `6 s& f# D+ B) B" j
- ((= etype "3DSOLID")! [' {. x; j. T N. W* A
- (setq help_entry "modify_3d_Solid_dialog")
6 w1 N6 q) W% `) s* e - (dd3dsolid)7 ]- F; ^' J/ N. s* g& K
- )
" N$ R- |. M" z. {( u* H1 {. ?/ m - ((= etype "BODY")
6 R; e; X1 k8 v& X - (setq help_entry "modify_Body_dialog")3 k9 a* L7 ]7 s" W
- (ddbody)
' T7 u s8 R3 D( _( [3 @7 T - )+ n5 v/ \) Y7 W0 J; Y
- ((= etype "REGION")
0 ?. q! Q! [* ?; n+ q$ c5 ~1 v - (setq help_entry "modify_Region_dialog")' k4 s" X- }4 t, m0 | Q
- (ddregion)9 E* y6 C) V' V1 _
- )
" c5 I" |* z+ Y, u9 z8 ~ - ((= etype "HATCH")
6 z N1 O! K9 G" j, C4 e+ | - (setq help_entry "modify_Hatch_dialog")1 E) J6 b& ?7 L) Z3 j* O' h
- (ddnewhatch)
( }. H* q, b) B! l4 u7 L3 r - )' ?! ]- m& j* K% p4 c7 I
- ((= etype "SPLINE")4 f3 V* S; \) [7 W4 C! F; ~
- (setq help_entry "modify_Spline_dialog")9 }3 `+ ~! m2 e0 q7 k9 X1 d4 ^9 @
- (ddspline)
' I; p( x* z/ C* U - ), ]# |" B/ j2 d S
- ((= etype "INSERT") ; see ddblock for help_entry
1 e6 u* Z' I6 Q& h# N0 J+ F ] - (ddblock)
3 M/ v% ^! I, h0 I - ). O* \% x e& _+ Y L6 l" ?1 D
- ((= etype "LINE")
- V; O T' ?8 C6 C& A+ y - (setq help_entry "modify_Line_dialog")( N; h* b% e! @
- (ddline)
1 Q' {2 F3 j+ D( R' k! A9 X - )1 u8 b+ F4 ?* r/ v9 R- ^! F- n
- ((= etype "MLINE")+ J/ ]5 U, I& X! O& W& M+ j
- (setq help_entry "modify_multiLine_dialog"); D9 O k {- J4 X: j) d. d
- (ddmline)
. S; B9 j1 N! e) d/ B7 r: T - )
4 V2 ]/ t8 w- O! k" W - ((= etype "RAY")& G1 v0 C& w/ ^( h+ s) l; A
- (setq help_entry "modify_Ray_dialog")
4 g) ?! C1 U4 H" I1 T" S - (ddxline)) K5 X: V+ k* [$ n5 [3 v% `
- )) o6 W! ]/ ?" I5 ^5 y
- ((= etype "XLINE")$ \) [" i, L% m4 |) d. K3 P
- (setq help_entry "modify_Xline_dialog")% h% T; Y f2 y
- (ddxline)
) h! _) S5 r' K3 K: C5 L - )
8 A ~+ |$ ~& N$ Z8 M$ r" X# l - ((= etype "POINT")
Q; q; M, D5 ]9 n5 h - (setq help_entry "modify_Point_dialog")* }5 M) C9 z; w) V; O" E5 m+ k
- (ddpoint)
* x4 \0 R" a* {2 Z6 s t% V - )
0 u2 p# } y2 b% I1 e - ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))6 b+ W5 Q# R& i% |% h& M0 q
- (setq help_entry "modify_Polyline_dialog"); R5 Q+ O1 K, p4 I3 E, v$ x
- ;; If a 2D pline, check to see if it is planar to the current& i* m; k* i. @2 h9 ~8 ~7 u+ j
- ;; UCS, reject if not. To see if the pline is parallel,
! h7 p0 Z1 W, H( I: I% q0 W: g, A. j" \ - ;; the 210 group (WCS) is added to the current UCS origin (WCS)8 y+ Z, A2 s0 `0 q
- ;; and then converted to the current UCS and checked to see if
2 r( q4 }0 |7 c% t2 i9 f - ;; it is equal to (0,0,1).
9 l3 F+ m! j! d$ m# W1 L3 N$ W - 5 d7 [& {9 R* |2 [
- ;; Incase the 210 is default and not in the dxf list., |5 J% v" K8 r3 O
- (if (= (assoc 210 (entget ename)) nil)
, ]6 [9 D: x- g5 O! ~6 v0 q - (ddpline)
$ d3 B: T4 M9 c! B) ^4 q5 B- B- t - (progn8 K1 j% K, H9 C$ @* P
- (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))9 k' h: H$ x& U4 ?- U
- (not (equal '(0.0 0.0 1.0)
" _$ J e4 t) E/ W - (trans (mapcar '+ Z3 g; e6 h2 c) ]& K: E! i
- (cdr (assoc 210 (entget ename)))3 ?7 R, }" [ K
- (trans '(0.0 0.0 0.0) 1 0)
4 L0 S/ V* j; B - )
) v8 x% x. d- s( R/ t# {) ^ - 0 1- P3 {- k- F2 n6 h
- )" f& F, w! B" r( r6 H7 H: [ k: O
- 0.0000000001 ; fuzz
6 Y7 L) e# u# K5 L6 g - ); K* q) }4 a: @! c7 H
- )( ^6 o x. b$ a- Z2 ^, F
- )- |$ q+ {: a) x5 e1 B3 _: G3 j6 K& d
- (princ "\nThe 2D Polyline is not parallel to the current UCS.")
# P6 v, I9 h! m' U. N - (ddpline)
$ \" c: N/ J! E+ } - )
# j! N; n) S* R* f - )" @/ q z" J. H/ ?, ]* z
- ); K5 k1 D; \; I6 j; r. k
- )
2 K# N! A C) H- I) p3 z
, _! p8 N0 j" T4 I/ i1 h- ((= etype "SHAPE")
9 D* {9 ]* V: @/ n# f' C - (setq help_entry "modify_Shape_dialog")# V+ t( ^5 n. C# L
- (ddshape)
. R3 M6 a( ]+ m# V" x - )
8 ]3 O: n x+ `) a' W# O - ((= etype "SOLID")
% L J- e9 x, A/ c( d; m- o$ I - (setq help_entry "modify_Solid_dialog")
1 ^8 l. r7 D: b7 P7 }9 e0 A - (ddsolid)% c# _* h a- w+ D0 C) F F5 H
- )6 D* G" P/ h1 `; G& Q
- ((= etype "TEXT")- x! j- x3 I4 x* s& ]
- (setq help_entry "modify_Text_dialog"), h/ L% e* r }
- (ddtext)
* J* r+ t0 {5 V( m; V4 S9 X: @ - )
! j" q" `/ }: D# A& s) O - ((= etype "MTEXT"): O8 \- ^- ]* F W% g9 [( C/ E
- (setq help_entry "modify_MText_dialog")
' M# l. S* N1 z: } - (ddmtext)0 a& n3 M; j7 A9 P* ?
- )2 ]- c/ J$ T3 i& a
- ((= etype "TRACE")3 o( x5 V3 p1 J* g
- (setq help_entry "modify_Trace_dialog")* F. j: u; q1 R4 }& p2 L/ Q* j$ l
- (ddsolid)
! t9 n9 g% U! Z7 a3 O1 w% V - )
' B1 K( |7 d1 S" j' D - ((= etype "VIEWPORT")* G5 K: V4 c4 V
- (setq help_entry "modify_Viewport_dialog")8 A6 N, Z O& l0 S; S1 Y; I1 u
- (ddvport)3 H7 G# m- J9 u6 g2 ^
- )
* B+ X' T$ N- d - ((= etype "IMAGE")6 |! T X" e# Z9 H
- (setq help_entry "modify_Image_dialog")
2 U& U: {8 T- P - (ddimage)
" M) c$ N4 ]9 @) F1 Y4 g! M% B$ j - )% ~+ ^* P6 c' G L: e7 j9 F
- ((= etype "3DFACE")
& J5 A1 a( d5 i; @7 Z/ U - (setq help_entry "modify_3D_Face_dialog")
! ?( B1 y L, e: @ - (dd3dface)
5 {6 u) E& X& @& d - )0 \5 t1 r( N/ p
- ((= etype "DIMENSION")
$ B$ l5 A, V% g$ x5 @" ~" A) G% O - (setq help_entry "modify_Dimension_dialog")6 O5 L: a" C9 f) V1 M, \% f
- (ddimen)# Q- v" l5 V% k+ _ ^" l9 s3 R7 C
- ). t) T$ w, k$ o8 f: k U
- ((= etype "TOLERANCE")2 n2 M1 e, H3 g/ w* i) ^
- (setq help_entry "modify_Tolerance_dialog")
' ^! j. w' k& T2 p t c - (ddtolerance) r) s' _: f6 t7 p
- )2 P. S8 x8 ~2 h# `4 j
- ;; Fall-through condition changed by MCAD for MDT 1.1 release.
$ N% Q: w( i b7 d# w - ;; This allows DDMODIFY to work on any custom object or any new object type; ]* X& o: ? Z* x- T5 L4 R
- ;; that isn't specifically handled above by calling the more generic DDCHPROP.8 Y& P% }; a% J$ `$ q
- (t% _7 v: w# ]3 _& A3 v
- (if (and (not ddchprop) (not (load "ddchprop" nil)))
# l' x3 p" D7 A5 x! w6 q2 o - (princ (strcat "No dialog support for object type: " etype "."))); i/ y, k/ i. v- }2 g
- (progn' W2 @+ b) W( E
- (setq tempss (ssadd ename)). x5 t7 Z7 Y* @4 `
- (ddchprop tempss)
- d' Q0 V, D0 U! t$ T - (setq tempss nil)8 C" ~9 d5 k9 I2 N
- )4 T1 h# P9 I+ F7 X7 Y2 S$ Q7 L
- )
, b5 g- g% w5 x7 c: ]$ q, c' D1 Z - )% `, ]) O' U! t8 o% j' v
- ;; Previous fall-through condition.
! b. v/ Q& J! B1 B - ;; (t (princ (strcat "No dialog support for object type: "6 [; G1 }( y# i- X; m9 ^- M- N. }: a
- ;; etype "."2 G+ ^- \8 r$ U! S6 A0 T9 T9 p$ t- C
- ;; )
% g9 E) O, |) S$ {9 j) B - ;; )
& L/ y' v) l3 X/ E1 a. K3 ? - ;; )8 N6 V; M, }2 m5 v' D4 k
- ;; )2 k: r; \; [% |
- (ai_undo_pop)
" A1 ^9 U$ i; S. X( L0 I6 V$ D - )- o0 a( Z3 {* x: D1 l+ j) `
- )1 o9 L2 Y" c p- J
- ' ^0 ^) C, [7 p6 i9 w* I
- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle
; W& y, o( U W4 a& M! w - (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back
" ]2 l* V! H2 r - ) ; to what we started with3 c3 _3 t( Y9 B: H# M
- 2 k1 e$ f. g2 h
- (setq *error* old_error)
9 [* p, L0 ]8 ?$ L4 _. M - (setvar "cmdecho" old_cmd)3 e$ n8 Y) z2 H* {
- (if (not reset_flag) ; if object was modified, then0 @" T" b; Q5 }5 H$ s7 D
- (ai_return ename) ; return it's ename to caller. v$ l9 J% @% W
- )
! V3 W+ l$ z) d* X - )2 Z. b) T9 m2 V' f1 s8 i# t( V
- " T. _; C% E' t _( R0 ]" b9 H; I
- (defun checkForLockedLayer (ename)
" R3 ?* e. u! {# F$ `# g - (setq layername (cdr (assoc 8 (cdr (entget ename)))))
. ?) y- o8 G/ d( s( T! w, s R# y+ r - (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))3 a- O, M6 \# s3 g8 t7 M. E
- (if (= layerflag 4)
, [ j4 j( U) l. `. n: K6 g - T
/ f* _# x! s. v: Y2 y k - nil0 F8 g& q+ _; ?- b2 [6 p
- )0 }" B" a. \: m! `# D+ b
- ), T4 {6 D: @/ r2 }* w3 l! u
- 5 X7 {8 O6 @* K% Z. J
- (princ " DDMODIFY loaded. ")
; j$ n) P- k" c! k" t9 F1 ~ - (princ)
$ L7 H, P7 i0 X7 U - ;;;???;;;---------------------------------------------------------------------------------------$ g& p; o4 ^0 F/ O% R/ m
- Z5 @! {+ V+ ` [3 Q
- ; Next available MSG number is 8 1 y- U: @# q. _! o( L' B
- ; MODULE_ID DDUCSP_LSP_
0 Y, Y9 L' g6 _4 H* {: P - ;;;
& c8 I6 u' r+ P% D3 F - ;;; dducsp.lsp
; T) w4 Y3 s* E* |# N& E5 Z0 x I" k - ;;;8 j$ S( i" D7 q/ C! ^& m
- ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.
6 h- ]+ Z0 M" F2 i - ;;;( H9 [$ S/ n1 p t
- ;;; Permission to use, copy, modify, and distribute this software& ?4 u( l. L4 { n$ {7 i" z# T
- ;;; for any purpose and without fee is hereby granted, provided8 H6 ?0 ~" I3 x' C
- ;;; that the above copyright notice appears in all copies and
$ V9 z+ w( p5 V3 ?6 l6 R - ;;; that both that copyright notice and the limited warranty and8 d- z5 r* v. x4 c! p
- ;;; restricted rights notice below appear in all supporting. ~3 b# S& y2 ^0 o$ d2 g7 G
- ;;; documentation.
) B0 a1 B B# a$ T - ;;;
4 N, A# a4 ?1 x d3 @+ @+ K - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS., }7 C+ ]8 ^2 ]% B1 t, {
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
5 j' P& g. N# @! ~9 }+ \" i* F3 N - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.( t& d* m2 m# z# U
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE- A' b! e t9 U! \. _% ]
- ;;; UNINTERRUPTED OR ERROR FREE.8 J S P8 p* ^
- ;;;
) |) c6 l( H' K. K - ;;; Use, duplication, or disclosure by the U.S. Government is subject to$ @0 p9 A0 {. {6 O" l' U
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer4 f G6 v" H! S9 G( F# y8 m. W
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
4 z1 F* l+ O$ E6 Y$ e+ d - ;;; (Rights in Technical Data and Computer Software), as applicable.) U3 M& W! P6 S* y1 _8 ^! w
- ;;;
+ e1 R4 R4 F! G: {4 G G - ;;;.+ B6 Q- _+ d8 h
- ;;; C:DDUCSP - User Coordinate System presets dialogue.
/ F( I2 I+ R F4 s: { s5 l+ U - ;;;
/ L5 v5 X: A) _# M& ~ - ;;; Uses DDUCSP.DCL for the dialogue definition. The
0 y2 |' ^5 v; q9 x% p - ;;; slide images are in ACAD.SLB.
( ^- l) }$ q2 u! n: ?8 T - ;;;
; C& E3 ^ ~( M) y/ c - ;;; ===========================================================================
, f8 t- p @: q3 l1 |# | - ;;; ===================== load-time error checking ============================* L* d7 o+ W* \2 P% C; z" J
- ;;;. z' b" t& F) ]$ X5 @, D
- , a! \- `! L$ ]( {
- (defun ai_abort (app msg)" Z. k: Z3 @9 s' N0 S3 X
- (defun *error* (s)
2 j2 P. k. I) `: |' q( K2 q6 g6 L - (if old_error (setq *error* old_error))2 q- |7 Q! ?8 J$ H2 U/ X
- (princ)
\5 e3 j: p* L: I+ f' | - )
" C8 W8 Q$ o0 _9 x) n$ ` - (if msg2 i5 H+ M6 N0 d; M
- (alert (strcat " Application error: "
8 t$ K- Y9 U" z6 c: m - app: Z7 S! |8 c6 W- k1 s8 U! o
- " \n\n "
O& ]. D/ u- R) V9 h1 i - msg
# h3 |: p- R4 A8 Y' P6 C0 R, t - " \n"( g( e" X' Q9 p- ^
- )$ i9 h5 x: R5 f% K; x7 X8 x4 i
- ) ^. Y+ o4 ^1 M, T. N; d
- )& V- c* I9 H5 I4 \
- (exit)
, }7 W4 j( {4 C" s" V E1 p - )
9 G' j! V, W4 h: q1 Q - - E: y; r& L) z' \
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
2 i; Q; B& p# j. X - ;;; and then try to load it.
& a0 H9 V3 s2 a) e* n# ~/ b - ;;;
" F" P! m# ^$ R! \: m* T( @ - ;;; If it can't be found or it can't be loaded, then abort the# { \9 I9 c( z
- ;;; loading of this file immediately, preserving the (autoload)! k& h5 d& t7 W( E; u8 x Z
- ;;; stub function.3 I% f) @1 f: S9 z& a
- . ~" O! Y4 l. A/ }6 f4 O+ F
- (cond
3 _4 A' D) l5 p - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.6 N1 Y# L3 q( T& K+ H) B8 Z) V# W
- 9 m8 p6 S$ [1 @0 {0 O% @
- ( (not (findfile "ai_utils.lsp")) ; find it
$ u3 h, Y q( V4 {) b9 b8 \ - (ai_abort "DDUCSP"
1 l G( y) ?. z( B b1 d - (strcat "Can't locate file AI_UTILS.LSP."7 N7 T2 f* O1 n8 s9 K3 E/ a+ j- T
- "\n Check support directory.")))
+ S: Y! ]2 ~3 e0 r - 3 P1 R' ^ |5 c" m; @
- ( (eq "failed" (load "ai_utils" "failed")) ; load it0 r0 d; g0 u2 y' A0 @
- (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))
2 w: X, W! b4 S: k5 H6 N - )
- V! G3 S. o& E: ^# o; a7 D - $ {' E$ ^- i% r5 ?* H' W
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP% c+ L D$ M* ?" `) l
- (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses3 F6 [) ^( _$ |) Q+ R& V
- ) ; ai_abort's alert box dialog.
7 _5 t9 K! N* `4 v1 k5 Q - : z) W: }, o2 w: N& P/ M
- ;;; ==================== end load-time operations ===========================, |! z1 O! o9 ~' ~% L
6 h* C: `! |, s5 }2 N- (defun ai_ucsp_start ( / program)# H6 \& y% n* E
- ;; Get program name
$ T$ P5 h" H9 t' C- I2 w' `% a - (if (not (setq program (getvar "program")))" Q* ^: j9 j- w) g$ d* L
- (setq program "acad")
3 Q. S9 }: |- u- t$ y+ {1 F - )9 G; \- @& [. j1 c
- (foreach v0 '("world" "left" "cview" "top" "front"
2 l1 T+ a h* ]* J9 l- O - "bottom" "back" "right" "prev")
5 I" `/ G4 |) h - (start_image (strcat "ucsp_" v0))( [6 e4 r4 t- W/ g7 V
- (slide_image
3 q& S. T4 q# m% d - 0 0
G. P# }- @2 e$ w - (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1)
( _# h4 P. I4 Y% q - (strcat program "(u-" v0 ")")
; ]" O6 L3 _ F9 i1 d - ): W+ c1 Y3 T- w% F7 f3 o
- (end_image)
2 A: I1 f) J- w) `' r: t- w. u2 X5 D - )
4 z" B8 ^+ m3 M5 c% [, K7 F - )$ C% M5 Z9 K9 f* R" a) V
5 |) p7 L q$ S0 C5 m- (defun ai_ucsp_set ()( ~5 a( |! T! K1 E8 T/ V
- (if ai_ucsp_sv# T5 H6 q) f+ u* u. I4 J
- (command "_.UCS" "_V")4 |7 M7 E) \& M1 C; p. G
- (if ai_ucsp_prevs0 d# ?* y- R' E+ y+ h8 K
- (command "_.UCS" "_P")
0 E! A: t: F' w- o( N - (if ai_ucsp_chg
$ u7 S7 T6 D* \# X `( ^3 F# J - (progn& j4 P3 w4 l, K* \! O* h U' n
- (if (/= ai_ucsp_a "*")
2 `+ Q7 ^, x& a- p - (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))
6 a( y5 x7 u! t1 P3 a - )1 A1 u7 m/ Z" b" j; s% M
- (if (< ai_ucsp_pick 6)
+ @. w4 r/ g* y" G, o; z - (setq ai_ucsp_set0 "@")' A6 {1 C. b3 h0 c C" }
- (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*")$ M4 @+ }/ U% q/ v' W$ m! b
- )
$ L( V% Y) P! N' a5 @/ ~ - (cond ((= ai_ucsp_pick 0)
" s [8 e4 N& U - (setq ai_ucsp_set1 "0,-1,0"
% D3 z, Q& K& G - ai_ucsp_set2 "0,0,1", _- A* R, J3 b! n" H
- ): i2 Q# }- P7 k+ z
- )+ b' l* i0 A5 u& r; \& n
- ((= ai_ucsp_pick 2). f [6 ^1 O2 O% F/ N
- (setq ai_ucsp_set1 "1,0,0"3 H8 E) [2 D) n" I" v+ B
- ai_ucsp_set2 "0,0,1"
4 o' ?7 c/ |7 {5 ~2 V - )9 ] A: m$ Z; [
- )
6 _. I) r' B* T4 Z' z - ((= ai_ucsp_pick 3)7 t: ^) @; @+ y4 W+ T
- (setq ai_ucsp_set1 "1,0,0"! B1 s" ]( m7 F$ y; h
- ai_ucsp_set2 "0,-1,0"
! V0 H0 z% z" z! C) E P: r - )
, T4 `' [2 R/ J8 ]- P - )' @7 F/ I& ~1 t7 y5 g8 e' B
- ((= ai_ucsp_pick 4)
& s- g) H Z% h+ P; I2 G! U - (setq ai_ucsp_set1 "-1,0,0"
; l; J6 u1 n# C7 Y8 M - ai_ucsp_set2 "0,0,1"
7 @, R, M5 ?' S) L" z5 A& R - )
" m2 `# x6 w- @% Q! s; X: } - )
5 a' X6 X( P" m# V. u. o0 j+ E f - ((= ai_ucsp_pick 5); C# r( l) {( {$ c& \) A
- (setq ai_ucsp_set1 "0,1,0"
S: G* C4 T) m* N' m- `! S) ^$ V - ai_ucsp_set2 "0,0,1"6 b$ f. Q( ^, S2 e* ~/ _
- )3 k; m/ T& b5 S3 a
- )( ?8 t/ O2 i8 K0 y8 {* L
- (T
( g) S1 p& a Y9 M1 H3 @ - (setq ai_ucsp_set1 "1,0,0"& s' A- f' D1 ^- d: X' v
- ai_ucsp_set2 "0,1,0"
' ~% K. p# y* p% r( M8 O- L - )$ d; ]/ l( _+ j$ f0 ^
- )
5 t. N+ k2 y) A$ p - )9 ^6 D" [) d4 n9 h
- (command "_.UCS" "_3P" ai_ucsp_set0
9 W% z6 V% _( G" n - (strcat ai_ucsp_a ai_ucsp_set1) $ G9 C6 i9 }* k" [" M$ B P1 P6 B
- (strcat ai_ucsp_a ai_ucsp_set2)5 {; d2 m3 T: V1 p' H; M+ r; ^
- ) M9 @6 V+ y3 }7 Z5 e8 l# b
- )
- a& z& ]/ i, \$ k - )- f2 m& a: R |( t+ U# J* i8 \( z
- ); a# m ?& N. \# R" F; @
- )
0 ?$ x( k; \1 H - )
0 U( x. _4 v$ `
' k5 q' c6 d3 f4 Z- (defun ai_ucsp_p (val currtile)$ l5 u/ p0 G0 G* z) L
- (mode_tile ai_ucsp_currtile 4)
0 H: n y' ~2 |" Y! B; s* J - (setq ai_ucsp_pick val
& R$ m* n1 F4 K" S - ai_ucsp_sv nil) Z8 \( s# \2 K8 \/ E
- ai_ucsp_currtile currtile) y( k0 V% `" J' G, h: m' G
- ), F. v3 ?% i" u$ R# a9 J
- (if (/= val 1)6 h+ a J2 ^* O3 p& X, I; d0 n; X
- (setq ai_ucsp_chg T)+ |3 s% [& N7 o. J8 ^4 F' |
- )
% m6 o P4 f+ e" L, N( u. x O" y( F6 \ - (mode_tile ai_ucsp_currtile 4) a% _" ]8 h" K: z7 I( P
- ); I% e7 n5 L- D3 S) K
0 c3 J! q4 y, x: _$ r- (defun ai_ucsp_swcs ()) N, ~. x# S4 ~& D9 v) E1 P
- (mode_tile ai_ucsp_currtile 4)
4 w. w, p3 [, {/ E# X; l! G - (set_tile "ucsp_a_wcs" "1")
! D3 K8 s* N* O3 P" ]- ~& K - (setq ai_ucsp_pick 6
, D, e ]2 X( D) j - ai_ucsp_sv nil
9 S& I# q. O0 Y! Q/ U+ Z$ Y - ai_ucsp_currtile "ucsp_world"& {& R1 F8 } e2 l( x# L- L
- )) d2 H4 i R2 N0 o& y: [" g- Z5 l: p
- (if (/= 1 (getvar "WORLDUCS"))2 ~7 u7 {) J0 H" K
- (setq ai_ucsp_chg T)+ b4 J+ ?6 K' P; X6 P/ `, h
- (setq ai_ucsp_chg nil)( w7 U) c1 b$ U% r0 o5 I
- )5 V: C$ k$ ?! y3 n
- (mode_tile ai_ucsp_currtile 4)" g+ O4 }5 a+ u9 h
- )
4 }2 n5 _$ s& Y' [ ^4 q
0 V9 y) T: V+ D7 _1 T+ K* H; c- (defun ai_ucsp_cview (); I6 F/ Z. e: i# _9 {
- (mode_tile ai_ucsp_currtile 4)
8 u; Q8 }+ U+ F( }' e, y - (setq ai_ucsp_sv T 9 }& O2 h3 g# Q7 u$ r
- ai_ucsp_chg nil
$ z' w; X& R( J" Z# V5 d% o; O - ai_ucsp_currtile "ucsp_cview"
! ?' F' [ K5 E) l$ h- z - )
/ U/ o. Z6 s5 q2 f - (set_tile "ucsp_a_wcs" "1")% l1 A1 w5 G( a$ _) n% n9 g
- (mode_tile ai_ucsp_currtile 4)5 [' ]9 \9 m( Z1 V% m; z
- )8 h* k) ^* M& y
- 6 V5 |0 l# \# p* G$ z/ p5 J$ C
- (defun ai_ucsp_rucs (typ)* w& y- P0 O, a3 ?4 l/ R0 N
- (setq ai_ucsp_a typ)
x* B6 O9 w4 k: ` - (mode_tile ai_ucsp_currtile 2)! B: {* j' z$ Y- J& S& T3 k
- )% B' A5 N* F2 ?+ d
- H2 ]* @/ \1 Y, l2 d
- (defun ai_ucsp_prev ()
- L& {. j4 x' v# S3 _ - (mode_tile ai_ucsp_currtile 4)
) U% b! v* ^% v% ~6 V* Q - (setq ai_ucsp_prevs T
6 V0 g, L" U) Z8 o7 q7 D0 F( T - ai_ucsp_currtile "ucsp_prev", a% m7 \9 p9 r4 F& r( v
- )1 ]; T" K% t) U5 v; h7 C
- (mode_tile ai_ucsp_currtile 4)
& J# D5 K* S$ v6 j' ?$ s - )
& p- [3 h* D# S - V8 a' c r, c, K2 t
- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)# a, p" f1 S# k0 m
- (if (not (new_dialog "dducsp" dcl_id)), {1 H d/ _& ?& y; I9 X
- (exit)' V' }- S1 q" b, \3 b
- )
$ i' `1 a: ?/ l' L0 k2 [# Z - + e# C! v4 b; O5 K$ l
- (ai_ucsp_start)" s; U3 j- @4 d4 e( ~
- (setq ai_ucsp_a "@" 5 u2 k$ v7 [- f. n6 L* @
- ai_ucsp_pick 2
$ y/ i/ T. M" M f, ^ - ai_ucsp_currtile "ucsp_top"3 U4 Z2 D/ F4 }" O
- )
9 h# W) P6 R" M0 l0 E+ Y9 b - (if (= 1 (getvar "WORLDUCS"))
6 \+ F% n+ [. G& O( l- |0 I - (progn
/ W7 _7 z( a* R) m/ g9 B - (set_tile "ucsp_a_wcs" "1")
' I6 I! H. q8 N& r8 a2 s2 [ - (setq ai_ucsp_currtile "ucsp_world")
1 Q) c3 l1 y2 v! j - )
$ z! {3 q6 r1 b+ e3 L - (set_tile "ucsp_r_ucs" "1")
* f+ |) H, a$ p9 a4 O0 g. q8 l - )
$ I3 T9 C* l. \6 U - (mode_tile ai_ucsp_currtile 2) e! S F, n; q7 p0 W; l1 b
- (mode_tile ai_ucsp_currtile 4)8 f4 G7 T; p2 j8 s6 T
- (action_tile "ucsp_world" "(ai_ucsp_swcs)")
6 e2 q+ }+ l+ n8 L2 z, B6 ^# t, S - (action_tile "ucsp_cview" "(ai_ucsp_cview)")
% C6 X) M4 d7 t+ p: @/ R( d7 _- D( i7 w - (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")1 a- U! Q% N7 ~ d8 L; W
- (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")6 G* d1 q, D2 N0 I0 k \3 v9 O
- (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")
9 `- p9 \* d$ h1 L- Y( v* M - (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")
0 f( M$ Z; V' Z: A" H - (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")5 l" Y2 q7 G: x7 U! U
- (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")5 ^3 e" }# q, e, @1 V# Q4 R
- (action_tile "ucsp_prev" "(ai_ucsp_prev)")2 ~9 p# s5 U( D2 H
- (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")7 O# l- b ~ g5 ?; x9 V: }
- (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")
' x! p5 d/ n5 A2 j+ \ - (action_tile "accept" "(done_dialog 1)")
" i; k7 b7 t* D( l% ~2 b - (action_tile "cancel" "(done_dialog 0)")
5 G5 {: [) s$ e - (action_tile "help" "(help \"\" \"DDUCSP\")")
& E0 m4 b2 w) X& g" @0 w3 u/ W( \ - (if (= (start_dialog) 1)0 W- i2 g3 G. C) C7 k* @( S2 w: G
- (ai_ucsp_set)
& p2 P" e9 q# M- N! j' s0 D - )6 d! b; E; E* @( t2 C
- )" l5 c7 R* y7 t. z6 q0 ^9 l) Z+ D3 D
6 p3 r' V3 s7 ]& d- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs % }3 F" D# W" K
- ai_ucsp_sw undo_init)
7 r s4 a H4 r - t3 M; C# M* X& G1 |
- ;; Set up error function.
7 I" K8 A8 i+ K3 b) I* M+ o - (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho
6 \: p; \3 A `9 n. X* O: }" Z - old_error *error* ; save current error function
# {2 z l& m9 P; B" X - *error* ai_error ; new error function2 k# _: I* u0 u* B0 f
- old_osmode (getvar "OSMODE") ; disable OSNAP for duration
5 S: ^& K- H4 c* n2 n! V$ o - )
* n# [" _+ F3 |9 {! R; k5 J* r
$ C, I- A J2 x2 V- (setvar "CMDECHO" 0); H8 e% ^$ P5 O+ |
- 6 ` P! G- F: u/ L
- (cond
3 @9 x/ G8 ~+ v/ y; m. v - ( (not (ai_notrans))) ; transparent not OK+ O: j! w: i1 z D$ Z% t* z. h
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?7 f0 l# z( A# j1 Y
- ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?) d1 `6 L& @9 G1 E" `
- (T (ai_undo_push)
. ]. p' |' K, U1 y% a1 i - (setvar "OSMODE" 0)* H5 ~- u3 G& ?6 P. L
- (ai_ucsp_main)1 e; h) I9 }$ P
- (setvar "OSMODE" old_osmode)+ B) m2 v, o# Q
- (ai_undo_pop)+ W6 G" i& D. h1 q
- )
# @$ x+ q, W& Z& ~$ n - )
# ~; g7 a8 \/ O: [ - * t1 ]; D' u$ k) x9 {
- (setq *error* old_error)
: o2 a1 U) n( h. Y- m. N4 I - (setvar "cmdecho" old_cmd) L2 i) Y7 A; {+ j6 l& q8 p
- @7 Q7 h* }" u( `% V# N! @: y; d+ _
- (princ)
+ g2 U+ S7 p J+ |: ?1 ]- q - )
" I+ a+ }4 D0 O9 S
: }) g, g+ I: k2 `. T- (princ " DDUCSP loaded. ")$ O4 y, j, Z5 h; _" K
- (princ)2 ]( `8 d3 \2 Z) N
- 2 v1 x- A8 o" E" d& m2 g! L7 _
- ;;;???;;;---------------------------------------------------------------------------------------3 T' r2 Z6 }( x6 {
- 6 h5 @( l7 u6 T$ n
- ;;;----------------------------------------------------------------------------
' }7 c4 \1 i- e. P5 q - ;;;9 k7 J, G+ ^, Z4 \7 ^9 c
- ;;; EXCHPROP.LSP
( a* b$ X8 v. f - ;;; Polyline and text modification capabilities added by : w$ H, c2 E- l
- ;;; Randy Kintzley . Z! B# e4 i6 Z% X; {7 k
- ;;;
: u$ t- K3 e# L( _9 c; | - ;;; Copyright (C) 1997 by Autodesk, Inc.% E; k/ F# J& i! n" q, k" B: h
- ;;;0 F' `: t( |/ h& q8 S, J3 r
- ;;; Permission to use, copy, modify, and distribute this software
. E* D8 Y6 o& T9 H& R4 b# ] - ;;; for any purpose and without fee is hereby granted, provided
5 a2 ^$ U% d, q - ;;; that the above copyright notice appears in all copies and% J5 I$ ]% N" k! ]6 M' }4 T" p
- ;;; that both that copyright notice and the limited warranty and4 n0 e) F" J1 s* j* I1 o
- ;;; restricted rights notice below appear in all supporting% \6 Y" i. n4 Y- n. a! ~
- ;;; documentation.8 |! [& i. o! W% @8 Q& z$ z
- ;;;
. J! K8 B0 m! Z1 D" b2 j- k - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.& g# z( ?' ]0 G- x
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF5 g( ^9 \7 ]* A7 |4 a
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
- q; Z6 Z7 \, M, F1 C - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE; p9 r1 Q% H& L6 ]
- ;;; UNINTERRUPTED OR ERROR FREE.
. M, k# n! d& c* J7 b - ;;;0 o7 O1 e* o1 z) }. y8 R2 V& S
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
1 n# @3 q( T/ n% r0 } - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer6 j4 V0 V* c0 c* l5 A) ]4 j. `
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)! _+ ^3 f, ^) N0 B
- ;;; (Rights in Technical Data and Computer Software), as applicable. R. ]1 }9 A# S, W
- ;;;
# I" B1 A. q) w. D o - ;;;.
2 t+ M. Q+ e. ?) d8 J5 O* R - ;;; 28 February 1997
- A' z- W0 L2 n( E9 ^( T- e - ;;;
3 C8 S( H$ c+ B/ Z' _ q- Z - ;;;9 b) [( P; f8 X8 q. `% `& d
- ;;;----------------------------------------------------------------------------+ r. T2 s; ^. `8 ]
- ;;; DESCRIPTION
, b- d; m' @ r9 c2 V( k - ;;;----------------------------------------------------------------------------
8 |: s; e+ H4 F- t! U* r; ] - ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This
% M7 E1 y7 g; O7 N, A0 k: r - ;;; command gives the user the abilitie to change several characteristics
$ H/ O7 i0 l- @( r- [ - ;;; of selected polyline and text objects.
3 Y7 e) r" U0 E. ^0 r - ;;; The style and height of selectected text objects can be modified
& g/ F1 K) a+ u5 E - ;;; (including text, mtext and attribute definitions) as well as, width and
+ M2 V9 Y4 H" w8 h' k3 e4 i& Q - ;;; elevation characteristics of selected polylines (includes lightweight and ) T, f7 H; `5 x( D
- ;;; traditional polylines.)
6 F( R; X) ^; ` F - ;;;---------------------------------------------------------------------------- h4 |& s2 W. a/ D( T5 I
- ;;;----------------------------------------------------------------------------
. d( e/ a* n" q( s o0 R - ;;; Prefixes in command and keyword strings:
" ]% K7 i, x( d" x - ;;; "." specifies the built-in AutoCAD command in case it has been
) T5 Y0 B. [+ e# J/ u - ;;; redefined.$ g3 s8 [% s( N0 [% S, ^
- ;;; "_" denotes an AutoCAD command or keyword in the native language2 u: ^; V' d; S% r8 ^0 v# \! q
- ;;; version, English.5 Q3 e/ q/ U7 Q" n4 R5 w8 e c9 y5 [. B
- ;;;----------------------------------------------------------------------------; G5 G/ G0 A2 k2 K$ Y
- ;;;1 y' m" A7 x4 W6 X1 {7 G
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3 U+ _( a8 {) I) {7 \5 O - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
$ t' S \3 d4 K1 S - ;Functions created as result of loading file: exchprop.lsp+ i3 }4 c2 s8 r( x* n0 V
- ; DDCHPROP2. _0 X6 u" ^" J: x% @- b
- ; DDCHPROP2_INIT" g) b/ d% b! G/ c+ o
- ; DDCHPROP2_SELECT
/ A/ d& w" O* S+ s - ;
! m+ e5 S7 Z! }8 i! Y! y0 H( o - ;Variables created as result of loading file: exchprop.lsp
6 d3 g$ c: n! G& P* R4 q; n - ; OLD_ALLOC
4 e+ n5 ?0 l- ~+ r8 b6 K - ;3 v1 H, O' e" h# Z8 Q( S. K- A
- ;Functions created as a result of executing the commands in: exchprop.lsp
* G! w" ?4 h( n" g - ;/ G9 `# N/ ~+ S* r' \/ ~! O
- ;Variables created as a result of executing the commands in: exchprop.lsp
4 A8 U) ?1 a0 s9 y- _ - ; AI_SELTYPE$ n- e) T/ d/ Z
- ; BONUS_ALIVE
( S9 C0 A4 j0 Q8 V0 y - ; BONUS_OLD_ERROR
, K2 A, X. v$ e. K7 |: C! p: ^! { - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1 a' X6 ]# c1 O' o6 m; |' f
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
8 `; s e+ n0 d/ P* z - 5 K, m& ^, i+ \' n
- ;;;
4 W4 |8 L2 @* D, V - ;;; Avoid (gc)s on load to improve load time.4 u* Q# v% L# c- {0 h
- ;;;( i( h% D7 I9 [9 A
- (defun do_alloc (/ old_allod new_alloc)
- t6 {, }% b+ x - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))1 O% ^4 n/ v; R0 V2 w( ~- R/ E0 M
- (expand (1+ (/ 4750 new_alloc))); C K- Z) ?$ n
- (alloc old_alloc)/ T5 K: W! h$ K7 `( ?/ C! O- k
- );defun
/ `0 s1 {4 }0 {7 s# Z$ U
4 }/ G7 k6 f. c3 M- ;runs at load time - rk
3 M% j. h. B- { - (do_alloc)
3 [, D: D: Q, G# M/ X0 ^ - (setq do_alloc nil)4 y# j5 d4 L( i" Y2 n3 ?
- ;;;( a- C, V! y& N4 D
- ;;; ===========================================================================9 n( O% C( Z7 u- j
- ;;; ===================== load-time error checking ============================
( ~, T" e7 W6 u& i" t - ;;;
3 h% w1 I0 g8 x& V6 K' K& ^9 f
# M. \* g6 A* \2 b! `6 m- (defun ai_abort (app msg)
3 s6 e% B* A, P, d - (defun *error* (s)
6 b3 _5 X1 r/ p - (if old_error (setq *error* old_error))7 o* ?4 n, l1 c% { _3 z6 {$ ^
- (princ)9 V, v4 A" ^8 u8 @# T& b! C v
- );defun0 h2 _- s, o% a1 m
- (if msg0 c3 L# k# @& M+ N: D* }* [% }- [
- (alert (strcat " Application error: "
i5 s. I; W: V" E0 L; L - app
4 }$ t# q* H l1 }+ _9 n) i - " \n\n "
8 a, W3 x+ u k6 z5 A - msg- S* n6 d! L) { J8 M
- " \n"
6 B+ H0 v: d8 i8 N3 j1 b - )
* z% A1 c9 y. N* b! n1 @ - );alert7 y! k. s6 a9 F
- );if" F9 `0 L3 y3 O# i9 }* O) t
- ;(*error* msg)
% Q$ W& R/ L9 C5 i9 _- ] - (exit)# h. R7 c# D6 c4 J
- );defun ai_abort
_$ e+ _7 q; I) S1 v
5 d6 X4 A3 t! B0 _5 ]/ c3 ?) t; \- ;runs at load time - rk
9 |7 ^$ x8 T. b2 e - ;(if (and *error* ;added the if wrapper around this - rk.1 ~: \# y6 ?; F+ _( Z
- ; (not old_error)
/ S& a# g3 q5 J- s% O - ; );and * A9 ?+ b& @" Z h i* n! v& ]
- ; (setq old_error *error*);setq
7 h- D6 E! p: W" e/ s% T - ;);if# h" ^, I# r" ^
+ g7 _- Q# y3 C A& v- : [1 v8 M' r4 u$ ~2 E
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,, Z( f( T+ V2 U" V1 d/ D) I
- ;;; and then try to load it.
( g* W4 w. K. Y6 S1 Z/ b w l/ q - ;;;- o7 I ~9 }3 F) o8 d9 [3 J+ T
- ;;; If it can't be found or it can't be loaded, then abort the
% y) B9 _1 G. G7 W9 V% ~8 p4 S - ;;; loading of this file immediately, preserving the (autoload)" ^, K1 I4 Y' _/ A, f
- ;;; stub function.
# W2 E- r2 v/ @9 t! }8 t6 `( O! F) H - . H( j9 h2 K4 g
- ;runs at load time - rk.
]8 F- N$ j& q) q2 U - (cond
! }1 Z" t2 R' f1 F0 J6 n - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.; Y7 e/ y, O4 h m2 @! }
- ( (not (findfile "ai_utils.lsp")) ; find it3 `7 a* W5 \ u
- (ai_abort "EXCHPROP"
D5 `1 I8 q; x$ b/ M3 W - (strcat "Can't locate file AI_UTILS.LSP."
( f+ v" z8 Z! }' g& c" e - "\n Check support directory.")
K; m# u8 D& R4 h - );ai_abort7 @/ T2 |/ u; y
- )* i7 S$ I! o6 U) i
- ( (eq "failed" (load "ai_utils" "failed")) ; load it% r+ l' M; n ~( | \
- (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")
% v0 L f) Y7 h# H - )
7 R5 ?* {/ a e2 S' W2 A0 j; L - );cond close, e& u4 ^! X, @8 |3 W9 N
$ O6 u! F+ H7 r- \( d- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP `( I2 S+ @; o7 Q8 U1 n% d9 P
- (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses) d) ?) I: A$ w9 x7 _
- );if ; ai_abort's alert box dialog.
3 L2 }. c' `4 P" ?- F5 S - / O$ u' ^# C( ^
- ;;; ==================== end load-time operations ===========================3 P: Q+ m8 ]8 r3 b7 E
- ' R! C; X6 u4 P; V4 w m/ Q7 d
- ;;; Initialize program subroutines and variables.1 s- I) E6 U3 \: L4 L
) Q! k: v Q0 I- (defun ddchprop2_init()! h3 c; _7 C% H" C
- : e4 J8 e" ]/ w
2 W: M3 a8 {9 M1 [2 M" V- / U/ i% [2 F" ?
- ;;) Z3 O% K% a3 z$ O
- ;; Define buttons and set values in CHPROP dialogue box
+ B# d( V4 s% H. _7 J! u - ;;: [) s8 ~' Y2 C4 b
- (defun call_chp2 (/ cmdact p1 p2), e; f( N% G6 u
- : r5 b1 E; l: Q, x5 _8 w( i9 |1 P
- (if (not (new_dialog "ch_prop" dcl_id)) . Q( y% b" @7 b$ c1 U
- (exit)) I* K- n( g; e1 R" F
- ), h! D, U3 @/ [$ q& H# O! k
- 5 D0 {* ]( m: T1 k* ~) |& k# B
- (set_tile "error" "")
9 N; l% [3 B9 @0 G9 M - ;; Set initial dialogue tile values
9 ^& ]2 f% ~+ U - (set_col_tile); r% b# s t0 A6 s
- (set_tile "t_layer" elayer)
$ b- i/ k$ Y! ?3 R- r, d
4 r# B& p: \ \% |. j* {2 u- (cond! L; J/ u$ Q9 Z1 |0 e8 H
- ((= lt-idx nil)4 o- x3 A1 N% e' v. G! Q9 _) n
- (set_tile "t_ltype" "Varies")
W/ ~' F! r$ r - ), | o: h4 A) n5 P" J
- ((= lt-idx 0) ; set tile "By layer & layer linetype"; h' b+ @, S4 b# k" n
- (set_tile "t_ltype" (bylayer_lt))2 ^3 X' B3 q, l0 W2 z" j+ C
- )
8 f& c3 ^8 a2 `. H5 x - (T
) m* R& ?) x! s* x5 }% X2 ] - (set_tile "t_ltype" (nth lt-idx ltnmlst))' y1 e7 `5 N! E& W
- )
( s4 C% v- k. U. A - )
% X3 K+ Y$ U( f3 S& i0 t F" T) O S
4 {0 h, l% w2 R9 b! Y- (if (or (= ethickness nil)
) a' \6 l( I0 K9 M - (= ethickness "")
4 ~5 g# p# y' }# g+ x' v/ | - (= ethickness "Varies")
; Q7 E3 C4 |& M - );or& ~" V Q, e8 [7 h, Q4 ^
- (set_tile "eb_thickness" "")
6 ]' m5 z7 Z1 H- K- W' C - (set_tile "eb_thickness" (ai_rtos ethickness))! ~, B: h. F8 G' S" ]& @& q* `
- );if
/ ~1 L2 v( ? H/ D |2 ? - (if (or (= eltscale nil)% H% G; f: A# C! t, `; r5 R
- (= eltscale ""). I5 p# ?% n+ Z7 H' o* }: C$ r
- (= eltscale "Varies")/ B% u' _' x a% l$ H2 X e F
- 2 `" G/ W6 g; z! u* {) k& M* y
- )! k( y6 u3 A$ F5 i8 Q b' H6 K
- (set_tile "eb_ltscale" "")
9 c. ^) g& W: X+ p& P( s - (set_tile "eb_ltscale" (ai_rtos eltscale))/ ~6 D1 s. E. v/ i5 e" N
- )7 L; e- t$ q/ v u! ?1 o
- (if4 h: T5 Q: U) z* z3 _1 L
- (numberp ewidth)/ L" Z; g4 I& F/ G8 B1 ^
- (set_tile "poly_wid" (ai_rtos ewidth))
) X0 V0 ^2 r5 ?/ x* H: i8 Q - (set_tile "poly_wid" ewidth)( t6 H5 C$ ^) k1 B* \& [1 I
- )" q2 Z$ g, I. {9 N' |
- (if
) [: h) ]% l/ R0 }6 B5 J - (numberp eelevation)
# A- t# P5 a$ N) O! } - (set_tile "poly_elev" (ai_rtos eelevation))! ]$ G4 L5 L- |: X5 H
- (set_tile "poly_elev" eelevation)
4 R0 @0 y7 B& B9 @ - )4 T0 J( @- m- j8 A
- (if
# |% E0 p; b* C; N - (numberp eheight)
9 n0 f# |0 ~& A7 H - (set_tile "text_hgt" (ai_rtos eheight))
' ]+ s" f3 y% K. |$ x - (set_tile "text_hgt" eheight)$ I# l# d5 s& H+ l% ?( Y6 F4 Y8 V/ g' W
- )
2 y5 h/ g& R& ?! f0 b - (if (not estyle)* Q( v' i' n4 C& ?; Y# {
- (setq estyle ""); U6 Q" r" [6 ?
- );if + c3 L4 G" i; ?" f' ?; Y' A+ m
- (setq hair_style_list (tnlist '("style" 16)));setq% C- n2 V& `$ j" V* _5 f H
- (if (not (member estyle hair_style_list))2 `. r" g+ l$ c2 H" A! z% q
- (setq hair_style_list (append hair_style_list (list estyle)));setq
/ i+ {$ U6 p( a. ]+ t& y' O - );if
7 C s! J' o* n' ~3 H# x; L5 C. ^
+ ~- S3 b* I: I1 ]: Y" j' i- F6 v- (setq hair_style_list (acad_strlsort hair_style_list));setq
, Z6 e( ^8 T. X& w+ ?. q9 v$ U6 f - (mpoplst "text_style" hair_style_list)
$ T7 {2 q1 q# c$ @+ }3 w - (set_tile "text_style" 9 G, `! J' U. p7 R$ g& ~7 P
- (itoa (position estyle hair_style_list))
' x0 p" F8 B- x, Y8 b9 Z - );set_tile W P4 {8 D6 k% Z, t7 i/ b8 ^
- G' W! c0 C* W+ l( ?' a- ;; Disable tiles if need be... ;@RK
3 W$ W N3 E) O- @' [+ J) K8 s - (setq a 0)9 d ~: j( \4 f3 a( i) z! [0 u
- (while ( < a (sslength ss))
. L" q+ D' H( P/ S - (setq which_tiles4 g+ l# E' M! u& N5 G+ F" u
- (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))* Q$ L3 ]2 y1 W; z) k" z8 h
-
$ N% H2 y' \( U+ I1 T! n ^ - ;; If all fields are enabled, don't bother checking anymore.
! O& u- p; [3 h/ K: o - (if (/= which_tiles (logior 1 2 4 8 16)) `6 R- ^" m- P0 ]! [1 W6 g
- (setq a (1+ a))
: F# k+ @! S+ O' F7 a - (setq a (sslength ss))
! V( s" R. d5 G- M g% f5 ^ - )
8 |$ b/ M: Y1 S& A, b - )* r6 f q6 g0 ^3 ?
- ;; Layer Button and Text Field
0 l U% A7 I9 w" ^ [2 L+ } - ; T+ r0 Y* y: s3 l( \
- (if (/= 1 (logand 1 which_tiles))
2 I7 D( x% w" D; A) b - (progn
8 O) ?: ?0 ^" c, T" ] - (mode_tile "t_layer" 1)
* o! M( C# u8 A" A. D9 d4 {1 d - (mode_tile "b_name" 1)$ |: s: s$ d- E0 j
- )! H4 s$ S% {/ N3 u. e
- )( |) i* X, w O+ Q( F
- 4 Z9 L) | j" u2 x
- ;; Color Button and Text Field
! |) v5 |# r) D) e! o - (if (/= 2 (logand 2 which_tiles))
' e: x& v" @- N' _ - (progn
% l- u0 \4 F3 [' s$ e - (mode_tile "t_color" 1)! y) H7 E9 B+ }* R1 ?$ g" N
- (mode_tile "b_color" 1): U0 I" \6 A. c: ?$ K; x5 F% F
- (mode_tile "show_image" 1)
; D8 f8 a" s- W - )4 d7 o+ |$ v; x) b' Q, H. ]" Y
- )- J/ ~; S+ K& Z( F0 P
- ;; Linetype Button and Text Field
7 E) l8 _/ k1 p. p: [ c - (if (/= 4 (logand 4 which_tiles))
# z3 t( h0 X* F; p' l1 H - (progn+ P& @: W I( ]6 K+ n) A; w3 b
- (mode_tile "t_ltype" 1)
* Q( P/ M: j; ^! G4 h" B$ @ - (mode_tile "b_line" 1)9 ]5 t$ p$ [7 E2 ~) d b4 N, V, ~! o
- )
; O9 r! |' P. }8 o( h! A& F - )+ w9 L! M) V; Z9 U% ~* y
- ;; Linetype Scale Edit Field7 d3 R4 l9 ]4 C3 @7 X
- (if (/= 8 (logand 8 which_tiles))( E( C/ w" G7 E; Q9 e( k
- (progn
# g2 k0 B5 w7 H6 m3 |" a W - (mode_tile "eb_ltscale" 1)
$ A2 Z* S% r1 Q: m( y' K3 _ - )
2 C: _: g' Q; o1 ?$ h9 `# j% C( T - )! |& I4 M; s: @
- ;; Thickness Edit Field.
# v2 v# W0 M3 m& N+ \7 X - (if (/= 16 (logand 16 which_tiles))
3 }# U9 m* A7 W [ - (progn/ B* q' T; C, W$ Z
- (mode_tile "eb_thickness" 1)! N G' x, t m2 S( _; G
- )2 _- p2 k4 z, g" P) k: \
- )
o& s3 W5 Y% n3 W9 t
+ a1 R/ `! ?6 Z- ;; Polyline box and tiles @rk 10:05 AM 1/30/978 S+ b) F+ U2 O& R- i+ {! ~) D% D
- (if (not (= 2 (logand 2 eflag)))% }, y* D1 y, \, C0 Q5 @
- (progn
5 ^: V3 w* Q3 x5 m6 V! ~: m - (mode_tile "text_hgt" 1)5 Q/ v/ G! ^4 \6 Q5 W
- (mode_tile "text_style" 1)% @1 U! s# {# N, d7 k
- );progn6 l4 b9 h' M/ N1 Y' o
- );if
+ L2 P9 X; e& [, p+ I* V/ v - (if (not (= 1 (logand 1 eflag)))
7 T$ g& c" o4 J+ N6 `# O5 i - (progn $ c: A7 |( ^# v& N: ]& @ ^5 n5 q; e- l
- (mode_tile "poly_wid" 1)
1 ~' O0 A. G1 c3 c3 A3 j$ J - (mode_tile "poly_elev" 1)
+ D0 f3 u$ J) x I - );progn then disable polyline fields
3 S4 c: C X$ K1 k: ] - );if
, G* X- V( N/ Q' ~" m) L
2 T2 D$ W; T; G' p; E1 Q- ;; Define action for tiles
7 o5 [% n; y3 B3 X8 x - (action_tile "b_color" "(setq ecolor (getcolor))")( k2 r; T8 @0 M7 _9 O
- (action_tile "show_image" "(setq ecolor (getcolor))")/ w$ ~; F) O/ { j3 P3 n
- (action_tile "b_name" "(setq elayer (getlayer))")
% q9 J/ u8 D' o) v- ` - (action_tile "b_line" "(setq eltype (getltype))"). N8 V. i3 d) ]( D: P
- (action_tile "eb_ltscale" "(getscale $value)")
5 i( |+ J* T/ z3 | - (action_tile "eb_thickness" "(getthickness $value)")3 x5 j6 e2 q# @
- (action_tile "poly_wid" "(getwidth $value)")
: L4 N$ _2 q, a8 z6 v - (action_tile "poly_elev" "(getelevation $value)")
1 x, d3 [( @9 y7 v5 }* ~& }/ ] - (action_tile "text_hgt" "(getheight $value)")2 q9 s2 x' B' \/ a( I7 Y
- (action_tile "text_style" "(getstyle $value hair_style_list)")
. G" U! v5 C ~ - (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")
) D# z+ X. k9 y ~8 R - (action_tile "accept" "(test-main-ok)")
0 Y& _4 g) ^! E9 }
/ Q: c, }$ n) A4 q9 K- (if (= (start_dialog) 1)
( P) H0 ^" z) E# I- q8 z - (progn
% S, l) S7 M1 t9 L2 c, W5 O, o - ; Update special properties for polyline and text selection-sets.
( p2 A4 T9 I, \& Z -
% D- a1 J% e5 ^8 j' M% k9 { - (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop
& @; Q& ?- f& k. q6 h) I! ^ - (or ewidth: g9 X. Y+ H1 }
- eelevation
# q& p2 Q2 x/ g# t - );or
' {$ z; x G7 K. Q" t- [ - );and
" n+ E/ q( o0 L) w, J- w3 s' l - (progn
% h. q- L' T. D& F$ v% W3 | - (setq ss-index 0
# E; I- x# V3 x - ss-length (sslength poly_ss)
0 ~2 c h: {# q/ u8 W - );setq
3 `0 x$ }3 G9 Q - (while (< ss-index ss-length)
: G/ M" U$ q/ m - (setq ename (ssname poly_ss ss-index): H/ \2 u! W- w% U
- elist (entget ename)7 `0 N; p. U; V" J
- );setq
5 [+ @; V# s; V0 j% t2 ^ - (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp5 L) G F& m4 U: f1 Q
- (if ewidth
+ }) l {( J7 J: w \* X - (command "_.pedit" ename "_W" ewidth "_x")
3 }$ J+ _! t. |: ~! Y% m( a( B - );if , E9 X$ @9 G. Y: K3 a' z2 n
- (if eelevation
5 Y+ h! j5 d6 u& K* ] - (progn4 H$ A) |% T( Y. t" V% H
- (setq p2 (list 0.0 0.0 eelevation));setq. _; E3 D( Q( c; b" ~# d; d
- (if (equal (cdr (assoc 0 elist)) "POLYLINE")
0 Z$ a4 D s$ U4 X9 t - (setq p1 (list 0.0 0.0
; r1 l2 f" ~+ \6 c. S - (caddr (cdr (assoc 10 elist)))7 b/ E- \- _' ^9 G, g$ I
- );list
, Q* S4 N4 e. h0 g3 M* u - );setq. B( L: r6 W" O5 h S/ d9 D% u
- (progn. x& L0 ^1 L( o7 P7 M% c' x; Z
- (if (assoc 38 elist)
3 e* o; H) F. { J, H - (setq p1 (list 0.0 0.0
& b7 e! l. q7 z) K - (cdr (assoc 38 elist))+ N* l- ?% A9 X' C7 \' T& g
- );list
7 k. T; W& B. I- p - );setq
0 j) h* D. b c1 L/ z - (setq p1 '(0.0 0.0 0.0))1 _8 N3 e+ f9 y: j; B
- );if$ h: Y' s6 X6 @) j
- );progn 5 V7 q+ [$ j# `# R* e* c
- );if/ U& @4 [7 l0 c6 f& m7 U
- (command "_.move" ename "" p1 p2)
* {8 {1 q. \6 Y# V# `' k7 v - );progn then change the elevation of the polyline
6 r% A! F* G x1 x. a; x# p& F. q - );if9 \9 k, w8 u2 X+ |4 e" e7 }* c4 G7 N
- (command "_.ucs" "_p")
' X. y2 ^1 Y- c9 f. Z, g - (setq ss-index (1+ ss-index))
3 V8 v a" M8 K7 s- k. J - );while
6 P/ a* {6 M% a: T! q - );progn then polylines are in the selset& N- v9 k0 A8 H G8 G
- );if
' z/ E) q/ g$ {, y8 m/ \: V( s! l( B6 S - (if (and (= 2 (logand 2 eflag)) ; text! }9 M- B$ C" B- f$ G
- (or eheight
" O, ?# V- R9 g" }0 V1 V - estyle
/ n4 d5 s( M/ }# a - );or, d( h( E, C5 ~# K: Y2 H
- );and) B0 t n- ~/ f& w V; n
- (progn
. @- r G7 y5 \8 r# A - (setq ss-index 0 ss-length (sslength txt_ss))
$ B0 d: c" S$ m+ E, |$ r( P - (while
) n- i+ `2 t+ J- M - (< ss-index ss-length)
) |* l0 v/ e& e! T - (setq elist (entget (setq ename (ssname txt_ss ss-index))))6 Y2 z! T: ]4 f5 T, M) ]
- (if (numberp eheight)% u) Q1 q* j- o1 p
- (setq elist (subst (cons 40 eheight)
; a# f* k2 V# W, b2 v) J - (assoc 40 elist)
8 w& W1 \) e4 _" Y3 j4 {! w. X - elist$ x& ~* H6 X# R/ V3 g0 Z
- );subst9 ?/ U; ]6 V3 N% E' q
- );setq
+ E5 Q. e# h% D: j- w8 Z' V - );if& W/ i& _# j( y( W' t! m
- (if (and estyle ;(not (equal estyle "")); a% |2 e) x1 D$ {
- (not (equal estyle (cdr (assoc 7 elist))))- o+ p7 ]/ g1 {: E8 J
- );and4 S9 j; p+ p1 p9 @
- (progn
, q0 F! o. p, I) v2 s - ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt 9 s6 b' M8 S3 a+ G: T/ C
- ;(if (equal "MTEXT" (cdr (assoc 0 elist)))
/ I5 E- ~) `5 @* W+ n) } - ; (setq elist (fix_mtext_fonts estyle 4 F$ f. D4 P' t
- ; elist
4 ` o( n' s U% ]. Y$ V. D - ; ): K2 x0 w) e# m4 I5 _/ K
- ; );setq then
, ?8 V, {/ v8 p- S1 u/ b - (setq elist (subst (cons 7 estyle)5 a0 F/ } g6 {; `2 N/ W U/ ^3 z! W
- (assoc 7 elist)( s% q$ b, ~( Z; h* ]; W4 _# ~2 z
- elist
) `1 x7 p8 _0 P2 k% s; j - );subst
7 ]3 v u# j' S; o( V - );setq else& }3 i4 y4 m: b0 F J
- ;);if
/ e) _( X8 I: F1 {! x+ T - );progn
1 e! B- Q* E9 ], c3 U - );if
% Y N# f1 F/ s& y( | - (entmod elist)
% B j j9 G8 c3 z2 A# t5 C - (setq ss-index (1+ ss-index))) U; w% i/ m3 s( O
- );while5 E4 Y2 F3 `' z; a6 i9 k, }
- );progn then
- O1 `6 ?1 ]) ~# L+ X1 h, Q - );if
5 {9 m2 g) `! t& u
( Y" u/ h% K" _; Z# J0 {- (setq cmdact (getvar "cmdactive"))
" j9 i( f$ M. e) E2 L. q - (command "_.chprop" ss "")
6 {5 W$ e0 ]- ^. ~! \; ~ - (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?
% `. o7 J9 E4 R% r - (progn
$ b% Y, u; U; Y/ x - (if ecolor
; D7 W. R6 V }# B; ?" ~ - (progn* @' t0 k. b# u
- (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK")) I0 X( i5 i8 }0 B# ~7 t
- (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))
+ d" n2 W' h2 i6 p+ Y( f4 N2 w - (command "_c" ecolor)
# c! k$ j! X' a) ~1 @7 j- _7 ~: d; } - );progn then
5 R# u+ j4 o$ x- E" q' C% r - )
4 S3 u7 k$ J/ g+ y& i: o - (if (and lt-idx# G$ z2 r7 j! D- k+ {8 n e
- (/= eltype ;|MSG0|;"Varies")# v4 J6 N* p4 ~1 @+ w0 _6 Z
- )
( [4 a! f5 V8 z+ r - (command "_lt" eltype)9 ?$ i4 |8 a) t3 o9 j& `4 o) P
- )" Z( P2 {& F `; C [$ j) k
- (if (and lay-idx 3 D: G- ~; E- N9 j8 y. e3 c
- (/= elayer ;|MSG0|;"Varies")1 `! W( ^0 a6 C3 \, J, [9 g+ H
- )/ I9 j2 ~4 ~( {4 t) w- m
- (command "_la" elayer). K0 v( F# N& Q# j
- )
+ l, S( v5 M; z( |& a. `2 m+ J - (if (and ethickness 0 C" R- q2 b' R
- (/= ethickness "")5 V3 _; |3 @# j
- (/= ethickness "Varies") - s* I* z: n9 B. X, {/ H i4 _
- )+ P4 J- G1 P% a7 T
- (command "_t" ethickness)6 ]! b) x! {7 y( Z
- )
6 @9 z& Q7 `- }" D% c& w& `: {; P+ _ - (if (and eltscale (/= eltscale ""))! b8 H$ l0 q: T e" V
- (command "_lts" eltscale)
, X! [1 [7 E9 T7 { - );if
: w7 u, ?( w9 D - (command "")! x4 ]" W! z; H5 y( y! J. S! r
- )9 A4 ^* u" x& c$ }- n: |: h
- (princ "\nProperties unchanged") ; CHPROP didn't like our SS set
% i3 |* R& ]: i7 {: g - )
/ W! S. F _ A7 r
) s' }6 T. h3 ^) o8 G- );progn then OK was picked in the dialog.( s* y& @8 g! L s5 \5 S: A
- ( s8 x, G9 j( ~: r6 m2 X1 W. e9 c
- ;; Fred GERBER - 25-AUG-94
1 A$ w( }0 H+ i% c2 U% | `5 P - ;; Don't print the "Properties unchanged" message when the user cancels
" Y" Q+ y' U4 b5 v - ;; the dialog because he knows that already (otherwise he would have
, X8 T$ b0 ?& B5 R H8 h$ N! h. I - ;; hit the "OK" button). Display the message only if CHPROP fails for+ x3 P( W- y* i [; q) m: X
- ;; some reason, because it is not the expected behavior of the command.
) t; Y" ?, q5 H - ;;1 R' l; p/ R, T0 a: l/ I
- ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")
2 V: E4 r/ k9 e" H. Y - );if$ _) ?( ^1 @4 T+ b% C4 \' R
- (princ)9 K9 X' i( e: ~4 Z5 s* `
- );defun call_chp2
* m: o* I8 X# | - ;;
+ T* M9 s# g" A+ x - ;; Function to set the Color text tile and swab to the current color value.
6 ?7 w. a+ w5 J/ o% e - ;;
/ Y) l) z( b$ ~" {3 s! V0 |8 H - (defun set_col_tile()
9 J) r2 e y! F* e - (cond
! y' X$ [. P& p& k - ((= ecolor nil)4 G4 E1 x- s- {6 y7 e7 }. w1 G
- (set_tile "t_color" "Varies")/ b: j' ?. @# U2 ~- x0 }9 k
- (col_tile "show_image" 0 nil)' l5 M0 ^* Z+ v/ J- w: r H$ f
- )( B: M9 Q3 X& U, W( v
- ((= ecolor 0)' x3 i" o! r, b( i- y
- (set_tile "t_color" "BYBLOCK")/ Y/ {# @! {8 y( H( ]
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white
: J) q+ H2 R' ~" J - )
2 ~% M' E" w9 O! p1 y - ((= ecolor 1)
0 d& h4 j2 i( N& v0 n( X - (set_tile "t_color" "1 red")
. z1 l. F" o1 v - (col_tile "show_image" 1 nil). w* f" ]3 E* @/ Y/ V
- )
+ I* p& W2 [! K% f" X$ L0 q - ((= ecolor 2)
- v; n* @' N( g/ s - (set_tile "t_color" "2 yellow")
1 V% B& [8 ?" a* h - (col_tile "show_image" 2 nil)
% ^6 a" T: o7 z) W4 F F* A: G+ B* e - )+ T# L* b8 b. {% {6 l: _" a
- ((= ecolor 3)+ t5 I' T0 h6 ^3 M; {% q& q
- (set_tile "t_color" "3 green")7 ^! M* e! q8 s# Q. p3 W
- (col_tile "show_image" 3 nil)
" l& q& W$ K2 x( g. O - )
5 ?! |5 T7 s( F* }& ?% n0 n) ? - ((= ecolor 4)
- V* d8 R" _2 _ S% i - (set_tile "t_color" "4 cyan")1 B+ \: M2 x- X% J9 R! `
- (col_tile "show_image" 4 nil)
! o. {# d; ~" V# W/ K; c - )
; { D& L; d N2 z8 \4 L: G+ g - ((= ecolor 5)
+ s( d/ n- h# ]: u G1 m& c" F - (set_tile "t_color" "5 blue")
/ n/ O) u2 N6 E8 J; p - (col_tile "show_image" 5 nil)$ @9 `1 W( F+ }" a* j
- )/ ~' Y+ k6 s7 X- r+ Y: t% Y
- ((= ecolor 6)
2 R8 P8 w4 B) R2 h4 d i$ y - (set_tile "t_color" "6 magenta")
l* i! S! a0 b y - (col_tile "show_image" 6 nil)3 I Q: ]. U S+ H' E
- )
* W- L% E: S& n - ((= ecolor 7)
$ c. b+ K5 U( |" y6 H - (set_tile "t_color" "7 white"): z) \ }( m0 `
- (col_tile "show_image" 7 nil)! c5 \0 Y, u# B7 e
- )
$ ~# X5 f, w) E+ ?" t! | - ;; If the color is "BYLAYER", then set the tile to A8 |# o+ ~ `# d. {
- ;; show it's set By layer, but also indicate the5 z9 a/ z0 E( B4 `/ T
- ;; color of the layer - i.e. By layer (red). m6 r$ |6 X8 g2 Y( }
- ((= ecolor 256) C1 _ l- I, ~, N
- (set_tile "t_color" (bylayer_col))
' s5 c; u8 s% ?: [ - (col_tile "show_image" cn nil)
& K, u/ f A3 N F - )
. ?6 a6 A2 L' @ - (T
! r F- w! a) B0 z3 B: H - (set_tile "t_color" (itoa ecolor))+ z2 ?5 m$ q3 A5 J( o
- (col_tile "show_image" ecolor nil). A" `2 r( U0 p
- )
! x, `, n( C1 W8 o) d( _9 B - )1 X$ G/ v3 A& |6 o" R; c
- )
( E% u7 w' _) N - ;;# e' ]& u) u6 E: B
- ;; Function to put up the standard color dialogue.0 r7 y' B0 ?" m6 h L
- ;;
1 Z' V" B0 D7 ]& B' N( n4 h - (defun getcolor(/ col_def lay_clr temp_color)3 J8 L$ y7 b) A5 W
- ;; col_def is the default color used when rq_color is called. If ecolor& _! l* d/ v' V1 F
- ;; is nil (varies) then set it to 1, else use the value of ecolor.
5 u g5 U1 _* |, `# B - (if ecolor3 _: S: C' V; g% z
- (setq col_def ecolor)
: W5 S6 M" k4 j: h8 ~ - (setq col_def 1)
* {# Y; X3 P) m4 i' K/ } - )
9 u# X) z( ~+ N - : a3 O3 B. w) d" j. `' H( \
- ;; If we're working with a single layer, get its color8 N3 T2 K# V! M8 K: x5 w! Z! a
- ;; for use in the color swatch if the user selects color BYLAYER.
" A0 i* q! \, f8 m8 s5 ^- n - (if (/= elayer ;|MSG0|;"Varies"); [9 Y; ]" M: B9 b& @1 X
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
# F5 J! ?/ L! s& Q - (setq lay_clr 0)
- n S4 [5 Z. q# o9 p - )
) y. A/ D0 n- f7 Q - (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))3 x3 X2 K9 G( \0 b( c+ Q- v2 N( U
- (progn
- w0 g. E6 [5 l; J3 y - (setq ecolor temp_color)
: F. V, E) p+ `8 c$ x+ v0 Z/ F - (set_col_tile)- X5 F7 b; d3 |: U5 E% ^$ }
- ecolor
z; v; C5 f6 f# N! p! J - )* d! f- w, |- i8 j( M) Z
- ecolor( }8 p5 h5 j9 v
- )
( B. W1 Y% N4 z' \6 |& R: x4 U - )
5 w* @2 e( y, Y7 x# ^3 J+ x - ;;# S$ `/ L _' |1 t9 ^# l
- ;; This function pops a dialogue box consisting of a list box, image tile,& r5 f8 s) m% B) ]1 V7 @( E
- ;; and edit box to allow the user to select or type a linetype. It returns7 R5 o/ X2 |) d7 c
- ;; the linetype selected.' E' U! i% t, q z
- ;;" w! R; u6 T1 H+ S. I4 Y8 N. a
- (defun getltype (/ old-idx ltname)
0 d* z1 j* P6 k. i- T5 |: Z - ;; Initialize a dialogue from dialogue file7 U P: t9 L0 Z6 G2 e/ _( n* k5 v/ j/ F
- (if (not (new_dialog "setltype" dcl_id)) (exit)); o2 U- C" k# G: U' j& e' }, W6 B
- (start_list "list_lt"); s" h& ^' v; }: F
- (mapcar 'add_list ltnmlst) ; initialize list box
/ A5 o( i: V& I4 q# c% {' D3 Y - (end_list)
7 w& j0 K! A" O d2 U) W - (setq old-idx lt-idx)
" d2 u/ p0 L" E# R% X - ;; Show initial ltype in image tile, list box, and edit box/ j( i1 f3 y R/ C8 R
- (if (/= lt-idx nil)( J! E7 D5 N9 |7 i' \" i
- (ltlist_act (itoa lt-idx))
/ ]4 t6 s# V% t6 A6 k - (progn/ y6 U# `* `- Y; v& l
- (set_tile "edit_lt" "")8 s+ o- M0 Q& _
- (col_tile "show_image" 0 nil). p# ?) K( y0 n8 [0 Q
- );progn else" p# J. y' y) R, o" k# v
- );if1 O/ f7 I7 F6 p; h
- (action_tile "list_lt" "(ltlist_act $value)")
0 c( D2 u5 d2 j1 Y - (action_tile "edit_lt" "(ltedit_act)")
3 o$ F; B9 ]! m' X3 S - (action_tile "accept" "(test-ok)")
/ c& Q, N2 b' Q% X" I6 N6 f - (action_tile "cancel" "(reset-lt)")+ F" v8 o; y! E- r! ?3 z. ^6 a
- (if (= (start_dialog) 1) ; User pressed OK( w0 h7 P1 t7 A8 I1 Q1 Z
- (cond
! K3 p, c4 A' e8 C, O( x. t; M3 x - ((or (= lt-idx nil)
$ D6 v, L, z! }" F( f/ ` - (= lt-idx (1- (length ltnmlst)))( i9 J6 e+ y% _1 a0 A$ G
- );or
2 A* I$ Q! d+ [1 s - (set_tile "t_ltype" "Varies")1 u. ^0 @ k4 b7 w
- ;|MSG0|;"Varies"7 @2 t) V5 z! l" V2 g) I- m- U4 i
- )
) A( `1 v! [- {- q* ?# u - ((= lt-idx 0)2 z( B6 C! u2 s8 [! A( @
- (set_tile "t_ltype" (bylayer_lt))
1 l# w C( w7 Q8 v - ;|MSG0|;"BYLAYER"0 ^8 n+ o8 P2 a7 T9 l9 S. [
- )
5 m" V# N$ N0 g - ((= lt-idx 1)& y: o7 H. L& V: h6 N; a
- (set_tile "t_ltype" "BYBLOCK")8 u r6 \7 t, [3 J" H( w
- ;|MSG0|;"BYBLOCK"; C7 V: s$ C9 A
- )
9 z' T! F) _' f( H0 ]3 v - (T. d& c' \+ Y$ j0 P" U+ e' p) J, s
- (set_tile "t_ltype" ltname)8 E# p: [* j' \9 s6 i8 a' p$ k, \. ]
- ltname
9 R( U. x$ h/ R o0 R6 i - )
! M* ^0 ?+ @. p7 Q, G; q! S - );cond then
7 ~& v/ J% \) P8 ^ - eltype
- ~) u: r& { t& } - );if) R6 n: A& q& L: z. j; V m
- );defun
" R5 M7 f: ^& ~6 A/ Z8 Q( e$ `# z2 W - ;;
' ?' o/ r$ u" M3 D* {7 c - ;; Edit box entries end up here
, U9 @4 p; a' S6 R9 V5 z$ T8 t) c, _ - ;;
0 i c! z5 B6 H# A- b5 B% d* k - (defun ltedit_act ( / flag)
' I4 o! q6 Y) A' F7 _5 | - ;; If linetype name,is valid, then clear error string,
' p2 B( u t8 |) @1 h - ;; call ltlist_act function, and change focus to list box.
& v; N9 [) _5 Y) H' Q" {8 ^$ K1 g) P - ;; Else print error message.+ f, I# G" x. j& L k
- 2 I$ d/ }2 U% S- V+ h
- (setq ltvalue (xstrcase (get_tile "edit_lt")))
$ e) S' E# t) w# ^# p/ t1 I - (if (or (= ltvalue ;|MSG0|;"BYLAYER")3 a3 _/ P7 I! c8 `$ |& n
- (= ltvalue "BY LAYER")
$ q6 U5 ]9 k0 \. S - )% ]$ Q, _9 I5 n0 b) Z: I. I" S3 m: {
- (setq ltvalue "BYLAYER")/ u3 d; F4 \% F& R/ Z7 {
- )4 C0 I$ `% \0 M0 z0 ] v' B5 ^
- (if (or (= ltvalue ;|MSG0|;"BYBLOCK")% `1 r! ]+ Y9 o
- (= ltvalue "BY BLOCK")
; Y/ E2 Y6 v: i$ u9 e# R - )
* D& [6 q1 \* H6 p& l4 f& J. d1 V - (setq ltvalue "BYBLOCK")3 s( w. `) z, L! ]. I- q$ |
- )
- f! q c. v: \( G - (if (setq lt-idx (getindex ltvalue ltnmlst))5 p+ `3 u7 l, |9 r- i3 X
- (progn
9 H' P; d2 G5 q - (set_tile "error" "")
- V- x* ^7 B# m; j - (ltlist_act (itoa lt-idx))
/ [( {' E i9 W - ;(mode_tile "list_lt" 2)# o% B. Q2 m, b/ b
- );progn then; z4 G, x% P% ` x
- (progn
3 A1 X* K( k8 L! n - (if (/= ltvalue "")
! a: \( v; v3 }) i - (progn7 F& c$ H( X3 z7 A
- (set_tile "error" "Invalid linetype.")
* F* {! I7 \9 S. w" ^& m - (setq flag T)
0 |* E. d5 ]8 J; E; R ] - );progn
, Q6 r2 P/ }8 C) @7 y6 o; v& G - )
7 ]9 ~. E# J/ s2 X7 A: g - (setq lt-idx old-idx)
' ]4 g7 B7 `) ?. p- c- t - );progn else
* d; u3 U# ?& @ - );if2 P5 ]4 Z3 j5 B- T S
- (if (and (not flag) ;added so a return will take you out of the dialog.
, ^8 K; M9 Y* ~ - (= $reason 1); S2 W. V4 ]0 [9 X0 B' q
- );and
6 n1 p# l6 x& h; o4 p# B - (done_dialog 1)
7 n* a! U% X- E4 _- B. f - );if
( o% v+ B$ i- @. Z6 }3 x$ k - );defun ltedit_act$ Y! _+ l% c2 R( d, [9 u. O
- ;;
2 }$ |& @3 x9 R# w' {- w: V' T - ;; List selections end up here5 B- K: s, O' [, H* ?
- ;;
3 i) @6 ~7 p9 H. _4 u% _9 D' f - (defun ltlist_act (index / dashdata)
. v& @, a6 b6 e# r& G, t4 p - ;; Update the list box, edit box, and color tile9 n6 Z/ a9 d. e) E
- (set_tile "error" "")9 o; d2 f+ A, o4 M7 I b4 b
- (setq lt-idx (atoi index))
9 f. \0 ^& W9 F+ W. l1 t - (setq ltname (nth lt-idx ltnmlst))# O7 }3 r6 S7 i% R$ p
- (setq dashdata (nth lt-idx mdashlist))" b4 {2 ~- I8 v) H% ]- A9 `1 n3 B
- (col_tile "show_image" 0 dashdata)( M' I5 N; l7 c* S! Y4 L
- (set_tile "list_lt" (itoa lt-idx))
# b% }4 h8 `9 w* Y - (set_tile "edit_lt" ltname)" U. z: x! G3 Q# g& X, @8 x
- )0 O' P' L: j9 J& L% T$ l+ M
- ;;
: l) [+ y8 u s6 w9 Y - ;; Reset to original linetype when cancel it selected$ \4 E, ^* C. |, ?8 Q
- ;;* F6 D, f2 I$ W, j7 g) h2 F3 u
- (defun reset-lt ()
U" W- D0 i" b2 C/ z/ [+ d' T - (setq lt-idx old-idx). W: |' O/ M2 i' I1 z; x
- (done_dialog 0)! s6 U [4 u3 n% ?% x0 |
- )! R" [5 o5 E0 W6 L0 T( I( }
- ;;
4 L+ z/ U6 E D& M; F6 v - ;; This function pops a dialogue box consisting of a list box and edit box to
H8 m3 |$ v/ R/ I6 Y - ;; allow the user to select or type a layer name. It returns the layer name
- H! @1 U! n. i. ~/ A* ~7 W - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the
5 M, Y. H0 A% R i- q! F2 f - ;; drawing.; R5 `4 Z; {( \, M
- ;;
$ p/ }6 j5 k+ C; a' G q - (defun getlayer (/ old-idx layname on off frozth linetype colname)- a$ j4 O. @" _
- ;; Create layer list the first time the layer C4 B2 n. D9 |& Q5 }; s) {
- ;; dialogue is called.
1 E: o" G# L+ ~$ g, Y' I - (if (not lay-idx)! _$ ?% y$ T3 i! z
- (progn
; q8 ^3 I- c. Y1 P# X# y - (makelaylists) ; layer list - laynmlst
3 |) l7 @; H: |# k - ;rk/ y" c, |+ s6 Q7 D' e* {
- (setq lay-idx (getindex elayer laynmlst))
1 ~7 d0 j: R3 p. ~4 t( u1 r - );progn s, J: v4 j3 F6 J
- );if
c8 p; ~6 {6 } o' [/ i
) a4 G F$ b0 o' R; ]! n- ;; Load a dialogue from dialogue file
9 I$ S& U9 F% A) u$ S - (if (not (new_dialog "setlayer" dcl_id)) (exit))7 b3 P4 P. A* z0 o( Z: X# {7 B0 ?
- (start_list "list_lay")) T6 J F& [( n5 ^
- (mapcar 'add_list longlist) ; initialize list box
" F& q) z6 Z* n$ H - (end_list): S; z) [4 A/ j% ]
- ;; Display current layer, show initial layer name in edit6 @: u1 e% j3 o! j% Z, v8 I _" a2 k# _
- ;; box, and highlight list box.6 s# f9 y1 i5 Z
- (setq old-idx lay-idx)
; ~0 f' B) k3 T/ S/ D - (if (/= lay-idx nil) (laylist_act (itoa lay-idx))) {/ i3 [0 \3 g5 R. _
- (set_tile "cur_layer" (getvar "clayer"))
, O6 Z- }6 O5 B- s" m" O7 x - (action_tile "list_lay" "(laylist_act $value)")
: J$ k& P; d& b - (action_tile "edit_lay" "(layedit_act)")
4 x0 H+ q* `/ M - (action_tile "accept" "(test-ok)")
/ U5 m; B! J5 S, r% ` - (action_tile "cancel" "(reset-lay)")9 v9 X% C' P; C( y% M/ C/ d
- (if (= (start_dialog) 1) ; User pressed OK
' u O$ ?0 G6 T8 h* A - (progn
+ W* I' Y" d! G% u o6 r' V - (if (or (= lay-idx nil)
7 V" ]1 u$ g/ G6 v( L - (= lay-idx (1- (length laynmlst)))7 |/ q: {2 u) K: s
- );or
6 q7 U0 q! v! q5 i - (progn D+ Y! h0 u, u x
- (setq lay-idx nil)
& ?* [! Q0 J! }; E/ E5 @: t7 |6 c - (setq layname ;|MSG0|;"VARIES")( M, t( V4 G1 ~8 u9 H( q! G9 ?
- (set_tile "t_layer" "Varies")
9 Y' `1 t# y2 _' F& W - (setq layname "")
. z% ~! u- f u& Q3 Q( a# [ - );progn
4 y. G& C( ?7 {; J9 j, ~# y5 Y4 D - (set_tile "t_layer" layname); x. A3 j9 [2 [2 ]* n
- );if3 Q# V- E8 R: A' G% }3 x
- ; If layer or ltype equals bylayer reset their tiles( c" {. I& K1 D! Q* ^4 B+ p
- (if (= lt-idx 0)
7 Z2 \ v0 v- ^" V+ i( D - (set_tile "t_ltype" (bylayer_lt))
. i6 }8 m$ X$ }2 o% ?6 h3 K( ^: R - );if5 V7 E( E: t8 E5 s3 E+ k. q8 \
- (if (= ecolor 256)
' @: V( R6 d+ t3 ] - (progn
@6 p( }9 H7 x# U( F# i$ V - (set_tile "t_color" (bylayer_col))
/ k/ ?) I- s! M- ^8 L; x - (col_tile "show_image" cn nil)# J2 Z3 q# B b3 q2 y
- )/ @( ~: z0 g. Q b1 M/ }6 P
- );if4 B& N: B7 l; p- V. E
- layname
7 q4 e) a# ~8 H - );progn- |/ F7 _, M" v8 v: X
- elayer2 i j+ N6 s4 Y0 ~6 b
- );if) e& M+ s: N$ L& O! ^% |# Q+ u" D
- )4 x/ E9 m% R, H7 @' o& j; }0 d
- ;;# I( S5 Z+ o v1 z. M" g u
- ;; Edit box selections end up here
+ x6 M; X$ |8 E. w& F) X - ;;
# M$ D" J2 O3 M3 b8 V - (defun layedit_act()
6 y: H5 I$ O! Z! M/ Y8 k# G% H8 s - ;; Convert layer entry to upper case. If layer name is, I! X) l. p: G; X3 G% X
- ;; valid, clear error string, call (laylist_act) function,7 {1 |: j# y- Y. }. |" [% |
- ;; and change focus to list box. Else print error message.# A$ R7 a0 H* a& k: |
- (setq layvalue (xstrcase (get_tile "edit_lay")))4 k9 f! R' r5 I {. k" ?& z
- (if (setq lay-idx (getindex layvalue laynmlst))
8 a( g) A4 a8 B- @% W0 l1 u - (progn
5 @6 u; W3 y0 p3 g1 _2 v9 [0 D- w - (set_tile "error" "")
/ u: @2 N+ \+ o; f2 }9 \ - (laylist_act (itoa lay-idx))1 t* z9 j1 S+ i' {
- )
8 b4 _2 ?( p7 c# W - (progn3 z' \7 m) `' b
- (set_tile "error" "Invalid layer name."): Y7 T j- m; L$ G( U/ e2 {' T3 V
- (mode_tile "edit_lay" 2)
# k% l# P& P/ W - (setq lay-idx old-idx)
4 A4 M# |& v! `: D2 Y3 H" _) [0 j - )& C) S6 r5 ~. F9 z- E( U, ]
- );if
6 B) ?9 |/ a% H/ ~$ y* I" Y - );defun9 T( k% r( G5 r% r7 |5 w D1 ]
- ;;; O P! t, A& Z7 |9 }# I
- ;; List entry selections end up here' s* Y' |7 G; [; A. x
- ;;; v$ s% ~# P. q# \
- (defun laylist_act (index / layinfo color dashdata)( V; B7 k' U' i+ E- a- V+ P8 B; n
- ;; Update the list box, edit box, and color tile
2 m3 m: L- y7 g# k" U! j - (set_tile "error" ""), t+ W' ` q8 M7 }
- (setq lay-idx (atoi index))
- o. Y0 U" Z* _9 h! D - (if (not (equal lay-idx (1- (length laynmlst)))); h+ U, E- v0 Z
- (progn
7 \. w$ c2 P/ Q - (setq layname (nth lay-idx laynmlst))8 g) c1 e; I( c4 o" Q. P2 }
- (setq layinfo (tblsearch "layer" layname))
8 W3 v2 g7 S5 @0 A9 D. Z - (setq color (cdr (assoc 62 layinfo)))7 V2 S* V# x/ d
- (setq color (abs color))% x4 W5 s# G* P
- (setq colname (colorname color))
$ r1 T5 X- ~ M; V3 e" X/ } - (set_tile "list_lay" (itoa lay-idx))
7 ~/ a$ M( T. k' T6 N - (set_tile "edit_lay" layname)- ]+ L; a9 U- u' r' g5 \; D
- ;(mode_tile "list_lay" 2)
0 V& B1 V( ]" ?4 L. ~& F* O - );progn then 3 J( g& J$ G( Z* @0 t5 w+ O
- (set_tile "edit_lay" "")
! \! q& z: S0 m/ p - );if 8 _) p- L. G$ ]7 H
- );defun laylist_act
. q8 G1 L9 `' d- K# H# Y1 j - ;;
5 c8 C2 D7 j3 l - ;; Reset to original layer when cancel is selected) W O+ j. f; f( q2 N% m4 e
- ;;
& C( j, P$ Q" Q2 A+ }. R1 D; y U) s) p - (defun reset-lay ()
* l* H' m& I( }3 {5 q - (setq lay-idx old-idx)* M: @& k! m8 B) R1 L* J
- (done_dialog 0)% k0 h; B' e, I) M/ o5 \
- )
4 E" Z" F6 x+ ?1 @2 U - 3 z- }5 M' G5 _! L- c+ Q
- ;; Checks validity of linetype scale from edit box. It checks to/ k7 y! I8 I3 \, X5 |
- ;; see if the value equals "Varies".' I9 I+ ^% V/ K+ m8 L/ ?
- ; J' j( b; U& d% _' t! X- Y
- (defun getscale (value / rval)
( K! I- r) e3 I7 j" U& }' K - (setq value (strcase value)
- q: e0 T2 ?' H$ c; H - rval (distof value)
' P4 K6 x) E: H7 X, P, Y - );setq
, M8 a3 t" _! k - (if (or (= value "")2 v+ m1 }1 n- n( b
- (> rval 0.0)
! x8 j7 N5 O. r+ L- B - )& w2 W3 Y3 `2 @) o M7 h
- (progn
# F/ W0 {- ] h6 N" D) H" X - (set_tile "error" "")
" i% X! s2 A) W, O! ]9 r/ ^ - (if (= value ""): V! K; u; f) c% q
- (progn5 |3 G2 i/ X/ C
- (set_tile "eb_ltscale" "")
( U0 l t7 _2 R4 t - (setq eltscale nil)
9 ], N1 x$ y p6 Q+ s - );progn then$ L. O% |3 s/ c, f1 K1 `
- (progn% j' W, S0 x+ O5 ~
- (setq eltscale (distof value))- M: D! G* D8 \- w2 w
- (set_tile "eb_ltscale" (ai_rtos eltscale)): P" V* n- i$ k/ C: G4 O
- eltscale! @0 l2 V* u' ^4 A* Q( Z
- );progn else
. u0 f/ M. y0 J, P! x - );if. x, _4 N4 X% I/ x: s) M
- );progn k4 S, N4 W, n" Y; w
- (progn g' Y+ Q; j# O% i
- (set_tile "error" "Invalid ltscale.")
' ?/ h5 L! J- k2 y4 w8 L - nil8 [: w4 l5 Y6 y( w& K6 k
- );progn else
! z$ K4 @* q! m P - );if
: q( F) X2 Z) ]! Y% f4 o3 X - );defun F. x; @9 U% m7 E1 K
- ;;# x- D4 Q% D$ c
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
: y3 o% D0 G+ g* L% T8 ]& A' S - ;; string can't be converted to a real, this routine checks if the first
6 S" p8 A3 ^. \1 E* f0 n# R - ;; character is "0". It also checks to see if the value equals "Varies".
( v, g; a$ K7 j - ;;
4 ]' H+ k: S' T4 ?5 g - (defun getthickness (value)
" s" C* ~; w Z1 }3 ]5 |- Y - (setq value (strcase value))
+ e1 q* y! l ]2 O. @0 y - (if (or (= value "")& _7 W$ {( z% w1 ~4 l: G* K
- (distof value)5 ]5 B4 g$ b( P1 O0 \
- );or
- X$ v# D3 _, S7 A. [! @ - (progn
% b c' t4 K; r - (set_tile "error" "")$ R: m4 e% U$ P( j& ?" k4 t
- (if (= value "")
+ s- J6 g t1 ^( b - (progn6 \' ]7 i; R) l' D2 [: R
- (set_tile "eb_thickness" "")) H4 c- i9 w7 S1 r0 d& ~2 i+ k: O
- (setq ethickness nil)
6 I# ^ j4 A& s6 A ^6 m0 t - );progn( N$ H7 {2 a$ T& y8 k
- (progn
7 u# g. I5 w' E x# G$ r. N - (setq ethickness (distof value))
' }% ~: U- D$ N, U1 F - (set_tile "eb_thickness" (ai_rtos ethickness))
# \( H+ D' z" D% G - ethickness
+ h. q. p4 n% B7 V3 x - );progn) K) e8 }2 e& w7 u! u" o5 M
- );if
# W; C# x5 B$ v( Y+ O - );progn
. T* n. R9 n* \/ c - (progn1 X0 I3 W9 N$ }
- (set_tile "error" "Invalid thickness.")
! [) Q4 D( I9 F! o4 s ? - nil" z' K/ ^4 y; T N- R
- );progn
7 b$ u8 q6 i I4 \ - );if
: b0 d" ^6 }! n1 N" C9 P8 w! k - );defun
' N5 }( ^4 l% i m% } - ;;
5 Y: f, v8 g# M- W/ ? - ;; Checks validity of polyline elevation from edit box.4 P6 J* F9 j# `/ i) d) j* d
- ;;3 g) o- d8 Y0 J/ o$ F$ z) s
- (defun getelevation (value)/ `4 t( q6 U5 \, X# f+ C, m6 X' m
- (setq value (strcase value))4 O9 a: @3 d5 n+ r+ j
- (if (or (= value "")
+ Z9 q9 V! e) X. q( | - (distof value)
. T ?1 l1 a- ~ p% r2 p. \ - )
, ~$ @6 E5 x# C - (progn4 O+ c8 d9 p% b9 N9 y, t3 x# J
- (set_tile "error" "")2 Q' ?6 o4 q" q1 K7 a1 j2 X" g
- (if (= value "")
$ ~1 ^+ n3 i: J - (progn
" ^1 w8 V$ i% O% [+ A - (set_tile "poly_elev" "")
! |; Q) ^" ]0 F' ?! n, B4 | - (setq eelevation nil)
" ]! N- z5 X3 u6 S9 D5 r' c - );progn
4 W/ ~$ T7 V3 R( u0 u6 U. b - (progn- l) C1 x7 V. v
- (setq eelevation (distof value))/ h$ z7 G1 S$ y
- (set_tile "poly_elev" (ai_rtos eelevation)) P$ M) ]3 @7 P C2 m2 W7 F( R
- eelevation2 _! v2 p2 N: {6 @3 C. O
- );progn8 ^$ b0 q3 W2 \# Z' O9 ^, O: s. F
- );if, V4 A- F) S" _1 L& y$ a
- );progn9 N) D" T5 ] K1 c% d. ^' W
- (progn
6 \" z7 p2 x2 V& Z" \ - (set_tile "error" "Invalid elevation.")% I3 Q' b- g; I5 ]# j
- nil
* f% Y2 K. Z( |0 b$ P - );progn5 |/ j. }9 K) l. G. r4 ^$ E# N
- );if
* L- ^1 J2 b- b$ q- g0 l0 T - );defun
; L$ ^3 e4 }9 q) \( ~: `( E( N - ;;
+ M& q; b& n$ k* m# z% O - ;; Checks validity of polyline width from edit box.
% _) d- ^* U7 d# ]$ C1 E - ;;$ T, V# A8 m" C
- (defun getwidth (value / rval)
- B$ x0 s) x% `. K% ^# }) C - (setq value (strcase value)
2 E, j; b9 [' n0 g - rval (distof value)
1 Q) P) |4 g- Z9 x4 \ E& O - )
( v+ h' k! }4 P' n, `: Z+ Y - (if (or (= value "")- D( x6 k, Y0 o$ o% e+ h x
- (>= rval 0.0)
2 B Y* @. S7 ?' g! A/ Q+ D - )
[: w& Z; Z* R9 H% b6 S2 X& z( [ K - (progn, M+ S2 B7 y+ p V/ ?9 I
- (set_tile "error" "")
% X& f7 W" [3 T4 P' [ - (if (= value "")
; z$ @) T. {* p! K% \" h% b - (progn
' b: e6 L6 l; n# F& P - (set_tile "poly_wid" "")! L' N3 u5 E* ^- D% s# }
- (setq ewidth nil)
% N: E1 l4 z7 M - );progn6 i" W, k7 @, g; y; L; Y% g" f6 ^1 w
- (progn
! G# h7 B+ C8 Q1 L h) R) S - (setq ewidth (distof value))
# D% B- r2 i7 c c - (set_tile "poly_wid" (ai_rtos ewidth))
# Q0 ^) I5 h6 H2 _: \" b9 P! t - ;width
1 r$ [( l$ L3 z& H% m - );progn
! y; ^! w7 p* X - );if- M) a5 L. q5 I! @" K
- );progn, V/ M! M9 ?; j9 c% _0 ]* U0 s9 ?$ V
- (progn( W! X' C, J. L; W( y1 W5 ^3 P
- (set_tile "error" "Invalid width.")
$ k1 j* C3 X1 L* [1 a - ;(setq ewidth nil)* d2 b [: { ~/ K6 |" V! x
- nil
0 r2 ]; ^2 C3 k- d; _, Z - );progn
) y8 k2 b" j- W; q1 c; t F - );if
4 S- k8 Y4 [ z, Q+ k/ ^ - );defun
$ s4 q4 s, h8 c - ;;7 I/ g; ~) t7 ?
- ;; Checks validity of text height from edit box.3 _8 A% ^- Q5 C) R; y( A
- ;;2 T3 M5 y2 R1 I Q! Q4 {2 H
- (defun getheight (value / rval)( q( _: s# d6 H" p! a6 m
- (setq value (strcase value)
3 w0 i: V% d5 `) o - rval (distof value)+ @! e7 V$ P* M8 S: N2 f# v
- )6 ?& a: ]! D, M
- (if (or (= value "")
9 ~% Y; D e( D4 G& Q: R. b' m - (> rval 0.0), Y. c# _. |! f/ V" b' ^! u
- )
' X/ e5 K8 n6 F B5 s - (progn" G( o, Z& i& a, ^
- (set_tile "error" ""); Q$ y0 F: t( P, z& T/ T
- (if (= value "")
7 f# H- n& {! @" X" h - (progn
* W# g$ X4 [* t, V$ E - (set_tile "text_hgt" "")
, O" |/ V1 b7 t8 g- W4 l2 N - (setq eheight nil)
1 n5 G) K6 N" j* I - );progn: v8 y# f0 E# [' S8 e
- (progn
# z7 i* J5 A9 n% k3 M% E. K4 w - (setq eheight (distof value))0 t5 c# u" `/ |
- (set_tile "text_hgt" (ai_rtos eheight))
& A* p8 ~4 k. h! {, o. U: U - eheight+ Y7 q, m% {6 j- x* w, u- X
- );progn* w* L6 e1 u, c* H, q J
- );if' w! ^, O$ |$ V* V: U/ v$ m
- );progn
% r+ g' ~" a- j. g8 s8 u9 a% l5 x y - (progn
* v; R2 d# @' R - (set_tile "error" "Invalid height.")# f4 j' b' a4 C( u1 F. }; J7 U' Z- p
- nil( o4 g' [9 S9 ^
- );progn
/ f' V( \& a$ h" r/ J - );if
5 @0 j; J. w0 K2 u1 R. v- a& Q - );defun# f0 v: @: Z8 n6 t9 Q' O
- 6 l/ Z1 @6 G. B* @1 \0 W) [
- (defun getstyle (value lst / rval)% f. }$ t7 d4 N; d$ `+ D: _* l
- ;(setq value (strcase value)) a% _7 Z2 T" l. E4 F
- (set_tile "error" "")
7 P7 g- S4 q# K8 d - (setq estyle (nth (atoi value) lst))3 R3 A) K" @7 E( S2 I! L
- (if (equal estyle "")/ k9 t! {5 B# h5 G7 C! r
- (setq estyle nil)/ o/ N2 l! V2 `1 m
- );if
4 w" W0 M6 e% _- \% P5 c - " z$ C# b# N; O) h( M& ~/ U! P
- );defun getstyle
' y6 S# c n0 T2 ?! S3 T5 ^- H - 6 D- Y) \- B" B, s/ e" P' X
- ;;
6 \$ L7 D# w$ n - ;; This function make a list called laynmlst which consists of all the layer, i) X4 K: O- K
- ;; names in the drawing. It also creates a list called longlist which7 o6 ~2 y& B& q% s, J8 u- }
- ;; consists of strings which contain the layer name, color, linetype, etc.8 O2 ~4 W& u1 L! p7 ]0 p l! H
- ;; Longlist is later mapped into the layer listbox. Both are ordered the8 y1 g; L9 I# N( e M! L4 y+ r
- ;; same.% Z3 X7 z0 h' o9 c4 `4 c0 z7 m
- ;;
$ O. j. L3 ?1 M7 S - (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname; z0 d* Q( H. \( x; @# w
- xdlist vpldata sortlist name templist bit-70& a/ o6 J4 `$ I5 z- R; R
- layer_number
% V. N$ m0 i' w: J2 b$ @7 H( Q- d - )
H' s& z( l3 j5 I/ X' p) ~ - (if (= (setq tilemode (getvar "tilemode")) 0)* Z" S5 {4 ^! d
- (progn3 c9 p/ w( [8 V* j& v# a% w
- (setq ss (ssget "_x" (list (cons 0 "VIEWPORT")/ U! C* n" _! e; K6 C
- (cons 69 (getvar "CVPORT"))
3 n+ f* Q$ H9 D" }; J - )8 y1 @- x6 j1 k% v" m
- )- T# D/ Q5 ^! N# |
- )! O% Q8 H# ?" {0 x* G" r
- (setq cvpname (ssname ss 0))2 \% ^$ {2 y6 |. R; V
- (setq xdlist (assoc -3 (entget cvpname '("acad")))); v8 i( [" {8 ~1 p; P3 p
- (setq vpldata (cdadr xdlist))* R" O& M( k; u( c5 n
- )
u+ O9 ?2 ~ H - )
, Q9 b# e! Y1 p9 p" N - (setq sortlist nil)' k5 u v' u ^ m! _# H
- (setq templist (tblnext "LAYER" T))
' M0 `! r* B* d. V( Y7 U - (setq layer_number 1)
% Q& ?1 O2 M! i5 F- Q - (while templist$ Q, n$ u3 X6 V- W6 n/ J, Q- u* |7 g, L1 `
- (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))6 s7 f2 P4 ]- K' i" {7 I+ {! S
- (progn 1 w7 p% c+ M7 t
- (setq name (cdr (assoc 2 templist))), q' I6 a8 `- R/ i4 o/ k& A, }, L
- (setq sortlist (cons name sortlist)): L9 f' D2 U- Q7 @8 I
- ;; Not dead message...( y/ T6 t1 k/ Z* q* @5 t
- (setq layer_number (1+ layer_number))
: l# Y1 G8 e ^2 _9 Q } B - );progn- M9 q2 u1 \0 Q8 j$ s; z7 i
- );if
* N& g9 v6 e* T9 w& U - (setq templist (tblnext "LAYER"))
$ Y( u' u* U' N2 Y5 a1 q, G# u( m - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0))); n- u# ]# r; \/ F0 Q# J9 ~8 V
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))7 E0 V1 @6 p2 S
- );if
! m [* K! J% M) y8 W. n9 \ - )' e/ S5 |% U) V: M0 A) w+ W: Y5 e9 g( s
- (set_tile "error" "")
! T0 ]3 n' e5 {" x6 x - (if (>= (getvar "maxsort") (length sortlist))
0 e' o( {; S; F$ {$ s! B% E" _/ C6 j - (progn
4 A5 |. i! ?8 a, h& A; v+ A - (if (> layer_number 50)' d* j; `& O* Q* j0 y. C
- (set_tile "error" "Sorting...")% Q7 m0 _: O. ~8 Y/ v
- )
/ _1 N8 E/ e$ } - (setq sortlist (acad_strlsort sortlist))
# t# r, h8 L) c$ w! | - )
( Y& s p' P% ?" H0 z* x# D - (setq sortlist (reverse sortlist)). G+ g6 @3 A5 p* m: U/ v
- )
- i; i- r7 c$ b+ N - (set_tile "error" "")) I% b2 x# V* W. j' [0 |" ~
- (setq laynmlst sortlist)
) I; [6 r6 x4 I+ e* W - ;rk
9 e% f6 o1 r2 O2 K. Z3 Q% Z: O0 x - (setq laynmlst (append laynmlst (list "")))
4 J: g& K# j% L( p
* x# ?- M2 H) I/ D5 I7 G- (setq longlist nil)
3 m3 U# {4 B% ^ - (setq layname (car sortlist))
P. R, r! ~" w K - (setq layer_number 1)- T% X+ b; `2 y8 W
- (while layname
" Z3 P- }; q1 A8 o - (if (= (/ layer_number 50.0) * ^1 u& q' v" e* q
- (fix (/ layer_number 50.0))
' a6 r! ]# r$ T. k3 s# `6 j. B# v - ), }! N- ?/ m- V5 m, t" ^
- (set_tile "error" (strcat "Analyzing..." (itoa layer_number))). ]0 K: V2 u/ S. z9 V0 E4 [) e
- );if3 q8 H, M! _/ o# c2 N6 l$ h
- (setq layer_number (1+ layer_number))/ E0 W0 Y8 o4 |6 u# `( C: Q% L
- (setq laylist (tblsearch "LAYER" layname))4 c" J1 n! h' L% M7 ]4 N- M. A0 u
- (setq color (cdr (assoc 62 laylist)))
9 x5 R" b7 k0 w/ `( {: k9 @# K% P - (if (minusp color)
8 C+ L n3 ?* ^3 |* q - (setq onoff ".")
& z+ L n4 V2 k# ~: Q" B1 `6 d - (setq onoff "On")' h, H) `' y5 D0 M
- )) E0 c7 p. A9 e" |1 A, k' S5 k
- (setq color (abs color))% P4 [* D7 z6 U
- (setq colname (colorname color))$ w; v9 c- z2 L5 f
- (setq bit-70 (cdr (assoc 70 laylist)))+ _; U( r) u% h1 b; H8 v
- (if (= (logand bit-70 1) 1)
$ z7 T: `# u2 o/ U# Z Z - (setq frozth "F" fchk laylist)0 L6 t5 ~' F S; H
- (setq frozth ".")
4 R2 _% d. ~( R2 ]) D - )* e+ h: W! I5 o8 k7 K* |0 |
- (if (= (logand bit-70 2) 2)$ C0 M7 P. | N
- (setq vpn "N")
: m7 V7 g/ N4 M0 i. ^+ x - (setq vpn ".")
& n/ X9 E* }% V - )
# m* p5 l: A; k, R+ o+ d2 [: j) _ - (if (= (logand bit-70 4) 4)
n& H7 E5 `! F9 O3 `) b' ? - (setq lock "L")2 h* x) l; h) w, I+ }, U4 r& ~
- (setq lock "."). u/ X1 K J6 c. j( {
- )
+ z4 \% | r, P - (setq linetype (cdr (assoc 6 laylist)))" z6 c m- m- E/ w) B
- (setq layname (substr layname 1 31))
" I$ j% H& V8 `9 I8 L" i- L - (if (= tilemode 0), C2 z7 ^: j2 ~' u
- (progn) r+ ^; \ q: C- J" ?2 Z6 G
- (if (member (cons 1003 layname) vpldata)
4 L }: i" u* i& N6 D - (setq vpf "C")3 ~% h4 i$ Q; q% ~% s; m5 F
- (setq vpf ".")! K. w3 j6 u: I/ x
- )
; g% ~2 E3 B" D* V9 E - )/ G( o1 V- D m# ~
- (setq vpf ".")7 k' u) N, L5 M
- )
! s$ Z6 Y2 a% Y$ b( p" t - (setq ltabstr (strcat layname "\t") k7 g. F+ k. b# h' u" W7 ~! Y
- onoff "\t". x/ ^5 |0 }7 W: `" ?
- frozth "\t"
. _2 K; d6 {# W - lock "\t"
- l6 G/ X; e4 E - vpf "\t". a5 ] w8 A' T9 M B5 Z: d: ]
- vpn "\t"
5 Y- ^& V: G% y& ], P2 ^ - colname "\t"6 H6 Q5 I* H4 i. K
- linetype b! F, b! I5 Y, r
- )
# E# r' c' `& ?1 \1 [ - )
; T$ x- c0 w8 S. [& p6 W6 I - (setq longlist (append longlist (list ltabstr)))9 Y9 d6 a( I- Z2 @8 K8 m+ a3 {
- (setq sortlist (cdr sortlist))5 h a# q c, A, P6 N2 ] s. }
- (setq layname (car sortlist))( M1 }% g8 l+ l6 M ^- c
- );while' g& A$ R4 X/ J; z- L2 c
- (setq longlist (append longlist (list "")))
M! f1 f3 _) D/ R; \ - (set_tile "error" "")) c0 Y# o4 J |, D6 ~. v4 {1 I3 m
- ): z4 Y' f% X% a
- ;;" Q# ?9 ]) y4 U# C5 T
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
2 {8 J( t6 ^9 d$ V+ a" F) m4 x& ^ - ;; linetype names read from the symbol table. Mdashlist is list consisting: }8 k: F( x4 A1 f1 O. {! R
- ;; of lists which define the linetype pattern - numbers that indicate dots,
r) `, H% c+ d. p - ;; dashes, and spaces taken from group code 49. The list corresponds to the0 A& V5 o- g% H' }* \
- ;; order of names in ltnmlst.
$ o, I( |4 o( j, \8 p' ` - ;;
# P) Z; i: ~ ^( G& y; l - (defun makeltlists (/ ltlist ltname)" ]5 f6 q9 g& T; M( }7 c1 z& k1 Q
- (setq mdashlist nil)3 [# B% P% E9 P0 z ]5 S) N
- (setq ltlist (tblnext "LTYPE" T))% g7 ]0 E4 h4 U
- (setq ltname (cdr (assoc 2 ltlist)))
+ T! S1 G8 W0 j6 j - (setq ltnmlst (list ltname))9 b% d0 k& [9 }/ j
- (while (setq ltlist (tblnext "LTYPE"))
' }0 m7 i9 F6 R: N M; A - (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))) I/ x4 I9 U I1 P( h0 h! e: K
- (progn 0 E* X. t* ^3 T3 j9 h0 S* r! {
- (setq ltname (cdr (assoc 2 ltlist)))" V x' p& o0 @. b! C. n$ u+ r' ]& L2 t
- (setq ltnmlst (append ltnmlst (list ltname))); c/ x$ y, X' F' s u7 u3 d
- );progn
( [! ]6 }7 D4 @3 I b, x2 ^ - );if
( w1 U. G; v, A7 O& I. V) X - );while4 A- O! |* V6 _7 k$ [) ^
- (setq ltnmlst (acad_strlsort ltnmlst))
F3 g$ x5 v+ [$ G6 d5 \# O) G - (setq ltnmlst (append ltnmlst (list "")));add by rk $ B) J1 B! l5 W2 j3 f
- (foreach ltname ltnmlst; g- s8 x. H: i
- (setq ltlist (tblsearch "LTYPE" ltname))9 G; u( Q/ `5 B- `
- (if (= ltname "CONTINUOUS")/ y8 g* z" c$ S0 l% L: |8 }* p& |+ M
- (setq mdashlist (append mdashlist (list "CONT")))
0 G9 e3 E; ]. J( P$ M6 f - (setq mdashlist `! e- M& [0 d& l% S P
- (append mdashlist (list (add-mdash ltlist)))
/ @& s7 N# L: a g6 _: w8 O, t - )
5 h& b( E) a0 `+ r+ J# R1 z - )" e! x0 P. ^1 h0 ]3 B+ T
- )
5 f B. {, q4 }* m - (setq ltnmlst (cons "BYBLOCK" ltnmlst))- O7 @8 p/ ]* Q% M7 M
- (setq mdashlist (cons nil mdashlist))
2 Z: \/ n2 f4 \. N1 T* x/ n - (setq ltnmlst (cons "BYLAYER" ltnmlst))
/ ~% j+ |2 J% t' ^% d. t, k: t - (setq mdashlist (cons nil mdashlist))
$ S7 G1 d, Z# L7 E - )
# P0 S! |$ P+ |% T3 S9 I @ - ;;
7 a. q; h0 ^2 ~' { - ;; Get all the group code 49 values for a linetype and put them in a list
' J0 u7 F" c4 W - ;; (pen-up, pen-down info)
; r. C% ^. S) l* G1 a/ S, e - ;; s2 {6 e0 Q1 n L4 i
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize)9 N4 U; ]. P; o$ m7 v z& t
- (setq dashlist nil)2 I( }" J" T0 n3 B5 @: n% M
- (while (setq assoclist (car ltlist1))
7 b/ |% P, V- i. ]9 ^' M - (if (= (car assoclist) 49)
# W/ i: t2 i! Y8 q - (progn
& F) I8 t+ H6 \% p - (setq dashsize (cdr assoclist))
: W A( W6 b6 g9 p+ ]/ z3 E& L9 j - (setq dashlist (cons dashsize dashlist))1 {( o/ d9 S" U5 @& c
- )
/ G, }: ?9 K0 z( u - )
3 \" \4 ~# K) \4 |8 R - (setq ltlist1 (cdr ltlist1))$ V% g8 x& K7 O
- )
6 B0 }. @* Y7 ^" ]0 O4 r9 Q - (setq dashlist (reverse dashlist)), t& q! i. B: i* S
- )% T2 j& O8 v) \+ ~9 t2 o
- ;;4 C$ ?8 r: r6 N, W5 n2 c
- ;; Color a tile, draw linetype, and draw a border around it
9 ?, ^6 p9 y; X7 U5 P8 r6 H - ;;
7 ]6 P: u, S4 m k2 [ - (defun col_tile (tile color patlist / x y)+ j. }% K6 b3 j' n6 S
- (setq x (dimx_tile tile))
* R7 s0 u8 i. F8 Y) I+ o - (setq y (dimy_tile tile))
4 V. B2 J1 ]! T; q4 r7 k - (start_image tile), [1 t! w! q1 O1 P
- (fill_image 0 0 x y color)
|1 I+ t8 p% I- G - (if (= color 7)
, T* ^4 X. V1 m( q1 _( R - (progn
" U3 C0 Z) l8 k4 D; D# r" T - (if patlist (drawpattern x (/ y 2) patlist 0))
+ Y" A& g. M* s. x% Q - (tile_rect 0 0 x y 0)
: d, q: f- B9 h8 O! G - )
0 {; N: [+ ?! `) B* G" m - (progn
0 \ S9 A5 I% i) X6 k5 c' ? - (if patlist (drawpattern x (/ y 2) patlist 7))) B8 M# u- G, a: a; ]4 G: A$ r% b" v3 M; U6 r
- (tile_rect 0 0 x y 7)
0 c3 G$ ^, d, C; Z9 C; A* n - )
0 _# d5 W2 Y3 S) }" V- {1 [ - )
: x' ~: c. V# N$ N( R6 _. Q - (end_image)0 M/ i% ^- y% T- o% N6 u
- )/ r/ a( g5 G, s; a0 N T: E
- ;;7 ~* M5 Y3 x8 C3 U, m
- ;; Draw a border around a tile8 e' ~; W! J0 X& X9 \0 _/ ?
- ;;
. ]$ R7 N4 Y. v6 M' R - (defun tile_rect (x1 y1 x2 y2 color)% n3 o/ c) [, |# r
- (setq x2 (- x2 1)): f4 h+ `$ i, Y. d: S' r
- (setq y2 (- y2 1))
& I4 X! Q4 D/ {( j* Y1 w - (vector_image x1 y1 x2 y1 color)
2 I6 J# z' x2 j5 a0 M* o# m - (vector_image x2 y1 x2 y2 color)
/ P& r: D0 l/ C2 l+ B. [ - (vector_image x2 y2 x1 y2 color)
) h! w/ y1 [) g! i! h - (vector_image x1 y2 x1 y1 color), R" Z, {, Y4 z7 K* X
- )
) r7 s. @( x' I) \) h4 K" S - ;;
) A$ r R U4 j - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image3 g5 E% B! ?% a$ m9 M) t+ C2 ~) K) d
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a5 ?- t# Q: b- P' Q) e
- ;; list of numbers that define the linetype, and color is the color of the- Z, d* m( b# ]. J
- ;; tile.5 _" b) Q4 l' k; {3 F% `
- ;;% P1 p) u6 C! J4 p+ o2 k% ?1 d
- (defun drawpattern (boxlength y2 pattern color / x1 x29 c) l" f% v9 Z V8 Y3 p' c: d
- patlist dash)0 N z3 u! Y6 W2 T9 h! s7 q
- (setq x1 0 x2 0)
- p& P% G0 o# E/ s' T+ { - (setq patlist pattern): f4 u- F2 j, I6 h/ N2 W
- (setq fx 30), B4 K6 X4 S) u: g
- (if (= patlist "CONT")
4 \9 E, }( {9 f1 S. L Q$ L - (progn
- @( C) |, `4 t+ Q6 K2 j g - (setq dash boxlength)
0 {. y3 ]5 a/ E! E) D - (vi)0 F7 @* B5 u0 u. v
- (setq x1 boxlength)
. E( d8 d) c/ r+ d; x5 u# } - )
- T& B( a. b4 Q' \; v6 h/ T1 n - (foreach dash patlist
1 \% j3 I# P& J2 ?& { - (if (> (abs dash) 2.5)/ d4 p/ e$ ]) @* u, a
- (setq fx 2)" r4 C% e7 C) W8 T* o4 |
- )" ~( t7 C* f( W. H$ k
- )% z; U; E+ z1 H J& B
- )
0 V( s ^8 h" y& f- |- Z - (while (< x1 boxlength)
L1 B1 F, M/ M, g - (if (setq dash (car patlist))
6 d% T$ z% A9 n2 x3 i - (progn7 L1 x+ l; B1 B, m3 B
- (setq dash (fix (* fx dash)))3 U8 ]" Y# _& X# D6 Y
- (cond) P" {" f) x0 G/ k
- ((= dash 0)
+ l: S9 H/ r( W8 w5 } - (setq dash 1)
% t# S% M1 I& a" G2 C - (vi). y2 [* S: x( M$ O1 N
- )) T' n9 ^3 L1 j0 W: G) P1 ^. u! b
- ((> dash 0)
/ [/ h9 Y4 P1 M5 j, ^! {) P- a6 h* ^ - (vi)/ |/ r2 L. x" O" _: O$ B
- )
& W6 c- D: m$ Z5 M [ - (T
8 T5 e' v7 S1 U - (if (< (abs dash) 2) (setq dash 2))! p/ Q6 ^0 j4 H7 v( r4 d t
- (setq x2 (+ x2 (abs dash)))# n& A2 b' `* s+ }
- )) q/ p/ _5 G' `6 ]) t" Z
- )
$ b! N2 V$ ^0 g( n - (setq patlist (cdr patlist))4 g/ v" e# P/ N y* R4 [& ]+ A
- (setq x1 x2)) B! n' {4 V$ @/ A& J
- )
0 ] ?: X/ L& |6 K$ f2 S" D - (setq patlist pattern)# b) E9 A. s" M1 L$ O. t6 D1 E
- )
7 S7 w9 G1 Q5 @/ T - )
. e" u. x0 ]; j: a* ]4 x6 ^, o - )& r/ [3 h' j4 q7 X/ F
- ;;. f, S1 A# u6 ]5 R! |0 R4 q/ @
- ;; Draw a dash or dot in image tile1 O! I2 g0 t) r; Y$ e
- ;;
2 E9 Y, f. G- @8 u1 P: c! ^ - (defun vi () O3 S. X2 X- R; @
- (setq x2 (+ x2 dash))
( W2 F2 r+ w" g( ?8 I, | - (vector_image x1 y2 x2 y2 color)
3 e% ~$ \7 g) h) e$ H% I; A - )3 k; Z- l$ ]" S' P b6 I( ?
- " d% ]; z! o2 L$ j* r1 a1 M' T3 ` l
- ;; This function takes a selection and returns a list of the color,* |1 A) c# z7 b# B9 }0 P: s
- ;; linetype, layer, linetype scale, and thickness properties that
^# L5 [5 V/ T& X. q! } M - ;; are common to every entities in the selection set - (color
* v" Y# ^8 a' f6 i4 X8 X# M- G - ;; linetype layer thickness). If all entities do not share the same) C5 R* R; O2 h
- ;; property value it returns "Varies" in place of the property5 i9 I4 ?/ J) b+ g- e& {
- ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0)$ v4 c% g( q9 R0 z
- ;; The last item in the return list is an integer flag for the: d6 l# U/ [& B& v3 S* @
- ;; homegenity of the selection-set object types.
/ L7 v' }9 ~1 [* F7 I - ;; 1 = All polylines
7 {& H5 `, U: e) N% v o0 e) s4 ?$ q" L - ;; 2 = All text or mtext or attdef, or a combination of the three/ P4 c$ y- q8 N, k C) Y, U" @
- ;; -1 = Any other mix of objects, U# a( \) h' i. J. x2 O$ x
- 8 H0 E; T( C9 p' @
- (defun getprops (selset / sslen elist color ltype layer ltscale thickness
5 G' x5 R3 s& ^ Q7 Z - width elevation height go ctr
Y/ t4 w5 z. {' d5 N' Z - eflag
7 J8 T0 ]- N. I - etype temp
$ ~# ]$ K' [/ ^' b- ^/ Y* W - txt_ss ;;;;rk 11:24 AM 1/30/97: M! d: Z4 s! Y& G6 P
- tmp
, }- {' @$ E6 e' g8 }6 d R0 b - poly_ss 4 I5 p1 Q K! _2 n# i
- style d7 w7 `# @% J1 q1 L8 u( w
- )
# Y" o6 i7 ?/ S3 P# Q ?( H1 I2 @) ^; a - 9 |! x3 S. ?4 s% }9 J2 Z8 ]3 l
' P" P$ _- M0 W- (setq sslen (sslength selset)
7 p- p9 n# H0 T9 `; }. @ - elist (entget (ssname selset 0))
* y: h) u% E1 l/ z - etype (strcase (cdr (assoc 0 elist)))8 T; s) Y% ~- E3 Y( M" f6 z
- color (cdr (assoc 62 elist))
* A7 p. }, V# j/ q- j" @: _ - ltype (cdr (assoc 6 elist))
. Z+ \- ]" N; R) x - layer (cdr (assoc 8 elist))0 c; f! r1 e, E7 `
- thickness (cdr (assoc 39 elist))
( W) y3 X4 n# b. R- ` - ltscale (cdr (assoc 48 elist))
* i( Z, @) C1 I+ z* T% t - );setq+ w/ Y, A- Z8 A5 m8 J. \9 j- g
1 z$ D$ G, p4 Z4 t" \8 B2 y; S- (if (not color) (setq color 256))
" ^4 l- b1 ]( m! r. @# T! L - (if (not ltype) (setq ltype "BYLAYER"))
% P i* y0 c3 }: W - (if (not thickness) (setq thickness 0))
* z; m I4 r( O, z: }5 _ - (if (not ltscale) (setq ltscale 1))) D2 \% s3 y5 [. r
- " P; p/ o' O; U6 w
- (if (not width) (setq width ""))( w2 U/ h: a. Y7 Q6 P1 b* {
- (if (not elevation) (setq elevation ""))
# Z! ^& e. _4 L3 u3 s - (if (not height) (setq height ""))
* o! G' E' `, G" l' i r
6 C; O; _: z' c7 V6 @& }; H- (setq go T
" N+ i! k9 k; I2 p |- Z1 o- x - chk-col T 8 F& S! n6 F$ w) e3 U$ o* H9 ~- l
- chk-lt T 4 d+ k( \. m q/ ^ C" c3 U
- chk-lay T - N3 u0 j4 c5 s; o1 {
- chk-lts T * @+ Z7 D! z: K; Y2 B& c
- chk-th T ! |+ p F- K/ } ]! E
- ctr 0
* g3 V8 L8 @0 v! y - );setq) s$ M+ a N1 G, G6 x! N
* d# n; b O, ^4 {" ^- ;; Page through the selection set. When a property% ~1 C& Y/ N9 `% R) `4 {8 g9 I
- ;; does not match, stop checking for that property.0 U0 Z. E! P' z* x+ k' T' w
- ;; When the selection set is not homogenous, stop checking., Q3 L, F5 I) q( D2 w
- ;; If all properties vary and the set is not a type 1; U) t9 v$ a4 K, i* r8 A) K
- ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging.. G- K X! A# h3 H
' U2 E% E- ` A9 g; i- ;Lets set the eflag so we know if the selection set includes any
% I4 E+ O, |) H - ;combination of polylines, lwpolylines, text, mtext or attdefs.
" }/ c% m5 x* `( j( c
: I, f T8 k3 `/ j) l- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/97
& Q! T0 L7 s. ?0 O9 o1 {3 _ - (setq eflag 0)/ O3 h. l, p; a6 a0 ]( b1 X
- (if (setq poly_ss
' U( U0 D2 v: E1 J* Y! r; q - (ssget "P" (list '(0 . "*POLYLINE"). T0 g U# x; \6 r1 G# U& ] z
- '(-4 . "<AND")
. v& Q* F3 v4 I! D! d; o8 S2 ? - '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")3 d% O6 G& c0 S @
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")0 x$ w3 |. ^ L) I" H, y! M
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")+ z0 ~2 G! f, b2 y; |6 }* }
- '(-4 . "AND>") & k' y7 P- `! ]7 h9 a1 T; V
- );list2 z& ?: t: c8 K0 c. s( q: R" f
- );ssget get 2d polylines (legacy and lw)
/ Z! r9 x+ ]4 _$ g' u$ i8 v0 m% I - );setq
6 |: O7 M6 f; @) N+ u - (progn
0 W4 B4 I9 ~/ F4 r - (setq eflag (+ eflag 1))
7 m( J, O. m: ]& `/ m - ; R2 A i& c- a
- (setq tmp (entget (ssname poly_ss 0)));setq. n7 l+ ~1 w9 f g6 ?0 y/ j) b
; d5 f- M$ Z# U; ?" X3 e- (if (equal "POLYLINE" (cdr (assoc 0 tmp))), o" ?+ B0 l5 J, c- s
- (setq elevation (last (cdr (assoc 10 tmp))))
5 h4 y0 D. V( S1 A4 q, | - (setq elevation (cdr (assoc 38 tmp)))
5 I& M! p* D9 K - );if
$ j1 q1 K# e# o5 d) V& { - (if (not elevation): b! ?/ _5 e$ F9 `2 ?& E" ]
- (setq elevation 0.0);setq+ _& H* T! P P0 t3 h
- );if
5 [4 n8 J( K: Y" n. g: r# T4 k - 7 y8 b9 g1 p2 c; j$ G
- (setq tmp (ssget "P"
7 g2 w' d4 e. J" `( n1 k6 I - (list 7 o. y$ M1 l+ y1 ^3 O
- '(-4 . "<OR")
/ H) g2 p% i& {8 A& i - '(-4 . "<AND") , e, Y: o! y3 u
- '(0 . "LWPOLYLINE"). F4 k9 q& T, o3 O9 h- y+ s
- (cons 38 elevation)
( q+ M7 v6 c5 Z5 w' a' u; a, y - '(-4 . "AND>")' r0 |' Z9 J' Y2 Z' [+ B% L' _; S
- '(-4 . "<AND")4 S' N- k1 j$ I
- '(0 . "POLYLINE"); M( b [7 i/ W
- '(-4 . "*,*,=") 5 L$ s3 }3 O1 t6 ]8 O3 ~
- (cons 10 (list 1.0 1.0 elevation))
0 e# D/ W3 l7 d5 ] - '(-4 . "AND>") - t: V+ \8 N; ]; x
- '(-4 . "OR>")( @) F" N# Z+ W
- );list
$ m7 f4 _# U5 a: r, g - );ssget
; Q1 S) T+ B4 a' G - );setq( u" G/ ]1 z% c+ L9 C
- * I4 J1 P& R1 b4 t
- (if (and tmp
% J! C9 D6 k* D - (equal (sslength tmp) (sslength poly_ss))) f9 |2 y5 h$ ^1 ^% ~6 o
- );and0 ?& l" R: T6 Y8 b8 @* J' s
- (setq elevation (ai_rtos elevation));setq
3 }( F9 e2 G% k6 e - (setq elevation "")8 I# h0 |# l1 F: _/ r
- );if
% a% g, ~* G2 E+ H. ^) d1 J/ o - 6 t7 Q2 H- A0 p6 \+ f" G
- (setq width (pl_width_getter poly_ss));setq
' ^% R% q( }* o2 \ -
2 G& R3 P6 O% f' ^ n# v/ C& i6 \ - );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!
$ h4 i% x5 W8 z# \$ S; w - );if p; Q* F5 S# `; T% \: R. p
- (command "_.select" selset "")5 I6 }2 k7 M5 n. C( ^% Q
- 4 K& Y1 k. V9 x' w" u! a8 t
- (if (setq txt_ss
, j' U& Z3 [: A' [# M - (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT")
3 _, l8 O: U" ^6 ?0 d - (0 . "ATTDEF") (-4 . "OR>"))
" a5 D C8 K) F9 ]: h6 k0 w - )
- P; T) h. ?; z8 L- ~5 T) q: ? - );setq
, ^% I/ W9 N+ H! A - (progn
/ c; t3 F$ W% X9 M s - (setq eflag (+ eflag 2))
* Y0 ~4 y2 h9 I0 e/ b - (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))
* A) @% l) f6 t W% u5 s' u/ d - tmp (ssget "P" (list (cons 40 height)))
9 A# m- b& h- d. t - );setq , ?5 Z4 d" y; i# T! r3 _& W
- (if (and tmp$ f! s) g1 C5 M
- (equal (sslength txt_ss) (sslength tmp))
/ z, i9 k3 z; ^0 v6 a - );and
, ~# J; _+ w3 w - (setq height (ai_rtos height));setq ;@rk need to translate from float # O( x# e8 R$ Y$ C1 K
- ;to string and back again easily2 b3 e; H% d2 }) i8 N: B" p
- (setq height "");setq else the height varies + F2 J k7 \/ X8 B; n+ A; l4 U
- );if
" j8 V% W9 L- c9 M- @1 k$ |( i - (command "_.select" txt_ss "") 1 Y, d# l2 E: p
- (setq style (cdr (assoc 7 (entget (ssname txt_ss 0))))) f) [- L3 W2 M
- tmp (ssget "P" (list (cons 7 style))) 7 y2 `, }& x3 {5 P0 I( U/ \7 E
- );setq # S. K: Q( R( y2 ]9 x
- (if (not (and tmp
! ]) | }% A4 H2 |; q! Y - (equal (sslength txt_ss) (sslength tmp)) & k) n7 @* J: g! m6 ?% u" e! [
- );and% W7 ?2 g4 k% m1 r+ W' i
- );not
. }. s) j& @5 y i - (setq style "");setq then the style varies 6 M6 O# t2 n w. I: `! E
- );if
0 N# i- B" \$ l5 {$ x( S7 Y. p9 a# e - );progn the text type objects are in the selection set
' ]8 h7 C5 o" u- s - );if
/ J( t. ^) u( ]+ x( z8 S8 v+ U+ _) Z - (command "_.select" selset "")
) ~( l! Z. i3 O2 d - ) E5 E! z4 m8 ~* J2 v: X
- (while (and (> sslen ctr) + k6 c1 ~+ G) ? i* W1 R8 N5 n# `
- go
& L* [, f/ x' p% A( _ - );and
% X v% I* k, f+ J' R - (setq elist (entget (setq en (ssname selset ctr))))
! i- P$ G* r) b0 v - ! X4 z) T. ~1 ]# d
- (if chk-col (match-col))
" ?. F5 w9 U& X- o$ U/ n3 a/ w- ?, @ - (if chk-lt (match-lt))# N* p* `5 U! h, S, x$ B" u
- (if chk-lay (match-lay)): P: V+ e: r( g( }! y8 Q
- (if chk-lts (match-lts))
( Q* c; o7 h4 p) ~( X0 e! F - (if chk-th (match-th))5 W: O$ W5 T# {" I
- & K% H6 L1 P$ e0 B5 }/ M$ z6 c
- ;(if chk-etype (match-etype)). n3 K1 ^2 \$ x& w1 n0 q5 S
# y* `; W e6 L. ~7 M I1 J, K1 O- (setq ctr (1+ ctr))3 d/ ^! E! Z$ g
- (if (and (not chk-col)
1 V7 X9 B Z% v( k - (not chk-lt)
! }3 S; J: j7 }5 L) d - (not chk-lay)
) a5 F- s$ N0 [1 ? - (not chk-lts)/ L; s: G1 M( ~
- (not chk-th)
5 ?) v" J; C( q" Y6 x1 x4 L - ;(not chk-etype)5 g# h$ a: P2 J
- );and
' j7 X5 n) p8 W7 S - (setq go nil)
3 m/ Z5 v" N1 D: _ - );if5 |+ t2 ^. Q( {9 F+ ? G2 K
- );while
7 E3 s& a3 v% m1 b% k2 Y -
" v) \: y$ D4 E, x* n2 y - (list color ltype layer thickness ltscale
" t# h- g3 M9 u( F9 h4 n+ b - width elevation height eflag
% M! U; ^2 C3 w: ~, J6 }* D) T7 t - style poly_ss txt_ss
5 c/ t3 @. m0 M) L! ]7 j. | - ) u0 B% w" d8 D. E, P
- );defun getprops& R* O7 ]" v. H% o' O* x
- / J( S! W }# t2 K# N5 S9 Z4 e, q
- ; This is a speedy little routine to tell whether the polylines in / i" I/ F# O+ |" }' x
- ;the selection set argument are of varying width or a constant value.
$ z- I4 T5 l" H3 K1 ? - ;Looping through the vertex's has to be done for old polylines when 9 j: W7 _1 U" Q. h/ G9 X8 ]6 j# Q$ o
- ;the polyline header has width values of 0.0. Basically, in this case,
: P" k! t6 g5 v6 V9 M - ;information in the polyline entity header is abmiguous. Width values & H3 y, ?0 X- X: k; h. u
- ;of 0.0 in the header entity could mean the polyline has a constant
8 H0 G! C) M- ~ - ;width of 0.0 or it could mean that the polyline has vertex's of varying i# Q1 M, p& \% ]
- ;width.
, R0 ~+ h% U9 |# ] - ;& B9 J1 @. [* L* j) U; [ [- O& J
- ; It's all in wrist. Err a.., I mean it's all in the 'if'
$ [- V( z' P- }7 T. e - ;;
2 ~$ J+ d* f! j7 Z4 x W3 B - (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)
" J) z* T3 M" g0 {9 G c
! }+ p; s3 ~4 d+ G. ~ N- (if ss
3 }, { J% n# ~1 G) X8 T5 N3 ^* r - (command "_.select" ss "")
( [' z1 D8 O5 X - );if
% f9 F$ p6 w9 \5 O2 Y% E/ ] - (setq width "". M7 N& Q o8 j5 N: x& k
- flag nil- {; J6 p5 \5 G* u
- flag2 nil
; c- M! D, u8 `1 l% I1 C - );setq9 q: M. E( ? a, @
- (if (not
: F0 k; k; R. V& h& Q( H3 V - (and ss% _# n$ ^! ?1 Q
- (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq
9 i! U+ i3 E. h: E - (setq na (ssname ss2 0)
M" \! p, S* G; A& ?7 r - width (cdr (assoc 43 (entget na)))
" S! C; s( p# z1 K - );setq4 k" |1 O: E0 p+ J& L8 p
- (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")
( c- ^/ E9 [+ I6 k - (cons 43 width)
* x$ h' ?3 S% P8 l. A3 [4 d+ \( ~ - );list
0 A( x! L% f0 a( G - );ssget1 S3 D9 E' J9 M$ ~6 n
- );setq
4 g7 Z: m- q5 y: o; r, x5 k - (setq flag T)
' N1 l* F' y" Q$ Q/ ], }- u - (equal (sslength ss2) (sslength ss3))+ w; d: a& y6 G- U- v& q
- );and
3 E- Z' _, L9 P) j, L7 N2 M" H - );not
) ]0 x4 ? G x! Z - (progn# u( E- b2 _0 j# ]$ P
- (if flag9 \8 h# W7 z0 f( Y
- (setq width nil)
/ y3 \0 t0 e H: n - );if
3 C/ Z, D3 B8 L - );progn
: _& q( R2 q: L. [/ D - );if
" s7 ^' Q+ d/ d6 g9 l$ H/ P, l - # `2 p. n% L/ f- \% c: [
- (if (not # m! [) w C/ i0 V) d
- (and
, N9 A" |7 l- _: c" N - ss9 h$ a* B3 v+ f4 U' `! u+ P: P
- (progn (command "_.select" ss "") j- b+ e! \9 p q5 z5 W
- (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq
. C% c% {6 s0 B. P0 Y- k# p( i - )
C/ W% H. ]2 u7 u7 l' U) g1 p - (setq na (ssname ss2 0), U. |. h& e2 t( |+ r
- e1 (entget na)
2 k1 a6 G' Q4 l5 \ - width_a (cdr (assoc 40 e1))3 x5 P+ d4 L. }% R. h; J# g8 p, M. y
- width_b (cdr (assoc 41 e1))( V0 w5 u! z* c( F! g0 m) I
- );setq
3 P1 H! |3 }4 }- @, A# H - (equal width_a width_b)
6 z* O- _* F! m2 a - (setq ss3 (ssget "p" (list '(0 . "POLYLINE")
6 h1 S# X2 S4 |. x - (cons 40 width_a)
a. G% v) f! l3 E8 y - (cons 41 width_b)
% s$ O/ P" M' m( p+ ]0 u - );list
; Q* I) s" y! |2 o3 z - );ssget- x8 V2 t9 ^6 g M2 `
- );setq! I* ?1 b0 a' D8 @* b+ G% ?
- (setq flag2 T)5 M9 L! o w/ f
- (equal (sslength ss2) (sslength ss3)). E# m2 {8 j2 ~3 K, C- A
- );and
2 _5 q# Z* [% I - );not
* K& j" G. f! \- k. C# ]' w - (progn
* e9 a4 {; E8 d - (if flag2
$ P3 V4 w; |/ J B4 ?5 w6 X# b z+ w$ T - (setq width nil);setq
" H; P8 v, B' T1 L7 [ - );if
+ n* q2 W2 Q( ]* D; Z& b. {) ] - );progn then, Y3 |. |0 A# Z6 f( b7 x/ ~
- (progn
8 L( B$ ~" `/ o9 W2 g - (if (or (equal width "")
+ Q$ R9 C7 F( k# Y; j7 M' Z7 v - (not flag)
& t5 k* k# T* h/ j/ m - );or V" |0 d) s$ x$ W. I1 r8 w; e, v8 z
- (setq width width_a)) [) F0 s% f r
- (progn
& d8 g% P8 L, D5 ~( m& @8 Y+ p - (if (not (equal width width_a))
7 V6 z( h9 U% l2 p0 Q. q: f - (setq width ""). r; \5 L! Y4 E e- ]1 _
- );if
- J% x4 k' p9 V/ a/ y- R! j - );progn" ?$ D$ u" D( D6 Q8 z
- );if
; u, G( f% Q# e' N; |% L - );progn
) }& s$ T8 u H' Y# P - );if
5 W( R n+ T6 | -
3 O( a! I+ E' P1 L9 e3 ~ - & I& P& f" O+ z- \6 B' J
- ;now for the special handling for old polylines
5 I) ~* J- }) l6 B( E- B - (if (and width : P6 H3 b8 J! o- z/ i
- (equal width 0.0)
; w! _& G% M% U& Q - flag26 u& ?6 {1 q% }8 n7 s
- );and * q' Z& G' v# A7 O" G1 }
- (progn
: Y; @: z1 J3 n( Z: s! D -
* r1 J, D+ _% W5 s# P% o - (setq n 0);setq
- f9 [# N/ ?! e( }# n$ l) \* h - (while (and (equal width 0.0)
& k) }, x- S4 Y4 b" p; l7 B/ d - (< n (sslength ss3))
+ i9 V$ W z4 R- x - );and A4 B' Y; |6 d& `0 n: D
- (setq flag nil1 B7 n1 |3 s! f) `$ W$ q2 d! T
- na (ssname ss3 n)
7 M6 Y5 ~6 f. B' b) j* v2 B, h - na (entnext na)$ h3 _$ K3 g6 s
- e1 (entget na)9 f: G0 `" R6 l% a$ J e
- );setq- m; p4 h5 t% m2 B: {$ z
- (while (not flag)
/ r+ ?: |5 [# S - (if (or (equal (cdr (assoc 0 e1)) "SEQEND")
/ y8 E B, }1 U/ @7 P - (not (equal (cdr (assoc 40 e1)) 0.0))
. L& A+ W9 W# N3 S: F- l - (not (equal (cdr (assoc 41 e1)) 0.0))
- o# b$ }! U+ t0 f" ` - );or
u1 s6 a7 J" I$ L9 A - (progn- Z+ j1 H4 [+ G! U' u& i6 b6 [
- (setq flag T);
* p9 K" @+ Q. F# u! n0 ~/ ~/ o - (if (not (equal (cdr (assoc 0 e1)) "SEQEND"))
, D }( U: `) `8 Q" \5 _; c - (setq width nil) 9 z) m# V/ c }
- );if
6 G$ O0 |7 _7 F8 x+ y2 A* G - );progn then jump out of the loop& } a; E( K/ r# n6 T% Q- F
- (setq na (entnext na)3 P8 H) a! L( i- h" ~2 ^! |: G
- e1 (entget na)
% M' e+ w% F* K - );setq Y% }3 B+ k+ A n3 z5 T
- );if
6 e/ |: w" C# G; D+ p. l: l& V% w3 u - );while
6 _: U. O, w: U - (setq n (+ n 1));setq
* P' i! Q! L! ^% B4 f - );while
f" q) w- v! L$ g& T( `$ n5 h - 0 v9 ~: y1 Y3 G1 x+ y
- );progn then it's a legacy
" r# v. j2 q+ k" l - );if ;legacy polylines that may have varying widths
& s5 f" ~: g. u( W6 `
% ]6 r% }/ p" g- (if (not width)
& S( u+ r) e: F- T - (setq width "");setq% {2 C4 _7 z/ H7 O+ `, q# k% z
- );if
8 E2 A/ ~9 N$ T! W, a4 | - (if (not (equal 'STR (type width)))$ y/ E6 z F* \, B! K5 _
- (setq width (ai_rtos width));setq
, b4 F0 t4 Q! ]2 `0 Y8 a - );if 3 Z* I9 `6 z6 Z0 k# c! k: Y4 t
-
- u3 t" V6 t1 e8 f( W d& g - width / O- g/ e/ L( t4 v# o
- );defun pl_width_getter5 O M" Q* \) ^/ V
8 H$ x# q/ [ Z9 T$ ^5 O5 a% y-
2 e; {* ^- t- R3 o, s - (defun match-col (/ ncolor)
5 [% |: X4 w8 j( |+ P7 F - (setq ncolor (cdr (assoc 62 elist)))
7 ]% I8 B3 S7 P$ k" S/ d+ V - (if (not ncolor) (setq ncolor 256))/ u: x- y) U/ ?* M
- (if (/= color ncolor)
1 G& g/ j4 j3 Z* \* @/ ^ - (progn
+ c$ g/ t( r) E' F' X4 u! f - (setq chk-col nil)
: F! Z+ Z+ I7 p4 g9 n7 E - (setq color nil)
3 o/ w* y; T8 d/ g1 ?0 d$ l - )
& H; S' Y4 B0 f2 i3 g3 L4 Z3 b( l! W - )9 C5 l+ I0 k# R m E: s/ u' g
- )- n1 \7 N* W" O
" Y8 o) b1 Q2 |( z0 d- (defun match-lt (/ nltype)
$ a$ i# S2 O4 R2 R - (setq nltype (cdr (assoc 6 elist)))2 U5 H& O' N( ~5 D
- (if (not nltype) (setq nltype "BYLAYER"))9 q% w j: p* T& `- A
- (if (/= ltype nltype)' i0 E/ o P7 D7 K
- (progn# g# O5 B' ~7 ~' k2 |
- (setq chk-lt nil)0 @0 i; I4 h, f7 Z
- (setq ltype ;|MSG0|;"Varies")
8 R1 G5 h6 B8 A. |, l4 A1 O - )* i# n3 X1 N) ]* j! d
- )
4 u) ]+ O8 d8 a - )
1 {) @1 D. ?0 D - ( X0 D- r* h, N' D
- (defun match-lay (/ nlayer)
% W, u+ ]* q3 C0 j4 s3 i, T: M; v# C - (setq nlayer (cdr (assoc 8 elist)))
7 o7 d8 D* l0 L/ T2 d% i - (if (/= layer nlayer)5 {) E8 @) B- L! J6 _1 O* t% }
- (progn
j4 C6 D u: v% H: F3 W - (setq chk-lay nil) o( p: w p( J. m# X+ I
- (setq layer ;|MSG0|;"Varies")% t% O6 [: a! V2 E/ ]
- )5 S/ B/ s1 E+ d/ k" n4 g- \
- )
; }3 u% K$ D5 \8 @% a - )
! I6 n1 p: w) b9 U: ^6 x - ! x! C( U# `$ b) T3 V w
- (defun match-th (/ nthickness)
5 w7 g$ D* E% U8 k1 f+ Q# O; Z& l - (setq nthickness (cdr (assoc 39 elist)))
7 a! Y. ^4 j$ w8 }2 F, H: M - (if (not nthickness) (setq nthickness 0))
. g# i( R& ^/ @2 O4 W" t' [ - (if (/= thickness nthickness)
- y$ Y) {# c; w4 s - (progn9 Y; M8 {% e" Y" `: `5 X
- (setq chk-th nil)
) k6 b4 m! p+ Y( n% ~ - (setq thickness ;|MSG0|;"Varies")
; y: U7 n; _+ n& ~0 R - )( d; y/ ?7 C6 p4 y& t0 F( S
- )
4 d% E1 G8 o1 [" u" ?. a - )! I3 ?3 `( c2 r, H* _# r
- 8 |( B" Z2 L) [6 A7 K& ?0 D
- (defun match-lts (/ nltscale)" z' j# f4 `+ z* r
- (setq nltscale (cdr (assoc 48 elist)))
1 g8 M- x- j: ~2 L+ j: }2 N - (if (not nltscale) (setq nltscale 1))
5 n, ^( S' k1 Y# X: ? - (if (/= ltscale nltscale)6 m2 k6 R3 j8 }2 A2 E) d
- (progn
7 j: H( {) p8 E( j2 S7 K6 O+ P; o - (setq chk-lts nil)6 _- p# w3 p" p5 ~
- (setq ltscale ;|MSG0|;"Varies")
% |0 s; L. E9 t8 G - )
/ @6 p2 `1 M$ N& q6 p2 X - )9 V% [: O+ b5 \% r9 V" U
- )
* ?' H0 n; h3 B
+ ]* ^/ G) X4 C3 X' a- ;;
/ j0 @! e7 U9 b: D+ ?* y - ;; If an item is a member of the list, then return its index number, else D" o6 u$ ?' N5 e8 C4 ~/ {
- ;; return nil.* u+ E, N }. x
- ;;
0 l& \2 l9 H1 U - (defun getindex (item itemlist / m n)+ r0 u% z: j4 N [, e" M
- (setq n (length itemlist)). _( N4 @2 x4 ` o. y" X7 j
- (if (> (setq m (length (member item itemlist))) 0)
" O' s; f5 E0 e% s) G( c# N - (- n m)$ r; l' H6 l1 _9 W3 z7 c
- nil. W/ E2 Z: S- I7 A4 H1 M, z! F
- )2 t G3 k! o1 [. K+ ~$ K
- )
- ?) D& R. w+ K! T9 C! H2 \ - ;;" a( ~2 D# C( C& u* \7 ?
- ;; This function is called if the linetype is set "BYLAYER". It finds the1 F$ t8 {' g# M ^: M
- ;; ltype of the layer so it can be displayed beside the linetype button.
" x& W4 E' A* c$ _2 p9 Z# N6 ^ - ;;
8 j, Y N% O) c3 D* y' A - (defun bylayer_lt (/ layname layinfo ltype)
; k1 L6 T* p: E# w& J# F - (if lay-idx
5 f% o, h# x: P - (progn
$ p: S( k" u o" u* v - (setq layname (nth lay-idx laynmlst))8 p9 _5 {# z2 o% X% w. n# c' s5 z7 i
- (setq layinfo (tblsearch "layer" layname))0 ^# H8 ~) j( }/ {7 A3 j# X% N
- (setq ltype (cdr (assoc 6 layinfo)))
% h, d. k9 ^4 L* ] - (strcat "BYLAYER" " (" ltype ")")
: V7 v7 d- ]2 H - )1 I P4 P" h6 m/ @
- "BYLAYER"
5 c, v( ~8 h$ }1 w4 J; h( k" D3 M/ g - )+ @+ i/ v& e; c% x
- )
" z% k5 s5 s- \; H& d$ H - ;;5 G' w: l/ e! c6 x6 V8 A0 m
- ;; This function is called if the color is set "BYLAYER". It finds the
5 n& i3 A# m5 s2 p- ^7 [4 g - ;; color of the layer so it can be displayed beside the color button.4 x- X h1 k) \" ]2 a& H
- ;;/ I; } ]% F+ \ ?9 T
- (defun bylayer_col (/ layname layinfo color)$ i/ ~$ o# T3 G a J" {4 B" m" L
- (if lay-idx1 o) [; T( f- d
- (progn# Z. L( z1 p% ~4 ]0 H' M5 f
- (setq layname (nth lay-idx laynmlst))9 I* D+ h4 I. K K p( _
- (setq layinfo (tblsearch "layer" layname))
o$ {2 m$ c# a" J5 E& \$ B - (setq color (abs (cdr (assoc 62 layinfo))))
$ H7 ~! o( L- V& p - (setq cn color)
2 I$ B3 C/ X: i1 H( c0 r - (strcat "BYLAYER" " (" (colorname color) ")")
: @; N( V- A. ?& ~, m$ K# ?# | - )# F5 {" Q% _4 Z. a7 P3 ?9 K" I
- (progn
+ S' m* I% V& {" R, k) l: D) h5 i - (setq layname elayer)
5 e. e- _1 y7 J% P+ } - (if (and (/= elayer "")/ [3 v3 h4 |* Y; s. j
- (/= elayer "Varies")
9 ]! G$ @( I1 a. j8 l1 D" n5 { - );and5 q9 A Z, e5 l0 _! O$ k
- (progn
/ S# S4 {" D5 v& W6 H* O+ d* O - (setq layinfo (tblsearch "layer" elayer))
- L$ C* t$ U: g4 F& k - (setq color (abs (cdr (assoc 62 layinfo))))
& ?1 ^- h" O/ w3 V9 b - (setq cn color)
# d m% f- X; {/ P% p2 W0 o - (strcat "BYLAYER" " (" (colorname color) ")")
0 N* m% U* S6 {. `: J, D, Q - )
: O/ _) B8 w" E - (progn
$ r# A1 ]1 p0 h0 A. ` - (setq cn 0)
8 t% w5 _' e" c9 L7 I - "BYLAYER"4 t; J3 Z j" u6 _; Z$ Y; }
- ): L/ C/ h N$ Z% I7 i: Q+ K3 ~1 G
- );if2 k9 V5 |3 P% s; l: B' [
- );progn
& }$ J7 S2 p9 d - );if
5 [5 {: e m, ?5 z% I - )( V" r1 r2 i) Z+ X/ o
- ;;
9 B3 K6 I4 F3 V3 A( e' A - ;; If there is no error message, then close the dialogue
3 f, c# ^# y5 D7 v9 z9 M. P - ;;2 Y( l, s& W' c* T5 P! r
- ;; If there is an error message, then set focus to the tile; Z7 d3 j, t- ~ A+ U. e5 U
- ;; that's associated with the error message.
, W- R9 q; ~6 E4 s( l" }! c - ;;2 W z: s. l) v0 C% z3 w& V
- (defun test-ok ( / errtile)1 a2 B# z8 d0 c
- (setq errtile (get_tile "error"))& {4 X4 U( s/ D3 N4 L
- (cond
, [6 t, l2 s2 ^ - ( (= errtile "")
7 |2 P) I$ o1 d! ]9 G$ X: } - (done_dialog 1))5 N% ?2 U% ^- L2 i. A# J0 U6 Q9 Z
- ( (= errtile "Invalid thickness.")# t; I% ?5 _3 o) l8 p
- (mode_tile "eb_thickness" 2))
! M7 S+ I1 A" G8 f A2 t - )5 H0 I" W( p5 }9 `. \' C# ~1 ~, a
- )+ ?) d; I6 K8 n1 M% C6 A
- ;;
+ Q7 _- W. F" D; f+ H - ;; OK in main dialogue.
2 L2 z8 D9 r, N; O' R1 `9 z' Q - ;;- } V4 A# U' ~. X
- (defun test-main-ok ( / flag)
/ N- d3 F% O8 v# j) F5 S/ [ - (setq flag T) 7 W* O/ a- |( Y" A- B! n# d& ^. ~& r
- (if (not (or (distof (get_tile "eb_thickness"))2 S. c3 e. p I( ?9 M6 g
- (= "" (get_tile "eb_thickness")) |7 d# H1 {% Y, }
- );or8 J& h- N `8 t( p- e) s' H
- );not3 n( `6 G$ \ j7 g( f
- (progn
: G. v( d; ? `+ G; d - (set_tile "error" "Invalid thickness.")2 a' d2 t x5 ^
- (mode_tile "eb_thickness" 2)
! |; g5 O9 e% L. t: l - (setq flag nil);setq Y W) l" g6 r
- );progn
8 Q, ~" n# t1 q) Z2 T - );if5 d+ E. n0 `" } {
- (if (and flag
. c, M& E! E3 h& M: t4 W - (not (or (< 0 (distof (get_tile "eb_ltscale")))* i, v5 f0 S7 y7 _( M
- (= "" (get_tile "eb_ltscale"))1 X8 F: F, d% }: A! u( [: d
- );or
: ?) M# u3 w1 B G+ i6 [% q/ W) Q4 v - );not x% j$ ^2 O% z7 n# Y/ {0 O- T
- );and / G' N* w0 [$ F8 V3 [3 r2 ]: w0 l. L1 t4 R
- (progn$ A! U9 U' i& P5 H/ R: u
- (set_tile "error" "Invalid ltscale.")
1 c9 v3 l- Q/ `8 S- i, w - (mode_tile "eb_ltscale" 2)
- ~( x+ |( t; t, D; `( |% c - (setq flag nil);
* f" E: W i. Q' G' Z Y: _( r. b - );progn then
3 m& ~' `3 S8 j. @9 G - );if8 i& i% a" o0 H3 F
- (if (and flag
! y/ W7 a# B& x: P - ; Don't test the tile's value unless it's enabled.
8 R8 S7 V" f4 Q - ; We're not set up for the display-only value) ?; A `! o& G& a9 `' D$ {6 j3 ^
- ; of "" here in the error handler.
# i' T+ v" L: U; t$ k - (= 2 (logand 2 eflag)): b7 Q6 e0 U, e" d1 m2 j
- (not (or (< 0 (distof (get_tile "text_hgt")))9 e$ R$ r& r q2 y
- (= "" (get_tile "text_hgt"))
$ _+ D7 K. i, r# E - );or
+ ^9 L9 z, G& E, C - );not
6 b. U9 K- J* g3 A; t6 U& v - );and
6 w1 |5 C, h" |$ @; A" Z/ J, c - (progn E; @0 a4 V0 e" z U; [9 ?) i
- (set_tile "error" "Invalid height.")
G. i+ f$ W6 x7 E9 I - (mode_tile "text_hgt" 2)2 K9 c( {; E# c2 [/ |3 a" h8 M
- (setq flag nil);
/ b* V& [ I2 l' O0 O: i3 @ - );progn then/ m/ J: ~" G9 K5 m( d4 N6 V5 i
- );if& J3 I ^ S$ F
- (if (and flag
0 s0 X4 x; R5 J - (= 1 (logand 1 eflag))5 W9 y' e1 O$ F+ k1 @- z
- (not (or (<= 0 (distof (get_tile "poly_wid")))
2 R% d. E4 V/ F1 f - (= "" (get_tile "poly_wid"))3 I- r5 \7 k! c
- );or! j7 W9 S9 F: Y4 G+ y) X' Y
- );not
& u! \/ k! D& R' T$ ?1 i# p - );and0 u0 Y" E4 e; j5 [; n
- (progn
( y+ ?# t2 K0 c# S" E% U. l3 g' \! A - (set_tile "error" "Invalid width.")$ Z7 P# {0 ?# j8 V
- (mode_tile "poly_wid" 2)
+ L# O5 s# e+ C) L: a - (setq flag nil)
% o& t9 p+ s6 d3 v8 e7 q - );progn then
3 E# k5 [/ M$ K5 m - );if 5 N! H. y4 N0 ]+ _9 p
- (if (and flag
1 T5 L$ j6 S; X( }5 j8 i6 t0 R - (= 1 (logand 1 eflag))
7 |5 o5 n1 r: K# p/ f1 n- @5 C - (not (or (distof (get_tile "poly_elev"))/ _! M8 U$ L( q A4 ]0 @
- (= "" (get_tile "poly_elev")): f" t; o9 Y+ Q; G) I8 _
- );or
. p# O' Y |8 D' J - );not
+ _( }6 s+ F. g. a f$ N" s4 P - );and5 ]" H0 l+ A7 a2 H/ [0 ~
- (progn
; ?; Y" A* B' `9 S% j0 H. } - (set_tile "error" "Invalid elevation.")' l. {4 g" u8 }) V2 o
- (mode_tile "poly_elev" 2) P2 v, i5 q% R' w- N p* ^- k
- (setq flag nil)) T! F7 S) u% d6 U
- );progn then/ W$ X6 j% }+ p- H6 y( v7 v2 M3 _
- );if
0 R' e. c3 r. T1 R - (if flag 1 X8 C* K# l3 J. C
- (done_dialog 1)& S' g9 w! n7 W# x/ v# J
- );if- L5 c5 w( S" j# h
- );defun test-main-ok
]6 _. H: J+ t
/ u( c) r* y5 Q- ;;
1 L% r/ `; r3 ] - ;; A color function used by getlayer.* s! g$ Q/ `3 P% e
- ;;
9 `8 ?+ t8 g/ O5 w/ y - (defun colorname (colnum)
; ?. T# U/ \2 P5 A$ `3 c6 K; {, ` - (setq cn (abs colnum))( N5 Y# T+ k1 |/ E, q1 e
- (cond ((= cn 1) "red")4 n" |: \$ C P! n" [/ o7 w+ R# I
- ((= cn 2) "yellow") | V& v, K) D( X4 u# t5 I. {/ K
- ((= cn 3) "green")& V3 Q2 T* ^* w9 R9 ?' W
- ((= cn 4) "cyan")" U" t! H+ Z2 P+ h
- ((= cn 5) "blue")
! D* u, U6 f/ ]* e) C8 x4 ` - ((= cn 6) "magenta")8 i0 E, k+ D; R/ u j
- ((= cn 7) "white")
; j; y8 E. e: j5 g3 f* E u - (T (itoa cn))( ]/ a, h2 h! n
- )
) s) [) @9 I9 |( k8 _: I+ W; @ - );defun3 O8 B) U8 P# M" D" Y: l9 X% x7 Z
- , r) G* @+ V9 R4 Q/ t& {
- ;;; Construct layer and ltype lists and initialize all
8 Y1 x6 P9 m' Y) i9 m( l3 r' p/ z! K - ;;; program variables:; \ W8 \: E& t9 d7 v6 t
- 2 e( A) F2 v5 O: _$ V, k8 e2 n# R
- ; (makelaylists) ; layer list - laynmlst E; u. x8 v/ C/ \! a' U
5 L2 G+ c8 L, Z( W
8 V6 S% Q: A' j4 F8 m0 O- (makeltlists) ; linetype lists - ltnmlst, mdashlist) l' m! h* s/ F/ g; e7 V# x
/ K: ~1 Z: v6 j- ;; Find the property values of the selection set.
. i6 O8 P* o! u( [+ F$ _ - ;; (getprops ss) returns a list of properties from
8 b% b( ^6 @% A - ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).. R4 `2 x% J# s7 c: ~$ z4 R
- * I. B* J. s* J( O( ~
- (setq proplist (getprops ss));@rk interesting things happen here
( B6 ?+ H9 Q; T4 ^7 G3 e- \ - % _, o4 M+ t6 @8 R% E3 G
- (setq
0 p1 i9 s1 Z) R& ~: e - ecolor (car proplist)
! O$ x: e6 ?, y' a4 d - eltype (nth 1 proplist)/ D, z3 W5 z9 U& l4 @4 T- ]) q/ N) n
- elayer (nth 2 proplist), g# i5 Y& C' e+ |2 M3 h; V/ T
- ethickness (nth 3 proplist)
0 X/ s) h6 D7 ]" [; Y2 p# a - eltscale (nth 4 proplist)
0 e" V" U' }; J4 N( P - ewidth (nth 5 proplist)# q% Q! ~! a$ O2 ~9 J
- eelevation (nth 6 proplist)9 \) p+ F+ h) }0 U6 n- q8 h
- eheight (nth 7 proplist)$ j% Z) K6 Y' ]. q9 c
- ;etype (nth 8 proplist);commented out and replaced with the line below. RK.8 t C$ R$ ]7 h) K
- eflag (nth 8 proplist)
}+ w/ |' k3 e# A3 R2 y - estyle (nth 9 proplist)
2 t: Q- c: f* H) f: K3 j5 w - poly_ss (nth 10 proplist)
- T$ D0 w3 F8 ~1 f* W - txt_ss (nth 11 proplist)$ I6 h. n$ n. s- [/ W, e8 b
- );setq; N# w$ j% p& t' {
- & ~& ^6 L% I5 d9 K; m# o
- ;; Find index of linetype, and layer lists B5 Q8 H9 k* a$ J0 Z
- (cond
a9 k: q6 y- l' S% D: D8 _ - ((= eltype "Varies") (setq lt-idx nil))8 a1 |( N; n. ?
- ((= eltype "BYLAYER")
* h, d @- Z* r( ` - (setq lt-idx (getindex "BYLAYER" ltnmlst))): `; b' ~4 T( G* q4 x1 u8 g
- ((= eltype "BYBLOCK")( ]/ l( ~( d, _
- (setq lt-idx (getindex "BYBLOCK" ltnmlst)))0 e8 T) U w# {
- (T (setq lt-idx (getindex eltype ltnmlst)))3 j( Y2 g' m4 @; M
- )
8 Q- f" e# G U0 { - (if (= elayer "Varies")
, F8 F# |% \( `0 F& E/ e - (setq lay-idx nil)3 F$ r" D: X; N" P1 A' P6 x# H& `1 b
- (setq lay-idx (getindex elayer laynmlst))* ~& R! w2 z* l
- );if
1 j+ z* v( y7 Y8 @ - (if (= ethickness "")
, b" H& f( {) [9 ^; E* { - (setq ethickness nil)
& A, Q2 t5 [5 {% o; ]$ i' ~) _+ _% Z - );if% l7 B' ` H: j. n
- (if (= eltscale "")
. g7 g' V2 e8 ]+ |5 M7 i: Z: R, V& ] - (setq eltscale nil)# Q1 ~" N! I/ M
- );if5 `. [" q6 V5 O( R
- ; p S2 p! z* Z
- );defun ddchprop2_init ; end (ddchprop2_init)2 [; P4 q' k. H+ f' s. b
- / X( T8 ^$ a5 k- k
- ;;; (ddchprop2_select)1 x( K+ Z. i2 B& u# U% K) G' b
- ;;;4 j7 l4 @8 _* v/ ^4 u1 f9 f1 U
- ;;; Aquires selection set for DDCHPROP2, in one of three ways:
, J9 A$ D2 q. ]( j2 c" \9 P6 k - ;;; Q$ v8 Q/ }9 _% D# { x( ]
- ;;; 1 - Autoselected.- [& B( y1 q: k* U3 X
- ;;; 2 - Prompted for.- l2 r" \5 m9 c4 d/ `
- ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )
6 ?/ ]( @/ ]% C+ U: k9 R - ;;;- k p$ x' ]4 m0 @7 R
- ;;; The (ddchprop2_select) function also sets the value of the
, s) a1 l5 T0 m9 H2 A - ;;; global symbol AI_SELTYPE to one of the above three values to. e' f3 X# k, [6 ^/ Q1 J" d9 f
- ;;; indicate the method thru which the entity was aquired.5 j3 W) v) f2 X
- * @& u" r; K7 |% q! J" k* \" n5 F
8 X ~' J! ?. T- (defun ddchprop2_select ( / )5 E3 r6 X. M1 N1 }
- # P; k& B! U% c# B1 n' y0 E
-
% T+ Y, ?) l' `# \- l - ;returns only entities in ss that are in the current space.
, C* c& I. A- c# y - (defun ss_in_current_space ( ss / a cur_space ss2)
, N, m/ M# s, S+ k, \) ?. ~/ @
. F5 h, Q3 @' G& ~/ o# Z, s- (if ss! Q f0 x4 c5 `; ]
- (progn( t9 Q; |, T$ O; a
- (if (and (equal (getvar "tilemode") 0)
7 I. g" S8 e6 J' u - (equal (getvar "cvport") 1) ?8 D* H& D9 u4 ]
- );and
+ e4 v$ d. b% |; P - (setq cur_space 1);then paper space is where we are.$ x$ l4 {0 S4 k8 E
- (setq cur_space 0);else model space.2 F( j8 l$ K5 p
- );if ^- e, B& k% G- `8 X. h7 d2 y
- (command "_.select" ss "")8 b2 ]4 V( J+ ]4 f ~6 x5 s% J
- (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq
, s% S D6 Z9 X% d0 b0 `) ]. t - (cond ;;;;;tell the user what's going on.9 k/ C( F h7 q9 T8 q' @
- ((not ss2) (princ "\nNo objects found in current space.")). e4 | c! I+ G+ {4 [) R
- ((not (equal (sslength ss) (sslength ss2)))9 q% w6 z( l" ]) a E
- (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2)))& K* z4 C; W5 t+ I0 R7 A' ?5 A
- " object(s) were not in current space."
, G9 \2 d( e7 i1 {' b7 u: G - )) u, X7 s: J8 W6 o# R
- )
! N# _4 n8 z8 F' ^& ~+ L - ) % s5 |1 w: q. G0 d* {5 M! b6 u
- );cond
' u3 ^ q1 K# \8 t8 O - );progn then/ w$ r; f$ U: b3 ]7 F$ A+ |
- );if
. S' |# f, d: N! I - ss2
5 l o. m1 v% ^9 `9 K" y - );defun ss_in_current_space
' S1 O' _* a/ z O; d* O
( ?/ \! l/ U& ~/ L- ) F5 C9 ?; _3 Y
- ;;;begin the work of ddchprop2_select! N( M6 M" T+ u2 }# [ i( f, ]7 D9 d
-
6 _- r" M4 o6 b1 J6 O: L( i - ;; temporarily restore original highlight setting.9 K4 G. k0 N9 Z) @
- (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))' }0 g0 s$ {3 Z$ k/ ?8 o, Q! z
- (cond
y! N; [; |) G% y# I, e - ((and ss . Y- W# o$ o/ D' M" H# N" U
- (eq (type ss) 'pickset)
9 P/ P1 Q& {$ T - ) ; selection set passed to! o% P2 n! m, v1 a6 W- ]" p
- (cond ; (ddchprop2) as argument
# w) y2 r k! K" e/ P" [ - ((not (zerop (sslength ss))) ; If not empty, then* r# R7 G% w) x7 [5 d: F2 F
- (setq ai_seltype 3) ; then return pickset.# `/ Y. |5 T# H0 ]7 Z7 \0 P
- (ai_return ss). n6 ]: x+ c8 U4 Q9 W% L
- )% W# l* U5 J- U# B
- );cond close% w% C* t' R9 X' G; I5 G: A1 u* }
- );cond #1- M! g. o! V2 w/ D: x
- ((setq ss (ai_aselect))) ; Use current selection
1 K. l; L" J2 O9 B t1 u' S$ C# a- c - ; set or prompt for objects
2 B! U9 V. r! o. o - (T (princ "\nNothing selected.")
! h' b- \: i- ?2 j7 p; s1 u - (ai_return nil); h$ _ @& o/ c8 X
- )
! w" c9 I4 @6 x% \! G( C - );cond close4 \: B; ^# A: Z3 n5 c, Y5 \
- (b_restore_sysvars)5 N3 S2 ] }9 C! O5 B8 h, C
- 8 f; C- o7 p) Y. r. U" r
- ;(if ss. Q% @4 _( F% C8 ^* `( x7 s
- ; (setq ss (ss_remove_locked ss)) . C. R( e1 c$ F" {5 k
- ;);if
. e8 F8 ?8 j* v, Q! m; N; f - (if ss5 X5 w# [+ s- s3 A/ |7 ~7 D, M
- (setq ss (ss_in_current_space ss)) 8 L8 v1 x0 i1 j* t1 ]
- );if' ?, `8 c# H0 e! A- g. q5 U0 ~! |
- q7 |( u+ a7 n8 y; h- ss
& c- Q- o4 d; ]0 w - );defun ddchprop2_select( T, E: A4 n% o# l
, V7 T7 U% m/ v) o U
1 d9 o9 T7 t; f7 X9 t& z4 i. V3 d- ;;; Define command function.
& i* Q' q G9 Z& ?5 K - (defun C:CCH ()
) J; ^) s+ Z3 E6 n8 E% l* K - (ddchprop2 nil)3 A: S8 V3 D" l3 k
- (princ)
0 ~: S" @# M% q. S k/ G - );defun
8 e% K$ q$ g; ]8 z
" ]3 ?7 ^+ x0 z" I- & Z5 Z& ~/ ^* b( s7 s- @
- ;;; Main program function - callable as a subroutine.
* g0 n1 ^3 @# Q" T+ I0 s4 }4 R - ;;;
8 A# U8 J& g! V$ h+ U5 N, H - ;;; (ddchprop2 <pickset> )% d* a8 y- A. N6 U8 R- G9 P2 \- ~
- ;;;
. X8 X" q+ P1 h8 V - ;;; <pickset> is the selection set of objects to be changed.
( o6 {# r9 Z+ @ - ;;;
2 y3 f& e2 ]$ h) R4 N - ;;; If <pickset> is nil, then the current selection set is. \) v. d5 _! N( z
- ;;; aquired, if one exists. Otherwise, the user is prompted
- k% ]6 x9 M' Q8 f: x8 _ - ;;; to select the objects to be changed.
, _# m' v" |# G: D* ?4 s - ;;;
! L# A; V) K3 s( x2 Q \5 E" f# S - ;;; Before (ddchprop2) can be called as a subroutine, it must
! I; g) h6 W! P, d* _ - ;;; be loaded first. It is up to the calling application to: d& }, v3 m3 |8 ^5 O4 i
- ;;; first determine this, and load it if necessary.6 j$ b; w- x+ T( }6 ]2 s+ e; l$ H
- 7 k8 d" k9 x1 A8 F) d
- (defun ddchprop2 (ss /% G0 r( s' O/ c; A7 j
- - O9 v- P2 D3 M
- a
0 p' r1 R" l. V& f - add-mdash, \, x$ n8 E6 i+ W
- assoclist: p0 L5 E" ?! Q. a' f9 N1 B
- bit-70) X7 K. w' [7 f: l2 x
- boxlength
/ f+ q* d8 L3 [ - bylayer-lt* q% Y7 @5 H) o4 p8 s# i7 U
- bylayer_col! b7 s) h% L' M* v% a
- bylayer_lt. D/ C4 l- R8 {" n1 z: D2 H) |( j
- call_chp2
9 x% P# w8 g0 U& B3 u - chk-col' B* w: y. D p3 C! P6 A
- ;chk-etype ;var removed by rk % `+ F' f- \6 d0 E& G0 ?
- chk-lay 2 c/ C( c0 x# L+ d+ @8 J
- chk-lt9 S" |" m2 X! Y8 |
- chk-lts ;var added by rk 1 v+ F' Q6 N, {( b. O& Q
- chk-th
5 J0 r4 s. q2 |8 `3 s" a9 Z9 g0 r - cmd7 I% B' }% L9 I( W+ N% s! D! O
- cmdecho
; L' z- u$ V5 {$ R# v9 @/ a/ K! `) S - cn& D& z; {+ Z0 P
- cnum2 x- h$ n4 T$ Y: P+ t
- col-idx) V8 _4 O0 d8 L0 Q. j, Y
- col_def& H: l$ e! k2 L7 W9 U1 h: x/ @' {
- col_tile- o; B7 n4 o5 [ |, t4 r
- colname
6 E1 d! `8 {& W - colnum5 X- f! @ w3 B8 u2 b
- color7 v- M* P" a9 w s
- colorname B/ f! ~% K3 N; r' X7 D
- cvpname0 Z$ m# k* m; v8 p
- dash' i- t5 W8 J% N* g3 g( X
- dashdata& \6 M: y2 V0 Y. t5 X2 i! o8 @
- dashlist
2 n7 |# U* Y/ N; Q" {0 M - dashsize% ~ Q! g3 g. ]: }- I
- dcl_id9 {$ q, N) \$ {, k- h- q; H) v3 ~
- ddchprop-err
/ T. v, D( T) e F - drawpattern
# B0 b# Q3 Q3 e/ k$ ~ - ecolor, {# J) E: x/ q* \* J5 [
- eelevation
4 a2 { i3 M. k$ q V$ S - eflag2 x" d/ m* r; f
- eheight
, G. a2 B% p0 l* K8 s) P - elayer
( a ?) q/ S" n7 @$ @/ u+ [9 g% g - elevation2 `7 p0 g) T4 L, Z7 ?5 X8 a& @
- elist1 P. w! k( `- }
- eltscale
; W9 j4 N V# r4 M `/ D4 O) O- ~ - eltype
) J3 Y* m$ o% R# k( s7 T' B/ t - en
3 {/ P: M& U1 j3 u% G - ename! S0 n5 v! ^, v W1 K
- ESTYLE ;var added by rk
- B G9 J3 G% j$ s - ethickness9 p% N, N& c# y+ [' b& ^
- ;etype ;var removed by rk' E& F( `/ V1 P, ?- Q& E& h. d
- ewidth
, @& w! y0 e( b1 }+ V% o" C - fchk
3 @. W& v" e" U0 s* H/ G% B - frozth
/ h L6 e7 y: Q2 j" H9 i8 X# E - fx
$ d1 x; p3 ?3 j- S - getcolor
# W/ ?+ U9 f3 F+ X, ~ - GETELEVATION ;function added by rk
( v$ z; k) E: B- y# ?: ]: R; R - GETHEIGHT ;function added by rk; O/ [; _$ c- z. L
- getindex2 A) l8 \+ m0 J' L6 {, a/ s
- getlayer
+ d1 U: o* Y4 V: c - ;get_locked_layers ;function added and then removed by rk
7 I2 c8 w6 N n. v s, D* ] - getltype
0 j$ S0 b M& N/ ^, a - getprops
) J; c0 ]' L0 q- B& _2 X6 n. F - getscale ;function added by rk: G. h! r* ~$ T3 W5 A
- GETSTYLE ;function added by rk
; j1 |) ]3 A8 S- q; ?# o' y# M6 U - getthickness
9 ^) [) }4 J" w/ o" J' p) b+ r - GETWIDTH ;function added by rk" u5 \8 r U* m; b: L, [ Z) q. E- d
- globals. `1 f! V+ o% I" O, e$ {$ V
- HAIR_STYLE_LIST ;var added by rk
% ~7 a2 Q. Q0 q4 M8 P - height
) T' F& F) R4 D+ w6 q - index
1 N/ d( q- c2 y" k5 p8 ^ - item
, d' \7 c& t% p$ L - item1: r6 I3 v# e' Q3 t% f% V: y) K
- item2( u2 W6 x6 y7 k3 E4 h$ O0 K4 s ]
- itemlist/ h% T/ z2 G$ b( n8 X/ y
- lay-idx
1 i& m: p$ p2 P3 w7 { - layedit_act
3 A% g3 N t& n0 q9 j - layer/ G0 W3 Y1 V1 ?) G0 F) r5 ]5 M
- layinfo8 J5 [) w& @! C8 [/ r
- laylist
3 T, `2 T" V! C$ @) v - laylist_act8 N, p; V3 e, l
- layname! z, O3 B; T* z* ~2 M5 d* I" }
- laynmlst( p: m& C' e4 m! q8 ?+ K
- layvalue
& m1 C" F8 V: M4 p# s: u - linetype
- v8 \" a% a% Y# K Y - list1" |8 Y' m2 f2 I6 q
- longlist
- d4 k: j. {' R" z/ w7 W1 y# f" ? - lt-idx/ `; z( X) B* [" h' U* O
- ltabstr/ d7 ~6 s* k4 {5 K$ W5 a0 f4 |, C
- ltedit_act8 x4 t1 `) D$ g; w' J8 ?
- ltidx
& b0 q3 Z3 @6 o: x0 k - ltlist; o0 o( j# ~; u( X5 V* s* Y5 c
- ltlist1
# @" Q) j" t3 A) k5 }: @ - ltlist_act
: o! J* { A$ F' I, T - ltname2 X% W1 h. }& Q5 o7 |! X
- ltnmlst0 w. \: P9 k- D7 m0 ^; k
- ltvalue
# T3 H/ i) l% C. @5 a - ltype l* V- d& d5 ~7 Z
- m
' `0 k7 s3 U7 X! A9 p2 W - makelaylists( k: n- ]6 f& i! R! p) N" D ]9 ^
- makeltlists
% C2 `% D3 [: l2 | t* v" [" Q - match-col
; n/ O# G' h4 \" A/ f- { - ;match-etype ;function removed by rk4 n( I" |) y. {6 t" @
- match-in
( @9 s* b- ^" q& R - match-lay/ W: T4 o) }: q1 j) K
- match-lt! J3 Y# y9 r6 C& @7 c; K/ F4 {
- match-lts( w8 D4 ?; E: S1 F
- match-th
- K1 a" l. {& @5 d& g% Q; G) \, B7 ~ - match_col: ^, v ^- Z. B6 W! R# n2 W! U
- mdashlist
- u' b6 A" ]6 Y3 r+ i - ;MPOPLST ;function added and then move to ac_bonus.lsp by rk' P9 s2 P( m, f8 d* R) }
- n
. r. I1 {# j$ ?/ Z e - name
1 g4 y% i* q: j9 @" Q* B9 F - ncolor
1 I: r" i8 I" V - nlayer+ D. }) J" |6 I) E* `
- nltype
. Y# E. u6 W4 S: l3 U! h - nthickness* b7 A# h) e" `
- off
. b: h7 J( H+ C" e8 o, I1 F: w - old-idx/ [; D. r |$ H6 `7 \5 W
- olderr! ?$ ]. z, a# G; G# q% ~' f! C
- on+ {" Q, A* A+ U; J' r
- onoff
) ]' m4 V) W8 l- X - patlist2 e. N; H; |' r& f
- pattern9 G9 P% g( `" I+ g! Y* Y2 S: p
- PL_WIDTH_GETTER ;function added by rk
( M1 p9 u1 B2 C$ ]; W5 e; M - POLY_SS ;var added by rk
* v0 i6 B0 \$ p, T3 E - ;POSITION ;function added by rk and then moved to ac_bonus.lsp$ q: z1 F- ^+ ^5 B7 @7 j [
- proplist
% O+ M$ s2 ]& h' a: {. z/ f - reset-lay
4 f- }7 v6 t8 z - reset-lt$ }3 a! K7 s6 p# M9 L
- s
! P6 Q+ a0 M- r; H) B$ t - selset2 q5 K1 F/ a* F; p0 f S; m
- set_col_tile
! `% C+ Q7 q: Y, ^' E - sortlist
5 P; z9 M' p9 b/ z2 S3 G3 m' o - ss# Q8 l3 I7 s! s- ]% g: s
- ss_in_current_space ;function add by rk.
4 _& Y1 s" A N& d2 i4 M - ss-index
4 J/ E# s9 ~8 _/ I0 E% n- K" Y - ss-length
^$ x. z) b+ f, B" R' \ - ;ss_remove_locked ;function added and then removed by rk.4 H& z. T4 n4 C
- sslen- E* X* M$ _0 ^, [$ [
- temp_color( V, g# V% @9 o {+ A$ K/ w3 u
- templist4 C$ ]# K* q. @/ w) n U+ F
- test-main-ok
- | B, l* {! m7 f+ ^ V - test-ok
6 m; K8 I$ u' k' E! v& O+ {$ ]# H - testidx+ |8 O) N* G* X: Q0 R5 Z+ `
- testlay
( N) z. Q+ I- Y2 W - th-value! g' [0 N- Z8 c
- thickness
+ G2 k/ l9 W) U# ?0 I - tile
2 I7 s; I2 _& m# U; ? - tile_rect
" X: N( A. R0 T( W - tilemode
& G( W# K) @+ b& G4 d - ;TNLIST ;function removed and moved to ac_bonus.lsp by rk2 h: p. X U d7 c" U9 V. R
- TXT_SS ;var added by rk ~ Y- a* A) a5 P4 O
- ;undo_init ;removed by rk.
( \4 {/ E% F( Q* I4 Y0 \- v$ ~ - vi
" P; y# Q7 s4 B$ v - vpf. m; r* G. R+ Y7 a
- vpldata
( ^% e( [$ E, a, m - vpn, E P) f9 M" F2 \4 q2 v
- which_tiles8 w- A. W. j( R
- width, J9 K$ a8 g7 X, _! n
- x0 w" t3 E) {% m& _$ `8 w S
- x1
5 k4 l/ H7 K; I+ o+ z - x2
& a8 Y3 z5 z& t% v! x$ W3 @( \ - xdlist$ `0 X) W, m5 q# M6 y3 c
- y$ F: m7 D) p5 N8 k
- y1+ g. \6 n* }% ]! ], [" n- W
- y20 K, u8 A' B$ T
- )0 j5 X2 F" G( ?1 M% r9 Q: s4 h
& v6 c1 M3 o6 @ Y, O, ~- (if (and (not init_bonus_error) 1 S1 } t1 J9 s1 C% C
- (equal -1 (load "ac_bonus.lsp" -1))
, V1 Z1 Z z7 B6 @1 y - );and
; Z) ^9 T9 |& U+ V$ l ` - (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))2 i; Z' ~& _: m/ U1 l. x
- );if
; k) l5 h3 S7 b - (init_bonus_error (list* C% s0 T% e8 |! K6 c
- (list "cmdecho" 0 ; ? Y4 W, t; m/ }! K) o: c
- "highlight" 0' W7 K( i: g. B b* r' w
- "regenmode" 16 q$ X! a w# M( Q9 D1 |
- "ucsicon" 0
3 }5 a# L* V( c8 `9 j/ } - )
/ u2 J/ I0 ^9 L+ a) Q/ B( Q - T ;flag. True means use undo for error clean up. w2 o) v4 g( G2 h1 u: n
- );list 3 g, g8 K4 m) P9 O5 Q
- );init_bonus_error
5 x4 s% I# L* R3 y, T `# j/ l/ `/ S
$ t' ], N8 L2 n3 V& m- (cond6 B; K5 X2 t+ l w& \% S
- ( (not (ai_notrans))) ; Not transparent?- A$ k6 O2 ?0 {0 {. M7 L( g
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
- ~# } h* f+ W. N0 } - ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?$ j* ^0 j4 N t
- ( (not (setq ss (ddchprop2_select)))) ; objects to modify?6 |$ V* G5 o6 t) P1 \
- (t
, j# i7 p; u6 l - ;(ai_undo_push)
* N3 }" J4 J& O C( y4 l: k! m( r - (ddchprop2_init) ; Everything's cool,
, m. W" J2 r. I0 o5 D' Z8 U - (call_chp2) ; so proceed!% ], X1 n% A x+ f
- ;(ai_undo_pop). q* V9 X" p/ p5 n
- )$ O; n6 T5 K y' o
- );cond close
D/ K8 o, p9 a! I" K2 T7 D+ D) n
# V% V: Q& m. h+ _3 B0 L+ {! F" x% X- (restore_old_error)- U9 X \. f' _3 n4 g
- - h) U8 S% `' B5 ~
- (princ)
( ]$ m) Q/ Q6 `; u - );defun ddchprop2
4 G) q; Y' @" j4 l% q" s - 4 J, _ n S+ x1 Z9 ]
- ;;;----------------------------------------------------------------------------
" P- R3 q' u$ g" M7 a
! Z/ l) w) u% i* u: b& e" E- (princ " EXCHPROP loaded.")/ {1 k- b; h8 L0 ~$ @; O7 z
- (princ)# m6 [% h4 f' G
5 ^" |4 L3 H! ?$ b3 V- X- ;;;----------------------------------------------------------------------------
: N1 F- [9 V$ N( t- L3 T" F7 U5 N2 @ A - ;;;---------------------------------DDCOLOR_LSP--------------------------------5 F2 \3 |/ `3 m/ R
- ;;;----------------------------------------------------------------------------7 W ~* N- ^0 q0 {# R$ S
8 P7 q1 t" Y: k* D- ; Next available MSG number is 24 3 J* ~' v( H; Y6 p5 u( \. G
- ; MODULE_ID DDCOLOR_LSP_$ G6 ~2 E# o0 X# z* i- Q
- ;;;
9 ` y, y b; X! ?3 g% w' t - ;;; ddcolor.lsp6 i/ W/ v2 g7 y
- ;;; ' L+ B+ m5 M2 f& P( l
- ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.
1 l5 d2 a* A! v7 a - ;;;7 Y% [. [. ^( S
- ;;; Permission to use, copy, modify, and distribute this software2 s' o5 G C# D/ M
- ;;; for any purpose and without fee is hereby granted, provided
3 w5 W O5 e/ Q' V, D$ l* _ - ;;; that the above copyright notice appears in all copies and
& m9 t! T& V4 ? - ;;; that both that copyright notice and the limited warranty and
o: y& @9 x4 G+ t) z - ;;; restricted rights notice below appear in all supporting* A8 J; |5 |! @5 {3 {
- ;;; documentation.
6 J9 d; x" S) e; ]* m, C - ;;;
7 Z8 I4 S; `) e3 K - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
# s, K6 F9 A, a0 G2 { - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
9 n9 C/ Y" g. s, D1 \ - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
" K+ ?7 W6 o- _3 d; a - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
! Y3 M5 N- n3 M0 l3 h - ;;; UNINTERRUPTED OR ERROR FREE.
6 j2 `. c" m/ s3 q8 E2 V9 a# _ - ;;;/ k, P* u' i7 S! L; K- P( T; V, s" O
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to) f0 g$ g( [1 h8 t7 L( H
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
9 T' p: G$ o0 E& ]7 m$ E | - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
5 A3 j* v& x4 N) v2 N! C - ;;; (Rights in Technical Data and Computer Software), as applicable.
, P8 L" q7 w$ `3 \- D$ V- ] - ;;;! e) P3 c% e2 r3 R1 `6 N6 t
- ;;;.
/ X: r3 w/ S( Y, n5 z/ p - ;;;
# N( j1 v! M1 t) B7 M9 `. U9 s - ;;;----------------------------------------------------------------------------
6 d7 z3 t! q6 n" r* v! ^, ` - ;;; DESCRIPTION
: I+ I, |* W; e/ U% X - ;;; 8 ?! s' ]0 z s
- ;;; Chromatic Pallete style color selection dialog., F% [* T( K F
- ;;;
+ _6 @7 F8 ?/ L2 b - ;;; Globals:2 L+ y& X9 t7 `6 ~, q
- ;;; ( Y& S9 N7 R0 O; x
- ;;; chroma_color - Integer color index. The last value selected
" i( p1 B2 h; ^6 _7 t, Q; H - ;;; by the user in chroma dialog. It is not cleared or reset4 \, y+ ?; J4 [2 d+ T
- ;;; by a cancel. Only used for communication between callback/ \# l: q2 S' G8 M* s+ X3 P5 O- M
- ;;; functions and the (chroma) funciton.! a# t5 Q2 S, N) a3 G/ R
- ;;; % p5 v5 M& H j5 n) H% F. O
- ;;; Depends on the definitions for the dialog provided in chroma.dcl.
% u& V. I, R+ z+ S W. ?3 Y1 y - ;;;
7 ? K! X0 v2 G( U - ;;;7 ^" |9 Q- k9 g! ^3 l
- ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma
# @3 [+ P! k, C* q2 i E* ?. { - ;;; pallete style color selector.3 |, j8 I; W v8 f
- ;;;5 J0 I. _( N+ [" A; W% l7 F
- ;;; =========================================================================== @6 \9 I9 J5 Z# Z3 s% @8 G: {# W
- ;;; ===================== load-time error checking ============================
0 l0 C: Q. D6 _5 a5 q - ;;;5 `" M2 o0 W* f3 e
- & @( S0 w2 }& h8 h8 L
- (defun ai_abort (app msg)8 _# f& j3 P% x: Y6 Q5 s" G
- (defun *error* (s)) r2 M; [$ V% @3 h5 ^6 k, e6 t
- (if old_error (setq *error* old_error))
! r% _; B# b- }! J - (princ)
1 ?* V: s! O' Y" c) a - )
0 Q [, J) }8 j) x% R U6 D5 U0 F - (if msg
9 B9 `- W+ S! f - (alert (strcat " Application error: "
; M% ^, W6 i4 f4 e5 Y# q5 i - app) P6 n3 N* X- ]$ B
- " \n\n "
& j+ l. u5 }" W: i: s7 \1 h- c: X/ T - msg
7 `" b6 b7 Z$ K4 _% g - " \n"
" i# T5 v! s8 k' \* b4 Z# k! e - )6 r7 ~% p( K. R# g+ ^! R3 x
- )
% S/ a8 w+ w& k+ |0 x - )
) m ]# a& J) ~$ F+ o6 M. x - (exit)% V) _6 l, O) R# n0 w
- )6 {; M3 x# O% `! [
- 4 ^$ }% x9 g' I0 t, s7 E* I4 b
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,6 X* z* d/ G% {+ z& ?5 _
- ;;; and then try to load it.
0 o$ D" m8 P6 x3 ~& S' A% I - ;;;
5 E* G8 q# j7 A! r1 u6 f - ;;; If it can't be found or it can't be loaded, then abort the5 H( R+ P* N: z \8 Z
- ;;; loading of this file immediately, preserving the (autoload)
" p6 t% P! m. y/ a7 G! y - ;;; stub function.1 \" F: q+ f4 C4 Z. \
+ d( p+ ?+ a1 v- (cond4 s7 c- S- [- E5 k
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.9 m, g6 o" [ m6 M
: c8 o2 g u, e" H& V- ( (not (findfile "ai_utils.lsp")) ; find it9 P, t: E/ p5 c0 i+ d
- (ai_abort "DDCOLOR"2 Q: K$ j7 \8 {$ b* k5 ]
- (strcat "Can't locate file AI_UTILS.LSP."
" f9 k% x- m/ X5 m( m( w - "\n Check support directory.")))
# v8 z9 s- x8 j6 R- q
# A! H) i7 P/ y" `$ s5 R1 X2 j Q- ( (eq "failed" (load "ai_utils" "failed")) ; load it, y# ]# z9 y$ g+ n5 X/ q _: X: G
- (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))' f1 I( g+ _0 V: M
- )
+ E5 i& [& G/ c ?
" O9 f$ D& R' f& e0 f- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP. k% U- E1 Q ]$ }2 W3 H6 j8 f
- (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses
" W0 ^" f& f, L/ s Q/ b! E - ) ; ai_abort's alert box dialog.
3 t8 R; w. U4 p/ f- p& Z
( a# P% w M5 K) ?' O$ ~- ;;; ==================== end load-time operations ===========================
7 M8 X2 d& R- @8 R
' b/ N7 ~& w1 r6 j* w' i- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)( P$ ]+ o3 G. X! _8 t+ |4 l0 T
- 8 z9 Y/ w) _6 h" @; u
- ;; Main Color function, called by setup code.
9 h$ E7 V5 h: _, _) ^( l2 R2 C - (defun ddcolor_main()
) w$ H: S3 k7 f( H' @ - 3 V, g8 |1 }- s( C) o& L; K: |5 n
- (graphscr)4 [3 F4 s8 Z, D) ^% i0 E! L
-
2 ^) l/ B, }5 ]! a3 s/ T - ;; Get the color of the current layer, for possible BYLAYER color swatch.
) a3 M, P& l+ @ u6 X( E; {, q# I! U - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))
! Y, o* f) q9 C/ U" v; r - 2 \7 D! g! s' G3 R. D
- ;; Call the dialog here...7 s5 H( f; w+ a# D/ Q
- (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))
( k1 L: b% a. {; [0 ] - 5 ]' F" A- S! Q% A5 d2 m. {
- (if clr, V2 g; T, |. ~& |" g5 y# g$ G# S$ V
- (setvar "CECOLOR" (citocs clr)))
# U2 t, {. O9 t: @/ C% J: m- C. v - )
$ n+ U; K. ~6 G1 x9 @
6 \! T1 ^4 H5 }, I& @, _- ;;;3 I, ^& D B; M, i9 W
- ;;; CSTOCI -- Color string to color index7 ^$ e* t& w! J7 S
- ;;; Convert an arbitrary case string into a color index.
- a. g3 E( \; A+ H4 Y# Y! @ - ;;; Returns nil if string is not a valid color.1 ]- z$ E" G! u% W, |! ?
- ;;;
# l1 M$ j: e) _+ D2 l - (defun cstoci (str)( n6 L% R$ S+ ~. C5 ^( G4 [7 X
- (setq str (strcase str))
! t8 @0 | G/ n& s, a, j% W; w - (cond
/ f9 f+ e) a3 X7 \5 G: _ - ((= str "RED") 1)9 N1 o! k3 S. s0 W' r/ U+ D
- ((= str "YELLOW") 2)
1 _: A5 G$ V* [+ x" I* Z7 r' ?: F - ((= str "GREEN") 3)+ K- T6 {( N m( r' ]' P2 z
- ((= str "CYAN") 4)/ W' Q# h8 o# _- K" J2 s! v
- ((= str "BLUE") 5)
8 n% l1 O: S: i: q3 O - ((= str "MAGENTA") 6)
* c4 E* v2 x5 s - ((= str "WHITE") 7)$ U8 E d, E' s; h! ]
- ((= str "BYLAYER") 256)6 h. r) ^7 _" |
- ((= str "BYBLOCK") 0)3 S. j/ C5 ?" M: T" f. u9 @
- ((= str "BY LAYER") 256)0 b1 r6 r1 r3 `8 x; P: S
- ((= str "BY BLOCK") 0)! s' F3 s8 \* j: s
- ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))
$ I" s% K0 E0 O) a - (nil))7 ~) P p/ v g5 J1 \( d( f) M$ [
- ) X- Y+ Q+ U' e
~; z5 G3 Z. I/ D1 R4 {% U5 i
1 D3 O6 v* d' z1 r3 k- ;;;
, z/ V6 V/ ~& F - ;;; CITOCS -- Convert color index into standard color name.
1 t) \; I2 k" A0 h; a4 B/ a - ;;; Will return the standard and logical color names as text( u" ] A2 O" z- N
- ;;; strings. Returns nil for out-of-range color indicies.) Q& v) n6 l5 H" w! c2 e" G& E8 M
- ;;;# s: k$ H; [" @# A) u
- (defun citocs(i): K' H6 X' B. p8 b/ b
- (cond) E: T$ Z, P; \5 ]3 |/ z
- ((= i 0) "BYBLOCK")- w) V0 ^& N1 j4 g) g
- ((= i 1) "red")1 C) Y/ A2 n* c' k) D: R" F
- ((= i 2) "yellow")- q7 P( G$ ^( |9 z' T
- ((= i 3) "green")
' t x7 X& ^- `& Q5 ] - ((= i 4) "cyan")8 W" H( `( j, F/ o4 D. V( d
- ((= i 5) "blue")" Z& f- z, D |' |$ w7 K
- ((= i 6) "magenta")
2 ?! {' z4 h3 k/ R2 b8 X - ((= i 7) "white")% J2 z3 C% u7 o2 G7 H2 Y0 X; U; W
- ((= i 256) "BYLAYER")6 a5 K* W7 u0 R# a- k. l D7 W
- ((and (< 0 i) (> 256 i)) (itoa i))/ H' z: v) s* z+ r
- (nil)). Q% j- }* c, |+ d$ E! k% w
- )' r0 s9 f) w6 m/ U7 W9 p- s4 Y; y7 O
3 V# f4 @; l1 J1 y! ^' p- ;; Start of ddcolor
) u6 x7 {1 t; g. _6 p - (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
2 U! O$ C3 a- {9 V - old_error *error* ; save current error function
6 S5 u8 p0 }+ A W9 G1 a* P" R* j - *error* ai_error ; new error function
& `, x+ J3 ^. K p! v- E4 C - )% E A5 A+ s" n$ F6 Q' E' |6 ~- Z
& i/ G- [. n2 r/ a: ?5 h- (setvar "cmdecho" 0)# l* L5 S% k% p, f: V
0 L6 r6 G- r: j" f- (cond
4 M2 r) [$ h9 _# J3 z4 t# J$ V - ( (not (ai_trans))) ; transparent OK$ l( z: q, m) K* y8 @& M1 n
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
4 r) [" h* N$ N
( R) m* e9 \2 V6 @- (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))0 e3 C" N* j" N/ Z2 }% l
- (/= 8 (logand 8 (getvar "cmdactive")))2 I% D1 ?' l/ N, D$ W
- )
# O1 ~$ v, P6 l! m - (ai_undo_push). C4 s4 A; e+ U' n+ a1 {' d" P2 ~
- )
* j, B& j# c$ a: c% p& ?, } - ) E* z$ E7 e) @3 r. {, P
- (ddcolor_main) ; proceed!2 y1 e6 G& W& B4 h; ?6 f% k" R
' F/ ]) H$ k( o6 S+ N- (if (and (/= 1 (logand 1 (getvar "cmdactive")))
6 z: R4 q0 U: ~! X5 ~ Y6 Y9 b, q( L - (/= 8 (logand 8 (getvar "cmdactive")))6 J ~5 m3 y$ Y
- ) P4 P% \3 K6 g& T8 z/ |) t
- (ai_undo_pop)% B" x! `7 A5 G+ z" F% N" r
- )) i; H% H1 @3 p) M' I- \
- )) N% |6 |1 B/ @4 Z# O
- )" P A7 _. u7 v/ F( r( S6 ?1 a
; ~: y8 o' x, s9 W1 b, U- (setq *error* old_error) Y- K! {' |0 ^; Y5 i' ~0 }, w
- (setvar "cmdecho" old_cmd); k: ?% p; Q* {
- (princ)
6 _6 D) m, I! m5 x
7 h8 A* I5 T: I# c- )
: W9 Y5 b; a: Y. _ q" E' _+ a - / E0 @- R# W& f3 m; U
- ;;;----------------------------------------------------------------------------7 F1 R! E [2 f
* Z# C% N- T$ T- (princ " DDCOLOR loaded. ")
2 M+ \# x4 S7 y( g% P - (princ)
# Z' D5 P- E7 W: v9 H% _% d* A - ( i' f, a0 c% J) y% d" d ]
- ;;;--------------------------------------------------------------------------;7 }2 X/ T8 v/ J3 B! m4 K
- ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;
8 A n8 y+ I4 B- O+ M - ;;;--------------------------------------------------------------------------;
" e' B* x2 ^% B- U6 E2 W3 b - ;;; ssx.lsp% V; t3 P# F9 Y+ ]3 W7 U1 Y
- ;;; Copyright (C) 1990 by Autodesk, Inc.
6 }9 o; a; R% v( x( n& C6 L& Y6 o - ;;; Copyright (C) 1991 by Control Systems, Inc.
- F7 \. x8 P2 S: G( i5 R8 y - ;;;
/ X' b7 f' E: X - ;;; Permission to use, copy, modify, and distribute this software and its
, S' |3 q! B: c" Q* N0 f t - ;;; documentation for any purpose and without fee is hereby granted.2 }2 x6 |" G6 E5 _9 R$ o
- ;;;$ x% R, i9 Z( E
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
~7 l w$ _5 g. i - ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF
, O1 e7 J+ X8 V4 H+ Q - ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.
: E" a5 k, d% p! s: _ - ;;;
" @4 p8 I) j! ] - ;;; Larry Knott Version 2.0 7/18/88
! K7 K- i0 y1 N1 Y' S - ;;; Carl Bethea & Jan S. Yoder Version 3.0
1 o% R" _* d+ e8 o# Z0 [ - ;;; Enhancements to (ssx).+ T3 c0 E& k$ |# u0 x
- ;;; 15 March 1990
: q; G9 ?: u4 z1 I0 Z, _- T# a3 x - ;;;
: l9 j+ f* b& l0 K; O - ;;; ARTIST Software, Inc Version 4.0 December 1991" j$ J, O, e9 N4 s
- ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,
. N+ M9 s7 a$ t' z) j$ f0 b - ;;; use Flexicon menus' Y( V. e" `. L" f6 u- o- y
- ;;;! b6 |* R" \1 F- ]' ]
- ;;;--------------------------------------------------------------------------;
' n" e' [6 D+ Z7 y - ;;; DESCRIPTION) S* Z1 u! H- g1 P
- ;;; SSX.LSP ' a4 J3 A- ^5 m h" n+ p( H
- ;;; 0 T- g3 N# ]% v* h1 k$ e8 A
- ;;; "(SSX)" - Easy SSGET filter routine. 7 M4 y1 T6 i9 s$ k- }
- ;;;
; ]7 I! P8 ?8 v' m8 w - ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt , F4 W a' N! K8 r- g& `$ n, @
- ;;; to create a "previous" selection set or type "(SSX)" in response to - {4 m; o3 k0 I( u8 r2 W6 e4 T
- ;;; any "Select objects:" prompt. You may use the functions "(A)" to add " h! v! c+ P( s
- ;;; entities and "(R)" to remove entities from a selection set during l7 @8 Y+ Z+ e p! Y: v; q( t
- ;;; object selection. More than one filter criteria can be used at a
7 U2 N; G) z- y: @4 m - ;;; time. " E+ Z' s# h* l
- ;;; H, c8 O+ \6 a8 A/ g+ N: K
- ;;; SSX returns a selection set either exactly like a selected
4 M: f( C; ?) y9 w" y8 x' y - ;;; entity or, by adjusting the filter list, similar to it.2 W9 Z3 l9 R1 D* l, N( j# v9 [
- ;;;
: }- O+ N5 Y7 N$ K- {% w4 O* F - ;;; The initial prompt is this:
+ i$ m' r& k7 P$ {. e- a8 z- \% | - ;;;
2 g. e3 B/ X0 L5 r, s - ;;; Command: ssx
7 B. ^: _6 [% w0 h* [ - ;;; Select object/<None>: (RETURN)
e* z) _- J5 a F/ j- `6 x - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: - `( X4 n# j9 V* M2 N
- ;;; 9 l5 W8 V* d3 R& I V
- ;;; Pressing RETURN at the initial prompt gives you a null selection
1 e+ r5 c, U! d: x - ;;; mechanism just as (ssx) did in Release 10, but you may select an
C, [4 Y' u* |' p" A - ;;; entity if you desire. If you do so, then the list of valid types # [& s& ~, e# e. V1 X" w
- ;;; allowed by (ssget "x") are presented on the command line.
- g U4 M( d" M - ;;; * C1 U" J- y. S, \
- ;;; Select object/<None>: (a LINE selected)
2 B) x; c/ T3 f# {. A3 u! ?; U - ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0)) " n$ F& C! a( Y3 G6 ?8 s5 z! Y3 e
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
8 R% ^7 K, r7 D - ;;; ! A8 }, g9 z: L' S; I
- ;;; At this point any of these filters may be removed by selecting the 5 B O- h9 J4 p" F' b* N$ K5 a
- ;;; option keyword, then pressing RETURN.
# G l/ O* @& u0 X7 i4 \3 p - ;;;
" E. G( D! D. }$ n' D" k1 ?0 c& D - ;;; >>Layer name to add/<RETURN to remove>: (RETURN)
6 p9 p" g h+ ]; s& O2 n2 P) X+ w1 w - ;;; 8 u8 ~+ k3 h0 S) g
- ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
' k0 }8 c4 A9 C& Z3 M3 P: t6 l1 U - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: ' @7 m6 x0 H0 s; J; m
- ;;; 2 }. `; C9 q6 i; C* u$ e
- ;;; If an item exists in the filter list and you elect to add a new item, ( O2 e0 I0 r5 y* q9 O3 G2 A) Y: Q
- ;;; the old value is overwritten by the new value, as you can have only
9 ~5 _ Y2 z# Y( P, \- I6 T; w - ;;; one of each type in a single (ssget "x") call.
2 i$ J5 \( B) ^ L# ^! g - ;;;( C7 j$ J* y) }! F4 N2 C3 u4 M
- ;;;--------------------------------------------------------------------------;! Z4 I7 h0 H* m! i4 u6 i
- ;;;( K) b1 r" |% ~$ Q2 ^8 z$ `
- ;;; Find the dotted pairs that are valid filters for ssget
! F9 C- A# m/ o0 l- n, { - ;;; in entity named "ent".
6 ~6 Z3 b4 c+ d' m - ;;;
3 Y# O$ h5 n/ U7 h - ;;; ssx_fe == SSX_Find_Entity( l2 m( P' X6 c4 D- F# N$ q
- ;;;
: h9 h, _! k' _2 k6 f - (defun ssx_fe (/ x data fltr ent)2 j0 N; @4 \ m9 G
- (if (and (= flexvar 1)(/= t2 "Pick"))3 {+ p2 i" Y* r5 g) V) H7 Z
- (setq ent nil)
1 ]0 j. c4 H; z& c3 [1 h - (setq ent (car (entsel "\nSelect object/<None>: ")))
^( N5 Z4 y0 S a4 ] - )* N, ]3 P/ V9 V+ B+ Y d6 `
- (if ent7 e* O# P; N6 ^! m- M
- (progn# [ `7 B& |5 \
- (setq data (entget ent))$ |6 X5 I1 n' H. }. Y
- (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38
$ g! ~% ?8 v/ { - (if (assoc x data)
: n. b. ^7 \- Y0 h( b- \ - (setq fltr & u" L( P+ f! j$ \+ y8 Z6 j
- (cons (assoc x data) fltr)' j2 E. I( m' t3 n
- )
( E; o* @; w+ }1 H& a) { - )
5 z! W6 j) z: o4 i, O - )
3 k+ a, g: E. t, L6 V" V+ }9 s - (reverse fltr)
3 u4 y% v6 J- V* o$ M8 E. M - )
9 f9 {, h c/ z, y9 d - )
1 O. @. j1 Z* u0 Q$ B - )
# c/ V$ l5 r9 {! ]& b1 Z* K - ;;;
2 v$ r" G9 }% r O9 P - ;;; Remove "element" from "alist".
d- _; R, r' r - ;;;
. b+ u. J5 b5 ~% D0 G/ P+ U) [ - ;;; ssx_re == SSX_Remove_Element
5 p. C# @( x& T1 m" r% d. r' j) f1 y - ;;;
# T9 v- `* U- X9 h - (defun ssx_re (element alist)
/ [% }6 u+ f1 _ ]1 ] - (append
5 Y* ^0 f2 R4 C+ T/ R1 F - (reverse (cdr (member element (reverse alist))))
+ B) R, j- R6 Y2 }6 A - (cdr (member element alist)) # ~* D* f3 q: w O( e& V
- )3 c1 x4 @# ]* X2 e; C# X
- )2 B+ ?1 U6 c+ h( S) b* k* S
- ;;;4 n' m, c% V6 Q0 U9 x
- ;;; INTERNAL ERROR HANDLER
: O% F; o X( G3 ]/ k( z - ;;;" c; {, c W4 t9 a1 M) m) J6 u9 N
- (defun ssx_er (s) ; If an error (such as CTRL-C) occurs% J2 @$ W1 z9 }* c+ T; m1 B8 {8 x
- ; while this command is active...: A ~" C- ^* q+ Z4 }; r; N n
- (if (/= s "Function cancelled")0 _. V* M7 }9 n
- (princ (strcat "\nError: " s))
W9 ~: W8 L) h) J# J, U6 Z9 D - )
+ o1 F* I& M5 D Y( N# i' o - (if olderr (setq *error* olderr)) ; Restore old *error* handler
7 i/ K' D1 F- P. E( I/ A& [9 c - (setq flexvar 0)9 Z" X4 A, Q+ g5 T4 Z2 j( n/ a
- (princ)# {# a1 l8 D0 E: H. U
- )
! A2 |" Y5 g7 g* h - ;;;4 w- z f6 X2 E! T' Y* h9 m
- ;;; Flexicon call routine
; V- Y/ W( P3 }! z1 W" ^ - ;;;
$ g( O; ^' B/ a; q: w# q% L - (defun flexmnu (a)
5 [1 [2 i% g; l. m ^3 M; ^% p# h - (if (= flexvar 1)) @; K! A0 \' F
- (command "FLEXICON" (strcat "FLEX" a))4 u3 e0 U) v" S; ]0 o) m3 `3 h
- )9 _# \' J2 l a
- )
. o# q" \! K# V2 ^7 @% C - $ Z! B5 ]/ v/ _% O1 g% l( r
- ;;;
/ B2 j. |' J0 c4 K1 N - ;;; Get the filtered sel-set.! K4 J, `, ^1 B' [* l
- ;;;
0 {0 u( ?& B8 j/ X$ |, |' B - ;;;+ n+ m) e7 M; C" T
- (defun ssx (/ olderr)
8 U7 x7 f5 E; [+ w5 W6 T% W& M - (gc) ; close any sel-sets ( h; t/ ]6 R- S" v) [
- (setq olderr *error* ) h" [0 @" Z. y P
- *error* ssx_er 2 [9 d9 B. j5 a5 v( a
- ); `2 d/ r7 n6 G* y) |' a0 s
- (setq fltr (ssx_fe)) + K4 j) V: F' |8 c! C
- (ssx_gf fltr) ) N5 u7 ~; I/ B$ C i$ E8 W1 F
- (if (= flexvar 1)
7 C Y, F" f Q, j( F: X - (progn
7 E9 F% w+ v6 M$ V - (prompt "\n \n \nNow select the required EDIT command and (P)revious.")& L* S' i m' f
- (flexmnu "EDIT")
& @4 k& G6 f( G - )
1 O7 }8 _' Z6 W0 E" r1 S+ r! j( e - (command "p"); h/ S* J9 L% c
- )0 `( n. k. C& j) u0 _
- (princ)
) u$ K( a E9 B* a* t' { - )7 B9 W3 O% N2 [8 S' `
- ;;;
. H; H& \7 Q) }7 v6 j) c8 ? - ;;; Build the filter list up by picking, selecting an item to add,# {8 E$ u: ]& a& V' b2 Q+ O9 K
- ;;; or remove an item from the list by selecting it and pressing RETURN.) h# X# I/ p: u! O+ K2 F
- ;;;
) d+ e& W1 t1 K - ;;; ssx_gf == SSX_Get_Filters
) q; H7 Y q) N% a - ;;;
' ^! _5 y; `6 P/ x# c" R9 d - (defun ssx_gf (f1 / t1 t2 t3 f1 f2)
% u, N R' K& M" {# m; B/ q3 h% } - (while 8 P9 {( ]' K7 [* W
- (progn' L+ k2 U4 i$ w$ |. V4 ~! Y) @$ ~( k
- (flexmnu "SSX")
5 M& F, L) a8 l) t+ H - (cond (f1 (prompt "\nFilter: ") (prin1 f1)))
8 p5 r, x) }6 e8 z5 l @ - (initget
+ k* K r" w! T- w3 c/ y - "Block Color Entity Flag LAyer LType Pick Style Thickness Vector")
/ O0 Q# A# p/ C0 h - (setq t1 (getkword (strcat
7 R% T" P3 [8 B. B0 v5 @9 M* S# C - "\n>>Block name/Color/Entity/Flag/"
7 j: i, [. F; L( u' M7 p6 E6 M7 Z. U - "LAyer/LType/Pick/Style/Thickness/Vector: "))) / d! l" Y5 x- H' D* X; S
- )
7 D9 k/ ^ j% S: N, p - (setq t26 G. Y7 C- i: a# {* ?0 m5 x
- (cond
9 J" J, k* |3 |! O+ H9 ^8 M* T8 U - ((eq t1 "Block") 2) ((eq t1 "Color") 62)
3 v. h$ [* l, T& _3 `- W - ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)
8 l. r4 s: f4 U7 W! N, M0 } - ((eq t1 "LType") 6) ((eq t1 "Style") 7)
9 ~3 h& n' g/ `1 G4 j, z - ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)- q6 L1 }0 r( `% Q* a
- ((eq t1 "Vector") 210)0 ]# v3 \- S; Z7 H
- (T t1)- s0 U7 q/ ~ t
- )1 C, n* w; k7 |( N" H0 t
- )8 ?. U/ |9 ^" S( _3 l4 I
- (setq t3
$ e, S: D6 O& m$ N- _! z9 R; } - (cond
) W; z5 ^1 j& Y* l, a. E) r - ((= t2 2)1 S) U! O9 k: @& [ M+ F& B# ^
- (if (= flexvar gtads 1)* g. m3 O' b; G0 o: e( \' l
- (progn; b+ s% b5 E: x4 a6 V# ]5 g' n
- (prompt "\n>>Block name to add/<RETURN to remove>: ")
' P. K* D. e! J4 f" x5 ^$ m - (gttable "BLOCK")- Y( o8 g4 P+ x
- )* R: `- q6 S5 {- ?/ J
- (getstring "\n>>Block name to add/<RETURN to remove>: ")
7 F8 j& v* F1 C - )
( T+ L: R' I2 t: R& f - )
. ?9 k7 t# X% a6 j' I( C$ H/ M% d - ((= t2 62) (initget 4 "?")
& y. d8 S$ l0 ^! f* Z8 T - (cond
7 z) y8 S) X8 _( e! v7 x - ((or (eq (setq t3 (getint 4 t% [. J4 N% b& c0 t
- "\n>>Color number to add/?/<RETURN to remove>: ")) "?") ( u M. @7 X! Q6 p; }" P
- (> t3 256))
2 g% |2 S/ O3 U' v0 G/ {- C, O - (ssx_pc) ; Print color values.& v/ f; e- H c
- nil
, T' P2 |/ G. l6 [& P8 ] - )4 u* I" C3 Y4 C ]1 J3 _ n
- (T/ x: x' f( w) F/ M
- t3 ; Return t3.
7 `; t* R$ S: x4 a - )
5 x2 b, O/ h0 v1 G - )
4 M: I0 W4 I5 l: } - )/ y- q& i, I! [- y
- ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))
4 n# M- w8 P- O: T - ((= t2 8)1 i9 d5 Z6 d8 R. w: w4 l/ _
- (if (= flexvar gtads 1)1 D2 Y v, i5 p
- (progn
4 @, B3 g8 F/ f2 J - (prompt "\n>>Layer name to add/<RETURN to remove>: ")
: h3 [. X. D& ]% \7 [, Y - (gttable "LAYER")4 P* U8 b- _% x8 s% o; L& `
- )
& Q. [) Z, r5 p; s* \ - (getstring "\n>>Layer name to add/<RETURN to remove>: ")0 w$ d& `# K% p
- )
. F8 D' k- r5 j: K# P I _ - )
2 o, x6 U$ j$ e0 s* q- R9 y8 ^ - ((= t2 6)
$ K, j# ^6 d% d: E9 W# e2 O( Z - (if (= flexvar gtads 1)
+ C+ c" j1 y6 y& _6 O0 k - (progn
" ]- ~6 v" P/ S( e D+ Z T) j+ s - (prompt "\n>>Linetype name to add/<RETURN to remove>: "); @8 Y0 V: i; O
- (gttable "LTYPE")6 q1 ^, h& \ Z% ^8 }# Y9 U
- )
1 q! Y9 C* T5 ?" Y X2 Y. Z - (getstring "\n>>Linetype name to add/<RETURN to remove>: ")
8 }, E( n! c& h }: f, ~* C - )
6 f4 [, e8 k6 g+ {' a0 g7 t' f9 e1 F* P - )
+ l4 G" A1 U) u/ _8 M9 { - ((= t2 7) $ B" {% `9 r# o/ d
- (if (= flexvar gtads 1)
7 r4 T8 G" d" s( \! i" m% p) \ - (progn- {6 I" t4 J* R" f3 A
- (prompt "\n>>Text style name to add/<RETURN to remove>: ")
! Q( L$ T+ c( c+ U3 ], i) I - (gttable "STYLE")& f" g4 P$ E& `- K7 U
- )* N' I2 q* V2 k
- (getstring "\n>>Text style name to add/<RETURN to remove>: ")
/ w' c4 G7 ?* F7 l" f! d& a2 F - )
' K! Z# `" h6 v# H3 H6 `# L - )
. H7 d5 `6 p4 k/ V7 l - ((= t2 39)
$ l/ q! ^" j2 i - (prompt "\n>>Thickness to add/<RETURN to remove>: "): i8 R, R: @9 H$ q0 B9 ` `
- (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal)): p9 M$ g9 Q1 l3 w# A
- )" |/ V9 q4 h, g5 P/ H) l
- ((= t2 66) (if (assoc 66 f1) nil 1))
; {2 I) F" X/ H: H( y0 L - ((= t2 210) 7 `! Z3 ~1 m2 Z$ w
- (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")3 n3 l9 ?0 x% a! A9 k5 D% i" ~, G, Y
- )3 w0 X3 e5 r7 P8 U( W E$ E9 P
- (T nil)
0 s1 Y! R. a/ d$ n% c5 V4 r4 c, B; y - ), @7 K/ ], e; J
- )5 j/ A; u1 \' u6 V- m
- (cond) O @0 u/ ?; U5 m5 ~
- ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity, {7 B) k- Q- o. }6 ?. f( Q
- ((and f1 (assoc t2 f1)) ; already in the list
, C( H @6 G' G, E/ G$ ?2 r - (if (and t3 (/= t3 ""))
' g- K9 X$ R/ C/ _0 v ^ H9 N( C - ;; Replace with a new value... 3 } ^1 n$ O" F* w9 }, p
- (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1))
$ A l3 {! G: N8 j1 v( ^ d - ;; Remove it from filter list...: N: A+ e1 k6 Q3 f
- (setq f1 (ssx_re (assoc t2 f1) f1)) : M( s3 ]& l* t M# f! g$ v, k' l
- ) " Y. A! G0 q8 c1 \; |. n
- )
" ~, M! @! n6 g7 U h# f! | - ((and t3 (/= t3 ""))
' P" s1 _) ]' k. E9 z - (setq f1 (cons (cons t2 t3) f1))( J. K" z# J6 p( P. M
- )& ^' ^3 H+ f/ M: E" O9 z
- (T nil)
$ j5 V* o6 S1 X2 W& H - )% {# K0 x2 E! y! W: S* ^
- ), A3 P/ w5 c E) v8 z( A( C# j
- (if f1 (setq f2 (ssget "x" f1)))
$ R" Y' X( e: g5 r' g; @ - (setq *error* olderr)2 x' E" X* F4 {; l/ L7 h
- (if (and f1 f2)
' B0 u. F9 q9 {7 [3 I7 W9 i - (progn
, i1 B$ U4 k) ]: I0 O1 u( ]8 }! H% X7 Q - (princ (strcat "\n" (itoa (sslength f2)) " found. "))
b2 L4 K& `: C3 l: p% J - f2
8 M; J- V3 r Z/ A - )
# d% S& c& w, E) m: x; f$ ? - (progn (princ "\n0 found.") (prin1))$ t# W3 E" K) o3 Q- T/ [
- )
. x: {' j* P, B7 A4 s2 c - )- Q% A9 E4 t' @8 N
- ;;;
: O' }* }0 S0 M. B - ;;; Print the standard color assignments.
. n8 Z4 |4 d. X/ L* b8 @ - ;;;
6 P, a0 V$ a f3 Q' | - ;;;) u- ^" }9 o" C, Y# g, ]6 ~
- (defun ssx_pc ()
( ~0 M+ C3 n3 M+ q$ A - (if textpage (textpage) (textscr)) q" @: L q$ h* L+ Y7 C
- (princ "\n ")
5 u6 }5 M. s7 k/ E( }# |8 I [ - (princ "\n Color number | Standard meaning ")
% i$ g2 N; B2 ^& q# J - (princ "\n ________________|____________________")
2 e& q7 ^. i7 y" O8 P7 t - (princ "\n | "). s7 Y8 Z) S7 w0 M# f4 B
- (princ "\n 0 | <BYBLOCK> "); R3 _! p. D+ c
- (princ "\n 1 | Red ")
4 c, K, y1 Q4 Y0 u- t - (princ "\n 2 | Yellow ")
4 q2 l6 J* _" Z - (princ "\n 3 | Green ")& m+ E$ f/ g; C( F4 \
- (princ "\n 4 | Cyan ")
1 _; u2 T6 E* p7 _' l/ o N1 Z - (princ "\n 5 | Blue ")
+ q: s" o( a9 G+ H- t - (princ "\n 6 | Magenta ")
! O9 p" n& Y9 k: z, e - (princ "\n 7 | White ")6 {) j# t/ g" e* l2 {; ?7 z
- (princ "\n 8...255 | -Varies- "); X C3 w: @' v3 L
- (princ "\n 256 | <BYLAYER> ")
5 o/ s- Z/ s" p2 _6 K - (princ "\n \n\n\n")
6 U3 I4 a N3 B- q) s' O - )6 K6 ?" s: I# F! ?; U
- ;;;: x, o: f& h) K
- ;;; C: function definition.. `* S, R7 g5 G! g _
- ;;;
& |7 c: g- ~6 @+ O - (defun c:ssx () (ssx)(princ))7 k" z: M; x5 m5 n: k( u
- (princ "\n\tType \"ssx\" at a Command: prompt or ")5 K- F% r) `/ e7 w7 x0 T
- (princ "\n\t(ssx) at any object selection prompt. "), f1 h0 y" n* ?1 } m
- (princ)# K6 h! E/ g5 ]$ y. f* w
- 5 \+ c1 E% g; h' A- f; |( v
- ;;;--------------------------------------------------------------------------;
9 v2 K: ], n- d$ D - ;;;--------------------------------------------------------------------------;' R9 r3 P" R& y0 |7 A
- ;;;--------------------------------------------------------------------------;
0 B' s5 |% W& ~' F% M - (defun S::STARTUP ()
# q0 F$ J3 b4 \" u# @ \& T - (setvar "cmdecho" 0)
8 e9 ~, W4 Y" |. i - (setvar "cmdecho" 1)/ _- Z( H5 S: k& k
- (setvar "LTSCALE" 10)
0 D" G" b, { _& Z( _! c) r0 }' n
( z& V0 U2 e: P% y9 w1 ?6 J$ K- ;(command "_load" "chenKH.fas")" _) }& B8 U5 \2 _' a) ]/ j/ ~$ o
- ;(command "_load" "ctcot.fas")$ p" ^$ r9 j* | c5 l
- ;(command "_load" "damdoc.fas")
2 U. y6 q& J- e: v - ;(command "_load" "ghichu.fas")
! F. N+ D4 m- e6 l6 Q - ;(command "_load" "hamtutao.lsp")
( T4 {+ k. J5 o& F - ;(command "_load" "KHOITAO.fas")$ Q( d- _5 Y9 P, C! h2 |
- ;(command "_load" "KHthep.fas")6 K$ o2 c4 T/ r1 C+ w0 ~8 V+ O
- ;(command "_load" "mbmong.dcl")$ } N! R4 H; X- ]8 F' U5 Q4 Q; s3 N
- ;(command "_load" "mbmong.fas") ^* o- a$ S" j& @3 p- i. i
- ;(command "_load" "mccot.fas")
$ A) h8 \7 ^; n - ;(command "_load" "mcdam.fas")
2 Y. I- v4 I6 [. H a4 L9 X - ;(command "_load" "mcmong1.dcl")
2 ?: }7 T- L- ]) |" ] - ;(command "_load" "mcmong1.fas")- w- G6 E b D C- S2 T
- ;(command "_load" "mcmong2.dcl")
; ~( B* K) F0 s \ ], N0 k) h" V9 S6 R - ;(command "_load" "mcmong2.fas")7 u8 a, {/ ^) G7 U: C5 Q# D. v3 c
- ;(command "_load" "mcmong3.dcl")! y. H8 |) }7 z2 w }
- ;(command "_load" "mcmong3.fas")
$ y* x* c- i! e; n, _ - ;(command "_load" "mcsan.fas")
, }" W3 S* c# k* r - ;(command "_load" "thepdai.fas"); k3 W! s3 f) H9 J ]) O
- ;(command "_load" "thepdoc.fas")
' e9 \7 T4 Q& w5 {& Q- h - ;(command "_load" "thepmb.fas")
! B) S; c1 y( l. C. q - ;(command "_load" "thepphbo.fas")% m9 b- E9 V0 t5 E
- (command "_script" "thongso.scr")% T; ^$ a2 t7 l# G( m$ @+ O
- ;(command "_load" "thongso1.dcl")
1 q& X+ ~% D3 G1 z/ ~" x( ` - ;(command "_load" "thongso1.fas")
; ]5 A8 Z* z& ` - ;(command "_load" "thongso2.dcl")
9 ]7 [4 G" f: ~ A - ;(command "_load" "thongso2.fas") I) o/ S) N2 i2 r
- ;(command "_load" "tietdien.fas")
& O4 \) G5 s$ A- W4 v - ;(command "_load" "vehan.fas")
" I k8 b. h8 ~4 U: G @ - (command "_load" "phamDuy782006_TKT.lsp")
# o9 V" {" A" a9 m2 O& d' R- F - (command "_load" "phamduy782006ganhtd.lsp")
: F$ y+ o" D( T2 z% x) I - (command "_load" "phamduy782006ganhtds.lsp")' i% B) P9 a) ~, E6 t# F* d
- (command "_load" "phamduy782006htd.dcl")- ?! O# O# q, E2 e
- (princ)( O, B2 M- H* d0 l7 U @* \
- )$ z8 v; y( ]* O. _; Q3 Y2 Y8 C
. m' ?5 I ~2 K5 J" ]& D- ;; Silent load.
0 _/ P a4 h+ ? - (princ)6 f2 y: B$ V* p
' J/ p4 L7 @2 H; n% |& y) r
, H' v' f# u1 X- ;; Silent load for the Express Tools.: {% E7 y% B6 w' r
- ;; Altering this line will affect Express Tools functionality
2 a0 E: x1 q9 i6 v3 m E7 U - (load "acettest.fas" (princ))& d0 F. [' l4 E- [
- �32
Sao chép mã
2 M5 K" ~$ A0 L& J00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ
; Z. Z4 e' L" B: X: R5 o x) L |
|