|
|
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 |
- ********************************************************************************/ G% `; Y4 ]" t* ~$ h( M9 @' ]
- * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *
7 Y0 p8 D. l1 } - * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *8 ]* E4 o/ c2 V A1 A8 O7 ~
- * Suu tam & Soan *- C1 \! ^) z# s& w6 O0 N3 [! \" B0 Z
- ********************************************************************************. a6 c9 v0 D5 d2 r# {- z
' K3 }* m( L; ?. C* `! H% P- ; Next available MSG number is 104
5 ?( |* O5 h, e2 j+ H - ; MODULE_ID ACAD2000doc_LSP_
( S; B) s+ u, A5 \1 { - ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 2000# N) D1 ]; ~0 H) K9 R2 A
- ;;;* j/ }( E8 P Z
- ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.
D5 y* S! I( p- Z' x: b+ V - ;;;
2 r7 I/ |' K; y7 e - ;;; Permission to use, copy, modify, and distribute this software
4 l1 z" \* \/ d - ;;; for any purpose and without fee is hereby granted, provided. `1 Q4 H4 @: N& ^- F
- ;;; that the above copyright notice appears in all copies and; e& M1 E4 `7 k; [2 O+ g% v9 N
- ;;; that both that copyright notice and the limited warranty and8 ]. B6 P% O0 d6 V' m( D
- ;;; restricted rights notice below appear in all supporting
, o1 k3 e( M# f0 A: J - ;;; documentation.# t T) y+ ?& {/ D
- ;;;6 b" X" {0 u! j* q% {: q: k
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.8 [8 z0 G- g+ o! S) t, x. h
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
8 G3 H" G/ n( s* x - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
3 X- i* A: H- o: W/ r8 H0 | - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE; ~4 H9 b+ `: }# j4 G2 q1 T6 f# a
- ;;; UNINTERRUPTED OR ERROR FREE.4 E2 C8 Z$ m8 S. M4 [; Z( ?
- ;;;! P' ]' G8 g9 a/ A1 \1 s
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
8 h) [" @2 _8 n% N, x8 v% _ - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer8 O0 f+ w7 }) b7 H
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
! P% X0 D! o! n2 s1 ~ - ;;; (Rights in Technical Data and Computer Software), as applicable.
% ?/ C6 B: H P0 c8 A. w - ;;;
, A& H- ]; F! x) F- i - ;;;.; T0 R8 R3 _( ~2 ], y- ^
- ;;;2 O6 e/ j" W! o4 C# ~
- ;;; Note:- k1 c: v' d: d5 p4 O) Y) T& s
- ;;; This file is loaded automatically by AutoCAD every time I7 `5 A2 \( q1 U
- ;;; a drawing is opened. It establishes an autoloader and
6 a0 [. }2 ?5 ?% i/ c5 G" z& F - ;;; other utility functions.& A; Z4 F: T% K: j2 d, [, I" @0 s# w
- ;;;$ e9 \/ M) w( F. r# h$ e' ^/ `
- ;;; Globalization Note:
& _1 t* g! y5 ]* K( n6 g1 R# P. ]& w - ;;; We do not support autoloading applications by the native
5 ^& D* l! C% C1 h% { - ;;; language command call (e.g. with the leading underscore
/ l! d$ f% w# K( X$ K) ]+ B - ;;; mechanism.)$ o5 e# o1 c% u3 k2 n
- 8 V. h: e0 \) a S* \* w
! Z) {: l; p" l" F- ;;;===== Raster Image Support for Clipboard Paste Special =====5 X; n1 ] n& |3 w2 h& e: y/ q4 E9 i
- ;;3 o$ E N Z" U" C! U
- ;; IMAGEFILE( a4 n! F9 v+ E0 v8 i
- ;;
1 I- T$ y E4 G/ ^ - ;; Allow the IMAGE command to accept an image file name without
- H# ^1 L- |8 \& Z - ;; presenting the file dialog, even if filedia is on.
4 y) f7 s- B5 R) ~2 w" n7 Y+ r) g - ;; Example: (imagefile "c:/images/house.bmp")5 D" V' D$ k' [+ V, F$ ]: M
- ;;
9 }. u8 y9 E3 \0 R/ h4 T+ w' ~, F - (defun imagefile (filename / filedia-save cmdecho-save). C: P2 d* y( @1 _' S( ^, l6 m
- (setq filedia-save (getvar "FILEDIA"))
- J5 s( y/ Z6 z/ p1 v; V - (setq cmdecho-save (getvar "CMDECHO"))& H% C6 M& v/ e! m
- (setvar "FILEDIA" 0)8 T1 M0 O# ` c; U
- (setvar "CMDECHO" 0)
5 N( L: z0 V) g3 z4 } - (command "_.-image" "_attach" filename)- u' X( o F4 J" B0 R& M
- (setvar "FILEDIA" filedia-save)
0 f! H& W' Q& c; o - (setvar "CMDECHO" cmdecho-save)4 j) k2 ~& A3 N# N o! V! O: g
- (princ)
% ]- G+ R. q& q" u - ): @8 p! U! R& Z/ v: Y6 ?
9 {* t" f; l+ z* |6 l, S! F1 K- (defun c:zx () (command "zoom" ".5x"))$ S+ X8 f0 `/ T8 t0 E: G( {- M+ P# o
- (defun c:zz () (command "zoom" "p"))' u2 r9 G7 o) w5 i: H0 E+ Z
- (defun c:za () (command "zoom" "a"))
1 O6 N$ z- R( S5 ^# l# o0 I0 F8 Q - (defun c:zd () (command "zoom" "d"))7 j; V+ E9 ]3 z: s
- (defun c:ze () (command "zoom" "e"))0 \% C5 A8 q- v: U# ]; h
- (defun c:zr () (command "zoom" "" ""))0 O" F9 \6 ]; U
- (defun c:vv () (command "ucs" "v"))
! l" B& r0 x" a4 i' U - (defun c:co () (ssget) (command "copy" "p" "" "m"))
9 l" N% \1 \6 y1 Q( l - (defun c:c () (command "circle"))
8 e. R3 K: ?- t P, m - (defun c:rt () (command "rotate"))
* y; f4 L+ d" j9 [ - (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))
/ K, A5 d- P8 c/ f- l: J T - (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))$ y* Q1 @% [: y! r$ r
- (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
3 u! u+ L" W, x% M, A0 u( Q1 o+ F+ o - (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))1 B* O7 Y' i' b: g8 s* w
- (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5")). Y I7 O% d6 T, m% _5 F! j
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))2 d& O0 n6 N4 M" \3 o. c
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60")); R' Z! r& D: F) D! }4 o
- (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
4 \3 @3 X9 B5 J1 A4 h. j! U, s/ _: @/ ` ~ - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
8 E! V& i u# Y0 N8 i - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))
4 @0 ^, A- Q' d9 @2 Z6 x6 a - (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))1 W Y4 G O$ x7 G
- (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y"))4 _) [0 ~" ?+ F N
- (defun c:fd () (command "find" "p" "" )(princ))(princ)
) T9 X2 J. l" `- T- R8 H+ [
: c: H" z, ?( w& ~+ `6 Q; i- k5 T- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)
F5 S" `9 s$ a3 u - (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ); m- C a' Q0 ?- y* [# t
- (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ)2 Z% \5 ~/ ~; ?3 v1 {6 r
- (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ)
5 u7 F4 C/ l% p; e! Z - (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))
# x. y3 K# F, i. | n4 \2 r: O6 } - (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n"))
: D) u$ _$ W5 F7 j: C3 v - (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n"))
) V, F" ? B' R- v6 e' E2 W/ K
2 s D$ \9 x) Q' q- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))
; C- [* Z' e* W: }& ~1 c - (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))& f' W( I" G* ]
- (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))
0 P( P# A$ d# j; B; z, ]8 q - (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n"))+ k8 a* p5 j8 ^5 }- D, G' h
- (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n"))
8 k7 [2 a; L% U# N - (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))
& @: k8 c5 j) H) _, k - ( q" N' F( Q; I0 U# ^
- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file
# }2 A) E% n6 j8 V+ l
! y/ ]# ?* R/ W) \, @6 l- ;free lisp by cadviet,cd2k44& v9 V& d9 D) l% r, F
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
# u; m' U2 |# b/ G/ h# }' Z - (defun c:FTEXT (/ ent tstyle )( Q: L9 P# q$ ^0 [/ v" J
- (command "undo" "be")
9 `5 j4 Y1 D$ }& T( L - (setq ent (entsel "\n Pick text :"))( K9 [+ s7 R0 z! W
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
S' |* k& R6 K3 P5 Z: f9 a - (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")# y. s! p \' A, k$ @' L3 X, j0 t
- (setvar "TEXTSTYLE" Tstyle)& l; }0 ~5 k+ g( y% ~$ p' I$ L
- (command "undo" "end")) W2 p" g6 ~7 P* o0 C
- )
0 X* k0 R+ P2 Y6 q - ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)% V7 T& e% Q: M$ B0 Q
- * t6 O2 O a* U( y+ H0 [
- ;free lisp by cadviet,cd2k44
9 ` g* g# p0 i( k* T/ w - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
! B8 y8 d$ ?' l4 h( T+ O - (defun c:Fvnh (/ ent tstyle )
# p7 x6 R8 s% D. u. e. R/ V - (command "undo" "be")
/ L/ d& b' A) r5 [ - (setq ent (entsel "\n Pick text :"))
# f: C+ Q' n- }: I9 ]8 i B- z - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
) k3 d* m% ^: H - (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
( i5 v, M) M7 ^5 B$ N& P( k - (setvar "TEXTSTYLE" Tstyle)
* d5 _ k3 g4 V: R- L - (command "undo" "end")
3 T j8 }" V* p/ S9 N3 V2 E+ [ - )
% L; w2 i, I0 s9 M
6 Y6 G) |, O7 T- ;free lisp by cadviet,cd2k44, n0 g6 M4 v1 Z: A K6 T! g
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
& E! }6 z' l; {& [8 ]( G8 N - (defun c:Chbg (/ ent tstyle ) z r* B4 x( I* T) C5 P
- (command "undo" "be")" x3 b1 E1 p Z6 r# s6 J
- (setq ent (entsel "\n Pick text :"))
! w, H6 D6 ^, R - (setq TSTYLE (cdr (assoc 7 (entget (car ent))))). W/ w l: t# @# v
- (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")) j ~+ N+ ~6 D2 Z- B% _$ O
- (setvar "TEXTSTYLE" Tstyle)
8 T" `0 I. {5 d6 }- k: |- L# V - (command "undo" "end")/ K( {4 z7 \: q6 `
- )2 H+ y% V$ F3 {6 N
. H# e& d2 D& k- ;free lisp by cadviet,cd2k44
) b' M) v* f$ l, k9 O - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
% m$ e. P2 D: M Q; } - (defun c:Chsm (/ ent tstyle )
5 a; C6 W3 r* h2 [2 Y u9 s - (command "undo" "be")' ^& [% k1 t( o
- (setq ent (entsel "\n Pick text :"))6 Z; \" ?; ]. l2 n; Y& t6 |
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
U1 `2 A2 t; L% z - (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
* _' O# w8 X. T3 \* o - (setvar "TEXTSTYLE" Tstyle)+ N$ b, ?5 V$ ~# f) c* W
- (command "undo" "end")
9 a! c; ~( o4 w) q - )
) M( K- ~8 z6 }& } - & J5 H8 J7 C& ]. f m, Z
- ;free lisp by cadviet,cd2k44# ^! r0 @# `2 R
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830. V/ n! m* U* F/ N) V- @& @
- (defun c:Fttf (/ ent tstyle ); t; R. a) t0 {6 Y: F& ~
- (command "undo" "be")
4 u9 ?" i; R) Z - (setq ent (entsel "\n Pick text :"))
8 t9 G& k- @; D- T - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))6 o) {+ W3 |, h" V) W, w
- (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n")1 X% O$ H; z. T3 S: u$ L2 |6 {: x: {, ~
- (setvar "TEXTSTYLE" Tstyle)8 O! b3 I" S" F3 [
- (command "undo" "end")
3 i1 T- u# u* Q% M2 W - )7 o( B& e: ~: d1 y" n
- t8 E% Z* K. _ R- ;;; ============================================" \ T: G) q+ O
- ;;;- z, ~; M6 a1 @: G4 p
- ;;; LISP Creater Tao Duong Dan AUTOCAD20005 p x N5 B3 V
- ;;;# ~; N$ {, F: B: b
- ;;; ============================================
u. `7 r$ [- R! u4 @
# \4 M# L5 J* n# t2 ~1 f, v- ;;; ============================================
1 e8 x% p! Z# Y, ? - ;;;
/ e4 S r8 S+ i- F6 D - ;;; CREATING FROM AUTOCAD2000! Y0 q( \ u- r3 P4 x8 E
- ;;;" ~+ O+ l$ m$ F9 a( J* i; W2 p
- ;;; ============================================
9 O4 m# M6 L% X% k7 P# V - * W3 ~8 A( a! z% Q+ h
- (setvar "INSUNITS"4), ?5 A! g; _# `) n3 \* s; |# z! t
- (setvar "ANGBASE"0)$ w3 h- e0 N% _1 L
- (setvar "ANGDIR"0)
, A7 \9 p/ N3 _3 f# r# K2 ] - (setvar "AUNITS"0)
! p; \6 A7 H; s1 \: K x - (setvar "AUPREC"8)
' e) b1 v% R8 g0 N/ ]% P - (setvar "LUNITS"2)
, V `+ X" G6 s" p4 R6 ~3 B - (setvar "LUPREC"8)
6 `7 I3 r+ a @6 k% [$ R' i - (setvar "ACADLSPASDOC"1) ! Q% h! G: C* d+ H7 C
- (setvar "pickbox"5)! t5 ^; a. E8 Q/ G: f
- (setvar "blipmode"0)
! W; R, A4 \, G1 X8 M - (setvar "mirrtext"0): @' b* ~* J- {4 x1 }" N: H
- (setvar "cursorsize"100)
4 D; L8 {5 f8 ~0 J - (setvar "ZOOMFACTOR"75)
2 x% n/ h2 t1 |" a6 m - (setvar "LTSCALE" 10), L, ^- S2 u6 O% L7 f8 Y" v& v$ x! Z
- (setvar "lwunits"1)
/ A% D& y% ?3 M' o2 Q; ~3 b! ^$ R# m - (setvar "DIMBLK" "Closed")# U- L* v' ~3 G8 B! Q3 M. u
- (setvar "DIMGAP"0.0693)( y4 e. Q) L, Z
- (setvar "DIMASZ"0.20)$ u5 |8 \3 c9 i9 x
- (setvar "DIMCEN"0.2); {$ b/ q& @: P2 Q O
- (setvar "DIMDLI"0.1)& Y3 M! e4 O/ G. p+ l
- (setvar "DIMEXE"0.0693): U. I; n& w! b, q/ b; d9 \
- (setvar "DIMEXO"0.25)
7 j: b5 f/ {- Q7 |% L: C% y - (setvar "DIMDEC"0)9 A! r4 r6 Y& D) z# ]) y" X) j. a$ |
- (setvar "DIMTIX" 1)9 v% Y9 g' ~; U1 s. X" V
- (setvar "DIMTXT" 0.099)0 y8 @" S7 s7 s% |) _' m/ ^
- (setvar "DIMCLRT" 7)$ m0 K u% I; a# s1 Y5 S
- (setvar "DIMTVP" 1)
% [& s% L( t" Z( u - (setvar "DIMJUST" 0)+ |9 [$ P3 o z9 d% Q
- (setvar "DIMTIH" 0)
% u4 F! _- T3 K1 f - (setvar "DIMTOFL" 1) N1 P8 i3 b; F/ I( c& P
- (setvar "DIMSCALE" 1111.1111)& N4 d" l4 `4 z( H5 n: N, y% n2 O7 q4 Z9 [- B
* W X" b: r6 k- L, }+ m3 B- 0 t" u( n$ |9 m
" J; L; t. R3 e' [5 x8 ]1 B- (defun c:zp () (command "'.zoom" "p"))
, ]6 o6 C/ i! z P, i - (defun c:zz () (command "'.zoom" "p"))* ]$ K% O$ l$ x q% j% x
- (defun c:ze () (command "'.zoom" "e"))7 M2 _& O0 Z% a0 E- I& W
- (defun c:za () (command "'.zoom" "a"))
/ }3 C! |% q) w* u* L - (defun c:zd () (command "'.zoom" "d"))
) L& `1 S8 u, |0 j& h0 x - (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))
* e3 k R/ s. n - (DEFUN C:ZX () (COMMAND "ZOOM" "2X"))
4 r2 k0 e3 r- ], y* \6 C - (defun c:de () (command "ddedit")(princ)) S( n5 L8 y4 K; w0 E7 p2 S- E9 |1 v
- (defun c:dda () (command "Dimaligned"))& `; \; @/ h# ` N9 I; \+ n
- (defun c:ddb () (command "Dimabaseline"))7 ^& i u" V( p: `/ J* m& K: v
- (defun c:ddc () (command "Dimcontinue"))1 T. y( t$ g, X5 w
- (defun c:dde () (command "Dimtedit"))
3 W3 \' K2 Y. r& V5 x - (defun c:ddf () (command "Ddattdef"))8 f% ?3 @# f u- D# `$ V2 J
- (defun c:ddi () (command "Dimdiameter"))% M- F; F; Y9 p6 j" }% k
- (defun c:ddl () (command "Dimlinear"))
' h* `* V) H5 V; Y2 X' Z - (defun c:ddn () (command "Dimangular"))
; F% r1 x' P# M+ q; \3 N - (defun c:ddo () (command "Dimordinate"))1 T3 O: @. j% f
- (defun c:ddr () (command "Dimradius"))) u# Q! `% B: h3 b; J5 E' I
- (defun c:dds () (command "Dimstyle"))
! K& t$ P1 [5 a* I& ?
. T1 o; g8 p. J8 _8 F: t# @! `- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ)+ _ o* |5 j/ N g8 I) }
- (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ)& ?" V- A3 j' p) x' W9 y" {
- (defun c:UU () (command "dim1""update""all"))7 s1 |* Y, W( X5 Q# O$ U
- (defun c:ded() (command "dim1""tedit"))
. c9 i; w1 s- X- ^0 R - (defun c:da () (command "dim1""ali"))
# n$ P' J+ B) u' v# ?4 R - (defun c:dll() (command "dim1""l"))
~/ o& Q6 R6 R$ Q5 `5 J) o - (defun c:dan() (command "dim1""an"))
% ~6 L+ s# G( [* {8 N" |$ e/ w' l - (defun c:d1 () (command "dim1""ra"))
, h" d' x; P3 q0 m) b( _) y2 M - (defun c:n () (command "dim1""new"))
; u% E; [6 B I* }; ^: i" `' U: M; x
5 B' I- T2 C; e, J& c3 u- (DEFUN C:PE () (COMMAND "PEDIT"))) b/ f( I- P) b! }
- (DEFUN C:PL () (COMMAND "PLINE"))& ~% O. _6 n; C( \; Q" R1 A2 w
- (defun c:dd () (command "dist")(princ))& X2 y8 ~% E6 c1 d" y
- (defun c:w () (command "pedit" pause "w" "au")(princ))
: O r4 h1 r T7 e# O3 G - (defun c:pg () (command "polygon" "polygon"))6 @+ a! @/ ?* F* N
- (defun c:el () (command "ellipse"))
( d+ g Z& H$ L0 Z1 Y - (defun c:xe () (command "explode"))
[9 E8 o# `% H/ \ - (defun c:eex () (command "extrude"))+ S/ b3 m2 f. M0 u
- (defun c:xg () (command "xline""a"))+ Q( W$ w! y. t5 ` R
- (defun c:xh () (command "xline""h"))
5 ?- v5 M& B3 [8 X- g) T - (defun c:xv () (command "xline""v")): k7 o; u( N7 ~5 A% N( u3 D$ o
- * ^) w U# Q' Q/ r0 C' K, ]
- (defun c:oc () (command "osnap""cen"))
: H* I! j7 S; m- p6 M5 J- X - (defun c:od () (command "osnap""nod"))
, m( {4 m7 g$ s9 t - (defun c:oe () (command "osnap""end"))
* B+ C& Y% Q7 r - (defun c:oi () (command "osnap""int"))
$ d* U$ _( K( Q7 M - (defun c:or () (command "osnap""per"))
4 T# T& d9 H) C. j- f+ f - (defun c:on () (command "osnap""none"))
1 M1 f; P1 R6 \: P - (defun c:oq () (command "osnap""qua"))" H! ?; L5 t, e% x
- (defun c:om () (command "osnap""mid")); G+ c) R7 @& O7 o S+ E
- (defun c:ot () (command "osnap""tan"))' {: J+ Y2 a# ~ A! |
- (defun c:oin () (command "osnap""ins"))3 X% c- V/ M* M: J, G7 L
- (defun c:oa () (command "osnap""nea"))8 _7 j+ h& _2 V E' \
- (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))
4 v* ]0 _$ r& K8 O% D; k - ;(defun c:du () (command "dim1" "up" "s" "pick" "other"))
+ [$ o/ d" V& W1 \7 o) e - ;(defun c:nn () (command "new" "y" ))' I* z9 {% t5 }( v0 v
- % s+ h/ S3 t+ [1 _9 p+ j( O& P2 K
- (defun c:/ () (command "limits"))
8 X( y" A; G) B1 r; T0 d - (defun c:`1 () (command "region"))
1 m3 Q8 U/ ?. P& k# N- h, E: X - (defun c:`2 () (command "subtract"))
9 W- c. ~- E$ z6 `/ Q% K3 n! D - (defun c:`3 () (command "union"))( X1 G" r8 o# \) b: |
- (defun c:`4 () (command "intersect"))$ M' b$ e4 ? P& i' l
- (defun c:`c () (command "cal"))
! X5 {; Y& p( F$ E# `* o- N - (defun c:`g () (command "Polygon"))
/ c& s- y/ R( x. O" i9 [6 t# p
8 S1 g" {( j! r( U4 o$ ]( r; `- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))' ^7 v" _( v; W& ^& M& H- I; d/ A
- (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ))) r8 m! P' ~7 }; ^) [
- (defun c:ip () (ssget) (command "print,_plot" ))(princ)3 H6 H/ w: ~! W! M; |
- 2 R7 p: B0 q/ w Q+ @
- (defun c:ddm () (command "ddlmodes" pause))6 M* D6 g" I5 R. _4 _# r
4 w6 s# q: G1 {5 Q" d- (defun c:sha () (command "shade" pause))
* F; o& u3 y9 K3 h
0 F8 D: ~3 c& A' \& ~0 y& S# {- (defun c:sr1 () (command "surftab1" "p" "" pause)), Q4 y; P/ l% ]1 {4 G& \& Y
- (defun c:sr2 () (command "surftab2" "p" "" pause))
8 [) b J- F+ q8 @5 J. J: \
9 b0 x$ q8 _6 v4 X- (defun c:ad () (command "audit""y"))/ p3 P" P4 A$ j. a2 J9 w0 V
- (defun c:q () (command "quit"))+ a% g. I& w( O5 X7 P6 |1 A
; v) w9 v0 l1 X4 \, p4 q* x- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30")); P7 c8 d( c" Y& z
- (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30")); s% x L7 W( G. F
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))% d8 X: v* {+ Y7 @ J5 b0 B* P
- (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))$ q' n' M9 I) i! }0 y+ [
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))- R. W0 W7 u' Q2 w
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))" t& {+ A4 }2 F5 i
- (defun c:90 () (ssget) (command "rotate" "p" "" pause "90")) K, [3 h6 D( Z1 w6 M# Q
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))5 ]. D4 h0 v$ O/ Q& J) M* n+ W6 J9 k
- (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
. i3 a w- M' S; |
: p4 B1 E/ Q. a3 o# C% G8 {% A- (defun c:u3 () (command "ucs""3"))
1 Y: s* h# e( v9 s$ m, p U/ @ t - (defun c:ue () (command "ucs""o""end"))
: t+ `4 X5 Q) G0 H' o( s A - (defun c:ui () (command "ucs""o""int"))
( `7 J* n4 @; d# | `( V0 l% S1 N - (defun c:um () (command "ucs""o""mid"))
4 t& Q A0 k5 k% u! ^ - (defun c:uc () (command "ucs""o""cen"))4 O8 R4 a% F! J: Z; E
- (defun c:uq () (command "ucs""o""qua"))
; C/ ~/ ], m# v0 P! [7 U - (defun c:3s () (command "ucs""3"))
. R% V8 f: f, L% } - (defun c:sx () (command "ucs""s"))
, s, m) D3 J) Y2 E9 L( q - (defun c:sf () (command "ucs""o"))6 j7 p' T( J3 |
- (defun c:sz () (command "ucs""p"))
4 Y: q0 n/ [5 K; G& {2 N4 \ - (defun c:sr () (command "ucs""r"))$ f! d' l) T v( m% f
- (defun c:sw () (command "ucs""w"))( \4 M! Z; Z/ c7 H5 u6 R" \
- (defun c:fv () (command "ucs""v"))8 M4 v% _. x0 H* H- c
- (defun c:ux () (command "ucs""x"))
2 a9 ~7 S# Z5 A8 N - (defun c:uux () (command "ucs""x""90"))" Q. W8 c5 }; m1 Z/ T
- (defun c:xxu () (command "ucs""x""-90"))
6 @5 [+ A9 U4 w k0 r - (defun c:uy () (command "ucs""y"))
% O/ }. u5 d: ^9 ?4 D2 e7 X - (defun c:uuy () (command "ucs""y""90"))
) Y* P$ V N5 ]7 G4 C3 t2 [ - (defun c:yyu () (command "ucs""y""-90"))
f+ l ]1 `( m - (defun c:uz () (command "ucs""z"))# f1 ^' ^6 \- ]# y2 a/ e
- (defun c:uuz () (command "ucs""z""90"))
" v4 `5 c' k& Y: S - (defun c:zzu () (command "ucs""z""-90"))
/ d3 w2 }/ a9 I7 v# ?/ e/ A8 ^5 [& j - (defun c:uci () (command "ucsicon" "Properties" ))(princ)& w3 W/ N. W3 r; @1 f4 a
- (defun c:ucm () (command "ucsman" ))(princ)9 v. n$ U2 t! S4 n8 K+ J
- % o/ b$ [1 x/ a; Z
- (defun c:sa () (command "vpoint""_non""-1,-1,1")) G9 _. Q& U' N! a1 n. L5 W
- (defun c:sd () (command "vpoint""_non""1,-1,1"))
/ L( s7 x( }8 k% Y - (defun c:se () (command "vpoint""_non""1,1,1"))
% O; `$ g: W+ _( t - (defun c:sq () (command "vpoint""_non""-1,1,1"))4 ^, s# i- b2 R4 y- l
- (defun c:vc () (command "plan"""))+ R0 t/ }; e& z* t# B7 M
- (defun c:vd () (command "dview""all"))
+ }) X Y( [8 u( X - 8 w, ~4 G1 h' _2 b
- (defun c:TT0 () (command "tilemode""0"))
' w l/ Q z2 R& F% D$ F% W( E - (defun c:TT1 () (command "tilemode""1"))
+ x1 U5 {6 n- C6 |& @ - ! e8 v# s p% B. \# x
- (defun c:vt () (command "vpoint""_non""0,0,1"))
( r( g& l+ [6 T3 i6 P9 y1 {0 ` - (defun c:vb () (command "vpoint""_non""0,0,-1")). ]+ ?/ M9 u1 ]3 Z+ E# k' b4 v
- (defun c:vl () (command "vpoint""_non""-1,0,0"))5 C) y- Q- Y. v+ g
- (defun c:vr () (command "vpoint""_non""1,0,0"))5 h& I4 H% |' ?" I% ?' G: m
- (defun c:vf () (command "vpoint""_non""0,-1,0"))
) c- V v! d' ? `5 y - (defun c:vk () (command "vpoint""_non""0,1,0")). R. }3 D! i- w: @$ z5 f7 Z/ y
- % y; U$ D& {4 n; N" U+ k
- (DEFUN C:MM () (COMMAND "MIRROR"))7 l; z1 {$ d, Z2 m
- (DEFUN C:MP () (COMMAND "MOVE" "P"))7 D4 O0 D3 E& E8 x" a6 I9 U
9 t1 c0 Y$ R. Q' p- (defun c:mee (/ a); \2 r# C. {! J' R% Q
- (setq a (ssget))(command "move"a"""end"pause"end"))/ C: H$ l$ k) q; h {
- (defun c:mc (/ a)
& e0 F; E% h. T' O0 z - (setq a (ssget))(command "move"a"""cen"pause"cen")) S X1 o7 T2 R% r2 E3 u' ~
- (defun c:cc (/ a)
% T5 i- O7 ^; ~. e" M - (setq a (ssget))(command "copy"a"""m"))0 s* j# ?7 y' Q/ K m
- (defun c:ce (/ a)
; B; m! {3 e+ t( |: C) k- W - (setq a (ssget))(command "copy"a"""m""end"pause"end"))! b. Y+ K- p% r2 G& l1 i4 F
- (defun c:cn (/ a)
, N+ ?, |2 v+ \3 w3 g - (setq a (ssget))(command "copy"a"""m""cen"pause"cen"))
k2 K( U4 W. q0 E _+ E8 Q - (defun c:tl ()(command "trim""l"""))
% o4 @$ H, ^$ n$ S: ]( | - (defun c:tf (/ a)% Y" V7 I; o) v# C
- (setq a (ssget))(command "trim"a"""f"))
% m4 c. ~; ^4 V: u - (defun c:el ()(command "extend""l"""))
8 ~- R. s2 J) J; g - (defun c:ef (/ a)
# x! P# r5 J4 P5 L - (setq a (ssget))(command "extend"a"""f"))1 R+ |4 S+ l! n% b2 m; R, M' p5 B
- ) v4 \4 U6 J" H% ]3 h' z" c2 t+ f
N: D2 R9 a3 C* [; {" H0 d0 r- X- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110"))
5 V3 k* I# D. f- Z' s6 o - (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))
, i! @- ^, J9 }7 J# R$ u - (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330")); d- \0 w5 O* l
- (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))
- l8 W) J5 b- v6 k6 b - (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55"))2 R. p; Q3 ]) z" \# ~" b
- (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600"))% I5 N; \3 o" G7 [$ Y4 F9 P
- (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))0 ^, q/ `, _1 E" N8 J: H
- (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))
7 t3 t+ y1 R, v6 |3 _1 N# z - (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900")) z7 \$ p+ N( s+ t" P9 S
- (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200")): s, w0 d( h2 ?$ G# Q/ z1 K# D
- (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))
' x3 A4 d' d5 L( _6 x' V$ t d; R - (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))1 F# e) v. Q+ v& L( m2 j& t6 {
- (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))
9 }, Z1 d$ k5 { X( t - (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))8 z% E' S" q1 X. f; z1 s
- (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))
9 H0 h/ ^ c7 o% i - (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))+ E/ C% n+ `" ^0 @! T" m
- (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000")), i% E* Y3 g( o% r0 ^; }, O# J
; w1 m4 w0 K1 ^* _. L6 Q/ f0 R8 Q. Q- (defun c:mla () (command "-mledit""av"))" T! q0 D7 t$ p
- (defun c:mlc () (command "-mledit""mc"))
* k$ _5 N8 C/ ~" g# p! r f - (defun c:mld () (command "-mledit""dv"))
8 Z7 K4 f Y! c! F) D - (defun c:mle () (command "mline""end"pause"end"))
- r, x2 w" W$ I, J( S6 G1 @% a - (defun c:mli () (command "-mledit""ca""int"pause"int"))! ]+ N# }6 P) ]4 R; Q# c8 W6 U
- (defun c:mlj () (command "-mledit""cj"))5 C9 C4 Q; l3 A# ?: s
- (defun c:mlt () (command "-mledit""mt"))$ P& c+ Y4 N9 ?+ y2 {( i& V& a
- (defun c:mlk () (command "-mledit""ca""end"pause"end"))
4 ^2 { Z+ U: O6 y% u4 R - (defun c:mlw () (command "-mledit""wa"))2 s% N# v9 y0 E
- * P, U0 }* u$ d# ^& f; J
- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA"))
6 R2 C' C3 R; U# d0 z6 `) e! _ - (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA"))
6 |- a; a v. T$ H+ Q) l3 D& e4 l - (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO"))- C" v1 p: r, O( O. S
- (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D"))
1 J+ n) s# m7 d" x9 [ - (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z")), V$ N( [ D( l, L( ], Z
2 A; N8 k9 m% h' s/ k0 U6 U2 K+ R& o- (defun c:p0 () (command "pline""""w""0""0"))3 Y* N0 N* h# V* M8 j: C" w
- (defun c:ot () (command "offset""t"))! _; H5 }( {6 p2 S7 M
- (defun c:t () (command "mtext"pause"j""bl""h"pause))
3 G+ @% y* ?. z t& H: X6 A - (defun c:uo () (command "ucs""ob"pause))
$ h3 T) p, I# y8 z7 } - (defun c:f0 () (command "fillet""r""0"))- H7 c5 {/ o. l
- (defun c:fr () (command "fillet""r"))+ ~% e+ d, d! h* S
' u# L' e3 u1 y6 e. m- ;CHAMFER
) r& E4 [; `1 ^' p2 A. f0 K% V - (defun c:cf () (command "chamfer"))+ g* y# o9 x* C7 \ r% l
- (defun c:cfd () (command "chamfer" "d"))" d" k3 L. X8 u4 l( S( O8 {0 X- D9 z4 ]
- (defun c:cf0 () (command "chamfer" "d" "0" ""))% p6 s0 i* w0 X$ u$ o
8 i% Q w/ V; `- ;FILLET
8 f, f: @. [/ }* T - (defun c:f () (command "fillet"))$ F- ]1 U, {5 S% p
- (defun c:fr () (command "fillet" "r"))
4 ~6 h) i! G* x0 {) J* w3 H - (defun c:f0 () (command "fillet" "r" "0"))
t/ C7 ~+ D3 P" e2 N - 7 G7 R' a3 v3 U; o
- (defun c:OO () (command "oops"))
" \1 ?8 J3 Y$ I0 K4 v# u* J - (defun c:dln () (command "dimlinear"))
1 @3 x8 @: e# {2 s" P - (defun c:dan () (command "dimaligned"))
) O1 N! P6 z# T% z - (defun c:ddc () (command "dimcontinue")) {4 j) m! ^5 E7 x
1 e3 m/ Q5 S! @" b- (defun c:sc () (command "scale" "auto"))/ N; ~0 M: D) m' n- ?9 a: V
- (DEFUN C:XO () (COMMAND "snapang"))
0 N# s; {& y( O' o5 I - (defun c:cc (/ a)7 m0 }* b5 R8 v% K$ g s: h# a9 y
- (setq a (ssget))(command "copy"a"""m"))" }3 T N: O% W
$ O) N0 h. v: p: L- (defun c:PJ (/ a)
U$ p- _# B- R. e9 o - (setq a (ssget))(command "pedit"a"""j""all""y"))
0 F; `' J, \9 R- h; E# s* e - (defun c:JJ (/ a)5 B1 U2 Z+ _! k: U5 ]
- (setq a (ssget))(command "pedit"a"""j""y")). O' k# j# _7 O. C- e
- (defun c:TN (/ a)
1 _; P. ^$ q4 _: _' m `* N - (setq a (ssget))(command "change"a"""p""T"))* J5 \1 @) q1 a7 N- A0 m
- 8 [+ H1 f6 D& C1 C
& @+ c& k6 a# t, \+ A* {1 f/ ?4 k- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD=========================- u' Y; \3 L/ U1 [! I9 u
- ; y8 W6 ]5 S( p1 u N
- (defun C:IB ()(setvar"cmdecho"1), Q" z* F$ n% L' N3 g% @1 ]
- (setq pt(cadr(entsel"\nSelect Block:")))
' e& x) s# C5 h D9 X9 t: v - (setq e1(ssget pt))
4 z5 @& e: A2 O( H7 { - (setq e2 (entget (ssname e1 0)))
3 r2 a( S( V* m) L% r5 X# s - (setq blname (cdr(assoc 2 e2)))8 c- K3 K' j0 r
- (setq oer *error* *error* err2)(command ".insert" blname))
& E' [% v" E! B/ {3 i% X4 v0 |. c
. y0 [% J! h4 s0 J% G; i' `- (defun c:II ()# r, y0 T4 a* \3 S# Y4 ~. N/ E
- (setvar "cmdecho" 0) Y0 I% q7 s6 S- M
- (setq olderr *error* *error* myerror)
% n0 s+ O6 R( N' U - (prompt "\nSelect objects: ")9 O4 t8 e: g: y' z3 }, a7 _+ x
- (command "select" "au" pause)* m: Z2 s1 @6 ]
- (setq sstxt (ssget "p")( B/ b8 }$ K" G2 s3 _! y
- sslen (sslength sstxt)0 n6 F" I( H D) S3 Y! O8 ~5 F, [
- ctr 0
8 T* M- P7 W% {4 } - )8 \" W5 g! b+ A5 H
- (command ".undo" "mark")
% Q) I0 ~0 O2 r: _ - (while (< ctr sslen)4 g- W( g* k$ }: F/ J9 s5 b
- (setq listxt (entget (ssname sstxt ctr)) E( o/ f2 M) h
- txttxt (cdr (assoc 1 listxt))
0 \& T( n% j) k - enttxt (cdr (assoc 0 listxt))
, W* ]5 _ a6 A! W - )
- c+ F( W2 `; g! K8 M& U+ N r - (if (= enttxt "TEXT")6 Z% d* n3 i8 p" d" c
- (progn
$ t' U3 S! r' ^/ ], U! U# h - (setq testxt (substr txttxt 1 3))8 `7 \4 A( }7 V+ T M$ Y& Z: M
- (if (or (= testxt "%%C") (= testxt "%%C"))
. `# L& v: E) I - (setq newtxt (substr txttxt 4))
% @! D8 n- R8 a - (setq newtxt (strcat "%%C" txttxt))
5 \% k$ `( m; ~3 D* ? - )
& t3 Y8 t/ Z8 W7 L) D! C/ P - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
& R! x, Z; A7 @- x6 J2 @( R$ @ - (entmod listxt)" k. b$ c/ O* A4 [+ X# I" w8 {0 H
- )& F( t, B4 }9 b4 e0 ]
- )
6 z. b7 M% y% Z' L) o - (setq ctr (1+ ctr))
5 ~3 ? K3 D9 S, C7 y3 l/ S. [ - )
0 I, [" A* f7 i) `% |: I3 w - (setq *error* olderr)$ U# Z* w/ @7 w8 ~$ ], L/ S. M& \
- (setvar "cmdecho" 1)
' C5 D* @3 ^1 W% l7 o% Q - (princ): L, {, _7 v; z+ C# `
- )3 n( Q) b/ a3 W, r4 n. A+ K' p
6 N4 k* F6 I0 v- (defun c:DG ()
" p9 z, u/ p% |" n - (setvar "cmdecho" 0)+ o: n+ R$ Y" ]7 j% _: l
- (setq olderr *error* *error* myerror)
+ g5 c. }, ]6 C - (prompt "\nSelect objects: ")5 g9 B0 F% t5 F: Q
- (command "select" "au" pause)" j1 t" v" {6 j5 g. r4 R* U2 {) U
- (setq sstxt (ssget "p")
, Z4 K/ x3 }; M' x3 R4 @ - sslen (sslength sstxt)- h9 E4 u9 o- _ n. }/ V, ~
- ctr 01 Y0 ?+ Q, ~ K6 G2 ^3 E4 M
- )# y {0 {0 L5 y
- (command ".undo" "mark")
5 m4 U* s0 m: l4 E: i; S; H - (while (< ctr sslen)
1 F# s2 c# Z- K; | - (setq listxt (entget (ssname sstxt ctr)). ]) C, D* {: [5 G# A0 {7 U
- txttxt (cdr (assoc 1 listxt))
, Z( }" S5 X! a6 A2 g2 Y- R2 T - enttxt (cdr (assoc 0 listxt))
5 C# k' U4 ?: F) X - )' }( i2 w" o0 N& k1 U- k
- (if (= enttxt "TEXT")
9 k' Y' l, u( Q+ _' q( | - (progn
# j% }0 D" L' S5 M5 B" N - (setq testxt (substr txttxt 1 3)). o3 Z' v. y# G! e+ |( N% D1 V
- (if (or (= testxt "%%d") (= testxt "%%d"))- l- P3 m$ C% {* H0 y
- (setq newtxt (substr txttxt 4))
* K) p+ e/ R; J" L& n - (setq newtxt (strcat txttxt "%%dC" ))! v, g9 v5 P! C) `
- ), d8 n+ t i2 l$ I7 E1 S. D
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))3 m* ^3 S- i, v) D; L H4 y, S
- (entmod listxt)
; c! N" e6 F: l6 g$ m3 H& N - )1 @/ \# N! F6 q# o2 {5 ^. o
- )5 U% z R, p7 S) W/ U4 H4 h* R* y
- (setq ctr (1+ ctr))
# I6 }3 ?/ b3 P, V m( ?: _ - ). Y6 G& s5 i [& P
- (setq *error* olderr)' ]6 P, |+ O# {; z! _/ p0 X
- (setvar "cmdecho" 1)) L8 |0 }- i2 H* X- U3 J
- (princ)# W* e. a: ~$ [6 M$ o( `+ Q
- )
+ h- [; ~, F! I4 a - - ~0 T ?# |9 I5 r5 L3 z- [5 ~3 Z
- (defun c:PI ()/ `9 t" }( J) v/ A( e$ \9 \
- (setvar "cmdecho" 0)* ~; }/ k7 R# Q* g) C1 O0 H; f
- (setq olderr *error* *error* myerror); r0 ]9 s/ P5 F
- (prompt "\nSelect objects: ")
+ A" x# O" o/ M: }" l7 p) D - (command "select" "au" pause)
% M* [+ n0 C& O3 N9 _ - (setq sstxt (ssget "p")
! u6 B5 g) n# `) a# R r; V+ Y - sslen (sslength sstxt)/ E& N- R5 v$ ^% h/ g
- ctr 0$ C# `* ]* B+ m& u# b
- )( E1 p$ \: _3 f8 o$ s
- (command ".undo" "mark")! l& ^! T# G- y4 Z% I+ E* j
- (while (< ctr sslen); i2 A; j. V0 S
- (setq listxt (entget (ssname sstxt ctr))& W2 N, W% ^! a1 t( {5 r
- txttxt (cdr (assoc 1 listxt))% K* ^( y5 a3 y* h9 d
- enttxt (cdr (assoc 0 listxt))
0 C( G/ M% d' j, ] ~% w7 d - )
/ _) H2 v2 }: @" N% @* A: T - (if (= enttxt "TEXT")
3 I& a5 M2 B. q, o( F( r - (progn' {; n1 C/ y; o
- (setq testxt (substr txttxt 1 3))$ D, S1 O; Y( q, `
- (if (or (= testxt "%%p") (= testxt "%%p"))
2 u4 c1 `/ d- G - (setq newtxt (substr txttxt 4))1 g1 A" j; |4 r
- (setq newtxt (strcat "%%p" txttxt))* i: c$ i' o: C$ j) T0 l. O$ @( C z
- )
9 r9 q" E+ l) C9 J. r0 N. W) N - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
' T7 w1 h1 t; | - (entmod listxt)9 h \( K2 t5 ?
- )
; S1 u3 W. c- C' P. ? - )
8 T0 n9 L2 t' L4 A9 E0 S8 M2 ~ - (setq ctr (1+ ctr))
3 U4 s7 m Z3 H+ c& X- J3 j - )
r9 n0 m! Y2 K9 Y& ^/ \! V - (setq *error* olderr)+ l N. V! J, R. v2 Y+ p
- (setvar "cmdecho" 1)
9 f4 M$ b3 ~5 L - (princ)
, d4 v1 ]5 J# y `( ]5 L o - )
5 x/ n9 O, ]* L& ] - 7 ^) s( U; D4 v9 t
- (Defun c:CB (/ a)
+ G7 d% U" @+ A/ C: L+ w - (setq olderr *error* *error* myerror)
# M1 X9 v4 ^! r- b* }# A - (setq ocmd (getvar "cmdecho"))# K; u$ `5 N- Q k- A4 r9 T
- (setq oblp (getvar "blipmode"))1 R k4 O% y! _9 ?$ t6 r8 \& H
- (setvar "cmdecho" 0)
. {1 A9 {; s+ l" j) u8 V6 W - (setq a (ssget))
N4 ` x1 O6 N9 g7 Z) F6 Z9 [' D5 k - (command "CHPROP" a "" "C" "bylayer" "")
" E+ Z7 H: ~* x: Q - (setvar "cmdecho" ocmd)
5 e- T+ l9 X+ C( T. G; ?* G5 H1 } - (setvar "blipmode" oblp)
9 I! F/ R' F3 p# d6 N" r+ v - (setq *error* olderr) S! { E) n" l* G6 m; @# Q
- (princ)
8 b1 f/ b; Y/ n4 v$ D4 ? - )
: Z7 M" d5 `5 o6 ?# _
8 a7 Z; O+ K+ B- (defun c:LCC (/ co43 obj23 la23)
A R1 w' z4 C& V( z* h - (setvar "cmdecho" 0)) y& b: @( I# G# i# [! H) ]4 I6 H, h
- (setq co43 (getstring "\nNew color : "))) F6 C$ G$ g" ?
- (setq obj23 (car (entsel "\nPick object on desired layer: ")))( k' ]; F% p& G. J7 P! q
- (if obj23 (progn1 w& _" ]3 ]& T' h6 _) \
- (setq obj23 (entget obj23))' |$ L- g- ^7 B+ h+ i+ j
- (setq la23 (cdr (assoc 8 obj23)))6 ~0 l, z% z( [5 G& T) I
- (command "layer" "c" co43 la23 "")
$ E/ ~* P# D7 v - )/ D b0 W. w' n: W: Z( K8 ~
- )
; ?( F& w5 a/ S, @6 b - (prompt (strcat "\nLayer has changed..." la23))% Q v$ |; R) Q6 |# M
- (setvar "cmdecho" 1)
% ?" R, R' t3 U; R) Q+ x - (princ)# I9 @7 z- w5 q/ u
- )
4 e4 ?4 n# D# N( u
[4 r# L. t' v- (Defun c:RP (/ a)4 g' U6 j Y1 ^% m' {, X/ ~, \* l$ D
- (setq olderr *error* *error* myerror)
# \. Y$ g5 o" q" U* c - (setq ocmd (getvar "cmdecho"))
% y+ D& G7 \2 J! B* | - (setq oblp (getvar "blipmode"))
' k+ R4 H& Z: i; w9 b - (setvar "cmdecho" 0)
3 V. [3 v$ W$ x8 U# { - (prompt (strcat "\nUSE: Delete object(s) belonging to"
5 W7 ]; _, {0 P. E - " the layer of the entity picked...!"))
% l8 i% |$ a& v# o+ z - (setq a (entsel "\nPick the entity with the desired layer to delete: "))
3 o2 H3 Y4 f% j! v" e1 } - (if (/= a nil) `; \( O4 H* b5 f
- (progn (setq a (cdr (assoc 8 (entget (car a )))))
3 S! ?$ Y) G, B1 Z7 B - (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))8 W' V/ I5 y9 C) g
- (prompt "\nNo entity selected!"))
. y* t: |: ]! b" s! o+ q - (setvar "cmdecho" ocmd); x# v2 Y% L4 p0 C% s$ k
- (setvar "blipmode" oblp)
. V' K! Y; v' v- u! u5 i) ]# I - (setq *error* olderr)/ r* e* N3 K1 I' A6 d, q
- (princ), Q' p- |* M6 }# Q: Y1 _% Y1 P
- ): S: C% \; i; w9 J2 E0 z4 ~' }8 p. i
- 7 R: }. }5 u8 c
- (DEFUN C:WL(/ SSET NET SSL M)
2 T' w$ K# P; S! z5 }+ j3 k6 L8 U - (PRINC "\nSelect lines :")& @# P! e8 p/ g" c& l
- (SETQ SSET (SSGET))$ R' t e) I5 n, s0 m& Q
- (IF (/= NIL SSET) (PROGN/ P) [+ z# l0 l
- (SETQ SSL (SSLENGTH SSET))
: a: ^' P( D* ]8 b6 W5 ? - (INITGET 4)* Y9 f2 a0 J. q& N4 t
- (SETQ NET (GETREAL "New width : ")). ` U6 }- d. E, W( _" g
- (IF (/= NIL NET)
; {" r) R: M& t5 F - (WHILE (> SSL 0)9 C8 e, J' S3 h; z2 R1 M0 x4 U8 I
- (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))
A2 H) c P2 @ - (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE")
( `% n# ?2 x/ m0 g& S. K - (COMMAND "PEDIT" M "Y" "W" NET "")
) G1 M% @& U+ M. r - ) 2 b8 _+ b; d! n8 G+ \
- )
: G! B! m" K( r9 [ - )))
9 n/ k. B7 e- l/ U" W. {' D - (PRINC)9 x# n, p2 `/ y
- )
. T5 b) {7 l% U5 l6 y Y( d, E - , m2 f3 W# [1 |) `0 R4 P" N
- (defun C:MML ()
9 |: |" j$ ~( A - (princ "\nSelect objects to move to another Layer.")
* Q1 e. X& X2 u7 z( `( B/ } - (setq ss (ssget))
0 [7 H; w! e! Z - (SETQ UL1(GETSTRING "\nLayer to move entities to : "))
1 s- u' G0 P+ b. G7 u - (setq counter 0)
- y4 N8 s: ~- _, g* h1 W - (prompt "Moving to layer.....")(princ ul1)
: K0 p, F5 y* ^" z+ v$ W - (setq e (ssname ss counter))- X( D4 D8 D3 m# J
- (setq l (cdr (assoc 8 (entget e))))
9 ~4 s% D, V& S9 {, v0 g - (setq S (ssget "X" (list (cons 8 l))))
: m1 c! F! |+ `/ I( G/ q2 @9 h - (command "CHANGE" ss "" "P" "LA" UL1 "")4 q/ v- D$ O' @3 y a
- (setq counter (+ counter 1))8 i m$ ^ j, N, {; T, E0 n8 A
- (princ)
! u# L' ^) u5 D - ) % @) q# f# ^7 o2 M, m
- $ `7 q) `3 s" F: ]$ X" ^% n
- ;;; ================================ GHI CHU ============================6 g9 c0 v3 s, |5 G
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========$ V( f0 T. y- A% ^( c% W7 `
- ;;; =======================Thuong Dung Font Romant.vnh===================- i7 c0 Z3 T' w
3 N5 O& W( W! H- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
; I2 s4 F: `' C* x) r6 b3 k - (setq oer *error* *error* err2)
5 f! x3 w( {# c7 } - (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")
# D% N/ } S+ H& m3 D& \& k - (SETQ Cpt(GETSTRING "\n (ROMANT-vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (UNKNOWN-font)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))2 S# P3 q! k9 _* n
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p"))5 r$ k7 h. G! R0 B: M- G8 ?+ d5 R
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh"))# K9 i w1 P5 g2 O# e+ Z2 K
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p"))4 M2 |' ~0 W3 R' M3 W$ [& s
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c"))
, f8 }( b! Y9 @, e+ R - (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?")) _. b' U/ X% R
- (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An"))
5 i( g g' x2 F- [, X$ r4 S7 ? - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho"))4 o! l, Z; E8 M1 u$ J7 F8 A0 n
- (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`"))5 o( @% Q2 s5 f3 W# G. }7 I
- ' L7 @: Q7 z) X' ]1 X
- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))# k4 S: Y& K6 w0 g- {+ a
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
/ S& M4 n: c- q - (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))" ^" o2 ~+ U5 \& C) L
- (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))1 d3 B9 Y, N2 r
- (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
. a9 E5 Q+ Y* _6 K) D: z: a7 A - (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))5 w: z3 _# g; p2 v' g
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))* Y2 H' Y" }0 A4 J
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))- f9 b" u) V- v/ B$ l
- * ~( x( Z g0 ~0 _
- (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))
1 D' C2 j) m/ G* R - (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))! j" [, o( U \! b& s
- (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))& G9 E8 I+ G3 l2 P0 D" F6 G
- (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC")): N2 Z0 F; k8 X; d1 ~
- (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))" @, m7 p1 _( C: O
- (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))
/ X" P1 R }; Z: |( `: B' T/ \$ ? - (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))
4 _% X& G1 F" M* L, V - (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))& {5 z/ H: t6 g: x( T
- (setq pta (getpoint
" j5 j4 r/ X0 ^' C9 |: h4 i - "\nPick first corner. : "))0 ] g( t/ W0 n# h
- (setq ptb (getcorner pta4 E1 [ _# x6 w. @, ~ ~
- "\nPick second corner. : "))
) H& [( H% {/ Y* v4 e9 z9 `* U) ] - (setq ptc (list (car ptb)(cadr pta)))
! c# A+ {6 E5 k$ x/ ? - (setq ptd (list (car pta)(cadr ptb)))
9 t) o: j) L2 ^ - (setq ang (angle pta ptb))
$ f, L* {$ B2 P% \: A( X - (setq d1 (/(distance pta ptb) 2))- L: Y# `$ B# g0 T0 i/ d0 f0 q
- (setq cp (polar pta (- ang (dtr 0)) d1))
* P: g( n& R4 n$ [/ i! T - (setq X (distance pta ptc))
/ a, Z6 M- y+ n$ o! E1 U - (setq Y (distance pta ptd))! l" g( g. I: z; j# b
- (setq X1 (rtos x 2 1))
9 L2 |3 ^( ~) f0 L: ~ f# F0 d; O - (setq Y1 (rtos y 2 1))3 h4 ?7 }0 p0 N! p, n$ k* x! \
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))
* q" K. Y, G3 z8 { H1 z& S - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))# q" L9 _0 k* X6 m& g$ e, [1 w( e0 g: g
- (defun dtr (angg)
$ {: z/ l1 A( u- { - (* pi (/ angg 180.0)))
1 A7 o s$ D# p& c+ a8 `# N
4 w1 z- G$ W2 C& ^- (defun c:WS (/ pta ptb rmsz pl1). z# L/ Q! m: ^7 x
- (setq oer *error* *error* err2)
: E: g' H7 |8 H2 }4 I* C9 C - (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P).")
) b" w2 d4 A4 b: g7 y - (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))
; S* X, f8 w* Z; z+ l7 e6 L - 8 n9 ] B2 ^6 N& r
- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))& C0 e0 T' p4 _+ B# u+ M4 E
- (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100")). o! ^7 `1 V0 q, ^
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100")): V$ @1 P7 g; { W3 W8 ^6 j
- (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))
5 N5 w" F! v" W - (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100")). T* L4 R2 g5 S+ f$ r" |( e
- (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100")) f; K0 m! l3 j9 b, A9 Y
- (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))
! X9 D1 e# n9 I- n
8 Z8 i. P( }8 a' _+ X; Y) c4 s- (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"))/ B0 T+ ]* k" }, J3 ?
- (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100"))' T% ~ Z" ^: h* D8 d+ P' D
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))
2 t* |8 Q8 A% F& o' X7 Y2 B - (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))
( j# Q5 _" R, x* u - (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))
2 I: c" `: f# U! _ - (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"))
4 m* G# j r' ^" ~+ H: M+ y5 j3 j - (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN")): v" x8 C. u, ]4 ]9 r. ^1 a! p
- (setq pta (getpoint
: y8 n: _! j9 T! h7 v( ` - "\nPick first corner. : "))& S' V/ x% p9 k$ z: A
- (setq ptb (getcorner pta
, e4 |( d$ v& T, h3 e4 r - "\nPick second corner. : "))/ B( Q0 p. D/ J- I* ~- d( K
- (setq ptc (list (car ptb)(cadr pta))) |$ C( @ A; ]) x
- (setq ptd (list (car pta)(cadr ptb)))2 z/ @* r/ j+ Y5 e$ |. } C
- (setq ang (angle pta ptb))
. M5 w; z" h+ W) Y1 Q - (setq d1 (/(distance pta ptb) 2))
3 d2 o7 @" W1 B M$ L" A - (setq cp (polar pta (- ang (dtr 0)) d1))8 [. k2 B+ r3 F6 b, [
- (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz)), p6 E5 \8 E, J+ d3 u4 o. w( Q
- (defun dtr (angg)1 o1 m8 f4 N' u8 R% K
- (* pi (/ angg 180.0)))- W! D( s, C! t: Q+ |) i s
- : p+ X" y- x' Q, y3 }
- ;;; ================================ GHI CHU ============================
* r4 a) w+ [) o/ t7 Y4 G7 C - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========9 c0 d9 z6 _8 ]+ w
- ;;; =======================Thuong Dung Font Romant.vnh===================1 \! S( v2 ?4 s' k0 S: I! d# |
6 W! F# A% ? E- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
( |$ h) t5 V+ \+ l1 ?2 M - (setq oer *error* *error* err2)
2 u n v3 Y: q0 Y8 T% a - (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. ")
6 K, U1 v- q4 Z' T7 E9 @ - (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))
e2 S/ F5 y" m" ?( S - (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p"))! W4 \( H# ^/ }+ P/ t1 F$ \* O+ l
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))# m; [( O/ u4 ^; t
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p"))
8 C! o/ s" b1 _! [( y - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c")), J) e! [1 D- M5 Y8 G" m) U
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))
" L" I5 x3 x" ^ - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An"))
& x' ?/ ~0 b4 Q3 p - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho"))/ ` S9 j+ X. w8 U" I/ M: T! u& C
- (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?"))" w2 ~9 c0 {& K% X7 f8 R
- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))% W# u! I0 R3 _0 [/ u4 u
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
& ]/ U: ^$ [' R4 V0 J3 W - (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))7 J9 Y% ]) G' i; g2 z3 a! q
- (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc"))
- c. u7 w$ g* D - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
1 t& Z7 T5 } S5 o% B3 l - (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n")). {5 x' M) h. N" b# X, `
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
0 z, D( O% M- R# X - (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å")) 0 [: O* U3 n( I" \. B2 K
- (setq pta (getpoint7 x: r H1 f, P$ {( ?. R2 i- z4 k
- "\nPick first corner. : "))
6 x/ z0 Z7 D/ g0 _, J8 [ - (setq ptb (getcorner pta
! K' ^! H- v4 F: k5 y - "\nPick second corner. : "))* l3 ]1 O7 Z7 x- Q& u
- (setq ptc (list (car ptb)(cadr pta))) v* F. T6 t* R: W2 k& P
- (setq ptd (list (car pta)(cadr ptb)))* f4 u R2 `# t0 n+ I2 W$ G9 u; T
- (setq ang (angle pta ptb))! W1 y0 t8 c8 a$ J" m9 f
- (setq d1 (/(distance pta ptb) 2))
+ a! o" ~# E$ S! l8 R8 X, R1 [/ q) i - (setq cp (polar pta (- ang (dtr 0)) d1))7 V/ z' x1 y; J# q
- (setq X (distance pta ptc))
; g! Z. @# w( Z& B: @/ ~- V - (setq Y (distance pta ptd))
! T# \& U0 F5 z/ k# F) L, D - (setq X1 (rtos x 2 1))# C2 @& o( b9 j7 m
- (setq Y1 (rtos y 2 1)) g" t, E; `' F* a- s. ]
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))/ z7 J3 B9 w. [" ~
- (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
- _ d, U7 K* o- }& r - (defun dtr (angg)
- {1 B. ^1 a- r0 P1 \ - (* pi (/ angg 180.0)))
1 W1 P3 Z- w" V$ O$ F4 K ? - 4 N3 F# W% U' p# F
- ;;; ================================ GHI CHU ============================
5 Z8 C, p" F& _3 Y# i8 ] - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========5 R# [, X' g; y q6 z
- ;;; =======================Thuong Dung Font Romant.vnh===================
) W- u: ?4 r" n1 t
" Y/ N; |- L8 ^: V/ |8 ]. d- (defun c:GS (/ a b c d)7 N- b% R4 z3 S T! {
- (graphscr): A5 M1 D" ?4 ^0 |
- (prompt "\nSelect text to set style....")( g( B4 ^7 @' O
- (setq a (entsel))
* ]. Y) f. s" q$ I& j - (setq b (entget (car a)))! R( _ a8 Q! K( e
- (setq c (cdr (assoc 7 b)))
9 y" |$ Z0 ^; V/ L( b/ x - (setq d (cdr (assoc 40 b)))
: c, E0 j8 r* k4 x2 ]( ?9 \ - (command "style" c "" d "" "" "" ""))7 Y# K/ c, n, ~, C1 s- V& G3 T* A
- (princ "\nType GS to set text style.")
, Z& s# t& t8 |* G: `+ U. Y
; M- P2 ]# E! K N- E9 v- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)
6 a. v9 \- Q! @) U' u7 d - (setq olderr *error* *error* myerror)' G/ E4 Y0 t$ U% s
- (setq ocmd (getvar "cmdecho"))0 P/ z& g$ {- T
- (setq oblp (getvar "blipmode"))
8 ^0 E. O2 a1 x( [ - (setvar "cmdecho" 0)
3 @1 ] T& O$ }8 Y/ P- s0 { - (initget 1) ;3D point can't be null
2 r1 {8 F% ~: d1 S - (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))- R/ V5 [ a) j( o$ G S: |$ }
- (setvar "ORTHOMODE" 1)
( ~# Q# l6 h$ C( l: s - (initget 7) ;Length can't be 0, neg, or null p; Q9 m. ?8 o8 Q$ v T
- (Setq l (getdist pt1 "\nLength: "))
! F0 V# g+ M: k4 O' K5 q, I - (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))8 U; B4 D& J, A" b5 i
- (grdraw pt1 pt2 2)8 S1 h! \/ m. J* `# U( a# V
- (initget 7 "Square") ;Width can't be 0, neg, or null
/ @* g! _9 f1 c1 u" Q - (setq w (getdist pt1 "\nSquare/<Width>: "))
& o; d: F( t6 m4 Q& s - (if (= w "Square")
4 E6 i" D g& h( a% I8 ]; l3 U2 [ - (setq w l)
' |! d4 R" d; k2 g7 Q3 N - )7 T" J1 P" y5 y4 @( Y9 o- b
- (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))
% P7 z7 c U& i0 j" ~: B! c' d - (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))$ H! G8 I- ~5 ~$ d3 P+ g
- (grdraw pt2 pt3 2)
# ~$ A5 T- Y, X8 x1 o - (grdraw pt3 pt4 2)4 k4 q2 q9 }' L5 v I4 U8 \+ F
- (grdraw pt4 pt1 2)+ p: H: t+ y& o1 W2 b
- (setvar "ORTHOMODE" 0)
5 R# F, S7 R3 F! Z - (command "pline" pt1 pt2 pt3 pt4 "close")
/ s& f& j5 n! r8 J& t) h3 h. [- B - (setvar "cmdecho" ocmd)+ J( n2 g% Z' C% }
- (setvar "blipmode" oblp)9 }* h; t; S5 R" g9 ^
- (setq *error* olderr) ; Restore old *error* handler* b" z+ I) \- F& P
- (princ)
7 V1 [: K8 }$ ?, j, A" k - )2 _ e4 {- j$ h3 r! M3 C
. R% j) p8 ]0 S0 ?9 L- (defun c:SG (/ ent pt1 pt2 ang)% z0 H# S$ Y1 w5 m: r6 @4 e
- (setq cmd (getvar "cmdecho"))
- g3 Y! }3 r7 ^6 R% P - (setvar "cmdecho" 1)
8 e: M; x- o2 |- ~7 g - (prompt (strcat"\nSnap angle will be set to angle of line"))1 ]+ |4 [% z/ m3 a
- (setq ent (entget (car (entsel))))
% ]" K/ ] u* t3 ]& [2 D - (setq pt1 (cdr (assoc 10 ent)))
! l$ ?7 E! x( D: g7 i7 k% [( u - (setq pt2 (cdr (assoc 11 ent)))
5 x$ X& y8 N5 _/ a; H - (setq ang (angle pt1 pt2))' r/ Q3 R& \. P
- (setq ang (/ (* ang 180.0) pi))
/ k6 Y. u$ R5 ~0 H0 I - (setvar "cmdecho" 0)- ^* O7 \, {& J( v
- (command "setvar" "snapang" ang)8 m+ o( j0 H% h2 O
- (setvar "cmdecho" cmd)4 k6 o' [& x+ M: M6 U
- )$ b8 }' ]- e m, m% G* b& M, [% T
- ; ]/ e3 _) M; H; K# t! C' A% k
- (defun C:TG ()2 Z; f: g: I7 v, A( {
- (initget "Increase New")
9 P6 a# n4 K$ A1 K- ^) } - (setq ans (getkword "Increase/<New>: ")) F* q* M; Y" s+ K8 ?
- (modang)2 p' G4 Y' f3 K5 R- l8 u
- )
: V1 w% j2 j* f2 V4 E( g0 Q - (defun modang (/ ang ss ca e na ssl)
1 x3 j" `8 L8 q9 S$ `3 M4 S - (if (= ans "Increase")# y- m5 @" \% e1 T/ M1 u
- (princ "\nIncrease angle for text by: ")+ o4 M# r! V( y2 d6 i8 s
- (princ "\nNew angle for text: ")
/ X" K+ r" K4 e* c - )
& J0 q+ x) L W: L6 U - (setq ang (getreal))
2 g, e8 C. o5 c6 n/ r: M2 E9 n - (setq ang (* (/ ang 180) pi))
! }. }# u$ e) G6 X+ U P2 T- l# b - (setq ss (ssget))# q8 D; j/ {9 X" I7 a2 H
- (setq ca 0 ssl (sslength ss))( P, O: w8 C3 T2 b& C. `) _$ e; [
- (while (< ca ssl)
- a# I' R2 x$ ?9 ] - (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))/ \, ^; t1 t6 ]1 C9 X6 W& s2 ]
- (progn& F9 D. h% m; ^& l
- (if (= ans "Increase")8 C! H5 ~' R+ b2 a4 V) S( [
- (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))3 B- D v( a% }7 h
- (setq na (cons 50 ang))
$ z- {) h4 F" u; J - )/ [. S0 a0 y% Q; c6 z8 E- b
- (setq e (subst na (assoc 50 e) e))- I, o0 T% H) h8 f, C- n1 E2 F
- (entmod e)
8 ?# J) } B C* D1 ?7 N* o - (setq ca (1+ ca))5 T1 s- c1 y, j0 [* s
- )2 t0 L# M0 D4 ~7 |# J( o
- )- i% b7 _0 t4 p% z
- )& M. ~6 C# a$ o% D' ]
- (terpri)& r' V! k7 y, Q: g
- )
# \- h2 c* U' P( t: z3 C
& f& p1 {; e$ k- " K# F- o( u& v8 t
- (defun c:WL ()# c$ a% K1 L+ L0 t: C
- (setvar "cmdecho" 0)
+ z+ X9 Z. i% c2 n( [$ r - (setq a 1)
/ z( d" {" C$ B& C1 K2 k, t4 J - (prompt "\nSelect Polylines to change: ")
( ^! } y g1 U' D% ]8 ~4 J - (while (/= a nil)% T) r6 e/ h% d" K
- (progn! m5 \+ V9 f0 r% P! w
- (setq a (entsel))- S5 O j' x: m- |& V
- (if (/= a nil)& H/ o: m. z' b3 o; R' Q" M
- (progn
; Z# ^+ ?* Y5 }- D, k - (setq b (entget (car a)))
0 X. P& N; z. B4 ]: ] - (setq c (cdr (assoc 40 b)))
/ X4 A) ^; S3 s! ^ - (princ c)* W, e2 Z! V4 Q
- (command "pedit"a"w""lw""")6 |7 z1 ~9 }' V' ?# N: R+ B
- )))) E% b7 X$ W5 D
- (princ)
; P& u, p$ F* p - )6 E& c$ `, v% r7 b+ Y I
- ( Q* r9 E1 _7 {$ b
- ;;; ================================ TEXT FIT ============================8 P& U$ N8 F5 U& T7 y1 q' ]
- 5 ], A: Q- p$ D8 l0 R+ i/ R: k/ I
- (Defun c:FT ( )- n8 T& g; [0 O, @( }) Q
- (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )0 a4 A! ?( ^( B
- (Defun LL-xyz (arg) (CAR (TextBox arg)) )* _% n7 I& i- e5 V6 n
- (Defun UR-x (arg) (CAADR (TextBox arg)) )
3 r7 A3 X8 F9 n) a, c& [" J - (Defun LL-y (arg) (CADAR (TextBox arg)) )- z/ M$ D0 `- {% o! i6 M( d1 T
- (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )
9 Y% U0 P$ f2 _4 v7 J7 F6 K - (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) ). t$ U3 f3 N* |) O8 J0 j
- Textent (If ename (EntGet ename)) ) 4 k; x8 ^4 P" Z' T9 g' P
- (If (= (CDR (Assoc 0 textent)) "TEXT")
* m' o( i( W3 l, _/ [& x - (Progn (initget 0 "Start")+ ^ ?+ C1 y( I3 W5 O( _' E( }1 N# J
- (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )
7 \/ b" R1 g+ j1 c, w' a8 i - (setsnapang Textent) ;set snap along text entity9 w: Y; G, D4 t4 j5 r# C
- (setvar "ORTHOMODE" 1) ;drag along the text
9 ?/ b9 t, J0 ^$ B. J - (setq
& l" Y0 n2 ^! ?7 R v2 F- n1 O - TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") )& ], M" [) |* O! N
- (setvar "snapang" 0)
3 Z" ^, x, n, O) E& \: h7 B, |& A; I - (cond3 v' @: w7 G, B
- ((= (type TMP) 'STR) ;;new starting point to be selected& g" K9 a) }. e- w! Y
- (setq Start (getpoint "\nPick new starting point: "))+ M* r; B. g# `# T0 w
- (if Start (progn7 {1 C6 h2 M8 q4 j X! I7 u
- (command "_UCS" "_E" (cdr (assoc -1 textent)))' _; P1 [2 O- h' s0 i0 ]5 I$ x
- (setvar "ORTHOMODE" 1)
- G2 q1 K# _# v# B/ m& z1 R - (setq NewPt
5 N) ?4 a+ h4 f- R1 q! l4 y# A - (if Start
7 M, ^3 p7 I1 m) E1 v - (getpoint (trans Start 0 1) " ending point: ") nil ) )
9 |4 O5 z# n- @( Y7 z( r" ~( w - (if NewPt (setq NewPt (trans NewPt 1 0)))
4 U. ~1 v' c/ h4 `/ X$ |8 `, m - (setvar "ORTHOMODE" 0)
# n, t) L9 K! g' x* U( S - (command "_UCS" "_W") ) ) )
( D7 h2 K% B: C' A# l - ((not (null TMP)) ;;new ending point selected4 L A& l+ K4 q1 h2 u6 `
- (setq Start (cdr (assoc 10 Textent)) NewPt TMP) )( D; `/ y' S$ |" {
- (t (setq Start nil NewPt nil) ) )
' o/ {6 y7 z: o( ?2 h - (if (and Start NewPt) (progn u$ A( W6 \6 _& x1 o' @
- (setq Val (Assoc 41 Textent) ;;current width factor' C g2 ^, Z& ~! K3 G) H
- Val (if Val (cdr Val) 1.0) LTC_% ( M& M7 y3 X+ ~3 s* m
- (* (/ (Distance Start NewPt) NewEnd ) Val )
0 |5 x( s3 Q8 i; Q3 y. d - textent (Subst (cons 41 LTC_%)
+ x- @; E S1 i/ ^0 d0 B! A4 H - (assoc 41 textent) textent)2 g+ A7 k; e! h
- textent (subst (cons 10 Start) (assoc 10 textent) textent)
" a9 B& K5 M9 L% { - textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )( W o' E, \+ x2 w w$ ^2 K& n0 e
- (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))/ @+ {$ _/ w- w3 |0 k
- 9 ~2 c1 c$ c8 W
- ;=====================================================================! r. D, t0 A8 E& y0 W; ^
- ;=========================COPY + ROTATE ==============================- R4 Z% {0 c$ b( N$ V( y- \
- ;=====================================================================
" q* e- [- S- p, F9 [' M) ?4 I
# @0 e. f: e. x. [" n' x# X- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2)
' G5 ?5 Q2 W4 {7 B; ?2 x% P3 e8 g9 L9 t - (setq olderr *error*
' [1 T/ i& O$ V) d - *error* croerr)- y. {, L3 R' L: C/ M& D& c
- (setq cm (getvar "cmdecho"))4 c, Z- |5 A- `9 l+ s7 B* H) R
- (setvar "cmdecho" 0)
: u: b' H& o& {; L! } - (setq loop t)
& y" H$ a |6 ]- c4 u - (while (not (setq ss1 (ssget))))
D* z2 G5 c* ^6 } - (initget 1 "Multiple"); }" X2 E! o$ U) |7 {* @& m/ \
- (setq bp (getpoint "\nBase point or displacement>/Multiple: "))% J/ m% I. c3 Q: G* G( _0 b
- (if (= bp "Multiple")
! g+ f: v# S& f& e; n Y: f - (progn n. i/ ^/ i$ c3 u4 U) H
- (setq bp (getpoint "\nBase point: "))
, A. `. S8 V9 H& m2 O# Y7 ? - (setq mult t)
/ y" W$ f1 v9 s4 M2 V0 N7 @% c - )
" Y8 Y4 x7 `& ~! o% a+ ?7 B - )" X" c* m' `2 h+ g
- (while loop x, A* H# a+ h7 I% w
- (setq loop mult)' I) @. B' ^0 m& K+ n5 M
- (setq lent (lastent)); t+ _0 {7 B- n
- (command ".copy" ss1 "" bp bp), q. ^, V* R. Z Z
- (setq ss2 (lss lent))7 L# z6 _5 A, O8 }" X3 A8 i
- (setq lp1 (getvar "lastpoint"))
% W0 d/ ~( g" ~* \& M - (prompt "\nSecond point of displacement: ")
4 A+ I9 i0 u8 {% |9 h - (command ".move" ss2 "" bp pause)) |' i" D# x6 z: i9 G
- (setq lp2 (getvar "lastpoint"))6 X- A$ W8 |- k" R/ b
- (redss ss1)
2 e" j; C9 P9 ~) e0 A0 Q+ R" k) X - (if (and (not mult)- E0 Z3 v% C2 n- W6 g- V# T
- (= (distance lp1 lp2) 0)9 ^) j8 n7 S4 C( V+ X& E" ~* q
- )5 ]8 {8 I" Q$ ?
- (setq lp2 (getpoint "\nRotation Point: "))
, W5 K2 U/ `! S, A1 A! ? - )
1 D+ I8 T) M- R0 M/ { - (if mult
2 K+ N: B, ?) ^0 Q7 o- e3 C2 m - (prompt "\nRotation angle ")
7 y. w( N z* g5 j) |7 v - (prompt "\nReference/<Rotation angle>: ")
+ @+ X6 F5 t2 Q& J - )
) I1 f8 n5 [. C) s: F2 z - (command ".rotate" ss2 "" lp2 pause)
3 M( q4 d1 `, O7 v( l - )
8 J+ d( s( Q9 t; G( c - (setvar "CMDECHO" cm)
- B# ^# X6 t2 [/ |' r6 o% [( U - (setq *error* olderr) t+ m6 t$ ]2 f1 e6 C- \3 t4 o* m! r$ f
- (princ)
% N8 R1 P8 S* ], g# {. j - )% _9 l6 f7 q& R6 }% n l+ Y
- (princ)
- \# } ~# S4 |$ b" s- S - (defun croerr (s) + _0 U N9 D2 S4 G
- (if (/= s "Function cancelled")
2 g0 T/ r* F1 n- S* A: U - (princ (strcat "\nError: " s))* I6 g8 P* C r# h% \& @% ?
- )
M; l( ?0 a% Z- q7 @! C7 _ - (setq S nil)7 F2 H* U1 J# d5 z! a6 D
- (setvar "CMDECHO" cm)# M7 @6 \# r' p, g. c2 w- ]# o
- (setq *error* olderr)& l; w" z2 ^7 o0 h0 B" N
- (princ)) p$ E0 p3 f4 y6 c2 @# [& D
- ). S1 o0 S( ~5 I+ e, s
- (defun lastent (/ a b)1 d5 E# m5 `0 F/ ?! F/ k- u% l! l
- (if (setq a (entlast))+ h' C9 T: S9 q
- (while (setq b (entnext a))
" N9 l3 X7 @3 K9 \$ Z, X - (setq a b)
4 z4 L0 n# b2 g5 m- V4 m! U; m - )+ p& b. ~( D. A' K, l7 D
- )
9 _, I& Z* V8 @: P4 R: s& u. w - a; R2 Y2 T6 \3 A* [! o; z
- )
" T. P- |+ y# U0 U& p) o - (defun redss (ss / en i)
3 |5 V5 `# `0 d8 y - (setq i 0)
% c$ H, D/ k% u; P1 P: g - (while (setq en (ssname ss i))3 A% i/ `, v$ r, h
- (redraw en 1): ~- X( r# |' W5 u f- s6 Y7 Q
- (setq i (1+ i))' t* E4 T8 n% |4 e) S
- )
( U; e& q6 ?4 F" t2 a% T, ~ - )
! [/ |% p, ]1 q# t/ |& x7 v" Q7 c - (defun lss (en / sels ed)
0 T K( b! u" W3 A* @9 ^0 d - (setq sels (ssadd))
: i% P$ V2 D; a1 { - (while (/= en nil)
! r& X- O) Z H) J! |$ V - (if (setq en (entnext en)) (setq ed (entget en)))
1 N* `" P! o' U5 d" p0 z0 S - (if (/= en nil) (setq sels (ssadd en sels)))
" I9 G- }3 l* ^/ i; k2 A - (if (or (= (cdr (assoc 0 ed)) "Polyline"): Y0 ]# O x; |
- (= (cdr (assoc 0 ed)) "Insert")5 W* d/ U$ o9 K4 R( Q* Z# }
- ); d8 a9 n% f- O3 v5 b: `
- (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend")), g# h* p& {4 O" A$ Z
- )
5 ]- p0 X' \: A" k4 I& d4 O0 a - ) H" h+ Q+ D9 F6 K; W4 a
- sels3 f2 ~7 R" l" k
- ). [( |* ?' |3 H; c" e% r
- 0 F% D9 n3 H5 s. C7 N" m/ [3 C
- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================! k: K* Q0 D6 ]5 s
" D; j2 W% [% N& [+ O) E) c7 X- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))
/ u; ^) {! @! Y3 @; F0 { - (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" "")); {- {: L1 b8 G6 g
- (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))
+ n2 ]/ R8 Y0 I! X, k - (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" "")): l- |# e1 C8 W4 V- M3 { A
- (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))
9 G+ Z/ v' p+ B% n8 K2 [ - (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" "")): V/ q/ \; L8 F, s
- (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))5 ^" T, C4 w# i5 j0 q
- (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))
" t6 o: q3 @: b" p1 V5 i) R - (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" ""))
+ B$ f5 Q7 U3 ]% p - (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))
6 D, Y2 Y1 [+ X - (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))+ \5 z- {5 O4 O/ c
- (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))
! ^! @+ A+ t" z - (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))+ h6 B; k3 Q# q" \
- (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))5 I! l- O# g* P+ s$ ]' K& T
- (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))
& M3 x0 b* M4 L0 q6 R0 ] - (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" ""))
. k C3 ~. ^ C! ?1 Z; T' p - (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" ""))
& {- c/ o O) m; D: ` - (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))- w' D4 Z, Y+ q9 g, g" d U0 {
- (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))+ H# U1 Q+ z& b/ R; V8 P8 t
- - p: o. J. ]" e. M( A
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============$ y! n' k% q0 a; s: h2 t, Z2 I, f! @: {
- 8 T6 H# c' R: t
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============8 z; O+ f) v. f
- + I% y5 [+ h/ {% _5 ]
- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")
% e e: C' C7 i% S) Y - (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")
$ G: ?! J# L p. O
( \3 m9 e# B) E: I: `- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===
2 [' w- ]# [$ Y+ P; d
! G6 f6 ~: F' h) }- ;(DEFUN C:netxuatanh ()4 G! R* T& q& k& j7 @, u
- (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
; U) g0 P, D) L0 P - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""0 }, O- e% r" y8 _- c/ ?
- "M" "MANH" "C" "9" "" "Lw" "0.5" ""
4 c. [6 ~3 ]2 X6 ~* g- E - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
# F, L2 Y5 }/ O' P& g - "M" "DIM" "C" "1" "" "Lw" "0.6" ""
/ {% X2 a. V8 m; { - "M" "THAY" "C" "7" "" "Lw" "0.7" ""
. J j Z4 x4 i' W/ G6 t - "M" "NOITHAT" "C" "3" "" "Lw" "0.5" ""
' ]8 p8 @5 A. t/ V& m) E - "M" "HATCH" "C" "5" "" "Lw" "0.35" ""' A3 g& C5 _9 T" Q U8 a
- "M" "COT" "C" "2" "" "Lw" "2" ""
. c; w9 T5 Q2 }6 g4 t; y - "M" "Defpoints" "C" "7" ""
: ]& \! y+ B; V$ Q) J) d5 J6 l - "M" "0" "C" "3" "" "Lw" "0.5" ""
* S7 s8 @ x1 p+ b5 D* O, T - ; "M" "1" "C" "1" "" "Lw" "0.5" ""+ U& y' v6 U0 i9 w9 M
- ; "M" "2" "C" "31" "" "Lw" "0.5" ""
; b. F/ \4 X- x. x3 G - ; "M" "3" "C" "8" "" "Lw" "0.35" ""
8 H+ V- A2 [8 {4 k. ]5 F - ; "M" "4" "C" "4" "" "Lw" "0.8" ""( Z, W& C% d$ O4 c
- ; "M" "6" "C" "6" "" "Lw" "0.35" ""/ ?: ^2 q( {3 v! d" {, ~9 w* D- c
- ; "M" "7" "C" "7" "" "Lw" "0.4" ""
% l" {- m, ?8 k7 T - ; "M" "8" "C" "8" "" "Lw" "0.35" ""
* a9 ]+ V+ s8 f/ @6 R - "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" ""' \' p+ g# Z N4 h
- "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""
# Q+ Y* U3 {" y3 s9 h8 i. O0 N( H( ?2 u - "M" "KE" "C" "8" "" "Lw" "0.3" ""! ~$ P& o0 ]4 L- s. Q% K
- "M" "KT" "C" "9" "" "Lw" "0.35" ""$ {5 T4 h D1 O5 ^4 v
- "M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""- w4 s& r( X1 i& j! J6 O2 k
- "M" "NETMANH" "C" "43" "" "Lw" "0.5" ""! z: M# n' Y4 I. n: @4 J! q( M. y
- "M" "TBD" "C" "2" "" "Lw" "0.8" ""$ K; x" T" j6 m
- "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" ""
5 O" S1 A# S v/ U" F% z/ {( H( f - "M" "TEXTVN" "C" "132" "" "Lw" "0.4" ""
5 z4 d* M& y7 U/ E: B/ L - "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""! E) L1 ?- C& a# W
- "M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""
' o# p! p# o/ t0 t! K' m - "M" "CUA" "C" "6" "" "Lw" "0.5" ""
* _1 C7 J! w( L. @ - "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""
. ~) J- b X) y" W; d' ~
' S8 z5 E9 J2 X! Q- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===
t9 ~! f8 p. _# u - $ Z' C- i+ @* q+ L6 w0 \" ]
- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" ""
$ b7 S* w9 I* p/ ~/ \" c6 j! U6 z4 K - "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""
0 L# |0 |4 m# X - "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""
( d0 Y5 Z7 j5 j, R9 v - ; "M" "250" "C" "250" "" "Lw" "0.35" ""8 y$ @( T( w0 k) C% t
- "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""( K) N$ G6 G2 c* |+ L
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" )
7 n* E% N2 |4 M2 d- O1 i
# ~ i5 \4 B! w- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======
0 [; a3 Y" s$ p7 J - ;===================================30|04|2024==============================
, W- j5 d" H9 Q, i% B. c; n! t
8 A- T `) ^0 H- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )
# H$ _4 d0 {4 i5 U: n - (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )
7 p7 X" L& S% J; L - (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" )
- J1 [; l3 ~- X$ x4 w: N M - (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" )
% M* I7 ^" k, z* n' S - (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" )
) ^: z% H% H8 L7 j - (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" )
% M1 M0 s/ C5 k" O - (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" )
+ v: X) X }0 D w L7 f7 c - (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" )
* A; |6 _: j$ D v u - (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" )$ C/ O' ?4 H" F7 M
- (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ)
/ b3 G1 }! x2 X; q) }9 X - 9 v, y* ?+ Z% U4 u9 ]
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
- G% P- y/ d E5 H7 V! N: g$ l% g - ;===================================17|10|2024===================================
9 |$ ^- z2 t3 @5 k+ Y& Y2 P - . R) y$ _8 d* ?, a) w, U: X9 M
- (Command "DIMTXSTY" "ROMANT-DIM" )! a% u: p5 j! ]
- (Command "DIMBLK" "" "Closed" )4 w2 |' q, N5 ~% P# C% R
/ h1 V) ^+ e7 |& {* I# ]8 G- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
1 F- j# T& |2 P2 B/ L- A+ C1 | - ;===================================17|10|2024===================================! p/ c# c- X* w2 h. \4 I
# V7 a9 S, P9 g# U4 G9 A- ;(Command "-units" "2" "8" "1" "8" "" "N"). \" M# R8 I6 @; e C( `
- (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ)
+ c1 h+ \' z0 R8 d% A& p' R- k$ [- t
- [5 V( p; ?/ r: }0 [! d- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=2 h: ~) o$ v6 \$ A
- ;===================================17|10|2024===================================. I# Z& k* n; H) m7 N7 \2 i
+ H' N9 b' P+ t* d; \1 g% K" S' Q2 f- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====
2 U! Q8 s+ h7 g8 r" b
" y R; o l# B9 F& d W- ;======================== DAT NET IN & TI LE BAN VE =============================, i2 W8 [1 |# E( @# Z! {
( ?+ H a" m* Q1 a% S- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================1 N9 I( ]7 d) d: N6 ]+ a4 U5 P
- ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================
! ], E2 J" h1 t. y - ;=============================11|07|2025==============================
: w9 y2 ^. i& V% X3 w1 y( l - ;Ti Le Ban Ve - 1 : 100
" r$ N8 T$ G9 P, N - (Defun c:kta4 ()
) |8 c! I- x! g% z3 B - (setq mv_sc 100);Ti le ban ve
3 Y( _( O: x7 \9 R - (setq x4 297)6 }: h/ t0 X3 y* e4 b
- (setq y4 210)
- y4 U+ B) m, v6 y) ? - (setq x4 (* mv_sc x4)
2 ?% [* g ~; e6 j* j - y4 (* mv_sc y4) )! G7 j8 d$ t- t* i* O# @) q- x0 \# E' M
- (command
5 x& ]8 R3 [& j- I - "LIMITS" "0,0" (list x4 y4)
# r1 x1 x( V7 B6 d* C - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C" y2 {; K. F* [2 r4 E5 h
- ;Khung CHU NHAT Chinh
5 [9 r) e' u# P - "RECTANG" "500,500" "@28700,20000"4 C! v& I% [, x! W B, s' k2 z
- "RECTANG" "700,700" "@28300,19600"
C, Q; ~5 K" f: x- E+ Q3 }2 f - ;Khung Ten Chung
. i5 y- F: `- ^" I( Z - "RECTANG" "700,700" "@8000,1250"* f+ x3 L4 R; G9 x% w9 i
- "RECTANG" "700,700" "@17300,2500"
) k1 ~4 J/ f& D1 v4 _ - ;Ten Ban Ve! {( k6 O2 E7 k( i5 X( {5 G C4 t
- "RECTANG" "18000,700" "@11000,1250"
5 v5 _/ D4 R0 c6 w+ j - "RECTANG" "18000,700" "@11000,2500"- J* w) X) {+ w% Y5 |/ [7 X
- ;Khung Ti Le + Ngay Thang Nam# y- g7 Z( ^/ J1 z$ N# ?5 U; w8 y
- "RECTANG" "22500,700" "@2000,2500"& t( q4 S7 b' {: L
- ;Khung CHU TRI# ]1 r9 L9 J0 `& J6 p/ F8 V7 @
- "RECTANG" "8700,700" "@3800,2500"4 C: b( h/ ]/ w' ?+ e
- "ZOOM" "_a" ))
- v4 b' Q5 c/ `; ]5 L# M% h - ;=====================================================================
( f9 _) M+ l) \9 g% ?4 K* R h - ;Ti Le Ban Ve - 1 : 100
1 l; I3 F" q- o- N: ~# G# R$ G - (Defun c:kt4a ()
3 @4 s1 F' v2 T+ L - (setq mv_sc 100);Ti le ban ve: u, t+ |- ]& m* c
- (setq x4 297)
4 ~, A G+ }9 C5 X" C8 G9 K - (setq y4 210)
# N9 K: a/ Q2 V0 [3 h$ k6 n - (setq x4 (* mv_sc x4)
; n! s# X+ }! h - y4 (* mv_sc y4) )
- ?, Z5 ^7 ^* M. W - (command
6 Y; G, @0 e# S! A3 m! E6 r+ Z - "LIMITS" "0,0" (list x4 y4)/ a/ k3 D5 h: k+ o" x; n
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
: b2 {7 R4 u: y - ;Khung CHU NHAT Chinh 4 Q# U/ ]) ?% `2 O, S1 m
- "RECTANG" "2000,500" "@27200,20000"& z; @& o- O2 F8 \& M, z
- "RECTANG" "2200,700" "@26800,19600"
: r) }& [+ e5 R4 G. }9 ] - ;Khung Ten Chung# r; `* h9 S9 ^, L, H" t+ }
- "RECTANG" "2200,700" "@6500,1250"
' J# j$ G) C9 k8 T8 D - "RECTANG" "2200,700" "@15800,2500"
; h6 }! c9 F, M$ x - ;Ten Ban Ve
5 c+ D- S* i# p1 @: X - "RECTANG" "18000,700" "@11000,1250"
% S. x8 J5 k, F/ ?! ~" n - "RECTANG" "18000,700" "@11000,2500"
S1 H; b/ b5 d- n7 H - ;Khung Ti Le + Ngay Thang Nam8 h8 x8 B" B, d; p
- "RECTANG" "22500,700" "@2000,2500"
) j- U9 B% i2 r' N; @$ e9 t4 Y - ;Khung CHU TRI
- M. m% U! _* ]% ` - "RECTANG" "8700,700" "@3800,2500"
5 S! u& @/ ]* |3 m6 R - "ZOOM" "_a" ))0 N2 p- ]; x4 ?- g9 x3 ?
! u* z& a1 N4 ^6 n1 B( [4 K9 T9 v- ;;; ============================GHI CHU Khung Ten========================1 Y) \& Q0 ?8 y. ~+ H; j& _ V1 M
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========4 |" E/ B# v9 q0 ^3 q
- ;;; =======================Thuong Dung Font Romant.vnh===================
]0 I' b0 L: @5 s4 @# y - , n* w+ U+ D0 V& f
- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
' C) l2 F2 z9 u: C8 G - (setq oer *error* *error* err2)2 m! m: _9 L# ^: N: @ W6 [
- (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")
! Y8 b. d& v7 g { S - (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). ")). J" [: o& W3 H
- (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))
: z: L3 N8 |! q9 z6 T - (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))- E2 [$ E9 ~+ z, q# X0 B, g# C( I
- (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))
/ E8 J% s) U; d7 ?4 f `* z - (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))
" u$ E+ Y5 T" ?6 X. x0 S, N2 j - (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))
1 V4 D( u: ^: ?: t - (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))
# u& I; u! t9 j2 o' t) I! h. |" z7 D* e - (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :"))7 ]+ j" X, l4 P! ~- U3 D# d
- (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))+ F& B- K2 _3 B+ f5 c+ d* t% y& T
- (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :")) O7 j( k9 D1 h" {' ]
- (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :")). e3 e4 N& K5 x- o' p
- (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))- d: T/ A* Q, [! i8 b% f
- (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))
% }& ?4 F/ q+ w( i# R: c - (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))
$ o8 |; @% n" X# U0 u9 V# j - (setq pta (getpoint
" d9 W- A' @9 g8 D* r - "\nPick first corner. : "))4 @% i8 w- C# x: M( ^/ n
- (setq ptb (getcorner pta8 m! F8 P! G+ u- Q& h8 r
- "\nPick second corner. : "))
1 F0 G( f+ W0 Z& z( R; n - (setq ptc (list (car ptb)(cadr pta)))
2 _8 e) l# m/ b( W' k/ ~# _/ V' B. h) [ - (setq ptd (list (car pta)(cadr ptb)))
( j N! j3 m* P2 m - (setq ang (angle pta ptb))
9 W9 S/ t0 r* q9 S - (setq d1 (/(distance pta ptb) 2))/ p3 Q" F: v6 r3 V, i
- (setq cp (polar pta (- ang (dtr 0)) d1))3 t/ L$ Y @/ a
- (setq X (distance pta ptc))
# |, v" z* j9 ^4 K% j - (setq Y (distance pta ptd))
2 t$ k r, E( k9 c+ b - (setq X1 (rtos x 2 1))& K6 N4 l4 F! \) J; J L
- (setq Y1 (rtos y 2 1)); u* L5 \5 Q! j) A; g
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))
& V1 e. R+ `% T% g& y - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
1 D" }% q3 X+ W9 Z - (defun dtr (angg)
! o4 R3 X* L4 d( U6 m9 N - (* pi (/ angg 180.0)))2 Y7 B3 }+ Y x0 h
( {0 f1 U' f) v8 d) D9 C+ s- ;=====================================================================2 X9 F+ \% o X* z( n: c# ?7 F) ]
- ;==========================DAT KHO GIAY BAN VE - KIEU 1========================9 K5 c( \$ T8 e9 ]- u
- ;=====================================================================
% ]- }% a& p( J/ T1 H - 0 Q$ d( x3 |/ F. H: S, i
- (Defun c:a6 ()
$ `6 I' V& b/ c2 K3 V9 P - (setq mv_sc 100);Ti le ban ve4 r. k: a! X; s( b! N7 C9 v7 |
- (setq x4 74.25)
6 |7 {7 a( M0 O - (setq y4 52.5)6 t2 X* P/ \/ N3 r, Z! `
- (setq x4 (* mv_sc x4) 6 N1 l! ~8 b3 g
- y4 (* mv_sc y4) )8 ]% K+ Q. [+ C7 k
- (command - Y% `! w/ D" V* u
- "LIMITS" "0,0" (list x4 y4)
1 d2 u+ x0 |. u7 O - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
2 |2 A# G0 }: {0 H* F% V. z - "RECTANG" "125,125" "@7175,5000"; d" H7 O0 r; e8 S. N) }0 d6 P, O. h
- "RECTANG" "175,175" "@7075,4900"
$ x' C: F3 Z/ d) C6 T - "ZOOM" "_a" ))
9 X, i% v) |4 @& y5 J - ;=====================================================================
9 T) {' Y1 }% [ - (Defun c:a5 ()) x6 M1 c( U2 c+ S/ D2 s
- (setq mv_sc 100);Ti le ban ve
1 f9 X w0 a5 w7 v - (setq x4 147.5)
5 I: N2 {% r, J c9 f - (setq y4 104)
' Q/ f6 `7 R' Q4 X - (setq x4 (* mv_sc x4)
2 E/ E+ V2 l9 w8 v1 F+ A - y4 (* mv_sc y4) )
) a. @1 v. s& k& \% T/ |; e) p - (command
5 Y& Y5 g* `7 p; L! K& Y& i - "LIMITS" "0,0" (list x4 y4)
! f- D: L5 ~' k v' n - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
% q8 s% \( D3 j3 x, x* w! { - "RECTANG" "250,250" "@14350,10000"% `$ B# H$ o' t( X. G1 v; J$ K2 i
- "RECTANG" "350,350" "@14150,9800"
/ ?6 Z) H+ |- q" [5 Z6 \, s7 P0 s - "ZOOM" "_a" ))
( o8 y+ b2 z0 b# Q' J - ;=====================================================================
S! t2 W) Y9 j! z* x6 c Z - (Defun c:a4 ()
5 F- n& g: M1 j/ E/ J - (setq mv_sc 100);Ti le ban ve, v1 W( J! U' c
- (setq x4 297)8 U6 U9 U. P) I' J! B' l
- (setq y4 210)
3 l& l; I7 I5 ]6 Z! s' |& c0 o' G - (setq x4 (* mv_sc x4)
! {( }% E$ r/ v- V - y4 (* mv_sc y4) )/ i( H/ V: [ s8 P6 s' R
- (command
5 ]" y: w6 l3 v' L- C( W, j - "LIMITS" "0,0" (list x4 y4)
. I6 @ {' s3 n' e8 X0 o5 R5 v" }2 H - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
* L, x! D; o7 K/ F8 ]3 w - "RECTANG" "500,500" "@28700,20000"" K7 v* c* ?: t( }" `
- "RECTANG" "700,700" "@28300,19600", X- e! ?7 b7 N- K3 R
- "ZOOM" "_a" ))
( H" A7 p. T/ a" m+ } - ;=====================================================================
7 M- P; `1 G% r2 l - (Defun c:a3 ()# S7 p3 C. {$ w1 c+ }0 M6 @" W0 j
- (setq mv_sc 100)! Y! }4 V( n! }) F5 Y
- (setq x3 420)8 U% u+ P- C+ w# n
- (setq y3 297); G! r) N V2 ~# \' `2 ^5 i1 N
- (setq x3 (* mv_sc x3) 2 O( m) ^9 [! }& E0 r
- y3 (* mv_sc y3) )( @" a8 \3 z4 a) l- @: F
- (command
" w& p: a, i# e6 O3 _7 |0 B7 n( h - "LIMITS" "0,0" (list x3 y3)3 u/ a; v3 l+ P! B8 ~9 m4 i
- "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"2 g) {. O" G% e: q7 t/ }# \6 z
- "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"0 Q1 D7 A& G0 |2 s" J3 G+ K: H" ?
- "RECTANG" "990,990" "@40024.28571429,27720"* C& L) b: Q x( a
- "ZOOM" "_a" ))* W' k6 j6 n2 y7 o4 Y% W- V
- ;=====================================================================6 X* L1 Y# r9 C0 a4 i& x
- (Defun c:a2 ()4 C5 L- \5 z- p) m; g$ b( P
- (setq mv_sc 100)$ ?' u8 L4 |& O: ]! {8 x- p
- (setq x2 594)% `, j" _9 F1 o4 J
- (setq y2 420)
/ _9 j8 X7 b5 k- e - (setq x2 (* mv_sc x2)
" C: @# M- S4 a2 V - y2 (* mv_sc y2) )
* _ g: y5 b3 y( I6 g - (command
! r/ P$ R/ m8 E7 T+ U* |& e2 d - "LIMITS" "0,0" (list x2 y2)
; P& r$ d$ C! f - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
, L1 A2 J! v) i# ?7 G( G - "RECTANG" "1000,1000" "@57400,40000"$ e- z# U4 M5 ^9 x. l2 j
- "RECTANG" "1400,1400" "@56600,39200": r' s+ O9 R1 o2 ^% H4 L+ b0 x6 A
- "ZOOM" "_a" ))
. a X9 Z9 `$ ]! q, l0 w! x - ;=====================================================================
' P: Y e; m+ B+ r( y+ _& @3 K - (Defun c:a1 ()6 T! n' T9 ^ I$ A' }( J
- (setq mv_sc 100)
6 `) j0 ^6 c' A2 {& z - (setq x1 840)
2 M" L3 H$ Z. R7 a" D - (setq y1 594)1 O3 w5 G( R" \; L
- (setq x1 (* mv_sc x1) 1 I0 h! k8 G1 F F/ q
- y1 (* mv_sc y1) )# d+ s6 F9 E+ w& F
- (command
" v* M0 ^, d7 f9 w+ | - "LIMITS" "0,0" (list x1 y1)
4 T4 A# ]" `/ \8 U! i% E' m) q - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"; h4 a# S& W$ \/ s
- "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"- v4 R3 o- L4 n& T$ j3 v
- "RECTANG" "1980,1980" "@80048.57142857,55440"
$ P! l( l8 b5 w6 m - "ZOOM" "_a" ))7 Q& C) g$ Z$ r
- ;=====================================================================
% a* R9 O5 x* g/ y5 R1 L; @9 [ - (Defun c:a0 ()
8 u% K+ N2 W9 E4 n& } |% I - (setq mv_sc 100)
" A2 q3 F! ~( ]. E: T - (setq x0 1188). i8 F I8 ~2 \; i2 K$ C# l9 l) d
- (setq y0 840) Q7 J0 d4 C; e8 Z9 a4 i
- (setq x0 (* mv_sc x0)
( b- ^$ n/ s: b; q) v - y0 (* mv_sc y0) )# `) w; d) I! P6 F! J/ h" P
- (command - W* ^4 `" W7 |2 S" z
- "LIMITS" "0,0" (list x0 y0)
# b/ u" A; z. x9 I/ U - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"8 f s, N3 w( d. o# Z | N) |2 V% s
- "RECTANG" "2000,2000" "@114800,80000"
# J0 _) \& Q0 P$ h' [% w8 ? - "RECTANG" "2800,2800" "@113200,78400"" e& q7 E; Q6 C' S! N0 P8 f
- "ZOOM" "_a" ))
$ Q' x! Z! p/ E- a9 k - ( ^1 `7 b/ z2 [% r) j* X
- ;=====================================================================, g3 g2 b( _# y) u L( v
- ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================
* S8 o/ X/ @: O - ;=====================================================================
, C3 r0 [9 }- O0 W8 i - ; x9 f9 {" L' W
- (Defun c:6a ()
" C; H% {6 ]( `8 a( v+ H - (setq mv_sc 100);Ti le ban ve
5 }7 L: z4 c! ^9 f: i( M) `0 N1 N$ i - (setq x4 74.25)' h' ?; M( f8 H2 ~" |# R9 ^% c
- (setq y4 52.5)
- _( k+ M" w) j- ~9 S - (setq x4 (* mv_sc x4)
+ u' q( U0 P* }3 y" _% i - y4 (* mv_sc y4) )
" _% z0 p# `$ N C2 a: m# K! a9 _ - (command : C# G8 v& ?% [1 Y
- "LIMITS" "0,0" (list x4 y4)
t# I0 X& a7 p( p7 M1 p9 b - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"* B) P& i4 t* w
- "RECTANG" "505,125" "@6800,5000"- g- \+ X* F+ t1 Q( s! v1 g
- "RECTANG" "555,175" "@6700,4900"
. s# `3 K) i$ p - "ZOOM" "_a" ))5 a" ?, I( i3 c. t! u
- ;=====================================================================
9 X8 H7 c0 x1 Y/ J; [ f - (Defun c:5a ()! m0 X3 H1 D5 E. W& `+ d7 p( q- P
- (setq mv_sc 100);Ti le ban ve6 e3 P) _% g# z3 ]3 u
- (setq x4 148.5)& g4 D* K! n/ |) a8 z( |
- (setq y4 105)* p' u7 C' C+ I; t" x
- (setq x4 (* mv_sc x4)
$ \2 u/ X$ w+ x9 g+ m - y4 (* mv_sc y4) )6 \' j* r' B" @+ l3 j* a; G. o
- (command ) T5 y" a: S7 j# M3 e( k# N
- "LIMITS" "0,0" (list x4 y4)9 @& m" \' s! o+ K% z
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
$ k0 a* \/ y. \3 ~# j - "RECTANG" "1000,250" "@13600,10000"1 m4 X8 i7 ]4 n! }# R
- "RECTANG" "1100,350" "@13400,9800". H; S* c* ?* t) g* M
- "ZOOM" "_a" ))2 h* k i1 F9 _
- ;=====================================================================
4 l& n9 S0 u# u# [ - (Defun c:4a ()( k. k( M% ^& O. V) Y# l
- (setq mv_sc 100);Ti le ban ve
, M! f1 b. [& O* i w) Z( E3 V - (setq x4 297)
: \- I0 {" O" a5 c9 s - (setq y4 210)
& E& b6 A/ C7 S# k. c - (setq x4 (* mv_sc x4)
0 w) }7 b5 ?* R/ R0 G" Y6 z - y4 (* mv_sc y4) )
8 x( s( }/ G2 t1 F - (command - ^+ ]1 w7 b$ u' y% v
- "LIMITS" "0,0" (list x4 y4)) A1 _. B0 h4 S1 `+ e
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
" L, N. n$ e$ [$ q, U; `1 ^( s - "RECTANG" "2000,500" "@27200,20000"# Z) r* j# x- ~7 g( m
- "RECTANG" "2200,700" "@26800,19600"- ^+ l+ r( j8 L' G3 M3 A
- "ZOOM" "_a" ))
- c E# O! P, S" \ - ;=====================================================================
* y; g" L z& {) a; b - (Defun c:3a ()
* |9 c. P7 w8 x$ W/ Z& l5 K - (setq mv_sc 100)
7 r- A$ `9 r# w3 T( h) l L - (setq x3 420.0428571429)
- A0 u }9 J5 O7 N" {; [ - (setq y3 297)
& d' i( m* d' G8 i - (setq x3 (* mv_sc x3)
5 [7 l8 m( V) x. z& K# _9 @' s - y3 (* mv_sc y3) )
1 }: ?8 d8 m" H% m0 }$ l* w - (command . g& c) o6 x& W# L+ \
- "LIMITS" "0,0" (list x3 y3)' t% c1 T: Y h4 j
- "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"4 ^) A) c! o. r) I+ {
- "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"4 x! c5 t/ N. e; u
- "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"
1 I/ f. t, o& b( Y - "ZOOM" "_a" ))
6 e. B7 h m- p( }2 ]" p - ;=====================================================================3 o& p4 F0 v' h! I$ D, C2 j2 G
- (Defun c:2a ()
5 _# ^5 t: s; L, C2 J& t; t9 z - (setq mv_sc 100)& Q0 a* {: ~1 [/ h! H
- (setq x2 594)
+ ~9 Y* {. T0 f0 P( X - (setq y2 420)
3 V$ b2 K. e- E% B' r- ` - (setq x2 (* mv_sc x2) 3 O* s- H/ C) A7 n
- y2 (* mv_sc y2) )
, Z# C/ x3 `' i; V - (command ) _0 c" r3 v# L8 R) s
- "LIMITS" "0,0" (list x2 y2)6 l/ a9 i7 \+ h0 q, V. S
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"& l, L# c, t; H9 [' K9 H9 l+ O
- "RECTANG" "4000,1000" "@54400,40000"0 X; o1 X: Y( n$ q* P( C7 i
- "RECTANG" "4400,1400" "@53600,39200"
( ]5 l- L! R1 t% _# K. c" R/ n" h. N1 o - "ZOOM" "_a" ))0 S. q+ ?3 E( g6 t6 K9 B& @
- ;=====================================================================4 H1 x. L9 I: B% R3 \: F! {
- (Defun c:1a ()& {' w6 x: {$ e( r1 p2 q
- (setq mv_sc 100)( N" r! F3 _# v3 ^! f
- (setq x1 840.0857142857)* F# \5 B& }8 v. P6 i$ z' `
- (setq y1 594)
$ d, a) P- |) ^3 }0 W - (setq x1 (* mv_sc x1)
8 h' N& [- b' ]4 k - y1 (* mv_sc y1) )2 F6 T) K; a& ~- q- A2 ], d
- (command
! o' P% H# v) I* Q) G - "LIMITS" "0,0" (list x1 y1)
* n' @5 ~6 Y0 y3 k - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
6 T- h8 Q/ t; y - "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"
' X: v5 D- m8 | E - "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"( }* A- m2 |0 V
- "ZOOM" "_a" ))
$ D/ I5 o; H! n3 F4 r1 ?/ y3 } - ;=====================================================================
' F& Z' Y p. c9 M, s# B - (Defun c:0a ()& f1 F1 V$ m% J& f, B4 U
- (setq mv_sc 100)8 d( @% K4 b/ m& P! a' Z
- (setq x0 1188)
! a6 I& g7 D7 t' x+ ^+ }& A - (setq y0 840)
, v1 J* @1 Z& o - (setq x0 (* mv_sc x0) 7 [! o5 U+ J) }* Y8 `4 z" K8 s" D
- y0 (* mv_sc y0) )0 K6 c4 t' c& [- g
- (command + s& p; }2 R. O/ i- n4 Q2 y
- "LIMITS" "0,0" (list x0 y0)
$ X) z+ P# I9 L( O - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C": v9 K, k j7 x5 w% u3 U
- "RECTANG" "8000,2000" "@108800,80000"
9 y. y8 }" q+ v8 Z. | - "RECTANG" "8800,2800" "@107200,78400"" k V# w$ ^5 R' p- s
- "ZOOM" "_a" ))( \8 I! E6 F3 P. I! ~
- # r5 l. `# O5 Y; d! h
- ;=====================================================================
8 H- o5 \( I. m: Q7 V - ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================
5 v5 o, q( T2 J& ^ - ;===================================================================== r7 P/ x' R. @' t1 `& Q8 Y4 C! I( M
- (defun c:khogiay (/ oldlst a b c d e f g h kho TL)
b1 b7 o$ Z: L1 i0 @ - (command "undo" "be"), @% A' P }+ c4 ]
- (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))" ?7 ?6 |; r( F* W5 T" {
- (setvar "CMDECHO" 0)
- \! e' R- J4 _ - (setq a (getpoint "\n chon diem chen :"))
3 W: W, }2 m1 l7 z' @ - (if (not TL) (setq TL 1.00))
- J+ ]7 u3 z: b - (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))
' l1 q8 p* A% A - (if TL1 (setq TL TL1))
1 _: X# y3 d S5 c% P - (setvar "osmode" 0): w) z7 e, L3 Y: O$ ?
- (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" ""))
8 j3 b- Q4 t! U - (initget "0 1 2 3 4")
) z8 `( F! w( U" E1 \6 D - (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))
7 V* x1 v. C- N# ?6 \. ~ - (if (= kho "0")
' L" N3 M1 h5 [" p - (progn$ e1 B8 _0 ?& M
- (setq b (polar a 0 (* TL 1189)))0 s7 a" X4 N: A9 C1 Z' T
- (setq c (polar b (/ pi 2) (* TL 841)))# N6 G) m1 f1 z; U: k }
- (setq d (polar a (/ pi 2) (* TL 841)))
* J$ u3 @% c2 X - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))4 m0 I% `& y" r8 n: D& F
- (setq f (polar e 0 (- (* TL 1189) (* TL 24))))
: m8 ~" L9 j9 W - (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))1 `7 j3 W6 x: ~& ^
- (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24))))2 L5 N9 @3 F# ?3 ]7 x! ]
- (command "Pline" e f g h "c") + J2 e$ Y) H9 Z% l! B, b
- (command "change" "last" "" "properties" "layer" "0" "")
, m) O5 n$ i/ I" C* X2 F - (setvar "cecolor" "4")
' I* i% l' I/ y+ F - (command "Pline" a b c d "c")! ?8 ]9 I1 d1 J1 j& V
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
. X! V B7 i: q - (if (= kho "1")/ ?) D4 G5 Y: P
- (progn
$ L n8 ~/ U" V; d0 B( S - (setq b (polar a 0 (* TL 841)))
) q/ Q8 t, V4 Y: ?( S0 G( f3 a V - (setq c (polar b (/ pi 2) (* TL 594)))
: f& Z R0 e& G/ b - (setq d (polar a (/ pi 2) (* TL 594)))" U9 K. k9 q P8 x0 b) X
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))2 w3 m% G" P& M; V9 R$ ^ n6 j- P
- (setq f (polar e 0 (- (* TL 841) (* TL 24))))+ X* R' f; K) e2 E$ _+ Q& O3 C
- (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))4 ?, R8 l4 {! Q9 R; n
- (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))
" ?8 \" q7 t& z9 _8 R - (command "Pline" e f g h "c")
8 t( t8 d" ~$ `+ V3 |" K; k o. b - (command "change" "last" "" "properties" "layer" "0" "")8 R( z$ A' U9 D" H( }7 e/ }; o
- (setvar "cecolor" "4")& H- s& J8 p4 |0 N- I
- (command "Pline" a b c d "c")7 l" a4 X5 ~" h7 G4 S, _
- (command "change" "last" "" "properties" "layer" "defpoints" "")))( r# g* ~: j3 k) {* o) Z
- (if (= kho "2"), l- q" E3 r8 V6 r H/ N
- (progn/ @/ o2 n: }% r* X6 K5 i
- (setq b (polar a 0 (* TL 594)))7 y* [$ I. V9 b' e
- (setq c (polar b (/ pi 2) (* TL 420)))' }0 h9 M: L1 a; }
- (setq d (polar a (/ pi 2) (* TL 420)))( X) x: |4 M, @: C; W2 n
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))7 w8 D3 W: f' x, M0 g/ f: |. Y5 g
- (setq f (polar e 0 (- (* TL 594) (* TL 20))))
; R9 P/ I1 d( w! ^ - (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))" i2 ^5 Q; ~- Y2 [
- (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))5 o+ \ l$ `( }6 X4 c
- (command "Pline" e f g h "c")
" W6 ^1 }. F5 x8 H7 H - (command "change" "last" "" "properties" "layer" "0" "")3 N0 R9 ?% e# h( r
- (setvar "cecolor" "4")- ?3 Y1 r; ?; z* ?" {
- (command "Pline" a b c d "c")( y5 q8 k* ?) B8 j9 U
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
: W& n `( [+ s% n% M - (if (= kho "3")
g9 }5 a2 T4 U; ]& n& y4 o - (progn
- {9 A8 b9 T; i7 Z - (setq b (polar a 0 (* tl 420)))
1 i3 g% Q( T) T' h; k - (setq c (polar b (/ pi 2) (* TL 297)))
! _4 w% j" i3 M1 p$ S# R7 k - (setq d (polar a (/ pi 2) (* TL 297)))
& R9 [) W6 d9 a% y8 t9 |# M& c - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))
$ F2 i9 W0 Y! S: @ \8 a - (setq f (polar e 0 (- (* TL 420) (* TL 20))))
4 q# Z1 I, V& `" Q, B - (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))
. w, r7 t# T* C; }8 {7 a. g: c - (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))
3 H! L# Y: j4 s. v - (command "Pline" e f g h "c")* I$ u7 w' r8 M( Z
- (command "change" "last" "" "properties" "layer" "0" "")/ P* Y' Z. ]& \9 b* d; @
- (setvar "cecolor" "4")- H" K9 o- j# _5 W- ^1 h9 ]
- (command "Pline" a b c d "c")
+ a( x) _6 a3 @* x" f. \ |3 L$ T - (command "change" "last" "" "properties" "layer" "defpoints" "")))1 J- ]8 w5 u2 @' G" R. s
- (if (= kho "4")
2 ^6 l# b9 Q+ @3 s3 O - (progn3 E0 }2 z- Z, @. b/ b1 ^
- (setq b (polar a 0 (* TL 297)))
1 y* u) k5 G0 I" q$ a - (setq c (polar b (/ pi 2) (* TL 210)))( G0 F# E0 }0 a. w9 ~5 H( v
- (setq d (polar a (/ pi 2) (* TL 210)))) l2 H7 ]) h5 M6 I1 g
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))) l6 ^) m% `$ v5 l# M3 S
- (setq f (polar e 0 (- (* TL 297) (* TL 18))))
! \6 i5 C0 r* Y - (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))$ g+ ], J4 W/ {
- (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))
. l1 v: c8 `" ^& _. D) s# w! j - (command "Pline" e f g h "c") # T- |2 {! }7 r/ o2 B
- (command "change" "last" "" "properties" "layer" "0" "")
. E# p; m8 C. C2 z& X' u$ I - (setvar "cecolor" "4")& _4 |2 Q* l" ?+ i
- (command "Pline" a b c d "c")
2 G! F4 M$ r* s$ H7 p9 _ - (command "change" "last" "" "properties" "layer" "defpoints" ""))), Q# o, K1 L5 [# m* f
- (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)
% h& c- a6 y( ]( Q - (command "undo" "e")& n% k; U+ p6 P4 J" U
- (princ))
5 e, @7 i$ O) }9 N; [ - ;=====================================================================
, G- I% Q3 t) Z1 e. |0 Z T - ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================& P; H& M, d6 g1 G6 `+ A
- ;=====================================================================" c) H, Y6 F8 k: `: A3 y6 e
1 z. o7 p" U' `" ]- ;=====================================================================) g9 S& l: B2 P7 E1 t; @
- ;===================DAT Ti Le Theo KHO GIAY BAN VE====================; a8 A, ^6 Q$ C1 L6 }4 e F7 J% q
- ;=====================================================================
7 C. Q6 x& U3 q K( ~6 T$ O7 }
6 g; R; E% a a& T) b; n, ]) i- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
' G9 ]% n, q+ @, z7 W: O - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""0 q# M2 j$ _/ Y( ^8 h, e
- "M" "MANH" "C" "9" "" "Lw" "0.1" ""+ o3 i) f3 L- b$ w$ c6 Z3 M
- "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
H: D1 X% r7 |9 h) N/ T' T - "M" "DIM" "C" "1" "" "Lw" "0.12" ""/ T2 `; P; t8 l' X
- "M" "THAY" "C" "7" "" "Lw" "0.2" ""
1 Q) E/ u/ I0 S$ ~- N - "M" "NOITHAT" "C" "3" "" "Lw" "0.12" ""3 Q/ }. O' T7 c4 S. J# x
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""1 b U; s; l) g% v+ R/ N
- "M" "COT" "C" "1" "" "Lw" "0.3" ""
0 f! @3 }* V6 ~% d% c% y3 o - "M" "Defpoints" "C" "7" ""2 E& h% O6 a1 p
- "M" "0" "C" "3" "" "Lw" "0.12" ""3 H6 `" R8 j+ X7 o
- "M" "CUA" "C" "6" "" "Lw" "0.12" ""
M$ I. e3 }7 _% d - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""9 R3 b3 \; W" t
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))7 |8 \) h" p* V9 T
- (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" ""( S% X3 h4 M& \# O w
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""1 q( d2 k7 V& _$ d
- "M" "MANH" "C" "9" "" "Lw" "0.12" "". D4 t w# v( Q! m& z
- "M" "TEXT" "C" "7" "" "Lw" "0.12" ""2 d, H9 v' s% o/ S8 j6 B# K0 k
- "M" "DIM" "C" "1" "" "Lw" "0.2" ""
b- b9 c; I) i" z# Q' g1 ]$ ]5 ^ - "M" "THAY" "C" "7" "" "Lw" "0.2" ""
& e, y" [" a# X% \1 N U) ]* I - "M" "NOITHAT" "C" "3" "" "Lw" "0.2" "", ?/ Z7 u3 q" N s( n2 C
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""
3 a( D, H% G, n/ a7 D - "M" "COT" "C" "1" "" "Lw" "0.4" ""# V. B2 a/ O* g1 E+ a) m
- "M" "Defpoints" "C" "7" ""
7 d- C' b& b8 e$ a$ `1 j9 ] - "M" "0" "C" "3" "" "Lw" "0.2" ""
+ J+ M! c. [, h/ g# L7 n* ]1 l - "M" "CUA" "C" "6" "" "Lw" "0.12" ""
. F! K9 t9 N% X4 ^, s( f - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
; N4 \; J6 ]7 a+ M, f2 ` - "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))
( g' t. H/ \+ d% y - (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" ""
+ w# A0 \9 k1 o/ I1 A( m4 J - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" "") l6 `' I( @- B, d
- "M" "MANH" "C" "9" "" "Lw" "0.2" ""
5 a, _8 @, w- C# u8 n l* I - "M" "TEXT" "C" "7" "" "Lw" "0.2" ""6 H# e+ H& o0 Y7 ]
- "M" "DIM" "C" "1" "" "Lw" "0.25" ""! I8 e, Y4 N: M- W+ z! t4 R8 D9 t
- "M" "THAY" "C" "7" "" "Lw" "0.35" ""
1 O) {( U! U) i( L( q& o7 \ - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""
2 z6 G1 l% V* O/ T1 r - "M" "HATCH" "C" "5" "" "Lw" "0.15" "": q$ g0 j5 ` o) ?; F1 ?% I2 |
- "M" "COT" "C" "1" "" "Lw" "0.6" ""+ H t8 y0 r O6 ]$ H
- "M" "Defpoints" "C" "7" ""4 [# I' G2 t2 c: ]# t: T8 _5 k
- "M" "0" "C" "3" "" "Lw" "0.25" ""3 |4 j/ G/ g, O3 Y2 ]6 q* c
- "M" "CUA" "C" "6" "" "Lw" "0.25" "") ^3 Y# I9 h4 i n5 k0 e4 {! t$ X( x
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" ""% }2 j0 O# y: L6 C. e! W
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))& N6 r; p$ m: n7 g. d& l1 t
-
% V0 x! H9 Y/ L7 ]4 b - (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""' c0 D, e* v& a' U9 t/ A" X
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""$ m0 o. h. z8 k7 ~$ I
- "M" "MANH" "C" "9" "" "Lw" "0.25" ""
2 D" ^1 m, B, E d. a- @ - "M" "TEXT" "C" "7" "" "Lw" "0.2" ""3 ]7 c+ i5 q9 a7 N
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""
' W/ m5 S. R4 B7 o - "M" "THAY" "C" "7" "" "Lw" "0.4" ""' `& {8 i3 `* l/ h+ K1 x$ L
- "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""
6 W! S+ E1 M( q8 R8 a6 k - "M" "HATCH" "C" "5" "" "Lw" "0.2" ""- b- _' X5 O* k" X
- "M" "COT" "C" "1" "" "Lw" "0.7" ""
6 V+ k; a- y" ^4 a - "M" "Defpoints" "C" "7" ""
5 y, Z1 V0 V/ q5 R - "M" "0" "C" "3" "" "Lw" "0.25" "". G9 \5 ~- c. l$ u- R2 p
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""
" r/ X+ ?! ]! `# Z$ a, k - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
, K$ j: e0 I& \1 E - "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC)
4 C, X. l7 z5 ~$ O4 w, E - ; O) F! k5 r* [3 i+ L+ M2 m
- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" ""
- h) w l' C" Y; m) w - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""' p, {3 V* H: g) w& D0 b" F9 K: t
- "M" "MANH" "C" "9" "" "Lw" "0.25" ""
' U+ @ n( r) w' i - "M" "TEXT" "C" "7" "" "Lw" "0.25" ""# A ?3 _( S1 T+ u7 [/ D- [
- "M" "DIM" "C" "1" "" "Lw" "0.3" ""7 u% q& t9 q2 A+ E3 s/ X: q. |
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""
. i# i5 B2 m' o8 X6 C - "M" "NOITHAT" "C" "3" "" "Lw" "0.3" ""7 o3 q5 T# d) K, S! \, u* q) I) q) u
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
7 b# }9 h+ x H - "M" "COT" "C" "1" "" "Lw" "0.7" ""
4 X; q2 g$ `, C3 m5 w - "M" "Defpoints" "C" "7" ""* s/ v' G) |7 l% K9 m
- "M" "0" "C" "3" "" "Lw" "0.35" "", B. Y; y$ o2 u
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""0 x& \8 D& U9 M$ a8 J0 Y0 }
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""$ h9 l+ O9 c$ e) ~9 S2 R# P7 ]0 G
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))
. T4 R; ^+ T4 i' B$ c' m - % _" u, W/ ?/ c$ |
- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" ""4 O% ^* n. \3 n) B8 o/ K, Z
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""# x" V+ G: s, l9 V3 x% y* Z& U1 R+ c
- "M" "MANH" "C" "9" "" "Lw" "0.35" ""% O+ S% l$ p2 e
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
, o$ l' a; k" ^4 B+ E$ L4 [ - "M" "DIM" "C" "1" "" "Lw" "0.35" ""
( z2 f% e- _& o/ d# y - "M" "THAY" "C" "7" "" "Lw" "0.4" ""
- [( {2 l# x* s- ~# M+ ~0 {( m - "M" "NOITHAT" "C" "3" "" "Lw" "0.35" ""8 y+ |" r( w2 F+ ^/ ~
- "M" "HATCH" "C" "5" "" "Lw" "0.25" ""
7 @2 w. s+ \& ^5 @+ q1 O4 y* [% t% b% F - "M" "COT" "C" "1" "" "Lw" "0.85" ""
# C- f, M: N" X9 S% c - "M" "Defpoints" "C" "7" ""% }; K3 Y6 F% N; Z; k/ \" b
- "M" "0" "C" "3" "" "Lw" "0.35" ""% ?* \) D% ~" F, v! L- H
- "M" "CUA" "C" "6" "" "Lw" "0.4" ""
! y: _# g/ b: J - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" ""
! k0 z& z P! y* J - "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))
! Q6 r0 H5 e/ b: v8 u - " D8 O9 F* @; X/ x2 Y
- (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""5 [5 ?; z6 S! T' [$ Q+ s
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" ""
* z8 Z$ u* t8 M$ I( u c - "M" "MANH" "C" "9" "" "Lw" "0.35" ""+ v2 i) F' j9 p0 O* r) v6 Q
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
$ s( ]" s# x+ S6 Q, t- x$ n$ i7 Y0 o - "M" "DIM" "C" "1" "" "Lw" "0.35" ""3 f8 p! A$ r) F+ u& Z' Z" K
- "M" "THAY" "C" "7" "" "Lw" "0.5" ""* o9 {) l* x7 Z
- "M" "NOITHAT" "C" "3" "" "Lw" "0.4" "". Q2 w2 K, D+ ~( }5 h- s# ]" J9 x
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
; y" W; _9 S2 @8 j4 S' ?+ a2 a( P7 j3 m - "M" "COT" "C" "1" "" "Lw" "0.1" "" ^) D' H& {& |0 E* N
- "M" "Defpoints" "C" "7" ""
9 X& J$ j2 z6 C4 I/ P9 h - "M" "0" "C" "3" "" "Lw" "0.5" ""
. T% X/ ^* z0 g& o" b$ ? - "M" "CUA" "C" "6" "" "Lw" "0.5" ""
/ `1 V6 H/ r+ B. v$ u - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""
5 P' Y- D9 p; n3 p- _* N# E, w, x! G - "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))
2 ` R: @1 o+ g3 S' m - (DEFUN C:O () (COMMAND "OFFSET"))1 R' ]5 w4 ^! X @$ I4 G( ?
- (defun c:s1 () (command "surftab1"))
g- E; `4 V# s; D2 K2 y( g - (defun c:s2 () (command "surftab2"))
# T# O7 X2 x3 }4 a - (defun c:ep () (command "explode"))
5 c/ n& w: m& Z - (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))) g( [- N: a0 w1 s3 w8 I9 X/ ~
- (DEFUN C:QV () (COMMAND "QSAVE"))
0 [9 `0 y+ i+ @* F; X/ d4 P - (DEFUN C:S () (COMMAND "STRETCH" "C"))5 X+ E# y8 d# v1 D
- / [; X }8 ]3 s* h0 R- L. p
- ;************************** CAT DIM **************************
9 f, i4 @; W+ v, z& F0 l6 j
) e+ D `7 c) E( P, O* n- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I
: R1 J4 l+ m% d* k - PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)
! F7 S9 O+ M, s+ }- J) O2 M - (SETQ CMD (GETVAR "CMDECHO"))
b j5 }# h6 T: Q' q8 P, b - (SETQ OSM (GETVAR "OSMODE"))
& s, Z& D% i5 X' ^. G. y - (SETQ OLDERR *error*: y1 s$ }: Z) u6 N5 r3 \
- *error* myerror)9 l- z u9 J6 T, w; o& N0 Y% n! w
- (PRINC "Please select dimension object!")
/ E5 ?) ~( J; p* x2 ^4 B - (SETQ SS (SSGET))
0 e0 Y" t( b& F: O - (SETVAR "CMDECHO" 0)
7 \5 `" N. i i - (SETQ PT (GETPOINT "Point to trim or extend:"))
% l% v4 W. O; u" V; |% _ - (SETQ PT (TRANS PT 1 0))
2 T! `: N# v, F4 c - (COMMAND "UCS" "W")
" K# f: J* o+ q - (SETQ LTH (SSLENGTH SS))3 n7 o9 j7 A% C/ u4 E A" _0 w
- (SETQ DEM 0)
8 A8 z8 n) x: e% K- G n - (WHILE (< DEM LTH): V. c: S, B) P$ l. A
- (PROGN
4 D+ `6 Z8 d, o) a& g7 ^; Z - (SETQ DS (ENTGET (SSNAME SS DEM)))
$ b4 z0 l. w+ }6 n- y# h - (SETQ KDL (CDR (ASSOC 0 DS)))
3 e: A) a/ C4 ]9 E3 T( b - (IF (= "DIMENSION" KDL)
: Y5 a" @1 Y! w/ l4 q2 L8 \3 X1 c - (PROGN
3 Z6 G0 _7 N& G- c - (SETQ PT10 (CDR (ASSOC 10 DS)))' f; Y9 f& }/ Y& a* Y
- (SETQ PT11 (CDR (ASSOC 11 DS)))+ ^9 f) O6 c4 Y
- (SETQ PT13 (CDR (ASSOC 13 DS)))
* H. M: T0 W Z3 A - (SETQ PT14 (CDR (ASSOC 14 DS)))% x4 A0 G8 Z' g. {# K/ K
- (SETQ N70 (CDR (ASSOC 70 DS)))$ o8 y* L4 H1 O# A! D s
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
6 Y' S6 S* E5 o" ]- I - (PROGN1 z5 Z* R& _2 N) C, C
- (SETQ GOCY (ANGLE PT10 PT14)): O' i3 a9 J! }0 x1 |6 j
- (SETQ GOCX (+ GOCY (/ PI 2)))
, T* _+ K) h8 ]& `! k, f1 t - )# M3 |& f8 `0 y5 h8 Z2 O9 m
- )
! t7 D' a4 b, |: t3 ? - (SETVAR "OSMODE" 0)
0 ^. E+ e: X; E Y) Y - (SETQ PTI (POLAR PT GOCX 2))! B m7 H' u% ?- |; q, ?1 @
- (SETQ PT13I (POLAR PT13 GOCY 2))
0 B. B1 p+ W; \, G! E6 H& n3 x0 E - (SETQ PT14I (POLAR PT14 GOCY 2))$ q$ T+ d, F5 Q' [& Z
- (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))
1 t: s7 G' \) i9 b2 R) c8 M - (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))
* p, K' W: y& o* n5 H2 F$ F/ | - (SETQ O13 (ASSOC 13 DS))% j2 r) \: g2 ^+ e J- U
- (SETQ O14 (ASSOC 14 DS))
4 T: {& E$ t0 M+ G- ^0 } - (SETQ N13 (CONS 13 PT13N))5 ^3 M/ L( @( J/ Y6 k y
- (SETQ N14 (CONS 14 PT14N))3 H8 V" y G2 z6 N' l
- (SETQ DS (SUBST N13 O13 DS))) B1 J1 [2 `3 T6 m' v, O1 i2 p% m
- (SETQ DS (SUBST N14 O14 DS))2 ]3 b; C3 Z7 D: v6 B$ p
- (ENTMOD DS)+ y7 _$ i# t+ N( R5 r/ h) d
- )* g9 c( D& u: f$ J e7 a
- )0 d) g$ @# D; |% f+ r5 [5 [
- (SETQ DEM (+ DEM 1))* g5 I( U1 u! ~ |0 P) \
- )
/ | B; D7 U' W$ L0 t - )
9 c1 K: n6 f2 K8 q) ~+ z4 u5 S - (COMMAND "UCS" "P")
! ?0 W: _0 k) | - (SETVAR "CMDECHO" CMD)! E1 r( z+ S+ e/ G/ O3 [
- (SETVAR "OSMODE" OSM)( a. L" J% [2 f
- (setq *error* OLDERR) ; Restore old *error* handler; y+ _4 R- ~4 [6 U8 y
- (PRINC)
' Z9 K7 u- |( z/ \ - )
8 b2 @7 [2 O0 t9 [
9 b, W$ I; h6 a' r/ w, C @- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI
: d" H3 G9 t. [8 V - PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)
1 ~$ Y# e% E0 M" E - (SETQ CMD (GETVAR "CMDECHO"))
& i7 J' c7 j/ g - (SETQ OSM (GETVAR "OSMODE"))5 J% @! l' o h( Q
- (SETQ OLDERR *error*
- z3 w) A/ J+ p, E: z+ a - *error* myerror)
; G6 x/ d5 X3 Y9 w% ` - (PRINC "Please select dimension object!")
. C! f# U; M: g; O/ E9 j, e - (SETQ SS (SSGET))
6 |1 x, a, \3 k8 u8 [0 c& ~' { - (SETVAR "CMDECHO" 0)* f& l! |$ t- n {( W7 g
- (SETQ PT (GETPOINT "Point to trim or extend:"))5 T h4 l* k7 E {
- (SETQ PT (TRANS PT 1 0))
7 K& ^- P$ y Q- y* W4 n$ Z - (COMMAND "UCS" "W")6 T n1 k( e. M8 ]! q5 B1 N# T
- (SETQ LTH (SSLENGTH SS))' |' L& @ g4 ^3 B- \
- (SETQ DEM 0)
# P* {( s8 z/ A9 p5 P9 F - (WHILE (< DEM LTH)/ U, A) ]; P3 ]# Y' t
- (PROGN
& ?4 N9 [' l# ?2 I/ Y0 J: a - (SETQ DS (ENTGET (SSNAME SS DEM)))
$ d) j; X1 |1 U }. t - (SETQ KDL (CDR (ASSOC 0 DS)))1 x/ h5 K% T$ N! R( j
- (IF (= "DIMENSION" KDL)2 \/ p' W- L; ]) k5 l
- (PROGN0 h9 S1 I. f* K; n+ K% C
- (SETQ PT13 (CDR (ASSOC 13 DS)))
; _/ d/ ~( L5 c8 \' w) p - (SETQ PT14 (CDR (ASSOC 14 DS)))
+ C% w. ? ^8 Y! e1 Y - (SETQ PT10 (CDR (ASSOC 10 DS)))6 v3 c ]4 M, r e4 V
- (SETQ PT11 (CDR (ASSOC 11 DS)))
. ^7 S( g* w0 c6 M. A5 B3 ?) d5 N - (SETQ N70 (CDR (ASSOC 70 DS)))7 n0 S5 T# e; E+ x$ ?& v* m j) m
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
" M' L; X$ S6 {* w- m, j* h - (PROGN
, i# G6 R; m, g0 o - (SETQ GOCY (ANGLE PT10 PT14))" x. W3 p. f% \$ E% d ?6 ~% g
- (SETQ GOCX (+ GOCY (/ PI 2))); M: [& r5 S* v5 |+ X$ v! T
- )8 U) t+ w$ M/ q- s! @7 ~7 U
- )
! p' N% U4 C; q7 q6 Y& P - (SETVAR "OSMODE" 0)
3 c5 O( S M* O7 g- n" y0 P - (SETQ PTI (POLAR PT GOCX 2))1 b; r }- L' a: r; j, y6 M: I0 B
- (SETQ PT10I (POLAR PT10 GOCY 2))& H: r# c5 a: u
- (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))
# K- V0 y# y$ v - (SETQ KC (DISTANCE PT10 PT10N))
' a0 Z/ v! h* v% C: `6 b9 c" Q, [ - (SETQ O10 (ASSOC 10 DS)): V% v g/ f9 _7 Z" k7 A& } Y9 U
- (SETQ N10 (CONS 10 PT10N))
* g6 y1 A- q& a - (SETQ DS (SUBST N10 O10 DS))
' e% K" x9 }+ {- z% F# k - (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))1 P# ?7 d% K+ _* N1 P: I
- (SETQ O11 (ASSOC 11 DS))
6 e/ O8 B' ^% U( @' I- o - (SETQ N11 (CONS 11 PT11N))
" d' d) T5 h( O& w - (SETQ DS (SUBST N11 O11 DS))
% p! u) x2 B5 Y - (ENTMOD DS): s; T% @* q) k7 A
- )
% N" j" u# L- P - )- I, w7 G2 i9 [/ E: [: _5 n
- (SETQ DEM (+ DEM 1))
4 i B8 i5 [4 O9 H9 C+ i - )
4 l8 S1 n2 T; { - )
5 h+ z( @' |1 O' k- w. E2 Z) o - (COMMAND "UCS" "P")2 J; r( a: d2 Z0 f+ w: D; ?
- (SETVAR "CMDECHO" CMD)
" Y9 T* ^8 J' w: v* ? - (SETVAR "OSMODE" OSM)
+ ]+ v' I+ C/ e/ [ - (setq *error* OLDERR)
: ^8 c# i7 w( I5 g1 O, f4 g* k& ~2 v - (PRINC)1 a& L, t" i& l: B
- )
% Y4 S2 ?" w ~ - 3 h# b: G( o1 V4 B' r! J# t4 R
- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================
- k6 ` R/ Y4 s- W Q+ h( a - 5 M" F7 V, C4 Q' j- N- [1 W
- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")) ]$ J' `% {( r$ k- U9 M: k
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p"), ?# R5 i& T/ L ~8 |2 y
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt' b# X y6 O' r7 l1 B8 O5 y* T
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
4 w8 L# u# ^) ?* L7 S - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")
* [1 e0 q1 u% |8 O: {! L9 r - (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))4 ?8 {1 v& ^% H" Y
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))- ]8 @+ I# w6 h4 }2 i. t- u9 K
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))7 t4 x) f/ O9 u. G- d
- $ |; g! Y5 K! v
- ;;; ================ CHEN COT (TUU) =================
1 F+ D* n% ]. U# `. l/ | - 5 O; g" _* r1 H. Z
- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")# h y- Q3 H N4 D0 J) r4 Y( ]
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p") Z5 g$ y) z1 I) B4 G2 ]( k+ Q X
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt" P, ~2 I4 n1 V$ T# n% b
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
! Q( x# G& r: |3 ] - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")+ V8 T* l6 A) }8 A4 w- \: K
- (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))4 [0 r; h8 v2 ~8 b9 V" k
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt))). z0 {* S% w) b: v
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))- j! O* F8 G) }3 k% }) C* P8 q
- % x* h* _# ?- T$ y' n
- ;;; ================ CHEN KY HIEU THEP (TP) =================
* Z1 b; v4 \8 [" O
( m! C; X2 G! s7 r. v- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")- }) {6 m$ O# z$ O5 r- v' }
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p"), B# g5 a1 L1 g+ _3 O+ W
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
- n- z9 g: j9 a, E - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt))). B! V2 O6 z* F5 _# J4 d
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")
m5 B! C- b$ j3 J - (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt))). L3 k/ r" }& C2 d
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
; _& }8 J7 n2 x1 e" C$ J9 J - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ)); X. H7 ]) u0 ~5 O
- q. {& }- ^8 U+ r5 P f {- ;=========================== TAM TUONG (TAM) =================================
+ d- D0 ^9 C5 p/ h! M6 _. Y
, g2 ?, i7 I6 N. \9 I- (defun c:tam(/ data_m)- F- x& y( v7 f7 z: z9 r$ ]- I
- (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0))
! I+ o0 Z9 l' k0 S - (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))
e# W+ p5 J: J! i* i1 D; X5 X+ d - (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)) {" U9 E& ^* W$ O- ^
- (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset
$ L5 n" z; m: h. q$ T2 t6 h - (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr$ d1 F S7 Y( t5 W4 D
- (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ)
8 m/ T# t* @: d) u8 h i m; u - )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if# E8 _) x0 T& F5 @. G0 n: |
- (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1)
2 M% r. e8 U6 ~4 Q4 [. E - distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)
3 E8 v+ B. T7 L! [/ ~9 i7 ^1 } - (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))
# @/ _/ A+ p( ?- l% @) |: i4 l - (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<
% l- F' Y! A& O" B. X8 h6 c( z5 L - (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)( t3 w) o8 L5 W' Q
- distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))
4 H0 D( i: G) U, I" Q) J6 ? - (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p46 H4 L2 i# ^+ m
- (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not
4 Q4 Y( @- a! ?- v2 H% X' V2 @ - (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget; u/ Q" t- B; i1 x! I: u
- (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))
' Q+ P- q) p& o \$ g - (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))
/ Z e% r; f& g% e1 X; ]& ?
$ ^! [/ w. K' a! d! z0 }- [- ;============ GHI CHU PHI (T1) ================
% S( a' O7 f( O$ U - # p9 L& q. u6 C7 s9 U$ _6 d- `1 Y
- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))& |4 w4 h' n4 f/ Q1 R4 B9 i
- (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3
/ N' M' J" R1 p' c" N2 |( v - (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)# S5 d. A" R4 C: Q; U4 _8 {' ] \6 F( t
- (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)
0 m+ S* {5 s$ [. A, t - ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1))7 ?( W* p' Z; Z. R
- (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)
0 J5 _1 l% x" n1 b v- o8 g - 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1). x5 h3 Y% D( u
- (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )
( B. w- k5 ^! u) f* w7 s! ? - (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")
/ r' n% J6 P8 c - (command "ddedit" pause))( I, h; G! {8 d- D4 t
- / R, @# x; v1 S. h
- ;;; ========================== Join (J) =================2 Z# g0 t! r/ [7 v' T/ U0 p
- 6 Y" F; M* S0 I5 W$ M" T
- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))# k5 a+ E8 Q# f# P z2 R+ }
- (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? "))1 V# r5 A9 O+ O& G w* ]7 o
- (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)7 s) r/ K! r2 `9 O
- ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")
% w' _/ t8 `+ @9 A% V - (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC")), R/ P! j# ^* w7 m% ^4 k
- (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt ""))# w- N0 r: H% ?7 X* s) c2 r# B
- (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" "")) 3 b1 v2 M" Q6 |* \$ H) \. B
- (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))
* d! @. {' K. @ - (setq *error* m:err m:err nil)(princ))! G0 {5 t) ^$ Y! ]( n4 }4 z
* T& ]& Y- I; R" i Y0 O- ;=====================================================================) m1 }' V/ S: E
- ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.9 \$ ]) y5 j/ o- S: d
- ;=====================================================================3 V, P0 k) n3 H# I
- 7 `; D4 z5 W, I$ ~- z: l
- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old)- X! B7 m- g; ]
- (setq old (getvar "OSMODE")) ! f$ U% Q- i- T4 l
- 0 B5 M- q) [ q, u1 I6 E2 Q; O8 i' k
- (setq p1 (getpoint "\nStart point:"))$ b. ^8 b0 A* A, _' N
- (setq p2 (getpoint p1 "\nEnd point:")); Z' `5 ?* t) y V% _3 F
- (setq side (getpoint p2 "\nOpen side"))2 G- O+ l1 w; e6 |8 Q+ r6 i% n
- / A1 I, v% F8 f! d. j3 I: e
- (setq dis (distance p1 p2))
$ k( p# u0 P( k8 e - (setq ang (angle p1 p2)): `9 M# H& g) c2 z' ]
- (if (< ang (angle p1 side))
& W. [2 P$ G1 c6 I( ^ - (setq angside (/ pi 2) )$ P2 e' I l. `) W1 W
- (setq angside (- (/ pi 2)))9 O1 i; K9 z$ T4 @
- )
& D3 d9 R% S! s- m4 ?& l - (if (>= (- (angle p1 side) ang) pi)
) R& ]* z k& n$ d - (setq angside (- (/ pi 2)))
* u; p. d7 b. S/ b- y* p - )
" y |$ U# I" E4 y$ ]+ D6 N- m( h - (if (>= (- ANG (angle p1 side) ) pi)4 ]: s0 Z" W0 h1 @
- (setq angside (/ pi 2))
& {5 j$ g6 p; m - )
% c. i/ c0 l& r
( i" I' Y% D% y# I) V/ y- (setq p3 (polar p2 (+ ang angside) dis) )
& @. m( B# p0 s - (setq p4 (polar p1 (+ ang angside) dis) )
: c8 v& X2 \8 ^- u( K3 r e0 h - (setq wid (/ dis 15))) S# V7 s; C% l( K
- 9 E& k$ T4 T* H- R9 |) r
- (setvar "OSMODE" 0)
9 c! n, x! X/ P4 ?* l
( W" {& I1 t3 z H- (command "PLINE" p1 "A" "D" p4 p3 "L" p2 8 J9 b3 _( t! t; L; H8 _
- (polar p2 (+ ang pi) wid) / D" e. o: D" q6 b
- (polar p3 (+ ang pi) wid)
9 ]7 z* t( A$ t {: n5 r p1 O - "")8 U# p3 {, |2 \9 r$ K# T1 R
2 G3 b! B L- p3 Y5 j" o6 ~4 h- (setvar "OSMODE" old)3 Y) {7 ^2 |9 {; u+ a' z7 x# E/ i
- (princ)3 N" u+ f: H- F }) h
- )* h8 I$ l; j4 T( f2 L( a
- ! z: x. m d* v' f6 h
- ;=====================================================================
; w* z% T8 e `3 a* d* S* ^4 i: s - * y2 E! r# U% O3 Y* `8 H F& I
- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old)
7 `3 E# l# f- D" S, u - (defun cua1 (pt1 pt2)) V$ I0 M9 s5 `, E7 N
- (setq p1 pt1- ?. K& Y% Z& L$ k0 @
- p2 pt2)
0 d8 [5 {/ T" m5 K - 1 x+ y& G* J9 o$ ]- G
- (setq ang (angle p1 p2))6 X5 i$ p6 I; o: T: }
- (if (< ang (angle p1 side))2 E7 I& U9 @1 ~: f* z. C8 c
- (setq angside (/ pi 2) )# N. D* ]' v. v$ A
- (setq angside (- (/ pi 2)))
, _% k5 E" i8 d - )/ [' N) Q: |* s/ X m( N
- (if (>= (- (angle p1 side) ang) pi)3 C: i A4 _6 `: C$ L! Y0 l5 n; `
- (setq angside (- (/ pi 2)))
" @% }7 {7 }, k; ] - )
( Y6 i4 F0 w$ Q* `. d; @ - (if (>= (- ANG (angle p1 side) ) pi)- [- L' M$ ] C$ R* `% {$ M
- (setq angside (/ pi 2))
% } B0 ^1 u4 u' r) K$ _% W - )
% E) w6 ^" a# s8 d
" r! k3 Q- Z) U c- (setq p3 (polar p2 (+ ang angside) dis) )5 I& E: g* R2 o2 s& j L5 y7 a
- (setq p4 (polar p1 (+ ang angside) dis) )
# T0 P1 z9 p7 s3 O/ E1 u - (setq wid (/ dis 15))) Y* V1 l& W5 G7 ?& E- {) x1 R
- + V& ?& v$ A4 `3 S7 X3 N4 q, v1 c
- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
6 ?* s8 }! X8 O. i - (polar p2 (+ ang pi) wid) 2 N5 ? O! t9 j% `: _) Y
- (polar p3 (+ ang pi) wid)
; G0 p3 x# X" P - "")5 _0 q& h1 J4 \/ g
- )6 {; _3 A/ }0 v0 H* ]' U, E
- ;=====================================================================
& Z# z0 T+ l9 e. W+ B2 s( X: Y - (setq old (getvar "OSMODE")) $ L# [+ E( m- E- d
- 0 i6 |# E, w2 A1 t
- (setq p1 (getpoint "\nStart point:"))7 A: n1 E5 }; q7 N6 m& j
- (setq p2 (getpoint p1 "\nEnd point:"))" @, ^0 _+ e m# u: E- d6 `
- (setq side (getpoint p2 "\nOpen side"))1 j, [( s7 w1 z1 j$ c+ A3 b
- " E7 J J6 X5 Q9 [5 Z
- (setq dis (distance p1 p2))
1 T* J/ u* k& n( @ - (setq dis (/ dis 2))+ w) ]! N+ C q% s9 x6 E
- . |+ a( X( z& {, ]6 G" H
- (setvar "OSMODE" 0)- e1 p/ r! L* i) y2 M' W
- ( ?; G. R: [7 L
- (setq p1 (polar p1 (angle p1 p2) dis))3 H+ f' L) J$ h9 Q; N, k) f
- (cua1 p1 p2)
- x% w5 Z% B' D. b; ~4 h6 U - 4 g' q" \, j8 j' S! C; F/ c
- (setq ang (+ ang pi))( u ^: i& V: R
- (setq p2 (polar p1 ang dis))
5 ^( m& y e4 u, x0 F9 b - ; (setq side (polar p1 () dis))
2 B# w6 g% U+ G8 u" _ D8 d - (cua1 p1 p2) / [) u: z4 k* u7 v0 G
- ) a/ t" U% p: g
- (setvar "OSMODE" old)- I& Y( ?+ }/ y$ B. M
- (princ)) c! r$ U( h7 `) G
- )( {+ k7 ^( Z* u* r
. O" g, {4 E0 }. ]( \- ;=====================================================================8 J& L2 S2 r5 \3 f: \: Z
- ;"Glue" text strings. All adopt first's properties.
# c; f: @9 v7 | a: S$ w - ; Author:
7 t$ }9 E8 O, M8 R - ; Henry C. Francis2 j* D" D3 Y' A* |
- ; 425 N. Ashe St.' Q' d+ E" m& N: w$ @5 Q
- ; Southern Pines, NC 28387
" p' _5 G( W; |8 _ - ; http://www.pinehurst.net/~pfrancis
/ n5 U: {8 _" |- } - ; e-mail hfrancis@pinehurst.net1 p5 `6 I9 j6 p1 V' a; n8 |
- ; All rights reserved.
8 t$ j& ^5 J- X) W+ ~6 T - (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)+ B$ s& L- G! E; o5 P
- (while1 v) F: Q0 C7 P, ^+ D" T
- (not4 s. c) `* `# }' ~: F; T: _8 Y
- (and
, l+ P; W- u* t) e" a - (setq ename1 (car(entsel "\nSelect first text string to join: ")))5 B g) S2 L& L0 A. S" o2 a" W
- (setq ent1 (entget ename1))
+ f: s" T" w3 r. Y: o- p h - (eq(cdr(assoc 0 ent1))"TEXT")! L; ~) A+ k. j3 ^' k! I
- );and
& s& q( ? }7 O9 _5 ~ - );not
) h+ _8 y% w! a3 a. G - );while
; p0 r8 A) d' g4 l8 _+ A4 { - (setq old1 (cdr(assoc 1 ent1)))' p% D& p2 t/ i) \
- (while( v( ]( g1 s- W
- (not
5 i5 Z( O; n% }2 @ - (and
3 S2 s; ~* E% s - (setq ename2 (car(entsel "\nSelect second text string to join: ")))
9 ]" [) L- [ q$ ]& Q. i - (setq ent2 (entget ename2))' p4 M) c' r5 O5 I
- (eq(cdr(assoc 0 ent2))"TEXT")
9 M$ T. n4 |8 C - (not(eq ename1 ename2))1 e' o/ `, {* F! ]# r2 o" e
- );and% G) k. [) { _
- );not
0 W1 O7 z% n9 C6 v! K6 g - );while; B, l& N% V6 y# \' [' L7 F
- (setq old2 (cdr(assoc 1 ent2)))
, T# q! w4 p/ E4 H/ t/ g( L+ Q - (setq new1 (strcat old1 " " old2)( A& p1 {$ M+ c
- ent1
& x' I9 b0 [: C4 p4 ] - (subst (cons 1 new1)
; g7 F o3 U( p* E+ A - (assoc 1 ent1)# p% w! s4 ~5 L
- ent1)/ }/ Q( b; y" @$ n2 V& i
- );setq
( w8 a" B' b$ O2 Y& f: f - (entmod ent1)' o" J4 a5 }5 u6 F2 G& T
- (entdel ename2)2 b% h) ~6 G4 q L: f
- (princ)! X" h" _& R4 A* z2 M4 Y+ \
- );defun
/ W. O! ~% }: U' e8 y- v
+ G0 Z: v8 G' B- W- ;=====================================================================
" j' x6 l; A( }
9 D5 m$ r+ D4 z3 D- S( P+ I- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)1 m) P" F/ }5 {# u
! M2 M- G3 w8 Q; f. M0 M$ g- (defun nterr (s)
8 S+ S j* z. B3 L1 A: w- h - (command "_.UCS" "" "_.UNDO" "E")6 A; \6 _( P0 T/ G" ~
- (setvar "cmdecho" 1)
/ Y6 s$ C9 d' ^: a+ a - (setvar "blipmode" 0)
) p; T0 w8 g; s! ^7 {$ d5 X - (setq *error* olderr)
: D( D7 s9 e, e - (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil % g0 k1 h- x/ I" ` I+ t* B
- nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)
# n$ D& a$ h4 @) |) A - (princ)- C( z, t0 M7 v* w/ S) n3 Z
- )8 o' n- r4 v; b3 j& p
2 H/ J: Z; p! h5 X- t" Q6 e- (defun tim_in (dt / p01 p02 ktra)/ o K8 h8 V/ N0 d4 w3 n
- (setq p01 (cdr (assoc 10 (entget dt))))/ N8 v0 o' ]! g% r) e$ ^
- (setq p02 (cdr (assoc 11 (entget dt))))
0 Y2 o, p: L* U/ S U - (setq ktra T)$ W3 {# N1 _ l
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2)) $ x9 T5 F2 D/ b& k8 c3 z4 l
- (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
# q+ E/ B. E( J - (setq ktra nil)- G9 {% A$ O! J( ]( @
- )9 p! q+ v" S/ P, U0 w: l+ {" y, p" s
- (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
; |9 R: c' w: v/ U: l - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
& l# N, P5 ` h" o6 Q/ s S0 v - (setq ktra nil)
2 U; x7 m/ Z4 F7 P! k: {% N2 W - ); Y5 F1 _% [: x$ W/ Z
- ktra
: }4 m3 K+ y! V" _! B - )
8 k$ b: }0 r( [2 J f9 C
( q1 y! q1 p, F; ?2 `4 G$ l- (defun timdt (dt1 dt2 / p01 p02)
# _1 p7 |% ]9 g* s; ~! e - (setq p01 (cdr (assoc 10 (entget dt2))))# C( {' N5 o+ `( G
- (setq p02 (cdr (assoc 11 (entget dt2)))), u" e) E6 w7 |& F; U0 {5 d3 S
- (setvar "ucsicon" 0)# q3 C! O4 p! x2 n
- (command "_.UCS" "E" dt1)
# }* A, t- o1 n2 _/ h0 W! y - (setq p01 (trans p01 0 1))
5 t& g; ~' O) \6 S& b3 p* w - (setq p02 (trans p02 0 1))
# |0 {4 `' K1 e, X - (command "_.UCS" ""), r* R: e7 f2 ` S% W0 o+ f/ t L
- (setvar "ucsicon" 1)
4 I2 L# ?/ K7 a9 E+ J; Y% m) p - (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))
9 L9 [/ b; V' P/ o - T
# J: r$ h0 h) E" [1 z. Z: k - nil, u" g8 a# ? ^5 ]3 v% F# T# b/ E
- )0 g* G7 t- a3 @
- )
: F: K9 X- c; M) {
2 Y7 y( [$ V: S( N, X X4 D" h- (defun tim_out (dt / p01 p02 kt)
/ @- t& ?% H% @" e q# b1 { - (setq p01 (cdr (assoc 10 (entget dt))))
! ]- H) Z; b; ~/ u' R' t m% y - (setq p02 (cdr (assoc 11 (entget dt))))
3 v/ T5 Y8 Q4 I8 T% s+ P - (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
- x3 l* k: R( m" y; | - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
1 Q% W1 X( C+ m6 i$ J - (setq kt p02)+ |8 F) d6 d9 e% U! m# ]* z8 L
- )' {) C1 A2 a5 n- c8 q9 d# D
- (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
' e0 y0 M" Q: t6 f! @8 N - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))) R8 ^" h, n# L- r8 X8 \) ?4 c# l
- (setq kt p01)
% G( ]7 D# u0 n# g8 ?* ] - )% B7 f( G6 c0 P0 D8 a, p: g& a
- kt b1 a! v2 F3 L, h5 L4 B
- ); Q6 W6 v9 K/ f6 ?' a
0 n' P/ X7 {; t- (setvar "cmdecho" 0) ^% q/ O6 k9 C9 I4 `" J: `1 c3 ^
- (setq olderr *error* *error* nterr)
' Q9 F- q9 Z8 n) F; v( T - (command "_.UNDO" "G" "_.UCS" "")
5 \$ |) Y: q6 X - (while (null ss1)7 f7 \+ \; u. ]2 v( L
- (princ "\nChon tuong muon noi...")
3 A6 p+ V9 F% B1 G" Z; Z) f' Z - (initget 1)
# W4 a% m! O; H+ g1 |+ e. t2 ` - (setq g1 (getpoint "\n>Goc thu nhat:"))4 p& d4 f$ X% A8 G( r/ U* V$ h3 C
- (initget (+ 1 32))
8 P. [) I$ t7 T/ q1 h: } - (setq g2 (getcorner g1 "\n>Goc thu hai:"))
' ]% D3 M: O) u! K) v J. |% ~4 f4 U - (setq ss1 (ssget "c" g1 g2 '((0 . "LINE")))). B+ s) h( A7 a/ R. S' i
- (if (null ss1) (princ "\nKhong tim thay doi tuong!"))
; x* f% M+ E" J3 @* q& }2 R - )
6 |1 X2 m, a3 P$ C8 S# b! x) x - : o" ]' D2 _6 h- @, m/ Q& a
- (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2)))6 c) d4 \3 R6 |. o$ m
- g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))
4 o1 ~+ P8 U; Q. `" F - g1 temp)
/ J9 T& K6 ]: C5 B/ l4 j+ j0 U - (setq ss1 (ssget "w" g1 g2))* |0 z, {8 G! |; T- |1 V
- (if ss1 (command "_.ERASE" ss1 ""))
( u& \/ I5 X( i O! v, U - (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))% d8 a. h8 N0 d' v
- 6 s1 }$ q' |- e( Y
- (setvar "blipmode" 0)
, D/ K. Z$ Y u2 Y `: r, a - (setq i 0 l (sslength ss1))& ?4 I& @! i# n# S6 T& l4 A9 T
- (while (< i l)
5 @9 i; e8 k2 {: b8 ^& \ - (if (tim_in (ssname ss1 i))
8 ^" |+ x% u7 K. Q: Y4 r - (progn 3 Z0 s; e5 r1 Z9 J Z, W1 j7 {) ~
- (ssdel (ssname ss1 i) ss1)8 M1 F# O" Q1 u5 D
- (setq i 0 l (1- l)), j' @9 h8 }' r& z! Z# R/ h2 C7 X& a8 X) }
- )
+ F- ^- B$ w3 O& Z: A d - (setq i (1+ i))
?( r6 R6 ~) ` - )
4 I5 f- W) @% [7 w2 J: }2 i" B& O! V - )
$ m; t# O! ~, I3 ]# ^+ z - (setq l (sslength ss1))
8 m4 ?& T: q n; k) r. B - (while (>= l 2)
- L% g+ x( v% j" n- ] - (setq e1 (ssname ss1 0))- B4 ~- B t% q4 c5 _
- (ssdel e1 ss1)7 p( |3 L& Z) a4 j7 [% d) F6 F7 |9 c
- (setq e2 nil i 0 l (sslength ss1))3 P+ d# O; Y3 d* M7 {/ d, o
- (while (< i l) 0 A, N- n" v) B# l6 _ z$ ?; n
- (if (timdt e1 (ssname ss1 i))
8 s( p' u( Z' N$ m2 ?, a - (progn* ]2 @- F3 o$ W7 G2 R
- (setq e2 (ssname ss1 i))9 x1 u: q" Q0 g
- (setq dd (tim_out e1))
# K6 {+ M3 J" I! L7 e4 J2 z/ b - (setq dc (tim_out e2))
2 H f( D1 G6 D0 Y" S: s6 y - )
( `/ o1 u! f$ ?2 w$ z; s/ F - )" k, |( [/ C8 p7 p+ i( B% J
- (setq i (1+ i))) _. B# w3 ~8 i- ]( N/ d9 b5 u
- )
0 c, i# M& v% [( n" d - (if e2 (progn; M, C7 y. y+ S. Q. T1 }
- (ssdel e2 ss1)
" o$ b* a0 `1 \7 W; U$ m$ I' F - (command "_.ERASE" e2 "")
' h+ V6 E) Y& o* ` - (setq temp (entget e1))
1 {$ A/ N( U$ Y4 g5 [! f+ \ - (setq old (assoc 10 temp))
) I7 ]5 F6 k& W! N7 @; Z% E2 W6 d - (setq new (cons 10 dd))4 g2 F1 a8 K$ n5 o$ W
- (setq temp (subst new old temp))
3 v* K! s& j) [, w) b$ k - (entmod temp)
8 `7 R) D' q$ N( B' b* P: h% ? - (setq temp (entget e1))
! {$ i! w+ C$ M4 _9 T/ \# \+ q - (setq old (assoc 11 temp))
- r4 k+ @( M. W - (setq new (cons 11 dc))8 j$ a9 c' j: W* ]- Z
- (setq temp (subst new old temp))( `$ k1 T% ^% t( `; D( Y
- (entmod temp)
9 E3 l: E" p9 N7 T0 V% Q6 f1 x - (redraw e1), l9 e- B. f) {$ P
- (setq l (sslength ss1))* ?( t) o+ X+ F
- )
% s% o" y3 d9 Q. I" T8 f - )
+ ?4 i4 ~% `& V7 f) l2 e* J - )$ Y" i% ?9 g: ^% P
X! ?2 @) g( c- (command "_.UCS" "" "_.UNDO" "E")
* B( j1 z- v' B/ }/ j4 ~7 k4 B - (setvar "cmdecho" 1)! I l7 O* e9 Q& Y0 h7 `
- (setvar "blipmode" 0)
1 V! c' u. _/ U" a. \ - (setq *error* olderr)
2 S8 S6 Q; Q+ Z( y - (princ)
% P$ a6 P, l" F% j7 t - )/ E/ ^6 _+ _+ M; X/ t
- ;*********************************************************************
" x3 E# \3 ?, i* |" p7 E - (defun ketthuc ()$ D& w) m- R* ^' e" \: |' Y% O
- (setvar "cmdecho" luuecho)2 N# p) t3 m5 a( X. T' W% ^+ K
- (setq *error* luu
: ]+ Z! s c% X8 {- T - luu nil
" M4 b9 }/ D' Q- Q) v, D - luuecho nil
" n4 e5 U0 N+ Y6 Z& k) X9 V, ` - );setq# S! e: b j5 V* \
- (princ)" Y' K, \# ^/ C+ {5 c) f4 n
- ) 8 |7 w" ?, n3 K2 P) u. k1 _/ S( o: ?4 p
- ;*********************************************************************
6 Q/ Q9 U& s. |3 i7 V9 l3 ^ - (defun modau ()$ Z2 V) T. i! F& Y3 i
- (setq luu *error5 w# a# n5 Q+ r- W9 I
- luuecho (getvar "cmdecho")
& r( G; r" F3 r1 q - *error (ketthuc)3 V) R+ r' [0 a) C# G
- )% X9 i ^, s9 f2 q
- )
' S: I4 t& t- N& `! B& O: I - ;*********************************************************************& t0 [; @8 r( L) r
- (defun xulytext (text / kytu ma sokt luusokt lui )9 k# `& V9 S: p5 J) r
- (setq kytu (substr text (strlen text))
3 n2 ]& \& Y$ c; U - ma (ascii kytu)/ E: C# V' S$ y1 \
- sokt (read kytu) 9 }+ t$ L+ C8 B! T7 h
- lui 1/ r+ c8 m8 b0 O% _/ \+ s
- )3 ]0 V5 T+ \( v) y3 S& m7 b
- (if (numberp sokt)# i+ @. b2 z4 U p9 A; K" L5 I
- (progn- ~4 A- o$ `9 |5 |$ c* x1 g
- (setq luusokt (1+ sokt))" s. q7 h% N6 ~
- (if (and (numberp sokt)
( m1 F6 ]& t# m( u2 l* S - (> (strlen text) 1)# j9 z$ z# W/ {3 n' q
- ) ! r( ^' P2 W5 O0 b
- (progn
9 q& o0 F; R+ i8 S9 r - (setq kytu (substr text (1- (strlen text)))
9 P9 \& x+ W% ~% q1 O7 A - sokt (read kytu)
+ y7 `3 V" O7 Z9 B4 f0 n6 H - )
4 U3 [5 E" T7 l; c) E; L. @% F - (if (numberp sokt) 0 I k/ b8 S# F
- (setq luusokt (1+ sokt)4 i8 y- M" s0 o* X( F' F
- lui 2( H0 O" J7 }1 ^0 J# n
- d& E& {% H+ v/ i- )
+ l% V* d! {) ~% Q$ q N - )
% A6 d; ]: g& G% N e# g+ ] P - );progn
# X' |; A' o) C. d" l9 m2 ^ - )
$ [0 V% r; }% F - (if (= luusokt 100) (setq luusokt 0))7 j+ u5 j4 u1 U: k; b& v
- (setq kytu (rtos luusokt 2 0)
- E, C' @( l+ y: h" f4 s# M1 u - 1 B3 B, w9 c8 T) z
- text (strcat (substr text 1 (- (strlen text) lui)) kytu)
' R& d( P d: n' n0 l( m+ g9 k - )9 e% @9 H% E' i/ C3 m M
- );progn
1 K" V. j9 K+ p+ i# ~ - (if (or (= kytu "z")
0 V5 g8 E0 h$ b - (= kytu "Z"). P) s/ c' U4 k
- )
0 P& F) J" d! a$ w; ?; |" ?# x - (setq text (strcat text "0")
$ c$ o# j2 ]) [7 O3 I6 @- X - textxl "0"
6 J1 g4 B9 l2 M+ x D5 ?/ _( C - )# ]/ v$ d& h5 o2 ]. U) Z
- (setq ma (1+ ma)
- k( v5 ]& G2 N( H$ ?2 u2 E - text (strcat (substr text 1 (1- (strlen text))) (chr ma))
5 l6 U8 k) R2 Q- r# p) G! W - )9 x% }. m& E3 }- T
- );if
6 m; _% i. @$ K, ? e2 i - );if
. u. Z3 S5 V( G4 \& M - ). ^2 ]6 o5 o+ b( ~, d
- ;*********************************************************************# @. A& v$ }) t, o5 L. B, e* K
- (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)
n2 z! n; V' Q- ]1 Q$ y - ;Neu doi tuong la text thi tiep tuc
. L$ s0 O9 O( J4 V1 f8 q - (setq doituong (entget tendoituong)
r6 I0 B; L# V3 G& ]6 R/ }1 s - kieu (cdr (assoc 0 doituong))
- R, i5 H" `5 y- a - canle (cdr (assoc 72 doituong))
% P& v& j- m; G' Q - ) . j5 R- K! ?( t: h
- (if (or (= kieu "TEXT")
2 l, d8 v- H. {0 p1 `, [ - (= kieu "MTEXT")
; x# t& N1 \0 Y' K8 U2 \8 U5 I - )
$ n* I; ?8 u; J# I, F. H - (progn4 E" ]) U6 k! j6 q/ N
- (setq textxl (xulytext textxl)
. Q3 z2 y5 j. X0 O+ Z4 B0 G4 h" l( p7 f - text (cons 1 textxl)! v; m6 b1 m" K" ]+ K) C$ w
- vitri10 (cdr (assoc 10 doituong))
7 j' n P3 {8 q) _# g9 A' r - vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))
: u- ^* n( g G5 t - vitri10 (cons 10 vitri10)- T4 c) E7 W; t
- vitri11 (cdr (assoc 11 doituong))7 c" S: b5 f' ]- {9 E* o
- vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))" K0 c( W7 f; q e
- vitri11 (cons 11 vitri11)/ \8 M/ ~( \5 _8 M# Q
- dem 0
2 A8 q+ S5 D, J - dsach nil
5 S- G) s y0 T) {$ W1 D5 M - )" i$ O3 g, }; o8 y6 U2 `# N
- (foreach tam doituong! z6 a% F( C- z: R6 F) h
- (cond# I) Q5 r+ |& N' y7 p) j
- ((= (car tam) 1) (setq dsach (append dsach (list text))))$ k& p& @3 C$ J; H u
- ((= (car tam) 10) (setq dsach (append dsach (list vitri10))))
2 p/ o9 u" q5 H% T - ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))
3 i& x8 y" k4 M& N( ] - ((setq dsach (append dsach (list tam))))
, V4 M; h- u3 J1 Z - )- f5 s- Q2 b1 G1 o' R$ Y7 g; p
- )6 N6 T7 w4 x. n
- (entmake dsach)7 ~# A+ Y, k/ e1 f/ h2 X! G* ]
- );progn
) o% C) J V3 B! K9 X# I - );if
" v! e0 {3 i% ]1 U, ~% s6 [ - );- L" p1 t) R2 Q9 N5 Y2 u, T6 S% A
- ;*********************************************************************
/ S! F/ y) |; R5 H- W - ;sao doi tuong cu sang vi tri moi$ P. x! S, N1 N2 o0 y f7 V0 b% X
4 _4 Z- n. X4 r4 Q! M- K' h- ? H- (defun copy_dt (tendoituong )$ m- v, v5 H/ x
- (command "copy" tendoituong "" goc toi )
( e6 v- E$ K/ [& N% i- Z - );defun
; }% Y) k/ i K6 z% G' G
) f* M K8 |' X9 x) r- ;*********************************************************************9 Q/ T# d3 m" O- Q) m
. ^( H7 w4 P1 c4 Z3 R- _- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)9 o% o2 ~" q$ V" m
- ; Khoi dau cua chuong trinh9 o" w' t) M9 _0 R% F
- (princ "\nCopy Inteligent...\n")9 q7 g" h/ x8 A1 B& r6 C% w
- (setq luuecho (getvar "cmdecho")9 T, |4 g+ L, v- W$ y$ K
- luu *error*( o2 J' H3 c0 u: Y1 @* |5 W1 L- s
- *error* ketthuc
7 g! T5 |; F% y; ]& k9 D' O - cumdt (ssget)0 V) u4 x9 H1 i) |- W
- dodai (sslength cumdt)' Z/ Y; v# D9 X
- goc (getpoint "\nSelect base point:"): | W6 q' d2 n" B5 |# j! {( ~
- thoat nil! ^1 N8 N+ s$ G$ ~: e
- dem 06 m( H5 S( X+ m! s: O6 J
- textxl nil4 e# ]0 Q$ o* Y4 Y3 W% z( r0 P
- );5 X0 k+ v- _$ r o1 ]
- (setvar "cmdecho" 0)" [: `. n& w0 C
- ; Loc ra duoc ong text de xu ly% C& h7 _% Z1 R; }
- (while (and (= thoat nil) j5 }+ y- J/ b- }5 `3 D
- (< dem dodai)
/ J! _% a0 ?: l5 Q, r2 M - )
$ x8 k2 F" _+ z' G+ V6 u) ` - (setq ten (ssname cumdt dem)2 w9 V1 O" {1 k4 N+ V! Z. X
- dem (1+ dem)) @/ c; |. F/ |3 c2 n
- doituong (entget ten)7 b% F J9 [0 |5 e
- kieu (cdr (assoc 0 doituong)) 5 _5 c3 F( J8 b6 u
- )" @) c. ~3 ]3 i9 }9 b, L
-
$ Z4 l6 l. A3 `8 [: d4 |7 d2 f5 B$ K9 R - (if (or (= kieu "TEXT")
+ W; x) D& b) C4 ]% z: b - (= kieu "MTEXT")
' p" X0 R: x7 @$ Q7 W7 ?' N - )
1 E3 b$ {8 J& b$ }/ A - (setq thoat T4 K+ h& h9 ^7 ^1 e* J- n
- textxl (cdr (assoc 1 doituong)) 2 G7 a3 r2 F8 X6 D
- )
. P5 C0 O( m, H) Q9 _+ p4 t% N - )) d: r- T0 @' ] [3 h2 ^8 J0 T
- );
& r' q6 m6 `# D# H - (while T
, c/ q1 p2 F6 E. M4 e# y6 R' H4 j) J - (setq toi (getpoint "\nSelect next point: " goc)( F# _, o5 m3 Z+ _* N/ k
- vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))' U9 f/ D, ^( w6 w# K
- dem 0
& z3 P R I8 V2 C: y7 }& q - ); z: _0 d- _% |: N- w4 L" r
- (while (< dem dodai); S% r1 Z3 l Z
- (setq ten (ssname cumdt dem)& M( v$ x- s# D0 d5 G8 J- C$ I
- dem (1+ dem)% ]5 U% @- O/ m$ c3 @) w
- doituong (entget ten)
8 y5 X5 l9 c7 g. g% Q: m - kieu (cdr (assoc 0 doituong))
. F1 S5 l6 _. y1 L' y - )
: a9 M- ~5 D- r( F6 A- l: w- x - / G5 ~9 y1 q* ]! \, k* Z4 B
- (if (or (= kieu "TEXT")- w' y* d, y7 _ f! I
- (= kieu "MTEXT") 0 @+ K' }9 W" Z7 h# _" O
- )
; S t8 N/ Z/ n0 B - (doitext ten)) F( S' v3 V, R8 f
- (copy_dt ten)
# w& M$ f8 ~: O6 x - 3 D2 [: T, l! c* r! U1 R
- );if5 G7 m0 G0 d6 c/ V
- )
$ g6 b9 g0 l0 n8 {9 X - );while
* O6 ^8 V( k( x( G" A, a - (ketthuc)7 o1 O( X( ^* o/ i! H6 {
- );defun
1 A- U& W- p. Y, p- d - (princ "Type \"DG\" to start")
+ q! K0 o. Y7 G. m4 S; Q$ e% M/ O - ;Note: bien toan cuc: textxl vitrilech
/ l0 C; @" ?" M9 a5 F2 g: g
& C# P3 J, E; X- ;=====================================================================
/ s g, O: j ?8 X7 e- y - ;;; PLJOINFUZZ.LSP
7 `1 Q) S/ e% B/ `8 F - ;;; Joins lines, arcs and polylines using a fuzz distance4 R0 ]4 \3 ?3 K- ~# l% V
- ;;; If only one object is selected it tries to join to all objects that are possible
, I: H; s K, j* X - ;;; By Jimmy Bergmark
6 D( R& _* f* ~' _( } - ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved
8 K' M' e! C2 y# w7 ~& W - ;;; Website: www.jtbworld.com V1 s5 n! F6 {& `* ` @
- ;;; E-mail: info@jtbworld.com
( j) R. N& j9 ^4 V- j) ^" P# H - ;;; Tested on AutoCAD 2002,2004 and 2005" j4 S) y1 P+ Z
- ;;; Latest revision made 2004-11-11: h$ M" b6 Q7 a' ]
- ;;; Minor code cosmetic change made 2004-11-13
+ x( b! K& s. _/ Y: ] - ;;; Bug corrected 2004-12-23
+ F' X; f; H& q' [6 h( p6 i- e/ y - 0 r8 j1 X5 R G( L- f' B
- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf
& y! Z( _% |3 H/ Y- L4 E0 R - (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)
1 i! [' c [6 T9 A% N, ?4 |; G) a- [ - (setq oldcmdecho (getvar "cmdecho"))1 L* }0 w" \5 o1 [9 {6 f6 o
- (setq oldpeditaccept (getvar "PEDITACCEPT"))
# b0 |, x& N8 A# D8 V O - (setvar "cmdecho" 0)
' V0 Z) V" h; Z; z( b - (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))
/ X7 |4 S1 w, t) F; D3 k - (if A2k4 (setvar "PEDITACCEPT" 0))
- j6 u! H* _" w/ k( b( J$ r - (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))
* V* P9 h: {- F8 u# F" o - (princ "\nSelect object to join: ")
+ v; H8 h+ Z/ Q& Q: V2 t8 v8 Q+ o2 U - (setq ss1 (ssget okObjects))
6 K4 ^5 p y+ J - (setq fuzz (getdist "\nFuzz distance <0>: "))+ r; N* f( Q5 u6 p
- (if (= fuzz nil) (setq fuzz 0))
8 x" j8 a3 L9 u v1 V; \6 ~ - (if (/= ss1 nil)
, ]: o# q, p7 I0 T - (progn
' u% L2 x: e7 P0 c: m8 @& A9 O+ i) q - (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0))))))
5 k# p& c$ u& I: J - (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects)))
) Y+ _4 R8 x2 d+ }3 J( n. Q - (if (member objType '("LINE" "ARC"))4 @) e/ L/ F- q1 G4 Y D4 @
- (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")* Y4 V* [& A: V
- (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")
- S& M8 \2 H0 }0 \( A - )' U, U0 @6 k/ c) Y
- )
1 d- j6 _1 F5 [) T% {; F4 V; _. x - )
- d# \7 e2 I# W- q8 \ - (setvar "cmdecho" oldcmdecho)
7 g0 I* q+ m* |; s0 y - (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))
4 D) W0 o% `- u# Y - (princ)
) M X/ Y1 v5 u7 C& \ - )4 d3 x5 N* \. ^: o" L
- t) H# c9 f6 F3 E0 Y- ;===========================VE CAO TRINH===========================
! F8 k v. v o# D - E- V- t" K$ l
- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL
8 c& z$ l/ t- X* Q0 U+ o/ T - CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)
5 N- b$ _5 I" [% F! }6 _( O. W- j - (SETQ OLDERR *error*& L' {3 B; I; h/ i
- *error* loisb)
" {* {: k6 o- K$ Q - (command "layer" "m" "dim" "c" "" """")9 h9 t" O1 u- g, W, Q9 Q
- (SETQ CMD (GETVAR "CMDECHO"))
# ~6 F# q9 [, V& a( J - (SETQ NBC (GETVAR "CLAYER"))) ] [) P1 z) `' U h
- (SETQ OSM (GETVAR "OSMODE"))5 p& b2 G' A5 {( M* `! p
- (SETVAR "CMDECHO" 0)' e1 k B% w: i. U4 D
- (SETQ PT1 (GETPOINT "\nDiem cao trinh:"))
# ]7 K& I0 ~3 r" d! e - (SETQ TX (GETSTRING "\nCao trinh:"))
' w: s* T9 J' \: k - (SETQ FCH (SUBSTR TX 1 1))
$ `8 P) f: C/ `% U6 M7 M6 p - (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))
+ t E+ m5 b Z; A - (SETQ CRST (GETVAR "TEXTSTYLE"))* k1 A) P3 \4 n. C
- (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))) B& I' Q9 ]/ l+ k0 y
- (SETQ TSIZE (GETVAR "TEXTSIZE"))3 Q0 q; q, W; |
- (SETQ STR (RTOS TSIZE 2))4 e2 \! v+ N% n+ @4 N' d
- (SETQ PRMT (STRCAT "\nText height <" STR ">:"))' }, `/ C# R2 _, w
- (IF (= RSIZE 0)4 l" H% K3 i8 r7 m2 x& U: b
- (PROGN
' M0 ?2 t( n% A& o1 f - (INITGET 4)
. y: |4 d$ z/ O3 |0 U - (SETQ TSIZE (GETREAL PRMT))8 V8 d1 B, x2 v$ c3 O
- (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))9 P1 P' _5 s6 F5 @3 E0 Q1 `( s
- (SETVAR "TEXTSIZE" TSIZE))
5 F* b# f7 ^) ^, ^% ?# g, `! s' } - )! M1 H$ g- H( w1 i- }+ }* z. W
- )+ Y# r& x( l, Y. p) Q! U) I; d/ |
- (PRINC)' m. _9 ?& c- U% e! ^
- (SETQ TL (/ (GETVAR "TEXTSIZE") 2))( J/ }7 B: G7 b0 G) ]& Y
- (SETVAR "OSMODE" 0); w, ?" q% l ^6 ^' y! G
- (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))
4 l4 E! `0 I3 V' s( U - (SETQ NPI (/ PI 2))
* I9 h1 ~' k- @ - (SETQ PT4 (POLAR PT1 NPI (* 1 TL)))
0 R9 }0 @: g/ D2 v, w% F' ~/ E - (SETQ PT2 (POLAR PT4 PI (* 2 TL)))
" H4 i" X f* x# c - (SETQ PT3 (POLAR PT4 0 (* 2 TL)))
( y) G0 u! D$ t8 y" W - (SETQ PT5 (POLAR PT4 NPI (* 5 TL)))
- o# `6 K. V) L: `: ` - (SETQ PT6 (POLAR PT2 NPI TL))
0 w/ O( n* n( V6 Y6 j4 B - (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))3 O! G+ a' A' @1 ]' R" z) R
- (SETQ PT8 (POLAR PT6 NPI (* 1 TL))) {2 s! r# v+ T ?+ P
- (SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))
6 H# j }, t+ P: }; \ - (SETQ PT9 (POLAR PT1 pi (* 2 TL)))% `" L+ h2 F u
- (SETQ PT10 (POLAR PT1 0 (* 2 TL)))
" S+ X; B: e, n- |4 T( @2 z W - (COMMAND "COLOR" "7" "")( }( D$ G7 K0 J! W" l3 {8 n
- (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" "")
6 d5 s4 _" W$ Y - (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX))4 _2 T, d2 ]6 g" c$ q O
- (COMMAND "COLOR" "BYLAYER" "")
' o& x1 |# @/ s* f9 G% \( S- Y - (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")
& e+ q0 N0 J( A+ i - (COMMAND "COLOR" "BYLAYER" "")) g0 z4 k; s( q' n4 a) c* o
- (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")1 ^2 R6 \9 d; T( M
- (SETVAR "CLAYER" "0")
7 {0 S3 v$ {4 T/ W1 x - (command "ddedit" pause)
5 G) M H I' M7 w - (COMMAND "COLOR" "BYLAYER" "")
( |2 U. N% g) p y: c5 u% h. e- g - (SETVAR "CMDECHO" CMD)8 J, [) |- q1 j: T% \& `
- (SETVAR "CLAYER" NBC)1 U% `" Q/ [# q/ v9 l+ P5 H
- (SETVAR "OSMODE" OSM)
3 ?( X, C& a& q* ?' }' w - (PRINC)0 L, t3 v# q' w+ D7 K3 d: D
- )
4 B6 f0 G9 Y3 V6 I9 t
\. A; v) H# e/ P f; y! A- ;;; =========================== VE NET CAT CHEO (GC) =============================2 j! S5 K) g# Y; H& k) U8 w, Z% N
-
4 H1 Q4 W0 \$ J9 [7 j! T7 z: g - (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang)) B( r1 l0 `: t s% R$ C# b
- (setq x (getvar "osmode"))
7 f9 Q2 j. z& Y% |0 h0 S - (setq p1 (getpoint "First point : ")0 h8 F; j: u8 M% a% G
- p2 (getpoint p1 "Second point : "))$ j- B$ d2 g' U7 r
- (setq l (distance p1 p2))
* ?& V S8 y% f9 i: ` - (setq p11 (polar p1 (angle p2 p1) (/ l 5)), t! s) T- X+ X3 _8 _" m) X
- p12 (polar p2 (angle p1 p2) (/ l 5)))! j* j$ l. T8 o. q6 {# I
- (setq ang (angle p1 p2))7 I4 W& ~5 a! F# k
- (setq p3 (polar p1 ang (/ l 2.5))/ V1 Y- h Q7 B% L
- p4 (polar p3 (+ (/ pi 2) ang) (/ l 5)) o3 k' p F$ E8 v) m
- p5 (polar p3 ang (/ l 5))
) m! v+ v- K! r' g; h' a - p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))
2 k5 i. G9 z1 v. ~ - (setvar "osmode" 0)
: n* t1 |0 E! J- I - (command "pline" p11 p3 p4 p6 p5 p12 "")0 y' }: x! v# K" ^3 C
- (setvar "osmode" x)
8 V Z$ b. b3 |3 c - )3 P3 E# O1 j8 K3 W/ Z9 h: S
- ;----------------------------------------------------------------------------------
* H" {7 j4 B/ ]9 I - (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf62 C- I4 l' X( F% z
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
: e' {- Q' o& X' ? - (setq ps1 (getpoint "\Chon diem thu nhat: "))1 Q- K* ~/ [8 j2 n" z3 A
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))/ y% m8 t" h1 b
- (setq sb 50.0 sh 200.0 se 20.0)5 C! j% Q$ \; @# M O
- (setq ang (angle ps1 ps2))0 t( {2 i, ~& k. H$ C! R2 m- c' _- ^
- (setq pf1 (polar ps1 ang (- 0.0 se)))( A! t* A" Z! |/ w& D: h
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))0 |: \; m" ^* d
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
7 b; ]5 Z( m# A2 K8 a% i4 N) A7 B - (setq pf5 (polar pf2 ang sb))# S" e9 J6 Q+ e* M
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
, ^% m+ J i- C9 z+ v - (setq pf6 (polar ps2 ang se))
" k& l4 @. l: k* J) @+ H6 q - (setvar "OSMODE" 0)# ~% A1 \' |$ L! O
- (setvar "BLIPMODE" 0)( P: e m3 a& I. P
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")$ j) X- }' z' g
- (setvar "OSMODE" 703)
+ \& ~/ b, D& P: t5 Q - (princ) ). Z' l6 b# A% Z' K* `8 G
- ;----------------------------------------------------------------------------------
1 K9 u6 j9 A0 H2 @ t ]6 R - (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf64 j6 A, x4 n: y4 h1 Q0 `
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
7 ^. J& s* L* B6 m% g - (setq ps1 (getpoint "\Chon diem thu nhat: "))6 D% J3 G& R- I* ~% q/ J
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))4 t* l+ t0 p( {) W
- (setq sb 100.0 sh 150.0 se 20.0)
- \; e4 D% e, n7 { - (setq ang (angle ps1 ps2))
2 l0 l% |0 W2 ^2 R - (setq pf1 (polar ps1 ang (- 0.0 se)))
. d8 h( w8 Z. Y4 k6 U - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))* |. {3 C% i% l& d0 k$ c
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
6 Z. _$ c3 O5 ^0 A: l/ i3 H9 o - (setq pf5 (polar pf2 ang sb))
3 p* [+ \) O! |5 J) ^ - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))3 `& J. [ @5 ?! g9 f
- (setq pf6 (polar ps2 ang se))1 ~5 Z0 V# k- \2 e/ M, c4 a; _9 Q
- (setvar "OSMODE" 0)
9 Q% a k5 e$ W& S j - (setvar "BLIPMODE" 0)
. h) X; V1 w6 o) X6 s4 Q: ] - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")% I! e5 o1 z& w. \# t
- (setvar "OSMODE" 703)3 |( M, V; B. z1 z+ I+ y
- (princ) )
+ b2 A' n$ K7 m* N - ;----------------------------------------------------------------------------------
4 T6 I& s0 W3 m1 y. _9 i - (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6 s% S# p3 B$ g. t- h
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
/ X6 V) t0 q9 ]- i. c, d4 Q - (setq ps1 (getpoint "\Chon diem thu nhat: "))
0 d v5 A& V2 I - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
( g' D7 P% M$ t7 P/ g - (setq sb 100.0 sh 250.0 se 20.0)
' t5 b2 L5 j. w$ E9 r - (setq ang (angle ps1 ps2))4 l% ? F9 W4 _1 ?
- (setq pf1 (polar ps1 ang (- 0.0 se)))7 \7 m/ L! @% E( X+ J* s4 V
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
; ^. b$ ]. u: s" h - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
( x7 E' k% ~( ~. d - (setq pf5 (polar pf2 ang sb))7 H w8 O+ a d& H7 x
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
- _# s9 O) V, g) k# S# s! D - (setq pf6 (polar ps2 ang se))" U6 H- U4 D [ ~+ D
- (setvar "OSMODE" 0)1 B# W/ A1 I* ]4 z. d9 H% P% C
- (setvar "BLIPMODE" 0)
) g" O& ^; A1 [ - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
. ~2 [# h' m9 f9 _8 a/ ` - (setvar "OSMODE" 703). s I7 N# F. K# I- v- T
- (princ) )
2 i3 x% G U* R8 P3 H( ]. i - 0 v; g+ Y6 g2 o6 `
- ;==================================================================================# P3 e+ F# u% V) }& B" R
- (defun c:ang (/ ent pt1 pt2 ang)% k! e! f4 q; @( c
- (setq cmd (getvar "cmdecho"))
) i* S3 F+ _ ]* A: ^ \ - (setvar "cmdecho" 1)
$ Q7 Q! j5 n5 o - (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))
! L, F7 t4 X: I( Q( _ - (setq ent (entsel "\nChon duong thang:")), p0 J$ ~5 r4 _: [1 V1 n c+ o
- (if ent
7 _( \5 K+ [/ x9 x( k$ E: t% C4 D - (progn
# d( t$ t% T! N, a. @+ ?5 T - (setq ent (entget (car ent)))
3 r, L0 G) J3 P% C5 r0 r) G* t - (setq pt1 (cdr (assoc 10 ent)))
1 }- c/ z- a! u* n# }. I - (setq pt2 (cdr (assoc 11 ent)))( ]. X2 |3 [2 ]7 n' I: f( {
- (setq ang (angle pt1 pt2))0 u: k" m B/ F. o S
- (setq ang (/ (* ang 180.0) pi))
q$ T' w8 G% e& b( | - (setvar "cmdecho" 0)
% a' m& w; L: R9 ] - (command "setvar" "snapang" ang)
4 A- v. b! T3 [% f) G/ B - (princ "\nGoc cua truc toa do moi : "). N8 P. ^3 U6 j4 x( n
- (princ ang)
9 b, N k* j1 V; u H - ): E8 Q. R. \. P
- )
5 p) x% J. F+ F0 h6 B7 c - (setvar "cmdecho" cmd): |2 ^/ O: L1 b. J7 R/ L" n
- (princ)
8 U. v, E3 c9 m - )
7 d6 t6 P4 T& e! \" J4 Y - ;==================================================================================
' h2 |# Q" P; @& j4 ?( i - ;============================== KY HIEU DOI XUNG ==============================
& {+ I( u0 `7 z - ;==================================================================================' Y3 o9 P, D1 I9 a0 \; N1 {( V
# X* q. B0 v- T' |. ^- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT91 A0 m% y& p8 c( X7 Y
- SZ G45 G135 G90 G180 SS loi)( } o. x q! O- b$ |$ f$ s( s
- (defun loi (s)
7 m' h% D2 Q# B7 p - (if (= s "Function cancelled")
3 }. T, Z7 `2 b/ s9 r- V - (princ)
* K' L5 `1 t% i' S. q - (princ (strcat "Error:" s))
+ K, t4 l0 G, \3 b0 K - )% H2 S+ \6 }% z) R7 U- I8 P' g0 r
- (SETVAR "CMDECHO" CMD) p: t, c1 b- R( j& i9 k$ @4 H3 R6 L
- (SETVAR "OSMODE" OSM)
! H1 @5 d- H% [$ f' ]3 w) ^ - (SETQ *error* OLDERR)4 }* J# p9 r3 d. J
- (PRINC)
! P! h7 _8 B/ B3 H- {) Z - )# ?! X7 ^# }5 m" w
- (SETQ CMD (GETVAR "CMDECHO")), {3 Z6 C. ~+ ?
- (SETQ OSM (GETVAR "OSMODE"))
4 w7 |9 y8 ?4 r - (SETVAR "CMDECHO" 0)
0 t. U; m/ I2 g9 y2 A - (SETQ OLDERR *error*
4 v; F# f9 U6 S! J2 G1 U - *error* loi)* B$ l2 ? Y9 |" x8 N
- (SETQ SZ (GETREAL "Size <1>:"))# g- C, [/ B# q4 k
- (IF (= SZ nil) (SETQ SZ 100))$ {5 H- i( S, W( [
- (SETQ G45 (/ PI 4)) |& u4 K. j2 k4 g, y
- (SETQ G135 (* 3 (/ PI 4))): X9 J: P4 {- b" }3 ?8 I% q5 w
- (SETQ G90 (- G45 (/ PI 2)))
% @1 f/ |8 T2 t - (SETQ G180 (+ G135 (/ PI 2)))
7 b/ n- t, f; h( u - (SETQ PT1 (GETPOINT "\nDiem doi xung:"))
7 m$ J2 b" z; {% \# a - (SETVAR "OSMODE" 0)( y" F3 |, \+ C# F
- (SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))- ^* \6 \4 Z- n8 G) ~8 g
- (SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))
4 {0 J% o; ?3 A( L; N2 n - (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))
% l5 p5 h4 r G. {. n - (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))- `$ c" R y1 Y/ F- g3 E
- (SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))) p3 I( k: B5 [$ |1 S; h. R' Z' `( \
- (SETQ PT7 (POLAR PT1 G135 (* 1 SZ)))9 J8 X, u, u H3 J7 x7 [' l3 N4 k) ]
- (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))
# _* r; p0 z5 d3 l - (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))
5 Y" ^9 I: u, E- D( W9 A - (PRINC "\nGoc quay:")
& G/ ?" V( x c8 `) h- G0 x - (SETQ SS (SSADD))0 Z# ?/ ?$ [6 L9 t7 [
- (command "layer" "m" "Dim" "c" "" """"); @9 `* S) |* c& G
- (COMMAND "COLOR" "1" ""); V5 y* T- t* R* k# M
- (COMMAND "LINE" PT8 PT2 ""); a' g9 L5 y* Z4 {& ^
- (SETQ SS (SSADD (ENTLAST) SS))
, g6 i! | K, Z; |! j8 c - (COMMAND "LINE" PT9 PT5 "")
$ B" I' X4 `9 G8 s8 ], Y, e - (SETQ SS (SSADD (ENTLAST) SS))+ u% c4 p! G5 q2 c5 }( X Z
- (COMMAND "COLOR" "1" "")
! b+ X: f" L( k7 E" U% W# d0 q - (COMMAND "SOLID" PT2 PT3 PT4 "" "")
[% G# i, Z; F8 L. M0 T - (SETQ SS (SSADD (ENTLAST) SS))
F/ s8 h0 @ T8 M/ w4 {4 B3 E - (COMMAND "SOLID" PT5 PT6 PT7 "" "")
7 p4 v7 Q7 D7 Z2 p0 p1 F - (SETQ SS (SSADD (ENTLAST) SS))
7 O9 C e# e+ y9 Z( G - (COMMAND "ROTATE" SS "" PT1 PAUSE)- x4 | h3 m( V% P
- (COMMAND "COLOR" "BYLAYER" "")
8 x% C u, T" l* H! b$ l" O - (SETVAR "CMDECHO" CMD)
4 P* ~: _; w/ W2 y - (SETVAR "OSMODE" OSM)
! a# f" W* T' ?4 s+ Q/ ^ - (SETQ *error* OLDERR)2 O- a0 s' B% q8 K) D2 A1 ]7 o8 T
- (PRINC): z, Y, C/ Z/ D! n( Y S: f; p
- )0 A$ R6 C+ k1 ?, ~& a( f+ h
; Q n4 X' ]5 |- ;==================================================================================8 {8 q6 ^; O4 { _
- ;================================= KY HIEU TRUC ===============================
9 s8 R% G; Y( V: v! A - ;==================================================================================
; ?& `+ p t! m: q0 b - ! b+ }% P: M7 T
- (defun C:vetruc ()
. F/ q; x; a. t) m/ M; Z* R - (setq bk (getvar "USERR3"))& X' t9 w8 [ A+ S
- (if (= bk 0)2 }% K- J! {1 I$ s( h
- (progn
. _1 {! }7 l' e. p - (setq cont "1")) j, k: q% |% K3 S& o; R
- (setvar "USERR3" 1)6 P, T, T {1 z6 A+ N
- )
4 i5 k5 d1 ]& D5 q) Z" R' g0 y - (setq cont (rtos bk))
: Y6 P) Y3 d" B7 q( V - )
) @8 L+ s, \& L& s$ J - (setq pt1 (getpoint "\n Nhap diem dat:"))
* i; H6 A) T5 ]. y" I* h: T - (command "layer" "m" "Dim" "c" "" """")
& s! [9 {9 \+ i/ E - (command "osnap" "")3 x; {! H! O* @3 f3 K
- (COMMAND "COLOR" "7" "")7 P0 j' |/ I" \- r
- (command "circle" pt1 150 "")
; i" k& p0 Z% n# @ - (setq pt2 (polar pt1 0 150))
. v2 j# l7 `+ ?+ l3 w - (setq pt3 (polar pt1 (/ pi 1) 150))
( }% f0 H1 j1 p( |" q - (setq pt4 (polar pt1 0 300))5 q4 ^- v5 I9 `! P# _% c8 [. `; k
- (setq pt5 (polar pt1 (/ pi 1) 300))
1 f8 h! {+ R- B5 C% k, ?, ~( ? - (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150)); I% R0 J: Y1 ]
- (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))4 F( ?# F# m$ h0 V. G* U
- (setq pt8 (polar pt1 (/ pi 2) 150))4 { N1 e2 i2 p: q/ ]) r4 y
- (setq pt9 (polar pt1 (/ pi 2) 300))2 t- m5 j2 v5 }) Z
- (setq pt10 (polar pt1 0 150))9 b8 [- M; B8 }- w1 A$ l3 ^8 _
- (setq pt11 (polar pt1 (/ pi 4) 150))
1 m6 s2 d) V& i9 d0 |0 Z+ g - (COMMAND "COLOR" "BYLAYER" "")
! g5 ]( ~# p; A; @0 c4 ] - (command "line" pt2 pt4 "")8 \0 w& ^; _# n. W* Y t
- (command "line" pt6 pt7 "")
8 D9 A; n; }1 _9 x - (command "line" pt3 pt5 "")
+ Y, R; ?/ I1 }* x% T H/ v, `2 D - (command "line" pt8 pt9 ""), o# z* P: B) p; F% w6 E5 x" Z
- (setq dk (strcat "\n Size:<"cont">"))( U- e; H9 F) l8 N& D0 U
- (setq bk (getreal dk))8 m+ r! i" y% |9 B8 \$ E, W
- (if (= bk nil)
- h `2 T& y- ? - (progn
4 M- ^0 u# i2 [2 ]5 y - (setq bk (getvar "USERR3"))! L) J/ L+ C' U5 T3 Q( s, A5 I
- )- `! ?: j9 @+ v& B
- (setvar "USERR3" bk): A: q9 _. b! v
- )
a: b2 _' i: t8 p - (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")
" T! D; @5 y5 t, F8 l; j - (COMMAND "COLOR" "7" "")
2 M* P F, o0 G3 b, j7 b, w, o - (COMMAND "STYLE" "Truc" "impact" "" "" "" "" "")
! a2 @8 W) z1 x* B: v6 Q- N) R - (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "")
1 Z* l: A, H5 S# \' M5 ]6 y - (COMMAND "COLOR" "BYLAYER" "")8 u7 l: h6 ^& p9 Z6 t0 _
- )) W1 w! K0 H. k% D0 ?) }
3 L, B/ n* U+ l5 r, T- ;=====================================================================( a5 F- {! F! w3 b
- ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)
0 V4 `0 t; Q& p' M& ` - ;1 k; ?! N4 X$ F3 d1 s0 s/ F b
- ;Jeffery P Sanders- _; U( y O1 |. k) }1 m/ F# V% f
- ;1 Z5 L" d- c: ^: B! T
- (defun C:CA(/ en enlist tx newtx cnt tp asc note)) A. h$ W% c7 a: E- |
- (setvar "cmdecho" 0)5 E$ G$ q0 B0 S8 p- O2 l1 G& @* A
- (if(setq en(entsel))
1 e- ?; K5 k) h$ {7 R - (progn
" I" i! H5 I- T6 L* S! F. ]; t. v) c - (setq enlist(entget(car en))) E+ O' Q* l$ J+ Y; r. z- L" d0 y
- (if(= "TEXT"(cdr(assoc 0 enlist)))
6 t6 }9 ^7 q1 J2 J+ f: f! ] - (progn9 D. c* @' i1 G }" H
- (setq tx(cdr(assoc 1 enlist))3 M( }/ B* ]$ G# p \
- newtx "" cnt(strlen tx)
/ \$ I/ q$ a9 L- O* t - note "\n...CASE Reversed. \n "
4 U- J1 \: x {3 H8 G6 L* d, x - )7 ~; D: {# z- E3 M `
- (while (> cnt 0)
5 k+ ?. ]9 O4 [2 q# }# A+ [1 ` - (setq tp(substr tx cnt 1))
& f5 I, G( Z6 x6 D2 [ - (setq asc(ascii tp))
, e6 Y, h9 |/ u' a' B" w% s - (if (> asc 96)
4 M% _- j5 X* |: U - (setq tp(strcase tp))
: u$ {3 j1 n. c8 K. P$ | - (setq tp(strcase tp T))
% i- S% e% k1 v9 w' g - )
$ c! g+ E: z. `! h/ [ - (setq newtx(strcat tp newtx))
; F% C! [+ w* H5 |" j. Y - (setq cnt(- cnt 1))
! i! W. L/ ?" r6 Q9 Y) c - )
* p# l, U. z& G5 T) f# ? - (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))
4 b- b" U( X. d% h - (entmod enlist)4 S4 l# b/ r5 q/ R
- )
. o# o/ P0 I- ` - (setq note "\n....Text Only Please. \n ")
3 u, u9 V( s8 e - )2 d4 \5 e! r* K- F4 i. k0 p
- ). s$ `* _0 N- Y" E
- (setq note "\n....Nothing Selected. \n ")2 F% Q# v- N7 o" S& u# g) N Z
- )
! |2 ?1 J) a" r9 P! m - (setvar "cmdecho" 1)7 O/ X* t; L X4 w) x2 ]+ P, I
- (princ note)* C' _. `2 s. B! v
- (princ)) o8 ~, O6 U* I- m2 V" B
- )
+ ^1 P/ S; e$ M5 T0 i# ?* S - 7 Z: }' v6 r- `
- ;=====================================================================
( l# C1 l2 e( \6 l - ;==================== NEW TEXT STYLE UPDATE ==========================* h( o r9 i: h7 ^0 f1 ~/ V* |
- ;=====================================================================
; c$ X$ D, @3 r* D# e* E' x0 v
1 g& C& P$ X* k$ h- \- (defun c:nS (/ tdt ssdt sodt index): b5 I8 X2 v' U
- (defun ObjName (ssdt /)
v& Q @ j3 o: ~) i - (cdr (assoc '0 (entget ssdt)))
/ M5 a( ~$ h7 T' F8 @* U - )
( U6 v, C' u- ]) _( g/ |1 { - (defun MoPL (ssdt /)7 J3 ?- m! h) Q! x K+ ^ d
- (= (cdr (assoc '70 (entget ssdt))) 0)
( s5 q# j6 U' l5 @, k - )" M$ W, |3 s9 u" A7 ]! `8 N
- (defun NoiPL (ssdt /)
5 U# r8 K5 f! ]! p - (if (MoPL ssdt)
3 t6 f; d6 |5 D( Z9 i- V+ H) D - (command ".PEDIT" ssdt "J" "All" "" "X")
8 s9 _, W$ P! E1 \) V - )
; x$ a8 y, A, l! l6 I1 p+ u - )
1 |4 r8 k. ~4 o, [6 C - (defun NoiLC (ssdt /)
" p" q5 S1 {) V z - (command ".PEDIT" ssdt "Y" "J" "All" "" "X")
7 j0 _, d1 \0 R* }: m; r' D+ L - ), b% \6 |5 S6 c3 }
- (setq
& ?& l% C3 ]0 D4 X9 H - tdt (ssget)
1 I' k7 ?. a6 n - sodt (sslength tdt)
6 N, D& F! R. M* h; }6 ~. C - index 00 B6 M% U t& Y. k a& C3 L
- )
) H$ T1 R2 L- E/ P - (repeat sodt4 l4 e0 m j: J8 e1 T. E
- (setq- V7 N% Q3 s( l' J, X" Q: y0 P( s. e
- ssdt (ssname tdt index)4 M' c7 }% G$ j b/ S- G
- index (1+ index)
# g' S) e% @% u% z& r0 s - )
8 N9 \6 d9 G" ]/ |5 G- R }# h - (if (or (= (Objname ssdt) "LWPOLYLINE")* D: e E5 M) c* R W
- (= (Objname ssdt) "POLYLINE"). n' i' e' C" M3 Y2 R. N- |
- )
) q3 M( K' H6 p+ n1 `$ C" Z% p - (NoiPL ssdt). t$ x6 o& C4 G9 C
- )
9 j6 x5 G: }( e' F4 R- G4 {: b2 i - (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))4 p! k) z' P% O, f
- (NoiLC ssdt). _7 o4 A2 Z5 l M( U4 Y9 {. r
- )+ K4 L6 r+ X" y5 ?
- ): \ w- X8 z: j0 }$ o0 H' N, c
- (princ)
% J5 Z% t7 d6 g$ O0 F2 { - )
" N6 g9 e9 Y! h2 i% o! ~: \ - , D4 ~5 J1 c7 i( b
- ;=====================================================================
| i! R. [/ `& u - ;;; AREAM.LSP
9 S) m3 M# B/ q! O, [ - ;;; Function: Calculates the total area of selected objects
# H$ ]; ~5 b1 |) G3 ` - ;;; By Jimmy Bergmark* n: x2 N8 y% t4 P1 V* m
- ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved+ I! j* H1 d. T: x
- ;;; Tested on AutoCAD 20004 W: @6 e0 h( e* ^3 s
2 A C$ G0 g# `5 U+ \/ p- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)- b2 v, S4 q8 N* s
- (defun errexit (s)
+ W9 v- R" p& a( S r! w - (restore)0 }3 B( E9 D! ^1 F4 N' X
- )+ R; b9 W$ s ~
- , J l7 [! U' H7 L# k N
- (defun undox ()
+ M8 s" X6 @; a' \. G0 e - (command "._undo" "_E")% Z+ P: O4 Q9 i- r w
- (setvar "cmdecho" oldcmdecho)$ p. k& [7 H, o6 }9 W" a
- (setq *error* olderr)
$ m) p2 ~" T% m- P9 s - (princ)
4 I- W/ V) D/ `* ~/ s5 M# o% c - )* u ~0 B5 X( ?# N8 S0 U6 h
$ Q# H, i3 J0 M, O- (setq olderr *error*
$ {: N6 v2 b+ J4 p - restore undox
5 ]9 K: g* s# i - *error* errexit
; p! V. J1 \' l" p6 g, }$ j7 F - )& X9 Y% X9 f2 J' U+ Z
- (setq oldcmdecho (getvar "cmdecho"))
2 O$ f5 i' G$ w; ?, ] - (setvar "cmdecho" 0)2 R# n) n9 _7 b# f
- (command "._UNDO" "_BE")
9 ^5 U% d9 \# {2 i/ s - (if (setq ss1 (ssget '((-4 . "<OR")0 |) L8 S% \6 A ]1 O% ~
- (0 . "POLYLINE")
9 k. m- B0 R' P3 w. R - (0 . "LWPOLYLINE")8 ?' r3 D# B" E+ L# ?
- (0 . "CIRCLE")
a h1 e: w# A - (0 . "ELLIPSE")& ^" `3 A! @$ I* t0 N# J3 i
- (0 . "SPLINE")
6 @* ]& @4 N7 z$ S4 ? - (0 . "REGION")
. [5 r1 f) y8 a- s& J4 J& Y - (-4 . "OR>")
, t$ |; D- f3 h$ m1 Z4 H - )/ C: K$ z; p) a- Y7 p# u- K
- )7 @4 g6 p8 V3 ~9 z. ~$ ~; K
- )
* d U. A' w) B1 a - (progn
p& ^4 C. i' g+ [ - (setq nr 0)
7 {& E4 h- c- ^& G6 f& Z - (setq tot_area 0.0)
9 J1 b2 N& ?0 J' w$ b3 J0 t - (setq en (ssname ss1 nr))
/ D, l3 R1 N, @ - (while en5 L$ u5 x5 E7 \( Z
- (command "._area" "_O" en)8 n+ F/ f9 C7 I& {( b3 Q4 Q
- (setq tot_area (+ tot_area (getvar "area")))' r& @8 l0 D( Q# Z& w+ S
- (setq nr (1+ nr))" s& ]& E% |4 i n
- (setq en (ssname ss1 nr))
% V4 q+ ^" u) [; J8 o - ), ?" d8 O4 K' y
- (princ "\nTotal Area = ")3 p& l, S9 H4 B3 a; n
- (princ tot_area)
# `6 H6 Z4 T6 L% b - )+ r6 s5 Q1 ]8 g/ b/ t) Z I" m% H
- )
& T7 r0 i; ^ B" F3 v* M6 H - (restore)
$ x$ ?8 x5 r/ j f - )+ O# W: o/ g+ k& Z5 }& M# G
- ' v) M$ u8 S- n# ^2 @3 H
- ;=====================================================================7 o" D; A4 S6 i: x4 b
- ;;; By Jimmy Bergmark
+ P& }8 V/ p! R2 r- Q( u - ;;; Copyright (C) 2008 JTB World, All Rights Reserved2 c( ^" p! x) U6 b
- ;;;" y0 Y# W/ P0 y A) U
- ;;; Created: 2008-03-31
4 q E k2 j8 a - ;;;
/ C' V/ h- T' n8 L - ;;; Convert Attribute definitions to mtext
) J7 \7 l A* N+ W" k - ;;;
/ z3 y0 ~. s- i
, B. o A& d2 `- J- u" l0 ~7 f! |- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)
7 @' @9 D" _9 X+ h* ~ - (setq eset1 (ssget (list (cons 0 "ATTDEF")))
: |$ H7 e/ P* C) [' ~7 D - blkcnt 0
8 I& H: H1 Y. f: d* n& g: [5 \ - )5 |# `3 G+ y7 `4 Z* x( K
- F6 {7 A/ A' ]7 _
- (if eset1
& U$ Z% G. n0 V) ^( p Q$ q: z; \ - (while (<= blkcnt (- (sslength eset1) 1))
+ P. s- f' }0 m9 n; O) y - (setq en (ssname eset1 blkcnt)- f" m; d# w" q/ N& a9 S; t: u
- enlist (entget en)
( }* _) n) d$ F0 u1 I; R- H - ht (cdr (assoc 40 enlist))3 i/ l& y, u7 t. @5 J/ d4 q
- pnt (assoc 10 enlist): c4 l% p( Q* D0 `, X
- pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt)( F/ C% z. _2 C2 b* Q- Q& b
- space (cdr (assoc 67 enlist))( T7 S1 P2 d9 f* V
- )
6 |9 X- d* l7 J/ w( I - (setq vl (list/ q1 C8 I* \7 h8 V
- (cons 0 "MTEXT")
7 J ]! N6 @/ N- p0 f - (cons 100 "AcDbEntity")
* C2 c% f: E2 c - (cons 100 "AcDbMText")
! s: `# @1 @. I2 _- Z, i* q - (assoc 7 enlist)
+ t1 v' d" r$ x: h4 Q - (assoc 8 enlist)
4 m+ B# f- I; f6 F - pnt" S7 ^0 u& x( g. ^! G$ f8 q
- (assoc 40 enlist)
& A9 @2 h: H/ h/ c; K - (cond ((assoc 62 enlist))
- T! D7 r( V! B' S5 C" w. F - ((cons 62 256))
7 x3 p* d. @+ s- i - )4 r3 o2 k* R8 d
- (cons 1 (cdr (assoc 2 enlist)))
, ]' r1 }2 L0 d9 U - (if (= space nil)
- X5 V% p3 m3 R, H) n- l- W - (cons 67 0) Y9 b) Z) S% \( Q2 ]
- (cons 67 space)2 @- @) d: C9 H+ [# Q
- )3 r: M4 ^& {" _: u t: U
- )
+ q% d( a; ~% n! l7 \" J - )3 \% x: r1 ~- G3 z7 L3 p- \; I' l
- (entdel en)
, T# ~. r7 y8 w - (entmake vl). v/ Y# ?5 j- X( y) m
- (setq blkcnt (1+ blkcnt))
0 B9 v! ]5 W( |$ |" v5 G `5 I7 B - )
( C0 z& D; N0 K5 u6 x3 Z - )
6 X0 d: }8 h5 ?/ F0 M8 K - )* `" W1 t" B5 ]
+ d! B! R0 l& H7 O- ;=====================================================================
! E1 `1 u I/ L; | - 8 u* n! i$ ?" a3 U1 U
- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
3 ?- P* G; t! R: ^# O, F4 t/ z# v - ; Khoi dau cua chuong trinh
$ { N' }; t9 | - (princ "\nCopy Inteligent...\n")
$ T$ I5 x ~) f - (setq luuecho (getvar "cmdecho")
9 x6 i/ Z: ?" | - luu *error*1 n e: M/ q7 X
- *error* ketthuc) h& q$ d3 N' T! o
- cumdt (ssget)
& f9 M) a. h: n1 Y( k* J- } - dodai (sslength cumdt)
$ x' J. l; G5 t# K& p - goc (getpoint "\nSelect base point:")
2 Y' _# {9 g& h8 Y- I3 d - thoat nil
1 k4 P& R' G2 \2 P! Y - dem 0
" m% U- z: |. @/ E - textxl nil
: a- m. r" Q2 E+ ]8 o - );
0 c, M# t1 w0 K - (setvar "cmdecho" 0)3 Y ]. C. F+ U1 G5 I& f
- ; Loc ra duoc ong text de xu ly
. |0 _% v+ z. B: f" ^- I' l - (while (and (= thoat nil)
3 f1 T" B2 ]- H& R J7 s - (< dem dodai)
! ?1 p+ b& L' P' j, N! D$ t% H - ) i& E8 S& ^- O* v7 s8 D1 a
- (setq ten (ssname cumdt dem)
; [$ t; y; ?' F4 q6 E4 L - dem (1+ dem)% ], Q4 t! w! m" k: o
- doituong (entget ten)
" A; \1 ]& Q/ N }+ { - kieu (cdr (assoc 0 doituong))
: R1 W. T9 t+ s- Z( k+ a2 \ - )" ^% ]; l" D) D' i" h% F
- - K/ `. V3 x6 y. G
- (if (or (= kieu "TEXT")4 Y5 e$ G5 q+ c! Z7 J; w- [
- (= kieu "MTEXT")
; E5 h: ]8 `) s. _! d) `4 g - )+ Q( W% C0 K. e( d3 H
- (setq thoat T
: I% e6 A% j3 C* J& e4 T0 Z* ] - textxl (cdr (assoc 1 doituong))
0 {- l* v( z/ v: t9 g- Q1 z- |1 _ - )4 V5 w4 n" W5 h
- )# r3 E- a/ _- \% H
- );( X, c& m( ~' X: h6 ]2 F2 K: G3 o
- (while T
. x* e/ L$ N& c, E' p2 `, S - (setq toi (getpoint "\nSelect next point: " goc)
7 \& B4 i& [$ t7 o - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))6 U* ?8 Z4 O3 g* ^
- dem 0
8 [/ }' ^; P8 j, F7 V* m P* W- I4 r - )3 G% {; B; w! {. }2 W. v
- (while (< dem dodai)1 d% l5 U' K( k( ?' F" v0 v6 T
- (setq ten (ssname cumdt dem)
, _3 B% H4 K( n, v3 P' B; K - dem (1+ dem)
+ X6 W5 b$ R: Z9 O9 L' i - doituong (entget ten)
- G6 K$ x' \" K. L, n - kieu (cdr (assoc 0 doituong)) 4 w- p0 U4 Z2 w
- ); j6 S+ X, D; b. h5 p
- ) }1 c$ x' s/ Q7 {. l7 v" p
- (if (or (= kieu "TEXT")$ e7 C O! t' |+ a o
- (= kieu "MTEXT")
- [/ L; k: F# O% {. e$ ~- } - )- C% h$ O; d8 c. k7 [+ j
- (doitext ten)
% Z$ i% D9 E' A$ I7 H - (copy_dt ten)# _( S9 D, v) H. i: B
- ; }- L8 \& ]# H7 j
- );if
8 c9 V, M+ S8 b0 g( ~: F# r8 I) U$ e - )
0 j, w# P7 Q9 E8 P0 A* d - );while4 y( m1 X# _9 T F( J
- (ketthuc). W- E( v+ X0 H1 D
- );defun: h- d. Q3 ~1 W, I$ F+ Z V
- (princ)
9 ~# J" L* Y. e. K7 t* `! _3 N: _
/ d" C. h0 V4 y" z- ;=====================================================================& N; \! m' g- a, _* S1 j( H6 a0 A
- ;;; By Jimmy Bergmark" Z# P, a4 F# z" ~3 \+ R
- ;;; Copyright (C) 2008 JTB World, All Rights Reserved8 D- v; y: Y! P% f8 { I
- ;;;
- _$ q3 k, l# n( e: M - ;;; Created: 2008-03-318 \7 ~" B; K4 u- L/ ^
- ;;;; @- H% O+ V. v. J" o( J
- ;;; Convert Attribute definitions to text& g7 H8 {) ]% q1 [
- ;;;' t& C5 V$ Q4 u& R4 `9 \
0 p: f" X g! }" _9 l8 q- (defun c:ATT (/ eset1 blkcnt en enlist vl space)' n$ J) p8 m$ T0 P) ^( v8 |* g
- (setq eset1 (ssget (list (cons 0 "ATTDEF")))
. Z# l- r I1 n! J: |( u. M/ V/ x - blkcnt 0
* M+ F! m& c/ Z& P& ~% @ - )
7 X" K4 o& J& X. a6 ^ - " n% @! O5 {3 B: G1 P
- (if eset18 ?& C' U; h+ `# L& A7 y w. w
- (while (<= blkcnt (- (sslength eset1) 1))
/ g$ r. k2 I1 O) Q1 O, c2 n - (setq en (ssname eset1 blkcnt)
! Y- O( f5 [. r$ D3 X- y - enlist (entget en)
+ }4 Z, d# O1 O3 i* O- @7 T - space (cdr (assoc 67 enlist))% K1 [( l! v& y) O$ w; {
- )
2 k1 r" m1 \1 i$ z - (setq vl (list& c$ O1 Y% F y% Q9 m1 F% [
- (cons 0 "TEXT")7 B& J3 r0 K, B. ~
- (cons 100 "AcDbEntity")
( G/ B' R; |6 D6 g - (cons 100 "AcDbText")
6 O" W+ {; d; Z - (assoc 7 enlist)
. E; D$ u `5 j/ w$ g$ w/ h: o) R+ _ - (assoc 8 enlist)3 q% E `5 s( Z. v1 V/ p1 J
- (assoc 10 enlist)
, Y0 R& R5 v) L8 n2 q - (assoc 40 enlist)
: @/ i" s6 z' }; p5 _ - (cond ((assoc 62 enlist))2 J" L( G, N5 ], T
- ((cons 62 256))
1 x& H1 X5 @4 s* A: |) B - )
1 \' A, l( ?; I& M+ D5 }" B# w - (cons 1 (cdr (assoc 2 enlist)))
' Q ~" q- x6 o. `5 ]& \6 V - (if (= space nil)9 S5 c6 j/ S0 H( X5 U& N+ p
- (cons 67 0)
( u2 Q- P- ^" \, Q& L, s6 i4 o - (cons 67 space)/ g) w4 S' ~8 ?5 g/ I/ s
- )
( W0 H) ^/ h \$ o - ). }# L" O3 l8 V7 W& b% j# b
- )
2 V, v. ~7 Q9 K - (entdel en)
; t2 n3 n$ Z2 ]3 j9 u - (entmake vl)
+ d6 B# }3 `% m5 | - (setq blkcnt (1+ blkcnt))
9 A% q, X$ l, ^9 X - )
. E% K# z8 k2 c3 [. _1 n7 p - )# c3 S2 z9 s, b+ F( W! i
- )
; b- e4 y4 f7 z2 S' P - ;=====================================================================) k& g5 M7 ]% }% k5 w2 {
- ;============================ Doi Truc ===============================
E' e6 G; c9 R9 I - ;=====================================================================
+ R- S+ H5 w6 c, B2 h; f
$ Z# a7 X. |; U& R C* C- ;=====================================================================4 {2 {$ j1 i1 B+ V# J- M
- ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============
' d" ^ }. P: [ V0 i' U' x( p! D - ;=====================================================================
# K- [% T% K: o" e, h3 {: h - (defun c:ga1 (). w7 [/ u' A( ?+ X7 P; d" ^8 L
- (setq a (getpoint "\nChon diem: "))
0 y5 X% Q J1 N/ N: k7 n6 x9 y4 _4 o - (setq b (getpoint a"\nChon diem: "))4 S1 v7 {) X+ y; R
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
! h- `$ `9 j. O* [# s ^5 J - (command ".circle" c a)
8 r. G: M# } G# P! z8 {) i! t - (command ".line" a c ""): b" G$ S3 ?' h" h! R9 t+ c
- (command ".array" "last" "" "p" c "1" "" "")
& q' s$ B5 l* b$ o3 |+ s - (princ))& r M% u& x6 H* `6 e3 v. J
' x: s K! F5 p- (defun c:ga3 ()7 B& [1 r) m* k. \6 Y
- (setq a (getpoint "\nChon diem: "))
( h' @7 H# ^( X& h; u - (setq b (getpoint a"\nChon diem: "))2 s: o; c# N+ }1 p( Z
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
3 T1 R( p4 c$ A! Q8 _& j% T - (command ".circle" c a); ~! I( _( d% j) A( R" u! j
- (command ".line" a c "")
1 c7 X% q0 `' l; Z - (command ".array" "last" "" "p" c "3" "" "")- E8 ], }3 s" Q! b' ^
- (princ))6 f$ w9 N, T. w( j, T
# y7 e* ~0 ^. W- (defun c:ga5 ()! z7 B* E$ C2 Z; \6 @6 h5 ~, M
- (setq a (getpoint "\nChon diem: "))
?' |: S% q1 a" z1 C+ W - (setq b (getpoint a"\nChon diem: "))$ C6 F% Z; n# i; G2 U
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))) d n$ M* Z9 |! l
- (command ".circle" c a)2 \7 Z1 s0 _+ r/ H+ U9 \
- (command ".line" a c "")7 W2 P4 U Q4 n/ }8 G6 v' O' g9 d1 c
- (command ".array" "last" "" "p" c "5" "" "")
2 g" V* D3 x$ Z# T - (princ))
, V7 P( ^3 [9 b. v - 0 a5 v3 c v# z, p; G
- (defun c:ga7 ()" k @2 S3 p ?$ t3 Z' P3 W
- (setq a (getpoint "\nChon diem: "))8 [2 g( [7 e2 X! I6 j4 [
- (setq b (getpoint a"\nChon diem: "))( A( i z6 }6 _3 g6 m
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
0 t) P9 `: l3 @) \ - (command ".circle" c a)
7 T; V4 P. l; ~/ y" p8 r - (command ".line" a c "") w1 X. }, Z1 ^6 v
- (command ".array" "last" "" "p" c "7" "" "")& G& A! R# G3 \; G, v8 R# _
- (princ))7 T; ~% d( }$ t0 W9 S0 b4 j
- 3 X; r% S8 ]. y5 g: }
- (defun c:ga9 ()* i+ _ l: v: \8 F- r1 E
- (setq a (getpoint "\nChon diem: "))0 N' J a2 }! p7 `) j1 |
- (setq b (getpoint a"\nChon diem: "))8 J' r* k; |* J8 c
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))4 q. u/ w1 B: n+ z; z/ H
- (command ".circle" c a)
( q1 _0 d$ j# S - (command ".line" a c "")
7 J8 V$ c; X5 N6 V - (command ".array" "last" "" "p" c "9" "" "")
2 s g' E4 N8 ~+ J - (princ))
2 @, I( f* M8 d0 F$ r
5 G. W8 l' `+ ^% i5 d4 V3 j- (defun c:ga11 ()
$ V' Q( b" |* p O" h+ J - (setq a (getpoint "\nChon diem: ")). h1 S( \1 D$ s6 Z! M
- (setq b (getpoint a"\nChon diem: "))
) D9 I, W. ~4 ~& H2 A+ _& i( Q) i - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
) T: [( R! m6 f+ t s0 t - (command ".circle" c a)6 J0 ?/ H$ X* B4 d
- (command ".line" a c "")& ]+ J" X5 p5 T
- (command ".array" "last" "" "p" c "11" "" "")$ j/ x0 p8 W+ s+ b( m7 O
- (princ))
$ [, [' f2 _) K! L
! d8 e/ T! m: z% |0 V/ K- (defun c:ga13 ()1 S6 ^6 j% r! f. `
- (setq a (getpoint "\nChon diem: "))
, a4 r( M- D- Q v7 a$ V8 | - (setq b (getpoint a"\nChon diem: "))8 j( X- V2 B' D- q/ `
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
6 O/ T: g1 O; n) R- E6 m, f; ~& Q - (command ".circle" c a)
5 O# D+ W( M* N7 q2 k - (command ".line" a c "")
: [3 Q( V0 K* s( K( v' A - (command ".array" "last" "" "p" c "13" "" "")# j6 A- l' e4 T
- (princ))
) z: k( B# y! c8 a% i - % O! u9 ~$ @5 Q+ Q0 ~7 J& n
- (defun c:ga15 ()4 P1 G) S: {% Z3 u8 b0 h
- (setq a (getpoint "\nChon diem: "))* }4 @" [/ n7 }. Y$ a
- (setq b (getpoint a"\nChon diem: "))
& ?0 b, r. G b# q - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))* B* y" `% J3 S4 X) d+ i
- (command ".circle" c a)
# H' V _3 \( x+ z; b - (command ".line" a c "")' {2 U2 K x, [9 _2 G: V
- (command ".array" "last" "" "p" c "15" "" ""), k* ~- L: ?. N1 _% c8 }( O
- (princ))
9 K* r2 l h" b. }
& G* h X7 Q, Y, Y- (defun c:ga17 ()
9 u2 @! i+ k/ E4 m- Z3 { - (setq a (getpoint "\nChon diem: "))$ T8 ?; N- {- y. y* E, ]
- (setq b (getpoint a"\nChon diem: "))
, C* Q, ?& M* m+ x2 z. V" S) p - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
0 H! K4 s' F) ?; p8 j- P - (command ".circle" c a)
$ Q. W, h7 `" }# t - (command ".line" a c "")
{; `- ]/ `# L) A# \ - (command ".array" "last" "" "p" c "17" "" "")
1 x3 j& F; z4 y! n: R - (princ))
* \5 @4 P5 F$ g" e0 Z5 E* B - ) o% i' R5 a- s% T5 c; @' x( _" c! U. ~
- (defun c:ga19 ()# U( v0 S/ H; t$ g2 ]' i! C
- (setq a (getpoint "\nChon diem: "))8 r) C7 ^* @) X' D+ M
- (setq b (getpoint a"\nChon diem: "))4 Y( X6 \/ \) ^4 @
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
4 [2 f3 e, E! x' w - (command ".circle" c a)/ B2 M* \) K! g: V) r) K3 L. Q
- (command ".line" a c "")
! b) e% n' j9 v3 _ - (command ".array" "last" "" "p" c "19" "" "")4 m9 F0 {3 E/ w: O8 }3 o+ S; C$ p
- (princ))
# d) W1 d& u5 V8 C+ f- H
b h( U) j3 L* n7 C, ?9 T: g- ;=====================================================================
7 X3 e* `7 V: x( F& U' b4 K; G! { - ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============
9 Y0 c0 E1 ^( b- F2 C$ N/ t/ {: n - ;=====================================================================
; T: o3 O3 b) ?; [) t5 _ - (defun c:ga2 (), f! T+ Z. B* D7 O2 G$ o: @+ e
- (setq a (getpoint "\nChon diem: "))( u/ N1 n& z& a. P' k! U: D. k
- (setq b (getpoint a"\nChon diem: "))
, A% K7 W' Y% m/ N7 n& p- m! O8 U - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
! L) c; ?- ~% ?- ` - (command ".line" a c "")
- Y& i, L6 ^0 t# o. k& r - (command ".array" "last" "" "p" c "2" "" "")
0 y* Q$ j2 [; b - (command ".circle" c a)/ g0 _8 _' q8 |# }+ ^( }1 Q
- (princ))
9 r* E9 \4 h; f, Q+ v8 o' a
4 {% l' W% w; @- (defun c:ga4 ()
" @) N; Z4 q2 z8 y( J. F8 I3 j - (setq a (getpoint "\nChon diem: "))2 u' h- ^; F5 S( `) A+ M
- (setq b (getpoint a"\nChon diem: "))
5 {- S$ K8 w1 S8 h) Y) l1 U - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
* E+ O3 F, f6 p3 A$ @: w3 B - (command ".line" a c "")! _9 G4 M3 U4 y* i8 |
- (command ".array" "last" "" "p" c "4" "" "")
; G: h, w/ s( M1 q* {% b - (command ".circle" c a)# [% X b" c* u. [
- (princ)) c4 [2 u, Z: d0 S: u
- $ t) e& d7 M2 b
- (defun c:ga6 ()8 N$ y3 g5 a! ~) l) q9 y
- (setq a (getpoint "\nChon diem: "))
% C6 O# x) M8 Y) l6 A0 f - (setq b (getpoint a"\nChon diem: "))" s3 o; t3 `- r( y2 r. b
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))# h9 n+ c* h. A$ _2 ?- {7 @
- (command ".line" a c "")
* ^3 e0 t- q# @) Z9 ] l% c- Y4 B - (command ".array" "last" "" "p" c "6" "" "")
9 U2 x$ N1 v" C - (command ".circle" c a)3 V6 A& S# z% d! _6 }! O7 N
- (princ))
s/ w c P' M `9 x8 _
3 K' Q, V( ~, h% l2 j- (defun c:ga8 ()* S1 O6 X2 |. g9 Y% k# B Q+ z
- (setq a (getpoint "\nChon diem: ")); ]9 X) ~9 x+ x, q( H) s/ f" k |
- (setq b (getpoint a"\nChon diem: ")) G# T! }$ Z- P% P' W
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))3 `0 [6 c8 G$ A1 P! X
- (command ".line" a c "")
" ~ N2 L* ]1 D# t - (command ".array" "last" "" "p" c "8" "" "")% h0 X) u0 x9 J$ C$ [* N3 s
- (command ".circle" c a)% L$ Z; C5 X$ A4 P
- (princ))* r+ b- Y' g6 }2 d1 S
( |- R4 d0 W1 [1 E1 y$ `- (defun c:ga10 ()1 e* `5 m; v9 m$ n9 _/ P
- (setq a (getpoint "\nChon diem: "))- Y2 A( G# X( H) ^% q' G
- (setq b (getpoint a"\nChon diem: "))( w6 i7 G: v0 n6 i1 {/ n6 r
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
4 v! i" I7 _7 u& ? - (command ".line" a c ""): @9 ~6 s2 i( d V0 \
- (command ".array" "last" "" "p" c "10" "" "")- E1 h% c- A2 A2 l/ T) i' r% d: L
- (command ".circle" c a)
& E7 Y* \" D3 W* q) u - (princ))
1 U& Z, C; H. T9 r L* H
. U) y3 \3 t, c- (defun c:ga12 ()3 m$ n& m; v& A: q& c/ U- g5 r" ?
- (setq a (getpoint "\nChon diem: "))
" h' o) }* ?0 Y7 ]3 {( t N9 b8 w' ? - (setq b (getpoint a"\nChon diem: "))
' E+ Y, a( S7 `+ ~( ? - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))' W9 } R; _" [5 U2 m9 @* v
- (command ".line" a c "")& z! S5 o5 ^. |# W& U4 l: N
- (command ".array" "last" "" "p" c "12" "" "")
8 [' w$ a0 k7 c9 w( E8 w$ ~ - (command ".circle" c a)
& ]' F+ T: b# S- m7 Q - (princ))
& n, a1 W$ n) Y0 m3 p9 Z* P
3 v& m$ ^- s, z% V/ B' d; x- (defun c:ga14 ()
7 J) @! J# h6 a0 j! X8 V) r - (setq a (getpoint "\nChon diem: "))
" A1 c* e, H5 r; M - (setq b (getpoint a"\nChon diem: "))
' j6 I/ N0 U3 J' b0 S - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
3 M9 o1 w! ^+ M6 T7 T+ y9 o( n - (command ".line" a c "")3 ~4 N7 R6 d y/ E; G
- (command ".array" "last" "" "p" c "14" "" "")* }" L7 E( r! E
- (command ".circle" c a)
9 R" z# z( V9 Q( K7 D - (princ))3 `' W, z/ C5 O
( |1 N H6 \" p6 Y4 }" j: n. ^5 {& @- (defun c:ga16 ()
* T! S4 M7 N: g# V* m& g - (setq a (getpoint "\nChon diem: "))* o% G% i: `# M. }
- (setq b (getpoint a"\nChon diem: "))
) C: J. y: s+ g8 [6 ? - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
% V- W9 a5 n& U- c - (command ".line" a c "")7 _; J6 ?- \/ E8 }( I
- (command ".array" "last" "" "p" c "16" "" "")
4 D! }1 @( J O3 d - (command ".circle" c a)" D/ p! b* l$ @5 n
- (princ))3 p8 O+ t9 `( ?0 p* a- k
3 m+ b( T& W, X7 w- (defun c:ga18 ()5 @- q( X$ f/ x# r6 g/ v
- (setq a (getpoint "\nChon diem: "))" S6 c$ H( u. T% y
- (setq b (getpoint a"\nChon diem: "))
6 a& w0 R5 b: ?; Q - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))% d' ~8 T" L: o5 h
- (command ".line" a c "")
( u m) O! U$ P - (command ".array" "last" "" "p" c "18" "" "")
, m; c; M, U2 ?! k3 K2 m - (command ".circle" c a)- p6 R0 L; v1 p1 Z& E; T
- (princ))- C7 {& s5 b- Q. ~+ d
1 t5 ?2 d$ L U. X6 b" A! F. b- (defun c:ga20 ()
* k: m2 G. ?3 V B4 J7 z - (setq a (getpoint "\nChon diem: "))$ c- n3 H' R- m1 ~& T! Z
- (setq b (getpoint a"\nChon diem: "))
: L& [% Q- k w f4 }% ?4 d) } - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))- U: ?3 `8 d. v5 w4 Y% k
- (command ".line" a c "") c) Y2 }5 K8 B; v1 L8 {3 A! g) w( H
- (command ".array" "last" "" "p" c "20" "" "")9 f7 B& v/ j4 \
- (command ".circle" c a)+ O4 f5 t2 T7 b; T: p1 S
- (princ))
9 w9 g6 t% P" `: y9 L2 Y7 g
) L* V, [/ l& s" y# e4 R* x- ;=====================================================================
* ^1 r5 z! N e- y - ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============( E/ H/ J- ^3 V7 {! o) z' e
- ;========================== 06-11-2016 ~ 18h00 =======================- W u5 T$ t# _
- ;=====================================================================
S6 b* p6 k5 t' P. T' t3 T/ i! D - (defun c:ga ()0 o2 e' Z9 N- b, Q& B, c
- (setq a (getpoint "\nChon diem: "))5 `' j* _# B, d/ |: c# H% r# v/ H; k9 K2 J
- (setq b (getpoint a"\nChon diem: "))9 _& ^( r3 h% u
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))& y# n4 W; Z0 Y! ~) ]! ~- Z$ p
- (command ".circle" c a)+ q( `& [$ j8 k* n2 E% ]! ~
- (command ".line" a c "")
" M. W7 @1 M- Y% T* T+ `+ x Y - (command ".array" "last" "" "p" c "NUM" "" "")
7 S) v W* [% z4 n& { - (princ))1 H/ C$ B: }6 A; P# J: N
( _! M3 @4 \. n' ^) p' G- ;=====================================================================/ F9 Q: a4 M% i0 M; W' M
- ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF ============= O% c2 E) i0 F7 D. ?# g7 f
- ;========================== 06-11-2016 ~ 18h40 =======================
) O- G9 F5 @( v2 o - ;=====================================================================
0 H$ Q& R4 H3 A- z) f4 { - & u3 X6 ]* }7 n
- (defun c:hoathi ()
/ `5 q1 p3 j- \& \; l. H; g" Q! v - (setq a (getpoint "\nChon diem: "))/ z; [ [( s3 g2 k. B
- (setq b (getpoint a"\nChon diem: "))
- y' `/ A) d- y u - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))% ?; ^6 t" w* j" R. p) P# B
- (command ".line" a c "")( u# o( E3 C+ h/ c4 q2 C
- (command ".array" "last" "" "p" c "NUM" "" "")
# C2 _, Z% s- n, ] - (princ))
2 C- E2 ^( j4 Q! A
3 ^0 T' l! w( Q u8 L! }! Q0 H" X- ;===================================================================== X: ~* u3 u6 l% J5 P
- ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============
/ S0 C1 ?. A) W: d V& h- {* @ - ;========================== 03-11-2024 ~ 19h33 =======================
& y" C' V3 w8 _# U5 n - ;=====================================================================
! _; f% `2 r4 y# o1 ? - : K/ A' Q! P% l$ M; o
- (defun c:cung (), u3 x3 B8 d* a8 B$ P, b5 I
- (setq a (getpoint "\nChon diem: "))
8 n4 W2 h2 T* b# T6 {3 L3 F - (setq b (getpoint a"\nChon diem: "))
0 r# w8 i# `; g: ^ - (setq c (getpoint a"\nChon diem: "))
4 e7 m! y3 C4 b" {: A& w+ x - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))6 \2 {/ T, E) W
- (command ".arc" a b c "")
' Z% P ] q; h+ X! d. {1 z - (command ".array" "last" "" "p" c "NUM" "" "")3 x9 A" H. L4 ?9 E) G; S7 @
- (princ))' W$ H9 b- i8 d. a
- 7 K" @8 {2 K/ Z+ y- t6 [
- ;=====================================================================% `+ [3 W4 I# ?4 L1 Q: E( ~( g
- ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============5 \% {; E7 p, o* P; m2 o
- ;========================== 03-11-2024 ~ 20h02 =======================* t' x9 h, o4 X% o4 x! H, y
- ;=====================================================================6 [( t% e5 a: P; X9 R
* I# w' |' ]7 u7 W- (defun c:hecloic ()( ~# m* C) Q* v5 _: [' F
- (setq a (getpoint "\nChon diem: "))
% ~8 x: ]3 K0 a/ s: b' } - (setq b (getpoint a"\nChon diem: multi "))
! O$ n ]7 u6 a8 r& z, M3 ` - (setq c (getpoint a"\nChon diem: "))(princ)
; m* @: X- r. O% c% s - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
9 h, P' d, b: q! M$ U U - (command ".arc" a b c "")8 ^* t- {; b$ |; M, r2 ]3 V0 v6 r
- (command ".array" "last" "" "p" c "NUM" "" "")0 ?" |' C8 p) K/ N$ C
- (princ))
$ S# Q8 g( `% J- z3 t7 X
3 T- ]5 q9 P9 B+ a& p. V' u% W- ;=====================================================================
: l3 T2 C' s% l( @1 `- w - ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============
8 h0 d2 ^- U4 V( I - ;========================== 03-11-2024 ~ 19h38 =======================9 G4 E. I! S3 ?; a' D
- ;=====================================================================- e. {! w8 }7 g5 M' P
+ Z& `( D! b- F- (defun c:gay ()1 Q1 ^ B, j; m: ]: O
- (setq a (getpoint "\nChon diem: "))9 o( O3 O( x6 Q- o8 G
- (setq b (getpoint a"\nChon diem: "))
. L" n/ N- p2 z4 p( |/ b - (setq c (getpoint a"\nChon diem: "))(princ)% a! L: D' R% ~$ d7 [7 v: M) W
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))5 _3 H+ i6 W1 J% K+ Q+ Y
- (command ".pline" a b c "")
( B4 c' |/ V7 t/ `" L4 Z* V - (command ".array" "last" "" "p" c "NUM" "" "")
, |& w+ Z9 j |4 d' ?) Z - (princ))
2 u! t( u. v' L" d; K2 F4 {- u
5 {0 M+ w6 n0 p8 d& G- ;=====================================================================, Z. s/ V% K+ c
- ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============
! O- f6 A/ ^% t0 ~ - ;========================== 03-11-2024 ~ 20h02 =======================
0 W6 V5 O; T: P1 G% r - ;=====================================================================
* P0 u1 X7 x6 a4 `( H5 o$ ?! g - h( y4 ?2 c- j7 e& x0 ?( P
- (defun c:hecloit () z* H2 ?9 e2 k
- (setq a (getpoint "\nChon diem: "))7 E! C) K _4 f# Q' x2 U5 n
- (setq b (getpoint a"\nChon diem: multi "))4 H( T1 `( x9 k+ G7 k
- (setq c (getpoint a"\nChon diem: "))(princ); D: }+ |4 u% E$ g2 Y5 p7 B1 ]
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))7 X4 n5 E0 h- n' y6 h/ E4 K
- (command ".pline" a b c "")
1 F1 E0 i* R# R& Z: p5 P2 _4 r+ o - (command ".array" "last" "" "p" c "NUM" "" "")2 a9 _, n; O2 m8 ^7 G( H
- (princ))" J( c; W' u7 d; B% g/ b+ ?
/ P+ x0 M. k2 x- , ~4 W0 y# ~' u, ^
- ;;; ============================ Merge Hatch =============================! [% ~8 n- b4 T% a# |
/ B/ T/ J. j' K- (defun c:mh (/ ss entht sl i dt dtht)
5 N! _" n8 G2 `/ b
. u0 d0 o4 W) d- (princ "\nMerge Hatch - free lisp from CADViet.com")- R4 b' q( ~6 U' K; H, m; c
- 2 o# _% t% f7 \' h3 i4 s8 m% q
- (setq
& ?/ A! r7 h; A1 i$ C7 [7 m - ss (ssget '((0 . "HATCH")))7 V. H! k( |1 C" `9 u3 [
- sl (if ss1 M+ q7 q0 \5 P4 v- C, o
- (sslength ss)
5 e$ \. H* H! g0 U% @. `& h9 e3 m - 0
+ E8 T5 v% F. a' T! ~! q - )
6 @3 x+ j# `$ H6 _0 j* {: [ - i 06 C; O* }; j( n, G" C$ V! P) [- X! Y. a u
- l 0
5 o9 Y8 l0 Q3 _ H5 H* V" q5 p - )+ G! Z# h- z: O& @/ L) Y, G k
- 0 D7 c% f9 N) y5 D
- (repeat sl7 B) c4 _" ?5 ~
- (setq( T$ w% Q9 {+ k' F
- entht (ssname ss i); Y2 B, V' D; } W8 P, k5 Y5 V+ q
- dtht (getbdata entht)7 h4 j' F$ z6 g4 t; {+ E" C
- dt (append dt dtht)
2 H* l* m8 C1 I8 {* {5 ` - l (+ l (cdr (assoc 91 (entget entht))))
; ~# _) R2 S7 U! T: J - i (1+ i)
! y: ?7 g# Y w! G" }: W+ j - )' r2 p$ T& ?! o0 L, v
- )/ S% A# a' G, A9 l+ q
- ' m- ^6 |% l' c. u; Z
- (setq ent (ssname ss 0)
2 n0 X: c, N! Z - ss (ssdel ent ss)
0 Q- R/ }( N) X6 f - tt (entget ent). A! o* B' n3 J
- duoi (member (assoc 75 tt) tt)* _& [ q6 X# r4 K# v) j M2 e# x
- dau (reverse (member (assoc 91 tt) (reverse tt)))
! x5 w6 K3 V5 }& J/ B( g# s5 U - tt (append dau dt duoi)
0 d3 M0 A/ `! E0 Y' S; I - tt (subst (cons 91 l) (assoc 91 tt) tt)- ]' H5 |& e; a) O. N9 D
- )
3 [) O/ W" X6 c3 t- J8 e - (entmod tt)
. P1 c% U( r+ G4 E A
+ g$ [' S+ w7 I8 e; m- (command ".erase" ss "")7 w+ |$ d" i) G+ r! m- V' `1 l
- (princ)2 I$ z+ s6 z% N8 Q
- )8 a8 i5 b [! M% T
( U' [4 b4 i& @) m' T- (defun getbdata (ent)! V7 W5 ?3 g) `7 ?# j! b) g' n7 R
- (setq tt (entget ent)
2 b" I+ p" {- l) c/ z& P! b - tt (cdr (member (assoc 75 tt) (reverse tt)))2 e0 n( o1 r$ b1 {0 A: X7 _6 b
- tt (cdr (member (assoc 91 tt) (reverse tt)))
6 T1 N9 n8 l! Z9 t - )5 L( l! n" E: j( e" F, |
- )
1 [* u0 b% Z2 T
+ b; K* W6 @. `7 D7 i# @
/ I \/ v2 k6 v$ C' }- (princ)
5 K" V% C! k+ m; `1 i - * D6 ]- a; ?/ G0 c4 I/ e A
- ;;; =========================== CAC LENH LAYER ==============================
- \2 J2 u* _& W! Z3 Q - ;;; =========================== Layer hien hanh =============================" J. |9 n% j7 D* U- a- |1 U
- 9 p, W$ l9 o1 e- p4 [+ l
- (defun layset (/ LAY) (setvar "cmdecho" 0)
) x0 y( [7 C# Q6 S' d1 t: z- h - (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : ")); U( Z6 @# r- r' o g4 w0 T
- (if LAY (progn
6 y! Y& _8 f( o i - (setq LAY (cdr (assoc 8 (entget (car LAY)))))
: B" N/ Y4 F% } - (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )
$ |/ h% o9 f' M( K, y - (progn4 A, Y" @! z' L4 M4 }: P( L
- (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop)) & @! k6 a m# w% \, K) Q' w/ b( }
- (progn! w o1 x( ~1 u8 g* ~* e5 i
- (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )
9 c$ e1 f$ p: F4 T$ R - (defun c:LLL () (layset))(defun c:LAYSET () (layset)) A7 x P0 X7 P/ r# |/ n
7 n- A0 @4 Q/ @) ~3 d- ;;; ================== Cap nhat doi tuong vao layer hien hanh ==================
1 }' }; S5 u0 n. `2 @2 |# i
) @6 @9 w% j' R& a! f6 n- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)3 p3 W. a8 R5 b P5 Q$ C5 ]
- (if (not (setq SS (ssget "i")))9 P9 G# ^! @( Q, i$ N9 a
- (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")
/ P4 |* k) `. j, V* w2 q' D/ C - (setq SS (ssget)) ) )
" E; Q! D/ _ R# D) `/ l; B - (if SS (progn, \3 C6 P, \* H0 L
- (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "") + u4 C1 L. p; C, ]; B6 m3 X Q' a! _
- (if (> (getvar "cmdactive") 0) ' ]. W+ ]9 _/ k% w
- (progn
1 w& @# R2 ~: R# \: g# h3 X - (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )
' h W1 q! r% }; | - (setq SS nil) ) (if (> CNT 0) h6 P5 E' [, W" R5 Q
- (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )1 C& g# C: P6 V; B+ V+ {' [
- (if SS (progn
3 `% D! Y" A- ]% O - (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")
0 q& D2 J7 h" G' O" ~ F - (if (= (sslength SS) 1)
! y: [% E4 A% B3 I - (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))
% {5 p2 b" z% o5 k' X" p - (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end2 y5 Z! G5 { c9 J+ Q0 m
- (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur))$ i5 s/ X4 F' u& `) d# d, a# F
- ' v7 H; j5 N2 `+ o* K
- ;;; =========================== Layer Iso ===================================2 j, q7 a3 r0 |; u
- & _6 C: k7 r+ e; \: p! D
- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)
) Y7 a0 N* ?: J- I6 z - (if (not (setq SS (ssget "i"))) (progn
3 {7 N- o4 z: f3 h( U9 T8 z/ b6 s - (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ")
+ Q+ y* y9 a2 a% ^' l2 O4 \" p4 ?$ e - (setq SS (ssget)) ) )
z' R: A8 |0 y) Q3 _- ?& t7 \ - (if SS (progn (setq CNT 0)
% H( S& S/ y& n9 N; g& v - (while (setq LAY (ssname SS CNT)): W3 h) }1 | H+ W4 o
- (setq LAY (cdr (assoc 8 (entget LAY)))) M7 y4 y% Y0 U2 ^. f
- (if (not (member LAY LAYLST))
5 }8 E( p9 E" T4 { - (setq LAYLST (cons LAY LAYLST)) )
1 z8 D' E4 b. _: r- d! I8 K9 F - (setq CNT (1+ CNT)) )8 B- w( \! `( i
- (if (member (getvar "CLAYER") LAYLST)( x0 E/ {, C* _0 }9 ~
- (setq LAY (getvar "CLAYER")); \. |# s2 k( Z) O+ B& d+ M0 P5 D
- (setvar "CLAYER" (setq LAY (last LAYLST))) )
% {8 K& ^, N- k/ [4 v! t - (command "_.LAYER" "_OFF" "*" "_Y")
+ L; d' ~/ D4 y2 [9 B' b - (foreach VAL LAYLST (command "_ON" VAL))% A% ^- i: j' Z0 V% I
- (command "") (if (= (length LAYLST) 1)
6 u1 |& {: J1 f9 n. h$ G - (prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))0 O) h1 L, }/ t' m1 t
- (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "
$ q8 d1 A/ r1 g( {* ]# |! D - "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )* G8 @ a% D+ d* H9 J
- (defun c:LAYISO () (layiso)) (defun c:LI () (layiso))1 n9 m' [6 M& t% @: h# u* I& j! E
- / K3 d7 C, }! ~" f) D l
- ;;; ========================= Layer Match ==================================
3 F8 q- m) G d) h- I1 v* Z7 K
1 T2 {! {" f( r' v- (Defun LAYMCH (/ SS CNT LOOP LAY ANS)
; n" g& F; Z4 p. |! h/ | - (setvar "cmdecho" 0)& E+ U6 y7 p& h2 E$ T+ X
- (if (not (setq SS (ssget "i"))) (progn
+ o$ h! T0 H8 i; G3 a% m - (prompt "\nChon doi tuong muon thay doi Layer : ")4 P* c. e- m8 f1 u5 l; \7 O/ \
- (setq SS (ssget)) ) )
2 ]# h# } M9 L- c( q+ {4 z$ f - (if SS (progn
) T. j3 {, J7 i7 Y - (setq CNT (sslength SS))% M9 U! ~1 i7 O, @2 H& A8 |/ g
- (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "") " ~& H: w @* i. i) T/ k7 r. w
- (if (> (getvar "cmdactive") 0) (progn# s( ~2 U: s ^1 e3 ?2 [
- (command "0,0" "0,0") (setq SS (ssget "p")3 o; L: q! |6 Y9 K& u) z
- CNT (- CNT (sslength SS)) ) )' W; `7 b# ^% K6 |- F+ e: d
- (setq SS nil) ) (if (> CNT 0) , w" Q5 V3 [+ S1 j! c: B1 }
- (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) )8 @0 w) i# E/ D5 E2 j9 G
- (if SS (progn3 u3 k+ \% _3 [: Z, B% e
- (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )+ G0 Y1 E5 g4 _6 c% K
- (while LOOP (cond% P+ K! A# y$ X& R4 v$ R; W( y
- ((not LAY)- I$ W9 U5 U3 [& {! P+ k% q R+ p
- (prompt "\nKhong chon doi tuong.")
d$ k5 u# Q& K! S8 g - (prompt "\nSu dung layer hien hanh? <Y> ")7 [$ ~8 W2 V" X
- (setq ANS (strcase (getstring))): I! G `+ v$ x7 P3 M D. Q# V1 ^
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))( ~3 J1 n0 o- m$ Q- [( J+ N# [
- (setq LAY (getvar "clayer") LOOP nil ) ) )
' `7 U6 k0 u1 _8 K# Z3 ?7 \ - ((listp LAY) (setq LOOP nil) )6 f7 U" w$ k6 L% G
- ((= LAY "Ten")
^; J- `0 m5 @4 J7 U - (setq LAY (getstring "\n>Nhap ten layer: "))1 [' Z ~8 x% r! H+ l+ r
- (cond
, r8 v" f; {7 I3 @* S8 H - ((tblsearch "LAYER" LAY) (setq LOOP nil) )
8 }* R2 x, @. A4 m. S0 f+ J - ((/= LAY "")
% A9 g! V# p; G- v' V; O - (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")( n- `3 W* V1 J9 n
- (setq ANS (strcase (getstring)))
' @6 q/ y+ y/ k - (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
8 B- {; m! l& P0 ^ - (progn
- R9 _% Q* [6 b+ Q" J4 d% ` - (command "_.LAYER" "NEW" LAY "")3 l) }% G) s6 I6 a3 L$ N% s) d
- (setq LOOP nil) )
- \2 Q/ N( s C0 U P; J6 v - (prompt "\nLoi ten layer.") ) ) ) ) )
. B$ O, V+ o# w- Q3 q8 R - (if LOOP (progn (initget "Ten")
0 t+ u( C' t9 s+ R! r& e" _ - (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP
: u* ?+ C) C1 A; X0 w, Y' [* @, v' i - (if (listp LAY)% ?4 F; g% W+ k- U
- (setq LAY (cdr (assoc 8 (entget (car LAY))))) )
9 I y& ? a) \( ]1 t - (command "_.chprop" SS "" "_la" LAY "")" a% l' l1 g: f1 X
- (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )# ^& j2 x4 N# K
- (if (= LAY (getvar "clayer"))2 C: b- {5 l" E; J( p9 G
- (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )
% Y% x& @- o: j6 H6 d3 I( J - (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch))4 A& s+ e& B& N) d' R
( F9 `2 J! `% V& L8 D ]; `' k8 i- ;;; ============================ Layer OFF =================================$ B9 @& x" F: R6 N' V3 A
( v7 ^' o" ]6 V. h/ z, h- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE)
5 l1 R" }. l: W- u; l - (SETQ SSET (SSGET))
+ S4 [9 A/ e4 i$ E. ^: P - (IF (/= NIL SSET) 4 C4 A4 I" z. z3 p) Q7 O
- (PROGN
0 ^" s4 n& ~0 M3 O9 ` - (SETQ SSL (SSLENGTH SSET))
! h0 Q) W! }7 ? o4 ? - (SETQ LAY "")
1 X1 ]" V8 H! g' `' S. C7 b1 A - (SETQ I 0)' O9 t9 X) Y$ S* M8 j
- (SETQ MODE 0)
2 ~4 y; ^/ }* ~) D - (WHILE (< I SSL)
0 A& T1 O% E# H+ @+ V- O" k/ d - (SETQ ENT (ENTGET (SSNAME SSET I)))
- F7 }$ j9 S5 b; D - (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
- T2 |8 l8 J4 V9 q4 w, M5 j - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))) _) ~, U! ?+ ^5 d5 w; |' y
- (SETQ I (+ I 1))
0 `# v8 `; k4 U, H2 P - )" D3 O' L4 E. i; ], a, f
- (COMMAND "LAYER" "OFF" LAY "")
. p. o2 q* u$ z9 Z) a' z* W - (IF (= MODE 1) (COMMAND "") ), g# c8 W; f2 X7 W1 k3 r
- )
. D, L3 G6 K8 a8 u - )
# Z8 u# B5 {: Z& Y - (PRINC)) N' q: p& b; h0 I
- )& i5 Q- C1 _, L# S2 D$ w4 J% u5 H
- ' w4 j3 E5 w1 B" ]
- ;;; ================================ Layer ON ==============================
' }; T9 @( y7 R A% T: [ - 6 D# X, ?9 G) A; n( k! S8 ^
- (Defun LAYON () (setvar "cmdecho" 0): s% o% z+ J1 D" q
- (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")
8 m. s2 c( L" C" s6 r9 @' v - (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))
8 l E8 Q' w, U1 P" z$ @$ Y - (defun c:LAYON () (layon)) (defun c:LOO () (layon))
8 ?" m- q8 T! ^$ h, d) P - (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))
6 w6 G, S4 [9 Y! s. d6 T" v
5 S6 ?' r* P* Z2 }2 o- ;;; ============================== Layer Freeze =========================== T. j+ x4 O9 e& L7 n
0 F, ?* t4 i7 m: t- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0)
8 v& f a2 T! _$ _9 k9 ^9 R - (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))- K! d2 [: j( L- [: }
- (IF (/= NIL SSET) (PROGN$ V6 n. y6 w4 z6 @9 b" @/ B, v
- (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0)
: t2 R$ E/ L. H( W+ R- j - (WHILE (< I SSL)
! w6 s% b3 W) v" d2 g9 [8 B- R) G - (SETQ ENT (ENTGET (SSNAME SSET I)))
5 b- `% ~7 }1 c0 l, a - (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
7 n6 |1 e' p; w, k8 m7 S4 Q - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))8 u# d4 l* N6 L, J8 m
- (COMMAND "LAYER" "FREEZE" LAY "")
9 ?8 a1 G/ K5 |9 {- |8 p* L9 ~ - (IF (= MODE 1) (COMMAND ""))))
- E$ d3 B/ ?' }/ ]/ P - (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)/ c9 T; ]' Y% r
- (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )
( a* L) m6 m( k h$ b, K - (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz))* a. e+ W' w/ t4 z$ S8 F; g2 \
- 3 r& S2 | J! K3 x7 m6 A% Q, h
- ;;; ============================== Layer Thaw ===============================
4 {+ W# x: w% P: w- s
, X' Y5 L& z; ?. Y6 @0 L; T- (Defun LAYTHW ()
0 p- R+ d* J1 K( f - (setvar "cmdecho" 0)
' b, P, [9 v, H ?, T2 X4 E - (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")
, a2 [9 r! C' E% z - (Command "_.LAYER" "_THAW" LAY "")
' N% K4 e3 ?" d1 L& w' c# w - (princ (strcat "\n Layer : " LAY " da THAW."))
/ l2 q8 _( ]' w; r1 D$ `6 | - (princ) )+ J* I% R0 m1 d1 v
- (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))
5 R6 M( K- Q/ s; l4 b& i$ j - ) V1 I6 w1 o% w8 m. d# K4 e, g
- ;;; ============================== Layer Lock ==============================' o. t+ e( R# f+ \
8 u: I* D4 N! k. Y* g- (Defun LAYLCK (/ LAY)
8 S" t4 G. C) R9 O* r3 t/ x* P) E( y/ E - (setvar "cmdecho" 0). g$ g$ w' O2 e* ~4 E" g7 `
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))' N. s% s7 |& {+ X z4 m+ i" W1 u/ g1 u
- (if LAY( _$ H. z h9 m
- (progn# s4 s2 K% h. K& S8 k& @: j7 g
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))# D7 @0 k, M) x
- (Command "_.LAYER" "_LOCK" LAY "")
/ n k5 L: v% F - (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )
7 R6 X W F2 [. C, } - (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))
! Q+ {$ Y5 d- i, C
# G* Y5 o+ A6 e6 K) D1 @- ;;; ============================== Layer UnLock ==============================
6 ? B, \5 I% q7 n# a
( }* Z: L5 ?1 a/ y. E- (Defun LAYULK (/ LAY)
1 Z4 U8 o0 G: U - (setvar "cmdecho" 0)
( [* q% A M1 `3 V - (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))
0 c7 w2 @% O5 r% ?% K1 `$ d - (if LAY
g8 W0 o+ x5 d - (progn
7 i4 M+ {0 b6 v) L1 {$ n1 p6 m - (setq LAY (cdr (assoc 8 (entget (car LAY)))))
' m( l6 l; w2 f - (Command "_.LAYER" "_UNLOCK" LAY "")
$ ^- V0 Q' C A) V1 o- ^: d8 A - (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )6 i* h2 r% a- r* [' h
- (defun c:LAYULK () (layulk)) (defun c:LU () (layulk))
# w- k! p# q5 P1 z4 P3 H - 3 R) N2 _( B( @2 T; ]7 g3 d
- ;;;===================== Delete all objects of Layer ========================
& C9 O" Y5 d! T0 L - * [5 k5 v* H+ D7 ^! {
- (defun DELAYER (/ ocmd L S)
# @2 }8 q( `, |" \ - (setq ocmd (getvar "CMDECHO"))8 B- i# O- `8 G' [# j/ t' Z
- (setvar "CMDECHO" 0)! Z5 l& ^9 }9 E/ N
- (setq L (strcase (getstring "\nLayer(s) to delete: ")))! a9 G& D- p V. `5 u8 ]. U
- (setq S (ssget "X" (list (cons 8 L)))) , o4 T. t& T, s$ m4 V! U9 V3 c
- (if S " @+ ^2 |' m3 u% `; L) k5 {
- (command "ERASE" S "")
2 {! s" m2 i, k4 q - (princ "Layer empty or not a valid layer name.") )
% N1 _$ A, }) o# z - (setq S nil)
# ?5 y1 d( j3 o - (setvar "CMDECHO" ocmd)
: ~' z; g7 S7 B% |5 W _' }' i% p } - (princ) )
2 o5 r0 u4 l3 i! m: h - (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))( b; }5 S( R, P! a) f3 E- g" b
- D$ S( `1 u0 G$ c( s. C- ;;; ========================= HET CAC LENH LAYER ===========================
: x9 _- U1 |6 V( G$ B* |
. h" |6 {6 R2 Y" {- ;;;====================== EXTEND NHIEU DOI TUONG ===========================) ?( E+ R0 S7 S* g4 W+ N
- % [# M& o( r1 t' t
- (Defun C:EET ()
& \* ?8 D" ?2 X - (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)
. q: b# N6 k1 |+ c! W - (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget)): M. J: u2 | W+ J/ t# R
- (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))4 |4 D6 ]' s8 ]0 w. {2 G8 E3 {
- (Setq I -1); ?7 N/ d% b6 W, B8 S( ~& @
- (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG "")
" v3 L0 Q1 j6 c; U - (Repeat LEN
4 q6 A% ?7 i+ t) F - (Setq I (1+ I)), c$ ?( `9 @, M0 }9 t& D9 M& y7 R
- (Command (List(SSname SS I) SIDE)) ) (Command "")5 e2 L& E. a3 D; L, A" i4 u
- (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )
% Z6 R/ O7 u, S$ I. V( w; M* w) V
$ n# J- V! h- o) M$ s( ?+ Y- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============
9 Q4 `8 ? m f" p2 [5 T
. {' d; q* e4 c, n7 |8 }- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)
( U' F% O; e. A( }2 Z8 z$ C - (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND ")). `% K1 h" z1 x# e! w
- (setvar "osmode" os)
- F' l* \& Z' ?5 l/ F' U - (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))
' b( R, ]' d1 `! ~ - (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))
: c5 i% c: D! { ~2 K h% P, l
9 p; l; K3 Y) i5 d3 N- ;; ================ Change width of polylines =========================
' r& U8 b% m- T: v7 C
+ M; {! w: _8 `- (DEFUN wp (/ a b sophantu sodem list1 ha:wid)7 P! l( O* E& d9 q( w- y! y' j
- (PRINC "\n Chon doi tuong can thay doi do day (Width) !")
- e" D4 Z, R3 M) L8 ^ - (setq b (ssget)) . k$ }9 t# H/ @/ `' T! N& N
- (setq sophantu (sslength b)) / G+ H0 r/ ~5 b$ P
- (if (null ha:wid) (setq ha:wid (getvar "tracewid")))2 I# o9 S5 X: Z
- (princ "\nDo rong polyline <")
( i, ~+ d; M" O/ ^ - (princ ha:wid)5 k) ]# @2 N1 u- |
- (princ ">: ")8 i0 g7 m* Z3 o A
- (initget 4)$ A4 s8 d5 C/ d* \6 ^3 w. H9 z1 q
- (setq ha:wid (getdist))
$ j( ^) _) X0 V9 Q! q9 ? - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))1 m6 d2 d, T! O7 Q% S5 ^
- (setvar "tracewid" ha:wid)
) Y6 L/ `4 |3 h - (setvar "cmdecho" 0)
, |; d: C3 ^, P0 U8 B# ^ - (setq sodem 0)
3 B3 H; N6 [% H( J. e - (repeat sophantu
1 z5 m( p2 A3 J5 f, r+ t1 Y - (setq a (ssname b sodem))) A* x+ _" z, m) P3 u
- (setq list1 (assoc 0 (entget a)))
# T: k/ @& f' {. } - (cond
4 {" \$ t8 x, v6 r6 R+ b - ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))
7 k" l. P5 k% K5 N t1 B' t - (PROGN (command "_Pedit" a "" "w" ha:wid "")) )
$ B: I8 H; }7 p r - (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))
* Y/ Y) n) j3 O$ ~! K2 u0 M& R - (defun c:wp () (wp)) (defun c:pw () (wp))9 q& l4 m* X9 @3 D" f+ O+ P
- 3 O( o- B6 f5 N2 u# r! c
- ;; ================ Change radius of circles ==========================
& ^: o0 A7 J0 W1 Y/ c0 L8 B5 i. u - 6 o: Q$ W9 M S, z6 ?" Y3 R6 T) p# W
- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET)): R0 r; _7 Z) F3 J
- (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : "))+ A5 i$ g% S, n7 A8 `6 e
- (IF (/= RD NIL) (PROGN (SETQ I 0)
' Q$ U# c `4 M - (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )/ j! i" e: p$ }' w
- (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN: ?' |' z4 k: o2 L8 {" q0 y/ F1 k1 |
- (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )
6 L8 |2 s( W, a) A7 [& E T - 4 H* D& E+ I! c' Y/ x/ F- C) `
- ;;; ============================== TEXT Hight ===============================
5 Q' O5 y8 |5 K: ~5 m1 @/ p5 m
" }: s% d# U+ v" u' `9 V- (defun texthght (/ ent hght)/ ~) H5 [5 D7 z* `
- (setvar "cmdecho" 1)& F8 G% r$ c& K. z# u
- (prompt (strcat"\nSelect text entity with required text height"))" X0 l/ s/ z. s% Z5 V+ W
- (prompt (strcat"\n."))/ j2 I5 j9 c9 }2 @$ p5 A- |
- (setq ent (entget (car (entsel))))
0 V0 h; ]1 F% s' [9 w, V Y - (setq hght (cdr (assoc 40 ent)))" I3 ^% R/ p* `: N( ?# w
- (prompt (strcat"\nText height now set at "))(prin1 hght)
* i/ g% y. t% U l1 R9 G - (prompt (strcat"\n."))
+ L# i/ K7 w9 p, z - (setvar "cmdecho" 1)# k' Y1 X# b; Z* f- |
- (command "DTEXT" PAUSE hght "") ): T0 ~2 |4 ]' L. ~
- (defun c:teh () (texthght)) (defun c:texthght () (texthght))
8 J3 i% h: K! W- f
; o5 k& p, u, r# C: h }- i2 t0 c- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
" Z+ z- E+ S+ [. T* T7 Z, A - 2 r- |# n' b+ q* p( N3 G
- (defun c:tuu () (setvar "cmdecho" 0)
! B, l4 h( f# C* Q3 ? - (prompt "\nHay chon dong TEXT can gach chan "), |. i. W) o1 o) o' W. k
- (prompt "\nSelect objects: ")) k6 m6 |; P7 P4 i+ t+ u# j4 V
- (command "select" "au" pause)
) [+ b8 q, Z" v( Y9 m - (setq sstxt (ssget "p")
2 C% E5 I5 l1 r - sslen (sslength sstxt)
+ z# l% y9 i& O3 Z% r& L1 u! S - ctr 0 )
0 l3 X1 c6 ^1 d$ B- _9 ` - (command ".undo" "mark")
+ T7 }$ u+ S. I# j; B - (while (< ctr sslen)7 s% a; ^+ W! S0 |/ h8 O
- (setq listxt (entget (ssname sstxt ctr))
- N# d- G! Z$ F" f7 o* @' @ - txttxt (cdr (assoc 1 listxt))8 E' _$ @- W( r: D; |- _
- enttxt (cdr (assoc 0 listxt)) )! K: [! ~2 m$ I7 H$ _
- (if (= enttxt "TEXT") ~- v2 |9 P0 A7 H
- (progn
5 x4 `- c+ [; ?9 |8 V7 [( ? - (setq testxt (substr txttxt 1 3))
1 w* g9 F4 J2 z S - (if (or (= testxt "%%u") (= testxt "%%U"))" l, X2 Q) R3 Q% ]9 T9 u' K) v# O7 s
- (setq newtxt (substr txttxt 4))
9 I. _1 z$ I' Q2 [/ ]. } - (setq newtxt (strcat "%%u" txttxt)) )$ \6 F, a2 c$ M% i
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
" B0 G9 \) k2 m3 n' c. K - (entmod listxt) ) )
8 l- b. j9 M( E& M5 { - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
9 ^: L4 o0 y2 }5 G( j, G - 8 N( B( R' n% W8 [2 ^" [
- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
: ~( u( c9 f5 |) P" M/ x3 }
, U' b) J. v% t" Z- (defun c:tob () (setvar "cmdecho" 0)
* i; I" l7 n0 b% H' }6 Z. p - (prompt "\nHay chon dong TEXT can gach tren dau ")3 ~$ [' |" ^" x: J% j* \) G
- (prompt "\nSelect objects: ")
0 o1 a! `" [$ o5 ] - (command "select" "au" pause)
. D Y2 s" i% U$ x# x0 k - (setq sstxt (ssget "p")
6 W) a1 f# p$ ]" a1 x& P" o g, E - sslen (sslength sstxt)# u2 `& N3 N) m- M& u% D N7 k
- ctr 0 )4 u3 y) s2 u. E
- (command ".undo" "mark")
6 w5 g! |! k& a ]2 Y* {, } - (while (< ctr sslen)
# g6 O0 u, T8 i1 r5 S$ _& b - (setq listxt (entget (ssname sstxt ctr))- W( E- P) s: V4 O
- txttxt (cdr (assoc 1 listxt))
1 [1 i+ Y2 c; W/ |5 f - enttxt (cdr (assoc 0 listxt)) )
) B$ }: y+ r+ Z - (if (= enttxt "TEXT")
7 t; ?6 m' [: J+ q% I - (progn
t* |; [9 D; B - (setq testxt (substr txttxt 1 3))! j j7 ]' P" ]: ~' T
- (if (or (= testxt "%%o") (= testxt "%%o"))
& F- }1 n) x4 e - (setq newtxt (substr txttxt 4))
. B" g5 r) |+ W( |( ?2 ] - (setq newtxt (strcat "%%o" txttxt)) )
) [+ r q! f' o9 X+ P+ J1 l0 S! \ - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
& a- A: I: F% p0 i - (entmod listxt) ) )% Y0 L. K5 ?4 x1 f
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
3 P, y. G+ X+ m- f! w - 0 m% w) |- f( H5 w. n! [
- ;;; ========================== Tim & thay the TEXT ==========================. t2 |# o4 R4 O& g& M" j; O( U1 H8 k
- ! I8 k* [0 j( q; l! ^: m7 }0 u
- (defun frstring (str search replace / str1 str2 index find)( W) @0 D) C2 a% l
- (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))
1 C0 E# Y6 k5 y7 ]( b7 V - (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))
# i0 H7 ]0 ]2 a1 x% ~ - (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))5 U4 B, G+ W- o& Z, @% K7 f
- (defun hai (/ dial)2 n" `% g6 J" }5 |
- (setq dial (load_dialog "hai.dcl")) ;;goi dialog6 a) j' @/ u* g+ Q1 X$ t
- (if (not (new_dialog "find" Dial)) (exit)) ;;
( r$ w# p; @- L) i1 j5 Q; R1 ^9 Q - (mode_tile "find" 2); Tao dau nhac tai hop thoai% h1 D+ S9 L7 |6 E
- (action_tile "find" "(hai1)")+ y$ w" y, L# D1 a* b6 R
- (action_tile "replace" "(hai2)")( q4 ~7 t+ ?; g# d1 W% ?
- (action_tile "cancel" "(done_dialog) (exit)")
5 r4 ?" O8 i# J0 m: s+ \0 Y - (start_dialog) 9 Y0 ~4 J e, U E! q3 W
- (unload_dialog dial))
% [! Z1 t5 q0 \8 p& [! ` - (defun hai1 () (SETQ str1 (get_tile "find")))
e2 |7 i g8 Y' O1 R - (defun hai2 () (SETQ str2 (get_tile "replace")))
3 i7 x% T- N5 ~$ y9 n, Y - 1 @9 S9 h- j/ A( g) k
- (defun c:TTT (/ a str str1 str2 newstr taphop sodem)0 _) B% q! v% _! S5 C' ?
- (hai)
6 a6 l3 U8 h. p$ }3 ~ - (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le")4 y8 p) M2 Z" T4 O/ |8 ^
- (progn
- _0 K% J' F! l6 e' ] l - (setq taphop (ssget '((0 . "TEXT"))))
9 N3 e" `4 X# n+ T" ?4 m* f9 @ - (setq sodem 0)$ L0 }; Y. S3 A0 X P
- (if taphop. B8 H. S2 p0 H( z8 T* y2 ~
- (progn O- n. r- c+ ~
- (Repeat (sslength taphop)
; V) W& B) M* b$ Z" t. H1 T& Q - (setq a (entget (ssname taphop sodem)))7 a5 ?4 z8 V" B6 T! O0 ^3 w
- (setq str (cdr (assoc 1 a)))9 V2 j5 l2 ]' r' g, O, M4 t
- (setq newstr (frstring str str1 str2))6 \3 A' B5 t7 l- c
- (setq a (subst (cons 1 newstr) (assoc 1 a) a))
1 V; ~3 `/ F9 y/ ]' ]& R - (entmod a)
5 O1 f" \. T9 R! b1 {; q5 H - (setq sodem (1+ sodem)) ) )
4 x5 u8 ~' w! d$ i) q x7 L - (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))
a2 ?* |9 b" |1 ]: C, J; }0 D" k* j
1 L, ^5 X, H. |% W- ;;;============================= CHTEXSTY.LSP =============================0 M- ?' a6 x: a: q' n) F u
- 5 z+ f. B: n5 g4 T
- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST ")
+ j. G- w- R3 d x! O' M% R9 n- g - (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))
0 {* i* X0 T8 P) N, N- K - (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A)) I0 K6 X7 k5 Y4 t
- (Initget 1) (Setq C (Getstring "\nEnter new text style: "))% N5 @% @) z. N( y
- (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))4 {9 ~9 s7 [0 \0 V. y) T
- (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C))
@0 O1 M* W9 ?1 H- E - (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))
5 A4 ^% e) L3 K$ q% w; R& W - (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))
( i7 c" y2 X& U; | - (Initget 1) (Setq A (Strcase (Getstring
+ t4 p$ E& H. L& z ]6 l - "\nEnter text style to change: "))) (Initget 1)
* `( q* X$ b. U% @; ^ - (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext))
( P, _: K# o3 f2 k - (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If
: Q( i+ a9 d, M( W, I6 e& e - (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))3 C3 u! C. _* Z. C. G
- (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))4 u% ?: q! _* j7 H
- (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J))! S2 E4 ]$ X7 j1 g
- (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))6 N) {+ w9 {3 Q* n5 f1 X2 _
, a$ a0 c" |% @3 o- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A))
; ^' d7 }9 ~0 d* \ i - (Setq J (Cdr (Assoc 50 A))))9 W9 p: B2 F- @3 q
- 1 f F- O/ A5 `6 F, D+ l2 d. @
- ;;; ============================ DRAW CLOUD =============================
7 H/ H% x O) z+ K- i( [! D
. W. g, w. \ A" }& K- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)
, v- n# L, H9 e9 I) K n - (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")* N5 V, Q! S U8 L w: h: e. a8 ^
- (setq la (getvar "clayer"))7 H. Z8 I5 W1 ~9 P7 g! i5 A8 x! V
- (command "layer" "m" "cloud" "c" "5" "" "")
' j# `6 x$ u! v: } - (setq pt1 (getpoint "\nEnter first point of Cloud: "))
U2 a# H, I4 k6 l d! y4 J - (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))
/ v) p6 {3 y+ l. b; q - (setq cnt 1 ss (ssadd))4 F9 T; q0 G: }% _. Z% \9 t
- (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))
( i+ r2 J( [, M M7 c/ I" e, D - (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75))
9 u4 I, C- B7 r - (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))4 j, c) e* h9 k1 l' _8 T# w# D
- (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0)
# f( m6 ^2 C7 @* t - (command "pedit" arc1 "y" "j" ss "" "x")
$ r5 w! G! V' b8 h f: B2 L: Y z - (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)& |/ ~3 ?+ W. U) ~3 g
- (command "layer" "s" la "") (setvar "cmdecho" 1) (princ)) p; Q0 d4 }6 i/ G6 o( m
- (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))
- R7 U3 x+ |6 D0 w N
0 R) I7 d- S2 V" x; X0 J4 t: f5 W4 c- ;;; ================================ Funtion-Dulieu ========================5 M; I5 G: ]% d- l! R+ F
- ;;; ================================ Funtion-Dulieu ========================
- z% C+ G" E! I: p) s" k - ;;; ================================ Funtion-Dulieu ========================6 c E+ w+ r! U' w
- p( X+ h" q0 G; T
- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )
6 k$ s7 Z( q4 f( K+ d - (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh"))
# U! q% S! x3 K; d' W3 i - (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))' z4 p% ^ Q& ^* g n+ o9 X8 O
- (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) )* e* k* R" Z. r l+ _9 M7 @
- (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))
- t# r# H# K" Z: Z+ C - (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0)) p# h* V. U! v7 R6 R
- (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0)), ?- R+ g0 R* i+ X" N$ A
- (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))3 ?9 K7 |" f' F$ C7 e6 K
- (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong))))
: }5 ^, \& r8 p - (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))), t* C$ M& F# n! t
- (defun dtr (dtr) (* pi (/ dtr 180.0)))
! ^. G, F% e( P) z: @ - (defun rtd (rtd) (* 180.0 (/ rtd pi)))- J+ U7 N3 X- V
N0 o5 n% o+ V* }- s. L+ ?5 P4 V- ;;;==============================PROGRAME===============================/ \) T2 S$ l6 U- i' j
- ;;;=====================EditDiM Hien Hop Thoai Dep======================* |; {* v1 f" ~! T# P! K4 S- O
- ;;;==============================PROGRAME===============================
6 l7 J# Z$ i7 m2 i% y: F) s) P: X - - B; y' s- W5 \; [6 m, g8 @/ W7 L+ j0 A
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
6 a5 Z* }1 A* L - ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
|7 E: F) T( n1 j2 @0 O - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc) ~3 e$ y1 I, T7 g4 H. N# s, i, t( Q
- (Setq Oldlis (Entget (Car Chon))9 D4 d& Q) o% S* J& B& ^
- Pt10 (Cdr (Assoc 10 Oldlis))0 n' I; \' i/ ~
- Pt13 (Cdr (Assoc 13 Oldlis))
4 a9 ?* s3 z4 U9 E/ ^ - Pt14 (Cdr (Assoc 14 Oldlis))2 ?. s/ _: X% s& d" n) `; T4 \
- St (Cdr (Assoc 70 Oldlis))1 h% S: D! Z7 f& H3 {
- Dimdefault (Cdr (Assoc 1 Oldlis))
$ H+ f$ ?, G. X: f; j - )
6 D/ X t7 h! S: a G, d; M - (Cond
+ G( y5 I7 M6 O G4 h - ((Or (= 32 St)(= 0 St)(= 160 St))6 ^5 Z/ a- {8 }9 b( ?9 I* B/ B' G
- (Progn
+ X5 _) P6 J- B' K4 S - (Setq Ang (Cdr (Assoc 50 Oldlis))
0 v* M# e7 K/ S - Pt (Polar Pt13 Ang 500)
6 V2 z+ M0 t5 X3 X - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)2 y6 E8 S T! n( N* }2 V
- Dis (Rtos (Distance Pt13 Hc))
+ X5 ]6 A% h2 d. C* M- x - )' ?' A3 h% u* b Y
- )
% U4 u0 {4 l5 T" i- d - )
) G+ M8 a* }( p* F' P6 N7 l! B6 H - ((Or (= 33 St)(= 1 St))
`9 h& X% ~- R; m# c, s/ p9 \ - (Progn(Setq Dis (Rtos (Distance Pt13 Pt14))))). J' T9 w+ i7 r- B' X
- );;End Cond$ X8 h" B4 E5 @9 M ]: S5 o( r8 Z5 {
- (If (= Dimdefault "") (Setq Dimdefault "<>"))) x/ |9 J: @ t/ J6 E* t" V5 I1 Z
- (Setq Dial (Load_Dialog "Hai.Dcl"))
3 ]' q, V5 X+ L2 {" e - (If (Not (New_Dialog "eddim" Dial)) (Exit))
& C8 _6 U+ d ?- G. v L! o - (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
: J' f: \1 h1 C# P* c& J - (Set_Tile "text" Dis))% V, r/ v, q H
- (Set_Tile "ha:edim" Dimdefault)
. ~% m( b7 u' [- J9 U% { }( @- g - (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai8 L3 Q7 Z( C. N* Y8 n
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
- }9 a$ w' i: W0 L8 Q3 p - (Setq State (Start_Dialog))(Unload_Dialog Dial)
! ]0 l3 J6 z. A: M( z - (If (And Str (= 3 State))2 a- s$ G" T" P; ?
- (Progn! B0 s5 \; b; a" m% m
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))9 o# E7 S" Z6 j9 a) { t, U% P
- )
% j8 M' [7 c3 b; S i - (Defun C:EH (/ Chon Name )) b; R1 A" d2 M) {
- (Defun *Error* (Msg)
- c# N, O( \6 R% n" r - (Princ "\nerror: ")(Princ Msg)(Princ " ")! O F( k4 X: p$ ?
- (Start_Dialog)(Unload_Dialog Dial)
& D6 V0 C- ^" o - (Setq *Error* Olderr)(Princ)
3 h, V$ Q+ q& |: ?! [ - )
6 A- @5 P, B/ S) v, q" I: |7 e - (Setq Olderr *Error*)! L' ~% v; w3 M0 [7 R
- (Setq Chon T)7 l h" P- f' m4 x& f
- (While Chon: _6 e; C" Q. q1 {, \0 W2 B: u
- (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))' A3 S% b6 K3 ~; B' _+ m) h h# v
- (If Chon
! y1 r \0 J8 E( T# E0 m3 }9 `, f9 N - (Progn
/ u* @- |* F* ?& x1 F - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))5 n0 [; ^4 u# A/ h/ } T+ D+ p
- (Cond" m7 ?( ]$ U% ^. S5 {3 @. E
- ((= Name "INSERT")(Command "Ddatte" Chon))
9 ` O {: B4 @- b7 a4 S9 g, m% I3 z/ H - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon "")), C* x- E" b7 s) G& d+ k1 l0 O
- ((= Name "DIMENSION") (Hai_Edim Chon))
) c: b1 E1 L; v, h/ E: n - )
& P* C. L5 z% n G( ]: O/ j - );End Cond
- o. I9 q& o& ] - );End Progn
# b* R; o3 O0 O" b+ b6 T - );End While+ E- ^+ e5 x7 K4 K0 R9 d% J
- (Setq Olderr *Error*)(Princ)) ?9 `( D# P7 r
- );End Program z$ \- ?5 k* r: V$ ^4 D- q
?/ f2 D2 x/ m* m- ;;;====================DDeditDim=====================
$ n+ e5 i0 e" t z - ;;;=====================Hai.DCL======================" T7 c! O0 {# l- P% o5 p0 U# U
- ;;;====================DDeditDim=====================' _5 C& Q* ^4 m( Z. R
- ; i3 _6 f* P8 u+ X3 K
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)- f% Y$ I* c' }( f1 P, J: X0 Z! P+ M2 f
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
0 [% A, z7 Z* ~- F9 ] - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc) u: o s8 F+ S( Y. Q# d; P
- (Setq Oldlis (Entget (Car Chon))
" o' }1 W, K+ b - Pt10 (Cdr (Assoc 10 Oldlis))
( A" M% ?3 Q" U" [1 v% t. C - Pt13 (Cdr (Assoc 13 Oldlis))
1 \3 O; {9 _0 Y" R - Pt14 (Cdr (Assoc 14 Oldlis))) C4 g" v; R7 R8 j& B
- St (Cdr (Assoc 70 Oldlis))
8 G0 I+ K/ D' q/ Q% w: t - Dimdefault (Cdr (Assoc 1 Oldlis))" u& n- U, J/ J" v, w
- )
3 Z; u2 `: f$ o9 M - (Cond
) d* |, F m. I% R; M: v - ((Or (= 32 St)(= 0 St)(= 160 St))0 V v6 O' Z- m$ X; W
- (Progn1 S" X1 K+ `7 ]1 v. S6 m
- (Setq Ang (Cdr (Assoc 50 Oldlis))
# s* z! R: i+ p5 O/ o% d! p - Pt (Polar Pt13 Ang 500)
; p* g) N% L9 ?( O1 V - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)& H$ ^" t& d& o8 Z% x+ {1 s
- Dis (Rtos (Distance Pt13 Hc)): t: C# Q3 m$ x" O, {; M# l. u
- )
* v( A+ d+ Q; j( I4 x - )
- l$ L+ c D/ R4 _7 y - )& |8 ?+ D( O3 s* K% W
- ((Or (= 33 St)(= 1 St))
x- j4 H8 h0 ` - (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
3 ~4 f0 Z( ^& F! r - );;End Cond9 T1 e/ u- p! `% w; X
- (If (= Dimdefault "") (Setq Dimdefault "<>"))
" b! W! V/ ~6 W3 V% T - (Setq Dial (Load_Dialog "Hai.Dcl"))
+ M" a; J+ n- Y. E& \ - (If (Not (New_Dialog "eddim" Dial)) (Exit))
6 h2 ^9 Y8 n u# ?$ b9 L: F) x# k - (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))( V, O @& p% p' {$ V
- (Set_Tile "text" Dis))0 z8 p& `( [/ {, D( j
- (Set_Tile "ha:edim" Dimdefault)
% k0 ~( e$ j4 S1 J - (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai$ J% Q) ~6 k/ R/ F. G8 R
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
$ C0 m9 a- b1 Z - (Setq State (Start_Dialog))(Unload_Dialog Dial)
( J+ D9 V) H5 z! Z# U - (If (And Str (= 3 State))
- o$ ^/ D$ j9 n( `7 t& B2 Q! P$ w% n - (Progn o; Y2 }6 p# _8 t" O4 \
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))) `$ P& K- d: y* Y% a9 c
- )0 j& W7 a, b+ o% J, A" ]; a. b
- (Defun C:EH (/ Chon Name )
% o* Y4 F% t6 I- _2 |4 ] T4 i
2 H4 p: _! r8 Z) i: N" T- ;;;********************Du Lieu********************! | @3 a4 o, R6 C: W2 A- ?$ A
; p$ e% g' p/ E( L. n1 s) v$ F3 ?- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))9 b) O/ R4 F7 b( B- w; W
- (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)) i Y: x. r6 z. L0 C
- (If (And (/= Hacat1 Nil) (/= Hacat2 Nil))
0 F* B) W- _+ e - (Progn* d1 _. n8 v# I" k- z, x* H+ B
- (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))
; r0 k: J, i6 q9 ?2 M4 P - (Setq Chon (Ssget Hacat3))6 Z1 X0 p* K5 o" u$ j
- (Command "Break" Chon Hacat1 Hacat2)
% z( g: m q! S, Z7 d) ]3 ?' |9 q - )
; ~: {% D8 t/ c: {: V - )1 q8 k: `/ m8 u+ W
- (Princ)
* c O8 J# @6 R$ j- ?% k; ~ - )! @; u' h/ ]) z% \
- ;;
% f) `% \/ @4 _2 U8 Y& w9 k# b x - (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))
- T, K6 j; F. [) Z - ;;. q4 n1 f: \3 c5 c m
- (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))
( V; p8 f1 x! R$ j8 ]7 O - ;;' J* z, o3 }, s5 q
- (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))' D6 Z$ I% v( \9 Q
- ;;
) Y( R n% z! x, s5 B: {& k - (Defun Reinit ()(Setvar "Cmdecho" 1))1 n3 D) ]% e( `! m: c
- ;;
. X) }2 T: {$ n# c - (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))( l @* g( F% f" G/ _
- ;;
, ?; J3 ~, e) L! |4 \% y - ;;Cho 2 Diem Tinh Ra Vec To Phap2 n4 _$ b- I, [) f, p: H7 a
- (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong)))) D7 B5 j1 \: P6 d* P
- ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang
' `9 r# v$ ]4 b - ;;Da Biet 2 Diem Thuoc Duong Thang6 U+ Z& h6 A1 L! T1 ^6 Z
- (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2)
Q) y W$ r5 X! ~9 E - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
3 [0 o& n* Q% Y/ j" P7 m - Hc (Inters P1 P2 Dc1 Dc2 Nil)))% X2 S& q: f6 G7 j1 F
- ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang$ s4 ], x3 {' b- q6 v% x. E
- ;;Da Biet 2 Diem Thuoc Duong Thang
( {- n5 \. S9 S - (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)- a8 @! j7 v- V! m- I: u
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
K* u% P1 C. d& B: n- ^ d - Hc (Inters P1 P2 Dc1 Dc2 Nil))8 D' n+ B! s" b+ h- S0 k1 |
- (Distance Dc1 Hc)" X# j5 ^7 b4 w5 ]' o% v/ D) _
- )0 q: U4 g5 \- @, D; G& s& C
- (load "nhapcua.lsp")$ y' p$ Q2 _( X4 W- G
- (Defun *Error* (Msg)
/ ~$ G2 s9 b4 E& @( X9 S4 Z8 j - (Princ "\nerror: ")(Princ Msg)(Princ " ")& l/ P6 M. o; ^& p% F
- (Start_Dialog)(Unload_Dialog Dial)
+ X! T3 G+ t, Q! E+ ?; `! r, w$ W - (Setq *Error* Olderr)(Princ)
! I! O& p# d3 R8 o" L' P# O - )& P1 D, t( e& o1 z, }- }
- (Setq Olderr *Error*) P* v- [- P9 J& p/ C/ P1 Q3 q
- (Setq Chon T)! C- w7 ~+ e. y: V5 N
- (While Chon
* Q5 j/ Q; q: x6 e2 ?" `) N1 } - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
0 a) ~/ ]; y/ {- A' x - (If Chon A y, g, L/ f8 [/ [
- (Progn6 x( I1 G! N& o9 I% v- E/ W$ Q
- (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))/ O# E. E v9 T
- (Cond
" V3 D' K" o6 v0 { - ((= Name "INSERT")(Command "Ddatte" Chon))
# c6 O0 f, c$ g5 |5 r, V( J/ J' Q( `7 \ - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
8 K7 B3 b; U7 }$ B0 z1 U6 ?; { - ((= Name "DIMENSION") (Hai_Edim Chon))
* P* @+ R+ G' }; g - )
`3 w( Y: H1 i$ U - );End Cond
! ~" _5 x; b8 {4 A+ }- Y - );End Progn
. e: h3 R7 }; f0 d2 N$ ] - );End While( t9 D7 `9 ~! w1 g
- (Setq Olderr *Error*)(Princ)9 A3 ] }1 P! @/ c# \
- );End Program
( r$ s1 ]5 e( n. n! O0 h
0 y# z; {+ a$ A& n5 I# |( ~- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
) h% z4 W( \) \* J - ;====================================Nhapcua.LSP==================================== [% m# X# C/ Z0 E
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
5 Y( z$ i' p- `; q: u% C - 3 t: _. R3 e- e+ Y4 K
- $ Y. T) ?7 r0 q. {' P
' \* a9 g, r, t6 g0 n4 \/ x- ;*******************;*******************;*******************;*******************
1 c; i. s3 O4 f# S" b; V - ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U***** K$ k7 @8 x- e: X
- ;*******************;*******************;*******************;*******************
+ r7 W2 d2 ~& I
3 S' Y# R! ~" `/ f* F- S- ;VE HINH BINH HANH
4 \' s, }! w8 V: o5 M2 v, A+ V - : }* N' Q7 }/ s% e& L
- (defun c:binhhanh (/ p1 p2 p3)
! j8 K/ k. f- x! z' s$ A+ d - (setq p1 (getpoint "\n Nhap diem thu nhat:"))
+ F& a3 n; H. b - (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))
4 Y' ` h! ~+ U# I: k! O! `: ^( ~ - (setq om (getvar "osmode"))
; E4 C6 S( \/ {' Q. p8 k - (setvar "osmode" 0)
; x3 b* n/ y8 M: |/ ~ u2 J( N - (command "line" p1 p2 "")
4 Z! U$ u/ c% ?% R! B, y - (setvar "osmode" om)
7 U0 C$ z X" G4 v* D5 F - (setq p3 (getpoint p2 "\n Nhap diem thu ba:"))
5 [1 Y5 S0 b' h - (setq a (angle p2 p1))
4 J3 {* Q: D1 W: ?+ Y0 q - (setq d (distance p1 p2))
7 v- A# d! A4 }: O - (setq p4 (polar p3 a d))# _4 C# _5 |( O) a6 u4 ]+ C
- (command "OSNAP" "none")
, M( ` A5 H8 d+ \0 F - (command "erase" "l" "")( X- x I' E) P E8 }
- (command "pline" p1 p2 p3 p4 p1 "")
% ] z" F, v; c1 M5 r& G - (setvar "osmode" om)
. ^0 L( m% J" Y% U - )
! C9 m/ |1 T6 j* P% A7 h
( Q1 h! C$ Z: X* o0 d$ E- ;VE LUOI COT# P j* I# ~6 x& `$ z* e
, i% T' n# h5 U5 L: Q. M- (defun c:LuoiCot ()
; a+ D P5 Z$ f" h$ s3 M: V! l - (setq om (getvar "osmode"))
/ ]# G( L1 G. y c# x8 b9 K - (setvar "osmode" 0)! u& N9 p: `1 N7 H
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))/ d# e+ k3 o2 X3 Y5 ?
- (setq p0 (getpoint "\n Chon Basic Point:"))
$ |% ?* R ~' Y - (setq nc (getreal "\n Nhap chieu ngang cua cot : "))
: @, k4 [* P6 s* t7 S - (setq dc (getreal "\n Nhap chieu doc cua cot : "))( ?' H5 j) W+ w+ `9 G4 L3 L- K5 e. ?
- (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
) X2 l+ L( P2 G" v - (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )" i( f3 Q) f' J- Q( E- T
- (command "rectang" p1 p2)) A% K9 Q; ~% u8 r' r$ e
- (command "hatch" "solid" "l" "")' f* h/ M5 W! j* `% J+ }6 p+ ]
- (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))8 \2 w+ |9 u n
- (setq nn (getint "\n So buoc cot phuong ngang : "))" Y+ C$ j+ V" j$ h* J+ s- c1 R
- (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )- E. t ?8 x2 a; }
- (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) ) |( U* ~+ r" p7 z
- (command "select" "w" w1 w2 "")
# d& z4 d- b& z8 Z - (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )
* L" [; n) V2 b0 g1 m/ I' w - (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")2 W3 O; }) I4 e% ~' C, o+ G
- (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))
; z: F5 h) \$ I. A4 ~8 g - (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))( c9 V( S2 w: K. k$ }( ~
- (command "zoom" "w" w1 w2)
2 T1 u( _: ]# }* e: O' t2 M3 F$ W - (command "select" "w" w1 w2 "") j8 G+ W5 [6 n. u2 b: L
- (setq bcd (getreal "\n Buoc cot theo phuong doc : "))
G6 C3 x: W& z5 G% b1 F - (setq nd (getint "\n So buoc cot phuong doc : ")). C t" _& c! A; }& n9 P
- (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )9 r( c7 K/ m% `, c
- (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")! F$ h, n# _3 o2 X4 i' ~+ Z
- (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )
; z& O' _( M) I o, w) ~ - (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) ) - _- Z. c/ Q" ]- A& m
- (command "zoom" "w" w1 w2)0 M! N: V8 c) A2 n$ {) B
- (setvar "osmode" om)8 _1 U* A- n1 T" f
- )
2 \. v3 X; `# K& N, v: K6 h% u y
& D$ x8 `& }! I- z8 e+ I9 Q& Q- ;VE CUA DI; j2 M- g$ e4 s# f& O& S
- % Q8 z4 V' A- k! ?' n( C0 I
- (defun c:cuadi ()
. X8 P' r" e$ @( v+ H/ u - (setq om (getvar "osmode"))* X$ q" j: B- O7 \& k2 C/ v
- (setvar "osmode" 0)# J0 C0 k, ~8 D6 C5 u
- - @/ Z) U8 W9 }; n5 `
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
& \& M+ x8 F$ U2 e: R. ~) ^7 R0 p - (setq b (getreal "\n Nhap be rong cua : "))
( O6 i3 t- t; }- R" n2 G3 i% } - (setvar "osmode" om)$ @. g1 @6 k( H
- (while (< 0 1)
! Z, l5 N( N0 C' } - (progn$ T% n/ E' t$ \
- (setq p0 (getpoint "\n Chon Basic Point:"))
0 h" F/ n& N! L# u - (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:"))
/ l: ~" \0 w" x: y - (command "osnap" "none")
2 r: @% i7 Y9 [3 q: Y% Q; [, @ - (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))
4 e* C7 c4 v7 Q( R: \) ? - (setq a1 (angle p0 p1))4 X% r6 {1 x0 Z4 ?$ b6 f& j: H. C
- (setq p1 (polar p0 a1 (/ (* hstl b) tile)))
4 ~3 M7 z8 I8 c6 L+ B1 M3 o - (setq a2 (angle p0 p2)) R5 d Q1 d* l8 Z# @4 S, _5 X
- (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )6 ?- d* |5 }0 i4 Y: }% a
- (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")
9 ^/ @; y* u2 b; L# g4 l - (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))9 n. J& A, R$ i1 @+ q: ?. Y
- (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi))
" b( |% G) E: Y3 _9 N0 ] - (setvar "osmode" om)7 @. G/ G5 X& i/ W, E* i
- ))$ l) B6 [# i* h5 n( Q! I
- )
# V1 }0 w8 W" n3 u - ; V5 b! _. W% t8 @ O5 t0 F$ m+ D
- ;VE CUA SO; s- Z% @* @$ i: x+ w9 B
2 d( j3 Z* M7 g7 i0 |0 b7 q' h- (defun c:cuaso ()+ _- L4 R( y2 R6 {
- (setq om (getvar "osmode"))
# Y4 ], h0 u3 b' \ - (setvar "osmode" 0)
( `+ H6 h5 t2 I9 T, w) T - / q/ a+ C3 O ?, y' M4 L6 i
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))3 T& A* V T$ w, e9 v! @
- (setvar "osmode" om)+ E3 h/ t/ ^9 b6 ]% c2 \! I
- (while (< 0 1)
# |4 |0 E% k, h2 f4 n - (progn8 c: ?3 Y: M0 i- |6 l8 w+ ]1 H
- (setq p0 (getpoint "\n Chon Basic Point:"))6 e6 z% B2 L" G8 K) u" U+ `9 T
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))
7 S) _, `& q3 G8 g0 ~' | - (command "osnap" "none")
0 ^2 v9 ?6 |2 n - (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))5 X, |; L6 v, V9 k( {
- (setq b (distance p0 p1))
& V: p' G2 t0 p7 a& A7 \ - (if (< b (/ (* hstl 600) tile)) (setq du 50))' h) v' r$ L8 H6 V O! n- L& l
- (if (> b (/ (* hstl 600) tile)) (setq du 150))
4 i- b2 j% q. _1 x7 v4 W/ d- y - (if (> b (/ (* hstl 1800) tile)) (setq du 200))
/ M; i1 j1 n" p# M" s" j - (setq a1 (angle p0 p1))
$ {0 F5 @4 i# M( V8 d h1 V - (setq a2 (angle p0 p2))6 l# `) X1 g ?5 Y9 h3 n
- (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )
W" k7 V/ _6 Y A$ Y - (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )$ ^: h( v6 \: _2 N; ]0 u, V! y
- (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )
9 i8 u2 j) {1 a" t" ?/ w - (command "pline" p0 "w" "0" "0" p1 "")
7 z( x3 z2 Z; W - (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")
: v# C$ e8 K3 b- c$ ]1 f" ` - (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")
: b; ]4 P% D4 Z* E( j& k - (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile))) * i' w+ q! O. X. k" V, X% l; b
- (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")
G0 ?8 F) y0 N# v - (setvar "osmode" om)
% Q% H2 S& G4 D - ))
$ @9 G# I1 m# \5 o5 y, K" o - )
}5 s7 L8 W9 J - 2 W1 J& @0 k/ L2 `3 V
- ;;;=== General Utility Functions ===& M8 S* X5 a# c
- 5 ^7 n: w2 K/ H7 B) H8 z& M/ A
- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined
! H& j) `7 H0 I# Q1 } - ; ADS function. Now it's a simple AutoLISP function that calls the
S5 d. O/ S \" f; X0 R4 Q# g - ; built-in function (help). It's only purpose is R12 compatibility.
' c0 K, n, g0 U8 T) K* ~ - ; If you are calling it for anything else, you should almost certainly 6 P% r' R! V( C8 O! j
- ; be calling (help) instead.
) W% B6 ]! l% C! [* l -
/ I8 b) N( x2 y' }" P6 c - (defun acad_helpdlg (helpfile topic)
" L( l/ Z- {( j* F8 _' ^9 O - (help helpfile topic)9 X) \* G. I; l5 W3 i
- )% B" X6 [; a* X" i6 I: m+ Y
4 b1 K1 b( k/ L: O/ a, K* C; d3 z
! T1 s5 [1 |5 C- ^* Z: s: n- (defun *merr* (msg)
/ a# ]. i7 V# d7 \ - (setq *error* m:err m:err nil)& G% w- K' v# F3 z2 q' u) k. a
- (princ)
5 h2 | t9 d& D, O$ W0 I - )
8 \' l; c# |' I7 |7 G& J5 n
3 ?+ S! r) a1 o2 c# w7 F! P- (defun *merrmsg* (msg)1 }% V) E8 v8 X/ L/ A
- (princ msg); ^/ U/ `2 p, q/ L$ T4 p% o9 E. _# h
- (setq *error* m:err m:err nil)
: Y1 s6 W- a! J6 I* l5 f8 o9 u - (princ)
3 a! G4 I3 d+ P - )
. A" b" n7 Q6 t - 0 O) w) [ U' b+ a, i# w+ o" l
- ;; Loads the indicated ARX app if it isn't already loaded
! j0 E$ E! b8 P1 o3 P - ;; returns nil if no load was necessary, else returns the
5 N# g. F7 I: q6 Y( s: \$ Y. U - ;; app name if a load occurred.
+ N5 o) d1 q, o* y, T% E" E: k - (defun verify_arxapp_loaded (app)
+ |9 V, k4 W5 W8 {7 s/ P- u - (if (not (loadedp app (arx)))5 P( H/ C9 G2 |. f+ `2 v, T0 q
- (arxload app f)! |" H M S, p! g2 W& q" U
- )4 d* L$ x; Y9 L! y% e# X
- ), ]" P9 T( A" H. ^" G/ \; F) i0 I
- % r+ v8 Q! j% ?/ F
- ;; determines if a given application is loaded.../ [" x$ f x9 ?$ h" ]
- ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....
3 K w0 r) p5 A2 X2 l - ;;
# w( }. |/ [0 \5 [/ W6 Z - ;; app is the filename of the application to check (extension is required)
2 D7 W& u* p9 z" C5 z& Q - ;; appset is a list of applications, (such as (arx) or (ads)# J- E4 j: ]+ e: }
- ;;
2 M) M: |. I7 O- R - ;; returns T or nil, depending on whether app is present in the appset8 g) `! ~5 n' y$ \6 x
- ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"
: ^: H5 L$ b3 D - ;; Also, if appset contains members that contain paths, app will right-match
/ J% L Q; ]9 ~% O/ t - ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that8 g* L; {6 O& z! ^/ d; i6 Q
- ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."
3 d2 v4 F: p2 A% x - (defun loadedp (app appset)6 b c" g/ f6 j j- x9 x/ E
- (cond (appset (or : v% o2 b; y7 \* h( E
- ;; exactly equal? (ignoring case)
$ |) A4 \1 N, y1 |5 L - (= (strcase (car appset))
0 I7 Z7 {' M5 ]+ z - (strcase app))# v. t$ G; Z' e
- ;; right-matching? (ignoring case, but assuming that
# s5 L$ k! N; `; } - ;; it's a complete filename (with a backslash before it)6 A0 n+ m }/ s9 q5 u5 E9 M
- (and ! S }- B- [ ~9 v
- (> (strlen (car appset)) (strlen app))! X& {) z# k7 O+ M
- (= (strcase (substr (car appset)
& c4 |( y: {% K. O$ i+ ~1 x9 z - (- (strlen (car appset))
/ J l3 e; g0 ?4 _6 u - (strlen app)
( l, j9 P" g1 m, O- p/ w& k- A - )
% l5 A, F; ~7 |5 i - )
( P9 M' X2 Z* c* ? - ) 5 L1 x# R* v" P# S! x9 y
- (strcase (strcat "\\" app))
$ C, ] M) v( ^ - )2 a* F0 G% p# f6 p5 a5 I {2 O
- )
; S9 z+ r- k6 U3 S1 d - ;; no match for this entry in appset, try next one....) ~" `3 |) ~# C: n& R! ]# P" h
- (loadedp app (cdr appset)) )))
3 L' @ d, c8 x+ V" ~ - )( v" v0 q# F: J8 ]& v" h
J+ K4 z* g) E8 R
n0 ?2 D% T, |3 A( r- ;;; ===== Single-line MText editor =====* s/ R& n- E9 P# Q/ p$ B6 u
- (defun LispEd (contents / fname dcl state)& C! x: R* C) r' }& b, \ @
- (if (not (setq fname (getvar "program")))
8 g5 B7 Z+ Y) N6 |! o# r - (setq fname "acad"); e3 K! R( f; `. {; l7 r
- )
- A7 H7 O/ {$ C# A - (strcat fname ".dcl")
$ ]" y6 O/ l9 O. T9 T0 z2 j" ~* C& t - (setq dcl (load_dialog fname))0 F3 l' @& }/ ^2 l' r) u; C
- (if (not (new_dialog "LispEd" dcl)) (exit))
; [3 V; Y. J9 E4 Y8 ]- B( a x - (set_tile "contents" contents)
* S! C4 o1 p+ F* @ - (mode_tile "contents" 2)
6 a) l& P! G2 R! ? - (action_tile "contents" "(setq contents $value)")
5 {6 [+ u! m: q; I) T - (action_tile "accept" "(done_dialog 1)")+ w3 Z0 ]3 R8 Y
- (action_tile "mtexted" "(done_dialog 2)" )6 V- u0 M8 b) D. f1 w( s d' @
- (setq state (start_dialog)): n2 `' \& v' k6 S+ I6 k5 t2 l
- (unload_dialog dcl)8 G2 h" t @. ?) c. y0 \
- (cond' \% s5 V0 p, t% O2 U! _
- ((= state 1) contents)- x5 `. k# q4 Q8 v% d9 a* S1 f# L
- ((= state 2) -1)5 c; |" q* W* `, @
- (t 0)
, r; d" W* y/ F. Y; b- G - )0 X, N4 B8 M( T
- ) N! V/ t+ h& @$ h
- ! H3 i2 ^5 x8 G# Q4 u
- ;;; ===== Discontinued commands =====$ u$ b4 \) k4 k. E
- (defun c:ddselect(/ cmdecho-save)
0 I8 X/ k' v" Z' o% J: V - (setq cmdecho-save (getvar "CMDECHO"))5 H4 j0 b+ q1 [4 _
- (setvar "CMDECHO" 0)
1 Z/ `$ F7 X9 s7 e - (command "._+options" 7): Q. A. W) W- d# p6 d) q
- (setvar "CMDECHO" cmdecho-save)
' S( Z& y A; M( l/ Z - (princ)7 Y- v* ?8 z9 v
- )
3 I% k ]! a) T b4 N
: k+ R6 K" {7 z1 T/ Z8 W, X- (defun c:ddgrips(/ cmdecho-save)1 d1 [+ C" u+ q9 }
- (setq cmdecho-save (getvar "CMDECHO"))
# y& I! `# i8 Y6 i' j& t - (setvar "CMDECHO" 0)% `, k$ d6 O1 j% C j
- (command "._+options" 7)
* D' g. J9 w0 J. J+ ^0 s1 T - (setvar "CMDECHO" cmdecho-save)
# w: K8 }1 j9 X' R2 _8 y4 [ - (princ)# ?3 n A+ w' d% Z
- )
) t; ~/ Y/ U, t# g/ R. J9 b+ t8 I
2 ~# E7 b/ y6 Z6 A9 z- (defun c:gifin (): O) G1 ?9 u& X
- (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")2 k+ }4 [) _, {! I0 T
- (princ)6 h$ l: Z' K1 y6 Z
- )4 m; C$ G! i6 o X: {: [
" _$ c( f6 t" v- (defun c:pcxin ()
) o6 F% Z3 C( q9 c* O - (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
$ |% _4 F" ~& \2 i: ` - (princ)! V8 I, `1 t4 r+ x; @& G, {
- )1 A- L. ~ ?+ q' _- L8 k- z
* y' v z# e) i' l* b7 U/ ~- (defun c:tiffin ()
& i/ u+ _+ U% B7 ~ - (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")7 q$ F A: s- D+ m, A
- (princ)8 Y, G e. o. C( ^6 r. |- P
- )9 K# y0 x9 \0 B" W2 p
' l- d8 \$ W' Z" p- (defun c:ddemodes()$ ^8 t. Z6 s) c; e( d0 ]! N8 u r
- (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.")
" @* z; v ^2 L6 B6 v# ?. k3 q - (princ)% f( K0 ~3 Q6 S( P" P
- )0 Z9 I1 _6 X) B N
/ x1 ?' D- l& j7 ]0 V4 f- (defun c:ddrmodes(/ cmdecho-save)
L' U/ l: W% K7 U - (setq cmdecho-save (getvar "CMDECHO"))
" \; O: q$ j% T `0 X X0 u - (setvar "CMDECHO" 0)
* y/ O& ~! ?. a/ {$ @9 A9 i. B/ P - (command "._+dsettings" 0)
) Q% Y* y! G" \' s1 D/ U; s4 p - (setvar "CMDECHO" cmdecho-save)
7 `- V) K" ]) j; t1 `5 o- K - (princ)
% D/ [8 k! z' f7 A C - )
5 B- X( w! P. N4 D- z4 y7 e* l$ C - ( E4 k3 R) [; c" [- F9 X3 F
- ;; HPCONFIG1 X0 L2 Y/ u. U
- (defun c:hpconfig (/ hlppath)
4 r" I9 I( [/ k - (if (not (setq hlppath (findfile "acad.hlp")))
2 ?5 e8 Z& t- G - (setq hlppath ""))
, Q* b4 |+ W2 n6 D8 g: j - (help hlppath "hpconfig")
% `! f4 K8 P& z8 [# |; U6 d - (princ)
2 H, ] \8 R u+ t! M8 g, C - ), w/ `8 Q6 o8 {
- . j5 h' @! ?3 A+ V/ t7 Z
- ;; OCECONFIG
* y/ `. v5 M8 g$ v% |- Q3 V, f - (defun c:oceconfig (/ hlppath): I2 y* Z& C% _- L) g
- (if (not (setq hlppath (findfile "acad.hlp"))): z- b4 u/ W9 |' |
- (setq hlppath ""))
, P; P7 D; I8 `* N8 B - (help hlppath "oceconfig"): C& E' i6 T; y* e7 [- I, _9 T' W" l
- (princ)
O2 A2 V# I# e% C; B5 ^ - )
: i& G7 J+ G6 {$ f0 b6 }) T - 3 a5 c/ X# E- }- b3 _
- ;; CCONFIG1 K1 Q8 v3 X) I" o
- (defun c:cconfig (/ hlppath)
7 f; `: o1 w5 B) N - (if (not (setq hlppath (findfile "acad.hlp")))
5 Y( x. [8 H; I7 V; [1 e - (setq hlppath ""))
3 \8 e* H8 I# N5 z7 \: p5 J - (help hlppath "cconfig")( i8 v& S' W( O6 W m/ f; s0 K
- (princ)
; l M. a0 V$ E/ e - )& F7 w8 V; f, v, D' b/ m1 b
- 1 H! L2 ]7 g5 J" Y$ t3 u6 O5 t
- ;;; ===== AutoLoad =====
" G. F; ` ] N; o4 Z - 1 ~2 V! V% H/ J( h7 Y7 i: A1 ?1 _; o/ ?: c
- ;;; Check list of loaded <apptype> applications ("ads" or "arx")
( e; ]6 h& T2 x2 B8 C- D2 v - ;;; for the name of a certain appplication <appname>.
( S6 b, ~; Q" I - ;;; Returns T if <appname> is loaded." b9 V. G# @) z/ O! r$ \
- ! N, z: |6 y( X
- (defun ai_AppLoaded (appname apptype)9 B& D/ X) j3 Y& |1 B
- (apply 'or8 L4 a. F1 E8 M
- (mapcar
! B2 H- i2 [+ \7 l - '(lambda (j)8 }! O0 F7 u2 i1 H+ a
- (wcmatch
2 H" g0 K3 Y$ |. a - (strcase j T) F, q+ j/ e, V- j! p1 E) O
- (strcase (strcat "*" appname "*") T)
, \3 W {% u/ l5 y* Q - )
% ^# m0 T4 Q$ x$ H - )" C N2 l Z( f' m% ~+ _1 E: ^
- (eval (list (read apptype)))
3 v; A8 q9 r% c% Y3 P, V a; r - )8 r4 c- c$ ]6 @5 j# O0 B0 A
- )
! Z3 K2 Z) {; |7 l T6 r - ) K$ [) _3 R( J- o5 _! c
' @) Y. s; \$ k0 T8 J* b- ;; 1 C% M5 O$ s. U3 [1 a5 a; j( l
- ;; Native Rx commands cannot be called with the "C:" syntax. They must ' S8 M' s* @8 y+ I
- ;; be called via (command). Therefore they require their own autoload
8 w. P: H' V( X% X$ g0 I G - ;; command.3 Z# P. G/ y, [! |" p
- # ]% Y) z6 a8 V$ d
- (defun autonativeload (app cmdliste / qapp)1 a3 f5 ~& ~8 ~1 I$ B8 [
- (setq qapp (strcat "\"" app "\""))
" I/ @" Y7 c0 v. B8 b5 E: S3 _7 | - (setq initstring "\nInitializing...")6 _% u1 \: p |5 R$ N
- (mapcar# G( o J( B1 B# B/ H; s; D
- '(lambda (cmd / nom_cmd native_cmd)
G# y( S* A$ M5 W9 u$ i8 m - (progn; V% h w+ q" y
- (setq nom_cmd (strcat "C:" cmd))' |3 }: k' J: g2 ?$ v f
- (setq native_cmd (strcat "\"_" cmd "\"")). Z I* R" s; [
- (if (not (eval (read nom_cmd)))
# h* X6 B) c M( K' H2 [& l - (eval
4 H7 P! C! j# Z! a - (read (strcat
8 @4 S7 b- J$ r, l9 | L - "(defun " nom_cmd "()"' }. ^* {/ Z7 n9 y* G
- "(setq m:err *error* *error* *merrmsg*)"
) a H, _6 x$ [7 C% x7 ?( L' |& U - "(if (ai_ffile " qapp ")"
! j5 H4 E7 W: ?8 P - "(progn (princ initstring)"/ n% l( G, b2 }0 I, B& h; C) s
- "(_autoarxload " qapp ") (command " native_cmd "))"
8 {- _( l5 K+ c& ^* R4 C( H8 T - "(ai_nofile " qapp "))"
9 W# K4 x" U- _- n$ o$ s4 c& g) { - "(setq *error* m:err m:err nil))"
, O% Y+ V+ R- W. {7 z - ))))))" |* \; z/ T0 O
- cmdliste)
. f" c5 z! l+ y* v9 o- J1 c - nil4 e3 E% z# n; V5 g% N/ G4 g
- )4 b0 Z. M6 X7 {9 `1 A' H G2 S1 M1 [6 c
: w. P E. J9 P9 [: U- (defun _autoqload (quoi app cmdliste / qapp symnam)* L/ s& B* A$ V0 I0 \' ^# M* H
- (setq qapp (strcat "\"" app "\"")) A0 H& J3 u2 u) Z; t
- (setq initstring "\nInitializing...")' o: B4 }! _4 d7 l8 C8 K
- (mapcar
6 D( ~: w9 N' p+ w+ i& y! `* P$ \% B$ _ - '(lambda (cmd / nom_cmd)6 z9 Z1 {8 N1 V6 f" u
- (progn
`" s$ e& e: K+ A' W W6 c - (setq nom_cmd (strcat "C:" cmd)) A' d' C, f) j v* g
- (if (not (eval (read nom_cmd)))( {- l2 p$ `. y: k
- (eval
$ L l" b( F% a - (read (strcat3 K6 B$ ^2 C2 h5 w/ m
- "(defun " nom_cmd "( / rtn)"
1 y9 c7 W) M B: j7 f! j - "(setq m:err *error* *error* *merrmsg*)") x! G2 j1 d0 V9 P6 u6 o
- "(if (ai_ffile " qapp ")"
5 U4 |) i; e" U' Z' F6 O# V7 M - "(progn (princ initstring)": ^4 |; \. G8 H& z$ s! r
- "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"
0 K2 S! V1 z9 f* p2 G7 F - "(ai_nofile " qapp "))"! U8 f! @, r* ~
- "(setq *error* m:err m:err nil)"% ^4 u+ }- w8 L$ m1 p( d( N! u% S
- "rtn)"
& g: z( O* ?; j( `" Z0 v' [9 y - ))))))
* E: m5 {& k9 ~! s8 h0 @ - cmdliste)
4 T- E! }6 O: |, c - nil0 V5 P" }! b. X+ D. i F* J
- )
- u7 F; u* g% r' ?# h - 8 f a ~4 A1 I6 P
- (defun autoload (app cmdliste), `% [9 h$ n2 S x2 s: |0 _3 _. ^
- (_autoqload "" app cmdliste)
% h! ~' h* e+ W' c. p0 F1 P - )$ f. F$ X2 `. h) `
- 0 q6 X: y$ u X. j, x$ U2 y
- (defun autoarxload (app cmdliste)
: z7 j0 A$ k. t- D5 \' t - (_autoqload "arx" app cmdliste)' u: D" {( X$ x6 C
- )
' y6 o ~2 p) n& f) D; L* D
& @; d1 a% y* n# m& h6 ]- (defun autoarxacedload (app cmdliste / qapp symnam)+ v1 P* n- }, ^# l, ^+ S0 `
- (setq qapp (strcat "\"" app "\""))
1 ^" P: C- E* u8 w+ h$ d3 _" K. U - (setq initstring "\nInitializing...")
2 L# p. n& A! A3 i" o& @; H: ` - (mapcar
1 z+ n/ u' a" L- }2 |8 B7 ~ - '(lambda (cmd / nom_cmd)& H2 o+ D. p2 p. A0 r0 Y
- (progn
% \; @7 h8 v' |7 L* A: ^( t - (setq nom_cmd (strcat "C:" cmd))0 f* o$ i2 h, ^6 J9 G3 W6 s4 e
- (if (not (eval (read nom_cmd)))' U; m: z; ^- l, c
- (eval
+ Q& {& b4 v& V4 c" d - (read (strcat- {5 l5 G6 M) Z0 x; A* x
- "(defun " nom_cmd "( / oldcmdecho)"$ N, I, D+ Y$ Z) ]/ x. S$ G9 w4 [
- "(setq m:err *error* *error* *merrmsg*)"
0 d: {/ |1 Q1 q- q - "(if (ai_ffile " qapp ")"0 r v$ J9 L, X
- "(progn (princ initstring)"
! X) P, R' c/ E! s - "(_autoarxload " qapp ")", ]( w& Y5 S( X4 _6 w
- "(setq oldcmdecho (getvar \"CMDECHO\"))"
, _. M$ P# U1 _2 G" a7 h - "(setvar \"CMDECHO\" 0)"/ [8 I; C" F M
- "(command " "\"_" cmd "\"" ")"9 p9 E4 t9 Z0 ]$ O
- "(setvar \"CMDECHO\" oldcmdecho))"6 W3 l8 Z: n' S: z% e: M* Z
- "(ai_nofile " qapp "))"
# E7 @# h" l# k - "(setq *error* m:err m:err nil)"! n+ {2 ^: \4 h& T
- "(princ))"
`5 Y3 W9 V: G1 x5 S - ))))))# j( I( [; e; n- C8 p, U
- cmdliste)$ o$ X8 J+ B1 Y R7 K( ^
- nil
2 o, K/ N, y( I: e2 T; s! \ - )8 @, G+ t- P" S- b7 y. D
- 7 B( Z- |4 S. z
- (defun _autoload (app)$ O% F- N" \; n+ ~0 o2 j4 r
- ; (princ "Auto:(load ") (princ app) (princ ")") (terpri)6 j* R4 j+ s+ x; E* }1 C
- (load app)! C9 v2 w' J3 f" |8 U
- )
* ^* k7 ~. t V0 x! |% b) {, X' y8 S
# G3 V" a0 T) ^7 E8 X( A- (defun _autoarxload (app)5 o7 ~6 b" F) H6 ^8 u4 Q8 N( ^
- ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri)* V) E. O, N% Z
- (arxload app)8 L/ P' K3 K5 T6 c% _
- )
4 @- i, k* B+ E- r e! o/ H* \0 O) m9 l
: d. m( k" h. [: `5 K4 H0 ^- (defun ai_ffile (app)
5 G. f. P5 R( L% _& }& n1 J, e6 I - (or (findfile (strcat app ".lsp"))5 u- R, }+ C# _8 \- W1 N( H/ E* k
- (findfile (strcat app ".exp")) M" e' g; L4 n3 D7 ]7 Z
- (findfile (strcat app ".exe"))
; ^8 B! d8 l# G+ n! A; ? - (findfile (strcat app ".arx"))
5 @- i. h2 M4 b - (findfile app)7 _. P F* v& @+ J4 Y; b/ _& V# W
- )
5 i$ Y. N8 s& _0 {# y - )% v: C+ Z: b7 b4 y/ \
% Z H' V' j% e, w- V! V U* t- (defun ai_nofile (filename)5 {4 s" r+ h# |' I+ Z( A
- (princ+ y0 u# ^9 ^/ n4 L! _
- (strcat "\nThe file "
. g( `2 X, E. H! l - filename0 |9 Q2 S4 }' W. b6 \
- "(.lsp/.exe/.arx) was not found in your search path folders."
! O4 \# B8 d) R- L r' K J, ~ - )
* q* K8 B4 z* j2 W' P1 e+ {2 y8 K - )" J9 x Y& m, t D( h) D0 e
- (princ "\nCheck the installation of the support files and try again.")5 `! w) ^6 ]$ _7 y4 Z
- (princ)( E# K+ ~0 w$ r9 G
- )
, c; {% [" ~" g- t$ @! a/ U - 1 |" U c! r9 P% C
- 9 Z' M9 F! J2 ?6 G3 m
- ;;;===== AutoLoad LISP Applications =====, N; ?3 K9 f/ |/ ~0 z- h: C5 a
- ; Set help for those apps with a command line interface4 Q, P8 d. }# o* H& {' X# q2 O% ?
- 7 B4 h- r1 y4 w, f/ L6 ?% a
- (autoload "edge" '("edge"))7 A7 E; G8 s% Z" _
- (setfunhelp "C:edge" "" "edge")
7 h7 k; p8 A5 |$ ^5 i) f
0 J' q; S8 _9 {* c- (autoload "filter" '("filter " "filter"))
( J/ [ Y; A* @5 _: ^2 v& _
- w0 C$ R$ @, R- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"* x2 [" Y3 ]* i
- "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")
; E% s6 W ^, ~! o; O" c; _( g. t( v - )
- \2 m1 Q! _% x$ {6 n; q1 |# j - (setfunhelp "C:3d" "" "3d")9 o3 i! d1 K, u! }
- (setfunhelp "C:ai_box" "" "3d_box")) o& d9 L0 X: s! K. N; r% h2 C
- (setfunhelp "C:ai_pyramid" "" "3d_pyramid")
1 v# N i H! y; n$ F( F - (setfunhelp "C:ai__wedge" "" "3d_wedge")
( @; O2 i! H, R4 A& [* [ - (setfunhelp "C:ai_dome" "" "3d_dome")! c r" F) W1 e4 ]4 ^1 j
- (setfunhelp "C:ai_mesh" "" "3d_mesh")
4 s6 G) M2 t( _ - (setfunhelp "C:ai_sphere" "" "3d_sphere")" H8 i* Z8 l$ X6 p* I3 G
- (setfunhelp "C:ai_cone" "" "3d_cone")" _6 z" E. e- h+ |3 `' n7 e" B7 {
- (setfunhelp "C:ai_torus" "" "3d_torus")( j9 @7 @& ^! ~5 t3 H8 G
- (setfunhelp "C:ai_dish" "" "3d_dish")* i* [+ I$ N0 V4 P; w* w u, X
- 2 R. b/ Q& D/ `, L N; c
- (autoload "3darray" '("3darray"))3 z( u" [1 J9 |4 V* Y
- (setfunhelp "C:3darray" "" "3darray")
* `& N% w1 A% A9 L3 I
" Q- g3 Q3 o O- (autoload "ddvpoint" '("ddvpoint"))
. h3 q$ {5 _! w* F
, A6 J. C8 J9 |$ T- (autoload "mvsetup" '("mvsetup"))0 d, j9 h' ? l* n
- (setfunhelp "C:mvsetup" "" "mvsetup"), X' M/ {6 b8 I
- % o5 r( p- x4 Y
- (autoload "ddptype" '("ddptype"))
6 K0 y2 I/ N; y1 S+ A
- C s0 i* n0 _7 x0 m' V- (autoload "attredef" '("attredef"))
, C: W; }0 J/ E0 g- C( Q0 Y" E - (setfunhelp "C:attredef" "" "attredef")
' s ^, W0 `) \' i0 b* h8 I0 | Q
2 ~9 o- H4 w! \1 [( B- o- (autoload "xplode" '("xp" "xplode")). S4 X1 E. S7 F* d: S; W
- (setfunhelp "C:xplode" "" "xplode")
% }$ b6 p& p' o; I" J: q& J
8 o$ H7 }2 x0 i" |! x0 R- (autoload "tutorial" '("tutdemo" "tutclear"
/ f& Z& k; o" k% y. }2 Y5 v* } - "tutdemo"
" S2 ^8 E; [7 V: g - "tutclear"))
4 V& W5 _7 |, k/ S7 K
% f$ E; d) k7 F2 A- ;;;===== AutoArxLoad Arx Applications =====: a9 B$ f5 q6 H; A, D
9 s8 z- q" m- C, }- (autoarxload "geomcal" '("cal" "cal"))
$ G1 n E3 }+ I
# J) V8 Z* [" \$ r! u. G- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align"
( N3 K1 T, ~1 s* j - "mirror3d" "rotate3d"
+ U0 _3 P) J5 Z - "align"))
3 _- k3 ?( d. E" z - / S& d+ x$ Z1 v) ]/ u7 V$ Q
- 5 H3 w2 ]4 b- P3 B! {1 ?
- ;;; ===== Double byte character handling functions =====1 `! f& [1 J- x8 l K
- , \3 `4 G5 q) u, ^' q4 Z4 u
- (defun is_lead_byte(code)6 V( ]- j* h$ H3 p- o1 E5 U4 e
- (setq asia_cd (getvar "dwgcodepage")), c, I- n/ [8 [
- (cond
% j; v4 ~. C1 V. `( a5 k( J& u - ( (or (= asia_cd "dos932")
* X6 _: Y7 U5 r7 v2 p- b - (= asia_cd "ANSI_932")
. k' { R) x' s6 N7 I3 x2 B - )6 |: l u' W$ K
- (or (and (<= 129 code) (<= code 159))% A' b( q; m7 k
- (and (<= 224 code) (<= code 252))
3 H, N$ r0 q) f: Z" z+ e' R0 h - )4 ~2 S# B9 o8 C x$ M
- )
( x9 v% `$ Y3 z+ k' q - ( (or (= asia_cd "big5")
: N$ X( _* Z- W2 l: z - (= asia_cd "ANSI_950")
' A/ R3 P+ a% ]. J - )
- B6 L6 L9 N/ R - (and (<= 129 code) (<= code 254))5 N& c5 x% w: r5 [
- )4 u4 A* U# Y1 y. \ \
- ( (or (= asia_cd "gb2312")
: m& v5 }& o! x' }2 p - (= asia_cd "ANSI_936")
2 m& P& M J' I+ l - )
2 z4 _" s, e+ P" u1 y; y3 ] w - (and (<= 161 code) (<= code 254))6 \; ?! B8 r2 i3 h0 H0 m/ I
- )& A9 X4 u5 M& k- j6 n5 W7 }
- ( (or (= asia_cd "johab")
2 f( _7 i$ O3 J5 X - (= asia_cd "ANSI_1361")1 j! P- H' f# u4 q! R0 K
- )
6 n' y! v( B+ y9 x8 `6 @( e/ _ - (and (<= 132 code) (<= code 211))
% u$ R! W8 {% M/ v - )
$ x( B4 q# |- N7 ]# V - ( (or (= asia_cd "ksc5601")
. J% }/ g2 G* I A - (= asia_cd "ANSI_949")
7 s" h: W: c# E/ C - )
+ z9 K% _* R5 n$ f( G - (and (<= 129 code) (<= code 254))
- }; T) l8 O2 H/ n2 p* g - )2 f! n7 W5 \% I7 W! P5 l. S
- )
; @: a+ n9 [: [# d2 z - ), B' p) f9 y+ H
4 e' s& e9 W# b+ G- ;;; ====================================================
" _* F6 m9 F% B4 m* v2 q - / N! @4 z ^. i! l% `% F
( ?; B- n5 x* D6 N( r' X- ;;;% _: B6 u' s) T! T0 ~8 ?
- ;;; FITSTR2LEN$ T, f( c$ }2 c5 I
- ;;;
, z8 q: `5 b! E) N# X; r - ;;; Truncates the given string to the given length.
) J) o9 R. B- s. R4 t; ~ - ;;; This function should be used to fit symbol table names, that
M" i+ Z4 C# ]2 G7 a - ;;; may turn into \U+ sequences into a given size to be displayed& }6 ^) k! p9 V! }5 s* n
- ;;; inside a dialog box.! o0 Y4 }+ j v) Z4 f* I
- ;;;* O# Z) y$ M6 l9 E- z2 a
- ;;; Ex: the following string: * u7 F$ ?$ L$ B: w8 n$ q9 Z9 a$ t
- ;;;
6 r* r2 X+ V1 U - ;;; "This is a long string that will not fit into a 32 character static text box."9 F9 ?# Q; P: q
- ;;;
9 Z/ J/ _! [5 v+ p - ;;; would display as a 32 character long string as follows:
I/ e9 L: O- ^- L6 K# r; u j - ;;;9 ]$ T! e6 }* Y' A. q( V
- ;;; "This is a long...tatic text box."
, [5 y7 |6 `4 q$ [) a - ;;;
3 y, x6 q- t! i - ' j4 d: _$ b% z3 e: h5 N, d
- (defun fitstr2len (str1 maxlen)
! I& J$ d4 @( F3 K0 e O
% a2 }/ T" |! W: [- ;;; initialize internals+ \( M' a) O, x
- (setq tmpstr str1)
G8 a# K; t4 W - (setq len (strlen tmpstr))
7 K0 a4 ^/ }$ ~# E, j
. N X4 S$ s( G$ A" ? J- (if (> len maxlen) ' s& B+ \- s2 j& ^8 X
- (progn
0 w X3 k8 D' W0 { - (setq maxlen2 (/ maxlen 2))
?5 W. R; X' `( q - (if (> maxlen (* maxlen2 2)). ^2 K( v9 K5 b; h% y
- (setq maxlen2 (- maxlen2 1))
$ s% Z! K& @3 `! ^7 k* u* n+ E - )$ ]" ^& A4 p6 O
- (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1))- l7 r @, @, O \5 f" k1 v
- (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))1 c5 d5 [/ y" R; d9 B
- (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))
7 f. f$ H: i$ C' L1 I* A2 f! z) B - )
( I1 [6 E1 ^" K# W2 B* L - (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1)), Y7 Q% d/ v' O& R+ d: t+ O1 i; c
- (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3)))): z T Q. Z" g9 C' m" f% @" Z0 `+ Q
- (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))$ B1 m3 Y+ o( a1 T
- )* d" W( ]2 O( a. k4 n( q( l' Y
- (setq str2 (strcat tmpstr1 "..." tmpstr2))6 Q* K6 i6 ]/ P' ?, j' v7 D
- ) ;;; progn
( }/ {8 c: a8 ^2 Q7 g - (setq str2 (strcat tmpstr))' m5 Y* j/ @' o3 b4 {3 Q
- ) ;;; if7 ]- A( ~/ _/ ^, Q* b- o5 k
- ) ;;; defun
) S7 v' p/ Y8 i9 G - , B3 J# a9 E2 l5 h9 E# y
- 8 Z6 d5 E# v9 H" c! @
- ;;;
$ P4 ?$ q7 K: {' b3 o+ t) ?1 N' W - ;;; If the first object in a selection set has an attached URL6 H2 ?5 g, d! Y0 u
- ;;; Then launch browser and point to the URL.
6 T0 T) g3 N/ f) c/ o6 ~ z& B4 \ - ;;; Called by the Grips Cursor Menu( D" ?4 {9 l" [( i5 A7 v
- ;;;' }4 o3 `# K6 Y# k0 Z3 l
- 7 g9 A5 s# v2 i7 `$ i( o/ c
- (defun C:gotourl ( / ssurl url i)' j4 |1 C2 P' O A7 w
- (setq m:err *error* *error* *merrmsg* i 0)
1 }' K8 U( ^) i - & x# a y* z/ G
- ; if some objects are not already pickfirst selected, 5 u$ Z0 J" V ? w; N
- ; then allow objects to be selected
% _( o0 A* H* u2 k" t! z" K
2 F) W- E U) Z0 X- (if (not (setq ssurl (ssget "_I")))% ~( I0 {7 r& ~$ f8 H
- (setq ssurl (ssget))
! W! `+ B: n5 D) A5 p2 X - )& h( R8 `# q" o, Y# s5 h
9 r d) f! T+ A/ M t- ; if geturl LISP command not found then load arx application) {' N% u& m' l2 M
- 4 h* l0 R# r" m' G0 |; P8 d
- (if (/= (type geturl) 'EXRXSUBR)( i" D4 L! X; x, ~9 G& Z% H* L p
- (arxload "dwfout")
0 t# Q# z, M. D1 j( Y7 E- h7 P y$ c - )9 v5 t8 M' _* f+ b% g7 T
-
; W5 i6 H# k4 r5 }, I - ; Search list for first object with an URL5 V2 S2 b: n: R* ?0 C! R
- (while (and (= url nil) (< i (sslength ssurl)))
; o6 [ G6 d! c5 E( ] - (setq url (geturl (ssname ssurl i))% V! f7 A4 M! g% F6 V5 @* S3 N
- i (1+ i))
5 j/ b8 C1 N7 B# s2 q+ L - )" C/ b# g- T d: @8 z* v( z1 C
- 9 w. ?9 v# O9 K0 k- j" r
- ; If an URL has be found, open browser and point to URL$ T8 _8 }# _7 r; F* S8 C7 e% h5 B
- (if (= url nil)
; ^ g5 Y% o: `* t9 I5 |/ v - (alert "No Universal Resource Locator associated with the object.")1 `) Y7 b# j O3 |* U+ Z. u
- (command "_.browser" url)
1 t4 \% t% P6 o7 `# }' K3 p - )
0 a. j" Y7 |6 `8 |
* x/ Q( b1 s7 ~; ]; Q9 q+ d% _- (setq *error* m:err m:err nil)
9 K3 B, X& l9 [: R0 U% S& R - (princ)
7 m! w ^) ^8 I+ V
) o! H# E. a" P2 v5 w' j) \( U- )! P- c7 Q' X E0 g
- 3 Y3 q- b+ I0 g% _$ Q2 D
- ;; Used by the import dialog to silently load a 3ds file4 q/ K* |( L* q1 e e1 ~% M
- (defun import3ds (filename / filedia_old render)
( L! d( W m1 f5 z- Y - ;; Load Render if not loaded
% e4 {# S; ?9 e/ K" m - (setq render (findfile "acRender.arx")), k& V3 n, j; `
- (if render* [% [ T4 \% E' B: }& _ ~2 y) |
- (verify_arxapp_loaded render)
; C5 a$ v9 m5 W, l - (quit)% e$ t0 w* [+ U, R" Y8 }
- ); R7 N4 _( l( z, V# G4 O& s/ E3 ~
- , E( v: L) M( s9 W
- ;; Save current filedia & cmdecho setting.; a0 o5 {3 _6 i9 {8 J
- (setq filedia-save (getvar "FILEDIA"))
S7 H: \ v/ t7 Y - (setq cmdecho-save (getvar "CMDECHO"))
, ^2 c/ J: @1 C/ F# p* o - (setvar "FILEDIA" 0)
5 u( n$ [0 `* E - (setvar "CMDECHO" 0)
M: E" ?/ ?1 p! u1 W' e, p
\! P! @7 D* z1 x" ?8 L- ;; Call 3DSIN and pass in filename. ~4 ~1 x s* {# ?4 |
- (c:3dsin 1 filename)& f ~9 q1 f G4 n: x
E$ I& F- U: i3 o# @: p- ;; Reset filedia & cmdecho
; U* |# _2 `' s* A' E. S - (setvar "FILEDIA" filedia-save); [+ C- o9 ^. `2 ?. w4 o* z
- (setvar "CMDECHO" cmdecho-save). H+ g7 }# q, H7 P. t3 S
- (princ)9 e O4 `# N' x+ s, {9 M
- )3 U9 q" t8 |4 Z. a8 ]
, \! M* e0 u* a3 C# x0 \# U- ) ~+ |5 H! R' [2 H
- ;;;=== Menu Functions ======================================
; i$ @0 V: R7 q, ^% x- v
# J p0 G. K/ G8 h' M7 k9 }- (defun ai_rootmenus ()5 J+ g/ k" Q& x" S/ M/ ?
- (setq T_MENU 0)+ M& g+ ?) h" Y4 l2 l) }
- (menucmd "S=S")" {) V" c" B% d: E- W0 A
- (menucmd "S=ACAD.S")
3 v9 e6 c3 L; _, N - (princ)
) i* L* u' `3 P/ d; M; m" L - )
7 r5 w5 S/ V( u% I' P - $ t9 L% a0 I8 D1 O; J2 |
- (defun c:ai_fms ( / fmsa fmsb)4 R- w3 y- f& e9 c$ z% _
- (setq m:err *error* *error* *merr*)
8 `) f+ m8 e; }5 _: a5 @5 K/ h - (ai_undo_push)/ @+ J! f: u$ J0 C4 ~0 f
- (if (getvar "TILEMODE") (setvar "TILEMODE" 0))' s% B, D+ k! ]
- (setq fmsa (vports) fmsb (nth 0 fmsa))
2 Y) B" s( t1 f, p# h8 U - (if (member 1 fmsb)
' u( k9 g9 V# s- D7 B3 I% I2 W - (if (> (length fmsa) 1)
; U1 L3 G. ^9 @ - (command "_.mspace")" p6 m" A! W, L1 M, i& B
- (progn& g* t9 ?) g! ?! W- w3 v5 t+ d
- (ai_sysvar '("cmdecho" . 1))! _6 {# J5 |, [( ]6 O6 H8 ]9 m
- (command "_.mview")+ y, w6 X% Q) h) A: P+ |" m
- (while (eq 1 (logand 1 (getvar "CMDACTIVE")))- N7 P" x- u, `6 g5 G
- (command pause)$ C* H9 ]8 Z) {& l
- )
) U( {. v1 n, j% V2 p - (ai_sysvar NIL): q+ d+ _0 k1 W6 _, f0 o
- (command "_.mspace")
( J0 ]2 |: _: e9 R. S - )3 ]9 L Y9 r& V" H$ v) `+ m1 }
- )
8 ?5 Z; \+ q* b/ e- [; z; ` - )
) S9 [: f; O6 V: @5 j6 U% M* R' @ - (ai_undo_pop)6 |) Q/ H2 a3 Q4 E+ [! v
- (setq *error* m:err m:err nil)2 i7 F2 ?7 X9 Z0 h" Z7 q' r
- (princ)! ]. E6 y2 r0 ^" s. ]! [( d' |
- )
$ H" X/ x% D" S" Y# Y6 p - 6 C, G, c( U* M+ L3 u" ]
- (defun ai_onoff (var)- E, A l- A/ V) ~8 ^
- (setvar var (abs (1- (getvar var))))
9 A/ v' A! e' g7 a" c, ~( v" i* V5 M - (princ)5 j" H5 v1 z6 X: }1 G* M; W( I2 \
- )/ y1 {& t" c( W( z' N
+ r2 `* k6 T! a0 [- ;;; go to paper space) B; [/ G0 [" P: W3 M x
- (defun c:ai_pspace ()
8 ^( b7 j7 M" `+ `, r( O - (ai_undo_push)
2 V: F3 M" M: z. U4 Q* C - (if (/= 0 (getvar "tilemode"))
0 Y' ^, A* Z& o! q" C) ?! ? - (command "_.tilemode" 0)
, w) q3 F. V) p - )
0 |$ z7 ^% C/ H4 ~ - (if (/= 1 (getvar "cvport")). p' x2 E7 ?! f
- (command "_.pspace")
, J$ M7 H1 ]; y8 A - )6 s5 C& s3 C# k& F" W5 n
- (ai_undo_pop)! M4 f9 A! J& f4 W8 W$ J) j. i0 B
- (princ)9 [. S& T, s+ N( U( O9 K
- )3 l% [, ^, K( I! d: f
4 H; |: N8 ?; c7 [- ;;; go to tilemode 1
F, f: v y/ t! N2 j1 u - (defun c:ai_tilemode1 ()
# t1 B" m9 X. p - (ai_undo_push)
; h! R& g! w3 ~- p N6 [ - (if (/= 1 (getvar "tilemode"))3 d/ b& p9 ~* q6 c! X
- (command "_.tilemode" 1)4 c4 H i5 e2 l* o4 N
- )* y; t7 w# m! W2 \& {! j; v
- (ai_undo_pop), @8 d0 j/ A% Q: e
- (princ)# `& E* B; `& o+ N# m* D8 |# v0 u
- )5 q4 t6 H- Z. P, G
9 B; e4 j+ T7 n R: N" C- ;;; Pop menu Draw/ Dim/ Align Text/ Centered
% S1 V* E& G5 n# Q8 j. P - ;;; Toolbar Dimensions/ Align Text/ Centered- P; {& C! o* z7 a' m' a8 J
- & ]; l; P' v1 V% P
- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss)' Z* w4 T: @! v9 f& h) p; S1 t+ h7 A
- (setq ai_sysvar (getvar "cmdecho"))
, l6 h- x7 E8 M0 S; C - (setvar "cmdecho" 0)9 m- N5 p' ~9 k, U1 ]: b+ c
- (cond
5 Y+ N, Y \8 ]) w0 o9 W/ a6 o: R - ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION")))): i$ t+ S' X8 \: [0 p4 o/ j
- (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss "" ' K9 j$ x! N" R7 X8 b- L$ [
- "_.dimtedit" ai_dim_ss "_h")
" F' ~6 f( R+ m8 ]4 r. T( P - )
' u4 v7 B5 G8 U- j. l - (T nil)
3 l8 L* t, o2 ^7 {& E% | - ) b4 i2 ?& J+ u. w: V' v
- (setvar "cmdecho" ai_sysvar)
: N6 f5 A6 p3 w - (princ)
/ t: |. f9 A. B2 C4 m - )
" m# {. |6 ~$ P" [ [3 A a& F - 5 [2 S& e3 c9 I
- ;;; Shortcut menu for Dimension Text Above
8 F7 I" ]( M% {; \0 A# T+ w4 o
6 I9 G! o; o+ S/ b- (defun c:ai_dim_textabove (/ ss)
3 O& _( W" t+ ^' U8 H# {$ ?# \/ } - (ai_sysvar '("cmdecho" . 0))
1 I5 k( U1 I$ Z9 E1 ~ - (if (setq ss (ssget "_I"))
$ u. [7 y! D- r7 C0 x - (command "_.dimoverride" "_dimtad" 3 "" ss "")
3 q v- F9 Y6 i - (if (setq ss (ssget))
" V: w) Q0 F6 y- n A - (command "_.dimoverride" "_dimtad" 3 "" ss "") % o$ C) q' U9 v
- )5 ~2 H) j1 [" m' W- e
- ) \) u7 _$ j' t; c( y, w0 l5 |
- (ai_sysvar NIL)
) e0 S# @: |' V) s7 ~2 d7 t+ P3 ]1 q - (princ)
' A Z7 B" V0 k& P6 o) @& Y# r - )& }4 f+ @& J/ n! g1 T/ A Y3 _: ]* y
- 1 E* S$ a! O8 P- s* {
- ;;; Shortcut menu for Dimension Text Center ' I8 t* F2 s+ g6 W( U# e8 X
- / q% H v' g% P0 Q
- (defun c:ai_dim_textcenter (/ ss)
# j$ i# a. e2 e. @: ]1 o! W - (ai_sysvar '("cmdecho" . 0)); j2 `1 ?$ r8 \5 r
- (if (setq ss (ssget "_I")), T) P3 d- q/ q9 c
- (command "_.dimoverride" "_dimtad" 0 "" ss "")
: V4 c- S; o7 }, ?' M; u; b - (if (setq ss (ssget))
6 c$ N8 M9 E- r% u6 R5 R - (command "_.dimoverride" "_dimtad" 0 "" ss "") 5 Q4 x4 J" x- M# O! u. f; a
- )# l0 b# I+ A9 E# K
- )
: ^# y5 }, K# W# @4 M% Y; Z - (ai_sysvar NIL)
! ?5 q5 C. f4 T: F" a - (princ)4 P; I' b" ], G- D4 j2 ^
- )8 {1 Y% p' L: c9 d& o# h
7 w( R$ n+ z' F9 \- ;;; Shortcut menu for Dimension Text Home
v. a4 T: R o! j1 B
2 n% ~" L& n. w- (defun c:ai_dim_texthome (/ ss)2 o2 Z, }' f$ z
- (ai_sysvar '("cmdecho" . 0))& R- D. s% X$ D, ^$ O/ U3 }
- (if (setq ss (ssget "_I"))2 J: j7 I c, R7 J! p1 A8 W
- (command "_.dimedit" "_h")
0 M5 C$ s! n: p/ y) O/ F - (if (setq ss (ssget))
; b3 C5 M/ T7 E7 e3 i; |- | - (command "_.dimedit" "_h" ss)/ d4 n+ B7 ^# m* A8 r) i6 Q# k
- )1 O4 \9 r( @/ S4 Y! z9 e! i
- ), H4 s( w) L8 {( ^
- (ai_sysvar NIL)
4 e# J% W" V2 P% e. Z) ^ - (princ)
- L. u# U0 V+ Q - ): a: c6 K8 `; L' h
- 5 Q: w3 H7 e' o# c, E
- * x4 W5 J$ q/ Q4 M
- ;;; Screen menu item for CIRCLE TaTaTan option.' q8 d1 G) n5 w' Y; w r
- ;;; first, get points on entities
+ @- L4 J! `7 ~2 O4 S- C - (defun ai_circtanstart()2 M1 n- l1 Z: T Z" ^) |
- (setq m:err *error* *error* *merr*), E* [; @' B9 y9 @- [4 g9 V
- (ai_sysvar 6 i3 w+ D" H8 S0 ]
- (list '("cmdecho" . 0)
; G( R7 k8 f9 b/ X - ;; make sure _tan pick for CIRCLE gets same entity! H, l4 ?, v! Q" M3 _2 s/ K( q$ F; |
- (cons "aperture" (getvar "pickbox"))
; h5 r' d$ o) ], F" B - )
Z8 ~( S5 n) R: F4 y3 s - )! b9 U3 v# Z, J; z. ^& w
- ;; prompts are the same as CIRCLE/TTR command option
) f4 J7 L- A2 f/ k% |; \ - (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))
- i& r$ {! c" X. M - (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))
/ t3 u2 V, T4 ~ - (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil))
- p% Y. [( P9 ^0 r* y - )& A8 m/ }' D" Z( @9 t; g
- ;;; Command-line version
4 e) e6 d9 d1 c1 X6 ?6 v+ J! W - (defun c:ai_circtan (/ pt1 pt2 pt3)( F; w$ @1 G% x# x5 G# {8 D7 R
- (ai_circtanstart)
9 z( {7 m" G2 M. | - % M% W. U/ N& B! B
- (ai_sysvar '("osmode" . 256))$ j. [5 s9 F8 o; {- P
- (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)
& ?" C# R7 z! K -
$ Y5 [5 O8 v5 y6 D7 }) _6 c. m - (ai_sysvar nil)
8 {, u- I3 b0 ^% j+ z( l, R1 y - (setq *error* m:err m:err nil)
0 F; Y( A" e" @. O - (princ)4 k& F0 u+ o% N
- )
# i. T2 @2 N& Z3 a; f1 ~! T7 x - ;;; Use this if CMDNAMES == CIRCLE5 |1 w& O& L3 {3 B
- (defun ai_circtan (/ pt1 pt2 pt3)
' @, `; y# g, B: Y7 ^ - (ai_circtanstart)8 }' m% K/ @4 B9 X" O
- $ ]3 k; i$ W$ O# d. J2 o% m/ p7 q0 Y
- (ai_sysvar '("osmode" . 256))
& Y$ ^) F0 ?- M' G - (command "_3p" pt1 pt2 pt3)
* e5 Q7 H- v7 r5 z$ R6 G3 }% e -
/ q, s2 n3 a+ {( g. U0 M - (ai_sysvar nil)" O( U, q+ Z, z
- (setq *error* m:err m:err nil)
9 \& T, S$ q: T% r4 ]7 J/ g3 C7 o - (princ)
~9 c, A. x; G6 Q8 S( ? - ): W! F% I- h/ p; E
- : g7 L; ~3 @& ^9 b8 ~9 r/ J% B) z; I. \
7 Q- O( J& d" w w
5 n: a: y2 W3 f5 w- ;;; Shortcut menu Deselect All item.
8 i/ S. a( l {
! E+ v1 K3 m' n( p8 R3 ^- (defun ai_deselect ()5 S( Z2 I' P$ F! P4 k
- (if (= (getvar "cmdecho") 0) ;start if
- d+ U& d4 W1 D7 J1 e' [3 N - (command "_.select" "_r" "_all" "")
0 |- @1 o+ v: ]% d9 S - (progn ;start progn for cmdecho 1) ]* I4 C. c5 l
- (setvar "cmdecho" 0)7 W+ |+ V, W' ^, S3 x
- (command "_.select" "_r" "_all" "")( }0 E+ r( o+ ]: o
- (setvar "cmdecho" 1)
; D8 V7 x) V6 X8 _ - ) ;end progn for cmdecho 1
0 Z6 B3 c9 }* j ~- m6 k2 C - ) ;end if6 Z; y# m( J) O
- (terpri)% U4 k8 B3 f+ s* C! U: B5 W
- (prompt "Everything has been deselected")# ]. S+ m. R% c; t
- (princ)
( e& N9 ^' r5 K6 `" A) ?) E; w2 N) x4 S - )! R" p% h9 m( P0 q; S
- $ a) ~( |: h) [7 O
- ;;; Command version of ai_deselect to be called from the CUI6 e3 c. D* I0 C M2 O: O! P& Z/ b
- ;;; so it gets properly recorded by the Action Recorder6 G, e* S' d6 z1 q, B$ J
- ;;;
0 @* r( W: r' P) M - (defun c:ai_deselect ()
$ T) t. y' u( h( x% V9 h3 n - (ai_deselect)& ?0 k! @( L& m; l+ m/ g3 @
- (princ)8 |& Z: B2 V( K6 F, ?
- )
) i3 C( `, a1 A" Z$ ^ L
% H1 Z9 Y% r6 b' d; T# x. `4 H' R- ;;;- {5 d, Y& w1 e8 [5 K; z+ n7 T
- ;;; Enable Draworder to be called from a menu
" \# k4 t5 j+ {/ }& H - ;;; Checks for Pickfirst selected objects
+ a" L2 `0 G" `$ B M; ^ - ;;;& l5 g7 t# X* A
4 i3 r; U% Q: s# ~8 t6 Q; i# c- (defun ai_draworder (option / ss )
0 z9 [' @. X5 `# r4 a8 h - 6 X1 J* R8 t X6 V+ c
- (setq m:err *error* *error* *merr*)
8 {; E3 N8 P; a4 C8 O& K5 h - (ai_sysvar '("cmdecho" . 0))- z) N2 K5 ^6 L' }
! O6 g" E, h+ u( Y- (if (setq ss (ssget "_I"))
/ L C! a$ U; P) D - (command "_.draworder" option)
$ o/ O% i1 Y7 o4 y/ ]- G- |, C - (if (setq ss (ssget))0 G& k+ B: A C% C1 R1 o
- (command "_.draworder" ss "" option)6 x& w( s/ g4 ]
- )
# m1 C- o$ z8 s: ~- E. A, E9 b - )- D% ]( ^7 N7 V: t% r! W% W
- (ai_sysvar NIL)
0 b7 F+ x: y/ ]* t& N2 b$ a+ ` - (setq *error* m:err m:err nil)
- @# ]. B" [0 W/ W) }
% l x$ {' T3 U+ [. ^- (princ)2 h6 R4 A7 F9 [
- )& ~, L2 h8 U- i
$ B' |! S6 J1 s, q. }8 ]- ;;; Command version of ai_draworder to be called from the CUI5 D2 D7 N" p6 y2 g7 |1 R
- ;;; so it gets properly recorded by the Action Recorder$ `* Q7 b1 U7 C& w% U, I
- ;;;5 d% D$ n$ h, I, J" w/ A
- (defun c:ai_draworder ()% _. g; d; I3 I4 _7 I' l( \
- (initget "Above Under Front Back")
7 d5 Z6 q! d+ m5 d" A) d - (ai_draworder (strcat "_" (getkword)))* P& H4 E' v6 ^$ ^
- (princ)
/ l- X7 G& d- ?2 N: u1 c0 k& B- ]! i6 u - )( L9 F) L- O: t Q
- 6 u. h" X% Q" P7 T. f
- (defun c:vlisp ()- i3 x) [# a4 t* Y
- (if (/= nil c:vlide) (c:vlide))
1 Z- o2 u3 q6 {+ ~ - )
" J* A/ M. ^1 @: o
, v2 }1 d- s# ~3 r0 {+ m; y8 a3 [- (princ "loaded.")/ F+ I# z* s1 H" ^ g: ?
- 4 T7 D% p2 d5 T1 J" @
- ;; Silent load.
+ B: O4 |3 p1 {# Z" Z- u; A - (princ)
- I9 P. F# T6 o0 p& N+ ^/ g W7 y - $ n4 r/ J; @3 I9 c6 Y
- ;;;----------------------------------------------------------------------------% B2 z( M. o$ M: y6 E# W0 n- e
- ;;;& ^& z9 X& ?" s! @7 ^! i
- ;;; DDCHPROP.LSP Version 0.5
% x3 N8 c' ]6 F( y/ }& O. @ - ;;;
' J9 y, _" G+ n - ;;; Copyright (C) 1991-1993 by Autodesk, Inc.3 x: ]! L# R2 @# s N1 ~. g' n" h/ D
- ;;;
2 u, C* B: E; ` - ;;; Permission to use, copy, modify, and distribute this software5 S& `3 Q7 W y- F
- ;;; for any purpose and without fee is hereby granted, provided
. G: W4 ^6 g! H - ;;; that the above copyright notice appears in all copies and that% P8 y9 Y( c: l% H q
- ;;; both that copyright notice and this permission notice appear in, N6 P+ m T) l! ?. k. f" \
- ;;; all supporting documentation.( A' ]8 i3 D1 g6 E
- ;;;1 K/ P- P% G7 u. @0 E( N# I
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED! W9 s% d% u% Q* q* ^& O
- ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR
$ R: n! I9 a. E9 F9 x& ^ - ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.
% r$ X! j$ ]& u5 S! ? - ;;;
7 G' Y* w' H. n6 H4 ]1 q; i* P - ;;; 2 February 1992
. G; r9 P5 v( v8 K - ;;;
8 v6 N! P* d- e - ;;;----------------------------------------------------------------------------
! Q% s* }1 A/ _0 K" ?6 E" ?5 V - ;;; DESCRIPTION( @4 Z7 [" K8 J' ~% s& E
- ;;;----------------------------------------------------------------------------0 X5 ~& T- d, i) a" M& B; ^
- ;;; C:DDCHPROP is a dialogue interface for the CHPROP command.
D: o7 w, }4 D- z7 N5 } - ;;;* \8 k( r2 `8 {; m' \
- ;;; The command looks similar to DDEMODES. The main dialogue has an image
' \9 i2 e( g' e! l, W0 _ - ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness).
4 |# }' l! ]0 s, x. a+ n( J - ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box. % Q6 v; |) Y- _' _! z9 V/ [
- ;;; The dialogues are all defined in the DDCHPROP.DCL file.
+ l0 I( \3 L) s% u- t8 _ - ;;;
# V9 |0 @% l n - ;;;4 W' o8 S1 W( I S
- ;;;----------------------------------------------------------------------------6 b. i, H% _% V+ D
- ;;;----------------------------------------------------------------------------4 j% A3 f2 v' C' @. U) H1 |% D
- ;;; Prefixes in command and keyword strings: 8 J6 ~0 t5 g5 h: s& A
- ;;; "." specifies the built-in AutoCAD command in case it has been % U& `5 u+ y( K: J9 }, W
- ;;; redefined.; G! s7 _1 M6 e- j/ o- }7 K
- ;;; "_" denotes an AutoCAD command or keyword in the native language
# ^, p8 N3 B" d5 ]# L - ;;; version, English.
0 c9 d2 R! y! R2 P" k - ;;;----------------------------------------------------------------------------
9 ?0 j4 L5 v j V& H - ;;;
d; o' ]. x# H1 S - ;;;* P x0 n! O9 }& `# i
- ;;; ===========================================================================
+ k \, r+ t0 e, [ - ;;; ===================== load-time error checking ============================& K6 a& e: M" }6 I
- ;;;
; E6 ?8 a% |$ \1 j
E X; F) B8 ]8 r- (defun ai_abort (app msg)
/ c) O @: c% Y) S8 R2 f' L - (defun *error* (s); i# c6 g9 L4 W
- (if old_error (setq *error* old_error))
4 D2 ], k7 \" P6 Q/ a - (princ)
, o; h2 ~2 J4 n% J: h - )8 }' y- r+ [! ?! g& C* Y
- (if msg
0 u A1 ~8 V$ C$ B ?, ^' J - (alert (strcat " Application error: ") R# t# B/ @9 V- _9 k
- app' z4 `" c$ r; w* d
- " \n\n "
! R- O; Z {% ^1 | - msg
1 V3 A- G* T% W' | D - " \n"
& g! J _# l2 R o$ W - )
7 F2 C& t+ b$ u7 p. S' i, U - )% P3 k* ^# B. ?7 y' o
- )
$ u; s r% a; D; ?: A" v" `0 t# ?3 a - (exit). F" n6 y c& c& u7 e2 L: W
- )0 w4 M2 X: \" u$ R
3 X% ]3 x! v; h3 ` ~$ g- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
' Y2 B$ K' u1 _8 Q. E0 A, [3 U - ;;; and then try to load it.& T. U; h& s, y
- ;;;3 W4 @5 @+ T) W
- ;;; If it can't be found or it can't be loaded, then abort the
, i# R6 _( D+ Y - ;;; loading of this file immediately, preserving the (autoload)9 H: V. G* l m5 W
- ;;; stub function.
% e# S; l5 A: W2 C8 n! d) h
q9 @5 V3 V3 g% p- (cond( r8 I; ]& C* r4 b- y' Z
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
+ V$ q& R3 B q. B8 {. n - 1 g* R H. [! s. x
- ( (not (findfile "ai_utils.lsp")) ; find it
+ V5 Z% J% ^8 f4 b- t# @ - (ai_abort "DDCHPROP") V, `9 D; R, ~ Q# l- F
- (strcat "Can't locate file AI_UTILS.LSP.", S4 ?' @$ y: b( m
- "\n Check support directory.")))
7 J$ e% c$ Y) v6 @' w* x2 K8 R - ' }" O1 d2 b" g, ?9 o) ]
- ( (eq "failed" (load "ai_utils" "failed")) ; load it" u6 q: B7 s3 s4 l% t6 R/ S$ I- E5 V9 {
- (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))9 X7 k" w" z' Y# O, \9 t
- )% k* d( r0 t# e0 l& A
/ U! a3 m; S7 ^1 f; W$ C; H8 s6 Q* f8 A- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
3 D3 {; R, ^9 ^; \8 Z - (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses
; _ w. R9 b. ]9 ~8 G - ) ; ai_abort's alert box dialog.; I" x7 t; ?; w( O
. v. q+ {6 {/ q- ;;; ==================== end load-time operations ===========================
+ t) G, \& }5 y) @5 l
5 X7 w2 X4 S* ? ?- ;;; Initialize program subroutines and variables.
. i5 ~) P( t: o( ?9 Z% J
" Z, \6 e+ ? D; m% w6 M5 g: M) K- (defun ddchprop_init ()6 I0 F- D) I+ b; Z/ S
- 0 ^% N8 ~/ u9 w, {, Z+ y. q: E# L
- ;;3 G$ l$ L/ @, U: \9 X* i6 y- b+ S: o
- ;; Define buttons and set values in CHPROP dialogue box
/ ?9 q4 i; S9 b" R' D9 H - ;;2 c* M* [2 D$ U6 u
- (defun call_chp ()/ G2 C4 K1 U. x6 m- X
- (if (not (new_dialog "ch_prop" dcl_id)) (exit))6 x* }+ E1 M. N
- (set_tile "error" "")
4 Y) p# Q! U" C# n) s- C+ y - ;; Set initial dialogue tile values* K9 H! `* C& |. C6 C
- (set_col_tile)
' k. R6 q+ I1 [3 J \' }/ X - (if (= lay-idx nil)
, n# X2 V6 q! h1 A4 d+ y. P, i - (set_tile "t_layer" "Varies")' j: ]# ^) [! P8 t5 [2 p; H& j
- (set_tile "t_layer" (nth lay-idx laynmlst))
0 ?, L, j, ~2 Y O8 M" \ - )
9 e" [ }# N& A0 B/ x - (cond
0 o/ P ^3 j1 W' k. B# R - ((= lt-idx nil)
+ e; K4 k! u4 K: H' e - (set_tile "t_ltype" "Varies") {; Q: |+ W' J
- )& R5 W; j; j' b0 c4 M, q
- ((= lt-idx 0) ; set tile "By layer & layer linetype"% m' ~3 }% S6 K+ C
- (set_tile "t_ltype" (bylayer_lt))2 T, [0 U5 E! k
- )' u! s) M& P0 k: v$ m$ O' R
- (T
' G& K( \; z* Q - (set_tile "t_ltype" (nth lt-idx ltnmlst))
& t6 D& a0 u o+ `4 a - ), ^. H5 C+ x8 [
- )
0 P# ^" z+ ~* {3 E( _ p - (if (or (= ethickness nil) (= ethickness "Varies"))
X+ \# f* }9 Y: w - (set_tile "eb_thickness" "Varies")
' l$ W" c& U t7 X* R$ Q: J' E - (set_tile "eb_thickness" (rtos ethickness))( V, r2 r( `! j
- )
. C6 q7 D& V8 T8 K - ;; Define action for tiles
& m* D C* R' R% t @8 v7 D8 x - (action_tile "b_color" "(setq ecolor (getcolor))")2 k, H; ~/ t9 ]" R
- (action_tile "show_image" "(setq ecolor (getcolor))")
: x! e3 A8 W5 X% s' |& a- X6 ^- O }, ] - (action_tile "b_name" "(setq elayer (getlayer))")
" K- V. Z% P f' A6 f, t T - (action_tile "b_line" "(setq eltype (getltype))")
6 Y9 n+ z2 m$ e' ^! o8 {# [# g - (action_tile "eb_thickness" "(getthickness $value)"): T# q/ {' l2 C) E0 ]1 W
- (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")8 {( j4 p! f! j+ w
- (action_tile "accept" "(test-ok)")
: a0 y" M5 N" w2 p0 ~ - (if (= (start_dialog) 1)
* E5 P) n. E: a( ?7 k - (progn
3 G4 J6 B( A. x6 V% ?' X - (command "_.chprop" ss "")
8 J7 I6 O# Y' [& m - (if ecolor5 a' ^( v" R; _
- (progn
8 p' r& o! i; N$ j - (if (= 0 ecolor ) (setq ecolor "BYBLOCK"))
" }/ |' V# G% V8 g+ p - (if (= 256 ecolor ) (setq ecolor "BYLAYER")). I* u. K0 k6 R* `- i( v2 W
- (command "_c" ecolor)7 t- X4 d0 d" X& B w% v6 }
- )
( X4 I- o- A. b, c* b' \3 t - )
1 R' F' c' x5 v$ @' s5 B! E9 I0 i - (if (and (/= eltype "Varies") lt-idx)
3 G! g; Z* U8 i+ X - (command "_lt" eltype)& p, v; k) C0 C O: P9 S# ^
- ); S L! I- ]3 o; F3 [, I4 }# U
- (if (and (/= elayer "Varies") lay-idx)
9 ]- t d8 r. ^5 S; M. E - (command "_la" elayer)
% k1 a+ O2 r5 M - )- X1 p; |* R4 @
- (if (and (/= ethickness "Varies") ethickness)+ l C! V6 `2 {! p7 B
- (command "_t" ethickness)( P/ k5 K5 _: V. R
- )
7 O4 y# w7 U. K0 Q; V; r - (command "")' `! V- ?2 H3 [3 q' B& b+ J5 q
- )8 S+ H }! _! M5 W; w, V, o" _
- (princ "\nProperties unchanged")% q) `$ d2 L: \' K- ?; O
- )
f: Z' G7 m- u/ i - (princ); Q/ u& N' u2 ~& ?0 E7 n: u
- ); i( [2 `5 i. _: a
- ;;
0 i% n8 L% {% Z( ] - ;; Function to set the Color text tile and swab to the current color value.
; \/ L6 o& W" w4 z" j - ;;
8 t# S* k% h- M - (defun set_col_tile()
& R( ]% Z* u) y3 p4 ]- A - (cond + y: m% R; \, G8 U# E+ B
- ((= ecolor nil)
1 H5 g, e0 g: X - (set_tile "t_color" "Varies")2 \, e) ^3 a" t1 l. J3 }. ^7 k
- (col_tile "show_image" 0 nil)/ @5 N$ ?; ~+ F5 k$ U8 s9 n
- )3 F$ x0 W$ S2 x: O5 i. J! Y5 i' v( i
- ((= ecolor 0)- G- d' ^* D! x
- (set_tile "t_color" "BYBLOCK")
( C! K' C) ~# i; S! J - (col_tile "show_image" 0 nil)7 T1 r% x! b G4 J5 B" f9 H4 l( r
- )
( s/ o$ `% Q- q2 o7 M A - ((= ecolor 1)/ O# M1 G5 G( u/ V v Q" ~
- (set_tile "t_color" "1 red")% P5 n9 X, p; O" v% R
- (col_tile "show_image" 1 nil)
, S, y1 N; C( G9 F4 y9 V, N/ V - )
1 J/ Y* r9 d r2 Q; N, u+ ^) t - ((= ecolor 2)
6 P6 H+ J6 W* ~# c0 ` - (set_tile "t_color" "2 yellow"). q" E5 ?7 {% Q
- (col_tile "show_image" 2 nil)3 z% {4 |) J; T$ D; [0 n1 g
- )" x7 j) P' l, C, I! g. b7 ~
- ((= ecolor 3)* d' \7 |4 ]0 s# t) @* \0 u, j
- (set_tile "t_color" "3 green")
- \4 n$ W7 f+ q7 |7 U+ u2 F - (col_tile "show_image" 3 nil)( v6 n, E( C7 | I
- )
, h1 N B r0 y* s% G7 A" n - ((= ecolor 4): ~" i2 u ^" \. k" X
- (set_tile "t_color" "4 cyan")
) d$ g5 k" K5 a* {- D0 g- v - (col_tile "show_image" 4 nil)( v$ B0 y; x. D1 ^' J, T
- )( X; G& t& g A" j K- Z9 G
- ((= ecolor 5)0 F- h1 m2 X1 d8 b8 R- h f% X4 L
- (set_tile "t_color" "5 blue")9 O4 u3 R: q! J: D5 S
- (col_tile "show_image" 5 nil)9 a N% m- Y) v b* m
- )- S) |8 [/ k. ?# F9 d2 V" R* {
- ((= ecolor 6)7 {& J6 B* s( h% ^* O' v
- (set_tile "t_color" "6 magenta")# E& ]: C) h0 I( L8 H
- (col_tile "show_image" 6 nil)
# E- v0 |' t! w - )8 e" L, u5 B% ?! l2 P; n. \0 ^- S
- ((= ecolor 7)
% r5 I+ M* v( _" A% y1 a0 H - (set_tile "t_color" "7 white")
* s$ D% |5 @9 S7 y/ p' o - (col_tile "show_image" 7 nil)
0 r/ ?5 A' F8 R L) }4 x- J - )
/ h f& e6 z7 F - ;; If the color is "BYLAYER", then set the tile to! S' e2 Y9 U0 I* c+ o& v
- ;; show it's set By layer, but also indicate the
& q# @+ J( I o9 P6 b1 a- h$ N - ;; color of the layer - i.e. By layer (red)
+ z) k" W+ p' C, l - ((= ecolor 256)5 q# B7 s1 h8 c m
- (set_tile "t_color" (bylayer_col))3 d$ ?8 P( {% v- P' {5 @' L7 _) Q
- (col_tile "show_image" cn nil)1 w8 o6 y7 c, P" R) k0 D# X
- )2 e) R/ P. F: Z* Y6 s/ R$ o
- (T
|) N$ h$ Z1 f$ a1 G0 Q, X) M/ v - (set_tile "t_color" (itoa ecolor))' X7 U" o, z. S j# A, v! \
- (col_tile "show_image" ecolor nil)6 T. d! A, i& M! x$ P, f5 B" `- f* B
- )3 ~. S+ C- E/ L, z& z
- )
1 z1 O1 V( l: E/ {- I) g5 O! c+ b - )
+ \6 n/ R0 ^, G7 e+ U1 J - ;;
6 f5 x) ?+ G# o6 I, S+ B. ` - ;; Function to put up the standard color dialogue.
$ e S6 d0 V5 ^* R/ w - ;;
3 Q+ @ t/ c4 L$ f8 {* X8 S! u3 T - (defun getcolor(/ col_def lay_clr temp_color)
6 p6 p8 H/ J" n' t - ;; col_def is the default color used when rq_color is called. If ecolor
4 i% y" P, s5 Z; j W - ;; is nil (varies) then set it to 1, else use the value of ecolor.
0 }+ m) E7 G' r* a. q4 f& S9 ?! T4 y - (if ecolor% Y7 u0 h# Y* y7 B
- (setq col_def ecolor) G4 I# k& }' a$ u$ U9 L" Z$ o7 ]8 E
- (setq col_def 1)3 m3 Z" B* k4 E, i2 k
- )
+ y8 j$ Z7 t. r9 x, P9 P - 2 j& M/ j% F1 f# b+ P* C* Q
- ;; If we're working with a single layer, get its color- t1 Y' p( Q2 V; V0 H7 G
- ;; for use in the color swatch if the user selects color BYLAYER.: V9 z9 Q8 v6 y- z+ p
- (if (/= elayer "Varies")
- s2 b9 H j9 h$ A& } - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
% {+ Z' v6 k8 G# T - (setq lay_clr 0)6 j) `/ }% f _* o
- )/ j9 [! p# S5 ~# D* r" ^* P% U
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))9 { I( n5 g! d$ v& F
- (progn
5 i6 B1 k( E3 A - (setq ecolor temp_color)
2 b( T/ a% v" {8 O6 h - (set_col_tile)
) u, ]% r. m9 T3 u) ?9 | _; [+ i - ecolor! b5 v) w! L4 p
- )
& m5 F4 | [( f( W0 D) F% v - ecolor* ]1 i1 `5 q) D- K& ]
- )
( Z/ G$ S3 j- \- B - )
' K, B! x8 Q5 }1 Q- u0 b - ;;9 m, i4 Y) u; A3 [6 g
- ;; This function pops a dialogue box consisting of a list box, image tile, ( X# L# b' e ]+ h
- ;; and edit box to allow the user to select or type a linetype. It returns
1 M+ N- P1 a" q4 D( \ - ;; the linetype selected.
0 s* U3 k- u: G0 c* z - ;;
9 O5 q, _& U" I - (defun getltype (/ old-idx ltname)6 K2 I5 J J, I, ]
- ;; Initialize a dialogue from dialogue file N0 L% r- o( [ L
- (if (not (new_dialog "setltype" dcl_id)) (exit))
( P, R# ~. [4 o4 X% Z4 q4 c - (start_list "list_lt")
/ g- \+ ^/ J3 G - (mapcar 'add_list ltnmlst) ; initialize list box8 V4 Q: o4 F& o3 |
- (end_list)
( t3 ]% Y# S4 Z - (setq old-idx lt-idx)! F$ ^, {5 R6 F& g, p5 L: c
- ;; Show initial ltype in image tile, list box, and edit box
$ \0 j+ @9 L) c - (if (/= lt-idx nil)
8 |1 r' ]( Q+ w/ S - (ltlist_act (itoa lt-idx))2 E$ W$ O5 c# [ T# Y5 O* d- U$ v$ K
- (progn) ^: i+ W a, e9 J8 P
- (set_tile "edit_lt" "Varies")
6 |$ b3 `: B2 r# |6 X4 Q - (col_tile "show_image" 0 nil)
6 R) G3 J* A! P - )
' k- l6 ?( j! a - )
1 T+ M# _+ q+ _8 F - (action_tile "list_lt" "(ltlist_act $value)")
/ F( t1 V6 h- K; Y1 h7 S4 O - (action_tile "edit_lt" "(ltedit_act $value)")* H- d! ?; H# r3 M/ J
- (action_tile "accept" "(test-ok)")
' [' Q% y1 U0 N2 F - (action_tile "cancel" "(reset-lt)")
; ~+ L @8 K+ |; p - (if (= (start_dialog) 1) ; User pressed OK6 u7 [# e" Y7 H' {0 N0 U
- (cond 3 X8 ?+ H* L7 z' j% `# l
- ((= lt-idx nil)
/ j) ^% h6 B4 L8 c/ {# F- B - (set_tile "t_ltype" "Varies")
; j4 f2 M! Q, a+ x( p - "Varies"
0 ^0 u6 s- q4 p( V# o) i# z% w - )( R+ d8 w2 k9 p( Q5 V( v
- ((= lt-idx 0)
a3 C* [# K) Q1 U8 q: a$ ?. | - (set_tile "t_ltype" (bylayer_lt))
5 v- \/ e; Z7 n+ p - "BYLAYER"0 y- _0 D( S! L
- )7 q3 I5 u- y9 U; Q! p& d
- ((= lt-idx 1)4 K3 e( Z. h- `! G3 u5 s- H
- (set_tile "t_ltype" "BYBLOCK")
( Z% k% \' s; g1 l; ~ - "BYBLOCK"' y- X) f `! T' `" L8 u# ]. }
- )
9 I7 A' ^# A1 Z, G; \/ p' n+ C k - (T
" x, r1 U: K6 L% u3 Q1 T- { - (set_tile "t_ltype" ltname) " ?! L* i/ j1 h2 N: `7 e. z$ L! e
- ltname9 X: L; q( W3 X. W2 k% Y9 p! `, v
- )* z$ K& @0 L/ E9 Z; \4 |5 v
- ), Z* d& D2 z9 n( o# a9 I, U8 t
- eltype. \8 m$ G8 O' Z9 I, v! `1 c' I/ I6 B
- )
5 j! d* I% ]) V- R+ U - )
4 W# b% Z7 w8 C% T8 ]0 Z* w. V$ A - ;;
0 E4 P& H, z: I: p - ;; Edit box entries end up here2 E6 b* w( d' [ r
- ;;! y4 }0 f7 f* t' C
- (defun ltedit_act (ltvalue)$ r) |; ?% o) a0 G! r5 H" s
- ;; If linetype name,is valid, then clear error string,
; c& S! F% q9 ~1 O( n. s - ;; call ltlist_act function, and change focus to list box.. X$ e: R% J/ p6 A. ~, c' B
- ;; Else print error message.% v8 h4 l) c3 w
- (setq ltvalue (strcase ltvalue))
3 w; D+ c% {. u& @# x0 O& _ - (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))9 O/ _' H! ~3 N
- (setq ltvalue "BYLAYER"), \0 U, C' h( y( ^* L* x; ?9 O
- )
$ B# {- s* s) P3 p - (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))
& S& L) o' A: A4 m6 G - (setq ltvalue "BYBLOCK")
- {4 c1 ]$ V* Y, p - )
% }* T1 _# S; {7 j! H" S! ~ - (if (setq lt-idx (getindex ltvalue ltnmlst))
; `/ F# M! f+ _ - (progn
9 o) A' o# a# p+ \: M5 s! b - (set_tile "error" "")
; s+ u# a1 E6 J - (ltlist_act (itoa lt-idx))
0 M- F' I. K, L# ^( O% v9 [( Y - (mode_tile "list_lt" 2)4 B$ b; q! A# n" p6 C3 e
- )3 k& i, A: F0 e! R
- (progn
& k" s2 F+ P7 y% a5 { - (if (/= ltvalue "VARIES")
, @& H8 F/ D( @ - (set_tile "error" "Invalid linetype.")
# c, W& `- s( G6 z9 ^. _& H) ]& B - )6 u0 f: P, y+ v% Z; `' h
- (setq lt-idx old-idx)7 Q( Y. L- u o( b
- ) + r- u/ H/ J* I# Y0 ^- ?
- )# ]4 I/ O+ P* J8 X/ }9 X6 F
- )
8 F) l9 _; H# W, U4 `9 i - ;;" x2 A( z m+ K# Q
- ;; List selections end up here
( k# g" M4 S7 M - ;;
3 @# ~( |$ K5 k/ c - (defun ltlist_act (index / dashdata): l8 s$ q ~1 t- F7 o. w1 |
- ;; Update the list box, edit box, and color tile* b: j! b6 L# ^- r" t
- (set_tile "error" "")
% r- W) G) L; O5 y6 Q - (setq lt-idx (atoi index)): i$ ?8 K& k! l$ V
- (setq ltname (nth lt-idx ltnmlst))
l5 ?( V, F0 P( w0 D - (setq dashdata (nth lt-idx mdashlist))( c, x5 C6 p9 n) |; h3 X
- (col_tile "show_image" 0 dashdata)
0 J- f3 i4 ^6 K, @ e! q: `9 [ - (set_tile "list_lt" (itoa lt-idx))
; Q$ A3 I4 {/ U! e) U2 } - (set_tile "edit_lt" ltname)3 m0 e- p! `3 e9 h2 X; s
- )
. G. M4 b% k: n( H; c, I0 B - ;;; H6 |2 x& B. O
- ;; Reset to original linetype when cancel it selected
$ {# M$ d4 s$ R$ \: L$ \# P - ;;
$ b, y' g( F; j - (defun reset-lt ()
+ P( J% A0 U8 w0 C9 `% p - (setq lt-idx old-idx)" o' M5 Z. `3 i0 ?4 n; M
- (done_dialog 0)/ N& Y9 v" R# T" e( {/ \
- )7 s4 N- r( D# D# R' ?
- ;;
" f3 j0 U- k8 N& w( ` - ;; This function pops a dialogue box consisting of a list box and edit box to
2 G' H+ S+ X# z/ L( J - ;; allow the user to select or type a layer name. It returns the layer name
4 L7 C) v5 e8 a, l! m5 a' o - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the
. l) G9 e8 w/ I. d' E - ;; drawing.
8 | @4 ]2 H3 c% r7 n1 K+ j1 r - ;;
3 ?8 L$ X( P+ { A [ - (defun getlayer (/ old-idx layname on off frozth linetype colname)/ m n, F1 p3 R- E; h( M, N1 n
- ;; Load a dialogue from dialogue file
7 J/ g. h. Y1 w D* B! c/ K - (if (not (new_dialog "setlayer" dcl_id)) (exit))
& g5 q5 R! m& J* y% R1 P& u ? - (start_list "list_lay")
; x9 J- u* k. _9 N - (mapcar 'add_list longlist) ; initialize list box! l1 y P: h! L9 S' e) U
- (end_list)# _+ { M8 W3 R" G, U
- ;; Display current layer, show initial layer name in edit 6 i5 n) J. d6 W0 A$ x
- ;; box, and highlight list box.( q5 s. z" S* f5 B; c( i
- (setq old-idx lay-idx)$ h& d; g2 N% F3 Z# L/ s: Y. C" k# J
- (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
& u1 _8 [; Q) V* G- Y G - (set_tile "cur_layer" (getvar "clayer"))
* _2 s; _2 k# `) Y - (action_tile "list_lay" "(laylist_act $value)")+ ]+ n: i# E, y1 D
- (action_tile "edit_lay" "(layedit_act $value)")
i; l. X) [- p& Y4 M v - (action_tile "accept" "(test-ok)")
! ^; J) J) Z: J) Q7 K - (action_tile "cancel" "(reset-lay)")5 t; E4 O/ O' T/ ~3 r
- (if (= (start_dialog) 1) ; User pressed OK0 E; K m( ~- L. t' L1 X' M6 h
- (progn
' @$ y3 m/ d" D( B - (if (= lay-idx nil) (setq layname "Varies"))
/ P2 w8 u' l- m - (set_tile "t_layer" layname)
' f- M0 k8 v* {0 \% t - ; If layer or ltype equals bylayer reset their tiles/ Q: y- c! F1 x/ n/ U! M
- (if (= lt-idx 0)( J: D( X6 o/ f# b
- (set_tile "t_ltype" (bylayer_lt))
% X; z; I% ^4 |, r- d7 Y% ` - )
/ @9 I1 g( e' N( o M/ B - (if (= ecolor 256)
) M8 p# o' K$ h) m, s& w7 y" J - (progn( f- A4 T% Z8 n9 N* i" D6 L0 ?$ g' N
- (set_tile "t_color" (bylayer_col))& H' F' G! H& H p; ?* @
- (col_tile "show_image" cn nil). L; Y3 A; w9 {$ Q
- )
% _# Y; P6 I5 z0 x/ | - )
5 U- V8 ]2 \( {' L8 E" M" H - layname9 _' a8 I7 V7 L* @" |( U
- )4 U2 h$ U" O, d$ W4 o& I* \( f0 n
- elayer6 Q3 }2 b* z1 I& z
- )% s$ v9 M0 `: x9 Q# X( n
- )1 A! z( l" W" g! y
- ;;
[. t! D7 b0 ]/ ^4 S7 y) v - ;; Edit box selections end up here, a* \0 _& G+ O: k p- O
- ;;$ F0 g/ k8 I0 e" f0 w' _! M- I
- (defun layedit_act (layvalue)
7 ~2 t, y# c: C! r - ;; Convert layer entry to upper case. If layer name is F( x! D% k+ J5 K( y- }8 A
- ;; valid, clear error string, call (laylist_act) function,
0 \ q# a3 L1 V2 Y1 [% R - ;; and change focus to list box. Else print error message.
6 S. a q9 y9 b, ?) I. Q# j( | - (setq layvalue (strcase layvalue))
5 b3 ]) R( Y5 `; H" A - (if (setq lay-idx (getindex layvalue laynmlst))
( u6 ?# X9 Q4 ?" b- w& G3 W- | - (progn5 w9 v; F T# @: E8 a% k( s
- (set_tile "error" "")0 g$ q/ @- o* Z$ ?
- (laylist_act (itoa lay-idx))
& {3 {0 Y- j% E% X8 l$ \3 Z) S: K - )
* @2 @/ U+ Q; e% S# d - (progn
b) E1 ] n+ S- k/ U7 G+ G5 n; m - (set_tile "error" "Invalid layer name.")
M J$ k. k2 H+ @! q6 g: ^% j - (setq lay-idx old-idx)! N& v+ d7 \, Q6 U
- )% g [: W: d* R& R! v y8 g
- )5 e, p0 p1 N4 j5 y$ @
- )
1 R J! s3 @+ F - ;;
2 a. j0 W: a- s. U9 }6 a2 t# n7 Q8 G* \! ? - ;; List entry selections end up here
! r( Z) F: u7 p$ S - ;;( _8 v, B8 f7 H2 G. Q0 Y
- (defun laylist_act (index / layinfo color dashdata)" U- o4 Y4 u h& M7 d `
- ;; Update the list box, edit box, and color tile( m5 K8 ? Y: O7 ~& {8 P3 \
- (set_tile "error" "")8 p) K$ i. v& g5 z y. Y! P
- (setq lay-idx (atoi index))3 w7 r5 B1 r* I' u: q) V# y
- (setq layname (nth lay-idx laynmlst))
7 c4 x8 k$ V# b9 F0 Z1 p0 B - (setq layinfo (tblsearch "layer" layname))
% m, G3 R4 V$ [' B4 l9 a - (if (= (logand (cdr (assoc 70 layinfo)) 4) 4)
7 u4 @% t9 {/ }6 [. P G - (set_tile "error" "Cannot change entity to locked layer.")
2 u' v( s9 [/ ~# D$ B - (progn
6 ]6 @& b% y0 [ - (setq color (cdr (assoc 62 layinfo)))/ P4 ^! d* @6 B) I
- (setq color (abs color)); r- J" I. c8 y. }/ L0 B
- (setq colname (colorname color))
8 u1 n, f0 c2 L - (set_tile "list_lay" (itoa lay-idx))
( y/ a0 h6 K; s/ z5 F- I/ B# s z - (set_tile "edit_lay" layname)
9 |0 Z: V$ L. u" i: ~ - (mode_tile "list_lay" 2)1 ?% z! s. P5 v$ i2 K, h: X
- )) [) E, a1 R! a% a# B0 { Z
- )
1 B. h# w) h# I! s - )
$ k* r; G- W ^% }% u% T - ;;
! ?; u& g5 b1 |* U/ v | - ;; Reset to original layer when cancel is selected
$ L; A7 d+ d7 }. S/ k2 P) n - ;;. U0 v$ J' K( ~5 q% @* g5 P
- (defun reset-lay ()
* b% h' o3 B5 g" | - (setq lay-idx old-idx)" Y' [) m& _% c! r1 R( s
- (done_dialog 0)
) k1 P% F+ X ?& | - )+ ?, ~% j- Y" Y, A3 d! P8 p! A7 L" s
- ;;
3 F: e7 j. v$ J- m; A) k3 T1 V! v - ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
/ c' M, [$ ~1 x F3 V+ }! x# { - ;; string can't be converted to a real, this routine checks if the first ~6 F1 j9 R1 R$ D) B9 |
- ;; character is "0". It also checks to see if the value equals "Varies".. q& V) f3 X$ ~1 V( d4 q
- ;;
4 k6 ^, T, Q" C3 ~ - (defun getthickness (value)# Z. ]) M Q/ Z6 m/ f# ^0 R
- (setq value (strcase value))9 @2 G1 h0 B* t+ g
- (if (or (= value "VARIES")
4 W7 Z R! r' C9 ^ - (distof value)8 b6 {& M. R8 V/ w
- )7 G* A5 M7 y# ~% x% ^6 T, A* j
- (progn0 T: I- f8 G/ K T
- (set_tile "error" "")
% d* H7 M$ w1 K - (if (= value "VARIES")
' x' Z) ]( a+ U: w8 s9 |9 A - (progn" Y I6 C4 n2 W/ }7 F
- (set_tile "eb_thickness" "Varies")
4 a |& {7 |$ M - (setq ethickness nil)
% C( w/ H, F9 w - )
0 x8 j& V: J3 X& d* i+ { - (progn4 J" y& Q8 z: b, J7 q8 w
- (setq ethickness (distof value))- E; z3 h0 t" }- D0 R" c7 ^% n
- (set_tile "eb_thickness" (rtos ethickness))
" [4 v: ~ p: K, H3 I0 z2 V6 R8 m - ethickness
. n' G9 |9 }7 Y+ p Z) Q - )
4 b1 W1 l6 V& N. Q; n9 B - )4 o$ F. b, d# i$ k2 l1 l
- )
9 N' ~/ E% }& A - (progn2 C- C1 r" z* [" @
- (set_tile "error" "Invalid thickness.")
/ F/ T) U& H& c" ]. G6 K - nil
+ {- g( M& E' @ - )$ [5 @. M# W& C8 d! G3 H
- )
! }' x0 o: Q+ J+ n, i: b- S1 t* l - )
9 {& V3 j* F9 f3 E - ;;
H" ?$ R9 L8 ] - ;; This function make a list called laynmlst which consists of all the layer ' s2 H' |) g8 k: n
- ;; names in the drawing. It also creates a list called longlist which
% p1 T. F) q( N: k) z4 X5 Y - ;; consists of strings which contain the layer name, color, linetype, etc. + }7 b2 e" F2 V# e3 G S( A2 x$ F) v0 n
- ;; Longlist is later mapped into the layer listbox. Both are ordered the 8 F6 ~: V5 ~5 \# U8 c/ W
- ;; same.6 q4 a: r* b2 K3 Y5 h2 f
- ;;
4 e! ~" \) @0 B- I/ }. X - (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname
/ e5 B X& i% c - xdlist vpldata sortlist name templist bit-70+ W5 T4 h% s! K2 q
- )
$ x {1 A+ X3 p5 X/ Z - (if (= (setq tilemode (getvar "tilemode")) 0)3 k! a/ m1 G4 L3 f+ l* H
- (progn' B5 u2 q9 p) ?! B7 ~1 e
- (setq ss (ssget "x" (list (cons 0 "VIEWPORT"). z# j; X! z8 {4 c, w
- (cons 69 (getvar "CVPORT"))2 U. a# t; E, U- N% `/ B
- )
) a8 ?; W# t! k: Y - ), R% z8 M" m9 H W/ B1 L4 t& Q, W
- ) : U3 |. x* D& G3 p: Z6 |' W
- (setq cvpname (ssname ss 0))% {) n3 k0 d# r R4 ^3 A" C1 Z; m2 ?# w
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))3 B* ?* X8 S1 o3 g
- (setq vpldata (cdadr xdlist))
" M4 \9 g. J9 A - )
3 c7 H! ]; P# S& _/ X/ P - )+ v6 o+ a8 T# v& q+ t; k3 _
- (setq sortlist nil)4 x% G) Z9 j, F7 v
- (setq templist (tblnext "LAYER" T))
g8 [( e. a4 u6 N/ S, t- T - (while templist
! l' Z/ B; x7 Q6 E% i/ Z - (setq name (cdr (assoc 2 templist)))
9 T4 G3 |( R, U' x - (setq sortlist (cons name sortlist))
! A5 U! y" j( g - (setq templist (tblnext "LAYER"))
; a; f# n) n( x* q4 M - )
$ S1 ] ~& W( P0 a( q }( M2 p - (if (>= (getvar "maxsort") (length sortlist))
) p- ~0 \0 D/ Y3 U* k - (setq sortlist (acad_strlsort sortlist)), \0 q8 k) t. Q0 j- M
- (setq sortlist (reverse sortlist))) L& m% J$ r: i* f2 C+ H, ?$ u
- )
6 `9 O# ?+ d' I$ r7 R( t+ @ - (setq laynmlst sortlist)* [ P8 I8 u' D! T; s
- (setq longlist nil)
* y. W% p# e8 r* i# T - (setq layname (car sortlist))
. [) D/ b5 L9 {: W- s6 h - (while layname
3 J4 W2 A8 Z' a% J2 r - (setq laylist (tblsearch "LAYER" layname))
& x2 { F0 ]6 [ - (setq color (cdr (assoc 62 laylist)))) ]7 r x6 ]' o0 o
- (if (minusp color)0 H0 q0 ~3 n7 w
- (setq onoff ".")
# @" g9 Z1 W4 p7 Z9 n - (setq onoff "On")7 q5 o6 Q: ~ D5 A# C1 Z+ m: M# K
- )4 c# [" ^0 z( [
- (setq color (abs color))
8 k8 B! |3 ]' ^, Q5 w - (setq colname (colorname color))6 a# I7 Q6 |" A, O/ ^7 B1 k) x
- (setq bit-70 (cdr (assoc 70 laylist)))
9 Z' ^/ c! T' ]! \4 E# [ - (if (= (logand bit-70 1) 1)- y# G6 Y6 f/ ~; \3 D% ^1 O
- (setq frozth "F" fchk laylist)
# N, V& E/ k3 t2 a - (setq frozth ".")
) z/ X: C- G3 X' Y - )
4 @9 @ R5 j& i - (if (= (logand bit-70 2) 2)' S$ p- v+ }- l2 B' y
- (setq vpn "N")
y, {$ e. |& s$ A, |# b# c& K - (setq vpn ".")8 F* z% d& }; ~. R8 |7 U
- )8 S. x8 E! {1 K% _$ a* d! b
- (if (= (logand bit-70 4) 4)
) {( R m* O5 q# I) {% D; V1 T - (setq lock "L")8 @' V5 O" Z Z
- (setq lock ".")* Q, K7 {" E% v( A; ~
- )
* c/ L8 _7 T0 f' ^ - (setq linetype (cdr (assoc 6 laylist)))# h1 s" C1 {; q" k; o/ t" a
- (setq layname (substr layname 1 31))5 U( N: g$ T) M7 |3 L2 T0 c. h
- (if (= tilemode 0), Y! W+ y5 {7 U- P4 I0 K! A
- (progn
; g2 [2 @) L$ F- h' m6 c3 n3 ? - (if (member (cons 1003 layname) vpldata)
$ `5 s- e2 h4 r' Y4 e - (setq vpf "C")6 J$ P! f, v- |4 l+ S
- (setq vpf ".") g' B. S% W1 @9 Q4 E4 i
- )
( K2 D0 ~ Y3 M9 L# @ - )8 m0 f" v* W) e; j3 P5 r& r
- (setq vpf ".")( y$ z) C' Z- E# v* s
- )4 H/ s: @+ F0 }! s3 R8 h* }
- (setq ltabstr (strcat layname "\t"; _# R5 ^# e) u& U) ?
- onoff "\t") l% Y, Q' o) _" {, {, e; w
- frozth "\t"
! g5 Q* s/ S |& h: S2 ~ - lock "\t"# c6 `" l, W. B
- vpf "\t"
, |0 z% B6 r8 X* | Q - vpn "\t"
: M$ X0 D; S9 L" c; Q - colname "\t"
2 w1 R/ q( h# ~ H7 s3 l - linetype
% }! f" C3 B9 n% A - ): X* ?! D8 Q1 q/ F5 V5 N
- )( k+ ~6 X! x5 Y# R
- (setq longlist (append longlist (list ltabstr)))
, t2 I& ? ]- e! W$ w% K0 g - (setq sortlist (cdr sortlist)): `3 ~0 I$ c# A
- (setq layname (car sortlist))% e1 d# }5 }$ z+ A+ z l% L9 ]
- )3 [% G! O4 E, | S/ s( ?
- )
! [& ?' B) {1 j! \" e; z) K7 m - ;;
\7 v9 n. }+ E" ], L - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of 6 r: I$ E7 F h3 S/ P: {! r
- ;; linetype names read from the symbol table. Mdashlist is list consisting
3 e- f7 s/ m: g' B0 D4 l( m4 o - ;; of lists which define the linetype pattern - numbers that indicate dots,
% v6 \/ C& Z% X+ d/ b+ [ - ;; dashes, and spaces taken from group code 49. The list corresponds to the
+ K' S n7 N+ J% `: m' R% m2 a - ;; order of names in ltnmlst.
2 S7 {' _0 f! ]% w) s! y - ;;/ x g* }& @& B. C& |8 J. j
- (defun makeltlists (/ ltlist ltname)
6 D+ W. z9 q" Q: C' ~$ \! E - (setq mdashlist nil)( J3 a0 i- K7 v, z( [, H7 L) y
- (setq ltlist (tblnext "LTYPE" T)); M6 M% ?! u: m# A- `' @( w) u
- (setq ltname (cdr (assoc 2 ltlist)))
5 F- k# u6 W4 _+ j/ v4 V - (setq ltnmlst (list ltname))6 R } K' K3 a# p3 Y
- 9 O: Y! w* c( n0 e" a
- (if (= ltname "CONTINUOUS")) A) Y$ t; r# {3 B- K
- (setq mdashlist (list "CONT"))" I& G# L1 F4 | h* d3 G9 s% S
- (setq mdashlist
; a; Y' P0 c' X* F - (append mdashlist (list (add-mdash ltlist)))& L* e4 }/ j2 G) j
- )
: i0 H" ?$ f! T - )
$ q! {/ ^) e* Q6 [2 | - (while (setq ltlist (tblnext "LTYPE"))
8 t5 r6 W; K7 N* k8 p- ~; P - (setq ltname (cdr (assoc 2 ltlist)))
, Y3 {" D! v. X2 s - (setq ltnmlst (append ltnmlst (list ltname)))% S% e' L/ R" p4 o9 m
- (setq mdashlist
- g6 A; m6 z* P+ c# s) Q2 B - (append mdashlist (list (add-mdash ltlist)))
* M6 w3 z1 F; _8 { - )
4 N5 X' Z! f2 W. n% E - )
1 R9 s3 u$ i) z) P! B% C& U - (setq ltnmlst (cons "BYBLOCK" ltnmlst))) Q# G' A; m8 }' w* `2 S
- (setq mdashlist (cons nil mdashlist))
- |4 _( {; q4 D' g6 }' | - (setq ltnmlst (cons "BYLAYER" ltnmlst))' ~3 e" M. x/ E# Q
- (setq mdashlist (cons nil mdashlist))
4 Z8 Z& g9 {! E$ V# B - )
6 [6 p5 w8 m+ G - ;;
9 f/ y# I2 O( c, J1 Y - ;; Get all the group code 49 values for a linetype and put them in a list
; ~1 A& @( m5 r1 \# P8 {( X L - ;; (pen-up, pen-down info)
: B5 G3 Q7 h$ Z/ }6 B2 k - ;;
! h8 O- F! t8 q8 |) c, r0 b - (defun add-mdash (ltlist1 / dashlist assoclist dashsize)
$ r( A( q" `, P% ]8 m - (setq dashlist nil)" g1 O- A2 m" M$ Z: W
- (while (setq assoclist (car ltlist1))
2 H. {7 Z0 r9 H" j" \9 y - (if (= (car assoclist) 49)
+ j; [8 G7 x' p9 Y- N3 ]/ z9 b - (progn
; j8 R( C1 E' g* b$ c. E" [' q0 C - (setq dashsize (cdr assoclist))+ _5 e9 \6 V# p. N, ]6 Q
- (setq dashlist (cons dashsize dashlist))
8 w( L4 ?* d3 ^" g: ]4 t - )0 T5 L& ~2 m) }
- )
7 s" u0 K9 a. P4 U. i - (setq ltlist1 (cdr ltlist1))- g* N4 |% i7 A: U8 o
- )$ ^0 G; A2 l# @; t& a i
- (setq dashlist (reverse dashlist))+ B3 U) r, Y/ R5 l& z
- ): `. G. M; Q+ T7 V/ p
- ;;, x5 P x& E& `; _4 m
- ;; Color a tile, draw linetype, and draw a border around it
# h. W7 v( e: U _6 b& H* d - ;;
+ k" T! T# X5 u# S4 K - (defun col_tile (tile color patlist / x y)
- i/ f$ t" i5 X6 O - (setq x (dimx_tile tile))
x$ l" A3 O J2 x* O3 I) _ - (setq y (dimy_tile tile))$ ]( v( J( @( H
- (start_image tile)
: w4 g$ V! y% j! e - (fill_image 0 0 x y color)
* A7 i" M" O: Y/ r9 w - (if (= color 7)
( m5 w# c4 t v- T2 P - (progn
5 j1 J, s( N a7 A! W - (if patlist (drawpattern x (/ y 2) patlist 0))
# T' O# d3 f4 u& X! k. L5 _ E. L - (tile_rect 0 0 x y 0)
! I) r1 _4 D L- U5 Y. k/ l* @ - )
+ ^+ x& K$ G: C- P. {7 m' L - (progn
: M1 z0 ^3 I4 \0 t z. i& V - (if patlist (drawpattern x (/ y 2) patlist 7))( ^3 W/ K# ?8 J1 N0 J$ h1 I
- (tile_rect 0 0 x y 7)
6 F# [2 |3 |$ ~9 ?7 M - )" Z* ?* g, R9 ]5 ?% m g
- )
9 `5 z' ]0 R# z - (end_image)
; Z# u% T7 [8 k) H- W# \ - )( `2 x! \5 K9 {
- ;;
6 Q- S1 V" W. V& h - ;; Draw a border around a tile
) l2 x) f% A' I F2 D4 U! W - ;;
0 T7 Z1 z9 H2 H5 e m! M) S8 G9 A - (defun tile_rect (x1 y1 x2 y2 color)
7 q% a! N* m9 G* s1 r2 W - (setq x2 (- x2 1))- t- o7 X; z4 [6 \7 ], m
- (setq y2 (- y2 1)), F0 E3 V0 S" Y4 ^# a4 w/ j" k/ h* e
- (vector_image x1 y1 x2 y1 color)5 @4 X' Z3 V8 a4 V* _
- (vector_image x2 y1 x2 y2 color)( V$ Q3 g. ]% U* U8 z7 P
- (vector_image x2 y2 x1 y2 color)
, j: O2 |1 [. `8 b: g - (vector_image x1 y2 x1 y1 color)
" H0 V6 G2 q A. c) @8 q. ` - )
2 T; B3 z5 @$ j! q( J - ;;1 l5 M4 o! T$ X
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
& a/ [6 O2 j* V4 s: F7 d7 p3 v0 t - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a 8 _- `6 P1 p+ m/ b, u0 ]9 T
- ;; list of numbers that define the linetype, and color is the color of the ) D7 W. F6 M$ I7 r5 a# q r
- ;; tile.3 _0 s' ]: q* Z8 f/ A! ?
- ;;
9 J8 H4 a) V$ O+ w% K - (defun drawpattern (boxlength y2 pattern color / x1 x2
& r; D& z# _; n0 l2 ~1 |" p* V/ ~% ? - patlist dash)
# ]3 U4 S) \: ^# Q - (setq x1 0 x2 0)8 r, T) T/ f$ m2 A7 g' p2 W
- (setq patlist pattern)
! Q* [ s {/ M- t( @ - (if (= patlist "CONT")% f. h! w* x( T7 k
- (progn
- }2 z- i, } A' y L/ X - (setq dash boxlength)
' w/ P/ v0 r$ }1 d7 H' ?( x. D - (vi)
- y: O x2 `( d$ w - (setq x1 boxlength)
+ y# ]) @8 L3 g/ s. z7 J$ N. [ - )
+ O) o8 A5 E4 h4 S - )
, {; E# ^8 K5 |& r" v% e - (while (< x1 boxlength)5 f' h0 N9 ?" }3 s
- (if (setq dash (car patlist))
& J l$ t( F9 P! Z! ~6 l1 g# r - (progn7 ~0 x# D. o' b$ Y# l+ e
- (setq dash (fix (* 30 dash)))
6 e/ p+ i/ r! C# n0 ?1 t4 O - (cond ) ~3 Q: V( u+ T# q
- ((= dash 0)
# Q' E/ t8 _4 W1 ` - (setq dash 1) 0 S' {( b6 j/ `* {, B7 G: @6 b
- (vi)4 t6 I0 M ^" @: P1 J! {2 b
- )
5 h7 e: u0 {3 i* f, A& g8 ?4 @& f- ]4 g7 B - ((> dash 0)
! g0 s2 e+ n; o% r7 K) T- }& | - (vi)# o+ I9 r5 }: p6 W# m
- ), E) Q1 e% k( U5 C/ z- g
- (T 6 g7 d/ }( P0 d2 p) D, d
- (if (< (abs dash) 2) (setq dash 2))
4 h7 N K* l, W$ t - (setq x2 (+ x2 (abs dash)))% h$ O. e+ c8 Z& t
- )$ E! D* t: b9 b2 y6 [8 X
- )6 |3 m; `) \ S. Y% A# r( S; \
- (setq patlist (cdr patlist))9 G! \& Z& r! q; I8 l7 q
- (setq x1 x2)
8 E0 `1 ~+ O" x4 ?1 s% V1 E# i3 ` Z - )! {0 |5 x% J2 U7 ^1 X* U* A
- (setq patlist pattern)
( _$ |; d8 E2 |- I; o5 p3 \, { - )
' W9 P0 {" Q) t* |0 g2 q - )* r8 {3 y- D! U: U1 e6 t- r
- )0 G! l7 O. W9 Z; A3 M8 O7 G: y1 y
- ;;: M' Z+ e& B% K; N j! o, }' c: ?" M
- ;; Draw a dash or dot in image tile
8 r0 V, @& T5 W% d9 u, [: T - ;;/ H g% O+ _: G8 q
- (defun vi ()
) X i8 q+ P2 ?/ n ` - (setq x2 (+ x2 dash))
/ }* Q0 R4 L, p- T2 [ - (vector_image x1 y2 x2 y2 color)7 q* H% S4 ?1 r) v) ~
- )3 M% R5 @7 w/ S
- ;;
. `6 ]2 |! C; F$ ^ - ;; This function takes a selection and returns a list of the color, linetype, * R- w0 w' i+ U
- ;; layer, and thickness properties that are common to every entities in the9 o/ d4 a8 j; c5 u( Q" k+ }$ u
- ;; selection set - (color linetype layer thickness). If all entities do not
2 `. k" L, `7 e, n7 _( N. U - ;; share the same property value it returns "Varies" in place of the + u9 n: C/ s+ J; Z- S" _$ ?
- ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
, I# R0 O. r* f8 s/ s- B - ;;
4 u: \# Z$ j- z7 w - (defun getprops (selset / sslen elist color ltype layer- f( Z* m- m+ n, H% O
- thickness go chk-col chk-lt chk-lay chk-th ctr)% o/ k3 o( O- L+ W" N" `
- (setq sslen (sslength selset))
" ~( p6 e A4 B& q& e" j I. L - (setq elist (entget (ssname selset 0)))
5 x7 ` `( r3 | - (setq color (cdr (assoc 62 elist)))6 E8 x2 d% N- E7 V- [+ K
- (if (not color) (setq color 256))
. H! a# f4 x: q" \0 \/ c8 |/ I2 B$ L - (setq ltype (cdr (assoc 6 elist)))$ C+ I8 ]! l- V* z( p5 n3 a
- (if (not ltype) (setq ltype "BYLAYER"))
" M. p* e% G4 e - (setq layer (cdr (assoc 8 elist)))' x6 W$ h3 p% Q, z
- (setq thickness (cdr (assoc 39 elist)))
+ x8 X4 N1 v1 X8 e( s: |9 V$ | - (if (not thickness) (setq thickness 0))8 T& B2 a& l) u
- (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)6 L z( L% g* F) Q) T6 t! Z
- ; Q$ d% B8 m2 Q U5 e5 C
- ;; Page through the selection set. When a property
, p4 d8 ~4 K) x( q - ;; does not match, stop checking for that property.
# _$ G" B& {4 G) m% q - ;; If all properties vary, stop paging.; ]' S) y; m; i- M
- . Q' F" p5 s' r* B' I$ Q
- (while (and (> sslen ctr) go)% I( }6 ]1 u2 \( D5 m( g9 U
- (setq elist (entget (setq en (ssname selset ctr))))- M9 L* r: h% z2 T/ m/ k6 t$ S
- (if chk-col (match-col))9 i- h/ ] ~* M* ]
- (if chk-lt (match-lt))
: Q5 l2 C+ M9 `1 m, p - (if chk-lay (match-lay))
4 X3 i3 ]! b B8 z - (if chk-th (match-th))
( W! U J+ r6 N# ]4 y" v - (setq ctr (1+ ctr))& X3 Y; j0 K. R) ~" w1 G8 ?
- (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th))
9 I3 O0 y" V2 C b9 n - (setq go nil)# a2 I; [; @1 W6 s/ _+ Z& _
- )
# \) f3 ^: e* B: A9 c) b8 l - )
9 k0 G8 S& ~- @6 x4 M3 J w! \ - (list color ltype layer thickness)$ g' U( \, y( i! e5 U4 f
- )
+ q9 q* @6 o0 `0 R. n, j - ; X0 z* |8 p( R" G
- (defun match-col (/ ncolor)9 ?6 f9 P5 L) y3 U
- (setq ncolor (cdr (assoc 62 elist)))
& C+ V! x, h R) M7 S - (if (not ncolor) (setq ncolor 256))
5 V& M% }4 y$ J* {' }8 L+ F+ ^/ h - (if (/= color ncolor)" h; W. l5 }6 t' v! u' f
- (progn O9 }2 a8 Y. l) g- }' c! p# [
- (setq chk-col nil)( g+ Y+ ]: ~" r' o8 b0 m
- (setq color nil)" T3 j/ A! Z2 P ]# t
- )% X* @6 ?7 l9 }& C* y
- )
1 |8 n p9 O9 R, \+ O; O7 i - )+ D3 ]. x* m9 _0 o% z9 W& X
- ( m4 Z1 d2 A3 I" ^4 K
- (defun match-lt (/ nltype)6 X. b! t# C/ g. I+ ?! ^
- (setq nltype (cdr (assoc 6 elist)))
( [2 `8 `$ b g$ Q4 C - (if (not nltype) (setq nltype "BYLAYER"))0 L& e1 }% b3 E# ~ h
- (if (/= ltype nltype), h7 H9 C `9 Q8 o9 B6 k1 g& M% \
- (progn
$ R' ~" h0 A9 K0 U$ @0 x% B - (setq chk-lt nil)
H" A# z/ i, S/ C; \; s& L! r. R: ] - (setq ltype "Varies")+ n" T; u4 d" W) S, o5 ^$ x6 s
- )/ ]" u% x, |7 n5 n- ~! x9 l f% F1 `: c
- )
$ e @$ D b, ^3 N# F9 W, I+ t - )
1 { ~' M! O( y+ p. T, g/ d
, M; o/ I) D3 x) Z" e1 e- W5 @( z- (defun match-lay (/ nlayer)* q0 c1 `5 [" u1 X1 V' l
- (setq nlayer (cdr (assoc 8 elist)))- c! H& G" ^/ y K- k* A
- (if (/= layer nlayer)
5 d' q, N& J/ Q. D( W: [. c - (progn9 C8 e, ]" H: |8 |& j
- (setq chk-lay nil)3 I/ ?4 D; {8 Q6 O5 m! ]
- (setq layer "Varies")
! m4 S# `7 U" i6 S5 g - )1 p" I; R4 W( w4 S8 q$ K) W
- )
+ G$ N/ q' |) H- v( A - ), L. L3 h3 g! i) {! s3 a. ~3 }" ?
- 8 r5 d& S' K ]
- (defun match-th (/ nthickness)3 c9 y; {0 J: J) R' |, N( X: V
- (setq nthickness (cdr (assoc 39 elist)))$ G' \' I( a2 i6 W8 C q7 o
- (if (not nthickness) (setq nthickness 0))
6 ^" l5 i4 E) [7 B% l. { - (if (/= thickness nthickness)
$ z# p1 ~. m( Q3 Y, I4 g4 ?: e - (progn* r( w* S' h0 c% E
- (setq chk-th nil)
/ G/ s$ E j5 k- e6 f6 N, h - (setq thickness "Varies")
+ A7 j0 o9 s. R - )
$ S5 P. X* s1 W: ^ - )- @. m8 I0 h& f* Q7 i7 x! Y! k
- )" {% i+ j) Y9 ]. \
- 8 t3 }$ I# W2 y. \
- ;;. n& ]# j. u3 ~$ c! R) L# v
- ;; If an item is a member of the list, then return its index number, else
/ Y$ W6 N" k0 e9 E - ;; return nil.
. l+ j1 R0 \# I1 j& s - ;;
1 ^3 h) c4 C( H: ]! V8 n - (defun getindex (item itemlist / m n)
* o( H/ C: ~& v0 _: v - (setq n (length itemlist)), ?9 z( r5 A; \( U9 f
- (if (> (setq m (length (member item itemlist))) 0)
$ C! Y1 F: r Y - (- n m)
6 R: c. e0 V# l6 ~& l( P - nil
% c- @, H' U- w! W- o - )( B/ Y' I6 \/ n0 n
- )
9 O& P4 B6 v9 _& _0 E* N9 e - ;;( }6 i r4 A8 j8 L- {9 e; W
- ;; This function is called if the linetype is set "BYLAYER". It finds the 6 ?9 @ d" H) H _
- ;; ltype of the layer so it can be displayed beside the linetype button.
1 ?. m! d6 |' t$ H9 v5 P$ C3 D: } - ;;7 T9 } d4 |+ B* h$ {0 c: D
- (defun bylayer_lt (/ layname layinfo ltype)
) e& F- f8 n* t8 T9 Q- T - (if lay-idx
. K* X$ r$ u) M8 p1 B - (progn
! L) Z. @! z* O( ~. X - (setq layname (nth lay-idx laynmlst))
& B3 t6 q/ \4 J9 ^- S - (setq layinfo (tblsearch "layer" layname))
7 k, I3 I# M% Z, [$ m - (setq ltype (cdr (assoc 6 layinfo)))
- E& X; I% W3 ]9 n3 t - (strcat "BYLAYER (" ltype ")"), N1 A: L* r5 W' `& E5 C
- )
: A8 \+ G* |0 Q. L- i/ h# T - "BYLAYER"
! R: c- n( ? `9 X0 d" I+ P# Y( k - )4 p( G; o6 Q% F2 k5 ^0 E W
- )
/ [& y8 T* V( h( n( Q! p - ;;
5 V( [* U, O/ c5 T+ R& j" a - ;; This function is called if the color is set "BYLAYER". It finds the
; |( k! h: n; y' s, y( V; [- j - ;; color of the layer so it can be displayed beside the color button.5 ]; C2 p0 f; o
- ;;
$ `* F0 m9 L4 x& a. O! n/ \6 w2 t - (defun bylayer_col (/ layname layinfo color)+ d2 a0 J2 X. B
- (if lay-idx. @, J, r6 a( X5 n' O
- (progn( s5 ^7 x! E8 ?( T5 P& G. m3 f0 v0 x
- (setq layname (nth lay-idx laynmlst))
0 x% k3 n: U7 q - (setq layinfo (tblsearch "layer" layname))( W; Z4 ]( c/ u" D5 I+ ?1 X
- (setq color (abs (cdr (assoc 62 layinfo))))
% ?, L9 X1 F8 `, G* [2 H - (setq cn color)
! s( z0 U; N/ Q* q* I - (strcat "BYLAYER (" (colorname color) ")")
; ]2 S% E. n% K% X: t - )
% }4 I$ h6 m% @& R - (progn
% E" R; A' @/ H4 u3 | - (setq cn 0)
0 z/ @" s6 ~$ d/ G' p - "BYLAYER"
1 K3 P: A- B9 D, B% w C) H1 e3 ~ - )
% v9 P# I5 C$ p; c - )0 N* e( J# O6 e; i+ F
- )4 C" i$ n- F6 h/ G
- ;;
: Y" J x2 t$ m. u/ D! `+ ]1 S - ;; If there is no error message, then close the dialogue
- A! C7 n, c* a" b2 c - ;;
) J J8 K3 c9 @+ U. ? - ;; If there is an error message, then set focus to the tile
" T9 |$ X; W L7 k: O: U0 O2 ^& ` - ;; that's associated with the error message.! p, _; i& r+ p7 ^- [
- ;;
" {' ^% O, E7 p, W' Q6 y+ G* z: i d - (defun test-ok ( / errtile)5 B3 S, t! [! L: D+ |, h1 O# ]; L- I
- (setq errtile (get_tile "error"))2 I; h) j9 x" P5 R- H
- (cond
! x+ y% y2 w( O - ( (= errtile "")
) [" T Q5 `3 c. j3 ~3 h' @7 R - (done_dialog 1))* G2 B" f) T5 a% Q" X M
- ( (= errtile "Invalid thickness.")$ p( H9 b2 f! i" q$ @2 _" ~5 }
- (mode_tile "eb_thickness" 2))
1 |6 R5 B1 v c3 p D* G/ l0 v u - ): t8 h9 J$ X6 g1 ?0 I
- )9 {: v- j5 `/ G A# s
- ;;, C2 a# F1 n8 U3 T9 E
- ;; A color function used by getlayer.$ O9 k3 j$ r& C0 V/ t3 V
- ;;
, q. F' n5 H, I" Q3 b' k% W! t - (defun colorname (colnum)
0 d; ^+ Z& U, f1 a# P9 T: g1 F4 P - (setq cn (abs colnum))
5 k( O/ D3 r2 v3 M% C1 n5 K - (cond ((= cn 1) "red")
6 w: a; U* ], K6 c% B - ((= cn 2) "yellow")
0 H5 U2 S0 N: X( B - ((= cn 3) "green")( P5 I: i6 ]+ Z# N. s
- ((= cn 4) "cyan")
7 @1 f t4 T5 O2 h8 J: N - ((= cn 5) "blue")
: k- g: I" r0 y Y6 Y8 U9 @/ _ - ((= cn 6) "magenta")
0 C: r3 v5 f. Y# r7 w# h3 b: u - ((= cn 7) "white")4 z) j. a. a3 n0 _
- (T (itoa cn))6 b4 q" j9 R3 @( \. g; m5 b
- ); f* c4 a) P, F
- ); p6 R( z7 ?* i' p- R- H
! M, d# D* B) v' f- ;;; Construct layer and ltype lists and initialize all
* q1 b A, ^; }% y# K( A - ;;; program variables:3 [& d3 N. P* f: v5 @
+ k, U/ |+ Z1 _6 D- (makelaylists) ; layer list - laynmlst( n6 g4 b; c" }$ [
- (makeltlists) ; linetype lists - ltnmlst, mdashlist
* I, p. v, i6 k% ^& ]4 v+ E L6 t- o - ;; Find the property values of the selection set.4 W- ~, G# `& r& ^0 G* d
- ;; (getprops ss) returns a list of properties from
9 O) s. ?& A" V+ b' N& p+ u - ;; a selection set - (color ltype layer thickness).: z# f( ]6 E K
- (setq proplist (getprops ss))
6 n# y1 e1 v4 d- K; o B - (setq ecolor (car proplist))
- A M. _7 `: b9 \ - (setq eltype (cadr proplist))
. Q0 J& c5 C' e2 V/ V& R; B - (setq elayer (caddr proplist))
$ c4 ~! `2 r5 Q, ?; G9 D - (setq ethickness (cadddr proplist))
1 k' u c# I9 z - ;; Find index of linetype, and layer lists
) y4 T0 N% z9 ?2 f5 K6 S1 g - (cond
) f8 N$ ^0 j) ]- `4 u+ V - ((= eltype "Varies") (setq lt-idx nil))
" h' i( i i5 g5 A2 { - ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))* z# V7 w/ t9 m4 f% f
- ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst)))+ M$ u8 S, X2 m; T
- (T (setq lt-idx (getindex eltype ltnmlst)))
& U. {6 h, l" v* _# |; l S - )
! X5 N$ ?2 t) T7 U. `! O - (if (= elayer "Varies")
- X- g" l# z7 F* T H* k - (setq lay-idx nil)
# V5 @( B- n& f% E& e2 H% L, D - (setq lay-idx (getindex elayer laynmlst)) o' G. {( s- U8 |$ y* o/ E8 `0 o
- )
L! V& x+ k, Z$ m" F - (if (= ethickness "Varies")$ `( z6 l2 L& ?" X9 W
- (setq ethickness nil)0 E; H0 P( B7 v% {0 R6 l: H; Z
- )5 Z9 v" f& D7 k/ K! D
1 u( A1 ^! d, {- ?. S0 E! n- ) ; end (ddchprop_init)
8 ?3 J% C) m8 A/ s8 e
6 D b( ?7 a2 k+ \0 z9 n5 j. \/ y- ;;; (ddchprop_select)
2 k% \, o4 x$ n; G - ;;;
+ i9 Y+ t0 D0 e8 J) S) @ - ;;; Aquires selection set for DDCHPROP, in one of three ways:
. E6 T: S$ V, a7 o; D( b - ;;;& ~/ [8 A2 h/ J
- ;;; 1 - Autoselected.
. q) s6 F$ A( @8 m - ;;; 2 - Prompted for.; r6 ^$ d' X- ^. @
- ;;; 3 - Passed as an argument in a call to (ddchprop <ss> )& B" z# q7 y6 O/ z& {- |$ p' m8 N& x7 U
- ;;;
. @% U. D5 I/ ]; e - ;;; The (ddchprop_select) function also sets the value of the
) U# j/ C, e# }. F( K7 e - ;;; global symbol AI_SELTYPE to one of the above three values to# i! P i2 @: ?+ \4 L+ Z
- ;;; indicate the method thru which the entity was aquired.
& i$ ^& N" h3 u m - $ I7 H8 \2 I, @
- 1 `( z9 U" {8 j$ q
- (defun ddchprop_select ()5 Y2 Y/ v( T/ W+ e. O
- (cond/ G5 X h ]( B \6 {
- ( (and ss (eq (type ss) 'pickset)) ; selection set passed to: u, F$ ?4 |4 Z: b5 z* {" q
- (cond ; (ddchprop) as argument7 |* R* Y* l% w5 Q# v6 [
- ( (not (zerop (sslength ss))) ; If not empty, then
# `; N: V+ g$ P: V' D9 P - (setq ai_seltype 3) ; then return pickset.
" ~/ ?* M; G2 m - (ai_return ss))))
- F( h* _/ {$ ^9 ^1 K! u2 R$ u - - ]0 G; d" v9 |: ?
- ( (ai_aselect)) ; Use current selection
# n) Z( m1 {( p) o0 X- f% D' j4 _ - ; set or prompt for objects- f% f% r+ j2 \
4 Z. o" @, \% W7 I9 F7 ]' `1 x- (t (princ "\nNothing selected.")
- n2 D2 {, x# B8 q0 \/ p( ~' ? - (ai_return nil))
" r4 |' J/ z3 V( k: v. r, M - )$ {! Z0 G/ S1 [4 Z, P2 O+ {% o- N0 I
- )* r# C+ N; t) t6 T. q; {9 Y" c8 w+ u
- * W3 b1 m) S3 `; X+ m+ l! }( o$ A$ y
- ;;; Define command function.
( I" n, d E- J5 J - / n8 q! ]$ m. [+ l: C. [4 s7 _3 C
- (defun C:CH ()
4 U' ~7 n, }) K; p; G& R) ] - (ddchprop nil)7 b+ D6 z& z0 m. o& X7 B1 r
- (princ)
$ I5 ]. v6 A1 ]& H$ g' t - )
) S: j' {6 A0 Y* E8 ~$ X+ w J+ Q$ C
3 q' ^- {( O' @$ Q8 M9 y
/ k& c# f* c+ N- ;;; Main program function - callable as a subroutine.
8 c2 [, ?: [! |/ L# F - ;;;6 N7 y9 k7 W, F% a/ ]1 O1 h1 z
- ;;; (ddchprop <pickset> ); U' V$ _4 j) u0 \2 L
- ;;;: d- m1 ?& q$ s. H7 q
- ;;; <pickset> is the selection set of objects to be changed.+ m c, O' f) v2 K
- ;;;7 n8 v& M- a# z! |
- ;;; If <pickset> is nil, then the current selection set is
$ \* ~4 t7 |4 J7 w/ v - ;;; aquired, if one exists. Otherwise, the user is prompted
1 \3 W2 w5 W$ `4 I+ ]5 a& W - ;;; to select the objects to be changed.
0 C* p* g, m* [* Q: e5 ~, M - ;;;
9 T1 s" ], s( r2 E& A - ;;; Before (ddchprop) can be called as a subroutine, it must
2 o- R8 n5 U# O; O - ;;; be loaded first. It is up to the calling application to z+ t7 _7 i; L: e2 C
- ;;; first determine this, and load it if necessary.
! q( d9 x, |% n9 k. k
6 N g& H+ k; Q- (defun ddchprop (ss /' b3 v+ f6 E$ q& B
- $ f x5 l/ h# h, G0 o
- add-mdash ecolor ltedit_act s- D3 I! X+ ^6 n9 P$ u
- assoclist elayer ltidx selset
" f4 P+ Y) \% l( m - bit-70 elist ltlist set_col_tile! S* S* k4 ^# D9 V
- boxlength eltype ltlist1
# f% O; A M8 v5 V - bylayer-lt en ltlist_act sortlist
`$ M1 s7 \- f6 L9 Z+ ^ - bylayer_col ethickness ltname* G) Z' Q3 L2 k! x2 Y. m a& ?) v
- bylayer_lt fchk ltnmlst sslen( v( ?7 {' l" D! H& w
- call_chp frozth ltvalue templist
& @7 b6 V' G( W, v' g* V" D4 K( A) n! p- z$ ^ - chk-col getcolor ltype temp_color
. T3 h+ G" o$ \' S) V: o" g* Z- H3 j - chk-lay getindex m test-ok$ s4 y& [7 {! H \% y( S
- chk-lt getlayer makelaylists testidx1 m+ O6 S& `: u2 `
- chk-th getltype makeltlists testlay
' U6 L% L a- f1 `- L# N - cmd getprops match-col th-value8 e5 t* p% N: h. g$ G4 f) H7 d- I
- cmdecho getthickness match-in thickness/ M. s7 L" @1 k- @
- cn globals match-lay tile' T1 u9 _. o2 a4 ^
- cnum go match-lt tilemode8 M+ m8 z: @1 u& |$ W4 e
- col-idx index match-th tile_rect' d# C8 D) H1 Q8 }: R
- colname item match_col vi! W0 j+ Q! p! g2 } I3 u5 o
- colnum item1 mdashlist vpf% r0 ], W/ U+ n3 |; C) A. ?) L
- color item2 n vpldata
3 ]0 V2 e6 O3 h }: t ~" T9 c% @ - colorname itemlist name vpn
- x7 U8 g& Z% t, f" i - col_def lay-idx ncolor x% d7 ^+ D8 G, O
- col_tile layedit_act nlayer x1
+ V0 w. ~$ C* O - ctr layer nltype x2
- F& ^3 F9 A& _ - cvpname layinfo nthickness xdlist& B" M5 H, V3 u: u* ~3 f
- dash laylist off y% o8 V: I1 }$ q& {
- dashdata laylist_act old-idx y1
8 n, Q! k% Q+ E6 h- N! X - dashlist layname olderr y2
2 v* J/ [& X) p1 [ G: | - dashsize laynmlst on undo_init2 l$ N! c3 D# K6 k2 D
- dcl_id layvalue onoff$ T$ K. I* T5 L* L' I1 u
- linetype patlist m5 Q4 h1 j( z+ G/ d
- ddchprop-err list1 pattern4 \( z6 @6 x$ F2 x l4 [- `
- longlist proplist
1 t: f1 r, Y7 N, `/ s& i - lt-idx reset-lay
W) L: C. Z, n2 E, v3 v' X - drawpattern ltabstr reset-lt, h4 t! b) r* E. o$ a* K
- )
1 F+ M. g" R. r# W - 6 A( w N% T. S; K8 A
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
a0 z/ O" W/ X, I4 d6 ~* Z/ O - old_error *error* ; save current error function
9 S# \5 `: m _/ g - *error* ai_error ; new error function
4 C/ j+ T9 J& x! g. m - ): v% Z1 C% T3 W. U0 }
- $ f r5 G2 v/ R" o. e* G
- (setvar "cmdecho" 0)
. [, Y! G. o" }& s7 q$ \& ?, G" x
4 r: _) J1 b; a3 Q% ?) t- (cond9 z% J: C* k% x
- ( (not (ai_notrans))) ; Not transparent?3 G. s7 Q+ h3 }# j5 j
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?7 h" T K" A: o9 Z: K8 h" \. n
- ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?* _: B; ^, q' t( v/ v% D2 g
- ( (not (setq ss (ddchprop_select)))) ; objects to modify?5 t5 h5 Q* e s) s- [
: l# J# b2 _ R8 y- (t (ai_undo_push)! C- y- m" W! @" s: i0 k
- (ddchprop_init) ; Everything's cool,( { J, x7 P8 R! k7 `
- (call_chp) ; so proceed!) |- c4 c7 y- Z1 E3 O0 n! V7 O! @
- (ai_undo_pop)' G% _5 V1 b% r g1 O
- )# J8 n2 S" C9 {# n, H
- ): I# D: E2 O4 X9 \% }+ v) i( M' q$ z
- 8 u, A" O5 b. d; r
- (setq *error* old_error) $ d3 x! I! z Q* x7 s% s8 ?
- (setvar "cmdecho" old_cmd)& v$ b, [( a9 h# ], V6 N
- (princ)
+ R; u' [1 K7 q* T( ] - )
) d: i) E3 A0 w$ H" x1 q
$ ^8 T9 b. U" [ M) k0 h6 q- ;;;----------------------------------------------------------------------------
1 ]3 x% J' a% T/ Z( V: P/ J) G* O
& M2 K' B' e4 a+ `4 g. A* ?, w- (princ " DDCHPROP loaded.")
* v/ O) t0 F5 @9 x( M: }3 H' \ - (princ)3 q) h& G; _' h# C8 E$ Y+ L
- % b3 ^) R, `+ U% Q* D. i \* H
- ;;;----------------------------------------------------------------------------
9 b# c: X# h; \ v H* z
. ?) W0 n b7 V/ J" _- ;--------------------------------ddmodify.lsp----------------------------------" D6 }7 {& l* _8 l; u6 m& f
- ; Next available MSG number is 111; j1 K9 y1 p/ n9 Y
- ; MODULE_ID DDMODIFY_LSP_
- `( s& Y% S$ `$ r - ;;;----------------------------------------------------------------------------& f6 r4 X" V% ~" L2 }
- ;;; DDMODIFY.LSP6 R! }, ]2 Z q; Z9 B0 U
- ;;;
0 X; E+ l. u$ _& G6 [ - ;;; Copyright 1997 by Autodesk, Inc.4 I+ O& M5 C" ]8 X/ P# X
- ;;;
& H6 _6 M. W# A- r* T( V - ;;; Permission to use, copy, modify, and distribute this software2 |6 K' z( p# l# b" z' z
- ;;; for any purpose and without fee is hereby granted, provided7 K8 X+ [+ R1 P: C V
- ;;; that the above copyright notice appears in all copies and" c1 Y2 y: {- ?" e) @% @
- ;;; that both that copyright notice and the limited warranty and5 P/ m F& z% L) P
- ;;; restricted rights notice below appear in all supporting
( e1 \* i( ~1 T$ c' |4 l# s, \ - ;;; documentation.5 W6 m# @+ b0 n! a8 o. y7 t
- ;;;
) [" T" y$ z; R2 A' o - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
4 b3 {9 e. B; @' y# n - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
1 m6 c- R& ]: k - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
/ p4 c( P- r1 }; W0 }) ?" T! i - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE, ~- @. h6 v" F& Q9 W1 S
- ;;; UNINTERRUPTED OR ERROR FREE.- U) ~. {: h; h2 x% E
- ;;;) [7 m# F9 s' y+ G1 M
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
* b8 N: z8 ]+ X- [9 K' {0 ]$ I - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer4 J1 {" V8 ?/ p2 t$ V6 \
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
; u6 B7 Y7 H( V- M3 E! z2 l/ m - ;;; (Rights in Technical Data and Computer Software), as applicable.4 J0 h2 K/ P4 B6 ]; c$ A
- ;;;
/ b" L6 j1 K0 p) i - ;;;.1 i/ T7 _$ ~' }+ U4 }* ^! J2 l2 Q
- ;;;& A& [' C/ F8 f" n4 N z7 k' E
- ;;;----------------------------------------------------------------------------
3 p! ]# _1 D5 T1 U. v- J/ Q! C: R, T - ;;; DESCRIPTION
, x7 ^: v- I: ^ - ;;;5 i0 T4 C8 b( y1 g/ O$ T2 A
- ;;; This function allows the user to get a listing comparable to the LIST
2 Z7 n5 Y. J7 _" p/ [0 W$ P j - ;;; command for most objects. In addition, most object fields in the% @! A% P' B' {
- ;;; dialogue box are editable. Points can be specified dynamically by- c% F' P& H+ D p# n
- ;;; temporarily dismissing the dialogue box. Each object has a unique
7 S5 D4 D5 W0 U8 V: c - ;;; dialogue.
4 D2 c- B9 v" w' ~) ` - ;;;1 g0 l) U9 \( E" I9 I$ T& m
- ;;; Naming conventions" n$ h8 E" l9 p- n& `# c8 x
- ;;; Long function and widget names may use an underscore "_"4 w* K4 e8 z! ~. _
- ;;; in their names to make them easier to read, long variable
' e8 S+ f3 {2 J2 z$ @8 |/ n7 K - ;;; names use a dash "-".
5 C- k. p: q6 [8 T, k0 V; _ - ;;;----------------------------------------------------------------------------; Z3 P B. U( M
- ;;;----------------------------------------------------------------------------4 c( L4 ?8 O/ _ N
- ;;; Prefixes in command and keyword strings:
( R9 d- N p( B: Z+ ~ M- F; H - ;;; "." specifies the built-in AutoCAD command in case it has been
' z7 V7 t/ F, E2 A$ I% Y) b- K - ;;; redefined.! o3 d0 x% h* }0 z2 K
- ;;; "_" denotes an AutoCAD command or keyword in the native language
) w% y4 I& `- X$ \. y5 [' q( v: \- d - ;;; version, English.; l5 q" p! E8 S/ D2 }
- ;;;----------------------------------------------------------------------------! r% j4 Y5 o7 m( o! u1 w" I5 ?
- ;;;
8 D& E! {1 D/ \7 F0 q: s - ;;; Avoid (gc)s on load to improve load time. Y- p' U% y7 l1 t* I3 P
- ;;;
8 I, u* ?% A$ j7 Q - (defun do_alloc (/ old_allod new_alloc)
, h) J% p0 U- m - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))4 M( F7 ~6 B# Z8 k: w
- (expand (1+ (/ 17000 new_alloc)))2 h1 G2 [% G' E
- (alloc old_alloc)
) k' O5 a( ?# g6 V: z6 P - )! [7 S E9 K7 s5 j8 d1 N
- (do_alloc); L- E4 k4 g6 b. ^, B% C% t
- (setq do_alloc nil)- _$ X6 \1 N c% _$ m; d* @
; U5 z, o0 F/ q; W$ p, a ^- ;;;
2 U7 a$ p4 O. W6 M8 A* R: t - ;;;: x h8 e# N, z, o4 ]& R6 H9 l4 [
- ;;; ===========================================================================; U T' a6 R% [0 L: J
- ;;; ===================== load-time error checking ============================9 T$ A" L2 t7 |4 Q
- % N, b0 k; \: ^& C7 G8 y
- (defun ai_abort (app msg)
1 F9 G4 O: l* t3 t P2 I' y - (defun *error* (s)
. a$ |0 R" U: a8 L! H - (if old_error (setq *error* old_error))
) p4 p/ Y6 @, E - (princ)
# E! \, c; w* }8 |) | - )8 N! D- w7 y- X6 O7 y! ^
- (if msg& u: a3 k( Y$ z+ m1 y, d
- (alert (strcat " Application error: "
$ {- ]# C6 X3 `, n8 s1 F - app
- a3 G5 ?. |) I1 _' | - " \n\n "
8 Z! ~/ a: M; z" H7 C$ ? - msg
" M& x! \( }! Y5 I9 m% v. O5 a - " \n"8 G6 ~/ t5 \, f7 f* ~
- )
, P* J) X2 }. h; ]2 d1 D - )
% {# l/ \8 B, n8 O - )6 ^9 u- U' C& k) e. U6 V
- (exit), H+ s# d* U \4 m; f
- )+ ?5 R0 L2 [% `# ^6 y2 q( ~
0 F; J. p b4 R4 j! c/ O- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,+ Q$ j3 h4 T n9 t6 S, O8 c
- ;;; and then try to load it. If it can't be found or can't be1 |4 i9 \5 C9 J, Z
- ;;; loaded, then abort the loading of this file immediately.0 D5 b7 m" t' I$ _9 B
- Y1 R* N) B& y3 I$ Z: [2 j) E+ _- (cond+ g$ i0 @6 n+ ~' w& U o" h; l2 |" m
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
+ F( @3 I; S6 R5 H* B2 g+ F5 X
6 S7 R+ G( L! B2 u/ \% ]- ( (not (findfile "ai_utils.lsp")) ; find it) P; N! s. x) A% J# b
- (ai_abort "DDMODIFY"# |5 g3 H8 j' a2 A+ f* R0 Y d
- (strcat "Can't locate file AI_UTILS.LSP."% ] \5 O, X% k$ N: v* T, `1 U
- "\n Check support directory.")))7 p% y" P. h3 Q, @( E N
9 Y4 {9 L- F8 n% I- ( (eq "failed" (load "ai_utils" "failed")) ; load it o$ ?- V& ~' g
- (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP"))
8 L5 y, g; N$ r - )7 n2 Z- f1 \9 u! A3 I% b& l
- l& E3 Q# B% p I9 L3 I
- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can3 N% c: R- K6 x2 W( E { \
- ;;; be assumed that all functions defined therein are available.
; E6 s s' ]$ u& O8 u) r
$ i7 \& P' Z5 N# ~- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort; N2 b( Q2 N( o% B
- ;;; if the file can't be found or xloaded. Note that AI_ACADAPP9 C% H( C4 U0 U) Q
- ;;; does not abort the running application itself (so that it can
8 N6 D7 |/ _- o3 {# t - ;;; also be called from within the command without also stopping
2 a) P0 ^% U- z# P9 n1 D* _ - ;;; an AutoCAD command currently in progress).2 w: {0 k: X, b3 I H: p
' L* @. S, }) n& a X- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
" F" i: H# y, e: j - (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses1 Q' s) h; k/ k" Y, T
- ) ; ai_abort's alert box dialog.4 ~# F5 W$ w: E7 t9 x2 p
% E; {5 p# [, q) u- ;;; ==================== end load-time operations ===========================
" [) w+ \& E% H O% {/ ] - & }% ^, b' ~7 i7 M6 W" c" |& @$ F* x
- ;;; global variables
5 }7 k8 Y9 v1 ?1 i9 B - $ O* J ]+ B" A- W8 ^
- (setq hatch-elist nil)) n' c5 b9 e- m. W5 e3 p
- / K% P8 d- E, u
- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are8 I2 G2 @5 R0 Q. c3 ^4 }! R# ]
- ;;; assumed to be available.' E6 q: K5 E/ ]: R! R7 I Y
- " s$ m. ]9 ~ U6 M9 R
- ;;; Define and encapsulate all subroutines that are declared
3 ~/ d8 n. c- H E1 F* [0 P% D - ;;; locals of the (ddmodify) function.. F* W4 M* f/ A4 v4 P+ z; b
- ( U- @ M2 M4 v& p6 c" ^) a0 Z
- (defun ddmodify_init ()8 Q$ Q# s* Q* m/ ~; r
- ;;
- @& }- y/ b( @& ~7 b - ;; These three functions modify the enitity list for common properties. Since
2 @% y3 {/ H P( y |. S4 c - ;; color, ltype, and thickness are absent from the object list when they are! k2 [2 G6 s; S3 k& ^
- ;; set to their defaults (i.e. color = bylayer), a simple substitution using' P( H* V$ j. j
- ;; SUBST is not possible.
1 T1 v5 }/ X% z, _5 U4 x6 W: O - ;;" p. @# X) `, a) O4 G
- (defun modify_properties ()& p6 R/ D: E' @
- (emod ecolor 62)
- g; f. O$ b1 `/ u4 A3 m - (emod eltype 6), [: ^' M( N9 I
- (emod ethickness 39)
o6 {, I1 o9 [. B' t- _ n - (emod eltscale 48)
1 J$ \( p6 }' p4 B, Y+ i5 m n' \ - (tempmod elayer 8 nil)" w' c8 U3 q2 ], d' ^1 Q/ |1 p0 J
- )
. D6 x% Y- ^2 P - ;;" X" K8 e9 H4 Q8 a3 d6 E
- ;; This function is used for modifying common properties of the ACIS
0 k& \0 g5 C& k: C0 u - ;; based geometry objects. Thickness is not valid for these objects7 j; a3 Q5 G+ x2 j/ j. {) Q
- ;; so it is left out., s( C# N, w' p6 R' a+ d! q g6 @
- ;;: j+ \! y( D7 Z6 l; C( K4 h+ U3 C: h
- (defun modify_prop_geom ()0 x9 z( f9 ?& e3 d! p
- (emod ecolor 62)$ I- h. c/ E9 b; |9 p# D: s
- (emod eltype 6)
_" T0 p X/ J, Q* P - (emod eltscale 48)
; V4 m! h" `) u3 y - (tempmod elayer 8 nil)8 B2 H3 E+ z4 X: B/ v# @5 i
- )
7 N T& l% @4 Q/ ]1 X. K) y% R$ n
# M l7 P3 |. m ]- D: A0 m- (defun emod (value bit)
+ Z7 h a/ s/ H/ U - (if (= bit 62)
1 y* N/ C9 }2 U( d4 N4 y7 I, O% I - (progn% r' b* ]7 o2 f
- (if (or (= value "BYLAYER") t+ x5 I8 `; H4 e( a6 g
- (= value "BYLAYER")) (setq value 256))" _ h, J+ ` ~3 [. W9 ]
- (if (or (= value "BYBLOCK")
, B: r: r& K0 x( I5 B# m - (= value "BYBLOCK")) (setq value 0))
" |) q$ p- {) v# h6 [* o9 B1 g - )( O2 r b3 X. a/ D; s v
- )7 e$ } M8 ~! p; F6 A; Z; C
- (if (setq oldlist (cdr (assoc bit elist)))
% I/ y2 R0 U" h5 ^: l# g - (tempmod value bit nil)8 M, N) ?7 P1 P1 C& R
- (setq elist (append elist (list (cons bit value))))
+ u0 O, a; h6 m( K0 n8 |0 v, x5 C - )7 r) t8 ]8 F) o% ]
- )
& h9 A" e! I7 b7 w) ]- } X - ;;& p$ J8 H2 {% C; g) y, T7 n& K0 Q
- ;; Resets object list to original values. Called when the dialogue or
4 X$ j$ x& ]' ?, h* M; Z - ;; function is cancelled.* @, @/ W8 q# e( A& n
- ;;
$ o6 @' x% } t+ \ - (defun reset ()
$ ~. t2 n- z) Z" g3 [: S1 _: X" m - (setq elist old-elist6 z) f8 q2 b$ ^; R
- ecolor (cdr (assoc 62 old-elist))) E7 H) t2 W: E, e, n
- ethickness (cdr (assoc 39 old-elist))& W6 ?& E7 \8 [8 j- n) }& K2 i( G
- eltype (cdr (assoc 6 old-elist))$ F2 i* a! e$ N5 |+ ^8 e8 g8 E+ y
- elayer (cdr (assoc 8 old-elist))
7 d& X% k3 w9 M3 Z - eltscale (cdr (assoc 48 old-elist))" `, k" m: W* V* f
- )5 Q: T' ~2 I3 Q- t0 y- \; m1 ~
- (if (not ecolor) (setq ecolor "BYLAYER"))
1 k% t$ ^' M1 R$ P* ~) h - (if (not eltype) (setq eltype "BYLAYER"))) E. \0 u. r3 ^3 G B5 P
- (if (not ethickness) (setq ethickness 0))
; @( I. o" p% @- ^3 H. y - (if (not eltscale) (setq eltscale 1))- g; J0 ?9 ]6 i/ T0 w
- (modify_properties), K5 n& N6 K" D2 [8 s- m
- (setq reset_flag t)
I b5 U6 Y* S7 Q( H - (entmod elist)
- f2 Y, j3 X& Y$ p6 j" ^ - )0 a4 V( x( L% b1 o x1 `$ R7 P
- ;;
/ l5 J9 F+ d5 {5 D @5 S - ;; Modify object when dialogue is temporarily dismissed to reflect latest
5 `+ @9 {* X6 p& y/ o( l - ;; settings of dialogue. It converts the point from current UCS coordinates to3 l9 ?4 T/ O" n7 @9 n1 ~
- ;; the proper object coordinates (world or object).
- p) h: s5 C7 Y) s4 X - ;;
\0 X+ Y% l8 t. Z6 P - ;; Arguments: value - in current UCS coordinates
7 R8 u$ ]7 W* o3 i( e% J0 P5 _" X - ;; bit - object code (i.e. 10 for start point), R1 e: c& A) X! K5 _1 n3 P# ]0 i
- ;; ptype - point type 0=world 1=planar
. M$ x; ^4 P) r& b - ;;" e1 s1 M2 J- d* t8 |
- (defun tempmod (value bit ptype / newpoint)
3 }( e ^, e9 `) b$ u - (cond" r" A8 `. T) N2 c; x8 o+ V
- ((= ptype 1) (setq value (trans value 1 ename))): O7 p$ u5 J8 [3 O
- ((= ptype 0) (setq value (trans value 1 0)))
' u' t2 `8 p* k! o7 {, M1 e - )$ `0 w/ s) j. l0 n ]. s# x- D5 t% \
- (setq elist (subst (cons bit value)$ d* O6 u; N; ^( c/ z2 ~
- (assoc bit elist)0 M( h% n* ]1 Q; w2 t7 k& s
- elist; l' D' e+ ~7 e0 e
- )
1 K- G; W3 h$ G! v7 } - )4 j/ L$ e; j& [, A) P
- )
& x' K, |2 |5 H y3 s4 c# g9 }5 d4 H - ;;
1 b; H) Q( P2 }8 l7 x - ;; The following functions are called after a dialogue has been temporarily
; l! U; E: n3 U; \ - ;; dismissed and the user is selecting a point. If a point is selected the; \* A- R* R T: k9 g9 X
- ;; object list is modified and new X,Y,Z values set. If no point is selected
4 G( {4 F6 R& F0 u& _; U$ m0 Z' h - ;; (null response), then the point is reset back to its previous values.
: x* w% |0 v9 m( u- H - ;;
* ^& N/ A# {' S' d' X, L) u3 I - (defun ver_pt1 (ptype)
% }0 z( N$ ^7 H0 X3 g - (if pt1
+ l+ z. Q2 q8 p - (progn
. I% f- T8 Z" B b' {; o: b - (tempmod pt1 10 ptype)1 v3 `6 e( u: @) t& o/ s
- (entmod elist)
3 y3 o: h! P+ u - )
9 j U- i* h; Z9 U - (setq pt1 (list x1 y1 z1))
% h- C% ?4 f( c7 ^% s" y - )3 x. {% ]/ x5 D5 E# N7 d0 K* _% Q5 d
- )( _4 D5 @8 u* n/ `% G2 L
' t3 Z! @2 Q; S% c) p0 }7 V- ; (move_pt1 <ptype> )% f8 `2 g' }) t7 U$ W" U# @6 A: B! u9 r
- ;
2 L4 P, } ^. Q: c% h* f. O - ; Called in liew of (ver_pt1) to translate block insertions which0 h( x d5 G/ J
- ; might have variable attributes attached to them. If the distance
3 q+ w/ i0 L7 V3 Z - ; the block is to be moved is < 1e-6, the move is deferred.. |: h) d9 {4 z+ h4 r( Q
8 q4 y+ l) v4 |, x* n: T- (defun move_pt1 (ptype / basept hi), r7 }. `) i' V% C- j, @
- (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))6 K1 Y3 B# r0 V
- (cond4 H4 z% ?3 Q. k: @: i# c
- ( (not pt1)) b- k9 l! c! d+ u8 i7 ]
- (setq pt1 (list x1 y1 z1)))
+ C; K. j4 g4 z
' E4 W9 ?7 b! P$ M0 n9 A- ( (> 1e-6 (distance pt1 basept)))# K, p5 h- _) p
5 O0 ]+ R) S1 I! a- (t (tempmod pt1 10 ptype)" a2 u; A3 _9 |( d$ Y4 A) p% \: ?3 }
- (setq hi (getvar "highlight"))7 ?0 u& E$ |: Q" ]8 X+ d. i
- (setvar "highlight" 0)( e8 U1 t) ~) c# {
- (command "._move" ename "" basept pt1)
6 p6 ~3 z/ e7 ~1 Z' V. H6 ^ - (setvar "highlight" hi))+ \4 n- X( d+ b: a; y* _
- )
3 X( _, `. z: f' J) {( |' ` - )
: W! E/ r- q1 _2 M8 @$ H' K. P% O) F - ' u0 b' v! G/ ~$ r$ m
- (defun ver_pt2 (ptype)
, o' V- Y; Q8 E/ @# S4 Q - (if pt2
. F+ i6 G! @$ E( c" G& V - (progn' U, U& j5 l5 j6 R) p3 W, H
- (tempmod pt2 11 ptype)
3 t! e; v, B' X* X9 \2 ^ - (entmod elist)
! G# Y4 I0 e# u$ W6 ]2 F - )
) V$ l4 q( ~7 n& `- q' B" n& s - (setq pt2 (list x2 y2 z2))
5 l: D# g. ^& t# i/ {, z" o& M - )/ k( ]# S( Q" w/ _
- )
" O: j1 D3 w; D7 _* I# ?+ z
4 h. Q7 `! }3 A) [' L- I' m8 m- (defun ver_pt3 (ptype)% V8 r8 Z0 G0 \5 ]
- (if pt3
& S0 V! I7 F3 b0 Q r - (progn
/ G2 T2 P* k+ P/ y' {; @+ M - (tempmod pt3 12 ptype)
7 @. U; T. B3 K1 _9 E/ b - (entmod elist): B2 e% b8 H4 P) r+ C+ b5 j
- )2 A; s; h* p! ?! A, r
- (setq pt3 (list x3 y3 z3))
6 G/ Q& Y0 [7 L( [1 W4 b - )
9 W" q, A3 J& n1 V: s% A - )
S/ |& b. ~( X! D( v9 l
C$ e3 l$ {4 m/ `- (defun ver_pt4 (ptype)) S# O# D7 ]9 T- c. Q0 Y
- (if pt47 {1 G+ G5 Q4 \5 c9 B ~
- (progn2 p9 U+ M% y( B6 E4 v4 D
- (tempmod pt4 13 ptype)5 X. l- Q4 L- }+ K d, @
- (entmod elist); Z2 y9 e5 P9 X. D# t. P
- )9 q0 V/ p" ]: h# p6 e1 i% v
- (setq pt4 (list x4 y4 z4))7 k. d2 _8 }! M" d5 t! i* `: C0 V+ h
- )/ t8 M9 ]5 [- m9 b2 f0 q+ z2 m6 ?
- ) Y: ~2 h ~- F; t( B+ |% k
- ;; Xline/Ray
4 c: y; h' M: j0 c2 P3 ? - (defun ver_xline_pt1()+ S* O4 D" h! B3 M) j9 x
- (if xline_pt13 c8 @3 q- B( t: \& B( f% t
- (progn
5 u2 P* B" [) @3 A/ C! |) P - ;; convert to WCS.
$ n' u o, y4 K" y - (setq value (trans xline_pt1 1 0))
8 r! l5 V! K( S. U$ T$ E$ t - (setq elist (subst (cons 10 value)8 F- J# O2 b0 i
- (assoc 10 elist)
3 U( P. s, Q$ O% N* x6 N - elist, L, S' I/ M4 o8 Q$ G' c
- )
p* [$ n8 R9 O D4 l - )- W$ {; ]9 `8 G
- )
7 C3 B! e2 S4 t& [- Y - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))( w/ W+ N$ o; q7 R9 u
- )( x1 }2 F- P) z& W! W7 W
- )
$ e1 b1 R \3 ~ - % _. p c' X* r: W- M; c7 Z" F6 V5 [
- (defun ver_xline_pt2()
/ z1 q3 C, H. ] - (if xline_pt2% q/ s5 _- R. P9 I( F
- (progn6 W3 L f* @% U# g
- ;;
0 w6 q' d- y& e& c3 A# o. d - ;; Calculate new Direction Vector WCS
' Q: @) D1 }3 Q- i - ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))
0 O0 S4 O6 x8 T0 [ - (setq temp_dir (trans xline_pt2 1 0))
8 F) ]/ E( V* [1 H - (setq temp_dir_x (car temp_dir))
# D1 q6 ^9 t1 J: `3 } - (setq temp_dir_y (cadr temp_dir))
S g: s$ b! d0 `( v+ L8 Q - (setq temp_dir_z (caddr temp_dir))
# \" \% `; N* R% i) x8 W
1 Z4 g, S2 g/ U: M- (setq temp_xline_pt1 (trans xline_pt1 1 0)) F6 v9 b' t- F% Q9 m
- (setq temp_xline_x1 (car temp_xline_pt1))
" G9 q+ x% C6 o$ G - (setq temp_xline_y1 (cadr temp_xline_pt1))
! w. f' E% j7 Y& v2 ] - (setq temp_xline_z1 (caddr temp_xline_pt1))
6 h: r; |: C- H7 J* c - % k6 Y" D* L; ?
- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
: @0 N/ s- [) t# t - (expt (- temp_dir_y temp_xline_y1) 2)# a8 h$ |2 X* ]$ L& }# [3 S9 k. _% m
- (expt (- temp_dir_z temp_xline_z1) 2)4 I, R& k. N# M, T. ^- r) X
- )))6 U& c6 ~! U; K+ ]+ Q0 t% l& p6 N
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
2 w) N3 Z2 t3 a( B - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
: X: [$ x$ G1 [' z' L - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
" y/ O# ^& Q9 [+ s+ s - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))
: U; N( L- i) Q, O; ?8 Q - (assoc 11 elist)
7 U I8 o" I! N& i' ^+ E/ [4 N" } - elist
- d3 Y0 q0 R0 \/ D/ d- S - )
! R3 y' ]) `! H3 X4 r - )
6 @% p1 h M6 S( k+ b - (entmod elist)
) E. x# r3 `7 U9 v4 R( u2 E - (setq xline_x2 (car xline_pt2))
1 j. a' Q$ i" V/ X+ e: S - (setq xline_y2 (cadr xline_pt2)); l" y( \+ x+ C8 t8 w
- (setq xline_z2 (caddr xline_pt2))
% z- T) ]6 B: l9 O: ^
% ~' Q. i3 z. F) z) i0 y4 M9 [, n1 I- 4 B Q3 z' \- g( K
- ); y! y1 S1 M2 y Y$ t
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
$ U4 b+ ]1 u Z+ V$ G - ): @- Z, L6 X/ s8 ^8 M9 |
- )
K4 {4 I( Y( B; F5 z6 u
: |4 J; v+ V& c3 t- ;;
, N$ o6 b6 S8 x! s v7 h' H7 Z - ;; Common properties for all objects4 L4 W" h& G a* f
- ;;
9 @, s3 U! r+ ]" x$ q - (defun set_tile_props ()" P( r) H$ a+ | P* A
- (set_tile "error" "")
/ F+ _0 _6 J7 x9 K; M4 x - (setcolor)6 q& f: E& @* B0 a8 [3 n/ r0 @
- (cond
2 M+ W* [2 ^* Z# b! T. V - ((= eltype "BYLAYER")+ h: c) ~7 o: s7 ~5 A
- (set_tile "t_ltype" (bylayer_lt)))
, @% X, P& Y3 u) @7 F - ((= eltype "BYBLOCK")
# M, P! n6 A- W0 m8 w - (set_tile "t_ltype" "BYBLOCK"))+ \+ q7 {0 ]2 d' V! z1 A( ^
- (T (set_tile "t_ltype" eltype))- V" x/ L! p2 B) |0 s# d
- )
9 D. O" J e& i. N/ X; v - (set_tile "t_layer" elayer)) p; E8 `" j' P/ u) A
- (set_tile "eb_thickness" (ai_rtos ethickness))
/ t7 V9 Z3 H) b% H, c( p! C$ H - (set_tile "eb_ltscale" (ai_rtos eltscale))0 v* y, F0 y+ M/ v
- (setq which_tiles (ai_common_state etype))
, Z$ I& @3 {# W/ Z! @( Z4 L* v - ;; Disable tiles if need be...0 I( p' C0 o& @0 _& s& B# g
: M( O3 D, F! E" C( N0 n* I- ;; Layer Button and Text Field# d8 F/ P ~/ |9 f3 u' d" R
- (if (/= 1 (logand 1 which_tiles))
: z! }. x, V9 B6 o& ~) k - (progn
8 U0 [. |9 C# t* M( P2 M ` - (mode_tile "t_layer" 1)3 v4 T5 u5 e* }: F/ `* y* ~
- (mode_tile "b_name" 1)
3 L3 J; o N5 U& n$ O - )
& Q" K; Z* y$ B) V8 G - )
4 O; [" L" |8 K. [) [ - ;; Color Button and Text Field
5 O) ^4 @8 O. z. E3 w# N8 n% }( e - (if (/= 2 (logand 2 which_tiles))
/ u: N8 D$ R2 y+ j5 l - (progn
3 d+ z$ f- @2 k! i# Y, B' |7 }1 G - (mode_tile "t_color" 1)
) h% R8 ?9 [$ w( V% B - (mode_tile "b_color" 1)7 |8 l- B! z+ V: G% J
- (mode_tile "show_image" 1)3 Q! X! K& M3 s, R
- )4 f. A& G. G% Y! D+ J
- )
2 e+ h" c5 S8 T* | - ;; Linetype Button and Text Field3 ?2 n! M3 U# s4 E% ~) n) Q
- (if (/= 4 (logand 4 which_tiles))* c0 |) _. ?' p0 u
- (progn2 Y& y1 F; o( u5 T; l
- (mode_tile "t_ltype" 1)
7 S( w% C: L; c7 A( D - (mode_tile "b_line" 1)
+ v4 z# @- |1 ]1 f( Y$ z - )
$ s- x0 H! c& X - )5 g% y; n3 q1 L. u8 G; {+ o2 ^
- ;; Linetype Scale Edit Field$ t9 }; E: E( D/ S8 s$ T
- (if (/= 8 (logand 8 which_tiles))5 f: X, `- @* r5 M$ [! L
- (progn
' f* x! n5 e+ |5 c - (mode_tile "eb_ltscale" 1)% N; i2 N5 |9 V3 [4 d# R
- )( t) |$ C, a6 T/ x, q+ Z2 u
- )
* \6 t' W W8 M; {8 d - ;; Thickness Edit Field.5 H; G% }' {7 }% ^% v W
- (if (/= 16 (logand 16 which_tiles))
: \* s$ l, y+ n I% ` - (progn
* g- [4 }. r6 _9 F0 a5 \) q; L - (mode_tile "eb_thickness" 1)9 \, F( J- F1 i2 U% {; L3 ~( s# T5 x
- ), L9 r2 N9 [ q& ^
- )' W6 ]9 q- K8 k5 N9 S0 y9 k
- )
# S8 G# s1 A+ [; t" k) I - ;;4 o1 A+ j5 U( ~& m4 r; r
- ;; XYZ Point values for all enitites
- {" @- K4 ?& \- k% Q - ;;
" q! O, I2 ~% k; q: g. |+ y3 Y - (defun set_tile_pt1 (ptype)
1 w. w4 P- K$ ^3 V8 J3 L) f' S - (if (= ptype 0)4 \$ E# W, g( r4 S3 A9 _' A& v
- (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))
/ m: h7 A) U, p* G& f - (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
4 x' J* H0 D! A. N* v - )3 d) e. i2 E4 D( P
- (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1))))
" f1 ]# Y+ a. I - (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1))))) S) v# B) U7 i( U+ U
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))
: U9 Y4 v E8 S' _- k3 F3 C8 x" v8 y - )
$ `1 [6 d$ a" o( O, B! N( S( k! f - (defun set_tile_pt2 (ptype)0 z k; T" p* T4 i1 O
- (if (= ptype 0)* A7 L: [1 {6 @' {5 Y* {
- (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))
( i7 M i' R( M4 w+ R( e- r$ b - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))6 p5 D5 V# M6 l4 w/ q. I
- )2 k7 z, n2 H5 a, b% i
- (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))0 t& x. \ @/ @" x, Y4 f
- (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))
9 M# D5 s, j% E( Y - (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))
6 {4 w+ T$ J2 Q. B$ c - )
& w/ U) q* _! j! i0 k - (defun set_tile_pt3 (ptype)% d0 z* `5 j) r% q" \" s ^( P
- (if (= ptype 0)
" ]+ @) I+ ^1 C - (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))4 F2 t& ?; y$ Y' O' `( x5 w( Q
- (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))6 [6 {2 l$ M- ]! ?% x# h
- )8 u& v& i$ {' n9 V. Z" k% ]0 j
- (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))
* h/ @' `% |9 D- x3 C7 R - (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))5 g; {+ S( ^. U0 h
- (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))
9 y% ^$ C# p2 n3 ` - )# q2 {9 F' D' b- |( B- q0 D
- (defun set_tile_pt4 (ptype)9 j5 ?: r5 M- I6 @+ c4 k6 H
- (if (= ptype 0)2 ?! o* _7 p6 K. Y( b0 e
- (setq pt4 (trans (cdr (assoc 13 elist)) 0 1))
: p' w0 D2 c0 O+ ~ - (setq pt4 (trans (cdr (assoc 13 elist)) ename 1))" }/ r0 z f: M* L" Q
- )
* P+ q1 g0 r' m' e; b - (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))
9 O5 t; m" R" k% s7 U - (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))
* j" U% i" }* w+ `1 |# E) I- U* \0 ` - (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))
' k6 a! |4 [$ R8 _ o3 N$ \, n9 ?3 T - )4 H m# b: k/ h& k F
- ;;, a4 ^0 }, l$ G; T) ]- q3 U
- ;; Xline/Ray7 ] }0 e2 w% `/ N& ]% |
- ;;
; }4 ]! J) F$ q! J* v8 c g/ s$ u - (defun set_tile_xline_pt1 ()
9 y5 l+ t3 ?$ y( }
' _/ c1 \1 E* A& a( N) M- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))
) h, t4 ?/ y6 S. H0 v' u - ( s& o6 O! A0 R; a i8 X! s
- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))
$ a7 H7 Q+ \. J- s0 C `# U - (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1)))). p |4 y: O% s ~5 C7 C
- (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))6 T. C: t* b: f$ d
- )
) D" g, L |* Y d - (defun set_tile_dirv ()3 d" R6 p0 L6 L( o% h( }% t
- ;; Convert 11 group to local UCS (displacement)
& L) k2 c& Q. @7 D S - (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1))
- @. Q! D9 l5 F n& q. x - O$ e" t! I7 {( n5 W) H
- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))/ W* V% [% ^6 z) f2 z f
- (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt)))). G7 g N$ T8 j2 l+ T4 g9 a' y
- (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))- a+ M8 o; g% R8 }/ H0 v# N
- ): k3 K5 } f! @" Y1 ^7 w) M
- (defun set_tile_xline_pt2 ()
& e/ i: S$ J# _" Q8 s - (if (not xline_pt2)# J4 z$ p& X/ |: g! r
- ;; Initial second point is Root Point + Direction Vector& i6 b% I% t* p6 D* u: R5 Q8 F
- (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))
* r$ Y& n1 b" e - )
# n. A0 }. E% [( L! a- t. O - (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))
5 n1 A) w# t2 V0 C - (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2))))+ X; `8 ?$ S7 R8 b6 i: e
- (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))
( G& E7 ^- y! W; y& Z. {6 x Q; B - )" {' Z0 g* v* [0 Z9 p$ u* ^ z: U
- . g: h7 J1 v2 }8 J3 c* n
- ;;3 }9 Y( p. ^0 u+ p- P) E
- ;; Handle for all objects* @* S+ ?) R' U7 j& E; I4 R& g
- ;;
, W. O# [" K: x4 A$ ~ N - (defun set_tile_handle ()
! J% ]$ S- x2 M8 z5 Y) m+ G: I/ G* E - (if (setq hand (cdr (assoc 5 elist)))
9 S1 k+ ] K: l- G - (set_tile "Handle" hand)
- G' e" {" b+ l: ]2 r2 U5 O8 { - (set_tile "Handle" "None")
, c a0 C, Y/ }9 P: F+ O& i5 O - )
8 b# j& c" j0 x0 t A# _3 | - ). C- v- n) L0 Q" ]7 A: F
- ;;
+ u3 x* L6 J0 y% A) s; t. r+ A. c - ;; Radius for ARC and CIRCLE( W2 A" E5 V1 [1 m/ |
- ;;
7 k& ^, o! |& C8 R( t3 d# {& U - (defun set_tile_rad (), \- ~% v- R. L: Z5 M! g
- (setq radius (cdr (assoc 40 elist)))
' u; H0 Q( D8 S - (set_tile "radius" (ai_rtos radius)); J. z3 S' e+ S% p0 T
- )5 ]! j( L% @4 y2 l. Z! h; F
- ;;; z* {! i* J$ o" N. u# O; i0 ]
- ;; Start angle for ARC
7 g( T7 _9 i5 I5 V0 ? - ;;4 m; E; I9 F- d7 c
- (defun set_tile_stang ()
. |- M9 b) }6 Z# O - (setq st_ang (cdr (assoc 50 elist)))
+ v9 M5 A6 ^% b9 z1 ]* n( E; ^ - (set_tile "st_ang" (ai_angtos st_ang))' d+ v1 e' }0 C7 [, }
- )
+ K& D8 n8 W, ?$ }" C - ;;
& I0 _+ C" q! L( c% C" V - ;; End angle for ARC
0 X; U! S/ B3 l9 r - ;;$ \9 s; L6 T( @& P s- f
- (defun set_tile_endang ()
' o( a4 I8 R' s% l& `/ r4 M - (setq end_ang (cdr (assoc 51 elist)))
* P0 ]! @! D7 T4 v - (set_tile "end_ang" (ai_angtos end_ang)) K4 z) @# L* j. D/ y
- )
( u+ d: j1 w* ]! R - ;;3 B/ f& }* `( _+ L. Y$ s/ `. q
- ;; Rotation Angle - Text, Attributes, Block insertions and Shapes
* U2 @$ c; W7 m" X4 x0 e1 I3 W& v5 O - ;;
: Y$ b; h" i8 Y4 x+ N - (defun set_tile_rot ()
, ]/ }+ \6 e/ R1 L - (setq rot (cdr (assoc 50 elist)))
. q' w8 ~' a' V5 Q: Q8 N - (set_tile "rot" (ai_angtos rot))
: W! I% P6 U* u' o1 \! D9 } - )
" `' F7 B5 ]8 J7 J2 @ - ;;( l( b- s" C# L) W4 o, y5 v
- ;; Height - Text, Attributes and Shapes9 `7 Y2 @6 k# R+ p" H& A0 |% [" k
- ;;4 I& E+ P6 j* o% I( a0 J* f
- (defun set_tile_hght ()4 `5 a) t' L4 c. Q( U
- (setq hght (cdr (assoc 40 elist)))
/ V1 ~3 v6 ]* w, u4 f0 z - (set_tile "hght" (ai_rtos hght))
& G b, e! |0 [ - )
2 _" _/ x5 j, x" Q) X - ;;7 V( l# Q% N8 b
- ;; Width Factor - Text, Attributes and Shapes
/ b- q4 o5 P y& {" p4 o8 l. q - ;;2 M1 Q2 p- w o, [" w1 @) A7 Z/ L
- (defun set_tile_wid ()
8 B3 l q" H9 J - (setq wid (cdr (assoc 41 elist)))
' ?, z9 U2 `' u! L4 R7 A: d8 L8 D - (set_tile "wid" (ai_rtos wid))
0 }2 W2 ^' W8 s0 Z# g) H - )
$ D+ r4 J1 {1 Q* ]; X) u9 ? X3 A, V - ;;. w8 H9 C% g; m8 N$ X$ l
- ;; Obliquing Angle - Text, Attributes and Shapes
& E4 y, ]6 P/ J5 n- F8 z: d - ;;8 m8 \$ z% Q$ O8 |6 g6 ?
- (defun set_tile_obl ()) }2 U5 m) V# ^
- (setq obl (cdr (assoc 51 elist)))! _( _5 k. }; }! _
- (set_tile "obl" (ai_angtos obl))5 m% o! C. r1 X, u' r* T
- )* {- D) T/ y8 r7 a' o' i8 a' G
- ;;
+ j5 j! X: S# m& d - ;; Text string
# [& ]& x* F* X& q/ w$ o - ;;
/ G& y9 Y, _0 f d J - (defun set_tile_text ()9 q: Y7 S$ ]$ V, B9 f
- (setq text (cdr (assoc 1 elist)))
2 I1 m+ }0 R" u* g; x: C& Z& i* |: Y( b - (set_tile "t_string" text)
: T+ b4 c3 E. U4 q r! s C - ) x6 y3 F2 N+ J) v" q5 U7 Q' v
- ;; L8 q3 t& b9 b( a3 l
- ;; Attribute Tag
, D& i* X' V, M. w& x - ;;
/ ?5 n! r6 K3 V* ~& ~$ S- c - (defun set_tile_tag ()
/ V! ], C F1 U' D3 \) B; T$ N- J7 z2 Z7 A - (if (= etype "ATTDEF")
; z, V; K! p, R( T; l - (progn
- i4 \7 o5 k: G3 W6 p$ | - (setq attag (cdr (assoc 2 elist)))
& h l4 L! g! A9 h - (set_tile "tag" attag)
0 e# J2 s0 A; p, d: b1 ` - )
8 J6 {# r) c' p( { z3 a - )
& w& V5 c' E4 i* D - )
" i3 t2 z6 H- o$ ^; O* X' V - ;;9 k; J7 G. l6 B/ N. l4 g' \6 N% w0 x
- ;; Attribute Definition
: u6 ~) z, V; W" c2 |1 {7 Z% B - ;;
' Q6 w n3 w, ~2 C+ {: e - (defun set_tile_prompt ()
" H5 C; m2 P# v' Q - (if (= etype "ATTDEF")
# i3 y1 w& t. n& l' M - (progn; T6 @+ N p4 L- Z! R) t
- (setq atprompt (cdr (assoc 3 elist))). {% d* t! Y/ h8 y+ x( C/ u
- (set_tile "prompt" atprompt)
- s; q# ~0 \ b a# V - )4 @2 m( ?7 u1 }" s
- ); K: l, I' T6 P: O# O8 v
- )
?& x+ Z) d) D: E3 ~3 M4 j4 [ - ;;
# y& O P; F0 ]( h& t - ;; Justification setting for Attributes and Text. Initializes
% h2 y4 ~& l. b0 Q `/ W - ;; popup list box
# g) } Y" Z$ D4 P. V' v0 y - ;;
' D6 o! D1 z! D* T3 T d - (defun set_tile_just ()
6 B C$ G; |8 B& b$ C4 R$ F - (setq ha (cdr (assoc 72 elist))) ; horizontal alignment0 L2 z* j! `9 t. V. u
- (setq va (cdr (assoc 73 elist))) ; vertical alignment
& C9 T2 Y. ]0 P3 V( m3 x - (setq ha-prev ha)
| E3 Z. ~% X8 x' }# c5 k - (if (= etype "ATTDEF")8 n: n+ Z, D4 {( d, o. R, _
- (setq va (cdr (assoc 74 elist))) ; vertical alignment1 N5 _* J) Q" {1 F: W3 u6 C: z
- )
: S) P% u$ r% i$ }' J7 X" m - (setq jlist( Q, }6 k% h* Q( x' f7 G9 E# [+ z: K
- (list "Left" "Center" "Right"7 Q8 H: [8 c: t; z
- "Aligned" "Middle" "Fit"
; U4 G) U% G; N) E - "Top left" "Top center" "Top right": @! \8 H1 E4 z; m
- "Middle left" "Middle center" "Middle right"( f! |, C) l* a8 ~ l& L. C/ f# l0 T5 A
- "Bottom left" "Bottom center" "Bottom right"
/ Q5 n& k; B$ @5 @1 N - )
: @ n% b( U" F - )
, e* {0 L2 E1 b" ]% X - (start_list "popup_just")- Q% O3 ?8 l: l8 o
- (mapcar 'add_list jlist)
0 {: q/ b% h' S - (end_list), i+ \" a; F8 C. Q t2 k
- (set_just_idx)
* `8 W- c. D7 V: r! ^4 [- @ - (set_tile "popup_just" (jlist_act just-idx))! L# y. X% P# q' Z( R& F
- )
# U4 L0 A+ V1 {+ w' W3 o8 Q - ;;5 ^3 z1 \5 u2 y4 Q
- ;; Style setting for Attributes and Text. Reads symbol table for popup list5 _6 ~* d: B/ n$ Q" {+ p
- ;; box.
: p2 F/ m- S- o% w5 i0 D4 k - ;;3 x: S( |( a% m, s% j3 v
- (defun set_tile_style (/ sname style-idx tlist)
5 Q" o# T% p5 z' M/ `# \0 F9 g - (setq tlist (tblnext "STYLE" T)' |. W% Q5 Z3 Y. p* h
- slist nil)- R. q; N1 T- |, ~$ x! I
- (while tlist
* ^' I* g5 S4 _5 h7 H n8 N - (setq sname (cdr (assoc 2 tlist)))
/ [ l# T- t+ p4 G* l/ m: Z - (if (and (/= sname "")* B" V K4 ^4 F+ P/ \( J
- (/= (logand 16 (cdr (assoc 70 tlist))) 16))
) J0 f9 |3 y' M3 I8 y, j$ x+ v/ V1 F - (setq slist (cons sname slist)))& T- u; @9 F7 j8 L X' n% Y9 E9 W/ T
- (setq tlist (tblnext "STYLE"))). j( S, t* `9 L! N
- (if (>= (getvar "maxsort") (length slist)) }) X; C5 S' L/ o1 t) E" Z' m) \
- (setq slist (acad_strlsort slist)) ; alphabetize style list3 f" P1 s M& T3 }" z
- (setq slist (reverse slist))) ; or reverse it to put it in DB order: s7 Y9 i+ Z' e
- % d; z5 e% ]) W+ m
- (start_list "style")& K) T- K3 Z" Y2 b2 \5 a3 b( s
- (mapcar 'add_list slist)0 ?) a$ [. n: S; k. @0 [1 H, o
- (end_list). r" M5 m9 j* w6 R+ D$ }) f- T% f
- (setq tstyle (cdr (assoc 7 elist)))
3 G0 U- z; f }! l) B+ s - (setq style-idx (getindex tstyle slist))8 Y& Y( l2 A0 E" j
- (set_tile "style" (itoa style-idx))
* ]0 Z. |0 Y+ }0 C - )) d6 P7 H7 k8 R0 n" L9 T2 l
- ;;. d9 C: c2 x3 V+ g+ d i1 x
- ;; Text and Attribute setting - upside-down, backwards
" l5 d5 o O: J3 @9 y - ;;
3 E3 n7 z: Z" @ y5 s - (defun set_tile_bk-up ()
5 u9 B: ^' `3 g - (setq bk-up (cdr (assoc 71 elist)))
+ X! H c, `9 s ^8 c& Z" W - (if (= (logand bk-up 2) 2), Y, P J4 D+ |* ?) E
- (set_tile "bkwd" (itoa (setq bkwd 1)))* K; X) G$ }9 z }0 Q( w
- (set_tile "bkwd" (itoa (setq bkwd 0)))
) ^9 ^7 M7 V4 f9 [& n: k - )
3 X5 H; x& _. l - (if (= (logand bk-up 4) 4)
5 @: z1 n; T: U9 _7 a9 l1 g - (set_tile "upsd" (itoa (setq upsd 1)))3 _9 h- L1 f# e. i
- (set_tile "upsd" (itoa (setq upsd 0)))
5 w! f9 A( H# t1 Y8 n/ l - )+ c6 K7 W5 u8 ^2 }2 t5 W
- )
4 X$ H5 [( _, y' r4 B* B - ;;
6 c9 N4 |/ @' f - ;; Attribute setting - invisible, constant, verify, preset# n! e5 i* W% j, B
- ;;
5 F7 A2 w, M2 o) m/ _ - (defun set_tile_icvp ()/ ^5 ~6 G2 G) X/ D) [4 R( g
- (if (not (setq icvp (cdr (assoc 70 elist))))/ _8 m8 V8 S- \4 a0 w; Q
- (setq icvp 0)! R3 e5 j: [4 r5 q, u
- )
, F& [( J S1 l/ @ ^3 l - (if (= (logand icvp 1) 1)
S7 R1 [# [. a - (set_tile "inv" (itoa (setq inv 1)))/ E% D! V1 C0 q0 B7 y$ w
- (set_tile "inv" (itoa (setq inv 0)))% i) U4 A1 R: H( N2 v+ Z& f: o
- )' D9 i% E. I% S j5 Q; V; p
- (if (= (logand icvp 2) 2)
) j# A# C. l M - (set_tile "con" (itoa (setq con 1))), i- p& Q" h5 K, ^1 `7 Z. Y% z
- (set_tile "con" (itoa (setq con 0)))
' G& L- G* P. r5 B: `0 U; Z - )4 Q, l7 ?" g4 \1 s/ S1 z; T. W* s% \
- (if (= (logand icvp 4) 4)8 z% ~ B- ]& L8 [7 e/ n7 `
- (set_tile "ver" (itoa (setq vfy 1)))
0 h& u" ]* ^ t5 J% P - (set_tile "ver" (itoa (setq vfy 0)))0 b E5 N/ M- ]6 f7 V, F2 D7 }& o) s
- ). R A( P$ M) \6 A V2 c' @
- (if (= (logand icvp 8) 8)
9 H( Z. M% e- u$ m2 I! H6 H! N. Z7 T - (set_tile "pre" (itoa (setq pre 1)))
+ X( S' Y9 b2 s - (set_tile "pre" (itoa (setq pre 0)))% |6 N% l e- v9 ]3 w# p
- )7 c/ n- P0 Y" y* `# c* C
- )5 ]# O- W# m' D' r% T
- ;;
# A% }' q( b) N5 ~7 y" } - ;; Scale factors for block insertions
/ |. `. J u! {( M3 U& P - ;;- r4 d) d3 i1 D' l9 C/ y: }
- (defun set_tile_scale (/ temp)
! Z. m' m: c# f! i) B/ [) C) ` - (setq temp (getvar "LUNITS"))6 J" P3 Q* ^- M: p& Y$ B R7 A
- (setvar "LUNITS" 2)
. q/ {/ j! ?, v+ b2 N) t - (setq xscale (cdr (assoc 41 elist)))
2 S/ _% M( h* e& p$ w" C8 i - (set_tile "xscale" (ai_rtos xscale))
0 ]& a" g8 } R( v) } - (setq yscale (cdr (assoc 42 elist)))& Y( z+ r/ Q- j5 B
- (set_tile "yscale" (ai_rtos yscale))
3 _7 R% i/ a1 ^1 i* u; X* P. `' e - (setq zscale (cdr (assoc 43 elist)))+ p6 j+ D# l, T, W4 b
- (set_tile "zscale" (ai_rtos zscale))
3 c- J" _1 j) M* |! d9 ^7 @5 b - (setvar "LUNITS" temp): [4 X3 \- ?) @; e5 N
- )
, i, I/ {9 x2 E, E- i' q% s/ x - ;;. y! v3 I2 O# \4 k. D
- ;; Rows and columns for block insertions
& l2 y+ ]" T: T: ^# P - ;;- H5 U y2 p" x1 ]* G9 }; v/ g
- (defun set_tile_rc ()$ B' x" s9 Z/ x" m
- (setq columns (cdr (assoc 70 elist)))
4 ]) c$ b6 R. o7 G! C5 O - (set_tile "columns" (itoa columns ))
4 p* A7 V5 D, I. g& V/ z0 H( W7 ` - (setq rows (cdr (assoc 71 elist))): s4 T9 d# d& n2 L3 h3 Y8 ^3 X
- (set_tile "rows" (itoa rows))) k$ N/ V" ?' a) }
- (setq col-sp (cdr (assoc 44 elist)))+ k6 l; T8 q- e* I; ^( Z, y s$ g
- (set_tile "col_sp" (ai_rtos col-sp))$ y2 B4 O$ i- u; }# D% E: c% T
- (setq row-sp (cdr (assoc 45 elist))): ^# D( V+ ]0 W/ k- ^ _: u
- (set_tile "row_sp" (ai_rtos row-sp))
. o, B1 r- D' s - (if (/= hasclip T)! \8 }. j2 s" k+ @: G
- (mode_tile "xcliponoff" 1)
+ z. H8 j' G4 Y - (set_tile "xcliponoff" (itoa xcliponoff))
: s( A( g7 c: I& R - )
& D |; {# y4 ^6 D; p - )' i' K% d6 G) i" u9 c# S$ Z
- ;;* S2 T2 B4 t1 h& T# \
- ;; Invisible edges for 3DFACE j( N% s' A; R5 z" u. F; c
- ;;
1 m5 N& Q- n0 a - (defun set_tile_edges ()- x/ T& s5 h$ [ G. D B8 I: Q# q6 w
- (setq f-vis (cdr (assoc 70 elist)))( N0 h5 X ^! X5 p8 j% |3 X0 I& {$ A
- (if (= (logand f-vis 1) 1)( |6 f' H: @0 U l: w I, L: ^; G5 X
- (set_tile "edge_1" (setq edge1 "0"))$ {6 O+ p/ T& J9 l) q9 a. v& x
- (set_tile "edge_1" (setq edge1 "1"))% c! }! t6 l% h0 c% h& [8 }
- )
5 o0 I4 z# }7 p. Q! L9 G - (if (= (logand f-vis 2) 2)
' m, Z7 X" y7 F5 o - (set_tile "edge_2" (setq edge2 "0"))
( V4 K2 { h$ n0 x/ T, v; V - (set_tile "edge_2" (setq edge2 "1"))- m7 Z# t, l' C! z/ f! F
- )
& @3 c) c }! i0 }7 e+ ^ - (if (= (logand f-vis 4) 4)# p7 w r, o* J0 G5 A
- (set_tile "edge_3" (setq edge3 "0"))$ S( V* z t* g: D5 u" W
- (set_tile "edge_3" (setq edge3 "1"))1 c, }8 r; }! ~
- )
) z; h7 ?, r# h/ A+ k+ \ - (if (= (logand f-vis 8) 8)
$ ~4 e, Z% _, [# O5 t - (set_tile "edge_4" (setq edge4 "0"))
0 B; w1 `: @' j6 o$ T - (set_tile "edge_4" (setq edge4 "1"))
* n8 H) K7 e0 q - )4 q1 e& @' f; c; ]: X
- )
4 u( r7 N4 H* i M9 H6 P - ;;+ b/ @6 e; M% t# G: k Z3 n2 L
- ;; XYZ Point values for polyline vertex
7 v8 \( D9 N0 R$ N1 i - ;;4 q$ T, b E' b4 e& k9 M
- (defun set_tile_vpt (ptype)6 c, f t# q# `& _( r
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")" m$ v9 y2 P0 \0 W; f% E
- (progn' \; `! ]$ @4 {) v
- ;; ctr is 1 based, vertices are zero based.
+ T; x/ x( c! I! I6 v - (setq vpt (cdr (getLwVert (- ctr 1)))) u% T) b) Y$ b% w1 |- b3 W4 n5 K# o
- (set_tile "xtext" (rtos (setq x1 (car vpt))))
' g: V& r8 U$ K* M/ d, d - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))6 T. [/ r! j8 L* x
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
9 p( G" w2 X5 Q4 h( j% H1 q, i* W - )
* r% ~* W& c( x# d5 M - (progn+ @$ i" r7 c9 H. R% X9 n, l
- (if (= ptype 0)
0 Z" R% w1 g( w+ X2 z - (setq vpt (trans (cdr (assoc 10 vlist)) 0 1))
H' c4 z& k F - (setq vpt (trans (cdr (assoc 10 vlist)) ename 1)) c6 ~: H% M* T) e: V8 `/ C
- )( g* K2 E( O! B0 N9 I$ z
$ |# T: Z1 {) @0 G1 i0 L" [0 ]- (set_tile "xtext" (rtos (setq x1 (car vpt))))
/ W4 y6 {' s! O5 L+ y2 C5 C - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))7 }3 J& m3 [. l8 ^5 q0 b! Q
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
- {& K- {& [8 W' j6 q% X/ X, P - )
9 Q- b, {; G/ H+ F4 b: H) \1 M/ o - )/ H* r6 O5 F3 a0 a+ v6 r2 d
' F$ j: p( w/ y7 }8 E" S% r- u3 k- )8 q0 |5 K2 _8 P* y1 u9 x% Z
- ;; This is the equivalent to doing an entnext on the heavy weight @0 d. M8 W/ j7 x
- ;; polylines. The hard coded '4' below allow stepping over the! m, Z' `! j5 t3 g/ \# r7 o% d
- ;; 40 41 and 42 group code information. The while loop finds the& G2 H- a9 [9 V2 y& y- L
- ;; first vertex which will be used as the starting assoc in the
8 C0 _! [% G/ j) L7 B - ;; call to nth.5 d" g3 `- g0 y# X
- ;;# l' J7 k) f) h7 w+ Q: G% u- d
- (defun getLwVert (tmpctr / count tmp)
\9 n2 l' U' | - (setq count 0)
, s- g4 ^6 R: N; V0 h; s - (while (/= (car (nth count vlist)) 10)2 |+ J0 u, F. b ]+ u
- (setq count (+ count 1))
/ U. ~, d& g& c% A - )9 b. A3 f) {/ {2 D( @. o
- ;; If the counter reaches the number of vertices,% {( P& _6 v/ |9 b6 g8 F0 ?
- ;; reset ctr and tmpctr to zero again.
8 j/ H& z) s0 _. W7 O( E - (if (= tmpctr (cdr (assoc 90 vlist)))! [: c; X9 C$ G$ W! P9 v" m( d
- (progn, C* ~- l# O$ c( v. R
- (setq ctr 0)
7 q/ {0 L' W$ ]3 R3 j: L. t& h - (setq tmpctr 0)& }1 i X1 v: b- A8 c- K! s' M
- )
$ m6 ?# L7 S1 Q$ F - )
; C( _! G7 t2 {9 ` _ - (setq tmp (nth (+ count (* tmpctr 4)) vlist))1 M- W5 p/ }# Q" b
- (setq tmp (append tmp (list(cdr (assoc 38 vlist)))))2 a& O# ^% L7 o6 ]+ F R
- (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))2 v+ x p7 l% j* D9 Q
- (setq tmp (cons 10 pt1))$ ^% G2 [0 @" L6 k
- (setq tmp tmp)
" d9 I2 }; S4 V/ l - )
4 p: u1 h2 f7 S! w - ;;
- p5 O5 f. N5 }+ C; L2 M. J - ;; Set tiles for Spline properties. If the spline is rational then we# R! f0 K# }. s7 c9 Z1 i7 v
- ;; need to display the weight values of the control points, so set: @+ E. c O$ z2 p! h
- ;; flag to 1.' n3 G. Q, {% n3 j% Q+ N
- ;; 1 = rational spline2 D! [& A& t8 _" w! ]6 q: @; K
- ;; 0 = non-rational spline" {7 b+ \! R. q n
- ;;
+ ~- E( @9 ^6 i. F9 a: _8 V. f - (defun set_tile_spline_props ()
- ~6 X) N. i3 L9 F3 \& N Z: q - (setq rational_spl_flag 0) ;; initialize rational spline flag
6 x1 ~) ~, @, r1 w - (set_tile "Degree" (itoa (cdr (assoc 71 elist))))
0 R# \3 }5 T! d; m. y$ g - (setq bit70 (cdr (assoc 70 elist)))
$ I( W- m3 O1 L h' z' g7 \ - (if (= (logand bit70 1) 1)0 J' C1 _* [+ m; ]! }: R
- (set_tile "SpProp4" "Closed")9 ^) d% O: L/ e" e9 I* S; u
- (set_tile "SpProp4" " "): G' A% F5 Z' s5 d% y
- )
8 D# D! ]. n% N% s: F" k - (if (= (logand bit70 2) 2)
: ~3 f& ]3 M% N; s! M# p, j- w2 `7 R - (set_tile "SpProp3" "Periodic")
/ k& m5 u* F! v6 O s4 O - (set_tile "SpProp3" "Non-Periodic")7 @* M' q! c9 i1 V
- )
. X0 R% K' C7 T' W& V* Z - (if (= (logand bit70 4) 4)
9 B& d4 I( ^& A - (progn
6 D; H, a6 y, n+ P6 ~ - (set_tile "SpProp2" "Rational")
; W3 \8 e0 Q- t5 [3 ` - (setq rational_spl_flag 1) ;; this is a rational spline2 x" h8 X: A! k1 f* L) e
- )
1 O0 A1 f# Q1 Q8 m( [7 n - (set_tile "SpProp2" "Non-Rational")( T o) l& R# p" g0 h% Q# n* u* J* ]
- )
( J' \/ D& ]: d ]3 m - (if (= (logand bit70 8) 8); ]* v: H0 V1 B3 U W2 c- i- g
- (set_tile "SpProp1" "Planar"); p5 _# A, Q8 t' w, B( b
- (set_tile "SpProp1" "Non-Planar")/ W$ S- L) D2 U+ V
- )+ D: o! O3 @/ j
- (if (= (logand bit70 16) 16)0 o' z9 { k1 f' e4 A; `" u
- (set_tile "SpProp5" "Linear")
. b# h1 n/ ^8 S6 U0 P: h - (set_tile "SpProp5" " ")
& h# r( R; ]: T, K9 p - )
. J7 [9 D) _: _& l. f# Y - ) t4 g* [* b' f9 V
- ;;
7 h5 A) u8 [' g4 o9 }* Z- [ - ;; XYZ Point values for spline points
* r8 ]# D- \( w3 ]) ? _7 V! M - ;; Need to account for WCS/UCS
3 |! S+ e1 I2 ?/ A - ;;0 w% u6 |& _/ j) Q; N
- (defun set_tile_cntl_pt ()& P2 F' b9 J( `* l
- (setq cntl-pt (cdr (assoc 10 elist)))6 J7 r1 ~$ P9 h+ l8 k' \& U, D
- (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
. H4 `; L; x- h3 o, b- B8 O# z1 j5 ` - (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))4 t) e, _6 k8 Y, `! n: @5 a+ m
- (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))
: _' h, h7 b: K8 @8 W9 c - (if (= rational_spl_flag 1) ;; if rational spline
/ U) q- F; P5 y+ g( a - (progn ;; show weight
# ~, A3 }1 F# ?5 E - (setq weight (cdr (assoc 41 elist)))
: m9 W4 g# a0 Z& C5 W - (set_tile "weight" (rtos weight))
6 F1 @/ q/ L1 ?# Q - ) ;; else0 I: S: w+ n3 F8 x* L
- (mode_tile "weight_text" 1) ;; disable weight field
! D \" c1 p0 z) j' K - )9 x5 a1 j( u% Q8 C
- )
( z* D+ U" j' H6 ]" H. a - ;;- e! _% V% E1 n
- ;; XYZ Point values for spline points* a; ~: N1 w0 ]7 L0 T! J% U' v s
- ;; Need to account for WCS/UCS6 J2 I7 l1 A2 y3 l2 f2 R b
- ;;
1 K& Q+ K8 q+ q" ^8 t3 {7 R9 {8 T - (defun set_tile_data_pt ()
% H* d2 R) k1 S6 y - (if (not (assoc 11 elist))5 `4 H& n C! V m% [" x* R+ `3 E
- (mode_tile "data_pts" 1)1 {" k0 ?, V! ^9 j3 P
- (progn" Z" ?' A& Q9 t- Q( P
- (setq data-pt (cdr (assoc 11 elist)))9 G8 a. ]) }* Z9 L
- ;; display points with current precision.7 b) i5 `+ |! n' t
- (set_tile "dxtext" (rtos (setq x1 (car data-pt)))); O5 I+ _) h8 v
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))% u" Y- r- M7 q; f+ M* _. z, z2 Z
- (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))9 x# s: n: Y% L- u# q6 f, x
- )& G8 F6 C- T& k2 E
- )9 ?5 C* B" p9 N( l) O* q7 d/ N
- )
* [3 k9 V' A7 ^4 K - ;;
! e, D3 h7 \8 p, B3 K+ J+ } - ;; Fit curve, fit spline, or smooth spline surface setting1 `7 o& H5 k4 n3 U% P
- ;;2 c4 q3 N4 n" D( t3 E
- (defun set_tile_fitsmooth (): y0 V0 W- f/ B% K, _) v
- (cond
2 j5 Z7 ~, r7 W' `! ?! z5 Y - ((= (cdr (assoc 0 elist)) "LWPOLYLINE")
* j6 x! M! V" { - (set_tile "none" "1")* x# x- K* H1 y# G$ S& D
- )
/ j& Y8 W* a, l4 q3 e: d - ((= (logand bit70 4) 4); j4 S' C/ V& }: G6 {9 v; z
- (cond9 ?: i8 N) g5 T+ Z, G
- ((= bit75 0), d5 K5 d+ r1 s# d* d$ X8 Y! P
- (set_tile "none" "1")
& V% ~, {3 \3 c2 _" v - (setq spltype 0)! Q, C0 i% C3 l; ~
- )
9 f, O. y( W% g5 @) l* m+ E( f+ m/ \& y - ((= bit75 5): Z' p% j9 `6 N
- (set_tile "quad" "1")
! E; k0 w: |# ]( m' o+ I! r - (setq spltype 5)
/ G+ r/ A( e2 }1 W: B5 E - )
) A$ Z% o( n4 Q! p - ((= bit75 6)9 W! ^1 s; [/ H1 |" P
- (set_tile "cubic" "1")
# j+ P' B R. e2 o. W - (setq spltype 6)
" u8 y# }( s, Q) E0 {8 Z! _ - )
& f# ^8 @4 k) J- C* B. P; A - ((= bit75 8)! h8 P( ~2 V m" i( [: w+ E! W9 I7 R
- (set_tile "bezier" "1") w$ g3 X ~3 z5 @; V) a9 f: S
- (setq spltype 8)" P! f# K V) C
- )8 L) d9 N; k2 ]
- )
* k& t' ]: T4 a! p1 W- \' G - )6 H1 }" J& c* t l9 z; F
- ((= (logand bit70 2) 2)
- m0 @# }) a2 t' m - (set_tile "fit" "1")
' m, i7 S9 c, C$ ^( ] - (setq spltype 1). f/ H( s# e, q7 y. q
- )
2 q5 P4 ^4 }8 R# i1 o; F$ { - (T (set_tile "none" "1"))
3 }# a/ q8 D8 x# E2 \! R - )# j- _$ N' D! u4 Y* m7 B9 C7 R
- )
/ l a6 P0 U3 w1 d! P c+ X' M - ;;
) n' D% D! i# E% q" a0 { - ;; Closed or Open mesh and polyline setting8 Q2 x. }7 u6 ]; W t& U' |
- ;;# o5 a! _! W( i- w6 k& K7 F
- (defun set_tile_closed ()4 J/ v; y. S# o$ `7 L
- (if (= pltype "3D mesh")% x: a( p0 n4 V. U$ f
- (progn0 R; o& s+ H v1 s6 K8 k" b- A( R
- (if (= (logand bit70 32) 32)# y* |5 y' U9 B' A- B4 `
- (set_tile "closedn" (setq closedn "1"))& x; j2 g/ C6 ~. I
- (set_tile "closedn" (setq closedn "0"))
# {. m8 J5 ^$ X# S3 O - )1 U3 @$ _" F+ {' S% E
- (if (= (logand bit70 1) 1): M- [( U; [! w" I
- (set_tile "closedm" (setq closed "1"))
' q$ G* j% X% R( l4 h) X7 C/ a4 O - (set_tile "closedm" (setq closed "0"))
, J1 U/ Z$ I' s) n( F - )4 {* W* h7 ?# J5 O4 d% Y9 k+ y
- (setq old-closedm closedm old-closedn closedn)
6 b5 `9 [ X u0 Q6 z2 ^+ Z - )' T7 b" T) k6 e* `1 ?* P6 I
- )! ], a$ j, a* c, D9 q- x
- (if (or (= pltype "2D polyline")7 z4 r X, y+ s6 N
- (= pltype "3D polyline")
' o/ U' V& L% O& G' P$ g. _ W' W - )/ p0 T/ n$ G3 U, j& n9 `
- (progn
0 }; l, S7 ^# M( Q- S" ~4 ^ - (if (= (logand bit70 1) 1)
3 E' Z2 U' `! m- q* ^ - (set_tile "closed" (setq closed "1"))
9 B2 ^& G+ c+ ?5 V - (set_tile "closed" (setq closed "0"))* C! G$ x0 y, j8 }7 b" ?2 _
- )3 I+ v" k9 w7 q* ^
- (setq old-closed closed)
4 j+ N W2 C# a$ [+ ? - )" \/ a( S' w( V! ]; ^- |/ n
- )
- C& Y2 J/ t0 p6 \ - )
' V7 B8 A* \' g* o' D - ;; Set common action tiles* Q; \; ?9 {( @2 y& c! M
- ;;
- n) L: D- V$ v$ M. z6 \/ ~6 Y* v - ;; Defines action to be taken when pressing various widgets. It is called
# D( Z2 g0 d8 N& Z$ W6 R - ;; for every object dialogue. Not all widgets exist for each object dialogue,
" j# p( z1 v/ _" Z0 y4 L - ;; but defining an action for a non-existent widget does no harm.
: E; t& h6 O: t: m0 W - (defun set_action_tiles (), \ Q% c% M0 k2 \# e
- (action_tile "cancel" "(dismiss_dialog 0)")
9 S7 L! [& s* Y- b+ _ - (action_tile "accept" "(dismiss_dialog 1)")
' H. p* \% [; w9 a' f! V/ a2 j - (action_tile "help" "(help \"\" help_entry)")3 d5 p0 F: V) S7 J
- (action_tile "b_color" "(getcolor)")3 N/ t' B, @- T+ f
- (action_tile "show_image" "(getcolor)")* N2 a& p' Q* G9 u6 u
- (action_tile "b_name" "(setq elayer (getlayer))")/ L) k0 a! ^& k1 u/ |: a
- (action_tile "b_line" "(setq eltype (getltype))")
9 ^' u! I. z+ [, W$ P7 W% p - (action_tile "eb_thickness" "(getthickness $value)")
1 V$ M6 `4 K' a5 A; O+ y; @ - (action_tile "eb_ltscale" "(getltscale $value)")
( \8 y. V- ?4 E( f5 h, |$ a - . j% }" n; d' j7 d4 x1 i; |
- (action_tile "pick_1" "(dismiss_dialog 3)")4 P7 o& A5 e/ {9 L- O: _: t- P; h
- (action_tile "pick_2" "(dismiss_dialog 4)")+ e4 W8 i- b6 t! i3 u4 n/ ^- v( p8 F; |
- (action_tile "pick_3" "(dismiss_dialog 5)")4 u: R$ Q0 }0 \
- (action_tile "pick_4" "(dismiss_dialog 6)")
$ P& T/ ~2 [ r5 v/ k0 m, h - (action_tile "x1_pt" "(ver_x1 $value)")
1 R1 L( _. f, ^/ F, I - (action_tile "y1_pt" "(ver_y1 $value)")
) I* ~" m# X- S% {+ v8 }$ U - (action_tile "z1_pt" "(ver_z1 $value)")
" s! ]1 i" R- o( Y0 o$ ^ - (action_tile "x2_pt" "(ver_x2 $value)"). E4 ^; I) B, a; p7 c% r8 ^
- (action_tile "y2_pt" "(ver_y2 $value)")1 ^% ?; e h" N2 Q& s
- (action_tile "z2_pt" "(ver_z2 $value)")
8 @( P) C$ R/ Y8 m- C - (action_tile "x3_pt" "(ver_x3 $value)")
5 ~+ z9 U0 p) I. r" K& V4 z - (action_tile "y3_pt" "(ver_y3 $value)")
: S9 N$ W7 q9 g; k - (action_tile "z3_pt" "(ver_z3 $value)"), f) Q6 N: u" v: b' [5 C
- (action_tile "x4_pt" "(ver_x4 $value)")
7 X3 S% j. y1 J' W' B# e/ h - (action_tile "y4_pt" "(ver_y4 $value)")
7 X; V& T: N; R O3 Z* F - (action_tile "z4_pt" "(ver_4 $value)")
" i3 ^7 B! Z+ b2 x# O
: o! `8 j2 A% ~- ;; Action tiles for Xline & Ray! B# k% ^2 j( ?- [6 z* a
- (action_tile "xline_x1" "(ver_xline_x1 $value)")( i* G) y" G5 ~% J) A, a6 B! q
- (action_tile "xline_y1" "(ver_xline_y1 $value)")
5 m4 m) S" w6 z3 {3 B; W$ f# C7 f- S - (action_tile "xline_z1" "(ver_xline_z1 $value)")8 S+ x. w' g5 D( ?- O% e
- (action_tile "xline_x2" "(ver_xline_x2 $value)")
8 K: O4 M* N8 I! m: C7 Q' X - (action_tile "xline_y2" "(ver_xline_y2 $value)")6 v2 s g M8 m" _8 o" f
- (action_tile "xline_z2" "(ver_xline_z2 $value)")% ?# W% D, H; l6 V: z0 i. k/ Z! f
- v0 |" R/ f' b9 {0 N; Q9 O
- (action_tile "edge_1" "(setq edge1 $value)")" ~( ]3 P2 p# o$ H% I
- (action_tile "edge_2" "(setq edge2 $value)")
6 n$ `4 u1 B& P - (action_tile "edge_3" "(setq edge3 $value)")8 Y% b. a8 [! l
- (action_tile "edge_4" "(setq edge4 $value)")/ p; S) `1 T3 y% S2 |% w3 J8 g
- ' d6 H& X4 u$ T/ Y- h" c
- (action_tile "radius" "(ver_rad $value)")
% }! z9 o* ?0 {$ m - (action_tile "st_ang" "(ver_ang1 $value)")
6 H# t M% s6 S& d9 u - (action_tile "end_ang" "(ver_ang2 $value)")
; m" U# `" `" E( L" A - (action_tile "end_eang" "(ver_eang $value)")
2 T: s" _0 Y* E6 h$ \) @ - (action_tile "minrad" "(ver_minrad $value)")
2 ], z0 U0 p( e. K: p. z! J ]5 l - (action_tile "majrad" "(ver_majrad $value)")$ g. j' _: T. H" R' F
7 f6 c3 S4 H" O1 @- (action_tile "xscale" "(ver_xscl $value)"): v: B+ [2 _, A8 y0 n2 a
- (action_tile "yscale" "(ver_yscl $value)")2 h/ a" X0 L9 j: @
- (action_tile "zscale" "(ver_zscl $value)")
# U H1 S7 Y% K - (action_tile "rot" "(ver_rot $value)")' S* N+ _) s# j( G5 t: U
- (action_tile "columns" "(ver_col $value)")
1 M' b" X& q" Z& ]8 B* Q - (action_tile "rows" "(ver_row $value)")
5 f/ T7 J' R8 Z( Y5 o - (action_tile "col_sp" "(ver_colsp $value)")
7 M; N2 K5 d* C8 I; N5 l& k - (action_tile "row_sp" "(ver_rowsp $value)")
. \! v9 R) ^8 H! d - 7 v$ o/ `, j$ N9 T, O' a# }! m
- (action_tile "hght" "(ver_hght $value)")
- Q0 A6 e+ K5 z( Y& z6 Q: r3 @8 |' ~ - (action_tile "wid" "(ver_wid $value)")
: G3 E* }( ?% J; `' S" c - (action_tile "obl" "(ver_obl $value)")
3 x+ h3 L* i1 M } {. \ - (action_tile "style" "(style_act $value)")- S) p f+ i- {( \0 P) |( z
- & G7 D/ Y' B3 j; _ f* _
- (action_tile "t_string" "(ddgettext)")
& Q) }% Q* m- j q/ L - (action_tile "tag" "(ver_tag)")
0 e: `# n& m' h# l! x - (action_tile "prompt" "(ddgetprompt)")
# E& _( H+ N9 F. Q - (action_tile "bkwd" "(setq bkwd (atoi $value))"): s$ f, Z) ^ x9 M6 h5 F
- (action_tile "upsd" "(setq upsd (atoi $value))")/ Z/ g5 M. g, |8 e5 H
- (action_tile "inv" "(setq inv (atoi $value))")
, `+ Q8 e' z$ p' C* B - (action_tile "con" "(setq con (atoi $value))")# Q4 \- |6 O$ o1 I' u p2 K3 z
- (action_tile "ver" "(setq vfy (atoi $value))")/ C: I- r1 C: n8 z8 V L/ i
- (action_tile "pre" "(setq pre (atoi $value))")- u4 I4 U. Z: C2 w
- (action_tile "popup_just" "(jlist_act $value)") x) k* d; q7 L @6 q6 m$ F/ X% @. M9 \
- 4 U4 U8 h0 [% K8 V( `. ^
- (action_tile "closed" "(setq closed $value)")
; k. ^! R; Q# g- h$ O( L/ h - (action_tile "ltgen" "(setq ltgen $value)")
. W6 j7 ?5 d) L: Z# i. i - (action_tile "closedm" "(setq closedm $value)")
1 g- `& p6 ^- s2 c/ E& T- m - (action_tile "closedn" "(setq closedn $value)")
$ w8 P0 a$ x9 I& X( Q - (action_tile "next_v" "(next_vertex)")
% C4 `4 B4 Y, x$ Z; ]2 U - (action_tile "xcliponoff" "(setq xcliponoff $value)")
7 C2 t4 r0 w" J! T5 C5 a* `% w
7 W; X- J: J* y6 b& r- (action_tile "next_cntlpt" "(next_cntl_pt)")
/ B6 b- h( K8 O! v& c( N - (action_tile "next_datapt" "(next_data_pt)")
! z$ j, z- N4 b* w; h$ U6 @ - 6 T9 u1 k% |" n L# g
- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")/ S o, n8 l) V3 Z- `; Z+ l
- (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")# s5 S; P/ r, Q( w
- (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")
, D8 H) o6 X; L% q5 d - (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")
L8 g7 O: B% _$ w# ^ } - (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")6 o' N- {( j4 S2 W$ V
- , [6 N" u3 p4 s
- (action_tile "u" "(ver_u $value)")
4 v. F7 `- R( L, n- p# {5 e - (action_tile "v" "(ver_v $value)")' _6 S6 m3 x2 y# r
- )
8 s9 g) S9 ]) Y$ n) u) C! W
& g& X3 s0 z1 C, \7 L: O7 e& z. r- (defun ddgettext() H# u6 ^8 }; B. s! |3 s# w8 |
- (setq text (get_tile "t_string"))
1 u" k) W. D1 @+ C% k( H - )
4 X! ?9 N3 A1 d4 I2 ?9 F! G* j8 H - % m: `" k, x) ]6 |& }( H; v9 \
- (defun ddgetprompt() X" b% E) T% j3 S4 F
- (setq atprompt (get_tile "prompt"))+ ^1 W* H$ Q& T6 J6 o+ W+ o
- )5 K$ H: k7 k7 X/ v
" L8 F9 F' [( s$ m- ;; As OW doesn't support disabling of individual radio buttons within9 c# V( e- ]0 ?7 N; J, A( ^/ A
- ;; clusters, a check must be performed as to the legitimacy of the. @2 f& B; N( @6 `9 [9 Q
- ;; button pushed and reset if necessary.0 i6 `$ Z8 P! f# a* h
- (defun radio_gaga (pushed)
, q; O8 y# H8 H+ x3 [0 v - (cond
; y7 s: f: y2 [0 f. n: \ - ((and (= pltype "3D polyline")6 c1 c4 F" {( y0 z
- (or (= pushed "fit")* t) u+ p; Q0 ]
- (= pushed "bezier") o: M' @3 j7 Z' Z# d
- )
' `, X4 @% R( }1 L! z8 |0 \ - ); ~; U/ e/ j4 c) Q) Q- `' @
- (set_tile "none" "1"). O6 s' h1 G6 J+ k4 E: Z) A9 O5 y
- nil
" i0 |% v- F/ o7 f7 h3 ~- W9 _ - )
+ t. E5 }5 r( B6 ?2 D, p) M - ((and (= pltype "3D mesh")
8 w. k6 z6 ^" f& i - (= "fit" pushed)
$ w. {( H: m7 C! c0 @1 ` - )6 v8 Q0 Q3 f" e: Q
- (set_tile "none" "1")4 ?' |6 I3 @3 w: G
- nil4 o7 B$ [& J: I7 N/ ?. T
- )2 }% z4 K1 y# O1 Y! `, b, r
- ((= pltype "Polyface mesh")
: `# K/ J1 {7 v# J" } - (set_tile "none" "1")2 z$ G1 B# B7 d; D& U
- nil
# P: T- ~+ M) T' J4 m. I5 L - )8 ?# C, \ I8 h
- ((and (= pltype "2D polyline")& j0 Z, |# d% _* c4 j0 j
- (= "bezier" pushed)
2 l" ~# s1 ~" u - )1 y) l7 q4 E/ m! c
- (set_tile "none" "1")# e6 h; c1 ?2 ~6 V) ?6 K7 F
- nil
4 T. d" ]3 Q# b9 s! M - )
: _3 R$ J P5 k - (T)
) F, F# [6 c+ r2 r - )6 n, I/ d( C% L) X. g7 [0 J7 q. y
- )
8 `7 U; s R2 G. p3 Y8 x5 m6 g - ;;" W2 c6 Z8 ?3 j% J; S
- (defun set_uv (type_n)
9 m' v( L; t- S' N - (setq spltype type_n)
) o( f7 g. P8 c% s% ^/ M: r5 Y3 I1 r - (if (= pltype "3D mesh"): L* d7 t2 S* y8 t, \# }
- (if (= spltype 0)
+ a- P) z) g- ]3 U - (progn( `0 g v: n# u% [! j$ }2 x3 a
- (set_tile "u" (itoa (setq u 0))), E, ^6 x& }8 k1 A- O3 a
- (set_tile "v" (itoa (setq v 0)))
. Q0 \! ~7 R+ ^2 y4 s6 [1 h - )6 r v4 G ]0 d' ^8 f
- (progn
" f, x/ L7 C$ B) M3 H j7 C6 j* n4 d; g - (if (= u 0)
$ U2 l m5 u3 x$ m& W# a7 _( d& L6 r - (set_tile "u" (itoa (setq u (getvar "surfu"))))2 G* L5 E( N1 J. b. B, Z
- )
& |2 B9 z6 w; C k# W; O' d - (if (= v 0)$ C' m! f" I6 N& A* m
- (set_tile "v" (itoa (setq v (getvar "surfv")))). ?4 M7 K ]/ i" y0 u# J
- )6 z/ n7 D7 S" y! l3 J3 l& `
- )9 A, g$ N7 y" q9 b3 y! q
- )
- q7 w7 c/ ?1 h* h* s" a. W0 ? - )
# }2 T# O. `& s - )" z2 }4 s% i! h$ w! _' ^/ E
9 v; s( e }0 w' N2 I O
0 F" e3 e6 [% l7 C$ y- ;;5 Y7 l0 f' \+ Z" M
- ;; Verification functions2 Q! [* L6 ` M* e4 f
- ;;
# G- p Q7 F( p - ;; Verify distance function. This takes a new X, Y, or Z coordinate or$ \6 a: {9 {3 J0 _
- ;; distance value, the tile name, and the previous value as arguments.
9 ?, V' y7 G# h1 G* y - ;; If the distance is valid, it returns the distance and resets the tile.& W" X6 ^) x0 }- b
- ;; Otherwise, it returns the previous value, sets the error tile and keeps G2 g' J R: N
- ;; focus on the tile. Shifting focus to the tile with invalid value can
) i7 p4 Z: T6 m* U- V. ^ - ;; trigger a callback from another tile whose value is valid. In order
& V3 J# ^* b" W' g7 A$ E$ y - ;; to keep the error message from being cleared by this secondary callback,- \3 E9 z0 Y( l5 r4 }' Z i* _
- ;; the variable errchk is set and checked. The last-tile variable is set
/ A+ N. _" k- { - ;; and checked to ensure the error message is properly cleared when the
& z5 D3 P6 p; C8 w - ;; user corrects the value and hits return.! T' u/ ^* K0 J( X4 M# X
- ;;& Q- T- P! i# G) U F
- (defun verify_d (tile value old-value / coord valid errmsg)
8 }6 O* G7 D/ F' D: d - (setq valid nil errmsg "Invalid input value.")
) T* B2 n4 ]$ J - (if (setq coord (distof value))" \3 C' N+ w3 I; E
- (progn
+ a) M! @1 r% v6 B7 G1 M - (cond- d8 W/ D5 t# f# W4 x2 M7 g7 x
- ((or (= tile "radius")
- `) {/ B0 ~, C" u' m - (= tile "hght")
% C6 U- J# v, O% d - (= tile "wid"); _) o0 G2 n: W+ R1 U6 C. S
- (= tile "majrad")
9 Z" e) F1 ~$ g$ C6 U3 ~ - (= tile "minrad")
3 Q0 Q4 `6 d5 e+ d - (= tile "eb_ltscale")2 T$ z% t5 o/ N/ V3 j2 b* u3 ?
- ); r1 n. q+ e' L8 [
- (if (> coord 0)
% X6 R) m {0 X: } T7 S8 q. d3 ]- @8 h - (setq valid T)7 M; c0 q* [# M8 [& a' _
- (setq errmsg "Value must be positive and nonzero.")0 D$ k4 E/ j4 |: B7 j
- )
7 h: D, a z7 t! m# r - )
; e- b7 `. @! d& v: C - ((or (= tile "xscale")
1 V& M8 T: x' i4 z9 ^- y5 i& H: q; O - (= tile "yscale")8 F+ X+ F. z7 |# ?
- (= tile "zscale")0 j4 e* b/ V# q3 B. X9 ]* j' E
- ) D4 U9 n$ G r8 K
- (if (/= coord 0)& N* r' ~, v9 R: _
- (setq valid T)6 L3 L) o6 N2 K- y' P
- (setq errmsg "Value must be nonzero.")1 e' I8 J2 c1 l
- )/ U0 P& W0 K4 n
- )
5 Q3 u9 @9 g8 l/ c - (T (setq valid T))- l" k+ Q! M$ Z- _% N" ^
- )
! E! Q4 O( h3 S/ D; m - )
- \9 r) n$ q: m( k o8 o' d - (setq valid nil)
% R/ M o; b3 m7 H - )
2 r1 b7 A6 N: ~2 l1 Z$ s, g - (if valid/ f# K5 `: c) J" h N! Z
- (progn0 d: O# g" y& V+ a" P
- (if (or (= errchk 0) (= tile last-tile))5 L$ j) a2 L) v* |1 u/ G
- (set_tile "error" ""); `& N! M" f$ g' z7 Z* i# y
- )
6 _2 n& |/ O: @3 y - (set_tile tile (ai_rtos coord)): U, Q* T* e8 r: j4 b
- (setq errchk 0)
4 E4 ~5 u1 L! ~ - (setq last-tile tile)
9 o* y- ?4 W6 A4 t# f; L& e# ~3 x - coord
* i% e) V3 c9 T - )' Z+ Z: M- W4 i, t# N. Z
- (progn
2 Z* W) ` @* h& B4 ]3 A - (mode_tile tile 2) ; Move focus to offending field
5 {7 z* k- e* V* x" p - (mode_tile tile 3) ; Select offending text
! K4 D. w: o; G# U: ~: E G' I1 F- } - (set_tile "error" errmsg)9 O- C& m, C/ n& s
- (setq errchk 1)
- L- ~+ ]' W* z - (setq last-tile tile)
. S; A# J8 {( ]3 i - old-value
! t$ }+ u( z1 b# e6 m7 Z3 e - )
' f o4 p; B: c8 d8 D `$ e - )
9 A, n2 p: ?" H1 [& l) d6 D - )
\5 j' n7 p, C4 S* o3 b8 C; _ - ;; Function for Xline coord edit box checking.
8 Z1 I4 ~, X$ J# b. u; u - (defun verify_xline (tile value old-value / coord valid errmsg)0 q, F. m3 \/ X! Y- ~
- (setq valid nil errmsg "Invalid input value.")
) i% [7 Q1 A# C - (if (setq coord (distof value))2 Y* z* y7 G+ W" G7 q0 H) U
- (setq valid T)& T4 \7 d5 E; {3 G$ Z. E g
- (setq valid nil)/ a4 s8 K7 X& g% Z% ?
- )* C- k+ x6 \7 \7 n6 M9 c0 N" Q
- (if (and coord3 F' ^9 S: T& _/ _) }6 v
- (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) ): K( T' g, K J& v
- (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )
- I) O0 k+ ]7 I% u5 S2 @* z) N - (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) )
" K* A" r3 A# `$ ~1 T/ d3 H - ), l$ m4 {; q6 r+ D F+ t, ]
- )
$ |% Z, x9 ^0 m6 S( H. e - (progn$ m6 D7 a' w1 Z% V+ O
- (setq errmsg
: r1 M% b0 g' m% C - "The Root point and the Second point cannot be equal.")
+ q3 G5 h2 h' H \2 ^1 @) O - (setq valid nil)
+ b3 r7 R3 j9 C% A - )
" T) c+ ]% J6 ?9 a - )$ c' X; O% `2 A& O q ?& O' y
- (if valid0 D5 P) v: }& h4 T5 @4 Y
- (progn
/ z; l" e4 W: \! S5 b& \, O% f - (if (or (= errchk 0) (= tile last-tile))# J% t: a: t* ^2 g5 e+ @- V4 s
- (set_tile "error" ""); D4 i) R# ~# [! x
- )0 K/ D# ?2 ^& v: b
- (set_tile tile (ai_rtos coord))
! |, ^3 `/ w$ S% i# ~ - (setq errchk 0)9 r N& |) m7 }
- (setq last-tile tile), l- q6 X, U6 J6 d
- coord
6 P0 P9 \( [1 j/ l, D9 i5 Q$ U8 @ - )5 S* y5 S, Q/ V6 a
- (progn
# L" X, c+ |9 [, h, g! q- b - (mode_tile tile 2) ; Move focus to offending field# V& p' W9 I/ r1 G! ?
- (mode_tile tile 3) ; Select offending text
3 N( }8 U3 x' h+ K+ x6 b - (set_tile "error" errmsg)
4 _" B; I0 A% v - (setq errchk 1)
& L. s6 d4 U) N* e$ x) M' d- A - (setq last-tile tile)9 S' E3 O- b" f& x* N
- old-value
8 S- Y" k9 x7 c+ E; O" O - )6 i2 A J( a5 l ]6 Y9 a
- )
1 h- e' q( t0 B: j2 ^ - )
5 ~, t4 B/ x ~1 T - : B3 q3 I, @! Y5 A! N( t8 n
- ;;7 ?4 _; [/ |# N& ?, T
- ;; Verify angle function. This takes an angle and a tile name as arguments., |* Z ?$ c7 a4 T( k/ ?
- ;; If the angle is valid, it returns the angle and resets the tile.8 |' E' F8 @' D: o. K
- ;; Otherwise, it sets the error tile and keeps focus on the tile.
5 t0 U- c1 q/ W' s: K i - ;;: L; w0 W% a* ?7 h- j
- (defun verify_a (tile value old-value / ang valid errmsg oblqmax)
3 X9 V2 ]( f2 A( L3 F - (setq valid nil8 ^! @; x S' v. \/ r
- errmsg "Illegal input value.": B* y3 [6 h( j. Q/ E) c
- )
1 }( F8 z# w/ U" g( g - (if (setq ang (angtof value))
* O) E# Q6 h6 I# }( a0 O+ Y. N$ S - (cond4 g1 O% r) X$ K3 K8 }2 |
- ((= tile "obl") ; Restrict obliquing angle
9 |. ] k; q* t1 s5 v - (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001)) A; x2 l5 t( p1 q1 A) [+ a O
- (if (or (<= ang oblqmax)
, P$ l6 i8 n6 B* j3 s - (>= ang (- (* 2.0 PI) oblqmax))
/ }& h+ G2 N5 f2 U8 o4 c; Y0 h - ); w- S3 i% w" F) p
- (setq valid T)0 \& P& Z! I4 Y+ \/ Z
- (setq errmsg
) ]) u8 U# _+ L0 x/ F7 F( l - "Value must be between -85 and +85 degrees.")
" k8 ?+ D( _2 p) b9 Y - )
0 H1 U7 B# i2 d) B: c# P! c9 H* m - ) U* ~4 ]3 g: X! S+ D& ?+ t7 z
- (T (setq valid T)) ; Other angles not restricted) A- a6 A! | [0 t! j
- )
: {+ A$ }# ~1 a* d - (setq valid nil) ; Invalid angle input& |& ]8 X, b* ?6 G. q
- )3 K: K/ U6 [) N& v7 |5 n- K8 h+ }
- (if valid4 ~+ |7 h j/ o7 f8 [
- (progn
: _$ n0 E0 x2 {" @8 n - (if (or (= errchk 0) (= tile last-tile))# E( n I1 D: N3 |/ b6 U1 [2 b4 e
- (set_tile "error" "")5 L$ l6 j1 }5 `9 z9 a
- )% j" H$ E6 H9 b( i; G
- (set_tile tile (ai_angtos ang))
8 }) v( k0 `, H9 D - (setq errchk 0)
+ Y7 Z' G9 I: s$ s- L, n - (setq last-tile tile)/ K! E7 A R: `- V1 V
- ang
' U* v1 D# H/ N* S: V - )5 T) A# l& P8 T0 x g
- (progn+ n8 ]( h4 Z+ k7 ?
- (mode_tile tile 2) ; Move focus to offending field) R5 D$ J) N. H1 g V9 n% P
- (mode_tile tile 3) ; Select offending text4 @) |/ M! p8 k- W) c5 E
- (setq last-tile tile)% H' n* b5 u5 m" K1 k1 a
- (setq errchk 1)8 c: h# x: |* p( e$ z. t; }
- (set_tile "error" errmsg)3 |/ L$ E8 R; m0 s0 F0 x7 W/ }9 T
- old-value
0 |/ ?4 B$ s- C* l4 e - )
& F1 N4 u/ w, @/ S - )( W' H* Q- k6 L3 X" Z/ [. G
- )! Y; h5 A5 k1 M0 w( h
- ;;( ^0 E" v$ X& x# p4 u+ x. U N
- ;; Verify angle function. This takes an angle and a tile name as arguments.6 X* G. m5 C) v( w
- ;; If the angle is valid, it returns the angle and resets the tile.& X/ F, B2 g/ ~# D2 F
- ;; Otherwise, it sets the error tile and keeps focus on the tile.
, Q# ` e' F3 X0 d5 ]; S- ^8 y - ;; This function is specifically for the end angle of the ellipse object. If! a* O. ^ E" N- P1 ]
- ;; the end angle resolves to zero then we want to display it as 360.
: B) [/ W$ G; G$ Y% E - ;;
; e/ Y7 ~4 q2 U8 j! R5 l$ Y - (defun verify_ae (tile value old-value / ang tempend)
' G, U" C/ z, Q- B5 x - (if (setq ang (angtof value))" ? J6 p( z L0 u( P) C
- (progn {1 b/ y- j/ [! Z- D4 ~
- (if (or (= errchk 0) (= tile last-tile))
( V) k7 t* Y6 d: C - (set_tile "error" "")/ a; y2 E0 Q3 Z9 A" R) X
- )7 ]1 `9 @( d! E+ N' u# h" z( ]
- (setq tempend (ai_angtos ang))2 y, ]' ?+ w8 l5 u' v
- (if (= tempend "0")
, R6 k* E& [1 @) v6 c1 r7 _ - (set_tile tile "360")
" Q6 o. P) x- O" [ - (set_tile tile tempend)( n# k) s0 B! @9 @7 H) d
- )% ~6 O8 c, m" k
- (setq errchk 0)
& m2 c8 R; D) t! V# L* \ - (setq last-tile tile)
, L% M: b0 }" s( l# ?: S* j - ang
1 ^: `9 e) h4 E8 X/ V7 j+ Z - )
$ z; V+ e: C8 ]! L - (progn5 s" O k5 x+ E) r }2 w; u
- (mode_tile tile 2) ; Move focus to offending field9 a- y# \! p' J7 A5 i4 Y
- (mode_tile tile 3) ; Select offending text4 ^* w5 v; N% G* m: T7 C9 a, E) L
- (setq last-tile tile)3 }7 x9 R" ~& i! o; e0 y7 e- w
- (setq errchk 1)
. I3 d. q4 j& k6 p; b - (set_tile "error" "Illegal input value.")
: `, `6 F8 M+ R- H4 U! G4 q4 | - old-value
# S, _+ t" f* C! A& n5 T - )
! j* q1 h- q5 {9 {# B. I - )
0 i, M1 i& Z/ C - )+ _4 t8 m+ t+ x7 _. d3 v
- ;;. G/ _/ Z" \' v- i8 C3 j# ?
- ;; Verify integer function. This takes an integer and a tile name as
, x2 t3 |" M. I; D) P" [! i - ;; arguments. If the integer is valid, it returns the integer and resets the& f9 \1 o$ I0 M0 t: G1 t( c
- ;; tile. Otherwise, it sets the error tile and keeps focus on the tile.0 S( P3 M2 U' P& k9 ^2 ~6 {
- ;;
( J& b% o W: U( r4 f: w& X& Q - (defun verify_i (tile value old-value / int valid errmsg)" u; [% h! m y d3 |- |
- (setq valid nil)$ K. [& F" _! P3 d
- (setq errmsg "Value must be an integer.")
, D: [5 f4 B P" E, \5 Y0 j - (setq int (atoi value))
' ^: e) C! M [2 s: i - (if (setq intchk (distof value))
- v7 P! ~3 `# I) ]9 b& R - (cond$ V( S2 T( c" }4 A9 q. y B
- ((or (= tile "columns") (= tile "rows"))1 |+ X; h6 t, j. f2 C6 \0 S/ B
- (if (and (= int intchk)
* V& o3 j @0 T9 Y$ ^( t) H - (>= int 0)
8 Y2 c) C8 L( x. d - (<= int 32767)7 I" r; s9 r' X' n: J
- )9 Y1 L/ x/ P; p0 b" N* R
- (setq valid T)
# ^+ ?3 ]7 r' T. m y1 Z0 c4 E$ _ - (setq errmsg "Value must be an integer between 0 and 32767.")
/ Z* f, F* a& `: W& [2 T - )
" a1 M( u+ {3 a+ D6 ]$ F* c - )- X: t- E0 o3 Y* D( U* |
- ((and (or (= tile "u") (= tile "v")))1 H R& ]) m, V, X& c8 [
- (if (and (= int intchk)
; V4 d0 ]( h! A8 K3 F1 F+ Y - (>= int 0)' V( D9 }! R' o: n; z; Z
- (< int 201)
/ a* I' h- A Y: f9 o - )
/ i {9 W; N4 f) C2 x/ V% E - (setq valid T)
9 O. ]% S0 X, k- r, c) r9 B9 h2 C - (setq errmsg "Value must be an integer between 0 and 200.")1 x. o4 n9 ]4 H5 Z9 W0 i6 [
- )
1 f- a( w: r" u& M" u p - )
& `" K1 F; J* t - )8 P2 l# ?9 ~, Q" a' j9 w M1 {, c4 ]
- )
- i5 h' d! ^* i* _ - (if valid
! D7 r8 W. b' n) W - (progn
" K9 @- m0 B8 N( L4 o7 A+ }/ O - (if (or (= errchk 0) (= tile last-tile))
( ^# m8 G2 J6 W: G3 x# k - (set_tile "error" "")5 @, q' @( g( k! [% k6 ?
- )
4 `# n2 w% s% {9 P - (set_tile tile (itoa int))
0 i+ g" e* T8 R2 J! v, F - (setq errchk 0)
3 e; m! R( ~: L. Z% L- E7 j$ x - (setq last-tile tile). H9 c* {- S' q3 m. W5 M9 F5 X
- int( W9 t: Z& v: f$ ~3 s, \' [
- )) F, O, t5 d$ X7 c+ T
- (progn
! `* a( Q- V3 {: M& W" _# k$ [ - (mode_tile tile 2) ; Move focus to offending field
0 n- H" _ ~) ^ - (mode_tile tile 3) ; Select offending text) s0 W3 U$ i$ S" J# n) I
- (set_tile "error" errmsg)/ ]& X, ^) ^7 I5 p6 W
- (setq errchk 1)* I$ U$ B8 I* E, E* g1 D7 h3 V
- (setq last-tile tile), T* P; o/ e5 ` H( f& o
- old-value
' W- U6 O1 ?8 q3 H/ H* Z, j - )
# j% j K3 o" R; N+ G - )
5 t, N" D3 y8 [4 o: f7 K, a6 ? - )
}# t" a% n; E! [* p" [1 } - ;;. ]- w& H# s* r! U5 K3 Z# J
- ;; Functions that verify tile values for integers
# R: m2 g6 ~" p - ;;
* [9 b( X+ }5 A - (defun ver_col (value)( |! Z/ S! r$ ]& d9 s
- (setq columns (verify_i "columns" value columns))$ F2 W* M" Z/ r' z; Q$ J, c
- )4 H# K# W, j% e8 i
- (defun ver_row (value)
( o0 V: y9 }# D# i - (setq rows (verify_i "rows" value rows))! m+ f. t" _6 l6 Q3 V
- )2 l5 x$ @+ u# u5 H0 W4 z5 z
- (defun ver_u (value)7 \8 F/ X* ^: _* ?7 q
- (setq u (verify_i "u" value u)). U+ ~$ p7 M* I8 Q
- )2 W' w) @, ]8 {( b& p+ K1 ]) c/ b
- (defun ver_v (value)* _0 L# B; u+ O) E8 j, G
- (setq v (verify_i "v" value v))1 U* U% P. K2 d3 n d) M5 u: x
- )
4 h- A5 E! J( o - ;;
. n+ u: Z; R- S* x - ;; Functions that verify tile values for reals; E8 L3 B8 \& e
- ;;- S" l8 `0 n4 R; L% D
- (defun ver_x1 (value)8 E) L( ~$ D" Z8 H3 D
- (if (setq x1 (verify_d "x1_pt" value x1)) (calc))8 ?1 `, _3 K& s7 S
- )
! q1 z5 g: D! h4 ]0 n3 T* X - (defun ver_y1 (value)
' r6 Y: _& a9 G( m - (if (setq y1 (verify_d "y1_pt" value y1)) (calc))
0 m6 e, Q8 o6 W# s: I7 `" b - )
2 @; T- u) X1 f7 W - (defun ver_z1 (value)5 s' F3 ~( d; {! x* M0 l S: X3 m! M
- (if (setq z1 (verify_d "z1_pt" value z1)) (calc)), l" k% B7 \$ |' ~
- )
% I5 M* p! }% C6 J - (defun ver_x2 (value) u' h3 O; I# E% q c
- (if (setq x2 (verify_d "x2_pt" value x2)) (calc))8 ~# m" N z' f" @3 t9 e+ x$ O$ g* d$ @
- )% r* I# w# ?: f$ o9 F1 W# J
- (defun ver_y2 (value)( H+ }2 S: N. P
- (if (setq y2 (verify_d "y2_pt" value y2)) (calc))# ~- M- ?6 E0 A, V& w- R
- )
- U: D* n5 X3 Q4 N9 { s - (defun ver_z2 (value)
9 d# O/ C2 o7 x8 c3 ~ r. u - (if (setq z2 (verify_d "z2_pt" value z2)) (calc))2 @& q. ` S. j, V0 A3 M
- )/ C2 i' ]* P8 C* ?
- (defun ver_x3 (value)
9 Q' }0 G9 T) K- t/ j - (setq x3 (verify_d "x3_pt" value x3))/ R$ c( S0 N8 V- B' `
- )
/ J; u2 M$ ^. s# h+ B5 y1 | - (defun ver_y3 (value)
) t7 a9 c0 D8 y4 O - (setq y3 (verify_d "y3_pt" value y3))
# C+ ?/ T* W9 y* P5 \( R - )
. G$ _; F. b8 k8 X- ]1 s3 ?8 H* b - (defun ver_z3 (value), ?5 H6 d1 e+ y: d, i
- (setq z3 (verify_d "z3_pt" value z3))
4 j# ?- W# `1 Q# a* G! x2 M0 O - )
" g$ W4 r" r3 a4 _" x; {& O; z$ f - (defun ver_x4 (value)! u2 k i$ K5 n. T
- (setq x4 (verify_d "x4_pt" value x4))6 c( G: ^& Y( q( Z- Z, ]2 k0 Q
- )1 {3 V2 W% V+ R0 ?. ?7 b/ W
- (defun ver_y4 (value)" b1 V# K, V7 A# B* K
- (setq y4 (verify_d "y4_pt" value y4))
. K: b } X/ { - ), L" h" Q$ B1 }2 W% `% l4 p# R; }
- (defun ver_4 (value)
5 Q/ d. t1 X- v4 O8 B - (setq z4 (verify_d "z4_pt" value z4))7 H3 z/ S' H, v! U2 P* @+ w
- )
2 K( l* L# ?" x; W' u - (defun ver_xscl (value)
0 |' Y; r {/ X& a - (setq xscale (verify_d "xscale" value xscale))2 o$ p1 B2 h' B. ]1 I' _3 m; j8 x
- )
8 U$ p. C% B. E# B& D - (defun ver_yscl (value)
( m2 \ E: T% p9 @ - (setq yscale (verify_d "yscale" value yscale))' m# k- O9 Y: L7 y: D5 F
- )
7 Q5 W. y$ h9 ] - (defun ver_zscl (value)5 N* I5 x- o6 R+ Y2 Q+ ?# w
- (setq zscale (verify_d "zscale" value zscale))
. G- t: M/ N' y* m - )- ]. ^3 ^$ E- i
- (defun ver_colsp (value)
- K) C g/ f! J: S' d - (setq col-sp (verify_d "col_sp" value col-sp))
# U# B% Q# v& c0 G7 ? - )
" L7 z+ @+ @& K - (defun ver_rowsp (value)
! ^" F" x2 q7 h- y* O5 J - (setq row-sp (verify_d "row_sp" value row-sp))
' y; H F! v4 W3 }5 K - )6 ^) o$ p4 l' b' v
- (defun xclip ()5 _0 X4 A' K- w) e& O5 t3 g! C8 n* C7 b
- (setq xclipmode t)
! `- Z5 _/ P( K/ |0 ]$ | - (if (= xcliponoff "1")
7 k1 {& f& H6 E1 W( N - (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")# g& i/ e) `5 K& n
- (command "_.xclip" (cdr(assoc -1 elist)) "" "_off")
4 g) Z1 ]* ^5 u) \6 Z - )
. P8 X1 [, N2 W - )5 v* @9 n* W, U% d; s
- (defun ver_rad (value)
' ?& U3 e3 s* U: J - (if (setq radius (verify_d "radius" value radius))
' R( l, `) x7 q3 g7 |5 p - (calc)% T4 r* A' ]; h+ X8 J
- )4 W7 o9 i! z4 L0 ^
- )
; U- M; U$ [6 f+ F/ s( J* d - (defun ver_majrad (value): L; O, H) O0 o u R7 P
- (if (setq majrad (verify_d "majrad" value majrad))& E$ B. u8 r; v' S( F+ R
- (ell_calc_newval "majrad")
! g' ?: A/ Z* Q - )
V& u: {9 {0 X) g - )1 Y# I% Z9 O5 f0 d8 w5 K
- (defun ver_minrad (value)
6 w* \4 r0 d2 }3 A- Y. e `8 j - (if (setq minrad (verify_d "minrad" value minrad))
# t+ d2 {. E" I. M9 j8 k, x: K - (ell_calc_newval "minrad")
+ B( Z8 q" A( [$ T8 x - )
7 b9 G- K! k5 u L0 D* z - )+ q- u5 U( d; c9 {$ E6 l$ y$ C$ C+ {
- (defun ver_hght (value)/ C8 G" U; T7 y( u# |
- (setq hght (verify_d "hght" value hght))
, |3 \6 k. P- B) b' q - )
' p2 T* Y6 C' e9 L$ C - (defun ver_wid (value)
. y1 O @3 ]. D) x6 @& a - (setq wid (verify_d "wid" value wid))
+ i0 m& G; j' c1 V6 M3 f& A - )
, o2 K( a8 r9 T" r' I; c _ - (defun ver_xline_x1 (value / temp)
X( i' A& e2 b; ~2 M - (setq temp xline_x1)
# R5 B' W2 n1 D2 l: N; A - (setq xline_x1 (verify_xline "xline_x1" value xline_x1))
4 w0 h' M! e& F/ [1 i, R - (if (/= temp xline_x1)
0 W8 Y6 p& Z" v0 Y/ b1 V7 d - (progn (modify_xline 0) (set_tile_dirv) )
( a4 q) n+ {" I8 f! W+ I - )
; \" [/ i2 x$ F - )
8 y# P5 a3 m& n9 T - (defun ver_xline_y1 (value / temp)
. X# ]6 l! T3 ~" _! Q - (setq temp xline_y1)6 D$ y* a+ R- O+ H6 W0 M+ Z& H
- (setq xline_y1 (verify_xline "xline_y1" value xline_y1))
. V/ `# l, ^5 A, }, Q _2 N1 g - (if (/= temp xline_y1)7 d6 ?. s; e5 L
- (progn (modify_xline 0) (set_tile_dirv) )8 `- w1 i t- i
- )
! L8 ^+ d- B, G) E - )
' e% a( u! v7 I$ C5 n - (defun ver_xline_z1 (value / temp)
0 e8 a, b3 g! K, d. q6 J - (setq temp xline_z1)% @ P% h; e- `
- (setq xline_z1 (verify_xline "xline_z1" value xline_z1))
0 |) _9 g- s% D O$ w) i- W8 D - (if (/= temp xline_z1)& r, G6 }; m7 H2 e) |+ ?
- (progn (modify_xline 0) (set_tile_dirv) )
6 c# E; t7 D, {4 ^: B5 A e - )
& ?& r1 V; l; n$ P - )
% @) T4 v! }# s+ E- j - (defun ver_xline_x2 (value / temp)
- R# ]- [0 e1 S. t! `- e - (setq temp xline_x2)) ~% @8 z: y* ^; |; e$ |
- (setq xline_x2 (verify_xline "xline_x2" value xline_x2))" t* w" u0 w) L( e
- (if (/= temp xline_x2)& Z1 ^3 v" q: [: W
- (progn (modify_xline 0) (set_tile_dirv))/ h/ L) b) X3 \: o- J x
- )4 G$ q* W$ }# y( k2 E0 c
- )
- O3 {* O% }: T( P - (defun ver_xline_y2 (value / temp)! W- ?& ^ O/ G) |3 d* ~
- (setq temp xline_y2)
% g; \9 e' b; L% ?/ T3 F7 e - (setq xline_y2 (verify_xline "xline_y2" value xline_y2))
; C+ T/ C, k3 e0 B* P' K. ^4 m - (if (/= temp xline_y2)
$ t! i) C |* n& R% q2 m - (progn (modify_xline 0) (set_tile_dirv) )
: s9 m, ~* q$ w/ s, ` - )
" n; x" G! X! {5 C- u5 _ - )1 S# [( t9 A! O& o8 t& i1 R
- (defun ver_xline_z2 (value / temp)0 C4 o. h- ^4 Q& F! v! {
- (setq temp xline_z2)" {1 M3 i* p; A) n) ^2 Q
- (setq xline_z2 (verify_xline "xline_z2" value xline_z2))
6 v* d0 y4 R# C( e0 ?) n$ ]/ ]3 Z( x - (if (/= temp xline_z2): Y8 V ]/ p. q' \4 V/ y
- (progn (modify_xline 0) (set_tile_dirv) )
' r! T; x3 R0 K, I* l, i4 Y& F - )
( c9 ^; P* ?& i2 h3 { - )
, f, z" j4 r7 u - ;;, h |7 z9 t$ z5 G. p% W
- ;; Functions that verify tile values for angles
+ A; l+ l8 c5 x - ;;
( Q- P: h; P4 N8 F: d, o - (defun ver_ang1 (value)& K; D- S( O* f/ M! n1 P9 Q
- (if (setq st_ang (verify_a "st_ang" value st_ang))# y7 c _4 S. p: }) d2 x
- (calc)
* n- j" d9 [+ g' { - )
% `8 c& T4 | h) t - )" ?- C; }6 X8 O$ T; o) |# T
- (defun ver_ang2 (value)
: }2 M+ @) Q2 K x2 S - (if (setq end_ang (verify_a "end_ang" value end_ang))+ z( H2 i P2 T; Q
- (calc)4 X0 T2 C, D9 b1 w+ ^* _( u5 k
- )9 j; f3 r$ V9 Q( W* j$ s, j8 q
- )
( S( s1 E' R% T7 e9 D - ;;
0 \$ C8 Y8 \. p% i% ]: H* D - ;; Verify tile value for ellipse end angle. Handled slightly$ J- R7 R" J8 h3 `( b
- ;; differently than the other angles.! M2 b/ g- X. ^- N: _+ ~& @2 F+ S2 i; u
- ;;4 m- _2 @1 {( }7 a4 `$ W' t& b
- (defun ver_eang (value)
; T& i" F r7 l2 M3 I8 g - (setq end_eang (verify_ae "end_eang" value end_eang))
Q; I& m2 u z! J9 T ~ - )
4 Q0 L/ V3 V0 @8 [% v I% d - (defun ver_rot (value)& c E) V$ t' B
- (setq rot (verify_a "rot" value rot))
8 x) |, |, b3 @& Y) L - )7 q; H1 L, p; q
- (defun ver_obl (value)3 y2 o3 T" p: T2 @; `* o8 i
- (setq obl (verify_a "obl" value obl)): ?$ D E9 Q2 P$ r9 A8 `. }0 q; x
- )
. m$ p& L1 ^0 _. e, r - ;;) i8 V) y. A9 y- N% L" z
- ;; Function that verifies attribute tag field for null string,
: ^3 ]$ ^) e7 K' G - ;; or a string that contains one or more spaces. Tile value/ `4 A. ^. N- X) w
- ;; is also converted to upper-case as well.1 A# \% d$ p" `8 }" [
- ;;) {0 ^$ s- H9 W* G3 H
- ;;1 b# w: [- ~8 r2 i1 h) L( I
- (defun ver_tag ( / tval): n# k0 g' s& K
- (setq tagval (get_tile "tag"))
3 {# g4 |3 N6 T - (set_tile "error" "")6 n5 ^3 w* j( K" I
- (cond0 E/ S/ {1 W/ `) G/ P
- ( (or (eq "" (setq tval (strcase (ai_strtrim tagval)))): s2 v9 ~$ X t3 {+ [" n9 E n
- (wcmatch tval "* *"))
8 t3 T8 j4 ]) z, c - (set_tile "error" "Invalid attribute tag.")
. Y- }# h+ p9 N5 `% v! C- {+ \; M% ^0 K - (mode_tile "tag" 2)
. f( Y% p w; B& W! G - (mode_tile "tag" 3))8 h6 h3 k, o# {0 h2 T8 N) G7 T
- (t (set_tile "error" "")
l/ ?( l' [) R, b" A1 e" i: B% ? - (set_tile "tag" tval)
1 l- @/ H! M1 @# _2 Z - (setq attag tval)))7 ^% W4 ]3 ~" q c3 i' P
- )
: i5 I$ ` ^ F6 \ - ;;( L( I7 e4 w! \+ W+ S
- ;; Calculation functions2 N; i' F( d4 a2 h
- ;;
; P1 S* l k) I/ A9 z& { - (defun calc ()1 N* f) N, d% O: n
- (if (= etype "LINE") (line_calc))9 J6 v0 \$ z) f+ a* u! s* Q
- (if (= etype "ARC") (arc_calc))
% ^% _2 ?. S6 z/ q2 g% R$ J9 B - (if (= etype "CIRCLE") (cir_calc))
1 ^4 {' m$ ]3 Q; N: T% w - )' R. G3 F# ~- [' L
- ;;
, E/ v5 D0 @6 Q( q( {& r7 _3 X - ;; Calculation functions for lines, arcs, and circles
5 |2 \( M. [" O* n. G( | - ;;; n; D& n& O8 D+ y) H. S
- (defun line_calc ()
0 P* J( f+ A& K: F; j* Y - (setq stpt (list x1 y1 z1))- z% X3 n9 P2 U/ Q
- (setq endpt (list x2 y2 z2))8 n( F( q. \& l7 [3 i+ ]' X
- (set_tile "delta_x" (rtos (- x2 x1)))
/ R; \4 D& X- f/ A: p2 B - (set_tile "delta_y" (rtos (- y2 y1)))
* {; @- N# q9 `* z0 g% U7 u - (set_tile "delta_z" (rtos (- z2 z1)))
0 N: _' X, J/ O+ N4 i d - (set_tile "l_length" (rtos (distance stpt endpt)))
1 T' B, t( G7 _$ _ - (set_tile "l_angle" (angtos (angle stpt endpt)))4 @0 B. o, c; P1 C
- )/ v% U2 L/ \& I
- 0 B; V+ V S& z& {8 t; z; Q4 F7 h
- (defun cir_calc ( / area units): U9 C- t$ Z7 p- i/ J
- (setq radtest radius)
* z( Q" b4 O, N+ I - (set_tile "Dia" (rtos (* 2 radius)))
* d) {9 q2 i; ^. B - (set_tile "Circum" (rtos (* 2 pi radius)))
q$ i1 [, P c6 S - (setq area (* pi (* radius radius))) F+ o. [6 |9 k" k0 v, H
- (setq units (getvar "LUNITS"))
" t! V3 t. @3 t3 C, X1 t4 [ - (if (or (= units 3) (= units 4))
, ^& I8 o1 z5 `7 h4 q% u) y - (progn! l3 d9 J. f0 A8 k( {' S* @
- (setq area (/ area 144.0))
. P$ E& d6 s3 [& A/ s - (set_tile "Area" (strcat (rtos area 2) " square ft"))
( c" K% J9 |: w/ T5 z - )" f/ g" S, G) s/ \) u, f
- (set_tile "Area" (rtos area))
) ]! S; e. s" G+ R' R6 z3 f - )
( x% B3 d( W& k - )7 [2 L. P z# C; Y' J: ]
- ) A7 { T2 C: w2 \: T0 ~% ]
- (defun arc_calc ()6 L+ E B& A5 k, q/ @& y
- (setq totang (- end_ang st_ang))
) |4 _/ H6 @% k - (while (< totang 0)
# s- j$ W! k+ D8 [. [ - (setq totang (+ totang (* 2 pi))); w) U' n0 P* }0 g" ^$ K5 R1 [6 O
- )( \% X7 ]: b# r+ o
- (while (> totang (* 2 pi))1 d. s: y2 S1 R' n- ~# a
- (setq totang (- totang (* 2 pi)))
: }3 b6 G$ z" A0 C8 e0 B+ e - )
- {7 f, C; P7 F& n - (set_tile "tot_angle" (angtos totang))- F" c! _6 V/ y' F* |# f
- (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi))))! H6 h$ u" j+ h+ G' B0 M
- (set_tile "arclen" (rtos arclen))
, n. {1 ]$ A/ X( F0 W - )
) m" k, c3 i# M4 l1 ^7 W - ;;
" k! |! F1 d& F - ;; Calculate the major radius, minor radius, major axis direction.
- ~8 a$ T- y( P4 w: | G - ;; Get radius ratio. Convert Start, end parameters to start and end
% V6 Y- J- v% y% k5 f* J F - ;; angles. Save Major Radius value in "old_majrad" in case the user( _) Q" o9 @' i7 R4 Q
- ;; chooses to input a new Major Radius value later. It's needed to, j6 ^* F3 B2 K. E! t3 h h1 L: ?
- ;; calculate a new Major Axis Vector value.& K. W( i# c: J; z! A r
- ;;
- u1 I; g# ~& @" \ - (defun ell_calc ()
2 I' h7 @0 x0 @4 t7 g) o - ;; Get major radius from the major axis vector. g8 G; p$ `$ j5 o6 z
- (setq majaxis (cdr (assoc 11 elist)))
; U' V- P+ |5 g0 q7 x+ w - (setq xx (car majaxis))
) Y* X6 ~: V- g - (setq yy (cadr majaxis)): ]3 `) F$ { r8 [2 J# m/ u
- (setq zz (caddr majaxis))% {# n- O. L! B$ F3 J7 L. Q3 T
- (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) )))5 z& U* ~! I. E5 N
- (set_tile "majrad" (ai_rtos majrad))3 R, q" F" k* ]; L$ a3 X
- (setq old_majrad majrad)
& a) V6 ^$ w" l2 |" U& f - ;; Get radius ratio
5 N \+ u4 i8 }2 h; R8 X4 ^ - (setq rrat (cdr (assoc 40 elist)))1 x- b9 t7 i/ [) t
- (set_tile "rratio" (rtos rrat))
+ h: _( a7 N, x' d1 S0 W+ v+ d - ;; Calculate minor radius3 e9 J: }' J% C4 V7 g; h
- (setq minrad (* majrad rrat))% v2 ~0 v* [+ y/ |( b% L+ Z
- (set_tile "minrad" (ai_rtos minrad))
& ] [) e1 Q* f! C1 _ - ;; display major axis vector" U2 H( K0 o2 i6 A1 J( E
- (set_tile "Majraddirx" (rtos xx))
& B0 a+ j; B* i' O: x4 e - (set_tile "Majraddiry" (rtos yy)) Q! K: q: a4 p( X+ z9 g! t4 h- ]8 s
- (set_tile "Majraddirz" (rtos zz))
( t9 j4 y. x7 g; A& V% k - : r3 e0 l9 C1 a/ d( F) W; m9 d
- ;; Convert start parm to start angle; d. ^! }- @9 t7 g+ O, C$ |
- (setq stparm (cdr (assoc 41 elist)))! j4 e* a L9 h
- (setq vecx (cos stparm))
6 V" B& w$ E8 ~, K - (setq vecy (sin stparm))
+ U9 A8 j: o9 c1 o W- C( o' v - (setq st_ang (atan (* rrat vecy) vecx))
0 X9 h; P9 b. H) ]+ Y- u - (setq tempst_ang (ai_angtos st_ang))
- d( B+ h0 Q( |& h& e - (set_tile "st_ang" tempst_ang)
9 s; S) i7 e9 i& b9 c) ` - ;; Convert end parm to end angle. If end angle evaluates to 0$ U# m: J& z) W: t
- ;; degrees then display it as 360 degrees.
4 H7 H" S3 j" T9 U4 ^7 f5 i8 a - (setq endparm (cdr (assoc 42 elist))); m6 \0 A& v) H, a( @2 U
- (setq evecx (cos endparm))4 V/ C9 I: X/ |. X
- (setq evecy (sin endparm))
% y* T$ G2 _5 i - (setq end_eang (atan (* rrat evecy) evecx))
) l/ L! Q0 x% O' R$ r - (setq tempend_eang (ai_angtos end_eang))5 Q. a( U% [* r* X" D2 K
- (if (= tempend_eang "0")
! a$ v+ I$ t" h4 c - (set_tile "end_eang" "360")
/ s. O, C+ P% i1 d - (set_tile "end_eang" tempend_eang)
5 M5 B, o6 n& j3 X% u - )
! u2 b& B9 o2 f2 V/ K8 m- M* ? - ;; Get area of the ellipse.
0 b; j/ s1 x, S0 B2 [5 I" B - (ell_calc_area)
/ ]7 f2 h3 B( C& i" [ H - )! C4 n8 X& N! O- b/ Q- R( b) G
- ;; Calculate area of ellipse. If it is an arc then
, k, F7 b$ W! w$ N$ Y. |0 U - ;; grey out area display.
% z9 @( I: Z) F; M, O. m2 c' f - ;;
: K3 X% e* o# J, o1 l9 p! O/ ] - (defun ell_calc_area ( / area units)- }! W2 z! D$ `2 `8 _
- (if (and (= tempst_ang "0") (= tempend_eang "0"))# i" g. r. ]" Y4 }+ U2 t
- (progn) C* x1 [) r: }8 l
- (setq area (* pi majrad minrad))# g; m8 ?5 j& C2 J7 f' I
- (setq units (getvar "LUNITS"))
+ k7 {. e% o6 w/ m$ z - (if (or (= units 3) (= units 4))- u) V' A5 |9 v4 f* S |
- (progn5 X5 e) T0 M/ S6 b' G! B3 a, T- H* [4 ?
- (setq area (/ area 144.0))& u' w6 x' r) o' o6 f8 d
- (set_tile "Area" (strcat (rtos area 2)" square ft"))
4 P* v+ \' D% x, c - )& w0 s2 B/ R1 H9 e5 B
- (set_tile "Area" (rtos area))
9 F" R& x2 `/ v& a6 i* D X. O - )
8 X6 J6 ?- D' _) } - )
8 [! w/ s1 A1 R* i) N9 T - (mode_tile "Area_text" 1)
+ n0 M \: [% I - )+ `5 ]; P0 U1 ]0 j. H0 u
- )% A1 H' |8 K. _1 I2 O: e k( I3 ?
- ;;: w B4 r4 \- c0 [
- ;; Calculate new values for ELLIPSE
( k s" o; x8 Q' v - ;; Minor Radius, Area
& q1 m! ]1 `$ z! v& s1 P - ;;3 c4 R( b( d2 M
- (defun ell_calc_newval (ell_tile)& W6 k- l( T& w# \' m! K
- (if (= ell_tile "majrad")
. b+ E8 b! ^8 N5 D2 a% p" s - (progn, G6 t. F1 O5 N) C {0 A
- (setq rrat (/ minrad majrad))
2 Z3 \/ _8 T" T( Z - (set_tile "rratio" (rtos rrat))1 p) H0 |) M k& b6 F
- (ell_calc_area)
4 n1 [- N$ }+ A - )4 v) `+ u2 c r
- )
* [! y; q3 X% K! o! c* j; R - (if (= ell_tile "minrad")& r2 m+ u( D( `$ U' `
- (progn( y) c, V: n$ ^ U; T
- (setq rrat (/ minrad majrad))
: ?( u2 H, G4 P" ~ - (set_tile "rratio" (rtos rrat))
8 g) a. r; X: V8 p. e9 e+ `4 {3 v - (ell_calc_area)) [/ ~. v% f5 i6 N+ L5 r; x
- )4 |3 T+ ]7 D/ o6 T V
- )- M9 a- g9 f& z; R6 c! W
- )
" D4 q9 C2 Z. n1 B4 {; p
; b$ p7 @0 W3 s& O- (defun set_dimen_props (/ loop a stl txstyname)
! J' E [: T7 k: | - : Y7 u% |" h, @
- (setq stname (cdr (assoc 3 elist)) ; get style name
& Z, u$ |; ^- h* v# m - stl (tblnext "DIMSTYLE" T)
6 t L# r: z" G4 {# _; { - stlist nil). q- N) q6 }7 V0 L
- ;; Get all style names and list them in alphabetical order6 `* Y, {' ] p* F+ X5 w
- (while stl4 L" g5 U- ]+ F' |, S
- (setq sname (cdr (assoc 2 stl)))
" {2 x- @0 ` D4 S4 t, U+ f# u - (if (/= (logand 16 (cdr (assoc 70 stl))) 16)
% K. m: U7 l- m4 X& g/ Y$ [ - (setq stlist (cons sname stlist)))7 V5 E% J0 h: q( E& @ B" b
- (setq stl (tblnext "DIMSTYLE"))): F# _( N" B* s8 M: }- }1 s' J, m
6 `1 g7 n5 A" d0 Q' X, l- (setq len (length stlist)& m8 V& o# Y) x8 q. i
- loop 0
: q9 W2 O a( A4 R+ ^" k5 N1 h - dimsty stname
# d" o% ?- t# g7 R& Z - )
]: [; a- n8 o, C, e! _& a7 p - * f3 O1 F& m; i4 p
- ;; alphabetize style list, depending on maxsort
; H; u: I" E" h, b - (if (>= (getvar "maxsort") len)$ N, W1 E( B6 R4 ~, {
- (setq stlist (acad_strlsort stlist))
* y% q" U" i( ?% `% ` - (setq stlist (reverse stlist)))
/ M) K. [, {4 h( S - , Z6 F5 I2 O- Q' j9 C' g" V
- ; *UNNAMED style (dimsty = nil at this point) is replaced with, Z* `! B) v+ w! c% m8 Q2 I) K
- ; the current style. After R13, we require dimensiosn to have a
3 o$ I( c8 V* m: O( }5 k3 P6 }9 B - ; dimstyle, so we plug any holes where we find them.
8 D \* v* K' h; {$ N4 ~ - (if (null dimsty)! f; |; T6 q: w5 M3 r. Q$ Z- {
- (setq dimsty (getvar "dimstyle"))7 H) h$ `- p) A9 t9 l( J2 ?
- )2 Z) y- p0 s# c
- ; Show the styles in combo box( \0 w# X% `4 }2 y4 g' L
- (start_list "mod_style" 2)! p' r% A/ o+ N+ v9 ~2 J
- (while (< loop len)
, t8 p E& B7 C* S# ^ - (add_list (nth loop stlist))
: Q8 q4 P' ?+ Y - (setq loop (1+ loop))9 ^3 f! q7 D9 G0 K: q# t! g" q
- )( ~8 y& I) W: k4 F: U0 s2 L0 K
- 3 D0 A, k D6 N8 `+ X
- (end_list)
; p A, v0 L$ V: b) B6 ^
, A( v1 Q2 h" z+ U- ; Hilight the style name of the selected entity$ A2 i* d6 r% d( h; Z
- (while (and (< 0 loop) (/= dimsty (nth loop stlist)))& X) O5 t1 ?0 U- h* L- P& D
- (setq loop (1- loop))
6 A/ H' G, y4 g6 ~+ L U - )
2 d/ ^# M! U5 a2 @0 f: n6 m - (set_tile "mod_style" (itoa loop))9 c7 R ?4 j) o' e K+ t3 P) n5 t. c
$ y1 ]) C! ?9 c8 H- ; The following is the list dimvars. It must be sorted in the same" }0 q0 ~( p5 B7 Z" S8 c
- ; order as the resfub returned from DDIM (ADS module).3 c- ~3 I- s. b9 ^9 i
- $ w9 a5 c! z4 ?" F( j. H' d
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
8 z, w2 ` d& S9 E! F - "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"" I, B! F" F T" Y0 V& P
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
2 H: m$ r4 E% i5 C% _: n' c- N - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"! s3 f. J" n0 l" N% x
- "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"% T& Q8 m6 p$ v& S7 h
- "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"2 N" t& d" e7 s$ _
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin", K1 A" a( e) j" h3 i; g
- "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
5 v8 I! A' \; v" m2 o - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
* A3 n# Y1 m' Y% C - "dimdec" "dimtdec" "dimaltu" "dimalttd". @. w+ i" z! T1 f' P
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"
" g. y+ b0 N; ?' Z - "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"% l& E; C6 h) ?
- "dimtxsty"
3 Z; h L& w- V1 G0 _: R: H - ))
1 V8 W) E4 r; x) V! t9 F0 ^ - (progn- \ j3 N) ~ ~3 ?( w
- (setq sv_dvlist (ddimen_getostate dimsty)
! X% i! h5 W( P3 M x2 \" G - txstyname (assoc 340 sv_dvlist)% P3 `, y. i/ ~; N7 t) ]- g0 x2 A
- sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))
7 p6 x. x8 S _0 L; I( F8 |/ I- n - txstyname sv_dvlist)
! a% \8 T o, g& i1 F) K - dimlist sv_dvlist5 q" j X* `; _- c; E# }5 Z
- ) i4 x6 m- Y9 ]8 w
- )9 \* K2 F: e3 H
- (if (= dimtype "DDLEADER")
9 i# }% H3 X" `7 \ - (mode_tile "mod_format" 1)/ C, a/ M9 D# k! }
- )
( {3 n/ Y6 Z3 }$ \ - (action_tile "mod_style" "(setq dimsty (ddimen_style))")8 F6 X5 y8 t( z! V
- (action_tile "mod_text" "(done_dialog 4)"), D6 u1 L s" \; m2 K$ `
- (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))"). y0 ]+ v2 u2 G
- (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")3 Y3 o* p7 @0 [# {, g
- (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")( C2 M7 \6 }! r: B4 \
- (action_tile "accept" "(done_dialog 1)")
5 F' }" P6 v% `' r2 a - )
# b3 g: i! W+ w; V2 { T4 F - ;;
% V# U/ f) @2 ]( E7 W - ;; Get dimvars that have been restored.
R( X+ G. e, c' ?8 Z5 X: s0 o - ;;% k8 k* I6 m$ J% Q* L( l# s! h
- (defun ddimen_getvars (/ elm dvlist dv i)
3 K) S0 }1 Q) R7 h7 u - (setq i 3: ^- T S- A8 h1 e
- dvlist (list (cons 0 "DIMSTYLE")
; U9 a7 X' t R! R% ^ - (cons 2 (getvar "dimstyle")) (cons 70 0))2 R+ h) U( B/ s2 a% I I
- )( I0 X: |/ b& x
- (while (setq dv (nth i dimtbl))
& U& `" o1 z6 o2 H, U - (setq elm (getvar dv)
& O0 X4 U; D9 ] t - dvlist (append dvlist (list (cons dv elm)))& r" R4 Y0 }* l8 E f# V! s! r4 ~0 _
- i (1+ i)8 M: f. T% d T5 o% Q' M8 z3 S
- )
$ [9 _( ^( Z+ ~9 l2 n' [+ M - )
: M# U, j* m7 C& D L - dvlist1 `5 O' x# D* `( p2 i4 E9 s }5 Y: Y
- )8 M0 N2 T- n( `0 K& f# B0 v
) N: i4 K) J& d) i- p0 j) l- ;;
2 n5 |; l* r% P2 T% B: E$ ` - ;; Get the original states of dimvars. This is for DIMENSION entities.7 a/ y1 p' R1 d2 Q
- ;;
+ Z; a$ `9 u% s8 G - (defun ddimen_getostate (dimsty / dvlist elm i dvvars)8 W3 M0 u7 ]8 \- a
- (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list
. P) k9 H& e/ O! P C. R) [1 w% ^ - dvvars (ddimen_getvars) ; Get dimvars for that entity
, v- t! W. `& v/ K; a, Q; p - i 1$ W0 o5 C) @! ^! q
- )
0 a) O9 L; `, S, W0 p( w5 ?
h. [& G" k" T5 ^- ; Create a list that contains values of the selected entity., L9 j) G2 u! w) v: `. ^0 z
/ V. M9 o3 k. q3 H a8 }3 T- (while (setq elm (nth i dvlist))
/ X0 y+ x. y5 i/ a) K - (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)
* x+ r8 i/ i* F* p3 @+ ~) r0 K - i (1+ i)# W$ H( t" R7 y. p6 n" x, Q
- )' C @) {1 D$ f+ e# _
- )
! e# Y) N, H8 u) e - dvlist
& P0 d) s/ f: [# ~) u- I - )8 X3 D" e0 k' L
H* G5 Y' a! \/ Q! G- ;;
& |& W/ r& D1 a$ H# u& i - ;; Restores dimvars of the selected enity.
; r" |: {' F$ B7 E& j- I - ;;. t8 z) Q, `! g: X. O' M0 |! x
- (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en), c) W0 s, I: W3 Z3 D" k
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
6 e$ S1 k1 Q6 ~- s - "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"* V N0 E$ _ j6 N% l9 p9 s
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
$ d) D( k6 u: |3 n! u - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt", }4 Q5 S8 R; j) s J6 Z6 L3 u+ m
- "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
: t8 ?% u5 X* b$ X - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"
; r0 e+ l k3 M9 J+ A# h& I( E - "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"7 d, f3 i9 x, W3 _' H" u- p
- "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
+ `; N. m5 n( ]2 \4 Y: a+ { - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
7 j0 h& ^ p9 f6 x# m- G - "dimdec" "dimtdec" "dimaltu" "dimalttd"
+ ~8 y% @ }8 `0 r Q7 K - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"( }* Y' o& K/ O, @$ _ s
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
! `6 I6 X$ M0 I8 ?. X - "dimtxsty"
8 W, b- j$ [! m- B - ))
( M8 O; X& X9 T* ?' q4 N. H3 ] - (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings, ~+ b5 {* K) G g
- (progn
& q. p& y8 Q- ~6 A: t- y - (setq en (cdr (assoc -1 elist)))7 y+ _! F# p5 k4 n m
- (command "_.dimstyle" "" "" en)
4 S+ @5 j/ S5 d1 G& [' U - )9 R. U. @9 a1 H4 ]8 a
- dimsvcurset1 A! K$ Y$ P3 \1 r! [- N0 }
- )3 m6 |9 f; L/ y6 Z; k7 f5 j
- ;;: a# @; j, T+ U
- ;; Modify Leader g8 ?+ _& F( _& v
- ;;
9 U4 Y3 q, D" y) v - (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl
; A* g4 \% ?7 s - dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
c) N8 d- I* Y - dimtype dimsvcurset)
3 G- ?; s. W; U' f - (setq dimtype "DDLEADER" h5 Z+ Z* ~+ w2 e+ m3 ?8 {- d
- dimsvcurset (ddimen_dimsty_restore)
' F O7 [8 k* J/ l; G - )& D0 v/ i) e: S8 V" H% u
- (if (not (new_dialog "ddleader" dcl_id)) (exit))
; v9 \/ O9 Q# t- H' Q0 F- { - ;; Set initial tile values7 u. W/ q' e/ l& M/ @
- (set_tile_props)! ^6 p# a% S1 C! F# z* [1 R
- (set_dimen_props)
N. y* v8 y1 Z4 p8 o, Y - (set_tile_handle)
& v4 S, ?3 @/ l5 W) U - ;; Define action for tiles& c: M! z: j* x- U; @
- (set_action_tiles)6 |" V9 m5 p# }( r* O. T3 ~
- (mode_tile "mod_text" 1)# {8 c* ?3 O: ~ z7 }1 t4 B9 H
- 9 F( a! ^; v E9 V P% |' L( z
- (action_tile "mod_style" "(setq dimsty (ddimen_style))")
5 T+ V7 G# ^% a9 ~4 ~ - (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")( B# Z) B$ t" p/ h" l. M
- ;; Get ARROW and TYPE.; B& j8 [9 j8 q0 r
- (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))
6 p' a/ H; Z K* { - (if (= 1 (logand (cdr (assoc '72 elist))))
9 h' m2 J- R# @1 d - (set_tile "s-s" "spline")
% m2 E/ A' |: Z5 K8 j$ o - (set_tile "s-s" "straight")
9 S7 u% U$ U p; T# \$ K, P; O - ), @2 p) u' p4 N; z4 [
- ;; Start the dialogue.$ m9 @) r! M' f: T, f$ u0 ~
- (setq dialog-state (start_dialog))2 v4 l# a$ t; T7 ~1 F0 l
- (if (= dialog-state 1)& K( x! c& p8 a; o" S
- (progn
k" V, d# \5 i' T1 V" r4 e5 ] - ;; update the style z' J, ?) a( Q _, r% }' a
- (if (/= dimsty stname)
3 q5 t9 r( W4 t/ j/ w: v0 n1 K - (progn
: u3 @& P6 s+ B' q2 w2 [- P3 l - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case2 t7 S& o% {5 L5 k2 P# { G R
- ; doesn't have it.8 b- B# S3 g# H
- (if (null (assoc 3 elist))7 @( K8 }5 q& b# S8 B
- (setq elist (append elist (list (cons 3 dimsty))))
$ u% L2 t9 h. f; b) e - ; else just replace it.' `" P! u) E% n2 i. d* P; ^
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist)). X+ I8 w* ^( @" O0 a
- ). R b4 x# o* ~) A1 \
- ; refresh sv_dvlist with new dimstyle.
M' O$ U& S# L( ~% y - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
? R+ c4 ?. }' ?* n - )+ v4 u3 c O% U( e( I& `
- )
/ A8 t, l* C& U: c0 h - (if (not (null dimlist)) ; attempted to change dimvars
# I3 s. p" E" g; K( S - (ddimen_complist sv_dvlist dimlist dimtbl)& {2 v2 \4 A9 u, S7 F) \( J2 }+ d
- )
/ h7 Y, R4 s( z- ]" Z) C9 g$ Z - ;; update for ARROW.8 j9 O) W- A3 P% Y* `. z+ L, {* z
- (if (= "1" arrow)
9 b! D5 k" W0 H2 E - (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))5 r( Q) ^% r, d1 \0 Z
- (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist))1 J8 @9 N" h; g5 f. j
- ). z# z7 o4 W6 K$ f* U
- ;; update the TYPE.1 G! f4 o) W! n5 D' S% S& O$ @
- (if (= "spline" leadtype)+ x, s1 S+ X/ _9 F
- (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))$ T& b& Y, s4 Z& H& x7 C) a
- (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
5 r. q! [- p5 t - )
1 ~ a, q( i, D - (modify_prop_geom)
" l; M/ R& J4 ]( `% B0 j4 ?1 C - ;; update the Color
0 u' Q5 D6 `* g7 @. ~' a! m) w - (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))! c0 N7 c( x1 B) ~% c, i1 s
- (entmod elist)
4 E0 h% Z9 L. Y! t - )8 a O! k; P9 Y
- )
" X( |' e# I- T! I/ V l& X0 Z% R - (ddimen_setvars dimsvcurset) ; Prepare to exit
6 C8 i% Q p5 P5 b* O% }! p1 _ - )
9 n/ P5 ?/ S5 X5 J - / P ~6 r3 B8 y2 O4 _6 Q
- ;;. }1 ?! a$ d) [
- ;; Get dimvars of a dimstyle with overrides.
) B5 A7 ^# I) i$ H( t* { - ;;* a1 u& z# J+ @3 z) `
$ H% v- T1 {' P& Z9 z+ \. w- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)3 L" U8 V# o1 z+ P8 x2 j
. b4 `; `4 P( N% J7 Q. N0 t8 L" [2 Y- ;; Get override information for the specified entity.
8 s7 e4 A7 Y$ ?+ t- J - ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we
0 F/ Y4 L) t8 H* b - ;; must obtain override information through this tedious operation.
+ \8 t' x6 ]4 s7 i. O - (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))
* C+ E- q' P, J$ F+ f - dvlist (tblsearch "dimstyle" dimsty)
' e* N" q4 y b1 q: d6 r - i 2 }7 e5 s. v8 x; B( M0 D
- ), C1 i$ Y9 d" M7 g
- ! K! @0 ?) Q/ r
- ; Update the list with overrides if overrides exist.9 K8 M7 }1 m; l% a( [
9 k% Z' J P! R: Z$ L# `5 e- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr))))& ~; i3 ^" l2 U" C# ]
- (progn3 @' U! O' e1 [' |
- (while (setq elm (cdr (nth i dimovr)))- b% u5 `4 m$ v. y; E# Q/ H$ `& U
- (progn
6 j: J, c/ p5 e/ P* T" a* m; Y - (if (or (= elm "{") (= elm "}"))
( G0 |+ b/ U4 B8 G5 ]. J$ y5 |4 p - (setq i (1+ i)). v; K% t) J! m7 l N
- (progn+ Q" V! _2 W! K3 n2 G
- (if (or (and (< 180 elm)
1 b1 [& E# c4 \* Z0 L( L - (< elm 190)
; z/ e x* c) |& @) C. _: Z - )3 }: P! C( g' M8 V
- (and (< 80 elm): A1 T3 N- E2 n
- (< elm 90)+ k8 Z6 q) Z: }. D d
- )
- A1 Y: K; K/ V/ e2 R - )
- n/ d2 [) m9 S! Y4 q- h& S$ F - (setq elm (- elm 10))
2 ]4 M. e- v1 j% p0 ~% Y0 Q( [% ? - )
W9 x! n. q2 @ - (setq i (1+ i)2 e# a. ]# e" u' e5 }5 Z4 i7 ?
- elm (cons elm (cdr (nth i dimovr)))
# `1 {! C" R2 k1 e& z6 g# k5 u - dvlist (subst elm (assoc (car elm) dvlist) dvlist)
$ ~& _/ x: Z3 [7 d - i (1+ i)
( S, [# t+ t( Q4 a. A J8 l' x% G - )
* _2 C z- Q% `6 b/ w& y) X. V - )
8 G* x& V t! c. { - ). r" g3 E% t3 a4 }( m" _1 w
- )6 @5 f4 z) |$ {2 I+ f, ?( F
- )
% V7 E- B1 _1 g - )
9 n& u% s- p& |. ~ - )7 Q/ M0 L6 L3 }; w: v" C% T
- dvlist
: z: C- s" a" \" b" G% S - )
" c' I7 @$ B* ~* R$ j6 ]
* M% }' z* K# o+ N& t- ;;
: n. I' ?, u/ l9 l0 z& d3 C* v( f - ;; Modify POINT, z4 G( A5 j* [0 N5 H2 a
- ;;
2 m8 Y- H& }. o- w - (defun modify_point ()) Y2 N- {# a! l+ U7 J5 q/ m
- (modify_properties)
* c2 c' @, i7 p+ H( ~1 N6 Q - (setq pt1 (list x1 y1 z1)): g7 D9 F0 F2 n* c0 y( y
- (tempmod pt1 10 0)
e6 u8 n' k( |/ J7 H. J$ T( y - (entmod elist)
' {' W/ {& l8 O7 j$ P" y - )7 j3 {8 a H# w! L+ i
- " H. v8 S1 q/ ~ \2 w8 X5 _+ b/ ^
- (defun ddpoint ()3 [( H1 r; d3 @ ?+ y) z
- (if (not (new_dialog "ddpoint" dcl_id)) (exit))
: _5 [% I/ v E! J - ;; Set initial tile values
. x9 K1 C$ E( A0 `+ F* Z - (set_tile_props)8 R$ p# w6 k7 q+ s* v: ~) R
- (set_tile_handle)3 i/ R% s9 f/ a4 g- {
- (set_tile_pt1 0); N/ ]6 o) z2 D$ K$ f
- ;; Define action for tiles, M- F; g) Z9 G! p! C$ G( B$ l6 }! v3 S/ |
- (set_action_tiles)/ E, a2 y) |- q( \4 `1 _6 c. t
- (setq dialog-state (start_dialog))3 b5 Z! z& w2 l J; X
- (if (= dialog-state 0)
% f4 Q7 p0 p1 y$ Q; g$ Y - (reset)8 J9 a: x& W$ ^! J- S
- )
7 n! b {/ }$ k2 Q: I0 H - (if (= dialog-state 3)
* N1 Z0 ]; J7 l5 G# ? - (progn @2 k- J( u% Q7 o
- (modify_point)
% O4 T" ]3 e8 Y1 s- K( G6 e ^8 X - (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))
1 O5 C# a! G& D' R* \, S; k - (ver_pt1 0)2 x7 _* q, w K
- (ddpoint)( O# q; S+ l6 a0 x! [& @& Z
- )
$ N( X; m$ t+ Q4 x - )3 H7 |* \9 y/ I2 I9 B
- (if (= dialog-state 1)
& @& B& X" b# [7 z+ O - (modify_point)2 O2 B" I. C* ?9 v
- )
/ f( o1 V* d) i/ h& f: M - )+ T* h+ V' S# [( \' ~
- ;;6 Q3 q2 b* H1 `, p
- ;; Modify LINE
4 z1 }: P2 m# w1 w - ;;
& z- u. ^, z. d4 C& t) r - (defun modify_line ()
4 R/ Y9 P" n! f2 c - (modify_properties)
. m! Y3 f4 c' {/ z7 t - (setq pt1 (list x1 y1 z1))
2 y5 f5 t6 X' l! f - (setq pt2 (list x2 y2 z2))! Z% B% @# L8 i! H4 p! a/ i# t0 a
- (tempmod pt1 10 0)
2 D4 L/ M8 u2 w% A1 J } - (tempmod pt2 11 0)8 e* U$ T) i; h/ |# U6 F( }
- (entmod elist)
: X# v- p; A* m - )
5 C3 ?1 w- w1 A4 Q/ }" \: ?, i( L( Z - (defun ddline ()
$ \0 E7 y( c. e' p5 c - (if (not (new_dialog "ddline" dcl_id)) (exit))
- A8 h _+ A% m* p8 b; c - ;; Set initial tile values3 I6 l, A8 c/ i4 x' f
- (set_tile_props)
9 }- u$ C3 w6 _ ?& r3 B6 ] - (set_tile_handle)7 y- M- J6 j7 V# z
- (set_tile_pt1 0)
9 I1 }1 [1 ~) u/ c4 Y2 p# d6 B' k - (set_tile_pt2 0)
! E' Z; n$ E* [- o2 T/ K4 U - (line_calc)
6 K u; I3 d1 M7 q - ;; Define action for tiles0 l3 y) l' M- [- r3 o6 x" y6 @
- (set_action_tiles)
0 N" R8 e* C! J - (setq dialog-state (start_dialog))
+ Z" _9 U: w7 D6 W) i) t- S; d' d! \ - (if (= dialog-state 0)
H" x: L I$ B1 e4 g: I - (reset)& ~% C. K0 H/ w# X5 H% [
- )+ v' Z$ a2 x/ x; _
- (if (= dialog-state 3)
) l" ]- I1 _( ? - (progn
8 Z' ]3 T9 I- M, | - (modify_line)
" U" B5 n6 o$ L7 q# L8 b - (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))
( \8 m. r+ ~2 q& }; t1 p, c - (ver_pt1 0)
5 Z7 k2 V8 ^( b0 y. C - (ddline)
3 z, J! l. E# G0 `; b2 B/ I - )( K \/ z& j! z& c
- )8 M; U( L% p; w7 k4 S5 n; a
- (if (= dialog-state 4)
* ^ \; K' L3 D" o/ b6 Y7 T - (progn
0 s( ?( L7 w. C/ i4 Q8 o - (modify_line)
8 d4 J( p* A) \* U: n - (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))# I& d x* O1 A2 P6 X8 a0 k4 e
- (ver_pt2 0)4 R1 M, L0 S" F! ^$ j1 ?& I
- (ddline)
2 [( }; o, K+ G: [& M - )
& a) d, J8 r1 Q5 }+ X. F - )6 B; w$ M# X( I7 |2 d# g7 B
- (if (= dialog-state 1)
8 \* L7 h- g7 g/ p$ [. m( [ - (modify_line)) Y- j) b5 K. D$ H+ z2 ]. G" ]
- ), v0 G; t+ p+ N( w! f5 i+ c
- ) Y0 \. h8 q* S$ ~- J4 h; |
- ;;
% J5 C$ h- g, _. q) M - ;; Modify MLine
4 x1 r! W K' v9 Z - ;;
# j# c7 E! ^6 O, z - (defun modify_mline ()! D& t& {3 M& `" Q6 B$ N
- (modify_properties)
0 ^5 A$ H2 D$ K% C3 m3 ` - (entmod elist)* H6 | c, ^* r p- m
- )5 b& I, ]. S& B* O3 ]2 j9 D) @
- (defun ddmline ()# F3 F, M* l2 w v5 U: ^
- (if (not (new_dialog "ddmline" dcl_id)) (exit))# J! L' ^5 N' f8 h5 z* _# i
- ;; Set initial tile values/ }* D2 D$ P, D6 v# _% [
- (set_tile_props)+ C5 ?- w$ E' g6 i
- (set_tile_handle)
, Q$ V2 v' h$ V; v4 ?" T" x - ;; Set mline style text field.: E8 v- m6 h1 i$ }9 A* m
- (set_tile "ml_style" (cdr (assoc '2 elist)))
1 w% ]. Y8 U9 g4 s; I- l) w
( {" x9 I* ^1 k9 c3 }- ;; Define action for tiles; E% N/ n, J; x. R5 @8 R
- (set_action_tiles)% `2 \2 h, u4 E; h1 i, d1 {
- (action_tile "ml_edit" "(done_dialog 3)")
; n' j& J0 }, {7 W# `% N - (setq dialog-state (start_dialog))
5 Z% F, S: t w: J) [- q - ;; Dialog cancelled, reset to original values.) a! k" a# U; Z2 n" ^1 y
- (if (= dialog-state 0)8 d5 t/ t& b" S: a { F5 F
- (reset); @# _' K: j) G
- )
6 W/ @: S" ?( A/ ]1 ] - ;; Dialog OKed, update the mline.
5 {$ q" p) f0 [ - (if (= dialog-state 1): R. S0 C' Z: E# @
- (modify_mline): q$ m9 G" i0 ]( Z1 K4 \" E# X
- )
5 E& |4 F# y1 I: \0 q# f! c9 Q3 p1 N t - ;; Edit Mline, call MLEDIT.
" y! K8 X6 y; P! z: n, | X7 Z - (if (= dialog-state 3)
' j0 N* r& J! A - (progn% ^2 B7 k2 R) V3 J V
- (modify_mline)
6 E2 Y0 U: w9 H1 Z" s( a& |6 o- C - (command "_mledit")
) N0 P* l4 t5 u& F) N% n7 G - (ddmline)! M; i6 m7 s) S* {
- )
% ]7 T; ]0 `9 P) u& Z - )
5 K7 n6 ?: u( ]1 w) B - )& a5 a0 E& u/ \ z: c! T& Z2 n# v
- ;;9 V0 O" N6 w% Y/ r4 w
- ;; Modify Xline5 E3 \1 `5 K" Q$ o0 j& |) Q
- ;;& G- t' J7 X2 _: Z" V0 j$ [
- (defun modify_xline (flag)8 W/ y, V) \( K( z# r0 q
- (modify_prop_geom)+ l1 Z5 F" x1 X* J
- (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
6 y) ?6 R# l7 @4 x/ C" V _6 l# D0 M - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
" z+ Z, t- Q+ j$ ]' X0 x - ;; Update the Root point.
7 F, ?5 I0 {& m( j. p9 r - (setq elist (subst (cons 10 (trans xline_pt1 1 0))
1 Z3 C6 {* h& Q - (assoc 10 elist)
, H# g% \0 Q6 c4 M: [! ?: A/ { - elist
6 o2 l& Q8 G- b' w& a( Y7 x - )
3 }+ V0 H6 `0 p$ x/ y - )
6 m7 P) F9 q4 p/ T2 b+ t1 K - ;;4 V$ l' z3 m1 p. Q+ c
- ;; Calculate new Direction Vector WCS
' u2 @7 { `! `6 f* H0 c, a - ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))
. [$ U f3 N4 N X7 J - ! V6 Z6 D, Z0 R9 d( v7 ^* U4 c
- (setq temp_dir (trans xline_pt2 1 0))
( N6 e+ d" q5 @: r X - (setq temp_dir_x (car temp_dir))
6 Q* @3 Y$ T5 U - (setq temp_dir_y (cadr temp_dir))
" f# q+ \$ e8 g' @3 {. t - (setq temp_dir_z (caddr temp_dir))
' r8 v. O! b+ l v" ~/ V% V - . d/ o1 e$ V# q, E) ?
- (setq temp_xline_pt1 (trans xline_pt1 1 0))
& y+ j. s4 a: m* Z - (setq temp_xline_x1 (car temp_xline_pt1))( R3 o7 S1 V5 G0 ?
- (setq temp_xline_y1 (cadr temp_xline_pt1))
. ^' e3 N, n$ [. s+ ?4 l - (setq temp_xline_z1 (caddr temp_xline_pt1))$ G3 \6 ~: e! M4 [( C X
- 2 [5 k' |9 M: e" `: I3 S
- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)- u! c4 ?% S! Y. R3 a; d1 R
- (expt (- temp_dir_y temp_xline_y1) 2)' U- A4 |% B8 |
- (expt (- temp_dir_z temp_xline_z1) 2)
% \1 ~' n; Q, B" O% E- Q - )))
7 g8 R2 I1 L3 y: s& J( c! y" N - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
! f! v v$ w7 a }5 X- O( @ - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
: F% h a. E; ?+ x% O+ m5 s - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))7 P7 K# l6 ~( ?
- (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))7 D- l' w& Q* _
- (assoc 11 elist)8 `0 `6 ^1 w& i3 q }- h2 z
- elist
' U4 o5 S G J2 H - )
! P4 \& B! E& @+ W - )
! n8 l& l; s/ H( E; R# B) ~, | - (if (= 1 flag)
( i0 E4 S5 I- l8 ~! N9 D4 ` - (entmod elist)
5 u6 m: e) V4 ?/ a) g0 Q - )) H; A$ ^0 z) h1 S' n% L; {4 q/ P
- )( m$ \% H/ m- P7 l
- ! _# z' Z- I' {& E) t, x
- (defun ddxline ()' F' r0 v) W" X; e0 [* g
- (if (= etype "XLINE")+ t0 o" a3 S9 Z. S0 D3 N
- (if (not (new_dialog "ddxline" dcl_id)) (exit))
- \* v! z+ u ?8 ~ - (if (not (new_dialog "ddray" dcl_id)) (exit))
) k5 u+ g# _+ P( K - )
& z( x" u5 Z' Q2 X# X& T - ;; Set initial tile values( H* J4 W/ e8 v7 b# W
- (set_tile_props)* s& ?- h/ o( r* a. |' y0 y: T7 [
- (set_tile_handle): t# I$ v4 n/ B# s4 h) k
- (set_tile_xline_pt1); C% Y* ]( W3 U
- ;; Convert to UCS and post Direction vector., f! H8 G$ p. w6 ~# t
- (set_tile_dirv): ^9 `) m0 d4 @. q) k
- ;; Calculate second point by adding Root Point + Direction Vector.
7 y4 |' h- I( ^% w, \0 ] - (set_tile_xline_pt2)
# k6 ]6 B8 Z, G& @ - ;; Define action for tiles
: _* o6 i0 n/ u: l4 c1 P/ r/ d4 t - (set_action_tiles)
3 d7 k6 A4 \2 U - (setq dialog-state (start_dialog))7 x' O" k. N4 N- \2 G: R
- (if (= dialog-state 0)
9 X+ W0 R2 q. {' p6 S! m - (reset)% ]- D% z. C5 S1 x2 q1 i' ^$ H
- )
4 v. }4 L( W9 L6 Y, p6 v" R - (if (= dialog-state 3). k; F; ]8 d6 |) K6 m" X* n1 f
- (progn2 W) z5 O. ~7 c$ [0 H3 d# }2 u
- (modify_xline 1)- Y4 g V% s( J* L8 ~; I
- (while (equal xline_pt2
, w$ l0 ]. d( Q: R* L - (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)
3 }4 d$ A2 g) D( d% \1 ] - (princ "The Root point cannot equal the Second point.")
( ?& m; ?# E' V - )/ o$ X/ f6 O0 y$ S; Y
- (ver_xline_pt1)
) _' z5 H# b. ]' H: \3 t - (ver_xline_pt2)% Z H W# x/ { |
- (princ)9 n8 r4 B$ N6 X4 W" B# I* C
- (ddxline)% X; p- V; x. G2 G. F8 p7 u2 x, U
- )
- S3 \4 P/ G0 [ - )! `: L) s/ u( Y1 j3 T" O8 f
- (if (= dialog-state 4)
! t8 v$ `6 u5 n: A - (progn
$ r+ E8 H$ H; l# x2 \ - (modify_xline 1)
8 u% Z( S( p8 m2 X6 d6 ` - (while (equal xline_pt1% V+ [8 ?' m5 ?4 D, D) L% U5 ]
- (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)$ g T( J: ?1 U* D" C4 A
- (princ "The Second point cannot equal the Root point.")/ O4 D" _2 T4 x$ _7 K
- )+ r- ^2 {" N4 Y; D: E: `# q7 F+ k" q
- (ver_xline_pt2)
$ l$ G' V& o- c8 H - (princ)
; J6 @7 X5 }1 m: T3 L - (ddxline)
- M# V! V3 O1 L - )/ g7 T, C5 G) F- A; z" t J
- )3 E' E7 L( |" E4 b8 q5 Q4 X
- (if (= dialog-state 1)
; `6 ]$ x9 ^2 D0 g/ |: [ - (modify_xline 1)
! w: |/ \' [$ I, u! v0 {+ ^4 L! s - )- |1 F, j0 i, ~8 [" R
- ) L1 k% j1 Q8 e: }6 q
- ;;* l, E9 @: h5 K8 X& b% e4 F
- ;; Modify ELLIPSE6 X( g: o# G) X7 J# f
- ;;% F, N" [7 R. e/ I3 E8 S5 B
- (defun modify_ellipse (). |. o' _: l- T5 |& U; u
- (modify_prop_geom)
6 ]; t$ f. b- [) } - ;; Update Ellipse Center Point value.
6 o: W3 t$ w u1 x' | - (setq pt1 (list x1 y1 z1))9 K9 q' ^, v4 e4 e4 y( }
- (tempmod pt1 10 1)
( t/ s' u8 X3 E8 y5 V' P - ;; Update Start Parameter value.
$ P' y3 z6 I- X4 g; T. a - (setq y_val (sin st_ang))5 M e: @* ~: x
- (setq x_val (* rrat (cos st_ang)))
; E/ K/ D/ a( ~1 ]3 q - (setq stparm (atan y_val x_val))
) B/ b; v2 Z/ A, m4 B# u - (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))+ M/ ~, E* k) H2 d: J9 }
- ;; Update End Parameter value. Normalize it, if it's less than h. @' \/ v4 O+ T0 a4 ]
- ;; the start parameter.
$ k/ a. b9 T+ k. w: Y0 M, N" Q3 p/ A* x3 ` - (setq y_eval (sin end_eang))
h: s, N4 e" }- } r) V( o - (setq x_eval (* rrat (cos end_eang)))
4 N# O0 H0 k1 e7 X1 G" r. `, k - (setq endparm (atan y_eval x_eval))
. ^2 Q4 z2 Q! q: u; P; ?6 L - (setq diffparm (- endparm stparm))
. P( w7 _6 m2 E3 s - ;; Epsilon of 1.0e-6 radians for checking a zero length arc.- r: H1 a4 P+ j' R" i
- ;; Since zero length arcs are not allowed - construct the full1 `5 O! |; o4 h# }
- ;; ellipse in this case.! |* [& Q& G7 h* o
- (if (<= (* diffparm diffparm) 1.0e-12)6 \* [4 C6 h6 q' ], b N* R
- (setq endparm (+ stparm (* 2 pi)))
" ~5 f* ^4 f2 ~0 D0 s - )
" W* n( @! P2 [ - (if (<= endparm stparm); O% x9 X- G! t& u$ U$ ]. U
- (setq endparm (+ endparm (* 2 pi)))! d( ?( I6 \6 z0 S d( U6 L6 k
- )* p- a; ^3 l4 I8 M) [5 f6 r
- (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))$ R$ G7 R$ n/ q& G; L
- ;; Calculate the Major Axis Vector by first calculating
, T" |. s1 D# _" o - ;; a unit vector using the old Major Radius value. Then
# Q/ K% t+ D$ ?2 B9 ?& c - ;; Multiplying that by the (possibly) new Major Radius* Y+ H- }& _+ X
- ;; value to get the new Major Axis Vector value.
9 T" \% {2 g" z/ T b4 E - (setq unitxx (/ xx old_majrad))1 B* w9 J+ F2 ?* f+ h! n
- (setq unityy (/ yy old_majrad))3 D0 y& ?4 I9 y+ ^
- (setq unitzz (/ zz old_majrad))8 D' i$ _( W0 e) u: \7 I
- (setq newvecxx (* unitxx majrad))
; R* m2 M- f2 u D# I8 {: ^ - (setq newvecyy (* unityy majrad))( {, @$ I# e" L% J
- (setq newveczz (* unitzz majrad))
; r5 p5 i; j; _; Q4 R - (setq newmajaxis (list newvecxx newvecyy newveczz))
1 Q( x% ]) |1 t - ;; Update Major Axis Vector value7 u$ |* U/ I+ _5 R9 i
- (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist )): H b8 \. w5 {+ ^1 a0 I
- ;; Update Radius Ratio value" e( t: X; A$ J; W
- (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))
: v3 ]0 S7 C# x$ C - (entmod elist)4 G9 Q- S M ?4 F
- )+ f, e; V( y* e
- " q0 m7 X+ i" G# K+ a4 z% q
- (defun ddellipse (): M! `8 c ]: ?
- (if (not (new_dialog "ddellipse" dcl_id)) (exit))! h5 P. u, G3 V6 e
- ;; Set initial tile values
2 X$ B+ K J4 J9 l& t! W - (set_tile_props)4 a% \6 D7 W: r6 @7 W
- (set_tile_handle)
0 X6 }: S- k7 Y/ G: |6 w9 L# ] - (set_tile_pt1 1)
9 b! L7 s( ^+ _. u, L! D - (ell_calc)
. r# X# h: p5 \% s8 N - ;; Define action for tiles2 X9 U5 P6 `: d O- p, r
- (set_action_tiles)' Y. q; { U( Z3 S/ X
- (setq dialog-state (start_dialog))3 S! D( H* q1 h8 N
- (if (= dialog-state 0)
' ?' a* _# p: g. G. L* p: r - (reset)
7 G$ k6 k3 q$ _ m+ g) J - )+ b, g1 _% M. m4 G) ]
- (if (= dialog-state 1)
' y, }: O s1 l! {2 P% G$ ]# V - (modify_ellipse): d& T# D+ l- N3 O, Z
- )
& H P! w/ g& F; p& K. ]2 F - (if (= dialog-state 3)
S" c' g2 J! P" @1 l - (progn9 p' w' I3 V) z, C) s0 Q9 ~2 @
- (modify_ellipse)
+ L' u! P6 {5 D# ` - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
: Y6 F- y7 w, w+ X+ O# i - (ver_pt1 1)
5 ~: E+ F' ^, E% F9 f - (ddellipse)
( L& O, ]; A! H/ U - )
9 q2 y: B6 l9 J# F - )9 h" a' x) ]" j; D# f& m: U
- ), A5 i2 f8 R& v! s9 [( U$ ^
- ;;
" t9 j* X; e% O& I5 v* e3 I - ;; Modify REGION
0 W4 k, z2 h& y( @ S$ ^ - ;;9 G$ H. f: i* I+ ]/ X! D7 ^8 w
- (defun modify_region ()! \: Q$ c6 M/ l. R
- (modify_prop_geom)- _; a6 u. f/ O; F$ ?8 k7 Y& h
- (entmod elist)
" g: j% r' e$ S0 u8 t, M- J - )3 [( c3 h8 |' @# Q' A6 }" X
0 k. ~* |0 W* [5 w5 ^0 i+ {+ S- (defun ddregion ()& {1 z8 E$ [7 m7 J; Y6 a6 a
- (if (not (new_dialog "ddregion" dcl_id)) (exit))0 |+ R$ N8 z# ?8 r* {
- ;; Set initial tile values @3 R: f/ q$ A; @, p! ~& y3 q, r
- (set_tile_props)( K5 D N J) _' F
- (set_tile_handle)1 t' o( H; P4 O# w
- ;; Define action for tiles
$ j3 h4 f9 Y0 i( j7 v8 H, Q) { - (set_action_tiles)- q7 b5 p0 ~7 L- e% S9 H& k/ d% B4 d' U
- (setq dialog-state (start_dialog))
, m5 _ F Q) b8 L - (if (= dialog-state 0)
( m+ J% A6 r( h7 j. G - (reset)
2 D9 a. f5 {3 s0 C8 O4 Z8 w) F - ), k1 H6 a0 h* u/ g1 }
- (if (= dialog-state 1)
; P! k; ^6 Z [2 ` [2 v+ q# G+ S - (modify_region)4 g! ]) J! G0 G, w
- )4 _5 O, v! L3 k/ V( k
- ), s$ E- S9 b# ]
- ;;
, U6 D" K ?2 e, S: K# J( u - ;; Modify 3DSOLID3 u: k; G3 { U" s* i- _4 k/ c% X
- ;;3 [/ W% \& |& L
- (defun modify_3dsolid ()
: r! T3 ^. M2 u1 B - (modify_prop_geom)" G9 a7 i$ t% B3 p& c4 P
- (entmod elist)* ]( l* q( o. \% U/ ~4 q2 t
- )
' _9 d- L* `# t$ G7 @
3 S- b r$ W# C/ S- (defun dd3dsolid ()' W' Z, e& o2 k8 j( G" p* g
- (if (not (new_dialog "dd3dsolid" dcl_id)) (exit))
8 H/ H6 M. W3 t$ r$ ~9 }' o - ;; Set initial tile values& T- S# B8 R# h; B* j: ^# Z4 o
- (set_tile_props)
8 C+ y& u: M! D0 u- T$ ^ - (set_tile_handle): G" J. f8 @+ K5 o$ M
- ;; Define action for tiles
- ?4 {# C3 |$ {* d - (set_action_tiles)8 [& L# l$ I3 H1 X
- (setq dialog-state (start_dialog))$ \2 @9 b9 k; _
- (if (= dialog-state 0)
$ {( p9 |8 J& `2 c4 f- {7 E - (reset)7 O' |! b$ f3 _4 @) i6 N1 y0 p
- )
! U: R% d1 C* P - (if (= dialog-state 1). }; e0 k, x* R6 ?' E
- (modify_3dsolid)6 n: C9 n U" {, S$ q
- ): K7 M8 U/ D) N
- )
( T8 c6 o- V- \ - ;;
* `6 I% V2 d. z1 X( D - ;; Modify AcDbHatch2 l7 F5 S0 {/ F. _8 B4 N
- ;;+ U* K6 }% @, z4 F
- (defun modify_hatch ()
& U# k5 ]5 c9 w2 P/ j1 Q8 b - (modify_prop_geom)4 m. U; ]1 R! { c/ g& A
- (entmod elist)
- ]1 P0 {0 ^6 m - ): Q5 [# g8 j) [+ G( _
- D, I! k; t; T% ?: } h/ M# E
- (defun ddnewhatch ()8 p% q) _$ E/ H' n/ Z, S& u
- (if (equal hatch-elist nil)
A k c3 J5 q; l - (setq hatch-elist old-elist)7 U) p( @! m" k! Z7 N! t& e
- )* V. P# |( u/ a' I6 b/ I, ?5 S
2 a. A @, J. q- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit))
3 P: K2 g) O3 g' [$ a4 N - 3 G3 R5 [+ a6 _! f+ f: R9 @. D
- ;; disable the thickness tile8 k' V+ ?' r0 b1 T |8 g: {
- (mode_tile "eb_thickness" 1): G4 Z! a- J- a F3 a
- (mode_tile "e_thickness" 1)
j% `: d/ j# D
' s' q2 f4 F# k5 m) e- (setq help_entry "modify_associative_hatch_dialog"): B. F0 ]1 H1 u" r' }
- (set_tile_props)
% V. Z! \6 L- a0 h% ~ - (set_tile_handle)
# B+ x- @. ?3 \6 j' }
* J0 L$ H2 C' v6 m- ;; Define action for tiles' X' s" |/ N% v" S6 H' U& {; f" F- P
- (set_action_tiles)
- M! [; ]1 m# t7 U! K - (action_tile "b_hatch" "(done_dialog 2)")# `" Q( W% d: O$ s/ b" E+ R4 Z
- (setq dialog-state (start_dialog))
# T; F% n7 |: [( P% [ - (cond, ^* B5 j1 v. L2 h) h
- ( (eq dialog-state 0)
& l' N7 ^2 M# p4 l4 [ - (setq old-elist hatch-elist)
+ Y9 y5 w' c. h B3 h7 g - (setq hatch-elist nil), w# Z% k; a+ E; G9 |
- (if (= (checkforlockedlayer ename) nil)! ?' S1 [, T# y8 {6 j
- (reset) c8 @+ D$ F1 J) L0 |4 R1 v) }" s
- (progn ;;; special handling for locked layer reset
/ |9 v$ i) V/ X+ O4 k - ;; unlock the layer
# ]' i% h* H8 @5 b. n9 i) O2 q - (setq layername (cdr (assoc 8 (cdr (entget ename)))))
9 r6 D- X. [5 V: R$ }, n - (command "_.-LAYER" "_Unlock" layername "")
& ^; T) z/ c: }8 f4 U - ;; reset modifiction
- f; g$ C. w+ o) F/ A" V! N - (reset)
7 @2 b8 e! ~0 M" Q2 n# H( [1 ^ - ;; lock the layer again
$ G; r& I/ @% g$ J' ^$ G$ W - (command "_.-LAYER" "_Lock" layername "")6 c! l0 Y" x8 Q) t7 K7 F
- )
- a; v1 V' a) f. n' x% ?( g) Z - )
1 C6 `- T" r' O - nil ;;; makes (ddnewhatch) return nil for Cancel
( P7 q. S8 U: V4 d( x! v2 u - )" q6 i( W# _7 ^1 _
- ( (eq dialog-state 1)
! L! n P# r0 [7 W - (setq hatch-elist nil)7 e' L2 W, @7 h
- (modify_hatch)
5 S! L( V) `7 k/ y o2 t - T ;;; makes (ddnewhatch) return T for Ok/ y" u# ~' ]8 I, p. o. j7 {! Q
- )
0 h( M3 B5 x& `: c - ( (eq dialog-state 2) ?$ O3 \' s. ?) W/ w
* N8 K; l' b$ R" ]& u6 M, W! x- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))4 o' O( [ o4 t0 ^# p# c; z! w
- 4
3 d0 \+ E. Y! ]8 S- f/ u+ i' B - )
x/ _+ z! F( u - ;;; new selected layer is on a locked layer
( u2 a$ x; `6 N# g5 G/ S# d - ;;; we can simply modify the hatch properties
& W8 I2 C0 z" `; ` - (modify_hatch)5 O Z+ ~2 f, \& \8 Z0 ?
- (progn
8 I$ U/ ?8 \$ }) b - (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))$ a" M& Q# v% U8 t( r% n
- 4
3 {% z3 p7 B3 R8 {0 `; n - ) . s7 I5 ^0 L; d( X) E- g% p
- ;;; We changed the layer previously and now the hatch lies on a locked layer./ V( ^7 L2 ~& }. S" p9 c' I0 z
- ;;; We have to unlock the layer forethat we can update the hatch properties.# o: x$ ~) N5 r7 @- c9 Y: X
- ;;; If we don't do that (entmod) fails to update to the new layer.
2 c: L9 u# R0 ]) q) P - (progn. S. n' h Q" Q6 P
- (setq layername (cdr (assoc 8 (cdr elist))))8 R3 J! g1 X ~1 {) G1 ^ E$ O
- (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer/ z8 Z- i8 n, I9 \
- (modify_hatch) ;;; update the properties6 j' G- N; W0 H N1 g' k
- (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again
w- q0 v0 G G4 Q7 s {! U - )% ]& o# L9 v# V* p& W' @3 v
- ;;; All other cases we simply update the properties
2 K; @0 H- m! p9 f$ X6 i; p! k5 k - (modify_hatch)
: K8 [* M$ n7 I2 |1 I T8 r4 m& c - )
$ d G- a. g& u1 P) `! _ - )
3 W( u% J P# {% X2 f& P& g - ) 7 `! y' ~3 V& `, b }9 w/ y+ Y9 {. `
- (if (= (checkforlockedlayer ename) nil)) i; f% ~( e, z/ }
- (command "_hatchedit" ename)% _; F, k0 C# \0 E" u& G G8 u5 O
- (alert ;|MSG111|;"The hatch object is on a locked layer.")
$ Q9 @7 m$ A. s" { G( U - )+ h5 l: ~5 z; z" ?6 I( l
- (ddmodify ename)0 [7 q4 L1 \( ^* U
- )- z# q0 J( _; x8 i6 O2 U
- )1 n( d8 E; n5 H7 D7 i$ h5 `3 i
- )
1 ?& J9 b5 Y3 @2 p9 g - ;;
1 }* r- `. B' V R8 p2 n - ;; Modify BODY
, f& y* _$ A' D( k) a - ;;' D9 M, [% U2 p3 r
- (defun modify_body ()& W4 _) ~8 J2 ]1 P# C& K* k, N: K
- (modify_prop_geom)' R. q8 Q/ J8 y) Z% _# a9 t! v
- (entmod elist)
# v# t7 d& y: ^; B$ }) { - )
. n+ \9 X4 z2 J- B; V7 K8 u+ Q8 ?3 r
. Y/ f" U/ r! k* w; _- (defun ddbody ()/ `4 \, g6 C/ D
- (if (not (new_dialog "ddbody" dcl_id)) (exit))/ |' O/ V' `" O5 z6 f6 _
- ;; Set initial tile values8 m8 W* E1 J" ^
- (set_tile_props)
3 k2 d3 d( Y: O; l7 a* W - (set_tile_handle)4 U4 k6 M! O5 G8 Q6 R) _
- ;; Define action for tiles
7 g* z1 L i4 g! f* E7 ^2 Y7 p - (set_action_tiles)% i1 z; B. h+ \9 S
- (setq dialog-state (start_dialog))! M2 `% D8 P/ M) W5 M: Z4 q
- (if (= dialog-state 0)% f! |- F! S o$ [+ J3 v/ w
- (reset)
/ I/ x2 F" L$ `7 o - )/ g8 a- _" H2 `% A( z
- (if (= dialog-state 1)% d7 y3 G4 q- S, U4 x
- (modify_body)
' Q' |9 u' h4 r$ Y L5 F$ ? - )9 L. t# J0 H, t5 N1 Y7 s
- )
" p; M w4 ~* \, ^6 K% @ - ;;. v4 x( ~+ M" g* V5 }4 [8 \4 _$ @( Y
- ;; Modify CIRCLE- ^& y# K% m1 _- \# N0 O
- ;;
( R$ y' `: Z- i7 c& S2 h! m - (defun modify_circle ()7 D) J9 ~4 l! N! U" n$ @
- (modify_properties)6 x p( e8 h; \) I7 N- j3 }
- (setq pt1 (list x1 y1 z1))0 D; @, R4 V" ]$ Q9 e- T
- (tempmod pt1 10 1)) n" [0 I! R ~# Y
- (tempmod radius 40 nil)
5 A$ M! d( k# _) ? - (entmod elist)
, N5 C9 O- Z% [" E - )9 a; b8 `. B% K. l
- 9 _/ v& T& L9 Q* R2 N7 A( g! L
- (defun ddcircle ()- W1 D! ~3 _( _2 ?% k
- (if (not (new_dialog "ddcircle" dcl_id)) (exit))
4 a- a3 ^/ g% r$ L# S' E+ S% o - ;; Set initial tile values
' e, m1 q* }* `& C2 N - (set_tile_props). \2 W" W/ K- m7 T
- (set_tile_handle)
4 Z7 l- v0 G; X' ^, X7 O - (set_tile_pt1 1)+ b9 o x7 l: @3 \9 Z. r
- (set_tile_rad)- \# O: s# i6 }, y* { G; j& q) I
- (cir_calc)
( C/ U& \1 F- ~7 ]* y e - ;; Define action for tiles
& q8 Q: D. m& r0 R; q - (set_action_tiles): L) m/ L9 w8 ~" x. \$ E
- (set_tile_pt1 1)
3 A2 t- r9 K5 P& K$ R: i - (setq dialog-state (start_dialog))
- c4 A1 N% j x2 f% G% M - (if (= dialog-state 0)8 d4 @$ p9 l6 q( v" R" U
- (reset) T) v6 e5 V" R4 K5 t$ t
- )/ w+ W u7 K" y7 \ P4 |8 ]
- (if (= dialog-state 1)/ [- p$ ]3 C/ ~& R0 X+ X R* Z
- (modify_circle)
; q( J, H6 ~8 C8 a0 k+ u6 M# c - )0 d% A: @: Y9 O
- (if (= dialog-state 3) @5 ^' M, J: t4 @$ R
- (progn
$ T% J. A8 C* b2 {1 x% u5 D - (modify_circle)
& U; S# U3 S5 E* |1 r - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
# v$ w8 {: g5 Z/ L4 [ - (ver_pt1 1)$ B5 } e+ o" i% e! {& O& y
- (ddcircle)
4 n8 @6 }) [4 d/ O - )0 E d, H4 S* i* |% F% {- d
- )" l1 p& ~ T+ C; h& i" T
- )5 T8 S4 a$ _' E* g4 M7 {, r! |
- ;;
4 Z6 {( r" Z7 x7 k k+ ^* H( b - ;; Modify ARC
0 d1 U5 W6 L- f+ D - ;;
& q- ]' z! ^0 H+ W" j1 D - (defun modify_arc ()& u5 a) z6 e: R8 n# ]- w
- (modify_properties)- q/ M2 M4 u- @8 F- H
- (setq pt1 (list x1 y1 z1))4 ~( i3 Y2 |- V
- (tempmod pt1 10 1)0 n7 D+ A2 I: X2 [5 G$ f
- (tempmod radius 40 nil)$ z& C r k/ f
- (tempmod st_ang 50 nil)
. x2 \$ z9 R4 T" x - (tempmod end_ang 51 nil)
. S% u7 `* |9 Z3 V - (entmod elist)
3 c; b" W, `7 o; W - )
( n4 X9 Y2 k8 U8 H - (defun ddarc (). a3 Y: b1 G8 j9 x/ V) \+ R
- (if (not (new_dialog "ddarc" dcl_id)) (exit))
# h8 Z) ^1 M/ f Q7 W; \5 x2 p: F - ;; Set initial tile values6 c6 \$ k. M7 l, w2 a. y
- (set_tile_props)
: |: b6 `5 W* Q - (set_tile_handle)
: N% G0 } o# C9 H) P& F7 h) ` - (set_tile_pt1 1)0 x6 {# t* J" |
- (set_tile_rad)
* h% P1 Q( }6 _: Q8 S - (set_tile_stang)5 H, T7 L' r5 g x
- (set_tile_endang)
7 a* L( x( K" I- u2 g - (arc_calc)8 O: ~0 p2 w3 }) `" W
- ;; Define action for tiles
7 V' |7 f' N* a3 X7 H0 S) ]/ n, x - (set_action_tiles)# s6 p e, [8 F* X
- (setq dialog-state (start_dialog))
; @& f: ]! L3 A1 U( L - (if (= dialog-state 0)
' F3 C/ m% X8 g - (reset)3 S$ _2 `1 I- l
- )
$ W( o0 S4 a7 ~# U - (if (= dialog-state 1)
/ p( J0 R6 t+ w3 ]$ C6 k$ o - (modify_arc)
+ U3 T1 u* U# |/ L- H - )
# K7 O: S0 x& @) w$ `) c+ F - (if (= dialog-state 3): F; n I1 P5 F! ^
- (progn
. q6 g9 S9 ]5 ] ^3 G* N4 E - (modify_arc)
$ b, {' N6 v% o. q( _ - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))9 h4 }) `. @/ s$ d2 u
- (ver_pt1 1)3 l3 A. o/ I; ]( Z
- (ddarc)) v9 U P6 w. W0 |4 m# b2 L8 a
- )
6 q c! q$ ?8 n5 L8 k - )9 E; j/ C" `2 H4 h* }
- )
2 ^! y1 M( ~. W" \. R. V0 `2 ~6 o - ;;4 q/ Q$ b- \2 }& q; V; w3 F
- ;; Modify SOLID or TRACE
+ F, d1 q; G% c6 i) N - ;; Note the Z value of the object is determined by the Z value of the fourth% U2 ~1 n; M6 D1 A l( d7 _
- ;; point - code 13. Changing the point values of a solid or trace from a UCS
0 c1 \; F4 ]- k0 \& s( D - ;; that is nonplanar to the UCS the object was created may confuse the user.( w, _( g. P C( |) ~* v
- (defun modify_solid ()
( {4 D% m8 a4 b: W - (modify_properties)) z% {+ m2 d( a0 A, h
- (setq pt1 (list x1 y1 z4)), {8 r% Y. C; V% X2 j4 r m
- (setq pt2 (list x2 y2 z4))
; R( i' P: K( N$ l3 F - (setq pt3 (list x3 y3 z4))
! n8 O2 n6 T! Y1 o2 `# R- n - (setq pt4 (list x4 y4 z4)). J) o' o: w: y
- (tempmod pt1 10 1)
8 `* m% T. C* O- `1 t6 q2 X X - (tempmod pt2 11 1)$ B2 f1 Q% u' C6 u& J1 P# ]
- (tempmod pt3 12 1)7 o. g3 C4 u% ?5 X: J% d8 p% _
- (tempmod pt4 13 1); d* F" _. b4 [, r- t1 V
- (entmod elist)
! J, r7 m$ R2 N% P3 f - ), i) K# T$ c+ A- T
- , o% B' k/ h1 |, y( \0 b; b0 u8 I" [
- (defun ddsolid ()
# O& z* ]# l0 Q: U - (if (= etype "SOLID")
# y& Y$ j5 C$ G8 O) N$ I1 m7 }' ? - (if (not (new_dialog "ddsolid" dcl_id)) (exit))
7 C) T! j3 ]2 S/ g: j$ n# w - (if (not (new_dialog "ddtrace" dcl_id)) (exit))
0 s* y" o* T$ Y& {' m+ @$ @ - )
7 y( x5 k% r r - ;; Set initial tile values& M4 Q) h% @/ s
- (set_tile_props)4 x, z4 s$ b; t* P# m/ \% m
- (set_tile_handle). g- ]! p; k b( C4 _
- (set_tile_pt1 1): i' ^ `- q+ Q! s# e, k3 k1 D0 V
- (set_tile_pt2 1)" G& S) p. n" {* [% c; ^2 K- k( J( ?
- (set_tile_pt3 1)
* ]. L( a8 R0 G) b: t& C' m - (set_tile_pt4 1)
- U1 X) o' b1 Y4 M% l3 [$ S - ;; Define action for tiles
* I' i. X q, D% M. l ? ~ - (set_action_tiles)& n/ T: i) E! q' X2 X8 \2 N
- (setq dialog-state (start_dialog))& S8 D- T8 V8 C* n# ~1 K5 }
- (if (= dialog-state 0)
2 ^; [- X% T$ A/ q - (reset)) g2 m* ?; D$ g q2 n+ }
- ); Q4 j, @- [5 G, f" ]
- (if (= dialog-state 1): I; J: v& C7 N* M2 u+ d# b& ?. ~
- (modify_solid)/ x& n* y) |/ q0 W# X- u
- )
! b. o( |: h! m( s6 L* n8 c - (if (= dialog-state 3)! O" h0 |# S& x. {& E
- (progn! v- D8 b" C( [- p: M
- (modify_solid)
2 [! m8 L/ R) n) r5 h- V - (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))' f+ k, Q/ X5 F5 J) N6 d, o( T9 F
- (ver_pt1 1)7 d7 q C0 M+ w8 F2 o: `
- (ddsolid)$ M- h5 q) f& d. \7 P
- )
9 K; J% i. {; R, A - )3 h$ M ?9 [) G1 o8 a
- (if (= dialog-state 4)8 a1 s0 N" k% @: W; Y9 [* @; C1 X, N
- (progn
) f4 s* u0 N( G0 K, D. B7 O# m6 q - (modify_solid)
) R$ @% t7 F* Q - (entmod elist): J& H, P; ~% H$ M9 C
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
7 d6 b( y# Z8 }' ^8 Q% v - (ver_pt2 1)
3 d ?- Y/ d, u( g* o- w0 ? - (ddsolid)# K% f# p+ d" x/ u: d
- )
2 f: M* H2 s% K5 H9 M5 C# s - )
$ h9 A& A# S E9 l# Q' ~% o - (if (= dialog-state 5); h9 m4 @6 q( V* T3 `2 M
- (progn; h) H& G* q/ d; d2 k7 ]! a
- (modify_solid)
6 x1 w; r/ z7 F8 M+ Z* D - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))# d/ u. M5 ~ ~5 v1 V
- (ver_pt3 1)% t: u+ K, H9 _: p! D% Z
- (ddsolid)% A Q; E! N! y9 J7 A. m% g0 w
- )
4 B7 \* D+ n3 f( n* a8 c9 t. E6 F - )
( y" u' H( y* Q- g7 } - (if (= dialog-state 6)
/ T# b' q" D7 e4 O( g; T - (progn
% i* t9 v' f z: h9 f% F0 E. @2 C$ r - (modify_solid)7 M" x( `2 R3 k/ l
- (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))! v* j# u- x6 G# D1 Z3 |. `( ^3 k
- (ver_pt4 1)
4 ~" F9 d3 E1 S. t( T - (ddsolid)
# J. @) x( ~- G( W: k# c5 h r - )
; n% V3 o. w! ?! H - )
8 x$ f4 }1 R5 G$ N7 F - )
3 z) r. ^' N# V& p - ;;
1 I. B% Q' B/ M. n - ;; Modify 3DFACE% q8 ~2 R: D+ v& x: F* Z: B
- ;;0 y/ N1 s- L' n+ M; h& ?
- ;; Check visibility of edges
2 d0 e! U, l7 D. B- w - ;;
7 L1 }/ r% T5 X- ]) Y - (defun edgetest (/ bit1 bit2 bit3 bit4)
. g0 L, {1 M5 c" A4 N, p k - (if (= edge1 "1") (setq bit1 0) (setq bit1 1))
* A/ W* G+ m; g, ~- o3 z; n9 y - (if (= edge2 "1") (setq bit2 0) (setq bit2 2))
+ h9 U* r: u* p1 U8 G - (if (= edge3 "1") (setq bit3 0) (setq bit3 4))
" w1 x( @6 n: m2 K+ _ - (if (= edge4 "1") (setq bit4 0) (setq bit4 8))/ O; F! d3 X8 C# H
- (+ bit1 bit2 bit3 bit4)
2 T( F: r+ D- `* \: _ - )/ U, ^ j# X4 j% ~3 {
9 [. ]; |" _8 F% K1 F- (defun modify_3dface (), J6 F- @) L z7 n
- (modify_properties)
& h' w. a5 c" d* S6 i& p: F2 r) i( M - (setq pt1 (list x1 y1 z1)), u* w2 d& X" C
- (setq pt2 (list x2 y2 z2))" \5 O/ O5 q$ b* C4 f e9 Z$ L' h
- (setq pt3 (list x3 y3 z3))1 C' ^0 O& Y9 O C; B2 q& `
- (setq pt4 (list x4 y4 z4))
* }5 A2 U: d% d) [' r! H% c - (tempmod pt1 10 0)
: P: H% @ f# t2 e" c! y - (tempmod pt2 11 0)
4 {5 F8 v3 h% ~ - (tempmod pt3 12 0)7 Q% g6 q/ }3 C2 M" m
- (tempmod pt4 13 0)2 {/ X* p* o/ Q4 q3 j
- (tempmod (edgetest) 70 nil)% H! H6 J" @! L. n9 Q& V @
- (entmod elist)
. Q$ G7 Y% O9 h$ |1 F - )" T, i2 I- S! J9 E
9 g5 t1 N9 S& N$ B# G- (defun dd3dface (): V, P- n: b3 z; n
- (if (not (new_dialog "dd3dface" dcl_id)) (exit))
* L7 B4 C8 M% P a1 m! f$ c - (set_tile_props)3 p! v9 s+ G3 o. P6 A! ?2 _
- (set_tile_handle)
+ B0 s; l; T( D0 o* z; } - (set_tile_pt1 0)
2 M7 M$ H" s' l, s - (set_tile_pt2 0)
; H, ~0 _+ H$ @6 y* v' t - (set_tile_pt3 0)/ S! h" X1 `8 D" ?
- (set_tile_pt4 0)
: q: q/ b6 G: a$ a% o - (set_tile_edges)
9 d3 ~$ _% f1 Z0 j - ;; Define action for tiles
2 o. S# p& v" ~( B, h4 R - (set_action_tiles)2 ~+ b( g7 G5 f- [$ b& s9 d
- (setq dialog-state (start_dialog))
0 w% x6 S: a2 y$ v - (if (= dialog-state 0)
$ U+ e) Z2 A, \ - (reset)$ Y0 T0 I b+ b
- ): p, u0 M2 N b* a+ n% D, i
- (if (= dialog-state 1)5 |- q) Q. K3 a7 P9 k" l3 {" L
- (modify_3dface)9 c* Z" n$ c* I( S8 Z5 E& T) b
- )
0 \' ?2 e* p5 T - (if (= dialog-state 3)
) J4 x8 L% z# \; D: ?8 w - (progn" A0 A7 {) D# \1 ]7 q- r" ]
- (modify_3dface)) e3 h }0 p: x4 T1 d% a1 }
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))
" B$ N$ `( a+ _1 i - (ver_pt1 0); Z/ {/ |: S x9 s7 `, q7 Q
- (dd3dface)% F0 `% c! w/ @. E
- )
4 y" @0 k. q( X. U - )
$ W2 y1 a5 d4 W, W" r( ~. w; n - (if (= dialog-state 4)/ C7 j N4 a- Z) T) x
- (progn* `" A3 q$ @% Z' S( }
- (modify_3dface)$ F' u" d, ~2 y9 O# K# E
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))% I! P" d* m2 m1 B
- (ver_pt2 0)
+ w q& B5 d+ z6 ~0 v/ |$ G - (dd3dface)
0 D0 R1 T2 b9 V7 y - )
0 x7 y7 k# `6 Q, [" P2 d# I& | - ). W( a/ Y9 g; Z, n4 S4 x
- (if (= dialog-state 5)4 l; H) E1 z0 }' {8 e: n3 X1 v* P
- (progn) i% f* e3 ^) y7 J, {$ v0 S
- (modify_3dface)
2 w+ y, E' U4 U9 D) y f - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))$ ]+ e! @6 \- o: d# }2 o
- (ver_pt3 0)
% V$ ~# ]+ A: o% H1 M2 I - (dd3dface)
% k0 @3 m* i+ _* T, M7 _0 d- c - )
4 m+ K" t2 o) M - )+ n. {9 M1 B8 T' I3 T
- (if (= dialog-state 6)9 S- U; X; D. N; c
- (progn, u- m* [- E2 `1 t" @/ i' E% t
- (modify_3dface)
# o1 P0 {# P' X! ?; Q# T - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))5 c" `7 N+ |* d
- (ver_pt4 0)% c, \/ ?2 B% _8 z# W' n
- (dd3dface)
Q6 w% I( Y6 T% b% F2 U# L) ^& X - )
2 K" p9 u4 l& e" V1 g8 p - )
3 Q0 y+ o0 J# E' R - )) x( K# Z9 S$ s, v2 l/ V# j" F
- 0 B v9 a. b. C" l9 ?6 n; c3 i
- ;;
* q6 [ N1 ?5 R - ;; Image functions! x! F4 P% x) F8 G( S& J5 B8 H2 G
- ;;- b1 E9 F9 w' p, _5 }! j9 K7 i
- (defun image_scale (/ upixel en n userscale temp)
% x+ f' O6 n! l9 X - ;; Calculate the size of an image pixel in AutoCAD units
7 S% O* `7 p) P0 g7 ]+ H$ m- M - (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))! T7 _% y# J, K* d, z: @
- 4 ^1 ~1 t: f! d; y" M0 X" {
- ;; Retrieve the user scale
8 K; ~1 \& a) g4 b* s, Q# k - (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))
* ^) N/ I- n4 o; Y1 s0 {9 F
# E9 }! W1 I4 A" f: Y- ;; Next, extract the image units and pixel resolution4 ?9 d- L4 k% t P* G( l0 A$ m
- (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))) U1 u# u G$ a
- (setq image:scale (* (cadr (assoc 13 elist)) upixel))8 M" Q0 w3 a& W1 v# Q
- (progn, ^( [ m1 Y0 |2 e7 b
- ;; Convert the user scale to the proper word
5 p* T* p+ ]: C$ B4 V3 b - (setq n (cdr (assoc 72 en)))8 S$ M) |* u# {# v. ^& b
- (setq temp (getvar "LUNITS")); l* v) m( e( k5 d9 n
- (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5))5 Q; T, O: c- e5 _& `8 ^7 i, T
- (if (= n 1) (setq userscale "Millimeter"))
" y# b z/ W* f, U9 w - (if (= n 2) (setq userscale "Centimeter"))
9 w, ?, ^3 H G9 J h/ v; q - (if (= n 3) (setq userscale "Meter"))
9 L8 ?( x. w2 q( U. {) I - (if (= n 4) (setq userscale "Kilometer"))
/ d3 k, P4 i9 L3 ]( z9 e - (if (= n 5) (setq userscale "Inch"))
" N8 v# P4 Q1 L) b/ _: l$ \ - (if (= n 6) (setq userscale "Foot")): J/ s1 z0 X% U
- (if (= n 7) (setq userscale "Yard"))$ Y+ c" T. {6 H& I& ^: l5 d
- (if (= n 8) (setq userscale "Mile"))
" j& o' i: K6 w9 Y/ T- a4 G2 U p - (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))6 _& U8 L3 Q8 h! A# ?9 h# a; @
- ); n& S N5 Y) t N7 Y6 }7 l8 C5 R
- )
0 D* b2 U2 Z, M, g( g6 L, v/ B - )" `$ K. j: g" G. D$ ^' t/ `0 s3 Q
. r X! C( {4 T- ;;
9 H9 \7 \% M( w6 q" D - ;; Scale factors for block insertions& h! j2 i* I3 Q& N: L
- ;;! V% `6 ^7 A8 r
- (defun image_set_tile_scale (/ temp)
) U' G0 W# w& L- Z& }* k) Y- J - (setq temp (getvar "LUNITS"))
* q# | R: r }7 z5 m' ] - (setvar "LUNITS" 2)5 A+ C8 H% A# Y( q
- (set_tile "xscale" (ai_rtos (* image:scale image:mult)))
: N$ }7 b. |. A; h2 R$ \1 N* ^ - (set_tile "wid" (ai_rtos (* image:width image:mult)))+ _: ]0 p% ^% N; E
- (set_tile "hght" (ai_rtos (* image:height image:mult)))% r4 O+ F t% m* Q0 ]! l/ T
- (setvar "LUNITS" temp)( j6 ~; ~5 g! ?+ |0 A
- )% p. x/ J) g3 z7 n5 ^, R7 x
, u- F5 w+ ^ @$ G8 G/ J- ;;7 C! I B% X8 |7 F! C
- ;; Set the scale, width and height values appropriately.# }, {' X5 X, a" z
- ;; Y3 E x0 r; z: K8 a" |' {
- (defun image_update (field value / orig_value new_value mult). y! e) v/ Y8 x. b& i
- (if (= field "xscale")8 o5 e2 X4 G; }7 _
- (setq orig_value image:scale)
: }( L* X% e! ^6 K( V/ z. v - )7 K' E0 L x" N3 c
- (if (= field "wid")
+ f5 p( c$ p/ C+ w/ T' m - (setq orig_value image:width)" \' u: G% M3 T, h1 G
- )
6 f! X2 D$ v) u2 J1 ?4 p9 Z! }& M# H - (if (= field "hght")
8 L1 F2 a' ~6 o: B4 r$ e - (setq orig_value image:height)' |1 @; y, Y) {8 E, [
- )' J! u! y/ M: x' v% I* N+ ]
- (setq new_value (verify_d field value (* image:mult orig_value)))7 |& D0 P u$ r; C8 i: @; h: K2 |
- (if (/= new_value old_value): E2 E7 a. a {: }
- ;; Make sure the user has entered a sufficiently large value5 J) }5 X" [: R& ^6 W4 t
- (if new_value
f: N3 H* o @ - (progn0 w" [# O% E% O0 z; z( H; Q+ J
- (if (< new_value 1e-8)
6 {+ i, g2 a3 f- \; b4 S0 p& D - (setq mult image:mult)
6 W$ ^/ ?, {/ h+ Y6 e' D1 N - (setq mult (/ new_value orig_value))
! b/ B6 y9 w1 o - )
. ]' l$ A6 Y: |! V: D1 k' ^ - (setq image:mult mult)3 r- V! a2 n- Y+ d, u+ {
- (image_set_tile_scale)
) C: y2 F9 }# r# C - )
/ D* B" r( S) Y. l. \5 K2 T9 n$ ]1 g" b - )% t2 V2 f+ ], S0 k: B/ Z5 x8 v
- )& I0 {0 ?8 t8 `" j% I- }7 J1 W- U; c* j
- )
; v% P) u: Y) Y; R/ E! g# @ - 7 E% V c$ @5 i# K% R
- (defun image_disp_opt (bit)) b, n+ S; i1 a/ _9 ]
- (setq image:options (Boole 6 image:options bit))
! @/ H5 e' C1 p# W2 k - )7 r% c3 n1 P' }8 _% E
- . {: `( ]+ p3 y! K$ t
- (defun image_modify ()
* B$ {, F! T" f9 k% I4 x - (modify_properties)0 P' t. p5 H& }0 w8 j8 f, B$ m
- (setq pt1 (list x1 y1 z1))
" A! T0 x! c- ?# a( w/ d - (tempmod pt1 10 0)/ S! X" E, D" c* u8 Z% t: e. q( C
- (entmod elist)6 V8 t- ~3 t) `
- ) p/ \ f; O |0 O2 m- X
# E- [5 E% E! s; |0 ?9 F9 c, V- (defun image_clean_variables ()
" K" E+ P$ ?/ h& x - ;; Clean up global variables used here
! H# J5 m! j* q" s - (setq image:scale nil)
8 x& G( e1 y" p6 o9 V) x - (setq image:angle nil): D# G; v# ?9 f% D
- (setq image:width nil)3 A. X4 e, p$ e* r
- (setq image:height nil)
0 R; U" o$ F2 m% _ - (setq image:options nil)
* i$ O( j# ^1 V! O- c - (setq image:oname nil)& B4 Z8 r P9 h7 x
- (setq image:olist nil)
6 S% P9 k: ^- \0 Z - (setq image:mult nil)
* a' b; j3 ]$ t" L3 ]# k - (setq st_ang nil)% u' o h3 V/ l: e9 t( e
- )
! q$ P$ Y2 G- g% G# G% L8 |2 r - 4 M% r* L8 e$ [
- (defun image_scale_vector (v1 value)$ v* I: q) G8 ^* Q0 {% f: r
- (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))
; v C. B( M4 x0 V - ); c d9 E" v# Y9 _
4 n* C) }, I, J- (defun image_cross_product (v1 v2 / vx vy vz)
8 A) c a7 j0 X. D+ m2 |* D; { - (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1)))) h/ s: ?3 o4 E3 V. \
- (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))) [8 x. n5 u5 k+ b" i
- (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))
) Y( l, _7 X! I, Y# ?4 } - (list vx vy vz)9 y/ x! d6 i: T7 i, l0 r' F
- )
- V3 ?" W7 v' S2 q - , V5 v+ S3 R# @
- (defun image_dot_product (v1 v2)6 W: c- H! _; @5 p
- (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2))): b% ^( Z3 G- h' N5 T8 P
- )
" I% V" e2 @* I6 E3 W+ ?: t
/ O) j, B! w: o- (defun image_add_vector (v1 v2)
" T: f% I' A1 `3 q) D1 h0 ?2 b - (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))( L# ]+ E. _# r9 `0 S- Q q
- )3 f% |6 n1 B! m; ]
- & H+ g$ B4 S) B% C
- (defun image_subtract_vector (v1 v2)7 ]: j ^, X1 ]" n3 G+ S9 M% k
- (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2)))4 Y* G1 H' i% p: v" Q% c: E* W( x& Q
- ): b2 N& d1 H% l; h) ]
* y @% Q: J: K; z! E- (defun image_normalize_vector (v1)
: n; ]8 W3 s& [ - (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))9 m6 I* w) T+ q ^
- )
! x2 d: r' O$ a5 B. G/ Y
7 X+ p' q( i$ S+ u; o- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)
, N3 w+ p- C* U9 N% j' z1 ]- [ - ;; Normalize the axis
( l: W7 W" S" l/ w9 m- y4 m - (setq axis (image_normalize_vector axis))9 b" D& F, Z) M% ]3 `: F* t j
- (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))
' y! X) C8 }1 q1 j% I3 P" f - (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))
9 P; I$ N, v4 ` - (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane))# O" {& T3 {# d$ b; f$ |
- (setq in_rot_plane
$ I5 \. _& v- J" _3 r! g, ^7 T, P - (image_add_vector
' @" T7 }1 A; R* ]1 J- z1 Q: J/ u/ z# ` - (image_scale_vector axis_x_in_rot_plane (cos angle))
. P y* Q- Z% R* h; C8 T - (image_scale_vector axis_y_in_rot_plane (sin angle))8 z) Q) r2 O/ V# c/ }
- )
- y6 C# f7 h. [" M& z& }0 U' z7 ] - )
7 a' G+ {+ ^" u- X( U7 ` - (image_add_vector along_axis in_rot_plane)+ ^) e" a+ w6 ^
- )
- b4 ]( Z# ^, T
/ w" M* D4 r5 X& W% v- ;;5 {3 r, \7 j* X! @! I
- ;; Calculate current rotation angle if appropriate.
1 v6 ^3 x. T: b; l - ;; If not, grey out the rotation field.
) \1 ]0 r! V7 w - ;;
6 @% T& e& W' ~& [, t, O - (defun image_rotation (/ normal rlength zlength sqrt_tolerance)
I9 s% X+ V- C - ;; Determine if image normal is codirectional with
& ?# }% J9 @! e8 k - ;; the current UCS Z-vector.# y3 x8 e1 x% S0 e) o6 U
- ;;
* ^4 U& q+ ^$ }# q8 u - (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))
/ C8 k1 P% F; ~ - (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))
9 T+ O2 ~" K( l/ z4 y6 G6 B: v - (setq zlength (* (last normal) (last normal)))! x3 Z. E( s) u5 A) G% s% W# E) M X
- ;; Note that the value .0001 in the radians is approximately 0.0057 degrees.
" u! j; L L1 c) n M: { - ;;
2 B+ U+ X) w. n+ w4 J5 W - ;; cos(.0001)^2
* |' R: t, X& ~; R- i. Z. J! ]3 A - ;; Tolerance = --------------& O* T8 n9 O/ W
- ;; sin(.0001)^2
9 B2 n- j2 I/ |& ? - ;;1 B% a4 l$ U, W7 V' p
- (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))! d6 c. Q* R) z3 k+ @
- (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))
% Y$ i4 Q& d3 I4 }6 I - (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))
4 [, D. \4 C) }, ?+ Z6 `. c - (progn" X3 @' I( P" R- h& h
- (mode_tile "st_ang" 1)8 c6 y6 l' V& Z5 p
- (setq image:angle 0)
P7 n. _: }1 ?/ u* j* Q - )4 j9 P/ G2 @, u4 |7 j
- ). z; y8 a2 ?& [( `
- )
. F4 B [+ @! ^$ J' S
) H6 I0 e% h5 W8 t8 k7 P- ;;6 s) K7 S, K3 }9 u. |( P- \) _& c
- ;; Modify Image
2 c( N2 V8 B5 B+ B( a1 G - ;;
! M7 f* |5 m" Y, ^0 P - (defun modify_image (/ u_vector v_vector z_vector)% r8 V& G, x U }4 d# E
- (modify_properties)5 k/ k! ^5 J+ d; i! M4 A" U$ p4 `
- (setq pt1 (list x1 y1 z1)). W; s! Z8 J) X' D9 l' ^
- (tempmod pt1 10 0)
3 H- Z, |* Y" ~ j) H+ J - ;; Make display option changes to image# u% K8 N) i9 A( M- H. Y
- (emod image:options 70)7 C% K' V/ J( G- f
- ;; Get the u and v vectors' b8 O5 K* c, f/ x1 x& ~
- (setq u_vector (cdr (assoc 11 elist)))+ i' T! }( Q6 } |: w- P- g
- (setq v_vector (cdr (assoc 12 elist)))
( H6 U" m0 Q7 [7 O9 c4 `4 W) |) s, T - 7 ]9 Y2 C5 n6 j& j; E8 n
- ;; Make scale changes to the vectors
S W7 r5 g8 H8 W e Y$ n: Q* { - (if (/= image:mult 1)
- m) I' y8 u/ f - (progn8 ~: B3 p1 h# K$ U* L/ S* a
- (setq u_vector (image_scale_vector u_vector image:mult))! _0 M1 k- {9 e. d' e0 Q
- (setq v_vector (image_scale_vector v_vector image:mult))- a6 B3 [7 n; U6 [
- )/ B; n' b! ~- R* h" J+ e
- )
3 D" K' k, M2 ]+ f - ;; Rotate the vectors
4 _. q+ B& J3 K: v; v& L" n4 Y$ y, E - (setq st_ang (- st_ang image:angle))
1 x/ P4 o9 w3 S6 c2 U - (if (/= st_ang 0)! j+ P j- D$ @$ c3 i/ X
- (progn
* Z& |( s( U+ K, A6 N - (setq z_vector
- L5 r* h; t- C& U7 [ - (image_cross_product
4 [7 Z) K# h* Q' ^0 d - (image_normalize_vector u_vector)
3 r9 ^2 n! Y, @, O& w4 |* N - (image_normalize_vector v_vector)
2 ]4 R+ `. d# q6 } - ); H- |7 E& a; d( _. d
- )
- K4 ~4 `; M* ]. `/ }/ L - (setq u_vector (image_rotate_vector u_vector st_ang z_vector))" ?$ @. B2 X5 n1 \! Y
- (setq v_vector (image_rotate_vector v_vector st_ang z_vector))* C7 H! }, E/ |5 {7 H
- )7 | G* P- p* A v! _- f9 ^
- )
4 f. y. M. K* q" m0 v4 A- L+ V* z8 R: F9 u h - (emod u_vector 11)
D X! B1 c! _/ X: M - (emod v_vector 12)
0 s0 s! h$ e6 @ - (entmod elist)3 x- W7 r0 S6 j1 A& V( [2 W
- )! A) p. e2 G* \6 `7 C4 v( _% g
4 p" C. U' a& G: ~1 a5 s9 d' Z& b' K- ;;+ z' H9 \$ F# p$ k }
- ;; Run imageadjust on given entity, working around possible
8 @1 j' B) G: ^2 W# I0 u - ;; re-entrancy problems1 A8 Y6 l8 D2 H$ q% p( n# @3 l
- ;;; u' v x5 S5 x: a
- (defun image_adjust (ename)
- v3 N6 l* G# ^6 {- E' p - (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...
( `- {1 A, E2 g, I2 L3 o - (imageadjust ename)
! F. E* U# r6 f5 W4 z, X, z* K' T - )- ~1 D( x; [, Q- N2 t
- 4 C0 j0 O+ _1 M K
- (defun ddimage ()2 z7 M5 j, q3 |. `7 E
- (if (not (new_dialog "ddimage" dcl_id)) (exit)). I* }2 F3 s M2 N3 r, Q, w8 C
/ ~, A$ n5 A, Q' Y+ B! C- ;; Grey out the thickness field.
9 Q8 i' q7 c1 [4 E" D - (mode_tile "b_thickness" 1)
+ t. C1 y5 {$ M% o D1 } - (mode_tile "eb_thickness" 1)
& E8 F; e+ R' }( M5 ^3 i9 h4 ? - 6 ~) _. x( ?8 e- @% @
- ;; Get the associated def object.9 Q, u0 X) E& F- `% f
- (setq image:oname (cdr (assoc 340 elist)))
2 g8 O! n* O& H: X( X" T& j% I - (setq image:olist (entget image:oname))6 J, q$ W% B5 t P# K) h
- ( l/ \' g U' m7 u m
- ;; Set initial tile values! k) Z% [' V9 n. H# ?/ T# G# V
- (set_tile_props) ]6 S! ]* q3 w$ l' f( y& x
- (set_tile_handle)
- X B& Y; S, |+ V - (set_tile_pt1 0)7 b( R' C+ s6 Q) M3 B
- (setq image:scale (image_scale))
! f5 \. X2 Q: g" k - (setq st_ang (image_rotation))* C" f% d" W. t/ k; P0 m0 {
- (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))2 k( o \; |) c2 p7 \7 c
- (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))/ \# G; L2 ~7 F- u
- (setq image:options (cdr (assoc 70 elist)))& T3 \/ R6 a3 t0 n8 [1 p
- " d4 p5 {" b4 `- b5 A+ t
- ;; Record the last multiplier for use in image_update function
% ^& W6 `2 @% E ]: v0 r - (setq image:mult 1) r( H3 u4 ] s: u% {, _! E
1 o* V. d9 u& V' ^- ;; Retrieve the image name
* {+ Y2 O7 s3 ^8 k- s1 I - (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))
' h! |$ E0 a; Q7 I8 _& E) } - (setq flag 0)
3 n, z `0 q4 q5 S" v - (foreach n fn
1 _ y2 N* K: g6 A# h+ c M - (if (= flag 1)8 O3 u7 W: k* H& R$ I2 A4 Z# R
- (progn# D/ C3 S" H3 |8 s4 x' o
- ;; Display the image name5 Q G+ A. Q4 _7 x' G# R
- (set_tile "image_name" (cdr n))
' p/ D9 C# s; z - (setq flag 2)
0 i. w- z1 C3 a& i' S1 Y) u - )
0 c+ V+ s/ y% l. n. _( o - )/ u" o4 v( x; P3 `9 F c
- (if (= flag 0)
& w" |1 s; ?/ }# x- L9 q - (if (equal (cdr n) image:oname) (setq flag 1))
N" Q6 b2 Q4 T \0 U - ) M2 S b/ R: A6 c2 \ v" b
- )2 Q2 k' K0 A1 W5 }- C
- / }7 ?) \. [4 c& s
- (set_tile "image_path" (cdr (assoc 1 image:olist)))
9 ?3 U' c6 X7 |2 c, b - (set_tile "st_ang" (ai_angtos image:angle)), N$ J' k. f: o: z0 D/ H6 z
- (image_set_tile_scale)
U- O! R U0 ]1 O4 j: C% _ - n9 T8 M' R! g7 A6 @& I% [9 T
- ;; Check the appropriate boxes
& @8 w4 ?) _1 p1 Z. c - (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1")): Y! h4 Z! J1 y" G# d/ j2 x
- (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1"))
0 d5 X" U9 b! O' _ - (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1")): |4 r/ n' t: b0 e
- (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))0 a% l/ k' z' y5 V/ J, r2 g5 m
- # F) ]! ~/ w! s; V# b5 ~
- ;; Define action for tiles
# H) b+ i* t, K. d( _4 ? - (set_action_tiles)
! Z/ V; E0 q% |+ o* j7 Y6 u - (action_tile "xscale" "(image_update \"xscale\" $value)")$ H: Q$ o4 K. C
- (action_tile "st_ang" "(ver_ang1 $value)")
( w' u5 Z* g: s8 C: x5 D - (action_tile "wid" "(image_update \"wid\" $value)")$ j( P+ r7 L8 V' x6 d3 ~
- (action_tile "hght" "(image_update \"hght\" $value)")7 L9 A: P/ X6 v, x- u- n# f
- (action_tile "image_show" "(image_disp_opt 1)")
* i7 ]; C# N4 C) ~. R - (action_tile "image_non_ortho" "(image_disp_opt 2)")" P# Y; y. z: ?8 H; R2 t4 W2 A+ M
- (action_tile "image_clipped" "(image_disp_opt 4)")- |# g6 X+ I2 ` D+ e( ]* A0 j
- (action_tile "image_transparency" "(image_disp_opt 8)"); Z! B B/ F# r5 ^6 E, r& h
- (action_tile "image_adjust" "(done_dialog 4)")
1 v K- @! o& j' @ - 5 i4 [5 ~5 r" e2 E6 E5 J: ~' q
- (setq dialog-state (start_dialog)); q; E! a+ a& J' }
- (if (= dialog-state 0)
A! v7 b/ {* Y/ K! H& R# x - (progn
9 I1 w+ s9 k } - (reset)0 \( C( s; X+ n/ W0 ~
- (image_clean_variables)" s! G% z: S& \
- )- ^; t# I7 m. ]9 L( d6 @* O/ V* U
- )8 q, m8 V! r9 @& w
- (if (= dialog-state 1)8 H+ b5 A7 q9 i4 M- p! X6 U
- (progn
. j# C5 i4 h( h. v$ { - (modify_image)
! a4 Z8 w& U* ~: k. u$ Y5 U, N+ v - (image_clean_variables): l" l! l ^7 F( L
- )3 c( k% @* C" R
- ); ^, `3 `/ ~! _5 ~3 X9 K( H( i
- (if (= dialog-state 3)
/ y& U6 z! K I: _- ~, R - (progn' Z4 D T/ a) y" J" E
- (modify_image)
O" u( n5 G+ l" Y) |$ F - (image_clean_variables)
9 B6 d2 J j3 O! h, E( l - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
' n1 R4 a9 s ], ?# P* | - (ver_pt1 0)2 M E3 }. g; _- I; [
- (ddimage)
# x. n/ M$ W( U - )* a! y& O! |& k$ H/ r" k1 a
- )
2 M9 c6 a2 I# c$ _9 {2 x$ G - (if (= dialog-state 4)' j4 `8 S3 T! z" I+ q
- (progn
- p' x% S' B' w | - (modify_image)
& D1 a Q2 w$ p1 N - (image_adjust ename)+ H) y/ p7 M8 ~. x0 C+ ~1 H( |
- (setq elist (entget ename))) B. {5 A4 x. p, R& Y) o
- (ddimage), i( F' j8 D5 m( d, a5 T
- )6 U1 I- v, T/ X* A
- )
5 i$ N7 z0 [* z1 M0 x9 f% V+ w3 A+ G - )
$ l0 |* L- t. U/ T" y, w5 i
7 O( P1 P% ?0 A3 k" w1 O- ;;
* o& h& f) b0 ]3 D/ Z6 P; c8 C( v - ;; Modify BLOCK (and its Attributes, if any)
# D& l: D) J2 A: c# x - ;;
$ K4 @ ~/ a1 h6 Z5 |' | - (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr' J9 ]8 s+ A: c
- new_wid old_wid old_rot scaling old_scale
' c7 {" a; j, I" W, y; {4 i - xdelta ydelta zdelta xbase ybase zbase ipos)* a. Z& Q' U9 n% I V) Y
- (modify_properties)
3 o- e/ B9 V* h" |- |; }% f - " p9 R5 a/ v* N6 \& L$ n ^
- ;; First, translate and scale the Attributes, if there are any.
) d$ n5 [" d4 K4 B( C% X - (setq old_rot (cdr (assoc 50 elist))( k; ^) u7 f! L
- old_scale (list (cdr (assoc 41 elist))
& X5 Y% t: b2 V. @0 ]( i& \ - (cdr (assoc 42 elist))
0 P; J0 u/ \ S1 W% P' y y - (cdr (assoc 43 elist))
7 |( \. l& K, a/ Y - )
( Z- e" n' j5 i3 P+ Z! N, u* h( ? P - scaling (or (/= xscale (car old_scale))
$ ]; K0 Y7 [/ v0 t0 Z" B7 I) L" _% g - (/= yscale (cadr old_scale))" @. n) B8 F8 V; |. A! F
- (/= zscale (caddr old_scale))/ |! T7 P$ i, d; E4 i& q- Q
- )
' D$ f2 q( V4 x6 s5 N - attr nil ; No Attributes modified yet+ k a, @ n: I. O$ i% w% P
- )
3 l' P: T( @* x/ x6 y' z/ V! i - (if scaling* R* S7 Z3 N) v; Z) {
- (progn1 c3 Z5 @- T% i1 X/ ^0 e
- (setq xdelta (/ xscale (car old_scale))
; d$ C6 a7 Q; N* _ - ydelta (/ yscale (cadr old_scale))
0 g! h& @( Y! N) `6 h& x - zdelta (/ zscale (caddr old_scale))$ @2 W! M/ I1 m1 K8 o: c
- ipos (cdr (assoc 10 elist))
- E: r& c$ Y; h6 N. n( X - xbase (car ipos) ]+ b% K4 S2 B6 U. F
- ybase (cadr ipos)$ v0 P6 O- i+ b- W
- zbase (caddr ipos)
3 ~" C) s; x7 d3 Y9 H' d) `9 c) K" K - en2 (entnext ename) ; First Attribute
2 Q: F2 S7 ?) s6 A( z @ - )
4 Z6 W, l' j$ L
- @2 r5 I9 }5 X! Z) \0 e9 L7 d* L9 Q; F- ; If the Block is rotated, temporarily un-rotate it, along
4 A" o, N9 t3 t J - ; with all its Attributes, so the scaling/translation of the7 @4 O( [3 p+ K3 T+ x) ?" F3 D
- ; Attributes won't have to take the Block rotation into account.
5 s# L6 g9 U6 V- M A5 \ `$ @( q - (if (/= old_rot 0.0)
0 N3 n* ^- `4 M ^ - (progn9 {$ Z9 u) |, D% P& R. q
- (command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))
! J+ K0 p0 t* j9 W0 T. d - (setq old_rot 0.0
+ k$ x! D; y0 @1 d' f( P - elist (subst (cons 50 0.0) (assoc 50 elist) elist)( I: m, Z, H" l3 [( w
- ), R* K$ J6 {8 a2 _! S
- )
1 H9 b, g U- V! P - )
/ F( B- {, F* s2 @! ]3 `, [+ f
+ N4 g' D) d6 q2 q4 F- (while en2
' y. g. I5 L. A( E0 [ - (setq el (entget en2))4 D1 ?# t( [+ E4 Y
- (if (= (cdr (assoc 0 el)) "ATTRIB")
: ~, H$ {, x% v/ y$ J. ] - (progn# z; m2 `8 @# e0 p# @9 k; z
- (setq old_hgt (cdr (assoc 40 el)) ; Height7 z, O5 O; E _3 b2 t% M0 s' k- W
- old_wid (cdr (assoc 41 el)) ; Width-factor( E {! x( `+ ^6 C0 X7 d! Q
- oldp1 (cdr (assoc 10 el)) ; Generation start point
7 B4 T3 m8 \ H - oldp2 (cdr (assoc 11 el)) ; Optional alignment pt' Y( d; O) M* H5 N" w7 p9 q! ?
- ha (cdr (assoc 72 el)) ; Horizontal alignment
, C% u4 G6 M# Q4 t+ q5 l6 D! h - va (cdr (assoc 74 el)) ; Vertical alignment: X+ [. b& @: S
- 6 A* H* d/ }" \: X/ Z3 F
- ; Translate gen. start point1 J V+ {' i1 [5 Y
- p1 (list (+ xbase (* xdelta (- (car oldp1) xbase)))
' K4 ]" H; h0 m# p2 H7 k5 { - (+ ybase (* ydelta (- (cadr oldp1) ybase)))
1 f2 P; P& K6 ]' c+ U$ Z% \ - (+ zbase (* zdelta (- (caddr oldp1) zbase)))
6 Q. i( U0 J5 K9 ~9 C0 x0 t - )' P9 R1 w: Q) u# I: ^2 x, x, N0 N5 l
- el (subst (cons 10 p1) (assoc 10 el) el)
" o1 Y3 P5 C+ ?# N2 G, Y" G- C: w - )
" X0 ~* _# E, K: w1 x7 N
) q$ e% D0 i; r5 v2 J9 e% _) `- ; Translate alignment pt similarly, if present and applicable
5 z7 }( J* }$ z- T" `2 _5 m - (if (and oldp2 (or (/= ha 0)3 ^* Z. S$ F% y$ L! V9 `# r' E3 L
- (/= va 0)# r% b4 z) z& |; G D
- )+ `& f: F& K5 Z, I `* U
- )
% Y1 ?6 [6 J! |6 U( q/ R - (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase))). u @4 I# B, ?7 }9 l; {5 ]3 G4 j3 E0 K
- (+ ybase (* ydelta (- (cadr oldp2) ybase)))
% U4 b1 p( v4 G% y0 C6 t; M8 l+ O - (+ zbase (* zdelta (- (caddr oldp2) zbase)))
9 G4 x/ x0 A/ R. \" f4 h$ a" w - )0 n, [" d9 [. [( s) P
- el (subst (cons 11 p2) (assoc 11 el) el)
A2 p5 T8 R1 n' J9 m0 \+ z* Z - )# V) t: @+ T5 p4 c' }* X2 V) k& |+ _
- )
' J, Z. h0 U- b' n# a7 A
9 V+ U3 t% B/ v7 q4 G" o- B- ; Each Attribute's height and width-factor were computed5 C; p4 B) O6 Q# e5 \: w
- ; based on the Block's scale factors. Adjust them now,' j& p# e$ }3 }& Z" e2 Z
- ; by first reducing to values for 1x1 scale...
: ~& d8 o) z2 l2 l! m, ] - (setq new_hgt (/ old_hgt (cadr old_scale))
0 T; ^5 v! M6 C: V; k, j7 K, P4 ^ - new_wid (/ old_wid (/ (car old_scale) (cadr old_scale)))
# n8 ^$ _& z- X3 m* ]8 V* \ - )
! E7 x I7 ]2 w3 E% [ x& d B) A3 f - ; ...and then rescaling.
/ K( g4 `% z$ L: {) ] - (setq new_hgt (* new_hgt yscale)7 b2 P+ V2 k) v7 ]+ R; }
- new_wid (* new_wid (/ xscale yscale))
8 J3 |8 J: x6 l( `7 ^6 N) n) a/ C+ e8 T4 D - )
' L; [6 m6 z& | - (if (/= new_hgt old_hgt)
4 d4 x# x b2 B! R - (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))( X1 R, Y4 i6 p( C& t% a
- )9 h& W5 x: n) U0 D- S/ M" ~0 I' a
- (if (/= new_wid old_wid)% @# e- e% ]2 F8 ^6 X$ U
- (setq el (subst (cons 41 new_wid) (assoc 41 el) el))
1 u6 \/ }3 H. G' t; V# p# {& Q - )
) c- C: [0 d* q# @2 p& S4 N+ U - (entmod el)5 u8 ^4 F6 y3 g5 Z# f; E7 T* U
- (setq attr T ; At least one Attribute modified7 H" `: a d5 C- h4 W7 m- P
- en2 (entnext en2) ; Next Attribute
. v6 k3 Y( T+ @+ s$ l F" c5 V+ { - )6 M' y2 z- k/ Q9 O- @2 s5 m
- )
& `# C% Z3 c; o8 L1 m2 t" O - (setq en2 nil) ; No more attributes
. `. A1 e0 u" k$ g: D5 u7 a# S \ - )0 B8 t% ~5 W# n: \; Y3 B
- )! `5 V7 Q( @ Y4 c, t! c6 E5 T
- )) Z. N7 e% z; d/ ~! f
- ) I& d% E4 _/ v, {% s
6 U* K7 N3 ^! r% _9 {1 ^- (setq pt1 (list x1 y1 z1))& I7 _3 S) [, |
- (tempmod xscale 41 nil)
9 C; c' H: v) j2 H: \1 M - (tempmod yscale 42 nil)* o6 Z1 D' v* a9 W( ^2 M( p
- (tempmod zscale 43 nil)
0 c. v9 e; ]* d0 ` - (tempmod col-sp 44 nil)& h- U3 ~5 X# f9 {* ]* Y4 ~5 Z
- (tempmod row-sp 45 nil)2 \' P' J3 H7 v! y- o4 V
- (tempmod columns 70 nil)
4 h5 a: e* z- m - (tempmod rows 71 nil)0 A: m, A4 D- H# y2 l! m
- (if (= xclipmode nil)
! m0 P0 H. a5 o8 ~+ U3 o' M - (entmod elist)
' Y4 c% R0 N7 Q$ W) C3 Q - (setq xclipmode nil)
2 U1 ^9 t* y9 K& g - )8 c9 K# r' R6 N* a* ~; m1 F+ y
- (move_pt1 1), t' N: B) y3 g4 I
- 1 i! j- \7 X Q! i& K; n
- ;; Now do the rotation with the ROTATE command.1 T& [5 y1 y1 ^; L( [0 s
- (if (/= old_rot rot)
# Q7 e5 C5 O- Q - (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))" N# y5 W' Z0 t& }5 y
- (if attr ; Else, if attributes were modified,
( t' w# N, P; }) n4 y; y6 K - (entupd ename) ; just regen to force attrib display
% @8 Y b. M; e$ b, N/ i0 h, _ - )
4 Q4 t7 v1 s- m7 j - )0 W5 ?& t5 V3 a. q7 i
- (setq elist (entget ename))
7 G! t8 U+ W B0 A1 ~ D2 C" j - )
9 [( t0 y( }) O; q* N( s. H3 f' Z% K - (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)! X! V+ k4 Y" n. Q _8 V6 m* t$ C
- (setq newhatch 0)
1 {0 ?8 k2 D5 L8 x' ? - (setq blkname (cdr (assoc 2 elist)))9 i# Z( x# Y* \7 }0 V
- (setq blklist (tblsearch "block" blkname))
! H+ `6 a3 J% V$ G - (setq blktype (cdr (assoc 70 blklist))); u- e2 `: O8 n8 T
- (setq xcliponoff 0)' a9 S+ [' w& j
- (if (or (= blktype 0)(= blktype 36)) U1 c# V* H) U. P
- (progn
9 P% w; H6 p- g7 A5 ?' K - (setq xcliponoff (xclipon elist))
$ M; j; a0 [4 H5 h6 N) Z - (setq temp_xclip xcliponoff)
; N* O% r1 [+ v, Y& v+ d/ \ - )
. {9 X8 j2 J5 Q - )3 i$ h) P* @3 E) {3 L
- (if (= (logand blktype 4) 4)
6 H) L" `$ w5 [ - (progn3 E s, u ?1 f* B: F4 m8 G
- (setq xrefpath (cdr (assoc 1 blklist)))
7 N3 y/ q& ? e2 S+ v - (setq help_entry "modify_External_Reference_dialog")8 ^1 d, r; Z( p4 T0 \
- (if (not (new_dialog "ddxref" dcl_id)) (exit))
0 n4 @$ Z3 q" G5 R - (set_tile "Bl_name" blkname)3 L5 q* s; A3 t0 N- F, }# F f& M
- (set_tile "path" xrefpath). c5 Z3 O' D9 s3 O; `$ M" `$ i3 _
- )! ^' e! p% n% Y0 E+ b' t, _
- (progn
6 v( a. q3 V+ e4 v1 H - ;; Get program name for use as Xdata app name2 C( a/ y/ l8 K& g
- (if (not (setq program (getvar "program")))+ n. o( x7 P0 \4 r% f1 u
- (setq program "acad")
8 {: r! A& I* P4 w1 P% z% s - )
H$ \. k) r6 k# Z9 n1 a) ?( X - (if (and (setq temp (assoc -3 (entget ename (list program))))
! [" b5 @' V: G( F: p; g5 T - (= (cdr (assoc 1000 (cdadr temp))) "HATCH")
7 T% k' `2 Y4 e% r$ D# L - (assoc 1005 (cdadr temp))
" a, J7 @! l+ h7 k4 C1 k$ U - )" w) r2 m& a% _, {! D" t7 K
- (progn
C5 ?% p5 n! d# J% P* [% s - (setq newhatch 1)
) o4 d: f6 ^# l( o$ A. |' o/ C - (setq help_entry "modify_Hatch_dialog")+ y' U% |$ V5 g) V1 B) f
- ;;; convert the object into a new hatch# H) z" `: W. d0 a; y
- (ai_undo_on) ;; enable undo3 d0 _& U9 F% T
- (COMMAND "_.UNDO" "_Mark")6 ~1 m/ N! W5 |5 p$ w1 S3 x5 q
- (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")3 h9 s: G* o3 u" B. g6 |+ n
- ;;; suppress nasty message from convert command
t. R& W0 w( K" z# Z - (princ "\r \r")
% y5 u4 [! P! K1 g U2 B - (setq elist (entget (setq ename (cdr (assoc -1 elist)))))
! K7 X x' P" z8 r5 K4 c, H' i - (setq old-elist elist)
! z* `" j% d: A" d! q- t0 B - ;;; If we have cancelled ddmodify% `$ w( j& O; z
- (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok/ K7 I1 j) ?' S" \8 Z* ?6 o/ T7 m
- (command "_.UNDO" "_Back") z: h0 r4 g" D4 |
- )- n/ K9 B* ]+ g, H6 U
- (ai_undo_off) ;; restore undo state' {# G& h! V- s# p
- )
( T, j3 Z! Y, y9 S - (progn
1 M1 D0 P$ O, e% a - (if (not (new_dialog "ddblock" dcl_id)) (exit))3 u, W) p! J2 R) ~; W4 b& O; ]9 x+ l
- (if ( = "*" (substr blkname 1 1))1 D5 v$ s( }- x. x& ~% c
- (set_tile "Bl_name" (strcat blkname " - Anonymous block"))
' @& m- Q0 E- y1 ]1 f/ ]% g - (set_tile "Bl_name" blkname)
8 a; |1 a' h( S - )4 n9 s' \0 W$ C5 T
- (setq help_entry "modify_Block_Insertion_dialog")! E8 y7 |* Y7 Z+ ?# s# p
- )
- Y; b; u' _6 Q/ W4 H2 Q9 p - )- q$ b! O7 R4 Y' N/ G
- )- D" i7 L" K; b. G x5 c. `% Q8 Z
- )2 n( m& R1 l$ b5 D; X$ e
- (if (= newhatch 0)5 B9 i( o+ L& V1 h/ z9 A- v
- (progn2 \- i( C7 e3 n5 l
- (set_tile_props)* H. R1 n1 m# Z1 L0 [( t" @0 c
- (set_tile_handle)
* E8 F6 y/ M2 X4 Q$ I$ w1 L - (set_tile_pt1 1)
" V) ]# Q# L9 _( K; r. ^ - (set_tile_rot)
- x$ R2 N7 P+ W- r" x1 g - (set_tile_scale)
! e% s {; S9 P6 d - (set_tile_rc)1 y/ e2 {8 d! A
- (if (= (logand blktype 1) 1)
2 _ h+ B9 s: n* }( o - (progn- B% L* k- |. g, q
- (mode_tile "xscale" 1)
+ B, C6 Y% ]9 d2 b) {; L" e - (mode_tile "yscale" 1)
8 p p7 r1 I* r8 H1 @* Q8 R/ \ - (mode_tile "zscale" 1)0 M9 L' X k9 W' C# `
- (mode_tile "rot" 1)6 P7 w$ @+ C. [% E1 V
- (mode_tile "columns" 1)6 ~7 u$ R! B e: ]
- (mode_tile "rows" 1)
% C7 \9 D- ~8 L) {: a. H - (mode_tile "col_sp" 1)
( n& ~; a. w! g - (mode_tile "row_sp" 1)% t, J' L( U m& W- O# k: r q
- )% D+ B7 a% a8 u. t. Q) G, ^
- )
. g9 o' s# `1 @2 e - ;; Define action for tiles% B3 n6 G+ C/ E
- (set_action_tiles)" q, v+ }+ S: B2 d5 v& `+ H
- (setq dialog-state (start_dialog))" L9 b P1 R% z/ t! G
- (cond+ P: g+ v- n6 [: x* G' `: ~
- ( (eq dialog-state 0)! T$ H4 t/ V% o0 ?5 i' T- B/ h7 X. N4 E
- (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))' x7 w/ I, E4 H" D h
- (move_pt1 1)4 `; n3 F/ R d( q( D
- (reset))5 [- V9 d) P, j \
- ( (eq dialog-state 1)
* k. }2 j6 }& G# g) q) Z - (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))- _ K4 R) { @. ~3 T' ?
- (xclip)
0 x! l+ c$ o0 z6 C' ? - )" j" v' \5 k5 ~+ ^" {
- (modify_block))
v c: Q+ u( r: [ - ( (eq dialog-state 3)1 t* k- l- m/ O, a
- (modify_block)
( T- r$ y( V1 I, S# } - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
' n3 V% F' L; h; B& x0 R4 I - (move_pt1 1)2 f4 `; [( J) d7 N
- (ddblock)) P B1 ], y9 c, b k0 X
- ( (eq dialog-state 4)) d! I3 W% P: ]) a+ E8 S
- (modify_block)
5 y0 {: a1 |! z- c9 e% I6 r" E, x! s6 i - ;; Get current handle.
! y H! H: A- Z: V- Y. N8 ?3 d - (setq hand (cdr (assoc 5 elist)))
" ]0 H N8 Z! K Q8 U - (command "_hatchedit" ename)
1 B2 Q2 P$ G* O# |1 { - ;; If OK in hatchedit, a *new* entity is created and the old one1 q0 A0 ]! R# v6 y4 ?0 c
- ;; is deleted. So if the old one exists, it must have been a
; Z5 D" b9 n# n! M" I - ;; so rest the entity.4 M6 c s. h/ v( O6 a. }4 u
- (if (entget (handent hand)) (reset))
9 f& j, h) E5 L/ H - )
, T& m1 d2 \4 P4 e - )
) i( o( W% V& Z4 @ D6 y - )
1 b& ]7 n- N4 e: A - )
3 I' z2 t e, W - )
W5 D w4 Y6 q - ;;" e7 w- O$ o7 ?9 [: k
- ;; Modify SHAPE! y) M$ p% O, f) \2 u2 [
- ;;+ y* I* n1 b: h w* p% c- }6 F) k& \* s
- (defun modify_shape ()/ O D& F7 B9 P
- (modify_properties); N0 G4 J7 \- A
- (setq pt1 (list x1 y1 z1)); B; I$ V' O+ T
- (tempmod pt1 10 1)* ]4 y6 a( d0 i# t, P* n5 V9 q. S
- (tempmod hght 40 nil)% p0 q' z3 T5 d
- (tempmod wid 41 nil)
$ z3 l8 N8 r! ~! g1 \" Z - (tempmod rot 50 nil)1 b3 m- K% \% O6 L3 G
- (tempmod obl 51 nil)/ X ~0 [) ]0 S6 T" M" v) g: l
- (entmod elist)
! n% ?: d7 {5 |) R - )
5 O4 l$ D9 V3 V4 w) b0 m' j* A
. X: m' Y; [. [4 ^& |( A- (defun ddshape ()
/ g' [, m+ p4 `$ F. Z/ B - (if (not (new_dialog "ddshape" dcl_id)) (exit))
2 H9 f2 @- o# O1 f5 t* w3 W! F - (set_tile_props)
% p* i5 b6 w# |5 j: P - (set_tile_handle)* d! C( V2 d4 v) g ~* Q: B
- (set_tile_pt1 1)+ Z" i$ J4 E1 }. E; A6 v
- (set_tile_rot)' e' r; z7 b M1 S, I3 \ R8 v
- (set_tile_hght)6 z/ E, q. h) n1 @9 p! s" i! J, U
- (set_tile_wid)$ s/ E: P7 H! u! C! x
- (set_tile_obl)0 `0 H8 ~2 z- u
- (set_tile "sh_name" (cdr (assoc 2 elist))). w6 x! ~5 V9 t) a
- ;; Define action for tiles
5 C5 ]7 F% E$ @" l( N* g - (set_action_tiles)
7 R! i2 C. e6 o' m. W4 G - (setq dialog-state (start_dialog))5 i' |+ @# g1 [1 _
- (if (= dialog-state 0)
5 P) @4 S; q. U4 J& [ - (reset); N' V6 i% ?" X8 w5 L5 e& i+ u2 @
- )
+ p D/ n# e: c - (if (= dialog-state 1)
9 z2 R$ I) G) C# H" o - (modify_shape)
4 n$ S( G' l ^, V" Q3 `6 W+ K - )) H1 Z" y- j& h' z+ i
- (if (= dialog-state 3)
: p0 L' u# [% _, a: E5 v+ W - (progn
/ Q: e8 |3 e4 W+ @' ~& h4 A9 ]# K - (modify_shape)
6 Z8 T2 L. r. Q+ M- H5 A - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))" N* g/ E3 G# [
- (ver_pt1 1)$ k: ]& G! o/ @% U" }* V0 t a, o
- (ddshape)8 b i. k" s7 o4 B2 P# |
- )9 V5 m ]5 X# }: y% q& m
- )- {9 c; I1 ` I1 R* M2 \; M
- )6 c5 Z" j5 [; R' K3 B8 X' A
- ;;
9 l; X9 V1 M+ {9 ]1 P* _: n8 g - ;; Modify TEXT or ATTDEF
# J! Z+ O6 S! C9 n0 T - ;;) q5 p9 @9 S# S# f
- ;; Set bit code for upside-down and backwards setting
. I0 v* G0 M! n: ^7 L: \ - ;;
! O& V0 l) ~; H/ J; k: S8 V! u - (defun code_71 ()
& }! C8 I# I' k0 n* V - (cond ((and (= bkwd "0") (= upsd "0")) 0)4 `# B5 ?& x" X! G
- ((and (= bkwd "1") (= upsd "0")) 2)
" }# b8 Y. t3 s - ((and (= bkwd "0") (= upsd "1")) 4)
4 k; b. M& w- f! R* {: G# y# [ - ((and (= bkwd "1") (= upsd "1")) 6)
+ Z) G" ^" X/ H5 I( }# z - )
2 o, w% K7 Y" e7 ?9 B - )
# \; E9 n, B8 q6 l M - ;;
& k6 S9 i& t& u - ;; Style action. Reset widget values to style defaults
$ R! r* E; J$ w2 `" n1 E - ;;
6 d. b5 g- v7 e) f! F; f - (defun style_act (index / style-list)1 K1 N/ d- p* _3 K
- (setq style-idx (atoi index))/ w, Y+ M4 _! R' F3 ^+ P
- (setq tstyle (nth style-idx slist))
0 M g* L0 ~8 D$ t2 E, `3 I& e - (setq style-idx (itoa style-idx))
& J0 H9 g3 H* a - (set_tile "style" style-idx)
9 w% o' ^5 f6 i - (setq style-list (tblsearch "style" tstyle)): F, d8 I7 I) s/ z" W$ i
- (setq shght (cdr (assoc 40 style-list)))* T- a8 z( R% k2 H3 M+ Q5 w# G
- (if (/= shght 0)# y( e. R* p M1 j( c
- (progn
2 e( R$ z, \5 ?! y - (setq hght shght)
. ^2 a1 Y0 p) o" F4 S9 }: X - (set_tile "hght" (ai_rtos hght))
, Y+ a4 ]/ z# o6 c7 I - )
9 F3 p8 X5 L" k% C, E' ?7 b& E# K - )
8 P4 {. e0 ^ h$ v" @& r - (setq wid (cdr (assoc 41 style-list)))
. j, L* `3 I0 x - (set_tile "wid" (ai_rtos wid))
1 y# a' p' b5 F2 ^) Z0 @- E - (setq obl (cdr (assoc 50 style-list)))
8 X# o0 c& ]8 E' ^. M4 S' ` - (set_tile "obl" (ai_angtos obl))) p1 `1 S# k. v( G+ n
- (setq bk-up (cdr (assoc 71 style-list)))
0 f2 {2 e0 ] i0 v8 N - (if (= (logand bk-up 2) 2), U, h# s1 n8 I
- (set_tile "bkwd" (itoa (setq bkwd 1)))
6 H9 k4 Q3 p6 q - (set_tile "bkwd" (itoa (setq bkwd 0)))& f3 f2 Y# O1 e, Y
- ); ^# C5 s7 ~1 G7 J* H3 _ T8 Y2 _
- (if (= (logand bk-up 4) 4)5 y2 A$ \3 D3 m: [% i
- (set_tile "upsd" (itoa (setq upsd 1)))
5 j& S w+ U' f( v* ^) `) |0 Z) L8 j - (set_tile "upsd" (itoa (setq upsd 0)))
: U9 o3 X8 a0 z+ j$ @( b9 Q - )
2 R; ?5 N# z/ C! _( c - )
0 U5 }; F6 g& n7 s$ U - ;;1 l2 `1 m! F: y
- ;; Justification action. Set vertical and horizontal alignment variables,$ ?8 f( R/ c! b% B
- ;; grey out rotation and height if alignment = "aligned", grey out rotation
, ^! }4 @/ a9 ^5 ~ - ;; if alignment = "fit".6 C- g: R/ c3 ^! B* T
- ;;; r& R C4 V! X% A! [ S
- (defun jlist_act (index / templist)
# ]* S# V, j. V& w" Z3 s* J - (setq just-idx (atoi index))
% e, i( o5 Z+ ^& V5 ` - (cond
' r7 S/ m% o, I) u/ g" T - ((= just-idx 0) (setq va 0 ha 0))
: r9 B* u( s9 h/ c1 }+ S - ((= just-idx 1) (setq va 0 ha 1))" r/ O) H( I* _1 z- F2 A: b
- ((= just-idx 2) (setq va 0 ha 2))+ }5 h k& b& q- b6 u7 |
- ((= just-idx 3) (setq va 0 ha 3))
" \$ i+ S/ k' ^0 B. m; N/ Q/ A* Z8 b y - ((= just-idx 4) (setq va 0 ha 4))
+ ?& \3 Y2 i/ S( V% O) q8 A - ((= just-idx 5) (setq va 0 ha 5)); x. q$ H& w+ ]5 l
- ((= just-idx 6) (setq va 3 ha 0))
# d' _0 u6 P( Z# }6 U! s m - ((= just-idx 7) (setq va 3 ha 1))
. T4 n q7 d; q; t( v - ((= just-idx 8) (setq va 3 ha 2))2 K/ o$ Z$ L3 L+ D
- ((= just-idx 9) (setq va 2 ha 0)); c5 r) n+ _9 m9 ~9 Y6 a8 l
- ((= just-idx 10) (setq va 2 ha 1))# P/ E0 {+ f$ \7 ?& o1 Y
- ((= just-idx 11) (setq va 2 ha 2))5 S' X! [1 G( i
- ((= just-idx 12) (setq va 1 ha 0))# }) e' R$ x4 Y+ i
- ((= just-idx 13) (setq va 1 ha 1))
1 \6 Y) X" m4 ~. `" F - ((= just-idx 14) (setq va 1 ha 2))
3 \( Q4 m: G. S2 I: J \5 z- S - )0 }. c4 |& t+ c- Y) S
- (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text
j5 h' ]$ {; Q% s7 w1 O& R" P - (mode_tile "rot" 1)& V0 V) o, n8 C6 F3 A0 g9 R
- (mode_tile "rot" 0)
0 i/ w1 m! L; g - )- f, I6 I- p3 F
- (if (= ha 3) ; If Aligned text
$ n/ p: ~) V T& W: C' {3 P - (mode_tile "hght" 1)
" J" l: q. N1 J7 \, N7 M$ `7 Q - (mode_tile "hght" 0)' L; q* W; i! v
- )
- _& u% F- Z6 I, R: ]4 y - (if (= ha 5) ; If Fit text$ V. k* i- {3 b: e3 `3 {9 d
- (mode_tile "wid" 1): l% Q1 ^* h3 |" I
- (mode_tile "wid" 0)' D2 K; l/ z% }5 O$ m
- )) \3 E. S7 ]1 {; b% Z
- ;; Reset rotation and height if changing from aligned.: \# Z, m) y% d) c8 k
- (if (and (= ha-prev 3) (/= ha 3))) ]9 D! {% b u' h
- (progn
6 K# r: J1 L/ X, e - (set_tile "rot" (ai_angtos (setq rot 0.0)))
6 b+ k2 Y1 ]% b! H - (set_tile "hght" (ai_rtos (setq hght 1.0)))
+ Y4 V2 w5 S" m- z3 P - )
" P2 m+ r* [/ X! a( M0 _) d - )
6 ~2 u$ B, d r9 i9 ?3 h - ( y0 ?/ U- }* Y6 o1 M6 O4 h
- ;; Reset rotation and width if changing from fit.+ }+ q8 z6 ~7 R& B1 W8 o; \9 C
- (if (and (= ha-prev 5) (/= ha 5))4 x+ L! h. Y3 r: d" u/ Y! T
- (progn7 y, x+ r% |6 q4 \' n' F
- (set_tile "rot" (ai_angtos (setq rot 0.0)))
* W. O, @$ J7 s9 @2 ^9 f - (set_tile "wid" (ai_rtos (setq wid 1.0)))# @$ i' l" A) C1 q$ I" j! y
- )
3 O. ]$ g0 u, ^$ f" } - )
2 E% L Y* d, _! U/ J1 t% _' u
% b" Z8 o* R$ I- (setq ha-prev ha) ; update ha-prev for next time
% y- w8 ^/ m. o3 e9 K. U - (setq just-idx (itoa just-idx))
A& x3 ^8 n- X7 \* x. ^ - )
1 X* a& A5 E- ? - ;;% l6 u$ U4 C H. L1 |
- ;; Set intitial alignment setting based on vertical and horizontal alignment8 |' V$ R3 A! B5 o
- ;; bit codes.
9 x+ ]* g6 U) c4 t2 Y- ^/ W9 I+ o - ;;+ {) Z0 i& l+ H2 x3 P
- (defun set_just_idx ()
+ T5 ` @+ N! m+ ^ - (cond
6 G$ B3 }. \+ q9 j - ((= ha 0) ; Horiz alignment = Left
/ f8 w* H2 j. L- t* j - (cond
) X8 C, Q7 u" p* Q* r - ((= va 0) (setq just-idx "0"))
6 E! Y% H6 _- ~ - ((= va 1) (setq just-idx "12"))8 i% i- s/ e5 h( t
- ((= va 2) (setq just-idx "9"))( t3 |) D0 `( a0 k# a5 I7 T* N, j. k
- ((= va 3) (setq just-idx "6"))/ ^6 U7 y& z& t2 |
- )
6 x0 F- A3 p& @ - )0 H4 i( y5 Q5 D7 Y5 w9 J; @6 L' l
- ((= ha 1) ; Horiz alignment = Center
. c, d; l9 J7 h Y6 t4 V - (cond% J" m/ \5 t$ |! n2 o* Z, \; K
- ((= va 0) (setq just-idx "1"))
# _" A& @6 G1 C4 D# f/ z; Z! ]) X - ((= va 1) (setq just-idx "13"))
5 v Y. C6 T S/ _* r - ((= va 2) (setq just-idx "10"))
7 u) Q; C) R# `) B - ((= va 3) (setq just-idx "7"))# g% ] @ B% }4 w8 [8 X
- )2 h2 \# j M5 c5 E; A N7 c& V
- )0 r+ W5 `" `) f( n2 ?1 ]
- ((= ha 2) ; Horiz alignment = Right0 f) Q7 H9 l. ]* U2 }: Y1 x4 b
- (cond8 a2 Q j3 {" x- g- { M+ c ^
- ((= va 0) (setq just-idx "2"))3 O% \3 |( h3 @. r% I
- ((= va 1) (setq just-idx "14"))
. l6 j5 ]5 Q, \* _ - ((= va 2) (setq just-idx "11"))
0 M& _' b, y. f9 v - ((= va 3) (setq just-idx "8"))8 r( q, F/ d" u/ R1 l: _, B
- )2 H C& e4 I0 [$ p; v+ o
- )+ p7 J2 P! Y) |; T( _9 a
- ((= ha 3) (setq just-idx "3")) ; Aligned
: P2 l/ |5 f+ H- c$ p; f w) D - ((= ha 4) (setq just-idx "4")) ; Middle4 B( s* T2 T7 N2 _8 b5 V! s
- ((= ha 5) (setq just-idx "5")) ; Fit" l5 B( H" C! v9 a, x8 n2 ?) t( G. D5 C
- (T (setq just-idx "0")), Q/ P" K6 \! p: }3 p; d2 j
- )
e9 v z- M. m+ X X - just-idx& F/ `/ Q$ [4 K% N# Y
- )8 z# b+ r0 `, t2 [/ I2 D
0 H1 |/ M0 Y. e/ p8 d- (defun modify_text ()
* X: v# _, \7 [, @ - ;; insertion point
2 R! j% V% e: q/ P: j - (setq showpt (list x1 y1 z1))4 Y+ N( ?* v- N- c
- (setq bit-10 (trans showpt 1 ename))5 j7 I) l5 Z6 v- o# J
- ;; alignment point
9 U' I5 A; t! D. } - ;; for 'Aligned' or 'Fit', alignment point must be different* r3 E; u$ m [1 F% E
- ;; for all others, use insertion point
, ]) z* ^! h1 D) h' Y. f8 n - ;; (ACAD will recompute insertion point)' \) n2 @/ L8 S. C" z( b. x* q3 u9 D
- (if (or (= ha 3) (= ha 5))
7 D3 s! s: O& V% |$ e/ y5 h) D% p- D; ] - (progn
) i3 R/ S% u6 W @& m6 P% Y+ v - ;; if no alignment point, fabricate one, `/ N# e( M# {+ I
- (if (not alipt)
) y, J8 ~# S9 {, |" i9 Y - ;; add text width to insertion point
$ m' O2 H& H5 ?1 s) X - (setq alipt
/ @& V4 W% ` d; N2 c& x - (list (+ (car showpt) (car (cadr (textbox elist))))" X# U. G) h5 o
- (cadr showpt)
- ^# X% d+ Q$ p) j i" q - (caddr showpt)
- `/ C; G# c6 ^% w& W7 i9 |, | - )
# N" N4 L3 g% W/ l' g4 q* R - )" E- L& u+ c1 R: O# K5 g1 X
- )
1 L* K* t' y x' \+ s6 e. R - (setq bit-11 (trans alipt 1 ename))
6 E' V' s' ^& M% ?# _ - )
% Y4 O; ~7 L( z7 \' ]3 y6 s - (setq bit-11 bit-10)
9 _" L* a/ Q* G( b - )2 i/ e( [: ~: Y
- (modify_properties)
) @ h) U) v# u2 o; m4 e+ T" z - (tempmod tstyle 7 nil)8 c+ t7 a3 L6 i" j* _- L
- (tempmod bit-10 10 nil)
* \: _9 o: |+ k# I$ l0 z } - (tempmod bit-11 11 nil)
0 M6 f1 G0 Y5 `, t+ F5 `# D' o! a - (tempmod text 1 nil)
" ^6 \ Z9 ~6 r! _" Q# B - (tempmod hght 40 nil)
/ G3 p0 ?# S8 d+ \+ J7 s; J% c - (tempmod wid 41 nil)
7 \6 x* t+ a9 @& Q - (tempmod rot 50 nil): b. D% [' s, B# e9 F5 ~
- (tempmod obl 51 nil)
+ U: m( q0 c5 M, y( a$ D - (setq bk-up (+ (* bkwd 2) (* upsd 4)))
, z2 v. L4 W6 Y, F3 h; x4 V% v - (tempmod bk-up 71 nil) L* C! D8 F- d" y$ Z
- (tempmod ha 72 nil)
# n) G% e+ {2 q& g - ;; Attdefs use 74, text 730 k+ U2 T3 h* y: G$ k# m9 B8 Z. b: z: ~
- (if (= etype "ATTDEF")
2 u) ?- O5 e4 ?+ U% o - (progn
7 q+ C9 }# l) f% C - (tempmod attag 2 nil)7 n2 y3 z) ^- ]# q2 e5 y; [7 K6 d
- (tempmod atprompt 3 nil)
, ~! m3 h$ x3 v* | - (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))7 x' f& X( X! y( _% b
- (tempmod icvp 70 nil)' s% v4 @( l Z- @, u, n
- (tempmod va 74 nil)
9 Z4 ], g2 z! {% A7 l; ? - )5 n6 b! x& c& Z+ U- W
- (tempmod va 73 nil)
& @1 D! V/ ?% S X - )
8 M- K: u& ^/ }3 k# J( E6 K - (entmod elist)9 M6 o/ Y+ l7 H3 Z
- )) D- E+ C3 a, E0 D* h. @9 _" B/ f
& s% t& _# X4 C5 r) u- (defun ddtext (/ 2ndpt slist i)
5 u1 I; g$ n* ? - (if (= etype "TEXT")
0 l; m6 P1 U8 M4 R f - (if (not (new_dialog "ddtext" dcl_id)) (exit))2 t, J% f8 U5 R8 e u- B) T
- (if (not (new_dialog "ddattdef" dcl_id)) (exit))# {) Y N% W: U9 w" F% q, s9 h: o# r
- )
2 C M; y3 f: k+ D4 ` - (set_tile_props)
' \7 y2 s0 c6 @" e - (set_tile_handle)
3 M, L' W. z8 { - (set_tile_text). v9 p/ y9 q& N* ?3 ^! H
- (set_tile_tag)
, t& s. P( R4 @/ f/ f& |$ ? C- z4 r - (set_tile_prompt); r% x: n# m" U+ m8 H, f
- (set_tile_hght)& n1 o9 i5 o% c. [
- (set_tile_wid)
2 ]* A' K/ y0 G - (set_tile_rot)
# n `" R) q# s. m# r: M% y - (set_tile_obl)6 t2 K0 [( D0 l/ Z5 O
- (set_tile_bk-up)
/ O- Q+ ` N+ I5 W2 V9 n; l - (set_tile_icvp)
; R2 S+ K3 O o; c i w - (set_tile_style)' F$ L5 M" b& l/ _ X3 \; u) D
- (set_tile_just)4 G) a4 A5 ~ K) A' @
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))8 k1 r1 I& H' v: q6 r5 t0 k; y
- (if (not (assoc 11 elist))
: t" W6 }( c: w+ |* g) k- b - (progn (setq pt2 pt1)' D X+ n, ?. V& o/ T
- (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))- ~4 l, J! f1 U$ ^+ V* Z' k, R; t2 B
- )
, H$ d& [- x! r/ a5 j - ;;(trans '(0.0 0.0 0.0) ename 1))( ]! f% z2 L! ^% c* w
- (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
" b+ x, r$ b1 d, e - ), h) `4 _& E' S d5 b, g
- (if (or (and (= ha 0) (= va 0))
( H' u, _- J U - (= ha 3)/ s9 |1 g, M1 L# r: Z
- (= ha 5)
. [1 P' g5 X& q% F: Y$ A" z& j) N - )9 |$ K3 d! S6 x! S1 f# f
- (setq showpt pt1)4 Y9 [4 z( S' O+ I6 E+ b
- (setq showpt pt2)4 p& q5 d- Y% f P+ I! D' |8 v
- )
5 U% R' M; X9 g) _1 j( k% I$ a - (if (or (= ha 3) (= ha 5))
5 w" N7 u- U: a$ Y. F - (setq alipt pt2)6 v6 s5 j7 i1 {" u& V0 E
- (setq alipt nil)
! W* Y5 N. I+ K; Q" ?" N9 M+ g - )9 r% k1 z0 @- i" \; |. ^
- * v* `6 m- I3 O0 X. e6 P9 E
- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt))))
( ?1 X7 @. V B) ^9 c - (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt))))# Y' G1 @" e& |- ^
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))
4 `( Q+ f1 B7 \3 W5 u" Z - 4 |: A3 m+ g& {' z7 _+ q
- ;; Define action for tiles
V# t" ~7 d* G) `0 x& m& z2 D - (set_action_tiles)
7 i" s% S0 @! g o( ~. E+ W, c - ;; Set focus initially to the text edit box.
& S. \$ x- @4 g+ M - (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))
9 p& p2 `" N+ |# t5 r( E" r! }% E. G5 C - (setq dialog-state (start_dialog))
( z, ~/ G6 i' n - (if (= dialog-state 0)7 ?4 R; ^. X6 ^% B8 ?# P
- (reset)0 X8 i6 M) r! `4 l4 I( u1 ~; K
- ). L s+ `4 {, ?" y( B6 R, b$ F% d
- (if (= dialog-state 1); R9 v" C9 n% r8 q* Y$ |+ `
- (modify_text)
. g1 X9 B6 Y! l, f5 g+ p$ H3 S - )
0 a, g# }; f0 A- ?, j |( W- { - (if (= dialog-state 3)- O# j6 K% @! w
- (progn
$ r9 N, t% q( @0 `' A1 m - (modify_text)/ D* V5 K u$ `- ?+ F
- (if (or (= ha 3) (= ha 5))
' g) A4 w8 n; i' y l - (progn8 Y- h. f2 }- R: S2 f0 b( z7 c
- (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))
: q' T, K& m+ K - (if (not showpt)- t3 |8 @% i2 l+ Y
- (setq showpt (list x1 y1 z1))1 t, {( m( q% t$ Y g
- )
0 S" I; ?' @$ ^ W2 X3 x3 x* O - (setq 2ndpt (getpoint showpt "\nSecond point: "))
7 M2 H. [9 W; Z# m7 R, K' ]* W - (if 2ndpt
) p* o" q, {4 r$ t - (progn& q/ u ]5 c! t% F$ f, A' O
- (setq alipt 2ndpt)6 ~' e7 G: ^/ V1 S* ?
- (tempmod showpt 10 1)" f7 g' B% G7 l3 ^
- (tempmod alipt 11 1)
/ q: o9 g( F% j; ] ]6 V - (entmod elist)1 D4 \8 v! ^% I4 m+ H! ~
- )5 ]: S/ ^* ~: _5 j
- )
3 H) w8 G7 f7 ^: } - (setq elist (entget ename))
6 Z; |/ A+ z- u: S - )" }. K8 @% G# q7 o5 O3 R6 [
- (progn
+ l: Y1 N2 H/ J% A6 _" B - (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))
1 p5 }6 O L( n! X6 |; u) E - (if showpt
o! G L! m r9 Y7 H# K - (progn# f' U2 j9 t' K3 P
- (if (and (= ha 0) (= va 0))# `4 c5 f- ^, \0 Z! ]
- (tempmod showpt 10 1)
" z% ~8 ^* y: p+ f1 v! L& B% v. `- X - (tempmod showpt 11 1)
0 v7 I9 M) f* y6 N( g - )
$ P- t% I) Y: \0 `" S - (entmod elist)
* t! k" o+ t: y9 N3 s6 {) w+ Z& y4 h - )3 w# r9 p4 L0 \, D1 Z
- (setq showpt (list x1 y1 z1))
- e3 s( C2 D( H1 c! V& ^+ D6 c8 @' K - )
I6 b1 `- z- \6 y - )
% d$ _0 s# N/ P4 V# m4 E - )8 c5 ^6 U0 y. f; L. E$ p
- (ddtext)
N% D1 ~. ?# ] - )) n9 R: y( q! t: A- j* G/ j* ?& I
- )
2 g" ^, u( v9 d3 X; H- j- Z5 f7 M - )* ?# m. u3 g( c! |( l, Y
- , H+ I6 O& {& A
- ;;
2 Z4 l2 M; X8 v0 m - ;; Modify MTEXT. o# j6 J- W0 x* D" S* v' A
- ;;
' L7 N% G* o B$ N - (defun modify_mtext ()& F7 V7 W8 p. q% j- X* ?
- (modify_properties)' x1 M7 R/ c& r/ X: u3 @1 I
- (setq pt1 (list x1 y1 z1)). X* A7 r7 I! o; ~! g: R, }
- (tempmod pt1 10 0)
2 d* G: h5 \0 T( X" a3 {3 e9 v - (tempmod text 1 nil)7 v" r! T: W5 L, Y2 n
- (tempmod tstyle 7 nil)
- F- ?. v4 W8 `8 b* G E - (tempmod just-idx 71 nil)# S5 x- [, _; f! z9 r/ v& k4 p
- (cond! P7 M! c" S [% M+ x) g! Z
- ((= dir-idx 0) (setq dir-idx 1))
( F) E0 Q: |1 M5 G, X - ((= dir-idx 1) (setq dir-idx 3))
3 z, R* U8 H# U3 [4 T - ((= dir-idx 2) (setq dir-idx 5))7 \' j. g/ n( T3 Z7 _
- (T (setq dir-idx 1))% x* _* y4 x# P* c7 A
- )
9 @: F0 @' I& M( F9 y. f, ]& ^ - (tempmod dir-idx 72 nil)0 `' [" r! t2 U0 O
- (tempmod hght 40 nil)
0 K5 d' \8 m4 ^' w2 V' T - (tempmod wid 41 nil)
7 @, Q: p+ ?, Y2 Y' }! J - (tempmod rot 50 nil)+ T/ q7 A' J2 Y# y) H, A" N
- (entmod elist)" o1 I4 k' A( K; L
- )* A5 j% X7 O0 {8 _
- 1 B- K4 E% Z4 u7 T4 r0 w, ]* p
- ;; Set MText text style
( ?+ Y* E1 R& V; w' _* r - (defun MText_style (index / style-list)
7 b2 Y, m( {! P- p* L9 ]) \ - (setq style-idx (atoi index))
1 p I" r& w% E6 Y - (setq tstyle (nth style-idx slist))
+ I4 x! r; o# d - (setq style-idx (itoa style-idx))
4 q+ b4 M2 R6 J$ Q - (set_tile "style" style-idx)
4 V6 C7 i- j/ ] - (setq style-list (tblsearch "style" tstyle))( Q7 M. i% v* F6 s' K% z/ h# a, e& \
- (setq shght (cdr (assoc 40 style-list)))* ^4 m: i, T5 |, F* u0 t+ u y" c
- (if (/= shght 0)5 D' k4 Q5 p4 @- w1 n1 t& y# o" y
- (progn
+ B% U+ H3 d' P - (setq hght shght)
# Y8 g* e* ^' E# | - (set_tile "hght" (ai_rtos hght))4 b3 G+ _+ D j: ]5 H! ^: n
- )
" x ~- a3 b, o+ P9 M1 {( c o - )* r/ O: s1 p* }$ ]2 M
- )
; Q+ S0 F5 C# J- r
" P* ~8 [# X- l0 U6 X- ;; Run DDEDIT on given entity, working around possible re-entrancy
/ i/ F, g6 T7 N ~- m' q( Y1 { - ;; problems with MTEXTED
4 ?4 U8 f/ r" V- ?# z0 z) K4 r$ K0 { - (defun safe_ddedit (ename / orgMTextEd work), R9 J; j+ T& x+ s0 ]
- (setq orgMTextEd (getvar "MTEXTED"))3 [2 ^& i1 L& e7 g
- (setq work orgMTextEd)( [1 [; J# p8 L9 l: t
- (if (= ":" (substr work 1 1))# u) O, T( M8 I* b5 @5 O* u- t1 \0 [
- (progn
x$ @3 `; o( c* D5 Z! f# L - (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))
0 r& Y% _$ u$ D6 J1 { - (setq work (substr work 2))
- |9 J. P& m. H1 S. }/ P$ ` - )
( }0 f" ~' y) s - (if (= "#" (substr work 1 1))
3 g6 F# i- [( | N - (setq work (substr work 2))$ W$ T1 J' h% w' X& ?
- )% l. O' T9 i' f4 |1 Y
- (setvar "MTEXTED" work)
4 @0 V% E7 q) l - )
- C, I. R. }" ?& D - )
' `- }* `1 x: }9 N - (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...+ R5 t/ y+ f, b
- (command "_DDEDIT" ename "")& K2 j& X, l- f4 p% m1 j
- (setvar "MTEXTED" orgMTextEd)
! s5 W& h$ [$ D$ `) B2 W1 z - )4 r* t B" y, w" p1 a1 y
9 E- b* m3 ^: c- c- ;; Verify MText object width
# Q( ?+ Y* h% D' T! _ - (defun ver_MtextWidth (value)
X! _! k" P& U4 m7 v) ?% j - (setq value (distof value))6 K; M9 L$ I, ]2 d5 m
- (set_tile "MTextWidth" (ai_rtos value))
- }* j4 k) s6 e3 W3 a - (set_tile "error" "")1 s* E: ~+ V+ [( P6 k2 D! O- X
- (if (< value 0.0)
; t# E+ i) e* D# V) H0 i+ k - (set_tile "error" "Value must be zero or positive.")
* X6 C4 `8 [# }+ x - (setq wid value) X2 E1 J) B: c* ~9 a1 v R# F
- )
; k1 C' {* w5 Q/ N( a - )
! U7 y& I" h) \7 [& Y
# v. H" K2 A1 J, x3 ^- (defun ddmtext ( / gc3)
4 I! b# V. i! s2 w% p - ;; Get dialog
; v' J" B0 T! x: Y8 l9 e6 u2 v, A, K - (if (not (new_dialog "ddmtext" dcl_id)) (exit))
3 q# Y( y* W7 ?
# M* J( t( m4 ^6 I/ @# |3 F- ;; Load list boxes
L9 {5 W8 r9 `' v5 F W& u - (start_list "MTextJustify")
( j1 H# G4 i9 `0 \4 E$ W C - (mapcar 'add_list '($ \, F, r4 N! C* [' x# I, M( z5 E
- "Top Left"
9 j- n( C. Y( {" s1 E( x - "Top Center"
/ b/ k" H2 c7 k& ` - "Top Right"# U, b. `* P; L% H% R1 _# q: I3 T4 e
- "Middle Left"8 I4 z7 l/ l4 ^# P1 N
- "Middle Center") J- z2 a4 E$ ?* s2 S2 X
- "Middle Right"
1 Z3 l; s _' d* j+ P J - "Bottom Left"
B& J0 m/ K: L - "Bottom Center"
# B, F; }/ y8 z/ C - "Bottom Right"
1 I% \' B) a: L* h. W$ H x- l - )
9 E8 d. j8 p3 e, V* U - )
@$ |- V: Z: r( v) \- ` - (end_list)
" n0 I7 t" M8 j
( _- q6 L/ _8 u9 u1 E/ O- (start_list "MTextDirection")0 P" R3 k/ G4 g& L! H
- (mapcar 'add_list '(7 W" N0 g! e; @- x' u0 k
- "Horizontal"
# P, P+ G; |8 d8 D; u - "Vertical". u# v& k4 D2 [6 f+ r: E
- "By Style"6 A6 _5 v* X |$ C$ H
- )" v, l& d, q% \, k( w: T
- )
! |) @0 j& a o& x - (end_list)
& d N+ X. ^% @" W" } - 6 b' d$ v7 j' r4 p: m* p
- ;; Set initial tile values" j7 x. ?7 H# z9 a# y" R6 X
- (set_tile_props)
# ?+ j U9 W; N6 m: o! z - (set_tile_handle)$ m. I3 w4 A* U4 n# f# [
- (set_tile_pt1 0), M U E$ ?- `/ s# z) J
- (set_tile_style); l: y1 g* {$ t/ [' G7 W `0 q4 q
- (setq just-idx (cdr (assoc 71 elist)))
1 ~) N2 C* Z6 M$ A - (set_tile "MTextJustify" (itoa (1- just-idx)))2 \! @/ M$ i3 [
- (setq dir-idx (cdr (assoc 72 elist)))2 L1 a# U8 O; t2 N3 N. p
- (cond
+ G" e: R/ o U) |6 }9 L8 ^ - ((= dir-idx 1) (setq dir-idx 0))
; ?( f* n1 f, C. M8 \2 b - ((= dir-idx 2) (setq dir-idx 0))
# ?7 A" W6 t3 f4 O. p6 J - ((= dir-idx 3) (setq dir-idx 1))
& q4 C c# A# h: J5 }& B - ((= dir-idx 4) (setq dir-idx 1))
8 [8 l; n) }+ R) D9 o" D4 G - ((= dir-idx 5) (setq dir-idx 2))
4 U2 |/ ^9 S1 x- u2 l - (T (setq dir-idx 0))4 h: G, b4 @- g* L# U5 e: D# a
- )3 ^8 q" ^& K+ w3 l/ p8 \# J$ [2 x# }0 I
- (set_tile "MTextDirection" (itoa dir-idx))
+ j/ _& a: K6 U7 k6 e4 d* K - (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))% @1 L1 c$ G! ]9 m& e
- (set_tile_hght), C/ L& m& R6 F5 U! C/ @
- (set_tile_rot)
$ }& @3 j! R3 w. r- h" l2 i! Y/ h0 h - , p* j( V' i8 [# ?5 Z
- ;; Set edit box, disable if too long! P8 f7 B4 y0 Y0 A$ C# Z
- (setq gc3 (cdr (assoc 3 elist))' l. v# P" `, y3 }7 C* e3 \6 R
- text (cdr (assoc 1 elist)))
: O3 E! g5 C$ o( S+ ` - (if gc3
% K1 c8 Y. Q: s& p$ C3 R6 c. |% ? - (progn ;; Text is over 250 chars, disable edit tile
! B6 F6 _$ J1 V, P1 P% f" u - (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))
* R/ B' O& H) e( U1 J9 T9 J6 r2 ^ - (mode_tile "t_string" 1)
- Q$ X$ w5 M8 r: s - )* \/ @3 t R0 z/ l+ T1 \" _. T
- (if (> (strlen text) 80)9 C* R |- M7 \5 S
- (progn ;; Still too big9 O- ~ h+ w: y* T0 X
- (set_tile "t_string" (strcat (substr text 1 25) " ..."))
0 C6 W0 Y, b' H! F* e/ j6 S$ L ]5 W& r - (mode_tile "t_string" 1)* L0 P& H1 Y6 w% v6 w( h4 H/ k
- )
: t, o+ }+ I1 Y$ D - (set_tile "t_string" text)8 t) j& y* {. m$ J) j% J( S
- )
+ j; m; J! G* f - )
5 c# {2 t; K# o+ L0 q( e
" t* y6 X5 o7 T# K/ N- ;; Define action for tiles
% P& W1 c8 }3 P$ _% e# f - (set_action_tiles)3 n2 M7 d3 ~2 M: b
- (action_tile "style" "(MText_style $value)")+ O6 W7 T8 U4 x) t4 j9 \
- (action_tile "MTextWidth" "(ver_MtextWidth $value)")
) ?6 Q0 s4 s# s* f( e( @* f# W4 ~ - (action_tile "MTextEdit" "(done_dialog 4)")
% V$ X; b8 c* o( ]3 d - (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")3 w1 }; B' V. r; T( z7 w+ v1 Q
- (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")# P' K1 w' W$ }, }
; P/ ^5 R6 k9 j! s0 h+ G- ;; Set initial focus to text edit box.0 \% T" S5 G+ G \6 U8 I
- (mode_tile "t_string" 2)/ m' z: {7 }- Z9 E: i
1 }7 K5 Q% ^5 T- _: G% u* ?' u- ;; Run the dialog
% {$ ~9 l7 \2 }8 ^) y7 k" H - (setq dialog-state (start_dialog))% ]6 J7 F8 u+ Y. D5 P
- (cond
5 {; h8 [, j; ?7 C: @' e8 ] - ;; Cancelled - restore saved data- Y# x: V- K' _5 o& V
- ((= dialog-state 0) (reset))
1 M+ j$ r+ R/ r4 ]1 _" C+ a1 Q$ _ - ;; OK - save new data1 W! w6 ]' F6 h! A( o2 [
- ((= dialog-state 1) (modify_mtext))7 S$ w6 V5 w! Z' J+ P1 c
- ;; Pick new insertion point7 \+ ]1 }# S) S$ c
- ((= dialog-state 3)" `' _/ V& b! C* b, C9 x+ Q( O
- (modify_mtext), T4 a) m2 E& j# F7 H; o6 }6 \/ A7 d3 v
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))5 [! F; c% `! C
- (ver_pt1 0)
4 `! }3 n2 ^6 k' n$ i% T. v" w - (ddmtext), D. \$ Q4 ~; h# J4 h$ x& H
- ). ]$ m) n: y' \2 Q" P( i
- ;; Run full editor
7 w D' U& ?$ ? - ((= dialog-state 4): L0 R% b6 c @5 N; r( o R
- (modify_mtext)
}8 `4 n8 Q9 _6 C+ M' ^ - (safe_ddedit ename)
5 _+ R6 }+ g' A9 B0 ^& W - (setq elist (entget ename)): j* e- ]) N. c* O- a. K. ]! d0 D
- (ddmtext)5 S5 w1 u; a, a
- ): t! q% ~ {+ s3 |
- (T nil)+ Q2 r( i% ?' T9 \4 I
- )8 {5 t- n- M1 f1 {& e7 y
- )( i& J* D! }/ L8 } j
; ? _, o) Z. m ]* f$ L9 X- ;;# K$ b( k, I' g$ x$ n5 T
- ;; Modify VIEWPORT
) L+ Q. e* c- D/ u; N) M - ;;
6 o* B, _8 d! H7 B5 j" y
& q, w$ m$ \- c0 s) B- (defun ddvport (); T7 H( T- a+ P; a) ?
- (if (not (new_dialog "ddvport" dcl_id)) (exit))& p% o+ I y6 D; g+ z
- (set_tile_props)
' w, Z- D+ w% q4 f5 ~3 @6 J" O3 D* _% w - (set_tile_handle)( V# c- N$ D5 e4 B* ~
- (setq vpt (cdr (assoc 10 elist)))* f# u9 A) Y+ Z* S4 E
- (set_tile "xtext" (rtos (setq x1 (car vpt))))
; g( q+ x7 R" T: G: _& F - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
( i( M9 b- J; ]2 u- L6 J - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
$ J, _% E: {5 {6 t - (setq wid (cdr (assoc 40 elist)))
3 S% Q% g' I+ E - (set_tile "wid" (rtos wid))$ s: a3 v$ P) V5 W
- (setq hght (cdr (assoc 41 elist))) f" B" i# B( G. |9 ]7 X
- (set_tile "hght" (rtos hght))
9 t7 u P2 V- f+ F/ O' ` - (setq vpid (cdr (assoc 69 elist)))
% Z. K' X) n* ?8 E- _3 K" Z - (set_tile "vpid" (itoa vpid))0 p* J3 g5 e& r
- (setq on-off (cdr (assoc 68 elist)))
" a; {$ U+ U3 | - (cond
" D1 ^: W! X; }: w, g5 v - ((= on-off 0) (set_tile "on-off" "OFF")); ]) n6 Y$ @& K* n
- ((> on-off 0) (set_tile "on-off" "ON and Active"))' x" c! J2 t9 h6 P! j
- (T (set_tile "on-off" "ON and Inactive"))
' O- V2 v) x( ~' v$ M - )& i1 s2 N4 W E( A
- + V6 e; }. g7 y( d2 R0 h# v0 y
- ;; Define action for tiles
$ k& |/ {/ \2 l7 P3 T4 ` - (set_action_tiles)# j) |: Y+ q# G/ Z' t' f, p
- % l) x3 a6 a( B' ^; I/ I% t* Y' {
- (setq dialog-state (start_dialog))
* W8 K4 H5 q/ k7 a9 I$ T8 G' [5 s' p - (if (= dialog-state 0)1 q& n7 C2 k& t8 s, b7 a
- (reset)
: {& Z; c, g. n% M9 @ - )! K9 q$ ?; y5 q8 N2 b# k
- (if (= dialog-state 1)
L/ k7 `3 D. p7 z1 | - (progn3 t% H5 H d9 I1 O# d w. ~
- (if (= ecolor 0) (setq ecolor "BYBLOCK"))
V' c. c, N5 e% \! k* o - (if (= ecolor 256) (setq ecolor "BYLAYER"))" S( r& a- Z; L% v
- (command "_.chprop" ename ""
7 `/ K& n; |4 q: r% l: Z5 Z - "_la" elayer; H, x7 z) N* q& Q
- "_c" ecolor ""' _0 A# z) ]( u4 @, K
- )6 h$ I ?8 q5 r/ d( W* g0 _+ m: d9 U
- )
$ H5 d a: @1 f - )
( g9 z, U, J$ d+ L6 \ - )
- G/ G( I- y3 V& A - ;;
! `5 ~! I# ^' Y: Z+ f( o - ;; Modify POLYLINE8 f8 D# Y" Z8 C- _. {
- ;;
2 {0 b7 ]1 r" m- { - (defun modify_polyline (); Z! y0 f2 e+ B# y
- (modify_properties)3 [9 @' _9 {' w; s
- (if (= ltgen "1")
( O9 Y, [, I# r6 ? - (if (/= (logand bit70 128) 128)0 }6 V) }1 E' u) b% {! `
- (setq bit70 (+ bit70 128))* x" ~! j0 n o' G& L! c; m
- )
$ Q$ }% |0 w5 @3 W9 A7 p' u2 x - )
2 G& I5 V0 R6 s9 r4 E - (if (= ltgen "0")
! F) s& N. D! Z8 c7 d g, T. @* x - (if (= (logand bit70 128) 128)0 r; j5 d O+ s1 O6 _/ D! Q
- (setq bit70 (- bit70 128))$ J7 o/ h9 d/ F% ?5 P0 E, ^2 J0 r
- )
0 h, Z$ j3 g- ^ N% ^ - )* c, n1 \; t/ @2 S5 i& w2 k
- (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))
" p6 z) F3 F! `* N+ ^8 ` - (entmod elist)1 Z, C* y$ L& T6 e% @8 p+ r |
- ;; Added to take care of updating Vertex information for color5 O7 u- j- Y; o) d
- ;; and linetype. v9 p' p+ g# k8 J, ^3 e
- (setq save-ename ename save-elist elist)" {+ s _+ r6 r' Q3 T+ w
- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")( a6 M- J/ m8 t3 G
- (progn
0 T, E2 J" s# `7 k% n - (emod ecolor 62)
3 }" b5 q! w6 f8 ]5 n/ e' a - (emod eltype 6)
2 U% e9 m4 q: G& t/ Z: a - (emod eltscale 48)
8 \/ i/ b- {$ s& @8 t* O6 i - (entmod elist)6 y; X; R9 }1 f( K% Z, [
- )
8 I% g' V* I! r- A, S8 ?# B* N - (progn9 p8 C. \+ D$ w5 j
- (setq ename (entnext save-ename))/ @, n+ R* M/ t1 `
- (setq elist (entget ename))
/ f1 K: P" V M& o6 F: y
4 U4 |( ] _1 E4 }5 S- (while (not (= (cdr (assoc 0 elist)) "SEQEND"))+ a. }" N4 T# `/ }$ |1 Y
- (emod ecolor 62)
( d8 a1 z5 {9 G8 G) B( M1 ^( q3 p* q9 G - (emod eltype 6)# G* x+ t, t/ Q
- (emod eltscale 48)8 t4 ]& M- Y1 E; Q& m
- (entmod elist)" v7 J6 ]$ |$ T1 t: }
- (setq ename (entnext ename))
! a& Z; v/ P2 o$ ]- D* A - (setq elist (entget ename))3 Y( T! R5 W0 ~5 w5 X: g
- )
8 s; p+ A, i H) ] - ): p- s) g1 @2 K# q
- )% z1 T, ]$ M0 G
- ;; Update the SEQEND' p$ c! P0 h: v. o& Q \% D6 X/ r
- (if (= (cdr (assoc 0 elist)) "SEQEND")
+ j" f& t) C7 U E& |/ N4 x4 L - (progn
( o& y# d8 l- x9 p0 X# k! U - (emod ecolor 62)
/ p9 n3 Q$ h/ q+ g5 i V( \( {* Q0 N - (emod eltype 6)9 a+ i( N& s$ K# Z9 G5 [: d$ v
- (emod eltscale 48)
0 b7 e. x8 G9 l6 {5 U9 Z9 p- D# v - (entmod elist)
4 l( A: m$ { H& X - )
' B8 p! @7 \+ O. t% k - )
' C2 z* R4 k5 K9 {! m' s" g- k - ;; Go back to header.1 s+ \$ c0 Y5 `, x i- [
- (setq ename save-ename elist save-elist)! t7 Q3 f& z$ d9 Z/ [3 o3 G- K$ {
- 1 ~& c: ~4 W* i- Z
- (entupd ename): y9 M- c! }5 r- v% x9 c+ t
- ): D* R c" j7 `6 t( {/ P0 J2 c, Q
- ; E- O2 R, m- U$ j# T0 ?! } ~/ F
- ;; Increment vertex. Set tile values to next vertex
6 x7 T5 X/ {- {0 F6 n" u - ;;3 S( d% O0 E- g% B) t. `+ @/ j
- (defun next_vertex ()
# x$ a$ k0 F4 G/ I! t - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")( H' V; m7 _2 s. D) x
- (progn
6 P6 v6 v, [( k0 K+ L& o# X$ |: r - ;; If the counter reaches the number of vertices,
# T o5 s$ b: n# f7 V# e9 c - ;; roll it over to zero again.$ h; o& _+ W/ H/ P5 Z4 k2 @5 O3 t
- (if (= ctr (cdr (assoc 90 vlist)))
, f% ]. p; S( i9 u0 } - (setq ctr 0)
5 |9 Q1 u; F9 s - )" m" n. U+ B% r2 G
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr)))): [" N5 t* x; T$ _3 m) h0 r; C
- (set_tile_vpt pointype)
3 X. S$ q/ |# a$ \ - )6 L" Z& s' g7 ]! J. j/ V1 t7 }
- (progn
4 U* Q- G" W! H - (setq vname (entnext vname))
, B& y1 M1 I7 B3 X" y( n/ G - (setq vlist (entget vname))
/ h9 }0 k1 z6 D9 |! m - (if (= (cdr (assoc 0 vlist)) "VERTEX")
6 [& F' u# [+ t0 Z6 c - (progn
3 V" H" ?/ R2 S9 B# u0 a+ S# o - (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
0 {6 q- z* f F: J - (set_tile_vpt pointype)9 E f+ F3 ~( k' L" y/ A
- )/ Y9 Z% e' J( c* `2 D9 V
- (progn
1 g& b0 d/ D6 p- Q$ d; Q7 ?1 O2 { - (setq vname (entnext ename))
2 Q c. @9 |1 W - (setq vlist (entget vname))2 ^6 T% f! b% \6 q
- (set_tile_vpt pointype)
" K$ u9 \0 E6 L/ T( z& v1 {, V. L3 b9 J - (set_tile "ctr" (itoa (setq ctr 1)))
! G# [' r! v. x: `) `" F) F - )
: u' M& x+ a1 E" x/ j. J: _ - )
. u) Z' a A9 k9 I$ M- g' U1 {$ Y - )
1 b& g$ E! O; f" M - )
( p5 O( ^# H a5 } - )
$ U( e) k7 y: F6 T - + K7 D1 i; @ x: W2 }8 y5 R' z
- (defun ddpline (/ oldecho)
0 z1 s6 F5 n: M M" M) i( Y - (if (not (new_dialog "ddpline" dcl_id)) (exit))" F; P) a$ @% `7 }) {6 ^
- (set_tile_props)
/ w# u* s! Q* Y* a - (set_tile_handle)3 Y, Q# z: t/ |2 {: T! k# {
- (setq bit70 (cdr (assoc 70 elist))); L' d% @7 s/ M r# E4 i5 t
- (setq bit75 (cdr (assoc 75 elist))); t$ _4 Y) \* H h# F: Z
- (cond
8 A! b& x. J; V" S5 k - ((= (logand bit70 8) 8) ; 3DPOLY7 M: H) _& K! r: m+ y4 Q
- (set_tile "ptype" (setq pltype "3D polyline"))% s$ i3 f R# q9 B- \
- (setq pointype 0) ; WCS or ECS point values
* x B9 }# m o) ?) J3 e! S2 p o - (mode_tile "fit" 1)
+ j& \8 D" I$ f( Q& P8 c! b8 X" ~ - (mode_tile "mesh" 1)
- p1 ^+ ^, E I8 m) W6 d - (mode_tile "bezier" 1)
( h" T" C6 N' w9 G - (mode_tile "ltgen" 1)6 o2 _4 C& ?0 \* g+ ~
- (set_tile "none" "1")
% S. S+ |+ m) P* b - (set_tile_closed)# g+ A- f6 j2 Y
- (set_tile_fitsmooth)
) T4 {, y' C; z5 O5 } - ). o( c$ |2 a( Y3 \
- ((= (logand bit70 16) 16) ; 3DMESH6 `6 t" ?- H' Z1 X6 P. N r1 d# @4 r* ~
- (set_tile "ptype" (setq pltype "3D mesh"))
- n6 N5 Z* b2 c; r7 Q2 X( {7 M- [ - (setq pointype 0)
5 \; y. l! E" l; \ - (mode_tile "pline" 1)
% [2 ^) X/ Y) G' m( b - (mode_tile "fit" 1)
+ R; E: A+ L" k: P; o3 S* j9 S - (mode_tile "ltgen" 1)
$ m# r' \1 Z' X; a$ o' M9 q - (setq m (1- (cdr (assoc 71 elist))))0 @; T8 c4 e0 `$ @! V& t: O
- (setq n (1-(cdr (assoc 72 elist))))+ i/ n7 a0 O0 D- f1 ?
- (setq u (1- (cdr (assoc 73 elist))))
' y9 Y; r- ^4 } - (if (< u 0) (setq u 0))+ {/ L4 f5 A/ \; S, ]
- (setq v (1- (cdr (assoc 74 elist))))# A" a5 u, c/ Q+ s% q
- (if (< v 0) (setq v 0))
1 @* r8 k% U) A, r0 F - (set_tile "m" (itoa m))
8 z# i( k6 B+ J J - (set_tile "n" (itoa n))
: }/ j2 V8 \/ Q V4 k - (set_tile "u" (itoa u))$ k* j4 W+ I9 a# B0 D% y+ q
- (set_tile "v" (itoa v))7 E, Q- R+ I; q- K) X# ^/ }6 c
- (set_tile_closed)+ a3 e; A/ I. O" S* @( D9 x
- (set_tile_fitsmooth)
8 F0 d* v. c; V( z+ g8 S% G - )" Q- t w' i4 y4 p# R
- ((= (logand bit70 64) 64) ; POLYFACE MESH& ?2 Y' o+ @1 |7 m' t* d0 L. O8 s
- (set_tile "ptype" (setq pltype "Polyface mesh"))0 k$ z( _; L4 I$ v4 N) X- `+ c
- (setq pointype 0)
( C+ v6 l: D) V6 I. X - (mode_tile "f-s" 1)
6 I7 M6 k; ], W - (mode_tile "mesh" 1)0 y8 \" Z$ k7 P+ K
- (mode_tile "pline" 1)' V9 y. y; F1 Z
- )/ }7 H* m) C+ u/ P7 F
- (T ; 2D POLYLINE
5 J! }$ H6 Q: u9 K2 @( L; } - (set_tile "ptype" (setq pltype "2D polyline"))
; Z% |4 {& s5 e$ Y& I3 F - (setq pointype 1)7 S/ d! K+ O# |+ z6 t9 O
- (mode_tile "bezier" 1)
. l4 q7 P2 K' f9 ?# M# i - (mode_tile "mesh" 1)
; @5 S6 [+ E8 Q% B% C h3 ?, T - (if (= (logand bit70 128) 128)
2 X* n7 z6 x2 U - (set_tile "ltgen" (setq ltgen "1"))
9 R7 h( `) G4 O+ E - )- v- A, f. _+ }+ d( L7 S- x) ~0 Z
- (set_tile_closed)* a4 L( ]- J+ ]# v5 W9 j, X1 l
- (set_tile_fitsmooth)
# W5 X) [( ^- V9 n& |) B - )
% w0 N% l% {, w/ S2 ]! R - )! _9 z- a% d. S) W5 V2 o
1 P( j) {0 A' d- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")4 A2 \6 Y6 ^5 m3 A( g K
- (progn% L2 n2 F7 B- V2 y
- (if (not next) (setq vname ename))" ^0 u, O, U! k* g
- (setq next T)
5 @& W: ~' ]9 G" I - (set_tile "ctr" (itoa (setq ctr 1)))
{# |7 }4 b# Q( M1 w - (setq vlist (entget ename))' d' B, m9 u& Z8 ?& @8 L( s4 \
- )6 {6 c o8 ~/ V9 b+ E% k
- (progn3 V J. T8 n1 @' B, v# t
- (if (not next) (setq vname (entnext ename)))5 z1 M: U* G2 E0 A- D. z$ j
- (setq next T)0 w. o, O8 ~. _! h" p {
- (set_tile "ctr" (itoa (setq ctr 1)))
% K" L4 [0 {5 g: X* L. m- Q - (setq vlist (entget vname))) v! N7 F, M( u: O
- )2 ^8 Q: p' b' b
- )& _; C. m/ V1 p+ d6 j+ ?' j1 F6 V
- (set_tile_vpt pointype)
9 y0 q7 R. V5 M% X e/ v; l - ;; Define action for tiles W! A1 c7 p# R& p5 V' {4 V
- (set_action_tiles)/ M- e' E; S1 J% H1 o B5 h) L$ N
- (setq dialog-state (start_dialog))$ c0 f/ |( ?7 b- v$ h# U, b
2 V; S/ m% a! B& Z3 Z/ o- (if (= dialog-state 0)
3 o1 P% w1 O3 | - (reset)0 j5 {. h- L' i5 n4 H
- )
7 f) N x% b* @- n% F4 D# V6 o - (if (= dialog-state 1)! Q7 ^% t9 A- U) ^/ W: t6 c9 b
- (progn/ S# [1 p" X! |' t1 H8 ]
- (modify_polyline)7 x5 I. f+ {- G0 K- h$ [
- (if (or (= pltype "2D polyline")! V2 k# H U. M' o: G
- (= pltype "3D polyline")4 b0 t5 \7 [; o! L/ X- e# W' o
- ), d$ g: u2 F# G
- (progn
$ t, T! j9 S& `; e8 ?% \* d - (command "_.pedit" ename)# l: u2 p/ a: C8 K0 b
- (if (= spltype 0) (command "_d"))
. l2 ]+ C9 V' j! [8 A - (if (= spltype 1) (command "_f")) P: y: k6 a% o) u& k
- (if (or (= spltype 5)/ W' f+ }7 N/ v& f5 E% j3 Z
- (= spltype 6)' ~. n1 W' _/ V
- )" k: q. c8 n* N; d" B
- (progn- |3 {$ T1 C5 `: k& ?
- (setvar "splinetype" spltype)
( t. h2 v; X+ f+ i3 ^6 p9 [ - (command "_s"). n, i% M( W. g7 R# ~/ ^: H. \
- )' Z# u7 a( B4 y, \* j) s" W
- )
/ v h2 p5 V1 b2 m - (if (= closed "0")+ _( a$ Q2 V. k/ W0 G+ z
- (command "_o")# f/ k& r8 k, n v. J/ c% P C
- (command "_c")* d' I/ y4 ^7 I
- )! C; t8 Z. A3 L, S! Y
- (command "")
0 a% D* ]+ K5 r+ D9 x/ K" K
# H0 I; k9 [% @) f% z- (if (= spltype 0)# O# m0 I* C5 F% k
- (progn
# P' U7 X8 C. k5 m% l# [5 O - (setq oldecho (getvar "cmdecho"))" F" i4 ^' v: w. B! Y8 C' Z
- (command "_cmdecho" 0)% D# [& \3 Z( J1 {
- (command "_convertpoly" "_light" ename "")
- Q' a4 P4 f/ ^9 { - (command "_cmdecho" oldecho)
3 r2 D$ w, Z( u - )' d% Q9 o% Z2 O; ~9 B3 l
- )
7 V0 C( @; Y, _& D- ~# h1 \ - )
/ j8 Z7 a" t3 ~ - )+ ~: q4 b4 }/ n
- (if (= pltype "3D mesh")
2 T3 q6 s+ j5 X! r - (progn
5 P0 D0 h/ E/ g2 t! s1 L - (command "_.pedit" ename)+ w8 a% w; f- Q* V/ y M
- (if (= spltype 0) (command "_d"))' B& a# ?2 e' S E2 ]5 |
- (if (or (= spltype 5)0 L* m( h( p2 y6 O
- (= spltype 6)
# [) B2 k* Z9 n: n: ~: A - (= spltype 8)
( h. ?. k! p: s/ O - )4 Y% f1 E7 e" [0 h9 d
- (progn7 X4 ~' X' C. M8 c. W/ j. U
- (setvar "surftype" spltype)% z# a! H& I8 f
- (setvar "surfu" u)
6 z; ?$ S- l- H% Q8 O - (setvar "surfv" v), h" ]0 S4 ?' r H
- (command "_s")
" k& w j2 a1 q' S - )5 q6 t) T, b1 f z$ `4 G4 f
- )2 T' Y& k) f. j( v9 p# E/ G$ }9 o
- (if (/= closedm old-closedm)
! b* ~* ]1 `9 V% y# C9 o3 z. ] - (command "_m")
' R7 ~& |3 k0 v3 |" c3 Q2 U - )+ U* k/ d* [! y& A# m
- (if (/= closedn old-closedn)( D P5 t6 U5 B- N5 g0 E
- (command "_n"). O* T+ G7 Y# c/ a
- )/ R( Z8 ~* K/ j) ]. g2 G
- (command "")4 |, z- M+ j9 A- q/ p0 w
- ): X: x! F! c" h4 s% G* C
- )
# E' w9 {2 |4 |" y2 U4 r+ I - )
- ?: |+ V ?! a( D1 Z( J - ). d0 a0 B! ?+ @* U) `7 j7 v* D
- ); b9 o6 H6 |7 L0 b) p
- ;;. [5 n9 Y$ d7 F9 P
- ;; All the spline data is contained in a single elist. We must do some
- M* Y9 l9 t8 l - ;; tricky list processing to loop through the elist in order to display$ V% C8 j5 |2 J: C8 o- s
- ;; all of the control points.3 E: [2 O; q& T" `7 ~: ?2 _
- ;;: ?" ]7 R# ]9 ^% f6 J: Q
- ;; The structure of the elist is different for rational and non-rational( v, K9 ]" Y/ J# ^; l$ [
- ;; splines. Therefore, we check the rational spline flag.0 V9 c6 I1 d" S' C2 P! z! H
- ;;2 J! J1 U$ _2 e m% u9 C! j% L* c) A
- (defun next_cntl_pt ()
1 ]) w. ~. B8 ~% n - (setq elem-no 0) ;; elem-no = element counter+ a, f7 z6 z5 |4 V$ M* y4 a Z) [7 V2 C
- (if (= first-10-time 1) ;; If first time, find location of first5 k# { v* F6 B
- (foreach list_item elist ;; cntl point element in elist
+ E$ v2 i6 l) G9 P/ f - (progn
% m; ]( D6 j( a4 H( w4 W - (setq elem-no (+ 1 elem-no))
' u9 }, Q2 u0 L; v5 t: s& k, ` - (if (= (car list_item) 10)9 q( q3 Z: Z; I M. h
- (progn8 D4 k: Q- F7 H3 ^. t' j: w
- (if (= first-10-time 1)
! s# Z& K6 K- l5 d% j - (progn
8 t; \2 j9 m0 S# Q - (setq first-10-rec (- elem-no 1)). J: X& S7 d2 u( x/ O
- (setq first-10-time 0)
6 S( H9 B q k" V+ | - (if (= rational_spl_flag 1) ;; if rational
; A- \# Y# v. g; Z: n& q! _ - (setq cur-10-rec (+ elem-no 1))
8 F; t! \; P. K! a" d W2 Y: l - (setq cur-10-rec elem-no)+ Q; [7 _: {' S+ o5 Q) |
- )* f6 H P! v! e3 j6 g- k- m% Z2 \/ y
- )
; k' S( X6 { l0 G- N - )2 R" F( Q5 ?( N( y
- )
4 L/ @, Z1 p6 r' v - )
) q6 ~6 p/ I5 \$ J( U3 x' X - )
% r( C0 s/ u) T$ }: R" p - )8 f) q8 A- Y$ x+ W6 t( K& N
- )
/ v4 ~& b- a+ t8 ^/ v - ;; Now we know the location of the first "10" record; it's stored% {* k4 E% ^0 Z, S
- ;; in first-10-rec. The first 10 record was already displayed when
. x4 R3 ^( {) b& O' P7 r" ~ - ;; the dialog first came up so let's display the second one when
1 F5 y, Z/ f, U1 b, C5 ]: V% a - ;; the user presses the "next" button (the first time through).
8 r" b- W" i9 n, a4 x. B - ;;2 _$ S9 g4 ^5 x
- (setq temprec (nth cur-10-rec elist)): \$ `- X6 l0 N8 d Y( a% a
- ;;1 u' R% |4 r4 d' b$ N4 [1 q
- (if (= (car temprec) 10) ;; if 10 record( {' S% o& p h6 w! g$ N; u
- (progn8 R9 n6 ^: P& p3 K$ ?8 r
- (if (= rational_spl_flag 1) ;; if rational spline
$ g: f {/ V* r t% J' w - (progn
; G( q& g, J5 }, S) F8 y - (setq tempweight (nth (+ cur-10-rec 1) elist))
, L# B& B& f' i4 G6 _ - (setq cur-10-rec (+ 2 cur-10-rec))
. P; s0 j) ~9 U! G% S) Z0 z* y - )% p2 G4 D1 z$ F! ~9 U
- (progn ;; else, n) P& B9 Q3 {$ ] G
- (setq cur-10-rec (+ 1 cur-10-rec))# E8 G O6 i: a U6 q
- )
6 c0 [. e- E9 H7 m4 a; H - )5 g8 B* l1 Y7 Y
- ) ;; end if rational spline, c! {0 I: x# w& j: m6 C" F
- (progn ;; else reset counters
1 ~9 a6 V1 L% e) R - (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec* Q0 o8 ]9 a+ L' W$ q% F4 }
- (setq tempweight (nth (+ first-10-rec 1) elist))4 D0 \ C* e5 A5 |! h. O5 \4 ?5 x r
- (setq cntl-pt-indicator 0), p+ ?. w. f& u# e: u; [
- (if (= rational_spl_flag 1) ;; if rational6 C1 }" I4 n X$ o
- (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec1 m( N4 U# N( p; O. [8 x
- (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec/ p: P, C* d" X/ o( i9 X4 b
- )
& N' u5 c' ?2 Y, \/ j; W - )# K6 C0 B. [5 @4 o
- ) ;; end if 10 record
& n6 w+ @' E% o+ L - 3 w/ k# d& c8 f* T
- ;; Display cntl point, weight and ctr. Increment ctr./ M$ {4 N8 V' n$ S6 }7 z
- (setq cntl-pt (cdr temprec))- D: @9 g# Z' Y6 q+ M& m6 m: P# T
- (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
! W$ q" y" h [( s3 O* V5 ~ - (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
% P* `) D. o1 l- A3 P - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))
$ \7 W2 t, ~5 J: ? h - (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))
! u$ [6 ?1 d) ~* I- a, o1 B - (set_tile "cntl_ctr" (itoa cntl-pt-indicator)) F/ Y* I z* J$ e
- (if (= rational_spl_flag 1) ;; if rational1 M2 K" g: L# F8 k- g/ ^
- (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght9 ?* ~: Y! {! p9 |
- (mode_tile "weight_text" 1) ;; disable wght* ?6 ^9 U2 A1 m% h9 Y3 Y
- )
0 y6 G4 \/ a3 l7 k - ). z0 O2 `9 Q0 x& T
- ;;
" \5 ^2 V! n& x - ;; All the spline info is contained in a single elist. We must do some
# s; B. u8 k C$ R+ Q - ;; tricky list processing to loop through the elist in order to display
) f# }# J2 ?+ _) l* x9 n, X - ;; all of the user data points. i& N6 W, s! S/ |
- ;;
. a" @& b0 u6 m4 W6 Z. k$ T9 G& y - (defun next_data_pt (): W3 l6 W" h3 h- `+ C
- (setq elem-no 0) ;; elem-no = element counter
; ^' ?& v8 X6 }% T - (if (= first-11-time 1) ;; If first time, find location of first6 m1 J5 r# M6 B) H6 q9 Q
- (foreach list_item elist ;; data point element in elist6 j$ g% N, d, B& L2 m5 {5 ^
- (progn
5 A$ b* f1 J8 N' Z: A - (setq elem-no (+ 1 elem-no))6 M% L. q2 f: g# ~/ ^! t8 _8 V
- (if (= (car list_item) 11)
% Q& n) i j3 I: I; b8 k7 H6 A7 R u - (progn
+ ^/ o3 Z1 A8 D# a. y - (if (= first-11-time 1) J% [: T- B i9 f" ~
- (progn
" W7 R. T3 D9 L+ d3 ]. ]6 O- O - (setq first-11-rec (- elem-no 1))
7 t! y& e o- R7 x, M. T* _ - (setq cur-11-rec elem-no)
4 g& q7 v _6 x8 J - (setq first-11-time 0)6 O- J' x- p' a& Z
- ), ^2 N# n5 A5 K; W% E. E
- )
6 k6 e# s. n2 H' I( q* ^4 n - )( ^& E' `2 T+ Y
- )+ p. r* b9 @- T# W
- )) Q) y1 M: R& D" Z$ f( i1 Q; A! r) M
- ). n$ \0 }* O/ Y4 Z3 d1 t: X
- )
, J, c( I+ O \9 S' z& B# Y - (setq temprec (nth cur-11-rec elist))( l7 L- z1 l/ w
- ;; If it's not a DXF "11" element then we've gone past the last, i2 D; B" {- Y, l' e6 `
- ;; "11" element. Go back to first "11" element. Reset counters.3 K. E) g: g5 @+ O! T
- (if (= (car temprec) 11)
2 Y* A: O' W: _2 |/ N* Z3 `( p - (setq data-pt (cdr temprec))
0 F% z( p6 y$ [! Z% k - (progn ;; else
# [- v% D1 p5 s9 D. X% Y6 I0 R: A; W - (setq data-pt (cdr (nth first-11-rec elist)))
' Y. O. n q6 A6 \% ~ - (setq cur-11-rec first-11-rec), J9 d6 f& n0 {8 |8 V/ J" t
- (setq data-pt-indicator 0); \6 ^ b; s7 n$ _ \" V+ A' k
- )
; b1 W" V p) W# { - )
6 i. B' q6 q7 j9 K3 k - ;; Display data point and ctr. Increment counters.; R8 ]* M. C2 u$ m: P) d
- (set_tile "dxtext" (rtos (setq x1 (car data-pt))))3 h& @# }/ P0 @6 K$ h: ^
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))/ k. F- ?( v/ u
- (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
6 l+ n+ r6 H: k/ t& I# d+ q - (setq data-pt-indicator (+ 1 data-pt-indicator))
2 |# g' k$ E; K7 x1 x - (set_tile "data_ctr" (itoa data-pt-indicator))
* V; u9 K0 ^ i, T - (setq cur-11-rec (+ 1 cur-11-rec))
0 D _8 G6 o+ e! h2 p9 c% V) v$ | - )6 _0 ~4 ^0 w/ n' A$ e
- ;;
, J1 l0 @8 @2 Q$ g' a/ n - ;; Modify SPLINE
1 `5 V( D6 S, } - ;; s, d9 F1 L$ d) o3 {0 H
- (defun modify_spline ()
& X2 b7 S4 E5 V( z9 J - (modify_prop_geom)) @5 J, v7 F! j/ M( X* ^3 p
- (entmod elist)
, {8 ]& B$ Q' T' Z) D7 y$ o K - )
0 C% ?5 ^/ y7 |8 w$ t7 a- i - f; C6 I9 q) ~/ F1 Y
- (defun ddspline (). |+ o6 A* r4 ?+ Z: s$ B! u
- (if (not (new_dialog "ddspline" dcl_id)) (exit))
8 Z2 r7 r. B g9 C2 ?6 F- ?' c - (set_tile_props), n8 p s, g. A% _' s \
- (set_tile_handle)
! _$ C+ `$ e% P% c3 h& A& H - (set_tile_spline_props)
. f: p8 Z; @" d8 u! _& x+ h6 a& r - ;; Display first control point4 c; L2 ` R9 _
- (set_tile_cntl_pt)
' b/ Q4 Q' v* Z# ]( N9 | - ;; Display first data point4 Z: d5 @) F1 I0 a, D! g
- (set_tile_data_pt)
/ @8 C( }1 ]" v( d6 V7 z/ k! j$ `7 j - % n4 h5 s! G Y4 G
- ;; Initialize flags to indicate first time through the dialog.
) X- c0 Z+ m: ~/ y! }" ]$ l - ;; For control points and user data points the "next" buttons$ \( u0 v, f# r, T+ \% Y
- ;; in the dialog call the appropriate functions.
' m8 X- g% X4 D7 K& N" @1 M1 ] - (setq first-10-time 1)* O6 A* R e: Y1 c
- (setq first-11-time 1)( Q& r* n# p% L% a# a, j
- ;; initialize control point number counter! |3 r" ~7 [6 y% e* W/ H
- (setq cntl-pt-indicator 1)
1 L' H" z' U$ ^4 E i) w - (setq data-pt-indicator 1)+ R' ]% A% m; E5 p
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))- u! v" v2 }* z7 L, O4 o/ g/ p8 P% G
- (set_tile "data_ctr" (itoa data-pt-indicator))
# E8 }$ ~' i& A: W - (set_action_tiles)8 Z* Q0 \7 Y. P" I% n9 p
- (setq dialog-state (start_dialog))
5 c, S8 A# a P/ S1 V5 T - ! F) F; q: |& ^' N4 v" I4 S
- (if (= dialog-state 0)5 h J1 k0 P- K$ U
- (reset)& @' Y5 @- c: a/ B( ^
- )
B1 |( r/ \2 e8 L( R$ n7 ^9 n - (if (= dialog-state 1)
" a4 H9 y$ _8 W - (modify_spline)
6 `2 k. R, O/ _6 X+ H3 ^ - )
# {, a* F; P9 u8 l; i: d - )
% F3 E. t0 r" J- L7 D( k L* [# m - 1 v3 d- U! U0 O2 f% z
- ;;6 h5 E% Z& r0 ]- b7 g" w: ]/ ?
- ;; Modify DIMENSION. X/ c$ I$ k0 d; o B' J T
- ;;
' z/ q/ L9 d3 t' ^; F, ~! U - (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl8 X; g- P. @& i
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
2 B, S% H4 {" U9 x, w/ X$ n* n - dimtype dimsvcurset)
% M5 u2 Z% F0 e - (setq dimtype "DDIMEN"9 T- N$ D- o* V$ v1 S' i- b
- dimsvcurset (ddimen_dimsty_restore)' |5 ?% t- v. t5 U. f: k# ~$ K
- ): r( A8 y% ]; h) l6 T) f3 T
- (if (not (new_dialog "ddimen" dcl_id)) (exit)), V1 k) L1 u( j- [, r: {
- (set_tile_props)
" r9 X1 k& M3 q1 H. ` - (set_dimen_props)
2 Z# V& b/ i |+ u1 [ - (setq dimtext (cdr (assoc 1 elist)))& ^1 K+ c1 K3 M& G- J
- (set_tile "t_string" (if (= "" dimtext) "<>" dimtext))$ \2 V/ P Q1 [* b5 P# Q3 f$ M
- (set_tile_handle)
5 x/ E3 ]: U. G - ;; Define action for tiles
5 e6 T+ |% A q$ p2 u$ h - (set_action_tiles)
/ d+ L6 P% ?1 b' }0 F" ^* e; z- {
) s( j; S. z# L$ }$ j- ;; Set initial focus to text edit box.
q* Q# [0 ]4 c - (mode_tile "t_string" 2)
! o+ o9 x. Y$ ?! z. ^0 i, T, }
5 A1 s w0 i0 G0 y" [) Q- (setq dialog-state (start_dialog))
# T: N2 k$ A# N - (if (= dialog-state 0)0 s! U4 Y. x; F# \
- (if (= ddimmt 1)
7 A4 R) k& f- Y5 K* ^; w - (reset)" [7 F! c! ~# S7 H# u
- )
$ |- |1 h+ n6 l - )
2 S- R" y3 i) e. J( ? - (if (= dialog-state 1): Y- g6 Z. \$ f5 ~+ u- E
- (progn. ~. t: `( I# S' u# |5 y
- (if (/= dimsty stname)
! U. a* S- w$ u2 U u9 C - (progn/ A4 W2 d8 }8 g! x" ^
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
$ a. \( {( j6 P8 ~( O% Y - ; doesn't have it.8 Q7 a5 Q9 p; e2 i- P
- (if (null (assoc 3 elist))/ f- u0 S. u6 V7 c" O! |6 J( o4 m
- (setq elist (append elist (list (cons 3 dimsty)))); V, |) B; Q9 R1 n, z1 p
- ; else just replace it.
4 ]$ V+ L, h" M7 I9 N/ f% r - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))$ l- X7 y4 [9 x
- )
, N) o/ a: e0 p7 W; _; a - ; refresh sv_dvlist with new dimstyle.* j; U% N( \ Y. ?5 P. w& u3 i7 r+ Z
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))- {" A, j: D3 r) @5 @4 m
- )
9 O e+ D9 r$ q" R) j - )
4 n) I& D$ G: d a$ W7 W- F - (if (not (null dimlist)) ; attempted to change dimvars
: Y8 G3 U' Y- \* @5 B0 C - (ddimen_complist sv_dvlist dimlist dimtbl)
+ j% m8 I3 p0 \) J - ) Z, t. H% a# T3 d# t0 y" c6 |( A( w
- ; Modify dimension text* V3 r3 b4 }# m, {
- (if (/= dimtext text)* a. u5 S+ W& @, O; S
- (progn9 d, w0 G' \* a
- (setq dimtext (if (= text "<>") "" text))
6 @# ]1 z' c) \! J$ l ^- o - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))7 d4 L/ M9 ~- k3 n2 V0 z9 D2 d
- )
* @6 o9 Q% e- l/ S1 W - )/ M4 ^* I0 L5 r
- (modify_properties)
) {6 a: c3 F- s4 u) \5 g6 D - (entmod elist)* I% Y% r- R- B! H3 ?* ]2 N
- )# h2 V, R+ Y+ i1 E0 d i5 a8 F1 P" Y
- )
- a$ ?2 ]# N% n. F9 i - (if (= dialog-state 4)
, J7 N; \4 G1 H" H% b% P - (progn
& j" \/ w t _( R {, m- ] - (setq ddimmt 1)
; w. K- }. A1 I+ Q1 L - (if (/= dimsty stname)( f6 R, y* h" x4 S- ^- R
- (progn' j' y3 U4 y9 \" ]; {
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case9 [, U6 }! D d$ p; e+ O
- ; doesn't have it.0 o, T% {/ x2 z
- (if (null (assoc 3 elist))
% o1 L( m' g! h) @4 s2 Z6 ^ - (setq elist (append elist (list (cons 3 dimsty))))) J* M7 F, r$ _8 {0 r. t
- ; else just replace it.
: k$ X. g9 P/ `0 Y - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
1 {4 u3 o9 C& r4 @. }' l+ @: v - )
7 ]( o2 }( R/ |- h, } P - ; refresh sv_dvlist with new dimstyle.
3 H7 U9 Y m( U1 ~$ V: {4 C0 ` - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
* M4 j' U7 i5 O. }6 C; h - )
]1 p0 `5 I( X( G6 V6 c( q5 f - )
6 d3 A% _9 G0 r1 m$ h - (if (not (null dimlist)) ; attempted to change dimvars; n4 j& t% h. B) p
- (ddimen_complist sv_dvlist dimlist dimtbl)
: T6 P. s6 u5 }+ _ - )$ `, A$ g- ^5 ~! K; H/ R
- ; Modify dimension text4 b- ^* Q! C1 |
- (if (/= dimtext text)7 j$ n* B( N G1 L. a+ K3 C
- (progn
- m1 E2 d) D# [* E4 K" } - (setq dimtext (if (= text "<>") "" text))
" a; q7 e, u. N* U5 I' V - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist)) q7 V0 I5 [9 X7 k4 U- K s$ y
- )
8 }; f( i8 M! H" e1 ?9 @ - )
! g2 q4 h8 E) }, B% I i - (modify_properties)
& c7 ^6 t& Y% g' G* \ - (entmod elist)- l; F$ x% h5 ?
- (safe_ddedit ename)$ W% d# Z; r8 j1 \1 q+ Z$ p
- (setq elist (entget ename))
, @( E. a( y1 _0 K4 d! o6 h5 P {4 V - (ddimen)
- F; p4 d. q5 | X - )! c Y+ c) g0 n; u
- )" K: m5 X7 W: M4 q; p
- (ddimen_setvars dimsvcurset) ; Prepare to exit
/ O( H; f" m2 B e' Q6 B. n6 q8 z - )/ j3 E* ~( u9 D/ i9 |- S
6 u. n8 p; w. v& @1 Y- ;;
0 @1 _; }3 T* N; N+ X% B - ;; Modify TOLERANCE
7 ~1 S" i9 O% y6 X3 C# l - ;; E8 z! H2 n8 L( P% T
- (defun ddtolerance (/ a stname n dimtbl0 ^9 {1 J' w, q/ f! H# A( g8 z0 R
- dimsty dimlist dimovr sv_dvlist stlist dimtype
9 \5 o4 X8 I$ A- l2 \# x/ B - dimsvcurset)
& R: o5 l& E0 ]1 T) v - (setq dimtype "DDTOLERANCE"$ H! P2 `* p4 z7 F
- dimsvcurset (ddimen_dimsty_restore)
n- u* v F' h - )
, b- h+ V! k% ?& \2 E, c& o - (if (not (new_dialog "ddtolerance" dcl_id)) (exit))
* h: i: Z9 B* [, k! w3 |9 \ - (set_tile_props)% X; s) s/ f2 G" I6 x) ^+ u: z o
- (set_dimen_props)2 O [% L. ?# p" F! g
- (set_tile_handle)
8 ]& {; \; S& }; O: A+ F - (set_action_tiles)' B9 ], o; ?# Q0 o* l
- (setq dialog-state (start_dialog)), q3 O1 E2 G- L6 f. C; ~! ^
- (if (= dialog-state 0)$ f V6 l# N& A% d. t
- (if (= ddimmt 1)
% t7 l- K7 z8 @) G) B; Y: M - (reset)
0 U& W5 I0 Y; Z) E- A - )' F+ y, K" Q% p- {
- )6 z- r+ i6 G# E, a, Y
- (if (= dialog-state 1)& n+ r% D, X; p% h& m' l8 L- S
- (progn% y* q$ J2 h: A! I* d9 h! a, `* }
- (if (/= dimsty stname)
$ z2 z2 z9 K# a) ^7 a/ ^ - (progn
. y i0 _ r! H- _ - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
- T( U: l& F5 F3 r. C7 U1 d( L - ; doesn't have it.
- }% h# j6 ?- G k - (if (null (assoc 3 elist))! X# c3 m9 V- b
- (setq elist (append elist (list (cons 3 dimsty))))
$ ^ i8 E) x) O9 O8 ] - ; else just replace it.
" Z# R/ d: }9 B& _0 \8 Y - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
/ |- t! G E: h* I5 P6 f - )6 h5 Y2 w2 d$ {8 V( e$ l8 g) k
- ; refresh sv_dvlist with new dimstyle.
# U0 R9 P- f0 Q" J5 F+ B - (setq sv_dvlist (tblsearch "dimstyle" dimsty))( q2 N, C- Z4 [0 l" S6 E9 t
- )
' k, R, h: X1 d D, \( D - )! q* r% i) \0 I/ i
- (if (not (null dimlist)) ; attempted to change dimvars* y- E& m; \/ ]6 d. `/ x
- (ddimen_complist sv_dvlist dimlist dimtbl)
4 Y5 H: y: j8 S0 r; W- s. C) Z - )
: _, _0 _ T& [( F k - (modify_prop_geom)9 f1 l N5 q' o
- (entmod elist)+ h7 z5 O" O* G7 E* M
- ). `% U9 V; C1 A! o
- )
; D; N# g* J3 w# k - (if (= dialog-state 4)
4 F8 \" B P/ E* g& `0 m* k/ z" H' F - (progn0 ?. d1 P3 @' F8 X
- (setq ddimmt 1)
3 k2 F1 b9 L4 Q4 L$ g5 L( d/ D - (if (/= dimsty stname); F2 F: r9 a7 u) T" `3 r. ?
- (progn
5 P3 r4 e. K# c - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case4 M# c0 A1 I1 i8 S
- ; doesn't have it.7 U3 C5 f4 v5 @0 `5 Y0 y
- (if (null (assoc 3 elist)) M2 Q8 K( k+ X6 `) F- \
- (setq elist (append elist (list (cons 3 dimsty))))
- n$ I1 M! [% n+ l: Z* V% \ - ; else just replace it.
/ C @; Y% E- ]* `- x, a! M' [6 h - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
I# B% a4 P/ [0 u' C- d - )
# Z& K+ m( p3 {+ Z% Z1 M - ; refresh sv_dvlist with new dimstyle.
* a5 i: _; @7 d) x- S' | - (setq sv_dvlist (tblsearch "dimstyle" dimsty))( U: O6 X' [. Y$ h. H* @
- ). M% S* O+ k5 w2 l; n; r
- )
: T7 W( ?/ z5 Z: H - (if (not (null dimlist)) ; attempted to change dimvars
) g: B( j/ Y, {) \ - (ddimen_complist sv_dvlist dimlist dimtbl)
' y( ]9 ?: X2 \/ l( E - )
! w% Z4 J* e% u w - (modify_properties)6 r+ \# L3 F; N
- (entmod elist)
: H8 \8 Y! [! P4 h) Y6 Z2 W - (safe_ddedit ename)
M6 h- y6 f8 q% L6 v6 X7 c - (setq elist (entget ename))
6 w5 W |# c" B5 |' E - (ddtolerance)2 A+ s l, @% ?4 l+ l
- )
) j/ n) ~8 R0 R2 [. Y- j- [ - )* d3 c* a$ j6 o3 v/ x, O
- (ddimen_setvars dimsvcurset) ; Prepare to exit
0 x4 y E) y' W: ]; p# j$ y6 ` - )8 p8 ]* S6 k3 g# p: M
- ' D5 |4 I6 f4 d4 k2 D8 W
- ;;% E% z9 o5 {+ ^, {$ ?. c" t
- ;; ddimen_dlg - jump to ADS ddim module
3 \, \0 S8 R; E - ;;
" q+ ^" Z) f- j8 M - 5 D4 p" v! k, J2 ]
- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)
; O2 Q8 A/ U) F- q - ' J( k' P) C7 K @! C! ?
- ; Jump to DDIM with overrides if any.
V$ g; f5 Z6 |8 m. Q j - (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry
- D5 u" W' L" L# G) S9 A! U - ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format
& S( s- U* _4 p# u, G - ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation
2 N' }4 n2 S& |1 D) \ H2 a - )& i$ q5 g+ b9 t2 u" g* ]' L
- )
/ A' ]* T% \+ w
! G9 W" t, q0 N$ F% Y% V3 T0 w- ;;/ J5 p6 l& W$ K' V% d
- ;; Dimension variables updated are stored as overrides.
! j' x# ^9 b: N9 r9 E1 x# N - ;;- Z |8 F! l' P! V0 W6 I
" _; q& Z& }7 o1 ]+ l: ~. _- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar
' A9 W5 z. ?7 B8 a9 A - dv dime commandIssued)
# ~( b/ ~+ Y$ N- }) n - x9 T) @, Y# ~* s9 E
- ; Here we skip the following first three items:
' @8 C% |; K, W* M4 } - ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0)5 h- j- {* T8 u
- ;
( d9 X4 P" p Q' g' Q) _ - ; The list comparison immediately begins with dimvar.
( g! ~! a2 M6 M2 g - ;$ K) \+ _0 t7 _
- ; dimolist - original states of dimvars
3 Z* [! H, }. @% m- L9 l - ; dimnlist - new dimvar list which is of the resbuf's+ r( p' ]2 X; y, g
- ; dime - entity name for the dimension
" |$ W: _( o& y" o - ; odvar - value of dimvar for the dimolist
( h* e7 W9 Z! M - ; ndvar - value of dimvar for the dimnlist+ ]6 m( N# f7 r
, `3 U3 T; Z7 T; C. _2 Y3 Q- (setq i 3
4 e; P( K, S9 P* C4 c" L+ Z - dime (cdr (assoc -1 elist))
4 J+ }7 V6 X6 H7 @- s6 `7 O$ { - )
- T% i% D! h% W' S$ ]3 v - (while (setq odvar (cdr (nth i dimolist)))
. V/ a7 K& T6 f7 q - (progn+ n7 `& D: l3 a. C, ^- x5 s) F
- (setq ndvar (cdr (nth i dimnlist)))
+ S% b* o! J$ N5 z# e6 P: f6 n - (setq dv (nth i dimtbl))
0 _. o6 [; c# K, u - (if (eq dv "dimtxsty")8 m% B" X; g4 t4 P1 A1 V) E" s: z
- (setq odvar (cdr (assoc 2 (entget odvar)))
' |' O9 e/ S0 P- b K' z - ndvar (cdr (assoc 2 (entget ndvar)))5 P$ T4 ?" I: F% I" r
- )8 _- }0 ]# j' O; p' G) P
- )( @: V/ `' o8 ^! i
0 l4 y+ r( V6 ~0 ~/ Z- ;
/ L, ~8 y+ R K9 e9 [5 r - ; In order for DIMOVERRRIDE to operate correctly with string: i9 j" C/ T8 Q
- ; based dimvars, we must pass "." versus NULL strings.+ t8 C5 c; m$ I/ _
- ; In this case ndvar is the new dimvar value the user wishes
# @/ u7 n M) b' n( v - ; to update on selected dimensions.
" z u v& W) h, u - ;
% {% o1 r: B6 y5 Y - (if (/= ndvar odvar)
% G& A% j! `* h- v& l5 a - (if (= 'STR (type ndvar))
) ~' X/ D Y8 I1 A2 D( P7 y - (if (= ndvar "")9 c5 h2 [1 p( ?9 y& o
- (setq ndvar "."))))
6 ?/ X6 V$ Q3 X* e# U5 f. R
% H: O- H: j6 j$ S- (if (/= ndvar odvar)
` T; r& @, G" n1 O |5 g! K - (progn
. C& _( B% l8 v; M% Y - (setq dv (strcat "_" dv))
1 l( @% B) E2 R& l$ M - ;
, O# `4 o o; O' E8 C" s: t6 _ L - ; Start the dimoverride command
! `& P0 }7 G" N - ;4 u" i5 K* P s$ X+ c* f5 M6 L
- (if (not commandIssued)
, E. z: Z+ ^8 f! x6 U2 t8 U - (progn) k9 X8 I* o' p* b
- (command "_.dimoverride")
- l# y2 x) a t* X' N! H - (setq commandIssued "T")
6 L5 o0 J5 }8 ]0 ?. Y - )% l9 A" Q2 w* Z
- )
8 ]; V" f+ w, H+ c - ;: K8 S: y6 B X
- ; Issue dim overrides
; g( M( w1 K" f. e. e- z8 g - ;
. o% t" o9 U# }3 M' N) s - (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre"))! i2 X N! Y: T# s# y, u( d$ Y
- (or (= ndvar 0) (= ndvar 256))% x' _# a; I4 Y
- ), y3 H) L$ h' n, b
- (progn4 t# U. e& j/ n& Z9 x9 w3 M
- (if (= 0 ndvar) (command dv "BYBLOCK"))5 N2 D. b* p% ]/ n- ^
- (if (= 256 ndvar) (command dv "BYLAYER"))
2 ^/ t( B0 b5 m5 `! _ - )
9 U9 ?# s4 v% o2 X. H. T6 t3 Q - (command dv ndvar)
3 p( ]) |1 q7 @: W4 C" f - )
4 j9 X( i Y1 j2 C' J- c - )
) S$ z" G- @" [. F& V+ c% y% ` - )$ i, k& O V) i
- (setq i (1+ i))6 N+ C3 }3 Y' D" m* h, N
- )
+ Y& z W7 [+ e - )
' _) z0 ~# _% z r( ^& f; J0 Z7 c - ;
/ J/ d' p( p! \* }" \- {" G+ R - ; Select Entity and terminate command/ c* ^: [0 _1 s
- ;& K& o3 D* q# Q, U" U
- (if commandIssued. |0 y3 H( Q/ ` Q* S" F
- (command "" dime "")
# Z% J7 ?) e$ C! B, S7 b - ), r5 x. L6 G* N& t5 g% Y
- )% @: q9 o, p- k8 l) p
- 4 k" r% e3 h. i* ~) F. @
- ;; r8 O3 ]% Y8 n; x; D
- ;; Get style name currently selected style name., r! B. n5 U, s. R1 p
- ;;
' G5 Y+ a) A) t6 n: Y M9 D - ) U4 H( {, s# q0 K1 t7 w4 R& }1 [1 X- v
- (defun ddimen_style (/ dimsty)7 w, l9 J4 w d& t* W a
- (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)
& x* q3 F/ C7 x$ }* x: M$ c1 a - dimlist (ddimen_getdimvars dimsty)' ]/ e! q+ O6 z3 x+ N
- )
1 P# s/ H" M' g! s$ v - dimsty; Y/ g* p, y1 x; F$ y
- )* m* W3 X. o/ s% B' }. V
- 9 o; I' r# r$ B) `' g8 l
- ;;" R$ Z( j* p. \1 _7 U7 u( |( h4 z
- ;; Set dimvars2 ]- k! O. l# V* c
- ;;" n( f+ r0 I- C ]; F) K! O. V
- (defun ddimen_setvars (dimsvcurset / dv i)
$ G4 G8 u7 {) W# @ - (setq dv (cdr (nth 1 dimsvcurset)))
0 F" l: v5 V& g; N8 G& B - (command "_.dimstyle" "" dv)6 ^# M7 r+ h/ E$ D
- (setq i 3)9 s* ~( U6 o1 L- n' F
- (while (setq dv (nth i dimsvcurset))
0 @; p6 a7 `- T B6 n/ [% i - (progn. L. n4 s* m- P% ]
- (setvar (car dv) (cdr dv)). @% I& d7 b5 |' A! f( K6 `- {3 ~
- (setq i (1+ i))+ B7 Q7 |! K G' [2 c5 q. T& M/ S8 E
- )
/ a7 f f, ?3 L6 ? n6 C# q3 X - )/ k* I& z! m# k- Z/ p$ K7 M O8 |2 q/ x1 G
- )
' X5 L" P7 Q5 k! o# e3 g) T, I - ;;4 X4 e; s- ~5 x1 `
- ;; End-of-dimension! C8 O1 G1 I h: Z5 z
- ;; ==================
- w# I5 E+ m0 |3 ?! M% @, D( F
: l1 V: f) p% r/ j5 q- ;;
9 K% _ I! S O8 @4 U: {' z - ;; Sub-dialogues for properties. Common to all object dialogues
4 X' S V" q5 N t - ;;
) V/ |% J/ a0 h% n - ;; This function pops a dialogue box consisting of a list box,image tile, and
9 a3 M5 [9 Y: x0 v - ;; edit box to allow the user to select or type a color number. It returns
1 V2 c* r; D" |, j+ P9 s, [ - ;; the color number selected.
2 C) e7 }% i5 K |* [+ ]0 U - (defun getcolor (/ old-idx colorno cname lay_clr)' w& _" i# J8 Z, v6 f! U
- (if (= (get_tile "error") "")% G7 ]8 l- c/ u& G" ^8 S
- (progn) k' K+ W. \) S$ J
- ;; Get the color associated with this object's layer, for use
4 Y1 ]4 F$ N& e1 ?0 V1 r - ;; in the color swatch if the user selects color BYLAYER.& B" R: _: e! ?9 R# ]
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))" p- B6 c' l' Z8 c* G
- (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))3 J2 g: K3 p# E& w) `+ g8 v
- (progn
0 j/ a4 b; ?- y* }2 ?* v+ C6 ] - (setq ecolor temp_color)) w, r L! i R- `. A5 F. B
- (setcolor)% m2 t8 s9 O4 W: N: X- }
- )
) l% |. u0 e# a; p% V# q- | - (setq testcolor temp_color)
( L4 B* I, r4 I7 g; a( M - )
, X* ?9 t9 z. J* ?! }* a - ), r- s0 J/ ?4 ?
- )6 G: ^3 y. O6 Q! E
- ecolor9 u: e9 G9 i( W5 W* B
- )
5 b5 w, J% `! D5 c3 q - ;;
' a: o i0 j; o0 f' ~' O, f0 v - ;; Function to set the color tiles.$ n) L# ?4 ^' M) ^4 t( w$ u# I
- (defun setcolor()) t: P, h3 B9 ~
- (cond
% I: J7 J! C5 r% i( G - ((= 0 ecolor)( }/ ? ?0 ^- D2 G" ]
- (set_tile "t_color" "BYBLOCK")
" |, o c7 B4 G' Y1 O3 m7 R# f5 M; D - (col_tile "show_image" 7 nil) ; show BYBLOCK as white3 a2 _4 ?1 M) }" I$ V" l# Z
- )
2 r6 l; n* E5 k( E0 x# z X, c - ((= 1 ecolor), @% N _0 H7 H0 }! {) ?
- (set_tile "t_color" "1 red")8 X& L1 l& `# [/ i7 r% e
- (col_tile "show_image" 1 nil)
6 R( M) l4 j# i% Y* g6 a - )
* Z; S i' L/ h0 x8 Z$ U - ((= 2 ecolor)
8 x* P6 O% O; u. d3 J - (set_tile "t_color" "2 yellow")# O& V! V9 Y8 L- N
- (col_tile "show_image" 2 nil)
6 a7 Z) ?0 @$ _( _! n4 E! ?3 y - )* e# q) L" I# w
- ((= 3 ecolor)' q: ?+ W! y1 }: W
- (set_tile "t_color" "3 green")1 W; A S/ E; Q/ D0 m9 K1 L$ n$ |
- (col_tile "show_image" 3 nil)
# m! e; @( s( J% P3 o! M P9 Z - )
; b) W" v8 U1 Y: G7 b( s - ((= 4 ecolor)0 v3 S& o" k) J1 u
- (set_tile "t_color" "4 cyan")5 {! r# w a; P2 c
- (col_tile "show_image" 4 nil)( Z9 T: w3 m0 \
- )9 k2 ?! E7 w% P
- ((= 5 ecolor), B' h( z/ G0 ~, V3 j. J1 k# k
- (set_tile "t_color" "5 blue")8 \; I" @2 n, d+ M# M" }
- (col_tile "show_image" 5 nil)8 _! f/ H& e- n7 ~5 b3 @
- )% V6 M% r; [* I: i% \5 s
- ((= 6 ecolor)
1 P, ^, R @. P - (set_tile "t_color" "6 magenta")5 H5 u" Y( v% \. _0 s+ M Y
- (col_tile "show_image" 6 nil)
9 M/ `: y) V" u7 n - )
. i1 \ e" O3 f1 P& n - ((= 7 ecolor)
" G! ]) a7 H- l2 F% ~/ s - (set_tile "t_color" "7 white")% C+ n1 S' d! [4 ^! x9 z
- (col_tile "show_image" 7 nil)2 Q) |% u) N4 `* @6 B
- )
1 |) X. D" m7 }' Z$ S o% _ - ((= 256 ecolor)
t/ Y3 Q- |/ \5 ]) X$ W D$ B3 T: y0 S - (set_tile "t_color" "BYLAYER")
B$ S6 z, h+ j' o% d- @+ W - (col_tile "show_image" (bylayer_col) nil)
- g. w5 ]. T% ^' f+ v# }( x - )
' t5 g! ~* G0 a! b9 t' R* E0 M - (T! d0 H! L s4 B: t
- (set_tile "t_color" (itoa ecolor))
( u p. T. D) p0 h4 I - (col_tile "show_image" ecolor nil)6 a) \' h& I' y" ~# ?, a* P$ v
- )& V6 M1 D' v z# O B
- )
( e+ ]. A* x4 b: J/ T - )) O# E* i& `+ S6 p) L
- ;;; y: G' j% ^/ E, V. o B1 k
- ;; This function pops a dialogue box consisting of a list box, image tile, and; P+ S! ?, x) ?8 t# _) V9 q9 O
- ;; edit box to allow the user to select or type a linetype. It returns the
4 m8 |) R4 _& v# F$ [ - ;; linetype selected.
& p2 V0 ]6 a# } - ;;
8 j8 L# \- W! p& m# k' L. Z - (defun getltype (/ old-idx ltname)7 d3 P- V) J; r( G
- (if (not lt-idx)
2 o% P0 i1 S- s - (progn
* a* p( P: G4 Q8 H ? - (make_lt_lists) ; linetype lists - ltnmlst, mdashlist5 ]: z6 f7 s5 Z, W. E1 c+ o( r
- (cond
% j( f+ u$ }2 C - ((= eltype "BYLAYER")
* l p1 r+ I& E2 R - (setq lt-idx (getindex "BYLAYER" ltnmlst)))# b( F/ _0 C# J6 z' Y
- ((= eltype "BYBLOCK")/ T5 Y) T" g; b5 @% }+ @; E
- (setq lt-idx (getindex "BYBLOCK" ltnmlst)))* u) \& @) U9 Q& E% |; D4 K
- (T (setq lt-idx (getindex eltype ltnmlst)))" p, ^ ~ F" c1 k0 r% I e
- )
4 i/ W# _- _ a' D* [3 i+ V& P* U" E - )
3 b$ G/ n. A* h0 ^3 r W - )' U3 p) ]9 T4 f( o2 A7 e4 n% H
; ]4 c$ e* l# f+ P- (if (= (get_tile "error") "")) Y: o7 a0 J! J7 F9 o- X
- (progn
6 t6 h. ?( g( A3 F - (if (not (new_dialog "setltype" dcl_id)) (exit))
- d' a% o) O/ C0 Q# R) J; F - (start_list "list_lt")0 E3 R2 c O' `' i9 j" Y6 v" v" X
- (mapcar 'add_list ltnmlst) ; initialize list box( F* r9 ], E# M f4 [9 C2 N% W- q
- (end_list)6 {+ K6 u6 ^0 N! \
- (setq old-idx lt-idx)
/ C8 [% v4 Z n5 C5 v0 y$ z+ [ - (ltlist_act (itoa lt-idx))
6 l, B; B) [0 D
; F" o& x' A! Y* Y W H- (action_tile "list_lt" "(ltlist_act $value)")
. `$ k& t4 C. H- Y* f - (action_tile "edit_lt" "(ltedit_act $value)")
! v3 | k. w/ ?, S( I - (action_tile "accept" "(test_ok)")
. `& G& V% `4 g - (action_tile "cancel" "(reset_lt)")/ L5 @) @3 Z) e: H3 K' i+ V q; ]: W
- 4 j( L; K' Q* Z: h" F! i
- (if (= (start_dialog) 1) ; User pressed OK
2 N( V/ p6 ^7 } |9 x. j/ \ - (cond
6 u9 j3 d' q9 _ - ((= lt-idx 0)
& b) R9 G k8 Q - (set_tile "t_ltype" (bylayer_lt))
& M! s' ^$ E5 y0 | - "BYLAYER"
9 p" y2 L" o: }$ X! m( U - )& e! J8 x2 o) S
- ((= lt-idx 1)% A2 ?2 U+ s- ^/ ? M
- (set_tile "t_ltype" "BYBLOCK")' w# R9 S( D. C
- "BYBLOCK"! R$ [* F7 W5 X/ t/ g1 J
- )
+ o. d3 G+ ^5 E" w/ a4 _4 J - (T (set_tile "t_ltype" ltname) ltname)% I4 I e$ u" F4 D
- )
L- ^/ T, }1 q- H* i a - eltype* U& n# E/ [! z: ~, G+ P
- ); f3 a4 D& d; I* `- I' `5 Q* X- x$ h
- )
1 f Y% _/ O& |' E( {; G - eltype! C' q% t0 y% a0 I
- )/ b) T4 i* m: A9 ]# b# Q3 c+ H
- )7 w: T* ]9 S& R/ a7 v$ n( I
- ;;
$ U' g5 p- G; r' I: b2 j& N - ;; Edit box entries end up here; X2 t! w4 T1 J( p. y
- (defun ltedit_act (ltvalue)
( O- ^! E: Y/ j - (setq ltvalue (xstrcase ltvalue))7 i: L* I9 Y) E3 A
- (if (or (= ltvalue "BYLAYER")% G7 y4 B6 P/ X8 K# V
- (= ltvalue "BY LAYER"))
, R3 e# j) x) Q: J4 V) p5 N) \ - (setq ltvalue "BYLAYER")
, t1 Z2 I9 g+ i2 N& ? - )+ [5 U) [4 I; p. \2 }; R0 {( R2 e& g
- (if (or (= ltvalue "BYBLOCK")5 o( g% G: ]# C$ `& ?
- (= ltvalue "BY BLOCK"))7 [+ F2 ]: D7 O U7 l" Z8 l, `
- (setq ltvalue "BYBLOCK")( D* [7 w) C- b. H& p# Z7 s$ `
- )* ]: I a: f5 e$ K2 v' s5 M. T7 X
- (if (setq lt-idx (getindex ltvalue ltnmlst))0 e/ r' t! S) [; Q4 B/ b0 @
- (progn
. U# M( y* V- r p5 j2 \9 ~# ] - (set_tile "error" "")
) m% @9 d7 k6 a8 G' u' H - (ltlist_act (itoa lt-idx))! A* Z* i5 p' p8 j# l1 R, N) b" w# \
- )' J' [1 H' R) F/ a7 H
- (progn: V5 k/ d Z/ ]' Z9 W- ~) D
- (set_tile "error" "Invalid linetype."); r! |* {" g+ X7 B; n5 g
- (setq lt-idx old-idx)+ J& v0 U8 [+ Q
- ;; (mode_tile "edit_lt" 2)9 ^! Q( b/ S7 q& ?; M
- ;; (mode_tile "edit_lt" 3)
6 }4 B/ [* u. N - )+ `$ U/ h+ d; r {% g2 d6 n
- )
+ N3 m0 |/ ~& U/ e0 h - )" a) q- _$ b( j( D/ {
- ;;: @) Y/ N& h3 f% `4 S+ }( ^
- ;; List selections end up here. Update the list box, edit box, and color/ E" K5 R, M% ^6 l/ n' W) ?
- ;; tile.4 V0 w: u- s: ^. Z! f; ~
- ;;% j: N9 ?7 K& S, v5 J* q* A2 a {
- (defun ltlist_act (index / dashdata)9 \' \0 F* X( u# J
- (set_tile "error" "")
. Z/ |0 c& r1 D v& c - (setq lt-idx (atoi index))
" q5 B! }9 b) }! G5 ^$ ^4 o - (setq ltname (nth lt-idx ltnmlst)). W3 y. d0 s( C+ _7 D
- (setq dashdata (nth lt-idx mdashlist))" I6 N! w7 p6 P9 U8 A0 K# G0 R! b! w
- (col_tile "show_image" 0 dashdata)
8 a4 o' O/ ~- f# \4 R - (set_tile "list_lt" (itoa lt-idx))
6 h0 {$ V. `& Z/ i: O- y/ c2 T& n7 S- Y - (set_tile "edit_lt" ltname)0 }* d) F# \" B4 _ h
- )
$ P* o0 H" l6 w/ F: M8 H - ;;
1 P" e' h4 A- F0 b t1 @ - ;; Reset to original linetype when cancel it selected7 y$ X/ B9 j( A6 {5 C
- ;;
& s' ~, R0 T5 n9 P! ?: V2 U - (defun reset_lt ()# K$ u( s& `% h; j* M! }
- (setq lt-idx old-idx)
- ]5 J- T, b7 E) K& Z/ ^$ v - (done_dialog 0)
3 B, S1 v& I2 B3 r, W6 P - )
0 K0 H3 B4 t) s' P' _' d - ;;0 N( W' w' r/ @# A7 v
- ;; This function pops a dialogue box consisting of a list box,image tile, and) S- J7 u8 j- b7 ]: h- F
- ;; edit box to allow the user to select or type a layer name. It returns the
1 D5 R [7 A$ `& P - ;; layer name selected. It also has a button to find the status (On, Off,+ ?4 ^( z! b6 t! H$ F3 B F
- ;; Frozen, etc.) of any layer selected.+ ^0 j4 E3 {" ]" U( L! f
- ;;
$ { o' q* f* A1 N - (defun getlayer (/ old-idx layname on off frozth linetype)- [% t' H* m, X) {6 f
- ;; Create layer list the first time the layer( |4 z3 [ Y' U' B
- ;; dialogue is called.
6 `5 | x' E4 n# f8 v" k. k/ i - (if (not lay-idx)
- k* D, H0 s5 R D) s$ r' [ - (progn
. a$ X' K3 a) A" {$ f - (make_lay_lists); f5 ?. W' b1 y0 T
- (setq lay-idx (getindex elayer laynmlst))0 w4 r- Y9 c: r
- )
7 W" v$ j; T$ {: W. K( Y - )
9 G7 V; k$ }% J" C. a+ b' H! y
6 O. R @2 H$ i4 U7 x% o- (if (= (get_tile "error") "")
% U X2 W& L6 V3 P7 _' @3 T( Y- P - (progn
0 i- J3 F( K9 f7 d2 w* o. J5 z - (if (not (new_dialog "setlayer" dcl_id)) (exit))
9 r2 y Z$ q9 G' s0 p: R \7 H' } - (set_tile "cur_layer" (getvar "clayer"))
+ _. s5 C* o+ \% _4 f - (start_list "list_lay")
- a" X4 S0 ^+ t: o6 } - (mapcar 'add_list laynmlst) ; initialize list box, \5 l7 R$ Q, v f5 \3 C7 L
- (end_list); C6 i5 @. m7 I: l# h# `
- (setq old-idx lay-idx)
: V: ^# i& [6 r' c- q - (laylist_act (itoa lay-idx))# W1 A: ~! ?0 v" E
- (action_tile "list_lay" "(laylist_act $value)")0 p! d3 b1 V, b6 a# F( B
- (action_tile "edit_lay" "(layedit_act $value)")
+ k5 B; c$ J3 l" H1 f - (action_tile "accept" "(test_ok)")6 o0 i! S. |) \# ^9 a0 D
- (action_tile "cancel" "(reset_lay)")
3 a4 C# m( F; c8 l; L4 E - (if (= (start_dialog) 1) ; User pressed OK
1 j6 y; W" n, }) b4 f4 w0 U7 _ - (progn2 M: C' `7 I, M( b. N3 M+ A
- (set_tile "t_layer" layname)
# H* o% r+ e; y$ m2 O4 J& I. s6 q - (setq elayer layname)
. ~( M, ^2 W5 F7 ~+ }3 l4 k# \ - ;; If layer equals bylayer reset color tile
+ ?* }" I& W3 a2 z% W - (if (= ecolor 256)) V1 V% {% U% P" I3 j5 h3 F
- (col_tile "show_image" (bylayer_col) nil)1 t% `1 h2 z4 |- ^3 f; ~3 m) D
- )
- K) X% P8 Q4 D; J( Z - layname( b5 `2 R: N& B9 E3 W; G: k5 ]( {
- )
& [0 d3 ^( w, @* [1 O) P0 N - elayer b; U/ k. l+ N; U* ]/ s/ ]
- )1 {* N. x4 p% I3 ^! Q9 r$ M
- )4 B( |+ b' ]/ R* J5 R
- elayer4 r* D3 p7 A8 a3 x# D
- )
7 q- y& m. f- I - )+ K4 j& ^& m9 Q, \0 M4 b
- ;;
I9 z( o! Z8 P - ;; Edit box selections end up here. Convert layer entry to upper case. If
; Z; Z; S) A! z) q" N8 ~ - ;; layer name is valid, clear error string, call (laylist_act) function.* P$ w2 E: s5 x5 q* l# J$ T
- ;; Else print error message.7 C$ K% }; g- Z1 R4 a
- ;;1 r: B3 F) \' e
- (defun layedit_act (layvalue)
0 Y B* {5 v/ G$ D* T: J: R; |3 b1 j - (setq layvalue (xstrcase layvalue))
" w. X' x, f' c - (if (setq lay-idx (getindex layvalue laynmlst)). p5 P" K4 t" l7 Y1 v
- (progn
. ]7 U* ?7 W" Z' R1 l2 V; Z* L - (set_tile "error" "")
7 O8 G& D. k, m% p2 K# M - (laylist_act (itoa lay-idx))
0 g; _& m" v( U6 g' [. S0 u - )7 ]! M% w* U' h
- (progn
0 b+ u2 v% x- b - (set_tile "error" "Invalid layer name.")) d; I2 p* G4 ]4 ~
- ;; (mode_tile "edit_lay" 2)
( c* x {+ z( e4 {7 s! K - ;; (mode_tile "edit_lay" 3)
4 G4 [1 G8 \: v) A# ] - (setq lay-idx old-idx)) I! R# T0 X# n. {0 p, N% d) n0 ]
- )7 F J0 H2 ^7 D( P# x f+ @2 w5 }
- )/ a( j# N) A. o3 }, ~# w9 R
- )
, f& o3 Y- `% X0 t4 o - ;;
. _: G# b" Y3 f0 m. g - ;; List entry selections end up here.
. E, r: l1 s7 H& K2 n - ;;9 o4 q3 f* W6 C4 y$ a% V
- (defun laylist_act (index / layinfo color dashdata)
8 W( Z4 @: M4 P4 X# o - ;; Update the list box, edit box, and color tile.; k6 e9 U8 J5 h3 D( P
- (set_tile "error" "")! K1 f. M1 |8 Z/ r. H z
- (setq lay-idx (atoi index))
6 a( V! G2 ~" j - (setq layname (nth lay-idx laynmlst))+ _& x8 k" Y/ P& N# s, D# }
- (setq layinfo (tblsearch "layer" layname))1 [. j. @* |6 P
- (setq color (cdr (assoc 62 layinfo)))
1 a+ e6 N% h4 q* a2 w1 W6 k' I9 } - (setq color (abs color))
+ O( {9 y6 | s( d8 Z2 ^ - (setq colname (colorname color))+ b0 w7 t( m) `9 g% T3 a, a
- (set_tile "list_lay" (itoa lay-idx))' I6 |+ [# a! }0 {' X
- (set_tile "edit_lay" layname)0 g( Y* G) ~7 o3 S5 j
- )
, @/ Z: N: G0 s, R - ;;
9 v* Z( ^1 } g6 r* e - ;; Reset to original layer when cancel is selected. c6 M5 {+ g& X2 n1 v' C. n
- ;;! z$ @, c9 ?( g, u* A
- (defun reset_lay ()+ E: g2 b7 ~2 ]' F5 S9 \
- (setq lay-idx old-idx)
7 d/ _- r" K: l7 h( z - (done_dialog 0)9 u" i( U7 O. |, k" _' n+ |
- )
, ^" P% V0 s! ?! r$ i0 S - ;;7 ?+ Z% y4 R; |! A& E( m
- ;; Checks validity of thickness from edit box.
6 ?6 x- D1 c, o/ `. `6 }. q) @ - (defun getthickness (value)
. K9 B( ^( D2 B, |8 ~3 P' ?. J - (setq ethickness (verify_d "eb_thickness" value ethickness))
6 K5 N. y U5 E9 `: ]) C5 { - )7 ^, \4 m! [ T
- ;;
+ R* P8 o/ S# L2 H5 }: s - ;; Copy of (getthickness) for ltscale. If more, make this function
0 i/ q' H0 y+ P' ^ - ;; generic.7 R/ X8 h! K5 s1 d+ K8 U5 g
- (defun getltscale (value); ^1 H: k5 Y; S/ I
- (setq eltscale (verify_d "eb_ltscale" value eltscale))' y* w6 }& z: r. t' ], w
- ): {/ E5 R1 ~$ N) R1 n- E& ?) I2 o
- ;;7 P' z+ \/ H$ ^. d# A# F( e
- ;; This function makes a list called laynmlst which consists of all the layer9 i- \9 x( M7 N0 F8 v
- ;; names in the drawing. It also creates a list called longlist which
* F; V$ q- f, F, W1 i9 b1 V1 N3 D - ;; consists of strings which contain the layer name, color, linetype, etc.
( N0 I. \. F7 R2 k* X. V% i7 [ - ;; Longlist is later mapped into the layer listbox. Both are ordered the
4 N3 d6 l+ u8 |: o - ;; same.
. d. L1 A, y/ W& A/ f3 T - ;;
n, v9 x) `" i - (defun make_lay_lists (/ layname sortlist name templist layer_number)
: L+ r! e6 R+ s( Z" k - (setq sortlist nil)
6 Z6 k4 x7 H- B2 p2 k0 t: T - (setq templist (tblnext "LAYER" T))
9 m3 I0 y, m! d3 m& P n - (setq layer_number 1)1 f- k+ z# t! D8 P' [ D
- (while templist3 X* v- z2 ]9 T, y9 c
- ;; No xref dependent layers, please.
' r/ r6 G/ {( S- G! P - (if (/= (logand 16 (cdr (assoc 70 templist))) 16)
, J1 X/ t7 a2 J) w9 I2 ?% z% ?# [ - (progn
. Q- w7 @( g+ y9 i w& O3 ^- W - (setq name (cdr (assoc 2 templist)))8 t3 m1 |9 v) z8 { x
- (setq sortlist (cons name sortlist))
2 h$ w+ N# d* U' b; X3 h4 {$ G - )
! h3 f1 U6 e4 ~$ M( C0 Z X3 ` - )
0 N. |/ H5 j+ j# x# [8 g - ; Get the next layer.$ \* n7 l+ W; j: O9 E( @
- (setq templist (tblnext "LAYER"))! C% n- |1 E! O" i: R+ {
- ;; Not dead message...
9 [; D* m/ X$ ~( }$ t; @ - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))
9 X* ^ p9 N$ D G* l3 K - (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
2 l; p( z; f* Z% ?' [1 S: ]$ ` - )
: L, R( L0 o! k7 c: n4 a( B* E - (setq layer_number (1+ layer_number))
' s Y J! \. h! v - )) g5 N% \" e& E) ]- t5 x2 F& s1 }1 [
- (set_tile "error" "")& v- B: T O5 b: a; u" ^ L
- (if (>= (getvar "maxsort") (length sortlist))
" h: l% v0 y; s6 S/ Z' W7 Y) H - (progn
9 z0 K& P% h! W" D+ W8 e2 }6 o - (if (> layer_number 50)8 u8 `2 _' O( {! {6 G" Z
- (set_tile "error" "Sorting...")
. y# m& l# l+ H, N- ~: `' C - )
2 N6 C7 Q x% l: X& N$ _ - (setq sortlist (acad_strlsort sortlist))% j; N5 I8 U1 I( c; V. G
- )" m" g G N' U! u! u
- (setq sortlist (reverse sortlist))
; A% s. ?& u' d7 M - )( v' U* x7 k! S& X3 u, z2 e, l& I
- (set_tile "error" "")0 w7 \( |! \" \1 z1 [% W5 D
- (setq laynmlst sortlist)3 Z% m) P3 s* D( T5 N f7 D
- )' n; G4 M6 \8 ?: g
- ;;
; s8 d4 Q2 x" p6 l1 W% K7 K - ;; This function makes 2 list - ltnmlst & mdashlist.$ _; O! d5 U6 f) ]
- ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist/ p, }. n: W( L
- ;; is list consisting of lists which define the linetype pattern - numbers0 l7 Z4 n+ j$ Q1 E. q, H9 W
- ;; that indicate dots, dashes, and spaces taken from group code 49. The list. M* }4 B7 N$ d+ Z! Q# V/ B
- ;; corresponds to the order of names in ltnmlst.$ F+ h6 \1 r9 A; G5 |2 W8 z
- ;;
5 T, x, {4 h9 A3 H4 X u7 e' [' f, K - (defun make_lt_lists (/ ltlist ltname)
& W, {. Z V- N9 r& [ - (setq mdashlist nil)
C2 j3 O" ^6 N1 F - (setq sortlist nil)1 W' c; l' j& x' w
- (setq ltype_number 1)) b( T5 {% c' q. b# r
- (setq ltlist (tblnext "LTYPE" T))
" Q; u' r) f' a o2 Z @2 G - ;;(setq ltname (cdr (assoc 2 ltlist)))( u. K$ v9 I9 o! B) u" P% D
- ;;(setq ltnmlst (list ltname))
9 q4 C1 T" i' E' d - (while ltlist
- Y" a4 K o8 {0 k" W9 h: L - ;; No xref dependent linetypes, please.
* |' Q5 q) E/ c$ }" w: h8 ^- m - (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)
2 n/ w" w) d# i0 I! D - (progn. V6 ]/ J# H1 b; A# }1 C( l
- (setq ltname (cdr (assoc 2 ltlist)))
5 u3 Q2 W% {7 P - (setq sortlist (cons ltname sortlist))
F0 y& K8 S; v& |( { - ) H0 _/ U. @3 s5 Q7 L
- ); Q& u7 }9 ^% V7 P0 h* V
- ;; Get the next linetype.
4 s6 _) v) {) t1 d& k- B - (setq ltlist (tblnext "LTYPE"))5 z% Y, k# }3 i z. `, x4 |
H ^" Z/ N8 O0 |- ;; Not dead message...
1 E$ O) |4 |' S) J* K' T x6 V; Y - (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0))) l+ u0 i% h1 O2 @2 C9 c
- (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))# ~8 U' M' \2 p$ H7 E6 Z$ v
- )
C Q+ f# t4 o+ z- O# p# c7 J - (setq ltype_number (1+ ltype_number))8 g+ p2 M( p5 P- `
. y( b: {: T j7 U# t% g- )" a+ k4 ?1 ]: r% A1 t: N; A9 P
- + h9 q! I& @2 ^' ]0 I
- ;; Remove Collecting message.4 S$ V5 U) c# L% _' @) W* ?
- (set_tile "error" "")3 b6 b8 J; N; F) k+ u, f
. T$ ~$ D3 N- j* x& D$ s3 f4 u& [' Y- ;; Sort based on maxsort.: v1 b; j- e' k
- (if (>= (getvar "maxsort") (length sortlist))
, T! L( U d. _* B' I( f3 n - (progn4 x5 y) j9 B) K2 D
- (if (> ltype_number 50), Z- A6 @6 i0 a6 h t) B
- (set_tile "error" "Sorting...")
% f! w" D1 w& s3 _6 h: u p& j - ). N0 ?4 ?9 `7 G) l
- (setq sortlist (acad_strlsort sortlist))
+ M6 @7 r L l, ?' C4 e - )
) N5 X# K! U* b5 n1 m - (setq sortlist (reverse sortlist))
! [9 r2 }; b1 ]% R* @ - )0 U8 q3 j, C" ]/ s
- (set_tile "error" "")+ { f8 U/ d' @4 m
- (setq ltnmlst sortlist)7 t- U: r; b% u- j5 p2 d% |
- & Q+ D% M2 D0 P9 ^
- (foreach ltname ltnmlst0 s' G- U5 P$ q v; J
- (setq ltlist (tblsearch "LTYPE" ltname))
6 ~- T! C, D+ E3 ~ - (if (= ltname "CONTINUOUS")
0 d) h% |" A6 _% d0 j% Z6 z - (setq mdashlist (append mdashlist (list "CONT")))
' g }& X7 ^' ?) f5 ^6 y - (setq mdashlist
" @; b+ b% C* V& a/ b% C3 K - (append mdashlist (list (add_mdash ltlist)))- n$ H9 M, {8 S3 h: u0 I
- )" d# I" f& N# x
- )
- o! l; r4 H# z$ `2 {1 t; z - )
C' `' x D3 c( t# }$ N9 O - (setq ltnmlst (cons "BYBLOCK" ltnmlst))
1 v0 R$ e4 X6 F! s - (setq mdashlist (cons nil mdashlist))- e3 V- i1 e, n9 Y) y$ Q
- (setq ltnmlst (cons "BYLAYER" ltnmlst)): X% o2 {7 x4 Y h; ^- R
- (setq mdashlist (cons nil mdashlist)) V" P6 e) _) L( i6 u$ u
- )
* w: A# ]8 ^8 ~: o' Z! E& s - ;;7 N0 y; z3 ?4 Q! W9 W8 f. B: q
- ;; Get all the group code 49 values for a linetype and put them in a list5 T& e! V. K7 h4 [0 N
- ;; (pen-up, pen-down info).! U0 U5 t* R! B2 D: x4 f
- ;;
+ c6 e8 a- P" l4 [% ~ r - (defun add_mdash (ltlist1 / dashlist assoclist dashsize)
7 ^: g: d" J+ A+ u3 O - (setq dashlist nil)
0 y, Z8 C( g# ?6 A4 j - (while (setq assoclist (car ltlist1)): R( K s8 p4 f/ P4 i; u/ t6 J
- (if (= (car assoclist) 49)
. c) |+ l( q2 ] - (progn
4 ^- x* j0 |5 H# I - (setq dashsize (cdr assoclist))
: Z% }$ p1 M- n* p! n* ? - (setq dashlist (cons dashsize dashlist))
8 t% }' t4 I9 I; ^; A2 y! ?6 A" x - )
3 q% @# c3 I8 y! I( F+ e - )
+ w% D! |5 y- _' I5 _* ]% @ - (setq ltlist1 (cdr ltlist1))% }0 |+ p8 Y/ Y
- )
" A7 O- W+ }) M6 l - (setq dashlist (reverse dashlist))
; [- z P. y* F4 ~7 m - )- t3 o6 h" U5 C1 @" s
- ;;
2 K0 ]; r8 @# s- S0 t4 c# @$ Y: }0 h- g - ;; Color a tile, draw linetype, and draw a border around it
6 i6 j8 E+ N/ M( f5 o8 n( S - ;;
6 f) N. e. A1 I$ Y' c - (defun col_tile (tile color patlist / x y). e$ {1 T* o# [) K' E
- (setq x (dimx_tile tile))
* N, T. H" G* o$ O) e - (setq y (dimy_tile tile))$ P6 U' \# \) T3 c
- (start_image tile)
0 k1 W- X8 [4 x' o0 ~ - (fill_image 0 0 x y color); O; d( R2 a) F0 \
- (if (= color 7): ?6 E$ w) l' }: g
- (progn
' F/ v% Z3 F: _% c - (if patlist (drawpattern x (/ y 2) patlist 0))
; G+ t0 S9 R w# V) i - (tile_rect 0 0 x y 0)
9 p! h; z' z& @ - )
, ?9 `4 e; f1 g, u+ } - (progn+ k6 M, k. v8 E0 B
- (if patlist (drawpattern x (/ y 2) patlist 7))
/ P8 m' _( d q+ a- P7 x n - (tile_rect 0 0 x y 7)/ I/ y6 \, {3 V! J/ d6 x8 ^
- )
; J9 o) T) C- t3 G. C' F - ), g; `2 k4 Z, T
- (end_image)
- N* {/ y" {: n9 G - )
4 s# n% w! ^( `8 K* Z+ F8 \ - ;;
, T0 I& N2 q& p2 U - ;; Draw a border around a tile
/ L- M* @5 Z7 E# i' B - ;;
- z; c9 D q9 u! B - (defun tile_rect (x1 y1 x2 y2 color)* c! f7 E- z2 q2 L! y
- (setq x2 (- x2 1))
/ Y p) g4 m( T9 R* [ - (setq y2 (- y2 1)), K* N1 \( h" b( M8 N# o
- (vector_image x1 y1 x2 y1 color)$ b* V, f8 [& i% i3 R; o
- (vector_image x2 y1 x2 y2 color)0 K, o" l8 {" ?. {% x: I
- (vector_image x2 y2 x1 y2 color)
( p8 U! u) d' I% G; H - (vector_image x1 y2 x1 y1 color)
# w/ a3 f* R1 b! I8 |7 L1 w3 G! B - )
, A8 G ?% E% q9 y: e6 N - ;;
- C& \2 s! D) N( w - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
$ k; o# P4 f/ b# W - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
% c! Y0 Q( m; `" `1 a) Q' i/ P - ;; list of numbers that define the linetype, and color is the color of the
% e8 T6 ]+ W( M( f - ;; tile.0 T' G- w" ?+ t8 t/ W
- ;;
8 |$ o4 ]$ m- ~8 l4 Q, a - (defun drawpattern (boxlength y2 pattern color / x1 x2# r, u: U/ F+ h1 S
- patlist dash)/ J6 }6 y# l9 v0 {" [" i
- (setq x1 0 x2 0)* g' y, h Z, s( g9 G% K5 H0 _( |
- (setq patlist pattern)
$ s" ~5 |. K! I& t8 _/ { - (setq fx 30)( S+ [+ i# A" R8 s4 l
- (if (= patlist "CONT")
/ L7 V1 i, q* Z2 }- {; A( r - (progn (setq dash boxlength)/ S& ~* R9 e% L* J7 T; g
- (vi)4 X0 L; T2 V/ _9 x
- (setq x1 boxlength), P3 D/ W2 {1 `! l* Z( |% T
- )9 g! F: Z* A0 {" c! q
- (foreach dash patlist
. W) x$ q) S. F& O' N6 X - (if (> (abs dash) 2.5): k) K4 C' [5 u+ t) p
- (setq fx 2)
H9 `# T! ~) ]6 N, H - )1 [3 O0 i: i4 U' I- r" _9 |
- )2 I0 K6 T; D6 ~5 `; f5 e
- )
2 H3 s. C$ ] j8 ~' V0 K& o$ }% ` - (while (< x1 boxlength)5 |4 K( z. Z! `+ u# y) k7 g
- (if (setq dash (car patlist))" p5 |, c# j1 h1 G
- (progn& k8 H3 a" l- }6 _7 V# D1 V, O
- (setq dash (fix (* fx dash)))+ ?7 y: Z; n2 }8 x0 E
- (cond
6 j: [- k- N' P; E% t& N - ((= dash 0) (setq dash 1) (vi))
0 m4 S5 C9 ~; M; X- t" \ - ((> dash 0) (vi))0 N+ R8 L! s8 R1 E) z
- (T4 l9 m/ A8 w/ h
- (if (< (abs dash) 2)
+ H( M4 ]7 i5 _6 u/ S* Y6 I+ f; m - (setq dash 2)
. B, z( X" u0 p( D - )& f* X# S- G2 [
- (setq x2 (+ x2 (abs dash)))
+ ?: O9 h! `# y0 m - )" `% }/ X2 |+ L0 \( m: S2 b
- )
9 J8 [0 }3 I3 s1 C: ] - (setq patlist (cdr patlist)) V( W% b8 r$ M# g
- (setq x1 x2)
" R- T+ P6 C( f1 S6 X - )9 s8 g) V2 ~% {' ^5 `; t
- (setq patlist pattern)
# ?- m& ~$ m2 ^- [2 R4 N - )) _* p- i9 x2 h; L( ^$ }
- ): m, r/ G: B4 h
- )
- B6 r' ~3 y9 [/ T - ;;
/ R$ D& ~/ T7 U/ R: d) |. N - ;; Determain state of xclip
1 _8 w [3 t4 W a' G- O4 G4 V - ;; Returns the group 71 value of the spacial filter dictionary.. I( X) n: }3 k9 |8 `+ ~' H1 |
- ;; If the entity doesn't have a spacial filter dictionary, this7 f8 l8 |2 }. G* F( Q
- ;; returns 0. If it does it will return 0 or 1 depending on the
% {0 i' R( X8 [, l+ @ - ;; current setting of the state of the clipping visibility.7 X* c) @1 m7 i2 y* s
- ;;
7 Y3 W5 }8 ]) v- e( z! k - (defun xclipon(elist), Z5 G j- V- b5 w( \# z
- (setq hasclip T)
& P% N, z0 [. U8 E& B! H - (if (/= (assoc 360 elist) nil)
' v+ a" g T }1 U7 C$ \" k7 ~9 ^) T - (progn
' `- ^; L' H. ~+ ]( M* M - (setq tmp (entget(cdr(assoc 360 elist))))
1 y4 e* ~. n0 J - (if (/= nil (assoc 360 tmp))$ S: O- X2 y) l6 |
- (progn
: N6 J, [' C- P2 i# y- S" }# u - (setq tmp (entget(cdr(assoc 360 tmp))))
$ ~- {5 ~9 L( _4 G o - (if (/= nil (assoc 360 tmp))
3 O( m$ X& {; J - (progn. q x2 L1 {( ~
- (setq tmp (entget(cdr(assoc 360 tmp))))
9 `! ^, g2 j. U - (if (/= nil (assoc 71 tmp))
1 F7 ]6 a) D$ A" q - (cdr(assoc 71 tmp))
) E( a+ b- \2 ?. Q( Y - (progn - ~/ S; p6 x& J! f( }' R. O
- (setq hasclip nil)- i8 E( y' C% E; c) D
- (eval 0); g3 p" Q7 {$ E. @; a1 _
- )
% z* |$ z5 ~0 [( L$ g& w* U - )
4 p) V7 W. P8 X' z - )1 v. N$ b3 r% M7 i
- (progn % `* B6 U* X, E$ X2 @/ F
- (setq hasclip nil)2 b. s4 S9 W3 W# A3 C$ V/ _
- (eval 0)
( p' V4 s$ ~3 Z7 C - )
8 \% k* c) R9 y1 e# a9 r" q - )
+ a4 c0 b8 m/ c9 L2 h- W - )
. |7 u, p1 E0 N - (progn
2 z; C! b0 b" F A - (setq hasclip nil)% X ~" x& }0 V, ~
- (eval 0)
4 S$ i) `2 C# t+ O8 V - )2 x! Z& o! Q9 b. {; ~( o
- )
8 g3 ]3 M h2 t! @ - )
* D8 t( o6 T/ c - (progn
+ {+ r0 `6 A7 [) m: C$ n9 u% d4 I - (setq hasclip nil)- J" \4 f) Q- q) }* J0 s/ H& a
- (eval 0)
" |5 P: E# q" e0 H - )4 E6 h/ u4 c' m. [7 o6 _
- )
* @2 o" l3 R% M - )
0 K1 [) W; D% L5 i - ;;
4 `5 }9 u$ W0 L* V3 k; x, K - ;; Draw a dash or dot in image tile
/ l# x: L* g U( v" R h# z. _ - ;;9 F. S" `% P( ~1 U) k) y0 |$ S% R
- (defun vi ()
1 G: e2 J$ b: H) a: D - (setq x2 (+ x2 dash))8 p) @! U1 |. Y
- (vector_image x1 y2 x2 y2 color)9 `3 \; B" z! C3 F
- )
- ]9 R3 O3 \( o4 F+ u - ;;
+ D" [6 h# P% i$ [+ [1 ? - ;; If an item is a member of the list, then return its index number, else* B2 s: F8 D4 k
- ;; return nil.9 f+ x5 u U, \! j Z5 Y
- ;;
! m% z. i* ^! R8 g" e( F - (defun getindex (item itemlist / m n)4 F9 q/ p' A1 F- _9 c" _
- (setq n (length itemlist))1 _# H" t) ?/ g' @" u. H
- (if (> (setq m (length (member item itemlist))) 0)
! x9 s1 d% M. a) h - (- n m) N$ m) ^ S- F* I# Y% f4 D$ E) k
- nil
7 m4 x* G# Z5 ?, J0 Y - )
7 y1 g/ f# J& g) M - )
6 d$ S' a. q; c8 Q6 [- W2 c+ v - ;;
. O. ?5 N7 T N9 W - ;; This function is called if the linetype is set "BYLAYER". It finds the; c* m9 V2 j2 b- { Y# [4 i
- ;; ltype of the layer so it can be displayed beside the linetype button.6 Y+ X' p9 g& P9 W
- ;;
) C$ r: c% S% S - (defun bylayer_lt (/ layname layinfo ltype)" h$ |8 l' f2 {+ @5 J% D
- (if lay-idx
0 j0 I* j( C# U& [1 L - (progn
# v! k/ S. ~: H. N' U+ @$ B+ I - (setq layname (nth lay-idx laynmlst))
1 c" ?/ L, Q! Y" J - (setq layinfo (tblsearch "layer" layname)); u7 ]1 g& s2 u! I" Q7 {7 l
- (setq ltype (cdr (assoc 6 layinfo)))
. f8 g) A! s) a% P! b7 l. a - "BYLAYER"
* l' A; X$ I. }' P - ), ^( W" y6 O5 i* R& P& Y8 T/ h
- "BYLAYER"
; |5 [; T [ N: O - )
: w w- q& M: U( L3 W - )6 u( X" ?# ^" J
- ;;
+ h9 b N5 ?/ L ` - ;; This function is called if the color is set "BYLAYER". It finds the color
. b/ l. R7 ]' ^ - ;; of the layer so it can be displayed beside the color button." _0 P- e0 W& v, i b
- ;;
+ A) v/ j; q& u - (defun bylayer_col (/ layname layinfo color)
. e% g4 p8 t+ Y - (setq layinfo (tblsearch "layer" elayer))- J8 N) H3 i2 c U* b9 ~( F
- (setq color (abs (cdr (assoc 62 layinfo))))- X* f+ e$ k7 V: q- A5 H5 C, q+ I
- )
) _9 J$ k( v$ {# Z9 E7 L3 h - ;;
/ Z/ N+ `; |# k& g% ` T# e6 Z - ;; Used to set the color name in layer subdialogue.
9 y1 w. K* n2 _6 V% W! d) e" _% J' | - ;;
5 U6 B0 S+ s4 l9 [6 T - (defun colorname (colnum / cn)
7 \5 v4 R3 p' H- F7 ?- V) g& C - (setq cn (abs colnum))" ]' s' g0 i! _6 v3 Q9 O
- (cond ((= cn 1) "red")4 h( q& p& Z8 N7 _2 y( T N: S
- ((= cn 2) "yellow")
j! u x4 G6 D! E: @ - ((= cn 3) "green")) q6 l" I( u: a6 O8 m7 n
- ((= cn 4) "cyan")0 G/ I6 y: K A4 [/ q7 h
- ((= cn 5) "blue")
, K: s7 S- g0 D$ c' \ - ((= cn 6) "magenta")
, E# {) B! n+ r) g/ j, S - ((= cn 7) "white")
9 C" o' Q' b8 Q9 a( Y! w6 [ - (T (itoa cn))
4 M; ^- a6 V1 }" Y - )$ n3 Z7 b: ]) e
- )
' g; T) V% h' Z - ;;- R) i$ q5 y1 K- {
- ;; If their is no error message, then close the dialogue.
; y; B+ X* ~& E - ;;; U2 x; R( ?2 k; l
- (defun dismiss_dialog (action)
4 Q/ _) v( g- Y$ n. @1 Q - (if (= action 0)
: C, t) \; h* _ - (done_dialog 0)
) K+ p0 c0 j' ]" \& E - (if (= (get_tile "error") "")$ j+ d6 M% v8 q+ E. ~. s. [. T
- (done_dialog action) H' f1 X$ y. j; O& R
- )9 D' u: y* p) M0 N
- )
{* Z, f2 I! i0 t! a - )
: M7 T( c4 _9 y: U - + W/ {9 H0 Z2 C: p2 n: l
- (defun test_ok ()
& ~+ y C9 \1 O. h' T+ p, a1 A - (if (= (get_tile "error") "")
" k* ]( V* T/ \5 s% g+ ]* v - (done_dialog 1)% O. Y5 {/ S n H& t3 s$ T4 Z! c0 l- C
- )
- j8 {. C0 b6 |( }! G# r5 s5 `2 V - ), b- F/ \3 r1 B- M; e
- N8 A" O* |4 I6 d6 L
- (defun cancel ()
8 K! H4 t7 w4 M4 n4 W6 r" J - (done_dialog 0)) k% t) X3 R z; X
- )
0 Q; z+ x/ l. c; u - % x' P9 F6 J$ \7 U- ^9 j7 `3 T1 i
- ;;; =======================================================================
# Z* R `9 t w: {, x* ? - ;;; SETUP layer and linetype lists for application, and initialize all% f7 L% ? \! s; j# x, U
- ;;; program variables.+ A8 W7 _( ^7 K. |
- 8 g3 c9 U: K. p' z$ u. c+ {) s7 k
- (setq elist (entget ename), a, C% U" a4 Q
- old-elist elist2 i3 x- l" z$ I9 C, B: Q( w- x
- modlist elist
% S# o9 F" K. n* Q7 p7 A! F - etype (strcase (cdr (assoc 0 elist)))
" V4 d2 d& d% F: Z7 r - ecolor (cdr (assoc 62 elist)); a' n* b' h, ]* M
- elayer (cdr (assoc 8 elist))1 v1 s+ @' g( X, x% | z
- eltscale (cdr (assoc 48 elist))
6 w, e) z( z0 v6 A - ethickness (cdr (assoc 39 elist))- {2 e& C T8 G" M
- eltype (cdr (assoc 6 elist))4 H& K6 c; y' p+ v3 a) i( O
- )
# X- f/ I" m+ ]3 }9 l - (if (= (assoc 210 elist) nil)+ D* E1 Y% J' S" u k8 z
- (setq extru (list 0.0 0.0 1.0))+ }$ o" R( V9 X v# M
- (setq extru (cdr (assoc 210 elist)))& T- o/ I& W9 b* p& ]& ]* W* M2 q: e
- )
% D( u+ Q& a- D7 ` - ( y6 k# @4 E6 x9 H/ ?8 _
- (if (not ecolor) (setq ecolor 256))1 v# c z; G! T* k3 X
- (if (not eltype) (setq eltype "BYLAYER"))( E$ i* q# Z, U% D
- (if (not ethickness) (setq ethickness 0))& d/ @6 {9 i+ J8 ^" f
- (if (not eltscale) (setq eltscale 1))4 D4 ~- Q1 } `7 `2 m. N
- ) ; end ddmodify_init
t$ e4 e" {. F+ \3 ~9 i4 r# N - % G: s; P+ T: h5 D' J) e T' u) y
- ;;; --------------------------------------------------------------------------
6 m! P+ j; w3 o0 [( [ - ;;; Function: DDMODIFY_SELECT+ h% B: _/ O+ b5 ]8 u% |5 h
- ;;;
5 ~2 F% T& R) S" _# P - ;;; Object aquisition function.' b$ x% p/ d+ t h
- ;;;* ]: f y' _& h8 a1 q9 z# S
- ;;; (ddmodify_select)
4 B. `2 }; X( K& W - ;;;
! `+ s7 S: J7 P9 Y) p( y6 @ - ;;; Obtains object to be modified, in one of three ways:
a' E- @5 W( e! Z% n5 e$ y% e8 B# x - ;;;
8 ^2 ~' s/ [5 Q: Y7 w. t( | - ;;; 1 - Autoselected.
. z0 k+ l3 O% t6 T) o - ;;; 2 - Prompted for.
2 I- m1 [# [8 o - ;;; 3 - Passed as an argument in a call to (ddmodify <ename> )
% h0 t9 ^* Q- G% G - ;;;2 o8 B7 ]% U0 a* w
- ;;; The (ddmodify_select) function also sets the value of the
9 p! ]+ K; y' {+ W& s/ N6 W - ;;; global symbol AI_SELTYPE to one of the above three values to+ q: l( {& ` E' E4 {4 I% H
- ;;; indicate the method thru which the object was aquired., @4 B% ^1 J1 ^: v
- ;;;3 `" ]6 \1 f, y5 ^, n
- ;;; This value can be useful to applications that want to RESTORE- F% o$ l( [! D" ^
- ;;; an object that was autoselected to its previous selected state
+ p+ u. p B3 H9 Z: X, J; t - ;;; when they terminate, although there doesn't appear to be any/ c. x z$ b5 S) a0 I; P
- ;;; way to do this right now.
9 j6 V2 O# L- _6 S$ t
2 G3 M: K, `( B$ X9 p; P8 w/ R- (defun ddmodify_select (), z' a5 X1 ? G9 Z2 [$ R( E
- (cond
2 V X: N. C4 \& F" H3 I - ( ename ; (ddmodify) was called
# w8 A; k1 _6 Q" j* v - (cond ; with an <ename> argument
. Q P/ l7 V3 s% m - ( (entget ename) ; If object is non-deleted
1 J1 Q6 o. \- q7 A; F - (setq ai_seltype 3) ; then return its ename.2 i6 g1 c* r/ x& {* ]2 Q% a
- (ai_return ename))))
6 ~" b9 v* O! l6 [ - 5 e3 Z: S) r$ B% E# Z
- ;; return auto-selected , see ai_utils.lsp5 ]9 ?# |: o! e$ l
- ( (ai_autossget1 "\nSelect one object to modify: "))' ]; @* x( J U/ x
- & {/ e- @+ A7 Z. |% }" R
- (t (princ "\nNothing selected.")* x O) Z+ ]) T& J5 O+ `
- (ai_return nil))2 Q6 _) R/ [' H$ s
- )5 u: a8 {2 y+ {- G* y
- )4 P4 S# R/ B. T, k3 L( T
" g) \; M& [3 P% D4 i5 H0 w- ;;; ============= Command line interface function =======================" [- @* }! t$ w- g: |4 E/ y2 @) j
; h6 W3 x9 a- T- (defun C:MMO (): ]8 H& M; ^' g1 W$ T1 v! M
- (ddmodify nil)
8 S* ?1 I7 E! ^. c7 B - (princ)
4 l% a5 b U4 C& I2 o! z - )& t P1 w; o+ q* z+ H1 J
- 3 }# [- z% b- z& ~
- ;;; ================== (ddmodify) - Main program ========================" T! A" H2 ]3 a7 i
- ;;;5 t; l" b3 L8 b( W
- ;;; (ddmodify <ename> ), f$ F# r0 S2 u5 @* ^) s3 ?( ^( y* n( r ]
- ;;;/ M2 K. F* p0 u! ^7 u
- ;;; Main program function, callable as a subroutine.
3 ~6 b$ f# }( Y, U - ;;;0 R O5 O4 k3 R. T P& D5 k" X% V
- ;;; <ename> = object name of the object to modify.3 n( X" K( @/ e8 f
- ;;;
) W8 [5 j) \7 l/ ?8 f - ;;; If <ename> is nil, then user is prompted to select
. `3 L, I5 E( S$ w e9 G - ;;; the object interactively.7 w: d# n, O9 ]
- ;;;/ p7 j- W3 Y- a- V! h+ `8 Z( U8 E
- ;;; Before (ddmodify) can be called as a subroutine, it must! p) d3 S* Q5 z! r* u' m
- ;;; be loaded first. It is up to the calling application to
6 n2 W7 ^8 m4 U0 e; u7 N* m- F - ;;; first determine this, and load it if necessary.1 m! n+ B. h$ O9 B4 V& w. i
- ; S' `4 s2 S5 [: O; B, y
- # |. [* u7 A8 V/ J
- (defun ddmodify (ename /+ _5 Z, ]- v& m% m
- 2ndpt ell_calc_area move_pt1 templist( g8 p/ P) F; H8 o( u
- add_mdash ell_tile n tempmod o+ z! y0 g6 [4 Q. Z: B& |5 t
- alipt eltscale name tempst_ang0 P4 q$ q0 M+ S8 L* ]" K
- ang eltype newpoint test_ok
$ O5 N* D% g( x/ a! `" H3 ?' ~ - arc_calc emod next text
7 w9 P. P% J, W; }/ V% Q# d - arclen end_ang next_vertex th-value
2 ~, Q8 K0 s; k; _+ d; { - assoclist endpt obl tile
3 J6 v, V+ f) L- I4 @0 e - atprompt errchk off tile_rect
; f7 I: t- P& B% ~5 y t+ U, T - attag ethickness old_majrad tilemode
3 R* `& a" \. [: u' V - attprompt etype old-closed totang- D+ H! _3 h# o5 s% S* O
- bit extru old-closedm tstyle( h( ]% _; a, E( l
- bit1 fchk old-closedn u) j7 M( {: f' M, L
- bit-10 first-10-rec old-elist undo_init
; x) f5 u* G' X9 B f - bit-11 first-10-time olderr upsd4 v$ V# Q/ C# U: ], X5 Q3 F' H
- bit2 first-11-rec old-fit v$ n! K" m" q, ^! y+ u7 J3 [: P
- bit3 first-11-time old-idx va& }1 d1 s7 {9 c6 ?; W4 p, [4 t
- bit4 fit oldlist value
" Z1 E; M2 M9 R) C$ X - bit70 frozth old-spltype ver_4
. Y! G, {1 m0 ~: b3 R6 W0 w1 \ - bit-70 f-vis old-u ver_ang1, |5 \* |9 T8 D6 m+ p0 C5 |
- bit75 fx old-v ver_ang2/ e+ E+ s5 z+ c G7 b! J, e
- bk-up get_color on ver_col9 w9 s3 u: D, Z) f1 }' `5 @, k
- bkwd getcolor onoff ver_colsp
& }/ i8 U4 c+ m5 z - boxlength getindex on-off ver_eangle
1 N0 e5 i; ]7 J5 U8 M - bylayer_col getlayer patlist ver_hght
* z4 @/ x6 g+ m& e+ d, j - bylayer_lt getltype pattern ver_majrad+ c" k( ?$ x: v" Z
- calc getthickness pltype ver_obl
7 X3 L2 I9 C7 J" E - cancel globals polytype ver_pt1' a; O U0 {8 f, O# r
- cir_calc ha pre ver_pt2
6 r* S( D$ Y8 {* n - closed ha-prev proplist ver_pt3
2 T1 N" q+ j$ X9 D" Q5 _ m - closedm help_entry pt ver_pt4+ t; y& t4 F$ _* _6 k
- closedn hght pt1 ver_rad! Y& ~7 H0 v4 E* t; [
- cmd icvp pt1_eq_pt2 ver_rot+ {: S% |9 M/ b
- cn image_add_vector pt2 ver_row
8 k- a! T9 ^% p& y9 W - cname image_clean_variables pt3 ver_rowsp; g5 O. ?6 z) q; j
- cntl-pt-indicator image_cross_product pt4 ver_tag' z8 X+ F5 J6 b7 ~: r/ T6 T, @; ~7 L0 s
- code_71 image_disp_opt ptype ver_u
2 O& F; U$ o' D7 m# b - col_tile image_dot_product radius ver_v& u( Z7 e8 Y+ ^+ s1 K
- col-idx image_normalize_vector rational_spl_flag ver_wid
0 W ^: F% N1 c0 f9 M - colname image_rotate_vector reset ver_x1' _- R5 m2 i* }3 F
- colnmlst image_scale reset_flag ver_x28 B5 m2 P1 ~! C% u! U) e) i! X5 x
- colnolst image_scale_vector reset_lay ver_x33 l0 K3 p9 u9 b4 r5 f; @" d
- colnum image_update reset_lt ver_x41 x5 a D' f; g
- color index reset_uv ver_xline_pt1
9 D" X2 m0 p' d8 \# |1 X; h/ ?8 N - colorname inv rot ver_xline_pt2
0 l* T' K. R" z; i0 k4 B - colorno item rows ver_xline_x1- u; K1 C4 E. s) B$ D: s
- col-sp item1 row-sp ver_xline_x2
2 F% A% n% U1 g3 A4 Z, S - columns item2 rrat ver_xline_y1
; |' M0 s% D* R& ] - con itemlist s ver_xline_y2, Q$ ?. D! E. k
- coord jlist set_action_tiles ver_xline_z1 C1 B8 l- _2 ~
- ctr jlist_act set_just_idx ver_xline_z2" k4 V! d9 h \3 Y' \2 u
- cur-10-rec just-idx set_tile_bk-up ver_xscl
8 W2 j, u' [. ~8 I }) M - cur-11-rec layedit_act set_tile_cntl_pt ver_y10 u7 ]" t* K; X" M+ @* h$ L
- cvpname lay-idx set_tile_data_pt ver_y27 ?; O3 s; V: o0 y
- dash layinfo set_tile_dirv ver_y3* z" B, [% n" S( H, b0 z
- dashdata laylist set_tile_edges ver_y4
* V" j1 \+ z$ B - dashlist laylist_act set_tile_endang ver_yscl
+ l! Z+ C2 M, H" f8 y. U( `* u - dashsize layname set_tile_hght ver_z1
; z9 p& W! ~) x - data-pt-indicator laynmlst set_tile_icvp ver_z2
; X1 I# Y+ y* C) D5 F/ w - dcl_id layvalue set_tile_just ver_z3
9 F! W0 _! D4 Y4 C2 Q/ h- V/ w. c - dd3dface line_calc set_tile_obl ver_zscl) G8 Y% u' j( ]8 d
- dd3dsolid linetype set_tile_prompt verify_a
" g8 {: S4 h g- K0 z - ddarc list1 set_tile_props verify_d
% _6 ` Z& q9 S& f+ o6 P7 v - ddblock longlist set_tile_pt1 verify_i( `3 r. n8 A2 q/ m( S& f7 e
- ddbody ltabstr set_tile_pt2 verify_xline' N/ V5 _& Y" M0 v5 v, Y
- ddcircle ltedit_act set_tile_pt3 vfy
3 b' ^6 L& y& C- z0 Z- V% f - ddellipse ltidx set_tile_pt4 vi
+ Q) b! [# t( I! ]8 H, s- z b - ddgetprompt lt-idx set_tile_rad vlist; n- l0 {) q3 n* U8 X; O
- ddgettext ltlist set_tile_rc vname
" b, d* ?# _3 I: r - ddimage ltlist_act set_tile_rot vpf g. Y: G1 P. s, ?
- ddimen ltlist1 set_tile_scale vpid
6 \; g: V$ J: W* x/ w4 B6 \ - ddleader ltname set_tile_spline_props vpldata
3 d/ R, Y7 l" P8 W1 E+ y' E5 m2 [ - ddline ltnmlst set_tile_stang vpn1 R" ?0 |+ }" I% M6 }, @
- ddlist ltvalue set_tile_style vpt+ B# a% s0 v5 q# a+ P
- ddmline ltype set_tile_tag which_tiles1 c: X1 S$ @, V6 n4 `# ~8 l
- ddmodify_err m set_tile_text wid/ |6 y; C2 Z+ b$ V
- ddmtext majrad set_tile_vpt x$ a, v' @( ~1 r7 a* W6 q$ b2 r
- ddpline make_lay_lists set_tile_wid x1
. `/ j' U9 h2 B* x5 z& F/ d - ddpoint make_lt_lists set_tile_xline_pt1 x2
1 e, w* }7 ^# E( P, ]) L3 t' z( l, `8 w - ddray mdashlist set_tile_xline_pt2 x3: @ v7 J3 |% e8 Q
- ddregion minrad setcolor x4, N# |. t; [& ]* F
- ddshape modify_3dface shght xdlist: `5 B" z- K% ^- L
- ddsolid modify_3dsolid showpt xline_pt1# g* u+ \) d8 z/ E- @3 R* g
- ddspline modify_arc size xline_pt2; {! s' ~6 Y4 i" C( _
- ddtext modify_block slist xline_x1
! g& l5 W& |$ u5 T; {. l) P - ddvport modify_body sname xline_x2
~9 v8 H, M" L - ddxline modify_circle sortlist xline_y1
0 R `4 y! A F7 t; \5 O - denom modify_ellipse spltype xline_y2# F8 G* J- f2 l$ Y
- dialog-state modify_image ss xline_z1" V R" h$ `( s8 V& x( L9 h
- dir_pt modify_line st_ang xline_z2
$ B1 }/ E2 {$ l+ ]( F, O3 m0 T% f - dir_ptx modify_mline stpt xscale
" U5 g7 q1 D& ]* T- r4 I - dir_pty modify_mtext style_act xx4 w0 R X5 G4 P4 v7 {; L; b
- dir_ptz modify_point style-idx y
L8 A8 p/ {$ b) M; f - dismiss_dialog modify_polyline style-list y1% |" ^$ z) S9 o
- drawpattern modify_prop_geom tagval y2
4 j* g) p- e& h! }; \, G% o - echo modify_properties temp y38 N; K) t, J3 d. B; i
- ecolor modify_ray temp_color y4
' ], V' n1 a" [4 E - edge1 modify_region temp_dir_x yscale
- a; w! N, c: c6 i4 ^# M0 s, ]. f - edge2 modify_shape temp_dir_y yy9 J: V' Q* ]: ]2 Y. n8 R1 W9 n
- edge3 modify_solid temp_dir_z z1
: j+ O3 P. Z; e* i" q$ ~: e: b - edge4 modify_spline temp_xline_pt1 z2
n5 s7 [9 ]) x6 o: P" X r. } - edgetest modify_text temp_xline_x1 z3
. _& J) q# j; ~$ s/ v+ K - elayer modify_vport temp_xline_y1 z4
2 `) @' N/ F; m% i, `" |9 G; [! h - elist modify_xline temp_xline_z1 zscale
+ z1 x3 d. m/ y4 o! E: o - ell_calc modlist tempend_eang zz* \" N. w! S$ Y. y: N8 b
- dir-idx safe_ddedit ver_MtextWidth xcliponoff
' \9 v& [+ k( ?% |& N$ u8 y/ R - MText_style
: U" g# ~/ s6 W' J - )
2 @4 _' k( b$ p1 E3 r3 K* q - & i2 ^3 a+ t F! |, I2 j
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
% }- C# [4 n3 a6 w. Y - old_error *error* ; save current error function% _' y4 c6 q6 Y* N7 Q
- *error* ai_error ; new error function2 J3 s. P" R0 I* h2 }
- )
+ }2 @! q/ U( t! K/ k0 Z
, G7 X. n7 @0 |" K- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle
9 @! L7 ?/ k6 `& u8 w6 k) c/ h1 A7 ^ - (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection
) O: O, u7 R* h! ] - (setvar "pickstyle" new_pickstyle) ; bit and set to new value
& k( L9 [, U3 Y - $ T9 O4 f2 ~- _1 ~( @
- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)
1 _8 C) J* a# x) B0 `. w - (t 1))). B# E" d; k* }/ P
- (cond0 S' L' ?: E1 A6 O: J
- ( (not (ai_notrans))) ; Not transparent?, Z! a6 _. G8 m- N
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
5 G) t) L/ E Q) k; i: W - ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?
6 d( b- \5 `% y - ( (not (setq ename (ddmodify_select)))) ; object to modify?
$ S( I, g0 p) t4 N/ c
8 w6 {- Z- c1 X; ?- (t (ai_undo_push)
& c9 _6 `7 @' }# f9 p' k - (ddmodify_init) ; everything okay, proceed.
3 _. F, X. b- \6 {0 i, O - (cond8 }/ l5 }2 F+ _9 a# d
- ((= etype "LEADER")
' u7 W9 [1 f. d7 e" d, J0 X$ J - (setq help_entry "modify_Leader_dialog")9 Y% J6 F: l7 N# U- b7 A
- (ddleader)
I' d }6 L. A - )
) U' k" r& r! f1 I0 G - ((= etype "ARC")
, j- z) `8 {! E& v; g. u - (setq help_entry "modify_Arc_dialog")
4 P, ^0 j+ @0 C! s - (ddarc)/ z1 P) ~6 K3 y6 s
- )
% b, c* Z. x* |- O - ((= etype "ATTDEF")
- f$ F% A7 c1 V# i! W& x - (setq help_entry "modify_Attribute_Definition_dialog")
: j% ]& `9 O6 M# L9 p. n - (ddtext)
6 K' V% N7 }1 Q" w. ?" d `/ i. q( \( j - )! Q' K% c' L& t2 F8 y$ C( a# }
- ((= etype "CIRCLE")
) _6 e. z3 C& _2 P( Z7 k - (setq help_entry "modify_Circle_dialog")
; N+ R0 N7 [0 D2 Q) b6 h - (ddcircle)
+ F. Z- K f k6 z - )
5 v4 a, _& r/ g g5 { - ((= etype "ELLIPSE")) K4 d0 B" T5 j0 e5 \ a9 u8 s1 ~
- (setq help_entry "modify_Ellipse_dialog"). o2 q' y0 i/ Q: P' m, k; {
- (ddellipse)/ M9 b# m- H5 j/ h
- )
|+ L+ E" m0 r: d - ((= etype "3DSOLID")
; P& @, a( q: W' v8 N( u- Q% A - (setq help_entry "modify_3d_Solid_dialog")+ K) L7 _ @1 g) |# E
- (dd3dsolid)+ y& S" }# j$ F& U% }
- )
) B4 u1 W# w7 X4 \* g6 m - ((= etype "BODY")
9 J! K) g% K5 v( D0 a$ w - (setq help_entry "modify_Body_dialog")
+ l! f. c: w' x# }) I2 R) }. C( ~; D - (ddbody)
. x r9 i- l2 r& J - )9 \; C7 F% W& y' ~. e! e
- ((= etype "REGION")9 t: S" n! I' c/ @9 m8 X
- (setq help_entry "modify_Region_dialog")6 ~$ I# N1 ]1 A
- (ddregion)# {, {* K; R+ H! b- Y* M4 ~
- ). B9 b" y, [% @( N" d3 t2 d2 V
- ((= etype "HATCH")" N# w. V: e$ Z
- (setq help_entry "modify_Hatch_dialog")0 W4 o+ @% v) ]
- (ddnewhatch)
- z# Y9 [8 @& P/ i2 q& \ - )
: ^& Q7 a3 ~; F, X0 n3 { - ((= etype "SPLINE")' ?7 g. `( N+ W$ y& D: M
- (setq help_entry "modify_Spline_dialog")
5 G3 P5 }* g& @- E4 G, G - (ddspline)
' I. U9 w/ P5 }0 N" p+ V/ j" Q" H - )
3 z8 H2 F7 o+ _( M - ((= etype "INSERT") ; see ddblock for help_entry) G7 t: R9 H" X2 _! U; o3 m- @+ W3 G
- (ddblock)
- |' l( c6 s S* A$ O6 H& S - )
, {) {9 s- O. K9 L* ] - ((= etype "LINE")
% K4 P. d- T/ i k# j- b6 w - (setq help_entry "modify_Line_dialog")
) a$ {3 C/ Z- k+ g - (ddline)
' L+ j) `( g4 F( t j - ); ^" }$ c* @+ V4 O' m
- ((= etype "MLINE")
1 Q: z8 \7 @1 U$ } - (setq help_entry "modify_multiLine_dialog")/ H3 u4 w; t% Y+ _; g
- (ddmline)
' b1 f7 J' S$ r+ |3 W - )
9 `1 H; c' p" b% S# | - ((= etype "RAY")
3 I" v3 `; C t: R: a$ v - (setq help_entry "modify_Ray_dialog")
$ u) }# r4 Q0 \( M1 t. o" u - (ddxline)
3 U7 M: D' J6 U: n1 h - )
) A3 l( ~" U) Y) m* E+ k5 _2 N - ((= etype "XLINE")1 A+ ?7 ?3 B8 ^4 l5 k f/ H6 e
- (setq help_entry "modify_Xline_dialog")% n8 k1 V$ M2 _# [$ T
- (ddxline)1 P6 _& m6 f' }, k7 r/ s: v& ~
- )* U$ U/ @# B! z7 |; e1 P; G
- ((= etype "POINT")
2 s, w; w T# p' }1 P - (setq help_entry "modify_Point_dialog")4 j; z0 t b& |/ A# Q0 s1 A2 J
- (ddpoint)
* _8 R5 g2 w8 H1 k/ M - )8 ~/ S6 k3 U3 q/ C- C# n
- ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))' ?; v1 ?/ M- j7 M9 y- p8 M w" _: V9 u
- (setq help_entry "modify_Polyline_dialog")
+ R+ T: f: g; F+ f8 f$ q - ;; If a 2D pline, check to see if it is planar to the current, J7 W: e+ s# G: M
- ;; UCS, reject if not. To see if the pline is parallel,
* V( H! T2 q: l$ V" Z' t- l - ;; the 210 group (WCS) is added to the current UCS origin (WCS). S% w9 M7 D" X% v, |( q
- ;; and then converted to the current UCS and checked to see if, ^$ r4 N$ c8 U8 \, D0 m1 C& D
- ;; it is equal to (0,0,1).# ~/ o0 \/ g7 O" k/ e! w
- 2 c1 W0 @$ y" C5 v7 Q
- ;; Incase the 210 is default and not in the dxf list.5 B* Z& }7 [. y8 I' }/ y# O
- (if (= (assoc 210 (entget ename)) nil)# z0 }+ X( p' a
- (ddpline)
* y E7 k4 z5 V& T1 j7 y9 W$ H, _ - (progn
% u/ ^1 c9 m9 Q, _( [4 k8 U$ S - (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))
! h" F5 [/ i" b* | - (not (equal '(0.0 0.0 1.0)+ k( y& z( O2 }% |" G2 ~
- (trans (mapcar '+
+ E; W8 R" P4 D1 u - (cdr (assoc 210 (entget ename)))
! z4 |) Z- U# ^ |5 j! u7 L - (trans '(0.0 0.0 0.0) 1 0)
( T- j9 ~: g- ~4 F. j0 G2 b5 P - )
% E- Y- z+ v& c+ D" l$ M9 ? - 0 1
5 Z* ~7 ^+ |! R5 s - )
, L$ I/ q, L! v% Z - 0.0000000001 ; fuzz
$ q3 ]1 e6 }8 m - )! T+ Z: _. U$ p. a, A+ q
- )/ C8 v& d7 Q" n
- )& D& d/ K* k7 `, a
- (princ "\nThe 2D Polyline is not parallel to the current UCS.")
( U; T- D6 y+ h( w7 \& d, ~) B - (ddpline)7 ^; G* ^( s1 S; l( h6 s6 l
- )
' T0 v; V' ?# `' R - )
1 f! s+ I; ]5 E$ F) v - )2 x# Q a. d4 J
- )
4 i& B4 c9 Y3 d5 K3 @% G, o - / x L5 ` }* M* r" ], b
- ((= etype "SHAPE")
2 A3 R# x7 d5 Z6 k- S - (setq help_entry "modify_Shape_dialog"); l! s) I' y3 O& C" ~
- (ddshape)
3 Q' f7 f: Z5 |) Q9 g; a/ m - )# d# r8 R$ ?: a8 }& K+ J
- ((= etype "SOLID")' j# n9 x3 i, r4 L
- (setq help_entry "modify_Solid_dialog"): P7 b! D2 c5 p1 @( P c' `1 S
- (ddsolid)$ a0 ]3 V% o/ {
- )$ `* W: y: \! ?/ x
- ((= etype "TEXT")' ?- N2 Q& L5 z6 y
- (setq help_entry "modify_Text_dialog")
& B( j1 a0 ~2 J9 \ - (ddtext)
p6 W3 k$ U0 A/ z! c: ? - )4 V3 y8 e% a. [9 h8 C
- ((= etype "MTEXT")9 m0 P: j8 A7 Z& t4 m9 p+ m5 {
- (setq help_entry "modify_MText_dialog")
9 o. m/ d, p- F9 ^; K( ` - (ddmtext)
: Y- Z) n6 c% O - )
5 [/ a2 J9 w0 s( G9 |' G0 n) w, w - ((= etype "TRACE")
) R4 Z/ X0 R+ k- X; P$ |( q - (setq help_entry "modify_Trace_dialog")
6 Z/ ]+ w9 U9 |" n - (ddsolid)
5 q7 }6 M$ C& c* D - )8 r& W/ T- g) @+ @
- ((= etype "VIEWPORT")' q* j1 m/ j- l8 _- ^$ C
- (setq help_entry "modify_Viewport_dialog")
- G' s4 j/ q4 P" j - (ddvport)" ]% a3 `5 R5 X: t% v: \ F* T: Q& p- M
- )
) ]3 A, }# j" C M; j4 ~! D ~ - ((= etype "IMAGE")- ^4 k+ M! L8 y4 }4 I- T
- (setq help_entry "modify_Image_dialog")/ c4 B" c+ u! ^6 ~3 v) W
- (ddimage)
% _4 ^+ b5 f7 g( |+ u - )
" p+ h `' B6 k. C' x' u9 T - ((= etype "3DFACE")
) P9 s. }3 i8 M% c - (setq help_entry "modify_3D_Face_dialog"); v: z! ~& C# J+ L' F
- (dd3dface)( _8 j0 e' Y" W" ?
- )
$ m: l( [5 h" z7 b - ((= etype "DIMENSION")
5 |! S3 z% L- b - (setq help_entry "modify_Dimension_dialog")! j( B, y# t: F T6 J- d8 g
- (ddimen)6 l l( `: N, j" M" `- s
- )
7 ~, o1 q5 \" n( @! | - ((= etype "TOLERANCE")
4 H/ e1 M5 g& ~* F, M. c9 _$ \ - (setq help_entry "modify_Tolerance_dialog")% T2 G/ r" Q$ L% }+ n- [5 u0 R
- (ddtolerance)
) M4 F) e4 ], V! Y6 k S - )
$ Y# S; m% n i. L: f- z( {6 O, h - ;; Fall-through condition changed by MCAD for MDT 1.1 release.$ k q; v: Z1 j4 a4 b( ]
- ;; This allows DDMODIFY to work on any custom object or any new object type
) D/ u0 h' L& |8 F# B; j" x - ;; that isn't specifically handled above by calling the more generic DDCHPROP.
- C. k9 Y# n$ f3 q. b& ?0 h - (t, s L; m# ?* Q! t. ~" p9 Q
- (if (and (not ddchprop) (not (load "ddchprop" nil)))- w3 X# ]5 }1 r. I' S. ~) U
- (princ (strcat "No dialog support for object type: " etype ".")))
# V" f& ^& z+ A( H - (progn1 }' l5 t; a% o( {6 y! G' D1 s
- (setq tempss (ssadd ename))
' @2 o# B! @- Y# u - (ddchprop tempss): x" o2 }$ ]5 n W
- (setq tempss nil)
1 i1 }3 j. r# U; @ Z6 v - )
6 O9 R- s$ c2 f - )5 s Q6 z( ~4 @$ x8 ]
- )
3 H% ]% e( ?! [. f - ;; Previous fall-through condition.; Z9 O& A' T7 W: w" f6 e# F/ u* n
- ;; (t (princ (strcat "No dialog support for object type: "+ D% P$ R7 {; d. j: @
- ;; etype "."# B% Q# @ o" e7 O
- ;; ), s4 G4 I! [4 \! w8 h/ U
- ;; )
' K* L1 p, L" Y2 K - ;; )
# U, v# k% ?1 i7 ?, X( W0 L - ;; )
m! o4 r W2 e, p! E7 I - (ai_undo_pop)
5 H1 h+ y% X9 W6 T M" n& \/ l( R - )
3 L( E* c8 l! V# R8 l, c - )- g g: u. k' v E
; H! Y. L) L# \ u- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle
) |- b& g4 [8 b4 Z3 S) i) @ - (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back b* ~+ u# T# V6 b) h
- ) ; to what we started with" v1 E: I2 {5 ^# X- ~2 L, ?
6 i/ f) ^, u h0 P# T" y- (setq *error* old_error)3 u/ l L; _1 d
- (setvar "cmdecho" old_cmd): z9 E: m8 _5 n/ q5 r
- (if (not reset_flag) ; if object was modified, then7 |) C4 H" m' X( Z9 k! l! G
- (ai_return ename) ; return it's ename to caller
^, h7 Q& k' s- | - )
1 j3 \. c+ J, N3 l$ m4 Z - )
5 P) u6 c; j1 ?. x
1 e% g, Q3 G" p5 T- (defun checkForLockedLayer (ename)
1 d+ _. d7 {% U. n5 @( w2 i - (setq layername (cdr (assoc 8 (cdr (entget ename))))): a; N; {4 \5 A9 V0 N
- (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))# A. w; h( Y* {9 q9 ~. [
- (if (= layerflag 4); p) n0 `0 a) l1 n7 H
- T' l' S! k- z! m- R- x3 T
- nil9 e. J7 r% g! T" O3 H
- )
. c0 m% Q% \# |( }. Q& I# W1 ? - )
* h7 l) W; C/ D" x - # P4 ^. [/ g( e- a+ }+ a" c, e
- (princ " DDMODIFY loaded. ")4 E1 e) ^) k& a; H- e: g6 \: |; @
- (princ). P! v" j% Y" b2 ], U
- ;;;???;;;---------------------------------------------------------------------------------------
; B, S* t* k- K
4 c1 O: ]/ Y5 n* E+ }3 T- ; Next available MSG number is 8 3 N. R- f! v' |8 T2 U) W
- ; MODULE_ID DDUCSP_LSP_
& q$ Q0 r% U4 P+ W3 W- ~ - ;;;
+ W8 a$ A2 i/ Q7 R5 V' Y - ;;; dducsp.lsp$ p# G( ^+ x% e" o+ a% o
- ;;;
8 O* Z' M1 ^9 j; }6 ^8 H: } {1 ? - ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.6 s5 T) N' ^& l' B% g2 X
- ;;;, W6 B: j( i3 G9 ~! i) h* }
- ;;; Permission to use, copy, modify, and distribute this software: ?: G9 T& d4 r8 P0 X0 n
- ;;; for any purpose and without fee is hereby granted, provided7 a* ~, w3 R q: \
- ;;; that the above copyright notice appears in all copies and
" c$ @% C6 d% g0 E- I, a - ;;; that both that copyright notice and the limited warranty and
$ Z. E" B, {2 K ?! ?, h - ;;; restricted rights notice below appear in all supporting
7 [/ ] s' A- [5 A7 G: ^ - ;;; documentation.( K( [+ ]5 w/ ]4 E( C, x% E; N: V, K0 K
- ;;;3 C1 V1 G* U# g# R7 X- x$ S' m/ ~/ I7 S( c
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
. I# z9 `7 G0 F3 E0 W0 n8 H- _ R - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
4 Y: Q3 ~: f4 Q0 a0 P- J3 h - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
3 d+ S6 ~! ~ V# H/ h. \$ b. z3 x( T - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE& `4 A) a) \, }+ c
- ;;; UNINTERRUPTED OR ERROR FREE.
' u" }+ j! Y% v' F) A) d. e1 D - ;;;
) M4 @# h2 @1 F' r4 t- x+ F - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
0 C* v, q2 I( a5 v - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer; b; F' ~' }" G0 v
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
' Z$ U3 Y: u* ]0 ~+ p" n0 O7 n Y - ;;; (Rights in Technical Data and Computer Software), as applicable.
. B/ w2 Y) C' y2 y6 n - ;;;
5 a: R: y4 i0 M( t - ;;;. q3 s: @% P6 A( H1 }( t, a
- ;;; C:DDUCSP - User Coordinate System presets dialogue.7 |7 r5 h/ t: X, V+ Z/ ?
- ;;;
, i( Y( ?, \6 l; ^3 \2 c - ;;; Uses DDUCSP.DCL for the dialogue definition. The
8 C7 `- T+ e J, c - ;;; slide images are in ACAD.SLB.
d- s" {6 D j5 N4 u$ J7 L* P - ;;;4 u/ }7 Z D5 D/ J
- ;;; ===========================================================================
6 C( ]3 D" O: _ - ;;; ===================== load-time error checking ============================' Q: s$ q G6 b- x) T
- ;;;3 p U& w3 T: O; \9 p2 ^: |) d
- 8 {$ _+ d# M7 _. k, ~
- (defun ai_abort (app msg)! A1 C( i" ^, A. b/ f$ s2 t' G
- (defun *error* (s). o5 f$ P! @) v5 s
- (if old_error (setq *error* old_error))
' b9 {, K% }: l- N0 }2 {6 X - (princ)
- f$ q' B7 B9 H# V2 ?. m, ^ - ), A* S3 H/ g: v- `8 p5 U
- (if msg
6 q# {5 v4 j/ v! p$ E - (alert (strcat " Application error: "$ [6 X8 b, G7 l; L2 M
- app
( w: J: m1 W: m0 r/ B - " \n\n "
( l/ M6 n/ o$ o$ Y5 Z* |# J - msg
/ z. c, O! d1 ?* j+ Q8 X+ T: z - " \n"
. J* b( B% F0 j6 k - )
, F# m. x# X! C - )
, j9 S, H, B R0 p2 a - )- @0 F* c9 [# w! K% ?; [; U
- (exit)
0 A* _- S$ |8 j - ); n# l- ~" s% s8 ^' J. C; W
- ; Q$ S! W9 u) Z
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
( t! I {9 c' W& J - ;;; and then try to load it.
3 L0 B# D/ }- `8 r8 C# K8 k - ;;;3 S- i$ j G1 t' l8 s0 ?
- ;;; If it can't be found or it can't be loaded, then abort the
; j+ o V' L- U3 G p4 A; @; n, e - ;;; loading of this file immediately, preserving the (autoload)
5 L: T2 N E5 W - ;;; stub function.# a! v) g! n3 e% n _$ o( v k9 N
- k2 D! s5 l. l( {; X O- (cond. H( [+ C' q( V: h
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
& L3 H. ]9 o/ Z9 H% a - * v0 Z$ D* H. @9 c3 _2 ~
- ( (not (findfile "ai_utils.lsp")) ; find it
4 n& h- x6 I& O# O# S - (ai_abort "DDUCSP"' X( Z/ j' t% o1 A Y, b# |
- (strcat "Can't locate file AI_UTILS.LSP."
" ~2 t u# G) L" |9 I - "\n Check support directory.")))2 b9 I5 q% Y( G
- : o8 o+ c7 p4 ]! U! G# ^# Y
- ( (eq "failed" (load "ai_utils" "failed")) ; load it8 d& `/ c4 F" j# t+ |9 Y
- (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP")). P3 ^0 f6 Y/ e9 E5 V
- )0 n4 K9 j- B4 j' B
" W5 {1 y- p6 W$ z6 q4 }* ^- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP, Y- f2 m- L) b1 A9 N; N
- (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses) }* G- H" x" M9 ^
- ) ; ai_abort's alert box dialog." b9 h4 J3 `) P* z: m0 M; d
- # f g" L' P; F6 l7 ~. q* b& \( B0 I
- ;;; ==================== end load-time operations ===========================8 Z& V4 p- g/ S8 G9 q
- ) q* o# b2 E& s4 _( O9 h3 y
- (defun ai_ucsp_start ( / program)& B$ Y- f1 h* K" K# i, q) b' G
- ;; Get program name5 \8 O$ s% W6 q
- (if (not (setq program (getvar "program")))/ e# n0 a3 R y4 P; n
- (setq program "acad")
- E3 u3 ?5 d# b% f3 r' U, ^ - )
8 ^& Y$ @% V0 L1 } - (foreach v0 '("world" "left" "cview" "top" "front" ) a6 e. P. h0 E& O" P1 `& f
- "bottom" "back" "right" "prev")
) A9 O8 U) g; n& p - (start_image (strcat "ucsp_" v0))
, d8 V# p" T0 v9 Y7 A% Y: o - (slide_image# |- |+ `; h8 n: ^* h6 r: Z
- 0 0' m( V% D5 L# Y9 M/ u
- (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1)
# F& F: s. {1 H* G5 w0 v6 S - (strcat program "(u-" v0 ")")
: `3 |' m3 X/ J9 h - )
8 I7 c0 x& x' t4 l Y& { - (end_image)% E9 c! G# {9 H: J! f
- )
M) U. A4 C( u( J# A* \0 Y0 m! x* B - )
$ F. S$ R( x% x- l3 J
* I7 M2 q9 n6 h6 V2 K" f% Z- (defun ai_ucsp_set ()
: e! m# a3 Y1 c) Z* |) M - (if ai_ucsp_sv/ j' E& `6 e) ?: Z
- (command "_.UCS" "_V")
. v) i8 C! T$ J% b4 a - (if ai_ucsp_prevs1 f) r3 q+ \6 s4 K
- (command "_.UCS" "_P")
7 p5 j; S W& b; I3 J) j0 S* M& j - (if ai_ucsp_chg
( |5 T! E' Z, w# T& D - (progn: M# n3 {. I9 p( W/ T
- (if (/= ai_ucsp_a "*")
( {6 B' Q" u- X+ C, X( y% y. s - (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))8 x4 h/ E" q: |2 a
- )
! e" e4 T/ s# q$ J$ f - (if (< ai_ucsp_pick 6)
1 O X) O- H9 h/ u7 f4 K - (setq ai_ucsp_set0 "@") i1 e/ V& b! P+ D. j( Z5 a
- (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*"); T7 R! w6 C D, S$ {
- )
Y: f0 s* X1 Q - (cond ((= ai_ucsp_pick 0)8 g$ \3 j$ Y t) C3 ^ I2 ?2 c, E
- (setq ai_ucsp_set1 "0,-1,0"# ^. v- I& y$ g0 l
- ai_ucsp_set2 "0,0,1"
/ r$ r, u0 ?: W- | - )4 \/ E$ o' J" }" L( u. I
- )
4 D4 K' ]( T7 K; b& S - ((= ai_ucsp_pick 2); [' P7 O: @& k+ C" {" k6 \
- (setq ai_ucsp_set1 "1,0,0"' N k) ?& J" y/ ^" E, P6 ^
- ai_ucsp_set2 "0,0,1"( G8 {" d$ k+ t4 n
- )
2 P% _0 K% ]/ J% Q. X! _ - )4 o# _- ]# p0 I+ {5 S0 Z
- ((= ai_ucsp_pick 3)- F, o' p5 a, D2 V+ M6 k
- (setq ai_ucsp_set1 "1,0,0"
- B0 O, X( Z. f4 T) \. V - ai_ucsp_set2 "0,-1,0"
& f1 ~$ n6 q& Q - )
+ j) y) w' G6 D* T2 J - ), P9 m) i. Z0 F! p h N
- ((= ai_ucsp_pick 4); j" g% [3 ?$ g7 @4 h
- (setq ai_ucsp_set1 "-1,0,0". `2 }$ ^( u s5 \7 T
- ai_ucsp_set2 "0,0,1"; S6 b9 J3 E3 L) f( U
- )
% I% h" D5 Z# l - )
3 e6 k3 C: t0 \/ _ - ((= ai_ucsp_pick 5)
; {3 f# h+ r: k* n4 W# D. m' k - (setq ai_ucsp_set1 "0,1,0"
8 O- E: [+ e, e; D* ~ - ai_ucsp_set2 "0,0,1", |0 G* J3 f" ~' @* I6 W1 e3 z6 }
- )
6 l9 U: D: H6 _; ~6 d" l2 Q - ), D: X& ^' b% W' b& S1 V/ D1 @
- (T
$ R5 w7 H. B- ~; o& O( M - (setq ai_ucsp_set1 "1,0,0"- ^" Z5 x" Q- U) U4 R* y$ o
- ai_ucsp_set2 "0,1,0"
; E* j; a/ c2 ]3 [1 M6 ?4 } A - )4 r9 C" W6 [* A1 y6 I1 w4 a
- ): o% C' \8 Z8 E& Q( R3 \7 C; c
- )
0 O7 k, A# _; a } - (command "_.UCS" "_3P" ai_ucsp_set0 - g5 J [0 N! i) ?! T
- (strcat ai_ucsp_a ai_ucsp_set1) $ G- K! R0 {, u6 }( i1 ?
- (strcat ai_ucsp_a ai_ucsp_set2)" R) g) @6 B) t5 |- u
- ) # ]5 I) H# s% q) `* X* d
- )! V" B1 \- T ?+ J( B& f* S
- ); |% x4 G- N7 x. s) y
- )
$ i/ i4 Z# P* _2 X4 Z/ {6 p$ l - )
# A" A3 A1 U* ~ - )
* ?& b$ H* c+ b/ H - $ ]: {4 j( H8 T- t/ m- Q
- (defun ai_ucsp_p (val currtile)0 W. ]2 c' _* P, C! Y1 G6 k1 f6 x
- (mode_tile ai_ucsp_currtile 4)/ B# g& T: O: T* F8 }4 C
- (setq ai_ucsp_pick val& t, H, p0 @% V' i' l# x
- ai_ucsp_sv nil
8 `7 p% o' ~8 m S! ` - ai_ucsp_currtile currtile. [2 G# L% p7 s. g- g
- )/ S7 S+ g4 N @+ s/ G
- (if (/= val 1)6 H( b3 \* {. `* A3 ^
- (setq ai_ucsp_chg T)
* h3 q8 ]7 ^: I7 `5 K# _" x1 p - )3 |' z+ ]2 n* c) X6 {. Z
- (mode_tile ai_ucsp_currtile 4)
|8 e. u o" s% c! v6 H$ ] - )
8 E9 x5 e: \8 H- @* {9 \
6 j3 \9 f3 s+ {2 | N- (defun ai_ucsp_swcs ()
) h# ?6 T1 w% x Z% X0 B; Z - (mode_tile ai_ucsp_currtile 4)9 w, a$ n8 s( U- |; e
- (set_tile "ucsp_a_wcs" "1")5 J# A- o: _8 F6 X8 v, E
- (setq ai_ucsp_pick 6, S T4 {3 Q$ [7 x7 y: F4 _
- ai_ucsp_sv nil
+ Q1 [9 k; P$ C1 V# t - ai_ucsp_currtile "ucsp_world"5 d$ K' a' ?: M, \
- )
' T( \ T" u. Q0 H* [ - (if (/= 1 (getvar "WORLDUCS"))6 c4 ]4 S( B% S! V
- (setq ai_ucsp_chg T)+ b1 U& P) d# O6 h
- (setq ai_ucsp_chg nil)
' n# J v' x1 [) N. G' B, G( B Q, E - )
0 R, l8 r; C7 R. |& | - (mode_tile ai_ucsp_currtile 4)# C. L2 p2 R$ b @$ C
- )
- {- a$ C8 a9 W0 a
* q. \' r- h I$ @; L5 z4 p# G- (defun ai_ucsp_cview ()3 t# ~& v6 O5 T4 Y/ |+ x, p" \: g1 B
- (mode_tile ai_ucsp_currtile 4)' ]5 ]& ^+ z, o/ h( D, n) H* Q
- (setq ai_ucsp_sv T
% e0 {0 }8 e+ m5 U) H5 O! ^ - ai_ucsp_chg nil
* _$ K1 t8 r4 m5 u+ i - ai_ucsp_currtile "ucsp_cview"* d* x4 A5 l' O3 Q. g) Z
- )
5 u* M6 k1 j t, _" E, U, b$ O - (set_tile "ucsp_a_wcs" "1")* }4 g/ u f* O/ v1 z
- (mode_tile ai_ucsp_currtile 4). b1 J' x' c- p# _+ M
- )
# N8 m f, F2 `
, r5 V- Z4 B# ?: K- (defun ai_ucsp_rucs (typ)' [ ]7 Y8 `7 m7 Q0 j) l
- (setq ai_ucsp_a typ)% a/ j5 j& q1 S# p* o/ v
- (mode_tile ai_ucsp_currtile 2)
6 Y) x# Z9 H/ U$ o; q - ); p# i6 P. ?( y) M# A: k( u
- ( G' f! r b1 o) R8 {; f$ P2 g
- (defun ai_ucsp_prev ()1 K& y+ u! q/ b- M5 L: f
- (mode_tile ai_ucsp_currtile 4)# M4 z( \& I; o9 W9 \+ n. H. P: \0 p
- (setq ai_ucsp_prevs T
: Y. i8 t% m5 C0 F ]1 {9 u% v* _ - ai_ucsp_currtile "ucsp_prev"3 t+ `1 C9 Y: m% u
- )
* ^0 e" u" ?9 i* s) A% f - (mode_tile ai_ucsp_currtile 4)' }5 L" c2 o% X3 q- I( _
- )* M# Q8 u, V! X! B
- 7 a/ z: |/ S5 t. A
- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)
1 E( _7 m- [) O2 T. _0 R - (if (not (new_dialog "dducsp" dcl_id))( s( r% a* Y/ C; y! `* `
- (exit)) @' }# e3 Y5 f& z7 _
- )0 U, y# I8 w. L/ G" F7 ]2 T
- 6 v$ Y3 {6 R$ R+ Q
- (ai_ucsp_start): R+ u+ }8 h9 k
- (setq ai_ucsp_a "@" + x( x( ^/ K/ ]: Z) u
- ai_ucsp_pick 2
( ~+ o8 z: h I$ v - ai_ucsp_currtile "ucsp_top"9 m) r) X1 m! y! h6 U1 e# K
- )
6 ^ ~; g7 E8 O0 i" @ - (if (= 1 (getvar "WORLDUCS")): B' i- Z4 r4 r' t/ E1 O/ Y
- (progn
/ b" }8 B4 w* e* @ - (set_tile "ucsp_a_wcs" "1")" }) o& d+ S' H7 U" X
- (setq ai_ucsp_currtile "ucsp_world")5 [# l/ P; ?7 v9 W" b2 _" T2 q
- )
5 | X6 x8 i1 _( J - (set_tile "ucsp_r_ucs" "1")# V! R' s9 C' a. ]. w
- )0 |$ y5 v- X- w4 A- g2 E% i) c8 e
- (mode_tile ai_ucsp_currtile 2)
% d5 e% G( D7 e7 S# [) a5 f- J$ s - (mode_tile ai_ucsp_currtile 4)8 k7 Y7 L. }4 E/ r
- (action_tile "ucsp_world" "(ai_ucsp_swcs)")
7 ~' y0 N: P% D$ |" d9 n& S - (action_tile "ucsp_cview" "(ai_ucsp_cview)")
! l! j0 V. K4 x; Y6 |2 }% z* N5 L$ _5 u7 k2 w - (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")3 o, Z- Y w9 E& g8 a% N
- (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")" [ s2 T' t2 X, f. ?1 l( ~
- (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")6 B1 B4 c9 U8 t( _, v/ ?9 |/ w
- (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")
Y/ P1 e: L' i0 I) U5 s3 N( d - (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")
" k/ Q* s6 ^' I1 i* |+ X4 K# b Z4 c9 f; B - (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")
! E% I/ m9 g6 }2 d5 H0 h; j' }' ] - (action_tile "ucsp_prev" "(ai_ucsp_prev)")
5 l& H1 p6 G/ p3 P1 u4 p - (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")
$ x" t7 P7 h0 r `; B( C/ Y" y - (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")8 o' E# t1 L# N$ S
- (action_tile "accept" "(done_dialog 1)"); g& c+ T6 d. S9 n! m( l) Y
- (action_tile "cancel" "(done_dialog 0)"), @9 ` y! n3 a/ v$ n$ @: n& _; t
- (action_tile "help" "(help \"\" \"DDUCSP\")")
, c$ u/ F6 @0 M4 k) _; I- x5 P - (if (= (start_dialog) 1); g/ ?1 o; r- [% c6 j
- (ai_ucsp_set)- q9 w2 l: D! ?3 E, M
- )
, i2 q8 }6 z1 T+ H4 p) r& l - )
1 y2 O V; H; P+ s8 h/ s$ l - . Z8 H' H. [+ f
- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs
* ^% u% Y" j, x9 o0 a1 K# n - ai_ucsp_sw undo_init)# H8 P3 Z0 m) Z$ ^% X ]) m
- 8 O/ `1 l! ]( Q
- ;; Set up error function.
! e1 R4 C6 u( R) s - (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho& Z. M5 T8 D) h6 g
- old_error *error* ; save current error function
- _* D q4 [& j8 B& R" n - *error* ai_error ; new error function
0 R: I0 h% |! p. {6 O - old_osmode (getvar "OSMODE") ; disable OSNAP for duration
: i F5 B, l: z$ B I - )
* d! D( N% ~. ^ - $ o7 \. j/ z- s
- (setvar "CMDECHO" 0)
0 D( ?3 f% z% N( Z4 @) w - 0 |7 G! n3 w* p8 ~) y1 j
- (cond, O; l1 i2 v; h3 K1 A# i0 W
- ( (not (ai_notrans))) ; transparent not OK
% t' x; K. u4 Q( x - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?, b0 U" Y% a- n4 m7 i% Q* J
- ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?7 X* a* d3 _& }, f1 o; {
- (T (ai_undo_push)# T3 [ b" B% [* R( C7 c" R+ @
- (setvar "OSMODE" 0)0 Y. |% F& A f" u2 D; D; ^
- (ai_ucsp_main)
4 ?% t6 s0 \2 @% S8 b" F4 U. Q T - (setvar "OSMODE" old_osmode)& ?- g" [+ Y2 w; l
- (ai_undo_pop)
% f+ C2 i5 `& O5 T3 J4 [; l% _* @7 \ - )9 L1 Q1 K) v3 z
- )* O; ]9 t/ l" Q* y* J- a
" w( m& L+ ?% J; C3 g, `7 F+ X: D- (setq *error* old_error) * D% A& E) S: ]: h
- (setvar "cmdecho" old_cmd)- L: w4 T2 F7 p7 f
- 8 K5 J1 ~; o$ B# [' F5 K; O" ]( ]
- (princ)$ Y: B( D! I6 j8 H4 y" C
- )7 B e) U* C) O/ V# y1 v: K. m- M
- 5 y) }& z' t6 [! H, u' V) O; s# H
- (princ " DDUCSP loaded. ")+ G R5 U- f4 p% Z [9 Z+ ]
- (princ)
0 M8 @2 b9 c" {" j4 j1 c" R - 2 _& a; |. k% N
- ;;;???;;;---------------------------------------------------------------------------------------$ e( {2 c3 u+ p0 ]' X
$ a' N5 f" y y6 X' x* }( D% f2 G- ;;;----------------------------------------------------------------------------& m" f0 z+ @9 ?/ A# h" y2 q# T& e6 T
- ;;;4 m. n' W" n% Z9 j% V; F2 D
- ;;; EXCHPROP.LSP ! q6 f+ ]9 q7 w3 }$ d9 u) l1 ?- M
- ;;; Polyline and text modification capabilities added by
' E4 a/ [& b. \4 c: u: \1 A - ;;; Randy Kintzley 3 S/ `% [6 f4 G7 W: r) h
- ;;;
7 j( e" R* _4 k9 d - ;;; Copyright (C) 1997 by Autodesk, Inc." `; s: S0 n! U
- ;;;
v7 e" Q4 g2 c1 t - ;;; Permission to use, copy, modify, and distribute this software
; w0 P, E: n( U7 |) M - ;;; for any purpose and without fee is hereby granted, provided$ d5 [2 ]( X- [9 y: I
- ;;; that the above copyright notice appears in all copies and
* x! ?# n# p! R* A# D \ - ;;; that both that copyright notice and the limited warranty and
. v% w: d$ k6 K' G - ;;; restricted rights notice below appear in all supporting# D* v$ z2 }6 s0 j1 p6 k! `
- ;;; documentation.7 M1 o" ~; b* j6 [* a( i' J- C
- ;;;1 `7 Q6 {, \, \* p
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS." }0 B- W" l' Y4 o" [0 e# u
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF8 n2 |2 o! @" W" K$ {6 p
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
6 E+ _: n4 W. Y% m - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
* y: q2 F$ l x6 a0 @* p& `& h - ;;; UNINTERRUPTED OR ERROR FREE.) O2 j5 f$ Y/ t# a: D$ b G
- ;;;! X$ B4 l% z( f7 R( y- `
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
- t' m; `4 i: x$ v; ` - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
8 d9 ]: T/ h5 h# F - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)4 D: J3 w! x8 Q! q. h. f) J
- ;;; (Rights in Technical Data and Computer Software), as applicable.
4 v) A0 L) `9 F. r5 `2 n6 Z - ;;;1 i* C. @) u5 l( w( H7 v& u2 J
- ;;;.
. {! W) b! L' v% f" u5 z ^% N - ;;; 28 February 1997
! i! s+ N; _$ v2 @2 |4 V; D) j e - ;;;: \1 J h& k8 F; B( }2 M/ o
- ;;; X! d' X) T9 P4 A. b" `3 h
- ;;;----------------------------------------------------------------------------
/ Z2 x5 L+ I- h' \ u7 `, f - ;;; DESCRIPTION
5 M2 d3 o) w. ^; ]4 J - ;;;----------------------------------------------------------------------------
* F6 D4 V8 O' r# R$ \" M* l6 w - ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This 0 `8 z) w X$ O* Q( g
- ;;; command gives the user the abilitie to change several characteristics ; }/ V G/ G$ E
- ;;; of selected polyline and text objects. ; K$ C$ u' s% j* B2 @
- ;;; The style and height of selectected text objects can be modified
, D7 r7 c( p) F - ;;; (including text, mtext and attribute definitions) as well as, width and
( Q* ?0 J) |; q - ;;; elevation characteristics of selected polylines (includes lightweight and 2 q3 d; S6 V- Q
- ;;; traditional polylines.). _5 N$ S7 s5 E6 G: Y# d. _9 w
- ;;;----------------------------------------------------------------------------* g) B; y$ B, x8 k' l* X2 ~
- ;;;----------------------------------------------------------------------------
`& I8 t: V( L$ w6 p5 Y Z - ;;; Prefixes in command and keyword strings:
6 e; M* F1 D% A$ Z4 z/ G7 z - ;;; "." specifies the built-in AutoCAD command in case it has been+ U/ P. P8 s' d- n8 i$ [# n
- ;;; redefined.4 \, s0 A7 k' z8 _
- ;;; "_" denotes an AutoCAD command or keyword in the native language1 E9 K4 o D2 _" |) e" w5 n8 F
- ;;; version, English.
4 n& |; d( L% v, }( Y - ;;;----------------------------------------------------------------------------- U2 l3 d: u1 |6 \# L
- ;;;
7 h5 v) B e( I$ J7 \ - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6 F' m3 W8 ~2 r - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6 Z0 P. J1 J/ Z
- ;Functions created as result of loading file: exchprop.lsp" H/ F, A: d8 G& S. t# T
- ; DDCHPROP29 _) I2 j, `5 R1 g2 M9 O
- ; DDCHPROP2_INIT! I, b% {1 w8 k/ p
- ; DDCHPROP2_SELECT
3 Y9 f& ^6 W( ], y$ d - ;
( _5 e7 O3 z9 p" z - ;Variables created as result of loading file: exchprop.lsp& S4 J6 L, c1 Q/ d
- ; OLD_ALLOC$ c' f- A R% \* c
- ;
2 g0 q3 y$ h# w4 N3 ]6 T - ;Functions created as a result of executing the commands in: exchprop.lsp6 s6 [- }1 @3 t/ |" _5 B! d
- ;
1 ~& j4 M/ `4 E z0 F1 J( | - ;Variables created as a result of executing the commands in: exchprop.lsp4 V. q4 }0 S& J P
- ; AI_SELTYPE! L. V' L7 } m! X, f6 d- ^2 `* |
- ; BONUS_ALIVE8 S7 |5 H# N( Q* M/ T
- ; BONUS_OLD_ERROR
. i; m N& k3 w: Z2 \4 K - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
4 A9 ^9 b! e$ v' Z4 ~$ _% M - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6 t8 c0 Q. i& S6 L0 Q - ; y3 C& c( f- l* a& E
- ;;;
" F3 q. D E e7 a3 i% g - ;;; Avoid (gc)s on load to improve load time.
3 z3 [$ g! `7 h( A+ R1 S/ T. l - ;;;
5 b$ @2 X" r3 N8 B+ [1 _; }) Y: }' o - (defun do_alloc (/ old_allod new_alloc)
: _" ^+ j$ S6 n - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
1 ]0 r% I' x/ { @; M1 l7 j& _ - (expand (1+ (/ 4750 new_alloc)))- F1 y- \+ E! I7 j
- (alloc old_alloc)
# e/ @. |& b% ]( u8 S$ T - );defun- ]: `" y- o/ X: r6 h3 U( R
- 8 ^! C1 w/ p& K
- ;runs at load time - rk! \ w1 A- g7 i. U% p$ T
- (do_alloc)3 f, H: }# }& z' V! G$ Y
- (setq do_alloc nil)
( b8 p6 x) C! X+ v( {, l) ]1 J - ;;;
. m: U3 n9 ?) a+ ~# p. Y' |! [ - ;;; ===========================================================================4 }' j: Q) g0 h0 f
- ;;; ===================== load-time error checking ============================
+ `: X$ o. h0 X& u - ;;;* n3 i6 E/ X% p5 H+ ^) ]
5 ~, Z7 f3 s C6 Q# E- (defun ai_abort (app msg)
. d3 T+ \8 O- t) g. t& h6 ~ - (defun *error* (s) O! U! g* h( W3 I/ z* O3 Q% H4 M
- (if old_error (setq *error* old_error))$ v o7 h+ c$ X* x+ }& O* G
- (princ)1 A, S5 ?. K. c. ^' s' C, U
- );defun2 i0 d1 N! F8 P6 M+ Y/ z8 W
- (if msg8 O( B7 L! b _4 u, ^; P+ W4 x
- (alert (strcat " Application error: ": _9 e8 T, w& ^( R# h4 m
- app
( W3 j- N ?3 [3 ]/ C( p - " \n\n "* F5 X, u0 t$ m& `; d- N
- msg% v3 Z1 U+ v6 a# v9 @3 Y, @' {0 l
- " \n", z. ~2 n0 o6 \1 k- [
- )6 a; \7 j/ ?9 a ?9 b) y
- );alert: W/ e; g. b. \3 O# c
- );if5 p0 i+ V% O% E
- ;(*error* msg)
, |+ Y# W8 Z/ O! e3 t - (exit)0 ?; y" P* A+ L! y
- );defun ai_abort2 I0 o! v8 N# \/ H$ ]8 w( A
- / L9 z6 k9 u4 E& a) |9 r
- ;runs at load time - rk% @# V- M( N4 x* r5 G, K- X/ h
- ;(if (and *error* ;added the if wrapper around this - rk.5 Y% W' u+ a" I$ Y' }& w& H
- ; (not old_error)
0 \9 B/ L: l6 l) N; t* ]4 | - ; );and 1 `+ v6 |% z, I
- ; (setq old_error *error*);setq
% l$ a8 ~9 C6 @ G/ Z: o - ;);if
" V6 j, m% S( t5 M% n8 A
( ^" @, q, s8 K; o) Z9 x- ) X* u! n- L% [: ?5 C! s
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,# ^4 ~6 o8 H1 `; N1 w, {
- ;;; and then try to load it., K! v( {: z* w3 u/ C% q
- ;;;( H8 S( ?# E& T4 s2 J
- ;;; If it can't be found or it can't be loaded, then abort the
& L4 r. [/ A4 @7 ]6 Z - ;;; loading of this file immediately, preserving the (autoload)
/ _4 {; i/ [! ~; F* @9 ^ - ;;; stub function.
7 {+ s6 `- M9 x! [. p - 7 G, V5 N7 o) U
- ;runs at load time - rk.
7 M# D Y1 ^6 R; L U - (cond
5 e: g: y0 Z9 w - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.5 ?3 u& [/ }: ?* \$ C! H
- ( (not (findfile "ai_utils.lsp")) ; find it
) H. D: W% L0 ^2 @ - (ai_abort "EXCHPROP"& _/ n" ^0 ^7 Z8 X8 _7 w1 C( F
- (strcat "Can't locate file AI_UTILS.LSP."
- Y' P' S% M6 F3 }2 N+ S4 ] - "\n Check support directory.")4 [* u M! ]2 a7 S/ o' C% @. [
- );ai_abort
( Q$ a, L2 _1 F+ f5 ]+ b$ W - ); {. d; X7 k# T- }
- ( (eq "failed" (load "ai_utils" "failed")) ; load it2 O: J' g) h4 }6 K8 y; r( l
- (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")
2 m6 B8 l$ l; S! N - )
* ^3 u9 s, e: r3 e - );cond close
6 t$ O) ]% P" o$ o: x - _" u. l! H: L% x) A
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
% X" f4 J* Z9 O" s' g4 y" Z - (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses
3 v5 [3 k7 k1 ^+ }+ j ?: Z3 s - );if ; ai_abort's alert box dialog.
3 w6 w8 w2 Y7 i( k8 H; { - 5 e1 k* }" |% S' Y" j" W$ s
- ;;; ==================== end load-time operations ===========================; ]/ C0 `) d* l2 U' M) ]
- A# O# n A. C9 F- g' B( U! ^
- ;;; Initialize program subroutines and variables.; L6 o! w; V# y
0 w- }* j# h$ h4 P* t/ m2 M+ R- (defun ddchprop2_init()
% j+ @8 u) ?" a - # V$ b" R+ o+ c8 {
/ A5 ^4 d' {! S
6 Y/ f. ^7 t" o5 s2 i, x& B0 a- ;;
0 j3 A# \4 Y6 \+ O - ;; Define buttons and set values in CHPROP dialogue box
! P4 i Y- f( f+ `5 { - ;;# x+ D; g5 p6 V
- (defun call_chp2 (/ cmdact p1 p2)
( _ c5 v/ W/ ?6 k - " H& T( Y6 Y) t# e$ v6 ?
- (if (not (new_dialog "ch_prop" dcl_id)) . q2 w7 m* ?) S$ J5 z% V
- (exit)
2 X* d- x$ N( T' V: A5 [4 C8 m - )$ G* c2 Q, Q9 p* r H
- : `' T8 K3 L$ E* A( W
- (set_tile "error" "")
% {, x+ }/ [& b - ;; Set initial dialogue tile values" r+ R. x B7 L }. E
- (set_col_tile)7 v M& f* ?3 F! U6 S
- (set_tile "t_layer" elayer)
. h" v: t1 Z2 j( ~ - 7 [3 u& U! s, {. }, j7 l6 ?1 `* a. c" p
- (cond
9 ]" B0 z) P4 ^" n2 I9 ^7 | - ((= lt-idx nil)
4 T% g$ y) S' J - (set_tile "t_ltype" "Varies")7 @9 Z9 }! `( m8 v/ j
- )6 X/ V1 c$ h4 n+ F9 j
- ((= lt-idx 0) ; set tile "By layer & layer linetype"% G1 U9 R+ F! V" s& M% t3 \
- (set_tile "t_ltype" (bylayer_lt))
% D g' t% J; s8 [ - )" T& i7 o' C0 @% K4 a6 Q! r* ~
- (T
7 G& e" S6 _! Y2 {0 L" o/ W - (set_tile "t_ltype" (nth lt-idx ltnmlst))
/ x& h8 n) j( g) r% G, Z/ e - )
! [1 U% z- w( m' R - )
/ I- p0 p% r4 K7 S2 j. V
. ~4 J+ C% F2 }, y+ T X- (if (or (= ethickness nil)0 B. _9 x. p( |) C6 @: q# V. S
- (= ethickness "")! _3 a" m5 F$ I
- (= ethickness "Varies")
6 L: V8 M6 |3 }- l - );or
- \, e2 V- k O. ^6 }3 `8 V/ | - (set_tile "eb_thickness" "")
) a1 F! A2 C2 { - (set_tile "eb_thickness" (ai_rtos ethickness))
& R/ g, c* b4 O4 z8 c, r, I6 N - );if
2 D* f2 K, Y4 c. u; h - (if (or (= eltscale nil)3 h4 C2 Z t0 b$ x7 u. S# d
- (= eltscale "")5 K' _# m R. w2 K: N M
- (= eltscale "Varies")
8 B" S. E" _: z0 N9 Z6 L - 7 q# y b' [% u- z% O1 j& C
- )/ [& R/ y7 a- E4 ^3 @% Z) ?2 v' I- r
- (set_tile "eb_ltscale" "")) ` K9 e$ p4 |9 a/ }
- (set_tile "eb_ltscale" (ai_rtos eltscale))
# i3 n9 p9 r" N; ]% Z( ? - )
' Z) A5 a& e0 |! I; v) ? - (if ?7 B6 a- ?" ?3 }3 V7 F# n8 k$ r
- (numberp ewidth); a' x% e% ^+ g: J. \+ m3 U
- (set_tile "poly_wid" (ai_rtos ewidth))" s/ `" ~ E4 o2 j& q+ R: E
- (set_tile "poly_wid" ewidth) w5 L5 r4 a& n% b$ Q
- )! \% W0 E4 D$ n h" L! Z
- (if
, {: o7 k6 m$ e. Q% H - (numberp eelevation)0 k' B0 q' s% K b" f
- (set_tile "poly_elev" (ai_rtos eelevation))
$ z) J# T; R. I) T - (set_tile "poly_elev" eelevation)- w* @; C N- L9 g
- )
' \) d* ~4 |2 D+ j, R - (if
\( M' G7 \8 h; B' g8 g3 @. X - (numberp eheight)
1 t4 t' S5 J9 c* l- T - (set_tile "text_hgt" (ai_rtos eheight))6 z, q) |+ J8 t% o$ |( L; F- j' N$ |
- (set_tile "text_hgt" eheight)
" ~% e4 H, |5 R; Q1 a - )5 t) \( \1 K \
- (if (not estyle)5 p5 X" d% E8 q
- (setq estyle "")0 p( }! [: K8 N7 y& M" l2 N
- );if 1 Y+ w2 k; f" U% P( I( d# Q0 t- A2 X
- (setq hair_style_list (tnlist '("style" 16)));setq
# w4 Z! S9 n {! f - (if (not (member estyle hair_style_list))
6 H. f3 _3 ?! A9 I4 n% | - (setq hair_style_list (append hair_style_list (list estyle)));setq# M+ K3 |9 X0 t" b" S& c
- );if
" E E: H4 d& d9 D2 f: F3 j& ~4 U
# ]% ^# d* l0 k- r7 y+ h& V- (setq hair_style_list (acad_strlsort hair_style_list));setq
6 b9 {& A8 _( `4 O7 D& x - (mpoplst "text_style" hair_style_list)- C# D B9 r* {5 C# B2 f4 \% l
- (set_tile "text_style"
' b1 @0 N5 p( L* c - (itoa (position estyle hair_style_list))- o/ q+ v a [$ s$ G
- );set_tile 7 e& R, p7 E6 n) S* C( P
- ( S4 {! j9 I+ z: d
- ;; Disable tiles if need be... ;@RK* X. O8 ~3 `; T2 @7 U
- (setq a 0)0 I8 O6 U U6 O
- (while ( < a (sslength ss))
: j# |1 m* y8 n+ i - (setq which_tiles
' t0 i8 @1 s% P( R" ]7 ~* ] - (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))
3 P, R/ `, N4 p( O - # C& ~0 Y3 L, U9 G
- ;; If all fields are enabled, don't bother checking anymore.- k. ?! |3 R8 q* t# r8 I$ ?2 c) t
- (if (/= which_tiles (logior 1 2 4 8 16))+ R6 ?* H0 x' H& s, U6 W
- (setq a (1+ a))! b3 m) W+ @7 ?
- (setq a (sslength ss))
# ?1 o' i6 r' W7 M/ F& o" M, G - )
# m, ^& f1 K/ G1 @2 s6 ^; H5 W& F - )4 w1 C; L* z9 N
- ;; Layer Button and Text Field6 E, P: l$ @6 Z
- & |: @% i3 K. J4 {$ h. b
- (if (/= 1 (logand 1 which_tiles))$ ?2 g2 B) e/ s! Y2 g
- (progn0 n/ r: n4 W/ ~$ _" X3 w) e8 S" d
- (mode_tile "t_layer" 1)+ g0 l& g5 z9 _2 e+ s$ q
- (mode_tile "b_name" 1)5 k; r q! P) ?$ V. l
- )
9 B& x- A: `0 M; h9 A# i - )
* B" s+ w' n9 ^6 Q; {: j% S) X - 2 {% {, W8 b7 h( G$ F% d
- ;; Color Button and Text Field S+ h* s/ w8 Y$ b) S Z% o
- (if (/= 2 (logand 2 which_tiles))+ d J* X i2 W
- (progn- q2 m$ U ]/ x8 p) Z( y
- (mode_tile "t_color" 1)# k) P% q) p& q! q! T1 K [
- (mode_tile "b_color" 1)) C5 O1 n9 z3 A$ l- v3 z9 {
- (mode_tile "show_image" 1)
2 Q/ m0 h* Q( } d3 g - )' L z' F5 V( w) W) j% b4 X
- )
( a1 }* q3 b. L$ Z E/ I2 Z' k - ;; Linetype Button and Text Field; G! C$ y7 A2 m
- (if (/= 4 (logand 4 which_tiles))1 u/ `! D2 I# j" i6 X! s
- (progn" a; u( y! u ~1 A4 r) R* f
- (mode_tile "t_ltype" 1)
( @8 O. i4 n- E, L2 x- a3 U$ N - (mode_tile "b_line" 1)
_& s- O5 W4 K$ W& i - )( |1 `( `; C/ f& w1 ?. i8 X
- ): L+ ^' Q, r3 A5 b" D
- ;; Linetype Scale Edit Field' m; B* N& |# q0 ^
- (if (/= 8 (logand 8 which_tiles))" U! h) W- D2 p6 j
- (progn
& s# c! H' }- P! R2 [ - (mode_tile "eb_ltscale" 1)
! f3 R5 N9 ^. f/ F7 D - )$ C" x- \9 A- @4 K+ g2 r
- )' O: `% x% U% O/ G
- ;; Thickness Edit Field.
2 m* e/ l+ j8 p9 b7 b4 X" t - (if (/= 16 (logand 16 which_tiles))8 v8 `2 ^; P: x0 b- l" N. u. m. d% D
- (progn, j. C" s2 S9 b7 @; @9 [9 b
- (mode_tile "eb_thickness" 1)* [9 [$ W8 j0 T) |8 [
- ) S4 p3 R& t9 Z3 K
- )& w* C6 V3 F& p8 T7 { J
- 4 _; b. T! [7 t
- ;; Polyline box and tiles @rk 10:05 AM 1/30/97
* G, ?" l1 L" l6 X+ x - (if (not (= 2 (logand 2 eflag)))
5 Y Y, Y# {% y H - (progn
; Q8 x3 o; R: l5 j - (mode_tile "text_hgt" 1)& I: p, o4 S3 V/ A- l
- (mode_tile "text_style" 1)
+ V& c7 t1 O V+ S/ G! s! I6 w - );progn* L5 z5 b, O/ B1 F1 o
- );if" J$ j7 k4 N( n7 q/ {! _4 \6 L) f4 a
- (if (not (= 1 (logand 1 eflag)))
3 M( P5 S0 Y( q8 ~! X2 m; T) | - (progn 7 h; p! N% V4 _0 C( p6 k7 k
- (mode_tile "poly_wid" 1)
( n" ?' ?9 V) u: x& v - (mode_tile "poly_elev" 1)
$ ?/ j- Y @0 w& ]' { - );progn then disable polyline fields
- ]* Q2 e/ N7 y9 k' l; F - );if
* g1 R; S0 E: @& }+ O$ ~ - 2 k' x8 E# I4 f5 l8 r
- ;; Define action for tiles
& j: \+ _' w% @# \1 M4 h - (action_tile "b_color" "(setq ecolor (getcolor))")3 _& J* `. N! t- Y7 T
- (action_tile "show_image" "(setq ecolor (getcolor))")* r% s$ V- ]2 ^1 L1 }3 G X
- (action_tile "b_name" "(setq elayer (getlayer))")+ U. ^" F( `) g5 c L8 K h" S
- (action_tile "b_line" "(setq eltype (getltype))")+ b4 e/ p$ `; U
- (action_tile "eb_ltscale" "(getscale $value)")" ^- b! t9 n* y4 ~
- (action_tile "eb_thickness" "(getthickness $value)")
O) F. a) \: e/ b" a - (action_tile "poly_wid" "(getwidth $value)")
* X @( v+ m* `3 V7 P/ f! h - (action_tile "poly_elev" "(getelevation $value)")& ]4 [. F! {, C: w9 H9 U+ o
- (action_tile "text_hgt" "(getheight $value)")! L$ j( b" Z. ~& @1 U% X3 e
- (action_tile "text_style" "(getstyle $value hair_style_list)") ! d/ Y+ B8 R! h3 A. f
- (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")
1 v3 s& Z7 x6 l; o/ P- F - (action_tile "accept" "(test-main-ok)")
/ u4 r0 |0 `" p - . Z" Z4 N1 X* {8 l" t+ L0 I+ g5 x
- (if (= (start_dialog) 1)+ }* g# D& E. ]0 _1 z, V" U. E
- (progn3 u$ E i9 X) A; ]
- ; Update special properties for polyline and text selection-sets.
. |& U% M3 i" p: E - ' V; ?- K% @4 A# B
- (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop5 H) u$ @' v6 P. }- q
- (or ewidth
1 C* e+ B3 Q U# E5 ^; o- B. i - eelevation
2 e8 W. b# z$ f. W3 T" N - );or7 R, d R' I1 b" G- X5 }2 n
- );and5 h; {9 t: o$ y' ~# J
- (progn5 F/ x0 p: h% t
- (setq ss-index 0
/ b/ q! V* ]4 ]" }8 T - ss-length (sslength poly_ss)" i) I( h( X4 B6 S2 V5 M/ Q; ]
- );setq: X( B8 \' Z2 F+ B3 q, o
- (while (< ss-index ss-length)
# }; s+ n F8 l7 [4 l - (setq ename (ssname poly_ss ss-index)
1 R+ B4 D) v- |. Z. W8 x% Z8 ] - elist (entget ename) j3 x) Y+ k3 y* s4 M
- );setq
3 c4 G2 q! c _( Y4 _ - (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp, h" q+ l0 T5 E- N4 e z) y
- (if ewidth + x6 \8 {5 q8 B3 a* ~$ t
- (command "_.pedit" ename "_W" ewidth "_x")! g% @# D0 b- S& |. Z5 M3 m
- );if : c) v/ ?5 m+ k$ i: @+ D9 q
- (if eelevation
7 z* ]1 |3 C% \0 O' J# {" G6 _ - (progn
# A+ k1 F1 S5 M - (setq p2 (list 0.0 0.0 eelevation));setq6 m. g/ l! Y; H: A% r P: X5 M
- (if (equal (cdr (assoc 0 elist)) "POLYLINE"): d" I5 ]! Q- [+ a: F% D
- (setq p1 (list 0.0 0.0
2 [% f0 m, c+ V4 M5 d; i! m - (caddr (cdr (assoc 10 elist)))9 h( D! L% _# a: R6 I6 l& r
- );list" ~+ q* [1 Q: E0 L
- );setq) }! k% N: v/ |. l
- (progn
( i% S8 X9 J2 l$ z - (if (assoc 38 elist)
5 O8 ~5 A% }9 E% a/ ?5 P - (setq p1 (list 0.0 0.0; t" F* v" i# Q
- (cdr (assoc 38 elist))
) e8 E* j( J( A# | - );list
{8 L# Y1 D/ j1 n) t - );setq* u; u# h9 s/ q6 _4 V
- (setq p1 '(0.0 0.0 0.0))8 v) I& l7 j7 [- H7 J( h
- );if
" r! J4 u8 w0 C/ w0 K - );progn 2 a# T2 p/ I* u# b
- );if
5 q5 v( T# c1 Y) Z - (command "_.move" ename "" p1 p2)
5 x, ]' {) C1 Z) O3 c - );progn then change the elevation of the polyline
5 c6 a! W' s; O! o4 ^3 k( K7 e( g6 v - );if5 b' R5 b6 y2 B1 w/ j$ g
- (command "_.ucs" "_p")+ S4 n; v) w; f1 O" W
- (setq ss-index (1+ ss-index))
7 j- E3 I+ x; q( k+ ` - );while
& S* w/ d! Y+ v8 V: L' M - );progn then polylines are in the selset
2 }5 m2 R$ [5 Q/ j - );if
' X2 v) n8 ~2 [) b6 D - (if (and (= 2 (logand 2 eflag)) ; text
% u. W7 C7 \" E9 b3 u2 r - (or eheight 2 T( o* P' |. T
- estyle; K5 Q7 {# _5 I9 `
- );or. P* ^8 o4 _" r# z5 j# `- I
- );and3 e6 Y4 ?" Q6 |6 S' p
- (progn Q2 O8 Q: C7 o5 |2 f
- (setq ss-index 0 ss-length (sslength txt_ss))
8 } q: C/ w* U7 B+ W; e4 d - (while$ r/ X7 o( Y8 W9 T, C+ d
- (< ss-index ss-length)5 I+ H+ l7 S, q; A
- (setq elist (entget (setq ename (ssname txt_ss ss-index))))3 `3 J9 g( D2 J& n X6 X/ f' ] G
- (if (numberp eheight)
( [; a* U2 V0 q- t$ R - (setq elist (subst (cons 40 eheight)
5 u4 O! f. k! Y1 Z - (assoc 40 elist)! f0 W- b* U4 D8 B% P/ k' _
- elist* L% C+ j: F0 Y& y- h
- );subst& n6 d: ~6 t1 j% b7 K0 P% m: w
- );setq
1 A0 B& x5 V' o7 U - );if
* J0 B+ ^' s- T9 m8 U - (if (and estyle ;(not (equal estyle ""))1 L$ I6 A0 W2 h. l( h. x/ M
- (not (equal estyle (cdr (assoc 7 elist))))
2 Q% f6 N" Z7 A$ c - );and
( }+ B5 {# |6 u2 R" F - (progn
( M R. X* V9 q& a" y - ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt , b; H7 W) t& ~6 O4 m: J
- ;(if (equal "MTEXT" (cdr (assoc 0 elist)))+ z' b6 B6 ^+ s; s- I3 r
- ; (setq elist (fix_mtext_fonts estyle / ]- }, f$ ?3 m8 B! e# S+ B- K% u
- ; elist
- I# q4 J4 I# l+ A - ; )3 d, m0 [- E/ Y8 b3 t& H
- ; );setq then. J: O: M5 w6 c, o9 r: ^! T9 R+ d$ S
- (setq elist (subst (cons 7 estyle)
' A: k9 B' E0 g z! W9 Q+ X- p - (assoc 7 elist)
5 Y; f: [+ y' L+ N* V/ | e - elist
4 L( Z0 a$ {; V8 ]0 `2 ~' K - );subst8 }: \4 l8 e4 I
- );setq else
, J# \1 i# J6 C' p - ;);if * Y7 G% I9 u5 C' c$ h
- );progn
4 N0 T6 o$ ]( B! e* W% ~ - );if
, j4 R) W8 ]+ K! {, o - (entmod elist)" S U4 ]# {+ R+ |
- (setq ss-index (1+ ss-index))
6 S& {' J R& v; h: A - );while5 M: M ^) j5 W
- );progn then
7 f, M( h) ]- A7 s! _0 u1 Z - );if4 X: n+ i, w9 H- }" I
. D: }" J. _! D5 \, x- (setq cmdact (getvar "cmdactive"))
4 x% v1 w( _& {- f' A - (command "_.chprop" ss ""); u/ A0 t9 v" l6 h# ~$ H
- (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?
9 _% W. o% x* {, m, y' F$ `2 D: S - (progn
, S ^' ]3 e6 B; u" P - (if ecolor6 {3 z$ u' {4 W
- (progn7 a* [& S) O" ~8 A: ~& k0 g
- (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK"))3 l5 n9 i# T- I/ S. v7 q' J
- (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))
+ {. j/ @3 A5 s, m/ f6 g. a) R - (command "_c" ecolor)) s+ f L6 a+ Q6 ~8 x- L2 j& M
- );progn then* x1 k5 _3 Z9 n! o
- )1 j0 |: R% V: P+ _
- (if (and lt-idx
o* Q1 `" {/ A; ^# w; g - (/= eltype ;|MSG0|;"Varies")
2 e- I4 Q! H( c( m3 } - )
4 T& k6 @5 U4 n' t6 N( ^# ? - (command "_lt" eltype)" K& X( Q1 I+ v. C
- )8 R) S" E* o- }3 B( H' m S" _
- (if (and lay-idx
p; g+ S, P5 x, a, X$ G) ~0 ` x - (/= elayer ;|MSG0|;"Varies") \' i/ Y# i& m( c+ [0 u7 g9 C
- )* G+ C2 x) ]2 Q- `
- (command "_la" elayer)
( w7 }/ j) M$ H: P5 H - )1 A. H; q Z6 n* L+ `
- (if (and ethickness
5 P: U* G) n7 @% L - (/= ethickness "")* t% | \" w' x" J+ X' b$ Q; ?
- (/= ethickness "Varies")
8 r4 K" Y: X# H - )
) Q* G0 _: i# p7 O7 t$ S - (command "_t" ethickness)
# d s: {- b* |1 z - )" @& Q: H+ k) J* h& i$ Y
- (if (and eltscale (/= eltscale ""))6 C8 ~, A+ q3 G, y7 x. g+ e
- (command "_lts" eltscale)8 Y `4 {" m6 d2 t( N @
- );if
/ s( j! _3 u" \0 {, H+ T - (command "")! H2 X! I2 G0 R3 K
- )
; R D9 |; S4 n8 y) p - (princ "\nProperties unchanged") ; CHPROP didn't like our SS set
$ h2 d: j7 \- \) Y - )' Y6 z8 |3 A. s. u8 U
% X% I$ h; b7 ]4 W" ` r9 G: n- );progn then OK was picked in the dialog." L5 y6 H6 f+ d- `: e( ^! a% g# x. `
-
/ G8 {$ V6 p1 Z) D( y - ;; Fred GERBER - 25-AUG-94
& W, ~& B5 @% R, X1 d8 s - ;; Don't print the "Properties unchanged" message when the user cancels
: _4 _, I$ G T8 B: g @ - ;; the dialog because he knows that already (otherwise he would have
# | G! j7 F. h& {: P - ;; hit the "OK" button). Display the message only if CHPROP fails for
( Z5 C. ^7 a" W1 u9 e - ;; some reason, because it is not the expected behavior of the command.
, d: K& Q% T B$ Y7 g# r( E! a - ;;" J: _' O3 O/ n/ E5 E" [4 o
- ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")) H' g1 j2 k- N# A# j1 v/ B; ~
- );if
! R! {8 o: P" J+ Y6 | - (princ)
, x( s5 \0 U0 d1 l. x( J - );defun call_chp2) B* h- b1 p6 k; z- j
- ;;! f& P6 a# l8 ~: N5 |) \
- ;; Function to set the Color text tile and swab to the current color value.
5 D" r, \1 x/ C3 |- E8 P, l, h0 v3 v7 s - ;;
; Z* ^ t" f9 B% `8 P9 b) f - (defun set_col_tile()' V- w4 j7 I' _( P3 }5 y6 x
- (cond% P. k4 t0 R$ E+ Y' C3 z
- ((= ecolor nil)
+ f- S. G& R5 X" M z- m' v - (set_tile "t_color" "Varies") l, M. Q! {7 S# T2 T2 @5 o M
- (col_tile "show_image" 0 nil)
) D. H+ Q* c% v! F - ): m! G! L. n# V6 L* M4 T
- ((= ecolor 0)9 i1 Y2 w9 ]0 `9 ~9 b
- (set_tile "t_color" "BYBLOCK") F* e) M3 N& Z W. R3 n
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white$ o( m/ R+ |# B( j2 x6 p/ c
- )
2 Y8 j) c+ [/ p- e L: j - ((= ecolor 1): ^4 Y: Y3 z: N) u; s8 c
- (set_tile "t_color" "1 red")3 w( L4 b+ V) {( |1 g; `
- (col_tile "show_image" 1 nil)5 q' l$ h! W% l. m
- )8 G6 J7 r: x9 ], Q, c
- ((= ecolor 2)
$ c" F/ Q5 u* m/ m8 b - (set_tile "t_color" "2 yellow")5 P4 s5 o5 H' g: J5 v
- (col_tile "show_image" 2 nil)) g1 K$ U) u; S, Z+ C3 `, u
- )# N, a3 S3 a+ u6 ~
- ((= ecolor 3)* `) h6 \+ }4 R. I8 j, \8 T4 e2 o
- (set_tile "t_color" "3 green"): F# o% x! T4 q$ i' f4 N6 W: l
- (col_tile "show_image" 3 nil)
- @9 F' C* C: y! Y+ R( E, l - )5 T) o3 G8 F/ B# O. J% ?# f3 |2 L3 c
- ((= ecolor 4)
) i. ^6 H7 O1 J4 } F - (set_tile "t_color" "4 cyan")4 g, w X( k4 D3 _
- (col_tile "show_image" 4 nil): e* | G( i4 z0 c7 M! r
- )9 L: G8 u' ~- W1 q
- ((= ecolor 5)
; H- W) P, I; V - (set_tile "t_color" "5 blue")
; L+ N/ c$ C9 X& x( Z; E - (col_tile "show_image" 5 nil)3 ]$ Q1 Q3 @ f( l
- )9 d2 A% b8 K7 y4 ^$ G
- ((= ecolor 6)( {& |5 n: |" Z3 r' I% s3 Y
- (set_tile "t_color" "6 magenta")
. y3 K; j0 R4 I8 ` - (col_tile "show_image" 6 nil)" X( ^1 A, s& m8 G; ~' @
- )
7 e, l& `2 s0 z4 D, @3 V& x - ((= ecolor 7)
8 D9 V/ y2 [! P: U" W3 C - (set_tile "t_color" "7 white")
( G+ L5 R' D4 z; S# e - (col_tile "show_image" 7 nil)
, P, r* X/ B( P" y5 F3 U# f: x - )
3 @9 B b }/ W2 ~7 S - ;; If the color is "BYLAYER", then set the tile to
( d$ p+ ]( B N5 ? - ;; show it's set By layer, but also indicate the
5 h' [& r* l% K) N - ;; color of the layer - i.e. By layer (red)/ u- E; J9 G$ U( W( w2 K, @8 H5 T$ c+ y
- ((= ecolor 256)0 |6 f- J' O3 w2 `' I! q
- (set_tile "t_color" (bylayer_col))
6 _) M1 |( M1 [: i - (col_tile "show_image" cn nil)% M1 o& c* v2 B2 W+ J
- ). t6 x3 Y! B. S) l, `" K
- (T @4 A7 h; }' h+ u2 N/ X( M
- (set_tile "t_color" (itoa ecolor))& a& @+ T# q6 U; x. t0 q. o
- (col_tile "show_image" ecolor nil)$ B9 G7 ?; f; \5 e' N
- )7 R: T1 K: A% Y' k Z3 ?* F
- )
+ g! \! x8 E& w( d+ g - )6 d- ?5 [' Q( T
- ;;, v! y# t' e8 b: ]& D
- ;; Function to put up the standard color dialogue.
8 s" O; l+ ~0 G3 D ?8 ?! C - ;;
! m. _8 s# }$ N/ g4 B - (defun getcolor(/ col_def lay_clr temp_color)
- C) n) ~: K7 `: h# q - ;; col_def is the default color used when rq_color is called. If ecolor
3 }' f( q. y; f w - ;; is nil (varies) then set it to 1, else use the value of ecolor.; v1 ]) \0 b& s4 ~0 Y( P. s
- (if ecolor8 E6 Z6 H, }+ Y* N" Y
- (setq col_def ecolor): d8 ^ D5 d! l8 {( }& W- K3 }5 i0 k
- (setq col_def 1)& r4 L+ h9 H' N5 _0 p
- )
3 d8 @5 J) O' b7 u) P& t - & F8 W5 T1 r- t: B
- ;; If we're working with a single layer, get its color
! u/ q6 Y: v. l5 }( y/ ~6 S - ;; for use in the color swatch if the user selects color BYLAYER.
: U# j- u/ S- x4 |9 @* U9 ~! R - (if (/= elayer ;|MSG0|;"Varies")
' C$ z+ z2 G% v - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
8 g' N u) R M: y @' V - (setq lay_clr 0)
4 e) T3 m9 t7 M6 z& q# @. ^+ [ - )9 J& q" O0 k0 u7 p5 n
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
M" h( C) q& L, V. s3 v - (progn
) e2 ^2 B+ u! R0 a# e - (setq ecolor temp_color)6 G+ o; u* [6 Y: }" ]' J5 P- {
- (set_col_tile)3 l( l# c) o% [0 T5 }' F, C5 N- Z
- ecolor) |! h/ t$ O, A& {" Q2 w
- )
+ Z; x; Q- s+ y$ r7 q - ecolor
$ }5 I7 Y0 j0 ?! {$ C7 d" \3 [5 J - )7 }8 _5 e ^/ Q9 ~
- )% {" B, P! W0 e( J9 r
- ;;8 q$ I, E( O. C$ A" \/ J
- ;; This function pops a dialogue box consisting of a list box, image tile,/ b: v! D0 \9 g$ D0 k, k! D, Z
- ;; and edit box to allow the user to select or type a linetype. It returns! x+ G; q/ b" N: H% ]4 D0 {. \
- ;; the linetype selected.
" d7 n9 A# y& X N7 l8 v2 O2 e- n( O - ;;7 D9 D) j- x( j7 e" s! a
- (defun getltype (/ old-idx ltname)
/ x1 R- Z. }: H b+ {2 a9 |0 Z - ;; Initialize a dialogue from dialogue file
7 [1 c; w: H9 v3 F { - (if (not (new_dialog "setltype" dcl_id)) (exit))- i" L* V* \ j9 U( L
- (start_list "list_lt")$ W7 T9 i: W: u& W
- (mapcar 'add_list ltnmlst) ; initialize list box/ d2 F4 `- ]8 [; {
- (end_list)% b/ C- ^5 k+ q! z+ w. \4 P4 [
- (setq old-idx lt-idx)/ Q( y `# i: P) Z: o/ E. S* F
- ;; Show initial ltype in image tile, list box, and edit box4 R. r2 i/ U9 [2 u6 b+ O- ~2 B. r
- (if (/= lt-idx nil)
a1 p9 w9 M2 h6 |2 K - (ltlist_act (itoa lt-idx))
' S9 d" T/ [( k0 p" v- ` - (progn
1 i$ z0 i4 }+ ] - (set_tile "edit_lt" ""): K- N2 H0 i9 V. q; a
- (col_tile "show_image" 0 nil); C4 I# s6 m, Z9 w8 {7 @' T
- );progn else( i* x- u. X9 R, m/ i
- );if
/ R) i. y/ o; x* ?) ~4 U/ Q - (action_tile "list_lt" "(ltlist_act $value)")9 o' M* q0 `0 }/ z6 |& x% l
- (action_tile "edit_lt" "(ltedit_act)")8 O) ]5 t; f7 {
- (action_tile "accept" "(test-ok)")
% d# V. c4 L: ^/ |" d' X, v! G4 s - (action_tile "cancel" "(reset-lt)")8 ^9 t0 b9 \8 A+ C ^
- (if (= (start_dialog) 1) ; User pressed OK
+ W& g. G: `# }, o3 W - (cond
0 O: W* ^0 W. x# K0 b - ((or (= lt-idx nil)8 y4 {0 h2 E4 b/ u0 V
- (= lt-idx (1- (length ltnmlst)))* j1 K0 \( I0 i# j8 G
- );or1 s% _+ _0 k" b" I8 p. S- Z
- (set_tile "t_ltype" "Varies")% l& ^& [- l i; S
- ;|MSG0|;"Varies"
& N1 [( _! b: a- g0 O - )
1 n+ y& ?% k& k: |, a9 ]7 z/ E2 N4 h6 _ - ((= lt-idx 0)( {( h; o0 W; z; r. q
- (set_tile "t_ltype" (bylayer_lt))
3 z8 A* Q u2 N) I, J3 ^ - ;|MSG0|;"BYLAYER"* U! X$ B9 T% d, w/ ]
- )
- N" f8 v/ q( b: Y4 }1 [ - ((= lt-idx 1)0 A$ b, R9 U N( q3 b4 o
- (set_tile "t_ltype" "BYBLOCK")) ]- b! k5 I4 H; \
- ;|MSG0|;"BYBLOCK"' h* Z5 B6 ^) |1 R1 D- {) _
- )% n) d6 I6 ?1 e; z1 K3 z! I M4 |
- (T! R8 |' Z! L, I6 N# |
- (set_tile "t_ltype" ltname)
' c9 T! ?! i& A2 i! E5 H - ltname
( h/ B! f' G1 A& U0 u8 Y/ M - )
7 p4 Q8 N( n9 k& z0 L4 Y& M - );cond then; r' F- @3 o: K$ k8 v
- eltype# C3 O9 a3 e9 x; z
- );if
0 x; K9 C3 C s. h6 C - );defun( ?7 J8 Y* [3 M- a; Z8 r0 Z$ d
- ;;+ h$ l' ~/ B1 Q& `9 B: |0 m$ V
- ;; Edit box entries end up here, S% v' ?) Y$ Y( q# E7 u, B8 ?
- ;;. P/ a2 e: ?+ R" |1 V; T, P, u
- (defun ltedit_act ( / flag)
! m7 v% u: B9 p0 z; V$ h5 L& Q - ;; If linetype name,is valid, then clear error string,
) [: b5 a& K0 Z8 c' H - ;; call ltlist_act function, and change focus to list box.
$ P5 |2 o7 b9 y$ B- o4 R- \; [ - ;; Else print error message.9 ^' k5 u5 g% c( |
-
! M5 L4 f5 Q1 Q% S - (setq ltvalue (xstrcase (get_tile "edit_lt")))
& w+ C( a- Y" [5 e" ]% D) K r0 h5 n$ o - (if (or (= ltvalue ;|MSG0|;"BYLAYER")
5 K# K+ S f9 A1 c/ c7 g - (= ltvalue "BY LAYER")
6 M3 O" I$ `& I0 R: e - )) F- Z5 j' C* W, s
- (setq ltvalue "BYLAYER")
3 C% d! X: N0 l! u3 ?( T - )
; X! P$ d; L) D9 u z; w - (if (or (= ltvalue ;|MSG0|;"BYBLOCK")6 C! _/ K, O$ y; D" o8 k; o
- (= ltvalue "BY BLOCK")
. w/ u, r1 v7 n$ r - )% T; H% W d0 M* q% h
- (setq ltvalue "BYBLOCK")4 q& M. r7 b( u2 u
- ); U* Z7 G4 r ^1 r a/ H
- (if (setq lt-idx (getindex ltvalue ltnmlst))
& U5 d- s) i9 r; G - (progn$ ? f0 q8 w5 F \4 k1 s
- (set_tile "error" "")
3 W2 Z: C' t# a8 R9 s* Z9 B - (ltlist_act (itoa lt-idx))
3 O. H* k: i5 G8 M - ;(mode_tile "list_lt" 2)
/ k: @# ]; E/ h; M - );progn then
$ s, f T7 Q1 Z5 v: u- }' }; c - (progn
! A+ R8 i0 ~* V, a - (if (/= ltvalue "")5 g4 N. \3 X; L% [5 a$ s0 W
- (progn! } C- {. v# Q# ?, }% F ]6 u
- (set_tile "error" "Invalid linetype.")8 p0 T8 n7 L% [% o
- (setq flag T)% }& H: t' c, A3 r L
- );progn X$ b1 E' B6 f5 x) l1 y2 T$ h
- )2 Z& t% R7 y% g0 g4 Y. p6 P# h
- (setq lt-idx old-idx)7 E' \% F3 z; T ?, L: G: h" j, f8 X
- );progn else
6 F W$ r+ {3 v r - );if
' j! I) ]' h7 H0 D ? - (if (and (not flag) ;added so a return will take you out of the dialog.& v# b- D& d4 B S- C% F
- (= $reason 1): J, ~. |- ]: J
- );and
1 ~ G9 Y5 U8 M4 Z4 j# D- \ - (done_dialog 1)
& k3 \# V4 B/ o* ]( v4 d - );if 0 }/ [# {* \- H6 g" S" v( B4 o
- );defun ltedit_act% B1 g" ?2 i2 F$ n% e9 k
- ;;
: f7 D/ {7 ]; M, m: [ - ;; List selections end up here8 v& t( }! n$ U" q
- ;;
8 H. M/ S4 o* ^% k - (defun ltlist_act (index / dashdata)- ?! b4 c7 j/ w1 s5 b( N
- ;; Update the list box, edit box, and color tile
`( x; _ W, Q - (set_tile "error" "")( G- Z" W. R, y5 ?' `% t" u
- (setq lt-idx (atoi index))! } |- b, n/ g1 s5 \, {* u- O
- (setq ltname (nth lt-idx ltnmlst))
' | D' [- j) ^+ b$ v2 T7 m9 A - (setq dashdata (nth lt-idx mdashlist))
& U% a( A- g: ^8 ^% X - (col_tile "show_image" 0 dashdata)
* m& f9 J4 Z* P( x: C* x1 a - (set_tile "list_lt" (itoa lt-idx))/ t3 b, b1 y( Q. U+ N
- (set_tile "edit_lt" ltname)
0 ^( T% Y: \7 r3 `; S - )2 g; ]! l4 ^$ V
- ;;; x7 `$ Q3 F8 K' p$ T
- ;; Reset to original linetype when cancel it selected
: X4 F' [1 b0 J4 n$ A$ m* J - ;;+ U4 X+ y$ X" e/ v- ?# _
- (defun reset-lt ()9 N U# I3 {( w* i* D8 O. ^
- (setq lt-idx old-idx)2 R' j; o9 V6 B1 `% V& y3 }1 D
- (done_dialog 0)! ^+ {2 [& s Z! j
- )+ U* @( O* u, M9 g1 V! _
- ;;' A( E/ W+ R/ U$ ~5 c8 {
- ;; This function pops a dialogue box consisting of a list box and edit box to
0 S, h. }" `3 t0 }% ~- O- {3 i - ;; allow the user to select or type a layer name. It returns the layer name
l% o& x1 S* C, B* p - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the0 |+ V7 n) \' G! W% B8 h+ Q- r
- ;; drawing.
L" E9 K" d; ~3 v3 ]5 L - ;;! f/ x/ Q# O8 Q9 b' r
- (defun getlayer (/ old-idx layname on off frozth linetype colname)
0 ]3 d0 L& k5 U" `' H - ;; Create layer list the first time the layer
: ]' a! G% a1 a" d - ;; dialogue is called.
( L. @6 Q5 k m - (if (not lay-idx)7 X8 ?3 H) b9 a8 Q& _- s( r" `
- (progn
2 L1 j, u. Q2 Z9 ~5 j; A" s - (makelaylists) ; layer list - laynmlst
) i$ v3 w. d, ~* ~! p( x - ;rk
& R/ e, I L) b2 Z, U/ D# V - (setq lay-idx (getindex elayer laynmlst))' a2 m3 \4 K+ Y0 d# E
- );progn. Q5 f( W1 U( S) f
- );if" Q' D" l4 i Z5 U
, o! k. ?! B P! X; q2 U- ;; Load a dialogue from dialogue file# v6 g: y, ]. R4 D4 _" q' U4 L' A8 R
- (if (not (new_dialog "setlayer" dcl_id)) (exit)): Y5 |5 T0 }6 K3 \4 s
- (start_list "list_lay")
7 U7 p8 P9 b( v: l - (mapcar 'add_list longlist) ; initialize list box# _. V4 U9 @6 `" F# m& c
- (end_list)8 ^. Y5 [6 c- j" e
- ;; Display current layer, show initial layer name in edit4 Y/ \+ J- `0 h5 Y
- ;; box, and highlight list box.
/ ~+ i5 v, z- k# @9 u - (setq old-idx lay-idx)
% |! g0 S. ?+ P6 R' i+ @; S8 `; B - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))% }0 T. ^! W+ {
- (set_tile "cur_layer" (getvar "clayer"))+ g/ e# D3 @9 F' b$ B( ?4 z# ]% O' n
- (action_tile "list_lay" "(laylist_act $value)")
3 o5 A- p; N# `" G7 z" F3 u, M# Q* I1 J - (action_tile "edit_lay" "(layedit_act)")
" ?2 M/ ]& `9 v - (action_tile "accept" "(test-ok)")4 g; H4 u( h# C3 `8 F
- (action_tile "cancel" "(reset-lay)")2 g* q. E* L Z1 I
- (if (= (start_dialog) 1) ; User pressed OK! {; |7 @; y& o" C
- (progn
/ a+ ~4 a$ L3 V: i$ f/ x1 u - (if (or (= lay-idx nil)- N( W. B) _; m9 E2 G; b
- (= lay-idx (1- (length laynmlst)))
! O: ~# V6 t: j$ G8 G - );or9 @& @- U; _( A
- (progn
, h$ ?/ O3 I: N* i* n7 w - (setq lay-idx nil)
. Q: R& j" _- h0 e+ ^0 `% v - (setq layname ;|MSG0|;"VARIES")! m+ ~% A9 S e' ^0 b( N
- (set_tile "t_layer" "Varies")
3 E2 I0 `$ r) J8 Q! I - (setq layname "")% N1 @5 }* B. V/ D# [0 B
- );progn
% u" f8 N( b$ n. A G8 y) ]; \# { - (set_tile "t_layer" layname)
3 s7 q6 ]. ]5 S# j) p7 A2 w/ F - );if
" K6 A) u# H0 ^: q! P. K/ x5 o - ; If layer or ltype equals bylayer reset their tiles% d/ }; ]. P% |% S& t5 V- }
- (if (= lt-idx 0)/ [9 J; Z6 s& i
- (set_tile "t_ltype" (bylayer_lt))
" i* ?" x( X% c6 H2 z6 K3 O' b - );if
7 Y5 ^, C: n; _- ?" h# l/ t - (if (= ecolor 256)
2 }0 W2 A( ?* W+ }" f7 i9 G - (progn
/ m- x6 M& }" J* o - (set_tile "t_color" (bylayer_col))
$ u( j% G! G; j/ i7 _) R - (col_tile "show_image" cn nil)
$ `. q/ ?8 T r. I: T - )1 u1 N b, r) Z5 ^/ u1 I
- );if7 c0 @/ l K, L! I
- layname
' ]+ U7 [" F5 x1 I* X - );progn$ S& n' V' |! B- `2 R/ O
- elayer
% v) N1 H) e) {' c - );if- N; a2 e3 Z0 N& C# j- P6 X Z3 o
- )8 T, T, i% \4 O! k) V( V H
- ;;
5 e% H' V$ P9 f6 |4 ^1 i- R - ;; Edit box selections end up here e( `% k* r7 a% l+ i+ `- N! D" J* S$ y
- ;;* F0 N6 B Y) o4 i7 v4 p
- (defun layedit_act()
/ o% Z' L* a1 d, D( o" M - ;; Convert layer entry to upper case. If layer name is
" ^; r. C8 f& b9 B* x% e2 ~ - ;; valid, clear error string, call (laylist_act) function,- }3 X6 K8 f* k. I m
- ;; and change focus to list box. Else print error message.2 a3 v8 }- r7 {
- (setq layvalue (xstrcase (get_tile "edit_lay")))6 W& B5 s( p$ o* ?
- (if (setq lay-idx (getindex layvalue laynmlst))
8 I' Y& G! s4 m; j- \ - (progn j5 Q+ R8 ]" \/ J, Q% l
- (set_tile "error" "") r; K& V$ ]; D
- (laylist_act (itoa lay-idx))
/ W/ i @; g2 Q/ ^$ m - )( J. n- r1 \4 k# V1 Q8 l4 ?
- (progn
4 v; M7 ]; o, Z7 K% { - (set_tile "error" "Invalid layer name.")
; R# ]( x, ~! `" f& b5 R' T - (mode_tile "edit_lay" 2); R; G, k" @8 s. `% J7 m
- (setq lay-idx old-idx)" r* d. ?3 R5 z* [
- )
* P; r( i1 b" n: T2 _- p - );if% ]- E6 K' @0 S6 L: d+ e
- );defun( R' _' \( D5 k9 r0 Q% T! s
- ;;
$ h3 Y+ b9 X! P3 ~" l7 Z" E7 Z - ;; List entry selections end up here
e9 j: D: a; C& _- U. K - ;;8 t6 Y. l9 i _. S
- (defun laylist_act (index / layinfo color dashdata)# |+ Y9 O7 X" J) i
- ;; Update the list box, edit box, and color tile
( N' c, v, C0 L+ j$ @. d - (set_tile "error" "")
# B3 m) H' C- Q# ~* E - (setq lay-idx (atoi index))) `; K1 N. q7 V$ E/ ?& E
- (if (not (equal lay-idx (1- (length laynmlst))))
: M3 v* o7 R( S! p7 E3 }8 E - (progn . O- i- Z8 J3 b
- (setq layname (nth lay-idx laynmlst))
- G, w7 M; _ B* t - (setq layinfo (tblsearch "layer" layname))% }1 y8 x \6 O6 K' d1 I
- (setq color (cdr (assoc 62 layinfo)))
' T3 t: T$ u0 V' A - (setq color (abs color))% T, D: |8 J) C! \/ k8 F
- (setq colname (colorname color))8 G6 v @ j* H3 r
- (set_tile "list_lay" (itoa lay-idx)) l: i9 w" K7 e% P
- (set_tile "edit_lay" layname)
% P7 S, p- r8 }: a4 ~2 F' \ - ;(mode_tile "list_lay" 2)! D- A/ c; A! a5 i
- );progn then
" C0 Q4 F7 [6 u2 h$ V& f" N4 }1 X" c - (set_tile "edit_lay" "")
4 @7 D8 F% ?; O) z8 Z& D- k7 V - );if
* K; K3 r# u" ^; o - );defun laylist_act1 U. a# Q1 ~, _7 ]& p: A' w! T' w
- ;;. ^# N1 O: I3 `$ k. O% l* v% j
- ;; Reset to original layer when cancel is selected' R% @0 }) ~8 {1 z# `
- ;;. A( o$ {* w; M& x
- (defun reset-lay ()9 ]. Z- U6 ]) P u
- (setq lay-idx old-idx)# {7 ^# n8 n3 ~3 a
- (done_dialog 0)5 c) T! T3 ^5 _: I( W K
- )' O5 K- e; ]$ m @% y
- ; j% L! x' M0 y5 C9 u
- ;; Checks validity of linetype scale from edit box. It checks to
! t! |0 _5 G& X+ }3 w8 m - ;; see if the value equals "Varies".
! A- L/ _! C5 B% E3 l* i
$ v# l' L7 P D j4 x/ B5 @- (defun getscale (value / rval)3 c# g3 p3 R, C" x( n
- (setq value (strcase value)8 e5 q ~3 F* g) |. Q
- rval (distof value)$ r _' s: Q. C( R( W
- );setq" U2 _* [* ]7 I/ b2 f7 |
- (if (or (= value "")
: |! D( i& E: j" ]% l" h' Z6 `1 f) N - (> rval 0.0)
# K# E) g5 C( N5 ~& A - )
' [5 K0 J9 V+ l7 u) Y$ \8 q4 k- o - (progn
; ~7 n- G& ]- L3 ]% j* q0 D - (set_tile "error" "")
$ F+ x( y8 x+ h" g: k& a* h - (if (= value "")! k3 ]$ ]3 Y' m6 J- t
- (progn
2 d( W. J6 J- p( n - (set_tile "eb_ltscale" "")
& I' }" T2 |( c$ e - (setq eltscale nil)6 _( H; g/ F* N) u3 v! ]
- );progn then& v6 D1 d& \' U$ j: B8 G
- (progn# Z1 }- C- W' o9 T+ [
- (setq eltscale (distof value))
8 S* @$ J% S5 w& q" A4 |, r - (set_tile "eb_ltscale" (ai_rtos eltscale))8 s! o3 ^% ^) l
- eltscale: h1 C, E6 Z1 C( x6 N8 l
- );progn else
7 ?7 F4 y' b* o2 H/ B$ }7 ^ - );if
! y& S& C/ w1 L& ^, [( t - );progn M) x9 z. D3 d: P+ H
- (progn
# g* _, M: O9 x! _# G9 {- [ - (set_tile "error" "Invalid ltscale.") ^$ I2 M& F6 L) B7 `
- nil3 L" W0 D- @- {2 U) A% m
- );progn else
( H+ y( G7 q' _% a" |7 K5 I - );if
4 r! f4 B' s- D# r& g( s: m - );defun3 A! J) F8 C1 c4 T: R* L
- ;;9 j/ i9 M. ]& a0 i' i2 Y S
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a+ H' Z i7 i% C! d$ x" }9 k9 x
- ;; string can't be converted to a real, this routine checks if the first/ n4 W. [3 r2 o, U- i! b
- ;; character is "0". It also checks to see if the value equals "Varies".
( H: Y$ ^1 D5 k( }( g9 N. _0 J& i - ;;3 {, e/ {: k% K. X: ?
- (defun getthickness (value)
, P& M$ i# x! q8 _2 J, m - (setq value (strcase value)); S# F( {2 P- s4 I) V/ Z. A
- (if (or (= value "")2 G* {; p$ R, A8 m @* G) z! y
- (distof value)
4 \" a9 o0 h& \; @& M) L7 [ - );or
+ ]! B& X$ y: v- _$ V/ D0 k6 r$ U - (progn
: Z4 c) h8 v+ O: Z4 T1 Y - (set_tile "error" "")
' _ e& I4 u9 s4 D" t4 m* N+ t - (if (= value "")
% z# l5 z' t: L( ^. ] - (progn
+ d$ J9 F9 N+ I1 h - (set_tile "eb_thickness" ""). U7 B q F% V) I3 ]7 k3 w8 m
- (setq ethickness nil)6 E$ l9 w/ [" J" F$ O
- );progn( x3 m* K0 v) a# b
- (progn
* q( m G) X% e - (setq ethickness (distof value))
8 K! ], j7 T7 a7 I/ T& s - (set_tile "eb_thickness" (ai_rtos ethickness))
- `# m8 s- u$ [# R' t$ ] - ethickness
: ^4 b: _9 T+ F. U+ r: W - );progn) w7 S+ _2 n1 ^4 _# r
- );if+ e# M J) B+ r8 M" J8 a
- );progn9 m% y2 i/ b# Z
- (progn( }& z Y$ o& \
- (set_tile "error" "Invalid thickness.")8 O+ e) Y# O4 A( A4 e3 I
- nil4 f! |/ `/ X' n( w# \5 h
- );progn
2 C) ^- z' C6 _& `, r7 K - );if
- I+ q% U0 r t - );defun
+ V# u/ D, h4 [1 P' X - ;;
+ ~% J6 S+ x! p+ }" O) e& R - ;; Checks validity of polyline elevation from edit box.
% q$ r" Y! Z3 [& m - ;;
+ Y6 f, I, ^( g9 Y: @2 } - (defun getelevation (value)
% }" Y3 z1 [" j& U( v, ?$ } - (setq value (strcase value))
4 `- [0 @5 G* G# v - (if (or (= value "")3 A1 h; F; M$ {. ]" r) k2 D
- (distof value)2 Z$ O3 ~' t6 p0 d+ {# n3 e; Z
- )
; F4 q8 Y/ l7 l( c. f- }0 O/ S* _ - (progn
% s, V. @( C- Y2 n5 A/ A - (set_tile "error" "")
3 _) K' |/ b1 W4 L" \ - (if (= value "")
) o! b* L T. B - (progn% C; H9 J! ]! |' `
- (set_tile "poly_elev" "")
N4 e) Y0 w' u4 \ - (setq eelevation nil)# F6 W' l) m0 {. b* e# \$ c4 D
- );progn
1 ?& l" S% ?/ [6 B! m - (progn- X, p; L6 T4 S+ C; J- `* n
- (setq eelevation (distof value))
4 r8 T$ d) o: Z - (set_tile "poly_elev" (ai_rtos eelevation))$ K* O4 ]/ V+ W% y' q
- eelevation1 ]* @! A; W n/ |
- );progn6 x- l, I* y* D L5 Y
- );if& I& h2 _0 P* y
- );progn- I6 R9 r8 ?; p! C6 G
- (progn
9 @: R! E8 h9 Y' u% M8 r. [ - (set_tile "error" "Invalid elevation."): @( ^, ?% Y7 a' X
- nil% {; C6 R8 h+ R' Z3 j
- );progn& X5 |! q/ \5 r- t+ g
- );if
) i M' }% R" d6 A! G& Y/ w - );defun, b" ]1 j: I, I4 I/ Z% |
- ;;7 C6 h; d: q' f/ [# G* G
- ;; Checks validity of polyline width from edit box.
, P6 ?9 A; G3 n1 l - ;;
+ m; d, }3 ^& K9 E - (defun getwidth (value / rval)
# t/ t5 s9 s9 L$ \$ b3 K- P - (setq value (strcase value)/ B( f/ z1 i; \4 h/ l
- rval (distof value)
9 N- M" ]0 c3 \/ ?6 f - )! F- @8 P/ a8 j) b& R- U
- (if (or (= value "")
# ?3 C8 G# B0 P# e/ g - (>= rval 0.0); j2 S( Z1 a* d
- )
% o [ Y' h v* u - (progn) l5 V+ F0 N3 I' P
- (set_tile "error" "")
( T$ M3 @0 \1 ~" |1 F - (if (= value "")2 U5 U9 D ]: S# P0 U
- (progn
/ |9 R9 O K3 w4 I* d# X0 c) z - (set_tile "poly_wid" "")
) n2 A7 s2 A a' }1 N( H; f* Q - (setq ewidth nil)
+ C N- R7 @+ _4 c+ _0 N5 G - );progn
8 {; M! g& ?8 b - (progn
9 T& T% U, `6 b( l) v# N" W - (setq ewidth (distof value))8 f) o% M% i8 N
- (set_tile "poly_wid" (ai_rtos ewidth))
$ N* ]3 q3 t$ I - ;width; h9 K: Y. f' A+ x& k D9 r" I) }% ]' _
- );progn
; B1 `: v) F+ |! U$ @8 e* r$ @ - );if7 [" J! n: \% p( M' ?
- );progn9 Z$ m! B( ]( U; M) [/ i
- (progn
& @+ r- {0 L1 Z( @# o - (set_tile "error" "Invalid width.")
0 a, T$ V* {: w8 B - ;(setq ewidth nil)
5 Q# m! c& ^8 s/ \" k, d1 G - nil
9 i: {) l3 o6 W - );progn+ Z" g0 {, _+ [4 B/ q
- );if
3 y! Z% [+ d/ L1 x - );defun
4 s+ j0 q e0 k9 Z* w - ;;3 W/ m. ~( V" n5 h
- ;; Checks validity of text height from edit box.
: D: ^' f) |; F3 ~ - ;;
" v. ]$ J# n2 k( L - (defun getheight (value / rval)
! F. ^) {1 k) ]: b - (setq value (strcase value)
5 q( Q! J: L7 E5 {" B: x - rval (distof value)$ x2 Z4 @0 c/ _: m% j6 P
- ): _0 d1 b: D. i0 h( c0 V
- (if (or (= value "")
% d0 U! n4 r' s7 Q2 j - (> rval 0.0)
8 w( {# t2 t% C+ O T2 J4 _: f - )
1 Z. Y. e+ S, i# U- ?; ?' m* w - (progn
^0 `/ L+ ~4 p3 i& | - (set_tile "error" "")
$ i3 d- @& F! L: I8 j0 e) L - (if (= value "")6 V. a c+ a9 u* G
- (progn9 M; z$ r0 r, z; @' }3 z
- (set_tile "text_hgt" "")# D# u& U8 E" J7 |" L
- (setq eheight nil)2 I/ b) T2 c$ G
- );progn" }5 i; x7 k; U1 B; v3 U8 y6 W' c
- (progn
/ F- D; v7 D v. J ] - (setq eheight (distof value))
/ x, H* @; g/ v - (set_tile "text_hgt" (ai_rtos eheight)), ^; H Q- n. w1 R- }
- eheight
8 Z9 s; l. |* z7 V% M, b+ h - );progn
/ A* p7 P; b5 W: Q% H - );if
7 o( l. y/ B# ], K5 f - );progn( z: a: T6 B% P# M: s
- (progn1 o( X8 P1 G0 q/ g) S
- (set_tile "error" "Invalid height.")$ b4 q% e8 D" R5 d$ a+ Q' \3 ]
- nil6 Q8 J8 |1 [6 c
- );progn
( r6 G, f2 P$ ^, }; u Z, j6 S. A - );if1 @. [) U* N. G+ r, ]
- );defun
) R+ H& N6 b7 P8 F" A
: ]. F/ l5 l- H8 Y8 F& h- (defun getstyle (value lst / rval)' \+ h8 _# }4 l2 d3 P' u
- ;(setq value (strcase value))
! T5 z( o! T0 a" S0 g - (set_tile "error" "")1 G7 s3 F* {3 ?5 F0 w
- (setq estyle (nth (atoi value) lst))% Z% G6 J- A2 n: G
- (if (equal estyle "")
3 O& U/ X- _7 L! ~2 f2 u6 F' J - (setq estyle nil)
. T. y. _' f* Z6 D - );if
3 j) F3 k5 e! l -
0 D4 \( l9 k( z. W6 S& A - );defun getstyle/ E, X0 ^. F5 l) R
; t. k) Q! T8 X5 V6 F2 V- ;;# R- z% Y1 P" f4 v- X
- ;; This function make a list called laynmlst which consists of all the layer! ]3 G1 v: x9 k9 j; m
- ;; names in the drawing. It also creates a list called longlist which
# N2 F* A5 c$ K: G& \ - ;; consists of strings which contain the layer name, color, linetype, etc./ a, p* {" ?6 h4 _
- ;; Longlist is later mapped into the layer listbox. Both are ordered the& H4 N* ]: k* h( ], ^& q, j
- ;; same.6 M: x# M! G0 `# p9 f
- ;;
- q. w J- L" |. m# s0 W - (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname
1 b$ M W- X2 c* a - xdlist vpldata sortlist name templist bit-70" z8 [6 n: a# R) l7 V% o; u; _
- layer_number
# ]5 G3 [( \- m) S8 f - )" B, O! M6 [* D! c
- (if (= (setq tilemode (getvar "tilemode")) 0)& t F0 G$ H. B% ?5 @
- (progn" ^0 g1 J) F, L! ?; h
- (setq ss (ssget "_x" (list (cons 0 "VIEWPORT")
3 m' q$ x" i B. A - (cons 69 (getvar "CVPORT"))
. @& S7 S8 m, D2 s: z - )
) f7 ]( c" p- o& ]0 Q$ @ - )- J4 k; J; `" `
- )
$ g( Q$ T& b$ q0 O+ y - (setq cvpname (ssname ss 0))
: K0 p3 | ^/ c( h - (setq xdlist (assoc -3 (entget cvpname '("acad"))))- y2 \5 z& X+ Z" D
- (setq vpldata (cdadr xdlist))1 J8 ]* s' f0 W/ W9 W F& {7 N, L
- )
* y0 L# \1 O( l) V - )# a0 e6 \- n5 `& Z* G& Z
- (setq sortlist nil) W. G! ~1 Q1 d8 ~/ N j6 s6 M6 E
- (setq templist (tblnext "LAYER" T))
4 F" w6 Y" @- N7 _* _% R - (setq layer_number 1)0 l6 D6 D2 T/ J4 w9 ]4 D8 k# B
- (while templist
# S7 y" l5 B% m+ f - (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))
$ A [# h" E" w. f - (progn
8 Y" `8 t& X' y- y# \' M2 `+ q - (setq name (cdr (assoc 2 templist)))# ?* M% Y( r. c' {& j$ W
- (setq sortlist (cons name sortlist))
" F$ v5 N, M5 w1 f2 r3 q7 @ - ;; Not dead message...5 u" o0 O. J" o& _! S P) A
- (setq layer_number (1+ layer_number))
$ P+ B/ V. `, X5 K1 O1 c: t - );progn
, V/ L" {0 F7 z9 f - );if) a7 r" j+ ^: p# Z7 N1 t, s( i
- (setq templist (tblnext "LAYER"))) ]9 L, M* [. v' u# b1 f
- (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))0 K- K" i5 I. I& E
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
! m. x( @3 _. }2 W5 s# e - );if" S# C Q* L7 T; o
- ). c, l' ?0 _ d8 c& U2 h" o/ n6 [
- (set_tile "error" "")
4 d& t+ T, A2 ]* P; ^ t - (if (>= (getvar "maxsort") (length sortlist))
* R v N8 S/ C - (progn+ x0 d) w6 k2 e; s- Z' V0 x
- (if (> layer_number 50)$ j" {7 V) y# U( d3 h
- (set_tile "error" "Sorting...")5 z6 Y: r* n* W- d
- ). ?% p! a6 i' m! R. {
- (setq sortlist (acad_strlsort sortlist))
; W% G$ {' H6 g2 l2 b - )
# M$ e! p2 k. p) k4 M, d - (setq sortlist (reverse sortlist))4 Y. J# X: C: Z3 h# d, Z/ f
- )
( G u! n7 L6 q8 [, k# @ - (set_tile "error" "")
0 M' Z# D* V1 ~: x B - (setq laynmlst sortlist)
+ {3 |: r" d; z% `, n - ;rk
^- b6 i) ~( W' j7 X - (setq laynmlst (append laynmlst (list "")))
% M( r: N+ L8 v% t/ L1 _; n( w* { - ! r$ N& L# ]5 ~1 C& l7 }9 y% M
- (setq longlist nil)7 W" K5 N4 r: \: W( u1 |
- (setq layname (car sortlist))
; Z. p0 g9 [2 Q - (setq layer_number 1)
( \1 H2 e0 M. p$ E* U; R- q - (while layname
0 j* L/ V! `' X+ }1 a - (if (= (/ layer_number 50.0)
+ ?/ |4 K. f6 J2 l3 P - (fix (/ layer_number 50.0))
I# ?7 Y1 V& v' K - )
1 A6 H* \0 o- t0 b! n! @ p- o: P - (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))/ A: a# s. `6 ^0 P0 ]3 {- f2 T
- );if
" Y8 N) D G: S3 ` - (setq layer_number (1+ layer_number))+ I7 h' V t( m3 D* ^
- (setq laylist (tblsearch "LAYER" layname)); P5 C k( v" v# _* e: m
- (setq color (cdr (assoc 62 laylist)))
. m5 E0 n9 x& z: J+ ] - (if (minusp color)
5 W) Y- ?& g8 M$ H5 \) ] - (setq onoff ".")+ n6 }4 I7 V# ?0 F/ A8 U. O
- (setq onoff "On")
7 Y0 n6 F; B& |/ |- H/ _1 {9 E3 x - )7 i- A5 z/ {# X) h
- (setq color (abs color))
7 s" X1 T Q& s$ z - (setq colname (colorname color))9 [, J9 I/ W8 f1 ?0 [) {7 v
- (setq bit-70 (cdr (assoc 70 laylist)))
0 [$ ~# q/ t2 ]+ b - (if (= (logand bit-70 1) 1)
1 p+ l$ G) x6 ]& a9 g - (setq frozth "F" fchk laylist)( o6 v2 C; U1 |9 _. H
- (setq frozth "."): \' J2 u( P" i" a
- )
" e1 g1 Z- \7 x' e% v2 u - (if (= (logand bit-70 2) 2)
5 m( X) J! h1 ~ - (setq vpn "N")
0 a) k% k8 w- y) w5 P - (setq vpn ".")2 Z- X/ ?6 g- V0 v( U
- )/ c C9 }8 v- H* ~! Z% S) ^
- (if (= (logand bit-70 4) 4)
' `, j" y2 }7 M: ?3 N( a - (setq lock "L")( f, m0 d! ]' `% }- _
- (setq lock ".")1 y; k7 [' d# O) q, t/ X
- )6 O$ O3 t% {7 G/ U: A3 x8 Y. G
- (setq linetype (cdr (assoc 6 laylist)))% g2 S% x+ h/ F1 K/ C0 X( u' y
- (setq layname (substr layname 1 31))0 n6 a% G J1 z4 Q' k) B
- (if (= tilemode 0)
2 i# A* M3 r+ r. {/ f# Z! I - (progn. `2 D& h; Q+ M4 M& z% k2 X
- (if (member (cons 1003 layname) vpldata)( X, ]# ?% s! R9 D, r
- (setq vpf "C")1 g0 ?( k1 y5 g6 ]- L Y
- (setq vpf ".")
9 L/ i) W. g5 K; m, |' H( _- l - )
4 I+ T6 H/ e; {% H2 ?& v2 \ - )
l: y; ^# E8 T - (setq vpf ".")8 f) G( u9 {4 J6 n& M- W( s2 H
- )
" M* S( ?8 W! g* W: n1 e - (setq ltabstr (strcat layname "\t"" {7 @" Y* x2 M, |, ]$ S- ]
- onoff "\t"
, Y6 g, G3 `" L1 @/ i" { - frozth "\t" Q) v ~7 t- V, k1 h" N! T: s
- lock "\t"
4 g, A0 H" K F. E" L+ A - vpf "\t"
2 l! R" T3 ~# f5 D2 `- {6 L - vpn "\t"
( a' X+ i* M5 x - colname "\t"
8 k$ R; M1 @0 U4 R+ Y# r9 Z H0 T6 x - linetype
' a8 C* n$ B( h - )+ i, t3 ?! R* i
- )0 c$ g; p/ w3 l" f2 t
- (setq longlist (append longlist (list ltabstr)))# |. E7 g+ s/ T8 E+ Z) b
- (setq sortlist (cdr sortlist))
2 @ w: q- e8 N+ t C - (setq layname (car sortlist))' s, v1 z3 p# G& X! B* \' \
- );while
4 k! K3 C& [3 s1 K# } - (setq longlist (append longlist (list "")))
+ `* t; f% u, J& }' @ - (set_tile "error" "")* e% m3 ^! m+ V7 \8 i5 P3 k
- )* L) C$ N: C0 j" i, I2 B! m
- ;;
) \/ _; I# M# r - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
5 y. E3 F: ^. C" S" }9 d( z - ;; linetype names read from the symbol table. Mdashlist is list consisting
- k, M- P& u. a3 C0 t! d e - ;; of lists which define the linetype pattern - numbers that indicate dots,
6 }# y, b' e" P1 F' M - ;; dashes, and spaces taken from group code 49. The list corresponds to the
3 E+ {8 V6 U4 \- I - ;; order of names in ltnmlst.. H: f* j( a. a3 q0 g
- ;;& ]8 j s( g3 h
- (defun makeltlists (/ ltlist ltname)
0 }8 l! A9 L" p' k$ W3 _ - (setq mdashlist nil)
4 h) n- k$ D9 b8 ~6 l - (setq ltlist (tblnext "LTYPE" T))
Z3 E, ^* J$ \1 H( n" R( {" r& O - (setq ltname (cdr (assoc 2 ltlist)))
% |) F$ _- i: J0 U6 t! S. B - (setq ltnmlst (list ltname))' g+ Y& b; _: h# W9 Q3 }" q) B
- (while (setq ltlist (tblnext "LTYPE"))" x; e0 n- O6 j
- (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))
+ r2 r5 z# k4 E8 \! Q - (progn 1 i- @3 y% {0 ^1 S; j
- (setq ltname (cdr (assoc 2 ltlist)))
' u H. v5 Z% P - (setq ltnmlst (append ltnmlst (list ltname)))" j! R2 [/ D, F2 Y
- );progn3 A7 w/ ^6 K1 a2 q3 ]
- );if
/ p& n: W" d1 \ - );while
8 b6 b* o) d% k5 Y3 m; q/ B5 T% R - (setq ltnmlst (acad_strlsort ltnmlst))
" i) s' _, V* K - (setq ltnmlst (append ltnmlst (list "")));add by rk
( }5 g5 P1 F7 N' C; P - (foreach ltname ltnmlst
. A% y( B0 A' S M - (setq ltlist (tblsearch "LTYPE" ltname))$ x! ^ i( R" t2 p
- (if (= ltname "CONTINUOUS")) k4 ?$ z( I- M W# n
- (setq mdashlist (append mdashlist (list "CONT")))7 k# {- E2 o, H9 y; I$ ^1 a
- (setq mdashlist
, T6 w$ `5 T2 K! Y) t: [ - (append mdashlist (list (add-mdash ltlist)))* K# G# {/ J8 U' u) p
- )3 S) w1 K+ Y2 C; ]% |$ i
- )* P1 m: W3 @0 ~* h& |1 T( j4 z4 ^$ I+ r
- )
! y+ T: V' G7 C - (setq ltnmlst (cons "BYBLOCK" ltnmlst))! V' f' S! Q) [ Y1 M2 ?- \
- (setq mdashlist (cons nil mdashlist))
4 U) g: d- P5 k3 b L. X; z( S - (setq ltnmlst (cons "BYLAYER" ltnmlst))
% Z' M: a" i( w* m# R - (setq mdashlist (cons nil mdashlist))
1 x& }( W4 P- V - )
( n7 D' Y9 O" i' t - ;;: ], u9 _% ]$ i1 L* C
- ;; Get all the group code 49 values for a linetype and put them in a list
. I7 ?0 i8 s1 c9 c" o - ;; (pen-up, pen-down info)
9 J4 j8 m( @9 o6 K' F ` - ;;3 Y3 u7 `' O- P5 G, z! X' I6 v
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize)% {7 m+ Y( ]0 Z" [8 ?5 j
- (setq dashlist nil)+ Q7 O6 L2 j: ]8 }' Q( }
- (while (setq assoclist (car ltlist1))5 x9 Z# L. K- M4 n) g" I
- (if (= (car assoclist) 49)# x4 v, V; k8 ~+ W
- (progn& K* a2 Y1 ~, f. [( X6 L; \
- (setq dashsize (cdr assoclist))/ K* a' w1 W [1 [9 t! _
- (setq dashlist (cons dashsize dashlist))8 c# g8 w' t9 M0 t: C; i
- )
/ ^1 j% ~; ^! T& y, V+ p; S - )
8 G0 q& \: G+ i& T7 s! t- o! B: A - (setq ltlist1 (cdr ltlist1))
- J) r6 d) \$ m) C - )) C4 i4 @% }" o c) k
- (setq dashlist (reverse dashlist))
- L0 l' N1 i9 l7 @4 E - ): F( v! N# D+ U6 K
- ;;
# F- Y, }- d4 L7 z8 \! \3 x1 o - ;; Color a tile, draw linetype, and draw a border around it
$ ?1 X3 t! O5 Z, v3 H - ;;5 r6 b7 e2 N$ T0 k+ Q9 `; u% x
- (defun col_tile (tile color patlist / x y)
( ^/ E! d/ d. y% V% b# q - (setq x (dimx_tile tile))9 e2 h( D( I! N$ v$ v. a7 y3 _
- (setq y (dimy_tile tile))
! u2 G9 L5 r; ^: e Z5 v - (start_image tile)( h. b5 w* j- [' S2 u
- (fill_image 0 0 x y color)9 y) X- i! B% q6 M% D" W6 t& W1 ^! \
- (if (= color 7)
1 N! n$ p! y+ g3 A - (progn W# i/ A' A0 e% q$ o
- (if patlist (drawpattern x (/ y 2) patlist 0))
: n* U2 U4 A/ |6 c - (tile_rect 0 0 x y 0)3 J5 t, r& ^- j! Q$ ~
- )# H( E* H5 g" W* ^
- (progn
) c4 s( I/ m9 T9 E0 S - (if patlist (drawpattern x (/ y 2) patlist 7))
+ D% b, ~. q7 a9 d - (tile_rect 0 0 x y 7)7 T( a/ M, P! v+ c3 O* Y2 I4 ]
- ) @1 m* i2 X( Q$ q) z2 k8 B2 _2 Y
- )
! L; l& @) k/ p. D3 U* F3 G" b - (end_image) X" q# W, `- e1 Q/ O8 f$ S; ^- [6 [) O
- )' Y2 H9 |# l7 v$ }$ t \) V, u' p
- ;;# [9 j; U4 ?* V d( e
- ;; Draw a border around a tile/ o1 o! c8 z" D% a; d1 c: N
- ;;. v* n4 I4 `! O* M& c
- (defun tile_rect (x1 y1 x2 y2 color)
! P2 m3 L$ a0 ~7 H+ |, b - (setq x2 (- x2 1))
U) O2 w/ y* g: y - (setq y2 (- y2 1)): C Z# r( M7 W5 Q
- (vector_image x1 y1 x2 y1 color)
$ r! L) R& }, o$ T - (vector_image x2 y1 x2 y2 color)6 D v& A. U( g- f
- (vector_image x2 y2 x1 y2 color) ~; V7 t! J% p0 U$ @+ [) S
- (vector_image x1 y2 x1 y1 color)
1 z- p3 b9 A' C2 z5 I# ] - )
) V' P& S+ o2 _. f - ;;) j" o4 R# K, I: n b- }
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
- D/ u3 y0 D1 z9 H - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
; L& r. r% F: k) C( p8 f3 L - ;; list of numbers that define the linetype, and color is the color of the5 o# O! m0 W0 x+ N; l6 h
- ;; tile.5 a. |4 `/ v5 ~4 |3 |
- ;;* o: X( t) M7 c4 K/ f( M" L
- (defun drawpattern (boxlength y2 pattern color / x1 x2
9 `+ j b( k$ g- O) ]0 y - patlist dash)
4 ]: c$ j$ r/ C6 T/ {& C$ m - (setq x1 0 x2 0)
, { t! H7 t/ z9 N8 {: V - (setq patlist pattern)
2 l, j7 ]+ f$ H) ~ l! s- [ - (setq fx 30)& f$ L9 W7 D; t) G% [' U. z% Z
- (if (= patlist "CONT")
# H3 Y* F/ [9 n6 q9 l0 Y" `8 b0 e6 ~ - (progn$ m4 k9 s3 f; L7 @$ W
- (setq dash boxlength)
% G8 C9 M. z, d- w `% C0 x. r - (vi)
2 G9 s. I! t& n - (setq x1 boxlength)# X' W: _) y! n& F
- )9 g& E7 A7 E4 d+ t+ K! u3 B& X
- (foreach dash patlist' ]5 T% G) L- U0 ^6 j, }
- (if (> (abs dash) 2.5)
1 x) _$ G3 i" L) Q - (setq fx 2)
5 v8 t6 R0 Q$ A2 n/ t0 ? - )# a9 v; y6 `, W3 X w+ {
- )
$ L) Z4 T) V4 B' q$ Q. B - ). `. d, Y$ S) W; b
- (while (< x1 boxlength)
) O h: U% d. v! W5 X - (if (setq dash (car patlist)). f0 _! x3 X' a5 Z0 J
- (progn. V6 w, q& p7 r2 H3 q. y* i4 R
- (setq dash (fix (* fx dash)))
) `: k* V# \! [% x: U9 m* \ - (cond3 R# v3 @( c( f8 |- i2 g
- ((= dash 0)
: v; N# A5 _# x b+ S4 d - (setq dash 1)& J: R: e1 {8 d0 `1 O1 d
- (vi)
0 r# c) L' D9 ]% J. `" t9 f5 a - )
: b8 O- \+ J4 U) _' A ]9 G - ((> dash 0)7 _* ?5 N; j+ A0 T7 }( `# Z
- (vi)
; f8 H3 P0 [% v - )
8 w4 o& M7 A4 V. x9 w1 b - (T
- e% Z: b4 k' ] - (if (< (abs dash) 2) (setq dash 2))! {2 o3 A6 a7 H6 ?4 Y. ?0 J
- (setq x2 (+ x2 (abs dash)))
! B. o) V) l% ^; N) Y - )2 x$ _ m( B6 |" J& |$ V( a
- )5 A; v3 S [- X- R- j
- (setq patlist (cdr patlist))) j0 x7 ?1 Y: i& ^" P7 @
- (setq x1 x2)
0 V% Q" \# C" T+ |7 M( G0 R, O - ): e2 I r, I9 \' L( E" D
- (setq patlist pattern)
5 G$ n& o. {; n" t1 y - )
0 {: U% v9 `* S( Q# o0 J - )4 E7 e, P) p' Q! H7 c4 v& C& V2 U
- )
' x- g& G* G/ P+ b - ;;: F+ H) n$ }5 Q
- ;; Draw a dash or dot in image tile9 ^; c! _. o' E* y+ p. G
- ;;" k, a" f$ ^$ c/ V; n4 y
- (defun vi ()
: f' Q! a" e5 S+ p - (setq x2 (+ x2 dash))
& a9 o$ ^1 y& }0 b& c - (vector_image x1 y2 x2 y2 color)( i3 T+ I) P! M, T# s* P, `$ F4 a
- )
, u' i4 x" j K( ?+ ?
/ k6 _9 }3 U$ I9 [2 K& [0 X- ;; This function takes a selection and returns a list of the color,# w1 |6 s! x5 V0 p6 g
- ;; linetype, layer, linetype scale, and thickness properties that* J2 V9 c* e1 s* z/ L# ?/ Y. E
- ;; are common to every entities in the selection set - (color5 {$ m/ e* t/ v2 o Y; \
- ;; linetype layer thickness). If all entities do not share the same
0 N: Q) x5 z; n2 `6 O0 j - ;; property value it returns "Varies" in place of the property6 K/ O+ B5 ?% k
- ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0)7 d0 h1 b2 }4 Y
- ;; The last item in the return list is an integer flag for the
7 N0 E* W% ^6 V" d - ;; homegenity of the selection-set object types.* J1 \* q- A6 m/ ]0 j
- ;; 1 = All polylines
# P. s$ ?; @% |4 H6 w - ;; 2 = All text or mtext or attdef, or a combination of the three8 I" M/ M: k; g2 c, S
- ;; -1 = Any other mix of objects# x/ H& n9 @% m9 i
- ( G, I! l: T# `( ^2 U9 [5 n
- (defun getprops (selset / sslen elist color ltype layer ltscale thickness
9 G* K" ?, i* J% N2 h - width elevation height go ctr
( f) V4 x- {5 s) G8 e% ^# I5 E - eflag
. U9 w* c$ B. H - etype temp ! C3 `* G, b! |* q
- txt_ss ;;;;rk 11:24 AM 1/30/97
; P- u- ~- d! U5 c& V( x1 _ - tmp
2 g* g9 L3 A+ F - poly_ss
! f2 x: l$ R. t9 G; i - style
. h9 P+ r& ~6 k - )
* _. a) C/ K3 ]. x; t9 U# b
$ @$ f5 q w, A8 p: S
# c, I- v0 @: S, T: R- (setq sslen (sslength selset)3 } T1 K N- d* ^( y. m
- elist (entget (ssname selset 0))
) r. w' w$ ^9 X4 x. r - etype (strcase (cdr (assoc 0 elist))), `( N; Y- K% b* D
- color (cdr (assoc 62 elist))
% t3 b0 l. `8 o% m( K2 a& z - ltype (cdr (assoc 6 elist)) D0 ]. [) g3 n9 I$ Y
- layer (cdr (assoc 8 elist)); r' _* m3 X5 }4 u- ]* V. T" I: r
- thickness (cdr (assoc 39 elist))0 y/ W7 W+ z2 R% l* D
- ltscale (cdr (assoc 48 elist))
( S+ b# J: q4 }* {( O9 W# e) K0 a - );setq3 X; Q3 X( i7 E; N) Y
- 2 j! x" F5 b8 \) u
- (if (not color) (setq color 256))/ i1 t) \8 O3 V& b. d- ~3 K% t( e
- (if (not ltype) (setq ltype "BYLAYER"))
& o* I; m( L4 g% y, y9 o - (if (not thickness) (setq thickness 0))
: T) r3 N# I- x; `* s- m' D; C% x - (if (not ltscale) (setq ltscale 1))
4 ?; ~8 d2 O7 P' t1 N0 _! |
# m. `4 y! z, V# I- (if (not width) (setq width ""))) O' K6 U1 z! X' X) E+ T- p
- (if (not elevation) (setq elevation ""))
2 j" p# |& G; K8 o: S - (if (not height) (setq height ""))
* @7 G7 w2 k5 V' w6 [) F+ M
?! @# q0 V! z k0 a; F5 `- (setq go T 8 z6 H2 @; t& T$ E# u
- chk-col T
$ @3 o9 m' h! |0 c1 j3 j - chk-lt T
6 n2 [6 ^( K1 U2 [( K+ B( X - chk-lay T ) t/ @" X% e6 x5 [3 o) R/ |& q
- chk-lts T 0 G( `( ] }4 A& l- @7 N
- chk-th T
2 @6 f/ r! s! r - ctr 0: r! t$ J s: S3 F1 M3 f* i: |0 O
- );setq2 ?, U2 g O8 n" \( R
- * A8 T% F# w6 o4 A. e. A& Q9 V
- ;; Page through the selection set. When a property
) S. x5 w. ^8 B0 o9 t - ;; does not match, stop checking for that property.
0 R: {3 L8 Z6 W8 C$ z - ;; When the selection set is not homogenous, stop checking.* N9 E* S. C% B O
- ;; If all properties vary and the set is not a type 1
9 q( [1 l. O& u$ ^! J: ^5 b - ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging.+ E8 A! b8 E. ]) v+ U L1 K
- % J" c7 U+ _' F: _1 R2 S
- ;Lets set the eflag so we know if the selection set includes any
( `" \8 {8 E7 e9 R2 T; C4 t - ;combination of polylines, lwpolylines, text, mtext or attdefs.- e9 F+ M1 \- {4 O
- 9 t' `- R: C2 q1 _9 n1 D! o9 l
- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/97
: S% n% y! ]9 O+ H+ J( \ - (setq eflag 0)
' d' R4 W# A2 L9 G - (if (setq poly_ss * q. c' p" q% f* l
- (ssget "P" (list '(0 . "*POLYLINE")$ t( C4 p; e. |) \4 x- x+ w
- '(-4 . "<AND")
5 c5 o# R8 A2 ]/ Q6 i J, K - '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")& V% z8 l+ M" \% c1 y+ t. C/ \
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")3 ?. [5 a0 s' R! N2 ~
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")8 \6 [% o) E/ n, n) N( p% H% p
- '(-4 . "AND>") {, T1 |. M2 P2 T- @+ e' n
- );list8 R0 X. J6 X4 H9 }# G @
- );ssget get 2d polylines (legacy and lw)3 h( l( G) u' k2 d2 m, ]# m3 [
- );setq
$ E; v; v h1 i9 V( o3 Y - (progn6 q; D4 r0 |; U' R* m
- (setq eflag (+ eflag 1))0 J7 L4 R/ ^$ h' V2 z, K$ `
- / u# X- s% z3 T5 P
- (setq tmp (entget (ssname poly_ss 0)));setq9 J! R( C8 K) ^. n" d; k# N% s
- % ^$ W3 b3 E) n$ M
- (if (equal "POLYLINE" (cdr (assoc 0 tmp)))
e2 l+ c0 G3 Q - (setq elevation (last (cdr (assoc 10 tmp))))3 a7 ]' u# A) c9 a
- (setq elevation (cdr (assoc 38 tmp)))
) i! |6 g0 _. I/ B$ B - );if
0 | P' a, f+ f- K( [ - (if (not elevation)3 Y( a% d$ z6 h0 Q8 @, ]
- (setq elevation 0.0);setq& z m$ G: a b( F7 z4 s
- );if
0 H+ B( \; i' a, G7 Y
6 p. {. S8 R! C% ?# l0 o: V) a- (setq tmp (ssget "P" 1 o- R% `- j, M) ]! \
- (list 8 \% s# {' r' V. @! L6 |2 M7 |% w! o
- '(-4 . "<OR")" E f, h# t1 O1 t
- '(-4 . "<AND")
' y/ t* m/ l% v7 F% m3 \& O, Z - '(0 . "LWPOLYLINE")' ]1 l9 h1 C9 T0 v) H
- (cons 38 elevation)! y2 a% i8 \; D; J8 \! W
- '(-4 . "AND>")
4 z- S6 i$ G* \4 J - '(-4 . "<AND")
, N6 f# `* F1 R4 P5 J' |/ v - '(0 . "POLYLINE")
: d- E/ a: {) N# q4 y - '(-4 . "*,*,=") + F2 m4 Z8 {& D% g$ S8 O
- (cons 10 (list 1.0 1.0 elevation))6 ]6 m- W0 Q) b2 S5 \
- '(-4 . "AND>") . D* S/ {$ V& P& C
- '(-4 . "OR>")2 F7 y8 l. Y2 q( j3 V" c
- );list/ x5 m3 d) i f2 p
- );ssget
/ G. h$ B/ f8 _4 g5 L - );setq
- P* U0 Z5 g6 O+ r. }. F9 ?1 H( u: N - ! u5 ]1 t. O) E- @# e, m# [
- (if (and tmp ' F! Z) Z( W1 ~7 v' \$ f
- (equal (sslength tmp) (sslength poly_ss))+ I6 r3 F6 ~2 a E( O8 }# x
- );and$ q* O* n. d3 _8 M% @
- (setq elevation (ai_rtos elevation));setq
9 r. V( r9 s2 o0 R1 M7 p! I - (setq elevation "")
2 P( S5 u' |% E" |6 R: i4 a - );if
4 r% O( I5 F& \* ]' ] -
, l" F2 `% \2 z+ p. B. }& [ - (setq width (pl_width_getter poly_ss));setq) G! C9 x% ]6 C4 z
-
$ V% }9 \. [ \; p# X1 p& L - );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!
- w' L6 Q, f* g$ p - );if) Z' b' R# O7 U `* K
- (command "_.select" selset "")
2 b/ n8 p5 @/ y0 x" h% d -
% |4 X G0 d' g1 B1 P* @ - (if (setq txt_ss 5 _7 d- X- I# D
- (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT") , ?& c/ ]4 x# U& W* X2 ?6 U
- (0 . "ATTDEF") (-4 . "OR>"))
7 E! ]$ [( W5 a, R" h$ h" M - )
~5 Y( X3 X, x+ T - );setq
3 u7 `: k. H2 ]3 _0 x0 e3 c - (progn
! x. I- Z: \3 r% }* r - (setq eflag (+ eflag 2))
' ^- O9 D. ?; d/ M5 O4 z0 ?: N - (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))
/ k% u$ ^9 i+ t- j o - tmp (ssget "P" (list (cons 40 height)))
8 n+ a4 Z. s" N; }) T+ W - );setq
% B0 g8 l* e C - (if (and tmp
) y7 q4 |5 W: }2 z# G' ^ - (equal (sslength txt_ss) (sslength tmp)) 4 A F$ D$ j& n3 g; F
- );and3 W7 M6 z2 I$ c6 t4 f
- (setq height (ai_rtos height));setq ;@rk need to translate from float ! ?4 _- `7 n v# d2 j) n
- ;to string and back again easily
( Q$ @" i' J( ^; _# ^9 h - (setq height "");setq else the height varies
$ o$ [2 V, [( B' O - );if6 U3 f3 w6 Z7 |7 f+ j& V' y8 D* q
- (command "_.select" txt_ss "") * W* u3 O8 v* [: D8 N
- (setq style (cdr (assoc 7 (entget (ssname txt_ss 0))))
; @8 @4 F4 J- K$ [; q4 ^4 p0 V - tmp (ssget "P" (list (cons 7 style))) ' a; h2 B. E; }( y% o3 D
- );setq
1 n: I, F/ {* C$ M - (if (not (and tmp- i% F- F, B# W4 s+ d
- (equal (sslength txt_ss) (sslength tmp)) 2 a, H8 t+ V) I( T& }& I
- );and, n8 K, _, M/ D/ G8 b j: J& H
- );not5 c$ S: `; Q' n6 a+ L
- (setq style "");setq then the style varies ; ?& ^8 t" ]; E
- );if7 ?1 T6 S" u/ S6 T0 d
- );progn the text type objects are in the selection set2 Q5 c+ f r) T. Q, m) l
- );if( r8 h8 X' S( c
- (command "_.select" selset "")
! _- n2 o/ V } - ! G6 s7 h5 S+ z, }) H) R3 Q" s
- (while (and (> sslen ctr) - c! o5 J; V6 ~
- go
# |* I! x) s/ W' S7 P" G% S! }* O - );and3 @% g7 h1 ?: O' q
- (setq elist (entget (setq en (ssname selset ctr))))
6 j% K1 [7 H; g# o - & f' l3 y2 o9 U a4 \' Q# P) E
- (if chk-col (match-col))% f3 I. h" _& _. S7 q }
- (if chk-lt (match-lt))
2 Q8 Q" |& f8 P7 Y - (if chk-lay (match-lay))
3 D8 b. l* k# E; L: K) w - (if chk-lts (match-lts))
# W, O5 w+ ^8 i2 S& i - (if chk-th (match-th))
1 @9 j0 K$ K6 E+ } - 3 y5 t) i6 P3 u2 R
- ;(if chk-etype (match-etype))
9 G# i0 q( L5 o( _7 q6 g0 t - ! }+ }- p( o/ l* Y/ i* S
- (setq ctr (1+ ctr))3 |2 q% c* `$ i) k
- (if (and (not chk-col)
9 Z+ ~+ ~* q! B' d* \1 G - (not chk-lt)3 e! L! W3 O$ a$ S/ {, _
- (not chk-lay)
) E0 L" E9 E" _8 d* z8 n/ E - (not chk-lts)
% m4 @) S- r+ e: w# n+ J$ p0 L, A3 E - (not chk-th)" d7 t. L* p/ u H, |9 @8 z
- ;(not chk-etype). F5 k k. J" b0 k3 X
- );and/ }; R0 B7 t& A
- (setq go nil)6 _& h4 H6 i* M8 ^
- );if
- n, W. k' X1 n - );while T' G5 B4 L% N$ J: @# i
- 7 `8 @6 y* H5 J7 M9 U
- (list color ltype layer thickness ltscale% q' W y8 D2 q2 s: H
- width elevation height eflag 3 X$ H8 e7 k y1 \( u) ^
- style poly_ss txt_ss+ j4 |! F0 e* }
- ) V, s7 `' c! |. Z9 g
- );defun getprops
$ R& G5 a$ Q# F. s' v
% |: C' W+ Q$ X0 O" c+ \( Z' s' N- ; This is a speedy little routine to tell whether the polylines in . B: |' p8 u, n$ |" Z$ \
- ;the selection set argument are of varying width or a constant value. 6 v( v6 w- E$ [ M
- ;Looping through the vertex's has to be done for old polylines when + i5 ^4 L1 S. o
- ;the polyline header has width values of 0.0. Basically, in this case, . `; J' P/ r' i) j
- ;information in the polyline entity header is abmiguous. Width values 9 s5 l- y! K( Y% H2 G' l- E1 I
- ;of 0.0 in the header entity could mean the polyline has a constant ; W% b4 G/ V. |/ }" L5 S
- ;width of 0.0 or it could mean that the polyline has vertex's of varying
/ M# p: Y9 h3 X- U5 X' Y - ;width.! b4 \; h. L, A+ `( G
- ;) C/ E2 x" T9 h- v% s
- ; It's all in wrist. Err a.., I mean it's all in the 'if'
0 D5 `0 [% \- H - ;;# `* D% _8 O7 a+ J7 x [
- (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)
% @7 ^% t5 K4 \+ Q. J3 K; D - . B% ]: A) h0 E6 n, P( ^! q
- (if ss
( l0 N' f, I/ f/ \) Y- @ z - (command "_.select" ss "")
& q( t5 ~9 O& {7 [ - );if
( ~5 G9 r+ Y6 A% I - (setq width ""
$ C7 ]+ [6 D4 X) k1 ^1 L, J - flag nil
7 d0 X' w; f( ?! I6 M - flag2 nil
( R/ J) s8 n! Q! e; |) {$ z3 c @ - );setq
8 A6 C! n1 Z ?, {3 b8 p - (if (not
" H; `$ L2 B! b; m& A - (and ss
# [1 R* L8 h5 n9 w% T. Z4 s: N - (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq
. S! p# } V0 Y+ W. h9 Y - (setq na (ssname ss2 0)
9 ?5 B) z" o j5 }: ?( [& u - width (cdr (assoc 43 (entget na)))
$ _! l7 z" I( f) V" ?6 z - );setq
# N* C# V" z5 }; X( A - (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")
! J+ X5 }2 b2 `- M - (cons 43 width)
* f2 |) a- m7 B! p' I* K) h. m - );list
v# p! R4 @( S+ B9 ~8 ^+ [) I! q/ ^- ? - );ssget) Z) }2 d. L1 s) d4 p
- );setq
0 W' ~) ~* A# |$ | - (setq flag T)
" a/ w% ^0 w3 h - (equal (sslength ss2) (sslength ss3))
: v) _. M' {0 s# Y - );and
: c! h: X0 {4 n7 [1 M# t - );not
% r" m( f2 H3 H' U( P" e - (progn& t1 Y4 F2 X% k7 U4 L( c; M" p
- (if flag7 g/ c% O4 k, r- l9 ~
- (setq width nil)
' z9 \: R* f: J! Q v - );if8 {* U& r# `- _, B
- );progn/ E% Q+ g! u- w8 N' h
- );if - d, M9 N# M8 O. O6 \& `4 Q# f
-
+ T, T8 Z" d$ ?$ C( V, e - (if (not
# w* P/ y* J0 Y - (and . h5 |0 ?4 n9 B3 I. d/ n( U
- ss5 }$ } u, F/ @) ]0 i" l, m6 n" v* S
- (progn (command "_.select" ss "")
$ x% H( M* w7 l+ w' c - (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq+ \8 K. ]+ M2 _+ o
- ) . v6 ?9 c# `6 I& J/ }0 @) [7 _
- (setq na (ssname ss2 0), G9 R* Q) _; h6 U; {5 n
- e1 (entget na)8 H. }$ d, N# [7 d, s, { w$ f
- width_a (cdr (assoc 40 e1))
4 C `# n7 ?" n, @1 j) F - width_b (cdr (assoc 41 e1)): e/ X/ ^7 s3 Z
- );setq* v/ q5 r: K& R2 ~! `
- (equal width_a width_b)+ X$ @# {, o: G0 B& o& |$ L
- (setq ss3 (ssget "p" (list '(0 . "POLYLINE"), O* |. p8 {- @$ @8 t2 w) Q* N
- (cons 40 width_a)3 R* n' k: T f o7 U
- (cons 41 width_b)
W$ i- Y/ _9 R0 B$ H0 Q6 Z - );list
# f* [8 P4 Z9 _5 F4 e - );ssget# ?, p" T ]$ c# f; K8 f5 x+ _
- );setq
2 y/ r/ l# v8 S" f( u1 ~4 E7 N - (setq flag2 T)
$ d6 O% Y; h( h8 X9 X. { - (equal (sslength ss2) (sslength ss3))( _! ~6 S) c7 k/ b. O9 @ R; Q e6 R/ H
- );and # l g& x6 l; J
- );not 6 Y B' l& r) L7 E+ f
- (progn# Z9 u5 J1 D( _8 G' x
- (if flag2% U4 i- ^* h5 q: m
- (setq width nil);setq
4 Y& c( Q2 ^5 v8 }5 g4 C8 g - );if' l J: R0 m, c `4 P
- );progn then% [2 |) c! ]1 L; s2 t7 U
- (progn
; k( T0 [+ H) P- {/ S - (if (or (equal width "")5 u& x4 \# X9 v& [
- (not flag) e6 p/ [" `3 h( ?. W' A
- );or6 _5 n& M: s" }( W |: a; j$ |
- (setq width width_a)' D4 A3 T# w T$ k8 l& Y
- (progn
$ @+ X9 M* ` A: r4 @) t: Y - (if (not (equal width width_a))
0 {4 {7 r# t; r: k - (setq width "")
1 S; _+ p4 X6 i1 n$ _6 b7 S - );if ) i& u' ~! e0 r; W" o( p4 D% h- K6 ~
- );progn% b/ B; c y o( N- h% u
- );if
% w, ]; j& @+ q: c' M - );progn
9 |* @4 h* J ?% v( X: { - );if* _& g1 h" ^6 n/ r
- * P: _; j8 @% F
. S8 x3 F5 l/ ~& ~( L3 ^' C- ;now for the special handling for old polylines
) X* v$ H! c, X, R - (if (and width
7 E, B/ t& `& L - (equal width 0.0)2 ?. \% Y$ g5 T% l8 T
- flag22 |" D% m3 u# y7 i' C5 w- j
- );and
$ r% r6 q# y# N# j% G9 g( B% v - (progn
5 J i6 I, e$ C; z! J$ s -
6 P* T; q/ l6 {. o5 S# p - (setq n 0);setq. z# D/ Q5 H: L7 J& V
- (while (and (equal width 0.0)
. {- e3 G3 u( a7 Y: L/ P - (< n (sslength ss3))8 D2 F2 P u( S: Z1 e N' G
- );and
Q" [# ]4 }$ z% j# F" ~2 W - (setq flag nil( [$ g6 g% ~1 t. d
- na (ssname ss3 n)
; k; Z3 U& u/ p( H) R* l - na (entnext na)8 C8 f/ ]* f6 n
- e1 (entget na)$ f9 m) I Y7 X6 Y9 M j5 i
- );setq
! {% ?6 [) v/ u _ - (while (not flag)! K+ L# H2 }* a
- (if (or (equal (cdr (assoc 0 e1)) "SEQEND"): H6 Q+ v( X; F( R1 }1 q4 v
- (not (equal (cdr (assoc 40 e1)) 0.0))
6 d1 B4 P1 E: i9 e6 h7 r - (not (equal (cdr (assoc 41 e1)) 0.0))- g, j0 m! y6 v, H
- );or
/ R$ J5 B* T8 w" Y' d - (progn
6 `% q7 m0 y* L" o O8 ^ - (setq flag T);
; K3 L7 X3 |+ x/ P - (if (not (equal (cdr (assoc 0 e1)) "SEQEND"))
/ K, _2 m4 g- f, l3 b" ^; C: f - (setq width nil)
& ^, [0 t; z/ [0 L4 R3 L( A - );if
% \0 S: k- R, c0 g* x - );progn then jump out of the loop" h" Y5 S9 q, W
- (setq na (entnext na)
& p; N- j7 C7 I S* T3 u. V! B - e1 (entget na)5 _2 {5 _7 e. ]# F L( V6 u7 W+ J
- );setq 0 N8 ^5 [( U3 |7 \2 A
- );if * ]2 c' z6 B" L7 Q
- );while8 l+ ]! o/ v& ^% e
- (setq n (+ n 1));setq 6 p1 i, B; [& G7 A! ^$ Z: Y! f$ t1 e
- );while ) P' i2 O* ?0 a3 d1 s& n$ t
- 0 z* V& u o' p" X
- );progn then it's a legacy
- J: `2 g! h1 j - );if ;legacy polylines that may have varying widths
h- B% ` ?" p, h: }
! ] @* t$ g" U1 X9 u$ F- (if (not width)/ C! P$ V- T+ X
- (setq width "");setq
1 x! C' k) X# x - );if2 _' Y% d0 T4 k1 y' K
- (if (not (equal 'STR (type width)))
8 B1 q% O# F, @/ T4 X - (setq width (ai_rtos width));setq
! c3 y, `* m* y( w3 l - );if ) `0 H& v# H8 P& y$ r% k
- ! ]& G8 L8 @: A" x; E; R! T
- width
3 y5 U: { i1 k: x0 Y+ Q - );defun pl_width_getter; c* v& R/ c. G
' }9 b+ m. g! W* o2 k% f" ?- / z' U( v B6 z8 \5 [
- (defun match-col (/ ncolor)
* n- \ p" Q4 Q2 n - (setq ncolor (cdr (assoc 62 elist)))
. K L+ r# [, }# Z - (if (not ncolor) (setq ncolor 256))# q6 l: Y6 D9 s2 k. J Z9 \! {
- (if (/= color ncolor); A( h( t' t$ N0 g4 n3 x! S6 U
- (progn
# E& w" s1 w5 g" u8 p+ x; j - (setq chk-col nil)
. M5 E l1 g" {8 Y* A! K6 y- p - (setq color nil)8 }7 b2 M; k b5 r1 _; o7 n
- )
' ~1 |7 U. P% f - )
8 K }. s" ^- u - )9 m6 e3 s1 u/ O# M, a
- ( w# r4 m l* L0 e: O% [
- (defun match-lt (/ nltype)5 Y6 A. U0 h: E* N3 }
- (setq nltype (cdr (assoc 6 elist)))9 v/ e- T' ~* g5 Q: D
- (if (not nltype) (setq nltype "BYLAYER"))! G" E# Y, u0 F2 M
- (if (/= ltype nltype)
) R K Y% P4 }1 j - (progn
8 E! e- T5 r( e. k- H& G { - (setq chk-lt nil)" k: S, ?8 u3 f$ n6 W% v
- (setq ltype ;|MSG0|;"Varies")! r$ [8 h' |" E
- )0 E2 U( J( L! F& x3 @2 j6 f
- )/ k! k) f$ T5 k) a
- )0 [* x: k4 t. o; c' V! s. ?
- 9 w9 P9 \. O% q S$ L$ D! ^" T
- (defun match-lay (/ nlayer)
. [; T& a/ }. W - (setq nlayer (cdr (assoc 8 elist))); H/ ^4 ^" y* V+ A3 ^; {
- (if (/= layer nlayer)
7 q) w1 @7 v) v/ {2 _4 L - (progn s. d1 [- J p
- (setq chk-lay nil)
7 U0 k; i4 D$ t" v) d3 c; a% e - (setq layer ;|MSG0|;"Varies")# d) a* K* w7 i
- )
. d- C" t5 O5 {4 d - ) X( P$ j7 T3 ?/ V
- )
2 T3 `0 z$ L. q i - % e$ V- _& X5 B9 u+ T$ w
- (defun match-th (/ nthickness)
; r% i2 F4 S$ N6 A( k( J1 l2 w0 E - (setq nthickness (cdr (assoc 39 elist)))# m6 \# v% V8 R) n" [
- (if (not nthickness) (setq nthickness 0))
, K# @# r% C [4 X8 U4 r - (if (/= thickness nthickness)! V* O( [4 Y8 m4 D
- (progn# h& J5 F( x* G
- (setq chk-th nil)
1 v! M4 j D2 T, P) s, g - (setq thickness ;|MSG0|;"Varies")
# M2 j s6 Z0 K/ `9 d2 K - )6 Y* f X j) |% s
- )
1 M4 ~) ]4 k$ S/ S5 w - )
9 s0 M S. X3 H( @8 R5 x' @+ Z
2 f. Q; m* Z s3 K- (defun match-lts (/ nltscale)7 C J3 k3 {# W- D/ q c
- (setq nltscale (cdr (assoc 48 elist)))1 t: ~( m; S/ a) m0 a5 K
- (if (not nltscale) (setq nltscale 1))
7 V% v% b1 K& |; }: K, h8 `% N& l - (if (/= ltscale nltscale)# `/ N; N; m! c6 f
- (progn
7 I+ V; `. t7 `3 K - (setq chk-lts nil)5 v7 |4 f/ Q. \" A
- (setq ltscale ;|MSG0|;"Varies")
; m9 t- W+ e* |8 W7 v# {& I - )
2 M. {! L7 K7 M' _6 G - )0 x/ M4 G8 {) ]
- )4 f6 I6 @& ]. l# N( B9 N ~
- W6 l1 \9 a5 h8 Q- ;;
% c- m I9 K# p( q% @# ]- U - ;; If an item is a member of the list, then return its index number, else
1 s& n; p. w# W0 {; h1 E7 [- \3 K - ;; return nil." A* w: t$ ]+ A
- ;;
. m$ y# |( w1 C" B: G; E; u' I - (defun getindex (item itemlist / m n)* d" o: M' x& J5 `5 z. a( P
- (setq n (length itemlist))
0 s! I! s+ S) C) u: {& m! R - (if (> (setq m (length (member item itemlist))) 0)! x: P' Y9 n8 o
- (- n m): s+ b, j+ s7 w R$ J3 g& l
- nil# y/ y1 n5 j( i) X" c
- )$ b7 Z8 O$ b/ u
- )1 v, A, O& t! _3 h' c; v
- ;;# }7 R( e( z% d4 u" D
- ;; This function is called if the linetype is set "BYLAYER". It finds the
( {) |! s- W# S" O, z. R - ;; ltype of the layer so it can be displayed beside the linetype button.2 X& T' G0 y3 w Q
- ;;
2 I0 |: L; L" d: o - (defun bylayer_lt (/ layname layinfo ltype)
& p& F- W9 p1 e - (if lay-idx
0 j+ _5 k8 ~# | - (progn! K( Q2 q5 H/ ?6 h8 l2 A+ ]; H$ F
- (setq layname (nth lay-idx laynmlst))
* k/ Y) q, J6 l# ~- C( C3 ]1 b; n - (setq layinfo (tblsearch "layer" layname))0 n0 S ]+ Y# I1 T0 l* F2 U
- (setq ltype (cdr (assoc 6 layinfo)))9 S2 @6 j* c( l! Q; O ^ y+ c4 x
- (strcat "BYLAYER" " (" ltype ")")
( T; X8 i/ K/ E+ L- U - )
, J, V4 a: q' a C1 O& J - "BYLAYER"$ `& u5 E# \% d5 G
- ), P. g4 t5 X) I/ `0 l+ ]; R0 O7 m
- )
2 [1 a- U7 w; } - ;;" E" f0 p) M0 I0 |
- ;; This function is called if the color is set "BYLAYER". It finds the% P" `3 E$ D! V2 ]' a' D
- ;; color of the layer so it can be displayed beside the color button.$ C( A: W0 `0 |5 v R0 ~
- ;;6 e1 P* |, v, L& L
- (defun bylayer_col (/ layname layinfo color), I+ e5 }1 F A' A, Z
- (if lay-idx4 r. F% T v/ `/ l( [
- (progn
3 [9 V* f; ^5 N7 K, u/ x - (setq layname (nth lay-idx laynmlst))
8 n+ z( R9 j/ ?8 p - (setq layinfo (tblsearch "layer" layname))
: X) K9 K5 V" o( o0 k* X! X - (setq color (abs (cdr (assoc 62 layinfo))))! |/ @# t3 m, k$ D4 ^9 Q8 U, y Z4 w
- (setq cn color)
) }# t5 h' Q3 Z7 v# @$ T - (strcat "BYLAYER" " (" (colorname color) ")")/ |2 m" h" s$ h6 u4 a
- )
" x. Y9 S. J9 G% a+ y4 y - (progn e! Q* y) A: \5 W& F* h
- (setq layname elayer)
$ F5 b q M9 c/ r4 t w8 s, ^ - (if (and (/= elayer "")0 q t1 j2 ~1 ~/ H
- (/= elayer "Varies")
! p+ Y. Z* u0 C5 E/ c. M. T - );and0 z- C3 c4 @+ R/ L5 E& f
- (progn
W9 Y, `- f# K6 f5 y1 |" b - (setq layinfo (tblsearch "layer" elayer))
. Z" }% ~' [$ M' ^1 Q$ h& B - (setq color (abs (cdr (assoc 62 layinfo))))
! {6 a4 F5 Q4 s$ q8 e - (setq cn color)
2 i/ |, f; n2 [7 Q! m* h7 Z( | - (strcat "BYLAYER" " (" (colorname color) ")")3 T" D2 b9 y2 ?9 q2 X
- )1 H; |8 x! s5 v+ Z: |
- (progn
& x+ C8 \2 |) X) u0 p - (setq cn 0)3 Z1 I: l2 v/ e4 m' z7 }* w
- "BYLAYER", L0 y" F" G/ t* G1 [. N% }- t7 G2 a( T0 h
- )1 K5 e9 f) @1 [4 ~3 P$ d
- );if) N% @2 J: N$ Z2 F
- );progn9 g, K) Q7 |# r- I% r5 ?9 T* T
- );if
4 q: c: p' a! _5 q1 _# d0 l- ?. t - )
% P# B2 b" ^' w2 D - ;;2 N+ {3 w N9 g# ~! x
- ;; If there is no error message, then close the dialogue5 h0 a+ C& a+ H5 N( c: R* A+ w
- ;;
; x. y+ x+ e. @0 X - ;; If there is an error message, then set focus to the tile
% E! y$ X: o0 G - ;; that's associated with the error message.
% H6 j+ P7 L5 B$ | - ;;
/ x* Q3 t1 o) G5 E& h8 g - (defun test-ok ( / errtile)/ {! b( p5 }0 |" M) n( @
- (setq errtile (get_tile "error"))# c) i4 i9 c6 C2 ~' l; V
- (cond; W5 O1 A* P2 [- E+ @, {) g
- ( (= errtile "")- n* S- k5 ~5 Z1 u* R$ z& f
- (done_dialog 1))9 D3 R6 J# F) T% x; r' N1 r, [) x
- ( (= errtile "Invalid thickness.")
8 O+ G# g1 O* |9 | - (mode_tile "eb_thickness" 2))& P. F0 d9 ~- d2 @( P* r
- )4 j3 j/ M. J, L+ [' |
- )
( s4 {8 _) B' ]' q- C' k( a - ;;$ N, e) `9 u2 H! y9 H% H
- ;; OK in main dialogue.
- u/ @" y& O7 Q: t3 }8 s - ;;) D6 E; I. P+ ?0 w0 L6 P: ^, {
- (defun test-main-ok ( / flag)
+ x, \( ^1 g; d- c1 j4 O4 j5 o2 n - (setq flag T) 6 C$ |& \; {9 y$ N2 K; B
- (if (not (or (distof (get_tile "eb_thickness"))
; ]% |8 w8 j* T0 E - (= "" (get_tile "eb_thickness"))( F& U; {& N# J4 V% t3 a
- );or
" O2 D1 R0 m! F3 n - );not1 o% N$ w3 B# b5 z/ n
- (progn
7 W, V) c5 k. I3 g a+ ]+ A6 F& R2 | - (set_tile "error" "Invalid thickness.")
, ]% g* a# D7 p, M! k% J - (mode_tile "eb_thickness" 2)
; Q0 L$ c. g0 b1 f0 T - (setq flag nil);setq1 r- D+ {7 G$ H( e
- );progn
- D7 ]( f$ l. R' r C6 ` - );if
3 r. C8 \: a, M: S5 a# ? - (if (and flag
/ j7 s" g2 i6 e - (not (or (< 0 (distof (get_tile "eb_ltscale")))9 Q" {* b- ]" \$ o4 A- V
- (= "" (get_tile "eb_ltscale"))
5 n6 V5 b3 C! x$ }8 f: `( ` - );or # Z# K5 H( @ {
- );not
# C+ G5 T+ T! u - );and 9 l/ a" |9 R# @% o+ |/ z6 @ T. H
- (progn
; U& e1 S7 D& l" M5 `& g: F6 | - (set_tile "error" "Invalid ltscale.")
! N ? {4 b/ ~: T& g - (mode_tile "eb_ltscale" 2)
( S4 J8 U$ a- |2 G. d( K- r- _ - (setq flag nil); 6 _( n* F& ?) Q; m8 [
- );progn then3 M: q" P6 U# v3 @5 A0 ~4 x# @2 I3 F
- );if: s4 o, j0 O7 B2 g; v
- (if (and flag G; R2 Q6 ?/ U
- ; Don't test the tile's value unless it's enabled.
2 p/ m% O( m' \. ~0 m; ~ - ; We're not set up for the display-only value; j; C3 m8 r5 L/ b1 }$ ~, k8 h
- ; of "" here in the error handler.& r. a, C: W+ d* @' O% m0 D' [0 @
- (= 2 (logand 2 eflag))
/ ? C" z" I R - (not (or (< 0 (distof (get_tile "text_hgt")))% q/ ^7 h% }& t# X
- (= "" (get_tile "text_hgt"))
. a- ]: W$ ^ ?) ?. H - );or( f5 e' `, i% e
- );not
* W) q. a2 \( J- e1 X) Y - );and& f# A! U) t3 J6 D7 z
- (progn4 Y7 Q- |* i% T& J* u6 }
- (set_tile "error" "Invalid height."); H& [9 E/ z+ I9 W8 @
- (mode_tile "text_hgt" 2)
3 x$ Z" P) {& W; o$ k: }8 E3 ` - (setq flag nil);
- Y( A: Y, _2 P$ a, @: j `+ L - );progn then
! r1 r* K4 z" L - );if+ L" K5 z1 ^% V3 l; y( A
- (if (and flag* f1 I1 t) ~& s
- (= 1 (logand 1 eflag))/ ^- S, Y# g7 T4 Q, i. U$ z
- (not (or (<= 0 (distof (get_tile "poly_wid")))% F B$ D+ A0 r
- (= "" (get_tile "poly_wid"))1 h* w- a& _. S
- );or. P* w& o7 G. T f
- );not0 Z- E6 p( N+ V! c I9 |
- );and: c9 }& a- o8 H, O, ?
- (progn
: I1 K& ^+ Q) D" t" q - (set_tile "error" "Invalid width.")3 B# x! m$ ^5 u
- (mode_tile "poly_wid" 2)* W3 i0 X5 C5 o9 O, t3 n
- (setq flag nil)
/ v( y, n: y1 j, A+ B3 i# Z - );progn then
6 L4 M% i4 w5 t# g% D. i8 |: x - );if # ~7 r) b" W# F# C8 ^( O
- (if (and flag- q& h# z' {+ [6 e: y- }
- (= 1 (logand 1 eflag))
3 W( s6 y# [0 e1 X - (not (or (distof (get_tile "poly_elev"))
$ a E8 F0 k7 ~& U# e - (= "" (get_tile "poly_elev"))6 h$ M4 R6 e+ P) I3 p3 j: ?' J8 y
- );or) W/ ~7 m: H+ n/ @! c
- );not
* U; j: ~* q0 F8 \5 D - );and% s# l/ S4 _# F7 s7 \( \
- (progn
/ g' E% x6 V8 H( u - (set_tile "error" "Invalid elevation.")
7 d: @( `9 B- q0 B - (mode_tile "poly_elev" 2)7 m; s6 Z, N+ M5 ^9 y: e) }; `
- (setq flag nil)( d& W, a9 M6 P" B; c
- );progn then
7 c" H) r& b( s, [$ q. y4 x - );if
) N" K6 ?, _+ B: I8 d' t7 k) t - (if flag
: x5 G b4 X+ s4 ]7 j( E) ?- T - (done_dialog 1)) `$ g% R+ p+ r/ a" O% x
- );if
6 G. D- K+ t" \0 v. ~ - );defun test-main-ok
7 K- g! l8 m/ T - 2 p$ H6 m ^' {. i, F
- ;;
7 X6 f0 _! o( J$ h' F - ;; A color function used by getlayer.6 e* S1 U, s ?9 x+ \+ L9 R7 S
- ;;0 Z. C9 u+ C1 L7 N7 V; m3 C4 J; D
- (defun colorname (colnum)
2 I8 o1 x* ]5 R! I - (setq cn (abs colnum))
( M( g" Y0 T4 f% R3 i - (cond ((= cn 1) "red")% u6 E/ ~$ N2 d7 s* I
- ((= cn 2) "yellow")$ O% ]! @3 o: E" o' k
- ((= cn 3) "green")0 R9 i, j5 i, N9 x* F8 h9 Z
- ((= cn 4) "cyan")
; e5 x. e$ t* \+ F" p/ a - ((= cn 5) "blue")5 y- N* A9 A3 L( X& [/ J; p) W
- ((= cn 6) "magenta")# e' o8 l; g* F0 U W/ [, b1 V9 x, p
- ((= cn 7) "white")
3 x( j& U$ q T' [3 `' a8 | - (T (itoa cn))
. D' b4 M0 Y) L1 A% h - )) e$ a. ~5 _0 N) w8 @
- );defun, L0 ? {1 m" E, J6 T1 x! Z
- 1 l4 @. X# [2 C: V1 o \ N
- ;;; Construct layer and ltype lists and initialize all
; C, ?5 q6 I! \2 ~! i- s - ;;; program variables:5 i ], F1 h) _- J( u0 x
! F9 [' T0 @+ K4 m- ; (makelaylists) ; layer list - laynmlst
8 y5 B, ]4 o! ~- W: O- g8 k - 5 i# o" e5 M: P2 Y& Q% X- W. [: x6 q
* y( {* P$ _. N9 d; z; A- (makeltlists) ; linetype lists - ltnmlst, mdashlist
6 J: Q% k9 C% x' W6 W" p2 u - , i$ w' H$ g2 [
- ;; Find the property values of the selection set.
F" W, Z! u1 o8 a1 i - ;; (getprops ss) returns a list of properties from3 |& b8 x/ G1 ^
- ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).
; K: M' f4 H; |4 w% m9 u: c' L
; ?: p/ f. s5 |, x9 `1 e' D- (setq proplist (getprops ss));@rk interesting things happen here
8 M9 Y3 K. {1 R! r b5 A1 z
% [; j1 q1 ~& C; y z- (setq" M" D+ t2 k) F1 s( b" {
- ecolor (car proplist)
# `$ V) \- w- `- I+ B0 w1 ?4 m - eltype (nth 1 proplist) f6 y- u- ~" k% [' P4 \
- elayer (nth 2 proplist)
: l2 b& F+ E* v8 ~+ ~ - ethickness (nth 3 proplist)
! V3 c' O W( O2 |0 Q. N. q - eltscale (nth 4 proplist)
$ c2 P3 @3 J0 H2 K1 J' Q - ewidth (nth 5 proplist)* M0 A2 D3 ?! v& g
- eelevation (nth 6 proplist)
! T% O& R6 `+ j- X - eheight (nth 7 proplist)( F# c' J1 c2 X, [( D" T0 s
- ;etype (nth 8 proplist);commented out and replaced with the line below. RK.
4 P! B" V# Y( w9 N - eflag (nth 8 proplist)+ |& E$ ^% w; J8 a
- estyle (nth 9 proplist)& p. H+ n# e6 D5 A
- poly_ss (nth 10 proplist), M' |5 p0 y7 J7 `) ~1 @
- txt_ss (nth 11 proplist)6 A$ u: K) I+ y* }! f
- );setq
" x6 M5 q3 u. U. @& w& u% j) }& }
9 S- {5 T9 ^ X! Q+ `9 z6 | m* y- ;; Find index of linetype, and layer lists
2 @$ q9 N6 `% e1 K; S, H - (cond; L' j. y$ s! s9 y% k G
- ((= eltype "Varies") (setq lt-idx nil))
1 V z! E1 u" A - ((= eltype "BYLAYER")
$ N s% J/ e/ P - (setq lt-idx (getindex "BYLAYER" ltnmlst)))
, l/ F3 i6 r6 _4 I) l! S2 x - ((= eltype "BYBLOCK")( \& G8 J9 u6 z- q2 N
- (setq lt-idx (getindex "BYBLOCK" ltnmlst)))) [8 Q! {1 A! y$ t$ b) S
- (T (setq lt-idx (getindex eltype ltnmlst)))
0 R0 A, A, o1 d4 ^- m - )
0 f/ ^6 L, r, i - (if (= elayer "Varies")
/ r `* h' X7 s0 L& ` - (setq lay-idx nil)8 k# P9 Y6 k& _* _$ n7 ]7 k
- (setq lay-idx (getindex elayer laynmlst))
% R3 L; C# V5 e- @) ~ - );if
5 X2 M% D1 e9 l1 B' [ - (if (= ethickness "")
* _3 Y' Q) B2 Y - (setq ethickness nil)8 J) A0 f4 q, R2 [
- );if: \+ W8 F, q% s, {9 m4 n
- (if (= eltscale "")
" y1 U' {* Q% c5 l - (setq eltscale nil)! M+ q: F. q6 z1 H* p( T
- );if
1 L5 g5 ?, d, R$ m7 ]! y4 ~ - 5 }, W- p. V% S
- );defun ddchprop2_init ; end (ddchprop2_init)$ k3 }, M6 h* x, }% A$ t
* F2 R- T$ y( a) r5 g- ;;; (ddchprop2_select)3 j8 M; Z1 A: Q% v
- ;;;
3 a, M5 @: l5 O0 D. b, d6 O W. Y9 U - ;;; Aquires selection set for DDCHPROP2, in one of three ways:: c: a, O# W {0 ^& @) }2 d7 ^! U
- ;;;6 Q" N+ h0 m* T7 f8 h
- ;;; 1 - Autoselected.
5 t/ a9 b6 @9 U+ s- v2 c - ;;; 2 - Prompted for.$ W2 K8 u# t0 z W
- ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )
9 V5 g( p2 y% e- u - ;;;
" `; d# z* [ J. i' x* j+ {8 [ - ;;; The (ddchprop2_select) function also sets the value of the
& h, i* `. H G1 W3 k" y' f - ;;; global symbol AI_SELTYPE to one of the above three values to
: I+ {. N6 @4 S6 {/ u1 B - ;;; indicate the method thru which the entity was aquired.
' r+ T' |! ^3 A$ s1 M; }( ` - * ]9 i7 M \" _: L6 t
7 {0 T' X* @- ^8 x+ f: U- (defun ddchprop2_select ( / )
1 \4 j( a. i/ f+ Z
; C [9 E' i+ Y" b. f& s-
5 n" ~7 U; J; I3 T2 m; q$ l - ;returns only entities in ss that are in the current space. 0 C" i8 u* T: k$ E' ^6 Q7 _6 s
- (defun ss_in_current_space ( ss / a cur_space ss2)$ F& f* j2 h6 i
- 6 U# U M1 E7 H7 O
- (if ss
) }/ ]* |5 ]0 s# P' C, K - (progn
. H0 F: U f; ?0 n1 o$ Y% c2 Q; ~ - (if (and (equal (getvar "tilemode") 0)
% E% K' \3 e- j. N - (equal (getvar "cvport") 1)
( r. ?( ^9 ~$ r' G3 d7 U; y - );and
! O5 Z, w$ [0 K p! x# M - (setq cur_space 1);then paper space is where we are.& ?' i+ N- ?; C E% |) N4 z# w
- (setq cur_space 0);else model space.9 m j2 F6 R% Q* _" `
- );if1 e* x' J/ D2 Z" Q4 F `
- (command "_.select" ss "")
$ t- y9 R% u4 a) @ - (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq5 S4 K5 Z$ I0 O* P9 c; W& F
- (cond ;;;;;tell the user what's going on.
; \# `: Q8 @# S+ b - ((not ss2) (princ "\nNo objects found in current space."))' N L% O+ y( D6 M
- ((not (equal (sslength ss) (sslength ss2)))
& O+ C- ]& Y9 D: J& g1 Z7 \* L - (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2)))* S: D. _. A5 W) D/ ]: P2 i' b) v
- " object(s) were not in current space."
; X& V I$ L1 ]7 i- ]! j3 c - )
) i$ y2 o; O% D# |; I/ _* g - )$ i# v7 z% q# Z; o0 t# q; H
- )
% ^; v, y# q3 j1 T. Q& u# p& r - );cond ' B$ L: e! G |2 b+ E+ G
- );progn then- G$ J# V; ?" |+ `, k
- );if / t6 N, s. a4 a6 @, l* q
- ss27 }5 Z- \& g$ M9 \8 ]# X, z! P
- );defun ss_in_current_space4 |0 b- P' g# f9 w. \' E. C
1 R- h1 f# p3 o3 M- s1 }* E
A6 ~& s" Y m2 G3 u I2 q- ;;;begin the work of ddchprop2_select
- c9 Y4 n$ ^1 C2 }% b6 @* Q - ( R5 T1 I# l0 C. K3 \' N
- ;; temporarily restore original highlight setting.1 u% p& E! Y6 \5 Q# h/ d
- (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))
7 A9 x* x+ S, T - (cond
) @( N3 Z& j) V$ w" x0 } - ((and ss
+ E* `/ e8 t# q; s4 I# A - (eq (type ss) 'pickset)# B# e2 i3 X! v& J$ X3 J( ]
- ) ; selection set passed to# W4 L, N6 J0 I% D+ i$ ~6 j t
- (cond ; (ddchprop2) as argument& C$ n% E. s5 A) W2 ^4 |
- ((not (zerop (sslength ss))) ; If not empty, then! J$ o! Q3 Y7 Q
- (setq ai_seltype 3) ; then return pickset.
. b; e' B7 ~; u. n) @ - (ai_return ss)$ [' s, m' T8 k& T
- )
2 u4 c; D/ ]; a& l/ w; ] - );cond close
4 @) v/ E/ }5 L( e - );cond #1 k& K# p( f5 E# N' {. d/ Q0 ]
- ((setq ss (ai_aselect))) ; Use current selection
$ s3 b! t; p' Y% e - ; set or prompt for objects
+ Z" d" K4 c) S4 a) n4 d - (T (princ "\nNothing selected.")8 H! ^- q8 Q! C4 R- x
- (ai_return nil)$ v' g6 \- L9 I8 ^) J: y
- )
# x+ M; T8 u& |2 d3 q3 E- q$ x - );cond close
4 N' m1 r" ~6 p) @0 U4 R% k - (b_restore_sysvars)
1 u# N4 b; g, r& e
3 l! d9 t0 W# d, V' w! a- ;(if ss& C$ u4 P3 H! G. i( F: y, E" Y! j4 _
- ; (setq ss (ss_remove_locked ss))
9 o* [# n) [" O. [* z - ;);if
6 w# p9 u* ?) f1 Z - (if ss0 r W/ D5 k- {# U( M0 @
- (setq ss (ss_in_current_space ss)) 2 b" U3 D# Q1 e, Z
- );if+ u( l. I2 R _' A& ]
- ( m1 c- G9 Q7 `9 k
- ss& z9 [* Z1 {. I) @" W& q* h/ ^ @2 H
- );defun ddchprop2_select. U3 `8 D: ^" d
- v* c9 K; X9 z2 y) I
6 H, h6 y6 P3 V8 N- ;;; Define command function.
& _& G O4 [! ]/ o! y7 R - (defun C:CCH ()
" b, L3 X! H8 O; d - (ddchprop2 nil)5 ]# \" Z0 _0 l2 ~3 q8 z
- (princ)& G' d- q$ x) c: m$ V: A3 [
- );defun; S2 l& ^( |* W# U
% l8 g6 V' Z8 z6 Z
* a3 c- N# W6 m- M+ W' r. R- ;;; Main program function - callable as a subroutine.+ H$ C2 S3 ]- k
- ;;;+ m; f, r4 v% [. {; n9 V6 e2 f; A+ U& h
- ;;; (ddchprop2 <pickset> )
$ P z) F" U& C- i/ @ u! x$ { - ;;;
& n* O2 @: Q6 D) I/ I - ;;; <pickset> is the selection set of objects to be changed.& R) W; t' c2 k4 _
- ;;;
; Y7 L( A+ i/ K* e - ;;; If <pickset> is nil, then the current selection set is3 \8 [: ^% B! B& Y. M
- ;;; aquired, if one exists. Otherwise, the user is prompted
3 ~! c4 q; {, B' O) u. J5 A4 t - ;;; to select the objects to be changed.
. U6 z4 x* Q6 t; G, l* v" w1 G* Z6 S4 H - ;;;; b( V. Q' \% z) j9 l
- ;;; Before (ddchprop2) can be called as a subroutine, it must, l- b' w3 W+ Y& X, U+ i
- ;;; be loaded first. It is up to the calling application to+ |7 E) r+ c* z: Q* m- h& a
- ;;; first determine this, and load it if necessary.* n7 m; L" Z7 ?3 }7 a
2 ^* v$ q" K9 l+ Y* x- (defun ddchprop2 (ss /) r- Q% |: I; p' y
( p& {1 @+ X2 j! E: H) f. \- e- a3 E3 ~& k/ ^+ s, J. U- o
- add-mdash; d5 G& `1 F0 }9 w5 z
- assoclist* m6 _4 o2 e. ]* }6 @5 |# i
- bit-70
9 P- X# H: X1 {4 X" h - boxlength
2 H" U. O% [2 R$ `+ Z- o, P - bylayer-lt
( N7 Q6 U3 D' E3 o" C( ^6 O4 y' a - bylayer_col
3 t" y! Y3 m$ R" c9 e" U - bylayer_lt9 o/ d- O7 j* v$ C; G" z
- call_chp2
* p7 c! q z$ S0 l" w9 e0 d% x - chk-col
$ {+ E: L* l( w/ j- g6 T - ;chk-etype ;var removed by rk B6 n, D- G$ A- c% k% [
- chk-lay / r' B& q- g* p9 |( Z9 e3 c% J, X
- chk-lt' i! n# R0 H$ ~ d' p- @
- chk-lts ;var added by rk
6 ^/ {' \8 d- A' q - chk-th% \" Y1 e& F9 K: J
- cmd
7 Y* Z2 r% f( ` - cmdecho
7 }3 U" J& I1 U; ^$ k9 A' H - cn* o. W% u$ c0 @3 k9 @9 C# {
- cnum
4 X" s0 v7 F% x T; j& F% M9 I - col-idx
- d' y5 d, t* e3 g' Q2 g" b - col_def
6 B" c. L0 O8 t( ] - col_tile8 P- Q" }6 t/ e
- colname
4 i5 d! q6 p* O7 U - colnum
8 V4 r+ T W2 C, \ - color
$ a' d; I3 a; {2 ?& x1 ~ - colorname- k1 T# r( _3 e$ e) c9 q/ O4 O; v
- cvpname9 ]/ \( C# N! T# i+ s/ _+ d2 c* S
- dash
- W/ j r' y( Y) }! y2 d8 L, y - dashdata
/ c$ i, B c& f8 y) `5 t - dashlist
9 i4 g/ ^; l! K1 h- o8 E! a A4 { - dashsize
( r+ X/ o* F7 j! N6 A - dcl_id6 r9 c7 W3 a! y) t. E# H* y
- ddchprop-err6 z/ z+ \4 m/ A% m( M& d
- drawpattern( l& x1 J$ d2 @" i6 X3 g5 |
- ecolor- j3 J! M" W& { L; a4 i
- eelevation( O \ O, a2 I! Y* G
- eflag9 a/ G5 l9 P2 J. v, t. ?! }$ A
- eheight
& E4 }+ t$ t1 `6 O' o - elayer) [+ l/ E) Q2 m+ z: z
- elevation
* I2 R" u0 z2 ?( N. u* n- M6 z - elist
. j. @/ `: z6 B1 e I5 c3 d - eltscale9 |7 ~* B. _8 s: o. {) h- G
- eltype/ W6 f# e0 u$ [& k% `; m6 Y z3 e* M- A
- en
) r# @5 H/ G) N3 k" Y. M8 j - ename
. M9 I( X, A5 k1 m; v3 }1 t7 F+ ]# ` - ESTYLE ;var added by rk- x% |0 N3 Q; J1 D# G2 S
- ethickness
* Y8 J8 B7 ~& k% Q+ l1 T( h8 U - ;etype ;var removed by rk8 w3 j; _% x& p4 ?3 w
- ewidth( W0 G9 T5 p- g6 i/ e
- fchk
1 B9 g% f( W. a9 h& Y - frozth
6 d" C/ ^( w$ v" P6 P6 ]6 y - fx$ a# K- N7 I# t" i3 z" L$ L9 x
- getcolor4 V# G9 m" h) w
- GETELEVATION ;function added by rk
' D- }: Y5 ~, ? - GETHEIGHT ;function added by rk
0 T0 k; T2 J4 i - getindex) \( Z: c h! f
- getlayer
0 n7 u+ o% @! N1 N" X2 K0 q - ;get_locked_layers ;function added and then removed by rk 4 Q$ a' ?3 q( l; @" m; E
- getltype S5 C) K* w9 f9 c- A; g0 n6 W
- getprops4 z$ K6 S y1 m; K" {; f8 r
- getscale ;function added by rk( z- ]9 ~( ?0 [, Q# |
- GETSTYLE ;function added by rk
. m. {0 r* I# w9 b L - getthickness% ^8 [+ k2 ^6 O0 G9 ~, w: a
- GETWIDTH ;function added by rk8 J' v. Y4 b7 p0 }8 u
- globals& i' s5 G- M6 ~+ a8 y6 B
- HAIR_STYLE_LIST ;var added by rk
S( N4 C, H- o4 u5 b - height
! b9 A3 N' {% Q - index
1 B+ F! }& q$ W0 F& S5 g4 q- Z* { - item
! Y* Z) o3 `' G" O+ X - item1# r* U7 T) g$ F1 v7 z) `
- item2% s6 u) ~4 T+ I6 \: n6 Q- z' z4 W
- itemlist S* d T( Z( u8 m' U3 Y+ \& G
- lay-idx
5 F* U K1 g, K- T! z - layedit_act( V3 u2 [2 a9 l# a8 E
- layer+ h! ~* l. T/ d' I+ y( B
- layinfo+ s R! U/ Y1 P* t Q5 V m1 i
- laylist
. v* m7 m9 Y: e4 Z5 ?' M - laylist_act5 q- }5 R% {. p C1 F6 Q
- layname$ o: k# d% A/ B) i* I9 M6 V
- laynmlst
: k. N( t3 Q& Z - layvalue: T& c& b [& j9 q
- linetype1 F1 k. U4 U+ ?/ r
- list1
# S1 L3 ^9 `9 W, |- ]2 N! D - longlist$ I( p% {4 k: t# E6 k. m% l3 @
- lt-idx
/ n$ T$ n0 V U - ltabstr
3 H0 ]' k4 w! c9 G: F1 i - ltedit_act
( x" q5 j0 ~- S' d, S6 e - ltidx
7 ^3 s" d( O, e9 _; C% h - ltlist0 B& h$ ]1 k! U
- ltlist1
, U# ?9 a# z4 l! ~& U/ K8 B - ltlist_act
, ?6 p& g4 J6 B - ltname9 o! J8 w' W0 K) R6 a. x4 i
- ltnmlst
: z- I5 [0 ?5 d2 E - ltvalue1 Z! I' G! I; C% A
- ltype
- g& n7 T h) z4 k* [ - m& Z# y7 P% J5 K
- makelaylists
5 g# e2 O* @ U2 Y - makeltlists
; q: c2 x. d' f+ k! z1 w$ W - match-col
* t4 o4 L# f6 }/ b" G - ;match-etype ;function removed by rk# p5 A+ d& w7 O7 I% b* k6 `7 t
- match-in
1 i. w+ r% h# l$ L, u; |: R - match-lay
( ?, H! M# v% `( ~ - match-lt
6 V% d& g) @" p7 q) s q* j: V+ K - match-lts* {9 y, [0 x& ` v# ?
- match-th$ Z: m4 E3 D5 D: `- [$ x4 B$ C
- match_col4 h* w7 c! Z0 F2 o0 ]8 s* v
- mdashlist( C% V5 R% ?6 I0 [0 M
- ;MPOPLST ;function added and then move to ac_bonus.lsp by rk
/ }8 N7 F+ @0 H0 `* N u - n, c4 {" `4 i$ x% r% n* i2 g
- name/ W$ F& \% B; g, z; L- i
- ncolor: N J% B$ s6 d% a
- nlayer
' z7 M1 n4 C& m - nltype3 K! z* ?- Y4 [! _' t3 D* E
- nthickness. I) J! B' k6 u" s. K6 }
- off
* X& E* i; k7 q. K! z1 g - old-idx/ J( ^; K4 @) u) R9 `3 V
- olderr
$ F7 K5 A u& o0 U6 B+ t - on. O# T' i+ \. k b& O; c
- onoff
% K2 H( Y! y& L6 c% d - patlist5 Z' A5 b0 e" H4 C( `
- pattern
" [9 J1 @2 a2 _' u* Q - PL_WIDTH_GETTER ;function added by rk% s' f2 D/ t9 ~% M3 W
- POLY_SS ;var added by rk4 y* c7 y' `4 S% ^& M& \! {
- ;POSITION ;function added by rk and then moved to ac_bonus.lsp
5 l$ _4 Q; I% S+ G - proplist( N% A/ s J+ ]& N
- reset-lay
7 ^& H3 k& n1 i - reset-lt
- @8 ~! Q3 G- L% M; r, D) M - s
4 z5 W" ]6 M D" r0 \ - selset! x, X8 N9 o W8 d; t8 o
- set_col_tile* F' w; k U6 h0 J }0 L( n4 B) ~9 @
- sortlist( p4 ~( S( i! g9 B& T
- ss& _6 H; V1 P, n$ o, l6 S
- ss_in_current_space ;function add by rk.
8 N9 m. P4 k, C0 K8 E" d1 D - ss-index
2 s. K9 ~! @( h" |: k. P$ `7 P - ss-length
; |: {7 H6 O% ^ - ;ss_remove_locked ;function added and then removed by rk.5 ^; k( c6 c, z i$ w2 v- X/ u
- sslen
9 } N. n, {9 p! i - temp_color0 h- M0 A" \- _4 `- L8 |
- templist1 u7 S( ]5 q1 i f+ R- L: L0 w; v
- test-main-ok
9 h2 I" K: H7 ?0 e0 M" P5 E* G" l - test-ok6 [$ b: W# F! [( N5 H- O
- testidx7 N1 ?3 g$ G# ^4 x7 a* p* Q
- testlay
5 G* R) f, r$ k+ ^ - th-value
, Z# v9 {/ R7 e/ K6 P5 @! O* j0 l - thickness' S! T9 M" a, W* k5 u
- tile
' X6 ^$ a; `/ ~ - tile_rect( S7 S; L; `# j8 Z( J5 j- y" T
- tilemode
$ ^7 {4 g1 C% |1 h+ T - ;TNLIST ;function removed and moved to ac_bonus.lsp by rk# c l: _: v6 |: h% r. Z4 w
- TXT_SS ;var added by rk8 x/ h! A1 s& }0 n
- ;undo_init ;removed by rk.
- H% {0 X# d( P - vi
# T- [! e0 K/ x$ r1 [. e - vpf
, T( U# ], j' n$ }. L - vpldata3 H7 D. N' ~4 ?
- vpn
6 A1 W( m5 r. G - which_tiles
- w2 h7 u! b$ R6 C! b& w& } - width
; E2 ]7 q1 W0 O7 j - x8 z7 w0 o4 m% E8 L
- x1
6 n( ?$ c9 _# E8 h" J' [ - x2+ }5 X# L* c9 Q9 B( I; V0 f
- xdlist% ]: ^6 \, s: C. H G
- y& A. w- E+ l1 O6 }* q( N0 z$ y
- y1
' k+ u2 k& k( K8 z1 g( C; X: M7 ~ - y2, @2 G) n6 m; D: ?( [5 X" `' x( `
- )
+ Q- b! h |0 Y$ Q: L7 } - % `/ E* Y+ C3 N5 j
- (if (and (not init_bonus_error) , V4 B% {! l0 u B' S/ T* P
- (equal -1 (load "ac_bonus.lsp" -1)) # ^7 c8 a- d* R7 l+ k
- );and
P2 _/ C" B# L! d( | - (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))' K( t( B+ i% x; X8 u% W4 A
- );if3 \% ~2 j! v: U' W
- (init_bonus_error (list3 ^% M5 c+ |$ }9 A4 S4 F% }0 C' A
- (list "cmdecho" 0 2 L, f( K; c6 N" T; i) v
- "highlight" 0' S2 D2 _7 \: n1 k2 J/ u
- "regenmode" 1/ Q/ k/ q1 H6 \3 i7 q
- "ucsicon" 0
0 I! p# r5 P% e. Z+ l+ d; t9 z6 P - ) 2 k& N( x, H8 c$ P2 Z4 \
- T ;flag. True means use undo for error clean up. + L0 Q5 M r" y9 {# x
- );list
@0 P2 j! M3 U6 a7 @9 _6 d' q5 N9 B3 h - );init_bonus_error2 }4 h8 m& M* V
# \' O1 P5 c2 {& e# u, c- (cond
' \9 v5 `; E3 j( [6 i - ( (not (ai_notrans))) ; Not transparent?' ]. q" `& R( P$ C+ M1 n) K
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
8 i/ Z5 @! k9 N! | - ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?
( s6 c8 d1 C0 x. Y- b - ( (not (setq ss (ddchprop2_select)))) ; objects to modify?0 M2 m6 F$ P+ N. B
- (t
, J/ H/ D5 {) F6 D% P - ;(ai_undo_push)' A* P& }3 q0 {( H
- (ddchprop2_init) ; Everything's cool,# h. @( Z$ @! `- k6 e4 P- O8 ~
- (call_chp2) ; so proceed!
$ e6 |4 i$ b! v4 c - ;(ai_undo_pop)9 c1 q. m, ?0 |, m, o, |3 n7 v
- )1 a+ w* H. y! L- d5 u
- );cond close1 C+ Y/ Z$ y/ |% Q
- / p: L4 I, k/ v% d* b" F0 T. M
- (restore_old_error)
' ?5 \, j( d5 T - 6 F4 f/ y7 Y) a7 i0 N
- (princ)
% h% @& p0 t( I' M0 k6 ]+ {* n - );defun ddchprop2
- K! N2 L% k# d2 z9 A. \ - + N1 M, e+ _9 e( `5 k! \# K3 O
- ;;;----------------------------------------------------------------------------
$ x5 i& V/ T+ Z: U0 M3 n0 N; T - 6 I$ `, X: [6 }, t6 t
- (princ " EXCHPROP loaded.")
7 d {) D' l' v4 K1 g4 ]2 ^ ^" L - (princ)
- d, u d, |" Z g( [7 C8 c - * e2 S6 d* p( D V0 _5 J* J7 ]
- ;;;----------------------------------------------------------------------------; _( Y+ q: }. D+ e& Z4 W9 h% A
- ;;;---------------------------------DDCOLOR_LSP--------------------------------- ^9 k: W# x$ P( `6 w, r+ {
- ;;;----------------------------------------------------------------------------- x" u6 `; t0 n) D+ `) l* }
& i; ^# T5 W6 f, i3 j& u$ ~- b- ; Next available MSG number is 24
- m# b; ?6 }" Q* W - ; MODULE_ID DDCOLOR_LSP_/ K" S* \; W4 n& L% y: }
- ;;;" G3 R$ ] q7 t; b1 @5 ~6 w
- ;;; ddcolor.lsp- a' F% \! o$ }/ b
- ;;;
; _" p' H: n) R' p/ y. l% W& ?/ Z - ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.
+ j" S$ z# x/ W t& J - ;;;
+ o( |( p( Y {* E* B0 o - ;;; Permission to use, copy, modify, and distribute this software* Y! {: V. m- n8 T/ M
- ;;; for any purpose and without fee is hereby granted, provided* S1 {" t) ?: U
- ;;; that the above copyright notice appears in all copies and
6 D9 K% m9 e7 C5 \/ n M4 ? - ;;; that both that copyright notice and the limited warranty and
; c9 [7 w" L: O' H - ;;; restricted rights notice below appear in all supporting
% v- h* L Q8 l' d; O9 f7 Q - ;;; documentation.+ K& b: y' R9 ]* p# R$ s$ z9 O
- ;;;0 _# I5 V3 S# G( g3 m! b
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
9 E' m. g g6 F$ @ - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF- L1 O/ |' Q# T6 J2 }; N! |) ]
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.) v3 D0 k2 ?* R+ |/ `/ J# D
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE7 ^) W2 e3 N/ U Q/ B7 c0 ?1 n
- ;;; UNINTERRUPTED OR ERROR FREE.
% z) h6 W) Q# H8 |, S- W7 |4 b; ~ - ;;;; a0 N& X k; m& n+ K# o' e& D
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to. [9 a. m. K9 G0 e
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer' s' X2 b: `* p6 L5 y# b3 g
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) 6 B$ b) B) Y8 P% N" Q- w# K
- ;;; (Rights in Technical Data and Computer Software), as applicable.5 [7 Y) E; U1 D2 g# h: v3 G2 h
- ;;;% S0 X% @: k# I% m0 z. O; z" }
- ;;;.# O1 X- F: i, A1 Q; M+ j, H
- ;;;
) A' v. z5 _2 |: @- a - ;;;----------------------------------------------------------------------------" g) w& R8 h, d% |
- ;;; DESCRIPTION
) F G% G( \( b" b- _/ L( T - ;;; 5 G5 m1 i( l% |2 U+ `6 Q
- ;;; Chromatic Pallete style color selection dialog.
: a2 b' M$ J. X/ L' g3 M - ;;;
! i* N# F& r/ }* b |6 N - ;;; Globals:; \, Z. t1 U0 {; j
- ;;; . _1 |3 ^% Z: K, u$ Q; c1 W4 y
- ;;; chroma_color - Integer color index. The last value selected
! e3 k' P! _# Z - ;;; by the user in chroma dialog. It is not cleared or reset0 K3 S- d9 O; ~: l7 S$ v& W/ }% C
- ;;; by a cancel. Only used for communication between callback- X1 o) U$ g2 b7 x3 V! O
- ;;; functions and the (chroma) funciton.
; B9 B5 \3 y9 V( \7 p5 b - ;;;
" r. P! p0 X% h- j5 K8 C% d# d K - ;;; Depends on the definitions for the dialog provided in chroma.dcl.
7 a* ?$ h1 { l2 d0 }; g - ;;;
6 p# x; g5 C) z- M - ;;;
5 M3 H$ a* Y8 q. Q4 J3 ~ - ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma . b2 o& |: \. n# e$ q5 L; h
- ;;; pallete style color selector.
! ]- a! {9 _4 H2 V5 v - ;;;
~8 U% z G' j, G - ;;; ===========================================================================
) B& h" F1 n$ K( F; A2 W - ;;; ===================== load-time error checking ============================
3 n- f2 r9 \/ G7 L( ]" o5 j& g: j1 W - ;;;9 d4 H n3 o1 t i- ?
- ! J1 r& H5 \- b X
- (defun ai_abort (app msg)# p( z) g" k8 |5 t+ y4 N2 j
- (defun *error* (s). i3 x; T/ w0 j; `. j8 x& U
- (if old_error (setq *error* old_error))
2 i5 n( b4 G' b* c3 [; b - (princ)& z1 @, c5 p( J! @
- )
! _; }3 m0 a5 d; ~$ Z" e$ E - (if msg
( C. l4 B5 m1 \: |: \ - (alert (strcat " Application error: "9 \1 Y# t1 c% Q' \/ `" S
- app
+ L b/ ~* M( c% g - " \n\n "5 o( D4 Q) W3 c( Z
- msg y) D, g; d8 Z- }6 X
- " \n"& j) S5 ~4 \) }# ]2 ?' L8 c
- )& Q. ]& V5 o3 D1 l4 o
- )
7 M9 F! N" }: M3 i& t. R - )/ m- |: s1 W+ {0 o4 F
- (exit)" |3 N( d9 Y: m* ]
- )
+ s! }' N7 A+ T - ; t" }- S8 i+ U* _& D, M
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
7 s8 v3 Z" J; r3 P - ;;; and then try to load it.
, Q" A! N: Z. Y# X - ;;;6 l% W+ R, W8 w4 |7 M% V# _) W2 k
- ;;; If it can't be found or it can't be loaded, then abort the
+ n$ S6 _7 N+ C6 _6 y - ;;; loading of this file immediately, preserving the (autoload)( o/ N0 y5 t2 C6 M+ T
- ;;; stub function.
7 ~6 }" t! U0 I
8 @' \! T; [& u3 |% j7 u+ f- (cond, B3 i' ^: ^- ~$ H
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
" |2 d' T2 `8 D9 c K+ Y. ?
, ]% {9 |, o6 Q6 u" [: ~1 P% {2 ~- ( (not (findfile "ai_utils.lsp")) ; find it* x C8 ?3 e# r
- (ai_abort "DDCOLOR"8 Z0 E* ]9 m. T
- (strcat "Can't locate file AI_UTILS.LSP."9 Y8 X" t0 ~( G/ C2 G# j* P
- "\n Check support directory.")))
7 K' c! I1 F% d! g. P& f
* _5 |% c8 ]$ S( [$ K5 v- ( (eq "failed" (load "ai_utils" "failed")) ; load it- \# Z; j# Q( w3 g* Z5 s
- (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))1 q) ~0 M: W) p3 o D" S! `
- )
V& ?5 N* p: k- X. v
6 J+ j. _4 F& A2 j& P6 H- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
2 V' `1 x$ q5 Z x' Q$ O$ ~, r- J - (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses6 B. \. x4 b5 v3 ?
- ) ; ai_abort's alert box dialog.: m& l- g5 |3 v6 x5 B' w
- " y. f. [+ _+ c4 F y! R8 _ Q
- ;;; ==================== end load-time operations ===========================, }! N O+ v1 Z/ A! k6 s' d A
- 3 U7 |4 t1 m' C/ U# c4 _
- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)# Y9 F+ @! G9 W8 P) N1 F L
-
2 `6 k( U( c: B$ E% T - ;; Main Color function, called by setup code.& x0 y5 [; I0 J; D
- (defun ddcolor_main()
" R, s, }1 U ^5 L- [ - ; ^4 b; o+ e, j+ i* c8 X
- (graphscr)! X& S: J& I# e+ K4 N9 g- M; M! ]1 `
-
% x, w, w! y/ u# [+ b/ ~2 ~ - ;; Get the color of the current layer, for possible BYLAYER color swatch.
+ {) L9 M( r/ `. U - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))
0 W% j7 W) m$ Y* C0 P6 Y
* e( C2 S! i5 `9 I3 I, V- ;; Call the dialog here...
/ V7 j/ s- R5 a7 {& [ - (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))
, Q. F4 |0 H& P! B
6 N: |" E0 \$ _8 o; b) m- (if clr; u2 I) H6 h) ]. `# Q5 j
- (setvar "CECOLOR" (citocs clr))) X) s* N% ?; @ Z
- )! d7 m: Z6 c+ x4 q) Q
- ! v1 J" A" c8 a: |9 M- {
- ;;;
6 w5 s1 ~" r: _7 ^ - ;;; CSTOCI -- Color string to color index
/ n4 a/ n- x6 w7 b7 l - ;;; Convert an arbitrary case string into a color index. V! y% Q) x! B2 D! Y
- ;;; Returns nil if string is not a valid color.7 r8 S3 E0 r9 x/ U
- ;;;& Q! Y& X( }! D A
- (defun cstoci (str)% A0 ?/ w7 [6 b# e
- (setq str (strcase str)), C l* E; h. s( `! o0 G
- (cond8 C- e) z! J* T, t% F
- ((= str "RED") 1)
4 j- `% _% m0 I" z% I - ((= str "YELLOW") 2)5 d* T4 D7 C/ x
- ((= str "GREEN") 3)
. P8 ]: E M5 x0 j, k6 I/ M; M4 y - ((= str "CYAN") 4)7 {1 W7 u4 B: l, C6 k: {
- ((= str "BLUE") 5)
7 @4 R+ v2 q1 C( a; a4 _3 P8 f: b - ((= str "MAGENTA") 6)
# F# O* P+ t) l2 e W - ((= str "WHITE") 7)
8 i* s& r' z8 \( a; { - ((= str "BYLAYER") 256)
% H6 b; c% `) d9 i6 h - ((= str "BYBLOCK") 0)
% F* y7 C) c3 S: h- m: y5 M2 p - ((= str "BY LAYER") 256)' r$ i5 c% Z! M' d0 \- M
- ((= str "BY BLOCK") 0)
$ N* I* n6 Y3 V/ M' @ - ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str)), q; o% B0 ` @, `! D, [
- (nil))7 k# Q9 G9 ^% V/ e$ `
- )* m8 B, |! e2 W
- 6 {2 ^2 \" Q5 [
- ) q+ W. \% t+ C% ]
- ;;;
@4 {6 [: P6 V1 _( }+ ` - ;;; CITOCS -- Convert color index into standard color name.
1 \4 G# X3 ` w8 j - ;;; Will return the standard and logical color names as text
, R: y& |2 R# ~+ q3 m) t" R - ;;; strings. Returns nil for out-of-range color indicies.) b ^/ s; H- u
- ;;;
6 Y+ I4 d. X' s( _ - (defun citocs(i)4 b: K7 o. a @7 v% Z. P
- (cond
H2 B F1 `2 N8 A4 M) M - ((= i 0) "BYBLOCK")( p9 ], q. k1 r6 ^( d4 O
- ((= i 1) "red")! n# v' m- U* C
- ((= i 2) "yellow")" ?& \6 N1 R9 s3 Q3 @/ D
- ((= i 3) "green")
( s: H1 S# C0 n I& | - ((= i 4) "cyan")) A3 f$ C, V0 S$ c0 R. l+ \3 d! ^
- ((= i 5) "blue")" ^ j! X3 i% e9 s5 I) L- w) u ?
- ((= i 6) "magenta")' m% C6 a" T7 E1 ]6 D# O$ v& Q
- ((= i 7) "white")
. A- { u: U# v- P( w' P8 @ - ((= i 256) "BYLAYER")( o4 |: M' g' f+ }( G
- ((and (< 0 i) (> 256 i)) (itoa i))" q2 j) ^0 ]8 D$ K# r# d$ z3 n* F& W
- (nil))
* Y/ K( y8 }, {) W - )
. I2 O$ Z) e: o8 _
6 ~& E% [* D @) I- ;; Start of ddcolor
/ ^6 m2 e' H/ n' N - (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
! }- Z6 k1 m) m5 N - old_error *error* ; save current error function
# j& L/ w2 h3 [3 i - *error* ai_error ; new error function* u4 k: @4 y# ]- K+ e) @8 W! t
- )
; w* u E: j2 x, [$ e9 j9 I/ ]
, h3 n; }9 J- _: u3 U5 u$ J2 F; f5 n- (setvar "cmdecho" 0)
U: S7 Z, d) w3 A1 }) N9 A
6 F2 v$ a+ O+ k: I& ?% Q; l, j- (cond5 y* V- m# F2 ~8 k5 s
- ( (not (ai_trans))) ; transparent OK$ d3 W0 V; M' b ?& m1 B5 y; i! r
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?0 z: ?7 d- |% e5 I7 }' T7 J
- 5 t( ?" G" q: }0 v8 G
- (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))9 f) P! i* @% U& j" X
- (/= 8 (logand 8 (getvar "cmdactive")))+ m0 R$ P0 q7 H; k' d" F
- )* O- T: C" t) b/ d- `
- (ai_undo_push)
% f6 _ k6 t, R- K - )+ Y. z5 }1 [& O& b7 O( D
5 l4 X3 R, Z8 n8 S" M4 m- (ddcolor_main) ; proceed!
* l& v; k5 K0 R. K+ l/ C3 u - C' S r6 L2 Y+ u
- (if (and (/= 1 (logand 1 (getvar "cmdactive"))), {, h4 W$ J5 ]$ g( K1 p
- (/= 8 (logand 8 (getvar "cmdactive")))+ g7 v, @6 f! K' {& @ e
- )0 v5 ]1 T- E4 o" x4 X
- (ai_undo_pop)
7 S( t* B% k) w4 l - )
2 B. N8 j! n: m% W+ B6 S - )6 d! P: \) `; o* q
- ): ^' r2 g$ _7 {! b! h
- , m u- k8 h: v' c4 i
- (setq *error* old_error)
% ? D! z- @ ?8 ]9 V; b - (setvar "cmdecho" old_cmd) U! q! i1 v4 f) k: J) R0 j) u
- (princ)
- y8 J& C2 V. y2 M( D2 S. ` - 5 L% ^) r/ f6 r: | ?3 |7 N
- )
7 Z: j% t; t1 l) ?4 w: ~ - 9 J, l$ m8 E3 I) F* f* W
- ;;;----------------------------------------------------------------------------; [& E8 V' S( H+ |
- . e3 w+ r! \+ b* N6 w r# ?5 l
- (princ " DDCOLOR loaded. ")4 o( C' m# O) U% _
- (princ)+ @ ~4 m9 C( a; V C P9 n
- 8 H' h9 m) o, t( v8 q
- ;;;--------------------------------------------------------------------------;
* S; m. h# z: m# r g/ p: X - ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;
3 W+ n: B2 [8 K2 I: N, g - ;;;--------------------------------------------------------------------------;# f4 G1 F6 O# Q2 F u, M$ x( a
- ;;; ssx.lsp) e2 L6 A+ G8 r" z* z
- ;;; Copyright (C) 1990 by Autodesk, Inc.
# R- ?" [) L: S& K/ \# `; l. E - ;;; Copyright (C) 1991 by Control Systems, Inc.# x) O! t( H9 Z# ^7 \) F
- ;;;* N5 n# x0 X2 B. r: x V; x
- ;;; Permission to use, copy, modify, and distribute this software and its- k% j' x& r5 I, r3 s4 x
- ;;; documentation for any purpose and without fee is hereby granted.2 ?9 N4 U$ c8 J$ `! W& ]
- ;;;
" a5 P" b5 j/ r - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.; j& [0 Y' P" U# q
- ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF
+ G, x$ J8 d4 L1 f* H+ Y) v( D - ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.* B$ [: y; d4 U: f& w. }) i0 Q
- ;;;. [! H `+ P& @8 N3 e2 M. Z. R
- ;;; Larry Knott Version 2.0 7/18/881 f+ g, f+ c" \$ F I
- ;;; Carl Bethea & Jan S. Yoder Version 3.0) m& A( l2 Y. C) X7 B U6 g% Q6 z
- ;;; Enhancements to (ssx).
+ ?4 a5 o- n) x T/ D - ;;; 15 March 1990 , i3 y# V) }6 R
- ;;;, d. v" U1 G, R# p- q9 x0 @" _- N
- ;;; ARTIST Software, Inc Version 4.0 December 1991) \6 A' r# Z5 M9 S: D# Q
- ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,9 h! I4 t7 a! z4 Y
- ;;; use Flexicon menus
4 \- ]( {( M$ i. ^8 ~ - ;;;4 p0 J6 Q+ ?, z; l! V$ q
- ;;;--------------------------------------------------------------------------;! J6 i4 [/ s3 J& ]/ b0 ~' O+ Z0 e
- ;;; DESCRIPTION
. [) R, y) I( Q, T. U7 ^ - ;;; SSX.LSP
6 P3 H" T+ ]$ Z4 |, r - ;;; 8 K, u; y" ]( w H! d5 a, Z
- ;;; "(SSX)" - Easy SSGET filter routine. 0 [3 B) K- a; F$ Y/ f
- ;;;
" A3 x7 ^6 Z5 `. ^" N+ a4 N - ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt
( U/ s6 Y6 `' M+ p3 l9 V' K - ;;; to create a "previous" selection set or type "(SSX)" in response to
9 }% N" t/ O# B - ;;; any "Select objects:" prompt. You may use the functions "(A)" to add 8 R" C9 @5 U0 Z4 m0 R* Y$ R
- ;;; entities and "(R)" to remove entities from a selection set during ) |) c; I( N) ?' N8 U) ~+ ^9 I
- ;;; object selection. More than one filter criteria can be used at a
9 \# U6 g& Q2 `$ a - ;;; time.
8 |: ^3 a0 W9 Q7 t2 ~* K% [ - ;;; 4 l+ l7 Y2 X5 \7 K
- ;;; SSX returns a selection set either exactly like a selected% {8 S% m4 i2 c- X# v. o( m
- ;;; entity or, by adjusting the filter list, similar to it.: F; x, q8 h2 M; |6 \ i
- ;;;
R# T$ n% s" d s/ j8 n4 Z" j - ;;; The initial prompt is this:
; ?% {: D/ ?0 @4 y, X - ;;; 6 y3 n" R+ s0 p
- ;;; Command: ssx
- V! P1 l2 X6 b( Y% R" n) R/ T - ;;; Select object/<None>: (RETURN)
/ Y$ \! k$ X# M, V7 h* [* | - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: 2 u6 X, C- ?9 s) Z5 d
- ;;;
: W) u% S' _$ R$ p) m2 m- [ - ;;; Pressing RETURN at the initial prompt gives you a null selection ' @& P E; h7 [1 G
- ;;; mechanism just as (ssx) did in Release 10, but you may select an
( A( Y( ]' I& ?8 _ - ;;; entity if you desire. If you do so, then the list of valid types 3 ?( Z2 y2 {/ u( X. D
- ;;; allowed by (ssget "x") are presented on the command line.
! @2 p8 P& r+ ]: W& z5 i - ;;;
9 I/ D8 W7 y% |+ s0 c0 c: @" b( W - ;;; Select object/<None>: (a LINE selected)& ` ?8 }% |5 L
- ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0)) ; Q3 A( {5 I( e) \% ]
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: , B7 }5 a; u4 x% k/ V! O
- ;;;
9 k* n8 `( G5 i- J1 Y - ;;; At this point any of these filters may be removed by selecting the
) T6 {' r; x. O! i - ;;; option keyword, then pressing RETURN.
9 e+ v* c) r3 q - ;;;
! q5 W( n; C' R - ;;; >>Layer name to add/<RETURN to remove>: (RETURN)$ T& r4 {" f5 f9 c5 F
- ;;;
0 f: f7 y9 C8 D& m5 y - ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0)) x. @+ j9 C6 z' C5 u( c
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: ; Y3 \+ a3 O) i& D% _" ~6 z+ v
- ;;;
% s, S0 H7 D9 F4 C# x8 j - ;;; If an item exists in the filter list and you elect to add a new item,
5 p1 V. W1 ~8 w' M - ;;; the old value is overwritten by the new value, as you can have only
! W9 }7 C# z# Z! ?/ q1 b3 X - ;;; one of each type in a single (ssget "x") call.
6 E3 L/ `1 z) I1 q! {4 m - ;;;
: ~$ Z% m3 ?5 ^3 M y - ;;;--------------------------------------------------------------------------;( }# E: K: x3 x/ N
- ;;;" `2 ]2 _/ e0 L$ }
- ;;; Find the dotted pairs that are valid filters for ssget6 x$ z6 u# v! S Y
- ;;; in entity named "ent".
6 [* j8 N( H) b* b - ;;;; G5 v3 O( h& ^) q7 L
- ;;; ssx_fe == SSX_Find_Entity1 c6 P* q2 g e0 j' q
- ;;;
' H# ^( ^; L* G - (defun ssx_fe (/ x data fltr ent)5 t; L: L2 H% O5 v9 q- G
- (if (and (= flexvar 1)(/= t2 "Pick"))
% n8 w. p4 i. w: J8 }4 ]! _ - (setq ent nil)
+ U3 @5 K+ q, p9 S1 c3 E z - (setq ent (car (entsel "\nSelect object/<None>: ")))
' n) l; Y4 R! W2 g& j: Z2 Z - )6 P2 @5 e( R' G& M! P
- (if ent ]( J4 F& b# L1 O
- (progn
Z; E2 o0 k/ w9 p4 _) N8 A! @ - (setq data (entget ent)). Y# t- N- \4 B& U
- (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38
5 L5 R! [% T9 T& m: P - (if (assoc x data)
# ~. J C2 \, o1 h$ @ - (setq fltr
/ T b4 t1 n( H! l; b% h1 ^9 \ - (cons (assoc x data) fltr). J6 x/ M/ I) @4 y2 m& d% i9 P# T+ m
- )
/ y* R2 B5 T- d6 S. t - )) f4 |& R5 m; f: t( S0 A
- ) : r; @4 X+ I) V- d) }
- (reverse fltr)
+ z( S2 X- f3 ] - )
/ \; C* z) b. B* u - ) 7 j1 B! K& I3 T3 D! t
- )1 p& F7 Z' p& e* y/ H# o. d
- ;;;
% X) b- J. g. H8 Z: c( } - ;;; Remove "element" from "alist".
" Q4 ^1 A& L/ t) `% n6 q A- S+ g% z - ;;;
" f* u* b. A, F0 k - ;;; ssx_re == SSX_Remove_Element5 q8 B# I( t* A2 `: b# h
- ;;;
m1 p- a$ C! G3 D - (defun ssx_re (element alist)
0 _$ p0 h2 ^2 S6 H" ^ - (append
/ z( h; o) o' P" o - (reverse (cdr (member element (reverse alist))))
( D# V5 D' {" J, m- U4 v - (cdr (member element alist))
0 z0 Q% c& b+ N7 t x7 | - )
+ A. C9 U8 i; _9 j - )3 G6 T+ t' U0 B* c' U- |4 x
- ;;;
5 }5 c# q1 b9 h - ;;; INTERNAL ERROR HANDLER
8 r% h) n1 j' k! y+ L2 ]9 e' O7 L - ;;;; Q6 E9 U: y5 P
- (defun ssx_er (s) ; If an error (such as CTRL-C) occurs
5 X1 Q4 h8 D( j7 U, l2 P4 K# Q - ; while this command is active...6 _. k- N7 s9 M* x' b
- (if (/= s "Function cancelled")* g, i* I- [" i9 Z6 @- ?! w
- (princ (strcat "\nError: " s))
8 L& F0 @, y. W - )* [9 e! C; A. v: e) K6 L
- (if olderr (setq *error* olderr)) ; Restore old *error* handler, N" U: C4 F6 d
- (setq flexvar 0)8 t! h8 X& y: M$ z
- (princ), H6 V% w7 {8 F+ R" y! U
- )
$ f# b) M+ {% Z3 h& H5 M - ;;;: Q2 R. D9 l, S2 ?, W
- ;;; Flexicon call routine z) `4 X& g k, d: |
- ;;;
+ S3 J% M7 \& _% v' E - (defun flexmnu (a)
* Z8 U8 ~3 d1 p) m! L - (if (= flexvar 1)* H+ F; ]0 G' d
- (command "FLEXICON" (strcat "FLEX" a))$ R2 c5 ~3 S- K$ K% r
- )
0 \& u% K, t: g' Y - )6 F" u" ~$ u, g
- , R. u9 H9 U. Q
- ;;;
1 A4 P1 S1 t7 h% o+ e3 I - ;;; Get the filtered sel-set.' Z; S* w* ]$ `, J" p
- ;;;
4 {2 v$ G5 m/ T* t$ S - ;;;
H: |$ L, C& c& j - (defun ssx (/ olderr)
/ t9 R* N! k% N+ p4 H4 [! \ - (gc) ; close any sel-sets
) j6 A3 X; m6 Q$ ?) K, e - (setq olderr *error* ) H3 a7 Z0 l' T
- *error* ssx_er ; V [4 C: J0 W8 i' b1 |/ V
- )4 f. g! ]. e, b1 t; W5 a: i
- (setq fltr (ssx_fe))
3 _0 f9 V, d. D" O - (ssx_gf fltr) ( I. Z* I3 T" R. B( ^! t& ?2 W* x
- (if (= flexvar 1)+ t8 V9 x5 Z1 {' T B; A
- (progn! t& ~5 H* ]6 U, \9 s
- (prompt "\n \n \nNow select the required EDIT command and (P)revious.")
0 _! ~- v3 e t - (flexmnu "EDIT")
& Y. S# L' X3 w: R1 _3 A' y3 q - )/ r X; x1 @; ~! F
- (command "p")
, E0 A/ B9 Y9 k- D- t! m. V - )
- k' i. Q* P; R- w7 W) l9 a - (princ)
5 f4 k/ o2 t; p$ N& ? - )
/ `3 Z0 S. {: z: z7 S S - ;;; l. j: i& q3 Z# B( G
- ;;; Build the filter list up by picking, selecting an item to add,
5 u" O o7 s. N) f7 h5 | - ;;; or remove an item from the list by selecting it and pressing RETURN.
& P9 f1 H } f+ l9 ]- p8 U! M/ I - ;;;
|8 ?6 N+ n6 L2 ^: s - ;;; ssx_gf == SSX_Get_Filters. x* A8 P; X3 l# I! W2 }* M* p
- ;;;
: ]/ K2 F5 O4 s( U - (defun ssx_gf (f1 / t1 t2 t3 f1 f2)! p$ o, y' B% T W* N$ _) G
- (while 4 y+ ^6 p! ~* j! e# T6 J+ @
- (progn6 J8 D: x: N' O' ?
- (flexmnu "SSX")
/ i! W3 h) a: k$ A# [ - (cond (f1 (prompt "\nFilter: ") (prin1 f1)))
/ X# u3 S8 |, [& T! }, G) J - (initget
' n2 K! B u+ w - "Block Color Entity Flag LAyer LType Pick Style Thickness Vector")1 L0 R b- \6 z8 s5 h$ S
- (setq t1 (getkword (strcat
) D: X% Q3 T$ N) U8 y - "\n>>Block name/Color/Entity/Flag/"& R8 M; u6 X2 i4 b/ P8 n1 d
- "LAyer/LType/Pick/Style/Thickness/Vector: ")))
, p9 S% `! t/ @6 ^ l; E - )
- } A7 r# r% Q$ K - (setq t2
0 |& c5 ~) u" Z9 H1 C8 \' o8 Q - (cond
5 p$ `" X2 Z' k7 p1 z7 l6 t - ((eq t1 "Block") 2) ((eq t1 "Color") 62)
/ b+ q8 d/ I8 M& `) S" K - ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)$ { K5 T0 w4 x) ]' ]# M P
- ((eq t1 "LType") 6) ((eq t1 "Style") 7)/ X! y7 H2 Q/ C0 Z
- ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)
+ b. s% F: @- @ - ((eq t1 "Vector") 210)
1 O7 Y |$ M" k- y& T% e - (T t1)
" k3 R2 p* e B8 U! L' _ - ) C, N( e( a9 k& D) |6 I
- )
5 R, H+ [* ^/ ]1 G - (setq t3) I4 {7 ?5 T; B: s4 Z R; G: U
- (cond
6 G4 h' j" @1 k+ b$ N$ d - ((= t2 2)" u2 j& k2 K! X& V9 w6 g
- (if (= flexvar gtads 1)9 t' P* }4 \# }
- (progn
$ S& b# V( w7 M' \+ m - (prompt "\n>>Block name to add/<RETURN to remove>: ")9 @5 |) a3 h9 B3 p
- (gttable "BLOCK")- c4 x1 \, k W
- )5 R: D K9 _6 ^# T( P. A1 X# P
- (getstring "\n>>Block name to add/<RETURN to remove>: ")( n8 f6 m6 d, q) K! @! n- k! r& ~
- )
2 k, C8 O$ k" H% [' v! G$ j! e4 Q - )
& K8 R9 p3 P" p, F. h% q) w! } - ((= t2 62) (initget 4 "?")
- N- Z- @% z+ @( V - (cond
2 j! A2 _: v1 H - ((or (eq (setq t3 (getint
* c; I" m* ~$ ]- V# T* _0 C) I - "\n>>Color number to add/?/<RETURN to remove>: ")) "?")
. i* A. y! t5 o3 H. Y K8 } - (> t3 256))# {, @( }& t3 D4 b' |
- (ssx_pc) ; Print color values.
H! } \* |* @5 A) u( h - nil
4 m+ B. m3 N4 j: I( v - )
5 L1 S5 z( x! V4 m9 i+ e6 Q) d - (T# c( n$ p0 A* X) Q
- t3 ; Return t3.
" W8 k( ~7 e* _- u - )
! r- Q" n( ]: k1 C( ]1 g7 l3 P/ O - )1 M# Z) U% [: d% W; Z! D9 A2 |* |
- )' g3 J/ u, `- g) w
- ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))
; P+ |3 L% K* z4 ?! p - ((= t2 8)
" C$ V/ _# t* R7 s, ~6 X. B% h - (if (= flexvar gtads 1)( `0 k" L7 j) R3 | W* ]" I" J: o
- (progn
6 s0 t) ]! G+ X6 ?) `6 w# z - (prompt "\n>>Layer name to add/<RETURN to remove>: ")
% a5 g0 b! Z' n3 M4 ` - (gttable "LAYER")
V4 C w' U, y" }) x - )
: s! s7 t% x) s/ T | - (getstring "\n>>Layer name to add/<RETURN to remove>: ")
0 u. [$ c7 `* ~. b - ), G* e' E4 o% p% M- C: K) F
- )
\, c3 ?, F# V9 c% [2 S - ((= t2 6) , k. W5 @% d. \7 ]3 [4 v, i6 g
- (if (= flexvar gtads 1)
$ s* k8 V, R7 @* F; e - (progn
0 z) g9 s5 ]& n% k- U' F& y7 w3 p8 c - (prompt "\n>>Linetype name to add/<RETURN to remove>: ")5 [1 B6 d9 q# @# n, x0 c G' o
- (gttable "LTYPE")
' G- S6 ?- P! p [/ Y - )7 ^9 ~+ O5 O3 q! n, x$ I
- (getstring "\n>>Linetype name to add/<RETURN to remove>: ")
& i3 J% ]# }, S2 n6 M; _% u - )
% D. O0 D4 p, i0 p; A - )6 x" x. c0 m- C; ~8 {& l
- ((= t2 7) 9 M1 Z- P, s3 i/ ?* c z
- (if (= flexvar gtads 1)
2 P, K* `4 I! l- ]; j% w" ^. ^* I - (progn3 ?7 z% ^5 r& q! u. _, ^
- (prompt "\n>>Text style name to add/<RETURN to remove>: ")
( L6 r# e7 a- W" O - (gttable "STYLE")
3 A( u* S, \, @ - )
) Q% Y P* [! |8 D+ }' {* N - (getstring "\n>>Text style name to add/<RETURN to remove>: ")3 A/ X9 \" z. I- a
- )
4 m- c( K2 l$ e# a1 A. F - )
6 [! Z: D( e% J2 i - ((= t2 39)4 ]& V$ Q: \+ z& o x8 ~
- (prompt "\n>>Thickness to add/<RETURN to remove>: ")
1 Y; y0 P7 t; L: G - (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))
1 v. S+ H( s* P+ r, K6 y' [ - )
+ k# d! k. N) u. D" _ - ((= t2 66) (if (assoc 66 f1) nil 1))
9 f. T- m, w' w0 N3 F- U5 c - ((= t2 210)
! u% Z0 ~, t& M) o: R - (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")9 h. @1 u0 \3 E( R
- )
0 c' u5 J @! K - (T nil)
0 q( J* \4 X8 ]/ M$ B, w' f' a5 v$ b6 X - )# {+ R2 K* m5 i% \1 F
- )
, |* K+ [8 a. S& m; W) } - (cond
) v1 _' O6 Y! M/ a1 ] - ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity
3 w0 r2 ^8 \- m/ {: C, S# t - ((and f1 (assoc t2 f1)) ; already in the list
& @( ?5 ~4 X5 S0 Z# {; r# W" O( n - (if (and t3 (/= t3 ""))' r, H7 s8 J' D- z
- ;; Replace with a new value... : w: L- F! l, T& ~) ?" K7 }1 _0 z
- (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1)) 7 `$ {7 Q2 a S6 D2 P( ?
- ;; Remove it from filter list...
, E/ I" H- C% j& t; Z% X - (setq f1 (ssx_re (assoc t2 f1) f1))
7 D3 S4 c4 P9 s; N+ z0 q - ) 9 {0 y/ F& C( S" d2 j7 W
- )
g7 e& H' k! P j$ ] - ((and t3 (/= t3 ""))
( V( T. D6 x# ]2 w5 |1 I - (setq f1 (cons (cons t2 t3) f1))
- _" Z8 I, [, }6 ~9 s+ H" E" @ - ); j- t& u) O7 o7 L- h
- (T nil)
% X- g f* Q' M# Z- k' b - )( E' s S" Y7 O- {3 B1 ]
- )4 f% @. t* X- a# L* C5 H
- (if f1 (setq f2 (ssget "x" f1)))
D% i0 ?; x# ~: b/ A4 V, t - (setq *error* olderr)
8 M4 K+ b1 }8 f( C! w - (if (and f1 f2)
$ `# j, `6 v& ?; [" P8 \ - (progn+ H- d0 H7 a7 i% X; `
- (princ (strcat "\n" (itoa (sslength f2)) " found. "))
3 E1 }$ D/ Z5 _# X - f2 ' n6 R3 R2 G$ c
- )$ p' C# }8 P- C! W Q
- (progn (princ "\n0 found.") (prin1))
; d, | ~4 s; G! X6 w6 W' d - ); _3 J8 N: i6 k# I; H# h# {1 c
- )
# N/ ~( c$ S5 m8 B% H6 y3 p' Q' [ - ;;;
& q% C9 I- {. g: h+ x9 g - ;;; Print the standard color assignments.
/ H0 | v& n: @5 p2 l8 A - ;;;
! p6 k7 v: r* F, P5 \ u - ;;;
* i6 O# v# Q! Y M' |; X: J6 Y - (defun ssx_pc ()
" w; c3 x9 W9 ]$ S8 A ?5 L - (if textpage (textpage) (textscr)). _1 @6 D* `& R! c7 M, |
- (princ "\n ")8 Z5 s" j. o# T
- (princ "\n Color number | Standard meaning ")& l% k5 @- N Z' D
- (princ "\n ________________|____________________")
/ f* a9 r& F; x. W: B" x$ E% {0 k+ r - (princ "\n | ")( N _! w6 e$ q& A% G* k+ K/ J6 G
- (princ "\n 0 | <BYBLOCK> ")6 I; f) F9 \. v
- (princ "\n 1 | Red ")1 [! C1 s. c: g; N
- (princ "\n 2 | Yellow ")
8 t% N( _; R* y7 i6 s8 E6 v) { - (princ "\n 3 | Green ")
3 a9 t9 Q% d ^ - (princ "\n 4 | Cyan ")4 d! f b+ S5 Q( b# H
- (princ "\n 5 | Blue ")9 B. D5 T( ^* h+ m5 g
- (princ "\n 6 | Magenta ")* j! ~0 Q5 o8 _0 w
- (princ "\n 7 | White ")
/ _: a2 n& n& k8 b+ S% ` - (princ "\n 8...255 | -Varies- ")
+ ?% f: u4 {$ E: Q: H) ^ - (princ "\n 256 | <BYLAYER> ")
9 l# E) b( ^. V$ ] - (princ "\n \n\n\n")
7 u& D* }! P% g: {, k. M% X* E8 [% I - )0 [: u; X$ f# ]. W
- ;;;3 e( d0 p; ~- @
- ;;; C: function definition.; h# O, ^) h m' d% m S; S
- ;;;
. t) i- L2 E1 ^* y - (defun c:ssx () (ssx)(princ))
& n0 f* j9 X* o0 y+ b7 g - (princ "\n\tType \"ssx\" at a Command: prompt or ")
5 e" n! n5 S) C1 W( K - (princ "\n\t(ssx) at any object selection prompt. ")0 d4 o4 W* P/ s4 ?# I. y
- (princ)
9 ]- U2 k6 o" p% a - 6 i$ E# E" u( P; P
- ;;;--------------------------------------------------------------------------;
# i* J; M4 w* \5 V - ;;;--------------------------------------------------------------------------;
- W; W9 Z: r9 B- p - ;;;--------------------------------------------------------------------------;
: V8 h/ u( e/ e4 E - (defun S::STARTUP ()
+ P. M$ g+ ~ Q$ [& q$ O) i- N - (setvar "cmdecho" 0)
1 J* S9 ?/ P/ x1 J& O - (setvar "cmdecho" 1)
" _! k( t- p1 T, M) W0 m. @ - (setvar "LTSCALE" 10)
' R* N4 {# ~, I) X0 C6 a6 a& [ - 6 k2 r- h* @* V
- ;(command "_load" "chenKH.fas")
; b- y f# L6 J5 f2 K& v - ;(command "_load" "ctcot.fas")
. U% [* A7 P+ k# x4 c0 T - ;(command "_load" "damdoc.fas")
: n* A$ i* t9 ^' C0 j1 J* a - ;(command "_load" "ghichu.fas")5 A' I* m$ r0 W, s- g V/ l
- ;(command "_load" "hamtutao.lsp")
; Z4 O; X7 l9 T8 a! H - ;(command "_load" "KHOITAO.fas")8 ~' B; }6 Y: B# T
- ;(command "_load" "KHthep.fas")
3 k/ U; i$ p* [- ~3 ]- m - ;(command "_load" "mbmong.dcl")6 i" T1 \7 a5 c5 P b
- ;(command "_load" "mbmong.fas")
0 g. S" ]% Z) O4 u9 A& n0 m) Z6 ]% M" D - ;(command "_load" "mccot.fas")
# o# v" a" z9 t+ [$ c9 K* C5 ` - ;(command "_load" "mcdam.fas")
) E* u5 {0 O% J! H: \ - ;(command "_load" "mcmong1.dcl")
! b5 k6 q+ ~- J8 [# y8 A - ;(command "_load" "mcmong1.fas") L; }' c- V+ B* a9 @0 a
- ;(command "_load" "mcmong2.dcl")
1 P+ _. a5 J6 E3 ]5 a$ b3 @ - ;(command "_load" "mcmong2.fas")* ]1 A$ U2 U" g: u" M5 C
- ;(command "_load" "mcmong3.dcl")
# @' B# V( U) ] _% q8 b# ?+ F - ;(command "_load" "mcmong3.fas")9 H5 D$ s& c% D$ \
- ;(command "_load" "mcsan.fas")
& d- ^9 u3 D, O8 P* s - ;(command "_load" "thepdai.fas")
& a5 Q8 d$ q- z2 e: h- s1 p; N - ;(command "_load" "thepdoc.fas")
& I9 O# u9 L1 j- R% Z n& @ - ;(command "_load" "thepmb.fas"); B6 [ ~$ n7 T! v
- ;(command "_load" "thepphbo.fas")6 I, n4 q( G1 L$ o" v
- (command "_script" "thongso.scr")
/ j# s8 _: F$ ]. w: _1 m6 E - ;(command "_load" "thongso1.dcl")
\( ?3 ^. B1 h' p3 b1 X2 t - ;(command "_load" "thongso1.fas"); D' W% ^4 y8 Q) D8 h
- ;(command "_load" "thongso2.dcl")
( C) w4 P: \8 q6 k - ;(command "_load" "thongso2.fas")1 k8 {! F( S) s2 q7 q/ Q5 s9 A
- ;(command "_load" "tietdien.fas")" P1 W! D2 i I3 M1 |+ N2 i6 z
- ;(command "_load" "vehan.fas")
$ N+ t# W0 H' m - (command "_load" "phamDuy782006_TKT.lsp")& ~# Q$ F9 `0 r+ X& o1 k4 d
- (command "_load" "phamduy782006ganhtd.lsp")0 g0 C8 n0 l3 p+ s( w
- (command "_load" "phamduy782006ganhtds.lsp")/ b d) o/ z# a( y2 b1 G
- (command "_load" "phamduy782006htd.dcl")
( [. ]. i6 \$ }0 g" g - (princ)1 n7 A O+ P! }6 I
- )
# e% i& ?) y; O4 W2 U% g7 G - 6 B! Q y$ C2 J0 N1 e/ M9 L' `
- ;; Silent load.
+ s7 a% F; L; p1 S, {/ S - (princ)& U3 N( ]. K" O' R1 m& u2 C0 C3 n
- 7 `6 x7 E @7 b$ W% z( j/ m) ]
- . m; ?1 w( `; q7 N
- ;; Silent load for the Express Tools.
, J0 a& }; ^% n4 a- D5 ~ - ;; Altering this line will affect Express Tools functionality
; J8 y4 u' }+ g$ M) ^ - (load "acettest.fas" (princ))4 z$ M( y% o- j6 c" F
- �32
Sao chép mã
# g P! g0 o q- M* N00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ
; o8 K# ~) A0 e, X |
|