|
|
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 |
- ********************************************************************************. t' y1 Q; Q4 L
- * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *
' R! N( l0 L5 D: p2 V - * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *9 p; c' Q; u4 ~" p& ]4 Z
- * Suu tam & Soan *
+ `* O0 H; I" n8 ]" i, S/ p. e/ M - ********************************************************************************
1 [% U1 A* V J1 d( _ p1 s
7 P, r. B* ]2 C, c: J6 K- ; Next available MSG number is 104
- v+ I0 ]( x6 |) }/ f% A - ; MODULE_ID ACAD2000doc_LSP_# e q0 j0 y" p. d |0 I
- ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 20004 g1 m3 A( M: R( e1 R% a
- ;;;
, R3 [" K2 o7 ^. V - ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.
$ v* F, y& f- U8 j6 E( M - ;;;
3 a. }( Y4 P' i9 [: g7 G! v - ;;; Permission to use, copy, modify, and distribute this software, R: V% Y4 O0 @, v. j, R4 X
- ;;; for any purpose and without fee is hereby granted, provided
: y! k2 [! ]. M- } - ;;; that the above copyright notice appears in all copies and
; D5 a1 I! R, R6 m) n, I1 ^ - ;;; that both that copyright notice and the limited warranty and' Q3 K+ {6 {0 B7 r7 B
- ;;; restricted rights notice below appear in all supporting
. P: j; Y0 g/ w u# r - ;;; documentation.
! ^% ~ ^9 W+ W/ `9 t; m+ [ - ;;;7 H- F1 T9 C$ i
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
' }5 S9 ~7 [6 e" K& ^ - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
) ?7 w' a& H' F/ e# X% G& T - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.0 h, Z3 y8 a: ~, I' _3 r
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE- Z+ O: L; J. }
- ;;; UNINTERRUPTED OR ERROR FREE.
& I- }# A8 M9 M( v0 f - ;;;% R- T) c0 M3 w, ]4 Q* u/ ?
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to! }3 K; y# `! @7 Y9 i/ z
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer2 H! R; Z# r; E y( M; H
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
% j* R7 d( }- [8 V - ;;; (Rights in Technical Data and Computer Software), as applicable.
# s g& i1 Z* O* s; L7 N9 C - ;;;
+ z5 ^4 Z$ E8 ~( Y5 T5 T - ;;;.6 q3 U) l" f1 t3 d8 Q
- ;;;
5 B/ T d2 N, p - ;;; Note:) c: Q+ d9 J) b: \ Y
- ;;; This file is loaded automatically by AutoCAD every time , g. I3 l( t% _3 b9 \8 ^
- ;;; a drawing is opened. It establishes an autoloader and9 }/ y }& r% V1 l. j
- ;;; other utility functions.
" C, r0 k1 f4 c, E, k: i) p2 R - ;;;6 I5 D6 f0 P: j. ]
- ;;; Globalization Note:
2 c, A" Z' U( ^+ q) t) _" E2 y - ;;; We do not support autoloading applications by the native
4 R1 f& ` G- v- c; ] - ;;; language command call (e.g. with the leading underscore6 d; q; N; f9 D3 p. J5 |$ s( u/ R4 i
- ;;; mechanism.)! v+ T6 {+ ^4 ?! F X+ d
: c4 A6 O4 P U2 d/ b6 b4 K/ o- 5 Q. U" x: I/ o7 q; G
- ;;;===== Raster Image Support for Clipboard Paste Special =====
! u" |1 ^1 f9 g) j; z$ j - ;;( Q$ P% s' P) F, Y
- ;; IMAGEFILE
# n# s9 ]+ w7 H, a) g; ]2 T - ;;
" O& o. u/ W3 y( F- b - ;; Allow the IMAGE command to accept an image file name without$ N( r2 R. l& I1 g9 C& Z) U
- ;; presenting the file dialog, even if filedia is on.# m0 [. r9 \7 {% d, ~
- ;; Example: (imagefile "c:/images/house.bmp")+ E; G: @0 \' d4 h
- ;; h5 S- \+ u) m2 w: ]& D9 D! x
- (defun imagefile (filename / filedia-save cmdecho-save)3 ^; X9 A p x6 K
- (setq filedia-save (getvar "FILEDIA"))& |& J5 ^( s5 `6 G1 s7 S
- (setq cmdecho-save (getvar "CMDECHO"))
, L* Z4 g+ ]5 L4 p. a - (setvar "FILEDIA" 0)( W" p' E# w0 f8 t3 c) R* l
- (setvar "CMDECHO" 0)
/ A: w$ c5 Y) x, ^ u$ j: \ - (command "_.-image" "_attach" filename)4 O$ \3 F4 H9 S. ~
- (setvar "FILEDIA" filedia-save)
- g2 R3 C5 P2 |; \ - (setvar "CMDECHO" cmdecho-save)
5 V* x7 _1 o8 W- G7 h u1 J+ j - (princ)/ V$ f, E D* A
- ): Y' E2 g% j8 @% d9 J9 k! X
2 [& }& J$ x% L) q, i- (defun c:zx () (command "zoom" ".5x"))
! I* ]! m; k) @3 f" | - (defun c:zz () (command "zoom" "p"))
9 x7 e- p0 i$ b. b" Y! I) T - (defun c:za () (command "zoom" "a"))
& z; T" g9 l1 a8 r - (defun c:zd () (command "zoom" "d"))
7 C" x, [9 P0 Q8 h6 M - (defun c:ze () (command "zoom" "e"))5 _7 g4 r6 Z- g' i# }: o
- (defun c:zr () (command "zoom" "" ""))
) e3 c9 T$ @0 S+ ?, C9 \ M - (defun c:vv () (command "ucs" "v")). @7 ?- Q* c9 ?( g
- (defun c:co () (ssget) (command "copy" "p" "" "m")); \" m( a! C7 E
- (defun c:c () (command "circle"))
/ ~1 `: l+ T; @% Z - (defun c:rt () (command "rotate"))6 j" c" n% `) a: w
- (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))
3 L$ t7 g5 C" G8 A h r - (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
. W: m- y9 `6 z - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
: N9 Z) p5 a# _+ `# [" Q - (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))9 r# Z6 s5 ?; B; X
- (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))
0 O0 I+ U6 I1 n; Q1 Z6 |! i) V - (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))" Q. h5 g) D8 }# v8 }+ ~
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
! f+ w9 S) k7 H6 S* E8 ~3 v8 k8 | - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))9 F& `4 b: }* R2 R
- (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
' u. M$ w$ i- b# K - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))) o' a3 ^7 Q. O3 Y
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))% c' `# N. N$ h; G
- (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y"))
, U0 U) ]# A* Y- ] - (defun c:fd () (command "find" "p" "" )(princ))(princ) c3 P* b/ a# U& e7 x
( }5 u$ H; x( W1 r" q0 m) O# s- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)
# U7 W" z) ^5 D& m& f6 I' w/ r - (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ): W5 M4 D6 a1 f5 Y
- (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ)
# M, T+ r0 f J* e. D$ I - (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ)
3 S' @% Q2 J4 m' K: j0 K: I, O - (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))
# s# l' d2 z7 U j1 ]* v2 ] - (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n")); j( G( S) H2 \3 a: E+ n4 f
- (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n"))/ \/ S' i7 M& ^5 l( N' N
0 m- f6 u/ k" W7 [6 a& h- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))
' _' [5 [ J7 d3 _ - (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))/ M7 r5 L/ n. F$ T2 ~0 F' ] Z; h6 D
- (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))# Q c& `0 R5 y! t% Y) ?+ O2 J# L9 L, Y
- (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n"))* D* d2 F0 e- R4 C9 r) C& w
- (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n"))1 L- d" l+ G N' U: m; ]' i
- (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))8 ?0 n. z; x8 _7 M1 u9 { R
- , m( K: c, }* ^$ I X9 z2 y
- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file
i, r+ q/ B( O& F( r* r+ b. p8 l
+ s. b) X6 t5 b3 e' i |- ;free lisp by cadviet,cd2k44
! m; X* Y2 h# n2 v$ _ - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830! L* W1 y# |- B3 Z8 D! i
- (defun c:FTEXT (/ ent tstyle ); H! Z8 P% }" d& j2 A
- (command "undo" "be")4 Q: Z- X6 `" I- ^4 J `
- (setq ent (entsel "\n Pick text :"))
& @1 F2 I: Z- N - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))* ]6 w% X. D" j3 y! w. L
- (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
6 G& h) h6 d( P& i. G - (setvar "TEXTSTYLE" Tstyle)
$ r; Y$ A) a5 i! ~ - (command "undo" "end")% g0 m5 w+ w% _( Z
- )2 e% V/ `" W) X6 ]7 _# W
- ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)
" f M' b! H' o. {
" W6 L; P& f) W" l- ;free lisp by cadviet,cd2k44
" H+ _! {& E- u- C0 Y" I - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538304 v( T( a: M! L! [3 W, V* ~7 _
- (defun c:Fvnh (/ ent tstyle )
& E8 j$ a; a" t) G! w- G9 X: d4 e - (command "undo" "be")' ]- |5 h2 Y/ y3 C- h5 ^+ M" [1 v
- (setq ent (entsel "\n Pick text :"))
) a, e" E. P, h: p! o. v - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
9 s6 _' O( R7 g7 d+ ?) F0 { - (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
/ W Z1 g) W0 ^6 ?* a - (setvar "TEXTSTYLE" Tstyle)
! l1 q0 E1 j& b; g: \) E - (command "undo" "end")
% y4 c( K* d) V( B - )
' {, C0 ^; {6 p# X3 p/ [9 @ - 7 c2 N) L2 Q! ]' p5 e6 K6 p- G
- ;free lisp by cadviet,cd2k44
. l9 [1 ]; H" v; } - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
+ I9 L5 z! H- a' n. { - (defun c:Chbg (/ ent tstyle )5 _" H' a5 \) ~8 d; q
- (command "undo" "be")8 K) e- H9 t! O" O0 c& a
- (setq ent (entsel "\n Pick text :"))3 \; r$ k+ A+ E
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
$ \% w( q9 g& h: x* y8 W! ? - (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")& N& s+ a) E. g
- (setvar "TEXTSTYLE" Tstyle)
# _1 b2 `8 y+ { - (command "undo" "end")% h! J. P4 |" {' ]
- )
. L1 Z1 J( i; A ]9 v: w
2 p% h" h0 u- I: _& u. J- o- ;free lisp by cadviet,cd2k44. y N( f+ d1 P& P4 Z( X5 f9 `
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830! L: s/ _& C' d2 u2 F' k
- (defun c:Chsm (/ ent tstyle )' d5 L* y" n, [9 s; J) O" {/ {0 }
- (command "undo" "be")# r, Z/ E8 G/ x% d# z4 h6 m
- (setq ent (entsel "\n Pick text :"))
2 V9 X) _- I0 m1 v - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))$ f6 y. q$ H' B8 i; x
- (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n")1 E7 g7 Q% a. R; f7 ?
- (setvar "TEXTSTYLE" Tstyle)# ^) y" ~" C4 Q
- (command "undo" "end")
1 A$ t% S" T% s$ \ - )
8 F% x$ u7 w* W2 Y+ n9 ?
; [2 e0 k; E9 L( `/ r9 k4 r- ;free lisp by cadviet,cd2k44% \% x2 q& g2 k9 C j0 i
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830 a. G: g! h3 f) u# _! t
- (defun c:Fttf (/ ent tstyle )
3 s4 y1 K" V/ n$ o, \2 K - (command "undo" "be")
% \9 X1 Z3 C. ]: h3 E - (setq ent (entsel "\n Pick text :"))
$ r9 Y+ ]% ]; b( T( C) Z, D- p+ J - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))4 x5 a1 I1 l/ ~% }, ?
- (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n")$ O) ^ N* L9 M$ a; ~
- (setvar "TEXTSTYLE" Tstyle)' I' }& q/ K) @2 H5 t: m
- (command "undo" "end")
. }# k( T: F4 O5 ~, d2 T4 c- P - )2 e: Y- ~; G5 }/ d5 a, |/ b# q
- {$ }; t2 X! { {8 Q4 p" z- ;;; ============================================
: ~/ l9 l* `) Q - ;;;
$ ?8 f4 v4 H( C* x - ;;; LISP Creater Tao Duong Dan AUTOCAD2000& f$ z5 p1 ?% [
- ;;;
' b. e, d+ b( c' Q9 R5 r3 n% Q1 v - ;;; ============================================. T6 m* e- l; M! ^. o* Y
$ g/ p3 G" R& X% K0 e- ;;; ============================================
6 W: I$ X0 `6 V6 U: s* U6 b2 d - ;;;1 M' A5 T& @7 C( M5 s- `
- ;;; CREATING FROM AUTOCAD2000( \" u5 i3 K1 G( M0 `
- ;;;
; e: e2 ]2 G( r - ;;; ============================================
" {7 u1 Q" B) i6 A _
" W3 P* Z7 e: l4 W4 a7 |0 O- (setvar "INSUNITS"4)
$ l, a3 R R9 s( P) C' h3 m' p' r0 { - (setvar "ANGBASE"0)
6 F; Z& ?; s/ \% K8 N4 b - (setvar "ANGDIR"0)
! B9 k$ ` u5 o5 d1 ^- s - (setvar "AUNITS"0)7 S$ i( j8 y; \) m- ^& k
- (setvar "AUPREC"8)7 r/ B, P. t3 k% j5 _
- (setvar "LUNITS"2)
3 _- X. i, U' z; X; E - (setvar "LUPREC"8): p9 w! T9 A7 y" P1 g: u' F% n4 \
- (setvar "ACADLSPASDOC"1) ' n! j& y6 m3 c
- (setvar "pickbox"5)
/ P) z* ]' a' X8 Z2 g% ^/ W1 ` - (setvar "blipmode"0)2 z5 H7 k" v d+ k7 f' ]8 \, Q8 f
- (setvar "mirrtext"0)+ {& s# Y* ~, X
- (setvar "cursorsize"100)$ `5 n& w( D1 g" e0 Y, ^
- (setvar "ZOOMFACTOR"75)
4 C( A" T) U, p% [$ P5 s6 S L* | - (setvar "LTSCALE" 10)
$ F" S1 K, @0 O( Q; ? - (setvar "lwunits"1)
3 s$ a: b6 }' t+ Y1 _2 Y0 r& i9 q I - (setvar "DIMBLK" "Closed"). T7 m6 E: x0 @6 }0 v) Y
- (setvar "DIMGAP"0.0693) Z) e2 [9 [' m# O
- (setvar "DIMASZ"0.20)
) L. K M% b# R - (setvar "DIMCEN"0.2)
* D8 g5 H+ h! F - (setvar "DIMDLI"0.1)
# ]5 i( E E& ^) y - (setvar "DIMEXE"0.0693)! T; \" O# p/ f, _
- (setvar "DIMEXO"0.25)
/ f! Y k' C! x% s4 q2 S - (setvar "DIMDEC"0)
# c) V- _) b9 `. t& X - (setvar "DIMTIX" 1)- ~- k6 ?& P6 s# q9 P9 Y" H
- (setvar "DIMTXT" 0.099)
/ ^3 M+ \1 l! \ - (setvar "DIMCLRT" 7)
( y( e x( W9 i- n9 k - (setvar "DIMTVP" 1)
; m& K4 ~; J8 L P( K - (setvar "DIMJUST" 0)8 B- }9 x6 o5 n+ ] T
- (setvar "DIMTIH" 0)
1 h/ B' E4 g4 w3 R6 ^0 N! c F - (setvar "DIMTOFL" 1). F* d j9 v1 n' u! a+ w5 K+ H& c
- (setvar "DIMSCALE" 1111.1111)
2 r5 ^0 I$ G( t: T" g7 s8 k
. j% p; E! f8 C: ?1 E( |) @7 r
, X: y$ L- `/ B* ^
1 \& P7 _" D0 l% x- a" \- (defun c:zp () (command "'.zoom" "p"))
+ {8 V/ u' s' C- S# e5 v - (defun c:zz () (command "'.zoom" "p"))
* k9 s6 h, ?8 H4 T' x& x2 Y - (defun c:ze () (command "'.zoom" "e"))0 q/ G) h, P T# R# s: P5 @" Z
- (defun c:za () (command "'.zoom" "a"))3 X* L5 m. ^: F
- (defun c:zd () (command "'.zoom" "d"))
/ `' q" @9 V! q7 D' L - (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))
1 v% {% s0 H+ j8 p1 k - (DEFUN C:ZX () (COMMAND "ZOOM" "2X"))
% L5 K' a1 g, i - (defun c:de () (command "ddedit")(princ))
9 \' ~/ [' I6 B4 D& H - (defun c:dda () (command "Dimaligned"))2 A! R: ?& q- O( W! Q
- (defun c:ddb () (command "Dimabaseline"))- [9 g7 E& S' G
- (defun c:ddc () (command "Dimcontinue"))
+ F* _: A- l" i$ p. C - (defun c:dde () (command "Dimtedit"))
1 K+ F( X# X( ^; E M - (defun c:ddf () (command "Ddattdef"))
$ Z+ i6 t4 z8 T - (defun c:ddi () (command "Dimdiameter"))
% q, I- T: I2 n - (defun c:ddl () (command "Dimlinear"))1 d* Z+ Q9 }% T) B. D) [
- (defun c:ddn () (command "Dimangular"))
D5 |$ a' ^) o" M7 `0 i+ N* H - (defun c:ddo () (command "Dimordinate"))( I6 g" R0 f+ ?" }! P% |
- (defun c:ddr () (command "Dimradius"))
1 h) q* Q8 ?' Z! F8 T' w8 g4 v$ Q - (defun c:dds () (command "Dimstyle")) [9 N3 W# i$ I: D
- i2 `9 l; G# N" K, d- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ)7 @4 U$ ` F0 Y5 h( b. g# H0 Z
- (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ); C1 N, j" Q# M
- (defun c:UU () (command "dim1""update""all"))4 a% d, I! ?% N- B4 u
- (defun c:ded() (command "dim1""tedit")), v/ N3 F: L$ ~8 T
- (defun c:da () (command "dim1""ali"))' d& _& r7 c. H: N/ n
- (defun c:dll() (command "dim1""l"))
- Z8 i$ H' v) r2 x. r! E - (defun c:dan() (command "dim1""an"))! q& H; V7 _9 m0 U2 N; D0 u
- (defun c:d1 () (command "dim1""ra"))
7 k' M. Y: _' r - (defun c:n () (command "dim1""new"))
% U3 Z3 e. M' |; y: \' j' ^# \ - $ k, _& L: X# Z! T; z7 c
- (DEFUN C:PE () (COMMAND "PEDIT"))8 @' |! i! B& m; R7 }
- (DEFUN C:PL () (COMMAND "PLINE"))* f( Z2 @1 i' k5 B) ^
- (defun c:dd () (command "dist")(princ)) ^5 A+ x0 w7 B4 W$ c" e; o
- (defun c:w () (command "pedit" pause "w" "au")(princ)). p2 Y$ q& c6 z- _5 R& R2 ]- S
- (defun c:pg () (command "polygon" "polygon"))! t6 H5 I' C: l1 ]
- (defun c:el () (command "ellipse"))
4 J; C! [ t: I$ v) s& P. s% C% _ - (defun c:xe () (command "explode")); X! @2 Q- z% G4 l4 Q/ d. |3 y
- (defun c:eex () (command "extrude"))7 F. d( j: p1 }; q8 I! c9 b# r
- (defun c:xg () (command "xline""a"))* q, x' o% v3 }, w. {
- (defun c:xh () (command "xline""h"))! r; r+ u8 W- y/ h: j: P
- (defun c:xv () (command "xline""v"))! V: g5 R+ L) m- _0 ?
- / L' V7 t3 ?; J0 j: Q0 |7 q5 `
- (defun c:oc () (command "osnap""cen")) [' u. x# \* h8 F% z, a
- (defun c:od () (command "osnap""nod"))
, }& z9 p0 g# O. Y `8 G* W - (defun c:oe () (command "osnap""end"))
6 q) a- Z/ f O& H - (defun c:oi () (command "osnap""int")): @5 r5 d) d, Z, s9 j
- (defun c:or () (command "osnap""per"))" Z5 {5 [3 E4 d4 W
- (defun c:on () (command "osnap""none"))
4 J9 [" q2 G% I7 C& T/ T, b - (defun c:oq () (command "osnap""qua"))
- ?! K2 f- J' g, [4 l+ R - (defun c:om () (command "osnap""mid"))
' t6 s' |$ _3 X - (defun c:ot () (command "osnap""tan"))
+ b: q2 E8 I G0 p0 F" R - (defun c:oin () (command "osnap""ins"))
R* ]: a, G3 s9 f' z% T/ ^% ]; X - (defun c:oa () (command "osnap""nea"))5 q/ I9 g5 \8 S
- (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))
' k! P" e v5 @( j9 z" v ~ - ;(defun c:du () (command "dim1" "up" "s" "pick" "other"))7 {9 O& z x2 X7 |6 V
- ;(defun c:nn () (command "new" "y" ))- S+ a1 G* L! y$ }: v- `( a
$ L$ \ h: V; B- (defun c:/ () (command "limits"))+ F+ ?6 c9 ?; M' i
- (defun c:`1 () (command "region")) I; V$ \0 {$ _3 e0 @
- (defun c:`2 () (command "subtract"))
8 R' l2 Q3 Y3 ?- w. e+ u- i% ^ - (defun c:`3 () (command "union"))
2 g! D; h: n$ a1 R5 H - (defun c:`4 () (command "intersect"))
2 [( ?' d5 N7 G: l# | - (defun c:`c () (command "cal"))7 j) ^ F1 N% q; [0 j- P2 J
- (defun c:`g () (command "Polygon"))
3 A T, w. n0 ]" [
7 D! ~7 @5 n( k5 W7 E- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))2 V/ @) M# N- n. d% S. W
- (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ))0 Z, @3 w7 ?+ t6 u
- (defun c:ip () (ssget) (command "print,_plot" ))(princ)
# C% `9 ^: y" x+ v. z7 P8 P6 J e
; a2 b7 d; _$ l7 J! Q* o+ }4 I- (defun c:ddm () (command "ddlmodes" pause))
a. t7 j4 U9 \) B3 H
1 r; A# p) K2 q* z8 b) o- (defun c:sha () (command "shade" pause))
/ W t1 j& }5 H7 Y" X. m8 O
+ A, j1 _$ K* `- (defun c:sr1 () (command "surftab1" "p" "" pause))+ u# g [' M. m0 A+ C
- (defun c:sr2 () (command "surftab2" "p" "" pause))
: c1 Q3 H5 H6 C8 ?, e' G
; [ J4 g- }# a$ }- (defun c:ad () (command "audit""y")), o$ ~+ [6 L9 \+ e& u) e
- (defun c:q () (command "quit"))
1 P+ ]# V/ [/ `# D6 O - ( Q; l! \, c/ t4 w k7 g6 N
- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
! _: g, K& X$ d2 F7 x5 G' \$ z - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))8 h7 T- j0 j9 P4 I) ~( E/ q
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
) B; J8 H3 l" F5 G2 R! v( K - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))9 E7 w: P- I& _ o
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))
. d& M/ \0 i7 l: y/ k$ V1 p - (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
, A( Z+ q5 U+ x: `, P - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))# I$ _3 \1 r; T- F
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
% a9 T1 D$ M5 ~* Y2 h% \, c - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))7 a. N3 I. |) i- F' N
- 3 u( s& U4 A# J; }( }
- (defun c:u3 () (command "ucs""3"))
# V" j' v& k9 A* k6 s! q' b - (defun c:ue () (command "ucs""o""end"))& u8 Q8 ~# a" _- |
- (defun c:ui () (command "ucs""o""int"))
% g, v* B! C1 B - (defun c:um () (command "ucs""o""mid"))
* l& S8 L* ?" Z a. F! c - (defun c:uc () (command "ucs""o""cen"))
. ?6 k+ i! n7 @ - (defun c:uq () (command "ucs""o""qua"))" t _1 n9 v: A1 O: y
- (defun c:3s () (command "ucs""3"))* y, Z3 j$ s& f7 h
- (defun c:sx () (command "ucs""s"))- O4 J7 K/ x( g
- (defun c:sf () (command "ucs""o"))# a5 h) u, |4 D( s
- (defun c:sz () (command "ucs""p"))
, V: a" V# E! X - (defun c:sr () (command "ucs""r"))2 L) j0 q5 @: V* A8 c
- (defun c:sw () (command "ucs""w"))
) w& Z$ O5 n: g" }3 @; O' a: x - (defun c:fv () (command "ucs""v"))2 l4 h% Y W3 L8 v7 @. O$ A: Q
- (defun c:ux () (command "ucs""x"))
m+ b; L. a$ P9 H - (defun c:uux () (command "ucs""x""90"))7 D3 R4 L, y6 W/ Q
- (defun c:xxu () (command "ucs""x""-90"))0 T( }6 M w+ x& @7 s( ]
- (defun c:uy () (command "ucs""y"))
: d* s/ s k1 d - (defun c:uuy () (command "ucs""y""90"))
) o0 u9 q9 O5 W" H2 j+ B6 h - (defun c:yyu () (command "ucs""y""-90"))9 V9 l( E1 H9 S) H; }: p4 K
- (defun c:uz () (command "ucs""z"))
, c E$ I* Z# x* J4 ?3 C4 V - (defun c:uuz () (command "ucs""z""90"))8 l0 B0 F6 D/ x! s' n7 x
- (defun c:zzu () (command "ucs""z""-90"))
% A6 P0 S) ^$ n" {4 x6 T2 K: u2 m - (defun c:uci () (command "ucsicon" "Properties" ))(princ)0 g b z7 p( n/ [# V1 m' H1 ?
- (defun c:ucm () (command "ucsman" ))(princ)
' a% Z' U& B) `: G0 l
2 C2 v3 W% Q1 Y6 M8 T- (defun c:sa () (command "vpoint""_non""-1,-1,1")). p. W3 m7 `8 P
- (defun c:sd () (command "vpoint""_non""1,-1,1")). z# Z- h7 t+ u/ Q8 S, f
- (defun c:se () (command "vpoint""_non""1,1,1"))
% t& v2 q3 R7 K$ k$ c$ T - (defun c:sq () (command "vpoint""_non""-1,1,1"))6 L( R0 g$ V$ |- E1 J5 _, }& [) S
- (defun c:vc () (command "plan"""))
8 a. w8 l4 a, ?" `+ y- a# | - (defun c:vd () (command "dview""all"))
( z2 A. m, `4 c3 B4 `8 w8 e& t9 h9 R - ; F+ x7 [ F4 U2 e, n
- (defun c:TT0 () (command "tilemode""0"))- a* E9 l$ b" Z) p1 f T' [
- (defun c:TT1 () (command "tilemode""1"))0 e6 D0 c2 }: s' j! N
; S6 D% n( p. t2 k/ u; }7 w/ V8 I- (defun c:vt () (command "vpoint""_non""0,0,1"))" \, g7 f$ Z3 g! a: e
- (defun c:vb () (command "vpoint""_non""0,0,-1"))% r- X% b; k, Z& t' `# b5 N& \* |6 E) l
- (defun c:vl () (command "vpoint""_non""-1,0,0"))
5 L# B% ?! m+ [( U3 y - (defun c:vr () (command "vpoint""_non""1,0,0"))6 [; O% Z, M, n8 C8 V- F" A. |
- (defun c:vf () (command "vpoint""_non""0,-1,0"))& x* d% y) y4 t; S
- (defun c:vk () (command "vpoint""_non""0,1,0"))
! A8 g! U& V c6 y% Z8 L - ! T8 M9 M2 u* v6 a- | m& |
- (DEFUN C:MM () (COMMAND "MIRROR"))8 l& \' ?3 s) [9 ?3 _* K% A% w
- (DEFUN C:MP () (COMMAND "MOVE" "P"))
4 ~; {# d+ T6 a - 4 b; [7 N% c! a8 w' z
- (defun c:mee (/ a)3 m; C1 Z0 {) p# \! @& T) W! G
- (setq a (ssget))(command "move"a"""end"pause"end"))4 Q5 }6 F8 _3 E9 p/ v c
- (defun c:mc (/ a)
4 O; W2 q/ Y( r; u# [: C - (setq a (ssget))(command "move"a"""cen"pause"cen"))- J# L9 d! g" [- `5 g' R4 {* X: Y
- (defun c:cc (/ a): B7 N; x& Z: q/ `( L" K5 W* n" J
- (setq a (ssget))(command "copy"a"""m"))
; H9 C0 G5 I+ L, R5 Y# o. v) ` - (defun c:ce (/ a)
6 ~+ [/ n) c1 ?8 ` - (setq a (ssget))(command "copy"a"""m""end"pause"end"))
" M0 e' h+ [; I G4 U5 j - (defun c:cn (/ a)
& v. x2 ]7 g; c1 D3 W) B' T - (setq a (ssget))(command "copy"a"""m""cen"pause"cen"))- C* S& l a1 m1 R: n- D9 [
- (defun c:tl ()(command "trim""l""")): l; `) E; B( w7 O6 o
- (defun c:tf (/ a)
$ G: \0 m7 `0 T6 n- u( u% n% C - (setq a (ssget))(command "trim"a"""f"))
+ V1 ~: q5 k, @# | - (defun c:el ()(command "extend""l"""))
2 d. G- }, o9 ]. U Q) `* k - (defun c:ef (/ a)
* l& g3 s+ `& a( c6 }; l8 S - (setq a (ssget))(command "extend"a"""f"))
# B( R$ Q4 o: n1 e$ b! C: u
. |7 W+ Y6 e2 i8 j8 Y. n- % v0 d* l7 v. m
- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110"))" I% W3 w6 Z8 i( V0 C
- (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))
3 o( }9 u7 \: v+ \ - (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330"))& ]: h5 y2 R; g2 g2 W/ \. O3 w) w* z* G
- (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))3 [+ j: K) R2 b
- (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55"))+ n- `; e! U# q+ A0 w: [9 G
- (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600"))
- ?+ f' w/ R2 J% g% Z# v- E1 |) e - (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))
9 S8 U1 u7 y/ {1 e8 X+ W: Q9 O/ r - (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))
; L% S; k6 y: X N: Z' n9 W - (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))8 N; ^9 D. n5 v6 e0 D% j, _- ^
- (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))
5 Z# q, P, |1 ?* s& E- P t3 {& v - (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))# w# ~; e, M# `: R0 h6 s4 n) V; Q
- (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))0 O: D- v) d# l
- (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))
" Y. ]- T: {) m' G* a3 s& G$ a1 i7 \ k - (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))
9 V0 ~/ t0 Y- F" @1 E! w1 O - (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))+ j8 z. e! B) H! Y& p# v
- (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))* v H3 E+ ] w* i1 ]. o0 z' l$ ?
- (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000"))
! U" P2 V" K( r2 k% I' I) e - 4 j+ k" M; u+ D5 c
- (defun c:mla () (command "-mledit""av"))
5 N( y, R7 h- x - (defun c:mlc () (command "-mledit""mc"))! z1 D7 I8 m7 [
- (defun c:mld () (command "-mledit""dv"))# [0 f4 Q M. i: c" ^0 N( |
- (defun c:mle () (command "mline""end"pause"end"))# ?1 F3 F' ?4 @$ b9 Q( l' `
- (defun c:mli () (command "-mledit""ca""int"pause"int"))5 q8 x* ~' @% A: A; s
- (defun c:mlj () (command "-mledit""cj")); h% T/ w5 n# s* Y9 e+ z
- (defun c:mlt () (command "-mledit""mt"))
' u* I5 A L* H0 D - (defun c:mlk () (command "-mledit""ca""end"pause"end"))# _2 [4 l' M& [, H$ T/ J$ {
- (defun c:mlw () (command "-mledit""wa")); {) J$ Z3 K* H4 I
6 h. q! f) d$ w( T' a* E- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA"))
% X. z$ d5 Q6 {3 H1 p6 J4 S8 Q0 _ - (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA"))
& }0 N3 e8 W/ b& M9 x7 i. D - (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO")). i9 ^4 v3 _* n, n/ H; Z+ s/ R; _" p$ j
- (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D"))
3 K( v/ n& `( Z! T! x& n - (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z"))
: G$ h" f9 U7 J- i; Y8 D. Y
# C8 j" H- S# e2 G! O& D- (defun c:p0 () (command "pline""""w""0""0"))8 J! z# V0 }# _) ~7 C' s& l
- (defun c:ot () (command "offset""t"))
# ~% e, \; |% \7 h - (defun c:t () (command "mtext"pause"j""bl""h"pause)). Q9 r# W+ B) a F
- (defun c:uo () (command "ucs""ob"pause)): Q, N f, v9 Z! c) W6 b0 F# v
- (defun c:f0 () (command "fillet""r""0")). g3 U0 @3 Q7 |8 A- t4 @+ K3 U
- (defun c:fr () (command "fillet""r"))& O& i' a% J! Y: L1 ~/ _" j
- - |2 Q4 S8 S+ q# x
- ;CHAMFER, v! M4 p' }4 m$ _+ R
- (defun c:cf () (command "chamfer"))
2 s& C6 A; Q' @+ l, H; x. T - (defun c:cfd () (command "chamfer" "d"))/ l" q2 ^$ Z' M5 g; h: \
- (defun c:cf0 () (command "chamfer" "d" "0" ""))
+ u( \. b# J3 D$ o" Q
: q, F0 R+ a3 Z& [( f4 _. n- ;FILLET& }* p, t- t6 i/ |# c, d
- (defun c:f () (command "fillet"))
/ n, ]3 v4 n/ L; T; k5 e3 I" Q - (defun c:fr () (command "fillet" "r")). k Z4 ?! e- a( |+ J" J
- (defun c:f0 () (command "fillet" "r" "0"))
% H1 Y( B" x) G; _ Y7 y! n
" P7 k, f' H$ F7 c0 J- (defun c:OO () (command "oops"))
, ^# ^$ Z! D* ~. G - (defun c:dln () (command "dimlinear")). {( [' M/ |9 L
- (defun c:dan () (command "dimaligned"))& _- t: @: y( K6 M4 k
- (defun c:ddc () (command "dimcontinue")). Y. Z& Z8 L q
) V$ Z' B8 b) [* x% s- (defun c:sc () (command "scale" "auto"))- Y* h6 l1 Y7 R* w% l1 c0 v
- (DEFUN C:XO () (COMMAND "snapang")). l! L+ v4 k4 }" x: @
- (defun c:cc (/ a)+ w/ v N, I* p3 N' N: L5 [2 E
- (setq a (ssget))(command "copy"a"""m"))' R' C9 L/ h/ f$ ?) @
- ! E' G6 C: C" X4 B3 \$ v$ E
- (defun c:PJ (/ a)" }1 g% k# v$ N' T' x7 } E
- (setq a (ssget))(command "pedit"a"""j""all""y")), L1 i1 d7 `6 d9 y4 b
- (defun c:JJ (/ a)) D( M& C% |2 a; U- }
- (setq a (ssget))(command "pedit"a"""j""y"))
6 }5 ?1 U" ?- M6 U4 e) o - (defun c:TN (/ a)( B2 V9 D3 f, F* J/ }: ^) ]
- (setq a (ssget))(command "change"a"""p""T"))0 y# l! Z+ d& o$ A a# g
- ~6 ^! V* t& s; C( E3 N
q2 o! V0 y4 L" N# _9 W8 R- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD=========================
) Y5 T+ ^5 g2 [ - x% v" G; ]7 w7 t7 p3 k
- (defun C:IB ()(setvar"cmdecho"1)
4 R) u: ~" o5 J, p+ {( X; W- r - (setq pt(cadr(entsel"\nSelect Block:")))
- T P! f' ~4 A8 H - (setq e1(ssget pt))
# J, G, W' u( \ - (setq e2 (entget (ssname e1 0)))& g6 W3 q3 r6 ~2 G9 D
- (setq blname (cdr(assoc 2 e2)))! C1 x3 _* E y
- (setq oer *error* *error* err2)(command ".insert" blname))
4 r7 g1 c- l) x# f4 v$ g% V e, t
# n8 X _) m$ o& s% A' x- (defun c:II ()) ^& O& `, |- r
- (setvar "cmdecho" 0)
4 R! `" F* [+ i9 {) _ - (setq olderr *error* *error* myerror). R$ T- P- V5 Q4 j1 q- e
- (prompt "\nSelect objects: ")7 a8 G) K. W' O
- (command "select" "au" pause)
! }7 E, _4 z, M: a# } - (setq sstxt (ssget "p")
% }$ W/ r! b+ S, G* Q - sslen (sslength sstxt)
* M/ a, v+ Q, @& p$ h0 Q - ctr 0
' O: D) P- \# d2 o/ @8 Q( K - ); I5 G. [5 u& }. i/ n
- (command ".undo" "mark")
9 [2 O7 \: n/ @# P* _" t% o - (while (< ctr sslen)
. @4 j# u% n! @5 ` - (setq listxt (entget (ssname sstxt ctr))" {! I4 x- B O7 P' R$ y
- txttxt (cdr (assoc 1 listxt))4 O# M3 ?$ u3 H: Z4 V; \! E' W* ^
- enttxt (cdr (assoc 0 listxt))
! D$ G0 G) v {! I9 l6 M7 X# W - )
; v/ _2 A& Y3 b2 ` Q2 ~ - (if (= enttxt "TEXT")
- N$ Q$ O$ K8 D' z' w% M - (progn
6 v6 R' O. @! s$ O- [4 n& [! P8 m" k - (setq testxt (substr txttxt 1 3))
% t/ `7 q; c, W0 ? I - (if (or (= testxt "%%C") (= testxt "%%C"))
8 v! Q: j( |! G3 K5 I+ Y - (setq newtxt (substr txttxt 4))
( J w) V. T8 X2 o) b; U. M& j - (setq newtxt (strcat "%%C" txttxt))
, _* F1 p% P; C - )
8 ~& H! [9 w" I - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))" q+ [3 J1 G9 `+ K# a
- (entmod listxt)
8 x2 L0 J/ {9 N- \ ]* [ - )4 z: i- K2 E6 x4 n
- )! ~, s& q+ Y6 \4 c @2 \; W
- (setq ctr (1+ ctr)). D: _- ~6 l4 k) Z* h- p
- )' ^- ~" y! L. R* X& f
- (setq *error* olderr)
' G' q: w m4 Y; |9 p& S# q - (setvar "cmdecho" 1). d& c# `6 P Z. B' F. C$ L7 J) v
- (princ)& R' x# A* G0 y! u- q
- )
3 p9 }* ]7 Q! T) X# O* R) U
! ]$ @3 D8 K2 ^: _- (defun c:DG ()
* F) L6 W$ v8 _5 v& a - (setvar "cmdecho" 0)# Z" Z( n9 ^1 `" }/ H5 H
- (setq olderr *error* *error* myerror)$ [ x* P) q0 E2 v- f
- (prompt "\nSelect objects: ")
# P; r; f. {8 b* l0 a$ d - (command "select" "au" pause). M2 n' W) N. D9 _
- (setq sstxt (ssget "p")! {) z0 t2 Q; _$ Z4 y, s* H! w. S+ J: ?% U! L
- sslen (sslength sstxt)
0 @7 }# @, ?) K. p6 {( d/ Q# I9 ` - ctr 0
( s* e) ^' o# e- p) `4 L - )
5 c8 g- `$ }: U5 w- ~2 c - (command ".undo" "mark"). c- I2 f6 j' Z* w H3 D6 Y
- (while (< ctr sslen)
% o4 r+ v7 J8 V9 o1 g9 I - (setq listxt (entget (ssname sstxt ctr))$ ?) n& v4 B0 O+ `, Q
- txttxt (cdr (assoc 1 listxt))
8 b4 L3 R6 {3 t - enttxt (cdr (assoc 0 listxt))& h. h% S8 t9 p$ `1 u
- )4 m+ ]4 c' S1 N( P, r
- (if (= enttxt "TEXT"), k/ u, I2 X9 J4 j- a% J
- (progn: x) l# H9 W5 J; {* l
- (setq testxt (substr txttxt 1 3))
1 `2 A: u n6 C/ q5 }- i) @, b9 X - (if (or (= testxt "%%d") (= testxt "%%d"))( t3 a$ K# k& B/ l6 J5 T. D% d8 N
- (setq newtxt (substr txttxt 4))# M% S( M$ u! j! w0 x- B! Y: F% s
- (setq newtxt (strcat txttxt "%%dC" ))
- e, O2 g( y+ M6 ? - ) o3 B. ^% q" B( u0 W
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
% n, W7 ?3 v8 W5 h4 i& n' m - (entmod listxt)
" b" o; Y! N; [& \) U - )
4 [5 W* v% _- `1 f3 F5 W - )
6 Y2 q# N/ U5 X7 h0 [6 M% N - (setq ctr (1+ ctr))+ l, ]% E. n" Y
- ): y1 H2 b# b E/ c. `
- (setq *error* olderr)
! B7 _! Q* A' Z! H7 b3 O! @ - (setvar "cmdecho" 1)3 k! ? y5 J) H+ m. {
- (princ)$ _! u5 A0 P" s4 d
- )
; j) S5 \* q a8 G( G& e. o: a - ; F; y* I4 }: f1 A: u$ f9 C
- (defun c:PI ()- @6 A" D% j: a0 ?$ _$ c) N
- (setvar "cmdecho" 0)
1 _9 F2 S( V; q a4 z. e - (setq olderr *error* *error* myerror)
( r, n" y- B6 E: ?* N. i - (prompt "\nSelect objects: ")
/ ^& a- A* ]6 \ - (command "select" "au" pause)
- H( Z; ~ Z, t - (setq sstxt (ssget "p")
3 n( z, w. w% V) [! l - sslen (sslength sstxt)
. Y/ h. T, m6 q- F - ctr 06 ~% S: M) U2 ]- h! C% W9 W4 Y
- )7 R! U1 X2 o& X( u
- (command ".undo" "mark")# J! J0 Q' {, r/ K
- (while (< ctr sslen)
* n+ y: X4 o2 L6 G' w o - (setq listxt (entget (ssname sstxt ctr))
. c. L5 `% Q7 W& V! B - txttxt (cdr (assoc 1 listxt))
8 q% E' {+ V& F1 B0 D3 Y - enttxt (cdr (assoc 0 listxt))
: A e0 h( L1 }- r3 d" M4 i. m - )
( a" q, c: w' s - (if (= enttxt "TEXT")
8 `3 r5 [( S; }; x3 P - (progn
' A0 @( J+ }4 T) r - (setq testxt (substr txttxt 1 3))
( k) z5 I$ e8 [5 t3 A8 A! ?$ u3 Y - (if (or (= testxt "%%p") (= testxt "%%p"))% g, N M" {- ^9 O$ p
- (setq newtxt (substr txttxt 4))
* y. x' m& [% d0 Y) e+ I - (setq newtxt (strcat "%%p" txttxt))* X+ X4 y/ Y1 P+ k' `! w
- )) l* {4 F) _1 u8 T3 j* ^
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
& S& B; N N( e( N9 m) F - (entmod listxt); a. W) s3 i/ T) O- n
- )
( w" F) D/ Q4 J/ v: M2 U/ l - )
. n( s; z/ W* `: u5 T% H+ F - (setq ctr (1+ ctr))
/ j$ x4 v& E, q. e9 Y - )
! w" g2 W( U7 e; ]. i# o - (setq *error* olderr)1 o2 @ ?5 j! K# M0 w
- (setvar "cmdecho" 1)) S" E0 Y5 @5 G; l
- (princ)
: x* b" `* C. X# ~- K0 \ - )9 p* O$ p4 i8 _& D
! Y, d/ q! ? ?- (Defun c:CB (/ a)
& [' i( `2 B, p6 y - (setq olderr *error* *error* myerror)! I7 t% d: ?& U: Z2 ?+ S. k7 C, Z
- (setq ocmd (getvar "cmdecho")); j- {; w5 b$ }$ v* p: f0 n
- (setq oblp (getvar "blipmode"))
3 ]: \$ R2 I T# D - (setvar "cmdecho" 0)
& Y- {, W( q1 s+ R5 u - (setq a (ssget))0 J' M; u1 M! j' [- _- c
- (command "CHPROP" a "" "C" "bylayer" "")
0 K1 M! }4 Y. h) A2 h. [$ u - (setvar "cmdecho" ocmd)* K: l6 g* f9 H+ L, E6 i
- (setvar "blipmode" oblp)4 ~6 P+ ^; Z6 p9 Q1 p# f
- (setq *error* olderr)" A7 I8 z# r4 z
- (princ)# S5 L: j4 o t' Y
- )1 m& p+ A1 B9 }' [% @( R* D' L- ?
4 \8 O. y* a, D+ z. ^- (defun c:LCC (/ co43 obj23 la23)4 w, |# ?6 j( ?9 |& d( c! N1 M
- (setvar "cmdecho" 0)
( ]8 G$ F9 s' q3 F - (setq co43 (getstring "\nNew color : "))
8 l! d; r# q% n' ~% g - (setq obj23 (car (entsel "\nPick object on desired layer: ")))
, j$ m# z7 r- g - (if obj23 (progn
0 r! W9 v6 @0 A - (setq obj23 (entget obj23)) m9 B) H4 e H3 E
- (setq la23 (cdr (assoc 8 obj23)))
9 x, Q- t. W& A - (command "layer" "c" co43 la23 "")
, h2 ^! Z ~! z - )/ F9 z8 J) h _/ k- d
- )
) [2 j5 l; v6 b. ~ - (prompt (strcat "\nLayer has changed..." la23))
% z$ B7 P& C3 ?: ?& t - (setvar "cmdecho" 1)9 E" @5 b: J) ?, ^2 R4 J. c. S
- (princ)
0 [0 {/ K, Z, ]3 L - ) 8 j# Q* d4 ?+ z7 M
2 k8 H8 y& R. X5 G2 {- (Defun c:RP (/ a)
( |) }: C: d9 ~3 w5 [. G - (setq olderr *error* *error* myerror)
4 f- s. V* G' v - (setq ocmd (getvar "cmdecho"))" E& q* a/ x- {& ?
- (setq oblp (getvar "blipmode"))) M% }$ }9 B( u$ [. i
- (setvar "cmdecho" 0)
7 L% F/ X! v2 ]' U( h - (prompt (strcat "\nUSE: Delete object(s) belonging to"
2 U) I! c. {+ O - " the layer of the entity picked...!"))
: w+ f- J9 q! e* A4 } - (setq a (entsel "\nPick the entity with the desired layer to delete: "))
- V8 m4 d" ]# o - (if (/= a nil): w+ @. x2 @; I, `- u
- (progn (setq a (cdr (assoc 8 (entget (car a )))))
$ d" P U3 x* s0 C& b% r) v - (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))% F$ T0 i7 S$ N& Q D
- (prompt "\nNo entity selected!"))' k+ q/ k* o. L" _* a2 k
- (setvar "cmdecho" ocmd)9 Z. c" ]) k5 l7 U1 m7 S; W
- (setvar "blipmode" oblp)
1 T0 W W; `; i2 b) ?2 Q - (setq *error* olderr); m! ~4 o* D" Y& L
- (princ)
/ C7 O I1 n$ r. T, | - ): h1 W+ v! A( z I& w- a
5 \* j2 c2 o8 W9 ^& B- (DEFUN C:WL(/ SSET NET SSL M)
z8 D; j# N; ]- C9 Y+ D - (PRINC "\nSelect lines :")2 C4 i9 x+ I( H" C) ]
- (SETQ SSET (SSGET))
/ N' I2 { r8 C& c/ W - (IF (/= NIL SSET) (PROGN8 k2 e7 J0 e7 L
- (SETQ SSL (SSLENGTH SSET))
1 G& x6 S8 S+ x" m" y - (INITGET 4)
! [: [! l7 t; u2 g. n' g - (SETQ NET (GETREAL "New width : "))
4 C `4 ^" a' `: Y! E# F9 r% o - (IF (/= NIL NET)
( ^, i9 Z* c$ h1 H - (WHILE (> SSL 0)
: J2 @- E* O- Y6 g( F/ a% V# n - (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))
5 V) L! Q; X4 G6 R8 [, L - (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE") - |! H5 \$ r4 l
- (COMMAND "PEDIT" M "Y" "W" NET "") # V" }6 j" {3 r2 p( t
- )
# q! s7 T) v/ [4 n* {' S" ?9 M# f2 K8 t - )
8 Z" `, G# p1 z% h, y5 q - )))8 b$ C! H$ i6 V+ W2 C
- (PRINC)
/ T: g( I1 {: P3 ? - )
" _) ]& r9 F$ G! ?" P# F+ W. ~: ~ - 0 H: H, m( Z% q. M2 u
- (defun C:MML ()
; c+ K7 ^# j5 M1 z/ P - (princ "\nSelect objects to move to another Layer.")( [0 l/ u6 l, }
- (setq ss (ssget))
- _' T2 \" r S5 s* o# E" k - (SETQ UL1(GETSTRING "\nLayer to move entities to : "))
3 r3 z- J' p/ R! C$ w& B" ~ - (setq counter 0)
- @; v8 W! p$ f# y( h2 m' \ - (prompt "Moving to layer.....")(princ ul1)$ `' h$ ] C. G
- (setq e (ssname ss counter))
# {" t4 X8 y( q2 ~0 O1 ~5 z! k4 V7 c - (setq l (cdr (assoc 8 (entget e))))/ A% ~7 a, ]" r; e) Y7 J2 o
- (setq S (ssget "X" (list (cons 8 l))))
% k& e! L d3 F - (command "CHANGE" ss "" "P" "LA" UL1 ""); f, @- T* k+ k6 p" o
- (setq counter (+ counter 1))
: S. o1 s* t" ^9 o - (princ)1 w( L5 Y h+ a) _: |- |' R
- ) : J1 o0 ]- s- h/ m! J7 t
- ' ?% u9 O) s( {+ G" g
- ;;; ================================ GHI CHU ============================3 \2 o( X7 O H& t3 `+ o
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
+ E4 J* l: T: I) `7 r5 v - ;;; =======================Thuong Dung Font Romant.vnh===================, y0 Q5 R& L9 i9 N" m9 p
- / |! ^$ d2 o, \% f5 }& R
- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
4 O; ]$ z: i" u" f0 ^- B7 ` - (setq oer *error* *error* err2)1 p8 m' V% d/ Q5 g- ]! E( N
- (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")$ @8 g( ]& Z8 |
- (SETQ Cpt(GETSTRING "\n (ROMANT-vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (UNKNOWN-font)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))
4 y, F$ T1 x. h. i: } - (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p"))2 m# v1 `& E$ Z g% e1 o u+ ], s
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh"))
: m0 {# J/ l6 n, }9 ]* r! F$ R - (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p")), I$ B! r7 K; g6 h# x: e
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c"))! C {. x8 c) \) k& o
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?"))
& N: O% W4 y, O' h* X4 c, B - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An"))
1 a0 T8 m& t7 w. x - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho"))
& Q/ P4 b% Q( l4 v9 W% O8 q - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`"))
" v4 `0 i) ^& U5 R' [2 Q
/ Z* o! r2 P1 Y4 W3 W7 z' b- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
5 L! i: ]8 c9 F. z4 I9 p - (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))% U' t6 | x/ l+ Q( u$ _
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
/ }+ H: {2 m! _8 X - (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))
* L% [5 `* t3 w: o - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ")). o* v( f$ R- l' x+ {- H
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))% U K8 D: P6 K `% h7 F5 `
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))5 p1 j) S! }) n C
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
6 n3 c1 s8 d/ [, {: R' b" i - 3 d3 ~( z9 s5 U4 [8 W
- (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))8 p0 |3 e, f9 u z A% s' S8 i
- (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))
: t& j6 F6 J" D8 M% w1 C/ p5 t - (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))
! S# K% f/ A: n& m3 K1 F+ s8 P1 v - (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC")). Z: N" A5 O q
- (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))2 h9 b& ]) m4 `6 A# z4 f
- (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))
) U' n! s) I" H - (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))
. T1 Q+ c. ~$ [- c$ { - (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))
T$ z' N) G9 N4 y3 d" `: u - (setq pta (getpoint
; ^4 W u! v N8 c; t& z* K9 x - "\nPick first corner. : "))) |; c* r# H N! s3 U A; _
- (setq ptb (getcorner pta7 G9 k) u/ [$ t7 m
- "\nPick second corner. : "))
% k; O/ G1 ` N- {/ m - (setq ptc (list (car ptb)(cadr pta)))
( p' O" z' X$ Q3 n - (setq ptd (list (car pta)(cadr ptb)))* B+ W8 w) Y/ U' P
- (setq ang (angle pta ptb))
3 `; J" h$ z& k - (setq d1 (/(distance pta ptb) 2))
( k3 X1 f- w( D8 L1 G- J - (setq cp (polar pta (- ang (dtr 0)) d1))
& \" Z; m- l6 ]$ b g - (setq X (distance pta ptc))
! z8 T/ Z/ ^" M) c - (setq Y (distance pta ptd))' Z7 ]/ _7 x- [. }! u m6 s4 [
- (setq X1 (rtos x 2 1))
" v7 O: \3 e% U1 j4 V5 Q6 l% m - (setq Y1 (rtos y 2 1)): N+ m0 P' p3 o1 J! v+ R4 t
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))
[0 c" v$ b5 q. e - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))6 F$ V+ @5 E; M4 c. \
- (defun dtr (angg)+ s3 @; ?4 M& G$ s6 F
- (* pi (/ angg 180.0)))
, E4 R, J3 B3 @, O - * t2 _3 j+ a. d2 k/ R5 d3 J
- (defun c:WS (/ pta ptb rmsz pl1)
* X5 ~4 A2 \5 h) G( z - (setq oer *error* *error* err2)
( F I* X P m4 Q/ K - (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P).")
" T r/ Z3 n, }4 D3 c - (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))
$ O6 S+ e* U" n - ; R. i. D9 ]8 U- b; |4 D! N( ?1 g
- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))
* ? ]/ E/ | ]$ G& G4 Q4 x8 C - (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))
* x6 G) a. Y+ O' O - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))5 _5 C$ u: L$ f" f' j
- (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))
6 f$ k1 z J o- l# q - (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))5 P3 }9 m; y" u- n
- (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))
- H" e# {- o8 w2 L8 ]& c% D - (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))
# n4 T P; w, O: ~+ F5 i! ~9 }7 l - + O3 Q" b2 P# ~) l2 p" C
- (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")), N9 U9 z. Z$ n1 L
- (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100"))/ i- e9 i# R* X. Q1 G- X+ {
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))
9 P1 |; F/ W6 S, ~! W- u - (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))2 }' q* p! \/ f; {) m: c- U' }/ g+ l
- (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))& ^( p; {$ m# e& m6 l; }! _9 J
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT '"KE/M/S/T CA/M/SU KHUNG DO/JC NHA/F : TI/R LE/M/J - 1:100"))
( A( i4 J6 w1 R0 Z - (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN"))
4 _3 D7 o1 U# f% z) d6 d, f& n3 q4 b* } - (setq pta (getpoint) E8 q5 R( l! n# y& `& a
- "\nPick first corner. : "))" @6 V9 E' |. Q' f% [ e2 T7 o1 f
- (setq ptb (getcorner pta
j1 e% E% z& _! K - "\nPick second corner. : "))9 O2 J" [, c: S5 v* f. C
- (setq ptc (list (car ptb)(cadr pta)))
0 I: I2 l1 c( x& Y, a& z - (setq ptd (list (car pta)(cadr ptb)))# M7 v% t0 T. A" V1 w* D, e
- (setq ang (angle pta ptb)): w" `: `+ g4 C. K: G w
- (setq d1 (/(distance pta ptb) 2))
e- n$ ^7 f: k2 b - (setq cp (polar pta (- ang (dtr 0)) d1))/ ^) D1 w# @$ _8 R1 ~, }% I
- (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))4 s6 B3 J- l7 B* W3 j4 j4 t
- (defun dtr (angg)
' C4 o) s& h" d% _: P. X5 v$ I5 F - (* pi (/ angg 180.0)))( S# p0 h% V- v4 `: \0 A
- " V/ f" N$ N9 T. F9 G7 Q
- ;;; ================================ GHI CHU ============================0 w. H: }/ T' |
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========" [$ V- c1 x5 d& k$ Z
- ;;; =======================Thuong Dung Font Romant.vnh===================8 c) L# s( X4 ~) J) A$ b
# x/ w; E* w& ]7 B9 T1 W6 ]- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
5 c7 n! h, y$ N2 u1 d' j( G - (setq oer *error* *error* err2)% X: \9 D+ e+ ?) j, `
- (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. ")
) I. A+ i. f* t: {# D - (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). ")); j F4 S" U0 Y% k% T
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p"))
% i' q; m. p% c8 Z - (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))- P) S8 ]' _8 L) {, E# N% b
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p"))
4 O8 G0 _- V, t) d* k5 R - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c"))
7 I k6 \; L5 L/ u) A: m3 b - (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))$ J% V1 p. E ]! \8 J
- (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An"))
, {4 _* k5 o% U. o - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho"))
! E$ v# |+ ?# o7 |: p; R - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?"))7 Z8 c$ s, [* I+ P6 B4 z+ j$ Z
- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))' `( ?3 i- |$ \ z* q6 M: B
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
1 k! @2 d. }; C5 ?, T5 \ - (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))! l3 [ ~/ G3 `- w- k
- (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc"))
; m6 P% D2 V1 Q: S - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))0 K" F- {6 Y' b% _- ~
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))
. U+ T" D' K9 [# g& j - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
F7 z: [& h9 p4 \ - (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
- q# j: h p: G6 s* [ - (setq pta (getpoint' _% |6 w+ Q8 T6 J/ Q
- "\nPick first corner. : "))# a4 G4 f2 _* x" R5 [
- (setq ptb (getcorner pta6 @! T( o/ g8 M: L! R
- "\nPick second corner. : "))
4 N1 l$ N8 @2 V) s$ ? - (setq ptc (list (car ptb)(cadr pta)))6 t6 U: d9 H" N+ g, q
- (setq ptd (list (car pta)(cadr ptb)))
' P( z, J4 z) V; k& Y: \9 a - (setq ang (angle pta ptb))
! w. k+ Z# m( C4 x, p. C! w( T - (setq d1 (/(distance pta ptb) 2))# p% y6 V! ?+ j/ Q* i
- (setq cp (polar pta (- ang (dtr 0)) d1))
* Y! N& ]: N9 p - (setq X (distance pta ptc))
3 x& z& L+ y. N - (setq Y (distance pta ptd))
. t, a$ Z5 s: T - (setq X1 (rtos x 2 1))- y% }3 b; K0 z! O
- (setq Y1 (rtos y 2 1))4 ]5 @ j' [3 ^5 B9 q9 I4 S
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))4 |" {3 p# Q% ^) C- ]% s# S* _( P1 M
- (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
: R# F# O/ P$ w" F& j$ Y; V - (defun dtr (angg)
1 ]$ y4 K3 p7 l5 F- V6 p/ v9 W - (* pi (/ angg 180.0)))3 y5 C3 U* ~2 i/ s2 b! w
5 J1 g0 F- B8 S/ R0 g- ;;; ================================ GHI CHU ============================) \0 F* s/ |+ S3 a( g
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========& T$ Y1 K7 W4 o, r; K+ s# ~. Q
- ;;; =======================Thuong Dung Font Romant.vnh===================2 I0 R3 a* m( [* B$ u; h- x
- 3 R% p+ k; Z5 J
- (defun c:GS (/ a b c d)
& c5 @4 h- {7 x9 X - (graphscr)% r9 P6 B9 Y8 U: X+ F' Y
- (prompt "\nSelect text to set style....")3 w: ]/ H0 a* C+ N
- (setq a (entsel))
, M+ D T* W8 h C# l2 e% V - (setq b (entget (car a)))5 G: }5 z. F9 e. m6 X
- (setq c (cdr (assoc 7 b)))$ y9 `' u8 R, v- ?
- (setq d (cdr (assoc 40 b)))' N! t& l1 L" ?* q: J. t
- (command "style" c "" d "" "" "" ""))
# i4 w4 w; |" G7 q' x - (princ "\nType GS to set text style.") D+ r9 R: d1 A* M
- 0 }1 O4 {. v- f3 J$ \' B! E* p
- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)
6 u% ~6 ~( _6 @: o9 s: r6 ~ - (setq olderr *error* *error* myerror)
7 o5 e8 k4 N' O1 e - (setq ocmd (getvar "cmdecho"))
' v" H6 ~. m; v9 V4 ?2 Q S - (setq oblp (getvar "blipmode"))
/ q% r- F6 p0 i - (setvar "cmdecho" 0)
( k4 Z4 |6 H: c3 N: v3 n# c7 U$ h - (initget 1) ;3D point can't be null
8 b; }/ a0 v- E; M' ~ - (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: "))): H4 _5 x4 k: L( r! X* A) r! v
- (setvar "ORTHOMODE" 1): E0 S; X# Z- g6 {4 D Z; V
- (initget 7) ;Length can't be 0, neg, or null
r' X4 y+ m, x1 y7 L - (Setq l (getdist pt1 "\nLength: "))) N# Q5 ?) ^& J( y u% |. A* S" {
- (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))
" }- @: B1 z2 {% _ - (grdraw pt1 pt2 2): v) Q, C3 A, P% a
- (initget 7 "Square") ;Width can't be 0, neg, or null0 v+ P. T9 J+ T8 S
- (setq w (getdist pt1 "\nSquare/<Width>: "))
$ x! Y* o$ ?* z9 F+ d6 B - (if (= w "Square")
% J v) w4 g! |3 ~& m - (setq w l)
z; a' X, u/ \) Q - )" b" X2 \) I+ {' V
- (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))$ x' i5 v7 I' l% ^
- (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))
+ L. c' Q- T" |8 v0 z/ J4 V - (grdraw pt2 pt3 2)
6 ?) \7 ~7 @! O7 V' w. k - (grdraw pt3 pt4 2)+ W7 F$ H8 p0 @$ K8 s/ \
- (grdraw pt4 pt1 2)6 }+ I* O6 S: m4 ~% }5 N3 Q
- (setvar "ORTHOMODE" 0)
& e% b. m8 X, \1 P - (command "pline" pt1 pt2 pt3 pt4 "close")* j! F8 b' h9 C& W
- (setvar "cmdecho" ocmd)0 G9 ?! w4 S3 [) M$ C8 V, m9 D
- (setvar "blipmode" oblp)
9 ~+ ^) n6 I% K8 u. R2 o8 s - (setq *error* olderr) ; Restore old *error* handler% k( r0 ]% }' c- z& |( L( r
- (princ)
+ b8 P3 W9 B+ K2 e! P3 S# ^8 O" K - )
* k2 V/ Q6 u6 n, D9 \, X - ! i/ g" F% p. f6 N/ Q
- (defun c:SG (/ ent pt1 pt2 ang)
3 u% P- O! {3 w5 ~' F' q& Z - (setq cmd (getvar "cmdecho"))
$ v( E& M$ u: C( u - (setvar "cmdecho" 1)# Q J$ n ~4 j$ U9 }& N
- (prompt (strcat"\nSnap angle will be set to angle of line"))2 T& [/ S" k, h _2 o" c. ^8 y
- (setq ent (entget (car (entsel))))
9 }9 W0 Y U r1 V+ d5 D/ U$ F( q - (setq pt1 (cdr (assoc 10 ent))) t/ Y3 u3 g5 _4 h
- (setq pt2 (cdr (assoc 11 ent)))
" O( a# r$ v) D4 s6 D - (setq ang (angle pt1 pt2))+ X8 R, p. w, v2 N4 y |( i
- (setq ang (/ (* ang 180.0) pi))
1 \1 ~/ Z8 @; u- S- k5 Y - (setvar "cmdecho" 0)# J2 b! n8 Z0 W1 b6 p' V, E. C; C' L
- (command "setvar" "snapang" ang)- E* h: J& w& @2 j
- (setvar "cmdecho" cmd)
( Y& m& E% E6 c+ S - )# E3 j d0 j6 H5 h" @1 D& f
- - O- V! g/ o5 b- t$ R' M# ]$ H
- (defun C:TG ()( d2 C, A# D- @
- (initget "Increase New")/ _# Y8 g8 v2 w a7 Q% }
- (setq ans (getkword "Increase/<New>: "))& }: v& J0 e5 V* u D3 r
- (modang)
8 q) P0 r4 i l2 C9 Z - )9 y- q! V& y7 L3 o8 |' J/ u
- (defun modang (/ ang ss ca e na ssl)2 {1 F% r6 [2 w P7 V
- (if (= ans "Increase")9 n' z3 u2 @- A! j& {
- (princ "\nIncrease angle for text by: ")9 P! |8 I& r. \7 ?) @# I, b
- (princ "\nNew angle for text: ")
( E; w. V. Q1 i b9 i* [ - ); ^- F& l) K5 i0 o A! \4 X
- (setq ang (getreal))
- A2 h& n# A. d& J- F; Y - (setq ang (* (/ ang 180) pi))
& h% C3 |6 g* @4 z. r# ` - (setq ss (ssget))
: d! U/ Y5 p6 q$ U3 m5 [ - (setq ca 0 ssl (sslength ss))
4 o- F/ ~9 R% m; i - (while (< ca ssl)
, p* R7 _+ y5 i# R, e. l) ^ - (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))/ W3 s! `# ~% c" w$ ^8 H
- (progn: |# I4 S; }3 G0 K' ~( U8 B9 G. I
- (if (= ans "Increase")
, j* w$ _9 _. A! v( ?0 q- [( ^ - (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))
' v3 B b# { q3 O# U6 S) H - (setq na (cons 50 ang)) F: \# {4 C) C9 F- ]# X' k
- )
" z' Y: N l- k- M+ u. Q: F - (setq e (subst na (assoc 50 e) e))5 t) u, s4 t2 z \" q
- (entmod e); W" H' h6 b7 l4 i/ v0 E. Q
- (setq ca (1+ ca))# i" H+ o5 U. L. v2 Y$ V4 P9 m
- )
" ^; A9 k; a/ h7 q$ \! L- m8 y - )
. i7 }2 m( z l' { l - )
9 P9 U3 V! t; T' k9 F - (terpri)
9 E/ s9 j, _ W) j - )8 X# B- r, T* Q1 u4 Y
9 L: e8 k) B% x# V( S- ' |/ ]' n+ J5 Y- A% G# \% G' v6 M
- (defun c:WL ()
$ ~/ u: B9 g' U; x) Q - (setvar "cmdecho" 0)5 e3 j& [ q) |! [0 }7 }6 X/ C
- (setq a 1)
3 W* r8 s1 \0 N/ W! q - (prompt "\nSelect Polylines to change: ")
$ f, l# k- l! X' W" l4 { - (while (/= a nil)
( O" S: I+ p+ l3 ? - (progn
# m! M+ y6 A. b- o; T) y! P7 P - (setq a (entsel))
$ [( w& Y6 } I5 ~& E& B+ x - (if (/= a nil)& a9 L: K+ A: r3 `) j6 c
- (progn
0 t2 M: E- l4 O, Z$ \; r0 Z, A - (setq b (entget (car a)))
; U2 m- o$ V$ w i; E. U - (setq c (cdr (assoc 40 b)))
0 z: h* J) n$ z1 K/ b - (princ c) U* ]' V, i7 q, |4 x# \
- (command "pedit"a"w""lw""")
( q0 U# n$ j9 Z1 s I n - )))) s' t) }5 ?8 m; `
- (princ)3 s: u* k7 g& U$ I
- )( m$ p3 p8 Z% `# u9 h% c
- 1 X0 h. H& B7 I7 f( g
- ;;; ================================ TEXT FIT ============================ i2 N3 s( V- I7 P- f; K
- 5 ?, ?8 D8 j" y3 J% N/ a" s
- (Defun c:FT ( )2 S" v, c* u2 H" S. T5 Z$ W
- (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )" }* I9 P) J, K* G n. {" I
- (Defun LL-xyz (arg) (CAR (TextBox arg)) )
( r0 Z7 T Z$ a3 P: g2 t+ J0 ^" @ - (Defun UR-x (arg) (CAADR (TextBox arg)) )' M! n* i+ W2 a4 t- H+ `# U
- (Defun LL-y (arg) (CADAR (TextBox arg)) )
; k8 t s) X; ~+ M, C - (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )
w' P' a# D* f$ m' e! j2 g- S - (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )
x! I( P3 |: U: \ - Textent (If ename (EntGet ename)) ) 4 c$ Y8 g) o4 z) y# v$ K5 M
- (If (= (CDR (Assoc 0 textent)) "TEXT")
9 e* N& X# X. v4 e" c - (Progn (initget 0 "Start")
( \) P2 ]+ X& B" X7 ], _$ ^ - (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )
& V. e' `! E/ X7 m0 o5 K - (setsnapang Textent) ;set snap along text entity9 L6 @! T* }: G4 ~$ B
- (setvar "ORTHOMODE" 1) ;drag along the text& k' |5 d* U. H2 V# L& g9 d
- (setq
4 [- `6 A8 k. N9 ~1 p% `$ c8 C% Q3 b - TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") ). R! y2 H w4 z# |% D; x0 r& r/ c
- (setvar "snapang" 0)
4 G1 X2 L5 q) ~! d6 @' s9 l: q - (cond
/ z# x! v( c% N) m# o; H6 |: W - ((= (type TMP) 'STR) ;;new starting point to be selected7 q8 \8 X, f( x/ |/ g, s
- (setq Start (getpoint "\nPick new starting point: "))1 K( e2 Y9 R: b1 \* N1 g" c
- (if Start (progn" G' Q0 n/ }) {4 r7 T# y
- (command "_UCS" "_E" (cdr (assoc -1 textent)))3 k+ Q, f: p9 N2 R) m O' S
- (setvar "ORTHOMODE" 1)) |1 M5 W V# I9 L
- (setq NewPt. G. ^6 V+ g- \* ] W* E
- (if Start6 l& u2 Z' i( d! W+ M: I1 n
- (getpoint (trans Start 0 1) " ending point: ") nil ) )
8 a8 z3 ?7 m" {3 ^ - (if NewPt (setq NewPt (trans NewPt 1 0)))
9 x, G: E- K f5 u8 e - (setvar "ORTHOMODE" 0)
, v& Q3 Z2 Z' @+ M' p5 P9 z/ Z - (command "_UCS" "_W") ) ) )
. \* A2 u0 a. u7 u/ J; h7 b" w - ((not (null TMP)) ;;new ending point selected
% n, B; ?4 o, v: J6 x - (setq Start (cdr (assoc 10 Textent)) NewPt TMP) )
0 M% {' J/ x* M/ `7 V - (t (setq Start nil NewPt nil) ) )
$ l0 f! \- B3 s: I0 } - (if (and Start NewPt) (progn2 Q1 @5 p4 s; e/ K. k
- (setq Val (Assoc 41 Textent) ;;current width factor: X( K: z+ ^- {5 O5 v
- Val (if Val (cdr Val) 1.0) LTC_%
$ A0 W7 P) t6 O& O8 ` - (* (/ (Distance Start NewPt) NewEnd ) Val )& r! ?! m: \' R: o
- textent (Subst (cons 41 LTC_%)
/ ?3 j" ^! t* A - (assoc 41 textent) textent)" [0 S5 i2 y+ J/ F! P1 A) l. k8 V
- textent (subst (cons 10 Start) (assoc 10 textent) textent)% o. M! d; {/ \! @7 z
- textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )
4 K% o, N' i' z- | - (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))
b3 J$ F6 h' n- I/ l i - 4 G! p& v1 d0 C+ B5 @
- ;=====================================================================* q- b" @4 P' v8 X0 p7 w3 q
- ;=========================COPY + ROTATE ==============================
' `$ W/ z' N z; c( f$ Z! F; O - ;=====================================================================& }. M0 N1 G- f5 G: X6 \0 T
4 ^ _. W% W) i, ?- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2)
/ r. r1 e# C H! W4 c( F - (setq olderr *error*7 V- ~7 ^$ H+ v3 u2 e- ~$ G7 g9 n; h4 w
- *error* croerr)
5 x' t. W; x& ?9 }: ] - (setq cm (getvar "cmdecho"))0 R! c3 j5 }4 U, p$ @ W4 T% D
- (setvar "cmdecho" 0)
# L6 R' H1 A; M5 w - (setq loop t)+ }2 t* y+ f: F# l
- (while (not (setq ss1 (ssget))))$ Z; ~2 K5 a% `. L; ?+ I
- (initget 1 "Multiple")! i1 G& @1 W# `$ s% W
- (setq bp (getpoint "\nBase point or displacement>/Multiple: "))+ T0 r7 |' L4 q, f
- (if (= bp "Multiple")- ~! ^# q- [ k* \3 A
- (progn; P4 i- Y" f& y, x3 t9 ?3 z5 r/ U
- (setq bp (getpoint "\nBase point: "))7 P* Q7 `3 o+ G( p
- (setq mult t)9 ^# l# d2 S/ j
- )" v' m" |9 L+ G; L, `* o7 k
- )4 R7 f6 _; e5 A. A: s
- (while loop
$ [! l' A, b8 }; F s - (setq loop mult)6 p$ g9 S0 O7 A0 n; ?
- (setq lent (lastent))
6 ?) o% G. o/ C5 J - (command ".copy" ss1 "" bp bp)5 ]& O3 O; n8 t4 Q8 ?8 K7 ~
- (setq ss2 (lss lent))
+ c" v! P3 |4 @, d - (setq lp1 (getvar "lastpoint")); d, Y7 _7 X) S) [( I! R- c( @
- (prompt "\nSecond point of displacement: ")
+ Q: A/ @% s8 f" Q' O h8 p9 G - (command ".move" ss2 "" bp pause)" \4 @4 G ? p3 Z4 Z) @9 q9 x
- (setq lp2 (getvar "lastpoint")). ~! v$ N# G' `2 u3 s+ D
- (redss ss1)7 i, ~8 `0 ]; X% a% f: `
- (if (and (not mult)
* E. y* _( @# R# Q* @ - (= (distance lp1 lp2) 0)" \7 |3 e( Y* p) F+ L7 r9 b/ ^. Z
- )
& p u W' S4 L4 H5 ^' r - (setq lp2 (getpoint "\nRotation Point: "))
# V6 {& Z: S# |$ y# ]8 i3 P - )7 h7 }2 L. @# V/ O5 s
- (if mult
% F4 e( E9 ^) W8 J* s6 i! X9 \1 v - (prompt "\nRotation angle ")
, h) e4 {9 z9 J3 @6 F - (prompt "\nReference/<Rotation angle>: ")
. }3 a/ k5 I6 i, [) E8 B - )
8 V7 E6 l+ r" j9 }# y- v, o - (command ".rotate" ss2 "" lp2 pause): }& G6 M- v9 n! d% a. K. I$ l( w
- )
( h6 a8 W4 v- |, Y7 b! G2 p' F - (setvar "CMDECHO" cm) b. q! u# Y0 K
- (setq *error* olderr)! b5 n- z7 U4 I, m* H
- (princ)
e9 S2 h9 k! f5 f6 t* `, a - )
6 H( q& \9 F5 f: G% R# d - (princ)
6 I5 Z6 B, V! S) E# d' {) G. `3 v - (defun croerr (s) # m* T' n2 a- k
- (if (/= s "Function cancelled") - a6 k H8 o B4 P$ y" L& ^* R
- (princ (strcat "\nError: " s))
) g( n6 C$ ?& H6 P$ J. i6 ], U - ) ' |+ n: L# {3 F' N3 I; `7 H5 r! h
- (setq S nil)+ U g4 S8 R r$ N2 d
- (setvar "CMDECHO" cm)
8 v2 ]1 Q% b4 J4 K) A2 S0 `: u - (setq *error* olderr)
! F" T5 o5 B' u' ?8 O* R. a - (princ)2 `, s5 C/ ^9 e2 S4 }
- )& i% R/ S5 a' a! B, O: c
- (defun lastent (/ a b)
2 u; r" }+ H2 S' p% v - (if (setq a (entlast))6 W1 e/ O! Q8 x- R
- (while (setq b (entnext a))
* Q! l' e+ S' } - (setq a b)
+ [2 A6 v1 X6 p1 [8 g - )2 n$ h1 }! z1 Q. l# D! k
- )( ]0 c2 X# q N" H1 X
- a( A" A9 L- F$ n
- )
( R2 m1 t( c8 I' h' P7 G @ - (defun redss (ss / en i)
C! M0 r# G8 K# m; l2 G - (setq i 0)
7 l1 C" q( D, [ - (while (setq en (ssname ss i))
( p5 e( ~8 c( K/ H - (redraw en 1)
5 S+ Q" b, e+ P+ l# ` - (setq i (1+ i))
, P2 `0 c, F; E5 j - )) p5 i: e# J( @' Q4 v" p+ ^
- )' L: g: j2 g( a( j
- (defun lss (en / sels ed)
$ Y0 c4 h; b1 Z3 ?- I8 H - (setq sels (ssadd))
; f( `0 R% [$ |: A6 \6 G4 a - (while (/= en nil)
) \7 B& L2 h, M) T X - (if (setq en (entnext en)) (setq ed (entget en)))8 u$ l0 [3 D* z
- (if (/= en nil) (setq sels (ssadd en sels)))
! ^. j5 i& ^" l" Y - (if (or (= (cdr (assoc 0 ed)) "Polyline")
. b1 X w6 ?: Q - (= (cdr (assoc 0 ed)) "Insert")
j% K0 S+ P7 U+ f - )
) r9 H3 D; k6 _- ]: H6 L - (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))
# K1 y! _6 b2 m: C; y; X% v - )9 P6 x$ [. e6 [5 z
- )6 @. K; n6 P$ W% q
- sels/ X a% M2 @8 ?1 f, {: V
- )' K, L# l' z& P& k# y
- 1 S. V$ M5 A% Q4 D4 g1 g
- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================6 Y. n, g7 k) p6 X. m0 {- @5 g/ @
- # m7 L8 h1 B2 }% W9 z. |
- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))
3 o3 s. p' V0 M# d7 c. ]8 p3 J - (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" ""))
1 F; x( s+ b4 B9 ~ - (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))- W/ d4 h1 g3 N$ R7 N
- (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))+ k2 w) } W1 a/ g' @
- (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))
- C$ O( r' V# t. Y - (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" "")), |+ Q% r! [3 Q7 R9 \* {
- (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))
4 S/ T+ t. `$ \ - (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))' ?# P& h. E. c+ I* Z4 K
- (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" "")): G6 j/ a9 @$ w
- (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))
4 L; h% P8 L! z4 o - (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))
4 b% d% C# Q; j - (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))9 G$ _% R9 J' r6 n5 T, k5 s$ ]
- (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))6 e1 P# B/ E" ?3 R6 K6 @3 o
- (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))3 t; F& I; V3 m# _3 k
- (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))* b- }; S% v$ c, i
- (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" ""))9 g4 {9 r9 B( k7 p1 t4 u. `
- (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" ""))( h( p' c5 @: O8 G
- (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" "")), H0 t4 q5 K* F; g( q5 z
- (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))6 M: f; E, `& B- T3 M4 ]+ I' {
2 n( W* t3 E. @- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
# J' b/ S# V4 Z; S9 e - 7 O6 f. R4 [5 r# m
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============2 p0 ]" v! _9 v3 x
( F( T6 z( m1 j! _8 J$ _3 Z- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")
% v6 v/ i7 o `& H& H+ X( A - (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")% V1 ~5 i0 o' {2 ?' ]: t9 _7 ?
- & {# a: J2 r" R# r1 B" l
- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===
4 y. [* Z4 M0 [/ c/ {* D
) i/ J3 E, Z( t Z- ;(DEFUN C:netxuatanh () S+ T# x) u* s4 W/ t0 [
- (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
1 K2 ?; n& A& X9 o6 d# C4 M- r3 ` - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" "" u) V& H+ n( n
- "M" "MANH" "C" "9" "" "Lw" "0.5" ""
0 N( x& @$ ~- e: X% V( w - "M" "TEXT" "C" "7" "" "Lw" "0.5" "") U; V! H" i$ J1 i) Y8 a) X0 Y
- "M" "DIM" "C" "1" "" "Lw" "0.6" ""# d! f W/ v2 ^! _% r, v
- "M" "THAY" "C" "7" "" "Lw" "0.7" ""5 r% D# s, D" S& u p; J# _
- "M" "NOITHAT" "C" "3" "" "Lw" "0.5" ""
e2 K% Y; H1 e! o - "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
& o+ o% P/ O5 s( y' H2 L - "M" "COT" "C" "2" "" "Lw" "2" "" M9 H) H: y" w* ]
- "M" "Defpoints" "C" "7" ""2 R. x6 c8 `3 A! \/ O
- "M" "0" "C" "3" "" "Lw" "0.5" ""
9 E3 I1 e; u5 J" b - ; "M" "1" "C" "1" "" "Lw" "0.5" ""
, r4 V( P; \! d; G; Q# J- M - ; "M" "2" "C" "31" "" "Lw" "0.5" ""; j( ^5 p3 Y4 s/ D1 ~& O+ m
- ; "M" "3" "C" "8" "" "Lw" "0.35" ""
: X P8 N8 b# \ - ; "M" "4" "C" "4" "" "Lw" "0.8" ""
# P' s2 ?8 M7 K/ H$ L# d# f2 P6 s - ; "M" "6" "C" "6" "" "Lw" "0.35" ""! h- X9 c. [1 u( u5 ?
- ; "M" "7" "C" "7" "" "Lw" "0.4" ""0 u7 F% b9 X! H$ d) c
- ; "M" "8" "C" "8" "" "Lw" "0.35" "") s0 s5 n7 t. i5 M
- "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" ""
& u7 U. i& R( c0 E3 a - "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""$ h: ]( n2 j1 y' T0 u/ c4 b
- "M" "KE" "C" "8" "" "Lw" "0.3" ""# m7 a9 }# d' ?, I. p
- "M" "KT" "C" "9" "" "Lw" "0.35" ""
* |. I7 V1 i: w! b- m - "M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""
7 E9 N( |" \) a8 r* H - "M" "NETMANH" "C" "43" "" "Lw" "0.5" ""7 c! p2 R5 X1 ~5 `( j6 T! Y6 |* S
- "M" "TBD" "C" "2" "" "Lw" "0.8" ""
6 p" [+ H& t4 E! s6 a: e# c - "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" ""
3 x. l9 N2 y5 \5 S# e - "M" "TEXTVN" "C" "132" "" "Lw" "0.4" ""
7 r5 |, t$ @1 f9 L - "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""
( y) x4 m8 u; k. T - "M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""
, ]1 W8 b) I( E7 a/ L l - "M" "CUA" "C" "6" "" "Lw" "0.5" ""' ?# F; p! P9 R4 K& `8 ~, A
- "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""1 k3 P% M1 e3 h; p, h
: {& X9 Q& M+ N! p! {3 V! E# R0 U- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===
2 A5 E, G8 z/ e! Y) r - 6 Y* e2 ?$ ^; N. u
- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" ""$ D! c. S2 ` Y6 W
- "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""
, e' W* Y' d, ^+ t4 ?+ D - "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""0 N+ I2 o" u% k6 C
- ; "M" "250" "C" "250" "" "Lw" "0.35" ""
% K9 i6 x( y S$ W# }2 r - "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""# Y% Z3 J7 N. k I+ n
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" )" x! C( G* m! C. W& j, m; _
- 7 T- o6 I; x4 _! h: j; a% c
- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======
# \, y5 f3 U. ]( N! C - ;===================================30|04|2024==============================
! X7 P# b8 s) f/ T4 `3 p
9 l* N. @7 C3 |. ?; p* A- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )
/ p6 ~4 _1 ?7 i - (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )
! n/ }( k' d& y, s" z$ \! g - (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" )$ u/ R! F6 {# o4 Q
- (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" )
' j; n/ M8 ^9 Z. o. R! J - (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" )3 A2 E c% I1 N! m& x' J
- (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" )
; j/ d+ N, w3 W, B - (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" )9 K T# x& C2 e- u# k, I
- (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" )
# u$ g1 g' i; |, S9 W2 p! N" v - (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" )* z) O4 C _; d( t2 J
- (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ)
4 t0 z) f" {- J* F; Q4 s: J Q - 6 w- A, O! Q8 d& q
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=0 ~- P& a% Z* Y" r X* f- i# Y W7 {
- ;===================================17|10|2024===================================. ]' e3 k' s) [9 }
- |6 O8 o7 S# Y+ v
- (Command "DIMTXSTY" "ROMANT-DIM" )
2 s% o Y8 t2 T' S - (Command "DIMBLK" "" "Closed" )4 c! j+ v0 M& J# X; f: f" r. F
- : j' ?- Z, W5 [3 `1 {
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
: Y( v: w: Q; @, g0 M - ;===================================17|10|2024===================================
2 @2 s% U) X f. W- o9 f6 c& [) k - ! E5 D* E% H; R; @' o
- ;(Command "-units" "2" "8" "1" "8" "" "N")
4 e9 u2 [0 L4 l# A# H9 ` - (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ). G* ~1 Y( R% Q0 f! \
- , L# r, @( X X. ^' I+ V t/ p6 h
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
* i, k" y7 w( t4 G! y: @- [, D1 P - ;===================================17|10|2024===================================
0 W* O) T% s& L+ o6 Q$ A
! T- N5 L& n$ y) r- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====
+ ?* ]2 c' j8 `% ^ p
; _; u, a0 y6 @. y& y5 n- ;======================== DAT NET IN & TI LE BAN VE =============================
/ W" M7 Q6 ~; m# j: z
/ i# w( c6 m7 Z' f4 w- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================1 A: ^0 l+ r) _" M) i
- ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================
% R- y" G4 N" F' x5 V; W3 g - ;=============================11|07|2025==============================
$ ~" f& i9 l) b% \ - ;Ti Le Ban Ve - 1 : 100
* N: f6 y' s. j5 R( J - (Defun c:kta4 ()
( c- F+ j# B5 q5 ~) S - (setq mv_sc 100);Ti le ban ve1 @: J9 w3 T2 e$ b1 {
- (setq x4 297)
- v% M# H! b- E6 m; \7 S8 V - (setq y4 210)
( \: [! U( i* k8 ]2 h' \ - (setq x4 (* mv_sc x4)
x$ ?% Y2 @, J; h3 M( x - y4 (* mv_sc y4) ); S* z2 g8 g2 L0 x
- (command
6 m( K* ?- O/ a7 F- o1 l6 F* d - "LIMITS" "0,0" (list x4 y4)
" ~. Q4 x" s: {4 o - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"+ a" F) n @" N; E
- ;Khung CHU NHAT Chinh * M# H c& q8 ^! Q# v
- "RECTANG" "500,500" "@28700,20000" d- ~: b% u- f5 d
- "RECTANG" "700,700" "@28300,19600". w& r( Q5 W3 F* ?# O. Y
- ;Khung Ten Chung
9 D1 O+ [6 f3 `8 K5 s4 N- V$ ] p - "RECTANG" "700,700" "@8000,1250"$ H+ e# d9 w3 l* U4 F
- "RECTANG" "700,700" "@17300,2500"8 d# x/ B. w2 U3 F" d1 `9 Z6 I. ]
- ;Ten Ban Ve5 b& P0 \6 A7 Y% A7 Q
- "RECTANG" "18000,700" "@11000,1250"
8 t% r9 f1 h! W2 j4 Q - "RECTANG" "18000,700" "@11000,2500"
: y1 c6 h' L; y& b2 y/ ]$ o - ;Khung Ti Le + Ngay Thang Nam6 h- U# ^$ t: M3 e8 B
- "RECTANG" "22500,700" "@2000,2500"" ] P! }& [7 |/ n& d
- ;Khung CHU TRI1 X k( [, E2 ~5 W
- "RECTANG" "8700,700" "@3800,2500"1 c* t6 X& f! o! x$ J" |
- "ZOOM" "_a" ))/ h, _, b! B4 W! C
- ;=====================================================================
8 S5 D. X5 Q* n4 X - ;Ti Le Ban Ve - 1 : 100$ d2 U4 O8 Y2 y0 h% p
- (Defun c:kt4a ()
0 \2 g$ f# Q" v) f4 N1 b7 D - (setq mv_sc 100);Ti le ban ve* j- e. E0 y3 l# L' J" z* G
- (setq x4 297)+ W3 L8 Q+ k O. s: E
- (setq y4 210)! `! f! C9 k4 E+ i
- (setq x4 (* mv_sc x4) + s& H! N% c! H
- y4 (* mv_sc y4) ), z$ J- x1 m" b9 a
- (command + p. x t7 u8 k; _# u0 x- ]1 ?1 K* Y
- "LIMITS" "0,0" (list x4 y4)% V1 x5 p+ L+ V# u( ~- q) W
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"! R- ^7 b) K P/ l' g9 p9 f
- ;Khung CHU NHAT Chinh ' K+ A( m; z \0 m& x
- "RECTANG" "2000,500" "@27200,20000"" z4 o$ ^( [+ O; h5 e
- "RECTANG" "2200,700" "@26800,19600"4 v3 }! ^3 x. I" t+ c! w
- ;Khung Ten Chung* W" J, x9 W( r* G% O1 ?( W0 B: l
- "RECTANG" "2200,700" "@6500,1250"- Y% R- k# L ]
- "RECTANG" "2200,700" "@15800,2500"2 t' I' r* }6 j0 T
- ;Ten Ban Ve& ]5 d# x! p7 ?9 ~0 r9 E v3 J
- "RECTANG" "18000,700" "@11000,1250"
# e) c: M) k1 t. E: V v% n - "RECTANG" "18000,700" "@11000,2500"' O k: W/ E* c3 z" Z& T
- ;Khung Ti Le + Ngay Thang Nam
/ A6 m. D& z; N z) w' r$ X9 K' c - "RECTANG" "22500,700" "@2000,2500", h+ I: U+ P6 [ P
- ;Khung CHU TRI
( ~; b! q/ f U - "RECTANG" "8700,700" "@3800,2500"
7 Z6 e S4 ~% \: @9 r( e* l - "ZOOM" "_a" ))
, u1 H6 ^+ y9 U, H2 T3 f
7 i m7 d- d- y9 f3 W- ;;; ============================GHI CHU Khung Ten========================/ [$ L: m2 Q3 R' y* @
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
+ E6 | n U/ N; }2 u - ;;; =======================Thuong Dung Font Romant.vnh===================2 A- L" t x( M% W% Z S
- 3 k' L6 m' ?; Q5 t
- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
& t0 g( ^4 ^% A - (setq oer *error* *error* err2)/ ^2 [' r- ]/ @; T
- (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")
. M' R4 i: _. S! c A - (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). "))
( n* J2 [2 ]. w C& a0 ~+ W7 P - (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))
9 ?% D, Y6 ~( C - (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))4 x3 [; a: {( H. U6 k: J
- (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))- i9 V2 W: p/ I3 h0 R
- (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))" M& c1 z; |$ q1 p! E
- (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))
9 C t1 q# h6 N" ^. k - (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))9 l' E: R) y1 l
- (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :"))
$ Y1 _( j3 P% j% u- ?& z& ^0 H3 @4 ^ - (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))) Y- [: C9 Z( Z; p1 e( m
- (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :"))! F: t3 G. O- t* o0 \
- (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :"))
* D+ D3 @) N& f+ K+ d& P& g6 Y# b( ~ - (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))1 |7 `8 _1 t2 n1 i/ ]" i+ j
- (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))
8 }& ~5 z5 S* N/ r4 R& | - (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng")). H9 o6 r! X R: J
- (setq pta (getpoint* V# k% r8 Y. Y. D
- "\nPick first corner. : "))( d) g/ T/ N; m6 e1 t# ]0 h, f2 \- P7 L! q
- (setq ptb (getcorner pta' ^% K: u! I1 p& d o+ t+ V+ d
- "\nPick second corner. : "))
& o, |, }9 h/ R$ c/ a: v* r) l, b - (setq ptc (list (car ptb)(cadr pta)))- Y0 O* S3 I S& s( ]& ~, K
- (setq ptd (list (car pta)(cadr ptb)))! s% E( _- [' C. A
- (setq ang (angle pta ptb)); Y0 v C3 e( f) {+ [! o1 q
- (setq d1 (/(distance pta ptb) 2))$ L& d# g: M6 j/ j* s
- (setq cp (polar pta (- ang (dtr 0)) d1))
: q/ c6 |: c1 V2 l% k0 i - (setq X (distance pta ptc))
7 n, R1 J/ T3 j" D5 P - (setq Y (distance pta ptd)). d# N6 T( h5 I! a
- (setq X1 (rtos x 2 1))
8 y4 h6 L3 Y4 T4 _8 w) ]4 d" F+ a - (setq Y1 (rtos y 2 1))
, t8 _& b. S4 |4 K/ y& t - (setq rmsz (strcat "(" X1 " x " Y1 ")"))2 _1 u) U* G! L+ F1 Z0 ?, ~- E
- (command "TEXT" "c" cp "0" CPT "text" "" rmsz))3 u" P5 B# N8 f; l( N+ ~9 r" v
- (defun dtr (angg)4 t+ d$ i# r( t- {
- (* pi (/ angg 180.0)))
- B% m, p' g; A2 J6 |- A - 4 W& E7 W! Q9 a& g' \, j
- ;=====================================================================
, U/ [" B" w# j2 v - ;==========================DAT KHO GIAY BAN VE - KIEU 1========================
/ B K+ f6 G9 k o - ;=====================================================================. J$ n5 B+ ]* s) y* v, N8 I# i1 [
- 0 R- k( o0 M& a& v5 B T B# C) H/ s
- (Defun c:a6 ()
: L' M) Q" | t0 `' u - (setq mv_sc 100);Ti le ban ve: R5 _5 A( p3 A8 j1 A! r
- (setq x4 74.25)3 {2 X: G* q: Z0 L
- (setq y4 52.5)
$ u: B5 j0 |. ^7 `! s - (setq x4 (* mv_sc x4) " R+ Q7 Q ]# i% ]6 l- E! s+ b
- y4 (* mv_sc y4) )
# Q# K, T0 D. j0 B. u0 Y - (command " {: `- V& `4 F4 Z7 X7 d
- "LIMITS" "0,0" (list x4 y4), G* U' c/ b1 C+ X
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"- `" }0 y+ u q4 n$ `& B
- "RECTANG" "125,125" "@7175,5000"; |$ G* W) @- G$ _+ [4 T! Q
- "RECTANG" "175,175" "@7075,4900"
1 Z1 e( a$ K: `+ G - "ZOOM" "_a" ))/ C: L, G) _4 H
- ;=====================================================================
9 i1 S, u, w7 O+ w7 o - (Defun c:a5 ()
2 o0 l0 |& Y" |: f" q6 A - (setq mv_sc 100);Ti le ban ve; H! T' @( H* {, I2 z
- (setq x4 147.5)
: k5 h# I& ~" Y - (setq y4 104)
2 |4 t! p# k& {( y# k# a+ S - (setq x4 (* mv_sc x4) 8 y% T. x, l9 ^2 b8 s1 D
- y4 (* mv_sc y4) )7 B8 s: @8 S+ `. F" K
- (command
T9 L; [! I, @. b f) D - "LIMITS" "0,0" (list x4 y4)
0 P8 E. A6 c" q3 g8 e - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"5 k' d& D6 D$ [6 j2 c
- "RECTANG" "250,250" "@14350,10000"
% H! \" w V6 x" ]3 l/ E* y/ q - "RECTANG" "350,350" "@14150,9800"
9 G# x0 O, T# x6 N - "ZOOM" "_a" ))
; i' n8 h6 B9 m2 O5 N { - ;=====================================================================9 G. h* ]+ q2 x
- (Defun c:a4 ()
! i! {' N! V& ]; b, n! M - (setq mv_sc 100);Ti le ban ve g: W. K$ {3 l& S
- (setq x4 297)' U$ @( i) p) \4 W; c
- (setq y4 210)
8 ?. y1 S+ d7 B, `; z- P x+ r - (setq x4 (* mv_sc x4)
! c4 `( X c0 T) U3 c% { - y4 (* mv_sc y4) )
7 S# Y$ s h d( ? - (command
, h8 w; B, F/ a& i- L- `/ u - "LIMITS" "0,0" (list x4 y4)8 D$ [0 o- p1 {& \
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"- t4 ~* P& I0 F2 s
- "RECTANG" "500,500" "@28700,20000"0 d* Z8 N7 ]( ^$ k2 p, j. J
- "RECTANG" "700,700" "@28300,19600"
$ a/ e% E0 E4 V& d - "ZOOM" "_a" ))2 X Q' d2 v) u/ k& W* Q- u! ^
- ;=====================================================================* ? i2 `& j4 [' D: y7 n; p5 }
- (Defun c:a3 ()# ` y3 r& I; J5 C: B/ x
- (setq mv_sc 100)$ l. B% q* e9 j& p& |/ t
- (setq x3 420)
( @: c- S" F- ]; t# o - (setq y3 297), @, N2 _, f4 P
- (setq x3 (* mv_sc x3)
- b- u* T5 ^8 h- X - y3 (* mv_sc y3) )
# G' C+ p x& Q - (command
- x9 K% m' b0 J: i# X - "LIMITS" "0,0" (list x3 y3)/ ^! l4 c# W0 J
- "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
2 z* p5 ^9 f" O - "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571". A* c- `2 V' p( N3 t0 c8 T
- "RECTANG" "990,990" "@40024.28571429,27720"/ Q- Y' x& h5 `' Y# p+ P
- "ZOOM" "_a" ))
8 l) e# G! c! R* l/ Y* X - ;=====================================================================
' _% x+ @0 C/ y9 o; M - (Defun c:a2 ()
- t* P5 O T9 k" b: m - (setq mv_sc 100)% t5 a, P! y4 \" B9 m
- (setq x2 594)
# L* s6 `* V1 y/ g, J. { - (setq y2 420)% u* z" j; d2 `$ Q- M
- (setq x2 (* mv_sc x2)
3 i: b C6 I; t5 q3 G - y2 (* mv_sc y2) )
# n9 y+ e8 G& ~0 K4 a' W- ^ - (command
/ \: q1 D8 T( E: I$ |6 v - "LIMITS" "0,0" (list x2 y2)! a+ }+ @; L4 ` E
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
: H! @% A( Z3 V- b, @ - "RECTANG" "1000,1000" "@57400,40000"
5 P: E8 O! ~- R$ N- J$ R - "RECTANG" "1400,1400" "@56600,39200"
: D1 S7 u& S' u" B4 r/ e; j) E0 G - "ZOOM" "_a" ))
7 D/ D A$ @' |! M3 @- q9 o- g! c - ;=====================================================================7 v6 u0 W0 [( w" T! ^9 {9 ~9 P
- (Defun c:a1 ()% Q, H; V: ?! p' V/ x1 h8 B5 K* W+ R
- (setq mv_sc 100)
3 t S6 ~" E: b) V+ R; r4 c! R5 Q" d - (setq x1 840)
7 m" ]( S- Z" x5 f' o1 G - (setq y1 594)
$ c" F3 b: k3 J' ~: D - (setq x1 (* mv_sc x1)
) G3 q2 B" Z) Q" t - y1 (* mv_sc y1) )1 r1 _# A+ n; M/ ~& R8 M% e3 N( W, ^
- (command ( D, n9 o+ B% L6 B1 `6 }9 k
- "LIMITS" "0,0" (list x1 y1)
) T0 w, T* _7 l7 @ - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"0 H/ ] N, V: p5 e
- "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"6 I5 \5 d' Z/ R4 m" m; `
- "RECTANG" "1980,1980" "@80048.57142857,55440"
* Z) Z: U2 y' R" V7 ~1 [6 W - "ZOOM" "_a" )). l# A$ X3 N C3 G8 u4 ~ {+ ~% E
- ;=====================================================================, q P' _; y0 }3 e
- (Defun c:a0 ()
+ |0 g2 Q4 U( f6 {& j' W$ V+ J( p - (setq mv_sc 100)& p% r+ W5 k" n6 Q4 S
- (setq x0 1188)
) X! t1 S# o( M" @& r: Q" v - (setq y0 840)
% t! L; A, ~$ S5 N$ l8 n - (setq x0 (* mv_sc x0) - @. Z1 t5 d5 F* b) z' H3 b: {
- y0 (* mv_sc y0) )$ e. `& f* V. b5 E! L& C6 `
- (command
. w& A4 ]+ D; u R. [6 k. @ - "LIMITS" "0,0" (list x0 y0)
4 Y- a/ g1 y- E1 y6 Y1 m5 b - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
8 b( N2 @+ R7 d+ h2 g- \! i4 N - "RECTANG" "2000,2000" "@114800,80000"
9 U' s3 O6 b q' s+ ?4 m, I - "RECTANG" "2800,2800" "@113200,78400"0 b8 \+ K' Z) M8 ^. O. j, V
- "ZOOM" "_a" ))
8 i, j" [" }1 l9 Y
. ?! ?3 Q% e/ k( E2 m- ;=====================================================================4 o9 d; U4 Z( x! l
- ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================
0 }( E0 q5 q* E3 c4 e3 H# B; ?4 O8 K - ;=====================================================================
3 }& O% c. {- G7 ]) R* T$ N1 j
- S% |% }( H4 b4 X- (Defun c:6a ()
8 n2 \' J- d8 O& n4 `4 j - (setq mv_sc 100);Ti le ban ve& i a* j# E; G
- (setq x4 74.25)
* S. \+ P/ w6 c - (setq y4 52.5)5 ?& [6 w8 e- q& Z! T- K
- (setq x4 (* mv_sc x4)
) v1 }+ j9 d7 g9 t* O( V - y4 (* mv_sc y4) ): g$ f, Q4 Z$ T+ y& x' p
- (command
- U; e' o+ V: ]: q - "LIMITS" "0,0" (list x4 y4)
8 h* D5 c4 @& v6 `: H. B: o/ _) J! r - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
; m a2 D9 c- z0 n- n3 F - "RECTANG" "505,125" "@6800,5000", H7 f+ i7 N: R" w* e
- "RECTANG" "555,175" "@6700,4900"
* v, I% ?' p% Y' o3 D/ j - "ZOOM" "_a" ))
4 W. h3 W/ h0 F3 k: H+ p - ;=====================================================================6 S* Y( A8 h6 t& i! @3 N" `
- (Defun c:5a ()
! |7 H/ Z6 r: N8 M1 H6 F - (setq mv_sc 100);Ti le ban ve
7 y' k+ `" E% x0 o1 l" d! t- X! H - (setq x4 148.5)
0 |- `4 }+ O0 E3 c* n - (setq y4 105)' W2 q( |# h% y" J
- (setq x4 (* mv_sc x4)
/ i8 p# m& t4 {9 n' `2 n+ D - y4 (* mv_sc y4) )+ m. C2 [# c7 M, I" A# C
- (command ( J3 g% r# h; E/ ?* X# ~. o/ |
- "LIMITS" "0,0" (list x4 y4): K0 n1 R2 r4 y* q; B2 L( L* r; o
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"1 J2 E' d j3 }, S6 p; W
- "RECTANG" "1000,250" "@13600,10000"
+ ]$ M2 I! V4 |/ P Y' K - "RECTANG" "1100,350" "@13400,9800"
5 f$ h# a0 ^8 q+ d( p - "ZOOM" "_a" ))! x8 Z ?0 f% G! Z
- ;=====================================================================
/ Q1 r9 F, V, s, d$ v2 B - (Defun c:4a ()6 I1 c" e7 o8 U4 I
- (setq mv_sc 100);Ti le ban ve2 C6 _ h+ ]. J4 X% F
- (setq x4 297)$ e( ^* A2 w/ Z' b; G
- (setq y4 210)
( v) @' N% u: t3 N" w - (setq x4 (* mv_sc x4) 9 b- i# g% i' K
- y4 (* mv_sc y4) )
5 E; S6 W' i0 F$ T& J' w - (command ' Q0 w0 w3 q: r: F* J
- "LIMITS" "0,0" (list x4 y4)( U) t) _ s8 N" l; E
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
; L2 r6 f8 t0 t# ~; b - "RECTANG" "2000,500" "@27200,20000"
9 c2 A3 m2 j" p* r( |- r - "RECTANG" "2200,700" "@26800,19600"4 f8 Z3 x% Y. A+ V; a2 _
- "ZOOM" "_a" ))6 [' L! l+ h) { }' J: o
- ;=====================================================================
/ M, ]* z6 X1 P - (Defun c:3a ()
# M7 C2 p2 l# p( Q* ? G9 s - (setq mv_sc 100)! H! @2 F8 ~+ U, W2 ]0 ?8 O
- (setq x3 420.0428571429)
1 ] ]3 f2 H, r$ Z - (setq y3 297)/ Z2 @- z. U j" n5 b' _
- (setq x3 (* mv_sc x3)
& _- f1 h6 r* U7 T7 f; {% i - y3 (* mv_sc y3) )4 ]1 X7 `+ B$ p; x+ L
- (command 7 w6 J. P4 q$ e7 S9 {' B
- "LIMITS" "0,0" (list x3 y3)
, u& F' w- v8 @4 b4 A- I7 a% V - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
8 ~2 l% S% R: j' t - "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"
1 X6 x" z( K3 Y3 i - "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"# l. r6 j) \- c2 W. J
- "ZOOM" "_a" ))
! I% G" s! o$ K' W - ;=====================================================================# C; p' G9 i1 s$ b3 e. ^
- (Defun c:2a (), z! I) q1 U" g: T* K+ v
- (setq mv_sc 100)2 m5 q I D% y& m# z* E
- (setq x2 594)2 B/ D7 x4 G7 P V
- (setq y2 420)
/ y: e* |2 L1 s D: G( b - (setq x2 (* mv_sc x2) + h& n, g# S. K8 r( |1 B b
- y2 (* mv_sc y2) )
& W F+ d% ?% b$ \& e( F - (command 5 b; Z4 X7 E) M7 s3 Q4 ~
- "LIMITS" "0,0" (list x2 y2)
- F3 X% [1 l- r: [ C7 U - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
1 q% K8 Z' U2 a" `5 P( u8 f: G9 ^ - "RECTANG" "4000,1000" "@54400,40000"
E" t) H( A3 Z* B6 p& K: q: u - "RECTANG" "4400,1400" "@53600,39200"
/ D/ _2 x) t7 [. j3 q - "ZOOM" "_a" ))+ w& ]- U" a: y1 @. x
- ;=====================================================================/ L4 U- s# y# z1 S
- (Defun c:1a ()
c- U: P- q# a2 ~1 O1 @ - (setq mv_sc 100)% k# x: N+ ]7 X! p0 y# E
- (setq x1 840.0857142857)
, g8 |6 ]: L7 x& g V( y - (setq y1 594)$ [6 v) L+ X( x. R, M* k$ d
- (setq x1 (* mv_sc x1)
' M1 \" M- U3 d7 Q' Y - y1 (* mv_sc y1) ): u( z& x6 U/ U! h) S! A1 [) J
- (command
9 j9 n+ Z( y' u! o - "LIMITS" "0,0" (list x1 y1)' Z+ |( n# w) ^/ E
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
6 v8 R8 Y( w2 M+ `0 @9 H9 B) c1 J - "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436": S \7 r# C# a
- "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"9 b' q" G6 A, R' i2 I, E2 H) n: I
- "ZOOM" "_a" ))9 o' s. Y& ~) f% K
- ;=====================================================================
! `2 Q* }# r6 k f; @6 o - (Defun c:0a ()' p! |. }2 \" \1 o' a' I3 B( l0 W8 ~
- (setq mv_sc 100)
! K% U, e4 y3 w" o - (setq x0 1188)& U9 C& @! v9 U% Y; A# V
- (setq y0 840)
$ t9 e2 P1 P* G; |4 U - (setq x0 (* mv_sc x0) : V. j; M3 k5 W- D
- y0 (* mv_sc y0) )
0 z }& H3 b2 R* ~2 } - (command
8 X. r! c% b# k& ^ - "LIMITS" "0,0" (list x0 y0)
6 { O7 q3 M9 Q9 ^+ J/ a- d% _ - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
2 K4 ~8 G- ^! G' c8 o - "RECTANG" "8000,2000" "@108800,80000"5 R& a5 q0 _% y: |' ?
- "RECTANG" "8800,2800" "@107200,78400"0 P+ |4 N) N- [# |: i
- "ZOOM" "_a" ))
( R& @6 f( v9 r, A7 x W- Z/ o1 R" O - ( \' M1 `$ n9 o6 ^# T: m7 \4 q0 O
- ;=====================================================================" G, O+ L( ~' e, D
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================
! W0 c( Y/ J m - ;=====================================================================( _1 B" G& Y* o
- (defun c:khogiay (/ oldlst a b c d e f g h kho TL)
6 a8 R+ h$ I+ \6 A# [2 F3 e. T - (command "undo" "be")
: _# }/ ~8 {. { h - (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))9 b3 Q% @& b! Q( x$ m, N
- (setvar "CMDECHO" 0)( m+ w% h! [9 a3 D/ \9 G- {
- (setq a (getpoint "\n chon diem chen :"))
1 U% n `/ Y- f/ e1 b6 p# _5 { - (if (not TL) (setq TL 1.00))( Q2 D& q% Q" H8 _. v0 K5 M
- (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))* |* C, b4 N p; H) f8 z- ]
- (if TL1 (setq TL TL1))
e( W! A/ \, j: j3 X - (setvar "osmode" 0)
0 X( d, x( p9 z- o' J/ Z - (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" ""))4 i, I. W& u# q& ?
- (initget "0 1 2 3 4")
! [. d8 u z% m- z- j: O& a. _6 P) m( P% Y - (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))$ n4 V# c2 j' ^0 M) Z
- (if (= kho "0")9 }3 d, T. W/ ~* |
- (progn# k' V s9 W4 V5 m
- (setq b (polar a 0 (* TL 1189)))5 s5 A/ c0 f, {5 n4 n; u9 D1 N
- (setq c (polar b (/ pi 2) (* TL 841)))4 P! l" K$ P% V/ {5 g, r/ u$ z% @. V
- (setq d (polar a (/ pi 2) (* TL 841)))
$ A5 u: N5 {3 {$ R2 J# j - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
' e" y$ c' I3 y+ Y9 _ - (setq f (polar e 0 (- (* TL 1189) (* TL 24))))4 l: b" e" ?) {$ y: y$ y. r
- (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))
* U* D) {+ u% u! G+ z/ ]& Y* h, I - (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24))))
4 l) \$ C& V' ?; ^7 i& B8 y0 { - (command "Pline" e f g h "c") 4 ^! S- I. i# ~' G) f2 W
- (command "change" "last" "" "properties" "layer" "0" "")
- r$ o+ P' Q) U- B - (setvar "cecolor" "4")5 R4 i/ J' w/ S. d
- (command "Pline" a b c d "c")
* G9 m' C! `* C: o" c - (command "change" "last" "" "properties" "layer" "defpoints" "")))
% A R3 Q6 w. L( m$ t - (if (= kho "1")
0 J* T+ l7 Z2 S2 u9 S5 _ - (progn
* p6 ?+ o$ Y- ?5 g! t4 n+ _# P - (setq b (polar a 0 (* TL 841))). }! @) Y+ ^! y: Y
- (setq c (polar b (/ pi 2) (* TL 594)))8 @$ M3 w+ y, ^! q4 }
- (setq d (polar a (/ pi 2) (* TL 594)))
3 b- O% x8 D% [& S: J. [ - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))( V: }: h _5 R: i0 a
- (setq f (polar e 0 (- (* TL 841) (* TL 24))))4 a1 w# d6 b6 P7 C
- (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))+ V% i+ k/ x# `. ] h \
- (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))7 X g: }4 b y1 G1 `5 X2 E
- (command "Pline" e f g h "c") ) z" k& b/ B' i4 G2 z
- (command "change" "last" "" "properties" "layer" "0" "")
0 ~8 N: x: A, I' |# L - (setvar "cecolor" "4")& N8 r5 c# i/ S' A% z8 } |% Z3 }
- (command "Pline" a b c d "c")* I6 h8 c/ J$ H6 f- m+ |
- (command "change" "last" "" "properties" "layer" "defpoints" ""))), C: {) L3 p$ f3 u8 J* o
- (if (= kho "2")+ {; s( S, R1 J) P
- (progn
" w5 {2 `. s$ m8 b6 ~ - (setq b (polar a 0 (* TL 594)))
& C) ^- l: j* @% G+ U$ _3 c! X - (setq c (polar b (/ pi 2) (* TL 420)))' z1 f5 s @$ W! W# @* b
- (setq d (polar a (/ pi 2) (* TL 420)))
# O8 z" l1 e( e - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))) ]4 ?3 b5 A0 V% }. H ?& `
- (setq f (polar e 0 (- (* TL 594) (* TL 20)))); {' C% ^: f; ~/ O2 ]3 t+ i. d( _) S
- (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20)))): _3 q1 [ [- p5 K/ L" m
- (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))
- C$ o; e( x7 b* C+ q- D - (command "Pline" e f g h "c") 7 m+ _7 R! C6 K. \
- (command "change" "last" "" "properties" "layer" "0" "")
g1 | ~% Q; t j9 c; C - (setvar "cecolor" "4")
( A7 L4 H0 u/ D. a/ u - (command "Pline" a b c d "c")
) t& W/ S. F% R5 x4 H) r( W - (command "change" "last" "" "properties" "layer" "defpoints" "")))
/ @+ c7 A8 d5 C, R - (if (= kho "3")
8 H$ D& ~$ s7 G7 p - (progn
: i |; j& Z0 @0 { - (setq b (polar a 0 (* tl 420)))$ j" Y/ y3 C/ m) y4 ^+ z/ s- h
- (setq c (polar b (/ pi 2) (* TL 297)))
8 R' G1 u2 w) j: ]* W( K% ] - (setq d (polar a (/ pi 2) (* TL 297)))
! ]- J* I( C* J$ X - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))* H* m0 [5 v) h& S4 Y7 e
- (setq f (polar e 0 (- (* TL 420) (* TL 20))))
# v" X8 h+ u' L* h8 N; U- x - (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))
c1 D, C' R) z$ _8 r - (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))
5 T5 N1 [6 D/ t2 z) v7 S& H - (command "Pline" e f g h "c"); Z" i( t+ ~0 s6 n: X+ f! ^
- (command "change" "last" "" "properties" "layer" "0" "")
' p* W& A6 p2 E8 u7 }6 t - (setvar "cecolor" "4")
, z9 p$ E# S' G9 `% U/ }9 w - (command "Pline" a b c d "c"); K: m+ O) `( |4 ]) j3 V
- (command "change" "last" "" "properties" "layer" "defpoints" "")))! e% a2 |* C9 X" } @" x8 K, V
- (if (= kho "4")
h3 ?3 p: G9 X3 R$ G - (progn/ O4 G2 [5 ~, D( {" r& X- T$ T
- (setq b (polar a 0 (* TL 297)))
+ b( h: |- u# [ - (setq c (polar b (/ pi 2) (* TL 210)))
1 Z" y3 D5 i' M4 d - (setq d (polar a (/ pi 2) (* TL 210)))2 d. a' L# L( E1 L3 a* G2 n3 i
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))5 a6 L1 j* S- n' x) g
- (setq f (polar e 0 (- (* TL 297) (* TL 18))))
7 X/ |' N3 K- ]$ n, S - (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))
. c! [6 }3 A- q/ p& R7 } - (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18)))). B+ G' \) s2 _ s4 I$ e
- (command "Pline" e f g h "c") 8 _% `5 A+ L! b0 c' y3 n
- (command "change" "last" "" "properties" "layer" "0" "")4 m" {) p) ^3 ~
- (setvar "cecolor" "4")9 A7 R+ s& q4 U: l3 U* I' m
- (command "Pline" a b c d "c")+ h* o8 U2 ]3 ^) F) r2 e) o. I
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
, M/ t M2 k( C n4 o6 u - (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)# |$ z" u% c- ]6 h7 ^
- (command "undo" "e")
2 l9 m% d+ Z `* q9 H - (princ))' p. m* p4 ^0 }( P9 j
- ;=====================================================================
$ f/ ^; E/ _8 E+ n& w5 w7 B7 ` - ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================* s G" Z4 E3 ?
- ;=====================================================================
. r! L2 ^+ |2 U7 n; w
6 w4 L9 N$ @9 h, G, D' G- ;=====================================================================
/ b( W& k0 m! _ - ;===================DAT Ti Le Theo KHO GIAY BAN VE====================" b- l& E& a+ e! H
- ;=====================================================================
6 A$ f* |7 e% R! ? S+ v( x& D - 2 G( z5 `1 t# O
- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
# T2 |) C& B/ ~- F8 i! x! J - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""
, k7 p o9 e- E' ?, p - "M" "MANH" "C" "9" "" "Lw" "0.1" ""
! B. P! P' k$ B. c0 a1 u - "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
: ?+ }, |0 y p8 g - "M" "DIM" "C" "1" "" "Lw" "0.12" ""
) Q) t) M2 d& [- W& H# p - "M" "THAY" "C" "7" "" "Lw" "0.2" ""0 |* ]+ }( c8 u8 [& R6 [
- "M" "NOITHAT" "C" "3" "" "Lw" "0.12" ""/ Y: X. z# T: t/ K
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""- _0 c: [8 R8 m3 G2 ]0 S( ]# R+ ^
- "M" "COT" "C" "1" "" "Lw" "0.3" ""
. P" E, o5 O C# _* c/ K( r - "M" "Defpoints" "C" "7" ""3 r/ o% y7 f- m9 E8 t
- "M" "0" "C" "3" "" "Lw" "0.12" ""$ ?# `9 n( `: t4 U8 l
- "M" "CUA" "C" "6" "" "Lw" "0.12" ""
1 J+ k4 C5 S) K* h7 P5 Y; q - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
U. y7 n9 ~; A5 D - "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))
e* M, G& [& N2 q' n - (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" ""
) S7 c8 v7 m+ G) r2 d1 h - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""9 p# W, h { Y# d2 c9 w5 r
- "M" "MANH" "C" "9" "" "Lw" "0.12" ""$ [$ ?+ ^$ {8 C5 q" T$ `* M
- "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
! `, a. B0 P [$ X - "M" "DIM" "C" "1" "" "Lw" "0.2" ""3 z3 |+ O/ j8 F7 F2 D: V9 o$ N8 n
- "M" "THAY" "C" "7" "" "Lw" "0.2" ""$ X: M8 j$ Z5 e, N, }
- "M" "NOITHAT" "C" "3" "" "Lw" "0.2" ""
! T* U# f" j2 u7 b: |) Y: V5 _: ^ - "M" "HATCH" "C" "5" "" "Lw" "0.1" ""
, l* @! l7 M# H9 u+ m6 ] - "M" "COT" "C" "1" "" "Lw" "0.4" ""
; H) ]9 @) k3 q - "M" "Defpoints" "C" "7" "": u+ G$ N- w8 Y" f0 W& w, U9 l/ S
- "M" "0" "C" "3" "" "Lw" "0.2" ""& f2 J5 T3 J0 X3 ^- V2 R
- "M" "CUA" "C" "6" "" "Lw" "0.12" ""
5 e2 c8 w& s. N, J; K - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
k( {0 V A% }& { - "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))
" T$ I2 |, ^5 |3 R - (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" ""
& j3 q: h* A# z6 g h! K - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""; d+ v- u6 f' B3 X9 J& a
- "M" "MANH" "C" "9" "" "Lw" "0.2" ""
, H" Y& B9 _/ s - "M" "TEXT" "C" "7" "" "Lw" "0.2" ""- k$ p7 ~9 z+ S1 O! a' k
- "M" "DIM" "C" "1" "" "Lw" "0.25" ""
5 H9 j. j4 X% \# p0 x5 L! Z - "M" "THAY" "C" "7" "" "Lw" "0.35" ""
/ ~/ E& v& y4 M9 h Z/ O& o* U! p4 F# Q9 B - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" "", x1 \/ Z2 x) a
- "M" "HATCH" "C" "5" "" "Lw" "0.15" "". N3 b( X3 t+ o+ A
- "M" "COT" "C" "1" "" "Lw" "0.6" ""
2 ?& u" D! ]8 d' m$ @, r& e - "M" "Defpoints" "C" "7" ""
* V @% f+ o# Y0 V - "M" "0" "C" "3" "" "Lw" "0.25" ""
; I" o0 x: E0 X- L1 \! J* }6 j0 l7 \ - "M" "CUA" "C" "6" "" "Lw" "0.25" ""+ w4 x5 B3 Z$ M1 {# X
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" ""; {0 w2 a- f3 W+ A& u4 i
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))
" k" p- G/ ]' ]7 p& Q -
- t5 f8 I0 V; T - (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""
1 g; m% K5 g& H0 z3 h - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
3 `2 |1 q8 p A& j4 C* i- d - "M" "MANH" "C" "9" "" "Lw" "0.25" ""
% `, |! C6 }# i. } - "M" "TEXT" "C" "7" "" "Lw" "0.2" ""8 V0 W2 X% P2 h/ ?9 b4 u, k; {
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""8 u5 K: k2 D0 L. R; ?- P
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""
" G2 C1 W% A( C - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" "" D T N1 o0 T. d
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""4 i2 X( x* Y1 c. m1 Y0 o+ y
- "M" "COT" "C" "1" "" "Lw" "0.7" ""4 }3 H" s5 h( |2 f
- "M" "Defpoints" "C" "7" ""1 U' E5 H1 S* F, T6 C
- "M" "0" "C" "3" "" "Lw" "0.25" "". t7 {6 ~) r0 w" A4 a5 p
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""
+ k- x$ V: e% J - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
, d% S( X+ t2 q - "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC)
0 }% |- M4 p& I" e - # S/ }1 t$ R7 q2 Q6 T: R _
- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" ""0 L1 s3 O/ B: c, z R
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""5 H4 r6 x$ H! O, R9 ~
- "M" "MANH" "C" "9" "" "Lw" "0.25" ""
) q/ d4 s5 F' @ C - "M" "TEXT" "C" "7" "" "Lw" "0.25" ""
+ R e# |+ x! L& r - "M" "DIM" "C" "1" "" "Lw" "0.3" ""6 ]4 I. t6 T- n8 {' N; v7 {
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""+ R: z8 a. W! V3 {* e8 v
- "M" "NOITHAT" "C" "3" "" "Lw" "0.3" ""
6 _& K% S& c) T7 b; J: k- S - "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
6 i, F& f& u9 J; B) n: I - "M" "COT" "C" "1" "" "Lw" "0.7" ""
' H3 c- G( V4 z3 G- ]- h - "M" "Defpoints" "C" "7" ""
4 u8 P' s3 ]8 } - "M" "0" "C" "3" "" "Lw" "0.35" ""! E* u' h- R# Z" I- P
- "M" "CUA" "C" "6" "" "Lw" "0.35" "", I% Q% n# `# K
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
8 j! |6 j: C/ T. G, N$ l - "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" "")): L, k$ d# L. e5 T: S, V0 l1 `
- / |* L1 M% s, \& i4 w
- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" ""1 k/ ]# Y/ \5 M2 z2 P
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""! V3 M- h5 }) q) C
- "M" "MANH" "C" "9" "" "Lw" "0.35" ""
6 o7 U, _, [/ d - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
3 f- I0 y; s& y% b) V - "M" "DIM" "C" "1" "" "Lw" "0.35" ""
9 @- m& A' D& ] q7 E+ r2 V - "M" "THAY" "C" "7" "" "Lw" "0.4" ""( C- M" Q4 ?& k( d( g
- "M" "NOITHAT" "C" "3" "" "Lw" "0.35" ""
8 N, W) N( }7 }2 c* \ - "M" "HATCH" "C" "5" "" "Lw" "0.25" ""
! E# J2 A, K/ p3 |4 B# D- W) F' e - "M" "COT" "C" "1" "" "Lw" "0.85" ""6 G# C- H4 W; b& b4 r
- "M" "Defpoints" "C" "7" ""
$ \% C+ M! T* {& O0 H R. U$ s* u - "M" "0" "C" "3" "" "Lw" "0.35" ""% a" g' R: W! k9 H8 a0 ]6 R
- "M" "CUA" "C" "6" "" "Lw" "0.4" ""
5 ^6 r- [, [$ [$ ] - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" ""
2 [( F8 K/ S* d* G5 [( s5 e0 j3 D - "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))
1 {% S: @ m+ N* S# s! v3 f -
, Q. h" v4 _0 T& m - (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""
0 w) {6 B) b2 @& E$ k5 i - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" ""5 w1 P0 k! t% f0 m2 m/ m. q
- "M" "MANH" "C" "9" "" "Lw" "0.35" "": z ^! d9 k7 l/ i) z% i
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
. u: q0 H% T4 E: [; E - "M" "DIM" "C" "1" "" "Lw" "0.35" ""
1 }' W8 T, v. F+ |! T$ q - "M" "THAY" "C" "7" "" "Lw" "0.5" "": f! ]' R" ~: D6 t: l
- "M" "NOITHAT" "C" "3" "" "Lw" "0.4" ""4 c, x! ?) I6 ~* }! k! B( V
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""# a* H- D; y8 t5 k- M9 k5 ~( Q9 E$ o! c
- "M" "COT" "C" "1" "" "Lw" "0.1" ""( I0 h2 I4 h) L9 [: w, y- f. c
- "M" "Defpoints" "C" "7" ""6 J! v: I z1 z+ a4 c
- "M" "0" "C" "3" "" "Lw" "0.5" ""6 Q/ Z; u/ ]/ g. ]9 N
- "M" "CUA" "C" "6" "" "Lw" "0.5" ""
0 d$ ~' f0 B5 t& _/ ^ - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""6 l" n. v4 P+ O
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))' v$ s- T# t: n% x% _8 J' {' F
- (DEFUN C:O () (COMMAND "OFFSET"))
; g, w% T* n3 E- r8 I - (defun c:s1 () (command "surftab1")): Q9 E4 n ~( s$ w% Z+ o
- (defun c:s2 () (command "surftab2"))
+ _/ K M, n* p2 j' G - (defun c:ep () (command "explode"))
3 W1 M: F- ~) M- U' w4 \: O - (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))
7 G4 M: g6 f4 v - (DEFUN C:QV () (COMMAND "QSAVE"))$ Z3 o" U6 l- q0 m, H( o
- (DEFUN C:S () (COMMAND "STRETCH" "C"))0 B/ E0 y! Z" b; s7 t9 X, V
- 1 S2 M0 M0 M% ~" l6 M( y
- ;************************** CAT DIM **************************
% g) `. `& J% {0 X* |9 I& t) w5 ? - + P L% z/ ^! E
- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I8 q- D# A7 k( \, B; r& S
- PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)$ I9 h0 K4 |, F0 U+ P2 I
- (SETQ CMD (GETVAR "CMDECHO")); B7 F5 Q. O" [! o
- (SETQ OSM (GETVAR "OSMODE"))
" `$ N8 X' V4 F; `6 R+ f9 @0 k0 I - (SETQ OLDERR *error*- L$ c' r) ^$ m" N/ ~' n
- *error* myerror)
, u% S' Z0 ?: P' z2 m% q+ K5 G - (PRINC "Please select dimension object!")
/ n& l) g: i5 N( |! B - (SETQ SS (SSGET))$ e3 X* p& Z1 `4 X
- (SETVAR "CMDECHO" 0)
L- t: j! {9 }0 @7 d - (SETQ PT (GETPOINT "Point to trim or extend:"))
/ \7 y9 g, ^. }. n6 v" K - (SETQ PT (TRANS PT 1 0))
7 Q' u6 a# A* \2 F" { - (COMMAND "UCS" "W")# A. S( Z$ R; X2 w# z1 t0 T, q) X
- (SETQ LTH (SSLENGTH SS))
5 q+ t& i/ y/ E - (SETQ DEM 0)" ^: L" U* H! K5 U- g
- (WHILE (< DEM LTH)- n, A/ u5 i y1 l: a
- (PROGN* U8 }/ O% g( u
- (SETQ DS (ENTGET (SSNAME SS DEM)))
7 R1 a; x2 \: a% A9 k! f - (SETQ KDL (CDR (ASSOC 0 DS)))
x9 O" |5 ^' _3 a) @1 \ - (IF (= "DIMENSION" KDL)6 T( H v: H3 O- P( i2 Z( J0 A
- (PROGN( f8 K8 M' X& J: M1 V0 Z4 v
- (SETQ PT10 (CDR (ASSOC 10 DS)))
/ W% m" C* J l; T6 A! C, { - (SETQ PT11 (CDR (ASSOC 11 DS)))
3 g: C- o7 H2 ^/ F: a - (SETQ PT13 (CDR (ASSOC 13 DS)))' O3 d- a+ f% J$ l% c, U- g
- (SETQ PT14 (CDR (ASSOC 14 DS)))
! |$ _7 a8 C! \# Q - (SETQ N70 (CDR (ASSOC 70 DS)))7 V% c9 [# P1 p# m% W: P
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
% }4 D9 X7 \7 v6 z0 l$ q8 U9 g - (PROGN, u# z# ^7 f" n& }
- (SETQ GOCY (ANGLE PT10 PT14))+ u/ p4 v' L. j! ]1 y
- (SETQ GOCX (+ GOCY (/ PI 2)))" ^1 l/ Y$ T* u# {) p1 k7 G8 ~
- ), y" |! F. B! R" S+ t
- )
4 s# h0 o: d/ y - (SETVAR "OSMODE" 0)
0 k' Y, q2 @0 Y% L4 Y7 \ - (SETQ PTI (POLAR PT GOCX 2)), ?! P# z1 w; u5 X: @; A; U
- (SETQ PT13I (POLAR PT13 GOCY 2))5 V$ t+ @: g: }
- (SETQ PT14I (POLAR PT14 GOCY 2))& B+ @, T7 o% D/ {8 _$ o' t
- (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))) X( x. {( n* _
- (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))
0 | z% h/ o, V% a9 ~% O3 V$ K7 | - (SETQ O13 (ASSOC 13 DS))
; l. Z( t) I1 X# u C8 x: ], ]7 [" t - (SETQ O14 (ASSOC 14 DS))6 G" [. ^% t/ j: C, l6 A0 ~
- (SETQ N13 (CONS 13 PT13N))
! p! m' L5 }& o1 V; w - (SETQ N14 (CONS 14 PT14N))
`/ S3 R2 O9 d6 L( r7 g - (SETQ DS (SUBST N13 O13 DS))
3 H% T) H/ o, Z) g - (SETQ DS (SUBST N14 O14 DS))
1 o1 |$ e) [% L& [. Z - (ENTMOD DS)) p g O: W2 v1 w3 H5 {+ o2 y
- )! C" `3 A* { n, N/ X, V
- )( s/ T& o5 p, z, @/ D* [' A* s% E
- (SETQ DEM (+ DEM 1))# K* K/ o* z: q
- )
5 L1 o) M: t7 `/ }* Z! O% Z- C! ? - )
' a4 g# m8 f! b6 u - (COMMAND "UCS" "P")! S! i# I# Y6 M* | |
- (SETVAR "CMDECHO" CMD)
7 {* m% s& _5 q$ j' u: V3 O' M8 E - (SETVAR "OSMODE" OSM)) ?' T5 h5 `9 \3 c6 }; E
- (setq *error* OLDERR) ; Restore old *error* handler! \, w; q0 `0 K+ b
- (PRINC)
5 [2 \- w( V+ W* i" D9 i0 m/ j2 V' G - )7 ^ H$ p n* e7 L; ^. d
) v' u9 y' ?1 h( l3 U/ \- Y- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI# S; I& I9 h1 n: p: ^7 { i
- PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)7 g) P0 p' Q2 l& X, _' f) X4 y
- (SETQ CMD (GETVAR "CMDECHO"))- H8 A* C3 I P* t0 n
- (SETQ OSM (GETVAR "OSMODE"))+ R" H) r8 x/ i! l L9 p
- (SETQ OLDERR *error*
4 a# }7 `9 i) G9 W) _ - *error* myerror)) u1 [( W3 D: R' H% H
- (PRINC "Please select dimension object!")
2 ?1 e( W! B7 @% \2 S, Q - (SETQ SS (SSGET))+ d% Q, o+ W3 {
- (SETVAR "CMDECHO" 0)5 w6 K h& n4 k. L/ J) U, [
- (SETQ PT (GETPOINT "Point to trim or extend:"))+ z' q7 ~6 I w6 f
- (SETQ PT (TRANS PT 1 0))
* C0 x6 i" D& _- a - (COMMAND "UCS" "W")! |' f b, k2 q& T6 e7 O' o5 ?
- (SETQ LTH (SSLENGTH SS))3 w' O, Z) U- v5 I
- (SETQ DEM 0)/ [$ S5 `: V' w! e. y X" q
- (WHILE (< DEM LTH)
5 U7 M, ?" j! L8 R5 u! k - (PROGN6 Q$ Z( \! `% ?5 @, g
- (SETQ DS (ENTGET (SSNAME SS DEM)))) D4 O7 C \3 T# j
- (SETQ KDL (CDR (ASSOC 0 DS)))* z0 e8 a/ o$ H. s6 j
- (IF (= "DIMENSION" KDL)
) T4 o9 x n9 ?/ L7 a. g: K. R' r - (PROGN4 u$ \+ ?. j: d( w& O
- (SETQ PT13 (CDR (ASSOC 13 DS))) v6 Q4 M' u0 R( J" M9 A7 o; f
- (SETQ PT14 (CDR (ASSOC 14 DS)))
% l3 L# S: Q$ e u) H! s - (SETQ PT10 (CDR (ASSOC 10 DS)))* H3 a, e- M. O, {$ G
- (SETQ PT11 (CDR (ASSOC 11 DS)))
. n# N% W5 l1 e; i0 X: b( I1 l2 h! W- \3 Q - (SETQ N70 (CDR (ASSOC 70 DS)))
0 H& s+ M% Q4 D( \1 n - (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))0 L* R$ z( x7 x3 \1 t5 f
- (PROGN
7 y9 E& O- _- j& f - (SETQ GOCY (ANGLE PT10 PT14))
9 j$ g9 S3 ~6 \1 P - (SETQ GOCX (+ GOCY (/ PI 2)))8 {$ F4 E4 Q. q0 q
- )
1 I5 a. d6 ^8 A+ G5 ~* S i, U' v0 P - )
3 g" l. b7 Y% ? - (SETVAR "OSMODE" 0)
" }9 T/ h- H% B: B5 n - (SETQ PTI (POLAR PT GOCX 2))1 Y* Y0 e6 ]" r3 Z
- (SETQ PT10I (POLAR PT10 GOCY 2))
1 L' N! E# D3 c# Y - (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))
" I* h0 T, j& e( o - (SETQ KC (DISTANCE PT10 PT10N))
( m: b7 J0 `" \ ] - (SETQ O10 (ASSOC 10 DS))
( H! `& u' v8 B: z" T4 F7 C% X - (SETQ N10 (CONS 10 PT10N))
5 H' T3 i2 R: p$ k. i: k# @ - (SETQ DS (SUBST N10 O10 DS))
1 ]9 M# ^& d+ k8 L. d - (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))
, I$ E# I; K9 U - (SETQ O11 (ASSOC 11 DS))" F8 ]" Q' ]8 v
- (SETQ N11 (CONS 11 PT11N))
! d4 E2 e+ T4 I0 ]7 U0 N8 N - (SETQ DS (SUBST N11 O11 DS))5 A/ ]& j b% }; j. c% r; p
- (ENTMOD DS)1 V9 }7 Z+ K3 b" [: |( ^9 S0 v2 a
- )
6 w' ?) P. x; l, Z& [! G/ X. u - ); m6 z" c) U o
- (SETQ DEM (+ DEM 1))
]/ ~ |5 n; q$ w$ ] s - )
& p! ?! s" ^8 M - )
& |" T' z3 ?% J6 O* [8 g, C: N - (COMMAND "UCS" "P")
& ?$ d9 {* D. r. u( t - (SETVAR "CMDECHO" CMD)
; H4 K+ J# [, u) M9 Y# D$ w - (SETVAR "OSMODE" OSM)
" ?8 v/ {8 D. Y' h1 o - (setq *error* OLDERR)
$ \* K/ j& d: e# Z5 P( W - (PRINC)
* |8 W# g% O; s8 z - )0 v9 ]' @, y' U" P' w/ c
6 Z4 J6 k5 E) e4 [7 |: {9 }- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================; r4 Y, y" m2 o% e
* W% o" z2 N' j$ W, u- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")' Q" \1 v8 }; [% P s
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
* N& B1 t: U- W9 Y* X* D - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
8 N. n( |5 g: S' O9 `0 }; D - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
* c* X8 m/ I; j: h - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")
7 K8 E( G: s: E( V5 y3 k7 w' v - (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))
. x2 K( O0 a% c7 N6 K - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
~ Q& K, j$ B4 ]) p& h - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
9 q: @, T! t" C; A2 X! @" u
! I2 F0 |8 X: d8 f ~8 \4 ?+ k: }- ;;; ================ CHEN COT (TUU) =================
, |- y1 g7 Z. D6 O- } - ) Z# ~% V2 p i) {3 j/ o
- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")
1 ]9 u# e, o: O - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")/ \/ b; A1 @& b {
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
r" q/ M$ F7 W% B - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))# o+ m" o9 W4 w# g. c
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")
' S( S# L4 C) x& u. [ - (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))# s @* N3 [$ b& z0 M0 w- ^3 G0 p
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
- n* k# h8 ~% d _ - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))8 u& W) N( K6 |# R8 J1 C
4 u8 U1 _9 L/ [8 v0 [/ ~* c- ;;; ================ CHEN KY HIEU THEP (TP) =================
, B- q4 _3 I4 K o+ r Q* L' C) m - / U# V, i& v$ M; z
- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")# H6 l& f4 r+ R& V3 M; k- ^' `
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
5 E0 L) ?6 ?' K5 t - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
W6 N- y+ P% L% o- t9 c) N - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
* u/ J- l, ?& @+ ^ - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")6 O; C2 Q% ]6 x; D. s+ x
- (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))0 C+ f" h" j8 e5 C
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
! h# x x, V( G - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
/ Y3 c0 p$ S, _! i& G& g1 ]/ P3 |
+ l1 R& r n; q4 h- ;=========================== TAM TUONG (TAM) =================================5 ]* c; n- M' j" a1 i/ m
( J+ a6 ~. ~$ i; {. P- (defun c:tam(/ data_m)
9 g+ z( F" H; {5 b+ G2 ~ - (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0))
3 `1 L0 g# o9 V - (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))
3 H9 x4 \9 z( ?& R! I - (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)4 ^2 d5 n9 O6 N7 @, b D E
- (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset5 z: \/ e, j: d' X; p4 V6 S
- (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr
5 B3 y" D8 f- C, @, _" e - (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ)
0 W3 w& r8 a! a$ S - )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if
+ V+ M% B9 n2 ]& E) r - (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1)
% n! `+ w# x3 l" W2 b' W/ z - distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)2 \4 f/ \. K3 s- I/ k2 f: F G, I
- (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))
3 @7 D, m) S/ b7 ^" A, K, y0 M - (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<
7 R; q. A1 m* i2 V$ [$ S. r - (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)
7 q# O2 d" w1 t* ]! T - distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))8 n' p# S# [& y+ ?+ ^, Y# V8 B
- (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p4
; H0 J; E) V$ j, \$ v - (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not7 q, b8 W$ V3 E L4 l
- (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget1 {5 R7 b- b m% L
- (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))5 p O5 P; o5 U1 D2 Y6 y
- (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))8 l( t, B% `' Z
- . [8 F# ^: B0 a
- ;============ GHI CHU PHI (T1) ================, [% e) [# z; G, e$ B+ Z0 t
- ) M1 l0 {1 d8 ]% S2 r1 ^
- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))
. j3 C8 C, d& w8 @. p; ^2 I - (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3( l/ J+ G8 J/ D+ x
- (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)( R- J8 v" V# |6 q. y( R& v3 E' M9 v
- (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)
( T1 r1 {* S9 s0 U' d2 `- z* S - ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1))
" y7 a3 Q) y C* K" P8 B _1 x - (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)
, g& g( i+ c! U1 J; I: y. {- Q8 q - 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1)
( V" \" n/ ?! K. p7 ^ S6 e6 B' W# ` - (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )
. I% b0 v/ C4 v G - (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")* c0 M: g1 \0 C* k8 K
- (command "ddedit" pause))
3 _3 t, z/ W$ Q8 u* N d) z7 }1 Q: u - ! D5 O0 `% Q9 n! W' l
- ;;; ========================== Join (J) =================6 T, Q6 S& d$ \4 a+ a; w
$ U, C( {1 D, I- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))
2 U# }4 W5 y6 n) n# ?1 W - (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? "))2 j& @. |$ L3 J5 q }
- (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)8 ]; [! m5 Y" U8 w& ?& \ V
- ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")
! _) L: i% W: T. C8 j: `* g - (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC"))
1 v" o. | G* j' w: \ - (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt ""))
4 }$ f- Z( y' j: y% b' R - (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" ""))
. U. A( X1 D/ U8 D" _0 Z - (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))1 w; t# ]- u. t$ w
- (setq *error* m:err m:err nil)(princ))
3 n% c. p7 L3 ]
( c3 t. K8 J- S. _$ ~. G- ;=====================================================================
% p, W& v% R- M9 l8 W - ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.6 C, J" H- Q; U
- ;=====================================================================; X& b' {) o5 E) d5 T/ C, W) b
1 q6 Z$ u) W" f7 @5 n* a6 t- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old)* H8 A N, V3 @& S
- (setq old (getvar "OSMODE")) # \5 c) p# |+ D2 ^) G" l+ e) `
- . I3 b8 R4 g2 K% B+ V& g1 @+ c) [
- (setq p1 (getpoint "\nStart point:"))5 L9 ^% X/ D/ ^9 y$ c
- (setq p2 (getpoint p1 "\nEnd point:"))- @2 h! n1 A1 d2 x
- (setq side (getpoint p2 "\nOpen side")). q; Q6 I, K8 [7 C9 J/ A+ [6 ^' r
- $ c% x0 Z! r" g) r+ e* s6 Z
- (setq dis (distance p1 p2))0 \) L$ f1 i- O: l
- (setq ang (angle p1 p2))- k5 e9 a6 [; ~
- (if (< ang (angle p1 side))
1 |( j. p3 j3 i- l) K - (setq angside (/ pi 2) )
; [ G4 s# ~! z - (setq angside (- (/ pi 2)))
( c9 f N* f q: ?4 N9 r - )
, u7 [6 p) B4 i: f/ t - (if (>= (- (angle p1 side) ang) pi)
6 ^& R$ {3 u/ N. Y) y - (setq angside (- (/ pi 2))); q F) j; p' k5 P
- )
) @/ `. J( N) I* N9 X% B8 a. L - (if (>= (- ANG (angle p1 side) ) pi)
: j- B" H1 p, I - (setq angside (/ pi 2))
: j2 r+ h' w" t0 _ }/ A- ^ - )
, Y# K8 S7 k0 c+ E+ u+ c
5 Y& {+ i( e; K- (setq p3 (polar p2 (+ ang angside) dis) )
x$ v* a0 k/ f/ z8 f2 \ - (setq p4 (polar p1 (+ ang angside) dis) )
% i" I; s+ B! y+ g% _2 g - (setq wid (/ dis 15)); I9 C ]6 m, |( Z* B7 ]
7 N9 w* i0 y; B- (setvar "OSMODE" 0)
2 x6 Z) e' E7 ]6 B0 i( j4 a
/ c# p) K, }$ T- (command "PLINE" p1 "A" "D" p4 p3 "L" p2 ; R5 x" b6 @. q: f; O7 @8 x
- (polar p2 (+ ang pi) wid) * S% v8 U8 P% H2 \$ F7 Y+ p2 l
- (polar p3 (+ ang pi) wid)
6 u; C( C, v$ ^2 b I4 { - "")
# ] D3 k" T0 r& u k+ t v
! f6 z2 f" w7 @+ M3 X- (setvar "OSMODE" old)
L8 Z: b: z- K4 \. H# F3 Y - (princ)
3 e5 U: n& f/ T2 W; E - )
# {5 q% s* }4 I5 z
2 c" h, B! Q+ A7 }- ;=====================================================================
8 _3 h6 ]# b; B; \8 C/ x+ g - 5 @2 E* V. |/ U% z8 n8 m- |
- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old)
# m f4 E! g. {. x$ a* V* \7 ]* O: u - (defun cua1 (pt1 pt2)
4 _9 Q) _- K) j) H$ O, Q) l, ^ - (setq p1 pt1
1 g# a. P! ]3 S+ b" s - p2 pt2)& f. j' D% M& [" D
- 7 m+ ^0 C8 n, I1 {
- (setq ang (angle p1 p2))# L8 o4 b) V4 C
- (if (< ang (angle p1 side))
7 G( r; Z) F5 l% R* P+ c' ? - (setq angside (/ pi 2) )
3 N$ ` t+ n t, {& ` - (setq angside (- (/ pi 2)))
6 m/ A' T8 O) R7 Y, o5 L9 @- O - )& a- w* S/ I- t
- (if (>= (- (angle p1 side) ang) pi)
* B l# j5 F a - (setq angside (- (/ pi 2)))* C9 y& ~2 B3 G
- ) ~; n% r) |. r" H' w8 P
- (if (>= (- ANG (angle p1 side) ) pi)/ X- k9 J% H5 i. ^+ ?
- (setq angside (/ pi 2))* j. [2 m/ ^, V
- )' r- l; D, A8 s" l0 d# {! `* A- J& L
& T$ x- x- K+ Q6 G( v+ p+ _- (setq p3 (polar p2 (+ ang angside) dis) )
% b0 i3 W5 S% o - (setq p4 (polar p1 (+ ang angside) dis) )& j N* ?6 t2 |9 F8 l- F: q6 r
- (setq wid (/ dis 15))
! p' X% Q9 v& m" T/ h! A7 e& B
$ ?4 \& p9 E1 r! K+ a8 ?- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
7 E4 v) m) Z v$ y - (polar p2 (+ ang pi) wid)
$ _7 T. [& M6 y7 m2 X" c - (polar p3 (+ ang pi) wid)
6 c5 F' H2 g1 m2 v( c( s: x0 g" L: N - "")
* s/ d; a" G/ q& k2 b - )7 L. |+ s2 |0 j6 u3 }
- ;=====================================================================7 D1 [4 d1 u: p. c
- (setq old (getvar "OSMODE")) " I* t( z: c0 u [; J
- 7 z: s) ?" y( m: O, O' Q
- (setq p1 (getpoint "\nStart point:"))
$ G0 m" {+ M6 X7 Y' g - (setq p2 (getpoint p1 "\nEnd point:"))
( X0 z1 D# x& ]! e* i" f0 f# E - (setq side (getpoint p2 "\nOpen side"))
' ]. A1 H& S* K
* @5 T. }; }2 B# F5 D. x- (setq dis (distance p1 p2))2 E8 f' K3 B, s! _& A2 E, C+ f* {
- (setq dis (/ dis 2))
, h. r( X3 L- L3 m* `' Z
- _) z+ E/ A: _# ~0 D* A- (setvar "OSMODE" 0)
. k( E3 e( [0 d' W* y$ @2 `5 q) I
5 \, v4 A% B- n- (setq p1 (polar p1 (angle p1 p2) dis)): L6 P9 u# [/ R# E
- (cua1 p1 p2) [+ u8 c) O. k5 t! F8 p- |
- & T# X8 m; w* O E, K4 p7 @
- (setq ang (+ ang pi))5 [: [# j7 w) i- X$ c" r% J
- (setq p2 (polar p1 ang dis))7 D$ R, _/ x. G% U' Z
- ; (setq side (polar p1 () dis))
- a, Q: I4 R! ` - (cua1 p1 p2) 5 F) Z3 I3 p( _2 f( n5 H, y
- 7 _. l: T3 v/ N6 {" ]( D+ o# p
- (setvar "OSMODE" old)! o) L( \ D8 @) p
- (princ)+ u! t8 |! U* e5 }! s+ s
- )2 W8 G; w" ~1 p9 a
- 2 i$ R5 C/ W9 G) l0 \& ?8 \5 b* u' a
- ;=====================================================================
$ m/ p( [ _6 z1 A8 n- C - ;"Glue" text strings. All adopt first's properties." w/ P# e" J& D4 b2 @8 p( \8 J
- ; Author:
( T }8 A: ^& G* T: J6 e7 g; \ - ; Henry C. Francis: n l+ u; s- L4 _& f" d" |- ]# I
- ; 425 N. Ashe St./ h9 k0 O" f- N2 k
- ; Southern Pines, NC 283874 x0 Q! O. s) i: g
- ; http://www.pinehurst.net/~pfrancis0 Z# N* r- G4 @6 X" a% N8 N
- ; e-mail hfrancis@pinehurst.net& O% k6 P0 x9 d3 b3 v8 \8 A
- ; All rights reserved.% B; l1 w" Y! {
- (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)
* o: b" P# A) [- w* |) e - (while. I: u. c& {. {) x" v
- (not
5 o8 J6 p0 n0 w: F - (and7 z) t, o; ]% O V* l3 C1 ^
- (setq ename1 (car(entsel "\nSelect first text string to join: ")))
! r% i9 d8 h) i# @3 i( k - (setq ent1 (entget ename1))
4 R/ ?9 j. ~/ b$ @9 O9 x- s( {+ W - (eq(cdr(assoc 0 ent1))"TEXT")
9 N. V5 {" l. F( G4 @: J - );and
& p* r- ~) L u - );not2 ?* i5 l5 t' @& F8 n
- );while
, a( t m$ X! }- z ? - (setq old1 (cdr(assoc 1 ent1)))4 {) L8 s0 Z7 K1 f+ ^
- (while" k% b" Y0 p3 z7 k. N! h i
- (not
: _- t+ v# ]$ B* q( ^1 ?( _& E2 I - (and, B2 _: K) f4 }4 Q# ]
- (setq ename2 (car(entsel "\nSelect second text string to join: "))): w1 w* N1 |/ u0 {5 Z. s
- (setq ent2 (entget ename2))
" p9 O8 E4 E; s* r9 Y - (eq(cdr(assoc 0 ent2))"TEXT")- L# [) z* m7 n
- (not(eq ename1 ename2))
! w' H& H; v2 F4 b6 D3 Q - );and
* X4 m4 S+ z9 O4 X* G: p$ T" y - );not( @! X! Q" G3 D* Y" H' P
- );while
1 i% q( b9 {% x! p+ p - (setq old2 (cdr(assoc 1 ent2)))& k* P2 R1 G5 H
- (setq new1 (strcat old1 " " old2)
% a0 u5 @! L" n - ent1
/ } j: r( l4 v* B' C0 n: ~ - (subst (cons 1 new1)
" f# J- f1 l3 ^ g( a4 f: U - (assoc 1 ent1)
9 ~ u0 D6 K% G: T u$ z - ent1)2 p4 {1 w' I. t' Y7 k b* h* H
- );setq
0 x- w' l8 V. Z2 {6 _/ Y- Z, _ - (entmod ent1)
8 b5 N- f+ H1 _ C' R( v0 t# J# b - (entdel ename2)- z% X5 g" G, w; L7 ?
- (princ)
% g3 [( r$ A! J1 P$ A - );defun$ j% j) g% Y' w7 D( `, Q
- : r; R2 v4 e7 j9 e
- ;=====================================================================
" L# {& _1 R! x0 z' N
5 b& ^# ?! ~& t! K6 O7 t- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)4 x( `% t1 N: v" C% V9 M7 ~
- 0 i6 l8 d4 v/ H g
- (defun nterr (s)
1 P U- J# `, x8 L& F - (command "_.UCS" "" "_.UNDO" "E")
3 s5 s8 L Z" b - (setvar "cmdecho" 1)7 ~& h9 {. U% r: a. f3 A8 T
- (setvar "blipmode" 0)
$ ~' A. X( s; y/ F' J9 i; |7 Z& A - (setq *error* olderr)' e4 N3 b4 |0 }# R; {. z7 Z' d$ y
- (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil
3 C9 J9 D* s6 w3 p2 a# W9 h - nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)3 s f/ z# f7 w9 {! X0 P3 Q
- (princ)
% M( j+ v5 F( I H" ?- K1 e - )9 M( b( V S' l
- 8 ?7 J/ e8 B: `( a0 `
- (defun tim_in (dt / p01 p02 ktra)
R0 }. [5 k4 F6 b7 P* w. r. p) T: y - (setq p01 (cdr (assoc 10 (entget dt))))2 l0 M* h4 K7 S; f% c* i, _
- (setq p02 (cdr (assoc 11 (entget dt))))
0 M1 c: |5 B- D* k6 e3 G# K - (setq ktra T)* s7 @+ {9 x, O* m# \% K6 `4 H
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
+ ^7 e! i6 K: H; L) H5 ]- O) ` - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))1 h5 T& t) r6 i# v3 p
- (setq ktra nil)% d8 J; ~: i# X5 G8 Y
- )* i5 b6 Q; [; e, C5 i8 n, B
- (if (and (> (car p02) (car g1)) (< (car p02) (car g2)) . H m; i" E9 n% a- x: w
- (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
4 {8 H) U( t; |9 z4 \ - (setq ktra nil)
8 O1 ]3 n* u* ]! N/ l( R) N8 s5 q - ); r5 K) s I) e4 o4 v
- ktra
N) e* o+ T2 \4 s( m6 w - )
) ^# d9 Z! e# A' z- B7 _1 n9 n
$ `& Y( a: [2 o6 Y& F* T* _- H J- (defun timdt (dt1 dt2 / p01 p02): x) J1 H G( W: X$ W7 `6 i5 ~
- (setq p01 (cdr (assoc 10 (entget dt2)))): [1 m5 U) L/ s7 T* E4 A" B0 @
- (setq p02 (cdr (assoc 11 (entget dt2))))- o1 R( T& z; d* G4 r
- (setvar "ucsicon" 0)+ e. E. I( J" a6 q) [5 Y
- (command "_.UCS" "E" dt1)5 u" h% @/ j7 c& ~# B. x
- (setq p01 (trans p01 0 1))
3 @+ ]2 C0 V* T9 q! E# T - (setq p02 (trans p02 0 1))
" p/ l- S4 a* ~ - (command "_.UCS" "")+ X2 S9 _+ t; B4 z% w& m( `* }
- (setvar "ucsicon" 1)
% t0 N) r8 v, M% V6 a# G O# e4 l+ f - (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))2 K7 `: o7 Z) q% A( Y
- T6 n" q( Z, a! b- |0 \- g: y
- nil
2 ^% X9 m* o% R6 W6 Z$ F& N - )
2 ?3 q+ d+ j8 }5 Y4 ? G6 L3 i( w, Q, ] - )! ^ k+ |9 f; c# W7 e- D
- + h8 j: [& {( c
- (defun tim_out (dt / p01 p02 kt)- ~$ x/ ]' S+ M8 t
- (setq p01 (cdr (assoc 10 (entget dt))))
2 `' ]6 I' y$ o7 p5 Y - (setq p02 (cdr (assoc 11 (entget dt))))
% I/ v0 U4 B# K5 y - (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
8 ]. Y) [. t8 X - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))6 o( ^* f# ^3 V- N4 W' C. Q7 s
- (setq kt p02)
! r k8 A$ W( | - )
p9 ?1 B0 @* e3 `& C" J, @7 W - (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
6 o- [7 Q" N) e N8 | - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))& r2 F2 {" _: L q+ S
- (setq kt p01)8 X7 E) j2 g/ X: h, Y3 p
- )
& D( ?5 F: W; `4 p8 d! z - kt # L4 ^3 p$ `- h H+ m
- )
2 X) y' T x4 U
& }% }! i# x$ Z2 E/ L- (setvar "cmdecho" 0) s8 o9 K z0 n8 @6 |
- (setq olderr *error* *error* nterr)9 M' u" H- B1 o- ]* \ m
- (command "_.UNDO" "G" "_.UCS" ""): G& \+ N. l! G$ }2 C4 \
- (while (null ss1)+ i) b% U# b" _! j
- (princ "\nChon tuong muon noi...")
2 T3 {/ b! Y+ S5 H: x" A; _ - (initget 1)& F+ O4 F7 p; a( k2 H6 c! q M( G4 K
- (setq g1 (getpoint "\n>Goc thu nhat:"))
/ T/ I. b4 L. w& K+ u3 r/ ? - (initget (+ 1 32))' ^( N( \% a8 z9 J- a! {: ^" m
- (setq g2 (getcorner g1 "\n>Goc thu hai:"))7 R2 }; ^# k0 H1 j
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))/ O" T- V' I6 g7 j: d( ~
- (if (null ss1) (princ "\nKhong tim thay doi tuong!"))* ?* U: |: r" E9 Z
- )
; [5 c7 v. u3 N Z! a$ @2 z - 3 Q# T' V$ ]7 {+ n1 L' M w# h0 ` ^
- (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2)))
; s5 X* X1 l4 a* K, l - g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))0 ^# G5 I: A$ b. _5 k, L4 ~) N
- g1 temp)
6 S2 K) U: {2 C - (setq ss1 (ssget "w" g1 g2))7 \. @6 v/ v) r* P) Z I0 T
- (if ss1 (command "_.ERASE" ss1 ""))( ]. R! P4 z, \
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
7 R$ j2 r9 e8 h7 m+ B6 k' Y1 `- p - & h: k4 m: z& O# I
- (setvar "blipmode" 0)# [' L3 z/ v) R) Z# J' r2 n# v1 @
- (setq i 0 l (sslength ss1))
9 O$ u, u$ ~3 }: z: }6 C6 Y7 C - (while (< i l): @6 a5 m- v2 [
- (if (tim_in (ssname ss1 i))5 ?0 q% g* z5 h2 B0 u b: f: F
- (progn
8 e( E' b. O9 p a) v4 M. ^ - (ssdel (ssname ss1 i) ss1)
/ a0 S' G) D$ l2 u0 e2 C# _! L; J) U+ Z - (setq i 0 l (1- l))
- l0 E4 @* I; u$ i0 ?8 n - )
, U0 p0 v3 Y8 y7 F/ N- e% t1 H - (setq i (1+ i))5 T5 D* C8 o* I4 J4 ^! R( O, g# j* N
- )4 L5 z) y6 E) U! _9 q2 X
- )
0 C$ D* b% K( f* {5 k - (setq l (sslength ss1))6 R) w1 X8 v1 S& _* {- }+ q% J; I" m
- (while (>= l 2)
+ S# J7 K6 C5 W N# O - (setq e1 (ssname ss1 0))
! N+ s9 m' l) j; ] - (ssdel e1 ss1)
8 D" D7 y9 p" J - (setq e2 nil i 0 l (sslength ss1))6 Y# o, T5 i2 ~, o' c6 `# I
- (while (< i l)
& p5 X Q- Q1 {+ |3 H) T& Q - (if (timdt e1 (ssname ss1 i))
6 ^+ n. |/ ~$ C6 M* m7 U - (progn
! @, e6 H! I ]) W* u# Y6 V - (setq e2 (ssname ss1 i))
6 D6 V9 ]- c6 {& f5 n. [ - (setq dd (tim_out e1))# ~2 h( J5 i8 X! ]" D% s7 Z
- (setq dc (tim_out e2))
. f" R5 u, { X& e) U - )
% e4 i$ w" y( A. t/ R- W - )3 Z2 X# F/ D( O- y
- (setq i (1+ i)): d& g* s& p& l! i- t) ^
- )8 j" y+ b# ?% J' b( w
- (if e2 (progn# e, n" A3 o# x& C2 I
- (ssdel e2 ss1) ( b2 U3 S+ e1 l- x% @& u
- (command "_.ERASE" e2 "")( R/ d) E. i' K; X
- (setq temp (entget e1))$ g( D, ?( F3 @0 V; P/ k
- (setq old (assoc 10 temp))( Q% a) ] v1 n* s7 Y6 @
- (setq new (cons 10 dd))
U8 K8 n* ?5 W; P) P - (setq temp (subst new old temp))" r/ R% p0 [1 Q7 y0 r
- (entmod temp)
: _4 X* |% x& O3 s( ` - (setq temp (entget e1))$ G) X+ n/ _ g) l4 @4 j) q; `8 |( L
- (setq old (assoc 11 temp))1 G: @8 G: l1 E. H, p, H
- (setq new (cons 11 dc))( ^. `: m+ S( m3 X
- (setq temp (subst new old temp))1 x+ p- e h s4 r6 u6 |3 @
- (entmod temp)
3 n: g% e! G$ n& @- V! H - (redraw e1)* c, b* Z+ A6 T0 V3 {/ a6 \! P/ e( S
- (setq l (sslength ss1))
- q! M- G1 v$ K0 [4 V! a - )
, t4 ?$ \' W, O; h' b - ): N( e8 m L9 x; S9 n
- )
% k z. E/ z# t, {1 Z$ {
) z# v, f/ x6 h7 {2 U2 J* Q: r- (command "_.UCS" "" "_.UNDO" "E")% S! ]3 h W5 j7 s G
- (setvar "cmdecho" 1)/ ~2 ?: k5 v2 }3 n
- (setvar "blipmode" 0)6 d3 j0 t: B4 J& [8 p
- (setq *error* olderr)
+ J0 u1 O! M6 \# \ - (princ)0 G/ @3 K% U7 ?0 d1 [
- )# ?) d# F/ k7 u D2 g
- ;*********************************************************************6 |. _1 b+ S' ]$ O' u& f3 b
- (defun ketthuc ()0 \: h8 r) k6 a, ?3 J+ g" t+ y% i
- (setvar "cmdecho" luuecho)
8 r7 V/ Q+ P+ b& @ - (setq *error* luu
( C* r# U" @# v* |% M - luu nil - V+ e2 _0 I$ `$ Y+ S2 j4 M5 P/ h6 E
- luuecho nil1 @# G" A8 ?6 ]0 L: E
- );setq( }7 p4 {: h. O, `% B0 ~: L6 N4 y
- (princ)
P' V. L3 g6 K5 p% }0 ]# Q - ) & m* [+ n9 o1 C ]
- ;*********************************************************************
% U* B/ |0 Q% c# ]& Z& c! y - (defun modau ()
+ ]; A' ?4 x2 j' u- s k, y - (setq luu *error" ?3 u! j1 U7 K* ]" x
- luuecho (getvar "cmdecho")2 m- n8 y: K: X1 N0 P) N1 x
- *error (ketthuc)
' v4 u% B" s) }; k - ); O/ X0 T9 b/ S7 Z
- ). ]4 O- \& g, ?# q0 N' K- \
- ;*********************************************************************
6 \, i1 v* C: E% j6 T - (defun xulytext (text / kytu ma sokt luusokt lui ), I) j2 `) ]' }1 J3 I3 s
- (setq kytu (substr text (strlen text))( w) f0 F W" S. t7 o+ A
- ma (ascii kytu)% j; q" [. K& h g* ^9 [" T# w
- sokt (read kytu) : V1 Y( J' R% T
- lui 1
! w$ E% N" w3 f - )
+ b% x& b2 \! ]; r- S - (if (numberp sokt); r/ c& U4 l3 {( n
- (progn( P8 ~9 N' z2 S f
- (setq luusokt (1+ sokt)) P5 _ Z) G* S" }
- (if (and (numberp sokt)
& H& c( x1 X2 X- d6 u, w1 y* Y1 k+ x - (> (strlen text) 1)
5 L! f. n9 A, e0 w3 {- Z( h8 R& Z - )
, P; d1 m G* Z6 c' ] - (progn ^# c2 K; x2 r
- (setq kytu (substr text (1- (strlen text)))" O( C2 Z3 r, o% q) {
- sokt (read kytu) . T' i6 z! F. ? B- A1 f3 P( X# H1 S0 x
- )* C! D0 w; W3 _% N2 `
- (if (numberp sokt)
' x1 I1 P+ T7 p$ I7 [* Y5 D - (setq luusokt (1+ sokt)4 B I, c: C- x! E
- lui 23 o# C8 u6 @! ^8 y. ]
# S( M6 m* f" g/ l) S- )
. r6 P7 j! J9 d) h1 _ V; m - )- ~" S' q7 R( x b s4 ^
- );progn 4 D4 u5 f1 m; p+ C
- ). B" \( b0 r+ `+ y8 l& A [
- (if (= luusokt 100) (setq luusokt 0))
' j5 x- I* m- l) n% ^# \( d; ^/ ] - (setq kytu (rtos luusokt 2 0)8 v5 I- ~8 |& ^0 E$ m: s8 {2 O0 V
-
. m8 a; K# a1 N# L% V3 }! d - text (strcat (substr text 1 (- (strlen text) lui)) kytu)
/ w5 y- m% x% e2 \ - )! g* {+ B3 B) F& H" d% f' Y2 q
- );progn
! T1 t1 D/ g# Q0 o9 X! G5 H - (if (or (= kytu "z")
9 f) F5 T: K1 c) k* Z% o8 B - (= kytu "Z")
" a: k8 _6 _# L* h' s - )
/ J# s" B% L4 ?% i8 Y - (setq text (strcat text "0")
) ~9 z! K9 r U& \* E - textxl "0"! Q/ o& q" \2 E$ p7 \/ u: k9 Z
- )
$ a" j/ _/ _8 V; e1 M5 A5 F - (setq ma (1+ ma)
. L* P+ t. W4 u9 a' F# T - text (strcat (substr text 1 (1- (strlen text))) (chr ma))3 M6 e- _, W9 w& L5 a. \- i
- )8 k1 g6 C! E4 {- C
- );if- d; N* @3 B/ _, ?+ s& s/ L) C
- );if
$ u% c" H% h- r - )% k% V- Y$ g% G0 u
- ;*********************************************************************
' Y- K0 l: F! D# d- ]: y - (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)
" i* {8 e' N3 T5 h) S. X - ;Neu doi tuong la text thi tiep tuc- u) ?5 D+ C/ e+ {
- (setq doituong (entget tendoituong)
6 L. V* {- g: z: v0 x - kieu (cdr (assoc 0 doituong))
7 V8 L* }( ?* |) A( ?( i - canle (cdr (assoc 72 doituong))4 F; q9 E: H3 H$ J( L( h
- ) # ^9 ^* h, r/ @$ c
- (if (or (= kieu "TEXT")4 v2 c8 ]" [2 W, S, {( F _
- (= kieu "MTEXT") $ y' f$ z: r; }
- )
7 \# u# c0 ^/ Y, K7 Y6 u" c7 x - (progn
+ U* s5 _6 K* w8 c - (setq textxl (xulytext textxl)
+ O9 d' K- H \) `. F" g) b - text (cons 1 textxl)# q q( R/ x5 z$ V) H. ]
- vitri10 (cdr (assoc 10 doituong))
! y. ]; P9 n/ n - vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))
, Z7 i2 C0 c4 N& p! a+ Q/ O1 C, a - vitri10 (cons 10 vitri10)
0 b$ l1 t9 K# m3 ^ - vitri11 (cdr (assoc 11 doituong))
+ z2 t9 I, ?: M1 H1 C! r - vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))
& A; H- y1 Y9 ^! w) C( U8 K - vitri11 (cons 11 vitri11)
. V _5 b! b, x. @, E - dem 0
5 j. W& B1 E$ I9 V, G. x- [ - dsach nil* n' b; w2 e6 I4 r
- )# }, F* F( j1 z
- (foreach tam doituong# R7 d2 f+ K; m0 q
- (cond3 g1 n! x! }) l" X+ k
- ((= (car tam) 1) (setq dsach (append dsach (list text))))& v, k2 F5 M6 @9 o
- ((= (car tam) 10) (setq dsach (append dsach (list vitri10))))& F* M' k0 B0 U/ T: `
- ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))
; e! u$ N' I) D6 O - ((setq dsach (append dsach (list tam)))): z* ]9 \: R( n9 {. l
- )
% c! P! a; ^2 k - )
, q! x+ E' c0 |. \' \# n - (entmake dsach)
. }7 W3 W# L0 D7 _9 L0 V - );progn4 C6 ]8 u7 J' U
- );if
& v' O. d7 q! o; [: D4 U - );/ J$ [& R% M5 S1 r9 J$ i" o
- ;*********************************************************************7 l# _: a: Z* d" y ]% d
- ;sao doi tuong cu sang vi tri moi
, D3 p. }1 k0 A+ l2 S8 z - - q' _. R8 G2 } C/ F" f
- (defun copy_dt (tendoituong )
* B3 V' K4 Y! q+ b' y: r1 R - (command "copy" tendoituong "" goc toi )9 R" G+ ~; q% w7 w5 T
- );defun
* V$ y/ O; G( } - 5 W$ a2 {* F& l0 C
- ;*********************************************************************9 Q; V" M% s0 Y% O% |
- 6 O1 {8 U& u; }1 G# c
- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
5 ^+ u( T q# h3 P( i - ; Khoi dau cua chuong trinh3 @+ }0 j5 J( Z! k* {
- (princ "\nCopy Inteligent...\n")
7 |& x f6 M5 ]0 I" | - (setq luuecho (getvar "cmdecho")9 f, T4 l% H9 D1 m/ W
- luu *error*4 o; u# s( Z: `: _
- *error* ketthuc8 Q: e) ]6 k- [: w3 z
- cumdt (ssget)
5 w" O6 ^* P3 a5 Z" \ - dodai (sslength cumdt)# b" L A0 ?' y+ u# P! k
- goc (getpoint "\nSelect base point:")! n7 A4 s1 ?- ^7 h$ O* s
- thoat nil
2 _/ u) c* q0 E( Z; S" l - dem 0# f- i( Q* ~" _7 S
- textxl nil1 g8 {4 ^: a) K, U- h1 \3 h
- );4 E* z1 V5 w4 r
- (setvar "cmdecho" 0)
- E6 g, W: N' {5 h* ~$ i - ; Loc ra duoc ong text de xu ly3 m% J! O$ J0 u
- (while (and (= thoat nil)4 o% o) _! S) Q* m" }
- (< dem dodai)
9 }, A; U% P0 J$ } - )4 A v" O+ x* A5 }* w
- (setq ten (ssname cumdt dem)
5 l: L- V w2 o' Q' p& D; K% l! O( o - dem (1+ dem)! Y5 o% h E& V8 }! x
- doituong (entget ten)8 j1 B0 Y2 T9 z, D3 I0 z5 H% r
- kieu (cdr (assoc 0 doituong)) % U- V! w. e. N7 L; a- Q! n
- ). g# K" v* k5 l; W' j2 h: p
-
2 p& b* ^5 D/ D% I5 |( q - (if (or (= kieu "TEXT")
& b7 X$ j! \0 H5 b - (= kieu "MTEXT") , d P7 I/ X6 @+ L7 r
- )) s4 w5 q6 B8 g
- (setq thoat T
3 h) T/ Z' R/ @ - textxl (cdr (assoc 1 doituong)) 4 C% [2 j9 z9 H6 d: L! b
- )
6 i0 ]6 V* W/ w7 H- i% q3 y - ): x6 v( ~8 Y! X+ ?! g4 q6 O
- );5 E: Q, h# m- G3 v8 ~
- (while T # R) M' C: ]6 {- n) u
- (setq toi (getpoint "\nSelect next point: " goc)) p: ~, Z; F. o3 o4 z
- vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
, {- u" K0 p7 W+ s$ {3 G - dem 0
/ R! s3 A; ^: g$ {0 i% k. s- Z - )
1 s* L) h" p8 D - (while (< dem dodai)/ K" C: X% m/ R9 t; i
- (setq ten (ssname cumdt dem)0 L2 |# e* I; L- P5 C, g9 j/ J
- dem (1+ dem). ?0 @- Q, z. h9 l% B, P
- doituong (entget ten)6 C5 W2 T3 p7 X4 N9 d
- kieu (cdr (assoc 0 doituong)) 6 {# j3 z+ g/ ?; R5 \9 n
- )+ Q0 M7 I. C+ ^( b3 h' _
- . V) [6 Z, R/ K; f/ {6 a% s. Y
- (if (or (= kieu "TEXT")% g8 c2 r) w3 F* C
- (= kieu "MTEXT")
# A" v2 ~6 E) W- M - )
! x9 F5 c" ^8 I- G! ~" O - (doitext ten)
* v0 i2 [$ F3 Z! R. Q - (copy_dt ten)
, D! H/ K8 {# C+ K" m3 c - - S+ G6 j' G! s! J$ Z9 J- h
- );if
* L g; g+ W/ P- z - )" x- ?2 j0 Q! C
- );while) w K! ]3 P# ]# m; g- d! ^0 f
- (ketthuc)! w" Z4 ]6 ^2 B. k
- );defun
+ s- B" _ w- O- X& V+ Q - (princ "Type \"DG\" to start")3 ]% j% N) |, R& d5 x9 [( t
- ;Note: bien toan cuc: textxl vitrilech
7 |* B% @1 j% G6 x$ L/ w) z1 F
( f1 X7 ^' |7 z- Q/ i- ;=====================================================================+ q# B! v% k; Y+ t( E2 }
- ;;; PLJOINFUZZ.LSP
/ N( y1 t! {% B0 x& A% a" @ - ;;; Joins lines, arcs and polylines using a fuzz distance7 [7 \+ j' c. G, X+ I" e f
- ;;; If only one object is selected it tries to join to all objects that are possible
6 m* g$ e0 @7 l6 R# G1 W' \ - ;;; By Jimmy Bergmark
& c( K5 m5 h v- `8 m8 }- } - ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved0 y0 [/ {6 D% @$ j. O y' g: E
- ;;; Website: www.jtbworld.com
- M$ c( H+ `8 x* ~; B0 q - ;;; E-mail: info@jtbworld.com
* r. \! A( ~0 [3 s+ B& A5 S# k - ;;; Tested on AutoCAD 2002,2004 and 2005
3 e2 ^1 `0 Y6 r7 ` - ;;; Latest revision made 2004-11-115 Q: E) G7 v9 K" g4 r5 e: X( s0 S7 z
- ;;; Minor code cosmetic change made 2004-11-13- L" _. C( s3 h8 M+ Q
- ;;; Bug corrected 2004-12-23
! F: q# m7 x! {. u - 9 v3 u$ \! O0 H& s0 L
- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf9 G7 G# V: Z$ ]" \
- (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)" E3 ~3 x3 `9 Q& _9 J
- (setq oldcmdecho (getvar "cmdecho"))1 t+ T8 x9 Q7 Y* k+ Y8 F
- (setq oldpeditaccept (getvar "PEDITACCEPT"))+ f- S8 l. [/ J( I
- (setvar "cmdecho" 0) B8 U6 N/ t6 j+ x! k6 W4 n
- (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))! b8 V6 ~2 E0 Y5 b
- (if A2k4 (setvar "PEDITACCEPT" 0)); o4 I+ h/ C* ?* g+ |5 x
- (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))% F6 Q: ? R/ c2 j) n: [ x
- (princ "\nSelect object to join: ")# N; K; X# x8 J2 J- P9 h n7 M# ?
- (setq ss1 (ssget okObjects))9 M7 V" @, M* C+ q9 A
- (setq fuzz (getdist "\nFuzz distance <0>: ")), d& y7 Y# g" ~5 d3 r" @4 U
- (if (= fuzz nil) (setq fuzz 0))9 J0 i+ y5 q3 q
- (if (/= ss1 nil)# {$ ^' H, C/ G$ L" U! p
- (progn- c" q" z, e) v% e+ e7 ~- Q
- (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0))))))6 M0 W; ~+ m r3 X5 ^ f+ M* R
- (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects)))
+ @* _# `9 M7 A/ H' e - (if (member objType '("LINE" "ARC"))
9 v8 r; G! ?1 E. I9 L - (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")! u6 O) _) n( F: P
- (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")
/ v0 q; t2 u7 | - )
" @9 a+ s( p) d: l' B! `6 K - )
" h4 m4 d! i0 I# t( ? - )
# P) c1 t0 I' X2 m$ p' y - (setvar "cmdecho" oldcmdecho)* A9 g) [' K! F; r; h
- (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))2 Y6 e, l/ ]% v& {+ m. S1 x P% F
- (princ)" D2 `. x$ }! O+ C; {
- )
1 m) F! C/ ?) A; m - : c; s+ ]+ L) `; w! q8 l
- ;===========================VE CAO TRINH===========================
! f! ] Q' H6 s- F+ K! A
) o& ?7 p" M3 z2 C4 K: x5 o# l- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL
) U* i$ N4 w9 T6 j% Y - CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)
, R7 d! G. R6 T) t0 |. T - (SETQ OLDERR *error*: I b L+ V- J* S; A7 Q$ c s" ^
- *error* loisb)
. @8 y0 k! D; y1 Q - (command "layer" "m" "dim" "c" "" """"); z9 N2 }0 }& Q" ?0 [+ N9 G. E
- (SETQ CMD (GETVAR "CMDECHO"))
6 L8 ~" N* x; H8 m% [( F9 | - (SETQ NBC (GETVAR "CLAYER"))' m* T& ~: ]) C0 i
- (SETQ OSM (GETVAR "OSMODE"))
8 t4 L4 h/ S% O# C; Q9 l0 P1 | - (SETVAR "CMDECHO" 0)
0 x/ h2 I( i! z- l" D9 m - (SETQ PT1 (GETPOINT "\nDiem cao trinh:"))1 ~ D" k( v! F3 ]
- (SETQ TX (GETSTRING "\nCao trinh:"))
. L$ Y% v! O9 y+ W0 { - (SETQ FCH (SUBSTR TX 1 1))& d1 |% _3 W E; i) D4 Z
- (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))
! {9 Y& ?# {' W9 {+ ?; ~( J - (SETQ CRST (GETVAR "TEXTSTYLE"))7 r3 i+ W, J$ O: R$ X& z: q
- (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))
, @2 b% N8 u9 e+ ? - (SETQ TSIZE (GETVAR "TEXTSIZE")). P3 x" v- x5 i6 }
- (SETQ STR (RTOS TSIZE 2))! J+ Q; u$ E' D- y9 O
- (SETQ PRMT (STRCAT "\nText height <" STR ">:"))4 {9 K" p0 F: J; ?5 k
- (IF (= RSIZE 0)0 s3 Y a# O- b8 | R
- (PROGN
: r$ y! S6 L3 a7 x" y$ A7 `5 n - (INITGET 4)
2 ^1 @ F) B3 x i - (SETQ TSIZE (GETREAL PRMT))! E8 p( M' ?% D
- (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))0 z1 ?& z3 y% I3 }8 O
- (SETVAR "TEXTSIZE" TSIZE))
: Q. b6 v# D" b0 P$ g! y( h - )& a1 P6 w& e6 V: n, ? t& R. ^6 P
- )
4 [* f% s. _2 m: }( O7 m4 V - (PRINC)
& i; r& h: U; o! [: _5 l% A; O5 ] - (SETQ TL (/ (GETVAR "TEXTSIZE") 2))
' v0 a# ` G7 Y - (SETVAR "OSMODE" 0)
, \7 B R) G4 E4 }& ?) r% x - (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))
7 o1 a0 M. |$ B; E2 P - (SETQ NPI (/ PI 2)), e/ o8 y5 _( D. e; }
- (SETQ PT4 (POLAR PT1 NPI (* 1 TL)))4 L3 h" g7 R b' ]2 k# F
- (SETQ PT2 (POLAR PT4 PI (* 2 TL)))
7 ~3 i4 l) I, G - (SETQ PT3 (POLAR PT4 0 (* 2 TL)))
1 Y: O+ m- @3 y9 C# N - (SETQ PT5 (POLAR PT4 NPI (* 5 TL)))
+ k$ V& q6 Q2 e" t5 V - (SETQ PT6 (POLAR PT2 NPI TL)); U# Q% }2 Q0 x% ]. `9 |) q
- (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))
# U' F: q' Q& g# ] - (SETQ PT8 (POLAR PT6 NPI (* 1 TL)))
C# z ~4 k) {8 S& ~ - (SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))
; |* K6 j6 o. J) h& f: ^ - (SETQ PT9 (POLAR PT1 pi (* 2 TL)))
5 v- Y8 h/ J. _ - (SETQ PT10 (POLAR PT1 0 (* 2 TL)))
% n# {9 _2 L- S- y& d - (COMMAND "COLOR" "7" "")
Y/ F4 \7 O8 V- \ - (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" "")
0 S3 [. i* n5 I2 d. U& V - (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX))
. v$ V& t/ Q6 w3 ?/ }( H |9 ]' ] - (COMMAND "COLOR" "BYLAYER" "")
0 L; A' i! t [ - (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")
+ \- A! v+ X" C& V - (COMMAND "COLOR" "BYLAYER" "")
% `2 W* e+ `, S2 c/ A - (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")
* G7 V7 U) u6 v5 U2 M, \ - (SETVAR "CLAYER" "0")' g5 [! q4 e4 L) @& o& E$ A
- (command "ddedit" pause)
5 ]: N' G+ B& g& i2 }4 i v - (COMMAND "COLOR" "BYLAYER" "")
, R$ K8 l5 r9 Z7 p - (SETVAR "CMDECHO" CMD)
0 }" P2 N7 i) G( U$ \+ }# N! ? v - (SETVAR "CLAYER" NBC)4 m. q1 @) ]* \- e
- (SETVAR "OSMODE" OSM)
& B# r; d$ ^, G% h" x( H - (PRINC)6 B7 j+ P' \2 v3 M6 r p* ^
- )
" J5 F( w5 B* e: [7 L7 S
% Y" z. h0 a5 C7 w8 P1 }6 k. F9 y- ;;; =========================== VE NET CAT CHEO (GC) =============================# X/ N7 g" ?1 P
- 8 w# V. x0 M$ X! b0 W
- (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang)7 c v* D1 i5 [0 s
- (setq x (getvar "osmode"))
, K7 u( N; X# Q! ]$ N - (setq p1 (getpoint "First point : ")
% M4 ?) _& ^( Y& h - p2 (getpoint p1 "Second point : "))4 e; Z" X0 m7 v2 b# J
- (setq l (distance p1 p2))
* } @+ O' y! z! g4 C - (setq p11 (polar p1 (angle p2 p1) (/ l 5))3 x0 i7 U2 \ d& l& L! [+ p
- p12 (polar p2 (angle p1 p2) (/ l 5)))
0 u, @8 B* C' t/ r8 H; L - (setq ang (angle p1 p2))
9 w& S5 o" ?, e/ j8 K - (setq p3 (polar p1 ang (/ l 2.5))# c( N6 o O0 |5 F2 X" p
- p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))! m% a- E8 y- ], N+ w
- p5 (polar p3 ang (/ l 5))
: A# H4 o$ G. J0 x/ q - p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))
% @% |( x( N" P* I* ?) { - (setvar "osmode" 0)
4 r8 K) X1 ?8 r) y0 m( Q - (command "pline" p11 p3 p4 p6 p5 p12 ""): n3 Z& q7 |( B8 I% ?* s: o
- (setvar "osmode" x)" H7 P6 \+ @4 S5 @
- )! z+ y5 m6 P7 V: w. S
- ;----------------------------------------------------------------------------------+ U6 Y8 d2 Z. U. r
- (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
2 I" \) J/ F. ?' G u5 L3 H - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
: R, ]7 _! i+ _" z. n - (setq ps1 (getpoint "\Chon diem thu nhat: "))
/ S0 _& r' m) @, b$ L - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
1 T# H* g- Y: i2 \4 e3 v% M - (setq sb 50.0 sh 200.0 se 20.0)3 g2 W) u0 P( f6 `( U* `' u
- (setq ang (angle ps1 ps2))$ o8 M( W/ x C4 c# A% v
- (setq pf1 (polar ps1 ang (- 0.0 se)))- H' x' C& j0 B( e8 x
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
4 X% H8 |/ B' M, P$ U* G - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
4 n/ p) J2 {* g) U8 S3 ?" e - (setq pf5 (polar pf2 ang sb))
) ^4 a5 q) v4 e - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))9 ^$ c( K: Q6 v/ s
- (setq pf6 (polar ps2 ang se))
, O6 z8 m, R' S$ g0 b - (setvar "OSMODE" 0)
7 ?2 K5 C0 q0 V3 \ r/ ] n5 d0 ? - (setvar "BLIPMODE" 0)
. x( W% X% Y2 O" v - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")6 c& a7 D( M: V" i( K2 s3 q* z+ T
- (setvar "OSMODE" 703)
3 f% ?5 Z1 T3 g - (princ) )' }+ y' {! z9 E/ y
- ;----------------------------------------------------------------------------------# E# m8 }1 Z7 D# K5 w8 q
- (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6" e$ f0 w/ F& I& v
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))6 C, \3 v }% o* [1 @# m% K
- (setq ps1 (getpoint "\Chon diem thu nhat: "))
+ g5 C( o9 |, s" U* ~2 p4 d& S - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
0 p2 u$ l j) v/ C - (setq sb 100.0 sh 150.0 se 20.0), i& M" Z7 W$ {! |- P. ]( J
- (setq ang (angle ps1 ps2))) s4 z& N8 X- _) ^9 s, L
- (setq pf1 (polar ps1 ang (- 0.0 se))): S' Y" g8 u6 L9 h% B
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))# z1 r+ m3 D& Z& M$ f. F
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0))) A8 P! N" j, Z6 J
- (setq pf5 (polar pf2 ang sb))" {/ E- J {' `! f7 s" t, D% J; u3 r
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))6 F4 {- B/ g3 n
- (setq pf6 (polar ps2 ang se))
" h) j& g+ G8 s* ` - (setvar "OSMODE" 0)' y7 K: E! ~8 J2 W: a9 _
- (setvar "BLIPMODE" 0)# A5 ~* {& i9 N- ?% {9 @1 q0 {2 |9 X
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")4 A( T$ }8 f' U( j7 i
- (setvar "OSMODE" 703)& @4 O6 S" M3 G; A: G) g! Y* G$ ?& ], ?
- (princ) )
% n- Q9 v3 w+ v h - ;----------------------------------------------------------------------------------
" J" v+ F' A- V8 K9 h! Q - (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6" A- J& ]+ [& G: M7 J+ U4 U
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))6 N- d3 j& l# q4 M3 O5 b
- (setq ps1 (getpoint "\Chon diem thu nhat: "))
1 a3 \3 w: |! q) v4 }1 Z& [ - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: ")) j3 r& b& K3 m5 t( |8 o& p" U6 {
- (setq sb 100.0 sh 250.0 se 20.0)
# A. y1 ~) F1 O+ B8 S& g, Y) s! _ - (setq ang (angle ps1 ps2))
m# T( v6 B" }+ t( U - (setq pf1 (polar ps1 ang (- 0.0 se)))1 \3 z3 }" P* \7 A
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))( E* G% B$ h, z8 l9 e
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0))). t% ^ r& \8 X9 \4 m* V
- (setq pf5 (polar pf2 ang sb))* w3 @+ C q" D, x/ I! D
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))* P$ M. l% Y% ]( T8 w
- (setq pf6 (polar ps2 ang se))# r4 d; k! Q: w. ^' `6 l3 y& E
- (setvar "OSMODE" 0)
* k6 p- ?3 n6 i- v - (setvar "BLIPMODE" 0)
1 W5 S% O3 \/ c- D A! L6 S0 U - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
$ u* J4 B- A2 N2 a& d8 t6 R - (setvar "OSMODE" 703)9 d' M' I7 b* c9 c8 B
- (princ) )
) ]- w) H! ~( ]5 c - 2 N& j0 }) Z, w& ^
- ;==================================================================================1 M. z/ n8 [3 _6 a& J
- (defun c:ang (/ ent pt1 pt2 ang)
2 `4 ?! y* }: q' x: W6 A - (setq cmd (getvar "cmdecho"))% Q [- Y( A' b1 D7 Y7 j
- (setvar "cmdecho" 1)
5 y8 c4 R) s3 A. Y" u - (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))
: `& g; E# e4 D _- e/ p- a - (setq ent (entsel "\nChon duong thang:"))) i. `" R7 |+ S5 {: o* J/ d
- (if ent
8 t' g( M! l% H# } - (progn
. i& _/ i/ I/ H' k) D - (setq ent (entget (car ent)))
/ c0 Z6 f; l; p" { - (setq pt1 (cdr (assoc 10 ent)))
" B9 R+ ~3 t ~. I$ O) k - (setq pt2 (cdr (assoc 11 ent)))( p% Y; f/ w) l) D9 e9 a( c2 ^
- (setq ang (angle pt1 pt2))
& a- l6 U8 ], ~, C, X4 B3 g - (setq ang (/ (* ang 180.0) pi))
8 i- ?! p6 O. |* ^' m" ] - (setvar "cmdecho" 0)# _1 y4 F; r, j# a! E
- (command "setvar" "snapang" ang): u" i/ i% B/ x, D6 m
- (princ "\nGoc cua truc toa do moi : ")
+ w. I/ u- b, |& z - (princ ang)
* U& }4 C0 \! y' u6 X - )
6 S" p3 C, T6 v E* K - ). G3 [ `0 K1 c& @" e
- (setvar "cmdecho" cmd)
- M8 T, I! D( S' O9 ^9 T1 o5 B - (princ)/ N$ F/ C! F+ f, x% ~
- )
9 P4 i* M) Q# S& _" B. E - ;==================================================================================! K# O* u1 _+ C) c! w) w
- ;============================== KY HIEU DOI XUNG ==============================* t# U& @% h8 G$ Y
- ;==================================================================================
8 ^: H% v+ G6 _' Y5 j' ~
# f7 |% y" m/ m+ S' O0 K7 N/ K- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT91 n- z- f# d2 G1 t% ~( b
- SZ G45 G135 G90 G180 SS loi)
$ t0 a9 U' e y5 w+ e, {( D - (defun loi (s)& W. b% a* ~! v6 j4 U
- (if (= s "Function cancelled")
1 D8 k* L' y) C+ @9 g& }7 I' } - (princ)
6 P8 d4 u+ F9 b; S; B1 F - (princ (strcat "Error:" s))
* B$ i3 ^1 Y8 L' w2 h - )
3 u0 h1 F( ^& D% \ W - (SETVAR "CMDECHO" CMD)
& h* v/ X4 n0 l' o% |% K7 h - (SETVAR "OSMODE" OSM)0 v% G* n; M8 Z9 @ w
- (SETQ *error* OLDERR)
1 R) h0 Y3 Q- m - (PRINC)
2 G0 w; O" V/ f - )
; F: s% b) U& b! v- E; M6 ]6 C - (SETQ CMD (GETVAR "CMDECHO"))" j. \0 D. {; e2 o/ E% v
- (SETQ OSM (GETVAR "OSMODE"))
& e0 \* H$ M% e6 y! Y! d: x6 T - (SETVAR "CMDECHO" 0)9 g* I9 j0 D! g8 {6 q
- (SETQ OLDERR *error*. k$ k! y& [ L$ E
- *error* loi)
0 J* u3 v7 L* c' [6 }7 |5 ~8 t! @ - (SETQ SZ (GETREAL "Size <1>:"))
) T P* l* ]* v- G% g - (IF (= SZ nil) (SETQ SZ 100))
7 ]: g0 K% L9 G5 m - (SETQ G45 (/ PI 4))
/ r* h. D {% l8 U - (SETQ G135 (* 3 (/ PI 4)))! [1 y/ t& N4 z4 c
- (SETQ G90 (- G45 (/ PI 2)))- y' c1 K( h6 A; [
- (SETQ G180 (+ G135 (/ PI 2)))" G2 ~0 [+ S$ \& t* K5 c
- (SETQ PT1 (GETPOINT "\nDiem doi xung:"))4 ~2 V3 b; G1 N) v1 Y5 K8 p
- (SETVAR "OSMODE" 0)! f: X) Q+ V1 O6 `% O
- (SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))
+ u, T6 S3 b1 Y/ x0 k9 G$ V - (SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))
4 E- u4 w2 @: B9 m6 h - (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))
& n; E: m4 v( U4 x$ |; v) h - (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))
1 h$ H: ~- O# A, P9 ? - (SETQ PT6 (POLAR PT5 G180 (* 2 SZ))): s' E; [6 O& H7 O) \2 _7 O
- (SETQ PT7 (POLAR PT1 G135 (* 1 SZ))): E+ m$ @+ j/ u- G8 W$ B
- (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))
2 o) ^8 \, ^. k2 I! A - (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))
6 M8 d$ P- J0 G, j5 D2 |1 Z - (PRINC "\nGoc quay:")
+ h; H# P! i' e - (SETQ SS (SSADD))
: v8 j; g# M. o) z - (command "layer" "m" "Dim" "c" "" """")
1 s4 Z, W6 a+ b, r, k. } - (COMMAND "COLOR" "1" "")
0 S+ Q9 D$ e. V6 `" S0 q - (COMMAND "LINE" PT8 PT2 "")* R8 b) }- A+ H. D
- (SETQ SS (SSADD (ENTLAST) SS))
7 j& B5 A- n% O' a - (COMMAND "LINE" PT9 PT5 "")& i6 m" Y v0 Q, ]- v
- (SETQ SS (SSADD (ENTLAST) SS))8 f* |8 T* y4 E' [
- (COMMAND "COLOR" "1" "")
9 A0 [2 F. h* Y7 b) p+ _ - (COMMAND "SOLID" PT2 PT3 PT4 "" "")9 j6 v, D( }' W. S7 t3 |+ Q1 n
- (SETQ SS (SSADD (ENTLAST) SS))
- R" d% W% l+ R: z, x/ E6 r. |2 M" S - (COMMAND "SOLID" PT5 PT6 PT7 "" "")
4 R$ z) K% G" G4 z, Y - (SETQ SS (SSADD (ENTLAST) SS))
2 r* Q# E& |3 I: H) L" @' F# F - (COMMAND "ROTATE" SS "" PT1 PAUSE)- G7 a3 k0 l# r3 X
- (COMMAND "COLOR" "BYLAYER" "")- i4 _2 g- Q, Q. I
- (SETVAR "CMDECHO" CMD)
! a6 {. k6 [% E7 R- i& k - (SETVAR "OSMODE" OSM)' y/ d$ b+ a! |- r& M9 J8 \2 G
- (SETQ *error* OLDERR)
" G% {! }' L$ t7 R M7 R) u3 j - (PRINC)! ~( u7 u3 c6 H3 U
- )( g* x S! I' i$ M p4 q ^$ G
+ m* E8 W. _/ N; o! f2 j- ;==================================================================================
$ z0 h) ]# h) {5 l( l$ V7 B" p& G - ;================================= KY HIEU TRUC ===============================
# | l5 o* Y- o# F - ;==================================================================================
6 H% J3 ?/ h$ X. P. s6 P
& H/ z" ^" J8 m6 ?- (defun C:vetruc ()! i7 o! q+ t, t; N
- (setq bk (getvar "USERR3"))+ t. C/ k2 U X2 l ?
- (if (= bk 0)
8 x- Z% Z; x }, A! X% P - (progn
& [4 e1 Q. l% E6 p - (setq cont "1"); q; S/ D" V2 P& G! ]# F$ t
- (setvar "USERR3" 1)& C' N; M! c9 j2 y5 J
- )) ^5 _$ D! U$ x( ]5 U# u+ f4 F: W
- (setq cont (rtos bk))
' l8 p Z7 k& o3 p - )
6 G* j- [8 G* X8 Q/ N1 z1 E1 P - (setq pt1 (getpoint "\n Nhap diem dat:"))+ N4 `3 x. I# q% Q9 q4 f
- (command "layer" "m" "Dim" "c" "" """")
) O, s/ U* S) M) `7 P( { n - (command "osnap" "")
9 V5 D% r8 N; o, j2 v+ z - (COMMAND "COLOR" "7" "")
+ a9 w4 S- e0 q) @: G( ~$ D - (command "circle" pt1 150 "")
`( u6 _" b% M0 D$ j/ X - (setq pt2 (polar pt1 0 150))- Z. |5 X: w6 I, h7 f6 Q
- (setq pt3 (polar pt1 (/ pi 1) 150))% T# S. |4 r- @) O; ?5 `
- (setq pt4 (polar pt1 0 300))
5 G$ s( Z$ L1 X - (setq pt5 (polar pt1 (/ pi 1) 300))
, L" b3 i: W8 r1 |, E% S - (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150))
- o/ e- P" D6 r/ n+ H6 X; n - (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))4 w7 ]' z3 ]' k& V _
- (setq pt8 (polar pt1 (/ pi 2) 150))2 u9 s' i- h5 S. r: y4 D
- (setq pt9 (polar pt1 (/ pi 2) 300))
) @: l- \. p7 c _6 [ - (setq pt10 (polar pt1 0 150))4 L) O6 ]( `/ B, _3 c
- (setq pt11 (polar pt1 (/ pi 4) 150))
6 H: A* \7 g; I& I* j - (COMMAND "COLOR" "BYLAYER" "")
/ `" F4 z& n1 T" k0 ~/ t - (command "line" pt2 pt4 "")! E* ~% h N8 U. M, z5 T
- (command "line" pt6 pt7 "")% i6 @. N# U8 q
- (command "line" pt3 pt5 "")
7 m$ u! H4 C9 m$ m - (command "line" pt8 pt9 "")- o. G0 S# m; G( u) u% C2 B
- (setq dk (strcat "\n Size:<"cont">"))7 d: I7 |" G" h5 @" t; z1 e
- (setq bk (getreal dk))8 ]1 y% s0 V0 _
- (if (= bk nil)' h! n% o7 a5 E5 h8 K
- (progn
' |- ~5 S/ Z- C4 Q+ `) f R - (setq bk (getvar "USERR3"))
3 C5 R4 g T. T* v0 @8 _0 Z - )
# B0 C8 ^1 g6 _! } - (setvar "USERR3" bk)+ V6 X/ g3 c1 K: q
- )$ a# v4 B# M# B5 W5 O
- (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")
1 }+ ^) `! w |( _- g3 v5 I - (COMMAND "COLOR" "7" "")
- U7 E4 H- l4 [9 d- x! M. w) g! \ - (COMMAND "STYLE" "Truc" "impact" "" "" "" "" "")9 z& H- b& s! L b- p
- (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "") . [% M, U! a, d$ j
- (COMMAND "COLOR" "BYLAYER" "") o# P! r! w* v: a m
- ), z, o6 H+ A9 p( F+ P& v
- 0 c9 C, @2 [4 e5 c9 A
- ;=====================================================================
3 i p4 E4 `7 C4 u3 ~ - ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)
3 Z2 b* O# d( L8 }, Q1 l& w: j - ;9 [' I9 d$ j! O( K# R) g. K4 _" q! O
- ;Jeffery P Sanders2 Z* }! x' |; _: T. I
- ;
7 d' \ _4 k& W1 [% |0 S - (defun C:CA(/ en enlist tx newtx cnt tp asc note)6 o3 T4 [8 C7 B# m8 D+ M3 x! ? H
- (setvar "cmdecho" 0)* R1 Y8 H/ j7 A( r, V' y K
- (if(setq en(entsel))
+ l& x, h/ O. M% |5 _ - (progn) a( Z3 `2 t0 c; `; a) d6 Y8 J$ y
- (setq enlist(entget(car en)))6 m1 X" f, Y$ m
- (if(= "TEXT"(cdr(assoc 0 enlist)))
. h& n! S- R- l" q7 Z - (progn
$ \ O, l* ~( b - (setq tx(cdr(assoc 1 enlist))
, P! g& p; C2 m) b: m& X% r1 ?: H& }( ? - newtx "" cnt(strlen tx)
& F, U$ I4 e: Y; H; B" c - note "\n...CASE Reversed. \n "
/ T4 a# B( S2 @" ` - )0 X* s5 `) c1 J& i- T. d
- (while (> cnt 0)
5 h) t+ G8 A% f/ J; @ - (setq tp(substr tx cnt 1))* l6 E# w, y1 s2 c, J% {
- (setq asc(ascii tp))$ A Q% t+ }2 |0 H K8 r& U
- (if (> asc 96): x; m- j3 n7 M, E. _7 T- _
- (setq tp(strcase tp))
/ H$ u3 T1 n! y$ @+ H - (setq tp(strcase tp T))
0 }6 X6 H9 z- A: O" o, I. V - )4 _3 ~+ I/ t6 e. b
- (setq newtx(strcat tp newtx))) T" j! F3 z r' w2 m1 b6 ?
- (setq cnt(- cnt 1))
! n$ J# H9 v! P6 A - )0 d6 G) @9 R7 r* K0 T: b0 h
- (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist)); k! b$ e* `2 W$ B
- (entmod enlist)
' |& f- d h4 }7 M - )
- H& B0 {+ {% x2 u: T+ x - (setq note "\n....Text Only Please. \n ")6 e [4 M. x4 D, t) w* s2 T
- )( ?( X6 s7 C# r
- )
4 i! a5 V8 c7 v2 N$ A( W - (setq note "\n....Nothing Selected. \n ")
t* n0 U4 k; } - )
) g! K' A# x! h% P - (setvar "cmdecho" 1)) f" W9 y( U' i+ `3 P+ q! Y
- (princ note)
- i+ |! M& D' {0 [ - (princ)* m5 Q" n7 Z% j* @ o1 X
- )( f( j7 r0 B/ }$ Y) Z
0 L2 q( C4 f2 e8 Y4 C+ w" L- ;=====================================================================: ^% a3 F4 @* ^& M
- ;==================== NEW TEXT STYLE UPDATE ==========================1 t# Q1 {" k% t2 {3 U M
- ;=====================================================================
( i" r1 h6 {" q3 j8 G
4 j8 z9 T% o0 z3 U- (defun c:nS (/ tdt ssdt sodt index)
4 v2 y, |: b: N) ^, v1 n - (defun ObjName (ssdt /)9 X( V0 u8 X. k
- (cdr (assoc '0 (entget ssdt)))
# }# ]$ j% u' @9 n4 Z3 q - )$ Z$ A: Q& D" r9 `6 T3 D% c6 E* R
- (defun MoPL (ssdt /)
; n% p7 Y5 u- E1 I6 n( K - (= (cdr (assoc '70 (entget ssdt))) 0): m% l1 ?- d! m- x6 S! [0 G
- )
4 t4 [$ y* d! O4 v; r! E - (defun NoiPL (ssdt /)" O2 L- Z/ y- H" p
- (if (MoPL ssdt)
& R. c1 Z) Z4 B! Z' P" {2 N - (command ".PEDIT" ssdt "J" "All" "" "X")0 v& ^8 E$ Y/ A1 Q5 K: b4 E1 r( g& U) @
- )
0 M# c, w7 U, j1 k8 P - ) b, D4 d& G+ D6 |1 C8 \! U
- (defun NoiLC (ssdt /)
# r9 i3 V& E/ `& W8 @7 { - (command ".PEDIT" ssdt "Y" "J" "All" "" "X")
( [5 I. J6 ? t3 Z - )
6 k6 p% f. \2 i: w - (setq. W! d. x7 E& Q% E2 T/ z% F3 U$ F4 U
- tdt (ssget)
6 E' q$ C5 j* n C& k8 \6 U - sodt (sslength tdt)0 S/ a6 C3 i( a: ~1 {4 Z
- index 0
( Z, X" i, P, E$ v% H - )
* `2 d$ [( d% k8 d* {! Z/ m- p - (repeat sodt0 @" `* F5 b: K* G+ @/ ]$ w& g
- (setq# Q! O. v8 @' F* k ^
- ssdt (ssname tdt index)
% ?& W5 W7 `! X2 ^- T2 S! K - index (1+ index) y" Y6 g& g6 y; K* u6 T4 H& Y
- )* o4 B# y" x' C+ G4 B+ c
- (if (or (= (Objname ssdt) "LWPOLYLINE"); E6 L9 \4 h5 N& u/ b( J
- (= (Objname ssdt) "POLYLINE")0 o5 E" p& ^/ ]4 f4 u) _0 v$ ^( A
- )
: S# O% l$ L. d0 E" o) j; I - (NoiPL ssdt)
- Z5 C% ]5 Z, k/ Z6 O - )
* k) ~; S% B7 E, w' Z7 R - (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))
( M% E# q4 J) h/ J# E& i$ y [ - (NoiLC ssdt)/ j3 j* e. G4 `( V. F x
- )$ ]5 G, U* {5 W* t- V
- )
9 u5 b0 x- y7 g) T) F9 ~$ h. T - (princ)
% H7 W" \0 W0 P5 B. f7 W - )
- B- l! d: b5 ^0 A3 x6 v! r - ' H5 A' M# ^ B- R' q ?
- ;=====================================================================; X3 G: Q: @) i3 G- h. d" X+ \& D( a
- ;;; AREAM.LSP
: Y/ i3 b5 B8 s. ?2 b* \: K - ;;; Function: Calculates the total area of selected objects
% c# J/ I7 f# A9 ? w: D8 C - ;;; By Jimmy Bergmark
: X- u8 Q' W* Q, I, T& Q - ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved9 O6 Z; ~- B% Z; C6 f! t- H3 p, v' R
- ;;; Tested on AutoCAD 2000% _+ x" ~6 E* K
- . K% V9 f5 q) W7 Z; O
- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)
e$ F$ U* X" a# g) S- G' M - (defun errexit (s)
V* J7 C _" ]" d9 q1 x6 ] - (restore)6 v# K6 ~$ t) Y3 g
- )
& ^2 r/ _1 c2 m4 ?0 w% L: k0 z
8 k% n1 W. @% Z; h. a* t# B5 G- (defun undox ()# G+ Z2 I A6 `
- (command "._undo" "_E")3 Z/ q- n6 Q3 s% p: J
- (setvar "cmdecho" oldcmdecho)
& d& f5 @4 ?0 E1 ? - (setq *error* olderr)
+ i% B9 h! }# i$ Q4 W - (princ)
- P8 k0 T4 e J' Q6 ]( F - )
+ n3 E" U5 c! l2 ^8 _7 C7 u
! ~) M1 u! C0 b: ?, o7 K: H- (setq olderr *error*, R8 Z+ A5 m8 l4 ?* Z4 s4 H
- restore undox
( N4 [0 w9 B9 t9 p' T- t2 U - *error* errexit7 d0 a% y% _; B1 p+ v
- )
7 f0 s+ j1 u- ?+ q, s: w - (setq oldcmdecho (getvar "cmdecho"))4 {* N o5 x9 O2 o \
- (setvar "cmdecho" 0)
' r0 L6 c* ~ Y0 U. w& j - (command "._UNDO" "_BE"); a5 C: O3 i8 T8 j: l, l5 {+ a" Z
- (if (setq ss1 (ssget '((-4 . "<OR") t( `& j* Z' v; S* a/ M
- (0 . "POLYLINE")
: k. l0 J! N E# l! E+ p$ T/ h - (0 . "LWPOLYLINE")
6 B( g2 J6 ?* R; V8 n- { - (0 . "CIRCLE")
I$ `& L0 V3 ]* Z - (0 . "ELLIPSE")
% R" f0 \4 i0 y8 l8 p - (0 . "SPLINE")& d: x2 q U& Y4 O
- (0 . "REGION")' W' x/ G9 K; L' E5 K/ n
- (-4 . "OR>")
4 ]) m1 D8 O3 e1 V( y - )
- i9 B @: m) W! W - )
4 Q. T2 C2 C, C" B. u2 ~& c' m - )+ f3 `* J# n2 q
- (progn1 M: R, z7 ` s N$ I
- (setq nr 0)
/ _3 {' w" C6 j; D% G- o5 V& L9 l6 L* U - (setq tot_area 0.0)0 w0 f8 n0 S* Y) g+ J
- (setq en (ssname ss1 nr))
# t/ k9 I4 }1 i( c8 \1 X7 x: @9 A - (while en
- x$ W$ o9 B% R9 a2 R$ K - (command "._area" "_O" en)
' o c8 R9 K h' P - (setq tot_area (+ tot_area (getvar "area")))
" ~0 V4 J4 S; F$ a* { - (setq nr (1+ nr))
: d2 v: k' q* F% W - (setq en (ssname ss1 nr))
' u" Y8 @* f% J' i1 f1 Q1 K& k - )
2 B K |: P% S# `8 Q3 q - (princ "\nTotal Area = ")/ g5 P/ H4 p( n1 a S. ^
- (princ tot_area)" j0 Q6 v6 p0 g, w4 t2 D& E
- )
+ I& m+ P5 j o/ O9 i - )
% \1 u- [5 n( l8 k, N - (restore)
: R h( G1 F' n2 }0 I2 ^% I$ P - ) n. D6 W+ L5 @/ S4 ]2 `
' R5 |& M* x( R. X2 E- ;===================================================================== R, ?; a9 c5 i' L7 f4 h( L2 H; H# l
- ;;; By Jimmy Bergmark/ M( _: K& {, G( r. h0 v: @% h
- ;;; Copyright (C) 2008 JTB World, All Rights Reserved
- M5 l' J4 d0 L" ~6 D - ;;;
9 z" D, D. P: W+ E, J - ;;; Created: 2008-03-318 Q6 j r* R8 m0 v7 {
- ;;;8 p3 ]) R: \% P; `5 k7 [ C
- ;;; Convert Attribute definitions to mtext
* y& {) d3 z$ E$ N - ;;;
4 ]! [8 L8 n2 K& H, { - ) b/ x; Z- Y- B& x) C( h
- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)' q( p v. G8 ^4 R' o% X
- (setq eset1 (ssget (list (cons 0 "ATTDEF")))
; `4 a4 V/ q z% W! } - blkcnt 0$ S( o4 M; `8 L3 e$ M- C
- )
5 x9 e; x8 b7 X8 {. W3 V - ! z/ z3 h9 d6 i
- (if eset1/ N3 v( w+ A# p/ [8 Z. ]2 ]2 c
- (while (<= blkcnt (- (sslength eset1) 1))
4 _- V% _$ S* n/ o& b' r$ H - (setq en (ssname eset1 blkcnt)
, G( K3 h9 j6 a% p ~( }- k5 A - enlist (entget en)1 c3 O) ~5 u. X+ T4 C' \% q3 r0 n$ p
- ht (cdr (assoc 40 enlist))
( c4 J1 E1 L/ f- e* { - pnt (assoc 10 enlist)" I/ N4 X1 H. a
- pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt)9 _ e1 z: _% I
- space (cdr (assoc 67 enlist))5 E0 k, Y* `7 f( Q. [
- )
% o. R5 T0 \1 R2 ~ - (setq vl (list
/ m+ B: c3 i5 M - (cons 0 "MTEXT")
# M. s: l0 C; s/ e2 g - (cons 100 "AcDbEntity")
( X+ m4 P1 C' ] - (cons 100 "AcDbMText")
9 G6 n0 X/ K7 _ - (assoc 7 enlist)
: J0 P/ k2 _8 d' O( L$ N - (assoc 8 enlist)
- @, K4 Q6 T! I" E0 E/ u% A& A: o0 ^ - pnt
, @$ [6 T& S9 d! a* x - (assoc 40 enlist)
# ]" N3 c" V- l( t* J0 ` - (cond ((assoc 62 enlist))
% T2 M/ j Z* x6 h' | - ((cons 62 256))) D6 S# X* B1 m4 a+ t
- )
9 ^ c; \" u% Y - (cons 1 (cdr (assoc 2 enlist)))
; [* B, }8 A/ v - (if (= space nil)
{- P F8 K$ ]! P e7 @2 b - (cons 67 0)
' W6 a& Q3 |$ ?) j - (cons 67 space)
6 F2 t6 B! o& \' A* O - )
( Y/ A/ S; o: |" r5 L# _ - )
- ~. U9 M7 c" p3 b# M8 { - )
+ t" V2 C* B, V+ q4 |% r9 V' B% i - (entdel en)
' d; a( s8 ]4 a2 W" Q: h - (entmake vl)
+ G. b/ l) H+ F1 G Y" F - (setq blkcnt (1+ blkcnt))
8 D5 D2 ~( F% V7 U0 E) z5 j/ J+ N - )2 i, k% Q5 { @# n A
- )
' M, a' h* h/ n" P - )
1 O8 j8 [6 e! g9 r5 U% K- b- ]! o
$ M% R7 \* C! V2 } D( }, a7 T/ Z- ;=====================================================================- g/ H2 M; h5 }; E! V7 b
- 3 A1 V, w* q' {2 } \
- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)0 E. p8 h3 h7 T/ l
- ; Khoi dau cua chuong trinh! d* w* ~0 f4 n1 @' X" c: B1 S3 K
- (princ "\nCopy Inteligent...\n"): j* Q' B5 A0 } p8 ]- h
- (setq luuecho (getvar "cmdecho")
0 W1 A# b/ K3 v3 i - luu *error*. t% U# E; C+ }, M
- *error* ketthuc( ]: j+ M# L. E; M! X5 a9 {. }
- cumdt (ssget)
- B; d# Z) Z' d, H- \ - dodai (sslength cumdt)' @. L4 N Y& H: c2 k
- goc (getpoint "\nSelect base point:")4 J& U$ E# f6 ~7 k5 l4 F7 a i* K+ ^
- thoat nil5 O3 n- k$ A) ~+ G+ n; o
- dem 0
! F: m' ^6 W2 M+ O- j/ V$ ? - textxl nil* |5 Q6 A2 p8 Z* N) s! b& c4 x
- );& I/ h2 h& f# d, C: i9 d
- (setvar "cmdecho" 0) e3 r) E' {& F
- ; Loc ra duoc ong text de xu ly( a5 w4 v: j: ]1 x# T" f) q
- (while (and (= thoat nil)
' t, S S i7 Z$ l1 s# {% f$ W: s - (< dem dodai)
. l: D' H- s, e! E2 n1 ]& n |. b - ): ^ W( ^. S# b) I5 w8 C
- (setq ten (ssname cumdt dem)9 x4 r" u/ M0 l8 {
- dem (1+ dem)
' y5 k6 D- T: P- F( C - doituong (entget ten)
% C- T P" p3 G- c - kieu (cdr (assoc 0 doituong)) - ^ h$ e1 E3 D* z$ H7 ~4 _3 y% y
- ) `% O# k4 v9 ?/ N$ x/ U
-
8 o1 f- E' L; U5 l$ R - (if (or (= kieu "TEXT")% p- L2 ]7 t8 @8 x8 S# R( Q
- (= kieu "MTEXT") Q9 X- p' B: G/ ^2 a" @
- ). `: s B M* ~4 c7 {
- (setq thoat T
7 z* y3 c% T) K2 J- d! G - textxl (cdr (assoc 1 doituong)) - C7 r7 q+ v8 J" r: V
- )
4 [! r; q. S4 J3 {$ r$ ~ - )
3 _9 Y1 h2 Z6 A6 ~8 ]; X - );# i4 O+ [. j) b3 G
- (while T 5 S% l3 [+ f4 U8 b: F) g& M1 d; _
- (setq toi (getpoint "\nSelect next point: " goc); g1 z7 r; U; Y5 U ^
- vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
7 ?3 a8 @! i+ B2 C0 c - dem 0
' @1 P% k- h8 s - )1 W: q0 ]) T! {: @" V4 S$ `* g
- (while (< dem dodai)
: [( l! Y" |/ C - (setq ten (ssname cumdt dem)
8 v7 l: m+ f3 `6 y - dem (1+ dem)
8 S4 F0 K7 `. d1 D" N2 b" O. o" z - doituong (entget ten)
! m/ l" \0 n1 n; @ U% {1 r Q8 O: Q - kieu (cdr (assoc 0 doituong))
+ ^# x3 K3 {' {' a - )7 U$ e0 p9 T! A; _
- & L$ q- u0 p' b+ X) o! ?/ e5 [/ y
- (if (or (= kieu "TEXT")/ K/ U0 N8 P1 v. D3 k; ]9 Q2 K* X+ Q
- (= kieu "MTEXT")
, ]6 l% o! h4 l" c% ]0 K) z$ d - )! t, v+ d8 z5 K) i; U
- (doitext ten)7 d6 W$ W5 G( x; i2 f1 g- F
- (copy_dt ten)
) i7 @3 k1 `5 l w1 V) B - 4 H6 s, ]# Y7 D5 Y6 R
- );if5 C0 Y" O) |) @$ O
- )
9 n8 D) b/ |5 d" }) b - );while+ n$ @* B& p+ K' N
- (ketthuc)
4 z& ~% w: v* b- S7 N! I - );defun
- l: ]( m8 J1 G' x - (princ): q; a- H- X( h, f* ~9 [ _
9 E' d5 u0 ]# F7 S% m$ V- ;=====================================================================
. z# x; f2 P" X; g4 ` - ;;; By Jimmy Bergmark9 y1 ]0 i+ p- a* C/ Z7 x4 J
- ;;; Copyright (C) 2008 JTB World, All Rights Reserved+ V, x' ^7 `5 D" X8 U
- ;;;& h0 q8 b4 U: a5 d N; ^
- ;;; Created: 2008-03-31
7 [7 M* c( y0 M0 a - ;;;5 }( `& j% m+ _
- ;;; Convert Attribute definitions to text+ x$ R! b$ ?9 W1 B
- ;;;% d, v+ f! G, T- L9 N
- |. G6 M8 ~: G: `4 {0 O0 k4 j
- (defun c:ATT (/ eset1 blkcnt en enlist vl space)5 |: R/ l. d3 B/ M& X
- (setq eset1 (ssget (list (cons 0 "ATTDEF")))/ B' a; O" U* a; ]
- blkcnt 09 a' _0 l! R5 ?- q
- )" M# i: \. g( `( V9 l2 F* a
- * P3 X) ?3 ~) U2 G3 U
- (if eset1
+ g' G5 n7 ~, v+ M: N3 x9 R - (while (<= blkcnt (- (sslength eset1) 1))5 M$ B, C! U- ~! n
- (setq en (ssname eset1 blkcnt)2 o6 S! w! f( M, y! B3 \
- enlist (entget en)
: s I3 X1 _; X( B9 P m; m - space (cdr (assoc 67 enlist)): \; j7 V; w5 I4 B7 q) A7 g/ C
- )
2 I8 `* c, W# z' w8 p - (setq vl (list
; W( M" N3 P& K4 Z& S; p: \# C - (cons 0 "TEXT"). n% ]3 ^) U' |
- (cons 100 "AcDbEntity")
+ p' l1 S: l% x. a# y, V3 v% d. h6 I - (cons 100 "AcDbText")
6 ~6 s5 f3 H7 Z* k% P( D6 T' {6 z - (assoc 7 enlist)
( ~* P1 y% \. ~ - (assoc 8 enlist); Z% E' k0 v) t, e9 w
- (assoc 10 enlist)# j1 T5 _7 s% Q. p3 ]
- (assoc 40 enlist)
( x( I$ i3 G3 f, n( | - (cond ((assoc 62 enlist)), v2 B" E" i/ S g
- ((cons 62 256))
' L2 N$ ~) B" g7 y0 K( t. w - )
7 @* S5 j- u L2 Q e) K - (cons 1 (cdr (assoc 2 enlist)))
* S$ w! d2 f. B) a. v% f6 p, j - (if (= space nil)) A. r. C: _$ `* a+ M6 t
- (cons 67 0)+ ^/ w5 m/ o6 I
- (cons 67 space), ?3 S/ u0 c6 \6 C' `/ A
- ); d" E* g5 C8 ^2 t
- )
# S' o. F' T, L - )
3 g* W$ q9 B7 R - (entdel en)
4 w C8 z' s$ n k) j+ u2 j7 P6 a - (entmake vl)" t/ p$ l& L' u4 y$ X! T9 \% S
- (setq blkcnt (1+ blkcnt)) w7 o4 P# z1 a
- )
* h2 g4 R$ _' B- T0 J( k: ? C - )' h- a' c# R& L& P; |
- )
' C) ~* I# i# j* ]: g - ;=====================================================================
8 y; q# A8 l% r3 @ - ;============================ Doi Truc ===============================
& N5 m& l$ o }% U0 g4 G* T - ;=====================================================================
. _: B' ^$ Y+ D" B" U$ v$ a
) v8 C5 P1 q7 s3 ]/ Z' a- ;=====================================================================
3 n7 l5 E" d' i0 y - ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============1 G4 T4 a0 j3 `9 R2 d* M
- ;=====================================================================$ j; y7 Y0 C5 v% l
- (defun c:ga1 ()& B6 y. [! f2 W, L6 \
- (setq a (getpoint "\nChon diem: "))6 f4 A9 y; }$ C9 C2 g
- (setq b (getpoint a"\nChon diem: "))
' H" M) [5 c/ Z' g - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
# x5 }! ?% h: l# o - (command ".circle" c a)
8 v. I6 h9 [: w0 _* O5 p - (command ".line" a c "")
, [+ G4 m1 U/ l - (command ".array" "last" "" "p" c "1" "" "")
% b* z4 f" |- i+ P - (princ))
0 I1 V# ~9 S: p1 ?
H$ {$ Q5 |* {( l" S# @- (defun c:ga3 ()' @( { f* V0 Y9 d
- (setq a (getpoint "\nChon diem: "))
; z8 m$ W+ G# q, V5 V, z - (setq b (getpoint a"\nChon diem: "))
2 p- C3 u0 O8 G4 m - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))! X" o. o7 [, \$ o- _
- (command ".circle" c a)' R. g& \" p1 u7 H1 q& J, I0 w
- (command ".line" a c "")5 b5 p) P" ^2 H4 O5 T# W
- (command ".array" "last" "" "p" c "3" "" "")* k B0 h& k4 k2 Q) f& j9 p
- (princ))" s( j$ Q& c" u- k5 x7 T
- 1 X+ f; |5 T5 F
- (defun c:ga5 ()
: P& a! S7 w" L9 _3 y - (setq a (getpoint "\nChon diem: "))
, I( ^; V' Q' S/ N. I - (setq b (getpoint a"\nChon diem: "))* F" g5 K& F- D# U4 j7 t
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
/ C0 h# N$ j$ f2 s# H' c - (command ".circle" c a)
Q7 x& U' ^" y/ Z) K - (command ".line" a c "")4 K) O0 E6 L- K! ~ [
- (command ".array" "last" "" "p" c "5" "" "")0 A( A& _0 _: W( D- t9 q
- (princ))& ~9 v. B/ T/ L6 y
4 }% k' v. C, G, R- (defun c:ga7 ()1 B% f' `0 @& [" ] d
- (setq a (getpoint "\nChon diem: "))
' P, Q7 G9 d( T# U4 J- O - (setq b (getpoint a"\nChon diem: ")) @9 `* j( ?& b5 T) V4 y* \+ @
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
4 b4 s: e( U1 t I$ R0 ^ - (command ".circle" c a)$ A# G. w( Q+ }/ [( L
- (command ".line" a c "")$ f8 X% s# D- ^' e& Q2 \
- (command ".array" "last" "" "p" c "7" "" "")
, C D9 J8 j4 l1 i - (princ))* ^. t% ~: B' ]7 x
- d) ~% D. l7 W4 T
- (defun c:ga9 ()
4 T: o$ H& m$ o - (setq a (getpoint "\nChon diem: "))4 d; t* c/ D$ ^9 I8 ?
- (setq b (getpoint a"\nChon diem: "))
" L( z" Z+ K7 T' j; W0 q, S! N/ b - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
; O$ t2 q) W* R - (command ".circle" c a)
3 l+ c) Q% @1 Y( | - (command ".line" a c "")
( F& t) b' @0 y - (command ".array" "last" "" "p" c "9" "" "")
: B! R) U( B2 e' K. p$ { - (princ))
; K% @6 q& m5 u. P: A' P& t( v' j - , ^8 }5 f+ p* C) }
- (defun c:ga11 (), i* R" k7 ]6 v& \9 U, F5 k1 L% f* \7 n
- (setq a (getpoint "\nChon diem: ")) W: O0 i m+ M. |
- (setq b (getpoint a"\nChon diem: "))
4 _7 X0 ^0 i4 m* O5 z - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
- z' `; r% j! b9 i: L - (command ".circle" c a)0 |3 o. P7 E9 M
- (command ".line" a c "")1 O0 F }$ f; r5 [
- (command ".array" "last" "" "p" c "11" "" "")8 J" n3 |% V" X2 V0 o$ K: U* f4 n
- (princ))3 h0 {1 S' l m7 O) z# K$ [$ T
- & l5 s' ]. @4 Z% h! o
- (defun c:ga13 (); S1 }5 D* A* f6 L* A( l: A
- (setq a (getpoint "\nChon diem: "))! C/ Y0 E+ {! ^
- (setq b (getpoint a"\nChon diem: "))
* D, d0 L1 T0 m) e m - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
. b! M3 F8 R/ Q# u - (command ".circle" c a)
. V0 _- u# y2 `) j - (command ".line" a c "")" I; T0 u3 h ?) r8 l9 z
- (command ".array" "last" "" "p" c "13" "" "")
' x) a8 v* X! t4 l' Y - (princ))2 m+ Q/ ^4 W2 w7 H0 G$ t7 b
- $ T H; u, S m1 H2 h
- (defun c:ga15 ()7 B0 T/ W' y' d$ d4 ~$ }" @
- (setq a (getpoint "\nChon diem: "))
) v5 `9 r+ J2 X) b; J - (setq b (getpoint a"\nChon diem: "))
9 c/ [0 i# s1 h, U1 I - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))5 H8 z0 M& Z$ x P- y2 \9 ^
- (command ".circle" c a)* A; ?& M, X2 R* {" a
- (command ".line" a c "")
/ S/ ]. i8 P) @& G - (command ".array" "last" "" "p" c "15" "" ""). q/ R% @6 b# b
- (princ))
# d- G+ M" Q% d, j6 v
0 r- e* U$ \3 V+ b5 r- (defun c:ga17 ()1 H e; u- V2 m% ?! `& e; ]8 B! x
- (setq a (getpoint "\nChon diem: "))
9 _4 F3 v9 W, a& f: r. d. P. P! m - (setq b (getpoint a"\nChon diem: "))7 C" c! k: C; A, }8 @% T
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))' X9 x3 \/ Z; C$ I: h' `: l
- (command ".circle" c a)6 B( i* ]/ b4 m; C8 f6 ?4 i6 D
- (command ".line" a c "")6 M5 u! k' a0 r" B. ]( L/ E) Z$ u
- (command ".array" "last" "" "p" c "17" "" "")
# h( \" v0 b0 b9 H6 I - (princ))" K S# h( M" o' L
7 R3 M3 a- O' i2 z' i3 ^0 z$ Z- (defun c:ga19 ()
. G" e8 z: {9 I - (setq a (getpoint "\nChon diem: "))
7 i6 X% ?9 R. R( k. p0 k9 j - (setq b (getpoint a"\nChon diem: "))
9 G- Z6 x' Z% `% r - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
7 Q" g% p+ W+ C - (command ".circle" c a)
: P$ Q g% V( D2 r4 [7 D2 d8 F - (command ".line" a c "")
% Z" p. T) s8 y" y) }* X: o* o; ~ - (command ".array" "last" "" "p" c "19" "" "")
3 X1 K9 v1 [" x3 Z2 d6 L9 i8 D2 b - (princ)), U5 q, Q6 E' k8 W6 i: W+ r
- ' O( O6 a2 d5 V) n9 K
- ;=====================================================================* |6 ?4 t: g' g
- ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============
% w1 p3 a; E+ R0 C - ;=====================================================================. ~2 U w3 q8 b/ t2 ], t7 W. j% R
- (defun c:ga2 ()9 |* b1 S: ^" V1 e! v
- (setq a (getpoint "\nChon diem: "))+ L8 A5 Z) v1 A' H2 l% K7 `
- (setq b (getpoint a"\nChon diem: "))
! u5 k4 i- y* M. V8 Y - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
& Y4 M- Y. z* Z# L - (command ".line" a c "")
1 X7 T" t# e+ ]1 f- S - (command ".array" "last" "" "p" c "2" "" "")
% c: ?) @5 G& D% |) G3 h) w - (command ".circle" c a)
/ Y1 \6 B! n- Q, k3 u - (princ))% z/ U; f5 S7 F: p C3 [
- ( t! r* n& a/ E
- (defun c:ga4 ()1 H V- O* Q5 h; y' o: s' E
- (setq a (getpoint "\nChon diem: "))
7 V, a; ^( o& p; l5 C - (setq b (getpoint a"\nChon diem: "))
; Z. w" u `! Y% U - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
6 t# h1 J7 L# }, I$ A, J0 ^ - (command ".line" a c "")
9 k |. n7 C7 U4 d, r! P, D& u! K - (command ".array" "last" "" "p" c "4" "" "")2 z- n3 s# G6 F
- (command ".circle" c a)
. ]% `3 Z, r. R - (princ))
" @* d K) j- `
3 t# U$ l1 f* F/ m0 l- (defun c:ga6 (), L! L4 x* g0 e! d; l" ]# f
- (setq a (getpoint "\nChon diem: "))2 b% `- d5 P, a$ b& k! u
- (setq b (getpoint a"\nChon diem: "))
( ]) H* `( t; r( G - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
, D% n' `+ _7 L! Y5 B8 r - (command ".line" a c "")
4 }" m }/ C; }# {. j- W f - (command ".array" "last" "" "p" c "6" "" "")
6 `8 e, _8 P+ w3 N1 X - (command ".circle" c a)9 V1 Z+ }, ^$ a2 I5 E% I
- (princ))
8 E* c/ q" E' h& ?9 _* c
/ Q" z7 c4 m; @" r; v/ A( J- (defun c:ga8 ()1 k4 j$ s; w' ?) R
- (setq a (getpoint "\nChon diem: "))
7 Z6 y5 e A4 K6 Q5 h3 ^ - (setq b (getpoint a"\nChon diem: "))
! y! j- M0 G" p" H - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
- B, B! v6 R. ?0 H7 c - (command ".line" a c "")
' Q: o1 `' t$ Z" ]4 l& ] - (command ".array" "last" "" "p" c "8" "" "")$ b. [4 A1 P- F X: B
- (command ".circle" c a)& m2 M" F2 N+ L, {/ C
- (princ)): [) ]) o' U5 Q R! i1 n
$ V2 Q9 i! F3 I9 _# l- (defun c:ga10 ()
( [8 h0 J: D9 B# ~ - (setq a (getpoint "\nChon diem: "))
9 l5 }. x) _9 U- H, F0 p* L - (setq b (getpoint a"\nChon diem: "))
0 V$ L6 a2 }, ^& U1 R7 Q; m - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
, z" n2 J/ n; g W0 a - (command ".line" a c "")
% y0 _. @5 ~' X: {& d/ ~ - (command ".array" "last" "" "p" c "10" "" "")
5 l# z, t; O7 h2 D5 H% F1 n - (command ".circle" c a)! \+ {& |; M% D
- (princ))+ v$ E: H" {8 [6 Y8 M: y
* N$ R& f; r- E- (defun c:ga12 ()3 m0 c: | _$ J' N ?
- (setq a (getpoint "\nChon diem: "))
; _, r/ I6 }6 g, A - (setq b (getpoint a"\nChon diem: ")). s3 k$ G6 c* H6 Y8 V: H8 z
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
- m0 `: [9 [" `, o% ~ - (command ".line" a c "")
0 W# a3 e! X4 y9 |1 I/ N' ~ - (command ".array" "last" "" "p" c "12" "" "")0 p5 k' _! m: f
- (command ".circle" c a)/ O7 n. M; F( K3 ^$ z
- (princ)) l# E8 u9 \7 v/ K
! y; _7 r4 c5 E/ C( d- (defun c:ga14 ()" W/ A3 J% C7 E( l1 q
- (setq a (getpoint "\nChon diem: "))
" @7 k% n( I# n _# f - (setq b (getpoint a"\nChon diem: "))
4 t+ r/ L/ E# E; a6 ?! c& {* J' m6 [ - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
2 H4 ?9 X* ^9 j9 r* X- F E - (command ".line" a c "")4 y) E4 y9 M6 L: c
- (command ".array" "last" "" "p" c "14" "" "")
9 Y9 P9 c R6 @ - (command ".circle" c a)
. l& b* \( ^' w7 n - (princ))5 T9 |* N4 X$ {4 ?
- ! K8 V" M6 G c: m- H9 B
- (defun c:ga16 ()
W& ]1 p5 m! b+ m2 s3 _! W - (setq a (getpoint "\nChon diem: "))( F$ K. B @# [2 n; Z, p U; R# j
- (setq b (getpoint a"\nChon diem: "))
/ [& R y; H, o) F* V - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))); N3 i% A- q- r! J
- (command ".line" a c "")
2 \* i* ~4 T) f3 x% c. z4 i; ^2 ` - (command ".array" "last" "" "p" c "16" "" "")
1 G% C' {2 l$ z* V* [$ D! `$ p0 E - (command ".circle" c a)
6 @% c& d6 Z' w' V) s4 ] - (princ))2 n* n+ i; S; O; {# n% w t1 o5 V
- % v! p; N9 g' o# t( n4 W
- (defun c:ga18 ()
- F3 ]6 k. m4 g+ G$ g4 Q9 S/ R - (setq a (getpoint "\nChon diem: "))# F3 S' I: V* p7 C: L; r1 C# H3 }
- (setq b (getpoint a"\nChon diem: "))( j' ] Y4 M. D0 \# E
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
, }; z2 X' X5 ` - (command ".line" a c "")
+ u( @5 o. |* Q# q: [: b% \ - (command ".array" "last" "" "p" c "18" "" "")6 X8 c+ |, D" J" T1 o. F6 T. @
- (command ".circle" c a)
& a D$ n& n5 z. q: [$ A - (princ)) A1 d% i- p `
- . {7 @3 t ]. Z# e5 W. L- j3 Z
- (defun c:ga20 ()
8 M/ d; M- ^2 `9 q7 | - (setq a (getpoint "\nChon diem: "))0 o3 g; M5 U) t! C1 T& v: m& n$ Y
- (setq b (getpoint a"\nChon diem: "))' I% c" k0 j& H0 s+ Z% v4 F
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))6 }8 I& k& S: \- m' t; e, z
- (command ".line" a c "")
* q/ X" w# E/ F/ s: Y8 q' [ - (command ".array" "last" "" "p" c "20" "" ""); K3 j+ Z+ B$ T) c
- (command ".circle" c a)* q: R8 h% ~7 m2 ] |5 r4 @
- (princ))
! q- s/ v9 c# y
0 L+ k+ w' I! s$ W- ;=====================================================================4 }/ K; p( a3 k- U; P
- ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============. ?* T, z+ ^$ n; p0 V$ R. M
- ;========================== 06-11-2016 ~ 18h00 =======================
) M4 h( h+ N7 P6 U - ;=====================================================================
. g) _& k0 b9 N - (defun c:ga ()) j0 p- ^$ q0 J9 M. K- k
- (setq a (getpoint "\nChon diem: "))- Q1 K4 \& G" K) G' x$ R- I7 I+ ^
- (setq b (getpoint a"\nChon diem: "))2 G+ y0 H9 |, n4 b4 }
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
4 I/ F: B& _) C/ |; q1 l6 T+ p - (command ".circle" c a)# w$ ]$ D4 e: c% _
- (command ".line" a c "")
L3 @. e* t7 Q' x - (command ".array" "last" "" "p" c "NUM" "" "")
% V7 @5 ~ p/ v/ |( K - (princ))
) v8 u9 @7 Z1 }) e/ D7 X - , D) }1 y* G$ |- N$ v% M
- ;=====================================================================
; ~, ?# ]8 M+ [6 p" e7 c& y - ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============; h2 N5 H x7 x
- ;========================== 06-11-2016 ~ 18h40 =======================
+ U4 T2 E9 A! E1 a9 P - ;=====================================================================
% |1 y0 G }0 }" J
: s: P" ^0 |& r4 |# k5 g- (defun c:hoathi ()
, O& M L7 x1 l) M2 H h! m - (setq a (getpoint "\nChon diem: "))2 l; Y$ L, F) S, ~
- (setq b (getpoint a"\nChon diem: "))
1 Z9 V: O+ t x4 S - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
6 U d" z) E+ W; Z4 r - (command ".line" a c "")
1 U. S) P" ^% j% j; ?! e( W - (command ".array" "last" "" "p" c "NUM" "" "")! d% m+ `! m2 W" j& a
- (princ))
. o! | ?0 ^7 w% c( F
; m' @7 K1 a# s2 G5 Q* b: P9 n- ;=====================================================================5 u; j7 D# }0 ?* Y
- ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============7 y0 Y9 C9 _" |6 m" k) y
- ;========================== 03-11-2024 ~ 19h33 =======================
/ {# u6 g# S0 Z) C( l1 U - ;=====================================================================
+ ?" v- |2 ~8 v- x
8 c2 C v4 {- K( U- (defun c:cung ()4 A: f# m- ^2 t! K& R: D0 \ q
- (setq a (getpoint "\nChon diem: "))
# g* c. a$ ~: k- G% S - (setq b (getpoint a"\nChon diem: "))8 m/ p# a }8 ?; [6 @) {
- (setq c (getpoint a"\nChon diem: "))
2 ^2 F# c; C# G5 v0 H4 h - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
: l/ P6 [6 G- [7 p4 Y5 w - (command ".arc" a b c "")% R4 {0 V4 q; x8 m* V# v2 }2 h
- (command ".array" "last" "" "p" c "NUM" "" "")
, V7 y3 n8 o# m, N5 l) N' {2 o$ c* Q - (princ))
8 Q+ L- _+ {' z6 ]4 j
, s) r+ o. A0 S) I- ;=====================================================================
1 |8 Q0 Y$ b5 U& V& }% {6 {4 s - ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============
. u7 h L7 W0 t- V) c4 M( u9 N - ;========================== 03-11-2024 ~ 20h02 =======================
3 @' ]4 ^- A- \/ ~. @ - ;=====================================================================
; ]8 w3 L O% [. Y4 ? - & R) |( ^* W; y. T9 d( `
- (defun c:hecloic ()3 q( ]% z9 V, l
- (setq a (getpoint "\nChon diem: "))' [' [( N& R: L- q. ~
- (setq b (getpoint a"\nChon diem: multi "))
' ^& c: _' Q5 W1 i - (setq c (getpoint a"\nChon diem: "))(princ)
4 J: \4 Z8 c1 T1 F! h# ]4 K - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
; ^5 s' u0 h, V* \ - (command ".arc" a b c "")
( H7 W! |! \, f. C - (command ".array" "last" "" "p" c "NUM" "" "")4 `4 q+ h7 K, k9 G) B, j6 Z
- (princ))
( E) S0 E2 U& N6 H0 f1 U2 N
1 O* y6 n9 W4 |9 H! H$ m7 |- L4 V- ;=====================================================================8 r1 O6 q6 Q( I8 u: O5 C
- ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============
. F T7 D9 F: D$ E5 q, q - ;========================== 03-11-2024 ~ 19h38 =======================
0 N, C& L) f4 y: a/ b - ;=====================================================================* |; N1 D! s+ I. z+ R# T
- ! w/ R p- k2 } ?5 e0 B* v
- (defun c:gay ()
: x( C! m% ?$ R6 I: h7 R1 z) b1 y0 @/ u. x - (setq a (getpoint "\nChon diem: ")); X: K( m9 l/ O( U4 X! X1 u
- (setq b (getpoint a"\nChon diem: ")): H- K# c6 G* ~ }" d
- (setq c (getpoint a"\nChon diem: "))(princ)2 _: f2 I: N/ @" W5 C* N8 _) r
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))); g& {" `0 F- ^! `) l. R& I# f4 c
- (command ".pline" a b c "")
7 N, O/ R# {5 F: }' A& e - (command ".array" "last" "" "p" c "NUM" "" "")
/ ^. V+ S. ~9 [0 d - (princ))8 k5 B; w8 {2 \ X; E# G
2 H8 E# I; ]8 r- ;=====================================================================
) B1 x( ~' L6 E C - ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============. \4 U1 Q* \! P7 n
- ;========================== 03-11-2024 ~ 20h02 =======================
+ @: V0 _/ g8 G1 N* o3 a- a - ;=====================================================================
# f& D8 z& b# W. F! A% i, a
# Q# Q7 ~/ E0 K( p- (defun c:hecloit ()
) T5 H/ H7 W# ?) u$ e, B; s; e/ G - (setq a (getpoint "\nChon diem: "))& i, H& y1 M0 Y! D* b/ L
- (setq b (getpoint a"\nChon diem: multi ")) S$ x8 }& s( \7 L
- (setq c (getpoint a"\nChon diem: "))(princ)0 T' ^+ T2 Z' K% x( N
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))0 b( H" A1 f& V
- (command ".pline" a b c "")# w" a( j6 L! I) x: P+ ?
- (command ".array" "last" "" "p" c "NUM" "" "")
+ \' C5 P0 f5 E& s) y- F - (princ))" ?/ t. n/ v! X7 T" ^. n
- $ m9 g* {- Y- ^- S i
1 Q3 G) f n; @- ;;; ============================ Merge Hatch =============================. v8 m, i, |) E. m7 c
7 b+ b$ ?: D# w' k. W- (defun c:mh (/ ss entht sl i dt dtht)$ N5 a9 j b4 U8 p1 d; ^* w$ B# _
2 [ ^$ E; D2 c( Y- (princ "\nMerge Hatch - free lisp from CADViet.com")- n, p* A6 k2 [% ?' G- ~. A
- 2 n$ S6 _5 O* B* ]
- (setq
, y0 i: X0 I& i; K - ss (ssget '((0 . "HATCH")))5 X" ~8 A% B& g3 {$ o
- sl (if ss
7 l, Y. Q8 [* h2 t1 p( Q" p' } - (sslength ss)
$ G+ _" O: R, O$ b6 Z - 0/ z4 ~% |- m+ h( ^. K& v
- )) \) y7 G* S) L4 u+ N
- i 09 {0 ~1 Z% y/ h
- l 0) H4 |% K' D R: r* G t! F
- )2 S7 W8 Y1 W. c8 n1 I
5 p1 t, L! D4 p, i# V- (repeat sl
% V6 p' F+ m5 W# H9 b - (setq
3 B% Z% L# }" h- R) Z+ M5 V {' t - entht (ssname ss i)
% G; M, O w: R. P4 z: { - dtht (getbdata entht)
1 k7 @( q& L: V3 O' a& H* Y - dt (append dt dtht)% N8 T& F1 `- d* |* t$ M+ I4 M
- l (+ l (cdr (assoc 91 (entget entht))))
* m. p. R. \( F - i (1+ i)
! N6 M2 \2 k) \% f5 n; O - )" f8 u& n1 U2 r% e
- )
" u( a/ F* U9 i
6 J2 [0 f1 F6 W1 s9 G- (setq ent (ssname ss 0): r6 x3 E; Z- {. a$ s
- ss (ssdel ent ss)
2 f' |1 M" N& K& C! k" I - tt (entget ent)
: K! Y% v) i* y3 H - duoi (member (assoc 75 tt) tt)
& f$ W! d: ?+ v& C' E - dau (reverse (member (assoc 91 tt) (reverse tt)))
. i r* y. F% m+ A - tt (append dau dt duoi)4 X, z1 H1 V% D6 b& q2 v) O
- tt (subst (cons 91 l) (assoc 91 tt) tt)
# W. H& t G2 E% [/ c) U$ F: S6 _8 K, @ - )- K0 t/ q/ t) E
- (entmod tt)" D; Q& [- T A4 K0 f
- : ^4 g6 X3 k0 m, `! b+ `9 Z
- (command ".erase" ss "")2 d" o) q: l6 S0 Q# C
- (princ)
1 ^' m# Y; h& C; f( z9 h - )- m: k$ B$ K# V: V4 Z1 K
- / E7 Q- q! t' Q
- (defun getbdata (ent)
; }( ^& u; T( H - (setq tt (entget ent)
4 e/ C& P* U' \4 _0 N - tt (cdr (member (assoc 75 tt) (reverse tt)))4 ?) p1 Y$ z/ Z7 @3 V8 \
- tt (cdr (member (assoc 91 tt) (reverse tt)))3 f3 h9 {; A4 b
- )3 U' x/ C& \/ c1 j
- )& B8 F& T' p5 w5 Z3 ~! Z& ~
, s" `" B6 K7 j( r8 H0 I/ q& x
* `4 T& h# l5 |2 D- [! o# x- (princ)4 T: f' M; a: Y
0 h# L3 u6 g$ h1 T! P3 V- ;;; =========================== CAC LENH LAYER ==============================4 ^! g$ j+ [5 w1 F: N }
- ;;; =========================== Layer hien hanh =============================" V0 ^+ R0 b8 M6 l5 U4 f
' Y$ e' D0 K3 a8 c/ T- g2 [ g- (defun layset (/ LAY) (setvar "cmdecho" 0)
( I* }. W J7 Q* x6 c' w - (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))% Q. e+ G* U5 d' u
- (if LAY (progn
0 A, r0 J0 P$ [ N) b5 W - (setq LAY (cdr (assoc 8 (entget (car LAY)))))9 R- p% ^1 j# q8 s9 V
- (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ); ~( t* }' ~3 |5 \( |1 w6 b# ?
- (progn. ^9 Z$ p. e# {
- (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop)) ' ~/ W; a1 p6 `; Z/ v6 Z! |
- (progn- W0 [4 f( A' Y- u( b
- (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )
6 O2 Y6 k3 [" Y - (defun c:LLL () (layset))(defun c:LAYSET () (layset))' h$ ]" a, a" {
3 P9 ]# E) c% j1 E7 O0 T& i- ;;; ================== Cap nhat doi tuong vao layer hien hanh ==================
8 M, a3 K/ R1 p) j' q6 |9 _ - 7 `' o1 Y; X1 g/ s! V
- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)/ K, K; P0 P8 \- x H" M( t
- (if (not (setq SS (ssget "i")))
; e7 q" b6 h! y. k7 [ - (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")
, e: F' g9 j- I/ }4 _ - (setq SS (ssget)) ) )- f2 h V& d$ q2 s! X
- (if SS (progn* ~$ p- Y, Z5 O. E# R/ f
- (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "")
% R3 ] E* W+ C* S - (if (> (getvar "cmdactive") 0)
. [9 S8 { E6 ^- P3 e3 Z8 E& s5 j* g - (progn
9 p4 ~. b) `3 @; I1 X - (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )
i5 a( X0 Q( w( H0 p5 Z - (setq SS nil) ) (if (> CNT 0) ) N( ]' V/ r; ^
- (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )2 H* p" L8 M8 a8 y
- (if SS (progn) {/ h" X; q9 p W
- (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")( r8 Z7 {/ z6 M# k6 B. q
- (if (= (sslength SS) 1)2 X+ V. ]5 V0 z7 e9 q9 K' o
- (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))7 P9 m; F' }% }
- (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end
- F- a, H7 N# J4 U ] - (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur))
9 I$ \. m( ]' U4 k& E$ N - , p! V) r' d7 X q, b/ ?3 s8 l, r
- ;;; =========================== Layer Iso ===================================
7 P5 N% {9 j; p" ~) k2 x - ( D. B/ {# K+ |' r2 L @
- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)' ~2 h# e+ E% u! a2 V1 f, x: r
- (if (not (setq SS (ssget "i"))) (progn8 p$ i J' x$ T" O3 J/ D; Z" D' ]
- (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ")
: e/ {; r7 C! W5 p; e1 \- B - (setq SS (ssget)) ) )( F5 u& \6 E# j' N! O0 B6 m
- (if SS (progn (setq CNT 0)
( p6 n/ K9 `- p. n - (while (setq LAY (ssname SS CNT))4 m$ q) f6 f6 K. K. t1 d U
- (setq LAY (cdr (assoc 8 (entget LAY))))- D9 {' |3 j' j$ u' b" m
- (if (not (member LAY LAYLST))
( I2 s( E7 W2 r N1 w4 | - (setq LAYLST (cons LAY LAYLST)) )9 I3 V% o+ {4 Y8 T! ]' J3 [; H4 j
- (setq CNT (1+ CNT)) )
: V$ |, }3 V L% ] S; g5 }# u - (if (member (getvar "CLAYER") LAYLST)
' I' X2 Y3 K0 b- b8 O - (setq LAY (getvar "CLAYER"))
0 j) Y3 ~; E4 f* p) P: N" y& | G - (setvar "CLAYER" (setq LAY (last LAYLST))) )2 E6 K( w' a+ e* x6 l" Y7 @
- (command "_.LAYER" "_OFF" "*" "_Y")
( O" d; o* L8 V: \$ J! M& C - (foreach VAL LAYLST (command "_ON" VAL))
5 r: x0 |) g# ?1 V: J - (command "") (if (= (length LAYLST) 1)
& O; w2 `) ], } - (prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))9 ~+ C6 o& F" ]% I! y: p
- (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "$ a4 e) e) ^3 h: ^% r: X4 ~; P
- "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )
% e/ n/ |* O8 {0 x - (defun c:LAYISO () (layiso)) (defun c:LI () (layiso))& X8 w9 C/ S+ S: Y3 I e" @# S
8 s8 k8 Y6 m/ a2 _- t5 [2 L- ;;; ========================= Layer Match ==================================6 b; E7 m$ K$ \( F1 z5 i
- . F, ]0 n/ X. u+ D
- (Defun LAYMCH (/ SS CNT LOOP LAY ANS)
, ?6 B6 n8 |3 b+ f, x: X1 R - (setvar "cmdecho" 0)
9 R* b& g6 Y( D; [2 w" S - (if (not (setq SS (ssget "i"))) (progn" f! d' U. Y' U) b0 X' D9 I2 E
- (prompt "\nChon doi tuong muon thay doi Layer : ") r$ h5 g l9 b: S6 H% H$ B
- (setq SS (ssget)) ) )
$ a+ q0 `& w, L4 l5 T- W6 F - (if SS (progn
0 t- X7 W' O7 I( v0 B - (setq CNT (sslength SS))
# G8 _" w3 p; C; G" {2 b$ g" q - (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "")
' v A% a2 @" V. M- Z - (if (> (getvar "cmdactive") 0) (progn
1 N5 l- _6 `9 T - (command "0,0" "0,0") (setq SS (ssget "p")
6 B# G" M* {, X. ?0 j - CNT (- CNT (sslength SS)) ) )0 k$ t( `1 _ A1 M3 M" p% j
- (setq SS nil) ) (if (> CNT 0) , Z: q* _% M0 K
- (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) )
3 ?% p; m& [" y+ T1 F1 A - (if SS (progn, [, w/ X: e8 q) @( k. c
- (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )
" ^. K" L0 h1 w0 x9 m5 z - (while LOOP (cond4 ^3 h0 M; j+ c( \6 e7 }
- ((not LAY)0 r0 l9 {2 C/ E4 A' }8 N0 }
- (prompt "\nKhong chon doi tuong.")6 B! c+ m0 b* M) V* K* M! v1 @
- (prompt "\nSu dung layer hien hanh? <Y> ")
' T0 e! K! B. p3 ~# T - (setq ANS (strcase (getstring)))
% R; B: h2 v( G7 ]4 a5 C) S3 \" \* p - (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
- F! i8 h/ C0 m - (setq LAY (getvar "clayer") LOOP nil ) ) )) ?* h4 K" e+ } L4 P( h
- ((listp LAY) (setq LOOP nil) )
$ A7 q( A6 ~' K - ((= LAY "Ten")
$ ^- }& B1 p' l/ z' m - (setq LAY (getstring "\n>Nhap ten layer: "))- Y3 ]& O: E7 o h" Z! s
- (cond
- V, f! A) ?0 } - ((tblsearch "LAYER" LAY) (setq LOOP nil) )
5 n% F# |1 p8 Y0 F( D5 } - ((/= LAY "")
1 g( v, J8 C1 r$ c - (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")
$ d2 U7 C, l. U3 e - (setq ANS (strcase (getstring)))2 g- A. x7 B. T, x* [7 p; [% l
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
9 M3 M' i9 X7 ]( T* k) M& S9 F5 | - (progn( g( c+ y+ }1 u, G" q, L
- (command "_.LAYER" "NEW" LAY "")
3 W" Y+ A! V$ b - (setq LOOP nil) )
+ G& l6 m* [! \' c9 _+ _ - (prompt "\nLoi ten layer.") ) ) ) ) )
0 f# e1 ?+ r3 c7 v8 \* B - (if LOOP (progn (initget "Ten")2 ?/ f2 {# H. \% X
- (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP/ W# e J% r ?* ?# }
- (if (listp LAY)
( C8 q% d: b2 O9 k - (setq LAY (cdr (assoc 8 (entget (car LAY))))) )) G/ t7 K. ?& T: F7 a* J/ L
- (command "_.chprop" SS "" "_la" LAY "")
5 x) s# ^1 k! ]4 z- M' A - (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )
) N7 _4 s( |% f - (if (= LAY (getvar "clayer"))
* k" t+ h9 H5 a- ^0 p/ V7 o - (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )
: r: g4 p' k4 W- j4 P - (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch))9 K5 o, E9 T+ O t3 f6 j3 Q8 \
3 Z* R3 g* B ~! L- ;;; ============================ Layer OFF =================================2 w8 \; C- C0 y5 q; ]# y! E
0 l+ [7 w) e3 S0 h& U$ m, {+ z8 L- t+ z- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE)
& |3 }0 u6 d8 L - (SETQ SSET (SSGET))
' r" A% L5 x+ s - (IF (/= NIL SSET)
1 l5 D$ k+ H) @. n& F - (PROGN
: s; x- \8 N( V% F& f2 v - (SETQ SSL (SSLENGTH SSET))! i+ j- T* Y- P8 o
- (SETQ LAY "")) f1 Q: J3 y# k* z1 O# V3 c
- (SETQ I 0)* m( z4 k) q% z/ C, I @1 T: P" q
- (SETQ MODE 0)
/ ]% ?4 [. U! ~' C - (WHILE (< I SSL)8 p# n1 k! d: `% }: B* O# n5 ^5 d
- (SETQ ENT (ENTGET (SSNAME SSET I)))# L' Z$ m& p7 n8 S1 G
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
( G! j6 X7 \7 Y - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))0 E( t+ Z9 g. t8 N& l3 y/ u
- (SETQ I (+ I 1))
" Q3 N9 p* _# F) d& c - )
5 O& z6 l' W. X4 G4 u8 U - (COMMAND "LAYER" "OFF" LAY "")
/ Y% l+ Y- X4 y, \3 m: g4 k - (IF (= MODE 1) (COMMAND "") )
) a7 j0 z3 Z0 F( r5 b: x - )4 W$ E: U3 r% @' I
- )3 [% a1 t+ v1 A+ B. |* \8 o# _4 ~
- (PRINC): \$ ]" I& F0 e6 b6 Y
- )
1 O9 D9 r! m$ b8 T# l8 u6 D* Y - & i7 k4 z Q. C/ c+ m/ y$ X1 {9 x
- ;;; ================================ Layer ON ==============================1 S& S1 s4 \$ P# c, L& v( v) S
- + G* l( ?) `# G5 ?
- (Defun LAYON () (setvar "cmdecho" 0)
) _* s$ g, m5 J3 Q; k* v - (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")
% X' k8 B- B! G1 L- U - (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))6 E$ p5 F# v* y6 H, v5 c
- (defun c:LAYON () (layon)) (defun c:LOO () (layon)): f/ e) B5 d, ]! } s6 g4 r
- (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))
& t' ?$ [% m7 c; @ - $ H) g, d3 M8 t8 @+ H( ^/ A
- ;;; ============================== Layer Freeze ===========================
" g: B$ o3 z6 k5 B8 ~# B- a
. {9 c7 F6 F5 m, \7 m% q- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0)
* k0 X" e2 K3 }9 g$ p1 ~ ~- Y - (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))
% [% f4 |' ^: C1 Y! k; O+ H& W - (IF (/= NIL SSET) (PROGN
5 M1 ]6 k3 L- P9 M' z, m - (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0)
% F* C1 z/ ^) d: v8 q - (WHILE (< I SSL)% V& S) N6 \2 v/ t' d7 i
- (SETQ ENT (ENTGET (SSNAME SSET I)))& u7 G) z2 q/ n1 Z: t
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )8 ?8 P7 P V/ i& C
- (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))$ n' }& g9 D" T: Q" s2 v+ S/ }* v9 L
- (COMMAND "LAYER" "FREEZE" LAY "")
- d+ B# u2 X8 d3 l9 ? - (IF (= MODE 1) (COMMAND ""))))
{- L$ \# V! P; i1 U5 ]" k8 L - (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)
4 f$ V5 G/ S' u7 r - (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )
5 y- u# i7 u2 q! r+ Z) @ - (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz))2 v0 t% R4 W7 W. m5 \
+ b- f# q9 ^9 {) B8 A- ;;; ============================== Layer Thaw ===============================
$ E/ z: P' w4 l0 ~" n$ ]1 f9 `
2 E7 U* P# N% W5 w- m- _8 k5 y+ F- (Defun LAYTHW ()- U3 ` o- p" U$ x6 S- }* u
- (setvar "cmdecho" 0)
. k: I7 l% _ q) {, j - (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")
& O2 Q( x: k" G5 \) L+ w. Q$ Q - (Command "_.LAYER" "_THAW" LAY "")* K S& ~; ~( C: @# ^' d
- (princ (strcat "\n Layer : " LAY " da THAW."))
7 {! S$ ^8 B7 T! c! P$ J% T - (princ) )- q( q( d: E( o8 f# K- ?
- (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))
. n% Z1 i! X: C3 E _6 c- Q7 q
: `( X$ m7 _9 o- h) T4 `- ;;; ============================== Layer Lock ==============================* c4 m% b Z5 a9 I
- % x: _# ~ X/ A% v' a( [. `7 h( x
- (Defun LAYLCK (/ LAY)' N2 W: @& q/ |" p
- (setvar "cmdecho" 0) B8 I9 K# e i6 I
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: ")), o! V& W4 |' G# \( K, Z5 b1 w% U k
- (if LAY8 `7 u* l; r) w
- (progn
! }" g/ D; T k: _ - (setq LAY (cdr (assoc 8 (entget (car LAY)))))
R" s# }" ^' U+ p/ ^ - (Command "_.LAYER" "_LOCK" LAY "")4 Q8 [9 h- Z& Z; m
- (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) ). |% K' Z( K+ |4 o6 a2 x, r3 z8 L$ N
- (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck)): _% _. Q' `4 c4 b
- * t( G. o) Z/ [ L; K) S! F
- ;;; ============================== Layer UnLock ==============================2 M9 W4 G/ `; K' ?1 o
- @& @, X. S* A9 J |- (Defun LAYULK (/ LAY)
% d9 k; |- N9 ?8 c - (setvar "cmdecho" 0)
5 n' B' d# z4 S a0 F# q( }4 j - (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))3 [8 F/ l; I' ^9 r h6 X# \% A
- (if LAY
# L1 @$ m' b. Z% U+ s' ]7 l9 K - (progn; e* b% j" B) n2 ]" ]
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))! n8 q7 \" y4 w1 o* V W$ g: w
- (Command "_.LAYER" "_UNLOCK" LAY "")/ L+ V z/ H6 y7 Y& {( m
- (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )
( g: Q" A# f( E* R( d$ G - (defun c:LAYULK () (layulk)) (defun c:LU () (layulk))
8 |% u7 C' b' U, V - & L, y! `, \ `2 B2 I+ u+ w
- ;;;===================== Delete all objects of Layer ========================
$ B" l2 a6 Q3 w$ k5 X0 [ _4 A
; Q0 d( B/ E' O$ k' J& u4 M- (defun DELAYER (/ ocmd L S) % O M, _6 b- j
- (setq ocmd (getvar "CMDECHO"))9 {! v8 j' d3 L3 U4 m6 i5 V
- (setvar "CMDECHO" 0)
' W1 L9 }& M& j% @+ N6 { - (setq L (strcase (getstring "\nLayer(s) to delete: ")))2 Z0 J L- u |7 W8 x# N H. b
- (setq S (ssget "X" (list (cons 8 L)))) 9 d3 n* W w$ g9 u0 F+ u
- (if S
" {+ A# n# s. {2 m) e7 A: x- I9 C* z A - (command "ERASE" S "")
" E0 S6 d, E# N9 \3 J# a+ S2 @ - (princ "Layer empty or not a valid layer name.") )
" u0 X$ d6 b; D+ j8 k* L - (setq S nil) 8 A7 O9 R7 v% k* @+ d( \
- (setvar "CMDECHO" ocmd)
0 f. E5 x6 }# u; B# J; b- v - (princ) ) 5 D) T8 }8 @& |& H$ y
- (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))
! e. j+ N/ N2 w* e I1 L. r: V( p6 s
6 v) \! i% p. U3 m: s6 Q- ;;; ========================= HET CAC LENH LAYER ===========================
' S. D- ?8 W$ w2 \# a: l } - * v+ o0 y$ y: V/ L" X5 P: ^
- ;;;====================== EXTEND NHIEU DOI TUONG ===========================
5 y2 K* ^& k5 U" _. W% {, l
2 Z, J4 ]+ w; |- (Defun C:EET ()
" H6 S! v. Y/ C* | - (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)
! t! p; Q' Y9 t$ C+ R - (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget)). L" M6 \9 ]# a! r
- (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS)): j. G) c" S* ]' ^) M0 v
- (Setq I -1), i+ @$ N$ v* L3 X
- (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG "")
+ G" y: S# z- m( n: w& r; h - (Repeat LEN0 d$ V, ]* g- a+ r
- (Setq I (1+ I))
9 f) a; B, s: ~) d - (Command (List(SSname SS I) SIDE)) ) (Command "")
/ C0 Z; m: K( y9 K, T - (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) ) B. b! d$ N" [8 ~2 F
- " i2 k. |. T {2 L7 A
- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============
/ Z- ^- n) B. e# o7 h9 K - ) \: j* W+ @& T _1 o# q% O
- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)/ ~/ {/ V3 s; U2 |' L0 ?1 E3 b
- (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND "))
# s) M' n/ |9 B( h; g. n- ? - (setvar "osmode" os)
5 v9 e# m$ G1 S - (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))
& c$ n7 m8 [5 e3 B3 S - (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))1 P3 M+ Z- \0 R1 W+ h4 `4 a
- 8 x/ e+ i* Y* s
- ;; ================ Change width of polylines =========================( Q" q w* g' Z: u4 h' q3 V
' H3 `1 _4 u0 {- (DEFUN wp (/ a b sophantu sodem list1 ha:wid): }' u9 Q) S5 ~3 e$ S* N
- (PRINC "\n Chon doi tuong can thay doi do day (Width) !") - f! y0 {7 B p5 @, C I! J
- (setq b (ssget)) + H& ~$ @. B* I5 e
- (setq sophantu (sslength b)) * @! f6 `0 k7 v
- (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
$ F& t/ N, |. _ - (princ "\nDo rong polyline <")
0 D, _# K+ |$ S& V6 i - (princ ha:wid)
( w" u' D- T9 x1 q - (princ ">: "), I3 V" M& Y$ |; H
- (initget 4)
& m# l; c" k9 g* j% f+ \& w& g; } - (setq ha:wid (getdist))
2 R$ p+ u2 ]$ [, c5 j% y - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
5 i, }# U* n& R( N# g9 e: ~: x0 O+ L1 r" \ - (setvar "tracewid" ha:wid)
+ l3 Q9 G4 [" b" a3 r. t - (setvar "cmdecho" 0)
$ C- Z# k# j% M$ z# H6 K/ s - (setq sodem 0) # w2 g; Y7 l3 ~, R
- (repeat sophantu
' K1 H; E) m2 \0 q/ L8 _1 h/ \2 C - (setq a (ssname b sodem))
" y- w+ M' J' I! c9 U9 A& I6 c, }8 X - (setq list1 (assoc 0 (entget a)))& k4 P* V) I8 }; U8 a
- (cond
+ Q# R# K0 b* P* |2 o/ k Q# _ - ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))
) k$ W9 i! @0 c- d. o2 m - (PROGN (command "_Pedit" a "" "w" ha:wid "")) ) . b" p" r6 a2 A! m6 |$ T2 u
- (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))/ x+ A# C% l( w
- (defun c:wp () (wp)) (defun c:pw () (wp))
( M+ ]( y% Z& Y! e' H - 6 n0 p: J4 \0 }& }% _, D7 {) `3 F
- ;; ================ Change radius of circles ==========================: X" R' i% q) y8 H$ |% `. y* f+ c9 O. c
- : v$ p0 Z8 C- j! N ~( l; r
- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))
9 q/ H- r4 ^/ g8 v - (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : "))
* G. _/ E2 H, d8 h6 q1 a - (IF (/= RD NIL) (PROGN (SETQ I 0)9 p. o n% R1 V! R& n2 \- R3 m# Y/ v
- (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )* ~ ~9 D' V X8 l/ G$ B, s# C
- (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN
; l; e I* n" h- Q6 u - (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )% D+ o3 k: j$ Q3 j0 Y( D2 p# P" B& \" N
- # z" T7 s7 T: J# z
- ;;; ============================== TEXT Hight ===============================
R z+ h- _/ F2 o; M; I% H" T
" i1 p7 {5 ?: R+ O1 a- (defun texthght (/ ent hght)& ]. n- T) B6 L' b; S. s5 n
- (setvar "cmdecho" 1)
' X9 o" D% T" S# k! C: S - (prompt (strcat"\nSelect text entity with required text height"))
0 ^# ~% ` c+ {+ G6 O - (prompt (strcat"\n."))
9 B% b: a" C% {* P& x& }, B - (setq ent (entget (car (entsel))))5 P a% ] I5 I) m- x0 A! U
- (setq hght (cdr (assoc 40 ent)))
# ~# R* g# m g - (prompt (strcat"\nText height now set at "))(prin1 hght)
9 ^$ S/ C: B5 ~) U t( G - (prompt (strcat"\n.")) & p! m8 d, C' `8 m: S+ F) s& @, n
- (setvar "cmdecho" 1)
3 y- p+ T0 n# x - (command "DTEXT" PAUSE hght "") )
& ^/ K$ z# ^' c9 q' a - (defun c:teh () (texthght)) (defun c:texthght () (texthght))
& X5 U$ l1 X5 x. \+ ]# {6 g, u. H- e1 e - + Y Y1 V8 p' Q+ }* S" D; G
- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================/ l$ D( ?8 e0 v% X: }
! O1 m+ b3 R" w. }- (defun c:tuu () (setvar "cmdecho" 0)/ K8 D6 W2 m) P$ g3 l4 M8 {
- (prompt "\nHay chon dong TEXT can gach chan ")
6 w* t, c1 n1 M2 [4 g$ m - (prompt "\nSelect objects: "), _- q; B4 D0 E: W
- (command "select" "au" pause)
- b' Z" O4 v& V: s - (setq sstxt (ssget "p")
! b' B8 [8 J5 R+ K - sslen (sslength sstxt)
) a/ E+ G- T7 y# h* n - ctr 0 )
% Z- Q5 b; k1 W% |0 f( W - (command ".undo" "mark")
7 K3 { F6 D- K2 U8 ?+ d1 b - (while (< ctr sslen)
: x- H) l& T9 D! F' L" E0 |+ t - (setq listxt (entget (ssname sstxt ctr)); w9 E7 O0 S! W% @7 I
- txttxt (cdr (assoc 1 listxt))1 v6 h* H9 @$ {, c- q3 v. W
- enttxt (cdr (assoc 0 listxt)) )9 ?: A+ e5 O) x8 F' d; c2 M8 Z
- (if (= enttxt "TEXT")+ [5 g! R2 y0 K
- (progn2 W# o. [ j, E+ R5 L' @( y1 s6 \
- (setq testxt (substr txttxt 1 3))0 u) F: g7 |" O; I w) d
- (if (or (= testxt "%%u") (= testxt "%%U"))% g- q* P$ } e4 g6 T) X1 _
- (setq newtxt (substr txttxt 4))
" t0 b0 H! L) g7 p8 g4 B - (setq newtxt (strcat "%%u" txttxt)) )
5 u. g7 N) W) A( @ s- k, ^ - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
; a6 B! `1 F! S* K- `, d5 A: h - (entmod listxt) ) )
) a1 |9 Z7 p2 p5 M: W" V - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))# D& J' h$ Q. W3 v+ k
- O8 K! u, G& L
- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
D: Z; w9 P, V. \. J/ ?- x# k# | - - k3 t% b' v2 l# T$ {
- (defun c:tob () (setvar "cmdecho" 0)
, \& v2 [+ ^. C2 _$ d - (prompt "\nHay chon dong TEXT can gach tren dau ")
+ h- k: m3 `5 _5 Y, C - (prompt "\nSelect objects: ")
& D4 }5 c/ {+ g9 ~, o - (command "select" "au" pause)
/ u7 O2 M: Q& Q( p# A - (setq sstxt (ssget "p"): @ B0 P3 }: L# x7 l# V6 z, a7 ?" c
- sslen (sslength sstxt). ?/ K- s! r& q$ a* \* j
- ctr 0 )5 S" D# Q! }. ?$ g
- (command ".undo" "mark")4 K5 z% h; P C, N2 a* O5 G$ J
- (while (< ctr sslen)
0 B/ Y9 J: X( R- i - (setq listxt (entget (ssname sstxt ctr))) v- ]$ g. w2 ~- o
- txttxt (cdr (assoc 1 listxt))
4 P6 i1 `0 v) u1 E - enttxt (cdr (assoc 0 listxt)) ); C* r4 p( v( A/ S8 L: o
- (if (= enttxt "TEXT")! Q% c2 @# _1 {6 L/ L- n( F& k
- (progn
2 Q( U" b! f2 W9 B: C) a! y' } - (setq testxt (substr txttxt 1 3))
2 t# n0 U* u" Y$ M$ G% h - (if (or (= testxt "%%o") (= testxt "%%o"))/ U/ q' _- E1 b" w% f
- (setq newtxt (substr txttxt 4))% J& ^; J1 W0 d& [3 h8 v
- (setq newtxt (strcat "%%o" txttxt)) )
) V1 P* v- {' O- D. h% f$ [ - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
; r% T: } W8 h1 |% E - (entmod listxt) ) )
6 b( d# S; s1 y) O2 s' N - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
, p. q+ I+ ~8 i% L% l: n2 w
* G/ X: C* C( j. E' r' B- ;;; ========================== Tim & thay the TEXT ==========================: j0 ` F6 x2 \
- ' m I1 \5 F; a- H0 H+ q' U
- (defun frstring (str search replace / str1 str2 index find)
1 T& S( N- x u: Q8 E' t - (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))# h! p$ u6 A s, }0 [0 g8 g
- (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))
) G! H# H4 x6 c2 A [) N$ J; V' Z - (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))
/ @7 U2 d6 `/ p4 o) x4 Y& \4 N - (defun hai (/ dial)7 y- j1 O1 O' t7 R
- (setq dial (load_dialog "hai.dcl")) ;;goi dialog2 j+ u- j. }9 L
- (if (not (new_dialog "find" Dial)) (exit)) ;;/ Y% l) p4 p( B0 B. k" @8 r4 r
- (mode_tile "find" 2); Tao dau nhac tai hop thoai4 ?% J! ?3 Y- _) O1 e4 M4 B/ J
- (action_tile "find" "(hai1)")) i% t1 l( B' t& _$ U2 B! s
- (action_tile "replace" "(hai2)") \ E, ?! C' m- W4 ]1 W
- (action_tile "cancel" "(done_dialog) (exit)")* N+ L, j8 c/ K3 c
- (start_dialog) * E) A j6 Y3 Z ? ]8 F8 ^: [
- (unload_dialog dial))
8 e5 i2 {$ q( U" R( z7 n& n. O - (defun hai1 () (SETQ str1 (get_tile "find")))7 z2 t7 q, F1 T% j/ O
- (defun hai2 () (SETQ str2 (get_tile "replace")))
# c( y: W( l% n/ o& j
3 t' U9 T( T e! ~- (defun c:TTT (/ a str str1 str2 newstr taphop sodem)
$ Q! h5 D9 l1 ~( M- v - (hai)
4 p! d3 h2 S0 P9 [; S5 e _ - (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le")
. L4 w9 u0 p& T) Y( W* ~% L - (progn
3 v$ z& l M5 o( y; s+ z; m9 t - (setq taphop (ssget '((0 . "TEXT"))))
/ U# Z" h' V8 d - (setq sodem 0)* s! j4 g. ~. K( g3 N6 c. S# c
- (if taphop0 ~8 W5 }: J: d) u9 b) n2 |
- (progn
& N$ q8 w1 r$ @/ h l% W, K( w3 t - (Repeat (sslength taphop)2 y. ^ X* x( n! ~! ^
- (setq a (entget (ssname taphop sodem)))" A. n L! x1 i0 P Z# C2 h
- (setq str (cdr (assoc 1 a)))
" ]4 i% m; l c2 Q - (setq newstr (frstring str str1 str2))
7 R. @ R$ w t9 V. Z0 ` - (setq a (subst (cons 1 newstr) (assoc 1 a) a))
& b7 q7 ?% c9 z; [2 A E* u6 G/ y- c( F - (entmod a)
& s( ?: z% z, t" N: L1 E2 W - (setq sodem (1+ sodem)) ) )
; D2 x7 U! s, \8 L a" U - (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))
/ k( z }2 w G5 [. `
, I. }9 Y* [& k0 F- ;;;============================= CHTEXSTY.LSP =============================
# h8 R7 ] s m5 g& D6 M! X Z v0 |
2 b( _& K4 x. S. n+ b5 ~- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST ")0 B# p7 z# q; ~2 K* e3 w/ _# G3 v
- (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))
; r, ~* Q3 J4 q- l* j# @ - (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))
4 w9 n2 |0 s3 h9 F - (Initget 1) (Setq C (Getstring "\nEnter new text style: "))9 \9 b! h; b1 w1 V" v( D4 F
- (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))
4 }+ U. t% K$ d - (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C))
5 N; ^1 L/ J6 U - (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))5 H! f T, {% u) b8 y
- (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))
* q% o1 x+ h0 |, v6 V - (Initget 1) (Setq A (Strcase (Getstring, r* J6 V. j! o
- "\nEnter text style to change: "))) (Initget 1)
: T4 T L) ~5 Q, Q$ h - (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext))
. g# V) x, I) _ - (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If% o& k5 J" b5 a- u6 a
- (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))
2 `; R: C% f/ m; D8 ^/ C e0 K - (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))
( j- \: v+ \9 b- _8 p8 i - (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J))
6 D8 A% d8 x1 c' C - (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))
5 u4 M& {0 ?0 B8 b
! w( O. g/ d$ ]7 Z4 a- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A))
# v# W1 K* I( U ? - (Setq J (Cdr (Assoc 50 A))))# E* x0 M8 f$ z) b/ w8 @* S
- e5 k% k+ |/ M) x
- ;;; ============================ DRAW CLOUD =============================( Q7 Z' u5 g$ R7 t4 C/ O
- 4 c. q2 ?% l* \
- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)
! \, v& {% x: w7 m - (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")# \# Z* A5 L. N! a3 X3 n
- (setq la (getvar "clayer"))
7 f" z! y' @( c4 d2 ? - (command "layer" "m" "cloud" "c" "5" "" "")
% r6 J) d* |. W* K& J/ t, b - (setq pt1 (getpoint "\nEnter first point of Cloud: "))
% B$ {2 P! Z6 }* y$ a2 t - (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))0 ?% N9 p7 c1 H1 X: l
- (setq cnt 1 ss (ssadd))) f, I' G, M( T) o3 d3 R- L
- (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))
& c, _1 j3 T8 @. f/ ~4 k - (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75))
: ~1 N, x/ i Y2 s9 u" D - (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))
$ R% L3 s' J4 R" o - (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0)
0 p# @# j) K* X# g2 C/ q/ V3 k4 ?" a; v - (command "pedit" arc1 "y" "j" ss "" "x")
9 _% x2 F+ K; z' d+ f - (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)" R5 N* f( G" b8 D4 r- ]; L
- (command "layer" "s" la "") (setvar "cmdecho" 1) (princ)) w/ l( h: y: L) U
- (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))
+ O8 D2 S$ G* S3 O
- W$ S+ d. N& S- ;;; ================================ Funtion-Dulieu ========================
! V [5 s* v( x - ;;; ================================ Funtion-Dulieu ========================9 n' x1 T0 r" h; v( A' L
- ;;; ================================ Funtion-Dulieu ========================4 W) u1 C- G. Z
- + H% C( j# k/ `2 b4 ?2 H
- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )
7 b: T) H6 k: T - (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh"))
& v% M; _% M5 n, U) l- \+ J& w - (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))
! G- P) J4 Q. k* v2 V1 _ - (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) )
# b1 d5 u2 p) A2 D; `# Q# D3 y5 O - (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))
4 G: h: J. ]6 c7 W1 M - (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))4 L8 E; F) z3 T8 v2 t' d/ L
- (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))+ ^5 \5 f: g5 o3 x
- (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))) m4 m$ ? U6 K% _" l
- (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong))))% F7 W6 m, o1 e+ v X" J
- (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)))
" C" ~# A: |* Y* x - (defun dtr (dtr) (* pi (/ dtr 180.0))); P' t7 n N1 X
- (defun rtd (rtd) (* 180.0 (/ rtd pi)))
( X3 a1 G6 v+ D) L8 |
& P! V" ~8 ^( Z9 m; M3 ?6 E- ;;;==============================PROGRAME===============================
$ }# v& ?+ @" v" k4 K- |6 M6 x - ;;;=====================EditDiM Hien Hop Thoai Dep======================
' W {1 B F% p: B+ K - ;;;==============================PROGRAME===============================
5 W' N& r, k- {* m - $ V1 B$ Z! Q& f; G1 ^
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
/ X! s+ i: Y2 ~$ v' J - ;;Chay Cung Du Lieu.Lsp & Hai.Dcl- ]/ d/ r/ X+ X) q8 K4 B# O$ f
- (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)% L0 v9 B% j- H' C8 C0 u, A" n
- (Setq Oldlis (Entget (Car Chon))
& R0 E0 L( N" S5 M6 H ` - Pt10 (Cdr (Assoc 10 Oldlis))9 ^5 |# h; ?- y! U \, g
- Pt13 (Cdr (Assoc 13 Oldlis))
' e# F. z# q7 K* q1 { - Pt14 (Cdr (Assoc 14 Oldlis))
) Q2 I1 P+ e/ x, U/ i! M/ I" O - St (Cdr (Assoc 70 Oldlis))
- ^# V$ U# E8 ]4 x7 D& | - Dimdefault (Cdr (Assoc 1 Oldlis))
, q/ J! D, G- u - )+ `5 e4 s: q9 z! e
- (Cond
9 i7 `6 ?# K+ D6 C - ((Or (= 32 St)(= 0 St)(= 160 St))) g) P2 P) ]* @7 w6 N) E. W% o& k
- (Progn9 P; X J' I$ K4 _# p
- (Setq Ang (Cdr (Assoc 50 Oldlis))9 C( X3 k0 H( R9 @: ?, l$ s8 W* W
- Pt (Polar Pt13 Ang 500)4 K' z4 P! o2 M
- Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
8 t1 O! {0 Q9 {3 a - Dis (Rtos (Distance Pt13 Hc))( A r2 H2 s9 D, A) \) g* u0 f: a
- )
# ^, ?! ?* z5 |4 ]3 o6 T( }4 { - )8 c: V: _( }6 O* q d9 P5 L
- )
2 a1 }2 H! o1 [ J/ t8 I - ((Or (= 33 St)(= 1 St))7 ? P z" x: `7 C
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
k: j) g- t' ]" k$ y+ V, C - );;End Cond
, a: _, X+ K4 i: v - (If (= Dimdefault "") (Setq Dimdefault "<>"))
7 v- h9 r/ j7 H" f6 H - (Setq Dial (Load_Dialog "Hai.Dcl"))
& _9 I9 v3 I+ {. h4 [ - (If (Not (New_Dialog "eddim" Dial)) (Exit))8 ^2 {2 a" J/ ]% p, \: j4 U6 |
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
0 r5 [4 z) s4 A$ k - (Set_Tile "text" Dis))
7 U: r! F" Q3 f* ~2 ]" r - (Set_Tile "ha:edim" Dimdefault)
+ t0 S8 p* V$ @6 w$ ` e4 _ - (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
4 W- N0 S: C& a - (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")3 B6 ]/ q( \. `8 t
- (Setq State (Start_Dialog))(Unload_Dialog Dial)
C4 B% q# }% f - (If (And Str (= 3 State))3 l2 M5 E1 k0 d
- (Progn2 ^8 C! W+ _3 ^$ c* b/ J8 y0 U
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))- T( }/ {. U$ c6 o7 ]/ Q# T
- )
9 q1 m; B" L; M. Q) u$ J! f2 l: I - (Defun C:EH (/ Chon Name )8 F: K$ ?1 Y# n1 L! K+ o
- (Defun *Error* (Msg)4 Z8 M; T: \8 G0 p: q& N( m, G
- (Princ "\nerror: ")(Princ Msg)(Princ " ")
$ Z; Y" `! U0 V: Y. R - (Start_Dialog)(Unload_Dialog Dial)
1 }3 [: ]' ~$ x6 @( I5 h - (Setq *Error* Olderr)(Princ)
- v! L- Y* r& |3 P; S6 w - )1 e7 v/ Z6 t8 s( p- ^
- (Setq Olderr *Error*)
# N# `5 _6 B! Y5 x& ~& q - (Setq Chon T)/ Y( @/ b, k+ ~( l* U# U% z
- (While Chon
2 Q( R8 \* O; D4 J3 p2 l& h - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))* P; w7 p% L6 G% F2 Y3 |. n* O
- (If Chon: A7 p U. D, o2 L o2 S
- (Progn7 {" S8 G! w( B
- (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))% n( X0 ^2 } T5 Y2 ?
- (Cond0 S, P( O* X' |. D
- ((= Name "INSERT")(Command "Ddatte" Chon))- W* G' u% i( z
- ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
% F: i9 f8 v2 b3 g- I - ((= Name "DIMENSION") (Hai_Edim Chon))! L. d6 y1 s0 N+ X# r ^6 N- e
- ): X t4 d: z% ]; |8 l5 ?( b* t
- );End Cond
$ E2 O5 F4 L+ N - );End Progn% J* a4 {, p0 W6 i& R
- );End While$ X: G' @7 X1 m: A+ U2 s2 k
- (Setq Olderr *Error*)(Princ)
& s- f7 `. X1 e3 Z R2 t0 _+ A - );End Program9 b9 L) k. g+ X" i+ y" c, R
: M8 F9 q3 y, j! I- ;;;====================DDeditDim=====================. i% a1 g9 ~1 e" i6 T, g
- ;;;=====================Hai.DCL======================
6 J6 y7 Q/ G2 u3 W0 B - ;;;====================DDeditDim=====================9 X6 N8 t4 x$ j
- + j/ w8 v# r+ T
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
2 m) L1 S/ X. w; }5 Z: y - ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
* V0 Y: p) B; e' _- u - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)( \) x+ p/ Q" P# i5 q- x: R/ _7 C2 M
- (Setq Oldlis (Entget (Car Chon)), T: Q9 E1 A7 A( I7 |
- Pt10 (Cdr (Assoc 10 Oldlis)): j; \# @+ l9 @9 v' b. N) P
- Pt13 (Cdr (Assoc 13 Oldlis))
# V3 U- x* d7 l3 ^+ z - Pt14 (Cdr (Assoc 14 Oldlis))9 _/ O/ b) x! K3 C G
- St (Cdr (Assoc 70 Oldlis))' S. z. B k, }/ V( h( F
- Dimdefault (Cdr (Assoc 1 Oldlis))2 ?2 n0 |8 C2 u5 x. f* K2 k: |
- )
/ H2 `6 |+ I- i/ e5 r+ @% L7 J - (Cond
+ {0 A# C4 [8 D+ i - ((Or (= 32 St)(= 0 St)(= 160 St))
& `% b3 i9 m2 z5 n V7 w$ N2 a - (Progn
7 |& G* `7 x# O* O& P$ h - (Setq Ang (Cdr (Assoc 50 Oldlis))
7 {: W( D) F8 B5 E7 H; C$ J1 h - Pt (Polar Pt13 Ang 500)
2 L; K, w$ K! u6 Y - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)! k, c, y ?) a! `/ G
- Dis (Rtos (Distance Pt13 Hc))
$ Z& s5 b2 ?, A9 a- R - )
+ s' R$ m7 o# k: z0 ] - )
+ a' [; J- O5 V; u5 u. P+ f9 B - )+ x, c! ]. L+ [0 q
- ((Or (= 33 St)(= 1 St))! H* l3 e {3 j. M( l. J" h# t2 j
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))! B' }; p6 G& D9 m7 B
- );;End Cond
$ ^/ h4 s( H+ c9 O: S1 H8 E/ h5 F - (If (= Dimdefault "") (Setq Dimdefault "<>"))
: h0 V% d; n7 G - (Setq Dial (Load_Dialog "Hai.Dcl"))
5 Z- q% b$ T& {+ j; [* c& T" s - (If (Not (New_Dialog "eddim" Dial)) (Exit))0 Z( K, ]: G. d& k6 h) w
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
! F( ?! p6 L3 b. V - (Set_Tile "text" Dis))0 k! V( i F& {5 g1 K2 D$ n7 _
- (Set_Tile "ha:edim" Dimdefault)
+ u* s1 D5 r) n4 [- J) b - (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai* e! z: K1 G( I$ P3 m9 w2 l) l
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")( N% i* j. _) X
- (Setq State (Start_Dialog))(Unload_Dialog Dial), B/ U* W) ~, R6 N
- (If (And Str (= 3 State))5 c" b% k+ l$ [: p; i- `4 ]% F+ Q
- (Progn
9 q( _- o# q6 I* k+ } - (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))2 @5 t6 V. ?: a: j- k7 u& R
- )
6 d4 d: I1 P3 E/ [) P& v. f - (Defun C:EH (/ Chon Name )# G/ z$ D* h' U6 Y
, A8 w, q7 |2 f' m! e" e1 _- ;;;********************Du Lieu********************
' x+ S3 _, H) n) ]' W) M3 l - 3 G- z6 y) o( a8 N# r7 g! R
- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))
- h. O7 k# P3 @4 Q7 D - (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)% _) ~1 N7 x) c0 I; N- ?/ c* i
- (If (And (/= Hacat1 Nil) (/= Hacat2 Nil))
4 p! q" s# I- x6 V( k$ C - (Progn
, X7 D, |$ q l. k& }+ Q* ]% D5 { - (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))3 j$ Z+ P s8 V8 M. C0 `
- (Setq Chon (Ssget Hacat3))
, ]- j+ _4 i9 T( Y - (Command "Break" Chon Hacat1 Hacat2)
3 d* @) E+ W( G/ V0 e. \ - )
% K* C! q* J: `6 \! Y - )
" T4 B9 I- Z5 L% ^ ?2 f& n - (Princ)
" w- d3 I m4 E% D' a. H1 | - )
& z% S1 Z0 b1 { - ;;5 Q+ T$ a# i* m; ^
- (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))
/ C; c r7 l! m# ^ - ;;! S1 Z( E4 }0 N( T
- (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))
( W) s7 k0 c% y6 O9 Y6 j4 ]) H - ;;
& j( \8 D5 a8 q' f7 Q% E. q/ Z - (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))
* _) o: W5 x k$ p - ;;
% [1 r! B' n5 v2 ~+ R - (Defun Reinit ()(Setvar "Cmdecho" 1))
1 X) Q" i! _% {+ }3 x - ;;
" g( o0 Y K+ G - (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))! w, |- s( f# X A3 |$ }% k O' b
- ;;4 D! p+ R" Y7 U+ J% [8 Z- N
- ;;Cho 2 Diem Tinh Ra Vec To Phap
0 c) J$ Y- C) i) l& b' t; k/ ~ - (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))
: |6 N8 n+ q7 i+ L7 Z$ } - ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang: p7 g" L( c. h1 v$ {) f/ M
- ;;Da Biet 2 Diem Thuoc Duong Thang
! D( }& C: e9 q9 a - (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2). l2 B3 y% K% e6 ]
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
. Q' i! Z5 X d+ ^ - Hc (Inters P1 P2 Dc1 Dc2 Nil)))* D7 z' q' c8 n1 @
- ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang4 p* R) Y6 ~# d* i2 q. L
- ;;Da Biet 2 Diem Thuoc Duong Thang; W s+ L/ { k0 z; I% S
- (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)4 g" l0 e, x; Z# b+ N/ `
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100), _& T; x. e9 b& ~1 U0 {, A7 x1 B! U
- Hc (Inters P1 P2 Dc1 Dc2 Nil))5 a& q" a9 J2 v3 U7 u0 |
- (Distance Dc1 Hc)3 K0 }' R+ o# r/ p/ @. t! f8 z0 w5 _
- )
* O3 w& }$ O* d2 O9 w' m - (load "nhapcua.lsp"): l: @* i" ^0 A
- (Defun *Error* (Msg)
: i/ A% I3 Q$ g' E1 D" }3 h" R& Z/ u; L - (Princ "\nerror: ")(Princ Msg)(Princ " ")
) m' }4 b7 N t3 v7 e: [ - (Start_Dialog)(Unload_Dialog Dial)
7 u& d9 x8 |+ U: l( X$ W0 s1 I) { - (Setq *Error* Olderr)(Princ)/ n" s5 o0 l4 w/ J6 `. a& {) ^
- )
2 q- z# ^7 u- g# J: P - (Setq Olderr *Error*); v& t" V( I" z2 F/ ^
- (Setq Chon T): V8 O) G+ s# s" R0 B
- (While Chon [0 N3 b n* W
- (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
C# I4 T& e% ?" u0 z5 k7 s - (If Chon
4 o5 _! e" N& r6 {1 ` - (Progn
3 Z+ ?% t+ b% F) ] - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
6 D- z7 T+ F5 ^ - (Cond8 T, Q# i6 ?& J' T
- ((= Name "INSERT")(Command "Ddatte" Chon)); o# A) c3 K8 u$ D0 ^: \
- ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))7 t+ s- M$ \0 R) ~* D+ a
- ((= Name "DIMENSION") (Hai_Edim Chon))
- K1 e! f% F# t/ H - )$ b7 c5 h. t% y4 s! C
- );End Cond
) a* R. h! C) A) t - );End Progn
2 s* `1 s; N6 i2 Q" e - );End While1 y$ A( X0 o5 Z- t2 p0 j7 ^" k
- (Setq Olderr *Error*)(Princ)9 v! {. [3 `1 i, A0 t( i
- );End Program
* F9 W- k4 [7 } H7 p* r
0 t/ W, K6 ^, S: g( g9 y- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================: i- J" @# c4 |4 A* {+ ~1 x
- ;====================================Nhapcua.LSP====================================; H! r B! Z T* b/ B
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================- N! q0 L t8 T" J# [
9 l* B' d6 K {- " W. o# y& x l- P9 c
8 l( F7 u& `2 V% B: Y2 _- ;*******************;*******************;*******************;*******************4 i: Y- j) J% _
- ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U***** a+ c4 u# W; j, H
- ;*******************;*******************;*******************;******************* _) H: E4 `2 |7 v
- 8 d1 \3 h+ J1 b5 B: {9 r8 J
- ;VE HINH BINH HANH
8 l H! K% y1 x6 \2 f7 A- V% p - 5 a0 O3 q0 k7 i* ?
- (defun c:binhhanh (/ p1 p2 p3)6 Z+ U8 U& ^9 J
- (setq p1 (getpoint "\n Nhap diem thu nhat:"))
2 a) Z: X7 N& U8 j8 a' b2 e9 Y - (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))
, A; q& g/ i, I: W. \( M, _# ` - (setq om (getvar "osmode"))! f! I r2 M, h+ u3 T1 J
- (setvar "osmode" 0)
# n. k0 w1 B' p - (command "line" p1 p2 "")
) i" |6 y0 G1 i' y - (setvar "osmode" om)
9 s% ~0 N1 B* m3 Y. I - (setq p3 (getpoint p2 "\n Nhap diem thu ba:"))
( m) T* ]1 v+ k( H; d - (setq a (angle p2 p1))
7 n2 }: F e3 ] a& f8 c - (setq d (distance p1 p2))% s# g5 ]. ~* A! ^ n* Y
- (setq p4 (polar p3 a d))
8 M& e0 b6 T8 I* B4 W5 t3 M - (command "OSNAP" "none")
- _5 i- D9 Y" g# B | a* \ - (command "erase" "l" ""): Z0 p* r7 \2 c& @2 w. ~5 \
- (command "pline" p1 p2 p3 p4 p1 "")
6 z$ |, J x5 }) P* a& q1 f2 i/ _ - (setvar "osmode" om)5 j9 F: C/ L( N
- ) J. a8 {+ K% B/ x/ r7 c% F
- 6 \9 o, s0 n* q& c
- ;VE LUOI COT
1 C/ [5 n- T" O& C) M) {: _; v
( i8 J3 o& P! f3 W! Q8 n: T- (defun c:LuoiCot ()
" D" P& V/ a y* s$ M" n1 ^ - (setq om (getvar "osmode"))
2 {- h* J- T' U7 f i# ~! @ - (setvar "osmode" 0)3 T8 \. ~2 y6 _: n, f" v% ~
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))' _+ f+ u$ @2 A' ]. R
- (setq p0 (getpoint "\n Chon Basic Point:"))7 O$ w+ R1 Y* R! u' V" R
- (setq nc (getreal "\n Nhap chieu ngang cua cot : "))) S3 Q0 I2 I2 G8 A. a+ n& Z+ X
- (setq dc (getreal "\n Nhap chieu doc cua cot : "))" L) S& e a1 Q
- (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
' q K3 U$ s i% W8 z4 Y' r - (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )# l3 N0 `' {' D* @2 a
- (command "rectang" p1 p2)% y4 G2 [' O# P, @* V O' n
- (command "hatch" "solid" "l" "")$ n) M4 G, |: V9 r
- (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))" t) r2 h- D( X* Q4 ]. l
- (setq nn (getint "\n So buoc cot phuong ngang : "))9 @+ @" ^% k9 m2 ^0 {# w: G
- (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )! g$ ^2 U% k, ]8 U+ u3 w
- (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
0 @4 j. _+ N6 N- L6 o - (command "select" "w" w1 w2 "")
4 V8 s, e% e7 J/ J0 V - (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )# U& b3 \; d' c5 X& b
- (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")
7 k# B9 q Z' y: @! c+ f* H( `0 Y0 M - (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))
2 W: r" f* l# p% O, T- F+ D - (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) )), a% f0 U! ~- y" a2 s5 m4 g
- (command "zoom" "w" w1 w2)2 n" n% \4 ^5 @4 p" R6 M3 c- X: d
- (command "select" "w" w1 w2 "")$ [6 j i$ {( C, L
- (setq bcd (getreal "\n Buoc cot theo phuong doc : "))5 i! i# I: Z$ f+ ?6 |' A
- (setq nd (getint "\n So buoc cot phuong doc : "))" I1 U0 }( _9 y/ z
- (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )
# K1 V" {3 M; O) [0 u6 ]0 W - (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) ""): w0 x4 e6 ^% ^5 X3 F
- (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )
/ U1 z* U0 z. w u4 v# |1 ` - (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) )
, V5 ~1 i( L: N/ G+ i - (command "zoom" "w" w1 w2)5 }. h; z& X( S3 J* t
- (setvar "osmode" om)
$ ` g6 A8 O' Z8 N( { - )/ \' W& W2 o. t8 x0 w' y7 ^3 A
- & A7 d" ]6 i! @2 C+ A$ C; j2 o
- ;VE CUA DI- a9 {& y" b; p0 @
$ `( w# _- I% z1 w( N- (defun c:cuadi ()
} k5 q9 b4 o7 X - (setq om (getvar "osmode")): I4 i/ N6 t3 o# K& p" g
- (setvar "osmode" 0)
% l/ }) y$ D1 ^0 t/ s# k+ t& j - * v5 e5 ?/ e7 w! Z
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
* G1 M- J' y. M; \ - (setq b (getreal "\n Nhap be rong cua : "))
+ ]. `( U$ ^" o& V - (setvar "osmode" om)& L, A$ o( d, j- e, z
- (while (< 0 1)
$ W/ ^9 O. q, y1 @4 C, T - (progn# B! z( }6 m+ q. g
- (setq p0 (getpoint "\n Chon Basic Point:"))+ P" z$ o& P/ d* S' X
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:"))! J9 O1 s/ H' x$ J& D8 c
- (command "osnap" "none")( D: d) y6 z4 n* `/ P0 F
- (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))
& t, ~. F; W2 i6 B0 Y - (setq a1 (angle p0 p1))2 h% D' `3 T4 Z$ F- d: N' g1 \
- (setq p1 (polar p0 a1 (/ (* hstl b) tile))). a3 G+ v+ ^$ c4 Y ?3 [. _4 T% l
- (setq a2 (angle p0 p2))
7 v; U7 _% n) @6 o - (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )6 x1 G+ b* s8 o {7 h( A0 ^0 y
- (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")
& Y+ P4 k0 I6 C5 C! N. p - (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))
1 J: _4 L. O6 B6 ^1 Z - (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi)) 7 u" T" v: J+ n2 n8 [3 t. [# y# F
- (setvar "osmode" om)3 L+ [( N: S* W" R6 \/ g
- ))
" M) Q z( \/ s" ~2 E' X - )# [/ `. N) G; i H
. E7 Q3 z4 P/ _2 H' X+ y5 f0 _- ;VE CUA SO# Y6 m8 l C$ G/ M J% M; X
5 d( J- Z/ D6 \8 |' L8 j6 B- (defun c:cuaso ()$ B: I1 x c5 g3 d2 D
- (setq om (getvar "osmode"))
. ^; ?9 s* t$ f: j! u6 T0 h$ ~$ I - (setvar "osmode" 0)4 t" t7 t4 S$ Y1 W
- 4 H6 \9 J \; k0 p+ i
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))$ E+ d0 j+ H; }
- (setvar "osmode" om)
, M& R$ `6 ~: w4 @ - (while (< 0 1)
- T; [3 y, q& c1 r6 ` r, F: \8 R* ] - (progn0 W7 ~6 G' G# b# r0 y9 ~" {
- (setq p0 (getpoint "\n Chon Basic Point:"))& {5 Y' q' ^7 J& X
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))
, j6 i ]7 p" U4 S - (command "osnap" "none")
6 R8 c2 e2 Y+ c8 H: Z1 f* ] - (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))9 v$ `1 K4 D& Y; a$ C. j
- (setq b (distance p0 p1))4 w2 |& k I% y2 m7 V
- (if (< b (/ (* hstl 600) tile)) (setq du 50))8 A0 u6 m- x8 L6 w
- (if (> b (/ (* hstl 600) tile)) (setq du 150))7 _# t- V- l0 N0 \4 @" G
- (if (> b (/ (* hstl 1800) tile)) (setq du 200)) W! `6 C( h- r% F% L' o, ?# l
- (setq a1 (angle p0 p1))4 c8 A D" X @. o
- (setq a2 (angle p0 p2))
! D+ H7 J1 K& j$ @- o) B - (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )
~2 t2 h6 m3 U9 v, T5 Y! M0 x - (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )! e" J7 i7 [) v/ j! p! `7 y2 j
- (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )
% C1 b3 G, k9 [# [9 `+ J7 s& [: x4 g - (command "pline" p0 "w" "0" "0" p1 "")
0 c V. N" o+ i8 J* y6 P$ _ N - (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")6 K* w8 x! e2 }+ l) N0 U: f
- (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) ""): ~# T' n6 H9 p3 f' S& C: ?
- (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile)))
- X" o8 H X1 b. P% s, w - (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")
6 r3 t9 B0 Y8 | - (setvar "osmode" om)5 t! e/ Q1 H E2 |1 n5 h9 K' p
- ))
+ p9 Z$ O/ I; a( B) Y" ?0 H - )
P- }$ ^) \8 W- F
; [2 l: b$ ]& n3 C) F, a- ;;;=== General Utility Functions ===
( h/ j- y! Y4 _: I' m# \4 ? J
& @& _1 h4 E3 T% F- b$ v2 u- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined
% Z2 ^* ?2 v' z& e - ; ADS function. Now it's a simple AutoLISP function that calls the 1 v0 M3 m) a- J) S; B2 \
- ; built-in function (help). It's only purpose is R12 compatibility. , A8 ]; {, A8 b2 P; f2 z
- ; If you are calling it for anything else, you should almost certainly o9 P4 d% F, w9 x5 E( G2 l6 r
- ; be calling (help) instead.
6 S2 h I3 F4 n! ?) _ -
7 }3 q8 @, x0 W* Q6 T+ H1 B - (defun acad_helpdlg (helpfile topic)& x: I X% f( z, i* J
- (help helpfile topic)& D! B) g, G f8 Q+ h! ?4 Z
- )0 y/ o. Z! _, d" c$ J& [
- # B+ Z, P! S& X5 S
$ z/ Q* E6 ?" U# C" ]* L" H2 r- (defun *merr* (msg)
, I& n- P! w4 o# |! n+ l" K - (setq *error* m:err m:err nil)
) g, e( _& v1 h) f6 X - (princ)
) j. j4 a. m g" @' o" j - )
" `) V1 ~- K; [$ D6 Y
3 u6 p* K' R, ]5 d) T- (defun *merrmsg* (msg)
+ S! W U: e% F7 e - (princ msg)
6 `. C' `5 _: v0 ? - (setq *error* m:err m:err nil)
# r W' ^0 w/ Y0 W$ e. L2 O - (princ)* o/ c- z" `+ Q o
- )( }$ P7 V. w: q( V- g# l
/ k5 M# e7 X d$ Q& |- ;; Loads the indicated ARX app if it isn't already loaded
9 I0 ?$ _* M4 Q7 G8 q - ;; returns nil if no load was necessary, else returns the: o% a4 X" t0 |
- ;; app name if a load occurred.
* w, f8 e9 z0 ^$ w/ e - (defun verify_arxapp_loaded (app)
% ^. `- H7 {3 O* L - (if (not (loadedp app (arx)))" R' }/ g6 j) ~& L
- (arxload app f)$ V" R7 e4 Z; v4 [
- )# @# O Q- I. T" Y
- )
l* ~* F$ ^8 D5 v& |
2 V& {/ v+ h, ^3 _" V9 \% w! N' m1 H- ;; determines if a given application is loaded...0 b G" z1 _% @( j' S0 C
- ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....
" H7 b2 N" `& c/ ] - ;;
2 x `8 J1 e. g( r3 u8 t* Y* p/ C - ;; app is the filename of the application to check (extension is required)
' |, D. r! d- h; E- m- b. u0 P l - ;; appset is a list of applications, (such as (arx) or (ads)
5 \- O% [5 G. W0 D8 H/ F - ;; 0 G+ _2 a: t8 t3 A+ G; C4 {6 N N2 F
- ;; returns T or nil, depending on whether app is present in the appset& c! k& m" K/ V; _+ `. N
- ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"
) ^8 M7 f4 y7 V1 n2 W. Y$ L! [ - ;; Also, if appset contains members that contain paths, app will right-match
; E2 r# ]& M( p; ~ - ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that
( C! g. w, f c - ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."
, \, X, D5 T9 U4 V, x* h - (defun loadedp (app appset)
' O6 I+ c z0 {! l - (cond (appset (or
- |- t, z- V8 B# ^ E9 _$ W4 C - ;; exactly equal? (ignoring case)( J; U: N" d0 I0 D
- (= (strcase (car appset))% V1 |7 ~1 F ]! ?
- (strcase app))6 z1 @* p) D6 B
- ;; right-matching? (ignoring case, but assuming that
# @4 T' a3 d* V, m" `; P$ G. Q+ z - ;; it's a complete filename (with a backslash before it)7 C9 t+ C9 _& ] B5 o1 n- t
- (and : Z& ^# J5 F" A
- (> (strlen (car appset)) (strlen app))
6 p: b% f- I, O9 h+ u - (= (strcase (substr (car appset) 0 b `, z8 E0 t: H4 J
- (- (strlen (car appset))
) N6 I7 d- R J- p* i( Y2 s$ ] - (strlen app) 5 X6 ?4 s) ]" o- v$ J( r& k
- )
' `+ H6 F( O# }; Q& N* h - )+ H2 u1 R+ |6 E
- ) 3 ^0 ?6 B) N) j9 W* J
- (strcase (strcat "\\" app))
8 v2 _ M* S- N7 k6 t2 T - )/ z4 U q- u% P
- )" p5 y ?# l) A5 z1 P% g
- ;; no match for this entry in appset, try next one....
8 ?0 c' K: {& d - (loadedp app (cdr appset)) )))
7 u1 {1 p! }( m - )# j2 e2 l- Q8 p# o3 h+ ]
$ I1 i) p& j# H/ g+ I
* `: g7 V* J y- ;;; ===== Single-line MText editor =====4 [- L) I3 v" u }2 Z
- (defun LispEd (contents / fname dcl state)& [6 }* Y0 q; h9 s# W
- (if (not (setq fname (getvar "program")))
4 D$ B9 T' E) t3 W( f/ t* h - (setq fname "acad")1 }- R: m2 Z0 C! b
- )2 ?0 x' d; y. ~9 h" d
- (strcat fname ".dcl")5 t& A6 W; x; e! v; s) r% a [
- (setq dcl (load_dialog fname))
7 y3 A# l7 Q4 H g8 d - (if (not (new_dialog "LispEd" dcl)) (exit))9 o- [9 i! ^- ?1 O, t1 q% E
- (set_tile "contents" contents)
5 ]' M9 F7 E4 V. q8 R. A - (mode_tile "contents" 2)1 U' H; B0 N- h+ u/ y
- (action_tile "contents" "(setq contents $value)")& ?6 m6 d: N# C& Y' Y
- (action_tile "accept" "(done_dialog 1)")
- L+ b. |3 s7 r4 [, N i - (action_tile "mtexted" "(done_dialog 2)" )
( B: A: ^% | b, f6 @: I - (setq state (start_dialog))
' @0 P% R! |, T- y# k - (unload_dialog dcl). h; U- a8 f8 g
- (cond
$ w' [4 j! B6 }6 c* b - ((= state 1) contents)5 C, n( |8 C! W# U3 r5 r
- ((= state 2) -1)+ J5 m, n- z/ N O' x& J
- (t 0)
; X8 U9 w( a3 r4 p# ^. G$ H2 X2 T$ e - )
, a- M7 H/ ~: u9 D0 F+ g6 l3 E - )
& S! U R, w3 L/ X: A, `
7 P% G- E8 k l+ U- ;;; ===== Discontinued commands =====, K& E* I+ N; ?) p
- (defun c:ddselect(/ cmdecho-save)
& J" w! l* m8 n/ e4 w( F- f3 Y. R) x - (setq cmdecho-save (getvar "CMDECHO"))
2 j( {6 r4 Y9 E* E4 \ - (setvar "CMDECHO" 0)
3 F1 K) u \7 F- e$ z - (command "._+options" 7): l9 H6 H' _+ } x( @
- (setvar "CMDECHO" cmdecho-save)
/ [% r8 ^+ k1 h: R* ^/ s' G% W2 F - (princ)
. G& V8 U, q% R0 ?" L - )& y- |( A I8 D2 d; I
. O; t% g& T* E& N- (defun c:ddgrips(/ cmdecho-save)# r c( o$ u: ^. }+ Y% [6 k
- (setq cmdecho-save (getvar "CMDECHO"))' O; a& b/ ]# i6 N3 a0 G; }
- (setvar "CMDECHO" 0)
8 y: N: S. \# L* P. ^* P - (command "._+options" 7)
1 }: Z' [' s2 I- W4 X9 y - (setvar "CMDECHO" cmdecho-save)5 X! L- x P9 ?" W! n: g/ f
- (princ)6 O4 G b$ F8 g
- )5 W, k: c) T( P8 b. k& s( \& d( ^
- ! ~ j2 J4 i* W0 ~( g
- (defun c:gifin ()3 Z w0 h, t' k% b9 j
- (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")+ ]8 n6 v P p X, @* f% B
- (princ)
6 c/ T) z+ @- k! f3 f - )8 @, `% k' @+ i! u
- 3 ?3 ?1 x, d( t9 g3 k7 q
- (defun c:pcxin ()
/ z/ M! T1 ^+ i8 N3 T( m) h - (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n"); j& U) G2 e- n' C2 [3 F
- (princ)
# b4 E4 S: L7 c7 X8 I" H& f - )
7 u, [. t, q/ W, k3 ]" g8 Z+ E - ; V! m; W x: d3 M
- (defun c:tiffin ()/ N% C0 Y3 o/ [% n7 f" w: ]
- (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")! c6 O- s6 E: \5 t+ ]0 Z2 r, b4 y
- (princ)
4 G: y" M3 L( M3 u ^7 d5 d# Q - )
* l0 t4 V; `" C2 d0 ?- V7 Y! M: X
0 ~' \0 b: N+ F: \& N" f; T9 R- (defun c:ddemodes()
; M! X1 q0 [0 F& W" y6 |2 ] - (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.")
6 B3 e `" f G3 y/ A# T2 L* C2 v - (princ)5 ?# [4 r2 m9 Z: I# P! M* w. u
- )' h( Z& J0 v) k" y; w: @% g |
- - T! C1 }; I1 |: {, q3 q6 a4 h
- (defun c:ddrmodes(/ cmdecho-save)% J6 ^4 U6 R2 t3 E* @
- (setq cmdecho-save (getvar "CMDECHO"))
; N1 V d4 |! |! Q - (setvar "CMDECHO" 0)- t' [+ n( g) v- p
- (command "._+dsettings" 0)+ H" N& E1 l5 H/ o# B
- (setvar "CMDECHO" cmdecho-save), J+ E& D% H; D* S9 m4 t8 ^" y
- (princ); J3 k6 ?3 i+ b* K
- )
" T( t) Z# T3 Y - ( }# [/ m# `2 w1 y) A
- ;; HPCONFIG
$ \5 {- k L# }7 V/ | - (defun c:hpconfig (/ hlppath)* @6 w4 V9 [' _
- (if (not (setq hlppath (findfile "acad.hlp")))
* _2 s' T( E- s0 _6 j3 | - (setq hlppath "")), P; E$ ?/ G1 ~
- (help hlppath "hpconfig")7 D4 p" m- K' B. Z/ m# \+ r
- (princ)
1 ]9 P n% s* U+ N( r0 J8 @ - )) o( K* ?$ P6 q5 ~3 h. ~
$ |" \1 q2 w1 y, k4 {/ b; g1 y- ;; OCECONFIG
# s9 N4 Y6 g! O0 F7 q% i& b - (defun c:oceconfig (/ hlppath)
2 o5 ^; C5 j! P - (if (not (setq hlppath (findfile "acad.hlp")))
7 C2 s2 w/ Z2 k w# t2 |$ g$ @) Q3 ? - (setq hlppath ""))# l3 }0 ]" E4 O, |, _; r4 J. d
- (help hlppath "oceconfig")1 \" c% Z. l# p: X) w
- (princ)
. h) z; ]# D: s& M - )% R. n7 j# [3 ~. P0 g* @7 H
- % o4 {3 n2 l$ S$ O \2 G1 s) s+ Q* F# C$ e
- ;; CCONFIG/ O3 ~" R) V/ ]- X' r ^# p3 e, j
- (defun c:cconfig (/ hlppath)1 \/ U: L+ O9 O8 g6 L
- (if (not (setq hlppath (findfile "acad.hlp")))
9 K8 l+ W/ n" T* C' K' y6 r6 ^* N - (setq hlppath ""))
, } W( [3 m2 S) U) K - (help hlppath "cconfig")
. F2 D" v: E% R7 G1 F - (princ)
k. B& R$ v# i- A/ w' | - )
8 p* m# W- P: ]3 e5 q
" T+ P2 j) P$ U) G, `$ i( b d5 R- ;;; ===== AutoLoad =====9 m( _1 b ~; A' A( v
7 o" _! |; Y5 L1 \; s- ;;; Check list of loaded <apptype> applications ("ads" or "arx")
; O! c, w3 r- N - ;;; for the name of a certain appplication <appname>.; f+ A& T3 h9 r+ R
- ;;; Returns T if <appname> is loaded.
# L* @- I: A+ g( u% i, H - 7 a+ q F" {4 X- T8 u
- (defun ai_AppLoaded (appname apptype). o' F* Y4 I6 H# ^
- (apply 'or. e, Z8 S! ], r/ \, e5 f
- (mapcar
; l' U# F0 U7 E4 C3 e; z+ q - '(lambda (j)3 N* T+ m% `# O( R+ {: M
- (wcmatch
, N" S' |$ ?; V) i - (strcase j T)# z5 R$ U4 H; ^! Q7 ^/ R
- (strcase (strcat "*" appname "*") T)
% ?0 g1 o0 s; m# i - )
" @7 i' l @& m" t6 b1 g - )3 Q7 v q7 U6 R3 } D {
- (eval (list (read apptype)))* C$ H2 V# K6 z+ Z. r/ _5 E6 @
- )
! n ~. L+ N( I$ G! L - )2 _4 ]- f+ X6 ^" s, ]
- )
Y5 p% | X- p! l" @; i
& |$ U/ _; S" [( o' o/ y- ;; 8 j# \5 P4 e$ m0 w
- ;; Native Rx commands cannot be called with the "C:" syntax. They must
) q9 w9 x+ p" l* r2 _ - ;; be called via (command). Therefore they require their own autoload - t9 u* Q3 D7 ^! s
- ;; command." h: N$ r& o7 v! @+ e' {3 T! }
9 ~ I9 h R, L& {0 r( F! |- (defun autonativeload (app cmdliste / qapp)0 v+ e! x8 f; `; j
- (setq qapp (strcat "\"" app "\""))
3 K2 V7 f. v9 l7 b, ^! O1 B; Q. I( C - (setq initstring "\nInitializing...")
- w, y& X1 W% d9 ^ - (mapcar! J; P# N! _5 u5 Q; _
- '(lambda (cmd / nom_cmd native_cmd)
4 E+ ?% P! W- } F: _& Z9 \! s- y - (progn3 Z6 f" q/ J. c; ?5 Z
- (setq nom_cmd (strcat "C:" cmd))) P7 L$ S, ^% Y+ ]* o* t- L( g# R3 g
- (setq native_cmd (strcat "\"_" cmd "\""))( d3 s& k2 B! s4 ]% y
- (if (not (eval (read nom_cmd)))
. O$ G- c7 r/ @( R - (eval" o( U+ I# L6 ]; {1 l+ J% J
- (read (strcat. I G; O; ~3 v# h D' c
- "(defun " nom_cmd "()"
1 f0 n! o- m- P3 k9 _ - "(setq m:err *error* *error* *merrmsg*)"
4 G3 h: J% o ^+ s( D& s - "(if (ai_ffile " qapp ")" @9 U) l) O% G, r. ~
- "(progn (princ initstring)"
1 a" Q1 U h, h1 {# u( _+ K0 M! u - "(_autoarxload " qapp ") (command " native_cmd "))"0 r5 ^, X7 G) l- Q$ e6 Y$ U
- "(ai_nofile " qapp "))"
5 h' [5 n$ n1 M! ? - "(setq *error* m:err m:err nil))"
, h5 N, S9 G' X" I7 V5 l6 K0 P+ k! Y( E - ))))))
; H; G5 K2 }/ D4 B - cmdliste)
8 E/ |) @8 w8 l7 [% H3 _; \5 @ - nil) g: }2 G/ W7 ?7 G
- )
) C; R* u# Q( V4 [
. B, _+ S4 m+ T2 F6 _: U* e; M- (defun _autoqload (quoi app cmdliste / qapp symnam)
% [* m" `& E% ? - (setq qapp (strcat "\"" app "\""))
' f2 G1 F8 o$ }* F7 z - (setq initstring "\nInitializing...")
u' X* J6 D6 Z4 w: A8 M - (mapcar
' x5 ^* F# I4 S, f - '(lambda (cmd / nom_cmd)
/ n* @4 ]$ I# c i1 W* V0 V - (progn( Z; h+ C- W5 M% n; [" n- s) j
- (setq nom_cmd (strcat "C:" cmd))
( G9 p- N. K4 x) ~6 n - (if (not (eval (read nom_cmd)))9 s) [0 T/ }; c. p4 ?6 m" z" ^2 ^
- (eval7 R$ i0 k4 Y8 o( Z$ f& }9 ^
- (read (strcat
% }2 c2 o v( l: ^ - "(defun " nom_cmd "( / rtn)"
7 h/ n \) ^( T5 t - "(setq m:err *error* *error* *merrmsg*)"
4 O: a8 Q# U& w3 j - "(if (ai_ffile " qapp ")": [1 v' a; }6 J1 X$ f# ^1 F
- "(progn (princ initstring)"
0 {) [0 v) ?& l' L - "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"
( v$ Q2 y+ F. W& w) G* a' Q - "(ai_nofile " qapp "))"2 E4 k0 d4 \3 |, A
- "(setq *error* m:err m:err nil)"
8 A- X# ^" L( ^% \ - "rtn)") x; B7 m, ~) ^2 _
- )))))). |: n+ e) S; j& h! l
- cmdliste)
; T* ?4 }) H( g! v6 c$ e - nil) x4 `8 }, f: O
- )2 Q4 Y( L6 ]9 p* Z- @
- 2 x; ?3 K: O6 F; f4 p' h
- (defun autoload (app cmdliste)
) v# w+ }4 n( _0 R7 _) t! V - (_autoqload "" app cmdliste)
: ]/ h8 V6 Y- w8 x. ?: t4 x - ), Q- C. Y' W6 ~1 Y; _( k, c* d
4 X5 n( S8 W6 h+ d8 w' {( H- (defun autoarxload (app cmdliste)
( S: j+ X3 L/ N8 H+ Z$ R. |6 d - (_autoqload "arx" app cmdliste)- N4 b% I# V/ U- @9 E
- )6 O! s8 c- A9 d! M5 K" ?+ y8 S3 `
- 9 w, V2 {4 `# a- h5 h
- (defun autoarxacedload (app cmdliste / qapp symnam)& ]7 P9 ^& e5 A& X6 l; @
- (setq qapp (strcat "\"" app "\""))
5 f! |! l( C4 ~ - (setq initstring "\nInitializing...")
3 l* H, K: j& ?1 k+ @ - (mapcar
0 J+ d, y6 c" l+ U( y3 W& I - '(lambda (cmd / nom_cmd)& V; |; }* y, L! |: a% q: }- t
- (progn7 U1 k5 l3 ^6 e$ @4 I
- (setq nom_cmd (strcat "C:" cmd))
$ D' @3 j1 J" x, \ - (if (not (eval (read nom_cmd)))- D* b) ^0 i0 B! l! b
- (eval
3 y2 u: K: A G1 d - (read (strcat
" i& I$ k* W9 s @% \% j" E8 ?1 ` - "(defun " nom_cmd "( / oldcmdecho)"7 J) o; Z a$ `' p
- "(setq m:err *error* *error* *merrmsg*)"' ?6 A ?1 P A0 l6 A4 q' p- r
- "(if (ai_ffile " qapp ")"
: e. @9 B' G1 Z; M - "(progn (princ initstring)"$ @. I! V7 {" i* S9 x$ z
- "(_autoarxload " qapp ")"
z; b, q( U% L% L - "(setq oldcmdecho (getvar \"CMDECHO\"))"
: Y: }$ G3 k; T( V; o7 q$ d - "(setvar \"CMDECHO\" 0)"* d' I7 H+ N" A( r" ]$ j
- "(command " "\"_" cmd "\"" ")"
* K2 Z' v" l# _% l - "(setvar \"CMDECHO\" oldcmdecho))"' k; ]+ h3 `" ^
- "(ai_nofile " qapp "))"5 F7 O3 r6 m4 d* N6 J* B. ?
- "(setq *error* m:err m:err nil)"
9 m! }8 a* C, _6 j5 k - "(princ))"
$ T/ t. R- o$ o3 M, s - ))))))
4 p. g" P. Q) c - cmdliste)
% _, x7 x3 m3 L& l5 N n( m( x( U - nil. o. O& e$ J J2 K8 l% t
- )
+ f/ ^. ^+ I3 P* A } - 9 P2 a" w/ c# X8 U+ o0 J5 J& W5 Z
- (defun _autoload (app)
. v5 G" J- S7 u& ?8 ~5 { - ; (princ "Auto:(load ") (princ app) (princ ")") (terpri)
" d& u! d3 r! ], f - (load app)% {% o. q! I! z ?- U! h* T
- )" P8 J# k G- Z) Z$ H% R* i
- 7 n# V' l9 p n! L
- (defun _autoarxload (app)
& T2 ^" h7 n. I9 y2 @ - ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri)
4 q" w5 \" o+ {2 T - (arxload app)
, p6 w8 @% L, `& ] - )/ ^4 z9 y0 M3 {+ T3 x! J2 l* R
- ( c5 _9 i. v) Y1 n
- (defun ai_ffile (app)2 g3 x6 F2 e. u6 p6 L) i* g
- (or (findfile (strcat app ".lsp"))" n* G1 S) f9 Q( R( w$ B9 g' V
- (findfile (strcat app ".exp"))5 K7 x. c' B+ N Y& R; |+ r
- (findfile (strcat app ".exe"))8 \6 E: o( I' }# {, q# q {1 S
- (findfile (strcat app ".arx"))8 m4 \6 r+ E, P `9 |
- (findfile app)
8 G$ }9 W" K; a - )1 M' N* {& I* ]; K4 K
- )
( I0 i1 `, {' Q# O M2 n/ \
- i: B& A. y! V- (defun ai_nofile (filename)
- V: K# L' S2 a) r - (princ
/ b: C, w/ H& A6 b- L3 ? - (strcat "\nThe file ") C: U! z, u) j
- filename
a0 y9 o4 |4 D/ T" b - "(.lsp/.exe/.arx) was not found in your search path folders."
" s! Q2 Y j/ u" x - )
- r1 l6 S. n7 J( v8 c% Z d - )
4 m% B+ ~- X$ c" v0 c - (princ "\nCheck the installation of the support files and try again.")* \. a/ r5 {& }0 C9 T' ]* w
- (princ)# q( T( N* f# e! _2 W7 D% Z
- )
9 }6 ~" p; g" T" x! k" c
% u: n) o G- C' c3 A- . ? V2 k: ^# D, j. p# n1 J4 b
- ;;;===== AutoLoad LISP Applications =====4 n7 I( G* s8 L7 j `+ C& D1 p# Y
- ; Set help for those apps with a command line interface
! z$ A6 p5 L- b( k
: B" H7 \! T* J* ~- G- F) L5 M- (autoload "edge" '("edge"))( M) e6 l; n; Q0 V% z
- (setfunhelp "C:edge" "" "edge")& a. Q8 p2 `: u6 d5 K6 V- b
- L) l% y* E4 C- x0 V+ c) P# Q- (autoload "filter" '("filter " "filter")): \+ R( G. u/ }8 p1 w( M; q$ U" w- B
' F+ X+ g+ p X, A$ i- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome". ~1 a. x6 \$ w& Z' J; r- ]
- "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")
: w: Q+ K/ | D+ ^7 Z - )
; G3 {: `% l; b3 s- `2 J1 L - (setfunhelp "C:3d" "" "3d")
+ J+ j: z0 X! s+ L4 b+ F9 ^! {1 c1 e# e - (setfunhelp "C:ai_box" "" "3d_box")' y7 z/ x5 |/ H
- (setfunhelp "C:ai_pyramid" "" "3d_pyramid")9 i$ n b; l2 \/ b: B
- (setfunhelp "C:ai__wedge" "" "3d_wedge")! B: I/ Z: Y0 v( {) z6 K
- (setfunhelp "C:ai_dome" "" "3d_dome")" L# B( E. S x k" W" B- B
- (setfunhelp "C:ai_mesh" "" "3d_mesh")+ P2 `3 l* \' @8 \
- (setfunhelp "C:ai_sphere" "" "3d_sphere")/ G/ q2 I4 V( E9 R+ A' H2 n# U
- (setfunhelp "C:ai_cone" "" "3d_cone")* g; Q3 N( A/ \( o0 o# }; y9 \+ ^' y
- (setfunhelp "C:ai_torus" "" "3d_torus")
0 J- w) `8 d3 }; v8 N* K. u3 w - (setfunhelp "C:ai_dish" "" "3d_dish")$ O* @, U% Z. b% |
8 G3 W2 K- R- }- (autoload "3darray" '("3darray"))
5 c7 @4 k+ o; h; E3 _- r - (setfunhelp "C:3darray" "" "3darray")) a' |3 T6 x. n+ H0 E
6 \' r2 e0 }& ?3 K# D- (autoload "ddvpoint" '("ddvpoint"))& ]+ n; w: v6 d5 X1 V9 l6 \
5 b7 g5 c7 u! N8 k" m% X1 {- (autoload "mvsetup" '("mvsetup"))
* s- l* y r" K7 K; I) j - (setfunhelp "C:mvsetup" "" "mvsetup")
, N1 Q% o& ^- X$ u2 _7 x - ( n& p5 R) y% }8 Y$ M
- (autoload "ddptype" '("ddptype"))
4 ?0 Q# l) O* m, B: D - ) m! e" q& [" t6 w' j' r# a5 j
- (autoload "attredef" '("attredef"))
. J ]! ^5 _8 y2 P' y4 ]: p - (setfunhelp "C:attredef" "" "attredef")
! M9 X2 t$ l" M% L4 S& t: a
2 ]* r) A% n0 q# X4 R" ~- u- (autoload "xplode" '("xp" "xplode"))
! {5 t; `3 C8 l - (setfunhelp "C:xplode" "" "xplode")
% E5 f* _ |$ j8 }: _$ l - ( e. Y7 D* p2 ~9 q9 Z
- (autoload "tutorial" '("tutdemo" "tutclear"
6 G& d4 ~# }3 {/ `/ u9 }9 @+ ?0 H m. O - "tutdemo" 1 j( L! K9 R5 p$ z
- "tutclear")). D- M% a9 C& W' D! I
6 k* D, X9 }, h/ ~3 ^8 z B) k- ;;;===== AutoArxLoad Arx Applications =====0 d c0 s$ x5 ]. W5 M q
- * K3 ^' X: j# i. Z+ V- \9 n" s5 g, h
- (autoarxload "geomcal" '("cal" "cal"))( y8 T% H# x7 w1 ^- K
8 V6 r" U& B* e+ y( Q7 j- ]' ^! U. c- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align": A6 Z' v9 J4 D! G
- "mirror3d" "rotate3d" 3 Q- n. b( e3 E8 f
- "align"))
- M1 g; G$ S$ K4 f+ ? - ' I4 S) [( c* D, m2 g g! @
5 M3 s9 [* ^$ s: C/ g8 t' f! X- ;;; ===== Double byte character handling functions =====5 x) K1 l, G, n5 }/ p" A/ @
: T5 e. H* q9 S2 i9 N8 y' V- (defun is_lead_byte(code)
0 H9 l. V7 j; ~+ e; \/ ` - (setq asia_cd (getvar "dwgcodepage"))
( j+ W6 k" s8 G* h. S+ X; y" ` - (cond
0 ` x! Q. U9 n' J! n - ( (or (= asia_cd "dos932")+ }# x/ r; D- C1 t
- (= asia_cd "ANSI_932")6 [# C/ T" X; K6 e/ L$ I
- )
$ c7 s2 r1 ]9 q7 k% [1 J+ s5 } - (or (and (<= 129 code) (<= code 159))
: D. m! u0 b# k" Z - (and (<= 224 code) (<= code 252))
# C( D* _1 @' _0 ]$ ?2 Y - )
2 F9 x2 h- i: d- z. b" R - )# f; ~" e, J9 [$ H R D
- ( (or (= asia_cd "big5")
9 ^: r1 R& x, m. G8 j - (= asia_cd "ANSI_950")
$ X# X. P4 `# V! l# u4 c- J7 q8 A- o# m - )
0 v4 o% T/ Y4 N# d - (and (<= 129 code) (<= code 254))
: u0 Q1 I* B: D - ) n+ \* X; T5 {8 M
- ( (or (= asia_cd "gb2312")
* \4 K3 a8 s& ]$ m1 } - (= asia_cd "ANSI_936")1 P9 s6 N6 G, s+ ~7 k
- )
; L: Y3 J; v' B; d - (and (<= 161 code) (<= code 254))! z+ {; ]' X* Y/ h
- ), E' r* s4 K" h* P/ L
- ( (or (= asia_cd "johab")
, ^$ j7 V3 v- i& K8 V: z7 ?6 d - (= asia_cd "ANSI_1361")
# S' o( ], @$ b% J) t+ X& @# J) y# v - )
- S' l$ d& a4 ` - (and (<= 132 code) (<= code 211))
$ F/ Y0 w3 R) X& h - )
4 k% e) _) f0 d# N" W - ( (or (= asia_cd "ksc5601")
( ?( Q, V" I1 R5 a F: n E, b9 \ - (= asia_cd "ANSI_949")
% i1 G b/ E( G* x2 m+ q" s - )- C) E& q/ x' q4 L7 J4 u
- (and (<= 129 code) (<= code 254))* B0 N& d! [1 f) b K' R
- )
1 `, E- C- O; Q* `3 h: C5 y& E! ] - )$ y. S p* ?( ~( ^% p
- )
6 B. l8 p0 e; G: y1 {" [. P - 0 m, U. t. m" h) i- Y' ]
- ;;; ====================================================
; {. W. j5 r! d7 c
2 ]. F) Z7 ?1 {9 B4 G' S) T- / j5 t5 R7 L* C& [6 ?8 G4 {0 q4 X, ?% G, l
- ;;;7 {' f! y; g" A; Q0 U+ c4 A9 N
- ;;; FITSTR2LEN
) A2 u Q# }" B W9 n2 G: W8 m8 U - ;;;5 a5 r" r7 K! h' v0 i6 A
- ;;; Truncates the given string to the given length.
* E# |5 ?! O7 v7 U4 A - ;;; This function should be used to fit symbol table names, that( n! R. J# g% _6 f O$ s
- ;;; may turn into \U+ sequences into a given size to be displayed
2 H5 W6 Q4 B# g9 L) I" ^ - ;;; inside a dialog box.
9 n( Z$ B$ a# h; e+ [- {% w - ;;;
* A- N7 H3 O: ~* K0 i9 { - ;;; Ex: the following string:
f1 W$ [; o9 a3 _2 I( K4 ^ - ;;;
# t: J* v8 Y% n% d& K- H! i6 E. L - ;;; "This is a long string that will not fit into a 32 character static text box."+ p% N* C! W- E' @; ^/ _. p
- ;;;# M. s% K+ j+ n3 @! W6 [( f. E( \
- ;;; would display as a 32 character long string as follows:5 @ C7 J# A8 E! j$ ]4 i7 |1 h
- ;;;
4 `6 s/ L+ h" ?" X+ r t1 \& u3 Z! @ - ;;; "This is a long...tatic text box.". }6 m2 s% b4 a4 A1 \( z$ v' o' P
- ;;;
* _/ s: J3 O7 J1 ]
7 H) I5 W# K) }- (defun fitstr2len (str1 maxlen)
/ S i8 o; |( G - ) C/ D4 N" A! x) @# z
- ;;; initialize internals
0 x3 K7 A: H! F) [9 S( y) w: ` - (setq tmpstr str1)
2 [! u4 m# r; N0 w) M5 B- H; ] - (setq len (strlen tmpstr))" @" W/ L! L) w& b& I3 P
! v( z" m7 t7 k: g7 E- (if (> len maxlen)
8 @0 C/ }* W% o$ } - (progn
. D5 f3 x6 J$ x' q# ?" w' m - (setq maxlen2 (/ maxlen 2))
2 G5 K: J9 ^% f' _' N& c, W - (if (> maxlen (* maxlen2 2))
. ~& Y: x2 x: {$ |& J) x7 @* b. }2 g - (setq maxlen2 (- maxlen2 1))9 @! i" k' G. B4 Y. `$ ^8 ^6 k) C+ M
- )
& a+ \7 x F0 Y+ d& l8 r* i - (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1))
' Y5 p; H, P9 K3 |6 j - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))
' g' k4 V5 W/ I% V B, j - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))
, n. H. m" I* M& D3 ^8 s - )
* t9 |% a5 B" c, W+ a - (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))- ^ ?1 N) z7 ]' x: }
- (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3)))), ^4 y2 }0 K4 r/ m0 k
- (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))! S y' X- F) F8 N3 g+ M+ h# h9 R/ o9 z
- )
5 w, V y3 i2 d0 Y0 J - (setq str2 (strcat tmpstr1 "..." tmpstr2))
# r' Q! F& m- K# l! m - ) ;;; progn8 u6 j8 G2 E, T5 j4 g+ q
- (setq str2 (strcat tmpstr))
H' y; n: H% p" l5 D9 ]; [1 C( o& \ - ) ;;; if" D/ h, P9 ?$ J) H8 J( w
- ) ;;; defun$ x2 J+ V$ q* j' ~
" S; Z: h) P& `3 d9 a1 t# X0 o
7 O$ ]4 z+ G- l% E( o- ;;;
; u0 @; f* J7 ?; ]& c# J0 H2 x8 h - ;;; If the first object in a selection set has an attached URL s) Y1 H) H$ D1 }: L, ~2 d7 t
- ;;; Then launch browser and point to the URL.* n6 r1 L0 j3 b0 o$ V
- ;;; Called by the Grips Cursor Menu/ c0 z5 ]* O) D2 i
- ;;;
1 f7 k1 D$ `2 @% c- ^9 B3 ?/ o8 S( F
, Z5 I X- n; L0 G- V( n5 v- (defun C:gotourl ( / ssurl url i)5 Y0 T6 G( ~ C6 q0 ?8 h# R
- (setq m:err *error* *error* *merrmsg* i 0)
" j0 c3 \6 p9 c9 V1 Z0 a - 6 k* B+ c+ Y5 z) m2 P
- ; if some objects are not already pickfirst selected,
6 U" n8 J" E. d - ; then allow objects to be selected
, q$ Z9 L, J+ G - 6 Y$ [# d5 y# s0 Z' l3 W
- (if (not (setq ssurl (ssget "_I")))( g! J- P/ q$ ]9 T! t! \7 ~- u
- (setq ssurl (ssget)). G) Q7 G4 v, l' D8 Z; h7 x
- )! J/ ^% Q% ]6 }4 \" ]( V+ G ?* p1 U# H
4 A% Y! ?( O0 j. q* X2 X4 d- ; if geturl LISP command not found then load arx application7 x4 t5 h+ P/ I G, ?
- 1 S% V4 u B! F2 H8 S8 `) m9 H
- (if (/= (type geturl) 'EXRXSUBR)
: I N! U# M/ r, ~6 | g( x - (arxload "dwfout")5 [5 P" G+ v1 Q- n2 x8 }
- )- Q, }5 |/ b& u0 R4 [5 ^* |
-
9 m' c% r4 h$ P - ; Search list for first object with an URL
) `3 M- N- @9 w - (while (and (= url nil) (< i (sslength ssurl)))
, Y: _3 G( v. G, T - (setq url (geturl (ssname ssurl i))
- l, s$ E5 z5 |5 z - i (1+ i)). _- b; K {4 j- p T* o/ w
- ) ^, U+ q& G" A' ?
, }: [) a- n- C) ]" t5 [9 L- ; If an URL has be found, open browser and point to URL# c. E. s" ^- g2 p$ V6 ^! _- W
- (if (= url nil)
$ F' B8 R$ ~8 w8 X5 A - (alert "No Universal Resource Locator associated with the object.")
. v6 f# v1 @3 N - (command "_.browser" url) u( S( Z' Y H5 T* [& Z$ ^
- )
( y! B" t2 h3 @% _6 z* j$ ]& g/ ^ - 5 e# W# [9 W l
- (setq *error* m:err m:err nil)* K2 o& F; o& d7 q5 w9 m; [
- (princ)
! H4 J7 ~( H! C0 H3 m0 C: w - 9 Y% P% g7 [- N+ V" \/ e7 Y2 T" R) ~
- )
B' z: c2 ~* A; ^% ^0 G
, X1 z; I6 ~8 D, f0 Z( W- ;; Used by the import dialog to silently load a 3ds file/ T, M1 u/ X( f0 b
- (defun import3ds (filename / filedia_old render)
+ @. u+ `0 u8 P# q% u6 V4 t4 d0 ` - ;; Load Render if not loaded
2 M0 b+ K7 G: Z& z - (setq render (findfile "acRender.arx"))
7 o! e" S: l) y - (if render
0 G ?' j& E: @. R! E - (verify_arxapp_loaded render) 9 Y, n: j% d p1 B; @) P
- (quit)$ b( |% o& n+ F# p3 w" \8 @
- )
4 p8 X/ k' ` W% ~: B
4 j7 N* a9 i: J& f8 _- ;; Save current filedia & cmdecho setting.( V% y' [( I8 r0 s1 S$ P6 f) Y5 Q
- (setq filedia-save (getvar "FILEDIA"))3 r2 o$ ^3 m R$ e; w' N% G
- (setq cmdecho-save (getvar "CMDECHO"))
8 v! l- T' h* P8 Z" P - (setvar "FILEDIA" 0)6 R6 W: Q2 j h! c; }3 t: t
- (setvar "CMDECHO" 0)
/ S% A, N2 ]8 ~4 E - $ A% m9 p( \7 B
- ;; Call 3DSIN and pass in filename.6 a( ?' K! f# L3 e/ z
- (c:3dsin 1 filename)
5 r- U1 E3 H. x3 j( P
( z, Z, Z2 N- z* n& y8 [- ;; Reset filedia & cmdecho0 K+ }* C" B( j2 j: P$ `' `7 ^
- (setvar "FILEDIA" filedia-save)
% X+ y ~# J& Z% e' {0 } - (setvar "CMDECHO" cmdecho-save)" A( \1 I2 |2 X2 e. I6 K
- (princ)- T- }; a% F6 @5 \0 n# b
- )/ e6 G0 J& r% [$ u4 U7 E
, g3 B" T/ B1 D1 [1 d& c: Y- 6 y# ^8 U. w8 A' y) z. E5 y1 p; x
- ;;;=== Menu Functions ======================================' b- \1 a" W# X) ~: ?
- [" u" G+ i; @1 t
- (defun ai_rootmenus (), A0 M* Y& T5 b+ [% z3 U. N3 P
- (setq T_MENU 0)
( S+ u0 \$ X, b; [ - (menucmd "S=S")# M. J7 G/ c6 Z
- (menucmd "S=ACAD.S")
5 p5 b. `5 b, U' i3 l% \ - (princ)5 |6 O4 w" V+ Z% F6 G
- )7 ~ B* ~; x- T* r
- 1 K3 ^1 k7 U. ?7 a
- (defun c:ai_fms ( / fmsa fmsb)
/ g1 E! w3 j9 @6 N+ X( y/ b - (setq m:err *error* *error* *merr*)" b. z% ]' x" j8 t
- (ai_undo_push)' z+ P& J9 i- G% u8 M& ^* p
- (if (getvar "TILEMODE") (setvar "TILEMODE" 0))% k0 P. H( H* T4 O% O
- (setq fmsa (vports) fmsb (nth 0 fmsa))' I8 a* V2 S u2 [* N
- (if (member 1 fmsb)
- ?8 X0 s" f& I7 V# n4 x( n0 Y - (if (> (length fmsa) 1)
* [5 b9 p1 v; i- o- d* J# n - (command "_.mspace"). n/ {5 S3 X5 D4 X1 I" D: S/ y
- (progn
1 c! A: W; x1 ^" H# _" C - (ai_sysvar '("cmdecho" . 1))
1 Y8 V$ p6 j8 {) t( Y. z# t6 R - (command "_.mview")
+ w. G; M; }: a/ j - (while (eq 1 (logand 1 (getvar "CMDACTIVE")))$ ^; `/ B9 x" H
- (command pause)) I% Q0 E4 p/ ^9 \8 Z8 o' \- p: v% e
- )$ X" a+ s8 E1 n4 X
- (ai_sysvar NIL)
, h+ ^& A# f3 D* E1 v9 m8 M: r - (command "_.mspace")- g" V2 \$ ?% _5 l9 g* @+ `1 ]
- )5 `, Z: r: Z9 }' ]" C5 w5 j' z
- )9 t% I9 {# b! B$ l
- )
, B2 g* ^0 M; b. W, N - (ai_undo_pop), M) ]4 d' w" f$ c5 n3 g0 P
- (setq *error* m:err m:err nil)
3 F: ?3 [+ O( G* B# @' T- C - (princ)
, W0 a$ u! W [ - )
8 ?$ s+ j% j" [0 P- V" a; s
9 k0 V# _; T, i: P6 v- (defun ai_onoff (var)
% L- E6 x5 l$ w" F6 z" B" s - (setvar var (abs (1- (getvar var))))) Y7 ~0 K4 r6 Q2 s. y4 T# R5 C
- (princ)
& d' d- N D+ |$ Z - )* Z- j1 M2 n1 d: C4 ^' D
% `5 q$ c9 }& `" f- ;;; go to paper space
& C. Y) B7 L% u1 }) S+ u' x0 ~% K - (defun c:ai_pspace ()$ L; @7 F5 `+ ~ r! G& E# G z: @
- (ai_undo_push): v& D$ H5 t3 I4 j/ j8 d
- (if (/= 0 (getvar "tilemode")) c( E0 S; Z4 Y7 |
- (command "_.tilemode" 0): z7 j) f5 ?, m1 }' G' D, r% \' q
- )5 Q$ @# K! M1 X; u, W# a
- (if (/= 1 (getvar "cvport"))
$ S% r8 q5 [7 g1 L - (command "_.pspace")! N; h8 C/ T! [
- )
# @; v/ [# e0 D - (ai_undo_pop)
" q, Z/ U0 x; H- v( f8 v" x- w7 L9 \ - (princ)
/ r. S, u% b; g! |5 s8 L% T* R1 m - )
( M+ v' o0 @4 \
; j$ _6 y+ N% {& R! o2 p- ;;; go to tilemode 1
J8 |; p; A+ p0 o - (defun c:ai_tilemode1 ()
5 Y& I' _8 p8 e9 |: T6 K - (ai_undo_push)
8 L7 y. O0 x0 u3 y) k6 u! F! C - (if (/= 1 (getvar "tilemode"))
, ~: w$ y& F; a8 E/ v - (command "_.tilemode" 1)
, {- P! |" G6 ` - )/ g* B- x. ]0 G7 k/ y. z i
- (ai_undo_pop)# w5 L# {: w5 d- f3 E: H* Z
- (princ)1 J e+ f0 r: @, x0 `# R
- )
: w" f9 m8 r& i - # v$ H# ~2 k, G& a0 l7 W
- ;;; Pop menu Draw/ Dim/ Align Text/ Centered
1 W; m/ y$ X2 [% X - ;;; Toolbar Dimensions/ Align Text/ Centered3 ~5 a; j, d0 Y+ o; r- t" f
1 j6 x; v% k1 g' K$ r- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss)6 u* u4 o7 b1 V# ]$ r/ v$ Y4 x
- (setq ai_sysvar (getvar "cmdecho"))
3 ^3 n$ O) _, K' {, B! ~ - (setvar "cmdecho" 0)# P @ h I6 j( Y, X
- (cond
" \; d: _9 y) G; q- } - ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION"))))
5 b0 u6 a) s5 ~, X - (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss ""
- h$ v/ q3 Q$ E3 a - "_.dimtedit" ai_dim_ss "_h")
' t2 g+ E" ^/ v - )9 Z* N! y" \; d/ u% h* Q
- (T nil)
0 }) R& Q4 W9 ?/ H; G, Z - )
/ x9 N: `7 ~: q! O( r* Z - (setvar "cmdecho" ai_sysvar)
' Q: z, b) l3 [* W5 b# m' {; o( s - (princ)
: r& o6 y. U: v) v5 V - )
& f5 i% h# s( d. i - + F! F! H; Y) S: g
- ;;; Shortcut menu for Dimension Text Above
0 ]1 C7 f, n; Y# S7 q e- B$ F
3 l) o b3 [3 }7 B% P/ v- (defun c:ai_dim_textabove (/ ss)2 |' G# O" f0 U+ Z, Z
- (ai_sysvar '("cmdecho" . 0))
% M1 }1 y- y) h! y - (if (setq ss (ssget "_I"))
! t' \' q" l1 o5 o. w - (command "_.dimoverride" "_dimtad" 3 "" ss "")/ Y, B# ` S' u/ u* t
- (if (setq ss (ssget))2 l2 W& @% }: e" ^ w+ z7 I
- (command "_.dimoverride" "_dimtad" 3 "" ss "")
" n5 h x- i$ M/ t - )
( y7 o1 v+ m" G" C1 a$ t8 I; c - )
, y# H' E9 _4 K - (ai_sysvar NIL)* m' Y) ]7 p: c
- (princ)
/ [$ }" |5 U- W9 D2 M" _ - )5 F* G. x% }4 L3 v5 L
- v4 q' w4 q, h% Q" n- ;;; Shortcut menu for Dimension Text Center
) D: Z% A! p( I7 }+ j! r* D - 9 I! m- P, R, C7 c& h9 C
- (defun c:ai_dim_textcenter (/ ss)8 J m: G+ Q) C, a* x# K- M
- (ai_sysvar '("cmdecho" . 0)): a7 F$ o# ?- C
- (if (setq ss (ssget "_I"))* s' S. @1 s" N" D% C+ b
- (command "_.dimoverride" "_dimtad" 0 "" ss ""): `* J6 w% Y( S4 \5 Y) l1 ~
- (if (setq ss (ssget))6 u: g) D( j' K" e4 V
- (command "_.dimoverride" "_dimtad" 0 "" ss "") ) S) |: o9 k2 M& ]+ C5 y6 U9 W
- )
, d I$ f6 p' }6 j/ H6 z - ) ^0 i1 o+ l, n5 {( i, A' d8 ^
- (ai_sysvar NIL)& Q# x3 S; l ^5 }
- (princ)
+ q5 n9 W( d- a7 K! n& s4 }! j& W - )
0 X$ i$ Z# H. w }
- J# Y! D5 v+ k9 R! _3 M' b- ;;; Shortcut menu for Dimension Text Home 0 ?5 P; ^8 L; D8 _ u3 H: |8 }. S
) E1 X) J; W5 m: H" K( k, l- (defun c:ai_dim_texthome (/ ss)2 K% O2 k5 W# Y9 B/ q9 T* `
- (ai_sysvar '("cmdecho" . 0))' S9 z/ y/ ?& ]4 S* y
- (if (setq ss (ssget "_I")), E6 `. Y& b* V% z, L5 Q& ~
- (command "_.dimedit" "_h")
7 Y: L, G' V! _8 F1 E+ `9 S, r - (if (setq ss (ssget))) O. C% }' t% R* B. `
- (command "_.dimedit" "_h" ss)& Q0 U7 w! r0 Q* ~
- )4 j$ p& D0 X0 L7 K# } y8 \: R. g5 ^
- )2 @, o# L- u+ W- d( e
- (ai_sysvar NIL)9 D1 B6 F2 p' W& v2 I; ]% X1 ~
- (princ)6 v$ i4 U$ m3 W
- )
0 p; @) M6 ^4 f/ e - & t- K+ R4 w% `5 v4 @
- 4 ?$ p/ _' a9 o1 j% T
- ;;; Screen menu item for CIRCLE TaTaTan option.) F4 `! J( O# B1 |3 X2 @) V5 r
- ;;; first, get points on entities% F% J" N' k y9 h$ [5 u# L( M0 l2 J* s
- (defun ai_circtanstart()
6 a5 l) q9 Q4 t. k/ e - (setq m:err *error* *error* *merr*)) n2 L& ?4 c/ _! G: }1 p! J5 {3 D
- (ai_sysvar ! }. m: j! M8 w3 H& F' c2 E6 m0 g
- (list '("cmdecho" . 0)% N4 _* g) Y6 J1 W/ N$ I# l1 x# l- C0 @
- ;; make sure _tan pick for CIRCLE gets same entity
4 N) ~% F6 O4 ?1 P - (cons "aperture" (getvar "pickbox"))
0 b* I1 G/ @. r2 u& Y - )5 s, @, `5 G( B; ?* X1 `2 C
- )
4 [+ S( d6 O, q$ J" ~- f T: r - ;; prompts are the same as CIRCLE/TTR command option, F- O3 o0 [6 V8 ]
- (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))
; X) W V* a. y+ t' j# k - (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))* H: M4 [& a# @3 F
- (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil))) A8 D! _1 \( K2 g3 \# X; }& b- o+ [
- ). I# Q& X" L4 k: X$ x$ R) _
- ;;; Command-line version, ~- p: d. N3 {( Q' K
- (defun c:ai_circtan (/ pt1 pt2 pt3)
. t3 l4 Z1 P/ D0 v, a - (ai_circtanstart)8 K2 v5 y6 _5 ~8 {" h, }
- * d9 E0 ]8 v2 c4 s
- (ai_sysvar '("osmode" . 256))
6 o4 ]! x$ Z2 r4 J* P - (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)
/ A, j# }; b" Q2 y' U0 Y. F -
4 { R8 }" I/ m. F5 y7 l& V - (ai_sysvar nil)
' {5 p3 W1 A: a; l - (setq *error* m:err m:err nil), N1 @! f, B3 h5 D/ l R0 n
- (princ)
$ B0 a! K. R" x7 g- i- W Z% I - )
' w! a' g% @, y9 P' u - ;;; Use this if CMDNAMES == CIRCLE6 S B% Z+ i9 S5 T, M- s3 l
- (defun ai_circtan (/ pt1 pt2 pt3)' q8 |1 P) [" d
- (ai_circtanstart)4 {. h1 ~- n4 b/ A/ A1 `) L8 F
. P3 X1 d$ t; W+ b- (ai_sysvar '("osmode" . 256)), }; k' w: ~5 l& r: e- }1 D
- (command "_3p" pt1 pt2 pt3). b" k1 B9 c4 J8 q
-
- x, m* P0 J. A% G - (ai_sysvar nil)6 K! A# [ W: Y5 D }+ F/ b
- (setq *error* m:err m:err nil): I& ~8 ^3 w. {3 ]$ g4 }
- (princ): B& m( G$ Y& p
- )
7 O5 A! \1 ]! k+ T
4 o+ A; @3 g3 L& I
& _0 s$ a. r8 L, F* Y4 B
# h% q# [* i; W& w, w- ;;; Shortcut menu Deselect All item. }0 s6 Z( n5 h6 r1 d
- 7 m5 ?' L$ `4 F' H0 o
- (defun ai_deselect ()9 L8 n- B, m% a6 E
- (if (= (getvar "cmdecho") 0) ;start if
0 q$ K2 L+ W5 k' P. i: i) z - (command "_.select" "_r" "_all" "")
0 R# l* F2 f# n5 P - (progn ;start progn for cmdecho 12 Q) _5 Q7 z7 N1 y$ z8 K) A4 r
- (setvar "cmdecho" 0) k) c2 s( H' D2 }% R N
- (command "_.select" "_r" "_all" ""): k! o' {" ^5 H& z
- (setvar "cmdecho" 1)5 S' _0 [: H' L) [, h
- ) ;end progn for cmdecho 1
. |- d- k l# D# J9 P" {3 @ A2 U - ) ;end if
4 I: @6 l* t, `9 i2 U o" |& W - (terpri)
& R# Q' `& ~! r - (prompt "Everything has been deselected")
0 M+ r' o/ ]% y/ }$ c3 ~6 P3 L/ _ - (princ)$ U% b8 }6 a2 q+ I& a% ?
- )) _/ K& `7 N8 r" Y; `( R
- " g8 Z, E6 m! N" `) p
- ;;; Command version of ai_deselect to be called from the CUI4 {9 f7 @" ?7 r4 c
- ;;; so it gets properly recorded by the Action Recorder
( o6 n+ K# V4 t. @; v7 |( a - ;;;
3 w" A9 S' f' g6 K9 \/ V. t - (defun c:ai_deselect ()
0 w9 Y% S5 Z/ p" _3 [, e% Y6 } - (ai_deselect)
: p5 F: j/ i Q; _. p - (princ): A: V. v4 Y% f @1 y8 r6 L$ z
- )8 b+ x7 Q7 R. B: S! M5 k
- ) }$ \+ _5 X# V6 d5 T; A9 A
- ;;;
, z( E9 Y3 E; k: z - ;;; Enable Draworder to be called from a menu
2 ?1 k% i% b8 Q/ y6 v0 _ - ;;; Checks for Pickfirst selected objects
* G# g7 |( F" [- P# O' g& A - ;;;
" Y$ N/ Q6 l' p' q9 q! W - ( S0 p d5 |5 h5 @8 l- i
- (defun ai_draworder (option / ss )
% G; X) c! L0 `8 n% w* H
7 V% C2 t1 a2 G; {$ p8 A- (setq m:err *error* *error* *merr*)
, w1 T- l& [2 J1 v - (ai_sysvar '("cmdecho" . 0))
0 M0 M: @: _' L0 J C - * U9 m2 D* H7 @ S/ Q; b- I0 i0 Q
- (if (setq ss (ssget "_I"))
5 i! I4 Z2 o7 a5 g/ I# Y6 D - (command "_.draworder" option)
! t& W0 X( T$ ^; R: s @ - (if (setq ss (ssget))# g) r% L& j) z2 ]' Z- T2 g
- (command "_.draworder" ss "" option)
( A4 `/ L$ Z& P! O$ B; G - )& b4 n; X& p1 n4 [7 v
- )
9 F8 T3 ?; u+ t, s3 Y# e- d! | - (ai_sysvar NIL)1 V2 w: R- J) c5 ^$ A" `
- (setq *error* m:err m:err nil)$ z2 J8 T( S3 l- k. S
3 I" C6 |, t) x" j0 G5 Y5 ]- (princ)
# X8 m! L2 b7 @& P9 Y! y# T - )
: d6 {8 C& W9 r _/ o/ ^6 k - 5 |5 X+ s b7 i, n' ~
- ;;; Command version of ai_draworder to be called from the CUI
) U3 H2 o, G& {7 ~3 Z' b: S - ;;; so it gets properly recorded by the Action Recorder- D2 C0 z" e8 ^ g
- ;;;
+ ]" E- Q$ H V; i: ] H - (defun c:ai_draworder ()' {6 |1 W9 g7 R2 ]! `; p
- (initget "Above Under Front Back")
- V( h' E: I3 M* F5 J - (ai_draworder (strcat "_" (getkword)))
2 U: s1 H) Z* h. G p$ j. } - (princ)+ {0 j! e. w1 |+ \8 d9 W
- )
' H8 m0 C& v# @" v
! F. ^1 a3 t3 g" x$ `: K- (defun c:vlisp ()/ u1 [7 z$ C. [8 W! H% @
- (if (/= nil c:vlide) (c:vlide))6 Y K& N/ e* x% Q& x. V$ E; r
- ). d6 b. X1 d# H5 y
/ h! n) c' B% P& t- (princ "loaded.")% E L: R; c: f6 L& A4 O; b% k
. Y$ J7 L" Y$ O1 U- y6 [ b- ;; Silent load.! v% h3 N% K! r: J! Q7 V) {; Z
- (princ)3 M& P- v, [1 U0 t1 s
z& L6 M. M5 @- [- ;;;----------------------------------------------------------------------------
# x* i0 U% U/ t( a! p- [$ | f - ;;;2 z* ]6 b% x) X8 l5 k
- ;;; DDCHPROP.LSP Version 0.5
8 E. A- T$ _ `: k - ;;;
+ Q2 y+ a0 r) P! M' c4 p" U+ a) [ - ;;; Copyright (C) 1991-1993 by Autodesk, Inc.9 f* x* l( b0 d1 O
- ;;;
9 ]6 A5 M" r0 r1 L4 y6 Q. {4 p - ;;; Permission to use, copy, modify, and distribute this software* v, M4 L i, }4 I2 C
- ;;; for any purpose and without fee is hereby granted, provided; e3 l. J, A! A% T3 G9 O
- ;;; that the above copyright notice appears in all copies and that7 u7 Z7 C8 W: V1 a
- ;;; both that copyright notice and this permission notice appear in5 H" `( B8 ]; U$ @+ h/ X7 `& j
- ;;; all supporting documentation.
- u6 d: O" U2 [- {- D$ S! h4 {" _ - ;;;4 o3 {( h" K7 I
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED" y9 O+ r1 n. Q6 {
- ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR
4 n I7 O, o7 N3 \1 K5 p - ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.8 c9 v5 q, A' P) I/ u
- ;;;7 I. T7 v( ?9 B9 g3 o& i% x! z
- ;;; 2 February 1992. Q- ?$ J: a# n, R8 g. U
- ;;;
; O4 Y, ?1 {/ k: O0 w - ;;;----------------------------------------------------------------------------9 i' ^; Y4 U* V a1 X2 f
- ;;; DESCRIPTION
' {3 R4 h: {/ q% K6 C- v - ;;;----------------------------------------------------------------------------" u7 ^, e$ V9 \! E6 z" r
- ;;; C:DDCHPROP is a dialogue interface for the CHPROP command.
3 `2 U4 Z! j$ s: N - ;;;
$ x( ]# ?" p6 x9 U - ;;; The command looks similar to DDEMODES. The main dialogue has an image
- I- l: e5 \% h; O9 I- H( T+ u& P% M - ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness).
! Z0 Z5 | J; l' \. j - ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box. ( O2 M' a6 w8 t! @9 b: ?: z: i
- ;;; The dialogues are all defined in the DDCHPROP.DCL file.
3 X5 Y% F. U& i3 V - ;;;
8 M) X. X8 {8 v9 O3 d - ;;;6 B" j$ r2 e: u$ Y+ A: g) o
- ;;;----------------------------------------------------------------------------
3 y6 N3 b9 q1 o/ y4 F7 A+ H5 L6 r- F - ;;;----------------------------------------------------------------------------
( P4 N% d+ I& s5 r2 a' n0 E - ;;; Prefixes in command and keyword strings: . J; d x3 F% k3 R v. n
- ;;; "." specifies the built-in AutoCAD command in case it has been
5 X: W: o: I/ n - ;;; redefined.) K' M: e! s& h4 [& [
- ;;; "_" denotes an AutoCAD command or keyword in the native language5 U- q; s `0 G4 u2 a2 K
- ;;; version, English.
% e/ g5 L$ g8 ~# i( L$ Q0 v$ | - ;;;----------------------------------------------------------------------------! s0 h0 H& g3 G9 [" o. Q- {( V3 o
- ;;;9 c$ I/ k! [: `( `2 G2 F9 Z5 Q
- ;;;& k9 p$ {: c$ u7 S% v8 t& P
- ;;; ===========================================================================3 L) `* I+ H& b( T: M( N
- ;;; ===================== load-time error checking ============================7 d% o' M, Y- |8 u1 Z
- ;;;
! R; P5 e7 C% H
- t% k! |6 q; X4 z4 N; W- (defun ai_abort (app msg)
$ l- b/ `8 L% e- h4 L8 @ - (defun *error* (s)3 y- T" t" g8 X6 }5 O1 S" g/ ^
- (if old_error (setq *error* old_error))
4 d, Q5 ^! O4 h( ^9 f: N - (princ): w6 _! }, T' T. q- Y- T$ ]& I- U
- )' I# |- A! F' C$ F8 J8 n1 b
- (if msg
7 v$ E2 f3 r# Q - (alert (strcat " Application error: "
( L6 C9 t j5 E n$ N& Z: I - app
# K O+ ^+ |4 y! R - " \n\n "
) T( h9 `& _! g0 }. h. c! {5 f - msg
% c6 O$ X* f3 Z- O, c - " \n"" f* {/ V4 h/ o; w
- )
) b& y, y6 } B# p5 u - )
/ @/ Z6 | a' y2 c; a D - )
; Y1 n2 b) S; Y7 h - (exit)
& Q$ C& B: `5 i - ) N2 ] |0 t4 C2 H
! P0 L' x; Q6 n9 A- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,% V1 X3 \! D: K6 v8 C
- ;;; and then try to load it.+ y* j' K# f# `3 F! z6 [
- ;;;
* h; p* Y; T; R, D2 H% V - ;;; If it can't be found or it can't be loaded, then abort the
6 Z/ N) b; M4 \0 V a% x - ;;; loading of this file immediately, preserving the (autoload)9 ?, u* N2 a- ~6 x3 y
- ;;; stub function.
# k" h4 J" g( t- K - . s, M+ n- ]$ Z9 g
- (cond
5 v9 _ Z0 N3 } - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.1 r& s! H8 e e- o
- & M. j) d. E/ |/ r( W+ e) I+ H
- ( (not (findfile "ai_utils.lsp")) ; find it
+ u6 l& a' y2 v! Z - (ai_abort "DDCHPROP"+ j4 N4 S h) }# p0 w6 l' M+ E H2 Q& d
- (strcat "Can't locate file AI_UTILS.LSP."
. B7 G. h2 ~- D# A) e - "\n Check support directory.")))( U: P! s0 u' Y+ C4 M. m$ D/ m& K/ D s
3 |# I% m9 ~& d5 w* r- ( (eq "failed" (load "ai_utils" "failed")) ; load it$ O$ t, f7 I# t! w8 m1 L9 n% ~& N) i
- (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))! @# _" s, ^( s
- )
3 T% m3 Z- p6 b4 T& L - + H) p! u) r3 X- r# K/ S9 G
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
8 G/ E2 @" v( ^3 h6 s - (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses3 h b# ~* O( V: ?
- ) ; ai_abort's alert box dialog./ A; P; P( }. c% E
- ( n/ U# k, d& w+ I- b* S6 f
- ;;; ==================== end load-time operations ===========================
+ w" R4 i4 L% Z/ I - + Y- F; w0 w* ~9 i& J4 `" u
- ;;; Initialize program subroutines and variables.
4 |. R2 N; l' A) o& l. m8 r1 `9 U* d8 P0 A' g
# M$ Q$ _5 j5 E, O; H- (defun ddchprop_init ()( t2 ^2 {! e* b5 V1 l5 k+ e
- ( z( o& x+ x+ W8 N4 n) Q1 ?! O
- ;;
* j: w' y T* v: k h& ? - ;; Define buttons and set values in CHPROP dialogue box / J- i8 }8 u: I
- ;;
1 l# F# {& K9 x. H Y' x) Q6 z - (defun call_chp ()0 `6 U$ \- Z, }
- (if (not (new_dialog "ch_prop" dcl_id)) (exit))1 J7 u" \; O' J, u9 S
- (set_tile "error" "")! S) s% Q7 P2 `( ^1 R1 a
- ;; Set initial dialogue tile values
' G. }$ _! l8 S9 j8 i - (set_col_tile)
4 _0 o. M: O d7 ]6 }. F" ~ - (if (= lay-idx nil)
- A) h x( P1 Z1 z: f0 `7 ^ - (set_tile "t_layer" "Varies")
: A; _# m, c! Q" q$ K% W - (set_tile "t_layer" (nth lay-idx laynmlst))& D9 B: F8 u/ {4 p: @7 ^
- )4 C# K7 F5 m3 _6 T1 h; X1 d
- (cond
1 ]/ u" M- U' _6 u/ T- o9 j - ((= lt-idx nil)3 }" {; ~. o$ ]- Y! I1 ]7 U
- (set_tile "t_ltype" "Varies")1 w% Q# {. `1 r' ]
- )
. o8 h4 k+ |2 h/ c3 ? - ((= lt-idx 0) ; set tile "By layer & layer linetype"/ g; L4 X8 c- y$ t, A, K$ U
- (set_tile "t_ltype" (bylayer_lt))
q0 f- i5 A' |$ ]7 N - )( t9 Q$ _9 [( @" p0 y8 G6 x, E
- (T
2 r4 T. g9 }7 ]5 o* Q# F( g - (set_tile "t_ltype" (nth lt-idx ltnmlst))% c0 `8 ?% f% {) e. T& G
- )! V1 e- }5 _/ @9 F4 x. g
- )
8 ^4 n. }, j: L4 n$ s$ S - (if (or (= ethickness nil) (= ethickness "Varies"))
1 A# `# ^9 J) g: d - (set_tile "eb_thickness" "Varies")" o/ z' @8 D K* z
- (set_tile "eb_thickness" (rtos ethickness))
$ b9 _! |6 E( ]: S6 P - )$ U/ G" V5 @/ r' B' f. `+ f5 d8 L
- ;; Define action for tiles
, K8 `8 F& n1 g6 s' H; J# @1 { - (action_tile "b_color" "(setq ecolor (getcolor))")& {/ X! ?3 d8 X- H
- (action_tile "show_image" "(setq ecolor (getcolor))")/ a$ P. c, ?+ u1 p' A3 o
- (action_tile "b_name" "(setq elayer (getlayer))")
: U4 c- V5 _+ \3 v) z) d7 I - (action_tile "b_line" "(setq eltype (getltype))")
5 E" z/ ^6 v" i$ b$ T9 N; K2 l1 g5 a - (action_tile "eb_thickness" "(getthickness $value)"), x& r. k @( ^; {" W
- (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")* q# \: N: v' u; l) `& F: C
- (action_tile "accept" "(test-ok)")
& p j0 q/ Q9 W) H* x - (if (= (start_dialog) 1)
" j5 n8 R) B3 `" n% V# u - (progn3 f6 ]7 o) n( ^6 |6 a. P
- (command "_.chprop" ss "")
) U: _0 r' @$ O5 ]) B - (if ecolor5 L" m" ?0 q" ]$ h1 z
- (progn
9 s6 b* l N( ^ ? - (if (= 0 ecolor ) (setq ecolor "BYBLOCK"))
$ m* l6 N O/ F& Z) ~/ @+ p. I - (if (= 256 ecolor ) (setq ecolor "BYLAYER")): w6 H0 H- A ?" ~ r3 E% y
- (command "_c" ecolor)
* w- x4 j( r) n9 F8 z - )9 z0 f. N+ E4 P8 V; T6 w
- )
4 ?4 m( k, z2 ]! z+ o- R) ]/ k5 P - (if (and (/= eltype "Varies") lt-idx)% j$ M; A. Z: b
- (command "_lt" eltype)' u+ p' p! c$ D# ~
- )
0 K9 I j- j3 q9 X3 J0 w* x - (if (and (/= elayer "Varies") lay-idx)1 W, M0 I/ q% x. |0 n, h+ j6 p0 m7 B7 h
- (command "_la" elayer)
" e) ^# v- Y: g5 ~- X/ j - )6 T5 R1 J$ D' W* a; C* C
- (if (and (/= ethickness "Varies") ethickness)
8 v: x$ @. }. U, Y6 B/ S! m) m% o - (command "_t" ethickness)
# o6 A1 u A4 @$ g! X: b - )! l' H' O+ \5 U% p
- (command "")
7 I8 w7 g* Q8 _5 n1 }9 Z+ x2 j6 b - )7 [% W4 M. I3 _- M" a- j @
- (princ "\nProperties unchanged")/ z* r6 F+ }: u' U1 Q
- )
+ c1 o9 W3 W8 ~* N* { - (princ)
/ z/ W6 h- U* a4 k5 w - )
1 D% N, a2 |* x [* q& h - ;;
; z9 j) z: }3 e- x0 \7 E/ ^ - ;; Function to set the Color text tile and swab to the current color value.
" _# t# A( Y" [. X9 l: K3 | - ;;! I2 f$ R0 V( t W
- (defun set_col_tile()
M5 E6 M: K* H0 { - (cond 7 C- A2 g& x+ o/ r+ z, l7 X3 n$ T
- ((= ecolor nil)1 ]8 F3 d( e- ^. S9 [/ j
- (set_tile "t_color" "Varies")( [- `5 p# @( V
- (col_tile "show_image" 0 nil)
# l! {- [/ G! D6 V- m/ c - )
& o- b5 S; K4 f4 y- l3 o- s# T9 G" k - ((= ecolor 0)
! r. A3 H# N/ T, N9 p7 g - (set_tile "t_color" "BYBLOCK")( ?2 U7 f6 u0 E7 y, c0 k+ I6 v' l
- (col_tile "show_image" 0 nil), v. p) p. @, W4 Z# F( d- z
- )% g* d2 z$ N! \/ j; O
- ((= ecolor 1)
5 J( C; P/ x. n6 `/ y& i - (set_tile "t_color" "1 red")
9 [. T2 f' k$ j5 H - (col_tile "show_image" 1 nil)+ [& |4 C D2 G* G& W
- )2 z5 R5 @& \1 b+ Z- x# n
- ((= ecolor 2)
1 i+ b! Q" q' F: O0 |$ i* @0 S - (set_tile "t_color" "2 yellow")
. @/ ^6 P1 k+ Q6 D; {6 `# I - (col_tile "show_image" 2 nil)
! z* ^8 z$ O* t - )
+ M, H7 |8 U6 b4 L: p* { - ((= ecolor 3)$ N( V+ k2 D4 z( e' `# f
- (set_tile "t_color" "3 green")5 Z8 N. e% K5 e" p( [
- (col_tile "show_image" 3 nil)
& E. L$ l3 q. g; u& u" a5 r - ) x3 ^7 Q9 B8 E& ?. S
- ((= ecolor 4)
! u" C& U( F q7 @( G6 L! A. J# e - (set_tile "t_color" "4 cyan")
7 i, g6 \( J- K/ C2 A; s, q w - (col_tile "show_image" 4 nil)
! T. I) d# y. s6 F' n( n/ u - )
4 r! u. A- n/ S - ((= ecolor 5)
" f: a' B5 G3 C6 w - (set_tile "t_color" "5 blue")! P; t+ [: F% t) \: U
- (col_tile "show_image" 5 nil)
( d! x) s& e8 m% S# V - )- }4 Q! N+ K' {$ a0 E
- ((= ecolor 6)
1 [3 v9 B# z4 ~2 n# u - (set_tile "t_color" "6 magenta") X7 B% g) A/ U
- (col_tile "show_image" 6 nil)
7 b6 {8 ^+ U0 U- e0 S - ), l- B; _; ~5 o# W8 k
- ((= ecolor 7)7 k" Q' Q( Q G- e+ f3 k9 Y$ I
- (set_tile "t_color" "7 white") m* c* a5 y, T2 ?
- (col_tile "show_image" 7 nil)
+ ?: L# T) c) |$ b- H" q - )
% _4 e) e+ B& ~+ c6 b - ;; If the color is "BYLAYER", then set the tile to. s/ Y. [( _ ~) g& U
- ;; show it's set By layer, but also indicate the* K0 z0 |/ j, f: ` T4 r" `5 |5 N
- ;; color of the layer - i.e. By layer (red)
; i5 a1 j, ?! J - ((= ecolor 256)
5 P& l( u" j9 J$ ` - (set_tile "t_color" (bylayer_col))3 ?0 l0 D' U b. E7 v# \5 s
- (col_tile "show_image" cn nil)
8 V& @6 d0 F% e0 Y - ): I, m/ n- b( l# A
- (T
. ]* [( R6 T, B/ k1 t - (set_tile "t_color" (itoa ecolor))
5 N2 |# u. x! O0 N1 Q+ @8 S" q9 d" i4 [ - (col_tile "show_image" ecolor nil)% S% Q5 I& H d+ z: Y
- )
5 p% `2 U9 l6 C - )
$ q+ H9 O3 f- i. i! C' C1 Y# r - )6 `' y5 O2 w& h) @2 @9 |* y
- ;;
0 n8 ]4 G, K0 B) n- B I - ;; Function to put up the standard color dialogue.
4 [6 c% O. Z- w8 k9 ` - ;;! G W8 z5 H% Q0 z" I+ e, Z
- (defun getcolor(/ col_def lay_clr temp_color)' u8 N/ S+ C- f# a' F' m! w
- ;; col_def is the default color used when rq_color is called. If ecolor
) q2 o) ]3 D& ^: A8 l - ;; is nil (varies) then set it to 1, else use the value of ecolor.6 p8 w2 Z! H2 P& i* Y( V' W
- (if ecolor# V; o1 n3 Z } _) b9 h8 B2 n9 @
- (setq col_def ecolor)- {, b) b$ r6 W t+ F6 k" Q
- (setq col_def 1)
) V3 g, A3 v: C" ^ - )* m) n* k. R, l% H$ v
-
; v; y* h7 D6 P) s2 \9 p% ` - ;; If we're working with a single layer, get its color
4 \" w5 w5 Y F - ;; for use in the color swatch if the user selects color BYLAYER.
( ~% S Z' M' k- w - (if (/= elayer "Varies")
- L0 B: X7 }& x3 h! H - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))1 N& W3 N: b6 H# x3 D( ]. b
- (setq lay_clr 0)/ Z9 g2 ?( L }' X3 H5 t, U
- )
' B% T6 k* s: r V) [# ~, g! Q - (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
2 o/ ~' f( H9 [9 @! ^- ^- @8 K - (progn1 Z) X7 v$ f8 X. N w2 ?6 y
- (setq ecolor temp_color)/ P' R; F; O5 j8 W, \
- (set_col_tile)/ N3 m1 r, _; S- O d3 h- R
- ecolor
$ L) X& @' q# H - )) w2 I4 n1 H( w0 S. _. s# r2 z
- ecolor0 R. M; U U" N4 K2 M5 l s1 ], _
- ) + \( ?9 R- i3 _
- )
5 G) N' _3 U0 a4 o6 [; M" e - ;;$ g' [ i5 D; C- z( L+ e
- ;; This function pops a dialogue box consisting of a list box, image tile, 0 L, i4 Z- s1 j1 @3 E7 t
- ;; and edit box to allow the user to select or type a linetype. It returns ) g# o- j3 U+ h" n
- ;; the linetype selected.8 R" f. O6 ~0 d
- ;;
" O7 e/ Q5 |7 r0 m) c& O - (defun getltype (/ old-idx ltname)
5 p: [0 W3 w$ S; \ - ;; Initialize a dialogue from dialogue file8 c7 q! @* S8 b. B2 D% ^" h2 x
- (if (not (new_dialog "setltype" dcl_id)) (exit))
; G/ G/ F1 k, t0 @ - (start_list "list_lt")
' z+ e1 Y0 y+ |1 P) l+ j: _ - (mapcar 'add_list ltnmlst) ; initialize list box
' m; Z* U" [! q3 R) Z4 n - (end_list)' B: B0 |: Y U0 d( D/ y/ p( U
- (setq old-idx lt-idx)/ d, e" y. u- `" X3 [
- ;; Show initial ltype in image tile, list box, and edit box# F) k* e* h/ N. V2 E2 E5 Q, I$ ^
- (if (/= lt-idx nil)
! U5 [4 [+ g8 t4 D+ \ - (ltlist_act (itoa lt-idx))! r, r' b7 o6 p9 s3 M- M
- (progn
) E* `- t$ x: Z* ` Y: f4 b - (set_tile "edit_lt" "Varies")
- \& @+ p% @. P4 Z; V - (col_tile "show_image" 0 nil)' N' n) G- _3 P- [
- )
3 n, g/ M* v3 ^ - )
* [* Q' }3 M. i4 p2 u - (action_tile "list_lt" "(ltlist_act $value)")
. y \" v3 ~$ }0 I) F- r0 k- Q* ` - (action_tile "edit_lt" "(ltedit_act $value)")- G. X2 N$ f+ L$ f
- (action_tile "accept" "(test-ok)")
9 t$ K4 W" [5 D: {" { - (action_tile "cancel" "(reset-lt)")
4 q& w2 f7 r" w& j1 R7 @7 c - (if (= (start_dialog) 1) ; User pressed OK
$ q9 Z4 F6 L8 F7 w1 c, T+ j - (cond 4 T, ~: @0 J; D* _, V9 C
- ((= lt-idx nil), V0 v1 s0 ]5 m- @; ~8 d6 u
- (set_tile "t_ltype" "Varies")
+ Y) T( l9 `# Q9 T2 I: X* w - "Varies"5 A9 M/ h- [5 n# G/ t
- )
0 o/ F' F& N1 p: ?0 a8 i6 Y* {5 f( Z - ((= lt-idx 0)
; ~' r1 p+ x% `6 s- h2 p - (set_tile "t_ltype" (bylayer_lt))
- w. `! K8 T5 j1 l! y - "BYLAYER"
5 |+ l. U$ `: a! r9 X - )) R+ d2 _& q7 [
- ((= lt-idx 1)
9 ~& G. U3 Z$ g' N- f' d: ? - (set_tile "t_ltype" "BYBLOCK")
7 f, A7 u p4 i' g0 D - "BYBLOCK"
4 C& X- \7 m- t. L: z - )
( P) ]$ i' d; U) A8 T - (T
& M# q F5 U8 q" Z - (set_tile "t_ltype" ltname) + _2 b6 ^4 K4 o
- ltname# T1 @5 T$ o8 o) w9 @
- )2 ]' F5 k' G5 L8 s9 C% h' Q2 r
- )2 c% U, Y0 B8 C9 P3 d6 A
- eltype
0 v- ^5 h- R+ ^) ~, t: k - )
+ _& H# ^4 g! P s+ u - )
1 G, M6 } Q' Q9 |) I - ;;
2 p. y9 z, ?$ d' ^3 S. V, j7 r - ;; Edit box entries end up here
a( N0 J+ n A( Q - ;;) d- H' W5 C% O
- (defun ltedit_act (ltvalue)
, b7 [2 c# n* r! j2 V3 g, m - ;; If linetype name,is valid, then clear error string, % ~, s2 i7 L5 y# B# x/ h
- ;; call ltlist_act function, and change focus to list box.
% @: X) Q% ?9 u$ L/ O( L% L" [$ I - ;; Else print error message.5 O; y1 P) e" [- C5 d- d3 u" u
- (setq ltvalue (strcase ltvalue))
+ _9 I' ]/ W7 |8 W# \" X% E - (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))
' q W* P* \* x g( U - (setq ltvalue "BYLAYER")
t K: r& b! Z6 M - )
2 R; g" s3 @2 L3 K" L" A0 ~. E - (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))
4 |5 u. S: q5 Y9 ~% ] U - (setq ltvalue "BYBLOCK")
/ ]6 L! s9 _: C1 r, ]0 s( K - )$ K0 _9 b6 T' Y( G- {
- (if (setq lt-idx (getindex ltvalue ltnmlst))+ e/ j' C ?% D4 T2 C: t8 h
- (progn7 J5 P$ U& B5 b( K" |4 F* ~2 m7 J- z
- (set_tile "error" "")! `3 R1 W, e6 p0 N& ~3 e3 @# D
- (ltlist_act (itoa lt-idx))
$ G$ ?) X S7 {9 P" L! E - (mode_tile "list_lt" 2)& X1 G3 D) b7 i3 r- R% D- _$ \: ^
- )
6 L" ]* [* p) X9 \9 I6 O - (progn) a0 w8 i) y/ T2 c
- (if (/= ltvalue "VARIES"). {" F9 F: z' L( [
- (set_tile "error" "Invalid linetype.")5 I+ d6 W* A" s6 A/ O/ J
- ); B% p- m V h0 ?; e1 W! e
- (setq lt-idx old-idx)$ U+ a. ^% c+ S: l
- )
0 S4 a# r+ O% v6 O$ S: B- H3 S' S - )
4 Y* e& [6 F! o' m- o - )
6 G6 E* G3 p8 e0 ^' R - ;;
9 `- R2 x4 e$ W: w A - ;; List selections end up here
, D# y' _$ e7 n4 K5 ~ l B - ;;1 e" t4 q7 C% b7 ?+ }2 C- N
- (defun ltlist_act (index / dashdata)
0 N* ~$ i1 |8 s( `3 h - ;; Update the list box, edit box, and color tile
5 Q. r! g$ f9 Z1 V5 D - (set_tile "error" ""). ^6 g7 V3 ~+ _% a2 g
- (setq lt-idx (atoi index)), f. ^! M, K t7 x# T9 {
- (setq ltname (nth lt-idx ltnmlst))
/ m5 v( r- Q/ q - (setq dashdata (nth lt-idx mdashlist))
! Y9 j8 Z. H4 s - (col_tile "show_image" 0 dashdata)+ u+ p+ u, x* h4 Z/ ?1 ^4 i
- (set_tile "list_lt" (itoa lt-idx)): j% E+ u8 I( I, }' b
- (set_tile "edit_lt" ltname). J) e# w, W5 X; c. O
- )
K0 {6 w' _$ @8 j$ |, |( [ - ;;* ~5 G. T& M7 m* q8 o" l8 s
- ;; Reset to original linetype when cancel it selected
" @ {& k5 g( l8 [) ? - ;;* _( L0 S6 j7 Q8 E% C/ P! T
- (defun reset-lt ()3 ^/ s; c2 n- Y- r" t, q
- (setq lt-idx old-idx)3 M' d c$ N8 n7 k" s
- (done_dialog 0)
; h! D- Z' z, ]# B" s - )
: u) ?! {6 t) ]. o3 q$ R% a - ;;
" @9 S3 G5 ]6 i: s% w: P( P - ;; This function pops a dialogue box consisting of a list box and edit box to
4 [) t8 D4 f) t - ;; allow the user to select or type a layer name. It returns the layer name
t# @6 `# D6 K! K8 e7 R2 ]) W3 b - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the ) d) k% Q) N; I2 M8 E
- ;; drawing.4 i) ^8 j, p7 C2 ?* L
- ;;7 `. }5 t! y& P' Q) T1 ^ x
- (defun getlayer (/ old-idx layname on off frozth linetype colname)
. b% ]' j& y6 ~- x; Y- y+ j - ;; Load a dialogue from dialogue file
) w7 l7 |- F: T1 t2 J7 G - (if (not (new_dialog "setlayer" dcl_id)) (exit))
' N" f- }* N4 ?% c: P - (start_list "list_lay")
) z- E/ S9 H9 ]$ k$ H @6 C - (mapcar 'add_list longlist) ; initialize list box
0 P# q% |" P% T0 c4 u - (end_list)
0 ~. d2 I' ^6 @0 P - ;; Display current layer, show initial layer name in edit ; \( S# D0 d2 K5 h4 w" ^5 @% V8 x
- ;; box, and highlight list box., }5 ^, N2 g. z7 Z# b
- (setq old-idx lay-idx)* y" A: Q/ Q1 L( g3 F, f& u
- (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
" ~) i7 Y# s: q k7 p - (set_tile "cur_layer" (getvar "clayer"))
! A4 J0 I+ {6 g) F6 G - (action_tile "list_lay" "(laylist_act $value)")2 ]3 D. A; F' \9 \
- (action_tile "edit_lay" "(layedit_act $value)")
: k& Y: I! b8 P' l' e) ^8 o - (action_tile "accept" "(test-ok)")
' C( a i Y( B* ^9 D - (action_tile "cancel" "(reset-lay)")( o4 q. V) L! j' D( ^+ k5 J
- (if (= (start_dialog) 1) ; User pressed OK
: y; h) W3 r7 N' p- F4 ` - (progn* ]: u# H% e, w+ k2 A" D
- (if (= lay-idx nil) (setq layname "Varies")): c) ^9 d8 c9 w6 a% m
- (set_tile "t_layer" layname)
6 {0 { R- h3 {. H0 E6 I) a. t' X9 L - ; If layer or ltype equals bylayer reset their tiles
. m; @0 D; i2 V1 M7 n' M- j E - (if (= lt-idx 0): H' J: e& ~1 \: B
- (set_tile "t_ltype" (bylayer_lt)); H! W; H. s0 Y' {+ ^, k
- )
* I+ B% u& S0 ? - (if (= ecolor 256)+ J4 G0 O' ^4 v: M) j
- (progn& B/ m8 o5 A2 ?) Z) @# T
- (set_tile "t_color" (bylayer_col))" ]+ \9 f$ ]% y) P* M9 P7 {
- (col_tile "show_image" cn nil)
* V* Q$ @/ [- @; P( {: p - )
) \% n2 `! R9 o7 Y! Q+ g9 m - )
* Q* h* Y1 z2 q4 Q - layname1 G; N4 x: ]) q
- )
# a9 D% r! D9 L9 ?( Z/ F - elayer7 |8 ~% g5 k$ l5 N) a: n
- )
, Y- Q! E3 h9 G3 H9 W% W2 `+ Y - )8 |- B9 D% c" y
- ;;
! X" D& K% Y' r. L# p - ;; Edit box selections end up here
) x5 ?0 o0 c. i, Y - ;;/ d6 U; P+ \8 C- f
- (defun layedit_act (layvalue)
$ J) B: W% q4 L2 a - ;; Convert layer entry to upper case. If layer name is( d, @; y# C* I1 A7 U
- ;; valid, clear error string, call (laylist_act) function,- p7 q$ A/ Y a. Q
- ;; and change focus to list box. Else print error message.
% e$ N& a1 A) W% y+ s o - (setq layvalue (strcase layvalue))
" Q3 K& s: ~( X: v3 u - (if (setq lay-idx (getindex layvalue laynmlst)), N+ H# f. j! V) n! s/ n2 Z
- (progn: l0 `' @- F$ T, ]% U4 _
- (set_tile "error" "")
% ^7 b) |5 [6 [0 ^1 Q X4 d" n - (laylist_act (itoa lay-idx))) R4 a' b) `) g5 P* B
- ); f& Q+ R) ?1 s5 n% P( b
- (progn
* K Z" X* u( N. G7 S4 P' d0 G8 ~ - (set_tile "error" "Invalid layer name.")
$ I) S7 b8 `- W! Y - (setq lay-idx old-idx)
6 T7 j' F' t+ C" T E - )0 ]% M# ~; y% D, I
- )
9 W# \% s, _2 J* H3 \ - )
) ]' h+ g. U% e7 }4 O1 W: |4 e - ;;. I* `" R9 X6 I& K
- ;; List entry selections end up here5 X% a+ a* c# \5 N4 X4 n! Q
- ;;
; I% R) X; h# p- U: j# y- e - (defun laylist_act (index / layinfo color dashdata)8 [; ~1 J; B& r8 r4 e+ I7 z
- ;; Update the list box, edit box, and color tile
5 `$ l2 g" v7 J: R - (set_tile "error" "")8 A5 B/ s3 m+ Y3 |: v2 X* u
- (setq lay-idx (atoi index))! I4 i5 n( z+ N1 F0 a3 n
- (setq layname (nth lay-idx laynmlst))
: Y- @2 X$ h& n$ b# {, O - (setq layinfo (tblsearch "layer" layname))
- _) c/ d0 @5 P) |/ C0 t, T8 T - (if (= (logand (cdr (assoc 70 layinfo)) 4) 4)
; I% J3 U ?9 h - (set_tile "error" "Cannot change entity to locked layer.")1 n9 u; Q# ~' c' _& R
- (progn8 [* \+ E% s6 i$ x
- (setq color (cdr (assoc 62 layinfo)))
, U B) u' M' d$ I - (setq color (abs color)); g0 p* w. O* u1 T6 R
- (setq colname (colorname color))
6 X3 x0 o, {& Y( J - (set_tile "list_lay" (itoa lay-idx))7 V* j% _& g, g3 V2 u* ~
- (set_tile "edit_lay" layname)
! A7 q4 @; g. m/ ^5 d) R - (mode_tile "list_lay" 2)
?; `% b2 e6 D* T - )! L& p1 E) ?5 A+ d" Q; D6 \3 D. U
- )
$ ?6 ^! v. U6 T d' I - )/ ` |) H4 J+ w2 o" E
- ;;1 `$ y" u `% R- M9 r- {. m' V$ @
- ;; Reset to original layer when cancel is selected
+ b" H3 k T3 c4 }# Z: y - ;;7 f. q* O( a; q z; \7 ~$ F
- (defun reset-lay (); h: [6 X) Q3 ^4 X% E, A
- (setq lay-idx old-idx)
, ~1 H/ {* @5 P/ ^; O - (done_dialog 0)* E9 m6 |* y3 S0 m. p% B
- )0 ?4 B2 F/ M& M6 G6 Z
- ;;: P3 y' \! y: F0 p' Z B! X
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a 1 P2 Q0 }0 l4 W' t, p
- ;; string can't be converted to a real, this routine checks if the first
3 S# a4 d- L7 O4 W1 { - ;; character is "0". It also checks to see if the value equals "Varies".
7 N& F# o5 d! g+ O6 m. Z - ;;
3 c1 k, C( s* v - (defun getthickness (value)
5 `3 ]" q/ A- f: R: M } - (setq value (strcase value))0 T! I7 s2 ]) I8 u
- (if (or (= value "VARIES")
r6 e- E! d( [ - (distof value)' v' G, O" {9 x- b
- )
+ b! x, {1 a9 E+ D/ o i% y - (progn
. V/ S) h8 H0 X" X3 n - (set_tile "error" "")1 p) i4 I& e( O+ H
- (if (= value "VARIES")
h/ a% `, p5 v4 p0 b5 C- N - (progn8 u( u7 w* c0 T
- (set_tile "eb_thickness" "Varies")0 W! K9 U0 G( O, _+ b
- (setq ethickness nil)
: _- X- {. J) J) g9 A% @. l - )
7 b( t2 ]' w, l3 t2 V/ t$ T5 [1 v - (progn- F( H5 G3 h; W4 a9 S3 D: p
- (setq ethickness (distof value))" n3 l0 @* A4 q. ?# Z% q4 l
- (set_tile "eb_thickness" (rtos ethickness))1 r2 f% }# C' [+ X; `4 N
- ethickness
7 {) ~7 \5 E: N; y1 ~2 F" I - )
1 M- J+ t7 l$ X- j- o - )
1 A: ^6 `1 L6 G4 ]# s% O - )
: A G F8 H! w" A: [, X N8 w - (progn f, x/ m, T" j
- (set_tile "error" "Invalid thickness.")2 _; [: T' h5 r2 H6 x/ L" V
- nil2 Q* ?7 U2 i" ~3 e$ D' N2 c
- )
! o6 } p) w* y3 j/ J, l% i' o" ? - )# v* M" x* M, Z2 f [
- )
9 t; W- D' @3 Z& V" ~. e8 W6 J - ;;
7 W4 G! f' s- A( ? - ;; This function make a list called laynmlst which consists of all the layer
( [' K6 Q! P! N/ [; ?' [7 B - ;; names in the drawing. It also creates a list called longlist which . h' S. p! [( ^( C$ r! _( A3 {7 v
- ;; consists of strings which contain the layer name, color, linetype, etc.
5 O4 N' ]% y) {7 `5 T- J; m& P - ;; Longlist is later mapped into the layer listbox. Both are ordered the ( |0 ?# C6 _0 w/ V
- ;; same.
; H: R9 e& q* q: s9 @2 M - ;;
+ ]: P+ @: N5 Q0 Q; J - (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname , u" L4 S3 i# f7 n
- xdlist vpldata sortlist name templist bit-700 N% a4 n1 Y! j' t; W
- )5 \* U+ O( I6 f. m$ e( V
- (if (= (setq tilemode (getvar "tilemode")) 0)
@* Y& N+ | y+ e - (progn
" d1 w- c: _( _9 l+ \ - (setq ss (ssget "x" (list (cons 0 "VIEWPORT")
8 L! P, _0 c. B: C9 h - (cons 69 (getvar "CVPORT"))( @: o* u0 v/ D5 T& J4 W1 L6 r
- )0 W$ H) X4 k) X% y F
- )
" \1 z6 t7 S3 R% p2 r& w - )
. I( d# |6 ^( J5 l) f' J! e - (setq cvpname (ssname ss 0))
* e- W3 ~' P" [" g - (setq xdlist (assoc -3 (entget cvpname '("acad"))))
# \/ S6 Z" X8 ~; V! l - (setq vpldata (cdadr xdlist))5 d$ K' D' F5 {: v" ~8 y: V( H
- )
+ {% p2 Z! b3 ` - )
8 J$ h9 g% G: A: Z' J - (setq sortlist nil)
& e- E3 e2 H+ `! I* B; @ - (setq templist (tblnext "LAYER" T))2 B$ F& k+ ^6 g' U7 c; X7 i4 f6 n
- (while templist/ H3 S1 D4 D2 u3 U
- (setq name (cdr (assoc 2 templist)))
8 h2 G9 c) K% Y - (setq sortlist (cons name sortlist))
( d |- s1 u0 P1 }2 ? - (setq templist (tblnext "LAYER"))0 I( ~3 X" ~" q/ g" l3 T: X6 |
- )
" D, @& V# A, P- \( d4 R - (if (>= (getvar "maxsort") (length sortlist))+ b. _8 o$ @ b& D. j6 i' _; }" H
- (setq sortlist (acad_strlsort sortlist))
8 d. j% C5 h! {+ N7 C3 X8 k - (setq sortlist (reverse sortlist))7 e7 S% G. t# Q* @: @# }
- )2 M% q$ p R' h$ ^" a
- (setq laynmlst sortlist)
! K) e! I6 J& t1 l8 E1 c" T - (setq longlist nil)
# Q$ Y8 Z: L7 L9 N - (setq layname (car sortlist))
% z4 k A/ t T/ ` - (while layname. q; P1 g! l4 v2 p
- (setq laylist (tblsearch "LAYER" layname))
+ e. @* s, `3 ]% D - (setq color (cdr (assoc 62 laylist)))5 T4 t' _ e7 v# @. X: z
- (if (minusp color)7 i7 N: {9 y$ @! x. i1 T
- (setq onoff ".")) ~4 K2 ]' Q+ y. p. {6 x
- (setq onoff "On")( f5 B$ n" h; Q( }# J
- )
; n4 X4 u6 N( Y3 ^- T5 v - (setq color (abs color))
2 ~2 ?4 g3 d1 X/ m/ ^+ e - (setq colname (colorname color))
# p# t& L. ^- ~; R - (setq bit-70 (cdr (assoc 70 laylist)))
0 l2 B' J% T, E% Y& f# Q - (if (= (logand bit-70 1) 1)
' q; O; u: O) h9 w - (setq frozth "F" fchk laylist)
/ i) H6 j& P b ^ - (setq frozth ".")+ V4 b; [0 @% g! J U# L; b
- )0 @( C, t. n- v, K( K* \/ r
- (if (= (logand bit-70 2) 2)9 A- s+ h* \% o8 h4 [; ?! ]1 ^/ [9 P
- (setq vpn "N"): y, a7 L+ L4 }8 f2 u; _
- (setq vpn ".")1 h$ w7 X4 o" H) M6 `+ ?
- )1 ~2 B' l, J7 X. L) S
- (if (= (logand bit-70 4) 4)
9 K$ `/ I: ^9 a# h2 e - (setq lock "L")
" t9 k% P+ x7 q9 P4 ^( \/ R - (setq lock ".")
5 B$ L' O5 A, n - )' r0 u8 X. {: K; j" S3 T
- (setq linetype (cdr (assoc 6 laylist)))
1 y5 ?% p8 B( Y4 A o" F - (setq layname (substr layname 1 31))
# M" \. y& p, o - (if (= tilemode 0)
9 j( G5 {! p! o8 w" j" |, { - (progn
, a7 ` \- x3 I6 ?# y - (if (member (cons 1003 layname) vpldata)
" E/ r3 T. l' }" D1 u - (setq vpf "C")- l7 P! p5 m, A1 B! ~% j& H0 s& G3 J
- (setq vpf ".")# \0 u1 z1 q1 A' }1 S
- )
0 h" ~* _8 s6 r4 Y. ?& E0 ] - )# X$ k% t" [! {5 D9 a b
- (setq vpf ".")
& O5 U# t3 \2 J7 n; @' [ - )' d0 m. _$ O1 k
- (setq ltabstr (strcat layname "\t"
3 W, g, @! `! W) Z( u! E - onoff "\t"( X7 b2 ?2 Z0 O2 E$ a; P1 k
- frozth "\t") M7 d9 V! C7 d5 k! B
- lock "\t"
1 G, L; n1 t$ U. x! L, v2 K - vpf "\t"
0 o+ f" |; b) H - vpn "\t"
& H3 B/ f6 E! ]9 S B8 d - colname "\t"
6 |6 J# l2 u4 p/ v' \, n6 n8 v& H - linetype
$ h( `6 c1 E: Q2 O5 _ - )
8 b' Z0 Q) c" n; w& P - )4 m1 G# x# `7 _' a: f* Z) u. @
- (setq longlist (append longlist (list ltabstr)))' m" @, l* @- S7 C( T5 [
- (setq sortlist (cdr sortlist))
~) W+ Z; g5 ~: n - (setq layname (car sortlist))
) T7 r* U' V* D/ F0 z - )
2 O5 h5 g6 z- V* a5 v* U; Z - )8 f: i: m# t* |# x# E
- ;;3 R$ B- ~1 m! ?4 N( s: Q1 H" Y' D- C
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
# z/ A$ C# Q8 X/ M+ g. B - ;; linetype names read from the symbol table. Mdashlist is list consisting
+ g' K1 ?0 y3 A, K - ;; of lists which define the linetype pattern - numbers that indicate dots, $ Z, ]' O: ?$ g2 J5 ~/ T
- ;; dashes, and spaces taken from group code 49. The list corresponds to the 7 ~, u5 c y4 Y. L
- ;; order of names in ltnmlst.
$ g7 e i5 s R, m; v7 D( q7 ?! V - ;;
5 `6 w9 ^ S6 ^* G* w# F% | - (defun makeltlists (/ ltlist ltname)
' G/ i4 ^4 W3 B! Z - (setq mdashlist nil)
; u. N w* O) f4 D" J9 \+ f1 y - (setq ltlist (tblnext "LTYPE" T))
/ ~$ b S4 t7 @, E: |% r/ m - (setq ltname (cdr (assoc 2 ltlist)))
$ N3 D" t9 f+ @7 m - (setq ltnmlst (list ltname))* f/ A9 b6 {1 X$ a; `6 N) c
( O6 }! `& p, |( x0 B- (if (= ltname "CONTINUOUS")
' k& ?5 ^) q, P. \/ c( J - (setq mdashlist (list "CONT")): M: F/ N, U* h: J( Q9 K4 f) W
- (setq mdashlist ' Y1 \2 G1 H( h% T% c/ \, l& v
- (append mdashlist (list (add-mdash ltlist)))( `' J! l7 p3 ]' g% J; L: C8 Y3 ~' X* O
- )/ b# _" ^+ U7 ~3 s
- )( x" }( B' a" m9 P, _
- (while (setq ltlist (tblnext "LTYPE"))
' j, e ^5 ~+ w3 [* @3 {# b) t - (setq ltname (cdr (assoc 2 ltlist)))/ U) O3 R2 `6 b1 ^
- (setq ltnmlst (append ltnmlst (list ltname)))
& G8 V6 ^% h1 L; u1 G - (setq mdashlist " E! \$ X- g/ Q4 h7 w2 C0 a
- (append mdashlist (list (add-mdash ltlist)))2 L+ L1 x$ K# t, u! v* B
- )
. m6 B2 M' p5 B4 L1 x - )
* ?% L! w& d0 F! Y5 t) W; Q - (setq ltnmlst (cons "BYBLOCK" ltnmlst))
. u1 a* H3 t, y5 C7 Q5 g - (setq mdashlist (cons nil mdashlist))
; g8 J0 g* [9 M8 a+ E# G. i - (setq ltnmlst (cons "BYLAYER" ltnmlst))
( q" B H' ?2 M/ L - (setq mdashlist (cons nil mdashlist))
" v% r6 y0 B: i. }# i - )
6 P$ p7 t2 k0 L* w7 I - ;;
4 c( H. D8 ^) a+ R& o( } - ;; Get all the group code 49 values for a linetype and put them in a list
( ^2 |3 _' W8 o- L( F& W - ;; (pen-up, pen-down info)4 {* e: h8 E" k' ~' {) L1 n2 r
- ;;
6 S2 v( T, P- r& D) ~! f - (defun add-mdash (ltlist1 / dashlist assoclist dashsize)
3 D3 ~, v: q) l Q - (setq dashlist nil)/ |+ X2 P0 W, C: D- Z& @! B$ g
- (while (setq assoclist (car ltlist1))0 w. `6 J3 y3 t4 m3 J
- (if (= (car assoclist) 49)$ J( c0 f1 P8 S- r/ j8 M
- (progn$ v0 `0 `" c. N1 ?; W
- (setq dashsize (cdr assoclist))
5 F+ r: S# H. i. y0 g! m- i4 i) s - (setq dashlist (cons dashsize dashlist))
8 k' q" a4 H/ w3 n% w - )
- _5 T; K" I) ^$ ^; j - )
% T& ]6 Y+ e& E% S$ A( P - (setq ltlist1 (cdr ltlist1))1 p1 S3 c7 ]6 {9 B, H# m' F
- )6 O1 ^5 X& w Q1 y6 T* a% K' o+ X
- (setq dashlist (reverse dashlist))/ t1 `5 W8 K2 L$ y* N
- )
6 ]) i, k8 v" A0 U: l, ` K - ;;
. \ p# M- ?" Y3 `, v. X - ;; Color a tile, draw linetype, and draw a border around it
. w" t9 Z& p$ a. B- ~ - ;;2 K, g) t4 X) L3 W @0 r) }% e
- (defun col_tile (tile color patlist / x y)
9 j8 j- I' P# z" ?9 Z - (setq x (dimx_tile tile))$ Z/ A& w- [/ c8 C
- (setq y (dimy_tile tile))- o% j- l8 s" A1 s) @
- (start_image tile)
( k9 T$ `1 _& T, N2 o. [6 s - (fill_image 0 0 x y color)* y3 w- i1 y& s8 }+ _
- (if (= color 7)9 R* R s1 y' d0 W. V: B+ M
- (progn8 G7 K4 G+ T' j) v8 _1 i! _
- (if patlist (drawpattern x (/ y 2) patlist 0))3 n5 Z4 Q9 N, w. m0 B0 x7 A/ N
- (tile_rect 0 0 x y 0)
4 {. H% M, J- ^' E - )7 G4 V7 C7 }1 Y
- (progn
& r2 t+ R% A5 e& F5 B7 ] - (if patlist (drawpattern x (/ y 2) patlist 7))
k, a- D. j4 V - (tile_rect 0 0 x y 7)* v3 A: K! R! S* E& Q( h! L6 j! S
- )
7 w- o9 \8 ]+ n3 Z4 J+ y - )
6 o: H. u5 w& G - (end_image)
. O/ o9 \; Q; w m8 w - )2 @' d- d1 B& @. ?+ l0 ?0 H M9 c, H# [
- ;;3 l g$ R D/ L% v9 a+ c# H2 v
- ;; Draw a border around a tile
' g5 {' u* M1 b: X9 B; R9 e$ D - ;;
8 U: c. \* q- B! V. J; ^/ j - (defun tile_rect (x1 y1 x2 y2 color)
0 V$ ^% ?; @( Z1 J3 b( F) P6 s - (setq x2 (- x2 1))
& I& l r8 l5 {+ j* U" p3 u - (setq y2 (- y2 1))$ q: O3 k/ ?5 O) Q8 ^" K
- (vector_image x1 y1 x2 y1 color)# t. {3 r6 U0 I1 C/ p8 q. O
- (vector_image x2 y1 x2 y2 color)2 `7 u9 O. a! R. q- K) i7 g6 j7 ^& m
- (vector_image x2 y2 x1 y2 color)! z c; _/ P* f- F
- (vector_image x1 y2 x1 y1 color)
9 N* c& ~: }: N% y- A/ u1 E: } - )# f3 P6 t6 L) K5 \4 D2 D, H5 L5 q
- ;;
# u8 k. k k4 r# G8 o% s8 @ - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image 3 ~, [4 f r1 ?1 O; X2 S2 _
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
( k2 H; X* U1 V! V0 A9 V+ N) ^ - ;; list of numbers that define the linetype, and color is the color of the
- a% o a* r( j7 L - ;; tile.
7 _# W% G- P: W( V: K - ;;) ^, W- {2 i) i& v- ]+ X3 N4 g
- (defun drawpattern (boxlength y2 pattern color / x1 x2
' J) y" P% |+ \; S6 ^ - patlist dash) \: U& |- ^$ O/ l f
- (setq x1 0 x2 0)7 f |, j! z( ?- f3 k! o
- (setq patlist pattern)9 Q7 v2 X- b* d( ^. J" ~; n [7 N
- (if (= patlist "CONT")
7 [0 O' |0 t) e# e/ k) [. W5 r - (progn ! l, g1 Z4 F$ m- X9 n
- (setq dash boxlength)
$ U) r' ^2 m8 x$ x8 [ - (vi)
( o _0 ]. [& X- @3 }8 a - (setq x1 boxlength): a2 Z; }1 D _* m ?
- ); i& B' Z7 O# f |( w* ?
- )$ p2 A1 T* x! E7 g+ D$ K7 v
- (while (< x1 boxlength)
( `; [* f4 @2 J5 e/ o/ h0 w7 { - (if (setq dash (car patlist))
g( {. G2 P t - (progn
9 u' I& Q/ S7 l# A" l, f) j - (setq dash (fix (* 30 dash)))
4 M9 l1 i' Q* F1 z3 ^2 { - (cond
3 c) Z# ]( `7 z( G3 u - ((= dash 0)
I0 m' }1 w; ^! @ - (setq dash 1)
9 U8 K2 |3 x0 h \ - (vi); y. m4 X2 y6 \% N I8 e3 i
- )/ P4 [. P2 E/ d1 v6 o z
- ((> dash 0)
E; a9 g0 n w% w& ^6 n - (vi)8 o& q0 }. Z/ m' P! d- |% T' r
- ), K& k1 g' W5 a1 s+ w
- (T . d* D6 V% V5 J; g3 g
- (if (< (abs dash) 2) (setq dash 2)) N+ y: I) A! h/ K5 c& F1 s
- (setq x2 (+ x2 (abs dash)))5 ~- Q7 p9 b6 A- `+ d8 j
- )8 O4 e8 g0 g+ p! I7 n' e/ a
- )
* a( M; D# V" i) l: u - (setq patlist (cdr patlist))+ j- `- L6 G" a& ]/ i8 ]
- (setq x1 x2)
) `* a4 y1 X8 Q5 j: z - )
! q5 L1 y; m- O! ~1 Z - (setq patlist pattern)1 x; y. B7 r/ ]! p/ H
- )
% I# P9 h1 c3 [' w, R. H: c2 z1 o) W/ x - )* q; e g6 j' q; a; t
- )8 R7 M- i) e; Z/ B9 \+ a
- ;;8 D4 }! n8 A( }; e
- ;; Draw a dash or dot in image tile3 t8 }) g, s0 D5 n; _$ {8 g9 e
- ;;
( R3 d6 `% F. T# t - (defun vi ()
/ B; T% o0 e d( E$ d - (setq x2 (+ x2 dash))
/ O. Y& G) a3 G - (vector_image x1 y2 x2 y2 color), L, g5 e# h5 [) r S. G0 _
- )+ M w. k3 r/ b
- ;;4 l, A; e( U+ P& B1 d5 d: O; q
- ;; This function takes a selection and returns a list of the color, linetype, 3 E; F& F" J8 I1 r0 j) O6 Q
- ;; layer, and thickness properties that are common to every entities in the) c7 j" l8 I( c, m; s
- ;; selection set - (color linetype layer thickness). If all entities do not u% ?- X# X" l- `8 ~- K e9 s3 P1 E% y5 s
- ;; share the same property value it returns "Varies" in place of the
8 M6 J# n7 G% q# |% } - ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
# J" u8 V) b" \5 h - ;;' B, {- ]$ X8 Q
- (defun getprops (selset / sslen elist color ltype layer
6 J G3 z( c& q8 \# }8 d. Z - thickness go chk-col chk-lt chk-lay chk-th ctr)
, V G0 S* H! v - (setq sslen (sslength selset))
9 A8 g- D' W5 g: E% Y1 C - (setq elist (entget (ssname selset 0)))
0 _/ q, _8 A" z; K: W# W - (setq color (cdr (assoc 62 elist)))) D9 ?8 o" i8 F- f
- (if (not color) (setq color 256))- C+ l( x# ]: K! h* i' n5 C# e
- (setq ltype (cdr (assoc 6 elist))), @5 r# b! k9 E* ^0 X3 q
- (if (not ltype) (setq ltype "BYLAYER"))
) d. |: ]! j. U4 ?! C" G0 ]" a0 H i4 n - (setq layer (cdr (assoc 8 elist)))1 D8 L8 M6 G7 h/ T
- (setq thickness (cdr (assoc 39 elist)))/ A9 C1 u" x$ K0 c$ P8 I
- (if (not thickness) (setq thickness 0))
0 |0 z6 w# Q* y) @3 g - (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)
5 j/ f9 Z) j' o+ O) u. S* b* X) \$ Y - ' k' Y% _3 C2 j( o
- ;; Page through the selection set. When a property$ [+ G/ q6 m8 w1 N
- ;; does not match, stop checking for that property.
% Y9 k$ T' O! W7 i - ;; If all properties vary, stop paging.
6 d$ `: d* g2 T+ M( |
) Z+ x% \! _7 Y/ n! V! A- (while (and (> sslen ctr) go)& X, `8 a* _8 Z0 \/ Y
- (setq elist (entget (setq en (ssname selset ctr))))2 A' H, @$ c/ U
- (if chk-col (match-col))2 c- ?1 K. V. _. z. z4 _
- (if chk-lt (match-lt))" l7 y2 i8 r6 Y# q f4 k9 \
- (if chk-lay (match-lay))( I6 Y0 \0 }( k) M1 }& |1 X) Q
- (if chk-th (match-th))
, `' ^4 o1 P1 B3 H - (setq ctr (1+ ctr))! h& w! n) R$ L
- (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th)): k0 E8 r( _/ ?5 E0 o; R
- (setq go nil)
# }' k, {. F6 [& R2 k3 C - )
4 m }, n; V- T' {0 x! {' J - ). R% v# V! n0 G d: ?. Z8 U
- (list color ltype layer thickness)+ \$ V$ r; x3 V: ?) A; k
- )
: D7 _) X3 X" P6 J9 X0 @
( k. I5 v% s! w. i2 E9 |9 k, t: \- (defun match-col (/ ncolor)
& t3 s- e* B$ B - (setq ncolor (cdr (assoc 62 elist)))3 o9 ?5 o/ B) k+ x2 s
- (if (not ncolor) (setq ncolor 256))
. K/ Z& I0 s% w - (if (/= color ncolor)
3 I0 V7 [" c" z1 d% @: L - (progn
6 C. ^* \. i6 T1 v! S* T5 c - (setq chk-col nil)
. ]3 W1 m$ T8 X1 V. u - (setq color nil)' L$ R) u" o, I
- )
2 z- B/ U) f2 h+ m7 a+ L - )
0 T6 y5 @# Y8 d: J( T% \2 k - )0 u! r2 N. T8 }. u4 q
- $ r: Q, P8 J0 f, V% a
- (defun match-lt (/ nltype)' a! [: x0 H# A0 C$ _4 ~% E
- (setq nltype (cdr (assoc 6 elist)))
9 N5 ~( M" X" F7 \8 N5 ` - (if (not nltype) (setq nltype "BYLAYER"))
' F7 h% w+ B9 z) H5 o! w- }* w - (if (/= ltype nltype)
) P5 @$ v5 I! J* z! q# M7 w5 n% U - (progn( q; j* @1 ?6 T- C% u" W/ B
- (setq chk-lt nil)/ P& `3 d4 ?, w& Q+ X& a
- (setq ltype "Varies")* ?0 [: d( |2 X/ m4 b! x c% ^
- ); |! Y) I- b5 P
- )8 _1 i s9 a6 m# v2 ]: Z
- )
1 s' L# Q, O0 |5 V' E. N: k8 t5 G4 { - 6 j3 X6 M( o! J) y. p
- (defun match-lay (/ nlayer)
! w" V* i$ u1 @( v1 S. M/ ~ - (setq nlayer (cdr (assoc 8 elist))); \' M, N* \( p* L
- (if (/= layer nlayer)
, d# k4 R7 F* k/ T* x% D8 y - (progn9 o. `2 S- ]* y/ n
- (setq chk-lay nil)5 z/ Y" g Z' N1 L" _
- (setq layer "Varies")
" ^; K# u, S# q% l! |- u4 D - )
5 `( w1 B! ?! b1 D - )
% f& p: e* o: ?: J; ~5 \ - )
/ L5 v# N. f, H! R2 B( k
# q! w8 h7 D7 A( Y- \# T- (defun match-th (/ nthickness)5 v+ l0 o2 C1 W0 _2 ^
- (setq nthickness (cdr (assoc 39 elist)))
7 M. c3 z6 d& B" s0 ~, }, S - (if (not nthickness) (setq nthickness 0))
* E$ s: r2 s; v - (if (/= thickness nthickness)
9 n$ X! o) i7 G$ V - (progn5 E* D" S# F1 ^
- (setq chk-th nil)5 A, ~. v6 d# [
- (setq thickness "Varies"), f0 W- W1 g. y; i9 B, B: u L) b
- )
5 o( X4 H' T1 p N# k8 s I - )
* S% f& }( ?+ y$ k3 z - )
1 f7 n9 w) Q* C: n3 v5 X
8 D' p) R/ @9 W9 M8 T$ I- ;;
. W& \" B& X/ B+ `5 j/ n9 ` - ;; If an item is a member of the list, then return its index number, else ! q J0 k5 n$ X( T0 Q# m& @! ]7 }
- ;; return nil.6 l. B2 w- \& Y8 _) T8 L
- ;;
9 a- z5 b# j8 Q/ T# j- W3 ]4 k - (defun getindex (item itemlist / m n)
* }8 O" G& B I K4 e( \3 S* ~9 } - (setq n (length itemlist)); p: S2 i" k1 {8 z( p. N
- (if (> (setq m (length (member item itemlist))) 0)& e" C: a; l2 _ f( F' b# f3 }
- (- n m)
; p& `# a6 W0 h - nil+ E) [! h9 e5 f* b( H
- ); u1 H7 u i' a, ]
- )
' N; Y9 ?1 N1 X3 R0 Y - ;;
$ s8 Y4 F0 O, P, t8 s& Z - ;; This function is called if the linetype is set "BYLAYER". It finds the [" ?1 X: L7 c- a; O) l( R$ a' M
- ;; ltype of the layer so it can be displayed beside the linetype button.
5 N, W6 \: f2 q& B' l' r - ;;
, D) B! r5 l: {3 V) c. ?; n - (defun bylayer_lt (/ layname layinfo ltype)
2 {6 [5 S' N* N4 N6 d2 {/ @ - (if lay-idx
; Z9 T/ I4 @( ~; n8 | - (progn
; e, ]# Z$ p) `5 |; | - (setq layname (nth lay-idx laynmlst))' T f, {! y1 k, o
- (setq layinfo (tblsearch "layer" layname))
0 w' T l0 H6 r, N- H! n: b - (setq ltype (cdr (assoc 6 layinfo)))) v5 G7 D d5 j7 b9 r% q7 I
- (strcat "BYLAYER (" ltype ")")$ `* d' c) R* E! k' z* l
- )
4 r+ ]6 l" ~8 l6 ]9 X - "BYLAYER"
& z' M! S# w+ h* J - )
1 b" P5 A/ ]6 A" Z* { - )2 L8 E# ^( ~5 ?& { d
- ;;2 N6 M7 @( I, W" Y3 x& a) M
- ;; This function is called if the color is set "BYLAYER". It finds the
) n& X8 D5 e- J, A2 X( C - ;; color of the layer so it can be displayed beside the color button.* R/ _- n2 D1 X7 `; s' s
- ;;
6 c* J8 a! d; f8 W - (defun bylayer_col (/ layname layinfo color)2 H7 o f7 f" B& E
- (if lay-idx8 V: b* f! c/ K y5 v- K
- (progn
}2 l5 b+ y& A. p - (setq layname (nth lay-idx laynmlst))* n. ]2 Y+ y" F4 r7 J8 O0 `
- (setq layinfo (tblsearch "layer" layname)), D$ t7 {; h) Y2 v8 P: r
- (setq color (abs (cdr (assoc 62 layinfo))))
9 D. y8 c/ M8 o+ q; l - (setq cn color)$ P. `/ M/ x* _0 O5 T1 r' h7 n
- (strcat "BYLAYER (" (colorname color) ")")
6 \& h0 s- R+ p3 R - )
# A7 q% k2 T! N2 |7 @: h3 f7 f - (progn# H; k( Q, r8 L8 q. N' S3 N8 v
- (setq cn 0)
8 a1 u' {6 R0 U5 `9 R0 k; N" V+ F - "BYLAYER"
- ^5 d# Z) i/ @( c - )
8 p4 G4 s, O# S( `) r) U1 ~ - )
6 X% [# d' M( A: h - )$ I0 y3 l$ e) w2 m/ g$ P2 V
- ;;+ q7 F/ Q+ |1 a$ c. k9 F
- ;; If there is no error message, then close the dialogue. \, ]; O! Q, \- e+ T. `: C
- ;;3 ]: @* [% a- L( g
- ;; If there is an error message, then set focus to the tile
6 I2 S' {2 c- k' @+ o- q - ;; that's associated with the error message.% m: i$ y( w2 H2 }8 E
- ;;8 u6 v0 o. I' c* g; g2 P5 {# K
- (defun test-ok ( / errtile)
) F3 X/ `# ]: Q5 z, e - (setq errtile (get_tile "error"))+ K. f! d% e ?9 z( e% ?( s2 H* f8 L
- (cond. p# C$ A$ q! U% V, I1 o4 o
- ( (= errtile "")) N. r4 G- H8 ?" b5 J$ Y
- (done_dialog 1))
; r# ^. t" W" ?5 j$ J0 _ - ( (= errtile "Invalid thickness.")
8 B& E7 Q, @. h, U0 p B% g - (mode_tile "eb_thickness" 2))5 J/ G0 c7 Y$ a8 P% _3 N
- )0 R7 E& p* J; q& k$ {" a8 I* X
- )' }5 O1 O9 k( W* b1 T9 ?
- ;;
. O$ G- S3 z/ ~, B - ;; A color function used by getlayer./ ^$ j1 x2 G+ Z! T0 ^# N; `! s4 ~
- ;;
8 \7 ^" P+ ?, Z: Z3 M4 b: b' x - (defun colorname (colnum)
1 x- N$ P- q j# j - (setq cn (abs colnum))
1 m, w5 X; ~1 x2 w4 D$ Z# A' a - (cond ((= cn 1) "red")4 n: y* m& b9 @, b: ^+ j* A* b
- ((= cn 2) "yellow")
, x" V8 T/ S$ k9 P9 m" p - ((= cn 3) "green"), I$ Z8 Z# O! c% I
- ((= cn 4) "cyan")& }" {9 ^' s/ _
- ((= cn 5) "blue")
$ A- u( \9 g5 s# j8 R! D3 w7 y - ((= cn 6) "magenta")6 ` W* z0 v4 Y
- ((= cn 7) "white")& F/ L! _) x" w/ J
- (T (itoa cn))/ `: a/ L( Q3 M! k
- )
* _/ k* y* K' ` b7 C9 n - )2 U1 g5 M- }9 U5 V& L
- - R! d2 T1 d2 k2 P; `1 a
- ;;; Construct layer and ltype lists and initialize all' D5 s. t; u1 {1 C4 |- Q0 u' @- p, W
- ;;; program variables:+ P. g; s, M9 h* u) Q- }% p
4 l/ P/ ?0 M0 ?- (makelaylists) ; layer list - laynmlst
' }" X6 k ?$ \7 C - (makeltlists) ; linetype lists - ltnmlst, mdashlist0 w% d7 t% k0 \8 a
- ;; Find the property values of the selection set.) o2 I6 N3 G$ B! K9 x1 C
- ;; (getprops ss) returns a list of properties from
# k" w" h1 l5 H" C; h e - ;; a selection set - (color ltype layer thickness).. `/ `. t$ }: M r! K0 f2 U1 l
- (setq proplist (getprops ss))
' _; d8 B$ S0 B. i9 ? - (setq ecolor (car proplist))9 B5 l" q7 p$ z0 U( T, @6 Y
- (setq eltype (cadr proplist))
1 X% ~6 \& a @' J: y' @ - (setq elayer (caddr proplist))
+ X Z, n; @8 g: z/ M* _. V. V' |" } - (setq ethickness (cadddr proplist))
& q' t/ _# g Z) b& T - ;; Find index of linetype, and layer lists
0 D# d* q8 G$ p: y3 a# a - (cond+ k5 ?, P$ W/ V; ?1 X
- ((= eltype "Varies") (setq lt-idx nil))% Z! g3 e4 U, V
- ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))
) s% |5 d. a$ l3 w U" Q. z - ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
8 p+ h! `5 I7 X2 [7 v: `/ P - (T (setq lt-idx (getindex eltype ltnmlst)))
9 @: W% D4 V. z5 A" D5 ] - ). b% m, h! Y" A+ U+ `7 e& q0 O
- (if (= elayer "Varies")( C- S, o' b8 m) p
- (setq lay-idx nil)% b" v0 l) z! d3 W5 o1 N# [
- (setq lay-idx (getindex elayer laynmlst))
& j& D2 G2 z3 h8 b# M" ] - )" X* u9 _/ c; f p
- (if (= ethickness "Varies")
7 F7 p, E8 l. W7 I* }1 r, Z - (setq ethickness nil)
9 J$ ^8 y+ W, a5 M7 [% D - )' s( l7 k: b: N( X
8 {7 A2 c5 i3 N) I. u& v) }- ) ; end (ddchprop_init)
. ]. @3 g7 M9 @$ F5 L5 p - 6 v5 J% `5 w8 L5 N4 K7 q0 y1 e
- ;;; (ddchprop_select)1 p5 T5 u5 y; O& D- u
- ;;;* x. n1 G1 ?" o6 p
- ;;; Aquires selection set for DDCHPROP, in one of three ways:
( l- b* K# H6 }+ A; n - ;;;
z2 M& s) u4 z" d9 C" r9 g - ;;; 1 - Autoselected. h6 N& `) C& H2 z$ s- L' w* |+ o
- ;;; 2 - Prompted for.
% q5 c" d) Y+ b" K& X, p( F5 C - ;;; 3 - Passed as an argument in a call to (ddchprop <ss> )
- M" o0 r" W: x7 o, K0 c9 Q - ;;;$ |4 W B0 F) h, z8 @( u
- ;;; The (ddchprop_select) function also sets the value of the
2 P0 H5 i. g, V; C/ ? - ;;; global symbol AI_SELTYPE to one of the above three values to) q8 X8 ^3 V8 Y# U! e
- ;;; indicate the method thru which the entity was aquired.7 @& X$ K4 [$ U4 y% l$ n: U2 Y. W
' O; l$ ^2 t8 k( M/ d2 J% c3 v- ) p5 o# V" X9 T4 e/ c* w4 Y
- (defun ddchprop_select ()/ M8 j6 w! \8 c ~- I
- (cond! [' h8 u W5 i0 f3 M
- ( (and ss (eq (type ss) 'pickset)) ; selection set passed to3 P! q! p7 }- b+ c6 B+ s: Z
- (cond ; (ddchprop) as argument
4 ^7 ^8 M3 P& N4 Y - ( (not (zerop (sslength ss))) ; If not empty, then7 a# B9 d0 B" O7 ?
- (setq ai_seltype 3) ; then return pickset.* _3 ^) y6 o+ n9 R! b
- (ai_return ss))))
2 E% C9 x* F. O3 |
- O6 j; O. h0 e: s# z- ( (ai_aselect)) ; Use current selection
$ w' k9 x9 J s6 {7 b/ z4 m - ; set or prompt for objects3 Y8 g( g& Z# \5 [6 ]9 U$ }4 @
- ) W! P3 [0 t. c! w3 L
- (t (princ "\nNothing selected.")
/ D; x+ V4 ?* N - (ai_return nil))
: q% \+ a* V$ V3 G( N6 Z - )
6 p3 P: C" T" P: L - )
* Y+ o& Z( Q( |% \8 V$ o5 x: O - 8 g- o0 k$ L$ o' m0 {
- ;;; Define command function.
4 M1 D! \( C9 M# ?
' `6 v# t1 }) K1 l0 g U- (defun C:CH ()% c0 p( h5 x* X# ^! r
- (ddchprop nil); O" A* G2 Z2 Y% p. H4 N
- (princ)
9 F/ f1 t$ W k7 T# _1 ^ - )0 a4 R0 h' r# [2 T* k9 r& L7 H
, p( E# t3 o* A' D' K- " J: d2 L# f: i
- ;;; Main program function - callable as a subroutine.6 w% `, [- c Q3 \1 n7 h0 S
- ;;;/ c3 }8 ?1 U5 W. A
- ;;; (ddchprop <pickset> )
x q! z+ o! H0 h, u - ;;;
- Z K* [0 k8 [, } - ;;; <pickset> is the selection set of objects to be changed.
7 G8 w$ r2 {+ F& W2 l' H5 R - ;;;
6 q9 F. U& D: x& T- A5 O - ;;; If <pickset> is nil, then the current selection set is
% m& l# N0 n6 o! [6 F& |% a) n - ;;; aquired, if one exists. Otherwise, the user is prompted$ U5 s3 G7 h! W
- ;;; to select the objects to be changed.4 r$ q% w! v! F1 c* V) ?: j0 D
- ;;;
. C" c! y. i1 z5 K; j* U. _2 w - ;;; Before (ddchprop) can be called as a subroutine, it must
5 |. L. w# v+ k - ;;; be loaded first. It is up to the calling application to3 ^% g$ j, m9 ]7 I
- ;;; first determine this, and load it if necessary.: p# F3 z# w* W( x
6 r1 k$ W- @ J2 E! Z) \- (defun ddchprop (ss /2 l$ g' }7 X" o" C N7 C% F
- : i& [6 N; J( | @9 U+ H( \9 Q
- add-mdash ecolor ltedit_act s
3 c$ V9 H6 _. o- { - assoclist elayer ltidx selset
, N! _$ t4 J( C! l3 l* t: \: B - bit-70 elist ltlist set_col_tile
D+ o( K/ ~, P3 E - boxlength eltype ltlist1' e. l% [6 d, P' D# K- d6 K
- bylayer-lt en ltlist_act sortlist r5 c. ^( w4 B$ L$ @5 x
- bylayer_col ethickness ltname
9 X! w$ t+ {% o5 m - bylayer_lt fchk ltnmlst sslen
$ ^. e! s- H- q0 O5 D - call_chp frozth ltvalue templist
8 k8 A5 V' t z3 p- o7 q - chk-col getcolor ltype temp_color1 a. K, |% m4 X8 r- g( l
- chk-lay getindex m test-ok
2 ] b! H. v# b7 u: d! K P! ^# J - chk-lt getlayer makelaylists testidx
2 d q2 b4 {: L; Y" J - chk-th getltype makeltlists testlay
) C8 ?$ w; G. A. w# ^" A% { - cmd getprops match-col th-value
g/ b* P- X7 H - cmdecho getthickness match-in thickness
+ {0 z" T$ Y, Y6 y' o - cn globals match-lay tile
# J& k. e% |9 o - cnum go match-lt tilemode5 F$ U; S1 ^: Z3 T% O9 @& C
- col-idx index match-th tile_rect
& L. c4 X( t% N% V m - colname item match_col vi
% W. U# H, z% U3 B7 @; b; b - colnum item1 mdashlist vpf
# v1 ~, E& X% e0 y. n9 { - color item2 n vpldata
5 l0 P' h# T1 t - colorname itemlist name vpn& _% ~5 ^2 \7 h) {7 j8 X( S
- col_def lay-idx ncolor x
7 \9 [* a: h! ^# d: B - col_tile layedit_act nlayer x1
4 R' L5 I% I) X1 S5 S - ctr layer nltype x2 J9 M2 t5 G7 x0 W3 k2 r: _
- cvpname layinfo nthickness xdlist3 P' H" Z0 a- D! m& r8 A* _
- dash laylist off y
E8 \2 R* n8 x$ F ]; v - dashdata laylist_act old-idx y1
# V+ W0 d5 I5 v, o# m - dashlist layname olderr y2
& n/ J$ n, p+ e0 Z7 b - dashsize laynmlst on undo_init
( |$ j% p/ e5 w- A( F - dcl_id layvalue onoff
' F( K5 ^: o; ?; R$ G* U - linetype patlist2 R* r' t4 B* C1 ?/ W
- ddchprop-err list1 pattern7 l7 x' M& A5 m( L$ w/ o
- longlist proplist( s4 _+ k) v. s& E% y
- lt-idx reset-lay& q" J4 Q8 A1 b4 [
- drawpattern ltabstr reset-lt
- U& U& h) i7 u. ~ - )
5 _' ^& u7 g( |/ A' T - # q& C3 N! ~9 k) W+ x
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
$ x% V. H$ J$ {2 I7 T3 ^ - old_error *error* ; save current error function2 }' {( J. w5 Q. ]* k$ N( U) Q
- *error* ai_error ; new error function! K* e5 h/ f' [1 M
- )+ d1 X3 L7 C% U6 L
- & _, @/ A; {3 H0 i/ `" e
- (setvar "cmdecho" 0)
) T# R3 N' a0 k1 i
* I9 G3 f& d7 Z! Z. ~/ D- (cond: |; h8 K' t2 X+ X" H7 W6 K
- ( (not (ai_notrans))) ; Not transparent?
/ S1 g+ K% |6 B1 g/ Y- U$ } - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?/ e4 j3 L/ m) f2 a; _* [* D u
- ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?. S4 E. M7 n* F v: b" q3 n0 N0 g
- ( (not (setq ss (ddchprop_select)))) ; objects to modify?- j9 C7 b5 |- ^0 m
9 g! X( X( s; [: S; z% U- (t (ai_undo_push)
. Q( ]5 O" B& ]& P% y2 | - (ddchprop_init) ; Everything's cool,6 M2 X6 H2 Q+ O
- (call_chp) ; so proceed!
, a4 X9 _3 K y }; K3 X2 c - (ai_undo_pop)
3 L; a6 G. F0 x! G1 _3 O5 J% E - )6 h7 `3 Z5 F) y* z8 u6 g
- )
# h" m H% w2 s0 w3 g - 9 m3 B0 H4 B0 P8 @" y/ W7 r
- (setq *error* old_error)
9 e$ u) J' [, d9 u- { - (setvar "cmdecho" old_cmd). [; g; T' M8 {, t
- (princ)
% w! {. Z6 I& F; x) ], | - ): R N+ V* X" b4 ?6 @7 C' |
( k N R! \5 j) `- ;;;----------------------------------------------------------------------------
. A3 j, X: b& l, J4 k
& _' C7 i4 l* t9 f2 K4 f7 B- (princ " DDCHPROP loaded.")! N) |4 i/ Y$ [
- (princ)8 O3 _# c) ]! ~/ z8 O7 S7 R
# Y! c! b' k$ Z1 K [5 K/ S- ;;;----------------------------------------------------------------------------$ W" ~" L) {6 I
+ q# I/ G% H( F1 T9 F6 H) J5 O8 ]- ;--------------------------------ddmodify.lsp----------------------------------, |. N9 c9 p, [, W; i3 G1 m4 l7 M0 y9 \
- ; Next available MSG number is 111
- J' C7 P8 l8 e/ y6 n0 O! h - ; MODULE_ID DDMODIFY_LSP_ w0 R ^! P& Q3 Y( Y- i5 J
- ;;;----------------------------------------------------------------------------
$ V6 k' w$ E+ r - ;;; DDMODIFY.LSP4 z1 d. P6 t7 k( a8 E/ Z$ \, y
- ;;;
2 V5 b4 E8 |* E, B. J - ;;; Copyright 1997 by Autodesk, Inc.4 ?$ u2 @! [: e& p5 Z6 H
- ;;; V- j! ] n1 D- E: v: f! i2 [
- ;;; Permission to use, copy, modify, and distribute this software
# I1 B* `/ `4 f) Z! ] - ;;; for any purpose and without fee is hereby granted, provided
% ~0 c% c2 m2 ]0 S4 u( j - ;;; that the above copyright notice appears in all copies and
* K% C& Z' n: {9 D - ;;; that both that copyright notice and the limited warranty and
f$ {% N2 N) C% K5 |! O8 C5 S b - ;;; restricted rights notice below appear in all supporting
. U+ h# L3 T @2 O" A' w - ;;; documentation.
v& J) H4 ]9 E# w - ;;;: F1 w! a& E. r& p
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
1 n7 h- K- F" c9 }& {! v0 Y' n7 x - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF; M/ ]3 G1 ?3 d# e. A Q7 }
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
0 C+ Z6 F* ^; ~! I8 v# v( X( j9 G - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
; l# x3 b. m4 U1 t" h1 P - ;;; UNINTERRUPTED OR ERROR FREE.
x( ~0 _8 t$ f% o H/ s- o* q3 a0 d - ;;;2 D' U5 ~3 X/ C3 ^
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to9 t6 H/ V/ B, \! u) O8 _
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
( r/ j# L1 _- h7 r% F% N - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
2 U y' b7 T6 P8 u8 ]& N$ O - ;;; (Rights in Technical Data and Computer Software), as applicable.
g+ [; R9 E! \3 q2 L4 Q - ;;;
& ?4 t D+ Q7 X" t+ J1 b9 b - ;;;.
% e' p# U1 `1 P1 E4 r: ~! i/ } - ;;;) I( A2 s' F, e g# ^+ X% R
- ;;;----------------------------------------------------------------------------5 B7 Y5 z6 y+ g+ p
- ;;; DESCRIPTION
2 l' L* l' M* e0 j2 ^! }3 q - ;;;6 @( s. R" b' W" q' u/ w% v
- ;;; This function allows the user to get a listing comparable to the LIST2 a* \, b- Y+ v) W# Z0 Z, ?
- ;;; command for most objects. In addition, most object fields in the4 @1 S+ ~% u2 D
- ;;; dialogue box are editable. Points can be specified dynamically by6 E; B* }3 m! l# x" _/ D" p$ O
- ;;; temporarily dismissing the dialogue box. Each object has a unique* D7 P6 X' y/ R3 q" x) U* [& D0 _
- ;;; dialogue.
d9 ~' W k* X1 w) X - ;;;
/ p& D! G/ B. J. f* Q4 V6 u+ g - ;;; Naming conventions
5 ^( K. Z* B! y - ;;; Long function and widget names may use an underscore "_"
% z/ M" M7 S/ k- ] - ;;; in their names to make them easier to read, long variable: b4 i9 R$ |5 x. T
- ;;; names use a dash "-".2 J8 {; S/ A, n+ d1 X. @+ P/ ~
- ;;;----------------------------------------------------------------------------
c% a# G) \5 n7 Z$ G - ;;;----------------------------------------------------------------------------, g8 b. k0 K; G0 m5 ]$ v
- ;;; Prefixes in command and keyword strings:
. o) e9 M9 n! I# `. }0 n9 t' w - ;;; "." specifies the built-in AutoCAD command in case it has been7 i* ^! |' T" k0 ^9 {
- ;;; redefined.( q2 |$ {3 f. p7 [* s0 Q
- ;;; "_" denotes an AutoCAD command or keyword in the native language9 z, C7 c4 O6 ~: a B# p# @
- ;;; version, English.
; C* F1 d3 I1 C) V& D - ;;;----------------------------------------------------------------------------
8 c) h; h0 ]4 p( q. d# j - ;;;' W/ j; ?% I$ u* V* J. V
- ;;; Avoid (gc)s on load to improve load time.
( w# A$ }& y3 [- S - ;;;) b: @2 G+ G1 }1 p0 g+ t8 i& Y
- (defun do_alloc (/ old_allod new_alloc)
# _/ l5 A9 H3 w+ O8 h p: U - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
0 x' g) x/ `# f' C$ [% @ - (expand (1+ (/ 17000 new_alloc)))' x8 d, i0 ]2 [( x
- (alloc old_alloc) ]+ S! t" J3 i
- ). i/ H9 J, m/ y" x( f8 {
- (do_alloc)
: ]( A! i/ P2 E4 Y - (setq do_alloc nil)1 h4 r' S- a+ W( P6 K$ Z: L X/ v; F
- / V. @3 G' ]& C6 P7 M/ q: |+ E
- ;;;' m% I6 }" K/ n/ g- | [8 S' D1 S
- ;;;1 B J. Z! o0 _- m( T/ [& l
- ;;; ===========================================================================6 i$ F# C7 D# {( F: W" z# a' i
- ;;; ===================== load-time error checking ============================; q+ O2 j. E2 z v u
8 e# w3 `& m. d9 z! f# H: @- (defun ai_abort (app msg)' w p$ O8 n+ E! q# R( e# X3 s
- (defun *error* (s)8 l7 {* I. Z) ]6 r2 g
- (if old_error (setq *error* old_error))( B! V* ?6 P5 G4 _
- (princ)
% D# A6 l( Z& f - )+ {- H1 ]: R: w3 i: f7 M
- (if msg$ J. U2 V" ?- v; Q) a0 d. P
- (alert (strcat " Application error: ", ~3 S6 v! d$ y$ |/ G) K
- app0 _) ~: q% X$ s" ^4 M2 n
- " \n\n "
( S L; q+ Z3 d( u) T - msg
9 S# I8 z/ n/ [1 l3 f2 f7 G" w - " \n"
k5 A4 z, h& d/ T, ^8 Z @" Q - )& U8 W5 D( ?% C8 H# a4 N, R
- )
5 h9 Y% d7 n! q$ D0 _ - )
6 t9 |- |- L9 A - (exit)
$ |9 U1 C0 R; b G& U8 K" | - )4 R% c$ M. {2 V+ [6 N7 l" u6 p
- 7 p: |+ \ X3 m8 Y2 D4 }7 L
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
5 C6 C$ |3 G3 n' J. } - ;;; and then try to load it. If it can't be found or can't be
% }& g4 z1 B+ m& E1 ?) [7 ` - ;;; loaded, then abort the loading of this file immediately.
; k* A2 O' F) l8 p+ ]2 W - 3 Z4 s- k- j. _) e2 e! P+ ]
- (cond7 ?% f$ Q& O: \$ u: z5 l, e5 s
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.% y! U- q, t; [, a* O9 T& }
2 z* P5 x+ a3 f5 o& u- ( (not (findfile "ai_utils.lsp")) ; find it$ G8 X3 [. }) v* c2 b0 L2 n9 {
- (ai_abort "DDMODIFY"
; z; l$ B6 s( Y* J; Z6 V5 ?' F - (strcat "Can't locate file AI_UTILS.LSP."9 J4 O3 Q# h- x. q2 J8 ?
- "\n Check support directory.")))5 J: L( Y9 N+ ]) U7 e3 q8 J
7 k1 r; ^% O3 k% u! R- ( (eq "failed" (load "ai_utils" "failed")) ; load it
- U, G' ~% d5 V$ o: _* I( \ - (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP"))1 [7 b5 X) }8 B9 m! s$ U
- )! ?! e" ?! M7 N2 h$ Z7 P6 Y
- 0 |; Q7 t% \8 v3 p; S6 O" h
- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can
& S+ d! y; ~& { - ;;; be assumed that all functions defined therein are available.
; R) ~0 [ x+ C3 u" X - / g: I N' g( i& ?& u! Y
- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort
) R) B5 I% h+ \; h, v' o - ;;; if the file can't be found or xloaded. Note that AI_ACADAPP7 ~4 u" c4 w; X3 g S+ g
- ;;; does not abort the running application itself (so that it can
1 w# w6 {7 ^0 E/ J/ x& \% R - ;;; also be called from within the command without also stopping: G: W9 f# e6 [
- ;;; an AutoCAD command currently in progress).. g3 m3 L- r* x! G# B7 z& F* q+ X
8 N+ }0 m+ { J% t- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP7 z5 }4 r. `! ?$ j7 _6 b* v
- (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses% Q5 z- Q$ |* K8 }% L5 `, y7 U
- ) ; ai_abort's alert box dialog.
* H! R, [# B( l- J+ o T
5 `- U4 J; s: q7 h# q K* C& u- ;;; ==================== end load-time operations ===========================
9 \' D' ~8 Y3 y) d6 ]. }4 M - 3 d6 e7 ?# f7 {3 M3 G- j
- ;;; global variables
: V8 c: K) J# S - u( f8 Q! }- }+ P5 B
- (setq hatch-elist nil)
8 F1 c [. I7 _7 D- Z6 u
; T1 Q( r) I. T9 `' _( c- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are
; u: P9 H* U m" v' E, o - ;;; assumed to be available.
5 X3 {( ~& O# x1 ^: B3 T9 W- _* e& Z
6 L' b" q9 B! x2 `- ;;; Define and encapsulate all subroutines that are declared
4 ^1 _7 g# |! W* j5 t - ;;; locals of the (ddmodify) function.
6 |( H w) E% a% ?( N
- P2 B; Q( c: C: X- ]# o/ }- (defun ddmodify_init ()
8 ], f d4 z/ E& E - ;;2 R$ J- @4 o( j$ |7 y1 `2 d
- ;; These three functions modify the enitity list for common properties. Since9 Z5 g7 _9 a1 m1 _0 B9 @3 a
- ;; color, ltype, and thickness are absent from the object list when they are
1 `$ K+ b7 T/ i g, A# e, x - ;; set to their defaults (i.e. color = bylayer), a simple substitution using
* G. a! _1 W) v! b, I( b - ;; SUBST is not possible.# M* i- k$ S- k/ ]& Y+ t' X
- ;;
7 J, t3 x- T6 N - (defun modify_properties ()6 h& H/ |5 r. X. Q
- (emod ecolor 62)
9 y. ^- t4 [( Z - (emod eltype 6)
) [3 f' m# n9 V$ J0 { - (emod ethickness 39); y$ u% H0 Y0 z0 G
- (emod eltscale 48)
+ m: [8 H/ J$ X6 l9 V - (tempmod elayer 8 nil)4 l* a+ [' C- q7 p# u5 X7 l3 B
- )
: B2 L; P+ E: j8 k - ;;' N2 n. e( V% y& C f
- ;; This function is used for modifying common properties of the ACIS
6 ]" F, L7 t6 S& x9 H - ;; based geometry objects. Thickness is not valid for these objects
: [7 o* W( _# k- H( v- r# m% n - ;; so it is left out.8 ]) X: V2 C* }1 P0 E
- ;;
5 m# W7 p9 w9 S0 X6 J0 L4 J - (defun modify_prop_geom ()9 g4 m" ?0 K1 k
- (emod ecolor 62)9 O5 a8 _' e J/ E0 i4 f
- (emod eltype 6)0 d' }) F1 o9 A
- (emod eltscale 48)
% a' a! k1 x1 D - (tempmod elayer 8 nil)' F" c/ z( ^& {/ _
- )$ ?: \+ R. k( h* Q0 S
1 o2 |; B- F& ?7 `- (defun emod (value bit)- a. x( n5 P; X' k
- (if (= bit 62)
9 k! ]/ K! _: } p# g% L( z( c - (progn
7 |5 M; a9 J& k2 n, A, q; X1 m - (if (or (= value "BYLAYER")
% c5 {0 ?8 g( b4 d4 R - (= value "BYLAYER")) (setq value 256))
8 E4 U' b9 W- O( l; G# Y: Q - (if (or (= value "BYBLOCK")% w& c9 V8 N1 M3 D/ }4 C
- (= value "BYBLOCK")) (setq value 0))
8 x: _6 n+ T8 t* M0 u; V - )
/ j, k5 X2 `' m - )
2 b6 Y7 ^ b- g+ |7 t - (if (setq oldlist (cdr (assoc bit elist)))0 t/ y/ L. ^6 \/ a+ j: O7 }6 x9 Y6 g
- (tempmod value bit nil)8 @, m" H/ |# E
- (setq elist (append elist (list (cons bit value))))' j7 f/ I5 h3 z" m* i
- ). \5 ?% y+ O2 O* E
- )5 D- ?' K# N$ F! G
- ;;
3 W/ @& v& K- Y1 o5 E2 Q+ Y9 a* w - ;; Resets object list to original values. Called when the dialogue or
5 A# v4 A& _$ e% q) e( J* w - ;; function is cancelled.( ~* I; ^3 |" X4 E
- ;;. f1 G" O9 w) S
- (defun reset ()4 |8 q- x1 e" Y! t u, \
- (setq elist old-elist
5 a2 |; X# m- \* h* j+ A - ecolor (cdr (assoc 62 old-elist))3 v3 x1 J4 H( s
- ethickness (cdr (assoc 39 old-elist))
9 Z4 \, C' A) k; e$ w) F1 E - eltype (cdr (assoc 6 old-elist))
( s/ X, \! E8 g" W ?* s$ S - elayer (cdr (assoc 8 old-elist))
8 [* V5 \7 M* M! f/ f' k2 z - eltscale (cdr (assoc 48 old-elist))
! Q, A7 o T$ W+ L8 j - )6 ]+ F& ~! _) s' J
- (if (not ecolor) (setq ecolor "BYLAYER"))
; U) ~" I; k6 I1 g. C* O - (if (not eltype) (setq eltype "BYLAYER"))
7 \& d0 d' X+ U4 B: ?/ k2 c* a. f - (if (not ethickness) (setq ethickness 0))
! l1 e$ u4 N: H8 [- _2 F - (if (not eltscale) (setq eltscale 1))
5 L$ A/ P ~7 b2 |( l - (modify_properties)% l: y) Q, F" |
- (setq reset_flag t)
% O# V4 Y/ k D( ]$ _" `2 W3 r8 r - (entmod elist)0 v9 L- e2 c) B$ r. a- a" `: |
- )
( e8 x) c2 D5 _2 ~5 M6 a# N1 ^ - ;;' C& Q( @/ s$ C8 q+ `' ]; B7 @, }0 Q
- ;; Modify object when dialogue is temporarily dismissed to reflect latest! K# p; N8 P+ V! z1 D/ ]5 ]
- ;; settings of dialogue. It converts the point from current UCS coordinates to
# z5 o0 V2 A2 B' R& v9 N - ;; the proper object coordinates (world or object).% ^" R! T) {0 x8 j$ C k6 A9 K
- ;;1 l. Q# T5 N' r
- ;; Arguments: value - in current UCS coordinates
7 `; Z3 Y6 W: F; e! @2 K/ N - ;; bit - object code (i.e. 10 for start point), U0 Z. r( O' m6 [- Q: k! ~
- ;; ptype - point type 0=world 1=planar P5 ^& A( u8 k/ N" w8 F
- ;;
6 R4 `& n+ v: [; ^, K5 K( @ - (defun tempmod (value bit ptype / newpoint)# P/ G6 t: R" L
- (cond2 F+ T7 ]. M% i1 K& N ^. h
- ((= ptype 1) (setq value (trans value 1 ename)))6 t! O3 P7 S6 g& e) W! B
- ((= ptype 0) (setq value (trans value 1 0)))
/ ]2 g4 e2 k% ` M! E5 {. S0 u% Q - )
4 B1 c1 H _- s3 d4 |1 L1 x1 V8 ]4 r5 e - (setq elist (subst (cons bit value)
* p1 w# W7 t3 j - (assoc bit elist), r; {9 t; K; I& O
- elist
; G( G" f, a/ F6 h! Y - )
' ]8 k( _+ `1 w* ?5 _7 Z* A - )
' B& V4 i/ |" T1 j% c - ), t) Z+ ~3 z, r* o2 F, w3 }
- ;;, q8 \( n3 l" \* X. D4 d0 b
- ;; The following functions are called after a dialogue has been temporarily! x3 g9 @2 z; ?; T7 x3 }% I
- ;; dismissed and the user is selecting a point. If a point is selected the
- f1 E/ I2 d% }0 O+ F; y8 A: {0 H4 ^ - ;; object list is modified and new X,Y,Z values set. If no point is selected6 r# c1 a7 y. q: m( _# Z# p
- ;; (null response), then the point is reset back to its previous values.
/ N; ?/ M/ z; T1 _ - ;; S7 i; n/ B7 d0 k% ]
- (defun ver_pt1 (ptype)3 y4 K$ d/ V1 Z9 l( z
- (if pt1! ?& r& r! ?- Q% l% ^! d
- (progn
' F1 z6 q- } ?4 B+ m - (tempmod pt1 10 ptype): w% l5 R3 u* C$ S9 ~
- (entmod elist)9 m% y/ W/ }1 }% I1 t
- )" G. j6 j( \8 }3 I& k( a3 ?3 S0 B
- (setq pt1 (list x1 y1 z1))+ A- B- E. _, r% L2 Z3 x0 q
- )
/ V% [+ v8 _1 t8 N& M$ ` - )" y6 L+ d- K" k% u- @6 v
5 e o$ ~5 h* b6 R' ~; o# m- ; (move_pt1 <ptype> )
% `- \1 B, @" s& ] - ;
) C) {: d3 h: A% c - ; Called in liew of (ver_pt1) to translate block insertions which
. h, C' r. u1 t( ^ - ; might have variable attributes attached to them. If the distance
9 H# i5 u- p2 _ - ; the block is to be moved is < 1e-6, the move is deferred.
% G; c" } E S @3 E/ x' u* d - ( l3 e; q8 B% t5 l% U- Z' \
- (defun move_pt1 (ptype / basept hi)
5 }$ t; g D* H - (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))
. \& k5 {: t, A. r8 H - (cond
: C, z4 z7 Y/ m- o% q' e - ( (not pt1)
; D0 D; B1 u9 {2 v& F - (setq pt1 (list x1 y1 z1)))
! l y. c7 V5 t4 ]* k5 X7 t - $ d1 T5 `' v* l: Q: B4 f8 E
- ( (> 1e-6 (distance pt1 basept)))4 y. l* ]( { v, W7 h. p% s
0 d% v. s. ]0 v' ]6 U- (t (tempmod pt1 10 ptype)( s5 z: K3 T- `% H& L
- (setq hi (getvar "highlight"))6 Y% Y7 z, Y- M
- (setvar "highlight" 0)
- N3 c$ P2 y, P - (command "._move" ename "" basept pt1)
: F$ B$ K% ^5 W6 S6 L - (setvar "highlight" hi))
+ r% w, W. {$ |3 }7 E2 @& |' @ - )
' ^$ P- e% k7 t8 S - ): b$ w. T* @8 O
, [- X2 Q% W J4 C" k& }9 a- (defun ver_pt2 (ptype)5 T/ P2 b& r+ Y, O4 d3 S2 h0 C
- (if pt2) K. G6 W! w2 |) w* i' C$ ]. M
- (progn& A/ a: g' W9 m* u! m% @. G* L
- (tempmod pt2 11 ptype)
+ L% a6 ^+ d' F' D5 e - (entmod elist)% N: Z4 E! I5 P( W7 z# Q2 Y
- )! M: e5 S t. |+ \. [0 I0 g
- (setq pt2 (list x2 y2 z2))
' o" W' {! Y" W, K( c - )
! b7 L5 o0 h, M" @# V# _5 Z' e - )
2 v/ @ @: u( N4 L2 a
6 _" w; f. r4 N" t- (defun ver_pt3 (ptype)
, n! v0 T$ }- D5 _' g - (if pt35 ^3 z+ T3 P/ P# |
- (progn
9 }+ c1 `4 ] V - (tempmod pt3 12 ptype)& W. u" M& E+ S# b/ r- ~
- (entmod elist)" z1 S, E4 K! K, H2 B% i
- )
" f/ h' G! A) F9 T - (setq pt3 (list x3 y3 z3))
0 p9 I; D1 |4 R5 x7 q+ D0 p& G/ P - )6 z, ?; O. Y! l9 b/ i
- )/ M/ \. [6 E, c. u, y) m
- 1 `* S& s+ H; C x
- (defun ver_pt4 (ptype)
9 V! o& u/ s% H4 B - (if pt4
% |- g2 J) B' n2 Y - (progn2 s4 C7 a- _! J
- (tempmod pt4 13 ptype)) f; r& l( b! K6 p0 h5 C& c
- (entmod elist): u$ k4 [! N% j0 J
- )
& u+ A, E5 V# |! M; @3 h - (setq pt4 (list x4 y4 z4))
9 e4 O+ v% I; r- k5 I - )% [" H: g8 [ l$ v" f- y, h4 l
- )
( u* d$ G, _! ~ - ;; Xline/Ray; J+ E4 a2 {/ C) z
- (defun ver_xline_pt1()9 G8 i+ o6 Y* k! b
- (if xline_pt1
A0 K2 Y# K9 b4 S7 f - (progn: t- h# N: ]. m% i
- ;; convert to WCS.3 h- m* F9 [7 c4 o, R7 _+ X
- (setq value (trans xline_pt1 1 0))% _2 h/ S, L1 Z: \* ]& n
- (setq elist (subst (cons 10 value)3 n% f8 v4 J) y& H0 e9 v, x2 d
- (assoc 10 elist)
+ ^( }5 G$ X p3 ^) J* O3 G - elist
9 {; Q" v7 N8 b" Z, E$ H. d" L - )
- M4 y% v/ ]: F - )
c" z) ?- c- F* e6 h - )3 V8 J; Q$ t1 o! f8 M
- (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
& | F& O$ l9 m' O9 F4 c- } - )7 E% `! _4 x' x; W% F) s, J
- ). S5 m% a3 }4 c
- - m, l) {( O7 C9 ]: K5 d B- u! c
- (defun ver_xline_pt2()
7 W* H' p2 l/ l3 ?1 f7 j - (if xline_pt2) O8 \$ M5 k8 n0 w! n+ v
- (progn- h( h I5 A8 ^8 n
- ;;
" F0 m7 Q9 I4 k# _9 ^ - ;; Calculate new Direction Vector WCS3 N. W N: b3 y5 b i) N' X
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))& E0 S8 N$ f: f* k; \+ N
- (setq temp_dir (trans xline_pt2 1 0))
% F9 D, x2 q% X0 Q& P - (setq temp_dir_x (car temp_dir))5 S& `* s' O9 g' ~% C& A' \
- (setq temp_dir_y (cadr temp_dir))
3 G1 b# O1 k- Y5 H4 t - (setq temp_dir_z (caddr temp_dir))
6 V' I: i G* s" x" o, A! B
) Y$ x, o7 S$ c& Y- (setq temp_xline_pt1 (trans xline_pt1 1 0))
8 U5 s& B5 K/ Y; Z6 L* P% n - (setq temp_xline_x1 (car temp_xline_pt1))
* ?* k# @, I* T+ S) V - (setq temp_xline_y1 (cadr temp_xline_pt1)); s$ s* M, a, b
- (setq temp_xline_z1 (caddr temp_xline_pt1))
) u. P7 k% l, V, t! Z6 e) v4 q
# l5 S4 B3 E1 J8 m+ _- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
6 x C2 S+ K4 a0 s/ K+ U( h - (expt (- temp_dir_y temp_xline_y1) 2)
8 O O* t9 [, ]& b - (expt (- temp_dir_z temp_xline_z1) 2); O# b3 G8 n& k# `& _, ]1 y
- )))
$ Z8 @; L8 V% @ - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))! C+ y2 ?+ ^- {9 p3 R: L4 b
- (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))" }& E1 M" @8 y9 c. {: N# e- }
- (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom)). N7 e. ?0 z! P) @
- (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))6 ]8 Y# P1 W; R# I1 l+ v
- (assoc 11 elist)
- F7 v" p a% n7 ?7 Y - elist# C& P/ x, C6 Y" Y; e
- )5 T' h: {7 x. ~& A
- )
$ i7 Z! E7 ?/ \ - (entmod elist) N' d& x& k( x' x+ C4 e& s) b9 ]
- (setq xline_x2 (car xline_pt2))
5 N: o; P( f) P+ v - (setq xline_y2 (cadr xline_pt2))' j. h8 }! P# E5 S
- (setq xline_z2 (caddr xline_pt2))
% I: t! m: P# S8 J5 B3 a6 ? M
2 H3 {7 J( }# {) M4 A4 `( B
- e I h2 a8 H* m8 ]& p- C- )
3 U+ m/ [5 a% g" t - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))& e+ c2 N$ g3 j7 b
- )5 X% G% o( S9 D' R8 p8 S
- ): n* q& z l; K- k
- ; K8 i. U; |9 {- c# u
- ;;
/ Q: X; R2 y; W8 z5 A4 z - ;; Common properties for all objects
8 |7 }( i/ _9 N - ;;
4 F! P: q9 _, k ~ - (defun set_tile_props ()' \& b0 ?0 n* i, F0 u
- (set_tile "error" "")
& V4 R1 M6 W0 c" I8 W; k; d - (setcolor)
5 U) A) h! |( f! v - (cond& j. B; L$ _6 T9 m3 w4 o
- ((= eltype "BYLAYER")" K9 N! Z5 m/ {) S2 ?( ?, k
- (set_tile "t_ltype" (bylayer_lt)))# r2 ?) q3 a& [2 ]0 `. \
- ((= eltype "BYBLOCK")4 u$ }8 G! B9 j% o. s; F/ F
- (set_tile "t_ltype" "BYBLOCK"))
& J, X! d6 ~2 p3 `, K& g - (T (set_tile "t_ltype" eltype))
/ D9 A5 x9 T: x) ] |1 J" x - )
6 b$ P+ O9 H* R5 i - (set_tile "t_layer" elayer)* C9 a. Y9 e% s I1 B
- (set_tile "eb_thickness" (ai_rtos ethickness))* O y( ~- o0 f# y" o# _3 q
- (set_tile "eb_ltscale" (ai_rtos eltscale))
- a; u6 E* Z9 c! Z8 o! y3 ?( U: } - (setq which_tiles (ai_common_state etype))
) p4 E* W4 a+ Y* C - ;; Disable tiles if need be...
0 y- e9 K9 l! n5 U4 M2 Q - 6 Z9 ~' _) T: O' v
- ;; Layer Button and Text Field
# A9 x5 g( c. D6 O; j - (if (/= 1 (logand 1 which_tiles))
' j" b: |& C3 e' h3 w - (progn
. f: e) b- m- n; o6 \( u4 z9 D5 w - (mode_tile "t_layer" 1)
0 q! p' `9 k, J( l' a; k$ q - (mode_tile "b_name" 1)
1 X0 v1 k c1 |" V% \9 Z! k - )* r. A9 r# q q5 a) q
- )2 A8 b ^- A2 p% r+ M
- ;; Color Button and Text Field
: e, n; |# |' n4 k* [$ z0 } - (if (/= 2 (logand 2 which_tiles))
$ I' T# G3 ?, |! m, S- x( H! R/ M - (progn
" B) u2 ]0 o3 C, M% ` - (mode_tile "t_color" 1); w/ O$ Z1 N: \ {2 Z, E
- (mode_tile "b_color" 1)9 H; X& ]$ ^, s# i8 Q2 R
- (mode_tile "show_image" 1)- V3 L# f2 r* H+ u2 [8 f
- )8 m9 l+ n' d! `
- )
; R2 _! Z) {/ N0 M- F - ;; Linetype Button and Text Field
: w3 `8 \' \* H/ V0 k; s - (if (/= 4 (logand 4 which_tiles))
$ M1 R' e$ Y; M% Y$ u) j- O - (progn
+ n# F: ]2 |+ f6 q: h2 d; | - (mode_tile "t_ltype" 1)
- z3 a' x9 K6 D - (mode_tile "b_line" 1)
% ~) E! m3 f7 a0 o u% v - )
* N& F i& H4 T - )% J6 F2 B# h: W) m# i0 R
- ;; Linetype Scale Edit Field k# {1 x" }% s
- (if (/= 8 (logand 8 which_tiles))
5 F( o+ K: ^# F- q* b - (progn
5 I2 i; E% v k9 R - (mode_tile "eb_ltscale" 1)
$ I. q% p( p1 \2 t" h - )
2 G/ B6 C+ ?, d- l& l, T R3 Y: F - )/ @9 B6 I, f$ r6 ?3 {& k
- ;; Thickness Edit Field.
( ?8 R9 u# H- D0 q - (if (/= 16 (logand 16 which_tiles))
: Q- }# N( s, _# I' f+ _2 R - (progn- r) @! Q2 s/ p
- (mode_tile "eb_thickness" 1)
" i+ M3 u' i6 v - )4 L7 v" i$ f6 m- _9 a! |& w
- )
3 o2 ?$ g8 E9 H4 q/ y7 g - ), K4 P6 S# G8 B+ T' u
- ;;" e: r6 v4 F9 ?
- ;; XYZ Point values for all enitites! z4 q T8 t, `, N" z; ]( \
- ;;
$ C3 \/ ~% `# g* t; J4 n - (defun set_tile_pt1 (ptype)) I& e9 _+ b8 z2 W3 c& E
- (if (= ptype 0)% y3 b/ o. X" l! d
- (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))
2 m. D {5 Z: K. k1 t1 ?. j. P I0 M - (setq pt1 (trans (cdr (assoc 10 elist)) ename 1)) }: o# ~7 l# |/ g4 [
- )' i$ ~0 M D1 C K6 X5 r
- (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1))))
]9 Q/ J1 _$ e - (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1))))0 v) P ?" c8 u' |" M+ {# z$ e8 ~
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))# V( i" d* c& G
- )( u6 h/ g _, k. V3 z( o- R. S. ^ u
- (defun set_tile_pt2 (ptype)
; D( E: h, K* H - (if (= ptype 0)
) R& R. l# m* u6 t. s - (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))
) O1 x p! S4 _; p% H/ a - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))9 _7 t- e7 U) `. w
- )
@: {, f6 @) V% p; K% ~ - (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))
0 h' H, a1 ~4 Z& ^/ E+ f8 d - (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))
1 r g( O" B0 C7 Q: S) K - (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))
; |6 |' n& p' X; g) }3 { - )
2 m& _' k+ F( i9 u+ B% j3 P - (defun set_tile_pt3 (ptype)
: g; E$ B) Z8 H - (if (= ptype 0)
1 Q% g$ [$ }' F) G - (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))
1 O% i6 s0 u0 x1 y: w - (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))
; x3 |1 e) p0 e: z/ R - )# m1 j* [7 M0 `3 x' ]
- (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))
' q3 C4 h1 m: s$ ]/ ]! s7 C+ a - (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))
: B9 g D T$ ~ - (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))
: i* W. G* E; |! y [* Y& H4 u! }* Y - )1 a4 ]1 I- c! E2 q# y# U! `8 f
- (defun set_tile_pt4 (ptype)1 o. ?5 i* u/ a) q; Q) N& s/ J
- (if (= ptype 0)
* h" Q5 C' D( @$ S- [ - (setq pt4 (trans (cdr (assoc 13 elist)) 0 1)), B U i7 p- R) \1 W+ b9 c H
- (setq pt4 (trans (cdr (assoc 13 elist)) ename 1)): G3 P) P7 S, h1 N2 N
- )3 { e. t' O1 t
- (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))1 x( I0 _8 v8 y! `. O
- (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))( D% n' K5 O* q, ^0 a
- (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))" u2 l5 _8 G, n6 F% @+ L$ g! w
- )( H0 b" ^- `7 M( E! c+ d- i
- ;;
" X4 K" W1 b) h7 p - ;; Xline/Ray
* e; k( j, t3 M H+ O; O5 U - ;;, p/ o0 L8 G9 C/ m- f
- (defun set_tile_xline_pt1 ()
& t+ Y' B( u) f4 }% @# l7 v# S! e
. Z) ?5 R" K7 j( `3 S/ d2 S6 k" z- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))
8 O- l6 j3 g5 |! V - ( b9 q4 B- w6 d: H* h. j
- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))' z9 U; O: w, P! n% l. Y2 u5 Q6 V
- (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))8 T X( e5 k! y
- (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))
3 N( m* m5 J+ y! C9 i, m1 q8 N( h - )
) m2 O% b) ~/ Z! v# |* O - (defun set_tile_dirv ()* { v# F# ^$ {% p U
- ;; Convert 11 group to local UCS (displacement)
8 ]& M; B3 C! Y5 @5 S8 H( o" O* `: @ - (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1)), d8 x' S0 k: r. {1 M( ^0 q7 e
2 ?6 @, y3 x$ H$ N6 N- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))% Q% m; E- \$ K. x5 x8 O
- (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))2 o, f; W! y- f7 I3 `
- (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))
& B8 [. l: m; T6 N5 m- C - )6 W9 K0 p" Z r' o& K" c1 `
- (defun set_tile_xline_pt2 ()/ G* ^$ P: I( c8 H& `
- (if (not xline_pt2) E% U. P4 e4 R1 r
- ;; Initial second point is Root Point + Direction Vector
+ O, m+ ~, q& d9 y" i! u" e - (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt)); ~5 F$ v5 _: j- A. p( b
- )
1 a$ B' T+ _2 I: h/ [ - (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))8 m% c/ ~% c6 Q" R
- (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2))))2 J) `, Y& V% y) ?0 g' A
- (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))- X1 Q4 k( W" O$ h6 g
- )
+ o, Z/ q' Z: K& T# K- t& V - 8 w0 v7 H8 b7 G0 {
- ;;/ @. H) V0 j6 r' {* h3 u" I
- ;; Handle for all objects
' R2 ?, f$ n$ @& G c" [: R& f - ;;8 j; m8 L6 |8 ?) M
- (defun set_tile_handle ()
0 @6 a& |+ O: f- z2 x2 B3 t - (if (setq hand (cdr (assoc 5 elist)))
B4 Y, o% j" x- I/ | - (set_tile "Handle" hand)
( M& b! L; v8 I% s& r: _ - (set_tile "Handle" "None")+ Z0 ~3 j8 E% \( P
- )
! h; m, \6 l3 I - ). R/ e" G* e# `. g
- ;;
% H8 V; l/ W7 v6 e0 _ - ;; Radius for ARC and CIRCLE3 l5 s* `. K. f6 S1 m0 n, ?
- ;;% S, l6 x7 u, ^" v
- (defun set_tile_rad ()- y/ a9 ~$ ~5 K" b" `/ w
- (setq radius (cdr (assoc 40 elist)))) C7 j) E0 w7 U$ Q! Y
- (set_tile "radius" (ai_rtos radius))' k# Y# O( j- ]& n8 Z
- )/ D8 d7 h, S! e9 Z
- ;;1 {, }) i, F9 Q, {" h; r. z
- ;; Start angle for ARC
0 s# R7 F3 u* s+ k; J8 { - ;;
. U! k& u1 l# F" x- `/ L! J - (defun set_tile_stang ()
- F/ O) {7 E. j - (setq st_ang (cdr (assoc 50 elist))), c D% J& r' [# p
- (set_tile "st_ang" (ai_angtos st_ang)). a5 d1 y3 m! l6 D @. [
- )
# w/ ~4 R5 p* L$ u - ;;
4 U/ w/ u% S* ^; |" n9 ^ - ;; End angle for ARC
0 T' M. C+ T2 @( g+ B* i. j - ;;
% f& K/ x4 b; L& k; {7 r0 c - (defun set_tile_endang ()
4 z' ~) H4 ]% w9 l7 p - (setq end_ang (cdr (assoc 51 elist)))5 j5 [7 n, n' h4 M
- (set_tile "end_ang" (ai_angtos end_ang))
$ Y+ ^) g* p3 f% J& ?9 @ C - )
; h5 m A0 M. Q8 W% v( C r - ;;2 e- c% k4 O; w9 a2 P* @
- ;; Rotation Angle - Text, Attributes, Block insertions and Shapes" C' u% S' c! u- v
- ;;% ~2 J+ N! I5 [$ P6 c5 C9 e5 [! F
- (defun set_tile_rot ()
, i5 ?# o) W* o# m$ h - (setq rot (cdr (assoc 50 elist)))
( v. j2 X. a6 X7 l% R - (set_tile "rot" (ai_angtos rot))
; P2 p& t5 s- ]& D6 V3 b - )( R2 M% A8 F) S& @1 q! j' x
- ;;" x8 G% s- @' l
- ;; Height - Text, Attributes and Shapes3 |' K# C$ c. `0 j7 r
- ;;
+ ?+ m) `! q$ U! Q) k4 f" s - (defun set_tile_hght ()
2 ^5 B7 F. v( [4 X- j. M7 N - (setq hght (cdr (assoc 40 elist)))
5 T$ [1 b8 T- F& R - (set_tile "hght" (ai_rtos hght))
9 z( ~7 K! V" o1 i* x$ } - )% Z+ a# I$ }% g) n; q- p% u
- ;;
$ I3 [ ~6 P0 k& I; u* _. r - ;; Width Factor - Text, Attributes and Shapes m3 {7 b: E: B; [# U4 d) C
- ;;
/ i/ T" E9 O- h* z% `. b4 i2 { - (defun set_tile_wid ()* V- J7 m2 N R% I+ G
- (setq wid (cdr (assoc 41 elist)))9 L9 ]. L' ~1 g6 _* y
- (set_tile "wid" (ai_rtos wid))# i; J0 r" U8 W1 F; i
- )# Z- ^0 `- ]9 Z/ o
- ;;
/ @. x- ?' D0 K+ i$ b+ H7 G& ? - ;; Obliquing Angle - Text, Attributes and Shapes
0 w3 k. }( b( c* [1 Z - ;;
9 z9 n" ]7 l. {9 U/ f - (defun set_tile_obl ()' W* X7 J2 {; j0 f9 I
- (setq obl (cdr (assoc 51 elist)))
+ C3 z1 s5 l6 j9 e: N - (set_tile "obl" (ai_angtos obl))
# C' a8 V8 g% S4 g1 Z1 j. d - )& H) C3 T* e. G
- ;;
) s/ N; P+ }. Q" X - ;; Text string
' E9 F1 Y2 x+ ~: r - ;;) J- a9 b( i" R% Z: \' _. e( a
- (defun set_tile_text ()
. N( ~; _& c, N2 K. N# Y5 u6 W- V - (setq text (cdr (assoc 1 elist)))( S% i8 o& [0 g1 I$ q
- (set_tile "t_string" text)
- Q% @) b3 S. n7 y& s - )
: ]1 V4 u# g V# E$ X - ;;
( W" M" ?) k s- { - ;; Attribute Tag: F5 L& C8 S5 z9 {! g
- ;;" _' w* V) y2 Y1 ]2 @4 v$ N
- (defun set_tile_tag (); S; |" `! T4 i6 C8 i$ F
- (if (= etype "ATTDEF")3 E9 T$ Y- h f7 k! h2 K
- (progn% A1 H1 G3 [1 Z( o+ R2 R
- (setq attag (cdr (assoc 2 elist)))3 ?. G$ V" d. K7 ]7 P$ P w4 y
- (set_tile "tag" attag)
' d* X9 M- `: K+ m/ c - )
+ G. U6 T, s" U9 C+ h - )
9 U7 D2 }6 q5 w, O: ~5 a1 h - )2 u# y2 _" [9 ^4 S% b w$ U7 R
- ;;9 r$ Y. c, f3 s* h+ T
- ;; Attribute Definition5 a% Y) }) V, ?1 a# M1 @
- ;;
& N) K2 B3 `8 K6 { - (defun set_tile_prompt ()" @: m$ l% z$ {1 x' ]) S
- (if (= etype "ATTDEF")( o) e' l/ c/ i( L& D
- (progn2 |* @% X7 t! H! o
- (setq atprompt (cdr (assoc 3 elist)))
6 N* C d8 l$ {4 [ - (set_tile "prompt" atprompt). j% t" y- r) H; M$ i
- )
& z+ y @: w/ X& A* F2 p4 m - )& k9 r' }0 E" C9 C( D9 \( C4 _
- )" l: m$ p" V) U! S6 W* k: S- c+ B
- ;;) g, r& R4 ^; c% b# |/ y" G
- ;; Justification setting for Attributes and Text. Initializes0 k5 W. j" [9 \) A
- ;; popup list box
& E, P s$ u, z/ V. l; Q - ;;4 ], J* U4 X; E* u5 Z
- (defun set_tile_just ()7 g, y* K2 j( B# a
- (setq ha (cdr (assoc 72 elist))) ; horizontal alignment
: G+ _; ], N9 W+ }1 U5 l+ Y& z - (setq va (cdr (assoc 73 elist))) ; vertical alignment% q# _/ T! ]) ]4 X) @
- (setq ha-prev ha)
, p% B6 j0 m# n/ b" U9 f - (if (= etype "ATTDEF")
3 q. K5 I4 R" F - (setq va (cdr (assoc 74 elist))) ; vertical alignment7 n8 t, |4 Y9 Y6 u5 \: f- F
- )) L5 L) s! V0 T( G* k z
- (setq jlist) n2 s1 \# B# {1 [
- (list "Left" "Center" "Right"4 ^7 x: l9 ]& R9 l" G: V
- "Aligned" "Middle" "Fit"
. _! p. o c! U1 s, Z$ e6 m - "Top left" "Top center" "Top right". h2 _( D8 O- F {3 e; r% W7 s( o* z
- "Middle left" "Middle center" "Middle right"
7 d0 ~/ {8 ]) R3 S6 M# D& s' p - "Bottom left" "Bottom center" "Bottom right"
( ^+ N, g5 Q+ j6 W) b D - ); o) B" U& N$ f) d7 w
- )5 Y' b' R8 x% S6 c2 F5 |
- (start_list "popup_just")6 O! ^8 b. p5 x
- (mapcar 'add_list jlist)
% @ E9 k$ v9 n9 \ - (end_list)
. G7 \) e' K0 J5 R0 E0 t - (set_just_idx)% ]# o4 {. U4 |0 Q+ @) a* L
- (set_tile "popup_just" (jlist_act just-idx))1 |# B* F$ ^& m9 H- D& E0 Y( A
- )
" e( O2 M9 N( ] - ;;
/ u2 d( v, e( @+ n$ g/ ?& s - ;; Style setting for Attributes and Text. Reads symbol table for popup list Y1 A7 y8 P' B% a
- ;; box.
+ _$ B1 B# K) F6 A4 v# p - ;;9 E$ E7 H6 f2 e7 W9 A
- (defun set_tile_style (/ sname style-idx tlist)8 m S8 l g, D: ^9 C% q% j4 u
- (setq tlist (tblnext "STYLE" T)
/ |: ?5 e/ c) T0 K% e( X$ K - slist nil)
6 _' g: |& i1 {4 G1 _ - (while tlist8 { p$ v; O2 e/ g
- (setq sname (cdr (assoc 2 tlist)))" L o u5 V- r3 Y
- (if (and (/= sname "")
2 q3 I5 o% A( y& ]9 L. I - (/= (logand 16 (cdr (assoc 70 tlist))) 16))0 _& `- y8 a- c) ^- s) o" {9 P
- (setq slist (cons sname slist)))
1 O$ h$ o% c7 k0 ?; j' x - (setq tlist (tblnext "STYLE"))). S+ d" W5 V" H! ]) |+ {7 j7 f. Z
- (if (>= (getvar "maxsort") (length slist))
$ y! M$ Y$ n, S# o; H - (setq slist (acad_strlsort slist)) ; alphabetize style list4 b# L8 r+ s4 Q" `) i4 V
- (setq slist (reverse slist))) ; or reverse it to put it in DB order; F( P/ |( C4 `! a: g
- $ B$ A" q% o* w2 u
- (start_list "style")
% A' E, V+ h# W) @% H; D9 y% d - (mapcar 'add_list slist)& N7 ]! }. Z8 [3 P, }) S
- (end_list)/ N* I7 F2 k8 T/ ~( E* T
- (setq tstyle (cdr (assoc 7 elist)))8 Q" ?' @& a8 ~+ g
- (setq style-idx (getindex tstyle slist))
- }% o8 Z. H; {4 ~; \$ m* g- M - (set_tile "style" (itoa style-idx))
6 D+ ^0 S5 I* G ~ - )4 N9 [4 M2 y; D; p
- ;;. m6 h5 s1 F: v; t
- ;; Text and Attribute setting - upside-down, backwards4 n1 b4 N1 F- q" k* L c
- ;;
! M. ]6 t: r: l _/ w7 n2 F - (defun set_tile_bk-up ()
! F) K; q9 s0 l5 `- R9 Z" s - (setq bk-up (cdr (assoc 71 elist)))' r# x: d- U' s$ J1 `3 C6 {4 Q
- (if (= (logand bk-up 2) 2)
$ x* J# I1 c8 G0 u" p - (set_tile "bkwd" (itoa (setq bkwd 1)))& ]0 y/ H% B+ Q& M2 ]- _
- (set_tile "bkwd" (itoa (setq bkwd 0))) k+ a3 X. b7 K8 L
- )
6 t5 j% }: J- x4 F - (if (= (logand bk-up 4) 4)1 a$ M4 j7 p5 X- k
- (set_tile "upsd" (itoa (setq upsd 1)))7 Y$ C4 |3 S1 \% W
- (set_tile "upsd" (itoa (setq upsd 0)))& z2 _+ [/ Q% D2 L+ E+ a& j
- )
4 F' V$ Y# a9 K4 r4 @% f - )
; m+ a! \: r C" @# z - ;;
9 @3 d$ ]2 ?; J' a! e) s, w! z2 G - ;; Attribute setting - invisible, constant, verify, preset
4 z7 m {/ M o( A - ;;7 t% J3 R0 {, S, m
- (defun set_tile_icvp ()0 \) i$ C; O1 J! J& v2 @. V
- (if (not (setq icvp (cdr (assoc 70 elist))))
' W5 o$ `6 G: J% I" D+ D) K. Q4 m - (setq icvp 0)0 P1 o& L4 A) j3 H% @
- )# q. r+ T, y- x' R' l9 @
- (if (= (logand icvp 1) 1)! \ e4 L/ p' D) x( S
- (set_tile "inv" (itoa (setq inv 1)))9 k" }1 H0 `; A5 J" B! `
- (set_tile "inv" (itoa (setq inv 0)))# O: e. s! o5 U% l0 T% P
- )
' ^+ B J0 O1 l B4 K - (if (= (logand icvp 2) 2)
# G, v9 e! [+ V. Z - (set_tile "con" (itoa (setq con 1)))
h. \+ m& P, y# } - (set_tile "con" (itoa (setq con 0))): K/ Y& T A" M. n( v
- )/ R# ]0 i( l4 {: B' j" X% e/ H
- (if (= (logand icvp 4) 4)- b% f$ V9 _7 Y9 q- ~
- (set_tile "ver" (itoa (setq vfy 1)))' o( ?, W) |+ E# Z% v8 V# @
- (set_tile "ver" (itoa (setq vfy 0)))
1 @: x; D6 O" ^4 w6 h ^ - )( ^+ C+ v! C# E1 _0 O
- (if (= (logand icvp 8) 8)1 y) j7 h) F; s+ k6 a1 a
- (set_tile "pre" (itoa (setq pre 1)))4 f) k& k3 [# w5 m- L$ @
- (set_tile "pre" (itoa (setq pre 0)))
) ^1 O4 l- W: X! c Q2 x7 m/ Y2 w0 v - )
! d, }* S/ a" ]1 s0 K, Z/ q - )
+ z* i* N7 d9 U V, Q/ U, A - ;;& i- p, u, q/ k4 n% K) U
- ;; Scale factors for block insertions# P1 c+ y; G3 }
- ;;
2 `8 v5 Y b+ j) R - (defun set_tile_scale (/ temp)' v% o8 y; q5 |& X9 v8 L
- (setq temp (getvar "LUNITS"))* Q" }6 S" B8 Q& `
- (setvar "LUNITS" 2)1 v f% b: r9 l) ~ V- C
- (setq xscale (cdr (assoc 41 elist)))
+ E' y, t* `# w- j - (set_tile "xscale" (ai_rtos xscale))
8 @ ]" c8 x) K @6 @9 |3 n - (setq yscale (cdr (assoc 42 elist)))2 ]8 E/ s3 G8 } V0 H, C. ?
- (set_tile "yscale" (ai_rtos yscale))6 O; S5 e9 G l; b7 R0 F& `
- (setq zscale (cdr (assoc 43 elist)))
" j& Q8 c5 L& y - (set_tile "zscale" (ai_rtos zscale))/ ]5 L4 L2 B3 T, q* e+ @2 c
- (setvar "LUNITS" temp)# I I1 A* m, D8 e; e3 ?. y5 R
- )+ o5 C) C" G) B \( O
- ;;
; h4 Q: j) L* ]3 v' F) g4 V0 i! ]3 I - ;; Rows and columns for block insertions
' A5 f! G3 X6 ^; ~ - ;;
9 J7 b9 u* e) R! U$ E - (defun set_tile_rc ()
- i$ e2 {; o- C% }" k% I+ T - (setq columns (cdr (assoc 70 elist)))
7 U% b0 |% y/ Z4 A& D0 K - (set_tile "columns" (itoa columns ))
! }. F& x, Q/ B( q# R$ g9 ~. U" M - (setq rows (cdr (assoc 71 elist)))) ]+ e x7 Q, }1 O. O2 M3 r) W
- (set_tile "rows" (itoa rows))
" Q. G! U5 g( u* a1 [% d2 ? - (setq col-sp (cdr (assoc 44 elist)))
* b v; p/ s7 p/ h' J - (set_tile "col_sp" (ai_rtos col-sp))4 p/ _. _) C- M. B$ M9 d8 p/ w
- (setq row-sp (cdr (assoc 45 elist))): x: E6 p/ }! j: k3 _
- (set_tile "row_sp" (ai_rtos row-sp))
$ y1 L5 B2 N2 ^$ y0 \8 e D - (if (/= hasclip T)
1 Z3 Z; f+ d) O! F- P - (mode_tile "xcliponoff" 1)5 _4 {0 X6 {& u9 t' h5 L7 G8 S
- (set_tile "xcliponoff" (itoa xcliponoff))
/ x/ E. C1 o2 ?5 U0 V - )8 ]0 a, J( L3 }
- )0 h+ X4 b/ T! F5 H6 g
- ;;
# F; b9 I$ \ P( X' X7 T s; C' d2 k - ;; Invisible edges for 3DFACE% g6 s5 r7 z* {
- ;;$ q: b+ r( ^. @4 ^: b$ S
- (defun set_tile_edges ()
$ V% c5 ]" u, l" U) C8 H; n - (setq f-vis (cdr (assoc 70 elist)))- M& q2 k- U; h# D/ @( a+ w7 c
- (if (= (logand f-vis 1) 1)
" Q$ o" O( p, I! X: A8 H3 W) M - (set_tile "edge_1" (setq edge1 "0"))
" X- M/ q4 ]! F) j2 C" l0 u1 b2 n+ H - (set_tile "edge_1" (setq edge1 "1")), k* `5 Z% j. j- `/ F
- )9 d. x; V6 Q( b6 d6 Y# A! Z7 W
- (if (= (logand f-vis 2) 2)! `3 F% B- k7 R) {* \ u
- (set_tile "edge_2" (setq edge2 "0"))* j% @ g |3 S% Y
- (set_tile "edge_2" (setq edge2 "1"))
, @3 h1 X% t, }0 e6 W - )
6 C; [# p$ V+ J# k - (if (= (logand f-vis 4) 4)+ N& N2 d9 A4 m C$ S7 X
- (set_tile "edge_3" (setq edge3 "0"))+ k+ v a5 s7 l- t+ ]5 c( s2 E
- (set_tile "edge_3" (setq edge3 "1"))5 f# t' \3 x5 t8 Y8 j
- )1 g2 M$ T/ T1 i7 p% F" f8 T
- (if (= (logand f-vis 8) 8)
/ Z5 S* o& e* @& X y% s, d+ m - (set_tile "edge_4" (setq edge4 "0"))
3 A% ^* w) q7 t+ [. C - (set_tile "edge_4" (setq edge4 "1")); n0 Z0 @, o6 G" D) X) X9 B( ]
- )( F% E' Q* D5 C; x
- )
- i1 X$ X- O/ Z: |" { - ;;
0 p7 b: r. ^7 Y3 J, z' L - ;; XYZ Point values for polyline vertex3 X, J j* M) a
- ;; ]* w; y1 j f3 J
- (defun set_tile_vpt (ptype)' \/ {' l; b. Y4 x" h* u* V$ i
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE"). F: J- F; Q1 f R
- (progn
, e2 V& V4 {$ u/ m - ;; ctr is 1 based, vertices are zero based.3 N, X* L$ F# _$ W# r3 o) J
- (setq vpt (cdr (getLwVert (- ctr 1))))
# s1 E/ L1 h& I0 J; D - (set_tile "xtext" (rtos (setq x1 (car vpt))))
# |2 _/ {' J0 V; e - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
$ ]' H! s, S3 b2 N2 O& p0 o3 v - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
3 N5 m9 e4 n) @* r) `7 F - )) p/ y" j/ x4 Z- G6 k0 a1 W
- (progn0 ^5 m2 D; \0 p, U4 C8 F( {3 l
- (if (= ptype 0)" _+ | A. }; U; O& H; V t" U
- (setq vpt (trans (cdr (assoc 10 vlist)) 0 1))
5 L6 Z+ @% ~1 u% U8 e - (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))
2 ~" M+ ~" Z- H. r - )' d( H3 E- s( q# p$ X0 w% Q2 x9 y" r
' U) R; f2 ?. G. @) o9 p- (set_tile "xtext" (rtos (setq x1 (car vpt))))
$ }8 y# T* [" u. a5 o/ h - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
0 z6 g: K2 P. ?, S - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))7 o4 F( x0 b8 l, O2 U0 Q/ V( r9 N9 x
- )
$ W6 L. x# q9 ?& u N( @ - )
) e* R3 M, j; S; a6 K
% k6 I8 M# ?& {" T; x- )
. h) O# {2 f, f5 V+ C - ;; This is the equivalent to doing an entnext on the heavy weight
( s* @8 ?( M m: |$ r/ F. B' W - ;; polylines. The hard coded '4' below allow stepping over the3 [9 ]) R7 H/ ^. L# H: Z
- ;; 40 41 and 42 group code information. The while loop finds the
, W) ` S0 s4 r6 N, f: w9 @2 L - ;; first vertex which will be used as the starting assoc in the$ O' ^+ J+ @% `0 X. i& a: ?6 v9 O
- ;; call to nth.% j% ?1 _7 W" \
- ;;
+ v5 @( a2 b; [6 E( S - (defun getLwVert (tmpctr / count tmp); G: J) ]- d5 X: v5 w6 w
- (setq count 0)
4 n( Q7 G- m0 D! t8 ^: v. U - (while (/= (car (nth count vlist)) 10)
* T4 ~% Y( c( ~ - (setq count (+ count 1)), T1 t6 d: i' m$ ~2 ~' A( L
- )! D3 \6 [; |# B4 s
- ;; If the counter reaches the number of vertices,3 l# K2 z7 [! S0 m
- ;; reset ctr and tmpctr to zero again.& E* K7 [5 X- s8 j# `4 @
- (if (= tmpctr (cdr (assoc 90 vlist)))
) r. z4 e& O; f8 Y3 g - (progn
& G: N$ f/ S2 B& f! t; B - (setq ctr 0)3 D7 N( t0 k1 Z
- (setq tmpctr 0)! ]- o U# Q! t, K( _" y
- )' r$ Z" A( B1 @ E) J- N
- )
0 O' _5 \; T3 P* |9 D* w - (setq tmp (nth (+ count (* tmpctr 4)) vlist))
( ^+ V1 x6 Z! Y( \* s N, A - (setq tmp (append tmp (list(cdr (assoc 38 vlist)))))
n% h" |* v4 f" a - (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))
4 w2 a" ^( {3 A. q3 [1 M0 L - (setq tmp (cons 10 pt1))8 N: S: k+ \% v7 t
- (setq tmp tmp)7 P# Z9 ^7 {) ^ B2 P3 M# n& H
- )
/ v. F1 n* k/ r% U - ;;
2 R! F9 L8 z& c5 G, X3 m - ;; Set tiles for Spline properties. If the spline is rational then we
' o- ^( P5 N& X' \/ y& [ - ;; need to display the weight values of the control points, so set
, u S9 j0 f, w) R - ;; flag to 1.& ]2 R! M" m5 K0 q+ }
- ;; 1 = rational spline. c5 g7 `& U& N4 \/ @
- ;; 0 = non-rational spline Q `1 \2 H3 ?
- ;;% s/ D6 T7 `* M, c$ O
- (defun set_tile_spline_props ()& K; V' O7 L. W6 o5 [8 Z& k! x" G; Y
- (setq rational_spl_flag 0) ;; initialize rational spline flag+ \/ { }* u, F! F. D
- (set_tile "Degree" (itoa (cdr (assoc 71 elist))))5 m& ?$ K, f6 L/ D
- (setq bit70 (cdr (assoc 70 elist)))
3 L2 d9 \/ W: q - (if (= (logand bit70 1) 1)1 u* r: g) x, {8 ^( D. Y
- (set_tile "SpProp4" "Closed"); |* g! k1 Q( S. z3 W& _
- (set_tile "SpProp4" " ")" i! C. W7 |6 ^
- )
( x# R$ D& V: X& k: u - (if (= (logand bit70 2) 2)% z- }; O; }" R8 l
- (set_tile "SpProp3" "Periodic") Z2 b/ e6 Z( P9 A1 }+ c
- (set_tile "SpProp3" "Non-Periodic")5 t% o9 [3 Q/ F
- )
& P, Y {" X R3 S$ K7 @$ P - (if (= (logand bit70 4) 4)
* Z- E- n# Q: ~3 d$ a/ x7 V - (progn7 _6 j# u8 _, l1 B# R; P) v1 T
- (set_tile "SpProp2" "Rational")6 T) x9 e/ @; d/ J' P: f
- (setq rational_spl_flag 1) ;; this is a rational spline' m4 |% \: t5 Q
- )
# w3 I' Y( s. _, c8 C& ^5 T8 |- ~ - (set_tile "SpProp2" "Non-Rational")
& o& B( R5 @# f - )
* f) T, p4 m" N) J - (if (= (logand bit70 8) 8). q" k+ E" M. A1 c) v7 v* f2 Y
- (set_tile "SpProp1" "Planar")
2 o: t* y% ~3 N! o4 U$ e: p - (set_tile "SpProp1" "Non-Planar")% U# `% r. @, a8 \
- )8 K" q9 j/ f- K( g# D G2 ~- A
- (if (= (logand bit70 16) 16)
( g- N& w9 _+ ?( _ - (set_tile "SpProp5" "Linear")! O: u8 |( s: x( Z
- (set_tile "SpProp5" " ")( L+ P; n: r+ r1 p. \; r4 U
- )2 p2 Z0 j5 q9 c- D$ A
- )0 L( G4 q! N$ F/ C+ H
- ;;
) p6 }2 |' O& C( c8 L! D' J - ;; XYZ Point values for spline points. z4 G& o" }0 [8 \2 p& V
- ;; Need to account for WCS/UCS
6 ?- n3 F7 A: p1 g$ Z4 \ z r$ \ - ;;/ h0 u2 z+ S. @' X! r9 T
- (defun set_tile_cntl_pt ()8 K. p& i8 }4 V h0 b8 a; L; ~! x
- (setq cntl-pt (cdr (assoc 10 elist)))
6 m6 [+ o, \* c5 ]- @- [7 \ - (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
- B: d( M1 q2 i0 q( h: D, M - (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
; U9 P) D4 k% k! ? {2 p8 Y5 } - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))- p$ I$ h1 t2 [$ ~% l5 O G" U
- (if (= rational_spl_flag 1) ;; if rational spline
& h5 K( E* @# Y - (progn ;; show weight9 V2 L7 _/ G' y
- (setq weight (cdr (assoc 41 elist)))
9 i: S }* Y) A* |4 Y' k [ - (set_tile "weight" (rtos weight))$ z" o* n4 n: y
- ) ;; else
8 g% ~- j. M2 I; l; _3 j - (mode_tile "weight_text" 1) ;; disable weight field0 {3 }: ~" t. n5 o1 n5 q9 \
- )7 m2 ^3 y x& f* B
- )
) @: n7 _' g) Q - ;;
/ s; n: k1 x- X0 X) A - ;; XYZ Point values for spline points
8 \$ R& z% W' V9 s8 \ q# r& ^ - ;; Need to account for WCS/UCS
: c1 j7 V/ z5 A( ~- H7 ^; n - ;;3 z: ]! W0 M# n2 k. [8 X) s
- (defun set_tile_data_pt ()
( V; o' U6 \: M' K4 Y& X - (if (not (assoc 11 elist))
, \5 ] d8 l, S2 f1 V+ q - (mode_tile "data_pts" 1)3 s# |; o6 F$ v: W$ a2 M8 n
- (progn( E3 k6 \+ ?/ Z$ t! A- _& j
- (setq data-pt (cdr (assoc 11 elist)))5 A1 _! ^/ D+ S
- ;; display points with current precision.: L7 f5 e& ?& {: J3 ~/ [6 O' O
- (set_tile "dxtext" (rtos (setq x1 (car data-pt))))
' c- v5 R' ^8 |$ E) w' l5 b7 m - (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
5 d% y6 w' |1 d& h& o0 B1 U - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))$ c( P7 P( `6 l# K* x6 T3 ^0 Z
- )7 B' a- t' u& V! o
- )9 U4 Q+ K3 h; o+ C/ X V
- )
" S* t U5 H" m/ B( \/ f3 @6 ^ - ;;! b% f7 {8 F* o. b1 Z
- ;; Fit curve, fit spline, or smooth spline surface setting4 W7 d5 {; |) _! a+ z
- ;;% R0 B8 `7 K* F5 M! \, o
- (defun set_tile_fitsmooth ()
& _$ T U) v% ~6 o0 C! k - (cond* w- E: N* { X0 R: x4 M' J+ C3 y r: A
- ((= (cdr (assoc 0 elist)) "LWPOLYLINE")4 K# s4 _7 ^2 d
- (set_tile "none" "1")$ z, E9 p; j7 T
- )
/ Q% f" H1 a& P$ b - ((= (logand bit70 4) 4)( `" U6 s& r5 R
- (cond3 w2 v& S) j0 Y) p% ^- W+ [( n' U4 k% r
- ((= bit75 0)
_; k& M V0 r - (set_tile "none" "1")" s7 i. C/ A* I4 _- C
- (setq spltype 0)
9 z5 J# V6 \- O' z - )
% E# o( D: ^/ G# H! R - ((= bit75 5)& E! l- K- L! |. `
- (set_tile "quad" "1")( x; k5 E8 S0 P8 ?- a
- (setq spltype 5)
4 ^- o9 }0 z( Y+ I5 ^1 S - )
3 R R1 {: } T* Y. ^4 p - ((= bit75 6) [# v6 i: k8 X2 ]: u
- (set_tile "cubic" "1")1 |3 ?! b' \* g, [. y/ V
- (setq spltype 6)% l. V* R( } c$ H4 L# }8 e" q
- )1 [. \& x7 w1 ~- j5 f" X7 N; P
- ((= bit75 8)
2 r" n2 w6 I8 C6 n7 L! D S/ E9 r - (set_tile "bezier" "1")! Y8 `. x8 U7 t) c0 y! s1 \" W
- (setq spltype 8)- X5 B' i: a" V3 q! C
- )
0 a6 I% x# ^' j, I# T - )% ~2 u% ~1 J+ r/ g! s1 x: g4 r9 F
- )) a& X& r6 `; u; Q
- ((= (logand bit70 2) 2)
" y. l+ R F- K! F - (set_tile "fit" "1")
. ~9 r; D4 t" u S" @: ^ - (setq spltype 1)
3 v9 M* p: {+ c - )
! |/ O, g0 M2 b4 d" F - (T (set_tile "none" "1"))
5 k7 u3 ^1 z' e# V' I; [2 {1 U6 f/ u - )1 ?: e' [5 P' `( w* m# K8 q1 `7 f
- )! @5 ~% H) I7 _, H3 a2 P7 U
- ;;2 f* Z& `$ L5 D- q3 S4 g! H: @" w" A
- ;; Closed or Open mesh and polyline setting6 w$ X( j. a( ]% @6 A- j2 U
- ;;' S5 ], G5 x: S j+ k9 M5 ~
- (defun set_tile_closed ()
; z; o9 I2 p0 v- J) X - (if (= pltype "3D mesh")
' N; a' \) I( }4 V' s4 }. c0 f6 d- n - (progn" v- H1 q1 u' x; e0 g O5 c
- (if (= (logand bit70 32) 32)
+ B4 X) j3 ?4 g% P5 m! x# i4 g2 |1 G' M - (set_tile "closedn" (setq closedn "1"))
" ^: d( b/ [5 ?4 g5 l8 R4 Q& W0 ?8 i - (set_tile "closedn" (setq closedn "0"))) T6 T1 w$ K4 N
- )
9 @4 @% t4 r: ~8 ? - (if (= (logand bit70 1) 1)
+ O! A9 B9 n# W- }, u% J - (set_tile "closedm" (setq closed "1"))
i; i3 S$ n$ |9 p& N - (set_tile "closedm" (setq closed "0"))
- Y2 o6 r; W- h- F+ r5 E - )0 e8 \; a5 ~' ?7 f0 C! x% a l
- (setq old-closedm closedm old-closedn closedn)4 x3 o5 v, d4 f( v' Q1 @
- )
6 I- E4 {5 `/ B - )* d* h/ ?3 a2 \
- (if (or (= pltype "2D polyline")
# s$ G' }0 P$ j3 i' d/ a: g - (= pltype "3D polyline")' [- V0 j* H+ c6 j4 F
- )/ a$ D" F7 k3 M2 x
- (progn
/ U0 m. m' ?8 K3 t% S - (if (= (logand bit70 1) 1)2 E5 ?$ w, C& N4 O, Q) X& k
- (set_tile "closed" (setq closed "1"))
( f/ b8 [3 d8 p3 u/ { - (set_tile "closed" (setq closed "0"))7 Z5 z7 p& ]' w( ?
- )
. Z; ?7 {; z5 F( c) Z - (setq old-closed closed)0 l+ {7 V |6 s( s, g; c$ a
- )$ m, l/ _7 z' U/ s; h0 [
- )
, [/ Q6 h" h5 I% l - )/ r5 y9 C3 u4 c2 j
- ;; Set common action tiles
2 q' A; c8 L) _0 O/ I) R& @ - ;;7 O1 e! c8 \$ i+ e6 o3 c/ W" m
- ;; Defines action to be taken when pressing various widgets. It is called$ q N( x; Z' q" E t
- ;; for every object dialogue. Not all widgets exist for each object dialogue,2 J$ d) r1 ]! V, o& k9 r
- ;; but defining an action for a non-existent widget does no harm.' b/ y7 w- K" |7 j, R& c! a
- (defun set_action_tiles ()
- D) j9 }* V) h' H: G2 ^ - (action_tile "cancel" "(dismiss_dialog 0)")* U" E! p V/ V( `
- (action_tile "accept" "(dismiss_dialog 1)")" ?5 K# X2 |% l: ~4 B6 G' ~
- (action_tile "help" "(help \"\" help_entry)")
. q* C# f* v( a6 M( S - (action_tile "b_color" "(getcolor)")
. `6 ~4 ?' a$ A1 u8 Y% R) A - (action_tile "show_image" "(getcolor)")- [5 Y- w& g$ z3 {; k
- (action_tile "b_name" "(setq elayer (getlayer))")
1 q7 h! m( ~' J1 \ - (action_tile "b_line" "(setq eltype (getltype))")' P! y8 B L% T g; v
- (action_tile "eb_thickness" "(getthickness $value)") L6 w/ t% Q8 D w/ [3 q
- (action_tile "eb_ltscale" "(getltscale $value)")
2 n5 ^* o5 E) c
3 O9 X6 T* D# j/ c. B) G: w% h- (action_tile "pick_1" "(dismiss_dialog 3)")
- Y- w# A$ K6 h) y( w - (action_tile "pick_2" "(dismiss_dialog 4)")
4 x. J; q4 ^+ I9 t - (action_tile "pick_3" "(dismiss_dialog 5)")
( `0 t8 X0 a2 @7 m% q2 I - (action_tile "pick_4" "(dismiss_dialog 6)")
/ _3 Z# X2 M- v8 B2 u: H3 d8 D - (action_tile "x1_pt" "(ver_x1 $value)")* k* ?( o: B" C/ F9 x
- (action_tile "y1_pt" "(ver_y1 $value)")' p! a2 P" b b% x# B
- (action_tile "z1_pt" "(ver_z1 $value)")
$ ~) v/ Q. W' j# v I - (action_tile "x2_pt" "(ver_x2 $value)")
2 p, B) L ^& k4 ]8 s& ` - (action_tile "y2_pt" "(ver_y2 $value)")( c/ {6 F5 L) c/ |8 E
- (action_tile "z2_pt" "(ver_z2 $value)")% O, R% a. ^( h" o' c( V% @& ^
- (action_tile "x3_pt" "(ver_x3 $value)")2 ~2 H' f' U }* n
- (action_tile "y3_pt" "(ver_y3 $value)")
3 E- J7 _. T; z - (action_tile "z3_pt" "(ver_z3 $value)")6 S: Z% B7 x; G6 F5 \
- (action_tile "x4_pt" "(ver_x4 $value)")
~$ g/ X, [1 \6 q - (action_tile "y4_pt" "(ver_y4 $value)")6 G2 [1 o; [. C9 d8 ], }
- (action_tile "z4_pt" "(ver_4 $value)")
, ]4 w! y! [9 u$ E: \ - 4 m' c+ w( i) X# M7 T- n
- ;; Action tiles for Xline & Ray
( i/ K$ w$ k5 ] - (action_tile "xline_x1" "(ver_xline_x1 $value)")8 h; s _+ Q/ v1 l$ e& Q
- (action_tile "xline_y1" "(ver_xline_y1 $value)")
: U8 f/ m, A3 q3 x* c - (action_tile "xline_z1" "(ver_xline_z1 $value)")
' [1 W# S z t - (action_tile "xline_x2" "(ver_xline_x2 $value)")4 z" J+ V& t% U( l, ~ J( x, n1 h
- (action_tile "xline_y2" "(ver_xline_y2 $value)")
- s4 v) u/ O+ L( e2 x( |( V - (action_tile "xline_z2" "(ver_xline_z2 $value)"). O& m0 n% B# V$ C4 K( M
% F' R1 | ?# O" o7 X6 R- (action_tile "edge_1" "(setq edge1 $value)")& a" `) k& r% h8 |5 w" j, j9 X
- (action_tile "edge_2" "(setq edge2 $value)"). q& a% F* @3 o4 |- `
- (action_tile "edge_3" "(setq edge3 $value)"); b5 m' p5 c+ ~
- (action_tile "edge_4" "(setq edge4 $value)")0 h+ E" X2 @% N4 X2 j' Q
- D7 ~: S$ ~( {3 w! }
- (action_tile "radius" "(ver_rad $value)")
9 u" F- q1 w+ R6 w2 ?+ P' w - (action_tile "st_ang" "(ver_ang1 $value)")( \& T% |7 a& Z3 ^
- (action_tile "end_ang" "(ver_ang2 $value)")
- C3 L( r4 R9 p" H0 A7 c2 ^ - (action_tile "end_eang" "(ver_eang $value)")
' C# ?* \8 |/ @/ K2 I7 K& @( R - (action_tile "minrad" "(ver_minrad $value)")
' g& O4 b2 w. P8 L# m6 v5 b - (action_tile "majrad" "(ver_majrad $value)") P4 `; s, X% L3 E. c/ [! o4 \" [: S
+ ^8 I0 Q- l* A. O) n5 n" K- (action_tile "xscale" "(ver_xscl $value)")
1 y! V' W, Y# H; i- p; `" L - (action_tile "yscale" "(ver_yscl $value)")
% u$ z' v% g4 m- J5 ?* Z - (action_tile "zscale" "(ver_zscl $value)")
& i8 I8 i9 I! E- q' e$ t" b - (action_tile "rot" "(ver_rot $value)"): A' _1 B! l$ @$ h/ a
- (action_tile "columns" "(ver_col $value)")
1 Y* F9 C2 x+ i! ]( R1 E - (action_tile "rows" "(ver_row $value)")1 _- f' {# {' w. }. @5 X
- (action_tile "col_sp" "(ver_colsp $value)")* C6 r9 y' {0 Z. W( D: S
- (action_tile "row_sp" "(ver_rowsp $value)"), F, S! S% Y ]3 b" t# i! Q
3 i I' w: \7 ]& h% i2 D+ T( c- (action_tile "hght" "(ver_hght $value)")2 B2 A+ Q: x6 K; z y+ v
- (action_tile "wid" "(ver_wid $value)")
4 D I5 A1 k& A# U3 Z - (action_tile "obl" "(ver_obl $value)")
$ a8 k5 A9 u# K" @- ^% P0 F3 w - (action_tile "style" "(style_act $value)")
% w2 u* K# ] P' T) x% j9 d
6 D5 D* w- n- u8 k( H# C% _- (action_tile "t_string" "(ddgettext)")
. {9 R: }& I4 O: l: d! [ - (action_tile "tag" "(ver_tag)")- c1 D7 S. C I: N5 H6 |( y# G+ R
- (action_tile "prompt" "(ddgetprompt)")/ _+ P: r% g0 J& ~3 C3 D
- (action_tile "bkwd" "(setq bkwd (atoi $value))")
) D' r, s; [& P+ k# i, @ - (action_tile "upsd" "(setq upsd (atoi $value))")+ D* b+ V& R) `, G+ q
- (action_tile "inv" "(setq inv (atoi $value))")
4 a- X; x: @: h1 t3 d+ H4 P! { - (action_tile "con" "(setq con (atoi $value))")
$ v5 l( n5 Q5 X7 t - (action_tile "ver" "(setq vfy (atoi $value))")8 K1 u+ s6 s* ^( ^1 A6 u# ^( m. a
- (action_tile "pre" "(setq pre (atoi $value))")* Y4 l3 D7 ~# x" @& a1 p
- (action_tile "popup_just" "(jlist_act $value)")1 w w7 H7 ] r; ?! s, }. [# }
- - L; N0 p% t) |$ \
- (action_tile "closed" "(setq closed $value)")7 E+ r4 I% N# |- y
- (action_tile "ltgen" "(setq ltgen $value)"); i" ~: W; M6 {; N
- (action_tile "closedm" "(setq closedm $value)")6 H. n6 S; k- I# y, I: ^
- (action_tile "closedn" "(setq closedn $value)"): ~3 s, M4 V: O
- (action_tile "next_v" "(next_vertex)")
4 j2 R4 u; O. @ T; w6 | - (action_tile "xcliponoff" "(setq xcliponoff $value)")5 l0 v2 j& A6 Z) ~6 ]5 f
- R) N; X2 j2 T+ c1 G, S; J- (action_tile "next_cntlpt" "(next_cntl_pt)")4 d7 T$ p, r% E+ A2 s3 R. R+ j$ U
- (action_tile "next_datapt" "(next_data_pt)")0 l+ D" \& \- ^( A5 d
8 Y h9 D, V& g2 [5 i- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")$ h4 M. {/ Y& s
- (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")
* x1 s5 O L3 d. n - (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")# w7 i+ T' c. s8 q
- (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")9 \9 q- I! v' T
- (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")$ `/ p5 u' r- z1 M7 g
- * b6 ^0 _0 h2 P( D7 g
- (action_tile "u" "(ver_u $value)"): U" F) M+ g6 S7 {+ N
- (action_tile "v" "(ver_v $value)")% ~+ |7 g) x, ~7 Q0 o% w- Z
- )
2 I M6 A. g! r+ T
5 S4 r7 p6 Y/ _0 c& q- (defun ddgettext()8 U) h( D0 Z0 k# p- F+ b1 U
- (setq text (get_tile "t_string"))
; S: g3 K# N: L2 D% `6 d% E' Z - )! x* ~) n! B p' O, A9 w4 S
7 y1 k. C+ y4 R9 i) \- (defun ddgetprompt()5 M. P5 a3 q* T2 ^8 ~' q. l
- (setq atprompt (get_tile "prompt"))6 X6 w `# l0 v% ^6 B
- )* w0 @. }" a: i8 k9 g. i9 X, }
8 M4 m: W& l A' f. d% P- ;; As OW doesn't support disabling of individual radio buttons within' _0 H7 ^' O6 ^% }' _
- ;; clusters, a check must be performed as to the legitimacy of the0 z2 ?' Q+ a& {
- ;; button pushed and reset if necessary.
) R- t) ?1 l/ F% E - (defun radio_gaga (pushed)6 O2 ~) G3 { ~1 v2 V C& ?$ M) Z
- (cond, f5 N# w% a1 l& D. n1 @
- ((and (= pltype "3D polyline")8 z+ ]; R0 c& H5 i' }/ R3 \2 p4 l
- (or (= pushed "fit")7 b8 f: S! G' Z' E) v
- (= pushed "bezier")
$ w5 x" X3 k c, N2 }; O - )" ?4 X/ G8 W4 Y; D# u# {' Z% Z
- )- q' V' g$ e' c6 v- t
- (set_tile "none" "1")5 S4 P. x3 A* t
- nil
9 _; L2 Z: m) I8 L - ). k& A" q: e! C
- ((and (= pltype "3D mesh")
! n1 k0 I# L" ~+ Y5 ~) j1 E5 q - (= "fit" pushed)) c+ y4 A$ w% Y
- )7 q4 Q/ W% B; s J% e
- (set_tile "none" "1")
4 Q" T% ^, Z" c' Z# J: s* p( ] - nil
' @* {9 R2 l) |6 ` } - )6 M% C" [+ _ i# }8 v
- ((= pltype "Polyface mesh")4 D/ L M3 \# O6 @8 F- G' ~
- (set_tile "none" "1")
/ S4 u( C- p; U; A8 L5 r* d - nil$ P# R$ j- z9 L( [
- )& ^/ |( K1 m, B3 c- X6 ]
- ((and (= pltype "2D polyline")0 w, z4 ?+ R- K8 C; r
- (= "bezier" pushed)* p" V& e' G5 f* z% n
- ) O; k6 x( P; I4 g8 t
- (set_tile "none" "1")
( ^( A) I# M, @ - nil
$ c; K. j5 Q, @/ p N5 s - )9 S& x3 b; r9 C
- (T)
W6 w8 o! L! t9 Y# l - )! \5 U5 {3 G% U+ w, w% R6 ?
- )
% t4 O, I; |6 D8 s2 U3 H$ Q - ;;' {, @, {3 e% l% T5 w$ A/ p& _2 A
- (defun set_uv (type_n)
8 e& n' O- ~7 m- E; L - (setq spltype type_n)
4 `# I: i* y4 [8 G( E5 `! [& J - (if (= pltype "3D mesh"); k5 \1 x9 P# z5 j/ \; H. p
- (if (= spltype 0)
& F; I* v7 T+ [( d5 I3 x9 o- D) `+ H( D - (progn! O' s5 |' D9 a! i4 w4 ?7 B% M) R$ k+ p
- (set_tile "u" (itoa (setq u 0))): O6 @( r0 q6 ?& O* m9 i. I8 C9 V
- (set_tile "v" (itoa (setq v 0)))
: P* d; N2 w2 Q0 U% k0 F - )
! K! x$ m5 S' s+ G4 o- i - (progn
) d# N& L0 `9 ?8 d Q" b( N - (if (= u 0)$ k1 D0 A j; ]9 I1 j, n( y
- (set_tile "u" (itoa (setq u (getvar "surfu"))))- Z% ]; }" L) {0 [* Q' x5 @
- )
2 p6 a: ~, J t% O, h7 e - (if (= v 0)
% C% P; y6 |: w- d - (set_tile "v" (itoa (setq v (getvar "surfv"))))+ j# T$ d1 m* N4 `
- )
8 Y! w1 T% O# y- Z" t - )
- a! I1 e0 J' L6 }3 V9 p8 X8 g1 o - )
8 r; S A9 W8 E/ F( b - )
; N) b ~1 h2 G3 R4 n3 N. c - )
% `1 C- U- G4 x
* B/ t: K& l7 \- n- ) u' e" C k, [7 s
- ;;
% e2 @5 k* y+ z( N. P" e, O; T - ;; Verification functions
% g$ F% j* p( j; p - ;;( E! n6 V1 b- K9 Z
- ;; Verify distance function. This takes a new X, Y, or Z coordinate or3 c/ G3 z" t( l& t
- ;; distance value, the tile name, and the previous value as arguments.' F% s; J1 v, g0 u
- ;; If the distance is valid, it returns the distance and resets the tile.( s' p/ ~7 ^: c2 ^) z: s
- ;; Otherwise, it returns the previous value, sets the error tile and keeps
! A; }! u: Q& v, i# X - ;; focus on the tile. Shifting focus to the tile with invalid value can) M% G" g G {& ^
- ;; trigger a callback from another tile whose value is valid. In order8 A+ q0 \( l" l
- ;; to keep the error message from being cleared by this secondary callback,: V2 _# [4 q- c
- ;; the variable errchk is set and checked. The last-tile variable is set5 J" t0 J2 C7 r( A& @; T* W
- ;; and checked to ensure the error message is properly cleared when the
: p" w3 u$ A& e4 u6 [) w - ;; user corrects the value and hits return.
g2 F9 q1 A0 M8 Q6 m4 f - ;;' z" t& B0 S1 b7 j. S
- (defun verify_d (tile value old-value / coord valid errmsg)
1 r0 A" A6 Z1 }; U g, m) G% b2 B - (setq valid nil errmsg "Invalid input value.")9 a2 I" {4 F2 ?8 r5 a2 n
- (if (setq coord (distof value)); N- I6 o5 @+ M8 i! I
- (progn+ X; [& V, T+ p W2 @9 P9 x# g; s
- (cond0 K: {4 {6 f! M% N5 _$ V4 m2 K+ c" v
- ((or (= tile "radius")
0 O3 c+ s+ {+ G& n# Y - (= tile "hght")" L# P7 ~! ?) V
- (= tile "wid"); I: r2 t8 d1 T0 x. w
- (= tile "majrad")
/ r F; ~" ]' Z - (= tile "minrad")
* s' z* T3 ?- Y. q" T7 c$ _ - (= tile "eb_ltscale")
4 Z7 a9 v8 M6 R S - )0 |) u3 @% s4 m1 L$ f" w: G
- (if (> coord 0)
$ I0 C6 }+ E6 w9 e - (setq valid T): c/ I+ M* O0 U' `9 [: e# B! M9 J
- (setq errmsg "Value must be positive and nonzero.")+ B$ f4 ^. a0 h! K" c0 b* E! F$ `
- )8 I7 G, u- q6 \2 [3 B4 v8 y3 B* H
- )
! V" f! v7 b( I f9 p# J* ^! ` - ((or (= tile "xscale")
% p: A' k+ e# J( x - (= tile "yscale") U% W7 Q" {0 D
- (= tile "zscale")6 E3 m, J% ?; f3 M. }
- )
) U& f9 n; F: a& _* G+ N - (if (/= coord 0)3 m1 ^$ G; I3 f. o
- (setq valid T)4 a: t$ R# Z1 J9 ^
- (setq errmsg "Value must be nonzero.")
& a: o W1 F; q# A% B2 ~5 | - )$ W& p- y6 P: S
- )3 Y2 _4 l% }- r& u
- (T (setq valid T))/ i7 k$ {+ T2 e( K4 q
- )9 \* H: K" Z+ i0 @1 G8 y
- )
/ k* J* R$ `! J. w" P: s - (setq valid nil)! y8 I) `& L% Q9 |9 n' Q
- )
7 S* a. H1 Z+ E, j+ N - (if valid* g) U! @( R2 P) @: r$ S& P9 R5 o
- (progn
9 h, m+ }: }* i1 t1 J9 X: c - (if (or (= errchk 0) (= tile last-tile))& `! ]% D3 ~. V
- (set_tile "error" "")
3 W; P" }/ h! R1 P - )0 I7 ?5 d- S: c; ~- @/ Y7 }/ J
- (set_tile tile (ai_rtos coord))
3 F; |" g$ i/ Z4 p3 O) z. V - (setq errchk 0); g/ ?# n4 b& p
- (setq last-tile tile)
: [, b ]4 J" m3 q" g - coord
3 V( ^- h2 s7 Z: c - )* v/ b' [# z" Z9 B |
- (progn
! c# X* K/ s b! p( p - (mode_tile tile 2) ; Move focus to offending field0 X: I& t6 Z$ z0 y5 W4 h4 m% a
- (mode_tile tile 3) ; Select offending text3 u! Z& ]8 W, r4 x9 Q4 m
- (set_tile "error" errmsg)
9 k8 ~! B7 J: ~$ ^ Z* \ - (setq errchk 1)( S7 m+ w* j3 v& K# x* w. L- d
- (setq last-tile tile)% X' J; H/ t$ ]8 s' b( i; P
- old-value
+ P2 `! {3 ~# Q# H. M. r - )
. X% B& s, \+ W, j2 d, v! c0 X) I - )# M4 X- K5 m4 [9 c0 x: c
- ) b$ [5 B2 c* d5 V+ h, C) B' c
- ;; Function for Xline coord edit box checking.
) O- m% t Z! h$ x - (defun verify_xline (tile value old-value / coord valid errmsg) R* G6 i- j& E4 j7 C
- (setq valid nil errmsg "Invalid input value.")( [6 n* f6 r* f" F% x
- (if (setq coord (distof value))
4 i' J) [9 n1 y1 ^( R- F" F9 `0 L5 z - (setq valid T)
) u: N, z. }# o1 ~ - (setq valid nil)
% d2 B# N" ?4 \+ o) m+ M* Q - )
- P! A1 |0 X' J* z: N - (if (and coord; d& w+ D7 B4 ^% t
- (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) )3 [% G5 G* w" I) }" [6 e% K
- (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )
1 E# B) F; _: ^, _' F& ?. A - (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) ); y8 B; O) [; C1 @/ U
- )
, |% Z+ ?( B1 m, ~ ]2 | - )
* V9 l, W2 d- r9 R - (progn$ C3 }# x# I, c! s7 Q0 W% X L7 d
- (setq errmsg! n; O2 V; F1 V
- "The Root point and the Second point cannot be equal.")( H/ v- I+ E& v8 m( F" k
- (setq valid nil)1 b- w% p2 w% E* a$ z
- ). Q# g, n. H$ H* Z
- )
3 e% N, e0 N8 |0 r - (if valid0 L) X% |0 {+ T: ?, B3 @/ c
- (progn
- r4 @. I h q( I. K8 k7 H - (if (or (= errchk 0) (= tile last-tile))9 _" D" z8 {& b/ e/ f8 q
- (set_tile "error" "")6 r$ E) z8 T7 v& ?7 ?
- )
% C+ {- D Z8 {: Q: @7 ~ - (set_tile tile (ai_rtos coord))
9 }) ? D0 a0 b' E" H! ^* ^; x - (setq errchk 0): i/ r' S6 |! A! r! h
- (setq last-tile tile)! o& _" j8 r- n" j6 S" ] E4 r* ?
- coord
0 M6 z; i7 D- o' H - )
. X: I3 \$ K0 O" x) S4 ]# v - (progn
! w2 }- T6 m3 u5 H) k% A - (mode_tile tile 2) ; Move focus to offending field
/ Y0 m- b! J( b$ W5 j, M, n - (mode_tile tile 3) ; Select offending text
; p1 M( R+ {' T5 W+ f - (set_tile "error" errmsg)3 j4 k! A1 K; W' G; K6 V, T
- (setq errchk 1)" I/ h' J3 X1 g# [' t" m
- (setq last-tile tile)9 Y% h' O0 c |
- old-value; e9 x! x1 k7 ]9 l" @$ P/ b6 }- z5 v
- )
( M- x0 x+ Y& j2 A& g - )1 r: L% Q/ O$ W; A. G& m3 h ~
- )
) D4 b l- }. C! K/ x - n* m2 v( k( Z: {# {
- ;;3 e: h$ c1 Z6 H5 N1 E3 D
- ;; Verify angle function. This takes an angle and a tile name as arguments.% Q9 [( R5 {8 p* d- B& Z% A3 W
- ;; If the angle is valid, it returns the angle and resets the tile.
: n) y# L9 I9 Y. @; a& j - ;; Otherwise, it sets the error tile and keeps focus on the tile.
1 _: ~. \' @ L4 \ - ;;7 W) V* K! j$ o. G1 ^ ?9 G$ N
- (defun verify_a (tile value old-value / ang valid errmsg oblqmax)
3 U; X: M( m3 Z3 f) Y - (setq valid nil- {: ~& i& F( j% i$ v7 d$ P
- errmsg "Illegal input value."
) N6 j, x( S- t1 L5 A; ?* b7 j$ ? - )
! g- D" X) F: {% \' ` h- x, E - (if (setq ang (angtof value))( b K& P% i9 @# Y3 H( p
- (cond X. {! M( G' E6 E4 z1 V
- ((= tile "obl") ; Restrict obliquing angle
: s9 ]8 E& _# i+ \& D! ?3 c - (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))5 ?( [& P0 X0 L5 e1 L. |- _) o
- (if (or (<= ang oblqmax)' X7 @7 j) q- V$ |: }7 v: y
- (>= ang (- (* 2.0 PI) oblqmax))( O2 [9 H: u; e7 X: F0 l; B
- )
# f( @2 R5 Y5 O! X0 ?+ D8 }! e2 e& S - (setq valid T)
$ {" u {$ x" e+ r. X - (setq errmsg
- y/ [6 b0 T/ ?; K4 T# i( | - "Value must be between -85 and +85 degrees.")% G+ j. E L. k* d8 p
- )
( l! v, i) a. H0 q - )
8 I! h( Q& [* { - (T (setq valid T)) ; Other angles not restricted
$ ?3 Z8 O5 v9 v# s& H9 D - )8 E. Z" h- i; \% L5 j
- (setq valid nil) ; Invalid angle input
c, u7 s/ A+ a7 K - )
8 m3 P% p5 `: k- ~6 g: i) t) x - (if valid: s$ y7 \$ F) f. y3 m. s
- (progn
: W4 g7 z% V$ T. f - (if (or (= errchk 0) (= tile last-tile))
1 ^8 S8 L4 @2 v: s9 B; }' A - (set_tile "error" "")
v/ z# m' n0 u - )/ j' }3 o$ r; b8 i" }2 r& f3 e
- (set_tile tile (ai_angtos ang))+ q; G6 d$ L* u; O+ B1 a, X
- (setq errchk 0)+ a% N$ M+ d5 s
- (setq last-tile tile)2 B: {4 g$ H/ z5 A* ~" f
- ang
6 j6 a8 f x. }1 l; D: ^9 ^. R - )
: f+ v( B3 A% t& t; M - (progn
3 K6 x. V* x% Z9 N4 q - (mode_tile tile 2) ; Move focus to offending field
2 e& H* h' e8 y - (mode_tile tile 3) ; Select offending text
+ L- ?0 t/ T; b- X) _% k - (setq last-tile tile)
4 u% {% T* B6 i) H. L - (setq errchk 1)
% h0 O8 [6 y$ k0 |0 y - (set_tile "error" errmsg)6 G. V2 }) N3 H. h/ v+ Z
- old-value
, u, |; a0 l) g3 H& E - )5 l* v/ B( v. r4 O- }; B2 z3 ^
- )
T$ o/ z$ K1 `4 ^$ j - )+ K6 S* {% m& L4 I
- ;;
/ r2 }( j' T+ M. {2 [ - ;; Verify angle function. This takes an angle and a tile name as arguments.( Z4 K) L) H6 k' r1 u( o1 H& ]
- ;; If the angle is valid, it returns the angle and resets the tile.4 E7 s/ k9 ?8 i5 r$ E* k' @
- ;; Otherwise, it sets the error tile and keeps focus on the tile.% @3 l" ^9 L: R% D
- ;; This function is specifically for the end angle of the ellipse object. If% H; y j* {' K( a% U @8 I" {
- ;; the end angle resolves to zero then we want to display it as 360.& @& \# ~7 I7 }" \
- ;;/ S- h% k! p W6 x$ x( ^
- (defun verify_ae (tile value old-value / ang tempend)% K) N; \, d: M' | }% V" ^
- (if (setq ang (angtof value))
& [6 u5 ?2 Z5 p: N$ Q - (progn
+ y/ l, ~0 M7 F& m, n - (if (or (= errchk 0) (= tile last-tile))
! x+ _" U7 \% ^, c - (set_tile "error" "")+ U+ k* B* f5 Y7 R# W/ k
- )0 S$ n: D6 [( ^; N T
- (setq tempend (ai_angtos ang))
% Y$ [8 n2 L) [$ h6 E8 W8 W - (if (= tempend "0")
4 f, j3 V$ @) D+ d0 ? - (set_tile tile "360")
' f' m, j% o% S0 t - (set_tile tile tempend)
& W( t; k/ l* Q7 j1 l C- i9 Q3 z. R) y" Y# t - )& \- H' U R6 z- M6 R$ I" L
- (setq errchk 0)/ h- H) a% k" x3 @ j f
- (setq last-tile tile)3 r# O( \3 q Q7 _3 S# a r3 P! T
- ang
- A0 M" |, c' a2 O& b - )& T" R1 X) x9 l3 _% o: n8 S
- (progn
f" I5 s+ b/ j - (mode_tile tile 2) ; Move focus to offending field7 Z& A6 S3 p5 Q/ d7 R
- (mode_tile tile 3) ; Select offending text8 B# ?0 y% ~3 s% |' W
- (setq last-tile tile)" N& \0 a" S* i1 C$ ^$ Z* L2 O& x
- (setq errchk 1)
3 ^8 G1 M3 U/ }! O/ {! Z8 B5 V+ d$ E - (set_tile "error" "Illegal input value.")' h! M+ ]/ t) ]$ g8 ~
- old-value
: ]+ b: j. m8 p/ C9 U# N - )5 _. L, H4 `5 ~6 @/ M
- )
5 y! S& w+ o. _# U) _2 _- m7 O - )2 n0 K& m, ~& Y5 ^
- ;;
4 H2 j' y5 ~' N! v$ ^2 Y( L - ;; Verify integer function. This takes an integer and a tile name as: |. ?5 I/ c, K2 B+ A9 f( B2 b8 y- r" x
- ;; arguments. If the integer is valid, it returns the integer and resets the1 @1 |" y. x& L r6 ?
- ;; tile. Otherwise, it sets the error tile and keeps focus on the tile.
) o2 z% z0 S6 I/ _0 u$ R4 b6 y5 J) n - ;;$ c) s4 \, A! n e% M
- (defun verify_i (tile value old-value / int valid errmsg)1 [( X% Y$ |8 q$ s
- (setq valid nil)9 ]9 l- m4 I6 e& W* y+ e6 P
- (setq errmsg "Value must be an integer.")! w; G$ K, J- [( `1 ]
- (setq int (atoi value))0 S1 Z- @0 a6 {3 N4 R6 ]
- (if (setq intchk (distof value))
' m" G: [$ ]6 ` - (cond
A7 P# u* }9 m t8 r! ? - ((or (= tile "columns") (= tile "rows"))$ ?$ L+ G" ?! R' G4 Q2 R
- (if (and (= int intchk)
; o* j5 [$ {' y, z' j. N - (>= int 0)
9 o; p; Q9 q+ z9 s, C. p0 | - (<= int 32767)
6 R5 a6 @) k* }. T( A; z9 V1 t - )
+ n7 Y* R* q. k. J: k+ h. [ - (setq valid T)
8 Y. v- C8 z6 N# e$ G - (setq errmsg "Value must be an integer between 0 and 32767.")
7 ]# w, V' V' C) r) h F8 ^: S - )
8 B5 R' T7 ^% {; T" o5 ? - )
; |( i! u# n; j' ?7 d; n' A - ((and (or (= tile "u") (= tile "v")))
# f' o% L# ]. _, | - (if (and (= int intchk)
3 K- i+ s5 Z: j/ M& z9 J2 V - (>= int 0)
3 N/ y1 R3 ]5 I5 k, f1 e% Y - (< int 201)
. s% D5 @$ A+ h4 F4 u - )+ I% K- t- k& \4 g! s9 b9 ]9 s& I
- (setq valid T)
+ V4 H. R6 R3 p F2 w - (setq errmsg "Value must be an integer between 0 and 200.")
: o: ~7 _5 I6 d; |. x - )
/ {& ~1 C* A8 B* u - )6 Q) x& s! \( X. \( L+ o4 F
- )
* l* u" k; h3 S) k3 s# Q l+ K - )
9 e' y# s# K3 q - (if valid3 N' c9 z X5 U: q8 s. T8 S
- (progn
: z5 R$ P* y* r - (if (or (= errchk 0) (= tile last-tile))8 c% S, _) P' m% M. N: J1 M
- (set_tile "error" "")8 X: F& I& |' h) K, q
- )
; u$ h( {! ~) I/ q - (set_tile tile (itoa int))
7 u4 I( Q2 x& M - (setq errchk 0)# P @8 i" _7 K% c
- (setq last-tile tile)
! g" H: i3 x1 |3 d" g2 @- \! r - int0 e! m0 a: E9 R1 G: h/ D0 C8 `
- )9 g" K3 T6 | @! s
- (progn/ Y7 P$ U9 X1 a7 D
- (mode_tile tile 2) ; Move focus to offending field5 e/ |) m% E! Z# Y8 M
- (mode_tile tile 3) ; Select offending text
# t+ n% l; e: V3 T) U/ m - (set_tile "error" errmsg)
e0 m, q7 Q& |/ ]$ j2 B - (setq errchk 1)
& f) u- x5 W- D! m, O4 z - (setq last-tile tile)
; l9 l P" O( D& ?) e - old-value6 B9 s( Z s" S& `) B
- )
9 b8 v- x L6 E% W - ); [! c; O/ I G( T" [
- )
% q% Q* w" Y+ S7 B) ~+ g ?/ i - ;;* Z( w2 n& U" w3 s
- ;; Functions that verify tile values for integers$ \+ ~( _) K: R$ P6 C' X- K* V
- ;;
6 M) Z) b% f/ \" d5 u7 J - (defun ver_col (value)9 T. J$ d" w( Y2 w3 g2 s; B4 D
- (setq columns (verify_i "columns" value columns))
7 j" M2 S% k2 T, b5 s' h - )( Y' L2 A- G4 ?9 F, N
- (defun ver_row (value)
9 z" [1 t7 M" o0 r: p2 b' j - (setq rows (verify_i "rows" value rows))
) L h# l0 [$ ^2 h5 f - )
' p) X4 S9 r O& N2 m% { - (defun ver_u (value)9 f! _8 p( Z' I
- (setq u (verify_i "u" value u))
! B' i; G4 q& v0 s - )
% b$ z8 L/ p# D6 w - (defun ver_v (value)/ x* }' ~7 `8 ]; D2 \1 c$ B1 K
- (setq v (verify_i "v" value v))0 f* H/ x% D2 O( d
- )
+ f- f+ ?7 ]' W0 V - ;;
$ d3 [& R8 n5 n8 ~ - ;; Functions that verify tile values for reals
l+ Z; E' g6 G$ E# T E; d - ;;
# v, ~! f& v$ x d - (defun ver_x1 (value) U6 p% E* h$ d" ?5 l. N% c" ?6 _7 f
- (if (setq x1 (verify_d "x1_pt" value x1)) (calc))
; G4 z) S9 z$ K( U. [$ a$ A: w3 R - )* P7 }: V; D/ {2 L( S1 f) a' e
- (defun ver_y1 (value) e0 `) Z, s6 y+ D7 ?& [
- (if (setq y1 (verify_d "y1_pt" value y1)) (calc))
5 ]& {- L3 `; Z8 @9 M& R* o X% F: M - ); @2 W l) r6 z. Z
- (defun ver_z1 (value)
1 J! L# B. g: e$ S. w2 n! r - (if (setq z1 (verify_d "z1_pt" value z1)) (calc)). J+ s: d% J" E j# j$ o
- )
2 z- L1 s' {/ R2 ]1 e - (defun ver_x2 (value); E$ p. D/ w# M0 w0 ~) x& E
- (if (setq x2 (verify_d "x2_pt" value x2)) (calc))7 x" a+ _6 A3 ]- A" Q8 {
- )
& f; t) q; F3 a2 y' ]/ x - (defun ver_y2 (value)' x2 g' j3 I6 _
- (if (setq y2 (verify_d "y2_pt" value y2)) (calc))! L2 t% f6 v2 |+ R7 n+ ?
- )% v0 U0 {& Q: M& D
- (defun ver_z2 (value)) ^( a9 p' h7 c- S+ e
- (if (setq z2 (verify_d "z2_pt" value z2)) (calc)); K$ a! U8 Q7 ?5 `! L8 \2 H3 d
- )
7 ]8 h C0 C% U2 y' |$ l - (defun ver_x3 (value)& F9 ~9 L5 H5 q9 i `
- (setq x3 (verify_d "x3_pt" value x3))* f0 {( Q( P' K9 M
- )
5 F% o, Z5 j" [6 m" o - (defun ver_y3 (value)
1 o- M! c. G o- Y/ ^ p - (setq y3 (verify_d "y3_pt" value y3))2 x" R6 g$ i9 \1 |) E. }
- )
: V, a5 K0 G+ b* N, T0 s' [! b9 F - (defun ver_z3 (value), R8 H# X: \* h& a
- (setq z3 (verify_d "z3_pt" value z3))0 o4 l0 |9 G T$ w
- )
+ z* }! K$ I0 x% n; C6 } - (defun ver_x4 (value)+ D7 V/ r; h& @" V! @; s& G- V
- (setq x4 (verify_d "x4_pt" value x4))- X) M4 @" e m4 V
- )2 H! {& u$ J( c$ X3 h
- (defun ver_y4 (value)' s p8 q$ y; D( X- Z, H
- (setq y4 (verify_d "y4_pt" value y4))( B7 ?( p* J, \$ U8 O9 g. N* `' ~
- )
7 G' A* ]" c2 K" ^) ] - (defun ver_4 (value)3 W1 I- `8 c3 X" Y5 N8 i' L( j
- (setq z4 (verify_d "z4_pt" value z4))9 \/ x9 X% a0 @& X0 W. ]
- ). h: y. V0 t* Q$ a" Y: X$ ^) e' {7 a
- (defun ver_xscl (value)
6 y1 d" T, S! E - (setq xscale (verify_d "xscale" value xscale))
3 [ c( ^8 d# \: I L/ I - )0 y9 }' e& e; l2 N3 o [. T
- (defun ver_yscl (value)
6 t* P' _( [2 Z2 a - (setq yscale (verify_d "yscale" value yscale))
# t$ J9 b) l6 i I: p' _: z" Q; p6 U - )3 c1 i" S x+ I" E" w
- (defun ver_zscl (value)
I3 o) V( @1 V( @ K+ U2 I - (setq zscale (verify_d "zscale" value zscale))
8 T5 L- D ?& }7 S - )1 f- z- n( J6 \0 s4 A' {
- (defun ver_colsp (value)
; K; R5 N# I8 x9 K8 d9 k+ v" _' | - (setq col-sp (verify_d "col_sp" value col-sp))
$ C! O$ l% d$ ? M - )
2 |0 P$ t. \- k4 l - (defun ver_rowsp (value)
' ?6 M7 F0 e$ A3 o- g+ `; J: R$ V - (setq row-sp (verify_d "row_sp" value row-sp))
) Z( v5 q; A7 z- m8 }# i - )& G, `$ B6 P1 l" s9 _
- (defun xclip ()
* n9 y" e( H, Z; t - (setq xclipmode t)
- Q# y* j/ ^8 a5 k+ [; b - (if (= xcliponoff "1")
* u4 H2 ]2 d T# f7 s. q% I - (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")
; F! B9 \; T( P( V2 R2 O6 y) U5 ^ - (command "_.xclip" (cdr(assoc -1 elist)) "" "_off")* _& S. G4 y) |8 l. Q, w, h# O5 X+ F
- )% X4 B1 W. Y, Y; `: q q5 B
- )
3 o: ~3 ?, U' z# g1 j) K& f, p - (defun ver_rad (value)* Z( Z" D6 l; w( ], w
- (if (setq radius (verify_d "radius" value radius)) M0 c4 b) G! S
- (calc)- H0 x# W3 m6 L
- )3 A. K2 Q( @3 E+ M; T
- )4 Z* s) P: b6 L& ]. H. `! X
- (defun ver_majrad (value)
. K9 t/ [* d* `& Y+ P E - (if (setq majrad (verify_d "majrad" value majrad)); Y8 v( X; N. t8 E5 h" \# B
- (ell_calc_newval "majrad")% L- b2 Q' z7 G
- )
/ b" o2 `/ P& c6 ? - )
5 k2 B9 [" j$ a7 [* G+ Q6 A" { - (defun ver_minrad (value)0 S! t$ {! c; p6 [1 b$ {
- (if (setq minrad (verify_d "minrad" value minrad))4 F2 [# ^) N3 X6 H g
- (ell_calc_newval "minrad")4 g$ u. W ^0 ?3 i& ]
- )
V4 N# p- v2 I; g - )' t6 O* r) H4 q; b/ N
- (defun ver_hght (value)
; j$ d/ Q. Z& v. @, X5 ~6 c - (setq hght (verify_d "hght" value hght))0 _- b7 ^% E6 w* Z. X- P
- )
6 ~- x3 W6 O. W) Z; T$ c% D - (defun ver_wid (value)0 O- M8 W, n& H0 g4 {6 S/ o/ U6 o
- (setq wid (verify_d "wid" value wid)); N |0 ^: L) A$ Z8 m
- )
- W' d- G/ |* c# ^ - (defun ver_xline_x1 (value / temp)2 i9 _8 O+ b: J7 }6 K
- (setq temp xline_x1)$ C0 o6 ~7 B6 j& S) x; E* a
- (setq xline_x1 (verify_xline "xline_x1" value xline_x1))
' Y& R: s' l* m4 T - (if (/= temp xline_x1)$ A7 T; p+ o5 ^$ u
- (progn (modify_xline 0) (set_tile_dirv) )4 E2 ]. p* T- v$ y7 U& ^
- )
' h; o$ P$ n! a& w! B6 c% N u1 I - )3 U7 l# Q/ c7 {1 q: X" P
- (defun ver_xline_y1 (value / temp)4 @$ a U% s8 Q8 ]# y) ?+ ^) Y. t8 B8 p
- (setq temp xline_y1)5 C* r4 L' K9 [8 V9 k
- (setq xline_y1 (verify_xline "xline_y1" value xline_y1))7 I2 D# Q' k1 g1 k4 d% X; N( E2 B
- (if (/= temp xline_y1)
8 O' x5 x' s' m1 T2 n; _2 @% O# X - (progn (modify_xline 0) (set_tile_dirv) )
* K* W6 V; h1 u& Y - )
2 L0 Y* v$ S* a1 H3 S - )+ F* B4 F; d. Y: F5 K& A9 z
- (defun ver_xline_z1 (value / temp)1 h7 E# e, b" r. K0 Z, L9 w! o
- (setq temp xline_z1)
/ \% @. K4 U! h4 ?6 W. ~ s, ` - (setq xline_z1 (verify_xline "xline_z1" value xline_z1))9 w- W O, C4 Q1 v- F8 N. z
- (if (/= temp xline_z1)
: P9 V# e V+ Z6 O- v; l; a5 [ - (progn (modify_xline 0) (set_tile_dirv) )% ]+ |/ t' O( n
- )# w- D) A* Z% ~" E
- )
- H) Z/ Z: R7 N4 Q& V" K5 @5 H - (defun ver_xline_x2 (value / temp)$ I: _5 z2 k7 x! G8 i# r$ w
- (setq temp xline_x2)
, Z1 P, c, y W - (setq xline_x2 (verify_xline "xline_x2" value xline_x2))
/ |3 x+ e/ g( k8 U/ ]0 J2 A& H - (if (/= temp xline_x2)
y" z+ o1 ]$ y* Y1 u ]- g3 F- I - (progn (modify_xline 0) (set_tile_dirv))" ~% n8 z8 k7 n- x; L8 A. a
- )2 W: p/ C' A) u: O' X
- )
. M/ z9 j+ L) m [+ V - (defun ver_xline_y2 (value / temp), C$ p: a7 c; e; J+ F3 g; p- d( ~
- (setq temp xline_y2)# j: m H9 r6 f! @0 S
- (setq xline_y2 (verify_xline "xline_y2" value xline_y2)). s$ ?. I. r6 K& n+ ]) ^
- (if (/= temp xline_y2)- a2 n3 L) r% F% I+ B; t8 W2 t
- (progn (modify_xline 0) (set_tile_dirv) ), a- _9 J1 ?, b9 B0 M
- ), m( S' B+ {8 }" R. r: c2 c
- )
1 z$ ~' \6 I* U N& v8 }3 A3 p - (defun ver_xline_z2 (value / temp)
0 b" S' N& @. _9 z - (setq temp xline_z2)5 Y( V. H* ~/ E3 z
- (setq xline_z2 (verify_xline "xline_z2" value xline_z2))
% {/ `$ ?7 y0 U' b - (if (/= temp xline_z2)# W9 E2 W N/ @, {
- (progn (modify_xline 0) (set_tile_dirv) )) o+ _( C M) f+ y3 T* C0 I
- )
- n4 p" r" A' ] - )
V# H1 C* I/ o$ p: f* M - ;;+ }* J7 ^6 ^/ h/ s2 q( s- s# L1 L
- ;; Functions that verify tile values for angles/ d! K7 U+ _& q! I' A# h
- ;;' j( D# y2 V5 A4 k7 x0 e
- (defun ver_ang1 (value)5 N/ N) z+ `+ d; r( x# \, o3 ~$ o
- (if (setq st_ang (verify_a "st_ang" value st_ang))4 ^2 D2 X }6 R, Y: y
- (calc)! ` }" \( G1 g2 j
- )5 ]7 [2 r a0 ^. G$ d# {9 e4 z
- ): e; r8 |0 `: ^" {
- (defun ver_ang2 (value)
3 X/ U' z2 ~- G - (if (setq end_ang (verify_a "end_ang" value end_ang))2 Y8 V. [4 q# i
- (calc)
7 M; R5 r% G. t+ V3 E8 {9 Z! Y& J - )
' B2 q& P, z! F& @! a - )
% f& B# O4 x; U - ;;
+ E3 R, v: N8 V6 r) v9 @" D# d M. q - ;; Verify tile value for ellipse end angle. Handled slightly1 F, A, T6 K1 ?: X O/ {, C
- ;; differently than the other angles.5 S7 ?( q" l' Z2 Y% B3 L: V
- ;;
6 R3 {$ V( i5 X# B - (defun ver_eang (value)
: n% p8 s3 E* O! |; z3 R - (setq end_eang (verify_ae "end_eang" value end_eang))+ C( Q0 X- S% r! @+ E; I2 Q. ^
- )' u4 }0 v" l* X& m# W
- (defun ver_rot (value)2 \3 Z9 C9 e+ T' w" I
- (setq rot (verify_a "rot" value rot))4 T- V+ b4 Z5 s1 d1 U2 g) I+ }. Z9 _
- )* T" {# J& K8 x. W+ |
- (defun ver_obl (value)' F& M) X. }( R9 D/ h
- (setq obl (verify_a "obl" value obl))5 v" _/ L9 K7 }! j
- ): z/ \7 a; `' H0 B
- ;;" m5 V* f$ ?) `
- ;; Function that verifies attribute tag field for null string,/ O0 ^; i; b. g& r+ r
- ;; or a string that contains one or more spaces. Tile value
' }) x. }+ {' v+ I5 d - ;; is also converted to upper-case as well.# x$ Z3 ~% _( ~1 ]0 t; ?
- ;;- d0 v* o% w- d! I
- ;;0 A5 Y9 h9 \; q. r/ X# ], c! }5 h
- (defun ver_tag ( / tval)4 E" j1 B' D, c' P
- (setq tagval (get_tile "tag"))1 ?1 S; Q7 \5 P! k/ W
- (set_tile "error" "")9 d8 b; a' w% @4 o! m7 q& d- n7 }
- (cond- s! z) ~. J/ C, {8 E9 B! V3 l
- ( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))9 [, V0 w# u9 Q1 ~
- (wcmatch tval "* *"))1 W; L/ \. M+ r1 n& A- [
- (set_tile "error" "Invalid attribute tag.")
1 `2 c! {4 }" V3 Z4 { - (mode_tile "tag" 2)
# F. o) V! \' H9 }& W4 { - (mode_tile "tag" 3))" ?& [1 ^/ \6 h2 e) i. X7 y
- (t (set_tile "error" "")
# D; B) A2 i4 ^2 S4 a4 G1 J - (set_tile "tag" tval), r0 R1 k5 J7 [ M+ j
- (setq attag tval)))
9 f+ b# q2 }# \/ W( x8 M - )
8 D2 w8 m5 [$ W5 k5 y, P - ;;
/ w y8 Z" J( \2 l$ r - ;; Calculation functions9 E! z& B$ b5 o7 i0 \/ i' L
- ;;6 ]1 q4 L; j5 K' Q2 I1 k, o
- (defun calc ()5 ]( C1 B9 }5 M4 c
- (if (= etype "LINE") (line_calc)), |+ g" m" j" d$ Z/ }8 f
- (if (= etype "ARC") (arc_calc))
( {; }* j/ g* k0 U" M! ? - (if (= etype "CIRCLE") (cir_calc))) H+ j( w$ a! A+ ]4 e& D
- )
1 h# a9 a: v; p7 z4 y6 k4 @4 h2 K6 X - ;;: G/ ]6 R) _* v
- ;; Calculation functions for lines, arcs, and circles
7 m( w; ?) Q5 |* k! m( j s - ;;, g; H( z; I; K. z- j
- (defun line_calc ()0 i0 X/ w1 T+ {- D* H; K
- (setq stpt (list x1 y1 z1))( R$ R+ f" r' w# Y$ S3 [ {
- (setq endpt (list x2 y2 z2))& H: O8 v$ a2 H6 U' G+ W
- (set_tile "delta_x" (rtos (- x2 x1)))4 Y v( g; _$ e; O. O6 o
- (set_tile "delta_y" (rtos (- y2 y1)))
' ^- y* f7 C9 G& L - (set_tile "delta_z" (rtos (- z2 z1)))
! I4 Y, G' m9 T' R1 J: W8 O - (set_tile "l_length" (rtos (distance stpt endpt)))2 Q1 T( t" Y$ @
- (set_tile "l_angle" (angtos (angle stpt endpt)))
; F! r5 Q7 K: k% B8 L - )
w0 H1 F+ v: p9 p1 k9 ^) H" P - 4 g) B# v5 I: u) ^* t I8 }% `, f( L
- (defun cir_calc ( / area units): p- v; L) B! k/ z' I& c; A$ f
- (setq radtest radius)2 w$ F8 G( @% Z9 P* U
- (set_tile "Dia" (rtos (* 2 radius)))
; T" g0 p" P2 H, \& p7 t - (set_tile "Circum" (rtos (* 2 pi radius)))
- E$ Z9 Q, H; y- O2 Q4 N7 R - (setq area (* pi (* radius radius)))" F! ]# V8 V. ^2 m9 a7 a% |
- (setq units (getvar "LUNITS"))
" N5 d8 d; j7 y, z& {0 ^ - (if (or (= units 3) (= units 4))# c2 r! I7 C' X3 O0 P+ M
- (progn
; a$ q' s8 s9 T3 V9 S; b7 o - (setq area (/ area 144.0))0 f# d2 v8 ]% m8 E, [
- (set_tile "Area" (strcat (rtos area 2) " square ft"))6 z" X# v+ T8 E
- )7 z& O4 g! u/ v& I& K! p; |
- (set_tile "Area" (rtos area))
' w% }7 M% N' C& Z. F9 y$ p - )
9 m2 r& Z2 e5 d* e0 r9 e& n# f - )
N# P* s* h0 ^0 N
3 d, O7 P) o6 D+ s! l2 W! W$ W- (defun arc_calc ()* d K7 s/ n' V9 W: [7 E
- (setq totang (- end_ang st_ang))6 Y% _: b) [2 ~& w% ^& d
- (while (< totang 0)
1 f# O- ?! N. r- x6 J - (setq totang (+ totang (* 2 pi)))
) ], n/ Z* F; ?+ i - ). K# j* W) H# ]
- (while (> totang (* 2 pi))
: Y1 Q3 I' ^$ v6 m$ P" e" ? - (setq totang (- totang (* 2 pi)))- V Z, I; [ z$ X( y& r- t
- )
* u- M# d* f% y" `! W" Y - (set_tile "tot_angle" (angtos totang))9 y# U# H _& ^0 `
- (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi))))
" e' m4 P3 t* m - (set_tile "arclen" (rtos arclen))
! p! d+ b( F5 _9 L- I' c+ y, y - ): ]" Y0 m3 X! U) }& {- \. V' D4 ~* C
- ;;
6 B- P& m( w" M( @) q: q& | - ;; Calculate the major radius, minor radius, major axis direction.
: Z! m, S6 T+ k) k# d: h - ;; Get radius ratio. Convert Start, end parameters to start and end
+ T9 B& _' l/ O X - ;; angles. Save Major Radius value in "old_majrad" in case the user
' u4 g1 j A5 _* w" I% r! @. P - ;; chooses to input a new Major Radius value later. It's needed to
o+ f) o1 n" y - ;; calculate a new Major Axis Vector value.. {7 ?% R' b* W! D
- ;;
( T2 E. d1 E3 X( W - (defun ell_calc ()
$ ?' e3 Q0 k& V: Q) E - ;; Get major radius from the major axis vector." }# _8 l/ ]* l- X
- (setq majaxis (cdr (assoc 11 elist)))
c- R0 I; c Z% o T - (setq xx (car majaxis))* x% D5 o8 m5 ]* z1 Z/ w
- (setq yy (cadr majaxis))
, X' Q8 P/ g" y+ h& [7 Q, }" U) v - (setq zz (caddr majaxis))
, d9 B8 D' w( @ - (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) )))
+ V, Y t1 i; q$ i3 ?& ~/ B - (set_tile "majrad" (ai_rtos majrad))! |& X7 s# m& c# ?
- (setq old_majrad majrad)' \+ F& G) R$ w, ]
- ;; Get radius ratio* ^7 T+ l2 E7 q& a
- (setq rrat (cdr (assoc 40 elist)))4 w) ^; o8 S4 l' m' g2 E
- (set_tile "rratio" (rtos rrat))
# o0 ^: a( k, u/ h2 s - ;; Calculate minor radius
* K4 m& K& x) N$ Y: R7 U - (setq minrad (* majrad rrat))
! K9 G5 [5 o0 ?% D# ~- g; x7 {0 D5 } - (set_tile "minrad" (ai_rtos minrad)): H" d' ]" E( K( I1 h% P
- ;; display major axis vector: ]# B* _$ K8 c
- (set_tile "Majraddirx" (rtos xx))
- D/ q% F: M3 b - (set_tile "Majraddiry" (rtos yy)); d& `' N* n6 c
- (set_tile "Majraddirz" (rtos zz))1 I6 @+ M0 }2 P' x2 V7 P1 g6 z* g
- 5 t6 R, |0 D8 _5 Q
- ;; Convert start parm to start angle. s+ R" Z3 c/ u3 ~$ m$ Z% N
- (setq stparm (cdr (assoc 41 elist)))- f) L5 A0 I+ s; L
- (setq vecx (cos stparm))4 W& o2 j0 {& x- G+ _! S; w4 A
- (setq vecy (sin stparm))1 u* U0 H) J5 X* `/ H7 n
- (setq st_ang (atan (* rrat vecy) vecx))
4 r7 J* m. H. {# H. L1 y2 { - (setq tempst_ang (ai_angtos st_ang))
1 O! _& H7 A& o5 j - (set_tile "st_ang" tempst_ang)& f" X. p: }3 Z$ @8 {
- ;; Convert end parm to end angle. If end angle evaluates to 0% k* Q! u k1 T! k: M
- ;; degrees then display it as 360 degrees.1 x% q: b# q% x) Q
- (setq endparm (cdr (assoc 42 elist)))
* t1 o, |* r) `5 C- Z7 V - (setq evecx (cos endparm))1 V! }# e$ `& `3 V5 V
- (setq evecy (sin endparm))9 {3 _2 S8 o5 Y
- (setq end_eang (atan (* rrat evecy) evecx))
% F1 y0 u2 z4 C+ f& X5 G" `7 A* h - (setq tempend_eang (ai_angtos end_eang)) C" u- j$ \, A2 b' \& n. Z
- (if (= tempend_eang "0")
; Z" Z/ A: I9 B" y, j) Q - (set_tile "end_eang" "360")
$ V' ~2 m; L$ h" N7 p7 f# i - (set_tile "end_eang" tempend_eang)4 @5 `$ w$ M9 q2 `9 B9 l
- )
: T) A3 ?3 L* D* J4 d- ]8 [ - ;; Get area of the ellipse.* e$ b% `/ Q( \2 e' w: E5 }
- (ell_calc_area)
/ ]7 {% Y0 J! s5 |6 k3 W, Q9 e# q - )* C4 I( S _6 N4 ]% |+ \' ?
- ;; Calculate area of ellipse. If it is an arc then% L b9 T4 ^/ ^
- ;; grey out area display. A, Q, B$ F# m& s$ V$ k
- ;;
/ z$ K! ^5 k0 v z0 S. { D - (defun ell_calc_area ( / area units)
1 E/ Q9 Q! p6 w+ R7 V1 P - (if (and (= tempst_ang "0") (= tempend_eang "0"))
" m+ W( N: e! i0 O - (progn; q* T- \: L4 m ^3 s
- (setq area (* pi majrad minrad))
$ ~* t+ V/ B2 g, Y- C - (setq units (getvar "LUNITS"))/ t6 Q; o) W$ x7 }
- (if (or (= units 3) (= units 4))
; A! A: o* Q7 V% Z - (progn7 |5 Q# }' B8 I* ^
- (setq area (/ area 144.0))! {5 t9 h) q& q2 w# `
- (set_tile "Area" (strcat (rtos area 2)" square ft"))/ \. ~2 f @% B5 u
- )
2 @; m9 W6 S+ c2 j7 L/ r3 Z, f$ X - (set_tile "Area" (rtos area))
' m$ B9 W* h5 s0 F$ O - ): o2 T$ |+ |& q
- )0 K1 d- X& z$ [+ G7 i/ [6 R% I
- (mode_tile "Area_text" 1)
S4 o, w2 A h$ t5 |6 ~3 z - )
2 W# d; w3 P4 f; b0 M4 ]: e - )
+ p" u, n Y8 l% X( t9 y. @ - ;;
; q9 j8 A) M5 f - ;; Calculate new values for ELLIPSE
! ^. ^* o) d# m - ;; Minor Radius, Area( E/ O$ g+ ^ X D# q' P& ^0 h
- ;;$ H/ n: e3 M) \( @$ b( [8 J# ]1 z( w
- (defun ell_calc_newval (ell_tile)
1 j$ F2 t! f3 C/ i2 K _6 M; N/ ~3 d - (if (= ell_tile "majrad")
9 Z" y# j" y- w9 r, ^2 L9 A - (progn
: l7 V, p$ `) {8 B - (setq rrat (/ minrad majrad))
v8 r, j9 W X - (set_tile "rratio" (rtos rrat))
" |4 g4 A4 z" E8 `" U - (ell_calc_area)
9 X3 D: |9 e! H- h0 B G8 H - )
9 W7 J+ n @; g( e3 T, P$ l - )
, \! X! n0 W- R+ k2 p# a/ g8 N1 o0 j - (if (= ell_tile "minrad")
6 g$ J" @& _- P0 T) S8 W2 A* e - (progn# V1 d4 s9 G- [! ]
- (setq rrat (/ minrad majrad)): B8 o' N6 K6 O9 ]. o
- (set_tile "rratio" (rtos rrat))2 r q- z r" ?0 i" e7 o
- (ell_calc_area)% q4 m& }# s/ \( { L+ N0 N% Z
- )
; b6 b9 P. ^& [- O$ E - )8 }' B4 L+ S* [' W5 C q
- )7 s5 y: U/ i5 i" W9 T4 O
- , o" I/ |+ ]) y3 C4 Q
- (defun set_dimen_props (/ loop a stl txstyname)* V* o2 e" C/ I! l* a% m# ?
# j' P2 ~6 ?/ F( r( Y0 O6 {- (setq stname (cdr (assoc 3 elist)) ; get style name
. r) D6 p# k% Q+ y0 d - stl (tblnext "DIMSTYLE" T)
- C1 x5 h5 d% ~ O \' T - stlist nil)
* F4 e# P; V% S3 S; a - ;; Get all style names and list them in alphabetical order1 @* O& L- w1 J& k4 L# B. V
- (while stl
3 q: ]- S8 m0 H; [% g, I3 ` - (setq sname (cdr (assoc 2 stl)))* \, Q( i% \$ v- t, u
- (if (/= (logand 16 (cdr (assoc 70 stl))) 16)- T5 s7 F4 p. Y% G3 o! c
- (setq stlist (cons sname stlist)))$ R1 H# e: |$ x8 _4 B
- (setq stl (tblnext "DIMSTYLE")))% c+ k( ]; C: z0 ?5 f* c
- & f0 F# i" o# ^' p( M2 z5 U w
- (setq len (length stlist)
! F; Q! A3 l0 B& u4 X - loop 0
. p) E- H2 e) C: b& W0 V8 U# { - dimsty stname/ B' l% G* {6 e/ P
- ), k3 R7 M4 {% Z( {1 h. M
0 C9 G* b) i$ y X0 g- ;; alphabetize style list, depending on maxsort0 B( t% b Y* v
- (if (>= (getvar "maxsort") len), x0 @6 N, h u
- (setq stlist (acad_strlsort stlist))8 ^; Z% a# n- I" x* F# s
- (setq stlist (reverse stlist)))" h9 i3 A L5 e/ h3 h
- 2 f9 [; F* M ~* R4 [6 W+ m
- ; *UNNAMED style (dimsty = nil at this point) is replaced with
+ i' L- N# _: i$ X - ; the current style. After R13, we require dimensiosn to have a
; H# R1 S, Y5 L - ; dimstyle, so we plug any holes where we find them./ @. v- b) o) \% y) `5 \
- (if (null dimsty)
9 [( f: u" v- G5 p! Q - (setq dimsty (getvar "dimstyle")); Q- h2 a( }4 C% r
- )- f' |! c! H: |! y; d
- ; Show the styles in combo box
[4 ]( f4 `) x0 j. z9 V! W2 b7 V* d5 U - (start_list "mod_style" 2)3 i7 ^: i, V( B( s3 |
- (while (< loop len)
( `8 J9 I4 Y. v3 J6 M1 P. x - (add_list (nth loop stlist))
) f; [% F. M2 e7 ]+ z6 `1 Q - (setq loop (1+ loop))
5 g" E! T. c. s% V5 O. K2 m - )
' t' j) p c. C' R5 o: R2 ] - 4 ~- w4 Z6 y# Z* c5 N. X
- (end_list); F/ P, n* E" e$ |
- 0 H3 K+ k( Z% {/ L, m N8 F! b0 C, `* l
- ; Hilight the style name of the selected entity
9 ?% h* y. E! d - (while (and (< 0 loop) (/= dimsty (nth loop stlist)))% w7 R& e8 `/ B; A: r" u
- (setq loop (1- loop))
% a/ l% d7 z: h0 W: V- m: g - )& C% W; H& d+ u. g0 p5 X! y
- (set_tile "mod_style" (itoa loop)), P7 I8 h" h; F
6 y' x9 G# {$ h( P I$ Y- ; The following is the list dimvars. It must be sorted in the same
, y6 V! d/ d/ s6 c - ; order as the resfub returned from DDIM (ADS module)." d& v. k7 Y q$ J- y$ G
5 M, D# ~9 f5 ]# G- [* I- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"' g7 x5 Y& O5 D6 p, q( K
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
! Z& S( C$ L3 j - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
2 e `2 X7 _( N' a6 s1 v. Y - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
; p( F7 B1 S/ R. @ - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp", ?4 f- \% V: g/ g, O
- "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"
^! f O' Q1 O$ m* ] o$ | - "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin") D' a1 W0 g1 Q9 `! W8 u' W( |7 \- s
- "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"5 B4 N! O% q0 z: @! f/ J+ o: X; ~* G
- "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
0 p. I+ {6 R' Y6 z - "dimdec" "dimtdec" "dimaltu" "dimalttd"7 A. _% B2 C$ E% L
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"
7 P0 C/ F( u, H - "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"5 U; Q- R5 g+ G, X' o
- "dimtxsty"0 F$ B2 k7 V! k K6 v) W
- ))
' d- t- }. u% R2 u; P - (progn
: N6 ^. }/ k2 z( o1 f - (setq sv_dvlist (ddimen_getostate dimsty)* b/ H8 }% x) j* C% L# W: D" q' l* l
- txstyname (assoc 340 sv_dvlist)
4 J6 q! f, C8 s! A+ I- @: \ - sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))
1 j( ~6 r( ]$ h; E5 e& x - txstyname sv_dvlist)
) T* Q+ v, ~2 y - dimlist sv_dvlist
; Y# d* \ N2 d8 y" e" \ - )
4 X8 Q# ^7 _! a. T) b - )
; K, p$ V1 P: r# J+ l. L - (if (= dimtype "DDLEADER")
& D* Q5 w! a' D! F, d - (mode_tile "mod_format" 1)0 `+ g- N' a; K1 T) B* p
- )% K% i- Q8 ]1 a1 y' j# i( b
- (action_tile "mod_style" "(setq dimsty (ddimen_style))")
# F# P7 l" C% C; m2 o4 E - (action_tile "mod_text" "(done_dialog 4)")
6 R! v7 a- ~# j0 i# l; s2 S - (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")
0 M+ H# z9 D& ~ - (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")6 n' @8 d+ z, `! N Z+ ?; z
- (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")
9 X" ~: j1 w% Z/ H" p5 a! r& S - (action_tile "accept" "(done_dialog 1)")1 A. P" J1 M0 A& G
- ), d# e; W; n; y9 k# j
- ;;. A* l8 [. s" k% G" e& ~! O8 h9 q
- ;; Get dimvars that have been restored.2 W4 }3 O5 c- _# ^" f w! u" I
- ;;* u2 ?/ R2 @2 V0 _. [6 {( B
- (defun ddimen_getvars (/ elm dvlist dv i)
: H1 T; P9 p4 F$ [ - (setq i 3
' Z- r; i& x1 p% H - dvlist (list (cons 0 "DIMSTYLE")
8 N7 N! V9 R6 Q; K* } - (cons 2 (getvar "dimstyle")) (cons 70 0))' x; U/ `; A% j- W, j B! U3 V
- )
1 U! M% b* w, x5 X, B! _ - (while (setq dv (nth i dimtbl))0 I) B5 h* F! L& i! [
- (setq elm (getvar dv)
! Q1 s5 a+ t" l) d( y; |5 P/ @ - dvlist (append dvlist (list (cons dv elm)))+ x* }! S5 I% f! l H' j3 s+ Y
- i (1+ i)
' J4 y& n# G7 G9 {+ I - )
8 T. r# U% V, M6 J$ B! | - )" X* u: v7 \+ D# T
- dvlist
B, ]" I, x3 E m2 T# }. ~ - ). ~* H6 A- m$ L' V! D4 a2 a6 F
4 N q3 |2 L8 T' X# q3 O3 |7 Y# L- ;;, t; [( H3 _1 _* k$ }
- ;; Get the original states of dimvars. This is for DIMENSION entities.
( R; t2 c3 ]* s. K) | - ;;
" G9 M' ?: F4 p - (defun ddimen_getostate (dimsty / dvlist elm i dvvars)5 B' G) i9 \) o. s1 S4 e* y6 K
- (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list
, f+ n* I! b6 D% j - dvvars (ddimen_getvars) ; Get dimvars for that entity7 [, U' t' x# s8 V/ f* O6 B5 g
- i 1
{' J0 m! h6 d$ \/ O - )- H- [5 {5 s7 o1 h) `; I9 A5 F
- 6 T6 R Y! I6 N# i
- ; Create a list that contains values of the selected entity.. V0 z% R. _" F, X
( z6 \- f2 a% V% g, e( O% p- (while (setq elm (nth i dvlist))
/ W6 f& u3 |" K' E' C4 Y - (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)* B4 d; o2 g, F& ~- K& o4 t+ I
- i (1+ i)2 V+ O% b# O* k5 h+ v( Y* w
- )
0 ^( ?$ |" Z' z; ~8 i5 v - )
+ C. @4 g' \0 l4 F - dvlist; Z# X# i( a# I7 z. l( S
- )
3 P9 V/ W4 d+ c2 n+ [
4 X' _# K9 \7 f1 s* C- ;;" ~, e W, j2 r
- ;; Restores dimvars of the selected enity.
0 A+ t2 b- s1 x4 S# q8 B9 F- X4 F - ;;
& c4 \: j* n' T, s& w0 @3 ?. r) k - (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)5 W$ F4 M) z4 A' k5 Y3 P+ Z3 M
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
: g. g. v( C7 I& `3 n1 V5 O - "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"# e2 [: S* y! {$ C( i( J, L
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
* l# c* x7 Z' d! H1 q9 ` - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
. J! p+ i( C$ D4 f - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp" m7 c; I9 t+ q6 H% P$ _) _/ q* _
- "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"
0 y8 M2 [, e) {0 y - "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"0 U$ ^$ T' j: r# X
- "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
4 x; q6 A% E) ^# [ - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
( ?' ]! ^5 V% ?' a5 M% y - "dimdec" "dimtdec" "dimaltu" "dimalttd"
9 k- d0 ]/ ^2 @. ^5 H - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"8 {: U! b s) \, K" `4 E
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt". d X9 L! k/ x8 g
- "dimtxsty"7 b2 B C% h4 `- _8 q
- ))! U% k5 k; E, b2 P& k( i% _
- (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings
0 i0 n6 X) K( H% [9 m3 Q - (progn
6 c7 }9 k. ?9 E" Z% m1 t2 G - (setq en (cdr (assoc -1 elist)))" Z. S' e; w+ V4 E1 Z5 y% r
- (command "_.dimstyle" "" "" en)1 r9 Q& G3 E9 s: H$ T9 q
- )2 p2 O6 V! y0 q! O. X) Y
- dimsvcurset
0 p: y U9 `' `8 f( J0 ^ q - )
8 a1 W- R4 u. m/ `" b6 w6 ] - ;;
' p0 S% j8 g, K, Y9 I - ;; Modify Leader5 k1 } K2 h" {9 \' b' {
- ;;
% s: f7 D7 J. a1 e7 w - (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl
& F u9 }0 v- ~( ]0 U7 e - dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
+ B" m5 {- v; A - dimtype dimsvcurset)+ z z1 u0 {+ B3 K( d9 ^$ `. o
- (setq dimtype "DDLEADER"( O9 p; [. m* I% z' `5 _
- dimsvcurset (ddimen_dimsty_restore)
$ B" K( Y( w( n - )
) l, s; u. u, D3 C - (if (not (new_dialog "ddleader" dcl_id)) (exit))
" Z$ x3 d/ m/ k M/ x) K* \ - ;; Set initial tile values
! n1 d* N# X, D - (set_tile_props)
) I9 q) Z# I( W - (set_dimen_props)2 w% y D$ U4 h1 _
- (set_tile_handle)
! h* V! d5 w- l. e! [- x - ;; Define action for tiles S/ w) w9 C4 x' C
- (set_action_tiles)
; l2 I8 ?# g, \# d - (mode_tile "mod_text" 1)
0 p( J, k, L R! U* O - % y9 i& e4 T, ^9 e1 I
- (action_tile "mod_style" "(setq dimsty (ddimen_style))")
! n7 \& c' S4 p8 y5 N - (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")7 R9 u! v* Y$ y+ D, O' m3 ?
- ;; Get ARROW and TYPE.
3 G+ p$ z) o4 j2 ? - (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))
5 k+ m7 `" Q _6 u. ?8 W: D7 S1 l - (if (= 1 (logand (cdr (assoc '72 elist))))& x; e9 D/ E8 w) @' {
- (set_tile "s-s" "spline")5 R" [0 ^5 Y% d$ R
- (set_tile "s-s" "straight")
/ p; Z6 M3 Z/ a- O% d3 z; [# ?! o - )
* b9 V- v8 u( Y1 k; _/ z5 Z - ;; Start the dialogue.
+ I& x% N. p8 R" S# _1 g D) _ - (setq dialog-state (start_dialog))8 [+ N9 u6 J$ ~0 N" N$ M" e9 q: \
- (if (= dialog-state 1)
# _% C4 k0 l: H0 ]1 Q: C4 E/ T - (progn' V& `- a% r3 T
- ;; update the style
# H2 q+ W7 f* f4 f/ S - (if (/= dimsty stname)% w" U d" }! F- F6 P
- (progn$ P) D( a# X" o' a7 z" }
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
% D" S' B! o9 q! {; |4 l - ; doesn't have it.4 W$ n# R: J$ n9 G) j
- (if (null (assoc 3 elist))/ c- t" Q& H" Y2 C0 h
- (setq elist (append elist (list (cons 3 dimsty))))
% _6 d2 x+ t4 I# X. r n9 Y$ z% M - ; else just replace it.
6 f% Z' S2 m5 t- A" C: V, @ - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
, Y( R! Y: ^6 F* n9 _* G - )
& u$ x2 A m# H) Q8 j' t \ n" n+ M - ; refresh sv_dvlist with new dimstyle., k9 q B6 |& G+ z2 M
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))1 R0 I# n; \ u2 ~7 R
- )
0 C' a) }0 B9 I; j - )+ N4 N1 v. a8 t
- (if (not (null dimlist)) ; attempted to change dimvars4 ]+ m8 U1 w6 r! W& H! K
- (ddimen_complist sv_dvlist dimlist dimtbl). O; Y7 n5 ~1 f. j' ^0 U$ a
- )+ [ K! H8 S9 X% d; C, y% ? w
- ;; update for ARROW./ L4 b0 H6 g" K
- (if (= "1" arrow)# y, r$ G7 o1 X6 F, i ^1 q1 e. z
- (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist)), W" L% S3 `, I" S# G) B
- (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist))9 [! B) j0 ^; b/ }+ f8 P
- )
4 h" K2 s6 A7 T - ;; update the TYPE.
' I, L7 j" S, p' W$ P% E8 ]' G - (if (= "spline" leadtype)3 T/ c( W5 Q; [
- (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
' b& B5 n1 N* w- B' ~2 T8 u - (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
* O6 f/ Z% x y+ p: V7 h& E/ o - )2 K2 C$ G" Q" R- R8 ~
- (modify_prop_geom)
1 M; a3 o% f2 ]6 O* H" I; |5 { - ;; update the Color
9 M6 E& s! t: A3 V! m. z - (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))/ _0 F9 V5 ^3 F2 H: ~& C
- (entmod elist)
2 U' {# W+ Q/ P6 W, f - )
& q' t% R8 k2 u - )
0 {% A9 W( T: y. ?' y - (ddimen_setvars dimsvcurset) ; Prepare to exit* x7 d/ s+ o* Q
- )
/ c9 \2 w* ], {; Z; Z* v - 9 b% i( q" w/ e. _8 U4 q3 E
- ;;
0 g6 J/ v5 s$ _: b+ g' r4 H - ;; Get dimvars of a dimstyle with overrides.- f6 E: {0 S; U3 b* d
- ;;. r4 [ q( c# j" |* _# }3 D
- # T2 Q- V6 e8 U# }: {0 z
- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)
7 B# i, ]+ c/ ^ - 0 ?; d# W! M( k; G/ B
- ;; Get override information for the specified entity.0 @4 q! F6 }6 p+ v
- ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we
, N! @- I9 m9 p1 I% P - ;; must obtain override information through this tedious operation.
1 G+ `7 q) X( V# @ - (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))
# D5 X0 F( R! w# F' F - dvlist (tblsearch "dimstyle" dimsty)
. T. J% A; v1 F* z - i 2
( H# S9 M. j7 c. }; b8 c - ) w% V$ d+ Q, j7 h, y1 y" n
! B) Q. e- g8 f) ^( O+ Z9 N5 D- ; Update the list with overrides if overrides exist.; ~$ [' ~# `8 n5 H
& `: j, ?+ X: s- W7 Y% Q7 E/ a- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr)))). ]% V6 K* x+ ] Y
- (progn
$ v" L/ G$ W: g% J, d( N3 Q - (while (setq elm (cdr (nth i dimovr)))
' Z( k5 F$ U8 U$ [' c! ^ - (progn7 \! l7 P' i- p m- ?
- (if (or (= elm "{") (= elm "}"))
; \6 i; s" [0 f: B( d: @1 W - (setq i (1+ i))2 @+ S9 a# \3 Q" }+ p/ \; Z- ]6 }( R M
- (progn! l% j6 x' v' T: z& F
- (if (or (and (< 180 elm)
: k2 H$ E( H, U1 }6 t( h - (< elm 190)
: _) j6 j9 Q# d" q& @) C& M6 P: ] - )' T. ?& e) {4 c7 D4 u5 E
- (and (< 80 elm)# [* U3 H$ h6 i5 k7 b
- (< elm 90)- e9 B5 l0 u! l9 l% {
- )
7 C* _8 c9 L2 l$ N7 j$ z - )% h, U( K# s0 p* ]/ O& _: D8 O
- (setq elm (- elm 10))
8 J# Q% M* O) f) \/ } - )! J t* W: R, B
- (setq i (1+ i)0 n' k7 U9 z: @1 n- C( A
- elm (cons elm (cdr (nth i dimovr)))
3 W) x. j8 D, ?' S, X - dvlist (subst elm (assoc (car elm) dvlist) dvlist)) T J6 l; z: J, I
- i (1+ i)
c: M' k( e2 q0 Z. X - )
8 j2 r9 z& P0 p. l" s% r - )
# t$ e) l! m" ] - )
6 d: n+ f7 b# z/ t) d* M - )
" u, {' w, [; L( l2 U( T - )) B6 s( }& D E4 c
- )9 t2 j8 r3 z! r: _# e2 t
- )8 q% L7 [% i- {) h* [9 R$ T$ q
- dvlist. N' z5 |+ C: ~ \
- )
2 l+ m U6 w( ~9 ^
2 c0 y/ x* |8 V- ;;
+ P8 _0 G+ Q% L3 u+ U% _& ` - ;; Modify POINT
, s& k# l- w7 g - ;;9 f ?$ t( I) {+ Q" D4 n0 Z
- (defun modify_point ()
4 `9 z( B7 J' y+ f/ D( \. t - (modify_properties)
( Q" O0 M- m7 n3 f0 x - (setq pt1 (list x1 y1 z1)); [5 v& z/ a0 K0 Z9 Q9 F1 F5 M
- (tempmod pt1 10 0)
( i& U' A6 {, a g" C k: M - (entmod elist)
j+ p0 F4 p; F' e; L C r - )
$ h, m3 Q. K0 r9 @% S
6 K6 g( o7 T! X; N6 d' N- (defun ddpoint ()# a* Z5 R2 j, p1 U
- (if (not (new_dialog "ddpoint" dcl_id)) (exit))
: T7 o4 L; H z5 Y$ m" ?( R - ;; Set initial tile values$ m ?) Y# K6 l, k' a1 Z. X( m
- (set_tile_props)
( t, t4 h4 w! _ - (set_tile_handle)1 L+ N1 Q: Z' n4 P: p# g- n
- (set_tile_pt1 0); r# n, V& H# w' k6 R
- ;; Define action for tiles% A( R- B2 Q0 b* p- v
- (set_action_tiles)- t9 H: F- F5 B/ w( O
- (setq dialog-state (start_dialog))
$ a/ {7 X5 H0 B# F8 N, `6 k - (if (= dialog-state 0)* x7 [3 ? J6 k& m; Q! r
- (reset)
3 F! g* X$ A6 ^9 Y, u$ l - )
! p. s% ?# }- i9 H. y9 D0 h3 M - (if (= dialog-state 3)
. k+ {: A* c+ M5 z4 }+ U - (progn! r6 F* q f" h" g8 c8 ?" r, O8 S
- (modify_point)! e( \! e* U8 h, B+ I" ]* A# X
- (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))( `+ v) @( o4 U
- (ver_pt1 0), J& Y1 t: i) V$ B1 W8 \
- (ddpoint)
8 ^# y8 A" Z6 o3 @ - )
. d* E" m/ E4 j' ]8 @: z7 s3 a - )5 n6 u8 O; @0 @
- (if (= dialog-state 1)" F. U3 |* h% y8 _# z. {0 k4 g- F1 O
- (modify_point)# A$ }! Q* d) v5 |
- )0 n- d% M* C1 c0 M; ?9 \
- )
2 X/ F9 g1 u8 y& n; h - ;;
8 X3 }5 ?; Q' q2 I+ q) V: b - ;; Modify LINE
* G' Z1 Z2 v+ R/ d2 L' U - ;;) ^) ~1 E& E8 N, U" i4 l( w5 C
- (defun modify_line () w' I7 [/ ?* x+ f
- (modify_properties)0 P; {5 P4 h M. j: s& Y
- (setq pt1 (list x1 y1 z1))
" {: C: a& _0 P5 u; q - (setq pt2 (list x2 y2 z2))
& _2 H. ]1 a% R) q - (tempmod pt1 10 0)0 v( `" h; W5 T- h# Q
- (tempmod pt2 11 0)
0 V1 ~3 W2 z6 K0 J$ U: }: A+ } - (entmod elist)! ~% p. c( `# F3 D' n1 ~: E
- )
8 O. n! {; T+ k1 _ - (defun ddline ()/ p, m" o% T V7 K; ?
- (if (not (new_dialog "ddline" dcl_id)) (exit)). k" s1 I6 C) V! M( S! V8 b
- ;; Set initial tile values
* U# U- c' D* T - (set_tile_props), \8 }4 z& _1 T% b
- (set_tile_handle)' T/ J" J8 A. ?
- (set_tile_pt1 0)) S" [+ u7 w* s3 [: r: Y: {
- (set_tile_pt2 0)
' A2 H) Q; M5 x/ `1 X - (line_calc)
* t- M, M, R* V! v - ;; Define action for tiles
& x @/ F2 M8 c4 D; @6 V( n - (set_action_tiles)1 H* @' q. {0 A9 I7 Y3 X3 d" r D
- (setq dialog-state (start_dialog))
' U% }" S$ D5 d - (if (= dialog-state 0)! N {8 O/ Q, P5 |
- (reset)4 @ o5 Q1 O* Q1 p, G
- )
0 a% Q E, N9 r3 d" x - (if (= dialog-state 3)
j* j( _% b/ } I* l6 C - (progn
! Q$ D2 D5 S9 v" p% ? e5 W - (modify_line)% ]' B5 ~8 s4 T1 E7 h
- (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))5 O% e+ } I' c6 c) I6 m
- (ver_pt1 0)8 D; d& S, i6 r3 `
- (ddline)3 V0 L# I! b7 D6 |
- ). P" \2 y7 W3 G- \& O4 Y2 h6 r
- )
4 s: O; L$ J; s" A7 n$ \# K - (if (= dialog-state 4)8 g Q( }! N D
- (progn
" p# F" u5 h7 j4 e - (modify_line)5 e2 A7 m) Y6 T9 K6 `' ~
- (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))5 Q& M; h! j w( D8 N& ~
- (ver_pt2 0)7 J) v; I5 q" j; J% b
- (ddline)
9 |7 O+ P: ~( s9 p. t! b0 P - )% O8 |. Z7 z( N. _! k0 o# Y
- )0 h- z% h$ L$ h, W
- (if (= dialog-state 1)0 @- N" g2 ?/ b
- (modify_line)2 l) y6 f: O4 y6 V
- )/ U; S. {- L" t+ A/ i
- )
9 ^. Q+ U4 Y. A4 | - ;;
$ H% V t- t5 u W/ { P" Q: a. N - ;; Modify MLine, f B; m3 ?( h% ?' x7 c. N8 L L
- ;;2 ]$ a( c% I( i" U P% J2 a
- (defun modify_mline ()# h j$ z5 Q" t J% T
- (modify_properties)
" D7 @- x; `; H' R& \ - (entmod elist)
* ~3 |2 X. T; f" d, O - )/ j( S4 ^) U7 ]4 V! z- Y" {0 \* u7 }
- (defun ddmline ()
2 O" | J- q( V% h7 S3 x - (if (not (new_dialog "ddmline" dcl_id)) (exit))" C7 P' i3 @# D
- ;; Set initial tile values
$ @. }$ T; S$ J - (set_tile_props)+ Q& G$ h A, a y4 J8 S5 ?. ]
- (set_tile_handle)$ w- y* r, F: g( v
- ;; Set mline style text field.
' \& J5 y' ~: M! M- w - (set_tile "ml_style" (cdr (assoc '2 elist)))
6 {1 |, _* c; U* f/ h" a+ K; A
5 L9 g8 C! }) `9 W( \2 h2 }- ;; Define action for tiles) d% G. `* ]" `+ v" U" P
- (set_action_tiles)
: l6 s2 R0 t' W- X; U - (action_tile "ml_edit" "(done_dialog 3)")9 j/ u8 _& I6 o$ W( L
- (setq dialog-state (start_dialog))
2 _6 k3 t6 G7 U5 x8 t) c9 [ - ;; Dialog cancelled, reset to original values.
& z4 `- @3 k" ~4 } L - (if (= dialog-state 0)0 j! R- I- r _. z. x4 ~
- (reset)( ~/ A1 V: c8 l; v$ y
- )
7 X% t7 N$ a$ |6 o9 V e& p8 Q. q - ;; Dialog OKed, update the mline.4 S5 `& Z9 U: g0 Y' R: \2 q4 r$ m+ ^
- (if (= dialog-state 1)
" }- c! `% y( R( q& i - (modify_mline)
/ T+ ]3 y5 W$ S S s F% I - )% C* x# [9 U7 F! m! N8 ^! r8 s
- ;; Edit Mline, call MLEDIT.
9 j8 C1 d+ P( M5 H - (if (= dialog-state 3)
5 ]) H: q9 m& d6 B - (progn
9 f7 j7 S" H% q, ?( v) L5 g - (modify_mline)
/ a5 |+ j+ G2 l" g4 ^% H f - (command "_mledit")# q N# I: }9 x- j4 @
- (ddmline)+ h* o# M6 w' Q O, o& L
- )
$ V' W: ^ b7 B/ g, @6 J - )
8 i# x" p! L1 _9 `4 D' p - )$ u8 P, B0 L/ ?+ P z5 O- ~
- ;;
0 U- r L4 d2 Q: y0 a/ z6 L - ;; Modify Xline
, Z7 V! j& H& z; I4 a3 ?9 m- R - ;;4 J) l1 f- J: u. B) n, Z* e
- (defun modify_xline (flag)$ i$ h# t9 ]/ Y3 t3 ]
- (modify_prop_geom)8 h( o4 M0 p- y* {
- (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
q. O+ o/ m4 q3 s' E - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))1 ]- H. Q2 P+ |, d$ J5 I* v, N8 P
- ;; Update the Root point.
m+ m) g) A7 {2 ^% j - (setq elist (subst (cons 10 (trans xline_pt1 1 0))
. c& A( g ^( m1 v - (assoc 10 elist)0 ]- Q, Q8 H- m" B
- elist
- s8 A* Y/ F8 `9 E2 z - )
; t; p" t2 v0 d" Z5 L d% w8 a - )9 T/ }; `( f, j: _
- ;;
[; R7 P# a9 u. a - ;; Calculate new Direction Vector WCS
- N2 G7 Z* i% L - ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))
4 p) [5 r* t- n) k1 w# ] - / P% _& y0 i) @( o/ b) }$ S1 {
- (setq temp_dir (trans xline_pt2 1 0))
/ \1 J3 }* ?# @* d; Q$ _ - (setq temp_dir_x (car temp_dir))8 X& x7 O2 l3 h) x& y7 ]1 v% O1 X
- (setq temp_dir_y (cadr temp_dir))0 k; }7 E% p0 b
- (setq temp_dir_z (caddr temp_dir))* a" Y L; ]. w" T' b2 ^' g% C" H
4 ^. J, s3 m) @- (setq temp_xline_pt1 (trans xline_pt1 1 0)), a6 t( r- {8 T4 K* |+ V: f
- (setq temp_xline_x1 (car temp_xline_pt1))
3 q+ p+ L/ X. R0 h - (setq temp_xline_y1 (cadr temp_xline_pt1))
! b9 L2 F) j. i9 e6 n - (setq temp_xline_z1 (caddr temp_xline_pt1))
' S9 S+ d w o$ e# r# p
3 V) R! @2 i+ Q- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)' X7 I" P$ `+ U/ z
- (expt (- temp_dir_y temp_xline_y1) 2)
3 Z% B/ n7 h, |6 D( ^ - (expt (- temp_dir_z temp_xline_z1) 2)
! ^# U, t% b# `+ c* p - )))" F$ i3 X! i) i
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))+ R- H" N7 G* N9 y
- (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))' Q8 s' F' Q! O" \' E" G. z1 p
- (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
% p. q' A2 \/ c - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))
% C7 y" G; B' b6 z1 \* j; n - (assoc 11 elist)6 n+ o% C! Q; R" a) Y, Z5 U3 c* }" E
- elist0 B n( }6 w, l$ n; c' R
- )
4 V! t4 @. K) U; z6 U" u - )# M: E: W0 h7 f8 }: e8 Q
- (if (= 1 flag)
& ?) l" O; h0 O - (entmod elist)9 w8 X: C5 o1 L0 ^' R1 e, a
- )
4 m% x6 h4 W3 H9 @' G# t# f - )
6 f- U: `5 s: v0 o - * u7 W% p$ U4 `8 g
- (defun ddxline ()2 `$ P* F) Y( l6 L" t4 L1 t7 U1 ~
- (if (= etype "XLINE")
# h6 S. n( n) B. B$ q$ q1 u# j: C - (if (not (new_dialog "ddxline" dcl_id)) (exit))2 S* q' u. s" f$ k- N* s. P
- (if (not (new_dialog "ddray" dcl_id)) (exit))7 ]( @3 P/ B, J* T
- ), J- e, j5 K4 N$ ]3 P" \: ~
- ;; Set initial tile values
+ l! F0 R) y/ y6 z, g5 V( k - (set_tile_props)- J! K: G) O# u- w
- (set_tile_handle)5 j5 N$ ^) U" a2 B
- (set_tile_xline_pt1)
1 b5 r5 l c& ^. |6 ]$ X - ;; Convert to UCS and post Direction vector.
+ V3 h$ E7 L {; B. p - (set_tile_dirv)
& g1 j' [' ?) Y' f! ~) E - ;; Calculate second point by adding Root Point + Direction Vector.$ Q2 ^( U3 r; ^# r
- (set_tile_xline_pt2)7 H1 r; _ p& C
- ;; Define action for tiles
0 N! I, V$ H+ y* ]0 ?# N- N9 e - (set_action_tiles)4 |8 x* Z% _1 \5 G7 C! [' Z. N6 g y
- (setq dialog-state (start_dialog))2 ~1 ^* P* t0 {8 M
- (if (= dialog-state 0)
+ x2 }& A4 }8 ~8 ^+ x4 c# h - (reset)- U( c) P" x+ m7 q- _( d: H' A) O
- )" y# i/ L1 Y S3 o$ I4 s$ M
- (if (= dialog-state 3)7 B; j. J2 ?: b+ e I" ~0 x
- (progn
: q5 T- s% b. D$ O& h+ U - (modify_xline 1)
, f! G/ W$ D2 ] - (while (equal xline_pt2 |+ K& z3 }6 G, C
- (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)' b# a) {, U7 O% ]+ }; A/ g% m+ U- {
- (princ "The Root point cannot equal the Second point.")
: f+ Y- k) n2 Q* Y9 m9 N& k - )& a9 r9 n( ?! R& l6 _% d: s
- (ver_xline_pt1)
. w/ u2 F" L' N1 S/ f - (ver_xline_pt2)! b0 z' \* @, K$ n! z
- (princ)! V$ ?9 [# c- C- e
- (ddxline)6 P1 o2 j9 b/ `1 i4 {! Y1 M7 y+ k* O
- )8 i0 M ~9 ` X. B0 Z* r& n+ `
- ), N$ C- Y$ b0 A3 v( W; z7 f& \
- (if (= dialog-state 4)* {. X3 `" q) L; f1 o0 k; X) c( z
- (progn7 W% c- G2 T. e, m$ m6 L( K, L8 q
- (modify_xline 1)2 {5 b' A2 t2 h5 q/ Y+ R
- (while (equal xline_pt1( [0 ?5 b$ w2 B
- (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)
. j. a/ W1 V# E7 M - (princ "The Second point cannot equal the Root point.")2 d# ~' }& r% e6 Y( y% o% _# c- C5 F
- )
0 B: {+ p6 q0 r/ i7 _. `6 Y6 M - (ver_xline_pt2)
]+ [, X& [2 C - (princ)6 m1 _; }. ~( ~
- (ddxline)
) I4 e Q! Y9 x - )
: q9 v6 D, s* q* z7 k$ g* i - )% h2 a: S* C% f: K2 d
- (if (= dialog-state 1)
* b0 i- W+ H ^5 Z) L7 r. T - (modify_xline 1)
; ~+ }2 o* l: k - )
" U2 i. s+ t' l3 u/ W7 p% T6 i4 c8 }2 R - )
8 Z* Z1 P# F2 Y& i0 T - ;;
. E/ `) N6 }% Z' C - ;; Modify ELLIPSE+ I( X' _+ N K- W* l: D
- ;;
8 c6 {" K0 U. _+ \# v+ J. D - (defun modify_ellipse (): _ a4 }3 V7 u$ Z5 r }6 P
- (modify_prop_geom)0 k- r% a/ r* c4 Q
- ;; Update Ellipse Center Point value.
& d/ }! j( \# N9 v - (setq pt1 (list x1 y1 z1))
F9 u, R- R& k$ d6 J - (tempmod pt1 10 1)0 x7 V! p2 B2 b+ M" F
- ;; Update Start Parameter value.
( p& c* S/ E6 |5 p - (setq y_val (sin st_ang))$ k4 s4 a2 E* i: u# T
- (setq x_val (* rrat (cos st_ang)))
# @* F+ i1 A" l$ G - (setq stparm (atan y_val x_val))1 a6 L! C a, _# e: z* }
- (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))- z4 l D L0 v+ M3 r; l( B
- ;; Update End Parameter value. Normalize it, if it's less than8 |' E* F5 C* i: E# ~
- ;; the start parameter.9 w0 U$ O, L P. g5 [2 g% M
- (setq y_eval (sin end_eang))
' K$ ~ X' j5 c' d: A+ ~5 M. o - (setq x_eval (* rrat (cos end_eang)))7 _; H, Y, ~3 d# l0 I/ A
- (setq endparm (atan y_eval x_eval))
8 Q" P8 a4 v/ O* U: D& ` - (setq diffparm (- endparm stparm)), f c) a$ H' m4 ^% m& X9 Z
- ;; Epsilon of 1.0e-6 radians for checking a zero length arc." B" p5 z' N! s! W* E, P
- ;; Since zero length arcs are not allowed - construct the full
4 u* K- {. b! T1 Q# Z$ V' u - ;; ellipse in this case.8 d: }! H% X4 \8 W/ b+ \9 E' m
- (if (<= (* diffparm diffparm) 1.0e-12)
) F* E$ j3 ?! d6 Q9 [ - (setq endparm (+ stparm (* 2 pi)))
6 M9 T5 s7 ]) @0 Y0 } - )& c# i2 q w0 T1 B
- (if (<= endparm stparm)
1 J! G* O1 i6 [ [+ g# t - (setq endparm (+ endparm (* 2 pi))), U7 n2 F% V. @
- )( N. ]. ]9 ]7 N; u7 r& e
- (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))
1 V* |$ | o) [- w; D7 O - ;; Calculate the Major Axis Vector by first calculating
~3 X& E+ f3 p) U8 h9 O, | j - ;; a unit vector using the old Major Radius value. Then
2 _% ~/ A, J @; V: S- m4 \9 x/ C - ;; Multiplying that by the (possibly) new Major Radius6 E( R/ K/ j/ C7 G3 n, L
- ;; value to get the new Major Axis Vector value.8 j, B c ?! J, h! D% j- V8 f5 j
- (setq unitxx (/ xx old_majrad))8 c6 l& N$ b, x7 N* r: k& ^& |3 r
- (setq unityy (/ yy old_majrad)). U5 x6 I2 S' t% ]
- (setq unitzz (/ zz old_majrad))
; X3 p0 O5 Y7 U; k - (setq newvecxx (* unitxx majrad)). h( b; S6 o% l8 H3 R$ {
- (setq newvecyy (* unityy majrad))1 |, e2 Q- P6 q
- (setq newveczz (* unitzz majrad))
3 R; Z, b, j/ W2 |( { - (setq newmajaxis (list newvecxx newvecyy newveczz))
/ t" H( ?: G$ @, L" E - ;; Update Major Axis Vector value" ^7 c1 c- h. z. b) L
- (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))5 G# x: G( O* n& M7 C6 P; n/ \: m7 P
- ;; Update Radius Ratio value. T" q1 ^) c3 C; _* F5 d( k! w
- (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))
6 @8 j+ \ r7 l& _ - (entmod elist)6 u( m( N5 {9 f [" c: v
- )+ S+ A" _) t( ^3 n( M, H+ {5 d1 j
5 j- f# P' s" _" H' R. F0 ~/ G- (defun ddellipse ()7 v" E) C0 o: l% V. N
- (if (not (new_dialog "ddellipse" dcl_id)) (exit))+ A4 E# A8 f! Z: j3 l
- ;; Set initial tile values
7 I3 Y2 \4 H- D' e1 Q2 g - (set_tile_props)+ z& u" w3 @. \, k
- (set_tile_handle)2 S+ F0 X4 D6 P+ @
- (set_tile_pt1 1)
8 A; y2 f: Y% h' @& V* ~ - (ell_calc)
0 s5 d I* q$ }( m5 t. p - ;; Define action for tiles r8 \1 B2 }; H' Z! z: k: Q+ l8 o
- (set_action_tiles)
" B8 _+ b# `4 _& s( P ` - (setq dialog-state (start_dialog))/ u; E6 s. z; @) m* T
- (if (= dialog-state 0)
$ z0 e5 U" }$ m( m - (reset)8 V1 O" x% H( L
- )
" }" ?5 e& D& k% Q1 W" i- Y - (if (= dialog-state 1)
/ ^! D. d1 z8 ~. x - (modify_ellipse)4 ^: F0 Q7 w! I& ]: p7 h9 \% D
- )' t% N" c4 u X* {& |' Y/ r
- (if (= dialog-state 3)% g" X* J% O- Q+ K. L
- (progn
3 z! f- p7 _3 G9 ?" K - (modify_ellipse)
4 h/ x2 j* x; T7 ~ - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))- p% q( s- @. w' w4 g3 ?; Z
- (ver_pt1 1)
2 |$ K. J2 J- L7 n5 f - (ddellipse)
- n$ i" y" ?# g/ l - )0 E4 ~* D2 O' @6 b
- ); C2 w) a, @5 ~1 \% M; ~ q( F
- )/ ^9 m- o0 J' q
- ;;
1 ?4 Z- u4 T) ` - ;; Modify REGION
' g, h8 S9 S( q g - ;;
8 }" q O0 W$ W# W2 J" ~ m - (defun modify_region ()1 i9 ^. ]) V, v# C4 g
- (modify_prop_geom)
) r9 J9 p' u' B5 p2 ~% d - (entmod elist)& l7 Q" I# Y, e- A8 K
- )
3 n; b# Y% i- `) @
7 m+ n3 M: R2 P/ O* Z! o- (defun ddregion ()
9 {, d1 t6 E2 h5 k3 `( P+ O( h - (if (not (new_dialog "ddregion" dcl_id)) (exit))
* k* N5 r" @+ F! g8 r - ;; Set initial tile values
- {1 R5 S2 m0 @, p% V6 K0 g( F - (set_tile_props)
8 B, j0 m; ?) e - (set_tile_handle), F; g' i- Y7 [- X- |0 Y
- ;; Define action for tiles* ~2 |* b( S2 s
- (set_action_tiles)
' g3 C- o6 Z. H7 ] - (setq dialog-state (start_dialog))) R* T1 ]5 ~- p8 k; t. ~- [- ~; X
- (if (= dialog-state 0)
8 P3 X {3 }. z+ Y - (reset)
; v2 T% J" A+ X - )5 e' G$ Q) M: z* { k
- (if (= dialog-state 1)
$ N" u# T4 R& u3 a" l3 x2 B - (modify_region)
. G8 e8 _) X- Z* @ - )7 m' ?+ o4 g8 J" W
- )+ g& a+ ^# N' q1 o% y8 Z7 ^0 e
- ;;
0 I% x8 y0 x2 L3 n+ b* b9 c - ;; Modify 3DSOLID
5 t0 ?4 x5 w. e9 {0 X4 C: {/ \ - ;;
! ^9 h+ @. k5 x/ H6 Y - (defun modify_3dsolid ()
& `# Y/ Q) p3 f s& ?3 r6 \5 G - (modify_prop_geom)
c1 v2 ?* l B! @8 ^/ b1 Z - (entmod elist)
9 ~2 ]% a$ l( W4 @' w - )
' g6 G8 r) n4 q2 ~ - " `. E+ ~1 E" C: ?/ _% o
- (defun dd3dsolid (). i! m. l5 R* B' ~9 i
- (if (not (new_dialog "dd3dsolid" dcl_id)) (exit))" i( |% q! ~: l0 V) M
- ;; Set initial tile values& f3 {1 J% @" T/ J2 ?* ~
- (set_tile_props)3 Q; v J7 U, E3 s# O/ c
- (set_tile_handle)
2 b) A8 x* @" L - ;; Define action for tiles( t1 j4 C2 d# a0 F/ d
- (set_action_tiles)
* p! y4 C3 e3 S - (setq dialog-state (start_dialog))
8 _( h# h1 V; ?2 k; Y- s! G - (if (= dialog-state 0)- k4 P7 b$ s5 W- q% t
- (reset)6 q4 M+ }+ Z" j/ ?/ `5 H/ \. a
- ). L( m$ N. A0 t" |& `7 W( p
- (if (= dialog-state 1)
# v) Y- s# d* J1 C1 F' ?1 A7 e) D; Z - (modify_3dsolid)
# U4 q2 `& ^. Y0 a0 z5 A- y - )
% s) Y6 r& v! p% {) _ - )
4 N2 I; U: K; B6 f6 x - ;;
% o" X8 Y; H \" U3 Q7 ^0 n - ;; Modify AcDbHatch" J1 X8 S( A* o7 K8 ]. v5 V
- ;;1 K* H1 d# m" j2 W C- b
- (defun modify_hatch ()* t: }+ ]& B8 s3 k ^7 z
- (modify_prop_geom)
: @7 b& j5 h4 m9 }3 ^9 ? - (entmod elist)2 ]1 l+ s8 o3 p- Z* ` P" O
- )6 P: l+ w' E% p } J, { F6 G
6 e$ X+ O" P7 B B3 R: v- (defun ddnewhatch ()
! i# S0 E" c. V. t - (if (equal hatch-elist nil)3 e* Z; j* o6 F. \0 y: l
- (setq hatch-elist old-elist), Z' H' I$ ]8 v1 j+ R
- )
4 h6 Q" V$ |" D5 {6 S - ) q T7 u" w+ \. R; i
- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit))
0 {5 s$ F8 t" a z2 t5 m0 R - : Y7 Q( e' `5 L8 C1 w& Z; k
- ;; disable the thickness tile0 o8 L9 w( L5 ~/ ?, C
- (mode_tile "eb_thickness" 1)1 b5 K) |7 q; {( W
- (mode_tile "e_thickness" 1)+ s/ g4 r7 f& t4 T
- ( ^' t2 ?4 D1 l; O/ f# G) e
- (setq help_entry "modify_associative_hatch_dialog"); B; _# x% U; \$ I# s7 X6 g1 {
- (set_tile_props) n8 Y# a1 h; R% W. V1 i y
- (set_tile_handle)
) h1 _# {' _ P' }2 O$ p
* P! R6 ]& w0 {; C5 v# p$ Z- ;; Define action for tiles( ^) ]7 ~, ?. e+ }4 o
- (set_action_tiles)0 u; ]( `. r6 c. q V
- (action_tile "b_hatch" "(done_dialog 2)")
# G4 m' U& d E* z - (setq dialog-state (start_dialog))
- u; S& p% p+ B - (cond
+ I& a& P/ X ? - ( (eq dialog-state 0)
* ]2 y+ _! W) r% g - (setq old-elist hatch-elist), c* u# h' T- C. @9 O
- (setq hatch-elist nil)% @5 v1 F/ H( V3 d+ f9 Y P
- (if (= (checkforlockedlayer ename) nil)! D: q9 I& T( j9 ~7 C0 ~
- (reset)
. p9 T( Y9 m( d6 p. b# A - (progn ;;; special handling for locked layer reset: [, K, } |* G1 k- w1 c
- ;; unlock the layer$ a" D& c% i- \: A# g2 C
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))
& v' L, F3 @) s ?5 o0 y - (command "_.-LAYER" "_Unlock" layername "")3 n, u4 I$ \+ t; W9 S. O3 e* ^
- ;; reset modifiction* X( l: N/ x& w, _/ G- M7 i. O0 r
- (reset)
6 O: u# B: e: L8 U$ B4 o6 V4 L - ;; lock the layer again1 m% U) c, Z# ]7 c: B5 X) F0 v/ {
- (command "_.-LAYER" "_Lock" layername "")
$ m( w: l) }5 N9 R$ p# T0 h - ) {; N) I& l) O5 p) t1 C
- )# L9 @1 i) p+ C* C" x$ m
- nil ;;; makes (ddnewhatch) return nil for Cancel
$ B" d$ ]3 W5 F8 F+ R - )
8 M, R+ W$ o+ S' W" t - ( (eq dialog-state 1)
4 x" ^2 b, S1 z% f - (setq hatch-elist nil)
7 s$ V2 e& o# }- Z( z* O - (modify_hatch)6 m- i/ z/ _+ W# e% U0 [) J2 A$ `
- T ;;; makes (ddnewhatch) return T for Ok
+ J, A+ C ~& f+ k - )
4 A$ M. x% ?4 e" ]5 _ - ( (eq dialog-state 2)5 _4 Z8 t! X3 O6 a
! }( @# e9 p1 w5 s( H+ O- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer))) Z: l$ I. f6 _* @4 G
- 4/ [. F$ z d" w! j& h
- )
. p; L! O$ ]$ p7 a - ;;; new selected layer is on a locked layer0 k& h1 P& p: g
- ;;; we can simply modify the hatch properties I0 ?/ m9 K+ r4 e$ w& S
- (modify_hatch)
1 _2 Z" P C) V# D" n& Y( m - (progn8 P* s; q1 [8 t' f. x
- (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))
: M6 I6 Q5 ^5 P - 4
9 ~3 ~) S' c+ P3 i; }( E# j' {, x+ ~ - ) $ T- Y: r& R9 R/ W9 U: i1 I
- ;;; We changed the layer previously and now the hatch lies on a locked layer.+ A; u0 H: {; B7 A
- ;;; We have to unlock the layer forethat we can update the hatch properties.
* O. A" R% X6 W; ~. O - ;;; If we don't do that (entmod) fails to update to the new layer.: {/ Q, T7 v* Y; W4 [+ b0 n3 ? t
- (progn
5 f2 n! f1 m. g4 M4 u" B3 E* s3 D - (setq layername (cdr (assoc 8 (cdr elist))))
3 ]2 r- A, @( r9 f! F - (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer
9 f' @: m( s R2 R2 J% C6 A" ] - (modify_hatch) ;;; update the properties2 B2 H' D( y/ U2 x- q
- (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again
2 o" S, A0 g0 l - )
0 F% B M$ ]" b* M4 c- B - ;;; All other cases we simply update the properties
; f6 n& C1 ?" u% b/ }$ C - (modify_hatch)
2 ]2 @/ [( @( f4 v - )
6 M( G; c& o' E5 U/ F9 T - )
) k4 J! P: i$ w( K9 `+ ^9 Q3 F6 n - ) " F8 [1 |$ @6 C9 [$ Y
- (if (= (checkforlockedlayer ename) nil)
# [7 x6 j2 U* A% N0 W - (command "_hatchedit" ename)
( k6 X/ K4 ~* m" _7 c - (alert ;|MSG111|;"The hatch object is on a locked layer.")
2 J: V4 y( l& q- u7 l - )
$ D [% X$ f% I# ^/ ~0 { - (ddmodify ename)% {2 @4 t6 x# h- b
- )
. G8 U2 T" p& u - )( I) R; q+ W. P( ?
- )
% v6 W6 L$ {) o; W$ ~) f' F - ;;9 ^; B5 }0 n) T! v& m U8 F
- ;; Modify BODY7 b3 _% v; p. L* k
- ;;' d% R- p3 u% h- e: k, l! X, j+ P6 r
- (defun modify_body ()
1 z/ u: Q- F+ t! f0 F- [0 X - (modify_prop_geom)' k0 t% v+ @& `2 ?
- (entmod elist)* w' @% ^1 `0 @9 s; t% P. s
- )6 V( c) c J. {/ [
- 0 W8 H B% J7 `' Z, U% V( O" h8 G
- (defun ddbody ()
2 s9 O+ ^0 c6 C( S& a, } - (if (not (new_dialog "ddbody" dcl_id)) (exit))
, H( M, }/ M8 R, e' z8 r- I - ;; Set initial tile values& H3 n! c* X3 l$ g0 O) b1 b6 Y
- (set_tile_props)7 `4 E( z8 U7 w: B
- (set_tile_handle)
8 o( r" J6 j8 v8 M: P' _" t- c6 P% S$ K - ;; Define action for tiles
& A' t( V" B" {' N - (set_action_tiles)
1 x% @ }! R3 n0 {, Z& |4 ^& o0 e) P - (setq dialog-state (start_dialog))6 Q& [/ V* W& J) M4 [
- (if (= dialog-state 0)
]" m. w: n; Z% G1 t& a - (reset)
) x4 {3 B: ^( a* S4 H - )
3 Y) _ I2 Z0 |: ~" G - (if (= dialog-state 1)
8 H- V2 I$ x. c4 n+ d. I6 K1 w, C - (modify_body)( j+ Y0 L4 ~7 j6 u3 s2 p, d+ y
- )
, p, @4 T' H/ w1 z - ); ?( t9 k4 s0 a5 |
- ;;0 [1 i o& j' ~, [& T' @$ ]: p
- ;; Modify CIRCLE
9 X: m) }- I/ Y - ;;
# a1 k5 U" Z. G& H, D- y - (defun modify_circle (): [% E5 L3 o$ A v
- (modify_properties)
# ]" \ ^0 G& l* u8 e6 [ - (setq pt1 (list x1 y1 z1))' e8 S0 G' [* B- p; e5 [
- (tempmod pt1 10 1); o( u% P5 x& @9 ^3 n$ B6 a% y. O
- (tempmod radius 40 nil)
0 a" s' a' I/ w! ~" e3 K$ r: R - (entmod elist)! W6 M; s& U; |% A; }5 H( [
- )+ U0 I( q K+ C& s( r0 m2 u
! x" m- T, B- c# F- (defun ddcircle ()3 x5 t# |: @% j, r* i
- (if (not (new_dialog "ddcircle" dcl_id)) (exit))& l1 N) n6 \; e* A
- ;; Set initial tile values0 t! N5 f4 g9 D; R5 v
- (set_tile_props)
$ G6 x: e9 ?+ w9 H - (set_tile_handle)
+ m8 f$ P* e- `5 }6 F" k, Z - (set_tile_pt1 1)
0 B' }- g: R3 \+ e& n+ n - (set_tile_rad)$ S. F8 A7 O( h
- (cir_calc)
8 `. J1 F8 p$ z* M, ~# e$ E - ;; Define action for tiles9 _9 ]0 U: e1 h9 t x* H6 |
- (set_action_tiles)! F' k( A1 K! P8 Q) _, a
- (set_tile_pt1 1)
4 u& O3 V) z( P) `, r, F1 b. ?+ R - (setq dialog-state (start_dialog))) G7 r K4 m, C# O7 R3 t1 M/ [
- (if (= dialog-state 0)
# J4 w! U" p) E+ [# Z - (reset)
% K$ } G2 Q2 { - )
- h& s* k2 p! Q- ~4 O# T - (if (= dialog-state 1)
: Q" y1 ~4 }& _ K - (modify_circle)
! P3 i- ^7 d0 m6 k - )
/ k8 a0 z! K- U3 n w; s9 c8 B) K - (if (= dialog-state 3)
; p& P/ D S8 _" V0 Y) H+ `( O - (progn
( t7 v+ N" T: H( G0 b - (modify_circle)3 h4 A6 Z5 L% k) O( w7 f
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
6 o; }5 [! D8 Q: Q - (ver_pt1 1)
/ I) u( F3 ]9 b( ] d - (ddcircle)
( @% p' H5 E' f - )
9 K! x8 t1 P3 z; U; `4 q - )
5 @8 Z1 u' t9 B1 K - )
% A2 C2 _( |3 z4 @+ ]# A - ;;
p' k. M1 y* u" N8 I% _& t _3 B! | - ;; Modify ARC
( }% H% h3 F& U8 j- X! r, e' E - ;;! s$ h* r" i3 v5 Z1 {
- (defun modify_arc ()
/ V, a/ u7 }/ g - (modify_properties)0 }; T* G4 L ^, r4 i' t+ q
- (setq pt1 (list x1 y1 z1))
' @+ @3 P8 X" O1 w - (tempmod pt1 10 1)4 |* |9 S& c' Y/ F" O) S7 v7 N' [
- (tempmod radius 40 nil)$ c3 F. S) e5 g& n% `8 R
- (tempmod st_ang 50 nil)# @$ t# e n Z6 S: T' @) |! L
- (tempmod end_ang 51 nil)# C7 {. z1 u+ s f/ ?4 e
- (entmod elist)8 x* H8 E, X- W( [ c
- )
: \7 A. E2 c# o, A+ Z1 N6 g - (defun ddarc ()
, r6 Q* }, s0 g" c5 y - (if (not (new_dialog "ddarc" dcl_id)) (exit))
7 B" |% s5 G1 q - ;; Set initial tile values
7 K0 \' H& b( N - (set_tile_props)$ A6 E6 k8 I" I$ k! G
- (set_tile_handle)
6 z/ A& m% O7 f% N - (set_tile_pt1 1)
: h2 f5 @0 I O - (set_tile_rad)
! D! R% A0 y- R9 y/ w - (set_tile_stang)) l& C) T9 e0 {9 g# r. O5 V, c0 y
- (set_tile_endang)+ z3 p; y' q% \0 B5 \( ^! U w( F, t
- (arc_calc), T% t! S0 R0 V
- ;; Define action for tiles, U4 U8 E# p& s! Q# ~/ e2 f: `# L8 ?
- (set_action_tiles): r( P% b' B" |" P% E
- (setq dialog-state (start_dialog))& B$ R; J3 e% C; t
- (if (= dialog-state 0)
3 Z: x4 P/ ^3 d7 m0 g - (reset)
" K: ]/ L l/ Z" \$ s - )2 }/ K- n" w: f# B Y7 l# b( o& S
- (if (= dialog-state 1)$ o( X( b: x& r4 l5 n2 {. A
- (modify_arc)) ~9 c1 v [/ y9 J. T
- )
* E% H& I( P# O8 K) s! C0 Z - (if (= dialog-state 3)
$ {, \! y% ~. d$ p, y - (progn- o7 ?- Y, @) Z' O, J
- (modify_arc)0 ]3 y. r% {" R6 `. p
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
# P; }+ r; f2 M8 D - (ver_pt1 1)- e) s4 l2 C6 F0 r( G
- (ddarc)
6 ^# q ]- z5 Y' k9 ~5 ~0 b - )
4 C" o# k% n( ~8 ?( [ - ); V' M8 F% M) o- K
- )
: p+ f/ B0 N# h, o w4 V0 S& @ - ;;: B5 L `% i, V @
- ;; Modify SOLID or TRACE
5 W& b3 z- q3 L' ^/ G( U6 g - ;; Note the Z value of the object is determined by the Z value of the fourth( i, ?+ i9 P/ Y# V7 `. H
- ;; point - code 13. Changing the point values of a solid or trace from a UCS8 [/ ~# g, h) w% l; ?% _' M
- ;; that is nonplanar to the UCS the object was created may confuse the user.$ \* N h! m6 q9 f: Z8 D* O: }
- (defun modify_solid () ?2 L3 k0 s' V# e. e
- (modify_properties)
+ O ^* A# K3 \+ G( z; p - (setq pt1 (list x1 y1 z4))- E1 C) `$ v! C6 V! p% g$ ~$ {
- (setq pt2 (list x2 y2 z4))1 t" \" `4 o7 c+ H+ }; J
- (setq pt3 (list x3 y3 z4))
( D& p- \& x5 p - (setq pt4 (list x4 y4 z4))/ t }% W& | R( H+ J6 `$ X
- (tempmod pt1 10 1). v; B U) J5 u: t$ q5 K
- (tempmod pt2 11 1)- x4 O: e$ L5 T" k6 C5 g2 g
- (tempmod pt3 12 1)2 E b. k! n( A7 K) k, m6 b1 D
- (tempmod pt4 13 1)4 O) z1 L2 u% n9 Y: Q6 n, K
- (entmod elist)8 q ^5 `* X2 q, b
- )
" W# ~6 i/ w; c j# ^5 U" Z
; U# P3 p& d- G6 P* P. ]" d# H3 |- (defun ddsolid ()6 s+ i5 v0 B" T0 o7 i- F$ |
- (if (= etype "SOLID")
7 `; s- O0 S: p: R1 a8 y - (if (not (new_dialog "ddsolid" dcl_id)) (exit))* \' o' r6 ? _7 V% @
- (if (not (new_dialog "ddtrace" dcl_id)) (exit))+ w+ x9 K7 @) w" n9 K8 W& _( t% t/ H
- )$ W$ u) W M4 q; j4 R7 |
- ;; Set initial tile values
: C* x: K7 ~% |7 W; P, q6 m( K* e - (set_tile_props)
4 {2 U% p& H/ W6 k. O4 u - (set_tile_handle)! G% `4 ^5 h1 Q/ s' G. d
- (set_tile_pt1 1)4 y' T. ]4 t" a. ]. _
- (set_tile_pt2 1): v& _- q; S( t% J
- (set_tile_pt3 1)
) x1 U. y/ O/ F - (set_tile_pt4 1). h# |6 T" b. M0 Y5 k, c
- ;; Define action for tiles$ [) J& d6 ^5 b% N0 W% G
- (set_action_tiles)
* N7 d/ A0 w7 Z - (setq dialog-state (start_dialog))
* G# t# I1 }& ?. y% A/ b - (if (= dialog-state 0)
6 O6 u, o( m+ T% b3 S0 z - (reset)
2 I+ l: ~* s1 B. l3 B3 |. V - )9 j# V) _, ~3 ? J; |3 k/ x) m
- (if (= dialog-state 1)$ s$ w, M T) k
- (modify_solid)! }( a- I+ T4 o: r" R, ]/ c+ z8 Q" u
- )% A: ?: [8 q9 p7 A
- (if (= dialog-state 3)
( L% |! d0 `6 P# J - (progn1 ?9 L% H% M# b$ P6 s! Z0 u/ M7 O
- (modify_solid)& c6 x! @# p8 ~; q; p* x* D9 o+ T, B
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))
: h/ p x$ c: q& U7 T6 S - (ver_pt1 1)
8 d3 I# m% m( {' a+ k1 w$ W - (ddsolid)& I* C9 E6 W0 J) a1 K
- )
8 C& z! M! B# P) _7 }: G) O7 V - )
4 F( d4 b z8 t - (if (= dialog-state 4)
Q8 @' P6 b4 P3 }! L - (progn! J& ~8 v) O# z. U+ I6 U" E" o5 Y
- (modify_solid)
. O" v5 W5 d8 K - (entmod elist)
; ]) B- I* k" P0 f" ~3 q' V; v - (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
6 V8 G5 ]8 Y. d; w+ g0 I# S& w - (ver_pt2 1)
2 I! B) T( s/ m' E, z' A* y/ r. c q - (ddsolid)0 m0 D9 [( H; [% [# l) Q" Y
- ); `3 u; Q& p1 ~
- )
' V( g! R3 e1 f C - (if (= dialog-state 5)' G- P5 j. w8 z h1 ]
- (progn
5 L7 L! G; E0 x# x: Q! | - (modify_solid)
( I) p. u. c7 n - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: ")); M7 _) [9 I+ r7 x4 D
- (ver_pt3 1); P: U: v; Q4 ~4 v4 q
- (ddsolid)
6 p: e& V$ s# M+ R2 J - )( L k7 |% f$ |$ u
- )( x: d* `3 M; O' I) q9 u
- (if (= dialog-state 6)" X/ X- k5 E4 {7 U3 M: a
- (progn) c: w/ V& r- ~: j, m0 C
- (modify_solid)' x, `% U7 M0 V# _3 D
- (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))% ]6 `4 ~( g4 f$ A2 e/ D
- (ver_pt4 1)) S- F! H( B& O5 {3 ^
- (ddsolid)
( c! H9 p: ?% Z* p( m4 P - )
/ O' n C7 S% ~7 I' q; U - )3 Z0 W5 V/ n% L# k
- )3 T5 R& s1 G. w* `: d7 p* c' {
- ;;
o7 N9 H/ @: m9 I( A1 _8 R - ;; Modify 3DFACE
8 e" J! @; H$ \: J; O8 F. e- a4 S - ;;
4 w* R3 v7 W# H( N! F( Y* d# j8 d - ;; Check visibility of edges
: b' e' S, k/ ^ s3 O0 T - ;;
( Q/ ~* H4 F3 J" s5 t - (defun edgetest (/ bit1 bit2 bit3 bit4)
/ p$ E( u! S- B. S# P7 F% H - (if (= edge1 "1") (setq bit1 0) (setq bit1 1))# M( E2 E" m9 e7 \. v% |" f* K
- (if (= edge2 "1") (setq bit2 0) (setq bit2 2))& I" e- r2 m! W
- (if (= edge3 "1") (setq bit3 0) (setq bit3 4))
: ?, _/ d( a) h9 Q, ?+ C! a. k* K - (if (= edge4 "1") (setq bit4 0) (setq bit4 8))
- W$ j% Y7 `- y2 c! A$ ] - (+ bit1 bit2 bit3 bit4)% v( z5 ]0 Y' ^8 u
- )4 n/ m; l# F7 I9 c* V
& w! q* e$ L* k- x* w/ J9 z- (defun modify_3dface ()( f0 k; G* `* ]/ w; O
- (modify_properties)- T/ K; S7 ?; p2 T) n$ R4 `
- (setq pt1 (list x1 y1 z1))
7 Z8 f* v3 C) X1 V6 ~" V" D7 @, E - (setq pt2 (list x2 y2 z2))
2 d' @2 b; V( E, L2 `8 u - (setq pt3 (list x3 y3 z3))
6 Z5 ~; j; c/ [) L+ z - (setq pt4 (list x4 y4 z4))% ~: m( d. E' _
- (tempmod pt1 10 0)
, T5 V' ^. q4 u2 H: u - (tempmod pt2 11 0)
3 }) c; f& m) h8 A! \ - (tempmod pt3 12 0)7 p5 w" `. Z' s+ r9 s8 ~
- (tempmod pt4 13 0)
8 N) F5 N; ~% p - (tempmod (edgetest) 70 nil)
' p$ h' k% {0 _& {0 I - (entmod elist)
% I8 l$ _4 h$ l1 q- b: f - )
9 P) X. V- M8 z; J1 z" Z - " n6 a: D4 U1 y4 w
- (defun dd3dface ()
& h0 a8 ^9 y8 ?' `1 N) m - (if (not (new_dialog "dd3dface" dcl_id)) (exit))( P) D* d4 _( ^
- (set_tile_props)
$ i- ~1 H/ ?- q5 G5 {* ^4 K4 C - (set_tile_handle)
7 k' z% E# r. ?6 K! G0 [ - (set_tile_pt1 0)' }# M+ |! n0 u5 _
- (set_tile_pt2 0)' _3 J/ i: u0 Q1 k( y d
- (set_tile_pt3 0)% L. P7 X0 ~! Y, f
- (set_tile_pt4 0); ^; v' @& n* O* @' c" t$ P
- (set_tile_edges)7 A/ b- a2 }5 M( S& |5 c
- ;; Define action for tiles8 j9 J* I5 G( T
- (set_action_tiles)
3 w/ w3 n9 @( A0 r0 k% I - (setq dialog-state (start_dialog))' t+ e/ m# Q! Z: F* ~
- (if (= dialog-state 0)
8 ? n U( z3 X. c8 P - (reset)2 M8 ^" O% y8 j8 C* y3 r9 B) J
- )
- V- K2 d# Z7 b8 [9 g8 S% N - (if (= dialog-state 1)
/ S' o! ]( } I" f3 s9 O4 m - (modify_3dface)/ d! h; b/ ~- P1 n8 ^9 }7 A% ~
- )2 _" R5 z, W+ V) i
- (if (= dialog-state 3)
1 D. _2 {0 e/ m4 |8 f4 U - (progn
" R/ K4 ^5 z" c - (modify_3dface) T1 l j) n( C' n4 R7 L
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))' u; T0 B& p) Z
- (ver_pt1 0)
- S! y; G( {, [1 c2 t$ ] - (dd3dface)& B2 g, I2 M4 g/ d, ^) a
- )2 G$ {' j; g- z0 W2 ]/ }2 k2 ]0 T. r
- )
: @: y5 n5 i& u, e4 I3 w+ S - (if (= dialog-state 4)
! c% ?& F( R6 o0 C - (progn1 _8 ~% k/ Z4 E( N0 N( \3 @7 @
- (modify_3dface)
7 \" m0 D8 a* d" H - (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: ")), D0 r1 w' k' b$ w& H
- (ver_pt2 0)- b. G* r# G! m1 D
- (dd3dface)
, }1 K2 C X7 P Y4 \. p - )
& \' Y0 N7 J, B) g - )0 \6 A- v& D4 [+ M& r) ]# i9 u# e
- (if (= dialog-state 5)
3 l) S) X2 m7 ?# f! i) ] - (progn
! b6 d- V: Z0 ~! |' J - (modify_3dface)
i3 e9 O2 y) b! b" U" J2 @0 k: J( v - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))
2 g2 W$ [9 x9 r+ p - (ver_pt3 0)
+ o$ u0 U" m, s0 y- J- i# M7 ]$ ~4 ^( e - (dd3dface)
8 Z! \% ]5 a7 p# ~/ P2 M6 G4 Y - )" O- j% d; n' D+ v$ ]4 j1 V
- )4 F e9 g$ S! ~- g$ }: R/ ~
- (if (= dialog-state 6)7 Z8 Y8 |1 N+ _0 H' p
- (progn1 f+ o. k1 N6 Y6 |9 m
- (modify_3dface) `( s; j0 |: q4 m7 x
- (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: ")); U" Q4 ?2 d9 t! J0 O- B: s
- (ver_pt4 0)
5 M# R. P& c. {* S0 g. K - (dd3dface)
' S2 B) @- \- s* ] - )
2 n$ w% n: k: o2 `% x$ A' f I - )
6 d, i& x1 I& {: W- J2 Q - )) f7 F' @: `5 C
" b& A; I2 M9 _& C9 g% F- ;;
* {9 P- x, h* v* G$ [2 c. N+ x: c% U - ;; Image functions
* a* y! N( r: P - ;;* E5 P. L6 A D3 D& Q
- (defun image_scale (/ upixel en n userscale temp)8 d. N, @5 U9 O4 K9 ? b
- ;; Calculate the size of an image pixel in AutoCAD units
; x9 h1 ]/ `8 e5 i l; S$ W - (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))
" t" D# }+ m d9 r' E2 U' G
* C i( A: V- {; Q% `0 B4 [ C8 c- ;; Retrieve the user scale
$ ~' X5 _' h: l9 P, o* g* o - (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))
! D4 g8 Y% r; q- X. J: } - 0 E' ~- @ z+ I4 l- K
- ;; Next, extract the image units and pixel resolution
. U- ^% y4 @2 t1 S( x% b f( k- w3 F) | - (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))
8 H5 h( o( q. z; j% ` - (setq image:scale (* (cadr (assoc 13 elist)) upixel)), D j( J. A9 S
- (progn5 m+ o" k! Z! `' O- u6 w: B
- ;; Convert the user scale to the proper word& |& K4 J: E3 b, U2 J$ h/ B
- (setq n (cdr (assoc 72 en)))
( Y/ i( I* D* {8 K8 R" P- S4 x9 J - (setq temp (getvar "LUNITS"))
9 z5 u/ I8 ~; Q. T- [ - (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5)), s) ~+ O) W4 Y5 h- { f: E
- (if (= n 1) (setq userscale "Millimeter"))
& X& K- @0 i) F6 ^ - (if (= n 2) (setq userscale "Centimeter"))
) P" B, z; }) e2 z - (if (= n 3) (setq userscale "Meter"))/ n& V1 f: \# r) P
- (if (= n 4) (setq userscale "Kilometer")); B; g& d5 A; |
- (if (= n 5) (setq userscale "Inch")), {( }# _ s8 ?& `
- (if (= n 6) (setq userscale "Foot"))
4 B1 p4 Q/ k' f/ I - (if (= n 7) (setq userscale "Yard"))
- g& ]8 ?& }& [% H# V; K - (if (= n 8) (setq userscale "Mile"))6 _' F5 n5 Y/ O; z9 H2 O8 ?1 C
- (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))7 G3 H1 |0 [: Q% y8 e4 B
- )
$ |6 R& a6 p6 I& B0 Y - )4 B* o# s- k* R
- )
% B6 T/ d2 ^. ?; ^
% I; s0 P, Q! B6 f6 F5 T) l- ;;& ]/ G$ |# h! \8 P& m
- ;; Scale factors for block insertions
1 |( a% J3 e+ {' k! w- r# ?0 J4 \ - ;;* E5 T; L4 }: J0 x2 V
- (defun image_set_tile_scale (/ temp)
7 |& V3 \+ b- l$ Z& c - (setq temp (getvar "LUNITS"))* ~+ w, D$ K- O" }7 q# c1 C, p
- (setvar "LUNITS" 2)7 v$ ]. |( O S$ @2 C2 e
- (set_tile "xscale" (ai_rtos (* image:scale image:mult)))
- `# z% E3 D" n9 h+ Y7 \3 z' C - (set_tile "wid" (ai_rtos (* image:width image:mult)))! Y+ a# l. c7 |1 g
- (set_tile "hght" (ai_rtos (* image:height image:mult)))
' M- A: z) @. P - (setvar "LUNITS" temp)
- ?' m3 w% y5 H$ `2 ^. N5 j - )
; h5 h+ m, C+ \* s& o - * T+ W6 {) A0 w1 L
- ;;
7 w, o7 m5 Z* e1 [9 U - ;; Set the scale, width and height values appropriately.
' P3 h b% J; q( [ - ;;
+ J k0 r/ O: v: p* N( t - (defun image_update (field value / orig_value new_value mult)5 }' X# f2 j0 J |' S" G* [
- (if (= field "xscale")
$ d$ ~" _) i! R; E5 @ - (setq orig_value image:scale)" p5 f- G r. q2 f8 G- H
- )/ w2 {0 j" j4 q) A3 c
- (if (= field "wid")5 N5 ]! ~4 |1 _& H* q
- (setq orig_value image:width)6 u$ `/ y: u+ v& Y
- )
/ [( D# X* i3 {0 l - (if (= field "hght")6 f u- {3 w, V/ R5 u; v/ i
- (setq orig_value image:height)
( U, F- R9 |+ u: V$ v+ W9 S$ b- f( p - )7 u' t. Q/ V" P! Z6 X1 ^
- (setq new_value (verify_d field value (* image:mult orig_value)))
/ a, _$ V; G" q - (if (/= new_value old_value); u: q6 [- }+ l* `. M v
- ;; Make sure the user has entered a sufficiently large value" K, O6 I' Q( q1 z' E
- (if new_value" r+ ?3 ]% N2 f5 w5 O3 i
- (progn; h6 ^ ^. c8 P y$ ~. J) m0 Y
- (if (< new_value 1e-8); H8 x" J2 T- g" Q
- (setq mult image:mult)
2 X6 O) q5 ^. s' S - (setq mult (/ new_value orig_value))# P2 S2 E8 O( J8 C+ p
- )
/ M W- n: m$ m2 @4 K3 y - (setq image:mult mult)* p* \$ ~5 o S* b0 X- v
- (image_set_tile_scale)% f1 M9 Z D0 r. r% W
- )" G k/ F& s# `% g5 W
- ). a9 U( o5 f `
- )
% _' }6 P$ N4 \+ ?! q2 j - )" [$ u, b- n& g
- : d* u& E" s7 M. X$ E H1 Y
- (defun image_disp_opt (bit)
; m' N6 @/ Y& d# _9 }: _& k6 z - (setq image:options (Boole 6 image:options bit))
1 h2 n- ~: u7 w7 t4 q - )/ b" S4 }, p! \% H
. x. r# }+ {2 q- (defun image_modify ()' B N* p9 |" s2 ]
- (modify_properties)
& R x6 T1 ]: B/ ^8 d2 W1 f! r) S - (setq pt1 (list x1 y1 z1))& ` d. n* @3 _2 a" x7 t
- (tempmod pt1 10 0)
, N$ N5 V5 P+ p+ x8 O+ v* Q! r - (entmod elist)
# n0 X+ F7 \6 k2 U7 e1 k" L' f6 q) \$ @ - )
3 v1 t+ q* j. U6 }; [ - + Q$ P$ t9 N0 ]) V F" V
- (defun image_clean_variables ()
, V- h) P" [; h5 f6 t. F8 ]: S [ - ;; Clean up global variables used here
" a, h. G" @5 R+ d5 ] - (setq image:scale nil)5 [, n$ P0 W% y+ ~. K# {; d4 V
- (setq image:angle nil); g G$ Y; |& o: ^" b9 q
- (setq image:width nil)
: D1 M, u- F' b9 j4 k1 D# b - (setq image:height nil)! L" m0 B7 |$ ~) ], z; O$ h
- (setq image:options nil)
# n$ i( J l* h D/ g& Q - (setq image:oname nil) t9 x4 {( N* w* }
- (setq image:olist nil)
% k6 ^' a8 K+ B - (setq image:mult nil)* T' I8 i& J% F$ q0 i
- (setq st_ang nil)) P6 p/ |7 D/ \; Y
- )
! @; P1 ~5 O3 n/ C+ h8 Z - ! D- p' r W* ^+ f) f0 c) ^$ ?
- (defun image_scale_vector (v1 value)5 _( J$ b. y$ p) r J" R
- (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))
6 w# R' M, u, u! U+ d - )
6 }/ \2 S( B n+ p
) o) L. O5 G. P2 n- (defun image_cross_product (v1 v2 / vx vy vz)
+ I. B3 i" B" @2 F$ N; i - (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))
7 Q! D# K& K5 z - (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))
! M. I1 t1 I$ c+ l* g& o - (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))
! M$ K/ R m$ A, c* l) b- k" l - (list vx vy vz)
3 K: K7 v% M3 x/ H6 e - )
9 O/ I, s* `& U1 y. i1 K
5 l. Y. F* P( y* B- (defun image_dot_product (v1 v2)
1 Q6 j$ W3 J! o/ h. ^, k/ L+ u0 M% r - (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2)))/ I% S- Q( x7 C
- )
7 o! e% Z0 R* S# n' _& D - ! h2 e5 r) j, C5 F
- (defun image_add_vector (v1 v2)# ]1 r: q2 V% l
- (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))
6 n0 ?/ N8 I/ h* ]2 O+ C - )
' S. Y& F: Y; h* V; O( w
# Q, |/ m; N, L6 W0 _' Q( w- (defun image_subtract_vector (v1 v2)/ o$ E% O' r4 c* B! X; T
- (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2)))
/ Q4 i% l% M" W0 C - )
( P2 F ~) a- Z; A' B% J8 a - / M9 n6 \8 D- y) S; }
- (defun image_normalize_vector (v1)
! R3 }1 h& r5 U# N: L; z - (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))
* R4 Y$ V& J7 r9 h - )5 c, P+ m- {# k! @# F# A3 ?
- 4 j; _1 Z2 s A
- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)
2 e+ j6 m; \0 Y4 d9 X - ;; Normalize the axis0 U0 @3 w; o, Q! R% O) A9 f2 S0 }
- (setq axis (image_normalize_vector axis))# u- o+ ^) v- X2 Z
- (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))
) v K2 K0 b! P/ v7 k: L* |* m - (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))) _3 }1 U6 V9 `6 O5 z7 s
- (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane))
( k: @. u7 \: L3 v - (setq in_rot_plane
9 m: x! Y( `1 Z' ^% L% [9 \: ]# P - (image_add_vector
4 K8 v9 ?$ u; U0 T8 Z' s; o% b - (image_scale_vector axis_x_in_rot_plane (cos angle))' u f9 v+ X& m4 u' |
- (image_scale_vector axis_y_in_rot_plane (sin angle)): x. i% }+ O0 j7 k1 [. q
- )& o' w2 B% I+ @0 f. _; m- u
- )2 \6 n% K# ]$ h$ P
- (image_add_vector along_axis in_rot_plane)6 B' H% c6 |& H- o, X5 s' u" H5 B
- )8 @( i; i7 B8 c5 r( R
- ( L$ v8 S$ `" o' k2 Z
- ;;4 S. i! F, I& y; y5 v/ N6 K
- ;; Calculate current rotation angle if appropriate.: Z: j% f1 a2 K' M4 ~
- ;; If not, grey out the rotation field.
2 w9 @! c; n! }3 z3 R4 m - ;;
/ L7 I0 ~) }7 m0 } - (defun image_rotation (/ normal rlength zlength sqrt_tolerance)
) @2 Q4 g- S0 E) k9 c - ;; Determine if image normal is codirectional with3 L$ F$ R; { V' m
- ;; the current UCS Z-vector.
7 j4 s% ?& N( x# x - ;;
5 G* p! X5 C2 u& n; m% q - (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))
0 o; c0 s9 }! `# _# o - (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))5 s8 O- c0 H' p
- (setq zlength (* (last normal) (last normal)))7 f- ?0 I$ E& E5 n, B6 c
- ;; Note that the value .0001 in the radians is approximately 0.0057 degrees.
: L o4 L- A) h - ;;2 W A6 c$ j1 e( M
- ;; cos(.0001)^2) X! _8 k O: {+ q
- ;; Tolerance = --------------7 A+ H, k4 B' J# B
- ;; sin(.0001)^2
* ?% t, D8 \) v1 e1 Y! U3 ], w5 j: V - ;;2 d" z! Q+ F1 R' [
- (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001))); `* E7 w8 i$ p, D: M6 r
- (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))4 D0 s: C5 g! B& G1 u
- (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))
) m0 D1 b& _8 D - (progn
& t0 l) ~; P# B' S/ Z - (mode_tile "st_ang" 1)
! @) a4 A; [) B. p. i3 _( Q! o - (setq image:angle 0)+ {3 K c4 P# X5 u8 B3 b
- )
1 N% L& G9 }* G, R - )
" \/ @0 c6 k' I9 Y - )7 O% G1 u8 R3 ], |) O2 F& N
- . x- m$ W+ K& w! D U: G( ` R
- ;;7 y- ~6 |0 z2 U0 C2 w: E4 o/ p) H
- ;; Modify Image
- w, Z, E5 z& }+ l4 p7 J# n6 K - ;;: C; b0 R; O+ F- a
- (defun modify_image (/ u_vector v_vector z_vector)
; R- c3 i- R( T1 K& o - (modify_properties)* t7 Y8 A3 Q( k
- (setq pt1 (list x1 y1 z1))
* K! w; S" R1 x! o3 ]- _& V" q% F - (tempmod pt1 10 0) D% a. m& u9 D, Y/ ^ r
- ;; Make display option changes to image
: H4 y: u4 }1 O" }! s2 N - (emod image:options 70)
5 A- S# ]) S, V1 J - ;; Get the u and v vectors
7 i8 ^& R5 z, T) O, S0 L6 I - (setq u_vector (cdr (assoc 11 elist)))
! r! r# C* {( O - (setq v_vector (cdr (assoc 12 elist)))9 _/ y3 g+ C: x. [% J
- + U3 A# m% q6 q! q- z
- ;; Make scale changes to the vectors
! Y5 |8 K0 \ |: ^- _: d+ H; n - (if (/= image:mult 1)
. R9 l$ i9 b( g! i8 d5 } - (progn: k! b8 J, l: @1 Z
- (setq u_vector (image_scale_vector u_vector image:mult))
9 ]4 _0 t' V1 M. p) P - (setq v_vector (image_scale_vector v_vector image:mult))
; I( m' z5 T2 X1 K+ Z3 n" \# @ - )
6 z& y. i9 Q0 E- w, B$ g1 w; b - )
( U, G6 [+ w: \1 m$ q( u - ;; Rotate the vectors
0 `. x) _5 \, s) k! M - (setq st_ang (- st_ang image:angle))% ~! }* f) C% R8 Y
- (if (/= st_ang 0)
8 b, e3 ~/ y( v V# _ - (progn* m" \. m3 S2 u) X; q5 Y1 U
- (setq z_vector( {( K- D5 |$ U6 R9 U
- (image_cross_product4 r0 y. u6 }6 U9 V$ o& o- T" |
- (image_normalize_vector u_vector)
" Q! `0 ]/ o" }% m0 G Z/ T - (image_normalize_vector v_vector)
0 J, w: R8 b }- c s - )
7 g% o3 B1 D+ w1 i, C V( i - )
) _0 C3 j; j7 x: k/ T6 t - (setq u_vector (image_rotate_vector u_vector st_ang z_vector))
, m/ y R, `8 j. G( H$ a - (setq v_vector (image_rotate_vector v_vector st_ang z_vector))1 y0 v- g9 A0 C* T5 ]# I
- )
/ W+ D* i, _$ F1 c8 p! `6 E - )( G9 g8 G X1 Q/ I- x% z D
- (emod u_vector 11) V/ `% B; L+ Z3 A/ z% ^6 d
- (emod v_vector 12)
/ X( R1 S0 v1 i5 K6 s - (entmod elist)
8 T! e2 Z+ ?( g8 h$ A - )
! A. j) I$ E- Q m: X' {
$ f8 x4 D6 [2 K! H- ;;: I8 y9 ~, y; w$ A
- ;; Run imageadjust on given entity, working around possible
9 t+ X5 U% e4 D* X8 L( ]7 K - ;; re-entrancy problems
# T7 y1 A$ o, T+ b+ p/ c( M+ @ - ;;2 F6 r8 ]1 H& U0 V! a+ ]6 U
- (defun image_adjust (ename); d( u5 I. U* T/ k) M. Y; g+ `
- (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...6 {: J& N3 h# a5 l5 V/ Z, e
- (imageadjust ename)7 N3 N! x$ U0 H1 C* @3 D2 S
- )3 F; u5 M+ T( @
- ) i8 s' ]1 b& r1 W. ?- C
- (defun ddimage ()9 v, @9 O! n8 H
- (if (not (new_dialog "ddimage" dcl_id)) (exit))
; Z. x- d" X* W' V
t; M' M$ ~2 o. a. Z# M# r- ;; Grey out the thickness field.
( l/ _! F+ c: g# `, l) N) d - (mode_tile "b_thickness" 1)
2 Q. M; h0 R& B2 p2 {) V& j9 j; p& [ - (mode_tile "eb_thickness" 1)
1 z; l" T. M B
. m* n0 E) c" w# z: i8 O# x! C- ;; Get the associated def object.
& z+ w- m/ j4 x/ Z: a+ A - (setq image:oname (cdr (assoc 340 elist)))
/ R) y0 q; A) i - (setq image:olist (entget image:oname))$ G- e+ T. n! u5 b; V2 @8 H; c1 E- c5 K
- H/ p& x' `" P a; o p; o: U- ;; Set initial tile values7 D2 R+ f* a8 u
- (set_tile_props)
; V' e% _- O2 @ - (set_tile_handle)
; v _4 l$ ]* ?7 y: T7 B) l! @4 @ - (set_tile_pt1 0)0 U8 ?, D& o/ ~' j+ `
- (setq image:scale (image_scale))
" Z1 Q0 n6 V2 v# X x- r" H - (setq st_ang (image_rotation))$ O+ h1 w |( Z
- (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))
" ~7 K5 g2 A9 B/ `* }. E. M - (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))
1 o2 p d- g- M" g7 ` - (setq image:options (cdr (assoc 70 elist)))
) G6 a9 {; V2 h0 _; x& p; \: F
6 M7 X- `* t/ k1 [5 e7 Y( |- ;; Record the last multiplier for use in image_update function
- V" [4 J" d9 [( ^4 o( e - (setq image:mult 1)
5 B5 L* m4 \4 b2 z - : w7 G' V3 {7 y: U
- ;; Retrieve the image name, F9 M, Q( O$ J6 K4 N
- (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))+ K+ P! T+ u, J3 Q& \( \
- (setq flag 0)
7 L; e" W8 G: s8 D - (foreach n fn
7 g$ d0 L$ f O2 c* J6 A2 ] - (if (= flag 1)" U9 Q5 ]0 [2 S% I
- (progn0 _7 J1 c/ \5 g. X/ D
- ;; Display the image name1 r! {, z7 `' R Q! [: g( J
- (set_tile "image_name" (cdr n))
2 I( K) K# ?0 ?' J/ F5 a - (setq flag 2)3 U/ I( T7 h5 K' ]4 v! z" D
- )
* }$ C6 o- H, e+ r* q! q+ E, d - )
5 C( [+ H- Z! X0 ^5 m' t. B5 K0 h8 s* M- U - (if (= flag 0); S$ s5 ]! x! r2 C1 u* ^. I) f# ~ o
- (if (equal (cdr n) image:oname) (setq flag 1))* @) {: w$ B7 F O' Q
- )
) c6 _+ d R" g% f# \% g+ `, [ - ); x; v1 |) E' S& p# r0 W0 n& n
4 H9 t, n0 Y# U4 f; ^- (set_tile "image_path" (cdr (assoc 1 image:olist)))" w6 U& N' O9 s5 N4 `1 N0 x' q8 b$ o
- (set_tile "st_ang" (ai_angtos image:angle))
" m' G5 W! L; v2 o - (image_set_tile_scale)
+ i" Y- [4 {9 n1 N' Z$ i5 c% e
/ G @8 z. _, _- ;; Check the appropriate boxes! c0 u) F' Z$ b) _9 a
- (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))
: M- p* O+ ~; c& r, W F - (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1"))/ {: r/ g0 ` H& |
- (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))
8 I5 |9 S" r# V% V- Z6 z - (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))
; y% h1 w* V( d: A - $ x4 y) q y3 o
- ;; Define action for tiles
. V5 p/ q7 ?; m7 K9 W2 a7 ?7 l - (set_action_tiles): ?+ e: n2 ?3 @! c. G7 o6 V/ N
- (action_tile "xscale" "(image_update \"xscale\" $value)")
; H' G6 W# l# i* a6 R/ ^) X" r - (action_tile "st_ang" "(ver_ang1 $value)")
2 \9 J! i5 b* v) y5 s! | - (action_tile "wid" "(image_update \"wid\" $value)")
- |7 Y; }2 m- z8 m; b4 G, X% C- Z - (action_tile "hght" "(image_update \"hght\" $value)")) T, X3 d* d$ t5 w6 u) v
- (action_tile "image_show" "(image_disp_opt 1)")( ]2 j+ ]0 R: U r; @1 m% Q) t" T
- (action_tile "image_non_ortho" "(image_disp_opt 2)")
0 x: \# C3 t. P8 @ - (action_tile "image_clipped" "(image_disp_opt 4)")2 y$ l4 L/ w4 Y2 m# c0 Z1 c5 e" g
- (action_tile "image_transparency" "(image_disp_opt 8)")
! e$ ^6 C( E6 M" Z! |! C - (action_tile "image_adjust" "(done_dialog 4)")
1 n+ f5 [1 q! |* U+ d
: I* q) B$ O& k: I) j- (setq dialog-state (start_dialog))) T9 q S" e ~& C( X; |7 t# K
- (if (= dialog-state 0): F1 n$ R4 t7 h
- (progn
% g, U- i9 W% s( |) A& n - (reset): j0 w( u- z& ]* ~) k( E8 _% w: b3 h
- (image_clean_variables)* N' k$ b) i$ g. H( e
- )
6 b$ g0 ]4 X9 c0 b+ W, V6 z% { - )
9 x5 R- R. O/ T* @2 |% g: ~8 ^ - (if (= dialog-state 1)
) V2 I# O+ R$ S( M' x - (progn) r3 ?4 Z/ B9 u/ Q
- (modify_image)
: D3 H; N2 Y& U/ a) I7 [& T - (image_clean_variables)
7 s6 n7 C0 }" a0 R" w0 k - )
/ C, U- }/ b8 e6 p - )
7 H! e/ |3 N7 ?7 t N. Q& t$ _+ W: b- B - (if (= dialog-state 3)/ X: R+ ^6 S0 ?- B# ?7 a
- (progn8 U3 u0 o* C8 G2 h
- (modify_image)
6 [4 k/ v4 C1 H# z, j0 y! j - (image_clean_variables)
5 H! p; b4 F( z" B, K( Z - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
9 ~9 }; _: V$ i" \9 B* J, s/ W, f - (ver_pt1 0) f) I9 U# K/ X$ W0 [9 p0 w
- (ddimage)
$ T" ?+ j. Y% A; T5 S - )
; ~3 k% X& s/ w, g, h& B( F( k - )0 C* g' O5 g5 b p- n
- (if (= dialog-state 4)
- O0 Z I/ x. M0 Z - (progn. I+ P1 r9 a3 O- D* {
- (modify_image)6 d0 V3 F0 @* H; W* w% x% Z
- (image_adjust ename)+ b. M5 f/ x0 p
- (setq elist (entget ename)) ^( ?* p1 t3 z5 g0 E! I' z
- (ddimage)5 x& `3 f$ [/ f
- )
) C8 `* ^$ z7 p( e - )
+ P1 f1 X( S" J/ m* I8 Y3 j - )) L! R( d2 a1 E$ M
- / I- s* y' d. f3 K7 Z
- ;;* [7 m5 m# J* t" V% P5 b
- ;; Modify BLOCK (and its Attributes, if any), \0 F- h8 O1 V; q
- ;;5 ?3 I) P; O' t8 {3 ^4 Y
- (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr
3 |2 l9 ]$ i7 Z$ |7 u6 C - new_wid old_wid old_rot scaling old_scale
5 p. S6 y+ |. W, C( e1 c& } - xdelta ydelta zdelta xbase ybase zbase ipos)
; U& k$ y2 a1 m( L; u% {% q" q - (modify_properties)
& V/ c% u3 r" S& j7 S
- E& ?9 H2 v. J" b% g- ;; First, translate and scale the Attributes, if there are any.
5 `, w _' M3 n9 |3 E# Q - (setq old_rot (cdr (assoc 50 elist))
; u* [ ?% Y7 F/ g) x& Q! w2 o/ U - old_scale (list (cdr (assoc 41 elist))
' d! [3 H3 k) J8 d - (cdr (assoc 42 elist))+ d# ~6 p& Y$ B& |5 J
- (cdr (assoc 43 elist))
( Q1 Z0 w2 D2 U9 I% F0 @7 Z& { - )4 w' r2 e* K& F8 t; x3 Z+ P
- scaling (or (/= xscale (car old_scale))/ a0 o/ c0 _( |( [- U) y$ z
- (/= yscale (cadr old_scale))
2 |: B" Z& J2 U# V - (/= zscale (caddr old_scale))
! d1 ?, E4 |' e/ e% J3 Z - )
* m. T% {- D& x7 a3 f - attr nil ; No Attributes modified yet
' w: a+ v. Y( y; t( p8 R - )7 G0 Q2 `) m# \" L# g
- (if scaling
. X$ W& a O8 T" o1 b' U - (progn' }7 B3 E" w# f2 R1 T5 J+ }
- (setq xdelta (/ xscale (car old_scale)) K/ \: Q, c- e$ O- _
- ydelta (/ yscale (cadr old_scale))
, ]9 g4 @/ _* _8 d - zdelta (/ zscale (caddr old_scale))9 j" e) O3 J; [0 j) m
- ipos (cdr (assoc 10 elist))
( {$ _" o- P3 p - xbase (car ipos)
, u+ x2 u6 H" u9 q) m - ybase (cadr ipos)4 b4 U2 f# M* f% q7 U9 e C, L5 L
- zbase (caddr ipos)/ g8 L' F2 m+ m7 P
- en2 (entnext ename) ; First Attribute
9 x9 T5 k' |4 |0 F - )
# X1 N ~1 s% ] ?/ y4 F. w
( g/ T% m. I$ [ C* f+ W! R- ; If the Block is rotated, temporarily un-rotate it, along" l: D/ d! f8 Q4 L& j% S
- ; with all its Attributes, so the scaling/translation of the
% h7 H1 M' N: e7 d7 C( v - ; Attributes won't have to take the Block rotation into account.
- K; i j8 D/ o \) q/ } - (if (/= old_rot 0.0)
3 M; f/ H1 Z5 Q, y4 C - (progn' `% `9 s' |( y5 _
- (command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))
s2 ^$ g# K- o8 H" k - (setq old_rot 0.0% w4 x) o1 O& L. x5 {2 {! u2 `
- elist (subst (cons 50 0.0) (assoc 50 elist) elist)" t, G* O. ^: z% V5 e/ }8 f, [) s
- )7 l+ R$ j: k) b6 q4 j W
- )! q0 {( l( K3 F) P
- )9 S/ z3 t9 q9 }# L1 B
- & f; X6 F( N5 Q* n: Q
- (while en28 H' k# p2 e4 ~0 K( Y; |
- (setq el (entget en2))
5 \+ c& m" ?2 C8 N* D - (if (= (cdr (assoc 0 el)) "ATTRIB")( R( o. o1 X% f
- (progn" `6 d7 e+ u9 N D6 y9 \+ J
- (setq old_hgt (cdr (assoc 40 el)) ; Height
* D6 ~6 t/ q/ |3 \0 }6 c" O r* O - old_wid (cdr (assoc 41 el)) ; Width-factor
" s( A: ^& b; N7 O' g - oldp1 (cdr (assoc 10 el)) ; Generation start point
9 d9 U! v* [0 I( Y$ V; D - oldp2 (cdr (assoc 11 el)) ; Optional alignment pt, p6 g' |" F. v+ U+ q# z4 L' C
- ha (cdr (assoc 72 el)) ; Horizontal alignment+ q1 c+ q& c0 ~! @0 p& l* H
- va (cdr (assoc 74 el)) ; Vertical alignment
9 A! V* e! }- D: z6 c6 l - ! L" v& l/ q2 r; s* Q5 Z/ Y
- ; Translate gen. start point1 K/ E8 q$ f5 J# D3 r. b4 p
- p1 (list (+ xbase (* xdelta (- (car oldp1) xbase)))$ ?/ x* x. ?6 E0 @& p R: i
- (+ ybase (* ydelta (- (cadr oldp1) ybase)))* p8 r( n: t. m% m
- (+ zbase (* zdelta (- (caddr oldp1) zbase)))
. Y! D. R/ n+ E1 l* M - )
: p" R* z! n) U3 Z$ J - el (subst (cons 10 p1) (assoc 10 el) el)
) n2 _0 h/ O% m, Z0 a9 X - )7 o. C, W3 C# x4 R) J
- ( H+ U. z- C9 }4 j9 P, v ~
- ; Translate alignment pt similarly, if present and applicable
# e1 |; b! D/ H9 L+ D1 X - (if (and oldp2 (or (/= ha 0)6 ]0 J6 {. _# i& W/ ?
- (/= va 0)( w: j( ?9 Z/ f( O7 w
- )/ Q6 V+ e/ J9 ^1 g! X$ p- g4 F/ k
- )
2 i, b' k S, o& G/ c% e - (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))
' W) \& q2 C# B, o* s: x6 S - (+ ybase (* ydelta (- (cadr oldp2) ybase)))
?3 K4 N5 u- N7 X9 p - (+ zbase (* zdelta (- (caddr oldp2) zbase)))- V6 C/ h. i1 s; c' S3 }6 \
- )" b" x/ l5 x# S& {: R+ k$ q
- el (subst (cons 11 p2) (assoc 11 el) el)
( }0 ]* y4 C+ S6 I$ u - )% O$ F z! H( h( j& g
- )
$ Y5 E" b# k2 i4 ? - 1 A$ I$ a7 K( |$ J+ i5 ^( J
- ; Each Attribute's height and width-factor were computed
9 T! ]' z; N0 `' O. d - ; based on the Block's scale factors. Adjust them now,+ p& w7 i$ z7 J, f0 G& U
- ; by first reducing to values for 1x1 scale...
* ?) l" O" ]- J2 v6 H - (setq new_hgt (/ old_hgt (cadr old_scale))
$ @/ o& Q* w" X7 o& D" D - new_wid (/ old_wid (/ (car old_scale) (cadr old_scale)))+ G, l) ^, t3 y" x2 S7 L6 r
- )9 ]- W* m' h2 O% ` s0 I: m
- ; ...and then rescaling.0 J, o0 A, g2 \$ w
- (setq new_hgt (* new_hgt yscale)) p* ]) i7 p w2 [9 R% H
- new_wid (* new_wid (/ xscale yscale))
9 L$ w" s9 N: @4 X$ _5 X. } - )0 ?' ^( O! p ~* n/ s8 p
- (if (/= new_hgt old_hgt)
: R4 o5 i+ T; X. E) g' a - (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))) _7 d' @* \0 ^. A3 ?0 X" ?1 i
- )* a0 ?7 F) b8 W( V) B
- (if (/= new_wid old_wid)
" H T" l" F2 ^( j7 [8 O - (setq el (subst (cons 41 new_wid) (assoc 41 el) el))
; |1 o2 ]# q3 n) Q8 V! _# A" K - )
8 v1 V6 E: ]6 z$ f - (entmod el)
5 l" s3 S8 M0 W - (setq attr T ; At least one Attribute modified
' m5 {" T! B. M q, X - en2 (entnext en2) ; Next Attribute: h# u% {7 {4 p1 s# ]1 T G
- )0 @: S1 E. ]- B
- ): ~! y! f7 [7 ~) ^- L( `
- (setq en2 nil) ; No more attributes
8 g$ e0 m: G3 c. ^; s - ); |. C; T- G$ N( y7 c4 r' U! ^2 S
- )
9 @ x, }9 \* t# l/ D$ } e8 h - )
+ j7 a2 N' o4 b# Y( p8 f9 G4 N - )1 J% s0 q4 i, R" T7 b2 |$ p
- 9 W, a* \7 G( b
- (setq pt1 (list x1 y1 z1))7 l/ j0 W/ V$ Z6 n$ u
- (tempmod xscale 41 nil)
8 t- S& s* Q+ J" K& Y% }' w - (tempmod yscale 42 nil)2 N8 D! V. ~( s* n$ s' F
- (tempmod zscale 43 nil)2 ~+ y- n: A. B5 {# J& @4 e. ]
- (tempmod col-sp 44 nil)( K- }- U$ {) }2 l' k6 x( g
- (tempmod row-sp 45 nil)
' s2 {; ~$ y d8 D: z5 k - (tempmod columns 70 nil)
; B+ ` L! k- v* ^# K7 {+ V4 e - (tempmod rows 71 nil)% ^8 } v4 ^, f% O6 |
- (if (= xclipmode nil)8 Z) H+ J; m" Z2 n, c5 I
- (entmod elist)
+ ]/ C' ~4 x$ m+ d! `/ d: V - (setq xclipmode nil)
1 h3 U b3 M$ r' e - )6 w! A% n U- q' r8 K' l0 J; t
- (move_pt1 1): u( s8 y& d; `7 H& B
& @- u1 U" z" y4 M) m0 i' ^- ;; Now do the rotation with the ROTATE command.1 e3 @3 T- k, n$ ?* z& x. K
- (if (/= old_rot rot)' ^. K+ D) H) _/ A+ A
- (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))* |' H1 u% h. ~* O) A9 U4 P- J
- (if attr ; Else, if attributes were modified,
& W% ^# l! f# b* W2 P9 G - (entupd ename) ; just regen to force attrib display- ]# w& G4 Z- X: a& D* O9 V& C3 W9 \2 I
- )0 q' W7 J X7 T9 c- ~ F0 m
- )% ?3 B7 l6 p6 x7 [3 ^' k
- (setq elist (entget ename))
2 }) K8 @0 ~6 ^0 o) Y& U - )& M7 `' r t. J
- (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)
: z, ^- v. L3 [; E' _# D$ v4 k - (setq newhatch 0)" a6 R8 x* p- _% y
- (setq blkname (cdr (assoc 2 elist)))+ F9 }% X. o# F- w
- (setq blklist (tblsearch "block" blkname))
3 h0 x( @+ \1 G% D( }, j9 D$ q - (setq blktype (cdr (assoc 70 blklist))) e: X8 K5 u# N' u9 |9 u
- (setq xcliponoff 0)' W- p9 K, X: w
- (if (or (= blktype 0)(= blktype 36))0 R* W. ]6 U0 K' l! O2 D6 o7 U B
- (progn
* k* n r- c! O% Z! A - (setq xcliponoff (xclipon elist))
N; e Z8 o! b+ b - (setq temp_xclip xcliponoff)4 g9 W. `3 r) X7 u
- )+ W, ?& |- ]' c Q4 U0 q0 J& K' P
- )
8 E$ s0 c7 y$ v6 Y6 Z - (if (= (logand blktype 4) 4) A% d2 s }0 @( `% i* h6 G) k
- (progn3 o( C$ n8 B: i& L; F) U3 X! O
- (setq xrefpath (cdr (assoc 1 blklist)))
9 |3 h& l+ `( i - (setq help_entry "modify_External_Reference_dialog")
4 G4 N$ c; ]3 ?* P- v( [* h - (if (not (new_dialog "ddxref" dcl_id)) (exit))& {% v% Q# s7 v; E4 N
- (set_tile "Bl_name" blkname)
0 z8 z. y: T- p) Q - (set_tile "path" xrefpath)! L- \9 Q( ?( A3 Z/ r3 S
- )
2 I; \/ e$ \/ q - (progn$ Y& Y8 E# k0 {5 z
- ;; Get program name for use as Xdata app name5 e2 j3 Q% y( \: @) `- r3 X( C# E
- (if (not (setq program (getvar "program")))5 n1 \+ n) G) i7 C x8 A
- (setq program "acad")3 K N' X' l, U% r6 N8 v$ k
- ); ?" u% S; w& n& N) x
- (if (and (setq temp (assoc -3 (entget ename (list program))))
4 M5 t. d- X' M - (= (cdr (assoc 1000 (cdadr temp))) "HATCH")% f0 o& L: E5 J r' R0 t4 _
- (assoc 1005 (cdadr temp))
7 r$ x m( h, W- C5 l3 ]- M9 P - )
" n/ X0 t2 K+ ]& ?% I - (progn$ V, i/ l* R4 [6 P% a
- (setq newhatch 1)
* l$ N- p) K6 B - (setq help_entry "modify_Hatch_dialog")
$ r) P0 C. `( q: O3 D7 C0 D' O - ;;; convert the object into a new hatch
3 [( ?6 n, q, a9 l' N6 B: [ - (ai_undo_on) ;; enable undo
: u4 d, U+ G5 E1 R: }9 H - (COMMAND "_.UNDO" "_Mark")
$ d; ^) a/ n, f2 H2 | - (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")
5 M! _$ m1 N: M0 b, W - ;;; suppress nasty message from convert command" t& J* T' i8 A; s; E
- (princ "\r \r")
7 g- K- ^/ O; s# U3 g3 E - (setq elist (entget (setq ename (cdr (assoc -1 elist)))))+ [8 V7 f! n% r! Z* M+ v
- (setq old-elist elist)
: F" R- i$ W9 ~1 s - ;;; If we have cancelled ddmodify
4 ^. j: m. Q+ `. f. p8 P - (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok! A* s# L% I# b7 V H7 h* r
- (command "_.UNDO" "_Back")# V: C' ~/ `6 V/ Y
- )
7 P0 w7 P# V- X8 T, a2 u8 W" L) @& M - (ai_undo_off) ;; restore undo state
1 `4 K; `6 v4 {$ e! R - ), F) N" P+ J& w0 I* ?6 K/ d0 a! c
- (progn
6 x; q7 \! N g( U: D" A7 r - (if (not (new_dialog "ddblock" dcl_id)) (exit))% p# n4 l: Z5 f P5 P3 l `
- (if ( = "*" (substr blkname 1 1))& w2 F" g0 T' q& B
- (set_tile "Bl_name" (strcat blkname " - Anonymous block"))
) R9 E8 l. {% Q9 m - (set_tile "Bl_name" blkname)+ e, Y* ~. g, D6 I, P; g/ s
- ); t2 i9 ?* Y _6 }' \) M9 z# ~7 V: m' f
- (setq help_entry "modify_Block_Insertion_dialog"); b. }6 R/ K3 l! r
- )' y4 }9 [3 w* l: s) ~
- )( z' b J! l) j; z5 z
- )( w+ @- o5 `) q" Y
- )
" ` t! c2 \( d* ? - (if (= newhatch 0)$ c" M$ E. i# z' L) {2 C
- (progn8 r7 ^' U. T9 a* P7 s
- (set_tile_props)3 N# U- G9 @' n. ]: b2 T* n8 _& R; ?* M% I
- (set_tile_handle)
# M/ N% r4 N- `7 `: ^. | - (set_tile_pt1 1)
& A4 F* B+ l4 H0 C: A1 N - (set_tile_rot)5 ^( r2 R/ z* {1 d8 b4 e5 y1 U
- (set_tile_scale)
. q2 I" l: R {* E& ?/ h - (set_tile_rc)
0 T9 m6 x7 {5 ~& d( t6 k/ o - (if (= (logand blktype 1) 1) d$ i1 t: q* X+ l& Y y7 P
- (progn
- ]0 R. c& U9 W" G2 t3 } - (mode_tile "xscale" 1)
& T. a9 F$ G8 X1 \5 g - (mode_tile "yscale" 1)
" E2 m" p3 J, r' e5 J0 S9 H - (mode_tile "zscale" 1) a. b9 _. s) j
- (mode_tile "rot" 1)% S, O* ^" K$ N( c/ H8 [2 j6 Z
- (mode_tile "columns" 1). @1 i/ ?9 u4 `0 B- o. m$ N2 J
- (mode_tile "rows" 1)2 `4 D: C2 [. Z+ c4 h' N
- (mode_tile "col_sp" 1)
1 _1 |2 s7 e: w2 X - (mode_tile "row_sp" 1)$ o# G2 H! n8 R" \2 d& a3 F
- )" J2 Z [8 T% Q
- )
4 D( u7 Z! A5 o& l4 L) n% M - ;; Define action for tiles- [8 a% H* @* s# B) O
- (set_action_tiles)
+ V7 B6 t3 P6 \+ F$ m9 | - (setq dialog-state (start_dialog))( q5 z7 [9 P+ {" G( I! `2 K
- (cond# R- R' V$ d, f7 \" r8 ~
- ( (eq dialog-state 0)
% {& |$ f4 L0 D$ `- }1 e# w - (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1)): |- W7 H, Z0 c! x4 ?8 E# V
- (move_pt1 1)
6 N, I( m( n8 _* p' Q" q4 d. D M - (reset))1 ]. @% P( v; w9 t! R
- ( (eq dialog-state 1)4 F! k9 b" z$ o0 [( h! c$ i+ p+ K1 p
- (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36))) r* i5 w' p2 W5 w( L2 Y, j
- (xclip), R/ y$ G d$ Z" F5 H* Q1 ?
- )
/ M; M7 \0 P% g# _ - (modify_block))
6 U9 Q, c! i9 m - ( (eq dialog-state 3)
5 n/ R0 E5 s( D. k3 z - (modify_block): r# e3 L8 ?7 Y$ E. v. q2 h
- (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))5 w9 r) r9 T2 F/ r2 q! c
- (move_pt1 1)
; b9 `! r2 t+ ?/ p - (ddblock))$ m3 L. |! r" v0 l' p T, b
- ( (eq dialog-state 4)
8 h# t7 J- H% @: {' B7 u6 d - (modify_block)
; z# J B$ F5 y7 q - ;; Get current handle.$ D( ~5 D0 I7 i0 L8 U* k8 ^# H
- (setq hand (cdr (assoc 5 elist)))
* G+ H$ v( i7 x% ], E: c - (command "_hatchedit" ename)) e! A+ c( {( s4 D/ H; r
- ;; If OK in hatchedit, a *new* entity is created and the old one8 q: @0 u4 @! Q" o1 \
- ;; is deleted. So if the old one exists, it must have been a/ G- S4 }; N6 C
- ;; so rest the entity.# f5 z- N+ n8 V- \1 _ ]
- (if (entget (handent hand)) (reset))
+ d! i- q+ J- Z6 p$ U - ); K8 n) f$ w: ~5 t) _; Q
- )8 x0 k2 s1 L. j/ Z- ~" x
- )
/ t* p0 J X v2 n3 C8 O' a. w - )
8 S y, s/ {: t) J9 Z2 r1 S - )
+ M, \2 f4 R) K' n$ o+ S; @) p - ;;6 W4 Z; J; K0 ~5 D4 d; c# L
- ;; Modify SHAPE
* m6 {! N8 K& T3 x% s4 ~0 c - ;;" k# M3 U" d) T, [
- (defun modify_shape ()8 d, W9 y+ ?' J# C. Q$ E. [
- (modify_properties)
3 |2 c% T0 \$ F6 [( ` - (setq pt1 (list x1 y1 z1))" a! W$ [5 I; ^+ c
- (tempmod pt1 10 1)# T& [5 S6 B! d9 z( O
- (tempmod hght 40 nil)
2 n7 K ?- R" [) W& m: ^' O - (tempmod wid 41 nil)0 P5 r2 }- s9 k1 q3 W
- (tempmod rot 50 nil)" e3 N; G6 d/ M3 ^: P: F
- (tempmod obl 51 nil)
: N3 W0 e A+ Z2 h( j; g3 `# X0 o - (entmod elist)
6 O, h8 X4 o' n - )0 U9 F, ~6 l$ N; J4 l2 L! J
8 _0 H; L% @% t- (defun ddshape ()
# J5 e J8 H+ @) x$ ` - (if (not (new_dialog "ddshape" dcl_id)) (exit))0 H7 u5 e, c- b) X( P$ V/ w
- (set_tile_props)' _2 ^5 Q3 m! }3 r0 N) C/ O
- (set_tile_handle), K1 [3 W) A: ]
- (set_tile_pt1 1)
! c8 L, b9 h5 X! U! t/ t( n7 v6 V* @ - (set_tile_rot)
+ L- M% K4 U1 o1 p - (set_tile_hght)" u3 F! l y; J; z
- (set_tile_wid): Y8 Y/ t% |& ]
- (set_tile_obl)
9 j- s! T' A- _) \9 U - (set_tile "sh_name" (cdr (assoc 2 elist)))
* y1 R" ^: p: @7 Y3 \ - ;; Define action for tiles
; ~+ A- D" C& c; f - (set_action_tiles)1 e0 P1 k; k* r; r/ X( h2 g
- (setq dialog-state (start_dialog))
! q/ V- K% [8 ]: w% [ - (if (= dialog-state 0). `0 ]0 X; Q. W: o) x% S
- (reset)
8 a! @; }' h3 B+ K, ~ - )
) j n+ D/ _4 W6 D0 V - (if (= dialog-state 1), W+ i* }7 S3 } u0 H
- (modify_shape)
7 |4 U- O% n" x& d9 a. E; o% x& S$ \ - ) u {- V- z2 M5 t' K, b
- (if (= dialog-state 3)
! F1 e' d2 v4 u/ ]& s! T - (progn# _* V! M4 Y f9 u8 I& }7 @* j
- (modify_shape)5 y' V8 C4 }. m! N
- (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))$ k. {" V" t( p& K: V9 E3 U
- (ver_pt1 1)
* c5 L, W9 B3 B - (ddshape)8 m# n1 V5 p* d2 z2 j j# m1 K
- ), N3 @5 o% ?- {
- )
0 u0 \$ l' D$ [6 v/ B2 w2 Q* x - )
, V' S, y0 F! O0 r1 K - ;;
9 d% Q9 k$ x9 j+ d3 s; T9 Q8 F - ;; Modify TEXT or ATTDEF+ j9 e7 z/ ?8 Q- _" N
- ;;
7 J. E. C: s( g0 d) E% e - ;; Set bit code for upside-down and backwards setting
6 i3 F8 S2 ?9 y* G; R# Q! ~0 v - ;;+ y. q% J9 Y/ _. l ]4 J$ F6 i
- (defun code_71 ()) ~' s3 K1 m- t$ N
- (cond ((and (= bkwd "0") (= upsd "0")) 0)
; e) d7 p" A% S - ((and (= bkwd "1") (= upsd "0")) 2); E9 M* I1 L) p P4 F1 a
- ((and (= bkwd "0") (= upsd "1")) 4)9 w1 y2 [3 c. ?! U
- ((and (= bkwd "1") (= upsd "1")) 6)* g' |: U2 t8 [
- )9 ]/ `" V& k3 S6 A/ n6 S; f
- )
- {" o8 r" Z- c8 l& f1 X* g: R% K - ;;
+ q8 B$ e" H0 J) ?5 B, r* c1 q V - ;; Style action. Reset widget values to style defaults7 Y& [5 N) M! |4 O8 X
- ;;
# }! s8 M. [' _# p4 I" |6 m - (defun style_act (index / style-list)
! Q8 z5 Y. t+ x+ ^5 s) P7 p# h - (setq style-idx (atoi index))1 P5 W. q+ X7 G( {& R- K5 H% N
- (setq tstyle (nth style-idx slist))% B' S: k* l$ c7 ^& y2 z1 m" P
- (setq style-idx (itoa style-idx))
0 C7 N2 G* _% D: _/ }0 y1 X - (set_tile "style" style-idx)- q f# H8 z+ \5 i- k
- (setq style-list (tblsearch "style" tstyle)). j9 a6 U! ~& `4 [
- (setq shght (cdr (assoc 40 style-list)))
% }" h2 n. e: d+ L! B - (if (/= shght 0)' S( S; n) M/ b4 M4 H( [- B7 H
- (progn2 m" H( Y/ G" I9 p
- (setq hght shght)
( G2 c; [8 D' Y& E! Q0 _# o - (set_tile "hght" (ai_rtos hght))6 E! H. q. m& Q$ T! r7 e
- )
# x* U4 N+ Z) \3 h: ~1 R - )
7 I- ~8 t/ M; t& n0 Q9 y2 X - (setq wid (cdr (assoc 41 style-list)))
% V" Q" F0 u& d2 X7 U - (set_tile "wid" (ai_rtos wid))
/ d o6 h4 ^* [ u- y; |( O6 A - (setq obl (cdr (assoc 50 style-list)))! M( g9 Q4 j& |# {
- (set_tile "obl" (ai_angtos obl))
5 f6 j# r, g6 K5 U* j - (setq bk-up (cdr (assoc 71 style-list)))
6 K' f+ v! |( J2 A4 m6 l - (if (= (logand bk-up 2) 2)' w+ {1 r8 [+ V* J! Q" ~1 e
- (set_tile "bkwd" (itoa (setq bkwd 1)))
, i5 v6 z1 f$ d/ M - (set_tile "bkwd" (itoa (setq bkwd 0))); `# ]! v# b: S- W
- )) G4 B* Z* Q5 C; b
- (if (= (logand bk-up 4) 4)- T+ z+ u9 D5 r
- (set_tile "upsd" (itoa (setq upsd 1)))
6 y% I) v' U& W1 l s. {- ] - (set_tile "upsd" (itoa (setq upsd 0)))+ ]& Y9 v i }- i& Y- J
- )
( E3 k6 [3 M7 S7 |8 Q% w; v4 o0 Q - )
$ _/ d# u+ p6 b& x - ;;
1 l9 C# C9 p' [( y3 J, C; @: x - ;; Justification action. Set vertical and horizontal alignment variables, a h+ x9 W0 s$ x; w6 x
- ;; grey out rotation and height if alignment = "aligned", grey out rotation& q9 L. g- j' a2 e( a) g
- ;; if alignment = "fit".
# o% I/ I9 ^# E9 \' H& J - ;;5 b( W; ^& T1 ^+ B
- (defun jlist_act (index / templist)
9 z/ J' k5 v' Y% c9 |) V4 {1 j - (setq just-idx (atoi index))# P) ]3 g0 g8 r+ m; z! d
- (cond7 {: g% x) w5 c5 M* a
- ((= just-idx 0) (setq va 0 ha 0))
: ~4 `$ j/ k7 o {: o: M, i6 q - ((= just-idx 1) (setq va 0 ha 1))
1 ?2 u2 w3 H* b( e - ((= just-idx 2) (setq va 0 ha 2))6 V, m; `& P6 c+ }7 g+ m, E
- ((= just-idx 3) (setq va 0 ha 3))
, a7 x# u( Q6 D3 L0 f1 J: r3 Y - ((= just-idx 4) (setq va 0 ha 4)); Q" A" j, P4 B9 c$ v6 {8 [
- ((= just-idx 5) (setq va 0 ha 5))8 d! D: l1 j$ M3 T3 G2 k8 a6 Z
- ((= just-idx 6) (setq va 3 ha 0))$ S3 l( W% b2 |' a+ m4 Q5 q
- ((= just-idx 7) (setq va 3 ha 1))+ f% w0 l2 I. q
- ((= just-idx 8) (setq va 3 ha 2))
& |3 Q5 a) F( U3 M4 ^+ X - ((= just-idx 9) (setq va 2 ha 0))
! j% p3 r& ^2 H% K( ?2 n8 h - ((= just-idx 10) (setq va 2 ha 1))
$ o- Y; K4 V5 m4 Q3 A2 B - ((= just-idx 11) (setq va 2 ha 2))
* a4 Z1 \3 h9 r- m - ((= just-idx 12) (setq va 1 ha 0))
; D0 {) R, V0 C: F! x4 Y3 D - ((= just-idx 13) (setq va 1 ha 1))6 C. \# r# n( l' w
- ((= just-idx 14) (setq va 1 ha 2))
# z+ c# T3 |% U; r7 H! [1 l/ G - )
1 w) d! o1 t* j R& a/ @/ B - (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text4 }/ G! w: H; }
- (mode_tile "rot" 1)
: v, _# u2 ?% r) W - (mode_tile "rot" 0)
/ C O% C, ]6 u9 v& D - )6 w5 N2 K+ F P. ^, c5 @, J
- (if (= ha 3) ; If Aligned text$ b5 X4 N) @2 w" T% |# K
- (mode_tile "hght" 1)3 Q' Y7 R( ~& T% S( j& k
- (mode_tile "hght" 0)
% Y* t6 q" B$ V; I3 o - )( U1 w1 g$ [' @: B" Q7 M( q2 T
- (if (= ha 5) ; If Fit text9 v9 X2 r; a6 W( Z6 _+ B
- (mode_tile "wid" 1)1 J" t& J5 H1 q# w) \# W7 n
- (mode_tile "wid" 0) ~( x: K" V# p7 z9 P9 z
- )
2 h1 e0 g2 S5 Y# ? - ;; Reset rotation and height if changing from aligned.' e( L7 o1 ~, Z% F
- (if (and (= ha-prev 3) (/= ha 3))' k% q" {0 m: ]* b3 @+ j1 ~
- (progn7 S) b9 \! H1 K8 m' @- m
- (set_tile "rot" (ai_angtos (setq rot 0.0)))
) }# ^: d3 B/ Q, G8 E5 g+ u4 b - (set_tile "hght" (ai_rtos (setq hght 1.0)))& \# r8 f# T, @
- )
& e9 T4 p) Q B" o' C5 P - )* O" O7 e/ m9 o( n) y3 O. e, |4 `& R
- 6 {3 X; a) X' F4 e( ^* X
- ;; Reset rotation and width if changing from fit.$ A5 T8 e% ^/ n9 X# j! ^8 ~
- (if (and (= ha-prev 5) (/= ha 5))
3 b7 g$ r# ?$ N2 J3 d' i" o% F - (progn
& N* Q: m6 r' m. A8 h q3 u+ G8 } - (set_tile "rot" (ai_angtos (setq rot 0.0)))
2 w+ r6 u/ ?5 y _7 f - (set_tile "wid" (ai_rtos (setq wid 1.0)))
6 l. Y' M0 Z) }" K - )
' J2 [1 ?2 B* T: ~6 h$ v( y S - )
& g/ `1 D; l& k& ?9 ~8 E9 r - / l7 z3 a8 ~. ]2 D
- (setq ha-prev ha) ; update ha-prev for next time- I( E; Z) y' g9 N
- (setq just-idx (itoa just-idx))
6 U' \- X. k2 T- L: @5 r# P - )
- q% z; S4 \ P" Z% n8 x/ L3 j - ;;
4 b8 X. V, g' T - ;; Set intitial alignment setting based on vertical and horizontal alignment$ K1 w8 D# [2 f; h3 t" f- a; e
- ;; bit codes.
9 d# X; Q$ G; a# S. e - ;;: `: s' R' a! }5 {4 T+ j( x
- (defun set_just_idx ()
u. ^; l. Z3 }% ~ - (cond
- F' ?1 {* z' [3 X" Y, a- ] - ((= ha 0) ; Horiz alignment = Left' v0 q9 s/ H+ L" o- Y
- (cond$ U6 A5 H) f, A, T, c
- ((= va 0) (setq just-idx "0"))- G) B' d$ l2 a6 T9 U0 u
- ((= va 1) (setq just-idx "12"))/ Y% i' H7 N3 A8 j
- ((= va 2) (setq just-idx "9")); q- |9 X" H& l/ z5 K+ A
- ((= va 3) (setq just-idx "6"))# c$ `0 h9 Q4 l! @& |
- )
5 V4 l4 ?% a/ o# @1 E - )3 Y% u4 X! a* l u( b
- ((= ha 1) ; Horiz alignment = Center! @6 F r J9 t c' t% N
- (cond3 g' \, l0 Q. l9 C0 m
- ((= va 0) (setq just-idx "1"))
$ G# F: S4 Z* J, p - ((= va 1) (setq just-idx "13"))8 Y7 k7 n! F5 f M
- ((= va 2) (setq just-idx "10"))
6 s6 b5 f( L# x! B: k9 _. [7 I - ((= va 3) (setq just-idx "7"))/ r1 h9 j4 n4 a4 Q- i4 H9 p
- )
, g5 [9 P( U( n1 T+ @ - )
: G" m0 c# B4 W% b$ M9 [( C2 n: { - ((= ha 2) ; Horiz alignment = Right
. ]6 S* D1 c4 q) k8 C: a - (cond
9 A0 Q V+ v# ^ - ((= va 0) (setq just-idx "2"))$ O# w# G; i) {0 ^4 F' V* C
- ((= va 1) (setq just-idx "14"))3 N: J/ J8 I2 V3 H0 t
- ((= va 2) (setq just-idx "11"))) Y# U3 w. T& A% b' {+ N5 K/ O
- ((= va 3) (setq just-idx "8"))( q$ p0 u$ j6 [' V% K* o
- )& ]# W* P7 w7 g6 ?3 G: H
- )
: J. u0 J. [: @8 O8 y - ((= ha 3) (setq just-idx "3")) ; Aligned# K) K, j( z" ?# z8 U3 m/ V
- ((= ha 4) (setq just-idx "4")) ; Middle
( q) m& u% y, ]" P p6 R$ H- J - ((= ha 5) (setq just-idx "5")) ; Fit
8 N) X6 L6 _+ x, P& a - (T (setq just-idx "0"))! c c7 r( F, e' @, W
- )+ b" b. U+ G0 W/ _. Q# w: z
- just-idx" d1 X7 H4 k0 t, T7 A' H r
- )+ H) S2 n0 M8 P# p" M
- X6 y, U- ?6 h& c5 r( A
- (defun modify_text ()
B- `3 T6 t) f - ;; insertion point1 E" Y+ i- r& a' z! v& F4 [, Z
- (setq showpt (list x1 y1 z1))
5 w' [9 G! _% Z, ^: g - (setq bit-10 (trans showpt 1 ename))
8 o7 {, B. {- t k. m4 i# f - ;; alignment point4 e$ {$ s, s+ }
- ;; for 'Aligned' or 'Fit', alignment point must be different' C8 {! e% V6 r. S" F+ P( d) _* D
- ;; for all others, use insertion point, S( V) d0 d- @% ]1 ?8 Y: ?
- ;; (ACAD will recompute insertion point)# T+ |# R$ A1 W: R& k4 D
- (if (or (= ha 3) (= ha 5))' L5 @& i, S' w
- (progn
9 n$ }) e# o) r - ;; if no alignment point, fabricate one0 \. ~* T+ x8 _0 a' f9 k
- (if (not alipt)) u7 B, `: b0 D5 G$ Q8 y r
- ;; add text width to insertion point
* Y6 Q; @& ]+ |: t! }1 C - (setq alipt
/ `3 I! @4 M* y - (list (+ (car showpt) (car (cadr (textbox elist)))), |% l1 V" }9 ?! B
- (cadr showpt)3 }7 s$ k' @! G/ ?) x
- (caddr showpt)
, `* s. x; B) l1 C } - )
5 d/ B% p4 O- b8 b+ B( x0 \6 Y7 [% y, ? - )0 ]7 ^0 h8 a1 o/ p+ G4 w7 l+ D
- )
+ R! f9 b3 R# v - (setq bit-11 (trans alipt 1 ename))( }) d8 e( l, h$ [; h
- )
/ q! v" I* ^" n, H1 M% H1 E - (setq bit-11 bit-10)1 B" i! g" Y7 S3 U" |% G, O& O
- )
( @. C# ~, p" J; c6 Z - (modify_properties)1 |, r( x. A! h1 G& O6 k! c/ Z+ f
- (tempmod tstyle 7 nil)" b- P* n; @. e# [- J
- (tempmod bit-10 10 nil)" ~+ P1 X# k/ } j& @) `9 u2 f
- (tempmod bit-11 11 nil)
! B0 A; T6 V" [: c1 R - (tempmod text 1 nil); u) U* S T$ A6 s5 m" t
- (tempmod hght 40 nil)
0 V8 \+ ~. n* s - (tempmod wid 41 nil)
- f. v- s0 [: E: H7 t - (tempmod rot 50 nil)
1 ]# H3 i; d' Z! @4 [9 l, O1 e - (tempmod obl 51 nil)
* p; W8 C# F: P9 u; S6 V - (setq bk-up (+ (* bkwd 2) (* upsd 4)))2 b" W# ~; {, v
- (tempmod bk-up 71 nil)
* X# L3 J {' {9 Q* f; t/ W% Z2 `7 x - (tempmod ha 72 nil)
/ N) h& u P6 A9 b - ;; Attdefs use 74, text 731 V# g0 I- E+ \; `* d! F! f
- (if (= etype "ATTDEF")% Z( A% f7 ]6 A
- (progn
& j1 x" W9 @+ o9 \ - (tempmod attag 2 nil)# F- K9 T1 c# ~
- (tempmod atprompt 3 nil)/ B, U, Z4 l, b; A7 [- v6 Z5 I
- (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))
3 Q) l7 C. l: N7 q2 x& T, M - (tempmod icvp 70 nil)) n' s& y; {) F. i$ h
- (tempmod va 74 nil)
, a% n" n. D' D1 h - )' U* _7 z7 n( F: x& }
- (tempmod va 73 nil)
7 a7 I+ K) |$ x1 w) z, C7 ^/ k - )
- q8 C$ W" r7 L J4 v2 ^ - (entmod elist)
! e ?1 O, }- P3 V+ b: ^ - )2 _+ L& ]6 }. [8 k6 r
- ( L) u4 l. r- W& Y2 w' T
- (defun ddtext (/ 2ndpt slist i)' c- e7 D7 y+ i4 p! a
- (if (= etype "TEXT")" a7 Y! [, c; n) }
- (if (not (new_dialog "ddtext" dcl_id)) (exit))- g( A; V& ]4 E" @5 P( w' D
- (if (not (new_dialog "ddattdef" dcl_id)) (exit))
$ l, Y( t2 c) ] - )
) S0 j, Y( Z' T$ ` - (set_tile_props)1 L' g/ i1 K3 D2 J* U
- (set_tile_handle)( s5 e# O+ U1 O- P
- (set_tile_text)7 }; Q& K6 n* Z( Y7 o: _
- (set_tile_tag)
& q: E1 H6 `& t% p \+ ?4 i - (set_tile_prompt)
& i, q8 h. ^2 h% z' e - (set_tile_hght)
* E% ~: ~2 N( S9 t' G - (set_tile_wid)
1 D7 R* k( `6 D/ Y* v* i+ H - (set_tile_rot)
* r( M* y/ o, g/ r - (set_tile_obl)& c/ G; q- H* `- X* v
- (set_tile_bk-up)
5 J' G4 e/ H4 b0 ^ Y+ [( @ - (set_tile_icvp)
j3 Q. G* `/ O; m5 W - (set_tile_style)6 t ^8 [4 A- T) V/ T1 U
- (set_tile_just)
. s% K* d- ^# y6 Y1 @ y - (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
0 s8 C9 e* P/ m t; H( U8 Z! V - (if (not (assoc 11 elist))
9 \6 u4 r5 b0 |8 [) C - (progn (setq pt2 pt1)
0 B+ a1 E) D, p/ i$ s - (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))
$ y) |0 N6 V1 O0 { - )
# w/ \ M& U' }6 q# y& H% | - ;;(trans '(0.0 0.0 0.0) ename 1))
9 _# @' w0 J4 k8 e! J0 k; T - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
& F: b. E& `3 H7 h( i+ s - )
% u9 _5 o+ D: z - (if (or (and (= ha 0) (= va 0))
S9 e; L3 F" C" h; ~ - (= ha 3)
& I+ N% b& D% G, d! d1 ] - (= ha 5)/ _, ^! R3 t+ L& }
- )
9 ?: E% N8 w. U0 T* g1 U: k - (setq showpt pt1)
) L8 u0 c& w# s% h! p- P9 O4 X1 p - (setq showpt pt2). k4 j1 z) C, o
- )
$ @1 f$ |) h' P9 [0 b: T6 c - (if (or (= ha 3) (= ha 5))6 j7 ]- G# b2 a7 a( k
- (setq alipt pt2)
' C8 `' k; @1 s4 y- P; `9 o - (setq alipt nil)" S/ q, y+ b$ P; a5 v' ]+ ]; j: w
- )' G' j( ?9 \' K, t
- # K0 u: b7 v; h" k! I% R: W$ H
- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt))))
& c: B: G. `, S8 Y1 G) U9 e! X. C( ] - (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt))))% ?( \" |" v, h) e( } l9 J6 q
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))# I9 J$ U. ?/ i! ]* v2 x+ f9 w
* P, q5 x) A5 Q; q" Y3 B- ;; Define action for tiles
! q# o* o/ s, n, s2 f3 A$ B, Y - (set_action_tiles): o. ^; C$ k _/ U6 V8 H' \# t7 b# i7 [
- ;; Set focus initially to the text edit box.4 n* I: Q3 c( S: k# R
- (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))) P5 g2 f0 o' c1 ?3 T+ Z
- (setq dialog-state (start_dialog))
( {7 J( R2 b5 z - (if (= dialog-state 0)( b4 {, J' q7 q
- (reset)
; d3 N1 l, p2 D0 }. x/ ? - )
# n; j! D) U! ? - (if (= dialog-state 1); v6 L/ Y' ?. ^2 q
- (modify_text)
3 Q" l1 b; W( y. a - )) S9 B g+ c) `" F0 Z: x
- (if (= dialog-state 3)9 u3 {- V' k5 ?' I
- (progn
6 ]0 ]* _ j" V* l6 p3 a - (modify_text). |8 o, ?: A6 ~8 e5 _& e( J. }
- (if (or (= ha 3) (= ha 5))
7 m: f6 O) B( i$ q - (progn: M2 w% E0 D( U) z
- (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))
2 b& f/ o- u5 x- m# S, T. G - (if (not showpt)" {" |# ^4 h$ ~0 K
- (setq showpt (list x1 y1 z1)) M1 Y; i1 N) C b% V
- )
5 P. M3 |2 T/ p6 b - (setq 2ndpt (getpoint showpt "\nSecond point: "))( S1 s2 ?1 u6 {
- (if 2ndpt% @# w5 R9 ^, n) R, J& m- c' r" o
- (progn/ g# k" {: A( p) p7 K* K! g& e4 K5 G
- (setq alipt 2ndpt)
) a& R. S) y' a8 p* S- v2 v - (tempmod showpt 10 1)3 D0 [3 o. B4 k5 J
- (tempmod alipt 11 1)' W. Y3 t" n( j/ E1 X# h
- (entmod elist)
4 F! { {6 X; U0 S% t6 p% q - ). r: k& X! i" O7 f/ h/ S( k
- )0 K, M: x* N! g! R# ^5 W
- (setq elist (entget ename))
6 P9 N* `0 G7 q9 K - )
9 A3 \+ P7 _. X# B4 J% } - (progn
; o+ P. C8 f( A - (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))
% \; X7 V1 x7 Q0 Q/ T* G. M) X - (if showpt
/ y' E Y) _1 Y - (progn
# X. [/ v, \2 {3 K) z3 e - (if (and (= ha 0) (= va 0))
; x$ I9 `9 X/ ~5 n% e A. k [ - (tempmod showpt 10 1)7 D, R; U- e2 g
- (tempmod showpt 11 1)
2 L+ _/ R3 f% `" g/ }' q9 N b - )
4 i/ g6 q" d2 ?7 x( a1 i" L - (entmod elist)
/ K1 ~" z: @" ?0 l& x) } - )
$ ^ h& O8 L, Z0 A - (setq showpt (list x1 y1 z1))4 c+ L8 l9 u e5 m8 G
- )* V$ g9 a1 O- m9 W0 `4 \( q: }
- )2 e, v. `+ u$ ^9 v3 y+ }
- )
2 X/ R+ E* F% v# [1 K* n- Y$ E - (ddtext)9 }2 v. V V' L5 O5 J7 D* a8 Y# a
- )
+ `- |. E- h, @ - )# _ I2 ^! @* ^' g. e
- ) r, W* @0 a+ A
- q9 J6 Q& n% M4 b. P; Y- ;;
0 }9 Y9 E0 q; w - ;; Modify MTEXT2 I8 E' U/ N U$ F
- ;;
* q2 W4 f! Q& ]/ g; x$ B - (defun modify_mtext ()
, ~: k$ Q7 ?6 \' @4 O - (modify_properties)
$ \' W7 K7 u9 v) ~/ ] - (setq pt1 (list x1 y1 z1))
4 `* E/ d4 d6 m/ w$ [+ y: J - (tempmod pt1 10 0)
g H; h. c3 {0 Q/ I" A5 ^9 Z - (tempmod text 1 nil)
2 l. f6 `: _: V - (tempmod tstyle 7 nil)
# `- o9 Z1 G1 ^) @# ?3 s0 d* m - (tempmod just-idx 71 nil)
# H& E, a3 o% M } - (cond0 x1 J; K! A& b* E! X
- ((= dir-idx 0) (setq dir-idx 1))4 L2 o5 Q# a4 m' U( u
- ((= dir-idx 1) (setq dir-idx 3)): Q0 [5 U; q. E8 Q1 |9 G
- ((= dir-idx 2) (setq dir-idx 5))
/ [: O. q2 C: n - (T (setq dir-idx 1))
. R1 N M& f- m - )5 I; e2 f7 r t; }5 q, [4 [* M1 D
- (tempmod dir-idx 72 nil). O$ |/ a& b& {) _$ \0 |
- (tempmod hght 40 nil)
; S; n" E8 a1 m - (tempmod wid 41 nil)
+ g d; X# p/ K) U' h9 a - (tempmod rot 50 nil)
; R" `+ d2 J, E& _ - (entmod elist)4 ]2 P) q% A& M( @7 ~
- )
7 J: W- L& S8 g2 Y+ N. y
: E. u7 L1 y: @6 |- ;; Set MText text style
3 V q8 m e& [6 k) t- ? - (defun MText_style (index / style-list)
+ t$ Z. Q K3 w1 |% y/ i: A/ F F - (setq style-idx (atoi index))
# ?! b, t8 u! l, m" [. D - (setq tstyle (nth style-idx slist))( E6 q3 h L! Z( x+ m" |
- (setq style-idx (itoa style-idx))
5 I# O; g3 D8 w- R& r - (set_tile "style" style-idx)
: j3 [- h t* ~9 g; n0 x" { - (setq style-list (tblsearch "style" tstyle)): ~& M( ?) w, J) v4 D% Q
- (setq shght (cdr (assoc 40 style-list)))& Z+ R7 [2 `( O# ?0 h
- (if (/= shght 0); G1 p2 d( u+ S' p6 ^
- (progn
. f& y+ R! a7 ^4 C6 z& s - (setq hght shght)
6 T8 b8 O w. n4 T; c7 h' z/ Y% F) i - (set_tile "hght" (ai_rtos hght))$ ^+ |2 _: O# V. u6 X1 x1 p' ]
- ). R4 N/ D n+ H
- )+ a) I. p: G* I; |" j. @0 J6 v5 ~" q
- )
8 d% a- U1 K9 z9 j3 A. W0 P - / m( v; n6 B! c% P1 A5 k/ ?- }
- ;; Run DDEDIT on given entity, working around possible re-entrancy4 N2 O6 _6 @2 x* y7 f. r
- ;; problems with MTEXTED/ J# m+ l* g0 ~" H
- (defun safe_ddedit (ename / orgMTextEd work)
' l+ O1 x8 ^/ @: U3 h - (setq orgMTextEd (getvar "MTEXTED"))
9 @: ~. b/ U& M x8 z, x9 i M - (setq work orgMTextEd)9 p+ J" E# T `+ A
- (if (= ":" (substr work 1 1))1 D% L" g4 u- m: o2 S& g$ Q
- (progn
5 T' f; o/ z& k/ y3 F, m8 M) u - (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))
* }2 W* x& k, e" R1 z - (setq work (substr work 2))* E) t v! t5 I0 S( u6 J9 |; K. t
- )
8 Z" M" u1 {/ z/ \' t+ M - (if (= "#" (substr work 1 1))# T- X% p* t% ]& }# j: @
- (setq work (substr work 2))
" \. [/ E# Z! @6 T* Z - ). F2 ^9 S } Z4 s
- (setvar "MTEXTED" work)4 ~6 x! Z2 P9 O
- )3 t& }5 h- C2 ?* O, G5 q
- )
- O7 R" i: A) W& Q - (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...
. q( t* D3 N% W3 f0 e2 V - (command "_DDEDIT" ename "")
5 u, T$ Z+ h3 k' F: _7 B6 M - (setvar "MTEXTED" orgMTextEd)
1 S" K! T3 L1 A; l0 ^$ b. e - )
5 z+ t6 a) ^4 |9 e
' x6 I, K' L& H; X% L2 }( V- ;; Verify MText object width
( s! ?6 _: U' P5 h( ` - (defun ver_MtextWidth (value)( ~6 w0 Q% q9 P8 @( f2 ^
- (setq value (distof value)), D6 ~& \; ^4 P' C( j7 X
- (set_tile "MTextWidth" (ai_rtos value))7 o6 e' c% \: c7 d
- (set_tile "error" "") w! N( o0 m! d8 e' Z7 l
- (if (< value 0.0)
+ ]9 e0 H/ b& y* e0 p - (set_tile "error" "Value must be zero or positive.")
X( f9 g, u( Z, V( w - (setq wid value)& b. g/ q5 E3 q& i% o. q5 g8 q3 b
- )
7 h0 X& K& W2 S" ^9 J1 r" T) u# o+ b - )0 x. r% A6 ^& m$ P( `
& i- H# i0 b' E- (defun ddmtext ( / gc3)
- Y3 U2 t( G' ?! X+ |+ X: Z; g - ;; Get dialog( }8 `/ E2 c, X& s; f
- (if (not (new_dialog "ddmtext" dcl_id)) (exit))
& F* a5 ]- M; S - ; ]# T7 M$ |8 h0 ~: J
- ;; Load list boxes
& q% k7 F& l1 v$ E, g - (start_list "MTextJustify")& t m1 S- w+ t$ c) h9 M; T+ ^3 S
- (mapcar 'add_list '( p ~* [2 L( ^0 i
- "Top Left"
4 h, c$ m l3 A. @ f8 D - "Top Center"
+ C1 G. d, e5 w# c' G" r* V - "Top Right"
, t4 [8 Y0 o+ R9 ` b - "Middle Left"
! S: N& k g$ ~, i5 Z: H, d - "Middle Center": L3 A0 _9 f. |4 P& w1 p) N3 t
- "Middle Right"
/ e _+ { K3 k: A, [ - "Bottom Left"
u$ b$ X1 p! _2 \3 e7 r - "Bottom Center"
+ o# C. ?6 V( E% V3 U - "Bottom Right"
3 A+ h4 |/ o- }/ A& |/ L3 E% S - )5 g$ n# B4 W( q
- )- p5 b( k' V+ g! H1 Y! Z
- (end_list)
0 ^9 Y; u) K) T - % B7 `- q1 }) i A; t
- (start_list "MTextDirection")
3 _% F# w2 m z7 G; g7 P - (mapcar 'add_list '(8 p- Y* P) M& c8 \: X9 L
- "Horizontal"' y8 M6 \) p Q- \) p
- "Vertical"
$ p5 n8 _/ j3 m* v' w - "By Style"+ Q1 ]. @1 `# B5 z) j7 d( v
- )
$ K3 s$ h3 w% @/ L - )' A Z( c2 E$ Y
- (end_list)* l; h8 P$ [/ q, U7 a4 ^" {5 U
- ( v- `3 @( n: C& G
- ;; Set initial tile values
: P. z* d- }$ d. p) _- I9 G5 ` - (set_tile_props)+ i1 l2 _9 ?0 b1 V z2 M
- (set_tile_handle)
7 u( ^' M& b0 J9 Y - (set_tile_pt1 0)6 W! K, L8 G; W5 E. A. e: l
- (set_tile_style)
8 M$ c! o& {; f* D3 _ - (setq just-idx (cdr (assoc 71 elist)))1 ]6 ]: Z/ e, i& G
- (set_tile "MTextJustify" (itoa (1- just-idx))) V( r# j O2 V8 k# Z+ `) {
- (setq dir-idx (cdr (assoc 72 elist)))) j% b. o K6 I' ^
- (cond
2 U2 T3 ~9 G1 t# l% p - ((= dir-idx 1) (setq dir-idx 0))! y, K4 w N3 E& A' e
- ((= dir-idx 2) (setq dir-idx 0)), O: i: y. [( D2 ~, t4 O
- ((= dir-idx 3) (setq dir-idx 1))1 d# g! }- y* m1 m1 s. ^# x! Y
- ((= dir-idx 4) (setq dir-idx 1))3 f1 \, w3 P; D
- ((= dir-idx 5) (setq dir-idx 2))
* P8 o. L7 c+ i- U - (T (setq dir-idx 0))
. q- [ ^4 _$ q5 v9 W+ \ - )0 C0 P2 m$ S6 ~. K7 A% c. Q7 { y
- (set_tile "MTextDirection" (itoa dir-idx))
0 s( Z4 Z+ K# F4 E4 U1 H - (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))
$ \0 |$ S" S" I; b/ @+ ]# `. { - (set_tile_hght)
4 @' X" t' o" X* d - (set_tile_rot)+ d4 q7 Y7 D9 h: d0 ?; {
- 5 _' z/ x _; z& j
- ;; Set edit box, disable if too long
6 [) E, k; j3 ?* X - (setq gc3 (cdr (assoc 3 elist))/ O7 @3 }1 c5 J* t7 q7 d
- text (cdr (assoc 1 elist)))
- ~- b! s: x; I6 s1 { - (if gc3- Q, T! ~4 M# M4 y4 O+ [
- (progn ;; Text is over 250 chars, disable edit tile
4 ^4 e. |/ y/ ?1 c+ S& p - (set_tile "t_string" (strcat (substr gc3 1 25) " ...")), ~2 b5 P5 C" Y' T8 l4 o
- (mode_tile "t_string" 1)5 y, z3 u' ^! t! A! P5 ?5 p
- ), \; K& ?) w8 P2 J
- (if (> (strlen text) 80)
+ y, H. O; {; p9 v# w K# S - (progn ;; Still too big
5 s8 Y+ @/ n+ p% n) G - (set_tile "t_string" (strcat (substr text 1 25) " ..."))
( G% O, O: d: r' r* S; f" ]4 ~ - (mode_tile "t_string" 1)
6 i! B% G3 |& ~& H# d' i - )
2 R0 ~2 ^& z# o2 \, d/ p* K6 u4 |7 L4 ? - (set_tile "t_string" text)
! v7 Z a5 m& R+ J - )+ X, C0 f2 Y7 Q7 W: @6 P- U
- )% l% q ~/ C' q, G* |1 Q
- : v0 S( E9 b& v l; _6 W& C
- ;; Define action for tiles
0 \" C/ ]5 z0 j5 k; a - (set_action_tiles)
2 ?, W: d- m* u K - (action_tile "style" "(MText_style $value)")
4 d' Z. ~1 L) T0 O - (action_tile "MTextWidth" "(ver_MtextWidth $value)")4 ~' N0 {1 E/ t+ g
- (action_tile "MTextEdit" "(done_dialog 4)")
& r+ V2 ^( Z6 Q' w: g - (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")
' J" w4 _; y4 ]2 f7 A - (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")
/ u$ [6 k9 W2 q/ x - 3 C \3 s7 ~* k
- ;; Set initial focus to text edit box.8 M: S4 G/ y7 o0 `1 _4 I9 z$ h
- (mode_tile "t_string" 2)
6 M5 C u. j8 b& Z! s2 s
7 X5 V! F+ t+ x* ]! b: g% \; g; e- ;; Run the dialog7 p" ]* |* N. w5 N5 E2 Y7 Z
- (setq dialog-state (start_dialog))
8 Z4 R: H/ a- ]( W* u - (cond
% H: J" I1 c+ m7 ~ - ;; Cancelled - restore saved data3 p# z4 G4 r( e" Q8 e
- ((= dialog-state 0) (reset))6 w8 { w! l- M( p! S7 h6 b% Y
- ;; OK - save new data
! _ e% y, _( S9 c - ((= dialog-state 1) (modify_mtext))# D9 N" W6 M. Z& f W2 O
- ;; Pick new insertion point( ~2 \ I X* y1 T
- ((= dialog-state 3), a9 E; ^. \2 J9 l, R* G
- (modify_mtext)
! g1 w+ I( G( C# U. b - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))5 v% m p5 N) s {# Y& J
- (ver_pt1 0)
) r" A- I$ u$ \% v7 u+ l* d/ V - (ddmtext)
: z) o* S6 c0 M - )1 P3 C) o. ]8 o8 Z1 ]) g: Z& N
- ;; Run full editor
* i) o) K7 O. R a, _: {( P* O - ((= dialog-state 4)4 U6 G6 z+ k% q2 I y/ M9 `) c
- (modify_mtext)
& u2 j4 I) W$ q5 G2 K - (safe_ddedit ename)/ F8 ^' B: y7 |
- (setq elist (entget ename))
( _, r7 o u. y: _4 o7 | - (ddmtext)
& O' D) }, R% I, o5 q/ ^ - )' j- W: |) |1 C+ u) F1 w" B+ w
- (T nil)
* d3 q, d% Z% d% I. @6 \ - )
0 U* B/ W+ ~( o0 D, \+ V2 O( b8 I0 W - ), q. S- X3 G8 Y- e- I$ n
- 8 L2 p2 q, C' d( L6 O3 [
- ;;
( v- ]8 ?; t- D3 Z# f' i' f: H - ;; Modify VIEWPORT
3 H w3 ?* Q/ C, j6 T6 _( f, O - ;;
- ?3 E7 S3 Z) N
8 m) { @4 D) L- \9 w) W- (defun ddvport ()' m$ z! z5 v, g9 F) l' u0 g
- (if (not (new_dialog "ddvport" dcl_id)) (exit))
7 C$ D0 o2 l# h& O - (set_tile_props); c5 n; m( u9 m$ \
- (set_tile_handle)! ^( v9 k. F6 x, `
- (setq vpt (cdr (assoc 10 elist)))$ |, p; T k2 R1 s
- (set_tile "xtext" (rtos (setq x1 (car vpt))))0 W! m9 L3 k6 i
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
7 z8 e7 x2 p) s& v - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
: x; `' E$ f) d% d - (setq wid (cdr (assoc 40 elist)))
/ l# e* v( b3 q) c - (set_tile "wid" (rtos wid))2 o; S# f9 S% m) h/ Y0 _$ x
- (setq hght (cdr (assoc 41 elist)))
9 Z1 P5 U, l3 w8 V R# @ - (set_tile "hght" (rtos hght))1 h L5 b* Z4 n' M z
- (setq vpid (cdr (assoc 69 elist)))
4 ?1 d) q: F4 e - (set_tile "vpid" (itoa vpid))
$ o \0 q; G* M$ `9 Q, Z - (setq on-off (cdr (assoc 68 elist))); P- ?1 i( q$ o: P2 V5 c
- (cond
' R- n5 {) \$ x7 ?- L1 v - ((= on-off 0) (set_tile "on-off" "OFF"))
7 ^0 ?8 e4 P1 D/ c - ((> on-off 0) (set_tile "on-off" "ON and Active"))
* W/ y' \ j8 n/ w; } - (T (set_tile "on-off" "ON and Inactive"))
8 ` Y4 y8 i0 h/ g, P* Z - )
6 A" I! ?! i# h4 t/ m; t - & z1 ~, x# B C
- ;; Define action for tiles5 V& p, O: l9 _2 F) R
- (set_action_tiles)! J( \0 R8 g2 u! d: [+ ]4 f
- : G1 |7 L3 ` d+ t: q
- (setq dialog-state (start_dialog))) X" v- q, ]. [: [, S
- (if (= dialog-state 0)
) w) D8 T& E& v1 i3 k - (reset)/ e( {- Y( l$ O" Z# X7 J7 B
- )
' t! Q6 I8 o& ?1 s! e7 N1 c Z - (if (= dialog-state 1)4 R8 z& w% k! i' d$ x% I
- (progn A* j/ r, ]! B( p
- (if (= ecolor 0) (setq ecolor "BYBLOCK"))
3 n& _. g J8 a7 e! c" N4 e - (if (= ecolor 256) (setq ecolor "BYLAYER"))6 v& v3 M2 ]7 j; }
- (command "_.chprop" ename ""2 l4 [& ]* Q# @9 z" `( [
- "_la" elayer
# I) V& m; k+ O. z$ u - "_c" ecolor ""
6 i3 p5 c9 d1 T - )$ _7 G) T& y+ A5 P8 j. }2 y& f7 [" T
- )- Y: ]8 H3 x9 d; v
- )
B3 ^. h1 G% a( L: a - )$ N+ e/ r1 r! \% c
- ;;' q8 t2 a( y K# J% _& @5 ?
- ;; Modify POLYLINE% k& c. N: Y4 N3 T7 k. h& f
- ;;
/ S* U; B! n& i; a - (defun modify_polyline ()3 K. @7 a+ f7 b" U6 r, j
- (modify_properties)0 I: _/ J% ~) x3 E/ u
- (if (= ltgen "1")
( M3 B1 C$ U' M' ~ - (if (/= (logand bit70 128) 128)
) f5 @ k5 k8 ^" D$ q0 t - (setq bit70 (+ bit70 128))* r8 o3 a& p1 @$ R
- ); ` t7 ^0 Q6 q7 r0 _5 t
- )) o6 I. y2 k) x& n ?0 i7 F2 Y
- (if (= ltgen "0")0 g0 ?1 ^+ h, y+ u9 D2 j
- (if (= (logand bit70 128) 128)
2 ~& U# q; r0 ]! V9 F: e) M0 V - (setq bit70 (- bit70 128))
! H* G# U# E9 O3 d. K# I4 _0 t - )
8 F0 _9 Z0 X: V - )
: s4 F! M- `) j& @$ z - (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))( m( j5 ?& t8 r$ g- r' k. S1 j' D
- (entmod elist)
* w2 ]0 j! y, L - ;; Added to take care of updating Vertex information for color p; l0 s- T& G& v ~
- ;; and linetype.9 P% f! z0 \, J2 m: E8 {
- (setq save-ename ename save-elist elist)' n3 A0 s: E( v7 f: h
- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")- l" J& v. k" _" I$ C1 x
- (progn M5 I. U( u9 @' D
- (emod ecolor 62)! j. P- k7 Z& i/ }( h2 \
- (emod eltype 6)
" p7 g) J) f" I: O2 d# T - (emod eltscale 48)! V8 q% x! {7 H B/ k$ l2 }: Y& F
- (entmod elist)
- J* D; A$ h% H - )& d/ n! g: ~1 A. R) l! }
- (progn
/ T5 H. @. [! T - (setq ename (entnext save-ename))
, v' Z$ b2 {( x. g% E$ c - (setq elist (entget ename))
. {+ ~7 K& z- a. g - . R9 q( X+ ^* | ]
- (while (not (= (cdr (assoc 0 elist)) "SEQEND"))
; _. H& i$ s! M9 d9 K6 Y - (emod ecolor 62)/ _* h# f. D0 {/ N( [
- (emod eltype 6)
d: v/ u% r7 P2 s3 x, M - (emod eltscale 48)" Z0 @, d. a6 Q, Q1 ` ?
- (entmod elist)
8 p: ?4 ^* ^/ U( Z! A - (setq ename (entnext ename))8 Z$ _* N D$ e7 I2 k- S4 z
- (setq elist (entget ename))$ e' [8 R) L4 n3 x- X- d$ k
- )- c1 p" ]) c, `5 J: L0 g# B, _3 g* A
- )/ q% n4 I1 c" ?; V
- )
0 `3 Z9 E0 c1 O% U - ;; Update the SEQEND
# y2 O: }9 t G - (if (= (cdr (assoc 0 elist)) "SEQEND")
) y4 ?. v) C' B$ | - (progn
" X9 b5 I& c, d1 E+ q+ m- P - (emod ecolor 62)" w6 _) _0 U# Z
- (emod eltype 6)
% {0 T+ B! T" w6 W - (emod eltscale 48)
/ b" W) ]& g. i2 U" A - (entmod elist)# e r* }; p* z5 g J6 [
- ): Y* ?# j3 |+ K4 U+ I% Q
- )5 ^8 W4 m8 j& L; ~, d0 F: F* E
- ;; Go back to header.
8 ^* K- h/ X' e - (setq ename save-ename elist save-elist)
7 y/ v# i& o6 k% h: R
6 S/ s+ L8 e0 d" H% y- (entupd ename)+ G, E6 F1 E9 X( }* e, @
- )6 B2 e; E1 B) _2 V% T8 f) B0 O! \
# E: M8 [3 U* i* G% }1 X6 F- ;; Increment vertex. Set tile values to next vertex
. E7 I" h& i1 T - ;;4 f7 t. T" _ v' z0 V9 g
- (defun next_vertex ()
$ o/ r" u5 p! c3 \' C - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE"); A- J+ x( ^, x" t
- (progn
0 q" |$ U# G# z6 H/ L - ;; If the counter reaches the number of vertices,# y. G n$ D# c1 i
- ;; roll it over to zero again.
8 }# a; @3 U7 ?% ?" w - (if (= ctr (cdr (assoc 90 vlist)))) c# b+ c3 F" H- g" P
- (setq ctr 0)
6 r$ t) @- h3 A4 ~" T6 Q+ c - )' R' j2 m, _5 P/ g* e6 ?# W0 j% G
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
* ?4 J+ c1 o9 X* q5 W# F - (set_tile_vpt pointype)( z' n6 M+ ^" t+ W. A3 g
- )1 G! |& R: i9 }& J8 H# Y" d
- (progn9 z% u# P, {* h1 w
- (setq vname (entnext vname))# s! x* O# A7 L) u6 Z- v; x
- (setq vlist (entget vname))
0 s1 \. V b+ ~0 Q- \ x - (if (= (cdr (assoc 0 vlist)) "VERTEX")) e, u$ d# ?2 U2 g2 }9 M
- (progn# h6 e7 i/ t+ \
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
9 D& m8 r% K X+ p# e - (set_tile_vpt pointype)& A+ @$ `: {2 |1 F! K2 W/ ]5 p
- )
2 i7 [* A; l7 n. n - (progn4 Y- Z/ m6 }& v: \ L3 t; u
- (setq vname (entnext ename))
+ p p+ f2 R$ A# t5 x - (setq vlist (entget vname))
5 K5 ^3 J' L0 e0 l& v; n( j2 X, a - (set_tile_vpt pointype)1 q9 v) z1 q9 v: a) Z
- (set_tile "ctr" (itoa (setq ctr 1)))
" [3 n6 F4 ~) Y - )
% c8 S8 V- m: u% x. w8 V7 ]7 x - )
( G* F5 [# i) L; Q( x - )
' h: T, ~& C4 o. J - )5 s) `, B& a9 S5 Z- I4 y& r
- )/ s/ u, h& Y# p( [
- / Z0 m5 g8 S) j5 L$ k3 @' U% x
- (defun ddpline (/ oldecho)# B- D, Z2 d ?9 U
- (if (not (new_dialog "ddpline" dcl_id)) (exit))
% {, c( z; h; `" `+ Y* q8 ^ v: g - (set_tile_props)8 r* O6 G0 U1 \/ I, F8 Q
- (set_tile_handle)% ^9 P9 X3 z6 e. m) u
- (setq bit70 (cdr (assoc 70 elist)))
3 _+ j* m( L7 J - (setq bit75 (cdr (assoc 75 elist)))
( s$ N: f" W2 s# S2 b+ }5 q9 I6 ` - (cond. T0 C6 z, s8 }& D
- ((= (logand bit70 8) 8) ; 3DPOLY2 i6 l2 s& F# U, W2 T5 o* \
- (set_tile "ptype" (setq pltype "3D polyline"))' b; ]. I) E: |' G \" t/ M9 T& H/ D
- (setq pointype 0) ; WCS or ECS point values
1 |3 W4 m- s1 ^+ y - (mode_tile "fit" 1)5 ^5 \" D* z0 u
- (mode_tile "mesh" 1)
* o' o% x/ O* L h" _# G - (mode_tile "bezier" 1)0 h) [4 b |( g, G8 M
- (mode_tile "ltgen" 1)
7 j) v* @9 C8 D j$ \5 C8 T - (set_tile "none" "1")
% J7 N* v% D$ S1 M - (set_tile_closed)5 a* G- X! y4 K$ e
- (set_tile_fitsmooth)
! y9 V: f4 g- ~4 d5 Z/ _ - )
$ [" U7 g y: q7 d3 z/ f - ((= (logand bit70 16) 16) ; 3DMESH
+ m# |( g4 R) l5 Y" A c9 c - (set_tile "ptype" (setq pltype "3D mesh"))6 X8 U9 E* A" d1 W: B3 y: U
- (setq pointype 0)
6 v. ]4 E. _( T+ W+ }" z - (mode_tile "pline" 1)7 ^1 W6 X% v2 }- X8 {" v, G
- (mode_tile "fit" 1)' c: O; r* U7 B
- (mode_tile "ltgen" 1)
* ^+ \, X# T" j - (setq m (1- (cdr (assoc 71 elist))))0 E; n7 ] }: h. [% n/ i( ~4 ^* L* [
- (setq n (1-(cdr (assoc 72 elist))))# |* I2 ~2 ~& o7 u/ X3 u: {
- (setq u (1- (cdr (assoc 73 elist))))5 ]3 q) u& Y9 U. p7 Q/ p
- (if (< u 0) (setq u 0))9 c$ n( e* S9 w% [+ C. T3 h
- (setq v (1- (cdr (assoc 74 elist))))
2 a: `. i: d2 e6 ~3 i2 x) B - (if (< v 0) (setq v 0))/ Y& Q9 A. {) i: v6 t g* V
- (set_tile "m" (itoa m))/ `7 N: j1 ^" ?; @1 I6 A- G% r
- (set_tile "n" (itoa n))! O2 t$ m$ o& W
- (set_tile "u" (itoa u))
- L- q# [: x1 t4 B3 l - (set_tile "v" (itoa v))) h4 ~1 B5 L" s+ Z
- (set_tile_closed)/ t" V K+ H! i( z
- (set_tile_fitsmooth)2 y- S- Q) D1 x8 p; Z8 J& i: M
- )6 ~9 j+ L) \, x
- ((= (logand bit70 64) 64) ; POLYFACE MESH
: i. p( O9 |5 P5 z3 d - (set_tile "ptype" (setq pltype "Polyface mesh"))0 {$ g7 ~8 Y/ s
- (setq pointype 0)
, i7 C, Y# q; C8 w$ \. a - (mode_tile "f-s" 1)0 R o6 B$ e1 l
- (mode_tile "mesh" 1); F& b# J7 d$ v5 t9 A5 D& E3 g) i
- (mode_tile "pline" 1)+ v, g1 _+ M; O, d9 B0 t
- ); }" b; h7 j' G/ l6 @
- (T ; 2D POLYLINE
& p1 _3 P; W7 T! u - (set_tile "ptype" (setq pltype "2D polyline"))! k) A* W+ g: A
- (setq pointype 1)) G6 s1 g" F: {8 I% [8 F; \ J! K
- (mode_tile "bezier" 1)) m0 H, T, G6 e; J: k
- (mode_tile "mesh" 1)
0 ?4 h U. X H# |; }) i - (if (= (logand bit70 128) 128)8 f2 x4 Y& J! ]0 Y# `3 g' T
- (set_tile "ltgen" (setq ltgen "1"))+ O- z* H9 T/ L6 {
- )! d5 x2 o& n# u0 t* X8 y
- (set_tile_closed), x: u( S/ x3 |4 o& O& w
- (set_tile_fitsmooth)
- t# _3 ]: [% C$ S" x# K% I- g _# Z - )
- G/ Q* G2 E/ w1 `5 L: v/ Z - )
3 o/ u ?' z/ C N4 | Q. V
3 w, y2 _3 a( c1 l' S9 q- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
0 h2 w: e) Q v( X% I. q; t - (progn9 _' k6 r, _3 ]1 v
- (if (not next) (setq vname ename))
( a$ K: p5 P, q2 c8 |8 s. M - (setq next T)1 T/ a$ E% r* g( u
- (set_tile "ctr" (itoa (setq ctr 1)))$ F; u- b3 @( [: z4 D" H3 G
- (setq vlist (entget ename))% ?6 z+ S9 H# j5 W$ |
- )# n% L# O, t- n. p8 ]0 [( t: {
- (progn
+ L' M4 _0 _9 _# D- n - (if (not next) (setq vname (entnext ename)))
& B1 v% \* U4 w+ w - (setq next T)
9 f) q- d8 \* j - (set_tile "ctr" (itoa (setq ctr 1)))
4 u2 H+ m" F0 a# w - (setq vlist (entget vname))
2 ?2 L8 y9 k; p% b3 y - )
, K+ r. X3 K, y8 j - )! Z% R/ {, j! V" Y
- (set_tile_vpt pointype)
* n: H- Q8 L, ^* r% G( M/ k - ;; Define action for tiles* f8 ^ U! N% L- R. u& Z& S
- (set_action_tiles)6 M' l2 D0 f p2 Y" g2 K
- (setq dialog-state (start_dialog))
! K# Z# h- W/ j
u2 _2 q) J$ t: ~# b9 \' S7 P* @4 I- (if (= dialog-state 0)! Z5 k5 W: D( o6 o
- (reset)
( G1 A9 u n: p, D% e1 V) J - )8 d3 ~7 s. _- W( D9 J0 J; A7 x
- (if (= dialog-state 1)
) E3 u% e8 v9 A% m! d% I3 r5 Z - (progn' j* D: J% c$ f4 h8 n3 w9 i) B
- (modify_polyline)
" T& o/ @- | j: m1 p! a& T2 B& ` - (if (or (= pltype "2D polyline")
/ G: d3 {. x+ I( m# f9 j - (= pltype "3D polyline")" z/ F, J) S6 ]3 u4 g/ Y
- )
/ I* C* D, F( B' H6 i7 \7 q3 Z - (progn
2 u. D! }# N& l3 g9 D& ~$ I - (command "_.pedit" ename)* l# u* u; z2 r1 v% i; Q
- (if (= spltype 0) (command "_d"))
6 |7 }" n" r/ l1 ?6 Q - (if (= spltype 1) (command "_f"))$ J$ ]1 x4 o6 z; B2 A: U
- (if (or (= spltype 5)) c. d0 Z3 k, u5 [, C+ J
- (= spltype 6)/ o3 M4 Z# P( x" ]
- )
! E; \, B# h6 J: P - (progn% o2 d! R6 ]" w. _% d7 y
- (setvar "splinetype" spltype)
: g% P1 ^& q6 X0 A - (command "_s")
s g3 w! T! ], c% C. z - )
% l1 D- K7 m. j- T! ?' }( q/ l - )7 n. o$ `8 [+ Z* U
- (if (= closed "0")
2 R! y, K# l8 w/ b" F/ f - (command "_o")
1 G5 J; P& I1 V ?: s8 y - (command "_c")
, r5 v0 Q9 z D( m1 ~) v$ u1 |; N - )( z, C9 Q' j/ Y9 n
- (command "")
9 z- V0 }, R4 {4 c - 6 y+ k4 \% U K, E! o
- (if (= spltype 0)7 q- K% f9 z% j" K6 m C
- (progn1 C( O# G4 |7 V. _) r
- (setq oldecho (getvar "cmdecho"))# [- T& K$ V' u5 |
- (command "_cmdecho" 0)
1 R9 H. T; r0 `0 N2 L - (command "_convertpoly" "_light" ename "")
5 v0 X) a9 j- @# j8 w - (command "_cmdecho" oldecho). A& V' c0 b; D
- )2 O, D+ _4 S9 L# H( V* V
- ): B2 ?+ a6 K R: m
- )
4 i0 i3 }' O% {- h$ g: y - ); o9 ^% `. U$ A2 \8 ~: _9 {
- (if (= pltype "3D mesh")
! c! L4 E$ s9 { - (progn
8 l- F2 V; z7 F/ C - (command "_.pedit" ename)
! |( d( _* H0 h; G+ L' A - (if (= spltype 0) (command "_d"))* u8 S9 _4 \" {- }# d
- (if (or (= spltype 5)
: a( e W" R: I9 M9 y - (= spltype 6)
5 ^# E5 @# _ n& a3 o - (= spltype 8)9 D2 q ~+ _' M5 h7 k
- )! U: }0 k# c5 S% a$ N' u
- (progn! ^( @( c4 l, ^9 g8 a" H/ E9 I
- (setvar "surftype" spltype)
1 f) }( s4 j% y3 J7 n - (setvar "surfu" u)
' m+ V6 [4 N( M/ \4 ? - (setvar "surfv" v) i2 j" l0 ]$ M( Q2 ?* ~2 B" ?: t/ R
- (command "_s")
( C5 o9 e3 t( M8 Q7 i. @ - )6 ~; S# X( Y' f- P1 y
- )
% z" [9 B! K( y2 X - (if (/= closedm old-closedm)
6 m4 W2 G8 c+ V ]" x% G# q- r - (command "_m")* }% c: w' Z C: X( M: D
- )
) B( x9 r% V+ l' V; B - (if (/= closedn old-closedn)" ^2 f+ z9 s/ o+ Y2 W" e
- (command "_n")
9 P" X# K4 V4 X) K! ?. v - )
$ Z% p9 }7 y+ `# ?+ e - (command "")* D' q7 b5 o) I. P! ?4 ~
- )
0 v7 e/ A; ]0 H% v - )
; F3 {1 c, }- A8 R! ?( g - )& C/ b' T- j) U: `; V) J
- )
4 @. l2 D( c+ E6 v - )7 ?& C" v% r: Q% X5 c0 U0 J9 o
- ;;8 c0 V, j# p0 I
- ;; All the spline data is contained in a single elist. We must do some4 U% ]+ c' e3 D7 U* ^7 t
- ;; tricky list processing to loop through the elist in order to display0 l+ s) {+ F8 |2 }- H( _6 p
- ;; all of the control points.
9 r8 P; A# z3 \; O* o( b. D2 _ |) M - ;;
/ \" N( Y. E. V1 b2 x - ;; The structure of the elist is different for rational and non-rational; d1 A! X3 K! l( C0 m
- ;; splines. Therefore, we check the rational spline flag., D) x0 n4 e# {- q. T. k5 o6 Z2 B
- ;;( O* r6 K* r$ c0 m
- (defun next_cntl_pt ()& ~5 B& W$ R" g/ k0 V& A; @
- (setq elem-no 0) ;; elem-no = element counter
$ A( W9 Z4 \9 z( O. b% a - (if (= first-10-time 1) ;; If first time, find location of first+ _, D$ p6 F Q; S! H, h# ^
- (foreach list_item elist ;; cntl point element in elist
9 T2 k7 |5 T9 {% P6 o' @0 {2 ^ - (progn6 `" x5 A2 z2 c4 y/ @! I
- (setq elem-no (+ 1 elem-no))4 Q1 t6 E( U0 J$ Q! S5 i
- (if (= (car list_item) 10)
7 ^# r" N+ w9 E - (progn% D$ D8 K8 b, i! y; x
- (if (= first-10-time 1)
) C6 _" p" v. L7 c% H - (progn
U8 M3 S7 p* h( X - (setq first-10-rec (- elem-no 1))
9 {/ J* X+ ~) h; M# ` - (setq first-10-time 0): v+ V5 n( N1 A M1 X( t( o
- (if (= rational_spl_flag 1) ;; if rational
4 ?! f/ K6 k& g& j* q - (setq cur-10-rec (+ elem-no 1))
$ p+ l4 x x4 a- Q/ t0 I8 ?1 D - (setq cur-10-rec elem-no)
' j/ ^0 J- x% ^0 r - )& _# L+ y7 k8 s" n$ G
- )
+ e4 V4 b$ _: o - )
# J6 h( N% W0 v/ l" v - )
# D0 U. w1 ^1 ?) O' d - ); N. e' H% N. c
- )0 V3 v+ V$ j8 q" n
- )( L) V/ F, N: o: ~1 a( w
- )
9 W% ?" P* E( q0 U+ |& i - ;; Now we know the location of the first "10" record; it's stored+ q1 j9 N) u. \" i F
- ;; in first-10-rec. The first 10 record was already displayed when
9 S' G, L% a1 N - ;; the dialog first came up so let's display the second one when
2 i8 u, C! `, w/ K5 o: n - ;; the user presses the "next" button (the first time through).
) E) L# m4 g+ Z% \, `' R - ;;
+ y* O* h7 _/ ]5 ~ - (setq temprec (nth cur-10-rec elist))
: b& ]4 ^! {. F1 E) }' ] - ;;0 E' h5 U" S2 a6 T
- (if (= (car temprec) 10) ;; if 10 record5 m5 y5 c+ f' e6 u" r, U
- (progn8 w. c0 `0 O; O1 x1 ]
- (if (= rational_spl_flag 1) ;; if rational spline
# }7 Q" {( h! M% d% d5 q - (progn
) ]/ Y! y$ e- t \2 m3 j. e5 Q& E: y# q - (setq tempweight (nth (+ cur-10-rec 1) elist))
; C6 f' Z' H; b# n# S - (setq cur-10-rec (+ 2 cur-10-rec))- k' A3 n3 @2 x
- )0 r- s( ~, X( D. D4 L
- (progn ;; else- F1 [9 ?0 ^- O5 w
- (setq cur-10-rec (+ 1 cur-10-rec))
9 t" F7 c) V4 M. q6 Z, B. K. b% o - )8 L. y6 i" R2 I" A+ d- W
- )$ T, F: L& _# N6 C2 S7 L
- ) ;; end if rational spline1 W" z+ B9 [6 M
- (progn ;; else reset counters# C7 T: T7 \) ?6 \- s r) p
- (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec
2 Y9 X( Y p9 R - (setq tempweight (nth (+ first-10-rec 1) elist))4 \% s. s% m9 s* x' x9 X, ~4 ]' S5 ]% s
- (setq cntl-pt-indicator 0)
( ?$ c# A9 v7 C - (if (= rational_spl_flag 1) ;; if rational# H* a8 I/ U, Q0 x& }# w
- (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec- i6 `8 L( t( v2 Q* J; a
- (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec4 X0 O+ g+ M/ @3 c; k
- ), P' v# E) q) J
- )/ l0 h4 |1 m) c. A- P' d
- ) ;; end if 10 record
& h$ M9 x1 n" t' A' @
/ I2 z4 U+ t; N0 g5 }- ;; Display cntl point, weight and ctr. Increment ctr.! h7 e1 Z u" p
- (setq cntl-pt (cdr temprec))
: m7 o- f; V' C: Q) L8 C h( h - (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))6 n$ R2 h+ ~: ?( [, k2 K, K, W
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
7 ? y6 f. f. Z! F/ Y, m# L; K - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))- v4 p- o: S, y
- (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))# ^ C& o- `3 h' n* ~# C; g
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))& y6 k+ U& h" `2 n
- (if (= rational_spl_flag 1) ;; if rational' S- t* W4 B/ E$ C: g
- (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght; h( Q5 `9 x7 K$ {- j! }
- (mode_tile "weight_text" 1) ;; disable wght) \" K' z5 g7 ?, Z6 n# C
- )
; Z1 m' c/ ^6 v+ A+ y7 o - )8 X3 k, }& y6 ?+ b. a: q' p" @
- ;;
. i; l4 ]4 m4 ^, N$ J. ? - ;; All the spline info is contained in a single elist. We must do some
) ?4 A% c/ @* F; K. s( S - ;; tricky list processing to loop through the elist in order to display. X' a0 h5 ?& @* P
- ;; all of the user data points.
/ K- P9 @: [& e" C9 M6 v* i - ;;
6 k8 {! ^4 A9 d' L$ E, | W - (defun next_data_pt ()8 T7 F3 J$ d% \+ g4 E/ q
- (setq elem-no 0) ;; elem-no = element counter+ ^9 @2 `, h1 m! D
- (if (= first-11-time 1) ;; If first time, find location of first
5 [! V0 D! ?" s: L - (foreach list_item elist ;; data point element in elist5 G! P- \/ I0 G; I) s
- (progn6 i# A) m7 h5 Z' ~! F0 k5 i# A9 u
- (setq elem-no (+ 1 elem-no))8 Y: D8 K1 i6 [ C$ `
- (if (= (car list_item) 11); M. O# e: m" \" L
- (progn" V8 [- S7 W: e! W5 H
- (if (= first-11-time 1)
) Z, e8 d: a1 w& S2 t - (progn
5 N# N5 a" S8 r' ?# [ - (setq first-11-rec (- elem-no 1))
" r- U [3 `' ]1 Z! { - (setq cur-11-rec elem-no)' Q; x) }+ C2 O2 i: T
- (setq first-11-time 0)
, b1 A7 t7 ` ?, ~- l3 L - ); f ^% q6 o% s" [* t) H! _; T3 E9 {
- ), L. Z! F9 |' c' I- C
- )4 B0 \* x* w5 V
- )
8 r6 I1 R3 c, M& b1 c/ P( y - )
. U9 I6 i& U* C) | ? - )9 b6 I7 c1 |" ]( w
- )2 @* f* d4 D( ?
- (setq temprec (nth cur-11-rec elist))
- @2 f$ Y1 x& m; u - ;; If it's not a DXF "11" element then we've gone past the last
& q" F- {& M2 K: i! X7 h3 u - ;; "11" element. Go back to first "11" element. Reset counters.
9 ], I8 n( E f, V( n9 C- ~$ k# e' J - (if (= (car temprec) 11)3 C, J9 }7 ~% i: t4 N8 J& `
- (setq data-pt (cdr temprec))
5 s- X4 `2 _# o/ A8 e. k; X1 H - (progn ;; else
3 |1 a, { Y: c5 T& Z$ B - (setq data-pt (cdr (nth first-11-rec elist)))
, J8 G) y# ~1 m" T3 a% c( d - (setq cur-11-rec first-11-rec)
6 P# j& u, q! q1 F# T# Q( S2 f - (setq data-pt-indicator 0); H. j9 q& A' b: [/ r1 m
- )3 a& ~4 p3 K3 a' N, i
- )
' ^# k; {' r2 p, m. r - ;; Display data point and ctr. Increment counters.1 i2 r2 K) n" s+ X
- (set_tile "dxtext" (rtos (setq x1 (car data-pt))))
: v0 b6 N! V1 q0 [+ O; ~" X - (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
8 D; T$ k. ]& ]: | - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
- e9 u9 J6 l! j& e& [8 Z3 I; Y - (setq data-pt-indicator (+ 1 data-pt-indicator)) ]% N% X3 m: ? I9 A* A \
- (set_tile "data_ctr" (itoa data-pt-indicator))
8 B2 Y& O2 _8 B) L+ T8 N3 R8 b - (setq cur-11-rec (+ 1 cur-11-rec))
5 Y3 o* ]# E5 Q+ `4 f - )
3 c. j6 p/ k" z6 P o4 H - ;;% ]" @1 y8 v9 R- ^( H! ?
- ;; Modify SPLINE# ?6 F. ~$ C& Q/ |7 ^
- ;;
% ?& K# T: \! M; Y9 C) I - (defun modify_spline ()
/ h! ~* W q: z- t4 U - (modify_prop_geom)
: K0 j# H$ h, ]) z - (entmod elist)
( P0 \3 {/ z6 @1 W1 C0 n - )
7 ]# T- u: {) Q4 G* p4 }% A - , p5 d0 L" s2 M8 e$ X1 |& }
- (defun ddspline ()
8 S! y) F- W1 v/ F7 O" S. U - (if (not (new_dialog "ddspline" dcl_id)) (exit))
$ E0 A0 v% q7 D; g% `: s+ t - (set_tile_props)
1 |! z* N5 w7 p, g5 B - (set_tile_handle)
+ l# \( r8 T9 L: e3 {% ^ - (set_tile_spline_props)
4 M# `4 E2 ^9 {9 X% B4 }0 t/ `% O+ F - ;; Display first control point
8 R& j+ w0 x9 V - (set_tile_cntl_pt)" p& c* ]8 ?& z$ h$ }$ D
- ;; Display first data point% p; C: H3 K: f$ m2 A
- (set_tile_data_pt)
+ l/ M7 }" N4 s3 h - 6 J8 G$ G. X* y6 y
- ;; Initialize flags to indicate first time through the dialog.
5 o. t' }/ L- f. A* b5 S - ;; For control points and user data points the "next" buttons+ q7 Y: C( x4 k7 d7 c7 ]
- ;; in the dialog call the appropriate functions.& S9 n% n% N5 |% f4 R
- (setq first-10-time 1)
$ O' C+ x7 x9 c9 v6 d6 s) D8 S+ p- s+ f - (setq first-11-time 1)
S1 }/ [! G# a+ s - ;; initialize control point number counter
- g( e/ K* g; O) R0 }8 h1 D7 W9 ? - (setq cntl-pt-indicator 1)
7 G6 K' t/ h- }% m+ p - (setq data-pt-indicator 1)& v# [0 o9 h# K& p
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
: x+ ? r' g+ x: x. p - (set_tile "data_ctr" (itoa data-pt-indicator))
5 B6 w+ r( y/ h1 K2 C$ B. |$ j - (set_action_tiles)5 j# `1 O4 g% ?9 u1 X) P
- (setq dialog-state (start_dialog))
' p5 H& K" n0 D$ Q( p
# e. \: p, d6 W1 R8 ]# V. s- (if (= dialog-state 0)+ `- C2 C% X2 o a0 o b' c$ ^' ~" K
- (reset)7 a1 `3 E5 W1 A( P
- ). u# J' b% i2 d3 {6 b0 W6 B
- (if (= dialog-state 1)
" I- h W% w7 _8 w1 Z7 C1 v( Q - (modify_spline)+ b5 g+ d0 ~2 A7 T" Z
- )
3 Y* c2 u( Z% G5 g# \4 e$ u, ^ - )
7 ]( c, c" d' v1 B" H - 4 I+ \+ O' N# H: r! ]' b" ^3 V
- ;;: v9 e# ~2 H/ D! p, {3 L: w* M
- ;; Modify DIMENSION. N% \: C) B( w+ k7 g% k5 ~
- ;;
+ |' @! j2 F; M0 u: a - (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl
, I+ \# c9 X$ Q! K8 M9 C1 ] _ - dimsty dimlist dimtext svtext dimovr sv_dvlist stlist1 `5 q) u4 ^" C' y2 z1 ?& ]' y9 H
- dimtype dimsvcurset)
* b6 q( q S( Y- g0 Y! `$ t5 Z - (setq dimtype "DDIMEN"
q) s3 T% U. V: n) i - dimsvcurset (ddimen_dimsty_restore)9 ~/ \6 G! Q! Z9 X$ P* }
- )
; h. q8 N7 U$ ^: J: ~+ c, u; t* S - (if (not (new_dialog "ddimen" dcl_id)) (exit))
- ]9 P: V$ r" U3 s2 E7 r1 I - (set_tile_props)
% ~3 Y9 J5 v& p3 r4 i9 @ - (set_dimen_props)
* l# M1 p1 c( R - (setq dimtext (cdr (assoc 1 elist)))& D( t _' y; H
- (set_tile "t_string" (if (= "" dimtext) "<>" dimtext)). K9 }' c" ~% J5 L5 u9 m
- (set_tile_handle)+ X2 G6 y, b( \" I( g4 {2 `
- ;; Define action for tiles
& Z. e _/ N% B. @" L* C - (set_action_tiles)
5 G% m( t) S! ^5 j. b+ P0 s
& m. d4 B- z7 T# k8 v- S- ;; Set initial focus to text edit box.9 h- P5 J9 H9 u5 F" @ @3 I
- (mode_tile "t_string" 2)
* u& ?1 C6 e. `& G. Y - - b1 c' i( l9 T1 E. j
- (setq dialog-state (start_dialog))4 Q3 y3 ]2 P; c' n) Q: y% f
- (if (= dialog-state 0)) \; f* Y! K+ o
- (if (= ddimmt 1)
) [/ V3 O/ z% K0 w - (reset)7 f6 K1 f+ m, z5 R
- )
5 z6 e3 S( `& R: R$ R - )) K7 E/ x4 O U. i1 `9 [
- (if (= dialog-state 1)2 H2 N5 x+ ]' N4 ~( F5 Z& q
- (progn
) x) q) C8 y/ k7 i# V6 A4 E7 C0 Y i - (if (/= dimsty stname)1 ?2 ~7 [4 z4 f! e
- (progn: a b- K. [' S, W
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case5 K" n$ t4 i( U& R
- ; doesn't have it.
, w6 n: c' b1 ^# D; F8 V - (if (null (assoc 3 elist))
+ g1 ]8 o+ p( @6 H - (setq elist (append elist (list (cons 3 dimsty))))1 ?* @6 t0 C& h( D
- ; else just replace it.
' Y6 ~- j. ~+ v$ E - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))* u! p$ E/ O1 l: w6 Q
- )
$ e1 A6 O5 [! y1 G5 K' Q, ?$ Z$ y - ; refresh sv_dvlist with new dimstyle.
]% | Y8 a% I( A& S7 I6 X - (setq sv_dvlist (tblsearch "dimstyle" dimsty))' M l8 s$ A4 ]
- )) v; [* s7 M$ ?
- )) x7 K+ }7 d0 s. x
- (if (not (null dimlist)) ; attempted to change dimvars9 p4 B5 } |3 W1 A3 H. J
- (ddimen_complist sv_dvlist dimlist dimtbl)- R7 n& \. a1 X4 |- O( C
- )
/ t- P$ D7 B* I9 Y* n - ; Modify dimension text( x+ O# ` s7 S$ W2 u) ^4 o
- (if (/= dimtext text)
2 s% v- g! F0 s, X. Y - (progn9 ?8 ^/ `' R* I& v6 R
- (setq dimtext (if (= text "<>") "" text))
1 `" k. V3 g, m) S k - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
- r- o8 Q; N8 h' r4 r - )' {3 S4 X+ R/ q9 w1 f
- )8 g" H& n! V- p# h5 Q) A1 E
- (modify_properties)
0 ^1 r: v1 ?0 M% F; w9 Z - (entmod elist)
+ q& |( |6 [4 }* a$ I# E; ~ - )( }8 o M$ s ~ B2 w
- )) s1 F! v4 _; }- b
- (if (= dialog-state 4): z! q/ h Q7 z* W \
- (progn
. ^7 e$ j9 r* A) g- `8 I0 g - (setq ddimmt 1)
% J2 v& W1 |5 k+ Z - (if (/= dimsty stname)9 c. S8 _: E9 [( g: v& G. h+ _
- (progn7 A/ u+ }2 B; p2 l2 `& r
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case4 I- g- x o( F& N2 ?3 l
- ; doesn't have it.
8 i# {6 |& Y+ I( F' y# K% E - (if (null (assoc 3 elist))
0 [' f- l ?' U. R6 D - (setq elist (append elist (list (cons 3 dimsty))))
5 T% g9 M3 M& u - ; else just replace it.
5 O) G. ?! x, ? `$ C8 W! | - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
* \; d% v& @: ?* G2 |: O0 ^ - )2 V3 {1 T* F C6 H4 g
- ; refresh sv_dvlist with new dimstyle.. V$ |8 P1 C0 p4 q/ F
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))( I' }0 l) ~8 p$ `0 R* Q: R# j
- )
V8 M5 B3 {0 O, [! v! g2 u3 t/ O - )
% h( q O0 ]( G0 J' i7 T0 B - (if (not (null dimlist)) ; attempted to change dimvars& x! M2 g6 u* Y; `. G/ P1 r, z9 n
- (ddimen_complist sv_dvlist dimlist dimtbl)
^8 l; d% p: k9 a, h( E+ W - )) \: Y9 U# X/ O7 b2 {
- ; Modify dimension text
/ g. O+ \/ _. h3 s - (if (/= dimtext text)
5 ~8 ^6 n$ B- M+ n - (progn6 A0 G4 h$ a1 j# U5 H
- (setq dimtext (if (= text "<>") "" text)) k8 E9 [: o1 B! m
- (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))4 W+ o, a6 g- U/ b' t) P1 C
- )
: U! O+ \% o) q; t3 w3 e7 j1 \ - )- [' P. D( l' z7 [8 l# S F( g
- (modify_properties)
$ n. @; F1 H5 P* v - (entmod elist)
% n2 r& w' b1 G' s - (safe_ddedit ename)7 [3 `, b E; w! e' e3 {
- (setq elist (entget ename))3 f; o: v0 ]$ e: i d* o& i
- (ddimen) v, x" j3 ]) g# L4 I0 b. `
- )
' X/ W" u# G; y- P) w: x - )
3 E5 J$ d. t* [/ _3 P8 n6 M - (ddimen_setvars dimsvcurset) ; Prepare to exit
- p1 p3 |5 D9 t+ v - )9 h: I' O( I0 X, f( t' u
+ t- Z# I- F$ z7 W8 v- ;;: A6 u2 p2 a6 C4 j" i- y
- ;; Modify TOLERANCE) [. P+ a6 j5 ^. V7 o0 m
- ;;
5 w* @7 g# G+ ?* l1 G - (defun ddtolerance (/ a stname n dimtbl
8 ~ N0 D& o. C - dimsty dimlist dimovr sv_dvlist stlist dimtype
3 R+ s6 H4 K0 F5 x, X: t: O - dimsvcurset)# M6 P( @4 j. N b4 S" [ s; ?
- (setq dimtype "DDTOLERANCE"/ T7 T6 ~4 g8 E' I/ m% J5 ]" n
- dimsvcurset (ddimen_dimsty_restore)
8 U* a; E" v6 W& [6 _3 X - )- o: A; v3 T2 \- p+ }
- (if (not (new_dialog "ddtolerance" dcl_id)) (exit))' Q% H/ U& F/ E
- (set_tile_props)* |2 h8 V$ d( P: |% N; O3 H8 y
- (set_dimen_props)* \4 K$ n8 ~+ V
- (set_tile_handle)# z8 C: R8 W* l
- (set_action_tiles)
$ [ j( i3 M1 Q! g- i - (setq dialog-state (start_dialog))
2 q8 u, o2 E' y6 m) a+ e% ` - (if (= dialog-state 0)8 [# j1 e" r6 c1 [# }8 |# j
- (if (= ddimmt 1)1 }* }: y3 F: [" S( @! z. U
- (reset)
0 n' B7 q6 O5 p3 {6 h/ } - )
' B6 R! o4 g9 Y6 x* }+ w- c - )
7 f0 x5 n/ X3 q# s X9 L0 N! E% h- r - (if (= dialog-state 1)
3 A$ B3 Q7 c8 K' p2 { - (progn2 S; s8 ~* Q. T' I: L
- (if (/= dimsty stname)
, n. ?+ p1 ]) B- e* N$ Q2 x - (progn7 m& D' e+ N3 R
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case( w7 @$ @# G+ w" _' w
- ; doesn't have it., A$ B6 A% `: n3 s% `& a
- (if (null (assoc 3 elist))2 \ ^" [2 w5 |1 g2 c
- (setq elist (append elist (list (cons 3 dimsty))))
& M3 l$ y$ t4 T1 p% H* }5 X) I - ; else just replace it.
1 Q+ H( ~" }$ A, K) i+ L( j - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
& S. ]+ L% l8 P j - ); |6 n; E p7 d% f' L0 c. J( J' }0 y# s
- ; refresh sv_dvlist with new dimstyle." U- e8 Q: ~; m* N3 I
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))8 {+ A8 T [, U( i) z( E
- )
6 {- o$ J) G" X9 B8 D) d - )3 p% e8 x" \% G j9 `
- (if (not (null dimlist)) ; attempted to change dimvars
2 G; m/ M6 c w# I/ C1 P- @, v) ? - (ddimen_complist sv_dvlist dimlist dimtbl)8 f j, E, B+ T' e
- )
. s; c! Z3 }( E- {8 a - (modify_prop_geom)/ s3 o( [. S% a0 m& U# O' r
- (entmod elist)
+ B0 d7 D! I; A - )
: v: h/ g! A' o. v+ F - )
T0 R4 g6 L: k8 @) g8 \0 X. V - (if (= dialog-state 4)0 z7 K# X u, [, n
- (progn B) h, S+ a$ \8 C. X
- (setq ddimmt 1)
& Z" d$ p0 F" s4 }7 \$ V - (if (/= dimsty stname)2 g/ y! Y2 I4 _ I- T; {5 G
- (progn
: n3 U+ A6 N% B5 i - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case \* X( M: O, M% A
- ; doesn't have it.
7 V# p, y9 T* ]8 ~: `. Z* I - (if (null (assoc 3 elist))
$ M; k% `4 @+ B9 o8 ` - (setq elist (append elist (list (cons 3 dimsty)))) n w. x f7 J4 M
- ; else just replace it.: C; c% S' X) r$ Q. {/ h
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))7 o3 ^* H- j g. x2 V# b" }
- )
$ u5 ^) v- e9 S: m ^; J0 K. r - ; refresh sv_dvlist with new dimstyle.
& K/ l+ ~) ?% z7 N$ w2 ] - (setq sv_dvlist (tblsearch "dimstyle" dimsty))* I1 X8 L K2 [6 x1 W, t
- )4 y9 j/ z" }" P0 l! G
- )( _* U, v$ D* i8 j: ~
- (if (not (null dimlist)) ; attempted to change dimvars0 E# n$ Y. a" O/ Q7 B# n
- (ddimen_complist sv_dvlist dimlist dimtbl)
x$ \9 |9 ?& d& O- U5 N0 O; x - )
8 A) u; P- g8 R/ }+ I - (modify_properties)' [& x! Y1 c3 c1 L
- (entmod elist)
1 N! X2 O6 U, r- d - (safe_ddedit ename)
+ ]% Q |( x1 I9 ~ - (setq elist (entget ename))0 ]- [8 z) j! d7 v
- (ddtolerance)
/ P+ ]( a6 X8 A* {$ D0 } - )+ \+ V0 v4 B9 j+ A
- )
/ @3 _( n) J! A: B6 I0 x j - (ddimen_setvars dimsvcurset) ; Prepare to exit+ |: Q/ g4 M6 b7 X5 m/ U) r7 M
- )
8 n) }$ ~+ {. g# ^
' V; n0 s, G, i" e: e- j- ;;6 @9 @) B, u- N) B4 }. i( \& u
- ;; ddimen_dlg - jump to ADS ddim module
! m8 k' W6 D1 U - ;;
( b4 w# H, L1 p; d% b. g& ^
7 Q/ ^: T" x# f5 ?- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)
: N) k9 a* ?2 V- B) j, n
( i8 J6 t5 ]( u7 P+ \- ; Jump to DDIM with overrides if any.
+ ]1 W/ c* O J8 C7 ?1 j A, F - (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry' |! U7 U/ Q" T% C2 s: T
- ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format
$ ]1 {2 _. T9 M) C' E - ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation
, \7 k+ M3 d5 x; t1 P ~/ Q, t, M - )7 j f6 L2 y0 y: F, Y% C
- )
. J. g$ _2 u$ _) z0 x! E
9 D* y6 I- B2 ~- ;;& y3 O) ?- s% u5 Y+ e
- ;; Dimension variables updated are stored as overrides.
) h/ m0 e6 I6 n0 w - ;;
7 c+ O. G8 Z" n. [ - K& b* n& f" E/ X1 }, S
- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar
' n8 R1 u4 H' P+ Q - dv dime commandIssued)
Q* k9 F+ J0 h/ [% M1 o
' u8 M/ \+ E: _- ; Here we skip the following first three items:
7 |, _4 |. g0 V* W7 H - ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0)4 J9 `. ?: `0 T& W7 q
- ;
# D! y9 k8 _1 n) h* } - ; The list comparison immediately begins with dimvar./ w0 o; d8 L9 i. R# A
- ;
2 Y: V/ D, k) _ - ; dimolist - original states of dimvars! z9 H4 \' l6 \, _3 k6 X$ J
- ; dimnlist - new dimvar list which is of the resbuf's* z( }% A, A* d1 O
- ; dime - entity name for the dimension
: V# Y% z$ g3 \7 G. I P - ; odvar - value of dimvar for the dimolist; u, S- n+ D1 @- P4 O6 `# v
- ; ndvar - value of dimvar for the dimnlist. g7 o1 H$ Q2 l. t- \
4 L% J# ^5 T0 ^! f/ z: U- F- (setq i 3; Y" ~* C" ^8 s$ H% r( g
- dime (cdr (assoc -1 elist))& z( |9 V2 _: q6 N- m1 h1 M& i
- ). u% x& p/ X$ k
- (while (setq odvar (cdr (nth i dimolist)))
* o1 z* T: g8 `7 n4 d4 | - (progn
5 A. Z% g8 T N" N( A - (setq ndvar (cdr (nth i dimnlist)))
$ W6 z, O! G3 A0 T+ i( I9 d - (setq dv (nth i dimtbl)); C9 U+ \5 Z7 m0 S4 `$ y
- (if (eq dv "dimtxsty")
9 P2 r2 q: X, {) G - (setq odvar (cdr (assoc 2 (entget odvar)))
) G& \9 r: r d; ?) O - ndvar (cdr (assoc 2 (entget ndvar)))
4 P- J5 p, |" L0 C0 z - )) m5 I; A* U, i3 d4 T
- )
0 y/ W1 l" }# A' ~* Z
! ]# f. y5 }; D. E- ;
! a( S) B# f4 x. z! a- z9 I - ; In order for DIMOVERRRIDE to operate correctly with string0 F- { o/ X$ g# K
- ; based dimvars, we must pass "." versus NULL strings.! l0 e* q8 J( v; Z7 ~8 [
- ; In this case ndvar is the new dimvar value the user wishes
$ @% C# S' o5 a4 I - ; to update on selected dimensions.
]0 `) s5 I5 O9 D# a! y' ] - ;" Y s2 W; p8 n6 B' _
- (if (/= ndvar odvar)
* b+ ^' w. d' T4 Q - (if (= 'STR (type ndvar))
; H/ l/ c: D1 r. \2 [ - (if (= ndvar "")
0 m# B- H; y, f I8 f K. u! E# M8 [ - (setq ndvar "."))))7 J0 R, a( g9 R; H0 s8 E
- - `* @, d; Y2 A' p
- (if (/= ndvar odvar)
$ D1 h, G/ _/ h/ T - (progn$ l0 e- [4 O5 _* _8 k
- (setq dv (strcat "_" dv))
% A d' C) n$ n" X - ;9 P `3 {2 {! U% d: B
- ; Start the dimoverride command
" e% G( t! p5 @- b - ;
/ H( ^& X' x- R( E - (if (not commandIssued)
& I! y6 `% g( u) O9 r A" u - (progn# V% l3 B) x, e; E# Q
- (command "_.dimoverride")* q! \& V3 V. }% x. c
- (setq commandIssued "T")
$ V f# |/ }5 b* q' W - )
5 ^6 @3 K8 i) v" {1 E' e( n6 G - )* g# h0 Y% P- S' h1 r
- ;
% f, h# s6 F$ l - ; Issue dim overrides% z8 [. [ M k9 B9 }4 E
- ;
X$ u( E# F# d9 p0 [; V - (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre"))
: C7 _! {# }8 p3 ?6 ] - (or (= ndvar 0) (= ndvar 256))" }8 w W9 H$ J4 V" w
- )" t6 t2 M9 w) ]& |5 M) A/ G4 j
- (progn
$ c9 `& x, \+ Y/ @( g" @ - (if (= 0 ndvar) (command dv "BYBLOCK"))' W$ B% |; ~4 S( e/ p; j2 g4 K
- (if (= 256 ndvar) (command dv "BYLAYER"))8 K0 G3 H I" f& n
- )$ d0 S- W# K# _5 F
- (command dv ndvar)$ ~ [# R' k V( n1 a
- )
; ]/ m0 d0 ~8 f) n - )
# @/ q* U: a( z% c - )
3 a4 v" ^! \7 O - (setq i (1+ i))
' A I) l' X+ I7 h - )" m6 s7 ]" m' w, g# M
- )
9 v) p$ @7 U# u6 B3 M; W - ;: E/ q x6 P( X) u
- ; Select Entity and terminate command
& c/ n* O. D5 h6 W7 L4 F - ;
* R- t5 ~3 S/ |8 o - (if commandIssued
' c9 v# a7 M9 p - (command "" dime "")
) O; c; _% W$ t$ @, q! S' S - )
* @( m7 Q# J* ]3 O3 `2 s - )
9 C B4 T! U; f8 V; W
$ G( E7 t# X- L: r l6 C; T/ ^- ;;
, f1 w& U0 q( A- r1 N5 v - ;; Get style name currently selected style name.
$ `. N5 w/ S+ O" D M0 M4 L - ;;
# x/ U: Z _, c8 [# P- j. ] - $ s* ]% I2 z) y
- (defun ddimen_style (/ dimsty)5 H. O' [5 T- V* i \
- (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)8 c8 v5 C: c, w* x! B! _7 M4 O
- dimlist (ddimen_getdimvars dimsty)
* D N0 K$ x# x9 f* J - )5 U( E8 H' Q7 @# W* m
- dimsty
' |, f& ~+ N" Z& v3 |4 ` - )" v+ g8 N" |" e% [" U
5 |$ f) E. ~: ~8 ~# |8 w6 `- ;;
8 p4 z W3 Q Y4 W: h - ;; Set dimvars
3 c, @2 M# _. \1 b' n! X- a/ p - ;;
8 @6 z2 d+ J1 c7 K& C - (defun ddimen_setvars (dimsvcurset / dv i)
, B8 E2 v' _# f* X) b: i: D* Q - (setq dv (cdr (nth 1 dimsvcurset)))
( d$ x3 q9 y2 K7 p. p; M - (command "_.dimstyle" "" dv)
' }9 X, `: y' E - (setq i 3)7 Q; x& q6 A- S* a3 F Y
- (while (setq dv (nth i dimsvcurset))! s0 F5 i7 G# a5 i5 U, i& {
- (progn. W7 b( N( Q& W. F( ~6 H- ~
- (setvar (car dv) (cdr dv))1 M" u2 d4 l! p
- (setq i (1+ i))# P0 S/ d1 n i" z, c
- )
& p Z% }* X* i. Q9 ^ - )
) w$ x! V' y5 G; S8 B0 V - )
- d& X3 B3 ]" J, i - ;;
2 j, `) N0 @$ f) E$ \ - ;; End-of-dimension
; o4 `5 X# W, _, j - ;; ==================& d# \# c$ t$ h
- , j( I8 w% q; q* N, `* U
- ;;
9 ~0 W5 p7 d0 k [0 K - ;; Sub-dialogues for properties. Common to all object dialogues& V: Z% d# z4 ^1 ^% S
- ;;, Q* K' h/ s* l4 ~# w, f& ]% o
- ;; This function pops a dialogue box consisting of a list box,image tile, and% Z) O5 w) u5 N: w6 k3 d/ i+ s
- ;; edit box to allow the user to select or type a color number. It returns( W6 l7 d6 N. {# f3 e" F3 n2 Z6 ?
- ;; the color number selected.
$ }! N" e- w! k2 ]! t! M: F6 R - (defun getcolor (/ old-idx colorno cname lay_clr)8 L! M( u2 s3 k4 ] q9 D, e
- (if (= (get_tile "error") ""), }6 b" Q) N$ E; z+ [
- (progn
: w6 Q+ a ^2 {: | - ;; Get the color associated with this object's layer, for use/ \9 ] ^8 }' S2 C
- ;; in the color swatch if the user selects color BYLAYER.' x# Y- s" s8 t7 E
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer)))): X" q6 F B& l: T" I5 h* A# \
- (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr))), b$ J, J/ p. d
- (progn
. n8 E- D, Q2 [- @# P0 I" b+ T: h - (setq ecolor temp_color)2 ^' r. O; G% d6 X- e: ?
- (setcolor)
3 S: n. c- L9 m, ~) f9 C: s7 J2 ~ - )2 F2 W4 ?" ~( ~7 y; e, W; |0 p& n/ p
- (setq testcolor temp_color)
$ ~! t5 T* d4 ~7 i7 c7 P - )
4 S3 v, e; j# ?- ]. j# u) s - )
. ?$ x1 ^8 m3 C - )
0 i2 E& u; O. L8 m - ecolor
) d3 I4 \% @& Z* U- u - )
5 k5 i1 X% ~# H, M2 j9 l8 @ - ;;# z( M' H9 \ G, ~; o
- ;; Function to set the color tiles., }! |3 u+ B# n2 U2 U$ U
- (defun setcolor()
! x! q2 }/ A; i - (cond k3 L6 Y f: W& p% a7 y
- ((= 0 ecolor)
' P t5 r# y3 N5 w( l" v# I - (set_tile "t_color" "BYBLOCK"): ^* }% z5 R( Y/ w0 H0 f
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white
( c) Y9 T) ^$ v3 U t: U - )
! Q' d$ ]- s }/ @/ M - ((= 1 ecolor)9 z# }" O u: h1 q" T* z
- (set_tile "t_color" "1 red")+ t P: G2 L) t, P/ N
- (col_tile "show_image" 1 nil)/ Y6 Q0 D' p0 d7 a
- )& e# W" {" Z- O
- ((= 2 ecolor)0 s D1 t1 i: u
- (set_tile "t_color" "2 yellow")
# x% p3 S U3 Q; R1 K" ^ - (col_tile "show_image" 2 nil), j( ]* L. t @; x& |" N9 _
- ), b1 A% i* Z' `8 C: _) U
- ((= 3 ecolor)8 u) W0 z$ T; u4 d( N) ^
- (set_tile "t_color" "3 green")
1 G2 J P* {+ g - (col_tile "show_image" 3 nil)
" R- c' T+ O' A% B0 S2 w - )
4 b5 I: L; J4 n$ H! B - ((= 4 ecolor)
+ V4 A7 v6 K: m* ?" Z% k% {, l) k - (set_tile "t_color" "4 cyan")+ _( D) Y' q8 R" t* M4 m+ j
- (col_tile "show_image" 4 nil)
) Q: B: m( y; t) M3 y. K - )/ F1 F3 q, T; ~* y. f9 Y8 a
- ((= 5 ecolor)% f0 v7 X& H5 ]
- (set_tile "t_color" "5 blue")
" m0 O; c. ]3 } - (col_tile "show_image" 5 nil)
! v& W: o( X9 f9 q - )3 p1 |' A! ^; O6 g
- ((= 6 ecolor)
& T6 D+ d- u" ^ [ - (set_tile "t_color" "6 magenta")
- k, e% y, k6 B' r1 B1 O6 S3 d% g% m - (col_tile "show_image" 6 nil)
, u; Q! H; O1 h- @4 H& F/ b - )
2 J8 {: W6 n7 ^" z - ((= 7 ecolor)1 c% ~: C; Z( d# K
- (set_tile "t_color" "7 white")
{5 m6 S; W) a8 B2 U( t9 v, m - (col_tile "show_image" 7 nil)
1 b) O" J- y n! R0 W2 F. h - )
0 T/ S7 [" b5 }* h% Y x { - ((= 256 ecolor)
% p, H# D1 k e w ?" u: y - (set_tile "t_color" "BYLAYER")+ U; `% R! [0 `& A
- (col_tile "show_image" (bylayer_col) nil)
0 U9 k0 h1 [4 x! \' G- [; E" c7 u - )
/ r6 M; g9 z* c$ B4 n - (T+ H7 k# l: W- j, D% ?! k
- (set_tile "t_color" (itoa ecolor))
( s& g3 ?% d% I - (col_tile "show_image" ecolor nil)
+ n& u' }; S4 O' G0 U4 H; w' h - )5 J* `+ E( b& m: g( D
- )
2 \* G9 a7 o9 d& b. ?$ U - ) G0 W `0 w1 w5 ^
- ;;
4 \8 d! y+ L; |" }5 L1 N - ;; This function pops a dialogue box consisting of a list box, image tile, and
* T6 g6 P* v C- D7 W - ;; edit box to allow the user to select or type a linetype. It returns the9 F6 r) g( ~7 x* @7 r
- ;; linetype selected.
9 c- |9 T) g* _& t G - ;;! {5 u% E% J* k7 p
- (defun getltype (/ old-idx ltname)' E" a' u, [: A0 B
- (if (not lt-idx)
5 _# s8 q% }7 m8 M - (progn! R8 Z/ L6 ^3 H1 p
- (make_lt_lists) ; linetype lists - ltnmlst, mdashlist; O' o A V6 r) H
- (cond
" ]" F; l5 T5 I. }% y - ((= eltype "BYLAYER"); {& Z% f; r' J9 b. D
- (setq lt-idx (getindex "BYLAYER" ltnmlst)))
& f/ l% E; q% F$ `6 m- }0 W4 D - ((= eltype "BYBLOCK")
7 B R9 M$ w- Z( r& O - (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
* R" I; x3 r! m! B; m% R - (T (setq lt-idx (getindex eltype ltnmlst)))
0 q- A* n% |" s, Y - )1 u" ?5 j, c! u8 A& Y
- )
9 I7 s4 j3 k3 X( v: d- M2 m' c1 F. _$ T - )* }, L, q, M# z. F" c
- * P% v, N+ B* y& [3 {, D4 A, Z+ N
- (if (= (get_tile "error") "")" ^8 ^' x& z( n) i; Y6 }
- (progn; Y2 j6 c' g I9 x
- (if (not (new_dialog "setltype" dcl_id)) (exit))# ]5 V+ k" h {7 D
- (start_list "list_lt")7 J& Y! q6 [2 A* H5 k: ^" f
- (mapcar 'add_list ltnmlst) ; initialize list box
) M& A6 f6 ^2 V" Q" ~ - (end_list)
0 E; @, S+ i$ b6 } - (setq old-idx lt-idx)
6 r: ?! g* a1 A1 O - (ltlist_act (itoa lt-idx))
% m9 s! C! Y' }: B
1 K8 n" z9 W- g1 @) I- (action_tile "list_lt" "(ltlist_act $value)")
" X/ V7 o3 \; O3 N C4 ^4 ^ - (action_tile "edit_lt" "(ltedit_act $value)")
! S) L% f7 a( [; X; J - (action_tile "accept" "(test_ok)")4 @0 }- Q1 S" [1 `8 ~
- (action_tile "cancel" "(reset_lt)")
5 e9 X' H8 a0 i- {9 H2 W5 b" _. T - / M* w* f+ V0 T. x1 V; @6 G: L
- (if (= (start_dialog) 1) ; User pressed OK- y1 T9 B R0 r' K5 e* F
- (cond
5 `$ Z1 t r5 A+ y$ N$ l* l2 m - ((= lt-idx 0)) v! t1 E0 ~; I
- (set_tile "t_ltype" (bylayer_lt))
7 W v0 T/ r5 \9 G - "BYLAYER"
+ u! m# S. f3 Q p' r; ~8 I6 X - )0 T& k0 B/ |3 M- n$ ?
- ((= lt-idx 1)
0 z2 k4 q2 z4 ?: I7 G - (set_tile "t_ltype" "BYBLOCK")
4 Q" Q& q- _8 W+ e5 l - "BYBLOCK"( i$ R p+ N7 a. J0 d8 I
- )
) Y% e$ W2 t1 W% ~& Z _ - (T (set_tile "t_ltype" ltname) ltname)
( r3 D; L/ v# Q+ `1 ~% Z/ k - )
0 }1 ^- A9 M/ u$ c8 q! v - eltype5 J# q1 g2 o) h: x" y1 Y
- )
1 w" v8 t$ F6 @ - ): Y3 F# z+ I/ H! O) a- l. S
- eltype
6 Q9 x$ I2 v/ X, m6 l' A - ). f7 y8 j1 ^' R! ^- i
- )+ \7 E$ H, Q1 c) t
- ;;
4 u0 {2 w' s+ o$ H4 v6 R- p* q8 Y - ;; Edit box entries end up here
: @" V7 E! Q/ G- g2 S" J$ |" v - (defun ltedit_act (ltvalue)
; P+ ?5 Z' v4 I - (setq ltvalue (xstrcase ltvalue))
7 @+ I5 f, z2 m' r) s& t: n - (if (or (= ltvalue "BYLAYER")
" B7 u& g+ j0 J8 M4 g' H - (= ltvalue "BY LAYER"))
3 K2 V+ g4 l9 d& G, L - (setq ltvalue "BYLAYER")
' |! N1 s9 t. a, R: X- v5 I& Q - )' R4 x, ]. ~# z3 T. R& D9 R, f$ t
- (if (or (= ltvalue "BYBLOCK")( A& m0 x0 ^( }1 B. S/ D4 C. f
- (= ltvalue "BY BLOCK"))% B: C5 e) e& Y* J
- (setq ltvalue "BYBLOCK")* i: l+ o6 ?# N: f; X4 j
- )# m2 D! t2 u# M( W6 m* W
- (if (setq lt-idx (getindex ltvalue ltnmlst))
7 ~! `8 r8 b! u - (progn4 D+ `! k% z, E2 O, G' d
- (set_tile "error" "")6 O q% I5 ? ^# q
- (ltlist_act (itoa lt-idx))0 B7 R* P) i6 t/ a7 }$ W2 n
- )7 J/ T; S" _# B
- (progn
i; ~% Y- C+ ~, v# _( Y# c - (set_tile "error" "Invalid linetype.")
) g( Q' F3 m% x7 i - (setq lt-idx old-idx)
4 }4 v) P8 m, u p. H - ;; (mode_tile "edit_lt" 2)& ] Z3 W9 M/ r
- ;; (mode_tile "edit_lt" 3)- l" `3 O1 R+ S) |# p* H
- )) J# R' f, Q6 m0 d4 s" l, N
- )
9 J- b- [: F0 R' v% f) Y - ); y! K, \! b) \4 j" c" u
- ;;9 }' d$ R) C( s7 J+ ]7 b
- ;; List selections end up here. Update the list box, edit box, and color* H4 @, b. q* w f: e8 w
- ;; tile. x* s2 f. j; e. X
- ;;! E; p9 I3 n- f% L `
- (defun ltlist_act (index / dashdata)
9 X3 M5 f# S5 N( Z" G% t - (set_tile "error" "")
5 K2 h* t( f ?! |+ U: s+ { - (setq lt-idx (atoi index))
7 u' T% j* v, B - (setq ltname (nth lt-idx ltnmlst))6 {( [+ M# ~9 K j5 Z
- (setq dashdata (nth lt-idx mdashlist))4 T" g0 T$ z& ]
- (col_tile "show_image" 0 dashdata)
# i# P2 T4 \; E& _6 K" F1 d - (set_tile "list_lt" (itoa lt-idx))7 q3 l/ D: p5 W0 i( q9 M: h' J8 z
- (set_tile "edit_lt" ltname)* r3 Y. T k. i3 }9 j3 Y5 o" d4 ~
- )8 p1 m n5 U' o
- ;;
. I: u: U' h; q, k. z - ;; Reset to original linetype when cancel it selected
' H! y9 P k6 U' F) J7 t - ;;
# A! c8 a S e8 r; {- }5 |" _. d - (defun reset_lt ()
5 L% D* _5 u% H! E) a - (setq lt-idx old-idx)" ^1 I! X8 |+ S9 ?
- (done_dialog 0)
' y$ o6 u& j W+ Q8 |( q - )
; A V- T/ K, X - ;;
4 j+ T. h$ J: p - ;; This function pops a dialogue box consisting of a list box,image tile, and) L$ {$ c+ E7 c3 H5 K
- ;; edit box to allow the user to select or type a layer name. It returns the% v2 z' @9 U5 }6 a
- ;; layer name selected. It also has a button to find the status (On, Off,9 I! a6 M' |9 Q V% b% c
- ;; Frozen, etc.) of any layer selected.0 I; N& x \3 P7 r2 D
- ;;% P M' V' a$ ^
- (defun getlayer (/ old-idx layname on off frozth linetype), Q4 W! I2 ]) l0 G! v4 F
- ;; Create layer list the first time the layer
# T) g# ]- G+ z r8 H+ d2 A3 e - ;; dialogue is called.
. S/ X, Q$ ^) o# {7 I - (if (not lay-idx)
2 |6 @8 w. Y% N$ q+ @! R - (progn
9 p4 n7 l4 q8 L5 e+ l - (make_lay_lists)
5 i/ ^; P! g; ~2 H - (setq lay-idx (getindex elayer laynmlst))1 r4 S1 H; c2 w7 z4 [' d
- )
}# ?$ C: {) L - )! q9 f" s; `- F0 U- j/ j
0 K( V6 d4 e) g6 b, \$ \- (if (= (get_tile "error") "")8 G4 |4 {/ S, h- j; Y' Y
- (progn0 e1 f2 Q; A$ K4 r$ _
- (if (not (new_dialog "setlayer" dcl_id)) (exit))' V6 ?0 a7 g2 V% {1 m
- (set_tile "cur_layer" (getvar "clayer"))1 J. E7 u% c. C6 Q8 G% Z( E/ W* F
- (start_list "list_lay")
* K2 d9 d/ y+ _; O- f4 x! f - (mapcar 'add_list laynmlst) ; initialize list box9 W( p( V G- L) N: s/ ]
- (end_list)* k" \# k, I6 u( ]# ~# D" P
- (setq old-idx lay-idx)2 a, _0 ^. X/ I
- (laylist_act (itoa lay-idx))
; ]: E: H+ ?) S6 s. W - (action_tile "list_lay" "(laylist_act $value)")8 {0 I( Q) l4 |4 k* Q: t9 a2 u
- (action_tile "edit_lay" "(layedit_act $value)")" ~# J, E; Q# h( \2 s5 O
- (action_tile "accept" "(test_ok)")
: O$ @$ Q$ w) C* h( Z - (action_tile "cancel" "(reset_lay)")
4 m; C$ @0 o3 h1 q: K - (if (= (start_dialog) 1) ; User pressed OK* W9 E" u# f3 p1 P
- (progn# i! \" ]4 y4 h/ ~; b) T, f4 U& A7 h
- (set_tile "t_layer" layname)
+ R* m, I" j8 T# c - (setq elayer layname)1 H5 t& L+ s, R: A. j: \4 [- R
- ;; If layer equals bylayer reset color tile
" w5 G4 x, J+ C9 j6 x) h3 V - (if (= ecolor 256)2 l. r1 o2 \) x5 J/ o9 V
- (col_tile "show_image" (bylayer_col) nil)
8 ]4 K. i: u) K. y - )
& ~1 j- w* r- t/ i# [ - layname6 o. Z( Z4 O. W! c" O
- )
/ Y C* R$ C, W+ |: V; J - elayer" J! \' i" i6 y7 D, H
- )
7 i/ H/ V9 S/ {. E P# R - )& w9 V8 J5 e/ {% A* C3 A
- elayer2 x; T+ {5 A% |, `) c: W) B
- )
2 P2 M3 ?7 f! J7 [) W8 j y/ r) J - )- z; e+ k6 D2 y/ N [# w- E
- ;;5 R2 I2 O5 {; E6 K" H
- ;; Edit box selections end up here. Convert layer entry to upper case. If) J8 x3 C. Z t1 x: H1 F/ ~( [
- ;; layer name is valid, clear error string, call (laylist_act) function.
" _2 J. [+ s$ F( s - ;; Else print error message.7 \, q; {' Q; B) w% F1 o% V, W
- ;;. ~2 Q# h; b/ E" V* s1 ]
- (defun layedit_act (layvalue); w* W% }+ P/ L9 @- v
- (setq layvalue (xstrcase layvalue))
( `# _1 @" j# J$ Q* q4 p6 G - (if (setq lay-idx (getindex layvalue laynmlst))' K, L# F9 }, O6 n9 `
- (progn
7 b( T. o* I: a' g; g - (set_tile "error" "")
; O# r5 T" M9 l8 M0 ~ - (laylist_act (itoa lay-idx))
4 Q% Q1 }7 e% y8 W' _ - ). A5 E2 i Z9 o2 j3 l
- (progn7 _! ?1 x' ?/ ^- t) _) W% G6 W3 i* D
- (set_tile "error" "Invalid layer name.")4 u* |) K1 v5 }9 R6 z y- J
- ;; (mode_tile "edit_lay" 2)$ k! @/ R1 [) K
- ;; (mode_tile "edit_lay" 3)" R b3 |9 n& ]$ j' { ~
- (setq lay-idx old-idx)) ^& z& f4 o% E: k T% ?
- ): u! D3 \7 N" F7 ^! U
- )
* r& g" H: L8 t! t) }5 M) t - )
+ t; o9 p8 K2 l, x: L - ;;5 W z8 c$ w4 i v. z. G
- ;; List entry selections end up here.
+ [' @& ^2 B. e8 ` - ;;
' |5 Q4 U Y2 z6 c% _9 B# @: s - (defun laylist_act (index / layinfo color dashdata)
3 c/ q3 n) ^" C$ F. K5 b - ;; Update the list box, edit box, and color tile.
$ O5 \0 u( Y9 ^ - (set_tile "error" "")
; [1 T [0 }* w$ k( _. U" f - (setq lay-idx (atoi index))# E; a/ f% g% V. `) o3 e; |+ e# ]
- (setq layname (nth lay-idx laynmlst))
: ^7 |, b' O8 w3 n1 v2 _ - (setq layinfo (tblsearch "layer" layname))) M0 X3 ?2 S" y
- (setq color (cdr (assoc 62 layinfo)))
3 q1 o$ E, j9 |8 F - (setq color (abs color))
) j0 ?8 W3 t- W2 X. _- t9 z - (setq colname (colorname color))/ z# x# j$ m5 l, j* q" o! \$ ?
- (set_tile "list_lay" (itoa lay-idx))$ X" d& p5 e* _ C8 m. i
- (set_tile "edit_lay" layname)
% Z+ G4 _( @5 ^6 F6 A1 K; G - )
% [ m: y$ D% O# n% S! ? - ;;3 W/ u% ]* o* R* m$ |( {
- ;; Reset to original layer when cancel is selected.
8 B% T0 g9 i- g* s; A - ;;( X( e7 H" j& u& f, g& N
- (defun reset_lay ()' Y% K+ E( ?0 d* {1 K8 q8 u* ^; h, b8 d
- (setq lay-idx old-idx)
; X1 u8 U2 V# d1 L5 _' M4 z - (done_dialog 0)
" J' p8 h7 J. J# H4 N - )
" K2 {! V" y7 S5 H$ M$ W - ;;
& A8 C0 Z! h6 \5 z - ;; Checks validity of thickness from edit box.
4 B% Q9 B+ L$ w- w- s1 V - (defun getthickness (value)
& _- T7 @6 P* o) W$ m) M - (setq ethickness (verify_d "eb_thickness" value ethickness))' w" ~ b+ q- o% K# d H% Y
- )0 }' Z1 J8 U! a1 S; ^* ? A8 W
- ;;1 E$ h4 J( \8 u$ i$ V _& ]0 b
- ;; Copy of (getthickness) for ltscale. If more, make this function
3 S, r- S# j) c - ;; generic.
/ v2 p) r9 `) t% {+ |9 t/ K3 m! ^ - (defun getltscale (value)
* N9 Y5 L5 N( M% n$ n3 Y - (setq eltscale (verify_d "eb_ltscale" value eltscale))
% Z% Q3 c+ S- o, X. y& h - )6 ^/ V/ `3 b2 c6 b& Z7 A
- ;;
2 B5 |0 ^( @, G" z- Y- [9 a7 a - ;; This function makes a list called laynmlst which consists of all the layer) U2 D. _9 {$ X2 P$ c9 |
- ;; names in the drawing. It also creates a list called longlist which
( M+ V# _" Y2 z; b( o3 U - ;; consists of strings which contain the layer name, color, linetype, etc.
) Y% h- ^1 s# \ - ;; Longlist is later mapped into the layer listbox. Both are ordered the
! i" A( f+ b4 A6 T6 U4 Y - ;; same.
0 `& t/ @1 R% u' p9 x! h - ;;
& a8 o) a1 ]/ i( g - (defun make_lay_lists (/ layname sortlist name templist layer_number)
, t8 l; J) G) [ - (setq sortlist nil)
5 _8 Z3 S1 A) \3 o - (setq templist (tblnext "LAYER" T))
! V1 n. c6 ]2 ` p, h H$ X - (setq layer_number 1)( i! ]. P8 v9 y# G( c( [1 e4 R
- (while templist* I! H3 d$ h0 Y0 i. i; N+ p
- ;; No xref dependent layers, please., t8 E) L4 Q2 g- R% ~2 }7 P& X
- (if (/= (logand 16 (cdr (assoc 70 templist))) 16)
& n$ N8 \1 U* O; v* ~ - (progn. k$ _2 p3 W( i9 \7 q x2 M
- (setq name (cdr (assoc 2 templist)))
! {4 [' B2 ~; V2 O5 M: U. S( C - (setq sortlist (cons name sortlist))6 U: \/ [+ ?6 c5 H. |* y: f
- )
* G" @. a3 f* z" x - )7 M/ E# [$ d3 U$ y. R( u" \* q
- ; Get the next layer.' N7 r- R' h9 E
- (setq templist (tblnext "LAYER"))
, B/ q& Z+ X w/ w% P2 K8 U - ;; Not dead message...
L3 F! e( D, A- E' j - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))' z+ a+ v+ o* ? a
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
8 S9 N3 n' ~4 Y7 `' p - )
7 _& C3 e4 }5 z3 E0 _) ~ - (setq layer_number (1+ layer_number))
' |& n D4 h* l$ g0 c - )
; ^, R5 N3 ^- N - (set_tile "error" "")
# n" f' g6 R/ ~; t6 V - (if (>= (getvar "maxsort") (length sortlist))0 x+ H, n9 @6 i1 [; a1 E
- (progn' p$ ^+ C4 j$ L" S9 [9 S* z; z
- (if (> layer_number 50)6 |" k1 g4 a3 T; ?* D4 T, v% h
- (set_tile "error" "Sorting...")$ a' U2 d' k- a; |* l4 d
- ) i/ p4 X5 `: y. C' T
- (setq sortlist (acad_strlsort sortlist))6 _6 C% ^4 ]$ ]- E$ q; r
- )( l) B& Q& e2 P9 w
- (setq sortlist (reverse sortlist))' u: d7 r7 Z1 m# w. n; y
- )/ s# d6 a8 Y1 Z% A- s
- (set_tile "error" "")+ G8 i+ J0 b$ w' E' q
- (setq laynmlst sortlist)
" d' H$ {0 V7 v5 P - )8 R" t3 P" d# r6 g2 ?$ ^; {
- ;;
; f; S4 S3 P- [+ f; q - ;; This function makes 2 list - ltnmlst & mdashlist.4 K$ f, ~. `; v# l8 \5 C2 F( z
- ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist
! F, S3 G2 ^* k" h3 J9 Q7 B9 Z% Y. u - ;; is list consisting of lists which define the linetype pattern - numbers
( W* T4 T! v$ F# }" ~ - ;; that indicate dots, dashes, and spaces taken from group code 49. The list) P8 O& V( h# z$ @9 a! j: X! c
- ;; corresponds to the order of names in ltnmlst.
2 w2 V. i; g4 `# O' _( ^5 D - ;;
. R$ b+ [. ?8 h% W3 q2 T7 a - (defun make_lt_lists (/ ltlist ltname)
# a2 Y5 f4 t5 z - (setq mdashlist nil)
% ?0 D% ?. B+ A6 g; i; h - (setq sortlist nil)1 h* {4 C6 J! X" K3 p
- (setq ltype_number 1)
& z3 O/ ?7 Q% _& t$ j" N - (setq ltlist (tblnext "LTYPE" T))
$ U- M |2 q& ^6 q- W, ]; p - ;;(setq ltname (cdr (assoc 2 ltlist)))
# u8 l9 `0 q3 W6 H1 ]5 _$ G+ R9 i - ;;(setq ltnmlst (list ltname))
7 e. \; _3 s. j; q m, L - (while ltlist
( N. X$ Z, @6 X' ]4 F - ;; No xref dependent linetypes, please.
- k8 s | j9 t$ ~3 G. U - (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)
: z2 B, A& c7 h2 n) g - (progn; s6 f6 `# @6 A
- (setq ltname (cdr (assoc 2 ltlist)))) e: M0 n* R) q7 ^2 [4 N
- (setq sortlist (cons ltname sortlist))" t$ L. ~# K) T9 X3 `5 @; p
- )
4 W- ?- Q3 j3 I9 j2 O( f* h - )
5 g; K4 L6 a5 O; Q4 z0 d - ;; Get the next linetype.
& k# Z( b$ [0 w# h/ K - (setq ltlist (tblnext "LTYPE"))
: I9 J1 E# |# V" m* G - - }6 d! M8 p% U+ n* V ]
- ;; Not dead message...) ^4 _9 Y8 W) s) R" I
- (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))" w1 A. }& f: j6 s9 d
- (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))! n+ l8 X8 L; O1 a0 a: M+ e, e
- )
# B- k' u7 M6 |; D7 ? - (setq ltype_number (1+ ltype_number))
8 N' F# y# P8 U% b) x! s4 x3 a - # R, @& p7 K5 {7 b3 p
- )
2 m* k% y) J* l7 K - 6 @: }" S4 {5 s$ M4 v4 u
- ;; Remove Collecting message.
8 i& n( Z! n$ a n - (set_tile "error" "") O* T! j9 k+ N
- - E# w2 G$ Z6 j) e) T+ ^8 Q4 ]* `
- ;; Sort based on maxsort.
! P ?, |" v( M1 K7 r( r1 C - (if (>= (getvar "maxsort") (length sortlist)) M( ]* j1 _3 C# r/ P8 ?
- (progn* ^" |& V3 y, |9 x
- (if (> ltype_number 50)& Z, [% R6 E: Y. s8 q
- (set_tile "error" "Sorting...")' Y n* {8 f3 U/ x, J" a, o9 T
- )1 E) j9 d# S1 q! i
- (setq sortlist (acad_strlsort sortlist))0 n7 v) w6 a( e" m, K( y
- )+ ~7 f) o6 |4 m, N
- (setq sortlist (reverse sortlist))1 |: h+ [# z+ s
- )
, p0 J$ s" f# S0 n7 l) T! n - (set_tile "error" "")& `8 y/ U/ y& [! u( ]
- (setq ltnmlst sortlist)
3 B$ v2 A0 l5 ]; b) R% C" I - X/ g, _* L! X2 J
- (foreach ltname ltnmlst
* g, W1 H3 {) I - (setq ltlist (tblsearch "LTYPE" ltname)); ^6 e* b$ ?9 _8 k; e) }* }* d
- (if (= ltname "CONTINUOUS")
- I% t9 o. A- n) D$ f% D - (setq mdashlist (append mdashlist (list "CONT")))
' ~) y5 p8 y. x+ l7 g - (setq mdashlist1 [6 B o4 c3 m8 a$ [; E
- (append mdashlist (list (add_mdash ltlist)))
9 J" f2 v. ?/ ?3 H3 G - )
" g% Q1 _# Y0 B# A& v7 C' a - )6 Z0 N! s! F0 W8 t
- )5 Y( M0 z6 W2 F- T5 `
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))# x, Z0 S8 z$ b6 I
- (setq mdashlist (cons nil mdashlist))
. Q3 z+ ]0 [: a - (setq ltnmlst (cons "BYLAYER" ltnmlst))
3 p% x1 p6 v4 v; x7 G - (setq mdashlist (cons nil mdashlist))3 r: Y3 h% ^1 k- j \
- )9 g" P4 m* ^' }, |6 P( h' }# } D3 g5 W
- ;;
4 l6 W' S0 j0 W - ;; Get all the group code 49 values for a linetype and put them in a list8 a5 C9 j! s- F" v
- ;; (pen-up, pen-down info)., c: b2 F5 y* f- F
- ;;
$ R7 g' Y% w( w0 F, f - (defun add_mdash (ltlist1 / dashlist assoclist dashsize)
; C- G, l4 t7 T6 e- j - (setq dashlist nil): W* X; h+ }, g% a7 c
- (while (setq assoclist (car ltlist1))
0 B |0 K2 J9 T% { - (if (= (car assoclist) 49)
! `' s; v6 X+ o4 i/ K2 U b - (progn
9 A$ A5 s$ ~5 w: M; U - (setq dashsize (cdr assoclist))* `+ N$ M1 D- o2 t! A% E, @! w
- (setq dashlist (cons dashsize dashlist))/ c5 p- r4 {. X( j
- )
$ @9 }& [8 y/ d# U: u1 n - )1 |( V5 t$ n6 S6 T, s3 j$ H5 t: V
- (setq ltlist1 (cdr ltlist1))8 p" z% o9 G# G$ x! j8 B7 U
- ) k! X7 p7 z# Y, G- M/ ?# [
- (setq dashlist (reverse dashlist))$ i' O0 d7 d% n) A+ k) T1 b
- )
8 {0 h$ v9 J( ?0 i4 U - ;;- l! f! C c' h
- ;; Color a tile, draw linetype, and draw a border around it
$ L: r8 `0 b& c. R - ;;% I% G! ]3 v8 l6 x+ D" k
- (defun col_tile (tile color patlist / x y)
) p. U7 t) U, @! k' D- w( Q - (setq x (dimx_tile tile)) V. g ^" ]6 R" k8 x& D
- (setq y (dimy_tile tile)), V$ t/ |" m. i* b5 [6 B3 ]$ `
- (start_image tile)- C2 b! \+ `& P
- (fill_image 0 0 x y color)+ X0 n: W% z5 A- c" h* @& v% I# N6 h
- (if (= color 7)
0 [; J! L+ z$ w m U- L. X3 W$ U - (progn
5 H# w9 ?, W$ q/ p# R, O) |' J) j# D - (if patlist (drawpattern x (/ y 2) patlist 0))4 h1 o9 q8 V8 A6 k8 T# M( d
- (tile_rect 0 0 x y 0)
9 y9 `3 L0 j/ b H- | - )
( K. x: G/ ~; u1 N4 [2 i - (progn' Q6 ] o4 ~0 |* S. N
- (if patlist (drawpattern x (/ y 2) patlist 7))3 h* l) Y, L4 v4 C! y; J
- (tile_rect 0 0 x y 7)8 y* \$ v! l7 y& Q; J2 c
- )' r% \ f. F- c
- )1 `; C+ v2 C* z: C! V! S+ D1 b
- (end_image)' o$ h% j7 y1 o
- )2 q$ A# d& M2 i. t
- ;;
! E- \/ e9 O* M/ ` - ;; Draw a border around a tile
' h7 T& f/ e* u0 P - ;;0 }9 K5 q& d: a: y& Y( V
- (defun tile_rect (x1 y1 x2 y2 color)" Y: @9 H8 _# n" @+ e
- (setq x2 (- x2 1))
/ |! K( [# f; a& f) D5 z - (setq y2 (- y2 1))9 a# `& ^8 Y" I! `* ^
- (vector_image x1 y1 x2 y1 color)
# M$ ? {, L! p% N/ G6 [ - (vector_image x2 y1 x2 y2 color)) @3 W$ g( C1 ?+ |6 e5 R
- (vector_image x2 y2 x1 y2 color) e5 y2 n/ |, E4 ^: j$ c1 a
- (vector_image x1 y2 x1 y1 color)
+ ^6 T# @1 G9 K: F+ O$ X9 ~ - )2 E L+ A/ w9 s; x' c
- ;;
1 x% f5 Q3 n( D6 M. @. ~& N) p& X - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
+ E! Q% }# k! f& l3 D( p - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
& w3 z' s3 ~# S3 O! q - ;; list of numbers that define the linetype, and color is the color of the7 N: w1 u3 @0 u9 C" Q
- ;; tile.% j1 }- ~# Y) q. z( s6 b
- ;;
4 X2 k. P/ F% w& S7 J% z" x - (defun drawpattern (boxlength y2 pattern color / x1 x21 x7 j3 m& P% d9 ? U( C& J
- patlist dash)
9 y7 ]. L& E9 r) b. q - (setq x1 0 x2 0)% _! E3 m# F& ?6 m% G3 j
- (setq patlist pattern)
6 q$ x. U, I9 y9 p - (setq fx 30). w( w0 o! |1 M+ R- O9 i: \$ O
- (if (= patlist "CONT")9 l! V* @! o3 A" _# ^4 |
- (progn (setq dash boxlength)
1 E2 Q; l* I' L& F6 U - (vi)
Q. ]7 |4 w5 f& D% o - (setq x1 boxlength)
H7 n5 ^. C8 J - )
0 [' W" `: N; O- }& b, M - (foreach dash patlist( Q# S. U L9 m' `
- (if (> (abs dash) 2.5)7 o4 M" \& D& ]4 ?" O" b
- (setq fx 2)
1 a: N" |6 B! B9 w% u) _4 a - )" }; n9 n1 f3 ~, x9 g% h6 @
- ); S1 o3 J2 Q' N' G! k9 I* K4 K
- )( z" l" Z( l) T9 ]" g! G3 g9 ~2 o
- (while (< x1 boxlength)
( u8 a7 A- \) G- O+ l& {2 j - (if (setq dash (car patlist))
' I' }1 c/ `9 W7 v+ W - (progn1 h) Q ]3 p' S3 V' y' J
- (setq dash (fix (* fx dash)))7 d3 c/ T4 ~4 Z
- (cond
% {. G) |' E. @& M0 e- S - ((= dash 0) (setq dash 1) (vi))3 K: i2 G( A5 {. Y' A* f/ i
- ((> dash 0) (vi))) x" u( `" e2 R9 U F+ q
- (T
- d* P5 f6 s4 l1 n0 F - (if (< (abs dash) 2)
# j- g- r+ N0 ?6 ?- ?5 L - (setq dash 2)
* a" U! |* p# i6 S, R& i; a( G - )
- B$ Q, e: o1 I3 {8 o# S' F \4 n - (setq x2 (+ x2 (abs dash)))4 t' |) r+ h% n' i) p
- )
2 z# d U* D$ n& o1 Q0 c4 t- n - )" j7 k7 G/ a+ B+ x& P
- (setq patlist (cdr patlist))
: q8 }, ^ i* j2 O$ L$ n0 \5 a2 t - (setq x1 x2)3 |; B7 Z% k4 \& ]- D
- )
) P' M+ M0 ~* c2 u' f9 M - (setq patlist pattern)
- u2 x6 z3 R& t2 l - )
5 d4 q9 }3 U" S - )+ e' s5 X$ T! U- b Y
- )
. h# W6 x4 }0 B - ;;% X0 c" I, R- I4 T1 A0 d. H
- ;; Determain state of xclip
5 o$ l( y2 |" {0 p - ;; Returns the group 71 value of the spacial filter dictionary.6 P8 D6 u7 S2 r
- ;; If the entity doesn't have a spacial filter dictionary, this
1 u& T0 I, \: u6 F& l3 Z4 ? - ;; returns 0. If it does it will return 0 or 1 depending on the. t: L% @3 L8 x; R! R
- ;; current setting of the state of the clipping visibility.
; X: B- z5 o. ~# j$ D - ;;
! s0 c; A. |0 ~8 o; x$ u2 k4 K - (defun xclipon(elist)
B5 Q/ c9 \0 c) G - (setq hasclip T)4 k9 Y; B; z+ P9 a, Y. P
- (if (/= (assoc 360 elist) nil)
) P7 p) i8 X. q- R; W - (progn
- P, ?0 L: J1 {* K+ d$ s, B( ? - (setq tmp (entget(cdr(assoc 360 elist))))
, {# i5 z5 R& h6 Z3 K7 j - (if (/= nil (assoc 360 tmp))
2 N( P2 ^; _1 c) w - (progn* h6 J! l/ G* O. c# F2 Q5 l( T, a
- (setq tmp (entget(cdr(assoc 360 tmp))))
0 x/ n0 C, H6 t, Y, ^( W. m N% ? - (if (/= nil (assoc 360 tmp))) Y7 v. I; I) y! n$ a
- (progn
0 \; n" X% m& K: i& _. b# t - (setq tmp (entget(cdr(assoc 360 tmp))))
- G& o# i1 ^+ r1 I - (if (/= nil (assoc 71 tmp))8 R7 _& p: O4 d2 t) A
- (cdr(assoc 71 tmp))$ Y: T/ u/ P4 B% s8 b4 H0 r; O+ h7 _
- (progn % C5 }6 H' @9 h' z
- (setq hasclip nil)' y* d. w5 m7 ^ B \- m }! m F
- (eval 0)0 X. H4 u2 v: G) x. a& E2 y
- )
$ L7 q+ n6 ]4 T2 L! H - )6 c& ^3 L! ?: ^/ P8 b& n8 ~
- )
( U) g; u% n* `0 n# z" e - (progn
2 l; F6 Q' d- H- y* S! v - (setq hasclip nil)9 l% X/ \4 c L- {
- (eval 0)
( C! J% U% h8 |2 |$ G% _6 i - )
5 {& X9 W# m7 ?; O0 t4 y |- t - )
4 }+ H+ }8 z* }9 I& |6 X - )* Q( d7 b ~6 V+ _5 [
- (progn # K, y0 a) l4 c# z% H, d
- (setq hasclip nil)/ J* ~7 B0 o" `+ Y8 U2 e2 Z
- (eval 0)
& t# [2 e4 j9 q6 v; q - )1 L9 k7 f$ l. g8 J' J9 |% \
- ) U) R3 q6 y) t2 E8 Z6 s ?
- )
! W& D( O8 g2 o0 J4 x% F! a+ E - (progn
( Y) b- r4 X7 A - (setq hasclip nil)
% P& i& |! f' T. W - (eval 0)
, X g0 N* P% @$ U - )
* \. E$ a# m! O- ^( d - )
7 z" w6 j% Q8 b" T6 D$ | - )0 S6 K3 r- }4 T6 F0 D" W5 f' a1 I2 g
- ;;1 P( W7 q0 G3 l% L
- ;; Draw a dash or dot in image tile* g0 T5 E; @ Z' B* V( C( j
- ;;3 p+ z$ z' E# t* `5 I, k2 Q
- (defun vi ()& \$ ~) U) W0 Z1 h, G, ~! w
- (setq x2 (+ x2 dash))
- O; N$ W6 L; i( B9 _/ ], J$ S5 P0 a - (vector_image x1 y2 x2 y2 color)
5 Y* K" B6 L, F7 ~' E' W - ): l* q- q" Q- Z- C# ~8 J% i6 u# M4 |
- ;;4 e0 I$ j3 Z5 ~ B8 O* g# k
- ;; If an item is a member of the list, then return its index number, else+ n9 o7 C( G0 ?0 I5 T, E* v: V
- ;; return nil.
' y$ v' I# `! V+ A - ;;
: x9 m" N- m9 w4 c/ R1 f - (defun getindex (item itemlist / m n)
/ U/ H& q l9 l) H8 p& q - (setq n (length itemlist))9 o& L* U: ?) N. o
- (if (> (setq m (length (member item itemlist))) 0)
5 H- a8 \* t2 n# N0 d8 ]" k/ c - (- n m)3 Q0 ^8 R# n5 Q) m! t$ [# Q: E2 U
- nil
; |. J% T7 d5 T2 g - ) S/ l" m+ T0 _. y+ `" k+ M
- )
5 Q) @8 y# ?! O8 T- M - ;;" u; P. S$ j! D. R$ r' s" z
- ;; This function is called if the linetype is set "BYLAYER". It finds the
( b& \6 U! h, D+ }6 x; c - ;; ltype of the layer so it can be displayed beside the linetype button.
7 `3 c' Q, o1 D0 j - ;;
% n4 @$ E' F, v% h3 |$ b$ G - (defun bylayer_lt (/ layname layinfo ltype)" `. O+ ~0 Q/ O, P! d- q6 W. l
- (if lay-idx
" l+ T- c5 ?7 `$ q e - (progn
; M: M7 [; i9 {$ H2 n5 A% ~ - (setq layname (nth lay-idx laynmlst))& w/ t! Z, J8 H4 @* j( L
- (setq layinfo (tblsearch "layer" layname))( ^1 b2 R- K* i
- (setq ltype (cdr (assoc 6 layinfo)))$ a1 F2 D; m" s* L$ }9 e0 U
- "BYLAYER"! Z1 e0 u) J6 g8 z/ k. o
- )
2 j7 p& v3 j' b" q - "BYLAYER"
# X3 l0 u3 \8 b- P1 d; x - )
: R) _9 o* o7 D/ x) G% \( | - )% D' S j0 _$ D5 @* I8 M# P" q
- ;;
5 D7 e$ u" @* y H( C% i - ;; This function is called if the color is set "BYLAYER". It finds the color- x# _2 t. R+ |+ m2 s
- ;; of the layer so it can be displayed beside the color button." G$ a4 D6 w. n7 h, _; \; C
- ;;+ b- n* p! C i! F; F5 {" A2 f; Q: j5 k
- (defun bylayer_col (/ layname layinfo color)9 i8 q: ]6 {: Y0 m
- (setq layinfo (tblsearch "layer" elayer))
. A5 n+ `( u* W8 ^* G/ g - (setq color (abs (cdr (assoc 62 layinfo))))
9 R* v" A* i& R8 g9 b - )
5 }, R$ D% p% q8 N - ;;
& G: x- {5 @. Y/ }, C7 v - ;; Used to set the color name in layer subdialogue.- z' Z8 R9 ]2 {
- ;;$ n3 g- u3 Y, `! L( m- A
- (defun colorname (colnum / cn)
" {- _3 T& x2 z. W# w% I% s - (setq cn (abs colnum))
* z6 ^# E; ]$ H! C) a6 H1 D - (cond ((= cn 1) "red")( I% b" V$ X* m+ L
- ((= cn 2) "yellow")
% T- x4 D$ ?) h1 w - ((= cn 3) "green")) [- r& H1 i3 q+ X9 ^
- ((= cn 4) "cyan")% U; b4 {) l& I4 w+ }
- ((= cn 5) "blue") T6 t T4 \& w0 o0 s, y
- ((= cn 6) "magenta")( r$ i) D i/ l9 g9 _0 V* j
- ((= cn 7) "white"): e, \# R R9 L# A) e3 L0 z! v
- (T (itoa cn))
4 y, g8 C. a) W4 a/ ~; N - )+ I8 k) M% Z8 {4 ^
- )
5 R$ Y# I0 N* K4 M - ;;
2 t) T2 t5 O4 S) s* M0 t0 ^ - ;; If their is no error message, then close the dialogue.
4 n% N6 x$ [% ~- A( D# O - ;;
7 C$ f5 B: H# u, Y. | - (defun dismiss_dialog (action)$ W! r) V$ I7 r) v+ H
- (if (= action 0)) d: K s& R& N; \) L" S
- (done_dialog 0)
# I. r' `. A* l( E& I# z" a6 t f) f - (if (= (get_tile "error") "")
0 @( ~8 B- Q @- U8 q9 I% } - (done_dialog action)! T$ U/ o, ^2 j" C+ |; R
- ): Y& e& M# D/ l& M& H8 @- N9 V
- )
) @' p+ Q+ k8 G3 } - ); e2 J/ i5 u4 ?, s* K" B& s
0 Z+ q. i; j" X& j. h- (defun test_ok ()
% S3 t( M- }0 t/ t+ a" g# E - (if (= (get_tile "error") "")
; _+ s" b$ m2 ]# f: k - (done_dialog 1)
9 c ?3 R, }* _$ _* S; O* [ - )/ @0 E$ A0 ?! B0 u! p. ^0 i( e
- )
- @) w& w$ j( N5 V3 K0 U: r
0 d7 V# ]1 [; [" D: E2 Z- (defun cancel ()
, S, ? V% n9 W/ V - (done_dialog 0)
4 H3 R8 @: @6 N, Y% O+ s1 V - )/ D2 v. Z& y) ]- H/ E7 b9 G q
8 H, V% h' N% e- ;;; =======================================================================1 L! ?. { b) c9 ?1 \3 x
- ;;; SETUP layer and linetype lists for application, and initialize all: I3 R. ?# r- C i: t
- ;;; program variables.- ` V3 B D8 P7 \: i
- 6 }& _/ X* m" s) f
- (setq elist (entget ename): U/ ?, ~! J' u9 w
- old-elist elist
7 O/ [: l+ A6 L( |% Z# |1 a - modlist elist
% G, D: O2 @* p5 B" R9 j3 r - etype (strcase (cdr (assoc 0 elist)))1 Z# @% a J) P
- ecolor (cdr (assoc 62 elist)). Y# R7 m% E) B8 |/ ^0 d# [- A
- elayer (cdr (assoc 8 elist))) i, K1 ~& U% ?+ F% }5 f
- eltscale (cdr (assoc 48 elist))
+ z/ b- m! c4 U I+ b( \ - ethickness (cdr (assoc 39 elist))( ]& B: n9 Q" g. M! \9 B d
- eltype (cdr (assoc 6 elist))
- ?& d5 |! N3 P9 J' i9 u - )/ Z) _( l; I4 `& Q
- (if (= (assoc 210 elist) nil)2 @' l9 S- J- C( O
- (setq extru (list 0.0 0.0 1.0))
1 O v8 _$ W. \6 f, u - (setq extru (cdr (assoc 210 elist))): O! [8 g4 A G9 I* {1 }
- )
1 O! Y, E) G5 f0 m
, B# e* O0 O0 p2 H3 n- (if (not ecolor) (setq ecolor 256))
0 n h* Z7 K% E# i1 T - (if (not eltype) (setq eltype "BYLAYER")). W. u, i: G" }+ e* ]+ d w
- (if (not ethickness) (setq ethickness 0))
/ \! V$ E" Z/ S7 i, } - (if (not eltscale) (setq eltscale 1))3 K: C* K" }1 m8 z! r
- ) ; end ddmodify_init
. J/ ?: E2 r5 O `! K& ~* R
6 W" E* ^5 y* O$ o) w! C- ;;; --------------------------------------------------------------------------8 W+ p/ H) K8 B: N
- ;;; Function: DDMODIFY_SELECT' P) d% ?2 ]: N, [2 r
- ;;;6 g6 P' U4 I; C5 J# d' _
- ;;; Object aquisition function.
; ]% [6 T9 j# A$ v( v- W - ;;;
| H+ ]5 d l) \ y8 c - ;;; (ddmodify_select)
; M, \7 g* |1 _/ J4 ^ - ;;;
. h% O# ^- o5 t8 }+ Z1 K$ L9 e - ;;; Obtains object to be modified, in one of three ways:. r# ]9 c4 ?1 }: J
- ;;;
0 Z i7 E, z7 |9 Q - ;;; 1 - Autoselected.6 \7 U0 T ]) }, c
- ;;; 2 - Prompted for.5 W& F& _# E9 k, {4 o1 e0 d; i" O
- ;;; 3 - Passed as an argument in a call to (ddmodify <ename> ), a0 C. D" l* \$ E
- ;;;
6 r& g1 L: y, |; L! k+ I; r4 a - ;;; The (ddmodify_select) function also sets the value of the
0 P1 x) J5 h/ r - ;;; global symbol AI_SELTYPE to one of the above three values to
' }8 c" e7 X, d- g - ;;; indicate the method thru which the object was aquired.
7 X5 W/ w, ?) _7 H - ;;;& `+ ~! @: C$ M- E) t
- ;;; This value can be useful to applications that want to RESTORE, T7 E7 b" F2 \- O6 [* y7 V* o0 k" N
- ;;; an object that was autoselected to its previous selected state
) G; m0 Q* y, N0 Q - ;;; when they terminate, although there doesn't appear to be any, F+ J8 {4 e" f9 L/ Q \9 u
- ;;; way to do this right now.
. F% ~9 z, ~7 ?/ V# O! y% j
6 Y2 v# I( F- S' R0 R; M, S- (defun ddmodify_select ()) t6 j5 a' c$ r( r8 L& e4 ~6 g+ E
- (cond
9 S' P# z6 ~, e, u5 r: ?9 M - ( ename ; (ddmodify) was called
) c( }2 [% T9 q) K - (cond ; with an <ename> argument
: j5 h3 K# c0 Z4 O/ }% v - ( (entget ename) ; If object is non-deleted4 Q" l5 s4 h* G
- (setq ai_seltype 3) ; then return its ename.
" T; `. V# l0 y/ c4 P# m% L - (ai_return ename))))( h2 U9 ]8 }5 ]. L! `7 T
- 2 x( U; {# Q0 e8 }( |, A
- ;; return auto-selected , see ai_utils.lsp
1 V; T3 A' E, W |: E( L2 Q" B - ( (ai_autossget1 "\nSelect one object to modify: "))
4 C T: T- N1 Z" k! d - 3 O/ d- L- y# A9 N+ z* W4 ~
- (t (princ "\nNothing selected.")7 k1 B5 c" t% D7 [' p7 N/ R
- (ai_return nil))
8 F' T8 F: s+ ]0 z - )! C- ^& a; @6 r# r+ ?7 T
- )0 v* z% \$ S* [, Y$ b
- * B. G, B6 o. K) _; t* L9 F
- ;;; ============= Command line interface function =======================" V3 B v- V: M1 W
/ O4 r; C5 B% k- (defun C:MMO ()
1 d- N# u* D4 Q9 K: v! @" l - (ddmodify nil)
# j2 o1 k( u$ C- E6 g - (princ)
2 V2 B! W! J q- @3 p' M. e: m) _ - )
4 r& a; ^4 \, L" P) n# v3 l. ? - & Y; \) u5 K" M# v3 Z" ?) l( q# h
- ;;; ================== (ddmodify) - Main program ========================0 T5 j0 b8 B5 E
- ;;;
4 P' l) ]$ V4 r - ;;; (ddmodify <ename> )3 p; Y: Y5 ~; m
- ;;;2 r7 u( l. B& p/ [' _; @% W" _( G
- ;;; Main program function, callable as a subroutine." _- Z& m) X j
- ;;;
8 s: J( v, h% d, m( o - ;;; <ename> = object name of the object to modify.. B! g* ?2 V/ O
- ;;;
! l) i. \% ~& f% ?: P: k$ v7 T - ;;; If <ename> is nil, then user is prompted to select
* l* |3 B' f: _2 ^7 A. S+ a - ;;; the object interactively.
b/ p+ k# O2 | s6 l6 | - ;;;* T% `8 P: N" H
- ;;; Before (ddmodify) can be called as a subroutine, it must
* a; G8 y. k4 F5 s+ i - ;;; be loaded first. It is up to the calling application to8 e7 }/ j4 u* k! B0 F. J9 |: B9 N( U
- ;;; first determine this, and load it if necessary.
$ k6 B/ w' I+ L6 d: Y) s - : O; \( B1 ]! H) h9 j0 V
8 A( w, n. C7 r! J- (defun ddmodify (ename /
8 }2 M. @2 K$ ]( _ - 2ndpt ell_calc_area move_pt1 templist7 {1 B/ B; d4 i5 m% O
- add_mdash ell_tile n tempmod
. J5 |9 \# s4 Q* G& b% A$ p - alipt eltscale name tempst_ang
# D" F0 E( j6 O6 p4 ?" P- U# `, H - ang eltype newpoint test_ok( ~( }+ _+ U0 o& S
- arc_calc emod next text- B/ m# Q8 \1 U4 J+ n5 p- F
- arclen end_ang next_vertex th-value
# K* D# T3 H8 O2 h3 Z - assoclist endpt obl tile; A3 I* {2 {0 X8 h/ G- h z# f
- atprompt errchk off tile_rect
! j: m5 h8 X/ x0 Y; E* p - attag ethickness old_majrad tilemode
" n, A( ?- I9 t2 C" V - attprompt etype old-closed totang6 l, E; W4 J. T0 O9 X( R# H
- bit extru old-closedm tstyle
( p4 ? D; q2 Z& A - bit1 fchk old-closedn u# L! d: q0 F" ]& ~# B
- bit-10 first-10-rec old-elist undo_init
4 D+ e' l3 A7 |3 t - bit-11 first-10-time olderr upsd
3 m9 k% p+ `# y - bit2 first-11-rec old-fit v
" {- y3 j4 R3 E! o2 Y" h1 t - bit3 first-11-time old-idx va7 J D/ S+ r$ t/ x% K. `
- bit4 fit oldlist value6 |2 j% B2 x8 P& A+ E1 V
- bit70 frozth old-spltype ver_4
$ H) F0 {) x& y - bit-70 f-vis old-u ver_ang1$ J$ T9 x1 O% ^: S
- bit75 fx old-v ver_ang2
" d$ `" V- j( Q- S% K - bk-up get_color on ver_col
- K: i' U. ?" G# ], X - bkwd getcolor onoff ver_colsp
2 L/ T: c. O, \+ _4 j - boxlength getindex on-off ver_eangle) `+ u; q' k7 j( r: u9 Q
- bylayer_col getlayer patlist ver_hght* M2 f0 U! |% d
- bylayer_lt getltype pattern ver_majrad
; |8 w' V2 B3 A1 [" R M( I - calc getthickness pltype ver_obl3 G% H% d _+ `! `7 `
- cancel globals polytype ver_pt13 Z3 h7 `* { |5 L; L4 T+ R4 _% |; w1 h
- cir_calc ha pre ver_pt29 D( a7 S4 t- g
- closed ha-prev proplist ver_pt3. J2 J# d! T* ^, [' L9 y q
- closedm help_entry pt ver_pt4
! p' c$ j& v6 B4 K7 I - closedn hght pt1 ver_rad, X3 t9 A( T) r0 c+ Z7 B- v$ o
- cmd icvp pt1_eq_pt2 ver_rot* C! F6 n9 ~# L
- cn image_add_vector pt2 ver_row; Q; Q9 l# p! w, @/ W; o
- cname image_clean_variables pt3 ver_rowsp6 O" u8 e/ w$ b- n; b1 y4 @/ z h, e9 M' a
- cntl-pt-indicator image_cross_product pt4 ver_tag
8 d) [; m0 A/ {' Y# E7 d* X7 l3 V - code_71 image_disp_opt ptype ver_u z ^" Z1 K+ |
- col_tile image_dot_product radius ver_v% @* W: S Z2 I% T3 K! m/ \
- col-idx image_normalize_vector rational_spl_flag ver_wid
4 Q4 t9 |. D- ^) V5 G) `3 h - colname image_rotate_vector reset ver_x1
m6 Q( l. e( T5 K - colnmlst image_scale reset_flag ver_x2) _( a, T; G4 w- }
- colnolst image_scale_vector reset_lay ver_x3" a% U; W9 u, e0 q* R
- colnum image_update reset_lt ver_x4
) H8 v! {! B6 I6 g8 r6 n - color index reset_uv ver_xline_pt1
! _- b/ O1 e; V6 m - colorname inv rot ver_xline_pt2; ]# `% R n& c1 b4 z" Z8 f
- colorno item rows ver_xline_x1
/ X& \* E: M# z2 I0 w9 u - col-sp item1 row-sp ver_xline_x2; y5 b. v$ d3 G; D0 `1 _
- columns item2 rrat ver_xline_y1
' e! S0 T1 R! N) K1 R: d3 A/ q - con itemlist s ver_xline_y2
( d# o& ~4 P: q k9 ?! o - coord jlist set_action_tiles ver_xline_z1
" q/ k% W; W/ P2 B - ctr jlist_act set_just_idx ver_xline_z2
2 k& x( |3 P5 X - cur-10-rec just-idx set_tile_bk-up ver_xscl1 l$ U6 l% x; R" t
- cur-11-rec layedit_act set_tile_cntl_pt ver_y1
) V% F3 }0 y! ^' }$ s2 F - cvpname lay-idx set_tile_data_pt ver_y2
4 R, @* b0 { u9 S) u( [2 L/ Q - dash layinfo set_tile_dirv ver_y3
* Y5 ~9 e2 u$ @) k1 D - dashdata laylist set_tile_edges ver_y4
& V4 f% g1 Y9 c - dashlist laylist_act set_tile_endang ver_yscl- c3 d: |! E& U" I+ C% j
- dashsize layname set_tile_hght ver_z1
( X4 J1 {2 z4 M - data-pt-indicator laynmlst set_tile_icvp ver_z2
! O$ I- m: l+ u) _ - dcl_id layvalue set_tile_just ver_z3 t- |3 \, F1 T7 ~6 {
- dd3dface line_calc set_tile_obl ver_zscl
1 [2 p J0 R% r* p( R+ s) Y% I- c+ p8 Q - dd3dsolid linetype set_tile_prompt verify_a
& l9 L E3 ~6 L- E& p - ddarc list1 set_tile_props verify_d
* E, t* L: {$ q& P" b - ddblock longlist set_tile_pt1 verify_i
) r; j& W& w$ H* { - ddbody ltabstr set_tile_pt2 verify_xline- X+ v i! d+ ], k0 }7 {- q1 \
- ddcircle ltedit_act set_tile_pt3 vfy" [) p* S' u3 ^5 F
- ddellipse ltidx set_tile_pt4 vi U% ^6 _8 J+ ~
- ddgetprompt lt-idx set_tile_rad vlist3 \' C M" }2 K* E, j
- ddgettext ltlist set_tile_rc vname
! h* t, v$ _1 H1 B" M- { - ddimage ltlist_act set_tile_rot vpf
: f; B$ h% M( D/ H2 h9 K - ddimen ltlist1 set_tile_scale vpid
4 o3 U: `9 _9 ] a - ddleader ltname set_tile_spline_props vpldata8 ?0 P$ ?2 ^, y* O
- ddline ltnmlst set_tile_stang vpn
E4 B* Z% l6 s2 L( C - ddlist ltvalue set_tile_style vpt
! l' ? Q! T& o t# r! g - ddmline ltype set_tile_tag which_tiles+ U. N' U( ?* W, ]
- ddmodify_err m set_tile_text wid& i! {8 p) w& q( C' d; B9 G
- ddmtext majrad set_tile_vpt x6 n: @2 m5 ~5 i N" `' A( {
- ddpline make_lay_lists set_tile_wid x1
, F( X- ^; h' E" N# F ] - ddpoint make_lt_lists set_tile_xline_pt1 x2
) x* ]0 Y5 b* h7 N% K! L - ddray mdashlist set_tile_xline_pt2 x3
, d3 ?$ c% N$ a% \" x0 t& ~ - ddregion minrad setcolor x4% T: [0 F) r# h# |. f
- ddshape modify_3dface shght xdlist/ A% Z, t1 X3 E8 I, l: t1 i! d
- ddsolid modify_3dsolid showpt xline_pt1
* R! [% O5 E1 I; _; y - ddspline modify_arc size xline_pt2
8 ^9 a: c- X$ v9 ]9 f - ddtext modify_block slist xline_x1
0 F# `5 j; U# p- w* r5 Y% M - ddvport modify_body sname xline_x21 r- s: s$ X* u" O5 z/ d4 ]
- ddxline modify_circle sortlist xline_y14 T, M( K5 E |' s9 [- `
- denom modify_ellipse spltype xline_y2 A- q9 k' Q6 t
- dialog-state modify_image ss xline_z1% t& m1 k# D3 ]0 @! c8 v0 \
- dir_pt modify_line st_ang xline_z2
8 Q/ d/ j. b. A/ B - dir_ptx modify_mline stpt xscale
$ U6 m/ T: R! Q, | - dir_pty modify_mtext style_act xx
) u" ~) K' D, H3 H: x( w - dir_ptz modify_point style-idx y
! l* j3 c4 h, g7 r* q' q - dismiss_dialog modify_polyline style-list y10 g- e( z @: C: L8 g7 \: b
- drawpattern modify_prop_geom tagval y22 |! J' f& \- Y3 ]+ x- K
- echo modify_properties temp y3
) d( i7 P& y; W8 w - ecolor modify_ray temp_color y46 {' \# u6 o: }7 s
- edge1 modify_region temp_dir_x yscale
p+ H8 W- A4 i: A' N7 p4 y - edge2 modify_shape temp_dir_y yy9 p" e3 c; `4 p) {! O3 A
- edge3 modify_solid temp_dir_z z1+ p/ R$ F; ^4 ]: N9 H5 O) F. s
- edge4 modify_spline temp_xline_pt1 z2. U0 I) d3 U9 f6 e$ w% ?
- edgetest modify_text temp_xline_x1 z3
+ D$ a$ P4 t8 t; R - elayer modify_vport temp_xline_y1 z42 H# H8 ^- }3 L& Q- V. M% `% M/ F
- elist modify_xline temp_xline_z1 zscale' G* r: D) I8 g. N" i M0 V' w" y
- ell_calc modlist tempend_eang zz0 n! g) V- Q& _6 X/ O3 w
- dir-idx safe_ddedit ver_MtextWidth xcliponoff- X+ p% r3 F9 y. |3 N4 X: D
- MText_style
6 f! t( a3 w8 J" ?0 t - )
4 F, }8 t9 ^7 y/ y+ O
' q1 |$ |. l0 U- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
) \- V% A/ X; p# }) d, A - old_error *error* ; save current error function9 l. I$ i! X+ ~
- *error* ai_error ; new error function- B8 l, r6 }' T2 I( ~: a9 f) Z3 ~0 }
- )" Z! C( c+ F. H6 J, Z
2 s& f C& K' P- M8 K- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle
. B. _- R) U: w6 C) N% x - (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection
* W: j w' y" i6 |- y( O- | - (setvar "pickstyle" new_pickstyle) ; bit and set to new value
9 j1 \9 g8 c- H5 c+ X9 @
) Z" Z) a0 \ o7 Y# h! q1 i- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)
# n- i3 S& R1 \7 C - (t 1)))
1 R7 x+ l6 v- l% }0 D# j1 a; Z6 I - (cond/ |+ Z0 _/ Y; K" D' o0 a
- ( (not (ai_notrans))) ; Not transparent?
& ~& _. s1 x7 ?* ?, l' i. N, l+ j - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
m q' P2 c$ `1 g - ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?- k% Q, u. X4 z& ~' V, R R
- ( (not (setq ename (ddmodify_select)))) ; object to modify?
- T0 [5 v" `+ j. u U- h - ! _! S( c! U& _' b" ]) i- o9 W
- (t (ai_undo_push)
! E, k, ]* Y! E% x5 I% G( m - (ddmodify_init) ; everything okay, proceed.
$ s% m2 I# L4 G9 R& [ - (cond# V8 x" _& f' g. R4 p, E
- ((= etype "LEADER")1 b9 k4 _5 M0 d
- (setq help_entry "modify_Leader_dialog")
3 t' ]/ k1 U; u# ^% C - (ddleader)
. j9 Z: u$ F5 x6 n - )
( W' S- K4 M! b; { - ((= etype "ARC")
& f; ?5 K3 e+ ]4 f3 x - (setq help_entry "modify_Arc_dialog")2 Y$ d% B$ Y* _1 f, E7 x
- (ddarc), u" l4 C8 p* Z1 P6 k/ T
- )
8 P5 x! i- b1 d q$ c - ((= etype "ATTDEF")& x9 T9 C I0 J7 |( T
- (setq help_entry "modify_Attribute_Definition_dialog")/ o8 z) B. }3 ]! T
- (ddtext)" m; j/ \' S& f9 R) P
- )) U8 v' N6 c+ [% r# z2 ^2 z
- ((= etype "CIRCLE")5 B! C& K% E4 M7 |! ^' \
- (setq help_entry "modify_Circle_dialog")
3 ?% R1 l$ |+ t; [1 A4 y - (ddcircle); A6 I8 l. S( [! l4 j' @
- )8 _4 V0 x5 u, ~& X2 j9 F/ R/ [1 |
- ((= etype "ELLIPSE")1 a$ a& f7 f2 T% d0 G8 F2 R
- (setq help_entry "modify_Ellipse_dialog")
8 r$ c y1 U( Q7 c0 F, y* w% E% q - (ddellipse)8 f2 p3 l; a$ a
- )6 }1 W! Y+ h! S9 q
- ((= etype "3DSOLID")
# Q! g) f' p, k5 Y4 i - (setq help_entry "modify_3d_Solid_dialog")
# Y5 k! K. e0 s. W' Q6 `8 j - (dd3dsolid)
' p7 U0 a0 {4 f5 ]( U - )
. a0 ]. F( U4 _, ~9 S - ((= etype "BODY")
Z. T( Y$ d" y" h; b" ?2 K - (setq help_entry "modify_Body_dialog")7 H' Q9 i- `# r& f# J
- (ddbody) q" c W" [. g- d& W9 \- y" o3 @
- )
+ w3 _/ K9 B/ y6 ~! B- Q$ L9 _ - ((= etype "REGION"). f& `6 ^; v. T6 @- W$ _
- (setq help_entry "modify_Region_dialog")" Y8 p7 X( v8 D
- (ddregion): c3 H0 J* p3 Y, ]" c, `5 Y
- ) s2 g2 Z4 Y# v8 f: F& S
- ((= etype "HATCH")8 b% \' G @2 h9 |; H5 X f
- (setq help_entry "modify_Hatch_dialog")
/ H( ]2 E' y J: [! C$ P8 r5 o9 e - (ddnewhatch)
$ f) A: I3 g2 |5 u F4 T) d - )3 @. [8 t4 H' J& O5 j
- ((= etype "SPLINE")
$ n. M1 z* d. e! Z& x - (setq help_entry "modify_Spline_dialog")
% b' a( V1 N8 G4 C3 B - (ddspline)
. L u0 b0 o+ Q/ e) |$ T - )
& I$ Q) R2 ~0 O - ((= etype "INSERT") ; see ddblock for help_entry" v5 Q4 G8 I5 G8 L5 P* [7 X
- (ddblock)
! q- s' v; A3 W, f( Z - )
& S! c. @ V4 j2 J, W6 x Y - ((= etype "LINE"): ?: r* D# f% ?: C: F
- (setq help_entry "modify_Line_dialog"): `8 V5 U1 B5 h; v
- (ddline)
# u* y5 f; c; j - )
O$ R9 V# I2 J ~4 }8 ? - ((= etype "MLINE")
3 U3 @+ J. A$ ~: U5 f1 W$ R - (setq help_entry "modify_multiLine_dialog")
; |* t; w9 F- ?7 i1 N" o% |, G% W - (ddmline)
2 [4 o. V7 [, a" E - )
( K/ Z9 h3 w0 g9 c- l - ((= etype "RAY")
, B/ e j5 t0 y+ o9 h% X - (setq help_entry "modify_Ray_dialog"); s( W- b6 H- d5 x
- (ddxline)
7 k4 W' ]( t k7 _, I. [ - )( O* D5 n4 e& A0 A& y+ x+ w
- ((= etype "XLINE")# l( w$ W% A) V0 [' Z+ r
- (setq help_entry "modify_Xline_dialog")
: n w' Q. N9 J# W' z, ` s - (ddxline)
6 m4 G5 ?: |' A7 D* q: N: Z - )
& B! `' Z0 a/ Z% N - ((= etype "POINT")
% }1 U, [1 b, c; P1 s - (setq help_entry "modify_Point_dialog")
2 U( d" L' ^2 o. ]' G - (ddpoint)
( k. b& X4 D2 }# k; x# d - )
! Y! D: @) O$ h6 O - ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))
; r( c" Y! k' h0 @" z - (setq help_entry "modify_Polyline_dialog")4 H5 ?1 T+ O) v5 R% a; I9 [
- ;; If a 2D pline, check to see if it is planar to the current4 q+ X" D+ \: G
- ;; UCS, reject if not. To see if the pline is parallel,
5 K2 G# d; ^" |2 _, Z# J - ;; the 210 group (WCS) is added to the current UCS origin (WCS)% U# b: Q6 q9 m/ Z8 W
- ;; and then converted to the current UCS and checked to see if
+ Y8 N# o* ^& l" G+ e - ;; it is equal to (0,0,1)., @, j0 Q2 |: I( a" a
- & d! e1 |3 [: q" C
- ;; Incase the 210 is default and not in the dxf list.
- r' `/ p4 ]% r# y - (if (= (assoc 210 (entget ename)) nil)
5 f) J1 @& T- v2 U5 E - (ddpline)
) w( K9 C# R( \+ G - (progn' k% B/ \8 w3 x7 {4 _2 G8 a: j1 ]" A
- (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))
* z% n% R" m1 g$ z1 D6 T - (not (equal '(0.0 0.0 1.0)
! i* x f9 J) V( t5 o9 k - (trans (mapcar '+2 R( X. b' | C! {3 u) v
- (cdr (assoc 210 (entget ename)))+ v% p& X8 z; Q* E0 y
- (trans '(0.0 0.0 0.0) 1 0)! L- }; z9 e. t) R1 O: H# E8 k
- )
$ L7 w* N- k: j3 F( l) v) O8 c0 | - 0 1
* N2 \- z3 T! R7 u! ` - )
$ a% N3 o1 M/ f$ ?8 Y - 0.0000000001 ; fuzz
6 G& i7 v+ u) m# M6 H - )
7 W' v5 M e- k" @ - )
. Z; P' ^( y# J L% } - )2 k3 z- e( U- A& E# d% P2 i
- (princ "\nThe 2D Polyline is not parallel to the current UCS.")
. O8 }- {. U+ b9 A3 s - (ddpline)
& C$ n# ^0 H) x- }& z - )
! `" e) U, T/ A1 T& x( \& \ - )
0 ^/ Z2 F1 W- [9 d. N7 J - )
; T9 W/ i( P7 D+ t - )
. k) e2 R% }( F" j3 m9 t8 Y - u; Q# S ~: o% V1 X8 W. N# b
- ((= etype "SHAPE")
5 p* e9 V3 q$ Q! o- `, ] - (setq help_entry "modify_Shape_dialog") t* m; _1 G/ |# J2 F
- (ddshape)
2 d- D6 @' V5 S4 p - )
' v$ J+ B' b- b+ @8 l) ^ - ((= etype "SOLID")
5 P* V- z3 j; [' \) F6 q8 d - (setq help_entry "modify_Solid_dialog")
: L) I! n& {% E9 j - (ddsolid): T" h$ n4 X8 @2 d; r! z+ a
- )
( S8 M( V& D9 J - ((= etype "TEXT")
A6 G/ A* ]1 k8 p3 c - (setq help_entry "modify_Text_dialog")
% S: F, c4 |6 I1 X' \ - (ddtext)/ p' W) a+ s# X6 k
- )
3 K. u2 I1 H( S, y, H - ((= etype "MTEXT")
; Q4 n' y' D/ h9 c - (setq help_entry "modify_MText_dialog")9 f, F6 ^) l; P- p
- (ddmtext)) X) `7 h' v1 ]/ I- K
- )( [- v3 K* T I2 o Y p) q7 ?
- ((= etype "TRACE")
) V- k# D6 m( M4 M" v: ]0 ~ - (setq help_entry "modify_Trace_dialog")$ ? p8 k2 P/ X
- (ddsolid)3 V/ L" Q: x6 Z; b
- )
* Y5 J. M. C( d$ y' P, B* n6 T @ - ((= etype "VIEWPORT")
9 k- Z4 l" N+ _- v! {/ f - (setq help_entry "modify_Viewport_dialog")
/ C$ R' A! f' E9 |* w1 D8 ~% k - (ddvport)
# n2 D: [ R) a' |. h, h2 E6 K - )) q, A. D4 i$ D, Z; p2 G
- ((= etype "IMAGE")
+ ]+ r* v4 H+ ~+ u4 d5 O - (setq help_entry "modify_Image_dialog"), [9 I' ~4 w6 L" [; O
- (ddimage)
! v! `" G) y" _9 L& b* X- ` - )+ X+ I. z! E; u a
- ((= etype "3DFACE"); j. h* G4 e" F. \3 ^ i1 V
- (setq help_entry "modify_3D_Face_dialog")4 `1 D6 U: M8 M7 E
- (dd3dface)) i) @8 Y N0 F) O7 N. k
- )! @8 G( ^$ o; L
- ((= etype "DIMENSION")$ _( F' Y9 t$ C* G
- (setq help_entry "modify_Dimension_dialog")
% m. m, k9 ~( a# Z& C - (ddimen)
* x" S+ F P7 E' N - )
% j. F; R1 t4 |+ h - ((= etype "TOLERANCE")4 o6 I% |; X( E1 Q
- (setq help_entry "modify_Tolerance_dialog")
0 B9 e& p6 r9 ~1 o9 _6 c - (ddtolerance)
( \# E/ D/ o m# P9 }0 k9 r, @ - )
+ X( _* j# ^1 d2 O1 P - ;; Fall-through condition changed by MCAD for MDT 1.1 release.* b' p: c. f, M1 e' ~6 n* y5 E
- ;; This allows DDMODIFY to work on any custom object or any new object type
7 Z; Y# Z( p5 O - ;; that isn't specifically handled above by calling the more generic DDCHPROP./ Z9 ^. g5 P: c0 q3 Z
- (t
) P) `5 ^. q3 G) ^- U+ L - (if (and (not ddchprop) (not (load "ddchprop" nil)))
6 T* p# N9 U6 t! k" D$ o - (princ (strcat "No dialog support for object type: " etype ".")))2 P( Y4 b# |: E W0 g ?6 p" K& |
- (progn
" E }* W5 i* Z, N# K& r' A - (setq tempss (ssadd ename))
; F1 o# O/ h4 z, l+ \$ }# Q# c - (ddchprop tempss)" K. w: X+ j& g; N# W" l/ g
- (setq tempss nil)4 D! s: ^- E+ Y9 h! t
- )' ~# N5 w/ `- n
- )3 }6 |. h% V) p( ^
- )! P1 C) P ^! D$ g3 e: b
- ;; Previous fall-through condition.
0 C7 ?& U& ?% A/ u - ;; (t (princ (strcat "No dialog support for object type: "0 R& j) Y; o: O3 Z
- ;; etype "."% c+ Z7 E1 r& u9 i, x0 w% O0 g
- ;; )
5 q; V* V+ {& ?0 I" o3 L& N) e- b9 W - ;; )
, y5 c+ q/ L8 B. B! Q - ;; )" e: ~. b: h- `" M6 |( I
- ;; )
7 k3 s, R9 n8 q, ] | - (ai_undo_pop)
) N# I1 q. V. B) ]4 D - )
2 K- j- w' h3 }8 `5 O3 l - )! d! L- |4 D+ P) n% f
- 8 x z4 u7 L- x
- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle% A6 d. @7 ]) ?& L& x0 L
- (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back
6 ?8 @' n& m v; s7 l+ H. I3 Y - ) ; to what we started with& F! M6 X6 d8 q4 L+ N' f
- F, c+ |4 t. X# R! i% k6 K, v+ c1 m- (setq *error* old_error)
6 G1 U: ~- _0 J6 M - (setvar "cmdecho" old_cmd)
+ H$ ^% D7 t- n( ? - (if (not reset_flag) ; if object was modified, then
. X9 j; Y, s# |$ S - (ai_return ename) ; return it's ename to caller
, f1 j( f/ Q9 O6 P( G - )
( {4 v* H2 ` g" M; g: n+ Q - )- W4 W3 b5 c( F/ P
& y+ p% c5 i5 Q" y" I- (defun checkForLockedLayer (ename)/ D1 ?% k8 s, c- r. U8 {
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))
. K5 W5 H* B/ T - (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))' o* ~3 F3 W1 a" x
- (if (= layerflag 4)
3 r* R3 f! z: `' Y3 ^ - T
' \* Y0 Q& m9 b% V I - nil, x; C# Z1 Z" r1 w: o
- )8 Z) P8 ]0 h; I5 b& s$ `6 o
- )& o8 `1 B( j$ W h% d9 y! Z i1 A
- & r$ E: {; w8 f$ D+ `
- (princ " DDMODIFY loaded. ")
. {- M/ @; H! F, S3 `3 q! | - (princ)
" Y2 R+ a2 G) v4 _% R - ;;;???;;;---------------------------------------------------------------------------------------; w2 |/ l. G- V- g7 }! ~- f
5 P9 o5 b5 V. t) _$ J- ; Next available MSG number is 8 G, {) b7 e9 I& l, d( v; J& ]
- ; MODULE_ID DDUCSP_LSP_8 B* E$ `2 J! N H: `: |
- ;;;
7 m3 j$ m/ f2 `' c, v: g - ;;; dducsp.lsp
) L" K( ^& _* o7 Z) O1 `4 R/ g - ;;;. `) w0 }6 j. j/ @5 w5 i8 {
- ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.
" [% R9 V; K5 m. a( P5 ?( V j3 L; e - ;;;, u" P% Q+ n" ~
- ;;; Permission to use, copy, modify, and distribute this software
1 y/ \6 n: l* A' z6 X) } - ;;; for any purpose and without fee is hereby granted, provided
o; g2 l) k$ U+ w3 @, {- ^- g - ;;; that the above copyright notice appears in all copies and0 s$ N7 `, e1 P0 m( f" W
- ;;; that both that copyright notice and the limited warranty and' D+ z" E. e. {& l! w
- ;;; restricted rights notice below appear in all supporting# P' u7 P) P" P! J/ f/ Z
- ;;; documentation.- U0 `; ^) ? s8 z! Z0 U
- ;;;
2 C* h( S# e) h' L! t9 a - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.1 w8 g% Z2 H) {; w$ h& X( l1 K4 j
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
2 F: n3 U1 p3 \! G - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.3 [; m: ]! R9 g$ K" ^. n$ e
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
3 k+ m! E7 [: h9 ~6 d- N8 f - ;;; UNINTERRUPTED OR ERROR FREE.0 ~' Q8 k1 s: ~
- ;;;; ~; Q2 `1 u# W; X, Z
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
, h+ ^! o% a b) y7 p/ l - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
( V$ b) T! y8 j2 g - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
8 H" R/ y( O7 T - ;;; (Rights in Technical Data and Computer Software), as applicable.9 _$ [4 ~$ Y0 g
- ;;;
' Z! m7 I9 v+ g0 E+ M - ;;;.( \) b B0 ^2 A9 t/ B+ y
- ;;; C:DDUCSP - User Coordinate System presets dialogue.
# K$ ~: w% j W- ]/ O j - ;;;
2 O; \" k2 v4 \) W$ p- g: z - ;;; Uses DDUCSP.DCL for the dialogue definition. The
, V0 P% a: f% `" x0 x* S$ c - ;;; slide images are in ACAD.SLB.% A; J" X. V) m
- ;;;
5 o2 N$ o# o( P7 Z, a6 H - ;;; =========================================================================== v5 `! _ A! K: G8 P! R' I# N+ ^
- ;;; ===================== load-time error checking ============================# W; V6 ?/ y7 N7 ~! t+ x# j% [
- ;;;
7 S9 p) H# Z: l/ N4 s. m4 l% F - / R* y( D' I9 z/ G
- (defun ai_abort (app msg)% d* ~5 P: ?5 j- W3 H/ F
- (defun *error* (s)
# z' z& f# k) B) y8 { - (if old_error (setq *error* old_error))
5 d' ]: J) D2 ` - (princ)
B1 E5 ~# n8 q/ l! O - )
; R8 I; Y% z) k" L' } - (if msg/ ]' P* n, Z8 N0 i! E* \
- (alert (strcat " Application error: "
; ~* z z, I2 b - app3 D$ n0 A1 H0 Y( f, b& _! d' d
- " \n\n "
0 d! j/ v- }) f: h! [8 f2 b/ ] - msg
" u0 z* O! C, ^' v: l. U" q) V" H& k, V' w - " \n" l6 F% q9 B+ a: w8 ?9 g8 p
- )
( P8 O' @2 F8 \$ n8 O - )
1 Y- I5 K% n* o5 K1 u - )
2 f4 _' T+ j8 A' w; y - (exit)% X. ]) ?+ z7 b7 w0 o
- )
4 r7 w2 B- t2 _8 l
8 T& j. Q5 t; m; H: u0 C w- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,( t* `5 W/ Q/ M* l1 e% A
- ;;; and then try to load it./ Z* m9 Q0 r0 E1 h2 H
- ;;;8 ] h" d; p! ~
- ;;; If it can't be found or it can't be loaded, then abort the
C3 G1 N- O8 ~4 p - ;;; loading of this file immediately, preserving the (autoload)# ^2 L6 j8 h9 @
- ;;; stub function.) `/ f7 X, p0 D/ M+ W, e
- * f% M4 Y- j- O4 m! S( N
- (cond3 C$ a. k" m! R4 J1 A1 j# H
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
( p# O" p! d* M+ I" R - 3 j- ?. \! H# W- i9 f
- ( (not (findfile "ai_utils.lsp")) ; find it
* Y1 _2 Y/ K0 C# d- |4 |1 p, f% Z - (ai_abort "DDUCSP"6 `% D8 _4 q: ]) u/ v0 r
- (strcat "Can't locate file AI_UTILS.LSP."
+ _+ d/ J! X( f; R) o2 Q" b - "\n Check support directory.")))+ L$ }" A/ y2 o& |5 N
- 0 [1 F O7 i# D. b
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
' B6 L4 h4 }2 X, k" y. ^0 T - (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))
/ K4 a4 C- L" |# d - )
! B1 z& a) L- Y - ) n# @% ?. M |& }* G! L. h6 \
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
/ O) w+ m2 n( y4 T& I' ? h. y - (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses
* b, D+ s% n# v* K( \% u: [/ A - ) ; ai_abort's alert box dialog.) R3 ^/ c. ~7 I0 F
4 m3 e. Q) f& v9 n- ;;; ==================== end load-time operations ===========================
% K! B6 C' i/ b7 P$ `5 \
+ S- ?- T5 P/ A" j+ Y- (defun ai_ucsp_start ( / program); M3 o) |+ G$ X& N! w
- ;; Get program name
' A% F0 n1 e4 ?% J - (if (not (setq program (getvar "program")))
$ c7 R$ g7 h6 D5 Q. Z+ F - (setq program "acad")
5 Z; G) T T' t/ I6 I: y+ m - )% H( {8 \ |) y. h
- (foreach v0 '("world" "left" "cview" "top" "front" 0 Z, K: x! Y# \7 T! c6 Z
- "bottom" "back" "right" "prev")
8 Q& M8 r5 G- a: K" b3 q - (start_image (strcat "ucsp_" v0))
( C) n( M9 J9 l! Z2 R - (slide_image
$ o, P6 u8 q- `( c; t+ S - 0 0
! e7 n/ Q) r4 ] X! K/ e% F% f7 M# ` - (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1)" Z' {) d* r+ h1 B% ?
- (strcat program "(u-" v0 ")")
: v7 Q1 C; q$ a& k3 e4 H - ): M' ~# n- Z$ h; F$ Z* V1 c p
- (end_image)
7 e& h& c! b1 n7 ~/ i/ G4 O - )
' L- q0 s5 `4 Q1 O' y - )% |/ G) ^- t% L# R( i
. X/ E9 _9 c" K9 ]$ \( c- (defun ai_ucsp_set ()
& _' e. V6 X n- e9 @ - (if ai_ucsp_sv
5 ^* V3 x8 i& v. s' }( D4 A' [ - (command "_.UCS" "_V")
( A2 {, T9 L5 k. M- S" h - (if ai_ucsp_prevs+ \# g: l+ O- q8 ?* F# ]* N; P
- (command "_.UCS" "_P")
. ~2 X& c: i9 }3 z; w1 d# g - (if ai_ucsp_chg
+ r& E9 j; J/ a8 h7 E( M - (progn7 V3 k( Z; M7 R; L
- (if (/= ai_ucsp_a "*")# m* X. W2 m8 i/ U: Q) z9 {( S- `
- (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1)): P2 l8 F3 u8 W* N
- )
! X8 n6 z3 Y8 B$ X% E6 y - (if (< ai_ucsp_pick 6)
4 O( I4 ]1 }* g3 f; m - (setq ai_ucsp_set0 "@")% l5 V/ ~6 b1 C$ G' ?9 D/ w
- (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*")& J% K6 H9 f9 O+ S" [& w# n3 z
- )
: F; Y9 T0 w8 O6 r6 w$ D& J! y - (cond ((= ai_ucsp_pick 0)
/ b8 l9 u- r- h, E5 z - (setq ai_ucsp_set1 "0,-1,0"
( i- M2 C8 i4 B/ e7 J - ai_ucsp_set2 "0,0,1"8 r0 u; c1 ~, @: _; o
- )- O9 a0 R0 U8 _( p( Y0 ]6 b x/ j
- )' o) k1 L! M, e0 |* ^
- ((= ai_ucsp_pick 2)
& i( x5 I" v# y' z/ Q7 s - (setq ai_ucsp_set1 "1,0,0"+ V) p8 ~5 M3 c# E" i# x) N4 a
- ai_ucsp_set2 "0,0,1"
0 y* \& m Z( E, z1 j - )
+ l$ X5 }/ q; `, s% n! s7 V( D - )$ b: ^, Q: H6 Y8 Y5 ?& J
- ((= ai_ucsp_pick 3)/ X3 X# o7 W" Y- N6 z7 E
- (setq ai_ucsp_set1 "1,0,0"7 e, B7 z: `8 U' ?* J V) }# M
- ai_ucsp_set2 "0,-1,0"
8 t* C# f" I5 r. J! t - )* _+ O; c; R5 ]8 x9 ~- g
- )2 w9 I) t. X1 c/ z# P) g+ G/ v# {
- ((= ai_ucsp_pick 4)
/ @3 m7 |8 R8 P - (setq ai_ucsp_set1 "-1,0,0"
8 t' }% h+ I7 ~ S6 M9 H" ? - ai_ucsp_set2 "0,0,1"& J s f) S- y( T
- )
. t7 M' |: X2 ]8 _1 G - )/ Q1 X* x7 P; u, f' m8 c
- ((= ai_ucsp_pick 5)
8 [% n' G0 _6 X - (setq ai_ucsp_set1 "0,1,0"
+ L3 h! V' k3 g1 f1 b0 B* V - ai_ucsp_set2 "0,0,1"
% x: M( Y5 Q" M% `! W4 ^% D - )
7 N" _" X( v, n - )$ O2 k. C+ V' D4 \) v, s5 d* s6 b
- (T
1 O: `( m- S/ b v+ e) L% } - (setq ai_ucsp_set1 "1,0,0"1 I$ p+ s; T& m% w+ [: X
- ai_ucsp_set2 "0,1,0"( T* g$ r: L! N( V6 ^
- )
4 [( |5 c8 F$ W - )
( e! d2 j9 h% L* j3 c. j: r! K - ). A' @, ]6 U. `
- (command "_.UCS" "_3P" ai_ucsp_set0
1 F5 g& a/ r2 D - (strcat ai_ucsp_a ai_ucsp_set1)
- g: e9 s) k& K4 _( C - (strcat ai_ucsp_a ai_ucsp_set2)
k; ?6 N* A+ {6 b& A5 y - )
! v+ j* E8 o* ]% \ - )5 v2 G6 ]) ` @, y
- )4 t: }+ u6 i( B% _/ s
- )
% e# t0 l8 ?: T/ J9 L - )/ m8 \+ e2 L5 _1 s3 h1 P
- )
5 d! k$ E6 q8 N+ i. G6 e
& E$ X \- a4 D2 G6 `$ R: X- (defun ai_ucsp_p (val currtile)& @8 Y- G4 C* k
- (mode_tile ai_ucsp_currtile 4)
8 E- K" \& J U V3 }" E% S - (setq ai_ucsp_pick val$ W' E! r) ~8 R* }! `* ` H3 P+ p
- ai_ucsp_sv nil
# V9 `8 R% y+ d - ai_ucsp_currtile currtile
* T5 S" V6 A \" m8 [* m - )
( q3 m/ R4 T2 G8 ?( | - (if (/= val 1)7 ^6 Q7 | u% g+ J% X& R4 R
- (setq ai_ucsp_chg T)$ S- D* q9 s+ r. |) A! Y
- ). R6 z! p# T6 s: g3 c$ a
- (mode_tile ai_ucsp_currtile 4)) o! ?; S' h# {
- )0 ~* \6 s4 T: q. D. u) l, c
- 7 E5 G" t$ l# ~9 J0 a* G- q0 E
- (defun ai_ucsp_swcs ()
0 J) Z4 `* J1 v4 t - (mode_tile ai_ucsp_currtile 4)
( ]3 e3 E6 R J+ S' k - (set_tile "ucsp_a_wcs" "1"). w) i1 i2 m) x" d7 o( q
- (setq ai_ucsp_pick 6; J$ p. t$ U7 l! m: o
- ai_ucsp_sv nil" s w3 ?0 D/ c4 e/ x$ f. [/ ]3 u J
- ai_ucsp_currtile "ucsp_world"2 ^" s7 W0 f* _: ~" W0 E% u+ o" \
- )' S2 N$ o) o: A! C
- (if (/= 1 (getvar "WORLDUCS"))" i: E7 |; ?" W* y" x3 n% E
- (setq ai_ucsp_chg T)
: Y. X3 S( M+ ]2 o5 @ - (setq ai_ucsp_chg nil)& Q0 u+ {, Q' I" f8 e7 d
- )+ J0 u% ]5 k8 H- ~ j" r% C1 ~
- (mode_tile ai_ucsp_currtile 4)( n3 ^) h0 D2 j: v
- )1 h' z; h- I' P, x
) m- L5 E! r5 R8 o: V- (defun ai_ucsp_cview ()
' \2 @8 ?6 `0 n7 a6 ~. g - (mode_tile ai_ucsp_currtile 4)! |. P/ w! G" t$ j' m! u
- (setq ai_ucsp_sv T
, y/ ?; q6 E6 @6 }" Q5 c0 \ - ai_ucsp_chg nil
; ?5 J/ @) D2 M - ai_ucsp_currtile "ucsp_cview"5 p Q# s9 p8 j: s5 z* i
- )
! @$ o: ]- q: U( I9 c5 E - (set_tile "ucsp_a_wcs" "1")" ]+ K6 g7 @) i+ F
- (mode_tile ai_ucsp_currtile 4)5 G( A. T/ L% N8 z2 [* y% q
- )
% {1 ~, O, g3 q* l/ b& o* W9 X! `) z - ; q. O! f, e) j7 m% i2 ]; J' m
- (defun ai_ucsp_rucs (typ)4 M$ e+ ` y/ p' C' @
- (setq ai_ucsp_a typ)5 O# B+ v4 ~7 H' E' k
- (mode_tile ai_ucsp_currtile 2)
0 J$ c+ X- u& d, {$ }. ^+ f - )
3 A! E0 F& E( r) Q/ T - 0 C7 i5 b4 l% F' I& Y/ H9 B
- (defun ai_ucsp_prev ()+ J0 p/ z" F$ E) R1 u8 M: O
- (mode_tile ai_ucsp_currtile 4)
9 @3 ^, O6 s, T; P6 |7 C6 ^ - (setq ai_ucsp_prevs T
9 `2 m9 K/ l; o2 P* e) `/ J - ai_ucsp_currtile "ucsp_prev": @) P P. X& `- u5 w( k
- )2 R; K+ C9 `- l% H9 W% |$ q
- (mode_tile ai_ucsp_currtile 4)
* R3 z7 z, H; T, C' A0 s' c2 D1 J% z - )
% Z! D7 {( @9 w' T& T j% p; ]
$ q3 `3 y- Z) Y: g9 A- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals) ? y" v5 z9 R% b% @3 n! C$ N3 L
- (if (not (new_dialog "dducsp" dcl_id)). q+ Z# X+ ?+ d0 M
- (exit)# K6 H: M! o, Y6 `8 U' u
- )* |3 O! C; C6 N7 j+ t- F* I
1 n8 x' c. ]3 Y- q% M- (ai_ucsp_start)
. x5 T5 C/ j# c' U2 m5 d {3 B - (setq ai_ucsp_a "@"
$ b5 Z2 E7 d0 ~3 u% i4 Y - ai_ucsp_pick 2
4 C- T. V! D' ^/ ^ - ai_ucsp_currtile "ucsp_top"6 |, y. H3 p+ F# m# k6 w
- )
, D {: f. e7 Z8 @: R9 f. K( K - (if (= 1 (getvar "WORLDUCS"))6 i( I. P% L; l7 e
- (progn9 R* c7 p# ^8 O0 l
- (set_tile "ucsp_a_wcs" "1")
/ [9 x6 i- \3 B4 D - (setq ai_ucsp_currtile "ucsp_world")7 z9 o# u6 G; w0 J9 u
- )
0 S8 e6 k" _, K. O0 t& R! {6 \( w - (set_tile "ucsp_r_ucs" "1")
1 g8 `6 C" F! L8 p5 ~& k9 |* R - )
- B4 O( w( F0 k7 a' g8 `7 K% ]5 r- M - (mode_tile ai_ucsp_currtile 2)
# g3 |% k8 D0 |& F! R/ { - (mode_tile ai_ucsp_currtile 4)6 A/ H8 K5 y! F& V4 Y% u
- (action_tile "ucsp_world" "(ai_ucsp_swcs)")
3 }1 E' { Y1 a8 d% o0 } - (action_tile "ucsp_cview" "(ai_ucsp_cview)")
8 s7 w# q. P& P- q( ?' D3 f* f - (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")
& m8 V ~: t7 P/ H9 |) I3 i2 @, K. o - (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")7 e0 w# t" n0 L. N/ y
- (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")% [) ? S& Z2 k% t/ g6 E. @6 J8 a
- (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")) S* Y3 }/ K& g! _6 y3 ?
- (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")7 w! d1 E. z5 {! W5 i
- (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)"). P- e1 |' x' V/ x6 j9 W% J
- (action_tile "ucsp_prev" "(ai_ucsp_prev)"): j# a: ?. P8 @3 J7 u7 p, L2 K4 a
- (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")
/ ]( a8 J- |4 X% c4 Q' j - (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")* w# ]- s. h! g! f ~. I3 X5 _
- (action_tile "accept" "(done_dialog 1)")8 X# f+ b& }( u
- (action_tile "cancel" "(done_dialog 0)")* _0 {0 R8 g v. z
- (action_tile "help" "(help \"\" \"DDUCSP\")")' H( `9 h' H, Q" ^- p
- (if (= (start_dialog) 1)
$ `9 V, ~0 A4 Q# P9 f - (ai_ucsp_set)2 o# Z% _! q8 z* q1 t1 F9 A) _5 Y; K1 W
- )
7 R6 V$ D% [5 {1 @5 X5 l - ); \+ K/ Y) Z* d r4 O
- + e# n) }. @8 { u& N
- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs # P4 c& l: F* [+ |
- ai_ucsp_sw undo_init)
6 j8 r( q6 A/ o7 _! m
9 F" d2 b, N4 ]1 G/ B% ~- ;; Set up error function.
! k( Z9 Z3 V$ `2 v7 c - (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho
0 k- ~# B9 H7 I! b' R - old_error *error* ; save current error function
% a8 _; m" w* {( y( b- o8 F - *error* ai_error ; new error function
3 E/ P* J( u9 q$ |( D - old_osmode (getvar "OSMODE") ; disable OSNAP for duration9 h* T' ^! z% m* X R; u
- )$ i2 _3 J8 ^' }' E6 z' K
- 8 _9 m5 B W6 _9 {7 T
- (setvar "CMDECHO" 0)
" Y3 `: K0 K0 i4 F# Z+ `& U - 2 J J3 l' L4 { Y- s) S
- (cond
* d/ H9 D- R* b! k - ( (not (ai_notrans))) ; transparent not OK) L) n% b1 |8 x! {# K
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
: {& @8 ]% z8 `( V - ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?% ~: L) [- ^$ b' _1 d
- (T (ai_undo_push)
$ b8 z! S+ Q/ s5 N - (setvar "OSMODE" 0)
9 m/ I& X4 \0 l+ H# V: Y - (ai_ucsp_main)* C. M& W- V* L4 y' {* S6 B
- (setvar "OSMODE" old_osmode)3 D( Q' g. u6 j0 O% \6 f' e+ h" Z9 N
- (ai_undo_pop)/ G# W& n/ z) H3 x k# O, V
- )8 t% X) V, N- l5 V1 q( O
- )
, S9 @* ]6 s! x
2 k9 R! U; W% y5 y, b% y- (setq *error* old_error) 3 w' ~! ?: D! {! `& H
- (setvar "cmdecho" old_cmd)
- X/ w: z% u7 o& w6 g% M& l8 l1 {
" `# J& Z6 r6 s- (princ)/ A8 ]* u. J1 P+ L; W+ m
- )
/ O) l* b& [+ O' `2 \# l
) n" [5 t5 a; C, @- (princ " DDUCSP loaded. ")
/ O/ a1 z* t e( _- e - (princ)- I. h$ u! |8 w! t$ E! W) {
- , K5 u0 x% x: t% { A
- ;;;???;;;---------------------------------------------------------------------------------------4 {$ i4 g7 W" S1 |' C( P
- b* N7 W1 B2 ]" }5 C: ]- ;;;----------------------------------------------------------------------------
& g1 t9 g" Y" Q8 ] - ;;;' H# Y- l) C6 b9 s4 Z+ J. |9 M
- ;;; EXCHPROP.LSP
* l4 E( ]* D' q; ? - ;;; Polyline and text modification capabilities added by
, @5 _1 @; ]. x7 W0 H2 o3 p L - ;;; Randy Kintzley : R3 @- y& q \
- ;;; $ Q, w0 H1 \7 b( a- ^# O
- ;;; Copyright (C) 1997 by Autodesk, Inc.
( e) l5 G- J" n3 R5 i) G - ;;;
" B* j \1 u- c( y2 _ - ;;; Permission to use, copy, modify, and distribute this software
F c. P; O8 \, h- R" { - ;;; for any purpose and without fee is hereby granted, provided4 P/ L* t _- L% n1 O- x
- ;;; that the above copyright notice appears in all copies and# _4 \+ _0 @. i) C0 W5 [
- ;;; that both that copyright notice and the limited warranty and3 h J0 t3 O0 s
- ;;; restricted rights notice below appear in all supporting4 d# Y- v3 K, d" T
- ;;; documentation.5 ^2 Z0 u; X! J
- ;;;
( G5 M3 y# S& C" f; a - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.4 Y. v$ S3 ~# X2 O
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
1 `- z9 a# J, o6 f! ^ - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
1 F5 Z" {# u4 W1 a6 s - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
+ t! x L6 ?% z- g- X5 F - ;;; UNINTERRUPTED OR ERROR FREE. p1 p9 j' U/ `( E; E
- ;;;
' E; {& d% c% D( Y+ t. X) W - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
; V# @5 X( j+ ^6 o* F4 X - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
4 r% V- E C* g - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
: K" B" p" k) A/ c - ;;; (Rights in Technical Data and Computer Software), as applicable.
7 R& f: K9 S1 C - ;;;! K; k1 J; S/ B' N
- ;;;.- Z( i: U9 }' D4 \* T) c+ [
- ;;; 28 February 1997
7 s. g) C# b! `# E& P: f5 h - ;;;( `" k, n3 o/ ~% ~* v4 r: V1 h1 r5 U
- ;;;$ v; ]7 S1 a" _% j9 j) ]. z% E, U
- ;;;----------------------------------------------------------------------------6 l7 g, B( q3 e8 e6 q$ p- {
- ;;; DESCRIPTION8 D9 U7 L$ @6 O/ Z v, \
- ;;;----------------------------------------------------------------------------
7 o8 h, N0 H' \0 l - ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This
- X/ c" z+ J$ r2 Z- i+ w - ;;; command gives the user the abilitie to change several characteristics $ m- ^7 J2 M7 a. t
- ;;; of selected polyline and text objects. * ]& n/ W8 W& F! s8 p! ^, c
- ;;; The style and height of selectected text objects can be modified . d+ J) ?! ^8 ~) f
- ;;; (including text, mtext and attribute definitions) as well as, width and ! v1 D& Z a }, G: N( s
- ;;; elevation characteristics of selected polylines (includes lightweight and
0 y4 y6 o6 k, Q. g0 r1 x( m% M - ;;; traditional polylines.)
- Z4 X% A0 c% @; r& }, f - ;;;----------------------------------------------------------------------------) [, P5 w& [; V" B3 Y: Q
- ;;;----------------------------------------------------------------------------0 \7 L: n' t1 \- G# X* z8 _
- ;;; Prefixes in command and keyword strings:
E& @& Q# p$ X7 z$ U( t - ;;; "." specifies the built-in AutoCAD command in case it has been7 Q* u. c) ?% I' F4 N$ N
- ;;; redefined.
* F0 \& p* f( w: C - ;;; "_" denotes an AutoCAD command or keyword in the native language
! R2 R' ?! F: K7 [ - ;;; version, English.
! `4 V. C" T* t, A* C4 Q9 }3 o- L U - ;;;----------------------------------------------------------------------------
4 s# Z! r0 y2 _* X4 v - ;;;
7 `) v. r6 K6 R7 u5 y. \9 _ - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6 f& _1 ]% t2 I/ i* J - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;, v: |3 [' X# G' E7 j
- ;Functions created as result of loading file: exchprop.lsp
j4 j9 ]2 L' X - ; DDCHPROP22 u b. E4 y+ V" I; O
- ; DDCHPROP2_INIT
' u! f# n f" C% [2 a P& @$ Q# V - ; DDCHPROP2_SELECT1 T' N5 ]* \# i
- ;6 d$ ?7 k0 ]- Z C1 @/ D2 v
- ;Variables created as result of loading file: exchprop.lsp8 b; E$ g( c, q4 \
- ; OLD_ALLOC
( q8 w( ]/ i q* W3 q V - ;
! @1 Z9 J# d2 e - ;Functions created as a result of executing the commands in: exchprop.lsp! A9 w; j/ j4 \+ [. c L* D
- ; F& R+ I8 ^/ m4 s/ W" N9 [% H) ^
- ;Variables created as a result of executing the commands in: exchprop.lsp
, ?7 P& Y! y. s5 q5 c6 x/ T6 e0 a - ; AI_SELTYPE
4 }& G% S7 l" Y: h% c - ; BONUS_ALIVE
% C H! g$ e! t$ z - ; BONUS_OLD_ERROR& v; M3 @$ d; ~- E3 b8 s
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;, @9 A7 w/ E6 y9 W4 l8 t
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;! c# Q' q: T$ o7 t( S) ^1 a" _
3 o- C7 r5 c* [$ H5 G- ;;;
) f( W2 _' M4 v8 |+ |0 {" V - ;;; Avoid (gc)s on load to improve load time.9 Z) e: [! k8 X/ j" P' Q9 e
- ;;;% R7 y1 K$ G2 ?4 N5 m6 r' j7 F
- (defun do_alloc (/ old_allod new_alloc)# Y, n8 F8 _' x) ]4 K5 a( K
- (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
5 K' O' D. y$ Z) E$ Q% n - (expand (1+ (/ 4750 new_alloc)))
+ `/ B+ e/ c0 J! F( s - (alloc old_alloc)
6 J7 V0 X3 c6 g3 H( ^" U: {" x - );defun
1 w, g' A, I9 J/ a; u% u6 B
% {4 B% p/ \$ }' F9 \! S+ b. ?( }- ;runs at load time - rk
& Z a' \/ T9 r- A( L- u - (do_alloc). W5 S3 Q# x; ]! [
- (setq do_alloc nil)6 {- r& n! R1 x+ U+ r" E3 V
- ;;;7 A4 G5 s1 o4 @( N
- ;;; ===========================================================================
/ r% V$ G0 |+ ?! m0 j - ;;; ===================== load-time error checking ============================
z& T6 Z: I) O) C* _. s - ;;;
8 f. _. W q# C/ E0 C - % u- |! o0 T6 e
- (defun ai_abort (app msg)
; l# F/ c' f; b1 h* ^5 K" Z& a - (defun *error* (s), P# a: a* b& @* G- m$ s1 N, X
- (if old_error (setq *error* old_error))
0 j7 ?0 a& S" y" A - (princ): R7 }$ |8 _6 C# _: t6 P1 Z
- );defun* q+ x, m p) ?8 c! I
- (if msg
& K' S$ o& ?) i" Q' K - (alert (strcat " Application error: "
/ ~. t$ \8 v1 ~7 X3 ^1 [. | - app
' O3 |: ~) g8 @9 q% Y3 G. d/ L - " \n\n "
) c0 r2 f7 {! w1 s - msg
+ m/ T& m3 o, j% B - " \n"
6 V* }; U* P* b T1 D - )% q* Z0 E: v6 ]+ R
- );alert
}/ H6 o! q, G: o& v+ h6 l; h - );if
. z, X5 o+ B+ j, \" G! c5 O" Z - ;(*error* msg)" S9 E0 _% _6 }( p9 Z4 u1 ` |
- (exit)0 `. T# m4 j P+ _* c6 V, A
- );defun ai_abort
8 E2 F @5 E0 L7 h% k4 ] - ' z( L3 C$ o) M9 W. _4 m
- ;runs at load time - rk+ H- C/ j/ P* u) ^9 h
- ;(if (and *error* ;added the if wrapper around this - rk.+ [8 N& B/ [* z. B# k* R9 ?! E1 y
- ; (not old_error)
7 O* v$ p/ M0 e: z9 z3 E - ; );and * c7 y, ~8 a1 o8 o0 i
- ; (setq old_error *error*);setq
2 |/ h2 T5 b7 o8 m1 F4 K - ;);if' X9 O8 F) |3 M8 ?, e' k* v& Q
+ _ d* x- ^ L- 2 n0 v/ J. C% j* `# T2 h
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
1 c! e, z V) A0 {9 N - ;;; and then try to load it.
# c: t# T9 B1 N - ;;;
, j& h( V! i6 N6 t) r4 R4 b6 J8 O" U - ;;; If it can't be found or it can't be loaded, then abort the# K/ c9 o& Q7 U$ k2 w
- ;;; loading of this file immediately, preserving the (autoload)( i O! V+ u7 S0 i- {0 ]1 N4 Y
- ;;; stub function.
/ i7 f+ N! I8 m2 R3 k |
* e5 L4 u2 R4 P. ^- ;runs at load time - rk.
" _) v1 f1 W& g+ R - (cond3 ~$ V) X, ~) c( q1 n7 C/ i0 G
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.; a' U& j) d3 ]( u5 @
- ( (not (findfile "ai_utils.lsp")) ; find it
- ` B5 o" ]" [8 K6 _ - (ai_abort "EXCHPROP"! ]& m+ v. k, i5 j! b9 T
- (strcat "Can't locate file AI_UTILS.LSP."
) a4 ~# V. R& c3 q' L% E& k - "\n Check support directory.")1 s5 E$ i- m9 U8 N: I
- );ai_abort
, w9 l+ p+ I$ F+ Z - )+ T. R/ m6 p H4 e6 I5 J
- ( (eq "failed" (load "ai_utils" "failed")) ; load it; m1 c$ N6 [3 r& c& F- u/ e& e
- (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")# P3 a* F6 O# C. W5 ]( k
- )
5 O; R' C7 L: D; O" N$ _1 {3 g - );cond close
% i" @) p) f& }% z7 E- q! `' J - $ z- Y4 g% G( m( C0 e3 `
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
6 @. n! `5 E- P8 T! l1 Z3 U - (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses
( M5 W: ]3 z7 q - );if ; ai_abort's alert box dialog.6 A" R* R* O/ a! b: @# E
- 8 F1 T( P6 O. g0 R
- ;;; ==================== end load-time operations ===========================
9 X* R1 @' Q: z* p7 I; ]
' q5 E* ~1 o4 N# A+ D- ;;; Initialize program subroutines and variables. P$ m1 F7 _# Y) B% ?' Z, r
: ^) _' ^9 e, J2 S6 n1 ^- (defun ddchprop2_init()6 P) s, H9 G# q- C" K$ d
- 0 Y+ u/ A( Q. L1 F( H
, d& X8 ^; C# g" I, }# Y4 D& K
# R5 ]2 k8 U4 y9 h! g$ J+ I7 e- ;;) ^! a1 E: q; N& y9 q* l0 V: ]$ j
- ;; Define buttons and set values in CHPROP dialogue box
9 u$ }3 W9 ^! c( u8 O - ;;
. F6 d) ], z' g7 R - (defun call_chp2 (/ cmdact p1 p2)2 V9 m9 W" u- Y3 E5 n$ p, k
}) ^) I: d+ w- (if (not (new_dialog "ch_prop" dcl_id)) # g" ^: f3 g2 K6 s
- (exit)7 L( s" [) |6 g* T5 Q {
- )
" x1 G$ s1 j2 J* ?
7 [* x( G0 u+ h1 u! q9 ?2 o- (set_tile "error" "") l; @/ ]/ v9 ^9 B5 T& [$ L0 H n8 d- m
- ;; Set initial dialogue tile values$ X' ^5 G# X4 e8 v
- (set_col_tile)( |# K Y# L) z
- (set_tile "t_layer" elayer)
2 z' N/ M. \, a [% _% @+ y - - _/ ]2 n1 f8 f [% u. H$ {2 ~, O
- (cond
+ Z- U0 C" Y$ k* W B/ @ - ((= lt-idx nil)
/ G2 @2 B, U! G ]& T3 F3 t4 e - (set_tile "t_ltype" "Varies")6 S# g8 L6 o. p% }5 [' g
- )7 S1 c/ h4 _ ~
- ((= lt-idx 0) ; set tile "By layer & layer linetype"9 p: k) ?( N5 }
- (set_tile "t_ltype" (bylayer_lt))
& o* ^, u4 }! r) \# g# @5 X3 o1 y - )
7 C* s& A. W1 d+ w - (T* q' `9 `' ^1 \1 J
- (set_tile "t_ltype" (nth lt-idx ltnmlst))/ Q" i5 m- V/ s
- )
) X/ k. W/ ]" t3 D - )( `( A, d# L6 D, X8 W* O# ^
- & n+ B( O1 h# S4 t
- (if (or (= ethickness nil)# @7 \1 y9 m" u& V2 W' b
- (= ethickness "")3 ?: e$ G6 f" a3 Q& }) Q' n( N
- (= ethickness "Varies")
6 B( n6 l! b! L0 R7 L0 o+ k - );or
\0 U, ]4 C3 }, S - (set_tile "eb_thickness" "")
$ g/ t2 i; Q$ l) I/ N# w& S1 y - (set_tile "eb_thickness" (ai_rtos ethickness))1 K2 W+ a! H' }" w A
- );if% d8 `( h ~( j. _9 u7 w# K8 r2 s
- (if (or (= eltscale nil)
! g7 `+ E4 G* m {) ?" R o; f" \ - (= eltscale "")
7 g# J6 ~. ^* t+ s* `' y - (= eltscale "Varies")3 m" v4 [0 |2 r& }
- $ e; l/ z; G3 F+ ^, X
- )
0 K: P& V" Q3 D4 u - (set_tile "eb_ltscale" "")7 q! c8 U2 F' T6 L
- (set_tile "eb_ltscale" (ai_rtos eltscale))) D" X$ A; d( H0 B
- )
7 a3 M" p" t; j6 j; j8 u- ^ - (if% m5 D/ v0 J5 J7 T/ S4 t0 U
- (numberp ewidth)+ g9 E/ _ W: [0 u" {+ S; l
- (set_tile "poly_wid" (ai_rtos ewidth)): v* s% O ^- U7 S7 h1 ?
- (set_tile "poly_wid" ewidth)
* `5 E5 `2 d3 M6 k: K - )
' z: q% B; a, R, k! \ - (if
1 e( y$ A: s# p* `; e) I, {6 P - (numberp eelevation)
3 I$ a0 L6 _2 K1 H$ B5 O; b: p - (set_tile "poly_elev" (ai_rtos eelevation))
3 G0 |3 s( A1 F( Y; N. [% v' z( M - (set_tile "poly_elev" eelevation)- W# [6 ~. @4 O4 L5 c
- )
; g- f% D7 G: K, H9 F. g3 c* N - (if
2 V; @ O- v+ L - (numberp eheight)2 |& O9 Z. c! x5 y0 U) q
- (set_tile "text_hgt" (ai_rtos eheight)) O M6 ?/ F% G: K
- (set_tile "text_hgt" eheight)4 } D6 c& q& u2 L2 G0 o) e7 M
- )
1 Y# n; ], ~- D& j* m/ p8 L - (if (not estyle)
$ `1 a$ e( i1 V" P9 }/ W - (setq estyle "")
1 M3 f" S8 T* ~: I8 R# N - );if
4 K: ~: L. R+ v* Q4 q+ F8 I - (setq hair_style_list (tnlist '("style" 16)));setq& w" }5 L# b8 x) B$ H' j8 y5 f
- (if (not (member estyle hair_style_list))
) _$ F4 a% U5 @' e8 n5 B - (setq hair_style_list (append hair_style_list (list estyle)));setq5 X* o' E! H6 p1 Y2 Z
- );if * j' U/ |' f* Z# L( \
- $ W. N* }$ h2 f5 M. @9 o% ^/ H
- (setq hair_style_list (acad_strlsort hair_style_list));setq
3 {- m& o- @$ V: Q/ O7 Q0 K# [ - (mpoplst "text_style" hair_style_list)
; Y% Z0 G+ b. ^# r9 Z+ k - (set_tile "text_style" 8 L1 }. X1 P: f8 c3 l" D
- (itoa (position estyle hair_style_list))* g/ Y. S+ e5 u' u+ T8 \
- );set_tile
% b2 z0 |& v1 T& O; L& ~ - 3 L; ]$ X' R! C
- ;; Disable tiles if need be... ;@RK' H& q, U8 d6 k0 ]) n- O$ f* K* \! Q6 A
- (setq a 0)
6 L @& I3 W! k# v+ p - (while ( < a (sslength ss)) V/ p( r( ], @8 D$ w7 d) o' N$ V
- (setq which_tiles% y& K2 F L: i! i
- (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))
, P* @% B0 H% _9 B -
' B' ]! x, `' k" ]" N - ;; If all fields are enabled, don't bother checking anymore.: q/ x. B7 z) X% K
- (if (/= which_tiles (logior 1 2 4 8 16))
" u) I/ k% F1 a# l6 M# u, _$ \ - (setq a (1+ a)). j% w" S* r; j8 {) N# \$ U; \
- (setq a (sslength ss))
$ a! v/ J0 K1 r, w - )" |, j) J8 T4 G2 k" \ R
- )
+ I8 S8 v) I8 a; Y# j' { - ;; Layer Button and Text Field8 D. g5 o! U0 E: _. n. [! u
- ; W/ \8 B! j! L, p- S% u
- (if (/= 1 (logand 1 which_tiles))9 Q3 q' z& z5 p6 n+ y4 A& G
- (progn
% c8 q. Q2 I5 I5 T& Z: U0 T! ` - (mode_tile "t_layer" 1)
- {0 c2 h) Z; k& C3 ]( @ - (mode_tile "b_name" 1)
, P+ X- p! f. }2 w - )
, L3 A- Q0 h. d0 \: T9 ` - )
6 I2 h4 J0 V$ a/ B - 2 c' x* Y9 y7 d: e/ m" l, l: J% m% {8 H
- ;; Color Button and Text Field
4 x3 p G: o3 l D9 u - (if (/= 2 (logand 2 which_tiles))# G! v0 |: k% s2 V) v. c7 d; i
- (progn* L: s; \( `& _, B+ i
- (mode_tile "t_color" 1)
9 B' S; C" [3 i7 ^! i$ S - (mode_tile "b_color" 1)% k8 @# N7 b4 v
- (mode_tile "show_image" 1)/ E* m( Y1 n0 h5 N/ W7 c
- )
- W" j* R- |/ {, `/ \ - )
7 F& i* F" t7 F/ D ]0 {( Y- ? - ;; Linetype Button and Text Field) b# z Z' c: l
- (if (/= 4 (logand 4 which_tiles))' E. ?; j: c, X
- (progn
) U+ w! D* z8 O$ I- A - (mode_tile "t_ltype" 1)
* ]" ^/ k+ A! G3 y - (mode_tile "b_line" 1)
/ |# e/ O$ T3 L/ O( } - )
$ h) V1 t& V$ B$ m - )
9 {& C( G( F4 u; f7 V: J& A - ;; Linetype Scale Edit Field. H$ P: q4 K3 B( \6 n
- (if (/= 8 (logand 8 which_tiles))
4 e, K5 g6 H$ z$ j8 ]0 O% u6 v) R - (progn" D, L: Z8 D0 S* i. I2 I* [+ a
- (mode_tile "eb_ltscale" 1)5 z& N# H4 `, q# Q
- )
/ W7 P \# S) M. x5 ? - )
: @& n8 I. N# s% h% F5 f0 C - ;; Thickness Edit Field.- j6 O! l7 r/ G, f8 T" J
- (if (/= 16 (logand 16 which_tiles))
+ r* k1 I" p' i5 q6 x - (progn+ U7 d6 M' q! v
- (mode_tile "eb_thickness" 1)
6 H8 C8 T; }. I4 e5 C& T* Z - ), w3 x- { h, a$ U3 {' T
- )- x# s- u3 c0 ?- w0 b# ^3 X8 P
- ' m0 L* n4 o# q4 F6 O
- ;; Polyline box and tiles @rk 10:05 AM 1/30/977 S/ h0 B' b" l" ?, N2 Q
- (if (not (= 2 (logand 2 eflag)))3 U( K% u R6 U; Q% S
- (progn8 Z: c, ~2 z5 V0 W
- (mode_tile "text_hgt" 1)* X. J2 F9 U% d [9 k
- (mode_tile "text_style" 1)
4 D& [5 a& i8 ^0 L+ L( c - );progn9 b4 ^' P x! C1 X
- );if. |, m* H+ B% k0 V
- (if (not (= 1 (logand 1 eflag)))
! J. ~# J8 ~; Q - (progn ( T4 |6 R: h% h
- (mode_tile "poly_wid" 1)
9 |- m+ _5 n: e, g: B/ R - (mode_tile "poly_elev" 1)
* h8 F& S: F2 X. d W - );progn then disable polyline fields0 I F6 I& R! i2 O& c: p
- );if
) F5 w0 e' {/ n/ Q
1 [# l0 O4 r* R0 Q5 N- c( ?- ;; Define action for tiles v; R* a% V; q% Q
- (action_tile "b_color" "(setq ecolor (getcolor))")
/ G$ d6 A; A1 J- q - (action_tile "show_image" "(setq ecolor (getcolor))")
y6 L7 n7 v* ]/ s - (action_tile "b_name" "(setq elayer (getlayer))")
) H3 L3 R/ {' ?3 v' V - (action_tile "b_line" "(setq eltype (getltype))")
# m1 |+ L! q1 _; U1 Y9 I - (action_tile "eb_ltscale" "(getscale $value)")
# J3 V. `9 @+ [1 c/ j" N - (action_tile "eb_thickness" "(getthickness $value)")( H+ |& Y* }4 A' o
- (action_tile "poly_wid" "(getwidth $value)")
# v7 m& N ]. {9 n( l - (action_tile "poly_elev" "(getelevation $value)") j% O$ G1 E, N/ V* g8 w) s
- (action_tile "text_hgt" "(getheight $value)")
* _. l! @1 r: P* k: ]4 b - (action_tile "text_style" "(getstyle $value hair_style_list)")
; W; c' I# _" S# p: o) W - (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")" l* l1 M( l) i; w: S% y2 Q4 S
- (action_tile "accept" "(test-main-ok)")
5 ?: h/ j0 ~/ p9 l& J
. j) B+ C8 b/ p2 b9 o% B! h. C9 C3 }- (if (= (start_dialog) 1)0 u8 V7 n" q- G+ F; f
- (progn0 ?. Q# h5 v1 D/ z% X
- ; Update special properties for polyline and text selection-sets.
% W9 Y" s# x* A) { - 9 C' k" w d$ X$ \1 ^
- (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop8 J* V- _ R, E% Y5 n5 J( Y1 K% C1 y
- (or ewidth
9 Q, k4 N* J. P) A g) H - eelevation$ n0 T7 ]% @4 V/ d. W
- );or
8 s# o! ^- S5 Y- y1 ~$ O - );and
- e/ }& B0 N. _3 y8 _ - (progn
9 ?+ d* O$ h- L: p) d - (setq ss-index 0 * f3 s( k9 E# b1 c% d# X& y7 l
- ss-length (sslength poly_ss)
8 l3 c& G4 f8 B+ k5 u0 \7 k; @% z3 v - );setq
6 i2 x4 g1 h" c" L* @, k - (while (< ss-index ss-length)5 i4 n2 }" c, L" g( Q( A
- (setq ename (ssname poly_ss ss-index)
8 B/ r6 k* R! j& }. u - elist (entget ename)
% F% [' [* G) H7 i. R! _# ]2 ^ - );setq; r$ H3 x% x+ I# N F4 K6 S
- (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp
! o! p: E- \( ^0 ]8 }% S v% w$ l - (if ewidth 8 n$ A4 s4 _' \: M
- (command "_.pedit" ename "_W" ewidth "_x")
2 @( Q7 e7 z- t - );if ! k8 g: s; h. k( t6 O
- (if eelevation 1 q' l: H2 o8 _* z& n& j& B
- (progn2 x/ u4 G& g. g' M
- (setq p2 (list 0.0 0.0 eelevation));setq* c3 ?8 {" N2 W
- (if (equal (cdr (assoc 0 elist)) "POLYLINE") l/ i! G1 v0 l: I$ V
- (setq p1 (list 0.0 0.0
% m) E& Y& q* d; r1 _' ^/ q2 i+ h - (caddr (cdr (assoc 10 elist)))
: c* i; a( {; o( e - );list
0 v9 |5 M6 L( f: m, m l - );setq$ z. S. ]8 m9 L. O) L# B- f
- (progn/ A2 d* U, H; B+ Y* O0 z
- (if (assoc 38 elist): j& _9 |4 o* s, d8 A2 Y3 e
- (setq p1 (list 0.0 0.0
" J* `6 j0 ~, G8 V& Q - (cdr (assoc 38 elist))2 o. g5 T6 {9 F0 Y8 J
- );list$ l* y/ D }: h" [
- );setq
+ C5 B; _8 W5 A! {' \2 J - (setq p1 '(0.0 0.0 0.0))
& ?* y( W( Z+ q( O1 r - );if
! `( F" [* p J) q8 M - );progn * m5 D% W2 k( A0 F2 t& G( g0 V
- );if
% E0 Y: o, }# Q- V) s8 b - (command "_.move" ename "" p1 p2)9 d* N* S& Q3 @0 h
- );progn then change the elevation of the polyline
; @- f. l4 |; \ - );if
5 {/ i: j. ~! A' `5 I9 v - (command "_.ucs" "_p")
; `5 F# _+ n! M( e. B - (setq ss-index (1+ ss-index))
7 |0 \2 V! C8 d& O. O& g* L - );while
; W! l. x! P: B' g# j* @; r- U - );progn then polylines are in the selset
3 v# F" p' Y- M% y1 \; v9 T0 g7 e - );if. L: M9 Y- X# S% D4 @+ [( s# r
- (if (and (= 2 (logand 2 eflag)) ; text
/ W0 u5 F: F' W: S* n( A3 D& v- _: Y - (or eheight 4 G. }, R9 r& G1 a& }" D }; h5 X
- estyle
) i0 {- e4 Q+ d) p - );or
4 c$ k# b, o( R - );and$ D3 p3 s( u2 G$ b
- (progn, O+ x& b! R, y+ D( x4 d$ v8 x
- (setq ss-index 0 ss-length (sslength txt_ss))
/ T2 \) n' \8 j1 i* s3 Q; I) N - (while
2 B- F8 Y q& W - (< ss-index ss-length)5 a; W! A+ R& }% I* p# y
- (setq elist (entget (setq ename (ssname txt_ss ss-index))))+ N1 I% I) `5 a
- (if (numberp eheight)" R% T' a) H# g& w5 O
- (setq elist (subst (cons 40 eheight)/ L5 v! W! x }
- (assoc 40 elist)2 b' i2 N l3 w& x& ]5 K
- elist# ~0 t0 S, S4 O' r% G( E" l
- );subst
1 n, d ~; `4 n, H3 ~( J: | - );setq$ n5 p% K' s, \0 B- D- S% k2 c# h
- );if0 I: c6 L$ G3 |( V0 j' F
- (if (and estyle ;(not (equal estyle ""))8 y( |, I( x* b* Y; Y6 D9 l
- (not (equal estyle (cdr (assoc 7 elist))))
) c5 r; P5 p7 P, a. z - );and
% x, y! U6 l; ?; V! i - (progn : y8 t# O5 a0 }7 x! B6 r
- ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt
& _ h" z0 y" }& _; ?$ u7 y: z0 ~ - ;(if (equal "MTEXT" (cdr (assoc 0 elist)))- ~# e; O4 p7 J# D
- ; (setq elist (fix_mtext_fonts estyle
0 B$ C/ \" P! r/ u& g - ; elist
5 n1 q. I8 x" m8 i E! R - ; )
2 l. R: @2 k. v1 \9 l - ; );setq then
" x# u' N I% ]2 D9 D7 e - (setq elist (subst (cons 7 estyle)
8 v; I3 {. y6 o8 k$ U* h% c - (assoc 7 elist)# u3 ~' q8 Z- u! s8 W0 @5 p
- elist
) q; O% o! k6 r- ~: H+ G' \ - );subst( v! s. v/ B* f) m8 c1 R+ R
- );setq else! ] F4 Z- ?& ^. I9 i5 @& V
- ;);if ( B& D9 T6 W" B9 o% h& v7 o
- );progn7 F( V* ~# h+ x
- );if" n8 [& N; H# e% l# ^
- (entmod elist); O$ w7 i2 K9 \4 C- Y: {
- (setq ss-index (1+ ss-index))
- k' n! L# o. T/ E - );while
- {6 U3 ]" A6 X+ X! ] - );progn then2 T( j) G3 i4 J" y' _+ o
- );if
; L/ s9 y+ `" V' Z
$ v, l; R& x7 [: e- (setq cmdact (getvar "cmdactive"))
. X9 r9 [& u( M& K: \ - (command "_.chprop" ss "")
/ z7 a" b; |' f! D" \. ~5 {8 k - (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?
( t0 K, @& N* h: ^* w5 H - (progn/ q/ V1 _, Q8 C6 ~& T# v8 ?% P
- (if ecolor
( c; w. B4 L; ], Q - (progn
* s( E* e J; b6 Z - (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK")): I P% ~+ Q# i Q
- (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))
0 ]5 l6 q: w' w6 V$ x0 V8 h - (command "_c" ecolor)
" n) I5 D8 b3 w4 n; y" ~0 R1 m - );progn then
' x1 s' f" z4 @+ \ - )+ l$ S- k" e6 n, w* ?) K) b: d
- (if (and lt-idx9 a7 t; r6 ?# E) i Y
- (/= eltype ;|MSG0|;"Varies")
5 ~4 \3 p9 {; x0 n - )& _& A. R% q; U; d6 ~
- (command "_lt" eltype)
* x2 V6 }4 ~2 p0 w: y& k4 x - )6 w' @. \+ l& ^. q
- (if (and lay-idx
9 d" g% ~7 S5 Z! t1 q- {) I, S: m - (/= elayer ;|MSG0|;"Varies")( p. s5 C, n! x$ \0 I
- )+ Z. S9 Y$ C P) m/ Q
- (command "_la" elayer)4 K" I: R- A4 ]8 C, s) u3 q5 @
- )+ j; I) l/ m3 d, h' ]2 @( U8 N* I' w
- (if (and ethickness
+ G, O5 m( p/ H9 Q# W2 y) V. @ - (/= ethickness "")
2 U# A5 S/ |4 j3 ] - (/= ethickness "Varies")
# _9 X) N4 L% f - )
# F4 f+ ~$ E! T) w5 R - (command "_t" ethickness)
+ C$ M9 ^' v& r' B - )
# O" X& }8 u7 }8 M - (if (and eltscale (/= eltscale ""))
" ?5 x' q5 f }6 V+ ^1 Q) W7 D1 j - (command "_lts" eltscale)5 J$ ?( l$ e9 c9 b/ G, o
- );if
' ?, n' z. E7 m$ T - (command "")/ n; D) N, h! y* m/ y
- )& v$ y# h# Q" e
- (princ "\nProperties unchanged") ; CHPROP didn't like our SS set
% t1 [! a9 h6 ~; b - )6 L/ Z3 y I4 T0 Z0 r ^: [% e
) l! | W5 ~* _/ y, S4 Y- );progn then OK was picked in the dialog.% U! o- U9 `0 [ D8 A. }% p# N+ e( |
- # M3 i1 V) J" G9 B& g) J# N+ Q
- ;; Fred GERBER - 25-AUG-94
) w+ F! b7 z$ Y. L. D3 K+ S - ;; Don't print the "Properties unchanged" message when the user cancels
- [8 }9 V- I( q. h$ x4 I; i7 C - ;; the dialog because he knows that already (otherwise he would have" ]2 G1 |, Y5 I) z7 H
- ;; hit the "OK" button). Display the message only if CHPROP fails for0 G8 R- r+ y+ H' P6 T
- ;; some reason, because it is not the expected behavior of the command.
( U, ]7 @, m4 s1 P# t0 R6 m - ;;2 Q6 L. ]# @! e) f V& q7 U$ f
- ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")
" R" Y; T$ l: [; r - );if$ o3 ]) B n2 J& q
- (princ)
$ `2 o% P; L7 ^4 U& X* L' \5 F - );defun call_chp2
- v; r' A) p( I. d2 e - ;;
+ ]6 H2 _& ~( k7 Z$ _ - ;; Function to set the Color text tile and swab to the current color value.
& |% U" e {0 H* k - ;;
# l5 f6 e* b* G4 E - (defun set_col_tile()6 B4 k/ |& Z2 x( e5 x3 C) p" W
- (cond
4 O! a! l7 ]4 Q# T$ m - ((= ecolor nil)
. \5 S. O4 y% [$ T% v, h1 W- q - (set_tile "t_color" "Varies")
2 G) K7 s, A/ {& D; \* _ - (col_tile "show_image" 0 nil)
* ^& X% s5 q8 s/ i - )2 V2 G4 e2 W& s" l
- ((= ecolor 0)
- q1 n" K1 Y% C# Y5 E( E$ t - (set_tile "t_color" "BYBLOCK")5 ]0 n: j! E# Q
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white
6 ]# {; h* b6 e" W+ j - )
y3 l- [% j6 r" p$ K - ((= ecolor 1)) ^( E+ K) I& A: h# q: {
- (set_tile "t_color" "1 red")
7 q% o5 L0 L$ A; \ |1 Y% O! S& k" F - (col_tile "show_image" 1 nil)
% b1 M N/ b$ j5 n M, l/ D& H' @. L - )
/ H, F Q* v$ F+ Y - ((= ecolor 2)* U/ Q' f7 Z; n5 D9 H0 M
- (set_tile "t_color" "2 yellow")
: C* O' a" c, s2 f/ Q1 j$ q - (col_tile "show_image" 2 nil)
/ ~1 J4 x: ]! g& k# H* _7 Y4 x - )
6 v8 a: t5 W; f. u2 E - ((= ecolor 3)) N- ?1 n O$ ^; A7 p- t
- (set_tile "t_color" "3 green")" M9 E: n j6 k3 p; U4 |1 g
- (col_tile "show_image" 3 nil)( p0 E, u) g# h" w% W! n
- ), P0 H2 Y4 U$ v" ]8 k3 u# M5 Y
- ((= ecolor 4)' e0 I: Z' d: t O8 g n2 S( s
- (set_tile "t_color" "4 cyan")
6 M- {- W) S+ R9 [, R - (col_tile "show_image" 4 nil)
H# l' u9 T+ h. u- V0 C- L m2 T - )
& S# S% A& f1 s9 o - ((= ecolor 5)
# Q1 V) }6 [6 l% E A - (set_tile "t_color" "5 blue")( W+ R% K2 h! T
- (col_tile "show_image" 5 nil)
8 K. [3 k* e* C - )+ O. X3 `, e. ~. |5 x
- ((= ecolor 6)
. O$ s: x6 ]) N& A% z( Q* j$ ~9 l - (set_tile "t_color" "6 magenta")' j* y9 Z+ `& @4 W8 L
- (col_tile "show_image" 6 nil)! v9 u6 U% ]& p$ T0 A* H0 z* Q
- ). t/ b0 p9 d' [8 @
- ((= ecolor 7)) }+ {2 _8 F" p: T/ C9 O8 y4 r
- (set_tile "t_color" "7 white")% V" [5 t1 X! {+ L
- (col_tile "show_image" 7 nil)
- N% a. H8 c8 ?* e! [' ^ - )
, t T9 d+ W' g. C# @ - ;; If the color is "BYLAYER", then set the tile to3 P4 A& O2 G6 Z q. Z8 r2 z r
- ;; show it's set By layer, but also indicate the
5 I, | l1 Y: N - ;; color of the layer - i.e. By layer (red)
% Q" g W; L( x( K0 B - ((= ecolor 256)
' I; \8 M9 `& L. X - (set_tile "t_color" (bylayer_col))# z7 r/ V5 z9 V3 h4 M/ c$ G5 V
- (col_tile "show_image" cn nil)3 w1 o- F3 W8 H& [
- )
' \$ |' W4 E# e( O; C/ k - (T
- `9 Y0 e$ ~/ f, n! r2 ~- L - (set_tile "t_color" (itoa ecolor))
' N; d/ D3 u2 w0 `% ? - (col_tile "show_image" ecolor nil)
) m0 D! g% @' {( U' z. V! o - )
8 x6 P& }/ z) r* Y% F - )
* _* o" t6 {9 N/ Z! K6 O - )7 V. ]( i1 K$ U, c4 g5 ~
- ;;
1 z& |4 o! e- e& A - ;; Function to put up the standard color dialogue./ R) n5 X* q( m8 W# ^. C
- ;;
/ r6 L. X4 |7 j% P3 C/ i - (defun getcolor(/ col_def lay_clr temp_color)8 ^5 K' s' D# Y" {0 v. r8 Q
- ;; col_def is the default color used when rq_color is called. If ecolor& U. E' _# _7 D* ^! _
- ;; is nil (varies) then set it to 1, else use the value of ecolor.
% p1 x/ p$ h# v+ J - (if ecolor5 {* x& T, v2 r) m3 R9 _- k
- (setq col_def ecolor)
8 K! Z0 H* Q& m. E4 O: t( M3 @9 G - (setq col_def 1)9 `# c' n, z9 ~ w6 C: r
- )8 i# k9 z* ?( d2 ^
- 9 o& ~2 `6 B; ~7 @& [9 h: Q+ r* T
- ;; If we're working with a single layer, get its color9 q$ b# G; J; t7 ^& P! A( m1 \4 p
- ;; for use in the color swatch if the user selects color BYLAYER.: O4 x+ V$ c: [* t5 d1 o0 s/ @
- (if (/= elayer ;|MSG0|;"Varies")
+ @& v7 O7 _$ M5 Q: b: o8 o' [ - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))1 }7 @# V" i# ]7 B' }* K' ], ~
- (setq lay_clr 0)4 A) I0 | h0 B7 P
- )
# f/ W8 j, A5 X/ q s - (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))# i. j. g" s6 g( f
- (progn
/ V" Y4 h, b/ v6 r - (setq ecolor temp_color)
/ Q% y7 A7 u6 H - (set_col_tile)
. p# C% o" k! U1 I0 D3 ? - ecolor) ^% b2 n- N* v- w! I" u
- )
5 o% t* o/ M% U( i2 v - ecolor
}6 L( d8 `( [: Q: L - )' ~6 h3 s- q: o7 h: l0 f- n
- )% \3 ^% L- C! O7 f3 d! n
- ;;$ @: a: X ^# z# i* [
- ;; This function pops a dialogue box consisting of a list box, image tile,6 D4 _ k5 \6 i) j' f( t( |
- ;; and edit box to allow the user to select or type a linetype. It returns
& C/ q" B+ {2 V3 l7 E8 Z7 D5 h* z - ;; the linetype selected.# Y4 N+ a6 U' R/ \7 k
- ;;
8 n3 G" b0 U& D2 W% | - (defun getltype (/ old-idx ltname)
5 H4 q! Y- p4 T) @: _+ A1 S - ;; Initialize a dialogue from dialogue file; H% P$ n1 I& ~% H% A' S* c; U
- (if (not (new_dialog "setltype" dcl_id)) (exit))
- _; f& U/ v6 P9 O7 Q- o - (start_list "list_lt")
# Q" d4 u6 G9 z' G2 P+ U: J - (mapcar 'add_list ltnmlst) ; initialize list box# C: K5 o) m. ~9 D" Z8 M8 |) w1 n
- (end_list). c- d3 K9 d! q3 r* V, R9 V
- (setq old-idx lt-idx)
% e4 a( r" E0 _/ \ - ;; Show initial ltype in image tile, list box, and edit box* o0 o9 B6 T! i
- (if (/= lt-idx nil)5 R$ P$ u3 q- T
- (ltlist_act (itoa lt-idx)), F& L }; m. K7 Z
- (progn
# R0 o- d9 g3 M! d) J% K, b - (set_tile "edit_lt" "")
& { N4 S, D' A5 i2 l - (col_tile "show_image" 0 nil)
' l- I) T }, V$ e. k - );progn else) h( R7 p2 Q! x+ E' f% A
- );if
7 _ b3 N, J: H - (action_tile "list_lt" "(ltlist_act $value)")+ ^' r0 a! K7 z/ h! A3 J: W }
- (action_tile "edit_lt" "(ltedit_act)")% ]) i4 |/ O( ]* y9 G) { ~
- (action_tile "accept" "(test-ok)")
5 D9 a$ K' K2 k* c2 o6 ~: k2 x( Q$ { - (action_tile "cancel" "(reset-lt)")
& N( n" a8 y" }) K" i+ n0 [7 o0 y - (if (= (start_dialog) 1) ; User pressed OK) `# Q/ i8 j6 _. ^! v
- (cond
8 z; c3 @5 D( X! Q, A - ((or (= lt-idx nil)
8 |, I* b" M- Y0 I2 `5 B7 p- |% H/ X - (= lt-idx (1- (length ltnmlst))); l& S+ i0 A. g$ S, H, a& l
- );or
6 Z8 s, Y+ E2 E9 z% [. U& t% ? - (set_tile "t_ltype" "Varies"): l0 F* E( F1 g9 p% N
- ;|MSG0|;"Varies"1 \& p. x: E% N
- )% v1 |+ }$ Q0 V
- ((= lt-idx 0)
1 ^, ]& c3 @ c, ~$ y, h - (set_tile "t_ltype" (bylayer_lt)); T4 }+ j4 e1 o- s
- ;|MSG0|;"BYLAYER"
% T( D i/ e, }" h; C% x - )0 v( L( Q. p+ x
- ((= lt-idx 1)
; a7 w! [+ l2 T* |; o1 k3 U - (set_tile "t_ltype" "BYBLOCK")
: d% h- O- N: U# P% ~ - ;|MSG0|;"BYBLOCK"
" ~) ?$ f7 E" Q6 ^ w - )
6 f8 Q, L: Y. F! Y C# l - (T% Y( j6 s7 e. W2 C
- (set_tile "t_ltype" ltname)2 T( \- Q0 Q* v' r& j7 }
- ltname! V$ g5 R5 o6 t) N0 p9 O7 f5 A4 W
- )
" R- d% C# F% J6 T3 u - );cond then, V# g, U# T! \" x/ N1 e C
- eltype5 o' t# }0 T) z" b
- );if! J1 [7 P2 D- i! `. E) u' t
- );defun5 n" A q$ A1 ~ X5 W
- ;;
5 W1 p& y& w5 W1 V- [, a" N - ;; Edit box entries end up here
2 _. E5 m8 P( O8 L- {* b - ;;
/ ~" O1 n* O4 B - (defun ltedit_act ( / flag)
- L' }( ^9 Z/ E- J - ;; If linetype name,is valid, then clear error string,
0 q a6 B0 w) I6 R5 q! ^ - ;; call ltlist_act function, and change focus to list box.
6 A! D6 G" X- d2 B+ @ - ;; Else print error message./ s6 y. \$ {: _4 Y, x
- 6 Z2 a8 M1 I$ i5 ]' a$ ~
- (setq ltvalue (xstrcase (get_tile "edit_lt")))
' ]- F, M2 K8 k5 x2 y - (if (or (= ltvalue ;|MSG0|;"BYLAYER")0 X) P+ R# O- H3 I
- (= ltvalue "BY LAYER")/ ^! W+ D& A' |. N. ~& D
- )9 K) |7 A' I4 o
- (setq ltvalue "BYLAYER")6 {! S$ ~6 {9 t4 v. x
- )
7 q' l. u; e# v - (if (or (= ltvalue ;|MSG0|;"BYBLOCK")
& n4 b9 p- Q# M) G - (= ltvalue "BY BLOCK"), N+ D7 i3 s" s1 C
- )
6 c2 M/ ~5 q* m S1 o9 s. Q) Z - (setq ltvalue "BYBLOCK"): Q, f7 A4 M4 g- d( ?) k3 V' F2 R
- )
; h' F. i( Z: E+ q6 _! i - (if (setq lt-idx (getindex ltvalue ltnmlst))
" W- I; f6 C* C$ O6 ]/ i/ n5 A5 | - (progn6 t+ {0 c' d: Q( R9 ?
- (set_tile "error" "")( X/ s2 x8 Z# S1 D6 T" M3 B* x
- (ltlist_act (itoa lt-idx))& G$ ^8 f2 a+ M# v/ T: U" ]# y
- ;(mode_tile "list_lt" 2)
0 L! U; W$ q( o8 U9 \5 z# r - );progn then) ~! o4 [8 k8 a" i8 |) f* z
- (progn$ K* s$ `' P( E4 g' K
- (if (/= ltvalue "")
/ j. c& o; A; ]- t - (progn
" g. q: U; d$ M# @8 J4 I - (set_tile "error" "Invalid linetype.")1 [ |; [; v4 `+ U9 H/ r1 b
- (setq flag T)7 @" @. s7 P* h) W% b* T; P
- );progn
1 }9 X4 p4 P$ K; b( p. n- } - )$ N5 c9 _* }8 x$ `
- (setq lt-idx old-idx)
5 R2 ? a# V8 L9 G! \4 F' x - );progn else
2 a' ?- F" G) Z8 p5 ^+ N - );if8 n8 g8 O K1 ~( S/ m+ i& D
- (if (and (not flag) ;added so a return will take you out of the dialog.
6 y% a5 J" J) {; x- y - (= $reason 1)8 q8 a) S5 T5 H; b# s6 \
- );and+ B6 q# E$ R D7 |, }
- (done_dialog 1)
$ G( T: i0 m- ~6 [' M - );if l! z* Y: t. p0 Q1 A) D: m B
- );defun ltedit_act; ]8 C1 r% t- E4 f. ~" @
- ;;. s" C+ \. L7 g* F1 ~
- ;; List selections end up here
" @1 R# A8 S" Z* L4 ]0 s - ;;
+ w1 ~! |' M' p8 H - (defun ltlist_act (index / dashdata)
' ?: ~9 i6 u: `* ], t) o8 ? - ;; Update the list box, edit box, and color tile
3 y9 G' k; ?- ~' N3 @5 x( ` - (set_tile "error" "")
8 F& L6 ~1 Z! c2 ]8 N: _ - (setq lt-idx (atoi index))/ w( C7 q& j7 J& ]/ S C
- (setq ltname (nth lt-idx ltnmlst))
# e& Y! j% a* {! a" l7 L. { K - (setq dashdata (nth lt-idx mdashlist))
) O/ A' s" [3 U - (col_tile "show_image" 0 dashdata)7 Z5 y+ T+ y$ G2 `; K" {2 d
- (set_tile "list_lt" (itoa lt-idx))8 |! S, U9 z; n* }2 t5 D( Y
- (set_tile "edit_lt" ltname)
4 }' D7 N" t/ |: T3 s& w - )
& L! V( z+ C5 Z - ;;
2 K6 @2 w4 v. A# l% k; h - ;; Reset to original linetype when cancel it selected0 ]9 P5 R5 ^9 T- d- [8 o
- ;;
( G6 I0 H! j; X/ T( S3 B+ K - (defun reset-lt ()
, y7 u! R+ V2 a8 D' Z9 r - (setq lt-idx old-idx)
) r ~5 V" d3 M! s9 K. y! c - (done_dialog 0)8 E/ S5 |. K9 `9 U2 R5 }, v
- )3 g4 y. Y1 K: v w! Q4 m
- ;;
0 d9 B( u8 F' K6 t6 r - ;; This function pops a dialogue box consisting of a list box and edit box to
- |* @' I; L/ e, G* G& I4 ? - ;; allow the user to select or type a layer name. It returns the layer name- _" B: m' V: O- v
- ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the, Y6 R9 p9 r O. o( y3 E8 j9 R
- ;; drawing.6 N% s+ \+ |: T
- ;;
" w9 X6 w/ C. ]2 ^6 Z - (defun getlayer (/ old-idx layname on off frozth linetype colname)
, \* j- e5 M$ C9 Z9 y - ;; Create layer list the first time the layer
( v4 D) G6 v+ U8 a - ;; dialogue is called.
0 q' Q+ y: a' u) j6 F - (if (not lay-idx)& x- b' X q& f; l: F; j+ \
- (progn6 Q. C% H: A. b4 s0 i% d
- (makelaylists) ; layer list - laynmlst' M. I( w# r* n9 k6 C
- ;rk
" k: M! O6 x" \0 A - (setq lay-idx (getindex elayer laynmlst))3 A$ `8 k' t0 c# `( Z7 G2 r( e
- );progn
% l6 G2 W' n& z# y9 k, w, P/ R - );if1 a# O3 q# t0 C, ^; S
: d; _; A# @. }+ D- ;; Load a dialogue from dialogue file0 O8 n* ~( B. \2 M
- (if (not (new_dialog "setlayer" dcl_id)) (exit))! z7 Y3 U+ E7 r6 V* Y
- (start_list "list_lay")( m! ?# U% r. g, k% k! t
- (mapcar 'add_list longlist) ; initialize list box
, _! c& u. B$ T" V* z" ]* O - (end_list)
5 v+ I# y/ a5 W9 h - ;; Display current layer, show initial layer name in edit
6 S% ]9 ~8 y- m - ;; box, and highlight list box.
0 I4 x0 s3 G/ G6 q$ i& w5 U - (setq old-idx lay-idx)
9 w; @' w* a1 G9 X/ c - (if (/= lay-idx nil) (laylist_act (itoa lay-idx))): r6 j6 G, o4 y! u" V" {, \- Q
- (set_tile "cur_layer" (getvar "clayer"))
9 Z+ R. r% c1 P4 G - (action_tile "list_lay" "(laylist_act $value)") B! U$ t& `3 |& q& ~$ p
- (action_tile "edit_lay" "(layedit_act)")& ^4 R5 @* `7 t) {* q$ B' B
- (action_tile "accept" "(test-ok)")1 R; _' v, A# f0 ~* U& B5 t
- (action_tile "cancel" "(reset-lay)")
9 J+ C) f x. x+ l; I6 ] - (if (= (start_dialog) 1) ; User pressed OK' \7 |: P$ t2 t( Q" R; u
- (progn
& G2 ?! z* g9 d. s* q - (if (or (= lay-idx nil)( ?- V' r: d7 Q& |9 E2 n' s
- (= lay-idx (1- (length laynmlst)))
6 `( P& v- N% H - );or
5 g# a8 Z; Y/ f3 a# x# L$ L8 w - (progn
* M) m$ D7 y7 L4 A9 } - (setq lay-idx nil) ' Y5 p' t) @0 o6 `
- (setq layname ;|MSG0|;"VARIES")! t/ E# a5 d0 F0 k. o( X" M
- (set_tile "t_layer" "Varies")- @8 b5 f# l' R$ ?* [1 X; N
- (setq layname "")
: p7 A4 \- s8 `2 p7 K - );progn
+ o+ A1 e7 g$ | - (set_tile "t_layer" layname)- ?' Z2 `4 D* e% m- r/ A- @
- );if- \6 ^+ L- @( ^* [3 r7 H+ M' c: L
- ; If layer or ltype equals bylayer reset their tiles
& `( ~+ \: E* o- n - (if (= lt-idx 0)5 V* C5 ^; d3 w- V6 }* I: R
- (set_tile "t_ltype" (bylayer_lt))
' u1 J% s0 `3 e, n$ h' ~) p: e - );if. ~9 j9 j4 `" I7 D1 q3 y; S
- (if (= ecolor 256)1 r5 l, ]- y8 J9 u
- (progn% e& t# Y+ S B
- (set_tile "t_color" (bylayer_col))
& J. Z# R* O8 z1 i5 @% x4 u - (col_tile "show_image" cn nil)
: |7 M2 ?/ `9 U! U2 [; ~ - )
' a1 t+ z, H/ T- ^ - );if+ T) M) u, i% F
- layname6 U# [1 q' S7 Q& o" |2 b7 D# S
- );progn; B5 c4 L7 w$ }4 t
- elayer. R4 Z" g- V8 z" N
- );if
, }# k, g7 `9 M! `; f. i0 F- Z - )$ x4 `- f b7 x- b7 e# n. \) T
- ;;
( U; \/ ~3 k! q. k2 u - ;; Edit box selections end up here
8 Y) Z* z1 y- c1 F( |; _, E - ;;
2 n1 ]1 z7 a Y7 h; i - (defun layedit_act(). W- ^' D, {% B% q7 i
- ;; Convert layer entry to upper case. If layer name is8 d- F# t! {( c* {" F" }* r
- ;; valid, clear error string, call (laylist_act) function,
+ B) ]# }% k+ U% R - ;; and change focus to list box. Else print error message. Q$ f# E" g4 a1 X/ V
- (setq layvalue (xstrcase (get_tile "edit_lay")))
" F `) s, ~; ]4 ~ B& B - (if (setq lay-idx (getindex layvalue laynmlst))
# t7 C q' M4 o - (progn
# t9 I0 {4 T; I2 P# P# _" K2 u8 T. f - (set_tile "error" "")
! t" ?7 v1 X- M; O7 y* e - (laylist_act (itoa lay-idx))
# _; v4 K3 u6 E; F6 |8 ? - )
0 K+ ?; a2 E! e! A& z4 X: F - (progn
- _9 D5 r' P% z/ l/ B# Y2 W - (set_tile "error" "Invalid layer name.")/ _+ g/ E: q8 i. f+ d+ {
- (mode_tile "edit_lay" 2)% M; e$ b+ l+ e2 n. K$ p6 c$ A4 \
- (setq lay-idx old-idx): K1 p7 _+ [( Y. J" @
- )# b. p) ?2 l; b4 |9 ]6 b0 i4 Y& {
- );if
" p2 }: N- p0 h& q# d$ K$ O - );defun
) {! M2 @" ?8 S5 P$ U - ;; L8 N$ c5 V8 I y( R+ c* ^
- ;; List entry selections end up here/ `4 ~3 u5 |5 x9 D* [( q- K
- ;;! b& Z) d( d n4 I6 }% T* y4 j
- (defun laylist_act (index / layinfo color dashdata)
( ~7 q4 \6 O+ n; k, G% A1 o - ;; Update the list box, edit box, and color tile) b7 t1 R! H8 U& M. ~- a
- (set_tile "error" "")/ w3 m# ~1 Z) P
- (setq lay-idx (atoi index)): e& y+ f$ N; h; R+ y+ @/ @; t4 n ]9 P! Q
- (if (not (equal lay-idx (1- (length laynmlst))))
3 g; y- }* Q, u& x/ H1 G& e - (progn " v; E$ r, z$ p
- (setq layname (nth lay-idx laynmlst))! \; |' W' C' v! A: V5 b
- (setq layinfo (tblsearch "layer" layname)); a4 |/ F1 x) ]
- (setq color (cdr (assoc 62 layinfo)))
. @' a& P: B; r" O3 J" B - (setq color (abs color))% z! d1 f) l$ m
- (setq colname (colorname color))
% b! t3 X, `- [. Y - (set_tile "list_lay" (itoa lay-idx))
4 Y0 C: R) S% j# U% ^- k3 o - (set_tile "edit_lay" layname): E0 t _- S+ T! I. m3 j$ `
- ;(mode_tile "list_lay" 2)
; E7 \" ]0 ]! Q1 ?) @' g - );progn then ( _3 B6 T* s# K6 N* B
- (set_tile "edit_lay" "") 5 }8 V7 Y8 f" z( c; }: @: r1 d
- );if 4 f, G6 j1 [9 _; X$ X
- );defun laylist_act" w/ _- G8 a. j" J
- ;;3 S6 B' X6 {" s) V# `& u0 j# Y9 R
- ;; Reset to original layer when cancel is selected# e {- |! T7 b
- ;;( y: T z2 X/ r6 ~" h! o' k' B
- (defun reset-lay (): A a ?" V" R
- (setq lay-idx old-idx)9 _& L3 i& ~6 a& v. m1 E; V
- (done_dialog 0). a5 L3 X# ~9 B/ d+ ?
- )( n) ~" O6 A, ]0 k" }6 S5 T6 g- z
& N: R8 G+ S' J) P( R/ l- ;; Checks validity of linetype scale from edit box. It checks to5 {* }* Q0 ? V9 w% E
- ;; see if the value equals "Varies".' u+ \3 x8 |: b, M0 R4 E
- 6 I6 J7 f9 Z: h5 N& d+ ^
- (defun getscale (value / rval)
2 b7 ?/ l4 {+ z8 T# z l5 i5 T: s - (setq value (strcase value)3 p0 v- o' d0 |/ R
- rval (distof value)$ W w$ r/ H& {' i
- );setq
/ w, n% @, Z* w* h! m K0 |0 O - (if (or (= value "")
5 j8 V( z/ O' ?& Z8 i/ V+ z. j, N - (> rval 0.0)
0 |/ A0 O! l1 w; r8 @ - )
: a1 U# W2 M& s - (progn1 h: v9 o% e) X& \
- (set_tile "error" ""): ^% g, z, \9 V; Z
- (if (= value "")
: L6 D# @) n9 G* U$ O' j. L - (progn
( H# A3 X& s5 ?2 L - (set_tile "eb_ltscale" "")
: D3 `- H' l& T( h - (setq eltscale nil)! `+ Q3 b% C% `2 e6 G& @" `9 U6 d
- );progn then
. ~0 S W0 c k2 V) i% s! t# C1 r - (progn# `. N- p3 r* h! D; U
- (setq eltscale (distof value))
1 M! V* Y; I; Q9 l - (set_tile "eb_ltscale" (ai_rtos eltscale))8 m2 s, [$ n! g {" B
- eltscale+ t: X8 B( }8 q H; E& m+ L
- );progn else* J( v5 f' a+ j3 Y
- );if! t5 {5 g" ~! p0 `6 M6 z
- );progn
1 v. G5 W1 y1 L" M' K5 @ - (progn
7 ^" v# u6 T( X, X4 {0 M6 g4 U, J - (set_tile "error" "Invalid ltscale.")1 ? Y3 u6 r( u$ f- w
- nil$ `1 T- k# o3 e
- );progn else
0 E: G( T4 p4 Y$ o: j& v8 l - );if+ m7 k' _# U/ i" |1 v7 {% H5 [
- );defun8 R6 N/ t( h1 P
- ;;5 v' S$ A: K5 U* o8 M4 O- c
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a* Y( h" e1 H( A4 ]5 Z
- ;; string can't be converted to a real, this routine checks if the first
/ L' Y, `7 j* c6 I0 l2 M - ;; character is "0". It also checks to see if the value equals "Varies".
( N; U/ k/ Y+ c. F - ;;% U! L9 n1 Y7 a. |) u# }
- (defun getthickness (value)8 U& y$ j4 c8 d. [2 e9 @3 @: j7 C
- (setq value (strcase value)). G r- t s! Q4 Q7 [8 K
- (if (or (= value "")) a0 K+ Q5 X9 _# j- H/ x; Q
- (distof value)
0 w2 Y6 P" A8 Z' ]& t - );or0 M3 V) B3 q, @2 I: s; n( L! J
- (progn
/ q* U8 l% e$ v; B) ?7 o% K - (set_tile "error" "")
: ^4 U( |! T, ~/ S - (if (= value "")6 g0 |3 f: h4 S' }
- (progn
- s9 c( f9 c( B# ^ x! E# | - (set_tile "eb_thickness" "")' D# t% A: I1 {2 _9 z) C1 P
- (setq ethickness nil)
! ^/ K1 \ v9 x+ A/ {# o+ j - );progn. C4 E0 G8 i* v1 @
- (progn2 Y( i6 r1 \0 k/ Q+ v( K3 }' j
- (setq ethickness (distof value))
6 d2 A: Q) D0 v - (set_tile "eb_thickness" (ai_rtos ethickness))4 u( d: t" h% F" \! R: x
- ethickness C3 C* _4 Y; v) B, `( p {. J
- );progn
9 I+ O, S! ]4 s' E - );if/ \5 [) c* c6 i9 @: y& \3 I
- );progn
- H: j+ h- `) w - (progn
0 k2 N. S' B3 x# V4 @ - (set_tile "error" "Invalid thickness.")
, w$ E5 N v* M/ R# h5 J3 v - nil/ _4 \- S6 ?* x1 I
- );progn" b" Q! N1 D) D7 m, x2 r# ]
- );if3 v: s6 Q; Y6 B! M% L, {+ R
- );defun
( k+ s% q2 ]) J" h% H4 O7 O' K - ;;
, d+ z: M X5 T2 ^' V( s - ;; Checks validity of polyline elevation from edit box.; @# j8 U: i* B9 s0 @& p1 `* `2 _$ B( s
- ;;
. h" Q! @4 j; ~* X - (defun getelevation (value)
" N7 q6 o7 T% V$ d }5 M f - (setq value (strcase value))1 @, x5 h4 v( y
- (if (or (= value "")
?) S% T8 s3 e; {- M - (distof value)
" T2 A0 u8 D6 z" T( P2 z - )" P: o1 v/ w2 C7 s$ \
- (progn) R2 S0 z( R7 E' ~0 f
- (set_tile "error" "")9 X: N: B% a* i7 l) d
- (if (= value ""): |" z9 V+ f6 Q; o8 e4 H5 [
- (progn
# S* d; r& t, e# x1 T - (set_tile "poly_elev" "")
7 f' h- a( G9 u - (setq eelevation nil)
* V: V* Y5 g5 r; O; n i3 N5 m - );progn
+ D) D4 O# w2 w; z, s: o3 \2 i* L - (progn/ R: N0 c3 C5 z& O) a6 C% X0 G/ z
- (setq eelevation (distof value))
+ b; j D, }! b! ?, W7 M - (set_tile "poly_elev" (ai_rtos eelevation))
' N; @+ |8 y- F0 f* L - eelevation
" n9 C2 D3 r5 j9 B3 H, g3 b) o8 B - );progn
: D ]3 j3 {! ~ - );if
4 G! F$ J; R# X - );progn3 j3 M0 G0 e. T# {" ^
- (progn
( F' Q$ N2 i( b: q5 \/ M - (set_tile "error" "Invalid elevation."): |& }& Y: K1 `: r! h) D3 O
- nil
( }- ]4 V5 T6 D/ L6 W' m' l' ^ - );progn, l+ v( M; C* \# q/ `( D4 R
- );if" H, M' v2 m8 k" x
- );defun
" E4 e/ C: Z6 Q5 t W - ;;
. a, D" C) Z+ Q. F8 y - ;; Checks validity of polyline width from edit box.
! ]; E( @! b4 u! \, T - ;;
7 D* u2 p6 I n' c" U2 {( D - (defun getwidth (value / rval)9 o; `' i) B" Z" }9 B- N) b
- (setq value (strcase value)
( w) M( y; i/ ] B2 L7 h - rval (distof value)0 S7 Q8 n) j" u# S4 n
- )
! D7 S; ~$ k+ T% ^. ^0 U" o, U - (if (or (= value "")
8 ~# Z& Q; m5 L b1 d. y8 l - (>= rval 0.0)( p& X, U! Q% ~6 x: M3 G
- )
5 O) S; G6 [" J' }+ x' w - (progn, n0 S0 P% W7 l( C0 M$ f) _
- (set_tile "error" "")/ ]/ L; k. s; w
- (if (= value "")! F2 N6 O0 Q% G$ y: C1 |1 b3 R
- (progn, |$ L) a2 ]$ F5 p5 T
- (set_tile "poly_wid" "")$ u$ B3 q, r: \, X$ }& S$ D
- (setq ewidth nil)7 j: ~. l( A2 O/ ?
- );progn! j% F0 b2 H) W% A. r7 ~' R
- (progn
" i" y+ U0 L" A8 G - (setq ewidth (distof value))" ]1 V3 r; d8 p
- (set_tile "poly_wid" (ai_rtos ewidth))& E7 V0 I' Q- Q: C
- ;width; [/ ^: `# [& Q+ M
- );progn# }8 x' n5 ], R6 f3 h4 [# I
- );if" k' p' f5 [, G& x
- );progn
. u+ K6 U* [6 O' n9 N3 p- w - (progn
; P ~; a/ O0 d4 h/ S - (set_tile "error" "Invalid width.")2 C4 p$ l+ c) Q$ J0 @" Y
- ;(setq ewidth nil)& F3 v2 Y; o7 c
- nil ' S! ?% ]/ ?2 S( ~* I G
- );progn
! a4 W. W$ t5 e6 F - );if
$ Q) ~2 J1 m2 @6 B# ] - );defun4 u0 F l% B2 H
- ;;
! s6 C: |/ u7 ^: Z# v+ N - ;; Checks validity of text height from edit box.( x4 |( @ i5 r% j( v3 I' a8 B
- ;;
! W2 \2 K, O0 f& I% o/ B - (defun getheight (value / rval)3 O7 n* m9 m) F {& Z
- (setq value (strcase value)" Q- e" U7 Z! M( ~* z5 @
- rval (distof value)$ F/ b% ]2 g8 N& ^1 O) T
- )6 T, L2 \& g' @% w0 }
- (if (or (= value "")8 r0 M+ M3 @* q! T5 M
- (> rval 0.0)
# q, {8 J1 u9 D8 b& g) \ - ); W6 j' L1 i# u
- (progn* [# W8 C* f- {" z$ l1 J0 u& v
- (set_tile "error" "")
, H/ y5 @* {( {# `; Z# P9 d; A$ c$ I - (if (= value "")
' }+ D4 ?5 q( U' L - (progn) v' W' d. B0 j7 j# j8 L5 B' N; a6 g
- (set_tile "text_hgt" "")$ b4 r) r( H7 l* K7 Z* x+ V2 R/ i9 Q% J
- (setq eheight nil)
1 z& ?, v2 ^) Q* u8 E) e) V - );progn$ S8 `2 G* s0 {# O3 T
- (progn% x i& d0 _6 @/ P$ C9 p. n
- (setq eheight (distof value))
, c6 l, Z9 h2 u( z" @& c" T, C - (set_tile "text_hgt" (ai_rtos eheight))+ D T; t4 c- C- y
- eheight7 N$ w4 n2 r) ~- ]
- );progn
2 p, W1 [* q0 A* i* Q3 W - );if
1 e! O) Q4 B' S - );progn2 M5 g: l: ?+ J/ N! u& h% _8 d
- (progn8 o2 }, z) {6 e9 R
- (set_tile "error" "Invalid height.") J& p& N9 e' E. Y( @4 X5 u
- nil
, k3 Z ?6 ]2 \, r% j - );progn) F# C4 r% x7 ^
- );if
! L: P+ q( u% P/ e5 c - );defun5 L y* `$ d6 M
8 G0 @3 p4 U' t, L; S- (defun getstyle (value lst / rval)0 O) i4 F3 N( w. [4 L. A
- ;(setq value (strcase value))
/ [$ U) Z( ~. t. x, N- ?( T! e - (set_tile "error" "")8 Q0 I' z$ q& I* n, }2 H
- (setq estyle (nth (atoi value) lst))9 w; L1 Z! p% c/ G1 { N% z3 H. A
- (if (equal estyle "")
- e( ?3 Y, c1 Z1 J- K& A; J$ \ - (setq estyle nil)% L, S8 |, H; E! h% y
- );if
( S. L- {! [( R9 ? - 8 [7 O1 N0 |- R; b! l! Y4 `( k5 X' _
- );defun getstyle
: T) M" J1 d* c) [+ m. {( [ S5 o( G - 5 }+ N4 c6 u4 L* j4 \
- ;;9 G" m/ k: M; d
- ;; This function make a list called laynmlst which consists of all the layer) H+ X4 y: H4 M9 l
- ;; names in the drawing. It also creates a list called longlist which/ \% Y( V. }5 c+ O7 x1 f' \
- ;; consists of strings which contain the layer name, color, linetype, etc.
2 r' c1 t; L: ]& f4 w0 h - ;; Longlist is later mapped into the layer listbox. Both are ordered the
3 H+ X4 Y1 o3 a1 J5 l1 v - ;; same.
3 ~ s" W" w8 b; k0 J - ;;* C5 v6 A$ x, y
- (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname5 Q, v) |- w Y) e4 S0 V& S# z
- xdlist vpldata sortlist name templist bit-70
" L: v# ?) F% ?3 n8 B& J$ c - layer_number
- O, o {% O& x$ P# L - )$ L( C2 F! z8 M8 p
- (if (= (setq tilemode (getvar "tilemode")) 0), s# h% ?# ?3 l8 W9 I; K
- (progn
6 B8 \& m) d- ?# U - (setq ss (ssget "_x" (list (cons 0 "VIEWPORT")2 N8 U; o4 ?) H
- (cons 69 (getvar "CVPORT"))6 `1 b! H1 k# D+ L3 ~! j; o. U
- )
9 s' m' i- P/ p$ b8 Q9 }' [ - )' ~- x# J0 f: }) w7 \- u
- )
' \0 z. Y+ N' m! a/ X/ A" ` - (setq cvpname (ssname ss 0))% l! J( O( ~# M4 s- D6 @; t' }/ z
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))
0 U: Z, E6 j: _" @ - (setq vpldata (cdadr xdlist))
7 e& @: W5 U* I- R1 C8 t- p - )6 q" s8 U' W- v% U7 i' {( K, R
- )$ A) n0 \: X( T. e0 \! K( m& d
- (setq sortlist nil)4 H; _5 G) R$ q
- (setq templist (tblnext "LAYER" T))9 u, ?% |* `( W6 f' Z
- (setq layer_number 1). j. m! n/ n$ w& Z: l1 h
- (while templist6 v" {; F, g W. ~
- (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))
: o( u3 ?+ F' O2 h+ l - (progn % ]; a4 ^( w' h/ U; I
- (setq name (cdr (assoc 2 templist)))
% ]8 V0 h, i# W( d7 H6 @- Z7 n - (setq sortlist (cons name sortlist))7 e6 c' Q) H+ a! \4 g
- ;; Not dead message...9 e, G% J5 P6 v& e* R& F) L
- (setq layer_number (1+ layer_number))
5 k2 I$ L; N6 @0 y9 i6 I - );progn
; |# q1 b d# j b/ V: _ - );if7 t* {+ K/ c# t. t3 |; |) n
- (setq templist (tblnext "LAYER"))7 s' s/ i8 \" n) K$ k
- (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))- e: B4 R$ H; p2 j: {, p m
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
6 I2 |9 H" m5 W1 S) ~7 m; J5 Z - );if) M$ r2 C- H$ i
- )
( @7 x& W) O% F - (set_tile "error" "")! P- d7 |7 M! l; w# U8 v% ~ A
- (if (>= (getvar "maxsort") (length sortlist))
" F0 q8 {5 C. V) Z5 k. m& v - (progn
% N/ N d$ }4 u. E9 H6 ~; o - (if (> layer_number 50)
2 T5 G% j/ T6 N+ t, s! M - (set_tile "error" "Sorting...")
8 l" a# P& s: X* j- B! V' R7 ? - )
5 c% S+ m' W3 {$ K! L - (setq sortlist (acad_strlsort sortlist))
1 ]3 e1 F3 @+ z. i0 B/ W, g - )
; M; ?, |* V+ p, g' z0 g - (setq sortlist (reverse sortlist)); a; k( H) E' u" K' `
- )
. A+ r: w7 \6 G! o+ O - (set_tile "error" "")
. d! ], B% x& Y" Z+ o - (setq laynmlst sortlist)
! J3 q! X d7 u6 v+ U# H - ;rk 6 n: ?' R8 o& ]$ u
- (setq laynmlst (append laynmlst (list ""))) 0 X b0 M) F8 C+ \. c! i1 t2 y& ?
- ( Y4 ~6 Q( J d( m8 ]
- (setq longlist nil)
5 Y) T2 C& E% G/ k8 D" [ - (setq layname (car sortlist))3 K( ]- h$ H, S' _ {
- (setq layer_number 1)$ c0 V8 Z9 a1 ?" Y
- (while layname6 l7 o2 [9 x+ ]
- (if (= (/ layer_number 50.0)
& b3 G3 ]9 L8 l x( M+ O( P - (fix (/ layer_number 50.0))# R# g- c' N! k
- )/ p7 d+ d1 ]/ v
- (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))
: {& {8 b+ h& x1 t* p8 G - );if
5 p! X- C# I1 i2 Z" s - (setq layer_number (1+ layer_number))
d5 m5 x4 W2 M9 b - (setq laylist (tblsearch "LAYER" layname))% L3 p( s. h2 F7 n4 p7 l
- (setq color (cdr (assoc 62 laylist)))7 M& |, ]# o5 b
- (if (minusp color)
$ y' y r/ ]( u6 s, _0 p3 q - (setq onoff "."): z3 T6 `$ ?( U; \' y" ]; b2 c3 G' D
- (setq onoff "On"): Q! `0 v3 a+ H9 Q8 B( a
- )
2 ?) _ @ o, h0 b8 y - (setq color (abs color))
8 N8 u9 u a/ o. F8 G, J8 M i - (setq colname (colorname color))$ c4 Z: d/ E2 @+ g( I
- (setq bit-70 (cdr (assoc 70 laylist)))
2 a/ Q' Z( Z8 y+ _6 M7 S - (if (= (logand bit-70 1) 1)( m+ q$ [0 T2 h
- (setq frozth "F" fchk laylist)
; z; k6 [% ?# p! H$ S# _ - (setq frozth "."). m/ b) d! C# Z P! K& j/ |! G
- )) N5 }: W# o2 ~" T
- (if (= (logand bit-70 2) 2)& f, T# f" h" a" w3 E7 {
- (setq vpn "N")
; r8 k5 W, H4 p) @8 S8 n - (setq vpn ".")
6 @5 l1 {. x2 s0 O - )
# I* O0 s( U- R) y - (if (= (logand bit-70 4) 4)
1 s+ `/ X: K- ^7 j - (setq lock "L")" ?) Z) c8 W9 u) Y9 [2 h
- (setq lock ".")
8 r# y/ H! x) R: M - )9 A: Q9 T; B, `# x- c# u) I, E
- (setq linetype (cdr (assoc 6 laylist)))9 E4 f& r, s! U$ j' N y# D) R) W: {
- (setq layname (substr layname 1 31))
* a1 x0 [6 ?0 _8 e" K! O - (if (= tilemode 0)
+ w2 D% W. t6 Y9 G& r- R0 v3 V - (progn" l2 u6 N3 R: F8 k' |+ Q0 f, i
- (if (member (cons 1003 layname) vpldata)0 T1 H8 u& K# y8 m7 O" h
- (setq vpf "C")
3 @6 u' |, d3 ]: i - (setq vpf ".")2 Z. W7 m8 S& H. C/ ?6 t7 y
- )
5 X# V" z W5 c - )
- U: {0 l' s# Y, j& z' O8 w4 @7 g2 J - (setq vpf ".")3 E R9 B# C _. Q
- )3 L& S1 ^8 i7 T8 [- b# R
- (setq ltabstr (strcat layname "\t"5 _1 t8 b8 M, Q" o$ ^
- onoff "\t"
( g3 z, v$ N/ j2 g9 }* l* B - frozth "\t"% F! r# k1 Y0 u% k- D$ v
- lock "\t"
- D* }8 S! n g/ D$ h$ v - vpf "\t". X! l9 a) Z( ~ V( T- |5 x
- vpn "\t"4 B1 }* n% t- l. S, e. A0 Q
- colname "\t"& B' L( w1 v$ s
- linetype) H C: ?' U# P( ?7 V ~
- )
0 y2 O- a$ a5 L2 a - )
c+ L1 v9 \6 |- C/ P& i ~ - (setq longlist (append longlist (list ltabstr))): c! q9 F+ {) K2 ?+ L+ q7 x6 n
- (setq sortlist (cdr sortlist)). ^0 c2 U: ?& s0 I; w4 ^1 ~
- (setq layname (car sortlist))3 }- a8 B1 _0 _9 W
- );while9 o1 |1 w' D5 d1 l4 A
- (setq longlist (append longlist (list "")))
# R2 Q% c5 s( E! W. x - (set_tile "error" "")2 _) a2 @5 J% u" o S# N1 J1 k
- )5 m8 i) B) ^( u! X4 \- E7 U
- ;;3 e5 U6 h7 d6 G$ g. w
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
3 j. b3 S Y' ~& { - ;; linetype names read from the symbol table. Mdashlist is list consisting1 n2 ]; U& ]7 W/ s
- ;; of lists which define the linetype pattern - numbers that indicate dots, M$ @# x7 s9 z) S+ J. G3 S
- ;; dashes, and spaces taken from group code 49. The list corresponds to the
K; g7 L; E0 W: i2 ? - ;; order of names in ltnmlst.3 H; u3 D+ [$ J
- ;;' S2 P' @" I! x
- (defun makeltlists (/ ltlist ltname)1 h2 s' y) a) [0 j$ x3 |
- (setq mdashlist nil)3 P7 g7 r8 d& c _$ F
- (setq ltlist (tblnext "LTYPE" T))
! y. Z6 ]$ |: k& b- F- j! E - (setq ltname (cdr (assoc 2 ltlist)))
" ~7 p9 d. ]+ a) J) c4 l. m7 R - (setq ltnmlst (list ltname))- y& Q0 i1 n" _+ e% e5 o/ M
- (while (setq ltlist (tblnext "LTYPE"))) g. H8 h& V( N j- q
- (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))$ l" P7 }% Z; g0 |% t7 l- ]
- (progn
+ d% P6 M5 C6 v+ L; C - (setq ltname (cdr (assoc 2 ltlist)))
& c6 u& y( N2 ~0 P% J1 ~" t5 c - (setq ltnmlst (append ltnmlst (list ltname)))% y2 e% z# d3 _1 u" G
- );progn4 @9 D& X9 D) c, u0 P
- );if
$ @3 q3 m5 @ ?* e. g) d# X - );while
. Z! C% G0 i, w& t9 ~; s - (setq ltnmlst (acad_strlsort ltnmlst))
+ d8 X% {3 Y) X3 V) L0 r - (setq ltnmlst (append ltnmlst (list "")));add by rk
" p1 f% `! X0 f8 U; E3 A) O - (foreach ltname ltnmlst+ t0 Z. H4 E( L) j- z( C, n
- (setq ltlist (tblsearch "LTYPE" ltname))' C0 W% @6 h3 h; S/ c+ `. A1 W
- (if (= ltname "CONTINUOUS")3 f0 z# k3 s. R" T5 S7 Z! B
- (setq mdashlist (append mdashlist (list "CONT")))% M, Y" k2 _* F/ T# ?- }6 _
- (setq mdashlist6 y* ]: e! o" Q' h! J. n
- (append mdashlist (list (add-mdash ltlist)))
, }* M7 m. E4 f3 `3 s! T: P - )
% z* k. I# `0 m& e) F. F - )
; H2 q! w7 Y5 G! I: L1 E) | - )
: W7 \" P/ q# z8 q8 { - (setq ltnmlst (cons "BYBLOCK" ltnmlst))
+ {* r6 j" n/ W - (setq mdashlist (cons nil mdashlist))7 q4 o3 P' q* ]4 N
- (setq ltnmlst (cons "BYLAYER" ltnmlst))+ ?# o5 e$ G% i5 C% w/ k7 ^
- (setq mdashlist (cons nil mdashlist))6 {4 X; A9 x; y/ N) T( R& b
- )/ j/ T' A" r) x: _
- ;;( ~2 v6 T- _. j ~& D
- ;; Get all the group code 49 values for a linetype and put them in a list
, \+ D9 ^8 B5 r - ;; (pen-up, pen-down info)+ w4 a, s, u2 ?% f: H
- ;;) j1 i, I0 Z! q( l
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize)3 z3 Z# j0 A% |: |6 k8 d/ ^- x
- (setq dashlist nil)
' g$ K4 }: X* ] Y! X - (while (setq assoclist (car ltlist1)): n- g1 ~& a1 n2 I. n' g* v: ^
- (if (= (car assoclist) 49)
5 j" H4 G* f. [1 A/ S# d8 L - (progn
_; {5 x# K- G! V. U; m - (setq dashsize (cdr assoclist))
1 ~1 D) u! p7 q c4 N" \ - (setq dashlist (cons dashsize dashlist))
# z; N8 A( A( A3 q - )
0 i i6 O) m5 D7 R! ^/ u; a - )
3 y" U. ?5 h- q; l4 _7 p - (setq ltlist1 (cdr ltlist1))
9 [8 d% |" {( q4 D* X( k! ? - ); B$ z2 Z: ~' F; D8 }9 q3 |
- (setq dashlist (reverse dashlist))" ]4 o3 T7 U. K7 V6 B4 y
- )
8 K2 y/ r( K- ^* r W4 |8 \9 K, s - ;;
, m+ ]* Z. q- p' ~/ S - ;; Color a tile, draw linetype, and draw a border around it
2 B: }8 U2 t. i! G4 L - ;;
0 V8 v7 z, _* B2 q, {2 L& ^% K - (defun col_tile (tile color patlist / x y)+ y- c( w4 U/ w1 X' w
- (setq x (dimx_tile tile))$ v- E( g* e" `
- (setq y (dimy_tile tile))+ K( g1 m% W# K6 T- @
- (start_image tile)4 n2 g. E o+ {2 P- K$ R9 T; ~
- (fill_image 0 0 x y color)
; H5 ~3 x( B; C- V" ` - (if (= color 7)( M* J2 r' E& p- J
- (progn
0 L+ U& Y4 a0 {& t2 D3 k6 o2 D - (if patlist (drawpattern x (/ y 2) patlist 0))- |1 u f5 i! \* g+ K
- (tile_rect 0 0 x y 0)
( o3 t9 x7 g# y - )
C& E1 a2 Y S- `5 K1 ^ - (progn/ n+ p' C4 n# n/ V
- (if patlist (drawpattern x (/ y 2) patlist 7))$ u* ?! f% F. u! o
- (tile_rect 0 0 x y 7)
" m/ V3 {& `$ r- T4 z - )
- x/ C0 F3 `- f - )# _! `) }+ {- I% x
- (end_image)
- e+ P: w% ?. `5 \5 d2 A" b& [8 D - )
* p3 P% O+ s( j - ;;# ]1 B/ X$ M0 ]2 v
- ;; Draw a border around a tile
" i- [3 _5 ]4 _( ]6 I: @ - ;;; T' W2 M$ |4 N) A. m+ c: f. p b
- (defun tile_rect (x1 y1 x2 y2 color)9 i; |+ r+ u7 e) R. H; i# o
- (setq x2 (- x2 1)), R* P, j# a% `/ t5 F: r: j! o; e9 W
- (setq y2 (- y2 1))
1 b# F/ X/ E% G. s; L) k - (vector_image x1 y1 x2 y1 color)
, R, { I/ T/ @! s - (vector_image x2 y1 x2 y2 color)" E8 \- U, ? y# j$ a5 U9 o
- (vector_image x2 y2 x1 y2 color)/ b. |+ }1 L+ j7 \: Z, Y, @& ~5 e
- (vector_image x1 y2 x1 y1 color)# L& M2 ^9 T2 i; q7 F6 A+ b
- )
7 ~1 Q! b% n! N. g; H - ;;; O5 J" M+ R0 e" G
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image6 R) h0 x c/ P5 i
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a8 A8 p: w% f Q Q p9 z
- ;; list of numbers that define the linetype, and color is the color of the
4 R: b Q/ k v, B" {7 M# G - ;; tile.
& e1 d& i* \+ m% S - ;;
5 w9 i; _8 j' p3 v - (defun drawpattern (boxlength y2 pattern color / x1 x26 T, i* Q3 n; N- ?
- patlist dash)) M" e _# j- F# ~% z
- (setq x1 0 x2 0)
( U& P+ ]: a5 _ - (setq patlist pattern)) D) P# S4 Y4 R! t( D1 l8 }
- (setq fx 30)- I- |7 j! g- t+ A: ^
- (if (= patlist "CONT")
i- a0 d% D0 a" f k2 U5 x( _ - (progn
' ^1 l8 R! D4 |/ p+ m6 V; o/ a* v1 D - (setq dash boxlength): o+ ?1 a8 I# j3 @" Z4 y
- (vi)
6 U% l- @ l z: z3 @$ i - (setq x1 boxlength)
7 T0 l' i, }: U - )8 F1 ~ d4 }4 _. M+ a
- (foreach dash patlist
H) j" ^ r: B6 B" x- j - (if (> (abs dash) 2.5)
! o' g# r) t' R# `! a - (setq fx 2)
! t4 c8 T1 d p3 @/ u" D d: B4 N - )
- @6 K0 u' O( K8 o) Y; n6 q - )! [: N; R8 D% ]4 Y, v
- )
; e2 X" f' a! W% |( c, f; h5 P6 T - (while (< x1 boxlength)
g! s' U) N8 ]6 L9 q3 U - (if (setq dash (car patlist))
+ U. d+ I- M6 r* D. O7 X" s - (progn0 u8 ]$ i* Q/ V3 y1 }) w
- (setq dash (fix (* fx dash)))
! k5 f' f0 U0 j - (cond" v* W9 o8 r% p8 Z( L" X8 J
- ((= dash 0)
. D8 Q& w/ v+ u( [: L, K- g. U9 a* d - (setq dash 1)5 V y7 T/ H: G/ |* I! G1 O
- (vi)+ w2 F8 j3 {8 H* v2 }, P5 A- y
- )
; B& D% h( }# {& O" C/ j& W - ((> dash 0)
: y2 N4 g, H) D; | T - (vi)
( M3 S9 p( q1 c - )
1 B9 x0 }* g5 g$ ~6 R4 @) F# [% z - (T
: F$ R4 ?& R, W/ [: Y - (if (< (abs dash) 2) (setq dash 2))1 K7 Y ^, e+ {& Q
- (setq x2 (+ x2 (abs dash)))6 q. N' S" l* A% [% V0 m
- )" p$ C* r8 u: S7 _* R& K! ]
- )
# Z& s4 h. v0 _: R- V - (setq patlist (cdr patlist))
2 ~( Y4 Q5 A5 Q. ^ - (setq x1 x2)& l) r( ^' e8 k8 u5 Y5 U
- ). I4 }; v+ C/ i- s" }
- (setq patlist pattern)/ O4 [5 G% D1 b0 d' |& t
- )
C$ x9 R9 d6 w1 Q4 e0 e6 x7 E - )
7 X0 ~! W p+ k2 X, O/ J O - )( M" P+ K9 @6 Q: t7 v3 s5 F
- ;;- O' j4 h( X& m& ^& B) i
- ;; Draw a dash or dot in image tile7 T" w2 W+ U/ e0 N- H
- ;;0 G7 ?5 r8 y" t2 U1 A3 p- l
- (defun vi ()3 G+ d1 G8 e! G4 W& E* h6 X% V
- (setq x2 (+ x2 dash))
" S T: S* F4 L3 L - (vector_image x1 y2 x2 y2 color), i! ~8 T* }4 g: m9 V
- )5 Y U( J+ f( v0 K
: G7 N: l/ _+ h6 i- ;; This function takes a selection and returns a list of the color,
+ K2 E9 o0 C5 B" F: X - ;; linetype, layer, linetype scale, and thickness properties that7 c9 T9 `6 F' J/ Q3 u7 A
- ;; are common to every entities in the selection set - (color9 B0 t" U3 a/ ~9 B1 W2 Z/ u0 K
- ;; linetype layer thickness). If all entities do not share the same
$ s( G7 C6 \1 a3 h" r: Q4 p - ;; property value it returns "Varies" in place of the property
% u# ]; z8 \( d. u+ W% `+ j+ w( g - ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0). T1 |$ a& y4 M/ P {; K; {
- ;; The last item in the return list is an integer flag for the. k1 i3 O/ q+ g1 P: }9 d
- ;; homegenity of the selection-set object types.
9 Y" Z n& k& `4 L% l - ;; 1 = All polylines& A6 p) W1 T3 a& v+ \8 ]! N
- ;; 2 = All text or mtext or attdef, or a combination of the three# n' y$ x& }% }/ C6 z8 F
- ;; -1 = Any other mix of objects& p6 i8 _" c J
$ J8 H8 L" c; X# p* e0 O- (defun getprops (selset / sslen elist color ltype layer ltscale thickness
# g9 p% }5 b* E6 H - width elevation height go ctr ( H# `2 v% ~0 {+ I) ~
- eflag
4 |, r! j; O" u% p' t& w - etype temp
, Y' J" A. w: Z9 G - txt_ss ;;;;rk 11:24 AM 1/30/97
! [7 B) y+ h9 m' f* Y - tmp 3 v+ O2 {6 T+ E0 a# L& C, P
- poly_ss
. h% Q! M0 q3 e+ X - style
* L* B( ^6 ^; R; R! | - )
) z& A Z/ t+ \% E. g( r - 3 o0 y8 j. i B9 B& o
' K* }! ^$ X* h! C- R- (setq sslen (sslength selset)
0 G- p9 m ^4 y' T- z1 g: D' H3 L0 O - elist (entget (ssname selset 0))
0 l& M4 [- h* w6 h; T `, d Y( w - etype (strcase (cdr (assoc 0 elist)))
( T6 n0 w; s4 g' G$ r - color (cdr (assoc 62 elist))0 z/ A) k. G8 C4 Q8 K
- ltype (cdr (assoc 6 elist))
) t0 J+ o \* z g; V - layer (cdr (assoc 8 elist))! ]) z5 O( j1 H* x6 J. O, M1 e
- thickness (cdr (assoc 39 elist))
6 T6 m/ y% k" N* L2 e6 S1 \. ? - ltscale (cdr (assoc 48 elist))4 G+ z7 D- ?6 O* k j
- );setq
1 `9 E' f7 e4 U8 Q5 r- ^" ^% R - 8 s% c' w: m: ~9 ^6 R% h$ l: R
- (if (not color) (setq color 256)). W( b* f8 R/ s" f
- (if (not ltype) (setq ltype "BYLAYER"))- V/ r, P5 O; ]: W$ O
- (if (not thickness) (setq thickness 0))
. R" C0 @* x1 R g& q3 K$ W - (if (not ltscale) (setq ltscale 1))
; q* f: ]- Y" k1 g/ e8 P1 C. S2 b
/ M* t& w8 K1 W. i. j# O- (if (not width) (setq width ""))) A7 e; [- H6 B" `4 [% B0 ^
- (if (not elevation) (setq elevation ""))% O, R5 w6 ?1 q0 J
- (if (not height) (setq height ""))! e# q9 K0 l( C) b5 Z! ]
- + V7 Y# b& M0 C; U/ V
- (setq go T
' A1 S( X& v7 n; [3 n& P - chk-col T 9 r6 Y. w4 R# M* @ d; f" \
- chk-lt T . W3 f1 [( r7 e9 s* L' m7 T& {
- chk-lay T
$ |' |! l8 F4 f& p/ f1 I# e! S - chk-lts T : y* C3 Z9 Z! w m: ]2 X
- chk-th T
' m) v! s( D7 q; B) k5 ^0 o: @ - ctr 0
5 f D% L) s" z: j+ ?5 R - );setq- I, C, Z: t/ Z8 D0 K0 x# e) u
- - j0 L/ W) K9 {. e/ S7 ?
- ;; Page through the selection set. When a property
9 Y. f6 ?: i0 \4 I" F - ;; does not match, stop checking for that property.5 ?. u" \/ }# v5 O; K, I; E
- ;; When the selection set is not homogenous, stop checking.
; F( | ?( c" J {6 _2 k+ Q0 V1 r - ;; If all properties vary and the set is not a type 13 W1 y# Q* Q. q" h3 s% E# X s
- ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging.4 j8 o, s0 M( R# ^- t6 e. b8 V
- ; M6 ?& T5 C3 S" z
- ;Lets set the eflag so we know if the selection set includes any # j, R# t9 B5 i
- ;combination of polylines, lwpolylines, text, mtext or attdefs.% Z5 D% V2 p) p: Y# d
- ; z* W. P$ h, N2 O( o8 A1 E
- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/97
# f1 t" b' E( N* W( \ - (setq eflag 0)7 N' M; g- B8 o2 x/ R- [
- (if (setq poly_ss
9 ?2 m* l+ l: V - (ssget "P" (list '(0 . "*POLYLINE")
1 U8 H2 L+ V: {/ v- \ - '(-4 . "<AND")
3 e6 c) N/ z" v" M - '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")
) B: ~( |$ i$ h8 T1 O2 M - '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>"). q" S5 N0 m% y8 }
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")9 C( g& W' @# Z* i- b
- '(-4 . "AND>")
- T1 [4 x$ Q6 f0 @ - );list
k6 b# O: B t4 J0 D, }* M - );ssget get 2d polylines (legacy and lw)9 j/ _$ J3 G6 O8 R5 p# x
- );setq7 P. B5 ~9 c7 J
- (progn9 r( a0 t$ B: x1 U9 T) S; i
- (setq eflag (+ eflag 1))
0 h2 \. e* Q, i: v - % u1 L! z. F$ U6 Q
- (setq tmp (entget (ssname poly_ss 0)));setq
/ ]0 w- x7 V( M - 1 \& U& I* Q/ z* g- B' M2 ?) R
- (if (equal "POLYLINE" (cdr (assoc 0 tmp)))
+ @2 [" z- H' u - (setq elevation (last (cdr (assoc 10 tmp))))
0 ~, r1 [+ v0 f$ n0 |( ?5 I - (setq elevation (cdr (assoc 38 tmp)))
( \/ O H3 A5 }0 n- }- H& j1 ` - );if) l. r8 p `% D
- (if (not elevation)
! B/ c3 g! U* j6 l - (setq elevation 0.0);setq
: A& G* U! t1 \& o. }& D1 u - );if
. F, J4 |( `7 o
/ J6 f, Y% A! {2 b* F! a8 ^8 z2 W0 `, l- (setq tmp (ssget "P"
, B! r& u% x' Y4 z3 s7 b - (list
! b2 Y. E2 e3 j7 X - '(-4 . "<OR")8 B4 W( J3 ^- {& w6 R3 Z6 B/ M. c! j
- '(-4 . "<AND")
j2 v% P8 L* r7 p" @ - '(0 . "LWPOLYLINE")# q) t: Z7 y2 E9 _8 ^
- (cons 38 elevation)4 R1 F/ y, ]5 }% M8 [7 u0 J
- '(-4 . "AND>")
, B8 K1 t( y) Q$ t - '(-4 . "<AND")1 R. Q2 e+ V- \ j5 V1 U# n
- '(0 . "POLYLINE")
. g. F+ F- `6 K* K - '(-4 . "*,*,=")
8 L8 M4 g: }& Z6 @9 a/ \ - (cons 10 (list 1.0 1.0 elevation)): t/ M/ L: ^$ M+ t
- '(-4 . "AND>") + y- W5 T" Q, h+ K0 M( q4 Y& [
- '(-4 . "OR>")8 K- H$ v4 _, l/ \$ r, Q
- );list" d! E) R D4 s6 s' e% o' y. s9 ?
- );ssget
' @4 K# Q! @+ F" S' B - );setq
( R; V& M+ o; [: [ m
& ~! v* O( j% d0 g- (if (and tmp
7 g( L4 ]2 Q& B' w! b - (equal (sslength tmp) (sslength poly_ss))
; l. [3 r7 @- g- ` - );and
: u- S8 ~# b6 K. p% d - (setq elevation (ai_rtos elevation));setq
- J5 b1 q3 x% Z. }+ S3 K2 S - (setq elevation "")1 t- N# e9 M+ S- S, k" H; d
- );if
8 y. G; \5 V, d -
/ i- H; z/ N) I/ _1 V - (setq width (pl_width_getter poly_ss));setq, ~3 B( W: y& \" H# j& O& }
-
1 `' c+ @ T* I. l1 P0 f - );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!
, O, b& N: e4 r) P- _1 r - );if
" |. ~, Z- b- V3 d7 B3 B4 Q1 ] - (command "_.select" selset "")
! y# u; Y) l- }7 l -
2 y' U% v @5 @4 Q, m, B - (if (setq txt_ss 6 i& K8 I1 K. q: a
- (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT") 4 M3 W& f, @7 ^/ B4 \3 i3 C! ~# \) X: H
- (0 . "ATTDEF") (-4 . "OR>"))- \6 K5 D+ i" l7 D2 N
- )
# h3 Z# i7 P7 C8 o0 J* m - );setq
5 r# X0 l% e7 W5 a - (progn; m9 m: M: h4 t: |, D
- (setq eflag (+ eflag 2))
% r" |9 D3 k" h: f0 J7 }9 }) R - (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))
0 m! i, O4 h! w' c% X0 R - tmp (ssget "P" (list (cons 40 height)))
$ w# W( n; I$ R9 `5 r: l4 p - );setq 6 q+ j V4 U/ f4 _) b
- (if (and tmp
$ ]: X+ L/ E7 C1 s - (equal (sslength txt_ss) (sslength tmp)) . T. J, ~- t' w k* N3 { v6 L
- );and
: P" o8 `/ Y$ J9 T$ r6 n - (setq height (ai_rtos height));setq ;@rk need to translate from float
; E' C8 g# k7 e" ]; B7 s& }; g - ;to string and back again easily6 b. P6 H; u3 ~# t! g: [1 N8 X
- (setq height "");setq else the height varies
+ D3 ?3 [- ]3 ^( W - );if+ z3 j7 _1 g, S, G% _- t
- (command "_.select" txt_ss "")
d6 b, m0 u' i - (setq style (cdr (assoc 7 (entget (ssname txt_ss 0))))
* ]0 _+ i' H/ |) ?2 R - tmp (ssget "P" (list (cons 7 style)))
/ j( u+ |! F4 {% o) L, v+ d - );setq ( ~ d' f/ H+ o
- (if (not (and tmp$ C p% \. T2 S
- (equal (sslength txt_ss) (sslength tmp))
, D5 @" t& H; f - );and. ] [3 g! S) I! a* U0 o8 A! c
- );not7 b, N; M0 S8 x* N3 m
- (setq style "");setq then the style varies ' W- q' l' V# N) [
- );if
( [1 X" V/ l/ H. p - );progn the text type objects are in the selection set
. @, g$ S* Q1 f; w$ {6 y& Y - );if
8 w+ l- l/ e( o - (command "_.select" selset "")" W4 i1 y8 q2 I+ i7 X$ G1 {" X9 k
-
" C8 W, i: b e' Q) G. { - (while (and (> sslen ctr)
3 c4 |3 ~$ W3 L; y - go( U1 p i' J7 ~
- );and
7 D# W! t4 ^5 ]# ~ { - (setq elist (entget (setq en (ssname selset ctr))))5 p3 ?. y' }4 i
! E. d& M8 J$ h) o& z2 B7 S- (if chk-col (match-col))
6 W! V( |7 h! y - (if chk-lt (match-lt))
. G& C& p' |& c8 ]" q+ [/ r6 V - (if chk-lay (match-lay))0 ]( ]0 w/ v) v& h
- (if chk-lts (match-lts))
0 W( h! S1 v0 T# S, T4 S0 c1 f - (if chk-th (match-th))
' j$ t0 K% x5 M - " f! o9 Y! B3 ?$ \/ U2 ~
- ;(if chk-etype (match-etype)), u3 t/ Y7 X2 q; g( U, A
- / o6 `( |$ P/ q
- (setq ctr (1+ ctr))
; k/ |: X u7 Z% V* | - (if (and (not chk-col)
3 N3 n. D; m' {8 s) t5 o) R3 h - (not chk-lt)& c2 E+ P$ W' _- x2 H
- (not chk-lay)% @9 ?" D; {4 p
- (not chk-lts)
% t: S9 o7 Z, X2 V5 y0 \ - (not chk-th)) A3 E& Y. p) y6 l
- ;(not chk-etype)& l' a6 g/ m* X& v0 R0 H! T
- );and
4 l, z/ \4 K$ z! E# s7 H# y' \* ` - (setq go nil); @5 g% @2 I& D2 X ^. {# ~/ B
- );if# R6 T4 M( c1 j' K4 R) k! H0 Z
- );while9 A4 G- \% Y# L0 Z" [3 a' N: q
- & D3 n! c E" }9 b+ \
- (list color ltype layer thickness ltscale2 G6 z4 D1 U! J$ m! y4 S
- width elevation height eflag
6 |0 ? e: a' X - style poly_ss txt_ss
1 |: D" I& d9 Y! U) X% [ - ), E# p: N$ z2 n4 }8 F
- );defun getprops7 x; E& t6 u% A m& K& h
- 5 o4 a2 }' N t. o
- ; This is a speedy little routine to tell whether the polylines in
6 J9 X; a0 L& x, ~% X+ D* i - ;the selection set argument are of varying width or a constant value.
4 _% U3 O: W# n' X - ;Looping through the vertex's has to be done for old polylines when
/ W/ K, q, C7 I { J) f7 H - ;the polyline header has width values of 0.0. Basically, in this case, & s! ?9 {+ r5 D% G2 {
- ;information in the polyline entity header is abmiguous. Width values
4 o! x2 y5 e4 ?2 ?( } - ;of 0.0 in the header entity could mean the polyline has a constant 0 r8 f9 P- O; a0 t" K7 b9 K5 T
- ;width of 0.0 or it could mean that the polyline has vertex's of varying # E w Z0 b! }8 d
- ;width.
" f8 K9 z" {/ i; O' Z/ Z+ m - ;3 i9 F3 G- Q9 ^0 A V: z8 h8 V9 B
- ; It's all in wrist. Err a.., I mean it's all in the 'if'
( i$ z& l" I: h3 o - ;;- G0 T- L3 t: l3 ?0 [+ |) v9 Y
- (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)& F6 v7 C0 K: i3 p$ L6 s
- + W$ o3 F, x J% L
- (if ss
5 h( l7 J+ a6 P6 H2 a& i; \% A+ ] - (command "_.select" ss "")
! w9 ?/ e* Y' ~( ~. T - );if
# I& f) c* n- i) ] - (setq width ""( [ B7 W8 J% X
- flag nil
% m$ M5 p! I, ~. P* s - flag2 nil! j" \0 M" a! P8 b7 x( N& {# S% D
- );setq
& g. n: q3 t& m - (if (not $ H$ _' C1 c. U! L
- (and ss
& r! F! \" E' A# `- T" ~ - (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq6 _3 t6 n% b& `4 g, |' y1 J0 c
- (setq na (ssname ss2 0)/ _+ j) b0 X4 c3 z6 |. E, `4 ^
- width (cdr (assoc 43 (entget na))), r! F/ m: @# |6 n; ?
- );setq# ]5 l' b/ U' b& |. X
- (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")
: z/ l) P5 X9 P" \- ^/ @6 K4 r# W - (cons 43 width)
8 u! }0 X, ?5 T4 z - );list4 k: |- `% ?# Q, s& z/ i! Z
- );ssget5 G4 \# \8 A: s2 A7 P2 r+ l0 L
- );setq
# f! H9 ]( b. `: f; ?3 t - (setq flag T) # ?% o# g! T- e& w9 k* g% N& P
- (equal (sslength ss2) (sslength ss3))
& R5 P! t* P4 ?! O8 x, H3 n- s - );and# Q; \9 t9 F: r) e, W3 L+ j
- );not
% B' D; t% o2 U0 Q - (progn. ~. U( Y# M. n' u2 N& o
- (if flag4 c2 Y" T2 J* u- y0 }! G2 E9 i
- (setq width nil)
7 h7 [9 Q4 U; {1 Y s$ C/ @3 J) t% D - );if
" L0 _( |% k+ J/ z) \. G - );progn- e; }4 s: K1 B( o4 S2 \
- );if . W/ B4 \! i, V1 h
-
/ T" d3 Q+ V" K! q/ s - (if (not 7 O) a* X" {- `5 L* E, O7 `
- (and
; L* B7 `, v" M( N: b6 D# i4 s - ss8 Y' Z! {7 j5 x# r# ?( e
- (progn (command "_.select" ss "")
; E! J% R% Z- N7 s* ^. q! G% e - (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq* W9 r a0 {7 |* c) R% s8 z# B S$ n* }
- )
: g& ~2 k4 v* o( i( d8 b" L! ` - (setq na (ssname ss2 0)
; {5 W3 V; g, ?/ o' B - e1 (entget na)
/ q1 L+ W& Z r1 `$ f/ Q - width_a (cdr (assoc 40 e1))/ C. l7 l2 J/ a. F
- width_b (cdr (assoc 41 e1))
' C* T" M8 n4 G* E - );setq/ D2 [+ U+ Z% A5 c
- (equal width_a width_b)
k6 x$ x. m1 Z - (setq ss3 (ssget "p" (list '(0 . "POLYLINE")9 y( t7 C/ e9 b4 C o9 c/ }
- (cons 40 width_a)3 B, K8 A: K3 Y4 m1 R' X7 d! X
- (cons 41 width_b)' P% N1 h" ^5 ^ U& y. H
- );list
- L- g$ x. ?! t4 u h2 I$ [ - );ssget! @ B! O" o6 C* k ], U0 i
- );setq
d" T' f4 R& h. m - (setq flag2 T)6 f) R* q' P/ \( U8 b2 b3 z/ F
- (equal (sslength ss2) (sslength ss3))7 F- y/ V; v3 M( e' G" \
- );and
( l- o( I3 F4 }1 p; j- P( p' V - );not
+ E. r+ }$ Z5 ~ - (progn
& V7 i, K: a0 S9 g0 @ - (if flag2
, ]. s1 T2 f# S6 [ - (setq width nil);setq5 o. d* P6 p$ a/ L8 h7 |% \
- );if
1 k: W$ {5 E% v8 ~ - );progn then
! N% K' p5 [5 u6 ]1 ~ - (progn
! g& Z6 z# a5 b! o% } - (if (or (equal width "")% `( [2 T3 ^0 v! f9 s1 p
- (not flag), N6 |7 O/ P" V4 A& ^+ z* y
- );or. k9 }4 O( N; \( D; E3 {* j
- (setq width width_a)6 ]2 S6 f* C+ U# ^. d/ ~; w
- (progn" r* _5 G/ ` u7 _
- (if (not (equal width width_a)); }5 R; N( C/ e
- (setq width "")9 p9 \; k [3 _" B
- );if
% K2 k4 k- x, x& e8 f' f$ G' H - );progn
+ o( X9 E! F9 c& F7 Y3 y - );if
4 v4 e: M0 l& S; x - );progn! I* W S9 D$ j6 p
- );if
* Y. {; f5 k* W2 L" u$ e$ e; j - w) p& A$ Q$ f. o. N0 i; Q, z" X* k
; u2 M8 Q; |4 M7 R- ;now for the special handling for old polylines
7 p- N1 c0 i! j$ _1 B/ y - (if (and width
4 R g1 ~* E6 w, o3 Q1 ~" j - (equal width 0.0)( D/ u& g4 J; h- K' H
- flag23 e. ^* B4 S4 }8 G L
- );and 8 H2 j% f0 Y8 r: {1 R
- (progn
5 |8 E8 O" \ {& ?+ w -
& |! E/ V# P# U) N$ J8 f1 w' m - (setq n 0);setq( ]& E5 V |1 H# I. C; `
- (while (and (equal width 0.0)# L; m% I& j; g, n
- (< n (sslength ss3))! ]. A* K1 b( t: [! X6 R J
- );and
1 x m7 s' X3 O* E% ~: L4 K- H$ x9 r2 `! q - (setq flag nil
. p+ l. I" a4 u - na (ssname ss3 n)' r, Q% z; g2 T7 N
- na (entnext na)7 Z [4 j% O+ V" u
- e1 (entget na)
) X7 r6 T. P: f - );setq F9 p) c8 G5 ^6 @) Q& t7 n. L" S
- (while (not flag)
: R/ k. S& r% U* |4 l - (if (or (equal (cdr (assoc 0 e1)) "SEQEND")
8 t/ u6 H) |/ }. I4 F$ x' i - (not (equal (cdr (assoc 40 e1)) 0.0))3 ^2 n0 `2 r4 d) ]' p, J t( D
- (not (equal (cdr (assoc 41 e1)) 0.0))6 ^( Y1 N" `/ j6 I+ z. e4 b' A
- );or* z% l9 W3 Z1 H' m9 Y3 u7 _
- (progn' R6 b8 G+ |# ]% U" _, Y7 v. H7 {, r
- (setq flag T);
! \! P; N) K( d - (if (not (equal (cdr (assoc 0 e1)) "SEQEND")). Y6 V Y8 ^( z( i; |$ @, [; R- {
- (setq width nil) # P3 q! y7 p9 q9 C3 r0 [
- );if
+ D: W: L+ P2 h5 E - );progn then jump out of the loop
2 T9 u# _, V" Z9 \7 E - (setq na (entnext na)+ v. J. v5 L4 k
- e1 (entget na)
W9 T6 e! d% }) l9 Y* y6 J- ]7 \/ y - );setq / w2 |# l- E% k/ f" ?7 X4 a( e5 K
- );if : j& a2 d5 X" P* Y# i$ ~
- );while8 C7 |8 {* B0 E, a
- (setq n (+ n 1));setq ' x1 V7 X2 N% [( o2 y7 d) j
- );while , l3 u" f# i4 }/ {- H. [2 ?/ A
-
+ z4 \' m3 g, i; X$ F - );progn then it's a legacy ( z) e* v% t" `
- );if ;legacy polylines that may have varying widths ! Q( c* S2 e0 k' X! i' b: w
- . ?1 C9 S! s# N: l. ?/ p
- (if (not width)2 ]% ]! i% B, B' i0 {& S5 Q' y
- (setq width "");setq5 x% q% C$ _6 x! z d) O9 N. _$ H
- );if
; ]( o& T8 o1 `& o+ [ - (if (not (equal 'STR (type width)))
8 g8 K; q- H7 ]- k* i1 d1 E - (setq width (ai_rtos width));setq
2 w5 ^3 q; P1 n# g1 r - );if
d2 B5 ^* N" [4 k/ {# Z' a - ( Z- N4 s8 V* b/ K }
- width " M4 X, x" h4 y# c' U8 G" R' a! G
- );defun pl_width_getter; E8 m7 d4 ~6 G1 {! b% E) X- s
- & e0 u1 D, P. [, L0 a5 m
-
& \% s4 \& I, K) l8 d% f* p; A - (defun match-col (/ ncolor)
7 e* m1 s9 E& ~2 P - (setq ncolor (cdr (assoc 62 elist)))
7 }" J3 }) o( Q9 Z - (if (not ncolor) (setq ncolor 256))
! A3 @" f% L$ h" Z! g - (if (/= color ncolor); y% V- y* q! W4 a# q( b
- (progn
6 n- m; k; a: ~" u, \. G, Z - (setq chk-col nil)
( e9 [: A' Y) g3 b9 Z3 j& T - (setq color nil). I7 Q8 C) K& M4 d2 \7 L" u
- )
. s9 W, ]$ s: _7 A c: Q - )! G: V- S7 b# {/ t2 `, T. I9 ^
- )+ k) B1 F' \) z) C0 V# N1 \
- A j2 n- [6 ]& Z( P1 ^- (defun match-lt (/ nltype)
* M j& o: P+ Z% O j9 ~! U- x% ` - (setq nltype (cdr (assoc 6 elist)))
% _' c$ U# @* R5 b - (if (not nltype) (setq nltype "BYLAYER"))* R+ }# L% E0 E1 ~4 M4 b
- (if (/= ltype nltype)
; O5 w5 m$ E: G4 n, ~' K" v - (progn; b Y6 f* I+ |) Q6 O& s
- (setq chk-lt nil)
: O4 K5 h; Z( A" U/ X! x. f! F& Y) _ - (setq ltype ;|MSG0|;"Varies")
' w/ N. ]7 b4 B# j$ z - )
1 J8 [3 l0 w% a; @& I# w7 F - )
0 z2 A8 g2 w# u) Z# w' ] - )
" j5 H$ @8 y' [% F# r- x - 4 r: J9 c0 d; M: u8 i: |
- (defun match-lay (/ nlayer)4 b K2 A9 \+ u1 v, n b! _+ _
- (setq nlayer (cdr (assoc 8 elist))). W. Z9 E& ]. @9 g k3 ^; k
- (if (/= layer nlayer)- l; q* \& {' j) w7 V' \; p; A
- (progn
" ?0 p6 [7 C3 j) U, c) v - (setq chk-lay nil)# R5 j/ i: @) k/ D" l$ O) G6 n( Z1 F
- (setq layer ;|MSG0|;"Varies")
, n& C; [# Q* o6 _; n! P) d - )- |5 ~( }) u3 c
- )
3 h, `9 z. H) B2 V X - )
m( B- n3 h7 e7 F# `: \
% `, l9 Z$ [' [- E- (defun match-th (/ nthickness)
6 A5 \! \% N; i - (setq nthickness (cdr (assoc 39 elist)))2 X$ h: W) f: S7 Q8 C; c
- (if (not nthickness) (setq nthickness 0))
0 N( P. r' t, B! Q: S - (if (/= thickness nthickness)
) S( M6 Y b! i4 }( R) ~ - (progn* @ M7 b) V, R+ ~! [
- (setq chk-th nil); o* k/ E& _- E
- (setq thickness ;|MSG0|;"Varies")# i* s# m, a! m' R' g3 T1 Z2 x- A
- )
& f9 |: e2 B& ^: V) w - )5 K: i) j$ ^3 Q6 z3 [
- )2 I6 a0 C; D5 w: A# ^+ Z |
- . H- B+ u: i- f; W
- (defun match-lts (/ nltscale). b; R" j4 i7 |' ~
- (setq nltscale (cdr (assoc 48 elist)))( h: I D7 U. T( {
- (if (not nltscale) (setq nltscale 1))
% W9 x( l2 H }3 g$ Q( r* j1 ?: T/ _( h - (if (/= ltscale nltscale)
" ]/ s: J; S- R - (progn0 J0 s4 U% z8 S* q# i5 q$ f+ w
- (setq chk-lts nil) M& u. l5 c" Q/ u6 M
- (setq ltscale ;|MSG0|;"Varies")
( F% A9 I% Q) [% A& ?/ h& j - )7 m4 \5 O! ` B4 }. N) D# E
- )
/ X2 O4 O) Q) k4 j' ~) T - )
1 M# d( G1 Y7 O5 p/ k# o% \
/ }! f; A1 v( f& _) O: x" w# H* [- ;;
) ]* }* U H" V& P# V: @ - ;; If an item is a member of the list, then return its index number, else* m9 B' t+ |, ?$ [) C" r8 T# i5 M
- ;; return nil.
7 k4 B$ a9 U# q" z- f) ~) M - ;;7 u4 s; a3 [/ i4 e1 F7 R+ T' w
- (defun getindex (item itemlist / m n)
& o7 R+ N- E6 W! M5 O' d; q - (setq n (length itemlist))' g! c9 c: P+ g. p2 c+ j
- (if (> (setq m (length (member item itemlist))) 0)
- e- t4 {# L' o" _5 X - (- n m) [7 Z/ K5 K* c' |0 i8 I) \
- nil R M( E7 d. R+ n
- )
2 h! c8 M# s/ s; J! q; T, y! L - )% ?/ ?+ y$ W8 ~( L: j& _
- ;;
?4 n0 c+ T' v& o8 z% O - ;; This function is called if the linetype is set "BYLAYER". It finds the# Z, k; o, f9 m& A O' H
- ;; ltype of the layer so it can be displayed beside the linetype button.6 D- |9 r: W8 Y
- ;;
/ J5 {% N+ y# x0 L( \ - (defun bylayer_lt (/ layname layinfo ltype); f5 L5 t9 w+ @) \' }6 V/ {, v2 w
- (if lay-idx- Y# W7 ?4 G. ?! _
- (progn. }6 ?1 Q" T9 k/ T N/ Z. c2 b
- (setq layname (nth lay-idx laynmlst))
7 J F5 L* m1 }; x - (setq layinfo (tblsearch "layer" layname))9 c9 I0 z2 F9 v& [
- (setq ltype (cdr (assoc 6 layinfo)))
) J; d; c/ _$ J9 C/ @ - (strcat "BYLAYER" " (" ltype ")")
3 _ J; X& A) l! g h& s( c - )
$ B7 ]6 q' ?1 s - "BYLAYER"
- |# ~5 u3 z8 U0 M: N6 D - )
4 N6 M7 m. p" ] - )
( k, A7 U# |7 ?9 j& [ a9 q - ;;
! {" u4 ]/ q. C! G9 |9 u2 Q - ;; This function is called if the color is set "BYLAYER". It finds the- B; S& t- I3 \8 u: B
- ;; color of the layer so it can be displayed beside the color button.: O; Z; l+ ^* m4 H
- ;;- Q* d" W6 }/ M" d
- (defun bylayer_col (/ layname layinfo color)
6 I5 J; z5 g* p; o- D- _8 g; D5 _ - (if lay-idx
* n/ O' V+ I3 H0 Y; y9 K% d - (progn
# f' I2 J& A; I$ w* G/ f - (setq layname (nth lay-idx laynmlst))
. [3 l7 `; ^8 H% p* e2 G! X& T - (setq layinfo (tblsearch "layer" layname))9 `5 M$ @3 l' O1 O# k' T8 `4 z1 J: ~
- (setq color (abs (cdr (assoc 62 layinfo))))$ Q8 J: B" @) K) f
- (setq cn color)
6 [2 v; s) M! L$ R - (strcat "BYLAYER" " (" (colorname color) ")")
; l" Z" l1 \$ n - )
* `8 Y( L- X, |# r. [ - (progn
# t: O# ]. k& [ F3 p - (setq layname elayer)
5 @$ ?) N! J! N0 A0 x& ~$ ~ - (if (and (/= elayer "")5 N' b4 l% ^; Q. v( V+ C* ?
- (/= elayer "Varies")
& I& o8 M: X/ L) e% ?" c7 X5 F- C - );and' J9 e T+ E% T6 R, h9 i' P+ a
- (progn, H1 ^" b9 T! _2 M9 f8 A
- (setq layinfo (tblsearch "layer" elayer))
4 ^: {) i" v$ p$ l D - (setq color (abs (cdr (assoc 62 layinfo))))0 L; h2 r- J7 ?: ?* X2 M
- (setq cn color)( ] w5 d1 @# G
- (strcat "BYLAYER" " (" (colorname color) ")")7 C! f. H1 \7 ]" ] W- x
- )
" g. r# n1 s/ z! M8 }2 A* G - (progn( f1 ?9 ]3 M( |, e
- (setq cn 0)/ _" N0 P0 ^7 g( b
- "BYLAYER"9 r3 `; Y Y- Q# t2 j ~, \4 k
- )
9 S9 M( A' x2 c, _: f2 f - );if3 d, z0 D% p- {$ F X
- );progn: H& j! s9 |% L' X4 H4 z: h
- );if
- n' ^2 I% n/ I: q6 q( @9 r' g - )
4 ~5 ^) {$ N: T4 ?( \: p+ s& f - ;;8 |: b* ~8 W: P2 Y1 @
- ;; If there is no error message, then close the dialogue% J, s d: B( Y/ Q8 d% E! \
- ;;
4 C- w- T# }" a$ k- U( J" M - ;; If there is an error message, then set focus to the tile
$ e {) T. ~+ e& f/ a - ;; that's associated with the error message.
8 z; D% m, i5 Y {( R - ;;
5 }2 W* ^$ Y5 P+ Z: { - (defun test-ok ( / errtile). I; `3 h* s/ Z- S! |1 b
- (setq errtile (get_tile "error"))
, j; ] x7 k; O& f - (cond
3 i- @2 k+ c9 L8 F& r9 \' F( a0 G( f6 c, Y - ( (= errtile "")
9 Q3 U/ c) y j3 q3 `: a - (done_dialog 1))
+ d$ D$ o) m7 ]% A6 _ - ( (= errtile "Invalid thickness."): N8 y7 ^ [) {, O, _9 s+ I
- (mode_tile "eb_thickness" 2))
0 ?- S% z% s' h - )
* Z" {) W k7 L - ) v8 h6 N1 m3 u. }" R
- ;; z9 e/ H" J! M. v9 S: s- E
- ;; OK in main dialogue.4 j# I0 Y) W* V$ f. F7 S
- ;;
$ M; l) X, N% n - (defun test-main-ok ( / flag)
2 [* w( C3 a' s, k - (setq flag T) 1 T, E7 j/ O) y: X/ F4 u, d, K
- (if (not (or (distof (get_tile "eb_thickness"))
4 E# b: E2 v5 }6 [9 X; Z - (= "" (get_tile "eb_thickness"))" Q; o5 v0 i, P
- );or
7 I8 y7 {8 T6 E( j, u( D0 D - );not4 k0 J( G0 O, ?
- (progn
S) O) H0 x1 s9 ] - (set_tile "error" "Invalid thickness.")
: W. w* z9 p; w0 C+ D: \ - (mode_tile "eb_thickness" 2)
* L: P! O B d4 ?6 m - (setq flag nil);setq5 S4 Z* A5 I+ l- f6 W3 y
- );progn
% d( k1 g% q7 N) i - );if; `% Q. ~& z1 d/ l* j
- (if (and flag4 U U: B( _* `+ b% e
- (not (or (< 0 (distof (get_tile "eb_ltscale")))
7 G( j8 @* C. P9 }! A& [- \! z - (= "" (get_tile "eb_ltscale"))2 Y3 d! E5 { }) w) }! o
- );or
6 b% p; C4 y& G5 M/ w" B/ C0 o. x) v - );not
0 b( c) a& y8 g4 } - );and - B) o# ]' ]: p2 u: ?6 o/ A
- (progn1 _3 A6 d }9 r2 [
- (set_tile "error" "Invalid ltscale.")5 E9 s5 {, x: @" V3 A
- (mode_tile "eb_ltscale" 2)
& z* ~) ?/ K8 R1 o: v8 s8 D - (setq flag nil);
0 e1 K3 Y- A b+ c! r - );progn then
0 T) t, m1 v' q4 O/ w - );if3 ]% V4 r. f7 c4 [ k
- (if (and flag3 l( e, Z# ~3 y, T/ n3 u; Q
- ; Don't test the tile's value unless it's enabled.
( _1 C+ Z4 F) ~! E4 S2 Q" ], ? - ; We're not set up for the display-only value
4 X+ C! j! k% w - ; of "" here in the error handler.' r# [! h( `+ c& C0 d
- (= 2 (logand 2 eflag))6 N; B P7 E S3 e7 k+ D4 m5 ]
- (not (or (< 0 (distof (get_tile "text_hgt")))
9 j) P, [0 s( b - (= "" (get_tile "text_hgt"))
. V3 h/ w/ O, w% A - );or
" s2 @$ K" t u6 Y - );not
6 Z: J7 {" {1 D* @ - );and. h! K! w ~# j; Y6 ^8 U0 k) Q
- (progn
( K+ B1 Z8 U$ a& T4 ? - (set_tile "error" "Invalid height.")$ _/ f* I4 W( G
- (mode_tile "text_hgt" 2)- g ~: G' O: J
- (setq flag nil);7 j" Q5 C( t \% A
- );progn then
5 k+ m1 C1 A1 U' j7 x2 X* o+ u - );if
& ?# M+ v5 k9 c - (if (and flag
) C9 p K. ]+ D - (= 1 (logand 1 eflag))
# p0 t L; G1 b+ D/ K, x' H- Z2 g - (not (or (<= 0 (distof (get_tile "poly_wid")))
* Q* i5 P* g& p! o5 Y3 X - (= "" (get_tile "poly_wid"))
; `3 o' `/ Z$ g* | - );or5 `# s/ T' y' ^/ k% `8 Q; r
- );not
* T4 x4 r" z8 M+ C! G9 c - );and$ @* j: r7 v- y1 J2 V
- (progn
) g: `- a- V& @ - (set_tile "error" "Invalid width.")
. s5 U* L$ ~% k3 l9 P% ~ - (mode_tile "poly_wid" 2). u. `$ ]2 H3 e" g8 C4 C
- (setq flag nil)
; ]# W5 r Y( m" Z+ n - );progn then
$ t- c9 w4 q% Y" E - );if
2 a# _* Z. ~; v9 x* m1 K - (if (and flag
# Q6 J* v& V/ ~0 X - (= 1 (logand 1 eflag))
( A" p& t. |6 E3 L - (not (or (distof (get_tile "poly_elev"))
5 _/ N; U5 h/ ? - (= "" (get_tile "poly_elev"))
8 f0 E, }# Z5 }! d/ W. j/ O* ] - );or; M- c% R7 z9 @' J ?+ g
- );not
|2 _0 V0 }% N; G7 ~6 o# } - );and
: K/ Z0 x+ F1 p4 q$ _. ^: I# A - (progn
* ~% ]! z$ T/ Z0 `' c: @! u N - (set_tile "error" "Invalid elevation.")
+ r& e) N. q8 e4 b; s3 R6 ^0 c. S: `+ g - (mode_tile "poly_elev" 2)
0 q" n# I$ o, D2 R, j - (setq flag nil)8 i5 W: o" A8 x5 Z, }, [
- );progn then3 I5 f2 p: l# S4 ], L8 G: [' u, U& S
- );if
" f6 r, o4 l* ~: }: p+ S - (if flag
T6 c* K- |" S. a6 M - (done_dialog 1)
* Z0 N) K+ K1 u: s+ \ - );if
0 O, q9 X0 A8 L9 g1 `! z - );defun test-main-ok2 |6 Y2 C8 U% e$ S
- 9 v) f: p& L& m6 g G P
- ;;- W7 J8 ?. K$ X' h$ }! U
- ;; A color function used by getlayer.- c" n E8 ?+ R* N0 s8 z' ]5 x
- ;;
+ ~. t) f$ r0 Y - (defun colorname (colnum). |% b9 [* V: m8 L. I2 d5 ~
- (setq cn (abs colnum))) X# C. |0 M1 m7 j1 ?; q z' s5 H
- (cond ((= cn 1) "red"). I2 U3 K6 W/ Q
- ((= cn 2) "yellow")( k ]3 f+ r& r
- ((= cn 3) "green")9 a7 V! J, K& v. T' J
- ((= cn 4) "cyan")5 ?' z0 G$ y" g( ^% f
- ((= cn 5) "blue")0 v" m e; k: ~
- ((= cn 6) "magenta")
6 s# o& l5 _# p- N: n - ((= cn 7) "white")
8 s- c) ~2 C! }' ~& f - (T (itoa cn))
" u& d( d( P6 @0 r - ) q& e; {, Z7 H/ K& Y
- );defun
: `: @% R& s, _/ \' U( z
: t4 ?, f$ U4 F5 l! |- Y- ;;; Construct layer and ltype lists and initialize all
+ V2 }4 A9 ?. F# B" S - ;;; program variables:; ?: a- j1 H P: ]' w, z
- 8 d5 s( P2 V' y( V9 E! z: R; t
- ; (makelaylists) ; layer list - laynmlst
1 d( {5 R4 r+ r! l0 g2 y - 1 K- c4 [4 f& S3 Q' k
+ O6 {/ Y# v7 O- (makeltlists) ; linetype lists - ltnmlst, mdashlist4 a) j+ j0 ^5 j3 I& {5 i9 F3 r
% \* p& V; Q/ w0 W1 q- ;; Find the property values of the selection set.
* u$ R) N1 I9 B2 ?2 l - ;; (getprops ss) returns a list of properties from" r& A+ g; v2 @) {' f
- ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).' V7 T' B& w# p, t4 I3 C
- # k9 M; B# v8 ~8 x9 h) L
- (setq proplist (getprops ss));@rk interesting things happen here
+ }, d+ {% h+ w w+ q8 y0 v - ; G! Q: h& |( Z. X4 j
- (setq
4 L& z! l. ~, f6 A - ecolor (car proplist)% u3 T* M F/ j/ s! J
- eltype (nth 1 proplist)
* R, b! E( J4 e% h) G# @9 _# r - elayer (nth 2 proplist)% W6 G5 ?- E, N. g0 g3 R
- ethickness (nth 3 proplist)
9 l/ D# Y, e3 R/ |; | - eltscale (nth 4 proplist)
$ K# T6 V- B+ I5 ~- P- p+ J - ewidth (nth 5 proplist)
. L* z* d0 x! s0 N( x - eelevation (nth 6 proplist)
( [$ w1 }1 { o' J5 g" V - eheight (nth 7 proplist)" }% V; {, t9 y5 T- T
- ;etype (nth 8 proplist);commented out and replaced with the line below. RK.
4 Q# t9 P' d3 O! m) F Q! I - eflag (nth 8 proplist)
+ s; s6 t' ]! H* T6 w( ] - estyle (nth 9 proplist)
& [3 i6 ?8 E- B6 e h0 d- W - poly_ss (nth 10 proplist)
% s5 X4 v3 h C# F% i0 \# a+ y/ ] - txt_ss (nth 11 proplist)
4 c: ^' H- u) a - );setq! t# V, [8 D. Z: m5 M1 Q' D
- 3 X3 Q4 y9 G: f! V0 n& ^
- ;; Find index of linetype, and layer lists
; o7 e, u- o6 C9 S \7 M - (cond
- v; |0 P' X' u3 y - ((= eltype "Varies") (setq lt-idx nil))
2 O7 I( g) E* d/ ` H* b - ((= eltype "BYLAYER")
' T6 s/ n: y- u6 e# h/ i - (setq lt-idx (getindex "BYLAYER" ltnmlst)))# n4 K3 G" t2 W4 [7 [/ P
- ((= eltype "BYBLOCK")3 k" h" R- [# E$ F
- (setq lt-idx (getindex "BYBLOCK" ltnmlst)))2 H* J0 _( }$ W$ r' e
- (T (setq lt-idx (getindex eltype ltnmlst)))
, n: @6 H% d% J. C; ^/ N& ~ - )9 R- y2 }1 r$ X) n: W/ U
- (if (= elayer "Varies")
% `. a: Z% H" r+ z: M$ K K - (setq lay-idx nil)! ?( t7 s$ Z! D7 W9 {9 d
- (setq lay-idx (getindex elayer laynmlst))
% r. W& @& Q/ L% v4 [5 l - );if
2 {# [% d, A9 ^4 X: l5 B - (if (= ethickness "")* p$ C0 ?+ S" L. M7 t1 R3 E
- (setq ethickness nil)2 F1 [5 w5 b5 j8 z7 s+ n7 |- `7 c
- );if8 N7 M0 y$ F3 o2 C' h
- (if (= eltscale "")
8 g/ j' H) D7 T6 N& Y; b - (setq eltscale nil)
- K8 s4 L5 _7 s2 h4 { - );if; o B5 N8 T0 u
- 9 D8 G3 T- ^: a! r; w9 ] r& p
- );defun ddchprop2_init ; end (ddchprop2_init)5 Y$ l- i/ B# z1 P w
7 t0 ^) A ?, h( [8 Y7 z- ;;; (ddchprop2_select)( G2 S5 |8 Y: i7 Y5 z* R" r2 P; i. |
- ;;;" J8 J- B& {3 m9 O
- ;;; Aquires selection set for DDCHPROP2, in one of three ways:
; B% b4 W$ m3 O - ;;;
8 T$ C( R. ~: j# ]& J - ;;; 1 - Autoselected.6 y" W( [5 J, J$ K4 L& \
- ;;; 2 - Prompted for.. {$ w2 S* W; m: a; ]5 @+ _
- ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )
e g9 F* c5 d9 r2 R1 ? - ;;;
. V3 [* \7 L! w9 X; q. J - ;;; The (ddchprop2_select) function also sets the value of the
. r7 [0 j4 n: x0 g. L - ;;; global symbol AI_SELTYPE to one of the above three values to
b: W3 ]- X' l5 i- _ - ;;; indicate the method thru which the entity was aquired.5 w- r* K1 J. r+ G: E% |
/ P, J: f5 f: l% ?- L6 {1 Q4 o7 p3 ?4 o
4 i* B: Y$ p: `- j( F- (defun ddchprop2_select ( / )
' C1 l' `; ^7 d# h
+ [& u `4 u" v! O- 1 Q9 B% |5 q$ h7 h% b5 ?3 @4 O3 M: v5 `
- ;returns only entities in ss that are in the current space.
9 q8 ]0 ?4 H" K! Q, X - (defun ss_in_current_space ( ss / a cur_space ss2)
5 a; t' t: ?2 ?% l8 L1 S9 { - 4 w, ~* a l5 ~ ?& M, l- a
- (if ss
3 W. ], X* r0 L# k9 V - (progn+ d1 i% c3 G4 U4 y3 S
- (if (and (equal (getvar "tilemode") 0)
4 v: c1 F& |( ^# |+ R - (equal (getvar "cvport") 1)
7 v5 x& z0 u* q5 z- {& z - );and # G# T( M' h: _, g7 Z
- (setq cur_space 1);then paper space is where we are.# m. K7 W' q8 }5 S6 [: ^
- (setq cur_space 0);else model space.# x( v8 M. @, b+ i' F: x6 r
- );if: p! a3 n$ u5 h$ b: b
- (command "_.select" ss "")
& Q, o) a! v' m: M# A. S- l1 J - (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq, f- C0 g$ l" d
- (cond ;;;;;tell the user what's going on.1 c/ _- ~7 |* B" f
- ((not ss2) (princ "\nNo objects found in current space.")): `/ U$ M3 i$ E
- ((not (equal (sslength ss) (sslength ss2)))
7 d$ l | }# z5 q; m, M! c( e - (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2)))
1 w. q# _, _$ ~ - " object(s) were not in current space."- J5 y% K- Q) ~5 {; `
- )
& L5 Q" b. J o* L5 d+ O - ), t: i: d- v5 A9 A
- )
- R4 M2 _% y# D( W; k - );cond
7 I8 u9 [: x/ x2 A - );progn then
* ]6 w E- f! U% {8 N7 [+ r - );if
5 F }0 c9 {( z9 Z% y" P ^: P6 B - ss2
: N% B% J, P) Q, R1 s1 a) m$ k1 g - );defun ss_in_current_space9 o9 [/ H8 l& `
) Z: j; e# J, x t6 B" T
7 [6 }* i8 p2 W- P" x' G" C- ;;;begin the work of ddchprop2_select& E0 \5 |1 ]) A" ?( Y) Q4 ]
-
6 L: O5 Y+ R: n& I - ;; temporarily restore original highlight setting.
6 n: y( t, }! c# c( E3 `! ]1 v - (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))
5 R) c0 Q- B# @ - (cond# ?9 O2 e5 I& X0 f
- ((and ss 7 j1 W% Q" O) H* k3 @. z8 N
- (eq (type ss) 'pickset). j$ z7 |! E1 [! Y
- ) ; selection set passed to( e0 ^) y6 Y# C7 p
- (cond ; (ddchprop2) as argument- m9 z( K. s/ j, _1 w! U0 \
- ((not (zerop (sslength ss))) ; If not empty, then
4 R( ^7 s% q$ J; L% D - (setq ai_seltype 3) ; then return pickset.
( y9 F& Z8 H4 C& u9 l - (ai_return ss)
2 f& O% x4 `8 X0 U" e' k) Y+ s - )4 r1 E; Z+ G- D" R
- );cond close
O' i/ X( `3 y& q1 Y0 v - );cond #1
% `2 L7 E2 k8 }0 o - ((setq ss (ai_aselect))) ; Use current selection8 F- n- v( P7 A2 S& y: v1 N
- ; set or prompt for objects6 A ?% l3 P2 |. U
- (T (princ "\nNothing selected.")
, y5 r: x$ }! F: F - (ai_return nil)
/ R+ l) |& v6 E7 s# L% u - )
8 n* b; h) h% b3 j% Z - );cond close
3 \& m! W1 J: x - (b_restore_sysvars)
& @. ?; V/ {1 F - 7 ]- E# b+ a- d4 b
- ;(if ss
# [0 H9 M) h" p0 u4 j4 b8 F+ a4 i - ; (setq ss (ss_remove_locked ss)) ' c0 v' c3 d, D o; d# q* S* g& ]
- ;);if
( f {) L) C8 u) q# y% Y# L - (if ss
6 t" T* {" G7 B3 }& }0 k - (setq ss (ss_in_current_space ss)) 2 A% |1 @- o( M
- );if$ J7 V w9 g O8 `% u
- 2 R8 N7 U1 N6 d- j% a, K; p% c* C
- ss0 i4 p2 z( v' V7 ~
- );defun ddchprop2_select. W- ?6 z3 I2 p$ J
& |9 r h }! g+ ~- + P& m* `( G: B/ ~$ E
- ;;; Define command function.6 u) x1 b) ^. R+ @3 T# R6 y
- (defun C:CCH ()0 s) f9 x! J+ |
- (ddchprop2 nil)) J# C/ \9 h$ Z) b
- (princ)
6 {+ ] m* s% k9 n( k+ x - );defun
( Z1 }- @1 D) D/ I
* N) Y) B( B; h; r2 T, @- & G( k4 }1 F2 I
- ;;; Main program function - callable as a subroutine.( X7 R+ m' p7 `) c5 G
- ;;;
# V% W2 j0 [; E5 M; ~0 [ - ;;; (ddchprop2 <pickset> )
0 g& {- ]4 G! n" v* S - ;;;; U6 W, W) Z" a5 o K6 J) N
- ;;; <pickset> is the selection set of objects to be changed.
* ^% A7 ~" w K2 W( ~% T M | - ;;;
5 {( G! u5 s2 Z" C+ g - ;;; If <pickset> is nil, then the current selection set is( x; [6 u3 y m. E) F
- ;;; aquired, if one exists. Otherwise, the user is prompted
+ P" ^: v1 \( Q - ;;; to select the objects to be changed.; M$ o0 Q' C% t, r A, Z
- ;;;
" G7 o6 J- Y. s3 W/ b9 p - ;;; Before (ddchprop2) can be called as a subroutine, it must
2 \9 `# w+ }$ g4 f( I- R: G - ;;; be loaded first. It is up to the calling application to7 u0 ~/ i5 m1 ?: \1 ] ?& T# O
- ;;; first determine this, and load it if necessary.0 f) t( `! I+ l+ z: P
- : i6 Z2 {9 K6 A& ~
- (defun ddchprop2 (ss /5 a! C3 j* ]. ^2 J; A, Y/ \
9 M- ~3 s- H2 I L3 @) k- a7 `; o% R! S( }7 c
- add-mdash' F k6 O& Z* v1 s' H, h" Y1 n: l
- assoclist! A. c- s- f* C* g, t* `" u7 n
- bit-70! ~3 b, s, @6 ^# U
- boxlength0 p6 e' k( c# m2 p) o
- bylayer-lt! F4 E1 T6 z6 Z u0 r8 s& Y
- bylayer_col- l; R% l( y. G) P
- bylayer_lt
8 i# M+ H" m0 l - call_chp2
( M* r/ x0 @" @+ u7 | - chk-col
6 Q f) k) A6 c) C - ;chk-etype ;var removed by rk 2 A4 r$ X9 t2 ~; ^, Z9 d" z
- chk-lay
' h% o' I: `7 S* l# K& j% R8 ` - chk-lt
) x! D# K" q: p* o) H7 J - chk-lts ;var added by rk & w A( c) y5 ]8 s+ [! u
- chk-th
; g* W& M$ d: ~/ N' S- ?5 t& @# q - cmd. m! A" A3 R% y# L' @! H
- cmdecho5 v4 F; P- H2 u& | [7 c
- cn
- y. o: Y9 N* r$ Q' p: n3 I! K - cnum
2 j% _' u: U8 f; Q8 p - col-idx: K) j3 `3 I" r) `1 Y
- col_def9 q# M; f9 F2 @8 B) x V1 w
- col_tile
3 w, A! q: q" d - colname
, n! B# x/ s) ]) H - colnum
4 ~7 d6 H1 C6 R$ S e - color @& I4 {0 _9 { W* E& t
- colorname( o' f0 g! q0 q: x- y
- cvpname& S) b( S% o1 ^# |8 Z- Y% k5 A
- dash
* O% c& N" H, A/ R, J$ l) d - dashdata
4 r3 P& ^" {6 D) g2 R5 i' d0 Y& p$ T - dashlist" L( t; y) r+ L9 a2 c
- dashsize4 x" d6 h1 e: C! B$ a, [# o
- dcl_id
I# x6 o; \7 y) l+ T4 Z/ J8 q - ddchprop-err/ ~2 \4 w7 R: s) D+ ?5 o
- drawpattern
4 |) `2 f$ M1 E - ecolor
) C0 r& n' N$ L- J# W - eelevation1 \4 L/ Z4 P) y& r- B
- eflag7 Z! x1 c) h5 ]0 f* T5 y
- eheight
C. k) v% v' u+ L% } - elayer
( a2 {' l: m: s* J4 ?1 u - elevation" `# a. S% E B8 ^; K! D
- elist
2 o' s: _3 e, P! H - eltscale5 R& T$ V/ n" S7 _
- eltype
7 {" g# W! l b% z" x9 ~) i; Q - en
# b9 S, d: u; `3 l3 R& B - ename! l" K/ `" {8 B3 g; ~( F+ g
- ESTYLE ;var added by rk
: t' n3 E$ D/ d* V0 v6 D - ethickness
7 Q0 Q/ \' ~+ t$ Z0 J - ;etype ;var removed by rk, M9 m" P2 z. Q; X
- ewidth+ d% z- M5 L& d
- fchk
f1 k+ w# z& J - frozth
) ~7 _ Q1 ^, L3 i: w: G! Y l - fx4 o8 B$ p* T5 f0 k2 _* D8 E/ }" T
- getcolor$ D. D1 C2 g" i8 u) Y; Q
- GETELEVATION ;function added by rk
+ n) \+ u" f% s. F+ }4 [. [ - GETHEIGHT ;function added by rk
8 o$ `+ d* u* l8 q6 u: O& X - getindex
+ S8 I3 }6 J1 }; @ - getlayer
2 d- @5 t3 E* v, h% x5 \5 R - ;get_locked_layers ;function added and then removed by rk
6 F0 |8 E6 K# |9 u$ } - getltype9 y1 Q) B: |; R8 ^
- getprops& g* {2 `1 }8 P) Z
- getscale ;function added by rk7 n- {" D& ~9 _( y; _
- GETSTYLE ;function added by rk5 X- ]; o9 s( M8 Z1 T3 {8 Y
- getthickness# j' J/ {+ z/ d0 z
- GETWIDTH ;function added by rk
1 t7 [1 Y; b7 S - globals
( d! z' X$ U9 |! m8 | - HAIR_STYLE_LIST ;var added by rk
2 G8 K) G( F$ r/ m+ ], c5 k - height3 M$ W- J8 ^) y6 r# f
- index
, e, a0 l# L$ J! `6 D; r - item9 Q' R' v. k. g2 ?
- item1
! C/ }: z: `& i) s3 m - item2 R8 w0 f# }- T4 j4 [8 v
- itemlist1 A. y) J3 i% ^# p* ~
- lay-idx
( r0 l$ W. {9 y! H3 t - layedit_act
2 Y0 v( J9 r% t. m - layer. K+ R2 l, W9 ~/ B) m7 E
- layinfo6 F& v% V. F* e6 L8 R
- laylist
# ^1 F$ d& N: G0 k. Y - laylist_act, {) A5 O8 x/ W8 s
- layname, Q% T' Z d; ]2 o t. m) _
- laynmlst
5 h1 I- R0 u0 r" [; E, H - layvalue
: Y5 E9 x K" W, W - linetype
5 h* V) ?9 b% ?4 W3 m, H' ^* f - list1
! ~/ }- v. t7 U - longlist6 C* {9 }9 ~" M" E0 d1 ^3 p
- lt-idx
% J, a* V9 K ]& @0 y- n$ S& L t1 p - ltabstr
/ x6 t3 U; U* T - ltedit_act+ v, }8 B7 g4 q1 ]6 {; m( b3 F" e8 e; `
- ltidx
# y, U) d s/ b4 s, s/ @ - ltlist2 v, z& j6 j& u. M+ d. b F" q
- ltlist1
8 x6 g: a0 t1 J3 v f8 l5 r1 Y - ltlist_act& k+ O1 o2 h) r' O$ E! R. m
- ltname& u* n ?7 g) c$ o- B
- ltnmlst) c7 I- p! c- F- y6 G* b. ^7 V
- ltvalue
5 ` Z# X1 Z; B - ltype: q: ^( b) X! ]
- m6 k. i4 M( f y5 z$ J5 \ J5 _9 e4 X
- makelaylists
_$ D9 c9 e% T/ r9 e) C - makeltlists
$ m7 \( G' V/ V4 l& ^ - match-col. k" X8 s9 `3 m/ x1 \
- ;match-etype ;function removed by rk0 F0 p' B: o0 W1 w
- match-in
) ^5 ]0 ^% N- f8 ?' F - match-lay7 N: J% N# z: v! h# M
- match-lt
% k* s& F# j; b5 ^) s - match-lts: y) P2 L, Y' C* r# b: h
- match-th, M$ z. W9 n# ^* g' L3 M
- match_col
/ ^7 m4 ~( p9 g) I1 R! Q+ l) B - mdashlist
: }% f p% p, I( a - ;MPOPLST ;function added and then move to ac_bonus.lsp by rk
1 Z* D3 ^# f: G7 B0 w5 {6 e5 A - n, y* G* `2 i% s; L& F
- name/ M1 l4 v0 |0 l) x, k1 L+ K
- ncolor& t' ], y# |/ p! [& L9 s4 W* S8 c
- nlayer) r4 g. u/ {$ `% @1 }
- nltype$ A* Y3 e# O) @+ \4 Y
- nthickness
3 g( T i1 ?, C& B' r - off
8 N2 i2 G* O, D" s - old-idx
# D8 S6 }/ N4 _5 ~ - olderr7 H% I4 b& X- k$ W2 t; _
- on
$ Z/ u1 Q- i* j+ X% B" y - onoff6 b8 n) C8 A! ~2 H4 V' {! S
- patlist7 ~( i4 D+ w2 {) d8 f9 l6 X+ O
- pattern
- Y* m1 _9 H# [; |: u: i - PL_WIDTH_GETTER ;function added by rk
1 ~" z5 |) X3 t - POLY_SS ;var added by rk. ?! ?- z4 e5 Z5 L: k
- ;POSITION ;function added by rk and then moved to ac_bonus.lsp
7 K7 q* q9 |$ ^, s# x8 v2 R - proplist9 N7 q: S2 N! T4 T
- reset-lay
( c; v7 @: i4 _) w4 a! t& W: B - reset-lt1 l3 Y$ j. l& m& t0 `
- s1 j; |5 o: f" B
- selset
$ _9 C. X# W/ h7 } `9 C6 b - set_col_tile5 _* W7 t$ u$ }- V5 ? I" w6 R
- sortlist
L; y% K7 d( v. |* G1 h - ss ^3 S& H) L& c( z' M3 y
- ss_in_current_space ;function add by rk.9 e( i: f& {7 j+ C
- ss-index
# V% Y% B; W- x6 D) z* G - ss-length* E5 r1 N, u6 Z! a/ t" D
- ;ss_remove_locked ;function added and then removed by rk.
& R7 q7 |4 G3 p/ Q - sslen
. Z+ N! {# f/ ?+ R' n- Y7 Y% G - temp_color
! K D8 h! b: m. R - templist) @' a1 k- z. I
- test-main-ok
+ n: g8 x% I% ?3 ]) `( [ - test-ok
1 v, w2 V! n7 ~$ {& O& E - testidx
1 j {2 B! [' i* ~ - testlay* W5 e4 T$ e: ]8 a6 j+ B4 O9 g
- th-value
& c3 i9 N( V% ] - thickness& z# ]* p6 B; ^- J! [! d
- tile
9 }* w. [0 B! h, l# V( L5 x - tile_rect
* J1 V9 M+ F$ K) n; l. Z* Z - tilemode* H8 d* O# A# m' q
- ;TNLIST ;function removed and moved to ac_bonus.lsp by rk' k- m6 k) |( N( A7 g. q! g. |* b
- TXT_SS ;var added by rk) k) N& V5 l* }" D
- ;undo_init ;removed by rk.
" z( k5 b/ R. x; F S5 p - vi8 j! O W/ Z- X, |6 H0 H
- vpf
( ^ L9 N3 K5 N. J - vpldata
7 g7 W% G0 Y; O - vpn+ N% G5 o# J9 L' [3 S
- which_tiles
0 X+ s- ?' A& R - width9 l4 R4 g6 t( F* E1 t
- x
& r5 {# e& x2 D - x1$ e/ B5 A% O( M7 p" D% g5 K
- x2
$ W! z6 I! I4 d; O8 ]3 S - xdlist
- W& K) j6 G' T! H& {/ I- o - y
2 o% P2 F" ]' C& } - y1
# ]& K1 b* B7 H8 E - y2- A5 q8 Q9 U4 k, N/ f2 X: i
- )
' C: `3 `; U3 F. m. t4 L- V( L
% D. k3 K% o+ k% |8 _5 B- F3 w- (if (and (not init_bonus_error)
( j; B4 H8 E- ?# f# {5 t) _- ? - (equal -1 (load "ac_bonus.lsp" -1)) ' U2 n6 ^6 U" R5 d0 a
- );and. f% N, ~) ?% h
- (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))- e* Y k F* l3 L/ K' j& m1 z
- );if8 r# T8 L/ t& w: G, v; {2 N2 k
- (init_bonus_error (list1 c- C+ R! t% n2 G
- (list "cmdecho" 0
& U& T& Q8 |: i" ^) h - "highlight" 0
* ]8 ^) a& l) C1 m- f' E - "regenmode" 1% n0 r7 y, y: r0 s
- "ucsicon" 0
" f$ U, |3 q: @. E - ) # ? \" T/ W2 I( \
- T ;flag. True means use undo for error clean up.
, u# F, j! }5 o - );list Z, U' }; @) P9 c# J: `3 x
- );init_bonus_error
$ ^- Q; ^$ @ j/ |% d1 P - 4 X$ E% K; i9 [+ Q) J/ g
- (cond
" R' n: I/ X! ^* x - ( (not (ai_notrans))) ; Not transparent?
. p7 O1 q) w# U* G& l/ }4 L6 q - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?1 b# e7 k5 f( W, ^
- ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?
; @+ Y+ a" P: P, S) Y8 K - ( (not (setq ss (ddchprop2_select)))) ; objects to modify?
: ?6 B$ A/ I$ u- X2 X2 I - (t
; J& [) W% @& { - ;(ai_undo_push)
Q) p( N: _3 ? - (ddchprop2_init) ; Everything's cool,3 T% ]6 P' I/ V1 M, h$ Y0 k E
- (call_chp2) ; so proceed!3 i1 @" P/ ~1 y# T$ L7 d
- ;(ai_undo_pop); m+ _6 |% M: ~) [* N
- )5 R+ D4 m* H, k3 h4 l+ y& O
- );cond close+ F, H7 X* y' o6 x- l# Y
- # [5 K( E' d; N, ] z) i8 z
- (restore_old_error)
, i4 p; E5 Z; d. }8 {2 ?* T) g - ' l- d+ l' }0 b. [% ^
- (princ)
( ?) C5 Z( U! E7 k) R - );defun ddchprop2
6 W, u8 H) |% i2 h
( t5 A2 _1 R6 }% X) n/ R. A8 Y- ;;;----------------------------------------------------------------------------* D* B# C8 h* H
1 c3 ^$ ?# o) C/ P# P z- (princ " EXCHPROP loaded.")1 Y6 e6 l# `# K0 q1 [
- (princ)6 O# k+ |+ b# I' a8 K1 _9 z& K
! n" H8 T$ d* W; X- ;;;----------------------------------------------------------------------------. r" M0 j8 v: k% Q4 F* p' v9 Z
- ;;;---------------------------------DDCOLOR_LSP--------------------------------
# ]* j& D& U `4 T% l6 _ - ;;;----------------------------------------------------------------------------
% ~3 T$ V% b9 X5 U
' V) R; U6 `- B' k- ; Next available MSG number is 24 0 C# F( i! Q/ x) v6 e
- ; MODULE_ID DDCOLOR_LSP_. I2 e9 n6 Y% H- O" z7 Z
- ;;;, ]3 W1 c" {6 _( Z
- ;;; ddcolor.lsp' l3 l( I2 {# X8 Q8 F% j2 B, |$ G
- ;;;
! L$ G5 S* o: `9 Q - ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.
& k; w5 }/ p! A- V - ;;;
4 _! P# P( B- C* P. j" G) f! h - ;;; Permission to use, copy, modify, and distribute this software
0 N, J/ k4 D9 F c# s4 h - ;;; for any purpose and without fee is hereby granted, provided, r! ~/ J4 p) l6 T, c# w
- ;;; that the above copyright notice appears in all copies and
% S& a% {% P$ P% j8 o* ? - ;;; that both that copyright notice and the limited warranty and5 \+ \( f& a6 D0 r
- ;;; restricted rights notice below appear in all supporting' Y! C+ K% n" B# I3 x0 U
- ;;; documentation.& v7 s* \6 C7 u: W4 A
- ;;;2 C) c( E, K$ ^- H( O
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.* n G+ m [1 q! y8 M8 i
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
7 f3 m$ K. ^ b/ I" v, s- q - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
& z1 v& P K N) t8 Y j9 i: L! u - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE* I3 n9 T2 ?. q
- ;;; UNINTERRUPTED OR ERROR FREE.
: x+ Y! v' ~6 V8 T6 C. Y - ;;;7 L. Q1 _5 s# Z
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
$ q6 {+ L, x7 |2 K9 c* s8 t% i - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
/ a6 p) Y5 q! D; l- s6 ? - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
' ]. r I8 e5 F! w6 @/ F - ;;; (Rights in Technical Data and Computer Software), as applicable.9 o4 S- P; _, j! k. [# T% b
- ;;;; a$ l3 F( v; p0 K
- ;;;.% l; G! C0 v4 t# X& S
- ;;;8 C4 K. ?8 j1 E7 K( a
- ;;;----------------------------------------------------------------------------+ Z* ~* ^/ C o' _' l5 a
- ;;; DESCRIPTION
' p M7 H6 F, r$ b B' K* J7 t - ;;;
, W- C. `0 p! r6 L - ;;; Chromatic Pallete style color selection dialog.
9 R) S- }' @6 i# Q. E' j - ;;; * D: T0 M4 b7 d1 A
- ;;; Globals:
) K$ c: D3 ^9 S; Z - ;;; , J& Z- J8 U2 M" }- o) w5 N
- ;;; chroma_color - Integer color index. The last value selected2 P4 E( q( y) P
- ;;; by the user in chroma dialog. It is not cleared or reset
( F1 `* V! f. j - ;;; by a cancel. Only used for communication between callback
/ O( x$ _2 k3 P" Q9 {% S9 ~$ Q k- S9 R - ;;; functions and the (chroma) funciton.
6 P; h) [) ], J1 r0 o+ B) _' I# ] - ;;; % v6 O! p/ L9 ^) ~
- ;;; Depends on the definitions for the dialog provided in chroma.dcl.6 }! _, O% W9 q3 z( [; Y
- ;;;
8 @ W4 D w1 K- `0 I0 Z& ]; w8 l - ;;;* [$ J: |' g5 {% ~4 r
- ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma 8 D$ c H9 P8 P) E) q1 x3 r
- ;;; pallete style color selector.( |( Q# ~0 ^! a: A/ u
- ;;;
! i/ f2 d; S2 S - ;;; ===========================================================================- X9 ^& g/ e6 K0 D5 G, M
- ;;; ===================== load-time error checking ============================
; N: [; x# u1 N4 {) Z4 D - ;;;9 d5 O u6 C5 }1 O8 F, Q
9 Q$ M Y1 v. V2 f$ l7 Q- (defun ai_abort (app msg)
1 N' a$ y: j8 ?6 n* o9 [ - (defun *error* (s)
9 X4 b- z. D: i - (if old_error (setq *error* old_error))
3 u* \+ c/ {9 B% U* @: d a - (princ)/ N1 h/ z2 A6 q w# E
- )7 U6 G: G7 T m) P
- (if msg0 J, L& M9 c. N3 X# q
- (alert (strcat " Application error: ") w {+ `% {+ ~% |) c
- app
# e1 g( K% g& Z* ^& }- a - " \n\n "3 P, A# l, P$ y& @" c6 \7 k
- msg s& i, ^* O9 o- j1 s# E4 U0 r3 M
- " \n"5 o7 @2 v* t3 V: ]: z/ A
- )
+ o5 y U4 b: i9 \+ c" d# j0 Y - )
3 O# i* K/ i8 L6 [* \8 n4 L - )% Q1 Y& @* s# q: w- x% }
- (exit)
* \4 S1 u1 {) L& |3 g$ w0 y - )
2 y; g3 m* F7 O: X$ ^ - $ t1 `2 n6 {5 A! Q
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,$ d- S& ?, _8 B* v/ e$ K
- ;;; and then try to load it.: e1 T' |0 X5 Q/ B
- ;;;
' D. M; m( g/ E. O/ W - ;;; If it can't be found or it can't be loaded, then abort the3 G0 ~6 C+ h9 V5 G; o, @
- ;;; loading of this file immediately, preserving the (autoload)- v$ x! V8 d) a1 l7 w n
- ;;; stub function.
, }" }0 O3 f$ S* Z# P* | - : g( P2 L4 Y8 u6 |* g6 [
- (cond
7 B( F, W; }) \1 U% C! I* t - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
$ F |; K7 D% T" L; r+ c( A! k
- W/ N1 f( b5 ~- ( (not (findfile "ai_utils.lsp")) ; find it# C2 h5 q" }3 a$ B
- (ai_abort "DDCOLOR"3 d4 k% u O/ k) H! E
- (strcat "Can't locate file AI_UTILS.LSP."$ x' v* Y! @1 V; r: v9 ?8 K. r
- "\n Check support directory.")))* \9 Q$ ]9 M4 z
N7 I* K7 X1 n$ [/ U! I2 S- ( (eq "failed" (load "ai_utils" "failed")) ; load it
$ Q: H& [# |, ]+ \+ H - (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP")); }. K! |6 @% s0 Q% p, a J
- )( T; y' @7 i/ O2 `# y
9 m( t+ \: f8 e6 r- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
( d% i9 r5 }- ]( v8 N - (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses, x# J9 c9 P; z: I" D/ F1 y& W
- ) ; ai_abort's alert box dialog.
1 s0 w: L" R2 X Q7 v3 c1 T: F
6 M1 s' s1 N/ f- ;;; ==================== end load-time operations ===========================
6 |( S" }3 \& l - & ~' S0 |) \: [4 p2 m5 d: Y+ p
- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)5 j7 [0 @3 w* A' ]0 |1 i( x
-
9 ~& f' q) T4 P - ;; Main Color function, called by setup code." u% ]- E6 R6 f. q
- (defun ddcolor_main()* {' f* f4 M1 T) v; b, D
- 0 O& o' G$ u3 Z) d6 [+ n2 h
- (graphscr)* O! T5 t7 i! n0 [- Z
-
# E/ P3 x2 @( v+ B. T - ;; Get the color of the current layer, for possible BYLAYER color swatch.& I( s$ v: @5 _- ~
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))( w+ G4 C- R# r H: a
8 P$ c' Y& `% g/ o: ?6 S$ Y- ;; Call the dialog here...7 [$ h7 i5 F/ U* V4 s4 W
- (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))
! v9 K2 a$ n0 X; A' A5 j' ]
+ j! _& D9 J- p2 y+ k- (if clr% \: r v) p, J/ W C3 F
- (setvar "CECOLOR" (citocs clr)))
5 _! d, U( k: P - )+ g" s/ V- l V; L2 t3 X- c) |- `
& {$ k' z( N5 p \% L- ;;;; b+ r( W" [. Y
- ;;; CSTOCI -- Color string to color index" s3 d; D: O: j) T4 X5 ]
- ;;; Convert an arbitrary case string into a color index.5 z! q, t! s; _6 w. Q. a( o
- ;;; Returns nil if string is not a valid color.& U# g& p' O; F# y! k- W
- ;;;
* B1 r0 ]& s) Z - (defun cstoci (str)
, T2 }2 T# B7 R% x1 b, K' |- l - (setq str (strcase str))
+ Y/ G- C( \. Y% t0 w, R. [ - (cond
! t: A3 q# f8 B - ((= str "RED") 1)
* e2 C7 O2 q! C$ B: [ - ((= str "YELLOW") 2)
8 ]! I4 a7 K. o( }+ _- }, B - ((= str "GREEN") 3)4 B* L; G+ [1 C" H# d
- ((= str "CYAN") 4)
1 ]' l' g! j6 c: J& j' ]. I - ((= str "BLUE") 5)
2 x! H6 \% d: x! E" a7 O - ((= str "MAGENTA") 6)
) B, ]. d7 A& \" c - ((= str "WHITE") 7)
, v* V; {& d- X - ((= str "BYLAYER") 256)
& g' l$ i$ L. ~! M% O3 Y - ((= str "BYBLOCK") 0)7 N! s- f0 P; R/ p J1 u$ ~
- ((= str "BY LAYER") 256)" q% E0 x+ }+ r3 R$ G
- ((= str "BY BLOCK") 0)
& ~4 ~5 Y+ r3 |4 i) m: O - ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))
6 r9 K7 M n+ \# [! Z! {# D9 J+ C - (nil))( Z7 f, c+ q# J Q' a. A: a1 f
- )
. w6 Q( x! E$ d) q8 k. n
9 F8 t3 |' T7 Z! p) O( w1 {
) L. u; T( [" ]( `% B) r! n- ;;;
; ]) R. z7 d) f+ @' q2 \4 k' a - ;;; CITOCS -- Convert color index into standard color name.
. y4 L; e+ x! n3 ]8 _ - ;;; Will return the standard and logical color names as text
* j8 J h1 q6 C - ;;; strings. Returns nil for out-of-range color indicies.$ c+ i, q8 u9 L1 c% m
- ;;;, e; `$ f( o f8 j. s' n
- (defun citocs(i)
& E- ]+ @# E% y6 k1 [; q - (cond, B4 g2 V- p7 d% T- f+ K
- ((= i 0) "BYBLOCK")5 X# s8 i5 X! Z# B# G; |
- ((= i 1) "red")/ u6 @" v. C W8 P& D
- ((= i 2) "yellow")
0 ]1 g+ n& @* p" B6 C( ^) P - ((= i 3) "green")8 }- B6 N/ x% K$ C. i/ ~
- ((= i 4) "cyan")3 J( {5 A. A8 }$ \( l( f
- ((= i 5) "blue")+ q v9 v4 f; H' X- t8 [% C
- ((= i 6) "magenta")
7 f9 W6 @: E0 H% u - ((= i 7) "white")
A0 G& |) E6 o- C r4 F* d) ^ - ((= i 256) "BYLAYER")# {1 j4 \- I( B2 e/ K
- ((and (< 0 i) (> 256 i)) (itoa i)). C7 Y. e2 s, l; T8 F
- (nil))$ P& |' Z7 L' q3 Q4 b$ j
- )" w' y. D$ T8 t$ ^
1 ]; X) S+ Z, E* S9 }4 a9 ]- ;; Start of ddcolor9 V( `5 O3 |1 v2 x
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho4 H' d7 ~$ _, V0 `9 m2 H+ T% M- m0 \
- old_error *error* ; save current error function0 D, z& `; P& T
- *error* ai_error ; new error function
3 m' G3 S; K% A$ k0 E - )$ d5 A* ~* w( t, Z
- 1 b2 R( w5 C: `+ ]: A9 [* F
- (setvar "cmdecho" 0)
. V7 ^: U, x3 ]3 @# c% m2 c5 F: ]! Q - 6 a: F# w% T5 w2 c
- (cond
0 \' m7 e a. C% | - ( (not (ai_trans))) ; transparent OK
2 ~0 ~1 j" l5 P - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
+ f* H# n' g" ^& z0 M
0 c/ ^2 c+ X! q& f r. {- (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))
s/ E+ Y9 z. x* t* e( X! m* i: \# V - (/= 8 (logand 8 (getvar "cmdactive")))
8 [1 y* O6 O; h' Y' k3 Z/ f' T - )+ p3 e7 A/ n+ Q- b9 M4 h3 z: {
- (ai_undo_push)
0 F5 F- s+ l3 r - )8 K3 a, |( x2 I+ L% r
# ]$ C+ t, ?' _% O- v T# w- (ddcolor_main) ; proceed!7 `" v7 H( o t# b
, E; Z+ K3 S4 N' j8 T- n- (if (and (/= 1 (logand 1 (getvar "cmdactive")))0 \/ a+ O" I; g" t/ Y$ v
- (/= 8 (logand 8 (getvar "cmdactive")))/ f8 D. O4 h% S: C1 {
- )0 M2 }. i* E* ^$ i! Y0 u
- (ai_undo_pop)! e9 z& c/ \& m; v4 g: c/ b
- )
/ r5 a, H1 H! { - )2 C+ ?& g" V9 k7 [
- )2 R4 O$ p) U2 X1 n5 S0 k) l( o
- 8 I! r m( a1 I, G1 ?4 a" ~4 s
- (setq *error* old_error)
6 s* n8 ^7 O& e6 R - (setvar "cmdecho" old_cmd)
9 _5 k0 W. ~: _8 \* ^2 q - (princ)
/ r. Y# d/ t! ?# d6 J. @: J - ) Z7 I/ ?4 a* \* B4 q
- )
; y3 [% |! J. ?$ s% @% H0 R
. s$ A* r# Q1 {9 O3 b- ;;;----------------------------------------------------------------------------
8 O9 `+ ~' V! B$ G9 s3 d8 k
) a, k( d3 e) O, d5 c7 g9 K- (princ " DDCOLOR loaded. ")
/ i" B( R# H# Z6 s u% t* M - (princ)5 D/ T, o: j* ?3 p; j5 @6 w
- . E- C% x8 `+ T1 }, V
- ;;;--------------------------------------------------------------------------;
% W9 k: t7 s2 u* J! x" C! i& U - ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;& G- _3 {/ E, G, @4 y
- ;;;--------------------------------------------------------------------------;
. @+ Z# U- L0 [ - ;;; ssx.lsp6 x% c/ Z( f+ r9 l. T' i
- ;;; Copyright (C) 1990 by Autodesk, Inc.. O% k1 j& _; ]. _4 `$ m& Z9 s
- ;;; Copyright (C) 1991 by Control Systems, Inc.
( O4 b# z9 E/ ]3 N - ;;;2 r7 {1 [ ]1 M1 J& B; q' `' z$ }
- ;;; Permission to use, copy, modify, and distribute this software and its
! o6 W- p3 i) S1 X8 F( P* x - ;;; documentation for any purpose and without fee is hereby granted.
, r3 A! i; p8 J - ;;;3 w# M) ?- `; @; l/ O
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
* A; D- O0 m/ }+ J! ~ - ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF
1 t t& e" \1 U - ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.
4 ~# N3 l1 v* ]8 g* h4 F( ?, }8 d) u - ;;;
: ]9 M# e- Z. ^$ H - ;;; Larry Knott Version 2.0 7/18/88$ \' @% a! q- e5 x/ G* C
- ;;; Carl Bethea & Jan S. Yoder Version 3.00 ?, r3 E" }# Z3 I5 @5 z
- ;;; Enhancements to (ssx).
$ k; d, Z; Z, B) t - ;;; 15 March 1990
7 s* I- M Y8 A5 g7 U - ;;;) i6 [; Z9 D" U! i; \% c
- ;;; ARTIST Software, Inc Version 4.0 December 1991# a7 f! \" ~+ F0 C: P
- ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,( V0 N M9 s! a" p# A0 o
- ;;; use Flexicon menus
2 L( D9 Y& [. s" S6 E5 Y+ l# c - ;;;. `3 Y# k) d N$ J1 Y! a+ ~- U
- ;;;--------------------------------------------------------------------------;
7 l9 p! `- m! G Z - ;;; DESCRIPTION2 j/ {5 q5 `/ `+ w
- ;;; SSX.LSP ( I( p, s. g5 ?/ p* ^! Q k7 r; P
- ;;; 4 E6 l4 o' L9 w! ~
- ;;; "(SSX)" - Easy SSGET filter routine. & ^* X: C( B* K# @7 K
- ;;;
' H4 A6 v7 \. w# _1 w - ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt
' r7 H% j$ o+ X# Z - ;;; to create a "previous" selection set or type "(SSX)" in response to 9 a5 {8 P( H1 J1 {2 J
- ;;; any "Select objects:" prompt. You may use the functions "(A)" to add 7 a" S1 P- t/ [" S
- ;;; entities and "(R)" to remove entities from a selection set during
S; l: q( I, D/ B1 |9 g - ;;; object selection. More than one filter criteria can be used at a 1 j4 d4 U1 X& I+ H
- ;;; time. 5 e6 q4 e2 f: s1 c3 S# W1 R
- ;;;
% u. M) j7 v& p4 o - ;;; SSX returns a selection set either exactly like a selected
]7 x/ ]1 t b& `# z& n - ;;; entity or, by adjusting the filter list, similar to it.0 ~. Z& j9 k+ S7 Y4 s
- ;;;7 ~) c- |. G: s9 t! c
- ;;; The initial prompt is this:
: f' z5 A8 a$ s4 k. ^- z ?: S - ;;;
' C2 Y1 f8 W9 S1 ^, a7 H- H/ f Q - ;;; Command: ssx- `4 q" O/ B* L, O* `' }( N: {; F2 Y
- ;;; Select object/<None>: (RETURN)& F% ] Q8 L1 |7 E0 C
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
. b. n4 v% ]* J0 x S, Q5 g - ;;;
& c1 `, W9 @* ^: [ - ;;; Pressing RETURN at the initial prompt gives you a null selection + {7 u4 W, g! k& t) E3 h3 J
- ;;; mechanism just as (ssx) did in Release 10, but you may select an % ~, W9 \+ k) M( V
- ;;; entity if you desire. If you do so, then the list of valid types ! M" z4 B3 n' Z+ Y5 M4 W4 P
- ;;; allowed by (ssget "x") are presented on the command line.
# }8 i3 {9 ]' {/ d: Y0 r5 s - ;;; / n8 z) n( Z) @& e7 X) R' \
- ;;; Select object/<None>: (a LINE selected)
1 C* K4 E8 z. g! |0 j& G - ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0)) 9 C! T8 z% l7 a1 h2 b* Z
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: / a7 ^5 Q ? d4 R. w) B2 d7 j
- ;;; . b% e6 X* z' i. {
- ;;; At this point any of these filters may be removed by selecting the ( ^9 k0 H6 K: V
- ;;; option keyword, then pressing RETURN.( T% k/ ? N5 S7 ^3 M8 u# v5 B
- ;;;
( O& d) G$ b; o. a1 Y - ;;; >>Layer name to add/<RETURN to remove>: (RETURN)3 O8 L/ |' X2 L& q6 W
- ;;; : y9 e( s6 q% ~; j" W
- ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))+ g, d$ v, N! M3 j: d( S
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: 0 {" c+ t* i( \/ ]% {: a
- ;;; / t8 _: @# `9 u
- ;;; If an item exists in the filter list and you elect to add a new item, 3 J- y8 [: S% ~' |# k# P
- ;;; the old value is overwritten by the new value, as you can have only % h# z( B8 L7 Y) I5 a, e9 S- C3 {
- ;;; one of each type in a single (ssget "x") call.
# k( G0 D! h k b4 | - ;;;0 S: d) E( y6 p- Q3 t2 d7 z
- ;;;--------------------------------------------------------------------------;
: l- o. D) a9 q6 N" n4 a0 I8 n4 ^ - ;;;( }. y6 S' G8 v8 { _
- ;;; Find the dotted pairs that are valid filters for ssget
9 S# P, F' i0 g% \- T - ;;; in entity named "ent".
4 {# \6 V; G4 ^3 P5 Q - ;;;
0 U, F) y' ?1 N1 o" F - ;;; ssx_fe == SSX_Find_Entity
3 H6 K( J+ f' V6 \ - ;;;
/ L, I- G) ]; |+ J8 J - (defun ssx_fe (/ x data fltr ent)
: p: k) o. Q+ x7 p5 v) l, U - (if (and (= flexvar 1)(/= t2 "Pick"))4 T' \5 [- L, g! e
- (setq ent nil)
% d! f" R5 @2 e7 e$ m5 b. I - (setq ent (car (entsel "\nSelect object/<None>: ")))# ~, D R& {) R8 Y# m! `7 M) i y. w
- )
# o7 Q1 g b. h0 }) |7 i0 O - (if ent
- r" n) B) B6 t - (progn) |* x) g9 x! s
- (setq data (entget ent))
. L5 m! R& s$ D. Q# L - (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 386 C( U" P- o, @4 Z3 S' q
- (if (assoc x data)
* ?% R/ @' L' N% H - (setq fltr ' r0 Y7 s1 V$ F0 e+ U, }: b
- (cons (assoc x data) fltr)6 j: g1 e3 S- K" X) o4 U: Q7 S
- )- b+ h z+ C" g8 }2 @" f4 B* B/ @
- )! S( j7 _* k9 Y( [6 o" B9 f
- ) $ [. l6 l! J6 ^* V9 t
- (reverse fltr) |% t9 @) l" G3 P4 O
- )
$ O. c+ j; N4 b3 P0 U - ) - Q4 _4 Y) s n1 ~) f2 h
- )7 G& Z( V+ `8 P. H. `- A: U% L
- ;;;) N* X( M h. P7 ^8 q- T
- ;;; Remove "element" from "alist".# u8 V* Q2 ]+ B
- ;;;( b ~4 r- z" V% \
- ;;; ssx_re == SSX_Remove_Element. @& c) j) p; P, Q
- ;;;
% e: J: x, E" d4 ~4 g - (defun ssx_re (element alist)
a1 `- n, X# \ - (append8 a5 g/ n4 ^( e
- (reverse (cdr (member element (reverse alist))))! A0 |1 \3 J; f5 U# r- g
- (cdr (member element alist)) - U# P9 m! f; i* d
- )
2 B- R5 n: ~# U7 R - )
( @' p$ ], T8 }; k6 f8 E - ;;;1 j- ^% K* u4 o) m$ N3 t* T9 h+ _5 }
- ;;; INTERNAL ERROR HANDLER + x% g/ A# `: }$ I; V- D4 k2 _, q
- ;;;
4 q" X! {+ t( v& W3 f6 d1 V, z - (defun ssx_er (s) ; If an error (such as CTRL-C) occurs
* z# f4 s- X5 T - ; while this command is active...
5 x# K# @, D+ z* ]. b/ x3 ] - (if (/= s "Function cancelled")0 h. p, F7 _; q1 t
- (princ (strcat "\nError: " s))
7 D0 e! e0 j5 u, M% [# ] - )* b# _5 J" P# a% O9 U' I, {8 X
- (if olderr (setq *error* olderr)) ; Restore old *error* handler( N' |% G$ A2 L/ i! A2 u/ I
- (setq flexvar 0)
" ~% k) r v/ e2 @: Q% ]. z - (princ)1 v) X1 A' U7 `3 a f/ ], p
- )
, }' o( W6 D) Q5 t1 x - ;;;
- {' ~) Q& D% t% K6 \, r# F) |. p - ;;; Flexicon call routine( j4 D U% q% \! u& j0 ~
- ;;; _0 B: C" @- \+ ~' Q# X; m
- (defun flexmnu (a)
# [% P; m( ? Y" t5 y# c, { - (if (= flexvar 1)
) A& m3 G/ q4 D+ S- k" E& b - (command "FLEXICON" (strcat "FLEX" a))
, }- W4 A$ x/ ]5 { - )
) t' j. B9 P7 b8 g9 |' @8 z J; }/ U - )" }2 X7 \' C* @, ^/ \3 z
# x( ^- a7 M7 C1 F4 i- j- ;;; % K, \% T% l# j' |; F
- ;;; Get the filtered sel-set.
/ Z9 R* i4 z6 I/ v8 y" g - ;;;+ D$ j' k2 e/ h# b% m
- ;;;% V! |, w8 ~" S% W+ d
- (defun ssx (/ olderr)% D6 |6 \% e& t% ?3 B
- (gc) ; close any sel-sets
- h" K3 R7 f# I5 x6 h - (setq olderr *error*
1 N0 O, m; G- D/ J. ^ - *error* ssx_er . @5 F p( [- ?! B4 ? e
- ), M4 k" O V2 D' h: ^* R7 [
- (setq fltr (ssx_fe)) 5 G# c$ F. ?+ D# F! |3 c
- (ssx_gf fltr) ' L; \- S+ M: `) j2 N) ~
- (if (= flexvar 1)
: w/ h# S4 x/ A0 C( l, `5 D - (progn! I8 v0 E4 `' p8 q2 a
- (prompt "\n \n \nNow select the required EDIT command and (P)revious.")
) m, |1 Q6 t6 j" v) F - (flexmnu "EDIT")
' J/ f+ n+ X8 s/ `9 S/ i - )
' |' A2 q, b [0 T4 l: [- s( v - (command "p"): L% ^' w. l! P& Y2 w% S: K9 h
- )2 E6 P% [7 x( q. m7 U# E [2 w5 d
- (princ)
) f+ n9 Z* D" B3 F - )
$ ]4 D) `/ N" J2 A( q" c - ;;;
3 V& C9 u2 g5 p. z - ;;; Build the filter list up by picking, selecting an item to add,
+ X2 X1 o3 T& y- M - ;;; or remove an item from the list by selecting it and pressing RETURN.
- j7 O" C$ G2 a# e b5 | - ;;;
- Q) f% I/ y, I$ U: a - ;;; ssx_gf == SSX_Get_Filters
, s C6 {' e2 y) g: P, R4 F9 n; I( B - ;;;
+ f" n, S8 r2 _& {. w+ H - (defun ssx_gf (f1 / t1 t2 t3 f1 f2)
! d K3 x, y) n) T- G( _6 o2 t8 b - (while
& k4 d. G) k+ c4 f9 N - (progn: a" N; ~/ y+ M A
- (flexmnu "SSX")
1 T& l8 W% z1 } - (cond (f1 (prompt "\nFilter: ") (prin1 f1)))- K' n& ^4 g } o
- (initget ) H* e$ v% _0 t }
- "Block Color Entity Flag LAyer LType Pick Style Thickness Vector")5 w B8 Y/ ]1 x8 N/ Y# J" h, B
- (setq t1 (getkword (strcat: C+ E. \3 L+ d! x
- "\n>>Block name/Color/Entity/Flag/"
; v8 W2 z% Q/ j) e - "LAyer/LType/Pick/Style/Thickness/Vector: ")))
n- D, K7 V7 g b$ W - )
5 ~. B: v/ W0 }3 c( ~: h( q - (setq t25 h) d8 r+ A. ^, q; D. t
- (cond) f( v% m* h8 P0 E% j
- ((eq t1 "Block") 2) ((eq t1 "Color") 62). f/ j6 x5 p% K I9 T8 B
- ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)* y, H/ x& W. r
- ((eq t1 "LType") 6) ((eq t1 "Style") 7)2 ]. B7 y& I7 i/ y; a( n+ A
- ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)) _( m3 s; T9 N4 N/ r1 k
- ((eq t1 "Vector") 210)
; b+ T2 u0 Y7 @! |% R, C9 p; G - (T t1)
9 G9 o% N( p' m7 O; F( Y7 ] - )1 Z$ s% a! v- V- o0 p* k0 G
- )7 n" ?' h# |2 F. Z; }. o- O+ v! ~
- (setq t31 n* _* S- e' m' ^) [2 ]/ p
- (cond6 p. S. _7 P$ T- I! V, v( F
- ((= t2 2)8 j: y, W1 f3 u+ i8 g
- (if (= flexvar gtads 1)
1 I- Y! f0 Q: L. p: Q - (progn
* w2 X) W2 O+ j) D/ s - (prompt "\n>>Block name to add/<RETURN to remove>: ")& y+ w4 T) d! E2 v
- (gttable "BLOCK") d7 Q8 b7 U9 E' M2 H$ \5 D4 |6 M8 _
- )7 h% U% `" B/ i; p# `6 f \9 ^( s
- (getstring "\n>>Block name to add/<RETURN to remove>: ")
l$ h+ o; m4 W* N; L - )
9 b# B. R; w1 U1 A9 r3 y - )& e$ R* U* Q- `2 D% ^% M7 H
- ((= t2 62) (initget 4 "?")6 A8 O* g% ?, x; X H
- (cond# g ~* B) R: X) W. R @/ |8 J
- ((or (eq (setq t3 (getint 6 @! b7 t3 p1 A$ n: }
- "\n>>Color number to add/?/<RETURN to remove>: ")) "?")
# [3 ^2 Z8 O2 K7 z6 L& J1 _* Q) l - (> t3 256))
& f; D) C" W3 O( m* N: ~% T ?4 q - (ssx_pc) ; Print color values.( H* o1 G/ l) s6 p. ?
- nil
6 ]2 N- ~) ?2 t" { - )
+ x% L# h, g) O& I- E# o - (T
3 j' e0 I- k" g - t3 ; Return t3.# R# n' B" c. J; K
- )* N6 x+ e& ?$ Y$ x
- )
6 v8 \) ^/ X+ ]% ?# k6 ?: d9 o - )
4 e$ D+ r4 _4 w$ ]9 h, x, E - ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))
: X! _$ N' @1 _4 |9 g7 A8 M - ((= t2 8)
8 Y6 g0 U7 }2 t! R - (if (= flexvar gtads 1)5 y$ f$ z0 B/ r- s
- (progn# O$ v5 M% A) B; @, W
- (prompt "\n>>Layer name to add/<RETURN to remove>: ")
& n1 ]9 B: g% G4 E$ p, k - (gttable "LAYER")
# M. H# t4 g- g. ]7 a - )
| @8 R2 ^: }( P# R# q0 {6 ^ - (getstring "\n>>Layer name to add/<RETURN to remove>: ")
6 m' w ]8 J. I, b/ `/ N9 i0 x7 l - )" T4 t% I, G8 [5 g2 W& y
- )
/ T1 s1 N4 y2 q P$ L - ((= t2 6) , H9 ~1 q' x2 J* X. n: H
- (if (= flexvar gtads 1)
+ h% k+ i, w1 p' K - (progn
* h5 d7 R- _- w9 e4 I& e2 U - (prompt "\n>>Linetype name to add/<RETURN to remove>: ")6 C K( k) s* q5 m3 b! [# s
- (gttable "LTYPE")7 m9 A# w* N" o' N% E
- )
# u# y: N* B3 |9 ~9 y - (getstring "\n>>Linetype name to add/<RETURN to remove>: ")1 ?* A/ @. i' B- D4 S
- )
. j; u' ]- ^( A/ J2 D - )8 r% V4 j& S- ?$ T& ]' g
- ((= t2 7)
" e) F4 E- N% I8 c - (if (= flexvar gtads 1)
) I# F, f! d9 h8 H4 o - (progn
4 x9 g4 k( R- V7 W: s - (prompt "\n>>Text style name to add/<RETURN to remove>: "); }2 f9 A8 Q$ @0 s& |; z, q$ l
- (gttable "STYLE")1 E$ E; s3 x* F( D
- )
+ X. _% n, u/ Z4 V6 b - (getstring "\n>>Text style name to add/<RETURN to remove>: ")
% ?- {: h. M/ i( F4 u6 G* \, M - )2 E T( P, _; H! s @* C1 |: n
- )9 m! p# n% r. N" n! Z+ ]
- ((= t2 39)
G6 J( A2 l3 o' K9 q- [5 n - (prompt "\n>>Thickness to add/<RETURN to remove>: ")
0 t0 U7 J5 n& y T7 @3 X - (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))- X y( e! E' O9 |
- )
9 e+ Y* f7 S2 T8 c" ` - ((= t2 66) (if (assoc 66 f1) nil 1)). U) n: n' c, m& b( z6 D- d% N3 N
- ((= t2 210) 6 z1 G& \2 n& @
- (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")
' O D3 a, q% r, E, g - )# |8 [, @* U: A0 F+ h
- (T nil)! P) s2 y/ I* t$ n$ h
- )! ?: b) S9 U' s8 [; o# n1 ^# X
- )9 B+ F0 P1 t( f2 q) h/ ]5 q" P7 \8 X: l
- (cond4 v, }# f% t) T
- ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity2 H; e' E# q& y- m9 @
- ((and f1 (assoc t2 f1)) ; already in the list
9 r4 ^2 h2 e" Q2 ], t - (if (and t3 (/= t3 ""))1 c5 G. F" p% f4 ~! Z8 U
- ;; Replace with a new value...
7 g: q- j: C6 h Q z - (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1))
& n3 ]' P+ W" H/ i - ;; Remove it from filter list...$ O1 x3 P: h- N, j
- (setq f1 (ssx_re (assoc t2 f1) f1))
0 E, w! ^9 @; ?5 G/ p* m4 j - )
$ ]2 ]( K- q6 F' g - )
0 n7 s- D3 O# t: ~8 Q% Z. f - ((and t3 (/= t3 ""))
( r7 J& G" Q( o5 w+ Q) }/ x6 _ - (setq f1 (cons (cons t2 t3) f1))
2 t9 ^ p8 S6 K$ J( j- A - )9 {! m5 g; V# j& {* ^# _7 s
- (T nil)
* {7 g. W4 I% ~+ ], F$ z - )
4 Y& T5 X6 M$ A! X- V& ~* d* i - )* \. S, M* k2 k* z+ G
- (if f1 (setq f2 (ssget "x" f1)))
, @ C: s4 O6 f4 w; [! j2 [+ h - (setq *error* olderr); a1 V: e: K: N! g. \$ e9 V
- (if (and f1 f2)
0 Z3 u3 h" s' q1 X - (progn
& s& Q/ w( x7 U% E0 {. @. K1 ` l - (princ (strcat "\n" (itoa (sslength f2)) " found. "))9 c/ f/ k, }4 t4 h1 \2 B+ Z
- f2
+ x2 t a9 }- v- j( L" X - )
/ _! o4 |; A" A$ H# c - (progn (princ "\n0 found.") (prin1))
+ k1 L+ n% h! ^% h) S0 E - )
2 D6 \/ C H R% O) N - )
+ v9 |, _% a( v2 k. N - ;;;6 t7 m' O# l- x- B8 t
- ;;; Print the standard color assignments.2 x# H5 ]1 y& r; e7 ^; `' D4 S% o
- ;;;9 X2 @. Z y$ b8 P# F0 D
- ;;;
" U2 ?0 h1 v$ q9 j' r6 s3 G - (defun ssx_pc ()
6 g. Z4 e; O$ n9 b/ `0 P - (if textpage (textpage) (textscr))0 @; z( u! S, V6 ^. F( Z
- (princ "\n ")
1 h4 E0 q3 t$ G) T2 r' X; z* p8 ] - (princ "\n Color number | Standard meaning ")+ U* @2 P( A4 v4 k p$ l- f$ K
- (princ "\n ________________|____________________")
7 {, a9 n, g5 m1 F* d - (princ "\n | ")
$ r; H" T' }) z+ ]3 ] - (princ "\n 0 | <BYBLOCK> ")
. T9 r' s8 f# b1 A: Z - (princ "\n 1 | Red ")& m4 u s% w1 o" A* k. i' P
- (princ "\n 2 | Yellow ")* q# `* Y7 w3 o7 x$ H" W$ H: E
- (princ "\n 3 | Green ")
: P6 j' o+ U/ U. J. x+ }" q0 c' U - (princ "\n 4 | Cyan ")
1 I Z$ g B) r( G9 m - (princ "\n 5 | Blue ") ~+ G9 w$ r! _
- (princ "\n 6 | Magenta ")
8 d! F" ~+ R; \; o9 S - (princ "\n 7 | White ")3 e' ~0 t# Y2 x' {) W- D
- (princ "\n 8...255 | -Varies- "); d# o2 _' T# p1 r2 H! a ]. [* B
- (princ "\n 256 | <BYLAYER> ")
8 W, ~4 H% K6 ~+ v c8 c - (princ "\n \n\n\n")
) m3 ]9 I# u/ j, O; N# [ - )9 t% S I* Q' e2 p' ]
- ;;;# x% N" ~% ?2 v$ f4 T l6 _
- ;;; C: function definition.1 f5 i7 G! k' X/ `9 e _
- ;;;
# \ }. ]1 Q( p - (defun c:ssx () (ssx)(princ))
: X2 M- s0 b9 c+ O' R - (princ "\n\tType \"ssx\" at a Command: prompt or ")
# [. E2 L) s# S0 _7 g - (princ "\n\t(ssx) at any object selection prompt. ")
, s! d+ p8 c" u9 G& e7 a- |- D6 z/ h - (princ)8 n2 I3 B. x- s2 f
- 4 Q6 _. Z; ^$ g2 b* F' H/ z
- ;;;--------------------------------------------------------------------------;( s0 e$ {+ m' o" \- J/ ?
- ;;;--------------------------------------------------------------------------;
9 |7 L' m: _; M - ;;;--------------------------------------------------------------------------;4 p; |, n n9 U0 Q* c( x9 S
- (defun S::STARTUP (). R( h, m3 [! H! n, B9 K& v% T3 k
- (setvar "cmdecho" 0)
4 R7 v: [; M4 o. w$ N - (setvar "cmdecho" 1)
" |4 v' Z6 y B# v: a7 \9 f6 S - (setvar "LTSCALE" 10)/ F+ e# Q, K* J8 f* @' b
- # l# I: Q# C7 g. Q. d) o# u
- ;(command "_load" "chenKH.fas")
+ A) f9 ]3 u3 e( d2 Z% M& ~ - ;(command "_load" "ctcot.fas"), q% F" \4 u: N3 q G
- ;(command "_load" "damdoc.fas")
# f3 p) {. l* Q/ ` - ;(command "_load" "ghichu.fas")
7 o7 w) G$ l; E; U% b" f5 ` - ;(command "_load" "hamtutao.lsp")5 }" X+ a" t L: D3 G& N5 \
- ;(command "_load" "KHOITAO.fas"): u C6 Z2 i, Z6 u) Y
- ;(command "_load" "KHthep.fas")
$ i$ T- S5 Z4 H. w a - ;(command "_load" "mbmong.dcl")
) z& B a: D$ M; y7 I+ t. Q3 M - ;(command "_load" "mbmong.fas")
% v0 K5 Q2 W4 L& b! T - ;(command "_load" "mccot.fas"). X1 h. i- u$ G
- ;(command "_load" "mcdam.fas"), {, C0 a. q& R T
- ;(command "_load" "mcmong1.dcl"); U, T% ^) w0 A& F4 ?" I
- ;(command "_load" "mcmong1.fas")
3 m* c1 z* I' Q) f, s+ [& |9 a. D - ;(command "_load" "mcmong2.dcl")
+ Z! h! g# N! g0 \) U, M - ;(command "_load" "mcmong2.fas")( i! }" b% P( b$ e, |5 H) b
- ;(command "_load" "mcmong3.dcl")* f1 k6 X" A. Y0 |9 u
- ;(command "_load" "mcmong3.fas")
7 H' p& m, G: u3 s" ^; b - ;(command "_load" "mcsan.fas")
; N" Q" x0 h1 t2 m - ;(command "_load" "thepdai.fas")' q* C' y4 h: ?
- ;(command "_load" "thepdoc.fas")3 Z$ l( w) j$ v1 K* k
- ;(command "_load" "thepmb.fas")8 v0 n! d9 f' E- k2 S G4 [
- ;(command "_load" "thepphbo.fas")# w# ?+ \# i2 M
- (command "_script" "thongso.scr")
1 S. u& x, [3 C$ ~ - ;(command "_load" "thongso1.dcl")7 N1 |2 p0 l4 L. P8 M- f& f$ \
- ;(command "_load" "thongso1.fas")' a7 @3 Y3 u$ N0 B1 k
- ;(command "_load" "thongso2.dcl")/ o' t {3 F( W5 e& b2 \7 ^
- ;(command "_load" "thongso2.fas")
4 m7 i3 n K5 e1 j5 ` - ;(command "_load" "tietdien.fas")
6 z: d5 ^# F' g6 K4 n4 @ - ;(command "_load" "vehan.fas")
, a, P0 E' ^6 F6 V% [$ Q; t* @ - (command "_load" "phamDuy782006_TKT.lsp")% }# `% P% `/ L& Z
- (command "_load" "phamduy782006ganhtd.lsp"); f/ K" C1 o7 ]7 k. Z
- (command "_load" "phamduy782006ganhtds.lsp")- n% }& l% Z, `
- (command "_load" "phamduy782006htd.dcl")( R- x* e/ {: q- I* v, W3 y
- (princ)! Y- R3 `& `# t2 {. t$ q
- )0 k/ P% z" b* a4 l4 C
- 3 @' y$ O- G$ W4 P
- ;; Silent load./ r5 g5 ?+ m0 s( r5 P. n
- (princ)
5 Y8 Z; e. X, Z
* R" N+ f6 x+ O( A' A0 B; j
# O* S. U y0 M- N7 D) C- ;; Silent load for the Express Tools.: |% K) y( z; }$ L4 U( `" `* ?* D
- ;; Altering this line will affect Express Tools functionality
( u& V' k7 M$ U! s) t$ i. M! o7 p J; d - (load "acettest.fas" (princ)): l( s# F. v) a9 O" O
- �32
Sao chép mã
" ]+ |, j' R, g& k00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ
5 t( i, c1 m9 L |
|