|
|
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 |
- ********************************************************************************
: V. P6 F, i' y1 N) y - * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *$ } [6 y% c0 v! d9 v
- * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *8 Q! ]6 N2 V" I X/ q' J8 M" G
- * Suu tam & Soan *
" g7 ]) ?9 b' N/ x3 C - ********************************************************************************" m7 a& B* |" q+ l3 ^/ p
- % S4 k- r6 e% g5 n7 G, M
- ; Next available MSG number is 104
; \2 t0 C( W$ d F+ k- t - ; MODULE_ID ACAD2000doc_LSP_
x# q* `4 W3 o& i: q' @* J - ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 20005 ]7 D$ J5 `+ ^( o. G4 a! n
- ;;;9 g8 m) k8 k2 |& K0 |: M
- ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.: q- m# i' P5 H( M
- ;;;" T5 R& G; p8 g5 V
- ;;; Permission to use, copy, modify, and distribute this software! c; P- u6 |5 d6 U. v
- ;;; for any purpose and without fee is hereby granted, provided
" ]- t3 K9 x! r5 H - ;;; that the above copyright notice appears in all copies and* k" p+ l' q0 I5 W
- ;;; that both that copyright notice and the limited warranty and, |; n6 z( ~3 W8 V
- ;;; restricted rights notice below appear in all supporting
( w- z$ S Z) X' F h' I+ X6 q( ? - ;;; documentation.! g# q+ k$ ^0 m( |2 S' ?, |
- ;;;; `4 B: d" @* Z6 I5 n' L, S
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
/ ~) s. O8 f9 z# i6 ? - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF/ u/ w# m- {1 \# `$ S7 ^0 c4 u0 B
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC. G/ E1 A* M7 g
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
+ |7 n% a, z# c9 u* O3 B - ;;; UNINTERRUPTED OR ERROR FREE.% p4 x8 a) ]+ P% O
- ;;;
$ B4 \' V1 o# ~- C* h) h - ;;; Use, duplication, or disclosure by the U.S. Government is subject to. |6 |7 e H4 P, [% t+ @% t
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer# q! m* ~6 l; w9 a& M
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) , x. V) N; |' W. ]
- ;;; (Rights in Technical Data and Computer Software), as applicable.: C* O* F- f0 Y- _- v: j4 a0 `& o7 k" O
- ;;;/ n! M( b( ^' e7 b2 c0 z- e, r3 N
- ;;;.1 D# Y( p: S; j9 h/ \5 W: I
- ;;;
: B+ J# o4 t: v/ Y. ] - ;;; Note:# r0 b6 t! Z) Y2 w
- ;;; This file is loaded automatically by AutoCAD every time " S( o1 K, `+ C ^2 R5 A, T
- ;;; a drawing is opened. It establishes an autoloader and% c+ d9 ?: p; J/ x7 d
- ;;; other utility functions.0 M) M/ x0 h# f( e
- ;;;( H! M. I7 G- f) W! s& j$ N2 S. w
- ;;; Globalization Note:
t9 f/ _* Z% z* l6 F! Y- Z r2 g5 Z$ x - ;;; We do not support autoloading applications by the native
! S. A* F8 o1 a: j. K, J# \ - ;;; language command call (e.g. with the leading underscore% K0 y, D0 Y- `' }
- ;;; mechanism.)7 s# n, y$ \' b
) |4 b4 A w& U4 w- , S7 B* ^+ M q
- ;;;===== Raster Image Support for Clipboard Paste Special =====/ ?, S$ a9 p& m# W: |/ A5 y u3 u
- ;;
' Q* c1 M Y1 ~5 |/ o! H* Y4 L$ n - ;; IMAGEFILE
}3 X% Z# W0 a2 a/ l7 b2 s7 X! L - ;;: o- a0 W' \/ u. R' Z& S( T* w
- ;; Allow the IMAGE command to accept an image file name without: B; Y% Q8 O- H t. x
- ;; presenting the file dialog, even if filedia is on.2 K- Q+ }( M9 a
- ;; Example: (imagefile "c:/images/house.bmp")
' a7 ~8 \2 ^; a# K" S: u - ;;
0 A9 \" h9 f2 a) P9 J - (defun imagefile (filename / filedia-save cmdecho-save)
& |" M3 f9 L5 Y+ @: R - (setq filedia-save (getvar "FILEDIA"))% d8 i d& ?" `( A1 c
- (setq cmdecho-save (getvar "CMDECHO"))0 J& z: O; P" N; u; W$ g$ Y
- (setvar "FILEDIA" 0)2 V* V. I! ]$ q- K; ?- B d! m
- (setvar "CMDECHO" 0): F) _8 X1 B" f4 }. Q. T
- (command "_.-image" "_attach" filename)
) A6 G4 J) C7 ^0 A o - (setvar "FILEDIA" filedia-save)
( D4 m1 ^1 Y9 I* p' a3 P p: [ - (setvar "CMDECHO" cmdecho-save)' @+ `* ~% H F R
- (princ)5 F4 x$ ]( V5 C/ _$ x
- )
+ y8 v! n' H1 R# L; y+ L
" m4 u9 Q& Q J0 d6 _- (defun c:zx () (command "zoom" ".5x"))! u4 a. X8 Y& s0 n
- (defun c:zz () (command "zoom" "p"))
% w! k( N/ O+ I0 i4 L5 N/ m3 Q - (defun c:za () (command "zoom" "a")), K$ P& z, R) W5 q+ h& c$ Z# S
- (defun c:zd () (command "zoom" "d"))4 O9 H( i% q. ?& V
- (defun c:ze () (command "zoom" "e"))2 O8 d( V0 U. ?! I2 C8 \
- (defun c:zr () (command "zoom" "" ""))
4 d+ \! t. V$ d - (defun c:vv () (command "ucs" "v"))+ K J$ G0 I6 a: [
- (defun c:co () (ssget) (command "copy" "p" "" "m"))
o; a- R4 w" K" W: K3 L9 Z - (defun c:c () (command "circle"))
; v8 W5 V6 i1 `* t6 e0 G - (defun c:rt () (command "rotate")). q6 w% M9 C& P' O& D, C
- (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))
5 s' Q9 L- ]% |& W; F8 z" J. z - (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
, Z8 X1 O% k; z1 c0 x - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))/ | q5 \3 t0 p& T5 k* j
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))" f! P- m. ~1 e" }, B! l) Q
- (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))
6 l8 {7 Q' B- \- w0 c( V - (defun c:60 () (ssget) (command "rotate" "p" "" pause "60")), o$ c- t' N7 H/ F
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))- K. Q1 ^9 @9 Z( E. [* |- z" B
- (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
! u, K- G% Q6 I0 b }% { - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
7 M: t% P) g6 g. ?* {$ B' G - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))$ }* w3 h! M* N; U1 p) F8 R
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
9 X S! m# l' O6 {9 } - (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y"))
' ]. v( V8 f" \# K$ { - (defun c:fd () (command "find" "p" "" )(princ))(princ)( p0 e+ j$ L1 T7 {
# k8 T# `. r) E/ e- l/ m- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)' k+ f& q! Q% V" o+ }
- (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)+ L! l( z1 ~4 I9 {' a
- (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ); ^6 k+ A( u( J" y) G7 j
- (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ)
1 K' v/ a5 R$ m$ b8 S, ^ - (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))
. L4 v% _, [$ I) E/ W - (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n"))
" J8 j9 ^. e1 R3 ~ - (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n"))+ k0 h/ Q! ?: l2 H0 g7 f9 X
+ k/ G3 x: {" o) G6 j- @$ w! u- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))
2 x* C% w. c6 c& ?4 S$ M& ^; t8 j - (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))
5 w# e4 ^ h2 T: K( u! C - (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))7 L, M, x" P- j$ J
- (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n"))
$ ` Z7 t, I6 v" {8 ]' ]. ~$ R" l - (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n"))( b/ y$ n8 V, Q4 Q' l/ G
- (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))
% |& P7 v! m& [! M. s4 R: d0 k - 2 F' Y$ s" q& Z. c6 j% S; K& x2 O" Z
- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file
k; a2 R) I6 n$ Q% l" T$ a# s
* j" N+ `- O9 T# ]) X- ;free lisp by cadviet,cd2k44
- C2 [+ O1 }5 R7 T6 k - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538303 k k& U# Y. s+ H+ P. F
- (defun c:FTEXT (/ ent tstyle )0 I) Q& `' C& c2 S( V1 M$ s
- (command "undo" "be"): [% ?* T1 Z* P, D
- (setq ent (entsel "\n Pick text :"))
6 U f2 p; i8 K6 f4 O- g3 u - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
) I* y) D0 b6 z - (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")* a# h. x% F) ]! X+ L$ d. X( l
- (setvar "TEXTSTYLE" Tstyle)
, c2 w6 Q. B3 t( i - (command "undo" "end")
# I% y+ K7 J- E' g) R - )
$ m% T$ k! c3 b# i5 ~ - ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)
( y2 J% ~0 X' V2 A6 f" U - : M: ^2 i% M* W, \
- ;free lisp by cadviet,cd2k44
- O G# w5 U% @" D6 c; I - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
3 G3 E4 N, E3 e. {4 k! o$ S. J - (defun c:Fvnh (/ ent tstyle )& T8 j+ U. h2 R! Y& T+ C
- (command "undo" "be")
% `2 K1 @) Y$ r9 e! D - (setq ent (entsel "\n Pick text :"))3 K% w$ H. [9 U9 j5 F* \
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
) X" o' c0 }, u( } B/ S. a: z - (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
* U( G8 u+ |# g9 ~2 l6 ] - (setvar "TEXTSTYLE" Tstyle)
6 D6 O) }0 f4 {8 _4 c' E5 j- L - (command "undo" "end")
4 I9 E; f/ m/ e6 r! Z; b& P8 }& t+ _9 { - ): P9 @5 h; o8 ^$ _+ ~
: v# v) [1 Z; A" Q- ;free lisp by cadviet,cd2k44
4 F/ D$ T. }" u5 W# C! P - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
7 S$ @; A( Z$ `. E9 Y9 T - (defun c:Chbg (/ ent tstyle )) q, ~! s9 k4 @# ]% U! }2 h
- (command "undo" "be")* E0 J- |# P3 Z
- (setq ent (entsel "\n Pick text :"))% f6 a% Y, u$ E5 `+ P8 e W# |2 Q
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))6 N, U9 n# w' q) I
- (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
* V4 H8 V2 M3 s) N3 b( {2 x4 ?/ v - (setvar "TEXTSTYLE" Tstyle)
$ r; T9 R7 G/ U. e6 X - (command "undo" "end")
) V1 b- o7 s( s# ?/ z) ] - )% |" s* \, j+ _+ [
- $ W. m1 W8 c/ W" O
- ;free lisp by cadviet,cd2k44
$ P' V2 |3 k" q5 T - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
+ n: v, H1 e. Y, q - (defun c:Chsm (/ ent tstyle )
4 I0 W4 b2 q; F6 a6 u! j: H/ P - (command "undo" "be")
, r; o9 q. C! ^ - (setq ent (entsel "\n Pick text :"))
0 w# l$ ]& x2 b - (setq TSTYLE (cdr (assoc 7 (entget (car ent))))); e. C3 K7 ?' ]
- (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n")7 L$ J0 J6 F6 X2 Z7 D7 b: E
- (setvar "TEXTSTYLE" Tstyle)
. W( B2 |. q% m- n q: N2 @ - (command "undo" "end")
3 J- p; A- `( n1 U - )
6 m; p) C, G4 v' X) I o* b
1 C: ~$ y) r& A- ;free lisp by cadviet,cd2k44
* s* U4 X* W0 Z- D! }" m# W% i! ^ - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830$ }- n7 a% O% E. ^: a/ Y6 T
- (defun c:Fttf (/ ent tstyle )" T+ v& o5 \0 s5 ]6 }
- (command "undo" "be")6 \1 c" t0 ~5 D& o! [; q9 r
- (setq ent (entsel "\n Pick text :"))
# [% o1 N' S) ?8 R2 S( M - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
; v/ Q" H1 I7 f3 G8 Y - (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n"). p. e2 L0 z$ [. g7 {# w
- (setvar "TEXTSTYLE" Tstyle)
9 {* s3 l, O0 @$ f% G, ?" Q - (command "undo" "end")
2 p* R+ E9 M0 [ - )0 R# H( @" \$ |; F. m+ w2 D# R
) K# {& [2 I: ?3 N* ], `) N- ;;; ============================================* t( v6 M& B, W! W
- ;;;
4 o% G- s* E) ~3 W+ h - ;;; LISP Creater Tao Duong Dan AUTOCAD2000
8 x3 Z! k- S% a& N( \" r( b - ;;;
: x' j. S+ `' q - ;;; ============================================
8 t1 H! h' j( B3 G. \
1 [2 V9 ~% g P6 j. v- ;;; ============================================
6 J2 c" f. ]$ L) e4 j6 a. H - ;;;9 ^, V7 e) e8 X, ~- i9 A
- ;;; CREATING FROM AUTOCAD2000$ c8 I; u* n1 y
- ;;;
- N: m- J* u: I+ E/ I! e - ;;; ============================================2 ]9 w! z |3 u3 m
. }' a# o+ R, r7 ] n* z% ?3 V J- (setvar "INSUNITS"4)/ H" ~: Q! r: }& c
- (setvar "ANGBASE"0)2 s: Z& Q. l7 Z
- (setvar "ANGDIR"0)" A: J$ V) k% u0 f! c: o: a
- (setvar "AUNITS"0), ~. N4 S; o6 t1 Z1 l4 E) s D: u) i
- (setvar "AUPREC"8)
# K9 ^/ h. l' e& K - (setvar "LUNITS"2)
9 j' u @" e5 t( Y( _0 Q - (setvar "LUPREC"8)0 A C5 p3 q) h
- (setvar "ACADLSPASDOC"1) * F6 H! U2 P$ A( z1 `
- (setvar "pickbox"5)
! a6 v* t1 L% @7 N( Z1 o. S - (setvar "blipmode"0)3 Z4 e# {) M; n! H8 h/ K6 C
- (setvar "mirrtext"0)
/ S3 G3 A- E$ h# T% V( y - (setvar "cursorsize"100)
9 r% f- D8 \5 X M& x+ d4 K - (setvar "ZOOMFACTOR"75), E& G( ?% v W6 U
- (setvar "LTSCALE" 10)
* o2 ?" A. U7 a; ~+ H: h- v - (setvar "lwunits"1)
. C; s; k* i* M5 j; |% ~ - (setvar "DIMBLK" "Closed")0 ]; n3 K+ f( y1 h$ l( ?
- (setvar "DIMGAP"0.0693)& U7 E- k" O% Z8 W, m" l
- (setvar "DIMASZ"0.20)+ `2 y; R0 i: K2 l; h2 J
- (setvar "DIMCEN"0.2): p* q- t% _3 v, ^) I
- (setvar "DIMDLI"0.1)
1 g8 ~9 W' v! K9 ]; m3 N - (setvar "DIMEXE"0.0693)$ f: n4 ]$ R1 S/ Q/ T+ W
- (setvar "DIMEXO"0.25)5 @: a$ E& h, D$ K0 u
- (setvar "DIMDEC"0) c3 K5 c7 l4 K d' b
- (setvar "DIMTIX" 1)2 V1 [1 T! u7 [( F# h& W+ M& R
- (setvar "DIMTXT" 0.099)
) x" m! R" J% p - (setvar "DIMCLRT" 7)- M8 m5 x9 u8 b3 R" f R5 b
- (setvar "DIMTVP" 1)9 |' J+ B+ _0 K7 ]- ]/ g, F
- (setvar "DIMJUST" 0)
" r# b$ X5 z- f3 ~1 H - (setvar "DIMTIH" 0)2 V& J. Q+ L- f: d/ b1 W3 L3 O
- (setvar "DIMTOFL" 1)4 [$ i" R; f0 g* C2 f
- (setvar "DIMSCALE" 1111.1111)4 F; H8 _( d5 y0 r
: x/ f" d( b7 U9 J1 l, K) c$ i
7 B. b3 M4 L0 H1 G* I9 f$ g
, F* Z3 `+ L: @- (defun c:zp () (command "'.zoom" "p"))! E2 t4 Z1 m( t, o
- (defun c:zz () (command "'.zoom" "p"))
# X# m. h; z( g* K - (defun c:ze () (command "'.zoom" "e"))
( X* B) y e3 c# A) o: o( c7 O - (defun c:za () (command "'.zoom" "a"))( o$ U G+ Q- o3 \3 ]( m+ A
- (defun c:zd () (command "'.zoom" "d"))+ X. h4 I7 c7 V0 s Q" v$ O; J6 I
- (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))7 {* g8 k9 { n) k
- (DEFUN C:ZX () (COMMAND "ZOOM" "2X"))
2 T a: D$ G. j3 s6 y - (defun c:de () (command "ddedit")(princ))
! U5 Q3 @9 w) u - (defun c:dda () (command "Dimaligned"))
: y$ E' a8 u. F - (defun c:ddb () (command "Dimabaseline"))' i2 s4 T8 {, o6 O' t* l
- (defun c:ddc () (command "Dimcontinue"))6 U% t7 Q, y$ G2 o; Y
- (defun c:dde () (command "Dimtedit"))
u% l; C5 ?1 \! ~* z$ Q8 W - (defun c:ddf () (command "Ddattdef")); x' ~. H1 Y+ q
- (defun c:ddi () (command "Dimdiameter"))1 `+ F( B, q7 \4 n6 b) \6 g
- (defun c:ddl () (command "Dimlinear"))9 n: L+ U9 V! x7 _$ B
- (defun c:ddn () (command "Dimangular"))
' }& h- S! v2 X - (defun c:ddo () (command "Dimordinate"))$ J+ B, e# d3 M6 \/ j8 L- V
- (defun c:ddr () (command "Dimradius"))
( k7 c6 K% W4 ^$ F - (defun c:dds () (command "Dimstyle")). n2 r9 p7 u: [
3 q: P7 ~% W/ n2 [- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ)
/ l3 t1 E" _! g5 N: p$ C6 F - (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ)
/ ]: p5 m, n2 z, O& @8 `( h: e - (defun c:UU () (command "dim1""update""all"))5 [- u' Q; w# f
- (defun c:ded() (command "dim1""tedit"))* T' b) |" X: R) _+ g0 t1 h
- (defun c:da () (command "dim1""ali"))
* b5 n, I$ |2 J9 C% ]8 J - (defun c:dll() (command "dim1""l"))
% S1 D( v9 w" N' Q$ M - (defun c:dan() (command "dim1""an"))! D' T/ `+ G! Q9 m6 j; I3 T W3 X
- (defun c:d1 () (command "dim1""ra")): X" y! _, A6 _- W/ \
- (defun c:n () (command "dim1""new"))
: o: K; [6 ~) X2 `- e) [1 P - ! q% i4 Z1 o" F# a& k* z
- (DEFUN C:PE () (COMMAND "PEDIT"))
+ }- `$ t$ B$ C9 S+ Y9 S: L5 I4 @ - (DEFUN C:PL () (COMMAND "PLINE"))
1 D7 n8 I5 [& a1 } F7 x - (defun c:dd () (command "dist")(princ))! v% h' |, Z( {2 {. g
- (defun c:w () (command "pedit" pause "w" "au")(princ))& p$ P% `, ]9 c8 A
- (defun c:pg () (command "polygon" "polygon"))' Y9 K. [/ l: T# }6 B
- (defun c:el () (command "ellipse"))0 L% `7 `9 l) ^
- (defun c:xe () (command "explode"))+ j1 K0 K; S* S1 G% t
- (defun c:eex () (command "extrude"))
0 u" c5 z0 D! {% s: N+ P% O - (defun c:xg () (command "xline""a"))
! T8 b/ _& \3 ^9 J8 @3 B( P - (defun c:xh () (command "xline""h"))9 s; j: d/ M# f3 ~+ E; e
- (defun c:xv () (command "xline""v"))
0 A5 g2 X% P4 L - : ^! W! |, {" a) v& l, {
- (defun c:oc () (command "osnap""cen"))
! k, f" G; }/ V; D1 R - (defun c:od () (command "osnap""nod"))
8 n) A: ~8 e% P2 F( L% K& u8 g - (defun c:oe () (command "osnap""end"))
u6 F1 {( _6 L9 a - (defun c:oi () (command "osnap""int"))1 K0 _- X/ O' D2 s3 u
- (defun c:or () (command "osnap""per"))' g$ d2 A3 B ?
- (defun c:on () (command "osnap""none"))# w+ V- Z2 H" H8 g: y- D& T: k5 R
- (defun c:oq () (command "osnap""qua"))! [+ ^" f' t9 J, [0 v& ]( V
- (defun c:om () (command "osnap""mid"))
. e! z! o9 O8 b0 \$ H6 }$ Z5 O - (defun c:ot () (command "osnap""tan"))% B; O! s9 y1 B( F' F4 @& e
- (defun c:oin () (command "osnap""ins"))
1 X( `+ C! W( F! j1 | - (defun c:oa () (command "osnap""nea"))
" X6 `; ?$ r6 W6 s: [4 H1 ] - (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))4 B' |, ^/ T( U+ U, u' z; b
- ;(defun c:du () (command "dim1" "up" "s" "pick" "other"))
' |+ W/ [7 Z4 g) t - ;(defun c:nn () (command "new" "y" ))
5 h5 r7 M. B$ @+ ?* K* K - / y2 g f W% Y
- (defun c:/ () (command "limits"))9 f7 U9 ^7 z% J" E- {
- (defun c:`1 () (command "region")). ~, h* e4 @# b: z% S0 L6 h9 o
- (defun c:`2 () (command "subtract"))0 T! h4 j7 o( Z+ x4 j( o* j
- (defun c:`3 () (command "union"))
8 [: A X1 ^4 f _8 m. R - (defun c:`4 () (command "intersect"))+ V- G: ?% {% |* _4 I6 h
- (defun c:`c () (command "cal"))
+ r6 z% f* P% ?: Q2 ` - (defun c:`g () (command "Polygon"))
8 i8 c: J& ~. Y/ x' y
# v0 l V7 \7 V N3 \- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))
% r% l- W/ e9 p4 S9 {0 J+ m - (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ))) v/ i0 Q* S N8 S4 |- ~) ^
- (defun c:ip () (ssget) (command "print,_plot" ))(princ)! }0 p, B, B/ b
- , Z8 b _: D- D; E, U
- (defun c:ddm () (command "ddlmodes" pause))# }$ f' D: E4 S# n3 ?$ {. Z4 a" N
- _ V( q% b) u1 _; X- (defun c:sha () (command "shade" pause))( l. e4 w2 j3 d# d. j4 E$ w
- ! j V9 M! |5 c
- (defun c:sr1 () (command "surftab1" "p" "" pause))
" M: O+ }8 V1 A$ n9 U - (defun c:sr2 () (command "surftab2" "p" "" pause))
- {: L1 s6 a5 Z8 d
9 g9 U! r( |. o% @- (defun c:ad () (command "audit""y"))
1 O6 {& C6 P7 M- C4 E" |# l - (defun c:q () (command "quit"))" q1 b' y3 M" _0 O
$ M/ |: ^7 d5 S( n- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))! {0 F" ^, {% Z1 z7 r
- (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))5 U. B! k& K! s
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
9 o7 U/ y6 {/ w* C) N1 `4 C5 G2 e1 n* c - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))/ v0 q1 B# N, b5 o0 ?
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))5 T7 M( f/ @8 H- I$ C
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
; ~* S9 ^" P, Y1 r3 X0 p: _7 P/ i - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
. R l; _& d2 D& I( ^# X - (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90")) B4 V& N" c% W; ]" B6 k
- (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
" p3 L+ a# { t2 r4 i" I# D: [- m - 1 V1 q9 c# B: E
- (defun c:u3 () (command "ucs""3")); T$ k' Q, j' i
- (defun c:ue () (command "ucs""o""end"))
8 K8 Z! [+ Q7 K0 ]7 p! p. T - (defun c:ui () (command "ucs""o""int"))/ R+ C" o; J5 y
- (defun c:um () (command "ucs""o""mid"))! ~7 D0 ~- _: T2 q" p( m
- (defun c:uc () (command "ucs""o""cen"))& i2 e# P" c) x1 i, G' s
- (defun c:uq () (command "ucs""o""qua"))0 v! c5 H8 l* Q9 [) \
- (defun c:3s () (command "ucs""3"))& D+ m& |1 k5 P' L5 R+ c
- (defun c:sx () (command "ucs""s"))" U7 ?! x6 ~9 v* j% m) U, ^" `
- (defun c:sf () (command "ucs""o"))
1 E) I* }! F4 O9 g9 D# y - (defun c:sz () (command "ucs""p"))4 L& E% d# R) g5 k4 B
- (defun c:sr () (command "ucs""r"))' R" H; B. {' I/ H. R& g( A
- (defun c:sw () (command "ucs""w"))7 l2 | y1 C4 |6 n
- (defun c:fv () (command "ucs""v"))
. j0 I, t5 x9 |( I) K8 U1 ? - (defun c:ux () (command "ucs""x"))
' U0 F9 K- d% t - (defun c:uux () (command "ucs""x""90"))
1 r+ u, U2 B2 p" | - (defun c:xxu () (command "ucs""x""-90"))- f2 a) K. V( y) q& S
- (defun c:uy () (command "ucs""y"))$ l. ?* b# Z! p @ R4 o) d3 m
- (defun c:uuy () (command "ucs""y""90"))
9 w/ T, B9 a a( p - (defun c:yyu () (command "ucs""y""-90"))
. Z& C8 p; `7 h9 \! p: Q - (defun c:uz () (command "ucs""z"))
m# j3 D' A( N; v/ ] - (defun c:uuz () (command "ucs""z""90"))& P7 K7 g% w7 c( l( I% b( Y4 m
- (defun c:zzu () (command "ucs""z""-90"))
# w- x. O) B( C) ?+ n - (defun c:uci () (command "ucsicon" "Properties" ))(princ)6 i' x+ F- Q' W; P2 I+ o% e2 a+ \3 r; e
- (defun c:ucm () (command "ucsman" ))(princ)$ t# c4 f0 K5 h, L& }% h
- J( k( U5 d/ N# T/ D' `3 A9 o- (defun c:sa () (command "vpoint""_non""-1,-1,1"))8 g( j1 @3 Y# ]9 w8 V+ J0 O
- (defun c:sd () (command "vpoint""_non""1,-1,1"))* O; }# c- V; W- v& q
- (defun c:se () (command "vpoint""_non""1,1,1"))) X# s8 |% V. T; X, |1 N
- (defun c:sq () (command "vpoint""_non""-1,1,1"))
! O/ a! b9 J% | d( _0 G - (defun c:vc () (command "plan"""))
* L/ P5 A. G' k4 Y9 O - (defun c:vd () (command "dview""all"))
& `# n* T4 r: E$ v- W - # V; X* B( o: ? v4 C
- (defun c:TT0 () (command "tilemode""0"))
! [* E) h( ^+ _1 a( h - (defun c:TT1 () (command "tilemode""1"))
) e% x0 i7 Y2 I5 g( ^1 z - ; I5 `1 R2 l1 h7 n7 {/ Z
- (defun c:vt () (command "vpoint""_non""0,0,1"))
, C& c( J3 @' }$ g, j2 w - (defun c:vb () (command "vpoint""_non""0,0,-1"))
- `6 ]. b% C* |) h8 |+ z/ o+ E: U' s - (defun c:vl () (command "vpoint""_non""-1,0,0"))
% ~& P9 l! C5 {. G) G - (defun c:vr () (command "vpoint""_non""1,0,0"))" h/ B4 v5 N" b; |2 C5 I0 W
- (defun c:vf () (command "vpoint""_non""0,-1,0"))
! D8 P) x4 k( m2 G: u$ s2 f/ d+ G5 o F - (defun c:vk () (command "vpoint""_non""0,1,0"))) A e" h/ d/ K* o
- ' R& r5 z0 L5 R2 t6 R* W
- (DEFUN C:MM () (COMMAND "MIRROR"))
2 A9 K% A7 B: }( p O, n - (DEFUN C:MP () (COMMAND "MOVE" "P"))& Q" F! N! |& A6 b( G9 f
6 M! W, D+ E! i6 l U, X- (defun c:mee (/ a)
5 u7 n( t8 o3 X/ R' G" E - (setq a (ssget))(command "move"a"""end"pause"end"))4 y( ^# r1 K4 H" r7 u9 s% S" r
- (defun c:mc (/ a)' j2 X# \/ I9 E# ?0 h
- (setq a (ssget))(command "move"a"""cen"pause"cen")): T& V% R6 T& J. \
- (defun c:cc (/ a)& @+ O4 `2 M2 ]9 A
- (setq a (ssget))(command "copy"a"""m"))
/ F) q7 r8 c G& ` - (defun c:ce (/ a)
& o7 i) _3 T% D7 n$ [" |) }7 n - (setq a (ssget))(command "copy"a"""m""end"pause"end"))
) W! q/ k- {: }5 V+ P: V4 t - (defun c:cn (/ a)
1 Q9 K5 P6 {3 l, t - (setq a (ssget))(command "copy"a"""m""cen"pause"cen"))
/ g- `/ T7 B: d# @' [6 u - (defun c:tl ()(command "trim""l"""))" B4 m$ a: `' l: x, F* H; Y
- (defun c:tf (/ a)1 v2 y/ c! y, Q. A8 {! H! I
- (setq a (ssget))(command "trim"a"""f"))1 @9 O4 L5 y5 C% }0 D
- (defun c:el ()(command "extend""l"""))& C& a3 z1 c \& E) L1 o
- (defun c:ef (/ a)
* B/ a7 s. o' x; w4 j - (setq a (ssget))(command "extend"a"""f")): f6 W9 {8 a8 h. D
$ w9 {- \/ k- C2 P- u* x; ]9 ^- ( Q1 ~4 r1 ?8 N6 A+ H
- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110"))
/ r0 k0 m3 r( e8 r8 g - (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))
\# e* v4 k1 s! K2 l9 g2 s - (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330"))
2 r0 g. E+ ?0 ]# N, c1 d; J - (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))
" }' _. H/ R# t( } - (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55"))8 Q0 @+ i$ i/ f
- (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600"))7 Q. R6 v1 [0 S0 A" e# u% G6 S8 M
- (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700")), p6 M" ~$ Y! T+ K3 F- ^$ u6 d3 ]* D
- (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))
. W, @* {- J/ O+ \ - (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))
2 r) Q3 x! _! r3 F, O - (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))
+ L- @5 s7 X" A' f - (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))
) W0 ]9 m6 ?0 ~- Z4 ?9 d' ]6 V - (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))
8 t3 ?& I) V, ?* ^8 \- N; ~. D - (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))
) ]! o: O0 q- P, |& z - (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000")), k0 j+ z0 S; M" v+ Y( f" z( s" C+ `- Q
- (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))
( d8 V$ O7 n' } - (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))& h6 c7 L4 D, L) D
- (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000"))6 O6 W: K2 q t) z B
- ; I6 G& }8 e$ c6 ]
- (defun c:mla () (command "-mledit""av"))$ k; r2 q/ h1 L. ]5 K* M! p
- (defun c:mlc () (command "-mledit""mc"))
. O4 Q- m7 t, Y! y* K3 l* F9 H" R+ W - (defun c:mld () (command "-mledit""dv"))
$ g8 q6 p1 E& b" b6 k - (defun c:mle () (command "mline""end"pause"end"))+ Y- s; s2 B, a
- (defun c:mli () (command "-mledit""ca""int"pause"int"))
; L: V* N: D* G8 { - (defun c:mlj () (command "-mledit""cj"))
8 c; |" W1 ^6 t - (defun c:mlt () (command "-mledit""mt"))
1 k4 h* L+ p- w( ^2 _) L; y/ H; K - (defun c:mlk () (command "-mledit""ca""end"pause"end"))
' [' o6 S ~) E+ Z% ~1 b; F - (defun c:mlw () (command "-mledit""wa"))
# R6 E( R* p" L }8 x
4 W$ u, K0 Q& O2 p7 w- b o( x- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA"))
7 V2 \+ [% H4 h w. u - (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA"))
4 C) c/ v; U/ r1 i3 i - (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO"))6 _ |: F. N6 E5 Y# H/ L2 ~9 x
- (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D"))
/ S/ I C. u5 M8 x$ Y8 J - (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z")): y6 z7 @/ ?5 n, _' n, ?
* d( |6 Z( e! S) M! p3 W& _( u& k' y- (defun c:p0 () (command "pline""""w""0""0"))% t2 i& {2 _1 C/ M) _& A
- (defun c:ot () (command "offset""t"))
! A; ^; i% D1 x' v$ F# u - (defun c:t () (command "mtext"pause"j""bl""h"pause))
@4 Z; J. p2 m - (defun c:uo () (command "ucs""ob"pause))) {: b& h) \' e! }; p( X
- (defun c:f0 () (command "fillet""r""0")) e! N& e5 R; |' U* c
- (defun c:fr () (command "fillet""r"))
3 X, ~4 ~) e, G* g' I/ U - 1 v1 m9 M8 K0 y7 L
- ;CHAMFER
- C5 x7 Y% M4 G+ k - (defun c:cf () (command "chamfer"))3 \- L( o: `/ s1 \. X
- (defun c:cfd () (command "chamfer" "d"))
* v/ b' x$ p0 G& `( o - (defun c:cf0 () (command "chamfer" "d" "0" ""))2 j9 Y( g( c% A! V3 ~7 n
: c1 k0 `5 K# b+ v- ;FILLET* j. q% P) h; `% @
- (defun c:f () (command "fillet"))
& I/ k4 g- a4 z" I* G/ {' K - (defun c:fr () (command "fillet" "r")) V9 H$ |, d! d( [" {+ [( j
- (defun c:f0 () (command "fillet" "r" "0"))
9 I- j$ e; x0 Y8 b2 U! I2 d
- p ?+ K" o! t: J! [6 J+ l- (defun c:OO () (command "oops"))
( x, V; a1 W' z - (defun c:dln () (command "dimlinear"))
4 {+ c, N' J$ Y8 T - (defun c:dan () (command "dimaligned"))
+ L E0 W/ W1 ]1 Z4 x - (defun c:ddc () (command "dimcontinue"))
+ V6 ^; q# A! ^: _ - x! I3 t+ k% m2 B" o0 D; t
- (defun c:sc () (command "scale" "auto"))
& ~* J" \. e9 k* e2 q1 O+ P - (DEFUN C:XO () (COMMAND "snapang"))' \) P# n- w! T$ G
- (defun c:cc (/ a)$ ?0 P5 S9 F$ f
- (setq a (ssget))(command "copy"a"""m"))* F! W# N- k2 s! z N. R
& i9 q2 D5 b- l K7 T! m- (defun c:PJ (/ a)- t. J$ X* Y3 x5 k( t
- (setq a (ssget))(command "pedit"a"""j""all""y"))
: e$ L; f- u/ ?3 g/ a# |6 @$ s - (defun c:JJ (/ a)
0 N$ x6 e" m6 w) y# P8 J - (setq a (ssget))(command "pedit"a"""j""y"))! [$ H( `: d T' p1 k* o
- (defun c:TN (/ a)
9 c7 s0 Y; _3 b0 `) c6 y5 r1 A - (setq a (ssget))(command "change"a"""p""T"))
& O8 K3 Q! e) H( }& `3 f* p
9 o1 |) M1 \$ h) R- * X1 ?+ K% p: c8 ~# @
- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD=========================9 A( t* P* O/ T8 H( `
' i# F6 c0 q$ s: O- (defun C:IB ()(setvar"cmdecho"1)
: o8 q2 R( n( H+ A) w; E% z- H - (setq pt(cadr(entsel"\nSelect Block:")))
/ P i5 Q# a0 a7 M! `3 \& d" p - (setq e1(ssget pt))
1 G5 ^2 E9 m' ?' h: t C - (setq e2 (entget (ssname e1 0)))
/ q8 z+ k7 V6 a- c - (setq blname (cdr(assoc 2 e2)))
/ J9 @- K9 S6 j6 \ - (setq oer *error* *error* err2)(command ".insert" blname))+ R# t$ Y8 [& Z6 L
- + J8 Q+ d b; `1 L" K
- (defun c:II ()
& z: F( }" X% q3 [ - (setvar "cmdecho" 0); t1 ^( ^3 W W0 u& |" z9 v
- (setq olderr *error* *error* myerror)
5 h* D6 d; S/ Q6 V0 h - (prompt "\nSelect objects: ")7 ^$ m% _6 d- b2 d) y: `9 p
- (command "select" "au" pause)
) A) t: I; }9 d0 H; _* m( t- B - (setq sstxt (ssget "p")
9 V% c( D1 v, W4 \ - sslen (sslength sstxt)
1 V2 q+ o# y) j/ K @ - ctr 0
$ ^7 r; K O% I7 a: m - )( f! B S ~% O8 l' k! I
- (command ".undo" "mark")
0 K( a5 S7 t6 X1 T& k - (while (< ctr sslen)
# O( e3 v5 c' A9 o, H9 M. \ - (setq listxt (entget (ssname sstxt ctr))
' I# h5 |% B( G% S( |1 w/ f; i - txttxt (cdr (assoc 1 listxt))
! I$ S% ]! @1 Q5 b1 g - enttxt (cdr (assoc 0 listxt))" v/ e& u* X/ V* a! n( F3 C% Q
- )/ z8 ~+ k$ _( K9 w
- (if (= enttxt "TEXT")
/ M* i2 a( {8 \6 D% A2 w, ]" S0 S - (progn
$ x' p; ~$ r; ?) T! F/ `) U! E - (setq testxt (substr txttxt 1 3))
& A$ E- w% W, ] - (if (or (= testxt "%%C") (= testxt "%%C"))
+ F2 g. M/ ^+ T7 Z5 u) j - (setq newtxt (substr txttxt 4)) Q5 J* Y! f# [9 M0 {' M5 v( R
- (setq newtxt (strcat "%%C" txttxt))
! [& W" u4 R, } f% p - )& a* |- X" m J9 u4 W; ?1 s" W4 _
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
( y( t: r- Y) M$ Y1 y( _ - (entmod listxt)4 M) y$ s# D- ]
- )
; [" a% Y' g% D. D7 l$ R - )0 Z7 c( _2 Q8 V6 z2 b1 B
- (setq ctr (1+ ctr))
# ?6 F( E! T9 u* ~! H% s/ w8 F" j - )1 ?$ R. I4 q+ ~, H6 S* C
- (setq *error* olderr)1 a: C9 d x& {
- (setvar "cmdecho" 1)
- e: w8 |2 o3 j5 C2 F - (princ)
0 P/ Y3 B% [( U1 @' W n - )
6 f/ [2 P, o9 b8 K
, G# V" w9 [- T6 e$ X$ `0 n- (defun c:DG ()7 l8 G) ^6 ~5 P! j2 T
- (setvar "cmdecho" 0)% j5 Q4 }- N f9 E) K r V
- (setq olderr *error* *error* myerror)8 p! O( C& i) A$ T# V9 O
- (prompt "\nSelect objects: ")- z9 ?- U* U; I" e
- (command "select" "au" pause)5 }/ w+ A" l5 Q1 h) E$ K
- (setq sstxt (ssget "p")
6 C; w* @4 k% H: s4 }' a - sslen (sslength sstxt)$ g8 j/ e6 b( K
- ctr 0
' M5 R% n3 w. y3 `) j7 W+ n - )
( k% e; x" N8 Q5 p4 q- [5 P1 C) g - (command ".undo" "mark"); ]& o% F& c% ]( |: K/ D' k
- (while (< ctr sslen)
5 U0 }1 g6 N2 @) x - (setq listxt (entget (ssname sstxt ctr))
+ _% D. o7 l% d$ c6 S0 e - txttxt (cdr (assoc 1 listxt))5 @- f; J3 S' ^& X9 [
- enttxt (cdr (assoc 0 listxt))
+ `4 t; d4 a6 L9 [ - )
' b: L9 t* _- f% v/ m - (if (= enttxt "TEXT")$ U0 g: R; H: _/ r. f
- (progn8 G [: r2 P, b& u! k% r8 W
- (setq testxt (substr txttxt 1 3))
& H: \! u# ~) u- Z( i - (if (or (= testxt "%%d") (= testxt "%%d"))3 ^9 c, g. V6 r9 r# ^
- (setq newtxt (substr txttxt 4))2 c* c9 G3 a* d; {6 b
- (setq newtxt (strcat txttxt "%%dC" ))
. S' \4 S( H/ F. o) V$ ]0 Y - )
5 E- b" H' K9 W% x# i - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))( c! v# R4 y- s" W0 x0 i* u' X
- (entmod listxt)
+ H7 W0 c ^* a, L8 \' o m( [ - )* _3 Z1 d8 s9 }& J9 I
- )
% W3 W9 O7 u7 i" p/ [/ C - (setq ctr (1+ ctr))3 C+ x4 c, e+ M+ ^! D
- )+ A4 s+ c% W' U9 J1 Y$ ~
- (setq *error* olderr)
/ W( a# @+ D# X) e8 l' }: P - (setvar "cmdecho" 1)
! t) }2 C- e: [$ X8 ] - (princ)
: _/ ?: Z+ G( u - )7 b4 |" z& q- P: S6 c
0 Z% R7 B a4 c8 U: b7 W3 Q/ z- (defun c:PI (), ]& S) u8 v1 r! x5 k y2 r
- (setvar "cmdecho" 0)/ d1 g% f% I( V" Q7 V) x
- (setq olderr *error* *error* myerror)3 Y% V' T7 ]- S$ z) I' L
- (prompt "\nSelect objects: "): A7 S' @) m- k. V W/ y
- (command "select" "au" pause)
8 ]+ y4 M6 e) n3 \; [, O i - (setq sstxt (ssget "p")
3 J: Z8 a) D- w* s; U. B. g o4 C - sslen (sslength sstxt)
% l. b& R* Y+ ]+ w8 {! S# Y( K3 x6 w- j - ctr 0
9 L% |* R" S6 V: n - )
' \9 }& t4 l" z, \1 u5 o( m - (command ".undo" "mark")& n8 g- Q3 M4 h0 d+ i2 S
- (while (< ctr sslen); D$ _" j6 N* [; n- |
- (setq listxt (entget (ssname sstxt ctr))3 }4 _5 m4 |4 t) q: E: b7 E7 q: ~
- txttxt (cdr (assoc 1 listxt))
$ L Z$ x( ^9 j9 h8 Y c- [% [ - enttxt (cdr (assoc 0 listxt))4 Y& ~8 z" J! `/ J
- )+ G& E" a: `8 X9 A N) f4 A5 x1 ?' e
- (if (= enttxt "TEXT"). ^+ a* c# `, |0 ~: x7 I% `$ r
- (progn
% x3 k- w* r7 p. f4 k - (setq testxt (substr txttxt 1 3))+ y; j- m" t$ w
- (if (or (= testxt "%%p") (= testxt "%%p"))9 G! _! ^9 \! R5 [" \. P. A
- (setq newtxt (substr txttxt 4))8 |3 _/ j7 i' z: p
- (setq newtxt (strcat "%%p" txttxt))
7 n, r$ T& a5 B; ]7 ] - )! _# C1 q5 h8 b% K' Z2 @- M5 ~7 P
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
& P, t: Y( v/ j* D/ H - (entmod listxt)$ `7 s2 L- g8 P5 g
- )
1 g7 r8 a4 d! ^5 ?4 h0 W D* T - )
9 F& k' x; G' J T u! Q2 v - (setq ctr (1+ ctr)) T. B8 [' W: }3 Z8 Y% v4 K, T& p
- )$ V: _, g3 I( o8 [) s8 E. q
- (setq *error* olderr)8 s+ o/ W; u6 Y ]) H
- (setvar "cmdecho" 1)4 B; K" q$ C( R. J8 Y+ K
- (princ); h. C Z, F2 U x3 B
- )+ ] z* ^& E. P0 c
/ r: w# W8 C8 q7 V- (Defun c:CB (/ a)6 q: u" I% w1 y$ V/ ~* O
- (setq olderr *error* *error* myerror)" q% b% }) `2 x4 q l9 \5 Q; T0 |
- (setq ocmd (getvar "cmdecho")); k2 l& a S; X; L
- (setq oblp (getvar "blipmode"))
0 E6 v+ X0 S% | - (setvar "cmdecho" 0)' x* G# ?/ Y$ t4 e9 u
- (setq a (ssget))5 [9 }( G: A. G p
- (command "CHPROP" a "" "C" "bylayer" "")* P- f, m+ J, I0 ^
- (setvar "cmdecho" ocmd)
E" w6 ?' E3 P) H$ r - (setvar "blipmode" oblp)) J6 ^$ j! C% b" q7 f
- (setq *error* olderr)# E& k0 I9 y' y# J; l* y
- (princ); n8 `! n; M( E, ^/ N) m
- )& j$ G) Z1 ]. Y& }" P; ?2 R
5 ~: Y7 y0 ?5 a, V9 G, I* @+ Y% \& V- (defun c:LCC (/ co43 obj23 la23)
, x3 k8 ]/ R6 V5 o7 v3 g - (setvar "cmdecho" 0)
& Y0 ]; x5 Z6 I! ?; c1 v% Z - (setq co43 (getstring "\nNew color : ")): `# K6 ~' _+ p/ J4 b# Y5 s$ c
- (setq obj23 (car (entsel "\nPick object on desired layer: ")))
" H0 D4 h$ j5 M# s - (if obj23 (progn* P; ~% a" R) |
- (setq obj23 (entget obj23))
% K" N, H9 U1 p, x4 u - (setq la23 (cdr (assoc 8 obj23)))
- q, I# L4 A! D7 N O - (command "layer" "c" co43 la23 "")
6 _! [( R9 P7 n) K0 D - )9 T8 I6 ]0 |9 B/ r. G o
- )
8 r) x. k4 G( z# V0 A - (prompt (strcat "\nLayer has changed..." la23))$ I" G+ j; V+ W
- (setvar "cmdecho" 1)
+ g1 |6 Z9 z* ]/ X) r/ J4 B1 V - (princ)
5 H. C' }, y5 M" J9 H - )
9 [) e# ?! z- Z/ C: h - 5 |0 h( ?; F! J3 o. h5 c+ @
- (Defun c:RP (/ a)0 ^0 P* V }! r* ?; w. M% J. N
- (setq olderr *error* *error* myerror)% V9 C7 G k) O& N( Y$ U3 u
- (setq ocmd (getvar "cmdecho"))" |3 V3 r7 m J4 t5 z
- (setq oblp (getvar "blipmode"))
7 [% i1 ]9 i4 i# T3 H6 { - (setvar "cmdecho" 0)
G+ \. D2 |2 ~7 o, ]( l - (prompt (strcat "\nUSE: Delete object(s) belonging to"7 G1 E# S7 ] o8 S/ Z& A" m2 V1 D5 G
- " the layer of the entity picked...!"))8 t6 }7 u( b1 j
- (setq a (entsel "\nPick the entity with the desired layer to delete: "))3 Q/ s- _4 b9 g( C x: R4 L: q
- (if (/= a nil)
( W8 s4 Z2 x, ]9 o- L - (progn (setq a (cdr (assoc 8 (entget (car a )))))
8 P: Q5 M6 C2 N) ]9 [' d - (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))
" \' {# a H+ O - (prompt "\nNo entity selected!"))
; M' y+ }6 I5 M6 k4 j* s - (setvar "cmdecho" ocmd)
5 G+ T4 Q+ j2 n1 }/ s# s - (setvar "blipmode" oblp)
8 [( X1 e) t7 G% B6 ~/ d" ]2 K7 |" Z - (setq *error* olderr)
( ^/ C9 }2 M3 ?+ D! M1 [$ j- _. V: Q - (princ)
$ V: C4 |& ]5 p% b7 h4 _ - )0 {4 A- h' D: t
$ U0 L E2 z7 [7 F- (DEFUN C:WL(/ SSET NET SSL M)
- O/ S, Y. y# I3 B - (PRINC "\nSelect lines :")
- y+ ?+ l- v+ L- G - (SETQ SSET (SSGET))2 p" F! E* Y: `+ A2 U+ t! b
- (IF (/= NIL SSET) (PROGN
) L5 F3 W; @+ {) H. [ - (SETQ SSL (SSLENGTH SSET))) _/ `; L3 i$ n y4 m
- (INITGET 4)* \+ _4 e* U8 A9 L8 H* E
- (SETQ NET (GETREAL "New width : "))
! ~1 U, ~( k. _! n& Y+ D- T* p$ a - (IF (/= NIL NET)
5 C0 k/ ~) d' K7 B! t* f - (WHILE (> SSL 0)
& d& a$ _0 G1 W( D, J5 U, S - (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))
8 D* y p. f' t3 |1 y - (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE")
& R6 b/ A' P- h: s7 u7 U; n - (COMMAND "PEDIT" M "Y" "W" NET "") / W' U) k! n: k4 L! }$ X0 z
- )
8 l: b+ T, R# u; q$ j$ p - )
1 l/ u0 f3 o, A9 N6 P8 V S( O. G - )))
' J; Q) Z) m# T5 a( _ - (PRINC), S0 F/ f# ]% R
- )! _# N' z! M0 m$ l: p8 i
0 {2 V. U" x! |& h2 B. v- (defun C:MML () t2 Q$ p4 J+ ?+ [7 D7 z9 L5 J5 ^
- (princ "\nSelect objects to move to another Layer.")" a0 B+ {* H8 W6 j J" k
- (setq ss (ssget))
5 L2 y7 M- t( X! n5 n - (SETQ UL1(GETSTRING "\nLayer to move entities to : "))
3 T( a" m* \/ q: s1 I* c6 i; A - (setq counter 0)( a2 o- M) [6 }3 a. C5 D3 N
- (prompt "Moving to layer.....")(princ ul1)
6 R1 Q. D( d3 ]$ U# j - (setq e (ssname ss counter))/ R$ Y; ?+ L0 y- Z- T
- (setq l (cdr (assoc 8 (entget e))))7 L% `+ j7 @' _6 Z+ ?9 m/ u* A
- (setq S (ssget "X" (list (cons 8 l))))
: F* s) o: @% s9 @: Q: e - (command "CHANGE" ss "" "P" "LA" UL1 "")
. `: T4 p3 u! k7 c - (setq counter (+ counter 1))
. ^( y9 j/ F7 D5 L2 j7 J. A) | - (princ)
* M! _/ V! |0 V# S - )
# `5 z9 R; i. Q& O& r. `- B0 c - + E5 W9 Z; {# ^; ^ P
- ;;; ================================ GHI CHU ============================: h# p5 w# ?0 c
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========& F; |" f6 w; \/ x" Z- S* {
- ;;; =======================Thuong Dung Font Romant.vnh===================
2 F" w8 o. c2 C! D
% R* W/ ~& _$ r0 k- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)# h9 N3 I& X0 k$ R2 e4 X% S4 K& s
- (setq oer *error* *error* err2)
. W4 Q& U7 q- z; o - (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")* u: E& G; ?3 N3 R# ^: M
- (SETQ Cpt(GETSTRING "\n (ROMANT-vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (UNKNOWN-font)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))
2 \* `, I. {5 p6 S4 D - (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p"))
5 K. X. A+ n/ M6 V# c. I - (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh"))
, Y5 C& r$ V+ S$ j - (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p"))3 }9 u" U+ F, \( |0 {9 t) _
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c"))
0 h/ p: B: ~3 x5 B2 o' A - (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?"))
; k; W. [4 R# W/ c* Q - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An"))
; d, }' s% L6 w. ~ - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho")) J9 h6 z3 T& d; w
- (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`"))/ E" o! Y, N( g2 ]% V
7 ]7 \6 g# V2 ^- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
/ }; z7 ]6 P! u7 S% l u - (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
$ _& c7 u& f" n - (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
! I) U% c% K y7 L$ F7 {+ ]# t; ^ - (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))( x# | i- n- K$ Z g! l5 \0 o
- (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
! [7 z6 c$ U* j* ^% j8 ` - (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))* F1 c' |% A$ y! ?$ }
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))/ V! B9 H* r. C: J. ^) V
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
6 G5 P. J {. ~. n) s8 X -
$ _+ ]6 b6 f- v! a" b. C - (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))
" b) o- c) B h9 P: U9 ] - (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))' K5 q$ {( ~# y$ @, t# N
- (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP")). W H; Q$ h8 w6 N/ a6 `/ I* P
- (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))+ z% z' P1 d5 l
- (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R")), Y9 w* F9 ~* H& m1 S* \
- (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))6 T* c, O' {8 c- X& |
- (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))5 f+ Z3 X( q9 b; ` b0 q, N
- (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))
1 w6 g6 W- x3 \0 t( h5 z+ D - (setq pta (getpoint
/ \4 j5 n* G1 ]% }, C - "\nPick first corner. : "))4 l% C( \! Q, E6 b* [/ g. i7 _ n7 \2 R
- (setq ptb (getcorner pta0 ~5 d2 }1 o6 ^5 ^4 W! } J$ u; r
- "\nPick second corner. : "))' \! B. F# p' {9 z& Z1 ~3 R
- (setq ptc (list (car ptb)(cadr pta)))5 u, w( E V% k2 a$ Z. K: o1 u
- (setq ptd (list (car pta)(cadr ptb))) Y7 [+ }2 b e8 Z w8 Z' r
- (setq ang (angle pta ptb))8 m$ R3 j' E7 U% M5 \7 d2 ^' l
- (setq d1 (/(distance pta ptb) 2)): A( P3 w7 Z. }, E+ D2 H
- (setq cp (polar pta (- ang (dtr 0)) d1))% s0 X R' y Z$ \
- (setq X (distance pta ptc)) E# p" n8 T1 L
- (setq Y (distance pta ptd))
5 k, U- M: e& V) b - (setq X1 (rtos x 2 1))
( \1 V) ^7 c8 @ j a$ _8 {$ { - (setq Y1 (rtos y 2 1))0 y5 G/ o! w) @. R) G
- (setq rmsz (strcat "(" X1 " x " Y1 ")")); [6 Z& _0 H3 u' y5 I7 ]
- (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))" G' Y) w$ e5 B+ ]% X6 E
- (defun dtr (angg)
0 g! m9 I3 U L- t5 G - (* pi (/ angg 180.0)))
2 q s$ \' b( z# t5 O
# G2 t) @& Q& x) U0 X1 @- (defun c:WS (/ pta ptb rmsz pl1)
' r: A$ p% ~% _, r ?- y. j1 G - (setq oer *error* *error* err2)+ A& V# \7 K) t
- (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P).")
( B8 Z5 G8 R# p, B$ e - (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))2 f5 b" ]0 j7 i7 n6 H
1 T4 D: d8 b8 E2 U- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))
. N+ `# b0 [1 w - (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))
: ]' l" ]9 j. X, [ - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))
2 v9 }/ g% V' l; J3 ], H0 x - (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))
5 m6 T8 b0 h p) ^$ Y8 N - (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))7 Y$ q7 u# G; Z! b
- (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))
, }( \5 f; _% Q }- q - (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))
# p$ W% f3 p4 l2 A - . e+ H2 B+ j* ~
- (IF(OR(= Cpt "L")(= cpt "l"))(SETQ CPT '"MA/W/JT BA/W/FNG TA/M/FNG 1 : TI/R LE/M/J - 1:100"))% s2 ~& S" N6 D8 N5 W% r
- (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100"))
( T [) Q \3 {6 ]' W' j - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))* s: M3 f6 ^* R
- (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))
- W2 |1 Q: a9 P9 ~# M7 M - (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))1 p* p' v7 V$ l8 N7 P
- (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"))
/ t$ p; ^ o- g2 s t2 K - (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN")), ^9 T! A! S+ a! }% F
- (setq pta (getpoint( ~$ r$ ^* T8 o {3 U
- "\nPick first corner. : "))
/ s3 g# }; L6 U+ t - (setq ptb (getcorner pta* z$ D$ r/ P; q: v9 T" b, X5 K
- "\nPick second corner. : "))
/ Y, A% _/ u$ |, Z - (setq ptc (list (car ptb)(cadr pta)))/ E5 A& R( i& T0 h3 d5 v
- (setq ptd (list (car pta)(cadr ptb)))9 x% f& c/ P3 T- N2 `
- (setq ang (angle pta ptb))4 v0 `' A5 C: J& E
- (setq d1 (/(distance pta ptb) 2))
+ V' b0 Z7 m3 k2 L2 }* | - (setq cp (polar pta (- ang (dtr 0)) d1))
5 T1 c5 j) k, Z* M1 u& h& Z - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
% |7 J- ~$ ^' E5 r - (defun dtr (angg)
; k. h9 _, p6 ^6 B - (* pi (/ angg 180.0)))( e# O; D2 q- i7 H& J
- 4 l% q8 g( f D2 D& ~1 b
- ;;; ================================ GHI CHU ============================
2 ?1 ^) Y1 _. i, s. j0 r - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
4 M% ?- X' v% f" u: r. m' _ - ;;; =======================Thuong Dung Font Romant.vnh===================
- Z1 `" b/ Z" P# n/ v. R& ]
0 L, F+ A3 j$ j- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)( C$ _8 K" e5 S6 j9 v9 o1 O+ ]
- (setq oer *error* *error* err2)9 U }; H4 t# }5 r# r
- (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. ")+ g, G9 Z* H. j+ o% Y
- (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))7 y# T, N: |! F& S
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p"))
: F6 ]/ e& i" G - (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))
* v. u$ y+ d9 d% t& J y - (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p")), g/ c. j* l! O
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c"))3 c- x" k) L# l- h/ b/ a
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))
0 w, A( {4 v6 J3 Y - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An"))/ U/ h/ Y+ ? \$ |8 U* |' Y; q
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho")), D U) @- E$ b1 f- u4 y
- (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?")), S" q! D# y% A0 Q$ q/ I) ]- t; Q
- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp")) t; H+ P) o) }2 t5 m' ^) Z! t& }5 q
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh")). M9 Y4 ~$ n: }, E0 i5 o2 g
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))' d4 `! I( ], s' \
- (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc"))
1 K# ^- y; L% j! g1 b - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))( ^7 O' C$ C/ u% c: K5 w
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n")); a- h4 a5 ~/ M& i# v% @
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))4 |) a2 V2 x5 y! e
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
6 A) R& X2 q# O) a* E- t$ c - (setq pta (getpoint
$ y3 x3 f( F/ I - "\nPick first corner. : "))7 ]4 V6 r- p% w2 A" [) Q' T
- (setq ptb (getcorner pta% {2 y6 a4 x3 z3 s
- "\nPick second corner. : ")), D `6 a" O' [4 {- C- o
- (setq ptc (list (car ptb)(cadr pta)))
% H' f% `2 l0 q- b - (setq ptd (list (car pta)(cadr ptb))) R" S7 g* n$ P9 Z- F
- (setq ang (angle pta ptb))8 N* p' d: T; j8 Y# G: C& Q$ W
- (setq d1 (/(distance pta ptb) 2))" x8 R4 W2 E+ P. L. |# O8 l0 H
- (setq cp (polar pta (- ang (dtr 0)) d1))
; C+ h" Z* Y; z2 v - (setq X (distance pta ptc)). s5 F" `0 y/ ^( M4 m
- (setq Y (distance pta ptd))' I. B( \9 o2 H& v4 C
- (setq X1 (rtos x 2 1))
9 _$ D! X! G& w9 K - (setq Y1 (rtos y 2 1))
9 V6 _4 Z+ p, ]6 Y9 j& a1 Q - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
- @' D5 u3 w0 p3 w) e - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))4 w7 @' X1 x, F" U2 G% t9 ^
- (defun dtr (angg)0 e% m2 ~/ q1 o8 ]" E. M
- (* pi (/ angg 180.0)))
$ K( u& J& X# Z% A! U8 h. I" Y
; X' j2 d6 u3 n3 |1 Z: J6 R- ;;; ================================ GHI CHU ============================
& D5 K. ^( q# b/ f% l4 J - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========# z7 D4 w. D5 \: ^; @& ]
- ;;; =======================Thuong Dung Font Romant.vnh===================
+ Z- H" a$ h5 d% Y3 ^. H; B - & o, {' d0 V1 F2 l- }6 l/ f
- (defun c:GS (/ a b c d)
% [1 T$ k% C6 g B. r8 U5 K - (graphscr)+ Z2 ^# z0 |0 c0 W- c% B" h
- (prompt "\nSelect text to set style....")
* }- Z. k$ Q2 h- z* v" {& x - (setq a (entsel))
2 m) l5 D n4 k8 c3 z% ^8 Z - (setq b (entget (car a)))
# N' u q3 ~5 j7 Z1 p( O" |4 L - (setq c (cdr (assoc 7 b)))
8 p! w0 ~5 ~ U7 C7 b - (setq d (cdr (assoc 40 b)))
/ k9 l) A7 t& P( P c - (command "style" c "" d "" "" "" ""))/ ~1 N* p E2 z. C# r% G
- (princ "\nType GS to set text style.")0 F1 z8 X b& |% \7 b# l
- ! J6 G7 P+ y6 m
- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)
3 B: @- S8 j6 c2 t7 ? - (setq olderr *error* *error* myerror)' @5 t+ F m7 Z0 F# i2 }& A. ~8 |
- (setq ocmd (getvar "cmdecho"))1 z3 j7 L$ [* D( b8 a
- (setq oblp (getvar "blipmode"))
* h3 M+ }) [, z3 X% f: ` - (setvar "cmdecho" 0)5 o( |* B& h) A* X4 t
- (initget 1) ;3D point can't be null I) m: u7 X6 Q4 L; l8 G
- (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))
( O- L# @. \ I0 l M - (setvar "ORTHOMODE" 1)
8 ]1 e( G! ?% e. V5 b - (initget 7) ;Length can't be 0, neg, or null
/ p# a) c5 {8 n; V( _) t5 m - (Setq l (getdist pt1 "\nLength: "))$ U4 v/ C) U1 e
- (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))
' K2 G/ V9 G' W/ G7 [; L; w6 n& w' z - (grdraw pt1 pt2 2)
6 d3 k* \+ N* s/ w8 g - (initget 7 "Square") ;Width can't be 0, neg, or null
3 Q) t% F6 ?8 t( |. ^+ A - (setq w (getdist pt1 "\nSquare/<Width>: "))6 ?4 |$ o1 V' H2 b% P7 e- N
- (if (= w "Square")
- ?) r8 H0 N* y. O& r# r - (setq w l)1 [4 }; H ?# a' c( K( M
- )- C5 d5 J+ N/ S- I/ e# F6 n$ b
- (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))
, s' t' a) W* A - (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))6 O$ E3 M- @* T
- (grdraw pt2 pt3 2)
8 P* i1 y( Y# j- X" b - (grdraw pt3 pt4 2)9 U/ h, L. j u7 s# n4 {
- (grdraw pt4 pt1 2)& o" Q8 e6 n+ ?7 P% J$ E0 D* L
- (setvar "ORTHOMODE" 0)
' M9 L9 P6 {6 C( ^0 G+ F - (command "pline" pt1 pt2 pt3 pt4 "close")
- S0 N+ o/ ~2 S* q - (setvar "cmdecho" ocmd): K6 C: Q0 }4 x; ~7 q# k
- (setvar "blipmode" oblp)
2 v# U3 S2 ?" s) D5 l - (setq *error* olderr) ; Restore old *error* handler
: m5 X! ~+ G3 c; L - (princ)7 L/ d: i7 T# e; c
- )( C) j' _7 M0 t% E
7 P0 g4 \/ j- l) `; D2 [. f% ?- (defun c:SG (/ ent pt1 pt2 ang)1 w' h5 r% `, n' F- P% a
- (setq cmd (getvar "cmdecho"))
$ X" \- L2 \, T0 [# q - (setvar "cmdecho" 1)
& W: P' {9 \9 o7 D4 p5 k4 z# T - (prompt (strcat"\nSnap angle will be set to angle of line"))% Y8 ]9 e9 T7 I) W
- (setq ent (entget (car (entsel))))
! w% v; n1 }. G( A# U1 X - (setq pt1 (cdr (assoc 10 ent)))/ {( t" E* K- C" L
- (setq pt2 (cdr (assoc 11 ent)))
7 t" z, c% }) v0 A( ~9 b8 k) V - (setq ang (angle pt1 pt2))
2 n0 U3 _) J' N0 c1 Q/ |+ O - (setq ang (/ (* ang 180.0) pi))
- C4 m8 e5 v4 v/ |/ O0 t - (setvar "cmdecho" 0)$ \5 Y& T/ N" ?5 v! ^5 L
- (command "setvar" "snapang" ang)
- L# }' l/ G! A3 V* E - (setvar "cmdecho" cmd)9 b: X: c- p: Z% i% b0 T0 [1 D4 M
- )6 b6 ^6 a7 H+ l4 ]4 j: k
9 U' }8 d( j" i* l0 V2 R, q( g# }- (defun C:TG ()) X B8 O! a( N
- (initget "Increase New")7 _# Q0 e0 \: c6 `) u! t- O8 k- P% F* Y e
- (setq ans (getkword "Increase/<New>: "))
1 }7 M3 O6 o8 ?' U, G - (modang)# P$ P; X( N6 Z4 B: p
- )5 ] n' e- d9 {6 a$ Y+ K
- (defun modang (/ ang ss ca e na ssl)
- M& \, ]% L6 ` j - (if (= ans "Increase")
7 l6 d0 y# l& [/ F: e - (princ "\nIncrease angle for text by: ")0 b% r6 b! _$ C$ K# U3 C
- (princ "\nNew angle for text: ")
2 D! ~1 A- @( F2 @ - )1 R! m6 e6 x. J, P
- (setq ang (getreal))
$ T; Q1 r! d" [7 n$ e - (setq ang (* (/ ang 180) pi))& Z; y) I: D8 X2 \2 @. `
- (setq ss (ssget))" q3 i9 H" M8 C& W4 Y, I# Z& R3 y
- (setq ca 0 ssl (sslength ss))( Z1 r' ?2 U; |' C$ A. v
- (while (< ca ssl)
/ @# a. x J( h7 a& v r8 B - (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))
( E( ^( m2 [& Z# X# Q" R6 a. @ - (progn t$ w6 n! N& R& R. d/ P# {9 K5 C
- (if (= ans "Increase")0 h- H/ c' C! Q# E
- (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))8 s3 d9 d0 K- e7 X) Q" p
- (setq na (cons 50 ang)). {2 m2 w& L; d$ e& Y& ?2 W- z
- )
/ A9 `4 Z" G+ `9 e2 U v5 | - (setq e (subst na (assoc 50 e) e))
2 I, x4 s; c) _9 `6 n% `( Z% s - (entmod e)- t" X7 P s/ _. t
- (setq ca (1+ ca))
7 d: G A# }9 H, p1 { - )
# ]3 d: I$ K9 H. `6 \0 Z - )
7 G. U4 ^2 Q q" g$ y6 p! n, Y - )
" N/ P' I9 J( P - (terpri)
! v9 B! j2 v$ Q2 ~ - )1 O3 G4 B5 C- `, y% F
' T9 a6 h; A! J" F1 x! j: I
. Y. _3 r9 ~' x9 z; i; R- (defun c:WL ()4 s" d9 @0 {* V1 P0 H2 Z
- (setvar "cmdecho" 0)& f. h2 G& @3 ^% \
- (setq a 1)
$ V1 N7 D% ^( N8 F! V( l, j7 U9 q - (prompt "\nSelect Polylines to change: ")
5 Q% V. _) j* p2 N# w - (while (/= a nil)
4 q* N% Q$ e( g& h/ u# h - (progn
% N, T' d+ J3 E0 W3 b8 Y! B; z - (setq a (entsel))- K; M9 {3 K6 f
- (if (/= a nil)
6 l- q. h% I# f, c - (progn
2 B0 e9 S: K1 r1 q - (setq b (entget (car a))); [( h0 w7 a N2 |1 U& G ?/ t4 ~
- (setq c (cdr (assoc 40 b)))( F: X# }2 Z7 N0 v6 S
- (princ c)
0 i) W. ^' r) V$ h; ] - (command "pedit"a"w""lw""")' r1 z2 N y2 D- R/ w# x. ]; d4 \
- ))))
0 P( ]* ^" D& o$ ]* E: Z( ^ - (princ)
+ R3 A1 b5 D6 i; c; x - ). A; z a/ E, H q( h
- ^/ c; L8 r+ ?! B1 Y! ?- ;;; ================================ TEXT FIT ============================& E, T+ u( a1 W& G: ]) v
- 9 f/ j" x; ^0 d3 n Y2 r+ W4 _
- (Defun c:FT ( )/ o- c. p* }/ l1 x1 @1 f( z( q
- (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )
6 C0 \0 I& k U) L8 _4 }) w - (Defun LL-xyz (arg) (CAR (TextBox arg)) )( H. F2 b4 o5 Z/ u
- (Defun UR-x (arg) (CAADR (TextBox arg)) )5 V, _, J! }. k9 O/ l8 y* r
- (Defun LL-y (arg) (CADAR (TextBox arg)) )
+ d; R+ q+ @; e5 I$ A. h - (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )
6 o7 @9 x; o" b I: e- ]& O - (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )$ \* p3 t- ~' U3 S- n
- Textent (If ename (EntGet ename)) )
. N, m$ w+ c: K5 F - (If (= (CDR (Assoc 0 textent)) "TEXT"): k; u Q. N! D! m1 Y4 D3 h+ v& r- \
- (Progn (initget 0 "Start")
+ g4 ?4 V! ]5 [ - (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )
9 e e" x( k6 M* A$ {& M - (setsnapang Textent) ;set snap along text entity
8 Z3 b9 B1 `9 h0 V) l9 L& x - (setvar "ORTHOMODE" 1) ;drag along the text
$ B4 J2 ~' q6 @ - (setq
" O: O5 Y* M1 K' \ U6 o - TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") )
$ z) c8 ~ R9 |: k/ O - (setvar "snapang" 0)) e/ i9 v9 n' Y# W0 }( X
- (cond, P0 Z0 j! \4 M9 u6 P6 l$ `, l
- ((= (type TMP) 'STR) ;;new starting point to be selected& Y; I: P5 }9 r
- (setq Start (getpoint "\nPick new starting point: "))
! I8 a! R) F6 d - (if Start (progn
& G' L; K& w3 r5 ^+ b8 W z* l - (command "_UCS" "_E" (cdr (assoc -1 textent)))
% f- Y6 l: {4 f8 f! M0 Q, w - (setvar "ORTHOMODE" 1)$ h/ H1 H; ^# H1 _- M) V- w1 g
- (setq NewPt
; \# C# I8 a' m* P8 m0 X' J; h - (if Start8 C! L8 u& s+ M! O# D2 `" P/ a+ V
- (getpoint (trans Start 0 1) " ending point: ") nil ) )
+ M: R% v( h# A% H! U( m8 T( { - (if NewPt (setq NewPt (trans NewPt 1 0)))
6 }7 h. b0 v, N1 Y' h4 |" e - (setvar "ORTHOMODE" 0), {: A- ]6 B+ C" j& l
- (command "_UCS" "_W") ) ) )& W' s: a4 T8 u" S e1 w8 v' d
- ((not (null TMP)) ;;new ending point selected& j# ^' x0 A9 D
- (setq Start (cdr (assoc 10 Textent)) NewPt TMP) )
4 r! x7 M% A7 r, F+ I* X - (t (setq Start nil NewPt nil) ) )
# y2 a7 n% { Q& s5 H& a8 r - (if (and Start NewPt) (progn
1 J# |1 C0 }2 H4 _4 q: G1 w - (setq Val (Assoc 41 Textent) ;;current width factor
% ?9 ?! {# L. \ - Val (if Val (cdr Val) 1.0) LTC_%
5 e" w3 \" b7 I - (* (/ (Distance Start NewPt) NewEnd ) Val )& _; f5 g: s; q" t
- textent (Subst (cons 41 LTC_%)% b, i# K+ `; _4 H# \+ O* z
- (assoc 41 textent) textent)
8 @. ^6 Q! s: X" O, r" v; o# e - textent (subst (cons 10 Start) (assoc 10 textent) textent). p, ^$ {: [1 i% J [3 C
- textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )
9 o0 {$ I1 s6 r: u) W - (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))
. z0 w8 `0 {0 G' ^ @
4 B" u! b+ `7 v m! l' b% |8 [/ @- ;=====================================================================
# C k' V1 b" F& p- l% k - ;=========================COPY + ROTATE ==============================2 i* x0 |7 V2 p
- ;=====================================================================
. D9 o' A$ W1 n0 ?7 c/ I
! Y0 U3 c. f) N4 n- c0 B; a- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2) H) _% s$ Q! z& }, @
- (setq olderr *error*6 x, L# z& a) S; r1 a% n5 o
- *error* croerr)
4 j# v6 ^4 l5 w! t - (setq cm (getvar "cmdecho"))$ Q% o( E' Y& H! e" X+ H
- (setvar "cmdecho" 0)2 p8 {" J1 Y5 y7 Z/ M
- (setq loop t)- n5 n& T% n; b3 M
- (while (not (setq ss1 (ssget))))# z% X' _+ o u& Y2 ]2 w
- (initget 1 "Multiple")7 q* N/ p; B1 E" I, X
- (setq bp (getpoint "\nBase point or displacement>/Multiple: "))
( J! M. `- T! C4 I3 p8 J- I- i - (if (= bp "Multiple")
/ f$ g: e* g' |) I1 _/ y - (progn
( Z7 `) `+ P) G3 ]1 A - (setq bp (getpoint "\nBase point: "))
/ z1 d. P5 v8 J4 b - (setq mult t)7 ^/ E( O# E; X
- )& \" `( `) O- {2 F. A8 D9 W
- )
5 B# ^3 a m. k' E+ s - (while loop
# D9 m8 v! o" v q5 |& } - (setq loop mult)2 M0 ^6 v: }. B
- (setq lent (lastent))& n* {, V2 H ?8 ~4 Z
- (command ".copy" ss1 "" bp bp)) L3 T P' N1 Y1 ~
- (setq ss2 (lss lent))1 l: ^' |' J( [" t9 Z4 Q2 G. s
- (setq lp1 (getvar "lastpoint"))
" q n% X: u! x( ?2 A% D/ O1 F - (prompt "\nSecond point of displacement: ")6 T+ d! j8 D3 i$ Y4 O
- (command ".move" ss2 "" bp pause)4 t( z) l$ w' c" ]5 g- R7 U8 a% C
- (setq lp2 (getvar "lastpoint"))3 I# I2 X, k/ p: o/ ?& |8 j
- (redss ss1); V) y) ^1 z" g" d% T+ L I8 U& p
- (if (and (not mult)8 x, _# q7 f5 t$ j6 c9 T: N
- (= (distance lp1 lp2) 0)
/ @4 _: A, r. O/ U8 C/ P! b - )
2 X- r% t1 o2 o/ o, Z5 n/ Q- s$ Z - (setq lp2 (getpoint "\nRotation Point: "))
. ~- a6 O2 U% j$ ^ - )9 h* M5 }; m0 r) `% X7 }
- (if mult. V- W8 t0 }4 v& C; f
- (prompt "\nRotation angle ")
, `$ K7 l1 b/ V) z5 M* a5 w4 @ - (prompt "\nReference/<Rotation angle>: ")
4 {& x# o( c4 E, k# w3 i+ c! U. Y+ o - )
2 ?# k4 J) e0 ]( z5 A a/ l - (command ".rotate" ss2 "" lp2 pause)$ a, u' c7 Z V6 w" {
- )
4 K$ `# a( ^% Z" H8 k - (setvar "CMDECHO" cm)
$ b* H! y- L0 D2 E - (setq *error* olderr)
& k9 a, Y) x. v7 N& j - (princ)
& L/ y1 ]4 [4 }# t - )# M4 ]% K$ X2 P, w% r# W& ^. `8 C
- (princ)
! P7 q/ |* k ] z7 Y F5 Z - (defun croerr (s) ) F+ Y+ ?! H" z0 B' p$ L' ^# v }8 U
- (if (/= s "Function cancelled") 4 H9 \( p5 j; @
- (princ (strcat "\nError: " s))
8 q v- s0 l& ^4 w# C' E - )
+ }# x4 S g" F3 r W O1 F2 a - (setq S nil)
. }5 l+ l% \, B! p4 t - (setvar "CMDECHO" cm)
" G& Y8 W% s8 C - (setq *error* olderr)* t2 K3 m9 t# S) F7 P9 d/ _! m
- (princ)8 Z8 ^/ o) h+ N- k/ Z
- )& z: ]; k% l0 y: m+ a
- (defun lastent (/ a b)
3 J A7 W( P! \) _ o: c - (if (setq a (entlast))8 A5 t, v: [4 a1 A7 ?1 H# A
- (while (setq b (entnext a))
9 o' A( }' u' E& A2 X - (setq a b)4 j4 d }. `: G8 @4 q' ]
- )
& V9 E* a* ?: S# U - )
# `4 f# T0 U+ S1 ^9 E - a5 ?1 O* `0 t% `8 x3 t) `
- ): U/ o3 E+ y2 e1 B# Z! U8 g
- (defun redss (ss / en i)
# T% g& w* n: x: w& y) p - (setq i 0)3 D/ v+ z( o% a
- (while (setq en (ssname ss i)) x2 p4 F: Z, H
- (redraw en 1)
# L! u( m; L: C o/ p1 c& L - (setq i (1+ i))( q$ q+ a t% m# b* N' q
- )
. }0 S- g' ]; }; E4 ]% j9 p - )
* N! W/ h8 n3 y8 p3 z - (defun lss (en / sels ed)
3 V* x% i+ k2 s/ F - (setq sels (ssadd))
6 Y* N8 T; l1 e0 n& D - (while (/= en nil)4 \5 M+ d+ L6 g, d
- (if (setq en (entnext en)) (setq ed (entget en)))6 a3 X2 j8 l7 y+ E# L" Y& t @ I
- (if (/= en nil) (setq sels (ssadd en sels)))# O, E- X& V3 f$ O
- (if (or (= (cdr (assoc 0 ed)) "Polyline")
7 D: @ i% v7 \, {6 q# J - (= (cdr (assoc 0 ed)) "Insert")
3 q1 G- W: c: R9 i) z" A) G; k - )
) ]) t' F& f% {9 V - (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))
9 z$ w1 p" e- s$ G) P - )+ U; t( ?, ]" z" R- ^& c p
- )
0 Y. j3 M& b4 n# j - sels; { A! Z g+ n7 z/ |
- )+ K: p$ S8 P. ~* P5 _9 v4 l
- ; Q$ I( \9 k% b9 ] w
- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================6 y% H$ E, |8 P
- * ]7 q1 `: N* _! P3 F" @5 z0 n
- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))9 T- g0 W6 u1 o5 I
- (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" ""))+ Y' ]% G* S* G3 v& q' H
- (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))
- g* f* m3 T2 r: z - (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))) ?) i/ P9 q# O' i: c/ K
- (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))
$ l8 I1 J9 t" ]# j( E) ~ - (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))
9 ^0 M* K1 p) C8 q0 u, s- E5 W - (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))
6 o! H g |$ G$ L) E5 }6 u0 { - (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))
9 u) J0 N4 F: s! e @5 A3 g5 v - (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" ""))
! M2 `7 T. R, J/ i2 ~ - (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))
2 c |( m! A7 U8 T - (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))
' C' c% [2 J/ y1 K" M8 C - (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))
8 q; ^, x3 l1 t4 h" q - (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))
# K6 f5 h) `5 Q: c - (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))& W( y* C7 h4 Y# ]+ `9 }
- (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))
9 z* Z; [) B1 O - (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" "")), P; \+ c) B* j, H! [% A, E
- (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" ""))
: `2 V* j, x! l$ `. ] - (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))/ Z' |" @+ I! R
- (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))
L4 ]; P9 h' E3 R7 z
$ Z1 j/ U& R4 g9 h- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
% Z" B( N2 k: J7 o' @
' L9 J! D2 L- C; v9 V; c R6 B' X- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
6 }. C0 |; I& h. \, [& I
. |. Z! h8 h$ l# W- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")
Z/ I$ z+ J! X. v2 h - (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")9 e7 O4 ^6 ?& C- h- Y9 N5 m1 I2 L
- w% g. v+ \; f8 {
- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===: j+ x7 H a, W, ]" t0 d
9 L" x6 @: d: a) D0 ]( o- ;(DEFUN C:netxuatanh ()0 ?1 c, e, Y0 _) g) }, @# ^: u ]% h
- (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
4 V' G* l% a1 x8 k - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""
: o( V4 ]* p3 ~. t x# Y - "M" "MANH" "C" "9" "" "Lw" "0.5" ""
1 Z7 Z; |0 e( x- E; m2 f" Q1 i - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""3 M: n0 g+ @/ b( x6 w
- "M" "DIM" "C" "1" "" "Lw" "0.6" ""
1 `) R% G8 |4 u" m4 V' P) n! L% {6 X - "M" "THAY" "C" "7" "" "Lw" "0.7" ""
5 H3 z' n/ K n( g0 o - "M" "NOITHAT" "C" "3" "" "Lw" "0.5" ""
& L8 j3 w9 C" g. j- u; m/ C - "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
4 o* L4 Y) M$ j2 g% @! H7 M - "M" "COT" "C" "2" "" "Lw" "2" ""
$ A! c" W5 ?% S6 D. y+ V - "M" "Defpoints" "C" "7" ""
" f: \- P. P4 Y0 k% V - "M" "0" "C" "3" "" "Lw" "0.5" ""
$ L5 Q$ \' q! G% F& X1 b - ; "M" "1" "C" "1" "" "Lw" "0.5" ""
m: g: A/ _) V$ o5 F - ; "M" "2" "C" "31" "" "Lw" "0.5" ""* R. t6 p/ ^0 {+ }/ h- @4 N( d/ a
- ; "M" "3" "C" "8" "" "Lw" "0.35" ""
6 S8 b7 k: x2 l% H" V8 |8 B - ; "M" "4" "C" "4" "" "Lw" "0.8" "", q) O: P2 N+ J6 }+ m" C
- ; "M" "6" "C" "6" "" "Lw" "0.35" ""
* a- L( Q, e: `4 {: r0 J - ; "M" "7" "C" "7" "" "Lw" "0.4" ""
+ E( ]. R6 G# K' H0 p - ; "M" "8" "C" "8" "" "Lw" "0.35" "" N, |& p, E! }; S5 e5 t' `
- "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" "": ?. M5 x/ J3 K5 O1 Z ]
- "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""/ }% F/ X) ]' p. v. _$ q2 Q
- "M" "KE" "C" "8" "" "Lw" "0.3" ""( q, S5 B# D% b3 c) y/ A
- "M" "KT" "C" "9" "" "Lw" "0.35" ""
- }9 F6 U, i' y9 R. ^3 P. k - "M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""
" b6 b% T. q, P5 v/ d' A - "M" "NETMANH" "C" "43" "" "Lw" "0.5" ""
9 o& H3 j3 {$ o: i2 E* z' ]$ j - "M" "TBD" "C" "2" "" "Lw" "0.8" ""
" b* ]8 U- H V2 i - "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" ""
8 i. O9 y6 ?# ?2 l! n: t9 G - "M" "TEXTVN" "C" "132" "" "Lw" "0.4" ""
6 |8 o7 K$ C; m* r! b - "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""3 [' x, k+ a* F! i0 o1 m
- "M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""2 k' m# r$ o0 E, x X
- "M" "CUA" "C" "6" "" "Lw" "0.5" ""& W, N% t" T4 }, \% d) V9 Q9 o
- "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""9 ^# ]' j+ o9 P) E$ @$ H
f4 d! a; w' i7 \- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===
8 Z! r2 U% `* w2 m
# R0 L% R% \7 u/ K: \# c$ D0 m5 n5 j- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" "", n2 D" Q$ s7 U. J o
- "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""
* @3 U! O( b3 p4 g, Y - "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""4 C, x" x1 G# L i
- ; "M" "250" "C" "250" "" "Lw" "0.35" ""
, B6 ]) Z! B9 @, R& i/ j6 L - "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""2 K7 c$ Z; _* s4 ~& N5 L
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" )* H2 L0 _( C* A3 i
- k! O% e& ]. H6 M0 O* G/ u
- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======/ B( k8 q/ l# X$ ]0 B
- ;===================================30|04|2024==============================# d0 {$ `; W0 s) C* j7 ]. W+ r
% t# h0 A8 ^6 y! t- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )
2 T/ I- N8 [' e% V0 J- d7 f2 X - (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )
7 [4 w! Y! V6 b/ G0 t9 Y - (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" )0 Z# n& {" O6 n
- (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" )
" B$ d- i* y" M& b4 n - (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" )7 F! ~5 A! E$ f+ e) d t
- (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" )9 B$ u. y' n. S5 l7 E) `: j
- (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" )
l m8 f6 h# v( t* b - (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" )
6 m7 Q+ N3 c3 s% _* I3 q( ? - (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" ) E; O8 x, t) W; o/ G3 g
- (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ)& L* ^3 @% v O7 X+ Q" q3 C
- % w/ l/ _+ F- K& ?
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=$ ~' [# ~. _6 Y; e( p2 F, h1 f& V
- ;===================================17|10|2024===================================3 G9 q, b% |% y9 \% H7 `5 I8 m
; ~& O5 p& v1 {9 c0 Y, I3 E- (Command "DIMTXSTY" "ROMANT-DIM" )
) R4 v9 W" f4 f+ T - (Command "DIMBLK" "" "Closed" )
3 `1 g2 ?/ R% s8 x9 a+ H
, N- I$ O. R4 ]) ?9 m0 H- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=0 j6 K* J9 ` x; a
- ;===================================17|10|2024===================================
: N3 g, ] b% B+ ^6 Z - " o, ?: O6 v; V9 ]+ e" e
- ;(Command "-units" "2" "8" "1" "8" "" "N")9 B. ?6 f7 O; {' l0 D K
- (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ)3 h' G4 ]) H ?4 R$ `0 x: {0 u" m
- 9 N" U8 b c$ r5 R
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
. g* [: ~* N3 L - ;===================================17|10|2024===================================
- S) V* H- Q4 B5 Y2 | - $ s! s* M- ?" ^7 ]6 p
- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====
4 V. Y# n4 y0 v1 w- v - ! V& I, Q- O) W1 T2 d" ^
- ;======================== DAT NET IN & TI LE BAN VE =============================
8 a2 F# f* r3 h6 K' R: {7 U - 8 @) B [4 B8 N9 |1 n! a+ K
- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================' u$ t# k, O5 O5 o" r3 S! w0 K! M
- ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================. g) N* t' A C U
- ;=============================11|07|2025==============================
& I6 o- k+ j T5 Y5 {/ @ - ;Ti Le Ban Ve - 1 : 100
6 j H i3 N p/ E; Q5 a - (Defun c:kta4 ()
5 G: x* {" O- T L# q - (setq mv_sc 100);Ti le ban ve T; }) m' [/ u1 [/ J9 z
- (setq x4 297)
6 U% E. F. F7 U - (setq y4 210)6 ]3 n t5 M, o. b, O, s
- (setq x4 (* mv_sc x4)
2 e4 h/ H: j+ H' ` - y4 (* mv_sc y4) )0 U. N/ S) |: l8 t/ k( I# J/ K2 e
- (command
5 ~$ g% t2 u! u" q - "LIMITS" "0,0" (list x4 y4)
5 v1 R. @& ^/ ^( K# Y8 Y - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
6 i' l: j( J) s - ;Khung CHU NHAT Chinh
3 d) x( ]- @. f3 |5 h5 ^ - "RECTANG" "500,500" "@28700,20000"# I' o; |( S$ [, }9 q. O- N% I2 K
- "RECTANG" "700,700" "@28300,19600"
9 G) E3 b3 p* ^1 { - ;Khung Ten Chung
1 x+ x# T9 m, F4 j. h' u - "RECTANG" "700,700" "@8000,1250"6 J0 l4 S# _6 _+ ^9 }! P
- "RECTANG" "700,700" "@17300,2500"( N$ S% T0 h! z& S' E3 u
- ;Ten Ban Ve& a! a- N& z% t ? r* B5 A
- "RECTANG" "18000,700" "@11000,1250"5 ?& C0 |9 i7 A6 _' U
- "RECTANG" "18000,700" "@11000,2500"9 }" B% v" G! k) s, s' Z
- ;Khung Ti Le + Ngay Thang Nam1 G7 j, T! W) a* H4 ~
- "RECTANG" "22500,700" "@2000,2500"2 j$ g- P: `: l4 _
- ;Khung CHU TRI
% ^& `( T: ^5 c1 [- F - "RECTANG" "8700,700" "@3800,2500"0 y7 ~: C+ I& A5 I8 @
- "ZOOM" "_a" ))/ ]" s: h, a7 o m' @7 W
- ;=====================================================================9 h) N R' k4 t" X6 R( s. c" P: I. V
- ;Ti Le Ban Ve - 1 : 100
7 N! i" D% t5 M* x# a: d6 ~ - (Defun c:kt4a ()/ }/ S. {- X5 W# L6 j1 E, @) H
- (setq mv_sc 100);Ti le ban ve
$ \2 D& t* g- N3 B2 G - (setq x4 297)
2 Z6 ?$ \% o2 a/ i6 k - (setq y4 210)4 m4 T4 n5 i9 K* {/ \1 Z
- (setq x4 (* mv_sc x4)
K' a6 s( j, N7 x6 k& ~7 e7 S - y4 (* mv_sc y4) )
. B8 K- A5 A- ~0 V4 N, I, C ~ - (command
$ d3 z$ }" z8 O( C - "LIMITS" "0,0" (list x4 y4)
v' F# v0 k9 H, N1 v - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"- `* Z% _6 ?3 n6 {9 E1 ^, t" }; Q
- ;Khung CHU NHAT Chinh 1 T7 K, C$ r) D/ ^( L5 N
- "RECTANG" "2000,500" "@27200,20000"
, A- p! B8 o2 h - "RECTANG" "2200,700" "@26800,19600"
3 U6 `8 [& G4 r0 | - ;Khung Ten Chung7 c; Y& o: p1 p; R! `- p% T
- "RECTANG" "2200,700" "@6500,1250"% T( L" U! p# z* Z$ G
- "RECTANG" "2200,700" "@15800,2500"
2 W' K2 P2 C# q% W1 o* ^ - ;Ten Ban Ve, F9 Q3 F, L* {
- "RECTANG" "18000,700" "@11000,1250"$ ?* j' V$ d! P* ]1 f; |( t& r$ z0 u
- "RECTANG" "18000,700" "@11000,2500"
) Z8 d$ w; f9 I - ;Khung Ti Le + Ngay Thang Nam
* ?& t& }2 X- [, o; r/ j - "RECTANG" "22500,700" "@2000,2500"* j$ Z" X5 U7 k) I/ R* K( @
- ;Khung CHU TRI( J: @ n$ r0 j
- "RECTANG" "8700,700" "@3800,2500"
- ?, [. ?5 p* l/ I/ ~ - "ZOOM" "_a" ))
4 u. y' p5 V" e/ F& ?! r - a; n9 J/ R g. U" d% K
- ;;; ============================GHI CHU Khung Ten========================
' `1 R1 v1 w% K - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
+ q8 V" J( }1 |( F - ;;; =======================Thuong Dung Font Romant.vnh===================! j* { g+ V/ t* |7 A) t
- * d: k' s( j$ p$ z2 ^) v3 b' b
- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)9 {; _. {( f$ V4 ~
- (setq oer *error* *error* err2)
5 B4 V& g2 b- \+ x* ~ - (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")
$ u- J8 `$ m; I$ i- w$ v - (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). ")); R: _. ]: k$ u0 f$ H) g+ y
- (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))" W4 |; _6 u# U/ `( ?8 V
- (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))4 y# R& M1 g8 B$ Y
- (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))( R' l0 m I0 }$ S
- (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))
$ @, o8 |8 ~' ? m# f% ~. I4 q$ ~ - (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))7 l# S& T6 w. W; e8 k) [0 b
- (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))4 Y* e2 d3 Z2 y8 R
- (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :"))
; B; {7 l% u4 Z2 F( u1 p - (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))
4 s. P; x% H! h# `' s) L - (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :"))
* @# X- ^" O s - (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :"))
5 \( u8 U& I/ k! `+ R/ ~! R$ L - (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))
0 u& {" A" Z) p5 f. U1 w, v - (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))
" k3 ~% _9 O9 y. W" H; L9 y; Y - (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))
7 v% w4 S* ^: b* C2 d - (setq pta (getpoint
' ^+ O z3 [5 W' d2 D% H+ w - "\nPick first corner. : "))
, W, e ~+ O. A - (setq ptb (getcorner pta
; g# J2 }) s# F8 J+ I7 j% a - "\nPick second corner. : ")). V' b" M" N0 u; ^1 s0 F
- (setq ptc (list (car ptb)(cadr pta)))
- B. M f5 {6 }+ C% i# `9 i8 F - (setq ptd (list (car pta)(cadr ptb)))
/ V# B. u8 ^. F2 i9 B7 v - (setq ang (angle pta ptb))
6 K( H9 c' U7 y$ f - (setq d1 (/(distance pta ptb) 2))
: Q5 S& S! c: v - (setq cp (polar pta (- ang (dtr 0)) d1))
" P" o5 k+ x2 b$ k' p - (setq X (distance pta ptc))
# m! v6 Z6 H- P0 J3 Q - (setq Y (distance pta ptd))
g8 r# u3 L" f4 o( p# j4 R - (setq X1 (rtos x 2 1))* H+ x7 a0 o# ]) W, a" D S* B
- (setq Y1 (rtos y 2 1))
; D" D. [* e% l. o# M& J - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
! C; f3 T5 Q# z! G: c2 R+ ^; M - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
4 A( w/ f, @1 \ - (defun dtr (angg)' V& b& K2 P" e/ u2 O6 Y
- (* pi (/ angg 180.0)))
5 x e3 o* W7 p3 a, y
" A1 _. g+ i2 j* I- G- ;=====================================================================
- m! `. ^, A: R+ k' M% h* h# R - ;==========================DAT KHO GIAY BAN VE - KIEU 1======================== U0 q/ a, e3 \3 {- L# N
- ;=====================================================================
& [* |- V, n! B3 d - & T _( i1 N! W: W! k5 f
- (Defun c:a6 ()' i% d6 I: ~( W
- (setq mv_sc 100);Ti le ban ve
8 A0 p( D5 j/ w. B2 }4 W& z - (setq x4 74.25)9 Q9 U, {. K6 _% ~
- (setq y4 52.5)4 V' G! e+ b+ v) Y2 N! Y, B7 G+ h* {
- (setq x4 (* mv_sc x4) 3 W3 E8 o) X9 F
- y4 (* mv_sc y4) ): b8 B. b0 v- f( Z4 Z
- (command
! ?7 p) A4 A; t0 \ - "LIMITS" "0,0" (list x4 y4)
; D- T7 |; q+ t2 f, u; @; m1 I1 } - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
4 ^6 B9 {/ @0 s5 \2 M+ ? - "RECTANG" "125,125" "@7175,5000"/ B$ I( ]9 g* [+ l/ ]
- "RECTANG" "175,175" "@7075,4900"
5 d5 n* Y8 {% s; ^ R - "ZOOM" "_a" ))( m5 a4 p0 @; m: @) O" B7 c
- ;=====================================================================- @' J" O7 i) W' e
- (Defun c:a5 ()
4 T) n' a) Z; j6 ? O( w - (setq mv_sc 100);Ti le ban ve
9 ]# A! Y, B5 p) c - (setq x4 147.5)
+ e1 S, q# a& ?1 A) Q& I - (setq y4 104)' @' q; C7 n% j! J! d; o- G
- (setq x4 (* mv_sc x4)
4 N. L q8 |1 B' @ - y4 (* mv_sc y4) )' l) \ R) x( t* c+ r
- (command 2 z3 J# H) \% p- n' Y. u
- "LIMITS" "0,0" (list x4 y4)
, p3 m0 ^' `' J! i+ B: {. I - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
# w: }# I8 R+ h; X. e) m* l - "RECTANG" "250,250" "@14350,10000"
/ U0 g# Z8 R2 u$ c. Q/ g - "RECTANG" "350,350" "@14150,9800"
2 p, \! J$ a# w& L7 m - "ZOOM" "_a" ))' s# }" p* |: H
- ;=====================================================================8 G) M6 \) J0 t; a
- (Defun c:a4 (), y2 v W5 t$ p
- (setq mv_sc 100);Ti le ban ve
' L" X$ s+ P! _# e - (setq x4 297)
) B: B; u2 k. q5 D - (setq y4 210)
/ g1 v6 O0 c. ?/ a' B+ D+ g - (setq x4 (* mv_sc x4)
0 h- [ C' G* h5 j1 m - y4 (* mv_sc y4) )) N' h5 T9 r" t$ T8 X9 {
- (command
5 ~( h* u6 ^$ s; F. a# F - "LIMITS" "0,0" (list x4 y4)
; h1 ]% r! j- r, E - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
2 T% `' [3 |. |1 a% n" ` - "RECTANG" "500,500" "@28700,20000"
3 o- l4 J" Z: n( ^ - "RECTANG" "700,700" "@28300,19600"
$ R+ M# m9 w" m. p Y - "ZOOM" "_a" ))
1 j5 } y- G( |, c - ;=====================================================================- E' v# Y) \( `4 ? T
- (Defun c:a3 ()
6 L4 w; k* `3 y* g! r - (setq mv_sc 100)
5 Z. L1 Z6 k5 P! I7 Q - (setq x3 420)
$ x: Q1 Q. d6 t0 y9 {2 d. M - (setq y3 297)
0 ]* Z9 O9 U9 D- }) v( M$ n( |9 L - (setq x3 (* mv_sc x3) ; f% ~+ d0 G0 m7 r$ i
- y3 (* mv_sc y3) ): |( {2 P( _. h# m! B
- (command
* k5 a- `0 E& U( R- C$ T# b$ _8 B - "LIMITS" "0,0" (list x3 y3) C. Y/ Y6 O* B" G! E. C% l
- "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
5 ]& A& O6 F- F' K/ u! R - "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"+ N: o% `( E3 o( N9 x4 F% i
- "RECTANG" "990,990" "@40024.28571429,27720"
$ m. a0 A6 z; ^; v - "ZOOM" "_a" )) I3 f& ~1 }5 X* r
- ;=====================================================================
0 a; }. v6 E8 G - (Defun c:a2 ()
5 [8 A' ]! j4 s/ R2 t+ D+ b - (setq mv_sc 100) |2 M, X5 X5 F( W' o6 I2 J2 @
- (setq x2 594)! `! [3 g V u' k
- (setq y2 420)& u7 F" G8 C5 p9 g7 j: o8 v0 e, n
- (setq x2 (* mv_sc x2)
3 q, \* v/ ^. u- O* } - y2 (* mv_sc y2) )2 [/ Z# O& j! |& [( \; j- |5 b
- (command
7 ?& Q$ ~0 g) i - "LIMITS" "0,0" (list x2 y2)
: q& {9 f/ G9 I u3 | - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
. ^! h7 l7 s1 \% v - "RECTANG" "1000,1000" "@57400,40000"
/ C& k4 u/ h: @- } - "RECTANG" "1400,1400" "@56600,39200"
) l, C- {1 b. y; r a! O- B/ [7 _ - "ZOOM" "_a" ))0 I: k' ?: ~! j5 X" g
- ;=====================================================================
Y8 x; a4 ?/ `/ l0 G6 ~: F - (Defun c:a1 ()
5 ?& O6 _/ }3 h2 R1 G - (setq mv_sc 100)' r1 ^( D% z |. o0 ^& z+ |5 O2 ~
- (setq x1 840)
- R& D( J* H: G; b - (setq y1 594)
; Q# C, U8 H# y' ~ J* Y - (setq x1 (* mv_sc x1)
0 z+ F4 Z. V8 E- R' [ - y1 (* mv_sc y1) )$ v# P9 u& e; \& }
- (command 9 a- N; a$ n7 F) J& P
- "LIMITS" "0,0" (list x1 y1)/ [9 w' N3 X, n* k+ q; i+ w
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"8 u: _5 g) F" d8 V1 j9 e2 ]
- "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"$ v, \ ~( ?( O. m; h0 f$ [
- "RECTANG" "1980,1980" "@80048.57142857,55440"& a# ` |1 J8 C p. l7 z8 Y
- "ZOOM" "_a" ))
" `0 o- G1 ]3 B* A# h" T9 ~ - ;=====================================================================5 X: Z$ a1 g& t. _+ R$ F6 j* `
- (Defun c:a0 ()
9 j4 ]. p5 w6 i - (setq mv_sc 100)/ i/ \" `% @$ K9 ]# y* d8 Y! s9 T. s
- (setq x0 1188)
0 ^ I" B" t( z) [! f* h, F - (setq y0 840)& b! Z# H0 d) Y3 z; P3 @+ @4 y
- (setq x0 (* mv_sc x0) 4 c; g2 Z) Z# g [
- y0 (* mv_sc y0) )
6 S3 P, _1 o( @- b4 r - (command
* M. g \# r( g+ ?: I" k ~* N% h - "LIMITS" "0,0" (list x0 y0)
1 w7 @+ s) u0 l: K6 N! S" {% ?' M - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"+ a+ K8 P4 f6 v. l$ r! ~5 M
- "RECTANG" "2000,2000" "@114800,80000"- z9 y1 b7 U7 J9 M$ ]2 d: O
- "RECTANG" "2800,2800" "@113200,78400"7 P# Z/ I/ K3 ^# j) w
- "ZOOM" "_a" ))
1 |8 |' R4 e7 c6 W7 N- n4 i% r
$ n& R! x+ Z9 W/ X) C& {6 R$ G- ;=====================================================================
! `9 }# L+ L2 P. Z" Y" ?3 p5 K - ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================
. \& X; h( h% ?1 _2 ? z4 P4 D1 R - ;=====================================================================
" h' H0 s" ]- n; X4 T
; p2 Y3 x; o9 e; d G- (Defun c:6a ()% q2 R3 V( d9 b. _* I( E8 P7 Q
- (setq mv_sc 100);Ti le ban ve
9 c. T0 @7 _' l - (setq x4 74.25)$ z" f0 K( Q# |& E
- (setq y4 52.5)7 R, F' L( ]9 r
- (setq x4 (* mv_sc x4)
$ q0 L3 z1 z T* h# e. V - y4 (* mv_sc y4) )! b, m7 T9 ~/ a0 b
- (command 9 |) ^' Z- q- c j
- "LIMITS" "0,0" (list x4 y4)* K0 ~( d$ J# p' }& ?, U2 p x/ `5 I
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
; n' h- c/ W- N7 O" ?, E - "RECTANG" "505,125" "@6800,5000"
6 r) e* y, }: z; C$ Y! j* F - "RECTANG" "555,175" "@6700,4900"3 l9 M4 b, U, {; r
- "ZOOM" "_a" ))
5 A- E6 a5 `8 @! V8 x7 E+ D* a - ;=====================================================================0 l& J: R" o; D8 ]+ T# T9 G
- (Defun c:5a ()4 X% k) z$ T! u- S
- (setq mv_sc 100);Ti le ban ve
2 H. Z8 y0 q9 n W3 X) v! _ - (setq x4 148.5)
: a8 W: F) I4 y6 @ - (setq y4 105), P6 U2 g- W V- s: D
- (setq x4 (* mv_sc x4) 6 m1 p7 c% U {0 Z
- y4 (* mv_sc y4) )
* z, v+ x: M' S+ m; Q' H6 E D Z - (command ! W: U. I$ n- q' L9 k2 D# d$ |0 `7 K
- "LIMITS" "0,0" (list x4 y4)0 A6 w# ]& j7 _1 v3 S, L
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"8 l3 y8 ]4 S! K8 @, j0 d7 ^
- "RECTANG" "1000,250" "@13600,10000"1 t8 I( g! G7 X! M# W9 O& E
- "RECTANG" "1100,350" "@13400,9800" T8 S0 S" p. x: R
- "ZOOM" "_a" ))* ^( g$ T1 T$ x+ P- u: k
- ;=====================================================================& r! {$ T( I1 e1 h- q% S9 V$ n
- (Defun c:4a ()
/ F! z9 d% `( e5 Q6 {# ^3 u - (setq mv_sc 100);Ti le ban ve
0 L$ S, i& _1 ?% e( d/ S - (setq x4 297)
* ~. R# I( N W3 t3 P9 }3 V) Q4 H - (setq y4 210)! J, ?; r' \) \' b& F+ e- N
- (setq x4 (* mv_sc x4)
, J8 ]5 n% {; G9 w4 n& `6 k6 @ - y4 (* mv_sc y4) )
4 J& w# j3 k, C - (command 5 h: _ l* I4 E+ E# @
- "LIMITS" "0,0" (list x4 y4)& D/ v) X+ w L" ?0 {. z6 _$ Z
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
" \5 W; {, c* l, J; U. D - "RECTANG" "2000,500" "@27200,20000": J: n' ^6 r) o0 ~8 ~2 G
- "RECTANG" "2200,700" "@26800,19600"/ Q ^' z0 r! H' {$ _0 j0 s
- "ZOOM" "_a" )); ~1 @6 x+ Y# E* |3 |9 F" w, I* h6 [ g0 w
- ;=====================================================================8 v( ?8 I ?0 o4 ?* j
- (Defun c:3a (). x- `) ^0 `" P9 N9 Z0 ^
- (setq mv_sc 100)
& _* C: I; L; L6 c3 i - (setq x3 420.0428571429)
, y9 Y2 {* B; d5 A" Y/ J - (setq y3 297)
0 B/ w& v, d: T7 s% t$ A9 ~/ C - (setq x3 (* mv_sc x3)
9 @8 ]* l% I T- e3 a - y3 (* mv_sc y3) )
# }) U8 \/ A4 h - (command
) {2 ` Y/ y1 I. {$ c9 I9 |2 ~ - "LIMITS" "0,0" (list x3 y3)
$ L& g! r' e9 J+ k3 G6 T2 Y( t# { - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
1 @! f1 [9 S8 r8 D) n( W5 U - "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"
6 e2 G: m: `0 I( D0 f9 D$ B, v) r - "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"
) s/ G3 M% b8 A, P7 y - "ZOOM" "_a" ))
+ w6 ~( q/ m1 D8 A* J - ;=====================================================================
& l& g3 D+ [$ u' Z) ^; o: h - (Defun c:2a ()
' Z" O3 D" Q+ Q8 d, j - (setq mv_sc 100)% W" H- y3 v9 J- F D+ i# V* `. }
- (setq x2 594)" `) S2 u( Y! I! Z7 I
- (setq y2 420): ?" D3 G2 s4 ]7 D: H: u
- (setq x2 (* mv_sc x2) & b" M1 v3 @2 \$ i' ]4 @- l S+ |
- y2 (* mv_sc y2) ). S( a Z" Q; S, F U$ l v
- (command 1 ? Q* w* Y4 @) Z% @
- "LIMITS" "0,0" (list x2 y2)/ A! m! O0 x, I9 v- o
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"+ T$ q+ f. ^3 n- U0 A/ c/ z
- "RECTANG" "4000,1000" "@54400,40000"$ v1 Y8 q6 Q/ ^4 T5 v+ ?* b: `. d
- "RECTANG" "4400,1400" "@53600,39200"
: x: O* N$ v( s e6 F O- ^ - "ZOOM" "_a" ))1 p' k! R. O/ k. v
- ;=====================================================================9 \- V) z* T, l. K
- (Defun c:1a ()
. N0 n" k. l. v; ^' L - (setq mv_sc 100)
5 p5 w$ y6 F7 i/ `& n - (setq x1 840.0857142857)6 J! {! j1 w7 N* w* E. Z. u& }1 W
- (setq y1 594)3 j' ` E* V# A5 R
- (setq x1 (* mv_sc x1) : ? f4 p' o& l
- y1 (* mv_sc y1) )
0 i# Y, j9 G) `! g - (command
+ b, [. J* C/ ?: A' t: f - "LIMITS" "0,0" (list x1 y1)
8 T B" s/ G Q; _ - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C" U2 m. e) o6 K7 W, m" x
- "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"
9 U8 V) a5 W+ P4 e3 P9 K - "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"5 Y8 s8 f' K; b
- "ZOOM" "_a" ))
9 ~. |3 W- p$ d# b [ - ;=====================================================================% a6 ~4 S4 |, p* F N+ F& Z
- (Defun c:0a ()" x! W7 H$ Q1 t: t% @
- (setq mv_sc 100)
# H( N* N+ T5 X; C1 c1 o! u - (setq x0 1188)
# d9 C& Y; X* w6 G) m% N4 M - (setq y0 840)
! m5 E- p6 I6 X5 ~6 d - (setq x0 (* mv_sc x0)
7 l& X& W' {/ l) Q' k: } - y0 (* mv_sc y0) )
/ Z# U$ ]2 f- ^9 J* a - (command 0 s4 D5 L: |$ Y0 y7 X
- "LIMITS" "0,0" (list x0 y0); A6 Z1 o( ? J$ I- g0 j
- "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"3 \ O& K; o7 H2 K
- "RECTANG" "8000,2000" "@108800,80000"
5 P, \! W! { ^& M W - "RECTANG" "8800,2800" "@107200,78400") X ~% K6 L# F4 h: a- a
- "ZOOM" "_a" ))
' o3 \9 j: t- C1 D - $ {; a3 Y, q& w! }8 ~
- ;=====================================================================" k& \% \& D. \( Z- K' \+ j+ T* P ^
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================- M9 y. {- k& g
- ;=====================================================================0 X1 @- X2 w: k9 y
- (defun c:khogiay (/ oldlst a b c d e f g h kho TL)
3 G* L+ _5 l9 c; B( j* X `. i - (command "undo" "be")
% M5 ]8 B- j( b- k# i+ X" x - (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))
$ b Z9 f; q" `0 ]' N - (setvar "CMDECHO" 0)& c9 Q- {$ E6 X& h' O; C9 x! u
- (setq a (getpoint "\n chon diem chen :"))
9 i* s/ b" t/ }) `7 ^8 s( l - (if (not TL) (setq TL 1.00))
3 Q) v, I# v, y r" _- K3 i5 v% ^ - (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))
, \8 n) g' W1 V9 ~- U: u; y - (if TL1 (setq TL TL1))2 R; [! }9 s2 K0 g
- (setvar "osmode" 0)4 Z7 j6 L+ w: u
- (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" "")); T3 K' a5 M6 G1 K9 o/ o
- (initget "0 1 2 3 4")' Y: r, b. ~3 y1 r
- (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))! d+ t$ t" \* P8 M9 ~) H
- (if (= kho "0")
- e8 r7 V+ S1 u+ @) u$ C - (progn3 q, R G. n7 |: |2 H/ F
- (setq b (polar a 0 (* TL 1189)))
( A u2 [; Z3 t# _/ j - (setq c (polar b (/ pi 2) (* TL 841)))
' E: f1 N/ u+ ]8 B$ S2 j* l - (setq d (polar a (/ pi 2) (* TL 841)))( j- u$ \, O8 }8 E' {
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))8 E: A5 i# d/ E
- (setq f (polar e 0 (- (* TL 1189) (* TL 24))))8 U0 K7 x# h# u X, ?
- (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))
: c# ]/ u- a' @ - (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24))))
4 o# P3 G V4 N. r; C+ E - (command "Pline" e f g h "c")
$ N5 S; ~% ?3 {/ Y+ C - (command "change" "last" "" "properties" "layer" "0" "")( `* o: U2 o. I' Z3 \5 w+ h
- (setvar "cecolor" "4")- V# }; x. y3 X" I
- (command "Pline" a b c d "c")
; n! Q+ W& M, s- s, @ - (command "change" "last" "" "properties" "layer" "defpoints" ""))) 1 b: i7 `2 S# U( H6 s* r: |
- (if (= kho "1") K: g( \8 p0 P2 D9 e6 g
- (progn: H5 y6 g/ ^1 P' @7 X+ [
- (setq b (polar a 0 (* TL 841)))
, `5 q& q( v6 x! k* U6 g - (setq c (polar b (/ pi 2) (* TL 594)))/ z- @' Z% a, U) R
- (setq d (polar a (/ pi 2) (* TL 594)))$ A: b5 W9 {# E/ L
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
- i9 w- U. n1 J7 f - (setq f (polar e 0 (- (* TL 841) (* TL 24))))$ W7 q0 Q9 W8 ?( R! S3 F+ k: ~ \. Z
- (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24)))) T# e+ W3 x; ^* m/ r( E
- (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))
" J3 o5 G, h" ?: p m - (command "Pline" e f g h "c")
9 ?8 W. S, y; W6 X% U; T - (command "change" "last" "" "properties" "layer" "0" "")* Z1 v p3 N8 a3 g3 F
- (setvar "cecolor" "4")- ?7 ?' I$ ~ t
- (command "Pline" a b c d "c")
& u0 W& K: m! T+ ?( L* Z8 N8 i) h4 J - (command "change" "last" "" "properties" "layer" "defpoints" "")))
& t' m2 j/ R2 V& _: m# x! d7 B8 ^ - (if (= kho "2")
- C/ Y6 [9 f* @# y4 I, D - (progn8 M& C! I6 \& u3 @4 q& F+ Y
- (setq b (polar a 0 (* TL 594)))
[6 d; V! t7 _) D; R p5 H - (setq c (polar b (/ pi 2) (* TL 420))), `9 }* k" p0 x! k
- (setq d (polar a (/ pi 2) (* TL 420))); \4 a2 V( U- L7 K
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))0 B6 k+ {5 H6 N5 M$ ~
- (setq f (polar e 0 (- (* TL 594) (* TL 20))))2 j* I" b5 ~& s& P
- (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))! d @- l9 {1 C9 R6 S
- (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))( r3 N' @2 |. h! F! k: F: E
- (command "Pline" e f g h "c")
+ K# {( F7 r/ k4 N1 _: v3 v - (command "change" "last" "" "properties" "layer" "0" "")
. o$ ` u; v# o# \" q - (setvar "cecolor" "4")
0 P* I% V8 x% ~. p& t/ ? - (command "Pline" a b c d "c")( v1 l0 E& w" p1 F8 c
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
5 J% H! {3 }5 r( j) v - (if (= kho "3")
! I4 u$ V0 W. J5 o: J# ^ - (progn+ d0 N+ R' }& D- l8 h6 `0 ?# _
- (setq b (polar a 0 (* tl 420)))
. Q& @; K3 f' h# w2 L, U" a - (setq c (polar b (/ pi 2) (* TL 297))); i) x* o* D1 J3 @% s
- (setq d (polar a (/ pi 2) (* TL 297)))
o9 w$ o5 @) O4 i- U - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))5 e {7 O3 v( q J9 i
- (setq f (polar e 0 (- (* TL 420) (* TL 20))))$ |- F( ]* P# o9 O- m
- (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))
3 K& K6 j2 r/ @7 Z- s; T - (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))6 R% \' b7 b, w$ e
- (command "Pline" e f g h "c")% e* i* n; d' n/ G8 F( M( Y
- (command "change" "last" "" "properties" "layer" "0" "")9 |! Q5 }4 `3 A* K8 q: \
- (setvar "cecolor" "4")/ o$ U1 {5 v5 k, \+ a9 Q
- (command "Pline" a b c d "c")
- R6 K0 h5 t" j/ |) y6 P: {& ?, b - (command "change" "last" "" "properties" "layer" "defpoints" "")))0 I' K, B" F* o0 ^/ F- P: H
- (if (= kho "4")
! B& G/ D( x3 L0 W! o - (progn+ P6 r3 q6 v4 E+ U8 ~/ \3 w% b
- (setq b (polar a 0 (* TL 297)))
4 t' u" d, l9 C0 p; } - (setq c (polar b (/ pi 2) (* TL 210)))2 k( n8 F% L% i' v
- (setq d (polar a (/ pi 2) (* TL 210)))
2 d/ ^( x. _; J' U2 O4 a2 R5 K - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))% U) E1 A( U$ f1 m, |5 w |
- (setq f (polar e 0 (- (* TL 297) (* TL 18))))" S4 H) K. j5 b) U. Z! g
- (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))
3 R( g. |, d7 G' Q2 U* | - (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))
' j& z: V7 F. Q+ h' r2 s( \7 P - (command "Pline" e f g h "c") 5 g7 ]8 W# [0 ~. R8 \1 i
- (command "change" "last" "" "properties" "layer" "0" "")' ?9 v; s9 h; e+ [8 G
- (setvar "cecolor" "4")7 q: N$ L7 p( C
- (command "Pline" a b c d "c")+ {7 ?7 O7 P6 q3 O& T, Y+ b7 C
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
! S4 e4 G1 }8 S7 N$ H C - (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)
+ Y' f" ~- Y8 I% }' Y( A - (command "undo" "e")& \. k/ R' u9 K% ~: w7 {( t
- (princ))
& Q& ?. ^: G) W* C' a# }, \' x: w - ;=====================================================================
, m1 k& t1 z _% D4 a4 a - ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================
) I% P2 K! W3 z* V+ R4 ] - ;=====================================================================8 F* v5 s9 I8 \. Z; S4 F/ s
2 O @" h$ P2 z0 o; Y ]. W- ;=====================================================================
# c# ^5 R5 X9 V$ K( @5 s - ;===================DAT Ti Le Theo KHO GIAY BAN VE====================
, R' Y7 C" v4 m- Y: a - ;=====================================================================$ Q' b2 K8 N: Y' K H
- G6 @4 S; b$ f& U- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" "") P$ A* x4 H; W0 a0 M
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""! x; r( Q+ r% I1 U( F( b$ A
- "M" "MANH" "C" "9" "" "Lw" "0.1" ""8 C) s0 a" X. I7 M1 ~7 _% }. y4 j
- "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
Z0 {- ~) w, c; H2 C) s - "M" "DIM" "C" "1" "" "Lw" "0.12" ""# M' ^$ |' s1 S( X" Z' ^
- "M" "THAY" "C" "7" "" "Lw" "0.2" ""
! s4 N9 D3 V. A. f' N - "M" "NOITHAT" "C" "3" "" "Lw" "0.12" ""
4 S A" g1 I3 O1 [) D- I6 F - "M" "HATCH" "C" "5" "" "Lw" "0.1" ""2 e9 e. M* l5 l" `" w: c/ n
- "M" "COT" "C" "1" "" "Lw" "0.3" ""! d' j1 R( Z9 x% n
- "M" "Defpoints" "C" "7" ""1 X' C* o+ u; [$ P0 q$ \" [ o
- "M" "0" "C" "3" "" "Lw" "0.12" ""
^, c) ^ P: [, c% ~' X - "M" "CUA" "C" "6" "" "Lw" "0.12" ""
+ S0 `2 M5 R! Z5 }$ n: M$ N, w - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
- n& j" ~5 I5 c7 c - "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))% K F$ V4 X& v' `) i* w. E
- (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" "": m4 ^ G, M5 R- W/ g: R: m1 d
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""+ H( v- V/ u: W0 S5 Y# u9 b
- "M" "MANH" "C" "9" "" "Lw" "0.12" ""
8 \! l$ P" @" c, X% F2 d' ~: M - "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
3 X1 [9 O0 c. m, e - "M" "DIM" "C" "1" "" "Lw" "0.2" ""
6 W$ |% R+ c4 x; m K% b$ ?9 _6 o - "M" "THAY" "C" "7" "" "Lw" "0.2" "", _, ?2 p* P* N8 P
- "M" "NOITHAT" "C" "3" "" "Lw" "0.2" ""+ z& v% |+ ]8 e/ C. }: w( a1 W
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""/ P) H0 n! d# M9 _. z2 B
- "M" "COT" "C" "1" "" "Lw" "0.4" "") C1 n2 v5 D, v2 Y- M8 h& d1 T
- "M" "Defpoints" "C" "7" ""+ f; g5 J; b' x
- "M" "0" "C" "3" "" "Lw" "0.2" ""
9 K# M( M9 A" h0 L - "M" "CUA" "C" "6" "" "Lw" "0.12" """ k4 I7 n# Z4 {# W; V! b
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""# ]: j5 L9 ~0 y6 g! V
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))9 L' K! e9 B: ]7 ?
- (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" ""
1 ?. o t, Y$ Z3 C* ^. M1 `9 O - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""6 u" z1 S( b' Y4 B; e% E; ~
- "M" "MANH" "C" "9" "" "Lw" "0.2" ""5 W) [. U, Z( [$ D: `. [6 c
- "M" "TEXT" "C" "7" "" "Lw" "0.2" "", l( g& K' G s( B9 c6 x9 \3 f/ ]
- "M" "DIM" "C" "1" "" "Lw" "0.25" ""
3 f R9 o( T" u u r: ^1 J - "M" "THAY" "C" "7" "" "Lw" "0.35" ""9 [# T4 f/ r( X/ [
- "M" "NOITHAT" "C" "3" "" "Lw" "0.25" "". L& Y4 |1 b9 j: b* F _/ z3 I
- "M" "HATCH" "C" "5" "" "Lw" "0.15" ""
- N' {* V4 _( i1 G' m9 `. ?) B - "M" "COT" "C" "1" "" "Lw" "0.6" ""
7 Q4 W" R6 `; v, G - "M" "Defpoints" "C" "7" ""
0 |7 p7 d) @, A4 A9 F - "M" "0" "C" "3" "" "Lw" "0.25" ""0 g/ r' M$ @% \" z3 Y
- "M" "CUA" "C" "6" "" "Lw" "0.25" ""$ @/ V+ f% Y# q/ ^
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" "": a1 [+ b( K5 F, s: h
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))
& X: U0 l/ L4 ?: b+ m9 Y. y -
, d( W8 F1 V: z. n, O - (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""* i5 E9 J8 r: Q2 r
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
4 i% x9 }1 d; R: V - "M" "MANH" "C" "9" "" "Lw" "0.25" "" H' d0 `6 g. X9 o3 X
- "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
/ T, T, \/ S0 o2 ?$ V' B - "M" "DIM" "C" "1" "" "Lw" "0.35" ""7 h9 s: \ O0 E2 N1 [/ O
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""
' D- X# l0 _- M& u7 d - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""
2 g$ J$ ^% ^4 k! J# A - "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
" ~ H$ D- n7 E1 s# j. f; q5 c1 d - "M" "COT" "C" "1" "" "Lw" "0.7" ""
7 O" u; o$ G8 `8 }4 n: m) ^ S - "M" "Defpoints" "C" "7" ""
4 \5 F. j3 ^* I7 T- G; k! S$ @ - "M" "0" "C" "3" "" "Lw" "0.25" ""
! {2 _( u" ~2 [- _ - "M" "CUA" "C" "6" "" "Lw" "0.35" ""+ @7 [" O8 Z# v: Z9 Y7 y' y
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
9 ]: P! N O$ {6 R$ p X( Y0 M - "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC)
; @1 [3 ?& m* c0 g! b0 V
, S; R6 F+ J1 a, G; G/ p- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" ""
/ q P1 ]+ m3 M# q( c; j1 m - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""; ?8 E- F' H/ \7 S$ ?$ a0 g
- "M" "MANH" "C" "9" "" "Lw" "0.25" ""
; L+ k6 p3 X/ o - "M" "TEXT" "C" "7" "" "Lw" "0.25" ""; t8 @3 o) S0 \! N( O! G% w; n# P
- "M" "DIM" "C" "1" "" "Lw" "0.3" ""1 S; Y+ C* ?5 q( }3 b0 e, S) x9 O! p$ u
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""
1 O( L* w: [+ f; T0 t - "M" "NOITHAT" "C" "3" "" "Lw" "0.3" ""
* D0 }8 I3 Z4 t/ B - "M" "HATCH" "C" "5" "" "Lw" "0.2" ""% a; r0 l! P1 z; @0 G/ ^2 ?3 V
- "M" "COT" "C" "1" "" "Lw" "0.7" ""
/ w5 [* w$ f8 S$ T4 L; | - "M" "Defpoints" "C" "7" ""
9 A8 V# l; B* p/ x- s! u - "M" "0" "C" "3" "" "Lw" "0.35" ""! z5 Y1 ^1 ^5 l; y* {* R1 a
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""
$ c7 J9 G6 b9 g, h - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""! G0 n0 \6 `) ?) i" L3 u: T
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))
9 ~& @# s% d. F: [3 Z) I# p* P
; i* o8 r1 m B/ g, ]) {- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" ""
4 |2 p8 F1 h8 L' U# Z - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""
2 H+ H/ k8 I0 W f - "M" "MANH" "C" "9" "" "Lw" "0.35" ""
2 k$ U7 B. e. W+ V4 f5 B - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
7 J* e; [, \$ Q) Y - "M" "DIM" "C" "1" "" "Lw" "0.35" ""
; q; s6 f- U* r' L& a- r: R) P - "M" "THAY" "C" "7" "" "Lw" "0.4" ""8 L z% ^3 h3 P; e" Z* c
- "M" "NOITHAT" "C" "3" "" "Lw" "0.35" ""# h' m& d0 A0 V- J0 k
- "M" "HATCH" "C" "5" "" "Lw" "0.25" "" }2 N$ \9 u! |( {6 h% F$ p
- "M" "COT" "C" "1" "" "Lw" "0.85" ""
9 u' E& F; ~; G* @, F4 y6 _) n - "M" "Defpoints" "C" "7" "" c. W) B" ~7 \* A! ]$ k
- "M" "0" "C" "3" "" "Lw" "0.35" ""
8 l9 v' f% m2 G - "M" "CUA" "C" "6" "" "Lw" "0.4" ""7 t/ P; ^3 G, i
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" ""3 O0 o) V D& E: L
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))
5 p9 H) I( j J8 E - $ C$ g. h$ J& X* ~
- (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""- F* ], V& J* S( u2 x( [4 G
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" ""* d: ?2 o* I {# A5 P) U. J
- "M" "MANH" "C" "9" "" "Lw" "0.35" ""
% n6 f0 H, `- z7 a4 O$ u6 P. M - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
: k; U& o8 O/ { N - "M" "DIM" "C" "1" "" "Lw" "0.35" "". h. F# ~, E$ A3 l( I! k; F1 ?# f+ |
- "M" "THAY" "C" "7" "" "Lw" "0.5" ""
2 x! Y$ r9 P. |4 l3 i9 M ^4 { - "M" "NOITHAT" "C" "3" "" "Lw" "0.4" ""8 J" c" }% G- V+ u! n7 D4 w
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""$ Y5 r8 ^8 m: ]9 Z
- "M" "COT" "C" "1" "" "Lw" "0.1" ""
) o2 n+ `' C2 P& d - "M" "Defpoints" "C" "7" ""
" G4 W3 j0 g% k$ I9 x - "M" "0" "C" "3" "" "Lw" "0.5" ""
$ \6 N( \8 p& c, {2 L4 [ - "M" "CUA" "C" "6" "" "Lw" "0.5" "": I) X' Y; w! p1 m. u! Z4 S) Z0 D
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""+ v( l# {3 [, l7 g. U; J
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))
$ h6 l2 h. h6 d, c - (DEFUN C:O () (COMMAND "OFFSET"))
# }; Y( p7 U0 w; k# T2 f - (defun c:s1 () (command "surftab1"))7 @# }# U s; p% T7 e2 N) S
- (defun c:s2 () (command "surftab2"))
* a0 S! m7 m7 \- ~ - (defun c:ep () (command "explode"))6 P" u$ P" P9 m. X* z2 }
- (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))6 K N3 N9 H! m+ ~) r
- (DEFUN C:QV () (COMMAND "QSAVE"))
) R9 ?7 d" k' i; g; | - (DEFUN C:S () (COMMAND "STRETCH" "C"))' [8 k* V b& D7 C( o
- ) }) @! S* k. l, m% @
- ;************************** CAT DIM **************************. }: T# @! i0 ~6 H. @# c* h) C
1 Q( f7 O2 E# h- s! J- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I
d4 n* b$ p) g) v* l. O& K, \ - PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)
4 p. _/ R$ x" j8 N! h - (SETQ CMD (GETVAR "CMDECHO"))
# m3 H3 h" v# n, u3 q9 { - (SETQ OSM (GETVAR "OSMODE"))
# f' L/ F& Q5 ?. K$ `7 R - (SETQ OLDERR *error*7 p/ T V" Q( R; v" T' [6 ` B
- *error* myerror)& q* O+ Z- g) J
- (PRINC "Please select dimension object!")! _" s5 t- A* ^ q, F
- (SETQ SS (SSGET))5 a" s+ x: h8 t
- (SETVAR "CMDECHO" 0)' d7 g8 p) r1 {, }8 W# c1 d
- (SETQ PT (GETPOINT "Point to trim or extend:"))9 c( \# t6 v- F2 k9 |4 c4 V
- (SETQ PT (TRANS PT 1 0))
1 z; |3 b/ X& a- c7 F - (COMMAND "UCS" "W")$ J. I& l) d# C/ ~
- (SETQ LTH (SSLENGTH SS))
* D" }6 \% J9 {' o& {9 C# E% d - (SETQ DEM 0)4 |1 h2 X5 k9 h6 u9 v+ U
- (WHILE (< DEM LTH)" c2 h; x1 T x: X* ~% |. ?
- (PROGN; i/ Q' R; O h- s- _
- (SETQ DS (ENTGET (SSNAME SS DEM)))
9 K7 W& R: a/ ] - (SETQ KDL (CDR (ASSOC 0 DS)))+ g2 I a2 o" j- h
- (IF (= "DIMENSION" KDL)7 K) S0 [( i& B# S# t5 R! H0 _
- (PROGN8 p( c3 G) E6 ], r3 d, u& v! ~1 n7 G
- (SETQ PT10 (CDR (ASSOC 10 DS)))8 [. Q5 Z7 v( N9 D# {
- (SETQ PT11 (CDR (ASSOC 11 DS)))$ B; ~( N2 S3 e5 j
- (SETQ PT13 (CDR (ASSOC 13 DS)))! w R; u( k @1 e( A
- (SETQ PT14 (CDR (ASSOC 14 DS))). I3 b' X/ \2 f& j! E Q
- (SETQ N70 (CDR (ASSOC 70 DS)))
. c7 c# F$ O9 o8 O% I# ] - (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))" V* X: ]( _* A) }0 H& w% o# @2 D
- (PROGN
" Z# g/ o" }: n; k- n z6 I$ C) { - (SETQ GOCY (ANGLE PT10 PT14)): g' |8 ^+ x I/ b- m3 | }
- (SETQ GOCX (+ GOCY (/ PI 2))): M1 u. {. P% W) m' j. p
- ). i* H% p9 M! g9 G2 b( Y6 x* Z3 p
- )+ Y' f6 q; t/ p( ?8 F: i" g
- (SETVAR "OSMODE" 0)) d8 Y2 r# y2 M6 |" W+ a
- (SETQ PTI (POLAR PT GOCX 2))
7 {: i9 d, X( _8 _ - (SETQ PT13I (POLAR PT13 GOCY 2))
3 U# Y+ f. T8 q) ?: N1 z. l - (SETQ PT14I (POLAR PT14 GOCY 2))+ [5 W$ u% u) h* y
- (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))% F; f( V" a! o$ p
- (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))7 v" j% r0 H# o8 C9 R" H
- (SETQ O13 (ASSOC 13 DS))
# \1 c( v, h7 I6 I) k2 L - (SETQ O14 (ASSOC 14 DS))
8 K; l, v2 ]# R% b - (SETQ N13 (CONS 13 PT13N))
) }0 G: f$ m# k- S2 Z5 N- @ - (SETQ N14 (CONS 14 PT14N))
6 J2 M% _0 R; Y l7 V1 |! ~ - (SETQ DS (SUBST N13 O13 DS))
s8 Y* s/ w# O3 [& K4 U C - (SETQ DS (SUBST N14 O14 DS))
7 F2 ]$ Q$ B' w! ?! _ - (ENTMOD DS)9 i( x% I m+ h {9 p. b- m
- )5 E0 r9 J3 A3 G* P7 U/ g1 p1 h
- )4 x- w. r2 J6 ^: l, y
- (SETQ DEM (+ DEM 1))
# n g R; M C' Y! Q# \ - )
% M- ~2 `( D5 P! F& ?0 \4 d1 N. A( f - )
# A( i. i$ r5 f5 o1 n6 m2 { - (COMMAND "UCS" "P")
1 a: D4 `2 p- h1 t6 O - (SETVAR "CMDECHO" CMD)) J4 O; e0 t d! R
- (SETVAR "OSMODE" OSM)
. c# p* J3 \- U3 f! d - (setq *error* OLDERR) ; Restore old *error* handler
( D: Q* F) b3 Y& t' V l0 r - (PRINC)
' b6 |7 v4 B6 y2 p8 U - )
Y0 h3 W8 J: e/ o4 m+ d
3 P$ f/ {- r2 y* u7 r- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI
% \5 W$ y* J5 x8 j - PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)3 X7 I$ B+ C* W$ }" z2 p
- (SETQ CMD (GETVAR "CMDECHO")): P0 k. e3 Z, I% h5 K0 r) z4 A
- (SETQ OSM (GETVAR "OSMODE"))) I) e7 O0 X; I7 E7 t8 T e/ f
- (SETQ OLDERR *error*1 R* G( }9 U' L: t2 w2 M% \" ^
- *error* myerror)
! x) _! V" h8 Z* _* s1 p - (PRINC "Please select dimension object!")3 A# v3 A; E5 ~9 L, |: P0 ]
- (SETQ SS (SSGET))
, f+ O4 A; y' ^9 i2 ` - (SETVAR "CMDECHO" 0)
4 d/ Y; S. D$ V5 E0 _: L- S3 ]! _' a - (SETQ PT (GETPOINT "Point to trim or extend:"))- F8 t+ s/ {3 o! P6 v4 T* y0 C8 f
- (SETQ PT (TRANS PT 1 0))
# M4 f; t9 ^3 A) ~7 ~1 S - (COMMAND "UCS" "W")
) y# j7 [1 C- l8 T - (SETQ LTH (SSLENGTH SS))
% V: M$ N4 G2 x# U1 q& e - (SETQ DEM 0)# b5 R3 f5 C( g. h
- (WHILE (< DEM LTH)1 W7 i) `8 g0 M
- (PROGN1 ]/ x a( F$ X
- (SETQ DS (ENTGET (SSNAME SS DEM)))
7 @5 ]1 R1 U) t* _. V - (SETQ KDL (CDR (ASSOC 0 DS)))+ h6 {, D3 V8 X- X3 g) l" F. Q
- (IF (= "DIMENSION" KDL)
! _% [( K: x2 I" Q9 ]0 { - (PROGN" T' U" P w) X0 n2 H, o
- (SETQ PT13 (CDR (ASSOC 13 DS)))4 d6 W& Q, j% U. t: T
- (SETQ PT14 (CDR (ASSOC 14 DS))), }+ y+ w5 P# T U6 V1 u: a; [
- (SETQ PT10 (CDR (ASSOC 10 DS)))3 \( y) m( W& _: _9 A& @/ U1 a8 R5 o
- (SETQ PT11 (CDR (ASSOC 11 DS)))
" v9 e* b J( X - (SETQ N70 (CDR (ASSOC 70 DS)))) y% D5 u! T4 \/ l1 w1 ^
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))0 o" i$ }. J9 u+ W% i2 n) n% z: z
- (PROGN0 K/ ?0 Q! M# a9 ]4 m r* O3 ]
- (SETQ GOCY (ANGLE PT10 PT14))
6 k, h- a; E" Y - (SETQ GOCX (+ GOCY (/ PI 2)))$ n5 T5 K6 u7 x1 |
- )
+ D9 a0 I! Z" k& f: h - )
x; E& _+ G5 M+ e7 }) _ - (SETVAR "OSMODE" 0), I' N) T* O! i8 y$ X+ E
- (SETQ PTI (POLAR PT GOCX 2))
9 m% h4 Y5 m) C6 p5 K/ j - (SETQ PT10I (POLAR PT10 GOCY 2)). L; X; d$ l& D1 x8 q5 T+ q
- (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))
5 A' X: K( N2 C ]: J" u8 O, u - (SETQ KC (DISTANCE PT10 PT10N))2 x- Q( l" Q7 O$ ^3 @5 i
- (SETQ O10 (ASSOC 10 DS))
5 R) x, l7 _2 s( f/ Z- o; S - (SETQ N10 (CONS 10 PT10N))
5 Z" X A( m$ `; d! O9 \! l7 r - (SETQ DS (SUBST N10 O10 DS))& p$ l2 G3 d- t! j% b" g* K
- (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))& b3 F1 L7 ^. o% M Z1 `7 K6 B
- (SETQ O11 (ASSOC 11 DS))/ N8 a& }. q ~3 h4 w* [* M& I" `
- (SETQ N11 (CONS 11 PT11N))
, V/ \* m4 @+ S$ Q - (SETQ DS (SUBST N11 O11 DS))
5 E A% X c/ L" u( Y K - (ENTMOD DS)
5 L2 s1 ]& b3 X9 h3 w - )! ` p* ~% w9 J# l6 [; G+ _
- )
T9 J7 h: Y# x3 S: J - (SETQ DEM (+ DEM 1))
$ ~$ A4 p h# v$ N; ]( K8 W: a - )2 t, \9 T q, b1 v
- )8 w! |1 F% Q6 C9 y1 `
- (COMMAND "UCS" "P")
8 O9 x/ M2 h3 U; h - (SETVAR "CMDECHO" CMD)) }+ w: S9 E0 B! r* ?
- (SETVAR "OSMODE" OSM)
9 I. y1 k) D7 H7 V8 l( o. p2 ^3 |0 b% z - (setq *error* OLDERR)+ j& R7 E; u* B
- (PRINC)
% V( }2 B7 g9 K2 a - )/ s- J! g& U" T. R$ y9 U4 C1 a
- 1 z* D8 ^6 T8 T5 G; C! N) S9 j
- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================
i/ w% e0 U% L z. X: [$ w/ I
- h' D& d# o) h- K) A' [- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")
. O" t8 ~$ O* o2 ] e - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
* g' H+ {: h3 G* @! o: {7 s - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt3 r2 p! T. S1 C ?
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
5 |- p2 S% O/ o# s - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")
7 O* _' n9 V6 A# W" L7 V - (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))* K* R j" b9 o' v ?* j( C
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
) R1 q6 _1 v, B6 ?; D6 q - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
: C; P" K S& Q& ~7 j7 d+ i& U - ( p# h2 f/ J! i7 i2 p, F
- ;;; ================ CHEN COT (TUU) =================" a8 O/ T0 \/ e
9 g) t6 }! Y1 k# R, x2 v& U2 X8 q- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")
Z$ p8 S2 `5 h8 @* m* n7 J - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
0 `: z- n! ^6 J! \ - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
j7 ?' h' ~ q& N2 n4 Y7 D2 q - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))2 [9 `& u; g$ ^' v
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")
' m9 z* m5 K. F4 w6 ~: {) T8 [ - (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))
$ T* M6 K& N" r' k: K8 u+ q8 e - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
# r& P, W: |0 V0 D Z - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
N) H2 d3 u2 ]" ^3 Q' t7 v
8 H; O' |5 q* ~( V- ;;; ================ CHEN KY HIEU THEP (TP) =================6 v: A8 h; x2 O' I7 @
- $ y7 ~: N4 o! A, A8 h5 X5 z
- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")! L! D8 [% t7 ~, h* i( w' U( b `
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")4 z1 V- l8 i O Q# f1 Q% g$ b$ _
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
& H7 Y$ m6 r& M - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
9 {4 p. V. l1 ]. p5 ?! ~% p - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")
* [- c. D$ f- U( N - (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))
/ P# A% o- z; ?; h q s' k/ Z - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
* Y) j8 M$ D6 e, q - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
; @, P( i* a( m9 w - M0 y) B5 l" I8 s0 ?
- ;=========================== TAM TUONG (TAM) =================================
( ?) Q* a0 D+ O6 W6 h% w' W' g - $ q4 ~& o: N$ x" R
- (defun c:tam(/ data_m)% P% } N- Q4 @5 G9 Q* Z+ v$ B
- (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0))8 j2 m; p9 O; ]2 l, M- O
- (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))/ C' S; \6 {2 z* S! j2 G) r
- (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0) |$ ]* s& J; B R
- (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset
1 d# u( D) a5 ~+ w: w$ _ - (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr
9 @7 n/ d& A; b& z' J) z3 V2 m, Z! F( E- M - (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ)
' L9 _7 }7 }$ C- H5 W! \+ q, ~- K - )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if3 u1 C9 d2 \! }0 v# H3 u
- (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1)
* D( [- f' Q1 ~ I+ h$ t3 F' {* v - distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2), j/ F9 Q% l9 q" {8 F
- (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))
! |- @% c/ A2 Y0 `4 n - (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<
# o1 `/ M) q/ P1 ]9 u+ C! z, I& ?9 q - (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)
& H, B* e$ p& ^) s1 K6 u5 ~ y; Y - distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))
. J$ D$ Q( T, L - (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p4
@/ o+ b. y' `8 b) \% N4 ~5 m - (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not) C% e6 u3 |4 s
- (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget
: D; u/ a) @; f$ b, f- W0 h6 O0 H - (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))
1 r4 T8 P' ^" E - (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))7 s' g+ x# `% V% ?
- 9 |3 _' [4 h! k
- ;============ GHI CHU PHI (T1) ================; U6 L1 P C4 K, u M3 I. N
: z5 r4 g4 A; c: W$ L- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))
# `' r. R2 q8 o; D5 V! D% l6 m - (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3
/ {. A% J' [5 v' d - (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)
8 @& X! t5 Y4 E& w - (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2) d+ S- \& M5 Y) D: E
- ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1))
' U& z Q0 V( M4 u# A. u# i- c - (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)
5 y. V' N5 ?: w8 J - 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1)
- [6 w* @( L/ |+ Y% l: h$ E" w, V, v - (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )
, g, E* e% P8 D8 G( R - (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")
2 X% ?" [$ l7 p( i5 K - (command "ddedit" pause))
9 }: L5 Z) R: M* [' v - 0 }4 [- L8 \ z
- ;;; ========================== Join (J) =================6 C ?; A: g. p
- 9 J( r7 K; Y o8 E. A/ o( M3 j
- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))! I+ R( w [) X- y% n$ a. P% y) q
- (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? "))
$ K' ^& }5 W: C - (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)
3 _2 I$ L; ? d, A# r - ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")
/ e4 ^; a7 Z+ B$ o - (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC"))" m3 z' f7 @0 `( c/ r
- (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt ""))
( J; M% E! ^+ b# U! r - (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" ""))
4 S4 \ K0 t; ~ W, y - (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))
. J$ U/ R% D6 o* M( t6 B - (setq *error* m:err m:err nil)(princ))
8 K+ N* A# a9 ?- e( W" ?0 t - 2 k: G0 O4 w* R# F O' p
- ;=====================================================================' n+ I9 D2 B, O$ j
- ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.$ t3 P" W: q& t1 a2 i7 f1 A
- ;=====================================================================
8 C% S. E; T5 y G3 Q9 n, m - ' L- U c7 E N& v; z. s2 E9 B
- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old)
3 Z+ L, J) P$ N' ~ - (setq old (getvar "OSMODE"))
5 X5 |! V5 p2 @9 Q" b
# m. F% B9 f; J% v2 a- v: e- (setq p1 (getpoint "\nStart point:"))
( r2 d' ~* `( t1 h: q( M - (setq p2 (getpoint p1 "\nEnd point:"))
0 H6 O. b1 m3 R; T* j - (setq side (getpoint p2 "\nOpen side"))6 ?8 g/ U! b$ M% c3 [6 v
8 W) g0 ?" ~. C- (setq dis (distance p1 p2))
, J# W. m& U( O - (setq ang (angle p1 p2)) N8 D: f( e7 a7 [5 K0 I* k
- (if (< ang (angle p1 side))
! ?: ]+ [1 z9 ^, u) W" h - (setq angside (/ pi 2) )
, w0 k- a+ R/ e+ `% L - (setq angside (- (/ pi 2)))! p9 ^2 N# X1 ?0 s+ ?8 _9 H8 h
- ). C: y# W0 y+ g# w+ I
- (if (>= (- (angle p1 side) ang) pi)
0 F. C5 @/ ?; [1 g2 Y - (setq angside (- (/ pi 2)))
7 s, P) N- P( ~8 f - ) q0 i0 @3 N8 t* x/ P& f2 N) m5 U
- (if (>= (- ANG (angle p1 side) ) pi)
4 E$ G% W# l: A$ R* R9 N; n( N - (setq angside (/ pi 2))1 l# `; {( A5 C4 q! O
- )
) k. [& q6 ^4 ?5 Q - * `; x+ l1 ^" A% h0 W& |0 V
- (setq p3 (polar p2 (+ ang angside) dis) )
8 L% I9 ^: C; j - (setq p4 (polar p1 (+ ang angside) dis) ): D z- c2 B6 u% U; @: ^: f* V W
- (setq wid (/ dis 15)); C9 U7 n2 f4 S$ ]- Q5 a
2 R; _! p, a. [8 c+ c5 K+ K1 V$ }3 Y( D- (setvar "OSMODE" 0)
" j8 X& }% ~8 h1 ^ u, l' {
$ j6 t: o2 [7 e* p- F: Z- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
- B d/ u% N6 m - (polar p2 (+ ang pi) wid)
' I6 c5 t. t, {$ o5 _ - (polar p3 (+ ang pi) wid) / q1 X/ j& `/ D2 d8 }$ ]
- "")2 W9 q- q! [) ^9 j
- $ [9 y, k" P0 A k4 l9 a
- (setvar "OSMODE" old)* H% H8 S2 q b2 \
- (princ)
8 Z% X( r2 E% ]/ X - )& n' g5 F) o) L6 M0 ^4 ]7 D
% s5 N+ Z$ N; f8 G- ;=====================================================================( K" m8 ?" W4 n7 {" b
- ; T$ X5 A. P: ?' ~; T1 o
- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old)
# o5 I4 s% j. c' h$ U( _! x- h8 j6 w - (defun cua1 (pt1 pt2)( M8 K ?2 A+ a0 w1 \0 e* {8 a
- (setq p1 pt1
4 E% d% f" h( b$ L$ z5 c4 \' @$ B( y2 h - p2 pt2)
% d- x2 Z; B6 G, ~" ]$ c( b - , [, h2 x# V7 p0 H( q
- (setq ang (angle p1 p2))
# }3 Z" ]. G& r: D( m* I' \ - (if (< ang (angle p1 side))5 w( ~0 }; V4 D* J" P
- (setq angside (/ pi 2) )3 y7 p2 ^* M/ G; @$ `1 l
- (setq angside (- (/ pi 2)))
9 |7 O7 E9 C. Q5 \ m9 K, l4 W. ^ - )% \# G; C4 i4 a3 S
- (if (>= (- (angle p1 side) ang) pi). b# ^0 G1 q9 x# b
- (setq angside (- (/ pi 2)))
4 S# h) _$ i u6 u. M5 H - )
+ ]0 M) z, b! F1 H* |: X- }% I - (if (>= (- ANG (angle p1 side) ) pi), N! d# _. K6 T9 x! V. ^+ ?1 e w
- (setq angside (/ pi 2))4 f' X, f2 A, L& A
- )
( h/ e+ a2 x# D- q
: ^+ Y4 ?2 U* s8 X4 F( g6 _- (setq p3 (polar p2 (+ ang angside) dis) )
7 O7 M$ W1 D6 b O/ |3 P - (setq p4 (polar p1 (+ ang angside) dis) )
0 X4 U, `$ W: H/ {" D# }/ E - (setq wid (/ dis 15))
( R* v/ M4 M( L. l' g- J! m - + G; r. K- ^8 h# u# j9 d, o
- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
. O: Z ^% R- Z5 a( W- o) E - (polar p2 (+ ang pi) wid) ( I9 ?: E( `/ p5 @' E: \; Q! r: {; ~
- (polar p3 (+ ang pi) wid) 1 C6 A. B! }! `( P' x9 u% q+ z
- "")
/ t) q% h2 H4 u7 q+ \% b - )
3 e5 w6 V! E4 M8 g! o' V - ;=====================================================================
5 n$ X, S; I: R* b9 l# }; g - (setq old (getvar "OSMODE")) 3 E& O3 \- ^$ g# `6 h
9 @# S' ^+ p0 _4 ^7 l6 ?% X4 c- (setq p1 (getpoint "\nStart point:"))
4 H- l' s1 Q# w% l( T# A+ i - (setq p2 (getpoint p1 "\nEnd point:"))
! [# x6 Y7 I" b9 c L# E - (setq side (getpoint p2 "\nOpen side"))
- u& \& c* n. s: z
% x0 w4 }; G7 X$ K$ G L- (setq dis (distance p1 p2))% K6 g* C, D7 f$ {" p% A
- (setq dis (/ dis 2))
, e; l. g+ g. B$ U- E6 j9 K - 1 w$ k; v) P( `
- (setvar "OSMODE" 0)1 I P# t: r2 @3 d! B
! p9 F" z" n* p) A+ K4 F3 L- (setq p1 (polar p1 (angle p1 p2) dis)), [' T1 _# e7 d
- (cua1 p1 p2) 9 `: }! D6 Q# p. \
- e6 E9 n0 i; F( F' z
- (setq ang (+ ang pi))- [7 v" d+ [8 f* ]5 W5 V
- (setq p2 (polar p1 ang dis))
0 M9 H+ Y9 j8 H8 u; {0 {0 b - ; (setq side (polar p1 () dis))
" P4 Z/ n2 L2 ~; I7 Q( w - (cua1 p1 p2) 6 Z* _8 S' u4 C; L x, t
- 3 s8 U4 K; _. l- q: S/ T
- (setvar "OSMODE" old)
) I7 J J5 X* J - (princ)
7 {/ L) R! L; w# V1 N - )
, U' e$ _9 C' J; @9 F/ V: h/ f1 T" s: \
; U# a! o: D; P j3 ? k- ;=====================================================================
; H( ?& w$ A$ [$ G - ;"Glue" text strings. All adopt first's properties.) }$ M1 G. }! m" E; S; }
- ; Author:
) u$ _. x% D+ I/ |: `) C - ; Henry C. Francis* t- ?/ d4 [8 _
- ; 425 N. Ashe St.1 C9 g4 A4 H! ?7 E4 S# S6 O
- ; Southern Pines, NC 28387
+ n5 R* Y' U5 a' U* ?( o) t {- H/ b6 m$ a - ; http://www.pinehurst.net/~pfrancis
. Y. b% A; D7 S6 _8 K - ; e-mail hfrancis@pinehurst.net
0 ]2 P. p t0 t1 G8 M& k" u) h - ; All rights reserved.- X, \8 Q8 |& `8 @; g* ] E
- (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)/ n& r$ O$ O6 `" U8 w& p5 A5 n
- (while* x% w, K9 [8 j- R# `. ?! S+ ]
- (not
/ ^/ ^) K2 J( m7 b/ V - (and& V% C2 F; c- y! p* Y$ x8 H
- (setq ename1 (car(entsel "\nSelect first text string to join: ")))
$ `6 M: d8 A+ J* J4 w - (setq ent1 (entget ename1))
, U, P' P- T7 l3 J' | - (eq(cdr(assoc 0 ent1))"TEXT")% F7 Q* S! K' K# K8 e' O) U: g$ }
- );and
' }5 u. Q( ?: {$ c% F: ~1 s: _ - );not6 {1 R @. ]) W' d8 t! I5 ^9 F
- );while6 w h( n; y x6 A
- (setq old1 (cdr(assoc 1 ent1)))7 |$ Y1 J' s H! V* P% q
- (while
# j$ Z9 K) l( x - (not$ [6 _# V/ u/ m% u' [2 i: i- U
- (and! Q, H- w1 N2 h# \6 B
- (setq ename2 (car(entsel "\nSelect second text string to join: ")))
6 w5 K1 T3 J! q) I' w* r - (setq ent2 (entget ename2))
, r9 k5 k4 S/ }; G3 ~ - (eq(cdr(assoc 0 ent2))"TEXT")4 ~2 |. [) G* N# [1 N9 x
- (not(eq ename1 ename2))
+ n6 x/ ~1 w$ U( d - );and
[' g r, m, a# U2 a - );not
, H$ O% b& G) c' u1 I/ {2 ^ - );while7 M( Q8 G4 V0 s1 R# C
- (setq old2 (cdr(assoc 1 ent2)))) o9 H. Y" x) Y& e
- (setq new1 (strcat old1 " " old2)
/ C) Q3 U, O: ? - ent11 X V2 ^) L, c @9 }; ^$ Z9 R
- (subst (cons 1 new1)
7 H9 X, h$ Y5 v6 U' M - (assoc 1 ent1)
, O6 W3 @/ X' c( R: l - ent1)+ r* A/ `( D& G( u4 t
- );setq' A$ O6 Z; H9 T+ J2 [" w
- (entmod ent1)
2 A! j* q6 b9 {/ N - (entdel ename2)( v. z2 ~ q: W8 U" c# U9 ~) l. s4 L
- (princ)+ Q2 B, K5 y9 a+ c+ r" w9 Q
- );defun
( x; X; i* m j) f+ `( i7 P - ! k# X, K+ Y# v
- ;=====================================================================
( [ b) |9 O% c2 Y1 }% }" x& O- O+ ?9 v" ~
$ `4 N: _. `( X2 k* i+ D- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)
7 @4 M# G2 w' R/ { t' w& G$ y
) f c5 N' `: W3 t/ H' g+ h8 B- a! W, y- (defun nterr (s)
1 i# z- A9 I" b$ A, Y7 K/ e/ j) m - (command "_.UCS" "" "_.UNDO" "E")
) k% V9 s! ~1 S% Z - (setvar "cmdecho" 1)
; M2 \! h; s( G' T - (setvar "blipmode" 0)
; N% }2 q8 s, y( p# h7 C - (setq *error* olderr)
, y- C) ^* u* u; }% m# [8 O - (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil
& y, m% O* Q. {; _ - nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)6 z7 h& t4 r( H8 B3 F' I8 I8 R
- (princ)( S; O. j1 v7 {+ C! }
- )
; L/ V, O+ }/ C N8 @* D5 _. h+ l
. Y5 [ z1 i [) x' P& x4 Y- (defun tim_in (dt / p01 p02 ktra)% g8 w1 P; v) q: C( ]
- (setq p01 (cdr (assoc 10 (entget dt)))); p# k( C) f. [1 z9 r
- (setq p02 (cdr (assoc 11 (entget dt))))
7 _* ~) j1 ^; b3 _4 h& u - (setq ktra T)
$ O* K1 ^) i9 d' s - (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
, [0 T3 q7 v2 ?* u* J0 T - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
" Z5 u4 W6 ^# ]5 f - (setq ktra nil)
# | a1 Z) P, g' W& b: ? - )' ^8 U& V, X+ }" J% Y$ ~. l' T( h
- (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
8 x! S0 a ~/ H8 `: ~8 r0 q - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
7 O- y0 B' h7 q3 u - (setq ktra nil)/ i8 x) r6 m" L- |% B& ]
- )
( |( O, e6 ~4 r( Z8 v2 D; \ - ktra
/ }5 P1 d# t7 D8 {4 Y' E) ~ - )
- m2 Y: u; {& Y - 1 }! m, w# Q( w9 H
- (defun timdt (dt1 dt2 / p01 p02)( W; f# E, |+ ~2 G2 a
- (setq p01 (cdr (assoc 10 (entget dt2))))/ w/ K" Z5 B5 P- {* ?" a) L8 R# {
- (setq p02 (cdr (assoc 11 (entget dt2))))
8 ^$ _. s" P1 q - (setvar "ucsicon" 0)
4 e) Q5 I9 q0 l6 z4 n4 v - (command "_.UCS" "E" dt1)
) i* r! X& E, L' l7 `/ m - (setq p01 (trans p01 0 1))
' s+ Q/ V# z+ i- S4 t9 f$ z5 k+ g$ ?. g8 u - (setq p02 (trans p02 0 1))2 H$ A3 z+ Q! B* u; Z+ q; h. ` n
- (command "_.UCS" ""), D6 L( _6 G4 U
- (setvar "ucsicon" 1)/ B4 q1 j; |7 C8 e
- (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))
" `# K& J' X D8 T6 O - T, ], H' P" |4 H6 y6 d
- nil i8 d! u0 s5 S+ [$ B
- )
* B8 `# ]! O: \! ~4 }. ]2 J - )0 [2 _- W' ~2 S3 J
1 R' \: c2 k" J7 Z# @- (defun tim_out (dt / p01 p02 kt)" r% r# x, r+ d7 L( E. c
- (setq p01 (cdr (assoc 10 (entget dt))))
( U( e- K: W8 I - (setq p02 (cdr (assoc 11 (entget dt))))
+ G+ s3 N( X3 U9 q - (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
4 w3 Q: i9 C& v! x$ w$ n. r - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))8 l% V& J& y' c1 n* n( o
- (setq kt p02)
0 A% w# S# e" S: G( n1 {9 G - )
$ w4 e5 C9 F4 U6 B* J2 v ]: Z - (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
6 i& I8 R" p* j/ `* W: E - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
9 |& q2 p. A# b( `1 q9 T, ^) @; o. o8 ~. [ - (setq kt p01)1 c9 B5 ?: j) h. J- F
- )
/ f1 `# A7 q+ ]$ a, C- f - kt
4 W' E3 a* J) z6 } - )
: F& y3 }* {) R- }# O- D( P3 ?
# c9 }7 y4 u5 v' n, m8 k- (setvar "cmdecho" 0)6 u* r4 R3 C. @# d7 q
- (setq olderr *error* *error* nterr)1 s: t7 C: G7 Z/ a9 A. l q
- (command "_.UNDO" "G" "_.UCS" "")
& x* _# M/ T( q - (while (null ss1)) t. N5 w* d& S0 W% D7 K% ^5 Y
- (princ "\nChon tuong muon noi..."); e& w% I7 p' h e" S4 q6 A: a4 z
- (initget 1)
$ a; {! p* q4 Y' A: {! x* A - (setq g1 (getpoint "\n>Goc thu nhat:"))
% f0 k( p' j& K2 m6 v; \8 }- e - (initget (+ 1 32))
, Y4 V+ y( s* {! m7 s# g8 \0 d6 n - (setq g2 (getcorner g1 "\n>Goc thu hai:"))8 ^: j3 f& a$ R
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
! @! U ~ b& _9 N% z - (if (null ss1) (princ "\nKhong tim thay doi tuong!"))5 Z: g; ^3 K2 |8 X, e2 H
- )
2 s, c. p% H, o( f* v' C - ; g2 @% K; y! x( y' L8 A
- (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2)))
+ A- i: w/ ~" z - g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))7 C/ P; Z5 g6 V# I2 W( F: d
- g1 temp)
+ J) u- N+ Y4 K6 C3 o' s - (setq ss1 (ssget "w" g1 g2))3 n' c2 E# K$ W8 l6 {
- (if ss1 (command "_.ERASE" ss1 "")); j2 N t8 {& B0 g; H+ B z6 @
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))$ [2 X+ p, y9 {. L7 y
-
8 o% C! x" r1 @+ c- O& O0 t6 M0 \ - (setvar "blipmode" 0)
' H9 r$ e5 z5 e. j) q8 y# A6 @ - (setq i 0 l (sslength ss1))
$ u* {5 |* [7 Z/ a- k$ L - (while (< i l)6 L% ]0 {* z1 q( R! s7 ?
- (if (tim_in (ssname ss1 i))' G/ Y7 u1 }# N$ A. `6 X1 D1 ^
- (progn
# A& o$ m2 } x5 e' ]$ I - (ssdel (ssname ss1 i) ss1)* e* q, ^& h, d0 C+ A2 n F
- (setq i 0 l (1- l))
' K6 \* ?0 s; c- Z& A; W; y/ A - )
* v, X# M5 T$ ]' v7 k2 M3 p! \ - (setq i (1+ i))
9 v3 x* ] E; G( V% z - )) n+ p m' z0 o+ ] o, s- O
- )7 Z, [2 |% ] g: G4 R7 B
- (setq l (sslength ss1))
2 U2 x/ p5 x' @) W - (while (>= l 2)+ ~6 j4 w4 I' G# n& T! I4 H
- (setq e1 (ssname ss1 0))
, F3 _) @1 u; f/ x$ z' Z - (ssdel e1 ss1)) J- I9 _% x* X5 h& g# w5 a
- (setq e2 nil i 0 l (sslength ss1)). E- D2 w1 T) _4 t9 ^) M4 X
- (while (< i l)
* j+ I( A& o) G8 I1 a: c5 P - (if (timdt e1 (ssname ss1 i))
) ?) d$ h1 U; b9 R7 q( K - (progn1 E: B* r. ~9 z
- (setq e2 (ssname ss1 i))
! h" o+ a5 f5 ^: } - (setq dd (tim_out e1)), \$ L: o3 y* z4 [7 }, a0 ~
- (setq dc (tim_out e2)). y+ [2 X* Z B& \$ `; g
- )
9 M; f% L2 A% {+ N - )5 I( _3 X1 H( ^9 i
- (setq i (1+ i))
' h* h# ^9 T, ?/ X& p - )
6 Q% Q, }% n0 U - (if e2 (progn, {; T# J! t: Z$ }
- (ssdel e2 ss1) . s$ `7 U# Q( p+ c* Z
- (command "_.ERASE" e2 "")
& F- U0 T4 f, ~6 { - (setq temp (entget e1))
, { v( Z1 x" \2 J2 e6 ~9 \( ?* O - (setq old (assoc 10 temp))
& O& }% M$ ^# T8 P: v4 x - (setq new (cons 10 dd))3 M2 T B$ P7 V' U
- (setq temp (subst new old temp))
* w2 V& r2 l9 o1 |! S8 u! n' b& I4 m - (entmod temp)
0 p( `' _6 v$ o/ N! [ - (setq temp (entget e1))5 d# x2 x9 X' e1 i
- (setq old (assoc 11 temp))
+ P0 t8 W# y9 }, {" `0 K/ \) J - (setq new (cons 11 dc))
- d/ r5 p7 X2 D# d - (setq temp (subst new old temp))8 z( ~7 m5 \7 k
- (entmod temp)" R2 x: X |0 x! N0 b/ v# Y
- (redraw e1)
: `4 I) z& r7 ]8 h \ - (setq l (sslength ss1))
: e+ T; l6 ^ L0 E - )
3 W [9 O; |. J( _ - )
0 a1 n& H7 j7 o& y( A - )
' ~& v( X! a/ O; Z
+ K: k4 T' c8 d" r1 d8 U5 P- (command "_.UCS" "" "_.UNDO" "E")8 @# ]/ E3 F, q
- (setvar "cmdecho" 1)/ d) N" W! |. q! J
- (setvar "blipmode" 0)
2 P' l/ R1 l# l - (setq *error* olderr)
0 O9 K" Z1 G+ J6 b$ b, q& W* _ - (princ)
% M! G& {6 T* @1 B0 d8 w( {& m - )
/ R* k7 o: W$ {# y0 I - ;*********************************************************************
9 T1 Y+ g) J( x. U) W1 O' q- o - (defun ketthuc ()
8 s7 ?9 J7 p; ^3 `; W/ Y, ]+ T - (setvar "cmdecho" luuecho)" a1 a1 ~/ X. y; X% |/ P+ M8 d
- (setq *error* luu: h- b+ s* u8 {" k# g" x' }. c
- luu nil ) M4 s5 H: y' w* u
- luuecho nil1 x3 G, P1 R' `( B; v
- );setq w% }1 u# U4 {- i0 p4 g
- (princ)
+ d4 ]. \- r$ A9 F - )
& y) h Q; x% h( X7 N - ;********************************************************************* ? n+ G. k0 d. R3 K# ^
- (defun modau ()
5 t4 X4 N; R# Z - (setq luu *error
+ Z5 H% G& z& g$ e( x - luuecho (getvar "cmdecho")
# \5 f# E, Q- w: H - *error (ketthuc)
' p [% ~2 x" I8 }2 ^ - )' b2 w; b3 E8 w2 L
- )
3 `0 {; v3 r% U - ;*********************************************************************
5 {/ X7 v) J5 J, G4 B0 Z - (defun xulytext (text / kytu ma sokt luusokt lui )
( w( K1 g+ I7 T" S) k - (setq kytu (substr text (strlen text)): M( w, Q: t7 S S* e) o
- ma (ascii kytu)
' Q6 y$ R5 f( `! L- j: [ - sokt (read kytu)
. z$ K2 J7 A; m5 l. k' b& B - lui 1
4 q0 L. H+ r5 b6 v7 _- U7 k" } - )
2 l# O7 n6 h( X2 t - (if (numberp sokt)1 K0 x6 R* @' }- ^
- (progn
3 W& u8 L- `' z1 L7 N$ P% ]4 f: O - (setq luusokt (1+ sokt))
0 Z3 K3 W) }; {# Z- Y! n - (if (and (numberp sokt)
, u8 a$ P9 ^& _- E. E! R - (> (strlen text) 1)
, K& ^% x& L* ] - )
. n7 S9 I H! K3 q - (progn5 \$ `/ r/ q) r4 Y6 I" a( S
- (setq kytu (substr text (1- (strlen text)))
7 Z0 y4 P. d7 m7 S - sokt (read kytu)
( r( v2 g% ~' U$ h' W - )
W/ i5 @7 h. r. H, S! ~ - (if (numberp sokt) $ U* S4 H: N. e0 k% g( g0 R* U! f
- (setq luusokt (1+ sokt)
7 a* L& m2 j" D7 I - lui 2
& T/ h) }' Q! c9 T
8 ~4 |" v' N7 H- )
: o$ ~! y9 G8 y4 M - )
* H! B5 { E- [( w8 _% o - );progn - P2 s) k/ ^9 W8 s! h2 |2 [4 X
- )
0 h. o, [0 ]9 v+ Q- h$ L% V - (if (= luusokt 100) (setq luusokt 0))
4 G. v& ^! X' ] - (setq kytu (rtos luusokt 2 0)6 o+ c# J% b) s/ ~4 v7 K/ h, M
-
3 i7 }1 ]' @; D0 p; f+ }; M$ P - text (strcat (substr text 1 (- (strlen text) lui)) kytu)
g( M$ `# W1 Y" R; p0 H7 i. O - )- m9 O8 E9 h4 c+ v3 V* O6 q1 u
- );progn . `" a N) ]. x6 B
- (if (or (= kytu "z")
W2 ]0 l: V8 H/ U) f7 M; Q7 ^( w/ L - (= kytu "Z")0 E8 E5 I: Q4 M: G
- )
, i0 q8 \5 M z6 ^ - (setq text (strcat text "0")
7 q8 {% Z t- o, n7 O M - textxl "0"
% l! y2 d. G9 q: o - )
& Z0 m4 n3 y% a/ X - (setq ma (1+ ma)) ~% S$ f* k( h' @1 g- b( T
- text (strcat (substr text 1 (1- (strlen text))) (chr ma))1 [1 `" K m3 N; M* X
- )( ~( c, O6 t/ J2 n& t( z V
- );if' X# z" N2 B# h/ O# s9 t) l
- );if( b6 q, P' Z% B5 q& G
- )
1 y- ^3 {. B5 i# H* E$ @, E - ;*********************************************************************! W6 ^/ Q( C. ^8 a/ v4 i- z
- (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)
$ |3 n* t. L D2 q3 ~ - ;Neu doi tuong la text thi tiep tuc
( C+ g0 p. C* |" }( k - (setq doituong (entget tendoituong)1 p' f* e; g, D
- kieu (cdr (assoc 0 doituong))
5 U2 i" p# Y" h2 F - canle (cdr (assoc 72 doituong))
7 E# X. {8 t+ d% ?& v - )
- C% L0 I, _3 _ - (if (or (= kieu "TEXT")
2 j- |! `1 T5 Q. c7 u+ \( E/ [ - (= kieu "MTEXT")
/ X. L6 Q5 B6 Z3 Q - )
. @8 M: a, L( S) u& z - (progn9 F5 \7 P% x2 V4 W3 b, D: J
- (setq textxl (xulytext textxl)# F3 P0 s! a1 o6 s0 w$ w
- text (cons 1 textxl)
4 o. H* `# ~ P' X% Y% K - vitri10 (cdr (assoc 10 doituong))
% S( [4 n/ @( r! Z; \ ~ - vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))
* u: u6 b4 K8 e: B - vitri10 (cons 10 vitri10)
. P& b6 g, N+ a3 ] - vitri11 (cdr (assoc 11 doituong))$ s0 N: f' w5 e9 R( y$ Z3 G3 X3 r
- vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))% j6 D! t" @4 U4 ]5 ]3 q+ C
- vitri11 (cons 11 vitri11)
7 X+ H0 Z8 y7 Q( Y6 P - dem 0
) v5 m% y! L3 U+ m$ J) h- T5 Q* ?7 ^ - dsach nil' J A- N+ h! T
- )8 T; P# [" e6 P5 f
- (foreach tam doituong9 l* k& \8 R' |% w% F9 o8 Y- I2 \& o
- (cond! q% W6 u, O, d& j& j g
- ((= (car tam) 1) (setq dsach (append dsach (list text))))# A0 \ E; \2 @" x" O1 o
- ((= (car tam) 10) (setq dsach (append dsach (list vitri10))))4 P2 P/ B% ^0 }! p* W
- ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))
* u6 J6 f$ Y# G- q - ((setq dsach (append dsach (list tam))))
2 ~) ~3 T! H! o" j% @% G! V" ^8 y& E - )$ J- n+ M5 `8 I* `" x! N
- )* R& y& R' y$ [: B
- (entmake dsach)
. J) e0 ~% k4 U/ x - );progn7 `% S6 D& r; V0 H
- );if
0 t; v4 B. q$ u# x - );* L% c0 I' T2 N2 W0 k& P
- ;*********************************************************************
( q0 x; }- T( w( m- n - ;sao doi tuong cu sang vi tri moi
9 e: G+ M( L/ s6 [5 ^- G
3 e/ x- ]% m4 t3 J" m }, A- (defun copy_dt (tendoituong )& @0 x- O. d* Z" F9 C$ I& R
- (command "copy" tendoituong "" goc toi )
4 A) k2 Q/ |% ~4 L* ]. ~$ Y - );defun& Q7 E0 J2 m2 F9 E! Z
" W$ l# i2 ]8 s' o# k) q1 W9 k- ;*********************************************************************
; V$ O5 g! m: r% e) d, N
) f f" r% L7 w& Z" l$ V- a; x- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)1 ?; X+ L: G* X; c2 F4 d! P
- ; Khoi dau cua chuong trinh
. |6 I: n: e a7 m% v: V; ? - (princ "\nCopy Inteligent...\n")
5 p; R" B3 h8 z, U. O9 L - (setq luuecho (getvar "cmdecho")9 s5 u: H4 d2 B9 q% J0 U9 F- j8 ~, Z
- luu *error*+ h0 C# T% h/ W% O
- *error* ketthuc
' p1 X* X, |" p1 g9 C - cumdt (ssget)
2 n7 P8 j6 K& O/ X) m+ z& S' @ - dodai (sslength cumdt)
9 J) P+ e1 r# e% | - goc (getpoint "\nSelect base point:")) J) `1 ]( p8 x( \% {. z* p
- thoat nil: o) a3 m" A, ?& J0 C/ f8 T! z
- dem 0+ v/ m: y) w' Z9 V% C5 p8 I
- textxl nil2 c" e; ~8 J; s% j7 h) l
- );0 G2 E9 g4 E! k2 l9 p
- (setvar "cmdecho" 0)
2 A* i% K) H$ U/ V - ; Loc ra duoc ong text de xu ly
/ w5 e: q9 r( {3 _) I! e - (while (and (= thoat nil): L+ P! r' g% y1 ^' v6 O
- (< dem dodai)3 ~' i3 v# f0 H2 ]
- )
4 e6 {7 Y% L, y6 D4 X* [ - (setq ten (ssname cumdt dem)
7 ~4 s/ l, P J$ T! E4 t8 t' v* ~ - dem (1+ dem)
9 _0 K) L" c: [# N, B j8 L - doituong (entget ten); A3 J! I4 u. y4 o7 w2 e
- kieu (cdr (assoc 0 doituong))
* |! A1 V$ M; {3 [- C. _ - ) c* ^ a8 G; @$ t
-
, p6 L6 v# G' n; O+ H- i2 _/ k - (if (or (= kieu "TEXT")
) L/ a8 s6 @# l' v - (= kieu "MTEXT")
- c0 |' s9 D; ]3 \9 H( w& K - )
& E; Q$ ~) O4 H. F9 B: _2 X - (setq thoat T! Q+ o0 y2 U6 Q* M" r
- textxl (cdr (assoc 1 doituong))
& s4 k# I+ r. t% K - )
) Z2 l0 T/ d2 o; J% P( F$ ` - ). }* l2 A4 G/ K3 v
- );
, R/ `1 Q% R% o2 `- | - (while T
! i& L3 E. p2 {$ _0 T5 _4 H - (setq toi (getpoint "\nSelect next point: " goc)# H- F! o! {8 a5 v3 I, T
- vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
/ z. i, z0 G/ m - dem 0( X8 ?/ }! `( B# J" X) H* h: l
- )3 ~2 j: r0 A/ A3 R0 F+ t1 R. P b
- (while (< dem dodai)6 H2 P" I/ \& z" m' Y
- (setq ten (ssname cumdt dem)
1 q7 v1 `& ^' |( f Z - dem (1+ dem)
2 A# _; M; ]1 v% O' h8 O - doituong (entget ten)9 t: f4 j, h4 `% @8 O
- kieu (cdr (assoc 0 doituong))
1 [, A5 z9 ^, P1 R - )
. |( y" @# d, z& R( t - . T' t* {: q6 L9 r! A
- (if (or (= kieu "TEXT")5 }$ z) C0 ]) ~: M! H0 h( f0 \5 \
- (= kieu "MTEXT") 7 n, A1 T3 Z: W: ~" J, p
- )
, K; x6 z1 }4 g9 w; V' x - (doitext ten)
+ D( e6 w- a3 R# V - (copy_dt ten)7 K0 a, [& N; [" D5 R
( T! Y3 V2 f: ~: V! M4 s4 C- );if* D% {! E/ X' n& G" ~1 F
- )
+ l7 Y( r) e g7 j - );while
3 p8 y/ P+ r7 k$ @" C - (ketthuc)1 P, X/ M) }# { H; a& S& \3 [
- );defun5 Y8 G9 _8 e$ c6 K
- (princ "Type \"DG\" to start")
0 o- K) |- H/ I3 K - ;Note: bien toan cuc: textxl vitrilech+ N: E8 e l" m; q' H9 D
- & `: C) [6 K, M1 n% p0 t6 l+ M8 E
- ;=====================================================================/ r0 @& [% X5 n- `# p7 C
- ;;; PLJOINFUZZ.LSP0 B3 a5 S; X/ v7 i) G9 t7 S1 y$ P
- ;;; Joins lines, arcs and polylines using a fuzz distance
- W- w9 {+ u. J - ;;; If only one object is selected it tries to join to all objects that are possible% {0 ]" c4 R G2 _/ @$ j
- ;;; By Jimmy Bergmark! U" _$ @/ y1 g6 i1 X2 u6 z
- ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved( }$ p1 Y6 w6 P! P1 C! l
- ;;; Website: www.jtbworld.com
/ `( A g" I% d4 f+ P% z; \" } - ;;; E-mail: info@jtbworld.com
* |- B+ v1 U; b! ~ - ;;; Tested on AutoCAD 2002,2004 and 2005
/ c& l% a* ^( _* s& ~ - ;;; Latest revision made 2004-11-11
! K: E, R& o$ v, _ - ;;; Minor code cosmetic change made 2004-11-13
# M0 p4 i2 S. h - ;;; Bug corrected 2004-12-23 h2 b) ]9 Z3 z- ]- e% E
- ! Q- w. S6 h" F% U* E! c6 g M0 z( ]
- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf
7 F% M1 |. W' _: C, A6 e. y. T! z4 G - (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)& W) a/ h0 z$ |' l
- (setq oldcmdecho (getvar "cmdecho"))$ N2 G* A4 {1 |
- (setq oldpeditaccept (getvar "PEDITACCEPT"))' b" R+ c$ Q) v
- (setvar "cmdecho" 0)' W5 @; F; u4 V; I- K: e- Z! }
- (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))
1 p, i/ K0 j/ _, Z8 e - (if A2k4 (setvar "PEDITACCEPT" 0))
" D5 T2 ]( U# N6 s9 u! c6 q/ W) t - (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))5 p) f. p6 Q/ X. D% ~- N* D
- (princ "\nSelect object to join: ")
" p7 Y1 [7 e- o: F" K - (setq ss1 (ssget okObjects))
( q/ ~ b0 U9 e4 I) V4 w- b - (setq fuzz (getdist "\nFuzz distance <0>: "))6 w6 d7 h9 q0 c4 |
- (if (= fuzz nil) (setq fuzz 0))
' `2 v# m7 ]1 Q" B6 Z, r, e1 [ - (if (/= ss1 nil)
( R. L* n# p3 p8 W5 ^- _+ M" S; C - (progn$ E# F5 W0 p. p1 U
- (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0))))))
5 @" D N3 w9 `/ x1 L - (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects)))
8 p, c* F1 n, l' s* J: H0 H# [ - (if (member objType '("LINE" "ARC"))
* {$ m X! Y9 r- u7 l - (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "") G/ O1 B$ {. h' R- Z9 ~3 N
- (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")- q+ r% S- G5 {* z# @
- )
% y) C- o: K* M" e1 Y% R - )
. M$ b$ ~% ^$ [2 N; {+ p% k p - )1 g/ ^" h4 b/ |; `5 {& F
- (setvar "cmdecho" oldcmdecho)
/ b, e, G) r* Y e- L - (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))7 W4 [0 `) U- w" j$ T
- (princ)
9 {# T3 r( t3 F1 H& e6 e3 ~ - )
+ j# K _/ d: a' ? - - c# U. n7 w; _+ E
- ;===========================VE CAO TRINH===========================
! o/ N" k2 x1 ~0 O+ C; A6 e9 h8 d5 h - 9 m* O1 S+ x, R1 c
- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL# ]3 N. h' t( B! T7 n* Z* y
- CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)
; D! h! E# J1 K+ m, e/ x9 F( U - (SETQ OLDERR *error*
; Y: w( K* e. {" l - *error* loisb)
- |, [7 c9 h. ~8 D/ h - (command "layer" "m" "dim" "c" "" """")
5 K6 ^% `0 X- U1 R" U/ F - (SETQ CMD (GETVAR "CMDECHO"))! Q% Y! c/ `- a) Z
- (SETQ NBC (GETVAR "CLAYER"))
A/ Z" | e+ ^; A) _ - (SETQ OSM (GETVAR "OSMODE"))' q/ B1 w+ f3 L5 R
- (SETVAR "CMDECHO" 0)
! Z+ B, E7 x; D7 w - (SETQ PT1 (GETPOINT "\nDiem cao trinh:"))
* E/ l/ E# }7 s; ?% g - (SETQ TX (GETSTRING "\nCao trinh:"))) J( u* ]$ Z1 ^: {7 B
- (SETQ FCH (SUBSTR TX 1 1))
/ d# t1 l' `% i/ n# H - (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))
( T: F* N* K* ^ - (SETQ CRST (GETVAR "TEXTSTYLE"))
5 p* e5 _0 j* h; U7 d5 y8 D. ~ - (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))
% e/ b5 O i2 S3 J1 ^: u - (SETQ TSIZE (GETVAR "TEXTSIZE"))# X& u7 [0 L- W* f5 j7 T' s
- (SETQ STR (RTOS TSIZE 2)). s; d, b- ^- s7 z |
- (SETQ PRMT (STRCAT "\nText height <" STR ">:"))3 f2 ~# A! O& C; q& l4 X
- (IF (= RSIZE 0)
, i+ R& Q7 ]1 y3 A( C' d' P2 d - (PROGN
, b. s r- ?3 c/ @7 `* ]' x% b - (INITGET 4)( m0 y' J+ ?* Y) `* O( f; |4 T2 V( O
- (SETQ TSIZE (GETREAL PRMT)). f k* \- [4 T! E& T: Z- N
- (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))
- [2 a" i9 `4 K7 v) F - (SETVAR "TEXTSIZE" TSIZE))
4 \( C6 ]1 f0 ^: C/ \( Q - )7 X s! v$ T. {* g( w
- )
( F2 I& R# P0 k - (PRINC)
9 l# q7 v: W& \* k; Z3 ]( Z - (SETQ TL (/ (GETVAR "TEXTSIZE") 2))
+ w& z4 o! y- m( P l" P' q - (SETVAR "OSMODE" 0); v5 d3 E7 } W W! p( ^
- (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))
. B( p' K) J% v$ j7 @: _/ D7 M - (SETQ NPI (/ PI 2))
' ]! g$ Y5 O( Z' H1 F2 P$ f0 _ - (SETQ PT4 (POLAR PT1 NPI (* 1 TL)))
, T3 m! u) [/ ` - (SETQ PT2 (POLAR PT4 PI (* 2 TL)))
7 ]8 A- B$ w* P - (SETQ PT3 (POLAR PT4 0 (* 2 TL)))
* n% L! g5 R% R2 r - (SETQ PT5 (POLAR PT4 NPI (* 5 TL)))
7 B0 d, G$ F6 [" `) q/ _ - (SETQ PT6 (POLAR PT2 NPI TL)), V( i5 P# D) p# I0 @
- (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))1 g0 t4 h0 R! h5 ~% \
- (SETQ PT8 (POLAR PT6 NPI (* 1 TL)))
6 l! N s- ?5 t% \, ] - (SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))
7 s" k7 D! b1 l$ f* K - (SETQ PT9 (POLAR PT1 pi (* 2 TL)))* @& e* _% u: O% B& c7 `
- (SETQ PT10 (POLAR PT1 0 (* 2 TL)))
- B: }2 l& q$ u/ k - (COMMAND "COLOR" "7" "")8 K! ?7 P6 {9 [4 d( F
- (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" "")
/ b, i# M: A5 o u4 \- ^ - (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX))+ b6 k3 u0 N3 c9 w+ E7 L
- (COMMAND "COLOR" "BYLAYER" "") j4 _- x! P3 [. t$ o
- (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")
$ V5 ?& D1 O+ |9 l3 ~# b7 ~ - (COMMAND "COLOR" "BYLAYER" "")4 g- v9 O% i: J9 i0 c7 y, C
- (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")! Z. g- G- h6 ~/ h+ W' E; z
- (SETVAR "CLAYER" "0")
$ S+ b1 H( ^, z( C* a - (command "ddedit" pause)* A2 i1 }3 i$ ^" n; R4 G. Z
- (COMMAND "COLOR" "BYLAYER" "")
. P, u$ ~! b$ z" ^ - (SETVAR "CMDECHO" CMD)* q/ n9 e7 d8 P' p4 U5 L
- (SETVAR "CLAYER" NBC)
2 a- o( T0 `( z. E - (SETVAR "OSMODE" OSM)
: \0 i. a5 E9 l8 } - (PRINC)3 ^: n& ?0 Y; z q7 f; v
- )
" M1 u# p/ ?3 i) P; J$ H - 7 q' |* }- f5 D+ f$ u
- ;;; =========================== VE NET CAT CHEO (GC) =============================
1 ^' [, E/ c+ q0 j# W: t7 K -
* B- k2 ?. w B( d' { e8 F - (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang)
u- e8 _/ D+ D! {# J" G - (setq x (getvar "osmode"))
3 e6 ]) ? k$ W! y' b% h: | - (setq p1 (getpoint "First point : ")
, \. q( v$ [ S D - p2 (getpoint p1 "Second point : "))! D0 p! b3 w* P' d
- (setq l (distance p1 p2))
/ N1 O" {0 J* D- m1 h - (setq p11 (polar p1 (angle p2 p1) (/ l 5))
$ N f0 v X- ]& r @; [' g1 g - p12 (polar p2 (angle p1 p2) (/ l 5)))8 Y+ m% V& j& z
- (setq ang (angle p1 p2))
, F, ?" n1 u; ?; z% z, j - (setq p3 (polar p1 ang (/ l 2.5))
" w: Q! m1 m* M( S v, Z+ x - p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))+ o, T2 _6 `3 T4 d
- p5 (polar p3 ang (/ l 5))/ @# |: p ^2 L* ?! V7 v' s
- p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))
3 R) A/ Q/ S2 g0 M b W- j- y# ~6 m - (setvar "osmode" 0): b2 l0 \4 e( V. a* k1 {9 N
- (command "pline" p11 p3 p4 p6 p5 p12 "")
# u, t- t0 K9 I, t7 d( E - (setvar "osmode" x)1 w: h2 i" H! ~6 ^
- )- ~# ?7 R3 g) W2 a, H
- ;----------------------------------------------------------------------------------& J" Z/ r' ?: _- }! S& B; b( h P
- (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf61 t6 v6 z! v: ?* h3 r, w
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))& ^5 q& t/ @% W" O
- (setq ps1 (getpoint "\Chon diem thu nhat: "))
! i8 E8 e6 `; A( z4 t0 ~ - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
1 y" I' v0 H& |/ ? - (setq sb 50.0 sh 200.0 se 20.0)7 L0 R# T. v" F0 N7 l2 S* g- Y
- (setq ang (angle ps1 ps2))
3 N* g6 J' h7 i/ o - (setq pf1 (polar ps1 ang (- 0.0 se)))1 L' _4 E+ ~% D! v+ E9 l# y
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))% E8 A6 r G! B/ F
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
0 K* O' Q" A2 o7 i4 m& C# X% a* j; } - (setq pf5 (polar pf2 ang sb))
( \! x; m! Q! H- t6 [6 K - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
; F" c5 {% a; T5 W - (setq pf6 (polar ps2 ang se))
( }) C+ _7 P3 S& G* g+ M# _/ _ - (setvar "OSMODE" 0)
( H8 g- \2 O/ {+ k - (setvar "BLIPMODE" 0)
( u2 D3 {- [4 h \8 p0 m5 k - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
; t9 ` `% m: o- d" Y - (setvar "OSMODE" 703)
+ L* ~1 _( f& u# C( R" } - (princ) )
3 E' p6 I/ Z" u. z. m* y1 r0 ^ - ;----------------------------------------------------------------------------------
9 K' Y+ U/ }) A9 D6 H g' l - (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6 \ V2 V) z+ C) s
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
0 b1 S6 A" v3 k3 t y1 p9 c - (setq ps1 (getpoint "\Chon diem thu nhat: "))/ R$ O# ^5 Q0 Y: f3 z* I4 y# z
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
1 [( W8 ^4 B/ A. {9 k! ~$ r9 G: C) r; q - (setq sb 100.0 sh 150.0 se 20.0)
- p5 a1 r; l6 t! [" x2 ^ - (setq ang (angle ps1 ps2))
9 s2 C. x3 v* U& [2 Z9 q - (setq pf1 (polar ps1 ang (- 0.0 se)))- F; y/ j- q6 ?9 S
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))' k& p" `8 g+ j2 K" @
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))+ C% s& D) F! |1 o# P; e) S
- (setq pf5 (polar pf2 ang sb))
% X4 [8 W+ b8 R - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))' N$ m# \5 q) X9 A' Z/ d0 V
- (setq pf6 (polar ps2 ang se))
' S' F+ l% j% u |8 c# C/ Y - (setvar "OSMODE" 0)
) @+ D. C( s# k( }) b2 O - (setvar "BLIPMODE" 0)
1 h. z1 E4 n4 V) }. R. J$ d - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")* S; d) x% n! r: f9 |, ]' H' e& R& Y) q
- (setvar "OSMODE" 703). E, O3 a+ I* v2 ~/ R
- (princ) )1 Y& [! S/ H' l/ u2 P" Q1 C
- ;----------------------------------------------------------------------------------5 a) i& ?/ T+ z9 b. g. s
- (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6. @7 i/ S* K6 a9 E8 y
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))3 G' \ h, `" D
- (setq ps1 (getpoint "\Chon diem thu nhat: "))
; j2 Y& V1 X; E3 D' C: k' C - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: ")): W7 c z! t( ?# \- V8 D
- (setq sb 100.0 sh 250.0 se 20.0)
# P$ z0 Y2 Z2 }1 r( N8 m9 I0 C8 E - (setq ang (angle ps1 ps2))5 P$ N# a/ u+ _6 q1 i
- (setq pf1 (polar ps1 ang (- 0.0 se)))
6 j9 ]4 X( [# ^( p - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))& Z4 H S- A$ V1 P- e& ~
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))& r/ ]2 r, e& j9 u- G z5 X
- (setq pf5 (polar pf2 ang sb))! q4 \( A& n% z% a0 E
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0))): q5 `) f2 T3 w
- (setq pf6 (polar ps2 ang se))/ [2 Y9 P# `+ X; K& _# Z
- (setvar "OSMODE" 0)! h) S) Q3 @. Q' U
- (setvar "BLIPMODE" 0)
6 {: q; ]4 s8 o5 w J, w8 M - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
5 f B' Q) q. L$ C7 v: @! ]8 l - (setvar "OSMODE" 703)
4 J+ y2 [' b+ t( T5 f1 V/ u - (princ) )
& X S& l0 t/ ]% E
- ? M, A' U' F7 F" M; Q- ;==================================================================================
( @( ^: ?# F" T* D; ] - (defun c:ang (/ ent pt1 pt2 ang), z5 P: }+ f8 u5 P
- (setq cmd (getvar "cmdecho"))$ I. D6 j2 ~8 E7 K" S$ I% W
- (setvar "cmdecho" 1)
* F# ^$ k; k8 U$ m' W/ H# F - (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))
+ ]) D w7 J! Y4 i5 w - (setq ent (entsel "\nChon duong thang:"))/ k6 C( f# X7 K4 a+ @7 E0 Q! E/ n3 `
- (if ent 9 g( s# h6 r4 n
- (progn1 m" I8 y6 H0 T& E3 P% z- x
- (setq ent (entget (car ent)))% L4 N, P8 m. d- ]2 X1 r# v$ V
- (setq pt1 (cdr (assoc 10 ent))). S- k/ B% T" A& u" I3 A i
- (setq pt2 (cdr (assoc 11 ent))): o; d. c; y, _
- (setq ang (angle pt1 pt2))
/ V" {& y2 ?1 N/ o% X W& T/ Z - (setq ang (/ (* ang 180.0) pi))4 t2 w* H1 L# i" p5 o, ?
- (setvar "cmdecho" 0)7 m9 Z& g) F- f9 x! T n
- (command "setvar" "snapang" ang)
8 Z& N& L2 q4 b6 {; X - (princ "\nGoc cua truc toa do moi : ")
' [( W4 C8 s( a - (princ ang)
. k0 b1 q4 i4 ~1 P - )
' f+ G+ x) w- k6 N! w# u( {$ r! K - )& J& y& k# I- l$ @ P% c
- (setvar "cmdecho" cmd)
) L' j4 z' h+ b' C - (princ)# J7 U4 Z9 v9 L
- )
d3 T [& B8 m |, A - ;==================================================================================
: E4 U" G8 c& q; ?6 H$ _2 [# e, X - ;============================== KY HIEU DOI XUNG ==============================
1 R: j0 O% _5 c; Z. ^ {5 y$ R - ;==================================================================================, ^* F6 N4 R% x8 D* y# C# G* V
- & P- s2 J8 ?# s4 G' p
- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT9
! ]+ ^$ _& }0 s8 S9 i - SZ G45 G135 G90 G180 SS loi)% M( p( @) m; V# t
- (defun loi (s)
F. ]( P- R& d, H8 d, F7 S" }( G4 E - (if (= s "Function cancelled")
9 l8 j7 c4 V1 [/ ^7 m# ~ - (princ)
+ Z% D- S& R# C9 @5 f - (princ (strcat "Error:" s))7 t+ a5 e' Y" C& h
- )2 w1 N* Z$ _+ L O4 y7 j
- (SETVAR "CMDECHO" CMD)
o" J" W# N' y9 [+ t - (SETVAR "OSMODE" OSM): u/ J1 l* M r; W: o% R
- (SETQ *error* OLDERR)
* j* c2 W7 x. I" T - (PRINC)
! |2 }' F4 p4 r) i( T4 Y - )
# j" V6 s+ g r- t - (SETQ CMD (GETVAR "CMDECHO"))8 K% w% m( o# j- K6 c. Q/ f
- (SETQ OSM (GETVAR "OSMODE"))
3 X& b! v9 Z8 _ [* p - (SETVAR "CMDECHO" 0)
0 T9 r0 C) l; \$ n0 I& R: N - (SETQ OLDERR *error*0 B1 h, ]' F5 n5 L3 f# I4 L
- *error* loi)# V) X) L1 c7 i) L
- (SETQ SZ (GETREAL "Size <1>:"))
0 _: \- H9 O5 V: e+ ]. x - (IF (= SZ nil) (SETQ SZ 100))5 Q0 J& o7 q. w0 d
- (SETQ G45 (/ PI 4))
! X! m9 r5 b5 v' {! V: J - (SETQ G135 (* 3 (/ PI 4)))
! W4 n& c. |0 R% ]4 B8 [ - (SETQ G90 (- G45 (/ PI 2))). z8 y% H8 s6 c, W
- (SETQ G180 (+ G135 (/ PI 2)))5 n d! @9 f) K* @
- (SETQ PT1 (GETPOINT "\nDiem doi xung:")) S$ K1 D/ z3 i G& T
- (SETVAR "OSMODE" 0)' W3 I- O! Q, {! i8 ]* x! B7 y
- (SETQ PT2 (POLAR PT1 G45 (* 2 SZ))). Q7 w! B+ b& r$ J
- (SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))
; z! n, ^: S/ R* S) p0 |6 `7 l% o/ G! z - (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))& a" N) ]' ^+ m5 z ]
- (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))7 Z; B" D- v9 r, n; ^5 E
- (SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))
! }9 _" V% b7 X6 x- @# N: K1 ]0 } - (SETQ PT7 (POLAR PT1 G135 (* 1 SZ)))
3 G# l) ~. W, p7 f8 j - (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))
' S) P, w% U C. D6 W* G" L - (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))+ B1 f3 A- F9 B1 q4 `4 L. A
- (PRINC "\nGoc quay:")
$ c0 K) ]) x: h0 R - (SETQ SS (SSADD))
( ?2 V" W E K: } - (command "layer" "m" "Dim" "c" "" """")
8 c o- x& z' p8 k; l - (COMMAND "COLOR" "1" "")
. F/ G" s& b) S; h$ ]- R - (COMMAND "LINE" PT8 PT2 "")1 o5 \+ [" `' R5 X1 `* U7 G
- (SETQ SS (SSADD (ENTLAST) SS))
5 Z0 x& h( y* o5 T - (COMMAND "LINE" PT9 PT5 "") x5 N* i- a; Q5 a( I+ d
- (SETQ SS (SSADD (ENTLAST) SS))
9 |7 B( x, `7 ] \% L$ e0 ?! C - (COMMAND "COLOR" "1" "")8 ]/ h' B* {* D9 ]8 \6 k, i
- (COMMAND "SOLID" PT2 PT3 PT4 "" "")
8 V* @+ F% ^5 s6 A - (SETQ SS (SSADD (ENTLAST) SS))! A( d4 v6 _4 J% _
- (COMMAND "SOLID" PT5 PT6 PT7 "" "")
P% L9 e% T# P7 X, m# x - (SETQ SS (SSADD (ENTLAST) SS)); H# L% A6 z7 Q! t) M
- (COMMAND "ROTATE" SS "" PT1 PAUSE)
1 l. A, |+ R' \) ^6 S( U7 V - (COMMAND "COLOR" "BYLAYER" "")
$ G v- u0 G$ f - (SETVAR "CMDECHO" CMD)
& Y2 |3 T' F$ k* H( B7 O( L - (SETVAR "OSMODE" OSM)1 y6 E+ s% ^, V+ ^% ~& ?& I& m
- (SETQ *error* OLDERR)
S" P k+ O3 x) P( a - (PRINC)+ X7 i! q, S5 B- s% b- m0 i/ t0 O
- )1 J6 r) B) O6 I( g: J6 S
- - N% }: o4 [! o! w) f
- ;==================================================================================0 V. D9 N8 F, J$ ?7 d; `4 x3 b+ B
- ;================================= KY HIEU TRUC ===============================: N6 |" v9 T: T/ e
- ;==================================================================================# A) @# j' N4 o! h" C0 p! P( q
/ R. j+ A( V. S& o. `- (defun C:vetruc ()/ P( |, `1 p; Y9 @+ f9 e1 b0 }
- (setq bk (getvar "USERR3")); L0 A- y; L* K- y
- (if (= bk 0)
R( u5 k+ D) T. I3 Q - (progn$ d2 v" \4 o2 w4 u/ _+ j! u: U
- (setq cont "1")0 c& V" d% u! P/ ]$ g
- (setvar "USERR3" 1)
. p1 V+ t( n3 |+ Z8 M% y8 ? V - )
$ N c9 i1 o" v4 _- C - (setq cont (rtos bk))
+ y& u, {3 j9 S) F4 U5 _ - )0 O' \ \: J- s3 V5 W) Q
- (setq pt1 (getpoint "\n Nhap diem dat:")); h5 \; ^8 x; {) r; ]: Q5 R
- (command "layer" "m" "Dim" "c" "" """")8 Q. y* S1 I. n/ `# y
- (command "osnap" "")
1 g# {: ~. K0 U5 K+ V9 p - (COMMAND "COLOR" "7" ""), ^( U$ Q4 Z& d; H! V* n
- (command "circle" pt1 150 "")
6 P7 g7 t& i8 K- H - (setq pt2 (polar pt1 0 150))
. i( U, K9 N# y) f! F- s! k, @9 m3 ? - (setq pt3 (polar pt1 (/ pi 1) 150)), |) x U6 G+ X) _- o. I8 Z4 ~4 i
- (setq pt4 (polar pt1 0 300))
5 r8 q' E8 G7 B7 F - (setq pt5 (polar pt1 (/ pi 1) 300))9 f3 S7 w- ?! ~9 N; R
- (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150))
5 }/ G' N7 i7 Y2 N! J: D$ S - (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))
) N6 O3 s; N3 w1 w9 W - (setq pt8 (polar pt1 (/ pi 2) 150))
+ K6 |: L3 L# X) _* ~ - (setq pt9 (polar pt1 (/ pi 2) 300))
. W1 d( }' u5 Y) v3 _ - (setq pt10 (polar pt1 0 150))
$ o! _6 J. G: F9 _/ p. W9 B - (setq pt11 (polar pt1 (/ pi 4) 150)) O$ p& A& J1 x6 ]6 w9 O
- (COMMAND "COLOR" "BYLAYER" "")( E" l* X) a/ g/ H
- (command "line" pt2 pt4 "")9 J- u$ D/ S3 S1 q, z
- (command "line" pt6 pt7 "")
0 x$ \9 d4 R. {8 C0 | - (command "line" pt3 pt5 "")7 o" q) \: O3 @5 r: U" F
- (command "line" pt8 pt9 "")
- K6 c2 f/ r! a - (setq dk (strcat "\n Size:<"cont">"))/ O) Q$ ~8 P, p5 ]
- (setq bk (getreal dk))7 J0 @+ [& g- v0 j% n
- (if (= bk nil)
" x* p& B, G s6 F! m7 x - (progn+ d B# W" ^5 _) w
- (setq bk (getvar "USERR3"))! `7 |: J1 r# S7 |3 H% z/ E
- )
: v) q4 P7 ^( \6 E4 k$ G - (setvar "USERR3" bk)
$ Q7 }+ q) @& t3 K7 U. f: R - )
3 Q5 | {5 N5 u1 ~) [' H' p - (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")# [' a+ R# l* I# j+ q! Z. l
- (COMMAND "COLOR" "7" "")
! [6 F" `% X, D5 n9 A% J - (COMMAND "STYLE" "Truc" "impact" "" "" "" "" "")
" F+ L+ g* M7 v4 j2 Z: ]9 r5 c - (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "") ! C8 G9 }" F& E3 R4 B" \, [2 V
- (COMMAND "COLOR" "BYLAYER" "")
" C; L" f% f4 |2 {$ R - )0 E' ^3 c' F, G+ }/ ]+ I; H
" F9 c( T. g. l# r6 Q- ;=====================================================================
# d; a: P! P' t# p9 o - ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.). `$ t' @) x+ H3 J3 `) }, J5 s
- ;+ m, d6 p8 t7 ~* U" n
- ;Jeffery P Sanders
K$ f5 l/ L" k+ H5 f - ;
+ v8 M2 W. E1 f6 \- B2 Y# g - (defun C:CA(/ en enlist tx newtx cnt tp asc note)) ^- [2 m$ ]! }8 K. V
- (setvar "cmdecho" 0)
6 A- j6 c) G: C4 C - (if(setq en(entsel))! e2 Z+ I5 v, z2 _3 B9 I2 q" }( S9 ]
- (progn
5 Y/ v, {: H, }4 ~! W4 @) e/ x( m - (setq enlist(entget(car en)))
2 L8 U% r. K$ V$ j! l `( q. s9 R @ - (if(= "TEXT"(cdr(assoc 0 enlist)))& w; c5 g7 }1 d6 }
- (progn! j+ ~5 S* B% H* [& [
- (setq tx(cdr(assoc 1 enlist))! C7 D) r* v" K% n! S
- newtx "" cnt(strlen tx)
" K0 b2 {3 b) _+ M, e - note "\n...CASE Reversed. \n "8 H0 r& E2 ^% _( w; m/ d; o
- )& [9 n3 q8 J: Q' U. q3 V
- (while (> cnt 0)( R% ?0 m) X. d5 X6 O
- (setq tp(substr tx cnt 1))# a2 a& R# a) D
- (setq asc(ascii tp))
" b1 b2 `+ [# e7 Y3 y! ~0 O - (if (> asc 96)2 ^+ A4 g# P+ V$ ]: h' J6 O
- (setq tp(strcase tp))
: e: D/ w/ O, v! y( f, l6 g - (setq tp(strcase tp T))
Z" q" N. K; C. P/ X( ?" O" `3 H - )( J% s+ ^" q! U2 O& @; o
- (setq newtx(strcat tp newtx))/ e V& H0 p/ t
- (setq cnt(- cnt 1))
: } z9 x r/ ]* }" i' A - ): M( |* b8 d4 v2 {+ a
- (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))3 g1 {$ N/ G0 s, v
- (entmod enlist)! G) J v. N9 v
- )
5 E1 S$ w' b1 }# j8 y - (setq note "\n....Text Only Please. \n ")
! W' l) a# {& e# e3 V( ` - )9 d. g4 f" u% K, t
- )% w; {9 ?+ Z V- [
- (setq note "\n....Nothing Selected. \n ")1 b c* O+ g4 S9 \
- )
* [$ L ]5 i) J2 [, C - (setvar "cmdecho" 1)- o' s) J& w1 j: q: B
- (princ note)
0 Q& B# ^5 S2 x8 w. v - (princ)
8 ?8 `3 ]/ v1 D: m - )
6 _& H" X$ h/ W( T - + p7 Z' H( @& v% E2 l" h5 M5 k
- ;=====================================================================
" J9 y: z; a1 y* s" J( P! J% f - ;==================== NEW TEXT STYLE UPDATE ==========================
% O. j# _# _) A. e* A$ ] - ;=====================================================================4 L6 M) l( V( y x' C
- - G H Q2 x4 V5 s' ~, A
- (defun c:nS (/ tdt ssdt sodt index)
3 \) ^8 K- C1 o1 x' y6 ?! A1 N, B - (defun ObjName (ssdt /)
1 @5 f7 k+ h1 R" }* H - (cdr (assoc '0 (entget ssdt)))
" i/ S$ }, t# r e2 K m Y - )
$ L$ V2 z* V! m) D" n9 r0 w8 X0 l - (defun MoPL (ssdt /) v5 P& P; O; i
- (= (cdr (assoc '70 (entget ssdt))) 0)) E& ~3 P- q& D1 \. }8 v) h
- )& Y1 {7 b/ N' N& X* ^
- (defun NoiPL (ssdt /)
4 M* E" C, |4 V1 { - (if (MoPL ssdt)0 y5 F( T% l4 ^6 k' }6 A
- (command ".PEDIT" ssdt "J" "All" "" "X")6 K$ H0 c4 w* y. u6 I1 z
- )+ [$ D* ]. E: k/ m" n# z
- )" k" z& v% k5 x
- (defun NoiLC (ssdt /)" j% N% @% V5 D9 H: U
- (command ".PEDIT" ssdt "Y" "J" "All" "" "X")
6 S1 P, ]$ w. _' ` o - )& A' D! H" `5 N1 n( y7 G
- (setq
: F3 q$ ? D. u8 |1 y! ?' W: x6 s - tdt (ssget)
8 k: s: b( S- a4 E; @/ m# o - sodt (sslength tdt), @ d$ H# u2 W7 ^( z/ X
- index 0
9 G$ s5 O4 [ g' n' U1 V5 ?' [: l/ n - )' w& y# Z2 [3 `
- (repeat sodt: w- ^" ~. C! |* g/ x( o1 b
- (setq3 y' z5 d/ y/ ]
- ssdt (ssname tdt index). v2 H& O9 M0 E0 z: N
- index (1+ index)
- } X6 ?1 _5 G- F8 r: x - )* a3 Z p7 l5 @+ k, t
- (if (or (= (Objname ssdt) "LWPOLYLINE"): Z, }& ?; B$ a$ p5 I7 ^
- (= (Objname ssdt) "POLYLINE"). Y ?/ X* U0 m6 c) W' R
- )+ R3 A5 B1 c6 b6 @, T8 j- j
- (NoiPL ssdt)
6 Z; P0 O8 {2 |, i! m r/ e# U# o; X# w - )
\/ t4 E' }; [0 |& D+ W2 _2 C - (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))( U; o/ {/ Q8 p7 d
- (NoiLC ssdt)7 |, J8 o5 P& ]
- )
2 s" l8 ]# u. I* J - )
, G) O% }+ y5 u - (princ)/ N# D( h4 s$ c
- )# p3 L/ }2 N& O
8 q- k- B$ Q L$ [' M2 n- ;=====================================================================. \- r8 W' P" B) E0 ^: @
- ;;; AREAM.LSP
' _/ W1 G _ U X - ;;; Function: Calculates the total area of selected objects
" W# [3 I1 P0 S9 P5 [ - ;;; By Jimmy Bergmark, C6 J( H" X% k! }/ Y6 i
- ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved
; w- Q' F a; q r - ;;; Tested on AutoCAD 2000- D( J/ @7 B# T8 F4 R
- 0 s: P" s6 j2 u' N7 S) ~6 Q9 L: O
- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)- Y8 _. y5 C: e3 {
- (defun errexit (s)6 X' }6 [: Y% @& S$ h
- (restore): n; [1 a K+ p) Q
- )5 S* M8 e+ }3 h& a+ r7 k, ?
- 1 k* G" y/ m( g
- (defun undox () h. l/ O( ?6 g2 N4 G! O- E
- (command "._undo" "_E")0 o4 @: P# f) D# X* K1 x: H
- (setvar "cmdecho" oldcmdecho)
" g! Z% D+ t& ~7 J( x# b3 c - (setq *error* olderr)
, Z c( T9 k8 S, o0 d: F1 _ - (princ)
; [/ b+ ]7 k. y8 n, x ]- d3 j1 b - )
, C5 N' j# W7 g5 z& r - % L8 c$ n6 V' b5 |3 V7 c. U0 v
- (setq olderr *error*0 M4 M3 l) O& C. A' W5 t
- restore undox
/ i9 }: v2 a" t - *error* errexit
2 l5 w. [' Q( W/ Q# q# Z' k I, \ - )- H: `! Y( e1 e8 N
- (setq oldcmdecho (getvar "cmdecho"))
3 b3 B2 d O1 v- d - (setvar "cmdecho" 0)
1 h) [" r7 M" x: V/ w - (command "._UNDO" "_BE") t3 X! R# D' p4 p* I' U2 V4 z
- (if (setq ss1 (ssget '((-4 . "<OR"), y* ~: d* b% Z
- (0 . "POLYLINE")
! [7 r3 `8 v6 f/ Z/ S( ^ - (0 . "LWPOLYLINE")
3 B% t9 }0 w3 u. g: [6 Z$ }+ | - (0 . "CIRCLE")+ o! z0 p2 ?3 T& t; j
- (0 . "ELLIPSE") V- O7 I( |+ X* ~; }: N I* t6 Z
- (0 . "SPLINE")
9 c) n& F% y# @$ W - (0 . "REGION")9 g( x9 v4 L6 J% b3 K+ c( x
- (-4 . "OR>")2 i$ m) q& U* s
- )" Y- t# x# E- T8 }
- )
/ R C' _# ^9 ]% r, W4 E& t5 `8 M - )
. G1 }( d1 U4 z) w, I1 z0 S$ m - (progn J0 l$ S& ^3 u6 P8 w
- (setq nr 0)
2 E$ U$ m4 l- S+ V( E& j - (setq tot_area 0.0)
! B u: x8 E) C3 _; R - (setq en (ssname ss1 nr))7 ?) b0 a+ d& \
- (while en
. _6 P3 R4 T' l/ s - (command "._area" "_O" en)
4 ` e0 t" o i- q; K - (setq tot_area (+ tot_area (getvar "area"))) {$ z- `# K. J# H! T" Z
- (setq nr (1+ nr))
6 ~' [0 d/ o' p0 m. ?; B9 x - (setq en (ssname ss1 nr))
$ r! r! b9 h* M+ v0 } - )
# Z$ J5 w! D" |1 ?7 g - (princ "\nTotal Area = ")
6 A# n* l# j" F% t( H# Y) J - (princ tot_area)5 @& L2 S- r7 R v! H, Z5 ?
- )
$ |' W7 V. r- O& J - )
7 B0 i+ K+ F0 w" s$ W - (restore)
" d7 h$ |, o* v5 J; F4 O% e; |% g - )* \: b2 l3 }/ Z: `3 c
. L7 A1 \8 O9 Z$ D7 e% f. Z- ;=====================================================================! f1 d: _3 u6 z: }9 A+ V3 X$ z: J
- ;;; By Jimmy Bergmark" `7 n' D0 z+ O& n& g$ D
- ;;; Copyright (C) 2008 JTB World, All Rights Reserved5 u# a) g2 O' p# u
- ;;;9 }0 h9 ?1 X: C L3 [" U
- ;;; Created: 2008-03-31
. E; A7 K' [- V* k7 `# Y - ;;;
& m3 F/ _/ b& _' E) W% j: i' T - ;;; Convert Attribute definitions to mtext T" f. P( L- ^* l
- ;;;2 f! p# R9 {; o& n: p$ g
- + G4 m5 Y6 T% `
- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)
& _" u9 {* ~! i/ K$ l- i - (setq eset1 (ssget (list (cons 0 "ATTDEF")))* m" z; g! b i2 C2 l* _
- blkcnt 04 C, R+ b1 a( b. r3 x
- )" o4 v; s$ y; h& U
- 5 w; T( o5 U, S
- (if eset1
! }7 z* `/ x$ d5 l - (while (<= blkcnt (- (sslength eset1) 1))4 J! e, X( L1 x2 Y1 `
- (setq en (ssname eset1 blkcnt)3 r) s5 L$ M4 Q5 r7 \
- enlist (entget en)" m) w# S) ?( }
- ht (cdr (assoc 40 enlist))
' F( M5 o/ V9 Y5 A# k4 b - pnt (assoc 10 enlist)
6 ?4 e% P7 H* F# Q( W; p- l$ x% m - pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt)
* e6 ]* A9 R$ A) F - space (cdr (assoc 67 enlist))
2 K. h* p$ y* s9 T - )
- F4 T# u3 W" b - (setq vl (list
. H: ?2 a/ U, m' W/ L0 y6 o' [4 I - (cons 0 "MTEXT")
! v% ]3 d$ n! H! R - (cons 100 "AcDbEntity")
8 n( L# }9 V. d& h; r2 K - (cons 100 "AcDbMText")
; v% D2 N* l/ n - (assoc 7 enlist)
8 X& ?3 }5 w2 h8 H- W* g - (assoc 8 enlist)
+ D$ r3 T, E0 ?2 a - pnt9 p: a( ]. F' N
- (assoc 40 enlist)* t8 V# F; R% E
- (cond ((assoc 62 enlist)): M% ?) k" c8 f. {
- ((cons 62 256))
" q% k; |/ B/ a& h - ). _# e7 z+ r$ F D
- (cons 1 (cdr (assoc 2 enlist)))
9 S5 ~3 K1 R* ]4 o6 ]/ ^ - (if (= space nil)
9 d+ Q: M9 y; X8 X/ k0 o - (cons 67 0)
! ?+ Y! z5 `( n( X7 `0 {2 a - (cons 67 space)
& d% Y# g( f* K. [' C - )
& H9 w! ^3 E5 @$ o6 A1 { - ); G( e& `/ S: }% F9 U) x
- )" U6 g/ M' n" n- `
- (entdel en)) \: V6 p/ v4 f5 S
- (entmake vl)
* U4 o0 }! ~- I" j - (setq blkcnt (1+ blkcnt)): L$ ~" F! W: `8 y1 U, F6 h
- )
& W6 J+ X) R9 d - )& B& b' v. ~5 M' N% K e, ^
- )
' \1 ~6 s! f% c, `, g; A
2 N1 W( h5 B# ^- k. s$ i. w- ;=====================================================================3 l) Z6 w5 @$ _' Q% M: ]$ ]. h
- ( D7 `1 F) B# f4 R
- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
- j0 j9 {% { `2 G6 c - ; Khoi dau cua chuong trinh
?4 T: C. V1 E& @4 t9 ] - (princ "\nCopy Inteligent...\n")
1 h7 p# x I8 b3 } - (setq luuecho (getvar "cmdecho")/ V; p$ q$ A5 g- e9 Y1 X
- luu *error*& w, a, b3 e+ W
- *error* ketthuc& E" e9 W: S4 |* v) V
- cumdt (ssget)+ w) k. ~, ?( w5 n0 r2 f
- dodai (sslength cumdt). W0 f+ [. y+ v. z- l' X7 Q `) n
- goc (getpoint "\nSelect base point:")" ?; ?0 x1 {% f# a @% v
- thoat nil% a* t0 F+ R! ^5 ?
- dem 0
Q9 Z0 m/ T3 `8 r6 P - textxl nil% o5 s L+ x6 f: K8 g! w$ |3 a
- );- p f- s) b- `- w, R% B6 M* e
- (setvar "cmdecho" 0)
; R" M2 `" j5 U4 B4 n7 J - ; Loc ra duoc ong text de xu ly
8 N' ]+ u4 V! ]2 z - (while (and (= thoat nil)
t; B, y, w0 O$ g - (< dem dodai)
% z2 V5 N% ] ?3 k% i - )6 s) s( X5 n. ?5 v. c# a2 H# M
- (setq ten (ssname cumdt dem)' n* u$ J: T2 g9 p
- dem (1+ dem)
' {/ e$ p- b4 w& f7 G: V - doituong (entget ten)
7 t' @( A) ^! l, L5 [ r: \ - kieu (cdr (assoc 0 doituong)) ' S9 w8 H, Z% `+ @. ?; w
- ). G! h K) B6 K4 I
-
: b7 x% X7 h m - (if (or (= kieu "TEXT")* x, [! k2 B3 l- B+ Q" R( U
- (= kieu "MTEXT") f- o/ g: ^ Q# `* o
- )
4 Q. D. _/ h( T# d - (setq thoat T8 f+ A- P" [6 [' K T; H
- textxl (cdr (assoc 1 doituong)) 2 X2 Z5 ?" g) d# e3 j7 g
- )( Y) ?) d0 v6 u& t( R; b0 f1 O
- ). D3 k9 n, m9 u( ]: @9 c* w9 e$ K/ M
- );
# V0 ]4 _, s$ D" j - (while T ' q# [2 z. o, \- S! k6 d& V- O9 @
- (setq toi (getpoint "\nSelect next point: " goc)
- N+ `* @& R+ S - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
1 @) f$ i* Q1 d; | - dem 0* m( R6 u; e% _7 o0 L% c7 x1 y5 ^( i
- )
# G( n/ c1 P2 w; ]% i$ ? - (while (< dem dodai)
2 |) x2 S0 a; P0 q - (setq ten (ssname cumdt dem)
5 ^! N1 O1 ?) _, n* x$ ^ - dem (1+ dem)1 _4 L3 i: C8 c o5 }# ~/ `5 [' j
- doituong (entget ten)
, i1 M( Q2 G7 g: T3 F% Y" o; ? - kieu (cdr (assoc 0 doituong))
$ v) r( y( B# ]( s) r" D - )
3 s' `. ~2 [9 x' z% @* Q ?. @
2 d1 Y8 h+ Z4 W- (if (or (= kieu "TEXT")
$ K/ ~7 {9 M( ^( d - (= kieu "MTEXT")
: w$ W, G( v! S - )8 D4 {* G, A& g- \3 a/ U/ [
- (doitext ten)/ `* A0 p/ a: o# k0 f7 h$ }4 }
- (copy_dt ten)
9 Y$ l) ^8 `% V& O9 m4 _- L+ m - ! E N) E- d0 A' ^' k
- );if5 V& I' u* _1 ~2 A
- )3 F% e% P: u, g* R2 }+ m: `
- );while* {5 U) M$ P: C. {- a, K
- (ketthuc)
5 D4 m7 P8 {: U) z& K' Q - );defun7 E4 v" l/ I8 ]4 ^1 Q# }& \
- (princ)
2 X2 D* H. c3 v% h4 e9 | - ; K9 S; l3 E* {! g" W' @* ^
- ;=====================================================================
; s* F" t [8 v. u0 C! L4 P - ;;; By Jimmy Bergmark
: c8 N. P- S2 O- _ - ;;; Copyright (C) 2008 JTB World, All Rights Reserved
! x3 ]4 B u6 N' w: ~+ X$ Y - ;;;! G4 e$ D4 Q4 A! R* \
- ;;; Created: 2008-03-31 S: N4 T8 Y, W# J/ }- x3 b
- ;;;, {9 i# ]8 n8 c+ L
- ;;; Convert Attribute definitions to text G- `( h8 {7 S B7 \! ?
- ;;;
8 `+ G( g8 e2 f
& _$ r8 c. T/ X1 M1 L- (defun c:ATT (/ eset1 blkcnt en enlist vl space)
' h* M9 j% c+ Y2 T. k+ J - (setq eset1 (ssget (list (cons 0 "ATTDEF")))
, l3 U; K5 Y: N4 L2 [, @* d - blkcnt 0
: n, d9 M+ x. k& r' h+ @ - )3 g. ]6 N: p' g. }$ H( m! B
- 5 d; u5 N* N) T' ?
- (if eset1! _% O. ~5 k6 S
- (while (<= blkcnt (- (sslength eset1) 1))
; K3 K; \$ q% ^3 U) C2 W - (setq en (ssname eset1 blkcnt)
& V5 c3 y9 D' C( c4 O1 x ` - enlist (entget en)( N5 d2 O, l. }, T9 _- Q
- space (cdr (assoc 67 enlist)) H5 ^0 v1 ?/ M7 Z! H: j1 A
- )
/ P1 r; Q% w$ P2 L5 `# \ - (setq vl (list
8 `6 R b, h* ~ - (cons 0 "TEXT"), x) H6 i+ `! \6 @# P' b. Q: |0 e
- (cons 100 "AcDbEntity")) C' k( z# b% q6 L' ]5 J% S
- (cons 100 "AcDbText")8 l* q# ^6 Z2 v
- (assoc 7 enlist)7 v8 [" N5 w7 p# A
- (assoc 8 enlist)! R/ c. T" w5 N, F
- (assoc 10 enlist)6 X" V. }* }* R+ R. C
- (assoc 40 enlist)0 B0 f' j# r& v4 o) v
- (cond ((assoc 62 enlist))
) B- D( y5 h& A9 ]0 }7 Q; G3 l0 k - ((cons 62 256))
9 U, J1 H2 T4 d) d. O. ? - )4 w- t6 `. f5 f( W8 V5 r/ A
- (cons 1 (cdr (assoc 2 enlist)))
2 _; e; d2 n$ {0 C! q - (if (= space nil)3 R% B. M$ B# j# N. \
- (cons 67 0)
p" Q* {3 d& }7 f+ m4 ~) e# I/ K( L - (cons 67 space)' s+ n/ c1 l1 i* j H) h
- ), g6 C' b6 u1 X4 r" d8 |) E5 g7 `
- )
6 N$ I% x- f- Y6 M - )- |6 {. [; A4 W( N0 q U7 A7 L
- (entdel en)6 ~) O3 E; E6 n% r
- (entmake vl)* ~+ E7 ^2 ]4 r. B& m
- (setq blkcnt (1+ blkcnt))3 N4 T2 F9 c3 g: K, j& \/ K- U
- )
; P7 v' M- u4 n ^) G; U - )! `9 o) f9 `7 U7 O: A; w& J' g
- )
- @, n( D; e$ k7 ?% m - ;=====================================================================
- ^9 U$ s, J8 \ m7 A - ;============================ Doi Truc ===============================4 A" w; g* K, s& y2 w" Y& G" F
- ;=====================================================================3 j/ a' e6 h0 T9 v/ y2 o
6 o, S; z; X6 \: f" {- ;=====================================================================1 W, T G' D2 |1 \" b
- ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============
) J) V0 Q8 e9 A. _8 E# q* K$ a - ;=====================================================================1 m# _% _% N0 V/ a* C. n/ r1 M
- (defun c:ga1 ()' q' b3 B# D1 C& t" y9 C1 q9 n
- (setq a (getpoint "\nChon diem: "))- I! s, T4 |' j! ]* e: ?: Y; R, c
- (setq b (getpoint a"\nChon diem: ")): g( O4 z r8 k/ l$ u [$ L; E8 W
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))7 J. S4 ~: n0 X
- (command ".circle" c a): f: h6 K) D: H" C# E
- (command ".line" a c "")
+ C. A% u$ t+ k D! M7 ^ - (command ".array" "last" "" "p" c "1" "" "")
" C# S. l( c3 ^2 e' H* g/ s$ t v - (princ))
1 f' ]1 z# [; M; N' ~ k - * ^# @6 Y% X5 c% C, b
- (defun c:ga3 ()7 T q* Y+ s# R
- (setq a (getpoint "\nChon diem: "))# l; E' v9 D. q' [5 e
- (setq b (getpoint a"\nChon diem: "))
! s8 n: c1 S+ i - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
1 x% r; N t: E- c# [$ H3 ~ - (command ".circle" c a)! r9 p2 @9 p! K8 _
- (command ".line" a c ""): I! V, O q+ t* d& j, d* Y) h
- (command ".array" "last" "" "p" c "3" "" "")5 p. i$ z( F. C$ Q, M7 V0 U$ M! b
- (princ))
8 j: e; b& a0 `1 i
1 W: u' U0 O3 \" l- (defun c:ga5 ()
9 ]4 g. M7 j& m9 |2 W9 D7 j - (setq a (getpoint "\nChon diem: "))6 ]7 W# }, Z$ f. N/ r
- (setq b (getpoint a"\nChon diem: "))/ O8 Q/ P$ j" O# w: r) G9 e: E
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))1 P- L1 A- I+ a
- (command ".circle" c a)% M: @4 D9 ~5 {3 b* e" {
- (command ".line" a c "")
3 `$ A( A" l* Z- @. O, C - (command ".array" "last" "" "p" c "5" "" "")
5 e7 [6 ~, q6 N" `9 `; S - (princ))
" P+ w: e0 Y4 ^( q6 Y" `- ~ - ; s4 T7 p M% o( ^$ `$ H
- (defun c:ga7 ()
+ B; W% L- `" H" |5 \ - (setq a (getpoint "\nChon diem: "))
( m. Q- x3 ?* i" ` - (setq b (getpoint a"\nChon diem: "))
8 n+ b1 t$ @, p2 T8 b1 m - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
1 H4 _& p+ @# D9 W1 U - (command ".circle" c a)
0 ~' w$ _. R. z+ x. P6 T2 K4 } - (command ".line" a c "")
- K7 |7 t7 j3 E% L3 E3 }6 E - (command ".array" "last" "" "p" c "7" "" "")
( w1 W' U, u7 O- j - (princ))" V) @$ P" l7 N9 q" I& D
- $ u' {$ p8 T6 T" \! I4 [
- (defun c:ga9 ()
! J( p! [+ d$ S+ ~ - (setq a (getpoint "\nChon diem: "))5 L+ L$ e/ l5 U: h8 A% p
- (setq b (getpoint a"\nChon diem: "))0 `' V7 c0 K+ Z# z. ^! v
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))9 G2 [& S$ Y' V7 ?! ~/ L# P: j4 N
- (command ".circle" c a)$ ?& I8 Z7 a+ W( `
- (command ".line" a c ""). W) Q! t) x' v6 f' }* P6 B
- (command ".array" "last" "" "p" c "9" "" "")) y$ e& B/ s H! U
- (princ)). P2 i$ A `: N. R
- + f! j K! u$ t
- (defun c:ga11 ()+ R( J9 E2 u7 E7 ?2 J' U6 {7 t% \
- (setq a (getpoint "\nChon diem: "))
6 {2 A c U& @ - (setq b (getpoint a"\nChon diem: "))
( c4 h9 r& Q" w, z2 z5 N6 h - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
0 b/ f; q4 a' S) p - (command ".circle" c a)
% |+ e& d8 h+ L: q, {; b% Y - (command ".line" a c "")5 p$ c5 ]& F( B
- (command ".array" "last" "" "p" c "11" "" "")- O/ ?* h8 K+ w1 s
- (princ))
2 f' F9 Q5 H7 s9 T1 e7 I - : Q* y" H% h/ L) s; s
- (defun c:ga13 ()
/ h5 D. o$ V+ f - (setq a (getpoint "\nChon diem: "))4 M0 r$ S, q% q: v" ]3 N* A. r q4 C
- (setq b (getpoint a"\nChon diem: "))
; o- \+ \( b0 }6 ] - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))1 z/ T8 {! F6 b# u
- (command ".circle" c a)
. ^& s5 [9 u4 Y6 L+ k - (command ".line" a c "")" v; N+ z5 q5 T4 e- L$ o* ]
- (command ".array" "last" "" "p" c "13" "" "")
: d8 g4 f5 n3 \4 S0 P. i! B - (princ))
0 m, P" V# ^& i; N
3 s9 q4 p$ { f- o- (defun c:ga15 ()
. x1 r; {; v( r. }: [% a, W - (setq a (getpoint "\nChon diem: "))
. g. C7 G5 J* J( k3 b) r( y6 r1 g/ e - (setq b (getpoint a"\nChon diem: "))
: v: ]6 w3 W* Z - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
* R2 R8 }2 F* i- d - (command ".circle" c a)
# C" N* T2 A" O/ F* ]; [ - (command ".line" a c "")0 D. A% d$ g) w8 T0 ]" A
- (command ".array" "last" "" "p" c "15" "" "")
2 X+ j% V( m8 `- E& w. d5 J) w+ O2 l - (princ))% c5 p5 }5 X+ Q: q4 z v: a* m( p
0 E& o* w' c" `8 U( l# H5 L1 W! o- (defun c:ga17 ()
4 b4 Z! A1 }1 {: d2 j - (setq a (getpoint "\nChon diem: "))
8 t$ X& Z4 o. C% \" r - (setq b (getpoint a"\nChon diem: "))
, n' m, O# f( u$ n3 _* [ - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
1 L- w1 F" U$ \) r M- \ Q - (command ".circle" c a)
1 d# u+ U% u+ a* f+ j | - (command ".line" a c "")7 ~; k8 r* V8 y$ M% L0 W
- (command ".array" "last" "" "p" c "17" "" "")
4 P7 `5 ~3 T, `$ d- O# s( @ - (princ))6 X. c4 j6 E0 K- O
* G% A- q, c/ G/ d7 t- (defun c:ga19 ()
& r2 E$ P7 }8 W - (setq a (getpoint "\nChon diem: "))8 a" F0 a! q3 E, l& n% T0 ~2 z8 y
- (setq b (getpoint a"\nChon diem: "))7 @* \( ?7 h' I# g
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
3 w' M; D1 B& b* Y/ F7 a - (command ".circle" c a)0 G; B' `3 V |" F: j7 q
- (command ".line" a c "")
* u- v+ A9 O- P; B V - (command ".array" "last" "" "p" c "19" "" "")- M( j; h! i2 I
- (princ))/ b8 `7 k7 d/ v* h$ f. `7 Z% p1 a
% ~# @3 q" L- {2 ]- S$ T- ;=====================================================================
$ a$ d) p! d) x0 E% @ - ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============& r( T5 _+ B: l1 P2 _
- ;=====================================================================6 S2 J; n' w7 l1 I S+ r
- (defun c:ga2 ()6 F6 s) h- u7 r: O0 l+ ?/ U
- (setq a (getpoint "\nChon diem: "))
/ u5 y0 ]& u. q0 C - (setq b (getpoint a"\nChon diem: "))
/ D- [ y8 I3 q - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))$ _0 F- b. ~7 w
- (command ".line" a c "")
. z6 ~! x( ~3 _ x* V# e% | - (command ".array" "last" "" "p" c "2" "" "")8 ?* Z8 W h* n' b/ B
- (command ".circle" c a)
3 K3 n, d! K J* g* D% B/ J' b - (princ))3 C$ t5 c2 N' B/ L( ^$ \2 _/ l( F
5 W, m2 y6 k4 t- (defun c:ga4 ()
q% i0 }4 w8 \5 ^. {' \3 L - (setq a (getpoint "\nChon diem: "))
+ X. @5 y4 t, o6 n. j% ` - (setq b (getpoint a"\nChon diem: "))
+ J# r$ _ J, u) s; [& {8 ] - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
" P+ |0 \0 |8 j- v) ` - (command ".line" a c "")2 K( {" r/ Y3 n* z+ e7 \% n
- (command ".array" "last" "" "p" c "4" "" "")8 n- y+ V3 i: B O
- (command ".circle" c a)
% y' l" ?. U9 L, y. t: s \ - (princ))7 ^% r+ ^" T/ v6 w6 i
- 1 T- j4 W! \9 K* s3 p
- (defun c:ga6 ()
* ?9 \# H7 t: U' |7 o( \- _: |" [) V - (setq a (getpoint "\nChon diem: "))9 ? _- o. _* q$ q* N
- (setq b (getpoint a"\nChon diem: "))
5 U6 g4 q* C+ y; l5 J- U - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
3 x: Y) t' ^& j1 ?9 t0 s" ` - (command ".line" a c "")
+ W6 `9 F! R( k3 x - (command ".array" "last" "" "p" c "6" "" "")1 `( L+ R1 m. h$ z! o
- (command ".circle" c a)) X# Y8 Q7 d$ Q7 _- ^) r
- (princ))
/ ^1 K" S. s% C4 a( n$ p* | - k. y/ c& B& j' C
- (defun c:ga8 ()" y0 n- N+ S/ P& k) ]$ B
- (setq a (getpoint "\nChon diem: "))
, z, ]7 N" O( u4 T - (setq b (getpoint a"\nChon diem: "))
/ Y" Y0 N: Q0 p9 R' j7 G. T, z - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
1 D5 `8 M# k. `! @8 I' I8 J2 D - (command ".line" a c ""). F P8 v/ L- }5 S! ~! f
- (command ".array" "last" "" "p" c "8" "" "")/ T; n% M3 _ _# P" x6 F
- (command ".circle" c a)$ e5 Q) r9 n$ F- o |% y, e
- (princ))
2 v% t* H2 ^: A: Q" l6 h
7 P A/ [6 b% Q- (defun c:ga10 ()! P3 `* j2 f9 A- p$ u' O
- (setq a (getpoint "\nChon diem: "))1 Q. C0 m4 k( x
- (setq b (getpoint a"\nChon diem: "))
% a) r) ~6 ]2 k6 F" _3 @# B - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
$ t) ~6 e3 o9 \* t3 Z! ?; [ - (command ".line" a c "")
. d$ A! V/ ~; A7 ^* O - (command ".array" "last" "" "p" c "10" "" "")
# R7 C& Q( R' y6 E - (command ".circle" c a)
0 t8 h7 X7 u/ x0 a O - (princ))
4 J9 V, g9 S6 m- Z( ^4 Y
+ S- }+ w/ |1 l$ [. \* V f+ @- (defun c:ga12 ()
$ w% }% ]+ x, ~" S9 l/ a - (setq a (getpoint "\nChon diem: "))4 Z9 X X# A; E* d7 `
- (setq b (getpoint a"\nChon diem: "))
; o3 v4 `. p8 g' y5 v2 n1 A1 J# w1 u - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
" D+ u0 q- m0 _! T0 z - (command ".line" a c "")( R7 k" k0 {- D- S# R5 A" U
- (command ".array" "last" "" "p" c "12" "" "")) ] ]9 l3 M/ @1 H( I: T0 a" w! `
- (command ".circle" c a)# n" e+ d6 b, N3 I$ ^* k3 ?, i
- (princ))8 Y5 U! ]# o- n* F. W/ D3 w
- 0 n% Z: f, b/ O5 b& B, v: [3 l0 F& T
- (defun c:ga14 ()
4 {. \7 Q# b( Q4 D& E - (setq a (getpoint "\nChon diem: "))" I! `3 Z) a" _* i' k; [- V
- (setq b (getpoint a"\nChon diem: "))
2 N, m# [3 h d5 j& h - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))/ m9 L6 l1 h, k9 b2 j
- (command ".line" a c "")2 N; d, ` {: k
- (command ".array" "last" "" "p" c "14" "" "")
+ d6 R9 t+ L' \2 c2 [# g - (command ".circle" c a)- k- A- e ~/ b7 m$ h& J! o
- (princ))# }9 k! R& r D6 v7 O
- + a9 w# J* k- x$ n9 w& G
- (defun c:ga16 ()
9 V% ~8 C3 F" M8 m/ v/ f - (setq a (getpoint "\nChon diem: "))6 A4 n* c- p. R3 A* A' N
- (setq b (getpoint a"\nChon diem: "))
) ~5 e; t# m1 Q$ c8 y6 b - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
" l( E. m$ Z" } - (command ".line" a c "") @; ?" C- e5 ]+ E9 w$ z \: m
- (command ".array" "last" "" "p" c "16" "" "")
- T$ _ s" G, H, w3 p2 E0 o$ u - (command ".circle" c a)% Z" k1 R" l- m" T+ ^$ W
- (princ))
5 w$ z& D5 C: r" I1 T. c [1 M. O
9 U& V% I7 |, ~3 q0 X$ c- (defun c:ga18 ()" t! d( u, u R' I
- (setq a (getpoint "\nChon diem: "))
7 b1 z" J9 \+ X# } - (setq b (getpoint a"\nChon diem: "))
F" @ L' Q9 X. p+ l# k2 C2 v - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))! Y) P2 ]9 D2 x) \2 N0 \
- (command ".line" a c "")
. K- v& w, N# O* I8 m+ F) q - (command ".array" "last" "" "p" c "18" "" "")# V8 n1 ~2 x- J& X
- (command ".circle" c a)8 }5 f; S" t% Z( b* n5 |
- (princ))+ \' i' c5 W+ m9 g2 S7 }5 i/ a' D$ B
- & _+ R- Q# o5 `# r
- (defun c:ga20 ()
4 j+ j U" ^4 q1 Q2 s - (setq a (getpoint "\nChon diem: "))
4 D8 b6 ?* i% ~ d, Y - (setq b (getpoint a"\nChon diem: "))* p# v* W# S" d$ i
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
, e5 O$ x0 V8 G5 i6 u( u - (command ".line" a c "")+ P0 x5 @# N6 E! E u# T4 @
- (command ".array" "last" "" "p" c "20" "" "")
; l7 I: s- i/ v: m, m - (command ".circle" c a)) J0 b% m: t6 X3 b3 j$ h* K* E
- (princ)). F9 `* i" r$ K w
- ( E% Z; W9 Z! Q# s( Q% i% w
- ;=====================================================================' H% I% [. `- l5 N" S$ \
- ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============
& A, q C `' c - ;========================== 06-11-2016 ~ 18h00 =======================
. v/ ~( L* ~! ]- B - ;=====================================================================& o# d, ~1 B w5 D! p! M
- (defun c:ga ()
+ B$ ]2 i5 X7 |) S - (setq a (getpoint "\nChon diem: "))
, @" e3 I- e/ _1 F7 ^) V7 F - (setq b (getpoint a"\nChon diem: "))
4 M) T% M2 m: P: b8 i9 K - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))4 F$ z U4 E7 t/ J8 [! \+ Y4 e( h( ?: z
- (command ".circle" c a)
4 O9 b& d( M5 G/ N) y - (command ".line" a c "")
9 i1 X6 ~ K1 |: q Y$ Y( O7 _ - (command ".array" "last" "" "p" c "NUM" "" ""): \5 Z7 C# K7 k* v0 ]
- (princ))
- {% m7 N, d( V; m# n - * V! l; U1 A8 a
- ;=====================================================================
8 x V' g1 X0 l- _' c$ h: I+ v. w! } - ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============
, ]* U+ e1 z$ H - ;========================== 06-11-2016 ~ 18h40 =======================7 ?4 f0 G3 B% L* @- Y' k
- ;=====================================================================4 Q, }+ m/ T! \* z1 O/ u" q% N
7 o" Y9 d( J0 z% K6 Z: P- (defun c:hoathi ()
/ l/ v; w. H! w) V L - (setq a (getpoint "\nChon diem: "))
5 ?9 L* l/ t( M: K - (setq b (getpoint a"\nChon diem: "))
( ^* ~5 Y+ b# U6 Q$ P4 t/ @ - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
" ^* J$ X1 P8 d! t - (command ".line" a c "")
8 E3 c1 g: d+ ^! O - (command ".array" "last" "" "p" c "NUM" "" "")
! c; h. ?$ `- [! i - (princ))
4 q; o; a m0 ?% ]) J
1 `& F& H* q+ f$ _. T6 j# k7 f! i8 V4 ?- ;=====================================================================/ H: N8 r- E3 a5 B
- ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============
* D& h) r3 M5 i8 Q - ;========================== 03-11-2024 ~ 19h33 =======================. y {( P9 \7 Y4 i
- ;=====================================================================
' W ?- w7 S0 [% h1 \5 _) w: K2 a - , ~) D5 g. K) f$ i
- (defun c:cung ()
+ q8 A: v3 @% i! l9 ~- I - (setq a (getpoint "\nChon diem: "))
! s: B. y( @4 }% U9 M7 Q" _ - (setq b (getpoint a"\nChon diem: "))+ f5 K$ U% Y( w
- (setq c (getpoint a"\nChon diem: ")), g3 r/ b" ?! ]1 U5 C2 |
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))( U" K6 [0 _" C
- (command ".arc" a b c "")# a3 X( K) _# r. p
- (command ".array" "last" "" "p" c "NUM" "" "")8 s% k/ a8 G* z. ^# I
- (princ))0 L9 z* }$ E( d0 e1 b |0 Q% a
: I, o4 ~) C5 `/ n# c- ;=====================================================================& V4 a; d/ k5 e5 \, Z4 ?5 U
- ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============0 o/ u q/ C( e+ P1 X! ~, Y# x
- ;========================== 03-11-2024 ~ 20h02 =======================
4 X! V) \0 I s - ;=====================================================================
8 I: `/ P2 R% ~# P; q! @
9 I4 A, l+ q7 v5 V- (defun c:hecloic ()
& M9 {3 N/ i7 y7 f2 V6 s1 r) y! ?5 F - (setq a (getpoint "\nChon diem: "))3 z Z8 A# B0 C1 l2 I5 W
- (setq b (getpoint a"\nChon diem: multi ")). Q2 B% L9 x( z/ s
- (setq c (getpoint a"\nChon diem: "))(princ)
; }) N2 `" N g4 K- X - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
9 I* ~# Y v% x8 ?, M# u3 S - (command ".arc" a b c "")% q# }; X6 i1 ?) y
- (command ".array" "last" "" "p" c "NUM" "" "")
4 w9 ?" [: c& g1 x# J4 D0 n - (princ))4 ]! J+ P( D A' \, `6 a$ v# k+ ~" o
7 e6 n4 o5 u% d3 }/ w% _- ;=====================================================================" S4 E) {. F) N# B' o
- ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============
2 J* ]: s/ [$ F2 |! N8 s - ;========================== 03-11-2024 ~ 19h38 =======================0 i& N, H( i6 {( J$ |3 Y) K
- ;=====================================================================
# N0 s" y# Q/ o9 j
5 f4 d* M7 e L' k( K) s" h- (defun c:gay ()
' x2 @' l3 B+ I% n2 O+ b$ E - (setq a (getpoint "\nChon diem: "))
0 [5 u7 X& S* v9 v9 | - (setq b (getpoint a"\nChon diem: "))
( S8 N! J6 B% v8 G - (setq c (getpoint a"\nChon diem: "))(princ)
& u N4 c- b' U' i h' M) R - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))$ v7 X4 h5 j Z8 s. `; l1 o/ Q# W! j
- (command ".pline" a b c "")' U! ?) D8 I1 ]# C
- (command ".array" "last" "" "p" c "NUM" "" "")
# N t; j# O2 C7 G* C( f: \9 `4 b - (princ))
, m* {+ U5 [1 l
( L. |4 m+ t5 m/ Z/ E! t- ;=====================================================================5 t* v+ S+ V4 p6 G8 H$ I1 e& E
- ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============
* c$ y' u+ u8 b - ;========================== 03-11-2024 ~ 20h02 =======================
' [2 I8 O2 h/ O& i - ;=====================================================================$ c) F+ i M7 a+ e1 K
- . A8 Q2 M# s1 |3 v! ^) {& |
- (defun c:hecloit ()0 k2 C3 y1 ^) Q! y+ v J
- (setq a (getpoint "\nChon diem: "))- ~4 i D9 G& I7 x) q9 u0 k
- (setq b (getpoint a"\nChon diem: multi ")), p$ v% o9 i e/ |
- (setq c (getpoint a"\nChon diem: "))(princ)
0 Y1 o. c+ u8 O9 f - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
( Y' [( U6 O& P8 u - (command ".pline" a b c "")( ]" T7 q; j V0 z3 W' b
- (command ".array" "last" "" "p" c "NUM" "" "")/ z- ?! S4 b0 n b$ h
- (princ))+ k9 @) k: ? s5 F- a5 t
/ K! r( l$ g/ h: H4 j0 Q- & h6 c3 x+ [1 h0 {. t4 L4 V. ^9 E
- ;;; ============================ Merge Hatch =============================( v1 [0 i6 Q$ B# }
$ ?- U9 y% {. m# x- (defun c:mh (/ ss entht sl i dt dtht)
# s v0 Y5 u5 J& r - ! |& |) K0 P% U
- (princ "\nMerge Hatch - free lisp from CADViet.com")4 r: c8 O6 H" a8 C
- j, s& o6 ]) d# A P. Z' V; v1 a3 l
- (setq. {2 k1 w, z0 |% H3 `
- ss (ssget '((0 . "HATCH")))
9 Z7 [) E" j3 O4 ]$ |. ^* ` - sl (if ss
% T) f6 b v1 X0 T3 O3 d - (sslength ss)
3 t" W Q) J- c+ W7 A* C8 f& G3 t - 0* N. i& d/ Z8 L: `. b% W _5 ^5 Y$ s
- )
: b0 I& K/ T% ~ K - i 00 m9 o3 } Q, F+ w7 s! L6 b
- l 0# I) R! b+ K. J# x' R, {( e
- )
* \7 @$ X7 i: w6 k
! \' q- i1 C4 V/ d5 L- (repeat sl9 i7 S$ V, J, `. g
- (setq- A" [) \" ^7 M9 u4 S6 b; {
- entht (ssname ss i)
& G9 S* V6 ]( U2 O0 e o - dtht (getbdata entht)7 z1 J6 I1 D) h! K6 v X
- dt (append dt dtht)
8 Q$ Y) Y9 n' }. W* s - l (+ l (cdr (assoc 91 (entget entht))))+ ]5 `0 N. Q: z$ M; {+ f; k- n
- i (1+ i)7 x/ M, ^7 ~% T5 K4 ^
- )3 |0 b$ }( B/ f
- )( y6 |& ^$ | g
- ) O* S7 v7 [2 B6 f4 G( P6 J9 q
- (setq ent (ssname ss 0)8 I9 I7 N4 w7 T, S9 ]5 j% ~
- ss (ssdel ent ss)8 T. M' A5 n; G- ]" U
- tt (entget ent)* h5 Z2 W( V6 a9 B
- duoi (member (assoc 75 tt) tt)
# i0 Y# m* c* u; T' y2 n. r2 i - dau (reverse (member (assoc 91 tt) (reverse tt)))
) I& U& o7 ?& U, q - tt (append dau dt duoi)+ M& } S7 N4 X( ~
- tt (subst (cons 91 l) (assoc 91 tt) tt)
$ w' X, `, E+ _ - )
$ b ]# V+ A& L3 k, z; h' F5 S/ | - (entmod tt)
& q' D/ h2 k3 B4 @5 F - : ]8 f8 i& `& K1 V
- (command ".erase" ss "")
. L" |! t% E" S/ v4 ?& i3 x - (princ) M1 h! R0 A& ^# o8 [1 d& G# O
- )
! D d& k8 A% M5 u' r9 i - 1 h% A4 d2 J1 p* |9 V# S' Y( ~
- (defun getbdata (ent)
* Y+ C/ o9 H4 x5 Q; y4 | - (setq tt (entget ent)9 v( t5 `' T8 u& |' A+ ~
- tt (cdr (member (assoc 75 tt) (reverse tt)))
" b3 A; c( ^4 E/ t7 J - tt (cdr (member (assoc 91 tt) (reverse tt)))! a$ R7 L) H; h" }; @) X: U* V9 m
- )/ h+ q% d9 K; Q/ P9 t
- )0 z% b/ c/ E1 x; y; @! b m
- 9 g% |* b0 l6 N' `
- 6 ~, F7 ]5 u% i: U3 y, P% f/ V5 r
- (princ)* E" s, y# ^' E4 M. \
6 s* w6 ?2 y( I$ @- ;;; =========================== CAC LENH LAYER ==============================
3 W3 ?$ G! {6 W# x1 O- C9 {2 v - ;;; =========================== Layer hien hanh =============================5 X; z, f, R7 v! e
- : ]# c7 [% J- B- K; d& N
- (defun layset (/ LAY) (setvar "cmdecho" 0)
" t& f4 R4 Z. u1 i" b - (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))
# c4 F- y- k* Q9 Q - (if LAY (progn 5 |2 C1 D1 ~; C" o/ ^ ]- s
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))$ l& f* R; p$ |5 y) J( y
- (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )
) H4 b9 G" h4 C - (progn
8 X7 J( g2 c6 X9 e' R) d' R$ p - (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop)) & R. ]+ ~! q' f3 G+ H- q
- (progn
' ]0 [3 W7 _/ Y; z4 `. t4 E - (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )
* u& a' T0 S/ {4 d& g7 u; r2 F9 [ - (defun c:LLL () (layset))(defun c:LAYSET () (layset))$ c! I8 u! ^& Y. r, x" J6 R
- . h3 P1 a) T% T- n
- ;;; ================== Cap nhat doi tuong vao layer hien hanh ==================
6 z" g2 M3 y; [- f
- X4 { a" z: M& z5 P& Z% _" c2 j- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)
! o1 d: f; n& r - (if (not (setq SS (ssget "i")))1 l. d: J( I5 H: g) P2 u7 j
- (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")
$ Z: k* k; ^: o6 @3 t* T1 m( B - (setq SS (ssget)) ) )
. b+ K( g1 L1 r# o$ S - (if SS (progn) Q% F5 p4 j2 h6 [, x! N
- (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "")
" D' m7 C9 l9 _& k+ v( V - (if (> (getvar "cmdactive") 0)
: p9 L$ v. m1 H! D - (progn
2 L: T* O ^* g6 E5 t - (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )9 [+ y. K6 @2 U V1 F
- (setq SS nil) ) (if (> CNT 0) / P R( g" a: x/ v. W+ Y( d( }
- (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )
; |1 ^3 V7 }9 ~/ I# U% I - (if SS (progn" C, ~& j! V0 O `' i
- (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")" j0 `0 K- _1 v
- (if (= (sslength SS) 1)
; L# D% s" p+ W" Q* v - (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))
: s/ _! B5 T4 y) s) r$ N - (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end
& x; J( K, m" [3 _7 Q - (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur))
% N3 r+ D$ _* ~! q/ C, h- a
0 ]( ]% |2 u% ]) v; k- ;;; =========================== Layer Iso ===================================
* ^; F# |0 c, v$ W
( E, A9 R5 V* w4 q- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0); S7 I$ G$ O( k& a6 ?$ W; I
- (if (not (setq SS (ssget "i"))) (progn7 S& d8 Q/ z: ~+ e' d
- (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ")
0 m% v. S0 e8 B v - (setq SS (ssget)) ) )
?6 `: ], e& y( m - (if SS (progn (setq CNT 0)* Y2 E' W0 C2 i
- (while (setq LAY (ssname SS CNT))
: X! A. h" w- Y O# I0 Y, U9 x - (setq LAY (cdr (assoc 8 (entget LAY))))
& ?, g$ G A, p - (if (not (member LAY LAYLST))
# P7 E* ]+ q# g9 O - (setq LAYLST (cons LAY LAYLST)) )# L \& x9 O! W# p: i7 h
- (setq CNT (1+ CNT)) )9 Q& E6 K; \7 |- r( _6 {- o
- (if (member (getvar "CLAYER") LAYLST)% D8 H; A& V" o R; |# h+ i
- (setq LAY (getvar "CLAYER"))# r) x. Q2 Q0 m; v
- (setvar "CLAYER" (setq LAY (last LAYLST))) )
% D) P4 ?; J& U* K5 L& J0 Y6 i - (command "_.LAYER" "_OFF" "*" "_Y")
. c* L" |8 J) d7 c - (foreach VAL LAYLST (command "_ON" VAL))& `1 m2 x0 F) C/ t# W1 c, j3 U
- (command "") (if (= (length LAYLST) 1)# e3 {* w# e& s9 Y
- (prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))3 b. S' a; t- T0 V7 [
- (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "
8 T* F* X' o2 p- { - "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )
# V {3 s0 r& M4 k( K - (defun c:LAYISO () (layiso)) (defun c:LI () (layiso)): Z7 Q7 h% U: d0 A; S$ M
- : q) r. N, c4 D
- ;;; ========================= Layer Match ==================================
+ ?# \* w& X, n5 T3 m' b
: W4 j7 ]$ c. c1 Z1 x1 }8 Z- (Defun LAYMCH (/ SS CNT LOOP LAY ANS)
: o+ W5 V* \" I7 H% @ - (setvar "cmdecho" 0)
^9 q2 A6 E% H - (if (not (setq SS (ssget "i"))) (progn; g. [' j$ Q) \9 m/ G" b
- (prompt "\nChon doi tuong muon thay doi Layer : ")
8 K6 y7 g% W. \0 I `0 T5 k - (setq SS (ssget)) ) )# Q: D: b' @9 h: y
- (if SS (progn" G% u4 R, X- n1 x. C$ }6 @
- (setq CNT (sslength SS))
1 N4 |+ r) n: {6 D1 F - (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "") " ^8 w) L9 d( r( C
- (if (> (getvar "cmdactive") 0) (progn
5 f, F) L2 V2 Z. y2 {* o7 Z - (command "0,0" "0,0") (setq SS (ssget "p")
+ ]! \& u5 D8 I6 {7 ?7 P, g - CNT (- CNT (sslength SS)) ) )# H0 Q$ s8 M+ i& C9 p! U! w6 X
- (setq SS nil) ) (if (> CNT 0)
9 o) X t( o3 Z: [5 q2 P - (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) )
7 X; U' b/ D1 T7 u - (if SS (progn0 t% ], R* n% t8 V" H0 {$ w) ?
- (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T ), Q8 c% C6 v- j: @
- (while LOOP (cond+ s) Y- w0 p' z8 ^
- ((not LAY)! `% i( K" o8 ]
- (prompt "\nKhong chon doi tuong.")
4 b9 Z* c% X' B) ~) U - (prompt "\nSu dung layer hien hanh? <Y> ")
: ~: Z' _+ ?, o- ?8 T1 ? - (setq ANS (strcase (getstring)))& m' q' ?+ O/ r# K+ y6 p
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
1 M: c' s+ Z: ~# q - (setq LAY (getvar "clayer") LOOP nil ) ) )
( a6 p4 }( C+ Z" M- F" P; Z" ]5 w - ((listp LAY) (setq LOOP nil) )
3 a$ q4 R8 n) I4 n' m4 J0 D - ((= LAY "Ten")
6 N& @4 j: p# n+ w' S) l - (setq LAY (getstring "\n>Nhap ten layer: "))
9 `/ ?+ |: `) b9 X - (cond
& w" ~9 w0 j% R - ((tblsearch "LAYER" LAY) (setq LOOP nil) )7 l) Q2 R3 X3 w/ A8 n# a' ]. x
- ((/= LAY "")
1 C2 q+ D8 g! K8 Z - (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: "). B0 f$ f" E' K. J) Q& Q. A
- (setq ANS (strcase (getstring)))
6 f9 {+ t& ^6 x" M1 z; O - (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
% O2 w R! n& c' J( G - (progn. f+ O+ `; L' C
- (command "_.LAYER" "NEW" LAY "")
% }3 o' b/ x- G: n - (setq LOOP nil) )
* z5 R$ ~+ `, Y) b0 R. H' O+ b0 H - (prompt "\nLoi ten layer.") ) ) ) ) )/ @% i% r9 \) d
- (if LOOP (progn (initget "Ten")
) o0 V6 @' m5 v0 p - (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP+ j, [- Y4 r. v z4 x5 ]
- (if (listp LAY)
4 G2 @% f/ [. |& q - (setq LAY (cdr (assoc 8 (entget (car LAY))))) )# X: I9 f7 {* ^1 D: i2 p/ p6 o
- (command "_.chprop" SS "" "_la" LAY "")
! s9 a z' o! m* z& [/ f - (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )
. T3 d% s/ ^* b& w9 m. E, w$ _6 u& X - (if (= LAY (getvar "clayer"))
% H7 r8 L A6 n" w - (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )
. X/ [' u# u! X, e1 g$ \( E - (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch))( ~- x1 J. c2 P2 g T' A
- + A1 d" B8 S5 w. y
- ;;; ============================ Layer OFF =================================
, Q% t4 e3 r% B/ c1 p
x' N: l2 X$ V( F2 W- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE)9 o. l8 V9 k6 x9 j1 M) |* i: `
- (SETQ SSET (SSGET))
6 K! Z. H+ x& P+ `- p - (IF (/= NIL SSET)
# Z$ n% v6 K* U* |; l! z! i! l - (PROGN
$ H8 R' y& N9 r6 o. M - (SETQ SSL (SSLENGTH SSET))8 }8 _0 Q: X1 _ B% k
- (SETQ LAY "")
, J( @8 E" `5 Y# L- t2 {0 N1 g - (SETQ I 0); p: t& `; q; J9 z
- (SETQ MODE 0) 5 b+ r' v" N+ o7 x/ W) w
- (WHILE (< I SSL)! \9 A6 t4 _2 @, N
- (SETQ ENT (ENTGET (SSNAME SSET I)))7 O) d- b& U6 V P/ ~, v% l2 h
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )7 f( p7 r, Q5 D6 q
- (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))' b# Q- G5 K& h7 u- @
- (SETQ I (+ I 1))
$ t7 P6 D- R/ m5 Q - )
2 F, _( w0 z8 @ A9 J* K - (COMMAND "LAYER" "OFF" LAY "")9 z( p i8 s- w5 u! c, A: s
- (IF (= MODE 1) (COMMAND "") )
4 x* J% L3 b Y* U6 ^ - )
) w8 Q$ r e2 o+ T+ p2 C+ Z5 X - )
$ {7 l; A6 C' l' g, _! H - (PRINC)6 e$ ^* g8 t: U8 G- J5 Z# e. F
- )
0 \6 l0 R! ^. w) g- p - 9 a5 J- F$ |3 d) V ]
- ;;; ================================ Layer ON ==============================
9 l3 I% B. N# u; N
2 Z$ u/ k/ D+ n7 M- (Defun LAYON () (setvar "cmdecho" 0)
% D3 [- z7 L; r1 h) T/ T$ X& X5 Z - (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")3 w- n/ }" _% r0 [# j
- (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))3 ` U, a5 j) A5 S3 W
- (defun c:LAYON () (layon)) (defun c:LOO () (layon))
. N' X' y1 E7 }7 Z% t - (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))' I( m5 M; k% J1 c B7 [
' d$ S+ ~6 @+ ~' W% |2 p- ;;; ============================== Layer Freeze ===========================3 }; K+ p$ E* j- @! c8 p8 R
1 ^4 x y' s" z3 g/ D" l+ v- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0)
5 Z( R# U( W( D# i* G' A - (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))
& W0 h6 X! _1 w5 ^* v3 U7 b - (IF (/= NIL SSET) (PROGN
/ J& O7 v \2 p - (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0) 0 ^8 k% e! w3 ~( H# ^- i% R
- (WHILE (< I SSL)
1 Q9 N' z- B; F; M6 d1 Y% J3 o/ B - (SETQ ENT (ENTGET (SSNAME SSET I)))$ i+ \) ?/ a6 u# L7 g+ L) x
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) ) }0 u; c5 d! D- m) P R+ w
- (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))
" K- N) h* s' P, n2 h4 S/ }6 a; \) k - (COMMAND "LAYER" "FREEZE" LAY "")% C# }, J- j! A% D& P. N
- (IF (= MODE 1) (COMMAND ""))))
$ Z6 x& N/ y; z - (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)
9 }0 L! N _4 \2 g/ d) i& j0 o; W4 X ^ - (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )9 t# Y5 ]" J, U, g
- (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz))
" K: O* |' Z5 M% p: {, X - 5 T7 t% |) W# }# l0 x5 X. B8 g
- ;;; ============================== Layer Thaw ===============================
0 \; n' G0 @* t+ D, Z, R - 7 T3 [" b5 m/ W8 T+ J# y
- (Defun LAYTHW ()
! [1 n+ u p7 N% C5 H+ r - (setvar "cmdecho" 0)& K( D: x& }+ a: n- V
- (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")
$ F6 L- ~7 T1 Q- N0 I# v) G& { - (Command "_.LAYER" "_THAW" LAY "")
$ R( B& J; e0 P1 y - (princ (strcat "\n Layer : " LAY " da THAW.")): {& u* m2 l, N1 {* z; z) z* p% m5 A
- (princ) )
' q( z* `% J$ y/ }0 |7 l - (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))
% ~5 ?3 l( K( P0 n5 o4 L7 B
N! C; Y- {' ^# @( i1 v- X- ;;; ============================== Layer Lock ==============================
- h" u2 P7 T0 g0 z4 j - 8 w3 M* Z" R0 {+ s0 p: K3 N0 Y e
- (Defun LAYLCK (/ LAY)
% f8 e# k6 @8 i! ?, b; _+ V" ~% k - (setvar "cmdecho" 0)
2 S) m3 F z2 d" x: z) m( ? - (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))
; G/ o: P7 e9 a* c - (if LAY
8 Y! u7 J; z9 d2 s - (progn
: R0 _. r' ]9 J, m$ h4 k - (setq LAY (cdr (assoc 8 (entget (car LAY)))))
8 c8 z! [; |$ v* _. h9 r! J - (Command "_.LAYER" "_LOCK" LAY "")+ _6 G, H2 d8 [# ~
- (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )) j' i6 Y* Y V6 [# E, }2 }
- (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))
; B( u3 U$ F$ r8 } - # }" E5 S: d2 K' N h9 |2 X9 E& n
- ;;; ============================== Layer UnLock ==============================
9 f7 r) ?! {0 G$ w - ) `; |0 P; P) |- a1 A
- (Defun LAYULK (/ LAY)+ ]# o) J' O5 J# \
- (setvar "cmdecho" 0)
( e# B, }6 g" f0 F - (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))
5 _) _. `: S0 a$ M - (if LAY
3 q( o+ H7 q) a+ r - (progn" o* I% ^; H/ x/ R
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))
* e) p% o7 Y1 T% g1 Q! W - (Command "_.LAYER" "_UNLOCK" LAY "")# L) Y; Q$ M. J* a( I/ k: ?
- (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )+ t; z' U5 F5 W& T) w! \+ }8 J
- (defun c:LAYULK () (layulk)) (defun c:LU () (layulk))
- o _. a: m' Z* c1 y - 4 |# I% I) |- H$ g
- ;;;===================== Delete all objects of Layer ========================
2 t% `6 w d( h& d
9 H. X! t5 m. d7 p/ x0 \- (defun DELAYER (/ ocmd L S)
, N' K7 J l2 E# E* k - (setq ocmd (getvar "CMDECHO"))* g6 _; v( [3 c9 b
- (setvar "CMDECHO" 0), h9 x* u" n |; T7 _* X
- (setq L (strcase (getstring "\nLayer(s) to delete: ")))
9 p& z, P3 q" K - (setq S (ssget "X" (list (cons 8 L))))
' d, w4 F" [; m - (if S q0 |8 {2 Y+ ]
- (command "ERASE" S "")
6 Y$ C/ P, i6 P% g! i$ o - (princ "Layer empty or not a valid layer name.") )
/ q, O& E, O, n1 w8 \+ r - (setq S nil)
5 T& J7 i% F) K% i# L8 z - (setvar "CMDECHO" ocmd)
5 |7 z5 s1 h/ e% N/ Y3 h$ W - (princ) )
4 D: x0 U4 m4 n2 W - (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))3 y3 Q8 e- A7 O( e' |
4 ^! W& C3 ?- z- ;;; ========================= HET CAC LENH LAYER ===========================" a! h$ n. L) E" R- E2 `8 f" {( ]
D0 X1 h2 J* d# q( ^. d# @9 P- ;;;====================== EXTEND NHIEU DOI TUONG ===========================
9 g6 u% _1 m; C
6 y# A" X% j2 D. w- (Defun C:EET ()
+ n8 Y- f! Z* }% t# m: I - (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)3 W# V& T! Y- G" x( K
- (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))
2 j& s" ?! X/ W" x' Q; ] - (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))( s6 N! {* Z4 q# Y7 Z! t
- (Setq I -1)6 X! V4 m( a" \) G( {* {
- (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG "")/ i6 Y: A1 {2 W( H3 P( X
- (Repeat LEN
: R2 O: Y( d& C( c% J L/ M - (Setq I (1+ I))
0 }. H9 z: K$ ~: G) Y3 M - (Command (List(SSname SS I) SIDE)) ) (Command "")7 Y6 e1 |/ ?# ]' V! B/ O
- (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )( H* s# a2 \/ @2 l8 c+ N1 B# [
3 ~& [( o/ N* A- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============) g# c- W: E$ }8 W9 F+ [/ {
3 @7 d; ?# j7 t k; Y8 u8 M- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)! d! B! N% ^, g7 ]/ G- T
- (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND "))* U1 }/ a! L; S: W! K! U
- (setvar "osmode" os)
% ], S) f: K3 ?% ?/ I$ U - (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))
/ L0 }! N2 C3 Q2 g - (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ)): L8 A& n3 e! Y: | }2 s" F: A
6 V8 S; D# ?' t2 n/ j8 c- ;; ================ Change width of polylines =========================
* w& J# N2 @! B; a. l0 ?* g
+ i- t& x7 y. V, ~% v" J0 e- (DEFUN wp (/ a b sophantu sodem list1 ha:wid)5 L! R. W% C) K h, H
- (PRINC "\n Chon doi tuong can thay doi do day (Width) !")
! G, Z$ P. x+ ^. T" v% R' v - (setq b (ssget))
6 I! V% ?0 r$ d. z - (setq sophantu (sslength b))
( y* L) A- I& h: h W - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
2 h; H( ~8 q- z* ~ - (princ "\nDo rong polyline <")
. w* s9 z5 C X' }, S - (princ ha:wid)
* O% N$ Q, Z: Q2 R+ m. w - (princ ">: ")
6 A2 B' |0 @. z$ _! b6 W8 f' t - (initget 4)
/ f8 v" K! t" w3 ~5 Q6 ] - (setq ha:wid (getdist))
- f$ Z; `! [5 M3 W$ A6 ~4 E' ? - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
! A& [1 U1 o- d9 D, r( D - (setvar "tracewid" ha:wid)
' A- X8 z O7 d5 j2 B t, B! P - (setvar "cmdecho" 0)
4 k1 `; B, K. o8 b1 R - (setq sodem 0)
+ U" @ h$ w+ J2 v% \# a9 a7 x0 F) O - (repeat sophantu
% ]4 b/ J! q9 @2 h7 j* W - (setq a (ssname b sodem))! ~& T: b/ h( i3 @
- (setq list1 (assoc 0 (entget a)))
# I$ T* ?7 Z) j; @, G, v. N - (cond
2 G% h2 W6 k. S0 z2 t$ q) n) G - ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))
: f. W5 @/ G8 |2 M8 }1 O0 O - (PROGN (command "_Pedit" a "" "w" ha:wid "")) )
* s7 X- O5 x+ P8 q; E9 a# n - (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))
( P6 C1 I8 H3 Y+ {/ N7 Y* a: ], T - (defun c:wp () (wp)) (defun c:pw () (wp))
X3 o) D. `7 X) d: z2 P$ X - , t( w7 F! B4 r. C/ ]
- ;; ================ Change radius of circles ==========================, y& X9 Q- V0 r) h. t$ S
1 t+ Y/ d" O' P# C6 X7 @+ E- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))
# z- c# G/ v" p/ u+ }- ^ - (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : "))9 o1 Y9 }( ]" s; \+ q+ r
- (IF (/= RD NIL) (PROGN (SETQ I 0)% v2 m4 t% t# N
- (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )
4 d+ F) Z) M, U* M8 o7 h - (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN
# k& a0 T8 }6 P - (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )$ j' v) I) w( Q8 L+ _% w
0 \ K. |% O: V$ v- ;;; ============================== TEXT Hight ===============================6 L) Q9 a/ Z" S* S: m( H) O
, ?! V: f6 B$ v" f( V$ s: X- (defun texthght (/ ent hght)* z5 A8 W( O% R6 U' n
- (setvar "cmdecho" 1)# Y" L' B/ z8 n7 p4 \1 m
- (prompt (strcat"\nSelect text entity with required text height"))
$ \ F. K! X% ^! T - (prompt (strcat"\n."))
; U$ }+ x" W" P - (setq ent (entget (car (entsel))))0 a9 Y3 @& W. H8 k* N/ ?2 @9 Y
- (setq hght (cdr (assoc 40 ent)))3 s1 V9 `: y' O! } y
- (prompt (strcat"\nText height now set at "))(prin1 hght)
( ?+ i1 E2 k8 G; m# H4 o9 S - (prompt (strcat"\n.")) 5 Q& ?3 v/ v6 P
- (setvar "cmdecho" 1)* M$ o/ k# H# T5 U
- (command "DTEXT" PAUSE hght "") )0 [( A A( j+ B; e9 I% S3 h
- (defun c:teh () (texthght)) (defun c:texthght () (texthght))- Y# p9 n' S3 L! [6 G) {5 x
- 3 e( e- m( w+ [& P; [
- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
% I( p! d! D- ]; h' q - & u' [ c- j0 H& n: s& j$ y, k
- (defun c:tuu () (setvar "cmdecho" 0)
, R: ~# \1 E; @& v4 f* J - (prompt "\nHay chon dong TEXT can gach chan ")8 h& o! s3 } q; e2 J
- (prompt "\nSelect objects: ")
; U8 @8 s" _5 ~+ ^ - (command "select" "au" pause)3 o* q3 x) Z& `( E. {' ?* w+ c* @9 D
- (setq sstxt (ssget "p")
* k: M5 E% V% J% B3 B - sslen (sslength sstxt), y( g* C7 R) w( Z) i4 ?" a& z' ~
- ctr 0 )/ A) M& k4 b$ F, K6 n' I
- (command ".undo" "mark")( ~4 Q$ D0 [( i, _2 M
- (while (< ctr sslen)
( E. r; \+ j" z) m1 { - (setq listxt (entget (ssname sstxt ctr)) o2 ?* ~" D% ~. n9 V* L, @$ C
- txttxt (cdr (assoc 1 listxt))
1 C }$ G6 {+ V% i5 ]3 m - enttxt (cdr (assoc 0 listxt)) )
* _) w* U O( e7 w: q$ A$ q - (if (= enttxt "TEXT")" E- J3 j% _0 b( ]. O* Y/ r, v# y
- (progn4 [1 F8 y$ j% Q! W" E
- (setq testxt (substr txttxt 1 3))
' i8 C0 L5 h+ I4 h: i - (if (or (= testxt "%%u") (= testxt "%%U"))' d+ f; R0 {6 [
- (setq newtxt (substr txttxt 4))( X: n9 O7 [" o5 F
- (setq newtxt (strcat "%%u" txttxt)) )
* ^$ K+ d/ b8 l {( L - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt)) U! G' m$ {# F3 `7 b# B: D
- (entmod listxt) ) )
. M$ Z; a7 T- l" R) [3 h# G - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
E( h' k; `3 F( z& b' b# y a3 Z
/ m2 c) g3 D: A+ e) ?# E" Q' u- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
7 u4 x7 E5 x3 {* g8 n- S6 H8 ~ - 9 i0 N& s; c) W$ W/ y6 C
- (defun c:tob () (setvar "cmdecho" 0)
& G/ q5 F7 W3 G4 t' U8 K/ \ - (prompt "\nHay chon dong TEXT can gach tren dau ")5 c" X* A# T0 C& Y" v
- (prompt "\nSelect objects: ")6 j# v6 G |+ U6 M% Z' A" Z/ h
- (command "select" "au" pause)# c: {- E4 w( @
- (setq sstxt (ssget "p")
, @! X4 \; K" l: D& X - sslen (sslength sstxt)1 T* |7 E6 S* ?# q+ g9 F: K
- ctr 0 )$ X+ V# R* p, s# R
- (command ".undo" "mark")
7 k: ^- g) C8 o4 W& v - (while (< ctr sslen)
2 ^3 g+ c/ q2 ]- V - (setq listxt (entget (ssname sstxt ctr))
+ `, \* Q6 G5 F1 W( N4 d; P - txttxt (cdr (assoc 1 listxt))
6 }2 p* w3 w! O+ }- u, I. Q - enttxt (cdr (assoc 0 listxt)) )# o9 ~/ |" q9 B# F' I% V0 k
- (if (= enttxt "TEXT")
1 m! `8 W& D3 F3 S- m# p2 J, d; o% M! j - (progn: J5 V$ E- G8 c
- (setq testxt (substr txttxt 1 3))
) T; D8 `, w; X& T5 e+ x+ c - (if (or (= testxt "%%o") (= testxt "%%o")); r5 w# e M. q, T5 v1 b: Y7 ` C6 K
- (setq newtxt (substr txttxt 4)), q! ^ i: F& |3 R: t2 z+ K' F
- (setq newtxt (strcat "%%o" txttxt)) )) J- x( R( T, y# T$ I7 f
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
8 D5 F& z4 S3 D9 h3 j - (entmod listxt) ) )5 U, m" M; ?$ X2 }
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))$ U6 O$ w" E; l2 ] x: R
" F' j5 m+ P3 T) b; O- ;;; ========================== Tim & thay the TEXT ==========================
0 b# X5 s3 I4 G3 r) \+ X$ i
3 q* n8 t9 j% ?1 j: n: Z- (defun frstring (str search replace / str1 str2 index find)
! H& `/ z- v% e. ^! c! ~1 q- T* d* W - (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))/ z9 E+ B5 e$ |* t+ G& x/ {
- (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))
- Q; J% t8 d) h- t! T! {. P& O5 ^# _6 X - (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))
: K( p4 J5 o$ _5 Z" k7 p9 K/ I' }! [ - (defun hai (/ dial) Z0 P/ P/ W/ c3 j
- (setq dial (load_dialog "hai.dcl")) ;;goi dialog
* O6 \ Y C8 M" A' W% f - (if (not (new_dialog "find" Dial)) (exit)) ;;, w& u- s; m |1 b
- (mode_tile "find" 2); Tao dau nhac tai hop thoai
& r9 Z, P4 r1 f: z - (action_tile "find" "(hai1)")% I% ^: S( ]; n8 J
- (action_tile "replace" "(hai2)")$ P p6 F8 Y' F! \$ E6 k; J* o* b D
- (action_tile "cancel" "(done_dialog) (exit)")" {$ s: J: M. n$ H
- (start_dialog)
$ Z, a4 C$ r; q- p - (unload_dialog dial))
+ Q- l8 B& n, b; W2 ^) N* I0 R& P6 }# j - (defun hai1 () (SETQ str1 (get_tile "find")))/ q8 S/ ?) k# p3 X& r. I% Z E9 o7 e
- (defun hai2 () (SETQ str2 (get_tile "replace")))
$ ]$ v8 X2 g' t* \- a# u - ! c) k1 i6 l( g8 X4 x
- (defun c:TTT (/ a str str1 str2 newstr taphop sodem)
, y- g i2 j& G - (hai)
* S* \) Z4 l" w p5 G7 ]2 c - (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le")3 J/ |+ ?+ }6 x, R9 F- \: N8 _: H
- (progn
/ Y. ^* s7 d1 \9 O* o - (setq taphop (ssget '((0 . "TEXT"))))( U' L. H6 Q' P( A+ e
- (setq sodem 0)" W0 V8 R( y; J8 Z/ N; Q# Y
- (if taphop. b& j1 k/ |+ o# ]; r& @
- (progn
' I* e8 W9 T8 ~& j7 G+ x2 C, T- I - (Repeat (sslength taphop)
# u W2 n" Y( n" V% a3 D - (setq a (entget (ssname taphop sodem)))
$ S2 Y; W5 J: M( Y; ?# e& w1 @ - (setq str (cdr (assoc 1 a)))* f4 x7 Z5 I: Z7 [% j5 a. [
- (setq newstr (frstring str str1 str2))
, T6 U/ J5 ^' E) P3 _! \ - (setq a (subst (cons 1 newstr) (assoc 1 a) a))
' {) \' o w1 y3 q1 U3 ? - (entmod a)
# e. P3 B( X1 o$ G - (setq sodem (1+ sodem)) ) )
2 l7 q6 |8 K* n+ r% g& m3 P. V- d - (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))
) y$ l& h6 Y7 y0 @% R# f; y1 d
; y) V* ^5 A, k% `9 L- p- ]- ;;;============================= CHTEXSTY.LSP =============================: C/ w2 b. k6 z
- % d. L2 B7 `# A/ c8 V5 J4 o9 e/ \7 g
- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST "): G+ Z* `8 O) K0 a3 E& F
- (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))
; d ^2 P0 r2 @% S+ H ]8 B - (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))
; o8 s3 h9 ?8 ^. x, [% t# N$ q - (Initget 1) (Setq C (Getstring "\nEnter new text style: "))" Z4 s: k) C# W8 {( M3 Z9 G
- (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))6 h* E# F1 K( ~+ {9 q3 w( s6 h6 ~
- (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C))
4 O6 R- b1 S& p# e8 _1 R' a - (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))3 s7 S: Y1 ^! F
- (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))' n0 }& X& @) X! r# Z* D
- (Initget 1) (Setq A (Strcase (Getstring
2 q' |# ]" V3 X - "\nEnter text style to change: "))) (Initget 1). L( E( O9 E% _: ?! N
- (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext))3 R2 b& F. f3 [5 V. ^0 O
- (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If
( e; G% Z- ]( Q) B* B# | - (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))
, y* _9 t. ?; N* ~& Z - (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))
/ Z" T; ]$ k6 y - (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J))! ~/ p* Z# M( P, X
- (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))
7 n( u, y7 \4 g4 ~: z
1 D2 f) K' b/ ^5 @9 R0 {& v8 N- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A))
8 f& ~* Y' n0 ^- b3 Q/ Q - (Setq J (Cdr (Assoc 50 A)))), w' F! [- Z0 @ @( l
- , P# o5 ?+ n- g3 v+ u
- ;;; ============================ DRAW CLOUD =============================
8 M% _; `2 v' z
; ^9 ?/ U; v8 p& t8 B- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0); i h) y& K5 E. k/ _; T! _; F
- (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!"): g! k9 g: \$ @+ Y& u/ k
- (setq la (getvar "clayer")), t+ T+ I4 I6 z% r7 h) `& v* {% m: Z
- (command "layer" "m" "cloud" "c" "5" "" "")
4 e* z' o+ k4 j* l - (setq pt1 (getpoint "\nEnter first point of Cloud: "))
1 L/ b% n! \! }; F! \% L s1 Y/ K - (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))
& g `1 @9 Z( ] - (setq cnt 1 ss (ssadd))5 a9 g' Y* V. K) n5 P8 [
- (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))# i* B5 C7 M8 o8 p
- (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75))
- `( H, W" H2 p7 a( E4 l; y - (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))
+ c( e! X& E+ J' }" I - (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0)
! c+ v% A9 |5 s$ n0 ^ h7 J# { - (command "pedit" arc1 "y" "j" ss "" "x")
* W* H+ A# \2 j6 G" c, T0 `9 a - (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)
* U. k4 b) e, M$ Q9 E* I - (command "layer" "s" la "") (setvar "cmdecho" 1) (princ)) w; a6 e6 ~5 w: X- X
- (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))
& j$ R- ^7 z+ T7 L8 h7 w
9 f9 ^% N' ?+ Q$ i+ Y2 Y+ U3 ~- ;;; ================================ Funtion-Dulieu ========================
6 b7 `. O* ?! Z, h% Q - ;;; ================================ Funtion-Dulieu ========================
# x, j9 x! j @ - ;;; ================================ Funtion-Dulieu ========================( u; J7 L/ O5 D- j) { ]9 f/ t
. B& y$ ]; d4 Q( F! g' [- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )
- F. V! \% w1 Q7 n0 ^& D/ S - (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh"))3 G) S. H. [6 X4 {& c* p6 H
- (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))6 A* b" o# z. m
- (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) )9 o% U! V8 q. _7 \
- (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))- k, X9 X! V' T) t8 P! n2 K
- (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))$ J% E. j+ i2 |& G3 T4 T6 D* h& q& i/ ]
- (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))" d5 o+ j s! \
- (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))
4 i2 C4 L- m3 i/ m# I - (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong))))
/ [' t& R, n J* K5 q0 m+ v0 @$ h. b - (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)))+ q+ N; d5 g1 p
- (defun dtr (dtr) (* pi (/ dtr 180.0)))4 w p: p F+ X6 I
- (defun rtd (rtd) (* 180.0 (/ rtd pi)))2 h9 B6 O. k0 i J
* A- F8 I' x$ o6 D, L+ W- ;;;==============================PROGRAME===============================% ^( x1 L. @3 n& l _: F
- ;;;=====================EditDiM Hien Hop Thoai Dep======================
* F/ {3 K4 l2 x$ T, I - ;;;==============================PROGRAME===============================
( A1 L$ \: h4 l4 d, e. x- G2 ?* I( Q
( L4 i, a5 s1 e; B, o# ^: M- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh). x; y7 Q# \' }, x3 D
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
- r+ W4 L' o4 z) P6 C - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)5 e& x6 O, Q& w: h' n9 l
- (Setq Oldlis (Entget (Car Chon))
* ~% p$ |( a4 K# A; d/ G - Pt10 (Cdr (Assoc 10 Oldlis))
* K0 `6 }# ]- [; K( u. O - Pt13 (Cdr (Assoc 13 Oldlis))3 R6 X* @; V0 b/ T
- Pt14 (Cdr (Assoc 14 Oldlis))
. [# P$ s3 z v0 _ - St (Cdr (Assoc 70 Oldlis))
6 z! {) P2 ?" |) p; {2 r0 M, W - Dimdefault (Cdr (Assoc 1 Oldlis))
. K0 g; n* `9 N+ G( W - )
8 c/ h" o: ~. b& A u) S+ U - (Cond* w; G; ?# D! ^. m; B) z
- ((Or (= 32 St)(= 0 St)(= 160 St))
. J7 K8 ~9 ^+ P% ?1 B; ] - (Progn7 V; e+ S" B3 h
- (Setq Ang (Cdr (Assoc 50 Oldlis))8 k. {8 a+ r' x6 |' Y7 d
- Pt (Polar Pt13 Ang 500)
' Q% l5 |5 Q# h - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)) A _. f, ^1 I3 g
- Dis (Rtos (Distance Pt13 Hc))" X- @) n, s. P+ _
- )8 ~; O5 A9 M6 ]# C
- )
% K, |4 \0 t, ?4 ^) u! v, ~* q - ) F7 W# @" G+ Z% r8 p: I
- ((Or (= 33 St)(= 1 St))
+ f* n4 Q# o. p& s- i. O' K - (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))' t: l# @6 u, y' m: t- o6 W7 [
- );;End Cond
y( i; I; Y% L9 c3 z* L - (If (= Dimdefault "") (Setq Dimdefault "<>"))
|; T' A% v4 ^ - (Setq Dial (Load_Dialog "Hai.Dcl"))
1 W' |* s8 [ W% @/ _4 q - (If (Not (New_Dialog "eddim" Dial)) (Exit))
4 X7 g! e. v3 A# u( U* U - (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))3 t( h& [+ N' v0 }! D
- (Set_Tile "text" Dis))& T( z: l% T) W5 N% a
- (Set_Tile "ha:edim" Dimdefault)' h/ y8 }! r. f1 X; m4 i# n# ~2 F
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai8 O9 ~1 e- P0 e+ v O* E
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")8 x+ ]5 M6 ~1 }* y3 n0 ~
- (Setq State (Start_Dialog))(Unload_Dialog Dial), B# z' o; m! G" x S& o/ ?) V
- (If (And Str (= 3 State))# c7 E) ?: ~& M& Y" X: @6 {2 v" ]
- (Progn
0 j1 Y- I2 q8 S% j7 S - (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))$ |* D* G, _: t+ d9 i0 c" Y
- )' F) s1 u" ?# m: @7 p) Z
- (Defun C:EH (/ Chon Name )
% [5 P0 L* r' Z |, O - (Defun *Error* (Msg)7 C2 R) G. p8 y6 @9 b1 ]
- (Princ "\nerror: ")(Princ Msg)(Princ " ")
( S% h0 h! C$ b8 L/ w0 z: D - (Start_Dialog)(Unload_Dialog Dial)
; j4 K1 n$ Z8 c1 s2 S - (Setq *Error* Olderr)(Princ)
" D* A, P- [/ z+ x5 ` - )7 D8 u$ e; L. F. g
- (Setq Olderr *Error*)
: M0 C ], O5 o: l: z V# |' D - (Setq Chon T)7 K: s2 H8 [. f3 h) ?- j
- (While Chon! l1 d. P' `, ^
- (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
0 d* X: y k& i7 L T% h. y - (If Chon: Z1 j/ h& y2 N- g
- (Progn0 X+ m$ D, ]% X$ r! }2 z% m
- (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
' f, j2 v- r$ B9 I g - (Cond7 s- i9 h+ U+ {, I
- ((= Name "INSERT")(Command "Ddatte" Chon)); v) H6 R0 T `7 V
- ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))7 e9 e6 S+ i" B( M3 j% y, }
- ((= Name "DIMENSION") (Hai_Edim Chon))
5 w+ q. F; T9 `3 E - )! @+ J; _! _- G8 |
- );End Cond
* b. }" g* \: M" q4 p - );End Progn1 C. i% _" `: C, g5 C
- );End While) J# X: w$ V/ _& V8 J, q6 K: |
- (Setq Olderr *Error*)(Princ)
, E) e# \1 n: L. S4 j - );End Program: Z) H8 A" [5 A @, X d5 G
. T; b$ @8 c0 N5 } n% P- ;;;====================DDeditDim=====================' @% ]9 F8 c+ C+ E; s
- ;;;=====================Hai.DCL======================
1 S* Z) d3 _% A- S - ;;;====================DDeditDim=====================# Q. U" w5 q" J! E9 p, D# d/ b
- ! r6 R' I+ d/ g1 a. [
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
: D* z* F. u: H - ;;Chay Cung Du Lieu.Lsp & Hai.Dcl! i) x% C- ]3 w, V' w; x' D. Y
- (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)( t ]8 c7 L6 Z7 \9 ~9 V7 \1 ^
- (Setq Oldlis (Entget (Car Chon))
* [% Y* `% P- V2 L - Pt10 (Cdr (Assoc 10 Oldlis))
9 [3 r! {9 F) m9 Y2 |* R! @) O - Pt13 (Cdr (Assoc 13 Oldlis))! `7 z; X9 b! |. o! x7 F# [
- Pt14 (Cdr (Assoc 14 Oldlis))
7 N- I5 S6 R K& e2 j+ ]6 _/ @' P - St (Cdr (Assoc 70 Oldlis))
9 h" v2 L" Q% a# M; }$ o! [ - Dimdefault (Cdr (Assoc 1 Oldlis)): X: S& \ L' Y9 \3 Z
- )
: j2 M9 ^' R1 X* Q* J - (Cond
]5 [% z/ v' j; i+ T7 y @9 @. S! ~ - ((Or (= 32 St)(= 0 St)(= 160 St))5 Z( \4 T v: `0 a9 R
- (Progn5 Z$ Z. u( d f+ _! t$ g
- (Setq Ang (Cdr (Assoc 50 Oldlis))
- K A( |8 k7 [7 L; W& r - Pt (Polar Pt13 Ang 500)( l1 z+ `8 G# y: X$ z& {
- Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
$ y. J0 Z1 t- n" e - Dis (Rtos (Distance Pt13 Hc)); d. ?) ~$ f# W8 i2 i2 i, y" K
- )
7 @8 A {9 t( k" s9 P - )
/ @ K& i( c7 u8 i( ^ - )
1 ~# u) S0 c8 [* e2 ~ - ((Or (= 33 St)(= 1 St))! p X& Y$ V& G. y
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))9 H5 e7 ^, [9 y5 f+ ?0 d% I
- );;End Cond
& P; b8 i# C, x O6 T9 H# n - (If (= Dimdefault "") (Setq Dimdefault "<>"))
4 ^; l4 X& D! S7 L0 ^" \4 a, { - (Setq Dial (Load_Dialog "Hai.Dcl"))
* ]5 E# t- t* w) o; g - (If (Not (New_Dialog "eddim" Dial)) (Exit))) |/ Z/ P. a& M( ^ r8 E( ?2 X& D
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
# J2 b3 b; W6 n9 q( j. v$ K" i! C - (Set_Tile "text" Dis))
8 M. `; I2 |8 t! X+ i - (Set_Tile "ha:edim" Dimdefault)
2 y. Z9 m$ m! D( ~ - (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai5 U, Q0 L$ E. @" s8 O1 B( X/ g4 F
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")" K ~) g; U' t l3 C
- (Setq State (Start_Dialog))(Unload_Dialog Dial)7 H" `" p% q) P1 v
- (If (And Str (= 3 State))
1 q( T B) }2 U) d" N9 m" f: K, P - (Progn" ^) K; q, l& ]% l
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))( [+ v. L* k. r. g
- )
& d N7 u+ Z3 r- A3 H) ? - (Defun C:EH (/ Chon Name )
( Y4 a. @7 s$ ?2 @
9 x1 X K/ K# }: X3 S- ;;;********************Du Lieu********************1 k6 Z) `; d$ A+ w1 ?6 b' q
- . T8 p! P6 g* ]6 V
- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))% c/ F- z- U6 q G
- (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)6 A% D" _1 G4 N, A3 E/ T6 b
- (If (And (/= Hacat1 Nil) (/= Hacat2 Nil))+ S( T- j% n4 j2 a
- (Progn
9 T9 k8 e7 |* W) H - (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))" C( E& r* j9 C4 \1 c2 Y
- (Setq Chon (Ssget Hacat3))" T3 \# b T% @8 h+ Z, r
- (Command "Break" Chon Hacat1 Hacat2)
6 N) t; m, L5 ?9 x - )
: n3 I* U! r- D7 a - )
' K' ?$ `7 V' Y- z/ F. d - (Princ)4 |/ c/ ]2 s6 X0 p: o- p; {7 A
- )# ]4 m& k6 Q6 B, i
- ;;( ?" F0 K# P$ ~+ s" h: U3 `+ `# P# G
- (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))- r! M. w k6 h( }
- ;;
: E( a! c, @6 [! }4 Z: t+ f/ k2 S. Q - (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))
: n% F7 t) ]+ F' L( w, f& l: [. Y - ;;
! \4 N9 v9 f7 z o - (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))
5 T! F8 p k( O4 h - ;;
) L9 K; _4 T+ ~5 c9 F$ b! W( | - (Defun Reinit ()(Setvar "Cmdecho" 1))
. ^! V" y( L% y9 x- P- x - ;;
" B" L( T0 l4 ? - (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))
I! h1 w( D/ @+ u* d' Q$ j0 R2 f - ;;
8 O7 i' ~/ l8 T1 \- X' G - ;;Cho 2 Diem Tinh Ra Vec To Phap
1 f7 C4 R( [9 R) r5 E& L - (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))
: b4 r& t+ I, Y& z+ q - ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang
# ] \' n) }- y- e, z0 C4 z: ~ B+ { - ;;Da Biet 2 Diem Thuoc Duong Thang7 f4 [( e( Z; w
- (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2)% v! b7 Q3 {( P2 `
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
9 d- V7 J ~- I C - Hc (Inters P1 P2 Dc1 Dc2 Nil)))
5 C! V4 L% n$ F - ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang
p& ~$ \' i- V$ ?8 o a - ;;Da Biet 2 Diem Thuoc Duong Thang* ~) Z0 d# L) ?, q: h, O1 }4 _+ ?
- (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)0 a' M& `9 M# x s
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
z: m0 V* J. ` n - Hc (Inters P1 P2 Dc1 Dc2 Nil))
/ `- t+ Z9 @$ L! B& w$ q - (Distance Dc1 Hc)
5 g2 \2 |% w" P6 k. y - )
6 |5 _3 X4 j& d6 o; M' [ - (load "nhapcua.lsp")
" s% t1 m3 K& Q- o - (Defun *Error* (Msg)8 \6 p% m6 V% W' i/ k- m, ?
- (Princ "\nerror: ")(Princ Msg)(Princ " ")
^" q! u; n7 n - (Start_Dialog)(Unload_Dialog Dial)
" E+ w/ t- d ~6 g1 i - (Setq *Error* Olderr)(Princ)& W( I* P7 n3 P7 R0 u
- )
8 g4 A B+ P/ H! d$ R - (Setq Olderr *Error*)
8 D. b( G9 C6 t# s4 d/ i - (Setq Chon T)
4 t+ a* b1 @. C& h - (While Chon5 C: b9 C9 \% Y% v9 p
- (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))8 ~% e0 {8 q6 H' a4 ~
- (If Chon
& y2 ^8 @, A' S) d& e - (Progn
9 n, s/ e V* g3 g - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
2 [! Z# i- V. R5 [. G4 B - (Cond
* k! y9 j- {$ A+ w/ P' I - ((= Name "INSERT")(Command "Ddatte" Chon))3 \5 e0 C! A* n6 F
- ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
7 L7 ~# f7 Z2 {* B - ((= Name "DIMENSION") (Hai_Edim Chon))
* s S5 v; q1 t - )" w+ t9 t4 \, a4 K) y4 F) Y0 Q/ U
- );End Cond
( q; L# V+ \6 B( T - );End Progn0 P6 `3 n* z7 o# _
- );End While( Q( q4 x% H0 A
- (Setq Olderr *Error*)(Princ)
9 A1 L" T# F2 ^, P' I, W - );End Program3 T8 Q4 f% i L
% N! D' A5 G5 L6 @3 H0 n5 E5 h- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
: r; R" m1 h( k - ;====================================Nhapcua.LSP====================================% B8 p$ X6 v1 X$ d9 Z$ b/ J
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================7 y K7 A, H7 C* d; x8 e% d6 l |
* y) Q. x4 S: K6 X. W
3 q! t- |- O% _% }) F* ^% e- % r; M1 ~# }3 S; u, c
- ;*******************;*******************;*******************;*******************
, u4 j) t% k5 V - ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****
3 D' u! B J% R6 X' Z' d - ;*******************;*******************;*******************;*******************- m- n2 n$ X8 `8 F
- 8 V+ S+ }) c7 X) Y8 E. ]* e
- ;VE HINH BINH HANH
; L# a4 G6 c1 C, e0 D T/ L3 \. r
% J# ]" j; B( n5 z5 @- (defun c:binhhanh (/ p1 p2 p3)! k" o# i2 _; D/ I
- (setq p1 (getpoint "\n Nhap diem thu nhat:")): A8 Z# z. R" |$ c" I
- (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))$ `; G" O/ i7 G/ z
- (setq om (getvar "osmode"))
" k# v* ~+ s& P2 s& I4 x - (setvar "osmode" 0)
+ E0 M+ Z2 p# f0 e4 K - (command "line" p1 p2 "")
+ t5 k, s# B7 Z% X; ] - (setvar "osmode" om)9 R# p! ^3 `9 `. v0 @
- (setq p3 (getpoint p2 "\n Nhap diem thu ba:"))* y; T1 r: \& S6 m4 M
- (setq a (angle p2 p1))7 ~4 W2 k. G1 W+ h( |4 g+ d- E
- (setq d (distance p1 p2))
0 \ N: h _2 @) J1 ] - (setq p4 (polar p3 a d))
, y' t/ V- `0 p G9 N' I - (command "OSNAP" "none")
P1 @' v- B1 y& {! y* K9 g - (command "erase" "l" "")
+ [7 C( f5 o3 I" c# Y, U. @& Q# [4 w - (command "pline" p1 p2 p3 p4 p1 "")
8 U% f2 s5 \( ?/ @6 O - (setvar "osmode" om)1 \) q$ {4 W" ]5 K
- )/ m9 ]; t' T) ?/ z- d# |
' u8 P" P" X6 D( h; Q3 h; z- ;VE LUOI COT4 b3 t X2 Z( r L3 G* l
3 k* u% ~" P7 }* W, H' D4 b' m- (defun c:LuoiCot ()
+ H7 B5 a5 U( ^: h' R/ d - (setq om (getvar "osmode"))1 t& G- R6 |5 Y. F) O6 T9 A
- (setvar "osmode" 0)8 Z4 W( r6 I# G0 ?4 u3 K
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x=")); P9 _; U. A1 _2 F& P0 u8 |
- (setq p0 (getpoint "\n Chon Basic Point:"))* D* q: @) z1 H0 B
- (setq nc (getreal "\n Nhap chieu ngang cua cot : ")); N* `( x, m7 J: j" P9 X
- (setq dc (getreal "\n Nhap chieu doc cua cot : "))3 Y, l) c$ d. W- {! A2 |/ b- t8 z
- (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) ). v5 O, r8 l/ \& s5 G2 ]$ y& V
- (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
+ j% U' V3 D3 |& C - (command "rectang" p1 p2)
G3 b" q P: @ - (command "hatch" "solid" "l" ""): o k9 Q6 _& K; P/ u- J
- (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))4 I9 Y1 ]$ y( E" F% a
- (setq nn (getint "\n So buoc cot phuong ngang : "))
, I9 @( @5 s$ f. t4 H ^ - (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
7 Y) v/ F* w% c" _3 y+ q+ Y - (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
) I8 S& Z' U# \, ^7 }& B% f - (command "select" "w" w1 w2 "")7 n. p; o- _6 z) z& `
- (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )
9 c$ u( i: {7 ?) d - (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")7 r1 |2 z/ i- n( d( G7 y2 W
- (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))
6 M, v9 i7 N+ O' F% K - (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))
: N* j8 ]2 N0 m, h - (command "zoom" "w" w1 w2)6 K5 D+ i) }3 S5 ?& U: v# X2 \
- (command "select" "w" w1 w2 "")
! s4 F* H- A! o2 N6 ` - (setq bcd (getreal "\n Buoc cot theo phuong doc : "))5 M. O" y8 o+ w% G h
- (setq nd (getint "\n So buoc cot phuong doc : "))- ]2 p$ M2 A. z5 \5 K% r
- (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )
& W3 q: ~, J# Q' K# o% R - (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")9 N2 n3 e0 i# m$ d
- (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )) h! \+ T$ k8 I, m! _' p5 a+ \, y
- (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) ) B1 T- ]. N( c# v% q/ o
- (command "zoom" "w" w1 w2)2 k( `! B8 Y& Q$ t/ X+ e
- (setvar "osmode" om)
! z, L# c# t1 R) L/ Y- K - )) s7 Q# A6 k# i3 a
) C- G, q9 q7 u' H. I7 j- ;VE CUA DI
. s% {# Z5 r7 ^
6 z, f) a" g' M" [$ |- (defun c:cuadi (). i- a( e6 u; q. I) F
- (setq om (getvar "osmode"))
) p1 j% m |7 a, ?) ]+ r! V - (setvar "osmode" 0)
' H' m/ G; N. e7 B/ k# ]
5 y2 A: }/ N4 z% S' Y! ~6 `- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
3 b0 B1 y9 J8 @& d; N! ]- J - (setq b (getreal "\n Nhap be rong cua : "))4 v" J7 S9 i; I9 G$ ?
- (setvar "osmode" om)! X% F" i8 H. ]8 \0 |& l; B. G' X* G
- (while (< 0 1)& y0 U% L D% L9 g* C, I
- (progn* u3 h6 d" O5 @6 }6 ~
- (setq p0 (getpoint "\n Chon Basic Point:"))( U0 p( a0 n" ^. ?
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:"))
; d4 Z( t+ ?* N+ ~ - (command "osnap" "none")
* ^; P6 N! O& i; { - (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))
* t3 k, y" f( a - (setq a1 (angle p0 p1))( s! T7 w2 }5 z( D
- (setq p1 (polar p0 a1 (/ (* hstl b) tile)))5 O+ l! [' ?' b1 U
- (setq a2 (angle p0 p2))4 t1 d5 Z" o" j, o/ b4 m
- (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )
- \. p4 @5 x: C - (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")% M# E; N$ `# Y) M
- (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))
K( ~& x% I2 B& Q! ~) t - (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi)) ! A, ^+ ^, L0 c. n1 ]1 j
- (setvar "osmode" om)
, A8 d" H2 l7 B- L3 ?7 F - ))7 C2 f* C( I$ u W! O
- )% m* R K# \: {; u: _& ]/ p! f
6 F+ ^% m: s( m6 q1 E) R- ;VE CUA SO5 N4 k b, h& Z) q" I+ ]
- ) D/ i n @( q0 e& q
- (defun c:cuaso ()
, |( i M6 |) g: J6 u8 V7 \* A6 Q - (setq om (getvar "osmode"))
3 a* o" k" a) c8 `7 M - (setvar "osmode" 0)
% o: B/ |; \8 m7 v5 w - 1 D- i3 W/ Y3 M( o( Y& M
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))9 L- u* k( i1 p
- (setvar "osmode" om)2 n) ` r( X& E7 z
- (while (< 0 1)+ R( _+ T9 u6 h. e1 R
- (progn% l6 f. y D5 s0 U. B. o0 _
- (setq p0 (getpoint "\n Chon Basic Point:"))
. C i3 J; [7 M6 ]. R - (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))
$ i. p4 D* U7 `0 o# t - (command "osnap" "none")7 J3 F! v$ `; {% \7 R6 ^3 K- u* S0 z
- (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))7 q. x7 [- y, w) W
- (setq b (distance p0 p1))* V- o* s2 X$ g0 \, n- j9 ^
- (if (< b (/ (* hstl 600) tile)) (setq du 50))
5 e+ v' K0 K. o, Y' S4 c/ U - (if (> b (/ (* hstl 600) tile)) (setq du 150))
& O: f- z! C% a; ~: | - (if (> b (/ (* hstl 1800) tile)) (setq du 200))
; y" ^) @1 r r: X5 x: a8 A5 B2 e - (setq a1 (angle p0 p1))
$ p5 P m% S C8 B& L' U0 Y; K - (setq a2 (angle p0 p2))8 C+ f" Q3 g r* {6 i/ r
- (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )
( M0 M M" j4 x/ \ - (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )8 c8 \# P5 M4 o6 _, z2 o5 a
- (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )
+ O# L0 D' C/ Q0 d- \' K7 @& V - (command "pline" p0 "w" "0" "0" p1 "")
6 x. o/ C4 n, Z, k' j$ Q! a - (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")
5 F/ b6 z) ]7 b% |$ E - (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")5 J# v$ [% {% P; @- {
- (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile)))
0 d1 w& b. y ]$ i$ ` - (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")8 ~( ]# `+ v7 G" I3 T
- (setvar "osmode" om)
- N. {, {: Q6 k2 g - ))! z2 ` `+ X- h% ~1 R( {6 q
- )1 Y- r; D0 T, O% `7 r
@6 A/ j! M* i2 M: t) O. [- ;;;=== General Utility Functions ===- X8 n3 i7 e+ `9 S
: M6 a9 k2 H8 a0 [) q6 @5 Z- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined . i9 u1 i2 z1 ?( k2 U
- ; ADS function. Now it's a simple AutoLISP function that calls the - T5 B% g1 K! _4 g' K9 g
- ; built-in function (help). It's only purpose is R12 compatibility. 7 o y3 o& {$ V( S4 V* `
- ; If you are calling it for anything else, you should almost certainly @$ G G' f( }% S$ N# r! s- y
- ; be calling (help) instead.
: [8 E# U" M. H# V7 w -
1 o( t9 y/ Z( J; i; k+ a - (defun acad_helpdlg (helpfile topic)
3 l& p+ A) u0 x6 o X; |6 p/ | - (help helpfile topic)
" S- ~# @. n1 l$ w - )
* J. f% Z) g' T) x: I - 5 I6 d. H1 f; t4 F) l3 ?' k
- 7 K, ~! J( z# o- Q" V) N
- (defun *merr* (msg)/ a) c4 d3 n, C, I
- (setq *error* m:err m:err nil)
: S0 ?# x/ w+ |# s( Y - (princ)
* v, s7 ?3 z: v6 \2 O7 K! ]* u2 E% D - )
6 d0 g$ n$ Q2 V) q1 H! z
' s; }# F9 u) b1 x1 ]) O/ h0 }) X: P) e- (defun *merrmsg* (msg); k* n; L+ I. ~: o
- (princ msg)
5 ]" ]8 w( }" Q0 T0 R$ Q. D - (setq *error* m:err m:err nil)
" {5 {- L: B5 t( D! b - (princ)1 _1 [9 u( O4 R9 I- d: |& t7 \; c
- )
8 w8 Y. K/ w0 p) k7 K% j5 u - 0 X! h. ~3 h5 [ f
- ;; Loads the indicated ARX app if it isn't already loaded: O/ ?6 \0 a! H! \, [) {
- ;; returns nil if no load was necessary, else returns the, B9 c& N; @& y3 Z
- ;; app name if a load occurred.
_' J# Y' q9 [1 g6 m1 B/ ~: A9 G6 P - (defun verify_arxapp_loaded (app)
" s: K# Y$ z Q+ {! U - (if (not (loadedp app (arx)))" D T/ y. b9 i" P' b* [1 l R
- (arxload app f)
) b& b# u, q. ?! s9 K - )
/ u ^" q" }; U* O1 [! q - )
2 Q/ A. M- X1 {0 N2 f4 V7 U
) M1 x" b2 _2 e5 }' f6 s- H- ;; determines if a given application is loaded...
J/ r& t+ Q! ]( P+ K$ F - ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or...." l3 t* {* G9 J) `- D
- ;;+ p( \7 K- ~6 O4 x! ^$ j+ `
- ;; app is the filename of the application to check (extension is required)
) p2 O4 b( B7 S4 S - ;; appset is a list of applications, (such as (arx) or (ads)
, L& ?* B+ a/ R# i# ? - ;; . F# G7 h, v, L3 E
- ;; returns T or nil, depending on whether app is present in the appset
$ S0 r* G4 Q) Q1 b& c - ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"
i3 l. a% L7 P+ [6 ?6 j1 R - ;; Also, if appset contains members that contain paths, app will right-match
5 V+ G: _+ D$ @1 c* `" l - ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that
9 x5 H0 w# s+ o5 D% o - ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."
" d% Z4 K" w# [& }% ~ - (defun loadedp (app appset)
+ }* W2 Z' A4 ~/ h* p5 I - (cond (appset (or 5 r1 W) Q2 A0 o
- ;; exactly equal? (ignoring case): g- X1 p. b5 C4 C A1 N
- (= (strcase (car appset))
9 j8 {1 M5 _; a+ r7 u* ~& y8 } - (strcase app))
+ Z. h2 @7 H3 T' u% A0 x - ;; right-matching? (ignoring case, but assuming that
/ j7 ]1 |6 I2 {$ H1 e6 k* s - ;; it's a complete filename (with a backslash before it)
1 G8 X- U& a3 H5 J& O - (and
$ \) ^" Z8 F4 C$ D( e5 F. G - (> (strlen (car appset)) (strlen app))
3 d7 O, P% ?( g3 p - (= (strcase (substr (car appset) & F7 ^7 h4 Y6 ?$ @$ D2 i
- (- (strlen (car appset))
2 M' l+ B! R1 l - (strlen app)
2 U4 p8 o+ {7 [: A9 p - )
. s# e0 A, R$ [' [$ \5 u9 ]3 ` - )) z# F2 @$ e" X; j
- ) & q1 M. P+ r: h+ W
- (strcase (strcat "\\" app))- `6 k q( n& b, a( {+ k9 u
- )
% O. z3 N0 @% ? - )
% R) Q3 k, P4 C/ r1 E - ;; no match for this entry in appset, try next one....
: W( x3 q4 C1 C - (loadedp app (cdr appset)) )))
. H: E: _, _- q* R - )
# g u" N4 d9 _( C- w$ U) _* b
1 i* H8 \% N" R1 _7 `! l8 h* t
! ?$ a \% D+ L; C- ;;; ===== Single-line MText editor =====
7 V9 ^0 q+ \8 J4 G* h - (defun LispEd (contents / fname dcl state)4 p9 V- h1 ^, l. x' W
- (if (not (setq fname (getvar "program")))6 G% b* Z$ p) c. q b7 S2 n
- (setq fname "acad")3 N$ p: [8 V- j0 j
- )
; n+ a# ~4 p" `- @( A+ N - (strcat fname ".dcl")8 X- w. ] I: T& w, [; C
- (setq dcl (load_dialog fname))" I8 |1 G4 Q1 J J- e; D3 U
- (if (not (new_dialog "LispEd" dcl)) (exit))
9 p) |3 J I3 I0 ?' J. ]/ u4 r - (set_tile "contents" contents)) U5 X. c5 v9 n+ U. |
- (mode_tile "contents" 2)
+ q6 e% W; Y# _) @6 F' C4 a - (action_tile "contents" "(setq contents $value)")
" d$ j& Q* q4 ]) N - (action_tile "accept" "(done_dialog 1)")" q( {5 ]: {7 S( q5 _( N9 b
- (action_tile "mtexted" "(done_dialog 2)" ). `) j! U' V6 y3 Y" n
- (setq state (start_dialog))) r, ]: z e, M
- (unload_dialog dcl)
+ z/ `) S& A9 H2 ^( W% p - (cond
+ T+ @( N; r6 \! @5 w3 _8 V - ((= state 1) contents)
; I; b7 y, D$ I - ((= state 2) -1)2 [+ o& x9 R2 ~; |. L8 z' @9 p
- (t 0)
6 I+ w' _: p5 f0 _- ]$ i5 Q - ). e- X6 z- Z# d/ | G; P
- )
; a# O1 o' h8 \7 @* t8 ^' x
V- n1 {; G# f. s- ;;; ===== Discontinued commands =====5 Q! B% w, S% O. R4 \ y+ p# |
- (defun c:ddselect(/ cmdecho-save)
* n+ f) p/ k/ D+ x% u - (setq cmdecho-save (getvar "CMDECHO"))
* O G5 U2 F3 N) L3 M% R; z - (setvar "CMDECHO" 0)
l1 h7 m3 W6 r* J2 e - (command "._+options" 7)8 o# k& c$ I- H
- (setvar "CMDECHO" cmdecho-save)* e$ F$ i, U8 c% y' u
- (princ)5 L; Y1 V( W* F3 Z2 U3 Q4 B4 W
- )
) g. b. r+ l9 n4 _ - % A, ~, z$ |9 ^' K) a; d7 E) B
- (defun c:ddgrips(/ cmdecho-save)9 p/ w/ c& E" m9 D1 ^3 G
- (setq cmdecho-save (getvar "CMDECHO"))6 I( N* E9 k0 a8 j) T( z
- (setvar "CMDECHO" 0)/ H: _/ r9 C! V7 K' ?
- (command "._+options" 7)
7 T/ [# x6 z7 b1 |% A - (setvar "CMDECHO" cmdecho-save)1 j. q4 }7 D1 ^" Q) T" i& m
- (princ)8 W1 \0 v8 C' Y/ v2 X, E8 S
- )3 c. s2 O1 ?% F5 s! u" \
- 3 `, m. w9 q+ ~4 p3 n, V U
- (defun c:gifin ()
# p# A: o- Y2 o( t. \9 } - (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
) ^3 h u* ~ a( L6 M4 ~/ ] - (princ)
& ]; `& Z1 `4 C( [; X$ Z - )6 _# M1 D# M/ m0 J$ X& S) e
) s1 q: A" C9 s1 Y- (defun c:pcxin ()
4 X: u& t A! q- ?7 K$ r1 K$ s - (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
- d) t/ u- f) X( m. r# w0 \ - (princ)
7 I' d( L6 O# w2 c) F - )+ O' B# w4 p( S% l5 Q* e0 [
; d3 E2 a G8 n$ a+ z) y9 }- (defun c:tiffin () w& p7 ?5 K! t% L* o% X, F
- (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")( @0 t! Q L6 N! O! y; d
- (princ), {; Y: Z" y" I% E8 I9 [& s! g+ {
- )
$ ]* q* e! a8 F: I, x- b5 o1 m - 1 C: s3 q# O1 C2 c/ {) A8 Z4 S: N/ s
- (defun c:ddemodes()9 Y, i! Z7 d3 W5 P9 J
- (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.")
0 M! h( ]5 U5 N. x" x7 S - (princ)
* d: w( i' J: z& ]$ j - )
& w7 d0 v3 K0 F% J+ A9 g0 U
5 ]/ P) ?7 u- w8 t- (defun c:ddrmodes(/ cmdecho-save) T" b; j( u, O$ T8 ?
- (setq cmdecho-save (getvar "CMDECHO"))
; t S7 \* _/ b: W* ]& i" \$ r - (setvar "CMDECHO" 0)4 G) a/ S: S( m, x
- (command "._+dsettings" 0)
" [% X" C5 }( Q - (setvar "CMDECHO" cmdecho-save)
( d! [, N) A( g; \0 W - (princ)3 }4 v* b% f% W0 s
- )
9 D# l, }7 \% X* B7 f3 Z# ~5 e
8 N! ^! a2 [) M* X- ;; HPCONFIG) b& G8 f* m2 S7 V! T' y; B9 ~& n
- (defun c:hpconfig (/ hlppath)' x8 C$ r* x2 C3 I. `
- (if (not (setq hlppath (findfile "acad.hlp")))5 H+ L3 L$ t" O# `
- (setq hlppath ""))! d' \# x8 M: ^* K
- (help hlppath "hpconfig")- l9 Y* X; |' w8 ]% k$ ]8 b
- (princ)5 C5 ?/ x. m2 _8 `' ?8 V; p
- )
! ` p ?# |. ~( k- Q - + B) K: @, @7 P7 M
- ;; OCECONFIG
7 A: t! ?) N. P" \2 E) |% H7 |5 W, m - (defun c:oceconfig (/ hlppath)
9 n. @3 V7 ]: E- R, }* R: X7 k - (if (not (setq hlppath (findfile "acad.hlp")))
& s* c4 o7 w5 o, k6 C% G- l - (setq hlppath "")) |9 ~9 t. M- d9 V# {
- (help hlppath "oceconfig"). `3 V, t/ i+ i; P+ u
- (princ); z$ E% k% d- r$ u
- )
7 h2 @' G; W+ i; @. t: n1 f - ' t4 u7 o: f @; d$ \
- ;; CCONFIG
0 k% N# P& u' k7 @, B - (defun c:cconfig (/ hlppath)
% b' m* d; q, i - (if (not (setq hlppath (findfile "acad.hlp")))
3 Z6 I. q% l8 {+ f- X- j. x* G* I - (setq hlppath ""))8 e4 Q& L& u9 d( M+ p5 m9 J7 e
- (help hlppath "cconfig")( G6 _# c' }4 }: Z
- (princ)
8 A* ^- b0 B# r) I$ w5 i' \3 X/ t - )
8 W% Q" [! J. c j+ w0 U* x9 |1 J - 1 N9 M% f7 Z4 a) y' M F. w
- ;;; ===== AutoLoad =====- a; ? p2 {2 |
- }% S1 y6 p& e. m, z
- ;;; Check list of loaded <apptype> applications ("ads" or "arx")9 }; @# ^! G+ o
- ;;; for the name of a certain appplication <appname>., P ~- @+ `4 L& T: E/ A
- ;;; Returns T if <appname> is loaded.; x# f8 ?# Z: K, ]. }
- . O) F% e ]7 L4 k6 I
- (defun ai_AppLoaded (appname apptype)
& c: D* r7 w$ B/ [0 g8 q( n8 d* ] - (apply 'or2 q" P6 k" D0 L
- (mapcar
- K9 {$ g0 {% F" g) Z - '(lambda (j)5 g6 H$ P# J! r% ]4 U7 O
- (wcmatch
, _" K8 N% Q( @9 O& T. s# y - (strcase j T)( F$ z, p8 w2 z) {$ d4 Z$ D3 v
- (strcase (strcat "*" appname "*") T), v1 l* M8 u! t
- ) # |" y, }" o! H8 n
- )# h& e; M v0 F6 N% C
- (eval (list (read apptype)))% g' O7 u9 e0 a# Z
- )& E. c9 G8 n, y
- )
7 p- ?0 o0 M9 a+ B1 _- F5 S/ s, J - )' j N5 H# r3 z5 M- Y6 @+ f
2 G: f# J! `- ^- ;;
- s, B3 ], q/ d8 t1 x1 L6 [- P! ^ - ;; Native Rx commands cannot be called with the "C:" syntax. They must . a' d0 B& x: G4 n
- ;; be called via (command). Therefore they require their own autoload
3 D5 l4 W' ~3 j& Z" u$ V, a9 Z - ;; command.
# u ^/ K6 e+ ~1 P, F- M- o
6 n* `3 g7 q- @$ d/ \- (defun autonativeload (app cmdliste / qapp)! t8 j3 E4 |" |2 p, M
- (setq qapp (strcat "\"" app "\""))0 \6 Y' ~9 j" F& S0 }: R
- (setq initstring "\nInitializing...")
3 O/ b) a) {* n3 U - (mapcar
+ z) h2 q# |) ] - '(lambda (cmd / nom_cmd native_cmd)( K- p$ V3 v" B1 t
- (progn
* ^) q! m: L3 m+ y" X& t I4 Z - (setq nom_cmd (strcat "C:" cmd))
: J; i( e1 `- R - (setq native_cmd (strcat "\"_" cmd "\""))1 Q" n# E% N0 ]" U
- (if (not (eval (read nom_cmd)))# U7 o/ g. z3 B+ u% L& I% m* N
- (eval9 n" |# W) x* V; [: Z" C* y
- (read (strcat
+ Z& R0 |5 k0 i7 | - "(defun " nom_cmd "()"; ^+ A( X& l! g! Y6 F$ ?" ~0 w
- "(setq m:err *error* *error* *merrmsg*)"
6 K" N5 I# e. G; h; Y, X - "(if (ai_ffile " qapp ")"9 c' R. B8 W& L' [ \
- "(progn (princ initstring)"
3 J0 D; q' O% ` - "(_autoarxload " qapp ") (command " native_cmd "))"
) _: B: |6 N0 L# O7 ^ - "(ai_nofile " qapp "))"% U- E5 b( \$ U. E; T
- "(setq *error* m:err m:err nil))"
1 H4 V5 K @! e4 t( T - ))))))1 A. M% r- h- M3 u3 I
- cmdliste)4 l* s4 j/ l; M
- nil7 S, d @( v2 G" B8 E/ L f
- )
; f3 ]* P% s1 K \: V# o) [ - / H5 _8 f. S% C8 O
- (defun _autoqload (quoi app cmdliste / qapp symnam)2 @ u/ j4 v$ I
- (setq qapp (strcat "\"" app "\""))
5 M8 D9 x( B' H9 C% M/ [; B - (setq initstring "\nInitializing...")) {4 F! H6 j9 O; B; k
- (mapcar% W1 w% |% x- w& X2 O! {
- '(lambda (cmd / nom_cmd); G1 m- _0 j" d4 W- n: \
- (progn
, }& G% F1 }! ~5 W- S - (setq nom_cmd (strcat "C:" cmd))
/ w/ ]$ b( C' H9 u8 i! l - (if (not (eval (read nom_cmd)))" Q, A5 d4 _3 O6 L# B6 x7 x5 L
- (eval
- E2 ^3 [2 p3 h - (read (strcat
0 U+ q v' |1 _& m; X) J1 e3 ` - "(defun " nom_cmd "( / rtn)"
3 q6 z! D3 M/ q4 s2 B1 c - "(setq m:err *error* *error* *merrmsg*)"1 [ N. F8 p$ {( E
- "(if (ai_ffile " qapp ")"
7 a H! L% O" {" ~ - "(progn (princ initstring)"/ ?2 N/ t" I- f" v2 I' O) k- e
- "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"
" Z! M9 g! L: h6 j! P* D6 Y - "(ai_nofile " qapp "))"$ M9 F8 B; v% t; K7 j: ~- y
- "(setq *error* m:err m:err nil)"0 S! w$ M* Z# k- d! a; N
- "rtn)"
( B, K) i9 V! L+ ` - ))))))
# Q6 I+ T3 a5 o+ p5 O- e1 G7 g - cmdliste)
: U3 V6 x1 t1 D - nil
+ t7 T# k) P: F5 s - )
+ E4 f& y. G. m - 6 _, w1 P' z/ |- B$ f3 Z* ?/ h
- (defun autoload (app cmdliste)0 ] f# Q M0 X" S+ ^0 J, N+ D' U
- (_autoqload "" app cmdliste)0 ^% |4 l' k( {5 y( Z) M
- )4 C: m# ?" M+ t% E* a1 c
- 9 R4 @; W7 [8 f7 c# R- }
- (defun autoarxload (app cmdliste)
3 e, p' c; f5 G+ b6 g! ? - (_autoqload "arx" app cmdliste)3 w2 }% p3 d0 i3 M# `
- ), D, y5 S- y- F) w6 k1 m
- 4 a* A: ^5 u4 \; H7 v* ?
- (defun autoarxacedload (app cmdliste / qapp symnam)+ Q+ |9 t# \5 g7 \( z# B
- (setq qapp (strcat "\"" app "\""))
( p4 C: {1 p6 q) J/ O - (setq initstring "\nInitializing...")6 Z; r6 H+ N/ \$ y: F( |
- (mapcar8 f. J/ a6 R; k
- '(lambda (cmd / nom_cmd)
( y1 i0 X8 v ]$ F6 u" N - (progn
6 e" n1 K- _! _5 M0 d - (setq nom_cmd (strcat "C:" cmd))/ C0 v3 M% [' l- @
- (if (not (eval (read nom_cmd)))& m V' a+ d+ b, z H7 N
- (eval
0 M8 o$ X$ a0 o' r3 N1 m - (read (strcat7 z' E7 r& D2 F- e$ ~2 k5 g
- "(defun " nom_cmd "( / oldcmdecho)"" s/ H H% n- }
- "(setq m:err *error* *error* *merrmsg*)"4 h8 p) P3 u+ K
- "(if (ai_ffile " qapp ")"7 e U: J9 [1 q0 M
- "(progn (princ initstring)"; M' A% X# S, R: G" J/ y" G/ W
- "(_autoarxload " qapp ")"3 s' A* ^! u' h, J* b) |
- "(setq oldcmdecho (getvar \"CMDECHO\"))"
3 S" ^ C* M B8 |* `5 l5 n$ L1 I - "(setvar \"CMDECHO\" 0)"* b' i3 H( y. }7 f* r# b* P
- "(command " "\"_" cmd "\"" ")"8 ?# T# z) i- H
- "(setvar \"CMDECHO\" oldcmdecho))"
* [6 T2 R3 b+ A" ^* Q9 Q - "(ai_nofile " qapp "))"
! F0 O& ~: I, E0 Q - "(setq *error* m:err m:err nil)"
5 U: D7 h& e: b2 f% s) O: @$ B - "(princ))"4 i) o. o5 v4 F7 y) J+ F
- ))))))
3 o# Y8 `+ a' @' i - cmdliste)+ _5 h2 J1 Y6 ]% r9 s' P4 A
- nil) i; i; v6 U* d; L. R0 p
- )) K( T: {# `. ]. e7 E/ B% n. z
# }: G( p7 w# a% l6 I1 w9 s- (defun _autoload (app)# y5 m) V- x" \& T' j" h4 M
- ; (princ "Auto:(load ") (princ app) (princ ")") (terpri)" F; U1 z0 ?% n. M0 [5 r0 F
- (load app)# W% S; H, e2 |4 l5 P
- )
+ Y: N$ r7 B) Q - : o' M+ R, @3 M: H
- (defun _autoarxload (app)4 {0 s( s( H5 ^: [9 ]! A
- ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri)4 y# E+ A( ]5 C/ o. z
- (arxload app)
9 {- B% j3 S" a4 l - )% S G* P% x9 B
$ J6 g1 [8 R0 P, a P- W- (defun ai_ffile (app)
7 w; H' B: m! ~- v" u8 U - (or (findfile (strcat app ".lsp"))
5 s+ Q7 B# @* V% T& g% J. q2 d& ^ - (findfile (strcat app ".exp"))# Z7 [! ]6 Q( e. z" X A- N
- (findfile (strcat app ".exe"))' A Y- ]" \0 _4 e( X; q
- (findfile (strcat app ".arx"))
, s& x7 J% t" _( J- ? - (findfile app)
4 C5 e4 ^8 D @) G) m) n5 b- _ - )
4 j5 I6 G5 g& D5 R" n - )
& X* g6 @5 f* ?8 Y - 2 B& ]' l7 N/ Y4 \
- (defun ai_nofile (filename)$ F3 G; Y8 z0 R" n( L5 u
- (princ
$ |2 @, a! m7 p! C - (strcat "\nThe file "
& D5 C; v8 Y, T( R - filename
9 o O. ^1 f) @& _, {3 M( R - "(.lsp/.exe/.arx) was not found in your search path folders."
; [1 J: y8 f, n- W+ c4 ^) `5 t - )7 g4 s. o! o; Z; \. D1 s
- )* o$ A$ I6 U, ?9 `
- (princ "\nCheck the installation of the support files and try again.")& o7 J& [- f; c. y* U9 p7 h
- (princ)
5 W8 P. n3 K7 y& T% P; |9 \ - )
; ^, M- R* N% j# E" t) j3 J7 w7 L
+ K3 ]* S! `) U- - r, H( B! z* a: C4 u* f
- ;;;===== AutoLoad LISP Applications =====
9 q5 ?, \( H# \7 h4 o* I: O% X! n. H - ; Set help for those apps with a command line interface
7 _) }2 m9 f8 K0 G2 l/ W
J3 v+ t5 D x+ p' ~- (autoload "edge" '("edge"))
# a2 t; |8 L( u9 |: d: s - (setfunhelp "C:edge" "" "edge")
, N' I, G; a+ W. P( f - 0 S2 Y+ k, ^/ B& H7 R
- (autoload "filter" '("filter " "filter"))
* B9 C$ Q$ U0 R: i: A
/ \' D% F2 Y2 [+ T- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"" v8 Z# Y( o- w) v
- "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")3 Z) K3 T- c* |: |$ S% Y
- )( v$ u& e% M y# y( _/ K
- (setfunhelp "C:3d" "" "3d")6 L& k l3 p: j4 J
- (setfunhelp "C:ai_box" "" "3d_box")8 ^( e# b+ Y$ Y1 B# u5 E
- (setfunhelp "C:ai_pyramid" "" "3d_pyramid")
2 `6 x4 z; t$ O, w/ Z - (setfunhelp "C:ai__wedge" "" "3d_wedge")5 j( i$ S4 Y( |: y9 M% N( U% k
- (setfunhelp "C:ai_dome" "" "3d_dome")
5 o1 P+ @- I# @, [3 Y1 m8 N( Q - (setfunhelp "C:ai_mesh" "" "3d_mesh") Z* x( g' Z! S. G2 ]! o
- (setfunhelp "C:ai_sphere" "" "3d_sphere")5 l2 L' ^! a% a6 \
- (setfunhelp "C:ai_cone" "" "3d_cone")
" S) x+ G( f; D8 {0 D: H6 d - (setfunhelp "C:ai_torus" "" "3d_torus"), i" k9 M5 E0 b8 u {' Q
- (setfunhelp "C:ai_dish" "" "3d_dish")" i' e a/ i* E, A$ L: R% i' W
. N: d3 a) c. k1 B* F- (autoload "3darray" '("3darray"))& @8 }6 r- }4 x3 U
- (setfunhelp "C:3darray" "" "3darray")0 G" b/ }+ ?- }0 T+ i
1 A5 W5 {% W% V! R) R- (autoload "ddvpoint" '("ddvpoint"))
2 V) ]6 ]! U9 e1 i( T2 m - W# `+ F3 c% ?* `
- (autoload "mvsetup" '("mvsetup"))
, x# H* Q3 H4 n0 w, w$ O! t - (setfunhelp "C:mvsetup" "" "mvsetup")
; H7 c) _. W7 e/ P2 H* H- l8 e( N - 0 [; m6 Z. }( i& c0 |0 {2 n
- (autoload "ddptype" '("ddptype"))
& d; I: ^6 p' @
7 }5 Z! ]& A, u3 ~8 I. {- (autoload "attredef" '("attredef"))
) {3 Z9 M3 {* X - (setfunhelp "C:attredef" "" "attredef"): H, O% p$ k/ j4 D
- 6 B# p8 y2 t9 b2 i3 W
- (autoload "xplode" '("xp" "xplode"))
" h! Z7 U7 Q s" s- D - (setfunhelp "C:xplode" "" "xplode")
; s5 f% r/ i9 c1 ^6 E - % o: `- k {/ m6 I$ ~5 c: N/ z- W" H
- (autoload "tutorial" '("tutdemo" "tutclear"8 N" P- S. b# \: |! c
- "tutdemo" 8 C# C; p, G& J- d8 d
- "tutclear"))8 ?9 p1 d. A8 z% f) G
- % T0 r' x p. u% _+ r
- ;;;===== AutoArxLoad Arx Applications =====
# n* O* Z" P$ z5 w# E/ }
+ |9 |2 p/ c1 @! q L7 d5 {- (autoarxload "geomcal" '("cal" "cal"))
* j4 H5 T0 o0 `2 G( L$ j
) U. s0 I3 X8 [- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align"
! W; m- I2 i& i - "mirror3d" "rotate3d"
4 a) I/ @& q0 v - "align"))% P& ]. Z; z, y5 z
- 4 D5 Y* T3 _" O a) F/ n z/ e; f
( N }7 l) ^# f- ;;; ===== Double byte character handling functions =====' A3 d9 |' l2 h8 B) a# P8 ?) [: w
- , H' ^7 ~; B- J& P0 f w
- (defun is_lead_byte(code)
- y3 }8 l/ L" }! O$ F - (setq asia_cd (getvar "dwgcodepage"))" u- h, E! r" P6 D0 O
- (cond
. k: u5 {( W3 B - ( (or (= asia_cd "dos932")
& f1 }# _) d% n9 Z - (= asia_cd "ANSI_932")) C/ C" h: P0 Y9 I! y1 {; `5 Y
- )
4 N4 k+ h4 C& |, e7 d# ]% w3 s: a - (or (and (<= 129 code) (<= code 159)): \8 Z0 j# u8 |4 B
- (and (<= 224 code) (<= code 252))! r& ~3 H/ ^+ \3 c. h2 r( b
- )
# d& n. u! |& j8 L) K0 \% D - )
" S" J3 G3 k) x2 `/ S* d - ( (or (= asia_cd "big5")
( I# C& A/ E. F) t; p1 a - (= asia_cd "ANSI_950")$ Q! y5 N* V, v% u7 j1 u
- )
; w1 i* J( t, F0 i0 T - (and (<= 129 code) (<= code 254)); M* r) H9 i1 i$ t, _
- )
; k# d [# Y U" ?! T - ( (or (= asia_cd "gb2312")
& B8 Q0 e: S* h - (= asia_cd "ANSI_936")
8 I& |" a" m9 h( N) F - ). z7 y! |4 j0 S) ?( F. t
- (and (<= 161 code) (<= code 254))
% a8 T% ^% c( y9 X - )
2 g" s7 v0 H$ s" x- C5 Z - ( (or (= asia_cd "johab")
0 T1 ^3 q; T p - (= asia_cd "ANSI_1361")
/ n2 p r% t$ N" F: E' m( }$ A - )7 g' ~) H4 J6 x8 I* C0 |2 w9 U3 p5 F; @
- (and (<= 132 code) (<= code 211))
6 N' C) k& l, b! m& @ - )8 e" y1 w" U; z0 C+ h; G
- ( (or (= asia_cd "ksc5601")
/ I* x3 Y" e/ y& u: Q: n/ ^ - (= asia_cd "ANSI_949")
8 q$ n( ]% |5 N. F; d - )) \. e- N/ w7 K2 W) b
- (and (<= 129 code) (<= code 254))! R* B: l- a! M/ ?9 f- o
- )! d6 G3 `1 |( A& g B: ~. K' G7 k8 \
- )
) g$ r# M; N- Y - ): p2 c6 \- p% E4 P& p' [
- 8 T5 d/ X' }4 U. D) l T
- ;;; ====================================================2 e/ Y& l. ?2 s
- + q! f- W& r7 Z
/ P9 h( P& P2 T' L/ Q( p- ;;;, \% m& y& \$ d7 _# w
- ;;; FITSTR2LEN9 N& d: h( h7 w, b- M- }+ d1 F
- ;;;' K/ i, J6 E8 Y7 W4 s
- ;;; Truncates the given string to the given length.
5 j- @" `2 { P - ;;; This function should be used to fit symbol table names, that
" F D$ Y z" [& v" K0 \$ B; a - ;;; may turn into \U+ sequences into a given size to be displayed# e8 z W) a2 `- l' D% v4 {, I
- ;;; inside a dialog box.0 K0 `% P; \3 \4 i' w0 K
- ;;;$ ? `) O% k# c
- ;;; Ex: the following string:
' L1 T7 X: W( ~! `5 P - ;;;
2 f! z, L& `# _' p# _! V - ;;; "This is a long string that will not fit into a 32 character static text box."& m0 P& a% x2 ~" ^
- ;;;( }8 i9 |, a, ]0 [9 S; U4 e: @2 R
- ;;; would display as a 32 character long string as follows:3 z& B6 N8 m, b+ d7 K5 v
- ;;;
4 H4 C5 Z+ m7 Q7 H: L+ D - ;;; "This is a long...tatic text box."& r0 \) v- X8 w+ o) z1 k& O
- ;;;. r$ Q9 x) B4 X, Z; W( t7 V9 U- l
- % X0 v9 ~- x' c+ k! I# K. q
- (defun fitstr2len (str1 maxlen) [. N ]6 W" e5 i8 v
- C v+ }& }1 G! a- B0 L
- ;;; initialize internals% X. u- j( Z8 H+ l% Y4 m' ?# p; c
- (setq tmpstr str1)* w" Q* b) R( P4 G
- (setq len (strlen tmpstr))
: W% ]2 O, K# h9 `1 X - " \6 ~" g: u9 c6 L1 K
- (if (> len maxlen)
, s: L& ~3 B3 G' J7 \$ B5 O! F - (progn4 C- u) w% b! u" q
- (setq maxlen2 (/ maxlen 2))
9 {" g' T+ h8 l# { - (if (> maxlen (* maxlen2 2))! D' z- n9 }0 y: E4 }
- (setq maxlen2 (- maxlen2 1))
7 O$ S3 k" ~ E: y' T; h6 ` - ), ~3 b, F" l. w
- (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1))
3 K' c9 S0 `' V( y6 C* ~# K - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))
; e8 [" s. T& o - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))- d5 C. _) ]! f% o" S" ?3 B
- )( _7 F+ V' O5 T- ]
- (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))
! f1 P+ y9 B' A! T: ^ - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))
( `9 ^) l7 q: U6 ^9 F - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))+ N" w# ~0 m2 D$ ?' R5 y, [3 E, l
- )7 Q( Q0 p' b0 p' D% y2 |: W. ^
- (setq str2 (strcat tmpstr1 "..." tmpstr2))
& R3 |0 Y" G6 }, L/ d - ) ;;; progn1 |6 b* x% O) n
- (setq str2 (strcat tmpstr))
9 p, s" ]0 J5 i7 F* w - ) ;;; if* i p$ A; e7 }0 Z" d6 @. C
- ) ;;; defun
. i8 e) F/ Q* M2 v/ Z
/ V9 S( S' J* p, y
0 J4 L6 D$ s9 g- ^- ;;;+ G+ [, P, Q; w7 `8 B( N, T
- ;;; If the first object in a selection set has an attached URL
+ n$ O& [" F6 z - ;;; Then launch browser and point to the URL.
& x, v& H7 S# d2 Z: h% M* i r - ;;; Called by the Grips Cursor Menu
+ V# j+ h2 u { - ;;;
; j8 v. F Z( ]$ Y - 3 q( {2 |) N+ C+ ^: R: y5 x
- (defun C:gotourl ( / ssurl url i)
{" N }) K% o' [* M5 e' q9 t - (setq m:err *error* *error* *merrmsg* i 0)0 m. h) I% T, L r0 e
- # X; n4 P5 C- \; g4 K
- ; if some objects are not already pickfirst selected,
3 E0 M0 Y7 V p9 I - ; then allow objects to be selected
4 f4 p0 N" J! U
3 @0 W5 ]! W% S' ]- (if (not (setq ssurl (ssget "_I")))
6 j% X3 f& `2 p2 e$ I) ]" M1 h - (setq ssurl (ssget))
6 b; o- ], Q* K+ D3 X - ). K5 [& L1 S* m# ~
- 3 @# c) C/ i9 f# C( v
- ; if geturl LISP command not found then load arx application
3 Q: g# \2 r, u( \, W1 ^
1 v8 I V6 ~' N( g" @# T9 j- (if (/= (type geturl) 'EXRXSUBR)
2 l% @" l! f; G; C4 ?1 e+ h/ N - (arxload "dwfout")
; C( |6 ^2 @$ q& k/ |; @9 x$ k - )4 X3 e A1 O- L3 T8 q" B5 [
- ; f# [1 C- @' _9 C
- ; Search list for first object with an URL8 s. x+ N, N6 H6 _% q
- (while (and (= url nil) (< i (sslength ssurl)))
; X7 b" b" z0 H/ a, r6 K - (setq url (geturl (ssname ssurl i))1 N+ T" e V# _4 T
- i (1+ i))% V0 T* ~' t/ r" Q
- )+ d" p/ x, n; J; q- _( ^& q. H
- ) E* Z- \! Q" @# D
- ; If an URL has be found, open browser and point to URL' h8 b" v- r' G+ o" Z! p' t
- (if (= url nil)! l/ d0 X. [1 {/ k
- (alert "No Universal Resource Locator associated with the object.")1 w/ M$ ]( @0 J
- (command "_.browser" url)8 I0 f/ c$ s& K2 _6 e+ ]
- )5 D- a) B6 c+ h* x$ \" J" P! x
# b, e+ _. V l* |& d9 d- (setq *error* m:err m:err nil)
# A% q5 q2 d$ R+ m+ U& Z# r - (princ); ~# ~6 x: c1 ]0 o
- 4 j7 A/ x; ]+ D) N" i/ U ]$ F
- ); e8 _6 {2 Y; L4 ~7 M& N
- [1 ?( h1 k, E, q' x6 K) R) P- ;; Used by the import dialog to silently load a 3ds file
: I1 O b5 \ E" X7 L0 k - (defun import3ds (filename / filedia_old render)5 H l$ @9 t7 O, @- u
- ;; Load Render if not loaded2 D9 U: a2 s1 C& ^6 ~
- (setq render (findfile "acRender.arx"))
( D5 q# F. Z. I+ ]# ~3 z - (if render" d2 a+ y2 _) e; u
- (verify_arxapp_loaded render) 0 O+ u7 X" p8 K8 U
- (quit)' Y% Q( S4 ^" G3 T* Q/ }$ z0 e$ P
- )
2 A6 y2 a3 ~# t
5 z, v" _# G! Q0 U1 l9 c! U' o- ;; Save current filedia & cmdecho setting.5 S- O n3 W' V# z
- (setq filedia-save (getvar "FILEDIA"))% a) _" O4 [/ n8 C/ M
- (setq cmdecho-save (getvar "CMDECHO"))
/ K8 [2 s2 `$ i/ t+ y - (setvar "FILEDIA" 0)
/ C- Y% K" ^4 h+ ?: t4 a - (setvar "CMDECHO" 0)* N1 e: Z6 R4 v: F9 g( D$ r
- ) w# l" G( m! z8 x
- ;; Call 3DSIN and pass in filename.
( m: p# y) t8 m - (c:3dsin 1 filename)
: _2 D" M7 Q9 j( o! O) P7 N' Y& D: r
- c+ v# b+ ]' ?. u0 c- ;; Reset filedia & cmdecho6 s* {5 X: E9 I$ t4 F, L: T- D
- (setvar "FILEDIA" filedia-save)8 ?5 A: L; b3 X+ Y; M q+ Z/ [& ~
- (setvar "CMDECHO" cmdecho-save)
; L& R- \. S4 m j% }0 Y% b - (princ)
8 X0 ^0 t6 ]+ i, z9 j - )3 d9 b! l" J( s3 q2 d
, ^ _% I4 ^4 p0 I# d( q
+ O( R6 t/ J6 D7 P J R; n- ;;;=== Menu Functions ======================================' q! J G; T' q" v6 q6 L
- $ }: L) }- w; i$ k# N
- (defun ai_rootmenus ()
: t, S3 \: A/ a. A( o - (setq T_MENU 0)
; q) v W* X# ]+ V9 C - (menucmd "S=S")5 ~& z, R4 _$ a( ^; P2 Z
- (menucmd "S=ACAD.S")
4 ]! M3 F( O+ m) Z5 a$ n+ ? - (princ)5 q! H3 J9 m$ P; ~& g7 w! a y2 B
- )! _+ ^. [+ { v) B0 j
- ) N7 [- @( O, C1 @# r
- (defun c:ai_fms ( / fmsa fmsb)
' Z' G! e' C! c* W8 W - (setq m:err *error* *error* *merr*)# w9 J* _4 e6 Y% H, Q' n
- (ai_undo_push)
# t: G7 f M L, ^ ? - (if (getvar "TILEMODE") (setvar "TILEMODE" 0))
0 c+ J% s% N1 K4 ` - (setq fmsa (vports) fmsb (nth 0 fmsa)), K5 H/ i4 o/ f/ K1 E: C: l
- (if (member 1 fmsb)
, @- k1 i6 f) c. m1 H# l7 F5 {. f M# z - (if (> (length fmsa) 1); i" e1 _% G+ b0 _
- (command "_.mspace")
3 e+ t, ]3 j: m6 I4 [ - (progn8 C9 G' U7 P- a! ]4 }% V
- (ai_sysvar '("cmdecho" . 1))! r' R* i8 t$ X, A& c
- (command "_.mview")3 A3 v2 F, [( s. N
- (while (eq 1 (logand 1 (getvar "CMDACTIVE")))' ]5 j6 {5 Y+ H3 i* p5 ^" p( N- R
- (command pause)
* |3 t8 X" \% w - )& H. f9 ~& _5 i. d V
- (ai_sysvar NIL)3 K# x8 |: V4 C0 J8 n' R
- (command "_.mspace"), d" f6 I2 [4 B) R
- )
- _: B0 _" j5 [6 g. q. D - )* @7 Y' M A5 s E9 c
- )
) j. Q) w! X" A - (ai_undo_pop)
$ ~& b. f, V9 W. `* o - (setq *error* m:err m:err nil)% ?7 ~1 j5 b# i5 `) v6 S
- (princ)* v* ]: h! Q; k% C. ]# ~
- )& E; b; i) r7 A8 b
- 0 C9 z0 E" s2 M: }7 n- `
- (defun ai_onoff (var)
7 g1 [1 z9 _- C - (setvar var (abs (1- (getvar var))))7 b) R2 b2 Q! e9 |' v
- (princ)
& a9 v3 w2 _" g" Y' B) @5 d - )/ N3 y7 _5 g) d
/ p. h9 z& I8 E0 M5 D6 j6 N- ;;; go to paper space X7 A9 j1 _' l: @. ~- Y+ y3 G6 s f
- (defun c:ai_pspace ()" n: s3 y' w# a2 x9 S* Q# R
- (ai_undo_push)
# T0 i5 y$ C5 z( D' i2 g- R - (if (/= 0 (getvar "tilemode"))
9 W+ F$ h+ _# T - (command "_.tilemode" 0)
" B" q- e2 J8 |6 S* d5 y - )3 k1 M1 M3 r; y) I
- (if (/= 1 (getvar "cvport"))
' u, J& K9 D% J8 e; b - (command "_.pspace")! n6 a) G% m! q4 E' k
- )
: N' r( C. V [, @% ]. I! H - (ai_undo_pop)
9 L8 A( d( `0 }$ a" e& J! a4 U! B7 R - (princ)! K2 f; Z( G a4 ^! |
- )
# G9 a* S+ P; w& I$ W
' {1 R/ b4 C$ @9 V3 h- ;;; go to tilemode 1
6 R4 e2 |" f" \$ t# a) y( n9 W - (defun c:ai_tilemode1 (); c- Y$ j! [! U8 z" o% F& U9 d
- (ai_undo_push)& l0 a/ V2 Z, g7 L
- (if (/= 1 (getvar "tilemode"))
& _% E4 O0 y4 i- |( k" F9 p - (command "_.tilemode" 1)
' S" A5 o, g9 A2 M - )# K3 O$ g0 L+ m& O+ B
- (ai_undo_pop)
4 [* }6 R h3 R( h$ a, y8 R - (princ) [, ]; l* \% ~" S8 n1 w. A
- )4 I0 n2 [( o/ t: w6 W. H8 m% ?3 }+ N
- + k5 g9 X' E2 a" i. F8 J
- ;;; Pop menu Draw/ Dim/ Align Text/ Centered9 t" c# X9 m' v
- ;;; Toolbar Dimensions/ Align Text/ Centered2 P/ c9 x* b% j W
4 l z- m: Y% o/ ?' |1 p- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss)% S% o2 x6 C6 g+ a, b% s" f
- (setq ai_sysvar (getvar "cmdecho"))
: K( C! P2 @$ ~! s - (setvar "cmdecho" 0)/ V! G- W/ \6 z
- (cond
" S9 f7 S% f9 @ e' C2 G! A8 b - ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION"))))
6 Z- P% Y# d1 A S, _; G) d& r - (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss "" 8 Z7 D0 ~4 h) o0 M S7 C) ~
- "_.dimtedit" ai_dim_ss "_h")6 h, h7 P5 H5 @( G! ?' U, Z
- )
1 K& F- Q4 W; x7 ?6 u% N8 r - (T nil)% [) N( P" G- N: o/ u
- )+ Y. s1 u7 F, n. S6 j6 s3 H- T
- (setvar "cmdecho" ai_sysvar)
! G$ e* W/ S2 W" I2 t - (princ)
* u4 y' L" C+ E' J2 x$ W - )
; l6 a" F( l! U+ `( C' U8 n7 k+ ~9 ` - 6 S9 f6 x( ?! H& B1 z) U
- ;;; Shortcut menu for Dimension Text Above
5 H5 Z$ M0 u4 c, v8 Y$ y9 V0 f - , w- L, w& [2 |0 g! R/ C
- (defun c:ai_dim_textabove (/ ss)
9 C- N( l" h& ]7 L2 L0 b - (ai_sysvar '("cmdecho" . 0))
$ g2 T; }' U- \/ C - (if (setq ss (ssget "_I"))5 u2 k r6 L+ v6 R+ e" G5 J6 @/ F
- (command "_.dimoverride" "_dimtad" 3 "" ss "")
. G, T- B! z" }& l- c2 O' n( i; z - (if (setq ss (ssget))" p3 L7 X1 P3 C( G
- (command "_.dimoverride" "_dimtad" 3 "" ss "") 6 `& P5 N: u0 @, h- X0 d, g) s" H
- )
) R/ `/ l# f4 \) f2 u" b - )- A' k7 R+ ?3 S5 l
- (ai_sysvar NIL): ]; @- I! _5 f4 P+ T! c. X2 l
- (princ)
( @$ ~3 v+ U ^1 T - )' ^- P3 S! J+ r( V5 H$ a/ X
- 5 O7 Y8 O* |' \
- ;;; Shortcut menu for Dimension Text Center
; t4 T7 ~7 L) D( ~+ D/ K0 s - " S& L7 @/ Y& e7 _
- (defun c:ai_dim_textcenter (/ ss). j3 ?* `) j# m! G
- (ai_sysvar '("cmdecho" . 0))
) L3 \: x( O: X% \, @ - (if (setq ss (ssget "_I"))0 S5 `+ S7 B8 Q0 Z5 k% P% y+ r! G
- (command "_.dimoverride" "_dimtad" 0 "" ss "")
7 Z# E- H; L5 {# u - (if (setq ss (ssget))
1 R/ ~1 U* q" v0 R# [/ V- v: M - (command "_.dimoverride" "_dimtad" 0 "" ss "") ( q- e; m$ h7 d6 S: X0 N7 M. R# u
- )) q* W3 L# V9 o" S' t4 }. ~
- )
0 n' j3 f0 t: I8 _/ ^+ r d, w - (ai_sysvar NIL)$ U1 R- V' s7 {9 j
- (princ)
" M" e* q( V8 }' ^! J - )
% N% {+ {) A: U5 A
, {) Z$ ^( ]" o9 o1 e- ;;; Shortcut menu for Dimension Text Home 3 b3 { u7 a8 f; X( M% j
- 5 I, N F6 O4 ^- @+ Q
- (defun c:ai_dim_texthome (/ ss)
( G$ s. Z( j5 Q8 j2 _ - (ai_sysvar '("cmdecho" . 0))) x( c4 I$ I& ~7 s
- (if (setq ss (ssget "_I"))9 F. @# {. v; G7 M( H
- (command "_.dimedit" "_h")
' k! l" \5 m% {: K2 T - (if (setq ss (ssget)). x& _ f3 Z! ~7 B
- (command "_.dimedit" "_h" ss)0 X- r+ E5 F/ ^8 L
- )) u2 c+ J5 H# R/ C4 N
- )
) z) x* n# n) d# p+ H9 u1 r8 { - (ai_sysvar NIL)
' i) @( j) _$ F# x - (princ)
+ {% o/ W* n/ J/ R0 U3 |# u4 w - )3 e4 S9 y# [; O6 T: T
+ M# M' J- P4 t+ D3 m2 a! T
; J9 ^3 \7 E: j$ C6 j8 A/ t- ;;; Screen menu item for CIRCLE TaTaTan option.
! C6 P" n3 u2 B; I - ;;; first, get points on entities
. H1 {4 P2 D& d - (defun ai_circtanstart()
9 y1 W# E9 h; r1 [ - (setq m:err *error* *error* *merr*)
& t3 B, Q/ B9 @" q+ l% @' ] - (ai_sysvar
) @, s3 i, X5 Y7 E - (list '("cmdecho" . 0): H- i: {$ d. Q3 u! ~- a( c4 J' T
- ;; make sure _tan pick for CIRCLE gets same entity! |! g% R: ]" F. s, E
- (cons "aperture" (getvar "pickbox"))7 @% Y. K. S! B
- )" L8 d! ^6 N: _/ j7 [
- )
$ `* T' E6 D( `0 Y& @2 S/ |0 a - ;; prompts are the same as CIRCLE/TTR command option
2 w2 d3 v' d' ?- n. ?, n - (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))8 c) K8 \" O+ I5 j" l1 t+ O' H. i& z
- (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))
8 M, ~9 ^* f9 X o0 E$ U+ b5 ` - (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil))/ q8 H6 }% q4 r( p9 j
- ) x/ [* G+ Y* A: f9 r
- ;;; Command-line version( P7 j4 D' X/ n
- (defun c:ai_circtan (/ pt1 pt2 pt3)
% V, ^( J* j% y: t5 R* i% L - (ai_circtanstart) Z# f; t r. x4 ~% z3 j
3 ?% `4 N; A/ f& q9 {3 b9 ^- (ai_sysvar '("osmode" . 256)); |- q0 v$ v; O7 I$ U% f
- (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)
) |5 x7 o/ `$ D/ c T9 P% ~ -
0 N" V+ G2 t% W6 ?# R i1 W - (ai_sysvar nil)
# e- m7 P R# A% j - (setq *error* m:err m:err nil)
& G+ |" P7 D# ? - (princ)
" Z; |$ q0 t$ d1 ` - )
: p: \, }- r: X) | - ;;; Use this if CMDNAMES == CIRCLE- G% T- j! M& G) G/ |
- (defun ai_circtan (/ pt1 pt2 pt3)
( z2 E5 X. ]4 B' o2 ?. w5 Y/ q% x6 p, i - (ai_circtanstart) D. n8 C' k2 p3 v% T
7 w' v- i. Q- x5 g3 R6 d3 q- (ai_sysvar '("osmode" . 256))
. _5 X5 c# R8 u* `# U! Y - (command "_3p" pt1 pt2 pt3)& u) K& A6 N/ Z) \* ^9 `' Q0 l
- - g i; _1 I+ D. i; Y, I
- (ai_sysvar nil), q' I& `* F5 K
- (setq *error* m:err m:err nil)( U n5 S* K# i1 ]
- (princ)7 }! V* _- `- M' X6 y' D6 U
- )9 L8 ]" ^2 c0 y" z2 y
- % m, J( V' k+ O6 H
- 6 S$ c. V5 \7 t6 y( w
- 3 |; I: T8 g- Y& e7 F7 d3 Y
- ;;; Shortcut menu Deselect All item.
# {! l: ^ i C( M - K: F ~) ~. a, u
- (defun ai_deselect ()
! y- `6 W# i2 x4 j7 e' z - (if (= (getvar "cmdecho") 0) ;start if0 _, U3 ?4 }6 S& k6 B) e% U5 @: Q
- (command "_.select" "_r" "_all" "")0 j4 p: [: ^: ?- d
- (progn ;start progn for cmdecho 1+ E. R" T! ?( K# A
- (setvar "cmdecho" 0)# h1 ~4 F; h) d# B# ~
- (command "_.select" "_r" "_all" "") N! E1 O* c8 d9 a$ L2 P. W: A
- (setvar "cmdecho" 1)/ i5 W/ h- c* V/ s( Z8 ?5 O
- ) ;end progn for cmdecho 1
: R& A5 L1 h* u' m0 w - ) ;end if2 k3 e; W/ s k7 Z5 |- p9 y
- (terpri)
4 E) j2 Y7 _0 u9 Q - (prompt "Everything has been deselected")
( [1 @4 G" B% o8 k7 v: e - (princ)
0 i2 {. v( u/ O* n: T3 ~# x: s - )
) Z: U. R# \$ M& W! |
5 C. H; t, B5 {$ |6 r- ;;; Command version of ai_deselect to be called from the CUI
$ }9 C5 x+ p" R0 W% T, P* N' a - ;;; so it gets properly recorded by the Action Recorder$ {; W' z/ R/ a2 n& d- f
- ;;;
Z9 i3 R- Q3 x( u% L/ D) ?+ e - (defun c:ai_deselect ()
2 g3 O6 }) d0 L; c/ v - (ai_deselect)
2 \% c/ ^7 I9 `! A6 {( p - (princ)
: {% x+ n" }3 v. J& z; I - )
" J `2 U5 v0 W# a5 Y
8 [. J, l$ o* ~- ;;;
, n, Q8 A; F: H5 c7 }+ [1 D' U - ;;; Enable Draworder to be called from a menu) N; j. } g# g1 B" |" z" A2 b" @
- ;;; Checks for Pickfirst selected objects0 _7 ^0 L& k' M0 [: W8 z. c
- ;;;: |4 k; c9 x5 A: ^5 D+ H
- 5 O; E& @' A* C9 v
- (defun ai_draworder (option / ss )6 K0 `; f- Z" l0 A* n
" v/ r' }. D; d- (setq m:err *error* *error* *merr*)
3 f# }5 Q3 F, L1 K F - (ai_sysvar '("cmdecho" . 0))
5 P) Z6 b5 k9 T0 \% \3 I# M; |1 A - % h3 c' N# M* v9 i
- (if (setq ss (ssget "_I"))% U% k' d& d' \) A6 _
- (command "_.draworder" option)
4 {7 p) b6 T9 A% t, s( E2 x. |, q$ | - (if (setq ss (ssget))8 k/ I5 C! y- v' L3 Z
- (command "_.draworder" ss "" option)
4 c( h8 @% K B0 u$ H0 H - )
( x: y& g$ e0 F4 A2 v6 M - )
& i; i6 u# d8 L2 L - (ai_sysvar NIL)6 L# j" I" Z; c" a( @* f
- (setq *error* m:err m:err nil)
7 G; O/ i# N& l
8 f( V ?: U8 W1 y: Q0 @5 R4 C n- (princ)
; ?& [. w2 f c: x+ Y* E2 g - )4 B5 u5 G' _% F0 N2 a. b
; R. ^8 E8 a& e& W A8 |- ;;; Command version of ai_draworder to be called from the CUI! q$ l4 K0 }/ A! w5 `; o
- ;;; so it gets properly recorded by the Action Recorder
5 j# m" N$ A. x& Z - ;;;$ ]3 y/ B E( l; L- i" g
- (defun c:ai_draworder ()
& R# f) B2 ?, y/ R! ] - (initget "Above Under Front Back")
! Q+ q! V# r; r2 A - (ai_draworder (strcat "_" (getkword)))
4 P4 i8 {) I% B6 k& I; [ - (princ)
; P. Y# j0 x% @9 d) `3 y - )
3 K5 g2 S" e9 [+ X, W' v
, p' ?6 d- J5 ]4 ]" v- (defun c:vlisp ()
% E9 S+ c. p6 d! o) ^) i - (if (/= nil c:vlide) (c:vlide))
6 {. }' F* I: s$ p) q3 L) s3 { - )( J4 u! H; i0 n$ l! `
' b/ @6 Q& G2 E: S5 y- R/ D- (princ "loaded.")" P/ v- w" o" B# ~+ N/ z) D2 j) J
& J5 ?. Q6 k; S' l! M- ;; Silent load.
`& k, n& U7 j - (princ)
8 s9 R, f" J0 w5 E, e8 N7 {9 p s - 2 a4 d0 P E5 \5 ~
- ;;;----------------------------------------------------------------------------& H- a) C9 ^' e' `* Q# g
- ;;;
# T: @" x( l! f+ Q3 n* { - ;;; DDCHPROP.LSP Version 0.5
( j- O$ v5 u1 ^+ t4 L; a5 X) F - ;;;- N- G4 K3 P+ A4 n2 Z- j! T
- ;;; Copyright (C) 1991-1993 by Autodesk, Inc.
' E: U# d R+ I/ `% I - ;;;2 s3 v5 q7 r! e4 i: }7 l$ K! f
- ;;; Permission to use, copy, modify, and distribute this software
; b% n+ T+ Y+ w& ~; N" J9 R - ;;; for any purpose and without fee is hereby granted, provided
! `7 g5 r" Z" N$ y1 i' B/ A - ;;; that the above copyright notice appears in all copies and that
- @% ^% P6 O% Q+ }" \2 W( Q - ;;; both that copyright notice and this permission notice appear in9 t( q3 Z# j; P( m4 d
- ;;; all supporting documentation.
- f: a' P/ j. c8 i! B) ] - ;;;
y3 h( E/ X% M - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED
1 k3 B9 Z5 ?$ M T- |6 Y& e( E% u! } - ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR) f8 ~1 V6 U1 Z- X _4 F- G4 A
- ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.
& y: S& z- q4 ]1 T. d/ s: A- [7 Q - ;;;6 a% |! U6 E" y6 _* |& u7 g1 W& s
- ;;; 2 February 1992( m* M1 a0 z3 E& T- R' c
- ;;; % h, I7 f1 ~" u0 u3 F
- ;;;----------------------------------------------------------------------------$ D* ^+ ?! C2 H m6 Y, O( }" G# { h& W
- ;;; DESCRIPTION9 K; G. Q( T, y# H7 M
- ;;;----------------------------------------------------------------------------
( W! V/ @; F& H - ;;; C:DDCHPROP is a dialogue interface for the CHPROP command.
8 F) a/ Q5 X7 f4 l" b - ;;;- L0 R4 Z7 n- g2 E/ i" {+ V
- ;;; The command looks similar to DDEMODES. The main dialogue has an image
" I g$ L2 v2 D; d' a. L/ D - ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness).
3 u' t+ `# E1 q# m" Z# H; o+ X - ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box. # q/ o5 R5 |2 Q. V) \7 x
- ;;; The dialogues are all defined in the DDCHPROP.DCL file.
9 x% t2 B1 q/ b5 Q0 J - ;;;
8 c7 A8 e5 s; p% b - ;;;4 W6 A4 [1 E& ^9 s1 R
- ;;;----------------------------------------------------------------------------" y! l) ]+ w; |" {! J) B2 e
- ;;;----------------------------------------------------------------------------
9 F6 Q) s5 {' w4 ~, S, D - ;;; Prefixes in command and keyword strings: + X3 @! O/ v4 @, L
- ;;; "." specifies the built-in AutoCAD command in case it has been 7 v0 w: t( `- s' ~5 e) X, l
- ;;; redefined.+ [ L) @; A% x" p" p% o
- ;;; "_" denotes an AutoCAD command or keyword in the native language' o8 y. Y5 ^3 y' k) h0 {+ K- D8 m' g
- ;;; version, English.
% p! q. o( Z1 ` - ;;;----------------------------------------------------------------------------: K( y" P% N. }5 O/ T1 h
- ;;;
) c4 b7 }2 N+ w- [# f2 j - ;;;( m" c: [1 {3 i7 ~( `
- ;;; ===========================================================================6 [8 u+ n7 w+ o, J
- ;;; ===================== load-time error checking ============================5 P. a' e& |6 _* O" ]7 J2 i- g
- ;;;* t3 x; r ~4 {9 ?, |# X! N
- % x! C# g5 `9 h
- (defun ai_abort (app msg)- l; e/ `& x1 m5 F& i$ v& \7 ^
- (defun *error* (s)
3 R f, f; u( d8 x( J - (if old_error (setq *error* old_error))9 b- d( x9 x* X& {# ~
- (princ)
/ F( R& Y. Z- o! A' V1 Z: q - )
. Q6 f6 h: A# @ - (if msg' ~% |' _+ F$ I$ V0 K5 @8 p
- (alert (strcat " Application error: "$ D: b9 T' n% f) d
- app
- f# Y2 u( l8 c7 E% L& e - " \n\n "
% o/ {" W, B# X: Q; l- I& t - msg
, Q4 c6 E, C$ [7 T( r$ ?% p - " \n"9 I4 m3 n; K, v/ c
- )$ l1 J3 |2 S( P" \8 i( O2 ]
- )
8 I# c, b0 {8 l2 a0 q" u' V - )$ i& e5 z; i# w( |& |: D1 k
- (exit)
5 ^; S3 \/ l8 h! a4 e+ F# r - )
x0 q: [$ X8 ^1 W
$ k; X( J- K( d4 o; t2 l7 t- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,/ x0 F O- Y: V
- ;;; and then try to load it.
" u- \" n" A# F6 Z/ I( c - ;;; T- I* x" c( [$ r& G
- ;;; If it can't be found or it can't be loaded, then abort the& M" F! z" N; {, }4 K
- ;;; loading of this file immediately, preserving the (autoload) u8 o; r% P' A' u1 m2 X, u
- ;;; stub function.
; X% G/ ?# H; l
! `$ o; Q( m% U5 T! |, K( {- (cond, p3 D: X3 X$ ]# C
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
7 p: g0 V- ]. B8 t" b - . Y" W1 _" t5 E) A% z: f4 [
- ( (not (findfile "ai_utils.lsp")) ; find it, p% V( ]/ D h
- (ai_abort "DDCHPROP"
- q" s% d6 c) U9 P3 c+ Z0 P$ C - (strcat "Can't locate file AI_UTILS.LSP."
7 x. {2 @: O$ a# T/ P6 ? - "\n Check support directory.")))
4 M9 [8 m/ r( f; u - ; V! R7 N0 m2 O9 U" X
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
# G1 v" I( R1 i/ A - (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))2 `. e9 D* l* J3 _1 z
- )$ i. T. K$ h$ A
- 5 ^' @0 Z2 V2 |0 z
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP# v2 S1 Z8 y+ @+ c* `* h5 S
- (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses
5 O0 X4 O) d2 `4 E6 I6 S& o! Q - ) ; ai_abort's alert box dialog.+ ]! B# M# r% O3 u( h
- 3 x) S4 O6 q8 `9 o9 I! K
- ;;; ==================== end load-time operations ===========================
3 ?+ a# {+ L: l- f/ W$ s6 C
6 C6 `9 U$ W' u. g7 m5 K- ;;; Initialize program subroutines and variables.
4 y& e% R9 n* W! P( Q
; p! t* `1 X" _* S; `6 |4 U- (defun ddchprop_init ()) t& @' X- b$ K
- 6 _. M' t3 U+ c9 K7 M
- ;;
: u5 M' t8 }- I m! F - ;; Define buttons and set values in CHPROP dialogue box
, q5 q. p0 j e5 j$ p& U* K - ;;
; p( q6 x. U" g& G h - (defun call_chp ()1 l. g: S3 ^* [* n5 w3 M
- (if (not (new_dialog "ch_prop" dcl_id)) (exit))- j% M% ~2 k# Y8 |
- (set_tile "error" "")
5 F% K+ q5 n/ A/ D* E5 l+ B - ;; Set initial dialogue tile values3 a/ N$ t' Q( V6 l; G
- (set_col_tile)
. k2 P/ ^4 H. t' ^ - (if (= lay-idx nil)+ O; Z; s3 V# k3 n- U. ^
- (set_tile "t_layer" "Varies")( R7 B2 j/ a4 X/ ~6 s7 E
- (set_tile "t_layer" (nth lay-idx laynmlst))
% w2 T2 S5 s" y5 o: a0 f - )0 s: Z* H! k1 g3 i; _
- (cond - m4 G4 t5 f- f/ d( X& {
- ((= lt-idx nil)
8 q2 \3 D. }% e# n& Z) u# e - (set_tile "t_ltype" "Varies")
9 W9 A* c/ z) p: F8 K9 e% m: ]; |' k - )
) T. T. ^; f5 `2 J/ k, q( b& r$ y: o- r - ((= lt-idx 0) ; set tile "By layer & layer linetype"
, @, t/ c) |" T& H& B - (set_tile "t_ltype" (bylayer_lt))
0 F7 j: l P+ U- }* `% ? - )
9 W( w1 @; l0 [* v, {% ` - (T
$ {8 ~" S$ F2 b - (set_tile "t_ltype" (nth lt-idx ltnmlst))2 r" U1 P. I* c/ [+ }
- )
7 ]" J6 g7 @- f - )' m# R. O# t" @( p) t7 c; w
- (if (or (= ethickness nil) (= ethickness "Varies"))% ]+ A" O+ v: l7 d) @: J5 g5 R
- (set_tile "eb_thickness" "Varies"), F- C, s9 @) U$ N% c0 W* {
- (set_tile "eb_thickness" (rtos ethickness))
2 t. x* x9 F" s F9 p - )3 U# {: | l! a3 b0 c! I
- ;; Define action for tiles
2 O! h- @; W9 l; w1 n - (action_tile "b_color" "(setq ecolor (getcolor))")2 ~' x3 @% c% r' Z7 X+ C
- (action_tile "show_image" "(setq ecolor (getcolor))")0 I$ D. n8 Q5 J7 \; k% X' i
- (action_tile "b_name" "(setq elayer (getlayer))")/ Y+ w- _; g; ~/ Q n
- (action_tile "b_line" "(setq eltype (getltype))"), J" g/ p1 p4 f' B3 W2 J. r
- (action_tile "eb_thickness" "(getthickness $value)")
$ p+ d( \' _5 {( t B* | - (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")") e0 K& S1 O. F
- (action_tile "accept" "(test-ok)"). n$ G$ c2 g7 \' F+ Y8 q D
- (if (= (start_dialog) 1)
J7 {; C8 Z3 [" l, {( [' v0 K - (progn
) @+ J4 {8 s5 K8 p9 L. W - (command "_.chprop" ss "")
1 ?/ S* g6 T' s3 O+ b- E - (if ecolor; e4 x# X$ L' O' S$ P$ ?5 N% I- d
- (progn* q& J {' ?$ z6 T4 A2 r
- (if (= 0 ecolor ) (setq ecolor "BYBLOCK")); l" R; _1 s- y0 T2 x
- (if (= 256 ecolor ) (setq ecolor "BYLAYER"))
& w! m' `8 Y# m; X8 B4 O& M - (command "_c" ecolor)
5 _1 t2 D6 h% B0 Z' w - )2 h: z3 C/ Y" J2 L2 s
- )" K& e3 D# A# E
- (if (and (/= eltype "Varies") lt-idx)
M5 M" {' Q0 }* I - (command "_lt" eltype)
, j; ^+ n i- H6 ^( V) L k' p - )
. W6 ~* a5 l& W# F/ @2 p9 L5 {- w! d - (if (and (/= elayer "Varies") lay-idx)
" o+ B: ~' h- f1 t! b$ n* e - (command "_la" elayer)
4 [1 P w* v E. q" M1 ]/ y - )1 `, k& O* Z5 ~# x
- (if (and (/= ethickness "Varies") ethickness)
5 G+ h3 ?# @6 H7 k% S" C. v) n; m - (command "_t" ethickness)
0 S0 N1 h. ]( D X - )
/ ~* k) v3 W7 N9 Z0 w - (command "")
: G5 M0 [% m" c& X" r - )
! C: d) M7 s0 L$ B - (princ "\nProperties unchanged"); S. u5 S. \" F- F6 X1 p6 Y) K5 T* Y1 {
- )
% B! O+ [7 j8 W+ l9 _. n2 j - (princ)
g# c- g4 N/ ~/ ~4 W - )
: V8 y& ~1 Q9 @2 B/ r - ;;6 W( n! }' N1 Z6 e6 X6 |& z2 b
- ;; Function to set the Color text tile and swab to the current color value.; ^7 U8 {' F; W9 @# U) o& ]* [
- ;;
( Q8 \+ p2 P7 S* K0 Q: J+ I - (defun set_col_tile()
}+ a4 @0 {0 M% i - (cond
: W5 G/ ~4 r2 S7 A% ^% Q6 [ - ((= ecolor nil)' G& ~! p c4 i
- (set_tile "t_color" "Varies")
5 I1 n# N- M8 D- G! D - (col_tile "show_image" 0 nil)3 S8 E/ h- F [5 x2 Z
- )
) x4 N' U, ~( ] - ((= ecolor 0) S9 T& o V/ A! `( p' R, c7 H6 a
- (set_tile "t_color" "BYBLOCK")
7 O$ {% }! [$ e$ p$ C - (col_tile "show_image" 0 nil)
$ m, ?! ]6 o. e2 J: k1 F - )7 t: I0 |$ ]5 t
- ((= ecolor 1)9 v0 x' v8 k9 \" @4 `
- (set_tile "t_color" "1 red")
: l4 p9 ~9 ^% P: i5 Z - (col_tile "show_image" 1 nil)# ]# z& m* N# v5 k# I
- )4 V! J2 n/ g4 ^9 M) o4 E/ H
- ((= ecolor 2)
0 p) e: G* \* |" x& V - (set_tile "t_color" "2 yellow")1 M# n# J, E. w, q# F" @+ k/ k
- (col_tile "show_image" 2 nil)
: ^0 h Q' k# Z9 Y5 v' h - ); W# o2 _" y- @' x/ W
- ((= ecolor 3): K9 S. S: v8 ?& z
- (set_tile "t_color" "3 green")7 S5 x" J% ^1 h
- (col_tile "show_image" 3 nil)
/ x4 T2 d" J5 `$ h - )
" G6 Q5 n5 _# X3 C0 d8 h- g - ((= ecolor 4)
4 X- q' N/ R7 |* Y - (set_tile "t_color" "4 cyan")
9 h' I. E2 L) i3 i - (col_tile "show_image" 4 nil)
, V1 w5 Y6 Q9 d, R$ Y% I" G - )' e; D& ^" |6 b* V8 O1 C
- ((= ecolor 5)
% @% W0 e7 h% b - (set_tile "t_color" "5 blue")3 E2 K3 X( E R
- (col_tile "show_image" 5 nil)
9 N1 t' m7 ]7 \, _$ i0 @, D" t' h - )0 `8 b. e0 `+ |- A: c7 g* o+ [
- ((= ecolor 6)- w* o$ B; Z6 x! B* z! m( g
- (set_tile "t_color" "6 magenta")5 A9 g4 z, _% X
- (col_tile "show_image" 6 nil)
8 o2 Q* d, ?$ Y3 g Y4 I - )
$ O& o* s3 V* T7 A& l, e9 X - ((= ecolor 7)2 A' P5 R1 M( h' k1 f) {% s. l+ s
- (set_tile "t_color" "7 white")1 n3 Z4 O, F" G: i9 _
- (col_tile "show_image" 7 nil)
, w- `" ~, c4 O1 W' ? - )1 ?* N1 N* u/ x6 J* \1 C; D
- ;; If the color is "BYLAYER", then set the tile to6 a6 Z' W6 z5 E1 H3 R- b
- ;; show it's set By layer, but also indicate the# B7 C$ `: o3 D! w6 B( m/ u
- ;; color of the layer - i.e. By layer (red)" D6 Q9 m$ q5 P6 |0 ]+ W
- ((= ecolor 256)
8 I5 r& W% O6 g: l, H+ |9 s" |7 ? - (set_tile "t_color" (bylayer_col))$ p2 K4 q; n$ n8 \
- (col_tile "show_image" cn nil)
% Z- S1 _- D |& Q. O" ^7 l - )
$ ?; l& o. A7 X% Y* B0 U - (T 2 @! Z1 _: w+ b# ^4 u0 C
- (set_tile "t_color" (itoa ecolor))
! n m0 @. w0 L( @ - (col_tile "show_image" ecolor nil)( w9 F& }* R, ?: d( n) r
- )
" r' ?& \- L9 ~. k - )$ L3 u+ G. o5 S) v
- )
- Y8 v0 R* `* k ]" H& v1 X* L$ ~ - ;;
$ l) J" S& t6 I' c' Q( } - ;; Function to put up the standard color dialogue.
3 y: V0 r& V' V9 R - ;;
+ x( R# t ] ^1 Q3 B4 o - (defun getcolor(/ col_def lay_clr temp_color)
% K3 A% P4 B, c Q+ |. r. H; q - ;; col_def is the default color used when rq_color is called. If ecolor $ ?9 q: X- _# j/ Z" `9 s
- ;; is nil (varies) then set it to 1, else use the value of ecolor.
( @: z+ D% e! l& h3 d" q2 c - (if ecolor/ Q& H; d7 H5 }& U0 P
- (setq col_def ecolor)( p5 ?, t1 A, B. w4 y M! C
- (setq col_def 1)9 O2 b7 i0 [' ?! n: N
- )1 h3 a+ n: n; y- Q0 |
-
& E" [* k# P( D# ?: V' w1 f) e- ~% ^ - ;; If we're working with a single layer, get its color
& X8 f$ d; Q2 F: B# h - ;; for use in the color swatch if the user selects color BYLAYER.
3 S& i4 }0 X7 I6 @ - (if (/= elayer "Varies")2 J D1 j* c S6 h* e* }9 q( I6 U* L% E
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))+ Q |/ P7 i& s* k; _+ |; O
- (setq lay_clr 0); v7 \, f% D5 g/ p/ |
- )
" O& b7 _5 h! W$ x5 h5 ?0 N - (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))1 Z# m) N5 \- u. V, p$ |7 _
- (progn
8 q, n! q8 Q3 _* g - (setq ecolor temp_color) b/ t+ g* K7 S3 P" J0 V2 t. K
- (set_col_tile)
0 @7 Y1 t0 k! h - ecolor
r6 w: ?. a- R" \ - )
# C. t" E* e: x$ d, N - ecolor
T4 F% O- }; n+ _8 t5 w - )
0 s. {2 ?+ l# L7 j* P! ~. e: v) s! K - )6 q7 Q4 y* {* L" x
- ;;
) w4 W" [/ i, B8 [7 G1 d - ;; This function pops a dialogue box consisting of a list box, image tile, ! N/ ~7 O$ X& F# N7 T- j# w
- ;; and edit box to allow the user to select or type a linetype. It returns 0 Q' A* e, A6 s5 X
- ;; the linetype selected.
( O1 n, m5 C I8 d- E+ B - ;;
) U7 i6 G# a' B9 \' Q" _ - (defun getltype (/ old-idx ltname)
# \4 U0 Q! ?* P1 ]6 Z7 M: U7 L - ;; Initialize a dialogue from dialogue file- x7 T. I; h, F) N2 I, X9 Y* A9 A) W
- (if (not (new_dialog "setltype" dcl_id)) (exit))4 d. \$ l# \# j( ~
- (start_list "list_lt")
3 ~/ Q& Z9 }2 I. H% [( K" K) w+ K, A - (mapcar 'add_list ltnmlst) ; initialize list box8 I2 M- L0 [# v/ v# l" G
- (end_list)( m9 }5 x6 w; O5 o5 P3 {. k9 ]* P
- (setq old-idx lt-idx)
" Z/ F: j d) ?0 L3 X7 | - ;; Show initial ltype in image tile, list box, and edit box# F& f3 h" R& y% A, i
- (if (/= lt-idx nil)
* j; J0 _6 i. J( D u1 Q8 o - (ltlist_act (itoa lt-idx))
9 v, p6 B: X; V$ p8 G7 M! v* ]' P - (progn" j; T% N' E, s
- (set_tile "edit_lt" "Varies")2 [& S& b# N: W
- (col_tile "show_image" 0 nil)& a8 S' R9 @9 c1 J3 i; P
- )$ Y1 Q* _/ M/ d, B T# h
- ). ]) a) A k& b3 x) D1 r5 l' \
- (action_tile "list_lt" "(ltlist_act $value)")2 f& [* C; A2 i# g6 J" L
- (action_tile "edit_lt" "(ltedit_act $value)")- b& @3 r* s: ~3 ?3 s
- (action_tile "accept" "(test-ok)")
; N0 q8 o1 a1 ^9 p - (action_tile "cancel" "(reset-lt)")
+ Q8 b( d* F, K2 f, n# X - (if (= (start_dialog) 1) ; User pressed OK
% A# ?' L. R. _+ P$ K2 x6 R - (cond
% W/ |5 p" |. k T% u& v - ((= lt-idx nil)
, x2 r6 |0 w k - (set_tile "t_ltype" "Varies")- L: l/ a1 ~8 }4 s( M
- "Varies". l" p6 Q3 U0 w/ B o8 \0 ]# g
- )* h- u4 f, ^5 |# y1 L" n5 h
- ((= lt-idx 0)
! o- o4 g7 V: H - (set_tile "t_ltype" (bylayer_lt))0 [% R3 {4 B; L; y" U
- "BYLAYER"
. d: ^7 W# h2 f8 X - )& O& D+ M0 X1 P5 I6 R& v. x
- ((= lt-idx 1); m B+ k8 ~4 K/ O
- (set_tile "t_ltype" "BYBLOCK")
. K8 _) j3 f1 [& m! f - "BYBLOCK"
, S( v# ~, h* ]# r f' S' { - )
1 T9 r! L- z3 g5 ?' a. g) n - (T 2 B/ O$ f( b$ x- W$ D2 P. R. d
- (set_tile "t_ltype" ltname) & k. R7 M7 T8 ?4 }4 i% @
- ltname
' p4 L' h, S8 a" v - )
" ]9 W3 E) e* o2 A6 W z - )* A( m+ t; G L4 v/ M% K, i
- eltype
$ S5 H3 k% Q) W# ^; @+ U - )' n7 t$ o8 I C( e7 A$ A8 x
- )5 J7 r2 ~/ {! Y3 X/ H5 c
- ;;) ^2 d6 m% a. D# i" \
- ;; Edit box entries end up here
" I7 r! T% t% |% e0 \8 f% M - ;;. D" q- ]6 X) b2 A) w5 m
- (defun ltedit_act (ltvalue)
# u2 |" x$ z+ s2 y - ;; If linetype name,is valid, then clear error string,
: o3 |: @. @7 @" u# x5 z8 p! J' d - ;; call ltlist_act function, and change focus to list box.
7 G3 l' N( D5 [9 F9 e - ;; Else print error message.! W( P% E Y+ z6 P" g
- (setq ltvalue (strcase ltvalue))
0 F5 t! @0 U' g; u - (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))5 \) K Z" S z* M' Q
- (setq ltvalue "BYLAYER")
% H' I$ T k3 i* [% S - ) @* p; U) D% o
- (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))/ H" n2 ~0 B- F8 L+ @
- (setq ltvalue "BYBLOCK")" Y, b$ u3 s u; `
- )
/ ? a+ G8 d$ v2 E" u2 B( M" a - (if (setq lt-idx (getindex ltvalue ltnmlst)): s9 _% M" g4 x
- (progn
5 ?) S6 f( h/ p7 y: g - (set_tile "error" "")
4 V, i2 q5 h0 r$ O0 n A A( ] - (ltlist_act (itoa lt-idx))% }, }) N% o/ a, I* k
- (mode_tile "list_lt" 2)
6 C( n4 b+ {1 T - )- u+ ]0 W E2 V3 n4 X
- (progn1 u9 O4 U8 |. m* o
- (if (/= ltvalue "VARIES")6 C1 r3 M7 ]. r9 x u% h! W* K
- (set_tile "error" "Invalid linetype.")! q, h$ Q1 S: x/ O" D L% f
- )
5 k' T% Y) U# G, ?$ y - (setq lt-idx old-idx)" F, y9 B5 ?5 W7 x
- )
( D& ]6 c8 h5 y - )" d( ~# p0 W) |5 N
- )
3 J9 d$ l$ @8 a. U+ h$ e - ;;
5 s& E+ O# ?! f2 o% C - ;; List selections end up here
1 R2 e" v$ _- e- y' { - ;;
# F# x9 E" C3 J9 ^/ I: \' }6 X8 t1 b - (defun ltlist_act (index / dashdata). G4 f" T. j. d7 e5 G" [1 J; t g
- ;; Update the list box, edit box, and color tile8 t5 G& W4 T) f, ?% y: Y/ z
- (set_tile "error" ""); |3 \: O5 x/ R1 Z
- (setq lt-idx (atoi index))! r9 z2 g0 o! a |
- (setq ltname (nth lt-idx ltnmlst))
2 B; T: [5 y! Y8 ?2 n* d$ Y - (setq dashdata (nth lt-idx mdashlist))
; K, E& g$ L4 L+ ? - (col_tile "show_image" 0 dashdata)$ A. H' I2 ], ~& G' f
- (set_tile "list_lt" (itoa lt-idx)) @/ \9 y, l& Q3 l7 l: ~
- (set_tile "edit_lt" ltname)
- r/ n: Y X. `; ]5 p. Y - )2 S; r" ]; A* N' U7 e/ z6 T
- ;;4 i. l% N1 n, t/ @1 B- C( B* T
- ;; Reset to original linetype when cancel it selected
; s! q- U- o, U! x* B8 W - ;;3 f! {6 C! D9 e, B* y
- (defun reset-lt ()# u' \ S5 W! L8 ?9 t5 S! F
- (setq lt-idx old-idx)3 X6 ]8 H8 ?) v2 b" _) Z5 A& c
- (done_dialog 0)' T! X) I' V; `; V7 w
- )
6 x) o/ z! g' F U8 P - ;;
2 d& _0 A0 C* h2 H0 W" l! A - ;; This function pops a dialogue box consisting of a list box and edit box to
& x$ G& `7 C8 r% M/ A$ B0 n( s - ;; allow the user to select or type a layer name. It returns the layer name D2 S7 a2 d8 a1 M
- ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the
8 Q z( V* j; ]: ? - ;; drawing.
. {# p4 n% ?" M% E+ `- p - ;;1 ^' L: h( b" d8 r* V+ W
- (defun getlayer (/ old-idx layname on off frozth linetype colname)
( f1 n1 o! E, J/ t - ;; Load a dialogue from dialogue file1 I" \) v! c/ z# j
- (if (not (new_dialog "setlayer" dcl_id)) (exit))
& v) c ?" d& L* J; U. { - (start_list "list_lay")) Q4 N. Y. m( a% A
- (mapcar 'add_list longlist) ; initialize list box
( `- b9 A. ^. ~% v - (end_list)
U; g9 U+ T. ^- ?8 s. H9 c - ;; Display current layer, show initial layer name in edit
- Y3 |7 l) I3 K3 q7 i( O3 c9 P - ;; box, and highlight list box.
) \9 A3 h4 V& r8 j$ V. g - (setq old-idx lay-idx)1 M, }- a) e% T1 |
- (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
7 X) j: ?# J' G- b3 D - (set_tile "cur_layer" (getvar "clayer"))
2 `7 W% Y$ S2 U; Z+ a: |- F - (action_tile "list_lay" "(laylist_act $value)"): I( B7 S& l) s- l
- (action_tile "edit_lay" "(layedit_act $value)")3 l! a5 q7 _5 A. R
- (action_tile "accept" "(test-ok)")+ r. l# l/ [' p' `+ `) W* n
- (action_tile "cancel" "(reset-lay)")
7 N& U) D" z8 W* o. Z; z2 [8 I - (if (= (start_dialog) 1) ; User pressed OK$ y# ~6 p: I# r6 t8 W( T
- (progn
: U5 i8 h0 U3 c5 ]8 k K - (if (= lay-idx nil) (setq layname "Varies"))( t* {, \1 i$ y" T% O
- (set_tile "t_layer" layname)
& @8 u* C G" F9 @+ j- P - ; If layer or ltype equals bylayer reset their tiles
2 f0 D. h$ A, s9 N - (if (= lt-idx 0)
o/ t7 M) B$ }8 a# u: u( \3 z - (set_tile "t_ltype" (bylayer_lt))
' M* t! K( @* E& T0 j- ~- i! ? - )
4 `9 P4 I {* |! j0 K9 I7 T - (if (= ecolor 256). d: b& E% {- y0 t
- (progn
0 Q9 o- y) P0 f. i, Y8 D+ n& C - (set_tile "t_color" (bylayer_col)): K8 J8 c! V6 |& w* g( d
- (col_tile "show_image" cn nil)% X, R+ i! Y% e( H# c( C4 d3 s& n- H! f
- )( W9 O2 y+ z& m K; F
- )/ h0 w4 O* N) v1 d, d* [
- layname
& c2 d2 K/ g ^& w* I& g# q* k: B - )$ W- K& a3 F6 s* w( n+ {% T
- elayer; C! Z. s1 }* U" n3 m( ~% `
- ), a1 A- U- ]: c8 \! ]' r/ [/ E
- )
3 o0 C- m( y9 a% ^ - ;;* i+ Q n4 N9 Q5 y+ C' [( e
- ;; Edit box selections end up here1 R+ g+ ~ v4 X0 I
- ;;+ g. W i% c! U2 P0 S
- (defun layedit_act (layvalue)
* E# T3 e; P& Y F - ;; Convert layer entry to upper case. If layer name is5 ^) p& T; d! R! `- y: l. G @2 y
- ;; valid, clear error string, call (laylist_act) function,6 r9 J) H2 Z8 ?# d& U8 `' Z
- ;; and change focus to list box. Else print error message.3 g& \9 j \9 D n8 g8 h
- (setq layvalue (strcase layvalue))
0 b8 e# I0 ~! w$ f - (if (setq lay-idx (getindex layvalue laynmlst))
9 T: z* B, q3 L: w, W, B5 P* r- _# D0 U1 H - (progn
$ H$ e; A* `: D/ X E - (set_tile "error" "")1 R v& U# o! Y, `
- (laylist_act (itoa lay-idx))
( o. q, `+ j# E/ E, J9 k6 e: q% p3 z - )
% r, f# p4 W+ I0 g/ |, W - (progn
( F( N U/ F5 [7 ?6 F# ~4 h$ v# f - (set_tile "error" "Invalid layer name.")
, M- E$ H7 m7 u: s$ O; ^2 } - (setq lay-idx old-idx)
! o6 f+ [/ V9 i) w - )
& M8 N7 b0 F: X4 T - )
8 }/ B7 W( M" c& e - )
: @7 c! s9 L5 f4 _% r% s3 e ^7 l - ;;
+ D% n8 J! v4 U9 k8 j0 q - ;; List entry selections end up here
|) h$ N) |7 K# g; P" k/ x* |# H - ;;
2 J0 q6 p) f- D( S - (defun laylist_act (index / layinfo color dashdata)
4 ^1 q- W& ^9 u2 K1 y - ;; Update the list box, edit box, and color tile& `2 ?/ Z7 f0 b# _
- (set_tile "error" "")
+ v# |- R9 Y i: @/ O" H - (setq lay-idx (atoi index))7 J( @. Q" h4 U$ A
- (setq layname (nth lay-idx laynmlst))
" E6 t- |5 z. \ N0 ^: m - (setq layinfo (tblsearch "layer" layname))" D/ R/ E- T; F2 {. M
- (if (= (logand (cdr (assoc 70 layinfo)) 4) 4)5 l5 V( ?8 e( j7 `
- (set_tile "error" "Cannot change entity to locked layer.")5 t9 F5 { K2 O7 a0 W
- (progn9 f* M& M6 c) e7 e8 r) u
- (setq color (cdr (assoc 62 layinfo)))9 I# }" D% n$ l6 }: t; N5 M* `
- (setq color (abs color))
) Q( y5 U! u7 }5 a. j4 f* ?. r - (setq colname (colorname color))
' v9 L. X" E6 A, h - (set_tile "list_lay" (itoa lay-idx))
6 M& r j `' G% d+ ~ - (set_tile "edit_lay" layname)
, @$ B9 ~- O, d3 K% { - (mode_tile "list_lay" 2)9 Y4 e1 b( N% n( C4 W1 E
- )2 F" Q7 R* m% Y% g/ S. ~4 ~& D
- ). ^0 x6 r0 l$ E L9 _0 H
- )4 `: @: S* }) _+ S! L2 x
- ;;
& L: K) R9 V4 c. c& T4 A - ;; Reset to original layer when cancel is selected2 R9 j1 m7 L& q2 e
- ;;
4 H. y; C4 O- J5 _+ q5 ^ - (defun reset-lay ()
2 }$ d- H% s, p: t - (setq lay-idx old-idx)! X* U( _; u: Y9 m I4 e
- (done_dialog 0)' U# J9 b# F3 J8 X! n& {! ~8 P3 O
- )
* U/ W3 ?! _& ]0 H4 O' k8 r - ;;7 D7 v) a: J) n s" c! v! x
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
?+ q: D' `, l8 t - ;; string can't be converted to a real, this routine checks if the first
5 R G/ {$ M9 h% p3 t - ;; character is "0". It also checks to see if the value equals "Varies".6 R* u1 V B5 c, ~1 `# `. i5 k2 k, D3 ?
- ;;6 N6 z4 M1 b' k
- (defun getthickness (value)% m+ J7 N* {, | j! `" G& \6 j
- (setq value (strcase value))
3 z. |: C* ]2 M3 l: v9 J5 X0 B9 R - (if (or (= value "VARIES")
* }, i' ~% c: A1 @+ t- S* m0 b. Q - (distof value)
1 @/ o/ r/ O3 j1 Q5 }# C$ { - )
; u; t- V' ^/ S3 R% z9 I - (progn( A9 x3 A0 p# s. k
- (set_tile "error" "")
# {+ n5 _7 k& g, `" ^ - (if (= value "VARIES"), H* Q, F; a4 J! J! Z; ]/ @& p
- (progn2 _! t: m+ j! R1 q* M4 `, }
- (set_tile "eb_thickness" "Varies")
) g, T; i5 C6 X$ k M1 R' p% y - (setq ethickness nil)
1 z( |. q2 W. b( |9 f9 i - )
1 ~. U3 B G6 p- V7 h) q) U - (progn( K/ w: Y; t* a8 E( z
- (setq ethickness (distof value))
% O; ~8 o5 a7 q9 w1 | d' S - (set_tile "eb_thickness" (rtos ethickness))
. `- k. |& a9 e) Z! a+ Q( W# v/ v4 ~. f+ w - ethickness
1 p2 P" B2 |+ r; p - )( ?$ \: Z0 z1 }. O
- )3 B& z+ f+ X1 E6 k& t7 J) S1 Z
- )
9 b% \9 B' b- }' g7 a$ W* M - (progn
* d: V8 j f c! @ g- J - (set_tile "error" "Invalid thickness.")' S; O* S* k2 o& v4 J
- nil
) ^5 E0 `5 U' H. K1 a - ). g3 \4 T0 A6 S# U' W, t/ a% r
- )
% J) y, n d% d5 o: Y, T. n - )% r+ a$ s" V9 T0 {4 ]
- ;;9 R1 A5 |% }- y4 {0 [
- ;; This function make a list called laynmlst which consists of all the layer - `, _- ~( F' T* V" x, ]' n- T, \
- ;; names in the drawing. It also creates a list called longlist which " x) b6 V0 ?4 y
- ;; consists of strings which contain the layer name, color, linetype, etc.
8 u1 X \: k) R" w' } - ;; Longlist is later mapped into the layer listbox. Both are ordered the . N Z3 `# H+ g& ]' L5 D/ g
- ;; same.
8 z6 _3 }+ N% j+ {; [) f; V8 A# v+ I" u" ` - ;;
d# _6 J8 ~$ a2 [ - (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname 8 o! U7 p3 @: N# D2 f$ b3 x8 D
- xdlist vpldata sortlist name templist bit-70' ~6 \* m3 F. j4 m
- ); [ [$ w& I6 g5 y: S9 m
- (if (= (setq tilemode (getvar "tilemode")) 0)
! R) J- Z9 @& V( T) ]* L/ A5 w - (progn1 e+ E" K) c+ U$ Y/ g. m
- (setq ss (ssget "x" (list (cons 0 "VIEWPORT")+ Q0 E g! n3 n
- (cons 69 (getvar "CVPORT")); E( ~: s) w9 |4 j( ]& y8 a
- )* H0 E$ g$ U2 W2 J/ ~
- )* i) g0 Z7 |! O0 y# Q
- )
6 C2 ]6 A; Z) K8 g! c9 J4 F - (setq cvpname (ssname ss 0))
d5 a( B; j5 c6 A - (setq xdlist (assoc -3 (entget cvpname '("acad")))); R# M# r0 N- I+ M( X
- (setq vpldata (cdadr xdlist))
2 ]1 x- S# u) ^- s0 Y - )
: g! }2 A1 b# f! }4 A* R - )
1 [0 `& V2 H% @0 M" c, H8 ~ - (setq sortlist nil)
6 a) C- N! ]9 F+ G - (setq templist (tblnext "LAYER" T))
z3 Y; x) I5 l' c$ K( K - (while templist
+ O$ d( ]" m' I2 f - (setq name (cdr (assoc 2 templist)))8 t; G. ~+ v* k8 W: |, G
- (setq sortlist (cons name sortlist))* h* w% @7 x+ Y0 _2 i
- (setq templist (tblnext "LAYER"))2 @; a" ~" p. W- o8 U# c! W
- )
( E* s# ^/ \! S2 {4 _ - (if (>= (getvar "maxsort") (length sortlist))- T" n/ R `( d' j# \
- (setq sortlist (acad_strlsort sortlist)): H2 _* y3 U1 U5 B
- (setq sortlist (reverse sortlist))6 w9 K3 i& o+ v
- )
0 \' ?. D$ ^* Z$ y0 C9 b' Y- T - (setq laynmlst sortlist)
, C4 h' y$ L! [' [: B7 O4 S( I7 n - (setq longlist nil)
/ ^- z8 _7 b' a- {$ g* e$ R - (setq layname (car sortlist)); i: k6 i5 z' {( }5 F
- (while layname
1 H: L' v9 \1 P$ o$ ^8 s$ f/ i$ Z - (setq laylist (tblsearch "LAYER" layname))
/ w! O4 [9 `+ X7 f4 p" D - (setq color (cdr (assoc 62 laylist)))- Z" v- A" _: C6 ^# Y
- (if (minusp color)
2 b X, L, t/ J9 ]' h; w - (setq onoff ".")
) N- X! X' j% q$ h; @. T; L - (setq onoff "On")
' E) D2 s7 z6 Q& ]+ A& n4 j - )
2 g2 Y' ]9 ~ k( X& q! d - (setq color (abs color))8 R1 o3 e$ i d& d1 p# s2 F8 w
- (setq colname (colorname color))
! z( d* F. C. `4 K" s - (setq bit-70 (cdr (assoc 70 laylist)))
' b1 T) p* o/ o1 z B: J - (if (= (logand bit-70 1) 1)3 \6 A1 H2 I7 x
- (setq frozth "F" fchk laylist)+ X7 t% {9 E2 p5 K
- (setq frozth ".")+ w- f, ~8 |/ w2 N7 T
- )1 U! ~9 [0 {9 z4 F$ H+ ?- D
- (if (= (logand bit-70 2) 2)# v/ C9 n6 {1 n# @4 x2 U
- (setq vpn "N")
; B! ^$ k* \* n8 q - (setq vpn ".")
1 a# i$ h/ g9 p5 l$ Z1 a: g - )) e/ n: s, Y" Y+ J
- (if (= (logand bit-70 4) 4) O+ g9 Z( q1 _
- (setq lock "L")4 `: W8 s* |5 I1 R+ |4 Z
- (setq lock ".")5 w: F# @5 ?! y$ @' J3 m
- )/ s' p, L; y; i7 w7 Q) {; G: i# c: J% W1 F
- (setq linetype (cdr (assoc 6 laylist))); p5 Z* L6 M% A+ [) A
- (setq layname (substr layname 1 31))
6 ], U" x# w( { - (if (= tilemode 0)0 {. H, b8 n: ^7 r9 c
- (progn4 Z* ~* w y. W
- (if (member (cons 1003 layname) vpldata)
6 B! n/ I& i% j1 U - (setq vpf "C")! h5 S, K0 Z% w; K0 P
- (setq vpf ".")+ |& P" y; a3 G8 m
- )
9 H# t# u5 J9 o( s! K - )
]# ?- @6 ~' L- k - (setq vpf ".")# C& ^9 y( ?! m7 v, _( w! D/ v( a; k
- ). C. n' G0 K' Z& [: T4 `% ~
- (setq ltabstr (strcat layname "\t"- W, [3 V, o" e" ^5 A
- onoff "\t". k8 U; a7 p$ n9 D! C$ S
- frozth "\t"- ^+ \# i( L2 }0 a8 x; g
- lock "\t"* u8 R0 u0 B7 e; l. Z0 J
- vpf "\t"2 A9 ^7 P& U4 Q. y; _' ]8 l
- vpn "\t"
9 M. r5 w# Y3 \) W- ~$ G8 X2 _7 z - colname "\t"
, R. P0 R/ g8 I# E6 d& Z - linetype& f& }8 D5 J1 P' g, W
- )4 k+ c2 e8 h4 P' b& h
- )/ a& M7 }+ `6 x! y) Y/ o
- (setq longlist (append longlist (list ltabstr)))/ o) h: q2 B% _: e1 p7 m3 }# B
- (setq sortlist (cdr sortlist))" L, |8 l! F# Y- O+ _
- (setq layname (car sortlist))
% [' k+ h4 b4 X$ {* U, ] ?6 j" K - )
, s7 p8 Z, p6 D K: T9 P - )
4 A$ d8 \, o2 K$ f, z2 } - ;;
: I3 Y" T! m* }0 h9 R6 P$ f - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
0 C* Q# I" }- K - ;; linetype names read from the symbol table. Mdashlist is list consisting
( s: J1 W; o- T - ;; of lists which define the linetype pattern - numbers that indicate dots, ! q$ o$ e! ]. K# [
- ;; dashes, and spaces taken from group code 49. The list corresponds to the 7 q+ ^+ l- }$ b" M$ r
- ;; order of names in ltnmlst.1 D9 v y; o; g7 H, y8 v
- ;;# j. r5 w: b$ R" d& `1 X
- (defun makeltlists (/ ltlist ltname)1 u3 H3 u+ t. y3 j) e- n3 n7 ?
- (setq mdashlist nil)1 g- T& H% X- L
- (setq ltlist (tblnext "LTYPE" T))! i5 n. A' S7 E$ O3 q2 u# a8 L
- (setq ltname (cdr (assoc 2 ltlist)))
9 f5 Q1 i; T5 f; t - (setq ltnmlst (list ltname))- ^3 ?# r: c' b) I1 D4 J
$ y: r5 Y$ r$ q, k7 p- Y- (if (= ltname "CONTINUOUS"); |3 C. U+ k0 J/ q! z
- (setq mdashlist (list "CONT"))4 L! `- Y, A) ?" u* i4 o
- (setq mdashlist
h; W9 Y4 B: Q - (append mdashlist (list (add-mdash ltlist)))0 b' ?& J( {. E t; y
- )
- n2 v* S. X" Y: k - )
; k7 F: W' a# I O# b( q W: V - (while (setq ltlist (tblnext "LTYPE"))
" O& `" L0 ?" [1 E- X) D' Z2 } - (setq ltname (cdr (assoc 2 ltlist)))
4 E3 {" @6 ]9 W5 h - (setq ltnmlst (append ltnmlst (list ltname))). _ }; {2 l2 k, y
- (setq mdashlist 7 l$ B3 ^" W9 s7 ?, h3 Z" @
- (append mdashlist (list (add-mdash ltlist)))" T- k2 v P4 m$ m; i
- )4 B4 B1 ?) h2 B- n( Z
- )1 X# S( [( H3 S" k( t& K) O$ P
- (setq ltnmlst (cons "BYBLOCK" ltnmlst)): J* x, ] g2 a% X( K! h
- (setq mdashlist (cons nil mdashlist))0 F& Z w* m, p2 v- I
- (setq ltnmlst (cons "BYLAYER" ltnmlst)); ?: Y% Y4 O; v. m5 D
- (setq mdashlist (cons nil mdashlist))" L- K! k# {) }! G' g
- )6 W2 T6 I% \2 J
- ;;
4 |4 i5 V' p& h - ;; Get all the group code 49 values for a linetype and put them in a list
3 U1 T8 C7 F+ F% ^9 d - ;; (pen-up, pen-down info): k: _& s( \2 E1 d3 r0 T
- ;;1 L5 e: y: a6 V$ e9 E
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize)" ^" p" B# D+ d+ {7 X& S
- (setq dashlist nil)
5 L2 R, l. G4 r9 I+ X6 K - (while (setq assoclist (car ltlist1))5 K$ K2 p* v4 f6 d# p8 i
- (if (= (car assoclist) 49)
8 _9 S# T+ B# C+ G& ^ - (progn
6 S/ w. ^) W. q- x; y4 r) T+ o - (setq dashsize (cdr assoclist))
, a7 {* W4 i+ E& L6 x - (setq dashlist (cons dashsize dashlist))8 K& ]4 ~: s4 O! b
- )
$ F1 B, E% X6 W' k% s6 d - )* U. H0 `/ y/ P( H
- (setq ltlist1 (cdr ltlist1))0 }/ r5 c/ K5 A7 j
- ) I# M: m# l; q" m- P
- (setq dashlist (reverse dashlist))/ l4 Z# n1 @+ m* I& T" T
- )6 J1 L# G, _' j, J7 S
- ;;6 E, O1 V7 h% a6 }4 D) ]: O9 x
- ;; Color a tile, draw linetype, and draw a border around it3 i1 n, Z* R1 m: k! ~
- ;;
& y5 H4 t, p; \ - (defun col_tile (tile color patlist / x y)2 D2 H5 K- j; N. p7 E% ^! ?
- (setq x (dimx_tile tile))% T4 ]) \7 L# C% H( c
- (setq y (dimy_tile tile))" [ [. R5 Q, q+ q
- (start_image tile)
- c& M! E4 _3 C1 i( t1 t! R+ a - (fill_image 0 0 x y color)* K6 M3 N5 T3 h* N7 E. W7 e
- (if (= color 7)8 \$ m- z" w0 d$ f6 \
- (progn) z* ^! P( r1 ?$ k
- (if patlist (drawpattern x (/ y 2) patlist 0))1 i/ P% a- \: E) Y) @; L
- (tile_rect 0 0 x y 0)+ D0 Z7 u' r7 L. t% p" ^0 s- Z4 S
- )7 ]8 [: `/ _, Q" d, B, N8 t6 B" x
- (progn
4 V) a) E t# g# j - (if patlist (drawpattern x (/ y 2) patlist 7))- I1 I# z% v; g, l) D
- (tile_rect 0 0 x y 7)
5 P ?3 A1 P: ~- L& d5 x/ x - )
( p* D( y F3 I) W5 x) J( D - )
) n" u4 Q/ B9 d8 Y9 b8 | - (end_image)5 o3 ]' ^9 }" n! }5 n3 B
- )
& c* M+ U; H2 \ - ;;% Y2 w, |% a5 |% s1 S
- ;; Draw a border around a tile" |. v/ L* q2 D' A8 }2 u
- ;;
9 u9 Q: @. l5 U1 k+ w* ]+ t - (defun tile_rect (x1 y1 x2 y2 color)
0 U6 ? { ~' v) U, ] - (setq x2 (- x2 1)) u5 X) x8 Z. J
- (setq y2 (- y2 1))
2 G+ r1 Z- \6 b* k# p O - (vector_image x1 y1 x2 y1 color)2 w4 i8 F1 Y0 U4 {$ ~/ {
- (vector_image x2 y1 x2 y2 color)5 x. C9 \! E/ \. ]
- (vector_image x2 y2 x1 y2 color)
# F: L! [( _( S) N - (vector_image x1 y2 x1 y1 color)
, H: o4 Q+ [1 K; l# L, `4 E2 F - )
* O. `+ a- Z. D9 A6 ]% z6 h - ;;
3 [) p: z* ^4 @3 n4 v# | - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
8 A c# n% [" }! p9 p' \8 w - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a , H0 M1 C& l, X5 e/ y
- ;; list of numbers that define the linetype, and color is the color of the
/ V# N4 \( P U( _: \' A - ;; tile.
0 c& y* ~! C, I8 ` d - ;;( |5 R) y6 a8 ~% f5 R
- (defun drawpattern (boxlength y2 pattern color / x1 x20 j4 u( |. a# Y+ b I9 N# l
- patlist dash)
$ g0 P3 H5 G K7 Q# m) d* ^+ l! y - (setq x1 0 x2 0)
3 _ u1 C9 O/ f# v/ J! R" l& T! r1 { - (setq patlist pattern)- q; I- `: S6 m9 e
- (if (= patlist "CONT")
! q4 {2 `7 U' S0 G1 c1 P4 V; t - (progn
Y* ~9 f2 o* u$ I) k/ L, N( A$ t; k6 B - (setq dash boxlength)
, j4 `8 J% o8 f+ ?! G9 L3 U, B - (vi)
, z8 @; C: @1 B% Q V8 K' q7 k0 l, s - (setq x1 boxlength)
1 O" w9 I9 | Y4 q8 t L - )9 V+ g$ i+ |* _6 r5 d& }1 ^
- ): Y9 g) F# d2 l
- (while (< x1 boxlength)$ q% N: C" G5 b
- (if (setq dash (car patlist)), c8 o. L7 a- E2 E: a" `
- (progn
4 ?# C- I" p2 i - (setq dash (fix (* 30 dash)))8 I* z. s7 n. `4 G; a
- (cond * N* j( I% {; q- C
- ((= dash 0)
W5 C- K% e" @1 S - (setq dash 1)
6 I& A7 t- [) _. I1 i! O% [ - (vi)2 A, O6 B- x. ^( [) H
- )
) \7 O. L2 v6 W$ \# I: i; D' Q) @ - ((> dash 0)
$ v1 K1 R/ ]: g( Y. f8 K& i - (vi)
+ X. Y9 {' `6 H( a! k) ], @; }( z& a - )7 w& P2 d, U4 P6 k8 D" Z1 s6 D
- (T
1 Y5 L) R. I0 l/ V - (if (< (abs dash) 2) (setq dash 2))* |0 Q- A. b' D
- (setq x2 (+ x2 (abs dash)))9 w0 b {1 M7 I) s
- )
' \$ h* E; P6 x# M% a - )
9 j8 @$ M" ]* q! [( T - (setq patlist (cdr patlist))
# f5 x' S* L0 [ - (setq x1 x2)
7 w; M; q. z$ k `/ J+ W - )1 \! Z( u$ C: u" Y$ D
- (setq patlist pattern)
" X& }! t1 `+ Q - )
" N0 t9 _2 B, K - )
3 v4 B/ L1 z1 q* k9 A* U - )' E* g7 s' n3 s2 g+ m- v! ~2 u
- ;;
3 X$ ]4 r( M, X - ;; Draw a dash or dot in image tile
^; s* W! }( H% @ i# o" d& @ - ;;
. C- Y! E( @' I, ~7 ~& s. g - (defun vi ()
Y8 p( k: X* O7 t% X; a% S - (setq x2 (+ x2 dash))+ F" R$ P$ F/ r$ Q" b
- (vector_image x1 y2 x2 y2 color)' X% v+ G+ S; l* m6 q3 L
- )5 `5 ] n, d, R
- ;;8 m/ r! r6 A, s
- ;; This function takes a selection and returns a list of the color, linetype,
; M6 N9 w- x% J* V5 U6 S - ;; layer, and thickness properties that are common to every entities in the( ~% ?+ G# m( M
- ;; selection set - (color linetype layer thickness). If all entities do not % q& F9 s1 s: U* G1 V
- ;; share the same property value it returns "Varies" in place of the
4 h+ @/ ^: t4 w7 } - ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0) V$ ^/ P- f ^, c. b$ z( e
- ;;
+ z7 q% _5 I g* g$ f' d1 J$ @1 D - (defun getprops (selset / sslen elist color ltype layer3 V1 R3 E2 K: a
- thickness go chk-col chk-lt chk-lay chk-th ctr)
' e2 [; E" y1 R6 E. j - (setq sslen (sslength selset))) q! k7 d) M( {5 f1 @- l
- (setq elist (entget (ssname selset 0)))" ^: E* Y' b; h3 g0 k% s' i
- (setq color (cdr (assoc 62 elist)))$ r. a# P. N5 Z* |, U; Y
- (if (not color) (setq color 256))
# Q- }$ R N7 \6 y5 s/ d5 L" i - (setq ltype (cdr (assoc 6 elist)))7 }0 g3 {4 w5 Z' O1 `9 `. R
- (if (not ltype) (setq ltype "BYLAYER"))
2 _/ k/ Q! D, C3 r6 m+ `3 |" Q - (setq layer (cdr (assoc 8 elist)))0 H- {4 G$ A ]9 l x
- (setq thickness (cdr (assoc 39 elist)))
9 o8 F( I+ J% d4 j6 R3 L/ j0 T - (if (not thickness) (setq thickness 0))4 s& ~8 s" i R4 G
- (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)" m( |; j, t* g4 z
- ! M5 a7 e& _% x, O! t5 o' w- A
- ;; Page through the selection set. When a property
% K; \6 E A. w7 L: S9 V - ;; does not match, stop checking for that property.! D' a/ o' @# @" X( {( l- L
- ;; If all properties vary, stop paging.- |1 z8 I# S. V. U& h6 _
- / |" E3 {8 |4 F: i: Y
- (while (and (> sslen ctr) go)
6 R+ W2 A" H, V" R1 C - (setq elist (entget (setq en (ssname selset ctr))))
{# r y Z1 F6 f, L - (if chk-col (match-col))
s: j# n) D- s8 v$ J+ I - (if chk-lt (match-lt))
8 }0 h8 W& J' J - (if chk-lay (match-lay)): ^) b* W5 c; T4 f0 _- \8 |
- (if chk-th (match-th))
( H5 I& n0 T2 }/ i" W - (setq ctr (1+ ctr)). t6 y4 X7 J8 q' }# g
- (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th))
1 Z4 }5 _2 I& N& x, z9 C4 M - (setq go nil)9 a, r7 |, L; {9 z1 Z
- )# j% Z" A4 o: W
- )* S7 k8 P. r6 I, X0 ^2 \) A
- (list color ltype layer thickness)
( r- b2 W: K" i1 ~& m - )
& U' i1 H# i. P. g: Z - # o; s: p: o) {7 Y/ M
- (defun match-col (/ ncolor)5 X! ^$ _' u7 L6 i' a
- (setq ncolor (cdr (assoc 62 elist)))% R9 Y' u# e9 W `+ m
- (if (not ncolor) (setq ncolor 256))
8 t* S. C* W: u2 \& e. A' }+ l - (if (/= color ncolor)3 W) i2 I3 N* ?! y
- (progn6 }8 A7 `3 O$ Y. D: w0 i
- (setq chk-col nil)
" R. w2 K# [' L$ M. n - (setq color nil)+ d' m; |6 g+ j6 _: V/ U9 g
- )
! d ^( q4 f/ V. |9 K. F3 x$ X+ B" \3 r6 \ - )
0 V0 m6 W. X. Z5 } - )# d' M# S& U0 S& a9 w4 `
0 X; i( p' s8 e, W' y- (defun match-lt (/ nltype)
0 k& [/ ~0 k9 l) M - (setq nltype (cdr (assoc 6 elist)))
! H; ?6 j; n, r - (if (not nltype) (setq nltype "BYLAYER"))( \: x: u8 t* c$ F3 Y
- (if (/= ltype nltype)
( r6 P0 N) j& q- W- w9 ] - (progn
T' b/ A- |1 t/ S+ W. D6 w - (setq chk-lt nil)8 ?. _5 j; m0 K: o
- (setq ltype "Varies")5 A: S/ ^# A; \( l) w) z
- )
2 L8 s% @( m9 Z6 C4 ^$ a; H% }, d - )0 B1 L- j2 u7 z) F: a' w& O
- )
5 Y. s& R9 x, e - , V; i1 q/ u5 X$ I* X; S
- (defun match-lay (/ nlayer)1 D# ` S( T: [: E6 h7 ^
- (setq nlayer (cdr (assoc 8 elist)))
1 z8 n1 L. P0 P: s: J. k3 J+ l$ ? - (if (/= layer nlayer)
' d: N+ Y4 q' @, Z' z3 W - (progn
5 E# ]$ W3 k6 k9 r! C( W, v+ y - (setq chk-lay nil)
3 L& G4 G. J# i4 G, |4 t, \, J - (setq layer "Varies")
$ Q- G: g0 [. k - )
' W+ I6 W0 t, x3 J' o* f. R; J m - )
9 A5 r. t% H6 R6 S - )
' j8 a" ?( q9 y - , `) `# P" S7 F0 ]
- (defun match-th (/ nthickness)
- k4 [6 d6 x9 |; j# p - (setq nthickness (cdr (assoc 39 elist)))- j3 a0 c! Y# G1 h8 e- ]9 l7 d5 l# Z3 b
- (if (not nthickness) (setq nthickness 0)), C1 g9 s* l& |0 Q
- (if (/= thickness nthickness). q z2 f0 X7 o" W8 y% A
- (progn
& m( N0 p# m- t# W2 [& u6 [ - (setq chk-th nil)( Q' o' _1 K' e4 M4 H
- (setq thickness "Varies")
9 Q! R5 E. s; g* C6 I7 H/ J - )
- f3 d; `* E% n2 D" K - )
* F' m( }+ ?" [1 n - )8 O6 \' S7 ]# p9 F
$ w% q$ X6 T) I% T- ;;
# ]* j' K$ F6 `6 z3 r - ;; If an item is a member of the list, then return its index number, else
& D1 j5 t) v+ }7 ~ - ;; return nil.
" v3 z& n6 y# V$ E5 M* e* Y - ;;& e+ Z( V- f0 m4 n+ g( J' R p3 M
- (defun getindex (item itemlist / m n)
/ J4 g }- e0 V9 z - (setq n (length itemlist))
5 ]' q2 n+ S5 X" Y - (if (> (setq m (length (member item itemlist))) 0)
5 e% A- Q4 {" F - (- n m)% l' a( s) {/ k
- nil
2 s2 I N* V2 x9 \$ K/ ^- P2 Y! O - )
( s) V4 b5 h. O) v3 D, f3 Q0 h - )' b# }! U; e" Y3 {6 N
- ;;/ s+ s5 `7 G6 ~/ k) m4 {0 ?
- ;; This function is called if the linetype is set "BYLAYER". It finds the
) G7 G; \6 M# E: Z2 {7 J4 X: r- t6 v - ;; ltype of the layer so it can be displayed beside the linetype button.
. S6 {0 m1 k2 _! ~) S$ ]& v - ;;
1 C7 Z9 D4 v! e9 A# V - (defun bylayer_lt (/ layname layinfo ltype)# U+ x7 u. D# x( A
- (if lay-idx
. Y' G+ d' @9 h5 F4 k8 m( m6 j - (progn
' ] p5 X$ Z0 m1 N' H8 i1 B - (setq layname (nth lay-idx laynmlst))
" q6 @6 G. Z& S - (setq layinfo (tblsearch "layer" layname))
- ^7 ]! i+ Y1 b! a, \4 E% u - (setq ltype (cdr (assoc 6 layinfo))); y* B/ ^7 T5 y2 @ x( j; y* v
- (strcat "BYLAYER (" ltype ")")2 t9 Z9 U* A8 H1 }* w; {& A: Z
- )
6 [" k1 a8 N9 j4 Z( y7 O - "BYLAYER"
. a) w8 M6 w/ k7 }" Y; a; N - )8 @7 @0 t( h- Y5 B: F& C
- )
) V1 i( U8 A6 Y7 J* I - ;;
2 i. o8 O7 ^! t! Q- Y, h - ;; This function is called if the color is set "BYLAYER". It finds the
6 V4 s+ g5 ^. U0 l: g: e - ;; color of the layer so it can be displayed beside the color button.
* L5 _" F/ d3 C/ c - ;;6 }3 f2 `3 c4 T. W
- (defun bylayer_col (/ layname layinfo color): M( U3 D3 ]( |
- (if lay-idx
1 M7 I! M( j" j+ m - (progn
! e4 [( A8 x8 m' X - (setq layname (nth lay-idx laynmlst))
; ^% g! p: Y5 B" ]5 K6 g - (setq layinfo (tblsearch "layer" layname))3 C* x9 c" _6 ]
- (setq color (abs (cdr (assoc 62 layinfo))))8 T1 E. v5 v" ]. @
- (setq cn color)* r; U3 m) r; m0 y
- (strcat "BYLAYER (" (colorname color) ")")5 Y4 ]( V! a2 U8 n, Z/ j
- )
. o1 a, n1 @; @5 f+ h - (progn4 u5 x: {% Y/ |( y
- (setq cn 0)
7 l! ]+ n( e8 P2 v. C - "BYLAYER"3 c4 c; T$ D) N, T& t
- )
# a( z# C5 T' k - )
! j% }, D* v, {: h: I3 I; a7 C - )
; L- ^/ o% W: O# ~$ Q" w4 k - ;;
3 j# I$ U2 |* W - ;; If there is no error message, then close the dialogue# S& Z. U3 r/ S
- ;;
9 i' L) }0 V R1 b - ;; If there is an error message, then set focus to the tile
' U9 k- Q+ R% s, ^9 e: G% j - ;; that's associated with the error message., ^) _1 r. j' E4 N. O' U7 R c
- ;;
% [, E" f( l$ L - (defun test-ok ( / errtile)
3 ^0 P) ~1 m! h5 {) R! f - (setq errtile (get_tile "error"))
& M) j+ H/ `( l- { - (cond
1 ?" l# z. \$ _( g - ( (= errtile "")
- J; b" T1 M" ^) `! V- ]- K - (done_dialog 1))
6 H& X9 r& C/ `# z2 h - ( (= errtile "Invalid thickness.")
: V& D$ i; e" V3 X) I6 @ - (mode_tile "eb_thickness" 2))
1 \' p; i9 _3 s: J - )
# W3 J: i, t6 X% M: s - )
( K5 j' u, e$ ~" \7 b# T7 { - ;;* r p( R/ J$ L: q" F; L+ q- Z4 L$ r) i
- ;; A color function used by getlayer.6 U4 T# j; N: n5 W5 U- [' J# M+ W
- ;;
; g, V) s& G# t0 n( [; R8 g - (defun colorname (colnum)
. v9 U5 j7 B' i - (setq cn (abs colnum))' h8 Z' E$ U3 o0 h8 x0 f
- (cond ((= cn 1) "red")) Y3 r$ ?3 P, s% R( s0 ?1 {
- ((= cn 2) "yellow")' z( a* x% v, G# u# c3 a
- ((= cn 3) "green")* u( z- E- d8 c1 |
- ((= cn 4) "cyan")% s4 q9 N1 i3 W: y+ {8 _/ |% I8 T
- ((= cn 5) "blue")" ?4 x5 C+ X+ E( u4 F, G' g
- ((= cn 6) "magenta") p( t' H+ ]$ n5 e( U; |' A
- ((= cn 7) "white")
8 v4 r6 F& [" `: V. q( C% L5 H) g5 c - (T (itoa cn))* q$ a8 @6 P1 {' B* k* U) |
- )
* \3 x8 T. E) P4 m* C/ ?& Y7 F0 J - )6 F- c7 ]: }$ Y+ i8 D
. T$ e5 g6 x: X J( y' Q- {- ;;; Construct layer and ltype lists and initialize all. m; }2 @( a* g8 O% v' `7 h- h0 [# A
- ;;; program variables:/ u: r- p* {( i! x! d
- 0 S2 I+ t) \2 m+ N, ^9 o
- (makelaylists) ; layer list - laynmlst1 V: D8 s/ Z6 X6 m3 @9 Q' ]
- (makeltlists) ; linetype lists - ltnmlst, mdashlist6 j& j W: [, ]% a6 Q' Z/ }
- ;; Find the property values of the selection set.
1 x* c# N/ a* V1 ` - ;; (getprops ss) returns a list of properties from# `% u" |& f; }" F5 V2 N
- ;; a selection set - (color ltype layer thickness).
6 z, Z' C! ~+ C2 O - (setq proplist (getprops ss))& B1 L$ x' K% l5 S& s
- (setq ecolor (car proplist))+ F5 Y2 c ^" W# l( a* I; P& D
- (setq eltype (cadr proplist))
6 a: K# ] B- t; a - (setq elayer (caddr proplist)) C* e$ }* r3 f2 M9 k, Z+ c
- (setq ethickness (cadddr proplist))
$ P" w6 S3 ^+ B+ Q - ;; Find index of linetype, and layer lists
' y: T8 E/ W% I8 h" r7 [; @; E ` - (cond }0 _2 a* e( ? W, B! y9 T- T
- ((= eltype "Varies") (setq lt-idx nil))
* M/ q: F4 n& M# u* j - ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))
: U' o, _, J( e' }" u1 | - ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst)))9 r+ _4 w3 H2 A: ]
- (T (setq lt-idx (getindex eltype ltnmlst)))
9 M; X1 K2 F( F - )
) T: Q" r, R( ]: k f' T - (if (= elayer "Varies")6 p% D3 [2 w6 W# v7 i5 `& O
- (setq lay-idx nil)
' t& }8 N% f: {5 ~ - (setq lay-idx (getindex elayer laynmlst))8 ~7 S6 }; X1 \1 }: F
- )
7 _' m" x9 n2 S- |9 j - (if (= ethickness "Varies")2 s: m" v5 C. A3 B8 ^
- (setq ethickness nil)
6 q3 c. N4 p X% C- P. a2 c - ) @( F* T7 N1 ^2 u' R: G1 x
- ' R" e: {# M4 p. P" L$ V
- ) ; end (ddchprop_init)4 Q p+ I+ U3 B5 R) c1 Y! s/ I
: @! x8 G) J/ V2 \, k1 G3 b) w* ^2 e3 e- ;;; (ddchprop_select)
0 B. v1 B$ V! @6 \7 W - ;;; V% _1 k" r: T, T P1 A- i `2 ^) ?
- ;;; Aquires selection set for DDCHPROP, in one of three ways:! h A0 V U9 Y5 r1 h7 I$ b B
- ;;;
" N0 w6 w/ J9 ^% B7 s - ;;; 1 - Autoselected.( s$ Q# h) m, z/ @& }
- ;;; 2 - Prompted for.& T# H, ^0 \6 M2 s; Z8 z; F
- ;;; 3 - Passed as an argument in a call to (ddchprop <ss> )
! [- M+ \4 Y/ ^ - ;;;. G3 D& H/ S2 M
- ;;; The (ddchprop_select) function also sets the value of the3 I4 t7 D" ]. H. `0 k3 A- t5 {" q' d
- ;;; global symbol AI_SELTYPE to one of the above three values to& u3 `5 C! l3 h( W8 R+ b
- ;;; indicate the method thru which the entity was aquired.5 c& ^2 J8 p' N# z& N" ~
( f# P( J( x9 w2 m( {4 @
9 k. D! r K, G& `- (defun ddchprop_select ()7 U$ i) A8 e+ _" R2 P K5 Q
- (cond
: p! u# z1 t6 U# m - ( (and ss (eq (type ss) 'pickset)) ; selection set passed to
' m+ K% n. u! A3 d - (cond ; (ddchprop) as argument! v: q" R2 R8 Q9 H3 v" \% Q B! s
- ( (not (zerop (sslength ss))) ; If not empty, then1 K6 V* o1 y9 d* W3 B3 o
- (setq ai_seltype 3) ; then return pickset.
* }! M- J3 k" Q1 I - (ai_return ss))))& U) \0 P/ h; D
/ t1 o1 H1 W' U: Q3 k' h/ @- ( (ai_aselect)) ; Use current selection9 i1 I- o/ {; h& t3 v x
- ; set or prompt for objects
9 m- r: Y, d& K4 H) T. L( ] S
: W F7 D; Q6 u5 `. X- (t (princ "\nNothing selected.")
+ I+ k0 f( P* T4 ]) X/ G& A - (ai_return nil))
" t' H) C( \" z! d - )& s& Y3 v' _! G
- )
) A7 c! a6 d5 j# F) A# `, _
4 n: d f6 ]$ }: w8 H$ i4 B- ;;; Define command function.8 ~( ]% w' Z/ I6 z6 q( V+ N# m( W
4 J7 |' e5 n( x8 h- (defun C:CH ()" g; N5 c1 _# H2 q
- (ddchprop nil)
, _- S- y* |3 i0 V - (princ)
u7 s; r7 V, v8 F; Q9 M. v - )
* ?4 _9 f, E0 ]5 w
% b6 c8 N, [) A# R; s
0 ~- |4 _8 [( E! \8 S! }0 c- ;;; Main program function - callable as a subroutine.( F% d: k2 y- X$ [$ x
- ;;;
. }+ |7 Q9 K* E( Q q - ;;; (ddchprop <pickset> )
" a. U/ F' s( {/ {8 Y - ;;;/ m; r$ [; ^9 q" I, D' ~ G
- ;;; <pickset> is the selection set of objects to be changed.
# L9 A5 ]5 }, q+ C5 P - ;;;/ }; R7 E0 ?7 S- ^3 [
- ;;; If <pickset> is nil, then the current selection set is! k: p& d* {* t
- ;;; aquired, if one exists. Otherwise, the user is prompted5 o2 o8 D, n; l1 B; o' g- f0 _2 p
- ;;; to select the objects to be changed.9 t, f8 k9 c' Q" i9 x7 S- C3 O
- ;;;- j- y- {. K* ^6 O0 m' ?; j
- ;;; Before (ddchprop) can be called as a subroutine, it must. n' D4 ^& z; m" ]" H o4 b
- ;;; be loaded first. It is up to the calling application to
! P% M* Z; K5 T% F$ K - ;;; first determine this, and load it if necessary.
) e: m7 T! X$ k
& X) {; o; ]/ d9 k- (defun ddchprop (ss /
3 ?2 [: y y( `. W6 m - ' i' u2 G0 o ~1 X% J
- add-mdash ecolor ltedit_act s
6 q1 G7 E n: P/ Q0 i+ o! k - assoclist elayer ltidx selset: r7 J+ B- e6 M% n
- bit-70 elist ltlist set_col_tile4 L$ c0 r* ~+ _; o
- boxlength eltype ltlist1/ y8 Z$ h( [* K, k2 x. O
- bylayer-lt en ltlist_act sortlist
' D H% \& Z% d3 v# h: l- o+ b/ \ - bylayer_col ethickness ltname! E7 M% ` T! k$ j- V' h7 q5 b
- bylayer_lt fchk ltnmlst sslen
7 W% {3 z0 N, G% S V$ s - call_chp frozth ltvalue templist
5 r- }, L4 I6 @ - chk-col getcolor ltype temp_color
* `6 ^3 d) y+ p( I* Q - chk-lay getindex m test-ok, L0 ]: [6 H) I8 v! |
- chk-lt getlayer makelaylists testidx
# A" J2 N1 b& F3 t5 K8 w - chk-th getltype makeltlists testlay6 L& X0 |4 t0 S5 f1 m
- cmd getprops match-col th-value
1 z6 j3 n+ J& c c - cmdecho getthickness match-in thickness0 }; g5 K) u4 q6 K6 D+ _3 ~, o
- cn globals match-lay tile9 k9 Y1 L9 z: H |/ @. g5 v
- cnum go match-lt tilemode9 b0 x; Z& l7 k* Z% i' v, e
- col-idx index match-th tile_rect
* s5 O' R: x+ m# q3 @- \( [ - colname item match_col vi2 F2 F- R: l! G$ C
- colnum item1 mdashlist vpf1 o' o; q9 [+ m- \
- color item2 n vpldata: {/ u- Q0 s/ p3 p2 J
- colorname itemlist name vpn& j# `2 [! F f+ n+ S- F9 k
- col_def lay-idx ncolor x+ V$ K$ [6 X& t* X7 j
- col_tile layedit_act nlayer x15 z+ q) a$ K" E7 ?! d: {9 l" e
- ctr layer nltype x26 ~0 O2 N/ c. e" k6 d
- cvpname layinfo nthickness xdlist
& }- R! z1 g6 r! B' E: c - dash laylist off y2 }. }. a8 ]' A% ~8 }
- dashdata laylist_act old-idx y1
" x; Z* c0 t L1 N" z; K - dashlist layname olderr y29 m! Z* S0 Y" L3 p4 L
- dashsize laynmlst on undo_init3 v5 T5 |9 M5 t6 g2 C& c! l
- dcl_id layvalue onoff8 L$ V3 Z Z! K# u+ }7 I' N9 N
- linetype patlist
, m& g$ h/ W1 l2 m5 D - ddchprop-err list1 pattern; [! I& O) E g- M1 E( Q& |
- longlist proplist
& L; Q2 K" K3 W# Y/ o+ k4 j - lt-idx reset-lay/ h/ q" g$ ~3 s2 e; I! M: W, p
- drawpattern ltabstr reset-lt( y0 S# Y, }" S5 m" l( o: n
- )9 O: K; Q* l4 ]( c
# ~) i4 a: F# [% K/ L# T& ]- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho; `4 v( V7 K+ s' e
- old_error *error* ; save current error function
9 Y! @8 i6 s7 ~( l1 S2 F - *error* ai_error ; new error function2 ^5 K9 e7 e9 y/ \
- )
8 Y. x3 H3 M4 z' X. c8 _) Q& h6 A - , W) M, s8 a" {* q
- (setvar "cmdecho" 0)
7 E" _/ y4 ~! j; |2 X1 [- @) D
. H9 B. e9 @- z8 c- (cond
# x' M" L+ E; i2 G' z) v3 ~ - ( (not (ai_notrans))) ; Not transparent?9 s) i9 k) N1 i( t& Q
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?, D3 F( y L$ c" @
- ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?# C5 F" \* R( v. c
- ( (not (setq ss (ddchprop_select)))) ; objects to modify?% A g1 k: C, A. n- {1 U0 f
; c* ?& }1 Y Y8 }& y- (t (ai_undo_push)
; p: K6 C+ W) [8 `2 R! Y) S - (ddchprop_init) ; Everything's cool,4 q d* p$ w! i* B; ?5 S
- (call_chp) ; so proceed!
0 Z: y& p2 [0 y/ c w( L3 u5 ` - (ai_undo_pop)
3 O) Q7 T+ h! M3 ? - ); H" {/ r2 S8 X o
- )
8 ]9 y3 g1 ?2 h; p; A7 S - # }, O7 G% n% S7 M- w/ V
- (setq *error* old_error) ; R% ?5 a7 V: ^; v+ l% }% s$ U
- (setvar "cmdecho" old_cmd)
8 q) U4 h; k+ m/ y R - (princ)
4 F+ p& \, V6 s8 e - )7 b5 b5 G1 g3 d* c- e6 S' L" P
- - B9 Y q. ?8 A+ x( B
- ;;;----------------------------------------------------------------------------
, ]1 I% m" i' w; d2 L7 ^
" G; P0 I5 P6 m- (princ " DDCHPROP loaded.")/ w/ V+ t# T, G& j) k! g
- (princ)
& k1 G8 y; A7 d
- q: A" G" o9 U" B, Z- ;;;----------------------------------------------------------------------------
; a' H* U5 _: T - 4 `- q4 C- \) i& U N5 y
- ;--------------------------------ddmodify.lsp----------------------------------0 L0 x& P& Q% C+ I2 i0 V- e/ x
- ; Next available MSG number is 1111 U9 I, n7 T3 \, H
- ; MODULE_ID DDMODIFY_LSP_- U/ l6 ]: |4 m1 O
- ;;;----------------------------------------------------------------------------
- t+ F9 K! u1 r7 h- J - ;;; DDMODIFY.LSP9 k7 l+ H, l" [. R: k! m1 Z
- ;;;
4 W# }3 B5 j0 b0 |+ q/ ?" F: M+ J - ;;; Copyright 1997 by Autodesk, Inc.! {" u/ l' \% _
- ;;;
3 @4 v9 w2 |5 E \ - ;;; Permission to use, copy, modify, and distribute this software
! N+ J2 a X* E - ;;; for any purpose and without fee is hereby granted, provided5 n9 M, ]* c, t; B0 u
- ;;; that the above copyright notice appears in all copies and
% K0 v& ^; R% _4 s& t - ;;; that both that copyright notice and the limited warranty and! ^, m, l+ p3 |; Y' a/ a
- ;;; restricted rights notice below appear in all supporting. {2 c7 U9 h3 F
- ;;; documentation.9 o% n9 ?3 K& G. Y. b% c" M
- ;;;) L$ H# B: P8 [( X s5 p$ V
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS." _# P* p# |2 y% G
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF$ F" {% A; p0 a! t1 k
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.; W& X, N+ f: |
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE( f" o& O; j. [. e! o
- ;;; UNINTERRUPTED OR ERROR FREE.& e8 q Q0 }+ M I: ?8 p+ w# l1 T" g
- ;;;
8 |# P D" E {9 Z - ;;; Use, duplication, or disclosure by the U.S. Government is subject to/ L @ g$ z/ [2 M8 i
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer3 }$ f& p) n3 ]3 f
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)) H0 | t1 c+ v6 Q j( L( P5 ^
- ;;; (Rights in Technical Data and Computer Software), as applicable.
( s1 n# M @6 f F$ {- N - ;;;) V* D( l0 x1 F$ Q7 E9 X
- ;;;.
, J+ v7 t( N' `* v5 ]& \ - ;;;# O( t* y4 S" \) k+ D
- ;;;----------------------------------------------------------------------------* [, {- Q. c) U: {6 X" F: T
- ;;; DESCRIPTION6 r* F- l! P) K E6 b5 X9 ~
- ;;;" y7 Q! v( v1 L9 B; V9 O
- ;;; This function allows the user to get a listing comparable to the LIST2 D3 X% f( i+ [/ S) |
- ;;; command for most objects. In addition, most object fields in the! s- `$ ^7 h. t2 i5 }
- ;;; dialogue box are editable. Points can be specified dynamically by
* `7 @% \* S/ P0 y! ] - ;;; temporarily dismissing the dialogue box. Each object has a unique: I+ {# h6 W3 f* k5 J( G
- ;;; dialogue.
$ h2 W" h% O. Q' g3 s - ;;;
5 B1 y' p% \3 G b& P - ;;; Naming conventions8 @* q, B' m9 S* ~ P
- ;;; Long function and widget names may use an underscore "_"* f/ k: o+ Z* b- A: ?$ N# N
- ;;; in their names to make them easier to read, long variable
' O8 Y' U0 a* K* T - ;;; names use a dash "-".
% M9 ^) F& q7 }" ^1 w8 S - ;;;----------------------------------------------------------------------------3 z8 v# A/ o2 B
- ;;;----------------------------------------------------------------------------
# _4 ` o" a y$ [( H" f8 `+ X8 @ - ;;; Prefixes in command and keyword strings:
+ B0 }9 Y. ]. ^& U6 E9 G& Y - ;;; "." specifies the built-in AutoCAD command in case it has been9 j2 J! V/ v* f% G* e
- ;;; redefined.3 W1 X! A7 C# d
- ;;; "_" denotes an AutoCAD command or keyword in the native language
5 p3 _3 ^ |0 P( O' u - ;;; version, English.
8 S$ S4 ~" w5 Z1 U - ;;;----------------------------------------------------------------------------
( k$ h" t N& q% D5 ]$ q. y - ;;;2 W- d9 s8 O* G0 K# k7 \
- ;;; Avoid (gc)s on load to improve load time.
3 v0 {. R: I! b1 G7 p- l+ n - ;;;' T6 p' a( t* \1 D7 N$ \" A
- (defun do_alloc (/ old_allod new_alloc)/ o& G2 q W: G. c) j1 u/ s k
- (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
7 q* J8 T v' ?7 r9 I6 O# v - (expand (1+ (/ 17000 new_alloc))) P$ \, e8 ^% h, t6 N- e
- (alloc old_alloc)
9 N# a+ S! }! @1 i, \ - )
7 m3 j* N( c1 V# j$ Z( y - (do_alloc)* A2 l/ u9 O5 H" ?0 d
- (setq do_alloc nil)
, z, I5 K6 x8 w( z' ?* j+ [
9 x4 U* j/ c: W) g# J3 y/ ?+ N' g- ;;;
( q3 E7 t+ D- n: |8 f - ;;;% L5 H" I, Y# L7 j
- ;;; ===========================================================================) e1 Y2 H( o0 s
- ;;; ===================== load-time error checking ============================
9 V" y3 u- U' v' _7 k& v - 2 v6 w, d) H1 D
- (defun ai_abort (app msg)
- Z7 m7 M6 A4 }' i! E - (defun *error* (s)
7 f; r' P; b; r. j - (if old_error (setq *error* old_error))
9 o" g: A& t' T" {8 z @ - (princ)
- G* O2 ^) m; V; v9 x6 H2 ^ l# R+ X - )+ c( r( l) |& m
- (if msg( B# T1 p( \, w8 j
- (alert (strcat " Application error: "
4 Z& r# P3 h ?. @5 q( M% L - app
1 v& E# Z7 ^* F/ H( p - " \n\n "; c$ s/ c7 q& {& p# \* G
- msg* k) ^; v' x3 p# ~. a: x
- " \n"' B. H; h/ N* v' k8 Q
- ) v- I+ Z/ t$ U+ `, ~. ?2 ?
- )
, @9 R8 u4 D0 X) \/ H( x3 ?5 w - )5 I; S, m' W$ V7 A+ w/ M j! l2 b
- (exit)
2 T" V. d6 A) x - ): B0 t% `. n0 ?$ h9 z
- 2 T$ R2 Z0 E, P# C: G0 \- V( f
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,3 K- s5 M+ E; s1 R/ |0 s1 J
- ;;; and then try to load it. If it can't be found or can't be$ @4 T! Z% ^4 [3 F* C7 Q/ f" J% Q
- ;;; loaded, then abort the loading of this file immediately.( ^# P3 P2 J2 I
- ( P9 L) z' l3 n _! A6 b3 K" M
- (cond3 Z3 G; E* g' | `4 c: U
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.1 j; @0 S4 y" H z3 g6 i) w5 S
8 K h: L) O6 O- ( (not (findfile "ai_utils.lsp")) ; find it5 S: e* N+ U# }$ l9 ?
- (ai_abort "DDMODIFY". _+ H7 g% l, F+ J2 u
- (strcat "Can't locate file AI_UTILS.LSP."$ B, Y4 T0 M+ R- g$ e% Y C& L8 a
- "\n Check support directory.")))- ]8 B) W' Q- c& D0 B6 O
$ L; ?% K5 Y5 d6 C* F" ]# C4 t. t- ( (eq "failed" (load "ai_utils" "failed")) ; load it
) }7 a: |# q! v2 ?/ g - (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP"))
& c. P9 \2 i& b5 { - )( R/ @3 J) p% P- a1 H
) L R# @: H( {2 a: }- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can" m% C3 ?, ^% h" Z- C: C
- ;;; be assumed that all functions defined therein are available.0 G C* E0 d: J4 q
+ \8 m! z; [8 s4 ^6 L, S/ S7 r- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort \/ ?4 E7 B, Y9 X6 i! [" p
- ;;; if the file can't be found or xloaded. Note that AI_ACADAPP
+ Y) R1 Y7 ?+ P# I - ;;; does not abort the running application itself (so that it can. @) [, }! ]5 {- o- Y# r0 l
- ;;; also be called from within the command without also stopping! K+ N* ?0 o* x/ ^
- ;;; an AutoCAD command currently in progress).8 C5 ~9 k' |& K% B6 T5 g
- - F6 h2 E- b5 b `
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
+ f' p5 B. n# c( y - (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses
& p' T; R$ z4 S6 u+ |+ ?; m, d! g - ) ; ai_abort's alert box dialog.
1 G7 a! \. P6 }7 t/ a L - 4 x6 B5 y' F9 [" s: J/ h1 Z4 D
- ;;; ==================== end load-time operations ===========================. {) E+ N/ `& ?& x$ D+ g3 D; p
% B' a& Y* t" C0 P! t2 j" O- ;;; global variables
* n4 y }' w1 ]$ I' \2 {/ {
8 U0 O; `( l8 i4 n- (setq hatch-elist nil)+ i% J8 @ J3 U/ i
- ; W2 |& h+ Z& v: z. ?- w& P
- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are
' D- H6 C, ~* Y$ v' N2 s& [ - ;;; assumed to be available.$ }3 S6 k+ @ Y1 s" j" |& L
- 4 V' I2 _" u0 o0 G( Q- n# C1 A
- ;;; Define and encapsulate all subroutines that are declared
7 L/ T. c9 c) Q1 f X. e - ;;; locals of the (ddmodify) function.
?$ S5 ~4 {5 E/ B3 A" l7 M) i
3 z1 @9 m, l/ C- (defun ddmodify_init ()+ V9 F: }9 Y% Z3 f- X- ^3 ~1 G" E) @
- ;;% B3 Y% c* W) T0 Q$ I5 [
- ;; These three functions modify the enitity list for common properties. Since |( Y: t, I' o/ D& Q' t
- ;; color, ltype, and thickness are absent from the object list when they are
+ S B8 ]1 ]) @. ]% ~ - ;; set to their defaults (i.e. color = bylayer), a simple substitution using
0 S8 s; ^! i& f/ x - ;; SUBST is not possible." m/ Y/ y* \5 |' v
- ;;% c/ R4 `7 r1 q. H( T
- (defun modify_properties ()! b' t/ O8 t p, n* N
- (emod ecolor 62)7 ]/ f3 c6 X/ O3 v
- (emod eltype 6)& v% {9 O% Q) L, X r
- (emod ethickness 39)
' i% i+ w5 S; z3 ~( M - (emod eltscale 48)( B3 p. d; c3 \8 o! a
- (tempmod elayer 8 nil)
% b2 \' x1 f% J+ W - )* p- J! {; d5 ~5 o
- ;;) s# K T1 }, |# W2 Q
- ;; This function is used for modifying common properties of the ACIS4 p9 R+ E5 U" A; T9 h
- ;; based geometry objects. Thickness is not valid for these objects7 c1 ?* |- X1 |1 |. M
- ;; so it is left out.
}2 b! y: V. k2 x - ;;& D& S! |# y7 S
- (defun modify_prop_geom (): A s0 m5 [& K- d
- (emod ecolor 62)
. e7 u9 W" G$ I$ w - (emod eltype 6)
. D+ q5 |2 G0 e! K - (emod eltscale 48)' z6 |+ ]$ r# r& m `5 u: X; m: h/ |* H
- (tempmod elayer 8 nil)
9 {" _+ ?* G. n; F$ B - )
5 E$ B; i& h U7 J
- k4 I5 [' Z, `7 {: s7 `0 {0 a- (defun emod (value bit)
# y5 ^3 D7 p; R - (if (= bit 62)
: N, [' ]# `3 `* ^! i) f' B - (progn
8 ?( [. }3 `# M! } - (if (or (= value "BYLAYER")% N3 i) V H' R# W) d
- (= value "BYLAYER")) (setq value 256))' _4 _) S$ Y- W a$ H
- (if (or (= value "BYBLOCK")
5 c7 e) y& E8 R: a* ] - (= value "BYBLOCK")) (setq value 0))+ g: ]. Y( }1 g/ j
- ), U- q0 j, y2 K& @: B
- )' Y5 g" |; M& R3 Y4 r [2 d
- (if (setq oldlist (cdr (assoc bit elist)))- X& a' }7 I- z6 V+ V" }
- (tempmod value bit nil)
: p7 ]. a: H, S" z' m - (setq elist (append elist (list (cons bit value))))
# z9 H. ?0 o% V5 b2 b - )
4 m: p% ~" ^; u# o# _1 X( D# R5 N - )
" Y' n" E1 V) D - ;;; l/ L5 w B5 k; x, c4 ^
- ;; Resets object list to original values. Called when the dialogue or
+ I3 `0 O2 ^/ G! e - ;; function is cancelled.
3 a+ g# C: F7 v6 R9 h5 ]% c g8 j, z - ;;
8 V9 B7 T. E9 @6 \% v( m - (defun reset ()9 } Z. o/ S% Q9 d) R
- (setq elist old-elist
4 d7 ~, l+ P9 Z) ~6 N9 a - ecolor (cdr (assoc 62 old-elist))6 h2 E- w9 ]3 S0 x l: u
- ethickness (cdr (assoc 39 old-elist))$ P7 p5 S. T) u( g* S9 m9 N2 S
- eltype (cdr (assoc 6 old-elist))( Q, z; {3 @: d; _
- elayer (cdr (assoc 8 old-elist))
; J, z" w W+ m; R, K5 t* N - eltscale (cdr (assoc 48 old-elist))
+ c4 Y! K+ j8 D5 } - )) w, ?; _! J/ U/ y8 K# K4 J
- (if (not ecolor) (setq ecolor "BYLAYER"))! x" ^1 `) @7 ]* k# a& k5 H! z; O4 v6 Q
- (if (not eltype) (setq eltype "BYLAYER"))5 p# ]* t' s4 E. x
- (if (not ethickness) (setq ethickness 0))9 k% s' m1 R, a# S
- (if (not eltscale) (setq eltscale 1))
0 e+ ]/ b" x6 v: P9 |: p - (modify_properties)5 I1 l: D4 z5 L8 k$ N5 y: Q7 m
- (setq reset_flag t)
# j! p9 s& ?' C) t3 m2 a0 i+ I0 J - (entmod elist)
; k2 ]. A& A0 y! V! Y7 J - )/ ~. _2 F: ~2 H8 k- d
- ;;' a3 |' `+ p+ S- F
- ;; Modify object when dialogue is temporarily dismissed to reflect latest S$ ]. ^8 L: i9 U( S
- ;; settings of dialogue. It converts the point from current UCS coordinates to
( X% e( |+ b0 J8 G' u - ;; the proper object coordinates (world or object)." `/ l0 A' p- f6 M0 {
- ;;; V+ |# h) y2 \9 |! t
- ;; Arguments: value - in current UCS coordinates
1 ^8 C4 A6 j v9 o9 ? - ;; bit - object code (i.e. 10 for start point)
, m& ?+ K; j3 }' I3 _ - ;; ptype - point type 0=world 1=planar
0 p# `, L3 j& P9 P9 u* B - ;;, Q/ u' }% V/ a
- (defun tempmod (value bit ptype / newpoint)
8 ^8 d* _5 [' r. [: g& v0 [ - (cond
1 g0 }% B- O# \& z E" D2 D - ((= ptype 1) (setq value (trans value 1 ename)))
0 X& @' v; {8 g E4 i. X) S; a/ ` - ((= ptype 0) (setq value (trans value 1 0)))
* M' I- H& p: m+ T" k" e6 W - )3 T, _/ K) _( e- e; |
- (setq elist (subst (cons bit value)
8 l0 R0 y% q! [; s+ C - (assoc bit elist)
8 n W" j, K5 ~/ E$ K - elist
) w+ z. z( s6 b: l' q - )
' T! T7 u# W \/ ?4 F. X" S4 W - )
. [: q7 z% ?& U2 ?- Q* G - )
: p' ~* z5 e) E/ d- X6 ` - ;;+ z. T# Q! a9 v$ Z/ D5 Z/ {
- ;; The following functions are called after a dialogue has been temporarily6 w6 c! n2 ~2 r' m T: s( r
- ;; dismissed and the user is selecting a point. If a point is selected the
$ Y) c! I- I \2 G - ;; object list is modified and new X,Y,Z values set. If no point is selected
% g3 D S7 {5 u( ]+ x% Y3 k - ;; (null response), then the point is reset back to its previous values.
( C$ E6 Z$ Y- d& B - ;;
7 K4 x- ?! U, D' M - (defun ver_pt1 (ptype)+ C& g, W: }2 f$ v! }3 |
- (if pt1- \# B* L; z1 `/ I
- (progn
" v( [& @% b9 p, D6 l - (tempmod pt1 10 ptype)2 ]5 z; e7 u, W T7 B" X% ^4 H6 D
- (entmod elist)
/ K% I/ v! g+ u - )
0 b+ S3 y! C9 u5 j) ` - (setq pt1 (list x1 y1 z1))
" u9 t2 u& P( M+ k - )
) ?+ B t! ^1 M) s V D - )
+ `3 o* Q0 Y* _9 l" j
9 m3 |: ]( j% j3 Z! [+ Z7 ]/ q5 l- ; (move_pt1 <ptype> )
# }0 r* d8 v( E3 H7 H+ ], |! n3 S - ;- T0 o$ S5 }9 i
- ; Called in liew of (ver_pt1) to translate block insertions which
@" k! T' V8 v! X* J1 G2 g - ; might have variable attributes attached to them. If the distance
8 g, e0 f/ _- M/ b* ^- o5 e - ; the block is to be moved is < 1e-6, the move is deferred.# y, A: W& c' J1 @; o+ T8 O, [. r
- 1 T P/ C+ z/ {5 ?# ]+ C
- (defun move_pt1 (ptype / basept hi). d: }2 H {5 G8 a
- (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))+ I$ f0 r% b9 W3 \9 ~
- (cond2 P, C) U/ a, m5 x& f- O. f& X4 E9 @
- ( (not pt1)
, S8 [# c1 m- J9 q( l - (setq pt1 (list x1 y1 z1)))& f2 R$ _/ \# }& P* Q$ x
- + ? x; X2 c/ V' |5 p1 R
- ( (> 1e-6 (distance pt1 basept)))0 R R0 R9 F8 }& J6 H3 }
- 5 t1 F2 H' P, E7 `2 x; T
- (t (tempmod pt1 10 ptype)" N! M" [) @( f8 X% t/ v
- (setq hi (getvar "highlight"))! R& R' B" D- l3 I8 r4 F: X$ u
- (setvar "highlight" 0)5 I$ i4 a% Q7 i& T1 I7 Y3 _
- (command "._move" ename "" basept pt1)
6 |, d. X6 Z; y. F6 p1 j( @: E/ \ - (setvar "highlight" hi))
2 c' g6 f/ [' p - ) h( ?6 K7 _. k+ i' i6 {6 \. P) ~4 t
- )
: M- M) K/ V! c0 J1 a9 c - $ K& o0 M' w) y( _$ a* X* D3 ~7 X
- (defun ver_pt2 (ptype)1 V. v7 r! {3 D, X7 ~3 G' q$ U; V
- (if pt2
/ X- o( j4 b3 F/ U8 s; L" Y - (progn
5 Y6 R5 u5 P7 E# y - (tempmod pt2 11 ptype)
( s2 G0 [5 d% ] - (entmod elist)5 G9 ?+ o ?% C5 a' N% M. S
- )
6 |0 L: V1 D* L+ r - (setq pt2 (list x2 y2 z2))
! i$ u! ~& ?* u6 H# Q: e/ S - )
0 }) G. F( z* z5 f$ C1 G) n - )
! k! X j& A0 Q+ R3 b& {7 v - 9 `& |5 {/ }) R( y. s6 ~/ u) Y
- (defun ver_pt3 (ptype)
7 u E; x$ v- M; g( G) w - (if pt3; ]8 N3 h4 |& D, V4 u' V. j* }. i
- (progn
- a0 V, a$ b$ C" B/ ^- L4 Q - (tempmod pt3 12 ptype)8 G* S0 y& J0 v2 A9 d& q
- (entmod elist)
# f5 l3 i- C% g [, p- C; s* @+ t - ) g! |! S k- f
- (setq pt3 (list x3 y3 z3))
2 T$ u! p" B- O9 f5 e/ t% n - )
2 O' Q( f C. K0 W+ j. w3 t - )
+ h4 e# ]% J- k4 ~$ x& I
7 _: B1 M- Z, Y9 q+ K+ q- (defun ver_pt4 (ptype)) G/ w$ J* [" F. N, y( _* D
- (if pt4
! g6 {, Z$ `$ Q+ C; a5 M2 O - (progn
6 @: b( t5 w" a& l - (tempmod pt4 13 ptype)
# j, C/ e4 U0 G9 k - (entmod elist)/ D) \" A! r2 W# C
- ), r. X7 R D# x2 O3 P( s
- (setq pt4 (list x4 y4 z4))
4 |( a( [8 b8 C, z - )3 B( m1 I; }7 T9 `
- )
) {- m2 _, ?- e, z( }+ \ - ;; Xline/Ray" J, {% A! a' D
- (defun ver_xline_pt1()
* s! G( W* l: B - (if xline_pt1
( ~! Y" d! O# s- H - (progn
$ `0 B0 c0 w& x1 |& z2 [ - ;; convert to WCS.) ] u8 M0 U5 j) q0 Q
- (setq value (trans xline_pt1 1 0))
5 V ^$ u$ s- R! V! V# K - (setq elist (subst (cons 10 value)
7 d9 J/ P" ]6 e. D3 R/ N - (assoc 10 elist)
/ \5 j& c" K" i. U$ y - elist2 J* _7 J; U3 W ^9 }8 E& k, u
- )
5 w' p0 K- j, m' t - )
4 x7 f6 ]. f3 [/ l0 r9 K. k - )* V2 F( I; s2 w# w$ m( g
- (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))4 j j1 g9 G/ y9 L
- )
6 q. x+ q U4 @" w0 V/ ~ - )
' u8 R# d* }/ T! Y3 ` - " F( o5 P3 q0 b g, }
- (defun ver_xline_pt2()% U% q* _5 {. c# h
- (if xline_pt26 V# A+ t& O" m$ I
- (progn
4 e/ Q' m4 h4 m1 M - ;;3 N$ D+ ]+ O8 P$ D+ i# w: y, H
- ;; Calculate new Direction Vector WCS; F; \' [& h4 v' e* Y9 o0 K0 q
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))
* y7 |; d1 b& l1 x2 I - (setq temp_dir (trans xline_pt2 1 0))
: V2 D# N2 y# h( T8 Z- Q - (setq temp_dir_x (car temp_dir))( [: O& H9 _: y; y$ w) X
- (setq temp_dir_y (cadr temp_dir))
7 \, ~: z( |0 ?% k- e - (setq temp_dir_z (caddr temp_dir))6 l4 W) N X( p* F3 [' K
/ L; ]% P! }+ k- (setq temp_xline_pt1 (trans xline_pt1 1 0))
- X; [+ v& ]% ~4 I9 @ - (setq temp_xline_x1 (car temp_xline_pt1))8 m* Q; }! S3 x8 J
- (setq temp_xline_y1 (cadr temp_xline_pt1))
9 y, s( }$ t" Y# ^! X9 R r - (setq temp_xline_z1 (caddr temp_xline_pt1))
8 [) G7 m3 r, z8 g$ }# J* S/ ~
4 S1 @5 S' z+ ` ?; a! z- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
( m4 S9 T- H# n - (expt (- temp_dir_y temp_xline_y1) 2)
C+ d" I4 b2 {$ h. [ - (expt (- temp_dir_z temp_xline_z1) 2)
; f, h P& R9 M( {$ p0 j8 d. I. T/ K - ))), S, @+ R& h) N( {' @
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))+ W( M' _) G% Y0 ^2 ]
- (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))$ \7 {$ t v: s S1 `
- (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))) l3 X" e1 u) j' g w
- (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))
+ G; u; ^1 U1 I \: ~" `+ ] - (assoc 11 elist)* ?- e$ \8 v: o7 ~& C, O8 U
- elist
/ m9 y1 C- Y. C5 Z8 f# @ - ); t. g" {3 y" l% @7 A
- )
) X( O- K' U2 s+ s9 D7 @2 @ - (entmod elist); U8 |$ r, G9 L* E
- (setq xline_x2 (car xline_pt2))7 P4 V8 ~: e: d7 ?' \1 u
- (setq xline_y2 (cadr xline_pt2))
+ w) e: h" X# o! u }9 w8 G - (setq xline_z2 (caddr xline_pt2))# a8 s/ p& }& P- U* Y( p
- 0 R- E9 A# O8 c2 N% Y0 P
/ h6 U7 h3 b2 v U- ). |4 t& V3 a) d. B0 U1 x, _" v" G
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))% ^" l, }7 K; y/ e7 U* t5 T
- )
& C! S5 g8 A; }, z& D% ~ - )
& i& K% A8 M; r& i' | - ) m# H' H% n1 [, J3 P' F& ]
- ;;
( |: q+ S4 B! E) O' y9 U9 \ - ;; Common properties for all objects
: g0 o$ \! `% V& A6 _8 U - ;;" }' b2 H E# T {) P
- (defun set_tile_props ()
- j' b; g; }4 w! h - (set_tile "error" "")! l" ~2 A: ?8 O* X
- (setcolor)6 Q. l/ D7 ^7 j5 M
- (cond" B+ @4 s$ d) k3 {, A8 K
- ((= eltype "BYLAYER")
4 J) A* }, N3 p4 }# X/ p- s - (set_tile "t_ltype" (bylayer_lt))), H1 m% j5 o1 f+ B3 w3 h4 D
- ((= eltype "BYBLOCK")" S( a* H. X1 q0 o6 q
- (set_tile "t_ltype" "BYBLOCK")), K- M% P+ R6 p" \* i4 v
- (T (set_tile "t_ltype" eltype))4 M- Z) Y% G* Z- @
- ); p/ J: W* @. D7 |0 s1 V' e1 h3 N
- (set_tile "t_layer" elayer)) j& b& O7 G6 j5 N; J, H
- (set_tile "eb_thickness" (ai_rtos ethickness))
( v( n% i9 \/ i$ W+ F' Z) h - (set_tile "eb_ltscale" (ai_rtos eltscale))5 }, H2 P# Y& P* ^
- (setq which_tiles (ai_common_state etype))
/ v" B% r' q! f& C: K4 l - ;; Disable tiles if need be..., \2 V* `+ I2 z" g- h
- 9 Y: c t! O" f6 }' r
- ;; Layer Button and Text Field
0 |. ^, H! W, f! | - (if (/= 1 (logand 1 which_tiles))9 b3 H$ ?% q% B* h9 D% v, U
- (progn
5 h/ w: C+ ?; `3 b; `% p/ [ - (mode_tile "t_layer" 1)- I$ S7 a3 a/ F# O5 ^: t0 S/ W& E
- (mode_tile "b_name" 1)
5 h. k7 _- M; S c& v - )
: N, J7 v" G+ g$ x6 Q8 l/ j2 K - )( ], J% Q+ ?% ~* G+ T3 V `
- ;; Color Button and Text Field
: h9 P9 Z2 E2 [$ B. ]8 r - (if (/= 2 (logand 2 which_tiles)); B' D5 C6 `6 G4 E6 h
- (progn5 S9 ~3 u9 |! [5 {3 z# u" j6 c, K- O) w
- (mode_tile "t_color" 1)8 ~7 L5 X# T" P9 Y4 g0 K; V
- (mode_tile "b_color" 1)
+ `" f9 t# _: n& ?/ d# T S8 n - (mode_tile "show_image" 1)
$ E% o/ J# N8 \2 ]/ g @0 s - )' ?6 T8 `8 n4 H) z; C
- )4 O1 ~$ f7 R m
- ;; Linetype Button and Text Field
; ^# J3 q" L+ t3 ^* R - (if (/= 4 (logand 4 which_tiles))5 a; i$ C) E1 K' X2 a
- (progn
& D$ @8 A& i E$ U4 C, N - (mode_tile "t_ltype" 1); y( |2 s A) _( J
- (mode_tile "b_line" 1)
" |9 j w. ~+ B, E! z - )
' Q& h2 q; Z& ~ H/ ?8 w, V6 { - )
+ T' n7 f8 W7 S7 P' @2 S - ;; Linetype Scale Edit Field9 J4 R7 y. Y2 k
- (if (/= 8 (logand 8 which_tiles))
# `% C9 h! T2 s! \& D" T - (progn9 J( ~$ j& ]3 X; R+ i# U- T8 _
- (mode_tile "eb_ltscale" 1)( v s* M5 o I- M2 i) O
- )
3 u# n& K: K8 E( S; ^, { - )# e9 k; h/ F2 a% I1 u
- ;; Thickness Edit Field.
) B1 F* `( u+ }; Z h' S/ ` - (if (/= 16 (logand 16 which_tiles))
+ _4 Y$ r- p, y; D - (progn
! ~) G1 ]1 s' g - (mode_tile "eb_thickness" 1)
4 _" L+ ~% C$ ]/ P7 z - )
; `) _ s# ?' V. p9 Z - )- x5 ~% I5 M( E$ a/ C
- )! g0 m- E( ` Q5 \
- ;;9 h. [ H7 t9 u3 o m7 D
- ;; XYZ Point values for all enitites; H; ~/ F" L* }. }& j2 l" c1 @- e
- ;;
9 N1 \3 |5 \+ v - (defun set_tile_pt1 (ptype)
( A: o, c: F+ g( _2 ^- P) N j - (if (= ptype 0)
4 T( Q" E0 ]; T: U9 M. `0 | - (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))4 p- u: [" M: N& y! r
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
8 U" E9 }* [" I6 x$ |, R0 {" D- Q- b - )
" b5 h2 [( M# Z0 }# Q3 B; j - (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1))))7 @( j* B$ ~1 |. O8 g; Q2 E( K# ~# f
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1))))
, {- C& z8 e* ]6 ?4 ]. C0 S - (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))8 C$ p9 [4 v+ P! z+ A
- )
. z6 ]! h$ E3 {5 B, F# s- b - (defun set_tile_pt2 (ptype)! e; \3 G7 F, z2 x
- (if (= ptype 0)
# w: q( V2 t& j - (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))' ^! X7 j ?8 }7 ?# `8 `
- (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
; g3 S' h0 E% u, P4 h) j - )8 R5 W$ n$ y0 H5 @" I# Q8 h& A
- (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))
( V/ {! c$ M+ x6 s1 V, x) J1 u. @ - (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))
( @8 [' s# m$ s& H - (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))
% ~% H3 I' D( {- L x/ J: L( [: v. j1 A - )8 ?6 _% w2 y% A+ a! T0 y5 U
- (defun set_tile_pt3 (ptype)
( p5 E% g5 ? M6 o$ C4 i2 X, N - (if (= ptype 0)& S; [ y% K4 Y; X; \
- (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))2 O( u8 d. n6 f* |' ], }& e0 M8 X* g) R
- (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))( @) B, Q/ U# P6 C' Q7 w* {
- )4 W% W! \- J7 T. v2 J
- (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))
d) m: W' M1 R - (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3)))): }" s1 s& }9 _8 W( g! H
- (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))
9 n& v* l8 b. o- _: H0 q: o - )
( F+ \& _5 Z4 R- @' e9 X - (defun set_tile_pt4 (ptype)
1 x5 U2 D2 V5 G1 S4 F - (if (= ptype 0)7 X, \1 |: l( ~8 D" T$ Y
- (setq pt4 (trans (cdr (assoc 13 elist)) 0 1))
8 Y# a r' M# `0 }3 [& N - (setq pt4 (trans (cdr (assoc 13 elist)) ename 1))
3 v3 p" q$ ^5 `/ K+ o* d3 Y - )2 G8 g: N7 Y& @" ]
- (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))! c1 e- O" d& d- V; D
- (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))
& o8 e# g7 E9 s, H+ A+ a" B& q+ T8 J - (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))
1 Y2 E- b+ O( _. ^ - )* w# f% m+ l5 c1 J4 P
- ;;
# b; B o" e" w* r& ], t7 Q - ;; Xline/Ray) S0 p% _2 z$ U8 g. G u+ u* v* n
- ;;
( d. i# f6 |: L0 w, ~4 o+ Y - (defun set_tile_xline_pt1 ()
' ~8 l( \' M' A" G8 \ A- Y - * N: R4 ^, r2 Y) v- n+ |/ J
- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))& v* X3 j9 q1 O7 c( c. r: Y6 R
9 [' x/ e% H& c8 ]* E- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))9 @/ t! @1 h# H5 f. U& r9 b: {6 I
- (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))& R/ j1 F: C! a1 N) f
- (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))* Q& f# `) K7 \0 O' P, k) G$ L P
- ): l' m# y. O" Z
- (defun set_tile_dirv ()
6 h5 C9 N8 I" ~3 G; T8 N8 l9 y - ;; Convert 11 group to local UCS (displacement)
0 E- s" W( p( C9 n3 A9 `6 x - (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1))3 E: H. q2 N2 g+ _! u3 U* e
- 6 _3 S8 T# L: b: }" i7 k Z
- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))8 m- k' B, U g9 w3 M8 I: y
- (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))* v+ J1 t* B/ Y) A, ~1 Z5 F) J
- (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))
! w9 f3 P' H- O( b, p0 W9 K4 \ - )( q! L) y. ]- o0 w& u) O/ e1 K
- (defun set_tile_xline_pt2 ()8 K$ P4 w2 U% B$ Y4 I4 I
- (if (not xline_pt2)* i" B z$ l$ Y/ P* D) R
- ;; Initial second point is Root Point + Direction Vector1 B( z7 ^5 p. ~" t9 A
- (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))% O& P- v* }0 G- b( I$ X
- )
! h |; g( D6 o% ~ - (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))
1 Y- S- [* ?' I, y, @4 m- N& W - (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2))))
# o) l" ~- ~6 D: v - (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))3 v1 {) k( j+ O6 i1 x
- )
" T5 F+ \" y% M! c8 k
: r) i- Y2 {; T* j* v6 K) Q9 g- ;;4 f- \9 c. A4 d8 J" [$ D) X2 h& ^
- ;; Handle for all objects2 q/ o1 _2 ~: Z# u* @
- ;;
1 j( y) ]) v. H7 A" r2 W* Q - (defun set_tile_handle ()
! v6 h2 S# T/ z7 L: D5 k$ P$ D - (if (setq hand (cdr (assoc 5 elist)))
7 H) U. Z4 K3 D5 E4 S - (set_tile "Handle" hand)
* ]0 r0 I( J: h1 v3 _! _+ D) B. |3 W - (set_tile "Handle" "None"). U- K p5 u0 W+ d* E; R1 v9 ~" ?) V
- )$ A) Z3 Z' U4 a/ Q0 A
- )/ |! H# P, `! i
- ;;2 O6 J) j7 W. v, `9 s6 K, B
- ;; Radius for ARC and CIRCLE
4 J* e" U& U' _2 `! T - ;;
' j/ Q5 R8 ^: X& L, i - (defun set_tile_rad ()
( r: v0 ?! P$ d4 V - (setq radius (cdr (assoc 40 elist)))
6 L, z* C0 q8 b - (set_tile "radius" (ai_rtos radius))
! z$ b2 U4 E0 v# c9 U, y - )
# F" K0 A! R* N0 c# F - ;;: J K" X6 s3 q& s
- ;; Start angle for ARC; ?# A+ _- ~5 s1 X7 p
- ;;
3 ~# z8 S- i* Y T2 e7 ]: `: P - (defun set_tile_stang ()8 }7 c* l0 [2 g1 y( U# E
- (setq st_ang (cdr (assoc 50 elist)))% E1 P' K7 e5 ], K+ z
- (set_tile "st_ang" (ai_angtos st_ang))
8 c0 D. T0 I( @8 l - )( B; {& J! G8 D# T0 Q
- ;;
& J8 Z3 M( L, x) y+ N4 q- q - ;; End angle for ARC9 O1 @1 ~* \* v& d( H
- ;;- p; R5 u7 W! N
- (defun set_tile_endang ()
0 r6 x/ q+ {( U. |2 m - (setq end_ang (cdr (assoc 51 elist)))# K4 y% z1 R- l5 ?! P2 i: n* G
- (set_tile "end_ang" (ai_angtos end_ang))( ^- ~! ?* ~1 t+ ^* W
- )) E/ o: M2 z7 P" ~
- ;;
: D9 ]' p1 m' [ j - ;; Rotation Angle - Text, Attributes, Block insertions and Shapes
; I+ [" b0 F3 t9 `9 n0 p - ;;
% [8 B* p! O8 g+ u- ^ - (defun set_tile_rot ()9 j6 n/ T( f3 J8 \+ K6 R
- (setq rot (cdr (assoc 50 elist)))
0 R) w3 X- L( S- S. t% V9 a3 ] - (set_tile "rot" (ai_angtos rot)): |0 J t' H B
- )
+ S S5 f: `* R* M+ } - ;;
/ {1 Y5 F' M1 |. A0 A- p - ;; Height - Text, Attributes and Shapes
! f+ ]+ _0 l) x8 w1 T - ;;: D4 C0 a5 Y/ z8 }7 O2 E
- (defun set_tile_hght ()
1 P9 U2 M; ?) m$ E - (setq hght (cdr (assoc 40 elist)))4 I# R/ r( q/ f n$ \& l
- (set_tile "hght" (ai_rtos hght))
& L2 K" S. w5 P - )2 _% l2 f+ x# L
- ;;
4 [+ b8 m% r6 I+ r - ;; Width Factor - Text, Attributes and Shapes
* `& J7 C/ j6 H% L) m - ;;
$ _. ]) B9 |; ^! a' v& c* g - (defun set_tile_wid ()8 f2 p* n; k1 f& T- o% E _+ P
- (setq wid (cdr (assoc 41 elist)))
+ Y; l1 \) h6 v3 e4 }) F6 ] - (set_tile "wid" (ai_rtos wid))
0 Q! q' r9 ~; i& l) _6 z w - )# i' n2 T. c' y5 m
- ;;# {2 Y$ K h* D2 N
- ;; Obliquing Angle - Text, Attributes and Shapes
7 O+ H- w4 z; T - ;;
1 O+ X) \( e/ L& ?6 D - (defun set_tile_obl ()
* ^. R- f0 d" b8 \: Q6 G7 _0 { - (setq obl (cdr (assoc 51 elist)))
( e) B- e" i' R0 B8 m. c3 v* F - (set_tile "obl" (ai_angtos obl))
; M- i' {3 }% j - )/ h3 P' |* r1 O1 v- Q
- ;;
: s5 Z( D" x: u+ g, f5 U: V1 I - ;; Text string9 O) o3 g P/ s `
- ;;
/ R0 k7 J) C7 Y- u - (defun set_tile_text ()! S s; A9 Z' r# U3 I; z
- (setq text (cdr (assoc 1 elist)))
1 P8 Q% w: k: i0 `& [% Y2 K) x; R; i - (set_tile "t_string" text)8 N5 X% t. u2 b- |
- )1 S& u& X0 L$ `4 B. r$ R
- ;;
' {. m' P" O8 v/ N! S* @/ | - ;; Attribute Tag) D9 h# v T& S; K
- ;;: |- z3 W/ @: [2 J7 Y
- (defun set_tile_tag ()
0 z& D# i( S5 E( J( ` - (if (= etype "ATTDEF")
/ U# T) C) f- H& A- p - (progn% t) L; K c' T# ^
- (setq attag (cdr (assoc 2 elist))). r! j- C4 }, c h/ E7 l4 ]# c
- (set_tile "tag" attag)% z8 F2 C) y# R0 B l) O' \) W
- )6 P" x R3 L8 _$ B: _
- )
) h+ f3 l8 I( A - )
0 ]: G3 V. S- J7 V; f - ;;, n/ W7 _2 {' u/ Q
- ;; Attribute Definition$ M2 j/ y9 z B1 w1 |% @% O3 R
- ;; i7 ]& P b1 ]9 e ^
- (defun set_tile_prompt ()
5 e4 f/ g; k, S i P. M3 X - (if (= etype "ATTDEF")5 f1 ]) P7 @3 L, A% T- t
- (progn% n: T+ X8 k5 u( @: l
- (setq atprompt (cdr (assoc 3 elist)))
Y6 o; D# l' [2 c - (set_tile "prompt" atprompt)$ a8 a- B- Y4 p/ v& Y/ O
- ): m' y: H2 W* t( H$ s
- )1 h: Y- c1 j* C+ R- {4 u$ _9 x
- )
! M: h* }1 @5 y+ T3 l2 [! L, S - ;;" R7 d- f; w4 R; f( `0 |/ M
- ;; Justification setting for Attributes and Text. Initializes
: Y% e$ k3 @# }* v- {& Z - ;; popup list box
4 u/ B6 Y8 ]4 w& N6 S - ;;
$ C: s9 ?2 @1 N0 R) x) N$ a. M - (defun set_tile_just ()& k9 p6 G3 Q# W
- (setq ha (cdr (assoc 72 elist))) ; horizontal alignment% ?6 n1 S( e/ U
- (setq va (cdr (assoc 73 elist))) ; vertical alignment
1 p+ h3 b, W) {4 R. S: ] - (setq ha-prev ha). g& d+ f2 x7 [8 Q4 k8 d
- (if (= etype "ATTDEF")( }/ t4 V+ E& V1 o( r( w
- (setq va (cdr (assoc 74 elist))) ; vertical alignment
8 I! F" S' ?/ D8 | - )
: D# K/ z/ }! E6 X% p+ r- N" y - (setq jlist
- a# Z3 d, `- i( l) E# j - (list "Left" "Center" "Right"
+ s+ Z! U& `9 p. @' z - "Aligned" "Middle" "Fit"% a& {8 O' v) @
- "Top left" "Top center" "Top right"
0 ], R2 Q1 y1 `0 v1 J - "Middle left" "Middle center" "Middle right"- k% @2 M2 B) w6 M8 T
- "Bottom left" "Bottom center" "Bottom right"
- z% {- g5 n8 Q; {( b - )% k, W9 @; X- C: @
- )
8 V" n3 H1 z6 ^) T5 A: [* R - (start_list "popup_just")
2 n$ n" Q& C2 s6 x2 u; |$ ^$ L - (mapcar 'add_list jlist)" `$ X5 F+ s& J: Y+ D1 B
- (end_list) | Z8 O, `% q% t0 `
- (set_just_idx)8 z. i6 n% j+ B* M
- (set_tile "popup_just" (jlist_act just-idx)). |; R2 W9 L5 i0 |: Q' W% j
- ) L4 e6 g! S h, Z' z/ x$ W
- ;;
& _. n j; L r3 s- \* [: v, G) N - ;; Style setting for Attributes and Text. Reads symbol table for popup list
3 `2 S' W& ]6 w - ;; box., B1 f2 R x) t
- ;;
, y7 l' ~2 \9 d0 Z - (defun set_tile_style (/ sname style-idx tlist)# l( n r/ {* G" o3 e2 d
- (setq tlist (tblnext "STYLE" T)
& x5 B" v9 c& z - slist nil)
5 S7 p" k3 e( F - (while tlist0 W/ w5 h9 C1 V$ s
- (setq sname (cdr (assoc 2 tlist)))! S; C, p0 `6 k7 i
- (if (and (/= sname "")
* d6 z/ D# k' i' S1 F - (/= (logand 16 (cdr (assoc 70 tlist))) 16))
. O' E i1 {5 Y Y - (setq slist (cons sname slist))) r' Y4 C/ G) r- s4 K. [* }
- (setq tlist (tblnext "STYLE")))( \5 h8 X% d5 p& }* f8 L+ E& j
- (if (>= (getvar "maxsort") (length slist)) i$ k7 N9 u2 m( K; Z
- (setq slist (acad_strlsort slist)) ; alphabetize style list( r% ]8 {+ T/ W. Q: {
- (setq slist (reverse slist))) ; or reverse it to put it in DB order- _% r; j S- U8 h5 f- I
% }8 C5 V9 v; a: j- (start_list "style")
! Y2 P+ o, g2 }3 s& X9 N. _ - (mapcar 'add_list slist)' c4 `5 a+ `% w0 j: A9 ^7 D4 r
- (end_list)1 ^5 ]5 E1 X5 O& ^' X$ ^
- (setq tstyle (cdr (assoc 7 elist)))
+ |9 u9 Z8 Y8 x6 h: ^ - (setq style-idx (getindex tstyle slist))
8 ^$ X$ E3 A. e3 R - (set_tile "style" (itoa style-idx))
3 J9 e5 f+ R# Q& H, z+ J O - )
4 k- p, B5 J" S& V/ R - ;;
9 j7 k6 l: V1 S8 o. _5 h; x - ;; Text and Attribute setting - upside-down, backwards
6 g$ r& \+ J4 g - ;;! I- k/ E& r) [# p& Y
- (defun set_tile_bk-up ()
" ^( {, _+ J8 ^, \3 u' C, }, v; o- o - (setq bk-up (cdr (assoc 71 elist)))
, m& p- E1 L% E$ w - (if (= (logand bk-up 2) 2)
0 H- S& h( A# B* T - (set_tile "bkwd" (itoa (setq bkwd 1)))1 M- O6 I2 A) I) i% |" @
- (set_tile "bkwd" (itoa (setq bkwd 0)))
# h# x2 g( N4 ]7 r - ), h; w7 R& o4 x! w9 C
- (if (= (logand bk-up 4) 4)( z" G& H3 v; C% O' e
- (set_tile "upsd" (itoa (setq upsd 1)))
/ Y; w3 O, i4 q# G# d+ J# z - (set_tile "upsd" (itoa (setq upsd 0)))
. n0 z2 F$ ]. ^1 q9 g# I - )
. [; R' ~& O# w - ): y( }: n3 O2 e2 |' J* A
- ;;2 ~; W% d9 w' \- q
- ;; Attribute setting - invisible, constant, verify, preset5 O3 ~. U& y7 r, m+ q. K1 P2 S: ?
- ;;
& H$ X( v. R$ x4 M8 ?& [( ` - (defun set_tile_icvp ()
. d' ^, Y2 ~( h3 ?: q) | - (if (not (setq icvp (cdr (assoc 70 elist))))
) t/ s! q" f4 M+ m) g" z+ q. i - (setq icvp 0)+ T5 {! X- Z) G2 n2 |
- )
' T' P7 k) U3 D/ K5 G& A - (if (= (logand icvp 1) 1): a* p- }: T2 Q
- (set_tile "inv" (itoa (setq inv 1)))' d/ e8 a8 c. |/ i. d0 `
- (set_tile "inv" (itoa (setq inv 0)))! K# L: ^$ J0 O( x. T
- )
, E: I9 s D3 B" [$ h# W! O2 L. g8 ^ - (if (= (logand icvp 2) 2)
9 c" ]% a" u7 @8 h: R0 c6 E6 f9 c - (set_tile "con" (itoa (setq con 1)))& f6 @+ }7 p+ n, W8 K
- (set_tile "con" (itoa (setq con 0)))
* B1 x/ b# E& ]" M- k% V6 j - )
+ F. O5 I+ N/ X2 a5 g - (if (= (logand icvp 4) 4)/ w) ^, y4 Z% n! d. p4 X
- (set_tile "ver" (itoa (setq vfy 1)))
0 C4 U+ x- d( E) x8 `( J7 m* O$ F4 G - (set_tile "ver" (itoa (setq vfy 0)))! k2 B$ d5 {9 |' M
- )1 N. `5 x, ]7 t4 a, E8 C6 `
- (if (= (logand icvp 8) 8)
, B& e O* M) c2 h1 C% K - (set_tile "pre" (itoa (setq pre 1)))( O7 g8 R# d2 G3 ^4 Z1 ~9 D
- (set_tile "pre" (itoa (setq pre 0)))' |' g2 Y0 t# S! e6 [. _
- )
: d5 M) t" c! r: s, W - )% ?- s4 u2 L }2 f+ \) C, H
- ;;
`# ~) k- }% I) ~ - ;; Scale factors for block insertions( K6 x# x; i; J$ T5 i5 z
- ;;+ S6 S7 Q& D7 w- |8 ^" F0 e1 `
- (defun set_tile_scale (/ temp)
7 a/ I% |, N" o9 V( W9 P3 f - (setq temp (getvar "LUNITS"))
' s% v' O* q& x7 Y* h4 W, G7 @' d - (setvar "LUNITS" 2)
% G1 W" K0 }5 g - (setq xscale (cdr (assoc 41 elist)))/ ]: D9 Z2 X9 l! q7 o
- (set_tile "xscale" (ai_rtos xscale)). E7 n! P9 i$ k) P, l
- (setq yscale (cdr (assoc 42 elist))), y; d4 Z+ @# d9 T
- (set_tile "yscale" (ai_rtos yscale))
+ w& }8 t- H1 Z# @" U1 i - (setq zscale (cdr (assoc 43 elist)))
* o2 l0 d0 S1 h/ y, Z" M - (set_tile "zscale" (ai_rtos zscale))( g7 T9 A/ ]% T5 F; e8 m- x
- (setvar "LUNITS" temp)
/ h( d. A( k2 s1 Q! z: q2 [8 ? - )
# Y* ]7 u4 b A5 P. k# O - ;;
3 G3 C+ y; M3 G - ;; Rows and columns for block insertions9 j7 g2 N6 T: X. ^% L
- ;;
( L( g; _! q5 }3 k - (defun set_tile_rc ()
6 @3 n" Y, h% m) o1 m ~% U - (setq columns (cdr (assoc 70 elist)))
; @2 _8 \. G4 | T' X, H - (set_tile "columns" (itoa columns ))
' v s+ M; u6 L$ O: P - (setq rows (cdr (assoc 71 elist))), b7 X4 J0 W) a9 X( _+ b0 b% w
- (set_tile "rows" (itoa rows))
, V% K0 I" u( ~9 v, v - (setq col-sp (cdr (assoc 44 elist)))
$ l5 a# _3 r8 a) H8 m- S, T9 ^( ` - (set_tile "col_sp" (ai_rtos col-sp)), m, {4 o& v5 b) d
- (setq row-sp (cdr (assoc 45 elist)))4 h, g1 }" \9 m4 s1 h9 L+ `
- (set_tile "row_sp" (ai_rtos row-sp))
+ @7 I4 a |" u: S" w: m& M - (if (/= hasclip T)
( L9 p9 X0 Z q6 r1 A& ~ - (mode_tile "xcliponoff" 1)
6 ?8 C. u2 Q' B+ j - (set_tile "xcliponoff" (itoa xcliponoff))4 Q( q8 O5 S7 Z5 a
- )) L5 w2 H1 L q3 v6 n+ P7 |
- )
2 o6 l! B- X8 \- V: n' m1 M - ;;
9 v! a- j7 z5 P - ;; Invisible edges for 3DFACE
1 g" h0 a" v2 f7 v4 f1 x, _. ? - ;;
% s: x+ |( X% l8 |; M: _+ U2 q5 J - (defun set_tile_edges ()
i* I% f, d m( Z- { - (setq f-vis (cdr (assoc 70 elist)))
) p, x6 G! Z) l1 Y- O J - (if (= (logand f-vis 1) 1)+ d5 K1 ]" d; v: J( ?
- (set_tile "edge_1" (setq edge1 "0"))
$ { y* h. X& _ - (set_tile "edge_1" (setq edge1 "1"))
% T& W' k: z1 c+ u5 a! J - )
* f1 {. C3 k" l# S$ A9 f - (if (= (logand f-vis 2) 2)
4 r- q( }, K7 w0 B - (set_tile "edge_2" (setq edge2 "0"))0 C1 m. G' u! i+ \ X
- (set_tile "edge_2" (setq edge2 "1"))
/ A; O- R$ c: F, R) Z - )
2 } v# c' `1 h) F$ m8 x - (if (= (logand f-vis 4) 4)- ?7 C, [- ^& K
- (set_tile "edge_3" (setq edge3 "0"))* W$ A7 J+ [( ]
- (set_tile "edge_3" (setq edge3 "1"))
$ m; H1 W; g; Z% d2 ^; @, O - )8 [& t/ l$ o5 [" @* P4 i3 B! a
- (if (= (logand f-vis 8) 8)
( L- {1 ^7 z+ d& z - (set_tile "edge_4" (setq edge4 "0"))
& T3 ~* Z, A% d/ { - (set_tile "edge_4" (setq edge4 "1"))
! k$ k. s& x4 q( a6 z- b - )1 o& \! U9 c2 z, H2 b
- )
6 X3 w0 [2 \0 x: y) O9 v - ;;
+ F5 Q, F; h7 R4 n - ;; XYZ Point values for polyline vertex
/ P3 O0 P+ r# h- U9 K - ;;; \; B; ^" `" w; E, U
- (defun set_tile_vpt (ptype)# t! z- p. C7 L/ ?7 p
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")6 Q% x) d! z; k' K
- (progn
{8 @; U, b9 y/ T8 q - ;; ctr is 1 based, vertices are zero based.
# l" Z/ l/ \1 \% b. V - (setq vpt (cdr (getLwVert (- ctr 1))))
7 ~# I( U- X7 I - (set_tile "xtext" (rtos (setq x1 (car vpt))))+ z8 S7 G: u1 _" J
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))! l( {* y3 }# n
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))' S3 A. _- [7 s: L5 u: w4 P
- )
! F5 k% J) H9 [' k/ h% N* S6 c& ]- L - (progn
. M' q) T7 {% P) u; k9 q4 |* |' r - (if (= ptype 0)4 R2 p: H9 `$ e, h6 _9 ^) U" V7 O
- (setq vpt (trans (cdr (assoc 10 vlist)) 0 1))
; s0 D2 _4 x4 X+ U - (setq vpt (trans (cdr (assoc 10 vlist)) ename 1)), z6 }3 Y" Y A
- )2 A7 n: t+ P& ?+ j( X
- " ?" m+ U7 y) t
- (set_tile "xtext" (rtos (setq x1 (car vpt)))). k% S3 r& z5 v* k; [1 }
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
O6 S4 w w0 o! F, E" \ - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
/ _' Z- _7 `5 b/ L - ); H8 }- B8 X* d2 ~/ W( R; w
- )
- @6 g- O8 g( d1 }5 K6 }$ J3 o - 9 N7 F' v: T. v# a! e9 w5 C$ c
- ). D- \7 t% l2 r1 R
- ;; This is the equivalent to doing an entnext on the heavy weight0 B z8 J6 |: c' f! w. _
- ;; polylines. The hard coded '4' below allow stepping over the
" U- I! d' V" M/ E! Y% @ - ;; 40 41 and 42 group code information. The while loop finds the
* P0 l2 m2 l' i/ T0 W% d7 G5 R - ;; first vertex which will be used as the starting assoc in the
8 K; h0 d8 Y2 N* C# E; M! m$ i - ;; call to nth.4 I. w4 F# f3 ^) \& P+ O: F4 }7 ]
- ;;- J' ]& B; u0 X
- (defun getLwVert (tmpctr / count tmp)6 N0 i3 c& b0 e0 T( U' l
- (setq count 0). s7 }, G# U+ t9 Q3 C' v
- (while (/= (car (nth count vlist)) 10)
+ n6 t2 V+ M: J7 d - (setq count (+ count 1))& {$ Q2 G' l Y5 \
- ); r, D8 E; _, x8 m
- ;; If the counter reaches the number of vertices,; i; U! D2 F H8 E
- ;; reset ctr and tmpctr to zero again.* q; L4 d+ i4 w. n6 d& Y3 z' v
- (if (= tmpctr (cdr (assoc 90 vlist)))
1 ^" g5 A. o8 o! u2 m1 d - (progn
" ]- ^/ R$ |0 T% H, S4 @ - (setq ctr 0)5 u* f; I; f: m
- (setq tmpctr 0)
( O) F1 A& z" R - )
, |4 j( ?+ Q. J6 H/ E" v- c$ B - ); k0 D5 D% L# @; o4 @6 O
- (setq tmp (nth (+ count (* tmpctr 4)) vlist))7 I- Y/ u1 r# d0 v
- (setq tmp (append tmp (list(cdr (assoc 38 vlist)))))
' l% X3 y! ^; g9 E+ r4 J - (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))
. m* X# U- h9 g, } - (setq tmp (cons 10 pt1))
7 h, d% B+ y0 I7 [- y' B5 c - (setq tmp tmp)0 Z" a! | C1 x; n% V1 E
- )
9 g8 Q5 M. |2 r- f7 V, I - ;;
; A8 _: L, u/ l9 G: c: P! u - ;; Set tiles for Spline properties. If the spline is rational then we' ~% `/ D8 U3 [( t
- ;; need to display the weight values of the control points, so set. [6 [5 K, w( b* d3 g
- ;; flag to 1.
' I g; m& ]# o$ r8 V - ;; 1 = rational spline
3 I2 N4 q, g" t% a+ J - ;; 0 = non-rational spline
+ H' M* G" B; R; C& Q - ;;7 i! o( `. U$ z5 X0 l. R( P
- (defun set_tile_spline_props ()
0 m( `& H5 Z X4 } - (setq rational_spl_flag 0) ;; initialize rational spline flag7 n0 H, K v& l- P G5 u4 ]
- (set_tile "Degree" (itoa (cdr (assoc 71 elist))))
! f3 ~% s* M% r; s3 t1 [ - (setq bit70 (cdr (assoc 70 elist)))' E7 X6 I7 _4 [( s: D+ ^8 H7 X& W
- (if (= (logand bit70 1) 1)" M$ h+ f# |* V( E$ {0 V; r
- (set_tile "SpProp4" "Closed")6 G) d. `6 @2 _9 ~& _3 U% P' F
- (set_tile "SpProp4" " ")
2 q, G: b6 c4 m8 x- _ f- m, H - )
( A0 j% B3 L+ f, I5 v - (if (= (logand bit70 2) 2)" p5 B" H2 k8 i6 ?3 ], K, g q
- (set_tile "SpProp3" "Periodic")
" ~( O) i7 @* x9 g) t - (set_tile "SpProp3" "Non-Periodic")
2 | _6 Q, B9 W N - )9 ^) e/ L3 l7 ^, n0 P, y2 u
- (if (= (logand bit70 4) 4)! n3 `: ^7 p% V5 W# ~$ `* l
- (progn
- T; G1 _5 C; B. O; ]; W7 t - (set_tile "SpProp2" "Rational")
* n# V. _% V2 Z - (setq rational_spl_flag 1) ;; this is a rational spline7 W( K Y+ K [: t
- )
5 h+ [$ X! d1 j/ p1 d - (set_tile "SpProp2" "Non-Rational"); G4 Z2 |$ x7 ?! b* P
- ); I# X& l# n6 E2 |
- (if (= (logand bit70 8) 8)+ E) f0 n$ x$ [. Z' U% w4 B
- (set_tile "SpProp1" "Planar")
' b6 |, `2 ^3 z8 _4 J7 B. e7 b- p - (set_tile "SpProp1" "Non-Planar")/ O5 c! i% u2 ~6 d7 @
- )
6 w1 Y* A0 A9 ^( N' B - (if (= (logand bit70 16) 16)9 ~3 a% Z: H8 g. Y5 F
- (set_tile "SpProp5" "Linear")
) ~+ f* q/ o; P4 Y! ]& U9 L( @ - (set_tile "SpProp5" " ")
$ \6 `$ L# T" p. k - )8 g1 _ M4 ` S6 I, ]
- )$ ` J6 H9 Z" \# [7 P2 C
- ;;3 P% d% P1 k3 t6 R8 B3 X- S5 p+ s
- ;; XYZ Point values for spline points7 b1 W& {" m \% ]& J, @
- ;; Need to account for WCS/UCS$ u% ~# x5 e$ }
- ;;
9 l" L' j6 _- D6 G0 E- u - (defun set_tile_cntl_pt ()
5 ?" v* L9 J5 a8 g - (setq cntl-pt (cdr (assoc 10 elist)))
h5 G1 I+ ^, K- R3 G9 \- ~3 l6 F - (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))) y* i4 y9 X/ P. U3 i
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
- j1 Z" n, `4 o; m, @, n - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))2 L) g/ i5 L6 X0 F$ y0 {
- (if (= rational_spl_flag 1) ;; if rational spline
4 f7 k* l8 ~1 v$ D' O% j. E; E - (progn ;; show weight
+ M2 S3 j9 S/ h1 \9 D& O1 G. L - (setq weight (cdr (assoc 41 elist)))
; F. ?! I! I7 L- S( [8 t- } - (set_tile "weight" (rtos weight))
& k p, y" y( e6 b7 n' @$ } - ) ;; else
) J4 T0 H2 ^6 ^& `: O1 u- X3 W - (mode_tile "weight_text" 1) ;; disable weight field! @7 }/ j9 ^4 A2 l0 `- U& @
- )6 }) c6 V' m* x7 z( t+ f
- )5 ~: t2 W5 C* a( N" L5 G) o3 l
- ;;
& ^2 D: R' p1 g6 z: W3 o - ;; XYZ Point values for spline points4 O/ ?: @8 g V& a" m# A
- ;; Need to account for WCS/UCS
* ?4 s# A+ l1 A1 n - ;;$ ]/ y% y+ a- ^) H/ B, A
- (defun set_tile_data_pt ()
2 h, L m$ i; } - (if (not (assoc 11 elist)). U4 \2 I/ G6 q5 p5 T) h
- (mode_tile "data_pts" 1)8 _3 p; E* c5 E X0 E/ S5 g1 ]
- (progn
; ^* V+ L$ v1 G8 D - (setq data-pt (cdr (assoc 11 elist)))# @( j% F& |' ]0 c7 Q- R: {
- ;; display points with current precision.( V! \ Q5 Z$ ?7 C S# Y$ k
- (set_tile "dxtext" (rtos (setq x1 (car data-pt))))1 m4 q$ t" u- f! [* X0 Y6 @
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
% b5 M6 g; S6 m; M' j0 e$ c - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))0 f6 J% T4 X) Q7 S, ~, Z
- )
" ^2 |# E ~3 W, C3 l$ v - )
' m4 b$ }& f3 K& X% f7 p - )
5 [+ e" x8 g0 |& ~ - ;;! V8 U3 o. p$ g6 J2 W: t3 k b
- ;; Fit curve, fit spline, or smooth spline surface setting
t6 H. p! ^/ e6 {! Y9 ^" \ - ;;
7 m7 G! p7 Y& y. h/ h( d, [ - (defun set_tile_fitsmooth ()
/ k8 C- s7 j/ }& q - (cond
/ B! y/ \) o0 m. G9 ]4 n7 P - ((= (cdr (assoc 0 elist)) "LWPOLYLINE")
B8 b. f" L. ?# E" W - (set_tile "none" "1")
1 v( I& Y( j7 T- ? C" i - )9 T% H B4 P9 z4 t
- ((= (logand bit70 4) 4)) z4 U/ r0 h- i" t: i+ \3 Z/ A
- (cond
& O+ j6 P; ]3 x4 Q' b3 ^* G9 { - ((= bit75 0)
8 p. R S0 w1 t2 ?3 _ - (set_tile "none" "1")- K8 K& q7 U5 N4 I. N- b
- (setq spltype 0)2 l& b* N9 P. W5 f- a/ K; R
- )
3 C+ E9 a9 G1 A - ((= bit75 5)+ x. B3 o% l2 P' T
- (set_tile "quad" "1")5 b& O$ M. [8 @6 y6 N4 U" Z9 ~* ^
- (setq spltype 5)
, w" k' s1 }6 W+ O5 M - )
) s6 D8 |3 g3 Q$ H+ n% h - ((= bit75 6)
. R! m4 q! }8 V$ W) Q- k - (set_tile "cubic" "1")4 B q# c" E6 F- l
- (setq spltype 6)
8 i& o7 e2 ~8 H P0 p - ) S+ D% _5 C" e( w. h
- ((= bit75 8)6 u) a$ ]- i8 Q) w
- (set_tile "bezier" "1")0 S& A% L% @# K2 v
- (setq spltype 8)
- U# L' o8 a: | - )( f% U) d# `# l' `7 h4 u
- ) E0 g. v3 A* B3 W `
- )+ \- M f2 a+ _
- ((= (logand bit70 2) 2)
2 h. V1 I+ l+ O - (set_tile "fit" "1")4 i' R( f( p0 E
- (setq spltype 1)$ T1 U( w3 o( @0 A0 N$ J- F' d
- )
8 Q; M! ?# Z) z% n - (T (set_tile "none" "1"))2 \7 ~8 z& } e6 q
- )7 k& W( d; o& m6 Z
- )
. Q9 f( x: a4 M4 S/ n# L - ;;
# {7 @6 _5 [/ `& Q% d& S - ;; Closed or Open mesh and polyline setting% K5 x$ n$ q3 T0 g
- ;;8 e z0 o; G8 o1 t( \; q
- (defun set_tile_closed ()
2 X6 }0 U% Y W! Y& k' l1 e - (if (= pltype "3D mesh")2 r. L* q T* G4 Q7 Y" X
- (progn1 ~4 _' E& a8 ~+ t- D1 A+ X/ X
- (if (= (logand bit70 32) 32)
8 V9 C! K5 A3 l# W; M* @ - (set_tile "closedn" (setq closedn "1"))7 R8 K( v" w% s e/ N
- (set_tile "closedn" (setq closedn "0"))
" E$ |2 @0 W% ]! n$ v - )9 G0 _$ d4 }+ k- h
- (if (= (logand bit70 1) 1)
6 K8 q3 g6 j0 |6 B0 |- z- Z+ e3 { - (set_tile "closedm" (setq closed "1"))- [5 H# o) q8 O& H) F! V
- (set_tile "closedm" (setq closed "0"))
& u6 m0 b4 ~9 t - )
& Z3 A) x( D+ l# J- W' u5 G - (setq old-closedm closedm old-closedn closedn)
! q- L& \9 ^( s. R. ~; I5 T3 ]: r - )6 [' M, E- |' N2 \% N! I
- )
& T' a! g' R5 f% _ - (if (or (= pltype "2D polyline")
4 C( q) D a e - (= pltype "3D polyline")
& U0 n7 C6 Y+ v' ` - )3 n O2 K! F7 |+ d6 j9 a
- (progn$ Z# s, H: z3 `; p$ E
- (if (= (logand bit70 1) 1)9 T) ]' _7 j! R4 w2 B
- (set_tile "closed" (setq closed "1")); N9 h+ [9 k. x- _
- (set_tile "closed" (setq closed "0"))
5 R$ H) k. r1 R, U+ ^4 G6 e" F% Y - )! g! {# T0 i4 ~ A* Z1 K! O, ~' g3 g
- (setq old-closed closed)
$ r9 X$ J7 i+ o+ ~- ` - )
) g* g6 ~& k! K+ M' n - )% a8 Y0 y- R1 N- Y' N2 n- Y% ^
- ), f2 o' V$ w, o/ l7 H& e: Q* s
- ;; Set common action tiles/ ]: O9 u" h7 Y$ Q4 k6 ~" [ v
- ;;
- Z" u, m$ C$ F* T5 F; E; j! z) Y - ;; Defines action to be taken when pressing various widgets. It is called4 M& H/ ~7 t& W( Q C
- ;; for every object dialogue. Not all widgets exist for each object dialogue,- k5 ]* q* R- z' N
- ;; but defining an action for a non-existent widget does no harm.3 i: P6 v2 M) e8 i
- (defun set_action_tiles ()
+ b$ {( o- d9 I% W4 k - (action_tile "cancel" "(dismiss_dialog 0)")0 g7 H! A5 E8 D0 \4 \5 z, J- K
- (action_tile "accept" "(dismiss_dialog 1)")- s r# m3 G5 z
- (action_tile "help" "(help \"\" help_entry)")
5 o, ?+ ~7 J2 c' q1 J" x - (action_tile "b_color" "(getcolor)")
& y+ E" j3 |+ e - (action_tile "show_image" "(getcolor)")& p' O3 W0 `' w" ]
- (action_tile "b_name" "(setq elayer (getlayer))")7 m/ j$ K" `( }) T1 O% k
- (action_tile "b_line" "(setq eltype (getltype))")' b; T- R' O8 B# h
- (action_tile "eb_thickness" "(getthickness $value)")
/ q; L/ r9 K7 S, c - (action_tile "eb_ltscale" "(getltscale $value)")# M$ c! M+ t8 V3 U0 e- E+ a0 s
- T1 t9 b' o- s- f- (action_tile "pick_1" "(dismiss_dialog 3)")0 J, f$ `2 M5 c. J( Z. I
- (action_tile "pick_2" "(dismiss_dialog 4)")
( o( y3 ?' f i- o& m- K - (action_tile "pick_3" "(dismiss_dialog 5)")
5 n S1 r0 J' ~% L% _6 ]7 v1 L - (action_tile "pick_4" "(dismiss_dialog 6)")# R1 Q2 C* p3 d; H0 G' A
- (action_tile "x1_pt" "(ver_x1 $value)")6 \2 l2 d* e# q' |( _3 c
- (action_tile "y1_pt" "(ver_y1 $value)")
5 a" M# u+ }% s" C ^ - (action_tile "z1_pt" "(ver_z1 $value)")
6 _& D* L+ d7 C2 S - (action_tile "x2_pt" "(ver_x2 $value)")
: ?1 \! {$ k8 F - (action_tile "y2_pt" "(ver_y2 $value)")
8 t7 ?( J G" H" T - (action_tile "z2_pt" "(ver_z2 $value)")2 D( ^0 E/ F' }6 f" }' C+ t, x
- (action_tile "x3_pt" "(ver_x3 $value)")9 _; v; o, L9 Z, x/ E5 Q }) z
- (action_tile "y3_pt" "(ver_y3 $value)") g8 F: q/ a+ H3 g% I* g- |" R
- (action_tile "z3_pt" "(ver_z3 $value)")
) O) s7 n0 @; R8 k+ Q - (action_tile "x4_pt" "(ver_x4 $value)")
, n4 k% K2 R7 w5 K$ M$ {) W - (action_tile "y4_pt" "(ver_y4 $value)")6 n# ]. D ]- ?
- (action_tile "z4_pt" "(ver_4 $value)")# {1 [( ^& r! l
/ i; s. G! i* M& O- ;; Action tiles for Xline & Ray% \1 y! x2 d" l _( d: [
- (action_tile "xline_x1" "(ver_xline_x1 $value)"), l( ]- e8 F+ U
- (action_tile "xline_y1" "(ver_xline_y1 $value)"): ?* I% r1 w5 D1 n+ w, E7 V
- (action_tile "xline_z1" "(ver_xline_z1 $value)"): g+ ]& ]" K3 Q& T7 R Z
- (action_tile "xline_x2" "(ver_xline_x2 $value)")+ l; B9 ]& ~9 e, y& l* N' v7 \
- (action_tile "xline_y2" "(ver_xline_y2 $value)")
9 r1 i: T# l, k! J' A* O0 t u - (action_tile "xline_z2" "(ver_xline_z2 $value)")
1 t% j$ G! V/ z0 f2 Z( E4 X! h$ \
, S# G( v1 z' I' k+ _3 i0 Q- (action_tile "edge_1" "(setq edge1 $value)")# H! Y* t. R* X5 \
- (action_tile "edge_2" "(setq edge2 $value)")
1 R6 l5 ~! v# S2 u. a - (action_tile "edge_3" "(setq edge3 $value)")
. W1 X* b) d; b# z$ D8 f- r" R - (action_tile "edge_4" "(setq edge4 $value)")& T* |% h+ m8 R
' i0 U- C7 [7 C5 o8 O7 t7 ]7 P& ]- (action_tile "radius" "(ver_rad $value)")& g( @& `! S* H# C
- (action_tile "st_ang" "(ver_ang1 $value)")
3 h) Z7 n) d, @/ \0 u( S/ ^" @' L - (action_tile "end_ang" "(ver_ang2 $value)")
% f7 {) {7 }1 `# A3 E3 N2 B% t - (action_tile "end_eang" "(ver_eang $value)")
b; ~" U& p( Q$ X# f, { - (action_tile "minrad" "(ver_minrad $value)")+ \/ q( e' a* b. S2 v; _4 m
- (action_tile "majrad" "(ver_majrad $value)")- I/ Y- v6 A& I" j7 e+ Q' F6 l
- 2 N; y& u7 W9 G6 g/ g
- (action_tile "xscale" "(ver_xscl $value)")8 m- M6 a4 c) z: h) A
- (action_tile "yscale" "(ver_yscl $value)")+ Q- S' d6 { K$ k
- (action_tile "zscale" "(ver_zscl $value)")
3 _' o& x; Q |( Y1 E" v9 I H - (action_tile "rot" "(ver_rot $value)")$ U3 f% x, p( g K
- (action_tile "columns" "(ver_col $value)")
1 k* B3 y7 d6 u3 S( B* A2 W - (action_tile "rows" "(ver_row $value)")3 x' Y8 B( p' ^$ b0 v) Y. _# ]
- (action_tile "col_sp" "(ver_colsp $value)")
# S9 `9 Y* K5 }" l# b3 V - (action_tile "row_sp" "(ver_rowsp $value)")8 ]+ H( G. ^* y1 w0 L0 X
, n1 a2 m! D: {- (action_tile "hght" "(ver_hght $value)")
/ q! R. k& {% \4 i# U" o( ]( U - (action_tile "wid" "(ver_wid $value)")7 U. ]9 ]% |' ~! u! d. V
- (action_tile "obl" "(ver_obl $value)")
& `, O j& }1 ^' l - (action_tile "style" "(style_act $value)")
- i6 `( j% A3 {/ T4 U
- Q8 Y$ R- X$ i1 q n- (action_tile "t_string" "(ddgettext)")3 G# F" d' E2 t6 \7 K
- (action_tile "tag" "(ver_tag)")) f3 T% H) s, c* K5 ~) g2 J
- (action_tile "prompt" "(ddgetprompt)")8 C$ Z) }# \9 S+ I! E |' {$ ~
- (action_tile "bkwd" "(setq bkwd (atoi $value))")
, l# O) K& a7 I; w& @. S - (action_tile "upsd" "(setq upsd (atoi $value))")
( L# I S4 _; o6 a - (action_tile "inv" "(setq inv (atoi $value))")6 d" k. }& x* @1 I3 _
- (action_tile "con" "(setq con (atoi $value))")
9 n+ a7 Y8 v7 v6 o: D2 u7 c" x: ?" h - (action_tile "ver" "(setq vfy (atoi $value))")
- e7 ?0 r7 ^9 x3 |5 B6 R# D - (action_tile "pre" "(setq pre (atoi $value))")4 d. ?/ @4 K! \
- (action_tile "popup_just" "(jlist_act $value)")6 {" p2 \, Z& {) b$ P- @
7 F# k3 y; n( p) R% _) I- (action_tile "closed" "(setq closed $value)") S9 [. ^8 |- C( T
- (action_tile "ltgen" "(setq ltgen $value)")
) G; L4 p' H2 l0 c1 q - (action_tile "closedm" "(setq closedm $value)")
! s( G: J$ i/ O8 N7 J - (action_tile "closedn" "(setq closedn $value)")6 t; k3 _3 T9 }6 ~) {
- (action_tile "next_v" "(next_vertex)")9 N) P0 |) d& W3 }5 E) x
- (action_tile "xcliponoff" "(setq xcliponoff $value)")# d8 p" I+ H2 c! I
- - i1 P. z1 u6 @6 q) N; X
- (action_tile "next_cntlpt" "(next_cntl_pt)")
' O8 G1 m8 t- F" _8 s - (action_tile "next_datapt" "(next_data_pt)")
% L- @: l6 X7 i. x' L( i9 P$ q( G- x - + J; O0 R+ T9 j# |( z
- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")/ o& }" t# h( Y, i# p: U
- (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")
D, V( y) J$ o7 ` - (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")
8 N; X$ O" q: T, n - (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")
) w$ @9 V x1 d& b* G) w9 n" S8 T! ~' y - (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")
% }' _: O# j4 k" J) W - ! c% }+ {/ W; w/ P
- (action_tile "u" "(ver_u $value)")* D* Z, h7 K& [ h8 l7 v. i: G
- (action_tile "v" "(ver_v $value)")
! U% {! W' k$ Y0 d) x3 [! R - ); C+ s$ z0 @4 {* |' _; Z P2 R. _0 v
1 {1 o& \& [; m* ^" r1 `- (defun ddgettext()
* `; _# T* x- `2 j/ `, X& \ - (setq text (get_tile "t_string"))
& B* B" Y: E, }) u) N* W' A - )
1 _7 J/ \) a0 J - " m9 k) m9 C$ E' m
- (defun ddgetprompt()3 o" \1 @+ y$ o9 J7 l. f
- (setq atprompt (get_tile "prompt"))' e- U9 [ p7 i' f9 g$ f2 e
- ); ]8 L9 F: i+ Q! J0 [1 d
- ; u! \* Y8 W' Z: d# x t
- ;; As OW doesn't support disabling of individual radio buttons within3 ~* U; b* W' L& t
- ;; clusters, a check must be performed as to the legitimacy of the
/ F- {$ X$ ~% o& g7 W# t - ;; button pushed and reset if necessary.. p4 p- _7 T7 P6 i: `4 J
- (defun radio_gaga (pushed)
+ L/ a% f) A$ h) y. K - (cond
5 R/ x; O0 J" U+ \ - ((and (= pltype "3D polyline")7 ^0 I1 K3 {+ g5 S. V& z
- (or (= pushed "fit")
* ]$ k) t5 \1 Q/ O$ p4 s3 @4 P - (= pushed "bezier")7 j; b- g! |5 y8 r/ ]4 }, X o
- )1 t/ W0 u; x; E& t& a3 f
- )
$ E3 y. n) Z/ z# a! L - (set_tile "none" "1")) h; m- e4 s, d: e; e" Z
- nil
5 ~9 O3 h$ Z7 }( c! H, p - )& A: B- m& n4 Z$ f
- ((and (= pltype "3D mesh")
8 Q+ ^. U A- C* D2 u - (= "fit" pushed)
5 h9 R; e2 h( n9 E5 u. G/ M - )
' n' R9 b8 c! ?- Q1 U/ b2 H - (set_tile "none" "1")
" n3 J# M, i1 T& G! U - nil, M. {0 [! \+ A) m# ?3 o* }
- )
4 [3 E4 ^4 l4 m4 a - ((= pltype "Polyface mesh"). j$ O3 n/ a! v3 M, w/ F5 M# R+ `2 o: f
- (set_tile "none" "1")9 j% g, L/ ^5 ?" a4 K3 \* H ~
- nil
6 @2 b w4 V- s, Q - )
' B/ ], U+ a) P- u - ((and (= pltype "2D polyline")9 B" W, G$ ?$ [
- (= "bezier" pushed)/ [6 _2 k0 D. T' I1 G
- )' O, {% p8 g5 T$ Q" [
- (set_tile "none" "1")1 Z! x# E) O( @
- nil
) w9 L# f: T3 _' } - )& p- m" a5 u1 Z& r8 k# d
- (T)
7 Z; o$ R( Q! a5 n2 b& d0 g8 f - )6 m0 N1 e( E0 n- ~ j& \# F" `
- )
" h6 C' N# ]$ P% p9 d" X) d1 K - ;;
: f% o3 U& J4 X# V ~8 d - (defun set_uv (type_n)( y6 u0 H! B+ s4 E
- (setq spltype type_n) W' m- B9 d/ P. D+ L! x9 Z2 f
- (if (= pltype "3D mesh")
) a o. G; s3 ~$ |. n* m* D - (if (= spltype 0)# u6 _! I8 Q% A6 a, V% G- Y
- (progn
$ R6 n. W' y v" r- A" a, r4 z - (set_tile "u" (itoa (setq u 0)))) U- f% K: H$ W# J1 X
- (set_tile "v" (itoa (setq v 0)))
+ `3 z- n* R; k( s- k' e - )3 [) v9 `( Y4 g
- (progn
2 T& z6 }& t& [; W! v9 l/ G1 o - (if (= u 0)0 e0 ]0 u6 _8 ~" G* J8 [
- (set_tile "u" (itoa (setq u (getvar "surfu"))))! ^$ Z9 n3 ^; n7 \1 P [* \- g
- )
6 G* \, A! ~# A - (if (= v 0)% s0 }& ]5 K8 _) ]
- (set_tile "v" (itoa (setq v (getvar "surfv"))))
% e, z( @4 w0 u7 S, d - )
+ Y) ?4 o6 z! D - )
$ E7 K; c- e# j4 A8 B" w - )
6 h/ F; Q9 G& O# D) y1 E) x$ b - )7 e% V% T' r5 w1 Y$ V: S
- )
( i; ]) r+ T8 ^/ k1 ^
2 a& U$ t3 O6 h. x
( U) o @* f, X( z3 q3 @5 Z$ O- ;;* }, P0 ^" G: {+ d
- ;; Verification functions' [1 o q' @/ c( u# C, l. d3 g
- ;;
& {, }$ z" X" |, P - ;; Verify distance function. This takes a new X, Y, or Z coordinate or0 o- }$ U) s2 t! m* g
- ;; distance value, the tile name, and the previous value as arguments.0 h( t5 a# a) `
- ;; If the distance is valid, it returns the distance and resets the tile.
+ r5 T0 @/ J4 N3 E, m; S) Q - ;; Otherwise, it returns the previous value, sets the error tile and keeps
' |$ k' u/ B' }; f6 U - ;; focus on the tile. Shifting focus to the tile with invalid value can; T+ C& v' o2 m V/ k2 t. O
- ;; trigger a callback from another tile whose value is valid. In order
3 y/ ?1 Z8 m" |" N) l( d - ;; to keep the error message from being cleared by this secondary callback,
c: i. l5 V/ `# s: w+ T. ? - ;; the variable errchk is set and checked. The last-tile variable is set1 R+ P& n- R1 G/ B% J( z
- ;; and checked to ensure the error message is properly cleared when the
1 G* ` ~, ~+ G- ^4 b0 |/ D6 c* K - ;; user corrects the value and hits return.- C8 `1 X- W: t4 b. u. ?0 z
- ;;
$ G/ E0 H& {8 c1 s* G - (defun verify_d (tile value old-value / coord valid errmsg)
. U8 y x ^$ Y+ F - (setq valid nil errmsg "Invalid input value.")
( G+ v) {7 z1 _' ^9 v8 q9 V: H# o# l - (if (setq coord (distof value))
6 X' f$ T7 C7 Y/ U* u - (progn
1 Z: |4 r) u7 @& x7 S - (cond
+ o; q1 B E6 c' T3 x/ n+ C' N - ((or (= tile "radius")# N' E+ y" J' [0 D& l0 w
- (= tile "hght")
( L, ]9 N+ L/ B, S - (= tile "wid")
3 n! n# [4 ]) V3 z1 [ - (= tile "majrad")
1 W f) _+ ^! N5 g' l. M - (= tile "minrad")
) z" ~$ m0 G7 I z - (= tile "eb_ltscale")" D& y$ A2 _; y6 w3 v/ J7 P
- )( L8 b3 I* i# D- i! p
- (if (> coord 0)% V3 D1 q8 J5 F2 f9 ?* S
- (setq valid T)! l, ~' l' `. D0 A
- (setq errmsg "Value must be positive and nonzero.")& f% A s4 i# O, Y7 e) n/ c
- )
. Z& f/ I: W! U2 K' L6 t C - )
6 j; F2 k! b8 z7 N, p7 q1 Z" p$ b - ((or (= tile "xscale")+ `6 `1 k5 f, M
- (= tile "yscale")4 `" L3 P- E0 |% q0 N
- (= tile "zscale")
& I% |+ H9 V* Y - )/ Q! B: F; ?& ]& |! m/ Y" d4 F" B
- (if (/= coord 0)9 j3 w# C$ ^: x- t
- (setq valid T)
& m& P8 g5 q9 j' V) O& _ - (setq errmsg "Value must be nonzero.")$ p) o* x" ` g3 C' R; @# J# ~
- )
5 s- P- J% W& O0 d3 m/ m& H - )
. a3 h" R( |# t8 e* f - (T (setq valid T))! ~" N, b6 p7 v: P) {/ b9 h
- )
; y$ \9 ]; w; G! b$ R - )2 P5 Y: V$ D* f
- (setq valid nil)
+ R4 g; P3 f" C6 \4 e - )) ]% j) \) {% ]6 [- z _! n
- (if valid$ ^$ P s" p5 |6 G5 a) v/ `$ b
- (progn* G" Y3 l$ l% s; N+ F* g' W7 Z0 @8 e
- (if (or (= errchk 0) (= tile last-tile))
6 a! D/ e% t/ c) B8 a; P - (set_tile "error" "")3 z8 I/ p" W2 Z7 f6 S
- )
; \2 F4 ~; c A \& H - (set_tile tile (ai_rtos coord))2 E! y0 U1 e, I: b! X) ?& G
- (setq errchk 0)" s Q1 D! t* W3 c; m3 d& ^4 c
- (setq last-tile tile)' C/ ^: R* ]: F9 ~
- coord0 }( d7 o) o9 S$ O2 l- ?
- )
( h! @/ O$ O- ]+ N( K - (progn
; M U: T' ^& y# `; Z - (mode_tile tile 2) ; Move focus to offending field1 | g8 Q) o' o+ S) ]' M" S O
- (mode_tile tile 3) ; Select offending text
( q; R$ t. w9 q4 v5 E4 v' X3 H0 \ - (set_tile "error" errmsg), b6 T* _3 A$ _ P3 X+ S) X7 w
- (setq errchk 1)
' C5 b; z1 t% C& P" T - (setq last-tile tile)" X, |- e+ I2 G. m
- old-value
1 i- [0 N2 D8 j( c# D - )
% c5 v2 |/ N( ]5 K* G2 T9 ? - )8 W2 Z* z5 I* |, q% |$ {
- )
2 q% c/ n o: q$ l. |/ V - ;; Function for Xline coord edit box checking.% r5 Q$ f/ ? c
- (defun verify_xline (tile value old-value / coord valid errmsg) C2 B5 q) m0 Z$ F
- (setq valid nil errmsg "Invalid input value.")
0 g2 ~4 `2 y6 Q0 M5 S# Z3 b$ y - (if (setq coord (distof value))
+ b* B2 _2 p9 I4 Z* K - (setq valid T)4 c6 ] Y& e) r) u5 L6 |
- (setq valid nil)
/ n2 b+ _' a" G% ~ - )
9 Z# y; T4 r" b0 n, t0 ~ - (if (and coord
7 ?0 ?3 c9 k$ K4 w - (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) )
V6 b( H" T" q - (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )
s4 a' m `" J5 b' N7 F" h - (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) ). j, }# m7 |' K5 z6 a( v8 h6 A
- )' d) H" g" ]: C( m) t1 E( l/ T
- )$ S! {5 A7 Z% t* G! t! s
- (progn$ S$ F( h7 |- Y$ y" @2 X/ @$ J" U
- (setq errmsg
- F: `+ R& S$ b5 L - "The Root point and the Second point cannot be equal.")% r! e: H, V* b- _; R- d
- (setq valid nil). }8 s$ d+ M3 l! O
- )% z Y7 W( J9 @
- )
3 x$ Z( q- ~. W7 w - (if valid
8 j' i4 G" `2 g! l - (progn, o7 u6 q F, V" S+ l& p+ b
- (if (or (= errchk 0) (= tile last-tile))- n1 G0 L" _; ?3 ~* d( J5 n
- (set_tile "error" "")8 T& q: ^9 Y! |- c6 t6 y
- )+ g- @8 C1 u: J
- (set_tile tile (ai_rtos coord))
$ J( q2 p( ]4 q5 [ - (setq errchk 0)3 J" s9 l# A" |9 W5 h
- (setq last-tile tile)! o* g6 w1 c) k( q/ P3 Y
- coord
' o4 J4 P9 g, ~/ k - )7 m9 p8 B: {7 K2 }) W$ U/ B
- (progn0 w% f; _) ?+ o5 o- Y! B; k& L
- (mode_tile tile 2) ; Move focus to offending field
6 Z9 c7 s% M7 [' E# p/ b; w - (mode_tile tile 3) ; Select offending text1 ~# M2 }( ^0 e
- (set_tile "error" errmsg): a3 @, n6 Z# C$ D b9 c' n
- (setq errchk 1)3 S2 [* B9 E6 Z0 Q2 J
- (setq last-tile tile)* P1 x+ R5 k! }+ J' {9 S; s
- old-value1 W0 q8 W7 y/ _1 l0 C& a
- )3 }" p$ v- _3 `) f5 Y
- )7 g9 }7 A) b" h. t A" I7 P! _
- )
0 k; V# T# v9 s, o; E! D7 h2 D1 e
1 w) S( O. {! y+ V' n& q- ;;; O0 {# w6 u! [4 }$ N5 [
- ;; Verify angle function. This takes an angle and a tile name as arguments.4 _1 O+ g; E/ ^. V2 `8 [
- ;; If the angle is valid, it returns the angle and resets the tile.% s+ s% X u, u! ^" c3 U/ R
- ;; Otherwise, it sets the error tile and keeps focus on the tile.
7 ?, q- g5 O1 n - ;;
`4 l" w& j( N" R- w- r/ u7 E- E9 g - (defun verify_a (tile value old-value / ang valid errmsg oblqmax)6 x; Y' z3 g# v2 |- c% F
- (setq valid nil2 |* [+ _9 q/ H! m r t
- errmsg "Illegal input value."' n, b7 X. [ F c9 p
- )
" q, n2 V; P, O$ P6 Y. }5 ? - (if (setq ang (angtof value))
1 M+ f% L& D9 K6 W9 a - (cond/ k" f- c% Y+ N+ |$ F+ d( X
- ((= tile "obl") ; Restrict obliquing angle
( U. y! A& L5 E8 @( j: g! h - (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))
) A/ j+ v" z4 p' V) W2 }) v1 j - (if (or (<= ang oblqmax)
: C2 v3 k1 S8 d% ^* K! G) s- ^. R - (>= ang (- (* 2.0 PI) oblqmax))4 w, ^: M# D) {2 H4 F8 _
- )9 Y X& c; ^& |. T
- (setq valid T)
' ^! Z; y1 F. q/ i' b# { - (setq errmsg
9 c0 a2 H" O2 ]5 [& L9 Y2 Z - "Value must be between -85 and +85 degrees.")/ D9 k+ p/ Z' L% L% i" G
- )" W& @) A0 Y- ]
- )8 Y! Q9 d3 }1 k6 D
- (T (setq valid T)) ; Other angles not restricted
9 t0 \1 t+ h3 e2 f6 u3 B - )
. Z, Z7 N; r, I - (setq valid nil) ; Invalid angle input, N7 G* w/ o# Z# N s: h/ e1 I
- )' j" a4 p; z3 S( O% s
- (if valid4 r9 x$ G* O$ S- T; y4 i
- (progn0 r8 Y, k4 k7 V6 L# d! F: K5 _
- (if (or (= errchk 0) (= tile last-tile))
: M; a, n8 x' ? z - (set_tile "error" "")
8 k# w3 B$ d2 T, r5 o! Z& a - )9 D5 D" O9 Y M+ y' ~9 Y" s
- (set_tile tile (ai_angtos ang))4 v3 X {8 k% A1 P5 P2 v2 d
- (setq errchk 0)- A8 R9 g% Y& }& ?3 i
- (setq last-tile tile)2 k* T4 j5 N# D5 ?
- ang
7 L$ O) I- M8 e) ] ^ - ). J; V& I3 k3 P" L6 z/ R" q, v0 C
- (progn
2 o! m! H j/ F) m# i0 w. [. M - (mode_tile tile 2) ; Move focus to offending field
. X4 @$ D. L: @" c% N, G4 p g - (mode_tile tile 3) ; Select offending text
6 x' M1 Y0 T- i% {" |# `& E9 M* N6 Z9 ~ - (setq last-tile tile)
& J- }/ |! x- c, m2 A8 { - (setq errchk 1)
2 \7 E0 Z# h/ |4 i6 v - (set_tile "error" errmsg)
6 T+ L b. J5 j- s2 h9 Q Z" Z$ m) W - old-value
6 Q# t1 a+ Q; Y4 l) ~4 K- L - )% h( P! K/ b; B6 s: D2 N
- )
0 L ?+ z; G4 ]5 s0 I3 w& w! i - )& G" [) ~# E4 S# z. T' U" f
- ;;1 @7 U' [5 X' G$ M
- ;; Verify angle function. This takes an angle and a tile name as arguments.
9 l6 k, D$ b% N - ;; If the angle is valid, it returns the angle and resets the tile.6 C8 G0 y7 N4 o$ z1 c- ^
- ;; Otherwise, it sets the error tile and keeps focus on the tile.
2 F& X6 M, U8 e - ;; This function is specifically for the end angle of the ellipse object. If
' x$ N/ _8 _9 U, Y( k1 a5 _( p6 J4 p" ? ^ - ;; the end angle resolves to zero then we want to display it as 360.
$ g) M. g/ ~$ E; _ - ;;& `2 |2 _9 V& s- W& c9 O; ]8 v
- (defun verify_ae (tile value old-value / ang tempend)
: H% y! Y" f, T- I& ] - (if (setq ang (angtof value))7 E0 U# ` y& Z4 F8 V: Z0 K5 D) i# z
- (progn
+ s! ~! r0 }9 T" Y k8 F' t - (if (or (= errchk 0) (= tile last-tile))
1 E& v7 D( V# W) f8 e - (set_tile "error" "")' B1 c( J- `8 O* d* D3 B
- )# y9 e5 ` w) [$ C( }* `
- (setq tempend (ai_angtos ang))
- x# Q; a+ l% }; g% E6 z9 n8 W$ \# a - (if (= tempend "0")+ j0 f8 `) [/ R1 U3 m
- (set_tile tile "360"); Y+ @- z' q) Z/ a1 _$ ^
- (set_tile tile tempend)
! _" I8 O i' P/ ]) x5 }$ b - )/ ~- d' O! F6 Y! j
- (setq errchk 0)
, S9 T. m" J' {% H3 x) ]/ ^- Z' q - (setq last-tile tile)
- T. b$ [2 w& ~" |3 L3 f - ang
# Y! F7 N/ `) V/ I" y- p - )1 F* D( o2 l; M3 v
- (progn3 i; d* S- w6 U2 {
- (mode_tile tile 2) ; Move focus to offending field$ h" L+ z! B* p- U% j+ b
- (mode_tile tile 3) ; Select offending text
* U0 b {. J. q2 E. P6 U - (setq last-tile tile)
; i( R7 C! n3 k: L' s3 E - (setq errchk 1)3 j. ~, N3 H: j" D
- (set_tile "error" "Illegal input value.")1 G2 i+ D4 W1 q1 k
- old-value
9 ~2 Y0 q5 N& M/ x - )6 G! @1 ~7 K+ N3 [; c3 `/ V% l
- )
+ e$ f$ b6 [* r+ I1 q1 ~ - )* E- I4 ^3 E; {& j' f
- ;;
# I- w' D9 W; `) g - ;; Verify integer function. This takes an integer and a tile name as' B/ h5 C# G$ P _% E
- ;; arguments. If the integer is valid, it returns the integer and resets the2 b& K. O: k7 t6 }
- ;; tile. Otherwise, it sets the error tile and keeps focus on the tile.4 p6 d' e: k/ R6 {7 j6 D
- ;; j; G0 ~6 ~! O0 J" T. W8 R
- (defun verify_i (tile value old-value / int valid errmsg)9 [, S2 ~3 e3 b& r7 N, q0 w
- (setq valid nil)+ ^1 c# V0 R+ f! L5 C
- (setq errmsg "Value must be an integer.")5 n2 {- K9 @+ @) e+ O( |; z
- (setq int (atoi value))
5 q& m9 l' n8 e* V0 X/ q5 { - (if (setq intchk (distof value))8 E, J, h2 o! s3 a3 m
- (cond
$ q! [! R' c+ [; D5 S. U - ((or (= tile "columns") (= tile "rows"))
; m% T- y8 y9 h - (if (and (= int intchk)
0 T; v8 [9 j8 g; d - (>= int 0)" ?' Q0 o: } p$ Q
- (<= int 32767)4 M/ T6 k! A9 @# E; {. p+ @! w
- ). {7 `# I" q' M1 t$ X" v* ?' d) C
- (setq valid T)' e0 f$ Q2 {% O$ k+ d& x- O5 ^' I' r
- (setq errmsg "Value must be an integer between 0 and 32767.")
, L. q4 {& U: |1 @6 a" \/ o; _ - )- n0 d) c M1 r! h4 U% H
- )
0 ~- l; T I7 `$ F - ((and (or (= tile "u") (= tile "v")))
8 P- Z$ A3 k& _; _+ o. Z. u - (if (and (= int intchk)
" }# H( f* H/ x N# q/ ?: k; U0 v - (>= int 0)
J0 \% R# V. V- v' [/ b2 r6 @ - (< int 201); ]) T" D- P& Y- A" f
- )
9 I$ G: ]- }) k) V$ D- [ - (setq valid T)- E7 P. K% {, m8 P% Q" G, w; B
- (setq errmsg "Value must be an integer between 0 and 200.")! O% |. Y% n; Y4 S* m% ~5 k
- )& t1 f+ L7 g J T* H9 W1 p% W
- )
. w) p: h! A: p% [ - ), n+ l2 m; y, h9 ]4 `4 m! \0 i
- )/ h, R! Z+ J' M# r2 Z! o2 X
- (if valid
" u# q" m3 u4 ]1 l9 C5 |) e: C - (progn, T0 `1 P( d1 ~( l* [' s+ \5 S
- (if (or (= errchk 0) (= tile last-tile)), J/ o- C6 K( b, I% U4 d1 r5 n% R5 s/ Y
- (set_tile "error" "")1 e4 \! G5 O/ e9 s! u
- )- l& M1 m- v6 C+ e# |4 ^7 b
- (set_tile tile (itoa int))
" d/ P1 k# f; i! k# e. d: G - (setq errchk 0)
* F7 {' Y% w- J, x - (setq last-tile tile)
% G5 n1 U$ v6 @2 @! y& y9 W - int
6 Y6 D7 e8 ?. Q! k3 e$ k$ w - )
3 h$ t$ t2 B: |6 Z - (progn; P( |% w6 M) ~) d2 o7 \2 v
- (mode_tile tile 2) ; Move focus to offending field9 x: ^) R. @; k- W' N
- (mode_tile tile 3) ; Select offending text
5 e* p7 ]& Z0 F, B0 Z9 |' o3 U: A - (set_tile "error" errmsg). }: ]; k2 l! [9 i! U! X
- (setq errchk 1)
3 g4 W7 D) ^ S! R$ o: S; f: M - (setq last-tile tile)
3 F) |) E8 ^9 |; s - old-value
7 C7 L; `+ w7 Q/ f - )
0 y( O% n- i0 ^- \. B& E - )* g+ `. v# Y$ a! @7 q, o Q
- )
( V* J- g! v# R$ l - ;;
. l7 j8 c [+ i) n - ;; Functions that verify tile values for integers3 V8 f2 M! L0 I1 h( E: {
- ;;
8 M3 ^) `; i4 k: x2 f - (defun ver_col (value)
4 Y+ T6 e$ p3 j2 D+ F+ v9 b - (setq columns (verify_i "columns" value columns))
8 L# a; `- t, ^) y b - )5 p+ @' e9 T. x' _
- (defun ver_row (value)8 h1 A+ l$ R. T" l& I5 o+ _9 a/ H
- (setq rows (verify_i "rows" value rows)): S9 k7 L+ t( O
- )
. d; c6 ` l+ S9 j' Y0 d - (defun ver_u (value)
- |8 y9 q, c+ ?$ L, h2 I - (setq u (verify_i "u" value u))7 C" j# Z1 y0 Z Q! K. v
- )
( l* s" e# K; [4 ^. u7 ~) n& r3 ~ - (defun ver_v (value)$ l, O* E$ |& g" ?
- (setq v (verify_i "v" value v))
+ C! T4 r4 Z! H# a1 o$ k - )
/ Z7 h+ Z4 t! a! ]% {1 @ - ;;& f9 E* {7 r% U1 R+ i) ], |7 W
- ;; Functions that verify tile values for reals, _* X( S9 l+ Y% N, K0 i1 q& g7 {
- ;;/ H- e; F& M, q7 Y5 N( V
- (defun ver_x1 (value)
! {$ R9 ?. y8 C; |* i1 \ - (if (setq x1 (verify_d "x1_pt" value x1)) (calc))
0 X7 _ M- d4 i# y# q - )
" Y) h* d- I/ _6 }' T9 y9 z - (defun ver_y1 (value)
" k, p: h) I2 u5 M J9 } - (if (setq y1 (verify_d "y1_pt" value y1)) (calc))3 @4 z0 Q# {+ m! H) D- X# n# U% w; O
- )
7 J0 |: t+ [8 v9 ` - (defun ver_z1 (value)
7 x/ D) y& p+ M9 n. q - (if (setq z1 (verify_d "z1_pt" value z1)) (calc))
+ _$ l8 c N, S) \1 L9 ^+ } - )
& p5 s( ]: f. { c% I - (defun ver_x2 (value)6 D- N8 r* S5 w
- (if (setq x2 (verify_d "x2_pt" value x2)) (calc)). t) J2 d4 i/ j# Z2 A$ S
- )
; v( ]6 V" j3 |6 s2 ` - (defun ver_y2 (value)% ^* z0 G$ K( {' M, e
- (if (setq y2 (verify_d "y2_pt" value y2)) (calc))
0 \+ M! ^' _( l$ | - )8 V ]: j2 ~& L/ `- E7 _" u
- (defun ver_z2 (value)
7 u' v8 O# n6 c8 B% \ - (if (setq z2 (verify_d "z2_pt" value z2)) (calc))
; f! a9 H3 |$ Q: y9 o1 q - )
# K3 |0 D1 V% }& R, g - (defun ver_x3 (value)+ P% h. I+ x* X$ u7 u
- (setq x3 (verify_d "x3_pt" value x3))2 M* x/ a$ @, x j$ v5 [$ _6 N5 k
- )7 a6 t! s" v) T8 g
- (defun ver_y3 (value)' n2 `5 J* f$ w3 ?9 R% q$ ?
- (setq y3 (verify_d "y3_pt" value y3))( i! D b6 _: G& A1 Z. B
- )
& m+ V0 Z. F5 O3 M" S m - (defun ver_z3 (value)) T: h( z) m( w/ [. A5 _
- (setq z3 (verify_d "z3_pt" value z3))8 ]5 c$ V7 b3 `9 P' @
- )
/ ^; h( |4 Q: W+ N: `3 v - (defun ver_x4 (value); y; @3 b, @! E4 W) D
- (setq x4 (verify_d "x4_pt" value x4))1 U& g3 n8 x7 L; }. w9 x$ X7 t
- )5 u1 T% j5 R2 Z7 ?. }( P4 @# E# b$ M
- (defun ver_y4 (value)+ Z5 ]" m6 K6 K! a
- (setq y4 (verify_d "y4_pt" value y4))
* D* a) f: v+ C - )
( J1 ]- |. k3 b! } - (defun ver_4 (value)/ D" k6 k+ U# i; F
- (setq z4 (verify_d "z4_pt" value z4))
8 i' k0 T+ p- X0 A2 j - )7 ]6 Q( l2 ^0 t/ K6 A; A
- (defun ver_xscl (value)
) Y+ J6 U3 L0 t' u1 H- {: i - (setq xscale (verify_d "xscale" value xscale))
% w" _' L+ o7 @8 @2 [% D! m - ). s4 y! _% X/ A# S- G. n" ^
- (defun ver_yscl (value)( J5 r. `7 {, w2 P
- (setq yscale (verify_d "yscale" value yscale))
' O6 w- o2 d3 `% Z& F7 j - )
& ?0 W- e: L! j- ~" X0 V! I - (defun ver_zscl (value)
# H( k" i) t' q% D6 ~+ X - (setq zscale (verify_d "zscale" value zscale))
! z2 n* B0 y0 ?; ^; i/ C3 m& H - )
5 x/ u# y- ~' e9 w L7 O* d8 w - (defun ver_colsp (value)/ u0 G( b2 E; G( ~
- (setq col-sp (verify_d "col_sp" value col-sp))' A& Z( h% ^4 W. Y+ [
- )
4 V1 W# m! g# x; X( I - (defun ver_rowsp (value). W* }) b3 E3 w, L
- (setq row-sp (verify_d "row_sp" value row-sp))
1 w+ g/ d7 |. c3 P$ u - ): f+ ]" @0 P' Y0 X g
- (defun xclip ()
; j4 ^. G" w* \ - (setq xclipmode t): U; V4 {: s7 C* K
- (if (= xcliponoff "1")7 _/ y0 \. m7 T& w( g; u
- (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")- ^$ G! X' x4 c, ]9 ?4 }9 o+ H
- (command "_.xclip" (cdr(assoc -1 elist)) "" "_off")' {7 V% a/ S* h1 U
- )
" A5 B, c/ D& Y& u3 B' v1 q - )
# ~; k' w' d' z3 n: {8 x1 [ - (defun ver_rad (value)" G7 O4 {" B# G# a7 T
- (if (setq radius (verify_d "radius" value radius))8 i0 T+ I" S1 }! P* B7 t
- (calc)1 s9 Q5 h s1 c+ W; S9 a; C5 ]
- )
! b7 g5 M4 E2 M& D( |7 R - )
! B" r% K9 x: d) k3 r, S2 m - (defun ver_majrad (value)* N: e6 A" F1 O; O2 v, X# z5 t
- (if (setq majrad (verify_d "majrad" value majrad))! p0 |4 O/ D. C8 a5 w
- (ell_calc_newval "majrad"). n6 w3 E! A w( ~
- )
( A) `4 t* D, Q4 g% } - ), P: y4 A9 N4 B, j2 K' a) C, Y3 \1 E. G
- (defun ver_minrad (value)
: K2 x/ @) K6 t% U - (if (setq minrad (verify_d "minrad" value minrad))
9 Y) ^# t5 c( z2 Y# N/ i - (ell_calc_newval "minrad")
( X4 s# o! H& Q5 x3 E$ H3 [- ~: j% y - )
5 q& n1 ?% O; d - )
9 V* U6 z" o$ _8 N: l - (defun ver_hght (value)
$ ?$ ^3 n: W4 O( X0 k- ~$ J8 C - (setq hght (verify_d "hght" value hght))
. M. ?/ U, U4 M - )
& T* w: v; Z) {0 Z9 d% l+ D6 @, M; X) j - (defun ver_wid (value)
8 s: c/ Q5 P) L/ P/ T1 J - (setq wid (verify_d "wid" value wid))" w# ~5 {$ E- r$ p
- )$ i! T; Y+ X; W* v. O
- (defun ver_xline_x1 (value / temp)
3 Y6 \3 F% n4 w0 d( z0 G - (setq temp xline_x1)
! M* @, ]: h6 @- x5 ~; `/ }5 c1 H* V! g - (setq xline_x1 (verify_xline "xline_x1" value xline_x1))
1 N) J3 R' Q0 T- p9 G# { - (if (/= temp xline_x1)
; ^' d g% J+ L3 y' \# o# d - (progn (modify_xline 0) (set_tile_dirv) )
, Y* S' y( e q - )
7 B+ H! z0 p: x. f - )6 }+ y1 b- E: f1 g# z1 y
- (defun ver_xline_y1 (value / temp)) g. X% m! ~1 t
- (setq temp xline_y1); |" u2 H, l+ @
- (setq xline_y1 (verify_xline "xline_y1" value xline_y1))
0 O. k+ J7 V$ } - (if (/= temp xline_y1)
" D# Y$ _; {: ? - (progn (modify_xline 0) (set_tile_dirv) )9 _$ {9 @2 O9 n" |: T
- )
4 u$ q& Z9 K5 x - )
8 H9 R/ e( b8 d$ a - (defun ver_xline_z1 (value / temp)% L3 K8 L! Z* M/ w9 V4 T L
- (setq temp xline_z1)2 v, b; A( v/ f
- (setq xline_z1 (verify_xline "xline_z1" value xline_z1))! |' P0 y" a8 Q p
- (if (/= temp xline_z1)) h# T9 P }$ M% A" D* X
- (progn (modify_xline 0) (set_tile_dirv) )
; R) K: \% @- s! U8 ^ - )
5 _8 y4 B( c/ X. V" H/ K) S - )5 ] m3 J4 ?5 j8 e0 i9 [- e
- (defun ver_xline_x2 (value / temp)
4 B% Q. p, a+ _' s - (setq temp xline_x2). t% ^9 |$ l4 z2 {& F0 @
- (setq xline_x2 (verify_xline "xline_x2" value xline_x2))
. L( y' T- f! v/ Y/ y - (if (/= temp xline_x2)
3 D! ~0 n) y- Z3 n - (progn (modify_xline 0) (set_tile_dirv))9 } o/ D! g& d6 _- e; k
- )
' D' l R1 R/ ?2 T" R - )
: ]) m! z4 Z* ]6 \* `: p/ l: h: } - (defun ver_xline_y2 (value / temp)8 B7 z; {! J' F
- (setq temp xline_y2)
, z# J& J+ J! y, M% y' a - (setq xline_y2 (verify_xline "xline_y2" value xline_y2))
. Q+ g" b# F% ]' n - (if (/= temp xline_y2) b9 j6 p" n; K. R7 C
- (progn (modify_xline 0) (set_tile_dirv) )
5 i( h2 R a7 s3 f - )& p, c: @ s) o, ?7 e) X
- )" x, u8 K3 ~# ?% E
- (defun ver_xline_z2 (value / temp)
3 L8 v3 _) f) I/ A) A, D1 E+ I - (setq temp xline_z2)
/ s. S" j" J' f3 Q- m+ v3 i# _ - (setq xline_z2 (verify_xline "xline_z2" value xline_z2))
% i% R, O& p) I5 Z9 m/ J& O - (if (/= temp xline_z2)# G7 P# v2 H! F. I
- (progn (modify_xline 0) (set_tile_dirv) )9 u7 n, M0 A5 `" G
- )
* w5 Z5 J: o. z( ]) T - )& `6 _6 x" v3 s+ Z) e
- ;;
2 @% X$ Z0 X% ?6 ], r2 X7 Q - ;; Functions that verify tile values for angles5 l }% I. K) c0 L
- ;;9 m6 [) k0 t4 ]6 _; D5 z: y
- (defun ver_ang1 (value)
5 g6 J/ l7 X! ^0 J- w5 e8 E( `! ] - (if (setq st_ang (verify_a "st_ang" value st_ang))& s* J* H3 f" Z" s0 j
- (calc) J0 M, M% \: ] f7 N0 w) f1 ~
- )
+ R- o8 _5 o+ H - )
% [5 H9 I9 m' u - (defun ver_ang2 (value)
& v' Y# w( b- L% O - (if (setq end_ang (verify_a "end_ang" value end_ang))
6 w2 ~+ i4 m# J+ C, q - (calc)8 y" Q$ V" f2 s
- )
1 _- g: X S, x$ Z - )) @. G( O9 }) L
- ;;
$ ], a8 x- ?+ H% C2 ]' M' A - ;; Verify tile value for ellipse end angle. Handled slightly. @7 I8 z0 J. l: Y; u. C
- ;; differently than the other angles. g" k2 E. O$ [: \4 I- p6 T
- ;;+ ~" Y5 |, c- O- G% V
- (defun ver_eang (value)
: W% V4 x; u0 v - (setq end_eang (verify_ae "end_eang" value end_eang))
* g+ w) z. K" V' z3 U; }# E, U6 O8 s - )2 \+ u) r9 U' C6 k9 S5 ]
- (defun ver_rot (value)& p- k4 T3 U9 j, j% G5 { ?# q
- (setq rot (verify_a "rot" value rot))! |* ] i% [& J4 C: S
- )
I5 r" J+ q! q7 s - (defun ver_obl (value)9 S$ S' }& f% [# x! Z0 A
- (setq obl (verify_a "obl" value obl))
& I9 A) I5 e/ H3 ~$ n( ` - )
( V5 F9 e: b* X+ G/ V - ;;
5 v6 o2 I `3 y4 y - ;; Function that verifies attribute tag field for null string,! F& l: y/ b5 H2 h+ p
- ;; or a string that contains one or more spaces. Tile value! |) B! r1 T$ ?9 x
- ;; is also converted to upper-case as well.
; W. o E+ t9 q l5 }% ` - ;;
5 P Z1 b' F$ ^' V9 Y - ;;
, Z# ^/ [5 k/ Z6 Y8 P - (defun ver_tag ( / tval)
+ [8 X. k" T) @3 e" H" I! { - (setq tagval (get_tile "tag"))
1 U; w2 U" H; \ - (set_tile "error" "")
' L& |9 {: l6 g - (cond$ k5 z6 S+ O4 r& T
- ( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))
* v( c' Y! w: ] N9 j - (wcmatch tval "* *"))2 z6 s) Y" z# {( T% r' [ Q3 b& @
- (set_tile "error" "Invalid attribute tag.")
8 l* _- A& ^1 ~ - (mode_tile "tag" 2)
, y2 V$ U" H. }2 V9 W - (mode_tile "tag" 3))- ~2 a/ B$ u: G8 M7 \
- (t (set_tile "error" "")
3 u W! e- G# [7 X2 b6 O1 t: _& n - (set_tile "tag" tval)
$ {: p- I! v- h - (setq attag tval)))
4 n3 _1 J$ N7 h/ ?4 X9 g/ w0 x - )/ r$ x" N5 F5 ~% \: F+ Z1 }" `2 G
- ;;9 D, |$ C9 H( J3 J( V3 r& R
- ;; Calculation functions% X8 v5 a4 \9 C* W
- ;;
. N( |" h6 D5 U: @, J! h5 |' b* R- _ - (defun calc ()+ [. Q# m$ y/ \" p& [# y
- (if (= etype "LINE") (line_calc))
0 H9 Z; H' E5 J0 e7 u - (if (= etype "ARC") (arc_calc))) v; k% f5 c- C, ]# k
- (if (= etype "CIRCLE") (cir_calc))
. G! e5 |# k. M2 L* R; ~& n - )
) W) a3 V0 H6 O* P, o - ;;
7 u& @ D9 O& y0 [$ S' q - ;; Calculation functions for lines, arcs, and circles; q( f7 G. @& X* `
- ;;% B2 q, l- T) ^- c ?
- (defun line_calc ()4 ^3 R( l, v% A X. S
- (setq stpt (list x1 y1 z1))
8 p7 B( {: k) G& X/ i* H5 L - (setq endpt (list x2 y2 z2))6 ]$ f7 f! k& Y
- (set_tile "delta_x" (rtos (- x2 x1)))3 b& f7 P7 u+ b9 G- f3 T
- (set_tile "delta_y" (rtos (- y2 y1)))
6 A, X5 ]+ u# |' F: ~# r# ^3 I - (set_tile "delta_z" (rtos (- z2 z1)))
& j+ k* D1 u1 c- J6 @ - (set_tile "l_length" (rtos (distance stpt endpt)))8 ?' s2 i: t2 J ]! ^ D* s* A
- (set_tile "l_angle" (angtos (angle stpt endpt)))5 p* a) M+ H' K. U+ b4 `" L
- )
: \) p% D5 `: W- _. R - 3 v+ I' I! d+ y( Y
- (defun cir_calc ( / area units)
7 t4 z0 c& V& D8 ?6 S( t( _ - (setq radtest radius)
! m4 Q8 i6 I5 e/ a1 c - (set_tile "Dia" (rtos (* 2 radius)))
; f& G. D( V5 C0 _' Q& F J$ h - (set_tile "Circum" (rtos (* 2 pi radius)))
2 ~& e# w+ g! d c4 Z8 d0 c - (setq area (* pi (* radius radius)))
Z; { S7 N5 W. T8 c5 R - (setq units (getvar "LUNITS"))# P; {0 G6 y$ ]0 l2 n
- (if (or (= units 3) (= units 4))# f% `7 H5 p3 B. @, q; P
- (progn8 O8 C: Y, f V5 F
- (setq area (/ area 144.0))
4 X: o$ p/ h. I9 J0 e/ G - (set_tile "Area" (strcat (rtos area 2) " square ft"))
) ~0 X) X0 W9 f! n3 c - )
' G5 Y- ` O. I" N8 w1 v$ z) ] - (set_tile "Area" (rtos area))( ^& j X, W& ~7 Z
- )
# M- d0 S3 _3 e4 j. r6 H% ? - )) D- k7 B/ a- C
2 q1 ^' L& P- [- (defun arc_calc ()/ _4 Z8 A$ m* K: w* n' @
- (setq totang (- end_ang st_ang))
/ K3 C+ i* H+ g; r3 |4 A: L& y3 G - (while (< totang 0)
+ S9 t" ?& l; b: ~ - (setq totang (+ totang (* 2 pi)))
6 j P) @ P+ f& F; s: b2 e - )$ l. s7 f, p3 {- f
- (while (> totang (* 2 pi))
5 V6 X& y* t. \; q: g# f+ W - (setq totang (- totang (* 2 pi)))
, j+ }- E; K% C( ]" q - )+ ^; T/ s* S1 s: F
- (set_tile "tot_angle" (angtos totang))5 j% X- a L; n& }; H2 Q# x9 E$ e3 O
- (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi)))); a3 E: m9 i# S S/ ~
- (set_tile "arclen" (rtos arclen))6 @% E% |* g, [3 W. v5 w. a
- ): @. M) x" I# G
- ;;/ W8 L9 c" S: M1 Z% p- s; H
- ;; Calculate the major radius, minor radius, major axis direction.
" g2 K1 Y: R+ C* R: M; S - ;; Get radius ratio. Convert Start, end parameters to start and end
) l( H) I+ o5 c& Q3 Z - ;; angles. Save Major Radius value in "old_majrad" in case the user% v3 H6 ~/ s* R- e" b H0 I2 L9 ^5 f3 z$ B
- ;; chooses to input a new Major Radius value later. It's needed to8 B T& C8 n7 \( U
- ;; calculate a new Major Axis Vector value.0 ?- M4 M- i* U3 M& U) z3 A
- ;;1 h- e3 ]4 P' p
- (defun ell_calc ()/ d, e# A* ^5 c/ ^
- ;; Get major radius from the major axis vector.
- C6 Z& I2 m7 ^# s( I# R - (setq majaxis (cdr (assoc 11 elist)))5 r* d, A9 U# B. K# f1 B
- (setq xx (car majaxis))0 D$ R$ H1 K, s" q
- (setq yy (cadr majaxis))/ J* N9 j# l! j5 @& h$ S( p
- (setq zz (caddr majaxis))' v5 E$ _" ^; M% D7 q8 v
- (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) )))8 H3 @/ Q) q' w8 q
- (set_tile "majrad" (ai_rtos majrad))
. V! y$ \. R! G2 s/ y - (setq old_majrad majrad)( P. A* S1 a- E
- ;; Get radius ratio- D) M. A2 S* B8 |) o0 ?
- (setq rrat (cdr (assoc 40 elist)))% R8 X }" J0 {% ~% ? K: G- E
- (set_tile "rratio" (rtos rrat))0 q2 ]8 R& x$ I& v
- ;; Calculate minor radius
( z B2 E0 b: ? ~8 V# D' [. B0 l: v, ? - (setq minrad (* majrad rrat))# U. t, T8 v/ ` K
- (set_tile "minrad" (ai_rtos minrad))
3 ~+ d$ ^6 p& e# L! r% c$ j$ O - ;; display major axis vector. ~( n# j8 L9 W6 e5 x; [8 l9 W
- (set_tile "Majraddirx" (rtos xx))
& @7 M# A2 e% O) O- V. A; i: w1 k - (set_tile "Majraddiry" (rtos yy))+ u7 E' i. R) N$ C) `6 {
- (set_tile "Majraddirz" (rtos zz))$ p- B- J" i& \( j9 J2 o
- 5 C# V/ X- y% `2 i% P
- ;; Convert start parm to start angle2 S& m5 x& R# J, J1 G: d1 g; Y. @
- (setq stparm (cdr (assoc 41 elist)))
2 B- |5 B, j$ w5 T9 ]' |0 K4 x3 H5 L - (setq vecx (cos stparm))
9 h7 r" E' |) J/ V, [6 U M6 l4 V4 G - (setq vecy (sin stparm))
) Q& E& k% ^5 X$ I1 l7 w; v2 C - (setq st_ang (atan (* rrat vecy) vecx))8 l p' ]8 W0 c5 s3 G z! N6 r1 ?" }
- (setq tempst_ang (ai_angtos st_ang))
/ Y, h2 X; `6 q. Z - (set_tile "st_ang" tempst_ang)5 f# J2 N7 n5 ^& i9 g* h% s
- ;; Convert end parm to end angle. If end angle evaluates to 0
9 k; Y$ p$ j" [. x1 y - ;; degrees then display it as 360 degrees.' O* j' \. y# r% i3 l6 i* a
- (setq endparm (cdr (assoc 42 elist)))4 y( F m$ G! R' M4 _
- (setq evecx (cos endparm))9 v1 l+ I9 V1 J/ c5 ~' P9 b
- (setq evecy (sin endparm))
' }' ~" l& v0 E. k" E, f; Q0 b+ P - (setq end_eang (atan (* rrat evecy) evecx))
9 u0 R0 e5 N8 Z7 v& E' f - (setq tempend_eang (ai_angtos end_eang))( j/ |4 C8 B# R8 [$ Y2 V, @
- (if (= tempend_eang "0")$ L, \& S' ]! J3 z' C/ W
- (set_tile "end_eang" "360")4 t. o! f0 @9 E5 Z! k
- (set_tile "end_eang" tempend_eang)
5 ^4 t4 u% \* _) H' a/ Z - )
+ N, C/ v% I) W - ;; Get area of the ellipse.
( {" ^1 E1 J+ ~: Q* @$ k - (ell_calc_area), ?/ @0 m+ g% t" V" L: A
- ): K/ }- a3 B5 _+ }6 a, c2 B6 X3 C9 f
- ;; Calculate area of ellipse. If it is an arc then
/ g6 x$ k d B# ^! j5 ? - ;; grey out area display.
" }( v4 K# n9 i* ~( o - ;;
% \5 X* o7 P6 n& K - (defun ell_calc_area ( / area units), i1 z. f9 r- Q& d0 T% ?' R7 J
- (if (and (= tempst_ang "0") (= tempend_eang "0"))
: T' W: }* W& _- k0 } - (progn9 p3 d. k% k$ Z, G2 N9 H( N
- (setq area (* pi majrad minrad))
4 N0 r6 a% U) Z! j- t2 Z5 V - (setq units (getvar "LUNITS"))) x7 e- a0 I5 B4 i
- (if (or (= units 3) (= units 4))0 N1 j+ d& r' {& V& F( V- Y
- (progn
% @& P* z. Y) A; p. j - (setq area (/ area 144.0))
" ~ N8 h1 d }* S1 p8 n5 L3 a3 n - (set_tile "Area" (strcat (rtos area 2)" square ft"))9 ~' G" [) r; j- v
- )
" @% {% O z! k6 t3 }' L! { - (set_tile "Area" (rtos area))
0 a; D- b* r' M7 N - )9 c, q2 h5 Q' K2 p4 V3 S! s6 Z
- )- V% } k6 i. B8 s6 E; v. R0 D
- (mode_tile "Area_text" 1)* [' a( c* g! Q1 I. ]5 q( j4 i$ |
- )0 I/ @. j' q$ E& O: h0 ?1 b
- )
) ~( c, c1 m* B% H+ q& W; u3 i! f - ;;
0 ~/ x6 |& y% A8 ?4 T - ;; Calculate new values for ELLIPSE: ~" N, s2 Z N4 s @0 w
- ;; Minor Radius, Area
4 |( c/ k$ L+ H' H9 x, _ - ;;
& O; m6 t! U, I& p) s - (defun ell_calc_newval (ell_tile) f. k' D' i5 o0 H! F
- (if (= ell_tile "majrad")
3 {1 r" ~5 n+ g1 L* { - (progn
+ @2 a% g- q3 {+ `5 I( z - (setq rrat (/ minrad majrad))+ |! p" v/ v* I8 i* T o
- (set_tile "rratio" (rtos rrat))
( \" Z3 ~1 ], [# v5 W - (ell_calc_area)
. L- q8 Z, b8 v' _5 f4 ]+ x - )* c8 |) u5 L/ n z! ^: _" @/ B$ n
- )+ M% B) K4 m( t3 N; C3 |
- (if (= ell_tile "minrad")2 Q/ T* F- U w5 Z
- (progn
9 E' U% P4 W* k1 M. j - (setq rrat (/ minrad majrad))( o+ z& U! P3 F1 [& @: o0 N/ K
- (set_tile "rratio" (rtos rrat))
7 F: I0 T( [" c; E5 f( P - (ell_calc_area)
- A N9 L- a; H - )2 O8 P+ Q8 Q7 E( j( d2 \
- )
. c( M& \1 ~( p$ ] p - )
, r9 ?9 [; \6 ?$ `* Z5 j4 Z - - w$ \5 L: ]) I: C) t: D7 |
- (defun set_dimen_props (/ loop a stl txstyname)
' B* B, @' q: e
+ |% K) f$ Y* p& b6 }- (setq stname (cdr (assoc 3 elist)) ; get style name
) v& ]/ L t' |7 S, ] - stl (tblnext "DIMSTYLE" T)0 j# u) H. k9 s
- stlist nil)( Y* ~- q" z4 P6 p1 b
- ;; Get all style names and list them in alphabetical order E5 Z# X& H% C8 I8 L$ Y
- (while stl
; H4 q1 U0 f; o4 R% s0 l - (setq sname (cdr (assoc 2 stl)))
8 e5 k2 M; |4 w! c% l4 j - (if (/= (logand 16 (cdr (assoc 70 stl))) 16)" M4 ]9 S& g `. {6 b# D( X
- (setq stlist (cons sname stlist)))
) R, |$ A, r x( N" y2 z - (setq stl (tblnext "DIMSTYLE")))$ w: A- n* v! @5 ~9 W& q* z
- ( m) R8 e: r S; Q1 z
- (setq len (length stlist)+ w! X5 a) I* ?1 Q
- loop 05 a( e, l% |: U0 m9 n+ }, C8 ]* p
- dimsty stname
4 n* v3 d9 y l6 i3 ]( I3 m+ G" U - )* j( {1 i# t6 L, q; G0 s1 @
4 F# h( b! q$ y- ;; alphabetize style list, depending on maxsort
6 j! l& J' f% U) [7 m. I" O - (if (>= (getvar "maxsort") len)
" z4 K2 B% Q2 o. k - (setq stlist (acad_strlsort stlist))& O' g9 C- C* g$ F: N8 J) a6 f
- (setq stlist (reverse stlist))): E# [ a1 V& s3 x, L1 |2 \' X' S
2 A# b9 K0 d8 T8 d' L8 Y) [- ; *UNNAMED style (dimsty = nil at this point) is replaced with
/ Z! c* k6 T" n, Z& h - ; the current style. After R13, we require dimensiosn to have a
B3 k0 g+ E+ W# Q - ; dimstyle, so we plug any holes where we find them.
- R# s9 Z* z9 K" }( h3 W; g% ^ - (if (null dimsty)/ _& S: b; r. @3 f- I
- (setq dimsty (getvar "dimstyle"))
& B6 V1 q, s0 h# J - )
0 t1 Z# W' q z, D% g - ; Show the styles in combo box0 d! x( Z3 b( @! a D* {
- (start_list "mod_style" 2)2 \, G/ N, t' t, @1 M" X
- (while (< loop len)
) w3 G+ J3 C2 G+ Y8 V1 A - (add_list (nth loop stlist))( Y, Q4 a$ ~% J w5 E9 `
- (setq loop (1+ loop))
" `# a, z; c" m4 W - )1 F$ Q; ?' Q" ?) V. A
- " k3 b8 ?. ]& k; z4 e$ d( d
- (end_list)+ B" M' X" u, s7 }
, r9 P4 p5 V9 d% e0 C- ; Hilight the style name of the selected entity4 R* g# {& _6 r1 w4 S! l
- (while (and (< 0 loop) (/= dimsty (nth loop stlist)))
) F: @( E) p6 i J8 }4 ]" |, c @4 ^ - (setq loop (1- loop))0 G8 y# r4 f" _2 j( n, ^6 ~7 \
- )
. p2 @$ ?6 W* X7 I3 Q0 W | - (set_tile "mod_style" (itoa loop))
: y' b: i9 b( S# e+ `
+ P+ G8 Z# P8 R5 |- ; The following is the list dimvars. It must be sorted in the same
$ g( S0 P& g+ K- X- {, m' ] - ; order as the resfub returned from DDIM (ADS module).
# _8 o8 ?6 J! G
! J' I; z- e/ d+ M. S: j- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
' W! Z" @+ j- u - "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"& \0 x& c$ c7 F6 r7 j# R. A
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
$ F4 w6 n0 \2 m4 B9 m$ H8 a7 ^ - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"4 w! V2 A% r: j1 [) M2 [! ^- O
- "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"7 e$ o# |* m2 k' s/ @
- "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"
+ S) q+ @# v3 v& h5 O - "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
8 n K- B; \* [/ D6 Y - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
2 @# u. }1 H7 O* a- @ - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
8 n! j2 d8 Y8 _6 |0 p - "dimdec" "dimtdec" "dimaltu" "dimalttd"
]( W$ [% D4 I. ], k2 y! Y3 b2 M - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"
& l( f4 m, w; n0 D4 M - "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"! v; |1 U$ t9 z' Q( |# x( @
- "dimtxsty"
/ m/ \+ t8 j0 g - ))
8 g+ [$ C$ e& x2 w6 T - (progn
9 d, ?; l' J0 L, Q+ S+ a - (setq sv_dvlist (ddimen_getostate dimsty): g$ z# ]( j8 [
- txstyname (assoc 340 sv_dvlist)- x0 P. N* g$ X, s
- sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname))). c. V6 `# {: v1 ^' O+ q
- txstyname sv_dvlist)
, \( K, e/ g5 {: I5 }7 E - dimlist sv_dvlist( w* @( s: f( ^; e9 Z, l% ]
- )( A/ ~$ s! y7 ?* L+ ?( ]
- )
! q7 h, F0 ^6 T4 B) i. e( n: g - (if (= dimtype "DDLEADER")$ J( ?2 O* |4 y1 d& \
- (mode_tile "mod_format" 1)# Y8 m+ W5 @& l2 p
- )
3 }$ {5 m; N2 ?- Y6 `5 H8 u W - (action_tile "mod_style" "(setq dimsty (ddimen_style))")2 c( ]8 w8 T% _/ y6 ~+ v# {9 s* z
- (action_tile "mod_text" "(done_dialog 4)")' i# c% o4 ?& O2 d4 f, z2 w
- (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")
6 p! X3 t U# Z: \2 K. W4 a - (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")7 R4 {( l* Y+ |: ~/ n/ M
- (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")
0 O, p' V: g3 C6 `0 [/ i# \ - (action_tile "accept" "(done_dialog 1)")
- |! l7 Z) t; E& e; z - )5 v# B2 m+ z, D& D
- ;;# J& ?: H& o! p& m5 W
- ;; Get dimvars that have been restored.
C7 O0 Z* L6 O7 X! e5 j8 f - ;;
* \7 e' g# r, A/ |* X - (defun ddimen_getvars (/ elm dvlist dv i)" B* B4 U# W% w/ x
- (setq i 3
8 O5 P3 }5 ]7 \5 X7 b* q& U9 } - dvlist (list (cons 0 "DIMSTYLE")
6 n' N6 n) B" p! E# u3 X7 S - (cons 2 (getvar "dimstyle")) (cons 70 0))
8 c6 j; F# n% h9 t9 ]: J" }$ ]6 ] - )
* G& M: l; R% W/ H: U - (while (setq dv (nth i dimtbl))* k$ S5 k, A( @! v) U, o1 K
- (setq elm (getvar dv)
0 Q# u9 B; x8 [/ e - dvlist (append dvlist (list (cons dv elm)))9 U5 y& D* F% |- w. I
- i (1+ i)
{+ I5 X4 M3 a- K2 ]% P - )7 |# K2 J9 C% v3 p9 f
- )
0 R. e+ V2 |% W' }, t6 W4 {4 M - dvlist
4 r+ K5 ]7 w8 ^. m" Q7 ?( G - )" T0 O7 T" f+ y
6 T' h# A4 t$ i" u- `; a- ;;
! A' d# p1 k: ], v - ;; Get the original states of dimvars. This is for DIMENSION entities.
0 G$ _( p7 |3 S: n; d$ T- I - ;;
# ~* v! e( W+ F# ~+ V. H - (defun ddimen_getostate (dimsty / dvlist elm i dvvars)& p$ B& `3 V/ Q& r# a7 G: E
- (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list
8 M! @! ~1 C3 r - dvvars (ddimen_getvars) ; Get dimvars for that entity
. H1 r- U6 s1 _9 [4 a+ O - i 1
4 p5 v# s9 @& Y2 e - )5 T0 Y c. O1 z( R! w0 Q
- 8 ~, p' ^ _/ e/ G g7 _ G
- ; Create a list that contains values of the selected entity.( s5 F" G, p5 G! E
- 1 [" p C2 u Z/ [! I
- (while (setq elm (nth i dvlist))8 N$ q2 I3 L- k& [
- (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)% o! V& [# `, f' x& ~* z0 A
- i (1+ i)
T' R+ g) Z3 [2 U( ^3 A- W1 R - )# N& y; i3 Y6 B# m( f
- )0 d1 }6 l' o3 Z2 b" `
- dvlist# m M4 i7 F8 }1 w! U6 i; z
- )% r' s1 j2 j0 o' V6 R) U- L' l
6 `3 F: K8 v; X9 C( }# l- ;;( |: ?0 N I. D3 M& Q' Z; Y5 ~
- ;; Restores dimvars of the selected enity.
) H; q* M! b _. {3 c8 _5 ]3 j: I - ;;& M+ H$ n1 N3 i& f! K; [' N9 I2 R. e
- (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)! j* G/ T% F. ]0 g* ?& i- T
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
; p9 C$ Y. L G) ]4 P: d" B& w% O - "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
% a1 S: H; y/ m1 c - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"# t( @& M5 L$ A' } ~" }% |
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
' C) s3 H8 P! Y - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
* M/ F% u1 `! E a- { - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"
! \) H* ?5 j# j2 `/ P+ x - "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
; ?7 w; Y% T4 k+ T( r' I' h" Y - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
1 L- w$ g1 i, b - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"& A+ c) F% M% }( a9 m6 q. W
- "dimdec" "dimtdec" "dimaltu" "dimalttd"
# A4 H5 ]+ Y. I- z8 P; z9 g( j* m8 u - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"
/ A1 M6 {; S9 k' b% c - "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
, f5 @' b/ g- d( A - "dimtxsty"8 l% B$ K5 W5 t6 }6 j- F& }3 A+ u! Q4 F+ N
- ))
' o. X. g2 U: t# T - (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings
6 ~) C( S9 Q! O& H& J - (progn
2 u. }% ~4 o* _' L7 l2 M( n" D - (setq en (cdr (assoc -1 elist)))
) P6 q" ^% w7 u- g - (command "_.dimstyle" "" "" en)
3 P8 O5 W. T8 l5 F+ x/ L - )+ `) O0 s" _6 y# |5 i9 G( x( x$ m; j' i
- dimsvcurset" P4 K9 J# G c; b: F
- )* I- [- P8 z6 }! e5 v
- ;;) ~. A7 p7 z" ^+ a2 B/ C! K
- ;; Modify Leader
! O* @$ s8 X( r7 V4 ] - ;;/ [5 o* z4 V# w
- (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl
! N( y3 |& k0 d8 y - dimsty dimlist dimtext svtext dimovr sv_dvlist stlist7 Q* n4 s# r# U0 J/ B
- dimtype dimsvcurset); n; W1 f! a# ^5 A# ^0 z2 Z
- (setq dimtype "DDLEADER"
8 `* Y$ L l0 ^9 n% U$ i - dimsvcurset (ddimen_dimsty_restore)/ {# Q+ @5 h8 B, Y& p
- )
B/ c h' J- E8 L - (if (not (new_dialog "ddleader" dcl_id)) (exit))
7 v B& w4 O& {4 ]( l, K! w$ { - ;; Set initial tile values2 Q2 q2 m" L! `2 `
- (set_tile_props)7 r) t) o! X4 t1 v' m
- (set_dimen_props)
" v% X! J# n& L7 n/ o$ j& N+ q - (set_tile_handle)+ _7 {# K9 m% k
- ;; Define action for tiles" c% [( m. G/ \4 f
- (set_action_tiles)
, S' U: V& x3 o: I8 M! l - (mode_tile "mod_text" 1)( b5 ^( ?/ s) w- @9 n
4 e6 ]0 B% I3 L. t; z; N- (action_tile "mod_style" "(setq dimsty (ddimen_style))")8 ~1 b' M6 Y% a
- (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")
2 O+ f c$ [# ?/ f( r# X% b - ;; Get ARROW and TYPE.1 z& x8 j d& h5 Z% t" j: a8 r$ c$ s
- (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))* }9 f& J* N2 H1 T0 c* K
- (if (= 1 (logand (cdr (assoc '72 elist))))
4 I" ?7 ^2 V% [. o3 S# `3 T1 ` - (set_tile "s-s" "spline")9 i3 M% t0 G9 c k) \; O
- (set_tile "s-s" "straight")
5 w1 r9 W% Z, ^: A& ] n2 | - )
7 l m2 z" h5 C7 C+ ]" H& q5 {- ^ - ;; Start the dialogue.
: Q& M/ y4 H. q - (setq dialog-state (start_dialog))
0 l, k( W5 s4 _6 B2 ?) x7 n - (if (= dialog-state 1)4 T) \" ]5 ?* e7 u9 X6 L3 c0 S% y
- (progn
. y1 o4 w1 q y/ w& f - ;; update the style
" A6 q- x2 J# ] - (if (/= dimsty stname)% u5 ~$ x4 x# F1 I# M
- (progn
+ l4 A8 v* n: X7 b& d+ y - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case2 f" R' c- ~' N1 ]" l0 c, n9 ^
- ; doesn't have it.( X: [; k+ h5 {
- (if (null (assoc 3 elist))
+ `: _7 a% k: @+ f0 q7 [( | - (setq elist (append elist (list (cons 3 dimsty))))$ N0 I+ Z. \& ~- s/ {/ d( q
- ; else just replace it.( j( w! e2 S5 G9 K+ J* c6 k
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
& }7 T# S X% e% e - )5 ?! n3 G2 ]; _$ D4 L5 u
- ; refresh sv_dvlist with new dimstyle.+ ?; n3 O, N4 m; v C8 e; C
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
' c; f3 \$ B7 ~ - )7 ^: Y1 K; o# l) D
- )
4 @7 v" R6 Y! {* e3 D7 x, b: C, R - (if (not (null dimlist)) ; attempted to change dimvars$ r: ?1 M9 r6 O4 t& Z6 q# o
- (ddimen_complist sv_dvlist dimlist dimtbl)7 F- J a6 b" ]
- )/ c- w3 V& U6 y& R4 e# O2 ^/ s3 w8 e! G7 E
- ;; update for ARROW.
' {% [2 ^$ p9 t - (if (= "1" arrow)
8 h4 s7 \( A$ w - (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
* `3 s- \: c; C5 d; o - (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist))$ Z% K& i6 h7 E4 M( f X
- )! G$ X0 o0 @8 D# z& {% O5 R0 [4 H
- ;; update the TYPE.
. _, n0 u( a& p6 J8 h0 S. [) r - (if (= "spline" leadtype)9 C! D4 M4 |& s! L
- (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
+ d. e# K& ? b' C- n( @/ B - (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))) i. V) n7 N* y1 s7 c) e; w0 _
- )# |$ k4 ]6 k! x' `: ]2 x
- (modify_prop_geom)' P: d- P. V ?& ]4 ?( A) ?0 f
- ;; update the Color
7 R- A0 u. f, Y# F5 O- V) w9 W - (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))- i7 n5 c8 s/ q2 V# X$ m2 U
- (entmod elist)2 D3 n6 _& B; z
- )9 ^9 ?! i E+ l* o2 ^; z
- )# i7 O ]+ `( M
- (ddimen_setvars dimsvcurset) ; Prepare to exit. J0 m, m# k% R8 E) z
- )
! K* p# I% T2 x1 G5 v - # R$ k: _, F. L9 M8 ~; h. w
- ;;
: N$ x+ O" d; Z% ?$ q6 U. \* \ - ;; Get dimvars of a dimstyle with overrides.* Y( w u. q! o' q
- ;;
$ _$ `# R$ X, W: W$ R9 r! C( S+ t f - 4 ^7 |. Y! U! T) e
- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)
! r* G7 v7 @. k5 i$ m - / S, Z8 N. E! e- c% N* W- c
- ;; Get override information for the specified entity.0 b8 }& A* `: K$ [( B
- ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we5 s; p8 i8 M/ U9 T7 k( f
- ;; must obtain override information through this tedious operation.! r* G) ?: |* ^9 [
- (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))
! l+ d6 u" t g: F* K - dvlist (tblsearch "dimstyle" dimsty)' b! M6 k8 A" e) D' x5 o2 S
- i 2
; Y; ~& h2 u8 ], A - )3 H# q u$ [9 P9 ~! r! h
7 R4 h) n" p! i4 C ?. R- ; Update the list with overrides if overrides exist.
8 Z c" B) b; ?! W8 t2 o; T
0 P- A4 C7 ?8 p- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr))))
, X/ x! c: s9 g* ]0 }6 d - (progn. P% s8 \3 n. f1 O+ C% X
- (while (setq elm (cdr (nth i dimovr)))* s0 W& L I* u5 G" o
- (progn
7 i& k$ g# M( a, K; A, b G - (if (or (= elm "{") (= elm "}"))
, ?- B; H* b r& g - (setq i (1+ i))) Z' w; J% H4 w6 ]0 X! p7 u: V
- (progn4 j; f r/ q6 E# N) Z
- (if (or (and (< 180 elm)- C' G, R- k! @8 _
- (< elm 190)
/ Y9 `& Y3 L7 L* f K2 j - )3 ^& Y- D4 N- I
- (and (< 80 elm)
" _! Z9 b' H0 T* g4 P - (< elm 90)
1 `8 i! i) w/ U8 @$ X. {' T - )
3 C9 e; q. ~8 v: n' K! L) L P - )
) v( V o+ z, W1 X. ]+ V- b( l - (setq elm (- elm 10))- n3 n4 X) H! k% d5 }
- )9 }1 v' \! J$ p. M# y9 M/ V3 h
- (setq i (1+ i)/ y7 u* R, L5 I8 g$ u
- elm (cons elm (cdr (nth i dimovr)))
) r+ G' z3 m* m. ~5 K1 W: Z R - dvlist (subst elm (assoc (car elm) dvlist) dvlist); }% q: `( y7 R! \8 [/ w
- i (1+ i)$ O- A( b$ T2 _6 ^% t R
- )9 I' }5 m; u" ]8 Z
- )
4 m3 L K$ T) [ - )$ F0 v4 o, q- V3 o& D- [
- )
0 J. S; @5 o4 B* y$ P3 z - ); G) t: a& k* X
- ). W4 u& u1 {# J S
- )( _ u3 y, q3 f# a. o
- dvlist% B" p' f& w/ }4 N7 `
- )
# K% H: _9 `% h, Q; p, d0 R P
7 s2 @! I# _% v8 r7 I2 N( L- ;;
1 ^) y& p7 | m& S: c- N - ;; Modify POINT
2 r" _ t, T o. \, {2 ] - ;;
* }, N* `' ` Z8 { - (defun modify_point ()
4 L1 W) W: t6 l* A' b7 @ - (modify_properties)6 Y, S# P% k, m! j! X" T$ W& z
- (setq pt1 (list x1 y1 z1))
# O- {2 } f: S2 Y - (tempmod pt1 10 0)
5 m0 r6 D. V# ?6 b - (entmod elist)
# C% Q% k' P6 G: C4 l - )6 Z0 Y7 b" q$ }6 U$ Y+ W) w; U. T! c
- / }" b2 E$ _" o- q/ _
- (defun ddpoint ()7 X6 u2 r8 _$ e) x
- (if (not (new_dialog "ddpoint" dcl_id)) (exit))/ x: S9 B4 a$ x" i
- ;; Set initial tile values
9 ~# P9 \2 S- i - (set_tile_props)
" j7 k) S) f. u7 i - (set_tile_handle)
A* ]. R' ~- o - (set_tile_pt1 0)6 l0 g- F5 o/ p- E# p
- ;; Define action for tiles
' r: o t! I# H - (set_action_tiles)
. L- X, _, g0 c. i - (setq dialog-state (start_dialog)), Y4 B) _0 y- s" E. p
- (if (= dialog-state 0)
& e2 E+ ^1 t X) K - (reset)
; r! y: x! V" C# { - )
& x1 q% O y3 V - (if (= dialog-state 3)
) u& N, @! R0 k: w! t' P1 E - (progn/ m/ D5 s1 d$ z/ `9 \$ v
- (modify_point)
" }+ y, S, ], f, N - (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))
) `$ q- J+ H0 P5 T& F+ X2 S - (ver_pt1 0)5 g$ p' G0 y) {0 W3 }- N) t& @! j
- (ddpoint)
. L( c9 W4 L% G# U# u - )1 X1 L4 m' ^% g5 a1 w6 ?4 ^4 L
- )
# s' x. |. C& Q) s. ` - (if (= dialog-state 1). @1 V2 j' U3 v4 {' z t
- (modify_point)# ] i" r' O" [2 p( b1 ` @
- )
; F! L1 A% x6 f8 R - )
' ]9 x) d& D2 t - ;;
5 n, O$ @5 ~/ T5 P3 H# z j$ ? - ;; Modify LINE
! m, [8 k! B# E/ X& j8 `! g - ;;
$ S- r: E) N% W- u |: z& @- R. P" Y - (defun modify_line ()" c! O0 R) C" w$ A/ H/ C' {
- (modify_properties)& S( X8 u: \5 R$ `+ v+ b& x
- (setq pt1 (list x1 y1 z1))4 _% N2 X' Q8 T8 A% A; d& [
- (setq pt2 (list x2 y2 z2))
8 s5 \, q. o V- x5 h, w* ~- x5 ` - (tempmod pt1 10 0)/ k1 J8 `, A/ x
- (tempmod pt2 11 0)5 [$ }' C1 l& u! d5 s; w$ y# W0 v6 W
- (entmod elist)5 J( i6 }' [1 C; ?0 I% c
- )
, |2 E' a2 [" {$ r1 \# ?& D4 d1 q# ^ - (defun ddline ()
( y8 }! x f, t8 e* P - (if (not (new_dialog "ddline" dcl_id)) (exit)); h2 y1 }2 `0 T$ E2 I
- ;; Set initial tile values, b! A5 o8 K+ S1 i
- (set_tile_props)
0 H* \* D9 y+ a$ v - (set_tile_handle)! {1 E o! {9 G. x# y/ \. r
- (set_tile_pt1 0)+ i: A4 S' l+ @; q% o5 D0 ^6 H
- (set_tile_pt2 0)
/ P" m/ Q. L1 M+ d3 a; y! r - (line_calc)
- D5 ~0 w! {; i8 ~2 y2 C - ;; Define action for tiles
5 {; r) V/ I. O) j - (set_action_tiles)2 W+ o! ]$ g9 P6 S8 U+ a( g
- (setq dialog-state (start_dialog))
4 H- i/ R4 [& {% T R# U2 ]: K& t - (if (= dialog-state 0)# v* O3 B v$ G, a) e$ R | ~
- (reset)
0 @: V/ c/ N; s) {6 d( L - )
3 y7 L) W9 d1 P - (if (= dialog-state 3)) H2 o) t+ s! H6 ? |
- (progn
) E6 ?/ r5 Y+ T, Z0 N- K2 k3 ` - (modify_line): a: A- C" ^( Q+ {1 E
- (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))& ?2 T& ~! P- o+ [9 L
- (ver_pt1 0)
7 l; J9 | U+ ~5 K - (ddline): ]3 r8 R) c; n( j! q* K
- )" n# o9 ~4 a: N, |& Q$ e$ }
- )9 L# G1 z3 l1 C
- (if (= dialog-state 4)
( U$ C: [9 m% F - (progn7 H6 O4 W, h N" K5 u1 c
- (modify_line)
) w/ L5 v8 H6 e8 N! w C - (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))
) d/ k. H5 ~( Y" N( g - (ver_pt2 0)4 C8 [3 B, p% K5 E
- (ddline): e" g4 C5 Y- Y0 w
- ): V' E" i2 e. R, ]
- )4 E; o: l, K9 l; g
- (if (= dialog-state 1)
( O- t; z U |* g: b. [ - (modify_line)
6 P6 ~$ W6 f) E% \ - )
0 H( W, m4 J% M! m - )/ a, N* E! A. f$ S
- ;;
/ W- r1 w2 r& e% U* P; y - ;; Modify MLine
+ d: r1 @, h1 U- n: o) l w - ;;
/ _" |) x0 T2 B5 C! ~, L; B - (defun modify_mline ()
# x" s2 f T; M5 s" e+ `( | - (modify_properties)7 F9 D; a# Z8 R' p- }! X2 a! X
- (entmod elist). ^- s: r4 [, {8 [
- )4 C& u7 n; y1 y( u
- (defun ddmline ()
! t% r" x$ ~; D - (if (not (new_dialog "ddmline" dcl_id)) (exit))
H9 L8 Z# _. ]& Y3 R - ;; Set initial tile values
3 U+ K: K$ f5 R! d2 K- ?" B) q: T - (set_tile_props)9 E. L4 @5 [$ r! {
- (set_tile_handle)
1 I. R; U- K5 @$ D( g: X( k; m! [ - ;; Set mline style text field.
8 H1 \* O0 M; s' X: T, P0 n: q - (set_tile "ml_style" (cdr (assoc '2 elist)))
7 {( A/ E$ K* P7 w4 U - * T- A6 x9 V6 R$ }
- ;; Define action for tiles( P0 K. r# ]- L4 {) C
- (set_action_tiles)
: I) u/ q' J' F) O - (action_tile "ml_edit" "(done_dialog 3)")6 Z" D% d$ R6 O, N- v! e! G
- (setq dialog-state (start_dialog))* e$ }) P( x1 Y- h+ C/ ~( H
- ;; Dialog cancelled, reset to original values.
5 Z( q! ~! W( m6 L9 `) R - (if (= dialog-state 0)9 K- k9 c+ `& H, a v
- (reset)3 y8 X) ?) R1 q
- ), g' U/ b9 v. j& G, d
- ;; Dialog OKed, update the mline.) B* q9 Y8 B1 l# \) m/ O* S
- (if (= dialog-state 1)" E0 B( r; V% W- M- U7 B
- (modify_mline)0 J4 \7 }9 ]+ L, Y1 ]9 A/ F/ `
- ), t3 z. h2 K0 M* m/ i
- ;; Edit Mline, call MLEDIT.+ a8 z) |/ w6 m2 c4 O
- (if (= dialog-state 3)& L0 U- T$ |" v
- (progn
& e% y6 R1 U8 B( R - (modify_mline)& T, b* n; X8 }1 `* [
- (command "_mledit")
* Y/ Z8 {! N3 w% F1 ?. y - (ddmline)
$ w1 E# @2 W2 B, o5 f/ H - )+ X# V* T. b, p
- )/ i+ R! J( e. y- M" @* ?
- )
' D/ ]9 g& `$ O' l' c; J - ;;8 t& X( v6 b1 v" o9 k+ ^3 t: n" Q
- ;; Modify Xline
+ z, a: d# i* [; `6 G" y - ;;9 `) v, v$ n8 z5 c' M* `2 I/ _
- (defun modify_xline (flag)
, w7 E; S% j7 X" r+ F2 q" ^5 ? - (modify_prop_geom)
. B) r( ]; r; L( `" l+ z. Y - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
! y$ t* Q6 C) ]# o5 K2 Q0 s( \ - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
9 i- n# s3 e( k. c. J: E5 [ - ;; Update the Root point.8 z$ W% B+ i. z9 o
- (setq elist (subst (cons 10 (trans xline_pt1 1 0)) C2 ^4 [# v& s% A4 I H; ~
- (assoc 10 elist)
; s: L+ c% b6 m! |' e" o - elist. l' @8 D/ G8 W3 A& n; _+ {" k. y
- )
4 j: \1 o) {% h6 h2 M. E8 J% Y& z/ l - )
/ f$ |/ Q3 D# \& ?8 W6 f# p, i; W - ;;" o" m/ h2 V' |
- ;; Calculate new Direction Vector WCS0 ]( b+ k$ S0 D, y" A
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))3 x" M7 ?$ w9 a9 q9 a5 S8 S F8 P. ]
- 1 k/ Z9 d3 m2 j$ [
- (setq temp_dir (trans xline_pt2 1 0))
5 A5 e: d4 f0 f8 {0 U - (setq temp_dir_x (car temp_dir)). n% i* I4 m! T% n; Q' u
- (setq temp_dir_y (cadr temp_dir))- p4 a/ A* E/ @) I x2 j7 J) T
- (setq temp_dir_z (caddr temp_dir))
4 E' y0 p. _" R - ! C* F3 j- N1 @9 }5 z _! ]
- (setq temp_xline_pt1 (trans xline_pt1 1 0))
" v: q. {8 y9 d9 `7 f. U - (setq temp_xline_x1 (car temp_xline_pt1))
+ D+ v* v7 ?# M - (setq temp_xline_y1 (cadr temp_xline_pt1))0 i3 {# T: S0 U
- (setq temp_xline_z1 (caddr temp_xline_pt1))
3 f& z6 C6 b4 I+ m4 F - & M7 _; Y: }* r. R- e5 h
- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)6 p0 d4 S4 }9 R
- (expt (- temp_dir_y temp_xline_y1) 2)
" I" {/ K( m9 p& M2 R. \* k- V5 Z, a - (expt (- temp_dir_z temp_xline_z1) 2)
' o6 i' a' X' t s: t0 h L+ R - )))
3 M9 g" w# p S) ~ - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
- U! M" |- f0 U: Y. E$ Z - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
( y! K$ J5 {# x. I - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
( L j( t3 R+ W - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))" H' z! Z& N% h
- (assoc 11 elist)) n5 M, \; i( f! m) d6 ~1 y
- elist K8 n" w. I8 J5 E3 O2 Z/ U! H7 r
- )
* Y# w8 G2 c( s1 i9 G - )
$ J/ q- B% t; A) b( y$ R - (if (= 1 flag)& r2 `! S8 b P' n" U
- (entmod elist)
! C c7 G$ t8 Z+ ^6 C# g/ p) s - )
6 P( H% d! X- U9 ~0 _9 K$ Q/ D. a - )
# K \+ r* _# j! r! k
, r4 D: j- f( ~2 r1 Z! s' P3 S- (defun ddxline ()
@. z) T' N0 C1 n0 n8 V - (if (= etype "XLINE")
0 s! L+ B; `& [: K - (if (not (new_dialog "ddxline" dcl_id)) (exit)); o t4 Z$ C; P) h
- (if (not (new_dialog "ddray" dcl_id)) (exit))
* c% z# A0 K1 w& y - )
g3 N# W- l" v& O - ;; Set initial tile values! b/ {1 F C2 y6 ?
- (set_tile_props)2 a8 |6 M3 E- U! }# B% z
- (set_tile_handle)8 h0 d9 x) L+ D! g. T! f, k
- (set_tile_xline_pt1)
# V& p4 {5 i" \) A' g, @8 O( [ - ;; Convert to UCS and post Direction vector.- V7 L( E# J" g+ `/ a3 K
- (set_tile_dirv)
5 Y7 X6 Y4 S& m - ;; Calculate second point by adding Root Point + Direction Vector.
$ h8 J! t' V [5 P - (set_tile_xline_pt2)
$ G; y" d/ t' m v0 a6 f H - ;; Define action for tiles
9 d* r1 f) m7 u$ U Q+ H9 v - (set_action_tiles)
0 t! t. }2 A2 E9 E, W/ N - (setq dialog-state (start_dialog))% j. H$ C' e! E( @9 ^3 _- a4 M$ w
- (if (= dialog-state 0)& B! e+ F0 j0 C* h$ B5 S+ I
- (reset)! E1 h& q% S' T# ^% p! ]* N5 }
- )
7 v/ Q% T' y9 Z3 E) q; u - (if (= dialog-state 3)
* |0 F- C( d$ B( \+ q) i8 t6 q3 Y- k - (progn8 ^/ h5 e% k; W% h7 ]
- (modify_xline 1)& s4 {! F* ~+ N0 \0 V/ p
- (while (equal xline_pt2- z4 r3 B% h( T" ` B; F$ {- C2 S
- (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)' }/ h6 T1 U: B" L) o5 q2 R/ o
- (princ "The Root point cannot equal the Second point.")
9 d) ], z4 u0 `2 [8 |) a( E - )
4 L- V: a# o' U% Q6 n - (ver_xline_pt1)
! I* V5 R$ `( z - (ver_xline_pt2)3 o3 q% ~3 l# }7 M! b+ G' r
- (princ)
' m5 V3 O6 s' l; R0 a0 H4 A - (ddxline)' L( ]- u& B V/ I/ M
- )( \; R0 ~4 y4 C: _8 d9 B% ]
- )
% A' `* b1 i4 m! m - (if (= dialog-state 4)
4 \- ?) f9 u6 Z7 R0 i - (progn1 z; ?+ l7 L2 }" h
- (modify_xline 1); X# x9 w) c" I) N; ]
- (while (equal xline_pt1
; ~: I% p+ j6 j. F+ L, O - (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)- k/ t# w d+ x
- (princ "The Second point cannot equal the Root point.")% y q! h( ?, u8 w$ ]9 L( a" b9 U* g
- )# b) p9 p+ v& x9 l
- (ver_xline_pt2)% X9 ^# x, |0 U! w% Y
- (princ)
3 h- R7 Z+ i( [; H; | - (ddxline)
% `0 G( l( E4 }- e- B | - )
' s0 U7 F, Q9 k: P# C4 y. C - )
4 M$ \: o; A# y2 p3 q3 ~. [ - (if (= dialog-state 1)* _$ C; d5 F3 L4 A% G9 G/ ?1 R
- (modify_xline 1)9 m% Q% P r" A0 ?8 q3 [. ?9 z
- )! N) W+ r, C( T7 U# E3 ?
- )
3 w# y k- Q, V3 _: k' W - ;;
5 L6 g8 @6 B% [$ c V3 {) v - ;; Modify ELLIPSE4 ~* v% s$ h$ W4 O8 X; s5 n5 Z
- ;;, v6 h* \8 D% B( t
- (defun modify_ellipse ()
7 \1 ]9 `- i* [: F# k0 @ - (modify_prop_geom)/ K! G) t5 V+ ^& h# [" B s
- ;; Update Ellipse Center Point value.
6 Q% L6 l3 C8 [9 d: m; c - (setq pt1 (list x1 y1 z1))! J, C' w5 q9 b* @; L8 V9 e- ^
- (tempmod pt1 10 1)
4 S( e1 w& o+ Q8 ]2 G5 [: \ - ;; Update Start Parameter value.
# N! e, \- K" p- d) G - (setq y_val (sin st_ang))4 \6 P. u( I; U9 c" s7 W
- (setq x_val (* rrat (cos st_ang)))
, }* ?8 W. I% {( z- e+ R) \# Q4 J - (setq stparm (atan y_val x_val))
+ g' p" I7 e2 a" D - (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))
7 W: Y7 q6 h" B; w - ;; Update End Parameter value. Normalize it, if it's less than' F6 V9 P1 X) q0 N# @! m
- ;; the start parameter.
6 k6 O7 g" D& z - (setq y_eval (sin end_eang))* }/ k/ r+ u& |; {
- (setq x_eval (* rrat (cos end_eang)))
5 s2 ~/ o# G0 H1 i/ U {! H - (setq endparm (atan y_eval x_eval))
# u6 l, C. Z7 A. M+ ^5 L - (setq diffparm (- endparm stparm))+ C/ P8 e. Q: t) n
- ;; Epsilon of 1.0e-6 radians for checking a zero length arc.% T. U3 M( ~/ A5 h5 N
- ;; Since zero length arcs are not allowed - construct the full, j; G# g. w Q* N
- ;; ellipse in this case.
% o$ K# G# V. i2 o2 B1 u0 T - (if (<= (* diffparm diffparm) 1.0e-12)& s0 h4 g! a" W; Y
- (setq endparm (+ stparm (* 2 pi)))
5 |! j, v/ g, e3 \% j' `0 x6 M J. L0 D - ). A4 l0 e( d6 M% w2 l
- (if (<= endparm stparm)& F0 R+ r! h3 P# l' [
- (setq endparm (+ endparm (* 2 pi)))
" c& w. j2 A, h) H. [; V4 h; O - ): `2 q1 Q, N3 u5 n# f
- (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))
2 }+ Z: r4 [$ p1 r9 ^ - ;; Calculate the Major Axis Vector by first calculating O# a' z# V1 ~4 I4 }
- ;; a unit vector using the old Major Radius value. Then7 j2 c; Z) C; C0 d3 c
- ;; Multiplying that by the (possibly) new Major Radius* i: J$ y5 B3 P' h8 Y
- ;; value to get the new Major Axis Vector value.
3 m5 p0 j- A8 N) h& y$ j# V+ {1 ~. Q - (setq unitxx (/ xx old_majrad)): ]% D' `' H- R5 i3 b* @
- (setq unityy (/ yy old_majrad))4 S- a5 n1 B6 b2 x/ Z
- (setq unitzz (/ zz old_majrad))
2 S! ~: O+ i* {" U: X/ a - (setq newvecxx (* unitxx majrad))
( [, E# L, P2 X - (setq newvecyy (* unityy majrad))6 Y7 W) z e% X" E
- (setq newveczz (* unitzz majrad))
# R: Q) C9 ~' t% K - (setq newmajaxis (list newvecxx newvecyy newveczz))
- I& r/ X: a$ J+ D/ ` - ;; Update Major Axis Vector value1 U' ^+ s ]5 z, z) ^/ o7 X
- (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))
6 G5 ~2 n! T: K) a% y. L: d - ;; Update Radius Ratio value' a. Y0 M: ^! R
- (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))
, k+ p: K7 s& H7 u# U& K+ l - (entmod elist)/ Q* _+ a# ]( Z7 X9 k& n/ X5 o1 J
- )2 m8 I, f: q3 O0 X4 P
3 D' Q5 ^! d, t H! {- p- (defun ddellipse ()
! l9 w( I/ x( c; Z - (if (not (new_dialog "ddellipse" dcl_id)) (exit))
4 Z# _! Z: u$ `6 g, ^, @ - ;; Set initial tile values
% `, L6 }, _: [. U* y1 O - (set_tile_props)
6 V7 |* ]* y. P0 G1 b! S - (set_tile_handle). ?& x! N* L. U
- (set_tile_pt1 1)' B( L3 d/ ]) B3 U
- (ell_calc)
9 Z- l5 W3 K! a4 s7 q - ;; Define action for tiles h) }. M+ ]+ D* X! a r+ ~
- (set_action_tiles)
% k, _. S; m ^+ _1 c - (setq dialog-state (start_dialog))7 y1 C% y7 o7 N
- (if (= dialog-state 0)/ Q1 J$ K, f7 y. g
- (reset)
. c4 ]7 S. l; U& C3 Q6 Q7 } - ): l8 z9 m# f( E* h* M
- (if (= dialog-state 1)! A9 \3 i) j: d: x- W
- (modify_ellipse): ^8 m3 w2 n7 Z8 }, N3 I
- )
" E* M- q# p. }& \ - (if (= dialog-state 3)& E7 { p- {! y+ G
- (progn* R" T4 {! [ m" J; K
- (modify_ellipse)! J# L& q; T6 @( b* Q& p$ N
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: ")). R) @8 [, B: J% T' @- r( \
- (ver_pt1 1)
( t. V' { \1 Q: P- E - (ddellipse)+ _* z! V9 s# l1 z7 P: v. P
- )
. W% f" C: {( R: J0 Q: G - )
9 R: \: \( i( |8 t* \ - )
$ K$ C x7 {' O; s& S - ;;
4 I9 R/ [6 M# K: i - ;; Modify REGION
3 \ |+ j5 L2 r4 N0 R - ;;
# s9 Y3 G; u) u, k& ^ - (defun modify_region ()
$ w, I: u4 L t+ t& ?, r - (modify_prop_geom)
3 v0 ^, P4 M/ b) g3 @ - (entmod elist)) W; A3 [) p" `. z' Z
- )' Y3 D9 {, G; h/ S- G
- 2 v4 Q2 u/ N0 S! O7 b0 F% N
- (defun ddregion ()7 t- Q0 |$ j) J2 D; ^
- (if (not (new_dialog "ddregion" dcl_id)) (exit))/ M9 G; c3 H& |5 s! K, ^
- ;; Set initial tile values
_, ?8 K4 L* j - (set_tile_props)
" l Z& G. A' F* X - (set_tile_handle)
; r9 _% G' B: a7 i" s* W! l7 m - ;; Define action for tiles) y! g R% h$ n* R5 s# p5 K
- (set_action_tiles)
% K0 F* ^" t& R; j s - (setq dialog-state (start_dialog))2 h" m/ d8 V+ q' P% Q
- (if (= dialog-state 0) z4 _; e9 G) v; h* c
- (reset)* T* m% c- b8 L% R
- )& o0 \. } H2 [$ I, w
- (if (= dialog-state 1)! O; w8 ^0 V# M) ^' n' _
- (modify_region)
; d. L$ l9 M( G$ m$ t2 @ - )
; f0 G$ u- `8 e6 K - )4 {) R* Z) K+ i% I
- ;;
8 y W4 K7 x' G6 s/ } - ;; Modify 3DSOLID
, M J: e) W9 y - ;; Q' t* y2 E( r7 H1 f
- (defun modify_3dsolid ()2 v6 n5 r. A4 Z4 Q6 V2 i
- (modify_prop_geom)
6 U8 Q' q2 P) W3 v& N+ _ - (entmod elist) z- j6 O5 \( u% O+ u) N' [" k
- )/ i5 Z+ m6 }8 X+ _2 ^
- ' [& z$ n9 ?7 v& y) F0 h* D/ Q2 ?. I4 ~( y
- (defun dd3dsolid ()* |* p$ }+ @. j" R( W2 h
- (if (not (new_dialog "dd3dsolid" dcl_id)) (exit))
" q2 Z( R! ^# A0 t - ;; Set initial tile values j/ \, X( N0 q) C
- (set_tile_props)
8 b, g/ x. P: B* U$ ?( B* ^ - (set_tile_handle)" O6 J- u( `* L" D& l; b: _
- ;; Define action for tiles: }+ @5 H) J& x; w" H9 S
- (set_action_tiles)! m$ _; ~% w. r. m8 F% G8 ^4 `! g2 C
- (setq dialog-state (start_dialog))
! R1 K( U6 S. r% @+ M$ L& U% L7 I - (if (= dialog-state 0)$ E" I. S* U9 _9 e. ~
- (reset)0 l1 t; l4 t+ A; V$ B# L
- )' F2 [5 t K) |2 p$ n
- (if (= dialog-state 1)
3 A/ [# H9 b, g& Q$ Z - (modify_3dsolid)( @8 M5 t \ k! b
- )
. D7 R& L( x- d. `4 j - )
% @# R# W# k5 ]" Z" m! J - ;;
; j( i+ v* v1 \6 M( Z2 Z- O6 W2 t - ;; Modify AcDbHatch
1 j( ^& d8 `! p - ;;; t: P7 _4 O' ?$ ~
- (defun modify_hatch ()& Q, T3 X- u i2 e
- (modify_prop_geom)& Y* ]% u( ~! Q, \" f8 R
- (entmod elist)9 e. H1 \4 h" A
- )
2 g3 r/ G0 o; J% H; j& B Z2 j" L" s - 7 r+ f; P) t, r% t2 n. ]1 L; @
- (defun ddnewhatch ()
9 Y7 W" ~1 R" p# H7 S - (if (equal hatch-elist nil)
8 a* C/ D- k3 l5 s+ E - (setq hatch-elist old-elist)
% `$ e0 A, i8 c2 a1 a% s0 I - )
# Z I' q9 V1 _9 p; ~1 S t- b
' _2 [- s: N2 {. x, D- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit))) e% Y. f7 n2 ?' R; I8 a% x
- ) o3 g- m' l% x6 [" [$ m4 f: R
- ;; disable the thickness tile) f; A# C. m0 N
- (mode_tile "eb_thickness" 1)* L# r' O; U5 I5 J+ O: D
- (mode_tile "e_thickness" 1)
3 ]' B& O U% t/ s2 r) Z - , s9 L( o k5 W: x
- (setq help_entry "modify_associative_hatch_dialog")
# \" L3 p# z2 [* f1 S. ~ - (set_tile_props)
; R& S) ]$ |4 J+ B% \ - (set_tile_handle) s+ A% R2 H( ^5 Z R- s9 p6 Y7 x
- . u4 o' s# [9 U- f K
- ;; Define action for tiles
/ H/ K( x+ r% D0 N3 @4 b - (set_action_tiles)2 l8 ~) q; I! H( [, E4 ^0 ], M/ Z
- (action_tile "b_hatch" "(done_dialog 2)")5 w; ?& q* [. ?' s, D6 M
- (setq dialog-state (start_dialog))
! W) M; C& J5 z p9 d, M2 n3 T% Y - (cond
. t7 }/ c0 d/ ], @ - ( (eq dialog-state 0)
" c% b" Y% D" V. v% a - (setq old-elist hatch-elist)
9 [; E4 L" @6 @5 c+ _ - (setq hatch-elist nil)* v0 l4 V8 x. h
- (if (= (checkforlockedlayer ename) nil)
: H8 y8 \9 m% m" G8 y0 {4 G - (reset)
- \: I5 _4 e6 ?' i) x2 Q6 c- X - (progn ;;; special handling for locked layer reset% a7 Q7 ]7 B- }* m
- ;; unlock the layer
7 ]: Y8 V2 x5 S* }$ ~! | - (setq layername (cdr (assoc 8 (cdr (entget ename)))))
% b. ~9 l6 h( P* X. u - (command "_.-LAYER" "_Unlock" layername "")+ ?' l# j" S: o8 b* ^6 x
- ;; reset modifiction
5 i' a' r3 v4 K X- T/ X4 F6 J - (reset)
/ c3 J$ Y4 B O% ^ - ;; lock the layer again, x0 \- u; [' v; b
- (command "_.-LAYER" "_Lock" layername "")/ _: i u% P' L, N+ @! T* T
- )
) `* Y" s, }) [6 y - )
) b8 \$ J8 _# A, w - nil ;;; makes (ddnewhatch) return nil for Cancel
5 f d* q0 S2 {: F: N - )1 i, B0 Q/ w" h1 s8 v% ~
- ( (eq dialog-state 1)
e! C% N0 [) ~0 L9 L! h. Z' O - (setq hatch-elist nil)
# K5 j# x7 v4 U, A) Z - (modify_hatch)$ C. p. E. I4 L4 ]# o
- T ;;; makes (ddnewhatch) return T for Ok
5 u5 i- i/ z& O - )
* {2 o0 G% m: ?1 A7 L* W6 Y3 p - ( (eq dialog-state 2)
; C9 u3 X8 _3 j5 t8 o
, }1 H" }, u: A- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))% O6 e4 W& d+ ^1 ~
- 4" r9 a+ a: I7 T ]
- ) : J. ~5 _# J8 \' B3 |# \
- ;;; new selected layer is on a locked layer
! j& Q" M- l2 c& H5 w+ j0 N- t - ;;; we can simply modify the hatch properties
4 T; x+ l7 D* \2 Z, a% ~ - (modify_hatch) j/ J$ y/ k7 Q k
- (progn4 D- {0 M9 Y( q, s& h& X
- (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))
) L" w# j O! Z7 w$ N! C1 t - 46 c. r9 ~' q* W2 [9 c
- ) - V3 [4 ~' Q5 E9 j) v
- ;;; We changed the layer previously and now the hatch lies on a locked layer.
4 C9 P; h0 T) z - ;;; We have to unlock the layer forethat we can update the hatch properties.3 u# P2 V& e- s- v
- ;;; If we don't do that (entmod) fails to update to the new layer.
% z+ J0 k5 X* S0 R7 _ - (progn
& q- ^% I% ?0 [+ w, ?/ b - (setq layername (cdr (assoc 8 (cdr elist))))
8 e- I9 T# Y( w6 C* I - (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer
- W2 ^; f' {& [0 }- N - (modify_hatch) ;;; update the properties- u% H& ~! k% [: g" u0 Y" o
- (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again
0 h; A' ~6 D: i3 ]" b - )
# L- R% d! Z. r; q4 _. S8 Z7 R3 o" p7 D - ;;; All other cases we simply update the properties* Q! J; s" H$ a( a; j) r+ y
- (modify_hatch)
' {% d1 M( w- c j - )
8 R7 M3 N$ r, t) k& k - ), k/ q4 F) X+ T6 U' z8 o4 s
- ) ! C4 `7 t o' |( P
- (if (= (checkforlockedlayer ename) nil)- Q" C. K8 i+ m1 Y& f
- (command "_hatchedit" ename)! A4 v) u+ J+ _8 n, x+ l
- (alert ;|MSG111|;"The hatch object is on a locked layer.")
4 _) y% N, h7 B" e% U4 B - )
- {: |) ^; A4 {; Q* N/ e - (ddmodify ename)! p/ K5 D: p% C8 t' Q: | j' S
- )
7 h! \! g, Q) S# S# |3 x+ m - )
7 p: `+ V7 y# A8 L- S" { - )
& M; \' F: N R1 ]1 M4 N2 |+ s - ;;
+ {* s" z$ U; I0 z% Z$ P8 u5 [ - ;; Modify BODY+ E0 _7 ]" Q+ C3 w" V3 F1 k4 P) D
- ;;$ R) N+ x# ], Z) X* C4 C8 g+ ?
- (defun modify_body ()$ t5 o0 T1 L8 U0 m
- (modify_prop_geom)$ T2 c* }/ d2 @" K6 i
- (entmod elist)
) u0 E w; O' a5 Q3 ~2 z - )
! E: ~+ |6 \: z& `- M0 i% ?: |
1 C s6 o: b' ^! F7 N% s- (defun ddbody ()/ K' Y& b4 `: j
- (if (not (new_dialog "ddbody" dcl_id)) (exit))( Z8 h9 g; C" F
- ;; Set initial tile values! g- q% m" v; F- H
- (set_tile_props)6 m+ G2 W! D. k# j* A& | A( F
- (set_tile_handle)+ \( e2 K7 S y) o
- ;; Define action for tiles
/ p0 F7 O, i1 e- O - (set_action_tiles)- ~- z! {7 D) B; ] e+ Y
- (setq dialog-state (start_dialog))
& ^+ r$ l7 m7 S% ] - (if (= dialog-state 0)5 u6 s* y4 L5 |/ _; y. m
- (reset)4 c+ R4 [) A3 R8 K# b
- )
6 n7 A% a6 H* ]9 U - (if (= dialog-state 1)3 R& o' q1 x/ U/ w
- (modify_body)4 y. M: w2 ~ N3 ?6 g, d
- )8 }) F9 y2 i6 {0 y7 @, y
- )
2 ~1 j s$ A' _- S5 x* m' A - ;;
+ K% J- X% Z. ~ `/ f; S - ;; Modify CIRCLE' D' }) L1 T- V2 b
- ;;
: R6 \1 E# m( F$ l: r - (defun modify_circle ()
9 j. z$ S$ z D) K# r) y, h2 v( N& x - (modify_properties)& m ^' M0 w3 R/ l0 }
- (setq pt1 (list x1 y1 z1))
. x5 y5 B( n* \7 _" D D - (tempmod pt1 10 1)
' f2 o5 B8 l' G" X! s - (tempmod radius 40 nil)4 Y5 C. m5 ^* |
- (entmod elist)
) N$ b+ s' M1 [; K5 k! ]6 F - )
& b% X, Q. Z/ j! p! f( {
% h- ?% T$ U( ?& r- (defun ddcircle (), P6 R4 A0 i% i" Y
- (if (not (new_dialog "ddcircle" dcl_id)) (exit))
2 w, q _! ?! x" b' G7 u - ;; Set initial tile values
4 L5 i4 x- H8 ~) O+ x$ u6 Z% b - (set_tile_props)
& N5 u( o$ S; r% b% t2 ^- ]; I - (set_tile_handle)1 L/ f0 G4 d! g
- (set_tile_pt1 1)
G- t# h; ~8 x& `" @7 O8 b4 I - (set_tile_rad)
) P3 Z0 C& F* \7 z# ~8 W - (cir_calc)& Z. D* | X _: z
- ;; Define action for tiles3 H0 x7 k, T/ e' X' s/ i. C
- (set_action_tiles)
5 E2 @7 ~& c1 {3 x' x - (set_tile_pt1 1)7 C D8 F0 o4 [: Z- \+ G
- (setq dialog-state (start_dialog)): B8 f8 p' Q9 N, Y
- (if (= dialog-state 0)0 F5 Z& S- A9 q3 C; t( H8 V
- (reset)+ p2 ] k2 f* n& E& q* E
- )9 K" M9 c% P; r; x
- (if (= dialog-state 1)3 b% I( m& [# ]
- (modify_circle)
6 y" A |# I. J8 V: h - )5 c. \% K9 f. m7 M& v5 x2 ^3 ?% V
- (if (= dialog-state 3)
5 X; y" A( n- ]; |, Q - (progn" @% N9 ]9 o% w4 q
- (modify_circle)3 }9 D# ]' K3 p7 `
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))0 \$ a/ E4 u% |: H
- (ver_pt1 1)" e$ R4 z: G" F
- (ddcircle)
1 T8 r9 e% {0 y5 c& Y - )- j8 x8 I9 ]8 q3 o7 f/ R9 c. S
- )
3 }8 C+ h/ _" U5 `( A - )
% l# K+ s- y; W% \/ Q* c7 C - ;;% }3 r0 B" I, V7 N# m
- ;; Modify ARC$ w6 i& l& _, x( M/ r
- ;;
5 c8 W# g$ C, Z1 E* x# u - (defun modify_arc ()
9 |9 p" b- ]- L C+ |! x( M: P0 ` - (modify_properties)
9 f( C5 {$ T( g' ^$ A - (setq pt1 (list x1 y1 z1))
* h9 I; q" Q1 V5 N5 d% Z - (tempmod pt1 10 1)
0 ]7 h- h. T* D) ~6 t - (tempmod radius 40 nil)0 D+ @' s0 \: O1 h; r3 x G$ z
- (tempmod st_ang 50 nil)
: z) S$ J' q; H# k; V" } - (tempmod end_ang 51 nil)# @% g7 T l2 d# T
- (entmod elist)0 H2 z6 n3 M5 {$ c
- )
7 k! i. `4 P( B1 ]: u4 @ - (defun ddarc ()/ X! Y3 A8 [4 a! [
- (if (not (new_dialog "ddarc" dcl_id)) (exit))/ x# z* B* X; _9 F" h( b' X/ ^* {) M. M
- ;; Set initial tile values. v; X% `0 h$ x
- (set_tile_props)
9 v& l) u5 S7 d1 p! @! P - (set_tile_handle)4 h6 B+ n9 b6 J- D2 D
- (set_tile_pt1 1)
& Y: y E$ z' ~% L) q# {" ?1 k m - (set_tile_rad)' q2 ~) T" W) ]9 E+ t+ U+ `
- (set_tile_stang)
2 }: [$ N# M- X, B% T - (set_tile_endang)7 J9 v% K* i/ n. H
- (arc_calc)" }1 f6 W6 E G& X; r" b/ C" E
- ;; Define action for tiles* z& ~% \/ \# J+ G$ M
- (set_action_tiles)
$ ?! P4 [) j" Q- }1 G; _8 x- A - (setq dialog-state (start_dialog))
/ l7 Z, F. V" l8 m( J5 ~8 g - (if (= dialog-state 0)
" U6 v4 s* u4 A' b3 ?4 C - (reset)1 E/ a& ?% P5 M4 Q9 X H7 F. I0 f) M
- )
! V7 R& t \& W' t) p6 v- X0 c& y' I - (if (= dialog-state 1)2 u0 b- @- H; a$ G# U0 M+ ~
- (modify_arc)
% k5 r* U& v u8 ^$ h! O - )" J; @1 P) F6 R7 F9 K3 ~# s
- (if (= dialog-state 3)5 [' |4 B; Z& W1 V5 Z$ G
- (progn2 ~! d: f* d' v h. w. C
- (modify_arc)
6 k; j* G, c" e" w {. c' C - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
& e7 x6 f& H) d( r% a% ?1 A& i5 } - (ver_pt1 1); J3 p0 ]7 ]7 w$ F+ @/ `
- (ddarc)# Z; r3 l4 [3 C. t: s
- )
) Q" I% _3 c, I @+ J! T- d0 { - )
; b8 @( p0 i7 L$ y! @) U! Y6 \3 H6 Y - )5 ], ~2 ]- ]8 P, U4 [+ |
- ;;2 j3 c4 X& a# u* Y. L( Q% w
- ;; Modify SOLID or TRACE5 {: h8 Z3 S$ I1 m! \1 O' \* @ Q
- ;; Note the Z value of the object is determined by the Z value of the fourth
" J" ?4 H; y( ] - ;; point - code 13. Changing the point values of a solid or trace from a UCS
t6 s4 ^9 e# O& w, A - ;; that is nonplanar to the UCS the object was created may confuse the user.
4 s: T( x: ~ q2 M9 W3 [ - (defun modify_solid ()! N+ w. T* i6 G: _
- (modify_properties)
, \- r5 \. b/ a j - (setq pt1 (list x1 y1 z4))
l+ u, D N! ~( {0 \2 ~$ i - (setq pt2 (list x2 y2 z4))% O/ \( x# v8 ^% ~
- (setq pt3 (list x3 y3 z4))
9 s2 Q+ J$ h5 {0 C8 F - (setq pt4 (list x4 y4 z4))* i+ e# g% E5 {" _
- (tempmod pt1 10 1) z8 K# X; u5 E, ~- ]& e
- (tempmod pt2 11 1)2 T' o2 {- ]/ f s
- (tempmod pt3 12 1) ^' \2 n1 v# w' Y3 T. s, r; _5 ]
- (tempmod pt4 13 1)( L! ]' V. L4 u t, \. [
- (entmod elist)' R) V2 f9 y1 z) a
- )
7 n; K/ }3 g! p* S6 c. a
3 r) w2 g5 N. a" }/ w- (defun ddsolid ()' B' S6 R; r& Z7 q9 E* ]; y
- (if (= etype "SOLID")
x6 `0 f9 L: q9 t" C# J7 A - (if (not (new_dialog "ddsolid" dcl_id)) (exit))( u d% e, F' p( l! k& G; W+ J' v
- (if (not (new_dialog "ddtrace" dcl_id)) (exit)), ^- `) `; s8 a1 }
- )
& Y& B/ q) x8 E# g" | - ;; Set initial tile values
2 _& ?" D2 C+ ?5 r$ Y3 X, z8 O - (set_tile_props)
8 J" @5 U R6 P4 s( r0 T - (set_tile_handle)0 G7 T7 n. e3 S" p2 `
- (set_tile_pt1 1)
! p1 b' Y0 I, [7 ~/ G' p - (set_tile_pt2 1)1 ^9 [ l2 O5 |8 j2 h
- (set_tile_pt3 1)" E+ L5 e w& y D/ I" C
- (set_tile_pt4 1)8 w S" q$ H. J9 J. k. v
- ;; Define action for tiles- X$ h( o+ j, U) ^! r( H
- (set_action_tiles)
% M4 ]0 _7 z% N& z! Z - (setq dialog-state (start_dialog))
1 F. r% K: `8 d, m8 l - (if (= dialog-state 0)
- G- K/ A1 d u: n0 @ - (reset)2 A3 z% q/ p! n: c& E
- )
* W ~- X3 B A; J - (if (= dialog-state 1)
* s$ g) @( f; i) B - (modify_solid)
+ v: s- w* v" j8 b2 u% } - )+ t- d8 c2 Q3 `; J/ f1 l
- (if (= dialog-state 3)* p T+ v1 @$ U3 Q# Y- Z7 D# T
- (progn
/ q+ H$ d7 Q5 I& [3 e l - (modify_solid)8 |8 u5 C, H4 {. u) ?. w5 H2 W* L
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))
! _( U1 X0 }# n m - (ver_pt1 1)1 } |4 U, i2 {6 r7 ?& C. \ l! Q
- (ddsolid)
; [" o) t' `4 w7 x7 s! O - )
% J# o9 B5 p7 G R% a0 X _ - )
9 o% z5 L& O1 Q0 @ - (if (= dialog-state 4)
- \( {; R _& J- L+ f - (progn
8 z, k# D5 \( b' J4 S; J - (modify_solid)( D! L5 K4 P9 a0 i, D3 f% X
- (entmod elist)2 s! b" [* r4 G# K$ \0 T
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))1 p: b9 ~" a, y9 f. K
- (ver_pt2 1)( |# y& ]& g, o; t! F
- (ddsolid), r% {3 P7 `+ D& _+ {5 w9 f
- )) D# u* U: `; c& d) O0 ]
- )
- W( c% R" B! B - (if (= dialog-state 5); x: a% P. R4 N# J0 c) F3 d
- (progn" d! k% S" @7 I% k l
- (modify_solid)
0 y: A. ^* N+ {7 y X - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))$ y* ^6 b% ~1 E% N* ? P6 B: y
- (ver_pt3 1)
2 e2 w# x; G- ?3 c( e - (ddsolid)9 `8 o# | v8 m7 P9 N" X
- )
( c- s5 f7 K1 G' W& S' k. i - )
5 j' p, z I# H7 x - (if (= dialog-state 6)
' X- h" G) B0 N5 n; N - (progn
) Q6 G) N+ }) d, q( V - (modify_solid)" o0 g4 V, ]+ [- K
- (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))3 D% c$ s" Q) t3 }
- (ver_pt4 1)/ o( m9 O N+ ^3 T8 i
- (ddsolid)* U: q# p O9 r, Y0 i0 U" p/ [
- )
- J/ |) V% @0 C/ B# O" v! i/ v. G H: b - )/ i( r. _$ s6 Z3 |/ `
- )7 N" D2 G2 e! u& b$ N0 Z0 ?
- ;;
Z( K2 c" w/ r4 ^# | - ;; Modify 3DFACE
3 v* t7 N# T* p) l+ Y' p - ;;' o7 }7 \ p# z. [/ v
- ;; Check visibility of edges1 z3 G( w+ O l: b$ S3 V2 U
- ;;
' I& t; @" O# u, `, N0 e6 g - (defun edgetest (/ bit1 bit2 bit3 bit4). L. s( @1 V4 c1 R- [/ Y* H2 w
- (if (= edge1 "1") (setq bit1 0) (setq bit1 1))7 b# K6 d! @$ }! K2 O3 {! z B; D
- (if (= edge2 "1") (setq bit2 0) (setq bit2 2))
) u7 F2 k9 b1 O) i- D) @) e8 r4 A- t$ x - (if (= edge3 "1") (setq bit3 0) (setq bit3 4))+ X; I# V8 u: o$ ~
- (if (= edge4 "1") (setq bit4 0) (setq bit4 8))/ T. l% X- ?- e5 d0 N
- (+ bit1 bit2 bit3 bit4): Q4 C c$ b; T- [2 R
- )
" D6 t( g8 f6 Z5 G7 X
# F/ o; ?) I1 r ^7 Q7 Q- (defun modify_3dface ()
% Z* z8 o7 n) B1 | - (modify_properties)
4 L4 S4 v9 Z7 x$ I+ @; I - (setq pt1 (list x1 y1 z1))8 A# N7 H: z2 w' N6 b
- (setq pt2 (list x2 y2 z2))
2 C0 [/ H9 h2 ]2 w' L3 X - (setq pt3 (list x3 y3 z3))) \& x y* J% ^* U+ C( z
- (setq pt4 (list x4 y4 z4))6 U7 t/ v5 i4 ]5 y/ }% y6 W; x
- (tempmod pt1 10 0)8 M' U. v. ]9 a9 S$ x1 o* }7 t
- (tempmod pt2 11 0)8 \# N8 ^, [0 W! N9 p4 R. N( Y
- (tempmod pt3 12 0)
Y3 z; I- J5 P9 s - (tempmod pt4 13 0)
. b* C U! z3 v; P/ g3 I - (tempmod (edgetest) 70 nil)% @8 O4 D8 [, H( B+ ?0 H
- (entmod elist)
$ j% m4 Y; {3 D6 } - )5 M7 b2 w2 z! [/ x+ s/ D
- : T1 t5 f7 |) Y7 r8 `
- (defun dd3dface ()" w! X; d; B9 r
- (if (not (new_dialog "dd3dface" dcl_id)) (exit))0 I+ j! n* F5 \# A6 a5 R
- (set_tile_props)1 q( r; z; I: [+ H1 W
- (set_tile_handle)( u) ~$ }4 P$ R! w
- (set_tile_pt1 0)* i- L# R9 {& N- s' X
- (set_tile_pt2 0)
- @! f8 l7 _/ q9 N J+ f - (set_tile_pt3 0)- p: g1 T* g( h4 y/ E) Q1 b
- (set_tile_pt4 0). X* }' Y/ o0 p2 F5 F; g: G; S
- (set_tile_edges)
* p: G2 R* j' a; A9 Y! Z+ w - ;; Define action for tiles% J$ c0 b% ]$ o7 h2 ~3 I
- (set_action_tiles)
% E) v) A' z+ t - (setq dialog-state (start_dialog))
9 S+ C; _- B( T7 u) _4 l. y - (if (= dialog-state 0)
. Z2 M' R' b! y' U6 E - (reset)
. z' x/ T* J1 c9 {7 d7 l5 } - )/ g6 ^" J' A8 C w; \7 V$ ^ j
- (if (= dialog-state 1)
g. T% b8 i4 E4 V - (modify_3dface)
- `) t- A( [5 B( q+ ` - )* n7 R9 a0 d1 k7 w: z, d4 v5 q
- (if (= dialog-state 3)+ l, L# v" D! @4 d
- (progn+ H& C+ l0 } r; ~
- (modify_3dface). Y4 s1 \" I. x" ~9 h8 d, \: C4 p1 W9 K6 C
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))) b5 D5 S% u) Z
- (ver_pt1 0)
$ W3 g, V; c7 H% A) f4 G - (dd3dface)+ \4 {6 u* g$ a/ H
- )6 t. W# y. k. i7 a0 Q3 V+ i
- )& t* @# a; v" f% m9 p
- (if (= dialog-state 4)
, V& `4 i9 e! b) j+ N - (progn+ P5 p$ p2 P% t2 X# _* F4 h- j
- (modify_3dface)* B2 c7 `: `2 N1 U7 @ u
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))5 F. C4 s" _0 F
- (ver_pt2 0)7 U- `* n5 `, V: [! `2 D, t5 z
- (dd3dface)
+ S1 c' V- t# v" O4 w - ) X' @ X1 |* k% t' ~ ]
- )
$ b' } g, w3 x8 H7 E- g! i, k# ]4 V - (if (= dialog-state 5)
: D+ M! n: @! g3 s; H, m% X - (progn2 k$ l$ {+ B4 |+ T! o' k N
- (modify_3dface)
% z1 k# ~* w u! D% j+ Y9 M - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))1 k( q+ b8 w* a4 X) X
- (ver_pt3 0)! M8 p& n8 ]) {2 E& K6 c0 \" w2 k
- (dd3dface)& ~7 g o5 E% S2 p5 J; G. m0 t/ ?
- )& q+ ?" y; k5 A% R( P) c; k5 d/ T. U
- )
, C* V- K+ B+ S) B - (if (= dialog-state 6)
3 f/ I4 z+ r+ _6 m3 B - (progn$ p! M" l" f2 b% S9 b4 ~5 _
- (modify_3dface)
& v9 M/ p2 d. P - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
4 V! W! p5 _ |# x0 y- [ - (ver_pt4 0)& p' o: T9 v- X1 ^( }8 s
- (dd3dface)' o$ k# P+ g9 `. J& C
- )* M3 d9 o% D; ?7 b
- ). n- z3 H& C2 z: d
- )2 L0 ^% B* U" s1 y) ^: n" {
& E; e9 g5 P* L- ;;( g& L- k' K' Q' G/ x* _' l) A
- ;; Image functions
1 {1 ~! F: C! W+ M - ;;
! {4 e1 \ E# z X - (defun image_scale (/ upixel en n userscale temp)
5 h* F3 B% z! F* }, h! z# N- Z2 u - ;; Calculate the size of an image pixel in AutoCAD units
8 ^9 B# k7 _; Y$ N# N* p - (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))3 Z5 `6 u0 s- N
- & a' H6 ^% _+ m# [/ K
- ;; Retrieve the user scale1 M# W d8 E% Z* V! ~' T
- (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))
' _" q9 W3 L, v: p8 R, o
( s5 }4 v. w* k( m3 w# y: W- ;; Next, extract the image units and pixel resolution; t( M/ C* \$ R2 t
- (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))) m5 ~0 |. D! g9 [" F8 N3 j( Y
- (setq image:scale (* (cadr (assoc 13 elist)) upixel))% C1 M2 W, F. i( I
- (progn
0 H' h0 r0 g1 O- S3 o - ;; Convert the user scale to the proper word: _) q' [: C' |" N# c" H
- (setq n (cdr (assoc 72 en)))3 f9 O* e7 H, D$ n
- (setq temp (getvar "LUNITS"))7 V5 N% _! q q Z [* B
- (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5))
}7 h, K" Q) r6 G+ `7 { - (if (= n 1) (setq userscale "Millimeter"))6 E+ I9 n+ a" D0 `; V
- (if (= n 2) (setq userscale "Centimeter"))3 M4 c8 P3 X' \9 D6 {! p
- (if (= n 3) (setq userscale "Meter"))
8 x j1 v- P7 c h5 M$ ^ - (if (= n 4) (setq userscale "Kilometer"))! \; |7 Z* I- x$ n* a
- (if (= n 5) (setq userscale "Inch"))
, w4 E4 q; w H - (if (= n 6) (setq userscale "Foot")), H1 z4 m4 s8 d, \$ h/ N7 ^- g
- (if (= n 7) (setq userscale "Yard"))/ T5 ]2 n9 F: O0 i7 j! J/ k+ U
- (if (= n 8) (setq userscale "Mile"))
, I. w: K; Z& p% O% t. B, h - (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))5 Z% o2 J$ P0 s4 M! `! I
- )9 T6 j4 }& Q. D* \
- )7 J+ `% ^6 l2 I7 R" h5 v3 N
- )
( b$ e* O% b9 g! d8 s6 Z% I' X ?
8 @! j$ `& a9 X- Q* Y4 ]* ^ p: x4 D6 f- ;;
& A" S& e7 R7 k w( M/ M - ;; Scale factors for block insertions2 W- Y# U: ?0 D; v
- ;;( Q4 k% ]5 [% q' i- \2 j
- (defun image_set_tile_scale (/ temp)( \) U9 m, M# D, s8 u( W, d
- (setq temp (getvar "LUNITS"))
" h) F5 u- m1 u# u, T" Y) U - (setvar "LUNITS" 2)
* A/ P0 l. ?0 {* k) Z - (set_tile "xscale" (ai_rtos (* image:scale image:mult))) w6 w6 w6 i5 l" U/ ] h* A4 e. t9 W
- (set_tile "wid" (ai_rtos (* image:width image:mult)))
. K. [0 W3 E& m - (set_tile "hght" (ai_rtos (* image:height image:mult)))7 j D9 D" `" z6 n$ Q
- (setvar "LUNITS" temp)$ \( [; q+ a9 j; ?1 N" m5 H, B
- )' t% Y) v: o0 o5 X- e' h/ z3 `/ ?
8 ^4 R9 S7 w- o! [- ;;, L9 }5 E/ L2 Y, f$ @( a: t- D
- ;; Set the scale, width and height values appropriately.5 y- q4 M* R$ C, d( Z
- ;;* \9 Q# ]! l6 x' A/ ~8 Q) ?/ ~, P
- (defun image_update (field value / orig_value new_value mult)
0 |) V& Z" q3 C+ s: _) f0 z( M - (if (= field "xscale")
7 W+ w W2 ~; s7 i - (setq orig_value image:scale)
% I. o+ V1 z, Q$ s - )
. s9 _0 a4 B& Q! A# r0 {2 t8 G! N - (if (= field "wid")* k, C) ~, k ?) U
- (setq orig_value image:width)
' N! y( G2 O0 b - )
1 Z% R$ n) c" l# ^ - (if (= field "hght")3 B2 E+ x. N" i2 T* |# Y
- (setq orig_value image:height) h" Q; J- x9 g3 ~2 N5 T" |4 o" H
- )
5 k& g3 o* N! T - (setq new_value (verify_d field value (* image:mult orig_value)))
1 m" B2 f! a* }* C9 S, i. G - (if (/= new_value old_value)* h: |" H0 x: X [* S+ s, P+ e
- ;; Make sure the user has entered a sufficiently large value2 O0 L0 F+ C. V* g) p* }
- (if new_value7 I& ~0 S7 A* d1 F
- (progn& j" g9 ^6 h8 N6 v" d4 x( a
- (if (< new_value 1e-8)
T( j! r C+ t5 y! F: K! G - (setq mult image:mult)! A3 p: `) E1 z
- (setq mult (/ new_value orig_value))
" W& {( I( F& G0 b/ Q4 _8 J2 A. m& y - )& g H* Y( ?' z; n$ p# }
- (setq image:mult mult) p W# A* [4 l: e; O' i# F
- (image_set_tile_scale)* H; a$ S$ T$ ~4 p$ r, h6 S
- )
+ C6 d- f! |6 m - )
& e1 S# [0 O4 W6 q8 M/ D x - )
1 P5 k3 l v6 Y - )
. w; ]5 |) \4 k5 o0 g+ w8 T - % P& l& f; }0 c" r) w* ^7 R6 l6 ^
- (defun image_disp_opt (bit)
/ S" v" |6 v2 {( z& g - (setq image:options (Boole 6 image:options bit))
, Y: C) s0 i$ V! t - )
8 @- H( e3 r% l$ f" Y
6 t; K3 c& n- Q3 s' X1 k) b- (defun image_modify ()' {; j1 e2 G9 a& s; i( H3 ?
- (modify_properties)% Z3 o+ F0 T' h" P# g( }0 P
- (setq pt1 (list x1 y1 z1))6 g6 l- }/ _8 U0 L5 t! d. ?
- (tempmod pt1 10 0)4 C3 k! c8 R3 Q* ]* v
- (entmod elist)
9 s# R5 x% o" K- {0 s* s4 V; P - )
4 x' N4 }8 {; b5 i( A - + i7 R0 J2 g: j# K6 d
- (defun image_clean_variables ()
" G/ r p2 h" Y! A8 l! y0 ? - ;; Clean up global variables used here
9 f' E1 ~" C0 L8 d6 ~ z! I - (setq image:scale nil); E0 y( k) M. ]9 X, Q
- (setq image:angle nil)
6 e& |6 @: ~% h8 v/ W* b* x6 X - (setq image:width nil)5 c0 q8 E0 h$ `& }
- (setq image:height nil)1 m) U% n' R. j4 D
- (setq image:options nil)+ r; Y+ @' x* E1 j
- (setq image:oname nil)2 P" ~$ } z# _' y n
- (setq image:olist nil): Y4 u% y. T* I3 x" e& O4 l* Z+ t9 w
- (setq image:mult nil)
% ?' k9 \) D$ q/ ^ - (setq st_ang nil). U3 g0 B. ?# w" p6 o' D
- ) c* z m, D& ]' |
- # z) C, G1 N$ }4 u2 d
- (defun image_scale_vector (v1 value)8 T/ P! m) y2 B' j( s; Y
- (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value)); Z3 u1 y% j. `0 `) |0 [
- ), t$ l2 ]+ F% ?) h0 _- ?
- 9 D$ x6 O$ c, J* R" L K' I4 H
- (defun image_cross_product (v1 v2 / vx vy vz)
W+ c/ C: H5 A# f - (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))( E s" g5 D! ]
- (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))
% n" F1 i I$ ]: h/ c - (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))3 H( o& b4 H2 E6 w7 G4 N4 F6 j7 H
- (list vx vy vz)4 R! @, e; ^$ b1 {( D, R% I/ e& J
- ). }, Y5 L/ c3 R) o: K% b0 C; C2 q
- c- [0 K" j' m5 J, k! q
- (defun image_dot_product (v1 v2)
2 N2 i$ ~; }; G$ t x5 e - (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2)))/ X2 d8 O A: R! c
- ), [4 M; U3 o( y" h( l" X
- ) h q" i7 f# f! k
- (defun image_add_vector (v1 v2)! u* ?' V% c3 W4 I
- (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))
& i/ }) s7 m: X d9 E - )- d% t5 K/ o% \$ L* y2 i
7 Z& e6 |- k+ h6 Z- (defun image_subtract_vector (v1 v2)
% E5 a8 |$ ]% |4 f5 r: g - (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2)))3 f" m* V% K4 C$ a4 M
- )
* \* O, X7 ?( S5 w. K - 4 [: `- i3 A% P% N7 N
- (defun image_normalize_vector (v1)
5 X# Q9 v& K |; E - (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))
5 N3 K* Z3 ?$ G - )
, V1 H, u$ q6 E0 H - 3 e- h3 c' c9 p5 e! y0 ^
- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)
1 t+ K7 |+ N! D' I% Y p - ;; Normalize the axis
0 B8 S5 p5 r7 A - (setq axis (image_normalize_vector axis))8 L! N# X' |4 O F9 _4 ?5 h
- (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))7 f. c/ k4 x# g7 p$ r9 Z
- (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))
9 T& I- Z# w* W- _ - (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane))
& C$ u, i6 W! A; D5 o. ~" F - (setq in_rot_plane3 x. E+ n, I( J# M8 l
- (image_add_vector8 g# c' W# L8 ^% `; V. P2 g* e
- (image_scale_vector axis_x_in_rot_plane (cos angle))
5 I6 [& ^0 z* F7 B* r3 j2 x( n - (image_scale_vector axis_y_in_rot_plane (sin angle)): ^- U/ y$ Y1 t0 p% I
- )$ H2 y+ J9 b7 Z- m# t& i/ O' c
- )2 }* m$ F% K! E+ P
- (image_add_vector along_axis in_rot_plane)1 B. z: j7 `& a
- )
: a8 S' y9 Y( z$ X% A0 b+ f$ w8 J - 0 q. h: \! ?9 C9 M2 T0 v, X
- ;;
+ J Z" h/ G) M0 ^ - ;; Calculate current rotation angle if appropriate.
( h3 O! \$ L8 f2 j7 a" [) i2 P - ;; If not, grey out the rotation field.$ x: h- R) _9 x r' p( U) q
- ;;
2 \+ ]3 L5 o% }) f$ i - (defun image_rotation (/ normal rlength zlength sqrt_tolerance)6 i$ ~$ X; Y' q/ }! y
- ;; Determine if image normal is codirectional with
' R5 ?& V7 @% j - ;; the current UCS Z-vector.3 y+ w3 L+ I( E# F
- ;;
" P3 u4 w( A; a( _, x {$ _ m - (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))8 D% Y9 I: e0 b; n. o
- (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))
0 ^; S8 r1 b; }$ O8 x - (setq zlength (* (last normal) (last normal)))+ j8 g2 g5 E- ~3 Q P2 }
- ;; Note that the value .0001 in the radians is approximately 0.0057 degrees.
* V" C* R# N8 ?# e; j7 e7 i - ;;5 v) O) d* n5 Q3 ]
- ;; cos(.0001)^2& M. b* p/ i+ k+ H$ Z. v
- ;; Tolerance = --------------
: s0 a7 [' G7 H - ;; sin(.0001)^2
0 k. g0 c( L% L) J- ^& m3 A1 Z - ;;
( k0 Z6 A0 |+ l, K' D( Q. E - (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))
/ E6 b. w+ ~- s$ b - (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))7 w6 [9 Y! T. D) {
- (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))
$ A+ M1 i+ M9 Z& @ u* Q- A7 u, ]* R - (progn ^- Y$ G/ P: \
- (mode_tile "st_ang" 1)1 C; [; h( y" f
- (setq image:angle 0)/ [" c" T1 e" ~( N0 L
- )( L; d# {6 h2 t5 w
- )
- ~! u& k; L. G6 w4 m - )
1 m* Z9 m; V' k8 ^3 Q
6 ~ n( ?% y1 k- ;;
5 R! r+ E, X- g9 T6 o% r - ;; Modify Image- m' ~+ a/ G+ H! E* B. }, ^ U- E; p
- ;;; [$ e2 o. m2 q! `
- (defun modify_image (/ u_vector v_vector z_vector)
' ^# ^# D3 N D |! d& n+ ?/ a; G - (modify_properties)
# |! f& r! x& }; o, x - (setq pt1 (list x1 y1 z1))! X6 T, e# X& a; Q
- (tempmod pt1 10 0)
/ g( q. f3 R! e" ~' ]8 ]" [ - ;; Make display option changes to image, ^# b( N1 c$ T
- (emod image:options 70)3 h8 Z- B3 s: g
- ;; Get the u and v vectors- o" o- ?1 y% b: e, @
- (setq u_vector (cdr (assoc 11 elist)))
1 ~3 m+ _8 t' \& n - (setq v_vector (cdr (assoc 12 elist)))# G) O8 S4 {. N) n
5 F6 J U8 E5 s8 R- ;; Make scale changes to the vectors
: f# D2 ?+ O' [ - (if (/= image:mult 1). m. P Z0 _& s
- (progn
* o2 s. \6 h7 P2 M* A$ b - (setq u_vector (image_scale_vector u_vector image:mult))4 b) t# A9 v, {
- (setq v_vector (image_scale_vector v_vector image:mult))
& J& m; H) p1 g& u* q; f - )
* a- I( z U' f; d) b1 e - )5 ^; D& w* }4 ~9 }* r {# {4 Q: ~
- ;; Rotate the vectors. z" q H9 [% Z, P7 A. G$ h7 X6 g
- (setq st_ang (- st_ang image:angle))
5 u+ i" C7 R4 T% ?+ s - (if (/= st_ang 0)* r) q h" J' ^1 {- Z- g
- (progn- N7 G5 K! v3 Y3 |/ R0 @
- (setq z_vector8 y* S2 p1 S3 ]+ Q0 ~! h- b4 C! G
- (image_cross_product
" P9 t: U) r1 ^( G0 U/ \2 z8 I - (image_normalize_vector u_vector)
# e8 L- y( @) b; N6 i1 ]6 p1 n - (image_normalize_vector v_vector)- P0 S+ i1 O. _/ r. ]5 s( N
- )3 i5 l) @3 E" J$ Y: t
- )7 R* I- C" \% e
- (setq u_vector (image_rotate_vector u_vector st_ang z_vector))
5 D6 i. U3 K ` U2 M - (setq v_vector (image_rotate_vector v_vector st_ang z_vector))/ g0 ~3 B! f6 ~9 n7 i5 v# t1 R
- )
" q, Q9 R' h$ L3 e8 u1 T' A* W - ): q. }8 ?+ f0 V+ d, r
- (emod u_vector 11)
E: b- z# A C+ }( a( \; M. T - (emod v_vector 12)% q$ x7 b8 h2 b
- (entmod elist)
, W' J2 x6 k; I1 O0 }4 J - )6 p& W- P2 C2 `; G. c
- 1 v! R0 m1 |6 H6 A% H l- L. u! c
- ;;$ R, d9 X+ x& F5 {# i- r
- ;; Run imageadjust on given entity, working around possible
3 X0 b+ Y3 s3 J. A - ;; re-entrancy problems1 W% O, w- B v, M+ m' I$ V
- ;;! z7 a5 G7 @) C: d" ?: \
- (defun image_adjust (ename)5 v5 X' r5 }5 O$ |* C- n, ], u/ [
- (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...0 y V& q# p) l- E
- (imageadjust ename), D: h J" r( L& N3 {$ o
- )2 J& t: \1 `% o9 J t2 }1 @# |2 M
- + E8 {& j& V' r3 l$ ]4 D/ U. s3 o# w
- (defun ddimage ()
, M: F0 l) ^; I% y- [0 M$ S6 E* N9 O - (if (not (new_dialog "ddimage" dcl_id)) (exit))4 f5 t5 a" ?6 K3 D; m+ m j
- . y+ ]4 L" M! M& T" H* `: n- k
- ;; Grey out the thickness field.$ A# `/ h' ^. J4 j2 o1 ^ O
- (mode_tile "b_thickness" 1)
8 d- l5 {, u3 `3 A% j0 n - (mode_tile "eb_thickness" 1)4 L$ s9 @2 S. F' A% l8 P
- ) S" p7 |. R+ s9 ^. Y
- ;; Get the associated def object.
; C& t2 P1 s4 Y& t+ ?; b - (setq image:oname (cdr (assoc 340 elist)))# E8 F) w% X8 t" k3 W l
- (setq image:olist (entget image:oname))$ B# }0 u e, Q0 w
6 @- M" a9 _9 m/ h% j- ;; Set initial tile values- A3 Z. k- F$ A, F3 R5 {1 p$ w
- (set_tile_props)* o; ]! Y. j/ c8 O
- (set_tile_handle)
`9 G: y n6 |& d( _ - (set_tile_pt1 0)
" X: r' }* {; f/ L- R - (setq image:scale (image_scale))9 a! d- [ Y+ F. T4 f
- (setq st_ang (image_rotation))
$ `. X, I# G* Z3 n0 X- l# o - (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))( G" x. G4 ^' [" {
- (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))
' g, E" v2 o3 p+ ?) o r, i - (setq image:options (cdr (assoc 70 elist)))
/ @# N; E% }2 ~( B
4 Z+ D$ ~' N1 x6 ~- ;; Record the last multiplier for use in image_update function
' |6 E; Y5 D) c/ k; _$ [3 e3 q - (setq image:mult 1)) f. W( Q7 q. F: L6 \, U% a
- + C6 j( _$ W/ y
- ;; Retrieve the image name" z3 ^0 m( q$ R/ B' d8 f x
- (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))! Q+ D( B) ^* X$ h0 F: |5 w# a3 V
- (setq flag 0)
( u, y5 Q' t$ D% s7 W- B+ G: `) x8 W - (foreach n fn# r. @8 l7 n3 b9 \
- (if (= flag 1)% F# Y( J: }* R" y* |* H
- (progn% Q$ [0 v+ b( G. r
- ;; Display the image name* z. i! W, x. i
- (set_tile "image_name" (cdr n)): B" Q4 J8 d9 J* |+ D
- (setq flag 2)! C: W; D5 C& s
- )
' n; e- B2 P. j3 f1 }! @ - )2 w# Z- c2 y8 `* s5 l/ `- F V
- (if (= flag 0)
& e3 ~2 b6 E, ~- C! b: ]* X) \* I; B - (if (equal (cdr n) image:oname) (setq flag 1)). X- m! Q/ h% f
- ), _* f& S; z" D7 F
- )4 s- s( ]+ T7 r" K
4 t9 W, ^4 @, {" S& F- N8 `( s* M- (set_tile "image_path" (cdr (assoc 1 image:olist)))
9 _3 Y* J4 F9 x" } - (set_tile "st_ang" (ai_angtos image:angle))9 c8 S5 n' B' \; E( q
- (image_set_tile_scale)8 y/ ^4 ]! @% F8 F- M. C
* G. k5 l- K/ }1 y+ ] n/ w- ;; Check the appropriate boxes
N, ^2 Q/ p. u3 c: o: E. { - (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))
' |, P7 A! X% w3 d - (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1")), L5 j" A! j; m
- (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))5 s5 m4 l( q9 q) ]( _* d* J
- (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1")): D% [/ C3 |9 |& P5 m3 Q
7 O' M0 V% W8 k+ i3 \% ^- ;; Define action for tiles6 j* m( k# z3 p2 d3 R6 E
- (set_action_tiles)
: s% V: B2 o4 J) v+ L - (action_tile "xscale" "(image_update \"xscale\" $value)")3 P8 @+ x! ~4 ~8 c
- (action_tile "st_ang" "(ver_ang1 $value)")
5 |+ r& ?" {- g% u, z, C - (action_tile "wid" "(image_update \"wid\" $value)")2 |9 P/ |* ?3 |/ e5 ?
- (action_tile "hght" "(image_update \"hght\" $value)")2 w6 W) e! j0 R4 z
- (action_tile "image_show" "(image_disp_opt 1)")9 b/ q1 L1 h6 R+ S3 j5 K9 _: s) j
- (action_tile "image_non_ortho" "(image_disp_opt 2)")
. U- ]; M% c' \+ _ - (action_tile "image_clipped" "(image_disp_opt 4)")( L: ^+ H& X* J* R; W6 F; Y
- (action_tile "image_transparency" "(image_disp_opt 8)")
( _1 R( c2 D3 m - (action_tile "image_adjust" "(done_dialog 4)")& c9 D" }! ~% Z# h; u8 |5 h' x
( E- F% F) f1 L8 D* ?' i# e- (setq dialog-state (start_dialog))
* T" q( Q( \2 ]$ d, T' m1 F9 ? - (if (= dialog-state 0). U; i& R& b5 r
- (progn" c# j4 ?3 B8 q. j& a
- (reset)
: U/ l4 E7 ^* I3 A ` - (image_clean_variables)5 n6 v X( H6 m, J6 H9 G$ H
- )
$ S: K5 A! N, J* C. j) j& D6 L8 h E - )
2 {5 Q+ I8 { F1 L/ c( ^. \ - (if (= dialog-state 1)
5 Y* [: g9 q! p& p7 E - (progn
' \, `7 W* B; h, r" s - (modify_image)
( Z K9 I" s0 W5 C) n4 O2 k - (image_clean_variables)
2 k4 [! s: B N - )
2 i- i: ?' \6 Z/ A6 G - ); x* O" W, b, L- _6 y' h
- (if (= dialog-state 3)1 ?0 I: C v q7 \# m
- (progn
& a# i/ h% z& s& {* w. Z# O5 ?9 ^ ] - (modify_image)
3 z1 o& P* ]7 f' Y7 w. z* r1 r - (image_clean_variables). n5 h$ p& p; b4 i- E. g
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))- J/ W+ A& d, P* _! V" d
- (ver_pt1 0)
4 O$ K6 Y! ?7 J; c! Z9 | - (ddimage)' e. G" ?; j7 q4 e+ `. [
- )
( f3 z2 `# J$ e' J4 L7 P - )9 {+ ~, O1 I: Q$ ]4 s
- (if (= dialog-state 4)8 i2 h0 C" o+ f3 r' j, c
- (progn
# x0 r, l& m7 V+ \) s8 o f# u - (modify_image)# `) @) k6 @* k2 l$ s
- (image_adjust ename)
& z, c: G5 r3 A* S/ J3 S - (setq elist (entget ename))
8 E+ T7 [. Q( a- J, t - (ddimage)
& Y$ k" u% u- @6 w2 y) [1 U/ q - )
6 _5 R5 F) o+ w! Q - )4 f% f, C7 S+ K) Q* c
- )
* I0 E' H- U+ Q3 A - & |3 ]! d( H }; I
- ;;- n& N1 d2 N$ c0 Z1 m
- ;; Modify BLOCK (and its Attributes, if any). d# _" t. ^/ ^3 C( e: [
- ;;8 N# m @6 x% {% n7 O/ o
- (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr8 W& W! U/ l: a1 y
- new_wid old_wid old_rot scaling old_scale7 ^2 y$ S/ f0 X
- xdelta ydelta zdelta xbase ybase zbase ipos)
) G. u0 ?' |3 u, s4 L" d - (modify_properties)
7 _: R5 A% ]! v- u2 C* D* Y7 r
/ H' [: w5 g. L- X8 d- ;; First, translate and scale the Attributes, if there are any.$ N c+ o, ]: s! z6 n9 e
- (setq old_rot (cdr (assoc 50 elist))
" S/ d( s, r2 q, C7 H6 L - old_scale (list (cdr (assoc 41 elist))% J7 l z; \. {$ c0 k2 f' c) s
- (cdr (assoc 42 elist))
1 g: u' `3 c1 @4 Q6 u - (cdr (assoc 43 elist))5 E& G8 R9 `6 v% o1 C
- )
0 L/ v0 W# ?, T0 h: p% e( p - scaling (or (/= xscale (car old_scale))
( }' I: z; S/ f - (/= yscale (cadr old_scale))% y! ~$ E/ l6 T: D. F
- (/= zscale (caddr old_scale))
1 \! i- a/ o. {- ~: Z5 M7 O4 j - )5 ?5 {' x1 ?; p2 M4 U
- attr nil ; No Attributes modified yet
5 q p8 L, H6 D) I - )
; ^# s2 Z) i! P' i% _; a: g - (if scaling: U, ?& M; Y& ^3 H7 _% J' {
- (progn
1 f' g# Y: |* z' @0 c4 S, Q - (setq xdelta (/ xscale (car old_scale))
$ v( ]2 ^6 `3 Q. q; C9 e% ` - ydelta (/ yscale (cadr old_scale))) q6 K! }' Y$ K8 x) k
- zdelta (/ zscale (caddr old_scale)) y. T7 e" X# O& c: {! ^$ Z
- ipos (cdr (assoc 10 elist))# G: D* }0 P1 C9 {" @: @- N
- xbase (car ipos)! z. V7 W6 G$ c/ i
- ybase (cadr ipos)" \+ B) a- E8 O% p1 c( M
- zbase (caddr ipos)
' O- O2 N0 I. H - en2 (entnext ename) ; First Attribute, a& k5 ?% J A& p2 n( j( v
- )
% v' w' o, D* i$ h* e+ M# s
9 i2 Q5 t1 _1 z+ ^: |# V# m& Z) y9 O- ; If the Block is rotated, temporarily un-rotate it, along
J0 H$ Y5 ?9 H- R* N - ; with all its Attributes, so the scaling/translation of the
/ N$ r0 C* }* e6 p: Y$ _5 [ - ; Attributes won't have to take the Block rotation into account.4 d7 a' k, l# g: f2 H. V) \
- (if (/= old_rot 0.0)
. h# H5 x, `# v& ^& ~* L0 Y - (progn
2 Z2 q' `9 F( d0 d' ? - (command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))" n B, T9 G9 c2 B# l
- (setq old_rot 0.0
4 d/ A6 V0 q: w' H% @1 ~ - elist (subst (cons 50 0.0) (assoc 50 elist) elist) H$ y) ]# y: {3 `& Z
- )' n1 G; @5 w6 G5 Q/ d/ |
- )
, i# Q* d3 k# L - )
# U; a A; w- v/ K
* g, x7 Y* \$ e5 \. B( r- (while en2
# W0 q$ k( Z! `7 o - (setq el (entget en2))
3 ]3 v' U! P" ^5 A$ D& D - (if (= (cdr (assoc 0 el)) "ATTRIB")
, s' P8 ^* D; d8 _+ | - (progn
7 j: j2 \4 A+ u" o/ }! k - (setq old_hgt (cdr (assoc 40 el)) ; Height$ i! r( k/ r; A, m q; o# P( ~2 ?
- old_wid (cdr (assoc 41 el)) ; Width-factor# `# L0 V8 u# Q4 R5 ` \' E. U
- oldp1 (cdr (assoc 10 el)) ; Generation start point/ U& n X( a1 C% g5 W4 O
- oldp2 (cdr (assoc 11 el)) ; Optional alignment pt' q% T( g( B; B Y4 T/ ]5 t3 w
- ha (cdr (assoc 72 el)) ; Horizontal alignment
/ x5 \" p% g; l$ L5 G - va (cdr (assoc 74 el)) ; Vertical alignment* @4 p6 G9 H" o' e
- 1 T" _" V! K" f) P, @7 H. W
- ; Translate gen. start point
' M% o0 A% u1 ]% h$ o, X8 \ - p1 (list (+ xbase (* xdelta (- (car oldp1) xbase)))% G& q7 f( [% c# Q7 c7 R, `
- (+ ybase (* ydelta (- (cadr oldp1) ybase)))/ k% [" x0 b3 b; m$ F+ }
- (+ zbase (* zdelta (- (caddr oldp1) zbase)))5 I2 g0 r0 X+ e
- )
3 K+ H* h: h' e$ u7 s - el (subst (cons 10 p1) (assoc 10 el) el)3 A- h: k* N& Q* i; A
- )
4 q$ u, T1 p2 c# u* h* I c$ ^
/ z0 ]7 E6 h/ H) a- ; Translate alignment pt similarly, if present and applicable
j5 S1 E- u# R - (if (and oldp2 (or (/= ha 0)- b' ?! ^* f K }1 c
- (/= va 0)! p6 ?2 m; x- v9 G6 ?2 o
- )
) R: Y, y& U. u: e7 U - )" |# ?9 \" ]7 W) H7 e$ Y
- (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))2 F. g" e K: a0 b! l
- (+ ybase (* ydelta (- (cadr oldp2) ybase)))
! S) n5 k* G# y4 Y6 o& p; m5 t3 { - (+ zbase (* zdelta (- (caddr oldp2) zbase)))
- l/ U8 i R7 I2 h' ~% i - )
( `: ~. [& R2 g - el (subst (cons 11 p2) (assoc 11 el) el)4 ~; W" r8 n+ J% [7 n% p% D
- )! i8 t" v0 e9 f# X5 a5 }. p1 B
- )
. C: } w- B$ t! ]3 c
9 z0 O6 j5 C5 m# D- ; Each Attribute's height and width-factor were computed7 p# w% j. m; p+ `% X. ^/ t0 a
- ; based on the Block's scale factors. Adjust them now,
* B* P' Z! v P" h6 [5 h - ; by first reducing to values for 1x1 scale.... a8 y6 a. ~7 L0 C y4 d
- (setq new_hgt (/ old_hgt (cadr old_scale))
4 ]$ j" m0 L3 H3 f) f1 @ - new_wid (/ old_wid (/ (car old_scale) (cadr old_scale))): f) Z* }4 q4 E4 y/ F
- )
* R2 y6 Q& k: \6 I4 o* X' N - ; ...and then rescaling.
+ u: ~3 X' @9 z3 w% T - (setq new_hgt (* new_hgt yscale)
}! v2 ] h4 K5 G, p - new_wid (* new_wid (/ xscale yscale))* N7 @, j* B2 l/ [; S- w* V% v
- )
- z! M \- a/ g# }. C - (if (/= new_hgt old_hgt)
: s; O4 k- j1 E! _& T, L" b2 h. W - (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))
+ y4 _2 x0 \0 m$ {4 a* H: @ - )
/ u2 x9 A$ E0 z6 e4 N - (if (/= new_wid old_wid)
3 W: U+ u4 c. i; ]( [0 e1 k& K - (setq el (subst (cons 41 new_wid) (assoc 41 el) el))3 L, _4 m& K9 j4 D! v" i% I
- )$ q4 ^8 a" ]( V0 \4 ]. c9 v" E
- (entmod el); v- j! d: _2 }0 Z
- (setq attr T ; At least one Attribute modified
2 k# l. x) h/ { Z - en2 (entnext en2) ; Next Attribute
: ^0 a- V/ ^* g9 t6 r - )
$ ~$ x6 b5 i- O" Y) _. m$ J1 G: c; V - )
- a. K+ z2 |2 @" ^ - (setq en2 nil) ; No more attributes
4 p* @9 F- q) b- V+ G' c - )
- E- s* O5 O' `6 U( [/ d - )
' s6 V" ?6 m8 l4 x - )
$ a1 P$ q# W: t8 q) z4 E8 `9 X - )
/ s# B* V: ^+ l
1 v* {8 ~ x, H* n4 C" B0 G5 g- (setq pt1 (list x1 y1 z1))$ I, i* L9 Y: K9 j6 P6 n$ c- C
- (tempmod xscale 41 nil)
* E+ `4 a5 G9 s a% w1 i - (tempmod yscale 42 nil)
6 m! L& ]' L* G+ m - (tempmod zscale 43 nil)
& J- s3 ^2 ^: Q% V - (tempmod col-sp 44 nil)
- b# E+ l; f' h9 y( Q( t! l4 E& o+ H - (tempmod row-sp 45 nil)
4 o1 y: L# Y. g7 O, `* k* P+ X - (tempmod columns 70 nil)
0 K8 R3 _& U) I& M8 x& x, _, g - (tempmod rows 71 nil)# ?2 [8 l/ ^7 X
- (if (= xclipmode nil)# e3 |( j, b" v% s% c
- (entmod elist)" a6 T x7 A5 {, }9 R
- (setq xclipmode nil)
4 N% B1 c% p2 L e j8 ] - )
, T1 v* o1 o' d! L5 { - (move_pt1 1)9 _5 Q2 v1 @4 r n
1 L0 J6 H1 B0 \$ W) V: U- ;; Now do the rotation with the ROTATE command.
7 S" Y* q3 z9 v/ f$ I) h - (if (/= old_rot rot)
g D. G2 t6 D7 ` - (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))
: ], T) i" N3 Y& U/ ]2 N& y - (if attr ; Else, if attributes were modified,
: r3 m5 i; G# v2 I' }3 z - (entupd ename) ; just regen to force attrib display
0 {/ U; @5 a, u+ N2 u - )
2 w/ P" I/ d' M. b7 i5 F! o, h1 p - )
( k4 B: R# h' s& i0 {5 n - (setq elist (entget ename)); R9 w) `( I, U" n- c+ z
- )
# q2 [& z4 e. z: c, B2 P - (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)
5 u! G) I' y* Z' q5 L - (setq newhatch 0)
- s. M! R+ d+ L$ V' B+ ? - (setq blkname (cdr (assoc 2 elist)))1 q$ J6 l- C+ q' I# {* y
- (setq blklist (tblsearch "block" blkname))
# u2 |( }: B: O - (setq blktype (cdr (assoc 70 blklist)))
- V$ y/ a' |! A4 q) ^' k - (setq xcliponoff 0). V" g# L3 u3 y( ~" T, }
- (if (or (= blktype 0)(= blktype 36))' A1 c/ C) H( Q! F0 R9 O, ^6 h' w
- (progn& ]% |; C) P5 V2 |4 z) ]
- (setq xcliponoff (xclipon elist))
7 a& g4 D, q+ J8 q% t - (setq temp_xclip xcliponoff)5 _* H' M2 o" ^3 E
- )
J4 T2 A% J. H, P9 O* a - )+ L! d" i0 [( N! X6 R$ V8 T) u
- (if (= (logand blktype 4) 4)
D V# E9 Q( G" i - (progn: D; m) P0 E8 e) p6 C8 s0 i8 f; @
- (setq xrefpath (cdr (assoc 1 blklist)))
H- c/ g! I$ U' |" \' Z5 B6 g - (setq help_entry "modify_External_Reference_dialog")4 Z1 B% M% L+ ~* P
- (if (not (new_dialog "ddxref" dcl_id)) (exit))
& v4 O, }% B; q1 L/ G# \ - (set_tile "Bl_name" blkname)
% f% O: s, v! V6 V$ j; c - (set_tile "path" xrefpath)
4 ~5 C4 s, |, W) T$ g9 l; S - )$ F- q4 [5 b5 [& B* c
- (progn$ u8 y5 p/ N' |- ?) i4 G% B; `
- ;; Get program name for use as Xdata app name) }- k) `- F/ g: b5 g
- (if (not (setq program (getvar "program")))" I; Y9 K/ |! V
- (setq program "acad")
$ l" p$ v" p: M/ m& S - )
+ G- I. i% a# O" K- U3 |! S - (if (and (setq temp (assoc -3 (entget ename (list program))))) r: t, I$ W9 G
- (= (cdr (assoc 1000 (cdadr temp))) "HATCH"); R( \3 S9 j& R$ L1 E, }: J3 I
- (assoc 1005 (cdadr temp))
! Q% q; L, d& O - )* B/ o7 N* X4 ?3 e3 L2 r- v# h+ ^! Z
- (progn
) P$ \# H; i: s, Q4 [+ p - (setq newhatch 1): w% T \/ y; N. ^
- (setq help_entry "modify_Hatch_dialog")
2 l5 i1 k! ~: U1 I9 S! N - ;;; convert the object into a new hatch' k' t7 S( R. o+ p. z/ U* j2 y
- (ai_undo_on) ;; enable undo
' {, ~- x+ D0 B; ~- i$ M2 k7 p/ P0 O - (COMMAND "_.UNDO" "_Mark")! t0 f3 e" d2 m- H
- (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")
% D: n2 O3 e0 O2 L; V - ;;; suppress nasty message from convert command- r8 q) G) m% P) l6 s
- (princ "\r \r")1 M* o7 Y. K1 c A7 ~
- (setq elist (entget (setq ename (cdr (assoc -1 elist)))))2 T% G3 o4 K9 y
- (setq old-elist elist)
5 ?9 T# c% z5 |7 w - ;;; If we have cancelled ddmodify
2 B: o: S% u% w7 ]+ i b - (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok
; z& {5 v- E- f2 Z - (command "_.UNDO" "_Back")
) r0 [1 w# R& H% Q - )
: k) L9 L$ i4 ~: c; x - (ai_undo_off) ;; restore undo state
, c/ x. _: b! Y - )* X% @3 P% D% y
- (progn* m% B$ W$ }- C k9 s
- (if (not (new_dialog "ddblock" dcl_id)) (exit))
0 U Y8 D: T9 D! v. v- Y0 M - (if ( = "*" (substr blkname 1 1))
& x; ]7 a+ ?0 @1 D+ Y2 h/ w1 ]) F - (set_tile "Bl_name" (strcat blkname " - Anonymous block"))
7 h/ ]9 \) n0 J8 B% v - (set_tile "Bl_name" blkname)- v5 O7 J* h1 S0 f0 ^" Q
- )7 F/ M7 K6 Z! w( a3 ~2 E
- (setq help_entry "modify_Block_Insertion_dialog")
6 }5 W( Y$ [# [9 | - )
& H: }+ B! e i" t! Z4 b6 X8 e6 W - )+ P( K$ N7 A" R* Q8 h1 z. |8 B
- ) n' Z. T$ d9 ?' q7 q
- )% a" v5 X2 _( f+ K% F/ ^+ J3 z
- (if (= newhatch 0), C* A" A' m! M# c5 w
- (progn/ Y! D. i5 A4 ~9 f( C
- (set_tile_props)
. _. t6 d1 b8 M - (set_tile_handle)! c9 j* F+ f* u
- (set_tile_pt1 1)4 D# E: m2 P( ~& P
- (set_tile_rot)
) Q+ V: p7 N7 H" P' q' V/ `, U& J3 k - (set_tile_scale) }; l5 r# ~0 O* ^& I, N
- (set_tile_rc)$ _3 E/ v/ B7 g& u6 S
- (if (= (logand blktype 1) 1)
$ j8 V1 l) A; \ - (progn" V! p( S% P; K) s* ?4 A- A( s
- (mode_tile "xscale" 1)' t0 c& t% j( T: [9 O& y8 V! _ P
- (mode_tile "yscale" 1)- B& B& Q9 r" y1 ]$ \' t+ V9 U: p5 V
- (mode_tile "zscale" 1) _! k% f0 o# \5 F
- (mode_tile "rot" 1)
% o e& A3 y% @ - (mode_tile "columns" 1)
" t( V8 P' Z* j% t. r' P% N9 E - (mode_tile "rows" 1)7 T, D) G0 r. ]4 q6 X* ^7 e
- (mode_tile "col_sp" 1)
9 O4 e* ?/ ?5 g6 g - (mode_tile "row_sp" 1)
; ?' i$ g) p: m) l8 I! y - )
. N3 i/ Q- k9 z% g; n - )0 L* a$ G! L# Y
- ;; Define action for tiles
# P6 k$ |: ?$ e- `: }& A s& q! | - (set_action_tiles)7 B( |! P7 i0 t
- (setq dialog-state (start_dialog))
; \& R' j. D5 i - (cond1 [( e' R" l' j9 W+ ~
- ( (eq dialog-state 0)
8 L8 S1 R: f5 p( H5 z! a& C% d0 q: o, D - (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))
+ R Z" O- P) m$ s; Y - (move_pt1 1)/ _% j1 y: H1 S5 G' _
- (reset))
$ s. R0 A/ j' _$ W% s - ( (eq dialog-state 1)
$ w5 s( p* X- d3 H - (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))
% t/ B( x1 e ^% X/ q - (xclip)
: j# @! V4 {, c0 f$ N5 D - )
7 b. j; Y4 y! z6 u+ p | - (modify_block))9 O# y' t5 u+ D$ a' B% R1 [
- ( (eq dialog-state 3)7 v/ d: @+ v: u2 S
- (modify_block)
: q2 ]6 s. b+ Y! }3 L+ S* l - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
2 f: s' M3 k1 ^! M1 J% [8 H - (move_pt1 1)% J+ o0 z4 v/ R5 E$ V
- (ddblock))9 H, k/ x5 S7 i0 `% N* `/ d% l3 M
- ( (eq dialog-state 4)0 F3 g. L$ e4 a1 R
- (modify_block)
% a) Y6 E- c" }# K1 T3 a - ;; Get current handle.( a2 r$ P$ l6 Y" s$ K
- (setq hand (cdr (assoc 5 elist)))4 f* l# z* I2 ]6 R- o" ^
- (command "_hatchedit" ename)- Y9 E6 @( r& n8 |& L1 @2 f2 l
- ;; If OK in hatchedit, a *new* entity is created and the old one/ m7 e' j# c2 v1 C' P4 c
- ;; is deleted. So if the old one exists, it must have been a
2 o1 O; m7 O2 S# z - ;; so rest the entity.
& v) J( D- ]' p - (if (entget (handent hand)) (reset))0 S( O. m: L: n6 I; P
- )
{! v i- ~5 y- J* L. g - )( q5 e5 ?3 t/ t( n y8 @
- )
6 ?( T- g2 Z% L5 d9 z# ?. U0 u$ P - )
- A# i8 } c' O- {/ n - ) I1 e# ^5 a- U, O
- ;;
" l$ I/ t! m- z" e - ;; Modify SHAPE
B3 C8 F( {% o0 s5 Z- F- x; I0 \ - ;;% m7 p" f0 }3 O' \6 ~
- (defun modify_shape ()# @9 `- Z4 k$ I, i0 m- m
- (modify_properties)
6 C8 k: ]; k; {: N; n3 u3 K3 r: h8 @+ q - (setq pt1 (list x1 y1 z1))
% { _. Z' E8 y9 i; p$ a Q - (tempmod pt1 10 1)
* Q& H' m3 r9 j$ l$ {1 Z - (tempmod hght 40 nil)
6 f6 [2 q( I* _8 v9 A - (tempmod wid 41 nil)
; S a) @4 ]* {5 r - (tempmod rot 50 nil)- m8 U8 f& V* A/ }
- (tempmod obl 51 nil)9 w) T8 R% p! v7 b0 Y
- (entmod elist)
; E- r/ O' Y% O9 ?4 X - )' {3 `7 t: j9 c- _0 t5 F
$ O" |' g* c( e3 x8 q; O1 `- (defun ddshape ()
) @* s% i D% Y& \% ~/ R - (if (not (new_dialog "ddshape" dcl_id)) (exit))
5 I' N+ o) e" O/ ` - (set_tile_props)
1 Q( l8 d% C8 G* ~; Q/ c - (set_tile_handle)+ `7 N! F. x" ^% V7 k6 Q, E
- (set_tile_pt1 1)$ i9 \2 P h8 a( i
- (set_tile_rot)) M4 s& w+ t3 k* W! F( T. ^
- (set_tile_hght)( [; }% z, L4 f) h$ j
- (set_tile_wid)' F8 D9 U% S6 D: P5 e( \
- (set_tile_obl)
8 M/ \2 m8 u8 B$ Z* F5 U: x - (set_tile "sh_name" (cdr (assoc 2 elist)))' F! ?2 h7 g8 R3 M+ ^
- ;; Define action for tiles, d2 r7 o, V1 C T9 L! F& E! r
- (set_action_tiles)
! R' }/ v7 m1 G( r; i1 j - (setq dialog-state (start_dialog)): H4 j4 ^9 L9 P* T8 s0 n
- (if (= dialog-state 0)
k) ^, A" N1 C5 A" m; p7 c - (reset)/ j3 O o+ [: Q7 b
- )
: v2 s" U4 M4 t$ w - (if (= dialog-state 1)4 w0 j x# r& ?3 O/ y
- (modify_shape)
( Y$ a0 c$ q) j$ e - )* w) c( z8 ^8 z( M, | E
- (if (= dialog-state 3)8 a3 n) }* s; m& O& o! @
- (progn
8 C- @) ?3 }+ l/ C7 r% N; x - (modify_shape)
; f2 t# M! K. {% x, T8 c& D J! j - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))) f% W& U- Y3 G, X$ v
- (ver_pt1 1)* N5 X' K% K$ m: {$ @0 `
- (ddshape)
; \# _$ W- w9 w' G! M - )
; ]! v/ n0 u1 C: }( @: \ - )+ K5 ~( g' M# M
- )
" H! [# Q$ Z2 }* _ - ;;
/ J; J# m4 s2 t+ k& Z" |" q - ;; Modify TEXT or ATTDEF3 L% K3 }$ z0 ], b# B
- ;;
0 S$ V5 r j: `( k9 |1 y0 O! ?6 D - ;; Set bit code for upside-down and backwards setting
$ V6 k5 N0 b3 P6 R8 T! v - ;;9 R) g. F$ ~4 m& G7 r$ _
- (defun code_71 ()2 X" R' G: j* M$ g; j
- (cond ((and (= bkwd "0") (= upsd "0")) 0)
: c# L3 Q/ k' f8 W - ((and (= bkwd "1") (= upsd "0")) 2)
7 u4 x, c* x) Q+ Y# T& k$ k' ~' Q7 s - ((and (= bkwd "0") (= upsd "1")) 4)
. ?9 R+ S& j* o8 `' R) k - ((and (= bkwd "1") (= upsd "1")) 6)
1 `3 I! |6 d2 e$ U( F4 f0 I9 G - )
2 P6 a/ q$ ^7 W/ ^" ]$ S3 |( H - )
8 @8 i' W$ R/ c/ K' ]; M9 f - ;;
: m; b9 k+ v+ W% m9 @# ` - ;; Style action. Reset widget values to style defaults
% {8 ?: p* T( ]7 H- \" v - ;;" m& Z' Q2 J$ P0 W4 t9 c B
- (defun style_act (index / style-list)/ }. ?( H" i" w4 X. Z. O
- (setq style-idx (atoi index))3 y2 Z- ], u' `) T, B8 i8 E
- (setq tstyle (nth style-idx slist))
( E7 D( v6 y) C4 `3 i; Z E$ Q6 A - (setq style-idx (itoa style-idx))* |! o% J% Y$ o0 d
- (set_tile "style" style-idx)
) B1 u/ F/ _5 x7 b* D* ]2 t$ G - (setq style-list (tblsearch "style" tstyle))
: s4 T' M" r: J- r - (setq shght (cdr (assoc 40 style-list)))3 i: ^4 D" w; A! D
- (if (/= shght 0)% Y; z, C3 }# ?8 D9 S
- (progn
# c* }* B" @0 { - (setq hght shght)
+ d0 h5 ?) f( y - (set_tile "hght" (ai_rtos hght))
6 }4 N: G4 s9 p - )
9 O2 |# A( M* C; c B - )+ Z$ ` ?* j, j# w! e/ }9 i
- (setq wid (cdr (assoc 41 style-list)))$ f$ l, Z% J# n8 g- N) Z4 S- E- J
- (set_tile "wid" (ai_rtos wid)); z0 _% Q2 [6 Z, N) V
- (setq obl (cdr (assoc 50 style-list)))
! h# f2 ], C" n/ j - (set_tile "obl" (ai_angtos obl))7 q) X7 Z, T" U1 n3 m
- (setq bk-up (cdr (assoc 71 style-list)))
+ ]! O: ^) }. d6 t" ]: d( i - (if (= (logand bk-up 2) 2)
, q$ _5 j5 j9 U8 @1 c - (set_tile "bkwd" (itoa (setq bkwd 1)))
' W) ?2 l. L) m% Z3 J - (set_tile "bkwd" (itoa (setq bkwd 0)))2 j+ Y% Y+ z! j$ Q; V# b9 _
- )1 L: N+ s" W( j& Z6 E
- (if (= (logand bk-up 4) 4)
3 |8 V0 r2 l/ t$ W4 x( Z - (set_tile "upsd" (itoa (setq upsd 1))) c7 v7 ?! z) q
- (set_tile "upsd" (itoa (setq upsd 0))). A$ Q% \) W% [4 Q
- )
0 X9 L' J# k7 B - ) _% [0 I1 t/ ]+ L6 M6 l
- ;;
4 l* y; {. q% @4 d - ;; Justification action. Set vertical and horizontal alignment variables,
8 F# j5 w5 o' r5 I - ;; grey out rotation and height if alignment = "aligned", grey out rotation
5 v/ n. ?: m: A1 R1 U4 k* X$ G - ;; if alignment = "fit".0 f2 r6 l% ^: @. p( ?* c2 P
- ;;& Y2 p" O' R1 I2 y' S
- (defun jlist_act (index / templist)
- w% W: y# y; s6 |1 z' X - (setq just-idx (atoi index))
& K* T# V9 y$ A- R5 X - (cond9 {/ O; i, p( K4 q$ g0 Q
- ((= just-idx 0) (setq va 0 ha 0))
' p8 N' y6 `* J6 C+ X - ((= just-idx 1) (setq va 0 ha 1))
" P* O) e9 e `* G - ((= just-idx 2) (setq va 0 ha 2))2 V& a K( x3 f0 e* }
- ((= just-idx 3) (setq va 0 ha 3))8 B2 m, j, N* n3 S( k# G7 I
- ((= just-idx 4) (setq va 0 ha 4))
- w" E( T+ j2 S: n0 @5 y' l - ((= just-idx 5) (setq va 0 ha 5))
3 C4 ?# k. l. D - ((= just-idx 6) (setq va 3 ha 0))1 L' }2 @! b% ~$ I- Q3 k
- ((= just-idx 7) (setq va 3 ha 1))
6 u( W e$ i7 C; c. g {1 r$ M. N - ((= just-idx 8) (setq va 3 ha 2))
+ C3 m2 U o. h2 y: Y- X - ((= just-idx 9) (setq va 2 ha 0))
3 B+ b, l: W1 j4 o8 C4 M) Y0 |" }" K - ((= just-idx 10) (setq va 2 ha 1))$ a# h% S0 n" q
- ((= just-idx 11) (setq va 2 ha 2))' ?8 [+ m# y* {2 p# q
- ((= just-idx 12) (setq va 1 ha 0))7 S9 ]+ j2 W. N' v3 F0 l E4 Z+ G
- ((= just-idx 13) (setq va 1 ha 1))
# ^0 ~7 i2 P/ w2 X7 d/ n - ((= just-idx 14) (setq va 1 ha 2))
0 u4 w- I6 q I6 K7 W - )% c. j* D* O2 r0 O2 {$ W3 I L
- (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text( q- c' v: A# \0 [
- (mode_tile "rot" 1)
3 P3 x0 Q! a9 n% d - (mode_tile "rot" 0)$ t. ?) n3 o( f! l& Q
- )
! c+ v# M; e L3 \/ @ - (if (= ha 3) ; If Aligned text- K- E2 J; i# ]! \
- (mode_tile "hght" 1)
. L0 \; d E% t ^4 {0 F- `2 R2 w - (mode_tile "hght" 0)3 q. e [8 a1 @6 M# m
- )
4 x, V7 S' }! z! ?, v - (if (= ha 5) ; If Fit text
3 C) v5 O: M2 r2 f ] - (mode_tile "wid" 1)! y, g; H" H& }5 w! g7 }2 [$ i$ C
- (mode_tile "wid" 0)5 y, b' B0 l0 K
- )4 G+ a/ T/ j/ Y8 Y- Q
- ;; Reset rotation and height if changing from aligned. q" Q+ {2 }9 Q, L; N! A0 h
- (if (and (= ha-prev 3) (/= ha 3))0 @( Z. `/ q1 n: \% i' [
- (progn$ |. g9 v- f3 { ~. O. t2 u; z
- (set_tile "rot" (ai_angtos (setq rot 0.0)))( n" i0 w2 c! ~
- (set_tile "hght" (ai_rtos (setq hght 1.0)))
. {0 g9 l- Q/ b+ H/ p& U" {+ R - ); B. T+ N1 A; S# e, ]. r
- ): Q2 X/ V& Z$ ]' h
' @, n8 D* c0 Z- ;; Reset rotation and width if changing from fit.
: V+ k7 x" g( m& ^' n. R1 ]/ l; V - (if (and (= ha-prev 5) (/= ha 5))+ C0 P+ C. M* ^' m
- (progn+ n9 t$ f3 z- y1 y; ?# w$ D
- (set_tile "rot" (ai_angtos (setq rot 0.0))), t$ @8 p. X" ?! r5 c
- (set_tile "wid" (ai_rtos (setq wid 1.0)))
D& q+ |/ g- C8 e - )
, q( c! @# v; n; T9 t5 \ h" D. S - )% t8 @. G7 @' S2 Y0 u7 r) k$ r
( @# E |, ^3 H$ E8 ]$ F& r+ z" |$ @- (setq ha-prev ha) ; update ha-prev for next time8 d( b! O2 I6 s
- (setq just-idx (itoa just-idx))" T H4 U& t+ _6 i# b$ d6 y
- )( [0 J. s$ s! u; v5 {. l% C
- ;;
- P2 m. r) ]3 b. ^ - ;; Set intitial alignment setting based on vertical and horizontal alignment7 a, T, S! X( x4 z9 u: \
- ;; bit codes.% x* c x. }2 V# k# }
- ;;
# G( }! R* a) ~ - (defun set_just_idx ()* h+ i% @+ O- V) I# a
- (cond
* P9 ^% I9 D) v - ((= ha 0) ; Horiz alignment = Left" r2 e S4 ?9 [3 o
- (cond
1 \+ a$ R% z K; ~9 D. N - ((= va 0) (setq just-idx "0"))
# X+ k6 K1 P4 f - ((= va 1) (setq just-idx "12"))
8 }3 W' U! B4 X/ m6 v' T0 D% E - ((= va 2) (setq just-idx "9"))% ]9 \ P+ W9 Q b
- ((= va 3) (setq just-idx "6"))/ D" u2 q% d _
- )+ E# g2 m& H; D5 \: J
- ): z0 [$ T) q& Y9 [+ W- e4 e
- ((= ha 1) ; Horiz alignment = Center; \) {5 r8 j& }" S
- (cond! p( q7 {9 n2 C' @* b& C' L" f' V
- ((= va 0) (setq just-idx "1"))
# n" h6 U: Z: o - ((= va 1) (setq just-idx "13"))6 ]! p& {+ J7 ^( B# f
- ((= va 2) (setq just-idx "10"))8 @) C6 _, m8 C* @: G. R: M
- ((= va 3) (setq just-idx "7"))6 p; d3 f, S# c7 I
- )
+ g3 R8 z' h' `) }9 H7 h; E! W2 | - )
# R3 ?( R9 V @) J/ ^* D - ((= ha 2) ; Horiz alignment = Right9 C* ^7 f+ {" J( U
- (cond
1 p! p( {8 m" G) O8 p( K - ((= va 0) (setq just-idx "2"))+ J3 e2 W* p4 e( y6 C% n% t$ S4 N0 U
- ((= va 1) (setq just-idx "14"))% |' [% I2 n q7 T1 b
- ((= va 2) (setq just-idx "11")): T+ \3 k9 c5 R- b \& _1 |" n
- ((= va 3) (setq just-idx "8"))6 Z8 q* z0 y) p) A' Z) I
- )
2 I, _( u3 a: A% M' H. {* m - )
% U, [. k7 ~* r% l - ((= ha 3) (setq just-idx "3")) ; Aligned3 k) }& ?; j2 [3 z
- ((= ha 4) (setq just-idx "4")) ; Middle
1 T; \# s/ D4 B* C) K5 a/ `3 T9 v - ((= ha 5) (setq just-idx "5")) ; Fit/ a9 ^; g2 f5 J$ ^
- (T (setq just-idx "0"))
9 Z& ]0 M: v9 l( z# [ - )
9 }9 O) s1 {1 Q/ t - just-idx
! l" J9 B2 C d) r - )
: V( ~2 F) b) q6 `' [8 g2 ]
. D$ U0 v. y$ q) K- (defun modify_text ()8 N y$ P8 [, t
- ;; insertion point7 j/ T. ]2 X& S+ w/ h& B; m
- (setq showpt (list x1 y1 z1))% g+ p/ R- w% r4 ]2 R
- (setq bit-10 (trans showpt 1 ename))
& R" i3 r" a2 W; e: ^% C - ;; alignment point0 y; u: S% {0 V, t3 }, H
- ;; for 'Aligned' or 'Fit', alignment point must be different) Z7 ], X: U! l( g
- ;; for all others, use insertion point( Z2 O0 h1 N7 T; H" u& B9 `) Y. ^
- ;; (ACAD will recompute insertion point): k# R- R2 k1 K6 h* f1 j9 J8 n: Q7 S
- (if (or (= ha 3) (= ha 5))
3 Z4 B+ E$ h9 G5 m% | - (progn
: v8 J: [" e7 ^7 Q8 I - ;; if no alignment point, fabricate one
; [5 z$ S5 Y7 X2 Y: }! E* A- G - (if (not alipt)8 X! ^( b4 S/ c. d9 i6 P) m
- ;; add text width to insertion point( c' V, Y3 o& u, r
- (setq alipt
$ x# ?& H' X r6 A, K( X - (list (+ (car showpt) (car (cadr (textbox elist))))( S. n, j; I' A1 x, t9 Z" o9 y
- (cadr showpt)
( \# ] N( G1 ~6 z6 w, _& B& z - (caddr showpt)
. |2 w3 @7 i1 T: N9 `2 _ - )
6 o* |0 p! M& ` - )( C3 D% b+ r6 q' F
- )- l+ e) K7 x! h
- (setq bit-11 (trans alipt 1 ename))- |, t* n7 C+ X! D, v* O
- )! X z/ O/ d, E# V" ] w$ D
- (setq bit-11 bit-10)
4 y# B9 S" |8 W2 @5 i: W0 E4 g - )0 W" m; X. c& I9 L# A
- (modify_properties)2 ~+ u- {: o4 z+ o, K
- (tempmod tstyle 7 nil)/ B. v$ F- A k3 o. X
- (tempmod bit-10 10 nil)
1 h b1 E' R0 ^% r( V2 D$ ] - (tempmod bit-11 11 nil)2 ~& z+ ^/ O( M y( t; {* P
- (tempmod text 1 nil)0 T5 s7 v+ V% G+ a: _
- (tempmod hght 40 nil)' c- M# S; F) j7 o3 P! K/ g
- (tempmod wid 41 nil). p8 U/ v# |, a5 T2 n$ X
- (tempmod rot 50 nil)5 A+ s2 f7 ?& h" R* h
- (tempmod obl 51 nil)
3 z, @( v( T& L) L6 h - (setq bk-up (+ (* bkwd 2) (* upsd 4)))
; W5 }2 \ P* g( k; e+ Y - (tempmod bk-up 71 nil)' e; O- }) l' C D
- (tempmod ha 72 nil)
v5 _! N: c$ v - ;; Attdefs use 74, text 73
. [( o2 ?( m* o; n3 K8 J: _/ X5 ^ - (if (= etype "ATTDEF")% S, J% j( t; B% G
- (progn
+ p- a/ E* X2 M1 [3 V6 u - (tempmod attag 2 nil)- B8 {" G; [; v. S
- (tempmod atprompt 3 nil)
( y/ Q+ w, h/ c/ \4 T( l0 G) q - (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))
( W' v/ e3 {; H* s$ L - (tempmod icvp 70 nil)
- Z: R* G% }8 ]* D) I - (tempmod va 74 nil)0 k- T3 S, F' e3 I, ? \
- )
4 m G+ j3 n( r1 d- t# L( Z( ~ - (tempmod va 73 nil)
( Y% H9 I# W7 y1 c! B: V* R! }- b - )
. i" H2 a+ u0 X9 ` - (entmod elist)
5 Z% V2 L6 X- f( D% U9 E; g6 | - )3 q5 H( W6 ]! L9 R& s/ y; c
- # Q! _, g: t4 b0 e) O% Z# r. b
- (defun ddtext (/ 2ndpt slist i); E& A- Y8 ~# b$ ?/ z
- (if (= etype "TEXT")
$ Z8 D7 {: D, w& q# t - (if (not (new_dialog "ddtext" dcl_id)) (exit))
, f1 h. z% k( x% z- \ b - (if (not (new_dialog "ddattdef" dcl_id)) (exit))
# I/ q7 X1 f" Z8 p0 M$ T) \ - )( |0 y4 Z2 o4 N+ K& l8 `- ^7 |* a
- (set_tile_props)
: n1 O( p8 m/ f! s - (set_tile_handle). W* l0 X( B, k! v' ~6 _* `
- (set_tile_text); w7 R& R3 v; J/ A% a' s
- (set_tile_tag)
) _( P, }% `( D% s. Z - (set_tile_prompt)
/ A" A/ f1 w( X7 t t3 H - (set_tile_hght)
. e/ N, A- M) M( r# {( {: s - (set_tile_wid)$ |2 |! ]) w7 b7 c2 Y1 u
- (set_tile_rot)
: @% x1 k @7 D' s - (set_tile_obl)
: H5 D# \5 W+ z" t, ~ - (set_tile_bk-up)8 I6 Y/ R$ ^6 {# Y2 ]
- (set_tile_icvp)7 k( `. v) K( ]/ a
- (set_tile_style)2 k5 `5 a. p% H6 f" L
- (set_tile_just)
: Y: @& j$ ?5 Z, w* G5 B - (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
9 l& ^" i5 b7 p/ N1 Q1 \: c0 U - (if (not (assoc 11 elist))
0 Y0 i0 _( j% \, U7 C% U5 P8 t - (progn (setq pt2 pt1)
1 a- j1 d# v0 K+ k, J - (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))7 D3 B' ]% j; C" x; ^ }
- )
: e1 }$ e# z- s4 i" d4 w u! O# \% C - ;;(trans '(0.0 0.0 0.0) ename 1))
' Q8 F, a- S1 T - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
, \3 M$ |( `( w4 K7 k - )
0 _8 g; b3 M2 S+ A6 g. N- m - (if (or (and (= ha 0) (= va 0))
|, B+ z1 M9 W/ e - (= ha 3)4 Y" B8 c* r- e4 u: S! D
- (= ha 5): ]1 l/ z4 k+ z
- )' Y$ n% w3 ?8 [3 I! K" k/ r1 }
- (setq showpt pt1)! f/ X6 C! ]* A7 ^! Z
- (setq showpt pt2)
( i- P4 `2 E3 U2 f/ R* A" ~& k; y - )* ]: r3 n4 I* C) h" r" D
- (if (or (= ha 3) (= ha 5))4 f$ G% j$ J/ {" a& k( p
- (setq alipt pt2)
$ M$ `- w9 R' [ - (setq alipt nil)2 p C4 ^% \# I$ N5 H/ S: U
- )
* \. z6 M4 E; t0 x3 i& C# }- R# N
' e/ m2 h* r; D+ I' X3 A2 b- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt))))
! ]: L/ u) T- q1 k( v9 ~ - (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt))))3 }2 y9 O4 y2 z$ h( D3 x
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))! z2 b( x8 B$ J6 B# |. E
- 6 B$ Q0 E" v& `1 p/ Z: \
- ;; Define action for tiles
7 ^, q+ C) n# ~: P$ C, e9 E - (set_action_tiles)
' O8 J, @9 I8 m& ]0 E" h - ;; Set focus initially to the text edit box.5 t$ L% u3 k' M$ Y
- (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))) G+ ~% E" G- T4 [3 _
- (setq dialog-state (start_dialog))
6 C# [8 W% m" c, ?" r0 H - (if (= dialog-state 0)
$ s- x6 B6 c8 g5 Y: e" t$ ? \ - (reset)
6 y& Z& k0 @" K! i - )
+ s" j7 I# p6 y4 q4 |" C5 B - (if (= dialog-state 1)
1 S. ^8 O1 B; X$ X - (modify_text)9 w2 n7 v4 I# q
- )! ~5 S d, A. V' J) H" e
- (if (= dialog-state 3)3 e7 `; \$ _9 O+ u
- (progn' V! b& m) F, m+ f; P
- (modify_text)
9 v7 E: q$ A( p- q - (if (or (= ha 3) (= ha 5))6 e0 T: F2 [) X- i" B7 E" d
- (progn* x( q* `* L0 U# f8 O8 X7 @. @8 [
- (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))
7 S' [1 D6 u5 B& w# c* Y - (if (not showpt) \' o1 A1 T! H2 R- I
- (setq showpt (list x1 y1 z1))
. n/ ?6 n @3 c, O3 V - )
! N# O0 @* O4 E% J, i - (setq 2ndpt (getpoint showpt "\nSecond point: "))+ Z; i' g& Q& K4 c
- (if 2ndpt" g$ C1 L5 U0 h
- (progn
- `, e) C: W0 p9 D2 t4 n - (setq alipt 2ndpt)
8 V1 ]7 t8 R9 h/ M! E0 w6 [8 y - (tempmod showpt 10 1)# {0 X; i- [' M5 w: l0 O
- (tempmod alipt 11 1)& r6 }$ V) o9 q) J6 ^
- (entmod elist)* ^/ j+ K5 o" I: u
- )
& {+ N9 o( [' t8 c0 M+ j - )
4 l% c- t+ A& s% S% u+ f - (setq elist (entget ename)): h) l+ \! Y/ h1 B4 @7 N: I
- )
/ p$ }/ d0 q; B8 U7 h8 q1 B9 E: G - (progn
+ k( w! [& X* C& v. l3 t* M6 x6 y - (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))
) p P- G* J: R) O - (if showpt3 E5 J2 o# r+ j8 H, @1 c
- (progn0 i/ Y/ _ e* K5 A% a v# [
- (if (and (= ha 0) (= va 0))2 C1 R! E" T! ~8 o6 o( x* F: |0 S
- (tempmod showpt 10 1)
& {: L3 D; G' @7 A- \ - (tempmod showpt 11 1)
( R0 A/ h2 r* { - )
- N6 W3 M) \# b# {; f" ^ - (entmod elist)
; [1 Y: n8 W4 s9 I9 @ - )3 Y. E# v- m$ Q
- (setq showpt (list x1 y1 z1))- P; B7 k; }4 F- r$ W7 X' j% {
- )
( f$ |4 B/ ^6 [3 _; |& s0 R - )2 O0 R$ o+ X" u- S- G, G
- )
8 [5 U0 a! W2 C: m7 T+ k$ L8 x7 E - (ddtext)4 E6 k/ R7 f. V% o7 |
- )
, Z0 \) x }) Y5 B - )8 g; V* E3 m2 Z
- )
5 S& I+ A3 X$ b/ C, ~
6 J! G# P) v8 i+ j$ z5 Q$ j- ;;) [8 B- o9 E# z M( S
- ;; Modify MTEXT
1 U7 c8 k! |# e/ ` - ;;
( l$ z" k4 r7 ?* A3 @! m - (defun modify_mtext ()7 I* W7 P, Y5 J* Z v( R7 @
- (modify_properties)
6 O, _, }2 ^0 u - (setq pt1 (list x1 y1 z1))7 C2 J' w- K4 F+ \' Z# [
- (tempmod pt1 10 0)& |0 E; p" Y0 u7 ?- f
- (tempmod text 1 nil)7 y* Z9 I% _ R4 K
- (tempmod tstyle 7 nil): T. Y6 h: e* k3 A
- (tempmod just-idx 71 nil)
, A, ~! o9 d, h - (cond9 x4 V& U0 [# F: C
- ((= dir-idx 0) (setq dir-idx 1))7 `' Y4 h" }/ c4 [$ n9 W
- ((= dir-idx 1) (setq dir-idx 3))
; }- P4 y# i5 c* { - ((= dir-idx 2) (setq dir-idx 5))8 A' K! r( [! v& G
- (T (setq dir-idx 1))# u4 }# b* ~1 D* [
- )/ _! x6 w: @, K) l1 Q; O- s
- (tempmod dir-idx 72 nil)
^4 }3 ?0 H; @" x: r: V3 W - (tempmod hght 40 nil). y" m. `6 T! r' S4 t$ u% s% X" m
- (tempmod wid 41 nil)
* L& U0 @$ U9 V9 |' L - (tempmod rot 50 nil)/ H% r( D2 E | g& O4 k' f
- (entmod elist)
. A7 f* x; Y; Y - )7 M# L# V8 X+ U
- f# S6 Q4 F8 b- I4 K0 i! Z- ;; Set MText text style. v+ |: [$ E( w( I2 B: Z
- (defun MText_style (index / style-list)# Q4 S) X4 y5 H% x- t
- (setq style-idx (atoi index))
; Q* m" e) \ ]; w# Y - (setq tstyle (nth style-idx slist))
5 D; s9 R T- [8 O! l - (setq style-idx (itoa style-idx)); V5 J8 Q, U7 } V, G0 E% y& y6 g
- (set_tile "style" style-idx)& s! [) X* q8 ?9 K: P7 R) `+ H5 q) v
- (setq style-list (tblsearch "style" tstyle))- S) I) O6 B* L
- (setq shght (cdr (assoc 40 style-list)))5 J" o0 [& a; k
- (if (/= shght 0), N0 o0 v+ r1 `8 W* S- `5 Y, R4 {" z# T
- (progn/ ?3 w* a" m! s' K* c2 N2 X$ H' ?
- (setq hght shght)
# [" K. {. K* b/ T" t9 n' C, _ - (set_tile "hght" (ai_rtos hght))9 o9 C% m; {% n2 F0 H& g9 X
- )
W, f9 X$ f! S, ~! |& o - ). H3 s: J+ N( @
- ): u* \/ w& _, L# Z# G+ x
- + u/ D* B0 U- I5 e; x1 f3 Y2 R5 g
- ;; Run DDEDIT on given entity, working around possible re-entrancy" _' d6 K* ~( F; I& [8 J
- ;; problems with MTEXTED. {& ?7 A( B7 E( T! c
- (defun safe_ddedit (ename / orgMTextEd work)7 E( Q/ M8 q6 W/ r/ C' L$ P& a
- (setq orgMTextEd (getvar "MTEXTED"))+ {' g' E8 P* b2 a3 `
- (setq work orgMTextEd)
4 G" t: ?- ~" `# k) ]7 j0 } - (if (= ":" (substr work 1 1))( z/ U- b, g1 m4 t* Q0 K
- (progn$ B6 N9 H" x: x1 a6 x0 `
- (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))
7 s, q8 ]3 H2 {9 ?# ?! p - (setq work (substr work 2))
, T0 ?* z/ @( f+ o - )
( F; o( l6 o* ~0 K& n$ w - (if (= "#" (substr work 1 1))
& a* J- p% N# |! e1 k- A/ g - (setq work (substr work 2))
1 [5 n5 x* V* i: a - )- J D8 M$ _; R* M9 F: }6 k% ?: F
- (setvar "MTEXTED" work)( V: {5 [! u2 W% b$ u+ h0 E* o8 G5 ]
- )
( h' `0 V" V M - )8 C3 [* F* N+ |6 Q
- (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...
e. \7 C( c, L1 e6 u - (command "_DDEDIT" ename "")
1 r! D. Q1 W& S+ C - (setvar "MTEXTED" orgMTextEd)1 r7 l) e$ P1 F# g P5 K
- )
& A1 ~( }4 C( ^0 s. z" S
" `8 h# _. R3 v6 y( S- ;; Verify MText object width
5 l! E& w; ^: p0 A9 m+ H - (defun ver_MtextWidth (value)
" b& J" G8 i6 a - (setq value (distof value))
7 s' B- F4 R9 E) m9 H( b3 F: J - (set_tile "MTextWidth" (ai_rtos value))
. Q& m O; q q; I2 j9 R4 ] - (set_tile "error" "")5 e" K; W: `5 G) H7 Q
- (if (< value 0.0)
1 \ Y& o3 K2 o - (set_tile "error" "Value must be zero or positive.")
$ S+ j5 \$ y5 u - (setq wid value)% {* _& W2 C2 ?9 F. |' V; H
- )% K* c0 E* N& V9 R
- )2 x) T0 }3 B$ J/ h3 d
- / X/ j, P: x9 b+ t m, K: J
- (defun ddmtext ( / gc3)
+ H: G9 N& S1 Y/ O: U$ R0 l - ;; Get dialog5 U7 ^8 p" e+ W4 u; S+ P. K- v
- (if (not (new_dialog "ddmtext" dcl_id)) (exit))
0 s, X" d$ l: |, w$ P - 5 x" p4 f e, \: @. H
- ;; Load list boxes
, }' {9 {, V e - (start_list "MTextJustify")5 I7 d( d# v5 w0 _ w, e. [. w
- (mapcar 'add_list '(& g* a# Q- b1 g' d3 W
- "Top Left"
; n% b2 {6 h5 i& C9 T7 V - "Top Center"
/ a$ T9 {- `9 E! e; f: R - "Top Right"! b0 O; t; o) }* \- M1 V; l
- "Middle Left"
. q `# c" R7 N- g0 v! S/ s - "Middle Center"8 J) ]5 L$ V, R5 d- |# U) j5 U: w
- "Middle Right"
- ~- _" {4 O# S$ C) V - "Bottom Left"
5 o9 ?' W' }* f$ |2 w - "Bottom Center"9 `' Y F) B' U' v
- "Bottom Right"
$ H) ^) ^1 V' }/ Z - )% G$ j; u% E3 @" T8 Y# [
- )
# D. h& B3 ^5 I1 i+ o; Y3 t - (end_list)) b( F, `- Y4 G: R. L" H
s% `4 c. [1 v3 j: g- (start_list "MTextDirection")
5 Z6 k( `% [3 P. C - (mapcar 'add_list '(9 J1 m; E5 s% a/ o6 F2 E
- "Horizontal"
" [% h1 H6 P* ~$ r' U2 B - "Vertical"$ O6 _6 X4 V$ A
- "By Style"" a# P# w) V/ v+ R* r+ M
- )
) T3 p* \1 v. I1 n - )
8 J6 d1 L2 M4 w( W+ w) ^( p y9 w - (end_list)8 a% m: E: B7 S& i! o* _
/ }+ X- E8 ]# Q' C( l' l* t- ;; Set initial tile values
# t9 |7 j8 u1 ~5 r) a0 t - (set_tile_props)
~7 ^2 q/ g9 t9 { - (set_tile_handle)
* M, p. W" F1 v# P$ G - (set_tile_pt1 0)) [& E4 Y3 ]2 m7 v; c
- (set_tile_style): |% J+ i) D6 T4 K! Y5 ?* J
- (setq just-idx (cdr (assoc 71 elist)))% g7 t: m1 U! E" c! x! J6 [
- (set_tile "MTextJustify" (itoa (1- just-idx)))8 \2 h$ _# ` V
- (setq dir-idx (cdr (assoc 72 elist)))0 ^% R0 s8 ]" {, E# f, z+ f2 T
- (cond6 `% d8 O+ M' r2 N# Z$ S* s
- ((= dir-idx 1) (setq dir-idx 0))- c+ P/ ]+ R1 Q9 j/ [1 f+ [7 ]
- ((= dir-idx 2) (setq dir-idx 0))
* W% a# s6 B. u! w( L: s1 c( z - ((= dir-idx 3) (setq dir-idx 1))/ ~7 m8 ^* I2 {# C! U U
- ((= dir-idx 4) (setq dir-idx 1))
2 `$ }% H, r* ^, b8 P8 D - ((= dir-idx 5) (setq dir-idx 2))
3 T6 T" F0 m a8 t - (T (setq dir-idx 0))( G3 L. z, B8 e" K' _
- ): X3 o( Q0 {: j1 p+ Y
- (set_tile "MTextDirection" (itoa dir-idx))
, Y; {' M d2 Z6 e& [" Z/ B- @/ G/ r - (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist))))). L* X# u+ w9 I! A( ~( L) c
- (set_tile_hght)
: X2 n3 [& Y5 S0 ^2 b7 y - (set_tile_rot)) {! A/ j9 P H6 i
) x X9 n- d% g4 F& n; P2 a- ;; Set edit box, disable if too long. o) o3 y2 G5 C9 }& n
- (setq gc3 (cdr (assoc 3 elist)). V# ?* M. j* B
- text (cdr (assoc 1 elist)))
; c8 L: ~6 g3 E% [ - (if gc3( t% Y ] b M D1 |
- (progn ;; Text is over 250 chars, disable edit tile
2 i/ K* z% \! Y6 ^0 W' Y - (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))- X6 I( o% c, A3 `+ I
- (mode_tile "t_string" 1)
4 N+ Z1 o+ S! W6 A4 m7 K( ]; C7 D9 E - )
% w+ n& A* @* }) Z' q3 o - (if (> (strlen text) 80)
t& @# f, c1 T& ?: E" o - (progn ;; Still too big+ R) m$ j3 E0 C9 ~5 |4 m
- (set_tile "t_string" (strcat (substr text 1 25) " ..."))4 G, \% z8 F0 y
- (mode_tile "t_string" 1)
/ U3 S6 w1 _ a5 U* h2 \/ Q - )& y! k6 \1 Z& b U$ C- l& p
- (set_tile "t_string" text)' s% q- A6 o+ V( R5 K
- )0 }, R$ q4 A/ Y% L1 X; R! ]8 d
- )3 H3 S3 d* B @& @/ t: r
3 N3 A: i$ _* \3 C6 G. Y6 C- ;; Define action for tiles! j% _+ s2 K' S) {$ h
- (set_action_tiles)
$ Z- u. O3 H* I: p7 g, } - (action_tile "style" "(MText_style $value)")
( y1 {2 H' y/ R/ s, @ - (action_tile "MTextWidth" "(ver_MtextWidth $value)")
# G9 G# J1 t D/ R& k - (action_tile "MTextEdit" "(done_dialog 4)"), P( L0 f1 [$ Y
- (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")
" `0 H" }) H+ o - (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")1 S) v9 ]6 H4 ^: b( ?* E; A8 t
) F' h% H3 o0 J! D0 A, G" t) S- ;; Set initial focus to text edit box.
u# R. X* k/ F$ P. ] - (mode_tile "t_string" 2)+ ]" v6 Q6 a- a9 r& R0 Z
+ [" Q. ]$ V" ]" f4 @( B- ;; Run the dialog
, r; n) H+ D) E - (setq dialog-state (start_dialog))) }& A5 R% {) c& E
- (cond+ k$ O8 P t0 c9 r5 b& ]+ f1 U5 u: M
- ;; Cancelled - restore saved data! B* y6 X, i+ u6 H# P
- ((= dialog-state 0) (reset))' r9 k, ?; v* p3 p, A0 c
- ;; OK - save new data' M; h( `8 ]# r* q" |) m$ v
- ((= dialog-state 1) (modify_mtext))
7 o0 I6 G, d y) U: I; v - ;; Pick new insertion point
" x/ j0 G9 I' K+ V; ~& Y ] - ((= dialog-state 3)$ E; t* y; M" j( i9 ~
- (modify_mtext)
2 ?+ k _2 k) s! u6 g) Z$ \ - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
- n# s6 N& Z" ~' |' }5 |$ D, s1 R8 a; k - (ver_pt1 0)& Y1 @ r2 a- T! U! Q0 l; \1 N
- (ddmtext)
. G2 p5 ~% V2 t& J) c - )
& U- y6 X% d9 |$ r - ;; Run full editor
" q/ o+ r- H, }4 u7 O3 f: R - ((= dialog-state 4)
5 r+ [2 P6 r6 R2 i2 ~6 a( a - (modify_mtext)8 A! o5 y0 s: E# n* l$ y5 b7 b
- (safe_ddedit ename)
" i0 E6 t+ _7 n, }% F! M/ _ - (setq elist (entget ename))7 Q! {! B" B( M7 o% j) y
- (ddmtext)
/ ]8 ? g5 K T2 e - )$ g$ t& ]6 p9 L4 X5 Q
- (T nil)
4 b+ K; [+ m4 l7 { - )& g! d. L$ w# ]
- )
. d% Q$ ^- \6 o+ l* J& t - - w! W$ L( U0 Y
- ;;
8 {' e- H2 Y9 \3 ?3 ` - ;; Modify VIEWPORT
5 \' m' ]. v6 ` z; E - ;;3 N3 e$ u8 q- \
- $ ?5 d1 b4 G8 g: J1 n+ u
- (defun ddvport ()* f9 w3 r- p: ]( t+ m5 a
- (if (not (new_dialog "ddvport" dcl_id)) (exit))
( [/ S J% i+ I K2 ~ - (set_tile_props)
1 p/ E7 u8 [# \8 |: O9 y - (set_tile_handle)
# J- T1 \3 t7 z/ b8 v1 @/ \5 P - (setq vpt (cdr (assoc 10 elist)))) M, B; [1 a% H0 |! ~% I3 {
- (set_tile "xtext" (rtos (setq x1 (car vpt))))( @7 y4 L( J/ ?( h0 @2 V1 w
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
$ L4 j. ?5 w' \ - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))5 y2 Z' @: |; l0 ?* N' e# B3 D
- (setq wid (cdr (assoc 40 elist)))8 ?9 l: C5 l1 ]% u, i, t
- (set_tile "wid" (rtos wid))4 }0 @+ Q3 }- p, I
- (setq hght (cdr (assoc 41 elist)))- E& X+ @' x l$ G' K
- (set_tile "hght" (rtos hght))7 t0 T# }9 `* s3 y i/ s
- (setq vpid (cdr (assoc 69 elist)))$ p4 a3 q. x& ?6 q1 I, Y4 Y4 h2 ~
- (set_tile "vpid" (itoa vpid))
- L6 l7 | Q% I1 Y( y+ m5 { - (setq on-off (cdr (assoc 68 elist)))* E1 {$ e' @2 d ~- h
- (cond
u$ H1 s3 U% B% E - ((= on-off 0) (set_tile "on-off" "OFF")) P' {) v$ m& [7 t
- ((> on-off 0) (set_tile "on-off" "ON and Active"))
3 e R5 W3 \2 a1 `+ s1 E) ^, \ - (T (set_tile "on-off" "ON and Inactive"))
% |) b+ d' w$ {4 M1 Y* j - )
! R7 }% `+ y, Y
/ y0 A" K* H7 K6 y, z/ b- ;; Define action for tiles! X0 w* A* n8 g( ^. Y
- (set_action_tiles)
& S6 f* o* y2 q
& N- M: Y7 _. B: z& g; l" M5 `$ S- (setq dialog-state (start_dialog))
0 v' W5 F2 q0 e0 Y - (if (= dialog-state 0)
E' e# n9 O- v$ s* b) P - (reset)8 d. s% [0 P# t+ |1 s; C' r
- )$ n; u9 A0 w& ]: s: E
- (if (= dialog-state 1)
l9 T" w! t9 S, F8 @* n - (progn5 y+ e9 g. z9 k) d+ R4 p
- (if (= ecolor 0) (setq ecolor "BYBLOCK"))
5 s& j! H' J, q, o5 h7 y - (if (= ecolor 256) (setq ecolor "BYLAYER"))
9 b: r$ K3 J& @0 K: K8 j - (command "_.chprop" ename ""1 w0 Z+ j: s/ k
- "_la" elayer
" Q1 a5 u: H! P* [ - "_c" ecolor ""# H# Q/ B! s, l1 t* s
- )
2 e# p- ], G9 I: n. I7 h - )
, V( K# h& R( W D* ?4 R& M - )
) S5 g' `5 D0 j - )
7 P3 X% S6 W o. U$ R7 \ - ;;
- o( l: U: b( U7 H; a/ Q - ;; Modify POLYLINE. h. s% `! o6 m, ~' c
- ;;
( O) K6 |4 s) w - (defun modify_polyline ()
- v ^: V& l# U c - (modify_properties)
! a+ z4 G. o. h; U2 S - (if (= ltgen "1")9 h$ g. n$ a' e( b* H
- (if (/= (logand bit70 128) 128). h+ V& V: H$ T, ]6 |3 n( L
- (setq bit70 (+ bit70 128))
5 u, D- X1 e4 v4 A - )
2 |0 m" S- A4 n0 R7 X - )
# V; k7 s# o5 o' q$ V - (if (= ltgen "0")
( |. J9 U8 ], O! [; Y - (if (= (logand bit70 128) 128)3 W2 n/ h- w8 O+ f Q6 m1 U
- (setq bit70 (- bit70 128))* z% x( a5 S+ [
- )1 S7 o, A& g* B& m ^! s0 p
- )( Y, s0 N( l- \6 w4 r! q
- (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))1 k0 ~8 l# \9 J; M3 T
- (entmod elist)" W, p5 Z- n2 o9 P! k
- ;; Added to take care of updating Vertex information for color' h, U2 `: ~& [( `1 C4 P% i
- ;; and linetype.
. c& P( Y Y/ c% A8 |8 s - (setq save-ename ename save-elist elist)
! L6 u0 P+ g& @% J0 ] - (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
$ Z+ a3 V% s2 V - (progn+ P4 @* u' i% \, F/ N3 C, t
- (emod ecolor 62)
) E7 t8 _$ O; B4 w) b; c - (emod eltype 6)$ Q, ?5 L) w7 a2 t( y& e }# C- Q0 t
- (emod eltscale 48)
]1 A* k8 S9 G - (entmod elist)
( z. C5 r0 |; @ - )
( t. ^1 }! c9 ]) q% ]8 H9 \ - (progn! p; ]6 |/ q( b2 J' Z
- (setq ename (entnext save-ename))
3 p$ l' a) }: l1 Y4 d - (setq elist (entget ename))5 t, l; C0 S6 Z# W7 T/ n
- ; V4 y% |' t' d- T; J
- (while (not (= (cdr (assoc 0 elist)) "SEQEND"))
2 }6 u) f- x; d - (emod ecolor 62)& ^; l9 ?! M s, ?2 Y
- (emod eltype 6)0 W% f! _$ ~" }9 Y* x
- (emod eltscale 48)
" g! E' e4 B4 U& m. N - (entmod elist)% T8 u3 p, ^3 s
- (setq ename (entnext ename))5 \* b* U+ ^% _6 H$ p" \
- (setq elist (entget ename))$ ], h1 T' S }
- )
( U% S$ `2 I0 c$ Y - )# W* ~$ n5 @* I! H) m" F5 B4 l. [5 n
- )
4 S9 v/ s# R* x+ f. d! Y8 f - ;; Update the SEQEND
# \( P" I' J0 \- U' u - (if (= (cdr (assoc 0 elist)) "SEQEND")
* _, `9 l; t/ |' L+ o8 j - (progn5 ]* q+ |! C- @8 W
- (emod ecolor 62)4 A# D1 U6 S0 Z( b$ f) n: Z
- (emod eltype 6)" S5 w9 P- m/ S _9 t: y
- (emod eltscale 48)
, n6 G$ k6 \" j' n+ @ - (entmod elist)) i4 _0 h; {) p2 E
- )# a% Y8 d! x- Y6 X
- )! s. d; X# ^. x8 a/ T f
- ;; Go back to header.( b& K! E. S4 e0 x5 L) ?' b& O
- (setq ename save-ename elist save-elist)' `3 j8 L9 y P& N
- 6 p5 e8 U; R5 i3 h5 Y6 p% V/ c$ _2 o: r
- (entupd ename)3 U, k) M: L' N' c
- )/ o5 W, t8 r( X. I3 q& y' _
. U$ }6 F8 |- _& {1 d6 d- ;; Increment vertex. Set tile values to next vertex$ G+ a/ G' s1 j$ a, E8 @
- ;;" T7 k- a; B1 Z
- (defun next_vertex ()
, T# n- n0 ]* n/ H8 \9 D8 S% | - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")7 G8 X( `+ a) G+ y- S# r& z
- (progn6 w- [. y9 Y1 u' \
- ;; If the counter reaches the number of vertices,
# m4 P) _8 n- ` - ;; roll it over to zero again.
9 o0 g! ?# r. ^7 J1 U% A - (if (= ctr (cdr (assoc 90 vlist)))7 K z: w& m) f% {2 r8 k8 ]
- (setq ctr 0)
" r" `3 o- z& O- l3 [: m ]% | - )
0 K9 G/ `) ?) l1 E% d& x7 a - (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))# O' W6 |* p1 s% ~0 K: P2 p
- (set_tile_vpt pointype)
& d2 y! f) o; f3 ^0 g - )
/ |0 T6 S# b$ Y- t- b' R5 @+ P" R - (progn" [; p7 a. Y+ b( {! ]& o. M" J" { p
- (setq vname (entnext vname))* q( _6 P0 d4 K: h5 u- M) ]
- (setq vlist (entget vname))
* o" {% v: |; Z6 l1 j% k6 U - (if (= (cdr (assoc 0 vlist)) "VERTEX")
. e, Q P( {, c& p) \) |, w - (progn
0 \6 E+ R+ h- Y2 H& B - (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
$ ~3 v: ?0 r% w ]; \$ ~/ k - (set_tile_vpt pointype)/ x+ x! _* _2 \0 a. b( E( p
- )
) x* m5 q& J) d2 U - (progn
1 g" `# ~2 |' h7 @3 v9 k' U V% C H - (setq vname (entnext ename))
& M# o' {/ P3 a2 K$ n3 { - (setq vlist (entget vname))
; V r9 @4 s6 e; j: j+ R/ K B6 e - (set_tile_vpt pointype)8 n1 ?( u( G- i6 Z# ^9 P x6 [+ v9 ]
- (set_tile "ctr" (itoa (setq ctr 1)))% c( @3 v5 X& k% q9 l9 K
- )
# d( ~7 b( d! J X& d - )
- q' f9 U; W9 _! K! k - )
6 t* R- D, K- Q" N- \" T, O% A3 f - )
/ e- i5 C/ o; z: h - )4 w4 M; c# \3 n) N
- ' i7 Q! \8 h+ L! f" B
- (defun ddpline (/ oldecho)
+ D- W" [" ~' Q& N* } - (if (not (new_dialog "ddpline" dcl_id)) (exit))
1 n4 v3 g7 @- C+ M2 U - (set_tile_props)
3 j8 m( E* Z5 S/ C - (set_tile_handle)
( \9 l) h q* v! G - (setq bit70 (cdr (assoc 70 elist)))
- K9 @) I6 t' o1 ]: n% b$ m1 q/ ? - (setq bit75 (cdr (assoc 75 elist)))2 [# z' l. u' t$ r: |& R3 t% W! K
- (cond
4 t. \0 t' U' e - ((= (logand bit70 8) 8) ; 3DPOLY& J; j& q' ~6 z
- (set_tile "ptype" (setq pltype "3D polyline"))% w4 X6 n/ Z5 f7 |, M+ n
- (setq pointype 0) ; WCS or ECS point values
& N* |3 F. {, [" x. e7 v1 h2 U# H8 `) h$ H - (mode_tile "fit" 1)' @0 o; u$ R; g1 a1 d
- (mode_tile "mesh" 1)
( W! ] `9 A& o& m6 ?- U - (mode_tile "bezier" 1)
3 J$ a9 k4 c" Y, l5 V - (mode_tile "ltgen" 1)
_0 a; d% x" b2 R* ] J - (set_tile "none" "1")
& n. k3 x& `* j; H7 Z - (set_tile_closed)
7 d: U& T' o' j& d - (set_tile_fitsmooth)" G/ n; J+ Q1 ? n4 J j# B9 w
- )
3 d% H+ j2 f0 D, S - ((= (logand bit70 16) 16) ; 3DMESH
" [) k( n3 C/ @$ T* B; ~- `/ E - (set_tile "ptype" (setq pltype "3D mesh"))" ] F& `2 v D" c
- (setq pointype 0)
0 u, t( a) m6 C$ K Z/ ? - (mode_tile "pline" 1)0 y% w* Y! `) N: q
- (mode_tile "fit" 1)
& Q' d y# B& }( M R - (mode_tile "ltgen" 1)
# Q# w, ]; C* y' E& q - (setq m (1- (cdr (assoc 71 elist)))): P4 T/ e e* k
- (setq n (1-(cdr (assoc 72 elist))))5 e6 ^9 F: k7 F! p7 X0 ]) E
- (setq u (1- (cdr (assoc 73 elist))))0 y( L) H6 K# g/ B$ ?9 Q
- (if (< u 0) (setq u 0))$ r+ ]: h: F: t% ?
- (setq v (1- (cdr (assoc 74 elist))))
- |4 u# H$ m0 u, Y3 c2 d - (if (< v 0) (setq v 0))
2 E9 Y! D7 N4 @7 r: Z. F - (set_tile "m" (itoa m))
7 r% \" e6 [0 Y2 _; ?9 c+ R - (set_tile "n" (itoa n))
% I$ _% U6 s- C" t8 q - (set_tile "u" (itoa u))% j% ?$ X" V; G* `2 p& R- Y. U! ^
- (set_tile "v" (itoa v))
8 ]: e b& K6 i9 [- X2 J3 ` - (set_tile_closed)0 K& h* G; C. N
- (set_tile_fitsmooth)4 X" y: l$ M9 L) `% \+ A
- )! S; q7 U3 ]7 _* Q5 d9 F% h. o
- ((= (logand bit70 64) 64) ; POLYFACE MESH
5 M" Z4 q2 r# ? - (set_tile "ptype" (setq pltype "Polyface mesh")) `& Z ^; |. K5 { o: n
- (setq pointype 0)" z6 w# Y" X' K5 W) B- o
- (mode_tile "f-s" 1); Q. q& U2 f& U0 u5 a5 T
- (mode_tile "mesh" 1)' J. Z5 m. s/ I6 z! i( r5 S5 d
- (mode_tile "pline" 1)
& r4 Z& y8 b7 u/ ^ - )
|" `1 _2 Y, q/ ?/ v - (T ; 2D POLYLINE6 D3 c$ H: [0 B! c8 v" L! C; B
- (set_tile "ptype" (setq pltype "2D polyline"))! F4 a0 K" P! G m
- (setq pointype 1)8 O7 H' a% v% G$ I8 j0 l# s' i% ~
- (mode_tile "bezier" 1)* F3 Q1 b$ F) L& j' d8 Z: o. c5 k
- (mode_tile "mesh" 1)+ w Y4 b, L4 F, y
- (if (= (logand bit70 128) 128)
. W3 z: m9 s8 b; N$ l - (set_tile "ltgen" (setq ltgen "1"))
- O1 b9 ]; V- N$ C - )6 Q5 s% l' { P" X1 S& p! x
- (set_tile_closed)
/ x3 e: U- |2 a6 E - (set_tile_fitsmooth)
9 ~& e. d D( q - ) W- Y3 M& l, o
- )
4 w/ T3 V5 i: l! O
( f; W; u, \* H- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")% w. s' ~- @% u3 P! d @4 S
- (progn
6 L2 I$ x) l; h3 I+ _) M* F* D - (if (not next) (setq vname ename))1 G6 z, E, z, ~0 c- _+ i
- (setq next T)# p8 \0 m% V" w, M
- (set_tile "ctr" (itoa (setq ctr 1)))
$ o/ U9 P, }9 p - (setq vlist (entget ename))+ ]; V3 i! H3 H
- )
# O3 A' R$ H, b# u+ ] - (progn. l- ^; t% J! C
- (if (not next) (setq vname (entnext ename)))7 c# u* g0 A( ^/ Y( |2 K
- (setq next T)
7 G8 k2 R4 D: {7 x; I - (set_tile "ctr" (itoa (setq ctr 1)))! Y$ J. _' Q' y9 Q( @, i
- (setq vlist (entget vname))
/ x9 _$ z; [6 r+ D - )$ i) S `1 @0 z6 Q% T4 U2 q: P1 }! {
- )
k( B& ? d0 b% L - (set_tile_vpt pointype)
% a' u& B; i+ X0 M' e+ C. I# ? - ;; Define action for tiles
. u' b7 ~) \ C- E/ ` - (set_action_tiles)
, g. @3 c% k4 P' Q - (setq dialog-state (start_dialog))
& }; r# p* i# i t$ E
' R; A Y, K$ E- (if (= dialog-state 0)+ U3 M- Q- T8 r) C
- (reset) m4 e# e* m* u& l4 ^1 z7 Z3 ~
- )% g+ q _) _( r( }5 J
- (if (= dialog-state 1)
' t; m4 [; e2 ~# M- \- H - (progn
2 G( H' I b' E" N- n( J2 k+ E - (modify_polyline)- M6 V ]; P/ ]- x3 `
- (if (or (= pltype "2D polyline")
: e5 c4 q: n: N! \# e3 \ ^ - (= pltype "3D polyline")
2 n: A0 |, T K3 |1 x- Y - )( S$ D: g3 e Z
- (progn
/ O8 N% c) M' u. F! L" V$ y7 V - (command "_.pedit" ename)
6 C7 C" | M2 Y; ]! j: I - (if (= spltype 0) (command "_d"))
7 F+ L% k2 a% D. P" z - (if (= spltype 1) (command "_f"))& q! ^, i: j# Y0 J
- (if (or (= spltype 5)% T3 ]6 z1 P/ l8 e
- (= spltype 6)! u+ G! O% D1 X ?; o- {
- )1 ^* h) w' m' u; s
- (progn& Q3 I4 }8 D! s% m; V* y4 Q& u/ b! W
- (setvar "splinetype" spltype)2 x+ ^8 X$ J3 m3 R% q- |9 v. f
- (command "_s")
* g: i% ^$ m5 b) h4 g! _0 B! K" C - )
; w" q/ J: H0 k- O' h: j2 ^' J - )
5 R" y7 G! u2 S+ |: } - (if (= closed "0")
8 O, e& C7 n" q& _$ e - (command "_o")' O( v0 ~% W6 Q% K- U6 z. Z
- (command "_c")! q& I& Q9 W) ]! Y( j' K% P/ R
- )
1 r7 B3 {7 n2 y T - (command "")4 @: v E, y) D" g' U O- d4 ^
- u6 n( C; {3 d1 I+ [/ L4 w- (if (= spltype 0)" ` @4 I9 ]+ M, A9 u
- (progn
7 u$ a8 U' ?" G# o$ V - (setq oldecho (getvar "cmdecho"))$ l& w, l8 ~; k, D5 ~% D3 Q: g
- (command "_cmdecho" 0)
: ?' D8 @8 i% g7 i4 J) J - (command "_convertpoly" "_light" ename "")
5 _7 `( V) Q2 A& ` - (command "_cmdecho" oldecho)! O% R6 A0 `/ l; L0 O7 m5 c
- ); q1 i- X# t1 r: _
- )
- j C1 [8 N# M3 b0 d - ), g3 e& M( Y: d" f0 J
- )
& ^+ ^0 ]! s% m `6 o' p - (if (= pltype "3D mesh")
6 _( b# g4 x# Y - (progn, v$ v8 l, Y% B/ R8 a* w
- (command "_.pedit" ename)# \4 [# {$ `4 e& z& w
- (if (= spltype 0) (command "_d"))' R: w- r+ X! J
- (if (or (= spltype 5)
% Y2 m- N7 `* r- m0 q+ M) H - (= spltype 6)
S+ _3 M, S8 ~/ u: z- d# ? - (= spltype 8)
' W% E" S$ X0 z8 u( P! r% n B; U - )+ b, q4 f/ l/ ]; u" f
- (progn8 _" l/ g! G8 Y' ~4 S3 W- Z
- (setvar "surftype" spltype)
" F; U2 p2 Y$ b: o. a9 f - (setvar "surfu" u)! x2 n& I, b( q8 Y0 P$ {/ O
- (setvar "surfv" v)
1 }& y* P0 U7 a. r4 Q% d - (command "_s")
8 J9 T# r4 r9 I" Z8 A; d - )5 Q8 O) U' ]5 V: I3 ~
- )
- o4 I. h% ^ n8 b2 i - (if (/= closedm old-closedm)+ `' U% ~$ i1 X! w& k% I% y
- (command "_m")/ O, C5 E' c# _5 e" `: {* F+ n
- )
: l$ r* c! o8 ]6 k& N! c) j - (if (/= closedn old-closedn)! d p7 \3 I2 j+ Q' |9 ^
- (command "_n")
" @9 @: T" M3 P7 v9 x7 j4 i5 G0 Z5 C - )
$ V$ P. C4 ^5 A* }0 R) S! p" o - (command "")
/ E' f* y4 F5 o4 {+ `: }( i1 \+ Z - ) l. ^" s5 S) G
- )0 l" J( a; D$ `0 N" L
- )" I: H, [- _4 w; N# f5 k+ r
- )
1 [4 t$ [% ^; {/ n* F0 p2 j - )
+ B8 P- [3 h9 v/ j B - ;;. p# C& _! G& y
- ;; All the spline data is contained in a single elist. We must do some
" p, j) ?8 }. d2 G/ y9 i/ X$ K - ;; tricky list processing to loop through the elist in order to display6 u2 \: L5 b* Q6 {- j' m1 B' A
- ;; all of the control points.
+ f) H" a; T' A. Z- k/ M. @ - ;;
( P* T! k0 j. b3 i9 Z1 y - ;; The structure of the elist is different for rational and non-rational
& L' V: ~. s- N7 Y. S( z - ;; splines. Therefore, we check the rational spline flag.
4 N" o. {& k. `/ m; u - ;;
; }, g7 D" b. Z5 T6 E/ g. | - (defun next_cntl_pt ()
8 ]) z# _! |0 `' u6 x- C" @; K, ? - (setq elem-no 0) ;; elem-no = element counter
2 A- B9 Z7 b5 R; f# ]8 z - (if (= first-10-time 1) ;; If first time, find location of first0 D: ]% ?" c: N8 s O: y0 z+ g
- (foreach list_item elist ;; cntl point element in elist
- ]5 W- I4 d5 `# k - (progn# n7 Y2 G' B+ g. W x: \0 v; a
- (setq elem-no (+ 1 elem-no))8 l8 n3 T' R4 f
- (if (= (car list_item) 10)3 M6 Z' e7 e* x! K# g4 \# q( y6 a
- (progn
& H* G6 i4 C) m% N( `- g3 V$ M - (if (= first-10-time 1)' x2 r, o& f! U" h
- (progn
" i& N: m6 i. ]/ [0 S3 Y - (setq first-10-rec (- elem-no 1))
$ J: K9 P: R! _$ J. E - (setq first-10-time 0)3 X9 C9 x& `* o3 t
- (if (= rational_spl_flag 1) ;; if rational, c2 |+ w/ C- _3 |, N
- (setq cur-10-rec (+ elem-no 1))
! _, {: K: a2 Y* w - (setq cur-10-rec elem-no)
" t; q, H" U, c7 H7 ?: g N - )
8 v' T- M# R( j% ?6 R) }9 X - )
% {0 {+ r7 o" q2 x- l7 _$ F) N - )) T+ u6 R$ p$ K' ?
- )
, n4 `! ^0 [8 e0 Z/ J - ); d: S: z3 y( Q* {7 W; ^' \% ?6 h9 v& T
- )
' Y3 l- b, I x9 e; e' E+ A - )8 b9 C, y" n" U7 O4 g
- )% S/ R R# ? L; v1 u( q
- ;; Now we know the location of the first "10" record; it's stored* q$ [8 e: w4 |5 s
- ;; in first-10-rec. The first 10 record was already displayed when3 Z# V* o% g L1 P7 }
- ;; the dialog first came up so let's display the second one when E, j" h1 H6 U" A+ P0 f
- ;; the user presses the "next" button (the first time through)./ y# J4 Q7 R$ w. Z
- ;;1 X b" K, m% w; @
- (setq temprec (nth cur-10-rec elist))5 a5 J5 ~$ m+ v# S7 o
- ;;4 a% M1 ?% d/ u& I+ W' m
- (if (= (car temprec) 10) ;; if 10 record
- X6 u( U6 Y2 ~3 X: T - (progn
6 Z' P$ ]8 k$ U3 N& v - (if (= rational_spl_flag 1) ;; if rational spline
* b& S1 `5 D2 ~$ B - (progn
9 z) `: i% f, [ - (setq tempweight (nth (+ cur-10-rec 1) elist)): \. m& p a u8 }" q. |( b ~
- (setq cur-10-rec (+ 2 cur-10-rec))% R8 o1 D+ h, @
- )* g: G+ E) a; v* b6 O5 u& ]4 w
- (progn ;; else
+ g% D& c, B3 h/ ]4 D - (setq cur-10-rec (+ 1 cur-10-rec))7 d0 p2 I% e: t7 ~4 e
- )
7 f+ t, S4 [- w2 }" w7 `& H - )5 Z. Q: m! o0 G
- ) ;; end if rational spline
7 q" w! s, Y. i' ]$ \ - (progn ;; else reset counters
- v7 V9 T0 b. m* _5 G @+ f - (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec
1 x- E* H9 p/ E" t+ b- |+ k, F - (setq tempweight (nth (+ first-10-rec 1) elist))
0 Q7 u& }7 h3 X% O' f+ d+ ~ - (setq cntl-pt-indicator 0)# G& G- d2 X" b8 H
- (if (= rational_spl_flag 1) ;; if rational* S4 g3 O, A7 x$ H6 k3 \5 _! [/ I
- (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec
5 }& v% C( e0 J5 F; D2 B - (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec1 e+ a' H7 Q" @! p8 Z3 T3 m8 a
- )! I, o) |! w: ^
- )
* K8 } H% l: ]# o+ J3 J - ) ;; end if 10 record% a/ e, p, E* I P8 Z0 A8 w
- ( f) ~0 c0 v" }& r5 X- r
- ;; Display cntl point, weight and ctr. Increment ctr.
. ], `# l9 s6 \ A2 \" T! Q) B - (setq cntl-pt (cdr temprec)): u7 z% ?1 X+ u+ t7 r- I
- (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
1 K: s! A( {0 @2 k' b% S - (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
# V) F* V% w0 Q" T# \# X$ P- W - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))2 [- F. n$ `: m
- (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))) J0 a, l' \5 O' \; U" V. w! i: C/ F* k+ s
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))% n; t1 k2 v: _; n$ d
- (if (= rational_spl_flag 1) ;; if rational* \% a X+ e0 G' P" Z* O
- (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght3 r6 R2 K- F R! N
- (mode_tile "weight_text" 1) ;; disable wght) S# x$ l) Q& D( u
- )% }7 ?1 I6 Z7 p
- )
* [* K1 S+ |( R4 }" {1 R6 u% x - ;;
. y" G& }0 l; j( a K' O - ;; All the spline info is contained in a single elist. We must do some: ^- P. _0 f& ]6 p% `5 z
- ;; tricky list processing to loop through the elist in order to display5 j h3 d& w7 L+ ?3 _/ P# Y, J
- ;; all of the user data points.8 }, z4 u4 T7 \ k& k/ J# f
- ;;
8 x6 F& e: A1 J - (defun next_data_pt ()
" U: K4 L- |2 Z* r; t - (setq elem-no 0) ;; elem-no = element counter. Q- h- k3 B5 v4 @2 N4 }- G7 l b
- (if (= first-11-time 1) ;; If first time, find location of first! i4 t1 p# d8 k. B7 Y
- (foreach list_item elist ;; data point element in elist
( i" r/ N! @+ ?* e; M5 g5 X. a - (progn
& {6 J9 F+ _" G& w+ J; ]% Z - (setq elem-no (+ 1 elem-no))
2 h4 M) y, Z& L! W) \" d - (if (= (car list_item) 11)
/ n4 j9 k2 p0 z1 X* h - (progn
7 X' z! |3 l% q4 O2 A6 _2 R7 H - (if (= first-11-time 1)
0 P" l8 j$ S" I- G E - (progn
9 ~0 E& W. \2 v- V) Y4 J - (setq first-11-rec (- elem-no 1))8 N F4 ] G+ w
- (setq cur-11-rec elem-no)( X" R- S E9 y
- (setq first-11-time 0)3 {# W* q' h" M! K% I6 R
- )
/ @3 A! e! ^+ r9 f G - )- _6 T4 Z+ _4 ]6 o% k
- )* x7 F, o1 o" Z" b4 `( T- ^7 V# D
- )5 h y4 Y) Y$ j
- )
' ?: u4 V6 t6 T) t - )7 p" ~9 b% [1 W& u% T( J: }1 F6 O
- )& N8 \% g, A# K3 Q8 H( S2 }" Y
- (setq temprec (nth cur-11-rec elist))
4 ~ H! t& i( V" V2 ` - ;; If it's not a DXF "11" element then we've gone past the last
- w4 s7 a7 Z! O: r - ;; "11" element. Go back to first "11" element. Reset counters.
6 O9 W$ S" ~# G6 v/ x - (if (= (car temprec) 11)
" J' s" q4 A4 Q6 P - (setq data-pt (cdr temprec))' l! t3 S5 y# t
- (progn ;; else
$ B4 I* c. V1 H; }5 _ - (setq data-pt (cdr (nth first-11-rec elist)))) e F: l9 a+ i4 L8 U- U
- (setq cur-11-rec first-11-rec)$ j$ c" }: E* D- l4 x. ]
- (setq data-pt-indicator 0)
& W5 n/ f1 I3 c - )6 e5 Q0 C4 O5 g- E% c. b
- )3 y" X- j8 u$ I# N- @% K: T
- ;; Display data point and ctr. Increment counters.
. ?* a3 A3 M' U9 _ - (set_tile "dxtext" (rtos (setq x1 (car data-pt))))$ G1 J% ^# S# X! e
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
$ V6 `6 Z) B' y3 E2 ?6 W w/ b5 T - (set_tile "dztext" (rtos (setq z1 (caddr data-pt)))): S& m8 j/ o, z* _6 |& v
- (setq data-pt-indicator (+ 1 data-pt-indicator))
( Y" B: w- Z" f' R6 |5 [. t3 C - (set_tile "data_ctr" (itoa data-pt-indicator))
+ n0 v Q$ j, g( y) ? - (setq cur-11-rec (+ 1 cur-11-rec))
- z f3 \6 t5 ]- H5 Z8 D - )% _$ Y" x; _- i9 |
- ;;
9 X0 E( U" F" X7 X, g' H - ;; Modify SPLINE- F& N: s' s# h& s; `4 Z. z
- ;;$ K6 i5 b) T( I
- (defun modify_spline (): R/ Y3 i: u' W( L* f2 Q
- (modify_prop_geom)) ~0 K- Q! u6 \% i1 e3 \" `4 j, b
- (entmod elist)0 t( y' H6 f* e/ J( Y% l6 N+ P" t z
- )5 N1 B" w, e7 Y* R4 j. I! K, q
, y9 W2 Y' _0 j: y# \, E- (defun ddspline ()' E. h( _# W2 R. D, k8 Z2 L1 a
- (if (not (new_dialog "ddspline" dcl_id)) (exit)). n' p! J$ H; H, `+ i8 D
- (set_tile_props)
9 I3 Y0 u2 p; S- A0 i - (set_tile_handle)5 d) a- L8 g, r- L! k3 _, f4 p' n
- (set_tile_spline_props)
, S9 @; h- c) c - ;; Display first control point1 x2 m2 F! M4 y7 N7 m( O4 P) `
- (set_tile_cntl_pt)
, J8 E. R8 [& g+ F3 k/ y - ;; Display first data point, O/ q* M, u* v1 V' O- ]( e; H( X
- (set_tile_data_pt)/ E+ v& Z- F4 W9 W+ M
- - ^7 M# B# L6 i+ u
- ;; Initialize flags to indicate first time through the dialog.
y/ r- ]% f: G - ;; For control points and user data points the "next" buttons
$ A) v* y2 Y8 E0 t - ;; in the dialog call the appropriate functions.
T; A+ x- v, d) U - (setq first-10-time 1)
$ m) F/ n' d D8 G. D! Z - (setq first-11-time 1)
- h, F U. {5 J3 h1 X, z+ k% ` - ;; initialize control point number counter/ \- { M9 _ o9 X$ I
- (setq cntl-pt-indicator 1)
2 _% }7 a2 u$ O2 @; `1 z$ o - (setq data-pt-indicator 1)- [) J0 f6 n9 a. B/ [: S# C
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
6 q. w$ z( w ^4 J1 O% t - (set_tile "data_ctr" (itoa data-pt-indicator))2 A1 G4 E8 T* X9 e5 i& M
- (set_action_tiles)
5 R5 z* ?4 O+ r/ J9 g - (setq dialog-state (start_dialog))# J; ~0 g$ R$ ?) k) [3 j4 b7 A4 \
- 5 ^$ q; R: D1 T; {
- (if (= dialog-state 0)% Z% u' ?' A6 n5 }" l2 c9 S) K
- (reset)
$ T9 x+ w* T6 T3 O2 _% q+ h - )2 G5 D) }, s; y/ X. }0 `
- (if (= dialog-state 1)& _5 @) d* }. Y1 Z7 |5 y* F
- (modify_spline)
# _% ~0 N* U) I0 S+ [ - )
* X) [: c0 y% u$ u" D - )
0 R& L7 b) ] U/ J4 \4 ]
- k+ w3 d- M2 W- ;;# E D( V3 |" L9 {* h# n
- ;; Modify DIMENSION( A! Z' S) B4 X! R
- ;;+ w: P+ L8 |6 {. @1 Y; A+ _
- (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl4 b, ~# W W, K1 \) f/ q
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
/ q6 U. a8 R( ]2 n4 k/ S- ` - dimtype dimsvcurset)0 Z% k) T- i3 m6 o; C9 W( j
- (setq dimtype "DDIMEN"
" `3 j+ N* N* Z: M" a9 L - dimsvcurset (ddimen_dimsty_restore)
( V9 R3 ^" N" `; o7 l - )
& B% I8 h) V3 j) [. o. c - (if (not (new_dialog "ddimen" dcl_id)) (exit))8 ?: \" {$ o, O6 K9 l
- (set_tile_props) `/ Z D! V# p- j6 E# X
- (set_dimen_props)
: l( y- }! w1 C/ A/ u - (setq dimtext (cdr (assoc 1 elist)))
* X4 ~: o5 Z+ k# z1 G. c/ n - (set_tile "t_string" (if (= "" dimtext) "<>" dimtext))" a: `8 n2 j, j" i4 f! T
- (set_tile_handle)& e8 f0 Y. h; _
- ;; Define action for tiles
$ p8 m j+ u( `% I7 V- r - (set_action_tiles)
+ C, k8 n p! }: P1 l0 Y" u
% ]; O9 L$ N( V* f, d- ;; Set initial focus to text edit box.3 I7 b3 W( C+ c6 U
- (mode_tile "t_string" 2)2 a) M' ^7 \4 N: l0 I
+ F( M0 M' I' ~' i* X- (setq dialog-state (start_dialog))6 h% a/ ?* A9 j! E; l P, l2 s
- (if (= dialog-state 0). ~+ X2 C4 {, U7 q% U+ T, i) w
- (if (= ddimmt 1)
+ G* U2 l) l; J6 n0 W/ n& U - (reset)
# ~, u4 B6 ]" P! y1 l3 Z% J0 q - ), G- d2 m9 u" r' D
- )
8 x' _% V- ~. h1 ^ p# z - (if (= dialog-state 1)
I) C+ B6 z( u- H0 r - (progn
! U* B: o: A* B8 w - (if (/= dimsty stname)" g! ]$ d M G T# ~& c$ I
- (progn
9 g0 W4 I; h2 o% S - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
4 Q8 W4 X2 M! z5 r5 Q - ; doesn't have it.3 V9 W) k# c7 F4 m+ |1 K$ H6 C
- (if (null (assoc 3 elist))
* D C) ]- `. }, o4 w( f( p - (setq elist (append elist (list (cons 3 dimsty)))), x7 G9 n9 R9 w3 k1 Z8 I, R! M5 p
- ; else just replace it.: K. m. y$ ^3 C( F# j: |# y
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))- r) S& i% u5 j( E) ~
- )0 K# U4 w* M. H8 |7 M
- ; refresh sv_dvlist with new dimstyle.
# z4 |( F1 p- ^- j$ i* y - (setq sv_dvlist (tblsearch "dimstyle" dimsty))3 Q! l2 U0 X! U" o2 c: B
- )
Y' H1 C" E; E3 X$ T6 i - )4 m& V4 t8 p; K$ B& U$ v" I$ c( M% K
- (if (not (null dimlist)) ; attempted to change dimvars
% I$ d# \. K2 E2 U, m' v$ i3 R9 L- l - (ddimen_complist sv_dvlist dimlist dimtbl)9 Z5 V7 d* u' k* C5 @9 P
- )
9 R! [1 f+ k b& y6 I1 R - ; Modify dimension text" q% L' k) s& U6 g/ G8 N# V
- (if (/= dimtext text)/ ]. s" X' ~0 {' G
- (progn# j% N4 p! Q6 E4 T6 H
- (setq dimtext (if (= text "<>") "" text))
+ T) \! x5 |/ Z - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
/ ] f/ D: ?! D - )
2 Q f2 J4 J5 P4 ?5 A" T: } - ) C3 K) k6 o! T8 E( H
- (modify_properties)
1 _6 B2 O: W3 g. u4 E+ I - (entmod elist)
2 f' _! ?: O7 T( O% H. i; _ - )
7 G: y1 c6 z4 _9 \. E |( l+ X1 ^; { - )
' C3 a' h* y% I8 `$ P. Z; c - (if (= dialog-state 4)6 ?( D- s4 Z. E6 O
- (progn
: K# P, I8 `% Q" F+ P2 L& L - (setq ddimmt 1)( y: q" A8 L" M {& E8 }
- (if (/= dimsty stname)
& d5 E. p" X6 V' r' e" i( }5 k9 i - (progn
% D8 k4 S- u* y) [ - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
% p8 |3 t0 j* J5 {, q9 \. j - ; doesn't have it.
) a( ^7 ^: h5 L- Q' h - (if (null (assoc 3 elist))
. [/ T9 {5 z" s( {2 G: v" | - (setq elist (append elist (list (cons 3 dimsty))))5 H" q' N" Q6 t* F- d
- ; else just replace it.7 C4 M5 [! Z7 k4 b4 Z
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))- x) T) s V N X( o c7 d/ ~
- )
x( W8 P( T ~' Z& Z - ; refresh sv_dvlist with new dimstyle./ p1 h d; I' B0 P. j; v& r) G( ^
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
* Q8 Y$ ]8 i ^$ ?# R# O" Q. d - )
5 J( x9 }( L `5 ?7 o - )
7 a7 h2 ?2 i' ?; o6 u( r. e - (if (not (null dimlist)) ; attempted to change dimvars
$ b# [: y0 c! z$ f - (ddimen_complist sv_dvlist dimlist dimtbl)" `, j0 D# R5 h B5 P, z
- )4 f z: S+ y) d& z( H
- ; Modify dimension text5 a% r" V% S8 l) G, H3 Q$ w
- (if (/= dimtext text)
9 U9 C z% i/ V. y/ h5 B$ B - (progn, ~$ ^2 Y: |8 e- v
- (setq dimtext (if (= text "<>") "" text))
) [. \8 V, @% N8 X! A - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
" V9 f8 I/ A( t3 ? - )
8 K9 v& l h# P( N/ i5 H: p8 j6 e8 o4 f - )
+ p$ b" d4 `$ n' i1 P3 P+ i% i- S - (modify_properties)( ]7 i2 t8 _6 K; H
- (entmod elist)
# s9 G2 P$ V7 ]* d5 q6 \ - (safe_ddedit ename) O2 x# m$ u" S% L% P
- (setq elist (entget ename))
: B8 m, Q: P+ L$ Y" @2 `! Z! D, ^ - (ddimen)& Q {* h( u1 T5 `$ v
- )! B2 c$ }7 q- T7 y! z
- )
' y! N5 c' W8 O( n2 d. j - (ddimen_setvars dimsvcurset) ; Prepare to exit
7 T1 ]1 ?+ f/ N( j8 F/ G* X - )
! r( b% `# F# I F/ L - , D0 U& P( J2 Y l% ?) @
- ;;, H3 F0 \ b T. p% q6 C) i
- ;; Modify TOLERANCE
- t& w$ `& A5 V' ]2 b5 G - ;;& D2 o) Z- S6 A
- (defun ddtolerance (/ a stname n dimtbl @: [" L X3 M) p
- dimsty dimlist dimovr sv_dvlist stlist dimtype
C8 q1 k6 K! E& a" A6 p& w3 _ - dimsvcurset); Q$ W% m+ b1 J
- (setq dimtype "DDTOLERANCE"& {* h' e; ^$ P5 ^3 H* e, a* t
- dimsvcurset (ddimen_dimsty_restore). T$ M7 a8 w X( d
- )1 u9 P I1 S6 n9 Z+ x4 d) j7 Y
- (if (not (new_dialog "ddtolerance" dcl_id)) (exit))+ ^% `8 c$ v) ~8 \# C9 b8 Q
- (set_tile_props)
# t4 m% P H* D* p& Z" u - (set_dimen_props)
1 A4 u5 L7 X4 o A - (set_tile_handle)) |+ z. |' k3 |6 Z8 E- d
- (set_action_tiles)
. u5 v$ X" O/ }- C, K( ^* k3 ? - (setq dialog-state (start_dialog))6 \. R1 G( W0 r, q2 W' D# m! v7 b7 ~
- (if (= dialog-state 0)% _5 c/ l6 Y/ w8 \6 b* O
- (if (= ddimmt 1): k& Q: S! [- d
- (reset)* B9 k0 {" i0 h& K
- )1 d5 A# X: G; f+ A; p1 S# p
- )
& Q! Z4 h' N2 J' j - (if (= dialog-state 1)9 [* |: U0 N' Q+ ]
- (progn
( m6 K1 U( q5 u1 ` - (if (/= dimsty stname)
]2 q" p# I7 r! G! ^2 P' ? - (progn5 W, R) f3 D: J: L
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
, l6 x1 z2 o; N( x& @" Q# H& f - ; doesn't have it.
8 c( q% U0 d# R% m2 Y - (if (null (assoc 3 elist))
" ]8 r0 F! Q/ r# E* z, e+ e - (setq elist (append elist (list (cons 3 dimsty))))
( ?: ~; f2 S7 ~ - ; else just replace it." w D( B+ v. s
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
/ r% X% h v) F) w' S+ s4 W - )" Y i( ^8 G, Z; |* I
- ; refresh sv_dvlist with new dimstyle.! r4 ~) q5 m8 F, z% e9 q W
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
4 F/ s% c# K, ?) H - )5 w! s) Q7 q5 I, ^5 Y
- )
9 N# W3 S1 X. B0 m# w% h - (if (not (null dimlist)) ; attempted to change dimvars
9 P/ ^0 f; E0 I7 p) N$ s - (ddimen_complist sv_dvlist dimlist dimtbl)
" X7 i7 P. T: C `5 E - )4 O$ W1 `0 G* V3 ^: O/ z1 K) \
- (modify_prop_geom)
4 R* |6 q; k# Z8 v! K+ x/ { - (entmod elist)+ l, Z& T' x% M [) N. S
- )1 b" ^$ X5 [7 c! F( ]) O2 W7 f
- )& Q L8 @; N& |( X# U% w+ L
- (if (= dialog-state 4)! T. Y! s5 x( }; q2 M$ [2 s( t
- (progn7 P1 p/ v/ {8 j( F E* x$ x
- (setq ddimmt 1)0 R& e; ~$ u* ^1 S! @5 J
- (if (/= dimsty stname) d; y" J1 c0 @& q1 G3 p& @* o8 \
- (progn- t; t+ z/ h: a1 x
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
3 p5 E0 B* ]" i - ; doesn't have it.% H- D7 J" L0 J$ a/ `
- (if (null (assoc 3 elist))
& S$ G5 f" h* S* ~* ?, f! _5 C - (setq elist (append elist (list (cons 3 dimsty))))' W2 X& p& m5 M [0 I
- ; else just replace it.
: ~3 H6 ]/ T g; V2 r - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
% m i( g3 s/ g( c- V2 U& a - ). y5 q# o- g0 p9 Z
- ; refresh sv_dvlist with new dimstyle.
( d4 f0 b- ?. m8 ?' @# Z% X, ?5 D- h - (setq sv_dvlist (tblsearch "dimstyle" dimsty))+ a4 Q+ a' ~8 o# B- c4 W% G; E/ S& Q, D
- )/ f) A, B7 G" T. \- H8 K
- )
: _, y( x$ G1 Z! K* F6 G - (if (not (null dimlist)) ; attempted to change dimvars6 w: G7 n7 [' }- O- Z: @% B
- (ddimen_complist sv_dvlist dimlist dimtbl)
7 _+ ^7 `9 Q+ _* W5 a- a( I. E% O - )) \+ M( J; \+ C/ U0 t+ `5 s+ K. \
- (modify_properties)% \3 D. \ F+ e) E
- (entmod elist)
) j0 y! v. F. q/ } - (safe_ddedit ename)) c4 _; b( |' t, n
- (setq elist (entget ename))7 P% V0 l0 N5 n" }8 h9 N+ Y; M5 I
- (ddtolerance)% F5 M4 o- E0 V% k5 _
- )
3 D7 j; q. A" c' \7 c - ) r3 i) X5 c* T# @( Z
- (ddimen_setvars dimsvcurset) ; Prepare to exit
# \5 o! G: J! m9 | - )
4 F1 \0 s/ \9 o* O
$ i; m+ G% b F% p" x- ;;
$ ~+ I- V1 g& h( U$ S/ T# L - ;; ddimen_dlg - jump to ADS ddim module, N$ A. s1 {9 N# J& g
- ;;, Z: a; b# d. ?* X' ^: ^4 m
- 1 k0 k) ^' u) q/ z [$ @) B
- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)
. B% `( h( b- e% \& M - }0 e8 f, d% w8 E
- ; Jump to DDIM with overrides if any.
) J; e3 o7 o1 W. X: ` - (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry, E4 T. L8 r+ a1 m+ O6 C* R2 W* k
- ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format
# ~9 |* }; x( l1 B0 C - ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation0 Z7 L2 u0 q: m# b) Z# A2 h) @
- )
m j% M( i& n5 J6 ^7 A: i - )
. b1 y0 v4 X3 f, v7 e - 9 }( s% ?2 H% N% g! a; L
- ;;
" {5 m/ m' q' [) ^5 m - ;; Dimension variables updated are stored as overrides.
/ I: ^2 u; j0 d' s# I - ;;
, m' |% i8 ?( A2 v! {+ P - 0 r7 i" x6 M; V3 }- Y; Q9 a
- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar
2 S+ V0 P" Z, x+ t5 x3 N - dv dime commandIssued)- c: Q* r% I6 A3 j' }! y% ]: O
- 3 `7 Y- X. |1 l! L
- ; Here we skip the following first three items:( f3 N1 m5 {- ?5 |1 V/ o- z! _- _
- ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0)
% a* d& j8 O3 C% l% _, M, B' |4 _' E - ;. D1 i: i' f$ P3 n: |7 ^
- ; The list comparison immediately begins with dimvar.+ D% I5 u p1 j/ S. |0 l
- ;7 H- T! q# H) b9 l1 {# J) r
- ; dimolist - original states of dimvars
8 o. Y9 h5 P! w - ; dimnlist - new dimvar list which is of the resbuf's/ P+ b7 L" }5 j7 R) E9 G4 K
- ; dime - entity name for the dimension( ^# Y6 @& }5 Y/ B
- ; odvar - value of dimvar for the dimolist
/ ?0 Z8 z* J/ M/ u3 j p9 a - ; ndvar - value of dimvar for the dimnlist
& }6 |: @9 I( F ~- u - 6 |; D& e8 w2 z R$ Q5 Z
- (setq i 3
9 K+ r5 ~6 M& K% P! Z# X6 j: j- @ - dime (cdr (assoc -1 elist))1 V* _: j+ p2 e. V
- )5 G9 U4 V$ ~- z( K
- (while (setq odvar (cdr (nth i dimolist)))( c/ U2 v8 N1 ^; W
- (progn% U" Q* y8 p/ T
- (setq ndvar (cdr (nth i dimnlist)))
, O( n5 j b+ O0 k" r - (setq dv (nth i dimtbl))
0 {4 a6 d1 m# T, a( W - (if (eq dv "dimtxsty")4 ^* [. q, T3 J' P( ?! Y9 c0 Q
- (setq odvar (cdr (assoc 2 (entget odvar)))5 h" P% P) M3 ^- s" S6 Q2 ]
- ndvar (cdr (assoc 2 (entget ndvar)))
8 z8 K3 R+ k$ R- h - )6 W# L- W) }+ X. y- U6 C; x
- )+ l s' [* a) _. s: z
- % I6 {! ] I; C* f4 p3 v
- ;
M. T, ~5 w/ h - ; In order for DIMOVERRRIDE to operate correctly with string
& b) H: j4 w9 E. ]! k7 J - ; based dimvars, we must pass "." versus NULL strings.0 E- o0 @$ K9 Q7 ]
- ; In this case ndvar is the new dimvar value the user wishes+ N/ X) ~' {& U4 y5 Z" c* F
- ; to update on selected dimensions.8 C( i8 u; K! J8 g7 t
- ;
0 G8 H! X& @) I! H - (if (/= ndvar odvar), k/ v, g- I4 E' h8 c5 b
- (if (= 'STR (type ndvar))5 F# y7 Y# y: b. d
- (if (= ndvar "")
s: Y8 V* s* p: O2 u% p - (setq ndvar "."))))
s: X3 N4 P$ a" d' K - & p, f3 p9 w4 e P4 j+ V
- (if (/= ndvar odvar)3 T( t% I' u$ Q: w9 J" A
- (progn
, w& n j4 t, ]% }' Z* s0 \/ G - (setq dv (strcat "_" dv))7 X0 G% q. ~+ i) M; i
- ;% j2 Z2 L2 k. U6 U
- ; Start the dimoverride command/ E% Y# c9 ], C) v
- ;
% k/ d# d' d+ C( X, v5 @; X - (if (not commandIssued); P) H$ o; _0 E9 R& ^" D3 [
- (progn
+ a+ F$ Y! H, ^; c; i - (command "_.dimoverride")
: a5 O2 O3 N& c4 c. H2 h - (setq commandIssued "T")
! O M |2 @/ j+ D - )" v9 D# N7 Z0 {& T/ |% D8 G
- )
2 Y& p6 ?# \: T3 ~6 L - ;
' A0 D5 e" _! u) v' J5 W6 X$ [ - ; Issue dim overrides
9 V6 b8 c$ z3 n0 ^ - ;# R0 p5 f- i0 [# l7 r
- (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre"))' m, v) ~( b- _" g/ l" [6 r: O, k: \
- (or (= ndvar 0) (= ndvar 256))
! b, p" Q& N* Z% `& n; a - )
; U7 h {, f9 g - (progn& x; W( f9 N4 e6 {) y
- (if (= 0 ndvar) (command dv "BYBLOCK"))
, q; X& F" o+ n- j3 c - (if (= 256 ndvar) (command dv "BYLAYER"))( P7 Y4 o$ A5 F4 ~/ ^
- )) l A& {9 R/ V
- (command dv ndvar)4 s: v* e. i* c& V5 T3 R" w3 D
- )5 X# K! Z# p7 J. y4 t. \
- )
, y) [8 e$ N) _7 Y2 h, U - )/ O4 v7 O( t T
- (setq i (1+ i))
+ w" M, v w3 N" ]7 p) ]! ~$ c4 A3 u - )& x# D1 j U. A5 y i: I; H
- ): q7 q+ @( U6 T7 }, `3 B) M6 b% g
- ;6 x" W) e. _. L
- ; Select Entity and terminate command
' g2 h$ G4 s* N! g - ;
4 E3 G, a+ P4 p! v8 b - (if commandIssued
' P% x5 K0 j& ? r: x5 N+ F9 O - (command "" dime "")
$ `8 U( B6 v' j" d! c. g# R - )
; q: B0 h5 j+ r7 ~, m# @ - )5 o- W, d8 l6 X: `% \7 s' O) I
: v- ^7 `- @( I5 R) v( ?- ;;
& u1 b) @8 S6 l- _) {* N L - ;; Get style name currently selected style name.
; W) \' B: A8 F - ;;
8 t( Y" Q$ f. H5 U' g% `3 y
( y" a. g3 W( u' M* n ?8 h- (defun ddimen_style (/ dimsty)
& y/ U6 [( Q5 l) E - (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)8 @* [$ g. W' C, L p2 |1 @
- dimlist (ddimen_getdimvars dimsty)7 I) n2 ?1 F2 u7 U- A6 w
- )
/ x- ] ^/ |$ p& |$ N - dimsty
( ~+ n( |/ d9 p) a) d6 A, o# _5 @ - )
. b& [ k2 x _ - 6 T3 W. C" `/ x8 F
- ;;+ Y+ r6 Z0 P6 n2 X
- ;; Set dimvars9 C+ H+ A% t. U) `4 a @# a+ e/ @
- ;;+ t) ` W! k( C; |+ P' k$ F
- (defun ddimen_setvars (dimsvcurset / dv i)
0 x9 Y) M0 j- H1 L2 @+ g - (setq dv (cdr (nth 1 dimsvcurset))): x' k& F2 |5 `* P& x1 {8 ]/ d7 D/ B
- (command "_.dimstyle" "" dv)
- B" r$ F' z4 k - (setq i 3)8 [; g% X4 x+ ^( @
- (while (setq dv (nth i dimsvcurset))
V* r- E" p3 i$ S8 h - (progn; a/ E$ E% A( i/ G1 ^# g
- (setvar (car dv) (cdr dv))2 Z! S) o! ]6 z$ M8 T. J7 u
- (setq i (1+ i))2 ]4 r5 @; u+ ]- f; p7 e
- )& U# u& T7 G; C. @& ^. ^: h9 j
- )
* }% }3 K3 O% m: r) j& k. X) _1 t - )8 A- [% C. a& J- O' y- y/ R
- ;;0 C6 m2 o7 m: Y* J9 b; d
- ;; End-of-dimension
: t, a- _0 E Z7 G - ;; ==================
( h+ I! q5 ?$ L! b' e8 N% [
' Y' h! V# F( @- H- ;;
( n' k' d. l% ^8 K( T) P9 L { - ;; Sub-dialogues for properties. Common to all object dialogues
0 G" }2 i( o2 u# E4 Z7 k( w6 r - ;;# l* e0 X% ~1 K* V; L
- ;; This function pops a dialogue box consisting of a list box,image tile, and
* {9 {6 ^* X; z# ?, W/ N - ;; edit box to allow the user to select or type a color number. It returns
+ {8 N% d1 Z% P - ;; the color number selected.- v: O+ P9 ~! T& }1 e
- (defun getcolor (/ old-idx colorno cname lay_clr)1 u" K, e: @" m/ s5 s8 l
- (if (= (get_tile "error") "")1 H# u0 w- v: D' `. ^
- (progn9 z, @5 E. y. Y6 `
- ;; Get the color associated with this object's layer, for use
f, n; t M2 l0 J5 z# V* e - ;; in the color swatch if the user selects color BYLAYER.
* T! ~, L- V# S6 m4 G# z+ G! X* T g# c - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))0 h6 A( X& P& _; ~
- (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))' F5 d" S+ c( Q! }) h
- (progn" }" j3 O* | C3 J7 ^$ V
- (setq ecolor temp_color)
+ N1 c V: M& W [( `* \ - (setcolor)
- B; d+ E. g; O* w/ r9 u4 g - )
! e) I/ M3 j+ p- j. z6 E+ `8 R - (setq testcolor temp_color)
% e4 u) ?1 t$ P) U" ], s - )* U, V T( j: {2 |5 {
- )
/ K0 B+ W* t4 z- f+ j" f1 G - )( @ o8 r* r; P; ?
- ecolor* Z. n' R7 Y4 i% O' C
- )
. J. Q' k. e8 E+ G# k - ;;
+ ~: h/ l+ Q( ]( A6 {+ M5 o3 w - ;; Function to set the color tiles.
8 Y# B; v6 Y3 R- p - (defun setcolor()
& d$ M% v: U1 M& U - (cond/ o( v$ b# l P2 C& Q
- ((= 0 ecolor)/ |" ]5 ^$ L, N" f9 b1 l- W5 a
- (set_tile "t_color" "BYBLOCK")
% u V' U! {( u& L$ h9 M2 S! U - (col_tile "show_image" 7 nil) ; show BYBLOCK as white, Z( Z; b% O. \2 \
- )
$ X# y' m4 ~% V) q+ U7 C9 h - ((= 1 ecolor)
$ i4 H% _ J, g* i( \6 D* k) y - (set_tile "t_color" "1 red")+ q/ Y1 Z" Q- ?6 \& |
- (col_tile "show_image" 1 nil)
, k" G6 E, V5 M U: g s - )
; c- q4 Y# g8 f% ~% G8 J - ((= 2 ecolor) Y% q. g$ ~* F6 w6 O
- (set_tile "t_color" "2 yellow")
6 ?4 D9 j% d# T3 F N8 U1 f0 s | - (col_tile "show_image" 2 nil)' F) c$ G* n. i* v9 j5 I7 t
- )
! n) J" l# `8 j4 j' P* V4 x - ((= 3 ecolor); v) K0 s2 l4 h, _: d5 v
- (set_tile "t_color" "3 green")+ E( ?3 v+ L/ q
- (col_tile "show_image" 3 nil)
s; ~% v# ^" j' L' b- { f! d - )
/ E6 F0 [: U+ y$ b5 _9 a- f. R8 ] - ((= 4 ecolor)" P8 r' S* D6 R
- (set_tile "t_color" "4 cyan")
! q8 T" t2 P% r) W% o4 A* r - (col_tile "show_image" 4 nil)5 ]- p" t+ a0 g4 c; i4 G+ l$ ~
- ) Z+ |: \; ~/ S( S( Q/ c) N
- ((= 5 ecolor)
" k! I9 r: k6 }- x% R2 ? V# d - (set_tile "t_color" "5 blue")
6 |) W( g9 X A0 K% ? A {8 h( u9 | - (col_tile "show_image" 5 nil)
) T3 z l. \( ?4 R1 K. r7 a8 o - )
1 W. g/ S* M! U6 w1 c - ((= 6 ecolor), z/ q1 L) O& e4 _& ~7 q/ A
- (set_tile "t_color" "6 magenta")/ p' K& d5 R6 U$ A
- (col_tile "show_image" 6 nil)
# k1 _7 F* ^6 B i7 C - )
$ [* ^* {2 r$ h u- b' a - ((= 7 ecolor)
! H: b/ @: T" V, q% \ - (set_tile "t_color" "7 white")" @3 U- n2 G6 s( w$ j4 ]
- (col_tile "show_image" 7 nil)" S L$ p# U; d& C7 e; h
- )
3 A/ P" r' _( D. w4 y) ~ - ((= 256 ecolor)9 \# B6 G: q8 Z$ i
- (set_tile "t_color" "BYLAYER")5 r. Z' r" n, |5 c& R) i4 ]7 Q8 K5 U
- (col_tile "show_image" (bylayer_col) nil)
g. R: d& S3 ^ - )# K ^# r' J9 d8 O: u7 r
- (T4 b* d1 Z: C0 X
- (set_tile "t_color" (itoa ecolor))7 b8 }" e$ A1 Q8 Z' X1 C
- (col_tile "show_image" ecolor nil): t+ `1 g* G# c, A2 K5 }6 ^ ~
- )/ a0 s- g" d* b" n+ A3 y9 Y% `
- )
. D# O& T( M( M8 X; J; v - ), @* N- c# X/ v6 V& R2 z
- ;;2 H) d/ V0 t5 v6 A" Y
- ;; This function pops a dialogue box consisting of a list box, image tile, and
/ V% I/ ]& {5 p$ s: r0 m - ;; edit box to allow the user to select or type a linetype. It returns the; {" _4 P2 e) s( x: n
- ;; linetype selected.
: Y' t2 c+ {- m' Z4 A+ M; P1 d) p - ;;8 m" X) j+ [! s2 a- O& v/ y3 h
- (defun getltype (/ old-idx ltname)
. j; c( q) x" ^( T& h2 ^9 {* j - (if (not lt-idx)
" y4 k0 F% v0 d0 E0 @2 Q - (progn9 T! D/ f. a @% p
- (make_lt_lists) ; linetype lists - ltnmlst, mdashlist N9 D2 a. m1 P' |8 n# u
- (cond+ |: p& {2 t* J( R/ A- ]
- ((= eltype "BYLAYER")
% E$ B! N9 M( u- m2 X9 O - (setq lt-idx (getindex "BYLAYER" ltnmlst)))
9 |/ l$ `. Z ~+ L - ((= eltype "BYBLOCK")
' t4 k8 h" d# v; r - (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
" F% _" ]* S/ a" o: S2 U8 D - (T (setq lt-idx (getindex eltype ltnmlst)))
- J+ ?6 m' [, p0 R' S6 B% v: ^ - )
+ |& H: B$ I/ U% A$ } - )
' _; L' {4 a& J- e9 O. g - )
5 o: x$ l2 l) f$ m: A
8 Z0 S" l9 P. Q7 Q: F" g- (if (= (get_tile "error") "")4 e0 P5 z, P% S4 r3 S$ {" D
- (progn1 o2 ?% B6 g- i
- (if (not (new_dialog "setltype" dcl_id)) (exit)): m8 h4 }2 ~* l2 ]" Z- a
- (start_list "list_lt")2 L5 q* \$ _2 H$ b, [1 T! z" }
- (mapcar 'add_list ltnmlst) ; initialize list box, Y3 P2 h |6 M6 w
- (end_list)& p& e2 {; X, h* T+ `' {/ j: [
- (setq old-idx lt-idx)
& j5 q( a" |. ~3 ^& t! z - (ltlist_act (itoa lt-idx))) W$ i! p/ z/ }& F1 ~& y) q# C3 V
6 O7 D& p/ S# u3 }0 y4 ]- (action_tile "list_lt" "(ltlist_act $value)")
7 _# \6 N( t( H8 w$ B - (action_tile "edit_lt" "(ltedit_act $value)")
7 u" Q$ l+ Q5 h8 i/ q - (action_tile "accept" "(test_ok)"); E/ B# w$ |' Z6 q. ]# a: S
- (action_tile "cancel" "(reset_lt)")
% R9 O8 U# _" _1 x+ r& r
% I$ u" c8 A# `, A* n6 M- (if (= (start_dialog) 1) ; User pressed OK' |7 _4 O0 q* t: R
- (cond
# g. b/ I2 p: V5 L: e; P6 ?; [ - ((= lt-idx 0)7 b) F7 X, l5 ^6 h/ k* _
- (set_tile "t_ltype" (bylayer_lt))
( D5 Y. E# q2 ~0 T - "BYLAYER"+ o1 w0 m% x: S( h3 i
- )
% y4 U; A) t# y3 I, P - ((= lt-idx 1)5 y8 d9 N" y" B( C6 ]& Z) }
- (set_tile "t_ltype" "BYBLOCK")
% X, Z7 e8 N6 Z7 [9 X - "BYBLOCK"
+ }! {( C+ ]% `: W% U - )
" _- I! v8 [+ H% M - (T (set_tile "t_ltype" ltname) ltname)
0 I7 t. h4 L' e - )
' t5 j: i8 _% X- V5 U# `! W# [ - eltype, W3 C8 H! \. _: N* Y7 E0 i
- ), f. {( X/ I E7 b# n0 C
- )
; N6 Z4 m* ?4 `7 s- T7 ] - eltype
# h! X) H8 Q1 @( s5 t - ); b. ]7 x d g& ^
- )
! ]1 j2 l. l2 X1 l6 f - ;;
* I& Z8 k# Z2 l {% p8 L - ;; Edit box entries end up here' y( m# q2 F7 N0 v5 Y
- (defun ltedit_act (ltvalue)7 l+ ^2 ~6 e! x: k8 a. o: q E
- (setq ltvalue (xstrcase ltvalue))
+ } c. w7 [9 R( @* e1 Q! R, x - (if (or (= ltvalue "BYLAYER")3 B9 X0 G I- s- ]7 J
- (= ltvalue "BY LAYER")); L* S4 G6 }# F9 b" I* u! R3 l
- (setq ltvalue "BYLAYER")
2 K7 r3 u v3 ?7 K& T) Y - )1 T# Y9 v$ s" U2 e5 E3 b
- (if (or (= ltvalue "BYBLOCK")- a, V+ e9 z8 Z% u- p" F1 N5 o
- (= ltvalue "BY BLOCK"))& \5 ^' b5 Z' N4 ]6 Q/ H* S
- (setq ltvalue "BYBLOCK")0 N; Z3 g- N, G1 |+ [/ T% j
- )
& A0 A5 q& d. O" m* ]% i/ g: g - (if (setq lt-idx (getindex ltvalue ltnmlst))
& t# v% f' M/ H D* e: b - (progn
# V. l3 F5 J' X - (set_tile "error" "")+ k, l" b0 M' s$ l% o' _
- (ltlist_act (itoa lt-idx))
2 d1 J9 q& Y/ E: M - ) @$ R8 t+ G7 U6 n' ]0 k/ u' v& I
- (progn1 l* W; X8 ?* f4 h
- (set_tile "error" "Invalid linetype.")
4 T6 m6 o' l5 e( G4 u - (setq lt-idx old-idx)4 z0 |) E8 Q# [8 V3 t4 D
- ;; (mode_tile "edit_lt" 2)
/ R' t9 H1 j( h& B4 i/ T3 @ - ;; (mode_tile "edit_lt" 3)
$ S1 S- A) p4 P- Z3 k! F$ M - )
7 Z+ p1 m* L3 x: U4 d - )/ ]3 R) p6 e" L8 y. \! J3 a
- )
7 J0 @6 N& ^" H) X, e, P B - ;;
7 _7 g4 v, E$ b$ E2 h3 [ - ;; List selections end up here. Update the list box, edit box, and color
1 T. o3 Q0 T2 S8 C1 s. l x - ;; tile.
, R& p- S( S( t4 N: L6 B7 F - ;;
% T: }" k7 u8 W" C; ^ - (defun ltlist_act (index / dashdata)) G3 d( o) \ ?; m' L
- (set_tile "error" "")
8 w- H2 t& J3 p1 q" j9 } ` - (setq lt-idx (atoi index))4 d# p: H5 a n* G9 ^
- (setq ltname (nth lt-idx ltnmlst))% \. S* M% }. E! k' ~4 C! p
- (setq dashdata (nth lt-idx mdashlist))6 j2 p, I+ ?' ^' N1 `6 a
- (col_tile "show_image" 0 dashdata)
& R. m7 a0 y6 F7 _" X - (set_tile "list_lt" (itoa lt-idx))
9 [/ i; V1 T! j: a: Q' | - (set_tile "edit_lt" ltname)
/ ]' E* u5 ~' E% p, N- L$ P2 ] - )! u4 e. K! [9 M4 i( B8 @3 h, Z
- ;;* h# M7 B& {5 a$ D
- ;; Reset to original linetype when cancel it selected" f+ c) O. E; P3 ^" F$ f) ^& f" D& Z
- ;;
! g: V6 n8 b" Y - (defun reset_lt ()$ ]' Z! R: b0 _8 f( u
- (setq lt-idx old-idx)1 n9 \4 W* o& }8 Y& y; ^, _
- (done_dialog 0)
! E* X0 F9 p% o* o& V - )% Y: h# T) U" D, {# y/ D- H7 Y2 Q& V1 m
- ;;& Q- ^5 p0 M7 k7 k
- ;; This function pops a dialogue box consisting of a list box,image tile, and
$ T3 s; u# d3 W* _ - ;; edit box to allow the user to select or type a layer name. It returns the
9 U, t- E, y4 I7 h/ n5 J, v, T - ;; layer name selected. It also has a button to find the status (On, Off,% k; r- c. Y4 K
- ;; Frozen, etc.) of any layer selected.; G) w2 e: ]# A3 u: G( O/ Q8 C
- ;;2 W. G: I4 [, k; k# T+ V1 j
- (defun getlayer (/ old-idx layname on off frozth linetype)1 r2 y7 e6 k5 L: D# S
- ;; Create layer list the first time the layer; b- [9 ^8 v" d% G! d% y
- ;; dialogue is called., k; _) Z: u" Q" b
- (if (not lay-idx)
$ S7 G0 `- `6 l% P5 k - (progn
+ z& X! d# L( H. c; l - (make_lay_lists)
+ g3 S) \7 [* W+ k, C) f - (setq lay-idx (getindex elayer laynmlst))& \9 L- o* P0 M, }7 c$ m
- )) K( {+ ~' D* I& V" z2 D5 Q$ f: V
- )+ X H( t' v3 ?% x+ }; @
/ J# I9 B, I K* b& n; _- (if (= (get_tile "error") "")) }, q7 a Z/ D R' G$ H
- (progn
, y0 V# u8 y9 W3 e - (if (not (new_dialog "setlayer" dcl_id)) (exit))* v8 S% B. b2 b8 d7 F5 j
- (set_tile "cur_layer" (getvar "clayer"))6 j: b+ R7 ^' c3 I( w+ b
- (start_list "list_lay")7 Y1 Y# T1 ~2 E* R2 y3 E; ]8 d! h
- (mapcar 'add_list laynmlst) ; initialize list box3 {1 _1 f* Y. ?/ \) f% _/ L
- (end_list)
7 d4 D- a) V: J P+ `* N6 V5 s - (setq old-idx lay-idx)
# U, ]; e! @! Q" X - (laylist_act (itoa lay-idx))
' V# ?' {2 _; N. W2 t - (action_tile "list_lay" "(laylist_act $value)")
; D8 x, {, d1 [7 m, p, t - (action_tile "edit_lay" "(layedit_act $value)")
: Y, i6 S S3 G o2 f: k+ ] - (action_tile "accept" "(test_ok)")
- g8 i0 d! [' j% d7 d s3 b - (action_tile "cancel" "(reset_lay)")
9 T9 D. m. F2 _- J* P - (if (= (start_dialog) 1) ; User pressed OK5 \$ f# u _0 ^- \) L
- (progn% {' ^- o% G. J4 n }2 K0 ?+ o
- (set_tile "t_layer" layname)
# I" u. Q6 E- c% u* ~7 P8 k8 b - (setq elayer layname)
, W8 a+ n7 S" l F U+ z; Q - ;; If layer equals bylayer reset color tile
% K) p: N, a: a$ Q# P+ B7 s0 h - (if (= ecolor 256)
7 B0 N7 s* W3 [1 B9 m - (col_tile "show_image" (bylayer_col) nil)6 V9 `0 B$ t2 u& B" H
- )
, j1 ^0 Q+ U, ^' P - layname# s) t7 Q: V7 d8 C
- )& G: k! A/ X( [
- elayer
5 w- U/ Z( b+ d6 U- ~* K- I - )" Q. s, ?! J# U4 i# V
- ) |# e) C/ I% F
- elayer% I% s7 c( @7 d
- )- G5 Q6 x2 k0 c" J) t
- )
3 ~1 T4 g! x" t) V - ;;
4 w3 A( g5 [) N% V5 L/ n - ;; Edit box selections end up here. Convert layer entry to upper case. If
& j5 T3 `0 K) t4 c8 w - ;; layer name is valid, clear error string, call (laylist_act) function.
8 @ U3 x1 R. G - ;; Else print error message., R( b& H4 c) E# V7 s
- ;;
8 J& }/ O8 L1 o8 P5 g) x4 L2 }; A - (defun layedit_act (layvalue)
. W. U1 I8 t- p6 r N# ^ - (setq layvalue (xstrcase layvalue))
7 B# m$ S V& L; j6 H+ ]) ^: ` - (if (setq lay-idx (getindex layvalue laynmlst))% M% g' n' U' V1 E! {, U
- (progn. d: m$ b: |- b0 c. E+ L/ v
- (set_tile "error" "")) {( g5 L' U1 \
- (laylist_act (itoa lay-idx))/ m( X4 M% Z( W' {& P! Z6 S
- )
& m- [+ p% T$ q) Q. E4 F - (progn
5 Y4 b$ Y# l1 M0 o. `0 x+ `% F - (set_tile "error" "Invalid layer name.")+ l, q5 K3 x9 D. e
- ;; (mode_tile "edit_lay" 2)6 I s, K3 m, p1 ~
- ;; (mode_tile "edit_lay" 3)
) B! F# @; D" \& A - (setq lay-idx old-idx)6 L$ z2 U7 u! k- H$ |
- )4 W5 L/ l! h0 A' G! V
- )
1 B9 K( C0 ?" i0 u - )
" a2 a2 z7 D2 k6 }' p5 V! Z! Y - ;;) Q4 t! v9 h0 i$ h9 D
- ;; List entry selections end up here.
( r/ K, A0 O' `3 q" F - ;;
& o g7 x) X7 `3 |9 Z& W - (defun laylist_act (index / layinfo color dashdata)! Z' a, F% L8 V% q
- ;; Update the list box, edit box, and color tile.
, |" `: {; Q1 Y# ?# k% { - (set_tile "error" "")6 Z; p$ g, D7 r2 m* ~3 P
- (setq lay-idx (atoi index))
' r8 |8 u: i2 O1 `* X3 J6 [8 v - (setq layname (nth lay-idx laynmlst))
3 L H; g& L2 s5 j7 R( L; J. p - (setq layinfo (tblsearch "layer" layname))% m5 X9 p/ p3 |% Z I$ H" ]
- (setq color (cdr (assoc 62 layinfo)))
; m4 k5 v7 ~, P% }7 k - (setq color (abs color))
* G! o; d- K( z6 ^- ]* p - (setq colname (colorname color))5 j/ z' ]2 {% H% i, s
- (set_tile "list_lay" (itoa lay-idx))8 x0 h7 }+ P# p7 f8 c
- (set_tile "edit_lay" layname)
- A+ h: v( Z5 P* N( f+ C3 \/ R - )$ s# ]7 A, L7 q, O: \
- ;;
* e( _! e/ d q% i - ;; Reset to original layer when cancel is selected.
! }8 E# Y" x& E& ~: D% X( W& m8 @, T - ;;
4 {1 P) H5 O- q3 F4 g0 K9 M0 ~ - (defun reset_lay ()
+ S% ?) S( Z( x6 p - (setq lay-idx old-idx)
! v1 }0 C4 g( l - (done_dialog 0)
3 M {% ^5 m; ^% G1 n - )
# `4 s3 [4 a' t; Q* u - ;;! Z ]% m# O9 z( Y
- ;; Checks validity of thickness from edit box.- x9 T! S. M z/ [) q# F% l5 X
- (defun getthickness (value)
* A% l# h% I! }& u F; P7 o2 n a$ q - (setq ethickness (verify_d "eb_thickness" value ethickness))
5 X/ E4 R& h% A! e0 T) d) ~7 a4 g - )8 R; E5 v& B6 u0 [( Z
- ;;
. e& n# G% c7 e; c - ;; Copy of (getthickness) for ltscale. If more, make this function
( w0 G n0 Z6 ^( C - ;; generic./ @: O2 h' Q9 k7 I1 F8 g# t9 Y
- (defun getltscale (value)" ?' d% ]% |- \9 n; K) K. K7 R
- (setq eltscale (verify_d "eb_ltscale" value eltscale))% z' t7 f0 Y# l5 W$ H( u4 M
- )
6 b8 x5 C0 a0 h - ;;( ~" C4 [. N2 M- q
- ;; This function makes a list called laynmlst which consists of all the layer# _4 v, a, V9 `+ P
- ;; names in the drawing. It also creates a list called longlist which* t( {6 V6 y0 P( o3 [
- ;; consists of strings which contain the layer name, color, linetype, etc.9 L' I7 M9 o+ i4 O! v# V
- ;; Longlist is later mapped into the layer listbox. Both are ordered the
! K# H) C, f, [4 e: ? - ;; same.% w8 D: G9 _ S
- ;;# D ~) K* e Y% I7 X" j" C
- (defun make_lay_lists (/ layname sortlist name templist layer_number)
9 r6 e/ |$ j% C9 v$ v4 {4 a - (setq sortlist nil)
0 I: ?2 }9 J, r8 |' e3 u - (setq templist (tblnext "LAYER" T))
W/ M) ^( M2 `/ e1 }% ~: P+ ` - (setq layer_number 1)9 z$ ]2 k8 R1 P
- (while templist
: Z- D u3 a) B a - ;; No xref dependent layers, please.( P) j% h+ @% n R+ U
- (if (/= (logand 16 (cdr (assoc 70 templist))) 16)8 r& m" o2 [4 V4 X& T" @
- (progn) n6 v0 {5 m9 a0 r- y
- (setq name (cdr (assoc 2 templist)))
\4 v6 y/ E X3 k4 r4 z5 R% I* M# Z - (setq sortlist (cons name sortlist)), o% O# M a/ q& r( G7 {
- )
% R1 M- g0 \3 K8 V; w& N4 q - ). b i3 a0 r; P+ w: e/ O `8 Y9 o% o
- ; Get the next layer.
8 C# M- W! i5 {# s% D0 k - (setq templist (tblnext "LAYER"))* L, f8 I/ Y5 r* o5 I9 a! J2 i' U
- ;; Not dead message...3 | {- g2 j5 j- Y# t
- (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))& y9 r+ t4 ?5 ]2 \5 D% \
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
0 J1 ]" Y. A0 W C b8 C! }; k6 y8 ^ - )
& L! a: ?' R, z9 U7 I& m. V - (setq layer_number (1+ layer_number))
& B4 r* z6 d: N8 [ - ); a7 C, D* q. Y+ a
- (set_tile "error" "")
, k7 f' k6 g+ j& a" _2 N6 ]0 { - (if (>= (getvar "maxsort") (length sortlist))
( k2 z, N% T2 Q3 `" @+ | d2 ` E - (progn; f5 T v& A# S, d( b( I- K
- (if (> layer_number 50)& ]6 O- N0 q2 p* x9 |8 Y1 \! D6 J$ @
- (set_tile "error" "Sorting...")/ O7 e' j3 [% R8 K( p! Z
- )
( O0 g; P' h0 T* R; Z, Z) P% I - (setq sortlist (acad_strlsort sortlist))5 I# z% ?$ F3 Q/ g. C" M- ?
- )3 {' p3 _+ T' O) l' g, f5 V# u
- (setq sortlist (reverse sortlist)) o6 U- Y S( q# @& Q4 g
- )
5 c3 z6 v. d0 }$ { - (set_tile "error" "")! f4 |. ~- k& {' L$ C
- (setq laynmlst sortlist)
6 l+ f. c% g' q4 d - )
0 R [6 x/ T5 C s6 G- O3 R6 ~8 ~ - ;;
- F' D' ?8 v) {5 h - ;; This function makes 2 list - ltnmlst & mdashlist.
9 M; {, b6 i+ F - ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist
! v& M0 D9 N5 f - ;; is list consisting of lists which define the linetype pattern - numbers
3 u' N/ E% l/ k* R - ;; that indicate dots, dashes, and spaces taken from group code 49. The list; B1 N6 }" }7 ^- m" m( i5 C, L9 V
- ;; corresponds to the order of names in ltnmlst.9 c7 [/ {7 E8 `4 I
- ;;" y- ^! A2 w' x0 }3 c9 i$ ~
- (defun make_lt_lists (/ ltlist ltname). V' y6 O6 A1 M' z9 C* [7 v8 b9 a: X
- (setq mdashlist nil)/ T |4 L) r8 J% ?' ?9 Z1 k& u+ H7 b
- (setq sortlist nil)
: |1 Z. `: L6 t' d7 b! x% ^$ { - (setq ltype_number 1)4 T( w u. V( y( O
- (setq ltlist (tblnext "LTYPE" T))
5 r+ r* x1 F- |0 E# U* c5 ~ - ;;(setq ltname (cdr (assoc 2 ltlist)))$ m, j. ^6 b5 S, G8 E
- ;;(setq ltnmlst (list ltname))2 Z( r/ o7 [# f+ \6 |/ m3 \
- (while ltlist
" C2 q/ L2 `/ v* ]0 F* z - ;; No xref dependent linetypes, please.
& d4 u9 R$ K3 |3 m1 t* f' @+ i - (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)+ ~ z# J/ P ^/ r
- (progn5 S* F1 \& `+ Z) {) `$ Z$ ]
- (setq ltname (cdr (assoc 2 ltlist)))
( f8 Y2 T) m, P! P9 f" m5 n+ Z/ Q - (setq sortlist (cons ltname sortlist))
E6 n- t" ^6 [6 s- v1 b* X - )( c2 V* N7 n1 u B) N) n- D: J9 e
- )4 v+ B% L6 l5 E- K7 x( k8 n
- ;; Get the next linetype.
* k* F0 X7 J8 Y! l5 @8 O1 _ - (setq ltlist (tblnext "LTYPE")) \+ m& F' Q) J
7 p7 X9 Z! r3 H; C$ b. Q# {/ e2 {- ;; Not dead message...
& R! [* b m4 o7 k L* \ c - (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))2 N3 V+ {& [+ w& A9 _
- (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))% Q( c9 ^# _4 y
- )
- x2 x( f$ w. M0 p7 D9 W - (setq ltype_number (1+ ltype_number))0 v/ V& C0 t, N. d& [' w o- K
9 P+ F$ @( m& d/ M4 J- )0 }3 B" ~, v1 O5 Q4 s2 M, I2 _
* y# p/ k s; I7 c) x, h- ;; Remove Collecting message.
7 L9 I7 o0 l h1 t - (set_tile "error" "")
) K5 d8 i: i, h" E% e8 X# i - 6 R7 t) f% F9 m( V2 Z- |
- ;; Sort based on maxsort.
7 ~2 U/ P' V( P, s! t5 n - (if (>= (getvar "maxsort") (length sortlist))
0 h5 Q( p% K7 ^# a% A - (progn8 o) q) m9 V e a' ~
- (if (> ltype_number 50)$ Q. o- `; F* f2 `/ | P
- (set_tile "error" "Sorting...")
6 m4 Q8 T) i5 l5 g( T - )
5 [, U6 P7 ~$ }- ] - (setq sortlist (acad_strlsort sortlist))/ w% @: I9 y# V
- )
6 ^5 P+ |; E" k2 w% {3 S* Y% ? - (setq sortlist (reverse sortlist))5 g3 _9 I+ B& k6 ]' f6 g
- )6 N6 H$ f! z6 U- f3 ]/ [; W" z/ a
- (set_tile "error" "")8 z8 G8 h- X* G' B+ ^# W
- (setq ltnmlst sortlist)% d, `" `; O- p: j
6 s0 }1 W! [2 q S# Y' A4 M8 L" z4 e- (foreach ltname ltnmlst
1 c, }3 o% [$ A" K4 C9 Z6 l9 m$ R - (setq ltlist (tblsearch "LTYPE" ltname))
2 s. g8 y( E! m% Y# r. V# ] - (if (= ltname "CONTINUOUS")
+ H0 ~, |+ g" Z5 P6 t - (setq mdashlist (append mdashlist (list "CONT")))" F x* t% U" U7 [+ P, r
- (setq mdashlist
5 z4 ^4 v) ]; G; I6 e - (append mdashlist (list (add_mdash ltlist)))$ d4 ~( V+ T8 i0 I9 S' A6 [
- )
8 C7 m7 ?. R2 l7 [( S$ s2 f9 r - ), i% }1 Y5 D5 d7 o7 n
- )
5 Z. x% E# y4 c7 G - (setq ltnmlst (cons "BYBLOCK" ltnmlst))
/ Z% r! h, i: e0 B( S% f" T - (setq mdashlist (cons nil mdashlist))( U8 U0 ]0 t/ ~! n7 [! n A* e1 z
- (setq ltnmlst (cons "BYLAYER" ltnmlst))" d! t* _8 P9 d# g
- (setq mdashlist (cons nil mdashlist))5 G5 @8 o/ X! H* K: w
- )2 @5 d7 T+ {) Z7 G
- ;;
! A D1 j' b/ Y - ;; Get all the group code 49 values for a linetype and put them in a list
7 D1 E, Y' l8 f3 R1 z* k - ;; (pen-up, pen-down info).- A$ q; J" A# m3 T4 Q
- ;;5 Y8 _( p6 `0 _" w
- (defun add_mdash (ltlist1 / dashlist assoclist dashsize)$ P, K5 D0 O+ W
- (setq dashlist nil); z& V6 k v F+ f/ f
- (while (setq assoclist (car ltlist1))
1 Y& M0 b9 o& x) y - (if (= (car assoclist) 49) a; a6 K$ [- ~% o- z
- (progn
# w4 V# r; G6 q; P# I2 J! A - (setq dashsize (cdr assoclist))1 `. W) b0 X8 p& w& O
- (setq dashlist (cons dashsize dashlist))
, }0 h/ [6 K: c6 s - )
8 o5 p8 T7 [! `6 V - )
4 J) {) x3 `' g Y - (setq ltlist1 (cdr ltlist1))
8 o) t, y3 P! E" E' ? - )
; j( T% T7 T9 } t7 Y$ K - (setq dashlist (reverse dashlist))/ Q' K7 z/ l: \0 ` A/ l
- )
2 N7 e! E6 w# b7 U - ;;
6 E5 g) Y1 {0 R1 R& x3 Y' o. u - ;; Color a tile, draw linetype, and draw a border around it
; W! j8 d$ ?6 Y/ Z. p% `6 F4 q - ;;
" w4 s g- R8 j7 D# R; p - (defun col_tile (tile color patlist / x y)* f: ]% P) D* }8 G
- (setq x (dimx_tile tile))
3 s& n. w* t9 Y5 X, [7 V e - (setq y (dimy_tile tile))
5 _2 y: A' _$ l& o7 \6 g' l, e! v - (start_image tile)
/ Z& Q( P3 y( X4 c" ] - (fill_image 0 0 x y color), o& {" Y# Z' o! y
- (if (= color 7)2 r8 g4 ^2 w b1 S* o% U, ?* m$ w
- (progn8 ]9 Y% h; Y4 t/ M* d9 ^9 f5 X; n9 F
- (if patlist (drawpattern x (/ y 2) patlist 0))
: u5 X- Q2 r8 V - (tile_rect 0 0 x y 0)
3 ?+ E7 _5 P) d% p; A - ) f- b6 Y. K |/ |
- (progn
; y; {3 c# @: c9 A% I - (if patlist (drawpattern x (/ y 2) patlist 7))* h6 d- K: E( p: e p: r9 Q
- (tile_rect 0 0 x y 7); K# Q" x% V. f6 I3 G- c- K
- )& p# U) l4 e. a$ V, u$ E0 k
- )6 u j# ]1 O+ _' q' ^
- (end_image)
/ c2 ]5 }2 u- A - )
0 a) z! E$ `) u6 w) G8 z: c/ n - ;;( `, ]: u! U. }: x2 j# L! l
- ;; Draw a border around a tile8 ?- p* O; V% S( k! f
- ;;( [$ Z; ]& S7 \1 S
- (defun tile_rect (x1 y1 x2 y2 color)
" A; i2 L) Z. ? - (setq x2 (- x2 1))9 c2 D, `& {1 k
- (setq y2 (- y2 1))
8 s/ P _% F4 G5 _ - (vector_image x1 y1 x2 y1 color)
/ y! k+ l' h$ o& l' C - (vector_image x2 y1 x2 y2 color)
$ g: G! e% W0 D, g9 T, \" j5 | - (vector_image x2 y2 x1 y2 color); _! p- f, C9 x
- (vector_image x1 y2 x1 y1 color)- H) R) X0 M9 ?9 c, d/ K0 P+ h! Y
- )' D2 }% c2 ^: w7 Q( R
- ;;# q4 h4 n7 ^8 V6 w8 a$ Y9 e# q
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image# D6 r) A, V3 s, f
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
0 T3 g7 i% k. N& |' w - ;; list of numbers that define the linetype, and color is the color of the+ H& v; l3 l7 z7 y4 r& c5 L
- ;; tile.
. ?) F8 d+ H7 F - ;;
, S% s9 }8 K. L4 P. Z - (defun drawpattern (boxlength y2 pattern color / x1 x2
- n8 F% _0 R: T, V - patlist dash)0 |0 Q( f1 q! Y( G$ M- r
- (setq x1 0 x2 0)2 M6 {5 ~: ]* x' S( I
- (setq patlist pattern)" l) d& {2 V( h
- (setq fx 30)
, n. K. I' r: N6 B5 c - (if (= patlist "CONT")
, n" X' J( ]; s9 \. s! c) F - (progn (setq dash boxlength)
+ d$ k' }1 Z% N# n - (vi)
$ I- G% \& O# G, F) _% {* J3 e - (setq x1 boxlength)
# L! q8 \( a( ~* Y - )
7 @3 _! y" g3 G - (foreach dash patlist
; ~. X4 h& ]% }, y$ a( } - (if (> (abs dash) 2.5)
, \: V, I1 D* `0 ` - (setq fx 2)
+ d% }/ p- p d" v5 { - )
, r# E0 ?6 u5 K* A4 r1 \+ } - )& C/ x. }! y) e3 k
- )
5 w. c3 R; @0 a% c - (while (< x1 boxlength)$ m$ o" R r5 ^
- (if (setq dash (car patlist))# {4 [! y* D$ }, A1 ]
- (progn
( Z6 G+ l3 e+ Y" h/ [+ X, d, \ - (setq dash (fix (* fx dash)))0 p1 C0 K' ?1 w( ]* @0 p
- (cond; Z6 H! R; n" A4 J. ]5 E
- ((= dash 0) (setq dash 1) (vi)), D$ l0 d1 n: g' d0 o
- ((> dash 0) (vi))" T9 u* ]$ y5 R$ l K+ t
- (T
6 g5 Y+ i1 q& E3 y - (if (< (abs dash) 2)
( ~1 q P; {% z6 [ - (setq dash 2). {$ {+ C+ H E: Y: a" q5 b
- )
* N: E4 g$ f, }" i* Z9 P2 i - (setq x2 (+ x2 (abs dash)))$ D; \8 |' b2 ^, l a" s- M
- )
0 J8 `3 `0 v1 @ a$ J - )
8 B5 a2 o' a/ `* q; x" \ - (setq patlist (cdr patlist))
+ n C1 w( q9 S; D+ R - (setq x1 x2)- c/ x4 ~/ e( E
- ); i$ s: s% d* ~3 f: {/ ?/ v9 [! d
- (setq patlist pattern)9 B/ H7 m4 U* X5 c$ M# X1 A8 `
- )
6 H0 ~8 F r2 r) R* E& M; S T - )
1 K$ l' N0 |6 M+ s0 Y; O6 p - )# I/ I: h7 C" ]
- ;;
, H3 G8 U: G }; H! W- X) { - ;; Determain state of xclip* `* l- s7 n7 L4 {! }4 u
- ;; Returns the group 71 value of the spacial filter dictionary.
6 K9 L4 c9 c" U: d0 u" ] - ;; If the entity doesn't have a spacial filter dictionary, this* F" X% l2 W3 ]
- ;; returns 0. If it does it will return 0 or 1 depending on the& m7 @- l, Q4 `
- ;; current setting of the state of the clipping visibility.( k: b, w/ F9 b( {1 F+ e! [# f
- ;;
8 g2 p ~0 ~; ]3 D - (defun xclipon(elist). G/ Y# s, \0 H; G* h3 ?
- (setq hasclip T)
/ F! ` v0 A1 D D- G, S: _ - (if (/= (assoc 360 elist) nil): }! U! a7 g6 R0 j V7 A
- (progn
- M# x: a( f9 b# X! ]: [ q - (setq tmp (entget(cdr(assoc 360 elist))))
' k' u) h5 a6 `; m/ J - (if (/= nil (assoc 360 tmp))
' A% k/ G8 |' a4 S - (progn* M& O2 t8 H$ t2 p
- (setq tmp (entget(cdr(assoc 360 tmp))))
! u7 m% ~5 [! k( ` - (if (/= nil (assoc 360 tmp))
5 W8 N/ O; \6 g$ |% h% j# R - (progn1 i( e0 E7 M/ o8 L7 x, N
- (setq tmp (entget(cdr(assoc 360 tmp)))); S: l7 L4 G4 v2 u8 t: e
- (if (/= nil (assoc 71 tmp))
) F8 B$ n7 ]+ I9 n e% { - (cdr(assoc 71 tmp))# _+ C1 m# f, e9 T
- (progn
" x; x& m) b. `4 J4 G! I3 O" C3 S - (setq hasclip nil)
' l1 C. N( U6 ~- P - (eval 0)
; p. h7 }/ n$ O! f6 J* O- n, `( V - )5 z; t4 h0 o a' u2 c0 ]: j5 f. q
- )
6 B4 d! A- V8 F: B! X - )* `: [2 e$ f. q3 p4 y; q
- (progn % H7 q G# h: P( j- U6 P
- (setq hasclip nil)
& U& C& J( G/ s) |! F& I# ? - (eval 0)0 o* _! {9 Z" z5 a
- )1 q( K& C& z" ~, E a! o3 w$ \: L
- )
) f( f( L) p6 L3 h* _ - )
1 ?; z% w; R) Y - (progn
' }0 ]- C: F1 E2 O# ?3 d' \2 { - (setq hasclip nil): K3 s9 O2 d. r8 j6 u8 M* K
- (eval 0)* n3 i8 I/ N" e8 U9 g' R% a8 G& q
- ); u4 m, a" X1 ]/ F4 I: s- X
- )
+ @) Q- u- f' F! n' ~! a - )( i3 ]" y$ ]0 s; O
- (progn 7 r2 U3 H! t2 K. v' \: @$ w7 g
- (setq hasclip nil)
; N% Y& Z) |% V0 Z - (eval 0)/ B& O" {+ a2 I+ T+ T; ]
- )) {, D; o; ^* p' |
- )9 X: @: k$ Z' ?/ l1 {
- )+ v0 B, T& G$ }0 A1 H
- ;;# W# ~, Q+ B7 ?* @" B" b
- ;; Draw a dash or dot in image tile
' v% D% ~2 q5 X+ C, P9 r) x: ^ - ;;3 a% n# W6 N, g+ h) t* @
- (defun vi ()
; {& k) u! E8 Y0 J - (setq x2 (+ x2 dash))
! B8 X/ ]) h4 P4 {# J: z" C - (vector_image x1 y2 x2 y2 color)
4 P9 t0 @5 j5 i: g7 y - )5 u- Z2 H( y# j* x8 \) w6 b1 V/ m- T
- ;;3 r* P z( ]7 d7 A8 b
- ;; If an item is a member of the list, then return its index number, else
8 p6 M' Z) s; x4 K8 o) N - ;; return nil.
# h( u; I3 l- M* J - ;; D7 J2 o6 x! r; l5 {0 _4 A
- (defun getindex (item itemlist / m n)3 v2 X- R. i j: T9 x3 h: \' c
- (setq n (length itemlist))! k+ K+ R. I6 g8 M( c" A$ k
- (if (> (setq m (length (member item itemlist))) 0)
* j5 r; i* E ^) g - (- n m): O2 z R: w" P3 R! ]
- nil
( ^: v( p! E9 [. H! v - )
, A( O# n; p9 @; E - )
; h- N# o. `1 F" \* f: T. I5 m - ;;. K( g. L0 Z' t- Y" B; E
- ;; This function is called if the linetype is set "BYLAYER". It finds the
6 E6 Y2 t& S. Y4 R$ u% o - ;; ltype of the layer so it can be displayed beside the linetype button.
} h) A% M1 F. b: |. B4 l - ;;
; ?9 ^0 \" Z, \# u - (defun bylayer_lt (/ layname layinfo ltype)
L9 \: b: @3 M6 G6 O - (if lay-idx
' P2 H" }" U# N% B2 ~$ E - (progn
, ^- K" }& t, }$ V8 M4 z" L, P V - (setq layname (nth lay-idx laynmlst))9 k9 Y( C9 x0 a
- (setq layinfo (tblsearch "layer" layname))
8 b; f; i3 k! o - (setq ltype (cdr (assoc 6 layinfo)))
* B, j9 n* s5 Y, ?/ A( U4 P - "BYLAYER"; Y9 P/ y5 R9 i. }
- )
# U3 G6 L$ k0 \9 r# z0 ] - "BYLAYER"
. O( n1 O* x' `: Z0 N( d: d$ g - )
, E" u1 n4 D% v+ U; [5 W - )
- }$ i8 d6 O; p$ U! e p9 e - ;;
, s& u$ c3 o# y9 R8 A3 C/ e( F - ;; This function is called if the color is set "BYLAYER". It finds the color& z: W: d1 v0 k: B, \- H' w
- ;; of the layer so it can be displayed beside the color button.
1 m( O5 {, l: v! f - ;;( g( L2 K/ B/ ^
- (defun bylayer_col (/ layname layinfo color) g- F9 ^7 H( }9 n- W
- (setq layinfo (tblsearch "layer" elayer))7 S% F! L; { i1 z2 g' ]/ n9 i. \
- (setq color (abs (cdr (assoc 62 layinfo))))5 v9 H1 X9 z6 G, V. {
- )* X8 G* I' U; L( N9 i! A
- ;;
6 u4 c) v. C3 V/ l& X$ b - ;; Used to set the color name in layer subdialogue.* g& O( I. i$ y9 x* w
- ;;
: N) j; ~8 o' U I) j - (defun colorname (colnum / cn)/ I, w) ]0 X4 b4 Q7 x9 c
- (setq cn (abs colnum))& }/ V& B5 u; ?) x# s
- (cond ((= cn 1) "red")
5 c8 p$ ~: g! f, e3 M: b - ((= cn 2) "yellow")5 r, x, }; A3 y
- ((= cn 3) "green")5 H" l& ?( c3 l( q: ~! J$ C
- ((= cn 4) "cyan")
4 ~" a) O! Y) g( r - ((= cn 5) "blue")
5 e9 l4 l6 G' {. a/ Y. i - ((= cn 6) "magenta")
3 H1 n. `" M5 @& l0 G - ((= cn 7) "white")
7 r3 [4 j/ _* Y0 u. [ - (T (itoa cn))" G4 ?% x3 }2 b5 I- k0 y. E/ m
- )* O; @" \! `5 s* R! b2 _
- )( _; k. J# `* U- s# L: t
- ;;
0 l" r2 H5 ~1 K4 p1 ] - ;; If their is no error message, then close the dialogue.$ B2 T; m) |2 Z6 X/ p+ x
- ;;
' O# H5 B7 ]/ }8 W - (defun dismiss_dialog (action)
8 t6 n; l0 o! b3 p: e3 t5 O# V - (if (= action 0)
( D* ?& [/ K/ v2 a - (done_dialog 0)
9 T5 w$ v9 w3 `' f! | - (if (= (get_tile "error") ""): G: s" }% b2 m. t7 L. F4 @
- (done_dialog action)
" p- o( W8 ~$ J" f - ) [2 P ^5 b- Y
- )+ E- S% n" W! I- I, S1 X
- )
0 ^3 F" ^% P+ {0 z# b5 R8 [ - 0 l. I2 u- Q @* c9 `: m5 W/ H
- (defun test_ok ()
1 M& h; V" s4 M7 z" V - (if (= (get_tile "error") "")
" a7 l* V d! Z. i4 X - (done_dialog 1)) Q5 r$ `8 N9 v: L* P
- )
0 |' {5 t, }# ^$ o* O# u - )% |0 ~, i1 C- n& u# \& k
* ^/ v% a( r$ S# ]- (defun cancel ()
/ n$ q$ u) f; m5 U* X - (done_dialog 0)
. t7 l* r( N6 h. |: Q) r - )% M; k+ n' Q4 D/ T
8 D$ K) h# {9 s5 X' z8 {- ;;; =======================================================================1 ~/ G! V' {6 o* W4 ^7 w
- ;;; SETUP layer and linetype lists for application, and initialize all; `2 s+ l9 H6 z) X: N' N* t
- ;;; program variables.( U# z& q" ^; {- G
, K. C8 Q# F) B8 F7 @- j5 i! ~: z( {- (setq elist (entget ename). m: E" I' c5 z# h4 L: Q- F
- old-elist elist
2 I1 J3 L# P% d* k' j, D& a8 { - modlist elist1 h7 e: I6 t/ R( z8 m0 z: x
- etype (strcase (cdr (assoc 0 elist)))4 X7 j' q9 W7 a. c9 ~; @
- ecolor (cdr (assoc 62 elist))' Q+ l0 ^& }# b) p
- elayer (cdr (assoc 8 elist))
7 S: x/ `" j8 X8 Z% Q) G. W/ c - eltscale (cdr (assoc 48 elist))
" |; g1 S0 A' k% A0 | - ethickness (cdr (assoc 39 elist))
7 P: R6 H" Y5 `8 z# ~- Z - eltype (cdr (assoc 6 elist)) c8 ]0 N1 u H( ]! h- ^
- )
! |. N9 W5 g: b/ H - (if (= (assoc 210 elist) nil)
7 Y0 }* I0 `. Q) ~0 V - (setq extru (list 0.0 0.0 1.0))
' n* k' h% m5 ^' o' X - (setq extru (cdr (assoc 210 elist)))0 Q2 w/ X8 _! Z- l( M/ s
- )
+ j) H5 b/ M' i. ~ - # z* _ a0 Y6 I6 G; |% }+ H W
- (if (not ecolor) (setq ecolor 256))- u( `7 e) n0 @0 c
- (if (not eltype) (setq eltype "BYLAYER"))3 Q( D$ D: N& w: P C" w
- (if (not ethickness) (setq ethickness 0))6 p" P9 v, L9 n1 U( l0 j& Q
- (if (not eltscale) (setq eltscale 1)), k3 O5 e$ {" U2 Y# V Q8 b, A
- ) ; end ddmodify_init
$ d1 T: {. I- _- m# ~- n
, ^% ]# }" t3 P' P- ;;; --------------------------------------------------------------------------
4 i3 W0 e/ c2 ~6 Q0 ^- V6 t - ;;; Function: DDMODIFY_SELECT; S9 c1 M; [; {, a3 X3 s- ^5 ~
- ;;;
1 H5 y- ?2 H1 X; I - ;;; Object aquisition function.
4 c0 E- q8 g0 G1 Y- s6 ? - ;;;- h3 W1 i% N* c9 M1 z
- ;;; (ddmodify_select)
7 g+ I/ L% Y% |. T - ;;;
6 {' w" L$ U; b3 `5 a; H! F: J4 ~ - ;;; Obtains object to be modified, in one of three ways:
2 F5 a1 Y) o! k" l - ;;;
! r. j8 Y4 M$ V$ N" K# \; ^ - ;;; 1 - Autoselected.
2 t; E; }9 k3 Y6 l; ` - ;;; 2 - Prompted for.
: m$ C" L8 S' C8 a7 \; A: B9 _( [9 l - ;;; 3 - Passed as an argument in a call to (ddmodify <ename> )1 F1 H9 B& l |/ ]: _
- ;;;
5 ]$ f/ E& V& }( y( z - ;;; The (ddmodify_select) function also sets the value of the! t& v' h& B2 U" w; E6 M# b& }) ]$ t+ ?
- ;;; global symbol AI_SELTYPE to one of the above three values to
! ]4 E/ _8 z; p) W - ;;; indicate the method thru which the object was aquired.
/ G: v" j8 w" _% L - ;;;
2 A! J# n& O6 H; {- C3 C7 l: C - ;;; This value can be useful to applications that want to RESTORE
- J* q1 I4 }( w. }4 m, R( r1 @$ | - ;;; an object that was autoselected to its previous selected state: w- L. y; p7 J3 r4 {6 h7 l
- ;;; when they terminate, although there doesn't appear to be any1 q4 |, D; X: ^, z
- ;;; way to do this right now.
5 b. Y7 O1 S( D - 5 s+ R/ {- Q- P* v- o& s& ]
- (defun ddmodify_select ()
( r# K1 z6 V. X5 ~# X4 L# w - (cond
; C) ]1 o- e9 V/ n, `5 w - ( ename ; (ddmodify) was called
0 B- e, \+ E4 N - (cond ; with an <ename> argument
8 S* t; _3 |9 n5 d% B* T1 h% W - ( (entget ename) ; If object is non-deleted: ^5 B% i6 l& Q: Y7 J* z
- (setq ai_seltype 3) ; then return its ename.
. l5 ]0 y6 ^9 G3 ~ - (ai_return ename))))
# A0 r0 P) [/ y
/ C0 U0 I2 ~. f5 o- L2 S2 C% i. _- ;; return auto-selected , see ai_utils.lsp; J ?) g" O6 n" o, O& `' H
- ( (ai_autossget1 "\nSelect one object to modify: "))1 b+ _7 V: I; j2 Q3 H8 V
- ) Y3 q# O, ^; s3 U
- (t (princ "\nNothing selected.")7 f# k6 g! \# k% H, P" }
- (ai_return nil))8 r. K4 E& F4 o5 K5 {
- )
3 V* S2 V" R6 F$ D. y) l6 h - )0 C0 ?4 p+ H) r: E! g
- * E! b7 [, Z, F0 e6 s7 N0 _* y
- ;;; ============= Command line interface function =======================
% p" W) v, b: Z9 a! A: k% B
* r- c1 N& {5 o! [5 |- (defun C:MMO ()& U: S/ ?2 h" Q
- (ddmodify nil)
) q0 I4 y4 f) v- Z- ?9 n; o4 ?. s - (princ)
c- l" L3 f# j* E5 g/ l6 m( Y - )) k5 s% ]6 h) M6 L+ _8 O
- 8 u) i5 ]$ v L
- ;;; ================== (ddmodify) - Main program ========================& L0 s0 q' H# l4 h+ e* ]! X
- ;;;
f9 n# D, ]- Y: \ - ;;; (ddmodify <ename> )
' Q9 W* @7 H# o) `5 q1 Y - ;;;+ Z6 n7 J7 f; _6 ?# H4 i4 K
- ;;; Main program function, callable as a subroutine.
" Q4 f7 e" p0 y - ;;;: Z% C: q% M9 C, P! R* ~
- ;;; <ename> = object name of the object to modify.
2 n+ Z/ z' ]; y - ;;;
! Z( N2 Q6 {3 v - ;;; If <ename> is nil, then user is prompted to select
4 ?& y% E- \5 N5 q4 m. F - ;;; the object interactively.! I- T) ^! Y" _! D4 X" X
- ;;;2 D6 @: e& s4 T
- ;;; Before (ddmodify) can be called as a subroutine, it must5 b5 C( M. m" l
- ;;; be loaded first. It is up to the calling application to4 N* p+ ]0 Q0 K3 [" ?+ p/ e& W; f$ o
- ;;; first determine this, and load it if necessary.- p3 F" {# L" D' x9 q
- U# Q, p0 K6 f& ?! I
3 I1 A; `6 _) j- (defun ddmodify (ename /' O0 b9 a! b* |4 B" Y) q
- 2ndpt ell_calc_area move_pt1 templist6 q c( l! R; R; }- W
- add_mdash ell_tile n tempmod
' |2 x, b- U. U( X8 d) F8 [ - alipt eltscale name tempst_ang4 u& E; ^/ L) r) Z5 @
- ang eltype newpoint test_ok) E' q3 i. Y/ H3 j9 W2 l: v8 _
- arc_calc emod next text
9 d8 r" Z! t. x& @4 \ - arclen end_ang next_vertex th-value
. m/ c( G% k% |1 ]" ]0 M - assoclist endpt obl tile1 v/ n) J1 I6 q% X4 W) L% ~% a9 N
- atprompt errchk off tile_rect
. t% s7 \4 @& a% T! Z8 J - attag ethickness old_majrad tilemode
4 Z( z/ {/ Q; s3 H8 L6 J - attprompt etype old-closed totang
7 Y' V" @* V6 Q3 i - bit extru old-closedm tstyle/ B. V7 t6 g, x& Z' H
- bit1 fchk old-closedn u# O; S1 O: a# i
- bit-10 first-10-rec old-elist undo_init( p, \, U4 E) N
- bit-11 first-10-time olderr upsd
4 f0 n& J0 o8 H - bit2 first-11-rec old-fit v! |& z2 c; ]# N. E) X) I
- bit3 first-11-time old-idx va' t8 X# Z- t0 U' E' a% i9 f: d! z
- bit4 fit oldlist value
9 R/ i7 t7 m, m* D7 ^# ?$ B - bit70 frozth old-spltype ver_4
( o" F% h0 P( B - bit-70 f-vis old-u ver_ang19 i" A: A! D: T2 ^; h3 {
- bit75 fx old-v ver_ang21 R% h) M4 U* E" ]
- bk-up get_color on ver_col; f1 N2 ~. _, E3 S L+ _% B% s
- bkwd getcolor onoff ver_colsp
* F* [- w; A9 S+ e( k# Z2 L1 e# P* V0 D - boxlength getindex on-off ver_eangle' P4 X3 {+ q7 i2 W7 Z0 r/ w
- bylayer_col getlayer patlist ver_hght
( C- O# m$ P3 j9 N2 d - bylayer_lt getltype pattern ver_majrad
0 R/ T3 m# {% `7 x3 B5 N1 X% S5 o - calc getthickness pltype ver_obl
s; W1 g, Z, Z0 q( Q - cancel globals polytype ver_pt1
2 q: R1 P3 h& n/ N0 {2 @ - cir_calc ha pre ver_pt2
& ^! X* V' U j - closed ha-prev proplist ver_pt3
: L* V" g6 y4 K! {% V5 Q$ A% T4 T - closedm help_entry pt ver_pt4
0 X' A+ }$ M; S+ B& o) [ - closedn hght pt1 ver_rad
( f$ D' c V' o4 j2 b- m" x Y - cmd icvp pt1_eq_pt2 ver_rot- b# ^/ K/ |- e6 ?9 K: ^0 `" V
- cn image_add_vector pt2 ver_row9 W. B' a9 h- X- v! h% r
- cname image_clean_variables pt3 ver_rowsp
8 _( G& P* {' I; I - cntl-pt-indicator image_cross_product pt4 ver_tag
9 d) r! d4 G: ?1 ]( Y - code_71 image_disp_opt ptype ver_u
$ Y3 r% z6 b( s7 T) A - col_tile image_dot_product radius ver_v, n* B5 [+ K/ `9 R
- col-idx image_normalize_vector rational_spl_flag ver_wid
W+ M$ E; @ ~5 G+ X - colname image_rotate_vector reset ver_x1- [6 }" @ Q6 o5 e3 ^
- colnmlst image_scale reset_flag ver_x2: q$ k$ D/ \) X0 L Q$ K
- colnolst image_scale_vector reset_lay ver_x3# r$ E* Q6 R$ Y% f6 ?5 S, |
- colnum image_update reset_lt ver_x4
7 B/ p/ u+ _: O9 _, F - color index reset_uv ver_xline_pt1$ U7 i( x- A3 ?+ T) R8 d( `
- colorname inv rot ver_xline_pt26 K& K$ o! h- J7 g
- colorno item rows ver_xline_x15 n. z4 u' ?0 L7 w. a5 p/ G2 j
- col-sp item1 row-sp ver_xline_x26 |" U2 k- E% [. V" E
- columns item2 rrat ver_xline_y1
M G4 O% O$ j$ a8 o& z - con itemlist s ver_xline_y2
5 z0 T, x% T1 w M- ~ - coord jlist set_action_tiles ver_xline_z1! C% n( Y g7 v- X! k6 W( K% |# w
- ctr jlist_act set_just_idx ver_xline_z2
2 U* d5 e* J0 f3 i3 D - cur-10-rec just-idx set_tile_bk-up ver_xscl D, h) q0 P5 `
- cur-11-rec layedit_act set_tile_cntl_pt ver_y1
% z, c8 `1 T* L" o% V& q) C8 r - cvpname lay-idx set_tile_data_pt ver_y2
2 w: N) h$ ]5 Q& ` - dash layinfo set_tile_dirv ver_y3
# o" G g& s9 L& K& h - dashdata laylist set_tile_edges ver_y46 q: V" E. A* s
- dashlist laylist_act set_tile_endang ver_yscl
9 Q7 R! _ E) A, C5 O* g& t: U - dashsize layname set_tile_hght ver_z1
* k. T1 s% w* e4 k; l- H - data-pt-indicator laynmlst set_tile_icvp ver_z2
2 N; w. n0 ^3 F8 ?- g2 @ - dcl_id layvalue set_tile_just ver_z3
4 u+ j9 n7 ]; T - dd3dface line_calc set_tile_obl ver_zscl& q9 H+ S' b! Y3 ^2 e
- dd3dsolid linetype set_tile_prompt verify_a
% C, z' y/ @; d2 @+ T% ], I5 s, P - ddarc list1 set_tile_props verify_d M: A3 E2 R6 E4 D3 }
- ddblock longlist set_tile_pt1 verify_i
6 Q, S8 P" E: r+ G9 ] - ddbody ltabstr set_tile_pt2 verify_xline3 @3 B: |1 w _3 ~+ K$ x
- ddcircle ltedit_act set_tile_pt3 vfy# Y) g: A2 Q/ |& A+ P3 }
- ddellipse ltidx set_tile_pt4 vi
$ ]- O( P: P5 w: T6 f2 r2 E - ddgetprompt lt-idx set_tile_rad vlist. {) h& m/ b7 \% W: A
- ddgettext ltlist set_tile_rc vname
2 ?6 p$ T& } j5 X6 k& d A7 O - ddimage ltlist_act set_tile_rot vpf
: I6 T" M9 ?' r- O0 ^& P- s - ddimen ltlist1 set_tile_scale vpid
% g' y0 u/ _& b# T9 E3 R - ddleader ltname set_tile_spline_props vpldata% H! F% O3 }, F+ O
- ddline ltnmlst set_tile_stang vpn1 H6 t# E' t& ?, w5 W" A O z
- ddlist ltvalue set_tile_style vpt5 n% B& j% V" n9 G) h
- ddmline ltype set_tile_tag which_tiles
8 c3 @% U2 c% W( Q) l/ J, G, {7 }: v - ddmodify_err m set_tile_text wid
1 b7 v; O! j8 j: H* C - ddmtext majrad set_tile_vpt x( D) n3 f! S/ L8 p& J, h3 }
- ddpline make_lay_lists set_tile_wid x1
$ A& G& B+ C% I1 c4 P1 Q - ddpoint make_lt_lists set_tile_xline_pt1 x2
: F) N+ @" [( }9 P - ddray mdashlist set_tile_xline_pt2 x3
$ D$ N& f7 [+ t6 P- C6 D - ddregion minrad setcolor x4
4 d& J& j3 g' q* x3 B; | - ddshape modify_3dface shght xdlist
( s6 P! T: X7 \6 f) e; R h - ddsolid modify_3dsolid showpt xline_pt1; N: h6 g8 k8 m/ u- v
- ddspline modify_arc size xline_pt2
$ J$ f( j$ i' m1 h/ I! z% D - ddtext modify_block slist xline_x1. Q {: Y4 b7 r% _. r5 z1 f
- ddvport modify_body sname xline_x2# \/ I# u9 W, c9 f0 I. w
- ddxline modify_circle sortlist xline_y18 P; S% n8 X$ B
- denom modify_ellipse spltype xline_y28 @) _' ^! @; k8 X3 n
- dialog-state modify_image ss xline_z1
0 d2 d& F- Y- O0 ]3 c - dir_pt modify_line st_ang xline_z2 W$ W! G0 t1 n* @3 o
- dir_ptx modify_mline stpt xscale
4 z! Q8 ?! a- `6 G7 g+ o - dir_pty modify_mtext style_act xx) u2 o+ x/ T# ~: [' [
- dir_ptz modify_point style-idx y
! r4 B5 a Z% P7 Y4 p1 _& n6 `. g - dismiss_dialog modify_polyline style-list y1
9 r! m. Y. o9 v, ^4 X/ y. X - drawpattern modify_prop_geom tagval y2
k$ s/ M1 G$ @! g2 B - echo modify_properties temp y3' h; f( h. P! |, h3 P
- ecolor modify_ray temp_color y4
. B0 W3 A& v% a+ D - edge1 modify_region temp_dir_x yscale
# R3 C0 A( Y2 V6 L4 @/ V - edge2 modify_shape temp_dir_y yy
3 p0 J+ {. R% G% e' r/ X% e - edge3 modify_solid temp_dir_z z1
6 H4 a# @; {0 E4 a0 Z3 [1 p9 O - edge4 modify_spline temp_xline_pt1 z2
: p( \: h- y9 [0 E - edgetest modify_text temp_xline_x1 z3
# Y6 ?, P: s# |. B$ w0 B - elayer modify_vport temp_xline_y1 z4
# `) |% H1 ^+ a - elist modify_xline temp_xline_z1 zscale [6 I% F$ L8 x0 s% i A8 z: o
- ell_calc modlist tempend_eang zz
2 c' d/ T a6 W0 h - dir-idx safe_ddedit ver_MtextWidth xcliponoff
& \/ l* L6 ~7 U - MText_style
- i+ J1 N% z8 r: D1 v, ~, A/ o3 m3 H - )1 o" @/ r2 p" U! ?8 J+ h0 G2 n
- 5 r9 I4 x# v! Z; h" I
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho4 x) |. O$ u) k$ Q# h3 f! D
- old_error *error* ; save current error function
4 q( R5 G8 {$ R$ k* J: X - *error* ai_error ; new error function
0 V. R& W- v7 _+ \9 G X, D+ n - )
; T! i5 q& r G! ~
0 q4 D0 \# v# Y8 X- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle/ z; o' C, w5 O, T& ~
- (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection0 g2 F- N9 X5 G/ }: s' ^
- (setvar "pickstyle" new_pickstyle) ; bit and set to new value6 w# t7 X2 I2 x) y. a
9 j8 t/ r0 l, f. S u. O- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)
% p1 t9 [- U2 g9 g - (t 1)))
4 w( _8 h7 h4 l% v+ @: O! K - (cond$ k; e5 c3 ?' e
- ( (not (ai_notrans))) ; Not transparent?9 T9 t! m4 L6 Q( h
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?+ B. ~; {5 U! F9 R' @ J) M! o! F
- ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?3 s B2 O1 \& R/ `, C
- ( (not (setq ename (ddmodify_select)))) ; object to modify?& x1 Q0 p$ e5 h( r# t# o( Z
- 9 P4 l# {* T5 t7 C3 |' j
- (t (ai_undo_push)& n6 z! `! _$ t+ D% A
- (ddmodify_init) ; everything okay, proceed.
9 \! Z1 s& ~" a' i - (cond1 S4 b3 w7 M2 c" U Z# j( S* [
- ((= etype "LEADER")* O0 k- h+ y7 L a9 T# d
- (setq help_entry "modify_Leader_dialog")5 z9 Z9 |/ e) v) e3 |1 S+ B6 ~* Z
- (ddleader)
- p8 b) G8 j+ D! G6 H2 _; n - )2 h% @1 u2 |1 C" O4 p( R9 l! [
- ((= etype "ARC")4 t; B1 O) E9 H) l) e4 b
- (setq help_entry "modify_Arc_dialog")0 ]4 Y9 \: W, u! q# g
- (ddarc)$ A2 [2 f3 x8 [1 d6 k
- )
! m. H) T3 n s J# J7 c: r - ((= etype "ATTDEF")
; l, O( b" t* H$ y - (setq help_entry "modify_Attribute_Definition_dialog")
5 X" R/ f, ~. h8 l - (ddtext)
; ?4 s7 h& t2 k3 C8 Q% s - )
% V3 w; K& r7 N, k - ((= etype "CIRCLE")
2 i. Y* v8 _) G+ ~ - (setq help_entry "modify_Circle_dialog")
9 Z. s# \8 Z( U/ N0 E - (ddcircle)7 ^- E. S9 X U/ B) f3 L
- )
' m6 D! z7 E! ?& T - ((= etype "ELLIPSE")
- D0 z) i) u1 h2 C% \1 g4 { - (setq help_entry "modify_Ellipse_dialog") O+ H) f+ a, S8 M
- (ddellipse)
2 n+ m/ E I' Q) T( [' k$ Z9 e - )2 m4 y% l$ b5 n- }- m9 i9 M5 P
- ((= etype "3DSOLID")3 K" N9 ^% |% e4 y5 r- @
- (setq help_entry "modify_3d_Solid_dialog")
4 W8 H8 R0 [; e4 }7 V - (dd3dsolid)
& F9 x4 A% g: X# M, Y0 K' B/ e$ T - )
! u8 ?1 @& D# T - ((= etype "BODY")" o4 t7 M# m+ }* C
- (setq help_entry "modify_Body_dialog")
& E; r* s/ C& P- F - (ddbody)
9 ?/ _3 P3 x* O2 H0 P - )5 q" t% `3 e3 G8 O$ X$ A; p
- ((= etype "REGION")
+ q% G8 f% A0 b- \' q2 l1 y - (setq help_entry "modify_Region_dialog")6 c6 N* `4 j3 W0 b6 I; r+ H8 T0 @
- (ddregion)
# G8 i! b# s$ J' e" v - )2 l k# x* {1 |+ D2 W
- ((= etype "HATCH")
- f8 Z7 ?# o, [; v& @ - (setq help_entry "modify_Hatch_dialog") F& ~; E/ s+ j
- (ddnewhatch)3 ?; y/ g% t8 g2 L# k
- ) u% x( \7 Y8 b! k/ o* J
- ((= etype "SPLINE")7 ?1 e. P, Q- N' O' @+ W( i1 b
- (setq help_entry "modify_Spline_dialog")
' Y& P' `* a1 B8 e0 r5 w7 n* D - (ddspline)
; G+ ^! b v* h - )
$ n' N1 m$ l# A$ C9 z) y1 a - ((= etype "INSERT") ; see ddblock for help_entry4 @. V! T) K! V) S
- (ddblock)
7 B0 S6 s/ G3 C$ a - )
- s3 v: D; f$ i4 F) i - ((= etype "LINE") N! k1 \* M; t8 g4 l
- (setq help_entry "modify_Line_dialog")
5 @( t$ w' G) ~ - (ddline)
9 L0 J# A" Q; ]3 Y! `1 f' n9 C - )$ M% j" m: V" _' Q2 f, J
- ((= etype "MLINE")4 ~2 U: z3 Y9 o4 k, ?4 Y7 T+ ^
- (setq help_entry "modify_multiLine_dialog")
# ?) j9 x- Z1 {4 H7 z$ _ - (ddmline)- [3 p# ?& ?) t" }4 z+ {
- )9 d2 y1 p- S) D$ d" \
- ((= etype "RAY")4 ?: b; @) A F, N
- (setq help_entry "modify_Ray_dialog")
7 f$ L k' n/ X0 D - (ddxline)7 N+ _9 [! G# \/ w2 O' J4 o- Z' n
- ). L" I( h8 u9 x
- ((= etype "XLINE")
5 D! h' _2 S+ D- ^* ^9 ` - (setq help_entry "modify_Xline_dialog")
- Q3 b+ p k1 e - (ddxline)0 ~1 K5 b4 j3 ^+ f" S
- )9 O+ w5 e( g+ _. J! h) [
- ((= etype "POINT")4 [6 k4 X; A7 t
- (setq help_entry "modify_Point_dialog")% @3 r& H; z) z) ~* _+ N$ v: b
- (ddpoint)
$ n. _' h3 b" y7 D" w8 H% ~9 r - )
& u8 h) `+ g& r$ J. y# ?3 i4 |3 _ - ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))
3 Z+ d# K: u0 Y - (setq help_entry "modify_Polyline_dialog")% F: [3 q5 U/ {; j) ?' j
- ;; If a 2D pline, check to see if it is planar to the current: U) O, Q3 {1 g# D5 N- p
- ;; UCS, reject if not. To see if the pline is parallel, H0 g' _7 W6 F9 c) ^3 G& L
- ;; the 210 group (WCS) is added to the current UCS origin (WCS)
/ t2 Z" [& c% M- Z' b. e - ;; and then converted to the current UCS and checked to see if: X7 A5 `6 s" d9 M2 Z) C
- ;; it is equal to (0,0,1).
% n) f2 K/ M: N
+ y1 m9 H+ w' o- ;; Incase the 210 is default and not in the dxf list.
' ], L' o/ {% r4 K% T - (if (= (assoc 210 (entget ename)) nil). l2 X% U+ U7 S
- (ddpline)+ h$ }. f0 ^$ v/ T. N m, x, I4 a! j
- (progn
- q. Y' V! Y5 ~; p$ K1 n9 |% Q - (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))3 {$ M/ r9 f# {8 F
- (not (equal '(0.0 0.0 1.0)
) b+ \# ~8 h! f+ ]% N# Y) G - (trans (mapcar '+
% L L/ O2 [2 G3 o* }( m* {1 s! I - (cdr (assoc 210 (entget ename))), R8 S: R4 A5 |! \! b
- (trans '(0.0 0.0 0.0) 1 0)
& Q; }6 b9 T# T' { - )! a u+ J0 R% K$ d
- 0 1# x( r2 N+ Y6 g2 F/ t
- )
9 s% _$ l, S. A - 0.0000000001 ; fuzz
3 t% D( t4 @6 p. z - )+ b% q+ {7 r! o" P
- )
5 r6 x o6 ^5 R6 i1 A0 y - )
- M( W2 F( k& s - (princ "\nThe 2D Polyline is not parallel to the current UCS.")
9 D* i' d& W& X4 h {/ U( T0 F( x - (ddpline)
' Q' K# p0 k, x' V0 @8 } - )
9 q! v% ? A8 A! R* J5 {) l - )
$ V6 {6 ^& U7 H0 R. d# r% W9 [ - )
. t8 Z0 ~# J4 Y: h - )' s5 [$ V# g( f& p* z% [3 y, V
( w. P, E% \4 I3 \3 ~) w8 X& k- ((= etype "SHAPE")
5 @2 E1 e: y3 I2 s* p - (setq help_entry "modify_Shape_dialog")! \& _* q6 f: {/ f
- (ddshape)
) C1 Z1 J# e4 K - )4 L, s, |* m* Z" c
- ((= etype "SOLID")1 r, W* z2 k- Y+ w9 \
- (setq help_entry "modify_Solid_dialog")5 g' R, p# S- ` M) a
- (ddsolid)
* } ^: S, [- ^ - )2 {$ l. i N. \' e
- ((= etype "TEXT")5 C6 c. J: c; A' Z
- (setq help_entry "modify_Text_dialog")- e) Z8 \; n! x( C+ \8 W6 D4 ~
- (ddtext)" b4 |# c* S" q( `0 _6 ^
- )
2 g9 ^7 ^) V5 _. u) d - ((= etype "MTEXT")
( l* f& T! J5 Q; x" Y& j0 v - (setq help_entry "modify_MText_dialog")
3 e; D0 I/ r" V. v, l k - (ddmtext)7 E8 C; N# _+ d0 |7 a. ?
- )
7 i) b4 I6 l/ a. p4 }; N - ((= etype "TRACE")& @- r* s: v' j% v5 ]$ P
- (setq help_entry "modify_Trace_dialog"): ~' @% f2 N! c$ `" A8 t
- (ddsolid)
/ D4 A. S7 C! F, P- u+ `3 A3 x5 K3 e - )( w" t. J3 T4 @) A
- ((= etype "VIEWPORT")
+ w& M; Z! D( T' U' {3 y/ H9 K - (setq help_entry "modify_Viewport_dialog")
$ m5 A0 g- @- ^8 R8 w/ B - (ddvport)
4 i& f: V8 k# W L - )+ {6 H1 O# B& h8 m
- ((= etype "IMAGE")- O0 D7 Y6 u5 T3 T9 c5 R
- (setq help_entry "modify_Image_dialog"). q/ d8 o0 i' h1 J3 r
- (ddimage)* Z7 I' K* S0 U( i" G( l: {# s" u
- )' o' U4 |6 l- f8 B
- ((= etype "3DFACE")( M% p% Q6 g! S8 w4 m+ O, k' S
- (setq help_entry "modify_3D_Face_dialog")
& \8 \. P: j0 R- q4 f - (dd3dface)4 a2 ]5 d* `: @4 D9 q6 A
- )" `- `3 m8 ?3 S* z% g
- ((= etype "DIMENSION")
- F6 g+ I6 _7 {* r4 A+ f9 W9 j - (setq help_entry "modify_Dimension_dialog")- |) P2 _, R5 f( T
- (ddimen)
; Q6 H( z; I- k, W9 l0 O7 D4 X - )
; q0 N6 x- N& Z - ((= etype "TOLERANCE")7 a- B _+ A* F/ G/ l9 N* l+ ~
- (setq help_entry "modify_Tolerance_dialog")
! `7 [' R7 D: A4 K - (ddtolerance)
; W9 y) R9 i6 ~, u6 v - )
, d5 x8 Z7 f7 e - ;; Fall-through condition changed by MCAD for MDT 1.1 release.
% L; t+ ^7 R: B - ;; This allows DDMODIFY to work on any custom object or any new object type" ~5 U3 e& a& a- n
- ;; that isn't specifically handled above by calling the more generic DDCHPROP.
$ V% R8 J1 |5 d2 u$ f! s) D - (t$ G7 y6 a4 A& j3 {! R
- (if (and (not ddchprop) (not (load "ddchprop" nil)))5 r; t+ t& p7 J. m, ]' G
- (princ (strcat "No dialog support for object type: " etype ".")))
, N3 ]/ O$ d5 i4 u* u - (progn
4 a% f' }5 j2 N- { - (setq tempss (ssadd ename))
& Q$ B3 Y" R, m - (ddchprop tempss)
7 B- ~0 _/ N7 P7 [; o! ?2 | - (setq tempss nil)
0 q1 d* @. Q, z6 Q) n9 ]" x4 L* @' P - )+ T. A; j& y+ k. Y2 Z9 V
- )
1 P& ~7 { }' T) F* E( X' U3 Q - )2 C ^* ^1 T& d9 \( O" s4 o
- ;; Previous fall-through condition.# }: m+ b4 u3 e. z/ I
- ;; (t (princ (strcat "No dialog support for object type: "
; e6 D% b! r+ g7 D( p - ;; etype "."7 k# J8 i/ w9 k2 `* l: C
- ;; )
$ C, [) {1 }# u) x - ;; ) L* Z* ~, p, k5 v& Y2 B
- ;; )
" u$ K: i1 y& @7 J/ @+ d! Y! k - ;; )
e! T0 o: T4 O: g, J7 K! U8 p - (ai_undo_pop)8 u! Y9 @8 B7 y5 b- H
- )4 ^( L, {: i1 N
- )
+ p" x) z1 w& C
- b1 ?* M( S$ c1 _9 a: e- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle+ O3 [$ L9 T+ _ N
- (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back
& l8 _7 L& x/ Z# w$ |! [ - ) ; to what we started with
6 y) T& c: R# o* X7 a, j - " ~! L* G1 A" P( C7 F* d" r4 q. q
- (setq *error* old_error)
$ e5 s1 m6 }& f/ Z! S - (setvar "cmdecho" old_cmd)
9 e7 w9 c! N. M+ E! A6 D0 N6 |& ? - (if (not reset_flag) ; if object was modified, then7 I* W" `5 \& T& }+ |; G
- (ai_return ename) ; return it's ename to caller
% J# g4 E1 X. x+ q# { - )
& a" g7 c$ z" y) a6 h* c - )
) J( Y5 h* J' }5 l9 y) A0 x - ' N$ q9 q+ U" c4 M$ K
- (defun checkForLockedLayer (ename)
2 d0 [& K' o7 q- k5 R. K - (setq layername (cdr (assoc 8 (cdr (entget ename))))). x( N6 y% I9 S% l6 \% i' l
- (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))" O; ~7 @3 Q; n: e+ I
- (if (= layerflag 4)
9 Z9 m) f0 e1 t; U. G& d8 G - T* c( I' V& k. ^2 T" M
- nil L; D. Y9 L O7 B. b
- )
2 @: H, I& y( Q% y; I# ^6 ]+ @ - )
% Z' r3 U0 N+ `5 Q* ?
1 q2 q, r" ]; r* z- (princ " DDMODIFY loaded. ")6 E2 ?# B, z0 O6 W: k4 l9 D
- (princ)* V' A2 ~3 B$ Y
- ;;;???;;;---------------------------------------------------------------------------------------" o+ B5 i! ^1 }3 [
- - `3 I6 F" P6 x6 h! s0 U
- ; Next available MSG number is 8 : x1 x; n, u: A" m2 E5 { N2 p e2 r
- ; MODULE_ID DDUCSP_LSP_4 L& a* u) x" f9 j) X; Y
- ;;;2 o k, p d& M* l# R O" H
- ;;; dducsp.lsp
" v+ t5 U' H/ n! D2 f - ;;;9 B1 ^+ p) T1 D0 }
- ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.
! \- W1 {$ |( [# U! H* v- j! i - ;;;
& n' Q, ~/ j" J) Q - ;;; Permission to use, copy, modify, and distribute this software
% L2 `; B, u% K - ;;; for any purpose and without fee is hereby granted, provided3 y! t1 Y0 ] D* U' H/ ?, @1 n
- ;;; that the above copyright notice appears in all copies and
9 E4 E9 E& A" W. i% A W# f - ;;; that both that copyright notice and the limited warranty and
/ Z& U' b5 q) l5 L - ;;; restricted rights notice below appear in all supporting
1 V9 g8 {7 ^) A1 W" J6 L - ;;; documentation.8 r5 Z- @$ q' g( d1 l
- ;;;, z$ Q/ s: y3 T9 \" z) `: U, ^8 s
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
& {9 [$ Q2 _. @2 z3 x. q* u - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF# c, `, i: S# ^ l
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.* t# g/ f2 k8 n3 q5 b
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
3 `' S9 W5 l0 t/ _% W9 I. y2 n - ;;; UNINTERRUPTED OR ERROR FREE.
+ C# v `9 n/ N1 P3 J# E3 n - ;;;
$ n7 b8 k1 F2 A# U - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
% e2 W p$ h4 e) {8 r6 @* h3 Y - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
( K& `1 o+ y& B' R' T - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) ( r9 ~( A& W2 X. D+ ]
- ;;; (Rights in Technical Data and Computer Software), as applicable.
2 j2 a; w" e! S9 J% t - ;;;( L/ L$ r5 C2 m
- ;;;.$ m' I: a' r4 h7 X$ z C
- ;;; C:DDUCSP - User Coordinate System presets dialogue.( e3 r. \8 K5 X. k$ e a% T. A
- ;;; ! S) y7 @) v5 o0 z/ S5 K
- ;;; Uses DDUCSP.DCL for the dialogue definition. The) K3 i* g8 C4 ?. Y
- ;;; slide images are in ACAD.SLB.3 @/ M8 \0 R$ p0 g, N; N
- ;;;% r1 M2 ]& i0 s, `$ d
- ;;; ===========================================================================
2 p) }- G8 K3 x$ W, c1 r4 @ - ;;; ===================== load-time error checking ============================
5 `" |/ \# B0 h) v D( U# c. k1 ^ - ;;;
* M, M" c- |6 G6 C
6 ]8 o5 m* j( {1 ]4 j" K' x2 H- (defun ai_abort (app msg)
- P! S2 U( M" m& X0 w - (defun *error* (s)
# m; d6 }+ @# m7 E1 W. W( S" T - (if old_error (setq *error* old_error)). g) p- f, D- D- ^. I1 U5 y
- (princ)
/ ~5 l/ X# a, D1 K9 H4 @ - ): q4 A4 `& P9 E7 l @
- (if msg1 X% U6 p+ ?* a- c( x6 ]
- (alert (strcat " Application error: "# K( t9 D' l3 a' H3 [- E0 F
- app
' [; e5 g0 X2 P - " \n\n "9 p, Q2 S- X7 ?8 f& R
- msg
! M3 I0 ^" ]0 ?0 P( u - " \n"
5 x6 s. `% k, P F$ \ - )! N+ _1 k& {1 `6 Z5 d
- )
, i* }/ o* Y* k. i" D; p - )
' r% @. ?. [# D - (exit)
" U+ y8 |3 }" N/ ~) J: x0 [+ |$ b - )% f( r% X5 j/ I2 Y+ ^, }
- ' P* b/ {% x$ Z. e
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
4 @0 @& R+ j7 J6 e7 W8 e* l9 E - ;;; and then try to load it.
8 z2 \$ V( t7 z( M6 i) r - ;;;
( A% |! u+ j( c3 L4 C - ;;; If it can't be found or it can't be loaded, then abort the+ p8 M& f- X* V \! P
- ;;; loading of this file immediately, preserving the (autoload). v/ }/ E2 w' Z. B0 N
- ;;; stub function.
2 g+ `, ?5 @, Y! b( x; e; \$ \
! k% \4 t' Q: A" z$ d. j2 A* d- (cond
2 B7 o. c0 {3 s1 t6 ]5 @ - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
! f, f3 ?. N' p' t2 `5 [- l
1 d. n* `3 Y5 e9 o- ( (not (findfile "ai_utils.lsp")) ; find it
. n& a1 w; O$ {5 V" q$ @ - (ai_abort "DDUCSP"6 }7 R. b; j& a. O; j+ |5 P: v* f
- (strcat "Can't locate file AI_UTILS.LSP."& ?4 r' l$ a* \
- "\n Check support directory.")))3 @0 s! x- C* ~, f
- 7 U9 n8 k6 H' S2 h" v
- ( (eq "failed" (load "ai_utils" "failed")) ; load it/ t. |. ^$ F# h3 ?- q
- (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))
5 i% G6 n; _; E8 ]7 [$ g- G8 f - )
- m- R9 P- s; R3 S - 6 _: m% u$ X q6 D6 ~) J& V
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP& t5 ~% F0 i! N2 `. G
- (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses' G' d$ c0 ]$ @- w6 O
- ) ; ai_abort's alert box dialog.( ^( g) A4 J& m, ?: d1 [
/ z# m: q- ]8 \2 w5 \- ;;; ==================== end load-time operations ===========================
5 [/ Y1 g5 y" t
3 G0 ~3 b. Q+ W" r) x- (defun ai_ucsp_start ( / program)3 R' i4 T1 f9 o% F' T6 e" k, Q
- ;; Get program name) {" S1 N6 m( t0 }: x9 t- f
- (if (not (setq program (getvar "program")))/ k+ _3 K, _% _2 J. k* k& k
- (setq program "acad"). W* H; ?" T9 m X9 Z1 ]
- )
d& ?5 f. F9 A( n1 n: [& P- h - (foreach v0 '("world" "left" "cview" "top" "front" 3 E- ^. O2 m- Y" {( n5 I
- "bottom" "back" "right" "prev")2 O4 C1 ^8 p2 [ f: w
- (start_image (strcat "ucsp_" v0))
4 X; S3 _$ o4 z- K - (slide_image! U' i( @0 W0 {6 ?, H; |* n1 O% k
- 0 0
9 X7 S# O8 x. X% A$ } - (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1)
0 f# [; I! Q5 Q1 R - (strcat program "(u-" v0 ")")% b% s- U) A9 d" C, }& v0 {1 v+ U
- )
/ n g6 u6 `1 P8 g4 z) A- e) b - (end_image)
1 M0 w/ D( l- {$ a: }# i - )
& l! Y9 k. t) v" f/ |( J$ \ - )
, H7 r3 G) G( M: B/ s
3 z" h1 q# c4 P! F0 V% b. c3 W- (defun ai_ucsp_set ()5 a t2 Q9 p$ A/ m) [- c+ z7 ?
- (if ai_ucsp_sv/ z, [; P) e/ V! a: ], q
- (command "_.UCS" "_V")
: W4 } ~7 y" M e. @ - (if ai_ucsp_prevs0 p1 C- J' }0 H6 M2 w/ e" E
- (command "_.UCS" "_P")6 X9 ^ ~: L" x
- (if ai_ucsp_chg; Z3 q" {' W' x" `3 B) J+ [
- (progn! f% b( r: V: O
- (if (/= ai_ucsp_a "*")5 z2 C R! g6 c+ Q+ p- T* d* ?$ t
- (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))2 Z b' M- P2 B" _ R
- )
9 O9 |: I$ W, R" X) f; L# Q# b - (if (< ai_ucsp_pick 6)5 a1 A) Z7 m$ j, C- E* Y$ |
- (setq ai_ucsp_set0 "@")0 ? P3 _7 K% q& U
- (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*")
: g% _) a4 u' H - )
5 h1 Z, l# s% p& _ - (cond ((= ai_ucsp_pick 0)4 A+ L# z/ U. Y
- (setq ai_ucsp_set1 "0,-1,0"
# ]4 ?0 d9 L- m0 R f0 C; [9 l- H - ai_ucsp_set2 "0,0,1"' N7 W5 o" t# ^3 O% V6 L
- )
* W# ^$ t6 R" f# o/ N! q* x - ), q: A! h Q3 X
- ((= ai_ucsp_pick 2)1 Y/ u4 i, Z/ y7 A6 D
- (setq ai_ucsp_set1 "1,0,0"( b3 q# E% S& N+ M
- ai_ucsp_set2 "0,0,1"# c n% R6 t4 I+ R6 b! b( H0 z5 [
- )
/ C# u" C2 o" x/ H- ~ - )- d% n4 h ^5 p! ^3 N. I
- ((= ai_ucsp_pick 3)% z6 o `/ I7 t: y6 Q. z) P1 U
- (setq ai_ucsp_set1 "1,0,0"; L! z3 ]0 k; k, r
- ai_ucsp_set2 "0,-1,0"; C5 l8 I* k) ?1 _; e2 e' _
- )$ m0 S$ a9 X m8 O2 u3 H7 d2 l
- )
5 b+ m# I9 u/ ]- X$ j' n+ o7 ` - ((= ai_ucsp_pick 4)0 B9 L' b( k' t0 n7 Y* G
- (setq ai_ucsp_set1 "-1,0,0"" ~3 D4 l! ?4 H3 i
- ai_ucsp_set2 "0,0,1"" B d: {$ n* R! N$ }% K& R4 W8 s
- )& x3 N" c; U% {8 j4 V" O
- )4 p0 }4 \7 a6 R7 U
- ((= ai_ucsp_pick 5)
0 n1 p& f" N$ I/ K% h$ c3 k - (setq ai_ucsp_set1 "0,1,0"7 [" s0 S3 x* R! ~# L7 |/ {' ` }: _
- ai_ucsp_set2 "0,0,1"
0 {% F2 d' d4 j/ J. ^ - )9 ~! x; _! v+ ~! r! V; A6 x i7 z; l
- )4 \2 n( U+ h9 C6 z6 z
- (T
* z$ ]7 b" Y5 N4 Z: r - (setq ai_ucsp_set1 "1,0,0" G' O4 j5 X8 o
- ai_ucsp_set2 "0,1,0"
4 u1 P, Q. o; e1 _# E8 ` - )' o# U. j, T* P# T. c
- )
; Y# \+ K `9 }) \* Q - )
0 W) v2 v$ q) k0 ~ - (command "_.UCS" "_3P" ai_ucsp_set0 : f6 z8 U# a; \* z" V5 X1 b
- (strcat ai_ucsp_a ai_ucsp_set1) 9 V2 M4 S0 R5 J' o* Z6 P
- (strcat ai_ucsp_a ai_ucsp_set2)
$ Y8 P& c" t. S& A ~5 L& ~' q' n( B/ m - ) / M( w" v% _) B+ X! Y( X
- )
" F: n& [9 _' I# I' l E - )# ?# T, `0 d/ p9 u
- )
9 x0 l) Z; V& Q) C - )
+ q* |* y+ D$ X* P' o" r - )% d$ x! f- Q: R! v k! f
- 0 [2 [+ N" q9 {/ u. w
- (defun ai_ucsp_p (val currtile)7 C; z# Y9 d/ Z; C0 t' @8 K
- (mode_tile ai_ucsp_currtile 4). s" H3 N+ J# v) Y& u
- (setq ai_ucsp_pick val
6 l( n" k$ O" P. p - ai_ucsp_sv nil& B$ B; A6 Q" O- ^, x4 F4 K& E
- ai_ucsp_currtile currtile% n3 A" x; n0 W! H# L- j! O% Y
- )
% ~$ d3 {' o3 V8 Q& o7 w - (if (/= val 1)
! {, W; H2 w$ w- X# w* j' e - (setq ai_ucsp_chg T)
* |% j! [) W7 s1 u; j$ ] - )
0 E( @0 Y9 }/ |" `1 o" {6 L - (mode_tile ai_ucsp_currtile 4)8 \* N3 B; C' \, Q2 f P6 k
- )
' ]5 [, K8 ~0 w4 X3 e6 L+ `7 D5 z - 0 J5 T5 H7 U" j* \- q8 k& v9 T! D
- (defun ai_ucsp_swcs ()
- X5 o8 y- B$ p: h - (mode_tile ai_ucsp_currtile 4)) S5 C4 R' o* S8 x: S& f' V/ q
- (set_tile "ucsp_a_wcs" "1")8 u2 {/ v& J6 H6 A* w9 Y# r$ a
- (setq ai_ucsp_pick 6
0 z( k# x0 t, Q% j - ai_ucsp_sv nil
5 t2 ?4 @; l3 J% L9 y - ai_ucsp_currtile "ucsp_world"
( D/ l% M; W8 Z/ m4 D - )
0 E1 b( @3 h& q# @* \ - (if (/= 1 (getvar "WORLDUCS"))0 ^. H: q. C1 `6 Q( z
- (setq ai_ucsp_chg T)( x+ C2 G& _/ n4 I$ P
- (setq ai_ucsp_chg nil)3 L, N4 J' O) [ l; E; j
- )
! x A# C$ |3 E+ e" M5 b8 y- M - (mode_tile ai_ucsp_currtile 4)
; Z( g. d7 b1 l( s - )
+ ^2 m( g, i' B5 t' F) i, X9 R$ ?
2 l! B! R3 h7 X% w1 H3 @9 k# E% S' f- (defun ai_ucsp_cview ()- `8 {* M9 m3 a5 S2 w
- (mode_tile ai_ucsp_currtile 4)
5 E2 S _$ v0 t- D - (setq ai_ucsp_sv T 4 L/ O. T; ?1 Y( A x" G- r" [
- ai_ucsp_chg nil1 F+ P1 r! \! j7 x* `2 D. {1 N: d
- ai_ucsp_currtile "ucsp_cview"6 |) @9 s e3 _; R v% a
- )1 q u' k0 M) m. T
- (set_tile "ucsp_a_wcs" "1"); ]5 M+ O: M U/ o0 g
- (mode_tile ai_ucsp_currtile 4)
, [- s5 O8 {8 E& ` - )
) s3 ]5 x/ {8 O3 t6 @ - 0 C9 D5 R1 R- T7 O
- (defun ai_ucsp_rucs (typ)
! x% x9 m; y9 N0 `" m! t& O - (setq ai_ucsp_a typ)
! ~7 A0 R& S0 d1 Y4 |3 _, r) f - (mode_tile ai_ucsp_currtile 2)
: e2 O6 t) y+ K9 ~5 r2 I' c - )
; q; h3 x& u* e7 ?( S - N3 G) p) Y8 z4 r
- (defun ai_ucsp_prev (). t" ^8 c# I2 l1 z* J5 R0 F
- (mode_tile ai_ucsp_currtile 4)
( Z, x, A' G" q, C- @ - (setq ai_ucsp_prevs T
8 E! c& x8 F$ A* ?- M7 p - ai_ucsp_currtile "ucsp_prev"$ C z/ w3 ^9 h# g
- )3 _$ W, a) @! k) D/ S
- (mode_tile ai_ucsp_currtile 4)% Q! G5 p# U; y7 Y0 J* u
- )# W1 r4 b' g7 u
) T! \$ } N7 J5 ?, V( z- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)
1 l% i5 K0 }8 `- v B - (if (not (new_dialog "dducsp" dcl_id))
! _6 R! w. M3 L4 n; [/ t0 e6 N - (exit)
8 f1 K7 q* @$ ~( |8 I4 t& Q1 r - )$ k2 {0 o* v& S; \5 k" B8 v5 |
- + |) L8 [7 y8 C8 u& s* P2 r8 |
- (ai_ucsp_start)5 L5 ?+ I" S- F, ~, q8 d2 U2 @
- (setq ai_ucsp_a "@"
! v0 V+ P9 P9 l* H# g9 J5 n - ai_ucsp_pick 2 g8 m% l2 a. v5 B- h) I
- ai_ucsp_currtile "ucsp_top"- O4 R+ `+ m8 n1 b* O
- ); x* ?3 P$ D. L4 i- p6 L
- (if (= 1 (getvar "WORLDUCS"))6 M; W: M( u( T1 ]5 Q! I. @4 O* m
- (progn
" I) B# M& v) C2 G" `9 z( k1 { - (set_tile "ucsp_a_wcs" "1")
5 j5 i$ G a% ?2 E5 u/ m - (setq ai_ucsp_currtile "ucsp_world")
1 |9 C8 O) D6 p3 M - ) \' _5 e5 e9 ~6 n" v% U' x7 s0 W% T
- (set_tile "ucsp_r_ucs" "1")
) ~+ U, u7 O* h& `7 R2 k - )/ x# d' T0 u2 [; \
- (mode_tile ai_ucsp_currtile 2)2 R4 ~. A- G% T1 t( a2 z' j
- (mode_tile ai_ucsp_currtile 4)
7 d9 C) g. U* y* C' p% \" [, P - (action_tile "ucsp_world" "(ai_ucsp_swcs)")
j- e3 w5 m v* s S - (action_tile "ucsp_cview" "(ai_ucsp_cview)")5 M0 e! N1 U7 d. X @4 \9 Y2 C* z
- (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")+ R/ d) [; Y9 E5 s8 y: k
- (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")
$ d5 D) c. g! U# \8 @ - (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")
]! M4 K" m) w3 |! S6 k+ S0 x - (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")
2 G; [( G5 S- Y% ?9 b; ]" u - (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")
3 c' o& s" J }4 r4 G" l, N - (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")' _3 `! {) D- i( B' a: n8 C
- (action_tile "ucsp_prev" "(ai_ucsp_prev)")
+ I7 V+ t8 k3 Q4 t' ^, H - (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")" Y. `* g9 Q3 ?: ?( Z* {
- (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")
$ ^$ c) r9 z; F - (action_tile "accept" "(done_dialog 1)")& `/ o0 }3 M6 [0 H
- (action_tile "cancel" "(done_dialog 0)")
. Q/ [' m7 \) Q- q! Y7 { - (action_tile "help" "(help \"\" \"DDUCSP\")")" I) ^! y- R8 g/ b- z. ]
- (if (= (start_dialog) 1)5 ~- e5 o5 T, _" H
- (ai_ucsp_set)1 F* Q% E' m5 J' o
- )
: A3 K, G$ v0 } - )
' w) ]$ e o0 ?! b. ~" O" A' Z
G; }) V6 A/ Y4 ^. V/ n- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs
0 A* u. z. }! _$ m/ J7 E/ e - ai_ucsp_sw undo_init)9 Z( J1 ?6 y+ T
8 R* U* z7 l! ~ _3 w& p1 ]4 ~- ;; Set up error function.
N7 H* F6 N* z& ^ - (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho
- y/ ?2 |6 L5 |" ~6 y% W0 l8 A5 G* D - old_error *error* ; save current error function
, r9 e E' a2 B1 v, n: `9 [ - *error* ai_error ; new error function% \3 }" c4 k. F
- old_osmode (getvar "OSMODE") ; disable OSNAP for duration
7 d/ x8 V( c- q( v) Q - )
, V2 \3 ^+ ^% [! z - 7 x0 [1 R/ v1 M7 p' v' V
- (setvar "CMDECHO" 0)" @/ m w/ X$ E4 a2 ^! K( y
& F5 |. O& o+ r5 x- (cond
& ]) l' ~2 p+ n. D2 N$ H - ( (not (ai_notrans))) ; transparent not OK
: m3 y2 S0 p* ?2 p! q - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
6 R4 h. E) t5 Y/ @1 N - ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?
7 X* H0 \7 k5 `. \ - (T (ai_undo_push)- H8 }( P {8 {. J. l7 \
- (setvar "OSMODE" 0)
! Y* K# v/ U Y q* R ~) }8 { - (ai_ucsp_main)
' T" I7 @$ k3 c1 }( l8 N% Z- l - (setvar "OSMODE" old_osmode)% A$ r& R0 I+ d' _ |7 D
- (ai_undo_pop); Q5 v+ R5 G( z6 K
- )
7 M5 c9 r7 N i - )7 {8 n, |" o( H
- ( n# z% A) L! h- ]
- (setq *error* old_error) - W6 n: ` o' z) u5 h
- (setvar "cmdecho" old_cmd)
- V( A# \% [ K; H+ d
/ I% h, {6 Y4 u- (princ)
! a3 W5 l) x) O" R2 {* p) n4 D - )
- L; X1 \ y* Q( d6 }2 z - - r% B. R! m" T: G- r8 T
- (princ " DDUCSP loaded. ")
+ D f! T3 V' @9 S7 W - (princ)( k- {3 Z) J: X% X
- / o( `4 l! k: f( q) A+ c2 F
- ;;;???;;;---------------------------------------------------------------------------------------
" I" t# t( e' r3 |7 p9 \
0 |' V; x& a' R8 C; j# _; n# H" q7 F- ;;;----------------------------------------------------------------------------
( l4 s. B& ~6 d m - ;;;
+ a/ K% b/ K8 Q* O1 p: z- a: z E - ;;; EXCHPROP.LSP ) A2 K2 d$ T+ R% u% X0 Q
- ;;; Polyline and text modification capabilities added by / `7 A7 y" i8 C. B) {1 V8 |+ V& L; {- V
- ;;; Randy Kintzley
# z8 ?9 n2 o& `( G: o5 L - ;;;
8 c+ Y8 B( x- t - ;;; Copyright (C) 1997 by Autodesk, Inc.
3 c0 p3 F$ A( ~! g2 q - ;;;
" V2 v! M8 ?0 \) U* ] - ;;; Permission to use, copy, modify, and distribute this software$ s2 g0 }: h3 l4 s- h
- ;;; for any purpose and without fee is hereby granted, provided
5 T2 Q' i7 A# X/ h5 W, Y - ;;; that the above copyright notice appears in all copies and
* m, ~0 P! o. V5 P; N2 b$ [ - ;;; that both that copyright notice and the limited warranty and+ l( V; z. S4 A
- ;;; restricted rights notice below appear in all supporting% f1 o: S$ v/ k$ l
- ;;; documentation.; J- {, F% k+ T. G, G' m; L
- ;;;* Q8 o7 i1 p! l4 u4 b( O; l
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.1 ~% C8 N* @$ d6 a. f
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
* W$ t7 o i5 {3 e5 f) V0 J - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
9 j0 U- J8 m" p6 Q( ~& E" u - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE7 h4 d6 Y- }% @" Z- v
- ;;; UNINTERRUPTED OR ERROR FREE.( ^, q- f" x8 j, f8 A) t$ @1 A
- ;;;$ Z- n* t4 N, T
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to( J, p8 E+ u2 ]! D
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
+ g, j* I7 I7 z4 U - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii): g- t8 |8 I5 |0 v& g$ W( t) W
- ;;; (Rights in Technical Data and Computer Software), as applicable.
) t4 I# o: h! U `2 q% L - ;;;
8 D1 Y, o4 _4 z0 b9 V* z( Y ~ - ;;;.
7 X9 l, {6 M3 f - ;;; 28 February 19974 v* S; A6 W/ P% ?
- ;;;
+ I1 m6 _! C1 S, f2 `) A+ Q - ;;;
6 r' q. r! T, `5 E' H - ;;;----------------------------------------------------------------------------% j; o" t; t7 b7 `' N
- ;;; DESCRIPTION
0 W+ B6 v- x( c+ e - ;;;----------------------------------------------------------------------------1 t+ B! G2 @) c
- ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This
8 q, f% \: t: f' W% | - ;;; command gives the user the abilitie to change several characteristics
& o, {) T. ]% T# a% G - ;;; of selected polyline and text objects. $ X4 N2 k1 G4 c/ s f+ k7 L
- ;;; The style and height of selectected text objects can be modified
% j s2 B1 ?' S3 R7 J - ;;; (including text, mtext and attribute definitions) as well as, width and
( n( o _4 b1 q* O5 K% G( }, Q - ;;; elevation characteristics of selected polylines (includes lightweight and
. N9 o0 _; x, Z, N, p# G" c( S - ;;; traditional polylines.)
' D4 ? V/ x2 w3 n0 g4 N6 f' z - ;;;----------------------------------------------------------------------------
1 X1 \# G( e% U - ;;;----------------------------------------------------------------------------6 M+ l# Q# m: W% y; I
- ;;; Prefixes in command and keyword strings:: G: V) p: j. V
- ;;; "." specifies the built-in AutoCAD command in case it has been
5 L+ J9 U( |" ?( X+ w6 i - ;;; redefined.
6 k V1 }3 e. s. o - ;;; "_" denotes an AutoCAD command or keyword in the native language
. {) a$ v9 S8 D8 D" z - ;;; version, English.% y$ L j2 i/ V r! ~
- ;;;----------------------------------------------------------------------------
( w* O$ M8 s8 ^3 w: I - ;;;+ ^0 U2 E9 G) b
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
) J1 t+ w: L- f- P h - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
. G. ?2 N8 a: ^5 |; G& Y" `( j5 ~5 g - ;Functions created as result of loading file: exchprop.lsp
, Y% {( T( Y: l' j/ S& C - ; DDCHPROP2! I# U/ I/ Q/ F( Z+ M9 u! E8 t
- ; DDCHPROP2_INIT
+ _' `3 V9 p, \ - ; DDCHPROP2_SELECT
% ~. B0 ~* H: C1 M7 T5 \ - ;
4 u" T; i: @# u5 J1 @( z - ;Variables created as result of loading file: exchprop.lsp
6 P/ J+ Q& ?" u" x! S0 g2 p" J - ; OLD_ALLOC2 N& q8 M: l0 @
- ;$ s1 s& a" C/ @( d4 T4 ^) n
- ;Functions created as a result of executing the commands in: exchprop.lsp
" y4 f6 Z" u7 Q - ;8 D4 U! h; t# u4 }
- ;Variables created as a result of executing the commands in: exchprop.lsp9 y A! q# R; m& L; r Q, i! M
- ; AI_SELTYPE, M2 n" m+ _. Y3 }- m
- ; BONUS_ALIVE
: _* G% N3 v& G$ R# W; h - ; BONUS_OLD_ERROR. r! s! U M! {5 m) d' q
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
/ E3 p3 K/ i5 R8 e - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6 e! K; Y& S. d' W, {/ L
$ a( S* f! w) `# R# e5 P; ^& v$ b- ;;;
9 x! r/ _, j- ?" ]* B - ;;; Avoid (gc)s on load to improve load time.* k; J, l. U+ l5 I* y
- ;;;7 h& e2 F; T+ W+ A- K4 A! V
- (defun do_alloc (/ old_allod new_alloc)% C1 O' P% L0 h- t# z
- (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
& y5 a9 c# \" o' {+ I% C - (expand (1+ (/ 4750 new_alloc)))
9 A- ?3 {9 B9 L" J - (alloc old_alloc)
+ [# ]! _ Z2 _# l+ B - );defun, ]8 D' C: y4 a; ]
$ ^# A0 G, M$ n3 m, k- ;runs at load time - rk
k3 |% S- o. T- X/ _+ x - (do_alloc)7 ^; Z& m- h1 T
- (setq do_alloc nil)' h+ W% `! k) B+ P8 e3 V! T
- ;;;, J+ y6 o! X: o7 T2 x
- ;;; ===========================================================================
- v! I2 J. W# P; N2 c - ;;; ===================== load-time error checking ============================
2 W0 b z, N9 y - ;;;
2 E5 B6 d" s" B& P
% P4 i; f0 M1 d" p7 f- (defun ai_abort (app msg) 9 e: _2 [7 e( @7 W5 n& E2 U
- (defun *error* (s)1 |$ \4 z! G# V
- (if old_error (setq *error* old_error))* A1 @ `$ n9 ~0 b3 C( B" l
- (princ)& v. w/ a4 ]& N% h
- );defun
7 V/ b; V8 k# ]1 Z - (if msg9 J+ U3 s& q1 N$ ]$ M0 k; \
- (alert (strcat " Application error: "3 E* P. x% Z- b* K( B7 y- s+ y |
- app
- j7 S% x/ ^/ i& e - " \n\n "
8 B- N1 s9 w; Y- q0 N - msg
2 Q0 ?7 r3 |5 b - " \n"
* w3 k- Q7 g' a - )
/ S; c& V, p& \' R$ T- Y - );alert, `* _6 M, J: p. [+ v$ V1 K3 p
- );if
+ s1 m$ O Y" G2 T/ Q: } - ;(*error* msg)8 L8 X7 B5 M, q& `# W
- (exit)5 W1 q$ {: b. p6 I, Z! z
- );defun ai_abort3 W0 O& W/ d' @5 h: X( y
. \6 }- m/ o# H. o! v/ \- ;runs at load time - rk
u+ Q2 }& a! R3 Q" i% X4 _6 y' K - ;(if (and *error* ;added the if wrapper around this - rk.
1 H& d5 l. N; {) E - ; (not old_error) 1 s, ?% F; {( B7 Q2 k
- ; );and
& A, E$ W: L2 `' }6 f - ; (setq old_error *error*);setq' U% B% H% n, A6 q f
- ;);if* k3 y0 _; x& R* G5 B2 K
2 u* {+ d: B$ U3 I. A
+ o( l/ v: ]# r3 b+ Y. @- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
: ?* i4 }1 C( b2 A7 F' ~2 l: Q - ;;; and then try to load it.
# f# s5 u# l. h8 L0 v; w! v - ;;;
1 |, y5 |* L5 n" x+ ] - ;;; If it can't be found or it can't be loaded, then abort the" o% u0 V3 X2 e: S
- ;;; loading of this file immediately, preserving the (autoload)
$ f: H7 W/ Y( O5 U; ^4 t - ;;; stub function.! @- T3 o0 x# b2 c0 x/ y9 j
% @, C! L' F. x9 N9 z. I ?% \ A- ;runs at load time - rk.
8 T- Z9 W5 [( k' G; V) ~) ?' p - (cond
% g: e9 R% D- L3 |- x - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
- B `3 b* @# h7 Q7 J8 S/ O0 t8 n1 p - ( (not (findfile "ai_utils.lsp")) ; find it
$ T# R N+ z2 Y; r - (ai_abort "EXCHPROP"
/ ^; u$ S, S, {! C; [) V - (strcat "Can't locate file AI_UTILS.LSP."
% S3 p2 r' H' [4 W( M- v - "\n Check support directory.")
. a: p/ I: A5 Q5 }' [ - );ai_abort$ b' s0 ^ ^+ K4 p* k5 `
- )" ]3 ^- J$ j' @/ o! X/ W6 F
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
# ]" U+ W( U, O! Q7 t - (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")
* x% Q$ I2 `; r6 q; [# r# n2 b1 K - )
9 R8 s- n) M& ~ - );cond close1 @: |- R' [6 |1 u
8 {4 `/ J8 q. w* m9 R2 x- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
' |4 \# g* y* Q. D& B3 r$ v, C; a - (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses
$ _1 y ]/ z3 U/ e& ] - );if ; ai_abort's alert box dialog.
) G0 h% Z8 S6 ?: `+ z
- V8 v! ~# d) P+ r! R2 ?+ o- ;;; ==================== end load-time operations ===========================
8 m4 F* w- N8 N, I - 6 w9 U* k( A( Z _" v9 D+ `
- ;;; Initialize program subroutines and variables.2 k1 C9 J2 V' G1 c
- ( [8 \& Z8 _) `0 F
- (defun ddchprop2_init(), _7 E6 T' a9 U0 ~0 T" a
- 3 Z& w0 B4 r* |; {9 W/ X+ Z/ x& T
# i5 o! D( y" B% [
$ L5 t2 c; N4 l5 Q) @$ t- ;;- ^% Z: C% ~# J$ s' `2 z
- ;; Define buttons and set values in CHPROP dialogue box* @" A$ y6 ^9 i/ U6 a! E5 w$ n
- ;;: {7 Z K2 w5 A1 T
- (defun call_chp2 (/ cmdact p1 p2)9 N' j9 o+ q. n1 s( `
K( m0 C: t$ d6 L% [& { O- (if (not (new_dialog "ch_prop" dcl_id))
! s4 r0 i! V% K1 Q - (exit)3 U: q7 @) Q! U- T* K$ M! r- w& X
- )
1 O% J% l, e+ q. g T! @" R/ \ - 8 m! D0 e" j/ l: j" j
- (set_tile "error" "")
2 _; J: ?1 o4 q8 x9 |: d/ b - ;; Set initial dialogue tile values
) e# a# W/ X% _% Q6 ~- a% C - (set_col_tile)! o! Q4 i6 O J- ~2 F% [" D
- (set_tile "t_layer" elayer)
- h# H! U2 Z$ F# C- @1 ^ - , m6 H( z+ g) f% X9 b4 J* S+ Z
- (cond
0 R0 L7 K; Y/ [& \2 \+ d, }( K - ((= lt-idx nil): K) M, ~7 L, h& v
- (set_tile "t_ltype" "Varies")3 R9 X: j" {" O- b
- )
& i! u0 U: ]$ _+ ~ - ((= lt-idx 0) ; set tile "By layer & layer linetype"
( p- U( G5 p+ y1 m; \ - (set_tile "t_ltype" (bylayer_lt))
3 ]4 r" o- C6 D" H: i5 `5 X - ). m. u1 \( a" k/ i0 j: a1 x3 X
- (T% w$ D+ M8 N- r7 Z1 r
- (set_tile "t_ltype" (nth lt-idx ltnmlst))4 P+ R9 j) b8 G3 m% \ i
- )' D5 d- ]9 l2 w" N( F8 F
- )* G. L- E0 V$ I7 y7 T( C: I1 I# [
# t' d" J' f) j; x- a0 J- (if (or (= ethickness nil)
X; e5 h2 v' s* S* R0 ?+ q- J7 Z - (= ethickness "")% X0 [* \& w, E: x% g
- (= ethickness "Varies") . P3 {/ i: {8 t2 a/ ]) q* n& d
- );or
9 J4 J& X& e; |! R6 o8 H - (set_tile "eb_thickness" "")6 R; c C* t ~5 r
- (set_tile "eb_thickness" (ai_rtos ethickness))
0 H# r* `5 E: z& J2 i7 W; a - );if
8 v9 Z7 x9 l! R. E- P: L# W - (if (or (= eltscale nil)3 D2 ^& O# B# J9 I9 {9 L* ^/ X
- (= eltscale "")
9 D' k. D) C/ J3 N8 u' p+ c - (= eltscale "Varies")- S) Q$ U: [, u# b9 ]! Z
-
, s3 z1 h7 h# n: ^! l4 g: f5 w - )* Z8 ]1 V! H, |5 {
- (set_tile "eb_ltscale" ""). M$ P; v9 V: } ~, L B
- (set_tile "eb_ltscale" (ai_rtos eltscale))
7 C& N) z! B6 G - )
$ U: g( _- t0 p4 R; \6 a+ ` - (if
0 G! a' p1 G* A1 ^% q - (numberp ewidth)
* S( _( b# v [* p" b - (set_tile "poly_wid" (ai_rtos ewidth))
, h c1 |0 q D/ v) f8 L% r - (set_tile "poly_wid" ewidth)! ^- e) n6 {# g/ F4 k3 R
- )
# @4 W6 ]! s. g; O- Y8 c8 Z, [ - (if- J! v( f2 W; Z8 P" }# E% t
- (numberp eelevation)! V1 k$ w( m# e* N
- (set_tile "poly_elev" (ai_rtos eelevation)); E$ @4 {3 u6 ^/ C6 }
- (set_tile "poly_elev" eelevation)
/ H7 V# A" ?0 ^$ @4 R' t* X - )
) y. x1 O+ [$ P/ R - (if
9 o7 ^1 _: o# ?# ~! h+ p$ B2 O - (numberp eheight)9 q7 M9 m9 l: \& J3 N
- (set_tile "text_hgt" (ai_rtos eheight))
& }: v, u; `0 ]: J8 [& N2 A - (set_tile "text_hgt" eheight)2 p0 L& O! G. L) l" k/ h2 }
- )
$ G* w8 x. s1 ~ V7 F q - (if (not estyle), E1 E T, ]; ]0 T% }2 i
- (setq estyle "")
4 Y( l" `) @! }. W8 e, r1 N2 y* V( m: Q- y - );if ( ~5 L, K/ R" J9 F0 c: h+ `
- (setq hair_style_list (tnlist '("style" 16)));setq
X1 \) E/ H; J, D0 R: ~ - (if (not (member estyle hair_style_list)). c6 d6 K1 \# S! ^5 x
- (setq hair_style_list (append hair_style_list (list estyle)));setq
- E; N7 s, M L$ g - );if ' z6 p9 [* _6 v0 h- ~6 H
- 5 k6 N$ B; u& Y( H
- (setq hair_style_list (acad_strlsort hair_style_list));setq! t' C: I p0 ~% J. |: A) u
- (mpoplst "text_style" hair_style_list)6 u; s# U8 r3 Z: l7 x
- (set_tile "text_style" ) G- x4 K+ ?3 F) c8 \
- (itoa (position estyle hair_style_list)). x3 q( X% u; T! J) q
- );set_tile
4 g6 E& C0 x9 ^9 y/ y - + m6 s' J/ I- J8 z5 l$ H/ w
- ;; Disable tiles if need be... ;@RK
" u/ L8 v+ T7 F# s - (setq a 0): _ s* _! }% N) D6 ]$ l0 ? b; f
- (while ( < a (sslength ss)) U# D, r. M; s1 n. P
- (setq which_tiles
4 w1 f6 @/ }/ b2 z5 e- f! ~$ u8 ` - (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))
' |# Z6 ~/ u" N* b -
1 j" s" t$ t& }# z; { ]& E( X - ;; If all fields are enabled, don't bother checking anymore.2 x" B& G# Y9 T1 P" n- g
- (if (/= which_tiles (logior 1 2 4 8 16))
4 e& I, y) v- e/ w& g - (setq a (1+ a))1 P7 ]0 N& X( _0 j1 f
- (setq a (sslength ss)). Y; q# H# N( W7 d2 y; u
- )1 ?2 y* D: W% `# f, _1 M' l
- )
; R+ m: {( }- k" n' ]8 u - ;; Layer Button and Text Field$ T. p0 X& v0 y, y3 g
- 7 S( b7 f: s$ P& d' q
- (if (/= 1 (logand 1 which_tiles))
1 H. |: ?# M/ A7 r( _ - (progn
2 L2 f c0 n; L - (mode_tile "t_layer" 1)* b0 @, E# k* ^6 g U
- (mode_tile "b_name" 1). _: g) }: P& o: K
- )5 @ j3 _: y; J5 @* C
- )
9 S ] n3 l" p E* t, ^$ K0 K) U
- e- j3 J. {* P5 k- ;; Color Button and Text Field- q' A5 K/ g: n: V# o
- (if (/= 2 (logand 2 which_tiles))
0 a* ?4 Z" t8 S0 k& @ - (progn9 e, W$ h$ \4 w$ O D9 Y% |
- (mode_tile "t_color" 1)
4 f4 o: c# p+ O, [/ b - (mode_tile "b_color" 1)
) `5 X5 Z8 c5 S$ v! @+ [/ ~ - (mode_tile "show_image" 1)6 _) P2 i L5 p1 X( R
- )6 E- B* O5 T) ^0 |9 a
- )6 W, ]" r& j% K1 w: ~
- ;; Linetype Button and Text Field
4 n3 `$ V5 f, F" b+ N: j: { - (if (/= 4 (logand 4 which_tiles))
: O% q4 _4 [0 z" t% {7 e1 w% N - (progn
' P$ w9 Z' J, f# R$ Q( N - (mode_tile "t_ltype" 1)8 K! ^1 C/ s9 s' ^
- (mode_tile "b_line" 1)
' S+ ~& l2 j! z- S* _6 _# | - )# o! ?: y( o# q6 B+ P/ [
- )
" a" ]9 L0 {+ w7 [# J' F - ;; Linetype Scale Edit Field" d4 |9 I8 K \
- (if (/= 8 (logand 8 which_tiles))
|' D) G( y, b0 q5 D - (progn
& |& X+ S3 \- ?1 O* s1 C - (mode_tile "eb_ltscale" 1)
2 [/ `. Y% J9 e% [+ N2 M' ` - )
4 `' M& U$ a. p' x% ~ g k! W7 i - )
, Q% P1 P$ l& d/ ~( }2 q, I$ f; Z - ;; Thickness Edit Field.; [* \* A+ E) ~
- (if (/= 16 (logand 16 which_tiles))
- m; `5 q1 Y8 ]8 J1 w$ l4 \ ? - (progn
% M' j6 D7 O/ N+ i5 w2 O! u# t6 G - (mode_tile "eb_thickness" 1)$ F/ {2 j; O$ c' f$ v. r8 I" z
- )
, W4 y- N) y, b1 y - )* e/ P$ r: O) L4 w
9 I, o/ A; c5 Z9 w- ;; Polyline box and tiles @rk 10:05 AM 1/30/97
) x- L& y1 p- b* O2 |3 ~/ v - (if (not (= 2 (logand 2 eflag)))
2 W. }+ ^9 s, G7 |+ q0 V" \2 H% a5 ^ - (progn
) q* p; ^, f" W1 r3 X K7 A - (mode_tile "text_hgt" 1)) x$ L3 q! g* q( e2 D
- (mode_tile "text_style" 1)& f' ^* r) x, s. ]# Q" h6 `7 X1 l' n
- );progn/ e9 i t! n% Z' J% n( p9 w
- );if
/ c% S6 }! `# r% ~( |: t% [9 H7 P - (if (not (= 1 (logand 1 eflag)))
- W* d2 O/ K0 }. _! J3 X4 w& E - (progn
) G8 n( D9 R3 S - (mode_tile "poly_wid" 1)
6 q: T, _7 R8 K9 m! U( l, e - (mode_tile "poly_elev" 1)
$ z" ~9 N* G- ^ - );progn then disable polyline fields
- q! F: w+ I3 E( E. [2 I$ W2 I - );if. @- U } D# l
- ! ~ k0 H' R# M$ b" A( V2 t
- ;; Define action for tiles' \6 G& q, S0 M* p
- (action_tile "b_color" "(setq ecolor (getcolor))")
! }: h3 e& h8 U/ g) l - (action_tile "show_image" "(setq ecolor (getcolor))")
) n% Q6 E& [# p% j. L - (action_tile "b_name" "(setq elayer (getlayer))")# S5 V& y2 Y; p" N1 Z
- (action_tile "b_line" "(setq eltype (getltype))"): Y2 W, C4 b, R
- (action_tile "eb_ltscale" "(getscale $value)")9 B8 t% |4 Y) \0 O+ ^7 b1 m
- (action_tile "eb_thickness" "(getthickness $value)")
) I$ A/ w" C3 T" E# u- m5 F - (action_tile "poly_wid" "(getwidth $value)")
9 b7 W& I! H# W3 w - (action_tile "poly_elev" "(getelevation $value)")
0 {. ]4 ]6 |' V: v; n - (action_tile "text_hgt" "(getheight $value)")
1 ]; q6 l" r2 ^; X* o7 e" b$ b - (action_tile "text_style" "(getstyle $value hair_style_list)")
7 d+ r) r3 V* U2 c: H6 ?: u& o6 F - (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")
4 z' w* E+ t# v( c4 Z - (action_tile "accept" "(test-main-ok)")
% m, y3 B4 |" ?) @. J( p3 q - $ P" q6 f+ K6 T; ~' z
- (if (= (start_dialog) 1)/ \% k) v P& C
- (progn
3 O0 }) B! h6 [ B9 i$ P- Z - ; Update special properties for polyline and text selection-sets.; ~5 N. M W6 V% r4 [& H
-
& D2 B0 z; k, v* D: D# d0 Y X9 S - (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop1 C3 O" q+ r! n$ J! ?
- (or ewidth
# Z$ h( c; I5 b - eelevation
1 U& ]( ~) r2 N' F7 p - );or
& @# M Q) [2 w; |4 [% a - );and/ ]0 ]2 b( `: S' L" a) M
- (progn
# \0 l9 x' y' M0 F* Y - (setq ss-index 0
) `6 m4 v' E& v$ l - ss-length (sslength poly_ss)8 u# M* J& M! k, k
- );setq) W7 R8 s, q0 |% N0 _
- (while (< ss-index ss-length)7 j0 c* q4 R( b3 A8 q$ T+ s
- (setq ename (ssname poly_ss ss-index)
) ^" @* I/ c3 F8 A$ l9 W - elist (entget ename)2 @- |4 D8 e; S1 F* d9 h
- );setq
" h+ C" j/ H8 E& H0 F" l - (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp
7 g. W/ h. h% K2 I% g5 a4 \! W - (if ewidth
$ P4 M8 B8 Q5 m6 t6 I6 P' l/ N - (command "_.pedit" ename "_W" ewidth "_x")
$ c3 U& Q2 J% q* V$ v) o1 Q - );if 2 t1 |6 n9 Q3 ]0 R' U
- (if eelevation
- O" y" u4 e) w! _+ x) y$ b g - (progn: M# r! K7 N! f: s
- (setq p2 (list 0.0 0.0 eelevation));setq
u" h( l% Q6 k7 M - (if (equal (cdr (assoc 0 elist)) "POLYLINE")/ T/ Q/ D* ^) j. W/ m% H2 @6 I* I
- (setq p1 (list 0.0 0.08 q$ C( j: D9 n9 m$ A- l) K* C
- (caddr (cdr (assoc 10 elist)))+ `% C( y6 `* u
- );list2 E, T& \9 @3 T( e
- );setq7 d! S4 O- }- I
- (progn! x3 R; \: Q" P, r7 F: h$ a
- (if (assoc 38 elist)) z3 ~- b S* ]2 V) v
- (setq p1 (list 0.0 0.0
* \7 g! q$ f0 ? - (cdr (assoc 38 elist))
- `0 m" P4 u X+ o5 L& R7 w - );list, |4 _& L3 A7 A& b. C
- );setq& c# e/ X: J \
- (setq p1 '(0.0 0.0 0.0))4 r8 @: O3 Y' ^1 J# E( n- F" t
- );if
% R: ^8 e+ O/ _1 p: | - );progn
! ]7 X$ T6 {) M. q9 N - );if
3 x* c; y# ?7 i; Y8 h - (command "_.move" ename "" p1 p2)
! p; I0 A5 Y U' R0 r j0 Z - );progn then change the elevation of the polyline( U% [ c% D8 f* l4 |
- );if; u* y. \# X; ?: Y4 W, a
- (command "_.ucs" "_p")
, n) Y9 H3 L. r, m - (setq ss-index (1+ ss-index))
, t. n2 e8 B$ t( ~ - );while
' }/ f" O7 ?* M$ g6 d' Q: L - );progn then polylines are in the selset
5 B3 J. t2 T& d- N/ @ - );if
/ T) J: ]) `6 a: g+ r: I. A) ] - (if (and (= 2 (logand 2 eflag)) ; text
; o: o% @. U+ D7 p& ?) @/ v - (or eheight 9 g! b) m# E: n/ z8 ?8 a
- estyle' _) Z5 R4 C3 u6 T* O! K. `
- );or
8 N* T! E: o9 R, I - );and* `# W0 i \9 q1 u0 S
- (progn g. ^3 {/ u3 G* _, n6 n
- (setq ss-index 0 ss-length (sslength txt_ss))
6 X: O4 |# d% c1 p1 ?8 ^ - (while0 j4 F# x% D- \( l( e
- (< ss-index ss-length)1 `8 L3 l' F: C. J$ s
- (setq elist (entget (setq ename (ssname txt_ss ss-index))))- p& N) ^4 Q. ~
- (if (numberp eheight)' d. i( H/ d' _' [, a) W3 h
- (setq elist (subst (cons 40 eheight); m( b) F) q% e0 s
- (assoc 40 elist)
6 K/ a$ ?, K5 a. P, q6 y& a$ h - elist$ P/ t- Q5 {, f! ]
- );subst0 _" E; S- u, E# D' D; X& E5 T
- );setq' S- g2 g3 k% W% E$ f2 r# G
- );if2 i; y+ U/ `6 q2 F9 [2 f9 n5 ~
- (if (and estyle ;(not (equal estyle ""))9 S8 W, f6 O9 ^- S) k
- (not (equal estyle (cdr (assoc 7 elist))))
+ A) K, } S4 S% Q) r: C - );and3 ?3 k4 R! e' {" b9 e( h) Z
- (progn
# ? n( L$ g+ q4 n2 ~ - ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt + b0 c( K0 c4 H+ s- C* O
- ;(if (equal "MTEXT" (cdr (assoc 0 elist)))3 o0 T1 P0 n' w4 o& g
- ; (setq elist (fix_mtext_fonts estyle " ]( Y* l6 G& o. g3 n
- ; elist
: e: `1 D$ _: R7 M& K - ; )+ G3 f) l! r: O3 p& X/ B5 {
- ; );setq then
. w. R% l* H' R& U - (setq elist (subst (cons 7 estyle)
T5 f$ q& a5 S2 U - (assoc 7 elist)1 J0 p! ` Q/ p3 z* A7 Q/ X
- elist* X) Z" A# L- r1 m1 T
- );subst
* z+ H9 J5 T4 {! x* j" `& ^! G - );setq else) c# ]+ Z" Z& T$ b6 V, J% K
- ;);if . }( U6 b. ^% y& `. k" m* C8 H
- );progn7 \( I' {( M4 [ k/ \
- );if
1 l) ?9 l$ F4 ]1 [$ L+ p - (entmod elist)
& ]) J- N6 O1 f% q8 x' p0 I& D2 T - (setq ss-index (1+ ss-index))
3 L% p! N7 ~7 h3 G - );while, H8 {# `3 c7 a% t
- );progn then
1 w3 B O S/ O. c# D - );if/ |; X6 {# Y& @3 m; \6 g9 u
5 D, N, y+ n( }- V- (setq cmdact (getvar "cmdactive"))
! K# e3 Y- A( H o7 ` - (command "_.chprop" ss ""); X0 U1 a! w# {2 Y) Z, D
- (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?
6 c1 I7 M' u# ?2 F# @- c8 q. X$ |) x - (progn/ Z R: p6 w) K6 S: \/ ?2 O
- (if ecolor* Y J& [6 h6 c# f4 g1 z! m) c5 b
- (progn
. k/ Q" X5 s! v - (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK"))
. _4 r9 q, Z& z) t6 ^& |" o h - (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))
. [' G& m. U8 _: ?4 f) d - (command "_c" ecolor)
, @5 | n, x6 r6 N1 P% y" Y - );progn then
9 o7 _" N, l, S+ X9 H! Q - )
+ e: O7 Y" }) [& R& V7 } - (if (and lt-idx
) w9 s+ b ^" O) I3 P. p - (/= eltype ;|MSG0|;"Varies")7 b% k: h2 C4 J4 S+ z
- )
$ l* m+ p0 u& a6 n) O - (command "_lt" eltype)) c- k+ e7 e( _: o1 o- x
- )
5 f$ H# R' p: Z3 B8 D - (if (and lay-idx
8 r( b/ a2 ? W2 S - (/= elayer ;|MSG0|;"Varies")
& O6 @0 c6 n( d# I) u- ^& S+ s - )/ Q6 u% M8 C( `2 |7 U4 P8 v
- (command "_la" elayer)0 Z: b' Z% N( i% v0 u" c
- )9 O$ t% ~; E2 y+ ~
- (if (and ethickness # J; }! R* O4 ?5 \+ B5 U
- (/= ethickness "")2 Q6 Y% T6 a5 ^9 @
- (/= ethickness "Varies")
, `0 f, h1 a5 a" w. M* u: b# S/ u% p - )
& J+ Q9 H" z2 _" i - (command "_t" ethickness)
7 w+ o% Y I+ q3 s8 y - )3 W' q+ d4 I& ?* I* o
- (if (and eltscale (/= eltscale ""))
4 j6 `; K" O0 t- F& [, W - (command "_lts" eltscale)9 Q ~% N* \! i& s. k: O
- );if
* D' I. n1 p2 O - (command "")
0 G, E, ~1 K: \6 W5 i" d1 K+ @ M, B* E - )
% T% D4 N& Z* }+ {+ n - (princ "\nProperties unchanged") ; CHPROP didn't like our SS set R+ J% z/ D5 g- \+ Q& o6 b
- )4 v9 A+ T- y* F9 `! P& Z
- J$ t6 G; H7 _4 }- );progn then OK was picked in the dialog.- Y o' k2 s) ~$ m( ^ W# X- d5 O1 S
-
/ _6 V/ a7 r. r9 a2 z1 E P$ N8 d1 Y - ;; Fred GERBER - 25-AUG-941 p8 a' s) \4 J3 Q( J
- ;; Don't print the "Properties unchanged" message when the user cancels' |( P, Z! G- [- y: o \
- ;; the dialog because he knows that already (otherwise he would have
' R7 | ?& @. d7 Y! B" J - ;; hit the "OK" button). Display the message only if CHPROP fails for
4 N% U# A5 o& K: s - ;; some reason, because it is not the expected behavior of the command.% `4 ^7 |1 | U( F& n
- ;;5 ?. X+ q z( X( Z
- ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")
* r/ O& z7 t: e- b& Z/ P - );if
( v: p1 r8 O7 q2 n4 U - (princ)
) `4 `+ [# [1 [) h9 ] - );defun call_chp2
- [7 R4 |" H; j; n - ;;
- a7 u9 J, R; H3 y H. A - ;; Function to set the Color text tile and swab to the current color value.; l, ]" d* Z7 Z |8 g0 o9 ?. d
- ;;; q* {; J& n# m6 E! I1 L
- (defun set_col_tile()& K% j4 @) t5 `+ N0 e9 s3 G
- (cond5 K% Q; {5 k" D9 a# f5 l
- ((= ecolor nil)1 t2 }( u9 v2 A! x9 O. Q
- (set_tile "t_color" "Varies")
' [1 T% e* Q$ {* w9 t/ q& t0 v - (col_tile "show_image" 0 nil)+ F% q9 Z: {7 m
- )
$ H$ x5 U6 d6 i8 j k$ X4 ~0 N - ((= ecolor 0)
2 ^- q$ R% D8 q- t - (set_tile "t_color" "BYBLOCK"): U) s; U" N4 @* ~' R' n
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white h6 k! s4 V1 a2 E' X
- )# d! t& O( Z# T: [
- ((= ecolor 1)* q- r% Q( N) |8 @% H: @
- (set_tile "t_color" "1 red")- D8 j6 I( {3 n4 W$ J' ^& V% w
- (col_tile "show_image" 1 nil)
0 y% }* o9 Y& f2 w! z0 _ - )
# M# f# P: Y/ \9 H& g# p - ((= ecolor 2)
' H4 M" {: L1 c- o$ ^; e6 B - (set_tile "t_color" "2 yellow")$ `. ^& R, `6 G/ v
- (col_tile "show_image" 2 nil)
* w W2 T% j- V( C, U, [: y3 |" | - )
, J0 @ O( n1 h- ?, B/ I - ((= ecolor 3)8 [3 v9 i( G+ v2 t' w* _$ t0 t
- (set_tile "t_color" "3 green")
: Z% A0 H5 ^8 d% s7 X - (col_tile "show_image" 3 nil); S1 Q& [. g4 A9 h& j
- )
1 V' `- }$ G J2 B, W6 ^ - ((= ecolor 4). n7 X4 Q, L* ^9 i
- (set_tile "t_color" "4 cyan")
P& W! _3 X7 {* O: { - (col_tile "show_image" 4 nil)
* r: J" C7 @4 a - )
' a$ F2 R8 X% Z" E8 \4 C - ((= ecolor 5)6 `! @8 q; G# C! |
- (set_tile "t_color" "5 blue")
2 O3 S& e' H) w' @1 a - (col_tile "show_image" 5 nil)& f( G& D( x0 ? t( y
- )
5 R0 i/ H0 o l( D( _ - ((= ecolor 6)
, p' y5 S9 e" } - (set_tile "t_color" "6 magenta")9 C% L. I7 ~( o
- (col_tile "show_image" 6 nil)' R: s9 O/ z4 z c1 G. W
- )/ E% R& f* V9 b& \* E1 n1 ~
- ((= ecolor 7)5 I4 a5 y& m" p; c
- (set_tile "t_color" "7 white")/ |1 Z- N3 e& f& \2 n6 \
- (col_tile "show_image" 7 nil)9 Q; [* n( F* F( j$ I% p1 k) m" E
- )
- B" y( @ N* g: Y - ;; If the color is "BYLAYER", then set the tile to
2 b" K" y7 X/ h$ q. V, d( \ - ;; show it's set By layer, but also indicate the
9 C: Y' P' q9 V4 H& j - ;; color of the layer - i.e. By layer (red)# i5 g2 M1 b! x
- ((= ecolor 256)
% |3 e {7 a& d% h9 r - (set_tile "t_color" (bylayer_col))
) Y5 u8 W% w- g1 h - (col_tile "show_image" cn nil)( h1 {- w: {, H$ b2 P2 _0 f" P4 b! o
- )
, d) B u5 X" V5 B& R3 Y - (T
$ u6 n+ ^: e n- S - (set_tile "t_color" (itoa ecolor))
9 ?' {: l$ q- b7 F; Z# q S- Q3 P - (col_tile "show_image" ecolor nil)
+ ]3 X6 Y3 c ?% L! \ - )
' s3 q: K$ R- k' z z - )
" z; B4 S0 I% u9 A. a4 P - )6 J% C$ ?2 u, |# X/ n; F/ m8 `; s
- ;;
+ q! ?; |% T% N4 m. |, q - ;; Function to put up the standard color dialogue.8 b1 ~, r( `0 P# I! K
- ;;8 B8 Y4 p! ]$ a$ L, Z. Y* O
- (defun getcolor(/ col_def lay_clr temp_color)+ `/ b' U5 G: v! d1 y/ @# z0 r
- ;; col_def is the default color used when rq_color is called. If ecolor
6 @( d9 [3 m+ @4 g - ;; is nil (varies) then set it to 1, else use the value of ecolor.
) s% T0 H; U6 X0 Y# z% G - (if ecolor
6 z& Y: W8 A4 E- H/ c3 P - (setq col_def ecolor)
+ ^! M+ L5 k" u/ p+ G. T8 N - (setq col_def 1)" t( f( F0 f% C2 `0 @
- )
' d5 s6 H$ [- L
7 F3 c5 g% k; _* f) V, ~- ;; If we're working with a single layer, get its color* [5 `" J+ ^- a# I4 q
- ;; for use in the color swatch if the user selects color BYLAYER.
) V8 w8 ]. p4 z/ A/ W$ ?3 \* x8 \ - (if (/= elayer ;|MSG0|;"Varies")( ?- m! F4 r7 _( b, U9 J' p8 H
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer)))), g8 u" L6 H2 P
- (setq lay_clr 0)
' ^" [- k. V$ \$ s - )2 K i& S* G0 ]+ T: N$ t7 J
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))7 f' b" i$ k4 m! V
- (progn
; o) V: ?: P. U - (setq ecolor temp_color)5 |/ O$ P6 H4 y5 ]% h( E- l
- (set_col_tile)
% X- O1 C: I) Q, _ - ecolor& F. F" e* a3 e( s' A
- )
& k) j$ l) K7 l- F) `: X - ecolor
3 P4 ?; E) \& U* i4 o3 X - )" u- j6 Z" i f9 k: n
- )4 h! {- q! y0 k; |
- ;;/ W5 d2 }4 W& a8 ]# p3 ^* ^5 ?
- ;; This function pops a dialogue box consisting of a list box, image tile,8 J) d7 M2 Y; a5 V `8 W0 Z
- ;; and edit box to allow the user to select or type a linetype. It returns
( ?* W% f( v& L# }/ a - ;; the linetype selected.
X7 A7 y0 k0 K+ V Q3 D! i - ;;
, {. t g' C- f& [/ C8 Q4 u7 K - (defun getltype (/ old-idx ltname)
& p5 n# x( Z5 J: k* o7 Z% A5 i - ;; Initialize a dialogue from dialogue file
4 k! w: J5 a: i# P2 ]/ r' [ - (if (not (new_dialog "setltype" dcl_id)) (exit))
4 [! V6 @, @9 x6 `. r. J; z - (start_list "list_lt")' z) s3 a: _. o
- (mapcar 'add_list ltnmlst) ; initialize list box: i/ o4 m" l) b1 v
- (end_list)
# e7 L& A0 d3 G0 s4 } - (setq old-idx lt-idx)
0 W- x+ J6 V2 G9 `& c - ;; Show initial ltype in image tile, list box, and edit box" e8 t( g. |7 [9 ^1 R( s
- (if (/= lt-idx nil)
% N2 I4 e5 f* }" s, ?* @ - (ltlist_act (itoa lt-idx))) ]7 R# K: _ r9 m8 F1 m
- (progn! b& {5 j0 ^8 H* Z
- (set_tile "edit_lt" "")
- {/ Z: d" m% s( d2 E; E7 r - (col_tile "show_image" 0 nil)
; X9 J4 L0 n5 }) m - );progn else/ V4 S$ w* S: m: j
- );if$ |* O D2 M+ ?* }& H% [
- (action_tile "list_lt" "(ltlist_act $value)")0 B! {% p l* N G
- (action_tile "edit_lt" "(ltedit_act)")' e7 J A- m0 c1 J% }3 t
- (action_tile "accept" "(test-ok)")* M7 I$ }% _+ C9 {- X |7 Q
- (action_tile "cancel" "(reset-lt)")
& u# r a ?% q+ d' P' w - (if (= (start_dialog) 1) ; User pressed OK/ a' c [! E2 N; D" E0 M
- (cond
* s8 V! A5 ~% w3 u - ((or (= lt-idx nil)
* S# t8 c" P* m3 Z" f+ g - (= lt-idx (1- (length ltnmlst)))
" ]- n7 F9 j y - );or
% d4 q" L2 G# _, f4 h" C! d. s - (set_tile "t_ltype" "Varies")
, n# s" G# O; V - ;|MSG0|;"Varies". u g7 Y4 Q$ C: A; u0 s
- )7 T( d. K& Q2 c8 C' q7 g4 l
- ((= lt-idx 0)
; d+ ~" k! @% J9 v% X7 I - (set_tile "t_ltype" (bylayer_lt))
6 p6 g; a1 [) U8 _* Q - ;|MSG0|;"BYLAYER"
! X7 D0 j3 B& Y/ `( y5 ? - )
+ _; j9 K5 n* t* r7 \; E4 b2 p, M - ((= lt-idx 1)
" R! |" ~9 i1 n) B% q9 `5 V" ?1 t2 s, q - (set_tile "t_ltype" "BYBLOCK")1 ?& J- Y- N/ r( J
- ;|MSG0|;"BYBLOCK"
8 a( c% D5 l8 G6 v0 i4 G. G - ): c# A7 H7 D. @1 T5 E) k0 W
- (T
* K4 l! d( g: M& g - (set_tile "t_ltype" ltname)
" k6 d& n; b, E0 ] - ltname
3 l+ p: e, A! x6 Y; \2 m - )
7 Y9 y' | N7 D2 D3 m - );cond then% K; S# G/ a, Y1 G
- eltype
& ?' j( W5 k: E& |+ Z - );if1 ~# p' I0 Q, ~7 ]7 f
- );defun2 E# Q8 l [- S6 L4 I! P& i) d7 g5 r
- ;;" l" }& E) r9 r- T2 Y& q/ ?
- ;; Edit box entries end up here% j6 t: o: \) m5 m( C3 v$ V
- ;;8 [1 r& F {, P" J
- (defun ltedit_act ( / flag)9 P. e% k u5 G) R- m6 | k- ^
- ;; If linetype name,is valid, then clear error string,
* |+ u0 Z! z7 X4 Q - ;; call ltlist_act function, and change focus to list box.& D' r, H" h' }
- ;; Else print error message.! ?9 y1 h$ x$ Q: N# Z
- - L0 ~8 H; n, j* B6 Z9 _
- (setq ltvalue (xstrcase (get_tile "edit_lt")))! t/ `( l. e0 U- t! J
- (if (or (= ltvalue ;|MSG0|;"BYLAYER")
3 e! @( c! s5 x6 V - (= ltvalue "BY LAYER"): L) N/ q+ U* h
- )
& x4 u: W' a: c; i! c4 e8 v - (setq ltvalue "BYLAYER")
5 t& e, C5 N2 C2 J/ {5 N7 K - )( N! f, r0 k# q4 W
- (if (or (= ltvalue ;|MSG0|;"BYBLOCK"): q. x1 G- l% i& A5 z2 l4 N
- (= ltvalue "BY BLOCK")
% X; J+ R! T+ V+ g: v7 S; ~, t; Y - )
7 e+ V' _: }3 j9 L4 b - (setq ltvalue "BYBLOCK")
* c, |2 L* x" B U4 B - )
$ E5 G2 \& w: y8 T - (if (setq lt-idx (getindex ltvalue ltnmlst)). ?/ i I" B' {
- (progn& n# p0 J; q$ P0 C1 e3 G7 p t
- (set_tile "error" "")& V' K: j M% L+ r% t
- (ltlist_act (itoa lt-idx))* \7 Q1 w6 v. r2 D
- ;(mode_tile "list_lt" 2)$ k2 i" W8 L- D0 H, G
- );progn then
2 v) D! s9 U5 z4 G( Q - (progn
6 W) Z8 a" r2 A; C2 S0 W - (if (/= ltvalue "")
4 T* z9 I1 {, L0 d, N6 I/ {" o - (progn
/ `2 X% _8 ~& \4 d" U6 j - (set_tile "error" "Invalid linetype."), ^3 T* o# n! \2 m' x
- (setq flag T)% S' r! Z* ~0 S2 e1 B3 J$ j
- );progn6 R o' D1 s/ v1 g0 ?# O5 {6 v
- )( o* Y8 f/ B( i+ U- c
- (setq lt-idx old-idx)
# L* y! P' M3 H, A# m+ v4 O - );progn else1 _& O% O: v2 m: o F6 k w, ~
- );if
2 r' b" k7 d/ T; y/ Z - (if (and (not flag) ;added so a return will take you out of the dialog.
( o6 m4 ]8 m& M6 o - (= $reason 1)3 V+ W5 D2 s) J5 y
- );and3 s+ t( ?( [! J: x2 o
- (done_dialog 1)
% d9 i2 A$ r9 t - );if
6 f: C$ q( n1 ?, x - );defun ltedit_act) m" Q+ v$ q- x/ `5 ~
- ;;3 E7 R4 g; M( H1 `5 B9 f
- ;; List selections end up here
4 l& `' j) c" I9 ?( b - ;;
! I- ?+ s. U% p! ~( G) ^ - (defun ltlist_act (index / dashdata)
6 d& ]$ g4 W6 A C0 j% N1 O - ;; Update the list box, edit box, and color tile
& {3 B$ I2 Y, v/ Y3 b - (set_tile "error" "")( {# t4 s7 u; W- ~5 Z
- (setq lt-idx (atoi index))3 @" H5 F5 x# I6 L
- (setq ltname (nth lt-idx ltnmlst))& p( F" \: `: _& U& }
- (setq dashdata (nth lt-idx mdashlist))
" o; N( s) w$ F G N5 S - (col_tile "show_image" 0 dashdata)2 |* C5 \# K/ f
- (set_tile "list_lt" (itoa lt-idx))
0 ~ e# w' r. ^. c% V/ R3 f - (set_tile "edit_lt" ltname)
3 P% j4 l+ f4 I" S% V - )5 V. V( d; U* R! j& i8 b
- ;;( r8 {3 L: M) V1 g
- ;; Reset to original linetype when cancel it selected
1 s0 D* w4 ^1 }* W' b' i w. t - ;;
- T& x" v/ y3 Z. d) }- K) f - (defun reset-lt ()3 y, [7 ] G% a1 h
- (setq lt-idx old-idx)3 \% ?: i/ \( E4 q% P, J* X: [
- (done_dialog 0)( _: _5 K; ]2 f# r' L0 |
- )
0 V; S2 W/ V* ^, A1 z - ;;
2 F5 W4 u, H* F7 v - ;; This function pops a dialogue box consisting of a list box and edit box to
) a: i5 n! R. C" j: s8 _ C - ;; allow the user to select or type a layer name. It returns the layer name
7 g2 k5 {+ R: h - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the( j4 ?# _% V( m3 k0 N$ \! A+ b
- ;; drawing.
- p8 y X1 ^' G0 Q1 ?) @ - ;;
% s' V, v/ j" Z4 a - (defun getlayer (/ old-idx layname on off frozth linetype colname)
2 \! ^% k _) u4 g4 ?# U - ;; Create layer list the first time the layer
% z$ P4 v. p1 E1 | - ;; dialogue is called.% d8 J" l7 V* U7 j3 U+ Q
- (if (not lay-idx)
3 R1 i9 O e& ~' p5 n0 z - (progn6 c7 R/ g2 _' p. B
- (makelaylists) ; layer list - laynmlst7 g1 \1 K' U& K5 X4 T) B
- ;rk. D6 N/ x! E( E7 L* z, \; k# s
- (setq lay-idx (getindex elayer laynmlst))
5 W+ _7 v. E! g% x0 q9 y - );progn4 Q# I! v5 _: G7 Z* R
- );if
9 A: K4 ~. Q& b9 \5 ?
" a! {) s V/ G' I: l! d- ;; Load a dialogue from dialogue file# L- M+ z: ?- j6 i1 z3 C
- (if (not (new_dialog "setlayer" dcl_id)) (exit))4 V" t, _( [+ K. Z2 F
- (start_list "list_lay")
+ e8 O* Z: q6 J, o h# t - (mapcar 'add_list longlist) ; initialize list box
/ n* b: r" _7 G3 ` - (end_list). c: J/ j' N3 q' ~
- ;; Display current layer, show initial layer name in edit
/ }% _: e2 f8 m# l) I( W: F - ;; box, and highlight list box.& F$ ?& X8 S* l1 A
- (setq old-idx lay-idx)
& S; v) e$ b: P, k, n! R, }2 c - (if (/= lay-idx nil) (laylist_act (itoa lay-idx))); |: G6 v3 a7 h2 F; ]! _! ?, r) z' k
- (set_tile "cur_layer" (getvar "clayer"))8 \1 a, @- @6 U" ]" N/ |
- (action_tile "list_lay" "(laylist_act $value)"); {( y# d4 P( ~# r" F% @) f
- (action_tile "edit_lay" "(layedit_act)")
# B' m" q7 p4 R" L+ s, _ - (action_tile "accept" "(test-ok)")
# D L& p3 z& e1 m- }. z* p" r - (action_tile "cancel" "(reset-lay)")4 j0 ~/ t3 T! L7 }' ^ L
- (if (= (start_dialog) 1) ; User pressed OK
; \ Z: w: }& k' u - (progn9 r2 a! a O. l0 e& v
- (if (or (= lay-idx nil)
8 Q) N& e/ U& Z# O% A0 F! X9 w5 N - (= lay-idx (1- (length laynmlst))). r, K+ F& ?9 Q" Z$ a
- );or
2 H" M4 R% u2 |: y1 } Z. z; x" D3 f - (progn+ z2 x! c; Q! d; {
- (setq lay-idx nil) * p# Q, [0 d, d+ _6 L9 B* ?9 s/ z
- (setq layname ;|MSG0|;"VARIES")4 \% Z; U/ O. {! L) v$ T
- (set_tile "t_layer" "Varies")6 X, h j- [6 A
- (setq layname "")1 s" q1 N' g& g3 f8 {, S
- );progn
& j6 a6 s! p7 ?, g - (set_tile "t_layer" layname)
/ L N+ ~) q5 ? M - );if' n) G: z# S# \' Q) j3 x+ |5 u
- ; If layer or ltype equals bylayer reset their tiles
5 N- T' C8 w8 C7 ? - (if (= lt-idx 0)! u5 S3 t9 h% q- y5 s. Y
- (set_tile "t_ltype" (bylayer_lt))) z* Q# u. b' }$ ]. c
- );if
: t/ h- d# D. N% B! x* H - (if (= ecolor 256)
) p1 L, L- ~. f& q, ?+ n5 I - (progn
* A' W2 L, [6 s' V% ? - (set_tile "t_color" (bylayer_col))" t! r$ S u4 C0 W6 O
- (col_tile "show_image" cn nil)3 n# |# }/ J9 V5 {7 l8 f, R
- )/ z; ?6 D! f7 I# i) c( X
- );if
2 f% u4 m- Z( ^" y0 b - layname
* e* p3 g7 v8 B9 G- Y! [6 w; @+ ^) [ - );progn
& p3 C# y% h. w, F& h - elayer
" f. s. G9 c* q# a; L% d9 g - );if
( A: D0 s: M- j- ]3 i - )
7 I' p, n8 a' {9 ?" ~3 S - ;;
2 U4 W* p* |2 M5 V) ^ - ;; Edit box selections end up here0 T' r# R2 ~/ G' f% u8 }/ C% i
- ;;5 j& O& Q7 L" [" o
- (defun layedit_act()( [; u6 V" s" ]& j" N# U
- ;; Convert layer entry to upper case. If layer name is F' ^) A+ D5 d9 V
- ;; valid, clear error string, call (laylist_act) function,
! L" l7 q. f3 I5 C; w - ;; and change focus to list box. Else print error message.
1 @0 n2 g. D& T0 v- d - (setq layvalue (xstrcase (get_tile "edit_lay")))
' {! }! K; z2 b t - (if (setq lay-idx (getindex layvalue laynmlst))5 \& I+ \6 @6 l) |
- (progn
. I" l" m3 J) X: ~6 b5 C - (set_tile "error" "")
O% M, u% |/ B+ a! c. S - (laylist_act (itoa lay-idx))
4 v1 T$ Y) T# M5 {/ L2 q( _ - )
' `) Z1 Y# b0 O' J, R - (progn9 ^/ C: ]9 m: k5 i: R+ C
- (set_tile "error" "Invalid layer name.")5 b1 [: r1 n) F! X N/ [( m
- (mode_tile "edit_lay" 2)' ?* ]6 h. l% `2 p
- (setq lay-idx old-idx)
1 e! y4 y: @% P6 E, C }8 S - )7 X o: _" s! z
- );if' O, I' ]# v& c' F1 V1 o3 v* H
- );defun( W5 @' ]6 s: O! d) d
- ;;
( J& _# p9 ^ U3 L! n - ;; List entry selections end up here: y( x+ l0 Q \) U1 D
- ;;) t. l3 X( T. C/ E! C6 r) X
- (defun laylist_act (index / layinfo color dashdata) L, I- s6 F, X5 s3 c y) r+ i. M
- ;; Update the list box, edit box, and color tile
: ~& l3 s. y8 W0 H - (set_tile "error" "")+ E8 a% N4 N2 {: D# S, v1 E2 v
- (setq lay-idx (atoi index)): p6 O, t1 N: O
- (if (not (equal lay-idx (1- (length laynmlst)))) y, n4 `, f4 |& }' e2 i2 O$ i
- (progn 5 a+ P& g5 x1 R: V
- (setq layname (nth lay-idx laynmlst))6 {1 r; B0 @& m7 ?$ _% ~/ [
- (setq layinfo (tblsearch "layer" layname))
9 {9 \+ Q9 | H- z( N - (setq color (cdr (assoc 62 layinfo)))
& u& x1 C0 |$ }$ T; o# t. Q - (setq color (abs color))2 E; W& S* C3 k" @% ?" a! m
- (setq colname (colorname color))
0 e. r6 ~5 ]% J, M) J" m. K: h - (set_tile "list_lay" (itoa lay-idx))7 y5 |( y. U2 s2 N
- (set_tile "edit_lay" layname)
9 z* y8 b8 w: | - ;(mode_tile "list_lay" 2) ?, D+ {7 i0 d3 Y
- );progn then
) ~* A6 E& Y& x: I8 `7 O - (set_tile "edit_lay" "")
: x2 s% `& F$ Q9 ~6 V - );if 7 g. {4 V$ N( @' Z" L* [& I
- );defun laylist_act
! [+ C* u2 `# |9 K% v; {3 n$ d - ;;
; w+ F* x" ~; A' ^, E - ;; Reset to original layer when cancel is selected
, c4 P1 R( o: s+ S0 A+ X& f5 J9 N5 r - ;;9 o9 J4 |. k8 q3 Y! ^, d3 J
- (defun reset-lay ()
9 c+ ?. ~* q) b5 x - (setq lay-idx old-idx)/ G$ p) M1 \! X* C1 q7 k
- (done_dialog 0)
+ ^% x5 L2 s7 q) T' m - )
: B4 `; b$ U0 N, j5 a% S& m - ; ?, o5 {9 W+ m6 x
- ;; Checks validity of linetype scale from edit box. It checks to6 | t. y1 Z0 O8 I
- ;; see if the value equals "Varies".& A' `8 h2 Y! `/ w% c+ g( h+ x' [
1 V4 ~" N7 G% G2 J# W5 }" }9 ?6 `- d- (defun getscale (value / rval); h/ ~1 V: J5 O. Z% [
- (setq value (strcase value): Q& t! w4 D, j2 x
- rval (distof value)1 [6 h. T3 ^0 I' c' O
- );setq
4 L6 o/ q3 ?, T: | W3 U; Y4 I - (if (or (= value "")! O) \8 K) }+ D# o- f2 g: V9 O
- (> rval 0.0)1 K; @/ n: R4 S
- )
/ n# s; q+ k. F% `6 @5 x7 O - (progn; C( A5 W! Z/ E; I7 P1 s- p6 @
- (set_tile "error" "")
u- m! G$ J, U, _4 ` - (if (= value "")5 c% |, i1 O" h: j, l: A* y, A
- (progn6 C" V0 i- i0 w- `
- (set_tile "eb_ltscale" "")
' ]9 ~' j7 E0 f N3 u/ g- b - (setq eltscale nil)
7 _ e4 @9 g7 H - );progn then
# h. \. ?' ?! P# d( B" M$ } - (progn. K8 B+ Q' N8 e- P# n
- (setq eltscale (distof value))3 d# W9 S# n7 R) b4 | M7 `+ P
- (set_tile "eb_ltscale" (ai_rtos eltscale))- W/ Z: ]& ?. k
- eltscale
; \: T) Y: e, \# Q - );progn else1 |- ?0 ?. k' Y! L% H
- );if
. i" V, U1 W" K4 Y# c& R {; X; { - );progn
2 M9 R) q- Q% k0 o2 Y: x1 l - (progn2 I4 Z* ?) D" M5 F" q6 U: S
- (set_tile "error" "Invalid ltscale.")) C7 ^0 S+ Q8 R* E
- nil
5 J' q6 a& s& L/ P8 ] - );progn else
% q- u; l6 i/ }- A, m - );if; B a& z5 C; V6 h' E
- );defun! A) K' z4 ^* ^9 I& ~6 m) h# I
- ;;( `4 r" n; }" w4 v
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a# }2 @1 s- a# [6 l; M$ z! f
- ;; string can't be converted to a real, this routine checks if the first
: w8 a1 E5 U1 ^$ m9 p - ;; character is "0". It also checks to see if the value equals "Varies".
; b/ \+ @; @6 {: H5 k( R6 b - ;;" L) s9 i0 q* C% K r4 i I
- (defun getthickness (value)# l2 j- H/ b* g( F
- (setq value (strcase value))
% J/ ~ D% {, ^% \7 h, e* w3 N9 |8 f - (if (or (= value "")# o6 Q+ C- c% }' l1 B
- (distof value)4 }7 S# R8 \% H9 @, @" T+ v
- );or# Q' K4 m. S; v+ }1 W* B
- (progn
/ E9 [7 k% }+ \- ?$ l+ Z - (set_tile "error" ""); t' @& l- D- z* m* B
- (if (= value "")! {% G6 \3 g" @, s% y5 N* b
- (progn
9 X# b; \# ], S! d - (set_tile "eb_thickness" "")
$ f- H6 ~0 ^2 _: d1 z" P8 D - (setq ethickness nil)
3 O2 l \( `3 D# j& w" M3 y f) V - );progn7 p. I' M& r9 L) o3 u
- (progn/ W0 | I! s( [7 [! v$ S3 o
- (setq ethickness (distof value))
. u" b: A) S, h - (set_tile "eb_thickness" (ai_rtos ethickness))
; j! `+ E9 F, C7 Z" h$ J$ V! s1 @ - ethickness
" I1 V% b) u$ a# q* x - );progn
1 P8 C( ~* }( \% J8 w) R - );if+ g' E9 ^) A, s& ?4 g
- );progn
' ~* t) B* @& Q8 T; k - (progn
8 V1 o. N2 a( m7 U* V - (set_tile "error" "Invalid thickness.")9 }7 l8 ^! J$ ]' Z k# T
- nil
4 t% A& q8 F( N5 ] - );progn+ L9 j% v3 r& @ _* s0 f
- );if
% r5 v5 e S+ V+ w% T" U - );defun , A) Y/ g; l$ T) G2 j
- ;;2 q ?- u! `, Q5 f
- ;; Checks validity of polyline elevation from edit box.1 x" r8 [( z. U3 H* a
- ;;
! f1 O8 d" n4 i U% h1 ~' M - (defun getelevation (value)
' E& g9 @6 M5 {9 c5 u - (setq value (strcase value))9 c! g1 o' L. Q$ Q/ l7 k9 o" E; @( f
- (if (or (= value "")
* B$ w/ w6 ]! w - (distof value)
7 W. w7 ~4 Q R2 d - )
: D6 Z' _& _# M9 g - (progn
) |/ c2 _6 j& ]% k - (set_tile "error" "")& k, g8 B& M2 Q) ^8 L+ ^
- (if (= value "")
( |: }3 [2 H2 X: j% n - (progn; t* @6 Q( z/ `2 O6 [+ K# g- g8 E
- (set_tile "poly_elev" "")! V4 [" Q8 Z* b/ R/ c8 K6 M9 ]
- (setq eelevation nil)
; G# K+ k/ F& [6 h - );progn# e' ^ ^2 O: c/ h* Z6 P
- (progn4 q$ J& U, w; g: K) [ u
- (setq eelevation (distof value))7 y) \& H+ v6 k/ e2 r% z+ G* l; Y
- (set_tile "poly_elev" (ai_rtos eelevation))
( Z+ v+ u# d/ Y! [ - eelevation
$ a6 b. H+ V2 C' X. d6 Q - );progn: C/ G, _9 y/ H t" G
- );if' \$ ]* g; y* G/ ^' u6 A7 {
- );progn
- f2 i6 B. C/ S' \# ]4 o - (progn
7 b2 `/ f% ^6 ~- V- m - (set_tile "error" "Invalid elevation.")
# `/ g b$ Z2 n4 M - nil2 h, Q$ ^( J; t
- );progn
: F! I J/ A! T+ z; q) a6 g. ~ - );if4 d- A& _- I+ D8 G9 ?
- );defun9 u2 ` Y( v& I4 E$ I- |" G
- ;;
4 l$ [' K2 c5 e" H - ;; Checks validity of polyline width from edit box.* [7 @! j9 {8 f) A
- ;;* c7 D4 x* N8 P5 N4 R
- (defun getwidth (value / rval)) d" j! c" ^% \
- (setq value (strcase value)$ E+ G0 _# j/ p
- rval (distof value)
2 r$ z4 \. t. s% Z2 k; V - )7 s$ O6 g% J0 W& ~( V
- (if (or (= value "")4 @. I% [/ E6 G# e
- (>= rval 0.0)' w% d. {5 ~& j1 p0 V
- )# [1 b+ r) U, x. H3 ~5 i
- (progn" F. Z+ P y+ y- ~# `% D
- (set_tile "error" "")2 o O4 w1 v/ a- t
- (if (= value "")
' `. Q, Q: _$ e2 Z - (progn
, x D+ a/ { k& t( a - (set_tile "poly_wid" "")7 I3 D4 |3 @) C0 y
- (setq ewidth nil)+ j# y* E# |2 T
- );progn5 X- o% B5 H# @- E5 W4 @' _
- (progn
! p% I2 _1 i3 s# G2 O" }$ D9 a - (setq ewidth (distof value))! V o4 V5 U1 h- c( e, [6 I2 R! X
- (set_tile "poly_wid" (ai_rtos ewidth))
" E4 t+ [/ _$ f - ;width
0 [3 l. {1 g h8 P6 D - );progn
4 x6 W7 G5 |+ O# t - );if
% b& A4 U' l" H& g7 J& k& i: T - );progn
. e" `8 m' ]$ w" E9 w - (progn
( S3 O0 q. Y! W! \' x - (set_tile "error" "Invalid width.")
" T, c7 X5 o' K" K0 t$ W/ T4 g - ;(setq ewidth nil)
1 M! V) e' f6 C - nil
4 [# d7 N- J4 @3 j. H+ w! `% |" W - );progn
- k3 ^1 r! }! y7 ~1 P - );if0 R0 O( N& ?) P1 s' c1 h9 f9 ?+ J! N
- );defun8 z; E0 c: S* d( J- k
- ;;
. K3 f4 g' A8 C" G F; d: P1 M - ;; Checks validity of text height from edit box.0 Y$ y) I0 W: j5 ^
- ;;
% R2 E* |- I& f+ V9 u1 C" \8 p; D - (defun getheight (value / rval)( c5 T+ K& z9 n6 k* [/ w6 K, q
- (setq value (strcase value)
# ]' j4 A2 v# X - rval (distof value)
. Q) e4 L' U0 i4 ?3 r9 j$ K - )" @; s1 L: v1 t S7 T
- (if (or (= value "")
9 @" Q& ?3 S+ d: Q+ i - (> rval 0.0)9 E/ O2 a8 h$ h7 U
- ) A/ ^! w$ w9 ~4 |$ C$ i7 i" n3 w# T5 F
- (progn# p" L) E5 O# N
- (set_tile "error" "")
4 F! L( X+ p- R3 _; A - (if (= value "")" r+ Y8 n9 V- [! w; }5 [5 H
- (progn0 R9 F5 h) N0 l0 n; x/ U
- (set_tile "text_hgt" "")" ?! u1 P% i9 T4 r- a9 O
- (setq eheight nil)/ ^* ~+ O4 u* Q; E9 [
- );progn
8 Z. K/ G7 I" c7 A - (progn
4 O; G, }, ~$ V1 g3 a1 N - (setq eheight (distof value))8 P7 b; B" {* G
- (set_tile "text_hgt" (ai_rtos eheight))
. g; @2 b, @& n' D! q - eheight) T3 f6 D: ^/ f
- );progn& i3 W. Y- G! x& W+ ]- g+ x2 m
- );if* q3 K8 L" K% `. o! P
- );progn- u8 _$ |# |6 Z
- (progn
( l$ v7 Y- ~2 g- d! Y - (set_tile "error" "Invalid height.")
% M" _3 |0 X; T1 s1 E+ u - nil
7 y3 F4 X: d4 S( L - );progn
& q4 t' \5 \# m/ [8 ^0 {" b! d - );if
9 d3 I- |% A" T- {( Z) I - );defun
: \1 p0 b6 y5 _" w. E% h
0 V) T' h. ]$ u+ Z/ @+ K7 q5 Z- (defun getstyle (value lst / rval)6 M0 r) J* V7 }2 ]( A% ]; g" I
- ;(setq value (strcase value))2 l- G$ A* H8 N. z# N) h
- (set_tile "error" "")2 o1 X; \5 g7 [4 ~
- (setq estyle (nth (atoi value) lst))
& Q0 R4 l* q9 {) m9 ~" E# n - (if (equal estyle "")6 I6 t/ H" N: u. k, H
- (setq estyle nil)5 x9 P# t8 B# i' R7 I- `( D/ R
- );if
- u* w0 j: m; i4 l -
, R) l" i* U* Y' [2 t - );defun getstyle
! x5 B" r: {! J7 Z - ( H! g0 h, Q6 U/ Q K. M
- ;;
6 D2 w5 M% f( [% b3 S - ;; This function make a list called laynmlst which consists of all the layer# f$ Z# D* M; U: B! E) a z+ U
- ;; names in the drawing. It also creates a list called longlist which
. y- x6 c( Z, `9 t# y: f [ - ;; consists of strings which contain the layer name, color, linetype, etc.
: x5 q; ~& r" { - ;; Longlist is later mapped into the layer listbox. Both are ordered the
* J! r8 z, C* o1 x# |$ w- I3 ~0 P - ;; same.- L& o/ C& D. g4 E+ o& s
- ;;" R# f. \6 i9 J+ q. |' H) {
- (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname
; E5 N3 R: W1 e* U9 P5 T3 ?/ ? - xdlist vpldata sortlist name templist bit-70 ~. O3 p/ Y. R6 e
- layer_number
9 G* R1 W" s' i+ R( Z$ R7 } - )! h9 Y; D8 d6 a, A
- (if (= (setq tilemode (getvar "tilemode")) 0)
+ z% l# D+ C7 n" N6 ]- v - (progn
+ F; r: c/ P% O* R0 K( O& s, B" D - (setq ss (ssget "_x" (list (cons 0 "VIEWPORT")5 M1 |9 J) i) \
- (cons 69 (getvar "CVPORT"))
: N! d8 ?5 A# y" Z) c/ q - )/ B J3 r' X+ C1 {
- )
! L- B5 z0 @5 r - )8 X# V) o2 J; V% G$ h" m
- (setq cvpname (ssname ss 0))$ _0 t. y" |' C+ m- V
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))
, f T( H J( s7 q6 k, r - (setq vpldata (cdadr xdlist)). x! W6 o, p8 x' v; p9 y
- ): I' h4 B2 G1 q$ U1 D5 M
- )
' Y: L7 r" V# J0 g$ r/ S - (setq sortlist nil)
- B. F% f+ K$ L/ x; l5 T- S - (setq templist (tblnext "LAYER" T))6 m/ X6 j9 ^# A4 D, H
- (setq layer_number 1)
: H1 {! q' T! ?% T' r3 i - (while templist
* W, p, H7 L' H" ^ - (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))
+ n9 F8 b. A( R5 F - (progn
9 {# i- t& H- t6 a% t4 L/ _8 L - (setq name (cdr (assoc 2 templist)))
3 P6 d: x9 J+ O" F8 O4 Y! \0 ?- T - (setq sortlist (cons name sortlist))
* U: D) h- _* a% t+ {+ } - ;; Not dead message...$ y% [+ ?7 w* k1 c) b* S, ?6 u* I! w/ _
- (setq layer_number (1+ layer_number))8 {0 s4 P+ j# c% n* Z5 e7 [: C
- );progn
L! h: R0 H" Y; T - );if
( f# D7 {+ V3 m - (setq templist (tblnext "LAYER"))
" S! t; t( s+ U, P- j5 I - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))4 H1 K9 R) x& L! r6 l
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
8 N1 O' d% t# G - );if: i3 j7 k5 p8 \& t) t. v9 m, Z
- )
2 v$ l; {! O$ H5 P+ x - (set_tile "error" "")
0 V9 \: X' E) M% y! r" |+ @8 | - (if (>= (getvar "maxsort") (length sortlist))
! n; [1 F+ q' t7 V - (progn
6 x' l7 e" M, d2 B. Z - (if (> layer_number 50)
9 k+ f0 {+ E) j; T5 |) t( _ - (set_tile "error" "Sorting...")+ C) O9 ]8 W1 e
- )
$ N0 b& d6 ^4 L9 d4 f2 t2 ]' d - (setq sortlist (acad_strlsort sortlist))8 E9 z+ M' M$ K% b; `
- )- v) ~" e: k; j' C# A9 O5 A
- (setq sortlist (reverse sortlist))
! _3 P% A* Y: ]& | x, q - )6 v/ d$ N& Q! g4 X$ q8 N' x/ s( }% `
- (set_tile "error" "")
( a. D8 Q; G" J1 t7 ? - (setq laynmlst sortlist)8 @* n" _8 g% K d. v
- ;rk 3 k: ?" |& f5 x. f ~# H
- (setq laynmlst (append laynmlst (list "")))
+ X3 p% |( [. g( i& A& O) w: l) H1 w
! M' u. ^' ?. f5 k& f' n, ~* V- (setq longlist nil)% m6 P* B% `* p
- (setq layname (car sortlist))5 q3 e! _8 b. b" L
- (setq layer_number 1)
* ]8 B' \1 }* E- y8 r F - (while layname( Q: Q& w. m8 ^3 [ V$ h; G6 k* X5 [
- (if (= (/ layer_number 50.0) + W$ |9 [. C8 p( h
- (fix (/ layer_number 50.0))
" E/ h) r: l+ ^ q - )
' f, K* L' O% S6 S# b - (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))7 I/ _6 I* M5 P; m
- );if, p. ?) I6 C: u1 J2 r
- (setq layer_number (1+ layer_number))
# b! d/ {0 R9 d5 M T1 ]: a - (setq laylist (tblsearch "LAYER" layname))
. g+ A- _% \4 m$ u8 |6 t - (setq color (cdr (assoc 62 laylist)))3 Q2 G' C& s, W6 n. M* ?8 a
- (if (minusp color). _+ q2 ]- H. j3 \& E
- (setq onoff ".")' j! R, h7 q; Y' \4 L$ V
- (setq onoff "On")
2 x7 e( b* j# e9 U6 z5 ? T8 M* e( ~/ o - )# J. H' R8 L6 f' P) G" l p
- (setq color (abs color))
, a9 O; D$ S1 V; i8 ?" l) | - (setq colname (colorname color))
* c+ u; S; d3 o8 H$ l) Q - (setq bit-70 (cdr (assoc 70 laylist)))1 R9 ^6 _6 \6 M1 H
- (if (= (logand bit-70 1) 1)
7 J _# ]5 f1 {# L* Q! X - (setq frozth "F" fchk laylist)
5 u+ ?/ N: `7 I; M1 w - (setq frozth ".")6 C1 d' S' B7 O# C7 m8 I
- )4 o3 Z: y% x. c. d- |5 r" A0 M8 y
- (if (= (logand bit-70 2) 2)
( N4 R4 q' K+ ^- L+ t - (setq vpn "N")
/ f. M2 }2 p. z4 I; n! {. |8 y - (setq vpn "."), L3 m' j- x3 R) s' T
- )4 T. E) X& D9 R9 a! I9 i
- (if (= (logand bit-70 4) 4). ^& Y; `) Q( j! u$ [$ |( o
- (setq lock "L")% \: U" D" Z6 t% T
- (setq lock ".")
/ ^ \; E% M; W! Q - )
8 X* \6 f2 e+ H* Z - (setq linetype (cdr (assoc 6 laylist)))& w& F* k* Z2 r4 {+ Q& C# _: E5 \
- (setq layname (substr layname 1 31))
- u: r8 M& o2 d R4 b0 n: x6 ~ - (if (= tilemode 0). z# L/ p2 g/ S& B
- (progn
7 J6 i) U. c l2 d6 c - (if (member (cons 1003 layname) vpldata)
- U1 k+ R' v1 D - (setq vpf "C")
3 Z$ U- Y) M6 B" Z% Z. @5 V - (setq vpf ".")' K5 M6 S6 `8 l% H- Y L- V. D
- )' {! k- M6 J" Z: D
- )# T' Q2 U7 t* Z7 R
- (setq vpf ".")
$ k t* {) `) L1 v# a- [ - ). j# Q3 g' w1 T4 [3 t
- (setq ltabstr (strcat layname "\t"5 r% i) x$ }* q! B4 T7 ~) X
- onoff "\t"2 x, n$ W) ^: @+ _+ ]4 v
- frozth "\t"
% O; Z/ G1 b6 E( h - lock "\t"2 `$ E$ H5 l1 s5 j4 h% k9 X
- vpf "\t"$ l: z8 y4 Y4 f" o: B. A
- vpn "\t"& O9 e% _4 `; o! B2 ^" X. _1 N f
- colname "\t"$ J7 U& [5 a' i1 T
- linetype
; M/ c$ K) | ?1 K' Y - )7 ~5 \7 M7 F3 M) v R( ?
- )) [9 Y( d5 u# a6 w
- (setq longlist (append longlist (list ltabstr)))
/ u" ?, }- i3 T' r' c - (setq sortlist (cdr sortlist))
9 h- s+ ~4 q( _9 \. U+ H$ i - (setq layname (car sortlist))4 s1 r& U9 p3 \; C: A2 {- K' J% E
- );while
5 ~& Q E3 t& h - (setq longlist (append longlist (list "")))) v+ \, g3 y$ B" S
- (set_tile "error" "")
, T; [4 W- j) R - )
+ N S& p% [6 Z! ]- o& B - ;;
4 n, C2 ]0 [- b T7 o, } - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
% e. G0 H, |/ }+ s+ Q - ;; linetype names read from the symbol table. Mdashlist is list consisting/ ]" L+ F* m7 y+ `9 ]
- ;; of lists which define the linetype pattern - numbers that indicate dots,
% R& g) s. C) j% s7 W5 ~) J - ;; dashes, and spaces taken from group code 49. The list corresponds to the
* @3 u- I4 w0 I# b/ ^ - ;; order of names in ltnmlst.* N+ P' F2 _8 t9 x! q
- ;;
7 Y2 h2 w9 S! o - (defun makeltlists (/ ltlist ltname)! f7 a. z! s/ \+ i. k
- (setq mdashlist nil)9 i2 _8 ?- ~! Z- F# n |' \1 o3 v
- (setq ltlist (tblnext "LTYPE" T))+ l( q- O( c( H; A$ d& p) n4 d c
- (setq ltname (cdr (assoc 2 ltlist)))5 ~2 b( N2 ^! O9 J
- (setq ltnmlst (list ltname))5 `9 i% Z. G5 d1 U! ]8 g: k
- (while (setq ltlist (tblnext "LTYPE")). ?& n2 x( P7 T/ O; ]
- (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))$ k8 K6 I- A/ T
- (progn ; Q) P* u( k% D6 T$ z, T
- (setq ltname (cdr (assoc 2 ltlist)))1 |- i G3 X% m# [+ k) F' s
- (setq ltnmlst (append ltnmlst (list ltname)))* J, p, J, Y. E% e6 ]. Q
- );progn1 u( U6 b% k3 u) r
- );if ) e$ O# A3 @# K M* G Z4 z/ T
- );while
5 B2 K. x8 \9 s8 z# J - (setq ltnmlst (acad_strlsort ltnmlst))
- U. e6 A6 W, V - (setq ltnmlst (append ltnmlst (list "")));add by rk
; u- o. W# Y g L& ]0 x - (foreach ltname ltnmlst: z. H- @, {0 `4 |
- (setq ltlist (tblsearch "LTYPE" ltname))
( `# t! f* n: F5 n - (if (= ltname "CONTINUOUS")
% ~9 F1 J8 P; {1 C7 `0 _ - (setq mdashlist (append mdashlist (list "CONT")))& y7 }! c0 ~. S7 v" Z) S
- (setq mdashlist1 i$ M5 I) a+ F7 P' P8 q) H
- (append mdashlist (list (add-mdash ltlist)))
$ t1 j& {* X4 k# v" O s - )
- O3 D; q) ~1 ?% m! J/ p. O$ n - )
. Q$ l+ z; R9 ]$ ~' m% f - )+ c1 Z, _9 S( B3 }+ Q
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))
0 |. y3 w( d2 p" _6 {- r% ^ - (setq mdashlist (cons nil mdashlist))* u' }5 D2 ?& Q
- (setq ltnmlst (cons "BYLAYER" ltnmlst))
! U9 h( n. I& r* ~ - (setq mdashlist (cons nil mdashlist))
' @0 L# v4 ?. U5 m - )
2 n. z7 z" E# e i7 b9 w; S - ;;& S+ b$ {6 S0 d8 r N( Q
- ;; Get all the group code 49 values for a linetype and put them in a list" C2 A. V% A$ a8 e. v% U
- ;; (pen-up, pen-down info)0 `. r* Z6 }) P- s2 x% A
- ;;, C, X7 s( z) Q
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize): ~$ I& c$ J1 Q" |1 ?6 f
- (setq dashlist nil)
8 y% e6 V+ d5 o - (while (setq assoclist (car ltlist1))/ k H, {% h: c9 X5 r
- (if (= (car assoclist) 49)
3 q: {9 r3 I% i6 ]' c- w0 m* P! ~ - (progn
4 A6 o) l R. V2 }9 O - (setq dashsize (cdr assoclist))
1 @0 G/ G* F% @/ @ - (setq dashlist (cons dashsize dashlist))- I4 _# D$ y* K
- )% {7 ]% V% p& }% V% ~
- )+ F; C. r) e3 h7 ?* n0 ]
- (setq ltlist1 (cdr ltlist1))
/ H3 Q& E( W. x+ A. K - )9 {4 \& P5 t2 ]- G+ N; F% E" {
- (setq dashlist (reverse dashlist))6 E' U6 c6 W8 C# O. @) G
- ); o$ ]5 C% ]+ W2 f8 g
- ;;
+ {/ m+ O2 g3 k% _ - ;; Color a tile, draw linetype, and draw a border around it
. f* R4 \' D) R/ S2 E+ O$ [ - ;;
: W0 d; E; {) _- M Y - (defun col_tile (tile color patlist / x y)2 j2 f, V/ g. E4 Y" z: Q) k& B) t
- (setq x (dimx_tile tile)), Z L! d& I6 z( I
- (setq y (dimy_tile tile))+ L- ]2 i+ V* Z/ d3 P( t
- (start_image tile)
. s% x- `8 q% s" _) u6 c1 f - (fill_image 0 0 x y color)9 t: @8 ?8 k" E8 p/ r; N/ ]2 ~; w
- (if (= color 7)9 Q" i `4 i+ E( I5 W3 e4 A8 v) x/ l3 P1 B
- (progn& f" W5 t5 a0 h8 L/ I& u- I' }
- (if patlist (drawpattern x (/ y 2) patlist 0))
, q( \2 P& C K$ f$ S - (tile_rect 0 0 x y 0)& W' w& _5 k( r+ K- o
- )" A% ?; M# l1 Q. n! f/ i
- (progn
& u8 N9 N* ]# _7 \ - (if patlist (drawpattern x (/ y 2) patlist 7))1 c- [; e- E: A/ v1 x
- (tile_rect 0 0 x y 7)2 i4 c6 m, j6 h; g3 F/ X
- )- v' J! |& ~8 R& f6 y
- )
7 r1 ^. X( @2 R% O% V) Z4 L) p - (end_image)
; l5 }1 [, T- {5 L J - ). ?+ [ [+ x9 q
- ;;
" U$ \, y; ?4 M( @9 \ - ;; Draw a border around a tile$ I2 l1 [ f5 R( C
- ;;
7 u1 O; d1 L t0 k: P3 l O - (defun tile_rect (x1 y1 x2 y2 color): u7 e5 q* Z3 m6 U m; C# p% e* Q
- (setq x2 (- x2 1))
0 ?$ c/ ^- ]8 U% b7 g' c - (setq y2 (- y2 1))* w O% {8 N: a; ?
- (vector_image x1 y1 x2 y1 color)6 G1 b* l5 ^* K1 D# R, [
- (vector_image x2 y1 x2 y2 color) R% e/ F5 l, n: Q! l
- (vector_image x2 y2 x1 y2 color); H, V J0 N# d& ~* o
- (vector_image x1 y2 x1 y1 color)' X, R% I' ^2 @# }; B
- )
. z, S! e2 c7 [0 t - ;;" \' k1 B' R" F; h- a# I1 {; S7 r
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image' m$ l& B: Y, c/ |5 F+ @
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
" S* V" P( n8 X3 K. _, @, d - ;; list of numbers that define the linetype, and color is the color of the$ |% G6 K% ?/ E/ W
- ;; tile.
: Y( \. f& u7 x) f9 \ - ;;
% B8 l; w1 d7 p0 c+ B - (defun drawpattern (boxlength y2 pattern color / x1 x2
( E4 w( Y! T& R+ a, | - patlist dash)3 O0 i- F$ B$ a2 N- D' I+ z
- (setq x1 0 x2 0)
6 {! k8 c7 J1 J, K$ Y# Y+ X - (setq patlist pattern)& o8 k2 X0 a6 \
- (setq fx 30). V0 g( S1 f) q! p2 P
- (if (= patlist "CONT")" {$ G9 I- \ F; i$ T
- (progn
2 A6 n) J& I. @2 B - (setq dash boxlength)
; E+ }* ]" M* R" y& T - (vi)$ L1 |! S& Z0 z. v, i# J k! @ l
- (setq x1 boxlength), r: r. k! z- B7 D% W! r
- )& C% [& t7 B% b. s4 z: b9 c
- (foreach dash patlist
( ^; k/ H$ e! \$ y# M - (if (> (abs dash) 2.5). C; c4 u+ ]( b: V4 }! Q; k
- (setq fx 2)
, L- G3 j3 X S7 Y. F4 D - )# G9 @ b" ]$ \, F8 j
- )
2 ` O4 K+ t8 ]. R - )
* x( ?: g1 D, Q6 N - (while (< x1 boxlength), R2 B% n6 |! W' c
- (if (setq dash (car patlist)), T4 ]/ X1 G$ {* \) o- t
- (progn
, c: ?( g) |" z% Y - (setq dash (fix (* fx dash)))* \; h: V: M: q8 Q4 a& j; K7 t# q) [
- (cond
. t+ p2 Q) Y3 U9 e5 c, e - ((= dash 0)
$ W r+ A8 H0 e/ X& U - (setq dash 1); ^6 x8 T4 G3 A% j- t1 q
- (vi)3 Z5 `# a3 N/ [0 E, {8 I* `- P! y
- )" ~$ `/ j8 i w7 l q5 F' y
- ((> dash 0)
* G. q% y0 ^) X9 M( c6 O7 e - (vi)3 W, j; X9 m1 j5 h0 e
- )5 Z6 C. ?) D* j( Y8 N
- (T& C0 x: M2 u4 o* A' t
- (if (< (abs dash) 2) (setq dash 2))% T4 Q1 U: E% L1 k4 O* z
- (setq x2 (+ x2 (abs dash)))
, D }& k3 I6 D% G4 f - )2 ~: ^5 S2 u- y' l3 ?, s
- )' O6 L0 A. R: s
- (setq patlist (cdr patlist))
$ ]: x" G% F6 Y8 D$ ^ - (setq x1 x2)
- d2 ^) u/ K& z0 @- C7 Q - )4 [* e, V# @3 k2 F5 i
- (setq patlist pattern)
4 [. }* g# n! U1 `0 Y - )
8 P' R% q5 A9 i) H - )3 E; L9 T+ S4 O9 t, F2 x9 e
- )
2 p4 j- `7 d8 V4 K - ;;9 D9 b: G. ~/ c0 J) N% c* H# C
- ;; Draw a dash or dot in image tile9 o- f( | ^$ d! D* O0 {$ l. p' D& g
- ;;
0 T7 z, a1 q, {/ k" H: i - (defun vi ()
& q, k5 z1 D, C. n9 H - (setq x2 (+ x2 dash))5 H) V/ f5 x4 L: j6 \: ?8 p+ E" }
- (vector_image x1 y2 x2 y2 color)8 g$ k& Q" `' W
- )
0 \' x3 k- K% _
9 K8 t. ?% ^) W9 Z2 J7 V1 z I- ;; This function takes a selection and returns a list of the color,0 P' @3 v9 R( { C9 X
- ;; linetype, layer, linetype scale, and thickness properties that
& F7 a3 ^, H3 K0 I! O5 n6 A: ] - ;; are common to every entities in the selection set - (color
, E# {% E0 X$ {3 l" s0 l' A: Q3 s - ;; linetype layer thickness). If all entities do not share the same+ C6 d) E* S3 w( V. f
- ;; property value it returns "Varies" in place of the property
B5 X) I, i' M0 v8 u* g% q9 O/ r - ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0)2 ~9 l. U$ i! a, ` a0 L
- ;; The last item in the return list is an integer flag for the
8 i# M" R1 M }2 Y) A0 o# [) A - ;; homegenity of the selection-set object types.
, L8 q) E8 G4 {" z, f5 O - ;; 1 = All polylines
. D8 w/ s$ `( G2 v - ;; 2 = All text or mtext or attdef, or a combination of the three
" W7 S0 \: s. L- U - ;; -1 = Any other mix of objects" G- z" B. E6 Q* Z, r( L4 z1 _
* a% C3 o; g* V$ z% r/ T( ]% t! T- (defun getprops (selset / sslen elist color ltype layer ltscale thickness; `5 _/ z, ~5 U6 G$ d9 N; B
- width elevation height go ctr & i, Z" k; f3 }* e7 W7 Z1 K
- eflag
: Y. z3 I" U( h Z - etype temp c5 V N( V- @7 M$ D, G
- txt_ss ;;;;rk 11:24 AM 1/30/97/ B. O8 R- y* C: B' F$ e
- tmp # k1 r8 M. R4 C' }8 G& h3 d
- poly_ss ' `8 `& v" c( w3 \$ T" F
- style
! E5 ?" K7 P0 [4 x - )6 Z, B% i* J1 }
- 0 j* w' Q# ~# g
- ' P! R* u7 y) Y) T( b! g8 ~
- (setq sslen (sslength selset)# s! a) h) x! o& r. |+ K
- elist (entget (ssname selset 0))9 n* k9 M2 k J# r y
- etype (strcase (cdr (assoc 0 elist)))
5 |) h1 ]' p M4 f* y - color (cdr (assoc 62 elist)). K$ \$ \5 X6 C o
- ltype (cdr (assoc 6 elist))0 i0 k V* }5 `' z9 a) O
- layer (cdr (assoc 8 elist))& d A: {) {7 K
- thickness (cdr (assoc 39 elist))
, S4 j$ \+ R$ S) b% x1 y - ltscale (cdr (assoc 48 elist))$ h: u& F* ?* j) { `& c: r% @
- );setq/ e Y+ @7 X& Y# Z
/ ?2 H4 f6 @9 E8 X, p- H& J- (if (not color) (setq color 256))/ S4 k! c7 }; s" I+ {
- (if (not ltype) (setq ltype "BYLAYER")) I* w; X6 v+ E: V2 q
- (if (not thickness) (setq thickness 0))
3 x8 \9 G9 m" B) F- M! P - (if (not ltscale) (setq ltscale 1))
5 K' ~1 K4 N# I
[! Q7 z/ `+ o* L. V! Q- (if (not width) (setq width ""))
+ r) R4 L" N c: A+ Y - (if (not elevation) (setq elevation "")). A; J) E- v' m3 k0 u( M
- (if (not height) (setq height ""))0 g" C( W5 Y* M4 I# L
- * K( \7 V, v ^& c& j5 [( g
- (setq go T . \4 ?" q' h% h( F
- chk-col T
$ f ?7 N. o, G4 y3 W - chk-lt T
. F) S1 u2 M; b/ ~( n - chk-lay T ( ?6 @' H4 K t0 D! o% l
- chk-lts T , v5 e. |0 |. F6 V% |
- chk-th T 5 M5 Z- s, R( p4 t1 r$ a
- ctr 0
$ v% g y6 O+ n, ]) r, y - );setq
" j/ ?; Q8 z* g' B: u {& e2 d - 7 R+ S+ ~9 l3 z
- ;; Page through the selection set. When a property" Q+ L& l9 b% d- w8 P X
- ;; does not match, stop checking for that property.
8 }! W5 D( P+ O+ e1 T - ;; When the selection set is not homogenous, stop checking.+ R: n3 T) j. B$ j1 T* l. t$ o
- ;; If all properties vary and the set is not a type 1
' h1 o |* C5 j7 d/ R) L - ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging.& C/ m& o' q, l! t! B# e
- % _- s) y/ r" k' I" e2 s* w/ m m" V
- ;Lets set the eflag so we know if the selection set includes any 3 s$ c1 }4 m, [% W9 E( X3 D
- ;combination of polylines, lwpolylines, text, mtext or attdefs.
* z$ U$ A% ?; r2 }$ y - / ^9 [9 J; s$ V: [/ h
- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/97
, }) y) ~, _, ?7 X - (setq eflag 0)
2 T' a. s7 Z' z* ~, B - (if (setq poly_ss
+ i( \' z' v5 W- e - (ssget "P" (list '(0 . "*POLYLINE")
: n5 c& s: _3 a - '(-4 . "<AND") , S0 S. }& p% ]4 n/ {. B
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>"). t4 m5 C! h( l) j& Z" j
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")! J( y1 a$ v R$ A/ x
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>") G, K3 w9 ?/ ~- R2 G, s% L
- '(-4 . "AND>")
' O! ~. b1 _4 h* g - );list2 ]$ o1 Y9 b5 c3 s! t
- );ssget get 2d polylines (legacy and lw): k" |0 g6 \/ x" S; `
- );setq
5 h1 u/ u j O* a i( Z) {% ~4 w - (progn- y8 G, J7 s6 `
- (setq eflag (+ eflag 1))
3 i% b! J* }/ [ - / M$ N5 } Q$ N& i2 v: \
- (setq tmp (entget (ssname poly_ss 0)));setq
9 f5 \. N, h; \. e& f
; Y, K( b% P4 n6 W# i- (if (equal "POLYLINE" (cdr (assoc 0 tmp)))7 m: P+ i2 d% D; [
- (setq elevation (last (cdr (assoc 10 tmp))))- i- S- f* W% l+ M$ u4 K
- (setq elevation (cdr (assoc 38 tmp)))# J7 Y8 K2 J$ p2 H, g1 c
- );if
. L, n1 {+ q# o- e4 B$ f5 d; g/ q - (if (not elevation)
! n8 F$ W9 M- Z7 }4 S( e - (setq elevation 0.0);setq
/ l2 K" R1 u& L% C - );if
' P# m2 r; Q' g z" Y - 3 M5 E- t% C6 F
- (setq tmp (ssget "P"
3 w) s+ t7 F1 @: U3 c - (list ; J7 |8 b% T! Y+ _4 c$ A. @
- '(-4 . "<OR"). I n+ ^( W w3 H6 s, f
- '(-4 . "<AND")
1 s7 k3 l6 w) H. ^7 D$ d - '(0 . "LWPOLYLINE")1 |- M9 p1 p. _/ G/ U% G: \6 ], E
- (cons 38 elevation)
' A8 T1 e4 r8 k: F1 W) K - '(-4 . "AND>")* P8 G% G m1 |1 S! n! Z% ] i
- '(-4 . "<AND")
# u- g e. x3 Z - '(0 . "POLYLINE")( b6 G) D+ {8 I0 ?0 ]
- '(-4 . "*,*,=") 9 c" C" @- y/ w+ A' K" x
- (cons 10 (list 1.0 1.0 elevation))7 g; T3 O- H& a1 B$ X. b5 K
- '(-4 . "AND>")
3 Q h" n8 k7 J2 Y - '(-4 . "OR>")6 {; F1 p( G2 H; s2 ~3 D0 p7 m* E
- );list& a' P' w8 e2 V" g1 S& d
- );ssget+ d1 I" [/ G. ?& Q) j
- );setq
! ~8 b2 S! v* |. m* o2 ^5 `; O
" F* W: ]* h+ Z# g- (if (and tmp
! q; b7 _- [7 i% z1 a - (equal (sslength tmp) (sslength poly_ss))
/ _9 o3 @8 _5 I, R _ e - );and
0 i) s$ X: A) U - (setq elevation (ai_rtos elevation));setq) }0 y3 h2 P# S
- (setq elevation "")" }" y) y( ^( x S$ k
- );if5 \5 R& i$ W8 O" s! B
-
1 n8 D; }) s# o - (setq width (pl_width_getter poly_ss));setq
( s/ G) y* ~3 M4 m% Y. `4 L - . B7 n' B) p) O7 @& p$ P8 D6 E
- );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!0 M3 A6 X4 m/ ]
- );if
6 |0 ?. ~4 c# ] - (command "_.select" selset "")" S# x+ Q; E" i4 i( V. j* Z
-
8 @: w, L1 [- J* n - (if (setq txt_ss
" X% {( h2 D) v! i1 @ - (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT") 2 Z2 P' |& ~7 ]+ F8 U1 S
- (0 . "ATTDEF") (-4 . "OR>"))
0 h. w _8 E# d- C - )
) D. l% G8 [1 B2 b b1 W - );setq
V7 H( q7 ~; } \ - (progn
7 g, J0 c% B* @+ V1 n m - (setq eflag (+ eflag 2)); m2 o) D5 N/ ~% b. j) A
- (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))
! \# H, U$ D4 J; ^4 x3 Q3 R - tmp (ssget "P" (list (cons 40 height))) * q# h" p' b) Y3 W4 S
- );setq
9 R; @) {8 I. H g, D+ A - (if (and tmp) @6 o7 N) X- m4 n/ _( L( A4 ^7 f
- (equal (sslength txt_ss) (sslength tmp)) . V3 G% ^& V* C$ b' k3 ?5 B" v
- );and
4 w' p m4 y4 P$ R! H - (setq height (ai_rtos height));setq ;@rk need to translate from float
9 n6 L" f2 R0 F& ?9 ~ - ;to string and back again easily/ Z9 |% l6 Z( n6 `3 X9 z
- (setq height "");setq else the height varies
* }9 ?& B" J7 s. j - );if
: H' B, Q3 a# i; \; g - (command "_.select" txt_ss "") - w3 G* K) e7 X& B. o2 ]+ e
- (setq style (cdr (assoc 7 (entget (ssname txt_ss 0))))
- f7 {; E5 b7 d' K - tmp (ssget "P" (list (cons 7 style))) ( k5 Q7 O$ h2 B4 M! O1 o1 n
- );setq
: [/ ~0 @: k+ F! w - (if (not (and tmp
" U4 K6 C& u6 m, ], S8 Y5 z$ x - (equal (sslength txt_ss) (sslength tmp)) 6 P. Z0 K! ?% H
- );and
7 l! t9 ]$ f7 n# N - );not
+ F* k& @6 V" F X' g3 l5 A" i" w - (setq style "");setq then the style varies
7 V% G8 a# t/ b - );if
$ B% F5 ]; ?) ?& y7 _7 p - );progn the text type objects are in the selection set1 W. q7 I* P( @+ F: o7 l1 I
- );if) [) o& T/ J- G6 A7 i: T
- (command "_.select" selset ""), |9 q: z# z- _' X+ ]. f2 e
-
8 q+ z5 O: q' M4 b+ ^ - (while (and (> sslen ctr) ) e( ]9 |. p- @" m+ a* q% o
- go4 r7 J1 u1 k$ r- O* U% n
- );and
4 I- ~# E, f9 q1 f: c - (setq elist (entget (setq en (ssname selset ctr))))+ L2 v, y9 o* n4 f0 [5 `( g. d
- , m$ L: n1 y) Y U0 l5 c( i
- (if chk-col (match-col)); t( M* a! T5 P; h' P4 U8 v8 m; r
- (if chk-lt (match-lt)), N+ v; ]: U% P; R3 m, N" u
- (if chk-lay (match-lay))
# y5 G0 ?2 l, u3 z/ d' L$ Q4 @: r - (if chk-lts (match-lts))& d. S( n9 v, ~& x; @
- (if chk-th (match-th))( u2 z( V* P! k9 ~+ |. d `0 ~5 x8 i3 b
[, X j( B4 O: n$ ^- ;(if chk-etype (match-etype))
- D. ]+ u! l4 j. L# d4 w$ h
8 j" o8 ~/ w: k/ c- c- (setq ctr (1+ ctr))* v% \, E6 c/ i, O X
- (if (and (not chk-col)# Y0 d$ i/ J* t3 ^6 I
- (not chk-lt)
4 y' }9 E* W6 R$ L5 i$ i4 A: ` - (not chk-lay)/ h! ?: `7 ^: G& g* F& }7 e
- (not chk-lts)
) p: ^. G, E( x3 \+ h, _ - (not chk-th)
% Q( n7 H( Q `7 G - ;(not chk-etype)4 v- \' Z' @8 I6 K
- );and
) b0 U3 A; k/ }& w& [' ^7 { - (setq go nil) Q# U* a9 r; S: U
- );if
; B+ J5 g, q( S. Q& Q, w) k - );while- S1 A3 ~ D) A" g2 H: J) r" c
-
2 I" I! E. t) \% Q k5 J) C - (list color ltype layer thickness ltscale# z8 S, g4 N! v7 r
- width elevation height eflag
( y; x5 l' w/ i* c. E - style poly_ss txt_ss
$ D7 s' ~3 K0 N/ J - )0 w# r2 K9 G: X* N( q
- );defun getprops4 D& }3 a. U* O) i8 u& l! p- ~
; `& `5 b. a9 Q* B1 k- ; This is a speedy little routine to tell whether the polylines in G1 g$ O% G: _* a% H" V
- ;the selection set argument are of varying width or a constant value.
$ L: s& T& [/ o* n9 |2 U3 h$ h$ N - ;Looping through the vertex's has to be done for old polylines when
/ I( K1 Y2 S( [( _( \9 b - ;the polyline header has width values of 0.0. Basically, in this case, 0 e3 l3 R! X; v5 P
- ;information in the polyline entity header is abmiguous. Width values
# Y$ }$ t4 T& ` b0 R - ;of 0.0 in the header entity could mean the polyline has a constant / f! o- M7 O: E! I* H* K
- ;width of 0.0 or it could mean that the polyline has vertex's of varying
3 V, T3 e2 U, A - ;width.4 O$ n. A* p; t/ }
- ;7 D0 M& Z& f# p8 {6 ]0 a# H
- ; It's all in wrist. Err a.., I mean it's all in the 'if'% T5 z9 c% g/ S( [7 D
- ;;/ F9 i1 D4 D5 ^# {+ D! F
- (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)
) H* q5 f d7 q) o! H7 h1 W - 9 n" t/ _5 \' M, V6 q
- (if ss * M2 Y; G3 Q, _5 P: P, i
- (command "_.select" ss "")! |/ r+ Z3 A& M5 Z) k
- );if
: i3 N7 G, E6 X( t. U" A$ }: P v8 E - (setq width """ ]1 g4 w8 ]. E( a6 _
- flag nil2 D; m! p7 I/ M8 A' d
- flag2 nil
5 b; a) n; ]8 z1 P: e. G, n" i - );setq
# c8 T: }6 G% \2 g/ m - (if (not & z1 F& W' U2 ?. W0 H/ O
- (and ss
8 w9 A% _. f: B0 j' T; e - (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq5 N7 O( h0 W4 O
- (setq na (ssname ss2 0)( Y+ K3 J4 B! M8 p, f
- width (cdr (assoc 43 (entget na)))
* ]: a! U, ?2 i) s Q; f" z - );setq' P! u2 I9 } s4 \
- (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")
) g% x7 Q6 V" w - (cons 43 width)
8 \5 i- r' e2 D3 q1 g( E - );list6 v7 E7 \+ T6 D
- );ssget
6 U! `. W2 y: }! L- _7 k* a - );setq
5 }# u' i4 h# j+ ? - (setq flag T)
& r9 {# k; ?; V5 |+ |( K - (equal (sslength ss2) (sslength ss3))
/ u$ f, c L1 x3 _+ R, k4 e - );and! A% ^3 ^3 Y0 {* x n
- );not
* c) e0 ?) L. w4 F - (progn2 t$ p4 p! B- f1 C. |8 l
- (if flag% @& x0 |$ @/ ^! @$ }, @
- (setq width nil)
, F, x' h8 P3 f! v' o+ Q - );if
5 e/ `9 }4 q. z3 { - );progn
1 \7 _, z+ R$ z: ^# W! }2 K - );if ' E4 Z7 b7 y( I2 d
- 2 u! r1 R$ b/ T
- (if (not 2 C3 O' e- k7 d3 I5 a1 g
- (and ( I3 K% s* q" y) j: s, q- H$ m3 p; f
- ss, m1 W+ d! q8 ~$ F* V# V
- (progn (command "_.select" ss "") 9 F. f2 @3 c+ H6 k9 ]
- (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq
; d/ _6 {! S8 C0 h N5 B5 B/ w! P - ) 5 c/ r) k$ }: d; v/ W+ {% N
- (setq na (ssname ss2 0)
9 S! v0 Q$ K4 f, o) J# h - e1 (entget na)
# Q6 W2 s# M* s& p5 j Y$ y5 L! b - width_a (cdr (assoc 40 e1))
2 Q( q( y3 V; V1 l - width_b (cdr (assoc 41 e1))9 K3 q4 ?" ?% }- G5 t1 P
- );setq
4 E3 E2 g6 O, S/ Z - (equal width_a width_b)- A. P8 I. g$ T) ?
- (setq ss3 (ssget "p" (list '(0 . "POLYLINE")
5 _& b8 {' d6 |- I$ Q/ | - (cons 40 width_a)
& [) F) \6 C* s* _- S3 y$ T, o$ N - (cons 41 width_b)
4 S8 S: z% z# q% X& ]! B3 L - );list
( y/ ~ S; v2 ?- t- P - );ssget, E( C6 f: F1 E' F/ u+ x: ?
- );setq$ a9 `2 h/ a* C( i7 S% B8 ]
- (setq flag2 T)
: g6 M7 m3 g: @! ]8 m - (equal (sslength ss2) (sslength ss3))8 i \! }' T, f6 j! H0 v! a$ z% A
- );and
. J/ z; \2 N( O: E9 ]. N q - );not
- M+ B) U, T# m9 J/ W- q" E2 l' S - (progn! e7 F9 w6 A) \
- (if flag2; O3 e* F/ N) ?$ m; ^, |: K
- (setq width nil);setq0 `/ Z8 ~ i$ I% V& z9 u" F( ]
- );if K9 n9 w- j2 K% ?5 I- M. y
- );progn then( ?( b7 U& }2 y; D; w% ^( L
- (progn( O' z K" ^; {' `
- (if (or (equal width "")) K* H, C$ G, |1 H0 H# h% ?, \& ?
- (not flag)
7 @# ~. z9 X" C' ?# o. n& u - );or& G' L( V* ?9 M% g$ z( z `0 W
- (setq width width_a)$ v: g! d) ?3 }- b: N" ~' x
- (progn
8 N* `; o9 G# n9 f0 E/ J1 C2 e - (if (not (equal width width_a))
_7 |% Y) N5 r% u/ [* \0 D - (setq width "")
6 q6 R' O: y8 Y4 T - );if 4 x' L. M, y% z& |
- );progn
* j ?" P1 X3 u( G c% ?- e - );if
: @( I" G$ y Q9 O! q; ^) a - );progn
8 f6 _! Q( P0 N( C2 h - );if
- r0 e, i4 [- T( l9 _$ v+ }" T -
) Q0 ^# ~) P# N/ i
$ I0 h0 j, i& U( r9 w' d4 J- ;now for the special handling for old polylines
" |4 {. ~$ K, z1 i - (if (and width - c' T8 R" w) F# W O' v/ X8 Y$ Z
- (equal width 0.0)4 ^7 ?% f+ N/ e3 X
- flag2
) r8 m- G7 u/ B: G7 K6 [ - );and 0 q+ T3 B' B3 f( `
- (progn2 B& {; o3 w, [* C- O4 F) X
-
$ S8 W# @3 n: V, q9 @, Y4 a - (setq n 0);setq
0 E0 I* G, I2 k0 g z - (while (and (equal width 0.0)
+ ^1 r9 R7 E4 [' L6 }) x - (< n (sslength ss3))
3 C! P" {) ]# v& Z* c - );and
# `. a# P" v( R$ J( a8 ? - (setq flag nil
/ F* m' N, b2 J% e3 Z8 j; ] - na (ssname ss3 n)
/ ^) `& `7 X% Z) ^ - na (entnext na)! T2 h( E. X. G+ H
- e1 (entget na)
7 f4 t8 P" j9 C! X8 O% a- b - );setq5 o0 z4 \) x* w* c
- (while (not flag)
& `0 T8 q1 D- r, B @! m$ D; g - (if (or (equal (cdr (assoc 0 e1)) "SEQEND")
) `4 E. j( ^# M - (not (equal (cdr (assoc 40 e1)) 0.0)), g w5 X+ B( d4 [8 P- e0 v
- (not (equal (cdr (assoc 41 e1)) 0.0))
2 K0 q1 v( d# r( _ - );or# m- ^9 T; Q3 C) l% h
- (progn
0 X/ [7 ^. ?4 g# L" s4 G- N, ]5 T- x/ P - (setq flag T);' R. V' N# {# b. @
- (if (not (equal (cdr (assoc 0 e1)) "SEQEND"))/ D6 O7 `1 H, g. x- |! m
- (setq width nil) ' j6 o3 a+ _: N/ P3 m9 X
- );if6 S8 b+ j, K, }1 B# m
- );progn then jump out of the loop
& a2 v' e& V. C0 _ - (setq na (entnext na)* B1 V r; N. _1 Q% z* o T% C
- e1 (entget na)
1 f P2 O: W: n5 j2 q - );setq
( ^ J G9 a6 K" R - );if
$ L5 ]) Z* m) O m' M - );while5 h6 V9 L7 n2 V P
- (setq n (+ n 1));setq ! G R, w8 y$ H0 M9 d0 N; Q# R
- );while $ C" S: z l, ~9 i7 G' x- U$ [ ~
- 0 {3 C4 Z% r2 s s% x& P
- );progn then it's a legacy
4 W( T% d! A2 H$ [* ^0 r - );if ;legacy polylines that may have varying widths 7 J& |% t; b) \( Q
/ S* b6 I5 T2 q+ \+ K( O& O/ A' K- (if (not width)
5 {2 m. ~) }& T' j7 O3 B1 O - (setq width "");setq
9 o! z9 ?* `5 V8 O3 p/ [ - );if6 F, H" T5 N8 {2 e- t! a$ E! Y
- (if (not (equal 'STR (type width)))8 o/ Z2 J- J6 c W2 x
- (setq width (ai_rtos width));setq
9 J- t- ~, y7 P - );if
! o, _1 k% [9 E - 8 o4 S, V1 O% {- `% f
- width 7 \8 d K/ K4 ^+ T; V/ `7 S n/ T
- );defun pl_width_getter
4 {2 X( J3 x$ X0 p" t2 E! N
1 J/ ~* v" m$ `- , a: C' b6 U2 k/ r4 t3 r6 ?
- (defun match-col (/ ncolor)" }( }: X6 o6 \0 W+ `9 ^
- (setq ncolor (cdr (assoc 62 elist))) T# U4 B" S5 Z. \* r
- (if (not ncolor) (setq ncolor 256))
' z+ q% ~+ Q* L. Y8 q; N! g - (if (/= color ncolor)
Q4 z5 R! e/ J; \; r - (progn3 j# t' f P0 n, D
- (setq chk-col nil)% ~ {1 ]. ]- ?) _
- (setq color nil)
% U, X3 B" A* T& w0 J ~ - )& _9 u, k- E2 x
- ). `. O1 u9 m# ~! }3 r( e: C
- )1 V! `' \# O6 L) v
[; F- Z+ @: @+ r% [2 q- (defun match-lt (/ nltype)
7 a6 B; ^: G4 r- q" e3 R - (setq nltype (cdr (assoc 6 elist)))
+ d6 P: h/ E3 s - (if (not nltype) (setq nltype "BYLAYER"))
$ u- s* R, {5 p( ? - (if (/= ltype nltype), M/ m7 U8 R! D* C
- (progn; _8 Y3 C1 Y+ J: i. n
- (setq chk-lt nil)
# B7 I6 u% p3 U I. c - (setq ltype ;|MSG0|;"Varies")/ ]; O' g0 w+ B) K
- )
2 p* Z M: q j# l0 O - )
# T G7 }& S% x1 U# P - )
% |; m' Z( K8 B- `% @0 z- i - - u" C2 I$ ]' f8 e* b g! F/ v+ h% c
- (defun match-lay (/ nlayer)0 s' |: y4 K. j, ~' {: s" G9 @8 s
- (setq nlayer (cdr (assoc 8 elist)))
7 g+ @0 M" `' L6 t7 v, n+ k - (if (/= layer nlayer)
% {) G4 e) n, g: F - (progn
, r, R! m$ P4 e - (setq chk-lay nil)
" y+ t* m; {. O' ? - (setq layer ;|MSG0|;"Varies")
: N' G" e& F! I8 a% b7 U - )
, C& P. m2 i% I8 ]# s: s - )' }$ m+ V5 N* X! j. |" p8 F7 g$ Q
- )
8 I8 F/ g9 c8 m& m+ w
6 U1 F7 E& Y' }! Z. L( W- (defun match-th (/ nthickness)
5 J# ^+ Q, b, Y - (setq nthickness (cdr (assoc 39 elist)))
$ S* ~: i! B: w4 a - (if (not nthickness) (setq nthickness 0))
& [- l5 U% Q* A5 ]1 o2 O- w9 t - (if (/= thickness nthickness): a; l. C# e. M, V
- (progn- [3 E+ I) u+ c. \& X8 s2 u
- (setq chk-th nil)
+ ^7 M" d& ^1 j9 d1 c5 W/ N4 K - (setq thickness ;|MSG0|;"Varies")! X- H/ c& x0 Y' @( `
- )+ R' A; ^8 G5 R/ E! K4 ~) v
- )
" T" x; |- K5 s& J9 j* T - )( H6 A& r" E: p+ S( }
- + e- u/ f- V& P% i4 |: B
- (defun match-lts (/ nltscale)
: a4 ?3 f$ }4 v" R2 m8 ?1 u5 [ - (setq nltscale (cdr (assoc 48 elist)))2 W1 x; _+ g0 `8 N
- (if (not nltscale) (setq nltscale 1))5 f. u m4 F/ q4 R
- (if (/= ltscale nltscale)9 y1 ~4 W) L( q v* [4 P* r4 J, f( o
- (progn
, P2 z* R0 Q' M/ F, @2 v: Q9 g+ I4 Y - (setq chk-lts nil)5 ~# e$ F1 S$ u/ a9 G: F
- (setq ltscale ;|MSG0|;"Varies")1 s$ E, n% A+ w I& n4 d7 s4 V
- )
* ~ R# C! U: @- s - ) I+ x: n5 s ^- J' e7 l" @: i5 N. r
- )
2 _ P" ^9 |2 j* n( t" [% H* r - . Z9 t1 A$ Z6 o
- ;;. F2 ~) E" C* j0 {- h6 s
- ;; If an item is a member of the list, then return its index number, else
) J3 q* l: L3 h' ]3 O" A' w' o - ;; return nil.
/ A8 Z2 l* L/ J6 F$ n - ;;
# G4 t7 G0 y8 U( |2 i5 D* |$ ? ?' O - (defun getindex (item itemlist / m n)5 j5 M: u. K2 U. s0 T7 h! D3 K
- (setq n (length itemlist))# F& h6 S1 [8 h' N, \& G
- (if (> (setq m (length (member item itemlist))) 0)# {. g9 M) _9 D, ]( n
- (- n m)
2 U& |9 q( _ m( R! q g* l - nil
+ H' P8 v9 W9 g) U) [ - )+ g2 ~3 D$ S1 n. ^; @2 t" z, L
- )4 Z) J7 N" x6 F
- ;;2 l' v" M9 I) g/ k0 I; {
- ;; This function is called if the linetype is set "BYLAYER". It finds the, m! s; C2 n/ T) t" R
- ;; ltype of the layer so it can be displayed beside the linetype button.: p2 I8 z) |7 v( ~$ H; P: ^0 C
- ;;
" C: K g1 v/ [7 p& O - (defun bylayer_lt (/ layname layinfo ltype). n3 x9 d$ O- x6 }
- (if lay-idx
+ i4 n& n5 J+ [ U) I* K# h5 x - (progn
1 O1 d: J7 e7 ?4 p( c' o - (setq layname (nth lay-idx laynmlst))) u4 W9 s' r0 }1 J; O( B$ ~
- (setq layinfo (tblsearch "layer" layname))' x% |. ]8 W, u# N
- (setq ltype (cdr (assoc 6 layinfo))) @. u' t5 O. E9 c3 n% `( p3 z
- (strcat "BYLAYER" " (" ltype ")")2 d, A9 v. r! }9 i7 R& a
- )# U) n) @+ z, R% S4 T1 l4 M
- "BYLAYER"' Q9 j- y* E7 b5 j) I7 f8 |+ E
- )- E2 J1 o# Q9 ]# C0 f4 z
- )
2 e8 A( Z* ?9 l, s F# h - ;;
z. T J6 l, u. \" j - ;; This function is called if the color is set "BYLAYER". It finds the+ ^0 c; L0 U8 ]" |+ z2 f
- ;; color of the layer so it can be displayed beside the color button.8 M1 c9 u! a- u* l- }1 b" U
- ;;
, B7 e# w% }; u: w( r: t - (defun bylayer_col (/ layname layinfo color)
5 ]; U/ `: M3 f) j$ r, r% S - (if lay-idx
! S+ q9 q6 r1 \3 r. b# n - (progn
; n3 r" x8 [. u% { - (setq layname (nth lay-idx laynmlst))
5 ?8 n9 k1 S" _* T, C/ k, F0 \ - (setq layinfo (tblsearch "layer" layname))
3 }/ K% W5 f i' t - (setq color (abs (cdr (assoc 62 layinfo))))
* u( U3 A# E( j - (setq cn color)% I3 k, ?6 O$ k8 @" T5 s8 n" L
- (strcat "BYLAYER" " (" (colorname color) ")")8 `1 M$ ]4 @) O7 @
- )
. S- K- C0 K1 ^( c - (progn
2 m) `% m! }! k2 U5 T - (setq layname elayer)) n! b1 Q4 H6 e# @
- (if (and (/= elayer "")
`* {7 s9 N7 h2 k5 \% ^ - (/= elayer "Varies")* R" m9 p/ m& Q: j7 x
- );and8 h1 b# _; ^2 _0 D6 K: u" w7 l
- (progn0 T5 i- E+ d( U
- (setq layinfo (tblsearch "layer" elayer))/ c* d; s" M: k! M. E9 B
- (setq color (abs (cdr (assoc 62 layinfo))))1 @2 L1 M' ^0 j' X- z
- (setq cn color)
, H) l( \3 L5 }6 x: A - (strcat "BYLAYER" " (" (colorname color) ")")3 p) D1 {# Q2 Q
- )
, |+ _$ Q: P% W - (progn
! W1 Q" U- M2 b# A& O8 J5 s - (setq cn 0)6 ]" _) K# c5 v. t( c- K
- "BYLAYER"
7 Q; [4 z' r: G+ e! b - )+ }( A' C4 l5 m3 u
- );if
9 G1 c" J f- z4 ]6 o - );progn
3 c5 T# X* J" B- @# E6 E6 O' Q - );if, f/ V0 K( A, d1 Q
- )
x0 g8 Q2 [8 A( Y3 E - ;;
G" _5 ~9 y3 P8 r2 L - ;; If there is no error message, then close the dialogue
" ~% j# m8 S0 g* s# \+ G U+ s - ;;
; G) C `3 ?2 q9 c: L) e - ;; If there is an error message, then set focus to the tile( }4 z& h* z6 T X. f. E
- ;; that's associated with the error message.
0 k0 H6 E: y1 ^' i - ;;
6 S% u* M+ Z) b8 T* ~ - (defun test-ok ( / errtile)
' o: k1 ~ f3 b! p! r% s( I - (setq errtile (get_tile "error"))( n: r) B' `) o: |
- (cond* ]( Q# v6 j) e
- ( (= errtile "")1 g9 M7 J& k9 \! v/ A
- (done_dialog 1))
* U" _; ^; B/ x! p% }( C+ j% Y" {- n - ( (= errtile "Invalid thickness.") R5 e3 F* @- U1 P6 w
- (mode_tile "eb_thickness" 2)), L2 n2 a& {9 }/ ?: n$ q# ]- G9 x
- )
$ h% u+ X5 F8 Z9 L( ~# X - )
: I, F* j) j) Y& F6 {8 V - ;;
& i3 U5 _+ D3 H' a" L - ;; OK in main dialogue.
4 e. q6 i& X8 R) b1 _ - ;;; Y+ e. z, D" i: M8 f, |7 d
- (defun test-main-ok ( / flag)0 z% w' d/ W; U' m( J6 v
- (setq flag T) 1 i% U$ l6 R! F5 D' S8 ^) x2 x
- (if (not (or (distof (get_tile "eb_thickness"))% S' j( |% x* s9 J
- (= "" (get_tile "eb_thickness"))5 y3 E Q! t, L6 h+ @3 J
- );or% y1 M7 m7 x4 { O8 ^% U
- );not
6 a& g" g6 Y8 s/ X" e d - (progn! L. l1 U/ X. W4 { {9 r
- (set_tile "error" "Invalid thickness."). ?5 _5 b" }3 `! y6 ]. k
- (mode_tile "eb_thickness" 2)/ H C- o& k! O: b0 z( w! v9 J
- (setq flag nil);setq$ z& b2 F; Z$ g0 [* M
- );progn
) \+ ~; I" B& Z6 P1 x - );if
7 T( @$ ^# h5 Z% f+ g - (if (and flag
, }( E& L' W/ f3 N6 ] - (not (or (< 0 (distof (get_tile "eb_ltscale")))
/ |1 n6 t! ?/ h8 S' U1 D. o - (= "" (get_tile "eb_ltscale")); ~8 s' o6 p5 M8 I" v
- );or $ r6 w+ D9 i! u# {# @+ `
- );not
6 M1 v: y3 _; Y - );and
5 ?- m4 m' s) X" r, b5 r - (progn4 r! p& x, s" {7 F( N! J' L
- (set_tile "error" "Invalid ltscale.")
9 [& V! l( p6 x- r) u3 M - (mode_tile "eb_ltscale" 2)* }) r1 Q: q! g2 n' B) V. n
- (setq flag nil);
6 H u- X: ?* g; X! `: q* a+ K9 w5 W% c - );progn then
1 A0 M0 U. [7 c5 N - );if
! y. D6 l- p/ L+ D& e. g - (if (and flag$ w7 \5 X* ?9 V \) H3 N
- ; Don't test the tile's value unless it's enabled.9 S, G# j* H- r7 X
- ; We're not set up for the display-only value
G4 q$ V( r& c7 k. E - ; of "" here in the error handler.
$ j- N$ ~" z" @$ W - (= 2 (logand 2 eflag))3 }" K9 W6 r6 h8 S
- (not (or (< 0 (distof (get_tile "text_hgt")))
' H; A' V. p' N5 [ H - (= "" (get_tile "text_hgt"))/ h/ p) C7 c3 W6 ?8 z$ _
- );or" y7 S& x! Y' V' F! I
- );not3 d$ N5 Y: h! s2 u& Z- ]7 ?
- );and
) E" C5 E* r( u: Y - (progn7 r9 R# C3 R* [- a+ Q" M; g
- (set_tile "error" "Invalid height.")
4 F4 K/ F/ l+ w - (mode_tile "text_hgt" 2)
' I" v+ J+ h( R4 I# r - (setq flag nil);* ?& M8 S6 t% W/ s8 f; K
- );progn then
$ o* b; w- T2 r - );if
9 @0 ?( K0 e0 A5 ]! I - (if (and flag
1 W* [- m- ^5 ~7 s9 V5 u! F - (= 1 (logand 1 eflag))( V. W( n7 [0 N+ e7 g
- (not (or (<= 0 (distof (get_tile "poly_wid")))6 D% U4 |1 o2 Q
- (= "" (get_tile "poly_wid"))
$ _2 r% Z8 e" e _6 H7 I - );or
. V+ j7 k5 r1 H/ ?4 }& F; W - );not
' B% s( l5 |- u9 S - );and) S/ h# o* f, J k
- (progn( t4 P4 M! W, ?
- (set_tile "error" "Invalid width.")
7 ~$ P5 d7 J. {4 I0 p) o - (mode_tile "poly_wid" 2)
1 A# P. s& u4 c7 V* O: c6 u - (setq flag nil)3 }1 f* r* p4 e+ h- B4 n5 V* V# w T; t
- );progn then
! x/ }0 J7 _/ F3 W - );if ( V [! @3 |$ m# F! `9 b
- (if (and flag
2 ~" m: W! p+ J2 m, D, r- c0 V - (= 1 (logand 1 eflag))
4 G& n* n* ?6 x" m0 C: S U# R- T - (not (or (distof (get_tile "poly_elev"))2 A% M1 h4 I. s* K* _" ]# R
- (= "" (get_tile "poly_elev"))
7 }0 _! @. R2 m: e( D6 ^3 i# k - );or4 V& o2 P# |3 N9 w% D
- );not
1 M: G! e1 f) K y - );and
9 t. K6 x1 _' T V. \- U: c - (progn# C( U4 G" }5 P# P) @3 v
- (set_tile "error" "Invalid elevation.")( V4 q4 m) f: s; K: t* f6 @& b( I0 d
- (mode_tile "poly_elev" 2)
$ o5 p2 X8 m( ^) l$ ~ - (setq flag nil)! a1 b/ ?) w& x) k: ` e
- );progn then
( ^+ o/ E, a" m0 I$ _7 r9 D6 p - );if . K9 m' u0 ^3 R7 a
- (if flag 0 b/ `+ G) \* i1 b6 n% F; ~
- (done_dialog 1)
+ i# Z- k0 d7 I# z' y - );if
" W# x2 i% b, K2 D9 [: t. ~ - );defun test-main-ok! X: y6 o9 L' R& K F6 ?
- # ?' ]! F* Z& h& o) e3 b
- ;;
0 `/ o3 o# ^' z% r. q - ;; A color function used by getlayer.4 n: E9 A" n7 k( P5 U+ j
- ;;- u ]; W$ I- Z! w7 v4 h
- (defun colorname (colnum)
$ w- i! T+ K5 g. {" H+ O* A, [# O - (setq cn (abs colnum))
9 U% @ b) g3 \0 i" r) ]( { - (cond ((= cn 1) "red")
8 I- R3 X- ?- F* J& B$ e - ((= cn 2) "yellow")
3 U+ u/ w8 j7 U: `' R - ((= cn 3) "green")# m4 D ^& j/ |9 x7 R+ b7 J( `
- ((= cn 4) "cyan")& D! D- o; k6 a6 h2 i
- ((= cn 5) "blue"): `' }' I+ Y6 C! w: B4 N
- ((= cn 6) "magenta")/ h' B N @) q9 V1 T! } L
- ((= cn 7) "white")# w/ j& j# |+ \8 T8 T
- (T (itoa cn))
* c0 t* z) o+ i5 u9 k5 v - )# k! c2 F2 j' P1 `" I; V
- );defun& ^: | S( H* O' a% r4 ]7 s/ ^
- 6 F; h1 ~) q: H- t
- ;;; Construct layer and ltype lists and initialize all! w/ V5 B% S l$ q9 `
- ;;; program variables:" O1 ]1 r* I8 A: |5 w! } Y# q( ?
; L4 U* e! ^, ^- ; (makelaylists) ; layer list - laynmlst( s1 y- ^1 x/ f3 U, p, O9 ?$ f1 Q
- # J( c/ ?/ N5 n' M+ p! r
3 q& A7 J& q+ F% g# ~- (makeltlists) ; linetype lists - ltnmlst, mdashlist
5 t B. R' q- P3 U7 z6 [ - 3 z) R# x4 X+ A: p
- ;; Find the property values of the selection set." b. N( ~; J" [! v% L `# {/ E0 Y
- ;; (getprops ss) returns a list of properties from0 y/ Y$ i% Y2 ]8 ^, i$ c) z
- ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).' ~' l/ T- t; g8 T; O/ z! Y
: u: g3 Z5 ~/ R6 b+ v- (setq proplist (getprops ss));@rk interesting things happen here
- J1 b- M& u! ^: u" z" k
) N6 c' _% P" X( ?- (setq* o/ Y7 g+ _! I0 y. [
- ecolor (car proplist)
& A+ z; L# J1 M - eltype (nth 1 proplist)9 s* p6 j; Z2 e' X
- elayer (nth 2 proplist)
1 g! o* Z3 w+ F, X - ethickness (nth 3 proplist)
) n) T% h9 J; Q' ` - eltscale (nth 4 proplist)
$ U) C* a1 \2 p2 I - ewidth (nth 5 proplist)& u6 J$ ]! A6 k$ [
- eelevation (nth 6 proplist)8 u, O* k) U) l9 J% Q# z
- eheight (nth 7 proplist)8 v6 N4 E! R/ ?% c
- ;etype (nth 8 proplist);commented out and replaced with the line below. RK.2 z' k8 E: S% i( v: ?2 x& r
- eflag (nth 8 proplist)' ]3 z% G5 K. O' K
- estyle (nth 9 proplist)& S; u1 E4 Z9 U- O0 @
- poly_ss (nth 10 proplist)
2 `! Z: X8 Y7 U h - txt_ss (nth 11 proplist) |, p+ V3 }9 J
- );setq
% ]% r8 [2 U9 j0 f0 U - : G! b5 G2 l; C
- ;; Find index of linetype, and layer lists
& e5 z, R- \- L; M- y' _ y2 K3 }5 ^ - (cond
3 K! i0 L$ v S% ^7 L - ((= eltype "Varies") (setq lt-idx nil))* B: p3 R2 K6 ~5 R* S9 ]
- ((= eltype "BYLAYER")
/ R j1 [) F3 T! N* N* V - (setq lt-idx (getindex "BYLAYER" ltnmlst)))4 [9 v6 ~& ~" r+ [( F4 S
- ((= eltype "BYBLOCK")
7 [* @4 o. }/ ]! ~8 s) K/ \5 V - (setq lt-idx (getindex "BYBLOCK" ltnmlst)))) @& ?: Z+ P1 E0 d& K
- (T (setq lt-idx (getindex eltype ltnmlst)))
( ^) w$ P4 T j - )
' ]' B7 e5 c# F" x4 k8 C - (if (= elayer "Varies")0 W e. O/ G0 x
- (setq lay-idx nil)
% a, U$ T2 U5 O - (setq lay-idx (getindex elayer laynmlst)); `; ^; {/ `/ U& z' v
- );if% q- R; c9 X/ W8 }1 D
- (if (= ethickness "")
2 H3 x- u n) C/ h4 K7 H* L8 Q - (setq ethickness nil)- u5 f( z/ L8 _- C5 w3 |
- );if
% n& }% y: [9 ?4 V - (if (= eltscale "")3 I6 ]+ i4 n" C+ X- D1 }& J' v
- (setq eltscale nil)$ |5 K5 {% \3 l" ]
- );if! l& q; Y5 ?' n; f
- 0 Q# `2 M+ x) S4 k2 i) c
- );defun ddchprop2_init ; end (ddchprop2_init)
; C. J9 I' N: |
" E+ x# S1 c* E( a6 u$ A5 s- ;;; (ddchprop2_select)9 X# X+ A% ?8 b) J3 N, X) ]$ ~ k
- ;;;% u- @+ \( Z. T9 P1 @! H9 v, W. s9 k
- ;;; Aquires selection set for DDCHPROP2, in one of three ways:
5 o4 ]1 L3 O5 h9 ]8 I; r- B* M: g - ;;;/ D; |0 v% |: J9 a0 J5 r, O0 O" ?, S
- ;;; 1 - Autoselected./ m9 {6 P9 K, ~1 v/ p
- ;;; 2 - Prompted for.9 x" f" K0 v/ h, J3 E2 F9 D+ f8 t
- ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )) K. Z/ ]" `8 q4 }$ u) R0 O/ {
- ;;;, H1 ^$ T6 F6 q9 c7 Q( x+ P. \; P a
- ;;; The (ddchprop2_select) function also sets the value of the
2 T5 Q' [$ g/ r, q/ n w" G - ;;; global symbol AI_SELTYPE to one of the above three values to( S* f$ K; N& O) c9 Q6 n/ F
- ;;; indicate the method thru which the entity was aquired./ Z# |/ ^: z0 Q+ g/ g* ~) I
5 v+ I0 k" h) ?8 R& b6 z, S- Q- 5 c, x' |3 J, _4 e
- (defun ddchprop2_select ( / )7 q8 G) N* G9 r* x; [" d1 P9 p
) Q- v+ _7 j5 D. C9 c-
* v- k( _/ M& c - ;returns only entities in ss that are in the current space. 3 C% j5 G7 M# V* U
- (defun ss_in_current_space ( ss / a cur_space ss2)7 d5 ~. G1 b+ `5 J6 b7 D4 K
- 1 K0 p8 u5 b4 E$ C; O' d- ~
- (if ss- t' p& m X+ G1 C. S
- (progn
& ?5 ]1 ^1 S0 M7 S6 u - (if (and (equal (getvar "tilemode") 0)9 Y9 U; Y4 v2 V
- (equal (getvar "cvport") 1)
, `. w1 ~: ]1 K" v# W8 F# c1 y2 y: O - );and 2 H5 E: r; [) x0 ]( _
- (setq cur_space 1);then paper space is where we are.: y& ]6 T) t2 T
- (setq cur_space 0);else model space.; r& a" U G: o0 I- t
- );if( i% \ n$ h* z/ d. y
- (command "_.select" ss "")
$ l( Z0 ]" s8 ~ - (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq
- I1 s" U _8 ~ - (cond ;;;;;tell the user what's going on.
+ }1 M9 o, p7 ~8 r9 k* E6 b+ ?, u# [ - ((not ss2) (princ "\nNo objects found in current space."))
. M# t: s! g3 |9 a' R; r7 ^( O& q' ] - ((not (equal (sslength ss) (sslength ss2)))
+ p L( h* s3 e: i+ \/ G5 v - (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2)))
' r+ c! r; R( D# F2 g1 z - " object(s) were not in current space."
1 {' V3 c, ~! I2 q3 Y: Y$ } - )" `' |! d" ? U, ~5 [) [/ }. {& i
- ), ]- E; y) ~% w9 H# Y8 m) E
- )
2 |* k) l2 }9 p$ a - );cond 3 F8 J- R* R4 }9 C7 X
- );progn then
4 y/ y3 g) W/ @3 ?% E7 n9 t - );if 8 F) J E. |' K3 g- r O7 U
- ss2. {; @. ^. M! w5 M" ^
- );defun ss_in_current_space- q( ?0 l9 F9 y: U* N
' l9 y6 k4 w F- o: R4 B, Z' {# n3 h
M! l+ h' A( e0 M9 |" f1 `- ;;;begin the work of ddchprop2_select
. }1 Q- {+ [/ P -
& w( k5 T* Y" w4 ~* U9 J; S - ;; temporarily restore original highlight setting.
" @, w+ k C. l; J0 }" Y0 h - (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))
$ d4 V0 R, _3 N' Q; Q% u0 R - (cond6 j) n1 r' a$ b8 f1 v2 y' ]
- ((and ss 8 s1 i7 N! D ?
- (eq (type ss) 'pickset)
4 A2 A0 Q! _# d' j - ) ; selection set passed to
# s/ i7 w( ~& [0 L+ `( f. j* w" n - (cond ; (ddchprop2) as argument
$ u# k" ?% @" D5 G( {. D7 o$ V% Z1 v - ((not (zerop (sslength ss))) ; If not empty, then
" {4 Q3 ~+ X) {/ ^( M" j# f - (setq ai_seltype 3) ; then return pickset.( p' A. f6 m$ t, o# d
- (ai_return ss)
- _4 l" E/ B4 O a7 U - )2 G5 @: I2 Q+ e9 b& k
- );cond close W: v- {, h& U: `
- );cond #1
; H$ b* q" V4 l$ c0 M+ } - ((setq ss (ai_aselect))) ; Use current selection+ J) k/ X$ L6 C; `
- ; set or prompt for objects
4 P H* \, `# H - (T (princ "\nNothing selected."), q/ e! i c% c* Y* k( k; X: J& q
- (ai_return nil). R1 w8 A! p% h+ f
- )
5 l' j' l5 B$ g) }, [& d - );cond close/ {: K0 N: x8 l5 q7 t
- (b_restore_sysvars); ~5 r, S( C2 j3 h8 v
7 ?+ u, Q% ?/ _8 P. S- ;(if ss7 x; q: W( s, U6 U
- ; (setq ss (ss_remove_locked ss)) & v6 d! E/ I F6 q
- ;);if& h3 \& A2 t- o% z& D. ~* b1 K
- (if ss
1 X% R' S, e1 W! @8 k/ _4 n0 r - (setq ss (ss_in_current_space ss))
6 G2 X9 R& T4 v - );if
% K" u8 Z) ~" |0 N
1 [, s) q- ^) k4 W5 l7 x# J- ss
, \! C4 m$ c- V0 W1 o - );defun ddchprop2_select
5 j) n4 f& k% i8 J" S/ u& ^5 r - ) I1 I# Z. `) M5 a
- + S' l# i$ k0 F+ A7 Y _# Q. w% W
- ;;; Define command function./ ^- J& @3 M1 G+ `# b9 l
- (defun C:CCH ()* e0 M( f/ ?9 ~# q
- (ddchprop2 nil)
4 X t! c) s8 }3 L - (princ)
5 l9 Y9 E+ q( f3 {7 h8 V4 a v, z7 D - );defun/ `& d2 O u/ d! }) V
- ; S, I: K0 N! x7 B6 h
- . s8 o$ G* s' p1 y T0 `7 _
- ;;; Main program function - callable as a subroutine.
/ o8 L6 v' _( A9 L$ t4 f - ;;;
4 @. r- B7 k4 e4 } - ;;; (ddchprop2 <pickset> )
& x8 v# f6 [5 |4 b - ;;;
, G& ^' h0 k$ `+ t" m+ R - ;;; <pickset> is the selection set of objects to be changed.
5 L) T# k1 p7 H3 s9 | - ;;;
3 m; y, e4 C& } p6 E6 q N - ;;; If <pickset> is nil, then the current selection set is
* I) Q3 r0 Q! X8 G4 i - ;;; aquired, if one exists. Otherwise, the user is prompted% {% H- Q1 K" X5 U, k) v }# I* e
- ;;; to select the objects to be changed.
7 f! W7 j( b8 F, }7 y$ _ - ;;;
5 i- L2 ?: ]/ R D7 q7 S - ;;; Before (ddchprop2) can be called as a subroutine, it must. x+ _& o0 {) W4 C3 P# _% m# @# R
- ;;; be loaded first. It is up to the calling application to
@! C% p1 s0 } - ;;; first determine this, and load it if necessary.
& z0 u* k- V- r$ ^* m - 8 p" s0 P0 q& j" ^& I. N
- (defun ddchprop2 (ss /
) X6 @* y- W# ]3 T9 U - 8 ]) d; `6 n& X K/ E
- a; u4 `: Q# Z2 j
- add-mdash5 k& f) n/ b" o! r+ e
- assoclist ]! A1 C. _ \) P
- bit-70
7 C5 Z- z. l% p( Z3 [/ C) }0 I" a - boxlength8 v# |8 x% q" F" f5 O4 i% [
- bylayer-lt9 S% L& a3 x" D! g- b$ S
- bylayer_col
' l; W) ]8 [& c: I/ A" l. R - bylayer_lt
2 Z+ y$ U& K/ s - call_chp2
6 s F. J0 t, P# x1 D5 v - chk-col' J. u! U. U. z: Z' B" W
- ;chk-etype ;var removed by rk + ^9 e& T; m6 Z' L6 m
- chk-lay
. q0 j/ n/ Q$ m1 e3 H5 B. x - chk-lt
. w" N; U& P) w - chk-lts ;var added by rk ( s+ `/ j+ T( g- [
- chk-th
! {; }( g9 l2 E7 e - cmd
# r" x4 u/ C5 t# C7 @9 Y# v - cmdecho& b9 \$ L/ h: h- R! L v
- cn- W9 n( o& t2 |4 l
- cnum0 [9 m3 g8 e: m" w
- col-idx
4 V! ~$ D6 y5 ~1 S7 T - col_def( y4 j u1 \6 Y
- col_tile
3 m" h" N1 Q- I; w - colname
6 z2 C$ g: C& l6 f/ v- I6 F2 K - colnum1 |) ` Z( I( q+ t% Z
- color3 ?0 c8 g2 n, D5 Y
- colorname8 ]$ X* Z: F3 r; V9 H& D& {' s
- cvpname
$ f* f" b7 s8 B% ?$ M. O2 i - dash# b& Q7 n. W% w# k, r, ?
- dashdata8 P' a r) V, T# r5 D% l! Y
- dashlist6 ]2 x. }* H y1 X* p0 V6 K( y6 X/ f: \
- dashsize
$ q1 S! x7 d" Y - dcl_id6 t* @2 N' |9 R" p7 t
- ddchprop-err
) h3 u: [$ [3 Q; B - drawpattern) X( Q5 |0 b9 F8 Z% b& k$ \
- ecolor
) e4 q2 k. g1 d2 u - eelevation
, ?1 J0 S# g3 W# N1 R - eflag
$ Y; O$ x# t. P9 g - eheight; m: B# N* @' R( y! J& I
- elayer" K; M" C1 [$ a
- elevation- l) l+ ]$ L# n
- elist. Y& U6 K* n- f' E. @% J8 q
- eltscale3 x' B" E3 `$ u8 y: ~0 Q. u
- eltype2 v/ S5 n% V7 v
- en
: X/ g" U. e Q$ a - ename
" a+ Z2 Y6 `) ]" E2 k/ Q9 n, c - ESTYLE ;var added by rk& @: S2 l9 k5 A+ c1 c H2 G' w( z
- ethickness+ B! }7 `8 V* k6 y$ c% H0 n
- ;etype ;var removed by rk2 d$ Q( [$ n7 ?9 v! |
- ewidth
% L. S. b$ r% p6 w" H( @ - fchk" t9 V/ \0 v( A0 x e& ?
- frozth
/ T) T" G) l) R/ `% F - fx
5 F; M1 Z8 |7 C% h" t - getcolor! T2 D q7 l. O. @, Y: y
- GETELEVATION ;function added by rk; t% N, L* X- _
- GETHEIGHT ;function added by rk+ ^8 m6 @) \! U }5 E
- getindex
+ x% `5 V7 N0 }7 D - getlayer# C S u! k1 ?) M6 I4 `6 [8 ~, ?
- ;get_locked_layers ;function added and then removed by rk
6 i: A$ C" I$ y) z! P% c4 _' [' [ - getltype4 z# D2 e2 ~' S% j9 U" z9 D
- getprops
4 h* |6 T0 _, w! |) v - getscale ;function added by rk
+ P6 o% S3 ?; U1 T" a - GETSTYLE ;function added by rk
0 o) R, T( O: r0 y# s, i( { - getthickness
# @0 g& \0 {, Z0 [ - GETWIDTH ;function added by rk
- Z& l; F4 v9 b1 |) D6 I9 I - globals* V0 R$ g. l. V" W; L1 M# V
- HAIR_STYLE_LIST ;var added by rk
' a$ N7 i/ K/ W - height# K- [" z* z, F: @
- index
0 k0 B( j: n+ s3 a8 u - item
' z, j1 g. j2 A0 T - item1
6 F8 k3 X" I2 B - item2
& v, R$ [* L* e6 t4 N$ ?1 n. I% ` - itemlist
( \& X+ w1 ]6 C/ N0 Q/ I0 g B4 R - lay-idx J" z0 ` Z- u6 s
- layedit_act0 \1 G- c' ^5 v
- layer
8 R5 I2 v& g$ R - layinfo
1 j0 S5 K, A$ x" K - laylist- n3 x7 Z* U; v7 E0 S: m
- laylist_act
7 ~9 R& \! P/ F" X& T - layname
( T& @/ [* ^* | - laynmlst
! k, b/ J2 e/ k+ y, k% V% g - layvalue
9 P1 W+ b* d6 w( K7 T - linetype
; y( z I4 p2 Y S/ B- a4 V - list1
$ P! e ^1 r6 K2 q - longlist
, D ~) ]8 ]+ w+ ~5 x, L! y - lt-idx
% S: ?8 I. F5 \0 f7 U- s5 Y - ltabstr
5 h& O. y% U+ T# @! o8 j/ ? - ltedit_act
* {) L/ T0 c/ } |% ^$ E - ltidx
8 p: |# x* C4 G5 \+ m+ Q3 I - ltlist
+ U- ?0 W; C" `5 a8 u d - ltlist1- v: ~$ o# h' q( o; n1 O
- ltlist_act
3 ?2 u3 ]) L6 \! } @$ G- p - ltname- G! a. y [9 z: C! v/ m
- ltnmlst: ?, u% T1 l$ H
- ltvalue
8 u+ ]2 i3 M _4 E - ltype) a, h* W- i+ N) e% l# N
- m1 z; l. y" y7 t
- makelaylists
1 H$ ?0 S1 ?( ~- V - makeltlists
' Y/ q1 B$ f! L7 V0 p6 T4 B. i - match-col U) W- h5 j$ t, U
- ;match-etype ;function removed by rk
) m6 h0 @% h" r2 B' ] - match-in
# T$ d5 A2 b( D1 B - match-lay
& w' P( k! s" e* O! U' C - match-lt
3 ~& e X" c( q [# e2 Y - match-lts
1 v: z; s4 n3 [, E$ g8 {5 @ - match-th
/ t* w# ~/ ^$ w6 p - match_col
, I( l+ I1 v# \8 K* u( K+ u0 I - mdashlist
2 y& O% _1 R2 c9 M( U( X; Z5 b - ;MPOPLST ;function added and then move to ac_bonus.lsp by rk
# t; G% Y5 o. z - n
: t4 M8 D+ v6 Y) W - name& O1 O P; o9 X" W( H9 }
- ncolor
& @* u. S/ A7 _2 } - nlayer3 R7 y0 s* V) {7 F
- nltype
- M% R: \' ?8 z/ V- Y8 c" K( r - nthickness5 b. K7 X% s+ C, k1 L8 K( a E! P
- off, M0 {, }8 Q( d( S3 p: W# {7 z7 t
- old-idx0 E7 a7 \7 y7 [# h3 i, A. U
- olderr
# ~- T# @- }, Z, }, {. Y! E - on9 S# w" z( u* D0 W9 s/ d \% n, z8 i
- onoff
. g" L2 {9 U2 V; \4 I - patlist6 X3 V# I. m; K% R# J1 h) z( l# a0 o. [
- pattern
7 \* C* h1 \! h0 e* x0 [ - PL_WIDTH_GETTER ;function added by rk
! K, t1 C. |& V - POLY_SS ;var added by rk
% A5 r" E1 v2 @# I' U - ;POSITION ;function added by rk and then moved to ac_bonus.lsp5 V* T- H# n7 n, k
- proplist2 r. f4 Y6 R1 z! q4 |& J
- reset-lay8 D- z1 ^ m8 z, b( G4 e
- reset-lt, L6 E+ p% S9 Z- A4 o- t% R
- s! u1 \% ?9 l, K% H3 i; k9 L
- selset: P8 N# S! T- F, Z {" B! X& i
- set_col_tile+ w) { W% e) M' h0 W7 H
- sortlist1 g0 l. X; p3 t( _5 W; Y+ a
- ss
' ~! T) ?9 x2 i - ss_in_current_space ;function add by rk.3 P& }; W* ~1 @; v+ _; V1 n
- ss-index
8 i, B# X9 x8 z" D+ h - ss-length
3 d! e) z7 y$ K: x: p' z* d6 c - ;ss_remove_locked ;function added and then removed by rk.: S; @3 c" M; g' F% t
- sslen
6 x* l8 {- T: b; K+ M' |' c - temp_color
3 j- S$ t5 G) f/ Y5 z8 M0 {( c( s, z - templist
" Q5 x* Q7 F, J) S) ? - test-main-ok. {$ E2 |, P/ q4 k7 Y9 f
- test-ok
4 o& P% o; M2 K1 g - testidx
. N" \2 `2 J" x3 z F - testlay- h% m1 g6 l, V7 d. k4 `0 [
- th-value
9 h* y9 A* W8 z/ u) P- H - thickness6 |0 M a; A5 p" K
- tile
- E' H$ w( f9 o+ P9 R6 B5 _ - tile_rect$ Y: t/ L3 n- |0 s' D
- tilemode
+ A! j/ ~8 H8 n$ {: P - ;TNLIST ;function removed and moved to ac_bonus.lsp by rk
U5 ~. P5 }! K% e% ~+ L - TXT_SS ;var added by rk
2 ^& s4 p" b; W% P c" s Z - ;undo_init ;removed by rk.9 a- ~& ]% _: X+ ]5 s, }: W
- vi
: x2 T+ g" H$ U4 t- C - vpf
; D3 @( W) J4 f - vpldata+ ~% G; ]* o* h3 ]; {
- vpn
# @- {* T* }& ^) Q0 z - which_tiles
1 o7 F3 d/ K* G1 f$ U7 H - width' S, y* z4 N: [- D- s9 {' C
- x
: n- a; m: N: M% A3 V/ c( H) N9 d - x1
1 p' `2 @) G2 q! j - x2
1 T, }& t8 D) P: |6 P - xdlist
% n. i/ v! p/ ?' f @ - y
" }9 l D9 N. N( B - y1* {4 L+ `4 I$ N; A6 r
- y2
+ Y6 n: H B4 w) T* g! k - )
1 m2 k& h1 G! M4 K* r4 C: M9 N0 g
" j+ W7 s% G9 _, Z/ a9 N- (if (and (not init_bonus_error)
" S+ Q" O( e J) s) I - (equal -1 (load "ac_bonus.lsp" -1)) ; h0 X) u4 y' F2 Z4 }$ R
- );and1 ~* `, T0 A5 Q/ C# k
- (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))3 m5 O) y* _' z/ [, Z
- );if
! D' j- T3 f$ d1 E: O9 r5 w - (init_bonus_error (list' i5 O* l. k: o& p
- (list "cmdecho" 0
2 h% s2 f8 w! T, ^0 i; r - "highlight" 0
" n H N& i+ L. k0 _# M2 f - "regenmode" 1
6 x8 E: K% y' V' X+ @ - "ucsicon" 0
* h" h' l+ A y1 g; d' U - ) 4 h' s: K% e4 U; E: Z# n
- T ;flag. True means use undo for error clean up. # _1 W7 _5 N$ t G g- G
- );list ) }5 W8 _! @: Q0 Q3 ^9 W
- );init_bonus_error
) T, T5 s* }5 m: e - ) u B+ b) ^ q* s
- (cond
5 h t3 K$ r8 Q6 ]) } f - ( (not (ai_notrans))) ; Not transparent? o: h( [" s( O
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?. }9 T7 c. C! M! g0 l% v: i
- ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?
+ T( S) G! K8 N7 j- d - ( (not (setq ss (ddchprop2_select)))) ; objects to modify?( I' m" ~ B& P0 q3 B
- (t
0 a! k; i, ^+ }- e - ;(ai_undo_push)
' I, k7 i. P& _# h& K3 u! Q - (ddchprop2_init) ; Everything's cool,
/ I( D5 M/ L, O1 A5 x - (call_chp2) ; so proceed!0 p2 m, Z$ b' w
- ;(ai_undo_pop)1 s# s! k; M0 l, E6 e
- )* K0 o3 m6 t/ N/ ~6 O8 I) K
- );cond close4 t) [7 m$ C @ O9 X0 n0 y, n
9 v) V, |" L6 Z/ C9 [- (restore_old_error)+ Q' V& j: w1 d/ x
- ( R# Y$ Q |+ e5 q* v. M: O
- (princ)
M. i5 _2 B9 B& j# c- j - );defun ddchprop2
5 t. J9 s, ? d& p0 [* E
( g6 y+ m, S- I7 u6 U# n+ u* H- ;;;----------------------------------------------------------------------------. S+ @( n5 _& n* b! j
/ o: g3 t0 Y# v, `- (princ " EXCHPROP loaded."), h" ]4 t; I' J' X1 o
- (princ)' \1 x- X! ^4 |. J
- ! U$ @0 i, g0 _) z- s2 R# @
- ;;;----------------------------------------------------------------------------
u' I, {0 J# S( k: ], s - ;;;---------------------------------DDCOLOR_LSP--------------------------------, a6 i$ |: X8 [5 b$ S
- ;;;----------------------------------------------------------------------------
8 q& u1 a8 Z0 R$ v! v+ v1 }
7 Q& ~) H6 `4 `% B& a) a Y6 U0 i- ; Next available MSG number is 24
, o) y2 ?. g& f) K* y2 z, w - ; MODULE_ID DDCOLOR_LSP_$ O d9 x; V; W& D! L3 M( U/ Q& H
- ;;;
( |- I q! U3 b( h, W2 J/ L - ;;; ddcolor.lsp; o+ W2 o( [3 h
- ;;; 7 [8 `1 H G' V+ V! l
- ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.
2 ?/ b1 a2 R. b8 U+ [& `+ m. Y - ;;;
4 c; B. U3 ?1 N* ~8 X- [/ L. B# [8 j - ;;; Permission to use, copy, modify, and distribute this software
/ j; v5 P; O% f+ u - ;;; for any purpose and without fee is hereby granted, provided
) i8 f$ H3 @* T: Q i+ O8 I& l - ;;; that the above copyright notice appears in all copies and
: r E/ X, n* b1 y6 X - ;;; that both that copyright notice and the limited warranty and
2 p( W5 e6 V0 N; c& i - ;;; restricted rights notice below appear in all supporting
3 ~; p6 y- M0 Y8 A5 X' e- B. W. |) | - ;;; documentation.
5 T. M) k5 `: z - ;;;
" {" I# L6 r7 Z: h - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
: P' V/ R# r4 G$ h - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF$ l& ?) L1 e5 j% F! ]* S# t/ F
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
8 u* j6 l$ O- L9 a - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
$ Q7 s* t9 p$ D5 ` - ;;; UNINTERRUPTED OR ERROR FREE.4 P! ^; a `2 L+ y) H5 `9 p
- ;;;
. A4 d8 w+ v0 m# f- E9 G6 ~& W - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
; b1 b& ~9 t7 u8 p: j" f+ a. b - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
& N( {3 _& N1 T7 _& v - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) 6 p& Y8 a+ c: P. ~9 D* q
- ;;; (Rights in Technical Data and Computer Software), as applicable.4 M( P5 P; y+ R* y5 J0 q
- ;;;
3 t0 u5 f7 U7 o8 D( f - ;;;.
* D; ]) {: ~2 D' \/ a1 C - ;;;! R( W( D/ a+ e+ k* P8 j
- ;;;----------------------------------------------------------------------------
% D G8 p5 n, E3 P6 E$ J/ Z - ;;; DESCRIPTION! Y) y1 |) N6 c& l/ }# f, `
- ;;; & S" o. X" ^: S0 c1 G! w% C' Y( E3 V
- ;;; Chromatic Pallete style color selection dialog.& j* ?: v, U( {& R; h, l) ~
- ;;;
- X6 N, J* }1 a - ;;; Globals:
2 g7 Q: X/ G4 K% F - ;;; & a( g" l! m# I2 e0 h. S }
- ;;; chroma_color - Integer color index. The last value selected
" v z# ?; f) h6 z) M5 x+ H - ;;; by the user in chroma dialog. It is not cleared or reset
1 ~" v. U* U& Y9 I" f- C/ |" y - ;;; by a cancel. Only used for communication between callback
1 w8 q* x5 m6 o - ;;; functions and the (chroma) funciton.8 d2 a) C/ v& ~8 ?
- ;;; , ~/ G" c% c* c" K$ ^% y0 b
- ;;; Depends on the definitions for the dialog provided in chroma.dcl.
. t: w. N- b" I M7 z - ;;;
6 P$ v' F$ v4 p* N' N6 b' k - ;;;
" y! G( G8 {) z - ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma
N+ \: L; ]1 s6 R5 A9 G; g - ;;; pallete style color selector.: {- O3 v& m7 u9 {
- ;;;
1 f+ k+ t% k2 Q9 K - ;;; ===========================================================================3 _# I( m3 Y: `1 N2 l# p
- ;;; ===================== load-time error checking ============================
4 f6 M3 z8 W+ b/ k- V - ;;;! `( Y' R6 m6 a0 _# ^* V! v8 q
- 6 Q& q K- z# t9 }- B
- (defun ai_abort (app msg)
2 p( H' [, U: N1 w1 ?9 T' ^% M, K - (defun *error* (s)# ^) [' Z+ C% V5 X5 O
- (if old_error (setq *error* old_error))
( z4 ^. c: H7 ]8 J% `! R - (princ)! j( Y7 y& a6 _" g4 D
- )7 f2 z9 H' v r K8 b" b( D K/ u
- (if msg
, R' m5 b: @/ Y+ y O$ W6 t$ q2 t - (alert (strcat " Application error: "
* A7 m0 L# J5 ~2 ^! d: J - app
0 ^* b" n) r, T# w( | - " \n\n ": u4 }1 Q- Z# n: w. S7 [
- msg
, t' U4 Z0 O: e2 c$ ]; y" [ - " \n"
( b* o0 w6 U7 `& q { - )4 v, }, y) A% r' V, M% `
- )# k: ^9 r& j! K, O8 }
- ) j5 R w2 y7 b4 O
- (exit) O% E8 Y9 |; D% b0 S
- )2 `' [6 U" @! P3 S. `$ i. m
3 _3 {) t! G2 \: `- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,( b: w6 E1 v" C& L1 q- o
- ;;; and then try to load it.
8 F% [& r) i) X6 z$ L. r - ;;;
- S! E5 x" V5 z+ U - ;;; If it can't be found or it can't be loaded, then abort the) A0 V$ G) }8 K! L# l5 o+ r
- ;;; loading of this file immediately, preserving the (autoload)
3 O1 Z" a7 o* P$ @' O4 i+ D3 p - ;;; stub function.
+ }% p0 e: Y; f3 j$ F0 n6 ]0 u( k3 m
# r$ G" I( g/ ~5 O! b% S6 A- (cond
0 l; r6 }( u# [8 D, t4 e: g - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.7 F% K/ C# V3 Z. m1 d
- : w `/ J4 g5 [
- ( (not (findfile "ai_utils.lsp")) ; find it
5 v7 C [5 V1 u( w/ C - (ai_abort "DDCOLOR"2 |! l7 h% N5 e. B
- (strcat "Can't locate file AI_UTILS.LSP."
; O* P; n% \: j4 ] - "\n Check support directory.")))
6 O) P2 e( `7 [' t, P
' q8 J+ N- G$ Y# z+ C- ( (eq "failed" (load "ai_utils" "failed")) ; load it
% O( Y! ?1 J+ M6 c+ ?! J - (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))" v/ A$ I/ b2 @: q0 g1 p
- )
5 I+ b/ W+ _1 B1 b" P - / C7 ?: h) I' ~5 M6 X
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
6 t5 f3 }, b* S& n n - (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses: y. E9 m0 S' h2 U8 M4 |' Q
- ) ; ai_abort's alert box dialog.- \8 T# _: s! C; ~
- 2 V0 f5 Z$ Q: ~8 u3 ^$ P/ Q, ?# E: J
- ;;; ==================== end load-time operations ===========================
# t3 f. i4 D5 v& M6 o - ' ~+ L) @# f, A, I" _9 _. l$ f
- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)
( Y0 W3 C* W1 q% V -
* |) @: C" `2 B* O, W - ;; Main Color function, called by setup code.( z) C& D/ r' D6 b6 l/ ~
- (defun ddcolor_main()
9 H, j5 o4 U# I, L# r! G - ( s4 Z! g- x: A
- (graphscr)) c6 p( @4 r3 J" O* `" O- z- l
-
3 G) h3 F, K4 b" x" {* ^" ]- }! H - ;; Get the color of the current layer, for possible BYLAYER color swatch.; ?6 [/ i7 M' Y3 G
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))" L; q& \ ]4 q# Z
- : C3 @2 X- n" s7 k' s) F
- ;; Call the dialog here...2 o; Y) P% B% f0 e) G: e
- (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))
1 n3 ~, S& Q4 ^ \5 J7 d
4 i) Z( O: T6 V% w: Q! j- (if clr
8 N3 k4 n4 n; H6 E1 N - (setvar "CECOLOR" (citocs clr)))
M% s5 n, j0 w" R( |) _ - )6 O! g! N: q S) t+ k3 i8 \( T
( D% V4 { i" j/ }% k" o& y1 d- ;;;. S5 J' ^/ o" O% A, @
- ;;; CSTOCI -- Color string to color index
5 {2 {+ ]) \ A- t/ W/ Z A6 L - ;;; Convert an arbitrary case string into a color index.- j3 G& M6 g: A3 \
- ;;; Returns nil if string is not a valid color.! u. b( ]& Z5 e2 j& `! u9 j
- ;;;
, _1 J9 u5 g( ^0 z$ F, A - (defun cstoci (str): L( q( u' L+ |& T4 `/ @3 s( S
- (setq str (strcase str))
# G$ c+ q3 Q( c9 W - (cond% O8 M$ C% d4 p# e3 c
- ((= str "RED") 1)
$ Z N( J1 a; Z& _1 A1 c9 w - ((= str "YELLOW") 2)- O& N) ]3 E# M4 c
- ((= str "GREEN") 3)9 Q+ K! [. |" P( B7 w6 K2 J
- ((= str "CYAN") 4)
6 X/ D; a5 H9 d% n/ r - ((= str "BLUE") 5)0 U% G: i* c; F( _; n+ [
- ((= str "MAGENTA") 6)
: ?" ^* f$ G6 Y# q# g - ((= str "WHITE") 7)
* Y. f3 K- l" p# m, h - ((= str "BYLAYER") 256)
$ F+ v! U7 j. W0 ]$ q. y - ((= str "BYBLOCK") 0)
, f \' B$ r" |( |, d - ((= str "BY LAYER") 256)7 F. p% G: R* Z. f T* G" g
- ((= str "BY BLOCK") 0)& B, D. R1 `9 Y
- ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))
1 z" |; h# @5 Z# b7 g8 F - (nil))
# R) [% p" Q' I: k+ i/ u/ L - )6 W# [4 T, `- d. N. R: `& P0 y
- 6 j% L+ j! F; b# V; a! T
( s3 L G5 q& T( d+ W/ Z9 b' J- ;;;. a) _& ^( g& ?( B* W" X: [, d5 l
- ;;; CITOCS -- Convert color index into standard color name.+ v3 V$ ]* l3 ^' ~3 C
- ;;; Will return the standard and logical color names as text
: f$ `& ]0 s( Y9 T" |5 N2 M; d" ` - ;;; strings. Returns nil for out-of-range color indicies.0 `8 K: ]1 l: ?+ p. n) N& I
- ;;;0 E: e0 c( D% X1 T3 {
- (defun citocs(i)
; P( N4 G. y% T; A. E - (cond
, g) C7 J1 [4 |; b3 ~ - ((= i 0) "BYBLOCK")5 h- N; ?4 {8 i. Z3 E, \5 M. a* S
- ((= i 1) "red")
0 K6 y) }0 W! U( q: s4 D- x8 b1 n - ((= i 2) "yellow")% {8 Y, T* _7 {1 {* o* G J
- ((= i 3) "green"), Q( d$ ] N1 R: d
- ((= i 4) "cyan")8 p; U7 `: Q h# B5 X$ H! H
- ((= i 5) "blue")
" g# b# p5 K7 z$ v - ((= i 6) "magenta")8 I6 O& @5 R) D! K0 Y% I
- ((= i 7) "white")
2 C4 p4 c1 V9 V0 @9 O* @ - ((= i 256) "BYLAYER")
8 p- a9 E0 |4 q4 A; H& [7 Z - ((and (< 0 i) (> 256 i)) (itoa i))
3 e, Z5 E% f3 P# X6 r0 a4 D - (nil))
3 Y' v5 u |5 v5 u4 o4 |, s( S - )
2 y" ~+ K# B/ `1 l) v: o, x% d - ) s( b6 `' z/ V, E- ^& L
- ;; Start of ddcolor
# g1 G& F% h6 u% j* E: m7 J& S6 C - (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
9 H2 ]$ ~6 [9 q7 c J& j - old_error *error* ; save current error function
% @/ i# k% O) S - *error* ai_error ; new error function
) `0 N: x5 H7 C. D: S4 \" b - )' p5 U2 H7 Z) y: y2 M& b, D# a
- : B' o5 P" F4 m. C" E5 j8 s) {
- (setvar "cmdecho" 0)7 }6 s* B6 M( W! ]& z, _+ @
- / P+ ]4 A6 T& } T* K5 k
- (cond L, B" C+ G6 k$ s. [
- ( (not (ai_trans))) ; transparent OK) \* s4 ?( u$ L" _* `2 y
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
0 Y- n' l! T1 a3 A( k7 e, \7 }8 z - 5 b1 K1 m/ J5 }$ N
- (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))9 k9 ^* @, w4 C
- (/= 8 (logand 8 (getvar "cmdactive")))2 n1 e2 ^6 i; K& B
- )# e/ Y4 {" D0 E% y9 M( t# Z
- (ai_undo_push)
' L6 \) v; z0 P) H$ } - ) [3 S1 @, x( r$ q/ e5 A1 L7 Q
) ?0 R) w/ i8 b! m- |# s- (ddcolor_main) ; proceed!. y4 m l3 G0 T, [. J. N
& s" [, w6 s2 [. {# [$ v- (if (and (/= 1 (logand 1 (getvar "cmdactive")))6 q/ D* e% m4 J6 p
- (/= 8 (logand 8 (getvar "cmdactive")))9 x: W' a( A% {3 k% Z
- )
}4 ~3 F) h) J7 P/ a - (ai_undo_pop)
1 ^# C6 C1 _. e A. C3 z - )
9 U0 Z1 @' h5 D: j, { - )
+ j4 N I. `: Y/ Y! I - )
! a2 [2 I+ ?$ [1 m* \. I - : ~8 V7 C* W8 {4 b
- (setq *error* old_error)
5 g% ]# Y/ ?5 n$ g0 B1 o; G, ~* L - (setvar "cmdecho" old_cmd). @" W/ @& D$ g* l. }6 A. X
- (princ)4 T& y8 ~' A: y5 Y1 n! Q
# Z5 o# t, x- p0 V ~2 r* y2 ]& d- )& m$ r1 z0 [, F) m7 W
M7 {0 I" N! S/ W! { h! a7 }4 z- ;;;----------------------------------------------------------------------------
5 w2 F( B' ]$ o3 e) b$ P& X1 N - & \1 y' Y" x: `& O$ w, d4 p$ r
- (princ " DDCOLOR loaded. ")7 G1 L3 r6 Z$ y9 ?6 M+ N
- (princ)
0 s" w, t2 U% n# I - & C+ \3 r) H9 P' t% K7 m' f
- ;;;--------------------------------------------------------------------------;! b" m# l. H- l: c3 L+ c' Y
- ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;; V( J$ o8 p5 \( n$ b
- ;;;--------------------------------------------------------------------------;) P& x2 ?8 v8 l/ u2 H
- ;;; ssx.lsp
9 [% O; Y; M: | - ;;; Copyright (C) 1990 by Autodesk, Inc.3 E3 t( ?) g9 e
- ;;; Copyright (C) 1991 by Control Systems, Inc.7 C& b1 o" e2 s( H% o# l
- ;;;
. v/ k A; M( V - ;;; Permission to use, copy, modify, and distribute this software and its
+ E/ r" m. p* c3 l8 T0 M# s( ] - ;;; documentation for any purpose and without fee is hereby granted.
' C% I1 w8 q$ { - ;;;& \+ j4 e* f8 ], V. t
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
" E! W3 ?1 c7 I& N( U8 w - ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF
2 ]9 c4 z- z$ w9 Z - ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.6 B6 A1 \. F E1 {$ O# Q/ ?
- ;;;4 @5 h/ C0 P, H& @7 k o
- ;;; Larry Knott Version 2.0 7/18/88; j9 Z8 {4 I4 x) ?
- ;;; Carl Bethea & Jan S. Yoder Version 3.0
' P0 V4 M$ k! l& `8 n1 f1 k - ;;; Enhancements to (ssx).' d C5 R- u" \& {# V* E
- ;;; 15 March 1990
% h# n$ C% v5 w" j - ;;;& e2 B7 I7 u4 p% v% i q9 @; } r
- ;;; ARTIST Software, Inc Version 4.0 December 1991
, L3 y b# X5 m; e/ _* ^( C - ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,
0 L/ m1 u8 e% J. X# B+ r - ;;; use Flexicon menus
2 B) ]$ q, m. j/ A/ h1 I - ;;;/ M" p. J2 F' Q; p- Z" c; Z' L
- ;;;--------------------------------------------------------------------------;% P" h* N; p3 h7 @2 M1 u/ ?
- ;;; DESCRIPTION2 {, F! J, Q) L) `* G
- ;;; SSX.LSP
( w# b$ l! P8 ^6 i! O - ;;;
% q5 Q; }& q+ w' u9 z - ;;; "(SSX)" - Easy SSGET filter routine. 8 z8 } \ I4 n( {2 W9 J( A6 i
- ;;;
, n" [+ s( G+ y9 n7 t+ ` e - ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt ' g- X1 u2 Z; h E8 B
- ;;; to create a "previous" selection set or type "(SSX)" in response to
4 _. i% K2 u' F% F2 F9 f - ;;; any "Select objects:" prompt. You may use the functions "(A)" to add * y9 Q% x. \* I2 P& |
- ;;; entities and "(R)" to remove entities from a selection set during 1 o' w# ^ L9 p2 L$ b& p
- ;;; object selection. More than one filter criteria can be used at a
5 F8 r. L( Y# ] - ;;; time.
' c" O2 A3 z" Y+ P6 D9 P( L6 ?( U - ;;;
6 s' r) Q4 [+ Z' l0 j- @ - ;;; SSX returns a selection set either exactly like a selected
/ q6 z9 x1 B0 g - ;;; entity or, by adjusting the filter list, similar to it.2 I. O- e5 T2 `0 f
- ;;;
9 y+ h; u/ L* z, r& l9 P9 J - ;;; The initial prompt is this:- X2 |* I f: L5 ^- g
- ;;; & y. e1 P6 i3 ]/ }1 h
- ;;; Command: ssx0 p! Y, v/ k- a" u2 ?& D4 |
- ;;; Select object/<None>: (RETURN)' ^8 p+ O" R6 |9 k" r3 a
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: 2 |5 E" v/ ? G
- ;;; 6 U# T) ^4 @! ^0 c$ j
- ;;; Pressing RETURN at the initial prompt gives you a null selection 5 V8 M# H- [' d$ r6 _% N# b
- ;;; mechanism just as (ssx) did in Release 10, but you may select an
3 T6 k7 [) y7 c1 M1 O - ;;; entity if you desire. If you do so, then the list of valid types
/ X J% p6 r+ w9 ?% V - ;;; allowed by (ssget "x") are presented on the command line.9 u: ^2 |& _0 \1 V8 I/ T
- ;;; ( K, w& U0 j) s' |6 z4 p
- ;;; Select object/<None>: (a LINE selected)" s, ]" k/ W4 A2 m* B
- ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0)) 2 O, ? e/ ~" u' T! x6 B+ l
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
4 [, b0 n! m6 S5 N7 W' w - ;;; # B# C9 x' t1 _9 X
- ;;; At this point any of these filters may be removed by selecting the , i% E2 r0 K( Q3 L8 r O
- ;;; option keyword, then pressing RETURN.
% `0 m3 e) L8 n9 U - ;;; 7 B, n4 ^* m) I
- ;;; >>Layer name to add/<RETURN to remove>: (RETURN). @, R7 b$ K7 k
- ;;; : @3 m0 ^; o( H0 K( P! v v
- ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
3 x1 k* G9 M# w! G2 ` - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: {+ ]7 D1 w; _- _. E2 d
- ;;;
+ y0 s9 i: U, S$ f% S - ;;; If an item exists in the filter list and you elect to add a new item,
, s/ ^9 c1 D% i! u, ~5 a6 M9 F - ;;; the old value is overwritten by the new value, as you can have only
, w5 T2 j! `7 z2 w9 e3 g5 z - ;;; one of each type in a single (ssget "x") call.
" h0 y& W- U- r( ~4 N - ;;;* |- q$ F0 S8 o5 [8 h. ?% l1 B5 T
- ;;;--------------------------------------------------------------------------;) C% G) f$ b( R5 y2 L; L8 H9 e
- ;;;
' s9 G& T% R3 }. N$ Q& {# a - ;;; Find the dotted pairs that are valid filters for ssget
0 S; b3 E) J/ j$ k9 f' i - ;;; in entity named "ent".( R; y9 H# G4 v7 }) E( i5 v- F! o
- ;;;
- e8 o3 T. m+ \! b& w# e5 }' _1 w - ;;; ssx_fe == SSX_Find_Entity
! D* z7 T4 V4 x8 Z+ c6 I5 E - ;;;7 z* ?6 F7 T q5 r& O
- (defun ssx_fe (/ x data fltr ent)
: N/ f. _, `, [ - (if (and (= flexvar 1)(/= t2 "Pick"))- a* P8 f( K: Y- F! t, V
- (setq ent nil)
$ T% ]9 k$ Y+ {; I0 {/ J - (setq ent (car (entsel "\nSelect object/<None>: ")))( L# \& [& q% G' O* n: S
- ). Z* n5 x: q# f i ~6 U
- (if ent" F% q+ @) F& U- s! i; ^
- (progn
# z4 h# B; m8 y( f6 x/ L - (setq data (entget ent))/ k) \/ W* {' f( ]% H* F
- (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38
0 x% q! H; Y; X5 F1 X - (if (assoc x data)
; k# e. m2 u3 g( ^7 G+ [ - (setq fltr / b* b- u7 j. s. _, W
- (cons (assoc x data) fltr)% o2 S) n8 _8 j& \- c
- )
& l& [3 S2 M; _! n" L6 C) q( f - )8 S1 O0 y5 u2 g) R! t$ }
- ) $ i) |/ N$ ?+ M. a2 w1 V
- (reverse fltr)3 f9 M" a( I* ~$ U" N% m% ]
- ) \- i5 ~; @; |: K5 ]0 q
- )
. a( Z3 o$ N5 ^ - )- V9 z' `6 Z {, ~/ W5 A
- ;;;5 `0 O4 I( E+ |2 Y' B+ B* j9 ^
- ;;; Remove "element" from "alist".
4 e/ o3 N0 W+ e- h) | - ;;;! u6 F7 P: A2 y& ?) [! M7 ~7 ~
- ;;; ssx_re == SSX_Remove_Element
0 m! \; f7 B, I9 N- c - ;;;
$ O* ^. B) ], \; o/ R- w" H - (defun ssx_re (element alist). {! A1 r$ Y% D9 M1 O
- (append
+ k+ }/ d6 T9 E% g8 t - (reverse (cdr (member element (reverse alist))))- N3 z/ _6 }8 l4 e: L; S
- (cdr (member element alist))
( F1 E; E1 L4 a, x# P* i - )
7 V4 K# V7 j1 L6 c! q - )
! M5 h6 E8 F8 O* P& z - ;;;! I5 ]+ ^& w3 Z6 ^& ?! I
- ;;; INTERNAL ERROR HANDLER 0 _+ L. G" e9 y
- ;;;
: |: u: @ l4 }7 b - (defun ssx_er (s) ; If an error (such as CTRL-C) occurs6 W+ G; |5 T7 Y( \
- ; while this command is active...
" W$ V+ Q3 ~1 v4 m - (if (/= s "Function cancelled")
4 p, I% M% V7 L y! C* s: A - (princ (strcat "\nError: " s))* s! I% l0 G9 j7 ?( _8 X
- )
8 Z: b; U$ e% ^" k% Y! q - (if olderr (setq *error* olderr)) ; Restore old *error* handler
8 ?9 f6 b3 d; o: r - (setq flexvar 0)
8 s% d2 C3 P/ Y/ L0 g3 w - (princ)* {! [" d( s, S3 q' p' @" y- ~% C
- )- ~) |4 |% Z" L) v
- ;;;, }' \ h, A) d$ j( ?* K
- ;;; Flexicon call routine) D: J- F% f2 H
- ;;;
. P( L/ w. U; X6 ]' R& M4 B - (defun flexmnu (a)
; {% J1 d6 B! s& G) p" G! l. m - (if (= flexvar 1)* k& W$ q* I7 O; M' g
- (command "FLEXICON" (strcat "FLEX" a))3 J3 F+ W) j% h5 `+ G# z
- )
4 H0 h, e; A, z! {' L, ?) X - )
7 `6 S+ Z9 X/ ]5 y( o
, N! k" ~' N+ ?% J/ @- G) ] C- ;;; + _7 R- h5 `- D9 g) w
- ;;; Get the filtered sel-set.% T1 Q3 J/ w% M) g
- ;;;
1 U1 g0 d* o9 E4 S0 g - ;;;
2 h# C3 Y, e+ A+ ?. Z7 R$ D6 k* ^+ [3 } - (defun ssx (/ olderr)1 t r) Q" S- i y% q9 T% Y& ~
- (gc) ; close any sel-sets : j6 T( F) g1 {6 _" K5 E! K
- (setq olderr *error*
+ Z/ Y+ K' H% |! f6 I( o0 |: } - *error* ssx_er 3 R x6 t* t' X- i$ R: B' j
- )
2 @3 u& a8 t6 t( A3 _ - (setq fltr (ssx_fe)) }, k1 ]7 B! ~3 ]% k
- (ssx_gf fltr)
( w+ b* c2 J: r) J5 ?' q - (if (= flexvar 1)
3 L1 m* I2 H) ] - (progn
# w7 V1 a7 o1 s' Z' z' ?! Q1 ? - (prompt "\n \n \nNow select the required EDIT command and (P)revious.")4 P) L. I' s. ?
- (flexmnu "EDIT"). u2 u. `' D1 W1 X
- )$ I' t$ d4 Z, b9 U7 y; w
- (command "p")8 I' ~: j6 e0 ?' Q, v$ W: ?2 o0 j
- )* R0 a9 h, q9 J7 w/ b
- (princ)9 A) o! q5 i5 L T+ p2 m" I5 x
- )1 m" C8 u$ v: L5 a
- ;;;
4 g3 p9 h6 O# H4 A' H5 H - ;;; Build the filter list up by picking, selecting an item to add,! l4 ]& Y0 f6 I( g2 h. b5 N
- ;;; or remove an item from the list by selecting it and pressing RETURN.5 V& U3 ]& o- Z( C/ `* V, A' f( q
- ;;;
! ]( i3 ? W* g {) y - ;;; ssx_gf == SSX_Get_Filters
8 t$ Q( |, F& c. k" t: e5 { - ;;;
) V: D0 P1 S4 t( U: E - (defun ssx_gf (f1 / t1 t2 t3 f1 f2). s: P6 J; ^( K5 Y0 |" t
- (while
# M ]: O/ j) \# W - (progn/ \- K8 V7 x( [4 O: i Q5 b9 R
- (flexmnu "SSX") D9 d: x) p; g
- (cond (f1 (prompt "\nFilter: ") (prin1 f1)))3 }9 t# C. K; ^' F8 g4 Z$ ?
- (initget
& ~: @ k) |( W5 {& y - "Block Color Entity Flag LAyer LType Pick Style Thickness Vector")
v3 _5 s' U: C B/ E - (setq t1 (getkword (strcat6 V! A! }' H+ @( b! M
- "\n>>Block name/Color/Entity/Flag/") Y2 Q5 ~2 W5 K1 y u: r
- "LAyer/LType/Pick/Style/Thickness/Vector: "))) 7 c8 P0 P1 R* {9 Z+ i4 E' |
- )" e" x) W. m: W, l( A Q
- (setq t25 @) ~0 |' N8 o9 J2 P& Z M
- (cond
8 V" m+ l3 U. c7 E9 e! } - ((eq t1 "Block") 2) ((eq t1 "Color") 62)- R9 X4 v1 g. J- s
- ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)% w- \0 _/ p0 u5 D* [
- ((eq t1 "LType") 6) ((eq t1 "Style") 7)* Q$ h/ a4 t0 F& [/ _! s
- ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)% T' c& x8 k5 X, n1 z o. W
- ((eq t1 "Vector") 210)
4 I0 M3 D. [$ p2 D - (T t1)
" u) D( l6 Q1 v8 a - )5 ^+ F# i9 Q9 X; N
- )
0 z# A, E9 p: k/ U& K1 |1 T: y5 } - (setq t3- H% {# X4 z3 b+ W% X! ]7 t
- (cond
. x/ [ o% v. F+ N$ H( r - ((= t2 2); S7 g5 j) t. H/ e$ x
- (if (= flexvar gtads 1)( W. p; M- V5 h2 u& R9 j
- (progn
5 |" j) r5 g+ F* d( h - (prompt "\n>>Block name to add/<RETURN to remove>: ")4 B/ z* S5 a# w% i3 i3 J
- (gttable "BLOCK")
) T' q! O; f% A2 G& ]% {7 O - )
- t: P# s. w* c B6 d2 s - (getstring "\n>>Block name to add/<RETURN to remove>: ")
: Q+ ^0 x2 b, w( T3 d) m+ H( n$ { - )0 C4 j4 Q o+ {3 ?, {
- )( x8 P3 c- \5 y8 E( N
- ((= t2 62) (initget 4 "?")
6 e& T* G5 p) n1 y: X* {* w4 h6 b - (cond
* J# w( R2 y1 d7 A - ((or (eq (setq t3 (getint - T1 o( H0 z( g) U/ B
- "\n>>Color number to add/?/<RETURN to remove>: ")) "?") 3 N9 B7 m8 @0 X
- (> t3 256))
; u; l' X$ H3 f' z - (ssx_pc) ; Print color values.9 G" K& y! j4 \9 O$ C- e4 Q
- nil
2 H0 W/ d7 V4 h {% H/ C7 x2 t: Y" g/ B - )
+ j1 D0 f! t# @/ L: g$ Q/ J - (T) I3 C4 @3 t, b" T) j
- t3 ; Return t3.
" }1 Q+ {: X' d. ~1 U. ? - )1 H, V% S h" O) e6 V
- )
, p* Q- v+ E9 ]# } - )
# Q/ q! F* ~' i/ S - ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))
; @+ |! c* c. e+ M7 @0 w7 G - ((= t2 8)
1 I. h" H( |1 p - (if (= flexvar gtads 1)
1 d3 r: c, F2 |8 C( ~ - (progn
T/ g5 y. R- Y- U/ L6 Q - (prompt "\n>>Layer name to add/<RETURN to remove>: ")' J& U) \1 g# T! [- }0 U. x
- (gttable "LAYER")
% t1 @/ I2 t9 D1 F - )0 t7 G- n2 }4 s9 g5 ?+ F
- (getstring "\n>>Layer name to add/<RETURN to remove>: ")
1 X3 Y/ @. o, x# w - )/ l0 C/ `0 \4 ~1 d, L/ P- v
- )
; d4 c0 z% U! s( \' U/ [/ l# b - ((= t2 6)
; t( @, M9 M: O& I; E - (if (= flexvar gtads 1)- m9 Z. z* o) M
- (progn
+ k0 p: U# }& t8 Z8 p+ p9 R - (prompt "\n>>Linetype name to add/<RETURN to remove>: ")
, n5 z$ ]! P5 M' N. X - (gttable "LTYPE")
& X. G* ^3 d3 Q9 X - )
9 v) a8 S0 v$ }! x2 S" b$ m9 X/ N, h - (getstring "\n>>Linetype name to add/<RETURN to remove>: ")
! z. g+ O$ L( i2 v$ g - )
$ f1 X4 [7 @8 H9 i; v - )+ y4 k6 U/ ?! m' U+ S
- ((= t2 7) 8 m; ?6 ?5 Z; W* n5 L
- (if (= flexvar gtads 1)
! `; ?9 E( e0 m5 S' M. C - (progn. `4 D; u+ f$ ?1 H7 o8 U) u1 P
- (prompt "\n>>Text style name to add/<RETURN to remove>: ")# [' ?. d" o( j: o+ ?/ K6 s5 R
- (gttable "STYLE")4 e- v1 }) [! N# M/ T& e
- )
% l( S/ P* {( u7 G - (getstring "\n>>Text style name to add/<RETURN to remove>: ")
+ U5 l, y% D7 x7 P9 C3 Z - )
' @6 \; Y+ W8 l( G- V - )# M( l4 I8 w! q/ T+ R/ a1 L
- ((= t2 39)
# s( w$ { F6 m9 u$ j - (prompt "\n>>Thickness to add/<RETURN to remove>: ")9 U6 k0 `5 L) n/ ~; l0 s
- (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))
" M0 |/ }. m8 c T - )* {- A. i' X, J% a* x" h+ e
- ((= t2 66) (if (assoc 66 f1) nil 1))
, n9 m- C1 \4 H3 _% D - ((= t2 210)
; r4 t% O" T- I9 K ~: U - (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")8 }! Z G; w# g" d# i) |
- )9 I( D/ Q& x3 w( t* z+ Z
- (T nil)
, U6 v, D6 W7 Q - )! ~- a) a8 Y9 y+ N) B3 S
- )
, V% i* f( O: }8 V! r# T. z5 d - (cond& P$ r7 ~1 ^* U2 ?: R4 b
- ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity2 Y( E' g2 w2 r! A7 @. L
- ((and f1 (assoc t2 f1)) ; already in the list
* L4 ?: l. g2 ~" X( H- S. { - (if (and t3 (/= t3 ""))* T% c+ K% y A/ d6 h* ~4 n
- ;; Replace with a new value... : ]- U( ~( C( _; `- x! a
- (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1))
1 M0 p9 z! [; j5 ?. P" a5 V - ;; Remove it from filter list...; b' ~0 `' i4 s4 p& y* Q2 e+ ^8 w
- (setq f1 (ssx_re (assoc t2 f1) f1)) , ]( z; u% N& \9 s7 w
- ) ! F* Y2 y! O& p
- )
2 d2 s' k/ O9 N, v7 W$ C - ((and t3 (/= t3 ""))% X1 \: H6 W+ j: q; J
- (setq f1 (cons (cons t2 t3) f1))
, Z; l* a5 P# P8 H# }3 [! [* o - )- W% e5 v( S4 K/ g
- (T nil)
3 @! X* s2 \5 p9 D: B/ u - )
! C3 _6 `7 O: C9 M; f - )
: u2 q: \# ~* b. e' l - (if f1 (setq f2 (ssget "x" f1)))
5 ~) J/ q/ J6 m. D - (setq *error* olderr)9 W _/ }1 |9 U' }; U- [& E, x2 b
- (if (and f1 f2)
" a+ y) ^, Y+ D i' Q - (progn, l1 `! }0 t( d
- (princ (strcat "\n" (itoa (sslength f2)) " found. "))3 `, P% V4 x0 ?8 w; q2 P5 s
- f2
- K* m* X& o! J) a8 Q - )
$ ?" g7 L. k. m" E+ R# s - (progn (princ "\n0 found.") (prin1)). a' A# v$ a3 [" R$ e) u
- )
1 n1 p6 T# l, ` - )
; a9 U& l7 P7 R+ l - ;;;
4 t0 i3 x1 l! f, ^3 I- d/ y - ;;; Print the standard color assignments.
# }& _/ k$ y+ O" H7 ]) O - ;;;
+ G2 L, I6 j& t; u - ;;;$ ~6 c: O4 e/ A4 Z- W p
- (defun ssx_pc (): O5 M, {: g6 s$ K
- (if textpage (textpage) (textscr))% N. Z% G- o; Y5 r' }) P" ]
- (princ "\n "); \/ k0 P* }! P9 Y5 G$ v, E
- (princ "\n Color number | Standard meaning ")8 _/ } e, \, |' O W/ U( I( |
- (princ "\n ________________|____________________")+ _2 D- P3 W4 @# ~
- (princ "\n | ")
; n5 D# ?# ~1 f1 r: O8 A1 _ - (princ "\n 0 | <BYBLOCK> "); E6 N1 G3 o8 M. O* k, {# ^
- (princ "\n 1 | Red ")
* }4 i1 e5 N8 F9 J0 I - (princ "\n 2 | Yellow ")
! ]8 @# V! }5 J - (princ "\n 3 | Green ")
% h( b R9 B7 Z$ S( n; {" a - (princ "\n 4 | Cyan ")
; n p% l! V/ m* T' f - (princ "\n 5 | Blue ")
3 q: ]- y. R0 T: D e - (princ "\n 6 | Magenta ")/ s, B+ ]: D, ] @9 t
- (princ "\n 7 | White ")
7 R! e% v! K# N2 I& ]4 Q B% _ - (princ "\n 8...255 | -Varies- ")
0 x- c/ z2 c5 o1 X9 } - (princ "\n 256 | <BYLAYER> "); J! i. j3 |0 k1 A' I* f
- (princ "\n \n\n\n")3 }0 `1 ]# ~; L7 U0 g: U
- )6 d2 X! |8 P S8 z
- ;;;( U0 b8 c- y! f" M! C; ~& h
- ;;; C: function definition.( M" |! H" S: b1 a* B1 ~; ^1 d! _
- ;;;
9 n) \6 n: u; { - (defun c:ssx () (ssx)(princ))5 v9 o$ |+ [% ?3 H: k g% r& y
- (princ "\n\tType \"ssx\" at a Command: prompt or ")# T/ J' B4 N5 l# p; c1 G
- (princ "\n\t(ssx) at any object selection prompt. ")' Z+ s6 I1 I8 t. Q
- (princ)
4 e. T7 j9 B: i& X7 K - 7 ?* B6 I" y. B& {
- ;;;--------------------------------------------------------------------------;
8 B! |8 `& J. r$ u5 V1 m - ;;;--------------------------------------------------------------------------;$ w0 I' ?- ^+ L0 u' T* f
- ;;;--------------------------------------------------------------------------;
6 y' {2 k& F7 D) _/ S - (defun S::STARTUP ()
$ [8 v* m9 j# _) O/ N6 m - (setvar "cmdecho" 0)
/ j T( |) o. D& T - (setvar "cmdecho" 1)7 ~' I. M% `: z! B# b* y2 l# t. N
- (setvar "LTSCALE" 10)
* Y% k' Q/ Q" _4 Z6 w/ b3 z
% d* s) n! N: y7 K- ;(command "_load" "chenKH.fas")- e& M9 Z8 ]! O; p) ]) \
- ;(command "_load" "ctcot.fas")
1 F/ O: q" H& v. W/ U3 D - ;(command "_load" "damdoc.fas")
7 r. b. @ A4 G; j+ N( X# o' n - ;(command "_load" "ghichu.fas")2 ?& e+ Z# b$ X
- ;(command "_load" "hamtutao.lsp")
6 K( A2 a4 N+ X! L# y t/ q$ X - ;(command "_load" "KHOITAO.fas"): F# P9 K0 o1 V- V T5 H/ A- n6 b: z
- ;(command "_load" "KHthep.fas")$ r& k/ `9 G0 u! A5 [* i
- ;(command "_load" "mbmong.dcl")
' P- m7 w- h, D4 a B: Y1 i - ;(command "_load" "mbmong.fas")! n) W7 u" }4 O7 C) D
- ;(command "_load" "mccot.fas")3 E, {& O9 T- Z1 r9 d3 U N" f7 X
- ;(command "_load" "mcdam.fas")
6 r3 B6 v( M Z9 { - ;(command "_load" "mcmong1.dcl")
9 ?- e% J2 {- \# b - ;(command "_load" "mcmong1.fas")
' l ~9 b; d& C - ;(command "_load" "mcmong2.dcl")
, l! Y$ a" ~+ g( E$ p7 s! S2 ] - ;(command "_load" "mcmong2.fas")8 D( [7 `0 Q. t) O
- ;(command "_load" "mcmong3.dcl")8 Z8 W8 Q4 P" Y- z
- ;(command "_load" "mcmong3.fas")6 s2 l+ { i) J7 ]4 T; t9 V
- ;(command "_load" "mcsan.fas")1 [. F1 n1 t' ]9 i5 S
- ;(command "_load" "thepdai.fas")$ S- J* Z3 W) r! x- z
- ;(command "_load" "thepdoc.fas")
5 R% v" o- c5 P4 N - ;(command "_load" "thepmb.fas")/ Q+ h$ [3 Y0 d2 L+ ]( m
- ;(command "_load" "thepphbo.fas")
. L! b- e9 x5 b. Q: @0 B, F4 G - (command "_script" "thongso.scr") k1 r2 Q* r- \5 E& M
- ;(command "_load" "thongso1.dcl")& L% N' b4 S8 @% T
- ;(command "_load" "thongso1.fas")
5 k9 L# j2 x/ s3 d* f - ;(command "_load" "thongso2.dcl")- {: H' Q+ t0 N. Z( K! B0 o2 Z& Q
- ;(command "_load" "thongso2.fas")
7 x7 A: U5 p1 _0 ~! q% s8 ` - ;(command "_load" "tietdien.fas")
" Y: A' V7 D7 ]( R+ b - ;(command "_load" "vehan.fas"). E1 \6 ^3 X- U5 ~
- (command "_load" "phamDuy782006_TKT.lsp")
- k6 p1 W- e: i7 @' } - (command "_load" "phamduy782006ganhtd.lsp")
! E4 k& F/ }- _: [$ H& t+ f ^9 H- L - (command "_load" "phamduy782006ganhtds.lsp")
: M6 i4 a% t* ~* P1 f - (command "_load" "phamduy782006htd.dcl")
* t3 d: \4 R) c s7 _ - (princ)" R7 q: t ?& g+ S; R! J: h. U$ L
- ): s& m( b9 b* m$ ~! w) D9 u- q
$ `5 P7 d3 c. U# p0 d4 n- ;; Silent load.. H: `" h8 { E0 m' L( d
- (princ)
1 N* N0 Q. {5 g8 K# ]* `# j' w - ! `. C" a; \/ A e" D) X
, H' W$ A% c1 O( ]- ;; Silent load for the Express Tools.
8 \2 w; h* A" `! I - ;; Altering this line will affect Express Tools functionality. Y: z; G( k$ _7 X8 _
- (load "acettest.fas" (princ))- J( M8 {" D5 m0 |5 K5 p+ s
- �32
Sao chép mã
8 N9 M }( A g9 T00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ
' r- J$ H' b8 L1 @ |
|