|
|
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 |
- ********************************************************************************8 C4 |: W# |* }& N/ R7 @
- * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *4 b4 a- o8 s7 A3 e k
- * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 * u- V+ ^4 J/ ~5 I
- * Suu tam & Soan *& K. a. m' c& C! U* x9 y
- ********************************************************************************' H/ I; Y3 n/ | c* J; K
1 S9 A* F/ Q. V- ; Next available MSG number is 104" T+ m( E) S+ M# R& o- O
- ; MODULE_ID ACAD2000doc_LSP_0 T4 M* V Y: v* N
- ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 2000- C" G, ^& K% }+ t
- ;;;
! y R: O: f2 B/ p - ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.
% ?, T) {" g& R$ B* B5 z4 { - ;;;
7 b p+ T ?. ]' ?4 J - ;;; Permission to use, copy, modify, and distribute this software0 S* o! U$ ~7 j, U" h
- ;;; for any purpose and without fee is hereby granted, provided' D+ A0 g/ ^# k5 p( J$ s; S# ^% @
- ;;; that the above copyright notice appears in all copies and! H) X9 g' F" o; y
- ;;; that both that copyright notice and the limited warranty and
" {) g, l& g, C% E. u - ;;; restricted rights notice below appear in all supporting3 s4 m) o: z& J. u+ f
- ;;; documentation.
5 V( I7 s1 u1 c% F3 Z0 W0 ]) b: a$ B - ;;;
1 h5 G$ L5 S0 [" d6 C' D9 M2 d1 | - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS." V3 {3 g) }1 T6 y
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF0 Q7 n9 d( \: R' h1 r
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.0 ~% g) I9 z5 G4 S' G8 s6 s& n5 e
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE+ D# p2 I( m1 j2 Z; m5 `+ Y
- ;;; UNINTERRUPTED OR ERROR FREE., g5 f- @2 ?3 ~
- ;;;- A2 O3 X$ G6 }* J) n2 y! g8 V. O
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to" J6 v& _$ f" g& o5 m( s" ~6 [
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer0 {5 @" ?! n5 i3 S( E1 Q
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) ' |) x* L" E/ L0 q/ g
- ;;; (Rights in Technical Data and Computer Software), as applicable. r7 C3 T+ N6 B, p* `/ k
- ;;;
* R0 W( N+ ~& x- o6 U0 a: J. c - ;;;.4 A- v" d4 h# [5 b4 i$ [
- ;;;/ \; F5 z" d6 z! U1 E# ?4 d
- ;;; Note:
0 \) f( M; t( f! N* o0 M. { - ;;; This file is loaded automatically by AutoCAD every time
- V+ L. Y; r+ |2 [, _5 @0 Q1 @, o - ;;; a drawing is opened. It establishes an autoloader and! j( h8 t. \ |
- ;;; other utility functions.
2 s- x* k C- P - ;;;
0 F) s( B* ~! J - ;;; Globalization Note: + [: t/ o/ C/ l+ N' ~
- ;;; We do not support autoloading applications by the native
0 z: {: G2 [6 [8 V - ;;; language command call (e.g. with the leading underscore
6 S! E7 D' u" x7 ?/ v - ;;; mechanism.)+ F0 K! P, b0 X% Y
/ }. L7 u. R& u$ E
4 |! \1 u$ X3 J( Y- ;;;===== Raster Image Support for Clipboard Paste Special =====8 f5 k3 O* S+ _. `$ C" j' d# @
- ;;
3 y. @, m6 P5 x, ^( V! w; P, c1 L3 E, c+ {8 R - ;; IMAGEFILE
) n/ h( V' Z" P i - ;;
( M5 `# @5 G' D8 A - ;; Allow the IMAGE command to accept an image file name without
: m9 q2 Z' a8 x* O: P! l- M- r, ^5 m - ;; presenting the file dialog, even if filedia is on.1 x, g1 l; _1 n
- ;; Example: (imagefile "c:/images/house.bmp")0 m: l0 Q# i7 [; e4 B/ ]% w7 Q
- ;;
! u9 m+ {: n' t+ h - (defun imagefile (filename / filedia-save cmdecho-save)+ ]$ [2 H2 }; j+ u( z, b" y+ f; o. g
- (setq filedia-save (getvar "FILEDIA"))
0 J) |9 p% i' N0 z - (setq cmdecho-save (getvar "CMDECHO")). z% S, }5 \" @. P3 u/ ]: K" [
- (setvar "FILEDIA" 0)1 G- b1 p" h! r+ O6 u8 K
- (setvar "CMDECHO" 0)) i$ E) ?- C$ t1 t: \2 L
- (command "_.-image" "_attach" filename)) t/ k+ L9 G% ?* y
- (setvar "FILEDIA" filedia-save)& G: \' b! K+ ~' t8 `, a7 c
- (setvar "CMDECHO" cmdecho-save)
: a. j) K" Q- {& h. V6 ^+ d - (princ)
+ {8 \6 {( Z6 T5 C - )4 v# {& A {& k, z8 e
; ?- Y6 ^. D1 ^% i9 W2 s, i- (defun c:zx () (command "zoom" ".5x"))
1 m% |# p7 s! ^5 X. Z& s3 ~/ A; g& ~ - (defun c:zz () (command "zoom" "p"))
6 N X. c R* R1 K7 h - (defun c:za () (command "zoom" "a"))
6 J) u* e8 @: a* u9 B' l - (defun c:zd () (command "zoom" "d"))
/ R9 J- f g* I. f A - (defun c:ze () (command "zoom" "e"))
9 z+ K8 @! k. E( u - (defun c:zr () (command "zoom" "" ""))
% Y5 Y. m) C! q9 j* S. A - (defun c:vv () (command "ucs" "v"))
8 `0 l' ^7 j3 m2 K - (defun c:co () (ssget) (command "copy" "p" "" "m"))
8 @) O/ q7 ^$ k, a/ A - (defun c:c () (command "circle"))
9 o) Z7 d e, x- `# T! ]; y/ E1 @! M - (defun c:rt () (command "rotate"))
( ~4 E$ r& Z0 z4 x) L2 q - (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))) ?$ I; D p X- O
- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))5 E% h" U4 G+ t s" \% N
- (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
0 H6 Z0 |1 k+ ?2 v o1 ]' ? - (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
! N# ^/ y$ O' Y3 Z. n8 `7 q; k+ I - (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))( A, u$ ], S% \$ s
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))
6 n- N9 B* s: i - (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))- H9 B) a) ~! U
- (defun c:90 () (ssget) (command "rotate" "p" "" pause "90")): e/ B* `5 b, z$ H
- (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
. j/ I; }8 p' p! p2 t, B3 j - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))8 n+ D1 M8 i9 j* M3 q( G/ h
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))) W+ y, k( v/ f2 W
- (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y"))
6 z4 H- I. u8 I' v - (defun c:fd () (command "find" "p" "" )(princ))(princ)6 D7 x/ E7 d/ ]( s
- 6 N" S! S, v( T- C8 y) n$ `1 e
- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)
6 W& L& D6 ]2 q2 s9 n$ {/ d - (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)
( a5 {3 C; o# R; _0 S I - (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ); k% Y! s- y V/ G' N; j4 J
- (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ)
: X* R6 C7 U' z0 K! p - (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))
! u$ L+ D1 n3 }: F! C/ x1 w - (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n"))2 ]; ]/ L" R0 f- \: Y3 o# }+ P2 {. K0 V
- (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n"))
6 L7 k& T3 h/ W. l
; u/ S& G8 A, I o$ x4 r- s- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))6 U7 l( w! B. P$ J
- (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))
. t" z% f2 [$ ]; ]$ D/ ^( Y- A - (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))) c8 s* T# ?3 Q
- (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n"))' J" ]6 c0 i7 g& B
- (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n"))
! U* g1 ~. }# e( ? - (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))
3 y0 Y( Y# h. m) o/ p: n
. g; k6 ?6 H# p/ Y8 w9 i1 j+ m- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file3 B8 t# L4 F9 n6 r. G) I4 z
- ) @: i" ?3 w! }! `: N
- ;free lisp by cadviet,cd2k44% b3 Y) k7 t7 a( c
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538307 o, W e: y9 |+ L# L* d; ^
- (defun c:FTEXT (/ ent tstyle ), W% d* V7 c& u \( e
- (command "undo" "be")" T( |4 x K' S. f
- (setq ent (entsel "\n Pick text :"))1 s- Y& a* O' @, D
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
/ Y6 k2 O! t, S - (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")# B. ^0 ]2 I1 ], d# A2 J1 m, F
- (setvar "TEXTSTYLE" Tstyle)8 O3 M$ R( X7 T$ g& a
- (command "undo" "end")
7 T% o: U8 _* o% f9 u3 k - )1 M! |$ o, M; {3 C7 X# [2 | G; O
- ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)( |) z1 Z/ o9 s; G. a3 k# c4 a
- 5 \% J0 |% A1 V: b+ P, I* \. r
- ;free lisp by cadviet,cd2k44
1 f; k7 g" ^; G0 Z4 g; x - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
, z9 \$ x: c, |4 q - (defun c:Fvnh (/ ent tstyle )% W$ _4 u. O, u& W- r. `, s6 k' b
- (command "undo" "be")
, m7 h5 f. h s0 G+ F - (setq ent (entsel "\n Pick text :"))
+ G$ H! p8 ^, ~( j% P - (setq TSTYLE (cdr (assoc 7 (entget (car ent))))). q' N! b! U; Q2 V
- (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
2 Y v1 D& _$ Q& f - (setvar "TEXTSTYLE" Tstyle)
/ y2 i( o) p1 ]- W$ R - (command "undo" "end")
3 W b" Q+ ]6 o& m - )
( P6 C) K7 M, T3 ]9 T, U0 i+ S: e
6 n" U; B6 `, V1 a: V' K- ;free lisp by cadviet,cd2k44
3 @& T |4 U D9 K s0 j' M: v( u - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
' r- B4 a% Q6 i3 ]6 N1 h8 i - (defun c:Chbg (/ ent tstyle )
. p$ K! v8 k& \6 U/ B# b6 I% a+ e1 T - (command "undo" "be")% j6 V& ~ c& x/ d: c
- (setq ent (entsel "\n Pick text :"))
' t' P3 y: ~4 h8 y* I - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))% q& d6 V3 L0 f c3 N
- (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
7 E: Z) B. @1 S$ N - (setvar "TEXTSTYLE" Tstyle)
+ \& S1 o: r5 @# l/ e6 t - (command "undo" "end")3 l0 y2 V0 j& @# a7 I) V6 v
- )
. F8 L) F+ I+ O4 O! N9 d; v5 J - 0 q6 j( i. Y Q1 m: p0 x' ]3 k
- ;free lisp by cadviet,cd2k44
, f/ A! T! `, J& G, P- Y) P+ s - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830* l$ p1 H& B' L" g% A" i5 g8 Q
- (defun c:Chsm (/ ent tstyle )+ ]; H9 I2 [9 T: r$ ~ X0 o% b
- (command "undo" "be")" h9 s4 v/ D4 S& {4 f/ q3 `1 M- O
- (setq ent (entsel "\n Pick text :"))
1 T; q' _( Z8 \8 F5 U6 j - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))3 E7 ]& D$ _+ u) {6 I( W( X
- (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
. T/ h2 V' z% K: L& } - (setvar "TEXTSTYLE" Tstyle)
9 z8 _- S' Q6 @1 H$ R1 ` - (command "undo" "end"). `7 R" p+ R6 ^0 Z) h4 |* v
- )
/ G* o( n/ m0 U O9 _( R! {) Z - / a, y: }2 c3 \
- ;free lisp by cadviet,cd2k44. `4 _# }9 q0 f) l! l. m8 _
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
5 W( f v2 D: Z - (defun c:Fttf (/ ent tstyle )4 @' v) ~( w" P4 P, `2 R) o! Y$ d/ O
- (command "undo" "be")1 q* Q5 e7 h, m/ h. a' w% _/ O' v' d
- (setq ent (entsel "\n Pick text :"))1 O- w: f8 W- U6 r
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
) Y- r" b& y! J; c/ M3 x8 s - (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n")
- z4 \9 E [6 a1 N7 r& o - (setvar "TEXTSTYLE" Tstyle): @5 m& j; l! [# j5 \+ ~+ D3 @ v
- (command "undo" "end")
$ c- T# C% u- g0 N1 Z8 _. L' P7 n' A - )4 F D6 f' k1 g
- ( v( Y1 y9 L0 @6 c5 s/ P
- ;;; ============================================9 Y$ y9 x3 w: m# ~6 }2 r
- ;;;* c3 G P7 N% _" r
- ;;; LISP Creater Tao Duong Dan AUTOCAD2000/ z" H E0 w' n5 M" {( Q% G
- ;;;
7 n9 k+ o v5 [3 o- ]( a' n! L7 o3 z% W - ;;; ============================================1 s' O6 b- a, |, x: j& x
$ z6 G) _0 a' m( r- ;;; ============================================
. r5 T F9 h% I! L( }2 d* x - ;;;9 }( v' X# @5 P
- ;;; CREATING FROM AUTOCAD2000
6 b2 D1 o- X6 o z u$ U5 I- F) A - ;;;
* ?8 Q7 M N% H) e' M: O' V - ;;; ============================================1 N' C6 j7 ^0 ?* R; y# o
- ! G# J" s7 ^2 ]* j5 M) U2 ]
- (setvar "INSUNITS"4)
+ g8 T3 y" Z& |& f5 h - (setvar "ANGBASE"0)
- b, e5 W, c4 p! @ - (setvar "ANGDIR"0)
9 G5 d' E4 K, Y. | - (setvar "AUNITS"0)! k- `* T) F5 k
- (setvar "AUPREC"8)" A% ]. d0 |/ h% t3 G$ J% ^0 ?
- (setvar "LUNITS"2)5 N7 H% e: M2 \0 P5 B8 [
- (setvar "LUPREC"8)
- H8 t( ~( x" q4 J - (setvar "ACADLSPASDOC"1)
7 }: L( h+ B, r, u( q+ M; W9 M - (setvar "pickbox"5)! i1 b( H8 B6 x6 k
- (setvar "blipmode"0)) h2 L2 E* ^/ A- ~ G& Y) W4 y
- (setvar "mirrtext"0)2 @) n }1 H" h3 b
- (setvar "cursorsize"100) \! M6 S* U( C: G) k6 r; W
- (setvar "ZOOMFACTOR"75)
! O- r/ m& [+ ^ - (setvar "LTSCALE" 10)+ x2 ]1 k1 a: H& c3 }* u+ x) Z9 B* g' @
- (setvar "lwunits"1)
8 M, g/ }# t( N: X8 q% E k8 Q - (setvar "DIMBLK" "Closed")
' u. Q2 o( x- S - (setvar "DIMGAP"0.0693)0 {7 v. J) [( ?
- (setvar "DIMASZ"0.20)
; V4 N& s$ }6 J( G1 f - (setvar "DIMCEN"0.2)
: Q" L/ P+ u2 K* Q/ L% k }9 w6 z+ C - (setvar "DIMDLI"0.1)
) W1 Z' ~& m3 u: |7 t( q - (setvar "DIMEXE"0.0693)) S: P, \- Z: Q! t; M% V( g% S: m
- (setvar "DIMEXO"0.25)
5 W, U$ d6 ?9 t/ t - (setvar "DIMDEC"0)
- f' g3 N: k3 x - (setvar "DIMTIX" 1); u+ p! O7 m% {, |; O( J
- (setvar "DIMTXT" 0.099)# a9 j5 v6 a% S ?+ ]
- (setvar "DIMCLRT" 7)- g9 b* o. S) B8 z4 b+ n
- (setvar "DIMTVP" 1): \* S' v. _; [- x
- (setvar "DIMJUST" 0)
% y% W/ \$ t7 f- V) U% ^ - (setvar "DIMTIH" 0)
0 f/ L5 \8 q" }' ~' e - (setvar "DIMTOFL" 1)
- ^+ W- |; M) `, N - (setvar "DIMSCALE" 1111.1111)4 Z! d9 P5 m! a' N; B% C
0 \- r- J- n: m9 ?% t5 R- ' d" M/ C1 u% B4 S; g" G
- 6 [( R' H! q0 o8 x
- (defun c:zp () (command "'.zoom" "p"))2 C& v0 y `+ N* x
- (defun c:zz () (command "'.zoom" "p"))% }" e2 r/ Q9 a* B+ ^9 x! y
- (defun c:ze () (command "'.zoom" "e"))
# N. E. G# j! l' u - (defun c:za () (command "'.zoom" "a"))
& }9 n0 n- w" @2 z6 V$ | - (defun c:zd () (command "'.zoom" "d"))0 @/ [: v: H4 L
- (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))% \. ~. Z& n/ R" n
- (DEFUN C:ZX () (COMMAND "ZOOM" "2X"))
) \3 N% l! s4 S" K% z7 J - (defun c:de () (command "ddedit")(princ))% P: \" X- m% i4 Z# U5 S, X
- (defun c:dda () (command "Dimaligned"))
: T" ], n7 L+ R2 {# _ - (defun c:ddb () (command "Dimabaseline"))
! C& W) M" f% ]. k - (defun c:ddc () (command "Dimcontinue"))
% ]/ f4 l* U3 H# z+ Q* Q - (defun c:dde () (command "Dimtedit")). b: l( C) k+ C1 J" X
- (defun c:ddf () (command "Ddattdef"))/ z( F, a8 \+ q! k1 B, X$ N
- (defun c:ddi () (command "Dimdiameter"))
8 r+ D" F5 R/ X S - (defun c:ddl () (command "Dimlinear"))$ A. _( z1 {0 N, H
- (defun c:ddn () (command "Dimangular")). P( w' X% ]) [6 R p1 o7 D# q2 G
- (defun c:ddo () (command "Dimordinate"))8 f4 @0 J/ K' K" F/ L
- (defun c:ddr () (command "Dimradius"))
3 T( z7 P8 ]8 F% V$ x5 i7 f6 Q - (defun c:dds () (command "Dimstyle"))$ W& x$ h. ?3 U/ Y
7 y, k; ]3 `8 ~- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ)3 g/ ?6 r5 z5 g, s1 _3 N7 E
- (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ)
) l. I+ f& j3 t5 b" h# O: C - (defun c:UU () (command "dim1""update""all"))
) Y6 O& E6 X: r& D+ e - (defun c:ded() (command "dim1""tedit"))
, h) y! q) P' [( J - (defun c:da () (command "dim1""ali"))3 R/ Y# E( i5 o( }7 y" o
- (defun c:dll() (command "dim1""l"))" l. `0 b/ l: t
- (defun c:dan() (command "dim1""an"))
- ^5 O4 G O5 T3 Q: @ - (defun c:d1 () (command "dim1""ra"))
- |7 ~! W5 S% A' [! V, K: k - (defun c:n () (command "dim1""new"))
, o$ ^# v) ?% m
5 z, D1 P: f+ C- (DEFUN C:PE () (COMMAND "PEDIT"))
. b4 a6 j- i3 N U' O6 _" X v - (DEFUN C:PL () (COMMAND "PLINE")). a* z6 F6 C4 v% a: k* h9 m9 I
- (defun c:dd () (command "dist")(princ))
. r2 N. r) ~, ]3 q - (defun c:w () (command "pedit" pause "w" "au")(princ))
1 [3 Z" F1 r) u' q& r/ A - (defun c:pg () (command "polygon" "polygon"))9 |% s0 h/ I( ^' s
- (defun c:el () (command "ellipse"))
4 n5 g% V) W H1 I2 s8 @" n - (defun c:xe () (command "explode"))6 {" c$ `1 r7 J+ f5 E% A
- (defun c:eex () (command "extrude"))
4 z0 F- _7 Z7 P" M0 H o - (defun c:xg () (command "xline""a"))
( y/ \* Y' k6 Z, }/ S5 W1 v! B* ^ - (defun c:xh () (command "xline""h"))
/ i- j( m% @& `" k+ h - (defun c:xv () (command "xline""v"))
6 S8 E0 }& H* h6 H - / ^2 b! f! C$ E3 i0 H
- (defun c:oc () (command "osnap""cen"))- [* z( y1 w+ ?3 B* n
- (defun c:od () (command "osnap""nod"))
7 v; ^. t+ X/ K) w9 K) Z - (defun c:oe () (command "osnap""end"))
/ k! p2 Q, R' C( e$ G - (defun c:oi () (command "osnap""int"))
n! G! j4 F1 B2 }9 o - (defun c:or () (command "osnap""per"))
. k) X0 r1 T% ~- d/ h$ R7 n0 S - (defun c:on () (command "osnap""none")): l; `/ K6 M5 U* S/ e
- (defun c:oq () (command "osnap""qua"))& |8 a# H* u: |, O& [
- (defun c:om () (command "osnap""mid"))
& Y7 n' X* J7 X. h0 C- M3 h - (defun c:ot () (command "osnap""tan"))
S# }% [" c4 b" S2 g$ E - (defun c:oin () (command "osnap""ins"))" G1 s7 r2 P" E
- (defun c:oa () (command "osnap""nea"))
1 p3 G% B$ F' T8 ~2 n1 O# K - (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))7 e7 K* _- P# m5 }; W
- ;(defun c:du () (command "dim1" "up" "s" "pick" "other"))
4 n/ k( \) c* z) q' @ - ;(defun c:nn () (command "new" "y" ))* }( i* T' |/ @% ^
7 ^1 Y/ ]+ T: i1 M: }- (defun c:/ () (command "limits")). s6 u& b- g7 H; P( X s
- (defun c:`1 () (command "region"))2 ]) w% O J9 s* K9 d, K
- (defun c:`2 () (command "subtract"))/ A+ ^7 N" m9 S) N8 _1 n) w; j
- (defun c:`3 () (command "union"))" y- g( B7 D8 C9 |: g
- (defun c:`4 () (command "intersect"))
) X) N3 k) ^+ [$ a, i2 | - (defun c:`c () (command "cal"))
+ u: M1 O8 {5 B2 ?. z* s - (defun c:`g () (command "Polygon")): t. f1 g" [0 u, X. _
- 1 p; X" v( S- v% O1 C' M8 A
- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))
. m, f5 `: r; T, U7 Z - (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ))
+ W+ x, u6 W! j) H. j* n5 K. i* u - (defun c:ip () (ssget) (command "print,_plot" ))(princ); i) Q7 T% f4 p! K+ ^4 N
" d0 G8 F0 n7 ]# h- (defun c:ddm () (command "ddlmodes" pause))+ j7 d3 c5 h7 Q7 Z6 ?( D" ?
- . I, C; ~- l. k
- (defun c:sha () (command "shade" pause))
) a! Y8 T6 I/ ? - , N9 C7 ?4 w7 t& ~, P
- (defun c:sr1 () (command "surftab1" "p" "" pause))
/ H1 H/ A/ G3 s7 n9 d: l - (defun c:sr2 () (command "surftab2" "p" "" pause))" B1 C" I' a6 P
- + `" b/ F$ X4 a1 _; H8 V- o
- (defun c:ad () (command "audit""y"))2 T9 P: S# a, [0 |. h" g6 @3 j
- (defun c:q () (command "quit"))
6 G9 Z2 [* F8 j% } L$ G5 b
( F% g: V! k& L6 u# ?; t) E- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
: E1 d+ u( ~: ?5 a; T/ x& N - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
* l3 e! r! g' j, ^; F' q& W - (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))' U. K- n4 s/ r2 E
- (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))
$ W* s1 @, b% q3 Z5 l- P. W* m - (defun c:60 () (ssget) (command "rotate" "p" "" pause "60")), w6 G9 j. i1 a- Y4 e. R8 I5 _% n
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))2 m6 K# ^$ c# n6 X( D$ y& P3 }
- (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
]: O+ a$ P& v0 U* \! k - (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))/ X/ v/ f+ L1 L' Y# [
- (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
- \3 S1 l; w* F; `0 w% s7 _ - & E; y/ Z# E" p4 ~, _% v3 J
- (defun c:u3 () (command "ucs""3"))
# ~" Z( g5 ~3 z - (defun c:ue () (command "ucs""o""end"))
$ b$ g+ n2 Z9 q; s @# y4 i g1 u' C - (defun c:ui () (command "ucs""o""int")): r; ~+ h+ w; p" n. ?/ @2 s
- (defun c:um () (command "ucs""o""mid"))
( k4 C, m( E" M1 m - (defun c:uc () (command "ucs""o""cen"))
' K9 I6 ~& ?; d- `$ [2 P - (defun c:uq () (command "ucs""o""qua"))" d2 r# @. i2 r. d
- (defun c:3s () (command "ucs""3"))
% C6 l- e0 K/ v5 Y - (defun c:sx () (command "ucs""s"))4 R8 q9 Y4 A5 f6 m
- (defun c:sf () (command "ucs""o")) \2 B) `6 U2 A$ Z% b6 l% F5 S
- (defun c:sz () (command "ucs""p")): _: i, q! h! G5 w8 [) m
- (defun c:sr () (command "ucs""r"))
1 B" b) U0 u) j1 _. d - (defun c:sw () (command "ucs""w"))
: s$ g' ~5 m+ H9 X% R - (defun c:fv () (command "ucs""v"))
1 H/ p2 e: S7 [ - (defun c:ux () (command "ucs""x"))
" R) ]" C, ~4 V5 z - (defun c:uux () (command "ucs""x""90"))
* x& d4 Z5 \9 c/ \8 Z) _4 J0 e - (defun c:xxu () (command "ucs""x""-90"))
6 E G2 a p Y8 @5 K3 P# L - (defun c:uy () (command "ucs""y"))
# N% x& m. t5 m: D - (defun c:uuy () (command "ucs""y""90"))
U+ Y/ ]# s, L1 a( r+ Y - (defun c:yyu () (command "ucs""y""-90"))
) e: i: f) h* y# A - (defun c:uz () (command "ucs""z"))
7 z3 U( x& J y: _ - (defun c:uuz () (command "ucs""z""90")): Y6 n/ ^6 i" W- I$ D7 i6 v
- (defun c:zzu () (command "ucs""z""-90"))* [/ `& \7 L1 ~% \, J
- (defun c:uci () (command "ucsicon" "Properties" ))(princ)* x8 j0 t6 k0 }" Q4 {8 `5 L
- (defun c:ucm () (command "ucsman" ))(princ) n4 _1 z, `2 u
- r& D* e* l+ P$ }
- (defun c:sa () (command "vpoint""_non""-1,-1,1"))
" c' p, O6 M8 [4 D - (defun c:sd () (command "vpoint""_non""1,-1,1"))
7 w1 P+ c" f% @( s/ M4 e5 b5 N% Z - (defun c:se () (command "vpoint""_non""1,1,1"))
( |3 x ~: R. M% D) v - (defun c:sq () (command "vpoint""_non""-1,1,1")): m( v. Y& n' b* \+ P2 g% ~9 c
- (defun c:vc () (command "plan"""))2 h8 O" N& O+ S$ @
- (defun c:vd () (command "dview""all"))
5 I: R5 C& m1 O' ]1 X
' _2 q9 v" ~! O8 T: i; d0 `* r# G- (defun c:TT0 () (command "tilemode""0"))
# a/ D: L9 U% L' b! k( u3 }" r - (defun c:TT1 () (command "tilemode""1"))
: ?- ~. Y6 Y" p# e2 T, X: k - 0 p7 ~7 t% C9 h% }1 q2 b# A) b
- (defun c:vt () (command "vpoint""_non""0,0,1"))
3 Z Q, P6 c1 V3 @- W - (defun c:vb () (command "vpoint""_non""0,0,-1"))
. K" r. T6 L7 q4 y1 F6 h) i( V' F5 ` - (defun c:vl () (command "vpoint""_non""-1,0,0"))
8 F) p4 g! |, @+ ~8 C - (defun c:vr () (command "vpoint""_non""1,0,0")). F" N! ^3 o+ |" B
- (defun c:vf () (command "vpoint""_non""0,-1,0"))4 f- \ J+ ?" S+ L; Y$ S
- (defun c:vk () (command "vpoint""_non""0,1,0"))
, n9 {# f: Y+ S5 ]
, M' r- @/ d* k4 K, h1 P# [+ i9 v6 ^- (DEFUN C:MM () (COMMAND "MIRROR"))$ B |8 Q$ B, @1 E$ b$ m$ o% b
- (DEFUN C:MP () (COMMAND "MOVE" "P")); g/ j" z S0 z& T( W
7 ?1 O, r( q- `9 R% D- (defun c:mee (/ a)
2 |) z$ k4 S9 c) k2 J* H - (setq a (ssget))(command "move"a"""end"pause"end"))
1 }9 A# D$ \5 }& `' R. ~& u% C - (defun c:mc (/ a)
4 Q5 N4 I( I2 m5 ] - (setq a (ssget))(command "move"a"""cen"pause"cen"))0 c' t- F6 g) i$ w, p4 n. u) @
- (defun c:cc (/ a)
0 i& n7 S0 `, }8 t2 L - (setq a (ssget))(command "copy"a"""m"))! Y X5 g( f, o1 v. U' z. b% j
- (defun c:ce (/ a). O9 t" g6 J. j/ K
- (setq a (ssget))(command "copy"a"""m""end"pause"end"))
% p( Z( d' }4 g0 x1 \ - (defun c:cn (/ a)+ w6 _! ^/ N0 o( H G9 \4 C
- (setq a (ssget))(command "copy"a"""m""cen"pause"cen"))' q8 J3 D5 T- x( B9 n) t
- (defun c:tl ()(command "trim""l"""))3 d. y- o' R0 Y1 u' d; j; z- I( s6 L
- (defun c:tf (/ a)+ e- I2 a/ G4 {* Q' ?. ]
- (setq a (ssget))(command "trim"a"""f"))
- w7 t" P* G( _9 w. e8 q - (defun c:el ()(command "extend""l"""))2 O% \# A# S, F$ F: N3 d7 E
- (defun c:ef (/ a)
g3 L8 A; ~) @. n0 B9 ~) t - (setq a (ssget))(command "extend"a"""f"))6 r( F1 t% r7 D; Q- [' E
- * o6 R8 ]* k( O8 C; R* |
- ' S. @1 J; Z m- |, e6 r" Y* U* V' n
- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110")). Q* h" X. [0 L3 B& v. k$ a6 M
- (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))/ N2 a! u! d0 W* i4 B: [3 a: r
- (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330"))
6 r$ x1 C5 n/ T# Q5 A/ d - (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))" o" {2 Z' f1 D+ ?1 v; G
- (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55"))1 l1 h" B+ G& i- I5 Q" X( a; c3 ^" f
- (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600")) X( G/ U) O' e# `5 u- r6 S
- (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))
U2 j2 k* e$ o5 A. F' ? - (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))
: r @7 e' H. I2 W8 S' ^ - (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))
1 {: j+ ]% I# y3 l: b$ W - (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))
: B& y! F- Z( z; Q( Y0 N0 g. y2 k - (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))7 k& ?. U& N4 C( o& R; J- \" V
- (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))
# \5 U5 s' z9 J* r - (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))
. O; L+ G. v5 t* s: f - (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))
! Q. \! Y/ J% Q* Z' ?0 d, D - (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))$ w8 E1 Z% Y& j* f+ d5 g/ Q
- (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))
) r6 v) `. ~, t% Q - (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000"))
8 A3 y3 _( B3 ]; E* B7 \ - ) L$ g) { i) I
- (defun c:mla () (command "-mledit""av"))
' @- m; A8 Y1 ~# ^# [# `# l' Y4 Z% S - (defun c:mlc () (command "-mledit""mc"))( r0 P1 _& T/ H& \0 O) W& K. ]
- (defun c:mld () (command "-mledit""dv"))
. n7 S, n6 s/ W* B3 o4 t& { - (defun c:mle () (command "mline""end"pause"end"))! l6 j% |# c, I P5 ]" r" P w7 `
- (defun c:mli () (command "-mledit""ca""int"pause"int"))
9 X" `# h" i, N' ^1 k - (defun c:mlj () (command "-mledit""cj"))$ J0 p: g0 N! o. t4 [3 i3 T" K9 n
- (defun c:mlt () (command "-mledit""mt")); n z! b, P6 ~" H
- (defun c:mlk () (command "-mledit""ca""end"pause"end"))
7 C5 H1 S+ i) B E% N) v - (defun c:mlw () (command "-mledit""wa"))5 ]1 e0 Z3 e C2 G' ^4 d" G( _8 J
- + V7 V" ^( i# s O% ]( n
- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA"))$ l% j& k, Y7 x
- (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA"))
, n: U& `/ T" y, u" ? - (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO"))
5 a9 G9 l7 p Q( ^ - (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D"))6 Y+ |# ?* Z4 J8 R6 ^
- (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z"))# u7 G% w+ g+ g3 Z
- 3 m( r! y- F9 _; l8 H
- (defun c:p0 () (command "pline""""w""0""0"))/ c$ _; I6 i# o6 Z6 G, e4 ?
- (defun c:ot () (command "offset""t"))5 j5 t/ S# X* |3 ^* ]# j' J
- (defun c:t () (command "mtext"pause"j""bl""h"pause))
) i4 I( }' c. a. q - (defun c:uo () (command "ucs""ob"pause))* M/ d$ S8 t8 b6 J, {: k
- (defun c:f0 () (command "fillet""r""0"))9 N& h1 P$ i6 M' _; m; o" C$ ^
- (defun c:fr () (command "fillet""r"))
/ @# n. w5 y# E* g - ( G" z% U1 y$ z2 N: X
- ;CHAMFER$ [7 f2 P) v7 K w' o
- (defun c:cf () (command "chamfer"))
k: U# I% @; U" o9 [7 \ - (defun c:cfd () (command "chamfer" "d")); _, Y3 Q+ x6 i# m" w1 s. g$ \3 A0 G
- (defun c:cf0 () (command "chamfer" "d" "0" ""))
I r8 Y& [4 p# S7 }
. U4 _: c6 _) w2 Z6 ?# M8 r- ;FILLET
0 Q2 {. P ~/ l, v: `. a0 K9 w8 Z - (defun c:f () (command "fillet"))* n% [3 ^% A1 ~) I: D( T
- (defun c:fr () (command "fillet" "r"))4 m* z g0 [. q! ^( v
- (defun c:f0 () (command "fillet" "r" "0"))9 ?3 _) P& z6 i* { p
' G: i: g+ t+ U# I& I# \ u$ s, V+ O- (defun c:OO () (command "oops"))
% v6 n: i! A0 {: e - (defun c:dln () (command "dimlinear"))
7 G3 P) y* \; x) b' l3 F/ P( l - (defun c:dan () (command "dimaligned")) ?/ X/ Y1 {9 l- C$ R9 t$ r5 ?
- (defun c:ddc () (command "dimcontinue"))$ W0 y- T4 ~- w7 J; |
( L9 i% z8 z6 f, ~6 i- (defun c:sc () (command "scale" "auto"))
# H) f( z7 @5 R- O. O9 t6 d& o - (DEFUN C:XO () (COMMAND "snapang"))
/ r( G- k* C. R- S - (defun c:cc (/ a)/ c z" L# S& `5 N, ~1 i
- (setq a (ssget))(command "copy"a"""m"))
* Q' l7 P4 o: D& P/ l - / Q, c" ^3 k' c* d
- (defun c:PJ (/ a)
. I- D7 T# W. V6 r' @( N6 V% V - (setq a (ssget))(command "pedit"a"""j""all""y"))
# X5 { o* y5 c& u1 i& p, i - (defun c:JJ (/ a)
8 Y* m$ M6 u; ^ - (setq a (ssget))(command "pedit"a"""j""y")), Y- R* G& q! k: _ |
- (defun c:TN (/ a)) _7 W7 v" K7 b
- (setq a (ssget))(command "change"a"""p""T"))* R- j f( I. x" J7 Y/ A
! o* [/ C* n. q) Y9 {& b/ y8 q9 s
( n l' F- x% H. \$ u7 g- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD=========================- N. B. @/ o; f
8 n3 T3 M0 q9 U9 S- (defun C:IB ()(setvar"cmdecho"1)/ u( u# F* S9 N6 T8 Q; D+ g
- (setq pt(cadr(entsel"\nSelect Block:")))9 q+ n- W. D5 `
- (setq e1(ssget pt))
- k& I9 z8 U* V; m3 y - (setq e2 (entget (ssname e1 0)))
" m6 A8 Q) z! R% N - (setq blname (cdr(assoc 2 e2)))
9 t$ A2 F# }9 f - (setq oer *error* *error* err2)(command ".insert" blname))) b. [0 k: w1 r5 S
- , ]( v+ r7 H0 W- j- n" S
- (defun c:II ()8 c& V0 U X ~- z2 R9 g
- (setvar "cmdecho" 0)
; Z9 t1 e. h) T7 U - (setq olderr *error* *error* myerror)- v2 o, v: S$ K: H% _9 b8 g
- (prompt "\nSelect objects: ")
0 p( O! w- C3 ~4 I! G, C+ g0 ? - (command "select" "au" pause)
) J: q, j7 r% x0 Z# Y' f: v0 t - (setq sstxt (ssget "p")
( A5 \- v' `* h - sslen (sslength sstxt) z2 p1 p- ?5 }3 ]+ `! D+ m- ^
- ctr 0
! J/ ]- ~' v$ f+ W% a; K/ x! ?9 w - )
6 \* T, B1 n$ ? - (command ".undo" "mark")/ Z. n$ T' G3 P" q- B7 c; H
- (while (< ctr sslen)
6 z9 G1 r0 r( L3 v1 x+ E - (setq listxt (entget (ssname sstxt ctr))& w' h) H8 k3 k
- txttxt (cdr (assoc 1 listxt))( f* _! I' B. M/ Q. d; y
- enttxt (cdr (assoc 0 listxt))
F7 ?2 K ` Y9 L - )
) T$ x" Q/ I( x0 C+ f) N0 N - (if (= enttxt "TEXT")
, f# k5 K8 {: J$ D4 L4 G, I' i - (progn
+ n+ h; `* g0 L8 H# X; I - (setq testxt (substr txttxt 1 3))
1 s0 I1 D. u4 C/ }' ?3 z- c: A2 P: n - (if (or (= testxt "%%C") (= testxt "%%C"))
$ t. ]8 R/ d: O2 N2 g6 e - (setq newtxt (substr txttxt 4))
( J; r6 _1 a9 E* x1 y - (setq newtxt (strcat "%%C" txttxt)): o. K+ Q' ]" m$ [$ { }* C- d
- )" m8 c) q& E Z+ c U
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt)) j5 a0 @! @3 X1 X/ |6 p
- (entmod listxt)
6 c0 ?9 b; j4 y - )
! @: {% K% d6 G7 i% b2 Q - )
1 @9 F% c0 i- [) I" B: I; \ R- W - (setq ctr (1+ ctr))( k) s. s/ l) l$ V, I3 z1 c
- )$ \! w" k" A5 R2 u8 r) {6 }: X
- (setq *error* olderr)* M( \% a. k- k9 G/ o9 }$ I, ]
- (setvar "cmdecho" 1)
; D1 M5 }6 W1 |7 w) {' } X - (princ)
7 `8 V) Y( `7 ]0 I8 N/ | - )
, B, C& @/ s7 M+ ] - ; o! M x" T, h* h( g; Z0 L; i
- (defun c:DG ()- B6 V: e2 v5 K" d" A
- (setvar "cmdecho" 0)
" d! d# S9 S) u" B5 G% r - (setq olderr *error* *error* myerror)& ~* E. @4 v6 ]( W2 a% V
- (prompt "\nSelect objects: ")
* s1 q; N" Z: A9 J) J/ ]' j5 X# e - (command "select" "au" pause)
1 _* O/ I* i, ^. u - (setq sstxt (ssget "p")
/ P6 Y% k- ~2 x: c% i; ]/ } - sslen (sslength sstxt)4 R" K/ }' N7 j% a
- ctr 0. y# Y, v. t! r0 f# v7 F
- )
1 Z- G4 g* P6 B - (command ".undo" "mark")
" s2 q( ^$ x% S: M, a+ B: { - (while (< ctr sslen)
% ^- @! s* I3 U7 ] - (setq listxt (entget (ssname sstxt ctr))/ N3 q$ U& u) Q+ _0 [0 K9 R
- txttxt (cdr (assoc 1 listxt))% n$ l6 A5 N* m! j1 k6 j
- enttxt (cdr (assoc 0 listxt))
5 Q- h1 R8 d: V8 p' [& I' T# Q - )
- V" m# ~% q0 W* R7 j7 A3 q% A; @ - (if (= enttxt "TEXT")2 K, Q; e2 @) q
- (progn+ y5 M" E4 g1 L1 u
- (setq testxt (substr txttxt 1 3))
" {' [2 g b3 t5 t( E - (if (or (= testxt "%%d") (= testxt "%%d"))
' O4 S7 D) @( d% p$ `$ V - (setq newtxt (substr txttxt 4))
* Q6 {3 a2 f5 }3 [+ m - (setq newtxt (strcat txttxt "%%dC" ))
% p% W2 L# A$ N% Y; | - )0 n# @% [( E6 B0 j! Z9 ~
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
, a8 i6 S) w' l - (entmod listxt)
# ~$ P7 C0 e+ _0 m, |2 [7 X r' g - )
0 r/ a3 M# G: x" I2 E - )" F, n; |; c1 T, ?- k% U
- (setq ctr (1+ ctr))
( J+ V6 L: |* o$ _ - )
6 j# u7 R0 t+ [ - (setq *error* olderr)8 H5 o, [; i: \3 d- Y
- (setvar "cmdecho" 1)( x$ ^. _5 w! I/ C' }' i
- (princ)% ?9 s' }1 [2 k% {2 E7 }3 g8 `& k
- )- U2 P$ Q7 Z$ D$ s1 M3 q ^
+ O3 T+ R9 u. N. H/ ^, X9 s- (defun c:PI ()' E1 `! a' i6 S" P, H
- (setvar "cmdecho" 0)
8 d1 q3 b5 a9 }' q% ~/ } - (setq olderr *error* *error* myerror)) g9 \# {" ^8 t2 k
- (prompt "\nSelect objects: ")( O0 d9 N5 A% c, ]
- (command "select" "au" pause)2 y: D! Y B! I2 i
- (setq sstxt (ssget "p")
E( Z* r8 a j) j" P! y - sslen (sslength sstxt) C" j6 L" ` I* G
- ctr 0+ M9 B1 u* ^4 S J0 z3 I8 x0 D0 u6 S
- )
- K* w7 E1 K* N- v2 X" a - (command ".undo" "mark"). K0 u3 a: E% G
- (while (< ctr sslen)6 F: v( f5 J/ ` o# F+ j
- (setq listxt (entget (ssname sstxt ctr))
, c% [) }& q/ l - txttxt (cdr (assoc 1 listxt))% ` j9 a1 F# T! o1 k
- enttxt (cdr (assoc 0 listxt))
/ t; q/ k- a1 s/ g, ]; W - )
, J$ v2 L- S; g. f0 D - (if (= enttxt "TEXT")8 z: b8 O' u* [% L8 n5 A
- (progn$ F8 O" I' b# C, h: l
- (setq testxt (substr txttxt 1 3))$ n& Y2 Q" q/ {% S* C( e& V7 q0 c$ y
- (if (or (= testxt "%%p") (= testxt "%%p"))
, j& q; l: G2 x* E. M: N" l, Q - (setq newtxt (substr txttxt 4))
. T7 ^/ l: b! p a$ G; K& ~ - (setq newtxt (strcat "%%p" txttxt))2 }0 p- A. O- V1 Y5 O
- )
! T; |6 h J0 k7 W" |/ h& _ - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
- e" z9 m. e* g/ b% k - (entmod listxt)" \% \" M1 B0 e
- )* }" }* M `4 ?
- )8 o" \; S# n% Z* e' ~
- (setq ctr (1+ ctr))
0 I2 t0 n2 t3 M/ j2 }* W - )$ q$ E- ^ G% ?
- (setq *error* olderr)! e5 X3 o' h. B1 Q1 m5 A; v
- (setvar "cmdecho" 1)9 ^' @0 s- ^* o! Y6 h2 `
- (princ)9 F4 s$ F! `8 ^7 W/ ?9 S( z O
- )
5 K( }5 Y9 ? Q/ R& d - " ]6 i4 [7 A+ @
- (Defun c:CB (/ a)5 d! Q L, U" Y" q
- (setq olderr *error* *error* myerror)& g( A. E, O( {4 ]0 i
- (setq ocmd (getvar "cmdecho"))
. M0 N0 ^- k$ ]! y0 a3 l - (setq oblp (getvar "blipmode"))" F0 J4 k" T5 f% ^7 x. w+ ^
- (setvar "cmdecho" 0)" P3 l) e7 w7 d. }4 r2 g
- (setq a (ssget))
8 f; Y9 A! ^4 [ - (command "CHPROP" a "" "C" "bylayer" "")
" A8 g" B; z* S3 R% S, b$ I - (setvar "cmdecho" ocmd)
4 l; X& L' T5 P+ {5 l- w1 x - (setvar "blipmode" oblp) a, j$ Q& f4 L- o4 H7 }
- (setq *error* olderr)/ }3 ?9 ^' S' p+ F
- (princ): v- p4 J, V- V1 x3 g( M, {1 C& p
- )
' D& S7 z, Z2 D2 K) e
9 A4 s1 ~0 _ |6 \/ W- (defun c:LCC (/ co43 obj23 la23)9 s- ~; ]1 G! B% I
- (setvar "cmdecho" 0)8 V- F7 R6 y0 u. v- j# X
- (setq co43 (getstring "\nNew color : "))
0 m/ r0 u1 ^6 A - (setq obj23 (car (entsel "\nPick object on desired layer: ")))
: T6 k+ e% x7 O) x - (if obj23 (progn
% A( u+ ?) x$ p, D2 _, l. Z6 j1 c - (setq obj23 (entget obj23))
4 [% \- V7 a$ R5 P/ L - (setq la23 (cdr (assoc 8 obj23)))* R5 o. i' E0 Q9 j8 Z$ ?# d: G
- (command "layer" "c" co43 la23 "")# n6 v+ m7 D7 C- v, {- V& {3 x
- )) y' q: b* j+ f' Y) r1 A' G* I
- )
3 R: r4 f& W7 H: p - (prompt (strcat "\nLayer has changed..." la23))
6 D" T4 `, }$ M9 y4 N( W' A - (setvar "cmdecho" 1)' V- m' y$ a2 n, b5 q6 Y: b, \
- (princ)2 X# y3 ]% ?" H4 S1 P4 ]
- ) : f# h" ]; t Y; x" e6 I6 Q
- 4 G3 c+ f a' S
- (Defun c:RP (/ a)0 S, ]! f9 E% `; u f3 i* L) A
- (setq olderr *error* *error* myerror)
$ \. S2 V( s: G' b - (setq ocmd (getvar "cmdecho"))
9 F7 a4 [- l" X, l4 h1 B- v: G3 X - (setq oblp (getvar "blipmode"))
: E9 z0 {( h4 ?- o - (setvar "cmdecho" 0)
% v/ i. V4 L% @2 m; h; b/ y - (prompt (strcat "\nUSE: Delete object(s) belonging to"; u) @2 T0 B- W F. n
- " the layer of the entity picked...!"))7 a1 s) _2 k! T- M( m
- (setq a (entsel "\nPick the entity with the desired layer to delete: ")): I) N1 F( c! t$ g0 J0 p
- (if (/= a nil)
5 n4 v7 |# Y% U/ w' m - (progn (setq a (cdr (assoc 8 (entget (car a )))))! l4 Z+ N* }6 }4 m
- (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))( V8 S: A- k, r0 V& Y; a5 x+ q
- (prompt "\nNo entity selected!"))
% u R! U2 z7 k' ]8 Y/ \4 e5 v - (setvar "cmdecho" ocmd)7 n) W. h% `( X- T
- (setvar "blipmode" oblp)
0 m' v* j) ^: R* q* \* u' n - (setq *error* olderr)
: B' O2 d) j% V2 D - (princ)/ U5 B. w2 `3 k8 ]
- )3 d" C# E: l2 A* c5 ~
0 y1 i4 ^# h' p2 U0 M- (DEFUN C:WL(/ SSET NET SSL M)
" i- H8 G2 `$ L. N - (PRINC "\nSelect lines :")
9 K- u8 |6 e& | - (SETQ SSET (SSGET)). q. X8 _' X+ [ i5 h
- (IF (/= NIL SSET) (PROGN
9 m/ z+ `5 K6 s+ y3 p# F+ S- P - (SETQ SSL (SSLENGTH SSET))
- j$ _1 Y* g9 }( u: Y$ M3 s - (INITGET 4): Y& N O- f# P* a) x7 q
- (SETQ NET (GETREAL "New width : "))% E" @2 j6 I T2 y, e0 T& Q# s
- (IF (/= NIL NET)" t3 w7 }- s& i1 O, p
- (WHILE (> SSL 0)$ w0 X) K/ h1 s; k2 T) D
- (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))- i, F2 C9 ?- x
- (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE") * K8 G) U0 J! p$ S& |7 b: T. E
- (COMMAND "PEDIT" M "Y" "W" NET "") ( N( F2 ?* K% i x1 G; _
- )
, R2 F' i6 d7 _7 w9 I2 @ - )
1 V9 {( d; t6 @. A - )))- b0 L5 y; e4 u# Z# D0 `
- (PRINC)
$ p0 T0 C, p7 e# w% \3 a3 b - )
; B- e; w! `1 q% t6 p l% w
* S8 @) \# U! n- f, K; E% l& \- (defun C:MML ()
. Z. j& ?7 G" ?& @( w, { - (princ "\nSelect objects to move to another Layer.")
. I* l8 _% [ P* y5 L - (setq ss (ssget))
/ l* y* X' H# ^" X0 Q2 U - (SETQ UL1(GETSTRING "\nLayer to move entities to : "))
8 n' ~, N# n I+ p5 m! V( S6 A# l - (setq counter 0)
, ]9 m: W- z0 u - (prompt "Moving to layer.....")(princ ul1)
5 A, Y. B" ]1 v! n) ^) ?# m, L6 ~ - (setq e (ssname ss counter))2 Q& P0 K* T8 ^
- (setq l (cdr (assoc 8 (entget e))))
5 s& S- y% {( K& K/ t5 n5 k- k - (setq S (ssget "X" (list (cons 8 l))))
- W$ Y+ J+ e' i0 }8 }) y- Q - (command "CHANGE" ss "" "P" "LA" UL1 "")
+ v2 \+ Q" J0 a - (setq counter (+ counter 1))
$ h5 C) Z/ o6 p3 i$ P7 Y& U - (princ)
1 L2 e' [8 B W% f% o8 z - ) # ~% z! ^/ Z. z
- , x2 a- N1 k) o( h! R4 u
- ;;; ================================ GHI CHU ============================
* {) ] B" g H% N+ S - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
4 F) w* i: Y, c8 Y$ P" x - ;;; =======================Thuong Dung Font Romant.vnh===================
3 l, C0 Q$ c* J# @( Y# p. i
6 I) j, W7 j6 `: Y y! O4 f- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)6 \8 ~. r4 h. l% ?$ K
- (setq oer *error* *error* err2)1 p- B8 K& f3 m5 R3 t' |, v* U/ m
- (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")7 I- I6 M- n( s
- (SETQ Cpt(GETSTRING "\n (ROMANT-vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (UNKNOWN-font)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))& E9 _# K' A) W4 a7 D
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p")). O" `' B7 U) O" {5 l1 X
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh"))4 R. a8 F) L* F, o8 C8 u" ~
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p"))
$ K7 B2 W5 M' n; [( F" C" Q+ H - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c"))6 |( j8 k: I8 W
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?"))# b. q2 F9 x( s$ P1 A; l! A
- (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An"))2 k u) ]7 P! J; G9 D& ?! d* d0 n* O
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho"))
( U& Y% x! V K1 G. A( [ - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`"))- K8 v: G- e" {0 E, P
- . @1 M: k E7 W x; ~
- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
0 R8 p! ]- C% I$ v - (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))2 |) \+ L# H5 Y
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))% M3 }/ h! e5 L" A
- (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))
; i* P. E, w: |$ X8 N% G - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
5 q$ f# u* f' N3 I' b8 N - (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))/ t# o. G6 m o
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))! O+ h" N: L# \: j
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
& }" I" `8 |- {6 ] -
. ?& I8 N' v' {; m2 U% W - (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))
; [+ U" K( j/ C - (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))% ^! o2 J) ^* Y; i; n$ L2 @
- (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))
& h# E; K4 }- K$ B2 J; Z - (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))4 F5 u/ I( w( Y/ u9 e7 M
- (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))
, m' s& m Z" Y' k) e0 {% P - (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))
1 W& m% b8 a- d" l2 _7 r* P/ ? - (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))
. Q$ X1 v. K4 p2 T% j. ` - (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))2 ^. D7 w( i; r& H
- (setq pta (getpoint+ n1 j5 H3 q. p$ B6 x6 ^( J4 ^
- "\nPick first corner. : "))
4 f% L* N; C9 I - (setq ptb (getcorner pta
1 E0 U' q$ @( I7 e4 v - "\nPick second corner. : "))( c, t; j# J: p& V
- (setq ptc (list (car ptb)(cadr pta)))
& r, D9 m7 v' W8 Z: E. j& n6 n" k a - (setq ptd (list (car pta)(cadr ptb)))
" ~& C; H$ _1 Y, ?0 ]( Q - (setq ang (angle pta ptb))" \/ y4 y& R+ v
- (setq d1 (/(distance pta ptb) 2))
: g$ z& d H+ R* R) k5 V6 Q - (setq cp (polar pta (- ang (dtr 0)) d1))
" b+ c/ N/ |% I6 d - (setq X (distance pta ptc))9 u/ _1 k9 \4 D. ^
- (setq Y (distance pta ptd))
& K5 |* ]# i* y4 A - (setq X1 (rtos x 2 1))4 ?* n1 o, S- J9 P/ t
- (setq Y1 (rtos y 2 1))
% m; p: X% X9 u5 T {+ m - (setq rmsz (strcat "(" X1 " x " Y1 ")"))$ z4 L& f( ]- p
- (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))# ]6 N" u3 ^( T8 o" ?' z, h
- (defun dtr (angg)
0 A h5 ~) H& |4 w7 } - (* pi (/ angg 180.0)))) w6 _% C; y9 I" L. T
- 9 I# ?% P8 b: t" r
- (defun c:WS (/ pta ptb rmsz pl1)
+ n5 i6 s5 K1 m2 W - (setq oer *error* *error* err2)
. G {- x# }7 J- f - (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P).")% N) x7 u A6 N7 O5 n6 [
- (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))& s7 e8 k; x% i+ ]; u
- ; r( i8 K: i* ]
- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))
7 W+ Q6 e8 X' I. k% S' b6 K - (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))5 X$ |7 g& J! ]9 |: j. [9 D: J
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))- T4 A8 t3 b/ B, t. j: c
- (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))+ [) b0 P1 q; I# O$ f _
- (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))8 e7 w$ D# y, r0 m) J9 p; V
- (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))
0 u" n% m9 }! i+ U+ L; I9 Q6 y - (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))
* Z+ b$ Z' e( y' l
# \! |: R& c: `1 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"))( F' C7 w: M: `( k- T& k
- (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100"))+ \2 H& x# r, ~/ ^
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))+ m0 s: C+ J; q( {1 [% Q4 N
- (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))
+ M# A( C; C" F" N$ c# A# I" a - (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100")). G% e. P+ b4 O& Z! {
- (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"))
. K& y: \' V( U. y+ k; r1 L - (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN"))
8 f. g' p6 }0 {# ` - (setq pta (getpoint
0 l. G: _9 [, P* v+ j - "\nPick first corner. : "))7 ^: C& _, g2 s3 `
- (setq ptb (getcorner pta" N$ h, T' B! X1 K3 Z0 V
- "\nPick second corner. : "))' G: U6 [; P6 i2 w6 ?; c! A1 R& ?
- (setq ptc (list (car ptb)(cadr pta))): v4 G, C2 F1 |" p5 o
- (setq ptd (list (car pta)(cadr ptb)))0 P, C& A, ^: f8 N
- (setq ang (angle pta ptb)): K1 ^% v( P: A; E8 a; ~% A; R! z
- (setq d1 (/(distance pta ptb) 2))" P H+ W' P6 `( ^9 F- Z
- (setq cp (polar pta (- ang (dtr 0)) d1)). s! J) W, g3 T" E
- (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz)) I7 k3 q2 m8 T% l
- (defun dtr (angg)" w. {% ]) d' X- X8 T- X5 K
- (* pi (/ angg 180.0)))
6 B: [, L* a+ y2 k) O - # t, P; Y. N2 a9 I% A) {; f' c
- ;;; ================================ GHI CHU ============================; H0 Q* T0 H4 q. o8 ^
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
1 z' u5 }7 O. B$ E1 j( J5 H - ;;; =======================Thuong Dung Font Romant.vnh===================6 W/ R0 q, x% n* D
G5 S# |; W0 y/ K- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
. l4 P) Y Q' h$ L+ T - (setq oer *error* *error* err2)
9 e2 F7 @/ s5 b, e, n - (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. ") A L, j) l' P0 o
- (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))
" Z* B% p8 D+ F - (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p"))
5 N! X7 l' i1 C8 x( H- ? - (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))9 I& e; l( ~& f X( u+ G" p
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p"))& G+ B4 O. M: r/ z8 o ^
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c"))2 b0 w$ `) x) v9 x; q1 I& x
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))9 J) A3 k+ d& `" Y9 G' O; E; x6 Y4 {
- (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An"))
- s# \& g& T! J% }4 L - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho"))
9 X3 m( s/ ^$ h+ {( u - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?"))
. t9 x( @* M9 P- C! [) E - (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))6 d$ U0 K" a: C5 G" x$ t* E
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))3 K+ B2 v6 W3 y1 ]) F Q
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
5 H5 F( v3 P. m6 c3 V/ v0 U - (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc"))
1 e- K1 [, f6 I) w3 _, Z - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
! j, H% R% E4 ^$ t K7 D - (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))" A) R4 d, ^5 S# U; b, I' T
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
) N" x, N2 N7 ~6 J, [ - (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
5 D* D A; v! I! U% a - (setq pta (getpoint
4 Y. W6 u; H0 b+ U( d* R - "\nPick first corner. : "))
- U9 q: Y; I; A7 ]: H- f+ m - (setq ptb (getcorner pta
0 z' ~( T* A0 |8 C9 t4 R5 g4 ] ~ - "\nPick second corner. : "))
% Z5 Y) l' {2 T- b. L( J - (setq ptc (list (car ptb)(cadr pta)))- Z" P# `/ v' R8 w. z8 q" h' c
- (setq ptd (list (car pta)(cadr ptb)))& h& H* K" C7 p
- (setq ang (angle pta ptb))
& N" }- |& D/ \2 I4 z7 E - (setq d1 (/(distance pta ptb) 2))
U2 O/ u( k. g! l$ l9 d% Q( S% R - (setq cp (polar pta (- ang (dtr 0)) d1))& e k( L M4 D7 \7 h. X4 [, k
- (setq X (distance pta ptc))& u5 i! n) G# f6 }5 v* z7 S4 I* M: P
- (setq Y (distance pta ptd))
& U" H* h, i0 s6 H4 _ - (setq X1 (rtos x 2 1))
% |$ `( X g0 E - (setq Y1 (rtos y 2 1))7 H2 T2 s2 b+ q' ]7 p. R. Y
- (setq rmsz (strcat "(" X1 " x " Y1 ")")): K3 V" c, Q! e0 b$ |; E
- (command "TEXT" "c" cp "0" CPT "text" "" rmsz))+ @- Y+ L" P' {; z3 w+ Q
- (defun dtr (angg)7 @# G& ^' T0 H( _% w4 P9 Z+ C1 G8 [
- (* pi (/ angg 180.0)))8 E1 G4 r1 s6 P2 z2 T/ f, {
; s* x; c1 S0 m& s- ;;; ================================ GHI CHU ============================
( V7 @- g8 c ? - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
, v. w1 o3 v. J3 J$ H9 G; F - ;;; =======================Thuong Dung Font Romant.vnh===================! v* V% A, [" L( |, b3 `# l8 Q
* o/ g# ?2 y, e- (defun c:GS (/ a b c d)
/ p8 A+ n/ ^7 [/ L& J - (graphscr)
/ \7 j# j% ~# H, c - (prompt "\nSelect text to set style....")
4 h6 J' w- j% o8 u+ G" c! r8 T - (setq a (entsel))6 q( Z/ M& j* B
- (setq b (entget (car a)))$ K& P/ B5 P0 q1 h8 `! x" F; X; n4 x
- (setq c (cdr (assoc 7 b)))3 a5 e" n7 `3 j% Q8 A2 b5 A
- (setq d (cdr (assoc 40 b)))
9 p0 T, M! o8 t; @& n - (command "style" c "" d "" "" "" "")), o R- k, V! X( [& N3 x
- (princ "\nType GS to set text style.")0 B+ \" z2 y l0 h* r" |
- * f" W1 V3 W+ M
- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)5 T3 S/ ~3 ~& a Q$ P8 v& [8 e
- (setq olderr *error* *error* myerror)
+ _# \* D* y+ ^: o& b/ ~ - (setq ocmd (getvar "cmdecho"))
+ y5 O e, I% D: X' x m8 I - (setq oblp (getvar "blipmode"))
2 Q2 E+ ~4 S/ i+ w P - (setvar "cmdecho" 0). @7 a" i! S5 \! E% d: ~
- (initget 1) ;3D point can't be null+ u {. N+ w2 Y9 Q& }& o: K$ o
- (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))/ Z5 w. ]1 p3 C. t0 _- S7 f1 C4 X
- (setvar "ORTHOMODE" 1)
+ [7 r' p" |) m3 W# m3 @ - (initget 7) ;Length can't be 0, neg, or null# P b9 I; r* g- \/ q5 k* M
- (Setq l (getdist pt1 "\nLength: "))) f3 S* ~: a& g+ Q; u7 f/ j8 t3 u+ y
- (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))
8 D& r9 {; R' h3 G) r) I - (grdraw pt1 pt2 2)
9 g$ ]! H. y T) L, a) B - (initget 7 "Square") ;Width can't be 0, neg, or null. R' w( d; l5 y$ k1 \* V
- (setq w (getdist pt1 "\nSquare/<Width>: "))7 V9 q3 o6 @/ Y: g! h5 H
- (if (= w "Square") 6 m9 ^4 ?" y( }$ ?! l/ q
- (setq w l)
& O- A6 Q$ c+ O; ^/ j% D, F - )
$ o2 S- ?4 a1 l - (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))
6 P, ]8 V5 F1 T - (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))7 j1 b+ {8 s8 c, X' T* p
- (grdraw pt2 pt3 2)
0 n# g: w$ [7 B+ `4 U6 S) d - (grdraw pt3 pt4 2)
0 Y, D/ \; e s( A) V2 J8 j - (grdraw pt4 pt1 2)
4 T! c* z. W- v8 _ - (setvar "ORTHOMODE" 0)/ ]( |, ]2 {( s* O
- (command "pline" pt1 pt2 pt3 pt4 "close")
% ~( b2 h& _% o - (setvar "cmdecho" ocmd)
" E4 j. c. J! n - (setvar "blipmode" oblp)
- T8 C0 w' y" b - (setq *error* olderr) ; Restore old *error* handler2 f7 A' ^ }) A! z; q: j
- (princ)
& s' P9 m. H; j% z$ |8 E4 D8 ` - )
& @( U$ s6 ]: w/ Z- f4 ~; U
% ?0 |" R/ L8 u9 q, v' @- (defun c:SG (/ ent pt1 pt2 ang)
4 j- ^& p* e' W, g8 z' b* T2 N - (setq cmd (getvar "cmdecho"))- j- W8 K7 d8 w: @2 x) j
- (setvar "cmdecho" 1): x" y8 o; M$ e5 Q
- (prompt (strcat"\nSnap angle will be set to angle of line"))
) I7 b9 k5 L3 k$ Z7 u3 z - (setq ent (entget (car (entsel))))2 s8 D. u/ u5 X- {7 Z* [
- (setq pt1 (cdr (assoc 10 ent)))
6 L* [& d2 K% l: a - (setq pt2 (cdr (assoc 11 ent)))
+ t8 U$ P7 D" y - (setq ang (angle pt1 pt2))
- Y5 i( Q; K1 Y4 V% B R% l - (setq ang (/ (* ang 180.0) pi))( f% c* k& j! n8 h" t; C
- (setvar "cmdecho" 0)
5 u" c) n- F* x. c2 G - (command "setvar" "snapang" ang)
1 o$ O% ]# I3 T" c* G - (setvar "cmdecho" cmd): A- \0 g8 W' p2 Y
- ): u+ ^# K$ H* ]7 F1 Y
( d' a8 q$ V. O0 T+ ^: j4 J( W- (defun C:TG ()
, ~/ L; Q, o- D5 p - (initget "Increase New"), y0 z$ \# N4 N
- (setq ans (getkword "Increase/<New>: "))
" b l8 E! r- w5 ^1 v - (modang)" }4 y, N! q! A1 }6 R4 t
- )6 q$ G1 \$ o4 @, Z6 l
- (defun modang (/ ang ss ca e na ssl)
o2 L1 o! i* ^4 M6 m5 b - (if (= ans "Increase")
- p! T; J0 W% B. [, P3 @4 _ - (princ "\nIncrease angle for text by: ")
9 Q$ ?- r8 M, L" i. Y7 l. B; e - (princ "\nNew angle for text: ")
( `. v8 B/ M/ n4 }) h6 r - )
, R9 s# k4 |! L! R% P5 v7 |6 T" ? - (setq ang (getreal))0 }/ \/ r5 r1 A1 k0 \
- (setq ang (* (/ ang 180) pi))4 u) u0 R; k( b8 s$ R' x1 c9 @
- (setq ss (ssget))" ]8 N) f/ W, z
- (setq ca 0 ssl (sslength ss))
3 L6 x d6 G4 Z( } - (while (< ca ssl)
3 h" j! B3 Q. `& s2 h* p* U- j - (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))+ u; d5 q- `" m. O8 t
- (progn
- o y+ g7 X- I: K1 F - (if (= ans "Increase")0 h( K9 A& ]) Z
- (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))0 ]2 e# u* s% A5 E3 n
- (setq na (cons 50 ang))
: A0 p3 ^4 |+ l' h; p - )5 \ W. J0 H) V/ M0 A8 h+ f
- (setq e (subst na (assoc 50 e) e))
+ q8 G* C/ x6 Z3 { - (entmod e)1 y. q& l+ j8 t: i5 Q3 K
- (setq ca (1+ ca))& e6 L0 c. x5 g& N4 U" p
- )7 e8 v L1 l% j% x
- )
) `) \5 r' L7 W6 L7 i - )' B5 o% G4 p9 A% b1 ]& V+ G6 [/ _
- (terpri)) }: F- [" k3 l0 l9 y& `* L" x5 A
- )1 _% j8 J$ d+ k2 T7 v* e/ |+ t- a/ ?
- . z _/ Z- H$ H* _7 C
- 8 b. t" } g2 M. P
- (defun c:WL ()
4 S0 U. y8 Z; N% Q4 T - (setvar "cmdecho" 0)
7 x" U2 U0 x' f. z+ r; u$ K - (setq a 1); t. V) \& g% H2 ^! R8 X
- (prompt "\nSelect Polylines to change: ")
3 B2 {! t) R, D7 t$ J - (while (/= a nil)
: p) M6 G ]6 Y% b. ^ - (progn6 A6 ?- I5 U! t' G
- (setq a (entsel))
; Y2 I7 A% e( W. m - (if (/= a nil)
: P" |: b9 @* [; q8 P6 q - (progn
# N3 u' Y. d R1 B& y$ S - (setq b (entget (car a)))
; v. c M! B/ u - (setq c (cdr (assoc 40 b)))4 w$ v1 H: [3 x
- (princ c)
& C) ]$ j) v1 \5 ] - (command "pedit"a"w""lw""")
, h4 j- f( H5 a9 u) q - ))))
* P4 M! X% m2 n3 ?; E% f5 ` - (princ)( @5 {3 [. |: C `# X( \
- )
: m% R" Z+ j% A& w u: q - - K1 Y6 Q; b. b
- ;;; ================================ TEXT FIT ============================& X) X- R+ F& f, x. M# a' C
- : g. [5 f4 O5 O! M( S5 f
- (Defun c:FT ( )
' S" H* E% l+ P0 {# k. [3 C - (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )+ ?* J3 C7 s6 c+ u+ }3 e8 z
- (Defun LL-xyz (arg) (CAR (TextBox arg)) )
/ Y' ~9 M1 K* J/ W& W% _$ v - (Defun UR-x (arg) (CAADR (TextBox arg)) )
, [# \: ]# Z; g* |4 v - (Defun LL-y (arg) (CADAR (TextBox arg)) )
2 C& B' z! M- X3 G4 A9 j) G1 J - (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )& B; x; I1 E1 g! Z8 z
- (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )
2 y E" e& f; K+ ] - Textent (If ename (EntGet ename)) )
( j& w T0 F! X2 v7 f1 n - (If (= (CDR (Assoc 0 textent)) "TEXT")
* Z3 A% X3 A$ J, o7 u - (Progn (initget 0 "Start")7 p2 t: R! x3 H' Y) O
- (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )! p' O: a5 l2 m7 B/ [
- (setsnapang Textent) ;set snap along text entity
4 u+ {% i* j: W. D& B# r - (setvar "ORTHOMODE" 1) ;drag along the text
! `# q0 s" O& y$ h - (setq
& \, k U! N0 ]6 t# D; x7 ~! n; s - TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") )
8 O: u- h9 Q7 g1 e' [9 P# L - (setvar "snapang" 0)
6 G ^7 j2 A# L! R1 s - (cond
& L( f r* `8 `. Y/ ^. h6 d - ((= (type TMP) 'STR) ;;new starting point to be selected& ~$ e$ F. o/ Q( X3 x" [
- (setq Start (getpoint "\nPick new starting point: "))
1 j; U# x& L4 T" o- }- U+ E - (if Start (progn
7 \4 ~) B; D: I0 J3 X - (command "_UCS" "_E" (cdr (assoc -1 textent)))
: U8 b+ @7 l }' _' W, f - (setvar "ORTHOMODE" 1)! }; E! Y# D4 O
- (setq NewPt
8 x9 F. q( o4 g- h - (if Start/ l" v- u6 c/ X9 s3 b6 x8 d. c3 M
- (getpoint (trans Start 0 1) " ending point: ") nil ) )
V. K: g. K# {( u) A! I - (if NewPt (setq NewPt (trans NewPt 1 0)))
/ x; I. T1 A) e8 [: m- @9 j. Z - (setvar "ORTHOMODE" 0)
! n' p9 o% i& d" w7 P5 A - (command "_UCS" "_W") ) ) )
. W' e2 x! M, B9 p - ((not (null TMP)) ;;new ending point selected
" x ~' [; J/ C$ p - (setq Start (cdr (assoc 10 Textent)) NewPt TMP) )
3 A) y3 @: s9 `# M# L5 `1 B8 | - (t (setq Start nil NewPt nil) ) )
1 k E7 t3 V& @ - (if (and Start NewPt) (progn$ p7 t1 o+ p e9 ?. o5 I: C6 e6 r
- (setq Val (Assoc 41 Textent) ;;current width factor
& w% r" d7 m- a - Val (if Val (cdr Val) 1.0) LTC_%
' O9 H5 k# y3 h- |! Z) n - (* (/ (Distance Start NewPt) NewEnd ) Val )
8 o- K/ ]* S* f - textent (Subst (cons 41 LTC_%)
" L: K4 W9 U# s; h. s% F9 r" \+ x - (assoc 41 textent) textent)
% a# g) i/ E* |- \ - textent (subst (cons 10 Start) (assoc 10 textent) textent)$ p% k- {& F2 T% u, [. [3 G
- textent (subst (cons 11 NewPt) (assoc 11 textent) textent) ): c8 x' m" H' T4 x
- (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))
# j' h' s5 ]7 C( b
) X, Q. t9 o9 {0 }- ;=====================================================================' K' B9 |6 y) {( b
- ;=========================COPY + ROTATE ==============================9 [2 Z- E5 O, g8 t- H3 b& y
- ;=====================================================================
% Q& q! S" o8 m& N! Z- |4 i
: @4 g/ M3 G& E# x. w S2 f, N- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2)/ W2 p" u4 `: u6 A! R
- (setq olderr *error*1 g3 s& W# ^1 \+ V0 `. a1 ^; d5 G
- *error* croerr): ]. k0 Z" R6 k
- (setq cm (getvar "cmdecho"))
8 B& B3 M; }4 }* h - (setvar "cmdecho" 0)/ j% j' Z; q+ @9 c0 ]$ ^
- (setq loop t)8 X" x; Q. m7 a% X
- (while (not (setq ss1 (ssget))))
- W& C0 c8 I6 O% v/ X - (initget 1 "Multiple")0 Y. A0 Y! D. I
- (setq bp (getpoint "\nBase point or displacement>/Multiple: "))
) A0 N; I1 A6 f3 B - (if (= bp "Multiple")
# I' w. b' w% ? - (progn9 y7 V& ]* K1 O
- (setq bp (getpoint "\nBase point: "))2 M, ^: s2 E e9 ]2 A! G7 y) \; {
- (setq mult t)
, p* n1 k" N6 c5 N% t/ w - )) D- Q+ w$ T9 y8 I0 Z
- )7 h$ X+ a7 m! M; ~( a: |6 V0 Q
- (while loop: R& e: H/ _( I! U8 M8 x; J0 c2 p% @
- (setq loop mult)4 h4 r: v" H& Y7 {+ Y
- (setq lent (lastent))
: {0 ]2 |" J6 J4 w - (command ".copy" ss1 "" bp bp)4 T7 ~$ a& k' I& `$ }9 C" ^4 B. G
- (setq ss2 (lss lent))
/ O, v( R7 D5 }6 }2 x& R5 } - (setq lp1 (getvar "lastpoint"))
/ m' w% S* _4 q+ T! O1 g& e- y - (prompt "\nSecond point of displacement: ")# v, f) j$ l- ~& e7 @
- (command ".move" ss2 "" bp pause)
# A* F9 Z" k. P; p: J - (setq lp2 (getvar "lastpoint"))
; S6 J9 d% V$ U0 { e: X - (redss ss1)
+ M& a* F! Y% T3 Q9 n' ^8 a - (if (and (not mult)* X2 N; i% Z; P( P/ L
- (= (distance lp1 lp2) 0)4 Y* R d9 F$ q: a. e4 S. `
- )
9 b8 ~4 k* f! g. R - (setq lp2 (getpoint "\nRotation Point: "))" s `" ^9 \& ?8 W( w5 T! F
- )
. w# ?* v2 O: E - (if mult F; P: _/ C1 {" Q
- (prompt "\nRotation angle ")& ~% t+ l* P# h1 r) V1 H, @
- (prompt "\nReference/<Rotation angle>: ")
; u" B A3 f, l - )
$ T& q; i) L8 Q. @. i - (command ".rotate" ss2 "" lp2 pause)
! g! o. q1 N& ^ - )2 L, n, z8 _/ T) O. J5 R
- (setvar "CMDECHO" cm)
# F3 `( ?1 |9 p! a9 X - (setq *error* olderr)
3 h& T: g9 _- p; C# T - (princ)& M( W0 |) G$ P) O- x( w
- )# e, z' P7 w4 j8 v% b% g( Y: @, J
- (princ)
& W2 Z8 n C6 f( {# k' X: n* h - (defun croerr (s) 9 e% x: f: g- J: H$ N# u9 a
- (if (/= s "Function cancelled")
3 U2 y- K/ C' F7 ] - (princ (strcat "\nError: " s))
) K6 V3 ], o% k# O - )
& R. Y: T6 Z2 }8 m - (setq S nil)6 X# W7 F+ Y8 @2 X u
- (setvar "CMDECHO" cm)6 E+ h/ j7 A* D5 ^! [. B, ]* `! ]
- (setq *error* olderr)
" }! s& }$ H1 h" s' M - (princ)6 B' a0 \3 w$ u; x7 M, v
- )
, w3 z# `, m: r- f! s) G - (defun lastent (/ a b)& { C1 y, c! }1 E3 Q
- (if (setq a (entlast))
% j; T6 `- ~4 S0 ?' n - (while (setq b (entnext a))
% G# b. I8 d+ W3 c - (setq a b)4 T; o/ j/ U* h/ P& C9 a. D% [
- )
# w' h# [( C# E2 Z% k+ A - ), x5 P; Q5 b" E0 K8 M- @2 `7 f- J
- a
* K7 Y9 ~+ f* V5 \3 ] - )) e6 H& U3 O2 Y$ Y0 F5 `
- (defun redss (ss / en i)
6 n/ |9 @/ Q. L. \7 m0 ? - (setq i 0)
7 R( {/ J& A. H% N3 l' i; g+ F - (while (setq en (ssname ss i))
- I; v, @6 z: i% v% E6 ` - (redraw en 1)
; J; H' c, ?4 T - (setq i (1+ i))
" \& w+ p V5 @8 z1 X# |3 ? - )
0 z- T4 e7 g8 C1 h* j7 X - ); S; e' G% L9 y( I7 z a8 G) `
- (defun lss (en / sels ed), W' ` ?) H8 N) y4 J- o
- (setq sels (ssadd))
* U$ u' L' _3 M: s8 i( g) B - (while (/= en nil)0 C# h$ O# B+ B3 U) e
- (if (setq en (entnext en)) (setq ed (entget en)))9 i: ^$ P1 d# W' F o& j
- (if (/= en nil) (setq sels (ssadd en sels)))
" e/ g* c: v5 k8 G) U1 h8 t - (if (or (= (cdr (assoc 0 ed)) "Polyline")
7 q L: z, b; ?3 W4 Y4 b! Q. J0 k - (= (cdr (assoc 0 ed)) "Insert")
: p: x- ?& t ~! z - )
$ g3 D* P) T. s& p - (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))
* F1 U" ?$ M8 D; x - ). l2 R! o I6 X; [: X$ x
- ): {9 n: A2 t, N& W
- sels- i' A4 p4 C8 q: M4 L
- )
4 I# k _8 Z* Y( y
2 D* t4 b- ?# P8 f- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================
+ s1 u& |# x$ C4 A3 r8 `
- ~9 T- G/ s) T, M9 u" K! T- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))
/ D; u) h7 d( }% s# w- r - (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" ""))& P) m* S7 ?4 j6 I! }
- (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))
" P8 y' J' y2 U - (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))9 w! t& X) s6 e2 p( k: U9 V
- (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" "")); _( L' `* c0 t4 `4 L1 J3 m5 Z5 d4 Q
- (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))& h; W: Y6 j% q# N8 Y1 Y' H+ x: g5 P
- (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))7 u- I2 S0 J0 p& C3 K! l
- (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))
" @& y' N3 l1 X# T, F" D4 h- a - (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" ""))! Q9 |) R! u0 j9 E) r/ a7 G
- (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))6 o, n$ b* O2 c5 h7 M% M+ q
- (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))& ]0 o$ y7 _1 o
- (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))5 [; J" W4 Z- A3 v* S* e
- (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))
+ z0 t0 T) \+ x; r( \ - (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" "")), Y$ s3 J3 C& ~3 q& H
- (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))
* m$ U; t: A: N - (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" ""))
4 W# J1 G2 y/ g9 |1 N! w8 ?) t - (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" ""))2 z9 i' V ?- V: ?
- (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))0 C7 \, ]) y: A1 F/ v; O: S6 t
- (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))
& V, t, F7 b# b+ ?/ i( t- V - ) r* l/ }$ q" l8 T) f9 N
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============" {+ V# [; }, Y# ^7 q
# O& S! p% V- [' C. V# J- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============. C$ x/ t8 P# H1 a; h; d
* q, T+ E0 B0 Z$ _- {- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")$ c$ P5 b, D$ Y0 W! T' n
- (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")' k6 A# w' G, D$ g# C9 M
$ v0 T* Q2 {$ S3 ]: g+ T" ?7 b- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===+ K& t" R" {; D5 f! e6 x" x
- 6 r0 c8 r) p' c8 d
- ;(DEFUN C:netxuatanh ()
6 C. x( z3 A8 D/ w( m3 P - (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""$ }4 _( F% ]% h" ], K8 b$ I. o& ~
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" "", d, C6 ^- U% p- E) L( T. {) U* W
- "M" "MANH" "C" "9" "" "Lw" "0.5" "") w- P5 v( H' z/ I& E% X6 U5 G
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""# D6 f$ h0 G) E' Y/ }8 H
- "M" "DIM" "C" "1" "" "Lw" "0.6" ""4 `+ \2 O# r0 ]) P
- "M" "THAY" "C" "7" "" "Lw" "0.7" ""
9 D! v+ Z8 A% Z/ | - "M" "NOITHAT" "C" "3" "" "Lw" "0.5" """ U1 V( O$ d U9 Y' J! k
- "M" "HATCH" "C" "5" "" "Lw" "0.35" "") V6 g/ @4 C& H- _, |
- "M" "COT" "C" "2" "" "Lw" "2" ""# u! n6 c4 h5 q1 c& K0 X
- "M" "Defpoints" "C" "7" ""
6 }9 H6 u7 @& ^6 D. w/ S - "M" "0" "C" "3" "" "Lw" "0.5" ""
# x; l! c& |0 k$ H - ; "M" "1" "C" "1" "" "Lw" "0.5" ""
- m m" q4 Q% m3 m- [ - ; "M" "2" "C" "31" "" "Lw" "0.5" "" K# j4 O: p4 N
- ; "M" "3" "C" "8" "" "Lw" "0.35" ""
; A4 r* |* h5 a: |5 U* m: @( i - ; "M" "4" "C" "4" "" "Lw" "0.8" ""# b- t( E3 ^# J3 Y* w
- ; "M" "6" "C" "6" "" "Lw" "0.35" ""' q5 Y. G5 J5 N6 Q
- ; "M" "7" "C" "7" "" "Lw" "0.4" ""
: F6 H2 M0 W1 s( w2 g - ; "M" "8" "C" "8" "" "Lw" "0.35" ""
: n4 ~( w) ]0 W# s6 p% h0 C - "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" ""6 B- c9 s2 Q8 q1 W# d. h x q
- "M" "DUONGBAO" "C" "7" "" "Lw" "1" """ H* p( L6 n$ ]9 L5 o
- "M" "KE" "C" "8" "" "Lw" "0.3" ""& F3 ^5 B& ^9 g" e) W- g4 n* R
- "M" "KT" "C" "9" "" "Lw" "0.35" ""
8 Q8 c! u* Z/ t, e* h" Z+ u - "M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""
" V) K- L: K1 _5 A - "M" "NETMANH" "C" "43" "" "Lw" "0.5" ""$ G s/ w$ [( D% P
- "M" "TBD" "C" "2" "" "Lw" "0.8" ""* G: @- x; F, R+ R% A* @
- "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" ""9 `9 a8 Q2 U: ^4 V+ |1 q
- "M" "TEXTVN" "C" "132" "" "Lw" "0.4" "": p" B/ a% U. }& f% s: G+ w
- "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""
7 W% T8 D; \( m( R - "M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""
7 A; I* f. t: l/ ~) N - "M" "CUA" "C" "6" "" "Lw" "0.5" ""( q# k/ T& h8 N3 x5 l
- "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""
- B4 {' g; S5 z+ \! d3 ^
) N+ @+ `5 ^. N5 j- r. K1 f- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===/ p; h) b$ K3 i i4 |3 v" `
- , F! u3 S: k; ~3 F! f2 g
- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" ""! ]( T9 f4 ~7 C m/ l8 H
- "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""
; c, C2 V* f8 D - "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""
% [. v4 g' J- i6 T% ] - ; "M" "250" "C" "250" "" "Lw" "0.35" ""
% _' e" |) N1 V4 O7 p - "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""
9 X* _, w' p! Q, H/ E$ [+ G - "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" )& {2 l) t6 {8 a7 [* S8 N
3 C9 j/ G* X+ G) ^; q" ~! y) I- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======1 ], B1 F! T6 C( D* M
- ;===================================30|04|2024==============================
1 a6 l/ L- B- m
H& M4 ?3 s# |8 v- A# B2 X7 ^- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )
3 s) {/ Z8 W- y - (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )1 i$ T& t8 w$ E# z$ S5 b) x8 i
- (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" )
3 h; K5 R- l! G k! B: p - (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" )& y- I. B4 D1 ]0 R, ]" ?) l& D
- (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" )3 C! c4 ^9 \) T& t1 D
- (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" )
3 }" ^; v9 @4 ? - (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" )
+ @2 m) ]9 O' i2 K5 m - (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" )5 l% b+ c2 f6 S/ d2 x3 L7 V b5 U
- (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" ): H* }. w, B7 b$ }6 ]
- (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ) ]( r& s7 f+ B$ I
! b; @ m; _* Y$ E. g( c- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=9 ^8 s# ~5 h2 r, E9 ~9 P
- ;===================================17|10|2024===================================4 j; v/ h- ]: B: r! s: |' n- _
4 E: s1 T# G* [ C' [, D- (Command "DIMTXSTY" "ROMANT-DIM" )& S' Q S2 ]4 f, ?% g
- (Command "DIMBLK" "" "Closed" )
' h7 R5 G) F! p3 f0 ]$ A - 0 I5 K \3 `/ Z! _# v5 E# v6 b4 n
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
8 o/ z) [+ H+ s n1 h - ;===================================17|10|2024===================================
5 |* J+ D- |( j
9 h6 g8 ?" u$ A8 D+ e- ;(Command "-units" "2" "8" "1" "8" "" "N")+ j4 W9 \, M3 v5 `
- (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ)
. j$ I$ T8 m! V - $ {: S) i" D7 k: a' o6 x) J
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=" Q* |3 }- q" _: o- i
- ;===================================17|10|2024===================================# j q* ?7 v$ t+ S. g. s
3 s K7 q, V- |, C, L$ E- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====
! x1 _! A; M% F; a: s! a) @* N6 j9 M - 4 Y7 L2 L6 F0 H5 k/ j: M& M+ J
- ;======================== DAT NET IN & TI LE BAN VE =============================2 s0 n; E# Q3 f, ~7 D
- 0 j( Z! W7 P6 T9 e8 ]* K4 p" J, o
- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================
' x* @7 B3 V, K3 V9 A# i" h - ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================8 c8 u* R7 T- y4 |. H
- ;=============================11|07|2025==============================
9 }" A6 ?) ^# ^ s6 j, r. m8 U - ;Ti Le Ban Ve - 1 : 100) S( C- ?! _1 R% \& S# y
- (Defun c:kta4 ()) O! L- l2 I( N
- (setq mv_sc 100);Ti le ban ve* w) c4 V% [: r/ k3 d0 s' ?
- (setq x4 297)
- P4 ~% G8 X1 i. d! v$ S6 h - (setq y4 210)
: N$ j |! X& g2 {/ W$ S$ S' Q' r - (setq x4 (* mv_sc x4)
A- m) v0 \9 ?" h - y4 (* mv_sc y4) ), c$ u+ K3 D; ~+ a9 Y0 l
- (command 5 R5 A2 ~% f/ b: X: u! o( A" t7 M
- "LIMITS" "0,0" (list x4 y4)
' Q2 \) I, X5 c) p+ p! ^! J( K - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"% C _( Q5 P' r) i# o! u3 N2 X
- ;Khung CHU NHAT Chinh 1 n- ?5 G. u$ a/ ^. t4 B" ]1 Z
- "RECTANG" "500,500" "@28700,20000"
: g2 M. w! o8 Y. a3 b/ ^5 |, b4 f/ a8 m - "RECTANG" "700,700" "@28300,19600". ^0 K+ M! C( E9 h+ U, I9 o; I
- ;Khung Ten Chung
) a* v$ d1 s# t, y) z: F - "RECTANG" "700,700" "@8000,1250"
1 D" `0 F/ C' z6 H6 J- `8 ~- K - "RECTANG" "700,700" "@17300,2500"# D" w. o# v7 h( g, ~) Z. u( @
- ;Ten Ban Ve
9 ?3 p( i X7 c! Z8 V - "RECTANG" "18000,700" "@11000,1250"
* B: ]/ w4 d( `* M- l X - "RECTANG" "18000,700" "@11000,2500"& v4 }! m& ^3 W$ f
- ;Khung Ti Le + Ngay Thang Nam y G! n/ ]# T/ u" p; @: T
- "RECTANG" "22500,700" "@2000,2500"
5 m+ v! _- W0 \ - ;Khung CHU TRI
; I$ l1 E! V0 K* L3 I- o - "RECTANG" "8700,700" "@3800,2500"
; ~$ k. J, ?5 A4 G& ^, d. R' p1 l - "ZOOM" "_a" ))
- h9 Z1 d- |0 T, v! B - ;=====================================================================
/ K1 j0 S2 x3 z! W$ H6 z% B - ;Ti Le Ban Ve - 1 : 100
# j) o6 u- V2 o7 S b- }( @7 {% C - (Defun c:kt4a ()
" }! E9 \+ E- ^, h - (setq mv_sc 100);Ti le ban ve
5 q# F5 \# s. _' ^5 F9 x( Q) A. } - (setq x4 297). N4 ^' f" u: U0 k+ _0 B2 N, `
- (setq y4 210); O6 z; t0 Q5 E+ |3 f5 s
- (setq x4 (* mv_sc x4)
) U5 k" V6 U C7 X+ Z! [ - y4 (* mv_sc y4) )
# G- e( z. M9 I - (command 9 z; j0 N3 n4 ` B! `( P% x
- "LIMITS" "0,0" (list x4 y4)2 a9 d F' f8 C2 ^7 p6 [' Q7 y& r
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
, F) g% p0 }( c2 @ - ;Khung CHU NHAT Chinh
" z$ g& v7 h v2 m: m) h6 @ - "RECTANG" "2000,500" "@27200,20000"6 U8 K' ~. ~6 \0 A% d
- "RECTANG" "2200,700" "@26800,19600"
# C& j: y3 a1 t# @' u. A# X& L% g+ S/ | - ;Khung Ten Chung
) [; d) s L2 V! @4 p l ?2 b - "RECTANG" "2200,700" "@6500,1250"& b2 N( X# \$ t* f2 |4 B6 r
- "RECTANG" "2200,700" "@15800,2500"# j# F! |! C1 t$ X
- ;Ten Ban Ve3 c# w B9 c% c5 C2 b
- "RECTANG" "18000,700" "@11000,1250"
# I8 d3 S8 ?+ O! T* e4 O$ F - "RECTANG" "18000,700" "@11000,2500"" q1 }6 O% m# m P8 i4 p
- ;Khung Ti Le + Ngay Thang Nam; }* A$ e- t% s; T/ y' ^2 x
- "RECTANG" "22500,700" "@2000,2500"9 p. n+ V& m& N: D4 q
- ;Khung CHU TRI
7 M0 A( x" d& e. T( e+ t - "RECTANG" "8700,700" "@3800,2500"
: b" {4 G! M# Z5 ]' w- O - "ZOOM" "_a" ))- S$ u P" L: r, d6 T/ T. P
( C% Q3 s$ K9 d4 y* ~4 t4 i- ;;; ============================GHI CHU Khung Ten========================7 G- f, i% X* L" b' X
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========2 e# p4 C+ ? M, @+ p
- ;;; =======================Thuong Dung Font Romant.vnh===================
1 Y: S, U' \+ n! |& E4 s - # M/ c* b) m, [. }/ q
- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1), E! L! o! ^- G [; ^& k
- (setq oer *error* *error* err2)
3 R# t/ W8 k z - (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")
7 r# E1 c2 _$ r - (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). "))8 _1 X# D. \5 b$ c6 Z' ]
- (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))
/ u9 y4 t5 R+ T1 U3 t - (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))
' z) i( d# b) g" F% n - (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))
/ `* Y( M( \; ?5 Z: ?4 q - (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))
1 F L9 n6 y' [% k2 R - (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))
y7 L S1 b7 A, o/ U7 [# o - (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))
3 a' `! }3 ?" j1 n! A - (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :"))
2 L% z8 f- S- V: y- M - (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))
. f8 [; E6 _6 v6 ?1 s% t - (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :"))! r" a- ^; `$ v5 g5 ?7 Y$ {
- (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :")). d& W" \ [% b; A$ o* l k
- (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))
$ s. c. U; x3 X3 W2 E* q. ? - (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))
/ p% P4 y4 X! y - (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))+ e0 {8 v9 H |- l3 C
- (setq pta (getpoint
# ]" N8 I3 T4 Y0 P; \ - "\nPick first corner. : "))$ Z4 B( C9 ]" @0 X' j
- (setq ptb (getcorner pta& B! L( |% O5 Y+ [
- "\nPick second corner. : ")); ~) }% J: f9 M8 P# W
- (setq ptc (list (car ptb)(cadr pta)))
: @: B0 e8 o5 i5 R: S( K: i3 Z4 s - (setq ptd (list (car pta)(cadr ptb)))
2 ~# h; u+ R8 i: [) E& M% o - (setq ang (angle pta ptb))
4 ?2 w( D1 t! D2 S8 f) x - (setq d1 (/(distance pta ptb) 2))- n6 S7 [5 Q7 h" i7 t; H) r; ^
- (setq cp (polar pta (- ang (dtr 0)) d1))% G8 k# U% Z7 i2 L3 p% Z0 y
- (setq X (distance pta ptc))
+ t. _- } N9 O5 k - (setq Y (distance pta ptd))
$ b4 L, O# O1 c - (setq X1 (rtos x 2 1))& l/ l0 ]! D( l4 u2 r- B9 x- v
- (setq Y1 (rtos y 2 1)), R, C; Y" S, T
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))9 t2 X1 T' n2 R9 T" p
- (command "TEXT" "c" cp "0" CPT "text" "" rmsz))% m; s7 @, r1 i; `. i+ E' B3 L
- (defun dtr (angg). x8 l+ y$ |2 L% J5 L: K
- (* pi (/ angg 180.0)))8 o: |7 f& b& K
- ! P Y0 V5 C4 ]; G+ Q! W7 S
- ;=====================================================================0 I/ e& e% H3 r
- ;==========================DAT KHO GIAY BAN VE - KIEU 1========================
* v" M# g3 [- D4 b - ;=====================================================================
1 [' ^2 n) Y) E6 m5 [8 t2 [' P
3 ?; V) q. j5 h1 }5 Z- (Defun c:a6 ()( |5 A1 L6 H8 S- S3 q( V& s. {
- (setq mv_sc 100);Ti le ban ve! s5 s) G; j' ~! P% L4 z
- (setq x4 74.25)
1 i5 U3 f- ?4 W, n4 p - (setq y4 52.5)
) t2 K6 ~* ]( l2 e, _ - (setq x4 (* mv_sc x4)
' f7 k0 k; r4 g$ [5 j - y4 (* mv_sc y4) )
5 v! _3 p, r& T) T4 {3 M" L9 j - (command
* o; l% A/ i3 H% f- ~ v( }+ U - "LIMITS" "0,0" (list x4 y4)( f6 u, a5 L6 a9 ?8 o8 L+ ]
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"' \4 ]$ ]1 l! x" N3 q7 n' g: k
- "RECTANG" "125,125" "@7175,5000"
Y( J7 r |9 v2 f1 `4 k3 [ - "RECTANG" "175,175" "@7075,4900"8 P9 y1 W4 I3 C2 i/ H8 h8 v
- "ZOOM" "_a" ))
* G# c, V8 j& ` - ;=====================================================================
# _5 S: T$ w0 h! Y$ L7 s - (Defun c:a5 ()! W' t) a/ o+ ~( m7 R7 O
- (setq mv_sc 100);Ti le ban ve
) _" Z! s' g9 k% _, T8 x: {9 s - (setq x4 147.5)
+ M, j8 M0 a8 n2 B3 m# o' ` - (setq y4 104)
. n% O) \6 p0 Z8 F - (setq x4 (* mv_sc x4)
3 l3 z+ T' U8 i# H( k2 j - y4 (* mv_sc y4) )
; Q) z6 U! ]% F l, n - (command
$ u9 ~* X, F; X5 W+ ]; y - "LIMITS" "0,0" (list x4 y4)
- ^! K5 r0 `5 M" K - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"2 x2 } e; X I+ q1 V( N4 A9 @
- "RECTANG" "250,250" "@14350,10000"1 o- C* O1 ?' V! Q" s- j" l
- "RECTANG" "350,350" "@14150,9800"0 H8 n/ P/ v! m( p5 i
- "ZOOM" "_a" ))
4 r; E5 a, P8 `1 I; C2 x - ;=====================================================================. X( G! j$ o/ |: g! o
- (Defun c:a4 ()" M+ r" @" j: G! ^ Q
- (setq mv_sc 100);Ti le ban ve+ e, W# B/ Z, _9 a. T) Y7 s- n. `
- (setq x4 297)$ E; M0 g2 o* Z4 w. U9 Y \
- (setq y4 210)
3 b* }: Y- ?, N% O" {1 l - (setq x4 (* mv_sc x4)
1 s" u& G, ^0 }/ F0 _ - y4 (* mv_sc y4) )
u/ |! d; X( u0 A+ X! [, \ - (command
1 ]- t+ C9 h" B% z- J: Q$ A4 R1 P - "LIMITS" "0,0" (list x4 y4)3 ~% K0 F7 }0 m# `, h- |
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"; z2 ^0 S! E$ U7 {. [) @) G5 s/ m! Y) h
- "RECTANG" "500,500" "@28700,20000"
; \1 |5 j4 a/ v$ G# l- N J - "RECTANG" "700,700" "@28300,19600"( z) B" `; @( c; @
- "ZOOM" "_a" )). v; `( [; A; N0 B
- ;=====================================================================
" L) J: k) O( i2 P: C - (Defun c:a3 ()8 {2 z& ^" Y$ p, U" v6 P4 q
- (setq mv_sc 100)
2 u' U2 W; r5 l3 S; @4 A - (setq x3 420)! |4 s! k' k' k7 Z- m' X) H" q
- (setq y3 297)& R* F e; }4 u/ m! a
- (setq x3 (* mv_sc x3) 9 B( Y; i* j3 z2 T) f
- y3 (* mv_sc y3) )
( `) @9 l$ R0 I. e, P( {5 W4 p' D8 j - (command - H' n% O( A+ O' a
- "LIMITS" "0,0" (list x3 y3)
' m4 S$ x. O0 c( B( w% D% H( U - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
/ Q3 K0 w1 M/ T - "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"
' _4 V" G1 y/ s9 D( W - "RECTANG" "990,990" "@40024.28571429,27720"
; \7 [5 W) e( v, i& v - "ZOOM" "_a" ))
: L+ i1 I# x" G" N; y3 L% l - ;=====================================================================
! e* g e h* A; H - (Defun c:a2 ()7 h' w) K" M9 u& j& y& _4 c5 k
- (setq mv_sc 100)
7 n+ n% }) W- R2 W - (setq x2 594)
& J e4 `2 d% U6 f: v1 U7 U: y - (setq y2 420)# T& B. h ]$ b C$ z7 l( J) F
- (setq x2 (* mv_sc x2)
) |, _8 I) K/ q& E3 V - y2 (* mv_sc y2) )
# ^" O# ^6 ^( h) c+ C* M: y - (command
" Z) o, w- [) Y& J& y( F& R - "LIMITS" "0,0" (list x2 y2)
4 E+ \, m; v1 |' B - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
) G% ^1 c5 ^$ B$ o2 ?5 P3 Y - "RECTANG" "1000,1000" "@57400,40000"
8 z/ m$ y& g" t4 M - "RECTANG" "1400,1400" "@56600,39200"4 e- r& d* o3 B6 C
- "ZOOM" "_a" ))6 a9 I( F" y/ u& c8 Q+ m
- ;=====================================================================4 r; x) j1 f/ ?
- (Defun c:a1 ()
, d0 K, T, T- \( x4 |1 | - (setq mv_sc 100)
, e }9 ?5 X r2 S$ j4 k - (setq x1 840)0 z1 \( C" T+ a3 M, e& I2 V
- (setq y1 594)8 t3 U6 i9 \! c h* o& G
- (setq x1 (* mv_sc x1) 4 m& ~$ f+ V! I6 {2 r7 {7 p9 X5 G
- y1 (* mv_sc y1) )8 @; F9 C. U# [% P
- (command
' ~4 U4 d- r' `0 q& @9 B. j) O6 v - "LIMITS" "0,0" (list x1 y1)
& [8 K/ T3 N1 o; h' V! e3 W - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
% ^' F0 p J7 c$ [$ E% e - "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"3 b# n% v7 q2 p- O- ?/ [
- "RECTANG" "1980,1980" "@80048.57142857,55440"3 E- k- i c& T5 q
- "ZOOM" "_a" ))
& ~' C" \# _( O) t0 V - ;=====================================================================
: Z3 @2 G+ b6 h - (Defun c:a0 ()
' ?4 N: E- ]6 g5 S# f - (setq mv_sc 100)$ D) U: v: P5 l" ^! o
- (setq x0 1188)
5 x8 |! ?( y) V$ N% j, M - (setq y0 840)
/ Z( J9 o; S: N# U3 ]; o - (setq x0 (* mv_sc x0) % X; }8 ~$ p# a ^" Q# t8 j' B
- y0 (* mv_sc y0) )
+ Z, `& v! r; J# j/ K1 K - (command d: I) b- ^9 n4 d, E' M" o: _
- "LIMITS" "0,0" (list x0 y0). u0 q9 l$ }1 Y* `( Y
- "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"- a, t: w" u; z& v0 Q% Q! |
- "RECTANG" "2000,2000" "@114800,80000"
1 z Y6 O! N/ v8 o2 | - "RECTANG" "2800,2800" "@113200,78400"' {) d B" w3 H
- "ZOOM" "_a" )) }& H' d/ S9 T" r
H- S2 s0 H0 {) b+ `( U- ;=====================================================================
( l9 `" n6 \7 t8 F4 J& ~ - ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================
5 ~- P" ^1 q' ] - ;=====================================================================
7 @( o% L' H! m0 }! v
/ b2 A9 Y! w! S- (Defun c:6a ()) h9 F( B" f1 P7 o: K# I, ^
- (setq mv_sc 100);Ti le ban ve
# E/ w4 z' m+ M5 j - (setq x4 74.25)) g( _/ X' R. `5 d( Z
- (setq y4 52.5)- P% ?7 i9 P9 B7 A$ n9 l. t* I
- (setq x4 (* mv_sc x4)
4 [& I8 x& a) P8 d - y4 (* mv_sc y4) )" Q3 R. p. e6 s1 u0 f3 C
- (command 3 d4 ^/ c8 R; P) D$ d
- "LIMITS" "0,0" (list x4 y4)
% m3 \ T3 i5 {6 _ - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
& a i# ^/ ]6 k0 u0 X; ? - "RECTANG" "505,125" "@6800,5000"2 x/ L7 z: u) p5 i6 C; S4 H! v& o0 d
- "RECTANG" "555,175" "@6700,4900"" {( j" C5 P: o. j( E7 i
- "ZOOM" "_a" ))5 y( b1 u* j- d4 f0 A6 ~
- ;=====================================================================& F5 P, x) Z$ O. W; x8 N/ P# F
- (Defun c:5a ()0 i# b6 o/ Q5 R/ W# _( e
- (setq mv_sc 100);Ti le ban ve+ D4 Y* J9 Z8 {. r9 Z* p2 n; \ L- x- Q
- (setq x4 148.5)5 S+ x1 T* x# o" X4 L
- (setq y4 105)
0 y: ^' \4 o& C - (setq x4 (* mv_sc x4)
/ l) n: i, V' e/ F1 x' p& c5 l - y4 (* mv_sc y4) )
5 {$ a0 J4 F" Z3 f! Z' x - (command
7 {. B/ o) u3 Y! { - "LIMITS" "0,0" (list x4 y4)1 Q+ Z. \# Y% h* ^9 O8 Y
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C" n9 f0 q+ s _& h* o
- "RECTANG" "1000,250" "@13600,10000", ^. Q S G/ v) t9 E x3 A
- "RECTANG" "1100,350" "@13400,9800"- P# c- D1 C, Z
- "ZOOM" "_a" ))) M0 o6 k8 G5 d1 |
- ;=====================================================================
+ Z# o' a O8 q" g - (Defun c:4a ()
1 r. j" W7 ]8 @, J) \9 J3 R - (setq mv_sc 100);Ti le ban ve
! J" e0 {# h0 I% k9 I8 `. R4 H - (setq x4 297)
" C2 I$ ~' i X$ s+ K- C. \ - (setq y4 210)6 y4 s7 {, I# F4 Z2 B
- (setq x4 (* mv_sc x4)
$ W1 Y' J/ U A# `; n - y4 (* mv_sc y4) )
! `6 Z+ d7 b2 h* u/ G4 G - (command , A4 R% S2 R9 n9 D' L) Y: o: O& p
- "LIMITS" "0,0" (list x4 y4)) l3 v2 F: D8 g% i" T
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
! h% Y* M( t5 {. d - "RECTANG" "2000,500" "@27200,20000"6 _. L9 u! x: @5 l
- "RECTANG" "2200,700" "@26800,19600"! n! s6 t! V) U
- "ZOOM" "_a" ))
% y. J. y# M& e2 Y! Z( L. Y - ;=====================================================================
9 Q0 ^2 h" O' ~4 I - (Defun c:3a ()
8 O) W! }1 ^' t3 r - (setq mv_sc 100)
M: u0 _7 m5 M) i" G, z- |- g - (setq x3 420.0428571429)
+ e- H% h3 {5 B9 E" z0 F - (setq y3 297)1 @& K2 I' \% c5 t) ^! ]+ }+ _
- (setq x3 (* mv_sc x3) 4 y/ i7 X: F/ O* A7 u
- y3 (* mv_sc y3) )
" n/ {) g1 f4 D3 |; W/ I - (command
( |5 N0 ~8 \) v" f; U - "LIMITS" "0,0" (list x3 y3)
" M! X8 g9 ` X( ]& V - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
/ R5 @# _6 ?* S; E X - "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"
. [/ q k# h! e- x& G8 M - "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"
7 p" N, s' P6 U/ B - "ZOOM" "_a" ))! [! l( m* C v2 t2 y: A( g/ m
- ;=====================================================================
( O/ C" S% T4 c! z - (Defun c:2a ()/ G) N$ t7 H+ P5 t. r4 v3 b8 V- u: N
- (setq mv_sc 100)
" ^$ J( X9 p2 s# {5 Z - (setq x2 594)
. X7 n- c, G; p1 _1 y, x1 @ - (setq y2 420)
3 d: i4 g8 @& c. i' V5 Q/ D5 S5 F - (setq x2 (* mv_sc x2)
7 r, I* ]3 R7 l: P - y2 (* mv_sc y2) )
( r( Z. S) e7 G9 s+ B. E - (command - d* l$ O, t$ _
- "LIMITS" "0,0" (list x2 y2)
* Q6 g- g W) L8 D - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C": H% O$ V9 I6 M+ g& x* T, Q: Y6 _+ \% |
- "RECTANG" "4000,1000" "@54400,40000", a- F v7 G5 g; R( H& C% [7 Y
- "RECTANG" "4400,1400" "@53600,39200"
( D1 [ N' o0 q- ^( P - "ZOOM" "_a" ))* H- D8 n. e2 L( _
- ;=====================================================================8 q# f6 K7 v" m- U/ d, K! |
- (Defun c:1a ()6 w& G: j6 g9 p- g7 G
- (setq mv_sc 100), T" ~7 |" v8 B
- (setq x1 840.0857142857)
- Q( B' ~1 w' n) g. f$ a; n - (setq y1 594)! {8 F0 v+ \# H
- (setq x1 (* mv_sc x1)
5 d) G2 ?, J/ z( J2 _1 @ - y1 (* mv_sc y1) )
; g1 C) p; s2 W. ~ - (command 5 X8 z' I( k/ a, K
- "LIMITS" "0,0" (list x1 y1)
. I. ~: \3 |2 Z - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"2 J" {! d! |* L
- "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"4 |# [3 f; b+ m( Q- V. w
- "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"
% {; H* S# B+ z9 ] - "ZOOM" "_a" ))$ i5 J3 ^: g4 g* [" U: S: m
- ;=====================================================================
- k3 s/ Q2 k; n2 B2 ` - (Defun c:0a ()
( x/ _8 C5 e% c1 ?3 l4 I" t - (setq mv_sc 100)# U9 n0 y* J" R5 r1 t
- (setq x0 1188)
% X$ B/ h, P8 d2 F - (setq y0 840)* K, Y e9 H9 u: F
- (setq x0 (* mv_sc x0)
3 _! c- U1 `2 q, C - y0 (* mv_sc y0) )( e) R, S F i1 z5 q. {
- (command % j; w: C3 D9 E9 u- Y I3 Y8 c
- "LIMITS" "0,0" (list x0 y0)# T2 L8 i. V4 I
- "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"- ?" e N; o) Q
- "RECTANG" "8000,2000" "@108800,80000", }; _8 q/ w! {( b1 t7 ^) N) `
- "RECTANG" "8800,2800" "@107200,78400", i; j: _( l0 V% I. t9 @
- "ZOOM" "_a" ))
5 }) ]3 q, x: @, b9 P& J4 N
+ u6 W: B" ?# e. C/ y% |/ x- ;=====================================================================& A% b8 D, N, G+ G2 d# B1 [% J' t
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================/ Z5 |1 o; X; h2 f/ h
- ;=====================================================================0 [# `$ W9 S9 V
- (defun c:khogiay (/ oldlst a b c d e f g h kho TL)
8 V0 H2 ~. s: d! | - (command "undo" "be")! d/ }# `* O2 Z. U. [
- (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))
" p1 B! o* }# d+ g - (setvar "CMDECHO" 0)
% o: I9 l4 H# W' } - (setq a (getpoint "\n chon diem chen :"))3 b; t" Q; ]2 X8 v" |& P/ C0 Y
- (if (not TL) (setq TL 1.00))
- _ ^/ u# T6 T% ~5 ] - (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:"))): L f, A% k U% i
- (if TL1 (setq TL TL1))
, A7 Y" p i; e& x& Q - (setvar "osmode" 0)1 \8 `. O6 ]3 T% M' ]5 `& a
- (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" ""))
. D0 Q# n$ F+ Z& v/ D+ C# Y( \. J; m - (initget "0 1 2 3 4")6 M2 m( |. M: D! @7 \
- (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))8 S3 W- {$ @/ ~* O! v
- (if (= kho "0")
- Y3 v! P$ L) ]7 b. d - (progn% @& O5 ~; k; }. `8 ^" e% u
- (setq b (polar a 0 (* TL 1189))); e3 M; M1 l1 m! }* m+ o0 l# u
- (setq c (polar b (/ pi 2) (* TL 841)))1 R6 ^3 {; D9 T* N. g ]4 Q# A, f4 ^
- (setq d (polar a (/ pi 2) (* TL 841))); m5 x; A% g. m0 h6 z% X
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))* Q0 s. F$ s, Y j. s$ d5 w: w
- (setq f (polar e 0 (- (* TL 1189) (* TL 24))))
6 D' ]1 _) N9 b& l - (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))
) h; r" g" M& j - (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24))))2 s) }6 D! l' h
- (command "Pline" e f g h "c")
2 ?! W& M9 v8 w# ^$ L" f2 H6 b - (command "change" "last" "" "properties" "layer" "0" ""): b' U- w- y# d& Y6 j1 R
- (setvar "cecolor" "4"). q# d6 Z; e0 ?
- (command "Pline" a b c d "c")
S! W8 H6 {9 N - (command "change" "last" "" "properties" "layer" "defpoints" "")))
& ?" v- ~7 V* F; {! ~ - (if (= kho "1")
o! E) c# Y* o5 b. g; a+ ^ - (progn$ J3 V$ Q/ N! M. v, V" l
- (setq b (polar a 0 (* TL 841)))
1 _; J5 j4 G- \7 z% A* M% r - (setq c (polar b (/ pi 2) (* TL 594)))
( Q7 G7 l' |7 h9 q - (setq d (polar a (/ pi 2) (* TL 594)))6 k6 ?: B2 k1 M3 S. W( e
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
# y* C- W! L( m& G, O6 C b - (setq f (polar e 0 (- (* TL 841) (* TL 24))))
$ U7 L0 F6 Q7 ^. f8 J0 W - (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))
5 Y: i# K4 J* u1 C1 K1 m- A0 C8 C - (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))( o& Z0 c* P+ B; l" ^3 _
- (command "Pline" e f g h "c")
! ~% A* w8 ^3 N - (command "change" "last" "" "properties" "layer" "0" "")6 P$ f A9 g/ ?1 y4 `- _
- (setvar "cecolor" "4")
% V4 Y3 W# n4 h( t* r$ y, o - (command "Pline" a b c d "c")
+ R0 ]8 I- G" w - (command "change" "last" "" "properties" "layer" "defpoints" "")))! R% O& C2 M9 {+ }
- (if (= kho "2")2 l9 b' c3 f' r- z, O6 ~' e
- (progn
7 B6 _/ L2 ^6 F3 u7 q) u. a - (setq b (polar a 0 (* TL 594)))9 _! F A" @' |/ G$ n) |( R& g
- (setq c (polar b (/ pi 2) (* TL 420)))
$ g3 Z1 [! Y. s* ^" J7 m1 U# L - (setq d (polar a (/ pi 2) (* TL 420)))
1 b$ g S4 ]& u; j! @ - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))$ }, ~6 M0 w& }: | L
- (setq f (polar e 0 (- (* TL 594) (* TL 20))))
* @6 f* ]# D, x9 }, s - (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))' P5 O! F- Y' K! }( Z
- (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))
3 B3 }+ u; b9 v2 v; |: S; i6 I d6 ? - (command "Pline" e f g h "c")
: m& _/ f: s2 I4 z, x - (command "change" "last" "" "properties" "layer" "0" "")4 j* w7 K0 r: i. r5 K+ |1 M0 J
- (setvar "cecolor" "4"); G, c& z. X. g3 _: M4 ]
- (command "Pline" a b c d "c")1 n L0 e- `& v1 y* J
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
7 z' A. Q8 N$ c) u1 m+ Z4 l# j& M - (if (= kho "3")! T$ M+ A8 c0 Z
- (progn
; L1 G1 Q; O7 c" f# ]( P9 @8 H - (setq b (polar a 0 (* tl 420)))2 _ N- R b. M+ g# n! I
- (setq c (polar b (/ pi 2) (* TL 297)))
6 E( C; S' \( `: c - (setq d (polar a (/ pi 2) (* TL 297)))8 S3 b; Z7 Z7 q9 O' y
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100))))): z" q6 u" e8 j5 K5 h3 ^
- (setq f (polar e 0 (- (* TL 420) (* TL 20))))9 [9 x: m; j+ Q; S
- (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))
3 t/ \7 b1 O- n3 q - (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))
7 H9 k5 Q) V1 h5 {5 u - (command "Pline" e f g h "c")9 Y+ L8 `" J/ |! T# K; b& a$ o8 B
- (command "change" "last" "" "properties" "layer" "0" "")6 \) t" F$ K& w' a
- (setvar "cecolor" "4")
' j# ]! y5 M, P# H3 p( Z - (command "Pline" a b c d "c")7 y) b& ~- G% @* _8 N! S
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
4 S0 O+ Q! X2 H4 n" V - (if (= kho "4")9 m, W1 Z* z; O& o7 t
- (progn
/ @6 K, U c3 [- y4 d. {5 {+ s - (setq b (polar a 0 (* TL 297)))' _# I0 M/ G1 q. G6 P& V1 q
- (setq c (polar b (/ pi 2) (* TL 210)))5 ^8 m. Y1 s$ S% I1 n) I
- (setq d (polar a (/ pi 2) (* TL 210)))
( H& n& s7 c4 Y# I, {* h - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))! {& I- m% k' |) k( o# k t
- (setq f (polar e 0 (- (* TL 297) (* TL 18))))
3 O) o, ^/ s5 ^; D+ H - (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))
, L$ Z! ]$ W$ o, k' F - (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))( s9 p; B( l; ?0 Q
- (command "Pline" e f g h "c") " S- I' e3 p, L5 e4 B6 _- T
- (command "change" "last" "" "properties" "layer" "0" "")
3 {3 v5 B. L8 h6 G K, Z# K - (setvar "cecolor" "4")
* c7 p1 z6 ~3 t& y$ ] - (command "Pline" a b c d "c")
0 h' @* X5 Q! J' f! T4 A - (command "change" "last" "" "properties" "layer" "defpoints" ""))); W, W( S9 S' c$ @8 N' ~8 m4 H
- (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)
- G0 y2 ^' W0 w, m - (command "undo" "e")4 o |) r& h/ ?3 ^" ]$ l# N. W
- (princ))
: R- F7 R7 e. m3 h ~( P9 i, R - ;=====================================================================8 q2 N- O5 z$ w
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================% T1 R2 M( m! _ c2 m+ K
- ;=====================================================================
7 {# J! ~7 Y0 d' r3 ]1 O) G& R5 L9 n
( s# N M6 O u# V1 s2 A# {- ;=====================================================================
. S) z5 }$ s5 b" C - ;===================DAT Ti Le Theo KHO GIAY BAN VE====================; x5 q' } ~2 E% h U
- ;=====================================================================' F1 A6 M' E$ j/ h) ~
- ) Z3 G2 c* o5 G* N
- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""8 n8 d* `4 I0 f+ t' K4 |) f
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""# ^+ \4 ^0 c. `
- "M" "MANH" "C" "9" "" "Lw" "0.1" "") j3 f5 T1 ~' \8 O4 ?
- "M" "TEXT" "C" "7" "" "Lw" "0.12" ""; h8 d! }, o- F
- "M" "DIM" "C" "1" "" "Lw" "0.12" ""
$ Y: \9 P6 h& K- B - "M" "THAY" "C" "7" "" "Lw" "0.2" "" y) n. F; {. { @1 k
- "M" "NOITHAT" "C" "3" "" "Lw" "0.12" ""$ ~) \6 B1 g9 Z/ P
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""
, f3 {1 P" `" J( ?2 O- Q - "M" "COT" "C" "1" "" "Lw" "0.3" ""/ V, H6 I& @3 {7 Y* m/ ?5 m
- "M" "Defpoints" "C" "7" ""5 F8 W: \8 Z! f* I& o9 e8 Z) d7 F
- "M" "0" "C" "3" "" "Lw" "0.12" ""
7 j, S `, t0 \ @9 w - "M" "CUA" "C" "6" "" "Lw" "0.12" ""
& _" y4 S1 F' @2 } - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
, v9 p( a$ Q' B - "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))$ r# v" @* w" [* G |8 x, `
- (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" ""
9 R0 I9 b5 t8 E' b - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""! p/ `, q6 u+ O4 ?1 Y/ u5 _1 I
- "M" "MANH" "C" "9" "" "Lw" "0.12" ""
o. B1 O4 G9 l) |) m1 M( V( W - "M" "TEXT" "C" "7" "" "Lw" "0.12" "". C% l6 ~ N' U
- "M" "DIM" "C" "1" "" "Lw" "0.2" ""' z6 J& U, q9 D, }) _, Y
- "M" "THAY" "C" "7" "" "Lw" "0.2" ""
% ~1 s* O1 H0 Q( b7 ?3 R - "M" "NOITHAT" "C" "3" "" "Lw" "0.2" "" Q B6 H$ P: K; \1 b+ R
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""
) y; V" e9 {* l; _( @( L - "M" "COT" "C" "1" "" "Lw" "0.4" ""- [- q1 }! L5 P& |4 R2 l
- "M" "Defpoints" "C" "7" ""* ?) Y0 G* g. D4 `+ d
- "M" "0" "C" "3" "" "Lw" "0.2" ""- A$ e) c9 g! l& x, C+ h5 b
- "M" "CUA" "C" "6" "" "Lw" "0.12" ""# q0 b+ f/ X4 m: \1 }' V; g/ p& K
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
+ A4 }4 F! V( J. v( [ - "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" "")): B4 X, V% N4 {7 N
- (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" ""
& E) r8 C6 |5 s1 q( x" F8 _/ s: M - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""
) J! y% l; u0 |" v; j5 N( g - "M" "MANH" "C" "9" "" "Lw" "0.2" ""
+ c" ]; k# e" F! O - "M" "TEXT" "C" "7" "" "Lw" "0.2" ""1 x; f( ]( c. t$ k3 J4 V2 I8 |# M
- "M" "DIM" "C" "1" "" "Lw" "0.25" ""
: }. j( O$ Z0 O3 G$ C - "M" "THAY" "C" "7" "" "Lw" "0.35" ""
0 \, i' Z9 {9 y E& c/ r - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""' M/ j' s6 S" _' z
- "M" "HATCH" "C" "5" "" "Lw" "0.15" ""
" j) l/ a3 O3 v* ~' k. {6 Y - "M" "COT" "C" "1" "" "Lw" "0.6" ""8 S7 h' H, x3 q3 I& N' l+ j( R
- "M" "Defpoints" "C" "7" ""
: E5 ~8 \: H- t: `6 J* {: W; G$ l - "M" "0" "C" "3" "" "Lw" "0.25" ""5 w: J' j( t( b# U" g5 z) l
- "M" "CUA" "C" "6" "" "Lw" "0.25" ""
7 D K+ z/ g' L- @( q1 G - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" ""
. f( k" ~: W5 q - "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))
1 c5 E$ w; }! N* h- ]$ [% g -
) U$ F) P2 q2 m2 }' |% \ - (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""# Y) ^, M1 r& u: o$ D( q
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
E/ q; f8 y$ ^* w5 } - "M" "MANH" "C" "9" "" "Lw" "0.25" ""
2 w5 f3 \7 K( O. Y - "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
) T1 u3 _/ d! v; a% K4 u' ^ - "M" "DIM" "C" "1" "" "Lw" "0.35" ""5 U% L3 B3 c5 V/ \% _
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""
' L1 i8 k0 q; l) z0 A& f* x - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""
5 ]& D3 V9 s* `2 Q* R - "M" "HATCH" "C" "5" "" "Lw" "0.2" ""; o K2 P# |4 A
- "M" "COT" "C" "1" "" "Lw" "0.7" ""# y/ e0 j) b5 `8 ]8 L
- "M" "Defpoints" "C" "7" ""
- S `9 ^( c8 Q4 Y5 M4 E - "M" "0" "C" "3" "" "Lw" "0.25" "", f Z" @( T# l8 v' m9 D+ e
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""
" `: W* e Y5 M: g& E - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" "". Y# n* p8 v- K/ D
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC)$ h+ o( U5 c5 [ |3 O- E
- 6 K) k" S7 w# a
- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" ""* j( Z$ s+ n7 d) R2 x' V+ E
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
. I u B! w7 S$ [6 L' P* k$ s - "M" "MANH" "C" "9" "" "Lw" "0.25" ""
7 p* b( d- b& f% T. p4 C - "M" "TEXT" "C" "7" "" "Lw" "0.25" "", H* t8 N) w! @
- "M" "DIM" "C" "1" "" "Lw" "0.3" "") A: c A" @" z6 y$ d! t. U
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""
5 w8 v3 x; K, @1 o# C8 r7 \8 o - "M" "NOITHAT" "C" "3" "" "Lw" "0.3" ""; r" E( U1 W' @8 p8 t0 T
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""5 [, x2 o3 B3 @0 }" g$ b
- "M" "COT" "C" "1" "" "Lw" "0.7" ""
& z% q, Q2 d Q1 w' a% } - "M" "Defpoints" "C" "7" ""
& `9 V; y) K# S( V- M - "M" "0" "C" "3" "" "Lw" "0.35" ""$ j' W' T: Z* _
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""
% H9 A# g4 N* a M - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
- e% N }) t6 R - "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))
`! u0 p i% F5 j- w4 C; U - 1 @# k" S0 `# m/ ]; T" H" j. w
- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" """ G5 X- y+ z$ E7 ]' x1 S
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""1 i5 ~; j6 Q" |5 x6 s2 e$ e! R
- "M" "MANH" "C" "9" "" "Lw" "0.35" "". O: A& g% U" X3 h$ X! F% b
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
# L$ W2 \# r/ l9 s - "M" "DIM" "C" "1" "" "Lw" "0.35" ""
4 `& Y, Z$ U" n3 K; M9 ?" } - "M" "THAY" "C" "7" "" "Lw" "0.4" ""
4 H' U/ N0 V+ w - "M" "NOITHAT" "C" "3" "" "Lw" "0.35" ""
& l/ k! }8 o/ W9 M9 Y8 A: f X2 @ - "M" "HATCH" "C" "5" "" "Lw" "0.25" ""
$ j- R9 S8 J+ e - "M" "COT" "C" "1" "" "Lw" "0.85" ""8 S3 q6 w q' ~1 @. p/ x* @
- "M" "Defpoints" "C" "7" ""
4 {6 I3 y. B3 V; J4 \ - "M" "0" "C" "3" "" "Lw" "0.35" ""! P& D9 U, \7 {1 o2 P* I/ S
- "M" "CUA" "C" "6" "" "Lw" "0.4" ""
9 J Z0 W! `2 X9 a) z, ] - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" ""
- e B/ k& E7 ^' `, F" k - "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))
- Q. D8 b0 P. o$ i0 ] - 6 l' X. C0 O& f7 s2 x# S6 f4 }$ L
- (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" "": l" x( q/ C% e ~! h! @
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" ""
, P4 R7 W1 [9 L! n5 X% d% g - "M" "MANH" "C" "9" "" "Lw" "0.35" "", q/ q3 s% i$ E6 C! G% D
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""( ?1 h5 q9 |3 W5 l3 p
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""7 U! ~# k' _4 P) L$ q9 o1 L' H/ @+ |
- "M" "THAY" "C" "7" "" "Lw" "0.5" ""5 R- o0 `) X" I: R
- "M" "NOITHAT" "C" "3" "" "Lw" "0.4" ""
! b/ K8 [9 S7 L0 N. h0 ] - "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
4 [" ^; l: Q1 N0 I# v3 P0 l - "M" "COT" "C" "1" "" "Lw" "0.1" "") B6 }4 ^6 d9 w) \( r
- "M" "Defpoints" "C" "7" ""
' s7 O. C) f& S# S( p - "M" "0" "C" "3" "" "Lw" "0.5" ""
8 a: @( L( U& _. E- J - "M" "CUA" "C" "6" "" "Lw" "0.5" ""
% x* c% L& k( ]: C# t( s+ P - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""
3 X1 {8 m8 V/ a - "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))) n3 J/ I8 ^( J2 ^+ `4 V+ z8 u6 R
- (DEFUN C:O () (COMMAND "OFFSET")), N4 p" z* h& A0 y
- (defun c:s1 () (command "surftab1"))
) u" g8 f& q) T2 e l; Q3 ~+ B8 a0 T - (defun c:s2 () (command "surftab2"))
( B, _! _1 P/ K, b" d+ R - (defun c:ep () (command "explode"))1 d' J4 w7 A! F6 ?
- (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))
- H R; j- i; A% [ x0 k - (DEFUN C:QV () (COMMAND "QSAVE"))
3 g. H/ v# @8 V6 m) M7 Z# I - (DEFUN C:S () (COMMAND "STRETCH" "C")). P2 B+ A' R. j9 y
; r/ h$ e: l. ]. R$ l- ;************************** CAT DIM **************************
: [) r( K/ _- W) ]
7 h, j- ?5 s% R- Z0 g- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I0 S2 @6 t# W j4 p, O
- PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)* J1 E: ]+ D/ c
- (SETQ CMD (GETVAR "CMDECHO"))
" g- \+ [% K6 c1 [$ Z - (SETQ OSM (GETVAR "OSMODE"))
. X' O% X# k7 j" s+ y - (SETQ OLDERR *error*7 K" z' _% l6 ~& s! @$ a
- *error* myerror)2 K' g8 S1 x" k Z
- (PRINC "Please select dimension object!")
4 y9 r8 F. v- m0 ~5 H( ~. V - (SETQ SS (SSGET))+ C# O x2 V6 k8 a; |* D1 k
- (SETVAR "CMDECHO" 0)
6 r0 Y ^# h: J0 I( l - (SETQ PT (GETPOINT "Point to trim or extend:"))) o& Y5 @( P! n
- (SETQ PT (TRANS PT 1 0))
7 h' F. U/ j5 w- [ - (COMMAND "UCS" "W"), D0 N1 k2 O1 J. @4 n
- (SETQ LTH (SSLENGTH SS))
0 G- p2 J# f6 v8 Y2 Y9 Z - (SETQ DEM 0)
( J# H4 q0 j7 [, i3 o - (WHILE (< DEM LTH)2 q' |) Q% b9 i) {3 P4 |7 F
- (PROGN
: v7 z9 V+ q( F: V- b2 r - (SETQ DS (ENTGET (SSNAME SS DEM)))6 B* `, y5 [9 O3 ? ~: [1 A
- (SETQ KDL (CDR (ASSOC 0 DS)))
" a- X: _: e) g4 j* {" ] - (IF (= "DIMENSION" KDL)
3 y/ T6 F* J' U: A0 u1 x - (PROGN
7 o0 h0 u% r6 `3 L4 D - (SETQ PT10 (CDR (ASSOC 10 DS))) h9 v- Y4 [5 s7 a/ i
- (SETQ PT11 (CDR (ASSOC 11 DS))) a m4 w! S# T/ U- e6 W! e3 |
- (SETQ PT13 (CDR (ASSOC 13 DS)))
2 m- O l3 U3 ]% _- h8 Z! B - (SETQ PT14 (CDR (ASSOC 14 DS)))- c; d% c! J, Q, R. P
- (SETQ N70 (CDR (ASSOC 70 DS)))
5 A& G) I% k6 G; {! v - (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
! G B' p3 N3 h/ i5 m - (PROGN
! p* q1 V5 C$ t$ m - (SETQ GOCY (ANGLE PT10 PT14)): |2 i: r1 i2 F0 ?4 K. e; q6 e# m* k
- (SETQ GOCX (+ GOCY (/ PI 2)))
" d3 k% s$ w7 a% c& i - )
; |1 o! x9 R* _3 s: G - )
* _5 c2 j4 W+ h/ x" u: p - (SETVAR "OSMODE" 0)# Q9 D) [! Y$ Q) |6 z6 L" R
- (SETQ PTI (POLAR PT GOCX 2))" v- \2 J8 @% D
- (SETQ PT13I (POLAR PT13 GOCY 2))
( M9 }& s5 b6 v - (SETQ PT14I (POLAR PT14 GOCY 2))- I3 X6 J4 O$ @. p3 W
- (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))% y# s; z3 \0 p
- (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))
$ \! [! _6 t" W5 K - (SETQ O13 (ASSOC 13 DS))
- k6 \& Q) G: p) y - (SETQ O14 (ASSOC 14 DS))
; e* A, n2 [0 K+ i- ^* x3 b - (SETQ N13 (CONS 13 PT13N)) m3 S9 l" }! s2 v
- (SETQ N14 (CONS 14 PT14N))
! F; b" Y3 _# Z$ j7 m# | - (SETQ DS (SUBST N13 O13 DS))
$ Z. x. y4 K u, a2 @! Z - (SETQ DS (SUBST N14 O14 DS))3 S# W9 ~6 X @$ C# M
- (ENTMOD DS)
0 l5 q$ I+ E, q' A* k - )
* |# Z) M+ @9 O- p" i5 M - )
. ~" ~, H, d3 J) ~4 Y" E - (SETQ DEM (+ DEM 1))
- Q; M% _- m+ U - )
( T- i( m' c/ d - )
: y0 _6 L2 X, u+ E - (COMMAND "UCS" "P"); V# G% O' S7 E$ H' O
- (SETVAR "CMDECHO" CMD)2 }0 @/ ~6 j, z. e( c7 K# |* R
- (SETVAR "OSMODE" OSM)
6 x) T9 a5 X9 c - (setq *error* OLDERR) ; Restore old *error* handler( A* Y" o4 P- f- S, P9 s! t+ ]
- (PRINC)
8 `; N) D2 Z/ [0 a w3 W - )
/ h. O3 N {* E
" a% I6 Z& k' m& i- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI: ~; s$ k- j7 f7 _3 a4 e# t
- PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)
: B2 }$ @; g8 L$ _0 | - (SETQ CMD (GETVAR "CMDECHO"))& K, ?# x! b8 r8 D
- (SETQ OSM (GETVAR "OSMODE"))
5 t* h9 d8 V' E1 S8 [ - (SETQ OLDERR *error*/ l6 }8 w, c% b! m: p
- *error* myerror)
& S A* v. ~3 m G3 p - (PRINC "Please select dimension object!")
$ D( B3 ]4 }; z2 X$ H - (SETQ SS (SSGET))
* q* e8 `$ ~% R3 ^; O - (SETVAR "CMDECHO" 0)
. V7 n1 ~7 v! ?- p" b! s2 a - (SETQ PT (GETPOINT "Point to trim or extend:"))
* h. k7 G6 W/ r% [: ]* B - (SETQ PT (TRANS PT 1 0))
! ?; x$ M) H- C$ ?4 K - (COMMAND "UCS" "W")9 w- `( g+ U- ^. L
- (SETQ LTH (SSLENGTH SS))
; V8 M3 ~! l- _) C - (SETQ DEM 0)* Z8 s( t, m, b; Z% _
- (WHILE (< DEM LTH)! [6 W7 o n0 \# O$ s. p" X
- (PROGN
" S. B; R# F, b5 b" \3 r) | - (SETQ DS (ENTGET (SSNAME SS DEM))). {( C- q, t, @( f# U! Y
- (SETQ KDL (CDR (ASSOC 0 DS)))
# q6 J0 Z! I- c: j - (IF (= "DIMENSION" KDL) h: T& x' p7 D, B6 }' F; E! T
- (PROGN
2 o3 a0 y+ M' x# C8 n - (SETQ PT13 (CDR (ASSOC 13 DS)))
2 O, \; _& F! a( P6 z& R - (SETQ PT14 (CDR (ASSOC 14 DS)))
! h% b$ D( A( W - (SETQ PT10 (CDR (ASSOC 10 DS)))
2 _4 x5 }9 z( Q. X4 B$ O - (SETQ PT11 (CDR (ASSOC 11 DS))), e1 z1 _: P8 _- O+ s/ q
- (SETQ N70 (CDR (ASSOC 70 DS)))
$ Q! p$ W1 Q% Z. d3 p# d! _ - (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
& l& l5 t! s2 K, [, S - (PROGN
3 Z* p# v8 { S - (SETQ GOCY (ANGLE PT10 PT14))- i3 p1 _- j2 ?1 R3 K
- (SETQ GOCX (+ GOCY (/ PI 2)))
6 t6 q, Q) I! k4 x - )9 x. K ^+ {) s" m6 O8 p
- )
3 X: a" z0 Y0 |! V6 H5 a: h - (SETVAR "OSMODE" 0)
- i' n& p# R: H - (SETQ PTI (POLAR PT GOCX 2))
; Z9 ~5 F1 A! T% c& B' {/ Y$ {9 U1 W - (SETQ PT10I (POLAR PT10 GOCY 2))1 x0 V E7 T& D$ Q5 S" e
- (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))
/ S4 I5 U5 M' E! X* U- a - (SETQ KC (DISTANCE PT10 PT10N))
- k# t/ _3 t8 Z - (SETQ O10 (ASSOC 10 DS)); Z3 {4 D1 ^- v1 D1 e
- (SETQ N10 (CONS 10 PT10N))) }3 E, G; P4 E% b
- (SETQ DS (SUBST N10 O10 DS))
9 r% H6 s" M9 I - (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))# _$ Q( G; ?, x. ~, ]
- (SETQ O11 (ASSOC 11 DS))
/ I- g _! {; X& w! P. }( ] n - (SETQ N11 (CONS 11 PT11N))
+ j2 _6 N+ v; t) W! R) I4 f - (SETQ DS (SUBST N11 O11 DS))
* a- K# ]9 ? v3 c2 u9 l, Y - (ENTMOD DS): z9 q+ J+ {5 e# g
- )
) a, V, l3 d3 H' _. U - ); H N: t6 K, H; h
- (SETQ DEM (+ DEM 1)); P$ \, \+ O l8 D/ O# }3 x
- ): _4 J3 b, h& Q+ c
- )1 g: u# t+ G5 v8 p2 Q$ `. D
- (COMMAND "UCS" "P")
6 N* p- c9 Q, `( {: M9 F8 s2 o - (SETVAR "CMDECHO" CMD)
/ B5 K* d+ g$ N: L4 P; { - (SETVAR "OSMODE" OSM), H$ t' ~ ^- S" ^4 {
- (setq *error* OLDERR)3 s! p! r& o& t- o
- (PRINC)8 e: J% J' X* G) M- U2 q2 M- E! N
- )
% e9 P. N$ P5 ]( m& l5 l% D9 l - " w% U- g8 g3 Q4 f
- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================& s( ?- W7 ^5 G' k6 T% V9 n. w
5 O# u6 T' {8 D! E% i5 |- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")
! K7 L, T$ F8 e- |2 d- b2 v9 ^ - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")* C6 }, K- k+ \" o' L% B7 }- c
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
: p9 J1 X% q& i - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
; m/ g, U2 c5 u/ v/ k0 ~2 c f3 y - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")6 A: R4 C' |. Q/ `
- (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))- \( r8 [6 ]" s2 M5 K
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))1 f0 h2 ~! X1 m
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ)) l# h8 c0 v) N" T: n- v
/ c6 j; J' }. E. A7 _3 ?+ [- ;;; ================ CHEN COT (TUU) =================
1 Q3 G8 m f6 a$ [' E$ x, i4 t5 g - / ~8 z# b- [. e7 p3 E0 z
- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")8 u! |7 i; ~( ^* ~4 h& G# n
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
3 l" m& \* I$ y4 H - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
4 ^* @6 z8 i0 j1 @; ~9 C1 N6 ] n - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
$ c8 p) t# K8 P" l, e' Q - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")3 o- g: w8 L5 A2 L8 J4 s
- (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))+ }# k; y6 A* r6 d
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
) D6 `% N* R* F. H - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
d( t6 W0 ^! L8 J4 R r3 [ - , O9 P1 t( W: H* {6 w' ]+ t
- ;;; ================ CHEN KY HIEU THEP (TP) =================) T/ y5 p, ^+ b) F# C9 h; {
- . B' J3 h+ Z3 f, a4 [
- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")
2 j, r8 G* o0 J3 h1 b8 o - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
9 r. |9 i$ x' f O6 u& G - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt" n6 }5 ]2 s1 ]7 z) P
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))0 }+ P4 k/ e/ o" W
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")
9 r. T1 w/ Y' V+ z, `9 P - (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))
8 ]% y$ B( F% u - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt))) U7 R" f2 H' I9 s o
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
. G1 x+ }" f8 e q7 W6 @) u, J3 l
2 O" o. }* u' B0 Y& c% Z- ;=========================== TAM TUONG (TAM) =================================
* l3 m8 t" r3 t( S
$ j% b' u! z( |* Z, O- (defun c:tam(/ data_m)( O5 R! b7 M' ~8 g: }4 A
- (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0))
- ^2 P8 m* f2 B - (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))
0 o* ] w( A+ q; Y( T* j - (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)
% H" k/ E, i; @7 X3 n# E5 @4 f - (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset. x K5 ~! U8 G- \
- (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr3 c7 }3 Q% x- ^$ N1 v) T
- (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ)
, q. F, F+ v: |8 p, ~% | - )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if
2 d! Q5 z: I& F( b" n - (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1)
- N$ ^8 r4 _! g - distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)
; \- ]+ G# ?# d' a - (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1))), U1 }" g" `# `1 n, F" H! R9 Y$ C
- (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<
$ j- y/ D; t, K; e - (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)
$ ]* l7 u5 D9 u - distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))
+ z9 Q/ u) b8 ?- m7 N9 j - (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p4; C8 L* v/ q& A6 O
- (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not
" p' D! d! _# Y8 _$ `9 i - (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget
1 Y, F* b' }$ o" O% @. s - (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))
# z3 z; A+ f) S - (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))
5 L& z8 I; R) e% r+ l) S* h9 r% r - 0 p$ v; e9 q% j! A
- ;============ GHI CHU PHI (T1) ================
( K) d: R. ^& [$ g6 } - ( O6 Q: }* T3 R5 F1 y
- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))3 Y o! u1 S' v8 B1 s
- (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3
3 q8 c2 d9 h1 \* z - (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)# i- g9 I! o6 w$ h3 y: `
- (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)
! O% a0 O8 }5 f' w2 O6 R - ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1))2 E: Z4 N7 {6 R8 O/ \7 C5 W: j" G
- (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)7 M2 c% k o f, Y
- 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1)
$ g' ~' P" k/ ` - (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )& g. X1 u P6 z
- (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")! V$ b5 ^* \+ z1 y' C& L) p
- (command "ddedit" pause))4 g8 n6 S$ i. ~9 k7 U
- ! |9 E+ g; ^5 k M* |
- ;;; ========================== Join (J) =================
& Y" U B1 v. X* p( `+ c8 o6 W8 F
p; H8 g! ^" N$ }- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))
% ]& F8 E% ]- O; ? - (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? "))/ f, q/ d0 v* I
- (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)
4 q1 x9 d+ x! ?. X' N - ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")
) P- k. N6 g/ e, b/ Y5 K- i2 p: O4 L - (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC"))! \& `$ F: C" h' q V* q
- (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt ""))4 A0 N# t7 o! d8 e9 H+ P0 X
- (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" "")) 0 ]( v" V: J- r) J* V
- (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))
* X& ?: t) C @9 m$ m' i - (setq *error* m:err m:err nil)(princ))
; E+ N( u; `5 T; H& Z+ q" v! d6 P
" C2 j+ W% |7 b! D- ;=====================================================================
% H7 s. p/ g! z' C' {# p - ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.$ E# x8 r+ f ~- ^
- ;=====================================================================
& t" [( y8 W+ {0 X! } - - @8 p+ U5 X" ?( N3 H
- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old)
. s8 y+ ~" N T( p* f- g- j( R8 C - (setq old (getvar "OSMODE"))
1 ~) |2 h; w8 l$ u% P. P
( f5 t, B+ \. u2 w- (setq p1 (getpoint "\nStart point:"))
/ V) a6 L6 b: S( p - (setq p2 (getpoint p1 "\nEnd point:"))& |. g& s# c4 B9 f; ]
- (setq side (getpoint p2 "\nOpen side"))
; S2 k$ X4 K2 z# J. W I - , K6 o! E, t* b7 m \6 x0 k
- (setq dis (distance p1 p2))& s. y& P5 y: S1 D- H1 L2 e
- (setq ang (angle p1 p2))
3 q8 e% O8 e8 z0 M - (if (< ang (angle p1 side)): F' W( t' G% w% H. {
- (setq angside (/ pi 2) )
' L4 o6 a/ j" X% o4 v& F+ u - (setq angside (- (/ pi 2)))4 E/ a% {; g; U; Q
- )
- |: C& k; w$ F$ I* b; a- E - (if (>= (- (angle p1 side) ang) pi)
2 P/ \9 n5 R$ {0 D$ G1 U8 p - (setq angside (- (/ pi 2))). g1 x1 g7 Z) ^. M" I7 N! s
- )
) y/ @2 N( l5 f) D - (if (>= (- ANG (angle p1 side) ) pi)7 G6 }9 t) E. Z: {: k
- (setq angside (/ pi 2))
) Y: B) i9 f A; C: s - )9 ?( b6 i; G4 v$ L
- 9 V( m3 o2 x" ?3 p' _4 t
- (setq p3 (polar p2 (+ ang angside) dis) ), _# H# Q) g6 b# e2 Z
- (setq p4 (polar p1 (+ ang angside) dis) ): `3 m8 W4 O* `" [- M
- (setq wid (/ dis 15))1 W* P& z. A6 z
- % u! Y# P- f$ g: K) m! U p
- (setvar "OSMODE" 0), r' l9 h/ U T- ?4 o/ b
- : H+ [: m2 l2 ]- A8 w y; y: Y
- (command "PLINE" p1 "A" "D" p4 p3 "L" p2 ' ?" E; W! `$ J! O( y% k
- (polar p2 (+ ang pi) wid)
+ R, M& w/ _" C* X' u5 E" H1 Z5 y - (polar p3 (+ ang pi) wid) , T; O$ H) v+ s2 f
- "")
9 p, @* k! V; |/ q
# H) R8 _9 f5 I7 R( a) k$ K- (setvar "OSMODE" old)6 L7 r, @, n% k0 P# M! g! c- e- `
- (princ)
\6 v1 Y# \& |: m5 f9 L - ); U$ ~0 ^1 F0 w& ^' T' z9 ]
- & i5 R/ H- ~9 u
- ;=====================================================================
& G' i* O2 s8 m8 m; q# m, l - - }1 P: c: Q& o( n0 Z
- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old). W2 J8 w, z7 ?, v* V3 t# R- c
- (defun cua1 (pt1 pt2)/ B6 B2 b( n5 L+ }) d4 S* A
- (setq p1 pt1
& v8 o$ `4 Z3 |/ z9 Q* Q* e L - p2 pt2)" k- u& X, Y, j K0 X- [
- # b4 z7 u* N2 `7 W' E
- (setq ang (angle p1 p2)). P# e+ r7 R- s0 Y: }' F
- (if (< ang (angle p1 side)): y) d7 P" Z. E2 ~- T& l
- (setq angside (/ pi 2) )1 b& w) h" g4 R9 I5 j5 }& o; B
- (setq angside (- (/ pi 2)))8 Z! p( C' ~, C! ?
- )4 I5 Y9 n2 y6 x3 q3 `) N
- (if (>= (- (angle p1 side) ang) pi)
' R# N! S1 Y( a( `: T$ e - (setq angside (- (/ pi 2)))
{/ r8 L% q& T; W/ A4 Y - )
3 ~2 J4 P" V2 o3 x - (if (>= (- ANG (angle p1 side) ) pi)) r" y" s. G- P Y) e' A
- (setq angside (/ pi 2))# H( p4 M# T x/ I7 C& p8 D2 @
- )
: n0 M# j, }& f. } - ! F& K5 H3 l( u4 }6 z
- (setq p3 (polar p2 (+ ang angside) dis) )& q- Z7 x: p* f
- (setq p4 (polar p1 (+ ang angside) dis) )
1 M3 B n& D4 t/ g( Z' Q - (setq wid (/ dis 15))6 I% U- P, u1 ?9 r$ y' F
7 y# t+ h) O& |- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
5 w ?; M- `! B - (polar p2 (+ ang pi) wid) : b S* ~2 B, u) y1 _; y
- (polar p3 (+ ang pi) wid) 1 y' n* e) X2 `
- "")
1 S- a+ F2 i- r3 p+ z7 ~6 l - )0 q" \- o9 k u' A/ X" F. j) V
- ;=====================================================================( w- c9 N# [3 U+ d$ T1 n
- (setq old (getvar "OSMODE"))
2 q6 l3 h7 T/ h4 F$ ^! I+ \' N - , n! }& q0 `* r4 s2 |
- (setq p1 (getpoint "\nStart point:")), y/ I+ I: h$ Q' Z: d/ h4 {: c
- (setq p2 (getpoint p1 "\nEnd point:"))0 {8 i) p: _1 V6 e/ _8 u; P( A
- (setq side (getpoint p2 "\nOpen side"))
?' X3 s+ V- Y& [9 Z3 T# ^* q \0 i - 1 ?8 c& W" c6 v* K) z
- (setq dis (distance p1 p2))
$ N. }/ Q- D* x7 C& ^ - (setq dis (/ dis 2))
; {6 [+ ]; P+ Y2 \% C8 o! `
$ W- {4 ~) T# H- I9 D6 v" u( T- (setvar "OSMODE" 0)
4 R+ E) Z$ p. a1 Q/ j- S; k
4 T1 {3 I+ J* t! P! t0 n. j! ^- (setq p1 (polar p1 (angle p1 p2) dis))
{" R$ {" ^2 U4 Y, q - (cua1 p1 p2)
+ ]8 [' J: n1 K1 G6 O2 p- P
5 @' ~& ]% n m- (setq ang (+ ang pi))
# @1 M7 J& T: t+ i/ K7 h - (setq p2 (polar p1 ang dis))7 w f# A6 {! R5 ^( J" ^
- ; (setq side (polar p1 () dis))
+ R. V; x7 K6 k) c9 ~/ I" y - (cua1 p1 p2)
8 L8 K. M2 C0 ]1 { H - / E. u: c/ c4 C
- (setvar "OSMODE" old)
0 v) h, X# d/ c/ Y5 m3 c' H7 v5 Y - (princ)$ D3 Z8 f3 Q# w5 m8 K$ D& j
- )& U1 c: X1 Q4 z, n4 M4 a
- , o$ k* w7 O$ \9 E q! v
- ;=====================================================================3 z0 G- M ]7 s; N) Q' e' m% f
- ;"Glue" text strings. All adopt first's properties.- C% K2 y, {9 I% W7 O2 M
- ; Author:" i; ^0 G( F. Q; y9 r
- ; Henry C. Francis! w z6 @- `" [" `& i
- ; 425 N. Ashe St.- n6 m& J! \& j; D& k; ] D9 l( V0 @
- ; Southern Pines, NC 28387
( f# ~, c& |4 d( y5 k3 E - ; http://www.pinehurst.net/~pfrancis/ T: `( F$ h" O; t: R! R
- ; e-mail hfrancis@pinehurst.net
* @( \3 r7 p5 t7 E/ @5 H/ e/ r" x - ; All rights reserved.
" I1 Q! ~$ n, h! J; v/ O% H - (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)
5 D0 H3 G3 n k* ~5 v. @ - (while* [/ d) z* H7 b; u
- (not1 q1 V. s& j+ ~# a! o; w+ i, C
- (and) `" ^6 _4 \9 U4 o
- (setq ename1 (car(entsel "\nSelect first text string to join: ")))$ {% e, Y7 V! E( ~
- (setq ent1 (entget ename1))
( f5 N* C- n- b( e$ I% { - (eq(cdr(assoc 0 ent1))"TEXT"). x `2 E* }# j g
- );and
4 K' Z" i) w' |6 G- G - );not q5 W0 i9 s' D- P6 V9 z' F
- );while
" q6 L9 [9 X1 g" u( B4 P - (setq old1 (cdr(assoc 1 ent1)))( \; n: H: T( J2 b6 t2 p! s, |+ R
- (while
3 |& {: J* z- w* `; j* p - (not
6 q& F# S( c, n% w) Y - (and
, t% [: h9 G3 f% I/ N - (setq ename2 (car(entsel "\nSelect second text string to join: ")))7 x2 q# l \3 H+ _6 L% e* w
- (setq ent2 (entget ename2))
5 d& S' L/ P" ]) O' [1 D$ U9 S - (eq(cdr(assoc 0 ent2))"TEXT")/ D4 m! o& M0 o1 g/ x ]% n/ k
- (not(eq ename1 ename2))
( E& S% M' I1 T/ n& ]! z5 u - );and6 j, E( m5 G X2 A* `9 ^
- );not9 J! v( v% i) H0 C2 y
- );while+ d [: P2 Y8 P2 o( |; E- ]
- (setq old2 (cdr(assoc 1 ent2)))
9 | t8 Q B/ j - (setq new1 (strcat old1 " " old2)9 b0 O! A) F+ Q' T5 L2 q
- ent1: U. b# a3 r: d2 K% s, I
- (subst (cons 1 new1)7 X" k! x8 V3 Q1 G0 Z
- (assoc 1 ent1)- m9 a4 l. J3 d2 u8 q/ J: K
- ent1)8 W/ k2 P+ G; b. ] }
- );setq* n( x9 p$ h) V
- (entmod ent1)
, W7 a* v- Z0 f - (entdel ename2)
( J0 W# r% e" W - (princ)" a( R; M) Z$ d/ X* `% g3 ~& D3 V
- );defun
3 z2 {) ^4 g- o2 H" P0 y
' _" }, K5 P1 F P* K- ;=====================================================================# W9 C. x p0 I3 n
! b& v1 M: y2 I- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)
5 H) b$ `) U5 ]6 D
" ]3 W$ `. o+ R i7 ^2 d- (defun nterr (s)
0 [& n5 J+ d. e- v4 P! P - (command "_.UCS" "" "_.UNDO" "E")
4 P5 F/ d" o1 g( F - (setvar "cmdecho" 1)5 X- _% R5 f5 \5 k0 D; Q
- (setvar "blipmode" 0)
9 o2 X$ R2 m7 }9 m4 s/ `; q - (setq *error* olderr)1 x% g8 T" g% Q3 G" C
- (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil
5 z ~, g" w; K" B - nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)
n4 e+ I* _2 X B7 @ - (princ)- T, y* S9 A9 h1 n9 t# W) q5 O
- )
( _) O/ U L: b( D V8 N/ z
! j( p. v- S3 A& O- Z; ^1 U- (defun tim_in (dt / p01 p02 ktra)1 ^/ h( }! s5 Z* m2 E1 S# _6 O$ Z
- (setq p01 (cdr (assoc 10 (entget dt))))+ O$ \+ u5 A: Q5 w- |4 ^' d
- (setq p02 (cdr (assoc 11 (entget dt))))1 R- z2 N$ z0 m- e( s; P9 \
- (setq ktra T)! ~, R1 x* ]5 c/ O. V& a
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2)) . Q* z x4 E( y: ~2 k; A% l4 U
- (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))/ x+ v" [+ I) Z. N5 i
- (setq ktra nil)/ {0 D) ~; G$ g; G( G
- )
l3 q1 `( \1 j! H' d. D7 n/ _6 b - (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
& C4 M% o1 h% B3 w4 H; G3 n d - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))8 [, n1 M& e$ Y
- (setq ktra nil)
2 d) j8 n! \, u" p& O( g. {6 a - )
; c6 W) c# V9 l* ^ - ktra9 U: o& x6 N/ T3 w y2 D+ ^
- )
( v, a1 L/ H( i# M. g - 7 l: `; F* p3 N% I- n' M
- (defun timdt (dt1 dt2 / p01 p02)
# A, `. d7 {9 b/ `; w - (setq p01 (cdr (assoc 10 (entget dt2))))3 E6 v3 b$ k. S4 B
- (setq p02 (cdr (assoc 11 (entget dt2))))0 P0 k+ Q8 l; E/ o# j8 V8 E
- (setvar "ucsicon" 0)
2 }# X. b; a: k% q5 V; m7 Z& J - (command "_.UCS" "E" dt1)2 L1 |1 y/ {, i5 y0 H: f0 X) [
- (setq p01 (trans p01 0 1))
* @9 m& s) @! r - (setq p02 (trans p02 0 1))
, @! u' F8 |, {" t! f/ W9 S' Q - (command "_.UCS" "")
6 A7 m3 j% J: `% f - (setvar "ucsicon" 1)5 K9 P4 G4 q) J" U
- (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))" U8 l9 d4 l5 }! @
- T
) g# _- w/ t; H0 f! g' R - nil
0 D/ U6 l" o. s8 b" P4 | - )3 u+ V1 J) J! k/ Q# D; t
- )
! y# @ Y4 P* b! q/ v6 u! A% V
% ?. N i; b( g0 F7 `) j% Q! L- i- (defun tim_out (dt / p01 p02 kt)9 W8 z4 a& r, Z$ ]0 Q1 I
- (setq p01 (cdr (assoc 10 (entget dt))))
4 l3 w$ c. h2 f) \ - (setq p02 (cdr (assoc 11 (entget dt)))), P5 q; s! U9 J7 D* c8 ~) x
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
+ _+ t6 z% J$ v - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
z$ z% N+ P0 i; @# A- r; q8 ~ - (setq kt p02)
- M, \0 P" X* K% H; [2 L& f - )
3 F. @# P0 t& M& t. C3 ? - (if (and (> (car p02) (car g1)) (< (car p02) (car g2)) N+ W/ R3 {( H# ]8 I* _" \& G) Y
- (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2))): H0 I% v' ^5 \
- (setq kt p01)5 a# r, {* `2 l" V/ t: k; ^- a
- )
# K* q' O$ w( ^* `. U3 G! a - kt
, Y- Z5 r% @, G, C! w - )6 x g- i% f) \! x0 U
3 _* v& P% n- ` q( S- (setvar "cmdecho" 0)0 k' F9 V0 m3 `# |; ]
- (setq olderr *error* *error* nterr)
4 h+ P/ q0 o, e" L, B; n - (command "_.UNDO" "G" "_.UCS" "")
6 F# O* |; K. F ^3 u9 Q - (while (null ss1)5 u5 O& ^% p% V" F
- (princ "\nChon tuong muon noi...")" j7 c& E9 E: h9 i, p
- (initget 1)6 z3 Y, E/ n3 {6 `: a F
- (setq g1 (getpoint "\n>Goc thu nhat:"))
# ?+ m( P0 A$ T: ^5 k - (initget (+ 1 32))0 p8 T, ~! m3 M* _+ ?9 G k
- (setq g2 (getcorner g1 "\n>Goc thu hai:"))% i" r1 q+ C6 b1 d1 [1 d, l; h2 g" c- c
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
; ]5 z& Y; x9 a q9 ?2 q - (if (null ss1) (princ "\nKhong tim thay doi tuong!"))
! q- H* b- ?8 |" h - )- z# K( p! C5 N6 X7 D8 n, Z
-
+ Q& r- ]7 v1 W0 B, h4 d8 X - (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2)))" Z1 h4 K- Y E3 m6 O# H0 A6 C
- g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))
; A% C- ]* C! _$ h3 V% I - g1 temp)
1 v" Z0 {1 g- ?/ Y! E+ p+ x - (setq ss1 (ssget "w" g1 g2))/ {2 z# W4 e# ~; y
- (if ss1 (command "_.ERASE" ss1 ""))+ j: P: c9 h% ^$ [* }# R7 b; ?0 l
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))0 J' W6 _$ c A, A2 z) K
-
* [4 g6 T1 `; J( M" f - (setvar "blipmode" 0)5 I, b/ w S( g
- (setq i 0 l (sslength ss1))
6 ?; h. L+ u3 L - (while (< i l)" J9 B# h" H- d1 A* X2 B
- (if (tim_in (ssname ss1 i))# f5 L" R+ i) a
- (progn - \6 B f: R; a3 ]' ]
- (ssdel (ssname ss1 i) ss1)8 \( O; `$ F- l s0 b% K; g
- (setq i 0 l (1- l))
1 r' {$ m! L; [ v# ~8 y3 v- z& D/ r - ) 4 o! q* v% h+ K2 f7 n/ C( X
- (setq i (1+ i)); h6 i9 F( t/ B2 A
- ) Z' t! D0 Q6 } E& L
- )
: B9 r9 s" `" e& O ? - (setq l (sslength ss1))' N# M7 I6 n' A
- (while (>= l 2), F' q& O6 r$ ], F- |% a+ Y5 T
- (setq e1 (ssname ss1 0))4 E% ?/ q9 f5 x2 m. J5 G7 C. C
- (ssdel e1 ss1)
1 \8 J4 c- b: g - (setq e2 nil i 0 l (sslength ss1))
O- h8 w& \2 {) ?5 O - (while (< i l) L& Q) O: t! a2 f2 k [+ y4 I) t
- (if (timdt e1 (ssname ss1 i))9 ?* B0 x% V% R4 n; _0 ?
- (progn- @5 \% Q/ c) Z, @, U
- (setq e2 (ssname ss1 i))( L, w$ P# N9 ]8 Z' o/ M0 \7 g) E
- (setq dd (tim_out e1)): u) t/ {1 G. X2 N0 E
- (setq dc (tim_out e2))
. G0 R& b/ k; I7 W1 { - )
5 w% w& ?/ s I, s9 y - )5 U' }8 y- Z7 j) O. `. c/ X! c6 \
- (setq i (1+ i))
4 e5 W2 d3 O3 Z4 |! l - )
2 b7 J- j: J' f; b6 w - (if e2 (progn
" J/ s% C# A1 v: l7 v, M - (ssdel e2 ss1) 6 X9 ], l: I' K3 v0 ]. Q5 J! I5 ]
- (command "_.ERASE" e2 "")! T8 u" R' ?6 M3 n5 X( G [3 f" h
- (setq temp (entget e1))
- ~. b. f% |3 I- e# @ - (setq old (assoc 10 temp))# u4 l5 V3 N6 j) p: m% w
- (setq new (cons 10 dd))5 d5 K3 V% m9 l' |/ h
- (setq temp (subst new old temp))
, k* P8 z( [: ^ - (entmod temp)
9 \ A4 G6 S" r. W/ b - (setq temp (entget e1))$ d( v, Z8 s/ m0 C! V# R
- (setq old (assoc 11 temp))/ S7 p3 K) Z0 ?
- (setq new (cons 11 dc))& u" j. u) b5 c
- (setq temp (subst new old temp))
7 F' ?! Q% p2 |: _6 A - (entmod temp)
) u) \# h0 X% t' ]" A: { - (redraw e1)0 v' K1 `: Y6 G Z+ O- K
- (setq l (sslength ss1))9 @* |/ v; q& u: }; F" d5 `9 }
- )0 j6 u& S8 ^, ^3 a1 r3 d h
- )
( W2 Y' e$ o; L" p; n5 h0 { - ). N1 T# }% v4 s( w' D) A+ G
# s2 M$ u0 Z6 M- {5 N; e0 O- (command "_.UCS" "" "_.UNDO" "E")' ~6 K/ ]1 E. Z1 M
- (setvar "cmdecho" 1)
! v2 s( K- [; P8 N0 K# c( @ A - (setvar "blipmode" 0); s5 C4 @6 ?( M2 t
- (setq *error* olderr). e7 X5 l& C% S& H# X8 {
- (princ)
, r. ?! W H$ d- ?/ [ - )
, f5 h$ l; i6 j! L5 k# Y6 q - ;*********************************************************************/ z( k+ p2 R# \9 e d
- (defun ketthuc ()
+ _2 j. x: M! j+ p7 ^/ F - (setvar "cmdecho" luuecho)
5 @2 c2 G9 j2 i& \ - (setq *error* luu
9 W- E! @3 g8 N0 J5 e/ C - luu nil * h2 J6 {7 D, c8 J( H( u
- luuecho nil
" E/ V5 T( Q* j, `, c0 S - );setq! q6 r: f6 d9 M+ l- j
- (princ)) {* o4 [% e0 a# K. I! V
- ) 3 P* j% r) a" `( I& w4 [- A/ z
- ;*********************************************************************
% C" a$ c& A* l) Z4 R+ c( V8 [* j - (defun modau ()) Q( q, |, t' v' Y
- (setq luu *error& n6 t. C) m& X
- luuecho (getvar "cmdecho")9 @3 Y) s7 ]# z" _1 o6 X1 u0 b) s
- *error (ketthuc)2 N' `" ^% U# l
- )
" D, d; X2 U( O3 M - ): h/ O; R& ?6 `
- ;*********************************************************************# n- s, |2 s( f- y7 v0 C! H9 T
- (defun xulytext (text / kytu ma sokt luusokt lui )
" c9 C: p' i3 _, |! j - (setq kytu (substr text (strlen text))" i3 l: O* Q+ t* t$ a* [( M# W
- ma (ascii kytu)+ K' Z, D6 G' D1 C
- sokt (read kytu)
1 k0 e2 n6 X/ V3 `" I - lui 14 g- y R$ C! h: k& m; s7 r( n* ~" {( v
- )
- H% C/ h- E' Z$ F( z - (if (numberp sokt)6 f7 B8 U$ Z c, R6 h# {
- (progn! s' e; `4 H+ \1 D' h3 A) M/ j! }( T
- (setq luusokt (1+ sokt))' V9 w) X2 w3 ~* }3 R" H
- (if (and (numberp sokt)
( I* {! _5 }2 T5 p, ~* ^ - (> (strlen text) 1). }6 N% ?& t6 Z, g4 B8 F( c& M, d: \
- )
% U& c- d' j2 r - (progn
- ?" v& T6 h0 w/ q, B1 O - (setq kytu (substr text (1- (strlen text)))& H- R, B8 o9 u
- sokt (read kytu)
: Z) l% S6 t( ]# k% i# E8 b - )* R6 }& C3 ?, P% _- n/ Z' [, n
- (if (numberp sokt) 2 g) `( p3 ]# l- E6 W
- (setq luusokt (1+ sokt)
( q# z9 i% Y# h7 Q C, ~! v& J( D - lui 22 @7 A9 V3 F1 B$ N# c- V6 y
; s- z4 X: \* [! Q/ `/ A- )
* g1 s* W+ ?, t i# D - )! r/ V( k3 F! Y8 n! Z- i# u! v( U
- );progn
. W* g' [+ |; u! [: { B0 c/ u& ] - )
- r6 w/ L9 P! S& Z9 l2 b - (if (= luusokt 100) (setq luusokt 0))8 k) x: B( x$ t) g8 H& j8 z2 p
- (setq kytu (rtos luusokt 2 0)9 N- A$ \# P0 Y
- 9 L3 I/ T f7 i% o/ F
- text (strcat (substr text 1 (- (strlen text) lui)) kytu)! k: Z/ {" c9 F8 W( N3 D# Q
- )! f5 Z8 G0 T+ }& y
- );progn
$ \1 i& V2 g0 }: {4 Q; [ - (if (or (= kytu "z")1 Y" I( x* N/ z) Z0 Q
- (= kytu "Z")
& E) s9 [7 I4 r- o3 ] - )
6 l. W( S) M+ m) q$ A - (setq text (strcat text "0")
0 v. [* j: q2 j# ^ _# y, [' y5 b) K - textxl "0"2 |+ k" g; i- t! e. q; ]
- )/ }; ^% v' U8 y2 c% f& Y
- (setq ma (1+ ma)
, F* F, U& R9 S2 ]9 {0 P6 k! W3 \ - text (strcat (substr text 1 (1- (strlen text))) (chr ma)), w* M: Q5 c+ i- O
- )
4 L( z& K9 y, q& q - );if
$ u" h" _2 ~) S* u# Y - );if
' C+ C0 W+ r" R6 @& t$ x - )
' e# O, ~: F/ I$ k2 N% t* o - ;*********************************************************************5 R& |( r6 Q; l1 j
- (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)
3 E3 s6 z/ \0 u$ n# `. A& i! z - ;Neu doi tuong la text thi tiep tuc6 k2 k! Z' |5 y: `
- (setq doituong (entget tendoituong)
, k# n, A D+ n' H - kieu (cdr (assoc 0 doituong))
" k! Q" {6 M( X' S- H - canle (cdr (assoc 72 doituong))0 I+ n0 J) V: {; Q# J" T0 ~) x% P
- )
9 X( t4 [0 N' L) U5 x" h - (if (or (= kieu "TEXT")1 v z5 M( A. f+ k2 S; b
- (= kieu "MTEXT")
# l2 A, V$ Z% F9 I - ) ' o; X2 l- X6 L- w
- (progn0 e2 \% S/ s0 r8 O' f
- (setq textxl (xulytext textxl)0 d/ ?' K2 k y- e# p. `
- text (cons 1 textxl)/ U" U, u# [6 J: B+ q' V
- vitri10 (cdr (assoc 10 doituong)) O: h8 Q7 `8 `4 \1 ~5 x
- vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))
8 T1 ^5 }5 O6 [# E Y) L - vitri10 (cons 10 vitri10)
4 h8 I- U& r$ m* n: p - vitri11 (cdr (assoc 11 doituong))
, C3 }6 m! ]/ h X; F/ n% H - vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))( d' D0 A0 o/ H* u8 T* @0 `
- vitri11 (cons 11 vitri11)
0 ]1 `; ]' @2 M9 w! x - dem 09 M' L1 j6 ^- r2 n) z3 r1 L. `
- dsach nil
/ X. G& e2 ]* h) ~* g$ ]" v- v - )3 A F' e9 o7 S7 r
- (foreach tam doituong1 W. g+ C0 T2 P, x7 I4 C
- (cond
) o5 p4 k% }% X0 s6 t9 ]3 X - ((= (car tam) 1) (setq dsach (append dsach (list text))))
; ^& u* U/ b+ T, e* M, k - ((= (car tam) 10) (setq dsach (append dsach (list vitri10))))
0 O( y7 u5 s/ Y3 [$ w6 |0 e - ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))" j1 ~ R |: q2 V- b8 y: C- ]. x
- ((setq dsach (append dsach (list tam)))) B( n' R: @% e+ {6 R# b: a
- ): O+ t0 s, t6 h8 J+ _& ^4 v/ r/ p
- )5 n1 [+ F+ i$ n. p# t0 P
- (entmake dsach)% }; T9 \6 K% t0 O j# @
- );progn
" Z" D" V8 L ~. N- K0 W8 c - );if W+ \8 v9 W- Z6 g4 K) s1 T2 M
- );
* d5 t4 _# R3 H. g) c - ;*********************************************************************+ z. R* z( z" u2 D# z+ J0 C8 }
- ;sao doi tuong cu sang vi tri moi
( a6 ?; E2 D& `" B, V4 y& ]
! {! j c' @* \- (defun copy_dt (tendoituong )$ R3 J$ W( W. C' E& A
- (command "copy" tendoituong "" goc toi )( {9 b/ O2 u4 W2 t/ x8 l
- );defun
2 H% G; D7 N: f: y Z - 1 m# h; P T; r0 u6 L* E2 g8 b" e
- ;*********************************************************************
' L. l, ^, U. C" `3 V! i1 ?# |6 G
7 T( @4 S) p$ k( X4 r/ l: Q1 m( E) ~- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)7 h2 }4 T( p; l8 e
- ; Khoi dau cua chuong trinh M- s* @) g7 `/ x5 ]6 z( k0 c: j
- (princ "\nCopy Inteligent...\n")
7 |) o& e' P+ J) w: f - (setq luuecho (getvar "cmdecho")6 o( e( E T* h8 Y- K
- luu *error*& H+ b; N: N g/ ^9 X7 L8 Q
- *error* ketthuc) w1 s- h, |0 b8 [; o' o$ e6 k2 x
- cumdt (ssget)
% a& I+ F, c7 R" n - dodai (sslength cumdt)
8 B# t9 l/ ~0 B7 x! k+ w+ a - goc (getpoint "\nSelect base point:")
6 ~7 u6 R, u7 U8 ] - thoat nil
8 \5 r# W7 s* q/ j# b: |! ? - dem 08 m$ `0 }; h: F. g
- textxl nil
" ~5 H* [# f6 l6 R2 f! g - );
, Z) }# }* z) d1 v/ M - (setvar "cmdecho" 0)
3 R9 V8 p. Y# a, L6 E - ; Loc ra duoc ong text de xu ly
3 C0 T3 s# M6 n1 w - (while (and (= thoat nil)$ U( @! o% U& S& m4 {! Z. e
- (< dem dodai) P. V4 ~! ~8 @8 [
- )- s! X+ Z/ P# x1 P0 c V+ F/ p
- (setq ten (ssname cumdt dem)/ i( N0 B% \0 M D1 M
- dem (1+ dem)
6 s" U4 Q* P% z8 w7 p$ p2 U - doituong (entget ten)
( o, i1 N- d; d2 _0 v' R7 t - kieu (cdr (assoc 0 doituong)) + y4 o& U3 s( @& D% p
- )
8 L ^4 R. W, j4 F4 @4 x -
1 l5 b& ?( \3 j4 m; n/ ]: U - (if (or (= kieu "TEXT")
2 Z0 a) ~, n, F6 l9 U" T# w0 h - (= kieu "MTEXT")
) m! O8 a j7 E7 c- T& J - )4 G8 D, }/ r6 O2 Z' R4 X2 c# Z
- (setq thoat T
1 x( R4 D5 j+ c0 S3 y5 g - textxl (cdr (assoc 1 doituong)) ' k$ m- e$ M! R* @+ B
- )
& V! w( A" J3 l% v! _/ E( A0 e - )
/ k: Z) O) S6 Q& u2 w8 G' Z - );
1 ^2 P$ f& {, K3 w/ R - (while T 8 K( s% ?4 {* p0 S- [2 k8 I
- (setq toi (getpoint "\nSelect next point: " goc)) j! G2 [$ P) b2 ^- ?1 X
- vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
+ @' z- Y5 H+ Q6 a, K - dem 03 n' H& u- X/ l! F9 Y
- )
4 R! H7 ^6 i) g1 F! o% c7 G6 X; l. A3 P - (while (< dem dodai)
, Q9 D4 a4 ~+ a3 o% i7 ? - (setq ten (ssname cumdt dem)
- `& b: K6 L/ q; {9 L - dem (1+ dem)( n/ q9 |% g" ~& L
- doituong (entget ten)
* Y& }0 n( A ]( c, o6 t5 _ - kieu (cdr (assoc 0 doituong))
, d6 W8 R( k! L3 j- G - )
- X7 Y" V2 N( ~# @( A1 w
& ~/ t- V" a# S) u( r% W+ J- (if (or (= kieu "TEXT")# F8 K4 u2 {6 Z" H
- (= kieu "MTEXT")
) K0 N/ k# K2 j- { - )
& j% t4 H, U0 l. S - (doitext ten)0 |# r3 U( r4 a! J: `
- (copy_dt ten)
R+ P8 F4 h2 @) F. @7 A& A- G - / k8 J) |& m! _0 `2 U9 [
- );if
2 ~8 p$ K) B. s# } - )/ }6 |# h% b. \4 f4 E9 i
- );while# P4 [" z3 Q: `+ ?% p- m
- (ketthuc)
F4 m7 I! ?* F8 E - );defun
7 i# u1 S8 f# N) w+ }7 f - (princ "Type \"DG\" to start")
& z2 z2 T$ M# A: a - ;Note: bien toan cuc: textxl vitrilech" X ]" ^0 I z7 {1 t$ W( t* c2 g
* s) o# C' w7 C/ P- ;=====================================================================) i# D/ g R9 ^" ?5 D$ I2 }/ B9 Z
- ;;; PLJOINFUZZ.LSP
, s( Y- {- i2 p( n6 z" C; q - ;;; Joins lines, arcs and polylines using a fuzz distance
$ L5 f# z( J% } - ;;; If only one object is selected it tries to join to all objects that are possible. N" x& y9 C9 |! {0 r
- ;;; By Jimmy Bergmark4 u: m' w) T4 V3 R
- ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved6 D R5 s- H' k, H# |/ L
- ;;; Website: www.jtbworld.com! Y# {# m$ l$ C
- ;;; E-mail: info@jtbworld.com6 W+ M5 ^5 a3 I4 W) |4 `! z/ Z) N% s9 s
- ;;; Tested on AutoCAD 2002,2004 and 2005) ?# A( H0 w& }5 B+ |
- ;;; Latest revision made 2004-11-11
1 S( \6 M6 [2 q& s% q! z - ;;; Minor code cosmetic change made 2004-11-13
( F) [: R4 P; X3 q: { - ;;; Bug corrected 2004-12-23
" _- n& ]. X5 v2 r; ]
' h3 r- \! Y( t2 v- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf
1 }! S, A- W& X+ v4 ]6 K - (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)
) L$ s& d; _* d9 ^- J4 g - (setq oldcmdecho (getvar "cmdecho"))
3 [( Q/ Y6 j) p" |6 }+ O% @ - (setq oldpeditaccept (getvar "PEDITACCEPT"))- i+ _& a" i% |' G
- (setvar "cmdecho" 0)) E* [ m3 p9 s @4 x
- (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16")); y. u8 ^" `" i0 E5 R4 Y1 U, d
- (if A2k4 (setvar "PEDITACCEPT" 0))- o$ B2 O' W E/ B$ E* g% Z
- (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))
6 a1 A! |8 x/ Q" K2 i$ w - (princ "\nSelect object to join: ")
- N$ R: ]) ^6 o: c" \9 v1 o1 o" _ - (setq ss1 (ssget okObjects))/ J/ V# L, j% _
- (setq fuzz (getdist "\nFuzz distance <0>: "))
4 `' P* M; n# S- r: Q- `2 ` - (if (= fuzz nil) (setq fuzz 0))
6 k/ p0 k# W, H" S5 A - (if (/= ss1 nil)$ m5 q f7 t- q+ h8 s1 t6 o6 I
- (progn
9 z" ?- h; J' H1 e, N - (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0))))))
4 W: I! d P9 H, l: L t7 ~: P. y7 P - (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects)))# ?" ~( l* ^. e* i9 \
- (if (member objType '("LINE" "ARC"))
8 J/ q2 X' @7 g+ e - (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")
+ k( W2 _& s' Z& g) D - (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")
' ^) [0 ^; d9 s* e7 O1 G7 q - )
( ^" P& \: G: a) N7 X; V* K% X - ), K! F) l! z. g! v# O" `
- ); S- Z# f: _- B7 K7 e
- (setvar "cmdecho" oldcmdecho)
4 h# w3 V( ~ R) s. V% i - (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept)): v' X3 i& N! l, Q$ W% m' }1 a( s! _
- (princ)
0 y: p" h5 W" Y0 \6 n2 c; e' ~ - )" {# ~! V8 [" U' g- `
2 i/ S, X$ V, V1 ^$ N0 C3 x- ;===========================VE CAO TRINH===========================
/ }2 q0 q9 P4 W - - y( m ?3 o/ q! M5 `1 @& t
- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL
( k x( p* j3 P7 D - CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)
* D! A" ^- n6 Z: P - (SETQ OLDERR *error*
, K) A6 m/ b( ?9 S2 X$ n - *error* loisb)$ H/ W# E% l' |% j6 n2 ?
- (command "layer" "m" "dim" "c" "" """")5 L! t& V# Z( ?! e
- (SETQ CMD (GETVAR "CMDECHO"))
) Z8 i( B( ?. Y1 ?. q - (SETQ NBC (GETVAR "CLAYER")): Q& j4 r0 p0 @$ f! e
- (SETQ OSM (GETVAR "OSMODE"))$ U4 H6 L7 q3 ?1 |2 X9 w
- (SETVAR "CMDECHO" 0)
) I+ J2 s" m3 h$ o' e4 X% d% h - (SETQ PT1 (GETPOINT "\nDiem cao trinh:"))
7 u3 x6 F7 l J, w: [' M0 T - (SETQ TX (GETSTRING "\nCao trinh:"))2 h( K5 C; Z6 }
- (SETQ FCH (SUBSTR TX 1 1))
0 ]8 s$ d1 P* E! v9 U! e8 @7 j/ Q - (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))% `0 u' }6 n) c% L! N9 m
- (SETQ CRST (GETVAR "TEXTSTYLE"))5 c* _- {! Q$ a2 W3 S; p8 u
- (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))
8 V5 b: e* @- \. F6 N4 p - (SETQ TSIZE (GETVAR "TEXTSIZE"))1 V4 Q/ P V$ D$ }9 g
- (SETQ STR (RTOS TSIZE 2))
; F' K/ D5 [' Q' W1 V5 T% q2 W - (SETQ PRMT (STRCAT "\nText height <" STR ">:")); v1 P9 i, P6 g( [* x `- R6 c
- (IF (= RSIZE 0)
5 ^; x/ M" ~7 z6 i& k/ D9 W - (PROGN
2 J: g( L; e ^ z( f - (INITGET 4)
$ t4 |: k0 f% H- ? - (SETQ TSIZE (GETREAL PRMT))
- F3 N. {: L' p1 l - (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))" m1 ]& U* m$ F: O, H# F: X$ S
- (SETVAR "TEXTSIZE" TSIZE))
. y/ n$ T& W- Z7 @. S) p - )" ^9 _0 L1 g' y c, J# D+ c
- )2 o- |: w' I9 M: m& s
- (PRINC)# e# r- c. X5 j; y
- (SETQ TL (/ (GETVAR "TEXTSIZE") 2))
. ~, [- h2 d. l# d; u9 ` U, C6 X - (SETVAR "OSMODE" 0)
( U7 P1 v+ W+ }3 d5 e - (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))* C i* e3 [1 `
- (SETQ NPI (/ PI 2))
' ^% ~0 b% f, d! Q7 T# A6 S9 a - (SETQ PT4 (POLAR PT1 NPI (* 1 TL)))
, T, k M7 g) b+ {" w - (SETQ PT2 (POLAR PT4 PI (* 2 TL)))/ {. X+ P6 c+ a2 j6 }; e* Z
- (SETQ PT3 (POLAR PT4 0 (* 2 TL)))1 y, z( k6 b( c2 O0 @
- (SETQ PT5 (POLAR PT4 NPI (* 5 TL)))
# e! e' f' @; K, ]9 R - (SETQ PT6 (POLAR PT2 NPI TL))
P) _6 w* A# V' L2 F$ q6 x. E - (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))
% [6 j0 Y7 h: U! U. d0 L/ L - (SETQ PT8 (POLAR PT6 NPI (* 1 TL))), b- n0 k. s; j
- (SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))
+ G1 F! l$ |3 ^* K0 m - (SETQ PT9 (POLAR PT1 pi (* 2 TL)))
8 h/ W8 ^! C/ {3 R7 ^$ s' d9 v5 ? - (SETQ PT10 (POLAR PT1 0 (* 2 TL)))
" `! _- R0 v$ L* U - (COMMAND "COLOR" "7" "")1 s% O% |2 g( f. D4 g- r1 c
- (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" "")
( d" c5 |" i' Z; i, y - (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX))
% h6 h# l: o n; {/ ^9 a* f - (COMMAND "COLOR" "BYLAYER" "")
. K5 ]5 c @- i, q- k" L9 | - (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")- ?: P1 W/ c3 G1 o9 j* G. }) a
- (COMMAND "COLOR" "BYLAYER" "")
! j" @5 S+ X5 e, I - (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")
! @$ w9 n0 e# T4 G. V. l - (SETVAR "CLAYER" "0")3 r9 f7 e# j, I
- (command "ddedit" pause)* c8 h! U- g; p
- (COMMAND "COLOR" "BYLAYER" "")) p: b7 z' V4 d& `9 j' U1 L, u2 b6 I
- (SETVAR "CMDECHO" CMD)" B3 c4 H- D* u
- (SETVAR "CLAYER" NBC)0 H9 F9 [6 @$ t- L' E1 Y- H. {
- (SETVAR "OSMODE" OSM)
+ O6 |4 U1 [, E( l `7 ] - (PRINC)! [% _, F _+ B7 X- s' ^
- )
0 G9 ^) V. s+ V
2 u# @' w. L6 C, t' t; ^' ?- ;;; =========================== VE NET CAT CHEO (GC) =============================2 Z" D! Z0 @: K) f; v( @
-
" c, k! K8 s% |3 p+ Z9 O; B - (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang)* T) n3 O) O$ e. j& `" q
- (setq x (getvar "osmode"))8 b- ]* i* C" w
- (setq p1 (getpoint "First point : ")+ i( K& W) X" N |
- p2 (getpoint p1 "Second point : "))* Y- O" L5 o4 |0 z& F+ v, E
- (setq l (distance p1 p2))
% e! q. M3 G2 L9 w& X1 z: l Y4 M - (setq p11 (polar p1 (angle p2 p1) (/ l 5))0 e2 C, o- _: M' L& T; n
- p12 (polar p2 (angle p1 p2) (/ l 5)))6 g4 G7 K: j% |9 I7 Y8 g
- (setq ang (angle p1 p2)): h1 j( c3 a3 l, [1 @
- (setq p3 (polar p1 ang (/ l 2.5))5 J- H) w0 a) u [+ v
- p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))' f. a, L+ v2 p3 [, u; X& x
- p5 (polar p3 ang (/ l 5))( ~5 L! ?5 y- x1 b
- p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))
( }) B& e9 |# c2 F, l t) f7 R - (setvar "osmode" 0)
9 x3 Z' K- g8 o$ i- f M - (command "pline" p11 p3 p4 p6 p5 p12 "")4 A6 e$ U" t& \. W8 a6 d/ o5 W
- (setvar "osmode" x)% X7 K! b5 m& {& C
- )
: [* ~3 d; m& Y: N8 M - ;----------------------------------------------------------------------------------; m5 _+ e+ F+ h. B
- (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf68 h& N, c% b/ u5 k9 K5 @1 N
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))# c ^# C. o- H* f I" ~% f. n& [
- (setq ps1 (getpoint "\Chon diem thu nhat: "))1 } A' ~, j/ I+ y: U I" H
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
% n9 o+ {. S' \# L, L B - (setq sb 50.0 sh 200.0 se 20.0)
. {( _- x7 T0 J+ z# d% L - (setq ang (angle ps1 ps2))
: y4 S9 m- S, w3 a& n - (setq pf1 (polar ps1 ang (- 0.0 se)))4 m4 Y8 t6 Z3 {& m& o
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
( H$ w: I! q$ G! s5 C( K - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))& N6 F6 U. {2 d' }8 T# e- n
- (setq pf5 (polar pf2 ang sb)). [* A( u/ N& ~% R- u0 O# v
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
# h& i; b: c3 Y, v4 T7 |7 p - (setq pf6 (polar ps2 ang se))2 ?- u f% t4 n2 j4 _1 V
- (setvar "OSMODE" 0) a5 R& x2 p6 Y& `# }
- (setvar "BLIPMODE" 0)
% W) j1 H- M1 K - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "") s. ~0 F' ?) ? y F
- (setvar "OSMODE" 703)& S# ]+ A7 V3 \( f0 z" F/ c
- (princ) )2 a* b c8 J# P) j
- ;----------------------------------------------------------------------------------
; R0 K; Z' F8 ]/ y - (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
* D! V6 u' B3 j- L# a$ }% P) B - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
3 l' i- b. L0 |6 ~* b* `5 E+ t - (setq ps1 (getpoint "\Chon diem thu nhat: "))
5 l4 N) Q# U6 H/ d8 B - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))4 R# |" `6 c% e$ d1 A* i
- (setq sb 100.0 sh 150.0 se 20.0)$ k5 A8 i- n7 f
- (setq ang (angle ps1 ps2))
7 p$ J( o$ [, d - (setq pf1 (polar ps1 ang (- 0.0 se)))
2 C0 M D1 S3 Y - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) )). o: \- s. z3 \. z
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))3 B; T( r3 Y9 d+ F3 A; G
- (setq pf5 (polar pf2 ang sb))
2 l6 {7 c5 L1 q1 h - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
6 ^# e& x% K7 s- y7 u6 i) h - (setq pf6 (polar ps2 ang se))
$ O3 [: v0 W6 ~6 l& a8 H - (setvar "OSMODE" 0)
! p0 e2 S, d" ^! R6 U8 X' a - (setvar "BLIPMODE" 0)
9 V/ K# T0 o, @$ ^( W3 _* d - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")6 c) b5 u; O3 U4 J
- (setvar "OSMODE" 703)# s. Z( [1 b6 k/ y3 J2 b
- (princ) )
2 F" M: o8 P2 j - ;----------------------------------------------------------------------------------' z) {% z4 @3 s9 H: ~
- (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
5 V4 M- p; \: f5 |7 K% J+ u. T - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
% \5 h1 l! W( h9 ]& { - (setq ps1 (getpoint "\Chon diem thu nhat: "))
1 c9 r) r/ Y2 G4 }/ a; B - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
% y# | Q8 @+ w0 I4 A - (setq sb 100.0 sh 250.0 se 20.0)
3 m# B# w3 M( p/ U3 [- ?* F - (setq ang (angle ps1 ps2))' Q% d) D' x2 Y' C) D+ P4 M( U
- (setq pf1 (polar ps1 ang (- 0.0 se)))4 w4 m8 K: a* W: t
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
# T' n: D5 V5 |) d0 N1 Z$ q - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))) B0 j3 x' k, J' t3 U5 {
- (setq pf5 (polar pf2 ang sb))' z5 N, x2 u# R+ s# B( T6 V7 ^
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
' {* p, L3 t, V { u - (setq pf6 (polar ps2 ang se))
0 j9 C8 }# t8 L" n b% F7 y - (setvar "OSMODE" 0); x7 k9 Q- E$ E
- (setvar "BLIPMODE" 0)
4 s% T) r, O* j0 Q3 Y( o! Q# K1 ? - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")+ M: z# X7 {9 I6 X+ G& ~
- (setvar "OSMODE" 703)
# V- Y% e9 H/ b+ @( O - (princ) )
! H8 @( C+ A& {8 P9 y
* u! q. h0 ]( s x1 n% G- ;==================================================================================' k: Q# c- b8 B
- (defun c:ang (/ ent pt1 pt2 ang)
# y& i6 @3 F- n' L; Z# w$ L - (setq cmd (getvar "cmdecho"))
1 u1 V0 H' q5 ?6 Q, \ - (setvar "cmdecho" 1)+ H8 \8 u, J$ K. [2 x+ o2 a
- (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))
8 m% S* K2 h5 T6 k0 v6 S( k9 a - (setq ent (entsel "\nChon duong thang:")), x$ c- t2 T7 O$ c: H- p- u
- (if ent
% |' M* C! N& u. z: {" t - (progn( F! `% {6 q3 `: b/ S+ M$ `
- (setq ent (entget (car ent))). R" y; w1 d, Z* y2 R. G
- (setq pt1 (cdr (assoc 10 ent))). W& `6 _4 u" Q, v% K
- (setq pt2 (cdr (assoc 11 ent)))2 n; t5 t$ A Q- j1 u8 `
- (setq ang (angle pt1 pt2))7 D" R- b8 J! z
- (setq ang (/ (* ang 180.0) pi))
$ y. s0 w! \& T6 p s7 G' Y$ K& h - (setvar "cmdecho" 0)
3 P \4 R! k# B/ r7 ?3 U' x - (command "setvar" "snapang" ang)
% N/ U. f3 c9 n9 K3 r* i$ \ - (princ "\nGoc cua truc toa do moi : ")7 U. K& Y+ c$ F/ D
- (princ ang)
' `. N- s: S G. | - ) V; O" [/ x$ M8 H
- )
$ r5 }, k& D% Q - (setvar "cmdecho" cmd)+ V2 Y: c& L0 d8 z9 F
- (princ)
0 H' [+ ` N- }0 k1 n& o' n2 _; I; e# u - )* J0 J& y( C; ?! h7 {
- ;==================================================================================$ U0 B1 a! _8 K5 j- ]# ~
- ;============================== KY HIEU DOI XUNG ==============================% E; y! m; E1 A) M8 _; W
- ;==================================================================================
, ^2 G! y1 s) R7 _, O: F' t! L - * D0 B. w! k- w: o9 d; B' y
- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT90 A2 j5 E# Z O1 x
- SZ G45 G135 G90 G180 SS loi); q5 N/ ^9 P: k l
- (defun loi (s)
& Z" M0 z& N0 V w - (if (= s "Function cancelled")
1 n* P9 C% W6 p- f* E - (princ)% j, N$ A L9 a9 e) n
- (princ (strcat "Error:" s))
+ @/ M5 C, K2 @( J3 U8 R8 N - )
L* T0 s; l/ U3 r5 Z2 s - (SETVAR "CMDECHO" CMD)( j6 X' K5 v& B1 d
- (SETVAR "OSMODE" OSM) Y0 c7 A' \: [* K: a" A
- (SETQ *error* OLDERR) R* d' |# x) ]# Y V0 \7 B3 A7 r1 a
- (PRINC)
3 E4 Z3 i8 X5 e* L: o. G: G - )
' M% B0 e) J- j/ Q+ ]* t5 T - (SETQ CMD (GETVAR "CMDECHO")). u. d& C W0 a/ d( _, O$ N0 v; H
- (SETQ OSM (GETVAR "OSMODE"))! I/ F$ `! v3 f, d0 l
- (SETVAR "CMDECHO" 0)2 G: W% d1 O+ }6 Z# v
- (SETQ OLDERR *error*1 s& z) W7 o7 F& h J# q% T) l
- *error* loi)) F7 }5 [8 }3 [% Y' o
- (SETQ SZ (GETREAL "Size <1>:"))3 o4 ]- z$ \. g+ v( H9 [; d$ x- a
- (IF (= SZ nil) (SETQ SZ 100))
0 a% o+ a b r) r% J - (SETQ G45 (/ PI 4))
2 O6 h9 X5 m5 S - (SETQ G135 (* 3 (/ PI 4)))
) q+ l' v# ?& \4 q8 z - (SETQ G90 (- G45 (/ PI 2)))0 P4 x5 G7 ~% X4 P# e
- (SETQ G180 (+ G135 (/ PI 2)))
2 i2 {+ k2 _" ?0 Y: u% x+ l - (SETQ PT1 (GETPOINT "\nDiem doi xung:"))
$ _" A0 F! O% G& g1 i3 H - (SETVAR "OSMODE" 0)) u6 c+ k+ a' _, e8 c. X5 G
- (SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))
/ U1 L" y0 [$ Z - (SETQ PT3 (POLAR PT2 G90 (* 2 SZ))). N2 @7 M9 a1 t7 G9 s. a
- (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))
0 z6 H# q4 w0 h$ F* q* ~& t - (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))
. @$ s$ W1 I7 u& @ - (SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))
1 `6 ?, `) ]5 q+ m6 N2 L9 N1 ] - (SETQ PT7 (POLAR PT1 G135 (* 1 SZ)))6 g. H- h* K) u) U: y2 E g4 W
- (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))# I. } r* v1 o. H
- (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))
0 U9 v8 c. {3 @& U6 r. ^; c, D - (PRINC "\nGoc quay:")
. @( Y/ U- C5 J+ B! n - (SETQ SS (SSADD))
' R5 u# l0 Z" \- Q1 X/ N* F - (command "layer" "m" "Dim" "c" "" """")* n' z1 q( P# z" j) C, E n6 r
- (COMMAND "COLOR" "1" "")( V( V8 Y0 x! j
- (COMMAND "LINE" PT8 PT2 "")
+ ]/ L; V7 K% ^ - (SETQ SS (SSADD (ENTLAST) SS))
" ~: r) P T* J, p+ y9 K - (COMMAND "LINE" PT9 PT5 ""): w5 d. i8 _/ Q9 _4 T4 k9 U9 q( F, x
- (SETQ SS (SSADD (ENTLAST) SS))
# w0 r: u! w- c v/ b - (COMMAND "COLOR" "1" "")* D" H1 [' Q( L1 G' n1 @
- (COMMAND "SOLID" PT2 PT3 PT4 "" "")
1 |& D: `" e0 `9 D. m8 l3 _ - (SETQ SS (SSADD (ENTLAST) SS))
: I3 @, |: p, p: p# ~ q - (COMMAND "SOLID" PT5 PT6 PT7 "" "")3 d0 o1 F& _1 }0 d3 N
- (SETQ SS (SSADD (ENTLAST) SS))
1 S( A3 E- `0 p - (COMMAND "ROTATE" SS "" PT1 PAUSE)
) I u& M& }! k, Q - (COMMAND "COLOR" "BYLAYER" "")
/ @: p; o* ^& m2 d2 @# h, N - (SETVAR "CMDECHO" CMD)
4 E( a+ w+ y8 J( Q6 Z$ } - (SETVAR "OSMODE" OSM)
/ S; t, S4 u# Q& X - (SETQ *error* OLDERR)
! M( p8 a# N( n; U1 ` - (PRINC)
1 _- y" e4 d, ]' d$ V+ A - )+ q* o- H* O. P0 X$ B& O2 q% S
% o u" X M* p% i8 G: i, N6 j- ;==================================================================================2 E6 V% o* v( ^! Y
- ;================================= KY HIEU TRUC ===============================3 \7 P+ |* T) S4 r: w4 s
- ;==================================================================================' |7 E4 s' I$ {8 u4 z% [; i; b
- 0 D F* t" S- e
- (defun C:vetruc ()
9 ^# s* ?) U5 [2 ^% q' y - (setq bk (getvar "USERR3"))
6 w$ R" Y' X& B N: D - (if (= bk 0)
' J; w/ @3 @" H- V; w7 ] - (progn
, a8 o8 m* p. X6 P; Y2 R, E+ q - (setq cont "1")
) R( e! I q q7 A6 | - (setvar "USERR3" 1)
( X, V0 D" M; e; c - )* Y5 K' f" |$ U5 P
- (setq cont (rtos bk))( h% m# g( i8 b7 N- |; P) I$ h
- )
% J* W. P( O! W( E& W - (setq pt1 (getpoint "\n Nhap diem dat:"))! M6 I' o6 J: M% L# d. t, J
- (command "layer" "m" "Dim" "c" "" """")- B( v- G5 n# N- d6 z7 K
- (command "osnap" "")
. Y) T7 z1 K4 P - (COMMAND "COLOR" "7" "")
+ g* @. F! B1 B: k - (command "circle" pt1 150 "")& ^/ ^: s* u5 }6 C
- (setq pt2 (polar pt1 0 150)), H0 W2 ^5 e( i3 ]. K4 f3 h
- (setq pt3 (polar pt1 (/ pi 1) 150))
" Z9 M6 i5 X* u8 | - (setq pt4 (polar pt1 0 300))& X' A! W3 o! y. ^- @& ]
- (setq pt5 (polar pt1 (/ pi 1) 300)), }" K9 r( V- v
- (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150)): B0 V' Z% }2 q
- (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))$ `4 f& D% X+ {) c2 s% f3 x( G
- (setq pt8 (polar pt1 (/ pi 2) 150))1 a: L# ]; o9 D% d' }2 k
- (setq pt9 (polar pt1 (/ pi 2) 300))3 n+ w" l' P4 ~% C
- (setq pt10 (polar pt1 0 150))5 _- d( J" l- n
- (setq pt11 (polar pt1 (/ pi 4) 150)); c+ A' [) u5 u1 C' e7 R1 o g7 S
- (COMMAND "COLOR" "BYLAYER" "")
, u5 T$ H6 G ~4 ^# m - (command "line" pt2 pt4 "")% g& z; o1 _+ z0 N4 R. W
- (command "line" pt6 pt7 "")6 q( I: _* J5 p* Q5 L+ s7 ^
- (command "line" pt3 pt5 "")
+ k4 S3 ^& |! C: r ~$ ~ - (command "line" pt8 pt9 "")9 M) P3 n! v0 {
- (setq dk (strcat "\n Size:<"cont">"))5 r" b- D& X- ^6 u V
- (setq bk (getreal dk))8 \3 R% s0 \' j& [
- (if (= bk nil)
7 ?+ d; b% m( p( o$ o( Y9 G \ - (progn$ g5 Q7 ?6 e8 }4 e t+ p0 p
- (setq bk (getvar "USERR3"))" w' D4 W8 q) K2 S! M) u6 o
- )1 W, @" t# w% F$ F2 S8 F+ t
- (setvar "USERR3" bk): r H# O e4 Y1 K. b2 k+ b3 F: `
- )
- Q1 `# v- J5 a4 C8 | - (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")! S6 Q- Y& r. S: A: R
- (COMMAND "COLOR" "7" "")& E+ r6 s e7 c/ t8 r5 x
- (COMMAND "STYLE" "Truc" "impact" "" "" "" "" "")( p) T& \# V4 Q4 ^1 {7 y
- (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "")
3 ?* \- h6 s9 j' w1 W# ` - (COMMAND "COLOR" "BYLAYER" "")
; n8 F' n0 G! v% f - )
. P5 R9 O h; b* w - ( v* k6 F+ M6 x
- ;=====================================================================) ^: G; l9 n; P b" M2 G9 J
- ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)
3 r( P8 W! J+ O1 b& X( C3 L - ;
* m. q0 M& K4 @- A3 v ] - ;Jeffery P Sanders/ Z3 j9 F/ Z3 ]& K4 l# a5 J! [* h
- ;
7 @: ?1 L2 x1 l1 g - (defun C:CA(/ en enlist tx newtx cnt tp asc note)( b ] S* x+ e9 \. b3 J
- (setvar "cmdecho" 0)
1 b; d) {6 \% v# B! k+ S - (if(setq en(entsel)), @" T/ L2 r" J1 v4 H* u
- (progn2 _7 A" _1 L, K: Z
- (setq enlist(entget(car en)))& ^( j. R, R# @# j! P( q8 h( L
- (if(= "TEXT"(cdr(assoc 0 enlist)))
9 x6 B% d E% R2 I - (progn
- a& v7 C6 e9 E- q - (setq tx(cdr(assoc 1 enlist))% T+ Y6 b9 w6 U. u9 M/ K
- newtx "" cnt(strlen tx)
; C6 C0 y$ G1 q; N$ M0 K7 @ - note "\n...CASE Reversed. \n ", S- c+ j. f$ h& @( S
- )
6 B; k' j9 u) c! z+ T+ J - (while (> cnt 0)! q% u7 c+ k) }& [ B
- (setq tp(substr tx cnt 1))* y' ~2 T) {4 a9 Q- u9 Q
- (setq asc(ascii tp)). X! i5 h# ?# n, B' @- v6 h& m
- (if (> asc 96): f4 ]" F# k4 }% b
- (setq tp(strcase tp))* c9 X0 E9 O+ y
- (setq tp(strcase tp T))2 ?( p. U. t } X0 B* E
- )
4 Y; J# U8 h) n* H$ D- F - (setq newtx(strcat tp newtx)) s2 K( c' n. u6 Z- c
- (setq cnt(- cnt 1))
6 r* _7 p O9 Z- U - ), [9 q; R& B/ x
- (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist)). x: m8 U4 a" }* G. ?
- (entmod enlist)7 ~. m7 @# F! d6 m. @; m J
- )- d' z- n8 K$ B& Y" G
- (setq note "\n....Text Only Please. \n ")
. u8 T, P. y. L; J3 N) O - )
3 }: C0 K6 f; R$ [$ j2 w+ W# Z - )8 `* E. E0 A! g G2 V$ b0 k
- (setq note "\n....Nothing Selected. \n ")
' f% r3 g' M: Z! y2 |/ S3 g - )
4 h- C: {6 h2 [- m" a- W' k* @ - (setvar "cmdecho" 1)
" C* f% z) q5 k, W3 N% W) K - (princ note)
# U; u8 ~% x* c L: p+ M - (princ)( u2 h6 D) a7 O3 J, J
- )" B& b# ?1 M: _" Q8 l4 E9 M* K
* Q) E$ J6 k, h8 f. P9 t) i- ;=====================================================================
8 M0 I" d* t' P8 d" H - ;==================== NEW TEXT STYLE UPDATE ==========================
) J4 i& `4 p$ I$ u" K4 M - ;=====================================================================
( t" x3 C A0 w- }
8 t. u1 b- h6 R0 X- (defun c:nS (/ tdt ssdt sodt index)
6 H7 n4 F2 C$ Z# B& U9 w! K' n - (defun ObjName (ssdt /)6 e% K5 _& J4 l' B3 R% s
- (cdr (assoc '0 (entget ssdt)))& e" k8 E/ i6 o
- )
- h4 b" ~3 A0 D5 ^3 F2 R - (defun MoPL (ssdt /)
( i1 }' M& M; ? - (= (cdr (assoc '70 (entget ssdt))) 0)4 q |6 G- U: B! l+ S
- )
6 ]5 f) |5 w0 b( k" E& p; f% G: @) v* X, g - (defun NoiPL (ssdt /)
0 U: B0 `! n# q$ x6 M# M0 s - (if (MoPL ssdt)
3 X" G% M1 L2 o; A - (command ".PEDIT" ssdt "J" "All" "" "X")9 W- _! u" U% v) j% a1 H q
- )
0 l R- [- A- Z0 { r+ T3 _ - )
3 X$ [/ ^5 i" N% R: t0 H - (defun NoiLC (ssdt /)8 d$ h" U a& ?- C. }
- (command ".PEDIT" ssdt "Y" "J" "All" "" "X"), P5 b e) Z! f( L4 |7 ?
- )
2 c, \( s$ P& e; z# r3 p - (setq0 S9 a7 _: V7 k n' p$ w2 L
- tdt (ssget)8 B( P5 e+ r& P" L0 Z. _; X% m
- sodt (sslength tdt)
6 K% c; P' }% R- r; Y/ v - index 0
( O2 r9 t9 c5 e0 C: M. A/ | - )/ m6 U! l! T; M0 ?
- (repeat sodt( N- s/ Q# |$ @. k$ i
- (setq" i1 L" g3 |: N8 Z, X
- ssdt (ssname tdt index)8 ~- U; j( N8 Z
- index (1+ index)0 I& h, _2 D# C9 i( R$ F+ p
- )$ D4 W) c. S/ e" N/ _9 p
- (if (or (= (Objname ssdt) "LWPOLYLINE")
5 m6 Z+ c' r R# v) ? j - (= (Objname ssdt) "POLYLINE")
! X& @6 q4 k) W( K - )2 ~% {9 ?9 S, r8 u6 ^
- (NoiPL ssdt)6 r, C; @$ X9 A, Q# i6 M) ^: w
- )# t; A+ V- @* i
- (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))
/ a' c+ g) |8 A5 Y! D/ j - (NoiLC ssdt)
, q+ E; ^0 |* Y, g2 ?. o - )* |1 h) ~0 C7 D8 J/ ~; j% S
- )
- K) R. p6 U# l0 }, n1 y - (princ)
0 e( z+ s% y: }( u8 W# J" J9 _ - )
" _1 t: P, T5 O) ]: Z) O& `- R - . z5 {0 e3 l; w9 I, n! t' ]# {
- ;=====================================================================
5 s: I* m7 f& X# P2 u& | - ;;; AREAM.LSP
) h( b+ t% z2 j9 F) q - ;;; Function: Calculates the total area of selected objects
# z' [8 V# q, v* o! Q* j/ o - ;;; By Jimmy Bergmark
% c5 I$ I( l2 `2 A7 i - ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved
" ^: G* M# }7 B/ L u9 {# L - ;;; Tested on AutoCAD 2000
; T: r- N" [$ `* J0 a
( U- O9 l- \, p2 D& A/ |3 u. k. {- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)
; X+ e. ~ X! Z% q; p J# E0 s - (defun errexit (s)
1 q$ x5 k6 X8 t4 X3 z - (restore)
# z: m# K' p0 V5 D k) f - )* s6 d! l8 @7 d$ L n/ y0 M
- 8 Y) H1 L$ G+ J; c* b' b
- (defun undox (), V0 r) D7 J3 g+ Y
- (command "._undo" "_E")/ f1 E1 l2 `. t
- (setvar "cmdecho" oldcmdecho)( H4 J4 x* U& P/ d2 {, I. v
- (setq *error* olderr)7 _$ q! V/ C, S% h: o/ h) F
- (princ)
0 H7 B! Y+ A J- I - )
- l& b# p+ W& q- k - 2 i, h. b0 R k, O% e* v' g7 f
- (setq olderr *error*
2 G' N d7 E/ P" l* } - restore undox
: P/ l3 _, ?* m7 j' j. ^2 B! y - *error* errexit
" V1 F/ O9 L( u9 M$ V - ) H$ C) ~- R7 w9 _
- (setq oldcmdecho (getvar "cmdecho"))& X5 y. w1 q: U( \ a
- (setvar "cmdecho" 0); K( g( Y8 V1 g! Y$ k: Q
- (command "._UNDO" "_BE")
% w. j0 s$ s9 d - (if (setq ss1 (ssget '((-4 . "<OR")
- L# i; h2 N% [$ L- _ F3 E- M3 Z K - (0 . "POLYLINE")
0 J! D$ |3 p7 J( b5 {/ Q - (0 . "LWPOLYLINE")" P$ m# q7 c3 q. m3 U5 I
- (0 . "CIRCLE")8 ~9 m( P5 E$ h# b3 {* {
- (0 . "ELLIPSE")
/ t7 j7 h9 _. b+ U" p - (0 . "SPLINE")9 e4 q) `: O: W+ W0 y
- (0 . "REGION")& T6 F7 h/ r" @: ?3 g
- (-4 . "OR>")
5 b7 C9 B$ E7 |8 n( f- F$ h - )
) R% ~" u) p% g( N1 E - ). R5 J! L; p3 Z" h! k* i; N
- )
4 V1 F2 C- Q) U. l3 K - (progn* x4 }) T9 ^1 L& A0 A z7 \7 E
- (setq nr 0): U. z5 F' ^: L4 N
- (setq tot_area 0.0)8 \6 P- b/ G% r6 x
- (setq en (ssname ss1 nr))7 S m, P* ^7 r7 |( Q
- (while en* }; X2 X. o o. I3 d/ k& i
- (command "._area" "_O" en)& t' I6 ~5 S. z# h: i
- (setq tot_area (+ tot_area (getvar "area")))( A( y8 f& D5 b5 i3 d& t
- (setq nr (1+ nr))
9 b- ^0 C# ^, N& n - (setq en (ssname ss1 nr))# |$ d) {. r$ N Y( n+ s
- )- l" \; }8 i* \5 P8 ^
- (princ "\nTotal Area = ")
. ]5 w- U% z9 M3 r" @" ? - (princ tot_area)
3 W( }# @) e3 }) g7 | - )
! y# h& B# L/ ^ L - )/ _3 x5 v8 Q6 r! i% x& [: A
- (restore)4 s& Q! X& L7 ]5 x# ]3 X
- )& r, v9 C5 S& i! O
- ) o: x' h" v: \5 `: P6 f
- ;=====================================================================6 d4 f/ o( d1 R$ }* i+ \
- ;;; By Jimmy Bergmark
( S/ I$ t- H0 i. z" E3 K - ;;; Copyright (C) 2008 JTB World, All Rights Reserved0 h; K2 \- t3 K- A2 }! W4 l
- ;;;
$ a+ P# u2 V2 e0 F - ;;; Created: 2008-03-31
4 A0 G" G( K7 T$ \ - ;;;: V/ M, q( k- U8 {9 \0 S, v
- ;;; Convert Attribute definitions to mtext0 a- g, |5 {7 t5 i% }. G3 j
- ;;;( T: d& r2 I( ^5 E+ |
- 5 K3 f7 i! N: b3 W9 k, Y7 V+ T
- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)
7 f$ R' |7 G, j5 s" W$ [ - (setq eset1 (ssget (list (cons 0 "ATTDEF")))% Z1 v- C+ i3 m" B6 G5 a! n' \
- blkcnt 0
0 T& r9 `0 m6 s B% v - )
* |3 b1 F$ H. _0 z! o) \
% `9 Q$ ?7 ^4 [) E8 i2 a" b: w- (if eset14 l0 c) \/ T' m0 y5 _) c
- (while (<= blkcnt (- (sslength eset1) 1))
7 ]5 N/ f2 ?# Q6 u- ? - (setq en (ssname eset1 blkcnt)
" H" B: _9 t% K+ _$ G - enlist (entget en)
+ M/ Y) r4 V+ a- A; W - ht (cdr (assoc 40 enlist))# w- z7 a; k. H& I6 z
- pnt (assoc 10 enlist)
/ B5 _; X1 z0 X& f - pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt)
7 R" |& ^, W2 J* S9 L0 S - space (cdr (assoc 67 enlist)), p' q$ u3 c# q+ Y0 S) Z
- )
) U" p( u p1 B$ C4 C4 X5 e - (setq vl (list
3 K$ k3 b: B8 d - (cons 0 "MTEXT"): T" @+ m! n* E1 J
- (cons 100 "AcDbEntity")
$ t! C1 g+ T! {3 v - (cons 100 "AcDbMText")! N2 V; x. G+ w. j4 F1 Z
- (assoc 7 enlist). n4 N+ s# Z/ v/ {* N
- (assoc 8 enlist)
_% e( [: Y7 v, } N - pnt
: `! S6 s# |, }- g* K - (assoc 40 enlist)2 n% Z j$ \, l. J& { @
- (cond ((assoc 62 enlist))
% ^. T ?9 j0 ?: x H3 o - ((cons 62 256))
& p5 L+ }3 v: _. r8 ~ E( b+ L - )/ S( g( ~/ |( Q% g. U, U. N6 _
- (cons 1 (cdr (assoc 2 enlist)))
0 z& t0 ^ ?! D# h( \ - (if (= space nil)
2 w/ m. W& P% s+ \1 U( l" M - (cons 67 0)
$ E* U1 u; U+ ? - (cons 67 space)4 u' @9 w" h5 x) j7 b2 W: H
- )( r6 t z8 g$ `# Q0 z6 b
- )* ^1 @# [) g3 J I6 V
- )+ q1 K6 R& s6 k/ y F5 ]+ P b
- (entdel en)
2 V! [$ w' R9 u - (entmake vl)' T+ G# \5 O' A# b1 w
- (setq blkcnt (1+ blkcnt))
( w, K, \5 O/ e( b, S. [" I - )0 |* k8 l; T! H7 s4 d
- )
J& q5 g* q# z. ^- d. ]; m% c6 v - )
g2 r3 J. b: V# { - ) s" } t+ H6 t% ?$ D3 D* D
- ;=====================================================================
3 i" E. w& Q4 `! _, i
/ M; [. U4 k# E' U' l- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)( J1 q K8 z h; ~0 I8 h0 M( f
- ; Khoi dau cua chuong trinh9 T+ J5 ]1 l; W1 N
- (princ "\nCopy Inteligent...\n")9 D% a2 G$ ^1 G, e( `+ v0 |4 r
- (setq luuecho (getvar "cmdecho")" x' f6 Y' ?, K) ?- u8 v4 |. p! ]
- luu *error*
5 G t9 |6 }: ?( m# v& M - *error* ketthuc
, C) Q7 @) D& R7 x6 L - cumdt (ssget)5 }6 h8 w- r8 W& c
- dodai (sslength cumdt)
5 i7 j, K. I1 g6 `- B; ] - goc (getpoint "\nSelect base point:")
, }% X& K3 s- b0 {/ K. t9 T& \ - thoat nil- b1 {- ~6 {7 L$ i! n3 q K
- dem 0
; r( W+ l8 G* K3 p- G: L - textxl nil- O {) }9 O- F9 E' \
- );4 t0 o2 y. ~" C6 |1 [- Q
- (setvar "cmdecho" 0)9 d- B" V1 V) ]/ V+ c# K* K
- ; Loc ra duoc ong text de xu ly
. E# l2 V4 ~0 N D* a9 k$ [- I( l - (while (and (= thoat nil)
- R. Y, w; l1 o" @4 V4 t - (< dem dodai)
$ q$ e2 n' ?" ?0 L& } - )
: u; J5 z8 a9 r. x+ s0 w. a - (setq ten (ssname cumdt dem)
* y+ r. Z G; y - dem (1+ dem); B0 C `6 C, H- [. Y' v
- doituong (entget ten)
7 \ K, }5 B$ f3 x; S: h - kieu (cdr (assoc 0 doituong))
4 V4 q5 l1 e$ F/ }8 \% q+ r - )
) q. T A5 d& X4 _: J -
4 p7 m3 u& j! z! q k: p( m3 R - (if (or (= kieu "TEXT")
% \5 q" c0 r# k; Y9 \8 M - (= kieu "MTEXT") 4 T1 H6 M8 A' h4 P' L
- )
/ x' r6 l) Y3 o5 }# n: n - (setq thoat T& u( G) i+ b# k* c; H, ]0 ^2 W: Y9 S
- textxl (cdr (assoc 1 doituong))
: ]& V" ^+ ~$ L1 n+ f" h' c - )
& e0 J# A; z" y* N! t - )4 n# T r v. H0 D3 F
- );5 f8 S2 _0 ]$ I" @0 |3 L
- (while T 4 Y5 Q/ @& ?) L3 p. N
- (setq toi (getpoint "\nSelect next point: " goc)
; |9 u' Z; K6 T( H. m3 L ` - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
?% E0 u* B' f1 H4 R% q8 W' M - dem 0" z# b. i( t Z# e/ n& ]& M
- )
' \0 Q3 J, g! r/ W! U - (while (< dem dodai)
3 s8 b+ ], }" [/ H) Z) b' I - (setq ten (ssname cumdt dem)
1 e% F3 `- h% A0 O7 D# b - dem (1+ dem)
5 l g7 z7 [/ c8 |/ m - doituong (entget ten)
: J4 {; {. g8 a - kieu (cdr (assoc 0 doituong))
3 Z3 {8 B( t. w0 ]# @% t - )3 o* L9 a2 J9 F. R c# Z
- ! t$ Y: o0 Y$ F! q: Q
- (if (or (= kieu "TEXT")5 W# h# g5 B4 W* ]- S2 F) l" S6 Q
- (= kieu "MTEXT")
: Y9 d; g8 E7 l$ D) k$ R - )
! M$ `" C# u4 T N - (doitext ten)
, L4 ]) i( K# A; `$ C7 J! V - (copy_dt ten)2 A* T$ X: C- S. |0 S2 }
- 9 U( |2 H; {8 b5 _
- );if
: q" d2 P0 ~' K* |- s, X6 t+ W5 S) T - )% ]! t. [% y2 Q/ [* D/ b
- );while
$ q- s' p* P/ W3 J5 G: j. j - (ketthuc)
0 t' R$ s9 T) s) ~% c4 Y2 j$ j - );defun
9 W3 F" }& x! R4 t5 g: Y2 E ^ - (princ)
. y6 k! N& z: Y. Z8 S - - I& Q0 ]; G( i% c0 X
- ;=====================================================================
% d! D# j: O( d, t6 C* _, ] - ;;; By Jimmy Bergmark
4 C0 b% |0 w) _ - ;;; Copyright (C) 2008 JTB World, All Rights Reserved
+ X. k- D0 b6 i" i - ;;;/ b, e9 }. H9 J: K' u
- ;;; Created: 2008-03-318 ?5 n; T: P1 |( ?9 Q; n
- ;;;! E+ E5 O6 D: d5 j+ y7 u+ F" s& n; x
- ;;; Convert Attribute definitions to text8 H: a; V; F l( i. O* B; ?
- ;;;
2 e9 I9 A/ |0 r$ I - 3 q5 U- W1 W( @# j7 ?* x
- (defun c:ATT (/ eset1 blkcnt en enlist vl space)
. \! q0 I: R) z0 ^/ S - (setq eset1 (ssget (list (cons 0 "ATTDEF")))
; R( M3 V/ h4 b& P; { - blkcnt 0$ f) N0 C2 O: d# R1 g% j
- )
1 X3 `) o/ n( w3 }3 L& ^! Z2 S
5 w6 x8 s! {$ w% t4 t1 c- (if eset10 i; O @1 b! I2 y" i( L# H
- (while (<= blkcnt (- (sslength eset1) 1))
. S. n2 y, _4 X) ^- O" X - (setq en (ssname eset1 blkcnt)" b4 C) ~9 F* o/ B
- enlist (entget en)! H6 L) @& }0 @, |/ S) ^' K% p
- space (cdr (assoc 67 enlist))2 s6 }" N1 M/ G+ s+ g y
- )9 T/ ?+ @3 u1 _7 Y# p& y5 P- i
- (setq vl (list
& s3 l/ M7 r1 `: D- U5 f# Z - (cons 0 "TEXT")) i5 o' a0 n3 i9 S9 \ z8 g) C4 h
- (cons 100 "AcDbEntity")" S( Y* s: M2 A/ A* z# Y5 }
- (cons 100 "AcDbText")6 b) Q5 c' W: X% L* C- C& G" z, [
- (assoc 7 enlist)
O; N I5 p) } - (assoc 8 enlist)
4 v' a/ j7 `$ B - (assoc 10 enlist)
3 r9 {6 F% V1 w& }, l8 q8 ] - (assoc 40 enlist)
# r/ ^) I8 a" e1 D4 b$ m% o - (cond ((assoc 62 enlist))4 G) Z/ R: w) M6 _; B
- ((cons 62 256))
& t6 \$ ?: f0 @/ V - )/ i8 C$ Q& F! c
- (cons 1 (cdr (assoc 2 enlist)))3 r4 I# [7 j+ Z) w/ I
- (if (= space nil)* N5 N3 d8 V1 |" ~" L5 b4 z1 j6 m
- (cons 67 0)
- v O' m) E+ H' p0 K: E7 i - (cons 67 space)
1 O$ `$ P E- f+ ~ - )
% }' r5 ?) S& V3 F/ [$ D - )6 u# n' g& w) }( h. r6 N
- )
& P& E( J% v* a5 J) [% ~8 W: ?; j - (entdel en)! U* u. l$ i- Y$ N$ z
- (entmake vl)
/ k5 M/ J# b: P& P - (setq blkcnt (1+ blkcnt))
. d; w, n: X) \$ J; F! R: k9 f - )6 R X( h' h1 P4 q& u0 r. J
- )5 f2 Z0 k0 r- ]( F( @
- )
2 Z8 L3 b# \3 o6 P1 \8 Y - ;=====================================================================$ p8 d* }8 M; B! X3 M3 { n3 _
- ;============================ Doi Truc ===============================
; y9 l* E3 _) B9 _2 {# d2 s4 C' y - ;=====================================================================
' `9 ~4 L3 U$ b L- w
, g& j4 g8 N/ _- ;=====================================================================
* P6 |3 ?7 f8 q - ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============
! `( k( w" ]6 w7 K9 \! x6 T - ;=====================================================================: p7 D& ]. c9 p& p% q* R) N- h
- (defun c:ga1 ()
4 ?1 t! \. I: K* M - (setq a (getpoint "\nChon diem: "))
$ g+ J' t4 N$ H; X8 |( t - (setq b (getpoint a"\nChon diem: "))
4 m, e- ]0 h$ }+ D! `/ j - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))) W E$ _/ T: C; c' m
- (command ".circle" c a)
, [4 r* T* E5 o - (command ".line" a c "")
3 j$ M! c6 q/ L P: O& @ - (command ".array" "last" "" "p" c "1" "" "")$ r3 j$ U+ e1 }- @$ ^' b4 g
- (princ))
2 F3 Y' X) _4 w; t8 l! J7 M& ]: L8 _1 f+ r
. s$ W7 L' p8 L+ i- (defun c:ga3 ()
2 ]& V! w v( p! E( Z - (setq a (getpoint "\nChon diem: "))' c2 [5 v( d& f# g. r$ |
- (setq b (getpoint a"\nChon diem: "))
! [$ z- r2 V% q5 `2 k - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))): f$ | k$ X/ o1 K7 w
- (command ".circle" c a)
8 Y7 {$ l6 m6 U" D, e/ v* Q9 ` - (command ".line" a c "")( r, k) i `# t9 u
- (command ".array" "last" "" "p" c "3" "" "")
+ Q+ S4 S6 X1 ]* I2 ^6 A5 E$ H4 ]; N - (princ))4 T2 Z2 Z) ]$ ], g5 y& F3 ]) x! g2 @
- , A0 R' g5 Z9 f6 L
- (defun c:ga5 ()( j' m* [5 W9 n6 i
- (setq a (getpoint "\nChon diem: "))% w1 {7 ~1 f1 _' Q Q* Z) N( I7 W. ?$ P
- (setq b (getpoint a"\nChon diem: "))! M g# E7 Q2 i9 A
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))+ w% V" W% w; @% `; w
- (command ".circle" c a)
' d. r) R5 l! \3 [ - (command ".line" a c "")- d. j* i) q5 r& w+ k( Y
- (command ".array" "last" "" "p" c "5" "" "")
- l. Z) m' N: [8 u7 R - (princ))
4 ?( `: q3 E1 {- O1 p8 A9 M! l - 6 J! E1 p6 Q4 K8 y$ b9 o* u
- (defun c:ga7 ()
8 B6 P9 H$ j/ D- q6 D/ V1 o2 e# [* U - (setq a (getpoint "\nChon diem: "))7 U' f$ b/ a* a
- (setq b (getpoint a"\nChon diem: "))
! x. q. o# p5 l- ~ - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
) a4 }. H: T. ~) S# R - (command ".circle" c a)5 G7 ^/ j( p0 p" H
- (command ".line" a c "")) q6 Q/ x$ l* j: p* e; `
- (command ".array" "last" "" "p" c "7" "" "")
/ G3 d$ s6 p0 L$ G+ O - (princ))0 c/ F5 K1 m' q. l2 q: Z
- 5 h, N2 v8 ^4 _$ z, A0 U/ \/ H
- (defun c:ga9 (); ~6 K& o9 g" d3 X& K
- (setq a (getpoint "\nChon diem: "))0 z4 ~3 u# z) c6 V6 h% W, s) k
- (setq b (getpoint a"\nChon diem: "))' \5 p' g1 f( G5 A8 n
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
7 c6 h- V& D" y: n0 m# S: J0 V5 X - (command ".circle" c a)
) B8 w, c9 P9 r' Z" ~. F5 w - (command ".line" a c "")% n+ @: {: _9 }: D G
- (command ".array" "last" "" "p" c "9" "" "")
* ~: S( \" J. p! ]) j2 Y - (princ))
. E7 v6 W/ L4 a3 ?% t( r
1 z; [: R9 _8 b; Q2 Q5 p- (defun c:ga11 ()+ z5 z1 {6 W! `% j5 Z' q
- (setq a (getpoint "\nChon diem: ")). o9 z C5 X, q) D
- (setq b (getpoint a"\nChon diem: "))
! `6 d% I3 `4 U& D4 Z3 V9 o - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
1 ]5 c' w6 z6 o) k - (command ".circle" c a)! N" H( p" k' f! q) g% p
- (command ".line" a c "")+ ]5 ?1 u1 n! Q b# H# y
- (command ".array" "last" "" "p" c "11" "" "")
9 k2 S1 b$ U8 C- z; n - (princ))0 g3 }0 o) h% U7 n9 P. d' |# ]4 f
- 8 X1 p3 f1 E* Q3 \" k/ D$ b3 p
- (defun c:ga13 ()3 u: W8 h2 T7 F* O
- (setq a (getpoint "\nChon diem: "))( L2 Z& p2 F( w. O% I
- (setq b (getpoint a"\nChon diem: "))) ~* G/ p( c$ W# o1 y
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
4 q+ [2 n0 T% s9 h* h; K6 [ - (command ".circle" c a)
$ F& s4 e1 y" D, p2 y# k9 ^ - (command ".line" a c "")- M; E. F; q# ` u
- (command ".array" "last" "" "p" c "13" "" "")8 C& A7 `% v9 B$ r' W1 J" A' t( @
- (princ))) i4 f& |( j% N' K
- 3 Q9 J7 V- G6 r) `: ]/ d7 _
- (defun c:ga15 ()1 }+ g0 E, @# Z2 x6 D/ h. [
- (setq a (getpoint "\nChon diem: "))* i; c: d, W: ?/ `
- (setq b (getpoint a"\nChon diem: "))
0 I' S* p! f/ F1 r: V% J6 I - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))); Z7 c, a2 v+ ?' F* H8 x
- (command ".circle" c a)
`# l8 u2 s- ?$ Q2 X - (command ".line" a c "")& {8 F# h5 b" N! ^4 {5 [
- (command ".array" "last" "" "p" c "15" "" "")3 { u- A" \& E$ X
- (princ))8 ?& }0 Q3 L/ f5 I
* D$ t* S; Z6 I& o, k, U' O- (defun c:ga17 ()/ E+ j5 d# Z5 F$ t: ~
- (setq a (getpoint "\nChon diem: "))
: n" f. w7 t& E L - (setq b (getpoint a"\nChon diem: "))4 N2 o. W. d9 a- U+ Q1 a6 P
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))2 |+ i8 l( u% Z0 G7 F: q; R) ~
- (command ".circle" c a)
4 ~( u9 N4 I% n/ D3 ? - (command ".line" a c "")
$ Y8 W) o: v6 d; b! m. J - (command ".array" "last" "" "p" c "17" "" "")
. I8 \' Z, ^& s* j* h& X9 F; p6 T - (princ))# j V6 C& \0 y4 u! x
- Q" H- P Z+ D4 ^& Z7 K7 y
- (defun c:ga19 ()
' R6 [6 s8 a0 W1 a& ~( ] - (setq a (getpoint "\nChon diem: ")). J! E+ q+ K+ m" {$ L: x @
- (setq b (getpoint a"\nChon diem: "))
: [. J9 Q' C1 W0 {' S - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
8 ]$ s5 h! s% E/ [" I& K' _6 t - (command ".circle" c a)
" l, P; x `9 Y7 I - (command ".line" a c "")
. `$ o# w, H& G$ W4 h - (command ".array" "last" "" "p" c "19" "" "")6 Z+ C6 ] R' q8 f& j* N
- (princ))$ Z. O" z& o. O% b; |
3 S% N! c/ Q. O6 e1 N- ;=====================================================================
% |9 s9 E# n, u1 \ - ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============
2 ^3 e" j+ q' ^2 v- y1 O - ;=====================================================================9 J) j" `0 M1 j! h; b: w5 r
- (defun c:ga2 ()2 e& B C- B) I# z1 y6 h8 o
- (setq a (getpoint "\nChon diem: ")), U, A( R0 I% I( |" i8 w
- (setq b (getpoint a"\nChon diem: "))
; X8 s: x3 t2 t# i# w9 {, y - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))( T/ |% }6 Q& ~. W7 F" ]: u
- (command ".line" a c "")& o6 A# W3 f7 j! }' Y1 k
- (command ".array" "last" "" "p" c "2" "" "")- X9 E! w* ~* V5 V: d
- (command ".circle" c a)
! U* H- Q' X7 I( w9 U - (princ)): r" U: p6 V, f$ P' v
- % i c; U4 h% t+ @; Y
- (defun c:ga4 ()
- {9 x$ K) o" e3 }6 J! T8 v- E) Z - (setq a (getpoint "\nChon diem: "))
- ^2 z, |, g: x$ Z - (setq b (getpoint a"\nChon diem: "))
, w: d5 H7 p6 H/ m; _6 L - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
! |2 _8 R, u4 X$ W- v - (command ".line" a c "")
. `6 R$ n' Y' c/ n- ? - (command ".array" "last" "" "p" c "4" "" "")
3 X. A5 U+ t, p. u$ \9 W - (command ".circle" c a)
6 o( V- K7 M* Z; v$ t* ]- Y( R - (princ))
( p6 W$ c" a2 [! U6 X/ v4 a
0 ~+ t9 {; T3 p1 ]- (defun c:ga6 ()
# p0 h- v0 i( a$ I5 s( v - (setq a (getpoint "\nChon diem: "))
: v* l3 I4 P( s1 ~. r - (setq b (getpoint a"\nChon diem: "))# t* R0 {0 X" ~. d; x
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))( m+ q' ]" Z) B- V; L
- (command ".line" a c "")7 o- ^, Y! N, b" z- u% R! K9 I
- (command ".array" "last" "" "p" c "6" "" "")
0 }( B$ ]* f& X/ [" s - (command ".circle" c a)/ ~( ?+ D+ i+ X) P0 _
- (princ))
& [( E }& _( y& `- h1 e& n% g - / F; Q( _# B3 f3 o+ n. S# P
- (defun c:ga8 ()
; f, ]& \1 Y. \6 U. F1 [6 f - (setq a (getpoint "\nChon diem: "))" c) B1 K& Z' |0 _6 h
- (setq b (getpoint a"\nChon diem: "))6 d, c( I( x; O2 O+ W9 p" z8 z
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
7 o( P) {0 G% e# S - (command ".line" a c "")
: g2 D4 f- W5 w - (command ".array" "last" "" "p" c "8" "" "")% o: A; U w" _* v3 D( `' u
- (command ".circle" c a)! n q4 r' B9 _
- (princ)) N3 K8 r9 Z6 j. L( S6 I: ]' ? p
- " ~ Q* v/ q& K- D
- (defun c:ga10 ()
' a, b$ }% A: B' }4 Q' _* s - (setq a (getpoint "\nChon diem: "))
% M+ l3 x2 P& F) F% L - (setq b (getpoint a"\nChon diem: "))! i/ X' H3 a( J2 s2 b1 W5 B9 ]) ~
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))/ N2 X, ]4 s% @- E( C
- (command ".line" a c "")
6 u, T1 n5 d) ? - (command ".array" "last" "" "p" c "10" "" "")6 J y: k& v$ @; Q& ~
- (command ".circle" c a)8 g8 P" |) V0 N7 z
- (princ))
/ b6 t9 s5 k+ T6 a+ N# d+ W - " j3 V9 i4 D. Q
- (defun c:ga12 ()& f) B4 e7 u/ D: `, [' }
- (setq a (getpoint "\nChon diem: "))7 ^: n5 j q9 O u, F4 W
- (setq b (getpoint a"\nChon diem: "))- n" f; z/ N' O1 E
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
- T1 [4 L, i0 s: |4 k) t - (command ".line" a c "")# a! Z* t m& H5 U
- (command ".array" "last" "" "p" c "12" "" ""), d q9 W5 z( h+ X0 u) J2 R
- (command ".circle" c a)
0 c- ^# r# U$ S' H9 o8 w - (princ))$ f: F7 q7 n: K- U
% \+ @) k% t5 w" r( x- (defun c:ga14 ()
+ c6 k! t6 ?( _0 N6 ?% ^ - (setq a (getpoint "\nChon diem: "))3 | ~1 G$ M; e+ n7 n/ x
- (setq b (getpoint a"\nChon diem: "))
3 P: m; M, F- B- ~' Z' O - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))) B7 A4 L" V$ O
- (command ".line" a c "")
7 x2 T9 G( x) [ - (command ".array" "last" "" "p" c "14" "" "")
" j2 d, g" _" J% Z$ z8 d! B - (command ".circle" c a)* i5 n; n! l N6 @% t7 T$ {
- (princ))$ ~$ k7 b w8 J( {% j* Z
- % @% `5 |# m- i. O% Z: _! h4 k) m
- (defun c:ga16 ()
6 c6 m2 s [" F2 S2 s/ X* e4 F( s! q - (setq a (getpoint "\nChon diem: "))6 U; f$ D1 G9 G; K
- (setq b (getpoint a"\nChon diem: "))
5 G1 Z- T$ K+ B o# m3 V' c - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))3 Z# e& @5 C4 R$ q# U
- (command ".line" a c "") n, \1 I/ H: Y( |7 h3 A
- (command ".array" "last" "" "p" c "16" "" "")
( a6 d5 r- k) v+ F8 G" O4 y- d - (command ".circle" c a)+ g7 s8 |( X5 e) Q9 n( w! A, }1 V' z
- (princ))9 d4 f3 p5 D& c6 ]- P8 q( m
) u9 U5 l7 B7 I6 h$ L- (defun c:ga18 ()
* @7 g6 h% }& _- j9 |$ D9 d, x% `1 T' `. t - (setq a (getpoint "\nChon diem: "))
8 c ]( G0 ~# n - (setq b (getpoint a"\nChon diem: ")) B0 t* f: r: k# B
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
# ^: w' h4 _" ?: a( C. y - (command ".line" a c "")& }. n% V# J R: [3 \+ B( z
- (command ".array" "last" "" "p" c "18" "" "")' s3 B! b2 i3 E
- (command ".circle" c a)' j, ]* t" j, x
- (princ))' V- T9 O# p( }6 Q |5 R. e( K& \) v" `
5 h& N: }, w( W( x/ }- (defun c:ga20 ()0 c- K8 F2 S9 R7 W" x( G
- (setq a (getpoint "\nChon diem: "))) H* o# R, ~) I* N3 D: d
- (setq b (getpoint a"\nChon diem: "))3 n$ Z5 b3 j C* i7 k! C& _1 {7 k
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))( H. C- W& ~! p5 J6 [3 k+ W x7 \
- (command ".line" a c "")
: y7 _5 k. R0 U1 U - (command ".array" "last" "" "p" c "20" "" "")8 H% c& N6 h0 y
- (command ".circle" c a)& A) H% g0 @ H {
- (princ))
$ K! ^# y7 B! C" C- H. `) u, b
1 L0 Y+ B& z, T2 X3 O5 l% U# y$ I4 E- ;=====================================================================0 h2 Z9 `; m: f4 ]# f
- ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============
9 ~ p& j2 v6 ~ K- {3 i - ;========================== 06-11-2016 ~ 18h00 =======================8 ]: ]# ?2 `- A3 Z& M$ w
- ;=====================================================================7 ]1 i% o2 i# E, `: R( y4 ?
- (defun c:ga ()
4 e4 e3 c5 [' }" b* r" n8 q [ - (setq a (getpoint "\nChon diem: "))) c" E) c N9 U& f
- (setq b (getpoint a"\nChon diem: "))9 w. C0 l$ l& R0 l" `7 o+ Y
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))4 k0 G. V. d/ o2 c( w
- (command ".circle" c a)7 ?0 O5 O; B! f. O
- (command ".line" a c "")" ]. k1 z# d" P, J7 e4 Y. v
- (command ".array" "last" "" "p" c "NUM" "" "")
8 F, i6 w( W/ B6 z+ p - (princ))
0 C0 L# w0 Q+ s8 t/ z7 R - 3 s2 c4 u5 l2 M/ Q' u& r5 c% n- F
- ;=====================================================================! r, H$ Q5 ~0 w! Z
- ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============, R: ?4 {+ E$ Y u3 n4 w
- ;========================== 06-11-2016 ~ 18h40 =======================
2 d- M3 a) S z9 B3 _' i6 C1 v - ;=====================================================================
' w. Y6 g1 D: S- U {1 o7 I
, L) _" l0 _: S5 x8 q- (defun c:hoathi ()
, r! @+ p! x* E* X8 k5 b$ u Y - (setq a (getpoint "\nChon diem: "))
[0 q* G/ u; x, n3 F - (setq b (getpoint a"\nChon diem: "))- d6 g& W# _8 F- L
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
# b7 B; D; C9 W% C* M! N - (command ".line" a c "")
2 h4 F3 Q) a% c3 N( G1 X4 {; y - (command ".array" "last" "" "p" c "NUM" "" "")5 R& T f6 s% Y! l9 B- I" D
- (princ))+ L" X( ?5 z4 K' {+ U
- 0 m: J, f# ^! X) F" S2 Z
- ;=====================================================================
7 a$ P* p/ ]5 E- K- w) j - ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============, h& h; n2 W& T, Z
- ;========================== 03-11-2024 ~ 19h33 =======================9 }7 @3 a, }0 H2 C- X
- ;=====================================================================
' f- e. m5 A8 j% q0 s/ N$ d - % ], r. R) d( n: j- y
- (defun c:cung ()# Z# ~8 e7 `5 G9 G5 j, e3 ^' _8 `; u
- (setq a (getpoint "\nChon diem: "))" B7 P: m7 C% t6 M9 b) k
- (setq b (getpoint a"\nChon diem: "))' A: H' f$ K5 S# I6 Y8 _
- (setq c (getpoint a"\nChon diem: "))% ^, A4 x, E4 s5 A! X1 d$ ^
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))6 [# y7 [$ q0 @. ^
- (command ".arc" a b c "")5 G4 b" }3 K$ X# C
- (command ".array" "last" "" "p" c "NUM" "" "")8 I2 R# E1 P- C
- (princ))* s# e7 _+ F1 q9 U- V4 ?% ?
4 X4 ^8 n# ^1 W8 o8 o- a% u- ;=====================================================================& ?& t) U/ a9 D* N) l" D
- ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============+ i7 s8 N, a+ _6 [: u
- ;========================== 03-11-2024 ~ 20h02 =======================
* B' _; h. c# E3 m) } - ;=====================================================================
, I8 R$ {, H9 D7 m! [0 I - # d4 L D% {+ I& |, ?
- (defun c:hecloic ()
. q9 ]6 t- m# v! i* q9 p - (setq a (getpoint "\nChon diem: "))/ d1 D& m% J& s+ d: Y" v; }+ u
- (setq b (getpoint a"\nChon diem: multi "))5 H: d+ x/ F( U% F6 ]" Q: M7 q
- (setq c (getpoint a"\nChon diem: "))(princ)
! b7 W; h$ Y% X2 r) L* O - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))3 n, l1 ~' Z8 W% T
- (command ".arc" a b c "")2 N4 s4 Y7 [ Q
- (command ".array" "last" "" "p" c "NUM" "" "")
6 {+ V! O8 y0 }2 S- t' s - (princ))3 ^- x% ~& ~% D4 t
- 9 r8 H% w y& K2 s) `! A' c
- ;===================================================================== `; j5 u! @$ M* X5 D
- ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============
8 D) o& y' i' D - ;========================== 03-11-2024 ~ 19h38 =======================
8 f( I# B: {8 C- _0 L5 D - ;=====================================================================
9 f" o) u+ S, a2 s$ x$ K - 7 g) S; E `6 p
- (defun c:gay ()
. U' k" ~0 K5 W! U# \6 s, @$ M - (setq a (getpoint "\nChon diem: "))
& N5 f1 H8 J0 c) a* @! K! D - (setq b (getpoint a"\nChon diem: ")): G& U1 e; c% z/ X
- (setq c (getpoint a"\nChon diem: "))(princ)
/ b. ?" P# u/ B - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
( D% r5 r M! P7 T - (command ".pline" a b c "")
9 b8 [. a/ O; q) }7 g) R - (command ".array" "last" "" "p" c "NUM" "" "")6 ?/ Q- b8 @' q2 u3 \# a1 U
- (princ))
9 H- z2 C: S8 e' l - . t! t. E/ W! O
- ;=====================================================================
& D8 t5 |* R5 [5 W9 g- l! x% k) [0 X1 D - ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============" N9 f3 c8 w- ?4 q
- ;========================== 03-11-2024 ~ 20h02 =======================
" O, }2 x$ d- g% L# X9 t; m - ;=====================================================================
! ~' R3 U% ?+ v* y8 r5 h - 0 y" ?" Z+ i% t& ^& [
- (defun c:hecloit ()
, G$ P$ H$ N( U - (setq a (getpoint "\nChon diem: "))$ {1 p% R1 L$ c I$ T- F- x7 @
- (setq b (getpoint a"\nChon diem: multi "))' _/ I q, K& A+ g& i
- (setq c (getpoint a"\nChon diem: "))(princ)$ J$ A' y9 {& ?- ^: ~3 W1 G# Y. f- U
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
$ N" R/ \' y$ `# w$ z - (command ".pline" a b c "")# p0 b' t9 c, [, b. t
- (command ".array" "last" "" "p" c "NUM" "" "")0 L! o; o" S* J
- (princ))' V1 q& r) V6 q* b# \) o$ v( N
6 d5 [! g; H+ ]+ X: m
o w j8 M2 @/ r- ;;; ============================ Merge Hatch =============================
% T$ k5 V+ x, Z2 n2 z; t( N& I) Y. `
1 e. X; B/ H: L3 Q, z' r/ q- (defun c:mh (/ ss entht sl i dt dtht)
; d& D: S" e) o. }
K m2 b q/ E7 Q$ ^& c- (princ "\nMerge Hatch - free lisp from CADViet.com")
4 F" b3 g2 |0 S4 C9 k" q _+ T - ' h% V% q# N8 s
- (setq- `& A; ?$ d* X# b ~
- ss (ssget '((0 . "HATCH")))
5 d' b' `$ k/ S. p2 }' e, j - sl (if ss6 O$ L% y9 J) J
- (sslength ss)
+ K2 v3 @* o; ]+ F' n& p" b - 0
9 C' Y" P( M8 n' @" R+ H - )
8 l1 k& E. v4 H" n+ b - i 0$ B( {7 m& E5 @. ?" p+ b8 G
- l 0
4 J# X6 r8 z( {' r- ?2 ^ - ) U0 O5 S2 f7 L+ o: L- A
7 E8 q9 [# ~1 K/ _: H- (repeat sl
# [9 I: L2 {$ G; `* D. O9 ?0 g" h0 O# { - (setq
. x N8 `5 j8 f7 i - entht (ssname ss i)) Q. j6 o* l$ `8 x* ]3 }
- dtht (getbdata entht)
3 m a. b, X6 q' w2 [2 \ - dt (append dt dtht)/ ~( y2 S; Z4 h k4 E0 z2 i
- l (+ l (cdr (assoc 91 (entget entht))))
1 T/ S6 L- x8 C M - i (1+ i)+ s; z8 U& ^- u
- )4 w$ \% P# J- U, a9 L, e" [6 q% a
- )
' ]- {" e. R# N+ ]0 @ - % X ~* R5 _: q/ s* g
- (setq ent (ssname ss 0)
! x8 R. b' m5 Y' _ - ss (ssdel ent ss)
@1 j/ ]* ?, g) h9 W3 n/ a) P7 b - tt (entget ent): m' B$ @. `, G
- duoi (member (assoc 75 tt) tt)3 q- r. F" H$ b! R; Q/ I: N9 x
- dau (reverse (member (assoc 91 tt) (reverse tt)))
7 n% y- L8 B) j/ n8 A! {' V - tt (append dau dt duoi)5 M( i: e5 B3 {9 ~# _$ O
- tt (subst (cons 91 l) (assoc 91 tt) tt)7 F9 z- ~1 `4 i# Y
- ); _( s6 I7 Y' g% s+ ?8 b
- (entmod tt)5 y+ e+ U( k" ^" L" p. q
- 4 Q' S4 a2 }% `; U3 g
- (command ".erase" ss "")* j' g3 K5 K8 J3 U; N0 w$ i* L9 M
- (princ)
. S8 Q q; H% j v2 `: O# t - )
8 e! e, r) i c" X+ }
' L9 P( \1 A* }- z# `- (defun getbdata (ent)
: _( C" \/ o1 F# Y2 w6 F" K - (setq tt (entget ent)
8 O+ o) {& }; m - tt (cdr (member (assoc 75 tt) (reverse tt)))
# Q' R3 c+ T* W. w - tt (cdr (member (assoc 91 tt) (reverse tt)))% W$ `: i V- f/ Z
- )
: j3 p" }/ v7 J7 N- m' L - )$ A% ` M; c h( p0 D9 \! y- F
- 3 _7 s* x6 r3 l, V
: a3 l. D: A8 N. m, f6 q+ r- (princ)+ e9 C0 R; P! r9 r( Q: J
- ; L4 ^* V3 g9 K8 W/ Z) R
- ;;; =========================== CAC LENH LAYER ==============================
% n- r& C$ Q5 |9 |$ i+ C3 ^9 n" S - ;;; =========================== Layer hien hanh =============================
+ Q2 r( x$ q/ [& n6 H& q - 0 G+ G( t, u; s$ F5 H
- (defun layset (/ LAY) (setvar "cmdecho" 0)+ o# [! O1 Z, Z0 c
- (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))* ?9 a" `" |+ s- @% R+ G5 ?
- (if LAY (progn
3 U1 G+ a' S6 U1 i( `2 r - (setq LAY (cdr (assoc 8 (entget (car LAY)))))5 }7 s0 c" |8 s- L1 a) D
- (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )
# `3 O. x/ ^/ m, F - (progn
7 v$ }, M1 s8 s8 C3 n# z - (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop)) 9 [: S( w9 @% @/ y: ~2 e3 [" W0 K
- (progn
4 x' q' h& u4 r0 n; ^2 [ t - (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )) z/ E. D/ v% T" K0 p
- (defun c:LLL () (layset))(defun c:LAYSET () (layset))) p+ ^5 r1 v6 Y8 K0 A6 o$ t
/ q/ Y1 Q F' u- ;;; ================== Cap nhat doi tuong vao layer hien hanh ==================6 v. g. d$ |8 O+ t0 f& B
- 9 n% `% b2 W/ R
- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)' F5 }+ b2 o$ W" I/ T0 t' p* C
- (if (not (setq SS (ssget "i")))* o/ V" j5 V* C' g! t8 @# g8 U) @
- (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")2 S- ]6 b ~/ R
- (setq SS (ssget)) ) )
6 d4 l# U; o8 _7 N' B* j5 O - (if SS (progn
5 C" I! A7 R: M: W4 V) {' h8 h - (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "") 8 E5 H: |1 \1 {- ^$ D4 @8 h
- (if (> (getvar "cmdactive") 0) 9 R& s. b( j: k- }
- (progn
6 `! }; d/ n# g( H7 } - (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )6 ]3 s5 R0 i' b7 u k
- (setq SS nil) ) (if (> CNT 0) t9 R' C6 `2 F( K5 m
- (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )
+ b" F: l7 p4 w6 X2 _- l# R9 O$ g/ ` - (if SS (progn+ u6 A) S4 V6 g# q4 }
- (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")
, B- J% I0 H0 ^* h - (if (= (sslength SS) 1)$ Q9 i, ~, y* Y# h" j6 M
- (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))
( B( h6 h# c1 ~7 {# X - (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end$ V0 O& U) M1 T. Y3 z9 Z
- (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur))1 T/ P" g0 `/ U/ W
- % i- D" W* L C) Z; m/ [
- ;;; =========================== Layer Iso ===================================0 N6 e. \0 X) F( `5 V/ z
- 3 }% f9 O+ Q& N8 H" \$ D
- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)
$ I$ f1 q q8 Y9 s" [ - (if (not (setq SS (ssget "i"))) (progn. J& s' a% q! y% s
- (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ")
) q: O$ p. I( `) d' m - (setq SS (ssget)) ) )
D, a7 R8 z) ] - (if SS (progn (setq CNT 0); t l7 ]. `. G/ c' F8 H
- (while (setq LAY (ssname SS CNT))1 \8 [3 w( w7 _7 B' U) u6 j
- (setq LAY (cdr (assoc 8 (entget LAY))))
% v* m/ n4 @! @( t6 h$ k! D - (if (not (member LAY LAYLST))
) V# z" u+ d7 { Y+ k - (setq LAYLST (cons LAY LAYLST)) )
3 T! Q) C3 I( P. i7 [' G - (setq CNT (1+ CNT)) )
% {9 b9 X' ^6 W6 d - (if (member (getvar "CLAYER") LAYLST) ^6 A) B& t- Y. a% M
- (setq LAY (getvar "CLAYER"))! J" c1 U1 U) b! N. V) E
- (setvar "CLAYER" (setq LAY (last LAYLST))) )- V) ]& R9 P q% l2 A
- (command "_.LAYER" "_OFF" "*" "_Y")# {' L. @9 y" |9 q
- (foreach VAL LAYLST (command "_ON" VAL))/ U" v5 H) a9 t. q
- (command "") (if (= (length LAYLST) 1)/ X, H6 K" ]6 `8 U( i
- (prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))
! n: u$ Y5 k2 J$ k! j/ z' o - (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "
* z U; f; T6 a% z - "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )
1 [4 p3 Y/ b0 [' ]) C& i7 m, m, c - (defun c:LAYISO () (layiso)) (defun c:LI () (layiso)), Q: u4 a% o8 y" y, g: G
3 f* w& d& d: ]) A- ;;; ========================= Layer Match ==================================
5 l) z( V3 l/ x/ d" d H8 w - 3 |$ R% h' i( r: L
- (Defun LAYMCH (/ SS CNT LOOP LAY ANS)) K1 \7 e2 ?' o) F
- (setvar "cmdecho" 0)/ q2 I6 _! o- R: l4 K
- (if (not (setq SS (ssget "i"))) (progn4 C5 q* t% G. Q0 Z+ V/ R: f' M( n
- (prompt "\nChon doi tuong muon thay doi Layer : ")
# v- e2 C) ]" g - (setq SS (ssget)) ) ); G) A: f0 |. h4 r @" X) J, O
- (if SS (progn. w8 T+ ~" g% r b
- (setq CNT (sslength SS))
+ |6 ~" O3 \! N- Y6 _ - (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "") 2 s1 j$ i0 G' P8 ~ b y
- (if (> (getvar "cmdactive") 0) (progn( k' p! W2 d* o& L" ^7 N- s) R
- (command "0,0" "0,0") (setq SS (ssget "p"): ~0 o- r: }6 t2 s
- CNT (- CNT (sslength SS)) ) )
& U, }8 [9 B6 x& j - (setq SS nil) ) (if (> CNT 0)
6 w8 w; ?( a8 N! i. d. ~6 [# p$ k - (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) )
; J$ F7 d* q' X - (if SS (progn) |5 \, b" O# |; p1 O
- (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )
! F. C, B5 |$ x M# L0 v - (while LOOP (cond6 \- z; p5 _9 G. `; `6 S* Y8 P
- ((not LAY)1 h2 _$ P5 o9 D4 Q2 G$ b
- (prompt "\nKhong chon doi tuong.")
) p7 c7 ?( A! g; z8 ~" l' P3 [6 ` - (prompt "\nSu dung layer hien hanh? <Y> ")
$ Y& o- q; L+ `" l/ u4 G& r - (setq ANS (strcase (getstring)))( F; e# J2 I2 ~
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))0 g& V& s. m$ Z5 T( V- M: r9 f
- (setq LAY (getvar "clayer") LOOP nil ) ) )
! M9 S7 G% H0 K* [ - ((listp LAY) (setq LOOP nil) ): R" ~ m7 x+ P% o" g2 ?! T# r
- ((= LAY "Ten")
4 g; u8 G! s! L$ c/ b - (setq LAY (getstring "\n>Nhap ten layer: "))' E. M0 q" P& c! b
- (cond
/ A) I1 ?' m" Y2 r - ((tblsearch "LAYER" LAY) (setq LOOP nil) )
x! X! _( |% X5 k9 d - ((/= LAY "")
2 j6 G* v- D. r! w: O) v: z - (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")
6 Q# M$ a. t. w: R5 f - (setq ANS (strcase (getstring)))
1 P& \, |, T0 y; y4 }. T P. p - (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
# C' e, A3 s. ` - (progn
8 D1 Y/ s( J, ^: q Z$ \8 N - (command "_.LAYER" "NEW" LAY "")* i7 ^( C0 ?% v9 J& N. ~
- (setq LOOP nil) )7 z" b4 o4 P9 k, y& {: c
- (prompt "\nLoi ten layer.") ) ) ) ) )
* B1 v0 B% x+ ?/ A& \ - (if LOOP (progn (initget "Ten"): e, E# U' ~, i5 S, F+ O. M5 u
- (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP
: G3 R: `# j' q: }3 K, L1 Q/ F - (if (listp LAY)0 |5 ?3 p; B+ U4 h! M
- (setq LAY (cdr (assoc 8 (entget (car LAY))))) )
- m6 o, k' L6 g. q - (command "_.chprop" SS "" "_la" LAY "")4 ~ L& e( W. i: h8 h% x. [. x8 j
- (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )
9 `) |8 M: k3 n5 s7 ^. b - (if (= LAY (getvar "clayer"))
& O5 P8 r* i0 g! c. V - (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) ) o8 A* I- O2 E& x) p0 R
- (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch))0 L/ |! i. ?# W
- $ b/ m8 Z7 Z# C2 j8 ^5 R/ ~
- ;;; ============================ Layer OFF =================================
* P( U& s6 j0 { - 9 P6 S* @: B) Z
- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE)
9 } O% H0 C( r' h' @2 T - (SETQ SSET (SSGET))
; ~+ b7 x8 B2 Z) B; T, D - (IF (/= NIL SSET) 3 L4 f% W& u2 J h( X
- (PROGN6 V( i B6 x% k1 k* G
- (SETQ SSL (SSLENGTH SSET))$ j+ h; i$ b6 B9 c+ J3 L
- (SETQ LAY "")
* S7 p6 R: Z/ e- s1 o# ] - (SETQ I 0)5 |' n2 h; g* K4 T. Y( l
- (SETQ MODE 0) / X( X: N1 Z& S
- (WHILE (< I SSL)
D, t0 a% x7 l4 X9 u1 N7 i - (SETQ ENT (ENTGET (SSNAME SSET I)))" e$ o# X- E0 g3 o5 z* d
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) ); |8 ?0 R+ [8 Y
- (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))
: _$ j& ?1 ^' @: m1 L - (SETQ I (+ I 1))
# [8 K- ?+ L7 C - )9 M* B9 V' ~6 t5 a |1 D5 }" U
- (COMMAND "LAYER" "OFF" LAY "")1 a( i" q' ^! i2 q5 L% \; T
- (IF (= MODE 1) (COMMAND "") )/ p" \; | h# y& o+ s3 W f
- )0 B( \3 M9 ?* y6 K, Q
- )
& ~8 ]+ w' I) r, l; Y4 _2 e9 E% b - (PRINC)6 Z. l' Q" F. f+ l5 B |
- )
f2 |7 |) f5 v2 j) x# S
* E! o0 _$ [( V. B2 p4 L# c- ;;; ================================ Layer ON ==============================
% Z4 k6 w4 Z! f - # B3 L- m0 ?9 g; f& C1 d0 q
- (Defun LAYON () (setvar "cmdecho" 0)
# m: O0 h* K8 M+ d7 z: x - (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")3 S1 h: ]( X0 O3 k: n5 j5 i. k0 F
- (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))
3 Z- I3 P3 M3 d+ j - (defun c:LAYON () (layon)) (defun c:LOO () (layon))
& z, l7 o& j: N! Z+ m J - (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ)), B. t& w9 m& `4 t v
- H) Z. x8 ^1 F; i5 q
- ;;; ============================== Layer Freeze ===========================3 n* [) p2 o8 [4 h8 \9 R( J
- % T; l0 j. K* U+ v8 W
- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0)
: [. G- U& c" o# S( ^ - (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))
8 p; q/ y2 [& q: X4 b4 ]* | - (IF (/= NIL SSET) (PROGN
9 x: n i1 V5 }) { - (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0)
. _5 |7 }1 i9 v9 l - (WHILE (< I SSL)" B4 s/ ?4 q$ L" L
- (SETQ ENT (ENTGET (SSNAME SSET I)))
( O- `2 }* k* I - (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )0 j* g8 r( c8 c/ X& I
- (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))
' Q% G2 B# M9 c" y - (COMMAND "LAYER" "FREEZE" LAY "")& Q! y) U& d C
- (IF (= MODE 1) (COMMAND ""))))9 \. Q% E3 `! ^% S
- (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY); c# g2 H$ G5 c( l2 Y* c: M5 T! B
- (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )
7 m2 p( g) m/ r8 G h7 p3 K - (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz))
& e' Z9 |0 p: n x4 c" M" k: N
+ L- H6 b1 I1 M) A& l5 T( h5 r- ;;; ============================== Layer Thaw ===============================
# M4 T" |8 J8 @3 I - # k0 g4 |8 U7 U& x: F
- (Defun LAYTHW ()
6 Z/ O4 A3 H. H( a9 ~ - (setvar "cmdecho" 0): u5 L& u5 ]2 |0 B& b6 @
- (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")
! Y0 E$ _9 W, \5 Y2 A( @- ] - (Command "_.LAYER" "_THAW" LAY "")
! ~# w& v2 S6 V7 d6 Q - (princ (strcat "\n Layer : " LAY " da THAW."))1 o. L! i; i1 M
- (princ) )
2 e- |. X9 Y, ~ - (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))- M( q7 \" g6 g4 h
5 Y6 ^ b% Z& K" G! }3 r+ u8 Y' B- ;;; ============================== Layer Lock ============================== Y* U3 h7 u. e g9 ?
- 1 H: K/ k9 D1 d+ v* e
- (Defun LAYLCK (/ LAY)
2 s' e7 ~8 ~ V; {: Q - (setvar "cmdecho" 0)% z9 o" A; M& i% Q
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))
& R9 J/ e: ^' h( W& D+ L* Q - (if LAY/ W7 w' t) {% k
- (progn
4 ~( ^8 x+ l5 V% u2 h/ P( d- m% X - (setq LAY (cdr (assoc 8 (entget (car LAY)))))- Y4 _" S- U& g
- (Command "_.LAYER" "_LOCK" LAY "")
5 N8 r+ a/ \' ~+ r8 v$ |; d( b - (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )
5 P" i/ `- g6 g7 O' F8 d8 S8 I - (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))
3 a5 r ^: p2 n v9 X7 s K& g - 3 `+ u- x8 @8 |, C' H. j& G
- ;;; ============================== Layer UnLock ==============================
5 |6 X% N! t" H - / n7 J8 C$ N7 ?2 P' h1 U9 i
- (Defun LAYULK (/ LAY)2 b5 v' R; I( @0 P' I# N- r
- (setvar "cmdecho" 0)
) u& Y' A% b# J2 {* C2 ?9 T! Y2 i - (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))0 D5 C, v b% ^0 y0 T) \! @, W. J
- (if LAY
1 ?% W% m; \* v- j5 ] - (progn
: D& G) T, \2 ~ - (setq LAY (cdr (assoc 8 (entget (car LAY)))))- z% ^$ f: d) m: u: K3 Y, o
- (Command "_.LAYER" "_UNLOCK" LAY "")
8 n4 G5 @! K, c' I - (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )! v2 }7 G! u5 P [- v
- (defun c:LAYULK () (layulk)) (defun c:LU () (layulk))4 ?8 f3 t1 q ?' Z1 u6 }( ]
2 S1 P8 D" y1 {: D+ ~- ;;;===================== Delete all objects of Layer ========================% m: M- p2 Q1 E- P! [
- . E3 \9 P% M+ A' z+ v4 A
- (defun DELAYER (/ ocmd L S)
, _7 ^) l4 i$ K: j. o6 f$ H w, Q - (setq ocmd (getvar "CMDECHO"))) q6 B7 u q' ^! ^1 r
- (setvar "CMDECHO" 0)5 i+ @& K% w% F; O/ u: [: B
- (setq L (strcase (getstring "\nLayer(s) to delete: ")))
+ ]/ n e0 q$ s! ]* e. M - (setq S (ssget "X" (list (cons 8 L)))) 9 ~' I1 G7 |4 V7 h1 v
- (if S
6 a: i6 ~4 | \2 X$ J% l1 ]# B - (command "ERASE" S "")
$ A6 j# |* P$ N4 E - (princ "Layer empty or not a valid layer name.") )
; \& q+ W6 {6 Y* @' Z0 L - (setq S nil) P: c; `8 }5 G) X
- (setvar "CMDECHO" ocmd)
2 |3 G* }2 N% v" O' C% J: \ - (princ) ) ! _; \% O$ u8 [% C; J$ b0 q* X( g
- (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer)) W1 }0 J' f7 {+ x l
$ I! L# @3 \$ G6 }4 d* q7 j& n- ;;; ========================= HET CAC LENH LAYER ===========================. ~4 z6 P2 r- W0 [0 e. [9 s" ]
- 3 j5 V9 W1 v# s
- ;;;====================== EXTEND NHIEU DOI TUONG ===========================' m5 I. @; Y s) r# V; V* [" R& a
- + _1 U0 H& M3 w4 S
- (Defun C:EET (): O- o, k( \. b3 {2 C6 w
- (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)- i" C+ k5 S6 y( M% I, A
- (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))
5 o- r! V' u5 R4 @ w0 L( I7 r- {0 \ b - (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))7 _; w( C$ U4 F. I0 O( O+ w9 _
- (Setq I -1): }% v- a# z4 ?+ H: c0 U: F
- (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG "")
c, C) t- q3 l0 x - (Repeat LEN" t- E Y$ a9 H3 E. N/ _. C
- (Setq I (1+ I))
1 s% M% Y1 e+ Z( X r - (Command (List(SSname SS I) SIDE)) ) (Command ""): f$ b0 P. e# w
- (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )3 Y0 K+ Y8 u" A( e. [
) N& [0 T* M9 n# a# j z% }- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============
* }; D* G t0 ?0 C
5 j! _2 y0 c0 L5 u( c% w- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)4 A' F' s7 z8 i8 h% Z2 p0 ^
- (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND "))* t' V( J0 E6 q4 A( ~* Y1 }& ?
- (setvar "osmode" os)
- p/ M9 @3 _& ?- ^* V8 k! p - (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))
5 Y: c, a3 t) N( y - (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))) m: k% H, e6 ^% S' {
- 9 J9 p0 [1 F& c7 I
- ;; ================ Change width of polylines =========================5 G; I" f6 ?1 X+ _
- C4 f( K w7 T a5 F
- (DEFUN wp (/ a b sophantu sodem list1 ha:wid)
, G: F0 y0 k$ i - (PRINC "\n Chon doi tuong can thay doi do day (Width) !")
0 F- Z7 y3 j) m) H# |9 O' J7 ` - (setq b (ssget))
8 Y$ ]3 v) \0 b7 o& C6 L" o6 _; a - (setq sophantu (sslength b)) 7 G+ G4 V F/ O3 X8 j& S: C/ M
- (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
0 A- _9 ]/ ]7 ~; _ - (princ "\nDo rong polyline <")) v: Y- h8 _: p& @8 L: h; b
- (princ ha:wid)
' Z* o8 o7 _! q9 s0 B! ~: ?1 Z - (princ ">: ")
8 A* k. Y* C0 d( {7 w X& R" a - (initget 4)
6 {5 z" _& g- Y' B' Y/ ?) [5 _ - (setq ha:wid (getdist))# v1 U2 I" }2 f. Y
- (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
7 @* \ S/ P& E! Q- x) U( y - (setvar "tracewid" ha:wid)/ e; X& x) P# N# r
- (setvar "cmdecho" 0)
1 \; Q) c6 u# d - (setq sodem 0)
2 q. n2 m+ q: [- } - (repeat sophantu* o6 F5 J: z5 w8 D
- (setq a (ssname b sodem))8 M& ^ q, t" [+ _9 ^9 K5 t
- (setq list1 (assoc 0 (entget a))); t8 I. q5 t# b* |) A/ W) H
- (cond+ F u1 g* o; _2 G* [8 ?2 U6 d
- ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))
# s0 ?; v [7 z0 d- X - (PROGN (command "_Pedit" a "" "w" ha:wid "")) )
( {! h# o/ E7 @7 C4 s/ a - (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))
# j+ ] T6 ~0 j/ m% P - (defun c:wp () (wp)) (defun c:pw () (wp))
w. |# Q1 ?. g: j4 `0 Q - % J. Q' }9 q) ^! G; r# Z
- ;; ================ Change radius of circles ==========================
! }+ P; V. G9 y
0 V9 s( W5 q/ Q6 n- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))
# p1 s% k/ x8 X - (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : ")), K/ y6 @/ C9 ^
- (IF (/= RD NIL) (PROGN (SETQ I 0)
7 O7 U6 Q6 {0 M - (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )
5 K0 R0 Q% {" L) Z, | - (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN$ C$ J0 Y8 j+ r: J2 V0 R5 `
- (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )
3 U$ l, c$ X: j1 R- e: \6 E" {& y
, Y/ t h0 v( J$ Y, d4 J- ;;; ============================== TEXT Hight ===============================1 h& f. D- U; Z
4 C) Z4 f" V& A- v8 z- (defun texthght (/ ent hght)
4 l# {% C4 u* w* n - (setvar "cmdecho" 1); b9 R. N! ?0 ]9 I
- (prompt (strcat"\nSelect text entity with required text height"))2 q6 c3 U. g0 k5 k
- (prompt (strcat"\n."))
$ l/ D6 T W! Q! V - (setq ent (entget (car (entsel))))
6 X r: q% j1 a( s# q: h6 e& o - (setq hght (cdr (assoc 40 ent)))
+ G5 q4 T3 P7 s) R1 ?( E2 }3 f' m - (prompt (strcat"\nText height now set at "))(prin1 hght)* V- z2 `. {( z* w: v
- (prompt (strcat"\n."))
- f! n+ _5 V V/ X* z - (setvar "cmdecho" 1)2 R5 `7 l, X& V( C2 `
- (command "DTEXT" PAUSE hght "") ), w7 n$ A+ l. P4 U$ F7 p
- (defun c:teh () (texthght)) (defun c:texthght () (texthght))
& Y* G* h8 v% S1 w
1 Q. x; B" K! y" ~4 }& _- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================# X G" G! i( r
9 U$ w# b4 X8 }3 B" Z% r- (defun c:tuu () (setvar "cmdecho" 0)
0 M/ i4 ~ p5 o' e - (prompt "\nHay chon dong TEXT can gach chan ")5 b9 F/ v# ^' I
- (prompt "\nSelect objects: ")/ p8 d# L0 [" M8 P1 n% \. u
- (command "select" "au" pause)
; _" \* r6 a: f, X% k - (setq sstxt (ssget "p")
" ^2 q0 f# a2 V" [ - sslen (sslength sstxt)
& Z5 B0 S4 X4 R. P1 n3 f4 @, o% C - ctr 0 )
& c3 E! O5 P7 l4 g5 H - (command ".undo" "mark")" {' j" S" n0 J/ o# z, V
- (while (< ctr sslen), v2 ^# U4 w/ ~+ x$ Q
- (setq listxt (entget (ssname sstxt ctr))
8 u$ f; _* F$ t! D# } - txttxt (cdr (assoc 1 listxt))
4 r: k [" M4 x" @ - enttxt (cdr (assoc 0 listxt)) )9 f/ {2 n# [# P% V2 D2 H. w. E ~
- (if (= enttxt "TEXT")
1 @% I% f4 l6 L9 y6 x+ D - (progn
3 Y! B0 u5 {) [# x# x5 b0 }& h, G - (setq testxt (substr txttxt 1 3))
. l' u, M8 C; q9 @& E7 l1 U - (if (or (= testxt "%%u") (= testxt "%%U"))9 m- \1 Y. J% a, B
- (setq newtxt (substr txttxt 4))* m, O/ K" z/ @6 g b' _
- (setq newtxt (strcat "%%u" txttxt)) )2 K3 }! f9 E. R! r' x0 s& ]: b/ U
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
/ ]3 V1 D. S: G8 D, A - (entmod listxt) ) )
& f7 F% u. s! v5 N8 b u9 r: d# e! N - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
! \* f. j3 O% g% c$ z
# u; M; Y& k! S' d2 w5 g- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================; r6 {0 U3 l& w) g
- ( W( M5 }+ a; G9 V
- (defun c:tob () (setvar "cmdecho" 0)' n6 l8 N9 U0 y- _* A
- (prompt "\nHay chon dong TEXT can gach tren dau ")
1 T* N9 R) u' H! A) L - (prompt "\nSelect objects: ")
+ a# I! K3 r) V& u! j, l7 ?" Q. } - (command "select" "au" pause)$ v% v- |; {$ r. u
- (setq sstxt (ssget "p")8 \% T. X' A$ I# b7 \$ g
- sslen (sslength sstxt)' m; u/ u- d. n4 f' k7 U
- ctr 0 )
0 h5 ^* h5 n7 y9 E4 {; o3 ] - (command ".undo" "mark")
2 u8 a: o/ T5 {$ t. p @ - (while (< ctr sslen)$ ~% S" {/ `; D4 g# Z
- (setq listxt (entget (ssname sstxt ctr))
! D3 p1 e2 v1 G! m6 L& c- [ - txttxt (cdr (assoc 1 listxt))8 q) ?8 Y+ \8 k) ]
- enttxt (cdr (assoc 0 listxt)) )
+ H6 v* x% U+ q9 U8 y& ~+ l - (if (= enttxt "TEXT")$ x& H! D1 y) v0 Z- V. U
- (progn- J+ N: ?; U( v5 J0 A
- (setq testxt (substr txttxt 1 3))
, ?+ \6 M# T! e6 u7 W' |) Y - (if (or (= testxt "%%o") (= testxt "%%o"))) M: A1 K) b2 v8 w' d% B
- (setq newtxt (substr txttxt 4))
& Q; }7 H/ Q& i - (setq newtxt (strcat "%%o" txttxt)) )
/ q' _3 Q* f, V n - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))7 ^8 L5 @ O* w3 G! }1 |* Z
- (entmod listxt) ) )
7 O! G$ x) m0 N% y - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
+ p2 k8 Q' O( f; O
; g+ L8 L1 o: b( [2 W- ;;; ========================== Tim & thay the TEXT ==========================9 T& G* r+ ~6 y% V7 M. s2 k0 B* g; a. E
' ~$ k# j E1 n! z# ~) F- (defun frstring (str search replace / str1 str2 index find)! O2 b+ z# d8 |& q8 J
- (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))2 L. B9 C9 W# U& d( {7 ]
- (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index))). E8 r& e! X. }3 f% X) D
- (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))0 g6 `3 ~! o5 f$ C) q4 d6 j0 o
- (defun hai (/ dial)- o* Q% e- z% e1 k7 c* i9 W
- (setq dial (load_dialog "hai.dcl")) ;;goi dialog
& @% `) K8 C% ]9 a+ ` - (if (not (new_dialog "find" Dial)) (exit)) ;;
5 M9 U) P- Z4 {& H3 G - (mode_tile "find" 2); Tao dau nhac tai hop thoai
' ~1 w+ ^( z( j6 q - (action_tile "find" "(hai1)")
: [/ b2 \% d$ r) ^ - (action_tile "replace" "(hai2)")
R4 |6 v( j7 k# p0 }' l - (action_tile "cancel" "(done_dialog) (exit)")
" p$ p3 b5 k3 p" d$ b$ d$ D" T - (start_dialog) 2 ]' x, h5 e( N, \% ]
- (unload_dialog dial))
. E; D& ?+ g/ d, D - (defun hai1 () (SETQ str1 (get_tile "find")))
9 {' y4 j% }9 Z3 S* z - (defun hai2 () (SETQ str2 (get_tile "replace")))
" H7 p' j; t+ L* e- a7 \! D
/ g8 Q2 {; u2 z+ O- (defun c:TTT (/ a str str1 str2 newstr taphop sodem)
( O1 I' S5 ]) J5 }2 p - (hai)
+ M8 Z+ ]: l5 }( A; g8 M9 Z; E9 Z - (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le"); E* T* b# ~0 T4 z
- (progn8 N/ w Z# W# d1 f
- (setq taphop (ssget '((0 . "TEXT"))))# L6 w( R n- M- a$ U) U! \
- (setq sodem 0)/ b# s: ?7 Z& K5 g* p! V
- (if taphop" _% C% e0 e0 [9 O7 N4 ]: {
- (progn
( d x( g w3 @0 c- ^. s# } - (Repeat (sslength taphop)+ k; v4 @0 L$ G T% ~9 }7 ?
- (setq a (entget (ssname taphop sodem)))6 p9 N8 b; D, f7 T9 \3 o1 I1 P
- (setq str (cdr (assoc 1 a)))) {9 T0 u7 s6 F1 C% s2 n, G5 M
- (setq newstr (frstring str str1 str2))7 P) ?6 L. e. Z- f
- (setq a (subst (cons 1 newstr) (assoc 1 a) a))
8 _2 X3 k% R1 K% j% t: X2 x - (entmod a)
9 Z+ A0 `7 e9 B$ x0 p) z" Y' ^4 T9 O - (setq sodem (1+ sodem)) ) )
8 V6 z# g; j. ]& Y - (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))- T1 A' V8 ?# n' r$ B! l
- ' W& _6 q* H- m7 e* R2 h
- ;;;============================= CHTEXSTY.LSP =============================' `2 @; [. m; J6 k2 F+ U7 }
- 6 ?/ }- B k. T6 q+ X! M
- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST ")
! w+ \' R+ v5 F4 {2 }+ x5 J - (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))* f6 m0 Q) P/ e
- (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))
) Y: n; q, a/ ^. j - (Initget 1) (Setq C (Getstring "\nEnter new text style: "))/ Q$ u/ E: F* D6 j( r" b
- (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))0 Z( x6 D2 l a4 _; C6 \2 _; V1 r
- (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C))
' h6 |$ D9 |& B3 K7 W" J5 X - (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J)): l6 }" p& @4 U3 r) E$ b) a: e% W8 o: G
- (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))
: J0 f- C5 J) p/ b# { - (Initget 1) (Setq A (Strcase (Getstring3 }& }! p; o6 ^& l- r- x# A
- "\nEnter text style to change: "))) (Initget 1)+ ?2 \5 [* t# r: v
- (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext))0 j/ s4 ^5 c4 L; j% L
- (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If l# t. T1 u( w) e' Z
- (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))
2 n4 O3 q% S5 u$ l5 i" [ - (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))- n, P6 \. U0 B: M; B: |
- (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J))
e7 ?* H x$ m - (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))
1 f2 i+ ]0 v; m - $ E% X! l& h, z
- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A))9 ^9 a$ s) t8 X6 \
- (Setq J (Cdr (Assoc 50 A))))$ j( V6 F5 k4 b% r, B8 M' V
% R5 `, B# h- j0 v! [- ;;; ============================ DRAW CLOUD =============================+ c6 D k$ C, S7 _
- ) w" q+ N# t: \- I6 K/ M! m
- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)
8 i, h8 x6 r3 E0 q; G - (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")
( x. Z& C' X$ b2 U7 c% e - (setq la (getvar "clayer"))+ e! j. R( [* `4 g5 o" F8 a
- (command "layer" "m" "cloud" "c" "5" "" "")4 o- K9 X3 y5 k2 G k( ^
- (setq pt1 (getpoint "\nEnter first point of Cloud: "))2 \8 d8 [0 Y2 {. O/ F
- (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))
J( Y) R9 N: Y - (setq cnt 1 ss (ssadd))
9 V# |# _5 J* B6 X/ Q - (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))
6 c, z" H/ [2 y; ^4 v. h - (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75))1 c/ D) r! v4 B! J2 B
- (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))+ N- H* u$ O$ W; ?4 S! r* g
- (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0)" S: `1 v# Z- {4 f
- (command "pedit" arc1 "y" "j" ss "" "x")
8 y7 s8 l7 q. G; k+ {) @ - (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)7 z; ]$ _4 ] b
- (command "layer" "s" la "") (setvar "cmdecho" 1) (princ)) 1 t, S% X! a7 R' `3 R' I, U
- (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))- W) _8 @$ i7 J/ k
- 8 J0 y& r; a$ R/ h
- ;;; ================================ Funtion-Dulieu ========================
1 E* A) |9 [+ `! u2 C; Q - ;;; ================================ Funtion-Dulieu ========================4 {2 _* Q8 d; s( }9 j
- ;;; ================================ Funtion-Dulieu ========================
. Q8 L3 ~: @ a! }; l ?$ ~* o - & T/ Y0 ]4 T4 S. J9 E( C8 z. V- D
- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )
9 G$ ~$ C" M$ o% \4 b: \3 U% f - (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh"))
0 P# z6 k% p9 B+ y - (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))3 x+ e5 f5 h+ M8 q& s/ U
- (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) )
- J- _. l3 U# \4 V8 P. g - (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))
/ m* V3 X# j# G* [ - (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))2 o# I5 Y- O2 c7 { ?
- (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))
- l2 G, c3 O' i1 U - (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))
a4 {: ~+ C4 M: G8 w& m2 n - (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong)))). c' ~1 p& T% i |' _! A7 e
- (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)))
$ L9 v4 M a% Q8 u. g - (defun dtr (dtr) (* pi (/ dtr 180.0)))$ D: R. h1 D+ f
- (defun rtd (rtd) (* 180.0 (/ rtd pi)))
6 J7 o; i: H R0 E) L
# C5 L, X+ v- B- ;;;==============================PROGRAME===============================. J! y- N8 @' E8 D; Y
- ;;;=====================EditDiM Hien Hop Thoai Dep======================
/ M7 T9 F P0 ^7 G# A% ^/ }; z/ g - ;;;==============================PROGRAME===============================
' z" Z6 e/ Z. H) w2 A - . d, }. V4 ^. v- ]" L+ `
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
& V/ w9 m/ i+ l1 N, I, q - ;;Chay Cung Du Lieu.Lsp & Hai.Dcl) J' \( H2 [( ~+ N% q
- (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)& D1 {4 ?5 S8 h1 W, ^5 ]) F
- (Setq Oldlis (Entget (Car Chon))( S5 t1 ^) z& X* S- W$ L
- Pt10 (Cdr (Assoc 10 Oldlis))* L9 x; I% t/ J, O. o
- Pt13 (Cdr (Assoc 13 Oldlis))
?/ Z" t. H7 T - Pt14 (Cdr (Assoc 14 Oldlis))
' a3 A, g5 t9 N* b9 c3 S z - St (Cdr (Assoc 70 Oldlis))) Q' i9 ]9 o( o0 ^6 a- V9 c
- Dimdefault (Cdr (Assoc 1 Oldlis))
' `: T1 o, z- B - ), T4 f, H' [5 _) J: v, m5 i
- (Cond
6 o/ G3 e2 n4 a ^0 J - ((Or (= 32 St)(= 0 St)(= 160 St))
$ m7 @; q* s2 _% ?6 t - (Progn8 W$ F: K0 j: S9 n/ m x
- (Setq Ang (Cdr (Assoc 50 Oldlis))
- t. [! @) L7 K+ Y/ u( E; S# x% n - Pt (Polar Pt13 Ang 500)
7 V/ i. U; U# P/ K - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)( Z, s7 `" u8 ?( T
- Dis (Rtos (Distance Pt13 Hc))
9 j. ~" Z) J- g/ K9 m5 o4 K' k2 b - ), B. q: s) @, \8 ?7 U# `' G' Q! {
- )
+ F- U0 J0 X: ~$ U+ A3 B - )! s4 n* Q- Z7 ~8 Q) h
- ((Or (= 33 St)(= 1 St))3 f# t, [8 [; i
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14))))). {+ r: p; `0 w: S8 }
- );;End Cond- W! c' D! t* \* ~
- (If (= Dimdefault "") (Setq Dimdefault "<>"))0 C* M- P: L( s4 R- Q$ F2 V
- (Setq Dial (Load_Dialog "Hai.Dcl"))- D! C8 T. N8 Q3 o, N ~
- (If (Not (New_Dialog "eddim" Dial)) (Exit))
! c4 T6 m; y8 g& I - (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))$ ~2 p* }( E- A2 I: E- F, h
- (Set_Tile "text" Dis))0 F. J! L: J8 f/ X
- (Set_Tile "ha:edim" Dimdefault)
5 K: i. g! W9 w h - (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
0 R6 @8 c$ Y1 v - (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")# D+ X& D S$ ^
- (Setq State (Start_Dialog))(Unload_Dialog Dial)/ { n# f2 Q! [8 k. p$ x
- (If (And Str (= 3 State))
% |3 V; w- C: u2 W - (Progn- i1 f: b5 P g6 m1 N$ P1 c/ e
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))2 }0 L) I# z7 D$ L% X* @
- )7 ^0 y g; @* U
- (Defun C:EH (/ Chon Name )
- s! F0 e8 l9 P6 V5 {2 s# V - (Defun *Error* (Msg)
* z1 H. @! {0 h1 M* w - (Princ "\nerror: ")(Princ Msg)(Princ " ")
9 J# L, o" y [" o+ A: f7 m4 l - (Start_Dialog)(Unload_Dialog Dial)9 c+ q6 n( f' o/ Q2 `
- (Setq *Error* Olderr)(Princ)9 s' c& I8 m" H4 U/ r! B
- )9 e, j6 X& H6 c1 O. ?0 B2 P0 i
- (Setq Olderr *Error*)
+ _3 A0 j7 x0 T e8 {9 k - (Setq Chon T)" y' _5 G- f# |% X [2 P( i
- (While Chon; E2 f9 B h1 D. A& |2 d; c
- (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
$ ^+ ^. _/ S/ p0 J8 L% \# P - (If Chon+ X2 N# A- G e/ @( g
- (Progn
/ R! A( K) b2 l7 c - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))* J5 m% K% x O: P& X2 E+ l
- (Cond
1 p5 Z1 J* `) A# h3 ~" K& o - ((= Name "INSERT")(Command "Ddatte" Chon))
2 n/ q# g: k1 N% l3 D4 f - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
0 m# @: E( g0 K0 O - ((= Name "DIMENSION") (Hai_Edim Chon))
: ?" {, N- D. ?! F - )! i. w5 i0 c' m* P+ m' ?8 a
- );End Cond
) y# o2 C; X+ M4 A - );End Progn
+ D' W2 m3 R4 ] - );End While6 T: K/ ]3 ]0 m4 |2 S
- (Setq Olderr *Error*)(Princ) t1 B& ?7 X4 L9 G0 r4 H- x: v
- );End Program
4 g4 ^1 {; G8 ~ r - / U1 p( L: E) M- m
- ;;;====================DDeditDim=====================3 t+ q/ O( v; P8 ^+ q
- ;;;=====================Hai.DCL======================
% M6 i2 ]& |$ O+ d5 _* M' D - ;;;====================DDeditDim=====================; C) F v5 z' i' G; a7 R
7 x- H5 w! ~7 @- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)( L7 n! j& O; M: a0 p
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl/ z- X0 [0 |( d$ L* K
- (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)
6 j- u9 A3 I# b0 y - (Setq Oldlis (Entget (Car Chon))
4 @2 R! o( O% l- T& D1 V( a' U - Pt10 (Cdr (Assoc 10 Oldlis)) |3 T% K& A4 O
- Pt13 (Cdr (Assoc 13 Oldlis))3 [9 \' v3 c; G) ]$ i( Q; L6 Z
- Pt14 (Cdr (Assoc 14 Oldlis))
5 i- R% Z3 y0 A4 C2 p - St (Cdr (Assoc 70 Oldlis))- \' ], `& \( u+ R4 n: `- ^
- Dimdefault (Cdr (Assoc 1 Oldlis))
T7 C/ I4 P3 b0 ~0 u. f - )+ B) u5 g. c1 R( O
- (Cond2 e% y* y+ S: m2 l+ ]2 ^1 d
- ((Or (= 32 St)(= 0 St)(= 160 St))
8 B. w/ x- Z$ _- Q j. I) b6 R - (Progn; [7 {5 `/ }% W+ i X9 c( I- k5 x
- (Setq Ang (Cdr (Assoc 50 Oldlis))
% ?5 N9 r; U8 z3 l5 F. _4 s( z - Pt (Polar Pt13 Ang 500)
# E( g) ]+ j* p! C5 L: o1 i - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
7 M! z I; m$ { - Dis (Rtos (Distance Pt13 Hc))
6 U& [0 I: H# l1 \ - )
+ u3 f8 u3 Y, ?0 f0 O* G - )
4 a7 s7 f2 A! v# }, v - )
4 |% V0 V, k$ J; T$ Z - ((Or (= 33 St)(= 1 St)); d9 ^ q9 V3 f; i+ z; Y: z. B% m% Z) g
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
$ F- E# I$ Q! |* X; y, ` - );;End Cond0 H h1 A: a0 `6 F; O
- (If (= Dimdefault "") (Setq Dimdefault "<>"))
& f3 A; c3 e B( a) i - (Setq Dial (Load_Dialog "Hai.Dcl"))! H1 I: G) u6 }
- (If (Not (New_Dialog "eddim" Dial)) (Exit))
6 S) O3 Y! d- ]4 X+ _ - (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
3 r" V- p, q/ }1 r" O - (Set_Tile "text" Dis))% @; ]. h" c7 e M* P
- (Set_Tile "ha:edim" Dimdefault)8 M0 a$ V. v2 x4 L9 }/ l3 R& D% Z
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai1 q8 M6 n* c v9 ?
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
5 @/ j# y( h2 W8 ]. f- [' Z4 w( o - (Setq State (Start_Dialog))(Unload_Dialog Dial) |+ q7 e! h' c: A
- (If (And Str (= 3 State))
8 O" K7 ^+ Q; w s% a H: J) D - (Progn
( e9 [3 [2 h- Q# R7 N. v7 C - (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))% }+ r- Y* o5 i0 l7 A& I( D: ?
- )% @; A& }0 a9 F) G
- (Defun C:EH (/ Chon Name )4 T3 V: e: K* _7 Z& ~; H) U
- + }4 }, b/ r0 }5 l$ R+ Q$ `
- ;;;********************Du Lieu********************. a( ?( F. `/ c% [6 N& I
- ; K2 B6 l. _4 r8 F3 J
- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))
( ?# B/ S4 Q1 ^( [, k4 y; c - (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon), ?8 o* C" j& D2 _
- (If (And (/= Hacat1 Nil) (/= Hacat2 Nil))$ j5 } Y# u( ~6 _& a
- (Progn
8 k" Z4 q; ?: }/ \* s9 D. z" m8 t5 U - (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))
: F: W l5 P6 g0 p5 l - (Setq Chon (Ssget Hacat3))5 h; M/ T4 G" Z2 m T
- (Command "Break" Chon Hacat1 Hacat2)
3 n8 P. D3 I+ f" y' p8 O/ X - )+ l `: L& a1 y% }5 C+ V
- )
; p' I/ |# V( ~6 O - (Princ)
0 |5 O+ @- x1 C6 f - )
5 p% j7 n9 h; U$ _5 S - ;;
0 F% F# s2 X& _0 Z! U. e$ P - (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))
, A/ f% t% Y3 T. y' O$ j: d' R6 G - ;;
% n) G& k6 t8 D% K8 ?. n3 G3 C - (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))2 ~0 _2 k* b; A! O; n0 K
- ;;
6 ^8 _! k; w# O G# z - (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))
6 p! }0 _% h/ _) l7 F6 j - ;;
% s8 z9 h" `& q3 x5 Q- k. w3 ? - (Defun Reinit ()(Setvar "Cmdecho" 1))
( A4 f$ J! ?5 I [/ e- v. n - ;;
K6 C$ \# c9 L5 s) h8 u - (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))
# ?) G8 e( b) G" |: d- P- V - ;;$ K8 M O1 E2 n$ L
- ;;Cho 2 Diem Tinh Ra Vec To Phap
4 z8 t; q6 `4 i* X$ D - (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))
+ j$ F. {3 {. {4 o5 c - ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang
1 `4 K! z5 ]9 ] ~ - ;;Da Biet 2 Diem Thuoc Duong Thang
; T1 C2 G4 r3 L% @# W7 H. ~ - (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2)
( ~8 x |# \1 Y2 E3 a - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100): |: r2 ?0 Y9 A9 b4 X" {) {
- Hc (Inters P1 P2 Dc1 Dc2 Nil)))# }( d8 }$ Z* ? F
- ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang9 h0 ]( P6 c+ Z. I2 ^! m' E
- ;;Da Biet 2 Diem Thuoc Duong Thang8 [5 C4 M" a* {7 O: e1 v+ Q4 j
- (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)) f+ x' O. v" K+ t7 d& O
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100) \- _5 |- A+ f+ [! ]2 j
- Hc (Inters P1 P2 Dc1 Dc2 Nil))6 a! u9 B( U% n( E# @
- (Distance Dc1 Hc)# \3 F6 S/ H# f2 r8 u5 e
- )
) t4 s1 A8 o% V" E6 L) n - (load "nhapcua.lsp")4 s, V+ v! r! ?
- (Defun *Error* (Msg)
4 f( x5 F$ i8 _% H - (Princ "\nerror: ")(Princ Msg)(Princ " ")% Y% ], ?% A+ J5 _0 U
- (Start_Dialog)(Unload_Dialog Dial)
' `$ d U6 Y6 \. n* g( y% { - (Setq *Error* Olderr)(Princ)& s- v! x1 D/ C$ F7 j5 F
- )7 t3 c/ N! I- D, H: ~+ U
- (Setq Olderr *Error*)
' l3 _8 a# ~! Q8 ]8 ^3 [' _2 M - (Setq Chon T)
! m; X; g$ Q5 z+ S5 ?! _! q" ` - (While Chon5 s* R1 u- D! T: S
- (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
: d& {0 z' L$ ]8 O0 O - (If Chon7 e3 Y* j0 p6 p3 h! W, }
- (Progn. W* G% R) \& N3 h' Z" ?: O
- (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
6 T, T6 W2 r7 r- m4 ? - (Cond; C/ v: ~) x8 E# D
- ((= Name "INSERT")(Command "Ddatte" Chon))
4 ~. m% ~) k; t9 W& U/ A4 W - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))6 q U, ^. H7 v) h' j
- ((= Name "DIMENSION") (Hai_Edim Chon))
3 o5 W4 Y9 g2 ]' R2 ]3 z5 S - )( t' {+ s' i! o
- );End Cond
% W' W% C6 h: u3 K; y) C0 _ - );End Progn
0 g" k/ s( w* h3 c7 t* {' y4 t! e - );End While5 T5 I. X2 ], u1 b7 `
- (Setq Olderr *Error*)(Princ)
/ }: l' L2 _* M* z - );End Program
2 {: f+ \+ N' l) T - , x( k( o5 U i: V% q+ ?( z
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
2 w1 Q! z& |" ]; j3 r( Q - ;====================================Nhapcua.LSP====================================8 k( Z; P- v F" q2 e
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
4 |1 ]5 G/ y3 E9 s8 w- M
0 K# z& `, @" g" m4 T- _/ P- ; C l% k; m W- @
- - ^ K$ } v8 |9 L+ w
- ;*******************;*******************;*******************;*******************
/ w9 [9 a' C( j& d3 B1 T - ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****6 f1 u" l" b/ @5 g! A/ v8 x2 [
- ;*******************;*******************;*******************;*******************
5 v# C k0 u0 [$ f/ r s
& ^" U. H8 B3 }+ o# X7 U& |# W8 h- ;VE HINH BINH HANH
# g/ ~& C# e& g' l
9 ]+ I- t/ |7 M7 x, ~- (defun c:binhhanh (/ p1 p2 p3)
$ g' {! Y3 n: l% j+ d2 T - (setq p1 (getpoint "\n Nhap diem thu nhat:")): v. s. G+ e+ u% Z. A
- (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))) X |! L) w7 A) }
- (setq om (getvar "osmode"))
- d& r& B. ]) B$ _7 ?/ ~% f - (setvar "osmode" 0)
, _$ n" P7 V4 T" E8 a. D6 { - (command "line" p1 p2 "")8 A; P2 b& W7 r2 m
- (setvar "osmode" om)1 L1 s# R& R f% K, f
- (setq p3 (getpoint p2 "\n Nhap diem thu ba:"))
4 p7 H, M" `+ Y3 ? - (setq a (angle p2 p1))
% I7 A; R5 X _1 y8 t - (setq d (distance p1 p2))
; @& ?& c" O3 z# | - (setq p4 (polar p3 a d))
+ \" r+ p) A7 H! u, y& {, I - (command "OSNAP" "none")1 q! d* ?* E0 O1 `$ G5 X
- (command "erase" "l" "")
; D' U. |) U0 e: Y+ p! J - (command "pline" p1 p2 p3 p4 p1 "")
2 ^+ ]$ }8 g* z g - (setvar "osmode" om)
4 I' h& E, a; I Y- g! T0 E+ S - )9 L( w x7 u7 S7 B( L3 t4 a
- h! ?/ x) l" l) ~- ;VE LUOI COT6 J! d% x o! J, S1 T
@2 W$ P; v! F# _. Q$ ]5 x9 [' S5 {3 I- (defun c:LuoiCot ()
8 ?( q5 B+ ?, t9 N - (setq om (getvar "osmode")), r8 ]+ A9 G( v( Q1 \
- (setvar "osmode" 0)7 ^' d) J% u8 O( I6 C
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
, N- h* Q0 W. {9 {3 [- T - (setq p0 (getpoint "\n Chon Basic Point:")). E& m) }5 ]' \
- (setq nc (getreal "\n Nhap chieu ngang cua cot : "))' d4 x5 C' _8 Z2 h7 |
- (setq dc (getreal "\n Nhap chieu doc cua cot : "))
) D! J2 q! c H2 _+ l4 J - (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )/ `% m3 d2 _! S- X7 m- U
- (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )" @! ?# Z: G$ f: e! z0 Q; \
- (command "rectang" p1 p2)- k6 o8 |+ ?, L+ J* u$ E) |! Z
- (command "hatch" "solid" "l" "")4 Z) T1 z6 x4 {
- (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))+ c3 n; R* @" K5 ^$ X: \
- (setq nn (getint "\n So buoc cot phuong ngang : "))( M' I3 b- J, L$ |, Q: u
- (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )% m8 l2 }* M( \6 v8 N
- (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )0 L8 Z* k4 h1 \! }
- (command "select" "w" w1 w2 "")
* X3 k' p0 A3 U* N7 Y0 Z - (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )
0 Q! S! A' \- [" a - (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")# y2 i' ~3 v" t5 Z
- (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) )); C0 n( r2 v! m7 o0 I
- (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))
, q5 q; Y, Q8 a: x! ` - (command "zoom" "w" w1 w2)
1 \: P) g. x' N2 Y6 S! k - (command "select" "w" w1 w2 "")
7 v1 E! m% j' a$ N/ r2 Z% g - (setq bcd (getreal "\n Buoc cot theo phuong doc : ")): p. p! P5 |: H3 x/ y$ x E) q
- (setq nd (getint "\n So buoc cot phuong doc : "))
# }! b5 S: l7 C - (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )
& r* D* x5 S2 r/ J; V' ` - (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")
1 r' f2 r) b' A! F7 w- w, y - (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )
- g; d' o- U5 M% F& V0 z - (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) ) Z) |- T8 o% \# S9 Y- T
- (command "zoom" "w" w1 w2)$ k7 [; }* [1 S' q$ M- k9 @+ F
- (setvar "osmode" om); l _" C, e' W8 t" S& A- j, f
- )6 Y* g$ Z1 `* Q8 u9 M5 o W
) J' D$ U( C1 W, S; n3 y: t M3 y: `- ;VE CUA DI. @3 ~ s1 `! m
3 n7 W2 u* p2 \& @- (defun c:cuadi ()
/ Z% A K" _% X/ ?/ B8 d - (setq om (getvar "osmode"))
% e) N" j4 O3 \6 E! E: ~+ r7 L! q - (setvar "osmode" 0)
t6 ]- ]6 e, V% D) V
. p0 y# Y: A" c' { ]* \) C% h- s3 D- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
9 U3 v* h" U, Y - (setq b (getreal "\n Nhap be rong cua : "))7 ~' G' b) ~8 m' a
- (setvar "osmode" om)
J( G. ?7 }! F4 ]$ x6 u$ P+ j - (while (< 0 1)1 H8 }8 C8 j P6 {' Q
- (progn6 t- P9 H" h7 o- m; _) k
- (setq p0 (getpoint "\n Chon Basic Point:"))
7 _$ L4 C& j- D! v+ [4 D5 U - (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:"))
* g0 }6 |0 d7 h1 S8 f1 G# I - (command "osnap" "none")
6 j: f# B, {, S! m p - (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))) L9 e$ A2 ?0 ^+ {) z: Y$ f
- (setq a1 (angle p0 p1))- f+ b7 V- t4 c: s6 c$ H
- (setq p1 (polar p0 a1 (/ (* hstl b) tile)))
' k3 o- Z( x8 l! T - (setq a2 (angle p0 p2))! a3 v: h: R3 ` @6 M
- (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )
* }; q: `# A" b* s6 s+ S* i/ a3 P - (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")
1 ~2 E) h1 t. q - (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi)) I9 G5 c. `% V4 U( W" f" Q
- (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi)) - C/ [, [$ [6 k; ~
- (setvar "osmode" om): J+ S6 [) [0 f6 F8 g: w* k8 B
- ))
) E, b3 _$ a: N3 D J2 t3 p2 T - )
2 K5 s0 z. b) B$ r# n5 M/ i* k4 f - , n+ w6 U& c6 f4 Z6 I
- ;VE CUA SO( @( K; y( I% Q" |: f" V4 X
+ T4 ?$ T+ @/ [$ i3 z9 _) Y; g, v- (defun c:cuaso ()3 d. }* A- p% p) c
- (setq om (getvar "osmode"))
& E. B7 V; \& @3 W3 y" Q - (setvar "osmode" 0)
2 [* _& u5 c" \+ z' _, B& n$ c
+ r1 ~# y" \: m5 P( u* _( W! r- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
6 }$ P) [$ \ w! i5 l, M - (setvar "osmode" om)* x* e: K% P- w' b3 D8 W
- (while (< 0 1)
5 k, e7 G0 L+ R - (progn
$ s5 L# _& _: u2 n. _ - (setq p0 (getpoint "\n Chon Basic Point:"))' z, I% ?* K: \! E0 ^
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))1 S0 e+ o1 {7 t
- (command "osnap" "none")! B' j5 x! n9 r" E
- (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))% R' {* }5 O* g: `
- (setq b (distance p0 p1))8 _) E# _# d7 ^
- (if (< b (/ (* hstl 600) tile)) (setq du 50))
' T3 ?3 \. o8 m5 W8 y1 u K - (if (> b (/ (* hstl 600) tile)) (setq du 150))
1 t/ @7 ~) @$ K/ A$ ~4 O2 L - (if (> b (/ (* hstl 1800) tile)) (setq du 200))4 { f& {) i3 i$ d% X( U
- (setq a1 (angle p0 p1))7 {1 |8 m& ~. K. V. C% N/ m
- (setq a2 (angle p0 p2))- O" o- R0 @+ ]
- (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )
9 K( Z$ w/ w. z: b/ c# A - (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )
1 j. T; h% i+ o. J1 G/ Z5 X6 _ - (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )2 G4 s% t: r9 [/ m. g
- (command "pline" p0 "w" "0" "0" p1 "")
# d+ Z* Q3 ?4 S6 k) U m/ @ - (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")
( q; S) T I1 U: V& b - (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")0 i0 [7 u A; x& X
- (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile))) ! E+ x4 P0 c4 b1 p0 c5 q
- (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")6 A+ g5 Z* c" v1 |6 T4 l5 V
- (setvar "osmode" om)
X' r: J- g0 j8 n# E" E: Q' D - ))
. o8 A* f9 {* S+ T( T- Q. S; [ - )
, y) V3 g. W2 k1 u - 2 b7 J; o& z% i$ Q1 A
- ;;;=== General Utility Functions ===: j9 ?: T9 x/ p% u$ Z
' Z2 E9 J. C* w3 k$ Z! g( ]% N- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined
) A! e+ n. [6 h/ V - ; ADS function. Now it's a simple AutoLISP function that calls the
2 [& K3 R' D# J* b t' z% Z7 _ - ; built-in function (help). It's only purpose is R12 compatibility. + m$ g$ C# E1 y* {& |5 M# b) l. M
- ; If you are calling it for anything else, you should almost certainly ; q5 A C1 J- E0 u, l
- ; be calling (help) instead. 9 Y9 j( |" j- ^* S
-
- ^2 t! @" _: _9 A - (defun acad_helpdlg (helpfile topic)
# r. W9 W5 t+ r: I* y$ S1 A - (help helpfile topic)
+ M% u9 O+ i( u2 J* s - )& e( L. o9 s& {5 c" _& N
7 K# k7 o; q B- q& j$ d
7 Q: w7 M" L& `. e; t- (defun *merr* (msg)
: C3 S# O# l1 P6 e - (setq *error* m:err m:err nil)# A9 X6 T9 |( Y4 Z3 ]
- (princ), I+ W8 r6 z! ?' ?' ]5 r$ W9 M" Y
- )
! c% x8 a# D* H o5 F
R8 Q# l) t, g3 s) K+ p4 c9 q- (defun *merrmsg* (msg)
, z8 h% @7 M$ t, q - (princ msg)
- A+ d* p& ]! A' Q - (setq *error* m:err m:err nil)
2 @6 B- ]8 E1 U- u. V$ n - (princ)
* |, ~; J4 c+ q/ s' |+ \ B - )8 |8 j% r8 H& N& L2 L8 q5 @* S
- % X* S( y2 K" J, _, H$ }
- ;; Loads the indicated ARX app if it isn't already loaded
y0 N: O, a7 J0 Y2 p - ;; returns nil if no load was necessary, else returns the' l7 ] H$ F }
- ;; app name if a load occurred.$ X) u" o$ V* S1 M
- (defun verify_arxapp_loaded (app)
" N$ t% J, r6 \2 d - (if (not (loadedp app (arx)))
! H7 n* `/ F( t q - (arxload app f)6 c" e0 r3 K& R( y- m) S& ?$ J
- )
" |6 U; v. Y+ |3 r0 p - )
& b7 N4 R) R. Q, \7 D1 X
% O4 f: o% S& L, K- ;; determines if a given application is loaded...; f5 f+ T9 z2 A
- ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....4 Y0 a' F l6 i% q. h* `' `
- ;;
5 k$ H! G' K% @ - ;; app is the filename of the application to check (extension is required)
0 j9 j: e" s- T9 g, h( q8 d. O" ^ - ;; appset is a list of applications, (such as (arx) or (ads)
' t+ [( p3 C& s% b. D - ;; 1 E2 C \/ q. e0 }
- ;; returns T or nil, depending on whether app is present in the appset9 m6 Y6 s; i k) o, c$ w9 t6 b
- ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"
* a% i$ `- S, p/ [8 [( F - ;; Also, if appset contains members that contain paths, app will right-match- G/ c0 l" @7 t9 ~1 l" k% C
- ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that
9 F' }- ^$ b' |+ K# i3 J% \ - ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."
) }# \9 Z/ c- N) e$ O( [. J* L - (defun loadedp (app appset)2 I/ j+ r1 A: r0 _1 ?; h' i, `
- (cond (appset (or
% L7 e8 ?/ {4 c - ;; exactly equal? (ignoring case)$ n9 ` a$ }% R& t
- (= (strcase (car appset)); E1 W# w# d. A% f- x! n
- (strcase app))
5 y' w+ g( m! n0 o' G' | - ;; right-matching? (ignoring case, but assuming that0 ?2 V7 E+ c" s+ }
- ;; it's a complete filename (with a backslash before it)' U' Y8 t5 I5 Q& O
- (and ; r; F# r: @; H7 ~
- (> (strlen (car appset)) (strlen app))
+ B0 B/ t* D: S, D, m M8 z - (= (strcase (substr (car appset) , v9 F# U& R+ O j- O
- (- (strlen (car appset))
& E) q E, z3 d, m* m7 O) C h# \3 | - (strlen app) 0 F- j. L' }& j( j0 d' _% r+ H2 Q
- )
, \( w( j. i" S0 i9 U - )
5 H1 ^$ T; h- _/ h& L- h - )
+ s% v$ C7 v4 c# \ - (strcase (strcat "\\" app))
. l% x, X3 }/ n/ s - )
% |; h) ?+ i: E& a5 v* N3 U0 o! g" P - )
7 n5 e. n4 `9 M: b* r8 z - ;; no match for this entry in appset, try next one....
' d, S H0 X1 c7 _ - (loadedp app (cdr appset)) )))' t- {; M1 c; k, X# u
- )
8 M6 B+ n9 l$ o - % o: N6 Z% x t- c, O* d
' ~/ [- K# P1 e. R4 v- ;;; ===== Single-line MText editor =====- P6 R# m A, K; v* a3 G
- (defun LispEd (contents / fname dcl state)4 y- Y5 o+ h/ o i! _5 f5 d
- (if (not (setq fname (getvar "program")))0 S0 g1 g& ~/ r1 X: x. v$ [; X
- (setq fname "acad")5 U+ ], n/ l) w
- ) O1 e0 G8 s: `4 u$ W1 j
- (strcat fname ".dcl")% o8 @& O5 O0 g1 ]
- (setq dcl (load_dialog fname))1 f0 M# p: V* x: R6 A
- (if (not (new_dialog "LispEd" dcl)) (exit))' V% V6 |1 e; G7 ?& P2 [
- (set_tile "contents" contents)6 g: B' ?0 u+ p6 S( o$ f
- (mode_tile "contents" 2)
& p8 n) x9 O( w" x# T1 s1 A - (action_tile "contents" "(setq contents $value)")7 d! {5 ~7 w% z* x
- (action_tile "accept" "(done_dialog 1)")
7 s5 k' Y+ ^# V( _6 ^ - (action_tile "mtexted" "(done_dialog 2)" )
2 P* |2 f$ {- z' g% y- E4 Q - (setq state (start_dialog))* b. y3 h* n2 r: @0 S# m
- (unload_dialog dcl)
- N/ N, L% w8 X6 Z - (cond1 y2 }/ D3 m$ ]4 m7 b
- ((= state 1) contents) X" ]7 U! X% p2 [6 Q' P! ?5 ?# U
- ((= state 2) -1)
( B8 r1 c+ |4 _( P: [) l, Z l - (t 0)- y j( F$ X8 v S1 T
- )& ?8 t- b6 k; t e: I
- )" `1 S; v6 Q, d& @ ?/ J5 `
8 _( G S' @( A- ;;; ===== Discontinued commands =====
3 g% G' g2 X. w" a0 V - (defun c:ddselect(/ cmdecho-save)( C- @9 G! \$ b
- (setq cmdecho-save (getvar "CMDECHO"))$ v$ A- x8 V7 e
- (setvar "CMDECHO" 0)
* @) H$ c* Y7 J% a - (command "._+options" 7)7 f J- f* s6 J# U6 O
- (setvar "CMDECHO" cmdecho-save)1 Z1 t m; P k# ^; [" S' [6 _; h
- (princ)& a! ]- U, D: K$ L. {. |- N$ |: t
- )
5 V3 I5 u& y7 m$ m3 b5 h! I - 7 G; G2 G( N/ D! y1 o' n6 n
- (defun c:ddgrips(/ cmdecho-save)
0 Z$ k- b0 f6 g - (setq cmdecho-save (getvar "CMDECHO")); M+ m1 H7 W7 L1 J, V2 f
- (setvar "CMDECHO" 0)
( J5 Z- |2 {+ q1 n/ i5 {" t: L, X - (command "._+options" 7)
! Y* i; }) ~6 o2 }( ?; L - (setvar "CMDECHO" cmdecho-save)* z2 V; q: i+ g' G3 G! D
- (princ)2 w" t) s; o4 x, _
- )
, X0 ^9 }0 N# x7 }- k5 { Q. ~ - 4 y# `4 a' @8 ?' n
- (defun c:gifin ()5 [7 ]# _/ B: _0 [1 s9 e
- (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
, |# Q1 M8 @4 s! U; r3 L - (princ)
" a9 }* q% ]8 D: C' A - )
: S4 |' F# E) H% F+ q& Y - ; s1 L- u& _4 t- c; A- u' u
- (defun c:pcxin ()
' e- q/ T+ F. f) |" d5 f" f7 k2 x. [ - (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
/ _. Q; k$ s- f1 ?: T: _" k - (princ)
+ ?) |/ X- _& F: L* d% L3 E& d - )
4 o7 E4 A6 |9 i% W: o - + c9 H+ W2 W2 V5 F: p) _# p( W3 T4 \
- (defun c:tiffin ()
6 ?. @4 W( I9 }' O5 J - (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
1 C( Z& k7 B3 U N8 Z- B. d - (princ)
$ C" J m! g6 Z1 x2 V b: ? - )
% b/ K1 u, p1 Z9 x2 N
' F5 t) C: V9 C! {$ m, `' C/ ]- (defun c:ddemodes()! C) e& h% Z/ R3 p5 f4 [
- (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.")
( W% _5 C% j4 ] h% j$ a - (princ) }$ s# q3 X4 _8 r* d# F
- )1 H: C8 E* p4 J1 v/ \
) u% U( T; H2 i. U- f- (defun c:ddrmodes(/ cmdecho-save)! ~ M. G1 C# V& w o3 M
- (setq cmdecho-save (getvar "CMDECHO"))1 C/ g0 d: d, I" S& b6 @" j+ u$ z
- (setvar "CMDECHO" 0)' j# w0 m5 W6 L* F& N; t, G
- (command "._+dsettings" 0)& O4 h# a( m# w7 ^; v# F" f
- (setvar "CMDECHO" cmdecho-save)2 c2 V* n: ]+ `- ?7 K
- (princ)
v( u8 \$ ]+ o/ h$ B; b - )7 t& X- B- B* j
- 9 ^6 f0 |! w2 P1 M O
- ;; HPCONFIG3 y4 S8 {7 Z( |+ J, B8 h6 M
- (defun c:hpconfig (/ hlppath)
% v# q. r6 B: _; U0 Y# g' Y; t - (if (not (setq hlppath (findfile "acad.hlp")))! h) O0 ], C! c
- (setq hlppath ""))) {* h$ s5 N% t9 |( f
- (help hlppath "hpconfig")
+ x& M i6 L5 p; d - (princ)
( J9 r$ L$ s6 p4 O W1 y - )) a7 G: Z$ t( u1 V
- $ `. B! h! x& h7 E5 {
- ;; OCECONFIG/ W! W! O9 t; p* Z" ~9 N0 O) t; ]" S$ T
- (defun c:oceconfig (/ hlppath)
6 a$ V( t4 ^4 V/ [) T+ j, \ - (if (not (setq hlppath (findfile "acad.hlp")))% L% l7 V- v$ Z ]! ?
- (setq hlppath ""))7 U6 Z( d' g: A
- (help hlppath "oceconfig"); i. ]; h) C. f) t
- (princ)
$ Y/ y: \0 u; k# ~" W" v - )
1 l& Z4 @' Y7 ^: M - 0 f4 Y' e, c, C/ j" o5 P
- ;; CCONFIG
/ @6 |1 O6 Z, ~( \3 v$ y - (defun c:cconfig (/ hlppath)
8 ~; S( f% l H5 L9 j2 ] - (if (not (setq hlppath (findfile "acad.hlp")))- i( _$ E& X" P$ @% n2 P, d- q
- (setq hlppath ""))" W6 |' Z# V: I/ X' N
- (help hlppath "cconfig")
# M8 w& H6 h& c. V - (princ)
. A) e* h5 K. j4 M# H6 t - )
/ M5 Z" P9 @! j% o - ) a/ y0 E, x5 u! _" H: P7 {
- ;;; ===== AutoLoad =====& N/ Z$ @: @5 K7 {% R* y# |
- 5 T! u6 t& E+ N2 u K' N% S% a
- ;;; Check list of loaded <apptype> applications ("ads" or "arx")
. L4 w9 j7 S' S5 v' n1 q - ;;; for the name of a certain appplication <appname>.
, {& Y m% z' g6 ` u. v4 n - ;;; Returns T if <appname> is loaded.
0 Y5 t% [! _) j7 X. B! |
% c' d j& ^' r0 w+ i: V' w) {- b9 A- (defun ai_AppLoaded (appname apptype)( i5 W% v2 y, w" g0 b
- (apply 'or
* {6 m6 v* s1 G" P$ l* i( D5 r - (mapcar 7 V; Q; Q1 W) A
- '(lambda (j)
1 O' t I7 `4 v, o3 v3 X - (wcmatch
4 t% F( Z8 {! T& i4 ]7 t - (strcase j T)% V1 V* ?, \1 _2 a* _
- (strcase (strcat "*" appname "*") T)9 ^' Z0 L2 U5 F
- ) 9 }8 Z O2 U& _) a8 _5 s
- )
2 ^2 t1 P4 M4 S - (eval (list (read apptype)))
4 v0 o7 H& R# B e& x - )- q$ [0 `2 e7 t& ^, }: z; ^
- )/ ^ Y% z4 i# z( ]
- ) A! O8 E. Q; n! f+ S- U& ^
- " ~! N2 E" c3 G0 x3 b. `
- ;; 4 m: a7 t( y; F6 C1 ~4 b
- ;; Native Rx commands cannot be called with the "C:" syntax. They must
8 Q" e& s! w# [8 T7 c# @ - ;; be called via (command). Therefore they require their own autoload 7 n( K. Q3 J; y2 ]
- ;; command.
! r" |0 U8 G4 y6 _- V! P# K7 L - % k, Y( L9 e; q, k1 i9 ?1 p. O+ E
- (defun autonativeload (app cmdliste / qapp)
" p. p1 r7 O( C" i: L, S& T5 v8 K - (setq qapp (strcat "\"" app "\""))7 S0 Z/ F8 j0 B. M9 x! }+ Y
- (setq initstring "\nInitializing...")5 l3 ]: T4 Z5 y- R
- (mapcar
7 M* e& n9 N+ z+ @ - '(lambda (cmd / nom_cmd native_cmd)! W3 m) N# }- b- S2 z
- (progn3 p* C+ ], P, E B2 }1 J
- (setq nom_cmd (strcat "C:" cmd))
' P2 r' |7 D* \/ ^$ B - (setq native_cmd (strcat "\"_" cmd "\""))
) i; \; I& n* W) k, H3 Q - (if (not (eval (read nom_cmd)))
+ k4 D# k, W8 X* u - (eval% _$ m4 K/ ~2 _1 C, p
- (read (strcat" x& O; e% I* n% }7 i! f$ A; S5 _
- "(defun " nom_cmd "()"
. h S' l$ I# g: W - "(setq m:err *error* *error* *merrmsg*)"
2 F; w9 F( V) e5 w2 k. I - "(if (ai_ffile " qapp ")"
/ o, V: K9 A. A" f' K9 o! V - "(progn (princ initstring)"
) I a; R8 ]4 O - "(_autoarxload " qapp ") (command " native_cmd "))"# |5 G1 h+ j \
- "(ai_nofile " qapp "))"
& m0 v: P) ?3 n0 M7 W; _' ]: V& m - "(setq *error* m:err m:err nil))"
9 ~8 G, s& c' i* h$ i' W# g# O - ))))))
$ e' o- B+ r& e5 j; k: o! z - cmdliste)
- e1 w) Y* S( x1 A! I' d3 e - nil6 [4 L/ ]; ^4 E
- )
8 z, P% m) @* }$ \4 a - 0 n* I. i' y$ ^+ c& \. x' |
- (defun _autoqload (quoi app cmdliste / qapp symnam): S8 ~# [# i( u* {1 A
- (setq qapp (strcat "\"" app "\""))
" ~" z! @3 L j% O) L - (setq initstring "\nInitializing...")8 B& `- O3 U0 O+ j% o
- (mapcar
8 x; [$ C. D8 z* i7 F3 i9 @ - '(lambda (cmd / nom_cmd). h8 ]* }0 ` a/ l" U
- (progn
1 M4 L9 W! X& k3 d# `5 a - (setq nom_cmd (strcat "C:" cmd))' f: f( G! w2 L1 M4 b+ A) x
- (if (not (eval (read nom_cmd)))
- v9 u8 y- x% z9 x! C7 R" N1 v - (eval
3 V4 a. s6 ?7 l - (read (strcat3 E- G! n' b1 F6 p! J% R
- "(defun " nom_cmd "( / rtn)"
" S- J3 N% W0 m I5 l$ o - "(setq m:err *error* *error* *merrmsg*)"$ z9 {' e2 F( m# j* o2 v. ^8 l
- "(if (ai_ffile " qapp ")"4 `4 ]' I7 G' @. N7 A
- "(progn (princ initstring)"0 W' C/ q2 F& z6 i
- "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"
* ~# c2 K1 a' ^' ^ - "(ai_nofile " qapp "))"# P" P: I& M% j& c
- "(setq *error* m:err m:err nil)"
}. h( \* A4 F) a - "rtn)"# K4 u. s, ^9 Q* i
- ))))))
. i Z; ?; L* z7 d# g) E6 A! B - cmdliste)
. N8 n- j* o; o0 C# Z, g/ I. @ - nil
! t* j4 J4 _- C& V( ] - )
. D' v& Q" ~5 Y - 8 K: S, F; M+ B# W6 Y# y' J& @; C
- (defun autoload (app cmdliste)/ f0 J6 D s: x( Z- m- U3 @
- (_autoqload "" app cmdliste)
6 M! W4 m/ G( u, p4 N: e - )1 W k0 V! Z' W7 F2 l, c1 ~# u4 d# N
, d s5 |) f& F/ n' X% [- (defun autoarxload (app cmdliste)
' t7 u- g3 v0 i0 [ - (_autoqload "arx" app cmdliste)4 N! Z1 G$ Q3 Y% V9 W, Z& r
- )5 G; G: x) C% m* ~# \/ ]! `
# |) A, @3 D5 z+ P7 z6 q- (defun autoarxacedload (app cmdliste / qapp symnam)/ M9 j- F$ @! R# ~2 I/ a' @
- (setq qapp (strcat "\"" app "\""))4 O- q' {7 ^/ J6 i+ }
- (setq initstring "\nInitializing...")4 U, e I. y# u* o
- (mapcar
8 N5 J/ E, t; z - '(lambda (cmd / nom_cmd)
" p# T" @, D0 O; ^8 L, p - (progn' h9 h% i% [0 D) }# E
- (setq nom_cmd (strcat "C:" cmd))) O' f' R ?2 k! g: I# d$ |
- (if (not (eval (read nom_cmd)))
3 O0 r8 ]8 r, y6 m - (eval1 l6 `) [/ s9 G
- (read (strcat; d' O. @$ ^2 E6 y$ r4 |, C0 f
- "(defun " nom_cmd "( / oldcmdecho)"
1 F4 V: J1 |$ _% [* U$ r5 i/ ~ - "(setq m:err *error* *error* *merrmsg*)"
" ?& M+ ]* I5 L0 R! ` - "(if (ai_ffile " qapp ")"
( Y. d2 a2 `; B, T) a - "(progn (princ initstring)"9 B$ ]% q3 U/ y6 Z
- "(_autoarxload " qapp ")"1 N5 z! h, r; \8 d, \
- "(setq oldcmdecho (getvar \"CMDECHO\"))"
* k$ Z: u9 p5 q# i - "(setvar \"CMDECHO\" 0)"
6 Z, k6 P: X& s3 I: y: ]3 U - "(command " "\"_" cmd "\"" ")"5 W* _+ i3 ?- g( S4 @9 {- X6 J
- "(setvar \"CMDECHO\" oldcmdecho))"
4 X$ ?( x6 I4 H K7 f" q" d' X+ v - "(ai_nofile " qapp "))", M, j% ~* H: g9 W
- "(setq *error* m:err m:err nil)"* R% A) s3 H" M8 z6 N; V: d
- "(princ))"
' z# c5 @. G/ x - ))))))
& b: M) {' E$ g9 G2 @0 T - cmdliste)
9 E: K+ m L: v/ E1 U' L4 n - nil0 c; |) u! l' P, {% { B' l) Q4 x
- )
+ A, e# S0 Z/ u. r+ d/ z3 H# b
* R3 Y* K0 v' R) |- (defun _autoload (app)
. O0 |' X" }8 F7 P" j3 R+ o/ ? - ; (princ "Auto:(load ") (princ app) (princ ")") (terpri)
) [" P! ~; T2 T. Z - (load app)+ I: E3 a0 N+ x0 r4 j
- )
^+ y$ E% k$ w! z - ; H, H+ E( B9 v) M% G% v
- (defun _autoarxload (app)
y- c) g: U) r: n/ r - ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri)4 E9 p s T3 Y, h, H
- (arxload app)+ ~) F! O9 {! N5 x. f
- )
1 B0 j8 w; R; l8 W
% W( i, r$ D- j! L+ |! ~- (defun ai_ffile (app)/ C( j: o. Q4 E5 o. j' U
- (or (findfile (strcat app ".lsp"))( ?, T1 \: p8 g
- (findfile (strcat app ".exp"))
6 Q# ~- {5 h5 A: c4 i( `- v - (findfile (strcat app ".exe"))' N( N1 f8 x8 @: M2 p7 a
- (findfile (strcat app ".arx"))
" ^' X$ }& a1 b# t7 ^. u+ {& d2 L - (findfile app)5 i. u4 f# C/ h. N# X. a
- )5 q0 \, O* m9 j9 c9 g
- )9 P* h# ]+ H- j2 U+ |' [ a- W
- ( _" d. c: }& G" d" w, E$ q9 I
- (defun ai_nofile (filename)# w( Y; O2 h( _3 Y& E* u4 k* k
- (princ4 g2 G# ]- Z/ K2 R5 b. n
- (strcat "\nThe file "1 I" W0 @* \4 X( z+ X
- filename. f( _. Z E( x. Z e1 p0 p
- "(.lsp/.exe/.arx) was not found in your search path folders."
2 l3 Q/ _& |6 l* c" a6 S - ). d" H: e u0 l; l4 v' s+ W
- )3 T4 W5 L, c" x) k+ m% G( H# n- u
- (princ "\nCheck the installation of the support files and try again.")! f' j5 H! Q3 m
- (princ)
% v* \9 D1 ^7 X$ ?1 }! O9 c - )8 d" q+ T% q' m3 g
- * ~% Z9 j; W) [1 Q* t' u7 _
- 1 x4 g8 i+ D4 e8 Z9 f0 f; b
- ;;;===== AutoLoad LISP Applications =====
6 h% L% s( U% \' a- ]) i0 A: Z. P - ; Set help for those apps with a command line interface, R# m3 n i2 I3 I1 p4 m5 j! o
+ U2 @- S( N+ T- (autoload "edge" '("edge"))
* |8 R+ T3 c) S7 J+ H - (setfunhelp "C:edge" "" "edge")& ]5 r) w' H7 C0 ?; {4 R5 _) Y& ~% I
- % W' M2 ^5 Y' p* ^7 a
- (autoload "filter" '("filter " "filter"))- l8 \7 g2 P1 ^
& k0 e% f6 G9 E7 i4 q6 \; m5 l6 L- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"
* z4 M% } z5 M5 n - "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")
2 A. m% s* z# H q* q - )- h. U! u* T& V1 f' i! s
- (setfunhelp "C:3d" "" "3d")2 {+ }2 e& B6 A- N3 j6 W+ E
- (setfunhelp "C:ai_box" "" "3d_box")
& ~# t, L. C: x' e4 i& E - (setfunhelp "C:ai_pyramid" "" "3d_pyramid")
; r0 T; S- q' P: n - (setfunhelp "C:ai__wedge" "" "3d_wedge")
! b2 ~/ I3 s8 Z7 Z; x' A. Z" @# T# z - (setfunhelp "C:ai_dome" "" "3d_dome")
; {3 ]' [, m, n. ] - (setfunhelp "C:ai_mesh" "" "3d_mesh"): @7 b" ^7 ^* y& N# q6 [6 y' |& w
- (setfunhelp "C:ai_sphere" "" "3d_sphere")
* w; @ u& ]8 E% M4 S) z3 ~ - (setfunhelp "C:ai_cone" "" "3d_cone")" D/ l$ i/ y, e7 W
- (setfunhelp "C:ai_torus" "" "3d_torus")
7 ~ l% X$ T# N7 R/ B - (setfunhelp "C:ai_dish" "" "3d_dish")
) a1 C0 q X' H2 _
3 |% l0 H$ Y- {& t! J- (autoload "3darray" '("3darray"))
8 o7 \3 B! V4 s* X - (setfunhelp "C:3darray" "" "3darray")
5 g% P# b9 e$ L$ L3 w
3 B2 A+ {5 |. O: D- (autoload "ddvpoint" '("ddvpoint")) T+ P( Q5 Y: r" T2 `6 K
- & ` M0 k5 h" c# q% G: [
- (autoload "mvsetup" '("mvsetup"))
5 |6 k4 `4 |) h. p; e$ e0 C" n - (setfunhelp "C:mvsetup" "" "mvsetup")# Z2 F2 C" w/ ~; C
: H/ q1 W; g6 r6 L: o) q- (autoload "ddptype" '("ddptype"))
1 c3 z! H! ~0 r/ x! ?+ |
2 x R0 r, v2 w" }% W5 |- (autoload "attredef" '("attredef"))' }* j Q1 K8 r# z z" r9 |: n
- (setfunhelp "C:attredef" "" "attredef"). W: F( Q% d9 [" n" u0 B7 U2 V
- : }; Y: `" m3 D3 |
- (autoload "xplode" '("xp" "xplode"))7 j( c0 L; p. b) E ]9 e* g
- (setfunhelp "C:xplode" "" "xplode")
% {* Y2 |: F- B% y- f# \# ]- ~
" } s I7 e) _% t1 u g- (autoload "tutorial" '("tutdemo" "tutclear"
$ H0 m$ L8 ^: r: A$ W5 y4 W" Y - "tutdemo"
9 _$ c; ~' |. ?$ | - "tutclear"))2 s, L, }& b) N( ?. V1 `
4 q* W& W, \' S) U- ;;;===== AutoArxLoad Arx Applications =====' B" n: Q. a" l% x5 B) x
- $ [6 }9 g% o) h; R; @( s4 p
- (autoarxload "geomcal" '("cal" "cal"))3 o5 R }, [! M# \
* H3 q- V) H: A; t3 z4 w4 l- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align"1 `: e8 D7 o0 Q8 }! |+ u& Y
- "mirror3d" "rotate3d" ! F E% _" G, h0 N! Y
- "align"))% R* B7 I0 K/ c) z+ g! f" _$ i# z
- ; i" x2 e1 j# [+ F
- L' n/ P1 n Y- G: H' q1 X* i- ;;; ===== Double byte character handling functions =====
4 N7 T( n$ {# g2 x$ I# }
) u9 p' a; V+ U4 [/ r1 i0 b2 M- (defun is_lead_byte(code)4 J7 _2 n+ L" X
- (setq asia_cd (getvar "dwgcodepage"))
6 ~6 H" c' q3 v3 D4 G+ Q1 d - (cond( j6 m( D7 N9 p3 B' w6 ^
- ( (or (= asia_cd "dos932")) ^% t/ A) j' ^2 X. Y5 W
- (= asia_cd "ANSI_932")
$ T0 y1 l) K( C% L - )
. ?- y! @8 I8 X4 c B' v& W% z0 O - (or (and (<= 129 code) (<= code 159))
- Q; u# S- a- {4 G' B3 L( a) c$ E - (and (<= 224 code) (<= code 252))
* r5 w4 |; S, j8 c7 H& T* V+ m7 u - )1 q, w5 W3 ]$ c) e: p: f1 ?# ^
- )# F3 v4 j8 ? |0 s7 q5 y
- ( (or (= asia_cd "big5")
& e& v. x/ g9 o2 G0 f8 [% { - (= asia_cd "ANSI_950")
2 Z) V" N; ^3 Q0 a& N7 j0 w' s2 }" ? - )
% |- B0 n S( j s1 u6 i4 K" [ - (and (<= 129 code) (<= code 254))
' o0 D+ y( K( w: N% Z - )5 E9 S1 \3 a9 ~$ a( ]1 L
- ( (or (= asia_cd "gb2312")
" i& [* g0 X( m! } - (= asia_cd "ANSI_936")
/ A4 I M6 R) S - )
( ^7 v( E' P& b, ^$ ?# k5 I& M: e - (and (<= 161 code) (<= code 254))
0 D& c) ~9 z! A - )
+ K; H# s4 K1 a7 I( o$ r* b% s - ( (or (= asia_cd "johab"): x7 L* Z" v# @3 g: |; e
- (= asia_cd "ANSI_1361")
8 f, S+ w+ P6 c - )9 G; j2 s' s& ?* G" c, O7 L4 _
- (and (<= 132 code) (<= code 211))
' K: c" ?+ y! ] - )
. ~3 ]1 E1 _- g, \8 F7 A6 \2 v - ( (or (= asia_cd "ksc5601")/ A+ h% f$ l; S# ~# J, l N8 v
- (= asia_cd "ANSI_949")
5 ]( h, p- C7 \' v/ b - )1 u" C: Q& A1 B# A/ G- L! N
- (and (<= 129 code) (<= code 254))
# H& ?6 a6 r- R" ?+ G - )
, F/ t: | H) g# ?0 V4 w - )# O! d% x# B( x; F2 B: N% W
- )
+ X" k; ], G& Y, d - . L J+ d1 ~9 O! @5 C0 D
- ;;; ====================================================9 v; |: s' I* F9 i
- 8 F" l+ @; X/ e d- J A9 O
& {) O* h: h3 G7 q5 ^ Y- ;;;9 F4 Y* K0 x% p. b5 E- Z( P
- ;;; FITSTR2LEN
% T6 q# ] w/ m# b$ n - ;;;! y; c T; g' m
- ;;; Truncates the given string to the given length. 5 s/ `9 N3 Z- F" T0 F1 x3 Y
- ;;; This function should be used to fit symbol table names, that
# m( J& p0 _$ |7 t$ k' @ - ;;; may turn into \U+ sequences into a given size to be displayed
( ]4 ^3 t; w" X5 q1 Y - ;;; inside a dialog box. m+ a' Q! A- D6 J* l- F& H
- ;;;' a/ Y/ k1 x& b; H" g& ]2 q; ?
- ;;; Ex: the following string: 1 V( }7 ^: O4 t" j
- ;;;! R1 K U6 w9 I7 Y
- ;;; "This is a long string that will not fit into a 32 character static text box."
; P: D+ {) S# {; t; Q - ;;;
) O5 f" ~8 t9 ]9 Y* y$ [ - ;;; would display as a 32 character long string as follows:
I& J' o5 j; w( K: |$ k+ [ - ;;;3 j1 D. v/ E1 D$ {7 E' Z" i1 X
- ;;; "This is a long...tatic text box."
' M' k( U- z9 n( m( ^ - ;;;
5 j5 P) p& ?6 f" ~0 p" [$ P) c - ' E- t/ z) T" O7 N
- (defun fitstr2len (str1 maxlen)
+ P: S% M6 c F& `! K - ( P" N1 m% u( o. g8 Q! A: a. R$ ~
- ;;; initialize internals5 W) l8 c' a8 E$ r" l
- (setq tmpstr str1); O5 J: F! g) n6 Z t
- (setq len (strlen tmpstr))
8 H! S& O; ~$ v0 K
1 p$ S! c2 _# Q7 H' g5 t# b$ r- (if (> len maxlen)
; m9 O( `8 u, E! ~' K6 e - (progn
' ~; _- N. b" s' s7 { - (setq maxlen2 (/ maxlen 2))3 ]- b' I7 S2 V$ W8 c1 z
- (if (> maxlen (* maxlen2 2)). W0 {* I( n' y3 U0 S- e6 ^, ]! }
- (setq maxlen2 (- maxlen2 1))% {5 e* O! a7 N; C
- )) |" O. x2 x I$ f5 { F& w# C
- (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1)) d9 h9 h; @, l) l# {
- (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))
5 p+ d, ^$ T2 d | N - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))) o# L8 I% h, t" {, A, i; b3 o
- )
/ Z+ V7 v- p5 t$ M - (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))
4 C; L9 h4 J" e6 _6 G! k - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))
! i) J1 _, b$ y/ ] - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2)))). l. a7 l/ a3 y' f- Y
- )
3 k! n) d/ D% s0 ` - (setq str2 (strcat tmpstr1 "..." tmpstr2))) x4 ~, @2 X3 \
- ) ;;; progn: M% z9 S) e# C/ q0 A" \3 v4 T
- (setq str2 (strcat tmpstr)), e+ I* a/ }& d+ ?4 C; Z5 |
- ) ;;; if
) i9 X( w/ T; U4 F" \ - ) ;;; defun4 }3 @; [1 m' y% |
6 a" p5 D$ V$ j* j- ) ` M* X: C3 D$ e
- ;;;
% e# ^3 Q8 @& C2 r8 e' t- H0 _/ |% n - ;;; If the first object in a selection set has an attached URL" ^7 E. A. e( Z0 |5 A, L
- ;;; Then launch browser and point to the URL.8 F5 O7 Z4 M$ z% y$ j
- ;;; Called by the Grips Cursor Menu
8 A$ Y, B& J1 e9 `+ e7 N - ;;;
2 j8 G/ Y$ e/ e7 O$ t/ j+ q
2 Q; S, I P9 P8 ]" I; G+ I- (defun C:gotourl ( / ssurl url i)
6 m" C z! w1 k/ L - (setq m:err *error* *error* *merrmsg* i 0)7 P" |9 i& x( Z( }. Z
- - v2 F- q1 D( C3 l/ j6 A1 t
- ; if some objects are not already pickfirst selected, / p- }4 A" o, X0 Y; S
- ; then allow objects to be selected: @6 l" w j! a$ v& V1 x
- 2 T7 O5 w6 I$ ]* G L
- (if (not (setq ssurl (ssget "_I")))+ B- P& p/ g6 G
- (setq ssurl (ssget))
5 N/ Q, J/ [% [2 D: s - )0 N. T4 M; i j& Y: @$ Y7 K7 a
- , k: m, H! D( P: \
- ; if geturl LISP command not found then load arx application! N! m7 c* t& l/ V6 ^, ?) R0 l
. m0 }: `7 w4 c4 F. S7 C+ D+ C- (if (/= (type geturl) 'EXRXSUBR)
$ D) M! n, F4 O" R E - (arxload "dwfout")
/ G1 V0 Y& n5 T4 c! \ - )
% r, p7 m/ F, g9 t - 5 `& H! r: Q! p3 O, p; k2 U* x
- ; Search list for first object with an URL. C: Q: p) [2 q8 C2 x, S
- (while (and (= url nil) (< i (sslength ssurl)))
4 h# h9 w- h8 p0 _ - (setq url (geturl (ssname ssurl i))
/ @# w( c0 P' J( n7 V3 H - i (1+ i))$ ^$ h( A" T7 e& r- D
- ), }' K8 m. E& [" v
$ K i- I8 l- _- ; If an URL has be found, open browser and point to URL8 c6 U& b- V! L! U, @
- (if (= url nil)0 O; H, r \* p% @5 o9 K
- (alert "No Universal Resource Locator associated with the object.")
- k$ E4 e+ l5 \- A( l2 K - (command "_.browser" url)! k) j6 I, z" w
- )% {1 q7 L) Z* Z0 K
* v6 i; h# `: W: m( F0 y6 }' J. o+ j- (setq *error* m:err m:err nil)
* R* d+ s, K% k; r, ^& ] - (princ)
" M9 ^* L v+ r6 a: n - 8 ~ \) {3 d# o4 K
- )$ r" e1 d w+ {/ T( _1 _3 q
* N" N+ A+ m7 ~7 F4 B' I$ g- ;; Used by the import dialog to silently load a 3ds file
; E) k! d* p) m3 R {. A - (defun import3ds (filename / filedia_old render)
* u( W$ B q- O) S - ;; Load Render if not loaded
' ?1 C7 j* s# N. e - (setq render (findfile "acRender.arx"))
. c- `4 p: v( U* ~2 h - (if render8 I0 @& x$ \4 E6 @6 ^
- (verify_arxapp_loaded render)
9 {% i0 ]3 d o4 E2 p( E - (quit)
: V4 \: p4 {4 H - )7 ^+ H8 [1 ^* J
- 6 l4 Y4 u) T2 T: P3 E5 a
- ;; Save current filedia & cmdecho setting.
7 B& V v f* r3 J2 Q - (setq filedia-save (getvar "FILEDIA"))+ @( B8 X" B( Y, s7 S: e3 z/ E
- (setq cmdecho-save (getvar "CMDECHO")). T2 S9 B5 }% h# m
- (setvar "FILEDIA" 0)+ T2 t9 S; h- Y
- (setvar "CMDECHO" 0)" u6 g! V. S9 x/ Y) z" H ?
8 Y; _0 F9 X) \* m5 m- ;; Call 3DSIN and pass in filename.
' V( Q. q8 |8 b: B5 ` - (c:3dsin 1 filename)
; z& |- p7 o5 |; R2 P/ r6 v% { - 4 n1 h- ^% m. j/ Q
- ;; Reset filedia & cmdecho2 L1 x: Q8 O4 K& j( W, ~
- (setvar "FILEDIA" filedia-save)
& o2 o q3 W: R7 w2 _3 V - (setvar "CMDECHO" cmdecho-save)9 n: O* k L- W( n2 c
- (princ)
; q [$ `% d- j' B# {# X. z# R - )% |: j5 U% E+ S+ T
- * M7 E7 t$ w* K$ X4 H% N! b# n
$ J6 _3 g3 e" Y0 R t- ;;;=== Menu Functions ======================================
: ?1 B- A. m8 \$ V* s
3 n9 K1 M" A: |* _0 u7 K6 x; Y- (defun ai_rootmenus (). W( H0 d$ f( e5 m
- (setq T_MENU 0)5 U/ P2 a6 R3 O7 j8 C! i0 Y
- (menucmd "S=S")
) M' S- Y# g1 X. E( v - (menucmd "S=ACAD.S"). U0 X% S, p3 x5 A) E
- (princ)- F( f" @9 }+ Q/ z' c# F) M: r
- )1 a. S! ~2 @% t1 N B# A0 F: h
, `, t# i4 A7 E* ~8 Q& L% r! V* |- (defun c:ai_fms ( / fmsa fmsb)
) C! r! [# ?$ w1 J+ u, F3 {8 V3 N7 U - (setq m:err *error* *error* *merr*)
" Q; o) q2 G/ O | - (ai_undo_push)
5 i* P7 V. S2 u. {* J# f' [ - (if (getvar "TILEMODE") (setvar "TILEMODE" 0))2 p/ e9 ]5 u3 B1 C/ L
- (setq fmsa (vports) fmsb (nth 0 fmsa))0 d% P( T0 W1 y- ~
- (if (member 1 fmsb)
; q6 E# F/ U% G! c' D+ C1 [ - (if (> (length fmsa) 1)! v0 s1 e& Y+ n# s
- (command "_.mspace"): _) u; e5 T/ \& | U/ G2 s
- (progn! @: e, V2 f8 `: Q: c7 j: W- T0 ]. g
- (ai_sysvar '("cmdecho" . 1))8 j6 j% s: H( ?* g8 l8 ^
- (command "_.mview")
- Q, Q# N, l. l( g* c& k - (while (eq 1 (logand 1 (getvar "CMDACTIVE")))# o/ N7 k- ~9 w5 ?$ X
- (command pause)
; ~/ C* u E7 o& X% s1 T - )
6 L9 U _1 f9 _2 }, W/ }) [ - (ai_sysvar NIL)
" }+ l8 [1 U5 A* j/ b: u' I1 Y9 E - (command "_.mspace")
1 o1 Z! w" R4 Y: x7 d - )
, A. V( { i% q1 F- ` - )& g3 H! g% W4 @/ g% L4 p
- )8 Q; q; w# C& Q/ R! K0 p# l: ^
- (ai_undo_pop)+ e, Y& i8 J1 \1 |, r
- (setq *error* m:err m:err nil)+ ^0 C; {* e8 V$ Q- I: H# h- W
- (princ)! E& u/ |& ]1 O- r0 V* o
- )
9 g& G; R6 W$ s2 e O/ Q
$ [1 T$ `1 t' ~' h; V- (defun ai_onoff (var)
5 o& Q$ A, o" w! K* k$ \* t - (setvar var (abs (1- (getvar var))))
9 P) ~* q6 P- S% l/ R( b l) _ - (princ)
4 ]# ~! y* P9 K& J - )2 C) p$ D+ Z& `$ p
- 6 |4 k7 F! S" i' O8 p
- ;;; go to paper space
( G: d' ]/ v$ m5 P - (defun c:ai_pspace ()
9 m1 b5 [- V* H! C) o' O - (ai_undo_push)% e" F+ X! F7 Y( `. {* ]
- (if (/= 0 (getvar "tilemode"))! y: c4 E. W9 y: A% g5 v
- (command "_.tilemode" 0)
" A' H5 ^8 ?! Q# H - )6 m! M7 c% j# d" w4 c) X- U9 Y* G
- (if (/= 1 (getvar "cvport"))' H8 X: }! x3 O3 W) k1 Z) G( S
- (command "_.pspace")
- D; V! _* i+ k8 P, N - )4 ?+ J6 Y2 `$ v3 w; R: _- Y
- (ai_undo_pop)2 U8 X# N8 A- q: p, W+ s, w
- (princ)
5 Y4 F! p3 Y2 N+ f C M - )
- e$ v+ a: J5 F5 g7 {- q+ n; t - 6 u: I3 A0 i( ^& n8 c3 A
- ;;; go to tilemode 1# p- ~( u- O* M" B9 k$ X
- (defun c:ai_tilemode1 ()$ G0 U' j) q$ l& k
- (ai_undo_push)8 g1 G8 o3 ~0 z, G
- (if (/= 1 (getvar "tilemode"))3 X, Z, [. j# S* M7 ~) ?' f
- (command "_.tilemode" 1)
/ v- ^3 v* a z# W1 J; b" \' _ - )
' R, |* B5 G5 q# Q }$ }: w& W - (ai_undo_pop)
5 |' v' x4 f( \ - (princ)
- Z2 J# [# A6 k; s2 X2 M8 _ - )$ N1 U' O& o1 C T( h c3 h& K; g' |
- ; R& w. q4 K5 k- X2 U/ M+ B3 O
- ;;; Pop menu Draw/ Dim/ Align Text/ Centered" e! y( q) D3 x8 ~# d* v
- ;;; Toolbar Dimensions/ Align Text/ Centered
1 F0 {5 }. d# Y& m8 S. d6 U$ ?* ` - 7 T* B7 b+ [5 \& w9 n) y' ~
- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss)' y2 N0 _3 L. }; N( z9 D
- (setq ai_sysvar (getvar "cmdecho"))5 B6 w. z( d& q' _$ Q' ?% ^
- (setvar "cmdecho" 0) J W4 T( p" E) D [
- (cond7 g. j% R r# C( W; D: f' @: {9 g
- ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION"))))6 V8 }7 K, |; @" Q C) a) t
- (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss ""
7 S, J5 R5 X1 ^' l9 Z/ F - "_.dimtedit" ai_dim_ss "_h"); g: b/ E; A5 l: @: k, L
- )
# U3 N$ ~4 }# h4 k; U4 Z5 L Y - (T nil)
* g" `/ Z6 r' g* X# Y Z3 d - )
p7 s% Z! c, s* q3 R - (setvar "cmdecho" ai_sysvar)) o0 m8 Z' H% m
- (princ)- U+ u. g' d3 A* e2 t F
- ), a! R r" J; h3 ^
) ~; n8 u& a' o- ;;; Shortcut menu for Dimension Text Above 1 R5 _. c7 P4 g( j+ P
- 7 A- [4 N0 p5 T: o4 K: |; A' l
- (defun c:ai_dim_textabove (/ ss)
) r* v) J7 u/ t* j$ @# x/ F. m3 l3 a - (ai_sysvar '("cmdecho" . 0))0 ^ C1 F- n+ A. y8 `( ]- m
- (if (setq ss (ssget "_I"))7 D4 K$ q% o4 U! _7 N: P5 }" B
- (command "_.dimoverride" "_dimtad" 3 "" ss "")5 n8 U" n% c; {, v
- (if (setq ss (ssget))
2 b1 r3 k+ R' j& f% [1 e - (command "_.dimoverride" "_dimtad" 3 "" ss "") @/ ^6 x: \; }1 L+ ]* c _1 r0 ~
- )
6 J6 U3 W% W* F7 b - )
4 p( w9 F0 K' w9 b% a! X+ K! h/ M - (ai_sysvar NIL)
5 n' \% E [. z: c - (princ)
( c5 D5 D% D. \* W. e( t6 R' T4 W0 C - ), F8 K) t, h9 Q( D& V
- 1 I- F$ [4 H7 @, R) `" z& p
- ;;; Shortcut menu for Dimension Text Center 8 h% z! |" n" w/ y' ^: q
) c( w' Y4 \/ }- (defun c:ai_dim_textcenter (/ ss)
: k3 t, w, d2 b% d/ r - (ai_sysvar '("cmdecho" . 0))+ Q1 n2 c3 m9 p M
- (if (setq ss (ssget "_I"))* j$ \1 k: _* A
- (command "_.dimoverride" "_dimtad" 0 "" ss "")6 B! f3 Z9 S) ]) [ N) H* N1 t
- (if (setq ss (ssget))5 G6 a c9 m4 [; @
- (command "_.dimoverride" "_dimtad" 0 "" ss "")
5 \5 i7 ^5 X/ \: _ - )
4 W. }: O$ h K, k# i( e! ^ - )* b: I# e5 Q! K% A* P% \$ D' j
- (ai_sysvar NIL)
) V2 G- Y5 `( a+ v. [" A/ \, v - (princ)
% ~$ H; a7 ^/ Y9 V+ F5 g' p3 H5 G - ) \0 S5 K; b' {4 T6 t
& s) v* i6 O7 \. q' |- ;;; Shortcut menu for Dimension Text Home . R' `. l, `- I8 t
3 A. g0 r& n5 y1 t& c- (defun c:ai_dim_texthome (/ ss)
7 _ O. R5 V, Q - (ai_sysvar '("cmdecho" . 0))0 }, b9 ?$ F& e: M8 N
- (if (setq ss (ssget "_I"))
/ j; Q" e8 G2 N6 e6 o; V! { - (command "_.dimedit" "_h")
+ O6 y/ i) a7 v - (if (setq ss (ssget))* D) L: A/ u4 P4 s7 H; A. Y* y5 [
- (command "_.dimedit" "_h" ss)
0 p, _* l# N B: Z9 F* q7 y: \ - )' |+ X h t& m0 }4 X
- )8 v4 W' m( A3 ?% s D3 X) }
- (ai_sysvar NIL)+ j2 J" p# X% `
- (princ)
, d! [1 v. |6 P) j# A: |4 d - )
8 a9 e! S; Z5 D1 V" P- r- A
) t( ]5 G% l+ [7 l, c
' S. `9 d9 K! O- ;;; Screen menu item for CIRCLE TaTaTan option.
. j4 B6 w9 a, a% n- k+ N - ;;; first, get points on entities
$ d/ l8 L' l, p6 ~5 K0 B - (defun ai_circtanstart(). a) F+ M- l8 ?6 k
- (setq m:err *error* *error* *merr*)
( O7 W* `- A n$ G1 p - (ai_sysvar
7 j1 k* q. A. Y$ b% C( V - (list '("cmdecho" . 0)
. |1 o5 H2 Y# C0 U$ P2 f: l - ;; make sure _tan pick for CIRCLE gets same entity
* R, P1 J. \: K$ Y8 v! y - (cons "aperture" (getvar "pickbox"))
9 E0 {. |/ u. P7 p& e - )1 y6 p8 P1 X& r( U
- )
6 ?& a/ }- M$ M - ;; prompts are the same as CIRCLE/TTR command option
! [) |) }2 ]# R/ b1 O3 _% h: X - (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))# I( g" p" ` u5 Z- W; Z' X6 b
- (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))
- @1 v% l7 j& O4 ~- u* m - (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil)) `* P& |8 ?& C2 ^$ _5 i
- )
2 D& @" o- I/ B: W& |; E - ;;; Command-line version N- s0 @ M7 o- [
- (defun c:ai_circtan (/ pt1 pt2 pt3)& m2 v. A# u7 t5 H, t& p
- (ai_circtanstart)4 l9 v2 x0 K# {" Y" u3 ]7 `, ~/ I
. y8 q3 A# Z' u. o- x8 R0 o- (ai_sysvar '("osmode" . 256))/ C6 ]" K: V; v0 w
- (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3) t& G& J `" p1 F6 e' Q0 M8 [8 _
- w; W" P) R) k3 U
- (ai_sysvar nil)
' J+ L: M0 h$ | - (setq *error* m:err m:err nil)
: {4 k4 H1 f I( W* h' { - (princ)
$ Y. d% c, w2 F4 E - )
I4 F. D# Z" z5 ~- c - ;;; Use this if CMDNAMES == CIRCLE
O3 ^! l6 Q# f0 Z+ N. ~2 w - (defun ai_circtan (/ pt1 pt2 pt3)( }6 D8 s% N; w& H" @, P
- (ai_circtanstart)% L! J/ e3 v; o
- + q$ \6 {% Z/ C; e
- (ai_sysvar '("osmode" . 256))+ ^: Q+ V% b$ a$ x) |
- (command "_3p" pt1 pt2 pt3)
: O! \1 ^! b5 W* Z: F -
3 u; f% B* y4 u: D - (ai_sysvar nil)
8 b7 d7 p0 L" ] - (setq *error* m:err m:err nil)/ g1 h, Y! v3 @! q2 E
- (princ)# U& w5 X% A! @0 `( A8 G8 C' \
- )& Y7 A$ Y% {3 n" j( r9 Y' [+ E
- H: [5 f5 S7 g. l
! k3 ]9 e6 C Z- 1 r5 ~2 P1 @: w# U
- ;;; Shortcut menu Deselect All item.- F- d4 E8 k/ L* n+ C; G) n
( w; h! h7 b/ P% F0 q1 q/ V- (defun ai_deselect ()
6 z( ?' ]* A, V, K% k d/ e - (if (= (getvar "cmdecho") 0) ;start if
2 t0 l2 b; t: B0 s - (command "_.select" "_r" "_all" "")
5 Q8 a+ }: x0 j9 w7 U, T - (progn ;start progn for cmdecho 1
9 ^+ b6 i* I. P d4 w# d5 f: ? - (setvar "cmdecho" 0)+ q/ u# }4 a; c P/ |$ D6 G2 _
- (command "_.select" "_r" "_all" ""); s- ?, l6 h( `' b. ]: }
- (setvar "cmdecho" 1)
' a; j; b& l3 W - ) ;end progn for cmdecho 1
) B) O' t, g* q% G* z0 Q - ) ;end if! f3 o |/ C6 W# ~ o; g
- (terpri)
' G- U0 b. @& f& s# \+ o - (prompt "Everything has been deselected")
& b5 |- l# K1 n7 y! R y& i0 B; [ - (princ)+ I' ]0 a6 K h* X
- )
% t1 }0 ^9 a+ Z& V- P4 t1 ] - 0 H- H, N3 G# B. z+ o$ \" {
- ;;; Command version of ai_deselect to be called from the CUI6 d7 S ^% E1 S$ F* g# Z# c# E
- ;;; so it gets properly recorded by the Action Recorder
4 R$ }8 J0 J* K# S1 z0 g - ;;;
4 L* I$ B7 F; a: u - (defun c:ai_deselect (): u+ b7 E m6 i! o9 C
- (ai_deselect)' v1 f6 J' n7 Z$ W0 i3 c% l
- (princ)
; g/ d* m T! F% L - )4 s/ S1 s& a# E) z, e# h& ?
- " |, w1 U) `) Z0 Z% D
- ;;;7 b* P% v& ?2 y- |% G& Z
- ;;; Enable Draworder to be called from a menu
, A. x9 o) l3 Z$ M8 O H1 J6 O - ;;; Checks for Pickfirst selected objects
d f) ^6 r$ R1 A - ;;;
3 \5 ], }" j" G; n2 }/ R: Q* }
+ v8 R }$ U8 m: G! k4 ^) w- (defun ai_draworder (option / ss )9 h7 Z4 Z* K" r, Z; ]. m1 p
- 8 h+ k1 Z( n, ]# w1 ?3 S7 h3 Y
- (setq m:err *error* *error* *merr*)
& g$ G5 Z$ E# {) L8 b - (ai_sysvar '("cmdecho" . 0)). [( z- |: ` g; Q8 \
; A7 L2 B- I: H( h2 D8 v- (if (setq ss (ssget "_I"))$ S4 |; o: t6 ]* `9 m/ b
- (command "_.draworder" option)
, @) i3 r* h6 f4 b. Z - (if (setq ss (ssget))
+ ]9 v% y' W ?, K* B - (command "_.draworder" ss "" option)
1 B# l+ @+ K" [+ A - )' q6 b9 F5 E/ L7 @# D
- )
5 V& A) B9 P% @* L5 O! s$ I - (ai_sysvar NIL): g3 I7 t0 e# C* }/ X% R2 i
- (setq *error* m:err m:err nil)+ M9 `9 F: L, l0 p9 @
4 i; ? ^: d8 r4 @- (princ)1 D( D; D' O A; M" E- N4 M
- )9 [3 l- {& f& C: `; E
0 `, B; H$ @$ D) ]& V: z" S- ;;; Command version of ai_draworder to be called from the CUI
$ z( @& X) e; V - ;;; so it gets properly recorded by the Action Recorder0 e: ~) K0 i% S8 Y' I
- ;;;
- E; w6 Y0 A) C6 J( `* Q; ] - (defun c:ai_draworder ()
) @4 K% k* o5 W - (initget "Above Under Front Back")) g# H7 ? u% Y/ V+ r1 s3 ]
- (ai_draworder (strcat "_" (getkword))): Q' ?7 M! b! [8 r/ q; J9 t
- (princ)/ V& |% Y1 A6 }7 q- J
- )
* `- w8 J3 \& S" q
7 o6 H, A# F$ ^, I' G- (defun c:vlisp ()7 _! u+ \2 K) V
- (if (/= nil c:vlide) (c:vlide))" v7 V/ O" i3 O6 O- A% ~
- )
- ~/ {4 W/ L: _4 F5 s3 \
1 N/ K) V0 J. g- V2 t6 Z- ~0 x- (princ "loaded.")% x* i7 ?; H: i+ I k
4 p" j0 V, A/ E: u1 Z5 F& P- ;; Silent load.$ E+ e1 Q) _- d. ^
- (princ)" g# F: `" c0 I, t% t
- H8 l) E6 T) ?9 p" H6 \0 T- ;;;----------------------------------------------------------------------------
& m% ], q. P3 K: S4 n8 c - ;;;
. T' S' \* m2 H0 t# N; A( p% Q - ;;; DDCHPROP.LSP Version 0.5# ]* W! o- ^9 E& T9 S" A \5 E5 Q+ X# C
- ;;;% M U8 C6 l' S
- ;;; Copyright (C) 1991-1993 by Autodesk, Inc.! e$ h$ r) y2 ?( a( ?/ X
- ;;;
$ s& }2 D& D* h% T- X - ;;; Permission to use, copy, modify, and distribute this software3 C" @! E* D& C, s6 A% f9 ]) j' N
- ;;; for any purpose and without fee is hereby granted, provided. o9 H6 g2 ]6 p% i
- ;;; that the above copyright notice appears in all copies and that$ M3 a: O/ N$ _
- ;;; both that copyright notice and this permission notice appear in) a; O) y' n1 U" o
- ;;; all supporting documentation.
# s8 j5 O/ G' M( `1 g - ;;;
: e+ O; Y8 i G1 ]" P - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED. N/ x; U1 E; v1 k
- ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR
9 |5 K- E) W1 x/ E+ I" h' Y - ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.
9 E- G$ A" D `9 Z7 g - ;;;
) m* Z* J3 ?, I8 ~4 J - ;;; 2 February 1992
4 t9 e5 W+ A( e& R* S: T - ;;; 0 K0 _9 a% N- v
- ;;;----------------------------------------------------------------------------, Z8 J k$ c: A- i9 f5 N! P, f
- ;;; DESCRIPTION
% z6 Q, R5 I, p$ R - ;;;----------------------------------------------------------------------------$ x3 O0 ]9 b0 U; }, N3 R8 X! `
- ;;; C:DDCHPROP is a dialogue interface for the CHPROP command.
: Q: \* Z+ ^8 }7 U5 n8 q) H: B - ;;;
+ R/ N4 m$ r% m: e. Q - ;;; The command looks similar to DDEMODES. The main dialogue has an image ( d& y- g! [) b% c o+ a& W
- ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness). ' g: H7 x$ d' |8 p! Y
- ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box.
5 H- x+ n! J1 ]3 S4 |8 s - ;;; The dialogues are all defined in the DDCHPROP.DCL file.
6 L. B/ ~% _+ Z. j - ;;;) Q7 L! J% A7 F
- ;;;
" S, e# e3 ~- [2 _ - ;;;----------------------------------------------------------------------------
) y; s# |1 ?9 V - ;;;----------------------------------------------------------------------------! c: G4 A; U2 ^
- ;;; Prefixes in command and keyword strings: 7 W# W- p, f( Q: x2 g! y
- ;;; "." specifies the built-in AutoCAD command in case it has been ; _9 t: _6 F. g* I0 W' L
- ;;; redefined.9 W) _4 F# d6 y; F
- ;;; "_" denotes an AutoCAD command or keyword in the native language% p4 |1 E: M1 z V B# z
- ;;; version, English.1 G& ]- o0 Z! y
- ;;;----------------------------------------------------------------------------
; x( V* j, z0 q- w s" T - ;;;
( _: u5 M. A7 H: b9 w$ A - ;;;+ H0 v1 i& [8 J8 e0 b
- ;;; ===========================================================================) i% D7 v6 K2 ^4 L. @! X
- ;;; ===================== load-time error checking ============================% H- |) ~* {! C
- ;;;
" x) O% ^: X: k: ?% ^ - ) T; E3 ^7 ^' X6 y, y2 ]8 [
- (defun ai_abort (app msg)3 ?4 h" V# F0 |: O; d2 @0 j" X
- (defun *error* (s)
+ L% c- }* z' X - (if old_error (setq *error* old_error))
, h q& k+ f2 \. v% a - (princ)) r- a3 Z2 ]( Z% ?1 {
- )1 |7 Y1 {) W# p! n
- (if msg
, T9 ~0 t- m1 D9 n5 a - (alert (strcat " Application error: "2 s" Q5 u8 A$ w- c( o- _+ r# _
- app
' o. O [7 d0 C$ d8 Y6 e) ~" \. h5 P - " \n\n "
0 h0 h/ p# W' H$ B/ x' v+ v3 N6 I - msg8 h6 F/ f j" q" T
- " \n", F$ z4 B/ a+ Y4 S
- )
% y' F2 n" J% S$ N8 } - )9 G* h8 g8 C% I. R0 X
- )6 P$ f( D% i2 V
- (exit)0 @$ M# j) E1 J' F- W- l! [
- ) a% r. I4 a& O! i; t
- # e/ y6 ?7 Z( \" w' ]' h
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
1 R) ~! l1 d9 Y- h9 d! y3 } - ;;; and then try to load it.7 H3 F( X5 w8 N* w0 s1 s
- ;;;1 e2 I* m: l q- E( W3 @7 l
- ;;; If it can't be found or it can't be loaded, then abort the/ `8 a+ Q) L4 r, b [1 G8 \7 I
- ;;; loading of this file immediately, preserving the (autoload)3 ~9 c. x9 m" Y. ]
- ;;; stub function.9 g: E: Q- H" M: g
- / f* X2 G( ?$ e2 X
- (cond
) I: g# z6 a" m# A - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
& Q. w7 d8 H; x& i! V - ) L* f0 l; N* M( `, t M3 B; k
- ( (not (findfile "ai_utils.lsp")) ; find it
1 X' l1 @# [% q8 [ - (ai_abort "DDCHPROP"
" ^, U* J/ ]- K - (strcat "Can't locate file AI_UTILS.LSP."
2 L" u3 y6 j5 g, b# p+ f6 D: ` - "\n Check support directory."))) C: s9 ]5 F* X: R' D1 t9 R
- ' U+ A9 ?3 u8 i0 m7 n7 J8 [& c: I
- ( (eq "failed" (load "ai_utils" "failed")) ; load it4 `* i+ i6 W; c% [" `( I1 ]9 q( ~
- (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))
* Z2 B3 s0 K3 i - )
$ u/ q) {4 [7 R7 v - - F; v3 S% T+ o- G3 l5 i9 S V' \6 p; x0 u
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
6 J% u2 H s/ b4 s - (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses- G, j+ _% W: Q
- ) ; ai_abort's alert box dialog.1 r6 P8 l$ g: C! s
- }4 g L! u2 X, _4 A- ;;; ==================== end load-time operations ===========================
6 K# W5 J# P/ S/ N. E - z h7 ~9 d" a6 u
- ;;; Initialize program subroutines and variables.+ S8 m8 L( Y/ G# I$ N8 k& \9 `8 M' ~1 D
, g! K3 s% a1 k) J0 J+ u2 e, Q- (defun ddchprop_init ()
; s* F; @0 z# R1 c5 r
6 ?" K0 F( ]. [) i# \- ;;
6 e8 `3 Q& c* a% F - ;; Define buttons and set values in CHPROP dialogue box 9 D3 } q) T4 \. K
- ;;6 v! Y/ [9 b. D$ e4 p" t/ W
- (defun call_chp ()
8 h1 e% A' G2 L9 J* U' V - (if (not (new_dialog "ch_prop" dcl_id)) (exit))
* N! D3 C3 ]/ Z t5 i b" J! b, ]5 I0 y - (set_tile "error" "")
# R/ @% S# a& y - ;; Set initial dialogue tile values! w: @& o8 a8 |( X. @% ?
- (set_col_tile)
9 A {4 z" _; Q - (if (= lay-idx nil)
- K, y" v; O7 S8 L: f - (set_tile "t_layer" "Varies")
) T( k6 R# N8 h" l* W0 c P& z - (set_tile "t_layer" (nth lay-idx laynmlst))% {% J8 S) X. v
- )% L0 q/ v9 A. s- G4 \
- (cond , T7 U4 b! x8 C
- ((= lt-idx nil)) Z6 ^# L* G$ x& p4 @7 c
- (set_tile "t_ltype" "Varies")
3 |- [. L7 n) x: c - )# B5 t% w! |. N1 A6 t0 l% ~
- ((= lt-idx 0) ; set tile "By layer & layer linetype": r2 H$ C, v" g4 ?6 @7 t9 z6 u$ W
- (set_tile "t_ltype" (bylayer_lt))
. Q8 `2 Z% E. {% v' Y, c - )
! Z5 S' E; ^( a9 s - (T
/ x$ h0 g0 y, N( q9 o - (set_tile "t_ltype" (nth lt-idx ltnmlst))
, V/ d& W; |1 ^" x - )* {- b0 D8 m! S' x2 N
- )3 p. ^3 p% u2 n- M4 ~
- (if (or (= ethickness nil) (= ethickness "Varies"))4 _* E$ R) j+ W# u; o$ N, Y {2 G# R
- (set_tile "eb_thickness" "Varies")
" U. }/ a5 [3 i( i/ q - (set_tile "eb_thickness" (rtos ethickness))7 K$ H" ~5 ~5 C, H) ~& s) {) A1 ^
- )# x3 ^) ]6 h) G& H: P) Q# |! ^
- ;; Define action for tiles
+ C! n% Z$ q5 t6 w/ v9 o9 k& K* q9 S1 K - (action_tile "b_color" "(setq ecolor (getcolor))")% k% T4 F4 Q2 ^' I \9 F6 h
- (action_tile "show_image" "(setq ecolor (getcolor))")
, n ]/ \* N! |2 b+ s$ s - (action_tile "b_name" "(setq elayer (getlayer))")
8 ]8 }0 |/ j- @: ?0 w - (action_tile "b_line" "(setq eltype (getltype))")" f* D, g/ k" O6 o. U+ Y
- (action_tile "eb_thickness" "(getthickness $value)")/ N/ G$ c) D1 C
- (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")7 v( M( _) P7 `6 a
- (action_tile "accept" "(test-ok)")
+ S4 s( K: ~: ?5 _/ Z - (if (= (start_dialog) 1)
4 _; G/ Q4 l; H. S- {: K+ X$ V - (progn
2 v: I b0 Z5 z W- K+ O. ~' N - (command "_.chprop" ss "")
( b N/ V3 N" C i1 H- h& v$ Q - (if ecolor
0 h5 u; Q6 B2 ^9 w& Y3 P3 E - (progn6 C' ~9 T& G) L( Q: {
- (if (= 0 ecolor ) (setq ecolor "BYBLOCK")). a5 t0 n, r! \: y
- (if (= 256 ecolor ) (setq ecolor "BYLAYER")), g6 a W; H( ^% C+ ^. C. z9 F
- (command "_c" ecolor)2 J- {6 q4 E$ b' S5 B
- )3 j# ?6 K% w: N$ N
- )
u) N/ ~3 U [6 Y/ N9 z - (if (and (/= eltype "Varies") lt-idx) m. m3 @, s# [/ Z" t, z% \6 C3 T* K
- (command "_lt" eltype)" @, x D J" Q- |$ a' T
- )4 H1 M) C* H1 r# G& M1 |5 t
- (if (and (/= elayer "Varies") lay-idx)+ Z0 n! m( w. f; P1 g+ C! r
- (command "_la" elayer)
+ L2 _7 I$ U# x- z) L - )3 l( _) W) G6 F3 l+ t9 A+ c
- (if (and (/= ethickness "Varies") ethickness)
: z1 f u5 E- G/ h a9 ]5 f9 p - (command "_t" ethickness)
8 B- M9 E# Q6 T9 c - )
9 m- S2 c( f3 @, B - (command "")1 I2 D6 |' k) g
- )$ d. |8 ^- k7 T
- (princ "\nProperties unchanged")4 i" z; ?* z3 U1 k8 y; N6 G7 \
- )' ~0 P$ ]% q0 r, c
- (princ): E2 M _( x9 U( t" j( v7 t7 [0 O
- )
( G) |& ?6 @1 q# | - ;;
8 t% Q1 w% ~3 u# j4 ~+ r q& b( } - ;; Function to set the Color text tile and swab to the current color value.
# N& t; H2 ~- t* h! H - ;;: q7 U# |0 @0 U. p1 W; i
- (defun set_col_tile()
; \6 H. J( m( [. }& Y' E - (cond
) V. S7 M. [; d - ((= ecolor nil)) N% w R3 e# l( ]0 {2 P
- (set_tile "t_color" "Varies")
1 V4 A4 ?$ C) k6 G - (col_tile "show_image" 0 nil)0 A$ @6 w% c& o3 ]) T( x4 E
- )
3 t4 e( V# m5 Z) B, a; L" n- g - ((= ecolor 0)
$ d' s# F& w/ i* R - (set_tile "t_color" "BYBLOCK")0 F: r( n1 d5 Q/ g5 D6 f
- (col_tile "show_image" 0 nil) g" M$ r$ o1 N* @
- )
# b( F: g/ D- a$ J; W. Z; h - ((= ecolor 1)
+ \$ u0 J* G" u! O% W9 g/ N M& ]6 U - (set_tile "t_color" "1 red")( f" F7 O- e3 A4 i+ o$ b' F
- (col_tile "show_image" 1 nil)
' A! [1 G- w" b' ]3 z( H6 z9 Q; L - )/ [" y7 X9 i) N$ L3 N0 H
- ((= ecolor 2)
( ~ J: n* G: q( Z3 t/ N8 g3 [- p - (set_tile "t_color" "2 yellow")
$ A# d5 w& p5 C6 T. _: k" H9 F3 o - (col_tile "show_image" 2 nil)
9 w' d, l: R$ G - )
: a) z1 W/ |# ^- [# b - ((= ecolor 3)0 p, g$ m' _- u' K/ u/ Q
- (set_tile "t_color" "3 green")5 I( S% J5 M$ e7 [2 n9 ]4 Z
- (col_tile "show_image" 3 nil)
6 E G( V8 C3 S# \) G( D - )7 i# ?- R8 [* r
- ((= ecolor 4)
8 ]1 ]6 R; f3 ` u, C; ]) `# }( [ - (set_tile "t_color" "4 cyan")
/ F9 _) V9 J% `2 u! Z - (col_tile "show_image" 4 nil)+ u+ N' E$ l) H3 e. O. x0 |
- ); H! b% P& |) _, t7 D
- ((= ecolor 5)( K% v' e& w* Z
- (set_tile "t_color" "5 blue")1 `9 j, `+ Z1 M1 S$ t+ Q# Y5 ~
- (col_tile "show_image" 5 nil)
& U" x6 O1 x7 L* V1 H/ q - )6 {! |: r, g) t6 B8 E. Q) N" K
- ((= ecolor 6)* X# H: M. R+ |# A' O
- (set_tile "t_color" "6 magenta")) Q8 O0 \9 A, t, F" Y% ]
- (col_tile "show_image" 6 nil): M- O2 q0 j% b8 S. w
- )3 K' L' A5 `0 X, y( S- D
- ((= ecolor 7)
6 g9 ^/ ^4 d5 B# W5 T- A - (set_tile "t_color" "7 white")& O" l3 k( \3 E* ~
- (col_tile "show_image" 7 nil)1 _; b( W3 C' M/ z. a$ e
- )
3 M4 p+ j& w: f* K: p* ~/ B/ j - ;; If the color is "BYLAYER", then set the tile to5 E% M% a- h7 T' q, w* d) c1 D8 i( _
- ;; show it's set By layer, but also indicate the" w7 d$ c( n+ k( D
- ;; color of the layer - i.e. By layer (red)3 J( |( z3 I. X2 Y: [+ T
- ((= ecolor 256)8 ~+ l5 U. M# _# B% V+ g
- (set_tile "t_color" (bylayer_col))7 {' O# f; ~0 L( P: d4 a
- (col_tile "show_image" cn nil)* c. f3 h' F f/ v
- ) [: ~, Z% k. R1 ^2 X- `
- (T
* }) S) |8 u S6 x0 F9 ] - (set_tile "t_color" (itoa ecolor)); i+ I4 X( q2 n9 D1 ^9 {/ ]
- (col_tile "show_image" ecolor nil)% T$ G P8 M4 G; o+ B8 |
- )
7 ~* H: X7 k8 K0 U - ); W8 D% r9 E( U1 e" N& W7 m
- )
! O& e/ e ]/ f" i# a0 P3 O: { - ;;
5 u2 _6 i8 V, L0 g" q9 S - ;; Function to put up the standard color dialogue.% J8 C" d" K) ~
- ;;
: [& N+ ~0 V5 j. R1 [" ] - (defun getcolor(/ col_def lay_clr temp_color)
3 o& c. X1 `+ t; z' s* k5 E; k5 i$ e - ;; col_def is the default color used when rq_color is called. If ecolor
3 c6 ?3 S$ D$ z8 G" M3 G+ H+ N - ;; is nil (varies) then set it to 1, else use the value of ecolor.
$ H- d% G% k2 t0 i - (if ecolor
" ]( C1 D' w) C9 Z: b( k) E& Q - (setq col_def ecolor)
0 w) q) D. L: @1 Q9 U K7 _8 \! { - (setq col_def 1)
, ^1 E! {8 c) F' W x: O - )
$ x# j, d, N3 S2 Q - - d" m! X, a+ _$ w
- ;; If we're working with a single layer, get its color8 a( ~( n" F6 j8 }
- ;; for use in the color swatch if the user selects color BYLAYER.
* ?- L5 c$ |* ^ - (if (/= elayer "Varies")/ ]' V; p3 s8 d
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))+ Q, A- E- l9 w6 y& G# ~4 U
- (setq lay_clr 0)" E4 j" F0 ~0 }" _" a4 E
- )
( N, K, z+ }* M. } - (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))1 x( `1 b, T* c0 D; O2 g) U5 n
- (progn
; K ]$ O6 W, v) R. H+ ~' N - (setq ecolor temp_color)5 D" L) i) ]# Y) k
- (set_col_tile)$ e: [% w( \( G) v
- ecolor
$ c& V j$ x$ F- S" u$ k - )) r/ I% w3 s2 c6 X8 j* \* _
- ecolor
( \ i% I8 p$ ^; D+ X. E& [0 A - )
& `( u& J' E7 x6 X, d - )
- j6 I/ a+ n& b - ;;9 B2 p0 Y! D: e3 q' z0 m
- ;; This function pops a dialogue box consisting of a list box, image tile, 2 l8 n3 k$ J! M' O
- ;; and edit box to allow the user to select or type a linetype. It returns 0 `3 ~# [- ?# h& i ~, m
- ;; the linetype selected.6 R! V6 d, `7 K& m" ^
- ;;, i' Z! h6 q$ w7 I% S
- (defun getltype (/ old-idx ltname)
+ {" ~2 c( S; f" x - ;; Initialize a dialogue from dialogue file
9 u) h* |2 o' D8 g" ^6 Q7 h - (if (not (new_dialog "setltype" dcl_id)) (exit))1 k" @* h3 D# [* C
- (start_list "list_lt")
$ j, Y; g3 }& n* | - (mapcar 'add_list ltnmlst) ; initialize list box% w9 [2 ^; h$ P$ L3 Q9 @
- (end_list)
' [4 W+ \" x8 T: s8 U7 v1 { - (setq old-idx lt-idx)! S- b- q5 K4 u. b
- ;; Show initial ltype in image tile, list box, and edit box
6 K: U3 H8 f/ D; s1 R% {# m6 L - (if (/= lt-idx nil)
0 ~2 ?0 ^+ Z, `- s# k - (ltlist_act (itoa lt-idx))% C `! G/ ^& \, t/ p* y O
- (progn
# B0 S. {1 z7 `8 p4 i - (set_tile "edit_lt" "Varies")
2 `' h3 ~% F/ ? - (col_tile "show_image" 0 nil)
/ F$ n5 w& x# `; J* q8 i$ \. O - )0 R! q/ O/ J' F7 k, |8 W5 t
- )
, b: C9 d q9 J( _% N! |7 w - (action_tile "list_lt" "(ltlist_act $value)")
! u' ~( ?- S" f9 p+ ]* A4 U/ b' { - (action_tile "edit_lt" "(ltedit_act $value)") e, `# V6 I2 g/ S# r4 N
- (action_tile "accept" "(test-ok)")' i+ J( u# p* W5 D* U
- (action_tile "cancel" "(reset-lt)")
1 l* d( ~" E, a1 r" x9 M( c, N$ ]$ F0 _ - (if (= (start_dialog) 1) ; User pressed OK
" k1 p2 O# J7 @2 [" k - (cond
& X, J* P0 x' D" _+ ]) ?. v1 {- x# U - ((= lt-idx nil)
n/ g4 ~6 q1 z" { - (set_tile "t_ltype" "Varies")' U( ?0 q- z0 S. u O i
- "Varies". u+ `8 e% R) u2 O# ~
- )
* G* N H7 L+ F, t5 Z# X4 e0 ?4 \ - ((= lt-idx 0)
2 }6 b- s, M; ?- u - (set_tile "t_ltype" (bylayer_lt))
8 z% \& T1 q+ V - "BYLAYER"5 n+ H( s9 d0 @2 s$ U% I
- )2 u! B7 m3 s1 M; |& q
- ((= lt-idx 1)3 U7 `$ S1 q4 Z( p. e
- (set_tile "t_ltype" "BYBLOCK")
2 n7 t- ^: y, Q - "BYBLOCK"; {# R& d( m# u; B' u4 N4 _$ c
- ), c) z& H6 M; z5 s: m) r
- (T
" V! G' S/ U) } - (set_tile "t_ltype" ltname)
2 a: p9 }% E: t - ltname- r, P# I0 Y3 G& {
- )
+ I% I5 w W( L) W- M1 M1 R4 |% v - )
4 p& \% W X! H. M$ Z1 L8 [ - eltype% A! H; n9 L+ c& J y" N
- )
) m) @, @2 z" u M& Q$ u4 b, n - )
- w: B; j& b% \* \- M - ;;
6 e8 p! @8 ?- q - ;; Edit box entries end up here
& P9 H7 [4 N, [) O8 r - ;; H3 [2 E4 p( X) i) _ w
- (defun ltedit_act (ltvalue)
8 ?) J% ^7 j( w k0 C& n) [ - ;; If linetype name,is valid, then clear error string,
2 ^9 M8 q/ p/ y - ;; call ltlist_act function, and change focus to list box.
$ R E0 {+ [) m. I8 [2 V+ Y - ;; Else print error message.
5 ?& x: X T6 |' [: }: A6 W$ d - (setq ltvalue (strcase ltvalue))
' i) l7 b9 j6 c8 z+ B - (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))3 E1 `+ O- A6 L' X
- (setq ltvalue "BYLAYER")
9 R' C3 i f |6 [/ t# |/ f) U - )
# l' f3 r5 Q( A! } - (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))
' I) Z* Z* @0 ?/ q1 W - (setq ltvalue "BYBLOCK")
6 u5 b6 D6 ~6 T& O, w( R - )- ?' {" p: q) i9 @
- (if (setq lt-idx (getindex ltvalue ltnmlst))
; L2 R% S( M" K+ i/ M5 A - (progn
9 U& }8 w* t/ M$ { - (set_tile "error" "")
& B G4 e8 C; ]6 w% [3 n$ t - (ltlist_act (itoa lt-idx))
. }9 S+ C+ U+ I9 w( y' ? - (mode_tile "list_lt" 2)
1 n; X: `" B- \7 ` - )
8 J* }0 t2 s6 d& n2 c - (progn; D6 F" ]: C; D3 C
- (if (/= ltvalue "VARIES")
' [ }+ P% b/ H, _0 h - (set_tile "error" "Invalid linetype.")
& z+ H0 K5 L/ x& f) `# _ - )/ `6 s& C" v: ]3 Y
- (setq lt-idx old-idx)7 f* P+ X1 F8 s+ C! ~5 G
- )
/ D; S* a F1 J# W, j8 C& v4 o - ) [$ O& e2 x; r# h8 w9 n( g, x* e
- )
5 P; g6 Q1 j# j( H$ V - ;;
' T1 d" F% n$ \- S) E% J, b( E h9 W - ;; List selections end up here. w w0 i, ?' ~' A. x; A1 q1 x
- ;;
! w& ~9 m- d; v, w5 Z: K* s E) d - (defun ltlist_act (index / dashdata)
1 U3 d6 W1 p+ P, _) S4 R z - ;; Update the list box, edit box, and color tile% s5 r# m. y9 ^% E: B+ f- Q
- (set_tile "error" "")
" r! h e5 q, `% { - (setq lt-idx (atoi index))
0 Q2 h% H" f: c5 P& T [ - (setq ltname (nth lt-idx ltnmlst))! K, x+ I8 D) m" X2 z5 W) ]
- (setq dashdata (nth lt-idx mdashlist))
6 e0 B3 Y1 L: h, i }. v8 J - (col_tile "show_image" 0 dashdata)
) h1 S+ [( Z9 h) r B7 y/ ` - (set_tile "list_lt" (itoa lt-idx))* X$ i' L6 ]; |5 t
- (set_tile "edit_lt" ltname)9 k# J w+ x& b0 _! |6 g- H
- )
( N- o! n0 E2 y8 ]9 r) A1 } - ;;
9 X$ E( v: R' c6 \6 f' `+ w - ;; Reset to original linetype when cancel it selected( x$ N3 V }3 M
- ;;) M7 K/ `3 U. }5 F. \+ K( A$ s) \' V" D
- (defun reset-lt ()
4 C: ~4 @! L+ Y- C, {) X% P" u - (setq lt-idx old-idx)
! R+ O- y6 ?) d0 M( W4 e - (done_dialog 0)
0 A1 @$ \; x2 x l9 I; X5 M/ k, J$ i - )
3 ]& l3 k/ p) ]* M" X: z! I - ;;
+ Y- W5 L" G* h& n6 g" e1 t; x2 M, X - ;; This function pops a dialogue box consisting of a list box and edit box to
. l7 `# ~5 Y7 H - ;; allow the user to select or type a layer name. It returns the layer name
$ B$ p" x; b( T" d - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the ]& D/ v' w% E2 \( @
- ;; drawing.
( k. x/ _$ Z/ \ - ;;
& }9 Z }* Y7 X; [4 h - (defun getlayer (/ old-idx layname on off frozth linetype colname)! R, s# B+ o8 q& E6 S
- ;; Load a dialogue from dialogue file
( h5 T7 p2 C# B, ? - (if (not (new_dialog "setlayer" dcl_id)) (exit))4 c1 H- b$ y; L2 a4 z- b) t
- (start_list "list_lay")8 D$ T5 \& t% ?; \- A. G( [% N
- (mapcar 'add_list longlist) ; initialize list box
/ _3 ^+ @" C, [( h- T& u2 J0 d - (end_list)
+ k) f! Q' v! V6 v - ;; Display current layer, show initial layer name in edit _1 p6 g- Z- K* Y( Z W% J
- ;; box, and highlight list box.
! @: W6 f7 B7 U+ _) Z - (setq old-idx lay-idx)
$ r h/ U( |( b e - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
. s' U' u$ Y8 N" [ - (set_tile "cur_layer" (getvar "clayer"))) t" v% N* \% L: X7 g& w
- (action_tile "list_lay" "(laylist_act $value)")* i, p9 h# Y- C( `/ Q3 D; Z6 N
- (action_tile "edit_lay" "(layedit_act $value)")' f8 R4 O' C1 _7 a
- (action_tile "accept" "(test-ok)")
8 \/ d/ I9 e. j9 o% [ - (action_tile "cancel" "(reset-lay)")
2 h+ e, f+ m2 d. u+ b) k - (if (= (start_dialog) 1) ; User pressed OK
, l2 ~" K! o/ f - (progn0 e+ K( ~& C ?9 K1 m; a$ K4 a
- (if (= lay-idx nil) (setq layname "Varies"))
, }, {5 A* m. \ I" z4 m- F4 O7 Z - (set_tile "t_layer" layname)3 g. `' Q U4 K! T9 s
- ; If layer or ltype equals bylayer reset their tiles! t, }5 k/ A H' _
- (if (= lt-idx 0)
3 l; @( A2 e) _: ]( l0 o - (set_tile "t_ltype" (bylayer_lt))& G/ R* U9 _9 @' q* L8 L
- )
5 S$ k6 d/ }5 c, J ?# z - (if (= ecolor 256)/ i* g0 S' |0 b1 n' W
- (progn
" v3 Q- L" V$ k- n' C+ z' {, {+ ~ - (set_tile "t_color" (bylayer_col))* L5 a" V! R' i2 E
- (col_tile "show_image" cn nil)" P8 A# \; \( Q( G" s K# i; L! @
- )
1 a0 L2 u( ?. z - )
5 K5 M& r' a- A" q1 d - layname \" v+ r+ }) j
- )
7 D: e6 m) I& _/ H- d - elayer
- g# B `- e, L s9 } - )$ O# f6 [0 a; V8 Z4 c
- )' L _) D1 ~) K2 P3 w$ @
- ;;2 i2 x$ d* m/ o' D* g* n
- ;; Edit box selections end up here
; j# h% |7 v' \/ R2 y7 D - ;;0 q* t! [* h/ `
- (defun layedit_act (layvalue)
% H6 c% i1 h) l8 `/ {2 B6 I - ;; Convert layer entry to upper case. If layer name is
; a; |/ J8 Q. t - ;; valid, clear error string, call (laylist_act) function,9 Y9 k, g, w6 j& Z m, F
- ;; and change focus to list box. Else print error message.% E) n% Y S, a: E
- (setq layvalue (strcase layvalue))* L2 M3 w0 j7 m) U0 M0 V1 [ n: |
- (if (setq lay-idx (getindex layvalue laynmlst))
$ P5 `" t1 j3 Z8 @! F7 A- P - (progn% l. |! C" m5 L+ B
- (set_tile "error" "")
' {# e+ S- K& @: Y$ Y% {) a& _ - (laylist_act (itoa lay-idx))
1 x: n4 o; v0 d* r/ ?$ A - )
& ]3 d: E- u+ c) E - (progn& {" c5 g% N- u' s
- (set_tile "error" "Invalid layer name.")
) j& ~3 [ m' b5 c* ` - (setq lay-idx old-idx)8 H' r3 j$ Q% ~$ i4 R& H+ L3 X
- )# r6 @- ?& f; K: z
- )
T4 R' x7 C2 b) P3 U - )
$ A0 N- H& D* \; }' k/ d( ?- b/ l* b - ;;
- U& T* a1 o r - ;; List entry selections end up here
4 F" B* t5 _( p7 {: A3 @ - ;;1 F! ~( S: S5 e/ c* r( L
- (defun laylist_act (index / layinfo color dashdata)* L9 W; U& G j* `. q8 Z5 n$ L8 M c
- ;; Update the list box, edit box, and color tile
& O) m8 W! A; ~$ |, V( s0 i - (set_tile "error" "") d% |' o% x) a" F: `
- (setq lay-idx (atoi index))
( J% m H- w8 J X - (setq layname (nth lay-idx laynmlst))
: d; R- k; \7 p4 f K - (setq layinfo (tblsearch "layer" layname))
% G' K7 s) V/ q* h$ ? Y7 x - (if (= (logand (cdr (assoc 70 layinfo)) 4) 4). ^7 W+ ~7 |. l1 l) k# M) }2 I; f
- (set_tile "error" "Cannot change entity to locked layer.")
+ w7 j o: r0 Q$ ] - (progn
3 H$ C2 N( T; t- q& g5 E( V - (setq color (cdr (assoc 62 layinfo)))
l6 T6 j1 k m$ N- O0 a7 Y - (setq color (abs color))* u5 |; [6 v) ^4 r
- (setq colname (colorname color))$ ?& R! } u* O. S6 ]* v
- (set_tile "list_lay" (itoa lay-idx))
: i* y F2 Y9 { - (set_tile "edit_lay" layname)5 t% D+ W& k1 q7 Z
- (mode_tile "list_lay" 2)
4 o- g: a& }8 h: a3 V P - )8 ]6 G- l4 k- K0 e6 Y, u+ a
- )/ d4 c' t3 K1 @% w" K1 d* D
- )& W( |0 J2 M# ]" O: ~
- ;;9 j8 g- X' i% V9 g/ Z D" x
- ;; Reset to original layer when cancel is selected5 Q K" \/ ?; q$ w2 V/ ~
- ;;
1 H: M) e9 w* o - (defun reset-lay ()
8 {; Y3 o4 Y6 J2 U+ s - (setq lay-idx old-idx)
# [! o0 V3 g+ r8 @. [) O - (done_dialog 0)
( T: d9 o7 M4 f; k& O - )
3 Z F0 A3 A* c Z% b7 l - ;;+ \2 A* F R) ?. m. p9 X! k
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
/ ^; F# K. c/ q3 ]. B% _ - ;; string can't be converted to a real, this routine checks if the first
$ y* b$ y) U1 b* u* `4 k4 a - ;; character is "0". It also checks to see if the value equals "Varies".* T! {; A; G& v. v/ R ]7 g
- ;;
( f' I) @' w1 K5 D - (defun getthickness (value)
6 \9 b3 V3 K" G1 g - (setq value (strcase value))# ~& Z6 \5 `8 f( t0 s* W
- (if (or (= value "VARIES")
. j/ O4 ]' a, e- n2 C1 A - (distof value)
+ q( C7 e: y. a" H4 m* B, ~ - ); t. h. m0 g4 a5 Y) m
- (progn! H b( j9 Q7 K, ?' ]
- (set_tile "error" "")6 G6 W( J* m9 P/ Z
- (if (= value "VARIES")
8 P4 ^# x, ]$ o1 Q$ x% t - (progn
- v" u# B! S$ S% A' e5 o# O F% F$ h - (set_tile "eb_thickness" "Varies")6 \+ v6 a' N( f" C. s& p- n) J
- (setq ethickness nil)
# p" a' H+ j3 } - ); L% W, N+ Z) n3 H# s/ m
- (progn
: i2 d1 d9 k. S" }/ ], ^ - (setq ethickness (distof value))6 `6 D- o9 f4 z
- (set_tile "eb_thickness" (rtos ethickness))
: A+ E8 G- r) \ - ethickness5 ~6 [5 b$ c# f
- )- M- S$ d$ a) v+ z- I6 [, S( Z, q' u: L
- )
* a& ~6 X! b8 c - )
& b) ^: G! H; u/ V- g - (progn; y7 y, T; t1 | W1 {( A
- (set_tile "error" "Invalid thickness.")
4 A( S% S$ B' ]$ @" X% y - nil$ a) z7 I" P1 Y& t2 F# x
- )
' \: ^$ K* K9 H - )
+ ]" H0 W& B. h- J$ t! P - )) V# A! `8 P7 X, b& \2 ]
- ;;
1 b( L( l; P# T6 p0 S# P( f - ;; This function make a list called laynmlst which consists of all the layer - l n8 O* c' T1 L! S R7 t+ u
- ;; names in the drawing. It also creates a list called longlist which & G; h& ~* O4 J. n& ]+ l
- ;; consists of strings which contain the layer name, color, linetype, etc. * A( T3 A& M3 ~$ U9 G
- ;; Longlist is later mapped into the layer listbox. Both are ordered the
; B+ {. ?, y3 M - ;; same.
, G' N/ U1 O' O4 i, m2 Q - ;;
, ?* o1 [- R2 V" v - (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname X+ h) t0 L: G0 u% p( c0 M& ~# J9 i
- xdlist vpldata sortlist name templist bit-70, r# h+ H3 \2 c: S: _, R, ^
- )0 J! a2 X: ]4 `$ U: q
- (if (= (setq tilemode (getvar "tilemode")) 0)- x+ `% c! L% q( Y% O
- (progn% w6 K) g2 y: k) A& y, l
- (setq ss (ssget "x" (list (cons 0 "VIEWPORT")
3 G0 T2 [/ Z8 v' r - (cons 69 (getvar "CVPORT"))
" T3 L2 j0 e' x6 y9 T I+ X1 T - )4 r4 ]8 w4 X+ V2 s* S
- ). D- ^* ^8 \* {: g/ A
- )
# L3 k8 h7 [4 W - (setq cvpname (ssname ss 0))
; M* j8 h0 \, `0 @0 { - (setq xdlist (assoc -3 (entget cvpname '("acad"))))
" h' v4 \/ Q. I0 i - (setq vpldata (cdadr xdlist))
! w; I' d% t" p; p# F; N - )
% Q0 o. [5 a4 f8 ^; y9 E, f( b - )
% j) ~# a6 l* W; y+ l7 ^ - (setq sortlist nil)4 M' s$ H& t. h# }8 l
- (setq templist (tblnext "LAYER" T))
: d; z/ E7 r2 x" h9 }. X - (while templist
4 k5 y* r2 v4 z- H( k$ X+ K( Y - (setq name (cdr (assoc 2 templist)))- ]# s A( F2 n) U- u2 w
- (setq sortlist (cons name sortlist))
- o6 X- r5 T* S2 C1 Q - (setq templist (tblnext "LAYER"))/ j% M8 L( f1 ]8 `$ _; I
- )
- Y/ b5 h* F8 F$ `7 r% Z* [ P- P - (if (>= (getvar "maxsort") (length sortlist))
. i. _! Z4 q3 g. L( I4 m, d - (setq sortlist (acad_strlsort sortlist))' `/ G2 K, `) r1 b7 o6 f3 g1 z0 k
- (setq sortlist (reverse sortlist))
6 U% d! j7 Z' m: E* j4 z: r - )
) A& c8 Z/ c7 k% w - (setq laynmlst sortlist)$ G) S0 ~! W% l0 m0 {7 h4 G
- (setq longlist nil)( L; y. t- N- [1 ~. B+ K
- (setq layname (car sortlist))- t- z( B& m1 ~* @- j, M
- (while layname
+ v2 u* d0 ~# T) s* s4 ] - (setq laylist (tblsearch "LAYER" layname))
y3 l3 S1 T* h- Z - (setq color (cdr (assoc 62 laylist)))& ?* p7 T. T% g; q
- (if (minusp color)# q/ d" R, q0 [
- (setq onoff ".")- }0 N5 v4 a1 Z# W
- (setq onoff "On"), t/ P7 S5 ?- U$ r5 |- H- h& w* G
- )% D. w4 j( ~0 h2 f7 ~8 ?" m
- (setq color (abs color))2 B7 ]( d# \$ @; x) s
- (setq colname (colorname color)): ^& C3 i% ?1 y* U
- (setq bit-70 (cdr (assoc 70 laylist)))) Z7 G! R: d4 h1 ~2 U4 H. k
- (if (= (logand bit-70 1) 1)$ w _% G ^7 f, q
- (setq frozth "F" fchk laylist)8 n* ?& a, K. g$ z; V
- (setq frozth ".")$ a/ t, L5 n% f0 i- S. w$ v
- )( `+ ?: J: z) ? u5 U
- (if (= (logand bit-70 2) 2)6 y% T$ N+ Y3 F5 C( S9 t/ f e
- (setq vpn "N")% Y8 Y W0 q4 L% e: Z% h1 r- K* {
- (setq vpn ".")7 B3 E3 a2 m4 `( z. \( }
- )
# x& M# C, N# i - (if (= (logand bit-70 4) 4)
' n$ w2 c- |- ]6 R8 z- k - (setq lock "L")7 Z# m6 V+ h+ v) f' m* g
- (setq lock ".")
3 C7 m- e$ N4 o - )5 B1 M# }4 _) Z9 }6 {0 v+ F6 v
- (setq linetype (cdr (assoc 6 laylist)))+ N$ a& }5 q( `
- (setq layname (substr layname 1 31))
8 o) ?0 s3 N" z+ m0 W; }% i - (if (= tilemode 0)
% s% U K1 [. g$ A: } - (progn1 Y8 J* Y* a5 g# x H( S- r
- (if (member (cons 1003 layname) vpldata)( k* M+ s8 O; b' u
- (setq vpf "C")$ P, B" O# y. j* z
- (setq vpf ".")
0 x3 H# d0 N k+ h - )
) f- g) M k4 c) S6 [$ C - )
6 ?2 [ \2 c4 f, i# S! ? - (setq vpf ".")+ @8 a: t; f1 R
- )
* y1 n" N- ^6 c F - (setq ltabstr (strcat layname "\t"
% [5 K" v0 H9 }- W( O/ m9 I - onoff "\t"9 r* `6 Z' L% x6 W) e; e
- frozth "\t"
6 u. M' |* w) q - lock "\t"; L! Z' o* W7 d/ f
- vpf "\t"
% z: G* G) A4 r8 Z" |' ?7 d - vpn "\t"; ?, R! a- F" R! W1 T- L1 r2 e' |
- colname "\t"
9 p- }( Y+ p0 `3 {: U* S* V# r - linetype }3 g" B' K$ H, X x2 O; ]. B7 R
- )
* e! N9 n' @5 o- x1 X- Y. v1 C - )
; L, s" ^8 v0 Y$ u" U1 c0 G - (setq longlist (append longlist (list ltabstr)))* v' i9 O- k' U' r" E, ^
- (setq sortlist (cdr sortlist))+ X& w, z) I4 s/ J O
- (setq layname (car sortlist))
! c* g! e. E8 {5 `* ~5 H7 h) u - )
6 g4 F" C- G- D+ i) Z! b4 l! { - )
0 v& J* l! \0 m* O - ;;
5 l# x1 c$ n5 K - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of % T: Z: {; `9 w
- ;; linetype names read from the symbol table. Mdashlist is list consisting
1 n% t0 Y: ^0 X - ;; of lists which define the linetype pattern - numbers that indicate dots,
) n# Z+ U$ Q% U5 ]7 E6 v& U- e - ;; dashes, and spaces taken from group code 49. The list corresponds to the 1 ^+ ?+ }- u$ z
- ;; order of names in ltnmlst.
6 D1 P+ v; l( T3 k) h - ;;
2 F. M, g E+ m9 l - (defun makeltlists (/ ltlist ltname)6 R& p5 V7 V5 h% O) P* O* H2 V
- (setq mdashlist nil)
L6 `1 x/ a/ P. }* @, } - (setq ltlist (tblnext "LTYPE" T)): |; d' n& H, S" M
- (setq ltname (cdr (assoc 2 ltlist)))
/ ^, D! V6 F) g* P7 G' X - (setq ltnmlst (list ltname))
0 Z+ ~8 X, ^7 S/ h) U - + Z" K& e: o3 P) Z; R
- (if (= ltname "CONTINUOUS")& ]9 O' Z6 ]/ g
- (setq mdashlist (list "CONT"))5 q$ Q2 ~9 G/ I% w! R2 |
- (setq mdashlist : G. J# n/ y: z) I& @, h
- (append mdashlist (list (add-mdash ltlist)))+ K' q1 D) r! y, [6 V
- )) c" R0 p9 ^; g6 R) E
- )2 Y7 I) c, u' Z7 U1 X
- (while (setq ltlist (tblnext "LTYPE")); C0 o1 X& P9 u3 x
- (setq ltname (cdr (assoc 2 ltlist)))
8 d; o" [; M! z" b - (setq ltnmlst (append ltnmlst (list ltname)))
* } e& P9 q. w( I* I- F - (setq mdashlist 2 }& L$ Z( e* x" @
- (append mdashlist (list (add-mdash ltlist)))
1 a, `$ ~7 r6 G! } - )
6 j M8 V- M$ b' k - )$ ~) L+ n. R' o. I9 r, z: W0 F
- (setq ltnmlst (cons "BYBLOCK" ltnmlst)), }6 q' G/ P. ?4 i! ^5 P
- (setq mdashlist (cons nil mdashlist))8 R) W0 H8 k% D7 N, Z9 f8 q4 \5 S, d' \
- (setq ltnmlst (cons "BYLAYER" ltnmlst))# [+ ~* H( j2 g+ A
- (setq mdashlist (cons nil mdashlist))# \0 y& P$ H, ?
- )
( N. O L, {% A2 C% ~8 \ - ;;% k1 p2 i- `, G/ w- @
- ;; Get all the group code 49 values for a linetype and put them in a list * R, y) l3 [" I9 R* |
- ;; (pen-up, pen-down info)
, m. N' e6 }1 v7 N% n6 d - ;;6 ~- W1 g: A9 T( N+ h# S
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize). a$ B: \ E7 S: e! J
- (setq dashlist nil)
# s6 a+ @/ O! k - (while (setq assoclist (car ltlist1))0 m3 V4 T5 e$ p# x
- (if (= (car assoclist) 49)
( w. d, b8 o" C0 H' z) ] - (progn ~$ D1 \- o, h8 @6 I
- (setq dashsize (cdr assoclist))
1 [/ x, ~0 B+ o) H! Z2 w- X - (setq dashlist (cons dashsize dashlist))% D2 b3 ?% Q2 e3 o2 N: r
- )& X+ o" W, K5 O, p; l+ F
- )% _3 z- {; H7 ]! i" c+ P+ ^9 s; P
- (setq ltlist1 (cdr ltlist1))
$ I% ]$ G! N- Y4 s! x9 J - )
- T% L& E! B& ?+ T3 d - (setq dashlist (reverse dashlist))% v" P! y: W6 }3 U
- )1 s5 n# w! }' h" S: [; f
- ;;
w- \: f0 E5 ~" ? - ;; Color a tile, draw linetype, and draw a border around it9 v' h6 `$ h1 |' C
- ;;
4 w3 K# z9 g: }+ U: g - (defun col_tile (tile color patlist / x y)
0 j. ^/ H6 {- A0 h8 y. S4 F. [ - (setq x (dimx_tile tile))
8 L) Q: F7 G x* } - (setq y (dimy_tile tile))1 ]7 o0 P2 [0 r1 ]" c3 [4 c) V
- (start_image tile)
8 U8 G7 m* j R - (fill_image 0 0 x y color)
[0 q5 H% G) ?' z" ^ - (if (= color 7)
" b, \7 v; X* X - (progn8 P' z% E. L6 w: m( t9 m
- (if patlist (drawpattern x (/ y 2) patlist 0))
" i/ j$ [5 }8 _+ d - (tile_rect 0 0 x y 0)7 i+ U' q( f1 n
- )2 U9 T$ S& e& c; S5 k; Q
- (progn: f: G0 v# z! J( q. w. R
- (if patlist (drawpattern x (/ y 2) patlist 7))0 x% Q' x" `( R9 R
- (tile_rect 0 0 x y 7)% f; }7 z7 I" z9 {
- ). c6 A$ n( V6 j( z# {
- )
* M4 M) I' V- w0 Q( t3 P - (end_image)
9 }% c$ A* k' H' l$ g - )
$ ~# y3 _/ |% J/ } q, k - ;;
+ `- D7 n0 k) r/ Q - ;; Draw a border around a tile0 n3 ?8 r7 Z8 U' h) A7 O7 w6 P
- ;;
9 s9 ~+ R5 C* p* j- |' I" |& u - (defun tile_rect (x1 y1 x2 y2 color)
* m1 @1 ` k: o! v - (setq x2 (- x2 1))- I& `: U) ~) H
- (setq y2 (- y2 1))
! o1 I$ Q! Z. q& y8 N - (vector_image x1 y1 x2 y1 color)
2 E# R `& z& i0 _7 O - (vector_image x2 y1 x2 y2 color)
9 b5 u/ O+ q1 l$ n$ [) T - (vector_image x2 y2 x1 y2 color)( f- p3 A% u* V2 |
- (vector_image x1 y2 x1 y1 color)/ D4 p8 _ _# f3 B1 v6 k9 r
- )' i/ _& L% P: H
- ;;8 A, o) {3 t* I) i- q
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
: H! C1 U# o9 L - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a 9 k" d1 Y7 a) i# P7 }1 x0 }1 e# @
- ;; list of numbers that define the linetype, and color is the color of the
0 T4 j, _ t1 k7 x - ;; tile.
4 o8 g/ O! O6 V - ;;
0 ?. e. b! \6 n! s* _ - (defun drawpattern (boxlength y2 pattern color / x1 x2
! L- W) O" _8 n# g% H' r - patlist dash)% V6 } j; t7 |- u
- (setq x1 0 x2 0), l1 L4 R4 M* w
- (setq patlist pattern)
* ~/ j" v& A. l& {8 X* w - (if (= patlist "CONT")" N4 `. L, k5 H& G4 _
- (progn
4 E+ ]% q) H3 i) v3 @ - (setq dash boxlength)7 }( T& r+ I' X9 N J
- (vi)
+ M5 K5 t$ k0 u2 {. Y1 G* q9 Z - (setq x1 boxlength)+ F& I: }% b+ E% K* \
- )
8 d3 {* Y) Z: @3 d - )5 k6 R( Z5 X$ }2 i
- (while (< x1 boxlength)
# ]0 k" ]: y r$ u( G - (if (setq dash (car patlist))
6 D3 L. _! F/ j8 v - (progn9 Q& @" P" S: x. `# z) w @2 {
- (setq dash (fix (* 30 dash)))
; q( n3 L4 b; C - (cond ; e" J9 z: @& O' O1 l& _. f* Q
- ((= dash 0) 5 ]! Z4 x. ^6 m; C% m6 F
- (setq dash 1)
F s- o; O- U+ b. [ - (vi)3 e& l4 Q! F+ z. Q; P
- )
$ a$ |% t+ o! p9 Q% K - ((> dash 0)
! J7 |" U4 E5 I7 u* a' I - (vi)
) }5 Z8 J4 G$ f* [ - )3 ?/ d3 ~4 f6 w. C6 N0 x. o/ T
- (T
- {. x, D! E6 a8 K( [6 A - (if (< (abs dash) 2) (setq dash 2))' D" v* ?4 I6 m' P2 j0 U2 u/ j
- (setq x2 (+ x2 (abs dash)))* M# \2 P& K8 W! e6 e& x4 {# R6 C
- )* r: ^! G4 v! ]7 P
- )8 o1 B2 z, p W9 E4 q, ?" [# J3 l
- (setq patlist (cdr patlist))* t$ ?' L: n W, I: \2 y: m" j
- (setq x1 x2)
- @! N: {4 z" ] K) M0 Y3 G. ^ - )
u& |: O7 z d2 e - (setq patlist pattern)
% [( s/ s3 c3 r: z9 ~( z5 y' J - )
! {; s+ e$ U. }* i& O" B - )
# X3 w/ N6 e0 d/ g, K - )
5 |; o. q+ z0 b+ i M$ A( c, [6 u - ;;
' Y- F N. y# F - ;; Draw a dash or dot in image tile
5 h0 O3 Q# K! D( T: [% Q" [ - ;;. o: t' @) t' X3 Q6 Z: z8 a2 W
- (defun vi ()/ w3 F& [/ [6 r( |( [: G7 I
- (setq x2 (+ x2 dash))# c7 |" i6 }* _' J/ Y
- (vector_image x1 y2 x2 y2 color)# B( U2 `* t* v' j5 I
- )* H+ c( B' J. g
- ;;
' E( A. f+ G) x+ Y! G& z - ;; This function takes a selection and returns a list of the color, linetype, ! S7 w- s1 S k
- ;; layer, and thickness properties that are common to every entities in the9 y8 j' Q7 p. c5 E) d- U3 U0 Z
- ;; selection set - (color linetype layer thickness). If all entities do not 4 O- s! z+ Z1 I$ P1 M* I
- ;; share the same property value it returns "Varies" in place of the : n0 s5 Z. z3 a" p' I
- ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0); |( ]' `5 L8 ]4 X6 R4 h* B3 u
- ;;* X% h) p* o/ E1 U
- (defun getprops (selset / sslen elist color ltype layer
# o+ `3 a w& d - thickness go chk-col chk-lt chk-lay chk-th ctr)
. p2 {4 j6 g/ F - (setq sslen (sslength selset))" y, L# S4 ^; P, ?
- (setq elist (entget (ssname selset 0)))
# ]; L* u6 K) l/ I0 ` - (setq color (cdr (assoc 62 elist)))% m" R. ]& p# P) k' a6 v, q
- (if (not color) (setq color 256))
0 R5 |1 o6 Q8 r$ e - (setq ltype (cdr (assoc 6 elist)))
: j' a+ A% P: y. L - (if (not ltype) (setq ltype "BYLAYER"))) H( r. R$ b. l& V1 f$ h( V8 ]9 d
- (setq layer (cdr (assoc 8 elist)))! @: k# n5 p: G" P9 V; R
- (setq thickness (cdr (assoc 39 elist)))
8 m6 _2 ~; _: a' H - (if (not thickness) (setq thickness 0))
, W$ B( s$ Z- V4 t8 d/ N) c - (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)
7 l' V& P0 Z! O2 V [ - ; l8 j+ ^- k$ V: A% ?+ Z& E% e
- ;; Page through the selection set. When a property
4 G7 P# z8 \" n. b! X$ _% } - ;; does not match, stop checking for that property.
. t" X8 ?- [0 ]$ ^# ^ - ;; If all properties vary, stop paging.9 v# \5 z: f- q; t6 _$ |
- \1 m+ A! j9 J/ ?0 P
- (while (and (> sslen ctr) go)# ^- C* J! Y( k( w# p' |/ b
- (setq elist (entget (setq en (ssname selset ctr))))
- }5 z1 n! C! s - (if chk-col (match-col))# `, o+ ]) a' b
- (if chk-lt (match-lt))) x/ ?) U% @: k+ b! D# I0 |
- (if chk-lay (match-lay))! H' q1 s6 h) C4 j( f1 c9 ~
- (if chk-th (match-th))
2 \/ |8 g" |% A6 ?1 ?. h, f v - (setq ctr (1+ ctr)). V; l5 e/ u4 `/ E% V+ k) M5 g
- (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th))
( n/ K2 O7 H" a/ Z$ j - (setq go nil)
7 M1 R+ Y+ J+ @. C- L3 B" M1 j) F - )
; ?0 u5 c0 {3 D9 W3 ~& r( ]$ A - )! n4 \, r. W& [. n' W
- (list color ltype layer thickness)
$ I) E, v. R3 M4 L9 @4 F/ K' U, | - )
! O. U- ]6 s7 ]+ Q, z# R# p7 U - $ s3 d, c/ Z+ R, v% ?7 C# v. C# x/ D# E
- (defun match-col (/ ncolor)3 ~6 A6 |1 p; P
- (setq ncolor (cdr (assoc 62 elist)))/ G" z; T, F- v
- (if (not ncolor) (setq ncolor 256))
) j% f/ Y! r1 M1 m6 p# @' _ - (if (/= color ncolor)
; B- i& W- @3 x1 {, |+ D - (progn
: ]3 V- ^ N) \2 D5 u - (setq chk-col nil)
- V L/ I% }3 J* j: S" ^ - (setq color nil)! D/ S* Z! ?5 K+ E+ v4 c5 e
- )
9 M5 N% O! Z; x S6 w$ M" [ - )
/ K& [/ u; E4 p' M4 `% o - )
7 G* `3 O% h( s+ I, ?0 [ f
" R- k( a2 s e" q- (defun match-lt (/ nltype)" C3 x* D& S0 m4 _- E/ ~7 A# N, |
- (setq nltype (cdr (assoc 6 elist)))& x# B* S" m8 w7 N
- (if (not nltype) (setq nltype "BYLAYER"))# f3 M, x' M! [$ K5 h4 }
- (if (/= ltype nltype)
% R1 ^2 _' [( Y: w8 g - (progn
' b4 T2 {) G1 C4 A t - (setq chk-lt nil)8 d, E# E5 P4 N
- (setq ltype "Varies")
0 p+ P. R# N, w2 P' H- q* I - )
" @ b i, V! k4 \ - )
( o- ~" ]% A1 c4 ]: @ - )
3 P+ J8 N" Q: x
. l# H" c4 c. Z- |. ]0 W9 d4 j) I- (defun match-lay (/ nlayer)2 J l: k3 S: Z
- (setq nlayer (cdr (assoc 8 elist))). k% {& t2 L0 a* k' B3 t
- (if (/= layer nlayer)9 {. ^$ \1 Z! j6 U( J$ G; ?- x# k, q
- (progn
7 }9 J9 w! z4 Z, b9 o/ c' k - (setq chk-lay nil)
+ A( I. X' d# h z - (setq layer "Varies")
" q, l2 Z) H; d! x- b0 M& f - )" O- ?3 Y$ z7 `" |3 ^
- )
% E0 w5 S+ l. S' j0 s - )6 |' W" `! [4 q: G- C, l
- / d# D- j5 r5 {' n
- (defun match-th (/ nthickness)8 }& z1 e6 I/ S' `, ~
- (setq nthickness (cdr (assoc 39 elist)))
" i1 b# F$ `8 C0 r" H2 o# v - (if (not nthickness) (setq nthickness 0))5 I/ J9 K3 b& E4 i7 Z/ l* U
- (if (/= thickness nthickness)
& |3 q3 R4 N6 H/ g2 r) u - (progn
+ A' S$ \/ @0 H0 B1 p9 m+ j - (setq chk-th nil)* {8 J( [6 [* ?% G" c: w* P7 s
- (setq thickness "Varies")& N1 b3 @' U' n3 v! P
- )
6 n+ J- Z8 I7 J) F - ); s, N R' h3 o' y$ P* o% [
- )9 p U* W! G, |" f6 X' {
# ]1 P" J9 n0 m0 ?" B- ;;
' ]8 a' n: l+ H1 R$ ` N - ;; If an item is a member of the list, then return its index number, else
4 b3 s: _, X; D" s - ;; return nil.1 a$ s' g2 ?) H) `0 G0 y
- ;;
$ Y. Y& U" I1 i& O' T+ R; k- | - (defun getindex (item itemlist / m n)( u& a5 A: C5 [* L7 p
- (setq n (length itemlist))6 l% ^; ?2 A0 @3 o
- (if (> (setq m (length (member item itemlist))) 0)4 u, O4 N4 m/ I- V% L; a$ x: I
- (- n m)
; S, a5 W. f% W. @- f0 | - nil
8 B6 F& M- a r7 K2 \8 h - )
Y4 |) O' p. `0 y) G% { - )0 H: T3 \/ t! I9 L6 ]' T$ O. A
- ;;
. J' a B( s6 e% B - ;; This function is called if the linetype is set "BYLAYER". It finds the ) l+ [* s }% E
- ;; ltype of the layer so it can be displayed beside the linetype button.
5 M$ Y3 e& ]/ _ - ;; G* F% _3 a* ~% D2 v. \/ R3 |2 I
- (defun bylayer_lt (/ layname layinfo ltype)% r$ S5 L3 F9 Z. g6 u1 {. X
- (if lay-idx: D1 W# m* h& |# Y2 U4 ~0 A
- (progn4 Y- F- O, P) E9 z- E" o% ^
- (setq layname (nth lay-idx laynmlst))
% S( O: P! z, ^' u' ?. \ - (setq layinfo (tblsearch "layer" layname)) o1 B2 Y z/ z
- (setq ltype (cdr (assoc 6 layinfo)))+ C& ]. P$ Y2 u& I' ~3 n0 N# A
- (strcat "BYLAYER (" ltype ")")
1 y$ N' \2 q- L! N) }( P% C - )
! S7 J' e1 N/ E! T" Y6 p - "BYLAYER"0 B+ D0 c A1 n6 _9 W! Y. V
- )
" @; ~) I5 A: k X5 v - )
* F# a& J* G8 V* y - ;;- q( {- P$ {5 R( j x- H
- ;; This function is called if the color is set "BYLAYER". It finds the
4 h5 N* e {: m' T9 O: k - ;; color of the layer so it can be displayed beside the color button.
( Y" v% v3 ?, `* u, U5 w o/ H+ ^ - ;;1 Z( d" o: n% w0 w( e/ u" E
- (defun bylayer_col (/ layname layinfo color)
; _: x4 D7 |) `7 x3 w2 S1 | - (if lay-idx
* w i5 N0 F) E/ v/ L7 l- g - (progn5 H$ u$ Q3 H5 k, |" i1 n
- (setq layname (nth lay-idx laynmlst))
3 j. y* P- Q% E+ o' C9 p5 A/ v - (setq layinfo (tblsearch "layer" layname))
% ~$ e& i, ~+ C/ J1 }4 E7 @, T - (setq color (abs (cdr (assoc 62 layinfo))))* `7 _) d2 k, w& c$ W9 f
- (setq cn color)8 P+ B8 m6 v# a+ p
- (strcat "BYLAYER (" (colorname color) ")")0 n( V' O! M5 S9 H6 q. Q
- )
% }& e! g; I' L2 { - (progn' o" k7 g9 _, p- {, M# y
- (setq cn 0)
3 d0 j# |0 H" ?& ?( Y8 @8 I5 t - "BYLAYER"2 w" o; Y- J8 W, J- q3 g% l( j
- )
( E4 }& o2 H' k& L* N - )
& D. L3 x& N+ ?7 ~2 \% S$ k - )! t" V5 L+ ?& q
- ;;6 u) N( q; V; t2 h" s% F
- ;; If there is no error message, then close the dialogue e' f; c- d6 ?7 I0 v8 B
- ;;4 `% s- _7 F) d, Q* |9 y: ?
- ;; If there is an error message, then set focus to the tile8 K& ~0 V/ a3 \( T' x
- ;; that's associated with the error message.
7 W9 G' [% t6 ?6 V - ;;
! U. V$ V; M6 @: ]$ g2 V - (defun test-ok ( / errtile)
2 H, g5 U% e2 l/ Y# Y7 y - (setq errtile (get_tile "error"))
9 s; v3 \+ N/ H6 ] t" d1 K - (cond
! I2 z$ R4 e# C0 F1 R3 C1 X" v5 Y) c - ( (= errtile "")$ V' C$ R: q: H! L1 A; E
- (done_dialog 1))
% r% _% K; a2 g L, b5 l; q" x - ( (= errtile "Invalid thickness.")0 W: T1 n' g) T. C4 ~$ }
- (mode_tile "eb_thickness" 2))# Z2 a. N* _- b8 ~ R# e T
- )
) k* h5 o! S- r* H7 A J - )
0 w3 B: K7 N2 x/ C( y4 L - ;;, B6 @- \8 d( \. J: I
- ;; A color function used by getlayer.2 q2 P- }( |4 l% Y
- ;;
7 x! D! K7 z$ B H. {. r4 w - (defun colorname (colnum)
# e4 E a+ I) Z X - (setq cn (abs colnum))
\; F/ F3 M. p# y# o# ^$ {, E - (cond ((= cn 1) "red")' a& R) l3 {$ N" p2 L$ G) h. \
- ((= cn 2) "yellow")
- Z" g. d5 `1 N1 i$ Y9 p - ((= cn 3) "green")9 Q9 g$ V( `( g, R
- ((= cn 4) "cyan")
# {+ ~. P0 Y% _* \3 E2 o! E9 w4 n& L - ((= cn 5) "blue")8 _5 N6 X/ K' ]3 T' g
- ((= cn 6) "magenta")2 S' c7 [) h' l) i$ s4 v3 J5 A
- ((= cn 7) "white")" a' g8 A* J5 h" \) g
- (T (itoa cn))0 g# L+ v0 g# p! S$ i# e2 C
- )
$ U" |: ^) ?. s4 a* h( a - )- ]. u# J E0 \
- / T8 W" X9 t! l+ P6 D2 b
- ;;; Construct layer and ltype lists and initialize all2 U9 q7 x6 M; t, i+ g/ _' Z- ^
- ;;; program variables: s y/ l j8 j2 W# [0 W
- . i" @8 w- B5 o9 ?
- (makelaylists) ; layer list - laynmlst6 P. u5 f* v- L7 v9 t
- (makeltlists) ; linetype lists - ltnmlst, mdashlist3 v2 b( i1 X% H- A
- ;; Find the property values of the selection set.& f/ v! J! o5 P' {; [3 H9 V" {
- ;; (getprops ss) returns a list of properties from" I, S; `+ E6 k2 V
- ;; a selection set - (color ltype layer thickness).9 N) r: ]7 _6 y' @1 h8 I2 J: x. }! a
- (setq proplist (getprops ss)): u7 D! V! C: ^6 T9 G% A& s& A- V
- (setq ecolor (car proplist))
. D! b7 N* C7 z - (setq eltype (cadr proplist))
. I3 l4 {; D) Y! g - (setq elayer (caddr proplist))
3 V/ F8 S, t8 I" | - (setq ethickness (cadddr proplist))
, u3 e' ^, E/ |4 |4 K - ;; Find index of linetype, and layer lists
; R$ o$ q. H* f) x0 {! u5 ~ - (cond
, c5 h" Y6 \( I' o - ((= eltype "Varies") (setq lt-idx nil))
D$ a0 d. j2 \/ L0 U - ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))
0 H. ~. b) S& p - ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst)))) R, ~: W% R0 w* Z
- (T (setq lt-idx (getindex eltype ltnmlst)))8 ~0 n8 `- t. |* u7 S' |
- ). g4 F# V s* v {* h% o
- (if (= elayer "Varies"), U4 b o- S" H$ ?) z, D
- (setq lay-idx nil); y1 E7 m3 q; R1 m
- (setq lay-idx (getindex elayer laynmlst))
# A. x3 ]5 I" k( y f - )' R- d7 ^' ^9 o, j% q
- (if (= ethickness "Varies")
* U9 w) U- y Z8 V3 k - (setq ethickness nil)2 D$ r' f( m$ r5 u+ u( Y# Z/ A C+ e
- )
: {) G( V/ \7 Q! p9 H6 U - 6 }( f! d# r% M
- ) ; end (ddchprop_init)
+ D( t+ d+ ?* `; ] - 7 y1 L, D+ I* q7 j7 j
- ;;; (ddchprop_select)
/ e) y0 ^% z: `% ?& M9 a" Y - ;;;
8 p/ B6 L& p& o k5 c* h - ;;; Aquires selection set for DDCHPROP, in one of three ways: |: o: j. N% p
- ;;;' ~$ C' C7 p t; }6 D7 z
- ;;; 1 - Autoselected.. {" u/ v G" ?4 U. j8 Y
- ;;; 2 - Prompted for.: H3 P8 @+ ?9 G
- ;;; 3 - Passed as an argument in a call to (ddchprop <ss> )
+ S" ]- _2 L* t - ;;;4 w" @; h" {' W* x
- ;;; The (ddchprop_select) function also sets the value of the0 w( v. O4 y& _; a5 ?& }
- ;;; global symbol AI_SELTYPE to one of the above three values to P9 v' D3 l3 z, W- V' O; y
- ;;; indicate the method thru which the entity was aquired.( J, A" o$ }! }0 ]4 v7 E
5 i" t V" f, b# x! F. X; I- $ a8 v3 X* I L5 t, j
- (defun ddchprop_select () v, ~; f2 z$ i& z( }' y! D
- (cond
; k3 w1 H) g8 k: J* a" e3 ~4 g - ( (and ss (eq (type ss) 'pickset)) ; selection set passed to
+ V3 S0 S. U( f4 h7 d - (cond ; (ddchprop) as argument
/ k9 I5 ]5 K. y6 j - ( (not (zerop (sslength ss))) ; If not empty, then
m% S) S2 Q' {6 n( F& o% L/ t - (setq ai_seltype 3) ; then return pickset.
% \! Z1 |" v$ J& p - (ai_return ss))))
: y* K4 u$ V+ ]' _4 Q( _, F. N
$ V* \7 C% o' N# Z7 B% X- ( (ai_aselect)) ; Use current selection6 X; S/ D# Y4 T3 \6 @6 E
- ; set or prompt for objects
+ L! E- w) R' I J: N) u. v: { - 2 }$ L9 B4 y+ u8 _
- (t (princ "\nNothing selected.")
) B* _; m) x/ E- ] - (ai_return nil))
/ Z* l" C9 F# C) @/ A& q7 T) j - )
5 [ `+ R, ~; }0 }3 N: y - )& N0 p* E4 f5 h# V% ]. l
- I- i8 ?, f+ K8 Z; p- ;;; Define command function.
9 n/ t* {( G- c. m - 8 p# @* n$ v; |9 C/ q( J( f
- (defun C:CH ()
( ?1 Y3 c% e- s - (ddchprop nil)/ b! d/ {* o) ^' v
- (princ)
# B9 B0 N% d# K% m/ X" ^4 |/ a - )
c7 N: H! Y- ^9 Y* z* {8 L$ Z
$ \- q/ F4 e( W0 a$ D# T0 S" m: f- . w7 }+ d; v7 o( E9 y# w' F( R
- ;;; Main program function - callable as a subroutine.$ ]1 q7 D: T5 A6 i# X. e2 b4 r
- ;;;
- U& G; P& g, Z% }* M - ;;; (ddchprop <pickset> )
. H4 o; H3 G v. v$ }3 J - ;;;
9 f. R1 A( Q a3 ~+ S) u& K - ;;; <pickset> is the selection set of objects to be changed.4 |) m1 g6 V0 M; Q
- ;;;9 h7 v) A4 `' j) O8 s% w$ @
- ;;; If <pickset> is nil, then the current selection set is
B1 [% @4 Z" s. w) F- s0 @/ q - ;;; aquired, if one exists. Otherwise, the user is prompted! s' U" Q: R' J3 v e
- ;;; to select the objects to be changed.) n- y3 [. Y0 ^7 z# [9 B D
- ;;;0 U- m1 J6 a8 F6 i: y, m* k/ s
- ;;; Before (ddchprop) can be called as a subroutine, it must- H# O. g4 [$ ?. X
- ;;; be loaded first. It is up to the calling application to0 D. `3 T: [! B' \, @
- ;;; first determine this, and load it if necessary.
( T0 Y4 ]! s2 \
3 `! a7 I2 h( u: i9 i- (defun ddchprop (ss /
! T+ @3 G. z9 O! _% A* Y1 V: a - : g) U4 {% c7 p; L
- add-mdash ecolor ltedit_act s' W+ b3 w; t# K: a' S9 k4 y
- assoclist elayer ltidx selset
+ V j# y; j: k - bit-70 elist ltlist set_col_tile
4 F F t$ [; ? - boxlength eltype ltlist1
; F5 E$ }$ ^3 s: e - bylayer-lt en ltlist_act sortlist
; e: Y$ O. y$ L! ]) p - bylayer_col ethickness ltname: u# {" y8 f7 F1 A
- bylayer_lt fchk ltnmlst sslen. r5 Q R% R2 ]
- call_chp frozth ltvalue templist
1 ^ \/ B8 {" K6 c - chk-col getcolor ltype temp_color
+ n. m5 w& J! Z, ^( B& a$ h - chk-lay getindex m test-ok
& C; v7 _6 P% b - chk-lt getlayer makelaylists testidx
3 ?0 ~4 G4 H0 h1 `; p) c4 x - chk-th getltype makeltlists testlay
5 J# Y" D% G! G1 a- A8 m - cmd getprops match-col th-value
6 O! _2 m/ B. J7 _1 D - cmdecho getthickness match-in thickness5 ?, e- Z* \0 R9 X6 f
- cn globals match-lay tile' f$ B* N: c- ^ q* n' q" @
- cnum go match-lt tilemode' u) V/ ~2 Q! D& h x/ A! e$ ?/ b
- col-idx index match-th tile_rect2 b( ~" \" Q! e8 s) L0 t
- colname item match_col vi
- x3 l( Q8 e+ |& k: W+ H - colnum item1 mdashlist vpf( T2 S& r$ s0 X- T/ w1 _1 v* \
- color item2 n vpldata2 t- I( r' s! l3 V% m" U5 C* O
- colorname itemlist name vpn
- y \9 T% C- ~3 E% S - col_def lay-idx ncolor x
: r% k; y% ^" b# n( t! ? C8 }. M Q# L - col_tile layedit_act nlayer x18 I6 z( F7 i4 s3 M
- ctr layer nltype x2
' I" D" L* ~7 {4 J( t) E - cvpname layinfo nthickness xdlist! E& @" ^! ]$ |& ^, b3 [ N
- dash laylist off y3 y3 |3 q, c2 M+ Y5 ]
- dashdata laylist_act old-idx y10 F, @+ ^" \% L5 J9 U
- dashlist layname olderr y2
+ X9 C) Y W5 W5 {8 k4 G - dashsize laynmlst on undo_init; I S4 l/ X3 `9 N& \6 q
- dcl_id layvalue onoff
9 y* Q! s! @$ h, I - linetype patlist
4 ~7 E( |' R5 L ]. r - ddchprop-err list1 pattern' }, p+ w Q G5 A( \: Y/ U4 @
- longlist proplist
9 }+ c' l3 Y; H9 f v, I - lt-idx reset-lay
& C& q4 |$ ]7 w4 e* H- h7 ^5 ^7 g - drawpattern ltabstr reset-lt
! k9 m+ M5 k! D - )
0 b, i: j, `& o' C* n( p - % j% O5 M- T/ d
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho+ f9 b x8 M, V( R" x' S- a
- old_error *error* ; save current error function
( Z# D% e) S9 [. U* f2 v5 O - *error* ai_error ; new error function
( V" d) o- z- ~/ I0 Q7 M0 D - )' U* G) }/ j& Q) h
- $ Q2 {! g7 }# j; x1 H8 u! _
- (setvar "cmdecho" 0)( _# E* Z) E0 I( l; ^0 y
" `/ U- A8 o4 U- (cond& h1 P4 @3 y% l
- ( (not (ai_notrans))) ; Not transparent?
1 ~4 x. R& Y! M7 H% i - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
; F% K) ` V! s. z( d1 n: { - ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?
. M M+ D0 ~! G9 a# z& T - ( (not (setq ss (ddchprop_select)))) ; objects to modify?
C& c9 K5 u4 s9 t. y' T* k - $ H( {. Q8 H! D' E8 F" G
- (t (ai_undo_push)) L. O; Q' O# ~) K
- (ddchprop_init) ; Everything's cool, r) H/ A$ t, l9 O1 k! L% Q
- (call_chp) ; so proceed!
; T' e" s! s$ N9 ?2 h: ^( l. U& x - (ai_undo_pop)" Q9 [8 C, k. V+ z) C W }, s
- )
9 q% d \0 ^: d2 P - )
2 e# A. f: K, _" L1 d6 ~- O9 a z - 1 d3 e( O7 a N( w
- (setq *error* old_error) ) Z' ~. i; x7 W5 O8 e
- (setvar "cmdecho" old_cmd), N& j( y( L# I. h5 D
- (princ) \4 ~. b7 P& A: D5 ~, E
- )
: a( C" `0 a% J+ Q& J
9 H2 n l" K, G- ;;;----------------------------------------------------------------------------
) z' i9 o) w9 C, K* `/ ^
) [% u/ L9 L/ j0 h6 s- (princ " DDCHPROP loaded.")( n# ]4 c: v$ ^, s7 x) c @
- (princ)6 r9 F* [3 E3 e0 Q. a
% T$ o% t( S9 o7 o9 f1 z- ;;;----------------------------------------------------------------------------
2 p( m7 O D7 Y+ X' R; S6 J
, A. G: ]% v5 B4 I* \" c( r- ;--------------------------------ddmodify.lsp----------------------------------% R' V1 w" ^1 b) f
- ; Next available MSG number is 111! z' w& c( ~$ X- e
- ; MODULE_ID DDMODIFY_LSP_
8 M2 j0 P& ~ Z8 H* U - ;;;----------------------------------------------------------------------------* k) _) |; a5 Z
- ;;; DDMODIFY.LSP
/ T) A! i+ t) G1 I4 N6 @4 U - ;;;2 L* `- C- A& T8 i; t/ ]
- ;;; Copyright 1997 by Autodesk, Inc." |# H# x. g8 X0 h0 E* p
- ;;;
+ Y! ~1 X |2 E2 _ - ;;; Permission to use, copy, modify, and distribute this software( i8 j0 v- |2 z! k: S
- ;;; for any purpose and without fee is hereby granted, provided
8 T9 V9 w8 ^5 v - ;;; that the above copyright notice appears in all copies and
; k, s3 R7 u9 _" r - ;;; that both that copyright notice and the limited warranty and) S- N+ J- i" e' D' A
- ;;; restricted rights notice below appear in all supporting
. ]: f9 {7 W6 m) w7 M - ;;; documentation.& d* z' G$ _9 n1 f
- ;;;
2 r c; T5 H" j+ j5 \5 N3 h( p& j - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
& f5 m! K2 C! K% u. v - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF6 x4 ?+ r8 H+ @0 s9 S
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.6 R# a" R2 z4 M6 |3 ~5 s& S
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE: l+ I, R# @4 B1 n5 R+ M4 ]. R1 v, {
- ;;; UNINTERRUPTED OR ERROR FREE." Q( P3 y, @0 _5 O
- ;;;
& s: w- ], H) A - ;;; Use, duplication, or disclosure by the U.S. Government is subject to2 z& K7 Q: u! z1 O# M w9 Y! u
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
+ [- J6 I% b5 z8 q8 p - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)8 I) z( e1 h3 G1 O) H* ~
- ;;; (Rights in Technical Data and Computer Software), as applicable.. @$ m5 a' j" z$ \
- ;;;( p e* w6 D1 {
- ;;;.
8 {( B& F. A% ^- F1 @ - ;;;
8 l* u9 \% j/ r6 b/ o. Q - ;;;----------------------------------------------------------------------------
4 Y+ E, c7 L7 q' c$ K6 a - ;;; DESCRIPTION
4 g9 U/ l6 M. Z2 a) R2 h0 w2 a - ;;;
( U% U( w9 t( J3 V - ;;; This function allows the user to get a listing comparable to the LIST6 t, P4 J7 r: \3 C: c3 G' c5 b
- ;;; command for most objects. In addition, most object fields in the9 Q& b% @0 P; t, h* t
- ;;; dialogue box are editable. Points can be specified dynamically by" _" t3 L" Y) S
- ;;; temporarily dismissing the dialogue box. Each object has a unique6 l8 z* S y' R2 T; @ d
- ;;; dialogue. H5 L* I! n1 X4 q' V3 R
- ;;;
$ c* F* p& e6 W l - ;;; Naming conventions
y% i8 N7 B. m0 y B - ;;; Long function and widget names may use an underscore "_"; h T( B. W' e2 A
- ;;; in their names to make them easier to read, long variable
% A* j2 t# S2 W - ;;; names use a dash "-".! m2 e- C+ P4 A- K5 H+ ^# t6 R
- ;;;----------------------------------------------------------------------------
' Y" _6 k3 ^: c. W; R - ;;;----------------------------------------------------------------------------7 u+ S. c! i0 g1 I( m( Z
- ;;; Prefixes in command and keyword strings:
& s5 ?/ u& q- _7 A A2 g - ;;; "." specifies the built-in AutoCAD command in case it has been
8 O* F }$ Z6 R& M9 S1 [* t. ^+ U. B0 U - ;;; redefined.4 [: a9 D7 r) k# e5 Q& b
- ;;; "_" denotes an AutoCAD command or keyword in the native language6 {3 W. T* d+ w' \6 I
- ;;; version, English.
- a8 ~: }- N: m, R/ A/ ]+ Q5 ~. q4 s - ;;;----------------------------------------------------------------------------' u: ?2 `8 n! O) r# G" ^; D
- ;;;# ?# p8 p0 o/ ?- S
- ;;; Avoid (gc)s on load to improve load time.$ H2 J5 A) {: ~6 s, ?7 D6 O
- ;;;
$ t* r5 ?( G$ x) j( L; \3 ^0 Z - (defun do_alloc (/ old_allod new_alloc)
' L& ]1 ]& e5 U4 ? - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
4 K9 L# W- L4 o w Y c9 A. l - (expand (1+ (/ 17000 new_alloc)))7 E1 K- l' {: U$ X- F5 i# N% y/ y4 g
- (alloc old_alloc)5 K2 O# |) k4 K- S5 q/ g, x
- )
h- s% l: D P8 l - (do_alloc)# a7 U. Q( [* \$ J r
- (setq do_alloc nil)
$ ~! @' z) T" X: f5 D
+ Z# i3 Q( K4 l+ b: B7 B9 w# e- ;;;) U |: b% A( `! t
- ;;;
9 k# z4 ], ~" }# P8 z# K - ;;; ===========================================================================
0 G; h0 P- m/ O8 \ a5 B: c2 b7 [ - ;;; ===================== load-time error checking ============================
" A5 W- H7 Y1 a+ @
# Z* y) @. o7 e% M1 a: _2 ^- (defun ai_abort (app msg)
- O! T1 M/ d4 Q. t6 G+ C - (defun *error* (s)
$ r6 e8 j; | Y: @ - (if old_error (setq *error* old_error))
) X( }( g: Z3 y& Y: ~3 z - (princ)
- ?2 X/ |+ w8 P. w$ t( {. a* Z - )
/ z6 o: k e% {$ p9 C - (if msg. C7 g( e' \( Y6 ?
- (alert (strcat " Application error: "3 _- f7 u e0 C# }6 l5 j6 D
- app C# J0 I* R! c" D" G8 E
- " \n\n "+ r, S& [. X& S8 V( x
- msg9 ^) g7 \4 w8 z& r9 y) U
- " \n"
* j6 E0 z, C9 c- f3 n+ S - )% ^; H" W2 p$ b/ V% Y4 f
- )
4 O+ c4 G- Z( {: y9 ]2 A - ). e7 W, n) [* R% F, v# [
- (exit)& \9 H# q6 Q0 s) T3 S* r
- )
! K5 c1 d) b" a" y- A
; W7 _; ]* W- O4 ~) v6 L- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
" v' k* G% ?7 p j1 K9 S - ;;; and then try to load it. If it can't be found or can't be
]) G4 c! M$ ?) H1 g' H - ;;; loaded, then abort the loading of this file immediately.6 ]; z8 q8 Q8 Q0 o4 v
, N$ \, k* A. Z- (cond
, Q# ~9 X: c4 C3 s$ i5 Z! z - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
( o& j. D5 q* ]
( }. J1 d" [& [; F8 Z- ^8 t7 E1 ]- ( (not (findfile "ai_utils.lsp")) ; find it
; _/ K: |& H5 @( N& U6 R j" S - (ai_abort "DDMODIFY"& G: e/ b: z* W Y, Z" H
- (strcat "Can't locate file AI_UTILS.LSP."
" a7 h# V8 n/ z+ h; B - "\n Check support directory.")))8 c/ e4 C7 a6 L+ f- x
1 G6 H3 r4 a$ d! s1 }- ( (eq "failed" (load "ai_utils" "failed")) ; load it5 L: c) L+ K$ W3 ?; ^
- (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP")). h* Z% y. S' \! _8 W
- )- Q/ e' I1 m0 I8 v4 @4 U
- + u& \" E/ P5 |! r; H# R* O
- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can
- ^3 U9 w) m" D' I - ;;; be assumed that all functions defined therein are available.$ B/ z7 z) A. K( d0 g, m# S
- 1 j$ u# n9 e( c" a/ b( w
- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort
; c1 L2 U' L# g4 ` - ;;; if the file can't be found or xloaded. Note that AI_ACADAPP, h8 i( u, p' R. s7 h4 U
- ;;; does not abort the running application itself (so that it can
- {% X1 G; Y, c; D, Q5 p - ;;; also be called from within the command without also stopping
3 L+ ?9 C; ~3 t$ g) W9 H - ;;; an AutoCAD command currently in progress).
7 R/ V! F9 f- [4 m - & s4 W: H9 m5 ~
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
8 I+ U: t& e1 u$ W - (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses; M$ r0 W6 ]( D$ _5 @& ?
- ) ; ai_abort's alert box dialog.
6 r: N" i% E* X% R9 B$ B - * y3 P0 y2 F, C- S# z) e# E7 V
- ;;; ==================== end load-time operations ===========================
, @$ T! v' n' w8 X% l% @ - & ^8 b- K. ?, I* T0 R
- ;;; global variables
" F* u3 l2 X. Q' d& t; `2 o/ `/ [
/ M* z2 D+ @9 M1 x" C/ X! f, f9 M- (setq hatch-elist nil)7 A2 c0 E5 |, i4 S/ u
% T& s5 W8 `: v; w1 z9 V) W7 k- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are) N0 Z5 b1 {7 L* K" A8 {
- ;;; assumed to be available.
. N0 ? T4 C0 R6 u6 t - ; v+ X& R4 e/ {, D* ~5 r" D3 t! X
- ;;; Define and encapsulate all subroutines that are declared. I! f7 [7 {0 h4 \! U% c$ O {
- ;;; locals of the (ddmodify) function.
/ `7 i, S/ F! G9 @5 a) Q- s6 n
* }; r+ f: g3 p9 d* {9 ?- (defun ddmodify_init ()% \# J, p7 v2 g% k
- ;;2 R6 w! A% k* E5 t
- ;; These three functions modify the enitity list for common properties. Since
, }$ G+ K, l2 n: |$ e! Y5 N2 ` - ;; color, ltype, and thickness are absent from the object list when they are5 L% j/ ?- C8 M- E! a B: r. @
- ;; set to their defaults (i.e. color = bylayer), a simple substitution using& b! E2 j0 c: x# E% I( X. L
- ;; SUBST is not possible.
& s: G( S9 E2 U6 G6 s - ;;. W& U, a7 T5 m3 b6 S* e
- (defun modify_properties ()
7 {6 g0 H _0 T7 W( M - (emod ecolor 62)
/ a5 o6 c% j+ i9 }' l' Y - (emod eltype 6)
& k$ e8 ?5 w3 ?$ k: r - (emod ethickness 39)
8 ~; s" z; R! O ]0 t - (emod eltscale 48)/ f" G! x, M- I, U4 T; [" ]
- (tempmod elayer 8 nil); M; Y- S. Y% S9 ?0 w
- )
& \2 \0 r) w2 M' E! o: e - ;;
$ [+ r: V1 b% b, V; X - ;; This function is used for modifying common properties of the ACIS/ Y/ t0 z: P1 L
- ;; based geometry objects. Thickness is not valid for these objects" ?3 }: D( i! M6 n) ~- Q/ c7 k
- ;; so it is left out.5 j( O7 H* o0 R$ I9 S& o
- ;;( K V' z3 P3 V5 S& K
- (defun modify_prop_geom ()
v1 H% `3 n- e1 R. Z - (emod ecolor 62)
& L" a2 \& D) `) r. G - (emod eltype 6)
/ V4 s( @3 s& ]! X3 C5 t& F - (emod eltscale 48)- U7 E1 c2 ~6 m
- (tempmod elayer 8 nil)
: l8 f! f0 [& W! S3 G9 M - )
! D+ d5 u! a, e6 J" v; Y
+ @! P6 A: t0 ]6 m& T) W- M4 K- (defun emod (value bit)# V2 W7 z' y' Q( R
- (if (= bit 62); }$ D/ r5 g) Y5 ?
- (progn
. L4 M+ d4 [4 q - (if (or (= value "BYLAYER")
+ ^ F7 r6 A: m0 ~ - (= value "BYLAYER")) (setq value 256))' [. ^& J# d# ]' B
- (if (or (= value "BYBLOCK"), ]7 @: @" _+ g! h
- (= value "BYBLOCK")) (setq value 0)): I. r& U# F* Q9 ^1 h; i8 w
- )
4 h( |. q" D% d* a" s+ x8 N7 @ - )
' I% E/ Q) M% g K6 u - (if (setq oldlist (cdr (assoc bit elist)))0 T% ]2 J! l7 H9 m
- (tempmod value bit nil)
/ k2 \* a$ [- J5 W& L - (setq elist (append elist (list (cons bit value))))5 r/ ]; d' m1 ] H
- ): I. B& W; R" W) V) u1 A( M7 P$ R5 I
- )
! e7 S( D" d! Y- y4 @, _9 p ]% l - ;;) W* S4 T; s8 l8 J
- ;; Resets object list to original values. Called when the dialogue or2 V. ^* C; q- N
- ;; function is cancelled.
- s7 b7 [, n5 L - ;;
! L' G$ K# }% x$ J$ p; r# M - (defun reset ()
& d* r' I1 N/ U2 c( O - (setq elist old-elist) ~5 Y6 Q) s, e0 ^4 G
- ecolor (cdr (assoc 62 old-elist))
5 w# {" ] P/ }! m - ethickness (cdr (assoc 39 old-elist))
& _0 f+ Q0 k, q9 G* U - eltype (cdr (assoc 6 old-elist)): G: y2 U9 b& M0 ]' N' [# `. r
- elayer (cdr (assoc 8 old-elist))' h* k2 X# {, F q7 a" ]+ M+ J
- eltscale (cdr (assoc 48 old-elist)) T- _7 J6 j* d' X3 ]$ L) q0 F
- )
3 Z) X8 e# p: R1 @) S4 Z; a - (if (not ecolor) (setq ecolor "BYLAYER"))$ U. w0 l- z4 s% S u& ?
- (if (not eltype) (setq eltype "BYLAYER"))
5 K" r7 u) E; s4 _( Q5 z - (if (not ethickness) (setq ethickness 0))/ |$ M& m j; ?; `
- (if (not eltscale) (setq eltscale 1)), G& [0 j9 N" q: f1 G
- (modify_properties)
7 S. f0 T* s$ b& L) b1 } - (setq reset_flag t)% _ w( i4 Y! s" p. T/ M
- (entmod elist)
$ o# @6 v9 D) ~' `" `5 u; Y5 {# r - )
" E( ^0 F" s) z% { - ;;
2 P) t' [ L/ D8 c* W# k - ;; Modify object when dialogue is temporarily dismissed to reflect latest
( ^) O; `$ e( e+ T4 g" ~2 S - ;; settings of dialogue. It converts the point from current UCS coordinates to7 `9 L7 L# j) c' q3 k
- ;; the proper object coordinates (world or object).
3 d' y% F5 S1 B- A8 j& s0 J1 S - ;;' M( H; b$ g9 R% U i' c$ x
- ;; Arguments: value - in current UCS coordinates& d7 n( m. H8 G/ E1 r6 T# k; U, t
- ;; bit - object code (i.e. 10 for start point); E1 Q$ [5 L- b, E* o! r
- ;; ptype - point type 0=world 1=planar
3 f' n# D& Q1 I; B - ;; B' N* X9 `0 X; W- e2 O5 L9 R$ `
- (defun tempmod (value bit ptype / newpoint)
# S% }0 n5 K' m - (cond
2 \+ X5 Z) Z) P+ g - ((= ptype 1) (setq value (trans value 1 ename)))5 s+ z" ~. K/ i7 |
- ((= ptype 0) (setq value (trans value 1 0))); y9 w( J' m9 E1 f
- )2 _: ~* M `8 k# ^, O: Q
- (setq elist (subst (cons bit value)
: L ^! J* t8 I1 V3 G" j; ?6 D$ Q - (assoc bit elist)# A7 h* T* K( W4 `+ ~
- elist
_" v/ G2 G. @/ E1 E) E. o - )
! v4 d* O* z3 n6 Z9 m" u - )
9 x" @& y0 y3 Q4 P$ n - ); \& u9 x. N9 i- F: W8 n
- ;;
* y( F% N- h+ T& a" C - ;; The following functions are called after a dialogue has been temporarily; x9 S$ _$ n4 a& x8 A3 \
- ;; dismissed and the user is selecting a point. If a point is selected the0 i1 U. G' `) g& `
- ;; object list is modified and new X,Y,Z values set. If no point is selected ?, [% ?% }! E8 Y' O5 F
- ;; (null response), then the point is reset back to its previous values.7 c* t( j: \6 F1 g6 Z/ F
- ;;6 s1 Y- [* D' E% W
- (defun ver_pt1 (ptype)' _- _7 v7 l7 n1 e
- (if pt1
/ f+ T+ V: M) }0 J8 q" x$ M - (progn9 @; c l c4 X' |
- (tempmod pt1 10 ptype)% g* o/ e+ C3 F" {* N8 _' c5 w
- (entmod elist)/ P; U w/ w8 q, c3 x* ~3 @2 r$ F/ W
- )" j$ u' F8 @& X9 c
- (setq pt1 (list x1 y1 z1))
6 y: t+ c; T6 g o3 M - ), a$ V0 m' X7 W1 {, F7 P
- ) }5 E: j, Z/ _: s4 b3 K9 g, B
- 8 w7 g W1 U$ m
- ; (move_pt1 <ptype> )/ B! w2 u8 \: I5 u$ Y) D! ]
- ;
$ h" X: O: z8 J - ; Called in liew of (ver_pt1) to translate block insertions which5 r8 c h2 J4 J6 R7 @, P- ^4 o
- ; might have variable attributes attached to them. If the distance
U' U/ m2 z' ]$ m - ; the block is to be moved is < 1e-6, the move is deferred.
; k% b- W8 o' x* s) W/ m* ` - 8 R6 p8 g' N3 y) Q8 a
- (defun move_pt1 (ptype / basept hi)
. R I/ E- X* ]4 t- W N% y - (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))
& N- P' u5 N) |: W, i; V% P) [ - (cond
3 G: s f% J t( b8 ^ - ( (not pt1)
) x V* k: r# i* F5 X - (setq pt1 (list x1 y1 z1)))
4 s# C" s, R( w, X# d6 G
_5 V% c5 r9 L( O! u- ( (> 1e-6 (distance pt1 basept)))
7 R6 M1 N+ d1 C) [' L& H
$ i0 e4 x. y1 i3 M- (t (tempmod pt1 10 ptype)0 k9 H8 W3 F. c6 e7 j
- (setq hi (getvar "highlight"))
2 S4 _! H7 u* [, @& E. a9 s1 Y3 s - (setvar "highlight" 0)9 E8 H( X. o3 y9 E
- (command "._move" ename "" basept pt1)
2 Z; j: |! H+ l. j6 w - (setvar "highlight" hi))6 e( X: R3 A, W) m; c
- )0 [0 e. w2 g9 o$ u9 X+ }
- )
; G% C% R" Y* k! q
/ w; j# n$ S$ ]& p* y- (defun ver_pt2 (ptype)
7 y+ D* \2 X/ ~; s) | - (if pt24 j. B: H" i# x. ?/ g* V% X$ t
- (progn
7 Q! _8 x8 v0 |! E7 _ - (tempmod pt2 11 ptype)
0 q$ c5 a, t5 H9 E - (entmod elist)
1 I3 [/ c7 C& e& x c4 Q# Y0 q9 @ - )
$ O1 J' Z8 {. ]4 c. w0 d - (setq pt2 (list x2 y2 z2))
8 G4 \$ d. ]# i! r z9 q1 [ - )
, G8 j/ J: b) A8 I+ W9 s - )
6 K$ U: A+ N9 ~0 p3 S
+ f( Y! s" L m- B- j$ g X! v- (defun ver_pt3 (ptype)3 y w' ^% q5 x' ~4 q% U
- (if pt30 @* e, f( _% [7 g9 A- S9 H
- (progn
, b7 l/ \$ ~) S1 x1 w0 ` - (tempmod pt3 12 ptype)
* _& l' b: p; ?* Z6 j - (entmod elist)7 O4 }+ W2 T4 [$ J" Z) \
- )
. {( s( }6 r9 [ - (setq pt3 (list x3 y3 z3))- z" T6 @7 k- K
- )( _, Y! O) J, H z4 P' q: S
- )
9 x+ s4 h6 b* n6 V$ |0 J. u - 7 M+ ]. z' l8 V+ S9 K
- (defun ver_pt4 (ptype)
+ o+ Y6 z: F, x. `0 r4 w - (if pt4
9 |0 |( Z1 L& |8 X3 w1 j2 l) L! G - (progn
5 J* G) Y$ G% X3 S& F! c - (tempmod pt4 13 ptype)3 F2 e; f v1 ~! o* B( ]
- (entmod elist)3 H- I9 l9 y/ \9 k' n
- )
: ^& ^8 U6 i6 b - (setq pt4 (list x4 y4 z4))
) v- u& Y: Y7 ^ - )
# H+ X2 E7 i$ Q; b% j5 c; I - )
) h$ s$ E& K4 r) c& a8 S - ;; Xline/Ray
" b% F b" O3 x/ a3 u1 | - (defun ver_xline_pt1()% K3 E. v+ W) C8 j
- (if xline_pt1
, d" O+ t. d! o1 p4 \) P- D0 d - (progn" w W2 u& W( D6 r0 v# R- y9 }
- ;; convert to WCS.
/ C! J& b/ t9 J( ~ - (setq value (trans xline_pt1 1 0))
" l/ H) V# f' j- Q/ x" a( C - (setq elist (subst (cons 10 value)+ ^0 u6 R5 d8 J0 [, ~9 O& {
- (assoc 10 elist)' m' `: q+ L5 a% C+ }$ r( m
- elist1 A# X! X4 G5 L+ r* r& {
- )
8 [- j$ S! p; n3 L5 o - )! Z. ~& @+ j, ~- o q/ i
- )
; Z+ \( w1 f( u+ T - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
) {- c% `9 [2 o$ }* N8 L - )
g$ U# d0 E" d$ z3 U; ^. b" x - )# C* ]# d) c( }
7 x9 E6 z2 w1 D. p- (defun ver_xline_pt2()
4 Z5 w# U J' T4 J6 { - (if xline_pt25 H# [1 \. V6 p& _2 D5 p% n4 u6 |
- (progn- `8 K4 E2 O" o. r7 n
- ;;2 e( X+ t0 u, B# f( F2 M3 y, U
- ;; Calculate new Direction Vector WCS$ M- Q; a& ~( y& V0 m; n# Y- r
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))' U3 T, v1 z3 y3 a
- (setq temp_dir (trans xline_pt2 1 0))) `) A1 y% N _' X6 _: M
- (setq temp_dir_x (car temp_dir))
. I& F# g; h9 o; Y5 b9 ` - (setq temp_dir_y (cadr temp_dir))
* g, u7 N# d2 s, Y! c" u r$ V - (setq temp_dir_z (caddr temp_dir))/ e, i2 @: O) S! S, h V/ R) \* Z1 U
- 8 n8 f% m0 g1 C' _0 V
- (setq temp_xline_pt1 (trans xline_pt1 1 0))
) {* j3 d9 E# b# ]$ J% V - (setq temp_xline_x1 (car temp_xline_pt1)): D/ m, h0 E+ E4 V& [- k7 i
- (setq temp_xline_y1 (cadr temp_xline_pt1))
4 x/ `7 w7 o& O9 D! n. q* u/ q- y - (setq temp_xline_z1 (caddr temp_xline_pt1))4 ]: I/ x) W+ m% c5 M
' }! C; ~6 b2 t6 t- b2 p/ _& [8 |& R- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)! b/ R9 {: C7 h
- (expt (- temp_dir_y temp_xline_y1) 2)% h5 D( D) `. @; Q* v3 q/ `
- (expt (- temp_dir_z temp_xline_z1) 2)
1 q) W! [7 s+ }% U - )))
9 V% e+ d! x6 j! [- T) q - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))- N5 G! D k9 y, c3 d1 z7 Z7 l" T
- (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
( v' t" O, K' w& x) J; [; Z - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))% c' g, a. M$ {! A& @, d0 E
- (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))
2 R5 o7 k6 F, G; a- g( f8 |0 v - (assoc 11 elist)8 I8 M! S* s" G0 Z5 t; s
- elist
. B, |' i4 {1 @1 D+ s4 J |8 A - )
) r0 J+ I% Y3 B& { - )7 n5 s# G* D2 ]* b& O" m
- (entmod elist)8 G" |8 g; m3 Q O) r3 D: J
- (setq xline_x2 (car xline_pt2))
- O: M/ z* y/ v' {7 } - (setq xline_y2 (cadr xline_pt2)), H2 \$ V d7 F1 r" Z2 ?1 |
- (setq xline_z2 (caddr xline_pt2))
8 ^8 V! v; Y3 y% W; ]
$ F+ W- V: F. {- x. ~/ J3 @- $ b7 z9 x% h- t" W$ K h* o
- )
' A. T0 v) g8 S- C+ Y - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
' G% S/ k5 B8 J3 g4 w - )
9 e0 R; R7 J1 X* B" ~% I' O; ]1 f% C5 Z - )7 ]) M: w) z4 v) }7 i; T6 a
- 2 f/ z |2 b+ n- ^# s1 F* `$ n1 j! v- f
- ;;
+ X7 s, D4 s% \3 k, q4 ^1 M - ;; Common properties for all objects
8 d" y! N& f& w+ z' C6 q - ;;
: R: r2 a4 z1 N% ?& K+ Q8 \6 x- D- N - (defun set_tile_props ()
+ k, `% _& _! O# z# a - (set_tile "error" "")4 H+ j! m v, b
- (setcolor)
: T8 L5 c. U( }& f - (cond2 s2 q5 c/ V2 F! Q$ s
- ((= eltype "BYLAYER")
, |$ T; e- b( D2 G: a3 D& i' H - (set_tile "t_ltype" (bylayer_lt))): z6 ~2 J! i" Y U0 `* { q
- ((= eltype "BYBLOCK")
% ~% E0 L/ a" t - (set_tile "t_ltype" "BYBLOCK"))
% C) U/ m% U$ d - (T (set_tile "t_ltype" eltype))' W; w) `+ Q# Y- ~- ]
- )
& e0 i# E) |7 r6 B7 n, N$ Y! Y4 H - (set_tile "t_layer" elayer)
M# F3 |" S/ f0 z4 p; i - (set_tile "eb_thickness" (ai_rtos ethickness))
. @1 e* D1 d. I$ S2 e - (set_tile "eb_ltscale" (ai_rtos eltscale))9 D4 U0 y" k4 Q5 C9 Y' K
- (setq which_tiles (ai_common_state etype))
) \) G# A1 `+ R3 p; | - ;; Disable tiles if need be...# E; M4 b% V, _6 `( I5 x) n
- ; I/ j+ E: N5 m+ W6 p
- ;; Layer Button and Text Field9 y7 L. W) w1 @' J0 b& v
- (if (/= 1 (logand 1 which_tiles))
f5 ]' g/ _8 ^2 L9 ~ - (progn
$ ?) }* Y1 ~) B5 Z - (mode_tile "t_layer" 1)$ h8 d4 C! q+ I1 R9 S# L R
- (mode_tile "b_name" 1) a# a! P3 g9 a7 V% ^4 b' `
- )# m; n2 Z' {, ] p/ L& {( i5 K
- )
5 x% T7 Y! `( _! l" Z - ;; Color Button and Text Field
; H2 l4 C' B& G0 c - (if (/= 2 (logand 2 which_tiles))
. O( m* ], Y; [ - (progn4 r7 f, M7 H! b6 f
- (mode_tile "t_color" 1)4 \0 T- n0 e* ^ v
- (mode_tile "b_color" 1)
& V* T4 O, X5 o0 b - (mode_tile "show_image" 1)
7 s, n. b) O) }6 c" H* ] - )
* `$ E5 P1 N! [, n* F g" l - ); O6 b3 y- a/ v3 X( \7 R. [! D/ ^
- ;; Linetype Button and Text Field2 N8 }# n" M5 @* }9 ^% K6 g/ o( V3 B
- (if (/= 4 (logand 4 which_tiles))
r( N( q0 |6 g4 ~. Z, k - (progn
7 Q" k) @/ e0 z6 l& P8 {# ~ - (mode_tile "t_ltype" 1)4 L' W3 x8 `) e v% @. q! D5 A
- (mode_tile "b_line" 1)
; x& h# [! o }6 ] - )
4 k' ?% q, A5 V! @) m" S - )' C; H: L. r Q
- ;; Linetype Scale Edit Field
1 [6 _7 f f1 |7 m" d - (if (/= 8 (logand 8 which_tiles))- j! S- T6 Z/ N) Q/ A' t1 e
- (progn
( s* L0 a' P. m( B& W: Z* G% {0 } - (mode_tile "eb_ltscale" 1)
# ]: H+ Z8 s2 e$ a - )
' b% E' V0 s+ Y6 }/ F9 A8 h - )
1 ?9 p ~, y) k2 e - ;; Thickness Edit Field." s( ^: p$ p! a, j& [
- (if (/= 16 (logand 16 which_tiles))% r" {5 g5 h: ]% Q2 I0 |
- (progn
' a# {) k- A6 P' b- ~ - (mode_tile "eb_thickness" 1)
; }: Y3 P2 h7 E: v& ^1 @ - )9 P) {2 Y4 Z7 t8 S# [# O
- )5 \0 q8 X& t' }0 @, M
- )+ S: c. S6 M. `: |1 I/ Q- C
- ;;
9 t. R, A+ Q- f7 j4 } A1 y+ P - ;; XYZ Point values for all enitites4 ^( c1 [/ S9 T! e3 h2 d7 _
- ;;+ J4 h. O5 i2 R+ v
- (defun set_tile_pt1 (ptype); f6 ]: ^) X$ `' ^
- (if (= ptype 0)1 X0 Y. _( [2 u
- (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))
% {& _; w! ^3 r) ^4 ]5 z# H - (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))" r& d3 h h3 ]7 _8 O, k7 \( S: U) X
- )
9 K! R% D0 K6 ^+ T" e# o9 C/ M, \. A- P - (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1))))# R9 {! u. y: w/ b. s! W
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1))))& H& [9 e1 i% c! j: Y5 n5 Z
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))
. g" B& M% E4 c c( B% f - )
* I' D( v8 \- Q l0 G5 A - (defun set_tile_pt2 (ptype)
( V/ Q" s9 P. T$ ~/ o, l g - (if (= ptype 0)
; [4 d% X+ B0 }- z: R+ o - (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))
$ m5 ]+ u/ y) S% S - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))2 x0 \* P5 x+ T9 X0 x
- )
4 G& h' F; C7 C) Q - (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2)))): h4 k! Q; D( p. L4 V
- (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))1 D* L# r6 ^- F8 J3 M
- (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))
' z3 L; } H# {8 e/ W9 I - )8 l$ z t: X( W( K8 k# X- @
- (defun set_tile_pt3 (ptype)3 j0 j" J& \! h; j9 x- B
- (if (= ptype 0)3 T. N% W5 T+ C/ b" ^
- (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))
) V) i- D. ^0 _; I3 x$ m9 x+ k4 @4 ~ - (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))# w( l! r! x1 w& `
- )
/ f! ]+ F- b( K4 Q2 M - (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))
8 x X& R! a( l4 l6 a+ } - (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))+ g. c' E7 t& z4 U8 M/ B1 m
- (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))7 W; @* x% Y( d. X; E9 i/ \
- ), y0 E2 }% s4 Q6 i/ ?6 F( T' ?3 V( }
- (defun set_tile_pt4 (ptype)
& A; K% ?9 I& J1 O - (if (= ptype 0)
; J/ i" l: ]: Z6 p- @6 Q# ?& O - (setq pt4 (trans (cdr (assoc 13 elist)) 0 1))
7 P; k2 }5 w2 f0 z) ` - (setq pt4 (trans (cdr (assoc 13 elist)) ename 1))
6 g4 @+ G7 y: M" B - )
- z+ N, v6 A) ?0 ]2 n - (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))
* \/ B+ {+ Z: |4 P3 p* P; f$ d/ n - (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))
3 H, Z4 p) K8 g- Q8 O, o% J - (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))
; ^; B+ J9 u, `6 ^" I8 h! j3 F - )0 q2 U% Z. \6 x- T
- ;;" @6 l( l7 g$ a
- ;; Xline/Ray
) _7 P6 k* h, H- E - ;;
/ G4 i% {" ~" | - (defun set_tile_xline_pt1 ()
8 w( E0 V/ K5 I8 L- o7 u
. d. v9 S* W; x3 ]5 m- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))$ A0 x/ e( o4 q3 y `! B, {. E+ a$ z
- 4 y5 i& @6 T1 G3 k
- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))/ W7 B2 [0 |8 i& O6 Z
- (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))
8 H# s1 \; A% H0 T# L - (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))( b) ^1 A1 i7 h% e% L) n
- )0 t! @0 ^8 Z! Y, c9 v
- (defun set_tile_dirv ()
$ h2 x+ i s7 [% E - ;; Convert 11 group to local UCS (displacement)
1 r0 l$ K* p. K4 C* C" V r - (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1))9 u. m3 _- V5 S8 R4 G6 b& Y
- 7 C2 J9 T1 a9 q
- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))( R3 m0 ~9 {% j
- (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))
' k$ o) P* w I; T$ D - (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))
x* [. A, z0 v0 s2 i3 f+ S - )$ W1 ^- D6 N6 @7 Y! C
- (defun set_tile_xline_pt2 ()
) _4 O# _5 l6 ? - (if (not xline_pt2)$ F2 d5 G* w* e! l! p, H) K" s
- ;; Initial second point is Root Point + Direction Vector
( ^* A# K3 l: V1 ]/ J4 x, D8 p - (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))
+ V5 |8 [8 F2 O) |! b" W( I - )
( L% b2 |# R2 O' l2 {# c - (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))
c- c4 w- B1 R# Z f - (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2))))) }5 [3 o1 G s4 u5 ]" h
- (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))
5 R) k: m, Y0 D0 z9 v - )0 g2 P$ R4 a" ~, |
2 s& I2 G6 _0 w- ;;& ^. b) B2 z( @! s& z- w8 ]
- ;; Handle for all objects
9 j; [4 K& ~ O% n - ;;
5 v2 Q' `# M' P( ~ - (defun set_tile_handle ()
' n) A# f- A1 Z d/ O - (if (setq hand (cdr (assoc 5 elist)))$ U$ g3 Z0 N* j
- (set_tile "Handle" hand). l7 i! H0 x# w
- (set_tile "Handle" "None")
+ D2 R8 X4 s- y0 a5 ` - )% c/ ~0 C$ F/ g9 i* @! b
- )
) |0 V% r5 P6 L+ p3 B - ;;
4 x) X& z9 j# ?5 `0 E - ;; Radius for ARC and CIRCLE' J8 c" I! V- ^( G
- ;;
+ {% `( @ x C# o ?. K - (defun set_tile_rad ()
7 l8 e" P* G. Q, t) @ - (setq radius (cdr (assoc 40 elist)))$ V, b4 i R5 J8 J7 r6 W% v% @
- (set_tile "radius" (ai_rtos radius))
/ l8 F1 D. U! c5 r& n$ e9 Y; i - )% X, P0 a1 ^: s
- ;;
0 K" q3 x; L, M - ;; Start angle for ARC% @3 b* G5 |1 _9 z0 `- S
- ;;3 \+ y) W2 W p* Z1 L U! y" N
- (defun set_tile_stang ()
% a2 V: |" J1 e. S9 ?5 s; I - (setq st_ang (cdr (assoc 50 elist)))# v+ e0 \* ?; Q& {/ W9 W' ^5 G7 c
- (set_tile "st_ang" (ai_angtos st_ang)). j% g% x: A& x; A
- )3 E& \* L5 g; D7 ^, ?. v0 g
- ;;
. C8 k' ^) W, x+ C8 |5 B - ;; End angle for ARC
. ?& R% J1 N! ]5 u( [ - ;;; H5 @* x. ~6 E1 p% G. s1 L3 S- f8 g
- (defun set_tile_endang ()
0 }& K, `8 w# l* @+ J# t - (setq end_ang (cdr (assoc 51 elist))); D2 O: m: I% O4 Q
- (set_tile "end_ang" (ai_angtos end_ang))
- q/ R6 I1 F c& U2 i% Q - )
9 Y' L! V& o$ V6 d' H - ;;! {0 }* d4 R Q1 A: g
- ;; Rotation Angle - Text, Attributes, Block insertions and Shapes
+ T. A+ ^- M; D1 U: u a7 r+ b7 T9 g, e+ Y - ;;
" v5 B4 }+ r! _ - (defun set_tile_rot ()6 O/ e+ T5 q0 l
- (setq rot (cdr (assoc 50 elist)))- r/ A) p) B3 n* O d9 I' X
- (set_tile "rot" (ai_angtos rot))
. }: R8 u8 P o+ l& M2 y( m- r - )
& N& g" z% {' i0 E3 ~ - ;;
$ y; f7 h" ?8 ?9 u+ B! k - ;; Height - Text, Attributes and Shapes- s/ B9 S: V, l" L0 Y
- ;;8 C' L9 `% x2 Z2 m
- (defun set_tile_hght (). ^( L8 |$ K+ R% C
- (setq hght (cdr (assoc 40 elist)))4 `( F$ t) z6 o9 M' [% O
- (set_tile "hght" (ai_rtos hght))8 |. d7 e0 F4 K; } g. E
- )
# ?6 P6 K) }. K* d2 y; W - ;;; I/ p- i1 M) p8 A' m
- ;; Width Factor - Text, Attributes and Shapes
, N9 j* H- b4 M" i& }6 F - ;;0 ~. U3 B- z) z s6 b9 B3 P
- (defun set_tile_wid ()6 i2 m! h9 u: }, I/ S: q7 @+ E7 u J* H9 o
- (setq wid (cdr (assoc 41 elist)))% }1 h& H0 ?- ^2 h8 |
- (set_tile "wid" (ai_rtos wid))4 D0 g; c* n2 L( s1 V8 D0 t
- )& X5 O$ K. g$ \! L3 L
- ;;( O! P6 u! s5 i+ s
- ;; Obliquing Angle - Text, Attributes and Shapes
# J( X1 P3 E3 j% _ - ;;5 k* V) L) G& g/ U k
- (defun set_tile_obl ()- E0 L+ Q5 i8 Q; t! }3 z: F5 Q' `0 J
- (setq obl (cdr (assoc 51 elist)))
3 O6 _/ f) Z3 ^2 q8 a- C1 K - (set_tile "obl" (ai_angtos obl))" i# u2 x% r$ C1 |$ U! A5 Z
- )
" t! O" O/ R+ K L- u; B* a - ;;
8 N6 n# A2 |- H0 H1 Z - ;; Text string
7 S/ H O! @: O3 t1 n; Y$ } - ;;
4 R6 o0 `0 o/ c2 v( ` - (defun set_tile_text ()
0 U ~" O* A! c& ]# n) t - (setq text (cdr (assoc 1 elist)))
4 t* K% X: |$ m - (set_tile "t_string" text)4 J/ c& v0 r @3 u% N. |% f' `
- )" u: p. d; d+ x4 Y4 w1 s, j% N& t
- ;;
+ t }+ s' G H, O% N% \8 V - ;; Attribute Tag
! C" J* u" {- ^ - ;;3 j& E8 M' _2 j
- (defun set_tile_tag ()
" A8 H1 f+ v" ^" d+ ^3 v; p - (if (= etype "ATTDEF")( [+ \' H3 ?) n
- (progn
0 Z( E' h! B6 W* a - (setq attag (cdr (assoc 2 elist)))
' p+ \1 c3 g7 ^ - (set_tile "tag" attag)" l9 g8 O, v, U. g6 z$ v
- )
) S3 I. q5 {! ~. \3 X& k! B - )+ k3 ^- ^) i0 L1 q7 z; @
- )
! n1 b3 o. U4 V2 D U - ;;
( S3 u/ a/ y" V! H9 o2 u3 } - ;; Attribute Definition
, z9 e& _" U$ h* I* p - ;;
, B3 X3 ?& a8 i G! D - (defun set_tile_prompt ()0 } s( X& M6 l( y/ }
- (if (= etype "ATTDEF")/ \ [+ o5 _( r# D9 z- ^- U( b
- (progn
5 F0 f5 n" @: z8 Z9 J3 Y - (setq atprompt (cdr (assoc 3 elist)))
4 ^* n( j2 q; m' T - (set_tile "prompt" atprompt), h% i3 b* V4 B( W8 ]6 i
- )
4 K/ d5 y2 E& n8 D - )
' D1 `( k- D+ x0 F0 g, g; k9 e4 M - )2 X6 ~, r4 Q1 |/ H* D" l, Z
- ;;2 S6 k6 r! T( j+ ?2 L
- ;; Justification setting for Attributes and Text. Initializes. E ?) B; O8 k/ n' Z
- ;; popup list box3 Z5 h, J" m6 h" Z1 Y1 D
- ;;
: m% r3 E9 i, j; R Z q. E - (defun set_tile_just ()
: j% P% w( l7 ^4 N/ P r - (setq ha (cdr (assoc 72 elist))) ; horizontal alignment+ d; G. m- t9 q* R2 _ V3 h
- (setq va (cdr (assoc 73 elist))) ; vertical alignment9 g/ U6 G: L- [
- (setq ha-prev ha)5 `9 l. J% M y0 Q8 x# f9 j
- (if (= etype "ATTDEF")8 ?, M' B* H* W" l# ]1 n* S4 B3 U3 _$ O
- (setq va (cdr (assoc 74 elist))) ; vertical alignment' O+ Z% k4 a. N0 u- y9 ?9 ~
- )$ Z8 l" u$ _% n! T# |# x' ^
- (setq jlist
6 t1 v( Q* Z5 m7 t - (list "Left" "Center" "Right"# @ s' F* J& b8 Y4 C$ ~$ j
- "Aligned" "Middle" "Fit"
7 a ?* g* O. \" ~$ X - "Top left" "Top center" "Top right", Y$ \/ X; a/ K3 P, x; h6 d
- "Middle left" "Middle center" "Middle right"
! \0 i. ]9 q! ?& v/ Z. v1 w$ C - "Bottom left" "Bottom center" "Bottom right"
/ K8 b* P7 D5 ` - )
% [$ Q9 L( I- m6 A4 n4 T4 ]# W - ); j2 s$ J* x2 m6 Q, ~
- (start_list "popup_just")" u5 }' r9 ]4 p0 A( ?2 o, Q: y
- (mapcar 'add_list jlist) b: d; r0 T% ?, E( s, F. m2 `5 ^5 _
- (end_list)# o8 ]9 N4 l, K% d4 b
- (set_just_idx)
. g; h( b7 }+ i/ j# Y) ~7 z - (set_tile "popup_just" (jlist_act just-idx))0 ]% K7 \" R% D
- )$ y9 D( n: s ?
- ;;
! V# _. E1 F0 n. c+ a/ p- d3 g3 C - ;; Style setting for Attributes and Text. Reads symbol table for popup list' e8 E6 X$ @4 s3 R7 R$ h" V
- ;; box.
& K- D# g/ k$ ~% m' ` - ;;; S$ O) v8 Z9 q3 H9 L+ E
- (defun set_tile_style (/ sname style-idx tlist)1 \4 P, ?+ H# a' Q$ c( J0 f/ y
- (setq tlist (tblnext "STYLE" T)
! l) @( {+ S3 O5 S - slist nil)
5 t7 m% J! Y5 ~: ]7 D4 R. ^# d - (while tlist4 {+ {* W! G0 U
- (setq sname (cdr (assoc 2 tlist)))
, j1 Y2 v# P; B5 i3 ]6 R* P$ u - (if (and (/= sname "")
+ n) x; ~) x& b& M4 Y' G - (/= (logand 16 (cdr (assoc 70 tlist))) 16))
" R" m) Z/ ?, @6 j - (setq slist (cons sname slist))) x1 K9 d- n1 w9 ?2 y9 |( F! A
- (setq tlist (tblnext "STYLE"))). |. `" p$ n& ^% S1 K% e" b
- (if (>= (getvar "maxsort") (length slist))
0 v8 Y) k; @% _( Q9 e+ b" W9 p7 t - (setq slist (acad_strlsort slist)) ; alphabetize style list$ X" s9 R* l5 s
- (setq slist (reverse slist))) ; or reverse it to put it in DB order
/ N9 M3 G- {9 |# Q
9 W; d8 y; e( d: F9 B4 d# p- (start_list "style")8 L! A5 t+ ^, }6 G
- (mapcar 'add_list slist)8 w! |& A$ w% N l4 t
- (end_list)
3 a6 a7 j! m5 o - (setq tstyle (cdr (assoc 7 elist)))! H D5 R! n9 P. v
- (setq style-idx (getindex tstyle slist))
1 ?8 ^4 [- C, o2 D* h% _ - (set_tile "style" (itoa style-idx))5 ^/ X5 C3 p. e$ O) J! [* p
- )
4 e' F9 w4 p: F/ l - ;;" h/ b6 p$ [" z! Q6 u/ ~
- ;; Text and Attribute setting - upside-down, backwards
% S0 x' k- [9 P5 x - ;;$ C5 V3 |0 F2 E
- (defun set_tile_bk-up (); w8 a: Q, g- |6 M6 a- N
- (setq bk-up (cdr (assoc 71 elist)))2 S3 N! A. d5 f: ~
- (if (= (logand bk-up 2) 2)
' ^: ^0 ]9 t, w7 E - (set_tile "bkwd" (itoa (setq bkwd 1))): U8 {- \/ z& u2 x) g& \7 U
- (set_tile "bkwd" (itoa (setq bkwd 0)))
5 @ F. w2 w( ^( w - )) f; [" g& W# f
- (if (= (logand bk-up 4) 4)3 Y+ v, e6 o8 J; J' Q
- (set_tile "upsd" (itoa (setq upsd 1)))
: q$ X0 z4 b" l1 `) x; @, q - (set_tile "upsd" (itoa (setq upsd 0)))
& a& J- t$ H4 u, k - )
# k7 o+ ~% o1 Y - )# M) M8 l8 ~5 c3 z
- ;;
( N4 [+ c! D% @1 u, H+ | - ;; Attribute setting - invisible, constant, verify, preset
9 J- ~; h: P' w3 o- b% O - ;;
1 P( s. l* H$ _- T - (defun set_tile_icvp ()* W: o" y! o7 ^; C6 e
- (if (not (setq icvp (cdr (assoc 70 elist))))
+ o1 R k6 M1 a1 o+ h6 V6 n+ m - (setq icvp 0)
: u6 O9 G4 `2 U! e- S: N0 u! u/ l - )
2 n6 j k& f9 V - (if (= (logand icvp 1) 1)9 x7 H1 ]$ X8 ~, J: C
- (set_tile "inv" (itoa (setq inv 1)))- V: z7 @1 n! n q, \! ^2 B7 F1 G
- (set_tile "inv" (itoa (setq inv 0)))
3 K; m! V+ _' X# P# M* O( _ - )$ h" H7 C% n$ J2 Y! N
- (if (= (logand icvp 2) 2)
6 Z1 V6 `( j) f - (set_tile "con" (itoa (setq con 1)))" y7 _, K# T, G& d% H
- (set_tile "con" (itoa (setq con 0))). r% M+ \! b, f# `$ v
- )/ H, W, J; V! E" Z3 z! t
- (if (= (logand icvp 4) 4)
' g' z8 u% p+ {8 v; g - (set_tile "ver" (itoa (setq vfy 1)))
: Z' x/ b9 Q, s" u4 c - (set_tile "ver" (itoa (setq vfy 0)))9 B2 ?% h: D" g$ U) F
- )2 j4 s5 m- Y/ t1 d; h
- (if (= (logand icvp 8) 8)0 f5 M) `+ U8 J% X, p6 ^
- (set_tile "pre" (itoa (setq pre 1)))
8 u. c& ~0 q* h3 K4 R" S" t - (set_tile "pre" (itoa (setq pre 0)))+ _- k) g$ W( L
- ); z6 `! O6 k0 _0 F& u$ ?# v1 s: p
- )
5 P( g% v9 `2 S - ;;+ D4 c$ t( q8 q2 K/ C
- ;; Scale factors for block insertions: D8 I' p# t% w& K! h* j, U: G
- ;;; ]9 K1 ^( N0 o
- (defun set_tile_scale (/ temp)& q7 {% D8 n9 N1 [: }4 L+ z
- (setq temp (getvar "LUNITS"))
% p+ ~! V+ N; b6 r - (setvar "LUNITS" 2)
' @6 f* ?! `( k; H4 s5 n) k6 t - (setq xscale (cdr (assoc 41 elist)))
5 b2 {1 W& N) K' Q7 V - (set_tile "xscale" (ai_rtos xscale))5 G9 B$ G; D- f
- (setq yscale (cdr (assoc 42 elist)))
( E, M8 B: m, ~8 s% b" ^ - (set_tile "yscale" (ai_rtos yscale))- q' t" o/ e) j% q
- (setq zscale (cdr (assoc 43 elist)))
# U# C* @$ B; j2 [6 S( X! U% l - (set_tile "zscale" (ai_rtos zscale))
+ @ T1 q8 Q& m4 Z6 N2 T - (setvar "LUNITS" temp)/ p, e: O P& h# c7 J
- )% ^/ |% h0 h' S' g) \2 l/ w- O
- ;;
8 @# X9 v9 L9 L1 \ p - ;; Rows and columns for block insertions2 `# j9 M3 p3 l1 ~
- ;;9 J- ?/ U# q6 X' H6 ^# C) i& l
- (defun set_tile_rc ()
+ v" c* ]2 A/ S - (setq columns (cdr (assoc 70 elist))). M% T$ h* e& k
- (set_tile "columns" (itoa columns ))5 \! X- V8 G, n* e5 Y" ?( }+ a
- (setq rows (cdr (assoc 71 elist)))
/ N: ~- W! Z g Z/ g# a- e - (set_tile "rows" (itoa rows))1 \7 ^# [' k8 k( `1 P
- (setq col-sp (cdr (assoc 44 elist)))9 B% L5 [: t0 c" a! ?
- (set_tile "col_sp" (ai_rtos col-sp))) g) {$ I- X# q- f B1 C0 ~# U
- (setq row-sp (cdr (assoc 45 elist)))3 M: U# q, h. E$ K# ~1 [7 Y3 O
- (set_tile "row_sp" (ai_rtos row-sp))
Y X8 F' P& d5 N8 a - (if (/= hasclip T)
4 N3 C& d. R! O: e# j% g; P - (mode_tile "xcliponoff" 1)9 F' O! O9 k/ M' u8 O6 s/ M
- (set_tile "xcliponoff" (itoa xcliponoff))% g# X$ V: q8 ~5 G: s: L
- )
+ _& @0 w. V6 c, k0 q$ W - )' V7 Y1 X/ B; Q9 ?# l
- ;;
7 q: |$ J( X! v9 E( J- U. Q - ;; Invisible edges for 3DFACE- |! i6 y G7 x/ `
- ;;
1 P; {4 D4 M! R1 Q. j - (defun set_tile_edges ()
, ~ T2 g' I! H - (setq f-vis (cdr (assoc 70 elist)))3 U; M+ |; {, _- ^4 @0 I0 g1 C
- (if (= (logand f-vis 1) 1)
9 e6 m X0 y, q" k - (set_tile "edge_1" (setq edge1 "0"))
$ w& S3 u& j. ]& p - (set_tile "edge_1" (setq edge1 "1"))
# G4 L8 Q( |5 C: L, t6 G - )
; P) F5 V* j2 q! U - (if (= (logand f-vis 2) 2); m, P1 g ^1 S3 Y' D
- (set_tile "edge_2" (setq edge2 "0"))" ^8 A) d% t# P7 v. m
- (set_tile "edge_2" (setq edge2 "1")). ~6 f' a. ?4 k+ x3 t& X
- )
# v: [0 t1 `) R# F6 o) d - (if (= (logand f-vis 4) 4)
$ K* B( |+ W5 D6 `& H/ Z - (set_tile "edge_3" (setq edge3 "0"))
6 r4 i: T0 m3 J- B* r3 z2 ^ - (set_tile "edge_3" (setq edge3 "1"))
. q. C4 W8 m3 u' l8 o% L: ]6 m! D- D - )
9 d5 k; P) j- S# `; W! b; h4 Q - (if (= (logand f-vis 8) 8)) q& G( G1 E( N* p+ H
- (set_tile "edge_4" (setq edge4 "0"))
+ {+ s4 ?( M4 Q% ~ - (set_tile "edge_4" (setq edge4 "1"))
1 {, T9 l" z7 D: G - )" g& s/ r* O9 D( R0 m$ u7 b" S
- )! V% e. ]# a9 W- {
- ;;
& i( O0 ?9 ~" c( ?- e$ s - ;; XYZ Point values for polyline vertex' y6 Q0 @& K. N1 N, |1 a
- ;;
0 |& `/ G: C8 M( T. U - (defun set_tile_vpt (ptype)
3 B% P" O7 S) W% E1 R& n - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE"). G3 I0 E6 ~/ G% G2 \6 v
- (progn, K/ v# F; N, t. L
- ;; ctr is 1 based, vertices are zero based.: O8 H0 z* L4 d% f
- (setq vpt (cdr (getLwVert (- ctr 1))))
* n- C5 P. l. r, \4 E - (set_tile "xtext" (rtos (setq x1 (car vpt))))# k/ N/ a& V4 F
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
8 b) Z0 N# S9 k - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
5 [; D$ Y8 p5 i, g) D - )
% v8 y) m! q9 M, X( X - (progn
+ v- l4 [0 @# [$ Y# L2 \ - (if (= ptype 0)0 y- N- b. L' ^0 I: ?( i" y
- (setq vpt (trans (cdr (assoc 10 vlist)) 0 1))# d/ C H/ ?! {7 I8 S/ H4 X
- (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))
% [5 ?: R% {3 q {( g - )
8 _$ ~5 U7 k0 W: \% E2 a6 \* E - + p1 r, i1 Y& n$ t; d$ l
- (set_tile "xtext" (rtos (setq x1 (car vpt)))), t2 U5 [) A! Z2 y3 w/ s- l
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))5 R6 n' { A& d( V& n
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))9 r6 L: U7 u1 x4 T0 x
- )
2 s' E5 Z2 R/ T2 Y8 B3 j- }0 j - )% `) M% l8 y& S" g+ G/ M
3 a* o& a2 c* Z! o6 v6 A, h- )* ^+ N9 r0 Z* c6 J/ C
- ;; This is the equivalent to doing an entnext on the heavy weight. `& [/ T& N$ J" ~$ N; S% g% E
- ;; polylines. The hard coded '4' below allow stepping over the; F6 R5 K" K, f5 L7 l
- ;; 40 41 and 42 group code information. The while loop finds the% Z' V, m" d1 _' s( O
- ;; first vertex which will be used as the starting assoc in the- e) g( F" C# D& B0 ?( e$ {* S
- ;; call to nth.2 Y- @) y! r( `3 J4 G8 |2 n
- ;;
1 \5 T$ U4 Z4 m. ~ - (defun getLwVert (tmpctr / count tmp)$ t! a( `" r* w( E, ~2 D
- (setq count 0)
; _: z& H1 b, b% i - (while (/= (car (nth count vlist)) 10)+ y9 x& i2 f" T0 D! e$ s% k
- (setq count (+ count 1))" F5 C& \+ n7 u; q- D
- )2 e% B/ \* n) n
- ;; If the counter reaches the number of vertices,8 S, Z- m K5 Z- z0 J5 B1 Z
- ;; reset ctr and tmpctr to zero again.
# D" e7 c, o9 c1 s3 Z - (if (= tmpctr (cdr (assoc 90 vlist)))
* ]& O$ b J/ a - (progn
$ m2 W3 B p6 q1 @) E" ? - (setq ctr 0)
& ~# ~2 W/ X. S5 z2 `# K - (setq tmpctr 0)' L7 \1 `. X8 S- J" O9 @% x
- )
3 m* D. e1 q K5 Y3 g - )
; |' z& u$ w0 _ ]1 g( q3 Z - (setq tmp (nth (+ count (* tmpctr 4)) vlist))( J& g- U6 n8 R+ d% G$ `; D5 J* K
- (setq tmp (append tmp (list(cdr (assoc 38 vlist)))))
0 G8 m" Z3 Z$ Q - (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))
$ G7 U& f: m9 I( U) Z2 D - (setq tmp (cons 10 pt1))
% \4 P8 u8 W. ~. G - (setq tmp tmp)
( r% Z$ C6 b. f# @' ^0 H - )( v; V! a5 W& v+ b, m
- ;;7 h( f( O" a) p* T
- ;; Set tiles for Spline properties. If the spline is rational then we
. Q. a+ d8 \1 M. [ - ;; need to display the weight values of the control points, so set! |+ n8 w/ m, B7 d0 ?. f
- ;; flag to 1.! ]9 E2 `4 x5 p/ `& F9 x
- ;; 1 = rational spline& M+ Q, b- |) A* X
- ;; 0 = non-rational spline
6 @ c% E+ q6 Q E4 _$ o% ` - ;;$ A2 n0 P/ q" X# l; r5 B+ I
- (defun set_tile_spline_props ()
* }1 Y; b* R# m; }" E) Y - (setq rational_spl_flag 0) ;; initialize rational spline flag
7 [" {' ~ `! s- Z - (set_tile "Degree" (itoa (cdr (assoc 71 elist))))- F/ H8 \) M( F W
- (setq bit70 (cdr (assoc 70 elist))): @# r ]) v Z' i8 B
- (if (= (logand bit70 1) 1)5 L' D- G$ ~/ B- ]
- (set_tile "SpProp4" "Closed")) w ?1 S1 {; ~, |6 i ^) S8 P
- (set_tile "SpProp4" " ")( B6 q% j; p9 l5 H
- )
+ y, d" L& n; Q4 I# L/ w5 V, d - (if (= (logand bit70 2) 2)6 \7 `% j+ W! v( d& b3 g
- (set_tile "SpProp3" "Periodic")/ }+ ]) ]7 @( H2 i- n
- (set_tile "SpProp3" "Non-Periodic")
) o6 [/ a) u. C: N6 r1 {$ ]6 A" \ - )% v8 T* e1 H1 J* n8 V2 m
- (if (= (logand bit70 4) 4)9 r+ ~2 z6 N2 x y
- (progn
: A. L3 x) f* D! f! C - (set_tile "SpProp2" "Rational")" ^; T v# V0 R: I7 c/ V, m
- (setq rational_spl_flag 1) ;; this is a rational spline
/ W% ^4 y& b o1 h) w# y - ) O! {( h3 ]$ ~5 Z0 F: O' O$ x/ G* q; `
- (set_tile "SpProp2" "Non-Rational")
4 a0 r9 l1 ^. ` - )6 T& p0 t0 g, A
- (if (= (logand bit70 8) 8)2 r' d" }$ w4 n1 \ \
- (set_tile "SpProp1" "Planar")
8 B+ U$ [) ^9 G$ T+ d" t - (set_tile "SpProp1" "Non-Planar")8 ~1 F$ e3 V4 m
- )
; i, G7 P2 f5 @8 }5 q5 x - (if (= (logand bit70 16) 16)8 Q' q; j8 a( i6 `3 r+ n
- (set_tile "SpProp5" "Linear")
. t1 R2 G( c Z3 c5 L% A - (set_tile "SpProp5" " ")1 r5 m! L2 S& G9 h, X
- )' w$ G, z( i; p& r( b
- )
) j/ b' L1 P0 i8 B( b - ;;
) z5 D8 Q7 ^$ t" Q7 @- a% u - ;; XYZ Point values for spline points3 [+ Z$ w O( k' v# ], H
- ;; Need to account for WCS/UCS# J- b. _, b0 ~( q) A: C! `6 b
- ;;
/ ?. N2 x! ~) s: I6 E3 L2 q/ R - (defun set_tile_cntl_pt ()
$ p) U0 B5 U& @. I; Y( }$ I - (setq cntl-pt (cdr (assoc 10 elist)))4 ]" [: m$ i; \0 V: O0 P
- (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
5 m8 ^" u- x) u - (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))) t+ l7 ]5 k2 |2 j# n+ n% T
- (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))# j8 E% J1 E/ w( D) ~) G
- (if (= rational_spl_flag 1) ;; if rational spline+ {3 [, Z8 E4 C% Z3 L
- (progn ;; show weight% \- z# [0 P+ W& f
- (setq weight (cdr (assoc 41 elist)))3 j" R: g% L8 c, h- ?5 F G
- (set_tile "weight" (rtos weight))$ ]1 s- }. S" z+ u
- ) ;; else
5 b, m- b% e5 y% F- b: K - (mode_tile "weight_text" 1) ;; disable weight field
. L+ L* d7 C& g# v8 r4 | - )6 L! t2 v( u5 F3 @* [+ C
- )
- X# `( d3 ]0 J - ;;
9 `% p) }+ ~5 j - ;; XYZ Point values for spline points
: P7 Q9 q* [# ^' g0 D2 ^, K/ Z' \ - ;; Need to account for WCS/UCS
. V! i. `5 a# e# v5 Q! I" O, l - ;;2 L& H; k$ p* J$ c" I, P# t0 D2 ~
- (defun set_tile_data_pt ()
+ j$ t2 Q% q' D' E. e - (if (not (assoc 11 elist))
1 @! f! E+ ]$ I' C - (mode_tile "data_pts" 1)7 L" T4 q) f3 \ J
- (progn% Q7 X. i9 F" ^) r4 I
- (setq data-pt (cdr (assoc 11 elist)))& V5 @# i! x, F3 ^
- ;; display points with current precision./ I/ d- i1 q" }3 ^% |
- (set_tile "dxtext" (rtos (setq x1 (car data-pt))))
: q, G1 p+ K1 z+ R. I; u+ ? - (set_tile "dytext" (rtos (setq y1 (cadr data-pt)))). i- n1 E' h+ G8 [8 k( @, A0 ^6 h
- (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
" H; R) I8 Y: m+ w- r# f9 j- f - )
' T0 G0 t$ s0 E% j1 C - )
) J7 i8 `- d6 ^; T - )
( @4 W- v/ R0 Q) B8 ` X. z# C - ;;
; ^+ h4 i& S X4 p* q8 J) m% i - ;; Fit curve, fit spline, or smooth spline surface setting
7 c6 ?6 N. U1 ]% r - ;;
8 H! u- a+ j6 J* a {# a - (defun set_tile_fitsmooth ()
2 h' p) l i6 v9 V: `8 H5 t1 F; u5 B - (cond
# P: N8 o% T( T4 p - ((= (cdr (assoc 0 elist)) "LWPOLYLINE")
0 l6 Y2 Y. K& t' y - (set_tile "none" "1")( }6 i/ L' ^% k& i
- )
; R# M7 M5 B5 O/ x' Z - ((= (logand bit70 4) 4) O2 W: @/ {3 V7 A E+ a+ X
- (cond; ]! s* ?$ S/ l V) i7 U
- ((= bit75 0) i# {' h5 ^! ]* @
- (set_tile "none" "1")0 B$ G3 A& }5 p3 X \) m) G
- (setq spltype 0)$ `0 p. T0 @+ X' C! X) b" u9 l
- )
6 c4 @0 G' e) O$ | - ((= bit75 5)
( D6 e* a. S5 L7 V' O3 `5 Z6 I - (set_tile "quad" "1")
/ ~, ^6 a5 g6 e7 j9 O, H: l - (setq spltype 5) z0 X" ?4 r; t0 m, B" V+ g
- )" w) E) G. j4 c. u
- ((= bit75 6)3 z7 p3 j' u0 N' z% W$ Z
- (set_tile "cubic" "1")" i8 ~/ N4 T; Z) H1 n! D
- (setq spltype 6)
' }3 L+ p/ o% G% ~ - )
8 C, {3 O8 b! K$ e - ((= bit75 8)
$ H) z( Q4 k: R" C8 |# H, Z. ^ - (set_tile "bezier" "1")
5 f' d/ r" Y; J - (setq spltype 8)
1 u5 B- b- U' Q7 J - )
( \) d. x `3 n, Q - )4 j; I1 A: y9 O3 m: C; b
- )9 Z- O' G2 h. E1 U S0 u, [/ N+ W
- ((= (logand bit70 2) 2)" E- r* M4 u* Y3 R
- (set_tile "fit" "1")
. k6 e) t9 ?% ], ~/ ^( Z - (setq spltype 1)/ G' T* Q' e$ G7 a3 }1 L
- )
, q0 d5 W5 Y+ | H: P! z - (T (set_tile "none" "1"))% V* o, L/ \6 E9 g
- )
& k7 ]- y/ `) p: c8 g& Q( {2 Z$ W2 N5 |1 M - )5 r' V/ s9 k+ x* i) h% D
- ;;; W8 J( b5 v6 ?
- ;; Closed or Open mesh and polyline setting
9 E6 Y7 c# Y# D) P3 Z# w2 x1 C - ;;: f, U) e0 ~: E
- (defun set_tile_closed ()
* t5 j. q( f5 b+ A( n0 Z% G - (if (= pltype "3D mesh")- { ^ L4 k {1 v# e1 g6 E4 G
- (progn) p5 a) X# x* N: R- ?$ V) N$ y
- (if (= (logand bit70 32) 32)
5 s! ^1 E5 @7 Q9 T, h - (set_tile "closedn" (setq closedn "1"))
8 b* D: }" Z4 I0 \ a - (set_tile "closedn" (setq closedn "0"))
2 F. f- o# o% J4 p! w5 ]' ~ - ), b: [; N p7 z7 [- v. _6 H
- (if (= (logand bit70 1) 1)/ S z- ~7 k k6 Y
- (set_tile "closedm" (setq closed "1"))1 ^& \$ x2 F& [3 A
- (set_tile "closedm" (setq closed "0"))
5 [7 C8 r$ h& J( X/ s! f: ^ - )
5 P& ?$ U. r5 |- S$ O - (setq old-closedm closedm old-closedn closedn)
% }, M: C3 Q5 ?" C' q - ) }( N0 m H. _1 f4 @
- ); x4 h6 \/ q' e% F8 O5 ]0 J' E
- (if (or (= pltype "2D polyline")
" T# a+ I9 `3 D' ?* v3 F1 P - (= pltype "3D polyline")" n" t/ O* e% s: s
- )' f$ \ k* E, _% @6 t+ Z: V
- (progn L4 u! b5 Q/ ~ {& f9 H& u
- (if (= (logand bit70 1) 1)
( {, i3 J! K% t( a' T - (set_tile "closed" (setq closed "1"))
* S- o3 i, p1 C, V - (set_tile "closed" (setq closed "0"))' [0 r8 s- ?9 V4 I) ~0 `# a$ t7 k" X
- )
8 {& l* P1 \+ O - (setq old-closed closed)
3 L" k- T* k% s. f+ \+ x* b - )
, s. k( t( k" {+ S - )3 Z3 ~$ w) j J3 m" o. t
- )* q1 ^4 p5 j# l0 J+ b2 A
- ;; Set common action tiles
) X6 y6 i( P% W4 i0 f/ b - ;;4 S; _( h# T# @
- ;; Defines action to be taken when pressing various widgets. It is called
( {2 w+ O4 _; I' n/ ^& u - ;; for every object dialogue. Not all widgets exist for each object dialogue,- q, b' f# ?7 y. e% x& r
- ;; but defining an action for a non-existent widget does no harm.
" K# i4 B0 Y- e A" F0 ]7 y$ A# N3 e { - (defun set_action_tiles ()
$ G# K6 E$ u8 r8 @# e3 K- W& G O - (action_tile "cancel" "(dismiss_dialog 0)")" l% A5 Y8 I" C- P9 T! o, `, r
- (action_tile "accept" "(dismiss_dialog 1)")4 k4 |. Q: n8 l; L% i1 x( v
- (action_tile "help" "(help \"\" help_entry)")9 ?' B6 w0 t% T' P; N
- (action_tile "b_color" "(getcolor)")1 I8 f& [7 ?0 W9 V7 c/ _
- (action_tile "show_image" "(getcolor)")
* c j7 @- p* x+ e0 _" T; h; C - (action_tile "b_name" "(setq elayer (getlayer))")
- T1 N! _6 ~* I2 i4 s - (action_tile "b_line" "(setq eltype (getltype))")2 h3 U6 ?* u) b& C0 E' C
- (action_tile "eb_thickness" "(getthickness $value)")3 B: u1 e! i5 z2 y# A! i; m
- (action_tile "eb_ltscale" "(getltscale $value)")7 C% r0 Z/ F* Q9 A; i
- # C6 ^7 e8 J* X; t) c
- (action_tile "pick_1" "(dismiss_dialog 3)")5 E+ w8 W3 g) E! o6 E
- (action_tile "pick_2" "(dismiss_dialog 4)")
, R* ]# H# |! H* C! Y1 \" W - (action_tile "pick_3" "(dismiss_dialog 5)")
4 l8 F$ { @" l+ h - (action_tile "pick_4" "(dismiss_dialog 6)")
% g. w/ m e t2 x8 U ~- j/ v - (action_tile "x1_pt" "(ver_x1 $value)") L8 o, ]" i% J/ O4 V- F
- (action_tile "y1_pt" "(ver_y1 $value)")6 J* k3 f# |# g( s- D# [0 |) e9 ~
- (action_tile "z1_pt" "(ver_z1 $value)")
$ Q# O# O' `: b- \& z - (action_tile "x2_pt" "(ver_x2 $value)")
0 W; s, H0 _5 f/ K: L# c) `- X7 x - (action_tile "y2_pt" "(ver_y2 $value)")( @* T+ D- t2 e8 F8 a
- (action_tile "z2_pt" "(ver_z2 $value)")( R, E. \9 ]7 h' R+ I$ m$ h
- (action_tile "x3_pt" "(ver_x3 $value)")
( q& z9 f6 i" I# [" c - (action_tile "y3_pt" "(ver_y3 $value)")
$ G( m8 q" x8 ?2 R! q4 k: ^7 Z - (action_tile "z3_pt" "(ver_z3 $value)")
7 w5 T% T* c3 j - (action_tile "x4_pt" "(ver_x4 $value)")
/ s1 h6 u7 d1 }3 ~3 T - (action_tile "y4_pt" "(ver_y4 $value)")7 K" Q3 g8 e3 m) x7 G
- (action_tile "z4_pt" "(ver_4 $value)")1 q3 n) E u) H" e" G6 T
- % H& Y2 G n, A$ V: s
- ;; Action tiles for Xline & Ray
8 e$ a/ C5 e+ c- R5 u f/ e - (action_tile "xline_x1" "(ver_xline_x1 $value)")$ \# }2 c( m/ R4 [; S2 a" f
- (action_tile "xline_y1" "(ver_xline_y1 $value)")
8 m1 L& O" ?: H4 i2 b - (action_tile "xline_z1" "(ver_xline_z1 $value)")8 f5 K) {% j) C$ v5 u) y" W
- (action_tile "xline_x2" "(ver_xline_x2 $value)")
0 V4 n9 r: v5 I/ A0 ]" I - (action_tile "xline_y2" "(ver_xline_y2 $value)"): B5 S) L9 X, k! i$ Z0 j" o8 Y; c
- (action_tile "xline_z2" "(ver_xline_z2 $value)")
) B; S/ w( D9 A" B( ?5 U: T. ~ - : V7 k) H# w; d! I
- (action_tile "edge_1" "(setq edge1 $value)")0 R" o" j3 w: q. q q6 y* Z
- (action_tile "edge_2" "(setq edge2 $value)")
- i$ N% V% a6 x# c; S7 w - (action_tile "edge_3" "(setq edge3 $value)")
9 ~8 p: k' `2 l) ^$ ~4 [ - (action_tile "edge_4" "(setq edge4 $value)")
/ d2 p' U8 u* w
8 E6 N' n, N4 U- (action_tile "radius" "(ver_rad $value)")
7 P, T& n, O; H# M: k - (action_tile "st_ang" "(ver_ang1 $value)")+ ~. `9 X4 v8 |
- (action_tile "end_ang" "(ver_ang2 $value)")
% u2 N4 B; q1 C6 C; K4 a3 o) h - (action_tile "end_eang" "(ver_eang $value)")
; {* w+ s1 [9 X6 w% _2 t - (action_tile "minrad" "(ver_minrad $value)")
* Y9 \0 Y4 e" \8 ]- G; [ - (action_tile "majrad" "(ver_majrad $value)")
* \; Y! \) b# F1 Y
) C' _7 M' {3 l' t4 H- d- (action_tile "xscale" "(ver_xscl $value)")
# C, f: |# v% f Q' \8 P Z - (action_tile "yscale" "(ver_yscl $value)")
- H2 Z2 [; | M - (action_tile "zscale" "(ver_zscl $value)")
) s; `6 O- L6 F/ Q - (action_tile "rot" "(ver_rot $value)")! p$ d0 c4 y( W A; g: D. I$ s
- (action_tile "columns" "(ver_col $value)")
# q6 _$ z/ ^6 _" w; o - (action_tile "rows" "(ver_row $value)")8 r) c; S! e+ b- c+ p
- (action_tile "col_sp" "(ver_colsp $value)")2 E- V8 k" {5 ?" ^0 g
- (action_tile "row_sp" "(ver_rowsp $value)")
* b s3 S' c2 T: Q$ b
# r; g1 i* A1 _) T; H' b- (action_tile "hght" "(ver_hght $value)")
7 `& i+ d+ A# \2 s( O - (action_tile "wid" "(ver_wid $value)")
( j/ `' o" n" f1 ?8 y) Z - (action_tile "obl" "(ver_obl $value)")- v6 _( ^: l6 {# d" m
- (action_tile "style" "(style_act $value)")
8 d" `& ?8 w1 D: W - " e0 j8 A9 V% h1 [ ~, W
- (action_tile "t_string" "(ddgettext)")
* W% g/ z3 }) ]1 Y - (action_tile "tag" "(ver_tag)")
; J- A2 B1 H: k8 z3 ~ - (action_tile "prompt" "(ddgetprompt)")
; ^- @. Z, w1 s - (action_tile "bkwd" "(setq bkwd (atoi $value))")* d# [! [3 V8 m
- (action_tile "upsd" "(setq upsd (atoi $value))")
) D* Z) ^5 y* l( K - (action_tile "inv" "(setq inv (atoi $value))")
# s: H4 U5 y* Q/ [; R0 W; \ - (action_tile "con" "(setq con (atoi $value))")& j* K3 W7 {' V2 R' V! `- F i
- (action_tile "ver" "(setq vfy (atoi $value))")
% s2 ?3 B( w# `+ v( G, U- l - (action_tile "pre" "(setq pre (atoi $value))")6 b: N( N1 ~9 `; ~
- (action_tile "popup_just" "(jlist_act $value)"), J0 Q3 n7 f: M* W3 E! j/ [
/ }& `$ Q/ `1 q+ }- (action_tile "closed" "(setq closed $value)")8 h2 L' I. q1 r/ u) f) x6 ~) O
- (action_tile "ltgen" "(setq ltgen $value)")$ ^2 b9 a: o% v' a1 {) V
- (action_tile "closedm" "(setq closedm $value)")
: Z, ]: {' n2 C5 o5 R - (action_tile "closedn" "(setq closedn $value)")9 t) I0 t" u" s, a+ S- E/ `
- (action_tile "next_v" "(next_vertex)")
* I0 W2 V6 e, W Y0 B, o1 A( |! j - (action_tile "xcliponoff" "(setq xcliponoff $value)")
+ m- N" |: w8 w/ Y7 X2 T- o - + ?5 s# j; U& X& { ^
- (action_tile "next_cntlpt" "(next_cntl_pt)"), y1 B& H2 ~+ A& d5 ~$ y
- (action_tile "next_datapt" "(next_data_pt)")
* v \( w1 } f' N - ! h; ~ y! v+ l. p, g( a6 q2 D
- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))"), W- M, O: A! z/ @7 C& r
- (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")7 x) V' j3 s: U" \' s
- (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")
1 J8 b' h1 Y& F" ~ - (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")" }0 j4 Z. o+ e4 F
- (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")
) R6 G7 s' O) M - 4 d8 k2 P1 O. N: ^
- (action_tile "u" "(ver_u $value)")! {8 y7 u+ w0 @6 r) R4 H
- (action_tile "v" "(ver_v $value)")
/ U% V. K. M4 b# K - )( P/ ?0 L% K l; k0 J- n
' ^% ?% g1 b. h( ~- (defun ddgettext()
! u) h; o' N1 f - (setq text (get_tile "t_string"))" V: ]$ y) r" |3 b% n; R. l9 P) S
- )* d8 o- } o. f7 Y5 d$ j( E+ C9 f2 p
; n* O* c; t. U# |& B$ n( R- (defun ddgetprompt()+ m( W5 P9 p7 @& L8 s* A
- (setq atprompt (get_tile "prompt"))/ G7 U3 O4 U E+ `1 i- g) d
- )3 d* V9 n7 n& {* x& P- B
- ( y$ c+ r# S/ ?+ k5 r* a
- ;; As OW doesn't support disabling of individual radio buttons within
0 c& s3 N8 h( I( K8 }& O - ;; clusters, a check must be performed as to the legitimacy of the
, G! D5 N1 T4 J: g! P( g - ;; button pushed and reset if necessary.- i) x% n$ C; F- W
- (defun radio_gaga (pushed)
; j; X: ?2 V" S v3 h: O$ ^/ ] - (cond3 |1 \& n/ [% U J0 F
- ((and (= pltype "3D polyline")1 p8 h" w0 B9 k9 C
- (or (= pushed "fit")
) h r; n6 x& d- i- Q - (= pushed "bezier")/ J3 a$ \& z+ d! q& C; U
- )( i. ]% G; Y. g( ^. `/ N
- )
& R0 y; L. \' b/ _: ]6 { - (set_tile "none" "1")
E( @% F* _7 R2 M& k - nil( Z' @* ?- A2 \* U8 } H f
- )
% x! T, L' B" I- {3 p - ((and (= pltype "3D mesh")
7 R U' ~$ H# H9 N y! a - (= "fit" pushed) f$ r: l; H% P, o( s9 Q" L
- )
+ j- X S% o) F0 v( \2 K( Z, H; o$ W - (set_tile "none" "1") b4 ?8 R% M: J0 g! Y& t
- nil
# G; P. m% [% f; W5 h0 s, H - )
+ W( ~0 y; l I9 E3 Z3 u. A - ((= pltype "Polyface mesh")$ h- O. F% h* L& j$ H
- (set_tile "none" "1")
* k7 j# Q- \! r$ T' ^, I' B - nil6 D0 ~. I' F0 S- A- G1 p
- )5 r* l3 i, t; {8 T. H
- ((and (= pltype "2D polyline")- }$ W3 l" K# Z/ A6 G
- (= "bezier" pushed)
8 g b" {0 V6 R0 m Q - ), U1 a0 u4 ?! {6 M" j P5 T* i
- (set_tile "none" "1")3 T8 ]7 B0 ]9 n8 C
- nil& B2 W; Q) y' X8 F
- )6 R3 g6 k9 j3 e+ ?) z
- (T)+ N% r9 t( m+ R, j! A8 {* H
- )- _4 F& W1 n3 b6 j- _
- )9 W4 n6 Q- A) H5 {
- ;;
4 i. f0 k2 q% D8 e6 @2 x - (defun set_uv (type_n)& J: B6 {, J" k% M
- (setq spltype type_n)$ z) D2 l5 h. R B% i# G
- (if (= pltype "3D mesh")$ a3 U% Q, G9 N! K
- (if (= spltype 0)* j. y' B' U7 t \) i0 M0 d
- (progn
. s2 n% g/ s7 E5 W - (set_tile "u" (itoa (setq u 0)))
y- x- {6 H& o4 o1 N - (set_tile "v" (itoa (setq v 0)))' K3 z/ {% J9 n/ f6 A/ J
- )
" l1 m+ z1 P$ R0 q @0 Y - (progn
0 y& \/ d1 h" a/ m* S9 O - (if (= u 0)* _" I9 k* j- r8 G# V
- (set_tile "u" (itoa (setq u (getvar "surfu"))))
: \5 z4 h! B! M5 U( V - )
" g& a3 }& Q, \; k3 n - (if (= v 0)
, K! |2 D' ~3 Z/ U - (set_tile "v" (itoa (setq v (getvar "surfv"))))) f$ z6 d, J. J6 s" D
- )
1 F: c2 g- p1 h$ I# M4 M; p - )
0 n$ H# E( S) v) S2 U+ B - )/ } E _: z. ], V/ U9 Z5 k E
- )
( f7 N5 G" Y; ]( a1 r6 R% m* b - )1 V# T: x: J6 _! a8 U1 ?2 B
3 k5 l+ R: ?9 Z% [2 A& V
: O2 D4 s( ~9 m( p8 Z5 Q- ;;, o; ]+ x2 g/ m" S% J
- ;; Verification functions; w; w% k; \9 F( b
- ;;! e. r! H7 s! m! B# N4 B' g
- ;; Verify distance function. This takes a new X, Y, or Z coordinate or
: a. [' ]* }2 s' v! \ - ;; distance value, the tile name, and the previous value as arguments.& i, b- D1 S" c! O' {' a/ H7 m# e& c M
- ;; If the distance is valid, it returns the distance and resets the tile.! u$ I3 z1 q6 G% h
- ;; Otherwise, it returns the previous value, sets the error tile and keeps3 ?& j) s+ _; d$ X) u
- ;; focus on the tile. Shifting focus to the tile with invalid value can# p% j& E3 S r6 ]- z, }) ?# z3 q* {
- ;; trigger a callback from another tile whose value is valid. In order) F& r/ D0 X2 \9 W {
- ;; to keep the error message from being cleared by this secondary callback,
0 X4 G) L- h( r$ r - ;; the variable errchk is set and checked. The last-tile variable is set
+ o: n% B% F+ b, E X O' b; v; | - ;; and checked to ensure the error message is properly cleared when the
% h4 ?( U- t' V: S - ;; user corrects the value and hits return.
$ g: N% l7 B% X) y - ;;* n% p+ { l" B
- (defun verify_d (tile value old-value / coord valid errmsg)+ A( b$ B5 Q( y1 p) W- |3 d
- (setq valid nil errmsg "Invalid input value.")8 S" [- R8 o9 ?/ I% j( l1 Y
- (if (setq coord (distof value))8 Z% v1 Q9 f5 J
- (progn: `* G& D n# v3 Y* N' E7 _
- (cond7 Z1 |4 P1 X6 g9 h4 X1 L4 N
- ((or (= tile "radius")
9 j# K: F+ u$ L* z+ X - (= tile "hght")
* D( G& X( M- P- m" U - (= tile "wid")
, j' {+ ]$ w3 a5 d - (= tile "majrad")) B# G+ O% Q4 ^1 Q% ]
- (= tile "minrad")1 f7 @9 {+ t% i Q+ w1 X3 n
- (= tile "eb_ltscale")1 s I: q3 i6 t+ B( \
- )
( t9 {! d% N! \$ I - (if (> coord 0)8 M, T! q2 S5 k) E4 S3 d
- (setq valid T)8 [) n y5 P3 Y+ R) ?0 E& b
- (setq errmsg "Value must be positive and nonzero.")" d" |2 J& `9 Q y! q
- )7 ~& ?( }' }9 W' b' g, o, r& A
- ); \# |; ?$ a" Q' x) f
- ((or (= tile "xscale")7 y0 h& q% ~! E1 }' Z
- (= tile "yscale")
, Y' B0 L) H! e3 H* A: j - (= tile "zscale")* B3 T1 ?; Y3 [' d; ]& \9 C- E
- )
- a1 q% C% ^# L3 M/ E! O - (if (/= coord 0)& D- _3 i R6 b' P8 [
- (setq valid T)
8 t' I% ~6 Q4 M7 c8 b! C0 N - (setq errmsg "Value must be nonzero.") h" [/ ^: O6 g# Y" r+ r) P+ w
- ) V- W0 `" H& z. O8 E) h% `
- )- g4 @, ]6 G( V/ l' v3 @ c$ N2 B
- (T (setq valid T))! ^' s) A" j) |: v
- )! {$ h& @) e D8 ~0 u+ Z! X
- )" \# z7 O6 _% i! _, {. c
- (setq valid nil)
u, p0 b% |, g& O* r2 x9 i - )
" L5 s! w0 m' \2 O - (if valid
* Z$ v( K g' W- e - (progn9 z, C8 k! ]" P1 G
- (if (or (= errchk 0) (= tile last-tile))
; U5 M5 S$ v' f8 @( y# p( Q - (set_tile "error" "")
8 k1 F. s% C- @ k( c - )3 i: m) G/ u, G0 W1 U8 z
- (set_tile tile (ai_rtos coord))! h: T% |, C+ W! w( g
- (setq errchk 0)" I& O* l+ |& S" s& ]3 o
- (setq last-tile tile), T: Z) S+ {6 V6 k0 k
- coord: v: v- x; o/ |( o
- )
7 p; y9 Y- X' F4 K; ?+ V [! A - (progn
; H! x5 N, u# N- c, t, ^; v - (mode_tile tile 2) ; Move focus to offending field
! V/ s: V; F: }! K t$ G" B8 a8 ` - (mode_tile tile 3) ; Select offending text4 s9 M. }# K! p" q; n
- (set_tile "error" errmsg)7 g* b C! D% e J" `
- (setq errchk 1)5 O \- e M# D+ S% c6 ^9 X' _
- (setq last-tile tile)
! t3 D3 T7 g. K. d - old-value/ v/ X. A( f5 w3 A2 @$ u+ Y
- )
: ?) `% ]5 c5 \ - )+ e# F: Z2 V' X) n0 i" \
- )
# { Y2 D [4 f - ;; Function for Xline coord edit box checking.
1 Q6 U# ?% x' t - (defun verify_xline (tile value old-value / coord valid errmsg)
" y2 l+ \# R( n& F* D5 \9 _6 J - (setq valid nil errmsg "Invalid input value.")% u$ O+ \! M& B8 ?" B
- (if (setq coord (distof value)) L$ i8 k l6 q' u
- (setq valid T)3 Z |0 c; S% Z* F& K
- (setq valid nil)
8 {9 X, u5 j7 P - )
5 B( ]: S- k! x - (if (and coord
0 \9 y. k6 N* t; M2 N7 S" G8 H - (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) )) R5 t; b' h5 ?1 I k5 x3 t
- (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )
8 d8 m3 e" b# J) w& f4 d }3 b - (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) )2 I" `3 w0 z, X$ a: n/ L1 `
- )
# q4 L: b3 P% g) g& d/ e; _ - )' j' W7 r/ l; u8 p
- (progn
$ `' t1 g/ p. G9 K" a1 X - (setq errmsg' \, K) h2 {# [# j
- "The Root point and the Second point cannot be equal.")
' @- R/ t7 \5 k U" }5 _. h - (setq valid nil)
* M7 L! T0 _. \+ U - )
" |/ D4 A- W4 ^- g8 l; Q( ` - )5 H4 e7 e j' Q# o3 b- ^
- (if valid
! p. A/ N [ `( L, | - (progn
! ]' q' h$ p h - (if (or (= errchk 0) (= tile last-tile))4 b; c x: b* s8 U
- (set_tile "error" "")- G: d5 z7 n j# @
- )
: v6 N# e [# G6 \! a - (set_tile tile (ai_rtos coord))8 A }& a, t" d) B9 R+ v
- (setq errchk 0)1 ?0 o' m4 {2 i; j
- (setq last-tile tile)
& l0 W/ U# a# s1 o. O. w' k - coord$ I, T* z' t$ w5 Q ^/ l W) a a
- )' u5 Y" K# u$ R) I
- (progn+ _: L, e9 [2 P/ o
- (mode_tile tile 2) ; Move focus to offending field& D8 X4 x3 I$ i( E+ A- i! ]
- (mode_tile tile 3) ; Select offending text
8 D ^! [1 |; G6 L - (set_tile "error" errmsg)
; t7 e6 K2 s8 @' m: |, O - (setq errchk 1)
; s/ m- T8 J' W9 i - (setq last-tile tile)" g# P! N* }6 N! _9 D/ H
- old-value6 w+ k+ B: u: n
- )
& S- m8 z" ]( p; H7 d! n9 l: x- C - )
$ p5 `) B! V) q3 { - )
# F- r# p* b' M% M# I
4 ]" p! w8 ]" _' x' O- ;;$ {9 O) J8 A7 ^7 l9 k8 f n
- ;; Verify angle function. This takes an angle and a tile name as arguments.
0 O* }/ A ?1 q6 i1 h: K - ;; If the angle is valid, it returns the angle and resets the tile.5 k% A6 k5 d$ v# p; y$ f) M
- ;; Otherwise, it sets the error tile and keeps focus on the tile.3 z% r1 i, o( T5 e* u
- ;;0 p4 Y; m* D3 t( a4 j7 t
- (defun verify_a (tile value old-value / ang valid errmsg oblqmax)
# Q" Y4 P& ]6 t - (setq valid nil6 y/ e$ Y# H ?* D9 V/ ]
- errmsg "Illegal input value."5 R( s- n3 v2 R# R# S, V
- )7 `" v& O$ C9 N! g9 V
- (if (setq ang (angtof value))$ c& g S8 {0 n
- (cond. I* t7 }0 u( S3 `2 z
- ((= tile "obl") ; Restrict obliquing angle$ f3 }5 Z9 \ N& k: Q u& b3 `
- (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))- F' T, R9 k9 |+ ?5 ^* L; J/ N
- (if (or (<= ang oblqmax)
; I# }- U W1 l) l6 I - (>= ang (- (* 2.0 PI) oblqmax))
) X, [( n/ q. l8 R1 r! ?" v' P - ) ?7 E: [, n5 l
- (setq valid T)
Z* C0 [3 s1 C3 t* B - (setq errmsg+ y4 H0 l, [8 M2 t
- "Value must be between -85 and +85 degrees.")/ s3 Q j8 {# \8 V
- )- @) M) w5 i3 ]3 y* A" f3 F q
- )- A7 R' c; I8 b0 _# y/ E
- (T (setq valid T)) ; Other angles not restricted3 e5 \. u! G8 Z$ C5 x
- )' j6 k4 Q2 r( d7 b& C% B
- (setq valid nil) ; Invalid angle input7 _2 M3 o& ?- f1 `" S' A N0 K' y
- )
) u. Z3 {: Y9 j4 z) ~ Z7 a - (if valid/ d, R* `- a) y7 j' V$ t% E: J
- (progn
' ~8 `6 z2 R7 J( T3 u2 ~/ ]9 \ - (if (or (= errchk 0) (= tile last-tile))
& m8 M; c" x) c! A - (set_tile "error" "")
: S l% H8 O+ S Z - )! L( E# O# E# C8 v* ?
- (set_tile tile (ai_angtos ang))( n2 X. E9 x* j2 D* d2 v
- (setq errchk 0)
C$ I9 D& K+ X9 D% h% R: S5 B - (setq last-tile tile)* u) g# M: R4 G% C* Q Z) X
- ang
# E k j% m2 m, ^: F6 ]$ ` - ) m2 d& v) P' }* c+ d- @
- (progn
& l, y' {$ o3 a& R7 z - (mode_tile tile 2) ; Move focus to offending field
* ^# H) o( O; s# }8 ^# A1 D+ B - (mode_tile tile 3) ; Select offending text
7 ~+ M& x' P' `/ ?+ B1 r4 y; T5 Y - (setq last-tile tile)
4 @0 Y+ m! Q. r - (setq errchk 1)
7 R, Z. ?4 v# S( o( e6 I( E - (set_tile "error" errmsg)# ]) K l0 B$ ^% M- N% l1 ?
- old-value9 M4 r" r3 q* R+ @- K4 n
- )' b! l" y1 K4 y7 ?2 s+ d8 _" T, o
- )
, H$ x$ T% n9 F3 z* R - )4 P. x) K0 o# p* _
- ;;
' S( r3 b6 |) `1 z) a - ;; Verify angle function. This takes an angle and a tile name as arguments.7 [. F& G6 W6 J& e3 L1 T
- ;; If the angle is valid, it returns the angle and resets the tile.$ _# W( v+ j* h% G# B$ d
- ;; Otherwise, it sets the error tile and keeps focus on the tile.$ m; X7 p- O7 o5 {
- ;; This function is specifically for the end angle of the ellipse object. If
- G4 Z3 l, k' K5 G - ;; the end angle resolves to zero then we want to display it as 360.0 x4 O [7 X' A3 R* H3 R
- ;;
4 G6 V: j+ w1 x# C, e f - (defun verify_ae (tile value old-value / ang tempend)2 c$ W. A ~; _, H: W
- (if (setq ang (angtof value)); P0 e: t% ]5 l' B
- (progn
9 ~. }; E- G/ h m. S) i8 e8 E - (if (or (= errchk 0) (= tile last-tile))
6 \+ J2 h4 }5 J - (set_tile "error" "")
# ~- h/ d5 G" w8 w# R$ H# m9 ]3 @ - )
5 r( \5 _5 H+ G. m6 [3 [1 X( o - (setq tempend (ai_angtos ang))' p# T) h6 M, K0 S: E6 g
- (if (= tempend "0") q. E" z( I! P& ~) m% \
- (set_tile tile "360")/ M' b+ B; C! K5 k6 X5 d' T
- (set_tile tile tempend)$ ?' {) ]: \2 h; s: t9 b5 i
- )7 t" F6 S% s) A
- (setq errchk 0)8 M3 V$ X; ]& O* D
- (setq last-tile tile)/ @0 \# w" S7 N1 w
- ang' L8 O8 C* F" ]# Q! A/ Y" m
- )7 A* x+ L( s6 \# i' z
- (progn2 f! z, { ~* t2 r1 F1 y
- (mode_tile tile 2) ; Move focus to offending field
$ C2 U% r( s9 Q4 `/ K" X7 Q2 u$ R, \ - (mode_tile tile 3) ; Select offending text
q4 c" A! K2 |0 k& o - (setq last-tile tile)( C' S* c0 M9 _! P5 ?' ]
- (setq errchk 1)
- @& K( y# L; B: M3 W, ]4 C. t' I - (set_tile "error" "Illegal input value.")
0 x/ [) R% k( V3 d - old-value; K" A" `: N. _' f5 {6 w* ~3 \" p
- )
* U5 T1 z9 R" Q3 K% B, [3 ~ - )
3 u& Y7 O, {- d3 x2 T - )
2 P8 Z+ X/ k' ~8 s - ;;& B9 d1 D- T" K' P
- ;; Verify integer function. This takes an integer and a tile name as
0 b5 V. L; u& z - ;; arguments. If the integer is valid, it returns the integer and resets the9 e- N( S9 Y/ T3 Q/ T6 x& a
- ;; tile. Otherwise, it sets the error tile and keeps focus on the tile.
5 | @1 e+ u- f7 @& L7 N6 C1 J - ;;
+ k8 J, C4 A' l% I- c - (defun verify_i (tile value old-value / int valid errmsg)
: H& m3 S$ k3 e7 \( z, K - (setq valid nil): p p3 I4 l* ?! u3 E$ t1 B
- (setq errmsg "Value must be an integer.") H: ~7 x- w$ P4 M# B7 \/ P9 M) R
- (setq int (atoi value))6 Y5 B, o$ X* l
- (if (setq intchk (distof value))
x6 I( E) v0 @" P. ]0 U - (cond) v1 s1 P9 j% z, ~# c+ O! j
- ((or (= tile "columns") (= tile "rows"))
. {. C( O% k" M3 v/ A' p - (if (and (= int intchk)
+ g; D7 R7 z" Y3 K - (>= int 0), D) v/ N( ]' t0 }
- (<= int 32767)( j9 C9 w C9 C* a4 X/ _; S4 `
- )
f8 |* z; p$ M2 s( e* \ - (setq valid T)
9 p2 h1 N" |4 b7 g0 U - (setq errmsg "Value must be an integer between 0 and 32767.")
3 V2 o0 @, x4 X8 F) N - ) _& V2 j4 A' v" a7 l
- )
. R6 z0 Q5 d- [% @8 ~8 Q - ((and (or (= tile "u") (= tile "v")))& Z/ i4 I5 z) X" v
- (if (and (= int intchk)
2 _0 c% F# ^( O* q+ i. Z - (>= int 0)
' p7 U& D2 e2 B m% v5 I - (< int 201)2 ~9 A: n2 w( u r2 V B2 v, r* k' X; w
- )
, R' s1 s( i) W X: p1 O* j - (setq valid T)3 J. U" o+ Q- N, x: w8 Z
- (setq errmsg "Value must be an integer between 0 and 200.") G+ V' O+ n* A$ I5 `
- )2 Y: a$ O. p) g, ~, p+ A
- ). W6 T6 x0 t+ s4 g
- )$ r- }3 N) P5 Q
- )* x6 x8 J4 D" Q: }, S4 f
- (if valid" L1 M+ y e' {! ?
- (progn
( P4 i* k" d& \+ g - (if (or (= errchk 0) (= tile last-tile))
6 G% f) y3 w0 \+ i- y" W - (set_tile "error" "")
' l$ A2 h7 z' ?; p0 Q. C- S0 A - )
" y3 V, D! ~) C" Q) f3 c. h' @ }; x - (set_tile tile (itoa int)): N- _+ U; \7 E: ~* T, j# ?
- (setq errchk 0)
0 r& v' o, ~1 _. ~1 k - (setq last-tile tile)9 R. v2 E$ L; E1 T/ F9 |
- int
) P) r! L% G; z7 y - )8 P7 Y8 G0 k: H4 d
- (progn( s3 F! ]7 g( M! Z. o8 G. E
- (mode_tile tile 2) ; Move focus to offending field
; s* H( W# b! m8 c - (mode_tile tile 3) ; Select offending text# R: W$ r# ~& S! d
- (set_tile "error" errmsg)* {$ S6 l5 E( X5 T& o3 r( j* p7 E
- (setq errchk 1)
) W; @; l, s$ Z - (setq last-tile tile)" U, u: }& _; @8 q/ ?/ L6 A
- old-value
1 L3 G5 J v7 h& ?" P - )
/ V; w" B" O7 J6 b# ?! \ - )$ |& C+ V5 L/ [8 w" T9 Z
- )2 V" r+ }5 y( r4 P: C0 B* ]; I
- ;;
% h$ r( c" J8 z, j6 W - ;; Functions that verify tile values for integers2 z- v) r/ Y9 w5 ? W; Q2 ^
- ;;* C0 v+ w0 ]# c# ~1 I. o
- (defun ver_col (value)& E* M" c5 R1 R2 L |2 b
- (setq columns (verify_i "columns" value columns))# o5 w. s" x, u; w
- )5 d. i1 v+ G- k; N$ @2 P' m( c0 p
- (defun ver_row (value)
) o1 m; o1 g' e4 y3 t0 |3 l- n - (setq rows (verify_i "rows" value rows))4 s/ h4 M/ z) U; o
- )
% L1 J) m9 Z" U1 f' e - (defun ver_u (value)
# E( J! Y; H! I) e7 W - (setq u (verify_i "u" value u))# p! S2 A0 I+ S) I. L
- )% C/ R3 c1 U# l! J' W# X
- (defun ver_v (value)
( V2 C5 q! w, ^3 v- n2 ~0 G9 T - (setq v (verify_i "v" value v))
3 y! o& ?" _/ i+ d/ J - )
- `5 _. Y* h; U# w9 j - ;;
! _: ^* g Y: |" j - ;; Functions that verify tile values for reals3 F6 w- B; w9 R8 u9 k
- ;;7 e8 ]/ O) g! x [! j0 s4 h; `
- (defun ver_x1 (value)
5 N U0 ~% H0 O5 R5 N& U# ? - (if (setq x1 (verify_d "x1_pt" value x1)) (calc))
. P9 z \1 V9 ^) f3 x. L - )+ _+ G! k$ `( [3 u1 `
- (defun ver_y1 (value)2 t' w# |, \/ n: r
- (if (setq y1 (verify_d "y1_pt" value y1)) (calc))5 k( h' | s" ^
- )* [' [: R P8 ~ g
- (defun ver_z1 (value)6 g$ z( W. v2 v
- (if (setq z1 (verify_d "z1_pt" value z1)) (calc))2 ]5 _1 H2 ?8 D
- )
# {" `5 Z |9 s6 S: ^" _# \0 } - (defun ver_x2 (value)
) l5 Q. t& y+ c! P# s5 E# A( ^; N - (if (setq x2 (verify_d "x2_pt" value x2)) (calc))" Y! @8 J$ {6 N+ [" F( b
- )4 a1 W& g4 b+ R; _
- (defun ver_y2 (value)
: \. ?, g n& g2 c# t - (if (setq y2 (verify_d "y2_pt" value y2)) (calc))
* y! [. [! Y& N8 u) x+ |2 H) ?& l - )
! I8 N+ X' S5 H; b* }' ]' J - (defun ver_z2 (value)
4 u R/ [& e3 c. t! q - (if (setq z2 (verify_d "z2_pt" value z2)) (calc))
2 _' o; p7 Q: F- ] ]. f2 O - )
! `* A8 b0 i. `/ P7 y# T - (defun ver_x3 (value)! m* c! {5 \7 U1 o" C2 O; [
- (setq x3 (verify_d "x3_pt" value x3))0 e( R8 O! X7 d, l1 D" }
- )3 q- r) @9 t1 v
- (defun ver_y3 (value)% m7 C; X$ Q0 A1 ?% b, u
- (setq y3 (verify_d "y3_pt" value y3))
( t, ~( [7 a' J% g+ k) H2 P - )5 b$ g* [9 L; S
- (defun ver_z3 (value)
) o5 |+ I; s' R - (setq z3 (verify_d "z3_pt" value z3))
% \0 r/ W1 ~+ B - )% q. w+ H+ O5 A- D% N& x4 Q* l/ p
- (defun ver_x4 (value)
- Z- [- P3 h, H9 P$ m! z - (setq x4 (verify_d "x4_pt" value x4))0 _: q! m; s6 p" [2 }" f
- )0 i3 M5 y% |/ y) W) C
- (defun ver_y4 (value)
4 U4 n* o9 n* y q - (setq y4 (verify_d "y4_pt" value y4)) z1 E. R' G8 O6 \
- )
1 F3 f' J1 T* k9 X; a; Q1 c% S) }4 t - (defun ver_4 (value)
! a+ R8 I9 c! l) G E" P& e - (setq z4 (verify_d "z4_pt" value z4))6 J" N, y" n9 {5 ]: G! z+ @: m
- )
0 I- h, i3 A) C( \6 w B! g2 R - (defun ver_xscl (value)
. c# D5 \8 B5 E% v3 b - (setq xscale (verify_d "xscale" value xscale))8 z% `0 V+ x. d
- )
5 T& Y/ d* C! E/ d u3 X* } - (defun ver_yscl (value): b" U; f% o& [/ y4 @" P, E
- (setq yscale (verify_d "yscale" value yscale)): i3 k+ n- x* L, G
- )
8 r; X2 n& i1 t* r- O - (defun ver_zscl (value)
2 H6 k; v2 k; v0 C5 H - (setq zscale (verify_d "zscale" value zscale)). J1 s# _! |9 R
- )
' w& s, }6 ~9 U3 u# n5 A, j - (defun ver_colsp (value), m( Y3 }0 |2 ~9 t
- (setq col-sp (verify_d "col_sp" value col-sp))
4 W! i" x) M% y# k% i - )/ u% e. M$ D0 V, m. `; ^0 F' x( T
- (defun ver_rowsp (value)
4 P7 b! P) Q- k# ^ - (setq row-sp (verify_d "row_sp" value row-sp))
' a. D* W7 G- i" y/ ?/ | - )& U& o7 B* r3 x$ v+ S0 R/ l2 l6 ?
- (defun xclip ()/ r( q" Q$ ~% |* ~. M
- (setq xclipmode t)
& B' H$ c: h: O7 S. Q9 b - (if (= xcliponoff "1")
# Z' L5 K( ] }9 m+ w - (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")
: x$ d9 _1 B/ ]: Y/ W. h5 \ - (command "_.xclip" (cdr(assoc -1 elist)) "" "_off")% B R& E* H) D* u
- )
2 ]) I) o7 f+ F0 ]3 T' ^5 a - )
1 A& R: R& O, k' l" |' F% h - (defun ver_rad (value)
9 V; r7 `' \$ w - (if (setq radius (verify_d "radius" value radius))
6 `- S, \6 e R) k - (calc)4 _3 n; k; _9 W) G
- )
4 C. H3 d5 F! [7 u' S - )( W4 w3 e1 M1 \" c
- (defun ver_majrad (value)
) v! O3 p# \2 O1 U; T - (if (setq majrad (verify_d "majrad" value majrad))4 n5 }; h6 ~* z% N5 Y* c- p
- (ell_calc_newval "majrad")
7 x9 W2 y! L0 f' j6 J, q - )
! X/ ?7 o% B6 r! M! S - )/ R7 Y- X6 D+ N
- (defun ver_minrad (value). M; J- O4 ~6 j) V; x
- (if (setq minrad (verify_d "minrad" value minrad))" D& Y! I E$ B" e" \8 J9 N: b2 |
- (ell_calc_newval "minrad")
6 y8 l G( k" H- L: T - )7 C4 r9 n& L& i( V+ c
- )
9 n. h) w# n7 ?3 @6 q - (defun ver_hght (value)2 `2 `: H( y! ^+ I, J4 i3 H# v3 J
- (setq hght (verify_d "hght" value hght))7 ^) t9 f1 I' P) g+ `
- ): i2 [! |# M* d6 d* i# O
- (defun ver_wid (value)- }& w1 p4 H& f) n3 u% d
- (setq wid (verify_d "wid" value wid))
5 q+ n" M* i( V& r; S% s - )
1 d& K! \2 I1 [ - (defun ver_xline_x1 (value / temp)
; s, K' D3 W4 @8 M. K - (setq temp xline_x1)
' b }0 f! c# U0 c - (setq xline_x1 (verify_xline "xline_x1" value xline_x1)). L# t, O/ u, D0 C7 P1 P
- (if (/= temp xline_x1)
1 n( d4 C/ N+ b - (progn (modify_xline 0) (set_tile_dirv) )
2 @/ T: Y2 R* _8 o' c - )
; |; q- ~! S) c f - )
' N" a" D3 a& |9 _3 C- T) g - (defun ver_xline_y1 (value / temp)
~8 T0 ^- b1 }' I; h% O - (setq temp xline_y1)% Y% B) c9 k j# H0 E
- (setq xline_y1 (verify_xline "xline_y1" value xline_y1)); d: `( i5 J6 F" x- ]% r( m
- (if (/= temp xline_y1): g+ N# w( V: ^
- (progn (modify_xline 0) (set_tile_dirv) )5 G% i# A# k4 r# l- z
- )
* l; W4 g8 d. k+ Y: S% r - )8 F9 i* H0 d* L: G. m) M) H
- (defun ver_xline_z1 (value / temp)3 G* |7 r+ ?- r) h6 j1 \
- (setq temp xline_z1)' v Y/ i( I' i+ C- `
- (setq xline_z1 (verify_xline "xline_z1" value xline_z1))
( o+ j2 N& j- k' c" s. Y - (if (/= temp xline_z1)
& T! k) n& F! p - (progn (modify_xline 0) (set_tile_dirv) )
. ?4 z* | Q0 R8 T, r - )
3 C& ], e9 X& J' x! l1 P - )
, j6 z& g+ z8 y0 |) H, ? - (defun ver_xline_x2 (value / temp)
v/ a/ o: c! J# m) ~ x v0 ` - (setq temp xline_x2)
# F) o4 m0 ~1 U2 n% i - (setq xline_x2 (verify_xline "xline_x2" value xline_x2)) I' W, D4 z+ q1 g
- (if (/= temp xline_x2)+ ^" l0 K: k8 `# j& e5 D! f
- (progn (modify_xline 0) (set_tile_dirv))
+ q* _, J/ p R. b: U - )
j1 E) P1 F- w3 ?5 C( X% V: e - )
/ j; F3 u* r5 t - (defun ver_xline_y2 (value / temp)* N2 Q5 k/ L; w7 }2 `+ o3 ? Y4 p' d
- (setq temp xline_y2)6 w+ V7 w5 d; b! s9 o; Y8 ^6 r
- (setq xline_y2 (verify_xline "xline_y2" value xline_y2))
9 P; X* H- Z) g! @ U" q: [ - (if (/= temp xline_y2)
+ ~$ p T6 W, p6 c4 e) m u - (progn (modify_xline 0) (set_tile_dirv) )" Z+ }! {- [7 o! g+ x
- )& [9 @0 ?& b' j( `+ i
- )
) V. \% E7 ~. k- z - (defun ver_xline_z2 (value / temp)" m3 a9 r& | U$ o. d
- (setq temp xline_z2)" ~/ e" G- c$ {* }$ Y0 V. k) W7 t
- (setq xline_z2 (verify_xline "xline_z2" value xline_z2))
3 S" t V& Y# L% S( F - (if (/= temp xline_z2)
# T6 h0 [7 @+ e, a' V! P - (progn (modify_xline 0) (set_tile_dirv) )
3 u4 I8 M. Y& S! e# q, ?& Q - )' v* z$ Y, K( }. g' A. b
- )
. c( N& V6 S+ h; p1 `3 P - ;;
+ M4 {- M' _$ B& r! D+ K+ J# v( M - ;; Functions that verify tile values for angles
4 L) [9 T) ~# b: z$ D$ B' G - ;;
* }/ N$ C. V2 y5 U& r5 t6 M- o R - (defun ver_ang1 (value)
6 I- P+ B: c, u8 y& s3 G - (if (setq st_ang (verify_a "st_ang" value st_ang))
$ Q) q: \& a6 U; T$ S2 i1 ]9 U - (calc)
: f9 T; e x7 G9 X! Z+ B' Q - )
! z, M6 d4 |1 N! n6 }+ m9 p1 b - )2 l' d8 j6 ~* Q6 k- C" d
- (defun ver_ang2 (value)& O& P: {8 B- A$ ^
- (if (setq end_ang (verify_a "end_ang" value end_ang)); B' K9 d0 y3 _4 W6 I" \& l; W
- (calc)
3 ?2 `! [1 W- K- w - )
; q' O. i/ y' g4 s - ). c0 Z4 ^( u5 _# V- X( y% R4 S. ^
- ;;" `; G7 s% }4 X9 K
- ;; Verify tile value for ellipse end angle. Handled slightly
! r: V6 H( ~8 Y" b1 K - ;; differently than the other angles.
( G8 ]$ R/ e1 T9 G* z, C- F - ;;( h# j3 R3 v7 F8 [" k! ] X
- (defun ver_eang (value)
1 C9 A2 d7 _; k; W+ D# M - (setq end_eang (verify_ae "end_eang" value end_eang))2 K P+ p. r2 n. y
- )
/ X. o; E9 u2 n- z - (defun ver_rot (value)
4 v% q0 q9 U: m5 W - (setq rot (verify_a "rot" value rot))5 |4 a3 {5 B& a* {& {5 l
- ), g9 ~! O9 O+ @: {5 \% h8 V1 w, M
- (defun ver_obl (value)# y8 j# ^) Y& k: c+ P$ o
- (setq obl (verify_a "obl" value obl))
+ ^, b" l |5 M# E* f7 K: N - )2 T7 ] e3 n8 R5 |& z
- ;;' J% L- V6 D C
- ;; Function that verifies attribute tag field for null string,0 P d+ s7 J, s; ?/ x
- ;; or a string that contains one or more spaces. Tile value
( c" A: N+ _! M+ L - ;; is also converted to upper-case as well.
6 `# d" m7 \. Z - ;;3 `0 \9 x0 y8 b$ T& A4 y! d
- ;;* S* F% h9 F1 ^; X1 [. S: a
- (defun ver_tag ( / tval)0 M f, O, J- K* h' {
- (setq tagval (get_tile "tag"))7 G7 B W/ q% {9 C2 ]
- (set_tile "error" "")+ n4 j% b, d% w
- (cond
: A" x$ g2 x Y: K5 M1 E2 Y - ( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))
" T4 s5 s) q9 j1 f - (wcmatch tval "* *"))9 ~6 i c6 n/ K- c
- (set_tile "error" "Invalid attribute tag.")
! a( u$ f1 l/ W) r* X - (mode_tile "tag" 2)4 W* m) l" C Y! x
- (mode_tile "tag" 3)) b: L" ]: m0 W9 O) A
- (t (set_tile "error" "")5 T; v0 D+ a' X+ `
- (set_tile "tag" tval)- ]" P, A/ t/ C( E* Q
- (setq attag tval))); Y: L! }4 L' a
- )3 c1 D! \$ o' X& p3 W* X. c; Z
- ;;& p# b9 v$ i* @- \
- ;; Calculation functions3 D3 P' {+ Y: y! }, A
- ;;2 \2 k8 G8 n* G! Z2 J- c' ^ \2 o. g
- (defun calc ()
. M c3 A2 u& A - (if (= etype "LINE") (line_calc)) h8 r" R$ W% [7 ]. F9 u
- (if (= etype "ARC") (arc_calc))
! S; o2 A% O5 I - (if (= etype "CIRCLE") (cir_calc))0 [3 ^* @) g- D2 U" y3 _' R( ]
- )4 G$ c" ^' B& R- ^9 t: ~
- ;;2 C/ k- u4 a; E N5 ^: k
- ;; Calculation functions for lines, arcs, and circles
) Y5 F- J$ t' J2 {; v - ;;) ]' c- g( W5 ?6 N: s e
- (defun line_calc ()
~( h4 O( z$ a6 Z5 E. M% R - (setq stpt (list x1 y1 z1))
6 Q& }8 @1 J2 r% d* ^& M - (setq endpt (list x2 y2 z2))% f. L# Y+ @4 w* [/ p! M
- (set_tile "delta_x" (rtos (- x2 x1))): h3 ]% }% I2 v2 {: U# {- p
- (set_tile "delta_y" (rtos (- y2 y1)))
4 U; |2 E! C2 H# J+ W+ e5 Z - (set_tile "delta_z" (rtos (- z2 z1)))
+ f; W; q K" m - (set_tile "l_length" (rtos (distance stpt endpt)))# e1 C7 V$ R) ^& U6 c3 x
- (set_tile "l_angle" (angtos (angle stpt endpt))). w5 L: o: m$ F3 `0 h
- )" h8 k, O# K5 ~ ^ l
- ! o# B# I: l5 m, O; Q
- (defun cir_calc ( / area units)# a* K& y! d1 f; j
- (setq radtest radius)
, W7 C: R8 j0 S5 ~2 ] - (set_tile "Dia" (rtos (* 2 radius)))
; W4 a/ a) u! C - (set_tile "Circum" (rtos (* 2 pi radius)))
+ g( z3 e" c! l" e# D - (setq area (* pi (* radius radius)))! s5 e+ c9 p: F
- (setq units (getvar "LUNITS")). m+ w) G# x) G$ I) s1 f
- (if (or (= units 3) (= units 4))& k$ P, }5 ^6 A! ^! ]6 k! r; J
- (progn5 ]5 \7 s, x/ ?2 S e
- (setq area (/ area 144.0))
: @: m: g& u6 K# \9 y$ r/ E2 K - (set_tile "Area" (strcat (rtos area 2) " square ft"))/ N9 X9 A1 u8 W5 @, z$ s C
- )0 r3 U' Z6 v& x' a6 o
- (set_tile "Area" (rtos area))- `' d+ v7 k W' x
- )1 G% T' C0 v: [7 N) A
- )
7 O; B, [& d' A" r
4 y2 d& G/ R3 h& h" s- (defun arc_calc ()! A% a3 p( g3 `+ t& D. V8 n
- (setq totang (- end_ang st_ang))
% L! {! D( b+ J, M3 t' L& C - (while (< totang 0)
3 A; [; f: j8 K1 M - (setq totang (+ totang (* 2 pi)))
6 I' m4 w6 v& n6 U& x- L - )
: J( q' B4 a7 x X' ?1 a' \. O - (while (> totang (* 2 pi)), v8 H9 R. _. A4 _/ Q: V
- (setq totang (- totang (* 2 pi)))
2 B, _6 \5 I/ L) O! \. p. l - )! |0 y3 O4 c' J4 C
- (set_tile "tot_angle" (angtos totang))
V1 ?: T7 A( H0 g( h. j - (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi)))): x0 f0 J! w/ l1 L0 {. L
- (set_tile "arclen" (rtos arclen))8 Y3 T& P& F& n$ z8 h9 G- k
- ). U( X% S% I% N1 s0 h/ f7 Q
- ;;
( J6 P. I4 u1 w. E - ;; Calculate the major radius, minor radius, major axis direction.
" W0 m, u+ v, _7 d; G* Q/ t - ;; Get radius ratio. Convert Start, end parameters to start and end
8 A, a u9 C5 l: E - ;; angles. Save Major Radius value in "old_majrad" in case the user$ z8 ^! k" _" a9 L4 c. [, E4 {
- ;; chooses to input a new Major Radius value later. It's needed to8 p! ]; P& @2 c
- ;; calculate a new Major Axis Vector value.3 w6 z R" `- J7 D; a6 v
- ;;0 K8 q$ e( c( x }& D7 ~
- (defun ell_calc ()4 {8 V5 I4 {: k0 A$ [1 a n
- ;; Get major radius from the major axis vector.) f) k+ o k% X( b0 I" t
- (setq majaxis (cdr (assoc 11 elist)))
, x* F" C) d% Y9 s# ~ r - (setq xx (car majaxis)) s, z4 \$ K+ g- c8 p
- (setq yy (cadr majaxis))
' {, M- f" q- R: Y9 u - (setq zz (caddr majaxis))( d u2 j8 v% D9 c) c
- (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) )))
0 F. W/ F$ R, w5 d - (set_tile "majrad" (ai_rtos majrad)) X2 D( a& O4 \8 I" k2 {* t
- (setq old_majrad majrad)
3 z% r [* e# c9 _3 T - ;; Get radius ratio/ q: S3 b8 ~" l( `4 @( b0 o
- (setq rrat (cdr (assoc 40 elist)))1 E4 J$ V$ y4 h; v& i* L
- (set_tile "rratio" (rtos rrat))
$ D7 t, ?' Z3 ` - ;; Calculate minor radius3 x/ }" H" ?" U* K, n- M, O. m
- (setq minrad (* majrad rrat))& F, A. T) g/ E+ z0 A
- (set_tile "minrad" (ai_rtos minrad))# M. ^8 E5 e2 ]
- ;; display major axis vector( m u; N5 N7 e6 n+ }9 O8 V
- (set_tile "Majraddirx" (rtos xx))5 D0 j* t1 M5 J; T& \6 Y# J$ x
- (set_tile "Majraddiry" (rtos yy))$ X8 ]/ ]4 Z* s
- (set_tile "Majraddirz" (rtos zz))+ x' K$ `$ q) ] {% R9 [! i
- - D) K6 x5 o7 T }3 I* P
- ;; Convert start parm to start angle3 {" \4 O$ |8 f/ q! P( v
- (setq stparm (cdr (assoc 41 elist)))+ a" T, S( }! X. i
- (setq vecx (cos stparm))
/ c- ^& N4 C# Z4 z( R4 T! A5 [ - (setq vecy (sin stparm))( b y+ L. _9 J
- (setq st_ang (atan (* rrat vecy) vecx))( e* z" r6 K. _
- (setq tempst_ang (ai_angtos st_ang))/ J0 [: i0 L/ k3 }/ o0 F
- (set_tile "st_ang" tempst_ang)" k2 F3 o# g- Q+ F- k- V- o
- ;; Convert end parm to end angle. If end angle evaluates to 0( A. `% j5 a2 E9 ]! z) {' ?. E2 L
- ;; degrees then display it as 360 degrees.
, ~2 J5 |6 Z6 `6 R: S* K9 O8 z - (setq endparm (cdr (assoc 42 elist)))& f% R0 q! Z+ i+ d$ o0 K8 _
- (setq evecx (cos endparm))2 l9 p# @" Q3 D
- (setq evecy (sin endparm))9 N% a% R- K5 H
- (setq end_eang (atan (* rrat evecy) evecx))+ ]" l9 b; a2 _! C! {9 }
- (setq tempend_eang (ai_angtos end_eang))7 [5 T) B$ t$ s
- (if (= tempend_eang "0")" x2 m5 K1 k8 ]6 `/ L( A N
- (set_tile "end_eang" "360")
) N% R; Y- q' p5 V4 K, }4 d- l% ? - (set_tile "end_eang" tempend_eang)" O% c7 `& Q. b" R- N. @! q- P
- )
/ {6 c& X: m( P+ I% b$ w - ;; Get area of the ellipse.
5 o' N6 P% l) v" M% w& V - (ell_calc_area)
! N8 a2 N; \2 ?& X! J7 k2 M7 R7 o; p - )
7 C5 U6 f* w8 R) l9 y, M5 @# n - ;; Calculate area of ellipse. If it is an arc then; u5 p d' `% ^' S0 U
- ;; grey out area display.6 }1 J" ~0 b# f1 P4 F- d0 R
- ;;- ]8 Q6 L6 l! A, D2 l
- (defun ell_calc_area ( / area units)! S; U H! e. H" O( I
- (if (and (= tempst_ang "0") (= tempend_eang "0"))( S6 H. |6 h2 J x3 i' }/ D
- (progn
8 U+ t$ X$ J* x( B9 b - (setq area (* pi majrad minrad))
& Q. F% a* _/ k. D$ V* K' v - (setq units (getvar "LUNITS"))! P5 N! O( S& U) X Q% h
- (if (or (= units 3) (= units 4))
: _: V7 p) e5 L$ s - (progn! b! @2 n' z& o! H5 t; b
- (setq area (/ area 144.0))
) { a9 `; v! R3 I - (set_tile "Area" (strcat (rtos area 2)" square ft"))
6 M) p% o l6 K: z- b - )
* c" z' R- |' ?( R& R* ~7 ]2 U - (set_tile "Area" (rtos area))
6 d. f [( S. z# Y - )
% `9 L8 x9 k6 T. i* D4 m$ C& j8 B3 ] - ), Q4 y8 Y% z0 \2 Z
- (mode_tile "Area_text" 1)
% t6 h; |5 E6 @- B$ O0 r - )
9 C( c- ]# D3 O; j6 Y4 p - )
- _# R0 F# C3 m5 a6 { - ;;
* ]& {8 ~: \% Z$ n - ;; Calculate new values for ELLIPSE
/ U' ~6 C: ?9 D, m - ;; Minor Radius, Area
7 |9 W+ |1 f$ |* j( { A/ V - ;;
. \) y4 `# G: J7 z3 @ - (defun ell_calc_newval (ell_tile)
3 g8 j( k F P/ n/ F: B' a - (if (= ell_tile "majrad")
9 X4 x3 U; i8 ^5 P - (progn
" @9 m' l; Q7 V' D4 u+ L - (setq rrat (/ minrad majrad))
; ?8 M1 h1 u8 N5 L( j7 i - (set_tile "rratio" (rtos rrat)); A- A+ R# Y: d4 Z8 U
- (ell_calc_area). m" o& G. I7 r7 W5 X* S; X' \. i
- )1 J% e! P0 P9 ?! d
- )
) S* Y& c9 Z& L' g! } - (if (= ell_tile "minrad")0 f3 O. P1 `- B. |0 s) v2 x
- (progn
+ }4 D7 w5 r7 }9 y; |* G - (setq rrat (/ minrad majrad))$ L; q: r# k; K0 Q; k
- (set_tile "rratio" (rtos rrat))
$ T$ {4 D: n% I O) M8 \ - (ell_calc_area)
# y% F/ t" Q& k( l, N: k" C - )
* u0 F2 W- B5 V( e - )/ ?6 ~7 a& q* Z
- )
5 O/ ?* `8 R" K* i2 N9 A% T - ; i& Y# [) o/ J$ c
- (defun set_dimen_props (/ loop a stl txstyname)
! v6 ^4 p( Y+ N- C( l
! z2 X3 a) S. l+ Y' O1 `: P- (setq stname (cdr (assoc 3 elist)) ; get style name8 c5 Y. [' a/ s% N- R
- stl (tblnext "DIMSTYLE" T)& c# U4 G W# k* y5 l* _2 t
- stlist nil). s, y! K* D& O% @, Z. I) O& @
- ;; Get all style names and list them in alphabetical order
! ]2 D6 m0 j. L* u% i - (while stl6 B6 w) s4 m( B* I0 S- M- N- X. c
- (setq sname (cdr (assoc 2 stl)))+ Q+ w% x0 U' _5 Y$ z
- (if (/= (logand 16 (cdr (assoc 70 stl))) 16)
$ W0 S8 Q) r8 ^8 N" A+ n! p - (setq stlist (cons sname stlist)))
' N& j# O" F6 w+ \ - (setq stl (tblnext "DIMSTYLE")))' K7 Y$ s" f) T6 u8 u
- 1 `; ?7 M. o' r/ T5 C
- (setq len (length stlist)
8 I* W* n& S {! m# `/ K - loop 0
+ b: Y3 q/ F: G) Q - dimsty stname
0 u1 ?7 @4 i5 Z - )" }, R) u# p6 l7 w" C
% b. g# B! J! z! U/ F/ m+ k- ;; alphabetize style list, depending on maxsort. N0 X: j1 @1 A+ Y: q Q
- (if (>= (getvar "maxsort") len)
2 v' ^, O8 W- e4 M, y3 z - (setq stlist (acad_strlsort stlist))- F: {+ L/ _- c( d9 n
- (setq stlist (reverse stlist)))
, u0 M. V% O( K( Z3 ?
" ^% } r& C$ |& P- ; *UNNAMED style (dimsty = nil at this point) is replaced with
( [: A( z7 ~6 S% s0 K - ; the current style. After R13, we require dimensiosn to have a
: w. t& j6 d/ L6 q6 E - ; dimstyle, so we plug any holes where we find them.
. ~2 } S7 d) M$ t$ I - (if (null dimsty); K1 b8 {; H1 X6 E2 B9 e4 ]
- (setq dimsty (getvar "dimstyle"))
^1 D/ V2 r1 L2 k4 w+ b4 K, w - )
; p9 ^2 a3 b' y - ; Show the styles in combo box J& {, P% ~* S8 ?; O; @. z, a, A7 s
- (start_list "mod_style" 2); P$ f7 C+ A' H& t& E! [! {
- (while (< loop len)
: U4 |6 H5 v6 t5 J2 I - (add_list (nth loop stlist))1 m% s; W3 x0 i
- (setq loop (1+ loop))0 U+ T0 a* I' C( _0 y3 b- y, _
- )" q: r9 { Q3 e9 x3 J H
- ( T& y: P( ^) ^1 s
- (end_list)5 H" }# \; x+ h
. _# [' J0 P+ [1 i, v- ; Hilight the style name of the selected entity" W; H) Z+ K* `, o: o" P
- (while (and (< 0 loop) (/= dimsty (nth loop stlist)))
/ z, @; c" A" }) J3 ?- \+ b2 X' S - (setq loop (1- loop))& i, A h& R! D. v( A
- )
- k- Q J6 \- l# C7 p- s - (set_tile "mod_style" (itoa loop))3 r6 X; R1 r5 K/ D! i8 @3 X
- 1 P7 S9 t6 p1 z' u
- ; The following is the list dimvars. It must be sorted in the same
7 P4 b1 X, a: K4 V) l& ]* R$ `6 ] - ; order as the resfub returned from DDIM (ADS module).
. `$ f! N! O6 `$ ^4 [9 q) O - , ^4 e T. \- H- w, ]
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
9 ^5 s, ]) ?% n/ `1 { - "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2". [/ z8 x Y7 f: X
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
! f& e3 {9 n. M4 v - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"* G( r$ Y! y7 J+ W
- "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"! r+ n1 U7 l/ B" l3 x
- "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih" l* y5 a; I/ f) h c; P
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"; p/ o! |7 f+ l5 \( c+ |
- "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
4 z5 Y2 v: P1 w% {' P# C6 U - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"2 S* b: [8 z1 ~# o5 v G
- "dimdec" "dimtdec" "dimaltu" "dimalttd"
" f7 S: o6 I8 g d* a& Q9 P, O M - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"
* j- m. a( t! I+ f$ E0 } - "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
2 M$ }! X; u4 x! K - "dimtxsty"+ ~+ X- O7 r A6 Y" N$ q5 I0 h$ n: R
- ))7 l1 x0 n1 ]: a4 n G) f
- (progn! J. O3 J8 a; ^7 M& `
- (setq sv_dvlist (ddimen_getostate dimsty)( M b# R# \' Z2 U# v( s
- txstyname (assoc 340 sv_dvlist)
# X3 M' A, R) u. L4 i, c - sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))- h+ _4 Z I" E
- txstyname sv_dvlist)
p4 k3 `+ a' J8 \ - dimlist sv_dvlist
' W- Y2 Y; ^8 G! B - )8 M- b) K$ V! W
- )
6 R; {: Y6 |! j. F2 O - (if (= dimtype "DDLEADER") \: v3 o+ U& x( Y% d! `
- (mode_tile "mod_format" 1)
% x$ [8 `% _3 x" z \$ k0 I - )
$ R. J: R! b! K1 D8 q) `) I - (action_tile "mod_style" "(setq dimsty (ddimen_style))")
; f* A( p( h( r9 Q; u% g! h - (action_tile "mod_text" "(done_dialog 4)")+ k- p" ~1 F- r+ w) k. ?. M$ H
- (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")( E' U9 W6 a( |0 }
- (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")
0 M% A" B' p0 P: q# Q- N - (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")+ Q* I% {. f" I3 p, D: I V. ]" U
- (action_tile "accept" "(done_dialog 1)")
" ?+ t8 P7 u2 O, M; X, g6 m - )
; v% t) D- a9 v% }0 M# j4 {6 _ - ;;
# o" l* f: S/ d. l' B - ;; Get dimvars that have been restored.9 K4 h. O1 f+ G9 \* L2 U( |" l
- ;;
" X' k- X* }- W3 s, e5 G/ U% J% C - (defun ddimen_getvars (/ elm dvlist dv i)
. v! F6 }& p" c% _: k8 u - (setq i 3
4 L) j- ~0 I& C6 ], ]. d( ?5 H& { - dvlist (list (cons 0 "DIMSTYLE")
s1 y, V# f# r0 @) C" q# U - (cons 2 (getvar "dimstyle")) (cons 70 0))
( n3 t$ P8 V- q- M. X4 x" d( p - )8 Q& o' j4 }, X+ ]9 F4 S
- (while (setq dv (nth i dimtbl))& U0 |0 E/ b& a
- (setq elm (getvar dv)
. N! q! l$ J. T; j% a! c$ d" e - dvlist (append dvlist (list (cons dv elm)))+ p3 w) D; M. P! L
- i (1+ i)
! J7 T: _! @2 w; ~) u8 M& F - )! [7 O& y+ U+ S$ o8 P" Y
- ); h7 ~* [ `9 x+ ?
- dvlist8 O" J- _; \0 f. G3 }7 O3 t( S; i
- )( Q( [- V! T+ T v3 A/ P
+ }, X$ {0 `$ W* }. z, S- ;;6 O# r- L! r. [* J) E
- ;; Get the original states of dimvars. This is for DIMENSION entities.
; s8 {! Z5 m2 g8 Q7 O - ;;
3 ?' L: }+ q* s' G6 B' O - (defun ddimen_getostate (dimsty / dvlist elm i dvvars)
. u' K# j( M$ W6 n* k* y0 Q - (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list! e5 k5 y' l+ E) r+ f
- dvvars (ddimen_getvars) ; Get dimvars for that entity
6 U9 G: F. ] F3 K$ h- a* D4 Y - i 19 X- g) }$ x+ G. y, ~' _ q( g
- )
% x' C$ v# D3 T3 D5 h( n( O
# b& S }, G' D6 Z2 N- ; Create a list that contains values of the selected entity.. ~0 }" V7 Y4 p5 R$ c2 N6 R4 m+ n
- + A& `, Y5 a/ u$ E W
- (while (setq elm (nth i dvlist))
& A1 b2 ~6 v9 x8 \ - (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)5 Q' A- M6 B& ^: ]8 L
- i (1+ i)
( ^: ^# P# \9 y. q6 ^! R n+ C - ). O2 B1 }& i6 E
- )
* W! G- Y) i3 N/ R* @% H& u - dvlist9 S1 i9 n' @( e4 O6 E; v
- )
6 B& U/ S" _0 `9 _4 l+ @) I. Q1 o7 [
5 Y" z3 m# S$ e' {& {+ B- ;;6 M/ U* Y$ x% m' R9 n
- ;; Restores dimvars of the selected enity.
' h" h. h0 y* S( ~4 I( [3 S8 ]# { - ;;/ P2 n4 }- G0 N+ i
- (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)9 C5 _( Y1 D7 f) ~9 U$ A
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
* P+ b* e3 e# {0 e; U - "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"7 v( I' _9 f. H# ?* Z4 ~2 u6 x
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"+ d5 ?4 d8 z+ o
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
0 G! q# C( _3 Y4 B& S - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
1 v) @( `0 J; C- _- Z - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"; f$ s3 F# t2 X+ W* E/ m
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
8 H+ ^; O! j; }$ \1 ^% t% E - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"+ h( P0 F, i, ?
- "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
' ~: Z) e8 x& w/ ]: e# I1 l - "dimdec" "dimtdec" "dimaltu" "dimalttd"
2 e6 p: L4 t" I! @, y- U$ ? - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"" a; j& C, d' ^6 Z: y x
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"! J6 N. E: O* m; p+ T# U
- "dimtxsty"
% K k+ ~ g. _. w# s) C - ))
4 h s8 d3 l4 L1 N - (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings% B) f& ^ O' w- ~( r
- (progn+ c4 d6 P. g) K+ }% A [ ?% o
- (setq en (cdr (assoc -1 elist)))6 o: }& _9 Q3 w
- (command "_.dimstyle" "" "" en)6 C5 {4 d* a, T. H
- )( m' M; U& C E. r/ ~# R; a- z
- dimsvcurset
* Z9 J1 f. K( P - )
3 t! U% ?, }; J6 }; H, o6 l - ;;! J5 T: c# R9 N6 w
- ;; Modify Leader+ S4 e2 n, @8 P( ]6 N
- ;;8 s- x- Z {( V+ @, b8 {' h
- (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl6 e: f, |" O; X5 ?! x; d* Y. h
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
- A$ C* c9 y+ f4 h - dimtype dimsvcurset)
, X4 y8 w) H; m2 K. z - (setq dimtype "DDLEADER". E$ ~( o" X! }
- dimsvcurset (ddimen_dimsty_restore)
; P' k; d9 T# ]* {) C; d6 n7 N - )* r. U8 L9 Y# m7 X) \
- (if (not (new_dialog "ddleader" dcl_id)) (exit))0 c2 A* T* ]7 Q: x7 A8 E9 c0 f
- ;; Set initial tile values
" d" ^& b9 [' W1 g- Z0 g - (set_tile_props)
# F( o1 m+ ~5 b5 i D" ~: a - (set_dimen_props)
+ S6 T6 S4 y G2 i1 l' u6 Q6 } - (set_tile_handle)
+ k6 o3 D+ I9 v( |9 k - ;; Define action for tiles3 z2 o: e* l, {0 O
- (set_action_tiles)
7 M; ]7 K2 H* Z! A0 ?. I1 i8 y - (mode_tile "mod_text" 1)2 z' _5 H( }/ r
- 2 x- n3 L% g' q& w7 Y x1 t" ]5 [
- (action_tile "mod_style" "(setq dimsty (ddimen_style))")4 d* t4 V4 Q% b( y! f
- (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")( ? z* o7 J' @
- ;; Get ARROW and TYPE.1 M) K% O4 U5 S `; i6 v* B
- (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))0 V: ^, @3 S: y& K# L' X
- (if (= 1 (logand (cdr (assoc '72 elist))))
; l: j, f& e- _ - (set_tile "s-s" "spline")4 k4 m5 K1 b' W5 q: F6 \
- (set_tile "s-s" "straight")
/ R. e7 h; H: i9 t' f - )
( j; ^' P/ h7 e1 k1 D - ;; Start the dialogue.# l: ?6 x' w1 g3 @+ _, a# [5 E3 n
- (setq dialog-state (start_dialog))' W4 _* J M7 Q
- (if (= dialog-state 1)5 c' e7 o! o6 s A- Z( i
- (progn
# ^% Y* X# y9 e% b7 c. z - ;; update the style
# }5 y: u; e# ~1 R - (if (/= dimsty stname)
9 k$ g7 U/ f" D - (progn4 s" ], |! J# J: C
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
* y1 E3 d" D- K9 G - ; doesn't have it.' h i( ?2 m: g1 F0 K- C# a
- (if (null (assoc 3 elist))4 \8 [! h9 \ s# M" k0 I
- (setq elist (append elist (list (cons 3 dimsty))))7 Z* N& _; S1 S( i0 E
- ; else just replace it.# L$ a W- B- f4 j; d
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))- L# `( q- h4 K# X
- )) s- i! X: {6 i% R4 ?3 B
- ; refresh sv_dvlist with new dimstyle.
2 R O/ ?2 H9 b( j) Y - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
2 B3 N) o: A6 c4 w - )
5 Q3 [; V! S% a7 R" }7 R0 ] - )2 u1 p7 x6 D( |0 s/ x! s
- (if (not (null dimlist)) ; attempted to change dimvars
/ ~5 [+ l G* S8 O* ` - (ddimen_complist sv_dvlist dimlist dimtbl)
8 z2 i7 w% n9 z( F7 z - )
0 I: e7 \# K5 X9 b/ q8 ~! k - ;; update for ARROW.3 S: e- ~4 [' c8 F" z
- (if (= "1" arrow)9 r i7 x3 {0 m" S
- (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
5 s7 h# q2 D. K# f3 a - (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
) {, \8 T! Z( D) w - )
7 G4 P; g' B& `9 a# O6 w* z: S0 c6 M - ;; update the TYPE.- k9 H6 K# z) p6 y- @4 ~
- (if (= "spline" leadtype)
& b$ ] Z7 ?' Q( t: ^' y - (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))4 C; [+ _) R- N8 c7 M' J; T7 h
- (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
8 B8 B% D% b* Y( L2 C$ e - )
) q8 ^3 d H) _, s7 {, ^ - (modify_prop_geom)
1 \4 L& B, M9 O- G) G - ;; update the Color
( Z* Q' H# Z, }$ u( ^2 | - (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))
' j, F5 r1 E0 }5 P4 T, b - (entmod elist), ~: w3 L( c, U
- )
! C1 k4 P1 p3 }7 J7 r' d9 Y% U - )$ j3 [# n/ ?/ {& u. e1 }6 U% |4 B4 ]7 o
- (ddimen_setvars dimsvcurset) ; Prepare to exit9 r3 I5 O1 U* k+ `2 Q2 a% a
- )
+ }# ^) v! \1 v+ p1 O+ m) N" @/ ] - " ?& Y% ~3 S' u, y! u; n% n: T
- ;;& g1 R( Q/ _0 d) _
- ;; Get dimvars of a dimstyle with overrides.
8 g0 G, P) q. T' o# P) ?& a - ;;
$ x4 h, F8 W) w( Z" R3 e7 g1 m
& D2 a+ ~! J8 G- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)
. L0 ?" j+ Y4 ~2 f& Z( Z
% R; s* }7 N6 y k. Z6 }+ V2 [- ;; Get override information for the specified entity.
w8 j5 z' z, k4 P1 G% P5 t - ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we; E0 \2 z* h& }; @3 d
- ;; must obtain override information through this tedious operation.
5 ~ r) J! w5 H# G - (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))+ d# j+ ?, `* `* ~% g+ N/ A; Y
- dvlist (tblsearch "dimstyle" dimsty)
( }' Q. p/ O( I6 G) N; k - i 2; W( }; h" X; q; ^ N! ]" k" I
- )" W7 a; |0 C. ?5 k% m
- 7 E N7 t, C6 |1 R$ o1 O
- ; Update the list with overrides if overrides exist.
0 Z8 O0 Y1 C4 z# s8 o - 7 T0 [2 l, O+ g6 X; c
- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr))))
; H! Z( u& j$ ]4 {: \ - (progn
1 U" |# m) a$ w& M: H: n: E1 | - (while (setq elm (cdr (nth i dimovr)))+ K1 P6 n# [0 ?$ G/ g
- (progn* O! ^7 H* \5 v! d6 @" ^) t
- (if (or (= elm "{") (= elm "}"))7 t* K) k& V8 s$ L0 p) e. P; I
- (setq i (1+ i))
1 ]! |3 o6 R- G: u - (progn
0 _% D1 }- l* R$ |3 u# g - (if (or (and (< 180 elm)
, A$ w5 I. x, _/ t/ y$ G! H - (< elm 190)* B0 e9 r6 ^/ S$ h! J6 j
- )7 _3 V q; c" K# b
- (and (< 80 elm)
# t: L4 y+ _; g% y/ }7 z- N% P - (< elm 90)
G/ G+ \( _, v8 J5 \- R. e9 T. w5 ] - )4 d9 m' n. r. C" D' h+ c% k. W
- )
8 ?# a" Y) b2 D( P1 E+ ~- u - (setq elm (- elm 10))0 D+ d; H% v& _# q9 M" F `. J
- )6 t& U7 {, L; ?6 U# U8 T! Z
- (setq i (1+ i)$ D- f. m1 v# n' G3 v( S! x
- elm (cons elm (cdr (nth i dimovr)))
3 k6 c0 E) S z/ Z8 e7 u - dvlist (subst elm (assoc (car elm) dvlist) dvlist)* W- g) ~( [* j6 i6 J) W8 ~
- i (1+ i); X" K% a5 }; j. h; \0 {2 V* `5 Z
- )
F F: ]0 Y0 J# K; g - )/ B) G, n" n! `, p
- )
, D- W' a; b% ^! V - )
+ q- m3 k( V6 D2 D7 ^ - )% W' F5 ?7 b4 }0 C: J" [
- )
7 j3 X: M1 L, T4 B) ~; L& @ - )1 J2 v1 o' R$ i( n
- dvlist5 d9 ?7 K+ D8 m- n# U8 c4 W6 G; C
- )
' ?& }! ^+ M+ v% s8 o' N
# O/ M; t+ X: I8 `( A- ;;
: L0 f( [9 v6 A - ;; Modify POINT
; d7 C1 S- T8 F - ;;7 _* L; m6 v5 B+ N# ~0 X% G" U
- (defun modify_point ()
) z: l8 @1 A+ A. u; r - (modify_properties)
2 q3 z, \& a& u [' P - (setq pt1 (list x1 y1 z1))
/ Q! q8 p4 G( ~/ [, [/ B - (tempmod pt1 10 0)! o z( p1 E$ `$ b; Q
- (entmod elist)
- b6 Y7 \# t- S0 I h - )1 v, w# A6 c& G# d Y
- + t4 a7 g+ a9 ` l2 q) Q
- (defun ddpoint ()
% R, D( r8 f0 }2 s# T1 T - (if (not (new_dialog "ddpoint" dcl_id)) (exit))
$ L d1 r( s. T( z5 M - ;; Set initial tile values
+ g/ B: G8 S3 J4 ]- ?* x - (set_tile_props)
q5 R) L6 k! R) o/ H* x - (set_tile_handle)
( x. x ^7 o- }/ m& L$ r$ ` - (set_tile_pt1 0)
- x6 ?* T# a! Q- f4 w: C' y4 t4 t - ;; Define action for tiles
& X( P% H( S" @7 B N - (set_action_tiles)
- Y+ p% ?3 A; w- ~9 D$ g - (setq dialog-state (start_dialog))
( j+ v( \ {* L; z - (if (= dialog-state 0)! B' t' c! o Q- h
- (reset)
* W: W) N& e' [ @6 y - ) }# m& [- @. _0 X1 B( ~& B
- (if (= dialog-state 3)$ \% l# C6 r2 \9 D/ F1 T* x
- (progn
8 E: w: \* H. T% ]. ]* }% f* y - (modify_point)
" g" k9 L9 A% f0 z+ t. a0 o5 I6 Q" K3 k - (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))
0 J7 l8 g8 K( _7 P: ` - (ver_pt1 0)
" M! A% F+ W/ a1 Q+ O- f' Y. I4 E% Z - (ddpoint)! U$ G$ f! c7 ^* ]; g
- )9 i. h1 N: u; Y: D
- )' c5 \! S4 O" ^# z6 h( e* V; `
- (if (= dialog-state 1)0 \4 [3 I/ U' |& E& w
- (modify_point)4 @* L) N" I0 L& I$ Y( [$ Q
- )
0 p9 k7 U: V' P( L( V - )( K+ f, f% u& L" s4 u7 l
- ;;- T& R. C8 F" U6 P3 w G
- ;; Modify LINE7 z$ ?7 F! G, W$ ~ }! P( V
- ;;+ D' o: a6 Q" j2 s8 E1 a! C
- (defun modify_line ()* i/ S# _$ {8 L
- (modify_properties)
$ W3 ~" ` `; B3 A+ d) [2 @ - (setq pt1 (list x1 y1 z1))# p/ ?$ {( _$ i: Q+ I, E
- (setq pt2 (list x2 y2 z2))0 r$ Y8 D* {& z# F- |
- (tempmod pt1 10 0)2 N' ~* x, @ f4 a
- (tempmod pt2 11 0)' t7 [5 s& v: B0 Y$ N# D: z& Y/ L) P
- (entmod elist)
; p' K* J9 X( P; m - )
B7 F8 W* C! J, [ - (defun ddline ()
( }" u: u% {, | - (if (not (new_dialog "ddline" dcl_id)) (exit))
& }% H) x: q5 i7 t - ;; Set initial tile values% U& n; X- d* U8 r
- (set_tile_props)) ^( ]7 N( o0 X; W
- (set_tile_handle)
( m- e6 [7 F9 G! X5 n" Z - (set_tile_pt1 0)
7 O2 Z/ k# T4 |+ y% ~+ j3 t - (set_tile_pt2 0). s/ y: t D# ?0 p% g$ E4 s/ a
- (line_calc)
& i) o5 J/ B) j4 P; h; H n2 L6 M! W - ;; Define action for tiles
2 \: }0 F( E3 C+ M7 f/ ^2 T - (set_action_tiles)
7 F' J! Q& Z; J/ f3 p - (setq dialog-state (start_dialog))( e5 N7 [ j/ W( E: G
- (if (= dialog-state 0)
, R* R& B8 K( D& I, Q - (reset)
/ E! Z+ Q9 |1 O3 _/ k) o$ o T" j - )
& e. d4 _$ b5 e; j, {9 Z - (if (= dialog-state 3)
( c' F: H1 _6 m3 c" i4 s' P - (progn6 Q/ ]% ?4 @2 G$ z1 R
- (modify_line)" `7 j: t5 T- \
- (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))9 ^+ ]0 n$ g& G* a( X
- (ver_pt1 0)3 w( m* S& p. L b+ d0 s7 ]8 x
- (ddline)
' X/ K6 {" Q* Z; F8 r, l- ] - )
8 W: p. _0 s$ k* U0 \ - )+ n) \) I) F# h* h7 Y2 q" p' y4 L
- (if (= dialog-state 4)2 ] E8 y: p! V5 k5 U0 u
- (progn! B0 P& F! o. `! Q7 J& e1 f- [
- (modify_line)
1 z7 q* C$ ]! N: @ - (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))
: n' Z7 C# ^ E% {5 o' I - (ver_pt2 0)
- S. {6 r* E! u# ^3 p - (ddline)
: P5 x# c0 l: p6 z, N - )
" B1 U- S$ U' b# T$ T0 s - )0 T* ?/ e" k- X& V3 N6 U4 q5 }
- (if (= dialog-state 1)$ ~( \7 U+ b2 [ d1 B" h
- (modify_line)
6 h9 q1 X8 F' H* P% b. z - )
0 q+ l7 i- X" C+ _4 K - )+ i6 ?: }/ A9 e9 @0 q3 k
- ;;
( F$ b; m& D% M; R$ X; e - ;; Modify MLine" U: s9 K1 j# A w# F
- ;;
0 i7 ?3 m) J: `3 Y$ X) ^0 I' ? - (defun modify_mline ()8 [) F& D+ R9 v
- (modify_properties)
/ L8 r7 O2 _2 F% e' ] - (entmod elist)6 d2 {) t; x) _6 V7 A
- )
/ s( E# m2 q7 V) X! t# `; I* f* X) U - (defun ddmline ()
8 @! P2 [; {6 m/ I2 r: m6 K1 `) I- w - (if (not (new_dialog "ddmline" dcl_id)) (exit))
; h5 ^( s3 x1 t7 r - ;; Set initial tile values
! p& i/ R. z% d" o3 E' i- V - (set_tile_props)
/ n% i4 |1 ? L) U" X Z8 [1 B - (set_tile_handle)
# L+ o& e7 n" e5 V - ;; Set mline style text field.
" \& Y* O( |# ?: V4 Z/ _" c& g - (set_tile "ml_style" (cdr (assoc '2 elist)))/ ^ y, X* j5 M6 N
- 4 E1 Y2 N5 h5 G
- ;; Define action for tiles2 n2 R4 J/ |/ a+ G
- (set_action_tiles) h2 u- n9 C& D/ v6 I, J4 e
- (action_tile "ml_edit" "(done_dialog 3)")
2 d1 P8 x; O' l0 f0 v% N% [ - (setq dialog-state (start_dialog))
6 k% b2 `( C6 @( e& \ - ;; Dialog cancelled, reset to original values.
. j d6 x7 d$ x( ^3 I# Q6 t2 h - (if (= dialog-state 0)
: B8 ^0 L. z: g, z - (reset): z, ^$ x) W% N+ {4 i
- ), J! ^7 o P( w; ?+ u: a
- ;; Dialog OKed, update the mline.
7 a Q" q, @$ i# \ A( { - (if (= dialog-state 1)
- x9 F7 r6 c! g - (modify_mline)( V9 O. F5 A9 K9 S
- )" w ?8 f3 B4 k
- ;; Edit Mline, call MLEDIT.
E X- b. K/ ~# t9 ?! j - (if (= dialog-state 3)
5 s/ C' K+ _ y; N, B; _3 b; U - (progn
; A. }4 D z7 E* I# V5 S9 s - (modify_mline)) }# C$ `) t8 N& e! {' J
- (command "_mledit")
0 g( E7 x) }9 V3 m - (ddmline)
. B/ D. `: ? V' x - )- C7 \1 l% k8 J: k; B
- )
+ I: o% m' \ e$ g/ x { - )
0 t* v) G6 k# V) _# J - ;;/ m1 T+ K3 \ R0 z+ g+ a
- ;; Modify Xline3 X/ R: J: h- L1 C( O8 }; |
- ;;* ^9 M6 ~: h9 p/ J' h
- (defun modify_xline (flag)# k2 s; U. v7 M) p! i- \
- (modify_prop_geom)
; a, F' S7 Y" C0 ?" f - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
) x( ]: e7 \) y. A6 d% X6 ^6 Q - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))2 J* U: ~: e9 B4 a
- ;; Update the Root point.
6 i+ _7 O3 D" M, J$ I: E - (setq elist (subst (cons 10 (trans xline_pt1 1 0))
; U7 g h- ]7 q8 g. r - (assoc 10 elist)* s& a8 k ?7 W
- elist
+ M4 Y' `. Z% m! x4 \- q5 w3 {- d - )
3 d9 T& _" I0 | - )
3 r9 X! z1 e7 v1 l - ;;3 |) r5 ?" J( B( ?
- ;; Calculate new Direction Vector WCS( I9 l7 U4 D6 K- \
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))" \1 _2 N1 H9 X
- ' p7 a$ D. p5 W8 G
- (setq temp_dir (trans xline_pt2 1 0))# C1 F9 R( f" {0 t
- (setq temp_dir_x (car temp_dir))
b5 O( p& a4 l4 `% B - (setq temp_dir_y (cadr temp_dir))( }% S' i1 ]/ g; `8 A1 W8 r' ^
- (setq temp_dir_z (caddr temp_dir))
& m z0 y/ L" P5 O8 l
& R* Z4 I- E6 J* |. W- (setq temp_xline_pt1 (trans xline_pt1 1 0))6 S- j- q# L. K6 Z
- (setq temp_xline_x1 (car temp_xline_pt1))/ G# e O' ~+ h( F" `$ N! ~
- (setq temp_xline_y1 (cadr temp_xline_pt1))
. F0 ?) h; K, s8 |# j - (setq temp_xline_z1 (caddr temp_xline_pt1))1 x2 r5 ^3 z u4 U
4 u* I0 `$ ?3 D( d( g' u j( Y- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)8 L2 N" X, z4 p5 O; }
- (expt (- temp_dir_y temp_xline_y1) 2) B% t+ E/ Y2 ?& ]& ~' q+ w
- (expt (- temp_dir_z temp_xline_z1) 2)
( }1 L( V) G: m' o" U# s! D - )))$ u8 {! s3 z" l
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))- v' R" M) Q( h
- (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
" f, T$ `+ W8 n2 R5 T* @, i* i - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
/ J" W! ] b$ f. R2 @8 K7 ~( G - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))
) B. Z/ s1 s2 ^/ L W - (assoc 11 elist)
% ]7 V; k1 b r3 M) U - elist
1 |& V( r' [' A2 I$ I c - )
0 ]5 {# C, w% _' @, ? - )% W) E0 `3 @: v6 K# r
- (if (= 1 flag)
8 @" f/ b; |: I+ D0 R! L - (entmod elist)
" z, n' m2 `) X( |( t - ) y/ |. n! Z; H
- ); @2 D( u0 D) U) e4 ]
" h7 @! f' X! G) n2 P- (defun ddxline ()! ~. e' y7 v4 J& A: k; S
- (if (= etype "XLINE")
0 ^; s8 I$ k J/ x+ i3 F( ] - (if (not (new_dialog "ddxline" dcl_id)) (exit)). t$ W8 Z$ K3 v# |1 |0 w
- (if (not (new_dialog "ddray" dcl_id)) (exit))2 R* ^ n* v4 i* C
- )* Q( y9 i& H4 D" ` v4 e
- ;; Set initial tile values% l7 C- k1 e `' U
- (set_tile_props)
9 }7 Z! {' d) z+ R0 f2 D) y - (set_tile_handle)
. v; y4 E0 k9 {; h2 a' B, q3 u$ s - (set_tile_xline_pt1)
; d8 `/ h& N: { C* H( w - ;; Convert to UCS and post Direction vector.
, m9 D+ ~+ E2 q& D! M - (set_tile_dirv)+ O [2 E' E) s7 U; D/ [3 f
- ;; Calculate second point by adding Root Point + Direction Vector.' C3 N4 H7 Z8 }+ ^! Z; n* K$ J
- (set_tile_xline_pt2)! I6 |4 Y& G% E! [% t
- ;; Define action for tiles0 g% ~3 A& m# E- l/ ^2 t5 u) h% u f
- (set_action_tiles)
& J: U' S, J9 u4 W0 \: P0 \) K - (setq dialog-state (start_dialog))# D3 I3 _2 ?" I; O# H. l) m
- (if (= dialog-state 0)
" q9 _5 ?/ g* O9 A# y - (reset)9 N& n" V% I9 U6 i0 V+ f/ Q& d* }
- ), X/ C S; R+ O: V9 F! @
- (if (= dialog-state 3)- G# c2 Y! E r/ a6 T: d" z
- (progn
, [1 w9 M' X1 @' g( B: F - (modify_xline 1); ~/ F7 V6 x7 g9 {, u, N
- (while (equal xline_pt2& l9 S# S- W) k' i# q5 e" |, l
- (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)" a; v B9 r, Z2 G
- (princ "The Root point cannot equal the Second point.")
8 w: u4 T/ |0 o V" q. X% h - )
1 b2 b" x3 o- A2 k' J5 Y+ G9 h5 ] - (ver_xline_pt1)0 D" O" }' S" Q7 j5 B0 S
- (ver_xline_pt2)
! `0 ? Z1 a. F - (princ)! Q5 j3 a2 a: z# u) C; G
- (ddxline)+ l" v6 o! R& G! N/ E
- )* c; M" ]+ H" ?( c8 P3 |
- )* l$ w0 x$ A; {5 Q9 n! b
- (if (= dialog-state 4)# [! \9 L/ o& |- t
- (progn/ o& ?: E5 A8 ]/ B
- (modify_xline 1), K4 l7 |; z% K: |
- (while (equal xline_pt1
% i1 o8 Z) y+ y# u' a/ E1 b3 N - (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)
- S/ O1 L- l; z) H - (princ "The Second point cannot equal the Root point.")' ~: L2 w G( L
- )
( m% \2 G: _* I8 o - (ver_xline_pt2) b T9 B) x* F7 ?6 v# c/ @) |
- (princ): M# h, W4 B' A+ r6 ?, H3 U
- (ddxline)& x$ j) ?9 b# t+ b0 |
- )3 P }& k8 b# Q }' L
- )
& c7 ]2 G& \1 c6 K, b0 H. P- a/ w - (if (= dialog-state 1)) {4 X6 ]$ \" v: V0 L
- (modify_xline 1)
/ s/ y5 [0 K9 S' S6 A3 M0 K: I - )
' ~: r1 L9 M5 I1 M4 |- T - )& ?# }+ U0 |% y" Y& q1 _
- ;;2 n! j' ~& H4 l0 Z/ I
- ;; Modify ELLIPSE
& K6 \. _8 s' l6 o - ;;% j! F# b7 Q: Z6 I A Q% X
- (defun modify_ellipse ()
; a8 ^+ D/ U# i - (modify_prop_geom)
7 S1 j1 \; q, T) b8 G3 ~! y - ;; Update Ellipse Center Point value." \$ b/ B* g- }$ I( @
- (setq pt1 (list x1 y1 z1))1 V5 z& M' f* ~ F, f5 q8 k& G
- (tempmod pt1 10 1)" f8 L6 M! y7 _; y6 b0 ^
- ;; Update Start Parameter value.1 w/ Z1 R/ C! t
- (setq y_val (sin st_ang))
5 T5 k8 Y' m l8 n! _ - (setq x_val (* rrat (cos st_ang)))
1 a p3 U* a- m7 Q( \! ?! ` - (setq stparm (atan y_val x_val))
# S% \, {' U6 m) m - (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))
; h$ |; _7 H. Z/ s1 i - ;; Update End Parameter value. Normalize it, if it's less than+ ?7 X7 ^# r8 D
- ;; the start parameter./ C: u$ y% V( n) \$ K+ i
- (setq y_eval (sin end_eang)), s, A0 U/ j2 _: _ r
- (setq x_eval (* rrat (cos end_eang)))4 h2 j) x+ {7 c* d$ p3 [
- (setq endparm (atan y_eval x_eval))3 f! E9 X$ P3 A& j
- (setq diffparm (- endparm stparm))7 y! }2 W9 `& g7 D6 p" z% g
- ;; Epsilon of 1.0e-6 radians for checking a zero length arc." O+ w) B) l4 o# t3 h
- ;; Since zero length arcs are not allowed - construct the full8 }0 G, G' a, o% _3 Y2 Q" Y! ^
- ;; ellipse in this case.
/ R% d, e0 m, [) F# r - (if (<= (* diffparm diffparm) 1.0e-12)6 U2 A4 x# K* I( U: j
- (setq endparm (+ stparm (* 2 pi)))
5 k& P5 J9 ]" y6 I8 | - )# Z3 i* a% P# z. _
- (if (<= endparm stparm)
+ X4 ?2 J$ G9 J - (setq endparm (+ endparm (* 2 pi)))
+ J$ ~3 r3 y+ y% C - ): D4 V3 |" O: N5 j. s, T
- (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))8 j# n9 p: B' e2 O" y2 {
- ;; Calculate the Major Axis Vector by first calculating8 A/ s% m. O) N# a9 D9 a
- ;; a unit vector using the old Major Radius value. Then& d0 I+ P; o9 J3 v. Q0 h
- ;; Multiplying that by the (possibly) new Major Radius
5 `' X: M6 j }5 V' c6 P - ;; value to get the new Major Axis Vector value.) V" ^; y0 v, v. p7 v; R( B
- (setq unitxx (/ xx old_majrad))# h6 }, R: w: J4 c; m$ [
- (setq unityy (/ yy old_majrad))+ F j6 `5 ^$ t, C% e
- (setq unitzz (/ zz old_majrad))
1 v3 T9 r, Z0 I: c; w% f( r" T - (setq newvecxx (* unitxx majrad))
) G1 A9 A" L- V5 F' U. E - (setq newvecyy (* unityy majrad))
* a* I; N0 I5 y D& P - (setq newveczz (* unitzz majrad))
, Y$ h+ _4 { D6 J ?( K2 }! c - (setq newmajaxis (list newvecxx newvecyy newveczz))3 j; E& X0 b3 v1 \+ a$ S
- ;; Update Major Axis Vector value
1 q. F- z1 q# ~6 Q/ m0 c - (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))
2 N8 T" e' X6 I - ;; Update Radius Ratio value! ~: g! a4 ~: x: r, i! n
- (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))! J: V* x& g! x3 i4 s0 H- m( y
- (entmod elist)
: g6 C* H% T5 t1 r& n' T - )
# K3 p2 j8 r6 S
; c) K7 q, M' J2 K) K% L- (defun ddellipse ()
6 t9 u" e8 v. u* Z/ H2 L+ L - (if (not (new_dialog "ddellipse" dcl_id)) (exit))1 p8 r) x# G' ?# [1 d1 o% e" |
- ;; Set initial tile values! n. ]* D1 G; j. O( E
- (set_tile_props)1 m& \; b0 }5 W9 m' M
- (set_tile_handle)
. @( p" i5 W+ t; U1 q U - (set_tile_pt1 1)
; s* }0 `3 I C - (ell_calc)
7 e$ l$ d6 t' E9 a1 f" F! L, E - ;; Define action for tiles* L8 n+ K$ t& ?5 l5 U
- (set_action_tiles)
, K7 m, W# |- g& t# }0 G - (setq dialog-state (start_dialog))
. f1 l ?0 [* A, t - (if (= dialog-state 0)
7 @# t( G l, w& F7 y0 [ - (reset), Q3 w p, j+ D: D6 S8 e0 B8 n
- )
% {& M% W/ R) H5 O0 B - (if (= dialog-state 1)
0 S$ g; z) w0 N, F# O6 \ - (modify_ellipse)
5 b- U6 N) }$ N# M - )3 Z8 M, y* N7 V; V$ U9 `
- (if (= dialog-state 3)" X4 I/ _* F$ @6 G' o, n; v
- (progn( z" n0 E1 r; o0 f# {) |
- (modify_ellipse)
$ ?! l' i1 i; M( r0 Y1 }2 R - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
, l- |& n9 u+ }" V4 C1 B - (ver_pt1 1)( t. X; d# b* i
- (ddellipse)" p6 o3 ^ @; l7 b$ ~/ k/ O
- )
# b K$ P* c3 C7 Q3 V6 k - )
2 w4 S- w3 x- c$ X& g - )
) K0 O }0 Y2 ?2 b& A# H- h- [5 h - ;;
8 T6 @9 ]$ d0 A6 p - ;; Modify REGION/ r6 m5 f0 F" |' R9 A" }8 x, G/ r; E' Q
- ;;
" ?6 d- H( Y' ^; A& u" Q' X" U - (defun modify_region ()
- Z( l/ `! K; r( x* ~0 r$ ^ - (modify_prop_geom)+ }3 E/ M& [+ D' x0 e; p: P- D
- (entmod elist)
8 M. \8 n+ s* P( Z7 c+ S - )) B9 f( A, `: B- p
- : N9 c( `* ~; U/ q
- (defun ddregion ()4 b$ u$ \% e% P* b, k
- (if (not (new_dialog "ddregion" dcl_id)) (exit))
! k' ~; ^& V; H! g" [ - ;; Set initial tile values* {& c9 y# b* w7 g, S* _
- (set_tile_props)
$ @% w# T, L2 q! l8 J$ ` - (set_tile_handle)
; c/ I: z6 K$ n% y- P - ;; Define action for tiles2 _5 x* e1 c" | E; B
- (set_action_tiles)/ y- w/ Y4 M- A& C( S# h
- (setq dialog-state (start_dialog))
7 `/ Z1 C; e! S# G2 z - (if (= dialog-state 0)
/ l- [$ W4 |- a/ V& }" j: U' x - (reset)
$ v% `: Z2 A2 @/ c - )
/ v k1 W- I) k( q - (if (= dialog-state 1)+ w% e* @2 c# Y1 y
- (modify_region)- H# \7 Q! p, \4 e$ `
- )
C X. P, }# S3 ` - ); W5 ^( L' L3 l5 B
- ;;
+ {7 O+ z( `8 n2 H, P - ;; Modify 3DSOLID' y+ E- \$ ^4 P: ^
- ;;" U6 t I7 H4 T
- (defun modify_3dsolid ()# L; p* i3 ]; _+ j2 v% W
- (modify_prop_geom)1 H# P) m8 Z, d
- (entmod elist)7 f, m" V4 G+ T# g
- )! B$ e+ I9 D8 @# ~, N
& v+ ~( s3 K, g( _- (defun dd3dsolid ()% b% Q) G( }, A/ n! o, C& k8 {
- (if (not (new_dialog "dd3dsolid" dcl_id)) (exit))
0 ~# J; f/ I% d8 v# @# m0 J4 r - ;; Set initial tile values: S/ g4 _9 |. f
- (set_tile_props), {/ V& M- _3 M6 l' I1 S/ S
- (set_tile_handle)1 r- V5 U, A( r$ s
- ;; Define action for tiles
8 R. [; D" W+ N; o! P% M% g2 e1 ^ - (set_action_tiles)( X6 G o" x+ }4 [( Q% {! g( e$ u
- (setq dialog-state (start_dialog))3 ]2 u3 f, G1 k$ P# r" j/ c5 d# s" d
- (if (= dialog-state 0)+ i* B, a+ s9 P+ X
- (reset)9 j8 h/ W3 {: u
- )
. F8 w$ U; l$ P - (if (= dialog-state 1) j, g p$ \* L4 M: {3 r
- (modify_3dsolid)
2 X0 C- H6 b5 G; _% G1 T - )
: A' a/ U1 q% F1 X+ y - )
4 Z' j% z& S; G, P& o8 w - ;;) Q+ _5 Z. F- k3 C ?5 F& m
- ;; Modify AcDbHatch
: u; x Y% S0 `0 r& o* q4 A4 M - ;;
( H7 G& F5 P; Y2 ^ - (defun modify_hatch (); b% X/ b4 h1 J& v& k- P6 {2 V
- (modify_prop_geom)7 Y' V# ^, l+ u& ]1 \
- (entmod elist)
/ \ j8 u4 ?. l r/ g0 ~ - )( J# T. w3 b" D% ~
- $ ~! P+ m6 S& g0 m$ J
- (defun ddnewhatch ()
1 Y: L, V7 D9 u0 o8 N U- ^+ D% k - (if (equal hatch-elist nil). W9 v9 c0 o; S" ?- c% O2 Z
- (setq hatch-elist old-elist)( u$ x5 `( R% x8 o0 g
- )( f0 W3 r1 b) p; F7 E& p+ p' E
- w$ j8 E# s3 g7 ?: z- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit))
2 z8 g! O: D0 y0 y! P - + K' C3 m) K ~4 y6 U" w7 U6 ]
- ;; disable the thickness tile
; B. v1 M* e8 }$ z' P6 A9 d* u - (mode_tile "eb_thickness" 1)8 S7 s1 g8 |9 Z3 s/ P( J
- (mode_tile "e_thickness" 1), G8 R3 n3 K1 R+ w7 b
7 r- L) m9 ?6 _1 h3 o% f- (setq help_entry "modify_associative_hatch_dialog")" J) _! u c; D o
- (set_tile_props)6 h9 ^, A: b" d- g5 u% V
- (set_tile_handle)
$ K5 K& W8 ~& b$ i5 d4 d
8 a7 j' V5 n! k- h B- ;; Define action for tiles
, v7 K7 |8 R9 ]: \ K- K6 _ - (set_action_tiles)! V* Z, D; w- ?' b# a2 _
- (action_tile "b_hatch" "(done_dialog 2)")+ j0 I% T2 `+ M4 X9 ~
- (setq dialog-state (start_dialog))
* s% G; _9 \% H5 x1 I/ |: m2 Z - (cond" Y0 D0 r) @- {& s) N- T4 A7 W
- ( (eq dialog-state 0)
; M$ | T& S6 q! M0 t7 b - (setq old-elist hatch-elist)
3 { `- ?; X# p" Q& a7 Z# R0 E - (setq hatch-elist nil)
& [! E3 |$ N; A! l E - (if (= (checkforlockedlayer ename) nil)
. X3 H$ v: Q5 [6 E - (reset)3 @/ L4 ^) F+ ?
- (progn ;;; special handling for locked layer reset: Q/ i5 }9 j7 b' I" [
- ;; unlock the layer
$ n/ i6 l0 O" u# o) O1 [' {2 y, f9 G; u6 _ - (setq layername (cdr (assoc 8 (cdr (entget ename)))))
. P& W) ]# v( [5 A1 F. W" h5 s - (command "_.-LAYER" "_Unlock" layername "")! x; w6 ~" U0 R' n6 a: n6 F
- ;; reset modifiction
6 T; f2 b7 i, \+ n1 N - (reset)
& k* o: Q; Y/ ?3 b! P - ;; lock the layer again$ A" S4 t$ Q! B
- (command "_.-LAYER" "_Lock" layername "")" ], W$ z, E3 j4 E9 C( B& ?7 O
- )7 w: M3 ~# l- m. k6 Z) z' `
- )+ N6 h. U4 m6 a
- nil ;;; makes (ddnewhatch) return nil for Cancel
9 B/ g1 A @7 l - )) ]* R6 T& y$ l( r
- ( (eq dialog-state 1)
3 _, ~# t4 ?, ]. t& C0 L+ ] - (setq hatch-elist nil)
) r: f" `: L. J a, g2 y - (modify_hatch)
6 M9 }/ O+ G; v% Y* e5 ~9 j2 v - T ;;; makes (ddnewhatch) return T for Ok
I# K6 z' H i& y - )
, b% S. v: r D% W4 [, L# Y( N - ( (eq dialog-state 2)3 o' s0 K; ?4 W9 l5 o
- 3 b3 m8 a, X" q
- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))
# @/ {, D+ |# \; p# ]* \1 G - 48 \; f+ Z" T2 X* o i
- ) ; F7 c# q" r7 ?6 D) X
- ;;; new selected layer is on a locked layer4 v0 ~, I# u l7 v4 Y9 b
- ;;; we can simply modify the hatch properties
/ J7 j% r! y" S9 E - (modify_hatch)* r K& U6 ?7 J0 c
- (progn' B: j& }: [& Z- C" }6 U6 C
- (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))$ K. V8 n7 {" s
- 4, h: A9 x: G/ j+ X3 Y; s
- )
4 |: [. Q3 s7 A - ;;; We changed the layer previously and now the hatch lies on a locked layer.
/ {/ Y7 z- I! k1 c# w - ;;; We have to unlock the layer forethat we can update the hatch properties.
( O: A6 R5 P# H: O - ;;; If we don't do that (entmod) fails to update to the new layer.
7 i" F. R) |; c9 R; H7 n+ V - (progn- c2 L& {; \1 o
- (setq layername (cdr (assoc 8 (cdr elist))))2 c. u+ K1 v+ b
- (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer) Z: ]+ ~$ h \( u$ l" H
- (modify_hatch) ;;; update the properties
, z% D) l7 z$ @. {" _/ ]) c4 E - (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again
, ^" [1 z# J- w5 s, ] - )
2 U- Y- q2 m1 `# M - ;;; All other cases we simply update the properties
% [5 y' X, R8 X0 D - (modify_hatch)
6 b& n: k8 E- U - )
3 b0 V. M1 R" e5 X - )# }8 `, ?( B/ k* z4 Y. `, _
- ) % u) D! O' V, z n8 q8 b; w) F/ o
- (if (= (checkforlockedlayer ename) nil)
& U+ b; E! ~4 K" G& m4 b - (command "_hatchedit" ename)9 Y+ D G0 e) }# S A& O1 _
- (alert ;|MSG111|;"The hatch object is on a locked layer.")0 w7 t, P9 i7 T F1 v/ ^1 M2 U4 @
- )
0 v- U7 Q1 a6 z" q) U - (ddmodify ename)
/ S/ _# B( Z% z - )4 D$ x9 T4 M& t2 t
- )
; M K+ J' v7 ^1 [' f, l - )/ }! m7 K: f/ z
- ;;! K0 N, t, O1 O" e8 o6 M
- ;; Modify BODY
; s0 i" _/ K1 V' L4 ~5 [5 y+ f - ;;* q G) r5 E' H
- (defun modify_body ()
/ c5 W' \7 S) W0 `# V2 y# b# t - (modify_prop_geom)# V- @+ O% l* y; z: S# {
- (entmod elist)7 l! X$ X2 V/ k
- )
& ] o" C! B! z! F - ) K w9 Z3 Z: w6 [6 b% G* M
- (defun ddbody ()
% P' v/ V+ _9 Y1 u' z- k - (if (not (new_dialog "ddbody" dcl_id)) (exit))
1 I4 O8 B. b( l7 W0 q" H' _7 R7 \ - ;; Set initial tile values' w, [" d% m5 g# a' O3 G- v- I' T/ u
- (set_tile_props)& H7 R# X3 ]7 G% p, H; q
- (set_tile_handle)
' B9 J. ^- W% [5 A - ;; Define action for tiles/ j& t: p7 V3 q% W
- (set_action_tiles)
8 H2 X1 W. N/ q+ c2 a - (setq dialog-state (start_dialog))) c+ {2 m0 I/ r8 c! P$ [8 V% U
- (if (= dialog-state 0)
' ]) ^6 Z7 r5 A2 j, J' J9 p- r - (reset)
# A4 v5 j7 e) {4 k9 ~ - )
- K0 P* j- V1 U0 d8 F - (if (= dialog-state 1)4 n3 j3 x% O+ N/ c5 D; k6 Z/ m" Y
- (modify_body)1 z5 q, ]: W/ e3 P' `
- )! [- ]7 d6 [. q3 Y# L' b
- )
& ?. ?2 ^" F- J0 d+ f - ;;
1 n$ ?/ R! V( l/ B& c - ;; Modify CIRCLE/ U: n1 r" g0 K/ W# G* y
- ;;
0 `) X h) m: S - (defun modify_circle ()+ v3 ]/ P1 f T# v" @5 B
- (modify_properties)5 K4 g4 J1 K1 X/ n% U$ W( O$ X ~+ [/ t
- (setq pt1 (list x1 y1 z1))8 G0 j, s% q2 C# V a0 A, [& w( s
- (tempmod pt1 10 1)
6 g% l# Y+ x2 C3 T# U - (tempmod radius 40 nil)
7 G3 R0 n( _+ u$ \% M7 v. N - (entmod elist)
, W- @- }, ?6 p - )6 f, W1 O. E. o- [; B8 }8 E4 e
- 2 R! ?% |: R$ v0 V, D# m! R
- (defun ddcircle ()9 @% S1 @: h( n7 {
- (if (not (new_dialog "ddcircle" dcl_id)) (exit))
% ?$ q; D2 M- \7 F( ~ - ;; Set initial tile values- P& U0 I8 G" e2 K
- (set_tile_props)9 v# Z( t6 s9 W7 z1 q: S- f
- (set_tile_handle)3 U7 ?7 e! \# K$ F9 u3 A! K
- (set_tile_pt1 1)" _; t$ N7 n; n1 a2 K/ y
- (set_tile_rad)! B4 p; Q9 c1 D2 h5 O, |6 T
- (cir_calc)# S6 f1 K1 E2 P- w6 R# ^
- ;; Define action for tiles
0 F* S4 V2 x( A - (set_action_tiles)) q7 k& M1 f4 e0 O+ m
- (set_tile_pt1 1)
8 V3 y6 ]1 N8 Z1 w, I. o - (setq dialog-state (start_dialog))- ]/ e' p" K+ }/ k
- (if (= dialog-state 0)
3 h ]- d1 ]4 |3 n& e - (reset)
0 g0 ` u4 X2 ~8 @+ K, D D b - )
9 @ {3 I. |5 N - (if (= dialog-state 1)
7 W6 h4 x3 o9 J; u1 |. G - (modify_circle)
) _$ `7 `7 q& X" W - ) N" \! |9 U! q* V9 ?4 A3 L7 ^# n) n6 y
- (if (= dialog-state 3)( A/ O+ F* {) I2 ?
- (progn+ t5 @ {, L2 _: {2 P8 ~3 N% |+ Q
- (modify_circle)2 q6 ]6 {* V) E' h, ?
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
' |6 W+ T5 l6 W - (ver_pt1 1) G8 H# }; |" Y2 V6 T
- (ddcircle)% W1 M) ]+ B% G; G. G5 i
- )- r7 {* c/ @" A* X$ A g
- )
% f9 f; `: w' p2 S, W2 ?" L3 a - ): L" V( E8 J; b, }8 V! o- v1 L6 [
- ;;/ d; B ^( c4 k* b$ h I9 Q
- ;; Modify ARC8 A T& z) N4 q7 g0 f
- ;;
% e" S$ V% g# V' ^2 J3 s1 ]& S - (defun modify_arc ()% p3 f* @3 u/ l! N
- (modify_properties). n' ?; a, e4 _9 Q
- (setq pt1 (list x1 y1 z1))
# l+ E0 U) A7 t! I$ X" s2 A E - (tempmod pt1 10 1)
, A1 s0 @$ a% [ - (tempmod radius 40 nil)4 a, u# t! x4 i* k" S
- (tempmod st_ang 50 nil)- O- v; y7 X( S# @2 [
- (tempmod end_ang 51 nil)
1 D( K; B3 }4 Y- E: p - (entmod elist)
$ H8 B8 U' ^* x0 [. ~ - )
( t! T5 }. G. p2 i - (defun ddarc ()
. j9 k' P& ^0 ]7 r, o - (if (not (new_dialog "ddarc" dcl_id)) (exit)). A% C' ?0 l* e+ J: M
- ;; Set initial tile values
3 L: H* ^# L1 o3 B6 a2 n @6 D4 E - (set_tile_props)0 H6 T, }' S y, u: a+ \ Q
- (set_tile_handle)
* k" a# z$ M/ k( k/ J3 [+ ] - (set_tile_pt1 1)
* t4 E% a9 R& }1 a4 d) v - (set_tile_rad)
) N0 t: D. w, I' o - (set_tile_stang)
/ T/ k W8 ]3 u8 X { - (set_tile_endang)& S; J7 D/ s& G. q$ f( c
- (arc_calc)
o) }. f# ]3 t" x0 [0 Q7 ?1 { - ;; Define action for tiles
5 K$ T. T0 m% W) {+ R1 U( R( X - (set_action_tiles)* O+ m+ ^+ E+ h8 |) W
- (setq dialog-state (start_dialog))
* P% i$ O1 F2 Z7 r* Z: h. c- L - (if (= dialog-state 0)1 P: b, x/ }6 c2 ?; Q
- (reset)
3 B8 d, C6 I6 o$ s+ v" u - )1 O# v2 k2 i' s# ^% q8 j
- (if (= dialog-state 1)5 R3 P0 i7 f& B. ]& y
- (modify_arc)$ n6 ?& A; r; S3 o9 Q: D" F" a/ N9 b
- ): t: a; I" j3 Z
- (if (= dialog-state 3)
% _- y( i* v* G7 V. _ - (progn
0 X5 m9 e% ]: b - (modify_arc)4 ?* j) {" e2 e& \5 M' E
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))' e4 ^5 I! z7 B: T! b/ x# ~, `
- (ver_pt1 1)0 @! C: }" j* c' C1 v; z
- (ddarc)
0 F; q% I* N% j3 C# H. }" w, { - )
/ r( `: T8 i" H7 {2 w; i" K - )# H# p5 s2 G s4 N+ l8 ]7 m
- )1 y. X& G( V* x7 y; K" Q
- ;;
# u$ r4 h7 m! g' x6 w' \3 {3 r7 ^7 K - ;; Modify SOLID or TRACE
9 d: g, D7 l. W# O' K- o6 I - ;; Note the Z value of the object is determined by the Z value of the fourth" M' ]$ B) t/ N, y+ F
- ;; point - code 13. Changing the point values of a solid or trace from a UCS
1 e) Y/ e# k# ~- B, f) M - ;; that is nonplanar to the UCS the object was created may confuse the user.0 n+ @1 N) P1 \% @: @7 H
- (defun modify_solid (), _9 j N5 Z7 X1 E- Q: M
- (modify_properties)
+ k2 b1 \7 N9 R! E% C - (setq pt1 (list x1 y1 z4))& w3 ^. w5 k- T# K( a3 c# f# h/ K
- (setq pt2 (list x2 y2 z4))) f' Y2 {) g9 v C# B! `
- (setq pt3 (list x3 y3 z4))
4 E' F u! B# r) e - (setq pt4 (list x4 y4 z4))
. P1 k3 t) Y, s8 Z' _$ u% m! [ - (tempmod pt1 10 1)" k8 ~$ X' x* v8 @& C& {5 {( b
- (tempmod pt2 11 1). Q; f& \) a* V s' `: G
- (tempmod pt3 12 1). n1 q/ A. _) [% l
- (tempmod pt4 13 1)1 x: n) ]% p$ m
- (entmod elist)- u) Z& `5 f1 ^7 k# [
- )
( m3 t: ~6 p+ t) _0 z
2 O. N& j3 J! c r( Q. M- (defun ddsolid (): U ? D# n+ ^8 i* \
- (if (= etype "SOLID")0 M4 x5 y( g; O/ D, H" V
- (if (not (new_dialog "ddsolid" dcl_id)) (exit))
' U0 r4 m7 ]3 I- m3 ^ - (if (not (new_dialog "ddtrace" dcl_id)) (exit))
5 N5 }2 n& [$ K- a7 B4 Y( b' s - )6 G1 g& O# x! G
- ;; Set initial tile values! m9 {+ q$ G% D# B
- (set_tile_props)
$ F3 s- h* G9 C2 k+ ] - (set_tile_handle)
' I$ m& O4 }0 a, N4 | - (set_tile_pt1 1)
. l' c8 G, h: d7 ?- f- S - (set_tile_pt2 1)$ u5 f4 {+ ]5 g3 C# z9 b `
- (set_tile_pt3 1)
/ {6 n7 q1 D, A, M% g% } - (set_tile_pt4 1)
6 [, Y# i% D; M$ s' e+ _ - ;; Define action for tiles+ A! i! J. P( |5 X( V, ^
- (set_action_tiles)9 e: o/ k. F7 Q2 u5 |
- (setq dialog-state (start_dialog))
" j, B$ q$ W: Z2 V, p# C; I - (if (= dialog-state 0)% z( F4 y; h+ {3 N0 Z- q# `
- (reset)4 z0 p3 }$ |; b' C; S" b$ n* t
- )2 K" F0 d1 E, ~
- (if (= dialog-state 1)! Z. m. Z2 g$ w0 f+ T: ?, w) V
- (modify_solid)
. u5 f4 ?2 V$ ]# E" d - ); m# l: j5 t1 I8 z( y- x! ~& C
- (if (= dialog-state 3)/ f6 G7 w9 o$ S/ T3 x* W, e
- (progn
! l" N _; m% h0 X+ }4 B/ R - (modify_solid)8 A) ?& A5 `/ i# t& y. g
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))0 S0 \; Q) N/ |: G+ Q7 v
- (ver_pt1 1)
4 k9 Y: Q/ N: h. y# Q. r - (ddsolid)! b. L: S/ J7 C
- )
! }/ {$ @( a9 [2 l$ E# Y& q - )
; o/ Q) T0 @# v - (if (= dialog-state 4)
, S- ?8 z# ]& ] - (progn9 X5 @: c6 }8 _
- (modify_solid)% G- J+ a. l3 U
- (entmod elist)
# f+ z; n. a" e: a - (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
% ^$ a* ^& o& n - (ver_pt2 1)
% Q' R# Y, `! j6 A - (ddsolid)0 T7 ^. m$ S* B% |; E
- )$ Y8 _. |9 ?' }) A3 g
- )2 W' i! P2 ~: |2 W, y
- (if (= dialog-state 5)
( H2 {# y9 p. z" v7 b- `) h; @ - (progn
6 A1 D7 \) C* U9 A9 }; ^# W - (modify_solid)
5 S* m: G& z& X( @ - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))
" a+ M9 u- z7 v0 T' Z - (ver_pt3 1)
2 B! ]5 l- q; f - (ddsolid)1 f# y( V. H& x
- )
7 p" F2 o& z! ? u4 a1 G$ f - )/ a2 X* q+ C) H1 B( J
- (if (= dialog-state 6)
& r' w2 H; C% ?0 e+ p1 V8 l - (progn" X h. f0 Y/ h. c _ o; k5 O
- (modify_solid)
% g' _$ P3 k! G8 U5 d - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))0 L) r/ y% J: G/ }, \
- (ver_pt4 1)8 s/ O6 m& a+ B8 k& u
- (ddsolid)
3 R- ^7 |8 y! a - )8 r' Y! h; E. y. E' Z
- ) `" Q# L) k, R ]2 O1 G: D) l/ x; H
- )) [7 e+ v, q" X
- ;;* W, _7 E. p0 B1 {7 a0 |+ _# M w
- ;; Modify 3DFACE8 A2 [5 h, X2 y- x/ I% l; @
- ;;( p( K, H) |* Q0 d
- ;; Check visibility of edges' q \) `7 W- B% _6 u
- ;;
- h& E6 b% L. K c( c0 w - (defun edgetest (/ bit1 bit2 bit3 bit4)0 Y {9 r* @7 M0 h9 @& O4 O
- (if (= edge1 "1") (setq bit1 0) (setq bit1 1))
- y1 L9 `( q& ?/ V% f/ M0 {% W! c - (if (= edge2 "1") (setq bit2 0) (setq bit2 2))
0 r2 I6 W# x3 T2 N9 o& `" q2 k - (if (= edge3 "1") (setq bit3 0) (setq bit3 4))2 R( N' l( G {) Z5 J9 g/ \
- (if (= edge4 "1") (setq bit4 0) (setq bit4 8))! y d+ ?; @, C* {5 y
- (+ bit1 bit2 bit3 bit4)- v/ i ]& u" M' j( Q
- )
7 d7 l( S W6 {: f+ R7 A - $ m. M' e# U* P, ]' J% _
- (defun modify_3dface (). r6 M# _! _9 G- Z/ G3 v
- (modify_properties)
! I4 W- t0 _) E" [. d2 K! O - (setq pt1 (list x1 y1 z1))
1 H' t) q/ L" m7 ~ - (setq pt2 (list x2 y2 z2))% o+ e8 c' R: j% p2 Y
- (setq pt3 (list x3 y3 z3))
8 ^0 n8 |7 S `; b+ `1 F - (setq pt4 (list x4 y4 z4))
L& ] T {% F/ H7 E% G/ a - (tempmod pt1 10 0)& Q3 Z( C9 k2 @. O$ O P
- (tempmod pt2 11 0)
: U, s p9 P. s* t( ?4 {/ R - (tempmod pt3 12 0)
! W9 X$ @) s4 e& i; F# {$ U# r! J - (tempmod pt4 13 0)
9 J7 S" @# W- l: l& y1 l! _& H3 _ - (tempmod (edgetest) 70 nil)
5 j" t' n* G0 _: b. K0 `) x - (entmod elist)
Y# ?8 s9 \5 ?. L4 i* i5 Q7 K, x - ). ]& Y! F3 y4 b& y' Z+ B
- & t( m* d5 ~$ R2 D
- (defun dd3dface ()8 _6 z+ |# \# r6 o/ H( V1 w2 D1 O
- (if (not (new_dialog "dd3dface" dcl_id)) (exit))! Y4 I9 v) K( {
- (set_tile_props)
4 Z3 S* }; J1 f" [6 n: n- U: P - (set_tile_handle)
v% l* s8 l7 a1 W9 t - (set_tile_pt1 0)+ `9 Q3 B' C9 E! ^7 w3 F
- (set_tile_pt2 0)1 t$ S, J( @* c6 K
- (set_tile_pt3 0)9 I9 A. r" F+ C5 t7 I
- (set_tile_pt4 0)
& G/ p8 F s) a c - (set_tile_edges)# Y/ `1 d8 Z _2 n+ L! u
- ;; Define action for tiles* Q; j" a O' ]7 G/ G, ^
- (set_action_tiles)* v+ a) ~0 k7 B. J% q" O0 \. F. B
- (setq dialog-state (start_dialog))
! M- I2 K/ O2 ?3 f; @. S - (if (= dialog-state 0)
5 Q' \, `4 W$ \! F6 B( d/ n; u/ i - (reset)! a6 v2 L& `# i4 B4 ?9 {
- )% p# i6 L/ w& ~' [4 s1 @# v. A
- (if (= dialog-state 1)% e8 A/ {& v$ u. I3 q) e1 J
- (modify_3dface)
9 ]; n: N. w+ y+ p* D - )
0 K2 N ]) q8 g6 J) f- s - (if (= dialog-state 3)
2 X0 [' K3 [) E+ J1 B9 e - (progn
/ a: i, e6 O) z - (modify_3dface)! A; G$ `6 R! Q4 _3 ]- |4 R
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))
6 D3 Y C/ m3 r' u' G - (ver_pt1 0)
4 P+ {4 x$ f" y; H - (dd3dface)% ?& f; N7 a/ q! l! ~
- )
# H- b, F" J2 o" G/ u: B - )
& |2 v. P- H/ J" @9 i$ I2 c0 b - (if (= dialog-state 4)
, p0 Q$ ~0 y: y4 u# { - (progn
, a- Y3 i4 } _, ] - (modify_3dface)5 n7 U/ |) {# f, j9 A' H( H
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))$ L) w* a [# d" |& y9 g, q4 F1 w' T
- (ver_pt2 0)
" s) D$ j) w: K; D: t" W - (dd3dface)
6 k# W( j7 v; ~' M! p6 L% G - )- \' R8 w& u) w) [" d2 s* ^
- )
/ J$ e! Q, |2 Q) H R, H - (if (= dialog-state 5)
1 @( F7 k* ` m) c/ [- G! v - (progn# B! o& w. [( K
- (modify_3dface)
! y% N/ L: k x" R' n: _/ |8 c' W - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))
% ~9 D' e9 H2 H4 i- {" l2 O - (ver_pt3 0)% p& B |' r6 I: O0 W
- (dd3dface)/ P1 L4 U6 _2 {6 t, L
- )% j( q9 {: m0 P1 g* I% K0 ?6 y
- )
7 W7 f8 Q: d+ x0 k8 \" p) J/ { - (if (= dialog-state 6)" V X6 {. Q. ?* c o
- (progn8 C/ G2 M* ]% T! l- a/ H) m9 E
- (modify_3dface)
+ v6 }( }) j6 Q' M3 J! o4 z - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))0 d4 y$ c. f- {/ M# b" k
- (ver_pt4 0)' h4 V y' @: @" j
- (dd3dface)- u( d1 ~4 O) p& K: ]
- )& G9 p+ T2 M1 G2 ^) h& G
- )* Y& |' Q& K% {: P5 w; F$ `& I
- )
7 p; k- _1 N) u" [( w( n6 L: I - . E! b$ u6 k* O0 |7 @
- ;;
/ t; g7 ]) | j - ;; Image functions
1 }! Z* k) V6 ?$ k - ;;
4 j* C# _. ~2 e, F - (defun image_scale (/ upixel en n userscale temp); [4 v: a2 P9 Z1 Q, K) p5 V5 o
- ;; Calculate the size of an image pixel in AutoCAD units. B( Z0 g. @- i5 A3 ?) B8 B; r. }
- (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))) H3 s+ c% @' x$ k+ H
3 M& H; }+ h6 P2 T% L- }9 U- ;; Retrieve the user scale
7 m! f8 s* u8 Z - (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))6 m& u9 a# k+ L6 O
" ] b4 r& T% r+ H. d( d- ;; Next, extract the image units and pixel resolution o/ h7 g" i: y4 E, A. D3 M
- (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en)))); o* h+ j5 w( I6 z9 m" m g
- (setq image:scale (* (cadr (assoc 13 elist)) upixel))3 a0 i8 a' t* ^! w/ q% D/ F; }
- (progn
% f" G8 z$ J: ]0 Q: j' { - ;; Convert the user scale to the proper word7 P ]+ ~4 Q- F6 T
- (setq n (cdr (assoc 72 en)))' F1 l5 O6 _1 A' i" x1 x7 o
- (setq temp (getvar "LUNITS"))1 n) |, d* x) h
- (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5))
2 ]/ I0 y, a' `% ? - (if (= n 1) (setq userscale "Millimeter")), V' Y2 @8 Q) X
- (if (= n 2) (setq userscale "Centimeter"))! U% S" f% l" ~' d# _0 I4 J; J/ t
- (if (= n 3) (setq userscale "Meter"))
5 `& a3 P: I: a - (if (= n 4) (setq userscale "Kilometer"))+ k* v' {, i3 w; y: O- q
- (if (= n 5) (setq userscale "Inch"))$ s0 f5 q/ j8 Q$ T
- (if (= n 6) (setq userscale "Foot"))
& w* S; B7 O. G7 z' I. H - (if (= n 7) (setq userscale "Yard"))
$ V- N0 R: s/ |# i- }7 h9 \ - (if (= n 8) (setq userscale "Mile"))) U. _; E& b4 A! E6 g- }
- (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))
' c5 v: \" I7 o5 [* ^" X - )5 g' l l7 z9 l0 o- j2 E5 T
- )
6 j9 A+ {1 j/ L8 Z7 g0 M- G- j# b - )
/ A& }1 Z8 R- z# l( F3 J - + Y0 [3 m+ P# K0 ?2 _, P' R
- ;;
( h- @% |( [1 w+ H. Z8 n9 X5 W - ;; Scale factors for block insertions
' t/ x+ m2 y- L0 u: l/ W6 W0 p2 g+ j - ;;
# ~! _6 H. O" D0 B7 {1 h2 | - (defun image_set_tile_scale (/ temp)0 Q7 u: r% w! p d0 W
- (setq temp (getvar "LUNITS"))
( e* J, Z; X% Z( ~' p9 Z! M% @ - (setvar "LUNITS" 2)0 I* i8 ~$ i5 E
- (set_tile "xscale" (ai_rtos (* image:scale image:mult)))% X5 s( y4 r. u+ Q: b& `
- (set_tile "wid" (ai_rtos (* image:width image:mult)))
+ N' S! E0 I# h2 v R5 u - (set_tile "hght" (ai_rtos (* image:height image:mult)))0 t r& m& c7 @8 ~, l( L! _
- (setvar "LUNITS" temp)
* F) v6 d* X- Q2 i - )' E' b; }7 B) w: v* M, j3 D
% {8 u* H. C: J9 \) y- ;;- X5 \8 L, L4 Z7 {% D, C
- ;; Set the scale, width and height values appropriately./ W5 E, K' s$ X
- ;;1 Z, _6 |( h, u* _7 H2 j3 @
- (defun image_update (field value / orig_value new_value mult)% c) k6 T k: M, w
- (if (= field "xscale")7 a1 e2 e! b# K( F
- (setq orig_value image:scale)0 X2 g& k) f0 \ e1 y; d' h
- )7 Z# K7 u% s9 P8 I
- (if (= field "wid")
3 R9 b; O1 u- ^' ]7 W* [ f0 z - (setq orig_value image:width)
9 y, c6 Z( {7 y( ~: g( u! z& n - )
9 f. c' X0 Z# E - (if (= field "hght"). [" t) L1 @/ W1 g7 b5 s7 M1 W
- (setq orig_value image:height)
0 z. N. K5 }. F# {& D9 a8 J - )4 g, ]; u3 z; R) q, D5 s' o
- (setq new_value (verify_d field value (* image:mult orig_value))): b! m5 a: g4 n& F4 v
- (if (/= new_value old_value)
5 N4 E7 @3 I1 r v4 Z4 g - ;; Make sure the user has entered a sufficiently large value5 U. ~% ^ o- K3 ?
- (if new_value
. a' {4 Y6 {* ?. _2 F - (progn
$ p+ b/ L# o/ t0 t - (if (< new_value 1e-8)1 G9 @8 ~; ^( ]$ {( I+ N
- (setq mult image:mult)& a5 B/ d/ U) Y
- (setq mult (/ new_value orig_value))
( r( J; W; y4 S: C/ D6 e7 N - )$ v" Q: U" |0 p4 x# k
- (setq image:mult mult)6 o* ^4 o7 v+ c( E# L) V; H
- (image_set_tile_scale)
" K5 G" k2 }- a6 j0 K: } - ). B/ D+ d/ R# G, o
- )5 F1 u( a3 [1 J$ N
- )5 X' P+ Z4 u8 o) e, m
- )5 [& G2 V) B, q4 S* U8 ^) ^
# I, z, f1 R; u$ q' V' A3 h- (defun image_disp_opt (bit)
% p8 T0 h1 [6 J2 x - (setq image:options (Boole 6 image:options bit))5 F1 s/ U, U0 \. h7 I8 W! d) M6 H& x
- )
: J9 v+ H( z" Q
6 w1 X/ q4 i z! T- h- (defun image_modify ()7 y8 |0 j9 K4 S# R" N
- (modify_properties): o" q) S4 X% U+ S
- (setq pt1 (list x1 y1 z1))9 o- m& ]* u* P6 q5 N1 k8 l/ K
- (tempmod pt1 10 0)
5 j4 J$ F4 w0 d+ A2 ~! a# l! _- P5 y" d - (entmod elist)/ n2 I3 k9 ?" K
- )% q3 H7 u2 B% |, s# s5 D9 U
- 7 q! v8 P; x7 M8 B5 i
- (defun image_clean_variables ()( n: C8 s7 y7 Y+ ~ Z. C7 s; w
- ;; Clean up global variables used here
& {. M$ @0 [; _! ^/ Z$ o/ ]2 V - (setq image:scale nil)
: I8 V* ]* f0 g9 | - (setq image:angle nil)
5 H7 r. ~6 S( d5 z+ @, r' } - (setq image:width nil). k* k6 J* \6 `
- (setq image:height nil)
- g H9 @; {$ B$ ]+ y+ H9 b - (setq image:options nil)
, I, \. T: p' z+ d, v - (setq image:oname nil)6 v' \0 D6 s" p: l) z. a# v$ a
- (setq image:olist nil)
/ Y8 l+ L' e1 q2 S. g - (setq image:mult nil)
]' p: X0 Z+ K0 W0 w5 G( R - (setq st_ang nil)( e# |6 f0 N$ G0 ^
- ) _& m, {" e! Y5 ?2 w
+ l* A1 t6 d/ ^ r9 ?9 {6 X- (defun image_scale_vector (v1 value)
0 T" K) ^: ?1 m* ~& e* W% | - (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))
4 K% K' S* I5 }) H - )
( ^: }0 i' X" m+ Q- F9 C0 v
- [7 K7 Y$ s3 x8 [! L( D- (defun image_cross_product (v1 v2 / vx vy vz)
) h* @+ B0 e: ?2 o [; [ - (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))1 f1 h3 \; E7 q7 m+ g, i
- (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))
( S1 r) K9 x9 T6 j' d) M; i - (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))1 r; \; {6 l' P8 C: [: t& R3 @; D
- (list vx vy vz): }5 v& d$ _( G* |! o9 n
- )
# {/ i# A" B3 o( x: t+ Q - 7 i: X" S" f; E
- (defun image_dot_product (v1 v2)
& l! Z6 T3 b+ ~# t1 N - (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2)))
/ t1 T: N. A" ` d3 L: T- Y - )
, f" g, R8 G" ?: C( l
1 Q% E. Q) j8 m6 c' _- (defun image_add_vector (v1 v2)
' z& X$ Q2 d0 X4 r$ N) e - (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))2 s% V2 T0 Q; L: J3 {
- )/ E7 G9 v) e0 U, _5 c8 x
- " i9 s0 q& h6 h1 Y6 w T; S0 i9 Q# w
- (defun image_subtract_vector (v1 v2)
9 p& c0 F6 N' c4 N M - (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2)))
1 i4 a# e. [* g - )1 K' o0 G6 M; H0 _- j5 h
3 t/ W+ j: c8 f5 N- (defun image_normalize_vector (v1)
7 a5 ]; t9 W3 U0 l1 d+ y5 e1 e - (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))
9 v7 I M8 F2 F9 C0 P - )7 K( D3 Q9 Y2 W2 W& n& I' y) v
- 6 B) R1 U4 c2 g& L0 j
- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)0 U F) `; _" i' f
- ;; Normalize the axis
* n3 {( J( ? y' {6 j - (setq axis (image_normalize_vector axis))2 G/ ?1 ~: |3 T. o7 N- ]
- (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))$ |6 c7 V" B! {3 }
- (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))1 |* l2 Y% S( A# {8 G
- (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane))) [$ `- }2 y+ k; Z
- (setq in_rot_plane: }0 ~% I) P) Z- ]' X
- (image_add_vector
$ G% M. e0 N+ x* X+ m; I - (image_scale_vector axis_x_in_rot_plane (cos angle))
( _9 t5 R3 m6 z) F) f. E5 ~+ E# D; t - (image_scale_vector axis_y_in_rot_plane (sin angle)) C' }* D# b0 r$ T5 j( ^/ T! }" J8 z
- )1 W) @8 @8 M; {$ e. Q E% C* s3 a
- )
& K& B8 X. f( W0 p3 s0 ^" L$ B - (image_add_vector along_axis in_rot_plane)
" t) ^, Z5 {! O* g9 w+ O - )6 |6 L! E$ t0 p' P
- - x% h/ r4 G4 {8 p% D4 {, L+ M
- ;;+ t( X7 f. f9 O. v
- ;; Calculate current rotation angle if appropriate.7 A( i l$ S! O7 _' v
- ;; If not, grey out the rotation field.
, Y+ l/ u9 \6 h3 X - ;;2 \' b: S8 X0 N" |& W
- (defun image_rotation (/ normal rlength zlength sqrt_tolerance)
* X1 y( Y" N5 ~$ S) u, I! @ - ;; Determine if image normal is codirectional with
1 O6 }+ F) ], D/ `& c7 S - ;; the current UCS Z-vector.; y( t1 Z3 A! T0 C5 B
- ;;7 U! S8 |4 t! x! [& b
- (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))
3 C( d- j1 W/ A/ d - (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))
+ n% O2 J/ [+ I: y4 y* O z7 Q R- E - (setq zlength (* (last normal) (last normal)))$ t6 u1 V7 w( B8 Z( ]3 w
- ;; Note that the value .0001 in the radians is approximately 0.0057 degrees./ P b5 [! K' ` D8 b# d
- ;;# A1 T+ |9 n% c5 t4 ]
- ;; cos(.0001)^2: {- L1 M2 V- Y
- ;; Tolerance = --------------
+ h7 V" W8 m( q0 E - ;; sin(.0001)^2* A, \8 h0 z7 G4 H
- ;; [ I/ B2 x/ N# q) a; V
- (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))
5 z4 J& |* f8 z0 G2 M: a. j - (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))
9 y$ M3 y* [# \' j; q6 o# ? - (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))
4 Y) B8 ]: R4 B. @; L - (progn6 ^! X3 c6 I5 |6 k7 J2 O) X( I2 z
- (mode_tile "st_ang" 1)
6 i; n% N& q# X - (setq image:angle 0)2 y& `' F, E* ?2 \# n5 U0 ^+ w
- )
7 a$ Q" [' P3 G; v5 L* G1 b - )
+ I+ w, ^/ N' W+ w4 k4 B - )
, i2 k+ G! X1 B
4 g% o( u+ j2 N+ S! M' c3 x- ;;# X% v' C- g. Q, Q, b6 ^
- ;; Modify Image
7 J/ P6 R& @9 U$ Q - ;;* M! A, t& u4 g" }
- (defun modify_image (/ u_vector v_vector z_vector)
1 k c' A# a- |6 U4 m - (modify_properties)
- d0 `; l' G3 k - (setq pt1 (list x1 y1 z1))
( E: S6 ?1 D$ C8 p. d - (tempmod pt1 10 0)* C/ ~ G( Z7 c
- ;; Make display option changes to image p8 Z# S. Q$ f& w
- (emod image:options 70)
9 G) u( C. _1 l$ d; m7 G - ;; Get the u and v vectors. M" N9 P# S0 ^; s7 c( v
- (setq u_vector (cdr (assoc 11 elist)))
! \' H I t: N, V - (setq v_vector (cdr (assoc 12 elist)))7 [# B) n+ g; y. K
- ) t, ~( S' E7 f9 f, p! {) t
- ;; Make scale changes to the vectors
6 \- Z0 M8 U" Y4 V5 H - (if (/= image:mult 1)* W7 `5 e$ q# ]3 y x% m- d$ e# J, K
- (progn5 p8 i! L% {1 B! y, k, K# W% ]
- (setq u_vector (image_scale_vector u_vector image:mult))3 c7 p- F' f S$ ^
- (setq v_vector (image_scale_vector v_vector image:mult))' Y1 F" |, L+ p S; a! B
- )$ e5 q0 v3 S( W" q+ o2 r0 g. m
- )4 R6 J5 A5 A5 t% h5 S
- ;; Rotate the vectors
+ y z* F, B4 P! i; O t$ x6 b - (setq st_ang (- st_ang image:angle))
/ C- h U1 z% ?6 O" G- M3 E - (if (/= st_ang 0)( b4 ], f) C8 f+ V8 u a, I X5 ]
- (progn" q7 ~" I: G, Q8 c& n6 h0 @( `
- (setq z_vector, s' A% f; `0 e* ^9 z) s# w$ d$ H. g
- (image_cross_product
' c$ n: j; L* F9 m# ] - (image_normalize_vector u_vector)9 W% i j' V6 ]) ^
- (image_normalize_vector v_vector)
d& u4 L; D; C8 K6 R1 B# q8 J- a - )
* u5 [9 ?% X! B. Y0 I- F - )
# o' B2 t3 g8 d5 r+ |( X - (setq u_vector (image_rotate_vector u_vector st_ang z_vector))
( E, j5 w9 v I7 f - (setq v_vector (image_rotate_vector v_vector st_ang z_vector))
+ V/ D O8 l2 E5 M7 `6 Y - )
: R* d7 d, ^* D- P# \, M8 ?# H0 f - )' z/ f6 ]' V6 I" Z) ?3 W
- (emod u_vector 11)
D' h1 j2 U0 v" n$ O" B z* |5 m - (emod v_vector 12)$ I; p# T9 w/ }7 |% @
- (entmod elist)5 _; @0 g2 E4 G: y5 P
- )
. m- U0 j# [1 |; I# w* W' n - . D* d% ]1 I. w- {+ f
- ;;
+ n5 ~+ @; u- u. N. {9 B" m% ?/ S3 E. }0 _ - ;; Run imageadjust on given entity, working around possible
! j1 J4 K; a" G1 E' z - ;; re-entrancy problems
[1 g# E% G7 V; x- ]2 f3 @* D - ;;5 O5 P8 E$ {/ n+ Y
- (defun image_adjust (ename)& K# A& s: W" l
- (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...5 y- t3 n' x# \
- (imageadjust ename): S2 ~2 ]1 o& l* B% k5 }8 d
- )- I8 i) l9 K. y8 P: B3 P
- ' z! m5 F# V2 b3 K" j1 x8 v
- (defun ddimage ()
% H# U6 R" Z: O - (if (not (new_dialog "ddimage" dcl_id)) (exit))
5 W5 z, ]2 c7 e8 O( ]; N0 [" p - 1 ]( \/ R& _1 J: S
- ;; Grey out the thickness field.0 [: Z: _3 s! r. |" l
- (mode_tile "b_thickness" 1)+ b# y( N0 ^0 ~; N& n! V0 w
- (mode_tile "eb_thickness" 1)" y w- I! t! M j# q
- # ~& S6 L2 j# M0 [/ {5 ~" S; Y, d, n$ ]
- ;; Get the associated def object.
9 J! N6 L4 G8 t. z: G. l f2 f - (setq image:oname (cdr (assoc 340 elist)))
: W$ c$ W( U7 g# F4 T8 S - (setq image:olist (entget image:oname))* y; H5 Q& ?: j" Y
+ B- _' I4 O* `" J- ;; Set initial tile values" i- F. x+ \* Z
- (set_tile_props)' ~5 {. d$ S4 N4 i% @+ t
- (set_tile_handle)% |, E a, [2 `- P5 j6 t& X7 m
- (set_tile_pt1 0)! t3 M! d3 b" J4 E- j
- (setq image:scale (image_scale))+ p0 b' e' y: G" H/ @( r, I
- (setq st_ang (image_rotation))
, @5 a- _& m* i% K - (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))6 r9 l1 ^* z) L4 A& N1 l; \+ M; j
- (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))) a! S8 i& J9 n1 s* k: i" ^
- (setq image:options (cdr (assoc 70 elist)))
- N1 X; M' W' ?/ v" b) S
. a) U+ W ?( ?5 G) R/ O( Y& W- ;; Record the last multiplier for use in image_update function/ B+ p4 c* \9 c7 A1 T2 k5 v
- (setq image:mult 1)
, y) O |8 J: G C( w) N5 W; v- u
/ x8 t! c$ ^6 U/ {1 n7 S, h2 K, h- ;; Retrieve the image name" A6 `. f' K4 Z
- (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))) c( R% Q1 q1 G
- (setq flag 0)2 O Y+ j( a& ?* k# a: X
- (foreach n fn5 V: J6 H# s5 ?, c$ e& U
- (if (= flag 1): ^+ E; V' N0 v$ E
- (progn
3 ^/ \2 j3 {5 a3 z0 ` - ;; Display the image name1 @- z% q5 M9 H7 @# ?
- (set_tile "image_name" (cdr n))
% a0 o% s$ C/ S ~8 R9 M - (setq flag 2)* y; q* A* s( V- A, X B
- )
6 k# _; Y9 Q$ C - )! \1 Z# d3 Q! u+ {
- (if (= flag 0)9 ]5 @: I( w- N% w. ?% O& h, w
- (if (equal (cdr n) image:oname) (setq flag 1))
. K* g: z2 T$ }* g. G& e" N - )+ S5 E) i9 i1 z" `
- )
; T% {. F' B$ w. d; F2 A) c - ; Z; H X4 z; U% D3 e/ _# _" Z
- (set_tile "image_path" (cdr (assoc 1 image:olist)))9 n: e! c0 G6 R# w# h P0 p( k
- (set_tile "st_ang" (ai_angtos image:angle))% j& U" n7 T$ K" z3 c4 I( ]
- (image_set_tile_scale)
4 R7 S5 }5 V/ u! v f1 X5 k! _3 n - 0 K: y0 P8 Y3 O& Q! T
- ;; Check the appropriate boxes. z; d6 v$ g& d) |
- (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))- d1 Z3 H. N- h* V* o c/ s
- (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1"))
( q$ |- _0 F& c( K. @ - (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))
* l* X& _$ P8 d" ^& c0 k8 C - (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))
! P1 V; r! }. c* _ - ! R4 w* S! F* t2 M! L' J1 }
- ;; Define action for tiles$ C( ]4 m: @! q O# f: x
- (set_action_tiles)
8 l/ L# u3 T u1 V - (action_tile "xscale" "(image_update \"xscale\" $value)")
) h9 O" f) L# ]$ W W9 ` - (action_tile "st_ang" "(ver_ang1 $value)"): E, z& u* d3 x- t
- (action_tile "wid" "(image_update \"wid\" $value)")/ p& z/ N8 k$ K0 d/ `3 d
- (action_tile "hght" "(image_update \"hght\" $value)")$ u8 A" x4 w+ S% m/ u+ s
- (action_tile "image_show" "(image_disp_opt 1)")
$ R2 _' ]7 y: t$ l3 o - (action_tile "image_non_ortho" "(image_disp_opt 2)")5 ?6 _5 S. S0 y- N" P/ x/ x, D6 h" p
- (action_tile "image_clipped" "(image_disp_opt 4)")
" i( t0 T/ `6 b - (action_tile "image_transparency" "(image_disp_opt 8)")
$ ~- p! h+ Q$ K7 o! e# R - (action_tile "image_adjust" "(done_dialog 4)")" p* U! G& g7 |' E% P
+ K) R: b6 [& O2 A6 R) d7 ?- K$ T- (setq dialog-state (start_dialog))
3 c9 W3 [7 y6 O/ L) g6 | - (if (= dialog-state 0)2 M1 N- t& A! M5 r2 x5 X
- (progn* J: @; L( {1 D& `# O- L) P$ e
- (reset)
* s& b* C8 Q) f# j) ~2 K- l) k+ r1 } - (image_clean_variables)) @% g% H% s' @. y* f
- )
3 e& N2 a) Z- Q: ]4 A4 o - )+ @; [; K% N* V4 ^. x* F! Z
- (if (= dialog-state 1)- _, s, F3 s4 g
- (progn, X m( w9 W, O+ x9 q( E, {
- (modify_image)
9 w. q _3 B& @+ C' j9 R; _( s - (image_clean_variables)
- Q9 J3 o9 H* Q6 s - )5 r* b7 t4 j% r$ T q. u1 X' ?
- )
" M2 D- s' z! S f9 T& T1 o - (if (= dialog-state 3)
! ]3 t3 N7 q6 m) D - (progn( J9 k1 E: P: {2 D8 O% ^% Z
- (modify_image)
- |) L2 s- ?" S% j3 f& L. _ - (image_clean_variables)+ Q7 `/ ?% u7 B& ?! g. P
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
. z- x( w8 t, L* n/ B - (ver_pt1 0)6 P! b( V1 f+ _2 D; Z* Y$ R6 \/ {
- (ddimage)
: b }7 k# T3 t5 ~4 d - )4 x0 D# K2 G) N& Z- n* D
- ) z4 ~* l2 o' s
- (if (= dialog-state 4)
8 E2 x7 ~' E& g+ Q o4 I3 N - (progn; ~8 y- K) P; g' v3 i
- (modify_image)
( F+ g% K, E' a b' W - (image_adjust ename), Y3 [+ u5 [0 {2 Z
- (setq elist (entget ename))5 s A; `, i( }, P% M
- (ddimage)8 e! h4 ^ l/ C. _
- )4 h& V2 P) Z" P8 m$ p2 S
- )7 _: l' f1 V8 @9 o9 C8 b
- )
" L( q- X* Q2 C
6 t4 j. k% _1 t- `" {& R3 @- ;;; ?' i6 A' u' s2 r
- ;; Modify BLOCK (and its Attributes, if any)& I% `6 V- t; s! Z4 ]
- ;;
. S* [( L) a1 K C% S m* ?, p; ? - (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr, g& k% Y* h4 b$ W8 a
- new_wid old_wid old_rot scaling old_scale0 o+ g5 N: @! i* Y2 ~2 G+ r8 Z# `4 K
- xdelta ydelta zdelta xbase ybase zbase ipos)
% g: t, [ s! a; [; T% n - (modify_properties)" T! z; D' y7 T
- 0 C8 \) @8 y$ |" m+ A6 T/ m
- ;; First, translate and scale the Attributes, if there are any.
1 ~+ Z$ H) I4 c' Y1 z - (setq old_rot (cdr (assoc 50 elist))
0 b1 A" S0 B5 `$ p/ K - old_scale (list (cdr (assoc 41 elist))6 J* g$ T8 H: J5 h4 u
- (cdr (assoc 42 elist))4 j* e+ X! k" x- h1 K4 d
- (cdr (assoc 43 elist))
0 y$ h: V7 ~1 y% P d$ |& S+ q. p - )0 J; v- R, F% {" ^
- scaling (or (/= xscale (car old_scale))
$ X0 _2 P: J* x - (/= yscale (cadr old_scale))* U( N& ~( e% s
- (/= zscale (caddr old_scale))) D' H# Z! A- b' K
- )$ D; l7 V' A, A0 ?
- attr nil ; No Attributes modified yet
. I, x* A7 S- m - )% C8 _" j7 c8 q- j2 [6 s
- (if scaling8 V! v: a% i5 m1 p+ N
- (progn4 s' p, ]% V- c& ^
- (setq xdelta (/ xscale (car old_scale))
0 i7 Z$ f+ Z |, R& i - ydelta (/ yscale (cadr old_scale))
! |8 L1 B, m) Z \7 r( A, _/ N - zdelta (/ zscale (caddr old_scale)): `5 K v# t6 e0 {* J
- ipos (cdr (assoc 10 elist))
6 E3 j$ a" v% B5 t5 l - xbase (car ipos)+ G' D8 Z4 k0 x. z/ w
- ybase (cadr ipos)7 B. N) ~7 Z- O$ j$ {- \' J
- zbase (caddr ipos)
' h( m$ K8 I& D) r. b - en2 (entnext ename) ; First Attribute
" f+ v* J' }: B3 e, m - )
1 S: ` r+ h; B - 4 j' F4 _/ I' J# t3 V; ~
- ; If the Block is rotated, temporarily un-rotate it, along
) P+ p2 {& s$ H) p - ; with all its Attributes, so the scaling/translation of the2 c' `% Z; b: G$ i
- ; Attributes won't have to take the Block rotation into account.
4 ^8 F! @2 `3 ~ - (if (/= old_rot 0.0)
$ q8 B# H+ \# H& V - (progn
" E. ]# [+ y* S+ \ F - (command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))4 H/ T8 _" S4 C, R$ v) y
- (setq old_rot 0.0% X3 Q. s$ p# W& J
- elist (subst (cons 50 0.0) (assoc 50 elist) elist)
: v9 q8 t1 _1 V. B4 E7 [- a - )' P8 S' D; G1 A X. ~* }( Z
- )2 t; m6 P. @4 V
- )
1 _5 J& W7 l" l+ a - # R) m: @. O; O, ~4 j! K4 @
- (while en2
( w, r& B' Q7 b1 W5 H+ H - (setq el (entget en2))$ I" g# z! r7 `
- (if (= (cdr (assoc 0 el)) "ATTRIB")2 o9 o4 p1 U8 O9 ?3 s5 w
- (progn
d0 W7 V; f, C2 q; L7 e - (setq old_hgt (cdr (assoc 40 el)) ; Height8 w& m# e' v; `+ M# ^0 S! c4 E0 N
- old_wid (cdr (assoc 41 el)) ; Width-factor
2 x' q- t4 L1 m; d |/ o- G; @ - oldp1 (cdr (assoc 10 el)) ; Generation start point
; I$ s, h1 ]) h/ L2 R: C* G - oldp2 (cdr (assoc 11 el)) ; Optional alignment pt# P L& t( x, S o2 J
- ha (cdr (assoc 72 el)) ; Horizontal alignment2 Q( O' O0 |0 K9 Q g2 h, {# S
- va (cdr (assoc 74 el)) ; Vertical alignment2 d) Q+ ?7 D' h% `
- : u5 q; r% n. H+ R' y7 w" j* X7 O
- ; Translate gen. start point& {" }% D/ e! }9 y
- p1 (list (+ xbase (* xdelta (- (car oldp1) xbase)))
5 `$ n6 Z" x" e) N- {) u: n - (+ ybase (* ydelta (- (cadr oldp1) ybase)))6 v) i3 S, N$ ? l$ J9 d6 E/ |8 p
- (+ zbase (* zdelta (- (caddr oldp1) zbase))); n( V1 i3 P" p" q% f0 Q
- )
4 k( ]! X/ u3 Z/ ~, ` - el (subst (cons 10 p1) (assoc 10 el) el) a* s# c. i0 v% L+ X. K o' s
- )
" r s3 H* y3 v" R# z* d, {$ ] - 4 j$ P% I8 C( M1 T
- ; Translate alignment pt similarly, if present and applicable
, x# M4 c$ t1 C9 ]' p; s8 D - (if (and oldp2 (or (/= ha 0)
9 C/ u8 i& j; i8 K - (/= va 0)
% V! M- R: M5 a1 D. o - )
5 ], E: _* T& m- I/ T) |4 l3 h - ), H7 l4 n& r2 U
- (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))
/ A5 D2 U7 z2 B - (+ ybase (* ydelta (- (cadr oldp2) ybase)))+ i0 a0 s/ o( K. l
- (+ zbase (* zdelta (- (caddr oldp2) zbase)))& Z: z% Q, i- K2 T
- )
# @6 l. F2 y: o9 f* M$ M - el (subst (cons 11 p2) (assoc 11 el) el)2 _' i8 M/ k; M9 f
- )
5 Q2 G; d- M% \% j' Q+ W8 i - )
) T" G, r C; C - 4 L% E& h9 _2 T1 L3 j
- ; Each Attribute's height and width-factor were computed
8 F' P2 v1 B/ j% P6 s3 h - ; based on the Block's scale factors. Adjust them now,0 r3 a! [( w2 q2 b0 b0 G
- ; by first reducing to values for 1x1 scale...# ~8 B4 y& @! D* X5 e& k8 A" N" X
- (setq new_hgt (/ old_hgt (cadr old_scale))5 M1 v& V& h+ Q, v, g
- new_wid (/ old_wid (/ (car old_scale) (cadr old_scale)))- i* [4 n1 U, J9 l' I( y
- )% {& l ]+ H: y r0 |3 @
- ; ...and then rescaling.
' o, @! B$ U4 a) Y2 S8 B0 J - (setq new_hgt (* new_hgt yscale)" A& S5 c3 E W0 ]8 D* I
- new_wid (* new_wid (/ xscale yscale))) B: ^/ G0 s" b* S" S
- )
) ?9 K- h! R$ Q+ F - (if (/= new_hgt old_hgt)
- }4 v, R1 K. C* p, m' q' ?3 x/ O7 ] - (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))
/ M- k: W2 `( l1 @6 q8 E - )( v9 b8 K- a8 {
- (if (/= new_wid old_wid)
/ |# e+ d/ O( m* u - (setq el (subst (cons 41 new_wid) (assoc 41 el) el))
0 z0 z/ M" {' S; W' }2 R - )
* r- Y# Q5 |3 }+ P }/ [/ t - (entmod el)+ _8 T, b$ y. D' P5 `
- (setq attr T ; At least one Attribute modified
3 S$ q, M6 O9 v* [" _ - en2 (entnext en2) ; Next Attribute4 l# b v1 G: @" F- O! {
- )
; f: W( m9 J# V8 Q3 A9 ^ - )
8 h8 e) h$ ^6 ?7 z! q) G( | - (setq en2 nil) ; No more attributes
$ I' p. `0 n4 n# t) m$ p - )
" x7 A: E( m# i& [/ \ - )7 e0 j8 ~1 f1 @
- ); x6 U$ ~$ `5 n3 W+ q {8 A
- ): V% U& O0 H0 T1 c' o( T
- ( ^8 G4 X+ R6 N7 H d" M0 z( {' w' `: c
- (setq pt1 (list x1 y1 z1))
3 W/ g1 j! Z$ i* \% x0 ~ - (tempmod xscale 41 nil)2 [, Y1 \9 P; n. X; U6 N- t2 k
- (tempmod yscale 42 nil)
0 B# a/ \+ S5 D- B* [) c - (tempmod zscale 43 nil)2 a& Y: q0 o# n8 m8 i
- (tempmod col-sp 44 nil)0 _* d: k! B f; { v
- (tempmod row-sp 45 nil)
) O0 b0 x0 b, U; b; B8 q0 e" X - (tempmod columns 70 nil)# L' p: F# B" N1 V. s8 M# H
- (tempmod rows 71 nil)& ]! _) y2 b3 H' s1 s. S8 ^% B
- (if (= xclipmode nil)
) k6 Y+ m% M7 L/ Y% H6 u% v. z- v - (entmod elist). p* D( @9 u! `5 R0 R
- (setq xclipmode nil)9 g2 C8 u- O+ g( L
- )
. P7 y5 H3 `6 D) Q# x' c - (move_pt1 1)
3 v) _0 h+ Y" ~) u- o( B
: w" q- _, Q3 ]9 p- ;; Now do the rotation with the ROTATE command.
+ D' s* `; \7 {( x/ f) k3 W - (if (/= old_rot rot)
s, c# N+ o6 e3 n* T3 L - (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))
: V% b& C5 F& p9 n; |2 l" T - (if attr ; Else, if attributes were modified,
U) A& ~. Z. F; \& | - (entupd ename) ; just regen to force attrib display
: M/ @& |& K" _- v; o" \( K, w9 q - )
4 m1 a3 y' c5 P5 A2 t1 m - )8 b6 }( V2 O; w0 y2 T! }- @
- (setq elist (entget ename))
) ~0 B. d6 Z5 y; i% U! n - ) k. ^& }1 K7 D* Y- w# F
- (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)
/ l6 E) b8 M1 d4 N" R* b - (setq newhatch 0); P4 E3 A' ]% T* k
- (setq blkname (cdr (assoc 2 elist)))5 C1 e0 j: K3 q9 d# f5 A( [4 }5 s
- (setq blklist (tblsearch "block" blkname))7 o5 G7 z/ S+ C4 @% \, R9 R
- (setq blktype (cdr (assoc 70 blklist)))8 d6 X5 ?) \3 t! p: d
- (setq xcliponoff 0)5 M% ]9 f8 Z, d0 H( |; u3 c
- (if (or (= blktype 0)(= blktype 36))3 H; @% e* |. Z
- (progn" C1 `# S# o+ m3 E3 a7 W
- (setq xcliponoff (xclipon elist))
+ ~4 k; }# V; P+ X - (setq temp_xclip xcliponoff)
6 ]9 D0 _7 }) ~! K2 u0 a6 K. s* ~ - )) e/ n9 c; Y9 n9 k; T S
- )7 b' x' n4 ]" [ t! u" L
- (if (= (logand blktype 4) 4)
9 H% ?! f. ^# I/ E: M' }' I% \ - (progn
+ E+ E9 ]* F a4 x. T - (setq xrefpath (cdr (assoc 1 blklist)))9 M$ ?9 O& e* e# p5 s
- (setq help_entry "modify_External_Reference_dialog")" E" A! w2 A/ Y4 N' _6 H
- (if (not (new_dialog "ddxref" dcl_id)) (exit))
8 p; m' f+ B! u/ {5 ~) C - (set_tile "Bl_name" blkname)% u# v6 ] `4 k! W$ v9 c
- (set_tile "path" xrefpath)
0 c5 q1 ?* p" X3 j+ e, B - )6 n& ]3 m$ r2 e; T
- (progn
2 \9 J, C6 p u8 c1 i2 d - ;; Get program name for use as Xdata app name
/ w# ]7 U, z, _: K - (if (not (setq program (getvar "program")))
% S4 ~9 R/ b' D2 Q, o - (setq program "acad")
% {6 N- u, `. a0 p5 }: r- {9 } - )! j' C7 j, Z- n
- (if (and (setq temp (assoc -3 (entget ename (list program))))* G+ Y( p9 D. H) |
- (= (cdr (assoc 1000 (cdadr temp))) "HATCH")
5 S* e: H! e; x0 u6 F - (assoc 1005 (cdadr temp))0 s/ K: n& }) @" @% N; ?
- )
; a2 e# U) ]) a( j5 ]" k- O - (progn
4 o9 W4 N: L# J* K4 j% C$ L$ P - (setq newhatch 1)
) G+ v7 A% l8 ~7 }6 O' H+ s. L% m - (setq help_entry "modify_Hatch_dialog")
- }. w# }/ B# J; {6 U - ;;; convert the object into a new hatch7 L. m; u9 X& R- Y
- (ai_undo_on) ;; enable undo O4 Q( C! z8 A" k. u, ?" }! e% W6 p
- (COMMAND "_.UNDO" "_Mark")! q* w. w" B/ |8 }4 z! J7 j0 s
- (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")
, k; x( |+ I1 p4 |1 i Y& S - ;;; suppress nasty message from convert command
m6 k( Y% a. s$ K5 s2 Y5 q8 k, f5 U: M - (princ "\r \r")6 ^, O8 C2 U0 i( y
- (setq elist (entget (setq ename (cdr (assoc -1 elist)))))
1 V% E4 h2 s& @% `0 P& w$ J - (setq old-elist elist)
( l% a4 j) q: A) Y - ;;; If we have cancelled ddmodify: D6 U- R& I+ v& o0 i
- (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok( Y- Z4 t' B# X9 \4 v
- (command "_.UNDO" "_Back")
1 s0 G( i! X7 H1 @! _; _ - ) `% R, s6 x* ?" p5 |8 n
- (ai_undo_off) ;; restore undo state: G& s9 n6 C' m# N/ r& M
- )2 S/ `# J" E/ {/ R" D3 e
- (progn
& p/ g6 v, m% _4 ]9 Y T: q, X - (if (not (new_dialog "ddblock" dcl_id)) (exit))
+ i2 L+ p* V* y8 d! L G" B6 Z% V' U - (if ( = "*" (substr blkname 1 1))
) t% k' ]4 d! q- r - (set_tile "Bl_name" (strcat blkname " - Anonymous block"))8 I+ s- w4 F4 U$ S( Q
- (set_tile "Bl_name" blkname)5 t# K1 f- V# `0 y R+ T' E# S
- )
Z$ g& @' J2 z1 }/ [$ o( U - (setq help_entry "modify_Block_Insertion_dialog")
* g- ^' [' P, U7 x6 s% P. o& b5 D - )& L5 }/ A U" t: U" v: Z
- )7 }5 ?$ x9 d$ c% I Q4 B" [
- )/ @( O( z6 P. I1 a: t
- ): q4 \! V! R0 p0 Y) u7 S
- (if (= newhatch 0)1 `! b) J5 }1 ]6 i5 o, Z
- (progn
' b7 n. J& `! X2 K% X. E! \ - (set_tile_props)- k1 k$ I. m# e% }4 b# T
- (set_tile_handle)- ~# ` @2 A& E2 X/ t
- (set_tile_pt1 1)- M5 C& H. o( ]7 r
- (set_tile_rot)
$ o4 L8 M' M5 p& [ - (set_tile_scale)
6 P# B- F$ _ }/ C* m- B1 ~2 o( s - (set_tile_rc)# A1 ]4 D/ C4 b
- (if (= (logand blktype 1) 1)
* ?- Q, n8 D ^4 P% Z" q - (progn+ c, D/ B8 q7 H( F& Q2 v. N B
- (mode_tile "xscale" 1)
& Z; H' {; _" a( @0 i - (mode_tile "yscale" 1)
9 Q) Y4 q* ` K; T2 a8 A9 o3 q - (mode_tile "zscale" 1)/ @. _! ?. Q+ _& m
- (mode_tile "rot" 1)& g4 u. h2 O7 W$ m! ?' g. p4 b
- (mode_tile "columns" 1)
5 _/ K% x; M4 m+ y1 v$ t - (mode_tile "rows" 1)
+ h& h% o# U* Z - (mode_tile "col_sp" 1)1 \ }# [# s& p/ K/ T
- (mode_tile "row_sp" 1)% l1 Z+ F8 ?. ?% a0 s& ]8 U8 U: \" X
- )& }4 ]: ~) c7 Y2 ~: W5 h
- )
1 |% L+ }$ n* N4 ] - ;; Define action for tiles
( [9 f# w e) y8 ^ - (set_action_tiles)! }/ S7 B. l; b, D) b* T
- (setq dialog-state (start_dialog))
4 D8 B: D$ k& y6 O - (cond
a$ }( _* a; Q% @/ l" B3 Y - ( (eq dialog-state 0)
, v9 V- k: J" M: z( t1 ~4 d3 V - (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))! e7 p+ l# s1 i
- (move_pt1 1)* w; Q8 V; n6 \6 G
- (reset))
. e* u* p' y2 B - ( (eq dialog-state 1)
4 T! A7 `+ l+ K+ J5 A {; E' F0 \ - (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))+ M) s6 p& Z4 L( q w/ h+ U
- (xclip)
: }- B$ P: d, c! b/ G- Q5 {$ [ - )/ a! o" `3 `( y8 h% a. T" s6 ?3 [
- (modify_block))
( Y# V, z5 l" B9 j$ ^) L - ( (eq dialog-state 3)
0 _ c0 ~/ i% X - (modify_block)
z! [' G1 c8 s( h- Y/ \0 O - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
3 Q9 r) \' p, n: `6 y - (move_pt1 1)% H8 K k3 p" m
- (ddblock))
1 r6 P) _7 p1 `: ~9 x: h% B/ \ - ( (eq dialog-state 4)5 l3 p; Q4 B! [0 ~* b
- (modify_block)
4 y1 v1 K% Q$ P7 r- Z - ;; Get current handle.
6 i1 q s, d- M% A5 r - (setq hand (cdr (assoc 5 elist)))
. u9 x9 |- `* `+ Z+ T) d - (command "_hatchedit" ename)+ \# p3 _2 s0 x
- ;; If OK in hatchedit, a *new* entity is created and the old one
2 K* o# v8 P) \6 @ H" @) u6 U% c - ;; is deleted. So if the old one exists, it must have been a! P \' ?- V7 t( ]2 z6 c
- ;; so rest the entity.
2 x& A/ `" M6 u9 L - (if (entget (handent hand)) (reset))& d6 L) {4 A* \" d
- )( p/ L3 u) w( {' J9 l
- ). |1 `0 J) v, y, @6 E& s& F6 Z
- )
J" v: B- M$ b - )' M9 ^) x. M; {
- )* Y) y8 V" p' Z* o/ K9 R' A
- ;;) y( p5 }5 ^: Z
- ;; Modify SHAPE- N4 Q0 w' q2 x' z. x: e1 K9 _ R
- ;;
, b# x# ~: A+ ~. J% t# L$ M1 | - (defun modify_shape ()
8 G, n& q4 G6 z - (modify_properties): _3 V# G; P/ s0 p
- (setq pt1 (list x1 y1 z1))
" |& o) R) k2 c5 O8 T- M - (tempmod pt1 10 1)/ _7 r/ u5 r. K7 J7 X/ E
- (tempmod hght 40 nil)9 o6 W$ |8 o2 P3 K6 M u4 i
- (tempmod wid 41 nil)
) j7 P( {7 l& Z4 }% s1 G4 R - (tempmod rot 50 nil)
; O! Y* P8 r2 c - (tempmod obl 51 nil)* i$ t% k. r3 l8 p
- (entmod elist)
, }, {4 o! E3 y* H - )
% `% ]- K, R+ ]* G- ^ - Y% r5 L; [$ H/ X
- (defun ddshape ()
0 _9 S- N* m, Q7 [, r$ V9 h4 g - (if (not (new_dialog "ddshape" dcl_id)) (exit))
) |8 ~3 T6 k! j - (set_tile_props)5 V/ U: G. b7 x7 x$ Y
- (set_tile_handle)
: x; Z3 I1 a: E& u' u1 ]" l2 ^& z - (set_tile_pt1 1)' y: z/ @* O' ]# D- l
- (set_tile_rot)* B' E% |) h6 i9 V; x$ U$ {8 g
- (set_tile_hght)
. V* b/ v- R5 d. n8 } - (set_tile_wid): Z% ^% h4 ?% C4 W6 e0 c
- (set_tile_obl)
6 O$ U* _& ^, [" Y - (set_tile "sh_name" (cdr (assoc 2 elist)))3 u, ~) Y) @1 c
- ;; Define action for tiles" G/ m% P7 p0 F x& H
- (set_action_tiles)
1 E2 [: n- p& S* _9 l* ? - (setq dialog-state (start_dialog))
. l) P2 d! H- a4 Z7 C - (if (= dialog-state 0)
1 ^! P9 g% `: M" f: ^ - (reset)% V2 R. }$ x: W! K, Y6 _6 M: D
- )
& u/ H1 E- H# a- w - (if (= dialog-state 1)# i/ m3 e+ J' |" k
- (modify_shape)9 |% u( r2 N. g2 L+ b- }& m7 e
- )5 `) E: A2 P8 v, w4 a3 k
- (if (= dialog-state 3) T+ y4 v T, t C0 N( U
- (progn
# O( C" z8 C& T2 A9 d. i# E" U - (modify_shape)
|+ b: H; p- B# v" \ - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
6 M; ]1 a6 b+ p- f3 o - (ver_pt1 1)" _% Z G, D' o' P2 U% ]% q
- (ddshape)) X/ N( n$ a3 \# H- Y4 I; a
- )
) j6 B6 I2 L% i, k+ d9 G - )- S5 ^( N- ?$ t5 Q
- )
3 F: S# D2 K' @ - ;;/ F2 I( T1 S1 D0 D
- ;; Modify TEXT or ATTDEF
! P' c# I( ~- S1 V - ;;
! k3 D% E& F* }6 {# u: ~( W: i - ;; Set bit code for upside-down and backwards setting
( A: e1 S4 H' {2 Y. b8 S - ;;
5 U' d8 o& e( c) j' [, t- r: J - (defun code_71 ()8 S+ J8 }& x& _. e2 N' D
- (cond ((and (= bkwd "0") (= upsd "0")) 0). K. _5 A; ]7 `6 S. S; H
- ((and (= bkwd "1") (= upsd "0")) 2). m* x( L: l B
- ((and (= bkwd "0") (= upsd "1")) 4)1 n3 E1 Q# y, `7 P5 G
- ((and (= bkwd "1") (= upsd "1")) 6)
. `" f% X N4 l! x! T, |' q - )0 K: `: W! W8 U
- )
) U0 D9 x. Q5 U- J! j8 C6 m! B - ;;
# ?+ O! V4 j" i4 D: O; k* J0 L - ;; Style action. Reset widget values to style defaults
$ B9 k. i9 @; R" J, P - ;;5 ]2 O4 {( ?" C5 S1 q1 m" P
- (defun style_act (index / style-list)
4 h" i- P; ?1 v) { - (setq style-idx (atoi index))
" Z( K& I6 \! d( t7 L - (setq tstyle (nth style-idx slist))
# S9 l, D9 O/ b4 |9 m* z* O* V - (setq style-idx (itoa style-idx))% g: @1 M, k5 J
- (set_tile "style" style-idx); N; E/ K& }" {$ q4 e$ @4 f& Q
- (setq style-list (tblsearch "style" tstyle))
# M7 y! Y' H# ?& H7 W. Y: s; l - (setq shght (cdr (assoc 40 style-list)))
% W. K _5 A& g- ^; u/ q+ b - (if (/= shght 0)
- O: @2 h/ G7 W0 e& q3 L* ^ - (progn) O9 o5 Q3 \2 l4 L6 M, ~5 _
- (setq hght shght)' ]' W8 u+ C) B% P2 F. V) c1 m
- (set_tile "hght" (ai_rtos hght))* M0 }, D- x8 S
- )
; ~# Q; {5 S4 [* j8 B6 ~ - )8 j. C1 i; ?' t, [
- (setq wid (cdr (assoc 41 style-list)))
! ~- A+ n* Y# U7 q1 [ - (set_tile "wid" (ai_rtos wid))) l/ [5 C0 f5 x9 q! C4 k1 @
- (setq obl (cdr (assoc 50 style-list)))
/ H: `1 [5 Z! L( e9 Q0 ] - (set_tile "obl" (ai_angtos obl))
( Q7 ~4 a' [$ j - (setq bk-up (cdr (assoc 71 style-list)))5 T2 G' T$ g/ X) @
- (if (= (logand bk-up 2) 2) S% C. V& y0 p. b
- (set_tile "bkwd" (itoa (setq bkwd 1)))7 h- a/ _4 R5 @- r( x7 r q
- (set_tile "bkwd" (itoa (setq bkwd 0)))
) R# ]6 a: ?# n( y - )
+ w' L% R. w( [# V- E8 g - (if (= (logand bk-up 4) 4) G* z! ?$ u2 C0 d8 W; o
- (set_tile "upsd" (itoa (setq upsd 1)))1 g# q& O, y# t- C6 G9 ?
- (set_tile "upsd" (itoa (setq upsd 0)))
. h% Z& m" j& Y; f& z. W" S! p5 R - )( _2 m3 m- g5 Y5 b/ z
- )8 Q# |5 u4 P, e9 Z9 ]
- ;;9 u( {, _- C" K5 G5 R" x3 b
- ;; Justification action. Set vertical and horizontal alignment variables,
. i2 Q( M/ V. k4 m - ;; grey out rotation and height if alignment = "aligned", grey out rotation+ @; `. K' t1 b* F5 t
- ;; if alignment = "fit".5 L6 G6 U' d% ^' J8 v% F
- ;;
( u1 _) a X) K! j - (defun jlist_act (index / templist)- H' j' h. k; u z# n) r
- (setq just-idx (atoi index))' i) D) C( x, N
- (cond
; _2 h/ |& j" U - ((= just-idx 0) (setq va 0 ha 0))
8 i' X1 v/ X b% l' P" g - ((= just-idx 1) (setq va 0 ha 1))
$ P" Y6 g, |8 R) C; K' H - ((= just-idx 2) (setq va 0 ha 2))" s4 s2 h: V% j
- ((= just-idx 3) (setq va 0 ha 3)): x8 [4 U3 ]' t1 }0 a7 E+ w
- ((= just-idx 4) (setq va 0 ha 4))5 G! H! h# R) s2 \3 d& @
- ((= just-idx 5) (setq va 0 ha 5))
1 x" B8 ?" E5 ~( i( i - ((= just-idx 6) (setq va 3 ha 0)). Q# P, M/ r4 Y+ j$ k+ o
- ((= just-idx 7) (setq va 3 ha 1))
/ H2 d1 \$ G$ F# u - ((= just-idx 8) (setq va 3 ha 2))
! [7 I: [1 H; n$ I- N# O3 `1 m - ((= just-idx 9) (setq va 2 ha 0))
% T# e' |1 U) ?1 ~. O - ((= just-idx 10) (setq va 2 ha 1))6 [+ Z- P# [- M4 D+ f8 K
- ((= just-idx 11) (setq va 2 ha 2))5 _2 N m. `. E4 \+ ]2 c6 E' B
- ((= just-idx 12) (setq va 1 ha 0))4 n3 t1 t/ [6 A9 K
- ((= just-idx 13) (setq va 1 ha 1))
M- `* W/ a% L" {/ } - ((= just-idx 14) (setq va 1 ha 2))" P# n. Z6 `% ]5 l; z! {; [3 y5 @
- )) ~- g$ f3 b, f7 {
- (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text
" V$ H8 j, }% r/ A# e9 q! _ - (mode_tile "rot" 1); S. R- Y7 t" y! x
- (mode_tile "rot" 0)& g+ \: m& @+ O/ { p6 y9 H
- )' `; x6 w8 d8 P6 `/ Z. V1 r) ^0 X
- (if (= ha 3) ; If Aligned text2 b; m3 |" C# e' C1 ?9 q
- (mode_tile "hght" 1)
, S3 i' l: _& G( \' ?, O" f - (mode_tile "hght" 0)8 V- F$ n! {; M2 D' n: t! i
- )
6 @: A7 S% n7 A& Y+ L" ? - (if (= ha 5) ; If Fit text* J6 n6 t+ v: U
- (mode_tile "wid" 1)
; J- y! P- i2 ~& w6 A3 P% |) b - (mode_tile "wid" 0)+ a4 g& ^% N5 o6 y9 S5 z O$ n
- )
! ]% k$ `. ~. c8 Z4 I% v5 n - ;; Reset rotation and height if changing from aligned.
: O {' G/ T. O! V0 e" ~% ^, R - (if (and (= ha-prev 3) (/= ha 3))- T0 z0 N" y( F. j" Y$ L
- (progn! _( o% [3 {, j- w# T! g9 t) U: v
- (set_tile "rot" (ai_angtos (setq rot 0.0)))
" U7 B" I& X& H. x - (set_tile "hght" (ai_rtos (setq hght 1.0)))
: ~. \! m. @& \ - )7 U, ]) b' D0 \$ M5 d
- )! `9 Y/ l2 B* x. v* }2 W& i
- 2 n2 b: r2 g6 \5 h: m2 E
- ;; Reset rotation and width if changing from fit.
0 W% r5 [: ^$ o/ m6 S9 K# S - (if (and (= ha-prev 5) (/= ha 5))
; n: y8 `8 c% `, k- V1 k - (progn2 s6 u/ D8 o1 ?* m o
- (set_tile "rot" (ai_angtos (setq rot 0.0)))( z4 o3 F5 p7 j2 d- F3 i
- (set_tile "wid" (ai_rtos (setq wid 1.0)))
4 |* c/ _% w! [ X) | - )
5 j( p/ D" z# V - )1 g/ b2 m: N% S! T# g; O
- 5 S4 m8 d) [! |! b$ F
- (setq ha-prev ha) ; update ha-prev for next time
2 \1 W8 \" ]% |: n8 `: h1 }* R2 a+ B3 m - (setq just-idx (itoa just-idx))# {$ @+ e' t; B6 F" t& k8 W4 Y$ K
- )5 R; p! u, C* P: ?1 V, s# n1 e
- ;;
+ S( c5 @# r. A+ M9 U7 j4 h8 ? - ;; Set intitial alignment setting based on vertical and horizontal alignment
7 Z. Q7 Z/ {7 ]" n - ;; bit codes., ]: m' U* q3 l. o$ A" G* C
- ;;
P; z4 H% i2 ~0 P. j - (defun set_just_idx ()
- A9 v9 @# |4 x4 D1 L# E) z9 f$ Z - (cond$ A( Z2 i$ l) h: t8 B
- ((= ha 0) ; Horiz alignment = Left
: Q: a' \$ M7 d+ g3 | - (cond
6 I: H' f; A2 a( ^% o* y7 e7 g4 U - ((= va 0) (setq just-idx "0"))2 z O- Y' c3 u9 g% R8 {( ~" e! j# z
- ((= va 1) (setq just-idx "12"))0 T/ W6 _0 I; Q* c( P( i4 \ P, b' g2 M
- ((= va 2) (setq just-idx "9"))+ m0 {: _7 y/ c2 b! E4 f# h
- ((= va 3) (setq just-idx "6")) {3 Y. k6 f% X" c5 I1 q/ F+ l) {
- )
* q6 {3 ]. l" [: a - )4 D) R7 ~7 @2 ]: a2 s7 @4 \
- ((= ha 1) ; Horiz alignment = Center
! p9 S4 K6 @0 H$ q$ K - (cond
, `, a. z' q% W' A- Y - ((= va 0) (setq just-idx "1"))
# b+ F. |3 m- ~, _ - ((= va 1) (setq just-idx "13"))
5 y# `& u9 E2 W9 p C - ((= va 2) (setq just-idx "10"))8 o; u$ H2 U! j0 j
- ((= va 3) (setq just-idx "7"))4 t3 I2 o. @" U$ v" o9 L2 C
- )
. Y6 _3 s0 g9 x8 q' ? - )
/ J' L/ r- G# L" t. h - ((= ha 2) ; Horiz alignment = Right
1 H3 R2 |8 |0 T+ S* r3 j - (cond! U. K, z U' v2 @. c6 N/ N, t+ E
- ((= va 0) (setq just-idx "2"))
$ E" P7 Y! o9 W9 g - ((= va 1) (setq just-idx "14"))5 x7 D; D% F7 ~0 C' h( @4 B
- ((= va 2) (setq just-idx "11"))
0 F9 c; ]; Y, q9 }5 Y - ((= va 3) (setq just-idx "8"))! m& d: \6 l: `6 |9 s8 R
- )
7 e5 [8 n8 f% e9 u2 F - )
P7 p9 ~9 p1 ?% ^ - ((= ha 3) (setq just-idx "3")) ; Aligned7 ~, R# _& q+ h- {# N
- ((= ha 4) (setq just-idx "4")) ; Middle' ^3 Q7 k& D9 J# @
- ((= ha 5) (setq just-idx "5")) ; Fit
" b" A2 Q/ ]& k7 L% m2 Z - (T (setq just-idx "0"))8 |& Z% y7 d' y* E7 @/ \, ~
- )
8 |- V# o }5 T9 p - just-idx+ h- D. B3 y6 ?3 e; n2 ]
- )
$ A0 E# M7 w% ^' j! `& m* s- M
2 }, ^3 i, w" C& }3 O3 ?- (defun modify_text ()9 b, M: ?1 V L% ^( G% ~
- ;; insertion point( b( H& g4 G& z! w' d3 Z1 d
- (setq showpt (list x1 y1 z1))
1 A8 K' `* W9 N1 n7 i a - (setq bit-10 (trans showpt 1 ename))
) p2 h5 b; Y; a8 ]0 a - ;; alignment point
! a1 h$ y4 |1 e) i" m - ;; for 'Aligned' or 'Fit', alignment point must be different3 o% t5 M3 w2 z) s" a6 Z0 f% Z
- ;; for all others, use insertion point. I- [# P. s8 v9 P
- ;; (ACAD will recompute insertion point)+ g0 O$ e9 h8 T
- (if (or (= ha 3) (= ha 5))6 E5 o) I% `1 S8 {- x8 [
- (progn
4 `: T, X7 X- N$ `- l! a3 e - ;; if no alignment point, fabricate one/ ~3 P% _0 L1 Z7 w0 R# ]4 s
- (if (not alipt)
! g' T! Y7 s. E' M - ;; add text width to insertion point' t6 }+ { K) @' g9 x
- (setq alipt. B) \4 M: V9 e: h# o
- (list (+ (car showpt) (car (cadr (textbox elist))))9 Y$ q/ L d. }3 U& E [
- (cadr showpt)1 A. {2 L+ W% q+ D. `3 S9 @. G8 n
- (caddr showpt)6 H* u, ?8 \5 S
- )
6 ?3 C+ ]% u/ G: c b) y - ): Z1 k4 ~& q$ }( U$ B2 E5 \
- )
! S( I+ k* m2 r _; s - (setq bit-11 (trans alipt 1 ename))9 s, I# i( s0 O; Q* k
- )
/ _3 P: o3 s: T' _2 W6 J/ s; C4 a - (setq bit-11 bit-10)
' _% h2 E1 m5 |( Q E0 v9 c4 E - )
r5 O9 a( C# `! w - (modify_properties)
. g4 [4 B8 m; o1 x% C4 d% o - (tempmod tstyle 7 nil). }3 ?% R7 W- \
- (tempmod bit-10 10 nil)7 D5 [* x# {& F! @$ ]" U5 C
- (tempmod bit-11 11 nil): y' a& j/ ~9 H+ T2 u, }
- (tempmod text 1 nil)
1 X* v6 G2 X2 @3 J# [" _" w7 R - (tempmod hght 40 nil)( l2 \, N: l) | X
- (tempmod wid 41 nil)5 q) J' F% u2 _5 ] @% h
- (tempmod rot 50 nil)' Q( a. p8 z1 ?: r+ S
- (tempmod obl 51 nil)
3 p1 m3 f, I$ ^$ V) z# A - (setq bk-up (+ (* bkwd 2) (* upsd 4)))' d- P4 `; x$ @/ b) f0 p0 c% R1 z0 J
- (tempmod bk-up 71 nil)) `% N( O* O3 z# ]4 h! d- G
- (tempmod ha 72 nil)
q: g( i, ^7 |% H/ r - ;; Attdefs use 74, text 73
$ F4 V" Y. q0 `& z* U1 y - (if (= etype "ATTDEF")
( x3 j, l: |6 ~' ~' f0 s- U% A - (progn! c' }' s4 ~- A- \6 L
- (tempmod attag 2 nil)
) W8 |2 Q9 s% I - (tempmod atprompt 3 nil)
6 P& C/ c& x4 A: K$ a+ g - (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))
) t& ]% D; c3 R: J: d% f - (tempmod icvp 70 nil)
) X W9 X* U, i - (tempmod va 74 nil) d3 A9 B% I5 V/ u: r0 R0 m
- )- g) J3 ^" C/ o+ A1 Z
- (tempmod va 73 nil)
& T" a/ I) l+ N0 Z% O' U5 u - ) L, c1 m3 N$ v
- (entmod elist)
+ J/ R! v) }+ c6 U f) W2 Y4 g - )
5 `0 R: z3 h" B4 w& E6 M* J3 R - . i: o# i( E1 M9 [. g r
- (defun ddtext (/ 2ndpt slist i)) {6 S8 F* ~# r. x" N) h
- (if (= etype "TEXT")
( q( |3 g$ a8 u" m2 c) Q - (if (not (new_dialog "ddtext" dcl_id)) (exit))
: A& e0 J8 D7 z. e& H0 o* w4 u: C - (if (not (new_dialog "ddattdef" dcl_id)) (exit))
5 \. w( H, U& W1 c* D" h+ y - )
& A/ m" Z$ S$ ~8 D - (set_tile_props)
0 X( P( k7 C4 ^4 `5 m4 w - (set_tile_handle)
' h5 {/ Z2 ~. y* ?4 e/ l! f. m - (set_tile_text)
% E% R2 m7 N( C/ N+ N; N0 t: \ - (set_tile_tag)9 u. D( y! q" Q' d1 I3 j& Y9 W/ M
- (set_tile_prompt)5 ` T6 H; r# e
- (set_tile_hght)
0 v- t+ H ?( f3 h6 M+ S - (set_tile_wid)
3 i# O* o5 c) d$ [ - (set_tile_rot)3 _, q( _3 r. }0 u
- (set_tile_obl)" _7 I+ t/ v1 c+ {8 J& K8 Z
- (set_tile_bk-up)
9 U: g" O( n! ?+ V& U8 j - (set_tile_icvp)
# ?/ Y: X0 ?, {& g1 @" D6 c - (set_tile_style)
% t& [; i1 k. x1 w2 v# U" _5 _ - (set_tile_just)' v8 |5 j: L& L- q
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
9 n2 C/ Z1 Y* T( y& j - (if (not (assoc 11 elist))/ P1 \" u( g: @% @' V
- (progn (setq pt2 pt1)7 L& C. L/ @; J! v+ g
- (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))6 l6 i. o5 t9 L5 h, ^
- )
( W$ P5 n. D' \8 ^& E - ;;(trans '(0.0 0.0 0.0) ename 1))
* V4 _: a7 t5 v - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))$ ]5 h- c* n; P$ G" X$ C
- )
/ b1 m' _& r7 q, G0 k1 W( l; i - (if (or (and (= ha 0) (= va 0))* @9 r/ \9 b1 q4 W' C0 T
- (= ha 3)7 r' b. L, X4 Q7 s- l* f3 H+ k
- (= ha 5)% m/ m& S3 w! O5 r
- )" V! L5 V+ v3 j5 h1 l% u
- (setq showpt pt1)) M% R' B6 u' ` R
- (setq showpt pt2)# L* ^( E; I1 t$ {: L5 d$ v' A9 l
- )8 m4 u9 t8 f, s6 }
- (if (or (= ha 3) (= ha 5))6 R1 c8 [2 S+ l `& ?
- (setq alipt pt2)1 Z8 u4 C, B2 L l g* n
- (setq alipt nil)
' X! }7 ]% \; J8 |0 { - )# a& V* T: t: x2 ` i
: @$ H- u) j' N- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt))))$ o. v# u# `: \4 h
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt))))
0 @6 \$ p7 T( e) C1 G2 `! { - (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt)))), f0 ~3 R2 r* t8 J3 ]2 Z* M. M
- ! d3 F- o( }4 S" R) C: M
- ;; Define action for tiles' B. ?; n: L& x1 D
- (set_action_tiles)& |$ F% j" @$ i) U" [) {, i
- ;; Set focus initially to the text edit box.3 P/ N1 _: _& r, x7 B
- (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))
V8 c. e' m* t8 d8 X8 `: l: m - (setq dialog-state (start_dialog))2 q9 w i& r5 F1 S
- (if (= dialog-state 0)" B& ]0 Y* H. \1 _9 ?
- (reset)
# n8 o0 M- Z9 @$ o6 c$ a1 D" u - )
8 M0 D6 `; k' F- A; O$ k$ x - (if (= dialog-state 1)3 y0 b' w1 W2 v4 Z% K" ~3 C: p ~
- (modify_text)6 k9 J: P, c, n2 u! C( z$ ]3 E# B
- )
2 V, l# n# n, y' w9 L - (if (= dialog-state 3). T; y- w9 e: _; H, y
- (progn" N% D+ K6 g$ m9 J7 R; F
- (modify_text)
9 M% L. J" K( B' a9 j2 |. V3 v9 ~0 D - (if (or (= ha 3) (= ha 5))/ K8 j7 V I8 Y$ S
- (progn
1 s+ L3 w; s" I9 P - (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))- D) d6 i t0 x7 X
- (if (not showpt)% z9 ^6 C5 z( r! V1 q- V1 I0 l
- (setq showpt (list x1 y1 z1))
. S1 X3 d$ Q! Y5 ]& v - ): L4 ~3 q$ U4 }$ ?9 }
- (setq 2ndpt (getpoint showpt "\nSecond point: "))
; [$ p' R$ x9 Y9 X2 @* H - (if 2ndpt& F. t9 ~% G& c0 A6 I
- (progn2 {0 o+ ^: R9 q' |4 R" V
- (setq alipt 2ndpt)
, d7 E5 T8 R) ?) U# c+ z - (tempmod showpt 10 1). W; E( ~# _; s/ E, E9 V' D; n
- (tempmod alipt 11 1)/ k, E4 j! K) R3 z7 n4 @
- (entmod elist)
' A$ e: ~( B: _! v4 k - )
7 p: H; A6 b+ s5 n, B" s - )( b, r) h( k. ^7 T% Q
- (setq elist (entget ename))- q1 J) {6 U V$ a4 Z) [! |% j9 ^
- ); P! ], [7 y; [8 h
- (progn
- G( B- Y4 N% Q - (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))
+ u7 b* t3 h0 i - (if showpt
7 t$ K# o9 f, j! ~. m( _ - (progn
J( y$ O2 Q! M+ [3 K - (if (and (= ha 0) (= va 0))
2 W7 r/ [2 B4 B! ]( { - (tempmod showpt 10 1)
6 r1 T# P! q; I7 G) B0 l - (tempmod showpt 11 1)
* b2 X: s# X9 {, F8 n - )
6 i2 y) m! g' K - (entmod elist)
& v. h/ v- a) S - )9 d/ _: B5 K4 I/ ^6 K& @ ~: F( U- u5 h
- (setq showpt (list x1 y1 z1))
5 z1 O4 M3 ~, _ w7 {( v" B4 Y - ): Z5 G0 k* W9 U% F2 o' D
- )
/ H2 F% m, H( r - )
2 {5 A/ [2 Q' u4 }3 p - (ddtext)9 Y% e% o4 b2 d W$ C/ I
- )
; N, e" g: H/ ?" ?4 S - )3 ?! V2 O6 w* S) G
- )% U. W/ U' d1 ?
# T) b+ ?% Z& k5 S- ;;
3 @7 J! T! q- [" c - ;; Modify MTEXT- J* n, E/ T' i4 i3 ]
- ;;
# A: ^2 X9 h! ?( F3 E+ V* f - (defun modify_mtext ()
$ }$ c, K0 B7 x& u, G: B - (modify_properties)
* b/ v6 e/ q S o) ?1 J2 r" O+ u1 O - (setq pt1 (list x1 y1 z1))8 S. @4 U+ C9 J( p5 _; i3 h
- (tempmod pt1 10 0)" D2 r! S. @) W( z O
- (tempmod text 1 nil)
* D6 C4 g8 a% X9 o - (tempmod tstyle 7 nil)" p7 T9 M6 w1 B n+ ?: B
- (tempmod just-idx 71 nil)* U; b: M1 Z6 q9 d
- (cond
3 `. y7 q2 `, n( [* m* l - ((= dir-idx 0) (setq dir-idx 1))+ `5 S+ [8 }- K& o z+ @6 V
- ((= dir-idx 1) (setq dir-idx 3))
& m2 S0 e% O, e/ b% h - ((= dir-idx 2) (setq dir-idx 5))" V1 }' o1 A- g, ~5 t
- (T (setq dir-idx 1))$ q F% r2 H2 x- r9 d8 F4 p
- )
$ z* H9 F& \; V. ~; u - (tempmod dir-idx 72 nil)9 j+ k3 O% q3 p/ d1 P r, c9 G4 t" M8 N
- (tempmod hght 40 nil)
) p6 w' a6 v0 ]- C6 R9 R - (tempmod wid 41 nil)
! I9 ^' @6 E* @- O {' U! ^. O - (tempmod rot 50 nil)
, `7 }4 o6 V- g& O - (entmod elist)2 T3 u0 `) Y" O
- )% j' z5 l, ~8 }+ T& x# I
- $ w, \3 g4 c& @ f- C ^& b
- ;; Set MText text style
1 |$ Z' ]! l' B4 z - (defun MText_style (index / style-list)9 T" K1 e2 ?: o7 o, V
- (setq style-idx (atoi index))# `" N" |" ?5 Q5 @* _ X Q
- (setq tstyle (nth style-idx slist))2 _2 Z9 R5 _7 Z( u% V; c; \3 X
- (setq style-idx (itoa style-idx))5 k+ j+ Z3 z/ n6 Z& i1 o
- (set_tile "style" style-idx)
4 Y; `0 b F: x: Q0 w - (setq style-list (tblsearch "style" tstyle))
: W- v4 J1 }& r3 |/ r6 u$ H - (setq shght (cdr (assoc 40 style-list)))
6 ?) @: `; E" Y# w* I( k4 B$ S - (if (/= shght 0)
( D" `3 k3 Z- X! B- g. H" ^ - (progn. j4 m* |& v" q; n
- (setq hght shght)6 [0 {% }2 y9 B7 B5 M. n) |1 i0 ]
- (set_tile "hght" (ai_rtos hght))
4 {; e R) l( J- `7 t5 c - )5 D- Y* J# m4 S; B7 j- m
- )
. I" Q3 R7 G" ]$ c/ i2 S8 W - )
1 v2 r+ H' U+ j0 ?1 Q- v1 q
. I4 t) _# Z9 D, K$ k- ;; Run DDEDIT on given entity, working around possible re-entrancy6 I$ k/ { A( d1 k* l6 p
- ;; problems with MTEXTED
, F/ L N7 G/ y - (defun safe_ddedit (ename / orgMTextEd work)
: A9 _8 W) y' k% T$ `4 ?8 a+ d: h - (setq orgMTextEd (getvar "MTEXTED"))
@; g0 c8 x% A& |& h: C - (setq work orgMTextEd)/ X0 h; ^/ h; Z# o
- (if (= ":" (substr work 1 1))" q# V! G% m1 D) d$ n; L
- (progn; c- G9 E, v0 U S* j
- (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))) K3 ^& o% e( R- g& X
- (setq work (substr work 2))2 [) K: B! t8 h! h
- )
; z1 b# @6 ^ Q# o - (if (= "#" (substr work 1 1))
9 m2 m* t! W" o - (setq work (substr work 2))
4 @' _7 ~$ W2 z3 D2 Z# w6 t! q - )6 o! z. k: q, o3 R3 _
- (setvar "MTEXTED" work)
* ]4 G) O' b# \4 e - )9 W! W3 e# _% q
- )
, n) m% m+ b( B - (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded..., k9 w. I5 p4 ?! `4 r+ J3 _3 ?0 V
- (command "_DDEDIT" ename "")
' T' ~+ @' h8 x, C, T8 X7 O - (setvar "MTEXTED" orgMTextEd)2 }; [) P X! o4 \* |
- )6 R! Q) B+ {- o$ B
- & D* z! k! H' J
- ;; Verify MText object width$ T! x1 L9 P* P
- (defun ver_MtextWidth (value)
* [! \1 O6 r; R4 a - (setq value (distof value))
- A9 i' g p& J5 C: s - (set_tile "MTextWidth" (ai_rtos value))
" Y; u8 o* X+ M, d' g9 U4 k7 p& { - (set_tile "error" "")
. i' ?7 u# [) h. C - (if (< value 0.0)
4 D& ^1 T7 b( p5 V0 K/ r- r$ D - (set_tile "error" "Value must be zero or positive."). V0 L& r2 Y& b* y* H. m. `
- (setq wid value)
9 J- ^- m: K, M( X) ` - )3 }( {/ t$ u* h6 f" }3 D8 J7 W
- )
; _" r% @& Y7 M" e$ c
- }# o8 L* a" u$ x- (defun ddmtext ( / gc3)
* T, A' H- \. g8 b$ V - ;; Get dialog0 U" O q, o) [+ N- I0 F0 D# l
- (if (not (new_dialog "ddmtext" dcl_id)) (exit)): q0 W8 |0 ?$ l) s+ a# N! l
' ]0 \. i# h: y! [" r- ;; Load list boxes
( s# _4 q Z4 x- b9 M/ t# O - (start_list "MTextJustify")* i8 ?+ Q7 v0 Y' I# N9 C3 e/ t
- (mapcar 'add_list '(7 |1 A$ g8 y5 t& v
- "Top Left"
4 j6 v3 F% n+ H! p - "Top Center"
9 n; ]8 y7 Y: ?! p - "Top Right"3 W) B6 d6 w+ s& C4 H# t9 }$ L
- "Middle Left"
+ V. O1 Y9 H! A5 C2 q W$ t - "Middle Center"
9 n0 r! {$ Y& L. ?% P1 L - "Middle Right"
8 G+ s6 G+ t3 v, l3 u - "Bottom Left"
& A# E9 s9 A" O5 c' h - "Bottom Center". [5 B9 C- h y$ |6 \3 E
- "Bottom Right"
* D+ b8 `8 b8 h# [ - )
( M8 D* o5 b2 b. K, ^ - ). V! T* W' J, s* M4 e4 a
- (end_list)
. a/ @4 T3 b6 r. p0 ^- A5 t - 2 z5 M- r* S+ s5 `# b
- (start_list "MTextDirection")
D/ G7 |4 A3 o% W6 {% H! x - (mapcar 'add_list '(4 t r0 `0 l0 J+ W* l8 D8 h
- "Horizontal"
1 E) u& D: z& ~! P# }' s - "Vertical"( Z( C% f' \2 ?4 P9 S4 }
- "By Style"
; B( e6 |$ m0 @' o3 L1 S" e+ L - )
0 A$ y4 o% h6 g - )
& C0 N& M+ G# X6 C - (end_list)! t4 o5 X/ u V+ _4 ?7 a7 z
0 C% N+ _% k* j; `- ;; Set initial tile values' Y; q9 t) |! k" a5 ~2 R
- (set_tile_props)
r: z$ n) ^( M/ F - (set_tile_handle)
! l- y& e2 f7 Z7 D! U - (set_tile_pt1 0)
3 [! r# W" C1 w7 E; U& h - (set_tile_style)
4 e2 a+ f* @9 ?/ \) }/ j: i+ o - (setq just-idx (cdr (assoc 71 elist)))+ b: ?& m- W( i8 ?9 B* ?5 Z
- (set_tile "MTextJustify" (itoa (1- just-idx)))# E" R" F' H* g: o$ h
- (setq dir-idx (cdr (assoc 72 elist)))
# G3 H2 Y( v4 F1 K! \! R5 l - (cond7 } x) t5 i: C/ j. @& r. t
- ((= dir-idx 1) (setq dir-idx 0))0 z6 a0 Q9 W" M5 g* j6 F7 o& C
- ((= dir-idx 2) (setq dir-idx 0))3 v. b8 E# G1 ?) M' y1 Y
- ((= dir-idx 3) (setq dir-idx 1))
/ r/ v# [5 h+ R; a; k9 x - ((= dir-idx 4) (setq dir-idx 1))
" S% Q# y" K: w$ o' k - ((= dir-idx 5) (setq dir-idx 2))0 f) x6 l3 P( d& Z( N
- (T (setq dir-idx 0))
# n' ^" l/ F! T& r - )
$ z E3 A2 J4 J8 A7 R; F2 f. [ - (set_tile "MTextDirection" (itoa dir-idx))
. g- ]$ n' Y0 H: o7 I3 G# g - (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))- v0 E& Q: t! D6 l
- (set_tile_hght)( ]5 J+ o3 L1 H+ R$ M6 T
- (set_tile_rot)" B7 J9 p, I1 U# o- v
- , \0 l; }. h9 Z! U3 j
- ;; Set edit box, disable if too long# H0 t. I9 X1 R, o# G
- (setq gc3 (cdr (assoc 3 elist))# X2 f e, d6 H
- text (cdr (assoc 1 elist)))
/ V. L( C& W& m0 M - (if gc3 C* ? |) p* E' E+ S
- (progn ;; Text is over 250 chars, disable edit tile" \+ r% z+ k4 P, G) I
- (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))
8 h2 o/ _' m5 s7 L& } - (mode_tile "t_string" 1)
2 Q/ A) E9 a' t1 w" I7 U - )' S x6 B* ?' S' K+ |* `
- (if (> (strlen text) 80)/ U8 ?7 I8 |8 c3 ]) W
- (progn ;; Still too big- D7 i" v( O" j* j( U
- (set_tile "t_string" (strcat (substr text 1 25) " ..."))
6 e. J3 _' u% w - (mode_tile "t_string" 1)4 F$ N3 R: V" v* o) s
- )
) ~1 E" ^- A' R5 r - (set_tile "t_string" text). J5 ^/ L$ j0 z8 U( {: r
- )
# X4 R, |$ Z( R8 L - )
! }$ H9 Y- M6 Q. q8 J ?! A- r
# ]& r& S1 `# Y3 _- ;; Define action for tiles" K/ K1 I, P) ?8 s) O
- (set_action_tiles)
6 d% N3 e7 C* x - (action_tile "style" "(MText_style $value)")
( _. @( c8 b/ D9 {2 u( n% p( m1 ^ - (action_tile "MTextWidth" "(ver_MtextWidth $value)")
7 i9 D; D" R" C3 X* f. W0 m - (action_tile "MTextEdit" "(done_dialog 4)")+ _9 G' x( _& K* P% ~0 i& e
- (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")# V! }2 @3 v: o. ?0 m
- (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")$ x% O& R6 }$ ?4 @1 C# T
- . @$ \6 R' I% \2 U
- ;; Set initial focus to text edit box.
: C, u' X% D: B3 X - (mode_tile "t_string" 2)6 ~- u. t8 A. F, T
- 7 N% x' y6 ]2 q0 d4 w
- ;; Run the dialog
( l* ^* }! y7 s - (setq dialog-state (start_dialog))
: u: \& M! M, w( f2 t8 x4 | - (cond
% p6 G% h( k& M - ;; Cancelled - restore saved data
9 ]8 S9 A ]6 q* d' F; N - ((= dialog-state 0) (reset))
/ H U( _- m5 ]0 j. F* ]1 D - ;; OK - save new data$ U$ c( d2 ]% j# ~8 S! g$ u+ j5 a1 O
- ((= dialog-state 1) (modify_mtext))( n: A- Z+ n) n% h; g! k
- ;; Pick new insertion point
! g+ t& y. }8 g7 p) l - ((= dialog-state 3)
. n6 V9 r: Q: U" V1 ] - (modify_mtext)$ ~2 X0 Y" ^( V; }0 N; `
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
) i5 p$ s7 K" G% |; V: K+ P% U7 ] _0 T- A - (ver_pt1 0)3 |/ |& [) k$ b- y' J
- (ddmtext)# H( M6 X, t( J
- )
( A( j" v# R; _/ i6 B0 T - ;; Run full editor
" r& G8 D) H- }7 G0 C0 h; R6 i - ((= dialog-state 4)
, s+ H' a2 _8 }) ~! g - (modify_mtext)
. X! t% n9 F1 l$ |' R - (safe_ddedit ename)* [$ Q- I) y+ B9 D% T) Q2 `1 S
- (setq elist (entget ename))
# G0 Z$ c( U; T1 \( p - (ddmtext)& n+ i6 b0 ^ u @' g2 ]0 [) |
- )+ f5 K9 F& f; a. H+ b
- (T nil)1 ?9 D( i% {1 W3 {
- )$ Q" z+ K' I; h
- )8 I# Q7 o( q* G" L3 v* ] K
* X" T) r: w. T! j- ;;
( `. Z3 n' [3 n+ I - ;; Modify VIEWPORT5 l+ U: L/ F5 }& n% O ^
- ;;
$ Q2 d* h; r4 N& [& w
, q" x9 o% Q' E# P# J2 K- (defun ddvport ()
+ Z. e. V( Q( c( A$ _5 e - (if (not (new_dialog "ddvport" dcl_id)) (exit)): a4 Y0 ]0 P( `9 W* f% N
- (set_tile_props)
( n4 d5 m. d5 j, k! B5 ?7 j' c - (set_tile_handle)
6 m$ a1 u! D1 s3 ^; l - (setq vpt (cdr (assoc 10 elist)))! I! @1 s% Y7 n& e+ r3 ~ w, F
- (set_tile "xtext" (rtos (setq x1 (car vpt))))
' K1 W& C5 u& Y, T - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))' Y5 B0 ~7 L9 P/ B* l$ h
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))0 ~. l, H& {$ I
- (setq wid (cdr (assoc 40 elist)))
1 P! {0 ]1 w: Q$ G% l' A( Z$ j - (set_tile "wid" (rtos wid))0 f* [. r, {& z4 r
- (setq hght (cdr (assoc 41 elist)))2 U0 E( q' s, K" Q6 c# a
- (set_tile "hght" (rtos hght))
6 n; ~2 G6 t& t; t. Q) l3 | - (setq vpid (cdr (assoc 69 elist)))
' Y* \5 N3 a4 p2 Z# S L - (set_tile "vpid" (itoa vpid))) G8 O6 S; b' e0 Q; n6 k
- (setq on-off (cdr (assoc 68 elist))). D; A' d0 V- p# S6 _- K( S: B/ I. Z
- (cond9 e! @; S& V1 l" R. c' |$ C: d
- ((= on-off 0) (set_tile "on-off" "OFF"))
# q9 Q5 g5 S! }( m0 `" m( h - ((> on-off 0) (set_tile "on-off" "ON and Active"))9 A/ l- a' `2 A! z0 F0 D
- (T (set_tile "on-off" "ON and Inactive"))
# _' B2 q! g$ @8 e [$ d% Y4 B - )8 B5 U+ s& u0 V, I
/ x0 {% { a; E6 B6 i. n- ;; Define action for tiles
6 p: B R* `6 D5 j - (set_action_tiles)
) i2 B. Q6 Q4 q3 X2 l3 r! d
2 e9 |% U8 X5 Z: o6 T- (setq dialog-state (start_dialog))1 o: q! A' Q' ^# s" f# W
- (if (= dialog-state 0)+ f( K; r$ v# a
- (reset)
8 s% X i6 j1 U0 V# y - )* r$ ]( f, g# v4 C
- (if (= dialog-state 1)
# K! n& O! L# k3 c+ U# t8 y0 C - (progn ?0 I5 R F6 n6 i! [
- (if (= ecolor 0) (setq ecolor "BYBLOCK"))
& P( k! G, r" |5 V5 | - (if (= ecolor 256) (setq ecolor "BYLAYER"))
8 P7 g) `8 n3 g$ Q, E( ^6 x" a - (command "_.chprop" ename ""
6 z- |, l# v6 E* d - "_la" elayer8 W) l4 N9 ^2 G6 q
- "_c" ecolor ""* X# ^4 I/ C0 o$ f0 y) I1 I
- )
/ `+ u; M( Z8 r - ): B/ W* L# y- A" |% e; ?
- )
' R/ @$ r$ L; n8 Y m - )
9 Z* A" G+ O2 C0 F8 ]1 e - ;;
. b& q0 a; g# C6 y0 b - ;; Modify POLYLINE
0 z- Y+ g9 r! e! y' Y3 p - ;;
7 R+ M# j" I' v% I - (defun modify_polyline ()
# f( F9 x0 q* s& d - (modify_properties)
, \& G5 |2 `* z3 w- c - (if (= ltgen "1")+ l% A) ]( E& b8 p/ _
- (if (/= (logand bit70 128) 128). W" B+ w- N" b% U
- (setq bit70 (+ bit70 128))4 H/ j* }5 G3 _" F1 I* y5 r
- )7 ~& M1 P) x# T4 E* G; T! a
- )% z# V9 ?' ^! x) E* [) Q A
- (if (= ltgen "0")
' m! U9 }2 k1 v# d+ V - (if (= (logand bit70 128) 128)! M& N3 n0 y! x; I2 K& V' j
- (setq bit70 (- bit70 128))
9 W6 _! H+ O, w3 \ - )& j' H0 a( i$ m* P- C1 F
- )
# P% l, ~2 n+ |* I! m: V* ? - (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))+ R% c7 k0 c2 s
- (entmod elist)+ S+ [( c, L2 Z0 t1 A$ c! v9 M
- ;; Added to take care of updating Vertex information for color
" s, b4 F# h: k: b - ;; and linetype.; z" `; M* g" C/ ~
- (setq save-ename ename save-elist elist)
1 U9 H& S+ P$ O - (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
. G; {) d* q9 c0 N8 a' } - (progn
' J+ R! n+ s6 f {1 r% Z3 r - (emod ecolor 62)
J$ Z* X$ [8 h# Z9 V% _# u - (emod eltype 6)+ V2 Q& a( y* U3 E6 y" }
- (emod eltscale 48)) O8 \, v, w# q; p; u- G% ^
- (entmod elist)* G( H) p7 y, W
- )' t8 H6 b0 ]- E$ Q! s5 k9 H
- (progn5 x3 X) [+ r+ e' p: J% e$ Y6 g1 y h
- (setq ename (entnext save-ename))
- Z: V6 t4 k: A% h1 i2 ] b4 S* o - (setq elist (entget ename))
. X& p7 b$ X) F4 }4 D - " d& j, l1 u! n5 T8 o0 u3 j8 W
- (while (not (= (cdr (assoc 0 elist)) "SEQEND"))
2 Y; a. S% B( f8 @ - (emod ecolor 62)
: ]! s1 {, K" b [4 ` - (emod eltype 6)8 s3 @. x+ E- {7 J
- (emod eltscale 48)
2 _/ b- b; C6 d. O6 Q8 r D - (entmod elist), y4 B! h/ k$ y" x* I. ]4 J
- (setq ename (entnext ename))0 S: A+ {0 i5 ^5 F. L$ I5 F
- (setq elist (entget ename))8 A& [; H3 d8 N7 v( j
- ), K2 a: b) K2 C6 w+ M4 i& L9 J
- )0 Q) n: F* w8 ?6 ]& C
- )4 Q( m( f$ |/ ]/ d& y8 F# y$ y
- ;; Update the SEQEND
. U2 [ K1 [3 w: b& W& k - (if (= (cdr (assoc 0 elist)) "SEQEND")
* E/ i' J/ \/ ]) n0 N - (progn& r- _8 P2 c% X. \
- (emod ecolor 62)
' l! I( g; x& E% i( ~3 B - (emod eltype 6)
. r: _0 }( f- o/ B0 h; w - (emod eltscale 48)
) B0 h+ b/ k3 w2 c5 p# b - (entmod elist). i9 t6 s B5 u6 C
- )
$ s* a, @* f. x, _ - )
( C4 K8 q1 C- p/ ~) B; q9 E1 n - ;; Go back to header.
- R3 l2 |; w$ i& V3 v$ I - (setq ename save-ename elist save-elist)
6 t1 H; \6 s" F6 ]6 [" E# L# x - 1 `/ W' z6 M% B7 ^. E
- (entupd ename)" ^+ `, E b1 ^* i
- )
2 N/ `5 m# {9 G
$ h7 P3 M+ M$ o6 U3 ^" N$ J% ]" V- ;; Increment vertex. Set tile values to next vertex. S% y, G+ ]* u5 N$ _9 u' M7 w0 F3 s
- ;;
. |! S1 d5 D& d% K$ G3 Q - (defun next_vertex ()
9 |6 U2 C4 X( `; k* r- s: `" @3 u - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
3 A' k, }, u/ [ - (progn
% a5 y9 ? `" O: W; U S6 p9 ~ - ;; If the counter reaches the number of vertices,1 k. O H( y. z) f: c. d' E
- ;; roll it over to zero again." ^/ M+ {8 E7 i2 o0 l. ?* N* P) ?
- (if (= ctr (cdr (assoc 90 vlist)))+ C& |7 ]) c! U, d2 `( n
- (setq ctr 0)( J! K; {8 v' Q( k; A
- )7 O6 N6 p0 H* m% T
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))* }8 k9 i' D: U) M3 K7 i
- (set_tile_vpt pointype)
" r; [: v9 I# I - )
* k, ]3 w/ a* A' ^, w1 k4 i% J - (progn
4 u1 }( a' T6 G% R& s - (setq vname (entnext vname))
" V1 ]2 D {, o/ f! q U - (setq vlist (entget vname))! x! j! e# x$ B: f- z6 A* V
- (if (= (cdr (assoc 0 vlist)) "VERTEX")( K7 e* a9 e4 s
- (progn
8 Q2 x0 |, y$ r2 ?/ q- y& B; |9 ^2 t - (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))+ n4 ~: I# u! J* J& Z
- (set_tile_vpt pointype)9 }* X' D, Q' K% ^5 `: O2 {
- )
- i1 I! G( w# h" m5 P0 D - (progn* c" r6 @9 J4 J0 n! ^& w
- (setq vname (entnext ename))
/ n( l- r0 D5 {. I B9 s+ R) } - (setq vlist (entget vname))- \& p$ ?6 l, ~- \/ `+ W4 w
- (set_tile_vpt pointype)9 ]1 l& M K+ Y, v0 p1 Y0 s
- (set_tile "ctr" (itoa (setq ctr 1)))
& a7 W& R z+ r* f! y& ^ - )8 T, M, t/ a- p) y0 V/ l
- )
$ s' J( B3 ?2 j! ]1 D: i- q - )
5 N: ~6 S7 O+ u9 I& P; L# [ - )
7 B7 Q: E5 m4 Y; G; X, T - )+ m% s6 e) J% p' T* r( ^; G
7 {! B7 Q6 z T/ `; a2 U) G- (defun ddpline (/ oldecho); J8 S6 h6 g/ u- d7 N) ]0 G
- (if (not (new_dialog "ddpline" dcl_id)) (exit))
+ o0 y4 L+ ^! B. A - (set_tile_props)* J. ]- Y8 x: J4 Q+ k- P( ^0 h
- (set_tile_handle)
5 P" y9 p+ Y; i! {( f3 A - (setq bit70 (cdr (assoc 70 elist)))
: H& q' Y- e- J; V& r. ]& B Y - (setq bit75 (cdr (assoc 75 elist)))" x+ v$ c% [5 A" Y
- (cond% @8 C! ~# F7 e& l4 a4 f( R
- ((= (logand bit70 8) 8) ; 3DPOLY
u! U* c0 Y6 Q- p - (set_tile "ptype" (setq pltype "3D polyline"))
( ^3 y! I9 n3 G! M8 o1 g - (setq pointype 0) ; WCS or ECS point values
4 ` U7 {# a7 ]: m- I+ f' k1 Y - (mode_tile "fit" 1)
: U) b* G) M5 y0 y, {0 x) C - (mode_tile "mesh" 1)
?; B$ U- e& O$ k: y - (mode_tile "bezier" 1)
- ~/ D4 r( X. g i0 B - (mode_tile "ltgen" 1)0 j7 x$ k' y8 H) w& w
- (set_tile "none" "1")
( b& K. T9 L* [, F" w. ~. l) Q) ]( Q - (set_tile_closed)
4 J _6 w$ r9 V$ P - (set_tile_fitsmooth)8 i/ J# C& C' | h6 J6 Z" C# S
- )4 Z2 C4 `4 |+ p' y
- ((= (logand bit70 16) 16) ; 3DMESH
0 ]' J0 X! P1 P$ s - (set_tile "ptype" (setq pltype "3D mesh"))
, o% {6 g6 T3 I5 j - (setq pointype 0)
# B% Q- g% ]- K3 C - (mode_tile "pline" 1)- `" G9 C3 z4 Q6 Q$ P
- (mode_tile "fit" 1)! O4 }; `* F* J" T% f1 t/ D% i+ r; z1 r
- (mode_tile "ltgen" 1)( f; s$ H: {1 g; H2 t6 K: B
- (setq m (1- (cdr (assoc 71 elist))))/ @+ j2 i- N9 S! j7 s
- (setq n (1-(cdr (assoc 72 elist))))
" R+ i4 q1 q9 ~6 B% B - (setq u (1- (cdr (assoc 73 elist))))
7 w/ U$ R0 C9 c: N$ R6 S) u' h) _ - (if (< u 0) (setq u 0))/ t2 a) R& j5 d6 k5 L- V
- (setq v (1- (cdr (assoc 74 elist))))$ @, X9 J+ Z& j3 \
- (if (< v 0) (setq v 0))& x0 w: T4 W( u& h: L a
- (set_tile "m" (itoa m))
) R9 w" @1 B" Z/ K1 m# i/ _ - (set_tile "n" (itoa n))
- a- q0 v) S( w% H M6 r; ^ - (set_tile "u" (itoa u))) C: ^2 B Z4 X$ @ S- M
- (set_tile "v" (itoa v))
/ ^, q) H% d, F4 Y& K' b - (set_tile_closed)
S3 v- c( Y+ ~! ~: ~* k0 P* h% } - (set_tile_fitsmooth)
\+ ]/ Q" j9 D9 ~. s, p" r - ), a) z- d# P; a( f* `! `9 k
- ((= (logand bit70 64) 64) ; POLYFACE MESH! P y& t! N; K. d( \8 Q1 x
- (set_tile "ptype" (setq pltype "Polyface mesh"))
7 V4 a% r( _0 _! J0 } - (setq pointype 0)0 U" _7 X$ [& E4 A4 Y0 q. P
- (mode_tile "f-s" 1)6 z: i* H' d" x: i. S$ I
- (mode_tile "mesh" 1)
1 H6 e3 R% ~# r$ I& U - (mode_tile "pline" 1)
/ b+ q% k; D) O; I) z# u - )) ?7 P) B/ q2 p3 N$ w
- (T ; 2D POLYLINE
# O4 F4 f- T2 E# n0 E& I - (set_tile "ptype" (setq pltype "2D polyline"))
6 i$ s! C: m! ]8 @/ p1 s" |! w - (setq pointype 1)
' R5 {7 |; ]) _; f9 \+ I/ ?/ K - (mode_tile "bezier" 1)5 C T- m3 q# |5 x- p* \: K. s7 ?
- (mode_tile "mesh" 1)' {) r) m9 [# h9 V) Q
- (if (= (logand bit70 128) 128)
' x, X7 E7 E3 ~& o+ C; O( I - (set_tile "ltgen" (setq ltgen "1")), ?8 `: p- ?4 C1 `# n
- )
) j: D$ X, e4 {3 G' G: q% }! J( s9 Z - (set_tile_closed) m3 h( `) @' l9 M
- (set_tile_fitsmooth)+ q+ m7 w, L. ^
- )$ D8 Q# f; n2 ?1 t* J" B( K
- ); d9 L* l* v) s- U
- / P/ }- c( ~0 n2 k. V0 e8 q
- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
; {" X) i" @1 E- x' u - (progn
$ X6 ?( u; h% D& T7 D - (if (not next) (setq vname ename))4 r# V& l4 y: b
- (setq next T)
: q, e6 A3 ~" }% o, W) E - (set_tile "ctr" (itoa (setq ctr 1)))% v% }2 `+ e+ \ D: r
- (setq vlist (entget ename))
( f8 P$ [+ L5 D - )+ ~3 V- J1 u7 \# M
- (progn9 v8 \4 n% m6 J
- (if (not next) (setq vname (entnext ename)))' k J) q- ?2 J
- (setq next T)
# X" D$ B E4 d3 e& i0 c - (set_tile "ctr" (itoa (setq ctr 1))) V: B, K, A6 X( Q, q
- (setq vlist (entget vname))" [" C5 q! }5 a4 ]% ?3 f
- )7 F( ~5 D3 u* ~7 j
- )' j+ ~) J9 n% K: J7 Q+ L; k
- (set_tile_vpt pointype)( T+ b' X6 V3 R; _ q, T
- ;; Define action for tiles
) G% E# P$ B( {% i# F7 D1 c$ q - (set_action_tiles)
( K C% o9 c! ]: i8 P, H, ~ - (setq dialog-state (start_dialog))3 i% j& q9 S* q A) C' \3 T$ X# }
- ) `$ e8 @2 c. p
- (if (= dialog-state 0)5 Q" s p( t7 h
- (reset)! u( J: o5 t! u: {/ J) }8 y
- ) d w3 s# v# E% [7 I i
- (if (= dialog-state 1)) N* q" J- |; A- q+ U' q. V/ d
- (progn1 [# D W/ M* i8 @4 M
- (modify_polyline)
/ T& f5 @ C6 I' Z. s - (if (or (= pltype "2D polyline")' s* r# N; ^2 }% P) K) K
- (= pltype "3D polyline")0 h( a' E5 ]9 @( C
- )
: F, L7 r# i9 ^% r! {) { - (progn
7 s, ]; y/ N" [ - (command "_.pedit" ename)
6 Y6 q2 V% _6 g/ S1 r# z4 f! \ - (if (= spltype 0) (command "_d"))
% c- @- Z. Z4 R - (if (= spltype 1) (command "_f"))' d! R. \( O8 q8 h: U
- (if (or (= spltype 5)0 F. x! W: e, z
- (= spltype 6)3 K3 m7 Y! W3 `8 y( X3 `2 A
- )
" U9 X- r; t( S4 R, ? - (progn7 V6 j: T% N6 G, z3 ?# k# P
- (setvar "splinetype" spltype)
8 b% _9 b4 f. u: N/ w9 m - (command "_s")
6 n1 }: M( M' l* x( B8 a - )
6 x" d/ A! m" G' C! M - ), p. [8 x% h0 R" y; O. ~
- (if (= closed "0")! r' j" K2 Z9 l+ q L
- (command "_o")
" m) \& l# x! t/ F0 p4 R; F - (command "_c")* L) @7 K( v( J% q) O \
- )6 c) c% g) `% ~2 J! P4 `
- (command "")0 y+ ]. a/ p" H6 L" r5 X; p: g
- + v8 r1 n/ C! y
- (if (= spltype 0)
, b2 M! O4 F; G; ]. V. a% k0 X$ T( f - (progn( m9 c. C+ J5 v0 M( d: i1 F
- (setq oldecho (getvar "cmdecho"))
* V U2 O+ h- G/ Z - (command "_cmdecho" 0)
/ Z, Q4 _ V5 D - (command "_convertpoly" "_light" ename "")
8 _0 H! ]. g1 Q9 r- c! W - (command "_cmdecho" oldecho)' U1 D/ y3 A2 \5 J* C
- )8 Y) `* H4 ?6 J+ Y) y( ^
- )! G7 E q! ^3 C, V: l
- )+ V2 r/ }( q( l! L+ v
- )1 {8 N; b! @3 ^
- (if (= pltype "3D mesh")
+ e8 J9 V3 U2 W% d. ?5 E - (progn8 T' U# n3 ]* k% D; U
- (command "_.pedit" ename)
2 q' o/ ^" [4 g3 t) H - (if (= spltype 0) (command "_d"))1 L2 x0 i, H/ k6 ?. S( I! |
- (if (or (= spltype 5)3 u5 x& O3 x' q; T
- (= spltype 6)
; U+ R1 n7 M4 ?7 } - (= spltype 8): a/ k/ n' Z% B. ^/ v5 y+ m
- )% G$ j0 ]0 v+ L) A; p* ^( h, @
- (progn
) { T* U( J5 ? X# j. x4 y5 I - (setvar "surftype" spltype), F6 T2 {' m' A2 P( U' T6 L! j
- (setvar "surfu" u)
# p) I9 O! N2 O6 Y5 D - (setvar "surfv" v)
. U+ x+ v9 ^+ D - (command "_s")
" H5 H. @- Z1 m0 h/ v+ y8 N/ Z: e - )
" _/ [: v9 U j - )" }4 Z9 J$ V# O& z! D. @
- (if (/= closedm old-closedm)7 ]) a4 q$ T ~
- (command "_m")3 D6 q: p" i) N2 p2 X z& g! v* j
- )0 g. Z( h5 i* O7 x2 u( ~1 \
- (if (/= closedn old-closedn); d/ H8 q$ U- `
- (command "_n")
4 y3 p$ ?3 ], e- k) [7 b/ t - )
2 r3 [2 h8 x3 h6 ?" }; u q/ ~3 h - (command "")3 s# A- y0 {0 R! N
- )2 Y. l3 h- W( `0 p: m# d
- )/ D( D+ b! ~1 \; w5 ~
- )
1 Y5 f. q6 `6 F' c - )
) Q9 v" F% C" d& m/ m - )
3 T7 `- f& [* P" J2 _ - ;;
- _8 K4 \9 W: A& R4 R ] - ;; All the spline data is contained in a single elist. We must do some
, N9 J/ e$ D) K) ~ - ;; tricky list processing to loop through the elist in order to display+ _. [, {& ?7 u9 V
- ;; all of the control points.
7 G5 w1 v3 \2 d8 u+ j% M" |2 P - ;;& }8 E- P" ?; s( I5 W
- ;; The structure of the elist is different for rational and non-rational1 S2 y: S' l6 P1 b6 J6 L. Y0 f2 z
- ;; splines. Therefore, we check the rational spline flag.
. [! ?% `, @. _+ O8 M - ;;
9 M; X0 ^0 T3 O( C$ j2 C/ Q# ^ - (defun next_cntl_pt ()% L& r+ n: [4 k6 T6 J" Q& C, @
- (setq elem-no 0) ;; elem-no = element counter: O- D% B1 `( I9 T5 P
- (if (= first-10-time 1) ;; If first time, find location of first
: a# C- y/ ]- x - (foreach list_item elist ;; cntl point element in elist9 _1 {, ^) i0 R4 H" H. R' P
- (progn# z; Z2 Z4 a2 D; j' Z/ A
- (setq elem-no (+ 1 elem-no))4 r- r; V- ]1 x* H P0 Z
- (if (= (car list_item) 10)5 ]' _6 [9 e" ^
- (progn# X# v# o Z B8 `, Z, M" J
- (if (= first-10-time 1)
1 x' T, Y! n4 z) E0 E! j" n: e - (progn
. B7 K- d6 I# N9 O% ?# ^# t( q" | - (setq first-10-rec (- elem-no 1))
; p$ |0 q; o4 o$ g2 z - (setq first-10-time 0)- b j' a$ V' k7 N& o& d3 _0 V1 n% m- _
- (if (= rational_spl_flag 1) ;; if rational7 e* ]7 L: ]: U6 }
- (setq cur-10-rec (+ elem-no 1))
4 A9 j" t1 \" k6 R' O/ g: t. J9 | - (setq cur-10-rec elem-no)
8 I6 v4 V2 p+ d( g! k0 o - )7 K8 R2 u) x9 u; w6 A0 c! g% T
- )
% ~* a7 m/ {/ I& r* a1 s: k* Q% B3 d- Y4 R - )$ @) G, D% w) S2 L$ d! Q) Y, {
- )5 g3 g: v( A5 F" N+ I
- )1 ~3 O0 R E! ^$ b" @ @ P, S
- )
9 }) B$ B( y- c F% x) A. c - )) P+ D% V0 a& s8 a& v
- )5 [7 Q* O2 _: s7 k6 R; y8 M
- ;; Now we know the location of the first "10" record; it's stored! |- h6 z* _! _- S$ w; A
- ;; in first-10-rec. The first 10 record was already displayed when
; P0 l8 m! T n" h$ q - ;; the dialog first came up so let's display the second one when
% K) l* C# F8 @: k5 u: V+ G! ~% O - ;; the user presses the "next" button (the first time through).
/ {/ U5 d$ O; g4 n - ;;
" ]' ~0 {, ^1 e( V1 x - (setq temprec (nth cur-10-rec elist))! p. u) Q- g; Z. t( m
- ;;
% P" x# Y. w; v1 s+ x0 i - (if (= (car temprec) 10) ;; if 10 record
3 K% B. Q# E3 y$ }$ \% H# o" E1 f - (progn) M/ m5 x! K) t9 H2 @$ O5 D4 H$ @
- (if (= rational_spl_flag 1) ;; if rational spline
& }8 V8 b' h" @ - (progn
2 p6 H9 k2 C1 I* a- Q& b$ c - (setq tempweight (nth (+ cur-10-rec 1) elist))
& ^& B7 s+ y, B$ _9 \" t6 e8 A) ?3 L - (setq cur-10-rec (+ 2 cur-10-rec))0 s- P+ V) o4 n3 y1 s" W* U
- )
6 W" Z- F) v# k - (progn ;; else
$ z2 L( y j8 O2 j$ L2 T3 N. Y - (setq cur-10-rec (+ 1 cur-10-rec))
6 S0 s# Z/ G2 |$ Q2 { { - )9 i" x& Y! }+ _- z
- )
' C. N+ D2 S5 V4 z3 b1 h; w, n3 c - ) ;; end if rational spline
3 Z: d% J6 g# J3 ]. L - (progn ;; else reset counters6 L# U: N, g* w g+ j; C2 k
- (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec
. { u9 q1 i- ?* ^9 c - (setq tempweight (nth (+ first-10-rec 1) elist))9 }" t. R# _$ J
- (setq cntl-pt-indicator 0)9 G& P! x" v4 b: V2 O) G
- (if (= rational_spl_flag 1) ;; if rational
/ i& n7 e3 G- ^' }! E8 h9 ` - (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec
' a P2 C1 ~: F0 T - (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec
: f* Y3 q) E7 k0 L; i6 x - )4 o: J ?/ B7 a
- )
1 n8 D/ N+ h$ Q! ~ - ) ;; end if 10 record
1 @$ G: W: f8 K& { - ( U' C7 J& O9 U, n1 k1 M, C
- ;; Display cntl point, weight and ctr. Increment ctr.
# R2 H) g+ Y' |2 M3 ]9 A - (setq cntl-pt (cdr temprec))0 Z) X, x# u% H# E
- (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))- w3 M) i' \* E7 L4 v
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
7 f9 r: q8 C, X3 T( R7 q - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))* |4 T+ j( C+ [* g2 [
- (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))6 U9 T1 T' q7 U: h5 g( F& v: D
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))% F' X) ^3 ^$ Z# h+ f6 l$ i
- (if (= rational_spl_flag 1) ;; if rational; ^% [( T8 `. T! h7 v
- (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght0 d+ G. O# U# t* {/ S2 L! P$ x I$ K
- (mode_tile "weight_text" 1) ;; disable wght: ~+ a5 N. M( ~* [
- )
/ w: q8 R3 \4 y) }$ C - )- Y* {3 P1 m$ f, S) u
- ;;& |8 ]+ j9 {* T
- ;; All the spline info is contained in a single elist. We must do some: E Y9 ]$ Z: G' ~( y" H$ j
- ;; tricky list processing to loop through the elist in order to display4 c3 S2 ?0 g; g
- ;; all of the user data points.
% K5 R+ ~% e( B J% g" w3 o - ;;6 y3 _# I' L- p2 {2 v5 ^4 L
- (defun next_data_pt ()
0 Q* b# n, M1 l0 `8 x5 e - (setq elem-no 0) ;; elem-no = element counter
% i1 D" x5 z( n+ Q; Z - (if (= first-11-time 1) ;; If first time, find location of first: m' f% B# U6 O3 _
- (foreach list_item elist ;; data point element in elist
8 M+ L4 l7 W9 Y; |8 A1 S - (progn
/ N# ^3 w& I( K. ] - (setq elem-no (+ 1 elem-no))
% I/ W8 l: u. D& q. l - (if (= (car list_item) 11)- {* I8 ?: | a4 ]5 g* X6 N
- (progn: g0 O" X' j' d* x% X) W
- (if (= first-11-time 1)
1 m& O# Y/ m4 ? - (progn
8 U3 h! A+ q) ?; M, D* Y9 s4 t - (setq first-11-rec (- elem-no 1))
: U9 a) A% G0 m0 B - (setq cur-11-rec elem-no)8 X* a' a) Q9 Z
- (setq first-11-time 0)
2 Q( y4 S* O) w! V* Y. m% ^ - )
9 ]- i6 t! \2 K7 ?1 y. ~ - )
/ W& `8 X% ^5 J: l3 X* `5 l* n8 J - )- H3 w( j: x2 s: Z' H/ s8 p
- )
6 u7 m& d6 \/ D% R. g - )" K/ N0 G* t p e$ f A
- )* r& y% ^ X+ ~) [/ q1 R0 k. g3 b3 i/ R
- )
' @4 z8 w; n; ~; S0 h7 X - (setq temprec (nth cur-11-rec elist))
. k! V6 R$ s: Q, p! K& e- k0 j - ;; If it's not a DXF "11" element then we've gone past the last ~9 X- K; s* v4 ~% i0 ~
- ;; "11" element. Go back to first "11" element. Reset counters.# g8 }! ]$ D2 y
- (if (= (car temprec) 11)
! o" I, }% T- K- W9 G. l - (setq data-pt (cdr temprec))
^& i' `* \; Y l# n4 i4 y - (progn ;; else
" g! p' L( u8 [& M3 `( D - (setq data-pt (cdr (nth first-11-rec elist)))
4 g2 l. w+ l! V( c$ V; Q' X - (setq cur-11-rec first-11-rec)
* Y4 Y. j1 H1 O6 p' _ F - (setq data-pt-indicator 0)
8 Y2 j I7 E$ i$ @9 Z - ), N+ u5 |/ y: D q O& A
- )0 \+ _& l) e) p3 R% @
- ;; Display data point and ctr. Increment counters.
1 O- \1 \9 t2 Q; { h: f - (set_tile "dxtext" (rtos (setq x1 (car data-pt))))
% a) W8 o! U4 s7 h- u) s - (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))* c) i) t+ _ H: n
- (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
5 H6 O0 R8 ^# {7 X6 E* |- v - (setq data-pt-indicator (+ 1 data-pt-indicator))
5 M( p$ N+ Q3 |# Y | - (set_tile "data_ctr" (itoa data-pt-indicator))
5 V2 ]6 ?. q9 n: U - (setq cur-11-rec (+ 1 cur-11-rec))
+ N- |5 U3 S' Q z - )
: r9 _# m/ Q# L. ?4 f+ z6 a, _ - ;;
+ g" \# l, `6 Q# q, ~, S7 Q - ;; Modify SPLINE5 k- P6 ^, V E+ F) ?9 r
- ;;
2 N. I5 A: e! A8 u$ `( } - (defun modify_spline ()# W' G" K& H- D5 }1 d& A& W
- (modify_prop_geom)8 v @! K/ {) B& ~5 e6 x% o3 M
- (entmod elist)8 b: v! {7 R, X q! L; a7 P( p G
- )
( y- `) s/ ]- U1 Y' r3 I, ~
. C! B; n" W! r- (defun ddspline ()
$ w8 d5 v! M- A" \& Z5 c: c$ M - (if (not (new_dialog "ddspline" dcl_id)) (exit))
) X! n: b7 ?( i0 f H - (set_tile_props). U/ u: U( h7 i2 @
- (set_tile_handle); r# c, n& O& Q7 T
- (set_tile_spline_props)
0 W% }3 E6 ^& d' X! m8 c - ;; Display first control point
7 W" R" ~& F0 ?+ E - (set_tile_cntl_pt)
" q" z( i4 f6 W. ]8 r. H$ D - ;; Display first data point) j( ~3 L' i# r: c
- (set_tile_data_pt)
7 L: D6 j6 i1 l* G0 w8 X6 T - 7 s5 F$ Z! N4 M, I* ^
- ;; Initialize flags to indicate first time through the dialog.4 d, j) B" e+ k( Y) b* g( c
- ;; For control points and user data points the "next" buttons: d: u2 a. M9 T Z2 X
- ;; in the dialog call the appropriate functions.) i: }4 Y- M+ p! n4 W7 |
- (setq first-10-time 1)
' Q4 T! \ k0 U( Y0 z. ] - (setq first-11-time 1)% _6 K8 j7 J. y
- ;; initialize control point number counter
# j/ T {; V9 |& d) g! ^& l - (setq cntl-pt-indicator 1)
! V6 T r) Q: r1 P1 d% e& g; P2 i- D - (setq data-pt-indicator 1)
0 i8 y; e- ~" z, y( I$ N/ W8 Z - (set_tile "cntl_ctr" (itoa cntl-pt-indicator))3 Y- X, w7 v' Y1 M- M( u' B- U
- (set_tile "data_ctr" (itoa data-pt-indicator))
' ~* I3 m. X3 J( o, [) l4 E" X' K - (set_action_tiles); \7 L$ `, U" ^
- (setq dialog-state (start_dialog))
5 X( M3 [9 R6 }* w) Z, x. K/ d% N - 7 o' y6 l5 N( `' b3 n
- (if (= dialog-state 0)) T8 H, a' A1 f+ W1 A
- (reset)
' Q3 g6 A3 T( X7 O: X6 G - )1 r2 B& j' F% o$ E/ ]( N
- (if (= dialog-state 1), ], U. M# |0 ~8 C
- (modify_spline)
9 H0 t0 H+ v: }7 x - )( L7 a0 t. T2 M& p
- )9 q) O4 i7 Q1 n3 R3 I4 i. h
- / L; R* N2 p* O: v8 t3 B
- ;;6 U2 ~0 ]4 q! T; p
- ;; Modify DIMENSION0 f% D- m8 y/ @ V
- ;;* f' x7 g- u& p, w) A! @; Z
- (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl/ U/ n7 M; J' ?8 y3 d9 [
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
8 W( m0 b, S; l) q) g0 @$ a - dimtype dimsvcurset): g! ]: ?3 p/ |
- (setq dimtype "DDIMEN"
% E$ j* d% }: ?3 Q - dimsvcurset (ddimen_dimsty_restore)8 w+ c/ Y' B5 G+ d7 m
- )0 T0 A1 t" ^2 X0 X) \+ ^7 w8 {
- (if (not (new_dialog "ddimen" dcl_id)) (exit))# F9 o- @ @$ W7 _$ H1 T0 R
- (set_tile_props) r5 s- n% b- E- J& R ^9 C
- (set_dimen_props)6 m N$ l* q, R6 @+ n; i
- (setq dimtext (cdr (assoc 1 elist)))
3 Q- s. F8 k% m' _% f) M( f - (set_tile "t_string" (if (= "" dimtext) "<>" dimtext))! @7 Q/ b4 S& O' M
- (set_tile_handle)
$ a( T. @3 y2 O! Q3 ^+ J+ k, s% H- c! t' d - ;; Define action for tiles1 C! \ @$ E( y" ~
- (set_action_tiles)4 R7 y. l# a9 }" o3 s
3 p4 c* P6 S! [# \9 h- ;; Set initial focus to text edit box.
' I0 {/ r& q4 H' A9 O- i z - (mode_tile "t_string" 2)
( n+ k: e, `( }5 P; ` - 1 w% T% r& p: R- ^
- (setq dialog-state (start_dialog))
( H+ {# E; b, p) R - (if (= dialog-state 0)( H0 m8 X7 R8 r" _; m# B. Y
- (if (= ddimmt 1)
x4 f2 y; r% g0 \2 Q2 s7 \ - (reset)1 s$ ^4 s; Z2 A, Z- x
- ), e, k! G. Y6 N9 C/ m4 I
- )( R* t- y( ]2 M/ _/ y% `$ g1 R& V
- (if (= dialog-state 1)
6 o$ c- F, Q% d6 e, X4 x - (progn$ K: `) H' u! V/ F/ K0 d% Z1 h
- (if (/= dimsty stname)
4 Z3 a6 ^- x# x, K' l - (progn
: Z" Y( o2 f# z1 K( l2 a - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
6 x( q$ R1 _6 i/ H* e0 h6 q6 ? - ; doesn't have it.
) G) D1 }: L. n7 e+ \* ~. v - (if (null (assoc 3 elist))3 a* O0 j& g1 g0 v+ a! _; u% [
- (setq elist (append elist (list (cons 3 dimsty))))
( N, O) o$ Y9 H - ; else just replace it.; y) s6 Q( n |6 c& X3 H
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
9 Y" v5 r" u$ k T* `2 r) P8 N - )0 I( `: v7 G/ w# Y, C* x, k
- ; refresh sv_dvlist with new dimstyle.
0 X$ A0 k* [9 A; F8 x1 ] - (setq sv_dvlist (tblsearch "dimstyle" dimsty))0 g5 r6 d8 o% m3 C y: W
- )9 l& P. {; ?+ \5 b: w
- )0 m$ [( v8 p' N+ l9 L3 O6 O
- (if (not (null dimlist)) ; attempted to change dimvars
. Z9 y, q1 t& D" d) c: l h - (ddimen_complist sv_dvlist dimlist dimtbl)
( p2 l, B9 I+ q0 ^- @ - )
" D5 E2 E! K& x4 F4 h- w) k - ; Modify dimension text; ^' f+ ]. Y6 K; ~$ @$ o% r1 c
- (if (/= dimtext text)
! e$ V1 A. v# {$ X4 N' e c - (progn
% W! N2 M& e5 y - (setq dimtext (if (= text "<>") "" text)). L3 c- R- p1 y9 U! g
- (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
# T% J- I! Q8 e2 [0 \, u! W - )4 ~) m: a8 c/ o: P( f1 \* D
- )2 q6 A1 D; K) w% I6 g4 U4 p
- (modify_properties)* Z3 ]* l* x6 _) I
- (entmod elist)
+ u# X1 Y! W! z9 a7 a# | - )' G( i* n8 r0 v/ f' {
- )
V# r$ M9 L5 ~4 M* {0 i9 g - (if (= dialog-state 4)! Y8 i8 x: E: ^) h# r9 [/ N6 j2 W
- (progn1 j: q3 K B* T& @8 ~9 {& R. X6 f
- (setq ddimmt 1)& s, m. [/ ^% u0 g: ] m4 K5 q' p
- (if (/= dimsty stname)
$ F5 E A: O9 X5 r8 m - (progn
4 M* ]2 ?# h M1 Z* L/ s7 m - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
4 `' F7 [0 W& L - ; doesn't have it.6 x' \! \, |1 g8 ]8 E) k2 }; L, I
- (if (null (assoc 3 elist))
; D- C' ^8 [0 v% [ - (setq elist (append elist (list (cons 3 dimsty))))
; ~, {) A ~! ~* N& x5 g- L4 A/ G - ; else just replace it.
6 g b4 a; d8 c7 | - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
* m% x( d8 Z5 j2 l8 _8 R& `& Z - ), _& H V; E( S4 G0 j
- ; refresh sv_dvlist with new dimstyle.
5 S. g5 m6 y: G8 e4 ?/ i - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
$ N3 d9 |2 z: Q. h/ F - )
4 p" B$ T- \+ C2 [& E - )7 B* w. F+ p8 ]5 j3 N" t8 P' O
- (if (not (null dimlist)) ; attempted to change dimvars
7 Q! ^: m3 d( ^( H% i5 s2 } - (ddimen_complist sv_dvlist dimlist dimtbl)& J+ G; R- E1 A( c5 a
- )3 ]& o; o. h9 l2 T _1 n6 q
- ; Modify dimension text7 m: I! G0 M' o9 e: z* ~
- (if (/= dimtext text)
1 l) a0 X) F7 p1 _ - (progn/ Y8 {. j$ ~1 I6 I4 H2 g, \+ d
- (setq dimtext (if (= text "<>") "" text))
3 H( Z, }; N: H& P- ?4 L - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
1 u2 j$ w/ @( N2 d! _ - )
8 T+ U* N8 H9 k# Z% T" { - )
~ K& D' ~% X. b - (modify_properties)
3 d/ l) y% [5 j/ H% U - (entmod elist)3 c3 m- A* i+ M/ T& P6 L
- (safe_ddedit ename)' f# G3 g4 [# N* s6 v# l' N
- (setq elist (entget ename)). E4 U+ S7 g8 W5 G' c3 N& [
- (ddimen)6 z3 w7 O# h+ U1 I g
- )5 n- \, b% \% [2 T) m: u
- )8 w9 g$ J" ]" a+ g
- (ddimen_setvars dimsvcurset) ; Prepare to exit
2 T7 y- D/ a/ e3 I) t8 |+ V - ), @0 w2 ]/ [& `; t* P4 b
4 B7 y9 ^! }3 W( B- ;;* D. t | I* D N
- ;; Modify TOLERANCE# t9 s T. Q" c' J3 P4 V
- ;;
' l% k3 m) d$ W' H, u+ z% t - (defun ddtolerance (/ a stname n dimtbl
- O4 C, `& ^# O7 z: {) R - dimsty dimlist dimovr sv_dvlist stlist dimtype5 K. ]8 k a F% {* i+ X
- dimsvcurset)) u# C& M8 C3 i$ M+ f' n( x- A5 d; g
- (setq dimtype "DDTOLERANCE"
9 L: _' _0 B6 C% G1 n, W. U4 j5 s - dimsvcurset (ddimen_dimsty_restore)6 l' H$ {0 e% I: _
- )( h8 Q' [& |* `# Q1 r' |
- (if (not (new_dialog "ddtolerance" dcl_id)) (exit))
! z* k1 W6 v* ^: Q0 J% p7 \( u - (set_tile_props)
- a. i& [; I5 y - (set_dimen_props)+ v- t4 O' t p. k4 ~1 ~: p3 p7 G
- (set_tile_handle)
# z8 \4 [. }' v - (set_action_tiles); z7 z9 k |- b8 ?; ]3 B! b( S
- (setq dialog-state (start_dialog))
, s* h5 y. x. A; { - (if (= dialog-state 0)0 F1 ^0 N. G3 x8 I5 k; ~0 f
- (if (= ddimmt 1)
' V+ s2 R9 Q2 f - (reset)9 _; ?) q0 l, p; X
- )
/ p$ l& T+ |! H' x5 W( C - )! ~6 `( n: V3 V9 T+ D! {
- (if (= dialog-state 1)5 c! l6 H1 Z2 S
- (progn
+ O% c, k+ z0 I - (if (/= dimsty stname)
# b8 j4 m& l7 B! R, _. y+ L - (progn
% L E5 i; H+ K" m) }' P7 [ - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
* D. x1 Q. @: k" H6 K - ; doesn't have it.' y1 x+ s3 Q$ I3 o) i5 E$ ~
- (if (null (assoc 3 elist))
7 A2 C7 i' p1 C - (setq elist (append elist (list (cons 3 dimsty))))
" w- f" [9 w% n& Q# s - ; else just replace it.
; V/ r# X7 w( u+ D9 ? - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
1 C4 c) F! p3 c% v& j - )) W( h# {: p. T! t3 t. I& \& z
- ; refresh sv_dvlist with new dimstyle.
7 T) O& s* R( O4 ]2 Q - (setq sv_dvlist (tblsearch "dimstyle" dimsty))9 E! X0 n4 c" D! [; d; B
- )
1 _. ^$ u& W K2 U8 W* S* g0 S; d% S - )
& M" D% G% x& ~" \& M" u& u+ N - (if (not (null dimlist)) ; attempted to change dimvars
6 r5 U7 ^3 p G7 `" P+ x6 _ - (ddimen_complist sv_dvlist dimlist dimtbl)( k- V# H; B8 z, j0 D- N
- )3 w/ S* x) M4 c6 F
- (modify_prop_geom)
1 H; f& p: k& d2 j! y# p - (entmod elist)
3 {( I. [! M. q. N, ~3 l. @, \; S* d - )
- `& _: B) `$ X9 w. J - )
% @2 D; Q- f9 t O$ F v! M - (if (= dialog-state 4)
% t) G: ^( \8 D5 L3 \: ? - (progn
2 z+ b- @. N4 D1 ~4 ^$ C$ ]. o - (setq ddimmt 1)8 {( C1 Y& l3 X% C
- (if (/= dimsty stname)
, M9 q4 J$ U' j2 N - (progn' o- f b7 c: r5 u
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case: |9 ~+ m9 k" L3 ]
- ; doesn't have it.4 O. e( _/ g; R7 t' O
- (if (null (assoc 3 elist))% y% `2 J; ?& C5 k
- (setq elist (append elist (list (cons 3 dimsty))))
' ~6 O8 t/ v0 o, ~7 D# K - ; else just replace it., u7 ^0 K$ \: p n
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
& \9 ]' c" c! s6 n8 A% C - )
/ P. Q# K v0 g) x5 N - ; refresh sv_dvlist with new dimstyle.
9 e+ _/ `8 v Y2 J: V - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
8 f; L2 l3 H2 ^; |. T - )1 ^9 N7 z l+ Y" _% J: ]# V: q
- )
$ h- X( v4 G' ^& S- r - (if (not (null dimlist)) ; attempted to change dimvars
8 v& U% a4 f# k+ h1 P - (ddimen_complist sv_dvlist dimlist dimtbl)
$ {7 @* z+ c0 s9 { - )& c g# C( @2 P* b/ S+ G: ^& Y7 L
- (modify_properties)
0 W7 U- ?. }9 H* _6 f% M - (entmod elist)" V% l, ^' C6 E6 K
- (safe_ddedit ename)9 T) x: J/ t E4 M
- (setq elist (entget ename))1 {5 i1 C2 {) _- S& y
- (ddtolerance), D+ p, I$ G$ i/ f3 Y( T/ k
- )
% ]* R& h; i- l. K, U - )
" {: B1 p+ J( } - (ddimen_setvars dimsvcurset) ; Prepare to exit
% N/ U: ^9 c0 q3 G( L( w6 W - )- Y9 [! G* D$ N8 c {; I& M
- 9 n- i/ f# _, e, S/ {' `$ D
- ;;
- r' A6 f2 W' w& J8 E6 u - ;; ddimen_dlg - jump to ADS ddim module1 x; W9 t* ^2 p$ y, }
- ;;
3 p5 ~" H! Y6 J - 4 L# h7 X P ]/ v
- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)
, l. c5 A4 N- f" x- {) h$ s
4 i' e5 g4 ?5 p+ o- ; Jump to DDIM with overrides if any.
; _ b# E' E6 j! @& |! ?; D3 j% O8 X - (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry
7 U, p4 G( Y% x" }2 S) a) m/ B - ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format, w( U; z# [9 s: z$ t- e: F
- ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation( e( m$ c2 ~+ Q2 {
- )% E: G4 K; w2 A9 S9 y( N& }2 ], U
- )
^+ A- }9 |1 V O7 ?5 O( R
- V# U6 i% X, O0 K! H% y) \- ;;+ C! d/ s, l4 W$ ~) ?
- ;; Dimension variables updated are stored as overrides.
n8 l1 ~9 x+ w& z/ d - ;;" F' w- y( B1 C0 G8 y! I% }8 B
! v8 S) a e/ K5 I- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar
/ v& n7 O6 }8 p; @$ P9 v8 C9 E/ G - dv dime commandIssued)
' D! L/ ]0 ~7 x' F4 O
0 C2 y* F; \& Q4 ]$ A2 D- ; Here we skip the following first three items:, o Y7 X6 z; Z [ g! w4 g
- ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0)5 M- Y, ?; s* B" t3 [* x) E+ S
- ;: Y. J' Y3 \; M! X% E
- ; The list comparison immediately begins with dimvar./ e+ u3 V# V; Q1 `9 l3 s. s8 p: w
- ;
7 r9 o' z. f0 r' s - ; dimolist - original states of dimvars
! p7 o, F% I4 ?6 y$ `8 @& s - ; dimnlist - new dimvar list which is of the resbuf's9 i6 x% x* `. ?1 ^$ D: p/ m( O; `
- ; dime - entity name for the dimension
* Y1 x: r+ J b# y) i - ; odvar - value of dimvar for the dimolist7 u& P. {* {0 @1 {. K
- ; ndvar - value of dimvar for the dimnlist
) }- y, l, P# ^) T/ |8 \8 z - & q; S7 Z8 |0 n: S. O+ T0 P7 F
- (setq i 3
e# g$ A9 B. T% g- p/ c/ S/ ] - dime (cdr (assoc -1 elist))! O$ @9 E7 c3 ^+ g
- )
: m0 h# O6 Z( t( `- S- I - (while (setq odvar (cdr (nth i dimolist)))8 h: w9 ?2 j/ D+ A% X8 a
- (progn# f- R b+ I' A8 C" P" e( f0 [
- (setq ndvar (cdr (nth i dimnlist)))0 C2 y0 g- l- s2 N4 G
- (setq dv (nth i dimtbl))
) S8 X1 H3 p: T/ {& e7 K% s9 i: b - (if (eq dv "dimtxsty")9 ^2 u2 R2 x/ h" R
- (setq odvar (cdr (assoc 2 (entget odvar)))" U5 Y# o0 z7 u3 k1 t
- ndvar (cdr (assoc 2 (entget ndvar)))
2 k0 E5 y. O. W T - )
8 r$ S: j U+ H, s! S6 H; S - )% a+ @- E g0 c3 d
& B1 `% Q( `$ }% K6 I$ L- ;& G) K$ a/ z: O( g2 Y7 C3 Q( E1 I
- ; In order for DIMOVERRRIDE to operate correctly with string f* p( \ G/ t
- ; based dimvars, we must pass "." versus NULL strings.( ?- E: S$ l0 M& W6 i+ e
- ; In this case ndvar is the new dimvar value the user wishes
& e) M6 i# Y/ k8 k - ; to update on selected dimensions.
4 w, V" s& K' H% G' v: j3 c - ;9 D$ ]/ H% `0 s- O
- (if (/= ndvar odvar)
_6 l( j+ f, y- ?: m+ W* n/ h - (if (= 'STR (type ndvar))5 S0 w) T0 E c2 c& e* B
- (if (= ndvar "")
1 U% ^ S1 Q$ I- \% w* A- o - (setq ndvar "."))))
b0 J& | \0 b7 h9 h4 g
: t% t* X/ y/ X5 v) a- (if (/= ndvar odvar)' @4 J3 @& C; F% C
- (progn# {9 j+ E4 }1 w) W4 W
- (setq dv (strcat "_" dv))
v3 B& o. p/ }; x - ;
& K* }7 v* z% T- k7 x/ C/ N - ; Start the dimoverride command- u9 x7 e6 n: h a) Z& i7 r
- ;; O* D# z- D7 V! \; S+ U5 I
- (if (not commandIssued)/ k: F4 K' r) {
- (progn3 i4 n/ f' k t
- (command "_.dimoverride")/ c) D, Z- |: \
- (setq commandIssued "T")
" [- m3 w# C( Q* A+ A - ) [- s2 a8 C" c! C, z) F
- )
) {$ Q v7 R0 s1 n3 N# v. v - ;
( @' T, m$ `1 |8 A% ` - ; Issue dim overrides# e9 u1 Q4 S* X* g' R9 Q
- ;
" K% g- h5 h2 `( O8 D - (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre"))- _8 J6 r, R, W9 @ I4 ^' v
- (or (= ndvar 0) (= ndvar 256))
! x9 D. F) w( Q H - )- v5 y7 a( p+ k3 U3 n7 r0 J1 z2 L
- (progn
0 |# M' o0 n: q0 E( ? - (if (= 0 ndvar) (command dv "BYBLOCK"))6 K+ u1 @5 L( d5 b) l
- (if (= 256 ndvar) (command dv "BYLAYER"))
8 C+ I& N1 R* {$ k - )
( m+ Q- ~ D" s& D2 c9 H' G& g - (command dv ndvar)! `! J N7 V& {5 ^9 @
- )
+ O7 Y6 q1 B8 n+ u- s3 M. j: |! p - )
6 A. D6 _5 Y% k) V4 U - )
! |+ l1 K' F9 B8 O/ N6 a- x3 g- G - (setq i (1+ i))
( h5 P$ F; E2 @8 Q! q - )
; d4 p* c. W* Z3 Q: Q - )( D/ P; G8 b( b/ p3 s. o
- ;
* P3 n9 g' [9 T3 a# I, w - ; Select Entity and terminate command' y& _% Z& q/ d7 z% w6 N4 R
- ;: m, U/ ~( b9 o4 V
- (if commandIssued
w+ `+ @! Z/ [% M+ t3 m - (command "" dime "")
, Z/ z% a7 r0 j$ t, ~" g" _7 Q$ P - )
/ |6 L, y3 {* @# R# u2 R: y - )
, H' s- S6 e5 y0 M
3 ~# l' V/ Q6 \- ;;
# C+ e8 @: a* {- Y6 | - ;; Get style name currently selected style name." s9 A$ _) ^4 Y+ n
- ;;
0 ^# g/ X2 h. B S - ; H% U7 q3 C0 d' ?* ^, t7 H5 g
- (defun ddimen_style (/ dimsty)4 V- z7 d: z! g
- (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)
: [ n0 V i4 q' S, s* P! l- a - dimlist (ddimen_getdimvars dimsty)" |' L- k2 p9 [+ J/ c
- )0 ^: G3 A* z' ]3 {
- dimsty/ `. \: _( |9 }1 Y6 N
- )
6 n% c- {; {; U6 Z - - e- Y; U d$ _9 A, p$ g7 u4 ^9 l
- ;;) H! [& N* \( v2 P& j) g5 m
- ;; Set dimvars' T/ i' T+ V6 d. c5 y
- ;;* B2 Y- P6 t! _- K4 a4 p' k
- (defun ddimen_setvars (dimsvcurset / dv i). ]- r) n& X5 }( Z# a) `
- (setq dv (cdr (nth 1 dimsvcurset)))
2 D3 p7 a) E: ?- b0 Q( t - (command "_.dimstyle" "" dv)
6 q1 {& J: p6 n/ C" l - (setq i 3)( M4 |/ M* M* s; K6 n8 J8 b
- (while (setq dv (nth i dimsvcurset))
' _7 Q) B0 `* c& z! e+ K - (progn
5 y" k A( r1 g! ?, n! _ - (setvar (car dv) (cdr dv))( _- l, [' m- u. U d; `8 ^' i- y! O
- (setq i (1+ i))
" s& l) @& G# f8 H% Q - ) C- H5 Y% ^$ [6 [& h
- )% S }/ @. `/ x- O
- ): S5 i! i8 J1 M+ R# r
- ;;6 N: ` [) @# u/ V
- ;; End-of-dimension
5 c- l9 d; V! p! \8 m$ E! R - ;; ==================/ B2 N$ z/ h) q, h* ^
- H1 ?" ?2 F4 L7 I4 v- ;;4 g; \( V; ^* y w- q
- ;; Sub-dialogues for properties. Common to all object dialogues: ^0 U: o& Y$ L Y, U$ N
- ;;9 r& c/ m0 l! I, i
- ;; This function pops a dialogue box consisting of a list box,image tile, and0 k) J) N- h) H( V( ]( {
- ;; edit box to allow the user to select or type a color number. It returns7 H- `( }$ p& U) ^+ f. N$ ~
- ;; the color number selected.$ \4 j5 l2 \) R R) s- a
- (defun getcolor (/ old-idx colorno cname lay_clr)
$ s$ y9 G; p9 E. t) } - (if (= (get_tile "error") "")
5 P% p3 g$ p/ Q$ [* U4 C' a, ? - (progn6 V. z/ [! ^4 Q& y% M% F+ a
- ;; Get the color associated with this object's layer, for use" k/ U0 C7 {7 @+ j. D8 W& A
- ;; in the color swatch if the user selects color BYLAYER.
& `1 G- U: _( G4 u: {/ t0 s6 K2 e, z$ E - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer)))): |9 R: x" ?9 d4 U3 u7 V! ]/ U
- (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))
- O, d, E7 i" ]* K& o* d - (progn3 [" u, |* ?. y8 W# w3 _0 t9 _
- (setq ecolor temp_color)
* P( T, p" ?" n2 {+ T7 t9 T# ? - (setcolor). `9 e+ H A6 I: h0 S/ x
- )7 H# L5 `. x/ N" U3 S, ^ \
- (setq testcolor temp_color)# j" c W7 o( @, Q: \ }, H
- ), J8 V; l$ R6 s# z+ {. e% C
- ), P$ R1 p; R* W7 _
- )
# @" W4 v& e/ l* Q4 a0 s - ecolor& g9 ^4 o- p/ {: }* c Q
- )
M: }' }8 c2 l! ~7 M - ;;
( a3 p0 S' R# |; `3 D( a - ;; Function to set the color tiles.
( q1 U, y# T, \* q9 B# ]$ f - (defun setcolor()0 P* O' J# E& Z
- (cond1 a* j5 @8 a6 v! ^5 [
- ((= 0 ecolor)7 V' o+ N. _- g! t
- (set_tile "t_color" "BYBLOCK")
9 s1 ]8 [5 g. c) a v Z7 ?* ~ - (col_tile "show_image" 7 nil) ; show BYBLOCK as white( U4 N7 [; ^* ~
- )
. ?- w0 {3 c+ n - ((= 1 ecolor)) b+ a% @$ j5 E; W
- (set_tile "t_color" "1 red")$ Y7 P& ^7 \+ s& r+ m
- (col_tile "show_image" 1 nil)2 G# W3 K" p. o, [( [ A' \& v
- )6 x; w: r' T& k' q' U' H
- ((= 2 ecolor)
! E6 ~8 p5 B# Z8 j2 o) y+ ^, y1 S - (set_tile "t_color" "2 yellow")6 M f, }) R% x. W" p% e h
- (col_tile "show_image" 2 nil); E% t3 }- A7 P: U% e' _
- )
: B4 i1 L2 m! m7 R; q& h - ((= 3 ecolor)
* a1 x/ C, N- Z; @* t# V - (set_tile "t_color" "3 green")
$ a z( r) i8 P" @5 Q% p - (col_tile "show_image" 3 nil)# j M! s4 N' I& [* ~/ d6 ]9 l
- )
; }; F0 J: r' ~; {* T - ((= 4 ecolor)
9 X1 S- s) t, W - (set_tile "t_color" "4 cyan")6 l# J. q' |' f$ L
- (col_tile "show_image" 4 nil)# R1 Y7 v0 }4 I) V5 b6 c# _# r4 P+ s
- )
Y' j: T7 c: Y) a$ W9 m% h - ((= 5 ecolor)5 G7 J! H. |' V9 L0 @
- (set_tile "t_color" "5 blue")
5 |8 L5 L q x- w6 q - (col_tile "show_image" 5 nil)+ J: Y) z( m" I I5 B
- )
0 B/ j4 {- `' ~% ]; S5 x' e - ((= 6 ecolor)1 M+ N* H E# Y4 q
- (set_tile "t_color" "6 magenta")
$ ?& x2 W6 J; r - (col_tile "show_image" 6 nil)
/ G! U5 p. l, a i5 B" F: D - )
9 G0 r6 w/ z t# x2 [ - ((= 7 ecolor)
3 {3 C1 `) a, E; r D q; R' ] - (set_tile "t_color" "7 white")
* E, t3 ^: N' D7 F5 C+ w - (col_tile "show_image" 7 nil)
# h2 n5 |: Y5 p. z3 ^8 w; e% e - )
" T% r9 B1 E7 ]) t8 }1 p7 p - ((= 256 ecolor)
; o' g% ^4 M) n3 z9 E9 B - (set_tile "t_color" "BYLAYER")# J3 D# }- C! C5 p3 n' J' n
- (col_tile "show_image" (bylayer_col) nil)
6 z4 x. `0 c' m. ^ - )
y4 u9 ] A) b, r - (T2 B2 K4 j, {$ K5 W! }) v+ C7 J4 E
- (set_tile "t_color" (itoa ecolor))
" H% B" |- W* s' q C - (col_tile "show_image" ecolor nil)
7 }9 o: }" B* W7 h6 f* H- \- t6 a - )
1 _4 k6 w1 ~& P5 d) u - )
/ [0 [0 _# b6 d, j: v( T$ o2 g - )
* \( ~* ^5 r# I) x - ;;' v0 m$ f8 }, C$ {' ]8 V O& q
- ;; This function pops a dialogue box consisting of a list box, image tile, and
8 Y+ t8 \7 ~$ @( J5 _5 e3 n - ;; edit box to allow the user to select or type a linetype. It returns the: e8 W4 g% Y. g: D z
- ;; linetype selected.% U+ m/ G0 a& Q# b3 B, H
- ;;& z- E% A! x. c2 z; k; Z, b
- (defun getltype (/ old-idx ltname)
( `) X: k9 v& Q% c5 C" o ^5 H. p - (if (not lt-idx)
3 o' _) W$ ~) B% P& f. Z - (progn
* F) a9 n$ T: d - (make_lt_lists) ; linetype lists - ltnmlst, mdashlist
3 c0 O: c. s3 d" E! F. W& D& A - (cond8 z3 s1 @" s% V9 q" L* {5 g% w
- ((= eltype "BYLAYER")& ]' ^/ A0 o7 l0 C; m$ x
- (setq lt-idx (getindex "BYLAYER" ltnmlst)))
# W+ U0 p) K) \0 P8 F* { - ((= eltype "BYBLOCK")6 m- ~1 T B- i5 \
- (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
8 ^6 T5 t1 x! F! W6 B2 V# j - (T (setq lt-idx (getindex eltype ltnmlst)))3 c0 X7 W; }: k! F% B# D
- )
$ z/ a9 [) ?$ d - )
4 A- x9 F y- b: [- U" S% W - )5 [; ?9 M E% Y- e a( ]
- / M0 m8 W9 t3 q- |2 f
- (if (= (get_tile "error") "")" [. S: b+ |' w/ n/ e+ \; V3 g
- (progn
* e3 G- Y' S M% k' E - (if (not (new_dialog "setltype" dcl_id)) (exit))% U2 m# d) \5 P$ H! K. h4 N' F
- (start_list "list_lt")$ l- j9 p' y+ M+ G8 h% ?
- (mapcar 'add_list ltnmlst) ; initialize list box
! ^2 D+ u$ Q, L6 d$ c1 f - (end_list)
: h; q8 |1 z y$ ~- A* [0 U& m+ |) J - (setq old-idx lt-idx)
. ~3 ~6 i- p/ J7 s: y; D - (ltlist_act (itoa lt-idx))
" Y. i! w3 Z7 T/ c4 ?1 G# \4 q1 F/ e
4 A1 E- U) X/ d7 n, G' C& y$ L7 ~- (action_tile "list_lt" "(ltlist_act $value)")
! s6 R2 f5 w$ b6 I - (action_tile "edit_lt" "(ltedit_act $value)")
T n4 f4 M, X( @6 \# p7 a7 W3 ]: ? - (action_tile "accept" "(test_ok)")6 z$ I4 y2 |; K
- (action_tile "cancel" "(reset_lt)")
s6 M; E) V( d" K$ f- @7 } - H6 i ]* _' w
- (if (= (start_dialog) 1) ; User pressed OK
( N2 }" M: T4 c% m! W5 N. s - (cond; c. Z6 l& @' \& L9 a+ Q* q( q" T6 x% e
- ((= lt-idx 0)
. F$ F9 F T+ C4 H - (set_tile "t_ltype" (bylayer_lt))- K, c3 o* c( w- Y- S: ~) M& M. [. B
- "BYLAYER"1 v- y) U n q! d5 p
- )1 }) M1 ^7 }' C
- ((= lt-idx 1)
$ [' D( E* j @7 i) c8 i0 f - (set_tile "t_ltype" "BYBLOCK")1 Y9 j' L9 `% H
- "BYBLOCK"
( p) m# ]7 l$ a, C: P8 u3 j - ). |: K; U! U0 ?* |( h5 o
- (T (set_tile "t_ltype" ltname) ltname)
* }( ]0 q' P/ \ - )8 h" P8 A4 B. L/ z
- eltype& `( Y0 w) `+ T# `. g! {. i
- )
" R% S- g' ~+ c! c - )+ x7 } {( a0 Q9 k0 y
- eltype
' \. q! V; W& s# Q - )
) B* }, r6 i- e - )
+ m$ O# m0 S0 x; [; q% ]; H1 d s - ;;
. m# R+ {6 |( a" q% H' K; b9 | - ;; Edit box entries end up here& l. M- l9 s0 {' W
- (defun ltedit_act (ltvalue)
) t% v$ r9 z. E, g) F( u; y - (setq ltvalue (xstrcase ltvalue))
+ P7 H6 y q5 S o4 m) W - (if (or (= ltvalue "BYLAYER")9 k/ w& j* ~& m
- (= ltvalue "BY LAYER"))' [. m" Y( p. ~6 U% M
- (setq ltvalue "BYLAYER")
- z; _6 `; _' O( \' C# c - )) x2 n3 \* r( ^2 j0 k; `
- (if (or (= ltvalue "BYBLOCK")
6 q" e" k. {& s" k - (= ltvalue "BY BLOCK"))
& @3 x3 {3 w" G5 {4 K3 j- b - (setq ltvalue "BYBLOCK")
$ e" Z: G0 L5 C1 c; i - ) J' W4 C, `3 E3 O$ n& G7 O$ x
- (if (setq lt-idx (getindex ltvalue ltnmlst))
+ H8 o0 D# d+ e/ c - (progn
7 K/ A O+ K# ]+ ]8 U% U5 x - (set_tile "error" "")
5 @: g2 F% @; e6 Y5 g/ c9 ^ F5 C - (ltlist_act (itoa lt-idx))
) `4 ~7 |* Q5 m8 l) h) f - ). E; d6 B7 y# A" Y) j K
- (progn
8 R; f# d: Z0 u W- }! i - (set_tile "error" "Invalid linetype.")( R5 @9 s7 Q3 ] z* n: {
- (setq lt-idx old-idx): x7 q+ r: y1 {; A' e9 r3 N( @
- ;; (mode_tile "edit_lt" 2)
' D7 z) q6 H5 e8 _6 ]+ M. @6 } - ;; (mode_tile "edit_lt" 3) {# j2 K6 T% I8 S1 _
- )
5 [: | W% |0 n! y# J - )- ]" b( n i* j6 n
- )
: c% v1 S. E* n4 \$ l. ?, i# F - ;;
# F% J* Z9 h! _! v' N - ;; List selections end up here. Update the list box, edit box, and color+ x4 Y& w2 a3 Y- R
- ;; tile.. _" C S: r& j7 ~; }" y
- ;; q5 i/ E4 ]2 I0 m
- (defun ltlist_act (index / dashdata)0 J4 Y* N8 x* R0 E+ x
- (set_tile "error" "")- M6 j: k/ b$ ~8 u4 o1 P
- (setq lt-idx (atoi index))/ f- Y* y4 `4 V& P* t- R
- (setq ltname (nth lt-idx ltnmlst))% h7 y2 ]; Q+ u) `) t
- (setq dashdata (nth lt-idx mdashlist))# y G" v7 ^' g
- (col_tile "show_image" 0 dashdata)
$ E$ S6 F; b+ ^( G0 S - (set_tile "list_lt" (itoa lt-idx))
- t [2 y$ M7 C. C" i0 U' Y - (set_tile "edit_lt" ltname)
- c0 X6 f. {' V3 y8 M4 R/ `! a - )/ n; U9 {/ b% X
- ;; |4 Q" c0 L% D: B
- ;; Reset to original linetype when cancel it selected2 u0 |% I4 A2 g! r! i6 Z$ Q
- ;;8 h6 s2 c0 X( O
- (defun reset_lt ()9 Z: H% n9 m- z/ J9 a" D; m6 T
- (setq lt-idx old-idx)+ W# Q3 j) a: w6 ~; K' h4 j
- (done_dialog 0)$ q D7 r% d+ Z8 V- U
- )! ]# G0 _0 I* r1 b# h t
- ;;9 C( \& x' g: M5 l1 l# [8 I; h3 Z B+ L
- ;; This function pops a dialogue box consisting of a list box,image tile, and
8 ]% Q1 q2 E5 Z0 S1 M( p - ;; edit box to allow the user to select or type a layer name. It returns the
( ?4 r7 ?$ G# Q6 S - ;; layer name selected. It also has a button to find the status (On, Off,
! I+ R9 u5 y9 T7 Y; H$ D - ;; Frozen, etc.) of any layer selected.. Z" ~. k( c, b5 E
- ;;6 E C3 i9 u- R1 @+ E6 ~ r2 @ o
- (defun getlayer (/ old-idx layname on off frozth linetype)6 }7 K& B7 W* j% h8 f; F8 ~: d
- ;; Create layer list the first time the layer
) W n% Q" W. B2 ^ - ;; dialogue is called.+ V1 m) I. u/ E0 B. B( g9 _2 a: S
- (if (not lay-idx)3 A6 x2 Q, v' ?7 d2 y
- (progn k4 B* X6 N% Z: i$ D" u7 T
- (make_lay_lists)) B* R1 U. o& s- A% x
- (setq lay-idx (getindex elayer laynmlst))8 C( q3 k! E5 l l3 ]9 K# T
- )
" k8 b K2 E5 ?, O - )8 ^- Y' J, {- H/ T
" J/ Y5 D/ B3 A' k2 y- (if (= (get_tile "error") ""), V0 B) i7 e r/ n9 ~4 K9 Y
- (progn
; n( ?2 y( F1 l - (if (not (new_dialog "setlayer" dcl_id)) (exit))
5 C8 h, c' Y; Y/ [: { N - (set_tile "cur_layer" (getvar "clayer"))
6 k3 \( V+ K6 h3 C1 \9 \7 d - (start_list "list_lay")
7 g8 k, \! K) `; F - (mapcar 'add_list laynmlst) ; initialize list box
: W! n# X( J. G% J! @$ U& V* Q1 } - (end_list)
* P" D# L3 e7 }" q1 |( T+ v1 h - (setq old-idx lay-idx)% J( ]3 g; P( s+ @
- (laylist_act (itoa lay-idx))
2 ?+ O+ ?0 t5 @8 p+ K8 Z) r* H - (action_tile "list_lay" "(laylist_act $value)")
, \$ \9 Q2 S' ^+ { - (action_tile "edit_lay" "(layedit_act $value)")
/ ?2 Z' Z6 q7 C( |1 R - (action_tile "accept" "(test_ok)")/ s" |8 r' K( ~$ b$ W, a' `. _
- (action_tile "cancel" "(reset_lay)")3 K" I1 f4 ]" p" c9 P/ q) ]8 x# i9 D
- (if (= (start_dialog) 1) ; User pressed OK$ P( _ b! \" D4 T0 ^$ a
- (progn
# ~* o8 F. K6 R9 o. [* m1 p/ v* k" u - (set_tile "t_layer" layname)
" g. `$ G( e) Z r P0 K6 ] - (setq elayer layname)
: K. k6 S/ h% B1 D* y$ Y - ;; If layer equals bylayer reset color tile
; @. l# B+ j: ?, E - (if (= ecolor 256)6 U* H4 Z$ q1 Y' @
- (col_tile "show_image" (bylayer_col) nil)% W4 Y8 z* p6 _- `
- )
( V9 P, p1 M, G/ O3 Y - layname8 m" e4 E; x% f$ h% T
- )7 r# r8 ?; P1 Y# i5 N
- elayer
- p9 Q% s" n5 Z - ) K$ t7 W9 a. H: S/ Q
- )4 G$ \9 F$ G* g
- elayer- P7 r, o2 b5 U2 O: O0 ]+ _, X' ^
- )
$ j3 w5 r, R r, Y" u9 \ R - )7 [! }2 ?7 g" U8 N
- ;;
: n& p% @. }: M - ;; Edit box selections end up here. Convert layer entry to upper case. If9 _ k% L: J- t
- ;; layer name is valid, clear error string, call (laylist_act) function.
! `4 J/ o. l+ W) F+ r% F - ;; Else print error message.# _* I6 f5 D( ]
- ;;7 k4 Z' a; s4 m6 t
- (defun layedit_act (layvalue)
. {# o }- I' J - (setq layvalue (xstrcase layvalue))) \$ J; V% b2 n' v6 f7 U3 N
- (if (setq lay-idx (getindex layvalue laynmlst))
6 G6 j# ^8 h1 Q8 P - (progn Y& A% c. r: Z, K; u9 F/ M
- (set_tile "error" "")
) R3 E; f2 }+ }. r: Z - (laylist_act (itoa lay-idx))
) S' t* N' G4 o/ l - ), [; O% X/ H. \- ^. |+ E5 k7 m
- (progn
5 E/ n1 |8 H; |9 s+ P* ~# v - (set_tile "error" "Invalid layer name.")
) g) I$ e3 }8 |7 P m% f - ;; (mode_tile "edit_lay" 2); j9 N w, n% h
- ;; (mode_tile "edit_lay" 3)9 m' u) O* W/ d1 n
- (setq lay-idx old-idx)* b8 o" J: W7 D# m
- )1 z) u! h" u" n4 x
- )
3 W- P/ F; K! ^ - )6 l& ]7 x' t) B6 K. w
- ;;
6 _3 E, j! Q |5 E0 ^ - ;; List entry selections end up here.
& X- s" W" A4 \ _2 r1 V: E - ;;
1 p, U8 p4 w' V- p$ Z+ C - (defun laylist_act (index / layinfo color dashdata)
9 q, p* V5 g; t+ i$ G - ;; Update the list box, edit box, and color tile.
0 A% e1 O$ h7 L! H6 G, X/ z; v - (set_tile "error" "")* Q( r( [0 C' D% [# R u
- (setq lay-idx (atoi index))
3 ?8 K) i& I& S+ T, [( m( l - (setq layname (nth lay-idx laynmlst)), p t% {/ m0 l' x
- (setq layinfo (tblsearch "layer" layname))
3 ~" j2 f R% x% r - (setq color (cdr (assoc 62 layinfo)))
( Y: j' @' @8 j$ Z( c& l - (setq color (abs color))" H2 s: l5 g& s/ j
- (setq colname (colorname color))0 r/ b M4 X" \5 z
- (set_tile "list_lay" (itoa lay-idx))
% V! I4 J; L, W5 x - (set_tile "edit_lay" layname)$ F# g D6 Z- @# o# I0 t
- )) |3 W4 x7 R9 o3 l3 o
- ;;& X+ @) {0 W5 |% R& x. Y' I/ u+ q
- ;; Reset to original layer when cancel is selected.( k) _& X6 c0 p0 Z" Q: E# n
- ;;: q0 p/ A' C& N9 N/ o9 A
- (defun reset_lay ()
4 K3 Q! `+ @( @, ^% `/ ^3 o5 @ - (setq lay-idx old-idx)
' C( ^9 H" A7 ^( w# @ - (done_dialog 0)
: ? ]* u7 ~; t: t+ _ - )) C" s1 n% }9 g3 y- P* q
- ;;9 ~ j% q$ v2 L& \+ c; R, |+ |
- ;; Checks validity of thickness from edit box.9 Y- d1 ]0 R7 ]9 U2 i
- (defun getthickness (value)
7 d i! I* w4 `( C0 D$ M - (setq ethickness (verify_d "eb_thickness" value ethickness))
6 E: }. }5 u. T: ~ - )
& z- T, s% m; |* x* i | - ;;0 f6 k8 k) `1 g. i, t% Q' J
- ;; Copy of (getthickness) for ltscale. If more, make this function2 G5 w6 |: u% O5 x
- ;; generic.5 Z7 \/ h! H N1 j k4 J
- (defun getltscale (value)6 Z. E3 M3 S1 n/ C1 N, a
- (setq eltscale (verify_d "eb_ltscale" value eltscale)). C3 t( f! g# I% k4 K) ?
- )4 z5 a: a/ ]2 }% f$ N6 p( {& r: o
- ;;0 {. ^. Z( [% Y8 r2 x
- ;; This function makes a list called laynmlst which consists of all the layer
9 g: d9 y. w# I3 J+ A( Z% M& N - ;; names in the drawing. It also creates a list called longlist which3 j1 q$ ?8 T# s0 R8 i1 r% @7 k8 k' d
- ;; consists of strings which contain the layer name, color, linetype, etc.
$ s( @, j0 O% q! C - ;; Longlist is later mapped into the layer listbox. Both are ordered the5 X: T: q5 X9 y% u" e; D8 H. d
- ;; same.
, n' ^* \- ?! F4 I - ;;
0 M. W2 y( T+ [5 i! h R9 s - (defun make_lay_lists (/ layname sortlist name templist layer_number)/ f0 Q, I* b5 V$ k) m$ B2 h& w
- (setq sortlist nil)
& w* U$ ~6 ?0 S - (setq templist (tblnext "LAYER" T))1 ?# d) _5 P9 n4 ~3 Y+ Y, c, s! k
- (setq layer_number 1)* y, Y% A6 v i, E- V+ f* j* v' X
- (while templist7 D- y( y8 D* A+ i8 r
- ;; No xref dependent layers, please.
* O$ @8 @: K8 F* Y1 a - (if (/= (logand 16 (cdr (assoc 70 templist))) 16)' Z' C$ M3 Q5 }/ O" x6 X" ]7 l
- (progn
6 u6 [4 c: M; `* m+ l& {% ` - (setq name (cdr (assoc 2 templist)))7 z6 k m% \$ X, Q
- (setq sortlist (cons name sortlist))
' S0 o/ p/ C1 r/ ?/ ^ { - ). J( f2 U, g& D# |
- )( q8 u: V3 S! [. _ ^
- ; Get the next layer.
* f5 l) `/ k/ I: ?! m3 K - (setq templist (tblnext "LAYER"))
7 e7 w8 s' w$ g9 X4 n' H - ;; Not dead message...
. I6 E" H+ H0 e; {' K3 j0 b" ^ - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))1 l# H4 S' V* w! x
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
: T7 \0 c$ u; I2 F( F' P - )# h- D# `; w' }5 S7 P' D: j
- (setq layer_number (1+ layer_number))8 M5 L9 T4 k# Y l4 @2 p, r
- )- u/ e# y& P& u& m: |6 G0 j( r, U
- (set_tile "error" "")0 G+ l! r# W" k1 D4 H0 v; U
- (if (>= (getvar "maxsort") (length sortlist))8 @% o5 o2 t' X$ k
- (progn; V9 C& f# j( z. k9 Q
- (if (> layer_number 50)
$ ^, @* }& i7 f& t - (set_tile "error" "Sorting...")
2 ]. m" s _$ j& P, K2 G - )
9 y3 @/ h M3 e& m - (setq sortlist (acad_strlsort sortlist))9 H9 `1 B5 J$ w7 T: [
- )* N7 g6 x8 e' p3 b
- (setq sortlist (reverse sortlist))
& @8 n3 G( }* Z- U7 j# d - )+ W6 e9 Y4 G0 i+ v0 X( M
- (set_tile "error" "")
& `; H$ e0 n; E+ E+ ]3 G8 @ - (setq laynmlst sortlist)
/ w) `' p2 P/ T. c - ): Z$ O6 j2 E: c. K
- ;;
# Q: J+ H' g2 N& Q2 ] - ;; This function makes 2 list - ltnmlst & mdashlist.
7 {/ l: G! p2 \ - ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist
/ Z7 M. ^3 I+ U4 M, X: q* S: w$ @" Q - ;; is list consisting of lists which define the linetype pattern - numbers3 V8 E8 C" Q$ Y. Z' I$ l8 V- J, g
- ;; that indicate dots, dashes, and spaces taken from group code 49. The list. I9 `4 D9 O2 M9 I
- ;; corresponds to the order of names in ltnmlst.9 m+ S+ ]+ ^* G8 S/ Q1 M
- ;;0 ]/ l3 m, C$ j( t6 _/ i/ a
- (defun make_lt_lists (/ ltlist ltname)
1 c9 c" h3 B9 m9 m; J) a - (setq mdashlist nil)
9 k9 }2 t, ^, n8 q: e, i7 m - (setq sortlist nil)# r( ~# p) c# I7 h- l$ |5 m
- (setq ltype_number 1)( j: k) j; n W5 d9 Z1 v- t; {4 h
- (setq ltlist (tblnext "LTYPE" T))& @" C, ?3 b! ^
- ;;(setq ltname (cdr (assoc 2 ltlist)))
" [5 h5 e, a+ R3 j - ;;(setq ltnmlst (list ltname))
6 i. K# k* \( s' B - (while ltlist6 n5 _0 x0 X' j8 ]. ~
- ;; No xref dependent linetypes, please.% @1 t# Y8 h5 _/ Z" d7 m! ~0 U
- (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)7 F! {) x$ |; E+ e9 O( k
- (progn
- K& f6 P0 h5 j9 l! f% z4 t! a - (setq ltname (cdr (assoc 2 ltlist)))
, w' I* D- G) ]: `% ?, x9 K - (setq sortlist (cons ltname sortlist))( H/ o$ r! M9 m) t. O4 s; x7 c
- )
1 U# C2 {" w8 ~+ W - )3 z/ l. p m! O7 [( G! F% k
- ;; Get the next linetype.6 K9 _ d" V! k: ~2 A8 {" P) ~
- (setq ltlist (tblnext "LTYPE")). S1 R; U* W+ g' v
- 5 p8 y7 N/ d4 R1 F5 T
- ;; Not dead message...
9 ?3 b6 ?* i D1 g; B$ U) L - (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))
* \2 k; }. L% j- f* R - (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))
0 P+ U. l4 {4 ~ Q. s3 V - )
' t' z- v1 [0 P6 e7 y! c9 b - (setq ltype_number (1+ ltype_number))& o+ `( Q7 q' Q/ k& [; t
/ B q2 x& B& \' z' p, J- )6 |0 I1 R* e+ h3 i
- 3 J; z! h. y) `& h. E7 [
- ;; Remove Collecting message.) i% |* H1 ]7 v8 A! L0 {
- (set_tile "error" "")
% ~, s2 K1 @( P! c& @$ a* g
8 `) t' i( `' I3 [# I0 F- ;; Sort based on maxsort.
# ~2 P, W) O/ M4 T* a - (if (>= (getvar "maxsort") (length sortlist))4 m+ K9 w$ C1 G- _, y* s$ r7 C
- (progn
- E1 q4 r- e! t0 T( f" w - (if (> ltype_number 50)+ z* C7 f6 D" y! k7 H
- (set_tile "error" "Sorting...")& z9 {) s' E0 j- `2 l7 N0 T1 k- }7 s
- )
/ u1 J9 r, N7 {9 P% R g, p* N4 l* T" f - (setq sortlist (acad_strlsort sortlist))
- D( i6 j9 f/ M8 y2 U1 {, Y7 ` - )
: |+ w4 V9 ~/ p) l) N$ [ - (setq sortlist (reverse sortlist))$ }+ Q, [- Y4 F, L1 q# j
- )
- ?4 ^5 H1 n# s/ x - (set_tile "error" ""). @; `# L7 H$ g1 _
- (setq ltnmlst sortlist)1 ^# A8 U. Y& W+ y) x6 ?( ? i
: r; Q' Z2 t! k2 \1 q& l0 s- (foreach ltname ltnmlst
5 @% I4 u+ m0 o& n+ ] - (setq ltlist (tblsearch "LTYPE" ltname))* Z6 y4 ]6 w3 T; G& p
- (if (= ltname "CONTINUOUS")
) [- M" T( A/ w4 N" g - (setq mdashlist (append mdashlist (list "CONT")))( G* L8 o4 j. p
- (setq mdashlist
/ T" F" d# I0 P9 [4 B6 L% x - (append mdashlist (list (add_mdash ltlist)))
, t% v: a3 {: v) Z$ G# b - )
! j9 N0 o- p3 \6 m* F - )
/ y; g$ K) k6 k& l1 `+ m4 m - )* t) u. y4 U$ W# Q- Y. {' I* J
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))' b1 ~! [# \5 v) `7 f- e
- (setq mdashlist (cons nil mdashlist))
: l+ O7 E* L" Q - (setq ltnmlst (cons "BYLAYER" ltnmlst)): S4 s# o' _# j0 j8 v& @9 @
- (setq mdashlist (cons nil mdashlist))5 R- M; [$ X( b; z$ ? O
- ). ]; s7 f- `; N
- ;;
5 k6 Q, _4 `; h& X - ;; Get all the group code 49 values for a linetype and put them in a list
; K1 U% k0 K& G - ;; (pen-up, pen-down info).
; K9 K h* @. d1 W% g. @6 g! E - ;;$ ~7 G; ~# a* b9 @; F
- (defun add_mdash (ltlist1 / dashlist assoclist dashsize)
/ `9 s% h5 ?. V$ c8 W% p - (setq dashlist nil)# \7 y- R5 j4 A0 z+ F: v
- (while (setq assoclist (car ltlist1))
& a: `8 v/ J$ N$ T, \. |0 _9 l - (if (= (car assoclist) 49)# B d1 U' j0 W& `
- (progn
6 q9 n# x7 T5 F6 F- F6 ^/ P; |0 w - (setq dashsize (cdr assoclist))" |' L- C" W. x2 s; [1 U
- (setq dashlist (cons dashsize dashlist))& @! @7 H+ M! S3 ]8 K
- )
5 Y6 r7 j* @% m% o4 \ - )
" J m/ l3 j# t - (setq ltlist1 (cdr ltlist1))
2 G4 ]8 P1 x! e# x) ?* R8 m. w4 S - )
$ r1 A, n ~3 s - (setq dashlist (reverse dashlist))
3 t: W N9 x7 [1 y4 y! f" `0 C - )& ^: y# N; p1 `3 `1 b. m7 W6 j
- ;;7 ~+ M) D: w' w. A* N
- ;; Color a tile, draw linetype, and draw a border around it
' j! g/ D8 `4 I" v8 f+ B - ;;0 P' Z, O% [0 H/ D8 Q# J
- (defun col_tile (tile color patlist / x y)0 r2 G) y# r- D( U# H' Q& C
- (setq x (dimx_tile tile))
0 O7 e* X. `% k2 K1 k4 o( l - (setq y (dimy_tile tile))( V, {$ X$ ^9 [! C: i! b* e% E. q
- (start_image tile), W* K. \' ?3 N7 _: }
- (fill_image 0 0 x y color)8 c& g, L- K# L$ U) e
- (if (= color 7)
6 N) D1 M! l$ M. ^* y - (progn8 S, S) v+ r& ^. Z! J& T3 ]
- (if patlist (drawpattern x (/ y 2) patlist 0)) [/ `' s7 x9 r9 P* d8 ~/ q9 D
- (tile_rect 0 0 x y 0)- F+ c. @# t- N2 K# ~
- )$ N! u. E" x0 n& n
- (progn2 D) |* R+ H8 e
- (if patlist (drawpattern x (/ y 2) patlist 7))
/ y! v/ O# W4 R% t+ k* L - (tile_rect 0 0 x y 7)' _- p5 j; P) P. w( G
- )
3 `# g3 I: X L5 |: W- u - )
( g2 i& y% U: P - (end_image)& v1 |* r9 P$ x1 h9 h1 q- O
- )
: U s& g* i$ c9 A2 I) \1 S - ;;! H. u: q5 ?" |4 ~ Z
- ;; Draw a border around a tile' L; D& Q0 h- N' }
- ;;4 [5 E2 M% k3 v; o% B
- (defun tile_rect (x1 y1 x2 y2 color)$ y& [% N5 V* p
- (setq x2 (- x2 1))% W' i# e; ~: P: w
- (setq y2 (- y2 1)) \& t/ V5 h& c& A& D
- (vector_image x1 y1 x2 y1 color)2 w, I1 w% [7 ]) W/ y9 n
- (vector_image x2 y1 x2 y2 color)
8 M2 D- H6 M; @+ N - (vector_image x2 y2 x1 y2 color)& [# o, Q; {5 o) J6 V$ q
- (vector_image x1 y2 x1 y1 color)0 U. T" F# d) s) Q! I. o
- )
3 q g% g$ k$ a f4 ]4 [0 X - ;;4 D% D2 ~' Q$ x) P' L
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
# r# z& C# O4 D8 E, C4 h2 f" s* Y - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
# V" E% m1 _ ^+ O( H& f - ;; list of numbers that define the linetype, and color is the color of the5 C- b! I' j3 ^% b2 R3 ~( q
- ;; tile.5 a4 \8 s& D5 T, i$ c! f
- ;;
* o( x; T# Q* f H4 f7 W# f9 c) t - (defun drawpattern (boxlength y2 pattern color / x1 x2
) n% d- _3 o( p - patlist dash)
+ ^+ \3 B) W9 o3 L) } - (setq x1 0 x2 0)! y9 s \+ L7 Y/ [8 D' }. I$ W
- (setq patlist pattern)
7 M' ]3 B! l# p/ u - (setq fx 30)
# a( z/ H* K7 O - (if (= patlist "CONT")
+ H+ Z& M# h# {: W8 T - (progn (setq dash boxlength)
0 l+ n2 C* N1 B$ H, h& Q, b _ - (vi), Z/ ]" ~1 S1 O5 ]/ I8 T4 K
- (setq x1 boxlength)5 D& p' p* P6 O1 W, E
- )
9 o& a, ?- W: O# N0 X4 p9 ^ - (foreach dash patlist0 S& b# R& N* I0 M7 Y
- (if (> (abs dash) 2.5)0 u' Q" E/ v6 K
- (setq fx 2)) H8 N0 x* e, \- Y* ] ^9 G6 p
- )
. d2 k+ M4 y X$ [- ]" o" ^7 a - )8 m7 A% @) S3 V
- ): \% S4 \6 N* `8 R* {1 O& w
- (while (< x1 boxlength)" p) P5 D, M1 e3 z5 Y
- (if (setq dash (car patlist))3 ^9 H7 @4 g$ m( P7 l& y
- (progn1 |) Q! ~. i6 K6 e9 f% c
- (setq dash (fix (* fx dash)))
/ i( J4 J4 T! V0 j9 ? - (cond
/ U7 T. c; z; E6 J( w - ((= dash 0) (setq dash 1) (vi))
1 ~3 E4 ^, q8 y8 V - ((> dash 0) (vi))# @, l& k) }! A
- (T
! v4 I$ g3 u. ` - (if (< (abs dash) 2)
+ p8 Y9 ^* ]0 b. c( F - (setq dash 2)$ D+ W# q1 V4 Q7 C# g
- )
$ o, E* h( Y; n, M - (setq x2 (+ x2 (abs dash)))
5 d+ v# l, _9 E% c) q - )- Q/ M9 n. _& S) u* m6 O, X1 o
- )
. g, N* M# n6 `; a# d% n: W/ W - (setq patlist (cdr patlist))
5 n1 V c( R: e6 l4 V' x% ` - (setq x1 x2)
7 c; Q. {; F- L6 x$ ~% J* ? - )
1 W6 o9 `/ M" G B+ ` - (setq patlist pattern)
8 s9 r% B1 R% \6 a% G - ); \2 N6 A( D4 v- s5 n
- )
+ n6 H6 @. C/ C# v0 j# d - )
1 K. Q! Y& M$ a5 [. `$ q - ;;
! Q; Z8 }7 }- p/ u6 Y - ;; Determain state of xclip
. { e# |2 J6 @. a0 p) e - ;; Returns the group 71 value of the spacial filter dictionary. r# J$ O; N- y' O( b7 J) O
- ;; If the entity doesn't have a spacial filter dictionary, this, z3 A( {/ }7 s; r
- ;; returns 0. If it does it will return 0 or 1 depending on the
) I+ v8 |1 O: x% v* U/ Z1 ^ - ;; current setting of the state of the clipping visibility.
; W7 i, [9 h ?/ n. I+ J - ;;+ e& R' c% @) C4 O: e: M& s
- (defun xclipon(elist)4 h% B1 J6 Q$ J# V- a
- (setq hasclip T)
1 |! I4 A' z+ e - (if (/= (assoc 360 elist) nil)
! g& h$ j7 u r+ P' l- y - (progn; e: s. Y! v* i& {9 a9 t! b
- (setq tmp (entget(cdr(assoc 360 elist))))3 C7 X- L" e$ T, T6 J) |6 e
- (if (/= nil (assoc 360 tmp))" d9 h2 H. b9 ?, b8 w
- (progn6 m2 g8 \. X1 _, @' p' R
- (setq tmp (entget(cdr(assoc 360 tmp))))( p U1 s4 f) A# x% C: s
- (if (/= nil (assoc 360 tmp))
* p: B/ ?: b6 } P+ g5 f s - (progn
. I3 k2 N$ g6 J6 p# I- A, Q4 k - (setq tmp (entget(cdr(assoc 360 tmp))))
" }, g9 ~9 K L. F0 X9 w% T0 F* {+ S - (if (/= nil (assoc 71 tmp))
- X$ R$ H3 j5 { - (cdr(assoc 71 tmp))
! I7 y% t5 f! Q* \! D; X - (progn 9 j) B6 Z" W) h9 D3 I
- (setq hasclip nil); I# H( p9 ]5 ~3 G- r
- (eval 0)7 Z; G- b! |3 i; k. k4 b- k. A
- )
4 {- ^# D8 z! j. G6 l: g - )( H4 R0 @2 h" A% r+ e7 ~- D# J/ z
- )
; s) L/ @* A6 S, B( f8 H" ^ - (progn
$ f6 [0 G: Y6 i* V - (setq hasclip nil)
0 j) `, w! w; |) A0 F. R - (eval 0)
, F# ^% t, e9 p. K6 Q8 t( T; W) i# ~ - )
- Q% w# b: [ S$ B - ) R$ ~: A' [9 J2 ^% V
- ); {# t4 N; q. ^/ i9 g
- (progn
! w5 n0 ~0 R- D( c - (setq hasclip nil)* ~) ^" P/ C8 A; a
- (eval 0)
8 _" H$ r. N/ ]; O5 K - )
# K) W6 g! ]% y9 S, I: x - )/ b5 l% f `' D. B, D }5 v
- )# C' ?. t8 |1 \. C+ \: n' i
- (progn ' t- k; T' ~" P6 U6 A
- (setq hasclip nil)
; z% K+ S6 e% y: A4 U, i8 i - (eval 0)0 a+ R( f5 K I* n0 U3 ^/ H- x
- )
. H% S+ g" {( W9 ?6 _! l - ), T8 E8 O; z! ]5 s n- V
- )
a* x+ ^* w% @' c - ;;" o; J$ ~* k6 U1 h
- ;; Draw a dash or dot in image tile% `4 ]) e3 S: r- h8 ?( X+ Z) N
- ;;7 `4 D/ q( F0 [: x+ e# {
- (defun vi ()
+ R4 ?1 B1 Z) K0 {, Q - (setq x2 (+ x2 dash))
( Q5 j' B. `1 c# h' Y/ U: b. [ - (vector_image x1 y2 x2 y2 color)3 s' l6 ?" t+ J$ V, V
- ): r7 E s$ D- o0 c+ P
- ;;
1 b2 p: g! Z9 q; X. Z; O - ;; If an item is a member of the list, then return its index number, else/ U# Y* ~$ h0 K2 ]& X2 W2 R) m" G+ P$ c
- ;; return nil.
% p( u/ W2 l: W5 s - ;;% F/ V6 V" U7 A* S
- (defun getindex (item itemlist / m n), O) f+ ^ T6 _# e" ]
- (setq n (length itemlist))
& _0 y2 X% s; i4 f6 H - (if (> (setq m (length (member item itemlist))) 0)
8 H& U3 {1 y% G7 ]0 b+ N5 [ - (- n m)6 s. A& S5 W, P
- nil
- P; H: H7 L% w# C: V2 \ - )
( U# N# @1 k' m3 [ - )
% I% m+ ^- K, g3 j7 J: N - ;;6 D9 H. z6 |- O: u- i7 ^6 t# D
- ;; This function is called if the linetype is set "BYLAYER". It finds the
8 p: H2 y- l$ o3 |2 G - ;; ltype of the layer so it can be displayed beside the linetype button.! c- |& X. a1 u
- ;;) a& n- |: h5 i0 x. u# G
- (defun bylayer_lt (/ layname layinfo ltype)) D4 S4 b. O- @2 n7 L" K: Q# w% i
- (if lay-idx
: a# \# l$ k l! K/ |9 c- K - (progn
" U7 ]# _; [3 \7 U+ A" s# r0 l - (setq layname (nth lay-idx laynmlst))& f) F; D' R4 ^; _$ L* G
- (setq layinfo (tblsearch "layer" layname))
: E% u0 M1 }# l# `. @9 [7 n2 S - (setq ltype (cdr (assoc 6 layinfo)))' I9 f6 \1 H9 ~' }* v. y* C
- "BYLAYER"
- Q9 [/ V5 ]8 O9 F' g+ v/ K+ P - )2 u! [5 y- U' Z9 k
- "BYLAYER"+ ?1 v0 _- J# Y/ u$ O! Y* }: I+ a
- )& c' {5 z* j" ~7 T' z8 B# \4 }
- )' X8 y4 \" D$ Y( i Z( p
- ;;1 w2 g0 \; I O6 I0 C8 {
- ;; This function is called if the color is set "BYLAYER". It finds the color' h2 P/ {. @$ E( S
- ;; of the layer so it can be displayed beside the color button.
* C3 Y% y6 r! Q! p2 ]: |6 t4 E - ;;
# M: k7 E# T8 {5 Z' P0 n - (defun bylayer_col (/ layname layinfo color)
% X3 }4 e9 v5 h* R s( l; p - (setq layinfo (tblsearch "layer" elayer)) J" A+ j0 d; Z1 V% q$ S- q% X
- (setq color (abs (cdr (assoc 62 layinfo))))
- v* w; _. w+ s3 g) H* B - )0 C- M i2 |- F" B4 a Z( P
- ;;5 y' T$ K) q0 ~8 w& h* s
- ;; Used to set the color name in layer subdialogue.
0 ]* m1 [2 F5 e1 p8 k/ y0 A9 |. ~ - ;;8 n. i5 T6 x$ H* G1 l O4 _
- (defun colorname (colnum / cn)) P6 N5 x9 t# ^
- (setq cn (abs colnum))7 I: ~' Y, P, p6 P# b& g
- (cond ((= cn 1) "red")
6 B2 }; I7 b) ~& I$ ~ - ((= cn 2) "yellow")& |* _$ ]9 Y+ Y3 M& Y: y. ?3 F; ~
- ((= cn 3) "green")
7 |5 U, l! A9 J D4 E - ((= cn 4) "cyan")
5 g+ W6 M9 |. c' o - ((= cn 5) "blue")" h' |; R* }, a0 J) H
- ((= cn 6) "magenta")
" v" J- |" b( b4 R0 N* U4 f - ((= cn 7) "white")/ r' J% s' Y7 M2 L7 B" y+ E& V
- (T (itoa cn))
+ c _: C5 T, _/ S - )
. Q, w3 l) \: }* B - )* `8 o, `6 L E% s g1 a' Z- c7 j
- ;;
" S* B4 z4 ^& e$ j - ;; If their is no error message, then close the dialogue.
* a8 f3 s: K. r: v5 q" H; T! z; P& v8 M - ;;
" n; ~. }7 R+ } V - (defun dismiss_dialog (action) \; n: e @# a" T1 K0 i
- (if (= action 0)" P# @: h# T2 ^ M* J1 G! r" d
- (done_dialog 0), x+ D) w4 \6 P- ~
- (if (= (get_tile "error") "")
1 X& ~( P" ^6 E9 o X* C - (done_dialog action)0 P" K$ s4 |" I) f( l1 @% [
- )
; r+ L) k( F2 n$ X9 E - )& b. ^. ?- @4 R# B- h
- )
- r Z* ~3 V9 |- t: T- X( ~4 p" K7 w
- C2 w$ P8 k1 ?- (defun test_ok ()( A: e" I1 V2 ~' W0 K. C
- (if (= (get_tile "error") "")
. q; a# {8 p1 l- v' B - (done_dialog 1)% Z' v4 O' m2 T g
- )8 I6 C2 T- i Z6 V
- ) E/ x6 R1 m2 x9 }5 E' [
- ' t i$ C( r5 H* U- x
- (defun cancel ()
! f7 T2 m* z4 c7 ^ - (done_dialog 0)
' b" V5 }8 m; S - )8 E0 N2 ^3 n, X& y! P! G
- $ {3 H5 G" @! m* z! U' P
- ;;; =======================================================================
% B& j! C9 D! g- L; P2 n% v - ;;; SETUP layer and linetype lists for application, and initialize all
% O" y( u) p& r; R6 ^: @) K - ;;; program variables.8 v& q! d( v+ e9 X4 x
- # l: F& J1 F4 v' p) S: Y
- (setq elist (entget ename)
; o. d1 v! s) u7 T - old-elist elist
: M0 m. l: U2 L* |4 d$ o0 t - modlist elist2 I' e& W! Q; |7 A
- etype (strcase (cdr (assoc 0 elist))). e$ k& K/ g! n2 o' t J
- ecolor (cdr (assoc 62 elist))
0 i O0 Z% Y1 Y+ K - elayer (cdr (assoc 8 elist))
+ m, L. v; ^! P - eltscale (cdr (assoc 48 elist))% n! _7 a3 F0 _7 D! I
- ethickness (cdr (assoc 39 elist)) x- R! X/ n0 t; G! t
- eltype (cdr (assoc 6 elist))2 R5 h/ J! g$ ~8 @5 ? G& m
- )
4 N; d3 c7 e* v6 i. h - (if (= (assoc 210 elist) nil)
- E0 I, Y. e; f! d8 Q" u' g( ]/ ?* Z - (setq extru (list 0.0 0.0 1.0))
2 c* T/ U( r6 V& S# Y) h& l5 b1 o4 n - (setq extru (cdr (assoc 210 elist)))
+ G$ }& T. f7 n' ~4 N5 Z - )
9 z3 e$ q' p) W/ f9 {9 {0 t1 | - 1 ]# m; g; d0 R. P$ C3 f, c9 }: E" [
- (if (not ecolor) (setq ecolor 256))
4 d0 R y9 [1 k' U - (if (not eltype) (setq eltype "BYLAYER"))
$ E0 q) Q) ` U; [ - (if (not ethickness) (setq ethickness 0))
7 o& z( j+ c1 S, n - (if (not eltscale) (setq eltscale 1))
+ ~5 m( b4 V$ ^, a - ) ; end ddmodify_init& A/ f5 q1 V& y7 `$ w" H
+ @; h L0 f* f4 t: I+ @+ F/ B$ \- ;;; --------------------------------------------------------------------------; F( }! b. N i$ z/ Z6 m+ C- \
- ;;; Function: DDMODIFY_SELECT% P4 S' ^1 r' Y# r, r8 }
- ;;;
4 s( t' f, h V; ~- y3 m X% |% Q - ;;; Object aquisition function.
1 X1 e( c8 S8 v7 d& K - ;;;
/ O# a; Q& b8 m) m* p - ;;; (ddmodify_select)
1 i, ] a- r+ Z! t - ;;;1 t; y$ a r( A+ o
- ;;; Obtains object to be modified, in one of three ways:
+ p3 W' i7 }7 N3 Q ^* W+ V - ;;;. _7 e0 o4 p/ _# `
- ;;; 1 - Autoselected.
% z: w4 W. `% a% h e" k7 M - ;;; 2 - Prompted for.: o) Z/ L0 c- w1 p x; F4 Q
- ;;; 3 - Passed as an argument in a call to (ddmodify <ename> )( K$ d! ~7 b, l' _
- ;;;
" e2 P5 T) g& ~& B9 Q - ;;; The (ddmodify_select) function also sets the value of the
7 ~* T7 G8 w" A% L; ~) i$ O- w& P - ;;; global symbol AI_SELTYPE to one of the above three values to
8 n1 [& T( w* Q: h3 `/ D - ;;; indicate the method thru which the object was aquired., N. f# R( j5 ^' W) H! h
- ;;;% Z% i0 F8 D, q: a* k" h- u6 O) f
- ;;; This value can be useful to applications that want to RESTORE0 D" f9 i+ t! V! w8 q
- ;;; an object that was autoselected to its previous selected state; q( q; r7 n8 i( j- S6 _2 g9 {; s: o
- ;;; when they terminate, although there doesn't appear to be any) C" n2 U5 E8 `
- ;;; way to do this right now.+ o" D) H* p& I ?# a' y* N
" O- B6 J8 ?% D; \# h- (defun ddmodify_select ()2 e+ O" Q8 j5 i% r6 R s* J3 ?
- (cond& b* o8 o0 q. M/ c7 N! P, [
- ( ename ; (ddmodify) was called
4 i5 Z' D& z- f3 i' ~ - (cond ; with an <ename> argument/ Z C0 i; }: U1 z% m5 w
- ( (entget ename) ; If object is non-deleted
* w9 P9 z' A1 a, v* ~$ z - (setq ai_seltype 3) ; then return its ename.# t0 f2 Z/ e" i
- (ai_return ename))))4 y0 d6 i9 \; ]
+ j9 n1 q$ q3 T" E: `- ;; return auto-selected , see ai_utils.lsp
( N2 u3 [4 p) v* x" W3 H - ( (ai_autossget1 "\nSelect one object to modify: "))
; [" v* ^) Y r, e2 `' x; M/ I - 2 b, m: i4 X( } q0 t( E$ A9 F
- (t (princ "\nNothing selected.")
- |" ?* D1 `5 n7 ?! }! L4 { - (ai_return nil))
4 m- B& e \* e g t, M4 L - )
7 f2 D' J2 O$ e0 w T: N! h - )- b( ~$ a! \/ M: m! J: d
0 @8 q7 l! _+ b A! L- ;;; ============= Command line interface function =======================" V4 t& u9 L+ T r7 J! P: i
- : b& W$ \* s% o Z
- (defun C:MMO ()
3 h0 z) c$ k P8 H - (ddmodify nil)
3 c+ E3 M' ]! ?" m6 U# o: F7 x; I - (princ)
+ L/ ?4 E& y6 `+ _ - )
$ W9 }. L6 ^ ^% I( O - 1 I$ T/ Q4 W5 A0 z! Q8 J0 K6 C% J
- ;;; ================== (ddmodify) - Main program ========================' D X- n9 U: G+ R1 i( z' A
- ;;;
- ~, E* \8 [( `( n9 F" m - ;;; (ddmodify <ename> )
! V5 r0 X- Q1 A, I - ;;;7 F+ j5 }1 V6 {) j' O
- ;;; Main program function, callable as a subroutine.6 m6 ]" s/ [7 _( x# }+ k
- ;;;
' v2 j+ ]9 o. J6 P" q" s - ;;; <ename> = object name of the object to modify.9 R! v: H& s! q! M1 I ~
- ;;;
, @- o: l: O8 i; Q, o - ;;; If <ename> is nil, then user is prompted to select. l1 R* w; _4 D& Q! K6 J, \% Q
- ;;; the object interactively.3 I8 z% J C2 S
- ;;;; a2 e' v! Z6 B) B6 v' W& c
- ;;; Before (ddmodify) can be called as a subroutine, it must" y z0 c# h1 z
- ;;; be loaded first. It is up to the calling application to" A+ }# w Y: e4 l# |
- ;;; first determine this, and load it if necessary.; N: q; E4 R) P
- + o2 l" _2 n& r
- ' `. M2 V+ R7 z0 l7 }2 ?
- (defun ddmodify (ename /
4 f) V9 V$ T% z9 ?& l3 p6 a - 2ndpt ell_calc_area move_pt1 templist
! @7 s1 `9 B2 [) |$ ~: N - add_mdash ell_tile n tempmod
S1 U. S8 ]) D) R. B. @5 D+ a - alipt eltscale name tempst_ang9 E Q* a( |8 b6 S, F- S. I. Q; n
- ang eltype newpoint test_ok: w+ K8 Z( N" w f
- arc_calc emod next text
. F( c0 b# |8 e* z% S- D6 l3 Z - arclen end_ang next_vertex th-value
. {8 r: s% }6 |2 L: o+ o: { - assoclist endpt obl tile
* y; _4 l* A: I+ ~ h* ? - atprompt errchk off tile_rect
) Q2 ` X, A3 ^( b* c: @$ w4 [4 i6 j - attag ethickness old_majrad tilemode1 z* W" K0 u6 r4 l
- attprompt etype old-closed totang! y" {% B# m9 c$ C |1 I3 e
- bit extru old-closedm tstyle
6 V; B7 A4 _4 U9 {* d+ W. A - bit1 fchk old-closedn u4 N! z+ v, B' O, U
- bit-10 first-10-rec old-elist undo_init
" N( _: |! R$ r - bit-11 first-10-time olderr upsd8 J ^. |7 R9 K, Z' b/ K/ h& G& R$ [
- bit2 first-11-rec old-fit v4 W- \$ @( r* e
- bit3 first-11-time old-idx va* P. [4 k& g/ n! T
- bit4 fit oldlist value
; W8 O0 E; k8 R; y - bit70 frozth old-spltype ver_4
3 x$ ]9 c9 B, H6 l- b - bit-70 f-vis old-u ver_ang13 _. d* E* {( M# b! `
- bit75 fx old-v ver_ang2/ U3 ?0 |1 S1 u" @) Y5 s# k
- bk-up get_color on ver_col
0 Z/ C# K2 h8 W7 H - bkwd getcolor onoff ver_colsp& M" ~; t% {" g& o7 Z8 o
- boxlength getindex on-off ver_eangle
9 A! _7 @0 e) O: @" x/ E' z - bylayer_col getlayer patlist ver_hght- d4 ~3 l% r% I! `+ K; [* A3 r7 |
- bylayer_lt getltype pattern ver_majrad+ d9 y' o& ~4 D0 g. |
- calc getthickness pltype ver_obl, d; W. h! i3 @8 j, t# S
- cancel globals polytype ver_pt1
0 Z$ C+ t4 _3 ?1 `" s - cir_calc ha pre ver_pt22 Y- ~9 I: x+ Z @: y7 B) B
- closed ha-prev proplist ver_pt3
$ r, n: _8 g0 B* H# M9 p4 t. H - closedm help_entry pt ver_pt48 i( N: \+ ~: L. V* \2 P# ~
- closedn hght pt1 ver_rad" O4 R: E) t4 F4 A" U% U4 ~
- cmd icvp pt1_eq_pt2 ver_rot& B& L% s2 {. ]3 |5 m# L$ i7 \
- cn image_add_vector pt2 ver_row/ G0 M/ P0 }) I9 x. J$ G
- cname image_clean_variables pt3 ver_rowsp5 C% y1 p" w0 c) w9 p4 m5 N
- cntl-pt-indicator image_cross_product pt4 ver_tag. n! t3 P9 d8 J
- code_71 image_disp_opt ptype ver_u
6 M3 T7 P8 g) Y1 { - col_tile image_dot_product radius ver_v8 m5 o0 C; d4 J0 i1 ]
- col-idx image_normalize_vector rational_spl_flag ver_wid& X$ u! m! X: ~3 j0 h( n6 M
- colname image_rotate_vector reset ver_x1
6 ~1 R/ P5 B5 F! u& O" Q - colnmlst image_scale reset_flag ver_x2
1 I! [+ s% ~, a% z9 D* f8 Y: M - colnolst image_scale_vector reset_lay ver_x3
9 s: ^$ j) {9 {' f" j- I - colnum image_update reset_lt ver_x4
0 `* X5 g) L4 v - color index reset_uv ver_xline_pt17 Q5 J3 @1 u# i' O" M% r+ Z0 {
- colorname inv rot ver_xline_pt2
% [7 ^3 }# ^ Z H2 O - colorno item rows ver_xline_x1
6 f1 h* F& R. L# P1 Y - col-sp item1 row-sp ver_xline_x2
. w6 k7 @6 [* x/ F& c# U! S( L' Z - columns item2 rrat ver_xline_y1. U: L" v+ p: t" {/ f$ b$ C
- con itemlist s ver_xline_y2
8 f9 ~2 V0 p' B9 J2 I0 p" o) z+ Q& T - coord jlist set_action_tiles ver_xline_z1/ v4 ?# w& a8 o+ a k/ W
- ctr jlist_act set_just_idx ver_xline_z2
, _7 J( B7 W# T& I3 P - cur-10-rec just-idx set_tile_bk-up ver_xscl
* a$ N. ^; |& G- S: v( Y: } - cur-11-rec layedit_act set_tile_cntl_pt ver_y1
6 X, z- O: o5 N; i9 _3 |) Q - cvpname lay-idx set_tile_data_pt ver_y2
O7 }1 c4 U; o1 {( u1 J - dash layinfo set_tile_dirv ver_y3( Z2 O- {6 G7 j z9 Y! S
- dashdata laylist set_tile_edges ver_y4
# t% Q$ T/ s( Y a4 O - dashlist laylist_act set_tile_endang ver_yscl. f Q+ S E9 I+ O2 f2 O6 G( L
- dashsize layname set_tile_hght ver_z1
. G+ C& F7 [1 K+ h' h1 Y, h - data-pt-indicator laynmlst set_tile_icvp ver_z2$ o+ ^" |) n1 G0 |% J
- dcl_id layvalue set_tile_just ver_z3
" X+ f5 q9 \: l: y+ v - dd3dface line_calc set_tile_obl ver_zscl
Z% _5 L$ f5 L1 ~$ h - dd3dsolid linetype set_tile_prompt verify_a# ]: h* S$ U" f4 U$ L- H6 ?
- ddarc list1 set_tile_props verify_d
9 t: @7 X A0 l, M. w) s - ddblock longlist set_tile_pt1 verify_i3 V# ]; p q9 z/ ?! |# A7 l
- ddbody ltabstr set_tile_pt2 verify_xline& \# L1 o- m1 [( [$ p( L! B& k
- ddcircle ltedit_act set_tile_pt3 vfy
6 X1 X& w8 g& O* q1 l- c - ddellipse ltidx set_tile_pt4 vi w) X3 S4 `& S
- ddgetprompt lt-idx set_tile_rad vlist& ]2 m7 {* R) n: t
- ddgettext ltlist set_tile_rc vname! R _* I( |" {' |' c( o+ M- V
- ddimage ltlist_act set_tile_rot vpf
' @, g& ~! P; S' L - ddimen ltlist1 set_tile_scale vpid- ~2 L1 c' X5 z( s0 K4 M _" f
- ddleader ltname set_tile_spline_props vpldata$ j! v! A: c7 m4 s2 M# u
- ddline ltnmlst set_tile_stang vpn
1 n2 P( @! z5 U y x# [" K - ddlist ltvalue set_tile_style vpt
. A' E. K# L7 | - ddmline ltype set_tile_tag which_tiles
$ U2 d8 w9 d% p5 |' N# t0 O' } - ddmodify_err m set_tile_text wid* X2 ~2 ^* J& t* j& E9 [ H# g B
- ddmtext majrad set_tile_vpt x
/ }* G6 s% X! Z$ U - ddpline make_lay_lists set_tile_wid x1' f( A3 F; u' ]! L2 k6 x
- ddpoint make_lt_lists set_tile_xline_pt1 x29 ~- h/ C1 t0 u
- ddray mdashlist set_tile_xline_pt2 x3
0 W$ Z; x# S. @/ i0 O. T5 t( l0 U3 @* z - ddregion minrad setcolor x4
6 R& P9 v- n/ R6 d& C - ddshape modify_3dface shght xdlist3 G( U: L9 D8 c# s4 z7 X* u
- ddsolid modify_3dsolid showpt xline_pt16 P- y8 w# x0 O' j
- ddspline modify_arc size xline_pt2
8 F8 D8 j+ ?" _1 G; ^ - ddtext modify_block slist xline_x13 z; R+ W# ?- g
- ddvport modify_body sname xline_x2
) o& B% l+ l( ~1 ^# m - ddxline modify_circle sortlist xline_y1
8 G) `3 y( L b) r ^( j/ Y - denom modify_ellipse spltype xline_y27 T$ ~! s4 d1 e( T* P; y
- dialog-state modify_image ss xline_z16 g0 P- m1 v% ]' A: t
- dir_pt modify_line st_ang xline_z2
! b6 J2 [# g9 a; Q/ B" j9 [# X' ? - dir_ptx modify_mline stpt xscale
1 S/ `5 I' B2 [- `; p, r, X3 e - dir_pty modify_mtext style_act xx
! H/ x- ~ z# g w( [! d) A# e; r3 ~ - dir_ptz modify_point style-idx y9 }7 V+ [* J6 S4 ^
- dismiss_dialog modify_polyline style-list y18 q. L( i+ O$ L5 Z* t
- drawpattern modify_prop_geom tagval y2; {# O" B& ~& f3 C7 F+ I% U: h
- echo modify_properties temp y35 _( l0 Q) A* |# M
- ecolor modify_ray temp_color y4
" y/ q: G3 O8 K9 Z - edge1 modify_region temp_dir_x yscale8 J4 W0 X3 E# A9 F; m
- edge2 modify_shape temp_dir_y yy1 w7 W# l5 X. S
- edge3 modify_solid temp_dir_z z1
/ D8 F2 W6 g; `9 f - edge4 modify_spline temp_xline_pt1 z25 e8 H4 o; p5 Z% A; Z, T
- edgetest modify_text temp_xline_x1 z3
) D, Y2 R2 v& `# k, p - elayer modify_vport temp_xline_y1 z4
3 D4 r$ Q8 t7 y5 N* n' r - elist modify_xline temp_xline_z1 zscale3 w- ^7 Y5 b) a5 L- u. K5 e/ ]
- ell_calc modlist tempend_eang zz; e$ `6 \6 b' P* _6 \% ?
- dir-idx safe_ddedit ver_MtextWidth xcliponoff
2 B; a( }- f5 o - MText_style
y/ t3 o; h& r! h5 Z/ b - )1 q0 X1 T6 H( U7 f7 A
- ) l8 l1 n1 c" b- G# O
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
8 d6 C! c5 M2 i" {, w- R& c L - old_error *error* ; save current error function
5 e6 k0 X+ o6 Z3 d- _/ j - *error* ai_error ; new error function' \8 K/ o3 Z8 C3 Q- ~! d' ~
- )
4 ~) Q+ }3 x& J4 M
, U) Q# c7 y1 B8 [- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle
. u6 p* L* a9 g1 i - (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection% B9 w6 G. T: e& K8 h4 R) _( N) \7 J, e
- (setvar "pickstyle" new_pickstyle) ; bit and set to new value' `- o+ |2 ^1 ~ j; k
- 0 G9 B4 m$ b4 S* [* {7 [; W& d
- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0) F0 M& Y2 ?& Z6 e, U
- (t 1)))4 ], ?% V2 Z$ L* z8 A
- (cond
% S9 b& [3 v; k) k9 W - ( (not (ai_notrans))) ; Not transparent?. y9 g8 N1 k( U! Y: B" b
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
/ J8 Q; O S4 e( L2 |$ A, ~$ f - ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?8 t% H. L5 R n7 g. K z$ f
- ( (not (setq ename (ddmodify_select)))) ; object to modify?: C5 _( Z D4 w, @& A! e
6 k! l/ c* W! C$ T- (t (ai_undo_push)
5 P8 \4 V: U% x: j, A% S4 y - (ddmodify_init) ; everything okay, proceed.
# i, b3 P7 C# K7 t9 Z - (cond
4 Z! y; F) u0 t t - ((= etype "LEADER")
" j% L( L% K; x( B2 {- x S2 M3 } - (setq help_entry "modify_Leader_dialog")
3 I7 x, A8 [$ S - (ddleader)4 n1 Q# t9 ^$ x+ A
- )& s' R4 i& V9 d& ^# j% U
- ((= etype "ARC")2 m1 F/ U/ }9 k. ]2 ]2 n
- (setq help_entry "modify_Arc_dialog")
8 E) \- ?. W' p9 d8 V& C1 h' H, Y - (ddarc)
4 C( z# g0 \6 p" M- [6 k - )0 F5 e- H* \0 R1 C" s( Y4 e8 G+ w) Q
- ((= etype "ATTDEF")
* r( g3 B' ?2 T$ Q; k) p - (setq help_entry "modify_Attribute_Definition_dialog")! y3 @9 c- U6 x' S
- (ddtext)5 Y' ` E/ N" v8 X; z2 y
- )
8 _4 n6 j: f/ ]7 U! r2 X8 A - ((= etype "CIRCLE")
$ k# k: R1 z$ y2 H* r# [' @/ v* C - (setq help_entry "modify_Circle_dialog")
/ z0 G8 v7 h2 Y% n3 h$ p0 @ - (ddcircle)$ `8 G" c; m0 w5 S
- )% S; `$ b/ \" C0 A' u5 {
- ((= etype "ELLIPSE")
+ d" ~5 `3 x& u# c - (setq help_entry "modify_Ellipse_dialog")
7 q: V) y3 c* Z& g3 n( X& @, U$ i - (ddellipse)3 {- k/ D6 A& X/ r: \/ S# ?
- )
/ v/ K; e7 |; ^- _. @ S" O% P& { - ((= etype "3DSOLID")$ @! S2 t. u& q+ Q1 @$ |
- (setq help_entry "modify_3d_Solid_dialog")
* O, t! z) D" c; x - (dd3dsolid), a4 u% W% q) }6 e6 M
- ) L" L9 b1 s( V2 Z
- ((= etype "BODY")
% T# G, Q6 e, n' a6 R% M - (setq help_entry "modify_Body_dialog")% h; r$ P7 Z/ h( k2 S6 @
- (ddbody)
8 d4 A) g$ m! Q8 @8 z4 E - )
" J8 ^8 d- o2 b2 ]. n; v - ((= etype "REGION")
7 F. o X6 u) F( i. d5 X - (setq help_entry "modify_Region_dialog")/ C; } Z+ r# M+ F7 D! @
- (ddregion)6 W3 I$ `3 g0 g2 ]/ J* c" t# \$ F
- )6 k+ ~3 `. l. w( N0 G N/ O
- ((= etype "HATCH"), N* B! i8 K$ E2 z5 r
- (setq help_entry "modify_Hatch_dialog")7 r9 \! ]0 p! V+ Q
- (ddnewhatch)
7 x7 I# r4 k( Q7 ?" h; a - )
! R3 d) ^/ X& u6 _( N8 u/ p' T - ((= etype "SPLINE")$ H" k3 x9 S) k) Y) g
- (setq help_entry "modify_Spline_dialog")
& v0 a! T0 B, E' D+ F* j - (ddspline)- v! ^8 g# F+ x
- )
1 K8 m' m" I) z$ H/ {* S# b3 O1 s - ((= etype "INSERT") ; see ddblock for help_entry
6 m" _- z/ W4 d/ ? - (ddblock)3 e ^* n/ l$ v" Y5 Z* v9 @
- )
6 K, t# t# W/ j! }, d' Q - ((= etype "LINE")
# U# r% ]9 B! m+ {2 w) Y - (setq help_entry "modify_Line_dialog"). n& F! y# i, W( f- `
- (ddline)' X3 d! n+ T; o, d$ F
- )+ Q. R3 X" j! x% j @9 ]# r9 @+ Y
- ((= etype "MLINE")
+ g+ w$ ]0 G' k- `, ^* `2 u - (setq help_entry "modify_multiLine_dialog")% C" d: ^2 N! ?. {5 X) a) _
- (ddmline)
% J: F$ O1 v- p$ Z, n, c. | - )
$ h# U1 l; c6 p( \- u& F# N - ((= etype "RAY")6 `2 X3 n- O/ h2 `
- (setq help_entry "modify_Ray_dialog"); S2 I$ l1 t" F% I; x
- (ddxline)
$ I2 x5 ?- h# ~2 S; h+ N4 j$ M - )
% Z7 d. v( `1 t. w$ W! j* _. d+ j - ((= etype "XLINE")' t* }8 \+ D' P
- (setq help_entry "modify_Xline_dialog")
- I3 _6 p2 Z. A( E% V/ W - (ddxline)
9 G9 ], G+ _' A- E$ O - )
: X0 x+ c4 B: |$ c, A - ((= etype "POINT")
. Y' L& H( u% t5 G, W* } - (setq help_entry "modify_Point_dialog")
% _1 R3 \$ u ]! h+ a) P# V - (ddpoint)! i" b! y0 _+ e$ s9 P7 Z% }
- )
, g9 r% ?' ?( h - ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))4 @! d1 N: L5 \4 h' A& k
- (setq help_entry "modify_Polyline_dialog")
! k ]" d( S, U - ;; If a 2D pline, check to see if it is planar to the current
! w% h9 n5 _( d3 p7 ` - ;; UCS, reject if not. To see if the pline is parallel,
( g9 t1 k+ L, f) F- Z( ]/ l6 ]9 H3 V - ;; the 210 group (WCS) is added to the current UCS origin (WCS)9 W4 m* q0 c+ V* F( h+ B2 M
- ;; and then converted to the current UCS and checked to see if# I# d! \# E4 v3 n7 T$ c, m
- ;; it is equal to (0,0,1).
* U& I: A7 h4 J: s2 W6 c. x
' Z% C8 q4 O2 i- ;; Incase the 210 is default and not in the dxf list.' @3 q* K' E) H" k+ Z: k
- (if (= (assoc 210 (entget ename)) nil), f& ?$ N( ^. k$ b# ], f
- (ddpline)# e2 z! c# o5 k; R/ B
- (progn# T. B; d6 H7 l; Q3 I
- (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))6 Y# }/ O" @2 e5 t! y: I
- (not (equal '(0.0 0.0 1.0)
7 |) {$ }, w# i* i! \8 Q - (trans (mapcar '++ `" h1 `( m+ F1 M
- (cdr (assoc 210 (entget ename)))2 a& Q f% |8 ^; X
- (trans '(0.0 0.0 0.0) 1 0)
: j5 e; c/ q; X+ g# N, s- G7 \1 R - )2 L8 r0 Q; j7 S% i
- 0 1* B! w, j0 C0 g6 h2 t
- )
6 l" B5 e! ^& m5 N7 n* l' d - 0.0000000001 ; fuzz7 o( U( W& f q' T5 q( ^
- )7 E3 o" S W$ F$ _6 v) Z! Y% I
- )5 F+ M# ]8 [: |, h
- )2 x9 k# z, L$ ]& t* Z& I Q
- (princ "\nThe 2D Polyline is not parallel to the current UCS.")0 Y3 O0 K: M" e$ N& U! o; T
- (ddpline)! K! _& S( a" `; S7 P8 o
- )
$ ?9 I( O8 a& e) N: N: Z# o. } - )
7 b* m, {) x0 d( H# s) x& m - )- g/ a! _, h+ F' ]
- )
/ f9 F8 C$ Y9 o% f: U0 G# j
+ j* H6 M& m5 r O- ((= etype "SHAPE")
; X7 o6 V! T8 K t& Z - (setq help_entry "modify_Shape_dialog"): k* h( S, j% h: E/ f, W
- (ddshape)
" N+ V8 r3 A w: b0 t9 u& c6 P8 M - )' r- D: e: Z9 W% b6 A/ [: Y
- ((= etype "SOLID")
) }; C1 |7 a$ D. i* G% D8 \0 y' i - (setq help_entry "modify_Solid_dialog")
' t, r8 D/ M }+ K c# P - (ddsolid)2 k& ^0 ^2 [6 j, x7 a, v+ {
- )
! t1 } Y9 {6 g' S# M - ((= etype "TEXT")) t" V4 O Y3 C
- (setq help_entry "modify_Text_dialog")
, L( R$ U( b) p2 T( H - (ddtext)
2 ^5 }0 _7 P, e9 R y0 x9 R - )
% ?5 O' b9 ~3 G9 U+ N# c; y - ((= etype "MTEXT")
1 u. e5 O+ ]# W/ t: q+ s/ F/ s/ J8 L4 N - (setq help_entry "modify_MText_dialog")
9 p0 D/ s% q( l# y& O6 X) z - (ddmtext)) t J& `" ?/ |- ?
- )
) l0 E5 n" F% b# U5 q - ((= etype "TRACE"); B# e4 C' X w. @8 ]4 B1 A0 G7 e
- (setq help_entry "modify_Trace_dialog")( S; K# W( P4 g" N
- (ddsolid)2 q# n; p B+ `; X7 C. S' Z0 H% o
- )- { S+ Z9 A# Y% t( d: `
- ((= etype "VIEWPORT")
2 W% V' b! c1 f8 k+ N: A. _ - (setq help_entry "modify_Viewport_dialog")
9 H5 D" M* x V' a6 J& B( t4 L - (ddvport)
% T! U0 ?# A' ]/ M& t - )
$ `& _; B9 p) U% r$ G( m8 n% \! @ - ((= etype "IMAGE")
; e5 z4 m! K9 Y9 I/ ` - (setq help_entry "modify_Image_dialog")
1 ^/ n1 Q# h4 H - (ddimage)
* V5 x' r) ` r( ~# z/ F" _! V" b - )
1 K; }0 r; ?$ W - ((= etype "3DFACE")) ?! i9 T/ A; Y& O6 w7 M; {
- (setq help_entry "modify_3D_Face_dialog")
9 k' B4 j/ W5 T, V - (dd3dface)
( k$ }. I' [0 l/ b8 ]2 F' Q6 Q3 ] - )
, `7 D& e8 k: T) d. G - ((= etype "DIMENSION")
" q; |7 n* l0 j* ^# q6 h - (setq help_entry "modify_Dimension_dialog"), y( d: `$ c: R0 L$ M
- (ddimen)) H$ y5 b$ k! r* a- Z' ~0 L
- )' r& w; ~: b( e7 S; A
- ((= etype "TOLERANCE")
9 k2 z1 b/ j/ F5 W0 {$ b4 f - (setq help_entry "modify_Tolerance_dialog")! }7 |3 I; q" C# X# D7 c7 t
- (ddtolerance)0 y- G5 L! M5 a! j- a7 _
- )
; X3 f% B# Q: c; L - ;; Fall-through condition changed by MCAD for MDT 1.1 release.
: t. L- n9 f$ E6 p$ z7 l - ;; This allows DDMODIFY to work on any custom object or any new object type
1 h, v8 G; Y, U+ `) n' ?) j6 H - ;; that isn't specifically handled above by calling the more generic DDCHPROP.4 v7 u l7 I% t, c" p2 a; `8 V' A
- (t! P4 D, z: f5 C: v" z. X- K
- (if (and (not ddchprop) (not (load "ddchprop" nil)))! W% ?) X' q0 f( T0 [- t! R
- (princ (strcat "No dialog support for object type: " etype ".")))
) D; X f$ E: Y* u% f3 { - (progn
: ^' R& a- s: N2 f - (setq tempss (ssadd ename))
% [* ^8 E0 D' I* S# V - (ddchprop tempss)
& l6 i( Y# }0 |8 ~* @ - (setq tempss nil) {( @9 z; j: t
- )
& J- c" n% r; |# x2 o, ^0 [ - )
) a! r& p) M7 k8 q! X - )% F; a! N" c& G7 {6 l; U
- ;; Previous fall-through condition.
# p, A; m7 H% o - ;; (t (princ (strcat "No dialog support for object type: "
( ^' q+ U8 n' o - ;; etype "."
0 V( w* X \% |8 _- r: @: | - ;; )
9 l x( r n5 F D; ?. @+ u. V - ;; )/ P6 ~9 }1 {5 _3 b
- ;; )
0 f% E6 Z( ~9 i: i% X - ;; )
) D7 Q, i C- p7 i - (ai_undo_pop)% m- @* D8 L- ]: E9 Z, d% z
- )
6 j. e) y0 `! l6 v* ? - )
+ T. s9 _9 p+ z% q9 s
1 h& C6 x: p6 a2 h" {2 L4 a- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle+ e0 }/ o( x# i+ t3 ?
- (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back
2 p* G! a1 M" G& M - ) ; to what we started with5 u1 N1 T$ I& h) ?' O- W
- ; _( R2 e4 D6 {" h# [# N
- (setq *error* old_error)1 B1 B, _ a6 \
- (setvar "cmdecho" old_cmd) u v9 S) K4 s) H2 [
- (if (not reset_flag) ; if object was modified, then& H1 V. E1 j3 p& |
- (ai_return ename) ; return it's ename to caller; B; w' W1 L! g. ~7 k, Y
- )
7 {: K' J0 S D - )
. E/ g, }1 U. M" F - 9 |, v/ K0 Q; L3 ~6 c
- (defun checkForLockedLayer (ename)
1 l4 n8 v T3 I) i! V - (setq layername (cdr (assoc 8 (cdr (entget ename)))))! C' B9 [% n g7 G- n. V, M5 ^' A
- (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))+ H4 N. k v. l' H
- (if (= layerflag 4)+ t" @0 `3 e) L4 K
- T
( K3 H$ e1 K/ R4 t& P0 @# \, D - nil
, P: O- |2 h, ^2 T( p- G, { - )* p" v' H% N6 @& o3 a. B
- )
$ l2 S' }0 C9 U9 v - 9 H! j5 Z5 k# E
- (princ " DDMODIFY loaded. ")% [. q& Q) K9 h7 e/ ]
- (princ)! F0 _. P6 G$ z; C
- ;;;???;;;---------------------------------------------------------------------------------------
. A/ K) }; [% g* W: q4 ?+ x - ( R2 K9 T7 ^1 Y3 ~, B% ~2 z
- ; Next available MSG number is 8 % P6 u5 r# D- K( K
- ; MODULE_ID DDUCSP_LSP_
& M4 O9 K' ~' g - ;;;1 W* \: D- ^- J' R& W. J' y# y
- ;;; dducsp.lsp
! A7 h3 S \3 C# O% g9 |3 p - ;;;8 [& z. R/ ~$ L! T7 W+ `: j8 Q* ? f
- ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.8 i/ o; M% B5 _ [+ J# C
- ;;;1 d4 f, e7 T% O; F
- ;;; Permission to use, copy, modify, and distribute this software- q4 }# @' E5 D9 p) C j# P
- ;;; for any purpose and without fee is hereby granted, provided
8 G0 H+ _' v$ U, ]; ` - ;;; that the above copyright notice appears in all copies and
' ~# r+ b/ |6 V# a! y - ;;; that both that copyright notice and the limited warranty and# P" L: [' G6 D5 |4 o
- ;;; restricted rights notice below appear in all supporting
L) Y& }7 n( [" U - ;;; documentation.
+ } a' I; ?, ^- G1 y% M - ;;;3 c2 x/ q s5 W$ Z5 \! s( L
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
. C- |; L& J1 z: ^$ E5 H( u3 s - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF& P+ Y* W- A" u, k) j8 q# R
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.9 ^- f! W8 Q/ J: R( v
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE; n) [( I1 R8 {/ P) _! W& h
- ;;; UNINTERRUPTED OR ERROR FREE.
3 D3 y# ^& l. f( c - ;;; X; m+ P/ k0 a# X3 e8 Z X
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
& y+ ~0 v( Q4 d# Y - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer+ Y7 I. d( D! j/ w5 t
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) 1 }8 C N7 b; B' Y% `" B# x
- ;;; (Rights in Technical Data and Computer Software), as applicable.
! R( q; w$ D5 J3 |1 [5 f8 f - ;;;# l% Y4 }- a3 X. \' g- n7 a
- ;;;.
2 A: A! Q5 o: n# b - ;;; C:DDUCSP - User Coordinate System presets dialogue.5 I* ~# U2 I, F
- ;;;
+ Q; |& k% f0 G" ~" W - ;;; Uses DDUCSP.DCL for the dialogue definition. The
# k3 g/ T! I1 I+ j+ Y - ;;; slide images are in ACAD.SLB.
$ D9 [3 H. _ ~1 Q4 G9 J; `# Z - ;;;
- r+ C8 l! ^+ B% G9 c. V) B, ^ - ;;; ===========================================================================* t0 U# S, z. Y. F7 G
- ;;; ===================== load-time error checking ============================
0 R, r1 n" ^" @0 K* A - ;;;% `% X+ \' W# G9 l
- . o) o0 N) q/ [' M/ r) h1 x
- (defun ai_abort (app msg)
}: f+ H0 S/ n - (defun *error* (s)
6 K! T% d+ `) A9 B- P. s3 ? - (if old_error (setq *error* old_error))
9 W: ?, V G- `" [" V0 {. F6 O - (princ)
+ ]4 H5 S* q# I! z& q - )
2 j# i* q. f! @ - (if msg$ v0 K. {9 E8 W3 v1 T
- (alert (strcat " Application error: "5 |2 N! e/ i+ n7 L- [$ A
- app
% A! v3 w$ @% B2 _/ N8 ^7 m; x - " \n\n "% B* t, I. ?' g8 ~5 U
- msg
7 _$ R* x9 Z2 ^ - " \n"+ `) c5 ]" ?( D/ [* y9 N
- )
9 A7 y F _; ?) J - )2 D3 [4 D8 _' [$ ?
- )
# Z7 K7 i9 T% O" G4 } - (exit)5 W7 [+ t1 R* T1 x8 r2 N; N( A
- )
# ?2 }, a% k7 A) H
6 |4 q; S5 F6 q6 @9 ]! ~- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
( z3 h" F3 D% q* d1 P - ;;; and then try to load it.3 e" ^+ @$ H+ @: e' b+ a& ^# T8 q1 |
- ;;;
: }) w2 x; u5 z( S7 k3 q - ;;; If it can't be found or it can't be loaded, then abort the
. S, u" j# d/ T( }( R e! g - ;;; loading of this file immediately, preserving the (autoload): `% R- y' `% A) Z
- ;;; stub function.
; _& s) {+ y+ v6 E - 9 {- A- T* {! u* G
- (cond( y, V4 b2 z5 T o! m, Z5 P# \6 t
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded. k* h8 V) R+ e7 C# D
9 M) P! K, ^: W- ( (not (findfile "ai_utils.lsp")) ; find it- ]* ~5 A5 v' O/ u$ S
- (ai_abort "DDUCSP"
; u0 f. d1 q) R& |+ D6 ~& R8 T8 @ - (strcat "Can't locate file AI_UTILS.LSP."9 S/ B! {- |+ s! B4 i: H
- "\n Check support directory.")))
: O: s- q" |1 e( R' J0 d0 B - - j2 b4 d" L4 m, Y3 b3 y( y
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
7 {6 g, ?/ S, t9 F1 Q# C. O) p$ |* h1 s( M - (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))" j6 y* P: n7 d* @0 j& ^
- )
; ^# {* W7 d0 s( {* M6 F - # k. `0 T, \6 T/ Q* [( _# h
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP$ Q3 u# a6 k$ M8 m
- (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses
5 l$ q7 [. G: k7 w+ f, Z - ) ; ai_abort's alert box dialog. }% R- I7 w9 r( H, X
4 N2 E' o) v) c" v+ F, Z- ;;; ==================== end load-time operations ===========================
& }( p7 y3 D2 [
9 g$ ?0 V- d c) g6 H7 J1 g- (defun ai_ucsp_start ( / program)
+ x1 N- A# t% b4 _; L9 B O - ;; Get program name. l: k/ m7 h8 \: h6 @
- (if (not (setq program (getvar "program")))3 }4 }! c, a1 c4 [" u
- (setq program "acad")
" K, w* n+ I2 J/ F3 E6 H - )3 ?/ ]5 t8 b& n/ G9 ]
- (foreach v0 '("world" "left" "cview" "top" "front"
( ]. F# d4 Y' G( N# E. \ - "bottom" "back" "right" "prev")
. Y. U7 P0 X) a* k( {* E+ k - (start_image (strcat "ucsp_" v0))
' Q$ t- p4 R4 f) t3 a, u - (slide_image r) m& Y5 [( z( k% s7 D
- 0 0
8 ^4 D! O3 R1 b: d, r) e7 }8 i - (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1); G- Q% @. j" b6 d
- (strcat program "(u-" v0 ")")( Z1 J; [7 b: E) `
- )
5 {% D$ O* O; S - (end_image)
" U0 L: T& ~' C - )1 E/ Q: o$ [# \* X9 L1 N7 r
- )
) S9 O' N& K; \; G+ W+ [, [ - ' O; s& P/ \3 X1 C
- (defun ai_ucsp_set ()* B$ ]" k. A1 Q& |6 a A9 N+ w) N
- (if ai_ucsp_sv
: @$ B8 z" @3 Q6 k" i8 _+ h - (command "_.UCS" "_V")8 G! \ G4 z; ^" I0 U7 p% Q
- (if ai_ucsp_prevs
* o. R3 z' W" a' ` - (command "_.UCS" "_P")
+ p, F \$ i( h' X - (if ai_ucsp_chg
5 ]8 E: t" V) s/ {' g$ m - (progn
3 [( U' p, p" J8 n- E - (if (/= ai_ucsp_a "*")7 R- d& n# r' h! s8 S% I. r8 x' ~
- (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))" e K; U* \2 f0 B8 k9 B5 D/ {0 r
- )
! b" q: R; C4 ? - (if (< ai_ucsp_pick 6)
9 k! ]! g2 o" A! ^" W0 ] - (setq ai_ucsp_set0 "@")+ T, c* x5 @% b
- (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*")0 u' v1 g5 X5 R/ y8 S+ P
- )3 c4 p9 C2 m. p' M5 J6 ^: R% W4 i
- (cond ((= ai_ucsp_pick 0)
" p5 e7 ^; m/ G" K- ]4 t - (setq ai_ucsp_set1 "0,-1,0"" ^1 a" s. p2 _( c& p
- ai_ucsp_set2 "0,0,1"6 [) E( y; z, a$ O. p
- )
$ T3 p2 R: K0 d3 z$ P - )
! S' k5 q0 Q! G& u- [* R0 a9 { - ((= ai_ucsp_pick 2)
# [1 q; \+ |4 w8 ^; C$ f - (setq ai_ucsp_set1 "1,0,0"+ E+ Y) f/ S: D) J
- ai_ucsp_set2 "0,0,1"9 X* o" O' e: \3 y2 Z. o( c
- )7 u% p6 h* s1 y
- )
- p; i8 @- d6 `- m, d9 L8 y - ((= ai_ucsp_pick 3)
# ]% l. r/ {4 u. q - (setq ai_ucsp_set1 "1,0,0". x* g3 K9 D) S" R6 O' H
- ai_ucsp_set2 "0,-1,0"
5 t) a4 _& ]2 `9 e0 C3 j: \( q - )3 |% g1 J( }- m, V
- )9 S9 W: [0 L' G+ T
- ((= ai_ucsp_pick 4)* z4 M( k6 l5 H9 P) S
- (setq ai_ucsp_set1 "-1,0,0"
$ [' l+ E. s2 Y0 Z+ Z2 ? - ai_ucsp_set2 "0,0,1"$ o8 P, g& F9 Y* l! ^8 g$ h
- )9 f u5 Z; @ @! u: {- @: p
- )
& E- H. i- `8 ~ - ((= ai_ucsp_pick 5)
4 @- O2 }! D+ `' O4 Q1 O$ y5 { - (setq ai_ucsp_set1 "0,1,0"
' C" j* m4 f8 b% C - ai_ucsp_set2 "0,0,1"( k. S& h2 Q2 Q6 X( A5 z! W
- )( D: k9 @; J( k
- )6 c1 Y5 F6 I; p' D
- (T
& O7 |$ w" P! i; q7 i - (setq ai_ucsp_set1 "1,0,0"' _/ |& e7 l8 Y. k F: N
- ai_ucsp_set2 "0,1,0"4 c' L' F; t) Z9 C: W- q3 v
- )* f. o( i6 t9 e/ X% E' l, p
- )) A: c1 y5 ~+ [1 n
- )
/ o% _- G* P& I6 n- @0 f - (command "_.UCS" "_3P" ai_ucsp_set0 i" Q8 f* Q) ?
- (strcat ai_ucsp_a ai_ucsp_set1)
3 w7 W- m4 p% Q. Z! v - (strcat ai_ucsp_a ai_ucsp_set2)( u' B6 G0 r- t+ Z. A
- ) ! e O- _: x. @
- )
2 `* I1 o% Y/ k9 y3 d% K - )1 d9 V( e% {; b: ~. S; [3 A+ H
- )# S" t8 K; n8 v Z, x
- )& \2 u: ]% I/ m5 p Q% Q
- )0 B$ e8 T9 e* {
- 0 O3 \( B% o3 P5 {& |# D1 n9 K
- (defun ai_ucsp_p (val currtile)% h( I4 {# S' ]* F8 c; Y8 [0 U
- (mode_tile ai_ucsp_currtile 4)6 b. h9 G7 q, i: s. m- O4 _3 e
- (setq ai_ucsp_pick val( \/ {; t9 b2 n) ^# x6 G
- ai_ucsp_sv nil1 E3 _& ^6 A9 j+ P0 a z f7 `
- ai_ucsp_currtile currtile! M- c/ K4 Y/ Z1 A- l7 ^) s5 m
- )- z' h% [$ ~" r/ k
- (if (/= val 1); e7 y! M7 n, e* i' c
- (setq ai_ucsp_chg T)
9 z) b. t3 s% ^1 d% h6 M$ w - )
+ m7 H/ m. j. ?. z! t1 D - (mode_tile ai_ucsp_currtile 4)
% _8 d* @' @* t8 v& W9 _ - )% G5 g" O& }7 S5 g0 d/ _* k
- 7 u# G) H2 q5 s
- (defun ai_ucsp_swcs ()
' B8 I3 X6 D$ C* p - (mode_tile ai_ucsp_currtile 4)& ~' r: b' j3 ?* ~" g
- (set_tile "ucsp_a_wcs" "1")/ \# {: J8 S% O/ w Y) Z
- (setq ai_ucsp_pick 6( u- t+ N: a- Y( B
- ai_ucsp_sv nil. r' O. y! t' A6 ~& j* s
- ai_ucsp_currtile "ucsp_world"# j9 B# E* t0 n2 d5 z
- )
% R% \( [5 T' t7 E - (if (/= 1 (getvar "WORLDUCS"))
4 K7 i$ s$ \2 w5 `$ g( _ - (setq ai_ucsp_chg T)
+ `" @& Y# r2 ~4 P( B5 @. @ - (setq ai_ucsp_chg nil)
. Y3 x& r% _$ s( h Y c) { - )/ |% D0 Z A5 \8 Q$ H% @
- (mode_tile ai_ucsp_currtile 4)0 x8 W. c% ^ {5 P1 Y" u
- )+ J" c' a7 N$ z6 M' z9 p
: ]1 v% f& t/ J0 l6 f- (defun ai_ucsp_cview ()1 {5 t5 i, n5 _% P! S
- (mode_tile ai_ucsp_currtile 4)
/ v0 h8 U( A( } G% C - (setq ai_ucsp_sv T
1 A. y" J- G2 c9 C' v - ai_ucsp_chg nil7 A2 _2 i1 t' c1 K' ?# M5 Y' X
- ai_ucsp_currtile "ucsp_cview"
3 w/ M3 c; x9 X; N - )
' _. e1 c. l* u/ R - (set_tile "ucsp_a_wcs" "1")1 ~3 `' ]! P, Y" o
- (mode_tile ai_ucsp_currtile 4)
# y. x. V; h. F; `% B5 T - )
2 H3 R) q% g: L( S
% P* {6 Y! Y( f8 Z. t- (defun ai_ucsp_rucs (typ)
5 L6 m' M! G7 z1 H) h - (setq ai_ucsp_a typ). G1 Z: Z( S9 Q" E# n
- (mode_tile ai_ucsp_currtile 2)& v: r. F [: ]
- )
0 ~, q- G' H9 X# X) j
}7 P, X- X7 f4 Q- [# p( M" ~8 i- (defun ai_ucsp_prev ()
8 e Q! U: `( |% i" ?, j - (mode_tile ai_ucsp_currtile 4)
/ V- o: H% u4 a P; D" T8 Y - (setq ai_ucsp_prevs T/ x5 K6 g4 l8 ~8 h3 t; \
- ai_ucsp_currtile "ucsp_prev"/ X' W* r! Q0 Z; K* ?
- )* M$ P6 [7 t1 g* N
- (mode_tile ai_ucsp_currtile 4)- B3 P" w! j/ u% T
- )
. g) l+ u- O$ d - + p9 e, Y6 v3 f2 N6 `, _: n6 s
- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals). \) p, w6 }* m7 o4 p/ |, E
- (if (not (new_dialog "dducsp" dcl_id))# C- q$ J) T5 J9 d& T+ a6 o
- (exit)! ^/ A" R8 w; M6 F5 J* b# V$ _
- )
+ U5 e! B3 k& h
" L& f* g" f4 D- (ai_ucsp_start)
6 H; W6 i3 }7 F: |) W - (setq ai_ucsp_a "@"
0 t3 l% Z2 s0 v% P! B; j" o0 ? - ai_ucsp_pick 2
* q# p3 L; G2 i& e - ai_ucsp_currtile "ucsp_top"
) @8 }5 O5 [+ J2 s" M* a! X - ); B" F1 o; B% ~; a( G/ f
- (if (= 1 (getvar "WORLDUCS"))
& D, f4 |5 w8 ~% }7 B - (progn
/ e8 C p6 k% b2 |7 p0 Q7 h - (set_tile "ucsp_a_wcs" "1")* l2 U9 g' S7 v, y& u5 ~; `
- (setq ai_ucsp_currtile "ucsp_world"); e# r" `2 a% n4 H+ ?
- ), j0 y" o( N" o6 g9 B
- (set_tile "ucsp_r_ucs" "1")
$ J: N5 e4 f1 H3 J8 q+ X - )# [6 L# x( L0 d5 d' k, J
- (mode_tile ai_ucsp_currtile 2)$ s. Q+ Y0 \, S9 k& V
- (mode_tile ai_ucsp_currtile 4)
+ F! w# e0 a3 s0 y3 h) N - (action_tile "ucsp_world" "(ai_ucsp_swcs)")( I& W5 P1 D- v- }+ G$ Q
- (action_tile "ucsp_cview" "(ai_ucsp_cview)")1 u" p$ d' ~3 F) [
- (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")) j: D% M9 G, \/ M c( @) U
- (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")
! i; n, M( C5 E0 p( c( U - (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")
+ Y7 O+ Z/ |1 b9 x6 k0 W - (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")
/ c5 G! O8 V9 C9 |* x" x - (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")
! _; E9 F# L a - (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")8 U" `) N1 r+ k2 ?0 Y( ?
- (action_tile "ucsp_prev" "(ai_ucsp_prev)")$ d' C$ R& T. `% S5 |
- (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")
: G6 M2 F& V) C! L - (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")9 c2 i8 W. y* H( h9 P
- (action_tile "accept" "(done_dialog 1)")
+ P7 N6 Q1 T2 D+ ]$ m8 h: I - (action_tile "cancel" "(done_dialog 0)"), [ o- ?5 E" Z7 p( G0 j$ U
- (action_tile "help" "(help \"\" \"DDUCSP\")"). O# C3 A9 y8 P: n2 Q
- (if (= (start_dialog) 1)4 _9 z5 P0 I! E' R+ N/ Q! X0 ~9 e+ e2 R
- (ai_ucsp_set)9 k& p5 [+ C9 F0 b7 u- e1 D% U: U2 Z: E
- )
) o/ r2 U7 s! E6 j j - )
" t! b- a/ g; x4 w9 S
" j; k' i+ J! w0 G1 P- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs 7 A' H1 G% L+ h% G
- ai_ucsp_sw undo_init)" n& o9 m' t# }, h, B
- " K$ P5 }& C3 s) V; j
- ;; Set up error function.: }, d/ T0 ^9 ]! P
- (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho' e9 g" N( {' }$ p( A
- old_error *error* ; save current error function
0 q$ A+ a K0 U/ d9 n, W" }1 H - *error* ai_error ; new error function6 t* B: c, p9 q) w6 @- z
- old_osmode (getvar "OSMODE") ; disable OSNAP for duration' j. y$ H; N* L* Q/ h
- )( o1 i+ \9 m/ v; h( \+ a8 q% P* `
& `& w* G a2 Q: j% X+ l- (setvar "CMDECHO" 0)8 o+ H. _% b8 ~1 m* p4 o
- 6 G3 i7 }* p0 p- j4 i9 c) U
- (cond
& V! s* z* e$ f' U P8 S- P$ V, }5 s - ( (not (ai_notrans))) ; transparent not OK) w: ?- @, X q" I4 S; b! m4 S- L
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?% j0 e4 G# I; Z$ b8 y# ?) z5 \
- ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?
7 n6 p/ `# D2 e& A- I - (T (ai_undo_push)0 `: r* J% z2 H9 y
- (setvar "OSMODE" 0)( Y; E8 L; A) B. @3 l5 v g
- (ai_ucsp_main)5 q. r; ~/ g) ]. ^0 G! S1 a5 E7 u- ]7 e
- (setvar "OSMODE" old_osmode)- ^2 L0 {4 Y( x5 o! {: d3 G
- (ai_undo_pop)
4 ^: K- G/ @# U/ c8 \% }% o - )
! ` u$ U$ @' H. X - )4 H, z) Y) }4 x! a8 l6 {
- 7 n5 t: M2 j6 i7 X. _5 x: X
- (setq *error* old_error)
! ? N4 P4 I9 [. T& l! z* p: x% n - (setvar "cmdecho" old_cmd)
, X, j$ I) ]6 ?3 ~0 t$ Q9 `; e
6 ?9 ~- R Y% _2 V- (princ)8 t5 g, h+ D, I% t6 e( _/ _
- )
$ P4 E; Q4 ?0 c6 f' B
) G* P# r; M3 ]" P) i* @ ?7 f- (princ " DDUCSP loaded. ")
, G8 x. M+ t2 s: o+ }4 m0 c - (princ)! W% f- b/ v+ L3 _. E6 w: c0 j
& [; c! L. D( o! k- ;;;???;;;---------------------------------------------------------------------------------------
% e3 Y z V( S6 u# `3 Q
7 [. O4 E$ l: K+ I3 ~ ~+ g- ;;;----------------------------------------------------------------------------
' Y% {9 X$ a% I, b& i& D - ;;;
9 y5 P+ q. _2 H0 q/ d7 m - ;;; EXCHPROP.LSP
" {& _0 u' ^; A! n - ;;; Polyline and text modification capabilities added by
^* N! ]: F! D4 ~5 k( E - ;;; Randy Kintzley % o w* u( F9 J1 f, d, S
- ;;; 6 Z q3 j8 ^* a3 h1 [( b
- ;;; Copyright (C) 1997 by Autodesk, Inc.
! b2 V `$ }6 P* f+ ?, Z - ;;;- F9 q: Z, o; l6 p7 A% C
- ;;; Permission to use, copy, modify, and distribute this software
3 W5 R# I' i" \# H- n - ;;; for any purpose and without fee is hereby granted, provided
9 K) |8 U1 J5 P1 x+ Z) H; n1 m - ;;; that the above copyright notice appears in all copies and9 `" V, U# L# u4 h. K. D$ x+ m
- ;;; that both that copyright notice and the limited warranty and
! S* Z0 {* J* l) N* M- ^8 ~ - ;;; restricted rights notice below appear in all supporting8 H; H. p, `* ?; [; v I0 a* ^
- ;;; documentation.) L* V- Y; c7 W' h
- ;;;
9 l, D2 P) e! l: `1 J3 u' k - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.1 ?4 Q* S% E7 j. b$ P4 O
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
5 }: P8 R' m% L - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.) S! C0 m7 y" k
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
8 l) ]" J6 l4 M9 C) q; r! g) k - ;;; UNINTERRUPTED OR ERROR FREE.
# q% F" P: L5 L3 @ - ;;;1 t# w, \% Q! V9 M+ |
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to9 R6 [# [) f& d3 u3 D
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer& ~, M: i" z: F: }
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)& f/ E+ R( u- h% c
- ;;; (Rights in Technical Data and Computer Software), as applicable.
3 h. s) \. m4 i' u o* R - ;;;
& z3 I7 i% y8 f& p/ z y4 K4 n' t- ? - ;;;.( w. Q' R9 T w6 k w3 n
- ;;; 28 February 1997/ K/ m m- u; r, Z1 A$ u6 Z
- ;;;5 K3 \5 w) y' Q0 m, F8 {- w9 e" O
- ;;;! C! Z6 j$ q4 @- i. V( X8 c) j; E
- ;;;----------------------------------------------------------------------------" R" \" H$ t+ b: V3 m- L9 `: G' ~
- ;;; DESCRIPTION/ I1 \) i6 ^( H
- ;;;----------------------------------------------------------------------------7 \' { v' g! M
- ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This 7 e( g/ a5 |9 `8 X
- ;;; command gives the user the abilitie to change several characteristics
& d% {! B: q6 c" f7 X( o - ;;; of selected polyline and text objects. 8 p: H, e3 Q3 f: e- z% J9 I
- ;;; The style and height of selectected text objects can be modified ) I: V4 v4 H6 d' m) z$ ~' Z
- ;;; (including text, mtext and attribute definitions) as well as, width and
' Q4 `6 D) \' ^# P+ l& n - ;;; elevation characteristics of selected polylines (includes lightweight and
0 z" g; u/ b: q6 K4 F - ;;; traditional polylines.)
R7 K. Z7 M' }8 `5 r4 D- o - ;;;----------------------------------------------------------------------------
4 F. A( Y. z0 I0 d& z9 V - ;;;----------------------------------------------------------------------------
, o- U8 G' z/ z6 O# e7 J: F- l - ;;; Prefixes in command and keyword strings:+ I! [3 Q6 |: e. {0 ?' @2 D7 ^
- ;;; "." specifies the built-in AutoCAD command in case it has been
, Z( x. r% K8 h1 s2 U - ;;; redefined.
$ S0 L& u2 z8 |; ]9 D2 s7 ] - ;;; "_" denotes an AutoCAD command or keyword in the native language
1 J ]- N( o0 Q" _6 X K! t - ;;; version, English.
# L) ^* u- J" [. d - ;;;----------------------------------------------------------------------------
0 L6 Z# f! }7 V5 R' G - ;;;
_- L: k/ Z" m2 Y' Z/ N7 h! w - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2 u8 P a7 F: T; A - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;$ r% n, u: e/ A/ F% X, m( x9 W
- ;Functions created as result of loading file: exchprop.lsp( P1 `$ a1 R/ t4 j
- ; DDCHPROP2) K% o$ n; G6 P/ X+ i
- ; DDCHPROP2_INIT8 l [* Y( p2 e+ s+ U% Y5 I6 U, y
- ; DDCHPROP2_SELECT1 ?, G3 c* U8 t( t) L# ~. f: w% p
- ;; b1 ^* }% `. `2 x' z$ x7 o+ T# o# K
- ;Variables created as result of loading file: exchprop.lsp
) j0 k. v7 ]! z6 x) t2 u - ; OLD_ALLOC
: p, F' ^" F( D6 h {3 Q% w* | - ;
+ q* M2 [! B5 A4 Z: n - ;Functions created as a result of executing the commands in: exchprop.lsp
1 k; |4 [& Z' u& q - ;: ~/ D% Q7 v' v0 G2 V# D
- ;Variables created as a result of executing the commands in: exchprop.lsp5 P- Q( n( {7 E
- ; AI_SELTYPE9 V/ T" a( e! o- e
- ; BONUS_ALIVE6 K. R# J6 U% G9 |% ~" \
- ; BONUS_OLD_ERROR% ]$ Q j+ X4 _ W3 R( y
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7 P2 L' p% s0 h: b3 T+ _3 N0 G- a* l+ m
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;( x: {4 S; o8 B6 q
- 4 O$ a* N3 o& N( C9 K
- ;;;
$ g5 G4 T/ i# b' {, a5 i* e - ;;; Avoid (gc)s on load to improve load time.
$ k% S( k1 J2 S+ ]' P! K" p' w - ;;;. |# A; X& n# Q" t+ C- ^; z- s1 Q
- (defun do_alloc (/ old_allod new_alloc)
5 N5 X1 e) j7 A" [3 t8 l - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))9 [1 ]) p4 c+ |0 O4 {! M
- (expand (1+ (/ 4750 new_alloc)))! @% j$ t" J7 F) K( z; C
- (alloc old_alloc), G( Z7 N1 V, @; d6 e# p
- );defun
7 X0 z8 u b0 Q4 ?) H4 R( F( q - & ]' N2 F" b: x# h' F
- ;runs at load time - rk& B3 v, [# @; y
- (do_alloc)) X% F. b1 Q- Z1 x: h
- (setq do_alloc nil)
7 J: Y5 S X6 P - ;;;
7 L# Y3 r g Q( }2 c& @4 c - ;;; ===========================================================================3 X1 x6 _5 A1 N) n: F @
- ;;; ===================== load-time error checking ============================
E$ F3 a; C5 ^! H- U3 M - ;;;
9 P2 e# E: Q) m4 u
7 i% m" k4 o( V+ v* z- (defun ai_abort (app msg) 2 z4 g* N K) H
- (defun *error* (s)
# ]* p3 ]0 [6 ~. R! w! b2 | - (if old_error (setq *error* old_error)), g( F% z8 v9 V1 C
- (princ)
+ r5 B+ B3 a$ p1 f - );defun
: w; w* ^- o' n U# B) s - (if msg( s' A9 y2 o0 N! d, c. q4 S
- (alert (strcat " Application error: "
; q3 ]5 r5 Q" C) n) t* m) \# H - app- p% m6 G2 v* _' t! x& E# [& T5 d
- " \n\n "# u( o0 _; n" h( J8 \
- msg$ D" s" u# D% h* g
- " \n"
5 a: H! L/ Z, C" l - )
7 ?! l8 g3 _8 K: `. \ - );alert
" g1 d, A7 K, }2 J8 G - );if
* `7 U) G8 k8 z- t' t5 b - ;(*error* msg)
+ i, K- s; t, x8 C - (exit)1 r9 R3 }% R X
- );defun ai_abort/ W5 c; A* D; h2 z/ \/ G% g
- ( L5 y! E7 _3 R0 c. u
- ;runs at load time - rk5 b' [3 R3 f U& b r
- ;(if (and *error* ;added the if wrapper around this - rk.
+ ~" E( S+ h! ^( p* b1 e7 ] - ; (not old_error)
3 h" K* Z2 T; u6 e5 p% q - ; );and
' q s& T& u, z0 ?2 ^ - ; (setq old_error *error*);setq' f( ~; s) a3 k! K7 _
- ;);if3 O! O9 O6 m. u/ A" g l% I1 x
- ) \ K8 X+ f7 x" K# h4 ]- R0 ~
# D% ^" y* l* N; e5 j( c5 M' T2 n- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
; H; ^; E+ C$ q. y - ;;; and then try to load it.7 [7 ~( m6 Z* X! t
- ;;;( y. ]3 Y0 z* }, I& P; ?
- ;;; If it can't be found or it can't be loaded, then abort the/ d* e: B" w# U6 r0 M9 ~
- ;;; loading of this file immediately, preserving the (autoload)
' @1 b5 a9 |' J1 X - ;;; stub function.
' O6 d" w' ?/ x% C* {9 z" Z' Y2 a - , C4 ]% m# ]0 c4 e. k
- ;runs at load time - rk.7 {! m s. H R; O
- (cond
: {& l0 g9 x6 L/ w1 Q! }% y. X - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
7 V! D: ?: K ^ O V7 z, b - ( (not (findfile "ai_utils.lsp")) ; find it
3 \# J" O$ P4 o: O& R7 D" s9 m - (ai_abort "EXCHPROP"
( L% p: |$ l3 ]7 V s2 J - (strcat "Can't locate file AI_UTILS.LSP."
/ ~3 ~8 ^% `+ g! j# M9 O ^7 k; u - "\n Check support directory.")
" E' F1 W. b2 q* v - );ai_abort8 _3 }' l8 X. O9 u4 N
- ): s) K& N; {" D
- ( (eq "failed" (load "ai_utils" "failed")) ; load it# n+ O" s" l$ l+ I! q
- (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")& Q B3 j. }( g) T& S
- )$ L* h+ f; {2 q
- );cond close" N, x+ H5 `& s I1 }
- $ g3 \1 }3 K1 ]( P" E. g( x
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP0 g: q( V% n# X8 q4 G) x) a z e) n
- (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses
7 D6 I: Z8 j* C+ u6 w. G' t5 | - );if ; ai_abort's alert box dialog.
& V- c4 f) H$ K7 H, c! o - 3 }3 A# R& S; T3 }, ^
- ;;; ==================== end load-time operations ===========================
1 G# P% z" p$ C% j' u+ D
) p5 l: o. \# \0 i" F, ]8 g+ i- ;;; Initialize program subroutines and variables.( j+ X7 y( N7 v7 i: U/ T3 J) @
4 n! F+ `+ S# K' Q8 [2 W6 z- (defun ddchprop2_init()
$ ^! @. P/ D% }
4 H. z; t5 P8 X- 0 M- c. c" F4 b/ X/ F4 J
4 ]' K7 [4 ?! I5 s0 R7 x a% Y- ;; G$ m ^) z H2 o$ x# @* n7 b
- ;; Define buttons and set values in CHPROP dialogue box
2 d: h9 y- }) x - ;;7 C6 d) q" o& Q) P" W0 t- R! @
- (defun call_chp2 (/ cmdact p1 p2)
; ?' H) f5 U! c. h; b
8 B. M% F4 B S6 Y- (if (not (new_dialog "ch_prop" dcl_id)) # x1 [! J0 O" t5 X
- (exit)
( @6 g' Z: Y* v+ V! V. J5 [' v: w - )- I" M3 U2 I2 b3 r6 |4 V0 K) Z
- 2 Q7 q, k Y* r5 ]" Q9 z
- (set_tile "error" "")
3 s$ M$ b( P( m. O& B6 _ - ;; Set initial dialogue tile values+ z+ {! L/ {8 ?+ D9 T
- (set_col_tile)# @- A2 p; e- s( `" _& y
- (set_tile "t_layer" elayer)
k" p' {' x7 q8 S z
, S U( J( J! j$ w# u* c" p% r- (cond
9 j4 i- {% c e" t: `) _ - ((= lt-idx nil)0 H. r0 [: ?+ @9 s
- (set_tile "t_ltype" "Varies")* j0 E+ i6 U8 N3 O
- )
- i v/ F: I" K/ r4 H - ((= lt-idx 0) ; set tile "By layer & layer linetype"/ V" d" L3 \. J) J- u! p' ^6 p
- (set_tile "t_ltype" (bylayer_lt))5 u) `% Y4 Q2 o: W7 c3 H1 W* m5 z
- )2 T; O( e; J! Q8 I; z2 r1 O: ]
- (T* ^' N9 ~9 B7 X+ H4 B- v7 y
- (set_tile "t_ltype" (nth lt-idx ltnmlst))
' b. [0 I, I6 v+ `4 J3 t! ^. u - )
o# _- l+ ]9 A4 L - )
# \, N8 @6 d. O- N. H$ r3 e
: t3 z, c9 z& P( k. Q- (if (or (= ethickness nil)
- D& T+ K" v! \& r. _# e7 `: A4 u - (= ethickness "")
( H0 G+ X' `5 Z! L8 w1 h - (= ethickness "Varies") 4 q( Q! D t3 }' V6 Y0 l
- );or, e, e7 a8 ^1 l, }. _; L% D3 L
- (set_tile "eb_thickness" "")
5 B( o; G2 f+ E8 W4 x - (set_tile "eb_thickness" (ai_rtos ethickness))1 F3 \% B& a, N( G. K
- );if: }8 M3 g+ s. u6 q. R
- (if (or (= eltscale nil)7 v4 ^8 K+ M C/ O' C- x' X
- (= eltscale "")
! Y) K' q3 d& n) T. ? - (= eltscale "Varies")
) ~0 o1 X$ D' u' k a0 o - 2 e( i- e+ l" l
- ); l6 s/ h" k- h9 U' g& F# V
- (set_tile "eb_ltscale" "")2 ~( ^2 \$ o! z) I. F# n( h g: d- D
- (set_tile "eb_ltscale" (ai_rtos eltscale))0 r( \& W# u3 \4 Q# u: _: p
- )
% R+ }+ a3 k/ {* H1 Q) l- h7 p - (if
% Q: `5 f; F3 t4 }- O9 C4 } - (numberp ewidth)
$ P- Z& [; C$ T* p1 ^ - (set_tile "poly_wid" (ai_rtos ewidth))
0 E. n% d& S2 v# p& Q( c& z: y - (set_tile "poly_wid" ewidth)2 @7 i1 H* T: m' [. f/ `
- )
$ |) Z/ Z$ f, E# B - (if% \- n( A( N$ M8 z7 q1 l
- (numberp eelevation)
5 ^; S8 f( D8 ?3 B1 h" Q5 o - (set_tile "poly_elev" (ai_rtos eelevation)); Y. F9 @% ]0 T& n* p( Q
- (set_tile "poly_elev" eelevation)
# g7 e4 g3 q4 |* n( h( \ - )/ N \. B' i; J3 g2 E5 O) r
- (if
. O1 ^ E6 x4 `5 O( a - (numberp eheight)
- x0 h. D" G9 s8 \4 ] - (set_tile "text_hgt" (ai_rtos eheight))
8 V6 y2 P. T/ K! V/ n - (set_tile "text_hgt" eheight)0 G8 q) D9 e9 k% V& P R
- )9 ]7 {) m5 o4 A" L# ?3 j
- (if (not estyle)) _; k9 o" C% }) l" V6 h9 w
- (setq estyle "")
8 T9 E) Q& X5 Z - );if
1 r$ I- j+ ^2 }& s - (setq hair_style_list (tnlist '("style" 16)));setq( r- e# E1 b4 o& c( E% g
- (if (not (member estyle hair_style_list))% s8 G: X% q, x9 r/ W0 N) e
- (setq hair_style_list (append hair_style_list (list estyle)));setq
* w- W* p7 J- c2 w( D# J - );if
$ [ n6 O+ ` B. } - 8 j- r: y7 \+ i3 H/ s4 t
- (setq hair_style_list (acad_strlsort hair_style_list));setq
1 X) _( k2 q/ f: k- \7 ` - (mpoplst "text_style" hair_style_list)1 K3 d4 z, R- r
- (set_tile "text_style"
; a$ P- a) v3 @" U - (itoa (position estyle hair_style_list))
" @" e" T( a& i. I - );set_tile 0 O& s# u3 T" C' Z% F8 k
- 8 D A2 n& N$ @( N5 L
- ;; Disable tiles if need be... ;@RK& Z2 |/ h+ I; r }
- (setq a 0)
( I% u) D/ M* `- Z& e! E( P& P - (while ( < a (sslength ss))! p+ ? J) n- R }6 k
- (setq which_tiles7 O) v5 x1 s% f; r$ O
- (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))
" d# a" o# H9 ?2 x! L, ?3 M - - B9 c( n* A) H5 _
- ;; If all fields are enabled, don't bother checking anymore.* o2 V" e! {: ~5 R
- (if (/= which_tiles (logior 1 2 4 8 16))
' [' O) P- \6 p+ e8 c; v3 \ - (setq a (1+ a))# _. \. _2 g- X7 ]+ f
- (setq a (sslength ss))
/ ]9 K; `: I2 g+ R - )9 Y. I7 }# N3 J/ N5 K3 v1 D- }
- )
+ M' a! r O0 T9 Z) N - ;; Layer Button and Text Field! L' q- k5 x m4 [" k# k
- 4 V' j2 Q- A( \4 p0 k
- (if (/= 1 (logand 1 which_tiles))
0 d: R( a& r+ ]1 k4 {9 C' B: t# J - (progn" q" z) ^8 N4 @0 U% A
- (mode_tile "t_layer" 1)
" l; l) d* J# W ^7 _& U - (mode_tile "b_name" 1)
; L1 b/ p8 f3 R: _1 I. e - )
1 S6 B$ d( K0 K6 l3 ?3 Z# O - )
, k3 e2 Y( V$ e. F. M( |
9 x) G3 z( K$ L9 q* g7 u- ;; Color Button and Text Field. f' J8 X' ]) `0 w# D0 z7 {) q. o" _
- (if (/= 2 (logand 2 which_tiles))- L" E1 h9 K u$ K9 T, a
- (progn6 ], u9 B3 }/ P5 Z8 P
- (mode_tile "t_color" 1). q$ n; M) W- z1 f" Z
- (mode_tile "b_color" 1)) N: X) S5 f$ s6 R& G
- (mode_tile "show_image" 1)( d r$ D# Z. o/ }# T+ a
- )% ~ w0 f! G8 A
- )
( k$ K/ ?" q5 r; m9 ^) k - ;; Linetype Button and Text Field
2 D. q: G/ b6 i9 D$ j; ~4 e u - (if (/= 4 (logand 4 which_tiles))
$ ]; V d. d) n2 @$ q - (progn% O5 l" a: _, A5 @- A, a7 ]+ Q( A$ |2 B
- (mode_tile "t_ltype" 1)
% e4 \1 u/ J- J5 g - (mode_tile "b_line" 1)
6 l. i- y2 n& d* y6 m0 C - )8 Z0 |- [) }% ^# s4 B- E
- )
6 T# v0 i6 D- g4 E! z3 V# k! {7 k/ k6 D - ;; Linetype Scale Edit Field
* b& L. X [& @ - (if (/= 8 (logand 8 which_tiles))
" f( X1 X0 }5 O+ }) g - (progn* } p% G% c" `$ e
- (mode_tile "eb_ltscale" 1)- o3 r N/ X- Y( ^. y
- )( S* p) t+ d8 ?5 O
- ): b) O/ F9 @9 e4 G- I# {
- ;; Thickness Edit Field.
9 x+ h3 G6 n9 J5 U! Q - (if (/= 16 (logand 16 which_tiles))! P \- ^$ [8 l
- (progn1 d$ \8 w* e% l% z' B& \& ^
- (mode_tile "eb_thickness" 1)/ b+ f1 r$ \* m, Z8 N& P
- )# Y7 G# ^# z1 E0 C/ W# c' ]" d( P
- )
$ }7 b4 I$ g- |1 {
1 b" N) I' G3 g- ;; Polyline box and tiles @rk 10:05 AM 1/30/97
0 D* q( k6 Y" c4 w0 H/ ]1 t - (if (not (= 2 (logand 2 eflag)))' i- o7 V' |* \: b
- (progn0 `; e2 {" r r: E& l
- (mode_tile "text_hgt" 1)
( y. @6 r1 k- C7 d - (mode_tile "text_style" 1)" z, n1 W+ ~/ [9 Z1 F' k \) \' N
- );progn, C5 ~/ G$ C( x% @" y5 w. {+ ^
- );if. S8 ~, ~: Z/ |; `, A
- (if (not (= 1 (logand 1 eflag))); }6 r3 i& U K/ [( T( a0 [& ~# Q2 r
- (progn
" c3 H" V! A4 r' D/ t - (mode_tile "poly_wid" 1)
5 g3 J$ M7 W6 w/ n* o, [$ C2 z - (mode_tile "poly_elev" 1)) {- i& A2 g1 N7 @1 _
- );progn then disable polyline fields$ u* {7 c; P7 @1 ` |
- );if
* _6 W4 I" G H1 q! k6 {9 |: E
* g- P& S |# Z' D7 s( ?- ;; Define action for tiles
- `6 H% y- o$ ~* b. t - (action_tile "b_color" "(setq ecolor (getcolor))")( ]) R \+ [) F# h
- (action_tile "show_image" "(setq ecolor (getcolor))")3 O* H0 n9 [0 p" A
- (action_tile "b_name" "(setq elayer (getlayer))")2 j; K# j) Y! k' O$ \( }; f/ i
- (action_tile "b_line" "(setq eltype (getltype))")
* B H( W2 a! b8 E0 Y$ Z - (action_tile "eb_ltscale" "(getscale $value)")) v4 Z( R" l* s1 }- W# E7 p' e
- (action_tile "eb_thickness" "(getthickness $value)")
8 e/ x0 ?2 C$ ]. |+ G0 V - (action_tile "poly_wid" "(getwidth $value)")
7 _) t3 @/ E1 T& b& X1 S - (action_tile "poly_elev" "(getelevation $value)")
# w! m8 X% Q Y% G9 U - (action_tile "text_hgt" "(getheight $value)"); v0 R. i1 Y( n3 l* H5 Y5 P
- (action_tile "text_style" "(getstyle $value hair_style_list)")
( S0 x# }7 M7 B; j - (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")") }5 V5 a2 T* U( f1 O( |% e# J( `
- (action_tile "accept" "(test-main-ok)")
! j, I2 f! D& n( t- M9 o% r
8 ]/ {3 W6 O! K7 H7 ]: F/ p- (if (= (start_dialog) 1)0 H' x) X5 k) T& Y
- (progn
* x9 ~; q, ^- K& \" R7 D- C - ; Update special properties for polyline and text selection-sets.
9 X7 `7 S6 x, V( L S3 A -
$ s* F" Z. Z! Y. g2 S" K- u4 f - (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop
7 q X' j v* R - (or ewidth
( E& l# I9 m& F4 S - eelevation2 v+ t- G/ C5 ?# x; f
- );or
4 y3 \6 m5 x1 e8 N6 ? - );and- H: U: ]. t: r# W
- (progn
1 o2 t0 ?6 f! D - (setq ss-index 0
) j" v$ b% @$ ` - ss-length (sslength poly_ss)) k: ]6 t' a# ~2 l
- );setq! T3 |" x/ g4 W$ C+ f" J/ ?
- (while (< ss-index ss-length)
& U9 j0 S0 g* h7 J* l+ I' M5 v1 ?6 g k - (setq ename (ssname poly_ss ss-index)
- _8 I4 R" z3 j - elist (entget ename)
" U2 a# f( O' `& g' N - );setq
( f8 d1 @7 g3 _ - (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp- q0 x3 a- N0 j+ ?7 M: O
- (if ewidth / t( b) [! l, |4 s: k( Q' P
- (command "_.pedit" ename "_W" ewidth "_x")* E" j9 J) q/ u% t# ~" s
- );if ' z z8 u: e8 d/ z
- (if eelevation
' N0 ? ^2 [6 Y - (progn
& |( X; ^! y8 L" r6 G' @2 T - (setq p2 (list 0.0 0.0 eelevation));setq- c4 V) q& r. y, y( h6 U+ ]
- (if (equal (cdr (assoc 0 elist)) "POLYLINE")1 d$ i. Y7 N/ K4 H6 j f% Z* m! L7 I+ A9 e
- (setq p1 (list 0.0 0.0, l3 b G5 L: o
- (caddr (cdr (assoc 10 elist))): l# ^& X D3 J7 s( U7 w
- );list$ x+ D/ M$ s: i# g
- );setq; O' C+ I' m) n( q% G0 p( O6 B' e5 N
- (progn
) ?4 \5 X" k$ F$ l$ L - (if (assoc 38 elist)+ |. x3 l! H: |0 E
- (setq p1 (list 0.0 0.04 I6 Y: q3 x6 k+ q6 g% ]: V* l7 h5 ^
- (cdr (assoc 38 elist))4 W3 T# _* h8 p: O: v
- );list& a% p4 R" O5 X3 r7 C
- );setq
8 e2 ^- `" i* x5 w6 B! G - (setq p1 '(0.0 0.0 0.0))
! U3 t& _% `& M" _: W, s - );if1 a3 @& _6 W6 }& E
- );progn
, u f: X% Z$ M# M8 `; Y8 H7 c - );if
7 s. b% J$ _ s/ i" X - (command "_.move" ename "" p1 p2)
4 V" G9 ?9 A+ K1 H" ]) } - );progn then change the elevation of the polyline# Q! k% W; ]1 h$ w
- );if- Z( B5 q ^& m' e3 D
- (command "_.ucs" "_p")4 S: R( a1 \/ |
- (setq ss-index (1+ ss-index))
( w! E: e7 Q, x) F/ z6 c7 N - );while
. w# t6 F. b: g( {; A. @3 H8 B; e - );progn then polylines are in the selset* K" J2 q5 A, ?5 ~9 x* I/ G
- );if" D, z' }; Z: o+ x+ ?: X; j
- (if (and (= 2 (logand 2 eflag)) ; text) Y* ? Z0 Y# M) O7 e# O- L
- (or eheight : t, k: ^, ]& }0 C
- estyle
0 Y/ A) m7 f/ G - );or
- H# {; ?2 m2 { - );and! ?$ C2 \% {! n6 t" i6 A
- (progn
/ Z: @' m4 I4 O. v - (setq ss-index 0 ss-length (sslength txt_ss))3 i# H* I/ Q9 J ^
- (while8 h( K2 G" A, d4 ]& p2 E
- (< ss-index ss-length)
- X3 J- @6 S0 p0 K+ u+ ^ - (setq elist (entget (setq ename (ssname txt_ss ss-index))))
0 S' X. ]( g, E0 @2 {- t - (if (numberp eheight); W Z3 L8 _7 m; [# B, ~
- (setq elist (subst (cons 40 eheight)
5 L# r y* }, @ - (assoc 40 elist)
@0 y4 t! \( p# i4 W0 e) H: i6 } - elist* W& O8 P8 J0 E$ t6 X) o' K. e- ]5 b
- );subst8 ^& T8 N: l1 _& A( ^$ V6 k
- );setq/ B( ` U3 k9 c; Y, c
- );if3 b* c8 V r6 ^& i9 h4 L
- (if (and estyle ;(not (equal estyle ""))
) n$ C: K+ R/ o9 k - (not (equal estyle (cdr (assoc 7 elist))))+ _/ l8 }% \2 q
- );and) t0 v) j5 L: {* y; i! X! {
- (progn ) q5 X) k9 ~4 _( w3 i- c
- ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt
( J# a3 C9 u* H1 U T' }7 V; { - ;(if (equal "MTEXT" (cdr (assoc 0 elist)))
, a9 e4 c) p3 s( e! \ - ; (setq elist (fix_mtext_fonts estyle
3 Y s: [& k }+ P. a - ; elist
' r+ A) n6 G' P8 N3 k3 i+ @ - ; )
7 p& s6 W1 L# I" _ - ; );setq then
" z3 _6 q$ e0 |! P. U; j: W1 m" I - (setq elist (subst (cons 7 estyle)
% u: {! g! U& T% Y - (assoc 7 elist)! i% y% S- w: S5 P
- elist6 D0 G7 b3 ^3 [* n/ H: V% g
- );subst
! O- N' K H4 L* I, G - );setq else
9 D0 ]' s& M, q, W! p {+ R) J - ;);if 9 J' h5 s4 O/ N) T# r3 Q
- );progn
( O6 _6 r$ t8 X# i - );if% x: n: }$ N4 j# }' T3 m6 H
- (entmod elist)
" ^( v- e4 o4 j" f: n) C7 u8 I - (setq ss-index (1+ ss-index))
9 y8 W: j$ `7 B, E; ^- }3 i - );while
, ?' O4 z& f! b& w% ? - );progn then
# i6 q$ h g/ [# d5 k1 t! F - );if: z" t) Q# l! X* E
* `3 v! b# J+ J+ u$ p( U- (setq cmdact (getvar "cmdactive"))- m* Z! J$ @9 _& F0 F6 u2 I% d' R
- (command "_.chprop" ss "")
/ s, i7 B" m- o) o1 T% u8 W5 j/ G - (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?
A* S2 W. _' `$ ?' P2 y5 P - (progn( Y& u8 q3 g8 y
- (if ecolor
0 B1 k, N1 E q9 H9 V4 ^ - (progn
1 F& E/ b; ^+ t0 k - (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK"))0 k" Z1 f. A& j5 {+ W
- (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))
7 z% V9 H$ S& _. I V }" Z - (command "_c" ecolor)
, y+ D: M# q0 Q& _- E - );progn then
$ F9 n9 }& d8 \% K2 Y1 i2 H1 X - )
. A$ ]3 U6 l1 L; k; q - (if (and lt-idx3 H# F: t- c( f$ I {
- (/= eltype ;|MSG0|;"Varies")8 Z2 F- R9 L) |, u$ M! j$ \7 R* A
- )
0 U- i) e. Q) n9 z - (command "_lt" eltype)( y3 ?- I3 W. ^2 G8 Y* _
- )
" h8 A2 K) o. D& f4 J* { - (if (and lay-idx c0 ]# S" B& n+ X
- (/= elayer ;|MSG0|;"Varies")
( y4 J# q0 y5 ?$ w% p& Z - )" V9 Z0 ?- E& m( ?1 y
- (command "_la" elayer)
1 y2 y( O8 X- b6 G* q/ c! k$ g4 Z - )
; ^8 d; \* o& n$ W( r. ~ - (if (and ethickness % Q7 v+ c; z4 b
- (/= ethickness "")5 p; G B# B: R) n' F
- (/= ethickness "Varies") 7 R3 t) z, Z0 O& R
- )
* w! g1 R: T3 L) q4 p8 h - (command "_t" ethickness)
: w& ?6 A. C) U - )
0 j1 t' l5 Y+ Q4 ~& A - (if (and eltscale (/= eltscale ""))
- `4 Z( {. |4 J) L: i) C- E% L - (command "_lts" eltscale)
6 j. V; X* T5 ~3 F - );if7 B4 V8 c J# ]& a8 u2 A* e
- (command "")4 J6 k3 [, o# Q! N1 P0 o; |
- )
( w% s! \' Z! @4 q. q% @ - (princ "\nProperties unchanged") ; CHPROP didn't like our SS set
/ V2 @4 L8 m# d% r+ w% } - )
0 j/ |' A+ j- W2 u: K' i - % n, ^9 ?$ A5 N
- );progn then OK was picked in the dialog., {4 _- I5 Q: K8 ^2 u0 }% A2 c u! q
- ! E& o' H; z; P" @- L3 w* j- L
- ;; Fred GERBER - 25-AUG-94
" I' o/ @; x* S( S( h. _: C - ;; Don't print the "Properties unchanged" message when the user cancels
: ]: {# B2 b4 V! t$ i - ;; the dialog because he knows that already (otherwise he would have+ w/ |/ F# O2 v/ d+ R
- ;; hit the "OK" button). Display the message only if CHPROP fails for
$ @( g+ f" g4 ^. G2 a3 ^- l! _/ l0 b - ;; some reason, because it is not the expected behavior of the command.- R J2 m6 I7 i3 m2 C5 O1 m
- ;;
( q. @* g9 F& w: k3 ]# a - ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")6 N3 _/ L$ f6 O$ v* w
- );if. q# Z9 a0 Q" i: o! Z: D
- (princ)
5 `3 G. H& i1 S5 |. E - );defun call_chp2 K* b' g" X4 X; U) Y
- ;;
( y9 ^- r6 g* w5 u, i% K& S9 `; M - ;; Function to set the Color text tile and swab to the current color value.' i$ x+ h& X% g5 D! ^& D
- ;;3 Z5 l/ T9 a" u) P. M1 ]
- (defun set_col_tile(). ^+ I! v0 K& F
- (cond
& L1 N- u9 E+ z - ((= ecolor nil)
+ Y3 m- z' {3 s- }3 p - (set_tile "t_color" "Varies")7 }- R3 q# @9 u/ L0 o& N
- (col_tile "show_image" 0 nil)
3 o8 ~: @( {( d1 ^: W - )
3 ~7 I" A% S' ?/ P; I - ((= ecolor 0)
* x+ d8 K( q5 P$ \2 i& y - (set_tile "t_color" "BYBLOCK")
( l7 N% f( B* c& ?, n" M8 u - (col_tile "show_image" 7 nil) ; show BYBLOCK as white, b8 l" |) R! n1 e9 G6 y; K
- )
. }. P2 X2 C* i5 n$ }$ d. @ - ((= ecolor 1)- ^6 U7 e) R# o" g
- (set_tile "t_color" "1 red")) ^ P: i9 R: a' i& B8 m2 T
- (col_tile "show_image" 1 nil)
5 }" q, ?( @3 F - )
* N. w+ L% O& b5 I% R5 _ - ((= ecolor 2)
8 E$ Y; \1 c! v$ [9 P. _; b - (set_tile "t_color" "2 yellow")
: u' K, Z" @ l+ F! b# a - (col_tile "show_image" 2 nil); D5 r* |3 O% X$ D
- )- e5 }. F) D5 f
- ((= ecolor 3)
# H9 Z) {3 P( ]' {/ B% I) S - (set_tile "t_color" "3 green")9 d3 t* W! I3 |$ f( \5 n
- (col_tile "show_image" 3 nil)5 R; A6 q' `7 W8 p. Q1 H
- )/ y' @0 }1 N3 C2 E( e. }" C
- ((= ecolor 4)
) N) F: B9 C+ q( Q6 ] - (set_tile "t_color" "4 cyan")
% I8 w# Z% i5 s: J2 d; D1 F9 G - (col_tile "show_image" 4 nil)
7 f5 e9 u; K; h8 F' ?! l - )
+ {1 s1 W5 e1 [. @! P - ((= ecolor 5)
0 A$ s) O. Z; p9 i0 ] - (set_tile "t_color" "5 blue")
a0 L h" L$ V; a" B- \& T - (col_tile "show_image" 5 nil)/ [4 l3 P# d/ _* B/ V5 q* e2 I1 d
- ): [. S- O0 @, a; l# g
- ((= ecolor 6)
. q: |7 Z) ]; v9 [* u$ F - (set_tile "t_color" "6 magenta")5 l6 x- v; P2 m$ d
- (col_tile "show_image" 6 nil)8 _. [# a* }# h& J, B5 D2 a
- )
1 U( j) x$ X& a - ((= ecolor 7): }8 g1 V( |5 i* r# |
- (set_tile "t_color" "7 white")3 a, b) L( a7 L5 q C# G
- (col_tile "show_image" 7 nil)) N; M }" [( k* ?4 a
- )
9 c2 e9 y" f& y3 N - ;; If the color is "BYLAYER", then set the tile to8 n: D5 {" c8 T7 l
- ;; show it's set By layer, but also indicate the2 ^/ {+ W) I3 x. k% d% P
- ;; color of the layer - i.e. By layer (red): U0 m) _$ N6 M+ }0 C
- ((= ecolor 256)) p3 N& B" U" @. ?. q% M. q
- (set_tile "t_color" (bylayer_col))
+ f- g3 K; p9 }' s9 ]# R - (col_tile "show_image" cn nil)+ t. s- h$ t% a1 ~& i
- )
/ o" v$ K8 i+ c9 ~5 g( L1 H) d! [ - (T
W6 s+ G9 L s; @ ?# t - (set_tile "t_color" (itoa ecolor))
1 T: l4 t" d1 p, Y: R5 e/ n* E4 N$ X - (col_tile "show_image" ecolor nil)
& w' q7 J9 I" j' e5 M2 A. {$ M - )4 o, \9 g& h4 y8 u. @. I& A
- )
" j+ `: Z, z: }: d6 a" f4 s% q - )
/ Q4 ?! X- T7 P0 u: f- c - ;;
1 a) M* K/ P' d0 N8 D, e3 Q - ;; Function to put up the standard color dialogue.
* a1 [1 ^! w9 w! | - ;;
@' `8 s* H+ Z- H; v! T0 p - (defun getcolor(/ col_def lay_clr temp_color)
5 Z3 S) J+ l7 w# z - ;; col_def is the default color used when rq_color is called. If ecolor
$ l( m& |! |. G- x - ;; is nil (varies) then set it to 1, else use the value of ecolor.
9 t5 w$ Q s) k% y2 f1 c3 I - (if ecolor
# S1 [- c/ _' s+ k9 p% M - (setq col_def ecolor)7 I' U: a7 R, a3 { T/ R# |3 c6 L
- (setq col_def 1)5 P3 h4 g) q* i3 \
- )- O1 v \$ U8 h) N0 E( w
- : k" k6 i) H2 L4 n# J# B/ k
- ;; If we're working with a single layer, get its color1 J/ n# Y7 C- c/ ]; v d
- ;; for use in the color swatch if the user selects color BYLAYER.2 d4 m7 `9 Y8 F3 F/ {
- (if (/= elayer ;|MSG0|;"Varies")4 k3 ~: k4 G; y+ l0 g
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))& Y; ]% ^- s- Q v
- (setq lay_clr 0)7 W, c8 T8 z% V
- )
W6 ^2 }# H9 ~' O% t - (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
$ B4 S9 v6 W+ M% d - (progn7 t+ m6 M; t7 f. @) C' B% C3 T
- (setq ecolor temp_color) Z1 b% {: o8 D& k! ?/ i
- (set_col_tile)9 g# h" ]7 {1 c- U9 |2 B
- ecolor( G8 e2 ]% a, J, A' L+ n# ~9 G
- )
4 Y' s1 ~: N! r" |# _* i8 Q$ g; q - ecolor
0 J, C- B+ w9 z0 N- p! K$ @ - )
3 q/ y5 o. l8 z6 C# g( m4 L7 \ - )
1 N6 E" J. n0 g% q! A$ s P - ;;
* [* p) Z+ f' Z2 r9 _$ ~ - ;; This function pops a dialogue box consisting of a list box, image tile,
/ b( F; Q4 t8 _5 u6 M% p/ ` - ;; and edit box to allow the user to select or type a linetype. It returns% x7 v: Z# v8 v8 B' Q/ s% G8 u7 O
- ;; the linetype selected.8 u N4 d/ @: E Q! Z9 f
- ;;
/ i# @: K8 z: k' E E - (defun getltype (/ old-idx ltname)0 r. A+ a! Q- ?' }
- ;; Initialize a dialogue from dialogue file
2 B4 p( T/ g- D; x" ^( Y - (if (not (new_dialog "setltype" dcl_id)) (exit))
1 }& l( I8 Q3 d9 ?- w; x m/ U - (start_list "list_lt")
) }- k! N0 A& n' F, ~ - (mapcar 'add_list ltnmlst) ; initialize list box
4 }) E* A) a6 t+ E$ o, f - (end_list)! K, n/ M4 F0 R8 z& `. X
- (setq old-idx lt-idx)2 e+ e8 Q7 J0 A+ Z
- ;; Show initial ltype in image tile, list box, and edit box. U( h1 j' g v& t' X0 C
- (if (/= lt-idx nil)
7 }) H+ J; N2 c _5 z: I9 R - (ltlist_act (itoa lt-idx))* e6 t, X' s" c- a
- (progn1 Y, a7 f1 b5 j/ Z
- (set_tile "edit_lt" "")
: T/ }, A# e P# S3 S - (col_tile "show_image" 0 nil)
2 W/ [5 j% k' L; v: G% J, q% Z - );progn else5 Q' N* x6 H4 f$ e. E8 L2 G
- );if! [. d l' d# F. J7 O3 N
- (action_tile "list_lt" "(ltlist_act $value)")- d. ^; p6 o" y" D3 ~6 d+ P
- (action_tile "edit_lt" "(ltedit_act)")* v( m: t, f, G' G; f6 `- j
- (action_tile "accept" "(test-ok)")+ L, X0 G8 b: O3 Q
- (action_tile "cancel" "(reset-lt)")
( _4 _/ n* |( r& ~1 \" }4 \1 H - (if (= (start_dialog) 1) ; User pressed OK; P @/ \$ x; ? l
- (cond+ e: |: r E8 }3 a9 p- l4 x& h9 x
- ((or (= lt-idx nil)$ n% z; B4 J. K' Z! ^; u6 B& ~
- (= lt-idx (1- (length ltnmlst)))% m- Y$ W; F, z, l) u2 `
- );or: f) `6 t8 m; i( O
- (set_tile "t_ltype" "Varies"); P* ~) U) a3 a9 B' O; I9 c
- ;|MSG0|;"Varies"
! h. j5 x( ?: U/ D! h% g* a - )& ^2 A8 q; A) s8 D* p
- ((= lt-idx 0)
1 H. X! o& W5 Y2 }+ r9 B* p - (set_tile "t_ltype" (bylayer_lt))3 k- Z; x0 b E. I' ?5 |# ?6 z
- ;|MSG0|;"BYLAYER"1 |% w4 W0 o2 B; j4 v! d
- )* |. m* v* M4 S) @- |' [
- ((= lt-idx 1)
# L4 [$ ~0 m) ~/ C4 D - (set_tile "t_ltype" "BYBLOCK")6 w' {! B: H" a3 p6 F, s' j" I
- ;|MSG0|;"BYBLOCK"
s! J- x0 W. V z+ Z. {0 y/ g/ Q# z4 R - )( D3 _0 a$ k, p4 |: [+ d& {
- (T
- u) O- T$ S, b - (set_tile "t_ltype" ltname)
. x( x9 w/ G. L+ i/ t& b - ltname, b6 d" N, _6 G% d1 f
- )
0 I1 A4 ^6 S6 L/ b* F" w5 b - );cond then- W1 @6 e, m2 x9 N: {
- eltype! d7 \! {. e& a; j5 O! w* d3 z2 O9 a
- );if
; h4 n* ~) M) b3 `/ x - );defun8 m+ ~ X i7 R7 d, w' ?! C0 E' r
- ;;
$ O. c! b! u% C" ]! R - ;; Edit box entries end up here
$ Y* g* O/ e+ b2 H+ i) X! g8 ` - ;;" Y h0 k: w4 B6 I4 M
- (defun ltedit_act ( / flag)% n$ h! ~7 Z/ h6 U9 ^
- ;; If linetype name,is valid, then clear error string,
9 Y" ]5 V) b) t! t# c/ D - ;; call ltlist_act function, and change focus to list box.
% @1 ` g) [; d$ e# p - ;; Else print error message.
! x3 z3 _8 N6 k3 Z0 B - 0 ?# h! `# j) f5 l" ^- c8 g/ y9 o$ R
- (setq ltvalue (xstrcase (get_tile "edit_lt")))
" h8 q' Z; h9 q# X - (if (or (= ltvalue ;|MSG0|;"BYLAYER"), l" m$ T9 Y3 `/ `/ X' g( b
- (= ltvalue "BY LAYER")
: L0 l& y& U! G, L; l! l - )
' }# |. O* R, R3 P - (setq ltvalue "BYLAYER")( m! F4 \8 M' n3 M# K
- )
$ F3 v) q8 W9 |: L( a - (if (or (= ltvalue ;|MSG0|;"BYBLOCK")- ^4 I9 }: o- x) `) ^. {6 G" F
- (= ltvalue "BY BLOCK")
' `8 I# g( _. f' y - )* K- ~2 l }6 z% S+ E% d: N
- (setq ltvalue "BYBLOCK")0 D3 {, p! U& ?/ q
- )
3 c% J' Q$ Y- m' y: _ - (if (setq lt-idx (getindex ltvalue ltnmlst))
8 c5 }: N4 A+ e& G - (progn4 a3 z; p$ g) @2 \6 j* i- B% Z
- (set_tile "error" ""), t& Y: }- Z p O W1 I
- (ltlist_act (itoa lt-idx))
! }( c7 _' C# C* ?# k - ;(mode_tile "list_lt" 2)5 [- `: E- i( E% [8 ~
- );progn then/ l1 g2 t I/ P! G% g2 i; g
- (progn
" v7 ~- l; b! ?& H. G' B - (if (/= ltvalue "")( B v+ V# l7 Y3 ^( d! S
- (progn
4 i* h4 M+ s+ m$ h8 D - (set_tile "error" "Invalid linetype."). k0 j$ s y' R a; F2 c5 u
- (setq flag T)
/ c8 r! W3 X/ S: t8 m: U9 ] - );progn6 U( n$ b- E5 ^! S+ [) j
- ); ?% R: H; e0 U
- (setq lt-idx old-idx)
( h4 `3 K8 e1 ?, |- e5 n6 Y( @ - );progn else. c5 n, p) j" b) r; W- n- @0 J6 k
- );if
- W8 R! E7 l' Z4 _8 D - (if (and (not flag) ;added so a return will take you out of the dialog.; L. q( a; D2 d! v. }# S
- (= $reason 1)' a# b! p# O/ b/ H* P
- );and/ ~- Y8 V8 I) P0 O* L5 b
- (done_dialog 1)
% c, G* M& Y6 f) h" X - );if 0 @+ L8 p. b1 a. q) g0 j+ I8 q
- );defun ltedit_act6 y1 a7 q" p- K- Y: G+ v# A
- ;;
+ v7 s5 c4 e6 c. I; f- f7 {$ N - ;; List selections end up here, _6 k" e3 R; N1 k1 F- u6 [9 n
- ;;
7 f# O* m! [0 ` @( N* N# z - (defun ltlist_act (index / dashdata)
" _2 f$ M; ]- U8 m5 f - ;; Update the list box, edit box, and color tile
5 i/ ]- a2 C9 K6 l( \* w - (set_tile "error" "")
& q1 H' D) z9 I& m - (setq lt-idx (atoi index))
4 ] ]* ^& N! `5 }# X - (setq ltname (nth lt-idx ltnmlst))" t% K. g3 Q p
- (setq dashdata (nth lt-idx mdashlist))% h! u! A2 a/ m2 }
- (col_tile "show_image" 0 dashdata)
2 F/ ]; X7 I2 V8 s4 F6 O7 @ - (set_tile "list_lt" (itoa lt-idx))( n) ?5 s- g1 L; W( Y+ [" K
- (set_tile "edit_lt" ltname)$ P8 _! _' m7 a7 n4 ]
- )8 p5 q- x3 V/ F' j
- ;;
1 H$ [& N/ @: J q) _ - ;; Reset to original linetype when cancel it selected( N* }. w, O0 U L! S
- ;;# n; v) u5 P# i, j8 e" K. ~
- (defun reset-lt ()
9 g1 ]/ J0 R: @! x) V' F. p1 E - (setq lt-idx old-idx)
* D4 g( k0 e' y* e# v - (done_dialog 0)
, @+ }3 e; t5 j$ ^. n4 ^. A" }, ^ - )
8 m1 v" k4 w' i b% g/ | - ;;
/ e% F! |( S8 r3 @. J4 J+ U3 @- Z - ;; This function pops a dialogue box consisting of a list box and edit box to
% M: ~( ~, B$ N9 p+ b4 k R - ;; allow the user to select or type a layer name. It returns the layer name
& j# ~. z3 I a* `- a - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the
3 N& S3 Z" E+ \7 J3 U' i - ;; drawing.! x( a2 m' w6 a# b* d: T4 a
- ;;
6 p# p6 k2 R( t; a6 H7 O, t - (defun getlayer (/ old-idx layname on off frozth linetype colname)4 m( j/ @' K% ]8 v, }, S. j0 _
- ;; Create layer list the first time the layer7 ?! G( V d$ L4 ?$ T# B
- ;; dialogue is called.; z) j# t# z8 c! h
- (if (not lay-idx)
* I9 Q2 _5 T0 |; y5 v - (progn ~* f9 C; t: O6 |1 h) T9 g; u
- (makelaylists) ; layer list - laynmlst
6 z V( }3 R s6 z - ;rk3 B# r! o8 z9 L/ k) b2 g
- (setq lay-idx (getindex elayer laynmlst))
- g p' g6 j+ _. e1 c0 G - );progn+ D# Z/ O8 s3 x5 X1 U
- );if
; R! c. P/ J( F+ g8 w
) f9 ?' x r" l% W- ;; Load a dialogue from dialogue file" ~; L, E$ M' L- U( u
- (if (not (new_dialog "setlayer" dcl_id)) (exit))
: u2 ^& E" d* ?2 x; i" I - (start_list "list_lay")
" G7 }/ N1 b9 U4 n1 X& Z: T1 Q! i - (mapcar 'add_list longlist) ; initialize list box: k+ l" M' B G* y
- (end_list)
6 q9 m: c8 ?1 E% @; c! h% Y - ;; Display current layer, show initial layer name in edit
$ R, C/ M& O; \5 H) j& I - ;; box, and highlight list box.7 h' e6 c1 n, k; \
- (setq old-idx lay-idx)3 m& T' @; j8 F5 |- S. Z$ [+ z- \
- (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
( ?& w: b3 i5 j - (set_tile "cur_layer" (getvar "clayer")). x, I+ j: k w
- (action_tile "list_lay" "(laylist_act $value)")
& @7 g B& A8 V) y, z5 z, i - (action_tile "edit_lay" "(layedit_act)"); P0 f+ D: A5 |/ Z8 s4 `; Y
- (action_tile "accept" "(test-ok)")
3 L9 Z, U5 q) {; `! N - (action_tile "cancel" "(reset-lay)")# |- {7 ]6 |( |7 H+ G5 e3 D
- (if (= (start_dialog) 1) ; User pressed OK" ?6 |: @# |5 W: I$ b7 N, v7 U9 i2 O
- (progn
* D+ l2 a( u9 J# @* ` - (if (or (= lay-idx nil)
T- v3 J2 A, g1 ?3 `, U7 R3 s - (= lay-idx (1- (length laynmlst)))
7 {/ L' R0 o: J: l0 T/ L3 Y$ j: \ - );or
4 g" _6 Z3 ?* W: n( R2 t3 d2 Y - (progn! V4 I3 s* G9 l
- (setq lay-idx nil) 8 u4 @" x9 j2 I
- (setq layname ;|MSG0|;"VARIES")" y5 Z \, _" b" `
- (set_tile "t_layer" "Varies")/ s' N+ V# y- ]! R$ C2 l7 [
- (setq layname "")1 c& \9 X; Y) L4 a% ?
- );progn
/ z( w2 a/ {" _/ E, b - (set_tile "t_layer" layname)
: U( {" v; `; e; h: l - );if1 f/ a- V/ H x! t! R" E6 D
- ; If layer or ltype equals bylayer reset their tiles
3 w% Z; H( U/ X7 h( O - (if (= lt-idx 0)
4 {* m0 ^% M) d/ R. O - (set_tile "t_ltype" (bylayer_lt))
% x( c& f1 U( [& _2 \4 ]6 x+ K - );if
1 W9 ?& o1 M& ? - (if (= ecolor 256)
! @/ r9 I+ C% }+ |: {6 a& P2 ?0 T - (progn; z- Y5 c; _# b0 {7 c. O
- (set_tile "t_color" (bylayer_col))
- N6 V0 P4 Q( P* f7 K - (col_tile "show_image" cn nil)
- _4 I( T! c( E9 ?0 z3 l - )
8 b# a* W2 m. i% c9 r% I/ H - );if
1 i6 C$ e: n* D - layname7 y" x, e" ^ K3 k
- );progn$ F# k8 a0 Q8 D1 |1 h; W; r5 }4 y
- elayer
0 h4 \$ O) f# L' `- ~; I - );if5 K) {( n5 b" s) q- c
- )
% y/ r8 o; b% T - ;;
6 v5 q" k# r& Y& l; g - ;; Edit box selections end up here' @# k+ m1 e6 m$ W0 u2 Y
- ;;
# Y* W7 `& H6 L& R2 C/ C - (defun layedit_act(), d5 _) v# X0 a
- ;; Convert layer entry to upper case. If layer name is V$ ]/ U! ^# J/ i' C* t' p8 e
- ;; valid, clear error string, call (laylist_act) function,! c9 }. Y% d7 C0 k9 F) D
- ;; and change focus to list box. Else print error message.
8 Q$ w6 Z" P U8 B0 m- w& D- R - (setq layvalue (xstrcase (get_tile "edit_lay")))
3 S$ y0 t, m5 ] k/ ]' ?2 c1 m, X - (if (setq lay-idx (getindex layvalue laynmlst)) n* L/ D b- o
- (progn# c5 {( Y( M) b1 I3 w9 w3 M$ N
- (set_tile "error" "")* J- U. w: f; O5 x- t) |& w3 j- `* n
- (laylist_act (itoa lay-idx))
; }' x: g# p5 z- O - )( T: `0 G5 C7 w$ l7 b! y
- (progn: o4 p4 [9 |* i+ l- e3 T8 A# }
- (set_tile "error" "Invalid layer name.")' P( N3 y' A6 d
- (mode_tile "edit_lay" 2)
' E H, N+ r. n' l u; { - (setq lay-idx old-idx)
5 P0 H' |; [$ \ - )6 F$ k) _8 q6 z* L' I* m4 d
- );if
9 q8 f! Y0 p( @1 ]% T% c - );defun0 p' l9 c3 v; x/ `+ B: }8 q1 h
- ;;/ V1 ~) x1 E! O% }# n7 P4 `
- ;; List entry selections end up here" E7 \( [9 j6 h& _% J$ |! b
- ;;: C+ X( f3 u9 [& C: ~) l+ _
- (defun laylist_act (index / layinfo color dashdata)
) l5 u% @( j2 { - ;; Update the list box, edit box, and color tile
7 o, L/ J$ Z% G/ L! O5 N# m - (set_tile "error" "")" i, r' w$ F' d! D( H- Y" ~/ c
- (setq lay-idx (atoi index))
$ f, N: N+ M1 n- e) J) g - (if (not (equal lay-idx (1- (length laynmlst))))
$ x/ ?7 j8 a. t3 P, Q: ?3 o. N - (progn
2 P1 e- s. N+ Q0 U - (setq layname (nth lay-idx laynmlst))% f& d2 |, Z }
- (setq layinfo (tblsearch "layer" layname))
9 ?7 l. t5 U1 p: u - (setq color (cdr (assoc 62 layinfo)))
4 G4 K" ^ O) K% C - (setq color (abs color))
* G6 @2 j% }9 T8 @ - (setq colname (colorname color))' b( n" E7 K2 x$ k1 x: F+ b- \, V1 f
- (set_tile "list_lay" (itoa lay-idx))! Y1 ]0 x! u$ d# r1 J" h& t) k! |
- (set_tile "edit_lay" layname)
# V* j V2 p2 V3 Q' ^ - ;(mode_tile "list_lay" 2)9 M) y+ v$ c- L" I9 t
- );progn then # l4 f8 B% [% C" V- Z; f3 i
- (set_tile "edit_lay" "")
5 X' e7 {' Y: T4 S) q( g - );if
0 K4 Q2 o$ C- |1 { - );defun laylist_act
6 s; d- R& {2 h9 G* X - ;;4 U7 ]5 O" i/ @( v6 d
- ;; Reset to original layer when cancel is selected
/ I6 {+ x3 O: D0 R1 H' A4 P - ;;
" w. v* r) ?- Z% s* w$ P - (defun reset-lay (); d7 r, r$ S1 ]8 l6 f$ T
- (setq lay-idx old-idx)0 @. B2 Q; Z7 t+ m! E
- (done_dialog 0)8 {' ^ P% x+ k& M# M* U$ p
- )& p ]+ d2 a7 Q" ^% b$ N- p
- . f6 V0 k5 `+ S/ n! Z* o1 V: Q
- ;; Checks validity of linetype scale from edit box. It checks to
7 h3 s3 }( t, W - ;; see if the value equals "Varies".
y* v" ?+ Y5 l0 G* Z; N9 }5 O
# ]$ F5 `# d7 D/ [+ m2 y- (defun getscale (value / rval)
# J v- D. ]: h! r! P - (setq value (strcase value)
3 ~' C; B" U! C - rval (distof value)
9 A: \9 f- I; ` - );setq
' T7 ~3 O4 N7 x8 {' ? C$ E - (if (or (= value "")1 ^# f2 |3 f: ?
- (> rval 0.0)
8 a6 W/ u' n; o, g4 @ I - )
, p& k3 D3 D# @7 r) q0 W0 e) L3 ` - (progn) i7 w' ^9 T4 U( h! n
- (set_tile "error" "")7 u4 W- T" b9 ?" h
- (if (= value "")
; v6 D* Z w" C4 V - (progn9 t) n7 P% a: o8 v+ N
- (set_tile "eb_ltscale" "")6 y. W/ |7 D% c4 q2 k# m
- (setq eltscale nil)
) _+ f, h) o! K2 {. Z, E) X" t* i - );progn then% p. W* |5 x$ _' W9 Z
- (progn7 ]3 S! K0 v+ _' \
- (setq eltscale (distof value))( M" ~9 x1 w% H) ? [- ` S
- (set_tile "eb_ltscale" (ai_rtos eltscale))( r% X! Y$ c: `$ m! g/ s1 c
- eltscale a4 ]& C$ h7 @, W' w5 W; r8 k, e
- );progn else( ~4 ~' d% [% r/ t! a$ C% |+ x
- );if5 E& y1 s6 E5 l2 k! X' K
- );progn" z ]& g" x* V: {, E
- (progn
# h6 X/ D9 S8 d( v G) ~ - (set_tile "error" "Invalid ltscale.")4 K% `- X& @$ q4 a5 Q* Z9 x
- nil
6 z9 N: {/ h' ^, a: y+ N+ s - );progn else
; M Z! s% X- l - );if
- b* ?% q3 k9 m2 \9 i - );defun
" n$ W6 _, O: Q - ;;: h2 {! e5 ]; q+ w. V; o
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
) O1 [0 g) ]& | - ;; string can't be converted to a real, this routine checks if the first2 v4 m. { G4 Z; \% D1 Z) e Q
- ;; character is "0". It also checks to see if the value equals "Varies".
# N- z' b5 q9 X3 e$ T) g3 d - ;;
, `8 d% k7 k9 ^+ v5 X+ Z# U - (defun getthickness (value)3 U8 i& z4 l: ?/ t* } ^
- (setq value (strcase value))
) t- L o" `; H% r# e5 \( `1 M# K - (if (or (= value "")
y3 _7 l. _2 P r - (distof value): H7 C# w: k5 [) n. U2 g
- );or/ C7 e8 {9 b" i2 `4 [: p( V% ^
- (progn
6 a, Q2 [3 c( Z, T, k* e! ?$ w' _) w - (set_tile "error" "")
3 d, X" Q o2 |" \( Q& p: w* e - (if (= value "")
% q3 e$ X( W' w- G, U9 a) l - (progn
/ L, b ?! b8 b0 K2 _ - (set_tile "eb_thickness" ""). I j" E% Y- {4 ~8 f4 b- f$ T& o
- (setq ethickness nil)1 [7 A( V, H: ?: K! k6 G) @
- );progn; X( U$ Z/ t6 \) K2 j( R$ N5 F
- (progn
; j! y) e* p7 B, [5 Z, ^& B - (setq ethickness (distof value))( B$ K$ I( \, F" C9 H3 x v
- (set_tile "eb_thickness" (ai_rtos ethickness))! A& u- o5 e. f' e7 Y: E
- ethickness
3 x9 R" a) x6 Z7 {1 R% k' m2 n - );progn
9 r$ i2 ?! L; m0 O8 `* H- B, b$ G - );if/ N% L/ e. m* R! B
- );progn1 D6 g- k3 E# C0 G( N* L7 w" \ K
- (progn
' |: P: ~. v( }0 g3 F6 f6 b - (set_tile "error" "Invalid thickness.")
7 D& T+ U( ] E. F- |7 j - nil$ r) a* L7 l! G% e5 B3 p9 a
- );progn
0 { _# q+ O/ x/ G2 e - );if; i# \4 e+ V/ H+ I: H
- );defun 5 a9 _; T- E. s. y% }
- ;;
. e& \! a. S/ \" T, T4 l - ;; Checks validity of polyline elevation from edit box.
$ J5 S% ~% \4 {# n, a - ;;
4 w1 ]2 o5 F' d/ ]! U, d x# C - (defun getelevation (value)
% `" k+ x0 f7 U4 Q - (setq value (strcase value)); P# a2 g5 s" H: ^% d
- (if (or (= value "")
* w6 n+ {4 h: [1 f$ A - (distof value)
: i* D2 y) e9 r; g6 @- \0 _ - )
/ M. Z* X# |4 s# j0 V- T, q - (progn
1 {6 {+ J$ D6 ]- M: ?2 U+ N - (set_tile "error" "")& N) s. u; [7 ^% H1 U6 g' f& [3 B, H
- (if (= value "")
( ^3 L, {" I: \6 P' W1 E - (progn
3 o) O0 o% O1 E [5 A; ~ - (set_tile "poly_elev" "")
0 Y, [$ H; B p( m7 L% H- ^& O3 b3 U8 J - (setq eelevation nil)/ ^- E- y# E9 a" h' @" ]3 E& j
- );progn
3 j" L8 m0 |5 n* q) [& w+ E& T - (progn1 j! R* [/ \, `& s; z" d
- (setq eelevation (distof value))& x- E3 d, s$ r) h( q
- (set_tile "poly_elev" (ai_rtos eelevation))
/ e6 [1 z: Y; P/ p: K7 | - eelevation
! f! ]3 ]+ s$ S, s - );progn
6 t& E- }8 N ?1 ~. j- D+ h& O - );if' K, V# J. {! k" ~% c
- );progn
* i; M7 f. K* P# d& M - (progn
! G! F& {1 U" Q J0 u0 E - (set_tile "error" "Invalid elevation.")
& _$ }6 Q+ c- ^) y7 l - nil
/ L. I) |3 H" _ - );progn7 }( Z% e' A8 q% z% }( e. r4 s+ l
- );if
' d6 R$ K' U6 _4 S- J- u' r - );defun) m# Y. G6 ?8 G
- ;;: B1 n$ `" R6 A6 A2 S
- ;; Checks validity of polyline width from edit box.
: ^! X4 L; e& n7 G6 k6 H/ x' |2 e1 b3 } - ;;, x& e c7 U3 l( L. R9 w% a
- (defun getwidth (value / rval)1 h$ Y# M" C# u' {! v7 C: c- N
- (setq value (strcase value)1 R/ p7 H! W# a; D
- rval (distof value)
1 B+ h1 K1 H3 y9 F! Y - )7 O$ t% P t& o
- (if (or (= value "")
6 t: ^/ c3 x) J - (>= rval 0.0)
+ E1 y" \2 y4 v5 @, i - )
+ o7 N" T8 D5 \+ }! k& C! e1 S - (progn4 C/ ~% i$ Z4 o0 q
- (set_tile "error" "")) N( \" b- S3 h- F* K. N2 [" o$ H
- (if (= value "")
, R; s) \) X5 F3 T7 C( K - (progn
Z% a& M2 Y' c& U - (set_tile "poly_wid" "")
1 N) w7 v$ B. } - (setq ewidth nil); b2 @! r, Q! T4 M: S8 s$ f- O
- );progn
' S2 A' E/ z1 b# H- Z: s - (progn
M3 [" B# k/ J - (setq ewidth (distof value))
- I: h$ A, @1 v/ f7 {- R' | - (set_tile "poly_wid" (ai_rtos ewidth))
@: g4 @. L, j7 | - ;width) i, O1 S, \' O* |& X4 K$ D
- );progn6 E \& X# ]5 Y3 @% D9 W- i
- );if3 l2 D* Y' q0 F. |
- );progn( z# ?) l# F* e- L
- (progn
: v) f* i$ n# Z7 N2 x6 F - (set_tile "error" "Invalid width.")4 [3 g5 N% i w8 q
- ;(setq ewidth nil)2 ^7 l/ g5 i2 U( ?# A/ I# P
- nil
1 O7 a" [. ~) I0 P! Q) Q/ g - );progn
2 B2 I1 t" W& Y1 h6 W! O- w - );if8 l j+ Z( O% b8 a, F/ z4 j
- );defun
% ?4 O: g3 Z% w- R0 h2 ^ - ;;- A0 Y" S/ v B2 H8 h( \
- ;; Checks validity of text height from edit box.# Q4 g0 @9 @$ a5 w8 d0 D
- ;;+ A7 a5 X% g4 k V9 W6 L
- (defun getheight (value / rval)0 D a5 M; Q) E( H4 E6 P# d
- (setq value (strcase value)7 D& ~' d- ?2 s2 m: u
- rval (distof value)% ~- \" S% J! h' P% S9 a/ ?
- )
' J0 {0 E9 z1 G- p# Z# J9 y' N* J - (if (or (= value "")
U1 t$ J' } G; A - (> rval 0.0)
5 g+ @/ x1 L3 W, C3 F, p' L - )8 r5 W7 \# b9 W' \% D# e. @
- (progn3 m. s! D5 a0 _; y
- (set_tile "error" "")
$ W) H% C. Z/ P3 E" o* W! ] - (if (= value "")
$ D3 c6 q& Q& k7 L7 } - (progn
3 ~9 Y& V k4 S m - (set_tile "text_hgt" "")
; m( k, l: D6 H( W$ q2 B - (setq eheight nil)
- M/ j" }0 O# R# R4 B/ k7 K - );progn
# n0 M: ?" h6 N; y6 j, q* D - (progn& ~: y! s- P' d6 S* x4 a9 K
- (setq eheight (distof value))
5 v3 J4 U( }% x3 D( q$ @ - (set_tile "text_hgt" (ai_rtos eheight))
8 X6 D4 V/ ^, L3 d - eheight3 _ A. ]6 h/ R7 E L
- );progn+ U. J# P. |% }3 r3 J$ [* H: U8 |, Z
- );if' N2 C" u7 {9 c
- );progn
) x m" @7 y/ X& R7 u6 x - (progn
, f! B# W. b. p. ?$ c$ o - (set_tile "error" "Invalid height.")4 i( Q! V) T& Q% F& _8 Z7 e
- nil& Y# s6 w- j3 x- S, o- h
- );progn; O8 K' P1 u* U- P* U
- );if! O- J; f# u F" Y
- );defun
) N/ |1 C- q4 s; Q% K2 n" t
. \7 z- ^" _; a+ f. @0 c+ d3 t& z- (defun getstyle (value lst / rval)$ H/ _& y6 o* f4 R: b' d
- ;(setq value (strcase value))* }0 F/ q7 t# _6 c
- (set_tile "error" "")
4 ]; d7 b b! F0 |6 M - (setq estyle (nth (atoi value) lst))( G* N, b- s8 {& L& r, F
- (if (equal estyle "")
2 e) ]8 v3 P( P0 U - (setq estyle nil)( K. N# O, O* h C9 i; {
- );if) ]9 {6 o% S: ?5 W
- " {) h7 |% n% n T) V* U" q
- );defun getstyle" I1 u0 c1 D$ e
$ e. R& a9 W6 D$ r+ q5 u. s- ;;
; z' F5 `" }- h) l5 c$ Q - ;; This function make a list called laynmlst which consists of all the layer/ _$ ]" L$ b( @3 t/ I2 p- Y
- ;; names in the drawing. It also creates a list called longlist which4 j5 E+ L. ~6 U
- ;; consists of strings which contain the layer name, color, linetype, etc.
0 d6 ?# I. L3 e# i/ p, v+ f - ;; Longlist is later mapped into the layer listbox. Both are ordered the
: W2 v! [4 Y6 W - ;; same.
% w" O8 E) l k7 D# K c - ;;
% E" O1 p7 z i! Y - (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname
/ e/ ~9 _) p }5 ] - xdlist vpldata sortlist name templist bit-70' b" s' x; U% C0 f$ O5 r' [
- layer_number( P! p3 \* S) r' p
- )
$ _7 F! `8 s; H% M a9 F' ` - (if (= (setq tilemode (getvar "tilemode")) 0)4 W2 x! ~7 N! G4 v0 H$ f
- (progn
8 x- T# F l5 z( C+ Y' n - (setq ss (ssget "_x" (list (cons 0 "VIEWPORT")$ `- w3 V- s% o
- (cons 69 (getvar "CVPORT"))/ d+ L) E% x( z
- )4 {% A |3 A X1 F# m, @$ ?$ Y7 z
- ) t9 l; ]8 W# C* K8 R! I" H
- )
4 c0 o' g: p5 F1 B - (setq cvpname (ssname ss 0))
; c& {( L7 f" I/ A9 t9 B. ^' p - (setq xdlist (assoc -3 (entget cvpname '("acad"))))7 R ]; x ` j1 R5 H! C3 Y1 j" r
- (setq vpldata (cdadr xdlist))
. q& D. R7 n7 _4 \! P: \ - )7 g6 i* _/ T' S
- )% _( F1 z6 u5 M z \" T
- (setq sortlist nil)7 |. N6 ]4 K% h) W: J
- (setq templist (tblnext "LAYER" T))' A& z4 [( K, E d
- (setq layer_number 1)
, a- o, C# c) w1 F- t - (while templist
3 S, D c7 m9 z: `. S0 M' @. } - (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))0 l; g2 u' d0 F. s4 I
- (progn # A$ w1 j* I7 f: `0 n" X
- (setq name (cdr (assoc 2 templist)))
J' @ |+ B8 Q- o. Q" j - (setq sortlist (cons name sortlist))
8 `# c' y, J/ ? h - ;; Not dead message...( w6 Z! P; z$ |
- (setq layer_number (1+ layer_number))
& d; w& Z! i! f3 J/ o# w! }/ F, ? - );progn: A5 M4 @& m! M8 n9 |9 j! n
- );if* Z6 J. W0 g* y! f2 }
- (setq templist (tblnext "LAYER"))
/ M* F' a1 L. Y5 L; [1 t - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))
5 F$ [( R% I. _( F( D - (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
6 l1 Q- ]- k! s7 w - );if
. o2 X: c r) G# a/ v - )
/ A2 S' |+ B/ d- a* f - (set_tile "error" ""); C$ E3 z; D0 m9 q- L- C* u9 b
- (if (>= (getvar "maxsort") (length sortlist))% O# l7 Z* ]) r; I! P0 ^
- (progn- o# B5 L$ w9 b7 F
- (if (> layer_number 50)
* D% N2 v; G( \/ Z Q" s: a - (set_tile "error" "Sorting...")
! ~' V5 U, ]& S* X( V - )
2 I/ z! g5 b7 \: j0 Y1 E" l1 B0 V - (setq sortlist (acad_strlsort sortlist))0 I! c b9 n4 _8 g. g: y6 w1 X% [
- )( r% J1 x" s* N
- (setq sortlist (reverse sortlist)), r; b/ v4 `8 h; W
- )! C8 i. C* L* d) g- Y. o
- (set_tile "error" "")$ J" Q5 a$ [# H0 \. L5 T
- (setq laynmlst sortlist)
$ Y( l, n5 F) P/ |' ~ - ;rk 5 Q* [9 t2 Q+ e6 |+ C6 @9 ?$ x+ W
- (setq laynmlst (append laynmlst (list ""))) 2 H4 _9 X. P3 O5 }
3 i. B0 L1 w# R2 e3 O9 w) f0 C- (setq longlist nil)
' M# @7 A1 ?+ g - (setq layname (car sortlist))
* ~' y( K# X$ ~& b* v2 A _ - (setq layer_number 1)) O6 H+ d; \ q# L7 n# X
- (while layname
" Q- a7 M' g" I6 v; B: I6 V - (if (= (/ layer_number 50.0)
V# X e1 V5 R) v - (fix (/ layer_number 50.0)): e) C, e& ^+ d7 { A
- )4 b- d! v! r+ U9 x
- (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))
* z) `& [* E5 |- K# h( L - );if( R3 s) G: z5 e9 G
- (setq layer_number (1+ layer_number))1 z5 t3 C/ B( X. a$ M8 ^: \
- (setq laylist (tblsearch "LAYER" layname)): o9 S! N. n& o/ ~1 N
- (setq color (cdr (assoc 62 laylist)))
) O1 G5 B! S1 [ |9 K5 s/ x. y - (if (minusp color)
' s% w: m' r+ [7 z: ?+ Y - (setq onoff ".")
r1 P8 s$ a ?; \) ?: L5 s5 j - (setq onoff "On")
/ O9 s0 h* w3 o# R - )
" l8 f* X- P) N: o4 } - (setq color (abs color))( R# ~: Y1 n; _. B8 k
- (setq colname (colorname color))% A, t! X7 K5 u8 ~, ]
- (setq bit-70 (cdr (assoc 70 laylist)))
* P) z4 W! s2 J6 b$ { - (if (= (logand bit-70 1) 1)
4 k" c+ w) b; J8 S - (setq frozth "F" fchk laylist), W3 d1 \) q/ j2 G0 h7 o4 u
- (setq frozth ".")1 V5 \ E* Q6 m* h
- )2 c/ ~$ P' L6 Q" i' Y( ]; H% Y/ W
- (if (= (logand bit-70 2) 2)+ O& E/ T4 |2 s8 {" q# x# W
- (setq vpn "N")
8 t, a' M: U5 ?: W$ E9 T - (setq vpn ".")8 u6 G6 o& v5 G- \# o' s q6 I
- )
/ y2 _+ k' B) L7 ~1 q @ - (if (= (logand bit-70 4) 4)+ w" _$ Y {7 i
- (setq lock "L")! ?; ~* d9 J* K: c ]" ?
- (setq lock ".")3 ^6 |% E! a3 @8 E S9 S! z* A
- )/ p% {$ P! ~/ { ?3 M7 E
- (setq linetype (cdr (assoc 6 laylist)))
: n# w, s1 @$ {. _& r( R - (setq layname (substr layname 1 31))
& f+ D+ L! u$ d0 m - (if (= tilemode 0)# q/ `# j" D! z
- (progn1 J1 O; q; _" W0 \
- (if (member (cons 1003 layname) vpldata)
+ T7 R, z8 d0 Y0 |5 {6 X - (setq vpf "C")
' Y1 q1 G6 G L - (setq vpf ".")1 {: D& V& X1 P6 Z3 X5 f9 I
- ), Z7 i9 z0 y$ R
- ), |& {' {6 K: a1 n A1 b
- (setq vpf ".")+ R8 r. F, T! `% Y0 i, A0 [0 f% T
- )0 q$ M+ i; z: [' k, T# e
- (setq ltabstr (strcat layname "\t"6 G1 O; r ], T+ T$ K
- onoff "\t"
! Y; H3 @ f- g2 J! I - frozth "\t") }% N0 T/ e! L' ^
- lock "\t"
8 n+ Z" W- z, E - vpf "\t"
- E/ q3 y3 X3 ~' z/ u - vpn "\t"
6 R& C& }. e4 H! d - colname "\t"* ^, U6 t9 k' ?& q3 |
- linetype
" d9 `, ]' ~9 X. e - )
- N. J$ J" o; l - )
, N. b9 w1 B& I& [% D - (setq longlist (append longlist (list ltabstr)))7 {& r: b( }" h6 f. H9 f/ t6 X
- (setq sortlist (cdr sortlist))
1 M/ D5 X* o% Z- Z- O; V - (setq layname (car sortlist))1 Z' m* w# m7 M& D! z
- );while# S/ `" ^4 v1 b9 A$ ^" \
- (setq longlist (append longlist (list "")))
4 g8 M. K% b% {' ]# W6 V - (set_tile "error" "")9 p1 Q6 T; [9 ], b
- )
2 g" T9 ^$ j9 \4 g - ;;
" n* i3 _) q* h$ y - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
& J& u( n# u2 Y; e* \; k7 y2 W2 i - ;; linetype names read from the symbol table. Mdashlist is list consisting
6 F, F" W$ z) b, ?/ P - ;; of lists which define the linetype pattern - numbers that indicate dots,2 L& w$ J* ]/ Z; t
- ;; dashes, and spaces taken from group code 49. The list corresponds to the
7 y5 `& }5 ~! ?) R* R- v9 y - ;; order of names in ltnmlst.
5 A: b7 m: Y# j4 Q4 M - ;;
; }. n2 D0 [2 L8 z8 J* | - (defun makeltlists (/ ltlist ltname)
& G1 X2 K$ W; r+ k' j% a - (setq mdashlist nil)' d8 u1 N; K/ C! c& z# t
- (setq ltlist (tblnext "LTYPE" T))' A4 M ` c9 t( X& D
- (setq ltname (cdr (assoc 2 ltlist))), A4 i& u' I4 U
- (setq ltnmlst (list ltname))$ k/ b D f8 F- m
- (while (setq ltlist (tblnext "LTYPE"))& t0 n% p M! P4 G0 P7 D, Q
- (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))5 e$ p. j6 R' w9 j
- (progn
4 c- w, v8 A0 ]% { - (setq ltname (cdr (assoc 2 ltlist)))/ f" p( e, @ K0 h0 |
- (setq ltnmlst (append ltnmlst (list ltname)))
. [3 J* a( |4 R - );progn
( H5 S' k, a! J) k2 K* g - );if
: W7 S V# h' \' v& T' Y& n# Z! E3 V - );while9 O$ q+ g& l9 Y3 R' ~% h
- (setq ltnmlst (acad_strlsort ltnmlst))- a9 |5 h, ~/ x& K* r- S
- (setq ltnmlst (append ltnmlst (list "")));add by rk ' E/ I5 N0 T" z
- (foreach ltname ltnmlst, F* h) e5 l. [& c$ q9 c, S
- (setq ltlist (tblsearch "LTYPE" ltname))
5 N7 r/ A! k2 S; I) I, J ~' q - (if (= ltname "CONTINUOUS")) ?1 O$ o% T! q8 Z
- (setq mdashlist (append mdashlist (list "CONT")))
6 ^0 K* f7 q; E0 h0 W8 e6 _ - (setq mdashlist
: s$ ?% k8 `7 S6 l. e) e# O - (append mdashlist (list (add-mdash ltlist)))6 }# y) ]2 ]& |- K* P7 j% k4 c/ c
- )
, @: P* E0 B4 P$ _! ^0 Y - )% F$ D8 T& r1 I' ], T. L
- )9 f# B7 m; Z6 @5 a1 m' o
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))- d+ c6 O. F( W& z( l
- (setq mdashlist (cons nil mdashlist)); u6 J; M! a+ B/ ?$ D- Y7 z
- (setq ltnmlst (cons "BYLAYER" ltnmlst))
1 i, O! \; p: s6 |3 o - (setq mdashlist (cons nil mdashlist))
. ^, e7 \& m7 y/ Y u' ~ - ); p! O6 [5 E% Z# N I
- ;;
# m) s5 ]: _3 P0 \ - ;; Get all the group code 49 values for a linetype and put them in a list
; \! k8 r: l ~4 X* y - ;; (pen-up, pen-down info)
7 s0 y {( |( E9 t. h3 O - ;;
/ W" A# u" h3 D) Q- W g& p$ r8 m4 L - (defun add-mdash (ltlist1 / dashlist assoclist dashsize) }9 p+ B+ E1 D9 }. Z( u1 }# n
- (setq dashlist nil)
, D; C7 i, B' w' g. D+ F- v - (while (setq assoclist (car ltlist1))
8 y5 m3 {) M/ |2 X4 D s j - (if (= (car assoclist) 49)
6 p( x0 m$ ~% b0 }2 S - (progn
' ]8 h# ?: q9 [; }! Y: u - (setq dashsize (cdr assoclist))
- f& h; k/ W! _9 M - (setq dashlist (cons dashsize dashlist))
) s& g) ]6 | B, r - ) \ K' ~3 \2 y. O! s8 }2 u) ^" h
- )! v) q6 G8 u& O2 ^/ g! N" Q
- (setq ltlist1 (cdr ltlist1))
* f( _/ g# I5 r0 h - )* w! z3 [$ S/ V" A; k
- (setq dashlist (reverse dashlist)): r2 I7 a) _5 e: `/ _
- )5 r9 G) m; @" B" {
- ;;
3 ~8 z/ O9 b: K) ^ - ;; Color a tile, draw linetype, and draw a border around it+ v- C* C$ o+ F9 `) ^* A a
- ;;
% y" z, v5 |# E - (defun col_tile (tile color patlist / x y) D. V$ ^+ F9 F2 i$ ]( a
- (setq x (dimx_tile tile))
* i; M7 f# w& a - (setq y (dimy_tile tile))" m4 V1 K' I' n$ t) v0 W
- (start_image tile)
9 S% ?8 k" M5 R' t* A9 _$ f - (fill_image 0 0 x y color)8 ~3 K# e( C# n) a* u, ]" Z
- (if (= color 7)/ i) V0 b) ~! D J |
- (progn! i% k4 W1 O; t! ^# K) y4 c
- (if patlist (drawpattern x (/ y 2) patlist 0))
5 @# p' ?9 z1 l. b8 o d5 Z$ W$ N# q - (tile_rect 0 0 x y 0)* p, g3 L2 _5 m' U6 D! D' D& i% u: w
- )
N7 C( x' S! E0 Q2 i" Z7 Z - (progn
& D3 q0 {. X2 t+ G7 P - (if patlist (drawpattern x (/ y 2) patlist 7))- c1 {2 A9 V+ I- V9 d. N) Q8 c
- (tile_rect 0 0 x y 7)" w2 ~8 O) J0 d5 y! z
- )) d! F; f% ^2 ~$ U
- )3 b' J, i: c Y$ t( D+ Z
- (end_image) N7 T' g5 X6 [: H6 V) v6 k
- )1 J2 v. ^4 N4 E, q4 ~) A
- ;;# }8 G: E! }; n! ]% B. A
- ;; Draw a border around a tile
( e. v% ~/ i4 q# y - ;;
6 [9 y# B' |: \# c - (defun tile_rect (x1 y1 x2 y2 color)4 Y: n6 j6 w1 |! [5 L! |2 S$ i0 B
- (setq x2 (- x2 1))
i A- k+ d: I m0 S3 p - (setq y2 (- y2 1))* e" B0 J8 a# l% a8 U2 B
- (vector_image x1 y1 x2 y1 color)" B2 c1 l, h( r+ _
- (vector_image x2 y1 x2 y2 color)4 G' z4 l" G8 i) y0 I9 e+ {
- (vector_image x2 y2 x1 y2 color)
+ C7 h2 U: v/ E/ K( |& e - (vector_image x1 y2 x1 y1 color)
% r' S7 S2 i3 J( @% c - )
0 [- O6 |: p( W2 V N# ]" P - ;;
3 i. N$ D/ X4 x2 W3 L - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
4 x, C4 ^) I6 r [2 v) A- f - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a. S3 c/ N5 i/ I1 e: D4 c. i1 C
- ;; list of numbers that define the linetype, and color is the color of the' [6 Y, r! Z. j, G, u
- ;; tile.0 n4 z" j+ I8 }+ Z" v
- ;;6 C6 P9 f, |: S! i, D! l3 r2 c
- (defun drawpattern (boxlength y2 pattern color / x1 x2$ P# Q. w% Q+ \( O, C" X
- patlist dash)
0 Z% s6 ~+ W8 B7 U* Y; } - (setq x1 0 x2 0)
" {7 H8 F* Z! S9 O* O - (setq patlist pattern)( y0 a% l( C( X2 c2 x" [
- (setq fx 30)4 Y9 b: C" W3 }9 ]) U; k% G( c
- (if (= patlist "CONT")7 m. d! F% ?. P0 `' o( ]
- (progn
1 L9 ]2 z2 m$ B, V: m# E+ b p+ Z - (setq dash boxlength)
0 u( |# M. O# F! T; N$ T; U - (vi)/ ~; N3 v8 V( d* M
- (setq x1 boxlength)
4 k9 W/ i3 F" n1 e5 U! ]- d - )
4 E- g$ L; e8 ]/ X; ~( ` - (foreach dash patlist' ^2 L5 _7 {* p+ _ i
- (if (> (abs dash) 2.5)
$ J2 t4 ~% i8 R+ L& H - (setq fx 2)
( `8 a4 }: D! p i2 g: z: c - )
0 v( {% ?* q# s6 @1 o1 T - ) R9 z' x0 A" }, f0 ~& ~
- )4 G% {, G( w' d- o2 y
- (while (< x1 boxlength): V- K" W& W) ]* I
- (if (setq dash (car patlist))
, E$ K9 T# I- o# D- | - (progn' W' u3 `3 s$ z4 W
- (setq dash (fix (* fx dash)))4 s, i. O* p, d( \, o6 X
- (cond4 i! P2 n7 Z6 e9 d6 H
- ((= dash 0)
% J) ?( B/ m/ Z- N! L. s. M - (setq dash 1)
M" h* z8 l' A% @ j, d5 x - (vi)
0 |; P" w6 E( f2 w* U4 v - )
t. c; Z6 T6 Z5 L6 K - ((> dash 0)
" M! g! j; W$ z5 p. n# I9 y5 I - (vi)
8 t+ U8 |! C0 o7 a - ). C `& R1 e- H/ ?% w, U
- (T
% A! @) d4 ^( d0 t u: }& r - (if (< (abs dash) 2) (setq dash 2))
. `; q/ O: I- A8 ~( M: F8 ? - (setq x2 (+ x2 (abs dash)))) E0 m1 s2 l& D* g0 S9 I! C$ b- G
- )6 r$ Z3 Y8 l. p0 u
- )
' _; y& e, G1 o4 N" r - (setq patlist (cdr patlist))
# [6 i( h- I2 ~( Q# K6 G7 D - (setq x1 x2)
6 }3 S+ n) ]1 j; H2 q) A5 `/ n! B - )
! q m8 x; A& [' P$ ]7 b2 ^% h' p - (setq patlist pattern)
: ?) v. M9 |; D1 j: I' J3 ? - )
# P9 @" Z0 t: x# u$ y! s2 O - )) Z0 K2 F" e) e' `- O1 c
- )1 C6 H! v: H9 f6 y* t' s- `# H5 v
- ;;9 G0 m+ y; ]1 v0 v* q) r- ?
- ;; Draw a dash or dot in image tile4 Y, G9 T: t6 k: [1 b6 A/ G
- ;;( C8 k; }" h3 C9 ^' S) ]3 {
- (defun vi ()# ?" \! S* `$ v9 ~- j; d" O+ g
- (setq x2 (+ x2 dash))/ k. \& X) v2 q" ~7 l5 _
- (vector_image x1 y2 x2 y2 color): A: m) K& L$ a6 W
- )
$ A. Y0 T" o1 X, K, m8 S! J - 3 f9 s! o& f' Y5 l8 ]
- ;; This function takes a selection and returns a list of the color,& y5 g0 u( Y, C3 g, L# w. M% R
- ;; linetype, layer, linetype scale, and thickness properties that* R% ^. p7 z- F
- ;; are common to every entities in the selection set - (color( }$ U5 t2 h% i+ X5 f& o
- ;; linetype layer thickness). If all entities do not share the same
% b4 u$ H A( y0 e# Z - ;; property value it returns "Varies" in place of the property3 A5 V& M" ?& S* h+ w# u' M* v
- ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0)7 v: F3 K7 P0 ]6 d, P
- ;; The last item in the return list is an integer flag for the" j# \# {6 {3 T2 ]" w$ @
- ;; homegenity of the selection-set object types.0 o+ z( O5 |2 a$ r
- ;; 1 = All polylines) W1 F0 O3 X+ U+ Q: D
- ;; 2 = All text or mtext or attdef, or a combination of the three1 X4 x+ d- \3 A
- ;; -1 = Any other mix of objects
6 m! E: L( k6 U( k
0 F- z( M2 Y4 W- a- (defun getprops (selset / sslen elist color ltype layer ltscale thickness
( \/ \* d6 a7 C; [& ^* V4 h4 b - width elevation height go ctr
4 a; E: f* z/ I! J$ a& R - eflag 0 R" ^; f* S, p/ D! U, w
- etype temp
; s1 y9 |+ e7 g - txt_ss ;;;;rk 11:24 AM 1/30/97
) }5 v3 f, P. u# r/ t/ h - tmp
3 P8 I. Y) N$ c+ w7 F7 a. ]) p - poly_ss ) @/ G6 i: i0 x% `4 l5 Y# w! ], k
- style
: |* O. o4 v* e - )9 U0 l8 `: N# A6 j( D, Y f2 h) ]
( b/ [' L/ u/ p+ w0 c8 }3 D9 G5 q- , J, c, a9 z5 i/ j2 A; X' _
- (setq sslen (sslength selset)
* o, E. P: @# |7 p0 B4 q - elist (entget (ssname selset 0))
8 z6 L. P3 @8 ~- V - etype (strcase (cdr (assoc 0 elist)))/ J2 I9 V/ l: M$ T; }; [% ^
- color (cdr (assoc 62 elist))9 ?! l2 z5 [# x5 `! \
- ltype (cdr (assoc 6 elist))
$ [" U& m+ x7 f8 x! p4 [: \6 l' o - layer (cdr (assoc 8 elist))
6 H. }0 X k7 Y- X - thickness (cdr (assoc 39 elist))
4 Q* w" t; P8 @ - ltscale (cdr (assoc 48 elist)): |& S* c% j7 Y6 X# k( Y
- );setq
u1 x2 ?. N0 v% B4 q7 \1 ]7 j3 u
+ }+ O+ W" T, I- (if (not color) (setq color 256))
1 \+ n9 ^4 _6 {- H( N2 ~ - (if (not ltype) (setq ltype "BYLAYER"))
! ^; ^* }8 L- T - (if (not thickness) (setq thickness 0))+ ~0 m! c4 k! l0 P9 @. ?
- (if (not ltscale) (setq ltscale 1))$ H6 `, L4 \5 L$ z' ^
- " k6 D. a `* ?1 Y- L, U" Z
- (if (not width) (setq width ""))
$ z f! ]) i1 S$ y# |7 D6 w, x - (if (not elevation) (setq elevation ""))9 u% W- d# H5 |. Y2 U* p4 F
- (if (not height) (setq height ""))7 O8 r* X3 H5 j! l7 g
. ~/ D6 v6 I) \& F, a" ^4 |5 }- (setq go T
5 ~, v: k9 A" \% M/ M: [- B - chk-col T
5 l$ A9 z* y- G' U) ]5 r8 o( {6 S - chk-lt T
- n+ j+ S( |# K$ i/ J' _1 x% } - chk-lay T - A( U8 @% I4 E9 l. @7 o' B
- chk-lts T 4 R: h( S% T7 j
- chk-th T
a/ q* h9 q' @, P - ctr 0
% {0 y) ?, M8 s: m3 G% R - );setq6 F% A2 [4 C* z6 O
1 p9 {2 A1 O5 H- ;; Page through the selection set. When a property
R5 X' e* o; C* ~) I( Y9 e! E: B - ;; does not match, stop checking for that property.
+ ~. t, I: X7 f+ r% E4 I- `( A5 x - ;; When the selection set is not homogenous, stop checking.
8 J2 g0 K4 D7 t/ i7 x! m - ;; If all properties vary and the set is not a type 1) ?6 U% b9 F. A }0 q3 q8 o$ M+ g
- ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging.) ?3 C/ P+ ]' k9 P% U/ G7 g; ~: d
- & r* r, p6 P0 D4 Y
- ;Lets set the eflag so we know if the selection set includes any $ M- e7 q3 v |0 D4 @
- ;combination of polylines, lwpolylines, text, mtext or attdefs.6 s4 D" |- o- D+ n
- 5 N8 W4 Q6 x4 L7 z2 ^$ a
- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/97 p. R: I$ D8 f' D- J! u
- (setq eflag 0)' @6 |" D4 U8 M- d' c
- (if (setq poly_ss G( V7 U2 e/ ?+ r1 _: T% W, r
- (ssget "P" (list '(0 . "*POLYLINE")
1 g3 ~( R/ d: p4 A/ ^0 i, J - '(-4 . "<AND") 8 C6 l% l2 D4 R
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")1 \1 i; J5 m B0 z; h
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")
3 A$ u: D$ c' l: c. R - '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")9 [; P* r9 D2 P" }% N4 c
- '(-4 . "AND>") ! E+ }* `' H* [! ?
- );list
T3 w0 n* g; c: ]3 _0 ]5 K - );ssget get 2d polylines (legacy and lw)
) M# d; {0 n# L8 i" O - );setq
5 t2 p# y' v- ^; T - (progn
( Q/ C+ F5 p8 E7 Z - (setq eflag (+ eflag 1))
4 Q# f; A8 p9 ~4 d! ?( {1 W -
4 x# o* l3 ?* v4 T - (setq tmp (entget (ssname poly_ss 0)));setq9 \$ g! }) j- A9 J
- ) L& C8 W ^, f! s6 d8 t3 `+ n
- (if (equal "POLYLINE" (cdr (assoc 0 tmp)))
7 k5 @5 w+ Y# u+ P' s - (setq elevation (last (cdr (assoc 10 tmp))))- q* s0 h* w6 F) W1 c+ d7 S
- (setq elevation (cdr (assoc 38 tmp)))& h4 [" K0 ^9 `3 z; @2 Q r9 B
- );if$ E- i/ Y8 v( t: |* |
- (if (not elevation)4 _, g. {6 D) N/ t& J: j
- (setq elevation 0.0);setq. F) I3 g" s8 @" l3 U
- );if9 F: H. h4 j6 \3 T- Z. r
5 O _. {+ @" k# f+ h- (setq tmp (ssget "P"
" H7 F/ q8 a5 B5 ^, q8 P. S - (list ( O1 S( ^ O0 H, G+ A+ d8 f" c
- '(-4 . "<OR")
/ k8 x' u5 a+ {* A0 t3 r) L" N0 N - '(-4 . "<AND")
+ T: d# f8 d2 k( o - '(0 . "LWPOLYLINE")
, X6 w/ i( b7 G8 Z( z/ \ K - (cons 38 elevation)2 {$ [! K; d! n& E4 k; L
- '(-4 . "AND>")
& l; p% c2 T' u2 T* B - '(-4 . "<AND")
% L; |) s3 S1 Z5 V U& i/ \# K - '(0 . "POLYLINE") V1 k* N! I3 t" t6 K+ h; G
- '(-4 . "*,*,=") 5 s0 m# `. q6 {+ A; g( h G, X
- (cons 10 (list 1.0 1.0 elevation))
/ o% k, F+ h6 f - '(-4 . "AND>") 1 z* b+ \+ G* q
- '(-4 . "OR>")
1 i5 m, f* }1 {& x6 s - );list
2 m1 v1 T& D9 c# N2 Y e7 l1 s0 } - );ssget1 {- L) F: h) p a
- );setq+ m; e* h/ |7 Y; j
4 \+ H( t3 _9 E1 }9 \& g- y6 F- (if (and tmp
1 q% C" `% @' g. c. e; g - (equal (sslength tmp) (sslength poly_ss))
1 _, i7 S8 {1 L4 X3 s) s - );and0 z. E& W {/ O5 I
- (setq elevation (ai_rtos elevation));setq- h* t+ g# N' k$ ]$ U/ L9 t
- (setq elevation "")0 R$ K# S6 `5 M6 P. s- H5 K5 X
- );if( |8 A& Z G+ Y3 I( E: e
-
! f/ P& q- E( a, D0 J - (setq width (pl_width_getter poly_ss));setq+ V% D/ I$ A$ E) K) X; ?; F" C" a
-
0 e5 L7 \( R3 a# q1 f/ { - );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!# W _& x3 L& M# u
- );if
0 U2 |, N3 a( n - (command "_.select" selset "")
' U! Z$ `' q6 v4 Q. @& S - 1 B) b9 C7 x4 v7 z) h5 f8 O
- (if (setq txt_ss
% b% q- d, {* N5 D X+ N% K - (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT")
3 X$ E) A4 ?- T6 N# z: r - (0 . "ATTDEF") (-4 . "OR>"))/ {8 c6 S p6 q* h9 ~) m! V) `) H
- )
: ]- Y( p* }8 J; X3 Y) @ - );setq$ d p% |! i4 k1 y7 S7 ^1 F9 ~7 ~5 s
- (progn! g+ f. d* @( m0 R3 [- h3 ^
- (setq eflag (+ eflag 2))& a& o. s9 ?" z3 q
- (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))
! Z3 H& B3 D! W0 T5 _8 F+ w8 O - tmp (ssget "P" (list (cons 40 height))) r% W3 m- J- P- ~# D! K
- );setq
7 W Z: e9 X& Z2 t9 C8 g# T! ^ - (if (and tmp
, h; M4 B% F0 f4 r6 O- ~ - (equal (sslength txt_ss) (sslength tmp))
% D8 r& X1 S+ G7 ~; ]- y) \ M8 T" B - );and
, F6 n2 z; d! V1 f% e2 N. c% d1 ?; | - (setq height (ai_rtos height));setq ;@rk need to translate from float 9 i4 J' |) `' |. @
- ;to string and back again easily/ ^: X8 | n% G: V2 p+ c4 a
- (setq height "");setq else the height varies . R9 ?+ T5 x! x" _
- );if
4 R* q7 }" U$ q; O* {3 u7 ] - (command "_.select" txt_ss "")
q3 k/ F3 W7 X; v7 g' { - (setq style (cdr (assoc 7 (entget (ssname txt_ss 0))))" W7 ?3 Q1 u0 N6 g2 N2 H
- tmp (ssget "P" (list (cons 7 style))) / I& v$ A+ e% L
- );setq
: g: A, P- ^# {. d+ ~0 S - (if (not (and tmp* o! B( q6 ]% K9 Z. G
- (equal (sslength txt_ss) (sslength tmp)) - w, [1 j3 d8 ^* k' G) A
- );and
7 V! e1 W# v" Z% N1 t - );not4 e% K; G1 g8 O! i) g3 I
- (setq style "");setq then the style varies
; D4 T' W% f/ ?9 T, O. W& m$ R% p - );if
! u+ K/ M/ w" s7 m7 F) y - );progn the text type objects are in the selection set3 M+ v) r# M/ i
- );if7 y1 ^0 \7 \+ P* x9 t% ?
- (command "_.select" selset "")+ F9 o* g" I# n% X
- 2 \% `; j; o0 u6 ^; d: m
- (while (and (> sslen ctr)
1 l4 f, I- \ q3 c. Z ` - go6 D) O7 {8 U) p" \4 m( H2 Z; R9 p
- );and J8 m$ n" R3 U0 `* o' Y
- (setq elist (entget (setq en (ssname selset ctr))))/ W( p" ]$ o& |
4 d! C8 `0 E% T. K" M$ N$ y3 s- t- (if chk-col (match-col))
5 _" @8 |# m/ x9 f' ~ - (if chk-lt (match-lt)), P p2 y1 E# P, @* E$ q6 z
- (if chk-lay (match-lay))
5 Y+ o! P9 G% |$ |3 ~8 s# P - (if chk-lts (match-lts))
, I/ S3 X$ [- _8 x - (if chk-th (match-th))( k8 I& H' P' w4 i/ a) ]
7 {" `8 Q; r( U) ^% U; V- ;(if chk-etype (match-etype))2 f# ^' P& W7 K x1 K
- 9 X# p2 o: ~/ ~
- (setq ctr (1+ ctr))
/ k9 w8 y8 F8 T; b. e* k# j - (if (and (not chk-col)7 w5 j( I/ l& ^) ~5 @
- (not chk-lt)
2 y7 f( y0 y6 T. Y - (not chk-lay)) x4 x, H& D( J- g' M% L! v9 L3 Q% d
- (not chk-lts)
4 \: e/ D4 D& i7 [6 k - (not chk-th)$ g7 J4 c% b; h1 P
- ;(not chk-etype)- a* b. a$ ~3 |/ \* W$ t; p& p
- );and- \. A. x1 v0 t( W3 n# y& R
- (setq go nil)
# r1 _8 w+ W) ?/ p" P! D( l$ @ - );if; J; J/ j8 S; u5 ~' l2 k
- );while
2 [- s( R% n! E9 F$ V, J6 I -
8 L% L1 ~# a+ F - (list color ltype layer thickness ltscale
, y# ^) T+ R/ k - width elevation height eflag : s1 z0 t/ b/ o! n* ^; B
- style poly_ss txt_ss
% m4 O* U7 D' a! i, v. K( {) a - )
' I0 Y! a" \5 d - );defun getprops# O4 _2 U. c) j6 k# K6 {0 A
- T$ f6 G" i, d, i6 v* Z
- ; This is a speedy little routine to tell whether the polylines in
! U: \6 B2 J* o" O5 }; G% G7 ?5 Q - ;the selection set argument are of varying width or a constant value.
$ `9 N, M) B3 v9 f. u7 p! [ - ;Looping through the vertex's has to be done for old polylines when
8 `# @; [, v) E. A3 { - ;the polyline header has width values of 0.0. Basically, in this case, + d: W' M! n, X1 O/ {
- ;information in the polyline entity header is abmiguous. Width values / R5 X9 o. x! }; g, m! c! h. s A
- ;of 0.0 in the header entity could mean the polyline has a constant : I% W2 a& g0 W$ G- q. g9 y5 i
- ;width of 0.0 or it could mean that the polyline has vertex's of varying 4 {* c6 [( M& v; m
- ;width.
( y5 t6 l) e/ S/ K6 b/ }9 \6 | - ;
. X9 N3 d" P1 h, {0 p - ; It's all in wrist. Err a.., I mean it's all in the 'if'
; a$ E1 R1 `1 a2 n0 X6 G O: Y - ;;
/ A! I1 z; k0 h! T/ f4 Z7 q - (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)
) B# ?! Y5 B# K% k7 g - 9 a C9 l% E1 Z, D
- (if ss + B% D+ G5 q$ a6 ?9 x' ~' D# U
- (command "_.select" ss "")' w% o! X' \: @/ b9 ] h
- );if
0 Y- u8 ~6 w+ N, C* J - (setq width "" E2 u/ B1 a+ B0 Z$ @- l
- flag nil/ M+ V# ?2 H) P% U7 g) W
- flag2 nil+ s- W! @/ Q# h$ F4 s
- );setq' Z- {! }, f- n" S- Y, k+ l' } A" F
- (if (not
2 ] M! X3 @. Q* |, r0 H; z - (and ss
. P; E- O5 u+ ~0 _0 w" F. _ - (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq; G& l6 i3 o! e8 ~+ R, k" C
- (setq na (ssname ss2 0)
! _' W/ k" M& r8 \8 _' c- m" D - width (cdr (assoc 43 (entget na)))6 _5 f9 ?* t8 T. r, `- p0 A) t
- );setq
- |0 c5 h2 m4 E, q2 x* Z - (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")1 `5 A' x% }3 U! m1 k3 ?; u7 D# S
- (cons 43 width)& q, I' V/ n# R1 l
- );list
1 h* O! }1 A( U5 ]) f$ V6 O4 y - );ssget+ K' @$ F9 k, V, A
- );setq+ k7 _1 B5 I- ]2 Y8 q% n% `
- (setq flag T)
# m$ Z1 b+ `$ k6 u# k - (equal (sslength ss2) (sslength ss3))( b# u( d; @3 u* h# N5 s) L" Z/ [
- );and
/ a7 E1 b& j x( D - );not) x1 E9 r; P+ P1 f& _- w! T
- (progn0 {/ t. q: X* V
- (if flag
: K; V& k/ K; z - (setq width nil)
8 q7 J u# O4 q - );if
6 ~3 K4 P" Y" Z! g$ y - );progn
' t# X. m. A5 c5 o/ u. I - );if
& w" @+ i8 D% g1 k& d0 P - - B+ a1 e% W# R2 M+ O' l
- (if (not
$ D, y4 a: P- \: t/ { - (and ! Y& ~* ^) {" o, x6 o* g- f0 K$ I
- ss
4 m$ s5 b! I4 Z d) y - (progn (command "_.select" ss "") - ]: r2 q4 d9 W& y" P' ~, L3 _
- (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq1 C3 A3 o; G( u: A1 e$ n; K1 ^: A
- )
) n+ `3 a% _ o1 }# U- ]% t4 [ - (setq na (ssname ss2 0)
, _' I+ j5 S# q# d% v - e1 (entget na)
/ B9 I: O$ @5 ?8 b4 o+ ]8 u - width_a (cdr (assoc 40 e1))
+ W+ Y7 }& B6 s - width_b (cdr (assoc 41 e1))
# g/ F/ c( ?& h( d [& x - );setq
9 ?* N/ j# G# f9 ^2 o - (equal width_a width_b)
, y# O* m* h$ t7 w& `& y3 {* j - (setq ss3 (ssget "p" (list '(0 . "POLYLINE")
( ]+ ?- [8 f% |6 n- N" l9 N - (cons 40 width_a)( S- U1 W: ]8 D; ^* A! b
- (cons 41 width_b)
* m( A0 z8 m) ` p - );list4 h! Y, y' [! w( H8 U$ H. p) Z) q" A# i
- );ssget' L4 `2 [/ U5 g7 \* X, h& ^; P
- );setq
' ^* g6 ?: a. n) i5 r. e' h - (setq flag2 T). ^$ i/ a2 ~+ h' k9 H0 g; X+ @* ]/ l
- (equal (sslength ss2) (sslength ss3))' W# ^/ }0 K: \7 g0 c6 e9 ]
- );and $ X% Z3 f7 O8 ~) K8 F2 U1 S
- );not : T% I: l$ {7 t8 O1 s4 {
- (progn
3 F$ |' W0 U5 |- S5 H, X - (if flag2/ l1 l2 K# d' P R9 m& s
- (setq width nil);setq
7 W. Q( Q7 `' W( R) P - );if
0 R8 w y) l2 s# P/ g2 _$ f6 L C - );progn then
) D! Q( j+ g, C8 Q% v - (progn! z# F; y1 ~( l0 G* {# o3 [
- (if (or (equal width "")$ @: e. L( F3 F+ o
- (not flag). T0 E# @$ C, v$ w
- );or
% S" V _9 b3 _+ z/ {: O - (setq width width_a)
8 G0 j5 k. ?0 S# _1 q* p - (progn. E; Z3 f0 m# V. ^9 K4 g
- (if (not (equal width width_a)); J/ c* q; ^, t4 a
- (setq width "")
2 s' ]0 {3 @8 G, b1 S" a - );if 6 e. t/ C3 V) b% W2 U& }9 O
- );progn
! _0 [( c# E+ v5 o* g5 i - );if: k) {7 e$ y3 y. R5 V4 L) w# J
- );progn! H9 f1 t6 J5 n
- );if
3 P2 J* i7 B* L. G. r, m - 6 h5 S" u7 J2 G. Q
- ' z( M" V, N7 W J, Y0 q
- ;now for the special handling for old polylines. l! c3 h5 E8 h
- (if (and width
- g/ d" H- k, _4 Z - (equal width 0.0)
2 d& v' n9 \# f7 {6 |" b& Y: d - flag2
1 _( I& Z3 T4 l9 g' W+ P - );and
8 X0 I4 _% i" J1 {- | - (progn
+ h; S; z9 c$ j0 F( J% g - " e" m$ t* X$ C+ e5 B8 z4 F; x
- (setq n 0);setq
% `) \' j9 k9 n" M - (while (and (equal width 0.0)& M% ^6 _* G2 j" x# ?
- (< n (sslength ss3))
, Y, C0 { d. j - );and6 c/ d, b. D2 R5 e: i+ Z6 Q
- (setq flag nil
: v8 v- _: m: n& V1 J1 g - na (ssname ss3 n)
7 [$ B0 ^4 V2 B8 N; ` - na (entnext na)8 t Z" n+ {& Q1 H& K2 ]% a. ~7 ?, d
- e1 (entget na)
% B6 n9 P& c$ I/ B8 ]6 w6 Z - );setq0 h( t* h& \, q
- (while (not flag)
, D2 {7 c9 B# b7 j# u3 e; a* Y - (if (or (equal (cdr (assoc 0 e1)) "SEQEND")
3 P# Z; z1 d9 z2 I4 n* l - (not (equal (cdr (assoc 40 e1)) 0.0))! j1 k% ~, G% `
- (not (equal (cdr (assoc 41 e1)) 0.0))' W6 ?9 t" G- X. E5 u
- );or& G0 p( b2 J* B' \8 ^- }' U u
- (progn# k" q/ K+ Z2 M- {, h
- (setq flag T);
1 ]5 d- [$ @( X - (if (not (equal (cdr (assoc 0 e1)) "SEQEND"))' I3 Z# h. g0 R7 I3 G7 _
- (setq width nil)
* _" Z% V! |5 T2 f2 k% d( C( w - );if
: A4 C5 g* e" h2 n: Y* \! v - );progn then jump out of the loop
2 E- J3 h, \7 a4 V - (setq na (entnext na)' `% @( u. H3 U3 k% C) h+ Y& G
- e1 (entget na)
7 J! y2 v6 K0 g0 @ - );setq
4 l# b. F q: _2 q$ l: U - );if
: ?+ f1 `- C% W3 n - );while
$ Z. N- H& T$ q" u0 t& [: q1 y$ } - (setq n (+ n 1));setq
2 Y4 \" ^3 Q0 B2 J' E - );while 3 n3 ~* q3 r! P0 C( v
- . N q, @, c, [+ o3 j' |
- );progn then it's a legacy
3 f4 m" C* H+ u+ f* P" f$ Q+ u - );if ;legacy polylines that may have varying widths
' C; J) x* B* h8 T( b - + ~* o" r0 J. _# e0 T* L
- (if (not width)' p8 w+ o: s& V: _6 r+ s
- (setq width "");setq
; k) p5 j0 r! a% ^+ r# i - );if
1 n5 Y, J) X4 z5 T6 ^6 Q% \ - (if (not (equal 'STR (type width)))
, L2 ]+ I% ~4 D w7 ?$ Y9 y( [ - (setq width (ai_rtos width));setq
1 u* K6 {, \ B; \2 n% `! s( D - );if & U1 L _* Z! x+ b+ v
-
) V" D( Q. v8 z$ d: _$ g - width
4 P/ T- h1 E& r4 z& ~ - );defun pl_width_getter Y& L% U" P3 z
- # e6 P' K, W/ O" x3 C3 L* L
- % h# k, F8 P4 O! C! G' |
- (defun match-col (/ ncolor)3 I' j2 M9 ]2 ]; Z' I `2 l
- (setq ncolor (cdr (assoc 62 elist)))* W; ?2 J3 k( Q `
- (if (not ncolor) (setq ncolor 256))
5 c( S! b) J V$ p: x - (if (/= color ncolor)( ^9 S" J) N# z3 `/ @$ I8 ?& I
- (progn) a2 X1 M' ~7 K
- (setq chk-col nil)) D0 O6 t4 k) e2 | O
- (setq color nil)/ O+ i$ x- j" _; B- s
- )
* A. v9 q& N7 V" }; E - )
0 b {/ _# K. R, V+ W& H1 v - )
$ J7 P* y0 s( j
; L) W5 P/ q2 c0 k2 f; ]- (defun match-lt (/ nltype)9 J6 }1 u) M. L( D" G+ u6 J* S% P0 j
- (setq nltype (cdr (assoc 6 elist)))0 M+ i5 ]( a" M6 G$ A+ N4 F* |" p
- (if (not nltype) (setq nltype "BYLAYER"))+ n @ c1 l# d" ~+ v
- (if (/= ltype nltype)& L& P8 W. b5 i- {
- (progn; m- U' S8 i& r* ^, G
- (setq chk-lt nil)1 o& Q0 T7 w$ h- E. z- Z( }+ N+ I
- (setq ltype ;|MSG0|;"Varies")
% Z0 } Q0 G# k - )
% ]" t! N4 Z" `- _8 |! U - )' P( [4 Z7 y7 \% a9 e6 q
- )
- `0 e7 Z0 d- L' t; R/ q
7 O( a P/ z# m( l1 A' s- (defun match-lay (/ nlayer) V7 L+ h" f- T4 d% t
- (setq nlayer (cdr (assoc 8 elist)))
7 _$ D) H) W4 p" Y Q F# J" P - (if (/= layer nlayer)
3 g' a$ F0 H0 ] - (progn* y% V. Q7 w# t% x C
- (setq chk-lay nil)
1 d; ]. S1 ?2 ~: J X+ N* x - (setq layer ;|MSG0|;"Varies")
% e' B, p. F$ L4 t3 P- _7 E - )' Q2 P7 d" F& q$ u4 z& u X6 t% q- k
- )* p& n- C, W1 _- u1 i
- )7 B5 @6 S2 p' c3 C* X8 S
- 4 T! g% D) D" z! H$ C
- (defun match-th (/ nthickness)# d# o( c" w) L( N! `
- (setq nthickness (cdr (assoc 39 elist)))# y" O/ f% W# P/ d1 g3 t
- (if (not nthickness) (setq nthickness 0))' n, @ b4 } k- Z- N5 [
- (if (/= thickness nthickness)
0 O% T; K7 Z# R. J2 t) i" z ^ - (progn
3 }" ^" v2 K$ X# s - (setq chk-th nil)
4 X$ h. K0 \3 j. }& `2 F4 O4 z - (setq thickness ;|MSG0|;"Varies")/ _4 f0 P" {: U- z# w; `1 |
- )
3 |7 D4 @5 j% C7 D& f9 \* z/ l - )
Q* b* w% R% j* b* y1 v - )
9 k0 W2 c& f/ ?8 ?5 k2 O
3 B6 s/ V1 U% N* z- (defun match-lts (/ nltscale)
, N; I" k5 \/ Y2 l0 w - (setq nltscale (cdr (assoc 48 elist)))
# ~+ i# c# |, {5 [. Y9 A! F6 Q6 S - (if (not nltscale) (setq nltscale 1))
# S R7 e6 n6 N: F - (if (/= ltscale nltscale)2 z1 L* \! y- _: U- b) P
- (progn
2 ?4 r6 L5 C ?4 M$ @. T& T - (setq chk-lts nil)
4 v, z# D+ @1 }7 j - (setq ltscale ;|MSG0|;"Varies")
$ t$ p4 b9 L0 h( d - )
) R# H B+ G- ?/ L9 w# U% T - ) T( Y c- K$ M5 H8 x
- )$ a9 A& ^4 L0 w) G2 I; u, V
- 7 f, N# D0 r+ o" N) ?7 f1 r) ?
- ;;/ Y/ z. k, I; C# J# J: z/ J
- ;; If an item is a member of the list, then return its index number, else
. f2 p. H- E" f! q - ;; return nil.. Y' C2 Q7 O c% q
- ;;
; m7 G4 L, @ q - (defun getindex (item itemlist / m n)( G# E1 k) b. l* ]' u
- (setq n (length itemlist))
, d& |* M) M$ l/ `8 d' z - (if (> (setq m (length (member item itemlist))) 0)
/ p8 K& M; m9 d2 R* _$ } - (- n m)
! K. B: G+ N& b4 s& H - nil/ p! Q7 N/ L: |% m7 A
- )
1 \, t6 U) c, D. J: P - )
4 w# h& J9 M4 C - ;;9 W+ M3 n/ m* m$ M
- ;; This function is called if the linetype is set "BYLAYER". It finds the2 Q' `! f/ s6 } v
- ;; ltype of the layer so it can be displayed beside the linetype button.
+ x' ]. ]' `/ y( y, M' { - ;;
+ U8 Y+ T, C0 ` - (defun bylayer_lt (/ layname layinfo ltype)
$ X1 u! A: m! b: p6 T- W n - (if lay-idx' |; R, e5 O& L! q# v8 o6 x) u2 o# m7 v
- (progn
! g; J w0 g% Z9 C: D+ [3 @ - (setq layname (nth lay-idx laynmlst))
" S% g) ^8 k& h2 S: a* `& n - (setq layinfo (tblsearch "layer" layname))
. W) f4 z3 I D - (setq ltype (cdr (assoc 6 layinfo)))
8 Z) [' I- Z: z& B% ~. x% _ - (strcat "BYLAYER" " (" ltype ")")
( F, ^- }. q' U2 V - )
% s2 |# j4 [4 v6 z" K - "BYLAYER"
+ g: P& r- X* i2 {; a% W, i - )
3 g. C/ f% }+ u( v' M! T - )9 _, y* a3 a/ ^+ @; [
- ;;
3 X2 X1 W0 L* ]( h1 l7 \ - ;; This function is called if the color is set "BYLAYER". It finds the
9 A M+ g. |7 I& I/ _/ a - ;; color of the layer so it can be displayed beside the color button.) i. ]3 \ i, w$ q7 c. W
- ;;# \ \: N5 t/ V5 H! O
- (defun bylayer_col (/ layname layinfo color)
: ~! {% U/ v) e8 Y- R6 f0 T2 e - (if lay-idx
, g B, {: J9 E0 F - (progn
' U0 l' a% D/ E% p5 m* ? - (setq layname (nth lay-idx laynmlst))
$ S, p+ N# l/ m - (setq layinfo (tblsearch "layer" layname))! j3 q, v9 Q3 k
- (setq color (abs (cdr (assoc 62 layinfo)))): m+ l9 M) s( p
- (setq cn color)
( i+ l% z( Q8 O4 f8 H4 ]2 x - (strcat "BYLAYER" " (" (colorname color) ")")
: A; v: i: q4 t; I w- |' c3 b# @ - )
2 B! d1 {( b1 @9 X: }& w4 A- [ - (progn( b4 E. ]0 W2 P
- (setq layname elayer)
" a4 q$ g0 Z& }/ v4 S% u9 p+ x* p - (if (and (/= elayer "")
# Z& V1 F& c. L# L- e+ b8 r' s0 o - (/= elayer "Varies")
5 g9 z$ Q4 o. B/ m( ]. m - );and! l# F2 b* a2 M
- (progn
' I7 @& W u8 Y! }( O' ?' g2 a - (setq layinfo (tblsearch "layer" elayer))" q: j; U* P2 i' m# j
- (setq color (abs (cdr (assoc 62 layinfo))))
- a* M, s1 \5 a8 X4 y y$ o+ }& M+ g - (setq cn color)
& `" D, D P6 r8 {4 h* N - (strcat "BYLAYER" " (" (colorname color) ")") [! [5 b" ]; K2 f j4 w# s, ^+ l
- )
3 N+ s+ I3 [8 B - (progn
& P: j$ u1 V3 R7 h- c/ I: n. `4 W - (setq cn 0)
1 L; j1 D7 q6 P) t6 F+ J - "BYLAYER"
6 a% n# z2 R/ V! u - )
* L8 K! z. `4 Q2 |3 {, A5 ^ - );if. @8 s3 i8 v) t: b" H
- );progn
) D1 M2 J: o1 F( W, ^4 ` - );if
- {# o" R/ f4 t9 K2 t3 P - ); Z* k% q* b. v# g0 K J7 M! P
- ;;, z4 I9 ~) L8 ?, s! S/ m$ H
- ;; If there is no error message, then close the dialogue8 y1 d5 M4 T: u2 }4 C9 A
- ;;
: _ T# {0 o* L2 j - ;; If there is an error message, then set focus to the tile' h' }$ |* E6 X: N$ B5 e
- ;; that's associated with the error message.6 Z& X3 ]/ w2 G f+ E
- ;;4 c) b& ~% _' L+ E6 Q
- (defun test-ok ( / errtile), A: z* L+ m) s) P$ t! H# R: B
- (setq errtile (get_tile "error"))
3 Q% V! h8 m# g - (cond
* Z* {1 m( `( P( b4 b. X8 C/ O: ~ - ( (= errtile "")6 o5 m& V; X( G5 \% E% ?! c3 o
- (done_dialog 1))6 W0 m4 I, W0 B* o z
- ( (= errtile "Invalid thickness.")
. e& u; T. I; x/ B( s/ z - (mode_tile "eb_thickness" 2))
+ N" p* w, E- f5 ^: r3 ]1 l5 O - )' f1 U0 ?8 M! O2 h( [1 Y" I5 l
- )/ y( ~; W" N) W
- ;;* |/ F; w) F, W# F8 J9 d6 m
- ;; OK in main dialogue.
0 j! Y" v* r) S/ r& _ - ;;7 \; H+ e! l: d* O4 Q
- (defun test-main-ok ( / flag)
1 _$ F( W {( g1 W+ q - (setq flag T)
, o8 r6 v5 b& T' \# h2 v, g - (if (not (or (distof (get_tile "eb_thickness"))0 r: `8 E+ g7 c9 j
- (= "" (get_tile "eb_thickness")) m; }' o ]5 F R+ [
- );or
8 F' e+ ~! L$ M& A W2 m - );not
2 W9 _/ u# g4 V9 _, b' A - (progn
, n, L3 l( @; j6 Y - (set_tile "error" "Invalid thickness.")
' L7 }" K" m0 w2 u) h - (mode_tile "eb_thickness" 2)
6 ?! ~+ j4 l6 q' | C! L3 ~& O - (setq flag nil);setq
1 e X7 ~: [' _ X- M& U5 s - );progn- |2 A1 V* q& v( I/ l/ h
- );if }9 a q' \9 v' M4 p" s* z; o
- (if (and flag7 c. |& \! a& `9 R
- (not (or (< 0 (distof (get_tile "eb_ltscale")))
/ T) z* ?$ w9 h, R - (= "" (get_tile "eb_ltscale"))
- p* o+ g: c# `4 V- {4 ` - );or 3 _# D3 A" B! c( B. I
- );not
* s; U7 N2 N* C8 S - );and
9 n( [# v( p$ f! |) v - (progn2 A7 Q0 Q) b2 {' p! c
- (set_tile "error" "Invalid ltscale.")
& r+ x+ P" b3 W3 D; a# m, e6 g' r9 d - (mode_tile "eb_ltscale" 2)
2 Y- h; L- t* ]! m s3 C9 v# f2 S - (setq flag nil); & ` r% X" U! L [2 I* e0 K
- );progn then2 j0 \: k+ g2 c) @2 Q
- );if* n) n* ]' A: A3 [2 H
- (if (and flag4 X' r7 n/ u! s: N, y- _" w
- ; Don't test the tile's value unless it's enabled./ d& G& v8 j6 B/ B9 R( n) o# D" R
- ; We're not set up for the display-only value% W% D. D2 O+ k! B) @0 l0 ~
- ; of "" here in the error handler.3 k0 \+ b, C$ `, c
- (= 2 (logand 2 eflag))
% k1 |0 K' o7 E8 r0 H: {* W" _ - (not (or (< 0 (distof (get_tile "text_hgt")))
$ y2 {5 ?- C7 o4 m9 M A- K - (= "" (get_tile "text_hgt"))! q) A" u' }0 o# @9 v
- );or* z7 [: U$ r3 H2 }- S
- );not- D0 R6 T7 u8 H/ q6 c9 p# v- D
- );and
$ S8 v& }, z R - (progn# d) D1 @, }" P) s( B: a3 R+ ~' E
- (set_tile "error" "Invalid height.")
! D) ^# H% r$ j, D - (mode_tile "text_hgt" 2)0 `2 G' j* S" E9 g; b% H
- (setq flag nil);5 d& ?7 v0 ~ z0 w- h/ T- [
- );progn then+ A4 L; n0 R8 `. I% `1 s
- );if3 v6 f0 w# L1 j' [& v4 l5 {
- (if (and flag% }6 q% F3 |- r. K3 m' S, T
- (= 1 (logand 1 eflag))
* {2 z# U& `+ j2 }4 u - (not (or (<= 0 (distof (get_tile "poly_wid")))( R1 I0 y# ?% p/ ]
- (= "" (get_tile "poly_wid"))
9 u' D% G4 Q+ l9 F/ u Q0 S9 W - );or. P6 f; D4 @6 B6 f2 R/ \
- );not
. s! Q7 N1 O) C& b1 b - );and, Z3 Y& N% l" B n
- (progn! R$ \. r- Y- ^$ T( c3 B
- (set_tile "error" "Invalid width.")) T7 L3 Y; Y. {5 y
- (mode_tile "poly_wid" 2)( o$ P i" ^7 ?1 M5 f
- (setq flag nil)5 c! V# y$ ]! M
- );progn then
2 u) W0 {: M5 J - );if
; }6 Z/ D9 R, m2 d { - (if (and flag
+ u9 ]0 K, ]4 n; Q) O - (= 1 (logand 1 eflag))
, x0 O' O" J( l: Y5 b/ m - (not (or (distof (get_tile "poly_elev"))
4 K8 O6 b1 l: x* L- d! {4 _, L" V - (= "" (get_tile "poly_elev"))
$ `; J" z& D" ^9 T C" x - );or9 Z0 e% t/ N8 K/ x- S4 v
- );not5 @+ w1 B% Q5 I8 g9 j
- );and1 V8 E& x1 ?2 \5 y' N1 C
- (progn
4 \9 u- z0 Q: O& _# Y; J- Z - (set_tile "error" "Invalid elevation.")
# _. n) A% Q- F - (mode_tile "poly_elev" 2)5 g+ R( U1 p3 A, f9 h! P3 E6 Z/ _) {+ Y
- (setq flag nil). u- o; f' X; y& y8 g. Z* T8 K
- );progn then; x# D; H! B; n1 S. k! w: w
- );if
9 w( o1 W+ _ A5 F3 O+ {! [ - (if flag
* a/ Q! k3 R( U, S' { - (done_dialog 1)
% Y' m8 m( P) t2 t$ N. T - );if5 `. R2 }7 ~6 m/ J" b, J% Z3 @$ H
- );defun test-main-ok
' z) Y& j) V. |4 Y - ' y [% ~( E. o" e" o
- ;;6 a/ a+ R9 L; s$ O0 _ k$ V1 E
- ;; A color function used by getlayer." I4 p& b' W9 s
- ;;) X/ C' _' C. ^0 U: m
- (defun colorname (colnum)/ ~+ J6 z6 J' X" w# M
- (setq cn (abs colnum))
* E% h9 S2 o# O' ~) L, b - (cond ((= cn 1) "red"). m6 e- J9 `1 k1 B
- ((= cn 2) "yellow")' t5 l- @ K" }( z$ x% B& t
- ((= cn 3) "green")1 ^- S1 s$ s: ] m
- ((= cn 4) "cyan")
8 c% {0 j- a9 D* S2 z; v* f! T - ((= cn 5) "blue"). ]- N% K/ K: z/ ~; h/ a
- ((= cn 6) "magenta")
6 T" b2 k: y" A2 A - ((= cn 7) "white")% z1 K7 H+ S3 x
- (T (itoa cn))! O: B& p: H) O4 S
- )5 x" v7 K" Y# X/ G
- );defun
# |( o+ e" M' k& m+ D/ T+ L
k7 r7 |$ A1 F+ |$ A+ T( E- ;;; Construct layer and ltype lists and initialize all
( t# @& U$ Q0 F) A - ;;; program variables:
" i5 {8 i) `* Q8 m# a0 U3 J% Q/ ] - 5 |# D1 {# u/ `" m
- ; (makelaylists) ; layer list - laynmlst( j# u2 y1 W) O
- 6 N1 ~) Q3 `; {* L: w4 e, G* {# o# W
- 0 p' N3 j+ v7 ?
- (makeltlists) ; linetype lists - ltnmlst, mdashlist
- E" p4 `! l. h - ! V; k s) x$ e, A! g/ y. C
- ;; Find the property values of the selection set.
. E( T* A+ T+ g/ o! N - ;; (getprops ss) returns a list of properties from+ `% Z: Y0 R' |7 T& [" s! \
- ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).
; K! h, p0 B8 F" k$ [# s
_8 m* {# |# y( ? [7 }- (setq proplist (getprops ss));@rk interesting things happen here
2 [( t3 O( B: U8 S8 a - # x. y' G* b3 \7 P9 D
- (setq
9 e# ]6 W0 w3 s4 p3 b* b% M" P- I- D - ecolor (car proplist)
( ?, E3 h) I7 G; s: r - eltype (nth 1 proplist)
2 k) T2 k. ]7 I+ x' T - elayer (nth 2 proplist)6 U6 l4 A. T5 K L8 H
- ethickness (nth 3 proplist)
+ }) R4 D* X8 G7 f1 w - eltscale (nth 4 proplist)
! m' F9 O! A8 e5 I! m - ewidth (nth 5 proplist)& n0 }. g* h9 } D
- eelevation (nth 6 proplist)
" W* F0 U& `/ L$ e% m) v8 A - eheight (nth 7 proplist)
. l7 U" g* a& L G2 p* Q - ;etype (nth 8 proplist);commented out and replaced with the line below. RK.* a( J# b: H: a8 n' V- X' v) B2 z
- eflag (nth 8 proplist)7 }( c( `7 O/ Q% z+ `# a
- estyle (nth 9 proplist)
" S. }2 C; G4 q4 V, ~ `0 n - poly_ss (nth 10 proplist)
7 |6 K2 U% V* m# b* e7 a0 J1 Y! C - txt_ss (nth 11 proplist)
. E9 {) s! y! }( s, s( ` - );setq
5 T( N3 d1 O. ^- v d+ ]4 d, X
6 ]4 E0 [. ^5 Y- ;; Find index of linetype, and layer lists
4 f* p' {: y, H& C - (cond
0 O/ V( V! x* A/ c/ i( |/ Y - ((= eltype "Varies") (setq lt-idx nil))$ p9 N! P9 g7 Q* ?# R+ Q0 e0 V% M: [
- ((= eltype "BYLAYER")
# [! W- u: f' h" f' i4 A& k9 ~* B - (setq lt-idx (getindex "BYLAYER" ltnmlst)))$ \1 j6 u: [1 y: u( V6 o; I2 |
- ((= eltype "BYBLOCK")
9 e" [& B$ g; U) ? - (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
3 Z+ `( C8 N C" ~ - (T (setq lt-idx (getindex eltype ltnmlst)))0 J c- d% r# u: m' l" b7 }
- )
|" o' J; B2 n7 B - (if (= elayer "Varies")8 C1 p% }6 ^% r _- {
- (setq lay-idx nil)9 Y7 \$ \3 W, \; o
- (setq lay-idx (getindex elayer laynmlst))
; A. u9 H! _7 N! w - );if
X y; q, B6 Y' N- b, [ - (if (= ethickness "")8 O3 ]( a! E8 p5 {" ~0 C7 j: L) c, L
- (setq ethickness nil)
5 c ?8 n1 ~4 z A7 e1 q - );if
/ z9 P- k5 F. g. E8 X9 p" F. r+ T, I( P - (if (= eltscale "")
% a7 m- T. a x7 Q- l$ S - (setq eltscale nil)
- t1 m9 C3 L+ [- p - );if: J' f8 j6 ^$ U6 c
$ O; y4 n3 b e. R' L% ^- );defun ddchprop2_init ; end (ddchprop2_init)
1 d1 c* J5 D3 s1 k0 J
+ T2 t+ Z8 K1 N( P! u; _7 q- ;;; (ddchprop2_select)
3 L% r" K- l& `9 G, l% C- V" r - ;;;
- c3 @- {/ n7 S# e/ L1 H6 H& R - ;;; Aquires selection set for DDCHPROP2, in one of three ways:/ {8 x: p' d- i; m
- ;;;
* G7 ^9 H- C) ]* U2 w - ;;; 1 - Autoselected.% i2 z$ m' x) c8 y6 g0 n" f, g. O; |
- ;;; 2 - Prompted for.
% ~+ a) T2 B7 t: S( O F# j. O - ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )& s. V! Y3 G. R6 u5 l% @* N
- ;;;7 T Q, t& X. T1 J9 o
- ;;; The (ddchprop2_select) function also sets the value of the. o% m& l1 p* e& d ]6 G6 r
- ;;; global symbol AI_SELTYPE to one of the above three values to8 ^8 D; q; H. y* o; V0 X
- ;;; indicate the method thru which the entity was aquired.
! j/ {7 E6 a+ U# B - , t, B" |% X6 g1 h
+ p# P7 [; b& ^9 t' |7 H: x) ]- (defun ddchprop2_select ( / )9 B4 i7 a9 @% ^& [, L
- 7 s u& G5 S: n. r) d j% j) X
-
4 E+ [6 a/ h1 X5 N( ^( K - ;returns only entities in ss that are in the current space.
! Y, X& y. J* ~ - (defun ss_in_current_space ( ss / a cur_space ss2)
& O2 V$ x* a+ K* Z. i - , y3 c. n6 K$ Z
- (if ss1 @9 P3 _- R( F. C; B& [( q, O. e
- (progn
- l3 C$ t' s9 R# U - (if (and (equal (getvar "tilemode") 0)
4 t! P1 z% B7 g% s - (equal (getvar "cvport") 1)4 f R6 R9 `+ N; \4 v" ~$ n7 a
- );and ; H) T* M" W Z( n A8 g
- (setq cur_space 1);then paper space is where we are.
, a4 m8 j5 `* h$ P - (setq cur_space 0);else model space.# a3 I2 _* S* r: ]$ V% `
- );if
3 ` ^& E# Y1 C2 [3 o - (command "_.select" ss "")
) l f: ^, z- j; j6 J# l* V! i - (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq u4 g1 e" \8 j2 Z3 h* |
- (cond ;;;;;tell the user what's going on.* [& ?6 A' T' \1 Y
- ((not ss2) (princ "\nNo objects found in current space."))! N2 n5 w3 y8 h3 r* @( i
- ((not (equal (sslength ss) (sslength ss2))) T% G& U2 n( i0 a
- (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2)))
" _6 G. b& T% J - " object(s) were not in current space."
+ h: U+ L9 s. P. N& A - )
g% U9 V; d9 ^ - )
- W+ `6 b! h) D" b2 X - )
. V, Y# A2 g4 k3 Z9 a d - );cond , k% @) T8 \1 U2 G
- );progn then: ?- S2 S: v% f- S6 l' m
- );if
' j p! c1 u/ o* U' I - ss23 J3 c; O5 B$ m8 I# M
- );defun ss_in_current_space
1 A9 E9 r R' ^- v1 T - ' g9 Z, f7 E. ?) w+ \1 \+ s4 a
- ' [! E; J2 m4 X8 u) k& f
- ;;;begin the work of ddchprop2_select1 P9 A* `( Y. n3 t
- & ] @; A( z( p" g% T: g
- ;; temporarily restore original highlight setting.) T7 P. N1 f2 ^& J+ Z0 R5 e$ A
- (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist))): Z0 w* q$ E8 J% _
- (cond* g4 v; ?1 c; c4 _4 C2 ?! Q
- ((and ss * Q _6 y) h+ b2 i
- (eq (type ss) 'pickset)+ |" H- [' E3 V7 b3 m
- ) ; selection set passed to
- v* m$ Z6 N1 S! V4 ^6 q - (cond ; (ddchprop2) as argument3 J7 I8 s- X4 F( L* `7 ~: b
- ((not (zerop (sslength ss))) ; If not empty, then
0 F* a$ X, A) B( s- b - (setq ai_seltype 3) ; then return pickset.
; n/ Z3 W0 K, K. J: f { ~3 X2 q - (ai_return ss)# y5 q) L. ^9 e( p0 ?% R
- )
; R3 l! m7 r( s0 b - );cond close
5 D% [" \9 q u: ^: A' |; C; M( I7 v9 a; F - );cond #1
/ s" ~0 i, C0 g5 E - ((setq ss (ai_aselect))) ; Use current selection
5 j# _0 L6 R+ Y' U9 B - ; set or prompt for objects ?% L6 p) `9 w9 h/ ~6 G: }6 Y. N, h- Z
- (T (princ "\nNothing selected.")3 {4 n' p3 G8 m4 u
- (ai_return nil)3 D1 T/ N8 }, J+ @) b
- )
0 @/ e9 p' k& Y z( @) ^1 K2 t - );cond close( t6 B' t3 r$ u& T' J0 w
- (b_restore_sysvars)! A/ N: P$ {4 P2 h) \/ }- [! H% z
- * W+ J! K6 y4 n4 H
- ;(if ss
4 X; E' h, s% Y6 Z" T - ; (setq ss (ss_remove_locked ss))
2 I% o2 _; X. F" P" v - ;);if
6 C1 a+ G- l0 ] - (if ss
$ H1 H& X- _" V! s - (setq ss (ss_in_current_space ss)) . v' E5 J1 c' N
- );if
2 i6 J1 n Y4 q1 _ - " _6 O f' u' J; A4 X* S, s
- ss
: p7 Z0 K/ I' h0 ~5 I1 p8 [7 g - );defun ddchprop2_select7 }, } a6 {8 P
7 ?1 w5 y0 ?: J9 _
- w; t0 Y f- W: a, T) t4 H- ;;; Define command function.
3 g3 x& w, T& ^: m5 U - (defun C:CCH ()
. ~3 U" n) M* E - (ddchprop2 nil)6 z$ N4 v; g/ C2 [" }
- (princ)3 E! g: O Y' S5 h: `" y
- );defun
5 X: m: r$ V& a: v Q
* D9 @7 u' y& j" c7 K, p- # H. H8 W6 }& A, p
- ;;; Main program function - callable as a subroutine.
# A% f) _5 [5 T& x - ;;;7 g2 e3 h* O2 n, j) N
- ;;; (ddchprop2 <pickset> )& E( K# S* k1 A5 ^! e+ A6 f
- ;;;
# e( p, ~ r8 c - ;;; <pickset> is the selection set of objects to be changed.1 A) T3 U$ t/ _4 D9 e' P
- ;;;
; Q% R, |7 `( |( \ - ;;; If <pickset> is nil, then the current selection set is% H" X7 K. ?2 m# s3 M" u$ K& U
- ;;; aquired, if one exists. Otherwise, the user is prompted
/ v4 n+ @* u* f2 O8 J7 v - ;;; to select the objects to be changed.5 u' N* u+ A) L! V0 O0 I5 s/ D
- ;;;7 C0 ?- o3 J) n; D! e% ?5 V
- ;;; Before (ddchprop2) can be called as a subroutine, it must$ r; H" N, \1 i8 |0 {4 }2 c0 w
- ;;; be loaded first. It is up to the calling application to
& A, I+ k2 z+ j7 ?: r( [ - ;;; first determine this, and load it if necessary.
$ g# G& V5 A9 U1 d - 6 }1 h. L# N- | I9 z4 c8 C+ |
- (defun ddchprop2 (ss /
( ]* U; p( ^: r0 k2 U& y7 ~
- R3 @7 y+ x% o: c( n. M- a
_( Q& G/ P. t3 U# Q/ G! g% { - add-mdash
; l. H. F, }# e1 S8 O" F! y - assoclist' I/ b O# h* u9 H5 p
- bit-708 N$ q2 W$ p; E. o( Q2 ]# o
- boxlength+ Z% ^/ v) R- G
- bylayer-lt: ]! `' c2 d4 M, x) m
- bylayer_col& n6 `8 j7 A' O* l5 k
- bylayer_lt+ e: t! l0 A" d) T1 ], s6 }0 C1 N
- call_chp2
2 K! X3 G8 m9 } - chk-col
4 a! W. z8 ]& g A: @ - ;chk-etype ;var removed by rk
{9 w& K/ i. z9 V3 {% S - chk-lay
: t9 S+ H) t: ?/ n4 B9 g$ X. s - chk-lt1 Y5 v; }8 h: z- Y6 d
- chk-lts ;var added by rk . T {* C( {+ A I
- chk-th
6 }9 g. f) m/ J4 z' ` - cmd
7 n! C/ s% q/ W! l o: H! K - cmdecho
$ z0 b, Z+ t) d6 a - cn
5 D; f ]8 N' g) T6 _3 u* Z6 r' n. ` - cnum
( l+ {1 u4 N- Q5 G( Q! g+ n - col-idx; `/ w$ [" X( v h7 y7 _4 k9 \; P. P
- col_def
3 v6 b& q* S D# B' S) n - col_tile1 s2 u( P! O( d: S# t
- colname+ ]# D- _5 d5 s8 n8 v! {! n
- colnum1 N9 S8 H6 y+ g' ^+ `
- color
! D6 a U" a8 V$ m; P - colorname4 O/ [! W; h5 K, i7 I' c
- cvpname
( c3 F# N% N; |& m* s, z - dash
" B# ^, f2 K2 M5 ]5 F4 O7 y - dashdata
5 d& e) s0 i' [- ] - dashlist
/ N' b1 d/ Z% _0 {. O6 x - dashsize5 y3 H* N3 ? B1 k6 o l H+ T" a
- dcl_id
9 U4 R& y8 J+ K# a$ b( e - ddchprop-err
- v: X6 N: H& ?; r8 j1 b# T - drawpattern
1 y$ i7 Q; |4 U/ J1 Q4 h9 B2 B3 t - ecolor
! v9 i- r/ W/ r5 @, l; T" B8 z - eelevation2 l1 U9 {* p6 V" m& D
- eflag
7 q. v0 z$ j6 W( j, L( p j7 f. @ - eheight
1 ?8 q9 E) D% _. f- | - elayer2 T3 q$ z h+ n) @6 {0 A5 x# c. g
- elevation0 g( i( G8 i5 e4 f8 k
- elist$ G: d! A0 A# ^ ~ u# r5 J7 U
- eltscale1 Z, g0 H! ]2 p2 @* t5 I
- eltype) w9 u, t' Q6 f: b* F
- en
/ M: ^# {9 V6 g# c" `3 s - ename& j4 _4 c, k: p+ c0 Z
- ESTYLE ;var added by rk. O# E* j4 b+ ?4 Y% N# J$ w
- ethickness3 a2 N; @/ Z5 [
- ;etype ;var removed by rk
- V* l) u& H* l) J! o0 G( k - ewidth
7 m$ b9 x% }, }/ N% A$ s R - fchk0 f" A: Q, x, g& f! s# J& V
- frozth
) w7 V$ Z( `2 f - fx3 c% o" J& b. g! K, K
- getcolor
) ~0 ]1 t; {1 @) o! w - GETELEVATION ;function added by rk
+ E* {: T- [8 A# ` F$ a& C - GETHEIGHT ;function added by rk a; _) C9 y& U- j! U
- getindex
! t8 S3 f5 O7 K9 F) i$ T( K - getlayer; u% j# z: E9 U/ D
- ;get_locked_layers ;function added and then removed by rk ' v5 |4 W* j2 U5 o' ` A+ e
- getltype) e4 @: W5 w4 |( h7 {
- getprops2 v! p N& b5 q) J4 O
- getscale ;function added by rk1 L$ v# O' y* X e W
- GETSTYLE ;function added by rk; p. D V5 H1 m+ v8 O
- getthickness# u$ W; {, w3 e+ k- V. P& ~- }
- GETWIDTH ;function added by rk {' ^2 U; _5 H5 W# k1 d) \7 A. k
- globals
+ T4 U( N$ |. [6 p4 D1 Y - HAIR_STYLE_LIST ;var added by rk, i9 x/ F8 ?; a3 a
- height
* u4 K* k* m' c$ w( ] - index
, L7 \' }3 ]2 {) P - item
' m. e; N# q0 R7 J) @: L - item1
. \ @0 G* z8 s# w; [2 o0 ^: { - item23 \3 Y/ X, K, [! M
- itemlist, H- c+ v' c8 J# N& G
- lay-idx
& u% {, w# d9 {; c& n0 r2 R6 J - layedit_act* P; N5 @% g7 |
- layer
5 h7 I7 y! _" R - layinfo
$ g' U8 d4 @4 c% _0 M) ` - laylist% X/ o( A1 K4 \. U& N
- laylist_act
' m' U! q. V' {$ Y% f1 ` - layname
* d# z/ R* o4 p8 d8 y6 a q' E7 Q - laynmlst
. \$ R/ A) U* e1 R* E - layvalue5 I2 _$ e7 F$ x# P7 u" N
- linetype
6 L4 ^) ?" T+ t7 d# S. ] - list1 Z8 b9 ^& d* Z* [
- longlist$ j" b; e" _) i( d
- lt-idx
/ W4 ?: q, A- `7 C3 n8 G) C' {0 k - ltabstr3 K% {% h/ A% o$ R% u: \! M
- ltedit_act" N6 j9 Z- G5 t0 V2 E1 O% L
- ltidx
" V* v! A1 u8 A ~ - ltlist
; g3 v/ G: K! I: @ - ltlist1
9 p5 x& l R$ F9 \% x' i1 } - ltlist_act
6 s; ?* l5 W+ l4 C - ltname
/ V0 n; k0 g T7 u - ltnmlst# l7 P9 E& D: C5 A+ x# q5 U+ j$ b
- ltvalue
# ~3 ?! J2 N8 e0 b& J( X, u - ltype: @ R# E7 a; E: x$ t
- m
+ l" A- `7 H& t: m3 U' M - makelaylists
0 V8 ?, H: V1 |# | - makeltlists1 P+ z; h% _- j3 L/ c
- match-col
; T8 ?" n' [7 P, K - ;match-etype ;function removed by rk
! Z# ]. F* G5 H1 m, b8 x8 C2 ? - match-in
, [, U8 z7 [: h$ s" W( w- J( K - match-lay
/ _9 G$ Q/ c% @& N) G9 A$ J( h' S Y& o4 g - match-lt) J' b8 _* I" u7 J
- match-lts H( U* }: ~5 W- u8 ?# v3 x
- match-th N: `' Q& }# F, k8 }7 d3 C
- match_col0 _: f' \/ x. U
- mdashlist
% W$ n: \' }/ a% w- T7 z3 P6 q - ;MPOPLST ;function added and then move to ac_bonus.lsp by rk6 [" h5 v; B/ b. p; T; u1 }
- n
5 D9 w9 F' \; U. c# ~ - name
5 [1 [9 R$ |2 a5 H1 B0 a1 Z* S2 J - ncolor/ n/ [. A; B) h
- nlayer
8 W) M3 V5 V a0 H. D, X: C - nltype
& T+ W R& H% T$ K - nthickness* }9 ]8 T/ I; z& ]
- off
$ J* I% q2 `5 Z% v2 }( u - old-idx
4 L& ]" w) L* J" b/ h0 i2 P - olderr9 F8 ^' c4 X( N5 E$ |8 O
- on
) k; g' `1 {6 ^; n( i) F - onoff1 q1 Q$ u1 W# ^0 Q" m4 e1 E
- patlist
4 k+ ^& C5 ? ` - pattern
7 R& s7 A7 m% n - PL_WIDTH_GETTER ;function added by rk7 o! k. P5 M4 \8 X: p1 C
- POLY_SS ;var added by rk& }; }) q' K. D- B# z/ b- z
- ;POSITION ;function added by rk and then moved to ac_bonus.lsp
# y. l6 v- v, o! y) V- u: b - proplist4 f! |8 j! r# Z; b; g" E
- reset-lay
# f+ b' K6 u" U) G4 F - reset-lt0 O9 A' ^2 S# O4 d; @) C
- s
1 _6 B, S$ E" ~/ p - selset2 y4 R6 [% f; S7 _# p
- set_col_tile
: B$ C; s0 Y, v8 n( L - sortlist
! Q0 L8 o+ A, S2 v4 d - ss" ^* ]9 d% E8 ] P! j0 C) R
- ss_in_current_space ;function add by rk.6 l, S, q' t5 f& H) g4 ~, U" \; l
- ss-index+ ]* Z$ w o$ L, S3 i
- ss-length+ N' d/ O! x2 X" [7 E
- ;ss_remove_locked ;function added and then removed by rk.* h y6 Z* G. A3 ~# ~
- sslen
5 t% R) l, i7 U% r) [/ k - temp_color$ J# O" g# H9 E
- templist9 J( {' m& q3 W* A4 u
- test-main-ok
- R& @, k% _) G% h a - test-ok
8 m8 U1 L, P4 x+ F7 ^6 W9 [, n - testidx' p9 |: v( r8 f% a
- testlay
5 H# n+ t2 r: t# B* v' @ - th-value' e6 j3 n, r* x9 H2 P
- thickness
# t4 T4 D5 J: v% o/ b2 M8 m5 M - tile
8 m( Z* s! O) @5 R/ a9 V/ U( z3 n- ? - tile_rect7 k: W0 @- z; ]" L) a+ F/ U
- tilemode
$ `, j7 |4 {7 g - ;TNLIST ;function removed and moved to ac_bonus.lsp by rk0 ?. ~2 m0 Z* l7 B: ?: G
- TXT_SS ;var added by rk
3 b! d, {+ a& h) m9 u2 y - ;undo_init ;removed by rk.
! b- p0 I; ?( J( m3 T: T - vi
1 u" ]4 B0 h2 n# C- r( t - vpf
6 ?0 n$ ?0 @& \6 G2 H" K2 V0 z - vpldata
5 O B+ {$ s( R7 ~7 ?' { - vpn
: j" b! M2 o: H - which_tiles" U" F3 a4 L: |' Z1 N0 n
- width9 \4 F7 `6 x, n* D& O9 [3 ?
- x: s0 L4 L& @4 R8 ?/ l; h
- x1
; u6 ]! w7 Y: ]) \ - x2
# m3 ?, k, ^3 F - xdlist* T& ]9 s9 [/ X# Z, Z3 E M
- y
) U' x6 \! u" t: ` - y1
% q$ L( Q# c( o5 T1 t& o - y2
2 i* ]7 C4 O d - )% B& ^5 ^" K9 Z6 [. T" m7 {" W
- . N7 h; ] x/ ^2 U
- (if (and (not init_bonus_error)
( X5 l, x6 z1 X& x" P W' Z - (equal -1 (load "ac_bonus.lsp" -1))
8 j; ?6 `% {/ D# M$ y9 e* C - );and" ^" E( k' K- P( n0 _, I6 _
- (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))
- W. C' k; n% k3 N - );if
3 c3 Z; _7 m. x1 }/ T - (init_bonus_error (list0 l+ t* S- B* A# ~: {- j
- (list "cmdecho" 0 % r. P; h7 B O" R
- "highlight" 0
: U8 R p# u" d4 l, H3 U - "regenmode" 1
$ m) w1 _/ ?$ l: M# @ - "ucsicon" 04 S9 l( k* A5 Z, t9 u
- )
0 T+ v" a. s" l+ _( t - T ;flag. True means use undo for error clean up.
5 U& H, W7 d0 \+ f0 N* t( g - );list ( Y7 h: i+ C* E# v1 Y' j3 d
- );init_bonus_error: B+ I1 b# k% O" y. h2 P2 G$ r- p" X
- . B5 c" `! [! ?& C( k, B5 C5 S
- (cond3 v7 z3 e* P/ N) t
- ( (not (ai_notrans))) ; Not transparent?4 t k5 k0 \- p9 g
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?+ A8 n+ N5 L! f4 Y
- ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?
6 l$ W3 @$ R0 x* k - ( (not (setq ss (ddchprop2_select)))) ; objects to modify?
+ t! M4 h, c( M( y - (t 2 X5 s/ O }( V1 W& s/ H8 v3 j- W
- ;(ai_undo_push)$ X5 K* h: K% F2 U0 j8 I
- (ddchprop2_init) ; Everything's cool,9 X3 p+ b. a) r% d9 }& j; {
- (call_chp2) ; so proceed!2 D6 X- b. p8 C8 u
- ;(ai_undo_pop)% g% | c' b7 ~ v
- )
; v! L, O; w* w6 x& D - );cond close/ [0 p0 A& {$ l$ r
- " F ^3 F/ e; f; {* l
- (restore_old_error)
5 d C0 r! t* ` - / C2 K# L3 i9 g+ {9 s
- (princ)9 c3 t2 B9 `. ?# v. T, W. t
- );defun ddchprop2
% w) p }, T& v |: L" { - % O" ~ t. }" J' H
- ;;;----------------------------------------------------------------------------
+ U( F0 o% X; P4 L$ w5 X
; u$ ^( O# u' ~3 }8 e$ @& B- (princ " EXCHPROP loaded.")7 c: @9 r. A+ e: u+ \
- (princ)# f# ^5 {3 z2 U- O# ^
9 V5 E5 Q# {: u2 K3 Q( r$ F. {& C- ;;;----------------------------------------------------------------------------- |' K, A; ~+ l5 ^( o3 a6 z J& o! Y
- ;;;---------------------------------DDCOLOR_LSP--------------------------------
, ~' H1 F) Q7 u- r/ I! x4 o' r4 B - ;;;----------------------------------------------------------------------------2 u' P t* o3 `/ }- c, V
" L$ P t, @2 T$ A* W4 M; [7 X7 N- ; Next available MSG number is 24 8 _9 Q; ~. B$ h& z: X5 Z
- ; MODULE_ID DDCOLOR_LSP_/ v2 h6 q. Z. o# h
- ;;;
8 n% L3 ?9 f/ Z - ;;; ddcolor.lsp) h9 J6 i1 ~& ?
- ;;; 5 V4 R8 A) J5 c% F6 V
- ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.
; Q( D; i# X- V7 P: `( D - ;;;
" A8 j3 d {1 f - ;;; Permission to use, copy, modify, and distribute this software) @$ M- L9 K2 y. a( J# G" Y
- ;;; for any purpose and without fee is hereby granted, provided9 \' d/ W9 S5 Y8 |; z
- ;;; that the above copyright notice appears in all copies and. B0 ]" w O+ _& U* f& W: w
- ;;; that both that copyright notice and the limited warranty and
1 I% f* U8 h# n: _& L" S) ~ - ;;; restricted rights notice below appear in all supporting/ n! }! s! ?- u8 j, n
- ;;; documentation.
6 ]( g! I5 f5 `- o% K, q4 G8 M! b - ;;;+ q* B1 K8 H' n' @, O3 B
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.3 P* D) \9 {4 u: C+ r5 ~& m
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
8 q& R0 g& Z/ L; A& c' }+ d - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
{2 S. v/ c3 Y o9 k - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
( F) R5 \3 O0 c% R6 P: U - ;;; UNINTERRUPTED OR ERROR FREE.
J* I* C/ q( D+ ~; f - ;;;3 e% N- K/ w& A* J. a: v" N# n
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to2 [( U3 ]2 t# Z% s5 d
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
5 k; Y: R e, t! v4 @5 P$ ^ - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
- W' }+ j; s# F( j$ K; t - ;;; (Rights in Technical Data and Computer Software), as applicable.
- c# G6 J7 q% T( E# p6 L( d - ;;;
) K/ l0 X0 _# ? - ;;;.2 _# U+ W* p6 p6 D
- ;;;
% b9 W5 U1 g. Z7 m* i9 l1 I - ;;;----------------------------------------------------------------------------) P$ H) S* q9 W! i% H; w
- ;;; DESCRIPTION# `% H( K' P3 [7 k
- ;;;
- y3 A. U3 C3 U" O5 l7 ~8 ` - ;;; Chromatic Pallete style color selection dialog.* |- o- c$ i( t! f" x
- ;;;
: O- x5 P4 ?: v# S - ;;; Globals:
' }/ s$ H. T- y' T9 j - ;;;
' e1 K* J" v. A' ~3 D - ;;; chroma_color - Integer color index. The last value selected
" t. L7 \, ]6 B Y - ;;; by the user in chroma dialog. It is not cleared or reset9 Q. k0 n* {' N2 X
- ;;; by a cancel. Only used for communication between callback8 j8 T- |$ z3 g6 v4 g
- ;;; functions and the (chroma) funciton.
, S# l! k; F# @ - ;;; ' i+ N2 e' y6 P* t
- ;;; Depends on the definitions for the dialog provided in chroma.dcl.
! u. J' C1 C3 K, ]* J - ;;;
' f0 q2 a1 v# _6 s) \4 g" Q* P. ` - ;;;
* t2 a# c0 Q! B0 [( @4 u - ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma
( ~2 s. C5 i! `7 O% N: s - ;;; pallete style color selector.# z! u. S* c4 ?* D& y4 i' h
- ;;;
; O( @7 ? B9 U - ;;; ===========================================================================3 y: H2 n6 c+ P2 X
- ;;; ===================== load-time error checking ============================
; e# r# \3 F: m2 A; T, M - ;;;. A. T3 D' ^9 _. R+ {8 y# X/ E
- / l7 F$ G/ f& E4 R" J1 ]
- (defun ai_abort (app msg)$ W; y3 H5 M* g- B$ i% ]9 Y6 ^
- (defun *error* (s)5 ~) h- x1 U* ]: L
- (if old_error (setq *error* old_error))
5 X0 G$ O8 a0 @& Y& j - (princ)7 `, D" L, s; v( I: [; g
- )1 m) f! i* t ?4 Q7 n
- (if msg
. |6 q( [' h) K* s Q - (alert (strcat " Application error: ") y( D$ n& {5 i2 M4 |
- app/ q X! c+ Z; F9 `* R4 N& `3 W7 d
- " \n\n "; p v8 s& Q2 y4 M- M1 d
- msg0 \* \# R" E/ K5 X8 L
- " \n"
( ~! t: V/ ?1 I' @! Y) g - )
8 F- s9 y' F E6 r/ ^ - )8 X: c, p2 K1 _8 x' T
- ) P( O- y3 Z0 }' \0 v n
- (exit)- N1 R! l# o6 Y' z. @+ T, X% G
- )
$ ~3 s6 m. S M# U2 J - 7 p: z' A* z6 @" T0 b6 W" \
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,1 Z( w# h9 l9 h/ G+ I5 U
- ;;; and then try to load it.
. k1 p4 x4 C( c - ;;;
9 }! h& `% N0 r4 T B4 n - ;;; If it can't be found or it can't be loaded, then abort the
}5 D4 [; ^ L5 ?* ]6 Z* v - ;;; loading of this file immediately, preserving the (autoload)2 \* }9 o5 E* T& `3 J* @. P8 {# O
- ;;; stub function.5 P ~. j o2 T D, c6 a) _( h
! Y" m0 K3 {8 a5 i8 v7 x- (cond: Z. r0 I5 R6 g1 l
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded./ n9 N. e- F6 H! |( C
) V t$ u$ p, h4 H4 C7 h5 u) q- ( (not (findfile "ai_utils.lsp")) ; find it( y7 N4 E6 O. d) b
- (ai_abort "DDCOLOR"
5 E9 s4 l% q$ s8 p) N- J$ d$ m - (strcat "Can't locate file AI_UTILS.LSP."
+ v. J/ S; e6 j0 X8 \; j - "\n Check support directory."))). F1 P' z) b0 j/ c. ~- |/ ~/ [- J
- # S& p; d* } C7 ~* m
- ( (eq "failed" (load "ai_utils" "failed")) ; load it+ ?) i9 m5 ` W# o4 D& Y6 \3 M
- (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))6 O+ H0 j- \0 C @ E) ^0 v
- )/ b- Q" Z& F i( x2 \0 O
- 2 O. s3 h1 [6 V& w: ~5 v
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP: e) D* w8 }4 n6 m4 O. j# r7 P
- (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses, Z" O2 v6 k2 ~. i. g
- ) ; ai_abort's alert box dialog.
& P% _6 s0 _% C% i
8 y1 h; R) ?" I9 b+ t4 {8 U6 K5 g- ;;; ==================== end load-time operations ===========================
; H m( y" z: o6 h - ; t2 b6 |) M+ w
- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr), \4 j& U! z* z( A, Z. K
- % t2 {( J4 w% [* ~8 \6 J* T7 S
- ;; Main Color function, called by setup code.
" O9 t" |. L6 C' h1 ~, x - (defun ddcolor_main()
, F( \ ]# }* V. Q# _& s - # C5 E+ C$ o! Y0 f4 G$ {
- (graphscr)
- K( c5 Z5 o/ C# V! y - ( D2 _4 k' y5 Z
- ;; Get the color of the current layer, for possible BYLAYER color swatch.
! [- l7 Y0 i& q# j: H6 o( `' w1 F - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))' N9 ?, G$ v' ~4 b8 h3 n& p5 |
8 T0 I+ t( I( m" |( Y" D- ;; Call the dialog here...
Y0 q% J& l9 d' _ _' ~8 z6 a6 U - (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))
% {3 U9 a5 f7 F, b; z; C6 D* s - 8 \# s3 y7 g8 K2 k( r' }7 }
- (if clr( u0 G! v. z$ L+ k5 I* `/ [
- (setvar "CECOLOR" (citocs clr)))
% K( T, ~- D6 G8 @: b - )( i& ]" X9 V& e* A6 M$ Z) ]
- $ V8 P4 L. G! ~" R; g* p
- ;;;5 p3 N4 b( r9 H0 p- z
- ;;; CSTOCI -- Color string to color index; _" I* ~, p0 Z# s+ g
- ;;; Convert an arbitrary case string into a color index.
. D7 m: H& M# O! V) | - ;;; Returns nil if string is not a valid color.4 M4 A* F. \8 \3 [7 }% ~
- ;;;" N$ G) U1 l$ S# X. e& ~, G
- (defun cstoci (str)
$ W9 V6 ~$ f7 {% Z - (setq str (strcase str))4 W1 O" d' S# r* r
- (cond
& z' F$ B) Z' X# [9 q - ((= str "RED") 1)( n3 j& S1 b9 Y. V, T% ?- n
- ((= str "YELLOW") 2)
8 E. ]8 _- l0 q# H: {6 r - ((= str "GREEN") 3). G; y+ `" S. z( k5 d
- ((= str "CYAN") 4)
" L6 `4 `6 ~, |7 |' ? - ((= str "BLUE") 5)7 _$ }( |6 v0 w3 s
- ((= str "MAGENTA") 6)
; }8 R5 u3 x( c - ((= str "WHITE") 7)
) p9 E' \, j2 g# x$ t. H0 X - ((= str "BYLAYER") 256)
+ x2 M1 k" r& } - ((= str "BYBLOCK") 0)$ m: q1 y) [) m( A1 @0 `1 E+ G
- ((= str "BY LAYER") 256)3 p4 s* ?, T X$ l7 g% X! y
- ((= str "BY BLOCK") 0)- J. K7 g" H4 @/ W, X
- ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))
2 e/ k* L0 G5 Z% Q) A - (nil))
$ f, B& _, D: j - )7 p8 r6 |9 B& ^* V' n
- % g2 l# ]6 o# b0 G
: P& v7 B3 }: j' G- ;;;
* _0 s! i8 N! Q U" L6 }! e! ^ - ;;; CITOCS -- Convert color index into standard color name.2 P9 F0 E4 O: P$ ?% o" |+ o3 ]; s
- ;;; Will return the standard and logical color names as text; n* S8 C) q- }. b3 N3 V2 g
- ;;; strings. Returns nil for out-of-range color indicies.5 Q" Y" w: \9 u8 u8 z7 m% o
- ;;;
4 i% M# ^1 U' b$ |3 H- i! D) S - (defun citocs(i)* I! ^; p) N3 e! O9 }8 {
- (cond
% _5 [' Z, s" V9 \ - ((= i 0) "BYBLOCK")
8 Q3 z' D6 m; b8 E* b - ((= i 1) "red")
+ E* p+ s9 H5 u5 D1 ]7 `* F0 J5 b9 m - ((= i 2) "yellow")
4 j' ~' `) O' J; _4 k - ((= i 3) "green")- U) M) M9 o, @7 A1 H- `5 d/ x& m
- ((= i 4) "cyan")
1 P1 F% D, w3 S2 H - ((= i 5) "blue")2 c i+ \; ?+ O7 t& N7 ^
- ((= i 6) "magenta")- ]: \6 X# O" D8 d9 H
- ((= i 7) "white")/ L! a' |$ w& `( Z. F' R
- ((= i 256) "BYLAYER"); Q1 K' k2 O' G6 M% M
- ((and (< 0 i) (> 256 i)) (itoa i))
, J+ |1 }! T1 i7 Q3 D# P- U - (nil)); ]" h9 h. N; y2 y2 H! g* w9 E
- )
+ ^# f' c% F7 L3 { - 8 v) r- I1 ^" c# }7 i
- ;; Start of ddcolor- C' @' n! i; u& R4 e1 }! `
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
4 T! W: F3 |5 E4 D - old_error *error* ; save current error function& h/ j0 m3 i7 W# g: I
- *error* ai_error ; new error function) r* C2 \. P- p
- )
# g" t3 ?) b$ s! R5 s. }7 } - . n/ b* W% @* J$ z& ?7 k
- (setvar "cmdecho" 0)# }% V5 ^+ u1 p/ Z" ]( Z9 u
- : i1 K; G9 g# B
- (cond
+ }2 ^& }2 F# \, ^; U' ]$ @; P& a - ( (not (ai_trans))) ; transparent OK
) p7 {0 h( D# f2 g - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?3 r8 L8 k( X( r' b
9 [# J2 `8 F; V% k! ?9 ^% p0 J# y- (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))
: C9 }+ o0 W% [: o5 G$ r - (/= 8 (logand 8 (getvar "cmdactive")))- ]8 G& C8 z3 K. r1 j9 E
- )
! y# Y9 h( c' _+ H3 F! F z ? - (ai_undo_push)# N1 W4 i3 ^/ u5 y) h, {
- )6 w( D% h w6 H$ h/ a7 \ L, m
- . m# J, d9 w% I1 p+ z8 I$ ~* w
- (ddcolor_main) ; proceed!
8 p" N; ]+ h5 p% h. N0 {" A - 9 k2 ]8 |4 F. m# q7 w1 T5 P
- (if (and (/= 1 (logand 1 (getvar "cmdactive")))/ i8 u1 S1 E8 d" l$ {
- (/= 8 (logand 8 (getvar "cmdactive")))' n5 a3 F( W& d) o$ N4 T
- )
# _- u4 N4 @: v: ~# `& z - (ai_undo_pop)" O$ F q( S% B" E8 @
- )
1 j: N; v7 i! {# [/ `+ J- N - )
* a4 R9 ~- X. K& z - )
. X8 |, E+ M8 ]4 y) O
/ z2 }! m( M O9 V# o- (setq *error* old_error)
+ H7 D+ v4 o0 k/ X6 N U, i% I X - (setvar "cmdecho" old_cmd)9 p0 C( @* s1 F. ` T
- (princ)
* V" y, h" h/ @2 w( q+ r7 @. t
* p4 U' Q2 M! }0 {7 [) `- )
, P; x' E" h4 x - 2 n. o+ N8 ~, o7 l( e+ m
- ;;;----------------------------------------------------------------------------
5 a) L1 {/ p# e; V7 N0 a& S: T - 4 E* M9 g/ r- n3 ?' }# P1 E
- (princ " DDCOLOR loaded. ")8 i" e) j$ j* E4 j7 n
- (princ), w9 N, |$ ~- B; a
- % Z5 u" R; l) C6 M
- ;;;--------------------------------------------------------------------------;& x4 ?; i' @' t9 P3 p# j: Q6 D
- ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;: Z/ q5 X2 X9 e4 U
- ;;;--------------------------------------------------------------------------;
. U- O6 K/ j' z& f - ;;; ssx.lsp
1 P( V( F% Y( z/ }1 s q: U% M - ;;; Copyright (C) 1990 by Autodesk, Inc.2 z4 @% R' @- u
- ;;; Copyright (C) 1991 by Control Systems, Inc.
) `: U( _ t5 T - ;;;
( T, `9 x, o! P( G3 f - ;;; Permission to use, copy, modify, and distribute this software and its
# [( a& o" l: l7 R1 q& B - ;;; documentation for any purpose and without fee is hereby granted.
9 S0 u8 z2 {0 u4 Y/ J - ;;;! d" V# j. Z, G1 o" D' c
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.. {/ y# d3 p$ Q8 L O
- ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF3 d C% ]0 D' R4 _* {) y
- ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.
1 d( J7 Z. r0 k( R8 e$ a - ;;;& m" Q9 x1 _0 l0 L0 P d
- ;;; Larry Knott Version 2.0 7/18/88) E9 Y+ ~7 Q& I: |% c- Y2 \3 A6 x
- ;;; Carl Bethea & Jan S. Yoder Version 3.0
. L$ h9 `: `1 P2 W+ N) w0 J - ;;; Enhancements to (ssx).' k/ V0 R* s2 X6 Q
- ;;; 15 March 1990 5 z7 [, T& X2 o2 c9 r
- ;;;, _. t& y [7 u( i4 E& { ~6 y
- ;;; ARTIST Software, Inc Version 4.0 December 1991, J4 K3 I0 ~. u) f! q9 P0 I8 a% L
- ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,
' F+ J% d# ]9 U# L+ [$ K - ;;; use Flexicon menus4 C) K0 S8 L& U$ }2 u9 O
- ;;;, w" i/ ?& C( U; S3 F# l
- ;;;--------------------------------------------------------------------------;
1 e) Y V! X, v' V/ V4 |0 l! h* r - ;;; DESCRIPTION* I) S3 N- c% r" a5 i
- ;;; SSX.LSP * J! U9 \3 c9 a! n8 v. ^1 c# A
- ;;;
$ @% G' b! f5 M; E - ;;; "(SSX)" - Easy SSGET filter routine. . s; t% P" Q; }5 s
- ;;; & d( b( N3 { q7 p* f
- ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt 3 v* g+ M5 ]1 X, O
- ;;; to create a "previous" selection set or type "(SSX)" in response to / c" T/ E8 `. A2 w
- ;;; any "Select objects:" prompt. You may use the functions "(A)" to add " J& a. V) J$ o' }/ }0 X( L
- ;;; entities and "(R)" to remove entities from a selection set during
. `8 [9 Y; @+ |! W# ^ x - ;;; object selection. More than one filter criteria can be used at a . C2 N6 f7 p9 h/ x( ]
- ;;; time. $ W. e4 v- Q0 O/ z& R1 p# u
- ;;;
/ G. ~& C9 Y# Y/ Y" r8 `5 ^; e - ;;; SSX returns a selection set either exactly like a selected
* D# i# c8 I8 z& R$ ? - ;;; entity or, by adjusting the filter list, similar to it.
, r( R" C; l& R, k0 M/ I - ;;;
6 y* U: x) o, T7 y& p/ [ - ;;; The initial prompt is this:" F& ?* \1 E8 I
- ;;; * }# R4 g; E9 |4 J, j; x3 ?; W# O: S
- ;;; Command: ssx
" b( t& R7 X7 Y0 G% F - ;;; Select object/<None>: (RETURN); X& H% ?- C6 e7 ` w
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: . w6 o/ U0 G- T% G% `5 l6 Y
- ;;;
8 f. K$ n7 @+ m8 Q4 w! n - ;;; Pressing RETURN at the initial prompt gives you a null selection * c+ k) H4 g3 [' i" R
- ;;; mechanism just as (ssx) did in Release 10, but you may select an
0 y- r L' {$ e( ^5 K( o6 i3 Z4 L - ;;; entity if you desire. If you do so, then the list of valid types
. u6 a' k" @! Q6 R' k: h* {4 A$ f - ;;; allowed by (ssget "x") are presented on the command line.
" g5 j2 k) F6 x' s1 b, `4 Z$ M - ;;;
, h8 M4 T+ ?5 G. m( R& M* ~ - ;;; Select object/<None>: (a LINE selected)
$ r. T9 B5 n# M - ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
3 I8 g0 j2 L3 t: Z u/ Q - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
6 V; q5 g; K8 \: q% W5 ^5 L% ` - ;;;
7 V9 N+ F! V. [1 Z0 ?. `0 W$ P8 n - ;;; At this point any of these filters may be removed by selecting the
% d- p7 u2 a7 S/ e: u - ;;; option keyword, then pressing RETURN.
3 [3 @) x+ Q2 n2 K - ;;; , G6 p) D5 c, l; Y
- ;;; >>Layer name to add/<RETURN to remove>: (RETURN)
( F! U4 }0 w# M$ ?) h; k - ;;;
% o+ j( ~, `" U - ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0)) \2 |! m3 y$ G+ Z3 F5 R+ F
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
7 p3 l- [+ Q/ \, Q+ ^& O5 K - ;;;
; E' _2 a0 E7 O: z: G - ;;; If an item exists in the filter list and you elect to add a new item,
7 N& O; L- y% D5 z4 [! C3 `3 ]3 [+ Q+ z - ;;; the old value is overwritten by the new value, as you can have only ; E3 y& _5 R- B( }7 e/ Z7 P3 `
- ;;; one of each type in a single (ssget "x") call.
) j% e, ?( v6 \. Q/ c - ;;;
( y# M2 N+ a- L - ;;;--------------------------------------------------------------------------;& u9 p8 j( T3 G0 D2 s- X$ w1 R! v! n
- ;;;3 E) r% f; v8 E& K p
- ;;; Find the dotted pairs that are valid filters for ssget
9 F+ _* z% E+ f0 i6 [* ^' K - ;;; in entity named "ent".) I( a# a0 A: O r, R
- ;;;
! I, H4 t* y, W( s - ;;; ssx_fe == SSX_Find_Entity. S* P2 A( V2 x, W& `# o9 x
- ;;;
u6 w3 S5 _) L' e4 w' _: N - (defun ssx_fe (/ x data fltr ent), n: l8 B0 [& w" ~6 k( ]0 [
- (if (and (= flexvar 1)(/= t2 "Pick"))" f1 ^* y( A E3 l) x- ~9 { q
- (setq ent nil)
- p: \$ Q) V4 c. u - (setq ent (car (entsel "\nSelect object/<None>: ")))
1 P, k5 v7 Z1 p5 x6 O - )
; O. _5 h, j6 R9 F, S# h - (if ent. [) ]5 }" i7 a2 ] r. S6 [
- (progn
8 ~) T& d |2 x- R - (setq data (entget ent))2 `% @, m I' Z# K% B H0 U% O
- (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38
1 g2 V3 }( d8 H/ H9 O8 D( J0 C - (if (assoc x data)
( w3 t- R$ V K- D' h) Q: A - (setq fltr Z% A4 _. o$ Q' h3 S, k4 b$ l8 x
- (cons (assoc x data) fltr)
" ]+ G' _, x% v8 g# Z3 j6 I0 a - )
6 S$ d1 d6 K$ U* H/ S+ ~* l - )+ Q9 ^+ @4 a! D& ~) f8 D+ Z0 i
- )
: @' \- { b9 n" }9 ^$ _- P8 | - (reverse fltr)5 ~7 s/ x) `5 }$ B2 ~
- )
& _9 m! Z O- h( Z$ k - ) / {/ z# m' F- I
- ). U6 c! @7 m; U& M! @
- ;;;8 F9 c% F3 s) Y* u7 [$ V$ o2 t+ s
- ;;; Remove "element" from "alist".
& R+ G# A! W3 n- I, }' H' l6 c - ;;; O( h1 ~% ]' _* `* p: Q, o0 `
- ;;; ssx_re == SSX_Remove_Element
( c u8 V+ Q8 Y; n% g' n - ;;;% O0 `/ ~) h! ]2 F2 @: X
- (defun ssx_re (element alist)
) Z+ S& y) ?" p" _- c$ Q) t - (append8 X: s7 Z, L0 u& K# K
- (reverse (cdr (member element (reverse alist))))8 w+ p+ f" ?% [; W* H
- (cdr (member element alist))
0 C9 t9 {& N( M2 \* H - )
3 s' z5 `3 r" q8 O4 p7 C - )
, _3 G9 I( w. \9 |% Y+ f - ;;; Q- X6 H5 y9 I4 r) b! i! l
- ;;; INTERNAL ERROR HANDLER
/ G d' u6 l: \- q - ;;;
5 @! h( J! q/ c8 M& | - (defun ssx_er (s) ; If an error (such as CTRL-C) occurs5 E: }) R% g- S
- ; while this command is active...! l1 p( R. D; ^* |, G+ |0 R
- (if (/= s "Function cancelled")
0 _8 _& \/ f% L- R5 J+ l/ @ - (princ (strcat "\nError: " s))6 S* Y* X8 ~# u. U8 w
- )5 C5 x5 n; w2 g: |6 f1 b
- (if olderr (setq *error* olderr)) ; Restore old *error* handler
/ S; C$ M' Q: _# U ^ - (setq flexvar 0)( V# u" A+ e' p4 N9 w
- (princ)3 U. s) _5 N0 h- Z# S8 ]
- )+ c. C+ h$ k0 V" x
- ;;;/ n7 M) s' @) b% }# h# q- Z& G9 @
- ;;; Flexicon call routine9 d% c7 Q* c. ^* v
- ;;;
( I% S- `; m( s+ a- \# ?8 I3 ? - (defun flexmnu (a)) M, d) c+ L; @+ n% k$ V3 F' ?
- (if (= flexvar 1)
! q% p0 m/ u' Z" g2 U - (command "FLEXICON" (strcat "FLEX" a))
; b, ~' w! u1 g$ O. V; g4 A7 n: v( n( K - )! x' M* u+ d8 U+ c) N2 m
- )$ p0 W( _+ Q" I6 S( l0 \8 _
* I' B0 H! w- u% V8 `1 y- ;;; * m' N3 C7 E; l
- ;;; Get the filtered sel-set.% z! {: E* j7 ^3 Q+ ~& h+ b
- ;;;
/ e+ b K. @- Q8 U) y6 b& a3 V2 Z - ;;;
+ ?' u! [& F: E0 \ - (defun ssx (/ olderr)# A* l. Q8 g: b
- (gc) ; close any sel-sets
; P& x6 N2 a* n5 b - (setq olderr *error*
% i9 J9 P: h/ }" z - *error* ssx_er . C, {1 H- x) s+ v7 q$ B! L7 f
- )
: u1 T F4 C" H+ b; B3 X+ P/ J6 u T - (setq fltr (ssx_fe)) $ `7 Y( I+ Q- U7 p: c+ p# q
- (ssx_gf fltr)
3 O; o' X7 R# g$ l) H' L - (if (= flexvar 1) L6 `$ `) t4 [4 P' C
- (progn
% M8 z7 X$ B- _! `- e8 z" _% e - (prompt "\n \n \nNow select the required EDIT command and (P)revious.")8 R6 `4 s) J) }% _) D+ T
- (flexmnu "EDIT")5 H: f k, c: [* }4 H
- )
5 T5 v3 B `" G; i7 U/ U, _, X - (command "p")
: N) T: J- M1 u+ [2 [5 d - )
' I, Q2 g; W1 U8 D - (princ)
6 ~7 d8 ?& ~" ~* A$ M! L: H9 E - )" ~: O h3 D/ V) ~! K/ ]6 ]1 s3 k( H
- ;;;% _5 {: E- W6 B8 \# Y( m
- ;;; Build the filter list up by picking, selecting an item to add,8 m0 B8 U) _/ |6 D8 y# c
- ;;; or remove an item from the list by selecting it and pressing RETURN.; C/ H. U5 c! Y5 R$ L7 v5 b& N* `
- ;;;; C: R7 }6 ^: g" o# ]9 g* [0 R0 z
- ;;; ssx_gf == SSX_Get_Filters
I9 D* O5 q( w- h, a5 |; G/ H - ;;;
9 {' W; ]/ o" T/ b2 B - (defun ssx_gf (f1 / t1 t2 t3 f1 f2). D" J }* g9 F, p
- (while
! h! }1 k7 I# y* H4 U* f+ v, H - (progn
9 u$ B" R. w% o6 Y - (flexmnu "SSX")% W/ D8 X% o) U2 d4 F; `
- (cond (f1 (prompt "\nFilter: ") (prin1 f1)))
2 M4 m; ?- Q3 a - (initget ( q1 }' E7 A% y) R$ u3 t
- "Block Color Entity Flag LAyer LType Pick Style Thickness Vector")! b2 c1 X/ X A* g( n
- (setq t1 (getkword (strcat
7 E/ M/ J6 x$ _7 J. t - "\n>>Block name/Color/Entity/Flag/"" N2 C' \3 Y5 Q5 ?- P7 M
- "LAyer/LType/Pick/Style/Thickness/Vector: ")))
8 j& E* b3 k0 L: S" w - )
v, C; p R' |2 g& w! H+ f7 ]1 ^ - (setq t2
9 L" `1 |& @$ G- @# s1 B - (cond) m" k* _9 c) S7 Q
- ((eq t1 "Block") 2) ((eq t1 "Color") 62)
# {( U3 Q; P# k! p - ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)% p$ ]5 ^8 i- F
- ((eq t1 "LType") 6) ((eq t1 "Style") 7); [9 X) s$ l F* e8 @$ d
- ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)/ J7 z6 w0 E" r( \" U, n2 J+ \9 G
- ((eq t1 "Vector") 210)8 A5 x: S$ J* u7 {
- (T t1)/ H3 @& l% e4 M* @% C1 R. v7 Z) {) s& z
- )
; R" o8 |0 a6 l: u; A - )
L( D1 T2 E: T& I) D) h - (setq t3
. c! `" ]) G' g - (cond
2 k- |$ O* `& C- y- \- p4 _ - ((= t2 2)
0 f' H6 j2 a) ?" j1 @( f# ? - (if (= flexvar gtads 1)
. b' a1 _' f6 L$ a8 c$ ~( R - (progn7 }+ i, N# o" e) e
- (prompt "\n>>Block name to add/<RETURN to remove>: ")
8 m! T! X; ^) u - (gttable "BLOCK")& z2 D( j4 _! a
- )( @' S' B# |. a/ M0 h% }$ z) m
- (getstring "\n>>Block name to add/<RETURN to remove>: ")' ^" [+ ~. U# P" c) e4 n' J7 I
- )
6 I$ F T# y @! C. } - )3 Z8 c" y9 G$ _
- ((= t2 62) (initget 4 "?")' p4 Z: o! b: ]
- (cond8 _. f% {) I1 r. M- f4 U
- ((or (eq (setq t3 (getint + n0 {6 L- f- G
- "\n>>Color number to add/?/<RETURN to remove>: ")) "?") * O$ E H4 D6 y9 X8 V4 j5 v
- (> t3 256))* @' k3 s; z: w* B+ O6 ]
- (ssx_pc) ; Print color values." ]! Y( z. D" N+ _
- nil+ o( D. S3 J9 K/ ? U" b. c
- )2 u7 O& |! W- m. V; _* x4 o
- (T# k: f) a2 i$ b
- t3 ; Return t3.
7 \3 p; i7 F' k+ \8 w7 }2 G( u - )( v0 w) \( x4 o0 `0 Q$ ^+ k+ X
- )- A) M$ Y% p" W) |
- )
. _% ]' \- w$ B3 w* Y6 ] - ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))/ ?- Q# a4 o7 h- r6 Z8 a+ j
- ((= t2 8)/ x! H" w! d7 @, [
- (if (= flexvar gtads 1), Y# _! w5 m: A$ D5 R# R* V
- (progn
/ x5 o; a5 \7 ~% o' c0 M - (prompt "\n>>Layer name to add/<RETURN to remove>: ")
& B% Z* A, m# z5 Q5 x2 ^ - (gttable "LAYER")
- D/ I, B8 s# n% b4 ` - )
# ?3 w" x: f5 `6 }/ v: s - (getstring "\n>>Layer name to add/<RETURN to remove>: ")5 V( m# g% e+ K6 ~* P: C8 d
- )+ N: V. j% t( m! X0 p: y7 @2 I
- )
* [1 U' j/ I2 ~* M# A; k+ [1 J - ((= t2 6) & H% C# |! B/ X9 S: S u |
- (if (= flexvar gtads 1)0 u8 u6 s. u" \% P
- (progn
) c7 L. G" d( Q" S% u5 e/ t j$ } - (prompt "\n>>Linetype name to add/<RETURN to remove>: "): _( m8 t4 `5 z' |+ ]
- (gttable "LTYPE")9 |# ~; U! o% q" @) V* s
- )( X y. \/ A" x0 T1 ]) S+ L
- (getstring "\n>>Linetype name to add/<RETURN to remove>: ")
6 \; R0 b+ C0 q - )6 Q }- }1 S9 R' c- t) d# ~9 j, t. _ Z
- )
0 o! T/ q' i/ E - ((= t2 7) 3 C- a8 j* R& b9 V
- (if (= flexvar gtads 1)
( M6 G' u: X3 X7 \8 p. k `- d+ L - (progn
7 M: x" l g6 Y% Z# M6 s/ b/ J - (prompt "\n>>Text style name to add/<RETURN to remove>: ")
* {' r, X d1 n% i - (gttable "STYLE")
3 G6 S, T: O1 t5 S' e - )' o3 Q* u4 m, q% `1 `; a9 D
- (getstring "\n>>Text style name to add/<RETURN to remove>: ")
. q( }! d! f1 n5 e - )
# a4 h" c4 P4 k$ w- `& K' `7 v" W - )
9 ]. Q( y. o) o# l5 M - ((= t2 39)+ V8 O$ \$ N% k: q" Y% {0 Y
- (prompt "\n>>Thickness to add/<RETURN to remove>: ")" s' w& M: E4 Y( J
- (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))# F/ \8 T8 B( v
- )
; D3 \/ V6 N+ \: R u7 c" j - ((= t2 66) (if (assoc 66 f1) nil 1))1 B( [) N6 u% a! z
- ((= t2 210) 0 w# p6 z1 v4 [8 V. @5 F
- (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")
- f* n# i4 k$ ^9 O$ E" G - )
: n4 j; j- r0 W/ ~2 B3 ` - (T nil)
( B* l% m0 |4 x4 N) d2 O3 I - )
- _' h* F t: u& g- _& J! ^ - )
* T7 v& M$ `* j - (cond2 \; I: |" B+ R, [: k
- ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity
# \6 N6 K# T( Y% m7 P# L& t* C - ((and f1 (assoc t2 f1)) ; already in the list4 j. v1 s; s5 Y: _2 g
- (if (and t3 (/= t3 ""))3 [( |0 U6 a- K) N
- ;; Replace with a new value...
5 w+ l& W1 }" [5 r7 Q - (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1))
2 y2 n6 K- H q+ I1 }$ o - ;; Remove it from filter list...% A4 L6 c4 N R* |8 @2 b( B$ i# X
- (setq f1 (ssx_re (assoc t2 f1) f1)) ) J ?$ {) b4 _( M. `! w
- ) 2 P# j6 X: ?: [, B9 N9 D9 b
- )6 E/ w: C, i( D5 \7 I
- ((and t3 (/= t3 ""))& v0 C3 w( t8 k% b- W
- (setq f1 (cons (cons t2 t3) f1))
4 I9 ?* e1 V1 y1 W - )
/ I# U; C% ^7 X - (T nil)
: b+ ?% `! Z% f) _; J' F* B& B8 c - )5 _1 ~5 b+ Q( Y
- )
' v; _( J; A" o9 q6 [0 S+ S( M - (if f1 (setq f2 (ssget "x" f1)))$ |; K6 D" E" F) P( [* H4 b
- (setq *error* olderr)
6 B8 E) d! ]3 h9 B' K; I! |! J. { - (if (and f1 f2) * O% L, x) X0 f# N
- (progn
/ S, s5 }4 G% w - (princ (strcat "\n" (itoa (sslength f2)) " found. "))
. P; N+ U" f/ [( z9 \" L. l4 `4 x - f2
! z% Q( q+ x8 h$ U - )! x$ H: {+ ^& x" j F/ u
- (progn (princ "\n0 found.") (prin1))
6 [" m( x9 v& ~+ x+ N( v1 u - )
( k, |& ?; B. s; _ - )- R5 M) g2 j: @/ K: N' j/ j
- ;;;
, P$ {( e0 g3 ~/ g4 P# v - ;;; Print the standard color assignments.
/ t3 j' {3 Y$ N* O! h6 k! M: [ - ;;;- g+ p3 }* I3 g( d
- ;;;# Y0 Q1 y/ d+ R1 Y. G
- (defun ssx_pc ()/ V8 ~* h) s3 N# k3 r2 e* y" k3 x: P1 z
- (if textpage (textpage) (textscr))
; a, O3 D! c ^$ f - (princ "\n ")
& V G9 e" Y% e) A* X9 [* r - (princ "\n Color number | Standard meaning ")
6 A& x }1 s/ B) f+ y1 e - (princ "\n ________________|____________________")
/ l' j3 s" q2 t$ U2 o7 L - (princ "\n | ")
, r3 B9 f0 S- V& \3 R4 d) v - (princ "\n 0 | <BYBLOCK> ")9 o. d; H) u$ q
- (princ "\n 1 | Red ")
# }$ j5 P Z0 {+ p6 p - (princ "\n 2 | Yellow ")
, a% N/ l& J& D4 y - (princ "\n 3 | Green ")2 J; v& g3 q% t& C% Q
- (princ "\n 4 | Cyan ")
2 R h) Q. U2 X( l& Q$ g! j - (princ "\n 5 | Blue ")$ M& K [4 y2 [$ h1 m7 b5 V
- (princ "\n 6 | Magenta "): A& k' b- S; y( U3 W Y
- (princ "\n 7 | White ")
1 @ D8 B1 f! Y5 D* ^4 I - (princ "\n 8...255 | -Varies- ")+ B+ {4 `) R J7 a4 m6 ^+ P
- (princ "\n 256 | <BYLAYER> ")8 g. ^4 D/ i m. l! z+ I5 W1 `
- (princ "\n \n\n\n") S- l* j" C1 G1 p& p+ t5 g
- )7 z0 ]# t) I9 V# [/ c5 Q1 }: r
- ;;;- b1 ?7 Q! S* E' ?& |2 v
- ;;; C: function definition.4 d# V6 T2 A, F( k4 ^) L
- ;;;
2 }$ W: K2 ~2 ^9 o! A" N - (defun c:ssx () (ssx)(princ))( V4 M4 J7 h- D7 @, T1 O4 e ?- y1 v a
- (princ "\n\tType \"ssx\" at a Command: prompt or ")# s, _! v u, p4 K4 b. e- W2 H
- (princ "\n\t(ssx) at any object selection prompt. ")
+ H& L" v4 \! v3 | - (princ)
3 Q9 H+ Y( t2 o5 x# n
# _ b$ ~/ \$ ?! y- ;;;--------------------------------------------------------------------------;5 @6 O% u! S! ]
- ;;;--------------------------------------------------------------------------;3 F* A7 C7 g" G2 z/ s4 J& U
- ;;;--------------------------------------------------------------------------;8 B( l7 B2 U: w1 l
- (defun S::STARTUP ()2 P, t$ ~0 H3 r) \' S
- (setvar "cmdecho" 0); m- g6 \* O# t+ S" f8 Z5 E% {
- (setvar "cmdecho" 1)
7 j! P/ }% r& `' M( R ^/ L - (setvar "LTSCALE" 10)
0 t1 b' V: L' ]& Z
* Q Z6 @7 }7 G, C# c3 u1 Y# u- ;(command "_load" "chenKH.fas")
, u r" k( h4 f, o; B9 a$ z4 g% E - ;(command "_load" "ctcot.fas")
3 n, U: v- l* x6 w* a# o5 q7 B - ;(command "_load" "damdoc.fas")
% j( P# U. b( Y- \# \/ O& I - ;(command "_load" "ghichu.fas"). F6 R/ E9 b+ u0 V, Y4 E _/ b
- ;(command "_load" "hamtutao.lsp")
2 ]) I8 y/ `3 w/ G2 Z9 b& R$ g - ;(command "_load" "KHOITAO.fas")
5 [! |8 g2 `- C' A - ;(command "_load" "KHthep.fas")
& Q0 U6 }% T; x - ;(command "_load" "mbmong.dcl")" ^8 c: |/ M. S1 k7 K: L
- ;(command "_load" "mbmong.fas")/ u) h# C) q% ^
- ;(command "_load" "mccot.fas"); @5 b4 ]5 k% t+ m
- ;(command "_load" "mcdam.fas")
9 Q- `+ J, k0 G: h - ;(command "_load" "mcmong1.dcl")9 m& \( R$ g- z# F S( z" o o
- ;(command "_load" "mcmong1.fas")
% J" b/ M$ t) q! S - ;(command "_load" "mcmong2.dcl")
! L8 X+ L3 V* X' I1 W! b - ;(command "_load" "mcmong2.fas")
: t( D9 n6 u1 V" g - ;(command "_load" "mcmong3.dcl"); b' C6 J% `; u# x, ?* D2 F( y
- ;(command "_load" "mcmong3.fas")9 m, C+ |0 \( ?. `6 F2 M
- ;(command "_load" "mcsan.fas")
- M0 J6 _& y: \ - ;(command "_load" "thepdai.fas") y* T. `8 k4 z# L
- ;(command "_load" "thepdoc.fas")
. j- X$ |. ?5 }$ D3 A4 ^3 G - ;(command "_load" "thepmb.fas")
5 a5 `3 U$ k5 s/ M; u - ;(command "_load" "thepphbo.fas")
8 H8 y( }, H3 [' x* T - (command "_script" "thongso.scr")
$ R. k% P* O6 z- h- x3 O+ I - ;(command "_load" "thongso1.dcl")2 [, n* V& u: ?/ A# D" o+ A
- ;(command "_load" "thongso1.fas")" Z2 N; o* R* Q+ S- y% b
- ;(command "_load" "thongso2.dcl")
6 A1 t( \9 c% t, w+ H+ C! H - ;(command "_load" "thongso2.fas")
% P% E d. m' p' W* M - ;(command "_load" "tietdien.fas")
C# U8 ~" ^, H' _ - ;(command "_load" "vehan.fas")' C2 e7 h% w7 x% H8 l2 y- p
- (command "_load" "phamDuy782006_TKT.lsp")2 I; ~! T8 H8 g3 Z. y
- (command "_load" "phamduy782006ganhtd.lsp")
2 `& Z, l4 T2 `/ O - (command "_load" "phamduy782006ganhtds.lsp")0 F+ l; q2 Y- G- W: R! I/ V
- (command "_load" "phamduy782006htd.dcl")
3 a- ^: c" R; T [! `9 U( z0 f$ G! L - (princ)! y, |7 ]5 x2 s% Z
- )5 s- s5 O5 Z8 ~* U* i0 N$ w
- ' ^ `1 w, {6 c h+ e; c
- ;; Silent load. X- m0 g P; R- E- N
- (princ). |6 e n/ h- R/ t4 V$ ]
- / s1 f3 o T2 }9 o! k0 u0 j2 Q1 b
- , c* @/ X) L& E6 I q
- ;; Silent load for the Express Tools.
8 Z4 [5 R2 z0 ~/ A - ;; Altering this line will affect Express Tools functionality
+ h( H" H9 x6 r) z6 M8 z5 G - (load "acettest.fas" (princ))
( _( T y; g2 t8 _ - �32
Sao chép mã
( ~# ~' y9 g- ^: x* P* o) \3 ~, U% {00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ
/ p, ^& i% ?4 g, e- R0 U X |
|