|
|
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 |
- ********************************************************************************# x$ I* t* [: z+ ]
- * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *
' I1 u8 c1 Z( E3 r; z- N - * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *
! z0 R; ~4 V( h/ C$ G - * Suu tam & Soan *
; ]3 a4 O) |8 R - ********************************************************************************
' W+ H# r9 z2 v6 { - / ]8 d* ^; x4 u5 V% l
- ; Next available MSG number is 104
$ K. l" t& h( K# h F5 S - ; MODULE_ID ACAD2000doc_LSP_% m' C( j; x$ ~8 a y# V0 F8 p
- ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 2000
4 \4 M" ?! L' E8 \2 X, R1 \8 U0 W! y- D - ;;;
7 S7 P z# |3 C+ ~4 I( L# k: I - ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.: M: n6 Z, R3 \4 g9 I( K
- ;;;
8 E+ v0 O# x# L* ~% Z2 J6 t - ;;; Permission to use, copy, modify, and distribute this software
2 R7 a* F( k6 Q4 i - ;;; for any purpose and without fee is hereby granted, provided9 W7 k3 d$ K7 y% }2 s, k
- ;;; that the above copyright notice appears in all copies and
5 `, N; o% K6 l4 q - ;;; that both that copyright notice and the limited warranty and
0 f* g( h j! P% d5 K0 ?3 q - ;;; restricted rights notice below appear in all supporting: _; ]3 y: j$ ~% E1 U
- ;;; documentation.
' A" S8 m$ a& j, D - ;;;
7 a' B1 O* S( h3 C4 k1 t - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.: t% |5 d# G' h. }9 u
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
! w; p/ f, b9 m. ] - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
+ y0 Y" O( Q/ s; q& O - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
i7 k5 m+ `. z, l( G' t& Z$ A y - ;;; UNINTERRUPTED OR ERROR FREE.9 d0 X: Z% A# l; k
- ;;;
/ l4 L( N8 e% m - ;;; Use, duplication, or disclosure by the U.S. Government is subject to d" ~. {. u1 ]% O9 v1 L
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer9 U, x, Y3 e5 q5 }4 d
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) * p, f3 U2 ~+ J$ y |
- ;;; (Rights in Technical Data and Computer Software), as applicable." u* j1 B% n& {' @4 p4 o( f
- ;;;6 e; z$ B" }% a4 i) @& h5 v9 {8 \
- ;;;.
$ u/ b' P2 n; i. |) L - ;;;
0 p; T( S* r' s - ;;; Note:
3 A% N5 m( V- y% J' |. ` - ;;; This file is loaded automatically by AutoCAD every time / z& V% e7 y8 P$ y* i# ?/ n! q
- ;;; a drawing is opened. It establishes an autoloader and
0 R& A: y ^ k( J( @3 a# k( B' d3 Q& L - ;;; other utility functions.4 h: ^+ T$ ]2 w' q9 ~' s2 {/ X6 {
- ;;;
8 \" c$ u" S3 d! E F - ;;; Globalization Note: 4 A9 T1 L6 g& P4 c0 N' p
- ;;; We do not support autoloading applications by the native 9 H5 I5 c8 S+ [( O6 I
- ;;; language command call (e.g. with the leading underscore; h& U0 Y2 I) g2 j* n
- ;;; mechanism.)' Y$ u. ~% G- ]* |7 E$ R
- 2 s' H6 A. e4 o4 `: _
- 0 W$ _; p" ?1 z
- ;;;===== Raster Image Support for Clipboard Paste Special =====
# h9 I$ ]- w3 e0 M9 J. @& k - ;;
* c1 t- D+ e1 h - ;; IMAGEFILE
5 O+ C' T- S2 [0 A - ;;
9 n' z) d* a {' E, M6 t1 ?9 d - ;; Allow the IMAGE command to accept an image file name without! I) L; K8 e$ l( w1 a
- ;; presenting the file dialog, even if filedia is on. j! G- H7 Z* h9 U5 v
- ;; Example: (imagefile "c:/images/house.bmp")) h) a) \ X6 r! i7 m4 {
- ;;
$ R1 B9 o; K$ q) h5 D - (defun imagefile (filename / filedia-save cmdecho-save)6 m5 k8 o5 z) m" \
- (setq filedia-save (getvar "FILEDIA"))9 z C( E& Z; U1 J
- (setq cmdecho-save (getvar "CMDECHO"))
5 G1 j, ]. U' F/ i0 \, X - (setvar "FILEDIA" 0)7 C3 d$ _6 z! @( B
- (setvar "CMDECHO" 0)
0 {; t! Q3 ?; l2 X! T0 @! o( `8 w - (command "_.-image" "_attach" filename)9 Z1 k; g6 T# Y6 m0 \+ t
- (setvar "FILEDIA" filedia-save)8 i$ T! J# U# g; m; w
- (setvar "CMDECHO" cmdecho-save)
9 }1 W5 a- P# c* R9 l! p# R - (princ)+ I- Z# K9 J# T3 X* ?0 l0 d
- )
* e$ E! c* a% c
6 k+ p7 J, S) K3 z. f- (defun c:zx () (command "zoom" ".5x"))
# \8 t/ q( S, p1 W - (defun c:zz () (command "zoom" "p"))
# Z5 h3 w" p) Q* o. D5 z V - (defun c:za () (command "zoom" "a"))3 C% C. r0 |! k6 C: [' \# i9 \
- (defun c:zd () (command "zoom" "d"))4 V2 m1 s& @& Q0 G: o. M
- (defun c:ze () (command "zoom" "e"))
/ I! W) h, J7 F - (defun c:zr () (command "zoom" "" ""))& {6 _& E( H! X( t0 Y; T
- (defun c:vv () (command "ucs" "v"))
# e. W {$ i. }7 m - (defun c:co () (ssget) (command "copy" "p" "" "m"))
. `: d* O% l3 M; o( \2 U - (defun c:c () (command "circle")). |! I9 m& S, A1 p
- (defun c:rt () (command "rotate"))
- U/ j; r1 {7 ?" L! Q - (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))
3 f9 u% V1 X' r% S3 R - (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
9 s# t7 K% z7 ` - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
! t2 D. d, z# _% D0 E - (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
j; W* B# v3 u; I: y* a( _( s - (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))/ X( o( B, }) H5 g u
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))/ H, q {, x$ |
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
7 G" @2 J! c* t - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90")). e3 A6 l, s0 @; a5 Z! B+ N
- (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))3 ?" Z4 O2 v r
- (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))7 n2 l: j: ^# a% w1 C% y
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
, C) D6 }, S% f# F, ^/ _ - (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y"))
" f I U/ z% x- t$ s- I - (defun c:fd () (command "find" "p" "" )(princ))(princ)
H+ z T+ ?" |7 O - % q Q: i! Z' L, o
- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)! p2 D W( c4 g1 \9 E
- (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)+ n8 G5 K0 }! }3 |
- (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ)
: B$ ?. z9 _4 b" @6 J - (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ)
, B7 h2 o2 x5 a0 I! l - (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))
1 f8 P, f; g1 i2 R+ a1 d( Y - (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n"))
8 c6 J8 X% z6 p% F8 k - (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n"))
& A3 B- }( E/ h8 p' j/ }
. l/ W. J9 d7 q$ ~4 b- h% l. i8 F- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))$ _9 [) q0 z, }8 F# R
- (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))
, c3 X5 q' w& R+ A q& W - (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))
9 w2 c7 ]* o) T; ~% S2 l - (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n"))6 R$ v. \, P1 i( h% h; U
- (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n"))
9 m0 \ }& B1 \% t0 l. }& n& S - (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))8 S% N3 k( B) ?4 `& U
0 Y- Y) P1 O- L% Y- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file
& S' ~# Z# j) B/ I' k
- k3 `- ?2 ~# ~: N. `- ;free lisp by cadviet,cd2k44: D% I' Q* D8 s. V
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
: H, c7 o3 R7 h X - (defun c:FTEXT (/ ent tstyle )
/ b/ s' A& q. R& i2 N - (command "undo" "be")
/ N+ i* J- d- V o& R# ?7 j, Q - (setq ent (entsel "\n Pick text :"))
5 f4 a/ P5 r3 Y- n - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))' n' J5 U- h8 E' x; k
- (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
3 Q6 ?. l+ k7 o0 b2 |7 k4 ] - (setvar "TEXTSTYLE" Tstyle)9 P+ W1 x4 @# g, I2 v
- (command "undo" "end")
1 [# w8 w$ O6 d2 f - )
: X1 ?7 y6 X7 Z8 q9 M6 ] - ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)4 u# S2 k& M& \, S- m
- : F' M) y4 M, H9 [% B# e) j P
- ;free lisp by cadviet,cd2k44# w9 z; A, V8 D4 v8 |1 h5 K
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
. O5 v; s8 [5 M, z3 x - (defun c:Fvnh (/ ent tstyle )+ r0 `" g y! R8 |7 X! u4 Z
- (command "undo" "be")
) [$ X, K* q3 a' C6 x - (setq ent (entsel "\n Pick text :"))
. r. o+ g0 f, b& s - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
0 P; J8 ^4 N. x7 i - (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
- k' \7 f) T0 X1 w p8 k9 @ - (setvar "TEXTSTYLE" Tstyle)
" q5 j A& S) `- x& {$ x: Y - (command "undo" "end")) M" ~1 R$ A1 ^: W2 _9 d
- )
, J6 l: P" f' u0 I5 q4 b! W2 [. P - ( l; ]; s1 G5 s7 V. S( ^# {
- ;free lisp by cadviet,cd2k44
7 @( V' q- {! N) ]1 l - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830$ d g( D4 R- z4 @( c/ _
- (defun c:Chbg (/ ent tstyle )6 `' ?4 {" `1 H3 y3 r# @
- (command "undo" "be")
! {: N' N0 X$ P2 I# b6 S1 Y5 T - (setq ent (entsel "\n Pick text :"))
) @( d9 `6 v5 s$ W% H3 u" X - (setq TSTYLE (cdr (assoc 7 (entget (car ent))))); f) [, a: |( {" K: v
- (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
7 h+ V! h" f& N. @6 I - (setvar "TEXTSTYLE" Tstyle)
^! A; }. A) p# `2 H" N - (command "undo" "end")
0 |/ g% V3 Z; w! @' k' L - ); | Y- f- i. u. I$ M+ U D
' i4 h& t) o7 _) w- ;free lisp by cadviet,cd2k44* T5 ]: M% Z" B+ t$ Q% n/ m# k
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
) f: Z2 e" q& D) q - (defun c:Chsm (/ ent tstyle )
) Y6 T% Q# s) I3 |7 b - (command "undo" "be")( m: ~9 h+ j8 T1 C% z4 o: k
- (setq ent (entsel "\n Pick text :"))
4 h- }8 v# C F9 Q% u& P7 ^8 ` - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
' f$ X. e+ C5 D: _ - (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
) U, S( X5 ]( @9 A - (setvar "TEXTSTYLE" Tstyle). Q& j! H" T3 L* ?: Q
- (command "undo" "end")
! n1 V8 }5 l: D4 o( t+ W# h2 q# [ - )
1 m/ D; k6 E9 Y: `/ `6 U! P
s, s' u: o: C# b7 X9 O5 H; R- ;free lisp by cadviet,cd2k44. D7 C" i7 A# z# c9 f1 I! b
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
( X1 V+ o! W7 y( d - (defun c:Fttf (/ ent tstyle )% Q& A! i% Q4 Z
- (command "undo" "be")' B6 A* Y' A, H* P/ y7 C8 R* j
- (setq ent (entsel "\n Pick text :"))
0 ^% Z! O: ~" u5 I, G - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
) A) X( F6 l0 M3 [9 N) @ - (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n")
7 f1 v ~8 Y# I4 V2 S& j6 x6 ^ - (setvar "TEXTSTYLE" Tstyle)
7 J& a7 v( M( C9 p - (command "undo" "end")+ s5 s+ u e5 c' g, j
- )( m7 |* T( P6 d, }6 z
- 1 Z R* M) Z) y/ p2 D
- ;;; ============================================$ x6 o: K- a$ h" U4 m l- f
- ;;;+ a* |, i2 M- y M: K
- ;;; LISP Creater Tao Duong Dan AUTOCAD2000# [+ y5 _ y h; }3 v* w
- ;;;
, }7 a$ V7 v b# W( x1 i. z - ;;; ============================================# V/ y+ O2 n+ \# }1 z& k/ Z
, t: z3 _9 J/ m9 j( d w+ s- ;;; ============================================6 w/ f5 p& w* P* ]4 E. g
- ;;;/ F' @$ S) b' a" x, \! z& G" Z
- ;;; CREATING FROM AUTOCAD2000
% q& k6 e, S1 m+ h - ;;;+ A6 v3 O/ ` \7 l" H+ y
- ;;; ============================================. j }0 {. j+ L+ o' E3 G
- 3 |0 V9 J- a3 R
- (setvar "INSUNITS"4)! B; M( z$ @1 q( ?; M) C
- (setvar "ANGBASE"0)! K7 }/ x' }9 L( I' w
- (setvar "ANGDIR"0)# q! r. N9 x+ Z
- (setvar "AUNITS"0)5 I9 e$ d7 c9 b' e) Q8 U
- (setvar "AUPREC"8)) C- h* ]0 @3 c+ [# R } g4 D& R% p7 I
- (setvar "LUNITS"2)6 M. w: j: S+ d/ Z, ?/ C
- (setvar "LUPREC"8)
% _" Q, P/ w8 j* }( u' M3 x! X - (setvar "ACADLSPASDOC"1)
6 [" R, O( V! e - (setvar "pickbox"5)+ N# C; a$ h/ V; c; a' b) J6 O, i
- (setvar "blipmode"0)
7 [. Q7 T) @+ W) c - (setvar "mirrtext"0)3 A% k7 k3 t& b' N+ o; ^" I
- (setvar "cursorsize"100)4 [- m6 v" {4 |% C. A7 G9 |
- (setvar "ZOOMFACTOR"75)
$ @, }4 I# Y0 T9 Y - (setvar "LTSCALE" 10)
' H b0 d) u& c& {4 d - (setvar "lwunits"1); Y- B. K2 O/ w+ x- [
- (setvar "DIMBLK" "Closed")& n- C2 O' D# E. d# s
- (setvar "DIMGAP"0.0693)3 i4 S6 O* I+ y5 F* J6 k, k
- (setvar "DIMASZ"0.20)8 Y$ ]* w9 `* `' \' E
- (setvar "DIMCEN"0.2)
% G {" Q( s3 n; K+ l( @- U9 m - (setvar "DIMDLI"0.1)! l6 _+ H; P- U" ]* D
- (setvar "DIMEXE"0.0693)
9 k9 q( V& e; v1 ?2 A( {$ M* ? - (setvar "DIMEXO"0.25)
9 h" t8 b0 H% h - (setvar "DIMDEC"0)
7 I; w4 L! W: g1 Q+ } - (setvar "DIMTIX" 1)
& L: O/ M' @6 U& _" E& I - (setvar "DIMTXT" 0.099)$ e( e6 [# y8 S( g; }( Y+ p; x
- (setvar "DIMCLRT" 7)2 Y: \7 @! L3 c" ?9 V7 ^4 B6 }9 l' G5 j
- (setvar "DIMTVP" 1)
( x( L! j0 j5 M8 W3 T - (setvar "DIMJUST" 0)6 n j6 t! I+ X* o9 A! `/ a
- (setvar "DIMTIH" 0)
- M: { |4 z! ~. z5 i- r - (setvar "DIMTOFL" 1). t8 m( }: K9 A' I Q" d9 F c
- (setvar "DIMSCALE" 1111.1111)
% n5 B" ^8 F4 B' `
! V1 P( Y8 z1 h: {7 o
8 E- f- T7 ]" ^6 {+ f7 [- 8 n$ ]& B6 r6 x2 ~- e: t: Y
- (defun c:zp () (command "'.zoom" "p"))
" Z, g5 K4 E; _ - (defun c:zz () (command "'.zoom" "p"))+ U6 p5 b+ J b4 q% n$ F' _
- (defun c:ze () (command "'.zoom" "e"))
2 [ {% A- Q& }; [+ G1 U, q' ? \3 S - (defun c:za () (command "'.zoom" "a"))
" y6 c2 V4 K; f7 E, m8 F ^! I - (defun c:zd () (command "'.zoom" "d"))
1 @) v5 y5 e! N% I* A - (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X")) @/ K. L: i, [. |0 [( Z K+ y( c
- (DEFUN C:ZX () (COMMAND "ZOOM" "2X"))/ W0 X! G" r9 c) E, @; [. {
- (defun c:de () (command "ddedit")(princ))
. `' O9 P( z6 S: q7 Y( e - (defun c:dda () (command "Dimaligned"))
" s( ^1 W2 ]0 b3 G9 ^0 e# x - (defun c:ddb () (command "Dimabaseline"))2 k3 d9 D. u; o( G# `& f4 r7 S# d
- (defun c:ddc () (command "Dimcontinue"))
0 S; Y! b- }6 p3 Q. ? - (defun c:dde () (command "Dimtedit"))+ e! i6 W# Z x2 e6 h) q: y
- (defun c:ddf () (command "Ddattdef"))9 i5 {' ` m! r5 D, n
- (defun c:ddi () (command "Dimdiameter"))8 R: T+ u2 a& w9 z9 | V7 O
- (defun c:ddl () (command "Dimlinear"))
" Q* u0 P2 t; U8 N5 ? ~2 g: @& U - (defun c:ddn () (command "Dimangular"))
' }* s2 y+ {4 J* c" ` - (defun c:ddo () (command "Dimordinate"))7 h, c3 Q& _! k7 X4 X* U
- (defun c:ddr () (command "Dimradius"))
: s1 Z" o8 z b) g4 A: M - (defun c:dds () (command "Dimstyle")) O3 t# {: T0 {6 W2 R
( k/ r3 L4 j' l1 p4 ~3 g4 V: u- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ)
9 z2 [8 u/ R# J) L# X7 ?/ N& ^ - (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ)
# @$ i; S9 M- z! v& u- B( `. d - (defun c:UU () (command "dim1""update""all"))
9 w3 y: K+ h4 T7 V2 M* j* r - (defun c:ded() (command "dim1""tedit"))
) N/ i/ S; F! p: ^0 s+ g3 j5 E! G+ ] - (defun c:da () (command "dim1""ali"))
* z3 g; ?2 I6 b5 |5 h& A$ _* }5 m - (defun c:dll() (command "dim1""l"))3 ^% Z/ J$ G8 S$ y
- (defun c:dan() (command "dim1""an"))3 p3 W) p6 K c' H2 v* V% F) K
- (defun c:d1 () (command "dim1""ra"))
" \, @2 A4 M ]' f! z$ I5 g; W - (defun c:n () (command "dim1""new"))
) \. R6 J& O0 i# [4 r' ? - ) l! a7 p) _- @
- (DEFUN C:PE () (COMMAND "PEDIT")), m4 ~! D- o& t5 t6 m0 b
- (DEFUN C:PL () (COMMAND "PLINE"))
0 J `0 C1 [# m: ]9 S% ^ - (defun c:dd () (command "dist")(princ))0 H6 z9 J- m+ F0 P+ G
- (defun c:w () (command "pedit" pause "w" "au")(princ))0 n& \3 c' J% f
- (defun c:pg () (command "polygon" "polygon"))# F$ e7 n4 ]2 y6 P, m
- (defun c:el () (command "ellipse"))& r9 j- _3 y! c8 G
- (defun c:xe () (command "explode"))' D. U: v2 \" V5 }
- (defun c:eex () (command "extrude"))
2 d! R; m& z o9 G% K7 n$ Q' A - (defun c:xg () (command "xline""a"))$ @ _( @1 F; {! ~
- (defun c:xh () (command "xline""h"))4 @6 S% r6 Z, S0 @4 S# m( G
- (defun c:xv () (command "xline""v"))
7 J2 `3 C1 w9 s4 Y% m6 V
! q [# a$ p8 S- (defun c:oc () (command "osnap""cen"))5 R ^3 [& z; ^% b0 E" T/ z4 I' U
- (defun c:od () (command "osnap""nod"))" n# Q6 x/ w; G$ ]7 A9 M
- (defun c:oe () (command "osnap""end"))
6 ]! i' ^0 N; K- `! ]$ J5 E5 F - (defun c:oi () (command "osnap""int"))
# ~3 {: ?* h3 Z/ u" r - (defun c:or () (command "osnap""per")), e1 }8 r- T+ p
- (defun c:on () (command "osnap""none"))& F) v, T; |0 s, |) Y
- (defun c:oq () (command "osnap""qua")): N* c3 c0 g, r+ |4 L [+ \- C+ \ i
- (defun c:om () (command "osnap""mid"))" g, j# s' p. P; ~$ T
- (defun c:ot () (command "osnap""tan")) e2 J+ [' F9 c$ Y6 @; [
- (defun c:oin () (command "osnap""ins"))
5 [4 j1 d9 t! l! k" y) S - (defun c:oa () (command "osnap""nea"))" g L$ C) Z* f' D
- (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))
# { r# c/ r, `: p- ^- h$ b; x - ;(defun c:du () (command "dim1" "up" "s" "pick" "other"))- Q& A3 D: G- p3 b2 E/ r
- ;(defun c:nn () (command "new" "y" ))6 [4 R+ h: W9 K! F8 e
- / c9 @7 I/ K, Y$ |
- (defun c:/ () (command "limits"))
0 b% U5 q" L: Y: B - (defun c:`1 () (command "region"))
, f! T! B5 Y& ]: v: n) B& g - (defun c:`2 () (command "subtract"))
4 \. n1 ~" D$ Y; ] - (defun c:`3 () (command "union"))
, l) n r' l, `' {0 v- ] - (defun c:`4 () (command "intersect"))
3 Q6 }! t$ u, L4 g - (defun c:`c () (command "cal"))' B5 x9 S3 ?: H0 K
- (defun c:`g () (command "Polygon"))
# m5 I2 ], X* T' Y) l0 M! z - / c4 H7 U/ T3 z5 Y1 e4 x4 h
- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ)): ?# `) {+ d! M8 D- J, m
- (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ))# Q" O+ l3 Y( }1 Z
- (defun c:ip () (ssget) (command "print,_plot" ))(princ): C9 v5 n; V7 b1 h
2 E8 z7 f2 t) ]7 L ^; @3 r k- |- (defun c:ddm () (command "ddlmodes" pause))
3 L7 C p: L4 p - ! c7 j6 t, U1 c+ z
- (defun c:sha () (command "shade" pause))3 ~4 m8 A# v% C5 s! ]; @2 m
- : m* D/ x" b1 q4 p8 S- Y6 p
- (defun c:sr1 () (command "surftab1" "p" "" pause))
" ?- s' ?" r- Z, I c9 z - (defun c:sr2 () (command "surftab2" "p" "" pause))
3 ^+ Y. \2 t9 |& `7 P4 t, w
" q4 A1 D: m" }- (defun c:ad () (command "audit""y"))
9 P, g& }/ x8 v2 Y8 h4 { - (defun c:q () (command "quit"))- s- v B& k8 v# Y$ T/ h5 M, W
! z& D; r; W. g' h& x# S6 g7 F- T- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
. U6 ]- l+ d1 e0 d9 T: Q, W - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))" G8 D8 A+ N& ^
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
0 J. q, R. g @1 f( W& o - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))
$ j9 K6 r: c: c! ?/ @ - (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))% N" p7 ^4 }* O3 D& w1 K
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
2 t0 z/ ~; N( {4 N - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
4 `7 o% K( G6 O$ w7 z - (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
7 f4 I f6 q6 ] ~3 ]% W - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
- W6 \' }. `5 o/ e, C- p7 H" u - ( G' f! c6 `/ X; V* Q. e
- (defun c:u3 () (command "ucs""3"))
- P0 i+ v1 p( B$ i - (defun c:ue () (command "ucs""o""end")), N7 v9 l0 k: T2 |
- (defun c:ui () (command "ucs""o""int"))
2 Y$ B8 g# ?' ]: ^) z3 E8 A - (defun c:um () (command "ucs""o""mid"))4 U' C5 C0 ?( a
- (defun c:uc () (command "ucs""o""cen"))
9 b1 [% \; @3 q - (defun c:uq () (command "ucs""o""qua"))
( d. ^* y5 F0 o6 K$ @# q0 o - (defun c:3s () (command "ucs""3"))
2 x4 X: Q# B6 ~. h+ S; l/ q - (defun c:sx () (command "ucs""s"))7 `. L N( j, q. j* J& y2 o" B
- (defun c:sf () (command "ucs""o"))
& F2 Y9 j' y' V+ E! `5 j+ _ - (defun c:sz () (command "ucs""p"))
: v7 C+ c8 Q: X) d, ~1 o4 B, `1 x - (defun c:sr () (command "ucs""r"))! j0 Q. o2 k8 G: x
- (defun c:sw () (command "ucs""w"))0 M4 l) m8 A3 U. o0 C9 s! h
- (defun c:fv () (command "ucs""v"))
* S- P. v0 ^- Z" C+ w2 h+ B - (defun c:ux () (command "ucs""x"))8 }( h0 i( Y6 {
- (defun c:uux () (command "ucs""x""90"))% ^( C9 v( k7 O6 }* F- |$ _" }- D
- (defun c:xxu () (command "ucs""x""-90"))9 F( _1 f6 `* P
- (defun c:uy () (command "ucs""y"))* h$ T' Q& H$ m3 F5 N
- (defun c:uuy () (command "ucs""y""90")). J3 X5 h# G6 F! M% F! Z
- (defun c:yyu () (command "ucs""y""-90"))' ~% `4 O: g8 n: V E2 r- \
- (defun c:uz () (command "ucs""z"))6 c2 p; _8 S' f% G3 ]7 ~% ]
- (defun c:uuz () (command "ucs""z""90"))
( U) w% g2 q+ K2 f7 G6 ?# Y - (defun c:zzu () (command "ucs""z""-90"))) w$ c! {! M- L0 j2 D
- (defun c:uci () (command "ucsicon" "Properties" ))(princ)" @ c" b+ K s( b
- (defun c:ucm () (command "ucsman" ))(princ)% Q8 m6 G. j, l z6 Z; W
: Q0 A1 _8 J" m8 n- (defun c:sa () (command "vpoint""_non""-1,-1,1"))
- f8 Q9 p ~% V* ?4 C' U) d - (defun c:sd () (command "vpoint""_non""1,-1,1")); N3 V. n! j$ l( R. J/ n
- (defun c:se () (command "vpoint""_non""1,1,1"))
" `3 G4 c& c" u% I* [" } - (defun c:sq () (command "vpoint""_non""-1,1,1"))8 Z" h8 X5 h& G0 Z ?& r8 b
- (defun c:vc () (command "plan"""))' p6 \3 u: y; _/ g" ]
- (defun c:vd () (command "dview""all")); k$ T) G) E* d) @
- " G3 s; e3 {9 x! r
- (defun c:TT0 () (command "tilemode""0"))
/ v; q6 M5 [% I( j - (defun c:TT1 () (command "tilemode""1"))5 T J. o, R) t# P# `) J1 e
- ]$ j- o" }. H4 n- M- (defun c:vt () (command "vpoint""_non""0,0,1"))
. `0 O9 X0 |6 Y7 i, `3 @ - (defun c:vb () (command "vpoint""_non""0,0,-1"))
& V i$ A# x4 J( ^/ n' ^ - (defun c:vl () (command "vpoint""_non""-1,0,0"))
+ {" r$ @5 x/ Z$ k, m - (defun c:vr () (command "vpoint""_non""1,0,0")). g# Y# @! `4 q7 n$ c- d- l6 s$ U
- (defun c:vf () (command "vpoint""_non""0,-1,0")) J& y [; x8 Q9 c
- (defun c:vk () (command "vpoint""_non""0,1,0"))! |- q' \" d$ D5 h# m5 e
3 F9 J$ X5 D& ?- (DEFUN C:MM () (COMMAND "MIRROR"))
" _/ ^! P K4 s2 L# r# z' |/ S3 @ - (DEFUN C:MP () (COMMAND "MOVE" "P"))
( h; C2 D* o) d% C, w- x
5 B- G7 T+ E) J6 g/ x5 ?- (defun c:mee (/ a). q- S' V0 w( H! h9 x
- (setq a (ssget))(command "move"a"""end"pause"end"))1 T5 P2 O# p8 p$ G) u, v1 b. g
- (defun c:mc (/ a)
9 e( Y+ @+ V3 \1 v% d; O# F6 p - (setq a (ssget))(command "move"a"""cen"pause"cen"))) f) @9 I5 U0 [( M- V
- (defun c:cc (/ a)& H8 c. O" J8 t0 L5 m, l( E
- (setq a (ssget))(command "copy"a"""m")); {/ i% r0 f, a0 v8 h0 |6 p
- (defun c:ce (/ a)
; u1 Y, C4 E' D, x - (setq a (ssget))(command "copy"a"""m""end"pause"end"))
, X, v7 h* C a) {5 a* u - (defun c:cn (/ a): ~+ e/ D1 E M3 J
- (setq a (ssget))(command "copy"a"""m""cen"pause"cen"))
/ h+ a8 N9 J$ P4 m* p$ A - (defun c:tl ()(command "trim""l"""))
, g) B' R; y% m, U - (defun c:tf (/ a)$ J+ [2 b( t) f% `# N
- (setq a (ssget))(command "trim"a"""f"))" u5 v8 `7 q5 E+ i
- (defun c:el ()(command "extend""l"""))% {) r" c$ ~- m9 d- `2 S. P ?. o
- (defun c:ef (/ a)
; D6 |/ l0 O% m8 ]. B: x' U) d - (setq a (ssget))(command "extend"a"""f"))4 _& R( K5 K6 C
7 U& L% D( s6 h# I- ) g! u* \ ~! Y' Q6 i. G
- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110"))
* q" ]& M4 v; `! w. G- Y - (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))9 Z+ n4 e7 m" S
- (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330")). e! p0 N' S! Y* Q$ N' V
- (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))- \: H* l/ p' p' w+ g
- (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55"))
8 D7 V ^! q8 g - (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600"))8 \( J3 v" F& |: A
- (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))0 [" ~" u) }2 d. c, G/ p& Y
- (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))
" ^9 m3 K8 J4 B! B9 [ - (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))1 e$ L m* k C& u! y! c, E
- (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))
3 G0 H1 E# I5 t( C4 o5 I- n - (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))
8 ~" k( O& h( K. S5 W1 v - (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))
, S& s/ s* S J$ d7 g: u4 e - (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))
, \" J, p) @! e4 X2 M: k# ]0 x9 F - (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))
9 n9 [& Q' y- g' E5 `; q0 c - (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))
/ }$ F" |" p( l - (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))+ V, u1 } i& q" N1 S% H
- (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000")): m5 V$ f/ M- S8 j2 R
- - i) }5 H8 h, L$ `% c' q
- (defun c:mla () (command "-mledit""av"))
0 @; S+ s- I% N9 f- f. i - (defun c:mlc () (command "-mledit""mc"))3 f m; |( \6 C) ]
- (defun c:mld () (command "-mledit""dv"))+ _( }, r: N* \+ S- i) ?
- (defun c:mle () (command "mline""end"pause"end"))
} a" Q b) A+ T - (defun c:mli () (command "-mledit""ca""int"pause"int"))5 a z8 E1 T$ t2 W1 d
- (defun c:mlj () (command "-mledit""cj"))
0 a4 G6 f" d' ~% } - (defun c:mlt () (command "-mledit""mt")), g5 `( o' Y: Y6 J4 o/ t4 @# u/ f- A
- (defun c:mlk () (command "-mledit""ca""end"pause"end")): q- g" I Y( K6 t+ C* L0 Z; l
- (defun c:mlw () (command "-mledit""wa"))( r$ ]9 U7 j+ ?, n/ l! g# B& E
- 2 ]* N+ r5 e. ?% N. o9 {% Z
- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA"))
* t* V0 W/ I O1 E k - (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA"))
( |8 e" d$ h! n5 E0 I4 X - (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO"))
) G( [& K; L, ~3 J - (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D"))
" c) R* b9 x+ `. Z - (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z"))+ B6 l6 U' K0 d1 h. t2 n) w
0 w3 Q3 r- N' S! j- (defun c:p0 () (command "pline""""w""0""0"))+ a J U `$ [- u
- (defun c:ot () (command "offset""t"))
2 E, x: _0 z) c( }- X7 }7 f - (defun c:t () (command "mtext"pause"j""bl""h"pause))9 n# g' P& ]$ R3 g5 ~7 F: I
- (defun c:uo () (command "ucs""ob"pause))! o* n8 F2 x2 x* J3 c. {
- (defun c:f0 () (command "fillet""r""0"))
% m$ ^4 d$ F$ { - (defun c:fr () (command "fillet""r"))
v l2 q3 w- c# J" `' S' y; l
5 A, y2 h( G6 V" v P, w- ;CHAMFER
- ]$ _$ T, ?1 z - (defun c:cf () (command "chamfer"))
; s# a% d, M) N1 P" h2 k' {. W - (defun c:cfd () (command "chamfer" "d"))2 M4 f4 I# }5 S5 P4 Y5 M" v2 i
- (defun c:cf0 () (command "chamfer" "d" "0" ""))1 h# W, r! D+ ~" D1 Y. Z* e
- + l& m& x( O# `6 N" U P
- ;FILLET# L( I1 p1 f+ k2 h5 ?
- (defun c:f () (command "fillet"))
/ I! l" t* M& k" ~( B4 [ - (defun c:fr () (command "fillet" "r"))/ {& N( s3 z3 C, N
- (defun c:f0 () (command "fillet" "r" "0"))
/ u! m) q& \: \1 `5 J) D1 j
, k4 z4 ]8 o! E% Z) f7 }/ D( _" I- (defun c:OO () (command "oops"))
3 d# o- j5 @" V. q/ k* x8 C - (defun c:dln () (command "dimlinear"))0 U2 W+ z) i5 p3 g4 x& q& n
- (defun c:dan () (command "dimaligned"))$ n; Q' _2 K5 M' |4 M( O2 z
- (defun c:ddc () (command "dimcontinue"))
2 {, k1 V, I2 i- I( U) g - ! ~0 Y+ ^" Q/ i% y* g+ V7 l
- (defun c:sc () (command "scale" "auto"))! y' i: Q4 w1 D4 D
- (DEFUN C:XO () (COMMAND "snapang"))# M4 _1 L, ^( g; E
- (defun c:cc (/ a)
' C+ q/ [, D. ^. s: L/ C2 @6 z; R$ j - (setq a (ssget))(command "copy"a"""m")) {/ a: L5 F2 C
- b4 ]6 C! k4 {# Q% O2 b3 n: a
- (defun c:PJ (/ a)& J3 ?8 U) Q$ u n$ N) d' j
- (setq a (ssget))(command "pedit"a"""j""all""y"))- b7 g$ L. o# L1 v+ K# a
- (defun c:JJ (/ a)
/ N; }/ n8 c8 S N* }. G8 x) y; T - (setq a (ssget))(command "pedit"a"""j""y"))8 K+ i6 ~, M; u' q
- (defun c:TN (/ a)
. e# J/ g+ ~) h/ H9 P% E" c" @0 ]% r4 p - (setq a (ssget))(command "change"a"""p""T"))0 C6 W* g/ d+ J3 N; D* U9 v
2 f) }1 D# A4 I1 T
3 H, p/ Z" L. F; a+ q& O- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD=========================1 K0 l1 L s. ~. W7 n
# l2 v! ?- }/ ~0 K' S! k- (defun C:IB ()(setvar"cmdecho"1)
0 s: p7 J Y9 c - (setq pt(cadr(entsel"\nSelect Block:")))
2 y( G- @+ b4 Z8 I$ I0 C - (setq e1(ssget pt))
( ^/ |% f/ l; X - (setq e2 (entget (ssname e1 0)))
, a& P- S( H2 ~2 x+ X - (setq blname (cdr(assoc 2 e2))) f+ t' ]7 d B5 B8 `0 `
- (setq oer *error* *error* err2)(command ".insert" blname))
+ ^6 v3 M" D, W3 O% N) p& u& R6 h
/ u& ^/ W1 Q; ^4 e) V- (defun c:II ()6 p- w& k1 u+ X# ?! {- }" L
- (setvar "cmdecho" 0)
- X/ i0 y9 R# u4 _3 X - (setq olderr *error* *error* myerror)
. x8 G1 ~7 U" b. w: D( q - (prompt "\nSelect objects: ")4 K! ~+ x1 C/ v+ ]
- (command "select" "au" pause)
# ~: }9 v# y% X) ~6 Q - (setq sstxt (ssget "p")
7 N4 N- l$ m: R - sslen (sslength sstxt)
) ~) b! z0 q' U& V; }% S1 `# Y - ctr 0. D! @2 L8 C8 a4 y1 Z
- )0 |0 D' F. c( Q n1 o
- (command ".undo" "mark")1 @1 A8 C% ]6 ^* p" S4 o- }
- (while (< ctr sslen)
+ o" D/ _9 y7 s3 _ - (setq listxt (entget (ssname sstxt ctr))
& @3 ~! b( i' |/ u8 M' v9 W/ m - txttxt (cdr (assoc 1 listxt))/ b* [ E4 H2 b, c- u
- enttxt (cdr (assoc 0 listxt)): O1 _2 E5 n6 Z1 o
- )% v @# L0 J; M! i& j2 T1 v7 W
- (if (= enttxt "TEXT")6 B I+ e3 i h4 Z- z7 X; Q3 I
- (progn; q3 j2 b7 w; u- P& k# w% O' t+ J
- (setq testxt (substr txttxt 1 3))
) g$ ^5 n4 v' g5 q9 I4 x - (if (or (= testxt "%%C") (= testxt "%%C"))' c5 Y* F8 ~: G5 A) C. [% ?
- (setq newtxt (substr txttxt 4))
- h/ m" F& U! N ]& @( y - (setq newtxt (strcat "%%C" txttxt))
' Y8 ~9 @- p* v% ~+ b - )
4 L- u. Z$ T* G* w7 B& J - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
" D& s4 V. w: u5 Y4 U - (entmod listxt), o! |, }" z/ u
- )
, q0 W2 z) Z* ]# Y. y - )( I1 M9 b4 l: }# d) m
- (setq ctr (1+ ctr))
. g' d- N* y8 G3 i - )# t3 C6 Z) Y: B. A z5 l M
- (setq *error* olderr)/ z% U1 M, z! x- t8 X; K
- (setvar "cmdecho" 1)
$ D5 g3 A5 p) F2 m - (princ): f4 A( o) p9 b' ]9 _
- ) Y% {# I1 g" m7 Q! Z* S
( Z. H+ C9 O$ w* W* \- (defun c:DG ()9 w! I D5 i, j, t/ B
- (setvar "cmdecho" 0)4 I8 W Z- c t! a& {
- (setq olderr *error* *error* myerror)
$ R0 N. e: w) p' Z9 P; n, N7 ^# l- i! P - (prompt "\nSelect objects: ")0 N- x" }( W7 u! D) V9 T1 _
- (command "select" "au" pause)
$ T0 {8 F P1 b. A" k. B5 P, F1 C4 ] - (setq sstxt (ssget "p")6 w0 }: K' L9 G3 q" G
- sslen (sslength sstxt), i, `! p1 `) p" K4 i
- ctr 0
& u$ J# d5 b- E B' I7 C- K$ n - )6 S* y/ C5 u/ I7 P( K* q" G
- (command ".undo" "mark"); h/ i3 _+ H; D$ O$ C
- (while (< ctr sslen) r5 x a7 K3 j0 C% b" O
- (setq listxt (entget (ssname sstxt ctr))4 ^. {- k3 H9 i
- txttxt (cdr (assoc 1 listxt))9 m# D& Q6 |% r
- enttxt (cdr (assoc 0 listxt))
2 X, ]8 d r$ k: r: W* m2 ?6 T - )% `7 V" f7 o' `! Z3 u
- (if (= enttxt "TEXT")2 {2 W4 a0 c6 J4 N0 s
- (progn3 ]' B' K& S9 j4 w1 [7 `
- (setq testxt (substr txttxt 1 3))
* d. ]2 @& S' C i* y - (if (or (= testxt "%%d") (= testxt "%%d"))
- s: y6 H/ h9 j: p4 ] - (setq newtxt (substr txttxt 4))% f% a: u0 P5 W- M# I# J0 m5 ^
- (setq newtxt (strcat txttxt "%%dC" ))
( i; P2 @0 _" ^$ O9 ?2 X. M - )
6 ~1 {# Q# K8 _0 } - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))+ Q# H; m3 A" N
- (entmod listxt)! e' }, D( P% w+ M% } Z
- )
v0 H2 S% y! E. Y- z2 e - )
3 Z2 |* ?6 O9 N5 } - (setq ctr (1+ ctr))" t& ~0 _0 S% i0 C7 ^4 j! b8 ~
- )
, t9 Q! a$ ] }& y3 B - (setq *error* olderr)
Y# n, Q: f3 \% Z1 G6 B# b - (setvar "cmdecho" 1)' j' Z) t$ K7 c. C9 [0 @6 Q2 @8 ?
- (princ)0 ?# r% J0 E) d9 J( x& ]) s
- )9 |4 n9 W& e* e) P/ f. \# ^. o0 V
- , p' \% P# ]/ Q7 w( V7 B
- (defun c:PI ()8 f+ k/ a6 A; F& i, x: e8 i( V3 q
- (setvar "cmdecho" 0)
: D1 _4 J: p% n0 C' e - (setq olderr *error* *error* myerror)3 f) A* G' c) O+ A6 K2 n2 }
- (prompt "\nSelect objects: ")
3 Q# t$ R3 {$ o' l - (command "select" "au" pause)$ Z# b+ E4 }- W' `$ F" H
- (setq sstxt (ssget "p")! _+ F; r7 P' X: X
- sslen (sslength sstxt)+ H o# n t' x; a3 u+ y
- ctr 0# t) p% x4 I8 ?1 a- ^7 w7 X
- )
% ]& m: i" s% Y) F) q* ^ - (command ".undo" "mark") X6 o# P y1 g; Z. q& k/ E
- (while (< ctr sslen)
1 {0 W; R' K: z* }; g - (setq listxt (entget (ssname sstxt ctr))8 T0 k+ X" ?4 a5 N5 P7 ?
- txttxt (cdr (assoc 1 listxt))
: m: \0 m; l' b& ~" r* Y - enttxt (cdr (assoc 0 listxt))
: A$ K- s8 W- @1 [: I - )
( x" _6 h7 p* F3 g - (if (= enttxt "TEXT")$ `; _( c0 F2 }. M+ W' i
- (progn& ~" p2 T4 ~" N" C- N# v, f7 O0 s* V+ |# L
- (setq testxt (substr txttxt 1 3))
( a! U& A8 g) q& J8 z x' A3 [0 W - (if (or (= testxt "%%p") (= testxt "%%p"))
* b8 i4 A$ _9 ?: t) B - (setq newtxt (substr txttxt 4))4 h' D4 A0 f9 i# h& Z4 W" S
- (setq newtxt (strcat "%%p" txttxt))
) C6 f( a3 @9 d ?6 j - )
+ p' ]7 ^" e# m - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
$ P- m# v: ?0 ?+ E- V - (entmod listxt)1 \. O0 f- T) ?% m2 \
- )
2 T$ k5 C* { T4 t' }# ]) u - )# M4 g8 a8 c9 @8 T5 W! X
- (setq ctr (1+ ctr))
0 @/ X6 m2 a, I8 E2 ^ M - )6 Y7 m, T- M! N9 Z E
- (setq *error* olderr): }& m6 M8 V' `
- (setvar "cmdecho" 1): I# s- e6 X! P6 R9 A$ Z9 p
- (princ)* K7 a( R( h& f4 F- ?. }
- )& B. j; {3 @1 {
- 6 I) _+ C. |; P3 Q
- (Defun c:CB (/ a)
* ], d7 @' a7 H! k: [! c - (setq olderr *error* *error* myerror)
- r I. b) \9 c) s - (setq ocmd (getvar "cmdecho"))( G$ C% V2 _* T' C& G1 E, S. A
- (setq oblp (getvar "blipmode"))6 K# u- X; R/ o1 X4 B' U3 J
- (setvar "cmdecho" 0)
5 h0 |$ l6 T9 t: y$ W% E$ O1 D+ @ - (setq a (ssget)): r1 a2 U* C/ W V- a
- (command "CHPROP" a "" "C" "bylayer" "")
& m# Q6 P/ ~/ }# S% J7 c: } - (setvar "cmdecho" ocmd), y/ r# v: f a$ F
- (setvar "blipmode" oblp)
, d' \. K, O% s" D - (setq *error* olderr)
- c- B; V+ R/ ]0 G% E - (princ)
. }' v4 A4 o& h6 x - ); l% e! j w4 ?* X' R
- ! x9 V! c- k5 O9 m' v
- (defun c:LCC (/ co43 obj23 la23) }% ?/ s/ R. x2 F' V! f4 [
- (setvar "cmdecho" 0)
! \8 B7 M7 p& L - (setq co43 (getstring "\nNew color : "))
% S6 I- L3 ?: m0 q: K* \9 J, P - (setq obj23 (car (entsel "\nPick object on desired layer: ")))
2 e2 `3 y& N# w( Z- Q* y - (if obj23 (progn( e/ f' R7 o! h$ m. F+ z, ^7 u3 y
- (setq obj23 (entget obj23))) h, P! j- g9 }
- (setq la23 (cdr (assoc 8 obj23)))
2 J% p+ _0 u3 B- K \ - (command "layer" "c" co43 la23 "")0 M$ p# ?4 }8 B0 N m, a# r0 @
- )
2 N: u+ A7 L7 c+ t5 ^ - ), D' ^- Z1 }5 }. d0 p, Z
- (prompt (strcat "\nLayer has changed..." la23))
6 j T3 p F$ O. A# ~ - (setvar "cmdecho" 1)
) a* y1 h2 ^& [' v - (princ)1 x4 D2 H$ G, X( f9 E4 U! F
- ) ! y" y* R7 R! W1 n& W5 h ~
- 0 B! J o6 C8 a5 S- p/ o! V1 v
- (Defun c:RP (/ a)
- f, p* X/ u% e - (setq olderr *error* *error* myerror)
* x$ X) ]4 N6 P% }7 ^6 N+ W4 [ - (setq ocmd (getvar "cmdecho"))# c" Y9 l" C. Z' u$ ]
- (setq oblp (getvar "blipmode"))* r# x7 v1 B0 I
- (setvar "cmdecho" 0)
A! U0 z) p! M - (prompt (strcat "\nUSE: Delete object(s) belonging to"+ o2 ]% l" [) b/ H. G: H0 n/ D
- " the layer of the entity picked...!")). O w# n% q0 H1 d0 o
- (setq a (entsel "\nPick the entity with the desired layer to delete: "))( [+ q5 O8 `; Z' t3 D
- (if (/= a nil)
5 K/ W3 D! K7 I1 u, m' g - (progn (setq a (cdr (assoc 8 (entget (car a )))))9 H4 R. I0 u6 F1 e! h; H: }
- (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))5 b( A2 r0 P& @, j8 V
- (prompt "\nNo entity selected!"))
1 |" o* O! f8 ^& @ - (setvar "cmdecho" ocmd)3 U4 V9 A3 q: j
- (setvar "blipmode" oblp)
8 L& b- v( O% z9 e5 ] - (setq *error* olderr)
9 I2 t' N5 L9 _0 d- X5 m - (princ)
1 @+ V2 ]; ?. O" Y9 N! [8 k4 n9 X - )1 c' ^# f6 Y& e+ w, \
" b$ S5 N' o- J2 R) j+ C- (DEFUN C:WL(/ SSET NET SSL M)
' N/ y9 }" Y& S1 u+ T, P - (PRINC "\nSelect lines :")" R+ n* v4 K7 b/ C
- (SETQ SSET (SSGET))* G' r/ N" t ^* n) O7 {: K
- (IF (/= NIL SSET) (PROGN7 ~9 V+ @- ~/ M; I* Y
- (SETQ SSL (SSLENGTH SSET))+ s% l% `5 t- Y6 N* M( e5 n
- (INITGET 4)! W6 p4 d! ` F0 L
- (SETQ NET (GETREAL "New width : "))3 x' {# E( J4 g4 t) \
- (IF (/= NIL NET)
. I3 M3 b- y v3 L: a" P - (WHILE (> SSL 0)5 B0 n1 V a5 k/ T4 J, ?
- (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))
) w K; F" U S# G6 H9 r' ~; u - (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE")
- Y) g* m' A+ G% ~( S- E. T - (COMMAND "PEDIT" M "Y" "W" NET "") ! Y& ?1 U2 [0 e
- )
$ B1 }9 x2 {$ k% u) r - )
& h% I7 j5 d1 L- s$ ^. v b2 z - )))8 W& I. d m$ R4 u- R7 y
- (PRINC)
8 V& R" A D- r# g" s {: R - )( I$ m3 H M3 v# a# D
3 j! D3 K" D9 X# a4 w& R- (defun C:MML ()
0 g# E4 x9 c6 e - (princ "\nSelect objects to move to another Layer.")5 u2 B: Z; c& U! g& Z
- (setq ss (ssget))2 U" c9 a2 c0 e# B
- (SETQ UL1(GETSTRING "\nLayer to move entities to : "))5 A4 ~$ A3 n* u6 M
- (setq counter 0) [8 K2 F9 X- w( Q; I$ t
- (prompt "Moving to layer.....")(princ ul1)
$ \+ _; s+ Q* @7 ^ g4 ^ - (setq e (ssname ss counter))
( @" R; j5 ^& \9 M - (setq l (cdr (assoc 8 (entget e))))
& q( n9 P+ ^2 G7 K - (setq S (ssget "X" (list (cons 8 l))))5 e: P" s7 B- C
- (command "CHANGE" ss "" "P" "LA" UL1 "")5 q9 v" U% a8 L5 S4 V& l" \& k# G
- (setq counter (+ counter 1))7 P/ Z" Z5 H! f0 g6 L! U
- (princ)8 j P2 v o) A! E( w
- ) ; q Y3 m. F2 ^, d" ?+ l$ t: B
V6 W) q* L" w4 O% O- ;;; ================================ GHI CHU ============================* `5 A8 b0 _, T+ ~
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========1 l ~' @" }8 d. H4 a4 e+ C
- ;;; =======================Thuong Dung Font Romant.vnh===================8 o+ Z4 n: r+ c6 y
- ! b" S- J2 C8 V9 ]& n& u; J
- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)1 d: C4 E: K! K, m1 P
- (setq oer *error* *error* err2)# e) k9 T! p. v0 @2 ^0 U
- (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")
" t; M4 A! D: Z1 F; I - (SETQ Cpt(GETSTRING "\n (ROMANT-vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (UNKNOWN-font)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))0 H; K* R5 H1 e
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p"))
$ Y+ x6 G: t$ Y4 @" { - (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh"))' C, X% J, r' l, G# r
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p")). u7 v! A( h; A7 x" N6 ^/ s$ R* g
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c"))7 `& A2 o/ U- o7 S6 D
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?"))) s9 a @- B: i6 G' ?! p Z
- (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An"))
! Y( D" o7 J3 | b: o8 B9 R9 ? - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho"))
' P% y; e: l* G7 M - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`"))
+ C& _2 ~. l. P, p1 H# v0 a
* Q$ X% b6 W$ e- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
' {/ r/ S6 w7 `; D& u5 \ - (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))& o1 u2 B7 p/ ~3 X7 O! Z
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
4 p6 O' f* ~9 u% c3 I0 o N - (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))1 C+ x4 G" [1 m0 n
- (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))2 g8 k. }. p0 G, k9 ^
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))
; }2 d. J) j6 q, v6 C* y! X6 t - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))7 W4 L" |0 X& C) ? o0 ]0 W( G. @
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
) x( k! }8 ]/ R* O, C' @8 n -
1 K, G) w/ Y; X$ w1 s. j - (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))
' v _4 i3 \$ n7 ` B3 { - (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM")); c; z) t6 w" a+ E0 S& A l. g
- (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))
, c4 }8 V+ W. s7 G - (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))$ L2 X% x% p5 ^: p3 U
- (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))
' [3 a- R2 A/ N/ V - (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))
, @; \7 e7 ~. p4 Y1 \; l1 Q6 O - (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO")), Z6 V+ _$ A" G) e* n
- (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))
, c: l4 h5 E, A - (setq pta (getpoint/ V8 \7 v: P6 Z( z, R
- "\nPick first corner. : "))
+ M0 W( E2 V1 T2 Z( P - (setq ptb (getcorner pta
$ A0 B: U, ~4 p3 S9 Z - "\nPick second corner. : "))( E" { U/ p& o- \
- (setq ptc (list (car ptb)(cadr pta)))
/ ~0 t3 ^& d O) |1 s8 b - (setq ptd (list (car pta)(cadr ptb)))$ A6 B! r/ g5 U4 }& R5 @2 Q
- (setq ang (angle pta ptb))
0 q( {4 o# e. K. M8 h - (setq d1 (/(distance pta ptb) 2))
7 c O5 ]8 f I: r" c7 }8 a - (setq cp (polar pta (- ang (dtr 0)) d1)): V" Z" b8 f% E1 k" U
- (setq X (distance pta ptc))' _' Z3 U6 w D* V. ~6 D" d: o- b$ u+ k
- (setq Y (distance pta ptd))
: \4 z4 w* d2 b b: Z - (setq X1 (rtos x 2 1))
7 n, G9 ?/ ]! F: Y+ w' ` - (setq Y1 (rtos y 2 1))! ?$ k, Z8 L ~ \
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))
$ H( t& w/ I; W% K: s& k4 K @ - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
" |- `$ N8 X8 a( K" t* D2 L - (defun dtr (angg)
/ [& i8 |( z6 z, C - (* pi (/ angg 180.0)))
6 J7 q, `# ]8 G
v; m) l. ^2 o5 }. U0 ]! T- (defun c:WS (/ pta ptb rmsz pl1). O6 T7 b- @3 b; k) Y% ^3 F" M6 y
- (setq oer *error* *error* err2)/ f& I# N1 K% [; }. C
- (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P)."), S$ }1 h6 \/ S1 Z9 D
- (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))
2 ^$ s' E+ Y" l8 \- m! r2 e - ! i4 A0 u: H" B n" F: O7 T
- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))
$ [: O T9 O; j* R2 u$ x - (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))4 X% \' K* d2 ]) `% Q: [
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))% Z* V) p. s9 ]; p
- (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))2 h( v8 O+ [1 i
- (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))
; H; s( l; ^- y0 d( {1 L1 b( c - (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))+ l8 O# ^: S! {9 |' p" P* f
- (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))
' Q* K' [3 o* u" n5 {6 r5 Z, B - & U8 G; L) L4 _$ ?
- (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"))
' c9 W6 A% w8 o! p- ^/ a7 s* } - (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100"))
# o5 J- F" e! u9 E% u - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))
$ v7 C2 T! X! s f5 I" F - (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))
; l' D8 m) ]9 g( T9 |0 t - (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))
# c# w2 f4 @+ t6 N2 l - (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"))
+ d1 S( R0 T/ A- p2 V - (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN")). d4 b+ h1 Y7 L* F& N7 i$ l" i
- (setq pta (getpoint& V9 q/ z1 x/ n0 h/ M
- "\nPick first corner. : "))
3 G4 s& O; L7 h" m1 M) t! ^1 B% e* V - (setq ptb (getcorner pta. L! k! O0 R% j2 I2 n
- "\nPick second corner. : "))
2 b8 w7 j0 q' Q& @ - (setq ptc (list (car ptb)(cadr pta)))# h6 O. N3 m o. }. C* `! `
- (setq ptd (list (car pta)(cadr ptb))) M( q" m% N, `& a9 N2 m8 T0 H
- (setq ang (angle pta ptb))
1 d5 z6 V9 \; G W+ ?& c6 [ - (setq d1 (/(distance pta ptb) 2))
' H; W! [7 m8 Z$ t - (setq cp (polar pta (- ang (dtr 0)) d1)) R7 F e. ?4 ]$ ]- U
- (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
. n- d4 Z# P+ A" s) W9 _0 G6 B - (defun dtr (angg)
) u# z' H6 q! U - (* pi (/ angg 180.0)))
& D* e+ T2 ^; A" C- J
! b! y1 r8 C6 I* I8 H1 k; w/ N- ;;; ================================ GHI CHU ============================
W T$ b" ^$ s0 w X! P/ r! s8 ? - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========; ~1 c- F; k- U) R
- ;;; =======================Thuong Dung Font Romant.vnh===================# N# [. g' F% V/ S
0 \" {) ~. |- u9 L1 S8 U5 E) Z7 |- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)# Z* Y9 R7 ?2 P. w0 X/ }. }
- (setq oer *error* *error* err2)
/ s2 h9 P4 j' O3 H( h - (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. ")% G7 v, ]; `% ]
- (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))2 C( t( N( Z/ A
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p"))/ f; W: W, z! V2 ]# Z( d
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))
& R, V: |6 Y/ s1 L9 E# Y, \ - (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p"))
9 J% ]6 Z! b' Z: t - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c"))
$ M/ P1 G. ~, _ - (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))
0 H4 I) L4 l1 P6 s# H# K6 E% D! W - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An"))5 O5 h& ^5 o. \# u$ B+ [
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho")) Z3 y/ m/ c/ ?! y3 d
- (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?"))8 |+ r# t! o! f& w1 A
- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
- @4 w: x; O3 u6 b U - (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
8 f9 t- A6 `5 @4 f - (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))* z `" Z* ?6 q9 q$ S" y
- (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc"))
9 p1 F. }7 {; f3 S; a8 e - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))) u6 m& Z; L/ ?$ b
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))0 _7 ^4 u0 R4 T$ F7 x* h% _+ R
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))+ H3 ~6 o; m, @ B
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å")) / q+ t3 `" w% ~9 f0 X# e6 j$ J
- (setq pta (getpoint% r& V7 B4 G2 Q9 ?
- "\nPick first corner. : "))
# s- ^" Z( x; z0 c - (setq ptb (getcorner pta
! R2 P% p$ t! N2 N- K. i: g2 U- X - "\nPick second corner. : "))
0 p; j3 r) U+ U9 k6 X- W/ K3 | - (setq ptc (list (car ptb)(cadr pta))), O5 S6 @4 x% |7 `9 D
- (setq ptd (list (car pta)(cadr ptb)))
) F! l2 H8 t2 i3 L' c7 g8 k - (setq ang (angle pta ptb))
* A3 m! {8 S7 B" O/ A - (setq d1 (/(distance pta ptb) 2))7 i; h1 P( u+ @0 d+ ^2 L6 s0 Z
- (setq cp (polar pta (- ang (dtr 0)) d1)); \. O$ @4 H* r# t2 y
- (setq X (distance pta ptc))* `; I7 Z' j$ [- z+ X7 f
- (setq Y (distance pta ptd))
. V7 `$ p z* l" ~! P' Z - (setq X1 (rtos x 2 1))
6 i" T2 b( `; u. \0 @, g - (setq Y1 (rtos y 2 1))
, ^/ a1 \% B* [+ b - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
7 s+ F1 C' U6 f7 g; T - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
6 Q+ v9 J: l2 n6 Z# p - (defun dtr (angg): m' k% ~1 ? j) ?* S% A% M
- (* pi (/ angg 180.0)))9 t. `0 D( J6 b } P4 f8 N
- / c; G6 i1 q9 k: P
- ;;; ================================ GHI CHU ============================ P: n. C+ L o7 v! b
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
# T6 O. D8 N" P9 Q - ;;; =======================Thuong Dung Font Romant.vnh===================/ S. K" U% V/ y# T3 s) [5 k
& U6 z7 l, x3 H& v6 u2 Q/ ~- (defun c:GS (/ a b c d)
) {4 W! t; r$ \3 ?6 o& F) U - (graphscr). T9 c0 j: {* I8 B
- (prompt "\nSelect text to set style....")
3 o+ Y4 C# S' ?; i9 E3 @% y1 X# j - (setq a (entsel))( z% U+ T; P# T( I( [
- (setq b (entget (car a)))# T% _! x( n+ n6 D
- (setq c (cdr (assoc 7 b)))
0 j7 v* ` X4 w2 E - (setq d (cdr (assoc 40 b)))2 A0 E- M) w, }3 C
- (command "style" c "" d "" "" "" ""))
/ m7 J/ z( E$ _5 j ` - (princ "\nType GS to set text style.")# {$ Y/ p* H3 i3 C! @
- / M! P; K& k. w: Z Y5 k6 {' [0 \
- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)
/ D) @ @, U: {+ ]5 t2 ^ - (setq olderr *error* *error* myerror): i8 ^9 Z, i# K$ S
- (setq ocmd (getvar "cmdecho"))0 [! y) J& B: f3 f d* P% e- G, ^
- (setq oblp (getvar "blipmode"))/ x" Z: t- L! e
- (setvar "cmdecho" 0)
/ u$ N/ f7 D5 W" P: A - (initget 1) ;3D point can't be null% o5 O8 e1 j3 j1 P1 ^$ `( p* p, U
- (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))
7 [/ e9 ?' @2 t9 K1 t- F - (setvar "ORTHOMODE" 1)1 {' `+ k( H w1 T
- (initget 7) ;Length can't be 0, neg, or null
# i* X4 M' B* V- |% U9 v - (Setq l (getdist pt1 "\nLength: "))
- B' i( o% j7 I% c0 P) a - (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))+ f" W6 c8 s( I# |8 Z. w. Y& A2 m
- (grdraw pt1 pt2 2)$ p2 C# D$ g* X3 P$ M
- (initget 7 "Square") ;Width can't be 0, neg, or null
- B# h0 l9 ?7 a9 Q7 h - (setq w (getdist pt1 "\nSquare/<Width>: "))7 b. X L* A0 U
- (if (= w "Square")
5 ^" ~. |2 d' x/ t* Y( g5 w - (setq w l)% H q% H0 M% N' A
- )+ _/ ]6 h2 @* Y( Q
- (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))1 V) z' z) }6 t0 e3 j% l. J2 \
- (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))! T* k) v, B1 |/ c
- (grdraw pt2 pt3 2): Q! }( B( D; c0 t; e( T
- (grdraw pt3 pt4 2)
; g3 R4 F, T) E: P+ M8 r - (grdraw pt4 pt1 2)& w; Q t/ E7 K- n8 _& u! Q
- (setvar "ORTHOMODE" 0)1 W" t1 H0 O- q( L7 n* g' n
- (command "pline" pt1 pt2 pt3 pt4 "close")
% \+ W' j. c x" [ - (setvar "cmdecho" ocmd)
' d4 A7 k/ J2 c3 t# Z! J; J) U: l - (setvar "blipmode" oblp)
; E" d( M/ ~ {& g* ? - (setq *error* olderr) ; Restore old *error* handler
M( A5 ]& U) e! y# W - (princ)5 M- o4 A8 M1 h# R M
- )
# }! m% U! i' T& c m
+ N. J: E. s. U4 h- (defun c:SG (/ ent pt1 pt2 ang)4 j) E, L7 Z, J" }9 Y5 z
- (setq cmd (getvar "cmdecho"))
' |; C: ?& z+ q% d O9 `$ H- L& u, j7 V - (setvar "cmdecho" 1)
2 F! B' k4 d" j! V7 r0 E - (prompt (strcat"\nSnap angle will be set to angle of line"))4 s: K* T' i) F7 a! U$ {
- (setq ent (entget (car (entsel))))
# j; j0 z* T# _ - (setq pt1 (cdr (assoc 10 ent)))
U$ {! z/ N6 p/ d - (setq pt2 (cdr (assoc 11 ent)))$ Z$ |' ^! t8 B4 L: j1 j
- (setq ang (angle pt1 pt2))
6 [7 R3 W$ J# O; h7 e - (setq ang (/ (* ang 180.0) pi))8 [, \9 s& J/ ~
- (setvar "cmdecho" 0)
' j/ U5 l* P- y - (command "setvar" "snapang" ang)
' e- t7 e w, A7 M' ? - (setvar "cmdecho" cmd)+ u7 S: R' P3 d1 I& A* y S
- )" H; T8 Z& o/ i' K6 R' x
- * A5 {( s* s4 M
- (defun C:TG ()
( d9 p/ c" V; p) b. A: { - (initget "Increase New")
; R) V; T- W7 V1 O5 t* d7 q9 O6 G - (setq ans (getkword "Increase/<New>: "))
/ @4 ~# l, @: I/ F" M - (modang)
& U# t$ F' ^" G - )
$ N0 P1 W8 _* Z" R+ e - (defun modang (/ ang ss ca e na ssl)
( T6 [9 O8 E4 I - (if (= ans "Increase")
3 H" K; Z/ V5 W* k - (princ "\nIncrease angle for text by: ")% [7 `& E3 U; N% T6 \5 v2 g4 x
- (princ "\nNew angle for text: ")
. [1 v. Y# @8 p) H! G p - )
! L& P6 @+ J- D# a - (setq ang (getreal))- R, e; W2 m) f i, U; h
- (setq ang (* (/ ang 180) pi))
$ |; L0 C& _# ^& y( } - (setq ss (ssget))5 t% v! w4 P6 V8 s$ |9 ^1 X) W
- (setq ca 0 ssl (sslength ss))$ P4 g) p. U/ U, ]* f: R5 o
- (while (< ca ssl)
+ `0 {% V: R; G: I+ V$ o - (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))
1 F1 D, l- C6 } - (progn
* L+ S* o7 n: Q% `( X3 f2 u( @1 G - (if (= ans "Increase")
6 ]) x C$ p; @4 C' q+ P - (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))
+ H& i3 V4 @" G2 m - (setq na (cons 50 ang))
# K3 C: _3 G2 @- _/ t" p' R - )
" e0 v2 j3 T; x, i+ \9 f; ^# t* b - (setq e (subst na (assoc 50 e) e))- A0 P& ]9 ~# W& P* O7 `0 O$ }
- (entmod e)! R1 Z! q8 f8 a8 R4 c$ F- I
- (setq ca (1+ ca))' l( e: [2 v. j' _. p+ M5 Y
- )( ^5 c/ q- f& @2 m1 t6 L
- )
' t) e) g* t3 @/ G$ j8 L+ g% u - )
e7 j3 u$ t6 G: ^ - (terpri)
$ \& B$ _9 g! [& Q) U: v, Z" b" T - )+ n- ?; S! a+ i
) _9 }; l8 k9 Z- - w* c5 o& k, I6 q
- (defun c:WL ()
% J0 @# b- i5 \ - (setvar "cmdecho" 0)( T" \+ g6 k2 t* a. k
- (setq a 1)
- `# e& w& o! k4 R4 ` - (prompt "\nSelect Polylines to change: ")( a' x0 U" T8 y( _" I; d
- (while (/= a nil)% n9 n, N2 W4 |8 S; Z/ {4 ?
- (progn* r+ y B, t4 |0 u
- (setq a (entsel))
) \# y3 X8 W. K4 r- T( t - (if (/= a nil)
# p: x6 v+ e1 K; T1 t - (progn3 j5 Q8 c+ s0 w, B6 G, R, |3 ?0 g9 W/ K
- (setq b (entget (car a)))
" m2 y, s4 s. F3 p# e! U - (setq c (cdr (assoc 40 b)))) g9 N T ?9 t. }4 t
- (princ c)8 ^3 l" g# M4 w7 p, \
- (command "pedit"a"w""lw""")
/ i2 |& X M+ J/ q7 _9 o - )))) , h v. {) c0 n) U/ @' f
- (princ)+ U+ L; F6 _4 z1 n2 S( \" v" z
- )7 L8 M; ? m$ v/ I8 L8 Z2 u
8 t3 K9 f% k4 W9 H3 J, q* R. s) E- ;;; ================================ TEXT FIT ============================7 i# j5 i$ _% D; V( `
- ! e# ^, i4 J. w$ H& b, A% f; o1 m4 S
- (Defun c:FT ( )
3 J9 F0 ~' Z7 L4 d) C: u' m2 Y - (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )
' E, I! L( ?- O) q+ W2 z! I - (Defun LL-xyz (arg) (CAR (TextBox arg)) )0 y1 U4 ~! t) _+ ^ D% M
- (Defun UR-x (arg) (CAADR (TextBox arg)) )
6 b6 k. `; C; ~$ F& |6 l* {1 l - (Defun LL-y (arg) (CADAR (TextBox arg)) )
: t0 g3 A3 P X6 J, j* g$ f+ P2 i6 I* w! X - (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )
. [7 f/ C6 f/ X+ ] - (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )- Y- j, s0 j. Y! P
- Textent (If ename (EntGet ename)) ) + F3 V U+ N6 z' x% f/ b
- (If (= (CDR (Assoc 0 textent)) "TEXT"), w0 }" f2 g* b% w
- (Progn (initget 0 "Start")
% j5 D. ]5 U2 n& h' X - (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )
|( w3 L% N: {# N7 H - (setsnapang Textent) ;set snap along text entity7 K$ ~: U% k; U6 Y+ U: Y
- (setvar "ORTHOMODE" 1) ;drag along the text
7 Y8 q i) }: B, @3 ?8 Q - (setq ) a3 R0 `4 s: N8 E7 `* i3 j: n
- TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") )) T) D9 k7 y7 z8 }% J( U8 [) {
- (setvar "snapang" 0)1 X0 I: `$ _" c# i! L5 E
- (cond
" W8 t- a e( K; r6 b) S! I2 O Y# n - ((= (type TMP) 'STR) ;;new starting point to be selected
5 d; j+ L! j0 N+ M, j - (setq Start (getpoint "\nPick new starting point: "))
! c% ~* I. ` y/ F - (if Start (progn
! Y# r3 u8 c6 T6 D8 {9 r( n; O$ \ - (command "_UCS" "_E" (cdr (assoc -1 textent)))" W- ?" [2 p$ ~" ]7 z4 m5 |' e' U
- (setvar "ORTHOMODE" 1)
/ G% t5 f; M; p$ ?! G - (setq NewPt+ V% N# o: R4 c5 n/ f+ W8 L# M
- (if Start
" M- B1 F2 U6 o - (getpoint (trans Start 0 1) " ending point: ") nil ) ). _4 _1 L) Y. F+ w( u8 s
- (if NewPt (setq NewPt (trans NewPt 1 0)))8 h4 p: c3 X( V6 O/ c
- (setvar "ORTHOMODE" 0)( D( U* T9 z3 Y- t2 K( L3 \
- (command "_UCS" "_W") ) ) )7 d& V1 c" t3 m
- ((not (null TMP)) ;;new ending point selected
( y: {, W- G$ C, v' u$ k% T1 M$ G, e - (setq Start (cdr (assoc 10 Textent)) NewPt TMP) )/ j( b; p9 Y# B7 c9 o
- (t (setq Start nil NewPt nil) ) )& w I( s9 u1 y6 h) k
- (if (and Start NewPt) (progn
5 o& k# A" L# Z - (setq Val (Assoc 41 Textent) ;;current width factor" [2 _7 E- e7 b _ S
- Val (if Val (cdr Val) 1.0) LTC_% " f" p n! y- P; g5 R
- (* (/ (Distance Start NewPt) NewEnd ) Val )
$ T2 i& k8 Z/ t0 r2 L) | - textent (Subst (cons 41 LTC_%)
$ \! C% @% t3 h5 ?! w# A4 M - (assoc 41 textent) textent)
2 }( g. C: N K - textent (subst (cons 10 Start) (assoc 10 textent) textent), k9 S. p3 |5 |' `1 k l
- textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )+ _! O( k, [; z8 K$ H
- (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))
/ g, ~2 C9 j+ _& n8 ?+ \ - 2 \, {* M# e0 [# H# O% E4 y1 w
- ;=====================================================================
% F. s5 c- G7 R1 m - ;=========================COPY + ROTATE ==============================
- i Q3 x* h7 r+ ?1 J6 l, Q0 M4 w2 O - ;=====================================================================- }/ T& N" P$ t% t5 c) q3 m5 m
- ! {' s! `0 b. u/ Q/ X
- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2)
( t: H" w7 ?9 c* L; x - (setq olderr *error*
4 A$ \( O" w& ] - *error* croerr), a( X3 ^& D& u+ g
- (setq cm (getvar "cmdecho"))
6 W' @& f5 d9 _6 ]7 { v - (setvar "cmdecho" 0)
. ]+ }5 N) A* X$ L3 F - (setq loop t)+ x- F. n" H; q
- (while (not (setq ss1 (ssget))))" L6 I1 \* X# J# u1 e
- (initget 1 "Multiple")
/ M& U4 h) }4 C: c - (setq bp (getpoint "\nBase point or displacement>/Multiple: "))& r' G$ ?3 A4 C7 p# R
- (if (= bp "Multiple")9 s1 x; d, z( K* L, q; \$ Z2 c' w
- (progn
% g' F) Z/ M2 ]6 W& { - (setq bp (getpoint "\nBase point: "))
& d% d/ G) B w& g0 a. x - (setq mult t)7 Z4 o1 H; {0 {7 |# a4 v: ~
- ). w _3 ^* C- p1 q$ [; L/ h+ I7 A
- )
( _, d/ y, e1 y( u - (while loop7 [! M! Y- A( @# T' J
- (setq loop mult)0 }) u: R X/ J2 f- V( T
- (setq lent (lastent))
+ @$ k- V5 N" f* H- V. a# C - (command ".copy" ss1 "" bp bp)1 t; o. F o5 L
- (setq ss2 (lss lent))0 s- t- [5 B8 Z' K Z# T
- (setq lp1 (getvar "lastpoint"))
) } b" C4 Y v. W - (prompt "\nSecond point of displacement: "), u/ i0 {+ v- w: R. W5 w" M+ p
- (command ".move" ss2 "" bp pause)
' M( y' k* u# M% {7 n - (setq lp2 (getvar "lastpoint"))
' C& w U, F; k# R! u8 Q - (redss ss1)$ w9 y7 `8 K7 W
- (if (and (not mult)# G* X, ]: j+ a9 Z
- (= (distance lp1 lp2) 0)3 P; f0 G" {5 H$ O" o9 n; `
- )
$ E+ f u1 Y$ {- r; } - (setq lp2 (getpoint "\nRotation Point: "))' R9 }1 n. P+ A& G! h
- )9 P; N3 G1 B$ V2 H7 |
- (if mult
/ {3 c! s2 Z8 I - (prompt "\nRotation angle ")
2 c( L4 f8 I5 C8 l( `9 g' ~# r - (prompt "\nReference/<Rotation angle>: ")! M2 c4 W6 |( ~6 E/ M3 o
- )( [7 }* v3 o3 Y& q6 e2 O
- (command ".rotate" ss2 "" lp2 pause)
2 H6 \ ]& N3 x" n7 s4 [ - )6 {1 }, z( c7 J* `/ s4 W7 ^
- (setvar "CMDECHO" cm)
. _/ |4 d. q( l: A% ?# {: L3 j - (setq *error* olderr)
8 e' Z5 w7 h8 x* p( N - (princ), I' m, x) Z- U) n
- )
1 E/ N! w1 F! w A& p* x7 e; a - (princ)
5 A$ s" h4 J3 j1 X+ ` - (defun croerr (s) / ^$ R# V$ V( t! ^$ v# P- r. K" M
- (if (/= s "Function cancelled") 4 F7 h! t9 T1 @. C6 S
- (princ (strcat "\nError: " s))
( L! c+ o, K v8 M6 N/ r! c - )
' s& y- D6 G% f* O" \ - (setq S nil)
+ y& o0 Y9 V9 M; v% A - (setvar "CMDECHO" cm)) r3 J- g& d5 h k; N
- (setq *error* olderr)9 v3 B( N/ H% L) I+ i5 @, N2 x1 Q
- (princ)- W- T) P8 r \& f% A
- )( |. F6 \% U) B# Y$ \" H
- (defun lastent (/ a b)
" O/ [9 {: S* Q" o' |5 e5 ^0 h - (if (setq a (entlast))
, y1 K0 b1 v6 O6 J l+ t - (while (setq b (entnext a))2 S9 {& v V3 t
- (setq a b)# m4 N2 Q3 z0 T2 `, q' b3 V5 i
- )
* y5 z3 L8 B" A - )
1 f0 K8 z. s8 j) n4 I0 Q - a4 c4 _8 t, a3 q) w
- )6 ^" @0 e+ g1 t! C+ H2 E
- (defun redss (ss / en i) e" J( g% \7 n$ R$ h% m% ~8 E
- (setq i 0)0 c8 j# ]% Z& A% [$ b
- (while (setq en (ssname ss i))% V4 v' y& J8 l5 N
- (redraw en 1)& A; ]5 m: e9 J5 d2 \; t9 O
- (setq i (1+ i))
+ f9 h# p. K& _ - )9 n; P s# k3 o! m4 n
- )
3 I! W: j5 W* B' ]5 d) L - (defun lss (en / sels ed)- v' O+ Y3 O, q; ] x2 @% }/ }+ _
- (setq sels (ssadd))
" m( i' e0 `8 o/ N - (while (/= en nil)
' d9 y2 N9 [: C4 t* }. o9 ^$ l; A7 R - (if (setq en (entnext en)) (setq ed (entget en)))
+ Y6 A* X3 g( l, b3 i) y) R8 P - (if (/= en nil) (setq sels (ssadd en sels)))
# q& c# Z$ T" d4 J% S' M( R' v - (if (or (= (cdr (assoc 0 ed)) "Polyline"): g9 F d8 ^% q' f/ t
- (= (cdr (assoc 0 ed)) "Insert")
( z) v r+ k/ a( y ~1 M# D - )
+ L( x9 u6 ?" d) _$ X - (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))1 k, v+ [, i6 K' C" ^: O& h0 g" Q
- )
2 q4 a v/ k$ m3 y' | - )) x- e3 o5 V0 j; v% f$ I" o1 R: j
- sels
6 T( Z/ [' S0 M4 y7 x6 w - )
2 X/ }, ~( o& v( W; P* d7 C - / U8 D( z* G, n6 D
- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================! D! @/ C% }3 _7 K c/ e
- / _/ Y2 B7 a! h9 u, b3 ^
- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" ""))
; o8 Z! F$ T; U4 u5 D1 w- X C* W - (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" ""))
0 V( b; a3 x6 b - (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))
b" [& ~1 [! X. k/ L - (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))3 _! j/ q# O& Y3 k) ]5 x
- (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))1 E6 W, |3 i0 u$ E: u' O- s
- (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))
% v6 p* V$ B& n# z6 ~ - (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" "")), i$ [* y- @3 C. @, k, n h
- (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))
/ ]0 _" p& ~# H* E& d; V - (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" ""))' p9 k' {8 i$ I
- (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))) _8 b& D6 F6 E3 @' f! Y
- (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))) f" Q8 Q% @0 ]+ [3 t
- (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))
0 H7 \/ |* F, K9 X; h - (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))
7 Y/ \. Y a; ~* x7 V- o! L3 o - (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))
7 E0 w: p3 p5 _7 P. w - (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))
- a& l. T( p* C& v3 c" o - (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" ""))
* o6 K' l. n: H8 I% f( v- s# k - (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" ""))
5 ]& z, ^/ N# a+ n' s+ O - (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))
- D5 t) L, w' P5 I3 |, o' A0 ^ - (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))
9 K9 j6 I3 D4 \* E( g/ o - . |0 f" s' v! p6 x1 M
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
}; h$ k3 k& u: H, P3 m+ o& `# Y
4 B5 \2 e+ C/ `( _8 X- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============0 I, A2 j9 G8 U1 y
0 i: E& K% Q6 w- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!"): l' [3 J7 M5 ~: L+ i6 e; N9 b p- X
- (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")4 C1 o- V) V, W
- ; x6 n! H9 a; w' d3 j
- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===
! o0 d9 X, |6 b% u/ ^* H - + L% U j: y1 ^/ U( n
- ;(DEFUN C:netxuatanh ()
: B& s. @( y0 D1 U) b# q - (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
* r1 [4 |. i: E - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""
# P# Z) Q1 Z! z- D" z7 B) o - "M" "MANH" "C" "9" "" "Lw" "0.5" ""% X' V% ]4 {! W( c9 |; T4 X
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
5 M# P. z* i/ @ - "M" "DIM" "C" "1" "" "Lw" "0.6" ""! v. h* W/ }" Y# a% H. W- F+ _6 H
- "M" "THAY" "C" "7" "" "Lw" "0.7" ""
/ H; Q& m3 U" H P, C" o - "M" "NOITHAT" "C" "3" "" "Lw" "0.5" ""+ ~& I; g: `+ e/ e/ V& X! F
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
) W- D8 R3 o! w - "M" "COT" "C" "2" "" "Lw" "2" ""
$ I$ \; R9 y& B$ c - "M" "Defpoints" "C" "7" ""
# ~7 R2 f; b' ?7 ^; g - "M" "0" "C" "3" "" "Lw" "0.5" ""
& {+ C5 H, U( e! g5 I - ; "M" "1" "C" "1" "" "Lw" "0.5" ""3 t2 s% `0 \6 F. h+ |' _
- ; "M" "2" "C" "31" "" "Lw" "0.5" """ o9 q8 N8 h* {( f6 A7 D
- ; "M" "3" "C" "8" "" "Lw" "0.35" ""& G! A7 `; M, x5 D* x) `) j O
- ; "M" "4" "C" "4" "" "Lw" "0.8" ""
* o% w6 g. f5 m1 q8 z - ; "M" "6" "C" "6" "" "Lw" "0.35" ""* {' K6 ]9 u) B, B! s
- ; "M" "7" "C" "7" "" "Lw" "0.4" ""- U5 C: n5 C* @- P( O6 X
- ; "M" "8" "C" "8" "" "Lw" "0.35" ""
* u5 \% k5 k( [3 z: c/ x! ? - "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" ""( u. G" x; e! A- C
- "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""
0 m. M; O' Y b, ]4 Q - "M" "KE" "C" "8" "" "Lw" "0.3" ""0 |; ^ @4 I$ N+ b7 m
- "M" "KT" "C" "9" "" "Lw" "0.35" "": N. N8 [8 h9 g4 G8 q6 K4 s+ `
- "M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""
- V8 m( @& E( K - "M" "NETMANH" "C" "43" "" "Lw" "0.5" ""
% t5 i. |/ B% o, C: V v - "M" "TBD" "C" "2" "" "Lw" "0.8" ""
2 Y* v+ `/ t4 w - "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" ""' A: T1 {& Z9 H. y. B
- "M" "TEXTVN" "C" "132" "" "Lw" "0.4" ""
: _9 G6 t) t: {0 a0 @( e8 j4 \ - "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""
. t( \/ Q6 Q* E! M* y5 E - "M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""- E3 t3 X) [+ e3 ~
- "M" "CUA" "C" "6" "" "Lw" "0.5" ""
: Z+ W' R0 n4 I. i6 O. ` - "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""
1 i, U- d: G' Z. I- W: K
( V0 O: i9 ~1 \0 v# b- G3 g- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===+ ?6 ]% B* M- i0 B3 ]
- & H# w7 ~) p% D
- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" ""* k& f8 C# }% t0 {9 t) l" l* m
- "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" "" A: h/ x d7 j1 D; ?% X% V/ t
- "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""
7 e0 i- V# W2 o& l. K/ L+ `- u4 T - ; "M" "250" "C" "250" "" "Lw" "0.35" ""
- c, E7 k; v! d: M# ? - "M" "KHUNGTEN" "C" "4" "" "Lw" "1" "": B! B% ^1 I/ @# i3 X5 t; B+ `
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" )( v# C3 k& T: V! C# u% e- t" }
- ( V Y* _( j" g
- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======# |% N4 Z+ W! Y$ F# G
- ;===================================30|04|2024==============================1 C6 s. a8 \( {; D3 R8 b
- 5 t) Y' l! y4 t5 {
- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )
( R3 F; H" d& P; n - (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )# ?5 l+ m& c, a
- (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" )
# u3 z+ F& _& k9 n; \! X - (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" )
0 e7 l# C0 N+ v% C# c* ~1 U - (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" )
3 k+ @4 M9 O4 F+ z# u6 D! | - (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" )6 }- ]$ f* s0 l7 K: d4 E
- (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" )* `# {* U8 E: b* O' q: n+ \5 R+ j
- (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" )
, j2 Y5 H3 t: D0 O9 i' I) z. f - (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" )
3 I/ I1 U5 I5 |, h7 H - (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ)
2 k4 ^( M2 J. G: |" Z - 6 {- f' `! `4 d: P
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=. C' w) a* F1 t6 V: M
- ;===================================17|10|2024===================================5 ^9 H/ ~9 R+ k. ?( g
- % C. o* i( U. ]
- (Command "DIMTXSTY" "ROMANT-DIM" )" P0 W1 f {' w- c5 s9 e
- (Command "DIMBLK" "" "Closed" )
$ }4 z' @, a, Q0 `* H" }( k! u, y
* d" i3 n+ M. v- x' A! @. @- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
+ @- q. x, G! x; l1 i3 L6 H - ;===================================17|10|2024===================================2 \9 y/ I$ k8 x* ^1 U% W! v$ g
- ) p2 T x! ?& G
- ;(Command "-units" "2" "8" "1" "8" "" "N") k2 U5 H1 F# p. w, ~' r) y
- (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ)
. P0 _* v6 |" {! w4 _ I - % y) r$ L# }8 z0 X& c! q1 I% Y' k
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
# T) v5 X' r' @" F% ]( j/ e - ;===================================17|10|2024=================================== q$ a7 d" K6 |+ N! Q% z" U
% B$ s* p4 p) |* k7 X- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====
+ B. q, ]2 O6 b6 ]& {2 U& E; [- k A
9 Q+ _4 v, i' T. u* m- ;======================== DAT NET IN & TI LE BAN VE =============================
; H5 v7 I- O2 s8 g) d& V
. b; U* t9 \2 P" t# [# h- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================& ~7 i9 I) U$ D- x6 T7 ^
- ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================
( ?$ b5 ?& C; V$ G - ;=============================11|07|2025==============================
, |( A4 i" F# y' v3 e9 T k - ;Ti Le Ban Ve - 1 : 100
+ O9 ?1 {6 s* O! O' A1 G8 q - (Defun c:kta4 ()
2 X/ A1 _ i) z, k. M+ S - (setq mv_sc 100);Ti le ban ve
7 c2 }; {4 s$ D0 X1 q) t - (setq x4 297)4 t2 T, P' [, Y. u( H( _( N
- (setq y4 210)
' T% ?" o& ~9 O( A7 S- L- p - (setq x4 (* mv_sc x4)
9 t; d! C9 m6 g! |5 M - y4 (* mv_sc y4) )
- H. a9 r6 p h" {! U! ?; _ - (command
6 x: i! X% }. i3 ?1 u6 j - "LIMITS" "0,0" (list x4 y4)& z- j0 e2 _5 T3 @0 M2 z8 k8 W
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
8 v/ s% O# \" d2 [; m/ q9 H+ E - ;Khung CHU NHAT Chinh $ S0 B ^3 `/ I3 \
- "RECTANG" "500,500" "@28700,20000"
0 V% \1 s% |2 m - "RECTANG" "700,700" "@28300,19600"
/ {+ O7 n) R) Q% f" ]' w. P - ;Khung Ten Chung+ k3 N4 z7 j. P1 Q. V& t/ M' K0 P1 ]
- "RECTANG" "700,700" "@8000,1250"
6 d2 ?: D) O+ }% y- @ - "RECTANG" "700,700" "@17300,2500"
9 k* |9 w% Q2 d! n! A% F8 v - ;Ten Ban Ve3 \) e) }& ~: J- R% K4 Y* I
- "RECTANG" "18000,700" "@11000,1250"
! X) l$ ~& T" Q! e: q4 A$ H2 b" \ - "RECTANG" "18000,700" "@11000,2500"
8 E O0 s( \- l: i# M' r5 ^0 _) f+ d - ;Khung Ti Le + Ngay Thang Nam
; H7 z; J+ l9 I3 x/ K! f - "RECTANG" "22500,700" "@2000,2500"
1 m3 Z: b! a5 F4 t - ;Khung CHU TRI
$ _' L2 ~: L8 c7 F - "RECTANG" "8700,700" "@3800,2500"
6 ~4 }! }1 s* |: ?* V; F9 d - "ZOOM" "_a" ))
8 f! T: |8 ~% g* s& }; V, K H5 L - ;=====================================================================3 J I5 E6 S* j& r; x! A N, W& b
- ;Ti Le Ban Ve - 1 : 100
1 l9 E1 V0 e+ A9 F6 U( w, [. [& h - (Defun c:kt4a ()$ R3 W8 E0 ?, a, b; M% l4 M
- (setq mv_sc 100);Ti le ban ve8 ^6 U- ]& t) ^- I
- (setq x4 297)8 O0 B; f/ z' |; L( J5 y8 a* F
- (setq y4 210)0 s. g6 g" h0 ]' J
- (setq x4 (* mv_sc x4) / o& k& J' S9 T$ f+ T
- y4 (* mv_sc y4) ). I+ o; l. \3 o% D. |" `2 y' o
- (command ) P, G, s1 ^8 `) k' S0 g
- "LIMITS" "0,0" (list x4 y4)
1 U8 s0 V( X0 q( n! w - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
. d; V7 S3 n6 x3 T - ;Khung CHU NHAT Chinh 6 }/ F% M) E# h L
- "RECTANG" "2000,500" "@27200,20000"
* w. h0 [' c& q& h- W - "RECTANG" "2200,700" "@26800,19600"
& k# O% _1 Y' f m' _ - ;Khung Ten Chung
/ t- u Z# z! _' h+ Z% l& l - "RECTANG" "2200,700" "@6500,1250"7 c( X$ s' t7 o* }! y$ V1 F; @/ D
- "RECTANG" "2200,700" "@15800,2500"- \2 G7 w; m3 w/ {! j
- ;Ten Ban Ve
; Y3 p. o8 i' d( |3 W - "RECTANG" "18000,700" "@11000,1250"
+ E* _1 [+ V$ r/ m1 C6 u - "RECTANG" "18000,700" "@11000,2500"
% n" M3 T( e3 k3 t - ;Khung Ti Le + Ngay Thang Nam
4 g; M8 y" D& D0 N% C3 J8 O - "RECTANG" "22500,700" "@2000,2500"
4 F3 @6 p1 [ c; ~6 y9 { - ;Khung CHU TRI4 r( R" W- k* e& H# n! [
- "RECTANG" "8700,700" "@3800,2500"
9 }# J* H4 T; O$ P - "ZOOM" "_a" ))+ s1 T' d% g% h* Q
- - r! g3 b( C) R+ Q, e
- ;;; ============================GHI CHU Khung Ten========================
* N! H c$ I& g ?, r8 T) ] - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
9 i" Q k. O2 t - ;;; =======================Thuong Dung Font Romant.vnh===================
2 N4 J# y( l7 ^, l/ R8 R, E - . r5 H9 K8 o( Q" _
- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)7 M4 U, D4 ^. H# }5 s9 r8 ]
- (setq oer *error* *error* err2)
( f3 q. B+ ^& x2 b: T/ x - (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")
5 _. M# L4 B8 D* S& k7 N - (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). "))
4 Y% K4 j" L0 q2 g5 O& ` - (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))) F, J" Y, e5 [5 l7 M( K, x' A; L
- (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))/ u: Z( P' b5 u7 R, m. `6 ~
- (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))
$ |0 I0 G2 T$ B4 G4 @& l - (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))
4 g: f% q" M. K. k, e3 E - (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))
' l6 M9 S. O& }, y - (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))
6 [, V# ~* ~8 D& E - (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :"))& y* n0 U$ r' ?5 u2 K
- (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))1 t* P# t3 L* K; t/ O' W( d
- (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :"))
) q; ~) q3 H* r2 } - (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :"))/ O% j# w% u& ~; _& V+ G
- (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))
3 Y9 y, N* l/ q! V A8 t9 y- n. Z - (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng")). s* x$ M# n: J {$ l3 B
- (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))
' `: Z F4 q) Z$ b3 n: N* @, u8 \ - (setq pta (getpoint
, @* v) E0 n! i) O& {+ u f% f - "\nPick first corner. : "))( S& H! a* O2 u$ c
- (setq ptb (getcorner pta
9 Q+ U/ \+ n- ~; m. X- n& I4 R% { - "\nPick second corner. : "))$ T9 @; {: v1 p: n% a$ E
- (setq ptc (list (car ptb)(cadr pta)))
2 |$ H+ F: E4 j$ n3 V2 M - (setq ptd (list (car pta)(cadr ptb)))
( p* V8 s% g5 K - (setq ang (angle pta ptb))
$ x, R; G$ C) v, v - (setq d1 (/(distance pta ptb) 2))0 O5 G+ w+ n0 m6 x1 G! [
- (setq cp (polar pta (- ang (dtr 0)) d1))
' s+ D4 E5 [: E5 [! n7 V! E - (setq X (distance pta ptc))
2 L# g; i3 k- P - (setq Y (distance pta ptd))
( C9 c2 G% N3 L( F3 e1 p - (setq X1 (rtos x 2 1))5 Y+ u2 O# Z& U1 J) h, o
- (setq Y1 (rtos y 2 1))+ F e8 |) X* Y, N8 f x
- (setq rmsz (strcat "(" X1 " x " Y1 ")")): f: ~+ w5 ?; _" Q N5 t$ s7 n
- (command "TEXT" "c" cp "0" CPT "text" "" rmsz))! i' G+ D* _ G0 C
- (defun dtr (angg)
, p$ k# P2 U$ l! K6 i, x" z; Q* _7 E - (* pi (/ angg 180.0)))7 ]% C: Q$ F1 w6 h
6 k4 s; q6 j" L; K8 Z) Z- ;=====================================================================
+ N, x0 U' a' p! p; L, ^ - ;==========================DAT KHO GIAY BAN VE - KIEU 1========================# y) q' y% f% B a- W# P5 w, E
- ;=====================================================================3 j' [8 m8 V& Q5 R9 H/ a, |
- & B7 e) r0 g" B
- (Defun c:a6 ()" t+ C2 U. W2 L" Q, v" X
- (setq mv_sc 100);Ti le ban ve
+ k( z2 d' F m7 j. ~( \2 r2 w - (setq x4 74.25)' O( y' K' B% K6 z& ?( r v4 S* Z4 X0 h
- (setq y4 52.5)
0 A& A, |( R$ I; M- W - (setq x4 (* mv_sc x4)
9 x9 G" L0 M0 r3 X1 r# s9 f - y4 (* mv_sc y4) )- U& ]0 @! c7 X/ s% ~9 D
- (command ( ?; e5 c% O; `# ]* e+ V
- "LIMITS" "0,0" (list x4 y4)
$ ?, l9 f0 p( [ - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
$ A6 Q. z$ U/ F) N) U: ~ - "RECTANG" "125,125" "@7175,5000"4 k6 \7 d& b. m- }0 e4 ?
- "RECTANG" "175,175" "@7075,4900"
' i! V; }7 U8 l+ `8 ^ - "ZOOM" "_a" ))! q6 R* k, K( T( ?
- ;=====================================================================' O; [( D1 m" Y- s ?8 |
- (Defun c:a5 ()( z" [0 z( E$ Y" ?4 S) T
- (setq mv_sc 100);Ti le ban ve% {0 ^+ c3 \) ~9 t1 b1 p" m
- (setq x4 147.5)4 h7 i, \& j& E6 B5 v# k9 s
- (setq y4 104)3 p" J& p- A& D' [6 K1 s
- (setq x4 (* mv_sc x4)
: C! a$ v; b$ W$ x" @$ j1 p - y4 (* mv_sc y4) ) v0 X U I5 c1 z- [+ b" s
- (command 3 a! o2 o, I/ L# i" D
- "LIMITS" "0,0" (list x4 y4); u% _" P8 R8 D2 K9 @7 A
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
( r- b8 L+ q5 x( }% O e l - "RECTANG" "250,250" "@14350,10000"/ s( H; a9 a6 c) C% H
- "RECTANG" "350,350" "@14150,9800"
1 q* C# i: y& ]1 Y. z" H - "ZOOM" "_a" ))
2 D; U, b' n5 h6 M# W - ;=====================================================================
9 L' }( W' P$ _( D3 G4 k) H' u - (Defun c:a4 ()1 d. {0 o' B3 a7 V% h4 C: j
- (setq mv_sc 100);Ti le ban ve5 j* n$ C! Z+ Z3 @3 {) H* ?
- (setq x4 297)8 e3 L( B' v J5 r3 W9 n" Z$ I# a
- (setq y4 210)6 R9 h2 c' Y3 V" n7 B3 k) J- V6 R* t3 d
- (setq x4 (* mv_sc x4)
0 s) n, I: \0 Z1 w5 K - y4 (* mv_sc y4) ). ^0 d% P. H$ k1 q8 Y% ~4 h8 g
- (command
9 J4 y/ S1 U9 w4 ^ p - "LIMITS" "0,0" (list x4 y4)
9 _% O, f7 o! j9 C- G - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
; w+ z7 Q5 o: F4 P \5 b - "RECTANG" "500,500" "@28700,20000"
: a& \ u1 @9 u8 \+ |2 ~6 z - "RECTANG" "700,700" "@28300,19600"
0 l4 a2 v! Q7 [% |9 O - "ZOOM" "_a" ))4 B% \* B6 @( r1 |0 w# C; O n
- ;=====================================================================
0 e0 Q9 g. n+ g, s' I - (Defun c:a3 ()" i1 j5 e- M6 G+ Q6 q& |3 ]! M1 g
- (setq mv_sc 100)! H$ s) w6 |6 l; N
- (setq x3 420)
# s3 |' ]* Q2 j6 r - (setq y3 297)2 l8 y& |) n+ W. p
- (setq x3 (* mv_sc x3) : K0 Y: z" l7 X
- y3 (* mv_sc y3) )' d/ Z0 h, B8 A: _0 `! b' _
- (command
# U* q* q- g- F9 d1 b. N% U - "LIMITS" "0,0" (list x3 y3)
4 }6 { _% a" F4 y- K$ L8 C - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
7 T, Z5 a9 n9 E& F - "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"
s* C' t+ ^' ` a o6 |+ T0 S9 v - "RECTANG" "990,990" "@40024.28571429,27720"% Y4 S0 s: O) o6 {0 j
- "ZOOM" "_a" ))
3 Z' m; _% l7 k9 b, j7 K+ V9 w& I2 R - ;=====================================================================& i- f$ J8 l2 ~
- (Defun c:a2 ()! a3 }: J, @: d( c7 ~! a
- (setq mv_sc 100)" |/ [7 w. N0 m8 {" A# i
- (setq x2 594)
) H) n' B+ Y7 t; j2 G/ m- d - (setq y2 420)
+ w+ S# x# u e) c - (setq x2 (* mv_sc x2) 1 }* T% m6 y9 ?) R4 _9 w7 D
- y2 (* mv_sc y2) )2 G9 h! Z6 R0 e G3 n+ e! X6 H* O9 r
- (command
! O+ k7 G" @( n9 Z - "LIMITS" "0,0" (list x2 y2)
8 X" ?& t. K% R F - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
2 `4 f: Q3 l5 h' Q6 F6 M5 u8 i | - "RECTANG" "1000,1000" "@57400,40000"# \. s: Z# s9 K+ q f3 `
- "RECTANG" "1400,1400" "@56600,39200"% \ |7 \; V; \, @& k
- "ZOOM" "_a" ))
' v+ M- ?, A+ D& k5 P3 I - ;=====================================================================) x# |2 [8 I( @5 e0 e% P- o4 F
- (Defun c:a1 ()! b2 A9 j8 q7 Y2 Y2 @, r$ v a3 ^
- (setq mv_sc 100)
: z& B2 Y$ S1 j, L p, F& v - (setq x1 840)7 n& N8 q; D& U( p4 a3 f
- (setq y1 594)
# C9 Y/ z: x8 e6 M) m - (setq x1 (* mv_sc x1)
5 E) V! H, E( i# c z3 \, R - y1 (* mv_sc y1) )
; W& `/ Z8 R& e( }/ G$ U: H5 F - (command
2 L/ W, m4 l8 {9 }/ X2 F: f - "LIMITS" "0,0" (list x1 y1)
# u( G& i! U9 L4 e5 X# Z - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
% m2 ]4 M% x; h+ m8 H4 b - "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"
8 h, o- x5 I& x3 x v+ z - "RECTANG" "1980,1980" "@80048.57142857,55440". [$ F; S7 Z, |. I+ c! N
- "ZOOM" "_a" ))0 U w( c- x) Y$ t
- ;=====================================================================
4 ~0 a3 I$ p" }8 o - (Defun c:a0 ()
* `. m6 X' K+ W+ r9 h) C - (setq mv_sc 100)0 Z' m4 |% E1 ^# P" |5 ^3 C
- (setq x0 1188)
" G4 T/ }8 N& s2 n, J - (setq y0 840)& o: _( {. t* }# I3 @. W! c
- (setq x0 (* mv_sc x0)
) }3 z, M8 ?$ H% r" r9 F. ]- |' Q - y0 (* mv_sc y0) )
" R" Z+ f- [- n( e - (command
+ a# q! O- ~, r ?: Q - "LIMITS" "0,0" (list x0 y0)
$ Y" g A9 a; s; w. J* @ - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
& l8 D+ n1 v/ ^ - "RECTANG" "2000,2000" "@114800,80000"
2 K8 Q8 _( J2 O ^( P - "RECTANG" "2800,2800" "@113200,78400" ?" c, i# _9 f5 g5 j6 r$ V1 \
- "ZOOM" "_a" ))4 y- t \& V: l9 T
* I! T$ ]* i. ^, k, O& A, D( N- ;=====================================================================! s: o. ?2 M0 v9 e( `2 o
- ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================1 r' J X$ w# O5 }1 K
- ;=====================================================================) H+ Q. n0 e( H( J) Y% ^
8 a6 p7 Z* G; {! L8 W& U4 C- (Defun c:6a ()8 h' R2 z$ N+ D2 S
- (setq mv_sc 100);Ti le ban ve
0 o$ ~" ~: d, T b5 G - (setq x4 74.25)$ R$ h! W9 s; d
- (setq y4 52.5)
o2 I/ k' K& t( Z! ~# N* |6 Y - (setq x4 (* mv_sc x4) , E/ c" ?2 g. T
- y4 (* mv_sc y4) ). d# l& J: y1 k/ k
- (command & {% H; m' v9 V3 T+ B. X9 J
- "LIMITS" "0,0" (list x4 y4)
$ e1 L+ l( I7 r: i- Q - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"8 b* w$ e, \* [* Z
- "RECTANG" "505,125" "@6800,5000"
; B2 w: H) S6 U! \/ U9 r6 `, g - "RECTANG" "555,175" "@6700,4900"' Q* }! S9 ]5 x9 e8 t: W
- "ZOOM" "_a" ))
, O: j6 r8 ^1 T5 x - ;=====================================================================
9 C$ Y7 S* E: z6 i9 z - (Defun c:5a ()2 h, ^9 V& w# L% p1 Q7 A' W
- (setq mv_sc 100);Ti le ban ve3 w% F- B( C6 y0 \7 R8 i+ \
- (setq x4 148.5)
1 [5 l, ~ N+ b8 J. Y n - (setq y4 105)2 Q N3 { d" ~! ]
- (setq x4 (* mv_sc x4)
5 g% ~* T, x5 `, e - y4 (* mv_sc y4) )
( g: M, j) X: j3 S* R- q; [) u - (command ; t% M$ j$ T( ?7 z# V9 e
- "LIMITS" "0,0" (list x4 y4)
: \ `2 q+ S' S6 k$ D3 J - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
" g1 t# J2 \4 R6 n; N( R1 }9 L - "RECTANG" "1000,250" "@13600,10000"0 C, Y% ?9 Q0 ~& z$ ^+ u
- "RECTANG" "1100,350" "@13400,9800"0 z3 r+ C8 Z* T! l
- "ZOOM" "_a" ))
9 u' `/ j1 b! C - ;=====================================================================
; I# O; `* `. A - (Defun c:4a (): b- l% z8 O! B% E2 Z) C( O# A
- (setq mv_sc 100);Ti le ban ve; a; y# j4 n* ~" ?0 ]
- (setq x4 297)9 W8 K" ?$ [9 w* ~1 B2 h1 Q ?) f+ f
- (setq y4 210)8 z8 d# K% h: ^* | |. @( ]
- (setq x4 (* mv_sc x4) $ ? j4 l/ N4 h' f2 F& l( [
- y4 (* mv_sc y4) )
. ^ ?% |0 u# ~& O. ] - (command
+ h( i" l7 R/ } - "LIMITS" "0,0" (list x4 y4)' N( k! ?+ d1 N' l) y
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
7 J: |4 B5 P* h+ N! _3 _ - "RECTANG" "2000,500" "@27200,20000"' R7 ]) v# y( h7 q Z
- "RECTANG" "2200,700" "@26800,19600"
, B0 ^3 z9 R1 F. m- L - "ZOOM" "_a" ))
+ b" J) i# M5 X+ S3 `; t p1 x - ;=====================================================================9 q6 \0 t. A& D' N9 o( ~
- (Defun c:3a ()
5 C5 O# X$ f7 _4 ? - (setq mv_sc 100)$ x+ M' S; P) k. F8 [1 @
- (setq x3 420.0428571429)
. F) _; I1 M0 X) A/ E - (setq y3 297)
. h' a. F. B# K5 x/ F$ H1 @, s - (setq x3 (* mv_sc x3) ; C3 w; ~7 S9 f! R5 D- g
- y3 (* mv_sc y3) )4 K$ j$ f0 N' `
- (command 6 Y; C- B' c5 y
- "LIMITS" "0,0" (list x3 y3)$ U% q4 ~; M. V' H$ d
- "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"5 o W W1 {, Q" D
- "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"& v- B5 h- f" `
- "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"
6 \" E8 L5 ^: ]! x6 K3 H# C& t - "ZOOM" "_a" ))
$ t$ S! e g3 R - ;=====================================================================+ N( V1 Q) \: Y7 z" `. a
- (Defun c:2a ()5 h( _$ c! w; t/ `0 d
- (setq mv_sc 100)
: A6 G% o" u, ~- m+ A5 l - (setq x2 594)
; S4 ?7 ^4 X: k - (setq y2 420)
% d1 k. P# b! t9 |" T( { - (setq x2 (* mv_sc x2) , j" u$ J6 B3 O. i
- y2 (* mv_sc y2) )
4 M! ?% \% T) o+ k/ p9 S - (command , }+ o2 s& N4 ?, C/ @
- "LIMITS" "0,0" (list x2 y2)
4 @5 e, `& J9 s' W1 }' l - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
( R/ u* k! ]9 z! R' | - "RECTANG" "4000,1000" "@54400,40000") c% E7 b/ K2 [. ?/ \8 t
- "RECTANG" "4400,1400" "@53600,39200"
; \7 l8 f v! ^ - "ZOOM" "_a" )). f2 {; V' S9 J y6 j8 G
- ;=====================================================================
4 d; T& N3 ~7 u3 P: j2 I - (Defun c:1a ()8 D& f8 k G Q0 v
- (setq mv_sc 100)5 v+ {2 g& B( e/ F; F' f* N! s
- (setq x1 840.0857142857)! q# M7 x) K! S5 F
- (setq y1 594)
# j2 L$ }* P1 _! {6 ~" U9 y - (setq x1 (* mv_sc x1)
9 ~" o. H( q1 |! w" s' b - y1 (* mv_sc y1) )) \/ f( p" [. d+ C$ ]) u3 ~ T
- (command % S3 k6 o+ a6 i* V. F/ m8 V# h1 B
- "LIMITS" "0,0" (list x1 y1)
1 a7 G/ I$ [+ ]' o; M( d" Q" t - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
' ?7 C$ R; t0 E- {7 ] - "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"
& V$ W: v5 u5 J) m% L7 \- w5 g - "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"* r, F, R1 r, ?- Q# ~! j
- "ZOOM" "_a" ))
, B/ Q2 X R) a9 h - ;=====================================================================
; _2 W2 c, ~1 A/ {6 u( s7 g2 z - (Defun c:0a ()0 {3 G5 Z6 r& E z" a
- (setq mv_sc 100)
/ l) R" @2 \( }% \9 i - (setq x0 1188)5 ?" Q( V$ F8 w$ D* S1 u- p4 P
- (setq y0 840)8 n" @( w# \% o2 R
- (setq x0 (* mv_sc x0) - j! r! k/ \/ \
- y0 (* mv_sc y0) )
# \$ c, I% p& \) [( j# g) F" Y2 S! n - (command ( m$ V: Q4 l! [; H; @3 I5 ^9 S$ h
- "LIMITS" "0,0" (list x0 y0)
9 w2 i7 ^% F% D0 @8 j5 t7 n - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
0 f3 R6 Z" g3 h; {7 ^ - "RECTANG" "8000,2000" "@108800,80000"
& [6 z7 T$ P1 S+ p/ H( p - "RECTANG" "8800,2800" "@107200,78400"
; p; c9 g0 @8 N7 y! V - "ZOOM" "_a" ))
3 Z! C: P$ X; G; k
" f* Q1 y1 y' {- ;=====================================================================
% k$ V6 L5 k; ~1 z: K! | - ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================3 j7 d8 B' q( l: z
- ;=====================================================================
& P2 r- l; ?+ k+ z4 c - (defun c:khogiay (/ oldlst a b c d e f g h kho TL)
: T3 V! {& P$ A, {; e9 \5 p - (command "undo" "be")) `+ S$ |* l8 h
- (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))5 D$ y9 U: B+ c. [3 a( e
- (setvar "CMDECHO" 0)
% r, E; i( b" z% a: g - (setq a (getpoint "\n chon diem chen :"))2 {' M2 v* F* W B% q, h3 @
- (if (not TL) (setq TL 1.00))
3 T' J! X, r' h F! r* e/ B - (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))& R0 n/ l6 W3 O" L2 i4 K" }
- (if TL1 (setq TL TL1))7 k3 y: p2 ^; t- f
- (setvar "osmode" 0)
! j a) w* K% K \' c% K! } - (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" "")) `$ m! y/ B1 M1 d
- (initget "0 1 2 3 4")9 g$ {/ U: z4 M: i2 Y% P0 k
- (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))! n0 p! [) j2 i- q# o
- (if (= kho "0")
/ Y8 B" v4 e( k/ {" \; g+ [ - (progn. G l2 n @: C) r: C9 ?
- (setq b (polar a 0 (* TL 1189)))
0 I' i4 {) B: C+ \" S' F - (setq c (polar b (/ pi 2) (* TL 841)))
/ G2 E6 N/ j/ K5 b0 Q - (setq d (polar a (/ pi 2) (* TL 841)))$ f. n! p1 [5 E3 ]7 ~
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))& V; H. o9 R% X: k2 X% I) V: u- b! B
- (setq f (polar e 0 (- (* TL 1189) (* TL 24))))
% V6 Y, [1 b/ f t, @! b - (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))
( y4 q, v0 l, J2 ]* r - (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24))))
4 |8 n. Z# r4 w* n - (command "Pline" e f g h "c") 1 j/ b! x9 F: n. U
- (command "change" "last" "" "properties" "layer" "0" "")6 A% }! }4 ^/ l: u6 e
- (setvar "cecolor" "4")
1 j7 v0 {( l$ n' S* u" N d/ c. S% z - (command "Pline" a b c d "c"); p4 j5 Q6 d; L1 V, D# v
- (command "change" "last" "" "properties" "layer" "defpoints" ""))) 1 a0 D6 \+ V, S2 ^$ r7 _6 n
- (if (= kho "1")
9 M% y' G: p, o$ `" s& u! \ - (progn$ S: q. g1 V% p l0 Y+ N3 U
- (setq b (polar a 0 (* TL 841)))6 c. A" S/ m4 b( \7 Q
- (setq c (polar b (/ pi 2) (* TL 594)))
8 B3 E& B8 K% x5 }" I3 \# f - (setq d (polar a (/ pi 2) (* TL 594)))* _( Z! A2 H2 ~, g5 M, x" Q
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))( i% D' l1 r, D8 f g5 I$ _
- (setq f (polar e 0 (- (* TL 841) (* TL 24))))
4 i* ]' }- m1 c1 K) e C - (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))
( u! Q1 D) q" P- t$ ~3 b - (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))
2 q j9 M$ @( o$ J - (command "Pline" e f g h "c") ( K0 m( c, W' X5 }$ t9 C. q
- (command "change" "last" "" "properties" "layer" "0" "")
9 m9 o1 T( s7 ^+ T: V; `. W8 { - (setvar "cecolor" "4")1 |# ~/ C( [4 s4 s0 H7 Q: m0 _& U
- (command "Pline" a b c d "c")
. t( L5 y2 r7 ~8 a3 \5 o5 a- B" {1 | - (command "change" "last" "" "properties" "layer" "defpoints" ""))), c4 p0 ^9 a) ~( H
- (if (= kho "2")
1 i6 ~ V3 Y- F% V9 N& { - (progn& P7 l( j! G0 V" `; q
- (setq b (polar a 0 (* TL 594)))( U9 [0 _5 `" m7 }+ s! T4 W1 ^
- (setq c (polar b (/ pi 2) (* TL 420)))
4 N8 P/ w7 E8 u U - (setq d (polar a (/ pi 2) (* TL 420)))
: e* i, M% `! y+ r |0 e9 i - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))9 v6 g. K0 s V- i' I7 m* s: I* t' M
- (setq f (polar e 0 (- (* TL 594) (* TL 20))))2 r! [" Q& W- y; q
- (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))
( @+ E5 j2 J2 }( I7 F% w- \ - (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))' M! l' M8 V0 p
- (command "Pline" e f g h "c") 0 B# }9 x5 }- V) [2 p
- (command "change" "last" "" "properties" "layer" "0" "")* _7 l% e, D+ i7 J
- (setvar "cecolor" "4")
x5 @" W* f$ D6 d5 a - (command "Pline" a b c d "c"). w6 S& Q% A Z
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
2 J4 i$ ^4 ?7 [% @+ W% ?! v - (if (= kho "3")
3 T; k9 v" E: o1 \ - (progn
2 {& \: X4 B7 J7 {1 x- X% C' w - (setq b (polar a 0 (* tl 420)))2 E6 T! W* r' P+ x* U( N$ h
- (setq c (polar b (/ pi 2) (* TL 297))). Z, w! R& S2 d" [8 L
- (setq d (polar a (/ pi 2) (* TL 297)))0 `( F' k2 \" t5 z( X/ O
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))/ Y5 ~, J6 Z$ L5 n
- (setq f (polar e 0 (- (* TL 420) (* TL 20))))
& R3 ]* s% f( H" J - (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))" X0 r' x5 j) n( }/ }
- (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20)))), M8 f- d( ^! ~% T& F
- (command "Pline" e f g h "c")* v! t2 `3 s# y7 x) }3 D; }
- (command "change" "last" "" "properties" "layer" "0" "")
+ w2 D8 X+ _) v1 |: c# O5 e - (setvar "cecolor" "4")
+ b, x" b& v% [7 g9 f2 ` - (command "Pline" a b c d "c")
$ A2 f1 A; D6 l* K$ M& | - (command "change" "last" "" "properties" "layer" "defpoints" "")))
+ E/ j. u9 V4 t( V- Q3 y - (if (= kho "4")& ]: d$ t2 r, a9 z) }
- (progn) a7 F0 f. ?" |2 |2 O
- (setq b (polar a 0 (* TL 297)))
4 q# E+ @6 {" }. I( ]* x3 o! r - (setq c (polar b (/ pi 2) (* TL 210)))
& ^% K# }4 l' K. ?6 i6 G - (setq d (polar a (/ pi 2) (* TL 210)))
" F, g4 _9 Y# y8 X m9 r' d - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))* A# w& @) A2 l% q6 t+ B
- (setq f (polar e 0 (- (* TL 297) (* TL 18))))
" n$ p# k- @# P7 ]" d* k6 N7 u - (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))
% @- e$ X9 L1 }# V9 }0 Q5 o0 }5 E) r - (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))7 G/ [7 @: q- d( y5 n# Q
- (command "Pline" e f g h "c")
: a. U+ n5 C2 s% Q4 m6 k - (command "change" "last" "" "properties" "layer" "0" "")
4 Z1 l8 T8 a* }1 ^) c - (setvar "cecolor" "4")& b3 u" ~( Y/ S
- (command "Pline" a b c d "c")* R5 Y8 X: Q0 A
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
# e9 X. k v6 I6 U0 I: @* R8 R! W& S - (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)' J* Z5 H; A4 \. S
- (command "undo" "e")
) O" V( f( Y9 O8 i5 G5 j6 g - (princ))9 l( S" j( v6 l+ i
- ;=====================================================================
8 y: E2 a( x& o$ e - ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================& Q0 S7 \% C3 q! f
- ;=====================================================================
) V: H" ]# X( T; T+ X; I1 E3 j - 1 A& c/ K8 h8 H% d0 l& ]% J
- ;=====================================================================+ s& y. o) d( F
- ;===================DAT Ti Le Theo KHO GIAY BAN VE====================
! R& L- N8 `# H - ;=====================================================================9 I- S5 \" e o
1 x; P: p/ |: w4 s4 R2 Q5 E- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""+ L* w2 X$ R1 o" L) @5 f: x
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""* s8 D: I$ S0 S$ E; F8 ^
- "M" "MANH" "C" "9" "" "Lw" "0.1" ""
! c M2 s+ g' Y - "M" "TEXT" "C" "7" "" "Lw" "0.12" """ Z, s& r: E3 H
- "M" "DIM" "C" "1" "" "Lw" "0.12" ""
7 ^- y. i( u5 L# X; V5 q0 [# a - "M" "THAY" "C" "7" "" "Lw" "0.2" """ p/ V( c) T: v9 z/ m
- "M" "NOITHAT" "C" "3" "" "Lw" "0.12" ""
4 P) L V" W! {: A* Z - "M" "HATCH" "C" "5" "" "Lw" "0.1" ""
9 ^) c; q: Z: A - "M" "COT" "C" "1" "" "Lw" "0.3" ""- b$ J/ \9 ?9 W$ y6 F
- "M" "Defpoints" "C" "7" ""
+ A; _: x! `; S0 d - "M" "0" "C" "3" "" "Lw" "0.12" ""
- f7 ]5 q6 }/ y( V* | - "M" "CUA" "C" "6" "" "Lw" "0.12" ""- C( o P9 `3 I3 w% f/ ~6 M' [
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
3 q( S4 e! q, u - "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))) q) _" G- Y* [3 g
- (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" ""
8 }. f! T6 ?( n7 k% j - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""
. e; t2 z+ Z- t, D, o - "M" "MANH" "C" "9" "" "Lw" "0.12" ""
' [, P3 ?/ H, p7 u - "M" "TEXT" "C" "7" "" "Lw" "0.12" "": r% k' ^' r$ `& ^! n
- "M" "DIM" "C" "1" "" "Lw" "0.2" ""& q6 f# L) ^' O, n4 K3 B. D
- "M" "THAY" "C" "7" "" "Lw" "0.2" ""3 a0 d9 o- [+ {) M
- "M" "NOITHAT" "C" "3" "" "Lw" "0.2" ""' C! u3 d" p# X2 @& c7 M! Z5 A. N
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""7 F6 U4 F: o* L8 S2 b3 f
- "M" "COT" "C" "1" "" "Lw" "0.4" ""$ l5 H9 \9 _! a' {
- "M" "Defpoints" "C" "7" ""( x& x6 ]# k. L2 U
- "M" "0" "C" "3" "" "Lw" "0.2" ""7 P" h; C" _- l5 Q
- "M" "CUA" "C" "6" "" "Lw" "0.12" ""
/ ]! Y( Q. U! s- S# H - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
- C1 R+ L2 Y4 }: _& } C( S' Q2 A - "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))
- D f0 |' g9 j3 p* O/ p - (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" ""! {8 z6 j' y- E
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""/ J5 I* X" T( d9 ~4 S0 k1 w
- "M" "MANH" "C" "9" "" "Lw" "0.2" ""3 |9 P5 e4 U9 v4 R
- "M" "TEXT" "C" "7" "" "Lw" "0.2" ""6 U- [" l$ u" p; S4 A" T1 e% F8 ^" L
- "M" "DIM" "C" "1" "" "Lw" "0.25" ""
2 I' ]+ Y6 |: @( L: Q; j* w6 [! o - "M" "THAY" "C" "7" "" "Lw" "0.35" ""
5 g1 ]: Q |3 W' L, {5 h - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""
/ a$ E6 n) \* o8 |+ K' M7 c( t, t4 C - "M" "HATCH" "C" "5" "" "Lw" "0.15" ""
- m9 P/ y5 c0 Q - "M" "COT" "C" "1" "" "Lw" "0.6" "". f H/ ^! q Y( H
- "M" "Defpoints" "C" "7" ""; j6 _$ I$ m, t" B5 P
- "M" "0" "C" "3" "" "Lw" "0.25" ""
/ M, n# c* ]3 v( i* j. y - "M" "CUA" "C" "6" "" "Lw" "0.25" ""- p* u! ^& M2 c, Q' o" k
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" ""& `% f) Z; E1 L2 d
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))
5 {+ ~7 K% |8 q) w, }0 ~ -
1 `5 M5 r6 F" E3 _" W7 w' F - (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""
O @" t6 N, r- P; d2 H0 | - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""7 Z! p; [5 T0 I* j4 t
- "M" "MANH" "C" "9" "" "Lw" "0.25" ""' o; I- e: V, A/ M
- "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
4 m5 b4 h7 M" R# S3 | - "M" "DIM" "C" "1" "" "Lw" "0.35" ""- T# c- t# \; U/ o2 C+ J
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""
6 `/ |* s# k% r% e, P( l; r9 V$ `7 I - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""
' [+ y6 @" C2 a# y9 \1 E - "M" "HATCH" "C" "5" "" "Lw" "0.2" ""% z8 {) L2 ~+ L3 |" t2 R, [
- "M" "COT" "C" "1" "" "Lw" "0.7" ""
0 T, |, o' ]. p& C3 P: M - "M" "Defpoints" "C" "7" ""/ w% o' t2 U9 s! ]+ g
- "M" "0" "C" "3" "" "Lw" "0.25" ""& B6 J" @4 P- Y8 j& w+ z
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""
8 b% t4 H6 a; U, t9 ? - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""/ d7 G5 R4 {) f* i% j! R; n
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC)6 Z7 S8 D0 |7 z- W/ v3 p
- / j& F9 r3 m/ L
- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" ""
& G" e8 H0 U9 M1 j# e" I+ t - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
* n; V, }8 O7 P5 Q2 [+ U2 i, b - "M" "MANH" "C" "9" "" "Lw" "0.25" ""* o# b* F0 l# n5 u
- "M" "TEXT" "C" "7" "" "Lw" "0.25" "") Y n# X5 o6 Y7 v
- "M" "DIM" "C" "1" "" "Lw" "0.3" ""
# N& I; _" D7 S* t' D* l* S1 X - "M" "THAY" "C" "7" "" "Lw" "0.4" ""2 R4 o2 I% @( {: L4 ]. R" h" T
- "M" "NOITHAT" "C" "3" "" "Lw" "0.3" ""
2 R9 m" S6 K4 u" s. q9 c - "M" "HATCH" "C" "5" "" "Lw" "0.2" ""2 c! o r" z5 A Y
- "M" "COT" "C" "1" "" "Lw" "0.7" ""6 N, a: _2 a+ q
- "M" "Defpoints" "C" "7" ""
7 k* R; i. W& y% u# D: g5 j$ C - "M" "0" "C" "3" "" "Lw" "0.35" ""
" G6 |. w6 Q' s9 k" f - "M" "CUA" "C" "6" "" "Lw" "0.35" ""3 c' I9 J0 M' @. ~4 I3 U9 \' _
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" "" d+ s5 [3 u2 F* k5 o1 K
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))
. ?7 o9 C% m3 G8 c - e1 G" x- T4 S$ s) X; K, \
- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" """ t9 Q6 j) m) J! K8 d! S1 ^- N
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""
4 i6 {2 f! |/ K5 c - "M" "MANH" "C" "9" "" "Lw" "0.35" ""% A# A( S( h/ G& x7 J9 C7 W$ \. j
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""( R! r4 b0 D, W5 Q$ j
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""
2 [8 Q5 p1 K$ b; j) a) J - "M" "THAY" "C" "7" "" "Lw" "0.4" ""
7 j# m0 U: @5 t0 r r) m - "M" "NOITHAT" "C" "3" "" "Lw" "0.35" ""% M+ q, u6 X% {3 o
- "M" "HATCH" "C" "5" "" "Lw" "0.25" ""2 D0 R, g& O) [- H3 F) ?
- "M" "COT" "C" "1" "" "Lw" "0.85" ""
9 T- [8 d0 D. C* Q x1 n8 v% m5 ? - "M" "Defpoints" "C" "7" ""( w7 T8 t% N4 U& e
- "M" "0" "C" "3" "" "Lw" "0.35" ""
0 t n3 ~4 W1 C5 F; @ - "M" "CUA" "C" "6" "" "Lw" "0.4" ""
5 O3 Y' Y9 u4 z- w - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" "". N% y0 ^7 @1 `1 d+ m6 p
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))4 Q5 h$ O, ~7 X/ f
- $ ^$ `( F9 {( k) A
- (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""
# ]3 Q" F8 n- W K. Z1 a( W. G - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" ""
% Z4 [9 [7 L: J - "M" "MANH" "C" "9" "" "Lw" "0.35" ""0 ^; Z2 q3 d4 g, g0 D0 W
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""' {# B% y% c* R0 K" p4 b/ W$ F
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""
1 }% L g9 M7 P' L: |. W* K - "M" "THAY" "C" "7" "" "Lw" "0.5" ""( X& |# r. y2 [0 Q, D
- "M" "NOITHAT" "C" "3" "" "Lw" "0.4" ""
: \% s& t% X$ m- ~% R$ d - "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
+ a! p# h3 L& K - "M" "COT" "C" "1" "" "Lw" "0.1" ""
# f( t2 s+ v1 H0 j ~0 B - "M" "Defpoints" "C" "7" ""
1 ]/ @( C( ^6 d# _! k1 U$ p6 d. R - "M" "0" "C" "3" "" "Lw" "0.5" ""+ T/ B1 _$ R( `. t
- "M" "CUA" "C" "6" "" "Lw" "0.5" ""9 S" n) E' w; o$ C
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""
; y0 u" z! _- l6 u! s+ T9 v - "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" "")) M' |$ O1 v, q6 I% ?; o6 a% p
- (DEFUN C:O () (COMMAND "OFFSET"))
: }* W) M7 D, T! \. Y/ b$ i - (defun c:s1 () (command "surftab1"))
3 n5 D& s7 D8 N7 X1 Y; S2 X, y - (defun c:s2 () (command "surftab2"))
- k2 j) M0 F& [' A% e - (defun c:ep () (command "explode"))' a+ d- s$ M3 @" L. X* ]
- (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))) K; q2 q6 o. r- P* @: }
- (DEFUN C:QV () (COMMAND "QSAVE"))" p4 X/ p( {' _
- (DEFUN C:S () (COMMAND "STRETCH" "C")) x/ Z+ k1 A' T4 V& e
- ! U, ^2 Q9 s! u& j0 n* B3 Q
- ;************************** CAT DIM **************************4 {% D. [. ?, \8 n2 B3 c5 A
* x+ S+ c2 y+ @1 z. z0 u$ j9 g' }- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I* o i- _' N, E* @! c8 N3 q
- PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)
7 o; |% ?. u5 [0 b% [ - (SETQ CMD (GETVAR "CMDECHO")); I1 r5 t$ u2 Z2 b q
- (SETQ OSM (GETVAR "OSMODE"))4 R; o6 `+ y) |, u6 @
- (SETQ OLDERR *error*
, r( \2 s3 }% w* s) u I8 ] - *error* myerror)
8 |1 a/ p5 ~. O0 v1 t8 K% {% @" e - (PRINC "Please select dimension object!")
7 e6 A+ C9 e9 [1 D) a( u+ \8 ~5 n - (SETQ SS (SSGET)); e8 F) r1 l( q/ g
- (SETVAR "CMDECHO" 0)
0 Z' h+ O0 a* \+ P T7 c. K - (SETQ PT (GETPOINT "Point to trim or extend:"))
7 @" G+ g& K% j. t) |5 I8 y - (SETQ PT (TRANS PT 1 0))
( P* S8 B* V5 B5 f3 a+ N: W4 m; q - (COMMAND "UCS" "W")
& ~ d/ U4 W; X3 `1 f2 J - (SETQ LTH (SSLENGTH SS))
5 q' X' g% L& h; R. u( B) g$ ~ - (SETQ DEM 0)7 e& N( B: L/ t; a1 ^ t- H
- (WHILE (< DEM LTH)) `3 \. g/ x# i; {5 g) R& z
- (PROGN3 @" D3 I+ u4 E. I3 ~$ M
- (SETQ DS (ENTGET (SSNAME SS DEM)))' w/ |4 G5 g6 L; H
- (SETQ KDL (CDR (ASSOC 0 DS)))
: N! h6 |, B5 v. k - (IF (= "DIMENSION" KDL)
; M/ d) i1 W+ n4 Y8 ]3 h - (PROGN
5 `, [& e3 s! q. K: ]( S - (SETQ PT10 (CDR (ASSOC 10 DS)))8 l1 n- e% {+ V2 L8 }" S
- (SETQ PT11 (CDR (ASSOC 11 DS)))
Q4 F! x3 r3 E - (SETQ PT13 (CDR (ASSOC 13 DS)))5 u( V5 q% U7 e" A
- (SETQ PT14 (CDR (ASSOC 14 DS)))( G3 |8 N! P) x" {9 i# w$ r* R
- (SETQ N70 (CDR (ASSOC 70 DS)))1 V/ A- t$ t! X8 A0 _$ y8 g
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161)), J$ X1 G4 @! G
- (PROGN$ U: K3 |: z7 V% d9 g; ]
- (SETQ GOCY (ANGLE PT10 PT14))
6 [' y p1 _! ~9 M0 m - (SETQ GOCX (+ GOCY (/ PI 2)))$ j6 r0 S% j6 S
- )
* P! E. Y5 D4 j7 e - )* r6 w. P" R+ y, _/ C- N# t
- (SETVAR "OSMODE" 0)
: t- z5 z& S# j3 U4 B - (SETQ PTI (POLAR PT GOCX 2))
! k% L% O% c" W% K3 s$ X0 K" R - (SETQ PT13I (POLAR PT13 GOCY 2))
p$ F p; @8 v& D) z( B - (SETQ PT14I (POLAR PT14 GOCY 2))
$ k# @/ B* N8 g* m, S - (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))
( e z0 q) M Z# q u" F - (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))2 {& z* d2 y' Q3 n9 d
- (SETQ O13 (ASSOC 13 DS))' b5 g" O5 Y3 j: z+ C& Q4 E: F
- (SETQ O14 (ASSOC 14 DS))3 q( \9 r0 c8 o- {3 T* A- e
- (SETQ N13 (CONS 13 PT13N))
0 }2 U4 k! ~0 b; V' p* \. s3 _ - (SETQ N14 (CONS 14 PT14N))1 J: l% ]+ e& d* M
- (SETQ DS (SUBST N13 O13 DS))
8 Q% g9 U: l5 B; b - (SETQ DS (SUBST N14 O14 DS))# c S" R2 `# N# u- j9 \
- (ENTMOD DS)( g5 Y4 N1 C$ o) p/ v
- )
9 i5 K. k' S$ K e" O - ). P7 U- A# y- Y9 X, k) x2 Q
- (SETQ DEM (+ DEM 1))
2 y8 H! {" C. ?, M0 K; s8 X - )
6 I) @3 |" n0 J - )% _5 X. E5 W0 ?
- (COMMAND "UCS" "P")
7 y- [) {& l2 Z9 ~/ e9 _ - (SETVAR "CMDECHO" CMD)2 \, W. E0 A# m5 r
- (SETVAR "OSMODE" OSM)
) | a3 V/ g& a* ?' s6 q - (setq *error* OLDERR) ; Restore old *error* handler
9 f+ s& E& z% @4 r - (PRINC)
) G& t( S: r' V: V1 A( }& V - )
1 v* {$ ]( W4 J& E: ?7 _! {* U% A) j
$ I3 K7 y& `* s5 {( g- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI
4 @/ W4 A- F: s/ L" { - PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)
8 A) [6 R; p8 _, a( N. m - (SETQ CMD (GETVAR "CMDECHO"))9 K6 I/ i# m0 R: S3 V: \
- (SETQ OSM (GETVAR "OSMODE")) g" ?2 b' P f ]% N
- (SETQ OLDERR *error*1 u9 t% |1 x6 x& A4 P. @
- *error* myerror)
. c/ F' T9 D4 m6 H. H - (PRINC "Please select dimension object!"), P% k7 T, n' l+ l9 x
- (SETQ SS (SSGET))! x1 v' I b9 M( ~, Y) l
- (SETVAR "CMDECHO" 0)
& V1 {; g; A& I6 |5 h4 A0 | - (SETQ PT (GETPOINT "Point to trim or extend:"))% c+ S. s; x/ c( b* ]- K
- (SETQ PT (TRANS PT 1 0))
& A J* C1 k3 c - (COMMAND "UCS" "W")# |! Q. y# h- g
- (SETQ LTH (SSLENGTH SS))
a! i1 ]4 ?2 L. y - (SETQ DEM 0)
! ]: r/ n( y) z! a - (WHILE (< DEM LTH)
( l& {+ j0 u$ h) L9 S - (PROGN
. e6 C q) |- }9 V# y- U" c5 _6 Z. m - (SETQ DS (ENTGET (SSNAME SS DEM)))( g3 _" \7 [/ H* I+ b. v' y
- (SETQ KDL (CDR (ASSOC 0 DS)))- |4 u/ S. B% t: Z6 \& E, F
- (IF (= "DIMENSION" KDL)# |: e" M9 ?% T3 Y! \% V
- (PROGN1 X2 }4 c" p8 @
- (SETQ PT13 (CDR (ASSOC 13 DS)))
4 Z0 b0 E9 Y4 R6 Y: V2 Q$ v6 a9 e8 Z - (SETQ PT14 (CDR (ASSOC 14 DS)))% _# l' a3 o5 Z3 ^4 C5 \
- (SETQ PT10 (CDR (ASSOC 10 DS))) k/ o4 W2 F6 T% o/ `4 G4 z5 k
- (SETQ PT11 (CDR (ASSOC 11 DS)))
1 \, ^# Z/ I: j" S. e% ` B- _3 I - (SETQ N70 (CDR (ASSOC 70 DS)))
/ u" u/ \9 r0 a2 z4 F( \ - (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
& a' U1 f5 _% D- Y e6 s - (PROGN- s4 o4 p! k/ c6 f
- (SETQ GOCY (ANGLE PT10 PT14))
2 b. Y' S& @" C6 I" j - (SETQ GOCX (+ GOCY (/ PI 2))): T2 d. v+ ~( B# H; W, f6 Y) U
- )$ b5 S4 B; X9 P
- )6 V/ G& f! t. y/ ~3 d
- (SETVAR "OSMODE" 0)3 n' M+ e1 g6 N5 Q( L/ a% ~
- (SETQ PTI (POLAR PT GOCX 2))
$ e$ Q. F& f* q1 N6 O S" W' r - (SETQ PT10I (POLAR PT10 GOCY 2))
" R ]5 d- d/ _& b - (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))
" {. S i0 z6 _: I - (SETQ KC (DISTANCE PT10 PT10N))$ m1 ^# o( _( X4 T+ O, g
- (SETQ O10 (ASSOC 10 DS))/ ?6 q& u! t, l
- (SETQ N10 (CONS 10 PT10N))
) a9 t% h4 j% a. ^# M& _ - (SETQ DS (SUBST N10 O10 DS))
2 g+ ~& D2 _. h1 i# O0 C2 |5 N - (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))# l7 a1 Q7 n% E" o: g7 `
- (SETQ O11 (ASSOC 11 DS))2 R } d: W. p/ C# I
- (SETQ N11 (CONS 11 PT11N))# }9 I* W6 F C9 M- ], A5 Z
- (SETQ DS (SUBST N11 O11 DS))! |" |! w% u4 @
- (ENTMOD DS)7 r0 @( `3 r: U: S
- )+ m, V- A2 e) K! V9 `9 [
- )
3 @" I- t" K/ b4 [/ ~ x' C - (SETQ DEM (+ DEM 1))
, A! ~0 Y- s4 q" Z4 U/ R - )
$ q8 r7 m" i# T$ r - )
/ L. Q4 @8 ?" v6 Q" n - (COMMAND "UCS" "P")9 t& b3 _# q. l& b
- (SETVAR "CMDECHO" CMD)( H3 a+ h$ e0 P3 o1 {/ X0 I
- (SETVAR "OSMODE" OSM)9 s' y0 r! J0 w* i: g( O, Y
- (setq *error* OLDERR)
* x9 t& @5 e5 h- o$ e/ r - (PRINC)
0 ^- Y' i0 i$ ?2 H5 ` - )$ F/ r: t/ q* n1 ^( o6 F* u
5 X$ P6 h0 t. t- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================5 [0 t6 }; n/ Z
7 j& }$ @. y; I5 O; i- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")4 F6 F* k+ [* o
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p"), p- ]" m9 H# o2 p
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt5 c3 R& j v/ q( a$ ]5 U
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt))): v9 {! K8 o: o E4 @2 `
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")
. W5 \( z/ B, v6 g- l: x! ? - (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))
/ e1 l, c& q7 G& U! j1 q, I - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt))). @4 v( _4 |: u( G4 ^* U* v
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
; f9 P" F- G. @ - 8 z2 Z% v; k, @+ M
- ;;; ================ CHEN COT (TUU) =================( M' D/ w0 b0 X9 T
+ ^6 a# c) N& E+ j8 J, ?3 [- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")! t( E8 f9 |( f3 M* {" W0 {! a! }
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
0 r7 j' `: W6 V5 o. _. s - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
C U3 n# h! _) Q - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))! G0 Q4 u5 f& q( U/ j& F- \
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")2 P! W A- A! k& r4 H0 W
- (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))
! R% y+ ?( x: f1 f8 q - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
]4 ~$ v5 W. b9 x" j0 i: C5 R8 k - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
5 x) z9 D2 O+ ^7 v( L. v5 Y
( a( j! c- B7 G, U( c3 Z- ;;; ================ CHEN KY HIEU THEP (TP) =================
; c( [$ s$ [' j, o - 3 q2 h2 w3 G: a$ h; Y* x
- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")
4 ~* ^, _6 ?& Y V' J" o5 H# l" | - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
c5 n6 V- X1 E/ M2 F - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt/ Y$ U, V% ~0 r! V. ?- q( O1 X
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))" \# z% @; o4 b. @7 G- I
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")
4 c9 c2 e7 ?- N+ ?/ A/ u% t9 R - (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))3 `) |6 _ {2 E: {' K9 e% A9 R
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
' ]4 z5 L- v4 |. B; T0 A- Z! c - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
5 g' B1 B8 c& K% `3 `/ h$ E
+ h$ K6 v) _) M- ;=========================== TAM TUONG (TAM) =================================4 g( N) q( k7 l# g5 c# M( v+ m
- % X8 R* L: A9 b4 \
- (defun c:tam(/ data_m)
+ o, e3 r0 w$ V& I/ _+ U - (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0))
% X+ E% T6 H, a: R9 g7 E - (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))! u! ^. ]* `+ z
- (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)$ A7 t1 O: l! R: s& ]
- (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset
, o, D+ j6 Q4 S! g0 ~ - (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr2 n8 G" {0 G8 m" @2 ]0 c u
- (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ)# v% e3 b( z, ]0 ?: r
- )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if3 B3 ^' _' {; {- q8 @$ N. m
- (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1). t6 F1 m& Z/ Z4 }3 q6 M
- distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)
$ h. s' M% w" y# ~, e - (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))
4 _2 J& ~# w/ Q# l - (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<
# ^! w* Y1 b, H S - (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)
5 j; z4 q; ~( w( x' s* V$ S - distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))
" g- z6 |' ?* W1 K, w1 [2 c8 Z - (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p4. o7 O V+ w% T% g! S& k" W: y+ \
- (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not1 B- S' O; P. B
- (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget0 s& D8 T0 H1 q: S( ?
- (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))
2 p7 F7 @1 K! l) s- Q - (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))
% D& I% [! K' o2 @% a - ; N: d, n; ~6 L% U% V
- ;============ GHI CHU PHI (T1) ================/ O: M( c$ T8 g0 w7 S3 N
& P8 B: g# s2 b- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))
8 d* S, Q$ c1 e* s+ C- c' F - (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3
9 _/ z- |1 K4 {1 Y' e V - (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)
$ ?. c9 N4 m: q8 o( Q/ @# m2 A1 \ - (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)9 P' {. I4 q/ B
- ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1))
* _+ {/ T& b" U, [% r - (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)
1 r% m' w: n$ [0 i - 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1)/ i- A4 x1 X) z- |# l r
- (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )
$ m& A9 d& g: Y# t - (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")
! I( ~1 p) w% q6 } - (command "ddedit" pause))
6 P6 t6 n) j3 Q+ l( s
: S4 |$ s$ C0 ^* e- ;;; ========================== Join (J) =================
& h. S' a/ `% G' X. m+ x
+ A' ]# q( N) s5 ?/ ]: E# v/ c- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))
. s7 h7 n6 M' a% @; N - (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? "))
$ R' H* r/ B3 n - (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)5 M' Q9 N' @/ t, n. B& K- J
- ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")
% R8 g Q- E9 j. R - (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC"))
7 k. y- t: _# }) ~! B* ?* n - (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt ""))2 s; C/ T6 R: e7 W" l3 ]
- (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" ""))
3 ?! R+ Y7 e5 t4 P - (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))& T! M! e6 d! k, H. [
- (setq *error* m:err m:err nil)(princ)), X/ ~! U; F9 \+ ]7 Z
& G% K) F2 B% [- g1 a- ;=====================================================================
8 ?. S' s. h! a% \2 ?8 h - ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.
1 y7 a: P7 d3 k, o, M - ;=====================================================================
) j; [- l4 d' G' f - ) k- R* n: Y; ?2 M
- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old)
# ]4 F9 y( g' l. f7 g. A$ g$ A - (setq old (getvar "OSMODE")) & a- ?/ |* [0 e) O4 W
- 2 z4 |# c# [6 a9 W5 Y0 [& k2 M
- (setq p1 (getpoint "\nStart point:"))
8 G, V7 O0 P% L8 {$ @ }% W - (setq p2 (getpoint p1 "\nEnd point:"))! _: c+ f3 U# ~' t5 e6 i6 E# E
- (setq side (getpoint p2 "\nOpen side"))
9 `! e# x3 E. N0 G - z- ]2 g% h7 J; x
- (setq dis (distance p1 p2))
! \( p" A# ~8 ` C# X - (setq ang (angle p1 p2))9 ^( E+ i, S; g3 y- e! t. g
- (if (< ang (angle p1 side))/ i2 L' `4 L( A, ]! A$ m
- (setq angside (/ pi 2) )- z" b- ?- X& [1 t1 T
- (setq angside (- (/ pi 2)))
+ f! L# h H9 N! }* A! l - )
, s: M4 h, v' |/ D - (if (>= (- (angle p1 side) ang) pi)6 [- W. f- w7 v/ {5 l4 _
- (setq angside (- (/ pi 2)))4 T8 p! W" o! o A# }+ ]
- )
2 f0 d5 q2 j! g' s. g# H - (if (>= (- ANG (angle p1 side) ) pi): n1 f2 o4 \& j1 t8 U
- (setq angside (/ pi 2))
' R }& f! d5 Z: B m2 s - )* O) @# U! S# e) m
( J3 t7 C0 Q$ t. L+ E4 g" x- (setq p3 (polar p2 (+ ang angside) dis) )
' k( H- A4 S! R c - (setq p4 (polar p1 (+ ang angside) dis) ). f. x$ H( e& _' u0 i
- (setq wid (/ dis 15))+ f( e, t& I5 H) X) R$ ]
& Q' t; m Y' K- (setvar "OSMODE" 0)
, [, N/ _& X4 Y- n! N4 g - 9 l& g6 m Y8 S$ ^% U3 S
- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
9 n5 o: i, v' I" i - (polar p2 (+ ang pi) wid)
3 y. p9 G! C- k" [" V - (polar p3 (+ ang pi) wid)
. E. ?5 n- ]+ e8 B# X+ B; u* u - "")
5 x" p$ a y" ^2 g
1 W/ L! W) N' B8 r) P- (setvar "OSMODE" old)! W8 F" ]! ], ]. l
- (princ)! }! q5 A) H. U) a/ s; q+ U
- )
g$ i$ R3 @$ y( b# H* _. S z
, ~( E4 d+ f7 }+ C* i- ;=====================================================================
' _ a) b- U, V3 X0 T - . C. r# N: b+ A' w+ e
- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old)+ n1 }+ G k- E5 l9 y: e
- (defun cua1 (pt1 pt2)
& M s+ ] ]) {+ b. D1 c - (setq p1 pt19 {( s$ w( ~3 B( W
- p2 pt2)
6 }' s6 U7 U3 j' W6 \+ f4 i
! m# A* V- l) Z/ a" l- (setq ang (angle p1 p2))
n4 W+ ]0 |# l0 w3 d F - (if (< ang (angle p1 side))1 G2 C) ?+ Z: D( g+ q" v0 j
- (setq angside (/ pi 2) )) w* N! }3 ^9 G! @" x3 W3 W
- (setq angside (- (/ pi 2)))
) g J q: `0 J - )
- X6 M3 {" |3 O1 ]7 w/ J - (if (>= (- (angle p1 side) ang) pi)% F) [, T) O O
- (setq angside (- (/ pi 2)))% I. n; R6 E- B/ n. w. s7 c
- )
0 `! i5 r: J* Q3 B! T- P5 V0 i - (if (>= (- ANG (angle p1 side) ) pi); {% s1 [ G5 j* A4 d1 P
- (setq angside (/ pi 2)), x9 M" ?! r$ P. l
- )! n3 a$ ^- T5 R4 u- k4 w0 K6 b
- + E: P4 d/ V5 z/ |6 d
- (setq p3 (polar p2 (+ ang angside) dis) ) w0 l& U7 Q2 x7 }
- (setq p4 (polar p1 (+ ang angside) dis) )
: {: t: V* S- F9 `* T0 e( n - (setq wid (/ dis 15))" H5 j2 B' N4 Y3 V
' ^; w h. C$ U" U G( ^; o) p" o- (command "PLINE" p1 "A" "D" p4 p3 "L" p2 N, h. n; x2 C& j
- (polar p2 (+ ang pi) wid)
; [" b) h, L% B; Z& U% a N - (polar p3 (+ ang pi) wid) . w5 B* X, {/ w, Q1 F
- "")* O, C; x5 v; n
- )& r. D2 O1 K! K3 y) r) ?
- ;=====================================================================$ O0 F6 {7 B! k6 F* H
- (setq old (getvar "OSMODE"))
7 x/ A4 D! W, s - - l+ ~* K: S( B; R+ K3 C
- (setq p1 (getpoint "\nStart point:"))) Y8 [$ A/ ^/ J% U, S
- (setq p2 (getpoint p1 "\nEnd point:"))9 E J- {3 G/ A; j+ U+ v
- (setq side (getpoint p2 "\nOpen side"))0 x. l4 Y n4 y9 G$ y
- 3 O( S' S8 @6 ^* j3 L2 u8 j
- (setq dis (distance p1 p2))
- G6 \9 t' J- l4 l/ i - (setq dis (/ dis 2)) {1 P9 K4 s$ e5 T/ p' x G6 k
- : X8 [* |0 o& ]5 E4 i' b2 \3 N! G
- (setvar "OSMODE" 0), t1 B6 X o, ?
$ G2 I! Y: w9 }8 t; O- (setq p1 (polar p1 (angle p1 p2) dis))- D$ W f" A, e' Y. j; z
- (cua1 p1 p2)
) ^& ^! R& S0 I8 D! ^3 d# `
, i A/ c3 Q. z- (setq ang (+ ang pi))) T' ]1 w, k) ^$ B: b+ e
- (setq p2 (polar p1 ang dis))
! v# C4 ]5 K/ S: g+ p+ E - ; (setq side (polar p1 () dis))
# {" l; `5 v" `# v) u# m/ W - (cua1 p1 p2) ' o' Z' |5 q% V% @% o( N6 }9 c
) f0 @* ?5 P; ?. Q) c# J2 m3 E! @- (setvar "OSMODE" old)/ _" Z$ v3 M0 Y5 d
- (princ)" P, e& t8 X& C6 j
- ), m4 c, h8 O. f4 D
- / n$ x- o4 _- G. m/ a
- ;=====================================================================6 |; \1 J" L1 @! E' g7 t
- ;"Glue" text strings. All adopt first's properties.
& ~6 W1 {! ^9 x \; B - ; Author:
; ?" T- p' Z! A* V# I - ; Henry C. Francis4 s0 h. y; E% r% h7 c ?4 `- s
- ; 425 N. Ashe St.: R+ j& O8 W; }: z9 B$ q/ V
- ; Southern Pines, NC 28387
0 I' d9 a5 P0 c! X- K - ; http://www.pinehurst.net/~pfrancis- _) s# T6 ~/ t4 j! G9 ?, H
- ; e-mail hfrancis@pinehurst.net
, I: ~" L- p# j" M( I - ; All rights reserved.
* Y I, ?2 G" O# E - (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)6 {# K% z, |/ s
- (while
# A. n( w [1 o - (not# e2 K7 N) Q; a: D) }! e+ U* _
- (and3 a5 i) b y2 W& b5 q
- (setq ename1 (car(entsel "\nSelect first text string to join: ")))& X& w3 k" k8 \$ X
- (setq ent1 (entget ename1))
# q9 s9 e" i0 v8 i - (eq(cdr(assoc 0 ent1))"TEXT") e9 Z, e% v# g( |. ]* ~1 }9 q- Y
- );and" u z6 O [( I
- );not) T& `. A1 ~0 m/ d, D1 o
- );while
' H+ i4 b4 z/ x5 Q! n; s - (setq old1 (cdr(assoc 1 ent1)))" f# j+ a! R( p4 Y$ c% a0 q9 S
- (while% [4 e, E8 q: H0 g- c3 |
- (not+ P- ]9 F, a9 S' v J1 W
- (and
3 J- C% e. h9 Q. V8 G5 j! S - (setq ename2 (car(entsel "\nSelect second text string to join: ")))
! P+ `/ V0 n1 s4 e - (setq ent2 (entget ename2))' @: U% e @. o( x, |. }. v
- (eq(cdr(assoc 0 ent2))"TEXT")8 _2 j- z# }3 b- Q' S' [5 p8 @
- (not(eq ename1 ename2))2 u6 Y9 X$ s* u
- );and
1 l0 m4 C& d u8 Q" Z0 p; g3 n - );not
. w+ `( O, R) Y H- B% L - );while
2 C5 x/ c( g* P. P( U0 D- y. h - (setq old2 (cdr(assoc 1 ent2)))* g0 P+ {4 v4 S2 a, @+ i
- (setq new1 (strcat old1 " " old2)
' W- e+ F9 J/ V* C) Q! v - ent10 P+ K* v6 m9 k! V: A/ I
- (subst (cons 1 new1)
+ C/ e8 w* p4 H3 q N - (assoc 1 ent1) h* T5 I* c: c. A1 V2 k% i) p
- ent1)
+ D4 | `' R7 M4 m, k - );setq
( M2 k7 f& _$ s - (entmod ent1)
& P5 O' f) h! ~3 T( q7 ` - (entdel ename2): y# h/ S; k" Z- O; u" Z
- (princ)
4 C0 X* ] f0 `4 s - );defun* [0 N, U0 R- d) n* F2 I7 G) ~
- X; B6 j( \ w1 a- ;=====================================================================4 X( u4 ?7 I$ \, m
- & ^' f0 F/ [# V# Y! ]* k# [/ w
- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc). [" t) w) s5 C2 `# [! u
; A" Z, L, U2 Z' J1 R- (defun nterr (s)0 `+ w6 y: D o' H' k6 g
- (command "_.UCS" "" "_.UNDO" "E")
$ ]/ c1 [- o) D" N - (setvar "cmdecho" 1)0 T/ [4 v2 u0 C2 B$ C
- (setvar "blipmode" 0)
5 E7 ?' m4 s0 Q1 d - (setq *error* olderr)
$ d# R, N4 \. F: C - (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil
2 R+ M6 W8 T( m8 E* ` - nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)) C3 H+ l" S5 q
- (princ)
# o$ |: L6 d$ E" F - )( }2 v+ ?2 F9 H- D# p$ w
- % P6 l8 Z+ P$ a+ R
- (defun tim_in (dt / p01 p02 ktra)8 ]$ R/ }1 B% T; m: R
- (setq p01 (cdr (assoc 10 (entget dt))))
# h7 W. ?* H9 B0 O - (setq p02 (cdr (assoc 11 (entget dt))))! \: F6 j' R6 J) r( H$ r) i' K) D# P
- (setq ktra T)
; p: c" O" D" h* u - (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
/ {7 i6 p4 j7 Z1 J - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))4 u# I& N7 n" a
- (setq ktra nil). m, P, g8 |- T* V+ B7 M
- )" ]% e+ V; Y" T' P- t! B" Z: ~
- (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
5 _4 f. T# x! | l - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
" A, z7 f4 q3 T5 F" Y5 i- b6 C - (setq ktra nil)
1 N% f8 @( j& g: |; O - )
0 M: h+ q: f+ h" @( J D2 q; [ - ktra
9 o( b$ j+ b) {; i! o5 j - )
, I! L2 ^% G; l2 J8 N
2 |* R% I* I+ k I$ K$ N- (defun timdt (dt1 dt2 / p01 p02)
8 d/ Z' }5 ] p6 O - (setq p01 (cdr (assoc 10 (entget dt2))))
/ g& f: t/ w7 [. E0 a - (setq p02 (cdr (assoc 11 (entget dt2))))
( W, f2 p* q) L+ X9 h3 G) K; R - (setvar "ucsicon" 0)
7 z, h4 V! i) B5 j- R: T* A - (command "_.UCS" "E" dt1)# e% n4 W6 R$ b2 y% E j
- (setq p01 (trans p01 0 1))
" ], p; a* l) j0 V' M7 @ - (setq p02 (trans p02 0 1))
3 B+ l g' |. S' i9 K" r - (command "_.UCS" "")
0 K4 l' O# N% p. H1 h& q" s, z' M - (setvar "ucsicon" 1)+ C* b* D4 z$ F y
- (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))
9 `5 s- _* j( T: y& r# g) L7 | - T7 ^7 `7 ~$ J1 K Q" q
- nil* v$ T1 B' H! J2 }' N }
- )
7 D. |4 l4 n! e3 j2 ] - )
: @3 H% Y1 M W
4 U+ D# g6 H B- (defun tim_out (dt / p01 p02 kt)
9 G7 |- O, b; K1 P - (setq p01 (cdr (assoc 10 (entget dt))))1 {9 c, e2 K* v
- (setq p02 (cdr (assoc 11 (entget dt))))1 F/ e' K" I" l% ?( {
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
& r0 z. j8 B0 Y1 c. w2 U" @2 O - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
' Z& V1 m6 V3 V0 M" J# b4 B - (setq kt p02)- p' E- V/ [' K, j# y9 F
- )# Z" ~( ^2 z9 {3 H
- (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
' ^$ `8 R8 i6 ~) S# `0 t2 C' z - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))" _4 v3 b% e: s0 T8 J% K
- (setq kt p01)
- e2 S% B! W( O5 Z/ a - )" T3 x/ H* P3 t5 o
- kt
/ H: f8 C9 @2 e- l - )$ y9 T1 [( v" _8 ^
- ' p. D% { d& |! L; ]
- (setvar "cmdecho" 0): H+ w* Y4 M1 |/ f3 S: }0 u, U
- (setq olderr *error* *error* nterr)8 ?5 [! Y% _3 P, l9 q6 O
- (command "_.UNDO" "G" "_.UCS" "")
. Q B9 {) m, ] - (while (null ss1), M& E& p6 p- c+ q: D n
- (princ "\nChon tuong muon noi...")
/ \; N: h. c; l! w! c - (initget 1)
% Q+ d( E- n2 j0 ~ - (setq g1 (getpoint "\n>Goc thu nhat:"))
% W" Z' h% X0 s- s/ \( L - (initget (+ 1 32))
0 D0 `9 z' n+ q7 j1 V! P. i - (setq g2 (getcorner g1 "\n>Goc thu hai:"))# ~4 a' s% C. _0 E
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))- z7 q: Y) F9 c2 i
- (if (null ss1) (princ "\nKhong tim thay doi tuong!"))$ y& h5 q p4 X" i
- )" r& r/ N/ H' M" O4 v: i( D, Y
- ' d( @& P$ w: `9 B
- (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2))). I5 b) ?- @ m) l
- g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))6 v! C# ?, U I* p9 \% r5 c
- g1 temp)/ @; R f# _% @5 R% o
- (setq ss1 (ssget "w" g1 g2))9 z$ D! L6 B' G& _& @! P' p1 X
- (if ss1 (command "_.ERASE" ss1 ""))$ u7 E4 [) s! H2 j* `/ X
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))( Q1 M4 Z0 B* [
- / c3 o- C& O# g+ z. m9 A
- (setvar "blipmode" 0)
& } W7 V8 D, q& V, Z* k - (setq i 0 l (sslength ss1))# B; P% j5 N" ]$ T3 s# k& V$ X I
- (while (< i l)- C+ F+ }: x$ f4 u6 F F. {7 P
- (if (tim_in (ssname ss1 i))
, U/ p+ z8 y7 w" _1 a4 V; Q# _8 R - (progn
; s, r [8 r) a, W8 E - (ssdel (ssname ss1 i) ss1)
" y) ?( [ X* ?) E2 a, l+ m - (setq i 0 l (1- l))+ f* J5 ^: s+ l7 r2 ^- i! }3 q
- )
/ D: T3 m5 ?5 _ - (setq i (1+ i))' E* t; E- A4 a4 _. b- `5 u
- )3 [+ W1 x# y$ Z* J! L& F% ?
- )5 W. n1 e" q% w+ d( j
- (setq l (sslength ss1)): k% i) d( z/ F
- (while (>= l 2)
8 [8 \- w- i& s2 E4 v" q - (setq e1 (ssname ss1 0)). q& y; e3 y( _0 }: C5 |
- (ssdel e1 ss1)
) o7 n! h: H# Q6 K3 T - (setq e2 nil i 0 l (sslength ss1))
% N' A" G3 G, U8 B: l7 A9 H9 h; [% l - (while (< i l) ; M6 ]2 D. w: d4 ]2 C
- (if (timdt e1 (ssname ss1 i))
' ?' U- E: _- P4 D* q& c- u3 v - (progn4 Y# y8 {& n1 k- i1 i
- (setq e2 (ssname ss1 i))' _! `6 u. p* U3 p
- (setq dd (tim_out e1))
6 o# i$ O! |1 a9 ~ - (setq dc (tim_out e2))3 a R5 e/ h5 C% G
- )
' f, }* z* J; g) O- u% I - )
/ t* k b5 g' G. R - (setq i (1+ i))
8 ~0 g: n( h k b0 ?# l - )( z# h5 k* Y0 }8 ]; I* p
- (if e2 (progn
. M5 s& [9 P: R - (ssdel e2 ss1) ) y S+ c+ r( {9 r" B; X
- (command "_.ERASE" e2 "")
3 b* J/ y O0 w& D/ f - (setq temp (entget e1)): t2 k" X. X, F) G! Z
- (setq old (assoc 10 temp))
\7 ], B. H+ G; v6 I - (setq new (cons 10 dd)); E V/ s; D* }
- (setq temp (subst new old temp))
* c$ R4 }8 B& ~ - (entmod temp)
" w6 ]- O' @) f& k K6 l6 Y0 J - (setq temp (entget e1))
! p* X" {- [2 \& X. ]# A, Z! c - (setq old (assoc 11 temp))
: m$ _1 \4 H8 D - (setq new (cons 11 dc))
) d9 M; ^7 x0 ~# ? - (setq temp (subst new old temp))+ n, [! P2 Y: @. p9 r. V& ?
- (entmod temp)) Y/ l$ O4 K. n2 m/ i) G) X
- (redraw e1)- Y8 X. ], t( {( t* \
- (setq l (sslength ss1))
b( M) B1 N7 V6 N& {9 B& a" _ - ). k8 U9 S1 Q/ p; H+ q+ f
- )9 l# P6 p1 S/ M5 m0 u% U4 N+ i6 c
- )
6 L: \% w' J$ B2 n/ a% B/ w
* \! ~/ [# g m2 e( \8 B- (command "_.UCS" "" "_.UNDO" "E")
4 R. w; E4 l# g0 A - (setvar "cmdecho" 1)3 `8 K- {! G6 e6 q( J8 J6 z
- (setvar "blipmode" 0)
2 J! @" v5 z) A$ l - (setq *error* olderr)
5 Q' Q1 {( H( S4 \ - (princ) K5 r7 b2 U& F/ V
- )
4 |9 ^& l# W. S; s/ n/ k$ J - ;*********************************************************************' z" [: r9 ~: Y
- (defun ketthuc ()
4 |% C6 c% w! ?% |% S8 C7 X8 w' b - (setvar "cmdecho" luuecho)2 C( v0 _- q f C( L
- (setq *error* luu
' v* T9 R' O0 y1 u) t( p8 u - luu nil 3 n* ]( N4 r( v: P) h3 I
- luuecho nil0 r# z/ P; b4 f. W- A1 P% Y
- );setq
7 K6 K5 \6 H3 b - (princ)
$ V$ ]; C& ]* [1 S* W/ Z - )
) S! U7 G( l1 @, }8 R - ;*********************************************************************
( i7 }4 R7 C P5 ] - (defun modau ()
1 {$ x: f! k, t4 U" q. ]5 D. F- n2 I - (setq luu *error
4 \# Z4 X) i! l( q+ ]# x# X - luuecho (getvar "cmdecho")
: M7 D- T2 ]" _, R# K- S! H - *error (ketthuc)6 b: b7 \' Z4 {# J3 Q" ?5 i7 a9 [
- )+ x4 p, o, b+ u0 {' R! N
- )
- K, z; T& Y% Y* ?8 a- a - ;********************************************************************* t: |: s* o& \! E9 E9 k' Q2 Z" u
- (defun xulytext (text / kytu ma sokt luusokt lui )2 p3 d1 o. }* v. \: @$ O' A
- (setq kytu (substr text (strlen text))
6 N7 t6 s) o2 Q* y: X7 r - ma (ascii kytu)
3 l3 [; ^' m1 [ - sokt (read kytu)
* n! v0 R3 K3 j: t - lui 1
, G$ P% L2 ~/ e% a( }2 G- [6 ~ - )
% b6 I$ ~# s/ J, u - (if (numberp sokt)7 K) D; ^' c" i! C
- (progn
6 E4 z8 t b3 d# u - (setq luusokt (1+ sokt))7 e6 T6 _; h8 ^0 C
- (if (and (numberp sokt) x# O9 O Q5 A7 U; A& V5 w) z
- (> (strlen text) 1)( ^+ h3 _2 i2 w
- )
5 _" t3 c5 r0 M: d6 g! J% f+ _: D/ v) L - (progn
5 S" ` L6 q( ^/ J# C - (setq kytu (substr text (1- (strlen text)))
. U4 E% X: ^" m9 @; x - sokt (read kytu)
B+ A4 E( V, A- _. y$ ?& B - )
, c$ \4 C% f6 z" X - (if (numberp sokt)
6 M' @4 f$ K/ e1 q. x2 J - (setq luusokt (1+ sokt)
/ ] Z0 T" J+ }" }6 U - lui 2
7 d( o; z* y5 u4 ?& U - . w% ]( [& O6 K Q
- )
0 O4 E) s; m4 R, T9 |3 { - )8 ~, A' K% M1 @
- );progn
6 \: ]5 s( N4 v- W7 H! a- F( s - )+ K- h1 ^( P" W! V# g; S
- (if (= luusokt 100) (setq luusokt 0))
; E' t6 s( y1 l7 v0 c - (setq kytu (rtos luusokt 2 0)
0 S- d( F0 e& A. W6 o( n ? -
, y, e l1 R5 Y+ v - text (strcat (substr text 1 (- (strlen text) lui)) kytu)" W0 n0 a \. s7 [$ q
- )
% u5 s1 n# |. ~! M' P4 \- p - );progn
0 ?9 w9 M" ]2 a9 C - (if (or (= kytu "z")
5 U4 z& J9 e- R; x" ]# k - (= kytu "Z")
4 ~' {) g* w, b B - )2 E& X0 A( c8 G) P$ D5 Y4 A7 ?/ F1 R
- (setq text (strcat text "0")
2 E& B# v4 t! I. k - textxl "0"
: Z) {1 K" C K) A; x: X/ d( u5 x - )
# S' B; [; D) H+ V8 P, l - (setq ma (1+ ma)
$ B: h7 [9 ~0 F. Q - text (strcat (substr text 1 (1- (strlen text))) (chr ma))1 O4 t+ z6 P, q, F1 j
- )' T( D# T, r2 _/ Z* ~
- );if
+ D8 D0 I- |$ K1 @' W$ Q/ U. K - );if
! X4 g2 f5 M- M$ L* Q - )
J4 T3 T! j/ ^+ ^# S5 C - ;*********************************************************************
( v* |6 l* [5 W: u; V - (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)
3 o& ~3 I! o+ }5 z! |8 O1 G+ Y - ;Neu doi tuong la text thi tiep tuc
" d6 h: X" p0 Y( `+ `/ P* i - (setq doituong (entget tendoituong)
+ ^# O, S# r1 _ - kieu (cdr (assoc 0 doituong))0 U' {2 ]! m7 o) k6 C v
- canle (cdr (assoc 72 doituong))
2 X/ ? }. W+ e; D - ) % t, s# f, n% z7 l6 W2 X' }
- (if (or (= kieu "TEXT")
6 U: c [, t3 S+ M0 c. _( l - (= kieu "MTEXT")
0 d6 a+ F' Z, N; I; Q2 u# d/ F2 { - ) ! }& }7 d/ {+ f
- (progn$ @8 ]4 W* f, r0 g
- (setq textxl (xulytext textxl)7 f& x) L; x( Q$ r
- text (cons 1 textxl)& i: ~$ l' E; N5 |: W
- vitri10 (cdr (assoc 10 doituong))
( l7 g+ G7 H. K) v, c) h - vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))
" `9 l6 b) x8 e; T0 F - vitri10 (cons 10 vitri10)
+ p) N& c, W3 f7 _- Q4 l - vitri11 (cdr (assoc 11 doituong))$ n+ G' [$ h. D' m2 F
- vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))
( f& E ~& d; a/ n5 a6 y9 [; N - vitri11 (cons 11 vitri11)4 w/ J k, w- Z- C' b: X/ \
- dem 0
; S0 w2 Q2 D4 o) m( P - dsach nil& s0 w, Z! q! x, R1 m# ^
- )
2 @& M E5 d8 o7 |- z. F0 G - (foreach tam doituong% f. D# O: e! e4 ~
- (cond
4 x. ^$ x4 x& `" f% m - ((= (car tam) 1) (setq dsach (append dsach (list text))))% a: T( f7 ?4 i2 C$ ?# ?. z+ O
- ((= (car tam) 10) (setq dsach (append dsach (list vitri10))))- a# w3 } ^' k4 b3 @* B
- ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))5 {8 R9 [0 n/ b
- ((setq dsach (append dsach (list tam))))# e+ Y$ Y" W* s& }
- )
. I q, e1 U! B" V* R# P% c - )
/ @ c l* v8 w) d - (entmake dsach)0 n8 A5 V1 M. i; x$ t$ G/ _. q
- );progn
( g& D- }- R+ O/ V" Z7 [ - );if: x+ s/ {6 z. j' D
- );9 l" S: U( Z0 v$ P Y5 `
- ;*********************************************************************
/ l: q( ^$ J& O, V+ d - ;sao doi tuong cu sang vi tri moi
1 }# H8 w1 [) l S - " A, b, f* V4 J* d, f
- (defun copy_dt (tendoituong )
, A! L* i6 q* E# L - (command "copy" tendoituong "" goc toi )2 p( C. L4 T. E3 B- N( b
- );defun6 T) K& e {& v7 o- G& E6 n
- # ?( A1 m( e+ w# D! T1 f# D8 O
- ;*********************************************************************
) E; ?7 T: ?4 L' a$ v5 Z
1 |( G/ c+ A* @5 t. \, z0 m& l5 V8 ?- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
9 h4 y0 `9 |' `/ Z - ; Khoi dau cua chuong trinh
e( C' e: E- {" s% B4 n - (princ "\nCopy Inteligent...\n")
: q7 h1 P2 q7 l- _. n# x - (setq luuecho (getvar "cmdecho")
k; q i7 E4 f - luu *error*& f; Y1 ^4 [' ~0 ~! ?
- *error* ketthuc _8 m) B J6 e% K0 g: g. }# z
- cumdt (ssget)
4 Z7 H5 b, J( h7 k# B! J - dodai (sslength cumdt)
4 \ ?1 R0 d Z; r/ ? - goc (getpoint "\nSelect base point:")6 m" ^. o9 u# }( M
- thoat nil
. Z; M& `& y; F - dem 07 a% m1 n+ c* h9 A( z r4 e2 F
- textxl nil
% z4 y: t& A* W" }# Z) @ - );2 e' m, l7 ]2 o! A- h
- (setvar "cmdecho" 0)
' V% N! Y+ x1 M: [) U - ; Loc ra duoc ong text de xu ly' W2 [' O5 q7 R2 _+ X3 r" T; I. t0 c
- (while (and (= thoat nil). v0 w' w/ K0 ^. V. v
- (< dem dodai)
7 k3 m# P C% N2 ?. X! O - )& ]; r, ]- V- S/ F
- (setq ten (ssname cumdt dem)
( k9 j4 {4 |! \/ T - dem (1+ dem); t' K3 w7 b2 F$ o# N/ i- [
- doituong (entget ten)
9 u9 b4 X' I/ n( S, M! @8 v1 O5 i - kieu (cdr (assoc 0 doituong)) : t) d M, f, _! u" C
- )
" o$ d3 w" e& ~4 [9 u& w/ V -
6 y# e7 r8 I# Z9 m# z" l - (if (or (= kieu "TEXT")
! o2 j( O0 c2 Q - (= kieu "MTEXT")
, T) l/ R/ h3 V- ]# t - )
& O& o6 W' n/ S# D* i: K/ } - (setq thoat T, d& o9 y1 E v- C
- textxl (cdr (assoc 1 doituong)) 5 [1 E, F8 f3 g# e, W5 E
- )
( F+ J. V- r- w5 I" h# x9 n3 D - )
2 a3 @" o, J( n, L& N! l - );. ?, q/ U% p. a( g
- (while T 0 w& U) y: o! c( o5 N
- (setq toi (getpoint "\nSelect next point: " goc)( c- X% ~- f9 [3 U% R; z
- vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))* O2 `. H8 m* ?: D* u! e0 i
- dem 0; N1 H1 w5 P' r/ X" f0 L& L
- )" A0 p7 r2 x* e9 w2 Y6 _3 a w
- (while (< dem dodai)
! B0 W( d& z+ T9 ?, V7 D# a - (setq ten (ssname cumdt dem)
# U% k _5 t1 E$ Q% ]" k; M - dem (1+ dem)
5 J. ] O# f! Z. ?- t. l, j - doituong (entget ten). u- Q; e# k; b, U, `% h
- kieu (cdr (assoc 0 doituong))
# `' J' R f2 ]- ?2 X - )
! p) [0 A. K, @, a% C& X! O6 x) O - 5 y5 v% ^. E: K0 s7 u0 }
- (if (or (= kieu "TEXT")
& J6 T) S! E2 T1 l, _+ _* b: u - (= kieu "MTEXT")
" A% G6 g" N+ {; s - )
# N- S) D4 T9 ?2 z9 A& i - (doitext ten)# Z6 I9 g' Z- C4 D- ]
- (copy_dt ten)$ ~+ P; y& ]: i2 W* H* F
4 v: m- a- I" D+ [. E& O- );if
3 z4 @' \( O& }+ v* C# c - )
/ I" r7 m/ \- D* y0 u7 d - );while
; q3 H" E7 ^5 w1 g$ [% q7 q- _ - (ketthuc)
, F) f9 p5 L5 |8 A' G0 m! W - );defun
1 M1 U4 ~6 i" R - (princ "Type \"DG\" to start")- H/ Y# x- a& Q* W" y L
- ;Note: bien toan cuc: textxl vitrilech
1 R9 r1 z3 \: _# Y1 q - ; [! O% g) c: b4 k
- ;=====================================================================7 H8 c; f. ~& c" H- T
- ;;; PLJOINFUZZ.LSP
' z( T$ G+ M; P2 E) [* f. h' Z - ;;; Joins lines, arcs and polylines using a fuzz distance. l3 Y( G* H/ n. h3 d9 j
- ;;; If only one object is selected it tries to join to all objects that are possible
% u& @, E% D! l8 T- v- ^ - ;;; By Jimmy Bergmark
0 y. ^4 ?4 }; E! F9 { ` - ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved
7 D- l _( A2 N8 s- z) l" F# ^ - ;;; Website: www.jtbworld.com& r+ b2 k9 k q/ r
- ;;; E-mail: info@jtbworld.com* ~4 g0 W. [ G. _: d
- ;;; Tested on AutoCAD 2002,2004 and 2005
! o4 q4 {6 X; B1 m0 N - ;;; Latest revision made 2004-11-112 }8 d2 X# y& f; M
- ;;; Minor code cosmetic change made 2004-11-13
J2 V* n W: f2 b" l2 E& w+ l - ;;; Bug corrected 2004-12-23
1 l" F m0 F- x8 G
* n; |$ b8 g5 A: I* k. a* s- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf( g; T6 j( |3 l# E! X$ s/ s
- (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)# ?! B" \! K+ _3 P
- (setq oldcmdecho (getvar "cmdecho"))
% z2 v: u. N* J7 H - (setq oldpeditaccept (getvar "PEDITACCEPT"))3 ~# k2 e* q5 {5 c6 F% b
- (setvar "cmdecho" 0)' G6 ^; }6 z& P1 S
- (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16")), j/ A- p) Y1 D8 I" P: I' Q. t& n
- (if A2k4 (setvar "PEDITACCEPT" 0))
2 h& ~( G8 v ?4 | - (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))
/ J; c8 _/ m5 b0 _$ k - (princ "\nSelect object to join: ")- }0 w+ a( f( m# h0 @% p) y( c
- (setq ss1 (ssget okObjects))
% p) C. W0 e8 F5 Z- S8 Z) { - (setq fuzz (getdist "\nFuzz distance <0>: "))
! q& o6 f2 C& W W" m) h/ S6 J - (if (= fuzz nil) (setq fuzz 0))" V0 f$ ^ |4 v7 D; e
- (if (/= ss1 nil)* z' ~6 d" r+ W
- (progn
% O8 b" t+ Y- u8 ~1 ?6 V - (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0)))))) ^' r& }; ?" m, ^
- (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects)))
7 {0 M) B) x X) n* V$ R" _ - (if (member objType '("LINE" "ARC"))
1 @$ ~( X0 H M* Y$ {- |% b! Q - (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")
1 f" u4 I' P2 G/ s. u, R$ i - (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")
2 S, a9 B& o9 ?. z: [ - )/ S; G, l3 H" M) I6 X- o+ i- s
- )% J* `$ j$ n) G- C) B
- )/ g$ Q& d0 D) ?5 b& K# v
- (setvar "cmdecho" oldcmdecho)2 N9 o2 A0 L9 q% d8 G) U
- (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))
5 y% K5 m) s7 l' y - (princ)
, h& F6 Y5 ^5 o - )
7 o/ M# R# j8 v' W6 {3 [" M - ' s# s. G. p$ I3 _: W$ U$ g& \1 ]
- ;===========================VE CAO TRINH===========================
- n; c8 ]' H4 x/ K1 j" f& k; F
+ _3 P f2 p: H- E7 d6 N- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL2 G: ~, V: Q) P! V- |9 _" z
- CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)/ t: k5 y( k3 }2 u' s& C7 Z8 M
- (SETQ OLDERR *error*. i5 X% h' h0 ?1 B0 l g
- *error* loisb)# B s( y4 x/ {) o
- (command "layer" "m" "dim" "c" "" """")
$ X: c( D n4 Q A! i - (SETQ CMD (GETVAR "CMDECHO"))
' b. N; F8 T; j, K& h. \ - (SETQ NBC (GETVAR "CLAYER"))
I+ G* h; a3 H" m5 K& O - (SETQ OSM (GETVAR "OSMODE"))2 I6 L/ b1 x) r( f; @2 D
- (SETVAR "CMDECHO" 0)
; F6 p$ s/ x8 _7 T' k, L - (SETQ PT1 (GETPOINT "\nDiem cao trinh:"))& N, i) h6 S, L* a. L5 V6 T. |: M
- (SETQ TX (GETSTRING "\nCao trinh:"))
4 N' d) G( S0 ^: {- O- _ - (SETQ FCH (SUBSTR TX 1 1))0 W* j3 h& [5 m6 H- C8 F; S7 B8 D
- (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))
3 V' z5 x" h7 R$ B& S - (SETQ CRST (GETVAR "TEXTSTYLE"))
/ e! J7 y% H5 W2 f7 F0 H - (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))9 j" s5 e, G t- Y; E) g" N: ^
- (SETQ TSIZE (GETVAR "TEXTSIZE"))
+ _9 ~( D# F% }3 ]2 n" b0 S - (SETQ STR (RTOS TSIZE 2))
# F! u7 X1 X5 k! U1 d, z1 z1 {% { - (SETQ PRMT (STRCAT "\nText height <" STR ">:"))/ L2 u0 d6 K) V4 D' D$ b
- (IF (= RSIZE 0)4 Z5 z; f! Q* k$ J8 a
- (PROGN
$ Y" g! M2 a P( x - (INITGET 4)% {$ K: O* Q0 y5 J4 Z
- (SETQ TSIZE (GETREAL PRMT))
3 k' u9 a( Q" t7 u3 h4 e - (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))) I$ i3 T7 V; I, [
- (SETVAR "TEXTSIZE" TSIZE))
3 y9 L) u8 E# k4 n+ D" z - )
3 U: J" m: y1 z( ]1 x' ~2 i1 c - )
: C% o8 v" P/ D1 \, w( Z2 } B7 Q - (PRINC)
4 A4 I& \6 i$ ~7 O) t% x) q) j - (SETQ TL (/ (GETVAR "TEXTSIZE") 2))# s' r& I. U d; E" F
- (SETVAR "OSMODE" 0)
- C# }$ c( m) @ - (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))1 y) n5 v# g( G' R9 r/ {
- (SETQ NPI (/ PI 2))0 ^3 y0 C- T* z/ G% g4 J! ?/ q* Q2 \
- (SETQ PT4 (POLAR PT1 NPI (* 1 TL)))
( k5 } L2 P& W! J& n# p( x - (SETQ PT2 (POLAR PT4 PI (* 2 TL))) D$ t( L# Z$ G
- (SETQ PT3 (POLAR PT4 0 (* 2 TL)))
9 n" N; r& }3 Q# u1 p9 p3 s - (SETQ PT5 (POLAR PT4 NPI (* 5 TL)))
+ Q6 e) J) d9 e3 i - (SETQ PT6 (POLAR PT2 NPI TL))
: h8 m5 q; D+ b) a1 }6 j" s - (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))* k8 s" c& j0 U# Q$ S- a& ^
- (SETQ PT8 (POLAR PT6 NPI (* 1 TL)))
( W7 o+ u/ o' L7 [1 q! \ - (SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))" H8 A+ P! f! j j
- (SETQ PT9 (POLAR PT1 pi (* 2 TL)))
; ?5 H; c+ C% C- ~ - (SETQ PT10 (POLAR PT1 0 (* 2 TL)))9 A3 Z8 }4 s7 e9 v
- (COMMAND "COLOR" "7" ""); m. k0 v8 {; O& }+ z$ O( z
- (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" "")1 q0 h- L1 O' o9 {5 e
- (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX))/ M+ g6 @* A' ^+ F C4 v! M
- (COMMAND "COLOR" "BYLAYER" "")
9 `- [ d4 s/ J5 V- ~- n y - (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")
! n) T+ }3 u5 n& f2 ]- |; w+ _8 X% Z - (COMMAND "COLOR" "BYLAYER" "")
3 F% h% J1 |7 } - (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")
# Y8 r# A/ n" Z9 `8 L9 {& Q - (SETVAR "CLAYER" "0")
1 S7 q V! y* v U/ A8 X - (command "ddedit" pause)" Z7 q; `2 a: { W, H; f
- (COMMAND "COLOR" "BYLAYER" "")
3 @( @/ @. w# R7 J0 |+ j& l - (SETVAR "CMDECHO" CMD)
9 d! a% V) V4 w& ?# \' Y - (SETVAR "CLAYER" NBC)2 R6 I8 V( R* `! B) D3 m5 D' D
- (SETVAR "OSMODE" OSM)( Z" M s; s4 u Q# |- q
- (PRINC)) k: R# ^. ?4 u# M: R1 `2 F
- )2 a2 R" a; O' _, \& U! R% X4 y
3 @ F5 ]6 U5 T" J- ;;; =========================== VE NET CAT CHEO (GC) =============================
/ _, A r& O! ~" g) b! H -
5 d9 a1 N: `' S6 l; s - (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang)8 x8 ^/ i. M7 g v- y5 B
- (setq x (getvar "osmode")): [: I( I. C# J" x3 D' A) d# j
- (setq p1 (getpoint "First point : ")& H5 i9 ^; ^. Y% C
- p2 (getpoint p1 "Second point : "))7 X9 N% E% s6 Q: x. s; V/ j
- (setq l (distance p1 p2))
) o8 y3 b8 P; a - (setq p11 (polar p1 (angle p2 p1) (/ l 5))
' m. ?" B7 u6 V; G9 u9 R - p12 (polar p2 (angle p1 p2) (/ l 5))). s0 F" r* O3 W9 \3 E2 [& T$ @ R
- (setq ang (angle p1 p2))) e% _ q1 t2 r- I+ ?0 o' g4 o- s6 z
- (setq p3 (polar p1 ang (/ l 2.5))
! S* S! `, L4 j! D3 J - p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))
2 d7 R* K& M+ _1 S/ Y - p5 (polar p3 ang (/ l 5)); \6 b0 M" g& I* `
- p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))# h7 M& N0 @* i; H% l1 r. E2 U
- (setvar "osmode" 0)+ Y5 E6 S/ N& V4 k3 s1 d
- (command "pline" p11 p3 p4 p6 p5 p12 "")4 k# ^7 O3 ?2 k4 }% U# V8 o
- (setvar "osmode" x)2 S' | F: r$ J. R. G z1 W+ G
- )1 K5 @5 y: i. w; j; ^
- ;----------------------------------------------------------------------------------
* H& o* i- D" _8 d - (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6( x6 }( q `4 {
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
$ N8 x+ u* ~7 k" ~: {" Q - (setq ps1 (getpoint "\Chon diem thu nhat: "))
k6 c# {2 G: F% C( ^- U7 ` - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
, k7 a4 _+ K; Q - (setq sb 50.0 sh 200.0 se 20.0) \! U, O( e4 P" w7 K( p
- (setq ang (angle ps1 ps2))
% D6 k7 R1 W. k - (setq pf1 (polar ps1 ang (- 0.0 se)))
6 }, C( J w' M4 ?! b! l - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))! o X/ O' z$ m a
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))0 H$ V$ [, D! B) j0 B* u3 t
- (setq pf5 (polar pf2 ang sb))# {7 g$ W( }2 y
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
, u. Z) }' j. H3 p8 N5 N7 | - (setq pf6 (polar ps2 ang se))
& T2 G( Z8 G# J* n8 V - (setvar "OSMODE" 0)
, h) e8 z( g% k" f! p - (setvar "BLIPMODE" 0)
" c7 {& R7 \ ?! s- ^ - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
6 C5 y; W9 H* ^) u6 t' V - (setvar "OSMODE" 703)! I6 l% {0 ?7 o8 `# \* U* C
- (princ) )
; T+ \3 p4 ]& X+ u2 H$ e - ;----------------------------------------------------------------------------------0 j D- _* Z7 k5 T8 P$ k
- (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf66 d& g; v% z2 S. n; d
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
4 n* _8 |) Z) d' u/ X6 _7 L- s0 \ - (setq ps1 (getpoint "\Chon diem thu nhat: "))
2 A8 G/ J. h# i2 q - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: ")), Y1 u* v8 |' B; T3 L/ u8 \
- (setq sb 100.0 sh 150.0 se 20.0), ~2 i1 M. P$ o
- (setq ang (angle ps1 ps2)) v6 m. z; N3 U% U1 M2 l0 S
- (setq pf1 (polar ps1 ang (- 0.0 se))): X4 }" G( Y2 d6 }$ E' A4 g
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
; L; Q1 H; S3 T. L. a - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))3 U+ A& a; z6 ?+ v
- (setq pf5 (polar pf2 ang sb))
$ j6 r/ ]" b7 b$ ? - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))& Z( u4 q7 S, n2 \/ D7 s
- (setq pf6 (polar ps2 ang se))
8 ~, i$ E- g, o, X - (setvar "OSMODE" 0)
* ^5 j8 C% n! w0 ~5 l - (setvar "BLIPMODE" 0)7 S3 b% F. N, _% k; J$ f
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
) d8 S' ~" N3 k( k - (setvar "OSMODE" 703)% i7 Y. ?. _; l2 b7 l) d0 g
- (princ) )
& \1 b6 O$ M! h4 ]( { - ;----------------------------------------------------------------------------------4 Y: q: L' C* h4 s1 n" i
- (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6" Q+ M3 V2 B9 M$ r) G" s1 N0 l
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))) |0 w. ^- p! i- b2 L/ E6 e
- (setq ps1 (getpoint "\Chon diem thu nhat: "))! n2 R. R" K5 N/ f: b
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: ")). c3 R. M6 E4 \ n
- (setq sb 100.0 sh 250.0 se 20.0): m2 {# v7 ]4 v4 l( [' h8 K9 D
- (setq ang (angle ps1 ps2))
/ U) j) E# J/ |$ |/ s' e R, B b - (setq pf1 (polar ps1 ang (- 0.0 se)))
# R+ E, \% ]$ K& C" ? - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))3 [* A4 m' l0 q
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
: h/ h9 p2 ?& j0 S% S& h0 O - (setq pf5 (polar pf2 ang sb))/ i; ?4 a' z$ P, f. u& ^
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
& B8 K1 P, [# w& j, L - (setq pf6 (polar ps2 ang se))
9 R& D' ~ Q% ^ J' i - (setvar "OSMODE" 0)! {: R) w1 j5 h7 h) U2 }+ B2 q
- (setvar "BLIPMODE" 0)9 E9 B" ?9 e" G/ y* T" R F
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
5 s0 O$ o6 g4 D - (setvar "OSMODE" 703)4 d6 S$ ?9 C) z
- (princ) )
! _* m% ?8 o1 O; X- r, P; d) V5 Y+ O2 O
0 _' u3 j, I9 R0 a- ;==================================================================================
% ?% | |8 w z/ X - (defun c:ang (/ ent pt1 pt2 ang)3 \* m9 ^ G) j2 t7 D0 F
- (setq cmd (getvar "cmdecho"))
1 H7 `8 ~6 s$ z% C* E. K - (setvar "cmdecho" 1)
! W! ]8 B7 C8 n" V* K0 d* j - (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))
3 f/ k+ l6 ]% q( { - (setq ent (entsel "\nChon duong thang:"))% E# u I/ r' x) f
- (if ent / j& A6 ]* b7 a( D' W) f
- (progn
2 D8 l+ x! A' F( r+ A9 o- I- { - (setq ent (entget (car ent)))4 R- m3 h s4 y. y
- (setq pt1 (cdr (assoc 10 ent)))' m- s7 w, I3 k. ~. ^% o( x: l$ t6 r
- (setq pt2 (cdr (assoc 11 ent)))
! ? W- U, ~ G8 w# o$ H4 p. \ - (setq ang (angle pt1 pt2))' g2 s* K* h; t2 ~$ s! y+ F
- (setq ang (/ (* ang 180.0) pi)); J! Q5 a" R6 e& G7 W) c
- (setvar "cmdecho" 0)
0 @ r& V) d: h8 {* L$ H- a - (command "setvar" "snapang" ang)
6 N% d7 }9 i8 e2 ?; ] - (princ "\nGoc cua truc toa do moi : "): L6 I _% D) ^2 [1 D$ j
- (princ ang)1 V: r# g% I$ f% o; U; ?
- )
0 Z X4 W/ C, ]; P - )* h) o" g8 v) ^! b0 b! m
- (setvar "cmdecho" cmd)9 a' o. D5 r2 N. z
- (princ)
) x! _ ^9 U! R G7 y) I# ? - )9 P G. J2 k; V9 H
- ;==================================================================================
. w: y1 R$ { d ^ - ;============================== KY HIEU DOI XUNG ==============================
- ~& E1 ^4 {! [$ E) Z - ;==================================================================================
6 e" H+ b. v% t1 c
% N' y: [5 g5 d* B( A- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT98 D* }) m8 n. \, X
- SZ G45 G135 G90 G180 SS loi), Z& N; ? v) }; e- i& ]- h3 z
- (defun loi (s)
1 h8 A! e* V# e$ u U - (if (= s "Function cancelled")
" A! @ \8 h7 l7 u3 R' r - (princ)
5 M" K$ X6 C% h& t( F) [; x - (princ (strcat "Error:" s))1 j1 V5 U1 I/ g1 {! s) G
- )2 N% u" y4 h7 J: d; ~2 L
- (SETVAR "CMDECHO" CMD), `0 i$ s ^+ _" w
- (SETVAR "OSMODE" OSM)" c& b+ A. n) y& C* F7 @! u- H
- (SETQ *error* OLDERR)
, ]& P7 l+ _6 W! ^3 h, V; O+ R - (PRINC)
( z, h$ m# t0 v2 e. ~+ P - )2 S) d4 N( K$ b2 T; K! d
- (SETQ CMD (GETVAR "CMDECHO"))
# J) S5 H; r; K' P' t - (SETQ OSM (GETVAR "OSMODE"))
/ P+ ]# m* k8 n0 z0 D6 z4 P - (SETVAR "CMDECHO" 0)" {# U( y9 F) D: K5 d
- (SETQ OLDERR *error*4 Y1 F7 W/ U* m$ l# w5 L2 \
- *error* loi)( H% y( u+ @8 h1 y1 Y
- (SETQ SZ (GETREAL "Size <1>:"))0 S; Z2 X+ l/ _* {3 A( Y1 ^( r+ e
- (IF (= SZ nil) (SETQ SZ 100))2 p3 O) D+ K( ?/ F* ?. A
- (SETQ G45 (/ PI 4))
) G) W4 A1 o8 I5 w3 R - (SETQ G135 (* 3 (/ PI 4)))' R* o) C2 ]) l1 R3 f1 P/ B
- (SETQ G90 (- G45 (/ PI 2)))
) Y* k8 A7 d$ e1 ]% M! @1 ?9 C - (SETQ G180 (+ G135 (/ PI 2)))
5 i5 u. u5 ^. z0 ~: g. R& f - (SETQ PT1 (GETPOINT "\nDiem doi xung:"))5 o, S1 F, {7 Y# ~
- (SETVAR "OSMODE" 0)
: P& U! ?, ^5 T$ J. P" }; V# [% b+ Y1 F - (SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))
6 O9 k/ n5 Q$ f - (SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))
% M" Q7 _- k. u: ~, [* Y, D3 D - (SETQ PT4 (POLAR PT1 G45 (* 1 SZ))), N8 T, ]7 J3 o; |
- (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))
& a( b7 ~4 u' M, u" Q7 h D% D - (SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))
4 W5 [, K7 |9 u8 ] - (SETQ PT7 (POLAR PT1 G135 (* 1 SZ)))
, I7 R, }8 [7 B) n2 B - (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))5 D6 ~' N4 G3 E+ ~
- (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))9 h9 Y: v) T4 [3 A
- (PRINC "\nGoc quay:")
; X0 a( ]. r5 b5 h" _7 T - (SETQ SS (SSADD))
. V' ^0 g" n2 u - (command "layer" "m" "Dim" "c" "" """")
. Q" n3 _( U# b; M - (COMMAND "COLOR" "1" "")
1 ]- L( F$ o6 O' e* \5 ^ - (COMMAND "LINE" PT8 PT2 "")
1 k3 b. w: x. b& G0 ?5 A - (SETQ SS (SSADD (ENTLAST) SS)); a7 ^( M5 ]5 I# ~+ k! O
- (COMMAND "LINE" PT9 PT5 "")
3 o" N/ F: E O5 O7 o& i - (SETQ SS (SSADD (ENTLAST) SS))( b! L( k7 G3 d' T+ w S% {
- (COMMAND "COLOR" "1" "")9 T9 i& V1 o2 g- b* L
- (COMMAND "SOLID" PT2 PT3 PT4 "" "")
/ ~1 h: A7 a$ O* u - (SETQ SS (SSADD (ENTLAST) SS))
# |5 D4 {/ a0 g; f; N' V9 b$ ^ - (COMMAND "SOLID" PT5 PT6 PT7 "" "")
B" \) u8 \" a2 b% R( c1 s6 a5 z - (SETQ SS (SSADD (ENTLAST) SS)). O7 j1 t6 f( ]" V% D
- (COMMAND "ROTATE" SS "" PT1 PAUSE)5 O% i3 |- L: R9 A
- (COMMAND "COLOR" "BYLAYER" "")+ t2 K/ x2 c" y7 O% }) ]. ]9 v
- (SETVAR "CMDECHO" CMD)2 z9 O; m+ E7 n/ T
- (SETVAR "OSMODE" OSM); z' p6 e4 l+ s4 c H2 a3 A+ ^5 c
- (SETQ *error* OLDERR)
& F+ r. q. d8 u3 t2 [2 P* P - (PRINC)
6 ^8 @7 f8 l0 o% l' _2 F, u - )
9 g6 N, J; B! b; W0 ], k" n8 b* O! v" d - $ I' u6 J: b- E7 q3 P# m4 M
- ;==================================================================================* {( w' ]) Y/ b
- ;================================= KY HIEU TRUC ===============================1 S# r( a. U( K6 i4 t6 n: g
- ;==================================================================================
0 m. I; ~+ x3 N9 k7 r; r - 1 j. F# k$ |# I+ P& ^
- (defun C:vetruc ()4 J- M; w& k2 ^, C# {, x, c, t
- (setq bk (getvar "USERR3"))& Z# D$ I0 L( A5 O. s1 ]
- (if (= bk 0)0 |+ h$ j# Z! d9 x+ P3 k+ e
- (progn
- I7 \0 J6 S5 ] - (setq cont "1")
5 |' P' M3 T) ?1 }6 |. @. f - (setvar "USERR3" 1)7 ~. ~3 X+ r+ D+ [* v
- )! }) M' A- n( L* Z* D; x
- (setq cont (rtos bk))
% v( @% ]. W9 Z( W. C - )6 t- ^ P0 z) h/ d) L+ K \
- (setq pt1 (getpoint "\n Nhap diem dat:"))
* H; a+ ^( a- W - (command "layer" "m" "Dim" "c" "" """")
1 n" _4 Q0 G3 T; Q3 p& b. B - (command "osnap" "")% z% `& X+ |& g ^6 ]4 c: _
- (COMMAND "COLOR" "7" "")
' p& n. v0 S* Z: Y# c2 a0 o( X+ P9 _ - (command "circle" pt1 150 "")
5 B9 [6 J L0 r - (setq pt2 (polar pt1 0 150))1 S* R0 r$ ^( D6 j9 \) O5 L
- (setq pt3 (polar pt1 (/ pi 1) 150))
7 S. P3 _% J- e/ L8 o - (setq pt4 (polar pt1 0 300))
( G! M9 J$ l n9 l" U- C) q6 L! s3 W - (setq pt5 (polar pt1 (/ pi 1) 300))
3 j4 a w# O, h$ e/ J8 q9 S - (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150)). R4 ?* t( r, x. q7 d
- (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))7 x) a( w/ N& X r2 P
- (setq pt8 (polar pt1 (/ pi 2) 150))
( o$ Y( ]% V4 o! b; _6 `0 t {5 W: Y6 } - (setq pt9 (polar pt1 (/ pi 2) 300))
/ w+ H, R) j/ Z" ~% f9 R9 l2 v - (setq pt10 (polar pt1 0 150))0 r) i1 D4 m3 o) d
- (setq pt11 (polar pt1 (/ pi 4) 150))# ~) x7 n0 F6 \1 y( z9 j
- (COMMAND "COLOR" "BYLAYER" "")
2 u8 Q" I; a: E5 \# j - (command "line" pt2 pt4 "")& Q2 y: ?5 b4 q
- (command "line" pt6 pt7 "")
' Q5 A4 Z+ K0 @% f8 J G - (command "line" pt3 pt5 "")
6 U) [* r* t, p- Z0 d$ c; Z - (command "line" pt8 pt9 "")
2 I: Y& Z; ]9 \ - (setq dk (strcat "\n Size:<"cont">"))
( y3 A9 C* h+ }0 B: k S9 m - (setq bk (getreal dk))4 f' K- Q" E: J# E
- (if (= bk nil)
: k' C" {; Z ~* G, l' h! O5 X" c - (progn: x, I* j! E! f |- A
- (setq bk (getvar "USERR3"))
; W( a! m* `- h2 h - )
! i% O# x- i) A - (setvar "USERR3" bk)/ [. j+ c: I( F0 D3 z! y( k6 F
- )
" ^ P" j; O( N; X' @( V s" l - (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")4 t. L. }2 b' H
- (COMMAND "COLOR" "7" "")
" p% g/ \# G& f6 J - (COMMAND "STYLE" "Truc" "impact" "" "" "" "" "")! G- m# i% s$ W( c
- (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "") 2 G2 F0 ^( A' `' L+ m6 J& {
- (COMMAND "COLOR" "BYLAYER" "")* W4 K2 o# I5 G. [! R( c
- )
0 l# r0 d, I. v$ i+ _! C i* Z% R! C - 3 B% M5 r! h4 U7 |" V0 x+ C i
- ;=====================================================================
5 |. x* f. _: R - ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)
2 ]* e! _' h8 K6 _# A$ h4 p - ;4 ~$ A$ t( u* k k
- ;Jeffery P Sanders. G% u" H. g5 f% P6 U
- ;% t2 }6 I+ w& |9 Y4 S& r, e
- (defun C:CA(/ en enlist tx newtx cnt tp asc note), U7 q/ @$ Q" A& `
- (setvar "cmdecho" 0)
+ |/ {( M# I8 u3 k9 U, v - (if(setq en(entsel))
% o% w8 [8 P. h - (progn
- B/ {* g& K: L7 w - (setq enlist(entget(car en)))
& s* S1 D& `6 \; D+ F' S1 ~& E - (if(= "TEXT"(cdr(assoc 0 enlist)))4 w, c/ d, H$ E! h% R3 Q- O) i
- (progn6 r' X/ \" ~) |' R. d4 b
- (setq tx(cdr(assoc 1 enlist))% M# w0 J @$ U( L6 {2 m# Z
- newtx "" cnt(strlen tx)
! `; y$ @! r/ e; F# W V - note "\n...CASE Reversed. \n "
/ ?" x8 A F D5 g - )
' n% p( a! a- { - (while (> cnt 0)) \6 r9 \7 I) m. l, a
- (setq tp(substr tx cnt 1))
. h" O. k' t) i! y - (setq asc(ascii tp))
- O8 ?5 T# `0 |7 X- Y - (if (> asc 96)- t8 {: G* k; m, `
- (setq tp(strcase tp))1 L1 \ T" G5 w$ X8 U
- (setq tp(strcase tp T))8 r$ F2 x9 l3 u3 F* a5 O
- )" w* V0 P' ^8 |1 ?4 F& G% g2 ?
- (setq newtx(strcat tp newtx))5 b2 _4 u/ Z2 T
- (setq cnt(- cnt 1)), i& }% J `# _0 d3 Q) ~
- )
4 {, P. J, i2 g0 j* o& B4 O - (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))
! ]2 M8 j7 s+ Q5 N. g' D+ ^ - (entmod enlist)% q; {4 ^+ W. E: e
- )
8 Q" S. C+ I5 P8 ], W# f - (setq note "\n....Text Only Please. \n ")
8 N& S, j' D/ Q6 m( H8 Z; B" g% e - )
# q; W" E0 ?8 L# }6 ^1 y - )
; @+ c( \. U$ V/ A3 Q - (setq note "\n....Nothing Selected. \n ")$ m+ d7 e9 z- S
- )
; W) p2 E; c: Y- n- ]8 x' J - (setvar "cmdecho" 1)
7 R3 M" Q, i' r& j" {. N0 A - (princ note)
% T4 J# x# K6 [' f p# ~ - (princ)
3 l Z" Y2 e; [8 X3 |/ d5 Y. L - )
' `' ]3 D. O, R; I) Q - # d% ~4 Q. F8 w6 j. x
- ;=====================================================================- V5 O$ J2 |1 w3 |5 r
- ;==================== NEW TEXT STYLE UPDATE ==========================
" [3 U' u# s+ a9 O( n - ;=====================================================================
9 K: P' b0 _, k
5 c, U1 g0 l7 M: [- (defun c:nS (/ tdt ssdt sodt index)( F0 ?/ L- h7 d8 ?8 K
- (defun ObjName (ssdt /)& p+ t% s2 W5 D# [+ i
- (cdr (assoc '0 (entget ssdt)))
# S9 e: y5 J8 G. _ - )/ N# H* \1 v/ s" r
- (defun MoPL (ssdt /)
' i) V4 o, c$ X0 K# t6 r - (= (cdr (assoc '70 (entget ssdt))) 0)' ^ U9 Q$ K+ W5 E& x
- )0 Y6 y! Z5 U6 y, A6 X1 C+ O
- (defun NoiPL (ssdt /)7 E7 q1 p- g7 m. m) i- {
- (if (MoPL ssdt)0 j9 Z" ~1 y2 ?' u0 ^- \
- (command ".PEDIT" ssdt "J" "All" "" "X")+ }9 A0 V- }0 D
- )1 {; R- H% n$ i/ A) B9 f( {
- )
) X5 ]( f4 [2 z5 v0 ` - (defun NoiLC (ssdt /)3 c8 l6 K& V0 e P% Q/ S( E
- (command ".PEDIT" ssdt "Y" "J" "All" "" "X") `& x2 E/ m0 i( c& z/ R2 }4 u
- )" N+ x8 y V+ K* X( x+ T" X+ Q
- (setq
+ d$ |0 k/ p& V1 _/ }1 G5 o - tdt (ssget)9 w4 P6 N r2 X c3 X
- sodt (sslength tdt)
! d( P- B# z& g8 D' T2 e! w - index 0
0 d( ? Z& M% P; [; T3 K - ). e" M1 T% o& r* i1 k& U
- (repeat sodt
$ m7 L5 F# j5 B" q - (setq
' k9 J! |$ S! s/ Q5 ^& \ - ssdt (ssname tdt index)
0 F6 P) X7 F. R - index (1+ index)! G3 o: G7 G" q& I# f q W9 D! h" i
- ); k b6 j1 K: d+ `* G% Q
- (if (or (= (Objname ssdt) "LWPOLYLINE")
. t1 x. p0 U; O" F: T5 @/ P0 e - (= (Objname ssdt) "POLYLINE")
( e' _) ]% B1 K! W' t - )) @2 K. f! S- _( a
- (NoiPL ssdt)+ x9 p2 `# s2 n U+ o+ Q5 L
- )% ?) P2 p0 ^) L, A3 h9 D
- (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))
. m# @9 X' W% M7 F1 H - (NoiLC ssdt)) O" W& d2 ~+ J% ^" m* n9 A: k
- )
, F7 m" g7 O; T" [. \: q# B2 v - )6 Q" J. u# d" L
- (princ)& I( Z7 n+ s! N3 ^( p3 S: } u
- ). x8 \+ H$ ?7 V+ s
( h* E1 w+ [5 O1 d$ J, y* t* r- ;=====================================================================3 f: l( N, N" ^2 n$ N
- ;;; AREAM.LSP! ~# ^: k8 E# D! Z/ _8 @
- ;;; Function: Calculates the total area of selected objects
2 m& w8 Y6 e: v3 n. n - ;;; By Jimmy Bergmark
6 ^1 N+ b) M; v, R - ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved5 j' j/ F4 Z2 g
- ;;; Tested on AutoCAD 2000
7 E5 N9 P1 a/ e - $ L$ H* R! ]# h% x1 w
- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)
% ?/ u; e) K Y& U2 j% t! [ - (defun errexit (s)9 I' i. |3 \8 e e
- (restore)4 N$ b$ G; ~" \3 {& x- ]$ L7 _/ g8 m
- )
+ W/ G( z) s0 V+ M+ E& N3 u
" T6 D4 b7 @, r) f- (defun undox (): K6 W* r8 z( N( q* U, U
- (command "._undo" "_E")
$ o( l9 f* P- j5 Q% E; K a - (setvar "cmdecho" oldcmdecho)
* `; Z- o; [8 }1 y - (setq *error* olderr)
0 s _2 P1 g! }; V - (princ)
0 R3 c _) Q+ M* V6 c - )
$ R- ~( O6 c$ G; n" {/ V - $ u' x1 d( d/ M" z# D
- (setq olderr *error*4 I5 T0 g: A4 l; D0 n
- restore undox
9 T% p/ l @- ^. Y9 L0 y$ b - *error* errexit0 E. A6 e+ p& {/ V$ i
- )
5 A2 ] e& e# n - (setq oldcmdecho (getvar "cmdecho"))
# {$ C5 \, r! J - (setvar "cmdecho" 0)
9 Y* }7 X3 {& s3 J0 B - (command "._UNDO" "_BE")$ q/ A! M+ V+ J6 ~; q
- (if (setq ss1 (ssget '((-4 . "<OR")
3 ^: J# B5 M& Y1 a - (0 . "POLYLINE")1 H* Y% ~* R% t+ g! }/ {( h
- (0 . "LWPOLYLINE")+ v( r$ _" \- X& E+ M- `
- (0 . "CIRCLE")$ j! x q( E6 D5 K: J
- (0 . "ELLIPSE")
4 C8 z2 ~/ I$ r- Q0 T, s* m - (0 . "SPLINE"); N, m- M/ a# B' ~: W2 w# W
- (0 . "REGION")" g6 Q, a$ ]* U4 k( m
- (-4 . "OR>")
8 r, l" w8 b0 d. n - )
; b! V# l) n- X - )5 E; g' S6 B9 h8 @( E8 L- }
- )( j5 M: I, j9 i5 ]1 S, T/ z* t+ \
- (progn0 N( z, Q" T1 B! Q: v8 Z' L
- (setq nr 0)- W& n2 i; {0 C7 J% [
- (setq tot_area 0.0)* p% R+ q5 i3 R$ y Q/ w. x/ l- ?
- (setq en (ssname ss1 nr))
0 w4 R. Z# h9 [ - (while en6 ~2 z& @& `/ t: R
- (command "._area" "_O" en)+ p5 h8 E5 N0 P4 P. k- K
- (setq tot_area (+ tot_area (getvar "area")))# [6 {& t" L9 K4 J& ~" ^ m2 k! L o. r
- (setq nr (1+ nr))! m( R1 J& A- a9 n$ _. s4 f
- (setq en (ssname ss1 nr))
$ \2 Y# l4 `, x$ h! | - )
! N4 q9 y1 A8 I0 S2 E# E - (princ "\nTotal Area = ")' K7 |$ k( I6 |$ @1 e2 ^* ` D
- (princ tot_area). K3 Q! V% H$ |9 m. p# ~ \4 D
- )
6 h( g2 ]& I0 C | - )
$ d3 e* ~; v) h! s" O: @ - (restore)
1 _) ^8 z1 a+ L, f5 L- y1 A& G - )
/ h8 r- `6 S% l) \! w
& z) j& }5 R9 t. A2 Y- ;=====================================================================
9 r' S' h/ ?8 N; k) [4 k - ;;; By Jimmy Bergmark
& N% o9 G6 a: m3 W - ;;; Copyright (C) 2008 JTB World, All Rights Reserved. | ?5 B/ C) V! |2 L
- ;;;
m7 ]; g- g# X) R% m r' w% n2 T7 b U - ;;; Created: 2008-03-31+ W+ q5 x }! u0 U
- ;;; c+ t: f1 v; c
- ;;; Convert Attribute definitions to mtext
2 L# u# |, \" d- G8 J! B - ;;;: o% b2 d- _$ u$ H) ^, u* G
2 I2 [" i+ G/ G" e; |( O; i8 S- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)( i. f+ J! |- I( {: g2 R7 V; E
- (setq eset1 (ssget (list (cons 0 "ATTDEF")))
9 D4 M8 g {: b8 N L' s$ A: h - blkcnt 0
! e' T# Y/ T9 Z: a$ o. ~0 r$ l$ w) b& r - )5 T- q9 p( D6 ]: J- N6 ?$ j
- + i2 l& \- t; N! x" v5 ~. h: Z
- (if eset1
j! K$ [" W' e2 C4 q - (while (<= blkcnt (- (sslength eset1) 1))' v/ G1 o* V8 \ Z7 w w1 X* |
- (setq en (ssname eset1 blkcnt)" ^8 v7 A9 m1 Q7 K0 |" Q
- enlist (entget en)
5 |+ h0 ]8 v0 } \ - ht (cdr (assoc 40 enlist))
; g1 A: Y. n) D8 p9 r - pnt (assoc 10 enlist)" k$ k5 T/ x% b: x+ \% R9 r
- pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt) R4 W* A5 ?7 o) s3 s# D/ r) U
- space (cdr (assoc 67 enlist))# k8 A* s0 F6 {7 ]
- )5 I) H3 a* x/ {, K
- (setq vl (list, p6 v6 r/ h8 V& F
- (cons 0 "MTEXT")
0 H9 s! x9 N) c, [0 B }' c - (cons 100 "AcDbEntity")3 F* [3 _; A" }$ V
- (cons 100 "AcDbMText")
& I2 I& {6 ^# Q$ N. M - (assoc 7 enlist)
) J/ e4 A9 ~! L1 [* U) q - (assoc 8 enlist)
* v, T% t; |1 E9 a) F, O' r - pnt
" J; j$ p$ H' {' P6 c& J: G - (assoc 40 enlist)
: d4 t _# z* ~; D - (cond ((assoc 62 enlist))
8 h: ]" P$ t! {' | - ((cons 62 256))
6 a# b. Q. r& u0 B - )
5 Y- ?* h0 {% r$ Y8 n5 g: I - (cons 1 (cdr (assoc 2 enlist)))3 J) N6 C5 Z# c O3 j' g3 }) S' @
- (if (= space nil)" l! q( ]& K2 T2 k
- (cons 67 0)
) K6 \2 a( h8 P* f - (cons 67 space)9 ^' K3 h3 D) [4 P B2 c
- )
6 K$ i5 O5 k" a' ^. T - )
& T' I7 l# J, y2 v, I* }7 b' q6 n, h/ j - )3 n6 n) k: S$ N
- (entdel en)/ x+ c% ^8 K- z
- (entmake vl)
. H: ?3 c: R6 v0 e1 C& `! t - (setq blkcnt (1+ blkcnt))
7 F% K0 n4 g# |4 B, N# s6 D P - )
! M3 i1 \6 U- W9 R - ) s1 ?/ D5 _/ V/ J2 V
- )3 l: S0 {' U+ \0 k3 ]8 \
- ' U3 i% P; v. ~" s$ ]; l+ o! b7 D+ }
- ;=====================================================================
( w" U D7 F" q. X" P - * ?( m7 C% l2 e0 ^
- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
7 N ]* a% i# t/ P9 y/ n - ; Khoi dau cua chuong trinh1 f" O2 k! _0 x* r i
- (princ "\nCopy Inteligent...\n")
% j; Y' h8 C) m8 O; A, v, V- q k - (setq luuecho (getvar "cmdecho")
7 O2 c2 [2 _+ o1 ^ - luu *error*
: [" G- j7 ]1 H1 S- o - *error* ketthuc. P. e8 n' o5 G0 D
- cumdt (ssget)2 k8 p, l$ I( q- h( ?
- dodai (sslength cumdt)" E* D( M& m* O: }
- goc (getpoint "\nSelect base point:")
8 h+ N$ V+ b# N- M9 h% H - thoat nil
4 o W; q/ V5 i/ I- ] - dem 09 S H* |" v! r/ ~$ t9 W
- textxl nil
9 n0 O: l3 B2 Q* o, ]1 p4 G4 ^, z/ H - );
, b0 E) u% j* _( }8 D# X - (setvar "cmdecho" 0)7 W/ T2 `; F l2 J% H0 z& c
- ; Loc ra duoc ong text de xu ly
M6 [' C7 L" K/ U6 Q* s: Z - (while (and (= thoat nil)
) |6 @: f M3 n; a" ?1 g0 E - (< dem dodai)6 w5 Y5 @2 x8 j5 r) n
- )
6 f7 M6 f4 [' P# x - (setq ten (ssname cumdt dem)
2 \! [$ ?. u8 b' X - dem (1+ dem)& @4 S6 C" p9 W- g$ l$ R
- doituong (entget ten): \ ~& X% ?' C7 Z
- kieu (cdr (assoc 0 doituong)) 2 T! v2 s c* }6 k% \! K9 j
- ). L1 I; O1 a$ J% S+ g' T
- 0 W8 b6 n7 ?6 I& D' B9 S. V1 p g! ^
- (if (or (= kieu "TEXT"); X! Z* ~# B2 G
- (= kieu "MTEXT") 1 ~* {" V. g8 c0 z
- )
& a _9 z/ Z" \0 {6 R - (setq thoat T& ^3 Z. Y7 G# \1 X3 a
- textxl (cdr (assoc 1 doituong))
0 s! A& ]0 [" t) b - )7 \! B1 \* b6 o, {& n
- )
4 e6 i, C, {% Z6 @ e4 U - );
* V# H1 x) j& Q/ P) o- Q - (while T , a d9 x' q+ G0 i# C. y
- (setq toi (getpoint "\nSelect next point: " goc)) |# d' h% S) O# U/ D+ m% M
- vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
5 A! U8 N3 C/ d: K) k/ }) @ - dem 0
: w3 _3 s8 \9 j; I - )' R. C, c. h% {2 p! w- Y2 o9 r" C
- (while (< dem dodai)
* K( c, j+ R2 Y+ e& f - (setq ten (ssname cumdt dem)
8 v. F0 `3 @, C - dem (1+ dem) C. S& j" w% }* f8 P- ?" p1 ^
- doituong (entget ten)
8 K) [) l3 j6 y' G0 q - kieu (cdr (assoc 0 doituong))
) T9 {9 r( u: c/ X$ ?" ] - )
) q/ A) g9 j" ]+ M) V7 j
! L0 b/ H9 S! L+ K2 ~8 b- (if (or (= kieu "TEXT")
" [: Y3 T* q* G6 p- ^8 W - (= kieu "MTEXT") : ^3 B( a" C- b7 t- _$ @) B
- )3 N2 S }: h4 s1 u6 |8 N |
- (doitext ten)
7 _, v4 r8 _3 B) T$ z% w - (copy_dt ten)
; P9 @1 r* ?5 }7 r+ E- Q2 S& c
/ b6 k8 K3 ?: @* N" d% o3 n4 G X- );if8 I. x" S# |3 [* d6 q1 o- s
- )2 C; |# u7 p% A1 b0 d
- );while8 B4 o/ j+ U+ Q1 Z/ @7 V( K
- (ketthuc)
5 u9 X9 d @. O [5 i1 a/ t( d* H - );defun1 h- P& x! o9 x! d0 n5 F$ h
- (princ). w' A9 j- b% D2 M. Z+ l
- e* X# L% x( h# K- ;=====================================================================
1 \% R) M4 j: e- V& f - ;;; By Jimmy Bergmark
: l) u' C" [* \2 n - ;;; Copyright (C) 2008 JTB World, All Rights Reserved
- m4 G8 ]+ L- X$ \: j; C# V - ;;;
7 `$ A3 a$ C4 E- b - ;;; Created: 2008-03-31" r% f s& o5 M2 n
- ;;;
. d* K! ^2 P! }5 D' I9 o" X - ;;; Convert Attribute definitions to text0 \9 Z, A) b& T' n4 B# q7 Y! [! \
- ;;;
0 Y% [- ^% f0 X9 P
# f( C1 ]1 e( K# {0 h" _$ j- (defun c:ATT (/ eset1 blkcnt en enlist vl space)
3 S1 ]/ x( X) @, G8 U/ I* S; Y - (setq eset1 (ssget (list (cons 0 "ATTDEF")))$ c* x* W; g8 L, j. w8 k5 `
- blkcnt 0 I/ f. v1 Z. }( W
- )! i- T( l$ m: i' I5 [
6 V& |$ T/ X3 m% p- (if eset1 \# T& e# v; U- l6 q: Y2 `+ a
- (while (<= blkcnt (- (sslength eset1) 1))& \ w$ C% h/ F4 ^9 E0 T6 L
- (setq en (ssname eset1 blkcnt)
7 f+ O# E2 ~2 _" G7 a - enlist (entget en)- |) N" e9 I- H/ g' u
- space (cdr (assoc 67 enlist))
5 E: i! E2 Z+ c - ): r; T- @7 t9 \
- (setq vl (list' T% P7 v" O; u( g
- (cons 0 "TEXT"). M7 L% r2 k3 V, z$ C7 Y
- (cons 100 "AcDbEntity")
" X7 H3 m7 H+ |4 h& T - (cons 100 "AcDbText") Z* b. K0 G N
- (assoc 7 enlist)
% A: \5 z( V0 ~$ i r$ M - (assoc 8 enlist)
' I8 s9 y& y+ `6 }7 X - (assoc 10 enlist)
' C t. @9 H' S$ x) ?& y: ] - (assoc 40 enlist)
: }" ~/ `. L0 @! `! k - (cond ((assoc 62 enlist))6 Y6 i# |$ L) t! ^5 J, ]
- ((cons 62 256))0 j3 H; h9 N; r3 Y h# R
- )* ?* I+ H8 |# W, l& b, V1 ]1 O! k! r: I
- (cons 1 (cdr (assoc 2 enlist)))
5 `0 X( z9 z! H, f$ b6 b+ e+ Y* C w) k - (if (= space nil)
8 Z; c9 x4 a J* k - (cons 67 0)
( q* o% M v3 A7 Z& p/ ? - (cons 67 space)
" O; ^* f" i2 [ - )
9 O& f0 c4 |- H, z - )
L8 h/ H2 C# P9 h( n. y( [ - )
6 m# u+ g# T& H8 s) v) B2 g - (entdel en)
, J: K' m: b) J! G& O, ^ - (entmake vl)9 p8 v, {2 s N4 @1 T H
- (setq blkcnt (1+ blkcnt))
0 F: Z2 x, I' c' I4 R7 t - )6 I2 e' @' k: ~8 ?
- )
8 s" \# d. I, `# ~6 |1 t - )* l2 c3 Y3 t( e3 b+ r
- ;===================================================================== v2 l9 V7 W8 z' s$ k6 J7 x/ s
- ;============================ Doi Truc ===============================
+ H7 }5 g* C5 K8 i% C& Y% o, T - ;=====================================================================* O5 W/ K2 ]8 f1 N
6 R! y: O1 s% Q3 t- ;=====================================================================, ?, f9 D$ H+ V
- ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============
* D' r' |1 L# z - ;=====================================================================
6 W4 L) u! ]0 ]) H" l( [- K, Z - (defun c:ga1 ()
7 O& e8 n: N- z) J! v/ } - (setq a (getpoint "\nChon diem: "))7 L/ A! c- J8 E4 i
- (setq b (getpoint a"\nChon diem: "))
8 k8 J, g0 m; j7 I* k - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))# E9 i8 L7 n0 _' V; A
- (command ".circle" c a)
$ n8 @& Q) T7 g2 x J* } - (command ".line" a c ""). [; U+ c5 ^' @- ]
- (command ".array" "last" "" "p" c "1" "" "")6 l' {! h; q, h
- (princ))! M t" g* G9 }) Y) w& l
0 t! m0 I, l6 m8 Z- K8 r; o- (defun c:ga3 (); J% m( `. N) c# W. i
- (setq a (getpoint "\nChon diem: "))
3 J& i; V) I, o L" C# p/ L! } - (setq b (getpoint a"\nChon diem: "))% W/ I. z9 z1 N; X( z8 l- Y8 ~
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))3 |- I2 G; W, Q7 m2 O, j1 T0 e1 H
- (command ".circle" c a)/ o6 w1 U$ m# d/ r: D+ }
- (command ".line" a c "")2 M. _) h) _6 w" a" L: _
- (command ".array" "last" "" "p" c "3" "" "")
, y3 j7 r* x* I( K - (princ))
( Z' [ g1 f. F# f2 q# R: M5 H - " ~ m* R# T$ J/ p, R8 r4 z
- (defun c:ga5 ()+ D3 R5 @7 t/ F) a! f+ ^% z
- (setq a (getpoint "\nChon diem: "))
0 h: u" A& R) w" c" ]6 k5 v4 T2 c - (setq b (getpoint a"\nChon diem: "))
7 [4 D: X/ z {* d/ c - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))/ i, V+ U7 c& i6 p; c, C( w" x
- (command ".circle" c a)
! A7 {" o1 I* I - (command ".line" a c "")
7 N: N7 ^) ?7 W2 s9 x - (command ".array" "last" "" "p" c "5" "" "")3 _# p& p7 U: Y2 a w+ O
- (princ))
+ v5 ]; N! L' t5 ~4 x
m- L1 M% @! a' Q/ M- (defun c:ga7 ()3 W$ `" W/ b8 H& o
- (setq a (getpoint "\nChon diem: "))# w; K3 ?) D% Z) e$ v; e
- (setq b (getpoint a"\nChon diem: "))
- C* _- S& f2 a" d- m5 h& O - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))), a" E: I( w& ]& {, h
- (command ".circle" c a)- Y6 a" u( x2 Y* E. u
- (command ".line" a c "")
; j. B8 _) _0 h: L8 e6 @ - (command ".array" "last" "" "p" c "7" "" "")7 n3 b; Z% n2 a2 @4 A. S6 W
- (princ))# \2 D- W' i. w, H
- 9 P) G) |5 |- T3 S; [
- (defun c:ga9 ()
7 E; L, U# b" r% U - (setq a (getpoint "\nChon diem: "))
! e B# N+ A2 T0 R7 y0 j - (setq b (getpoint a"\nChon diem: "))
. E1 x5 q A8 H - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))9 `- w$ U6 ]$ m! j0 d
- (command ".circle" c a)2 ^5 [- D d! } [9 n/ c
- (command ".line" a c "")0 c& E5 e% f) w7 g& o
- (command ".array" "last" "" "p" c "9" "" "")
9 [7 R( a: f* ]3 ~& u% _; o - (princ)) ^0 N5 R: l9 J& r
9 a/ h8 v% P6 c- (defun c:ga11 ()! H5 \( w& K- U
- (setq a (getpoint "\nChon diem: "))- j _, c# v& L! f. h% J
- (setq b (getpoint a"\nChon diem: "))
. n* H, n# c+ B# [ - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))9 }/ X/ y& Y: Y! L
- (command ".circle" c a)6 v& p5 F; }( C8 u5 I3 H" W5 J
- (command ".line" a c "")! Z5 k! s/ I/ ^# q
- (command ".array" "last" "" "p" c "11" "" "")
$ L4 I0 l9 q/ v, s& c4 Q. V - (princ))
R6 p7 ?2 m# y! R
) W( p4 V# R/ _0 }* e, M6 C/ ?- (defun c:ga13 ()7 A" l5 n: i5 L* g
- (setq a (getpoint "\nChon diem: "))
0 J9 u' N1 E" t) ? - (setq b (getpoint a"\nChon diem: "))+ W/ Q3 x( n; ^! w: A( H& }
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
, a; w" L w/ I" v# H5 }5 i - (command ".circle" c a)
/ m9 `3 Z6 E$ t- c7 m - (command ".line" a c "")
9 T( Z" Y5 V6 j$ p( c' ] - (command ".array" "last" "" "p" c "13" "" "")9 s2 m0 _7 b1 G9 x" r, n1 ]# P
- (princ))
# T5 U5 z6 O* R - 8 b0 r, |' @- ]0 n; C4 u; c( X" P; c
- (defun c:ga15 ()
$ p; r3 m7 }3 R3 }: _* F - (setq a (getpoint "\nChon diem: "))
9 Q9 `* b; P# z5 F" d% l - (setq b (getpoint a"\nChon diem: "))
. B) Q1 ?; j1 R - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
U% M7 {' z. w& w) l+ T - (command ".circle" c a)
2 C2 \, I8 I- H8 V3 d% N - (command ".line" a c "")$ N" E' k0 f2 s5 e( U' g& \, Q [
- (command ".array" "last" "" "p" c "15" "" "")
7 d# n) P' G3 n( n. K$ p' K - (princ))
7 y& ]( p+ U' k- {$ S9 `! Y
; `2 c( D4 F; z8 @$ o5 @- (defun c:ga17 ()7 H. G5 b- F( Z$ t) b% h
- (setq a (getpoint "\nChon diem: "))
& {, e% G) y" D6 E - (setq b (getpoint a"\nChon diem: "))" ?" t; E" u7 o# D0 d1 V
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
. \$ ~: q p; ]( V, i# | - (command ".circle" c a)6 J1 H! @' c O3 N) s& {7 j
- (command ".line" a c ""); p; w/ Q D, s. w1 u' Y3 b* v
- (command ".array" "last" "" "p" c "17" "" "")
) t; y3 _, k; p4 j4 X. ^& `/ q - (princ))
H. K! B) q7 a( [# k0 k - 9 }+ g1 M( _( N1 w6 `2 ~
- (defun c:ga19 ()* ]/ o. e K; T1 C
- (setq a (getpoint "\nChon diem: "))
7 S: b5 x! G: C6 |4 w" d5 h6 Q - (setq b (getpoint a"\nChon diem: ")); u2 r8 }$ N8 K) n: K7 W2 Y; L% D3 J
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))# T0 G' X; P2 X; F A
- (command ".circle" c a)- Y9 T5 K0 V* O( @: S/ B2 B
- (command ".line" a c "")
: j- L8 z0 ?7 i M" @ - (command ".array" "last" "" "p" c "19" "" "")
4 L7 I) A; W" R& _ - (princ))
7 @/ G+ I1 F: _$ r; @ - ; S" P- d/ }4 \! J" r
- ;=====================================================================
' _! n$ Y" D/ q$ s; b3 k - ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============* d0 s0 C0 t1 n& ?, x1 t" k
- ;=====================================================================6 ?* z- @+ `8 _# b6 a. u8 d
- (defun c:ga2 ()% u; n# ^; B2 a! H
- (setq a (getpoint "\nChon diem: "))
. u2 |* \4 O8 H5 P: y - (setq b (getpoint a"\nChon diem: "))$ o- p* x7 [( E/ M, a( }
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))) K: M4 H: S0 G8 ?* R. j& h
- (command ".line" a c "")
0 y# j: i- u* W - (command ".array" "last" "" "p" c "2" "" "")" H w. l: @8 p4 ]& r. _& _: q, D: Y
- (command ".circle" c a)
& y3 e: E$ O# k( i$ R: N* { - (princ))& @- w) N2 H+ l u. x' K. `* e' \
6 z3 Z& j+ R" g5 a; O+ g- (defun c:ga4 ()2 u7 ~$ u2 F [( i( t
- (setq a (getpoint "\nChon diem: "))
% x( w9 n* K. P8 T w - (setq b (getpoint a"\nChon diem: "))
/ r' |0 e; G+ J - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
6 E+ N) U- m+ i+ ~ - (command ".line" a c "")+ y; t. q& A2 d" Q# ?9 p
- (command ".array" "last" "" "p" c "4" "" "")& a/ G) [7 C; ?: a6 ?/ n" X# t
- (command ".circle" c a)
# w, @: d6 k6 D* ? - (princ))
7 w" }. N, d4 d' T - 9 g5 ~" U$ t1 r& J- Y3 M: ]
- (defun c:ga6 ()
0 ?4 h5 K3 }1 ? - (setq a (getpoint "\nChon diem: "))6 k1 F% a8 ?- f. x9 v9 S
- (setq b (getpoint a"\nChon diem: "))" o6 a+ z W# E8 ~/ [# n
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
' K5 W; n; a$ {0 o! r - (command ".line" a c "")2 q0 v5 R# O) o3 |6 U0 m$ Y6 }8 X
- (command ".array" "last" "" "p" c "6" "" "")2 P0 H7 a. s1 S y5 J. `, c) }# s0 B
- (command ".circle" c a)
7 g+ R" u, D% X( q. C' m - (princ))2 \* J6 D, a: i
- ' a+ M$ y4 p' I% x) W/ x
- (defun c:ga8 ()& U4 p8 t0 \7 K9 |. k: I
- (setq a (getpoint "\nChon diem: "))
1 t" A( ~" }9 ?/ Y - (setq b (getpoint a"\nChon diem: "))
. ^2 r, _1 O! u0 N1 f# ?) ^ - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
# m4 E/ j( P0 d1 G% `! D- F9 g0 y - (command ".line" a c "")
- [$ M2 G' h* ^( c( s' S: X2 g E - (command ".array" "last" "" "p" c "8" "" "")
+ l O- P+ ]5 D8 e$ p0 ^ - (command ".circle" c a)
2 K2 Z( p& M6 z$ E - (princ))
, T( V4 N9 ~8 P2 ]$ }+ c9 M/ }. j# @: I - 1 |. O7 F+ W0 n$ \' `
- (defun c:ga10 ()5 z8 f \; u0 R3 |1 ]3 b1 }
- (setq a (getpoint "\nChon diem: "))3 x) @ _4 v- A& d1 H5 O
- (setq b (getpoint a"\nChon diem: "))/ b- W. W/ J1 s% O9 x- T
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))) i3 Y4 {4 P$ c2 c2 a; q
- (command ".line" a c "")& Y8 v# V& E3 h
- (command ".array" "last" "" "p" c "10" "" "")4 {4 E; U4 ^& _7 A+ ^9 {
- (command ".circle" c a)
2 E& _" H/ ?2 V: x! C- g' p4 U - (princ)); h3 Y! n- y. {6 v4 A0 k2 S- I; Z$ D
: W3 ~" K8 T; F. z4 h- (defun c:ga12 ()
/ [4 b! s0 s9 d) ~; C7 z' h - (setq a (getpoint "\nChon diem: "))# l8 \% {: c x3 V1 [4 ]
- (setq b (getpoint a"\nChon diem: "))4 _! U6 F) A0 E5 M% e% f
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))* }' h2 e' O0 L" T" r' Y/ M
- (command ".line" a c "")
6 o0 u2 f2 D( U9 I, Z' P' ~% Z - (command ".array" "last" "" "p" c "12" "" "")& M) D$ ~ X2 P5 W% o/ a& l
- (command ".circle" c a)
* F y0 k2 a; ` - (princ))' ~9 |! D0 V3 W @3 Z$ ^
7 o7 O% o, f" |1 I3 r% I- (defun c:ga14 () o* @ z# w! M' f
- (setq a (getpoint "\nChon diem: "))8 U8 b9 j$ y3 o& Q
- (setq b (getpoint a"\nChon diem: "))
" a; H4 v' Q# j3 G" r4 f - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))). J. i/ w, N: i& O& i+ K
- (command ".line" a c "")
3 e1 A* P( B- ?$ v - (command ".array" "last" "" "p" c "14" "" "")+ a$ J2 h1 D0 v2 J
- (command ".circle" c a)5 w7 V* ] m! p& i7 B- R
- (princ))
: c1 A, r4 y' [( i% p! S! s
7 v# Q. [' ~% F. H- (defun c:ga16 ()
* _" p4 M6 y# O' B - (setq a (getpoint "\nChon diem: ")), [' `; [4 C4 o+ {# j
- (setq b (getpoint a"\nChon diem: "))* D0 h, ^- X( |: H& N5 ~$ |4 H
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
8 o: ^. Q* O0 G/ N - (command ".line" a c "")9 i/ L2 q6 w) x" m/ c% ^* h, M
- (command ".array" "last" "" "p" c "16" "" "")" S' d% y3 L; b% r
- (command ".circle" c a)- E, ~) j! `- W5 C; C
- (princ)) f8 L, ^+ J' K) l& f
8 i: u3 i8 \" W# Q+ T- (defun c:ga18 (); Y9 ]* K b1 y B5 ^8 R
- (setq a (getpoint "\nChon diem: ")); a) s1 `2 ]3 e/ ?+ d4 J; D: U
- (setq b (getpoint a"\nChon diem: "))
4 _( N* Q3 Q2 z9 }. O - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))4 k4 S1 r0 A b6 V0 Y0 [& m
- (command ".line" a c ""). h5 S/ n$ w3 e& c; y
- (command ".array" "last" "" "p" c "18" "" "")8 d) r ]2 p" K+ q( a) u: S
- (command ".circle" c a)
/ x9 C# g- x4 K) {1 U' }. {( { - (princ)): E9 T, J9 ^8 |: B" h
- 2 h0 x. B- ~( q$ [+ L5 N6 z
- (defun c:ga20 ()
$ U* v9 J" F: R7 m' Y' p - (setq a (getpoint "\nChon diem: "))
. o# [( F" n* ]0 Y8 x/ W \% E - (setq b (getpoint a"\nChon diem: ")) t6 c" q* J( h* ^
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))% G) `. L e8 x, _7 j, }* t
- (command ".line" a c "")9 t9 T% v, O/ P; h* L
- (command ".array" "last" "" "p" c "20" "" "")
+ m: b0 u% R: \4 n - (command ".circle" c a)# E7 W# k1 f' z, p( F T
- (princ))- L9 w3 z N% J9 J
) k# z2 h% l7 d$ W2 m- ;=====================================================================) E8 |& x% ?6 h. l0 r
- ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============
) k/ B. j2 a6 V - ;========================== 06-11-2016 ~ 18h00 =======================
3 R6 R0 r) I* y5 o2 f' s+ i! z$ H) u, Y - ;=====================================================================$ _5 j2 `; x k) k1 p/ F* Y
- (defun c:ga ()4 ]' [+ M: ?4 L) V) c3 ?
- (setq a (getpoint "\nChon diem: "))3 ~9 A& u# J% K4 }# k) X
- (setq b (getpoint a"\nChon diem: "))5 U* H7 m. [0 A- v4 D
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))7 ?- J3 H! G/ f5 b) Y' t
- (command ".circle" c a)
$ M0 k/ b) x2 f' I) C- I) g - (command ".line" a c "")5 j! b' m z1 [6 _6 t
- (command ".array" "last" "" "p" c "NUM" "" "")
9 D4 H$ ]6 ^7 Q& D - (princ)), |( |+ a4 `0 h: U, t; n4 y8 N
* F# m8 q2 M9 W8 |) @+ Y- ;=====================================================================) u# G! C/ ]7 t
- ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============! ?' _$ C& k6 a' @
- ;========================== 06-11-2016 ~ 18h40 =======================
4 o4 a! i- H. a4 A) L - ;=====================================================================3 s; k. {, h! R: `
- - m4 g& k3 m. S( m6 Q
- (defun c:hoathi (): F f4 K! o; P. g' m$ N$ C3 h
- (setq a (getpoint "\nChon diem: "))
) g5 ^- F! @4 S) g: ] - (setq b (getpoint a"\nChon diem: "))' s0 \+ h0 T: a6 ~4 a
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
/ W' T, ~2 T8 q) m; F" s! @ - (command ".line" a c "")
: f9 R2 ~4 J* [ - (command ".array" "last" "" "p" c "NUM" "" "")8 b. F( }' c& d! j. B
- (princ))% H* F9 ?) V# o! l: u6 J# T6 Z
8 g* B# ]. E* w5 O- ;=====================================================================* D: W# T4 _: b+ H8 G( `
- ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============4 ?- v) C4 l$ w9 U: ~: S
- ;========================== 03-11-2024 ~ 19h33 =======================/ m! _# u6 ?! ?: x5 d# L( k. M- k& O
- ;=====================================================================: r- ] k# E6 g" v+ s6 D* A
/ {1 V' b# v+ S' e- (defun c:cung ()
. u+ A6 c' ^" _, P; E7 t - (setq a (getpoint "\nChon diem: "))( o: ]9 ~0 x* e6 q
- (setq b (getpoint a"\nChon diem: "))
8 n+ @7 t7 |+ M! L - (setq c (getpoint a"\nChon diem: "))
- F9 C* M6 j. s* p" V3 W - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))1 Z p9 A1 g4 Z Z/ j, v! u) b6 m: p$ K
- (command ".arc" a b c "")& D# }% ]* _& K: ?; ?) b
- (command ".array" "last" "" "p" c "NUM" "" "")
, q$ S' _5 l5 W, K - (princ))$ @$ _8 f& P1 Z' G0 B- b; s0 J5 }
- 7 a c# N- I5 H: J) t' ^
- ;=====================================================================5 G5 x, i0 P E, Q& d( L. ~4 O
- ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============
& l% B' n4 e9 q1 a/ }* s - ;========================== 03-11-2024 ~ 20h02 =======================
% @$ P( |# W5 ] - ;=====================================================================
4 x# K* v2 N0 x% |' }
/ K( [. |9 q$ a) a! |2 @- (defun c:hecloic (), B4 K# m- y+ t, v( [7 s
- (setq a (getpoint "\nChon diem: "))
' U1 }* L; w( b! r- r3 z* \% U - (setq b (getpoint a"\nChon diem: multi "))
$ q v6 z% z' C' K( x4 L2 s - (setq c (getpoint a"\nChon diem: "))(princ)
3 d) a5 ]4 x+ M4 F, A4 A - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))): B- Z7 @" S6 c$ A
- (command ".arc" a b c "")& A: G! {: T/ c. u
- (command ".array" "last" "" "p" c "NUM" "" "")
" D" R$ p6 n+ d$ l$ {! |- u - (princ))4 U5 W6 n0 j/ T; ~. x
- ) [5 s- {, h& r) B5 s0 t! D
- ;=====================================================================0 G" p- [ A F0 M( `* ?+ D. O& T
- ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============
* a$ c. }6 r1 E2 p/ L - ;========================== 03-11-2024 ~ 19h38 =======================
' m. x5 m6 `. h; m* J# \: l - ;=====================================================================
# I7 x4 K; K$ T8 B' k
1 x2 G. q$ ?" w. R1 Y a- (defun c:gay ()
1 i7 L# b8 c) ^! j9 e% w0 Q! w - (setq a (getpoint "\nChon diem: "))7 q8 _6 h$ F: B) G, {! Z( y
- (setq b (getpoint a"\nChon diem: "))0 f( L9 \1 ~! G' P2 i
- (setq c (getpoint a"\nChon diem: "))(princ)3 E1 h [3 X% E( v+ ~
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
6 Z. Q$ _% J4 j - (command ".pline" a b c "")
4 B! u2 t8 F V D - (command ".array" "last" "" "p" c "NUM" "" "")" s+ x3 g4 D6 Q& Y2 i
- (princ))
7 P6 t6 a2 i5 j, ~* E& y. U1 ]
( w. j# U! I2 m2 `& q( Q* w% ~- ;=====================================================================8 L8 ]9 i7 Z& }: z L- R
- ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============
7 Z$ Z. d# @0 _: r! b9 w% ? - ;========================== 03-11-2024 ~ 20h02 =======================. w2 f: b+ ]4 D: [. i
- ;=====================================================================) R1 w2 A8 `8 R$ S D5 c
, h/ q/ ^% m/ r) _8 \" B- (defun c:hecloit (). H$ v& l3 A! z u; G5 Y7 h+ f, H
- (setq a (getpoint "\nChon diem: "))
, F0 X) x8 q% w C! \ - (setq b (getpoint a"\nChon diem: multi "))) ?. G( W! g5 R2 ]/ [
- (setq c (getpoint a"\nChon diem: "))(princ)
! t* G9 g) @+ W; m/ p$ L - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
3 O; w, C. k3 N - (command ".pline" a b c "")
7 v/ ~( @; ~5 m4 n/ R/ A, U - (command ".array" "last" "" "p" c "NUM" "" "")
9 H7 L8 E. m' [* ~. e+ C - (princ))& ~; `. c3 w5 k1 ]; P. J9 }, c
3 _9 S& F. S9 y$ R9 \" p
E2 Q) C" F* \& l$ |$ Q }/ D2 |5 S- ;;; ============================ Merge Hatch =============================
# @- w: `* }0 H0 K0 C
: U8 O( X, Y! w/ o. a- (defun c:mh (/ ss entht sl i dt dtht)9 n$ D4 O: [8 t! t
- 5 S+ i+ ]% x5 o) p; t3 o4 G
- (princ "\nMerge Hatch - free lisp from CADViet.com")" k' h/ e) p. K' N$ E
# Q* `( g/ b3 |0 M- (setq
5 T# F- n) T& X$ N8 t - ss (ssget '((0 . "HATCH")))5 L" Z$ K% {5 _( V2 k
- sl (if ss
& |3 b6 ?6 C* F- @" n- R - (sslength ss)
' D/ Q2 j4 ?' a - 0
- S4 ~9 B- ]& V- v! a; F" {: M* [ - )
5 Y6 [- l* I& y) W! D - i 0
# k5 h4 W+ M4 g/ G - l 08 R. E# c# b& a& r
- )( V$ K( _0 g/ D0 n" G( q; X
) l1 a4 N1 P+ _ b- (repeat sl* c5 G; w5 D/ D; @4 @5 | z" [4 I
- (setq1 l% J. C. `4 \9 a. B, ? a! z
- entht (ssname ss i)
- l/ z- U3 N" ?: A! {' [ - dtht (getbdata entht)
5 Y& K% g" ~6 l7 j - dt (append dt dtht)- W* F4 s; ~4 z7 ^! \
- l (+ l (cdr (assoc 91 (entget entht))))6 T* f+ S1 K2 |* M" r2 _3 t0 F I5 [
- i (1+ i)
( g* Z6 s2 O+ j. i - )
0 I4 |: e4 m4 ]4 y- ]( H A - ); Z# |) {0 S, d% K0 S+ f! p- F
. d9 n7 f* r- w# E% G! a) l; H% ~- (setq ent (ssname ss 0)
; O% l+ I! H$ c) Z - ss (ssdel ent ss)
8 e- Q( M5 g7 L/ o - tt (entget ent)
( }4 k! A6 V( p: q - duoi (member (assoc 75 tt) tt)/ ^9 t7 |8 e$ `: M% D8 @
- dau (reverse (member (assoc 91 tt) (reverse tt)))5 `# P6 o+ A/ _, h( M2 R$ [. ]8 ?
- tt (append dau dt duoi)
( t; [4 h0 ^ d- b; g - tt (subst (cons 91 l) (assoc 91 tt) tt)
4 W! y$ U& t1 p e) y6 Z6 a1 K# u - ). ~7 L) ?8 `+ T* L
- (entmod tt)
j/ M& _; U% D3 z' e2 Y8 W7 B1 ` - 6 {" h) m0 H2 \, A# t1 Y& z n- |
- (command ".erase" ss ""); D& e+ L7 r# y! Y9 Z8 L
- (princ)
$ W; w* o# I# i1 s+ d& s - )
0 C' P. v% V+ E# E0 T: d) F6 P4 x0 K0 j0 R - : |" Z5 f2 T5 K# `
- (defun getbdata (ent)
0 v: Y* V3 f1 M& p d - (setq tt (entget ent). ^6 I# F6 Y0 U3 `
- tt (cdr (member (assoc 75 tt) (reverse tt)))
& T0 q3 X: h. L" D - tt (cdr (member (assoc 91 tt) (reverse tt)))0 v O" k7 @- e7 y0 j o8 c2 O" @4 q9 B
- )' G/ l1 P" Y1 o7 h: { D
- )
! N% W1 o0 {7 I$ a. ?+ |+ u - / b1 @9 S/ w+ W5 q. V ?
1 Y. c: _) a1 p4 j& K- (princ) ~2 `, E! M7 E: G7 Z
- ( ?3 a& j& b, j- Y* r" @
- ;;; =========================== CAC LENH LAYER ==============================; u' t6 X0 V7 X; v9 l: ~: n0 G
- ;;; =========================== Layer hien hanh =============================! O5 C! y% F% t4 h r2 T3 V: G9 |
9 k$ k+ U9 @8 `/ _/ h: f- (defun layset (/ LAY) (setvar "cmdecho" 0)
- p+ ?5 y$ y: R ?! p1 m$ y& _ - (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))" l! e% M2 i% z9 ~
- (if LAY (progn " B" e$ \' l5 A- a+ l- T
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))! T# D6 C/ K/ a/ B# F" D: V
- (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )
4 f) n; C. k& q+ R - (progn
2 `2 ]6 r; r0 L1 @ - (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop)) 7 `) b; U1 x( v# E
- (progn( F: }( }! T/ D* _ H8 X; \
- (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )4 `# n: T2 c' q2 a
- (defun c:LLL () (layset))(defun c:LAYSET () (layset))
3 I" Z' d& v( Y7 g - 7 E+ O3 ]* v( e; J, X
- ;;; ================== Cap nhat doi tuong vao layer hien hanh ==================
s0 ^4 d9 T3 @. G3 s w% } - 5 `& c5 y# t9 G: {5 A( T
- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)
5 I% S- q+ L* Q6 l! b - (if (not (setq SS (ssget "i")))
6 F4 z5 F+ r% P0 w - (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")! s2 Z2 o: A$ T
- (setq SS (ssget)) ) )
; n: f' n; j3 R& S2 U/ {6 }1 ]" V, e - (if SS (progn$ d# I" X: Z- c1 j& ]: [
- (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "")
$ d" A% _1 E2 @/ W$ c - (if (> (getvar "cmdactive") 0) 1 G: `' k4 @, |. K$ V5 n* z3 j
- (progn; e' Q3 |. I/ q* Q8 w. C4 C* q
- (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )* j8 \/ q8 f- ]" S7 E3 e
- (setq SS nil) ) (if (> CNT 0) * ?+ O& b* N& p8 V6 D
- (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )) F; X) D. Q- i4 U9 J K$ s
- (if SS (progn
f5 ^4 A- O, {1 I - (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")
3 X' e. c4 o% X, } - (if (= (sslength SS) 1)3 ^, ?* z: l, T- m% V9 F! ]) z
- (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))( e0 @* W: F0 Z4 P3 l; Z9 @9 Z
- (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end
) F" K" T2 C. p; W4 W6 F" g8 H - (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur))' o( O! R Y: M/ D
- ; E3 X, C+ F8 Z M+ }6 n# o
- ;;; =========================== Layer Iso ===================================: i: i. a" S7 y2 n6 G8 Z
- ( D3 `$ q& U, ^+ b4 H
- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)
6 t+ U2 T7 R3 J2 i. e; J$ i4 T - (if (not (setq SS (ssget "i"))) (progn
. o6 G, @8 o, S1 L- g8 b- |. ~' B - (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ")
, G% R# D% p% h0 L3 t( B - (setq SS (ssget)) ) )/ e0 C" E/ L0 L' G
- (if SS (progn (setq CNT 0)
( ]% M" z7 o4 f - (while (setq LAY (ssname SS CNT))+ R1 J7 }6 X: W
- (setq LAY (cdr (assoc 8 (entget LAY))))
2 v- T v1 R) p: E, \0 U - (if (not (member LAY LAYLST)) w+ K F& x! _' |
- (setq LAYLST (cons LAY LAYLST)) )9 O5 E- A+ X) X* r' {
- (setq CNT (1+ CNT)) )3 W8 y' J+ s; g \+ n$ e
- (if (member (getvar "CLAYER") LAYLST)3 ` s7 |5 B; @3 X, i. K$ B
- (setq LAY (getvar "CLAYER"))/ m7 }* r' T) w
- (setvar "CLAYER" (setq LAY (last LAYLST))) )2 S) q/ ~( b; A! R/ r
- (command "_.LAYER" "_OFF" "*" "_Y")
, L" A% P, Q# g+ N, s - (foreach VAL LAYLST (command "_ON" VAL)) Y4 \: |- b/ _ _' }+ t! V
- (command "") (if (= (length LAYLST) 1)& S5 n& F" y8 e8 ?# C
- (prompt (strcat "\nLayer " (car LAYLST) " da tach ra.")); b7 z0 J! a4 d, z" v6 E- q
- (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "
: U0 j4 S$ X2 Q8 T1 l: ~' J - "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )
: j- z9 ^6 x2 m, ?4 U - (defun c:LAYISO () (layiso)) (defun c:LI () (layiso))
" o, m" d( `5 L* y% s
/ H# D0 \3 w; ^- ;;; ========================= Layer Match ==================================( T& {" G: U6 r/ Q* p, [3 v1 ~
- * Q/ z7 e% H! d+ m
- (Defun LAYMCH (/ SS CNT LOOP LAY ANS)3 k# Q8 u, ]; z8 {) h
- (setvar "cmdecho" 0)
2 [9 x- O d( ?# J2 K( t: d- z9 q - (if (not (setq SS (ssget "i"))) (progn1 C; m, l% `/ L6 a$ X
- (prompt "\nChon doi tuong muon thay doi Layer : ")
; ^! y- Q0 T* e. G8 c' _6 u% ^ - (setq SS (ssget)) ) )% m4 a# \1 x& y6 Y7 {' ?
- (if SS (progn. o! V! b) Y3 b$ Z. v U
- (setq CNT (sslength SS))) M* G3 e& k6 |/ r" |+ L8 N1 n
- (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "") ! F1 J( Z; x$ q) N+ {& j+ U- l! i
- (if (> (getvar "cmdactive") 0) (progn
: j# F' M4 c. Z& H/ C* @% C( S3 ^ - (command "0,0" "0,0") (setq SS (ssget "p")
5 \: K m+ R5 b1 E- T* A. c( V - CNT (- CNT (sslength SS)) ) )1 J1 r& H) u# [2 Y! f$ |
- (setq SS nil) ) (if (> CNT 0) - C' I+ p" {. C9 F
- (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) )
0 {: u% K3 Y' l* ]1 a6 A - (if SS (progn; q0 l4 N9 ^ ] Q' S
- (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )
$ e7 E& A7 {( l2 b! A, ^ - (while LOOP (cond3 C& X- {1 c# ?$ W
- ((not LAY)8 ^, J% d% S# X$ N
- (prompt "\nKhong chon doi tuong.")
+ E; k* ]1 G2 P7 @( M# z - (prompt "\nSu dung layer hien hanh? <Y> ")4 U" F# Y" s2 d
- (setq ANS (strcase (getstring)))
6 H# N3 C k$ s; q# T" D h3 U$ j - (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))0 Q( I/ v7 l s9 z8 L: u& t) N5 H, r( l3 {
- (setq LAY (getvar "clayer") LOOP nil ) ) )
* ~# B0 m! L, m$ K: U$ b( F - ((listp LAY) (setq LOOP nil) )
6 a* U2 R: R* L1 B$ Y9 L5 H - ((= LAY "Ten")- I3 |/ r# t% u/ o# V
- (setq LAY (getstring "\n>Nhap ten layer: "))
$ S, u' o& D) ~1 y/ Y. k1 c. _ - (cond
: V2 ]# [6 p* | - ((tblsearch "LAYER" LAY) (setq LOOP nil) )
% t% ~7 |9 ^% [* M+ | - ((/= LAY "")' `4 a! w% i3 {; l6 h" [
- (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")
$ y% M/ o# u) W; p3 s. S - (setq ANS (strcase (getstring)))
1 X! e4 U( w! w- v3 K - (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))! G8 f# ]& j% E
- (progn
; p7 P' ]1 ^. R; Q - (command "_.LAYER" "NEW" LAY "")
6 ]- w$ i3 Z+ k4 ~" L2 s+ H$ `/ y - (setq LOOP nil) )
/ V0 d' ?, U8 E2 X8 Q; A* T) ?4 j$ j - (prompt "\nLoi ten layer.") ) ) ) ) ): s* A4 F! d9 p6 m, X$ @) R3 Y
- (if LOOP (progn (initget "Ten") ?9 R }, ~( H
- (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP
; L% K) G2 |; p4 c7 g! z- h& e( s - (if (listp LAY)
' K. F- J4 D5 i4 u q/ q4 D1 O/ X - (setq LAY (cdr (assoc 8 (entget (car LAY))))) )( i# n4 S" g. Y4 w7 W
- (command "_.chprop" SS "" "_la" LAY "")3 e( r9 g! Y7 p
- (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )6 b% n/ N8 [% _; D) z
- (if (= LAY (getvar "clayer"))
4 e9 x5 y: r5 H* C! H - (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )
: }$ g' z3 w3 t0 d% @ - (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch))$ p% x" ^7 ]* \4 I9 u
- : t) E* a1 Y4 G
- ;;; ============================ Layer OFF =================================
3 `3 f; X/ D) O1 T - ! Y' E# f' i+ a3 i% e
- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE)
9 ?8 l6 @0 d2 l0 |9 q7 S2 d - (SETQ SSET (SSGET))
3 a% }9 f O/ o - (IF (/= NIL SSET)
3 t0 o; ^) T4 H - (PROGN6 L8 w, E) s: m5 O8 ?/ w" }* r
- (SETQ SSL (SSLENGTH SSET))
" [7 n6 S$ ^+ ~+ i$ h: m9 T - (SETQ LAY "")9 h/ m7 r" c# Q+ v
- (SETQ I 0)0 R6 W q. \$ X
- (SETQ MODE 0)
[7 w3 m2 f; K* C Q - (WHILE (< I SSL)! I4 O# z% \0 v. F. e! f$ {6 r
- (SETQ ENT (ENTGET (SSNAME SSET I)))
0 z* Q0 _" a/ l3 k - (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
) H, ~1 z$ c" F+ K5 r( O+ G. \ - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))' [% d3 L9 c' X
- (SETQ I (+ I 1))1 m ~7 K" J' h' @
- )
/ s }1 |" P; L. P+ ^, j$ E - (COMMAND "LAYER" "OFF" LAY "")1 [3 ]) R7 T& p" W& _. Q M, e
- (IF (= MODE 1) (COMMAND "") )
; ~6 S& |7 C" @ - )0 t8 p7 ]$ f% g" h1 W" C$ e
- )! ?' w/ v2 P+ }, `8 A! y
- (PRINC)
9 Q) r! j7 U5 w2 |+ K, I7 u2 p - ), j- m: q* ]( ]& }! ?
1 o- G- P5 { }8 O- ;;; ================================ Layer ON ==============================
+ g! Q6 }; D) i
. Y, @( h/ u0 n- (Defun LAYON () (setvar "cmdecho" 0)( q' S1 o. J4 }2 {& S! N
- (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")
1 @+ T( }8 [' M0 P - (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))6 g2 i* {* {7 p6 Q0 L* i- E3 s
- (defun c:LAYON () (layon)) (defun c:LOO () (layon))
# B0 C% q! ~ E* Z k' d$ C - (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))8 Q9 T9 V* @/ ^( K5 \2 U
8 D1 @/ ?( H- `+ @) o& z- ;;; ============================== Layer Freeze ===========================
% U# J0 M2 Z0 V. d
3 p- G0 \1 G* c) ]! ^8 q- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0)
* s1 q! _/ l6 X" e - (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))5 y9 Y o$ T/ \* b6 m1 D: w! d' A
- (IF (/= NIL SSET) (PROGN2 o% h" J' @' z4 x# ^! Y
- (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0)
3 C! Z1 f+ N& @! P& }8 u- q. M3 { - (WHILE (< I SSL)
3 t5 L% T# i$ d- W, q9 b% q* [# w# i: [ - (SETQ ENT (ENTGET (SSNAME SSET I)))
, Y. H1 |' W% c - (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
* N* l, Q4 d: ^+ b8 Y9 w n - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))/ Z% ]' }" l/ P1 w( L4 p0 `% X
- (COMMAND "LAYER" "FREEZE" LAY "")8 y( Z* K$ B3 i/ D/ \" c. I- C
- (IF (= MODE 1) (COMMAND ""))))# g( g7 J {+ U# k- J
- (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)
- h" }+ ^, M0 A/ ~) h - (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )% q% W( Q: a' b, H. `
- (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz))
) U+ M1 A* Y: I& w2 @- b - ) Y' v# s6 P( u2 F# U4 [5 ]
- ;;; ============================== Layer Thaw ===============================) U, t( D2 T/ [! }" D, k
2 m2 J! q$ U) t$ j) Y- (Defun LAYTHW ()
0 `0 `% F+ P4 F+ V; v - (setvar "cmdecho" 0): T6 s' }) O& ^6 ~! p1 U4 J
- (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")
4 {4 J( Y0 H) `! s# z1 Y - (Command "_.LAYER" "_THAW" LAY "")# {$ O; ?) j$ Z. X
- (princ (strcat "\n Layer : " LAY " da THAW."))
" G) f; c5 f* u6 C - (princ) )
! l h0 S7 N; s# p2 H3 E. i5 x - (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))) Y. @5 j% S* T4 D
- $ Q3 `% X- `1 Y
- ;;; ============================== Layer Lock ==============================" I2 O6 f* T& e) t: K
- $ G+ N" U8 R- y5 _9 F+ k
- (Defun LAYLCK (/ LAY)
, Q7 \0 i2 i# K* s" C' U - (setvar "cmdecho" 0)% E& b% H% b& B) E4 B* R
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))
/ k' \' a( I) W; S/ @; u8 Q - (if LAY
0 }1 ]! l8 G4 J# Y - (progn' h! q( P+ |" s- f
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))
( I, B' c- d) \' q3 b/ X - (Command "_.LAYER" "_LOCK" LAY "")
) o# E6 ]! @6 ]2 @% o3 r" R - (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )/ k* w. d6 U( A5 W( U! P! y
- (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))6 d3 G* @2 D0 f; N4 P3 P" ]
# P* C, D, b" r+ M' Y$ i& Z0 i% `$ h- ;;; ============================== Layer UnLock ==============================
& Z+ h \) c+ l$ d# W$ e: p8 j - 0 S1 _9 M( d; B) [" Q/ l& B
- (Defun LAYULK (/ LAY)
( a7 E" H0 g3 G. g( u' e - (setvar "cmdecho" 0)% H0 d" H# H* F9 u# c# L
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))9 ?$ c- ?7 F) j9 k% F
- (if LAY
9 z% i6 O9 e! E5 u- {, M - (progn" n |7 h* k% W
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))7 s! C' T* [: T0 i7 G M/ p, v- L
- (Command "_.LAYER" "_UNLOCK" LAY "")
& }* L# q7 P6 k6 R2 N - (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )
8 Y" Z) @5 `1 ?5 ] - (defun c:LAYULK () (layulk)) (defun c:LU () (layulk))1 b) `' H( S# D) \7 H
- 1 F/ P4 z3 ?7 A' U" W
- ;;;===================== Delete all objects of Layer ========================$ C* P* B. Q/ \$ ~* J
- ; h) T8 N' c7 V: {- M/ ^) h" i
- (defun DELAYER (/ ocmd L S)
9 ]# A5 ^6 D, n8 p# j6 w; E - (setq ocmd (getvar "CMDECHO"))
! Q1 F& a$ I& H' Y- a - (setvar "CMDECHO" 0)6 I2 f# C5 e( C" t
- (setq L (strcase (getstring "\nLayer(s) to delete: ")))0 |* i/ L. G$ q
- (setq S (ssget "X" (list (cons 8 L))))
6 Y" x. E( s: k) a7 H - (if S 2 t' U# P: h/ Y) N
- (command "ERASE" S "") " r6 K9 w) @+ m% R! h( K% p
- (princ "Layer empty or not a valid layer name.") ) " M- C8 I1 R- a7 f
- (setq S nil)
3 [$ m3 }9 c5 A0 q$ |4 K7 Q - (setvar "CMDECHO" ocmd) # S$ l( A- J. |7 x8 u0 X) e6 S) ~
- (princ) ) ; o+ z3 x- @, f
- (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))6 @9 @% J; W+ h$ o
- ) F K2 W4 w6 S% v: ~
- ;;; ========================= HET CAC LENH LAYER ===========================4 | L( i: t6 k3 a
3 p" \4 y$ ?. K' o' z8 }- ;;;====================== EXTEND NHIEU DOI TUONG ===========================: g3 G& _7 U- n* I! n( c0 u6 I
- ! S! v$ h6 I3 w- c1 \- e9 z
- (Defun C:EET ()
2 v* g3 _ b5 F3 @/ t - (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)
, B, O' X+ W9 o: R' d - (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))* J6 H% f& l5 I, G$ O7 o
- (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))
" e. H, N' M3 s - (Setq I -1): P8 r4 Z" K' s0 F& x) j7 T
- (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG "")4 G# m* y6 F0 D7 t& |2 j3 ~ f0 r$ g
- (Repeat LEN
# [9 l1 l8 @8 K( u0 X# [: u- N4 t - (Setq I (1+ I))
! M3 P, U1 D* n1 Q( L3 G r - (Command (List(SSname SS I) SIDE)) ) (Command ""). Z' x% Q, o4 a; ^
- (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )
- `# ^! I4 \! j: s5 _$ D4 Q
+ \8 G z6 }) j% l- S7 w- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============
! A6 X, Z$ Y" c( S( i
" s% J/ u j3 H- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)6 y; i1 G$ g. [
- (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND "))
' f3 D/ ]7 G5 e' t - (setvar "osmode" os), N F) H$ b/ l9 r( }2 N7 a
- (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))
# ^, q5 W h4 I' j }; Y7 E3 M - (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))$ I: ?; D& f% r5 W; M3 [+ V
- 5 r* v* i4 {5 q$ R- Y; B( ]7 l
- ;; ================ Change width of polylines =========================5 W" C& m0 }7 m2 H. H
- 1 k1 j4 _& }4 s2 j1 t% ]
- (DEFUN wp (/ a b sophantu sodem list1 ha:wid)
: z3 h4 d) P+ k3 c& v* e/ ^ - (PRINC "\n Chon doi tuong can thay doi do day (Width) !") 6 ] F, O1 S# j, e1 ?* i3 O( y
- (setq b (ssget)) 5 A" i( M4 e1 Y! t; ]
- (setq sophantu (sslength b))
8 O9 }9 K+ a! K. J" h' U1 L% P5 c. W - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
: N- B0 D+ v. ^- I7 y! M - (princ "\nDo rong polyline <")9 z( S/ U. l- f7 x8 {! ?- a0 K/ r
- (princ ha:wid)
M2 [- R5 |6 v$ t O' K - (princ ">: ")
5 M y. x# h4 t - (initget 4)- P! C' c6 }' r1 |" s& M
- (setq ha:wid (getdist))8 g& z! k9 x# s& n% V. x
- (if (null ha:wid) (setq ha:wid (getvar "tracewid")))! s! p8 J: L6 I' x9 t5 f
- (setvar "tracewid" ha:wid)! z1 T" S/ d* r
- (setvar "cmdecho" 0): i: {: b$ ?5 [4 D
- (setq sodem 0)
7 L4 K6 ]- Q* c. B+ n+ x - (repeat sophantu# D2 G. r R7 P" l& s
- (setq a (ssname b sodem))* C& \0 b F9 Z& N" b4 ^
- (setq list1 (assoc 0 (entget a)))& {( F1 B4 |2 e* L0 \1 c
- (cond
8 T0 ^9 F* b. Z5 Y$ K. m - ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))
* p, g. \" A8 ~ - (PROGN (command "_Pedit" a "" "w" ha:wid "")) ) $ ^- r# O% V, y3 J7 T
- (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))9 J( Y3 ?* k7 Q; K! {. W
- (defun c:wp () (wp)) (defun c:pw () (wp))( H, N& H9 m8 R
0 A( P3 U, _! m1 h" s4 a! h- ;; ================ Change radius of circles ==========================
- M; M/ n. E( r8 _* ^; L6 S# e
: n( @% b4 e" A- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))" {( ~) \+ `; x3 r
- (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : "))
# [$ s' V" K/ I; E- y - (IF (/= RD NIL) (PROGN (SETQ I 0)
) r1 A% h1 ?# |% a - (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )2 c9 T% l9 ]+ {; P
- (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN
0 Z# u& ], W) o$ j - (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )5 a1 M. u" ]: B' R$ X
4 w( ]* J1 p) A$ z# h- ;;; ============================== TEXT Hight ===============================
% U# w# C( `; P7 B4 W% L. Y( {
! a* U$ q3 K0 ?( H& a- (defun texthght (/ ent hght)
+ ]" h6 x# ^. t0 Q - (setvar "cmdecho" 1)
) _8 @" a# H9 K, c: Y - (prompt (strcat"\nSelect text entity with required text height"))
7 z6 [( B; v, h. d - (prompt (strcat"\n."))+ L( X. A; i6 e2 r: u0 h. H2 [
- (setq ent (entget (car (entsel)))). M5 p4 Q/ C* T
- (setq hght (cdr (assoc 40 ent)))
" ^# @0 J, c* {! | - (prompt (strcat"\nText height now set at "))(prin1 hght); V: Y- o5 E9 K
- (prompt (strcat"\n.")) # b$ U5 @% ?3 O+ U* a- U& H
- (setvar "cmdecho" 1)% w6 ], y6 U6 n
- (command "DTEXT" PAUSE hght "") )
" w8 T( n& u0 K1 k - (defun c:teh () (texthght)) (defun c:texthght () (texthght))2 W, j) U- N" Y4 W$ P
- ; D( t( m5 S) R- w9 T1 Y
- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
4 c6 U' f3 c2 @4 q* Z - . n3 V: q9 ]5 p
- (defun c:tuu () (setvar "cmdecho" 0)- q9 ?6 S/ D# B/ O
- (prompt "\nHay chon dong TEXT can gach chan ")% V/ p+ f) L8 V; f% u c* V
- (prompt "\nSelect objects: ")8 x7 _3 h; K) Q; W
- (command "select" "au" pause)
b- e G, Z0 | {1 N" r: r4 I6 K0 L! | - (setq sstxt (ssget "p")7 ~* x' H$ `9 A9 q
- sslen (sslength sstxt)( a' {4 G) _! s1 H% Y1 z
- ctr 0 )8 q6 z) o5 q* }8 |8 P
- (command ".undo" "mark")
* Y# Z; k% G1 t% b$ j0 N! l. L9 G - (while (< ctr sslen)
8 J5 [: t+ L, G6 N- ~' w; i - (setq listxt (entget (ssname sstxt ctr))
, S7 Q* s& {9 L! F) R1 z - txttxt (cdr (assoc 1 listxt))
. i+ w7 c. ~) s ` - enttxt (cdr (assoc 0 listxt)) )+ U; M- j \# @7 I
- (if (= enttxt "TEXT")& k- S, f+ `2 ~+ d" J' w1 N
- (progn" O* G- p, E( q- {, ]; Z
- (setq testxt (substr txttxt 1 3))* p% D7 a/ _1 z" \
- (if (or (= testxt "%%u") (= testxt "%%U"))9 M% H: f0 J) p; v
- (setq newtxt (substr txttxt 4))
- s. C* Q$ h1 ^. m. o- \ - (setq newtxt (strcat "%%u" txttxt)) )
- d1 t. g. W7 z$ K: P - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
; H3 z3 a* r9 d) } - (entmod listxt) ) )
! n7 D4 C3 y2 K9 C' K" B) _8 E - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
3 X- O8 q: c" K - 6 @5 D& i1 E2 t+ R' J
- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
/ U3 i3 W( c) Z3 I
! n1 g9 d- }5 I3 p: i- (defun c:tob () (setvar "cmdecho" 0)3 M$ o( X: ^, g
- (prompt "\nHay chon dong TEXT can gach tren dau "); q& z" z) ?6 C
- (prompt "\nSelect objects: ")
( O& @" q( V( j6 X - (command "select" "au" pause)
, T( f0 ~+ y, M8 c% a - (setq sstxt (ssget "p")* L# G0 a- c; a0 K
- sslen (sslength sstxt)
% F ?( W# b& |7 H5 Y - ctr 0 ) w: y8 N2 V" W+ ]
- (command ".undo" "mark")
4 w3 g6 q1 n) `) w& W* E - (while (< ctr sslen)
" |' g. R0 S7 j! p2 `, T% K; e - (setq listxt (entget (ssname sstxt ctr))0 g/ u5 z5 T( @3 u8 @8 R7 u
- txttxt (cdr (assoc 1 listxt))
! g7 }8 L# }2 S# E - enttxt (cdr (assoc 0 listxt)) )
' I" p# }" _' }$ a6 j" o& A3 y q - (if (= enttxt "TEXT"), y6 W" k6 X+ f) L* Z" K
- (progn
( D3 g. Z& I: X- q: T - (setq testxt (substr txttxt 1 3))! O, M& B$ ~0 J% D' l9 \1 r
- (if (or (= testxt "%%o") (= testxt "%%o"))2 y: [8 S+ i- |/ |2 a
- (setq newtxt (substr txttxt 4))
5 m e! J7 z( Y0 \; y3 C - (setq newtxt (strcat "%%o" txttxt)) )3 S/ R# ]. i% |1 P. g
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))( ~. k1 `) C! r* S. l7 k; j8 e
- (entmod listxt) ) )
2 b d( K* t4 n6 \ - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
0 t+ L( J" Y- ~1 M/ n' F/ {/ G9 j
" Q; O4 \; S0 ^1 o' H/ W" @- ;;; ========================== Tim & thay the TEXT ========================== J+ h" o+ s0 E* V6 K
- - f: X' j, w8 k: O! {9 B2 ?% X
- (defun frstring (str search replace / str1 str2 index find)
2 q" L4 Q' S. l- v& s& n - (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))
; B% ^5 L% k9 S8 S - (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))
7 b0 h' x, B: _ - (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))
2 T X# S# y4 |5 y - (defun hai (/ dial). w- x: o, E, _, Z; C+ z2 l
- (setq dial (load_dialog "hai.dcl")) ;;goi dialog
' ] g. i& \" g2 q- B0 L - (if (not (new_dialog "find" Dial)) (exit)) ;;
! [9 `, w+ g- q. v4 |3 x/ f - (mode_tile "find" 2); Tao dau nhac tai hop thoai5 ]/ g9 {$ r W7 _( E" w
- (action_tile "find" "(hai1)")! H* ~, v U4 N5 R: t2 P
- (action_tile "replace" "(hai2)")$ _; Q7 I( K( l: g
- (action_tile "cancel" "(done_dialog) (exit)")
2 W$ F/ Z$ R5 o% e. z6 H - (start_dialog)
8 {& x) k6 R, l - (unload_dialog dial))+ |. x& _% \, Q+ c- }
- (defun hai1 () (SETQ str1 (get_tile "find")))# G+ c' f/ G, L
- (defun hai2 () (SETQ str2 (get_tile "replace")))
% j9 g& G4 r- f$ ?) k% [ - 0 ?+ k, i. r5 ?5 N
- (defun c:TTT (/ a str str1 str2 newstr taphop sodem)
; u# k" {0 U% L# d) L, e - (hai)# X' }; k- ]% U& E3 S
- (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le")/ S2 S; J& B1 Z9 g' }
- (progn
: O' L8 }1 ~. W - (setq taphop (ssget '((0 . "TEXT"))))5 ]' J9 I" {" D3 S' q. m
- (setq sodem 0)) C8 Z- k0 m4 q2 B9 M; R: l7 m5 j
- (if taphop
y# q5 I0 }+ a# G R5 _ - (progn( y% C5 ]* k/ u8 b7 c
- (Repeat (sslength taphop)
6 r6 q6 R* X9 ?% T - (setq a (entget (ssname taphop sodem)))2 ~% \$ Q, {" \
- (setq str (cdr (assoc 1 a)))
7 ~3 N) D7 y- ~. R2 Q1 C; T! C9 v" ?7 F8 \ - (setq newstr (frstring str str1 str2))( r# p' a( z- ]; H7 N2 \# x
- (setq a (subst (cons 1 newstr) (assoc 1 a) a))
6 J) u) _$ ^( q, u - (entmod a)6 _, Q2 B2 j1 W, m+ S: x% V0 {
- (setq sodem (1+ sodem)) ) )
# h" l1 x2 d7 w! p, S5 _5 a5 X. q) ]+ \ - (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))
* ` ?* g( G5 _. |. J9 T, x0 p. I - " z3 _/ p2 {' B! s4 @& a
- ;;;============================= CHTEXSTY.LSP =============================
2 l$ H! k1 c! L3 E# e) g, L6 }% S
2 _: ?' V8 f, O9 |, m$ {8 l- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST ")
3 [* u: y) a: W, ]% B - (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))% Z0 L t0 n: _+ `8 x3 k
- (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))& ~3 O4 ]& S# _. M
- (Initget 1) (Setq C (Getstring "\nEnter new text style: "))
4 f4 N! M0 Z9 M) e - (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))
3 H' ^1 R, R2 p% X8 n - (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C)) C/ h. }6 P8 R* m
- (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))
, n$ ?( p1 W( I, W - (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))
2 a7 o# z3 Z2 e- ~: k. B - (Initget 1) (Setq A (Strcase (Getstring, O, s6 P5 |- A
- "\nEnter text style to change: "))) (Initget 1)" {7 B# `# k0 Q5 h! Y
- (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext))- ]" S9 u) F8 n+ p
- (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If2 U. k P- }8 p5 ]( n4 o* x3 ^
- (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))9 p, ?* f- [# F# `( R7 ~
- (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))% S0 Y7 Y3 j2 H" J$ T5 w
- (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J))
- c. S. }; U, B0 K c - (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))
' T0 i v% v2 _" n; k! D0 @
) g" [6 s( w9 N+ X( S& a/ M0 Z- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A))
' A% c4 [5 v5 b( ^$ u4 m - (Setq J (Cdr (Assoc 50 A))))4 I I- V* E B5 p
- % Q5 K& w8 Q- G( O9 x, {
- ;;; ============================ DRAW CLOUD =============================
1 K1 E( `% t+ T! } - c' K- a7 w4 n+ h& O: A
- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)
( j( l- C: |% A8 ~. @5 J! M - (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")) q0 k1 k' A3 _
- (setq la (getvar "clayer"))
% f! U! o* N i2 D; ^" p - (command "layer" "m" "cloud" "c" "5" "" "")6 j7 @' }* e6 ~5 g* o5 B' ]+ t
- (setq pt1 (getpoint "\nEnter first point of Cloud: "))
; u( X+ {( G/ X- I; g - (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))) [8 `. C9 R4 S& @4 J
- (setq cnt 1 ss (ssadd))
( y6 W- p. N6 S ?# U' L. _ - (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))7 g; p0 d! f* V4 }
- (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75))3 H& H4 `8 C' c9 k9 P: P; \6 d
- (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))( _: j& ~3 T( H! f5 T! V9 a1 O
- (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0)5 |2 A- M! {6 G" p1 M
- (command "pedit" arc1 "y" "j" ss "" "x")
% o0 u+ \ T/ p: i' } - (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)1 w3 r. Y' C3 H1 `* e( A
- (command "layer" "s" la "") (setvar "cmdecho" 1) (princ)) 4 Y5 v+ n$ S4 [. g& r
- (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))3 k3 H1 ^' S1 b" i4 x
6 q) m' O5 j( ~$ k, `6 m- ;;; ================================ Funtion-Dulieu ========================
% P1 Q, a( x4 l: c B% M; J - ;;; ================================ Funtion-Dulieu ========================
9 P3 T& e! f9 i$ R' X - ;;; ================================ Funtion-Dulieu ========================& {: i$ k5 y6 ?" n/ ^$ S0 t0 Y0 N
* ^. f. i) |! w) l9 ]7 T# o- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )
8 F+ I- _- A, t - (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh")). \: U2 _1 S6 Q
- (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))
( ]; a( o# \' X. F - (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) )6 F2 O5 a9 \1 F! |! y
- (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))! n3 L& U: D/ p% B
- (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))
: H8 m$ h& K9 I - (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))
/ ]6 z5 e% z0 z: p) q/ A8 H - (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))* y, e6 U3 F' D) v1 N+ P
- (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong))))
- t! f. b, s8 l) ~$ M+ } - (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)))
, r5 L8 o% \: Z, Q% Z - (defun dtr (dtr) (* pi (/ dtr 180.0)))9 _ ^# @ E0 ?' u4 n/ @
- (defun rtd (rtd) (* 180.0 (/ rtd pi)))
" ^0 w. c# v2 L1 u4 L* [
5 F6 f6 T- n% f8 a, c" f- ;;;==============================PROGRAME===============================/ ^9 C. G: R8 S
- ;;;=====================EditDiM Hien Hop Thoai Dep======================
/ w/ \, B2 E9 I - ;;;==============================PROGRAME===============================
! R( m/ B( U/ V; E# @* { c6 q - " l$ Y6 A/ p1 R4 H5 F5 T4 D
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)8 {. C& H, B+ k$ Z
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl( x9 \& A v/ V2 l+ n6 m
- (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)9 A- P% r( l5 W+ ^& H
- (Setq Oldlis (Entget (Car Chon))4 o/ s) R0 @; J* a6 ~ M# C
- Pt10 (Cdr (Assoc 10 Oldlis))
/ p: c: K; ?; L: {" v* [3 A% A - Pt13 (Cdr (Assoc 13 Oldlis))
- P' k" P) e8 L - Pt14 (Cdr (Assoc 14 Oldlis))
/ J+ g) K, n- o+ B5 ]! t; U; S6 O. F - St (Cdr (Assoc 70 Oldlis))
7 V I: D6 M9 P1 _ - Dimdefault (Cdr (Assoc 1 Oldlis))
+ T4 o8 C5 N8 H+ C( L - )
& {* ?7 k, A3 t% l5 S- J: f" | - (Cond# d9 |: z+ ?" @
- ((Or (= 32 St)(= 0 St)(= 160 St))
5 O: B4 c" v' Z5 y - (Progn
: s# ^- ^, d2 X" X0 r- H/ m - (Setq Ang (Cdr (Assoc 50 Oldlis))
( W5 ?* M$ R' Z# C - Pt (Polar Pt13 Ang 500)
8 H) `) K" ~* G; J - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)) f! I9 F6 h0 U9 `9 `0 S7 x0 E; f
- Dis (Rtos (Distance Pt13 Hc))3 f+ @ E |0 a1 x6 Z2 q' a- T; n
- )4 j5 Z+ j: C# e3 [3 p3 Q
- )
" e& t4 A1 A Q0 D6 d- r0 a - )/ J# \4 _8 W5 Q& `' L$ X
- ((Or (= 33 St)(= 1 St))
6 P# L2 i8 S# C& _6 c$ { - (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
! L: |: V3 Y3 V( K @3 W& K( f - );;End Cond
# n, Y4 o/ a; d/ O% g3 H$ h& l* ~. T: ^ - (If (= Dimdefault "") (Setq Dimdefault "<>"))0 b0 v5 e- t G) N
- (Setq Dial (Load_Dialog "Hai.Dcl"))
4 t* R# O( ]) o u& k3 { - (If (Not (New_Dialog "eddim" Dial)) (Exit))
; {+ G* H8 E4 `; h( ^: N - (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
! d! ^9 v. d5 ^+ H - (Set_Tile "text" Dis))4 }6 R& L* j5 \1 |( k `
- (Set_Tile "ha:edim" Dimdefault)
O" c, T+ u" e- G' J- e! U - (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai8 U/ S J g0 `7 n
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")6 U- i( N4 U( m" T$ v! T
- (Setq State (Start_Dialog))(Unload_Dialog Dial)
9 Z" i9 L5 l' q% n: q! _ - (If (And Str (= 3 State))+ o6 [3 x( x F8 I
- (Progn
' K, u8 a4 i. c. B; `( b9 R$ f - (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))& F! V' O/ P: R/ z/ Z3 u
- ) T3 o. u3 q0 n+ e V5 c7 I
- (Defun C:EH (/ Chon Name )
8 y! z1 M p2 C) c, D( v/ @- {- v - (Defun *Error* (Msg)* g0 b1 U+ D" f+ H
- (Princ "\nerror: ")(Princ Msg)(Princ " ")
4 `+ A- C3 O0 h; Q - (Start_Dialog)(Unload_Dialog Dial)+ _ t5 }. Q p- K* D: u
- (Setq *Error* Olderr)(Princ)
$ b+ z, j5 P, O: D* ^6 K4 c - )
( f8 J) o3 i% ~) ?3 r$ _ - (Setq Olderr *Error*)
9 N1 e) Y8 @1 x2 z+ j3 i - (Setq Chon T)5 d+ ]. @0 w0 n! F1 M; T, J, R
- (While Chon
* ]. O# Y6 R5 `+ \" P - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
0 c1 l3 j, U' `1 |$ G - (If Chon, f! _ C, G& y' a. a9 q0 P
- (Progn
% a. U( @" B" ~4 `8 I* b - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
' \8 _0 }5 u. `+ O# q9 Z: j2 Z) J - (Cond2 B3 m$ N1 r4 `% |' {. d9 p
- ((= Name "INSERT")(Command "Ddatte" Chon))
- W) h7 n8 q" j# f# t# `3 i9 s - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))$ ~3 ^ x J6 f+ C. D8 r m! u
- ((= Name "DIMENSION") (Hai_Edim Chon))/ u: V# { N3 E
- )3 X0 h3 G( M/ Q
- );End Cond
) R% o2 d2 c2 [8 [5 u - );End Progn) o/ S4 P9 v1 c& e
- );End While
6 v: A+ ^$ l" e+ b$ n F. \ - (Setq Olderr *Error*)(Princ)9 _: B+ L/ s; u/ D0 Y) X6 X* i
- );End Program* s# i% t6 V' m U# ~+ F
- 2 w, T- y* _% K9 D7 k0 P8 M
- ;;;====================DDeditDim=====================
; M3 A5 p1 }" h# {) U8 a9 g - ;;;=====================Hai.DCL====================== d! A l+ K' `1 T3 B( s4 w9 Q6 o
- ;;;====================DDeditDim=====================1 k3 X) [" N! A+ c; v
- ! K- y& l& I) B; c9 T1 C8 d5 z
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
7 q4 F3 ^% V X; L3 k - ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
7 l' Q4 v/ S8 u - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)9 X+ V# e6 u r! s: Z% |2 ~7 B* T
- (Setq Oldlis (Entget (Car Chon))( [6 s7 i6 n0 Z7 L" t
- Pt10 (Cdr (Assoc 10 Oldlis))) R% u" x5 K! g& E U
- Pt13 (Cdr (Assoc 13 Oldlis))( v4 v# o" |9 ]; m+ V7 k* C2 X
- Pt14 (Cdr (Assoc 14 Oldlis))
# h% j" M# _& S - St (Cdr (Assoc 70 Oldlis))
1 I* g0 X" Q0 S+ y - Dimdefault (Cdr (Assoc 1 Oldlis)): ~- R1 _8 }7 ^9 Z5 r h5 ^4 E
- )" P- x" p9 c! x5 I" h, Z
- (Cond( e2 w0 ~6 a$ s5 J& J
- ((Or (= 32 St)(= 0 St)(= 160 St))- p$ @) q$ m8 h8 T, z2 a! g
- (Progn
0 A- H' ?, A7 Z6 y, m - (Setq Ang (Cdr (Assoc 50 Oldlis))
4 k% o) V) \& y6 ] - Pt (Polar Pt13 Ang 500), v j! q& d1 O3 Z1 m4 `# e, a
- Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)- W/ R; G P+ C) j+ g* q
- Dis (Rtos (Distance Pt13 Hc))
3 A( e: V L7 I' x& _ - )
. j5 X& k4 Z+ w$ a - ); l' {. G4 C: f5 r
- )
5 u5 `+ | a, F" [; h5 \ - ((Or (= 33 St)(= 1 St))6 [3 X7 q4 D* ^7 D) B( c$ i
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
% W& V& Q; r+ r: K! Y* Z - );;End Cond
* l1 i, t8 X' l" X( D- C2 t - (If (= Dimdefault "") (Setq Dimdefault "<>"))
; j4 H0 @ ^- V( m - (Setq Dial (Load_Dialog "Hai.Dcl"))' b) y1 k1 j) s' N
- (If (Not (New_Dialog "eddim" Dial)) (Exit))% m+ n% Y" B/ ]
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))% P! W! W2 E% c, Y7 [
- (Set_Tile "text" Dis))
7 O* N O, r/ W- A6 }0 r( P/ w1 Y - (Set_Tile "ha:edim" Dimdefault)/ }3 m0 F1 p& j. C
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai0 {3 F7 B# b, K H0 s7 Z
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")1 p3 H2 Z, B% b# j* E' D
- (Setq State (Start_Dialog))(Unload_Dialog Dial): [% F9 X8 Y! C5 k7 F
- (If (And Str (= 3 State))
- L) m# ^7 ]9 _9 B - (Progn! }. ?9 U: ` u2 |1 c( e$ ^
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis))), ^/ W6 N% C& X- y2 t* l' ?, J9 c
- )
2 @6 b, t! r2 P8 y; t0 @" ? - (Defun C:EH (/ Chon Name )
1 @4 @3 v6 {7 m. z2 r - ! [8 M$ r3 }& d( O
- ;;;********************Du Lieu********************
. M' j7 W! ]+ n% Z. l7 X5 T
4 u% n' O8 s- G. O- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))- I8 p0 `' Y+ o9 J
- (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)
4 y. a/ Q# l/ K# e6 G2 |* H2 F" c - (If (And (/= Hacat1 Nil) (/= Hacat2 Nil))
% q( g8 d, y7 }/ R# M+ N) `4 P - (Progn
3 l3 {/ z6 ~1 U) Z8 A! D - (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))( X( D/ O5 k, H1 ]( R# f
- (Setq Chon (Ssget Hacat3))/ p- Q! o0 W% f- d* ^, [. G6 \! _
- (Command "Break" Chon Hacat1 Hacat2)
6 z1 Q2 g' o+ i- s - )
+ D" B2 U" K, r - )
( m0 r, [4 |; P! p- w$ p - (Princ)+ C) J. @2 w+ f: G( `! R: c
- )
& ~4 o0 d% o8 d; K/ _$ Y - ;;# b; D& m& M' r; Q
- (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))
; n, }% g( q# [ - ;;
0 G v! x; J, M$ n1 { - (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop)); e* a$ m) ]1 r# s6 P! C) R
- ;;
0 @2 {6 Y+ R* o% y: H& m" p: F - (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))
/ i7 p8 D0 l7 y0 p6 K! |2 d - ;;
5 j0 D, N- j7 M2 e4 y8 K7 b - (Defun Reinit ()(Setvar "Cmdecho" 1))
3 p6 h' i" L* A2 U - ;;/ }( R- `1 A: X8 r! q( [
- (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))- N f4 E1 E- r: R4 @
- ;;
" Z8 `! Z7 E' l9 A H - ;;Cho 2 Diem Tinh Ra Vec To Phap# K" w8 f) B G( R6 w
- (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))5 U# r: G4 s' z$ G7 s/ n
- ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang
+ {, H/ ]( Q+ p0 W& ^6 W8 i$ F - ;;Da Biet 2 Diem Thuoc Duong Thang+ Z4 P+ y8 D: S# V) a2 e
- (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2)% J! D2 E! Y, ^, c; e
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)( H' u1 r& h' w; g }0 G% k
- Hc (Inters P1 P2 Dc1 Dc2 Nil)))
( f& s) u- w9 S- r5 g - ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang4 q2 {1 ?5 h, u5 p" E; Q
- ;;Da Biet 2 Diem Thuoc Duong Thang# d8 T0 d; B& ?) ^" |0 f
- (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)& p+ N n2 p* k" X9 @; O/ X
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)! Y- G( }/ J1 a# i
- Hc (Inters P1 P2 Dc1 Dc2 Nil))
3 U5 U" m) ^7 C | s9 k - (Distance Dc1 Hc)" O/ [3 C% _6 `) r+ y
- ), j& d# f: I' v2 Y$ {
- (load "nhapcua.lsp")
) N8 X, Q8 t7 y - (Defun *Error* (Msg)& z1 X9 L, y3 m3 D
- (Princ "\nerror: ")(Princ Msg)(Princ " ")
3 {8 E' ~2 o- ^3 k* t5 v: ~ - (Start_Dialog)(Unload_Dialog Dial)
6 Z! \" O$ A" p0 R/ u" u% _ - (Setq *Error* Olderr)(Princ)/ ~9 u4 N7 c# t/ c, g& q6 c
- )
( E: B. \% r+ c! V! Q* s - (Setq Olderr *Error*)
2 M! K: z- c+ K! | - (Setq Chon T)
* X. F( m3 l: }! J | - (While Chon9 e: |! x, O0 R4 N3 F* [! |! E
- (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))3 } L! T; u3 R0 \( o2 E
- (If Chon
+ q f6 X4 g" Q6 i) f - (Progn
, E5 X( I& Q, X" @1 w: m5 s - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
! G+ h, }7 P$ e5 u - (Cond) R) y Y0 W3 |8 X6 x2 w
- ((= Name "INSERT")(Command "Ddatte" Chon))
1 q. B1 M# R1 ?7 X4 _7 ]( y0 F - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon "")), y( l z4 z* k- f5 f" r* v2 Q
- ((= Name "DIMENSION") (Hai_Edim Chon)), A5 Y% W+ O) V# V
- )
9 ^' b! a" W; n6 D& ?. ?* M# g - );End Cond
( V+ P6 |& g i. @% p, h - );End Progn( Z6 g! t; `% f% h$ ?$ w& `& F
- );End While0 t4 Q, n& Y- Z& n5 i. W0 G _
- (Setq Olderr *Error*)(Princ)
9 I0 s! ~; Y; T: L! t$ W1 A - );End Program. l% ]: k, B0 ]1 H: `/ m
- 0 P n g, _" \0 b8 |" D
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
# \5 J1 v: ~6 g% R7 a1 B! f - ;====================================Nhapcua.LSP====================================
' j, ?. W4 d# ^* o8 g - ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================: f, u8 F$ P4 w6 n' u g6 o, K
- 5 k7 {3 e# n# J; ~# z
- . M8 v. d: l: l3 P. h
" y' o0 Z! T3 G+ ? N ]- ;*******************;*******************;*******************;*******************
2 m& b' D$ O/ H; \1 T" @ - ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****$ T4 \5 A7 X% w/ C0 E" K2 o# C
- ;*******************;*******************;*******************;*******************
6 }8 z5 H ^2 p* W1 A/ D1 g
+ T c+ z$ F1 p: L) _1 h6 x- ;VE HINH BINH HANH
& b" _* Z! Z+ n/ g - : g( Z& r, b4 b l2 \) Z
- (defun c:binhhanh (/ p1 p2 p3)5 s5 m6 B* e7 B5 J) T
- (setq p1 (getpoint "\n Nhap diem thu nhat:"))
; _5 N" {' d8 q& U: j - (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))4 |% K& ]5 ^& ~1 s* s. M
- (setq om (getvar "osmode"))* v+ z! h4 k, r9 C
- (setvar "osmode" 0)$ ?( }7 K7 q1 b# s
- (command "line" p1 p2 "")- u5 r& T, E; }( B/ C1 f9 c! L+ R
- (setvar "osmode" om)
1 a( V8 i" \% I4 h - (setq p3 (getpoint p2 "\n Nhap diem thu ba:")). {& J6 _* G6 T. Z; i/ A
- (setq a (angle p2 p1))8 S% d$ @ |: |. o
- (setq d (distance p1 p2))
$ t% u- w1 v/ u7 W - (setq p4 (polar p3 a d))
+ w1 Y8 ?) ~) ]4 ^ - (command "OSNAP" "none") Q2 e' P( H9 C& M' O: A7 k$ j
- (command "erase" "l" "")
# t( {9 Z! V8 ^ N4 r - (command "pline" p1 p2 p3 p4 p1 "")! o: i( @0 i2 L: F
- (setvar "osmode" om)
. @/ W) v2 n* M# |% p& |& Y0 } - )
}9 R# d5 y9 Z: J8 l9 r; V
; @' r# Y& L' H9 Y4 }$ [# _- ;VE LUOI COT
/ S. n3 T, N% z% q$ l1 {
8 Q9 ~& X9 Z, M; ?; ~9 B- (defun c:LuoiCot ()
3 o; g# I6 v( r' G - (setq om (getvar "osmode"))
% p& I# L$ V9 w/ \& Z( Z: n1 ^3 ` - (setvar "osmode" 0)
0 ~% U1 O' ?" @( H - (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))9 G4 B) j7 P: G7 D2 u6 m- @ J
- (setq p0 (getpoint "\n Chon Basic Point:"))
0 R x0 g' @$ \- ^. ~: v - (setq nc (getreal "\n Nhap chieu ngang cua cot : "))2 p7 S8 [* v5 S8 H! y5 v
- (setq dc (getreal "\n Nhap chieu doc cua cot : "))4 m _2 t4 d5 O# Q8 t3 \
- (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
2 F; q1 y2 k/ ^8 }. n% Q - (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
7 u" K. G, a/ h7 o7 L# | - (command "rectang" p1 p2)
3 V' D1 M$ s" ? - (command "hatch" "solid" "l" "")
$ ^8 `+ [# m" A - (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))
! q: e% a$ t% W+ U5 F! F - (setq nn (getint "\n So buoc cot phuong ngang : "))/ H4 O* a; [4 \ W. }4 |) U
- (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )% d, j; M* D) B5 d0 w5 E% ^+ C, N
- (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) ): C5 F, Z, d x f* E8 h8 N; Y
- (command "select" "w" w1 w2 "")' ?4 g4 O) ` l. \9 A4 T
- (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )5 [/ z# j+ x7 i, n
- (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")9 c! h% |4 \& J7 V
- (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))
4 u( P; Q$ t9 g# j - (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) )), J! b1 @ D! e: m1 ?1 f
- (command "zoom" "w" w1 w2). D. o% W$ e# V& \3 i
- (command "select" "w" w1 w2 "")
9 ?7 c/ y4 B, h6 r' l" J - (setq bcd (getreal "\n Buoc cot theo phuong doc : "))9 ~2 D; m( S2 S* F* z' n/ j6 j! b
- (setq nd (getint "\n So buoc cot phuong doc : ")) |' b6 i6 j( e) O+ n# [
- (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )
$ V3 X' N; v) Y7 w; |1 g) l5 a - (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")
- ^1 q1 G# Y4 y* e% P3 d% Q/ `- A - (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )
$ z# H/ h/ r! I: `3 p( a - (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) )
/ r2 t" `+ b. k4 Z+ F' S- M - (command "zoom" "w" w1 w2)2 ~6 G [+ u& {) I- ~/ j6 A
- (setvar "osmode" om)
1 q+ Q5 B" r1 f, |. e6 {1 P - )$ q2 e, M9 C4 d) Q
, x1 d& g# z# V5 g9 L- ;VE CUA DI
5 o, @$ {0 _. i; E" ?4 n
' O9 t$ k+ q" V. I$ X" _7 `- (defun c:cuadi ()3 B. ?0 E; t7 V' I! E5 N h0 x
- (setq om (getvar "osmode"))
: J* r5 S! ~; u+ w& L( p - (setvar "osmode" 0)
' t) l8 {: B, ^( \
' n8 z' k. f0 Y( I- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))0 `; L4 z1 p2 d! J" a
- (setq b (getreal "\n Nhap be rong cua : "))
9 d) i2 v n# r1 B+ X4 ] - (setvar "osmode" om)+ D1 I2 `6 D- M' r; E
- (while (< 0 1)# G; C! H9 t/ U
- (progn
+ @6 q5 Y3 h$ X8 H; B( P* D - (setq p0 (getpoint "\n Chon Basic Point:"))
- }3 {. u( Y+ w - (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:"))/ W/ @( N, p/ G; m5 H
- (command "osnap" "none") s! K0 l$ q0 a, i) F( n' r
- (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:")), W9 q2 @+ w3 E# h
- (setq a1 (angle p0 p1))/ R6 m3 W2 Q7 N9 a6 n. P
- (setq p1 (polar p0 a1 (/ (* hstl b) tile)))- J/ f# j/ [; Z6 J1 p
- (setq a2 (angle p0 p2))) k2 q( H9 j- }+ ]1 G' @ u; }
- (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )+ n& L- X( L. [/ \% k* e0 [1 H: w5 h
- (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")
" t& V1 S% }1 I& h0 q( G3 s+ m - (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))* s$ F8 v: s+ R
- (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi))
8 y/ q( w* o5 a - (setvar "osmode" om)
2 V4 g8 U( g' T- b - )): Z7 t" O4 j( Y) _& o
- )
8 }) @3 _! j& D. ` - % B0 }9 ? b6 d0 c4 p
- ;VE CUA SO! t8 s' `! J. L# ]
' Z/ y% h5 [3 t0 J- (defun c:cuaso ()
, Y; g1 Q6 n7 E' n) I0 R - (setq om (getvar "osmode"))
" c! C I5 ~& \ - (setvar "osmode" 0)+ }1 X1 F# x/ F3 e
$ F5 ]7 N) y8 o7 S! ~! |, f- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))& d' K2 F! _8 y- N& z$ r6 i( G
- (setvar "osmode" om)1 o6 N$ E) y& p9 j5 V
- (while (< 0 1), u& s1 j( x/ ?
- (progn+ w1 |% X1 m$ g& b
- (setq p0 (getpoint "\n Chon Basic Point:"))
% B% P4 |# A" w - (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))1 A* F* F* f$ g) m4 w
- (command "osnap" "none")% I2 y4 m( M# b1 L- \; J" A% o
- (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))
" Q( ~9 f v [ - (setq b (distance p0 p1))
( e3 a9 }1 K" I$ S8 l - (if (< b (/ (* hstl 600) tile)) (setq du 50))
) N- {3 _0 k7 N% _8 n- {" Z - (if (> b (/ (* hstl 600) tile)) (setq du 150))
4 b3 X( f! s. \& F - (if (> b (/ (* hstl 1800) tile)) (setq du 200))6 o5 S7 g' d. q: o- v/ ^
- (setq a1 (angle p0 p1))3 A- T2 V2 V) h, g4 }
- (setq a2 (angle p0 p2))
. |) ?4 X; D" r2 ^9 S - (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) ) Q7 n: c9 D, N$ e! v4 v d
- (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )
( g: k/ l6 g2 j( g& X4 K$ P! [ - (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )
* W5 }/ g4 p! v" | - (command "pline" p0 "w" "0" "0" p1 "")( U9 w- |# h* v) b! s5 b
- (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")
2 S- Z/ I2 H) q& t( ?4 k6 x - (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")
4 ~4 z/ B9 w7 o: v/ m7 \ - (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile))) 3 s! O: Y) ]0 W
- (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")
# M6 R" V$ z1 p# ^" n5 n @, C - (setvar "osmode" om)
- @& q* U- \' }( r' x - ))$ l4 ~6 S" n0 p0 e$ b
- )
1 N/ w! \- ~ Q! L+ h - - ^- ^7 T3 L5 A: q: K. Z
- ;;;=== General Utility Functions ===% B- C3 p( R' ^( e' C# u$ q
- 0 v7 L+ X! E& i
- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined
# a! f4 l5 X0 ]4 }( G - ; ADS function. Now it's a simple AutoLISP function that calls the
% a' E5 o; j9 r) N% r R - ; built-in function (help). It's only purpose is R12 compatibility.
$ ]+ P, ?" [% g7 ^& O - ; If you are calling it for anything else, you should almost certainly
2 o! @+ ^4 j2 l3 d. w" Y- m - ; be calling (help) instead. 0 I6 Y( V# z* m9 W2 i# d+ P
-
3 P# r, l- o% k8 _ |* q2 F1 f - (defun acad_helpdlg (helpfile topic)! Y& t4 l$ N3 o7 n% ]/ G2 r3 B; n4 @
- (help helpfile topic)
5 ?, w: M) f8 _( z1 [ - )
2 {2 Q+ E+ `" q1 Q
7 v' ]$ N2 o/ m+ m6 _/ H- # B( k% E' K% f
- (defun *merr* (msg), v) S8 y+ x0 D- r: u
- (setq *error* m:err m:err nil)
1 }8 X4 g& J/ r( @; d# m - (princ)
" S. p8 L$ y$ d - )0 T/ z( C; a, _7 |8 Z
- , e3 W0 z1 k% _- q
- (defun *merrmsg* (msg)& j" H% X* a/ S' g4 F3 A, O- @
- (princ msg)
4 F5 k# p$ c: R+ A/ u; V - (setq *error* m:err m:err nil)
' j5 \- n2 m) C. l- V. W! ~ D - (princ) T. {5 O8 U; m4 ?( t
- )1 p& n0 I6 f' _$ n, c
- ! o& G# `) x5 X7 M/ i
- ;; Loads the indicated ARX app if it isn't already loaded$ F8 |( k% r/ ^) @
- ;; returns nil if no load was necessary, else returns the
( R( ^8 q8 J q0 B' }/ N6 u - ;; app name if a load occurred.
' b ?* {2 e4 `* A, w( ~ - (defun verify_arxapp_loaded (app)
+ U; y6 A2 W- U1 \/ q - (if (not (loadedp app (arx)))
# U' o2 W7 [8 X5 i+ ]5 @" w9 y2 Q4 l - (arxload app f)3 W( y3 l. Y: |8 C, X
- )
4 j* U( S. ` c - )
2 k9 S' ?$ d3 @0 K- o
4 _9 x2 q' x _0 L- ;; determines if a given application is loaded...
$ X5 J" ?! L+ x2 W2 ]* q/ d - ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....- ?/ s; Q+ T2 ?- O9 G
- ;;
9 N0 n+ |4 n6 |% v - ;; app is the filename of the application to check (extension is required)# [ {! M7 I2 M" ]' d
- ;; appset is a list of applications, (such as (arx) or (ads)/ G# c6 m! r( `& M
- ;;
: w# t# |1 {; ^( g6 @: D - ;; returns T or nil, depending on whether app is present in the appset) E" }( }9 ?8 ~" t+ z9 E) d: E/ b
- ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"
( G% F. y5 p8 U6 S* x( i, ~- V - ;; Also, if appset contains members that contain paths, app will right-match
6 Z# X. Z6 b5 Q/ C - ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that6 u9 [/ t1 F9 p! A6 @* z: {
- ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."
! `3 M$ u' y! _/ H1 q% [. g - (defun loadedp (app appset)% N) M/ t |8 W/ z; `" t; v
- (cond (appset (or
2 ?% V+ z* U; E# h1 N - ;; exactly equal? (ignoring case)
' c3 H4 G6 }5 h, Q' u - (= (strcase (car appset))
( M D- ^' q4 K6 x5 P. s - (strcase app))0 m, P9 |+ b( r
- ;; right-matching? (ignoring case, but assuming that' Y& O3 h! @! \8 J) ]: W$ q
- ;; it's a complete filename (with a backslash before it)
- v) F% i/ O5 ]' d: ] - (and
$ k/ R1 x' B0 W. G& T* K - (> (strlen (car appset)) (strlen app))7 \5 e7 A( U* n- }/ y
- (= (strcase (substr (car appset) ! f" Z$ ]4 n' \( M: u
- (- (strlen (car appset)) 0 r% V6 @6 J: c4 Q8 t+ e
- (strlen app) + o6 H' x* n- K( h
- ) 5 L7 l/ V1 L& e: h& @) L
- )! K: g* p3 t) i8 w' m0 |! _
- )
7 O$ G; i* b4 E3 y8 N6 a - (strcase (strcat "\\" app))
- T. T& l( @5 V) k - )7 z% {# G8 X5 X% I. m* J: M P
- )- Z, `7 P. A9 b
- ;; no match for this entry in appset, try next one....
$ ^0 {6 n0 a; T2 @1 B - (loadedp app (cdr appset)) )))
; `) q1 n' ~! ~ - )
( }/ Z# h. e' ~' c% |
( a0 u- O0 o* y$ ?
2 R8 t+ Z: t( ~- ;;; ===== Single-line MText editor =====
% i* z+ i& H2 W9 t) t - (defun LispEd (contents / fname dcl state)$ a' d, K1 h, \+ w+ r; A+ {
- (if (not (setq fname (getvar "program")))
: ]6 q% Q W3 U$ Z* N: G - (setq fname "acad")
m, f3 d( X& m - )
K# M+ _ {7 l - (strcat fname ".dcl")' c/ X- j+ _# M
- (setq dcl (load_dialog fname))5 M, {/ @3 l. x2 Y
- (if (not (new_dialog "LispEd" dcl)) (exit))
# F4 X& l( `% x - (set_tile "contents" contents)8 m* L4 p+ v" ^8 N
- (mode_tile "contents" 2)
6 W4 i# B# r- y* L! o0 s - (action_tile "contents" "(setq contents $value)")/ X) V6 m+ O: s( `( o* e v
- (action_tile "accept" "(done_dialog 1)")3 `" K+ W7 f2 a
- (action_tile "mtexted" "(done_dialog 2)" )( E& a; F, b9 M% m4 ~; l2 k$ r
- (setq state (start_dialog))5 t* F9 f9 E. m. s ?6 f$ N% F
- (unload_dialog dcl)2 o" q x" u' y! k o Y. ?. h
- (cond7 B" C* h* L* u. Y" M
- ((= state 1) contents)
+ E. T2 A, \; F, D - ((= state 2) -1)
2 X! w3 y5 ]5 e l' a7 E1 j - (t 0)
# N8 O' B, Y3 C1 h7 y - )
0 F4 E0 q3 O: T$ G. c - )3 u6 Y' u9 ?$ @9 b# b4 m
- 7 |" m: \0 j4 _$ }& t' q1 V5 w
- ;;; ===== Discontinued commands =====
! J/ g2 G9 ?8 m: w& Y. ~5 Y - (defun c:ddselect(/ cmdecho-save)
- I+ E8 q' e! q5 Z7 i- q0 r( B - (setq cmdecho-save (getvar "CMDECHO"))5 x% Z- V. z: F& A2 W. C$ A. D
- (setvar "CMDECHO" 0)- F5 h; J* O+ A* n; ?6 _; z7 X8 c5 h
- (command "._+options" 7)9 V) Y. f( s% y
- (setvar "CMDECHO" cmdecho-save)
; ? Y- l& H& f& ` - (princ)# T* T) l8 Y8 r
- )! `* Z$ Z1 x0 ~0 w
+ d2 P- G% A, g6 b- W( A- (defun c:ddgrips(/ cmdecho-save)7 Z; u. f8 D3 U! A; O( P$ Q
- (setq cmdecho-save (getvar "CMDECHO"))# u% {' t2 J& O1 x" P: X. ~7 H3 u6 b, V
- (setvar "CMDECHO" 0)
3 S! o% k( O& T U$ E: D( }. ] - (command "._+options" 7)6 G# R1 m) M3 Y- |; A
- (setvar "CMDECHO" cmdecho-save)3 N {. F* b# P
- (princ)! B( }8 C8 s+ J
- )( m5 s' N$ y# s6 B! `4 H' F" i- l9 v6 p
- - H& j y2 c. d
- (defun c:gifin ()
9 g1 {$ Q9 a5 O2 E% V - (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
9 J, y+ B" u+ Q0 k - (princ)$ v" B+ d/ ?( |+ ]% @, h. S
- )( W# T0 ^1 @7 A h) l
2 V G- R* H8 ], W- (defun c:pcxin ()0 i3 `* Y, q6 e+ f
- (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")# U8 e" m, k9 S* W$ V$ O
- (princ)
4 Z2 L% i0 E7 W c - ): s$ q; j0 _7 {* N
( K2 n. p( K9 _5 Q( C8 c1 G$ l- (defun c:tiffin ()
( I$ }4 n7 F6 f \6 s6 n W - (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
2 k- u& A; O, D. m' W2 Y+ j - (princ)
7 }' K8 d- ^& e* y% L( s: H - )- `3 C; u( i& y3 G4 @
' j" @; z; C! Y( v. ?- (defun c:ddemodes()
( }7 Z$ ?9 [5 x m" r - (alert "The Object Properties toolbar incorporates DDEMODES functionality. \nDDEMODES has been discontinued. \n\nFor more information, select \"Object Properties toolbar\" from the AutoCAD Help Index tab."); M9 W( {) `& ?) s: o
- (princ)
! A& R* h: l* y2 S8 m$ V - )2 @+ _' K* U' e: l5 Q
- 2 B9 {4 w% E+ T" [% w7 _& Y! ^
- (defun c:ddrmodes(/ cmdecho-save)
5 i9 }8 X$ p0 f- M' i8 ], | - (setq cmdecho-save (getvar "CMDECHO"))
! @. W* T7 D# E: X, S8 | - (setvar "CMDECHO" 0)
) t9 k6 {% i8 ?, e6 m! S - (command "._+dsettings" 0)/ O7 {, O5 \2 `$ L: B5 M+ K
- (setvar "CMDECHO" cmdecho-save)
# X8 t4 l, b! f% c) D - (princ)
( d6 }8 Z4 b( a - )( o; ?% A9 D6 D
- 3 V; \ V2 N& S p& f- i8 q# ?! z4 K# _
- ;; HPCONFIG
5 `, V: h' @8 d- ~9 J3 s - (defun c:hpconfig (/ hlppath)
1 ?( F) }' V, u, F; u: ^ - (if (not (setq hlppath (findfile "acad.hlp")))
+ t* L# P. Q4 x* z0 L, y - (setq hlppath ""))# P& K3 r3 |) }; P
- (help hlppath "hpconfig")
7 ^" n1 r m! {0 [3 N! H - (princ)3 P1 R) w& E* U. N, [3 s) D
- )) a/ G% b) o0 |. x7 N3 ]
- # ?- d+ V+ K$ R6 E
- ;; OCECONFIG& L! M- d# m! Q! m8 b
- (defun c:oceconfig (/ hlppath)
) r3 @! q& {( r4 E5 V# \7 W - (if (not (setq hlppath (findfile "acad.hlp")))
. d! ~* _. _$ m ^ - (setq hlppath ""))
9 I0 F! a- g. J3 K6 q; a ^ - (help hlppath "oceconfig")
; k% R. u, h% I" q - (princ)
N2 ^0 x$ l2 @; J) L - ). h5 @# }0 B. C: W; i
- ( c% `9 [ P" p1 X( F$ ]. J
- ;; CCONFIG: x0 U0 s3 L }& n
- (defun c:cconfig (/ hlppath)
- }% _( |* m6 { - (if (not (setq hlppath (findfile "acad.hlp")))2 [" h% L1 {+ j3 `) E
- (setq hlppath ""))# u Z' z$ Y9 Z# @; s% S
- (help hlppath "cconfig")
# J1 g$ O: `( L - (princ)! Q/ R0 E, Q3 n6 j4 i7 n, @
- )
7 U1 A L* D r" { - " K4 P4 ^) ~( u/ b7 L8 W: D. N
- ;;; ===== AutoLoad =====1 V! V% T7 E/ H: S
6 d; [6 G( }/ X& I. i2 C" e- ;;; Check list of loaded <apptype> applications ("ads" or "arx")" f; ^4 U ?7 c: c9 F4 @3 ^
- ;;; for the name of a certain appplication <appname>.
& z; q* l: W1 g - ;;; Returns T if <appname> is loaded.. q( t6 v+ I! x+ n
' L/ j7 i$ N8 T- (defun ai_AppLoaded (appname apptype)
& ^/ \7 ]2 v4 i# j6 p1 ^* p( ] - (apply 'or# R: k5 f& K7 V9 @
- (mapcar 2 Z/ K/ G# {/ x& |) {
- '(lambda (j)
3 j) j; U( x; \! p$ V6 w9 {- @ - (wcmatch
0 P% f& \" X4 i" l( f& I$ D' g - (strcase j T)) a7 g }7 ^$ v. w! `/ C% Z
- (strcase (strcat "*" appname "*") T); s6 A8 N8 R1 z
- ) 2 W8 w+ B0 x9 s
- )5 d- {8 q( E$ l
- (eval (list (read apptype)))8 J" Z3 k* E! ~! s8 j( X4 v4 p
- )
6 R6 `' `, y( d+ H- h" c# r+ B - )
$ e" U3 s* r! A* y - )- \8 Z% H& L/ k% l/ J
- . [, v) N8 V# m3 R# H. z$ q- }* Y
- ;;
: g/ T; y+ U5 ?1 L, ]) @2 D5 Y0 Q - ;; Native Rx commands cannot be called with the "C:" syntax. They must 4 Q9 Q' D) @: ^% P$ z- G$ O
- ;; be called via (command). Therefore they require their own autoload
9 `7 R& | l' V* U - ;; command.1 W# G' i; K: E
- # E+ Z: [% P4 j- O, U3 O
- (defun autonativeload (app cmdliste / qapp)
" c$ v9 o( S3 J6 ~0 k& t% A - (setq qapp (strcat "\"" app "\""))
8 Z* }, R% A, f8 ?# d! j - (setq initstring "\nInitializing...")
) ^7 R* n7 q8 u - (mapcar. B3 P3 `/ {0 m. B0 o
- '(lambda (cmd / nom_cmd native_cmd)5 b1 S; Q# q' v2 F" ^
- (progn
8 I+ g/ |: c# G9 L* J - (setq nom_cmd (strcat "C:" cmd))
$ i' U7 K* j: A8 Y - (setq native_cmd (strcat "\"_" cmd "\""))
% }& m* C& C! W) X - (if (not (eval (read nom_cmd)))
2 i, d. e C2 Z: e& \ - (eval: s9 ?: Y7 _+ p# R) n0 u) q
- (read (strcat
: f, \) [1 c: t - "(defun " nom_cmd "()"
+ v, t. p9 P5 B8 p; H8 k, ~2 V" I - "(setq m:err *error* *error* *merrmsg*)") M0 g$ n6 W) l+ \( ]! y
- "(if (ai_ffile " qapp ")"* P; t6 Q1 S0 }1 C m, u
- "(progn (princ initstring)"
3 c' Z- i4 a9 @# r0 j - "(_autoarxload " qapp ") (command " native_cmd "))" u A; B! m- f7 t( x+ _& F
- "(ai_nofile " qapp "))"
# K( @8 r. v8 h0 ^( _$ X - "(setq *error* m:err m:err nil))"
: \+ _& r: L* ~8 u - ))))))- g+ B! g: | d
- cmdliste)
4 ~6 N' w% {: `3 s" M - nil
7 b" {5 g6 [- _# N. z! l - )
7 |4 Q+ c( d+ v4 b5 |! m: X1 q - & m5 E, _/ g2 v& k6 z
- (defun _autoqload (quoi app cmdliste / qapp symnam)
" I6 [0 H7 s; V8 G - (setq qapp (strcat "\"" app "\""))
) v c/ q5 y$ h; Z& g - (setq initstring "\nInitializing...")
% E+ w- Y4 U# ]) a1 m1 x - (mapcar
2 ~4 |; P3 Y, L6 g, I: m - '(lambda (cmd / nom_cmd)
* I+ g' ]# H; _+ T5 Z# p - (progn5 }, ^8 ` n; a; k+ [ @+ ~
- (setq nom_cmd (strcat "C:" cmd))7 v( {' d0 Y m) f/ i
- (if (not (eval (read nom_cmd)))2 `0 ]! L, t' f* d
- (eval
- @9 j4 z$ W Y, }, G# r" f - (read (strcat
) _ b4 x+ p7 E, i$ O - "(defun " nom_cmd "( / rtn)"
) p* O& Z3 n; e7 m0 b) X r! N- c - "(setq m:err *error* *error* *merrmsg*)"4 B- A3 U; m9 u" J
- "(if (ai_ffile " qapp ")"7 z) r) j% {# T) ^$ U+ [; t
- "(progn (princ initstring)"
) {) i+ h3 o2 _5 Q( g, s - "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"
& N& A6 a1 s: W1 N% M - "(ai_nofile " qapp "))"
" G* w5 O, ~! M- _ - "(setq *error* m:err m:err nil)"
8 c4 U! ]# {1 p. ?, W# S7 o - "rtn)"
" f' m7 Q q" H2 ~ ?; C - ))))))
/ B' _! ~; ]) D9 w5 I p7 v2 W7 v - cmdliste)6 S6 n8 Y4 ~8 _: z3 [$ x
- nil
. ]2 E+ p6 D7 Y1 W& f% ] - )
; A$ h8 Q# m8 ~ x6 k
$ X8 d$ R! q B; e- (defun autoload (app cmdliste) V$ {0 ~& W% Z( k* `
- (_autoqload "" app cmdliste)2 `3 `4 X/ a [' @2 A
- )+ J0 e" N/ Z* S- v' r3 Y
\% t8 x1 |7 m( d% s* @# ?- (defun autoarxload (app cmdliste)
+ g" L" c. E, j" { - (_autoqload "arx" app cmdliste)- t7 O8 X3 D7 v, [7 t" T( }$ a5 c
- )/ P b( n% K/ ~. y2 B0 i3 B0 b& W
' ~, x, g1 O5 @/ C/ T: Y: U4 z3 G- (defun autoarxacedload (app cmdliste / qapp symnam)
( F7 D l8 ~ H9 \ - (setq qapp (strcat "\"" app "\"")). y1 [* D5 u; y7 C2 t# y; v! E
- (setq initstring "\nInitializing...")/ w. b: w; ?3 p9 j
- (mapcar
" N/ V5 A7 f2 {6 W& a - '(lambda (cmd / nom_cmd)( N# T9 T# Q0 t, U
- (progn; b! q) j/ Z/ t% L& _3 ^# R
- (setq nom_cmd (strcat "C:" cmd))9 d6 c+ F/ D, t7 k: @
- (if (not (eval (read nom_cmd)))
" r% B! ~0 ~ S - (eval
( j* o- G; Q$ T; b g4 x3 x0 W9 D - (read (strcat/ r0 N; x1 `( u6 B* _7 J9 m- K
- "(defun " nom_cmd "( / oldcmdecho)"5 I7 Q, V5 i( b* _) C; m
- "(setq m:err *error* *error* *merrmsg*)"
?# ~$ p( o8 ` - "(if (ai_ffile " qapp ")"" r5 b' V( I* M U7 @
- "(progn (princ initstring)"6 X7 ^8 M! w; w6 H+ F" ^2 O
- "(_autoarxload " qapp ")"0 @& ^$ R( n6 y7 i+ y
- "(setq oldcmdecho (getvar \"CMDECHO\"))"
# R% k" T7 E, D* M$ v- D" y) S - "(setvar \"CMDECHO\" 0)"6 |6 R' g2 d7 d2 a% e& m+ M
- "(command " "\"_" cmd "\"" ")"$ N5 E G# s5 `
- "(setvar \"CMDECHO\" oldcmdecho))"5 L i; d$ @0 e6 Z( J
- "(ai_nofile " qapp "))"
$ `1 q4 G+ o" o - "(setq *error* m:err m:err nil)"; b# \- I$ v! _0 l
- "(princ))"
: f4 X, l5 W4 K9 K; S - ))))))
* q9 W7 c# T) ]/ L2 Z - cmdliste)1 R/ \# o4 l' r4 @. Z8 Q$ L1 B
- nil
; z" }# ^9 {; K9 S8 q# ]/ G - )8 ?/ V- {# ]2 b) M6 g$ L& d
- # L' g1 b3 ~3 t/ b
- (defun _autoload (app)/ o! h$ I- X' u* N* l( M. e+ G/ n9 e) |
- ; (princ "Auto:(load ") (princ app) (princ ")") (terpri)
+ M: T. Q% o: E- A9 @* x% ]! Y - (load app)2 m. i1 A+ |3 d
- )7 U% j$ H5 x- Z, w% B; b. A% ~9 e# }' D
- 7 t6 {" O, g& v
- (defun _autoarxload (app)
5 [, k6 l9 q6 @ - ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri)
! a$ G- ]& p5 Y2 }: V - (arxload app)) F. w, L7 w! d' n$ X
- )
$ l5 M$ G! d. A ?* T2 Q1 h
1 ^- U e J5 t$ L- (defun ai_ffile (app): F1 i5 B y" A" J
- (or (findfile (strcat app ".lsp"))1 }9 a8 j7 j) q, F, I2 O$ r
- (findfile (strcat app ".exp")) I' U( N# A, R z" }# ^% ~ G7 m
- (findfile (strcat app ".exe"))* o) N2 \# i! y2 S5 ]/ X' B
- (findfile (strcat app ".arx"))
3 C# w) a2 ]# f0 N& a - (findfile app)* l/ o) ?( e1 d2 w6 V
- )( M: a9 t: t, d( B
- )& \) J7 X* w$ f- u2 C
% U* }; V) Z3 {+ w! t$ F( D- (defun ai_nofile (filename)
$ { u2 @' Q# a- P+ I - (princ$ v! F- V2 c, I. k) L
- (strcat "\nThe file "
1 }) c- T/ O; O9 Q9 M$ G9 R i, | - filename' V2 J' z! Y; k
- "(.lsp/.exe/.arx) was not found in your search path folders."/ q" [5 v" j: g; d3 p/ t& ~
- )
}3 }0 P U( Y0 i3 L - )/ b& G' y/ i' K! O6 }; U
- (princ "\nCheck the installation of the support files and try again.")
& d, }% X# C0 D4 z1 r) O) l- q - (princ)
5 I$ |. O( c1 k; V - )
4 l# _4 Q" U1 F8 A1 T2 Y' P! X; a, D$ i
0 J& l1 H/ D* v' Q* f$ G" j0 a3 J
5 Q @' f h* U" e* y! |, H- ;;;===== AutoLoad LISP Applications =====
3 a5 A. A2 d6 u- y - ; Set help for those apps with a command line interface4 C" v4 b+ M* z+ z# [
- / q7 x0 b& H: U8 t* D
- (autoload "edge" '("edge"))
9 H+ b) K6 E5 | f' M2 e - (setfunhelp "C:edge" "" "edge"). l; r) |5 R1 g
! R: V4 X% i- Y/ G. e! v" t- (autoload "filter" '("filter " "filter"))
( \0 c$ g7 ?/ y: S/ K - ( M; d4 L) t+ [7 i+ j( I: Y8 N
- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"$ m& Q7 V1 R& E+ P0 J; a) {
- "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")
% p- S7 ^ S& O# k$ q& z - )
( ~$ D8 q' ]+ E0 C } - (setfunhelp "C:3d" "" "3d")+ m/ ^" \- c6 A$ g' b
- (setfunhelp "C:ai_box" "" "3d_box")
0 L8 U4 I. n9 o2 t$ x) Z - (setfunhelp "C:ai_pyramid" "" "3d_pyramid")3 z/ a7 x* s' a. F
- (setfunhelp "C:ai__wedge" "" "3d_wedge")
* ?( ]1 _" t& C. k - (setfunhelp "C:ai_dome" "" "3d_dome")" y/ n6 | _3 ^8 @. w6 ]4 Q
- (setfunhelp "C:ai_mesh" "" "3d_mesh")
1 D# O) T0 t! J1 t# _7 G0 v - (setfunhelp "C:ai_sphere" "" "3d_sphere")
3 I( D0 q: u0 q) x, [1 I - (setfunhelp "C:ai_cone" "" "3d_cone")$ r& I2 x2 J& P- j r! Q: e( }
- (setfunhelp "C:ai_torus" "" "3d_torus")& s0 I0 A6 l% T% j$ U
- (setfunhelp "C:ai_dish" "" "3d_dish")
/ u# T( x9 I+ c9 t, h8 o
9 ]% v; D2 {( a+ I7 O1 w$ J; |- (autoload "3darray" '("3darray"))9 U+ e8 i! E7 _ [
- (setfunhelp "C:3darray" "" "3darray")
+ `: ?% s; F0 i: ?! k
5 I D$ H, [: v2 C- (autoload "ddvpoint" '("ddvpoint"))
- U" \. n9 W$ W7 y
; x2 b' G7 i# O1 n& S2 K- (autoload "mvsetup" '("mvsetup"))
4 h% P ?1 g5 L+ j1 D - (setfunhelp "C:mvsetup" "" "mvsetup")
+ N1 ^ | y6 {& b( | - 0 f" ? D: ]" V
- (autoload "ddptype" '("ddptype"))- D* g8 r+ T& k) x2 t
- # s' q$ h+ O: ~* ^; c% t% U! t
- (autoload "attredef" '("attredef")) W4 G( k+ m Q$ R- Q$ B
- (setfunhelp "C:attredef" "" "attredef")
7 }4 @, i5 y6 i
& E7 W: X6 B9 ^+ S, ~2 W2 r% O$ a8 L$ J0 ]- (autoload "xplode" '("xp" "xplode"))- o0 h1 q! T8 c% `0 }) V, _
- (setfunhelp "C:xplode" "" "xplode")1 P/ K! ~4 v9 _. L% m1 A: c
- 1 D2 H7 e" X( z9 N2 D
- (autoload "tutorial" '("tutdemo" "tutclear"
6 i2 f2 q" E. \- H: l - "tutdemo"
2 V9 V1 ?8 i: `& ?+ n - "tutclear")): r- I( m: Z' ~/ o
- # L7 ~9 s3 O$ Q
- ;;;===== AutoArxLoad Arx Applications =====
9 y% c8 z4 P" j2 E
* v, m" \ R Z( e- T4 i- (autoarxload "geomcal" '("cal" "cal"))6 j8 | z4 U6 D4 r" d
- 0 i! ?5 Q" \% T* q0 W! h) S- A
- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align"
8 C! Q& ^% U; W/ s2 v+ c1 j - "mirror3d" "rotate3d"
2 K$ m7 U: W; p - "align"))* M6 s5 @2 w) i$ y# t* N8 A
- % V! n9 I/ q( v
- 5 X. K/ e, o* N3 I
- ;;; ===== Double byte character handling functions =====; o: a n0 _3 U
- ( ^8 ~! n1 x ^6 m/ _% k
- (defun is_lead_byte(code)
$ X# @( |) @: T+ k( |; w' `9 L3 w+ H - (setq asia_cd (getvar "dwgcodepage"))! Q; S, W) d1 u6 S/ G
- (cond
% g* O7 Y! Y3 \1 n r2 v - ( (or (= asia_cd "dos932")
9 I" k9 d5 N# \8 X7 s - (= asia_cd "ANSI_932")
8 k3 M1 @, I' Q9 I1 s8 j* `# \ - )
0 u) P6 F# z$ H - (or (and (<= 129 code) (<= code 159)); v4 t7 e i7 k% F0 ~
- (and (<= 224 code) (<= code 252))& d5 o4 _! \" Q7 q* |5 H
- )6 V' G, N" _; V. t
- )
( k9 l) P5 k8 j! p - ( (or (= asia_cd "big5")" {, t& H# ^$ d4 x. m, J
- (= asia_cd "ANSI_950")
( x. G6 f) z2 l" m - )
0 j! k" _3 p5 o5 y - (and (<= 129 code) (<= code 254))
$ P1 z; F- L7 V9 L: d- l' N - )
5 U2 ?, B6 x& ? - ( (or (= asia_cd "gb2312"): g% i' a9 J! d/ i- U. O9 U
- (= asia_cd "ANSI_936")
5 g" a" v/ U2 T, W- y# y7 f - )2 l ~9 a f9 v' W' X# e5 z
- (and (<= 161 code) (<= code 254))/ i4 L, d4 M! J' N' f
- )
4 D4 f' y6 J! U6 F2 f3 `8 Z - ( (or (= asia_cd "johab")+ b3 h7 s) Q6 b& R; }4 q) T B
- (= asia_cd "ANSI_1361")
1 i% B# P1 o, c- S* J3 b - )3 g- h/ h/ Y3 a; N& A3 Z7 b
- (and (<= 132 code) (<= code 211))
- b5 D4 Z: D @$ ]! O# S - )4 C9 m# N+ J( L: b
- ( (or (= asia_cd "ksc5601"), U; ^! L: Y4 I8 h
- (= asia_cd "ANSI_949")
8 n* _2 ^( i6 x( J" K3 V0 _# x1 E: @6 B - )
0 V9 q* Q! h/ a( n; e, n! t) x! p8 Y - (and (<= 129 code) (<= code 254))
4 l+ D' f( t6 @ a - )
6 i' C4 d% K d, u - ); F! ^8 e/ P/ d
- )& _$ K! j) K- n6 J0 [
* a) Z' r; H% H7 k6 D" Y! ~- ;;; ====================================================
1 p" p2 T, _5 n; F3 j3 k - 8 C: S& m6 p& B! _& D) ?
- - [( T A4 i4 N& o
- ;;;
4 {" U3 R/ L% F) }( G' ^( ?4 z - ;;; FITSTR2LEN2 v" s; u, f' C6 v0 }
- ;;;8 g$ `6 l% |1 i# G8 Q' K0 r
- ;;; Truncates the given string to the given length.
* z& P, [& r9 s3 f: t, R7 p - ;;; This function should be used to fit symbol table names, that4 _6 O8 C' ~8 ~& T
- ;;; may turn into \U+ sequences into a given size to be displayed0 s$ U! ]: `. r y0 |, d# k
- ;;; inside a dialog box./ r* y# L! @- r2 T; X
- ;;;
6 E6 a* \% f! y- r4 P# z - ;;; Ex: the following string: ; L5 _+ [0 j& a
- ;;;
: k+ ?" D8 H/ n1 G8 b, Q - ;;; "This is a long string that will not fit into a 32 character static text box."0 ^3 I. F7 ~3 T" X9 E1 c' K
- ;;;
/ K1 r0 T1 n* y" ?5 Z - ;;; would display as a 32 character long string as follows:
, G8 r. E8 L1 E# G - ;;;
4 @7 ?: P: u; L6 U( [: t6 o - ;;; "This is a long...tatic text box."- n9 j9 F8 t: ~/ M6 x
- ;;;
. v7 _( I+ C- M% ?+ g
) y( a, J6 \8 X- (defun fitstr2len (str1 maxlen)
9 M: U8 z, Z+ e: v! |% Q - ' ]0 @- d& I6 _
- ;;; initialize internals/ i. P/ t; `, V$ d" g
- (setq tmpstr str1)3 }' Z5 v& j+ P
- (setq len (strlen tmpstr))
* G+ Q& @% y& R% ^% r
' V# n; L3 G D2 y J# }- (if (> len maxlen) 1 ~) _* G. j% H1 k1 T3 [( A4 r
- (progn* g( P4 d5 j& m+ S
- (setq maxlen2 (/ maxlen 2)), y, Q2 I$ a- n5 O% t7 Z
- (if (> maxlen (* maxlen2 2))7 {7 J/ w4 H5 A& H6 c* i( o
- (setq maxlen2 (- maxlen2 1))) M9 P$ m8 A: I/ m0 K. a$ N& J
- )
, R2 i. N, L& w2 E- l9 z. ]# v& N - (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1))
* f: g' a5 P/ C2 x/ M" ~+ G - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))
6 x4 Q1 j) B7 f - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))
) w5 V, _6 ^2 h5 R# @ - )7 U! F% ^4 O8 s; d) a
- (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))
( g e$ i7 a7 Y- X - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))2 I$ `% M( D+ w# @$ \
- (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))/ q% D [4 [/ V) v# t F+ |+ X
- )- i7 Y b9 _' w- g; {, B
- (setq str2 (strcat tmpstr1 "..." tmpstr2))
; g' K3 A7 Q- Z+ N - ) ;;; progn
2 _' J) T# `+ I4 `& P - (setq str2 (strcat tmpstr))
0 C A+ r: b" Y - ) ;;; if5 ~8 g0 k' r% G8 j% {: `
- ) ;;; defun
2 _" @9 g% Q$ B6 f
8 W' f0 d1 k+ p5 Q$ Q6 h! _
# Y0 Y; O4 x( K- p0 N/ i7 A7 N- ;;;" g# k/ O6 O/ |6 |2 Q
- ;;; If the first object in a selection set has an attached URL1 x- p7 C; f& m9 E1 h* a! L# f
- ;;; Then launch browser and point to the URL.4 \3 c' [0 H4 {
- ;;; Called by the Grips Cursor Menu
/ u3 q' f. E5 M% G - ;;;
0 L/ D; ]4 c B8 Z# V; }% `
8 ~; W8 ?8 x; {+ T1 S9 x- (defun C:gotourl ( / ssurl url i)
3 i( K8 e5 b0 _. v! V5 j$ o; T( s - (setq m:err *error* *error* *merrmsg* i 0)
! U+ J* P( v) c6 n: y( c
1 ?1 l- z. Q* C$ M, ?& A6 A& q$ @- ; if some objects are not already pickfirst selected, 8 e. F& P! j2 q
- ; then allow objects to be selected
! p$ V+ }* B; g* A7 Y% M: M - % r; K4 R+ I7 g$ a& a# I" d
- (if (not (setq ssurl (ssget "_I"))): k1 S- K9 { c$ [/ H
- (setq ssurl (ssget))- t* u9 ^9 | g% T. V
- )! x4 V0 ?! w0 C( \7 F( R
7 u4 _* j9 q) f: T- ; if geturl LISP command not found then load arx application* Y) N0 O5 c$ i/ L% G) N
- + S0 K6 r1 Y/ v6 ~6 W) ?- S
- (if (/= (type geturl) 'EXRXSUBR) S2 P0 ]' }3 P7 d0 y0 G" G+ H
- (arxload "dwfout")9 Y! S B$ k3 ^- @/ H$ Z9 {4 o8 E
- )
; o. I5 I( N+ x; y. w. ~ - ' C' O1 r0 c; {' s
- ; Search list for first object with an URL
8 e! Y+ F4 U- t- o2 k' o: W2 v - (while (and (= url nil) (< i (sslength ssurl)))- Q2 P8 P2 f' `: [) r' Y
- (setq url (geturl (ssname ssurl i)): N9 U6 g! \8 G1 m9 v- q! E
- i (1+ i))% m& O2 r* q8 r- | x0 ?
- )" ]& U) ~, R( z" u/ ~! @
$ O, F; g) l& m1 L& D- ; If an URL has be found, open browser and point to URL
0 {# I2 D% Q9 ^0 _* J* v - (if (= url nil)* p2 F. `/ O3 p' ?" _
- (alert "No Universal Resource Locator associated with the object.")
' u% h7 d3 Y+ B& w6 }* ?( a/ r9 z2 { - (command "_.browser" url)
# |, p9 ^! ]0 z9 |& W& j - )+ ?. X3 z- J7 |' y2 t% p! v3 R
- . v5 D$ D# }7 `- ]) M
- (setq *error* m:err m:err nil)6 u$ x# x, p7 b! {
- (princ)
" F. j, E6 @8 {7 O
0 L0 y/ r: }5 r: G; g- )) ^9 j/ L- n7 V2 l0 A1 A& S
! y- Q: X8 i- W4 r! P% I) G- ;; Used by the import dialog to silently load a 3ds file( f7 V8 M# j3 p. L4 L& G, U
- (defun import3ds (filename / filedia_old render)
& ], Q: h6 { ^+ x2 a* k - ;; Load Render if not loaded+ r4 g9 t6 p. B, V
- (setq render (findfile "acRender.arx"))
6 P9 _# r, q2 T j# y - (if render: w! N3 {, q/ s0 `
- (verify_arxapp_loaded render)
/ T, d6 X# f. k- e6 E - (quit)7 p0 d1 l, G/ _( s9 R; B
- ) c4 p% }( @0 i% ]/ @2 ^4 t* Y
- 2 k9 _0 j! r2 Y7 P3 A3 g
- ;; Save current filedia & cmdecho setting.
" i- N5 B( l" ] - (setq filedia-save (getvar "FILEDIA")); W4 Z `: m1 @' y- |' T! s
- (setq cmdecho-save (getvar "CMDECHO"))% \8 W. b9 R; d$ z7 {
- (setvar "FILEDIA" 0)7 L& j: K }9 ~$ d( w6 \
- (setvar "CMDECHO" 0)
9 |: |% _! [0 R: @" l4 h
! {/ e! q& R8 W' C- Y- ;; Call 3DSIN and pass in filename.
0 G' O1 x+ t4 z" p8 p9 c& l - (c:3dsin 1 filename)
& z b$ b# g( y1 i! i - ) Z( S4 y6 P4 K6 a
- ;; Reset filedia & cmdecho
3 a% ]8 r, e, F5 z6 U$ ?/ S - (setvar "FILEDIA" filedia-save)$ N8 Z$ {$ k+ n2 d% u% H" A# t
- (setvar "CMDECHO" cmdecho-save)! z9 U5 N- R( P1 M, `8 a
- (princ)' m2 q$ I* U$ P7 s) g
- )
. n0 @: p3 v" S: x# q% k9 T - $ Q8 D! d6 x5 P2 A) B
4 v! z4 x1 }% n& r* y7 v3 X( v- ;;;=== Menu Functions ======================================
8 ]" R# q5 T/ ]0 c6 R; b3 C - 2 r. m& L+ y* o' j& A
- (defun ai_rootmenus ()
1 v* f7 {" B; \- X! J! i, Q& K - (setq T_MENU 0)& U! R& _# j7 w& q |, U
- (menucmd "S=S")- I9 u8 S0 w2 ], D! g) O
- (menucmd "S=ACAD.S")
# y9 t1 f- E; ]/ B8 g/ f5 D6 M - (princ)
4 e( I/ d! w7 Q - )" I7 d) |9 L- W/ m" D# N4 q- h
- ( p9 f5 p; A$ F3 A6 `9 b8 p6 E
- (defun c:ai_fms ( / fmsa fmsb)
$ s* m2 d I3 c1 A8 y9 t - (setq m:err *error* *error* *merr*)% Q# L$ s" s) z
- (ai_undo_push)
% R% K4 D% W; @4 I* y! S7 d - (if (getvar "TILEMODE") (setvar "TILEMODE" 0))
) l2 i0 W- v5 l0 p( y - (setq fmsa (vports) fmsb (nth 0 fmsa))
% q- I$ J9 |9 `1 m+ j% ]0 f" e - (if (member 1 fmsb); o8 G* e3 K' W8 H3 n
- (if (> (length fmsa) 1)4 y$ K, ^- F. t
- (command "_.mspace")
; t, T/ Y C0 z$ j, x! ^$ A - (progn
8 V# Q# Q E5 q5 P! A: O - (ai_sysvar '("cmdecho" . 1))
K- g9 q) k) T8 K$ }! S( s1 F - (command "_.mview")
3 O D; W- C& ?" k( Z+ h# w - (while (eq 1 (logand 1 (getvar "CMDACTIVE")))
/ Q$ R J$ O, G9 J. C - (command pause)
4 _) e+ W8 v0 q% N$ M - )4 l! ~( R+ V) P2 w0 t2 p5 o
- (ai_sysvar NIL)
: i# ]* d2 u3 _ _, w: |; R - (command "_.mspace")4 J7 }) R0 I: K. t+ J) d
- )
, P S7 |3 l+ r( R; v9 M' n6 { - )( c, N1 R7 E& S
- )
( N1 W3 M# Y0 e+ c$ F. n3 C - (ai_undo_pop)
7 u1 B$ m% \5 _ - (setq *error* m:err m:err nil)
2 _# p) S& v( D* f/ U - (princ)
* a& V3 K4 T0 M' \- a6 O! i - )
- x0 p l. i. {& u4 d) {$ J/ b7 ~ - 3 ^" o, L" y' k) Z, p
- (defun ai_onoff (var)
/ _( b( B+ O _$ U - (setvar var (abs (1- (getvar var))))
; @# R% C" W: @2 P, d t - (princ)2 Y5 S% m& M) u. O9 ]- Q
- )9 t6 ?* f7 g8 |+ J# k
- 7 ~1 s" l( } K& B/ d2 ~
- ;;; go to paper space x% Q! S% h1 b& Z
- (defun c:ai_pspace ()
( d; E) b. C( y6 }( G% L - (ai_undo_push)
6 G. D0 R0 n9 n) D - (if (/= 0 (getvar "tilemode"))
" \- X7 ` h" Y# E - (command "_.tilemode" 0)
2 U% b& F) F3 m1 \- P - )
D8 _- \ O7 Z" _" D - (if (/= 1 (getvar "cvport"))
9 l5 H3 e5 L9 F, z8 j - (command "_.pspace")' W+ C6 ?" b/ U1 n7 W
- )
! J! H# p) B' }- B - (ai_undo_pop)" o3 }( f+ ?% w9 H: j# P& h
- (princ)8 _. y. U7 q# |! S
- )" U* _, x- W3 Y: m+ R# Z
0 s/ v2 a. w' a; F: L- ;;; go to tilemode 1# v. p4 `+ R0 G1 n) K9 d
- (defun c:ai_tilemode1 ()9 [& s9 V2 d2 v! q- x4 k
- (ai_undo_push)! D: i. p# f& G1 Y3 X
- (if (/= 1 (getvar "tilemode")); E! F; k2 j( P
- (command "_.tilemode" 1)
9 \6 n# `! x0 g$ a - )
; N+ X3 @& |2 e; X - (ai_undo_pop)3 I0 w3 ]7 X' Z9 c! k5 @" C7 m
- (princ)( b6 X; I* }# w) Q" k. k. t$ a
- ), q8 ?. P5 E: I! j# \8 u2 ~
- % `5 P- u f+ H! v7 Z _. ^2 P+ | f
- ;;; Pop menu Draw/ Dim/ Align Text/ Centered z, C0 Q, `$ T8 C3 s$ F
- ;;; Toolbar Dimensions/ Align Text/ Centered
6 Y* Z4 m8 t( V1 a) G- {
' {( a s. ^: ]: r- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss)
7 E- G0 Z! x% u' ~6 I9 K* f7 B - (setq ai_sysvar (getvar "cmdecho"))
. t7 l6 L, G6 @! {& ~ - (setvar "cmdecho" 0)# |1 P n5 I5 O3 l) f3 Z$ C0 m, l
- (cond
0 ?) K/ L6 B% @ - ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION"))))
( K8 c/ f' {4 N+ _# y - (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss "" - u& y7 Z% N- ]- J; h( A
- "_.dimtedit" ai_dim_ss "_h")+ C- d( n7 `5 u* U0 S
- )
2 O! H9 r% O# K/ } - (T nil)+ U U+ A& U, m# t& P7 G* M+ Q
- )
8 n0 i& w8 X5 C4 f' I - (setvar "cmdecho" ai_sysvar)% Y; m' @/ v3 e4 b6 G& r
- (princ)
6 W( T) x" [8 N. E - )6 X4 U4 T9 F+ ^% o
- & U/ E$ ?' s: r/ R9 u1 n8 x7 n
- ;;; Shortcut menu for Dimension Text Above ! v* Q' s8 C3 u- o/ y5 r
) Z Q; o$ h8 ?: p; u5 F- (defun c:ai_dim_textabove (/ ss)
; ]) m2 [; [( ^ z+ x$ L* y# ]! y - (ai_sysvar '("cmdecho" . 0))& ~- G& F2 R9 t% \/ k
- (if (setq ss (ssget "_I"))6 H( _9 `2 c m, e
- (command "_.dimoverride" "_dimtad" 3 "" ss "")- C f8 z$ Z+ m( x
- (if (setq ss (ssget))
1 f# Q; L3 I7 O* t- Q! N' p" i1 N - (command "_.dimoverride" "_dimtad" 3 "" ss "") . N6 Z- `: W, s
- )* ^' g- X6 S+ m- L r
- )9 A+ N, \9 E4 M. R" u) z
- (ai_sysvar NIL)
5 V; l- @7 d) T6 Y- i% J' v/ o - (princ)+ t( u8 v. I T1 _8 p
- )
! E3 ]& I, v q$ K. H4 S1 g$ R - 6 M- j) t# w6 C" w
- ;;; Shortcut menu for Dimension Text Center
/ I" `/ |" Z; ^. C* K
$ [2 N1 e1 p1 G% I1 S" d8 ?- (defun c:ai_dim_textcenter (/ ss)0 |3 }2 z8 l7 v, ~. B
- (ai_sysvar '("cmdecho" . 0))
$ {2 o e5 D" z2 C - (if (setq ss (ssget "_I"))
6 u' ~2 G7 ?- j0 } - (command "_.dimoverride" "_dimtad" 0 "" ss "")2 p' y/ j2 R# P3 m3 W. v
- (if (setq ss (ssget))
2 c. X4 [. B, Z a6 w( y - (command "_.dimoverride" "_dimtad" 0 "" ss "")
5 o0 |1 Q- m9 O2 [; Y( T$ W! P - )9 u; p1 J' D( r2 s4 P7 N5 M
- )
) t' j m3 {0 l, s3 s - (ai_sysvar NIL), D; Q" D. i, y3 V; g) q. D
- (princ)
" r* c# X( A$ b2 R$ P3 {0 v - )
: W, y! o& c O2 u/ E8 p4 I
" I: L( \5 g7 S- ;;; Shortcut menu for Dimension Text Home
9 p% [9 Q" {# I+ c& i
( }# X7 `. C# G' {& C1 r: G- (defun c:ai_dim_texthome (/ ss)
! \% ?0 `- y$ |* W4 Z* d - (ai_sysvar '("cmdecho" . 0))( B5 {. u5 n1 j# w, l; e
- (if (setq ss (ssget "_I"))
' W% L+ i/ u! w8 b0 W - (command "_.dimedit" "_h")# z! H& v! `& o; C( U
- (if (setq ss (ssget))
1 `6 k' m, E, q' X4 a5 I; C$ b - (command "_.dimedit" "_h" ss)
1 r# m* P) ~9 Y) ] - )0 R% o% g! O4 |( S, X _/ G
- )
0 R5 c8 h1 m# O8 D6 f - (ai_sysvar NIL)" F( e3 c+ p& h9 W( z( k" _$ l' J
- (princ)
) S8 |8 Q j; p - )
/ _' j5 C9 l5 u+ o5 f - 6 `6 K' ^* c8 I0 |
; J/ p/ j" j9 K. m# g- ;;; Screen menu item for CIRCLE TaTaTan option.
; [( A6 e J* x9 s- i - ;;; first, get points on entities1 i5 R$ ~9 C; r1 K9 L
- (defun ai_circtanstart()( T; |5 Y, }1 c. x: d2 Q
- (setq m:err *error* *error* *merr*)
( e7 j! Q2 n9 k8 `5 G6 J5 b - (ai_sysvar 9 \. s/ ^. J! k# S8 o
- (list '("cmdecho" . 0)+ ]! u' u# l) B" I8 Q2 X
- ;; make sure _tan pick for CIRCLE gets same entity
8 F6 \! y9 E4 r. X8 L8 r$ L - (cons "aperture" (getvar "pickbox"))
* m' f2 F* j _ - )
1 H& P# u% m) v q. I9 u, P - )" ^) N2 K( W6 }" u5 r
- ;; prompts are the same as CIRCLE/TTR command option0 }. m4 l8 ]0 O
- (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))" g/ Q& r* f6 S3 W* I
- (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))* K& M+ w# W. h) u: N& H! u
- (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil))
3 S% w3 l5 g$ p - )5 f& h0 B ]9 z7 r) P
- ;;; Command-line version5 R+ A. j; ?3 q) \
- (defun c:ai_circtan (/ pt1 pt2 pt3)
3 B% o O/ Y$ X" j - (ai_circtanstart)8 C. y- U' W8 W i8 ?* ?
- - I X4 b) {3 r
- (ai_sysvar '("osmode" . 256))
' c1 I" x, P& ~$ Q - (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)
, X, n6 K7 v1 Y! l6 @" ` - & O) Q/ Q b* J
- (ai_sysvar nil)
, a$ l U1 [0 e! |9 u0 C: o - (setq *error* m:err m:err nil)' h9 e. t; }4 B) d# l
- (princ), H; j, d3 U0 [3 v9 T, w, j4 S
- )) f2 K# l/ j( I
- ;;; Use this if CMDNAMES == CIRCLE# E+ x) g3 T2 o. E0 h" e
- (defun ai_circtan (/ pt1 pt2 pt3)
6 N$ H. \8 q; r k8 Q - (ai_circtanstart), a) P+ N1 M ]4 v
- ) X7 b7 Q2 W& g) Q2 q3 B
- (ai_sysvar '("osmode" . 256))
# F+ w1 M( d8 p1 x# t$ A7 W9 X - (command "_3p" pt1 pt2 pt3)
( Q& m" E( h' X/ ~ -
: A$ n$ @6 O0 ]% E - (ai_sysvar nil)6 t4 B4 A4 P5 U$ @) @1 Y3 Z
- (setq *error* m:err m:err nil)
: ?: D1 g7 F" ]1 T1 [; I8 `$ l - (princ)4 i1 j& r0 @+ i* O2 ]/ n: E
- )8 e3 J$ y/ K9 H1 Z9 D; f: q1 \. \3 }
- ! E& T( t' w! z0 @
- & p& k- o# }, O. r% e
' m4 ?. o, x; x4 [0 U- ;;; Shortcut menu Deselect All item.
" Z' W9 T5 V9 c1 D - % {% e X" @% B% Y1 _
- (defun ai_deselect ()
+ L* o# s9 x/ C |) X' I; ~ - (if (= (getvar "cmdecho") 0) ;start if
) k F/ \, k) V' ~' W5 R5 b% k8 ` - (command "_.select" "_r" "_all" "")
7 ^+ N9 f8 E! E3 ]. X1 ^ - (progn ;start progn for cmdecho 12 }0 X4 W- {- B* t- w: I0 z* W
- (setvar "cmdecho" 0)+ f8 j. { |! d0 ~2 F8 a' T
- (command "_.select" "_r" "_all" "")
7 f# r: o) _$ a6 _ - (setvar "cmdecho" 1)
) c/ f. E g9 t6 m" o( A' @ - ) ;end progn for cmdecho 1* c6 U9 F6 }+ C; F4 e& S. k& s& f: U
- ) ;end if2 q6 }& s$ {0 `) ^
- (terpri)
0 n# C" @# S2 n7 m1 E - (prompt "Everything has been deselected")
: K$ u7 R3 v6 J9 J - (princ)3 ?0 O5 B9 K% R. b$ J
- )
7 j8 K$ ?9 \3 ^: C# n - 8 G; J5 }( L1 S# A' P
- ;;; Command version of ai_deselect to be called from the CUI, o% r4 H$ C7 ^
- ;;; so it gets properly recorded by the Action Recorder7 {( G; L% g, {) `
- ;;;' W7 O% l2 E# U' J
- (defun c:ai_deselect ()
( _0 o/ `! ]2 g: F$ A: d - (ai_deselect)
; m& w: L! E, U( M3 l5 s1 H - (princ)
" A6 d0 P) p! `2 O F0 P" \: i - )# H: S+ V8 a8 P& C0 [. B
- * \7 | g& P1 i6 f0 H3 i
- ;;;& |& \8 I- g( n: d! ~
- ;;; Enable Draworder to be called from a menu
: D- W. `8 ^8 P6 e2 u# H - ;;; Checks for Pickfirst selected objects3 V, d% ?9 I! b" V& N2 M; T" E
- ;;;& _3 G, X7 S, ~
- 7 v$ @) b: E- @" `; J
- (defun ai_draworder (option / ss )! [& r7 ^- P. l
- 2 \' W: ~9 E6 W5 F1 ?% U0 b
- (setq m:err *error* *error* *merr*); x' h0 e3 i! V, C
- (ai_sysvar '("cmdecho" . 0))- r' l# U$ ]3 ]: \! }* P) Q4 }
5 [. x$ T" I3 T0 [- (if (setq ss (ssget "_I"))
: `9 S: l, I* ~! r2 W) n4 ~ - (command "_.draworder" option); j& O/ x$ W2 @3 n6 F
- (if (setq ss (ssget))2 i7 O1 I: B) o6 D9 M7 @# r
- (command "_.draworder" ss "" option), n# C: ^3 D* e: _
- )& m9 P6 c. s7 [- a6 d& R# h
- )& S9 G3 W1 Z5 |1 Z7 W! d
- (ai_sysvar NIL)/ D5 k( ~0 J4 E7 F, _" b, V
- (setq *error* m:err m:err nil)
E/ B6 O2 G: w2 k2 Y: a: @- B7 x - + C1 u# T9 Z5 p9 M
- (princ)
- T" C: v( A8 z, d3 p - )
# n C; t, ?5 V1 u9 d+ n0 N - 5 H7 \* i9 h# J& N0 [
- ;;; Command version of ai_draworder to be called from the CUI; h% W5 {- L, Z. X& J6 R! ~1 T
- ;;; so it gets properly recorded by the Action Recorder
) ~6 H) X9 p3 S4 C8 s: W - ;;;: {1 p, q5 w: V4 W$ }* W* u' c
- (defun c:ai_draworder ()
2 C$ M- _' C0 P! u8 |' ?! } - (initget "Above Under Front Back")
" X, w# |; {# Y2 z' K$ R. m - (ai_draworder (strcat "_" (getkword)))
" Z# r& g% r% r6 O3 t* U& v& |% y - (princ)
4 W% y w6 ~' B& P" q4 q( J. l - )( C1 N5 z' D( v9 \/ [; W
9 T( u; C: `& s6 u$ ^! c- (defun c:vlisp ()7 Q# p2 d, j- K4 {/ x$ P, b
- (if (/= nil c:vlide) (c:vlide)): |2 @# O6 k2 ~* G0 z
- )$ a6 o. w! \* _0 A8 f U2 E
- ' h+ p) g* e6 y l3 C8 B
- (princ "loaded.")! M! J3 I- z$ ]
- $ k: d4 i1 }3 q) Z; k9 t: B5 L' H' x
- ;; Silent load.$ V, \- [6 H' ~( }
- (princ)) D- _& Z( h, |7 L/ e4 V" R1 {
- ; \* } e$ m5 [. Y. H {, a
- ;;;----------------------------------------------------------------------------
" |9 o7 i8 a/ [ - ;;;0 W" u W) V' E% C
- ;;; DDCHPROP.LSP Version 0.5
! k) Z; |( P) y; J - ;;;; P# d1 j1 x- X) ]3 C! `
- ;;; Copyright (C) 1991-1993 by Autodesk, Inc.
: w$ J) m9 K: x! b4 V7 _& g4 V, V - ;;;; f. v4 T: R1 @
- ;;; Permission to use, copy, modify, and distribute this software( V/ v. | a. f2 u4 l
- ;;; for any purpose and without fee is hereby granted, provided F. C1 e+ Q# d3 x0 ]1 A" {9 v
- ;;; that the above copyright notice appears in all copies and that
( j& h, ]9 ]3 e# }- A* q8 m - ;;; both that copyright notice and this permission notice appear in6 y$ B6 y( o% ^' G9 E1 K
- ;;; all supporting documentation.& x- N: L' v* v
- ;;;* b/ @6 D; X0 l. D
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED5 k2 G, u% B. Q; J
- ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR8 y+ G+ e; ~7 B, g" \2 V$ v
- ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.
) k' e. X- C& M$ f& M - ;;;
2 p4 _4 \0 y, }/ ~2 W - ;;; 2 February 1992& F& k9 @' @8 }$ n8 D: X" w
- ;;; & P. o( z& ?8 e
- ;;;----------------------------------------------------------------------------1 V; H F9 r# {6 B
- ;;; DESCRIPTION3 |* S+ J( v0 X4 p4 D0 s
- ;;;----------------------------------------------------------------------------
, B5 J: j8 m) a3 B - ;;; C:DDCHPROP is a dialogue interface for the CHPROP command.
: Z6 `( H+ `& |/ P - ;;;! J; W# R% k6 a S% g
- ;;; The command looks similar to DDEMODES. The main dialogue has an image
! i u7 S4 X% G- k - ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness). " ^ Z* H6 d" J& i* `
- ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box.
P9 D: v9 h7 p& _; r - ;;; The dialogues are all defined in the DDCHPROP.DCL file.
& i: R5 ^$ _# Z- J0 W( r' e# ]: c: J: H - ;;;* @% l C0 A8 x
- ;;;
0 n+ ~8 j" ?; ^2 t! \- B, I. v - ;;;----------------------------------------------------------------------------
t2 z9 l( L- f7 B K. `( K - ;;;----------------------------------------------------------------------------1 v) t4 {/ c4 |) `! p2 Z3 T6 \3 S
- ;;; Prefixes in command and keyword strings: / s2 R; j% F: M# Y' X" {
- ;;; "." specifies the built-in AutoCAD command in case it has been
( m$ B+ ^2 b( A% O# f - ;;; redefined./ D% H4 i! f9 ?, u. F
- ;;; "_" denotes an AutoCAD command or keyword in the native language' P& B. J5 G3 x% }8 c1 q
- ;;; version, English.4 Z8 T5 L1 c5 ]3 S ]$ `3 i
- ;;;----------------------------------------------------------------------------3 N" N. `) k9 t2 Q
- ;;;) c; q1 C" A- o( \ s" s4 V6 [
- ;;;# h h9 Z' F4 U5 }8 d) a
- ;;; ===========================================================================
/ }2 R! X: H2 Q3 Z: U' X - ;;; ===================== load-time error checking ============================; ~5 T: c% l# N1 c: G; c
- ;;;
- q& z7 ?0 h, m - ( n, s! `( L7 i! ]2 e
- (defun ai_abort (app msg)
" f! l9 s. H! G; G" h - (defun *error* (s)3 A/ U5 ^ L3 l
- (if old_error (setq *error* old_error)). s9 I% m! r+ f0 f6 t* A
- (princ)
9 ?6 Q4 Y2 }! w; g. ^ - )8 v0 V* Z+ l( l5 r+ J+ d- s
- (if msg$ L' A. ~: @9 b' b, ]
- (alert (strcat " Application error: "' s0 x3 g; u6 I) k! P0 N
- app
, m) s1 P7 S$ A/ ?) C- H - " \n\n "6 z) ?2 `6 M2 {9 H+ f/ L7 d
- msg
9 a1 I: B9 Y+ }1 M1 j0 h - " \n"/ L1 R9 O7 R( ]( o5 u# R
- )5 l& c7 T" t0 u [7 ^/ M
- )
0 S2 c& ?" `3 \1 U - )- S8 [" o" b; u- v, }
- (exit)
2 m) R0 [1 p% N( L1 t7 k - )7 q4 o1 U4 ]+ d" f; a' T
- / b2 }6 V7 [4 ]$ O- D: f' ~' ]
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
2 d/ a9 {) m, [ - ;;; and then try to load it.2 I0 M+ I8 d& S5 B
- ;;;
5 Y/ ?/ v! P; w8 M. K$ E, g - ;;; If it can't be found or it can't be loaded, then abort the
) p7 S0 I8 L* N- `$ `2 { - ;;; loading of this file immediately, preserving the (autoload)2 E9 E k! f" A( L. \
- ;;; stub function.
2 W+ o) E" j* B
* x, D7 R+ s, v" A4 Z. d* q3 ?) q- (cond
8 K g# n& G0 ] Q) F) Q - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
0 t9 B3 X" u+ a. e1 A* r3 `
& O' F8 Q4 L r b8 D- ( (not (findfile "ai_utils.lsp")) ; find it
/ i! m' m$ H! J" p6 L9 W! M. m - (ai_abort "DDCHPROP"
3 H3 ?: }( R. k! L% a- v8 N# o, C6 | - (strcat "Can't locate file AI_UTILS.LSP."& c& H* a2 ?5 m# E) L# }
- "\n Check support directory.")))
: V" g0 E. d' P4 c7 x - ! p c6 V5 }+ U+ @/ b% ]0 e+ A
- ( (eq "failed" (load "ai_utils" "failed")) ; load it# I$ O1 K7 e+ a- [# J9 T
- (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))
2 V1 k9 F4 r% V9 D0 h7 N - )
4 w1 S" ]' b( h6 w6 ~
7 y5 }4 h# v) }! Z# j- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
+ @- z/ F$ w0 [- z1 V2 [ - (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses
* O+ ^) r7 w2 P& B6 u& Y2 U - ) ; ai_abort's alert box dialog.
R3 J5 G. U5 y; i# |! b
# m+ Z6 Y1 V4 B/ q+ n5 w- ;;; ==================== end load-time operations ===========================
, R. ^. o4 {, [8 w9 b - % B0 ?- ~; W+ v/ \1 s1 F l/ E
- ;;; Initialize program subroutines and variables.
0 g5 ~$ }9 n+ i! ^$ |
) Z- @- A5 L7 h/ e* `. _ K1 t- (defun ddchprop_init ()
1 s9 {4 D- D3 ?) b' C
8 |" v& U4 V- J5 j& H5 b- ;;9 d) |+ l) n/ o
- ;; Define buttons and set values in CHPROP dialogue box
/ }" W: K- G* y0 p, v - ;;
' _* a: ?7 c2 L; V" D% }! ? - (defun call_chp ()1 m0 _; E/ u! c; ~, a7 W0 ~1 ?
- (if (not (new_dialog "ch_prop" dcl_id)) (exit))! a+ ?, f4 v# C4 }
- (set_tile "error" "")
+ ]& v) x- I$ c+ k! } - ;; Set initial dialogue tile values
% c' j' Z l9 X# w( i( b - (set_col_tile)
1 f! n# Z4 V/ |: A0 P* o1 j - (if (= lay-idx nil)! t1 C+ R' S. p$ p
- (set_tile "t_layer" "Varies")6 _3 T/ R' \! }% A4 w- E
- (set_tile "t_layer" (nth lay-idx laynmlst))$ u6 x m$ y2 u. r ^2 v0 m0 m
- )
\" m2 H( q/ Q5 [: w' Q" m# i - (cond " z! E8 W! Z6 _
- ((= lt-idx nil)% x) b7 Z, H- ]
- (set_tile "t_ltype" "Varies")' o/ {2 K Q- B
- )
; C5 x* u$ g( P9 ]8 [0 N/ I' r - ((= lt-idx 0) ; set tile "By layer & layer linetype"
S: x2 e' p8 x, b5 _# r - (set_tile "t_ltype" (bylayer_lt)); g, b+ N( z. E
- )8 T# R2 E& T% r: m
- (T 9 Z, z6 ?' Z& V2 _! b
- (set_tile "t_ltype" (nth lt-idx ltnmlst)). y7 ]4 R; |6 Q) O6 q+ C$ {
- )( W6 q5 c: N7 i _4 p
- )
" G7 X- R9 }) e& o - (if (or (= ethickness nil) (= ethickness "Varies"))* S7 c. {" N# Z, p3 k) m4 |
- (set_tile "eb_thickness" "Varies")+ R' P6 P; a( [. ]+ D
- (set_tile "eb_thickness" (rtos ethickness))
3 U/ W* [: _4 e9 E- l* ~$ s - ); f8 K# Z/ S$ n+ B9 U
- ;; Define action for tiles
+ |0 b, J; c2 q4 y$ s2 @2 q - (action_tile "b_color" "(setq ecolor (getcolor))")8 t$ ^9 H9 \$ q3 n
- (action_tile "show_image" "(setq ecolor (getcolor))"), b- X- [9 R/ _" M5 D& K
- (action_tile "b_name" "(setq elayer (getlayer))")
1 L ~+ @9 @3 s# ~5 E - (action_tile "b_line" "(setq eltype (getltype))")
5 Q+ B3 A$ r0 n% q: i - (action_tile "eb_thickness" "(getthickness $value)")
" L2 K# k0 k. y$ |! [ - (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")
" I8 j* b" R3 J- L! m1 m - (action_tile "accept" "(test-ok)")
" U5 @2 a) n! A6 d( _ - (if (= (start_dialog) 1)/ t( [% L$ ] a, j q
- (progn
0 N: ^/ [) g' H9 _' y# Y/ V7 l( T$ Q - (command "_.chprop" ss "")
7 _, E9 ~( M" H - (if ecolor% I1 y; f( j8 x( L2 d
- (progn
$ a# D0 q& J8 }3 \- O& p$ } - (if (= 0 ecolor ) (setq ecolor "BYBLOCK"))1 k, \; j5 V z) c' X- D1 R
- (if (= 256 ecolor ) (setq ecolor "BYLAYER"))
. w' {1 c* B! n - (command "_c" ecolor)( A+ }+ e" A# J3 l' D. [+ b
- )& \( X* P4 F6 V7 Y3 O* ]
- )8 Z! k/ F' o R: g2 E
- (if (and (/= eltype "Varies") lt-idx)3 V5 V7 R, Y( i
- (command "_lt" eltype)9 L2 C9 I" I% ^' |. [1 P
- )
9 {! u' `$ `+ `8 r - (if (and (/= elayer "Varies") lay-idx)3 u/ m" t; b* W7 ~0 t% A
- (command "_la" elayer)
" S7 ~* p% q3 M! q+ ^' c# V) D - )
0 e1 A$ N$ `" s4 Y: g2 `: T - (if (and (/= ethickness "Varies") ethickness)
, A; U, q/ h, @7 Q - (command "_t" ethickness). ]1 }! P1 U( B
- )6 b9 L. P& j4 c/ j5 L1 h4 _
- (command "")( U& y/ x. o- M ?5 ]& F) z
- )* ~" Q: ]; m5 a* T9 c
- (princ "\nProperties unchanged")
. K6 F# }7 U3 K& e6 x) W* A - )) T! G7 k7 ]; D) g( n$ K* b% f
- (princ)
4 N' u9 M4 T$ T5 I - )
( S+ Q. Q8 p0 Y( o! {% j1 ]; n3 S* | - ;;6 H6 ~2 {6 |8 N5 k- p
- ;; Function to set the Color text tile and swab to the current color value.' s/ G3 o% j9 Z, P
- ;;7 W: O% V! [7 L
- (defun set_col_tile()
; o4 F' X! j+ h - (cond 6 o0 R$ m7 q: o2 |) ?9 H, E( S
- ((= ecolor nil)7 S4 e5 y: |; l' G5 {' j8 H1 |
- (set_tile "t_color" "Varies")
/ O! _! |' N5 ~8 d) P7 K; m3 Y - (col_tile "show_image" 0 nil)3 _5 i3 Y0 W+ ~( N
- )
' G* B* m9 L$ ^" { - ((= ecolor 0); h+ T. Y/ \# Z/ }# W' z) _5 Y
- (set_tile "t_color" "BYBLOCK")
3 b* k, O) U' r. }0 q) S - (col_tile "show_image" 0 nil)7 D$ G- z9 z! `
- )
5 }6 t+ K& Q% I5 m" O5 a* x: b - ((= ecolor 1)
: F0 t$ i6 `6 K# v4 [7 I - (set_tile "t_color" "1 red")
* H, D7 M( x( Z* x* f - (col_tile "show_image" 1 nil); ]! _4 `& P5 {# o5 j, j
- )
9 ~! }% r+ k6 t% N - ((= ecolor 2)! o7 ^( c8 C# L$ v) T* G6 G: \
- (set_tile "t_color" "2 yellow")( R+ W8 R* j; q# r" q
- (col_tile "show_image" 2 nil)
0 {( V+ a! j5 A, m - )
3 O" ]2 P7 A8 F8 N' \2 Z: l - ((= ecolor 3)
# X8 W5 P7 i) b$ A, }4 p3 {. S9 G: h4 Y - (set_tile "t_color" "3 green"): `- `1 ^4 ~( I0 z. Z
- (col_tile "show_image" 3 nil): E, B1 ]3 j7 `3 S4 E! v" j- Y7 R
- )
! X0 e# I5 e, ]( a0 V& j9 l5 K& w4 b2 S - ((= ecolor 4)* G8 p5 ^9 [% D& y
- (set_tile "t_color" "4 cyan")
6 Y/ ?" `& _& L6 A$ j - (col_tile "show_image" 4 nil)
/ V; u/ M8 ^. t- q+ ^ - )) {5 j% ~8 u6 v8 n" ?& o
- ((= ecolor 5)$ g6 |3 ~" ]9 D2 d- u4 O
- (set_tile "t_color" "5 blue")0 ^. R& n' d& |# F ?! O, r
- (col_tile "show_image" 5 nil)
) _' d q( n! U% m6 u - )
' S) G; n' V0 Z, ~# J7 R! I - ((= ecolor 6)+ N5 g1 q; V7 @! {8 u
- (set_tile "t_color" "6 magenta")
s" z( R- D6 A$ }& U6 K - (col_tile "show_image" 6 nil)
, f. X/ ]# X# {1 ` - )
$ g/ E+ V# A7 f4 m2 o - ((= ecolor 7)2 d+ T- [ i3 V$ v) B
- (set_tile "t_color" "7 white") e K9 g$ k: w* I* P/ N
- (col_tile "show_image" 7 nil)3 _! |8 I2 e. \
- )
( [0 B3 v4 L0 |; l7 V3 ~ - ;; If the color is "BYLAYER", then set the tile to
+ L! Z. C, @; |5 ^3 o) C2 C( p2 [) e - ;; show it's set By layer, but also indicate the
2 [/ A6 t8 `: h2 K7 U% e - ;; color of the layer - i.e. By layer (red)
7 g3 ?7 x, U, c - ((= ecolor 256)
6 r5 E; }9 S) c a: U9 _2 {6 F8 R' I - (set_tile "t_color" (bylayer_col))
* Q4 |; r* f9 D8 A0 X, ]2 S - (col_tile "show_image" cn nil)# i, P9 h2 @8 O
- )7 e+ N' P+ P- C( |8 A
- (T ) o) f- U h, |0 A. S9 s' Q
- (set_tile "t_color" (itoa ecolor))
1 ~9 d# L8 z& f8 i" t: D - (col_tile "show_image" ecolor nil)
4 J1 }6 s$ a2 }/ S, E! Y - ) U6 f, n4 L4 Q2 @% i0 n% l, z
- )6 S- D$ D! m$ T( P' `5 Q
- )% y+ r' q; f, g! \2 C
- ;;* `$ ]9 |+ c* X
- ;; Function to put up the standard color dialogue.& R4 T3 l: ]9 y5 f U( m
- ;;
6 c/ q) h& X2 H" b) c - (defun getcolor(/ col_def lay_clr temp_color)
' _# L8 o& L$ W( f! m; x - ;; col_def is the default color used when rq_color is called. If ecolor
! @* \4 u7 X, Z/ Q - ;; is nil (varies) then set it to 1, else use the value of ecolor.
0 A* J. N9 E) _0 [ a - (if ecolor
4 @; H. h9 B* ~/ q5 ^( C. I - (setq col_def ecolor)% s* V( V0 k* x4 |7 |; X. B
- (setq col_def 1); t' D' r0 s( R8 \; M
- )# D5 q7 T6 M, C8 q/ w' R
-
2 Z; L- L* N" \. M6 ~/ S" u: O1 [: X - ;; If we're working with a single layer, get its color
) I/ S) |% B- @ - ;; for use in the color swatch if the user selects color BYLAYER." a7 `. J, e5 e
- (if (/= elayer "Varies")
9 L) u% o# g7 {5 a - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer)))). a E( v" S# p, S
- (setq lay_clr 0)
' M+ d3 n3 k$ Q3 T Q) z, M1 E, j - )' H! p; {9 r) o: G+ W
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr))); \/ I2 a9 P: c) _# S
- (progn& ^; Z/ y, o1 w0 g# V W+ I: |
- (setq ecolor temp_color)5 O) p2 A: I+ V' u: u& z
- (set_col_tile)8 {/ r9 a* g4 m$ i
- ecolor
3 F. X& \$ m' J- x - )
) E, E3 D3 [' ^1 i1 c c2 g- t+ S - ecolor7 o2 N! Q7 e C r# c/ \3 f; p, s" [
- )
6 Y, E. N$ X1 x2 Y& d - )& d* y' \: G. d9 j' O
- ;;
* k& E) W( h# l# q3 j L - ;; This function pops a dialogue box consisting of a list box, image tile, : P& ]# B0 ]) ?3 j) |3 }
- ;; and edit box to allow the user to select or type a linetype. It returns
8 g" T, o% O" b4 [; s F - ;; the linetype selected.& q' q5 Z& \( k8 s! e* K
- ;;/ A% Y M8 G: N }; O9 [: C# R( a
- (defun getltype (/ old-idx ltname)
+ [2 ?& i* G+ W - ;; Initialize a dialogue from dialogue file1 f$ F! r! L% o5 I# x. _
- (if (not (new_dialog "setltype" dcl_id)) (exit))
1 {) k9 p4 P, `! a. t - (start_list "list_lt")8 m3 D9 a0 a' e
- (mapcar 'add_list ltnmlst) ; initialize list box
U* X9 a+ v5 ]( [% g - (end_list)
' R. G5 n" Q8 T7 { - (setq old-idx lt-idx)" T i6 D% h; r1 F! m) g
- ;; Show initial ltype in image tile, list box, and edit box( i8 @& M, X* `+ _) ]& P
- (if (/= lt-idx nil)0 w* u7 }# I- B/ M/ O2 ~6 R
- (ltlist_act (itoa lt-idx))
& ?. }6 w* s) |, b - (progn
3 g6 d L1 a/ u5 W6 Y8 W% S - (set_tile "edit_lt" "Varies")
. }' @9 L/ T0 @3 k0 U - (col_tile "show_image" 0 nil)
8 `2 ~3 V2 x! | - )
5 \; ]/ c2 L1 L0 [' w - )7 a2 |, z# @. W: i' ^% N
- (action_tile "list_lt" "(ltlist_act $value)")* }! u% L) H: b, _ q3 Y( v: I
- (action_tile "edit_lt" "(ltedit_act $value)"). z" J! ?& R- |& ?# s
- (action_tile "accept" "(test-ok)")% b; l! T2 z" W8 V3 t
- (action_tile "cancel" "(reset-lt)")
8 ?0 @8 ^( u% [1 l - (if (= (start_dialog) 1) ; User pressed OK/ c2 W) D7 i$ D3 } {
- (cond ' k- k! b9 w' o& b" a" M$ y0 J
- ((= lt-idx nil)
2 g$ e+ p( Y5 V" u* g% d& m - (set_tile "t_ltype" "Varies")
9 @2 g. p1 X6 Z - "Varies"
! k" M* b% n1 p( V - )
2 Z+ P6 ^2 M. k0 H - ((= lt-idx 0)
! ]0 k! B/ Y* D; k! ?2 ^ - (set_tile "t_ltype" (bylayer_lt))+ b8 T. u1 i+ |/ l
- "BYLAYER"
: R) r. ]) o# U' V @, H5 V - )4 v# b& ?5 x2 d" y" F, l1 k4 {
- ((= lt-idx 1)
/ _/ ]( n; \2 L - (set_tile "t_ltype" "BYBLOCK")
+ w- E0 [# k8 R9 X' t# i - "BYBLOCK"
: v+ W; Y# B, q3 g( g/ B. F! [. | - )1 h9 n- r4 ~7 j) y6 J
- (T ' B( c) x" T# `7 U% ]+ V
- (set_tile "t_ltype" ltname)
0 H/ c5 L+ c3 w1 C- U - ltname4 G3 O) o0 i) G/ m, S3 h9 |! ?
- ), k& _0 a8 c5 i7 A/ ]
- )+ k6 @. ^6 T; r/ U) Y" ?7 y/ @. ]
- eltype0 B7 @1 @! a/ n3 L
- )
& b# G$ p4 E' B0 L$ U7 h6 `& t - )
4 m/ i4 a" @. m - ;;
& [ q0 g8 O: y2 `+ e - ;; Edit box entries end up here$ ~1 H9 s' L* b1 f/ B' p6 ^
- ;;7 N, U" g' y, S% i1 q- o4 M
- (defun ltedit_act (ltvalue)5 m% M( K6 }: D2 B- _' m6 i+ T3 `6 K
- ;; If linetype name,is valid, then clear error string,
3 e5 ]; ?- `0 o, m - ;; call ltlist_act function, and change focus to list box.
6 r [8 R4 R3 v5 v# o - ;; Else print error message.
+ P% v. k9 W, ?) P+ F) r* s - (setq ltvalue (strcase ltvalue))9 b& n1 O7 I9 A' f
- (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))" Y- z6 M1 T4 M
- (setq ltvalue "BYLAYER")
: `- K7 C$ t) D {; \% s" s - )! l+ C: e( a/ E) `0 G+ v
- (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))
& N( Y" X- @) w - (setq ltvalue "BYBLOCK")
- P" B( X2 e* S% m3 v. F - )' t0 H7 d" {1 J+ w* F- @7 K
- (if (setq lt-idx (getindex ltvalue ltnmlst))
2 y0 N1 R p& l6 h8 e - (progn2 D6 Z1 \" E5 [% D8 F0 X
- (set_tile "error" "")
. s6 N9 e. ~, k# ]& P. j - (ltlist_act (itoa lt-idx))
$ u7 Y7 r. K, q6 o3 j - (mode_tile "list_lt" 2)1 y! [! K3 ~) r; W5 L
- )
( a. P5 P+ J* U9 K( q; W0 j - (progn; M4 U3 Q( x0 N# s: u" Y& W1 |5 B. E
- (if (/= ltvalue "VARIES")
: a) E4 a. ~! i" j3 x9 K# `% S% F - (set_tile "error" "Invalid linetype.")5 \( \+ [2 g2 `, G! w
- )
, |" {# \. P1 H/ T+ ?0 @% x - (setq lt-idx old-idx)4 {) S0 x/ D( M8 i5 v, N4 i7 o3 Q
- ) 4 B* v) m) s- U1 _5 x1 ~- I
- )
: a% ]( u) z1 _8 ~/ _% e0 r& r - ); T! e% @: \; n# D+ j/ ]
- ;;
1 q4 D; X5 q! x# G5 w - ;; List selections end up here5 F! x2 M% E' z" B) c2 Z5 Z
- ;;
( H% m$ J, N) s4 Z8 W- y/ J - (defun ltlist_act (index / dashdata); \* g) L8 `, F2 ^$ ^
- ;; Update the list box, edit box, and color tile9 F( {' W+ q4 ^. D) m7 A" ]
- (set_tile "error" "")
+ D" e7 d( Z' l, s" c) E) S - (setq lt-idx (atoi index))0 R$ G& w+ z3 a- r
- (setq ltname (nth lt-idx ltnmlst))- v' M: ^! ?# Y
- (setq dashdata (nth lt-idx mdashlist))* P- K1 v9 m: K% M3 T6 r
- (col_tile "show_image" 0 dashdata)
* Y+ i3 b8 _8 t; S6 U - (set_tile "list_lt" (itoa lt-idx))
3 t+ x! o4 }4 `7 l6 T/ G8 [5 D+ v - (set_tile "edit_lt" ltname)
' g+ g; y/ L5 Q% U - )- g8 q8 _0 v9 @* f5 m7 U* ?1 h
- ;;: u0 ]3 \/ J0 V9 G% b
- ;; Reset to original linetype when cancel it selected0 K9 i% C$ T, b/ w# G5 O, Y
- ;;1 e& h& W; |8 F x/ x
- (defun reset-lt (), T8 S* d$ R, P& f/ B$ U, t6 v
- (setq lt-idx old-idx)
0 x% c1 Y+ X+ E- q: K - (done_dialog 0)! S& O: D9 [$ s
- )3 N- O, \# k; `7 A8 [# `6 ?
- ;;) L6 {* W# M( o$ k% ~& s3 R/ [
- ;; This function pops a dialogue box consisting of a list box and edit box to & d' G% ]8 K3 E: D& v
- ;; allow the user to select or type a layer name. It returns the layer name
/ K: M1 O4 n" _+ V& C7 A$ t - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the ( ~. R; W; u3 E* f" T8 l$ Y
- ;; drawing.
3 t) v/ Q$ D [, l0 ]1 ? - ;;5 o Q7 T4 e* {$ k
- (defun getlayer (/ old-idx layname on off frozth linetype colname)
$ X) z0 _/ [, m4 x+ k# Z - ;; Load a dialogue from dialogue file% V7 G& n6 r7 L6 m
- (if (not (new_dialog "setlayer" dcl_id)) (exit))
- a4 e/ W2 g# y& C" A2 B - (start_list "list_lay")# E. I( e# g3 N* j6 ~
- (mapcar 'add_list longlist) ; initialize list box
7 Q' k. i; s6 u0 D. S* C5 m3 B - (end_list)
" _2 E# ~' B7 `, S5 c) w( ] - ;; Display current layer, show initial layer name in edit
]9 g( e# p B9 e7 F - ;; box, and highlight list box.
3 x& _* j" d7 _ - (setq old-idx lay-idx)
. B' U) \. L; a' I( u7 E7 Z - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
5 o; g8 [% M: x1 _! c, ^# }$ ^ - (set_tile "cur_layer" (getvar "clayer"))( F+ v$ B* j* C, [ I
- (action_tile "list_lay" "(laylist_act $value)")0 [' S4 Y$ t" h( F, Q6 T4 v# Z
- (action_tile "edit_lay" "(layedit_act $value)")1 Z) l; {9 |' x, A# u9 O" K I
- (action_tile "accept" "(test-ok)")
{8 J6 ^0 k0 l/ R+ z0 c, u) Y& u - (action_tile "cancel" "(reset-lay)")
( y" @( B, ]2 u; k. P* V - (if (= (start_dialog) 1) ; User pressed OK
! N* X( W% g0 X4 d% ?6 e+ `- y: ]% m - (progn
$ U. ^4 `$ F! Y0 U8 n. S3 R - (if (= lay-idx nil) (setq layname "Varies"))
: p. q7 e5 d, p0 e4 g8 ^1 g - (set_tile "t_layer" layname)9 H5 Q" m' x" v/ A1 h! \
- ; If layer or ltype equals bylayer reset their tiles
! y- |/ u+ d+ H4 W/ u# O - (if (= lt-idx 0)- O1 W( [/ b3 H
- (set_tile "t_ltype" (bylayer_lt)), c- U; A0 D. i j4 {9 [
- )
0 X4 h r( v6 O) Z6 m - (if (= ecolor 256)
- z! l6 F ~. V4 _- f% ^- [: D! d# s - (progn
/ y- Q/ j5 l. Y - (set_tile "t_color" (bylayer_col))$ i5 @" ]" k* n7 k" _. }" U! l$ R: z
- (col_tile "show_image" cn nil)
$ x/ ]! W( [- N - )
: {& R2 q: r: _* E8 K' K* m - )( N* L! U e( n, E
- layname
: g& d3 w) L( n - )$ c- S2 A$ h# s( N9 b7 H% `
- elayer3 a& Y, u( E% q' l
- )
G6 m0 @/ c# P+ t j8 k- ] - )% K- _; O. @- i) e% f2 a& v! }
- ;;
! C8 r8 u+ g6 `/ ?" I - ;; Edit box selections end up here
; t0 Z; }4 w3 L4 @ - ;;0 h3 y: l5 J& h2 P! s
- (defun layedit_act (layvalue)" h* A, h. m7 e( X' w
- ;; Convert layer entry to upper case. If layer name is
$ B! `* u% O1 y* ?/ s, x - ;; valid, clear error string, call (laylist_act) function,
1 j R+ _! a2 S0 q) {" W5 C - ;; and change focus to list box. Else print error message.
- s9 d$ t& K6 v8 [9 M - (setq layvalue (strcase layvalue))
- o# u4 p4 V0 F) N* T+ Z - (if (setq lay-idx (getindex layvalue laynmlst))/ e- u- H8 b( B% E
- (progn+ X% ~0 [( B; _+ X! O" ~
- (set_tile "error" ""): A% _5 a# _/ z( j1 `* B5 @2 r; A( O
- (laylist_act (itoa lay-idx))/ G0 E% r# \0 S6 L1 }& E! j
- )* r! X. g8 C4 q8 L* M
- (progn q* V* t4 u/ h, F4 N
- (set_tile "error" "Invalid layer name.")) Y8 o2 Z' ~1 Z& O) i0 N
- (setq lay-idx old-idx)
1 `) E3 c2 J* V Q; u& h6 T5 k: V - )
/ h4 F4 n- b- f2 V- w - )
. N' a* u: g2 k [ v- O) D: P. z. T - )
. C. p6 u) [) h" b) t - ;;9 Y% \& M% p) G5 P, ^3 b" e3 W
- ;; List entry selections end up here
: U9 C4 @2 J" n- g! T) g# A - ;;
; E# A2 R- Q9 x - (defun laylist_act (index / layinfo color dashdata) J! z$ h" T! L5 j' Z3 O5 m
- ;; Update the list box, edit box, and color tile# M c, B( `/ |8 g+ u
- (set_tile "error" ""): O: @- O, x* i' N5 S
- (setq lay-idx (atoi index))
: K/ P( I9 o' p2 q - (setq layname (nth lay-idx laynmlst))
( k4 z- x, \4 J, V' a$ S - (setq layinfo (tblsearch "layer" layname))
) W: D+ x& N; d+ p! m% j - (if (= (logand (cdr (assoc 70 layinfo)) 4) 4)
8 ]9 y# [* p2 `2 l: I - (set_tile "error" "Cannot change entity to locked layer.")2 l9 m) w' b3 O7 r8 D( v5 b6 m, s4 o
- (progn( }4 {4 f7 E A' R! j8 v' N9 p
- (setq color (cdr (assoc 62 layinfo))). n& |& E) a! t% }) F
- (setq color (abs color))
/ S3 g1 V' D! p) T) P$ W' n - (setq colname (colorname color))
- m6 g; I) _( G) }2 ^( D - (set_tile "list_lay" (itoa lay-idx))
) o0 t- J3 N; `+ E - (set_tile "edit_lay" layname)
8 H/ c4 q& h- O6 F" W* u - (mode_tile "list_lay" 2); ~2 U P! s8 A5 _# E
- )
3 ^2 n* a) B: \- u5 F6 s - )
) {, B; l& z- z9 @) O - )
6 I' Y0 F( n& H. j3 ? d - ;;' S5 t- E" ?9 l2 ?3 S& Y# b
- ;; Reset to original layer when cancel is selected" o$ p- i" F8 L! l& r# I/ g
- ;;+ d! D; b; Q: |
- (defun reset-lay ()# g9 X: g3 K% a9 n) | q
- (setq lay-idx old-idx)& f8 w2 N0 L r( x- q( ^
- (done_dialog 0)
6 T, k, [- ?9 U9 A - )
0 E1 n3 M0 H4 T6 B% K6 Z3 {2 g1 ? - ;;( t2 M! l8 _1 L6 }: ]
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a - R" |7 Q6 L* g4 a) r
- ;; string can't be converted to a real, this routine checks if the first
p6 d# n+ ^! y" R" i5 F - ;; character is "0". It also checks to see if the value equals "Varies".
; q/ K' I' N6 N: Z- w - ;; h" b+ p: {/ H( i1 o$ ~/ Q
- (defun getthickness (value)/ Q* h$ I+ {8 E+ r* m1 ~
- (setq value (strcase value))
k7 y4 i: Y# u# j2 J - (if (or (= value "VARIES")9 O6 W1 [8 W/ o( S
- (distof value)/ t/ _: M* f" ]- D5 N) V
- )) |8 F+ M' Y' C! s8 I
- (progn
! J. }" W# w( V W; @ - (set_tile "error" "")! L5 W R7 a4 {: X V
- (if (= value "VARIES")
]" ~ u: {& w- w) n; Q1 t - (progn1 H& y2 p% c$ k& \: @
- (set_tile "eb_thickness" "Varies")
9 h4 \; L* Q: ?; C - (setq ethickness nil)
1 i/ @3 g+ s3 J, h- b7 r - )7 h+ ^4 m2 @7 H& ]0 |* _) {! H
- (progn
. @9 r( J7 a% K7 G* Y8 Z- \ - (setq ethickness (distof value))" C( W" U% M& y, l, x2 I* s
- (set_tile "eb_thickness" (rtos ethickness))
9 @+ w$ A# w: G' Z8 f - ethickness
4 E) }6 p" A4 R* q; s# w" ?) C - )) V% X& L9 q& e6 ~
- )
$ V" f* H* D3 m7 L - )0 I5 l) ?5 i! n0 Y6 }
- (progn$ c, {: [ W: m6 y Q
- (set_tile "error" "Invalid thickness.")
% q/ K' E6 X' A* Z& U - nil
4 l6 o! |- B1 e/ E( e1 Z# g - )( [+ Q" ~% Z. Y; G) Q! m
- )! b3 P1 Z% L( ]- d
- )+ x; X2 o& n! b+ `
- ;;
) X' O$ j1 X5 Z - ;; This function make a list called laynmlst which consists of all the layer
q- ~0 q) w- ^, }( y* X7 c2 L' K: [1 X, g - ;; names in the drawing. It also creates a list called longlist which ) A1 r) ]; D; d! t R
- ;; consists of strings which contain the layer name, color, linetype, etc.
- f: `& _: M/ z( Q4 D8 J3 S+ Z4 j - ;; Longlist is later mapped into the layer listbox. Both are ordered the
- R+ D" `( n) ?) W9 i3 C q1 G - ;; same.
2 k. i4 l' D D/ D1 N. P: o5 ?3 e7 j: W - ;;& g& G% P T! ~( N3 D+ F3 L; a, O- P
- (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname $ w" Z4 p1 J! S8 P9 C& I) l, C
- xdlist vpldata sortlist name templist bit-70$ S; T/ M& ]! l* r6 s2 i4 }
- )) e4 U8 m, f+ w) X$ L8 d
- (if (= (setq tilemode (getvar "tilemode")) 0)
. I- c, ~* q t9 C" _" \ ~* I, X+ J - (progn% K& x7 ~5 K1 j
- (setq ss (ssget "x" (list (cons 0 "VIEWPORT") C7 i1 K; B( i! z4 Q( v
- (cons 69 (getvar "CVPORT"))
8 I; V! v& _( e. d' D, k- Z - )
; F$ H3 `8 n' h0 F+ a# [ - )7 c4 f& n# V# f4 s! Y, V5 r
- ) 4 M2 w1 z Z! f% X4 ]& X) }
- (setq cvpname (ssname ss 0))
( ]' F0 D3 W: G& _" K) V - (setq xdlist (assoc -3 (entget cvpname '("acad"))))% o- A# A6 V( d- Q4 B
- (setq vpldata (cdadr xdlist))5 z7 s4 u5 t z
- )
8 Q9 P: A8 e! i. P1 \' S3 h4 C- M) b5 w& [ - )
% I' c$ f, }# E- B - (setq sortlist nil)
2 j1 `7 Q: g& m) S - (setq templist (tblnext "LAYER" T))0 e; m z, S K0 h
- (while templist
, B. k2 n5 O& W# m# y) Q' u9 s - (setq name (cdr (assoc 2 templist)))
' v& z; m. C8 e. c: t: R8 d - (setq sortlist (cons name sortlist))7 J% O& r7 G8 a) V
- (setq templist (tblnext "LAYER"))
9 d2 b( I0 S: i S3 i' I1 Q" L9 X6 C - ) 0 [7 u. ^) F0 F( z! z
- (if (>= (getvar "maxsort") (length sortlist)), X( v" y" f. m. {
- (setq sortlist (acad_strlsort sortlist))
6 ~ D' M& k ]( u' x- k - (setq sortlist (reverse sortlist))
, e/ x4 S; G2 W C3 r - )
# D& S) O; A# R, {& L8 \# Y+ R2 }# v7 {2 ^ - (setq laynmlst sortlist)% k4 E# _- R0 X; A8 d0 D+ k
- (setq longlist nil)
! }! t0 u3 v& E5 S$ O3 g - (setq layname (car sortlist))
" Q9 s4 Q' p4 k( H( p7 ~8 X" L. u - (while layname
0 G+ K+ P5 h# K( L, N - (setq laylist (tblsearch "LAYER" layname)): B. _- ~6 w* m' V2 H& S$ ~. _
- (setq color (cdr (assoc 62 laylist)))3 w1 e8 f- S: H
- (if (minusp color)2 l; i+ X' r5 `# P9 R) m$ P I
- (setq onoff ".")" S" D& P5 u- N- s
- (setq onoff "On")
1 ^2 U/ D6 T# b - )! N* d# g0 |# y# q: G9 x, b/ ?
- (setq color (abs color))
! b" Z8 {9 ~! R- m8 h - (setq colname (colorname color))1 {% v( k2 ]5 P) q
- (setq bit-70 (cdr (assoc 70 laylist)))0 {, }; d) K6 d$ d ^
- (if (= (logand bit-70 1) 1)
6 ?/ f' i# k/ F/ A6 l* g - (setq frozth "F" fchk laylist)
, p* f2 c: C, u - (setq frozth ".")
( W! ^/ U" n* v7 {* N - )5 c' ^& q8 L4 r# F" c B
- (if (= (logand bit-70 2) 2)( t1 @& z$ v+ |# t6 i
- (setq vpn "N")
, Q1 L* g6 I) `/ q p- d% S& h - (setq vpn ".")8 ^4 g2 x# z2 C; U
- )8 t8 X2 ~; y5 U5 h0 p
- (if (= (logand bit-70 4) 4)
5 L% {$ C& F W - (setq lock "L")9 ]$ Z' `* {9 F( v5 s
- (setq lock ".")( Y7 _: [0 h1 f/ r4 }5 ? R
- )
, L5 b5 r5 X1 T$ K$ f2 g - (setq linetype (cdr (assoc 6 laylist)))5 {! M5 y& d7 K2 j4 `1 b7 ~; J" k
- (setq layname (substr layname 1 31))' u4 @8 r- d3 _0 H5 [
- (if (= tilemode 0)* r! ]) V+ R! d t; [" Z! {
- (progn0 S8 R; l+ b! a, N2 F7 O
- (if (member (cons 1003 layname) vpldata)" ]7 n7 V( R9 ^) B# y
- (setq vpf "C")- b/ M/ j3 I) `( }- Q, A/ N
- (setq vpf ".")
6 R9 _) b& v! f8 H8 L - )
- p( D+ l# e) I* R - ), s% N* k4 L, v% C6 s& P
- (setq vpf ".")" i( y; p7 o0 M9 ]" u
- )
: S7 ?, H! \6 ?! ^6 M - (setq ltabstr (strcat layname "\t"
1 a+ _0 j' n5 d# ?0 d: ~* F- d* N# U - onoff "\t") g n' S5 @6 t2 N" Y" m3 t0 O
- frozth "\t"! B3 q" g6 T' w
- lock "\t"/ r. h% O- h& Z8 F8 P8 c! |. u9 k
- vpf "\t"
5 r1 L3 \% P, |( S; w" W% D - vpn "\t"
" M9 z% x; j! A4 ` - colname "\t"
( m% V/ v: P$ A C) r. O! z - linetype
( { f- ^5 h( q/ h8 ^) I+ Q: F7 R6 v - )
( o; k- W2 U7 L3 E' ~& d - )3 [; z! d4 G# S1 y9 K
- (setq longlist (append longlist (list ltabstr)))
- S; O4 F2 b/ D+ M, B - (setq sortlist (cdr sortlist))$ b7 R+ }" v. \
- (setq layname (car sortlist))# Z' Q, O; I! x8 z( ?5 ?
- )' j; O0 _9 S4 S/ O
- )$ c8 q$ E+ \- m
- ;;
x( O- J2 X7 n( V l - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of 6 _$ D9 u. W! ]
- ;; linetype names read from the symbol table. Mdashlist is list consisting
6 X. u# R% b! b+ Z - ;; of lists which define the linetype pattern - numbers that indicate dots,
& j8 C3 x; }; Q3 b" w+ M - ;; dashes, and spaces taken from group code 49. The list corresponds to the ( h% J2 \! G$ N! \( r( P
- ;; order of names in ltnmlst.
9 \) ^6 W# C- I( \# l2 S0 W! r - ;;
- R { M; J' ~% j" Q/ X - (defun makeltlists (/ ltlist ltname)
7 H6 a/ ~4 F, X7 B% k2 s* A( x - (setq mdashlist nil)
) a) H x1 x- p- L2 r) S G1 | - (setq ltlist (tblnext "LTYPE" T))$ A; G+ f6 P( h- `4 Y
- (setq ltname (cdr (assoc 2 ltlist)))
7 ^& h" X' P; Q0 s/ o% z/ ? - (setq ltnmlst (list ltname))
4 f4 I5 Y" ^6 C; T - 2 L: b7 O: o) d9 W& m2 M3 l {
- (if (= ltname "CONTINUOUS")
2 x! \: \+ Y5 g - (setq mdashlist (list "CONT"))
! M% C& s" u8 q e* C - (setq mdashlist - Z, b9 u U& f2 G, e" E3 R& S
- (append mdashlist (list (add-mdash ltlist)))
/ }9 ~: V& y3 o4 a- V6 f* U: x% e - )
$ Z' ~% k" u5 `. E3 J% g - )2 Q/ V6 x2 C" }
- (while (setq ltlist (tblnext "LTYPE"))- u( [; T2 f3 p# V4 I. k* o
- (setq ltname (cdr (assoc 2 ltlist))): L8 [' J% N! z% o2 J1 ?2 @
- (setq ltnmlst (append ltnmlst (list ltname)))
' l" N% M' F, c8 A2 [* l - (setq mdashlist
1 m/ A$ @- }& D% |0 o - (append mdashlist (list (add-mdash ltlist)))
: x/ c% k. D0 \- h9 ~6 T. j - )
! m, P6 m0 G1 t6 ]7 s. w - )4 \# L; P0 i2 f( v
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))
4 ~9 {3 P, B9 L, @ - (setq mdashlist (cons nil mdashlist))( m# ^6 z. u6 a; Q
- (setq ltnmlst (cons "BYLAYER" ltnmlst))/ a' W/ R! E' M6 n% e! U
- (setq mdashlist (cons nil mdashlist)). R5 e: o w/ C' y
- )
4 [. X- @# q# `- O' [ - ;;$ z8 X1 L. {: w* q5 F' y/ I5 \! c+ J
- ;; Get all the group code 49 values for a linetype and put them in a list N2 R, H ^7 P& O4 b4 G
- ;; (pen-up, pen-down info)8 _* r' @$ b! ]: O* \6 O
- ;;6 f. W6 M" ? r* T- K' F
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize)# w' |% q6 ^9 v* h8 {
- (setq dashlist nil)
; G2 X4 n ?9 q - (while (setq assoclist (car ltlist1))# e3 X8 n: m7 J H7 `
- (if (= (car assoclist) 49)( ~- \2 _# [' B6 F. `
- (progn* n H% j- n' M3 ?) f
- (setq dashsize (cdr assoclist))
7 {! E5 d7 ?! u# n4 z" t - (setq dashlist (cons dashsize dashlist))
& t4 o& a$ I& h+ X& C: @ - )6 B, |* z9 l8 E o
- )
! u0 `: Y5 U- @# R - (setq ltlist1 (cdr ltlist1))
5 r. d( w1 o9 ?) f+ H k - )
$ L0 f4 ^/ T, k0 C - (setq dashlist (reverse dashlist))
1 `& |9 }( e! t - )) m" G! P' k- m1 h
- ;;8 ]2 y( L8 i! q! W2 _ v
- ;; Color a tile, draw linetype, and draw a border around it% l. V6 m0 G% O* e3 v6 J
- ;;8 q3 |+ W3 v; d! ?, g( a. w
- (defun col_tile (tile color patlist / x y)' C" d; v0 d" h8 L" y1 d- [
- (setq x (dimx_tile tile))
! G9 c& _* t, N# C - (setq y (dimy_tile tile))* K! D& m0 h# x0 x+ n8 [/ L" o
- (start_image tile)# d" d* V8 x8 C) h' q. u' x. ?
- (fill_image 0 0 x y color)& N9 @6 \% B' N" h/ N1 I. J
- (if (= color 7)
, n+ S0 X- i& K& T$ e: R4 p% u - (progn
e6 b1 W: F9 b/ }" z* C1 p - (if patlist (drawpattern x (/ y 2) patlist 0))) j7 J( A7 ?! E% Q% |4 _
- (tile_rect 0 0 x y 0)" G6 P3 d6 `0 Z$ H/ D
- )+ u& U' Z1 V2 i8 W5 ^8 {- K& ^
- (progn& c6 {" S, x$ ~' F) s
- (if patlist (drawpattern x (/ y 2) patlist 7))6 ?8 Q; b5 Q2 d6 w+ B8 w% @$ f
- (tile_rect 0 0 x y 7)1 i* t7 D! [1 K# ~& l4 K, U* a; K
- )
( {8 I9 ]7 |% `! [! o; }. Z - )2 _/ s8 \' X# C! D
- (end_image)
$ T) \) P' |: s - )! h S- K. V0 L- l- f
- ;;
! |% G' X* H' K% o l& H8 N - ;; Draw a border around a tile9 \8 i! ]; w3 ^" e5 T
- ;;5 @+ ]( ?% X- v4 S) I4 R
- (defun tile_rect (x1 y1 x2 y2 color)9 h7 I8 g$ f1 m7 x* L, l
- (setq x2 (- x2 1))) a+ P! ^7 l3 a/ J3 I5 Y$ x
- (setq y2 (- y2 1))
! c7 z4 m6 p/ Y5 y! L$ @ - (vector_image x1 y1 x2 y1 color)
) v Z. v/ b3 e. } - (vector_image x2 y1 x2 y2 color)
- N# F* L. W4 T9 T7 u - (vector_image x2 y2 x1 y2 color)" [, X; j" X% G% {1 [" ]) l
- (vector_image x1 y2 x1 y1 color)
* M1 u! e- Y: l/ L5 ` - )! e1 R) f: d% J( s/ C0 Z, z0 L
- ;;& a* P2 Z' z9 k2 b) w- Q* L
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
$ ]0 r5 _: V1 ^! m. y l: a - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a ' w8 s9 X/ s, ^$ }3 L. t
- ;; list of numbers that define the linetype, and color is the color of the % `& W4 w7 y0 k- N$ z
- ;; tile.
/ F6 t/ v% N0 h. P" L - ;;( q) Q) Z. c. a. ?0 v& r. v! k3 m
- (defun drawpattern (boxlength y2 pattern color / x1 x2! }9 n/ o, _/ Q' B4 d1 j
- patlist dash)
; _ v" }% ~5 Y7 u - (setq x1 0 x2 0)8 s5 q; t$ P0 @3 E/ w5 }
- (setq patlist pattern)
$ p2 Z! p: }2 l3 [8 {9 j# i - (if (= patlist "CONT")
2 e! \- Q6 q+ G! {8 Y - (progn
% {& t' A! X6 H+ j% A; R& a - (setq dash boxlength)# ~( |; H8 k$ Y# t) s; l* d' ~
- (vi)
) ]* Z4 y% m: t2 \& j+ _, p4 E - (setq x1 boxlength)+ e% j+ \% T5 f9 Q" L
- )& K& F5 W2 V2 q) `. t% w
- ). \4 f' R- ^0 G E, ~6 _. F! c. t
- (while (< x1 boxlength)! P ]# J( `1 ?! d
- (if (setq dash (car patlist))& I3 ^, m: T9 h, r2 I3 v" X
- (progn
- ^) W5 ?2 j- T) k8 f# O- w2 ~ - (setq dash (fix (* 30 dash)))
( i. Z8 f- o' n! C P% l+ ^% A - (cond + T a8 r8 V3 t8 ^; t
- ((= dash 0) 1 M9 z/ k1 K5 f5 f
- (setq dash 1) 1 R# K3 v C+ ^; J% W
- (vi)
! O! D2 s% Y2 t/ X" F) X2 ? - )( x! I0 C& V5 u
- ((> dash 0)
+ `% P! g$ K8 u5 I - (vi)
. _( c6 K3 H5 X9 N% Y/ J2 ] - )1 t' H. w% o( F) Z% k7 o% M
- (T
0 ` H# Z4 E, L- s; f - (if (< (abs dash) 2) (setq dash 2))4 d. U1 R3 {/ b2 Z: `* `
- (setq x2 (+ x2 (abs dash))), M g: e0 c% ]& j, T' ^$ o+ l: O
- )
8 S2 ~ J3 k! W. f - )% i8 p* @# D3 {6 n( l
- (setq patlist (cdr patlist))
+ Q+ V! k7 p- I - (setq x1 x2)
" j% H' U- y; b9 g - )- Y+ V- \3 l. R8 W
- (setq patlist pattern); [+ W6 O4 S6 g8 W* b7 t' \# L& o
- )
. N/ J) j- ]/ b( y7 R, T& c$ n5 i5 P, C - )$ C# Z4 g) f- Z+ Q) R# ?
- )
/ ^$ p b/ s' C, l. h+ B/ _# Y - ;;
& z: C+ W" U" X9 l" n% u( | - ;; Draw a dash or dot in image tile3 o. d% w6 Z; Z9 M( X3 y
- ;;
' m" N2 `* A! ~, `/ @: R - (defun vi ()
0 V' O( _6 Z: E) ? - (setq x2 (+ x2 dash))* n, R& F# _( [6 ?7 J8 H' g- b
- (vector_image x1 y2 x2 y2 color)
& D% u7 [: T- t+ _) L! K7 I - )
( ]6 @. R. S/ U- _3 r - ;;
- e1 C [# B3 I+ h8 p - ;; This function takes a selection and returns a list of the color, linetype, - [. |6 ]0 B1 S4 N* Z3 _; h4 D1 u
- ;; layer, and thickness properties that are common to every entities in the
/ Y. S: N( I5 n/ L2 E- k: v - ;; selection set - (color linetype layer thickness). If all entities do not * [/ Q% `" x& b# o m( U
- ;; share the same property value it returns "Varies" in place of the $ g) j6 Q V( B% @ `4 ~" b
- ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
/ @/ L' O7 C4 n) D% p: Q - ;;
" e" M& r: C; a/ [( |; I - (defun getprops (selset / sslen elist color ltype layer
. X. {: n6 H: R* r - thickness go chk-col chk-lt chk-lay chk-th ctr)
, V( c* h3 x" M) u; p - (setq sslen (sslength selset))
s" _; e3 H, Q [. l/ ~+ P4 q; X - (setq elist (entget (ssname selset 0)))
/ J- r$ z; C4 S0 N - (setq color (cdr (assoc 62 elist))): X$ c Z5 D G, e7 b7 U
- (if (not color) (setq color 256))
1 j1 q: L2 X- W2 o9 P Q4 i - (setq ltype (cdr (assoc 6 elist)))5 O1 ?6 ~9 ` D+ r1 L9 Y5 P
- (if (not ltype) (setq ltype "BYLAYER"))
7 u! Z8 L& O( Y) Y+ S& j - (setq layer (cdr (assoc 8 elist)))
8 U0 ?5 P9 t1 V# ~# C - (setq thickness (cdr (assoc 39 elist)))4 H7 j F, O4 H* i7 e
- (if (not thickness) (setq thickness 0))) N7 E# ?% z5 o( f/ h
- (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)
# ^. c1 Y* G& f Z5 J+ [3 F
8 Z5 W2 `3 i0 O0 ^3 C8 q; C& [- ;; Page through the selection set. When a property7 R7 D0 ]/ J% a/ N6 _! Y+ ^9 _+ l; L
- ;; does not match, stop checking for that property.
) i- a5 |7 x7 M3 V" w7 h - ;; If all properties vary, stop paging.7 }) r& m. W( e/ {& z; k) J
- 5 R; e8 H1 C; n
- (while (and (> sslen ctr) go)1 {+ Q0 G4 C& ~3 }) b
- (setq elist (entget (setq en (ssname selset ctr))))% o' s0 O( V' Y2 T7 M/ G
- (if chk-col (match-col))( s% u8 u# P" x( m+ P( Q8 `
- (if chk-lt (match-lt))# [2 N0 Z5 J a: Q- |) K/ F- y; h
- (if chk-lay (match-lay))8 N& h" z4 k ]+ x+ l: [3 {
- (if chk-th (match-th))2 N; A: K' A, |- j* D g# H
- (setq ctr (1+ ctr))9 X$ [2 K% O& n( S* y
- (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th))
7 K5 O) `1 B: p( }( a - (setq go nil)
2 N) l* Q8 Y0 d0 x+ W - )8 a# A+ ]* k" y8 M5 D
- )
. H1 B' [7 T9 s0 K - (list color ltype layer thickness): |+ P' g* Q& i* y& ~$ b( L+ a
- )
3 B! N6 u% h$ X# _5 s% \, j - & s2 z! O6 `0 N
- (defun match-col (/ ncolor)& P" K6 c4 K) j M9 M2 r/ S
- (setq ncolor (cdr (assoc 62 elist)))- o1 Y$ T% h: p L, m U2 z/ j
- (if (not ncolor) (setq ncolor 256))5 g: r* d) S, s# L% X( T" W2 p
- (if (/= color ncolor)3 Y" U5 m$ U8 z- n) z$ i
- (progn
8 F# y5 J. `( S2 ]( c! l2 | - (setq chk-col nil)
0 F# r: }! ]& v0 s1 J W# J2 n - (setq color nil). R4 ]3 k' W: W! [' ]! Q0 e1 g+ ~
- )- l# e8 I0 E7 i! n- [' M
- )
( h d+ O* s2 P) b" M. b - )
P n4 E5 ~, A% c) q; H0 l" H; ^ - % \5 G8 y9 G/ \/ ]4 b/ ^
- (defun match-lt (/ nltype)
( W# r+ x: |* [3 @ - (setq nltype (cdr (assoc 6 elist)))
- C5 m; B( v6 Y H - (if (not nltype) (setq nltype "BYLAYER"))
' y2 c. Y/ [) j4 z' M - (if (/= ltype nltype)4 G* v! D; \; T' x; Y
- (progn
5 L7 M* M- ~- m, Y2 @4 F! U - (setq chk-lt nil)2 W) m* H' e2 V1 S" u0 [
- (setq ltype "Varies")/ J/ I' D1 g Y5 C3 D4 \4 s
- )
7 D# }. R0 {2 o9 P$ M+ x - )
! ~1 F% i( {" E: W - )
$ i4 C$ @" s% U) R. C; W1 V7 k - ! ~+ p J2 U [! C: l' x
- (defun match-lay (/ nlayer), [! u" J6 @& O0 H9 l N2 j
- (setq nlayer (cdr (assoc 8 elist))); J$ G! }2 l2 R# y) p5 W
- (if (/= layer nlayer)
- p/ b0 J7 g$ E' F - (progn' j. O7 \6 B0 w, a# @
- (setq chk-lay nil)
6 U+ }, V2 T6 A" ^7 a - (setq layer "Varies")/ { Y3 s3 @8 u; Y9 x6 T9 A2 { G
- )" k3 K2 s" ^6 g' H
- )& E6 B( ~9 V0 f
- )1 X8 Q0 g* W7 U/ j# \+ [
- 1 c2 w* c/ T: q7 p `: n! V
- (defun match-th (/ nthickness)
: o8 i: y4 u/ R - (setq nthickness (cdr (assoc 39 elist)))
- T5 t; O/ E8 {6 Z - (if (not nthickness) (setq nthickness 0))9 v) T& e+ Y! l) U4 L
- (if (/= thickness nthickness)9 P# b' n0 s c+ q* x( f3 @
- (progn
7 J3 S/ L$ W$ F7 j0 o" l - (setq chk-th nil)
4 f* p8 }4 r% j; E0 ? - (setq thickness "Varies")
$ S( L; m& ]0 L% R( ` - )
5 E4 d3 t0 } B9 D3 V. K9 D' n$ O - )* L' x5 ] t' x2 |8 e$ E* J
- )8 v) a V/ q9 `: b) r
0 A* N1 G) O2 }. a$ r" ~' E% F- ;;
$ y" V* p% T0 b7 }) F9 D6 N3 N - ;; If an item is a member of the list, then return its index number, else
- L! e- i$ T* h6 q. O - ;; return nil.. q2 p- c" r' e* n, ~ a2 t
- ;;
& z2 ]1 b2 X' C7 n8 F - (defun getindex (item itemlist / m n)
4 [0 a/ W; R8 C7 [& @ - (setq n (length itemlist)). A' k, x+ W: ~9 c `- H
- (if (> (setq m (length (member item itemlist))) 0)7 V1 t4 E9 ?' A5 \% W5 C
- (- n m)" C$ A" B( n9 b7 K
- nil- ?6 G* T" {+ s
- )
0 L5 z. z$ g7 `9 n) a1 e - ): c1 a0 `7 `- ~
- ;;
: C( p7 h; W8 @) I - ;; This function is called if the linetype is set "BYLAYER". It finds the & L9 Q& G5 m6 e0 l6 U) p
- ;; ltype of the layer so it can be displayed beside the linetype button.4 L- b- I$ h% `2 l; o
- ;;1 C5 J; C0 _, ?7 x& r9 u! ^
- (defun bylayer_lt (/ layname layinfo ltype)% B; L& r: o* ]: | e8 F
- (if lay-idx
* I5 a/ I5 J1 n1 T8 n2 Q - (progn
) i, `$ a4 z2 X0 Z5 W' Z3 ~ - (setq layname (nth lay-idx laynmlst))/ Z. T8 r% J7 {3 r- L# o
- (setq layinfo (tblsearch "layer" layname))
4 U0 {: r2 x5 A; L. E - (setq ltype (cdr (assoc 6 layinfo)))2 K1 } v2 V- V- d& V3 F1 v" \
- (strcat "BYLAYER (" ltype ")")
0 k o" u9 Z# E; L - )
6 y% C+ j1 c& l4 Z) d1 B2 ? - "BYLAYER"
1 T+ d* A5 G- o+ x6 ~ - )
# k) {0 z- r7 K3 l+ o - )
/ R& O5 E4 M3 c1 ?, T2 \# f - ;;
0 R' I. J4 e/ g8 v - ;; This function is called if the color is set "BYLAYER". It finds the
' @# J5 F! e/ a$ F* M. V3 w% }8 R - ;; color of the layer so it can be displayed beside the color button.) P }3 E# ^( A0 m6 ?
- ;;
: V' G& B, A1 n* E; o- v$ t3 f9 t - (defun bylayer_col (/ layname layinfo color)5 W4 e0 [* A2 }: z" `5 z
- (if lay-idx, a* _$ u. ?3 C. v! m
- (progn
( s) x, a8 ]/ M0 ^6 Y! \ - (setq layname (nth lay-idx laynmlst))
4 f7 N# z* v3 {: i - (setq layinfo (tblsearch "layer" layname))
! E" t4 C& C! J0 C. A6 k3 h - (setq color (abs (cdr (assoc 62 layinfo))))
9 k" v6 h T7 c2 {+ J - (setq cn color)
6 M: q* p5 x9 w2 E4 o - (strcat "BYLAYER (" (colorname color) ")")& W1 y3 |8 h" Q2 C/ o- e
- )+ k0 M/ C& i6 @4 F" m Q9 i8 B$ i
- (progn: B- f# G$ ?* s& s
- (setq cn 0)
+ @9 G' a5 O0 _ - "BYLAYER"
2 ^4 D& ^1 F# E) \5 T9 m, _6 L - )
1 t: g, |7 q5 F: | - )# w- c! X5 U# F
- )
& F' s4 Q4 ]0 J - ;;
0 a9 W. B6 y& }7 ~2 P - ;; If there is no error message, then close the dialogue" i0 A2 [) M) u
- ;;
# `; g! \9 |, u5 m: f/ n - ;; If there is an error message, then set focus to the tile
7 ?6 [6 m) e/ w' W - ;; that's associated with the error message.
- N* ? l/ v" M0 c$ ^- ~" i - ;;
7 P* i3 g% f V. E8 A( Z9 n - (defun test-ok ( / errtile); x- J1 Z2 ^6 ~# Z; Q3 ~% F5 {
- (setq errtile (get_tile "error"))
4 Q8 I5 g- P! n3 j1 v - (cond7 t0 h+ r+ ]/ P; r' t
- ( (= errtile "")4 i1 [9 O6 ?$ k: l' }2 j6 _
- (done_dialog 1)). e. S2 E8 J7 `6 w
- ( (= errtile "Invalid thickness."); H$ a8 V8 z2 @3 j* B
- (mode_tile "eb_thickness" 2))
2 b$ K' V8 r0 ^+ }2 `$ i- k4 j - )1 L# y6 p2 k5 c( y5 p3 n
- )
4 i( Q& x, d: ?) Q9 f - ;;% e, u5 y$ g4 `# j7 ^5 `; @% f* y
- ;; A color function used by getlayer.3 s4 @5 f1 U8 u4 f! o
- ;;
5 j# p/ |1 `1 I& n: s! n/ v# d - (defun colorname (colnum)
' H4 w9 B( K& g0 E - (setq cn (abs colnum))
5 L4 Y3 ?# A+ b - (cond ((= cn 1) "red")5 r) C0 B9 f" g' d
- ((= cn 2) "yellow")# D% E2 i# X' T7 L" t: z d
- ((= cn 3) "green")
1 l9 G! k# \; t - ((= cn 4) "cyan"). \; x6 `$ Q; l, l( S* l
- ((= cn 5) "blue")
: a; e. G( B2 G& z - ((= cn 6) "magenta")9 z6 I U( r( e* d
- ((= cn 7) "white")
( L' m! c4 Y/ j- C3 t* p8 M - (T (itoa cn))( |; K& T" s% \8 X- R1 d
- ) j0 R! @# i' t8 @7 a8 r! S) n
- )
+ V9 q$ F1 _8 V' w0 b& Z - * y2 e! X. p0 V9 l8 X9 m9 |* H
- ;;; Construct layer and ltype lists and initialize all5 E0 K @0 b# a' y! }& J
- ;;; program variables:
# K1 t% P# I* h - # t+ W9 R6 U1 M: d: ]1 D( B( \
- (makelaylists) ; layer list - laynmlst! u/ _6 b4 Y- y; d* R
- (makeltlists) ; linetype lists - ltnmlst, mdashlist
2 L4 r) K5 P2 e8 M% L- A - ;; Find the property values of the selection set.5 e; K4 W6 O; N
- ;; (getprops ss) returns a list of properties from
2 K6 C: ~, |" L' ? - ;; a selection set - (color ltype layer thickness).
$ ]% g$ i2 _0 l8 n" b - (setq proplist (getprops ss)), c- x$ [- M8 O# D5 {
- (setq ecolor (car proplist))
% z% W( C% k; a6 j" K - (setq eltype (cadr proplist))
, W8 X9 J) w; o( I' D - (setq elayer (caddr proplist))6 T/ `7 s% ^$ C. g J J
- (setq ethickness (cadddr proplist)), _7 p1 E& t$ a
- ;; Find index of linetype, and layer lists: z- T. j, h8 U+ w1 p/ h
- (cond
$ f; V# `9 F; v8 _; M. q2 Y2 S8 \ - ((= eltype "Varies") (setq lt-idx nil))
% D$ z1 T0 f9 i9 V& A- _7 g - ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))9 [$ Z8 A5 z3 W5 ^2 `0 f6 l
- ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
" V0 @8 ?! d. @$ | - (T (setq lt-idx (getindex eltype ltnmlst))). f4 h/ |" k6 ]
- )
7 \: l1 x) t3 m1 b% D - (if (= elayer "Varies")" V9 b- l! ^9 F; p1 O$ ^6 y4 r' z
- (setq lay-idx nil)
8 {/ A6 p, D6 r - (setq lay-idx (getindex elayer laynmlst))) Q# R4 V0 l5 P: n+ f" P
- )2 {8 P2 h+ s A# e4 \. b: X, k
- (if (= ethickness "Varies"), g3 @4 P2 K4 E0 W, ?
- (setq ethickness nil)6 ^: m/ V( ~* U7 \
- )" i% x. i8 H7 v. z2 ]
' w% U3 K, r! r! ~- ) ; end (ddchprop_init)- [. B: A) |4 F4 v
- 0 R/ B- {0 }) i6 ]% |, l! Y, _
- ;;; (ddchprop_select), s4 \& m( T: D9 {% I4 v& J4 ?6 e
- ;;;
$ X+ G4 J. L7 }- T3 x7 Q' g$ V - ;;; Aquires selection set for DDCHPROP, in one of three ways:' D( v3 b' H! a
- ;;;
9 |$ J) q9 U2 U - ;;; 1 - Autoselected.
# X$ D5 A& Q3 b0 n" Y! ? - ;;; 2 - Prompted for.
$ w! j1 G: P, ~# u - ;;; 3 - Passed as an argument in a call to (ddchprop <ss> )7 o$ p5 D' \) p- Y* L
- ;;;
& Z. S: d1 f3 z% Q - ;;; The (ddchprop_select) function also sets the value of the2 R+ a, v" T$ u7 m% B! M- d& j' O
- ;;; global symbol AI_SELTYPE to one of the above three values to
3 s# ^9 ?. C# C$ |/ O) q9 v - ;;; indicate the method thru which the entity was aquired.
+ c5 X# f& s8 |: f; |( G U) W
0 h! ~- ^, Z: B9 O5 ^+ o5 [( Z$ F* ~
, @7 p3 K6 F0 w8 J; e- (defun ddchprop_select ()
5 {" @6 Y5 L1 H+ R# M. ^ - (cond" {/ i, L: D' l! ^! N
- ( (and ss (eq (type ss) 'pickset)) ; selection set passed to
# |; }; D7 u3 a9 D4 D' ? - (cond ; (ddchprop) as argument
5 m; i" \6 r9 b& t% B) p- w/ U' c - ( (not (zerop (sslength ss))) ; If not empty, then
: z& B' t; [! R: n: M! U - (setq ai_seltype 3) ; then return pickset.' f! [7 R- g5 l. f1 `! X
- (ai_return ss))))
3 Y# {) \. t( M; Z$ i# x3 k - . A9 O4 G# _1 E3 [% K+ K
- ( (ai_aselect)) ; Use current selection" m* e. I6 I- D; ^7 a o# ^' L, O
- ; set or prompt for objects/ |' ]# L: V! ]. A" P# ?/ V5 x
2 d* e z. t) m0 l- (t (princ "\nNothing selected.")
! {; q; k3 n& n, N" b8 d' {$ R1 T - (ai_return nil))
+ a, O) l+ D3 ] - )
* X, W3 q, d8 J: S0 }( b7 ]' ] - )- G+ {8 A1 r( ^) m
- + \3 `2 Z7 {2 c F
- ;;; Define command function.
5 a# g+ X7 e( A/ Y, @# t3 E - 2 m1 g3 ] G8 |; R+ j
- (defun C:CH ()
1 d) b& {. V, D - (ddchprop nil)6 |( W' @7 R' Y9 i" \0 D, g2 K6 m4 q
- (princ): E1 i- }0 C' G- f) b) d, ?5 {
- ). c* o1 g& h" L2 }" R$ Y
8 z8 q1 D- ?3 n5 } ^9 [ K3 ^
" [; K" I4 \% g$ k7 q- ;;; Main program function - callable as a subroutine.
# E) [- D# ]' u5 u - ;;;) r* u) ^; n# R# m7 [& `7 ?. B
- ;;; (ddchprop <pickset> )$ e% a$ o- H7 |- s6 h: m- _4 Z
- ;;;
: t* t) z/ [3 R: D. m. y - ;;; <pickset> is the selection set of objects to be changed.
5 N" |) H$ Q$ x* E. y: |1 \ - ;;;
0 g v; W O# ?# c' T8 u/ W5 q - ;;; If <pickset> is nil, then the current selection set is
. v6 I# y5 M1 X - ;;; aquired, if one exists. Otherwise, the user is prompted$ p3 F5 T" F" I' t; i$ m
- ;;; to select the objects to be changed.3 n) g" |% p& ~* O1 H& Q$ e0 B6 ?
- ;;;
9 x( C" @5 D: L& ^* E4 D2 b0 f - ;;; Before (ddchprop) can be called as a subroutine, it must/ i7 ~4 T. {) S: U6 y/ N
- ;;; be loaded first. It is up to the calling application to
& W4 r u, P: z+ L! r - ;;; first determine this, and load it if necessary.0 _. ^* [' g0 N# ]2 e
- 1 L Y1 K7 A: R
- (defun ddchprop (ss /
6 Y1 D3 e& Q6 o: k, ^0 p1 b
5 {/ B$ D0 I8 E8 ?- add-mdash ecolor ltedit_act s; K! U) ~7 k' P% {3 ~: E0 l# j
- assoclist elayer ltidx selset$ Y6 q' p1 {7 J/ P1 l, d
- bit-70 elist ltlist set_col_tile/ z1 U( O7 e% l+ n2 `
- boxlength eltype ltlist1
. F8 ^. |5 { s5 y6 w+ R) Q - bylayer-lt en ltlist_act sortlist1 J& M6 S* B+ ]; U0 I# ~
- bylayer_col ethickness ltname7 B9 ?. q# W& Z# d0 \( E% v
- bylayer_lt fchk ltnmlst sslen( O2 M! a. R+ X# ^. q
- call_chp frozth ltvalue templist7 R# m1 s; u$ L! F5 T! m4 f
- chk-col getcolor ltype temp_color1 U1 @3 A! I/ [6 j
- chk-lay getindex m test-ok
8 k9 P# M4 g1 |1 i3 } - chk-lt getlayer makelaylists testidx7 y& o* p& D9 h6 ]
- chk-th getltype makeltlists testlay* V$ a* }% j, N: w, N
- cmd getprops match-col th-value
8 m2 {! Z- G: ], h' q4 t9 v - cmdecho getthickness match-in thickness4 G3 e! t$ k! j/ u: K1 E
- cn globals match-lay tile
+ g: v3 Q' p+ |# u - cnum go match-lt tilemode
% b, F+ _0 h. _* ]" u5 ] - col-idx index match-th tile_rect3 w. Q5 ~* m/ B: ?0 I& I
- colname item match_col vi$ R# s8 R" a+ G. `5 n
- colnum item1 mdashlist vpf
% f$ b" q/ [4 ]1 J; }+ \ - color item2 n vpldata, y3 W+ p# L7 u0 Q7 P9 P
- colorname itemlist name vpn! Y4 h+ x0 e0 l% m& j2 }
- col_def lay-idx ncolor x% \: E' W6 q+ w$ l' L# s) U' [
- col_tile layedit_act nlayer x1
* k9 h4 x& s& \( J4 i - ctr layer nltype x2
. ~- u5 N" V2 `0 H( x. v - cvpname layinfo nthickness xdlist; ?: c, r6 H: G [
- dash laylist off y
4 s. }" w& U1 N; l. H2 o4 p; [ - dashdata laylist_act old-idx y1
/ v# M1 L$ R7 k/ p! L( ~/ L - dashlist layname olderr y23 O) K- g3 ]9 E# k8 p, O n
- dashsize laynmlst on undo_init# n5 r8 B4 @. s- s& J) B! ]; r
- dcl_id layvalue onoff
5 P: u" W- M& Q- B8 A - linetype patlist1 o+ u+ I1 A* U2 s! i8 R# I( x1 j) M
- ddchprop-err list1 pattern; D2 @# A6 b: M3 h. X( n9 y
- longlist proplist: j( S& D' s+ ^# T
- lt-idx reset-lay7 n4 Y9 e& y$ I4 h9 o3 k
- drawpattern ltabstr reset-lt6 U1 t7 F% L& M+ F' ~4 @2 ?
- )/ j8 u3 j, q6 f/ T
- 2 C$ _. P" b* X% }! ]8 b* M
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
1 M" M1 r5 `7 k" V8 z - old_error *error* ; save current error function" t9 c, G+ ` K
- *error* ai_error ; new error function* T8 P- ?" R2 C' t* D
- ). a$ A2 U! C5 p* r
0 {5 A: [' d; T4 n; e" B* I. q% h- (setvar "cmdecho" 0)
* N/ P+ o. K4 h1 E$ V
% Q( y( u" X6 ?* N- (cond- _2 P- v4 N4 {% ?! E! z+ z
- ( (not (ai_notrans))) ; Not transparent?
1 z5 {3 h3 ^, o! Q" F - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
% \, [- S }" B3 n% h$ v - ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?' K3 R6 R% V5 L
- ( (not (setq ss (ddchprop_select)))) ; objects to modify?
& X* b* x: ^( M8 y: U n! b0 h - ! { N+ p, O" I7 h5 L
- (t (ai_undo_push)
, h6 X* G% u. b( R- {$ W2 Q _. F - (ddchprop_init) ; Everything's cool,5 [/ `: F$ Z7 a; I( M; @5 T. ~
- (call_chp) ; so proceed!4 l& M- i1 ^5 }
- (ai_undo_pop)
& e0 J; `+ |2 l( B# p$ R - )& F# w6 s$ `/ v8 z/ p2 c
- )9 S- T1 e: t; b: p/ y
- - G( w0 z& k0 J# R6 \: \, v" K6 C
- (setq *error* old_error) ' a4 J1 }4 @$ U5 Y- H
- (setvar "cmdecho" old_cmd)& ]# m& o! W$ J4 P, V$ V
- (princ)
) W% E3 M) n1 Y - )( |7 D8 l( x* l% L4 d) b
- : T3 J# H2 S; D; L: [! I# C. \8 l
- ;;;----------------------------------------------------------------------------
7 G$ o' V+ M, G( @' c# U, E$ R
, ?0 h# Z* V1 |+ Q" ]: k0 J+ E- (princ " DDCHPROP loaded.")4 o u2 B: i9 T- B5 c" p" |/ u9 }# N& f$ H( t
- (princ)
1 B; x0 `2 e5 y - , |$ @ a* I1 W, N
- ;;;----------------------------------------------------------------------------
2 l9 F$ f% Q2 z9 v6 k, l
9 |0 v8 h6 \8 c) i1 V- ;--------------------------------ddmodify.lsp----------------------------------
% X1 N$ ]3 ^+ j0 t - ; Next available MSG number is 1116 |- H4 U# [3 C& Q
- ; MODULE_ID DDMODIFY_LSP_
$ z3 ^, [$ N- v3 Q; y+ @' I - ;;;----------------------------------------------------------------------------
8 w/ v& @ ]6 g& K& R5 K f - ;;; DDMODIFY.LSP( v8 ?. H* z8 P& b
- ;;;
" t% J7 P1 S4 a - ;;; Copyright 1997 by Autodesk, Inc.) H3 i P& {6 q$ b
- ;;;3 Y9 j7 _: V' b
- ;;; Permission to use, copy, modify, and distribute this software4 K( }9 ?, Y f9 {. [
- ;;; for any purpose and without fee is hereby granted, provided
* ^1 u: X- B8 V8 f& T - ;;; that the above copyright notice appears in all copies and
1 a+ l% \ G3 x" [8 ?3 ` - ;;; that both that copyright notice and the limited warranty and
" L% J2 W7 u0 k o" {+ m* l - ;;; restricted rights notice below appear in all supporting
, I8 {) b9 t7 u) u6 d; L: w) u - ;;; documentation.
& p/ O. K: ]* D* o- K, \ - ;;;
" I" V' ~9 h4 k0 I7 l& s, { - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.5 ?8 n% D$ ^. i' W
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
4 ^4 g. D2 M) t t, x9 @& F - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
5 h1 D$ K$ {4 r# i* H$ s9 \ @) b2 e - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
3 H$ C7 R" v ~! v" c+ M4 D3 D - ;;; UNINTERRUPTED OR ERROR FREE.' ~% W8 X1 O9 L( c8 |
- ;;;
- ], H. G1 E Z) w$ Y+ \% X - ;;; Use, duplication, or disclosure by the U.S. Government is subject to7 `" ~6 a2 Y, J0 f& f5 N; Q
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
$ m9 V! }$ T* H. R- A- z - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
% C6 Q( r! z% [1 x T$ x5 n - ;;; (Rights in Technical Data and Computer Software), as applicable.3 l# F0 `4 T" ?2 J- e
- ;;;# d) u/ r0 w$ p Z4 |
- ;;;.
1 O7 D5 ]: ~* v" b% R - ;;;) Q3 }0 f" R) z' a+ V9 o
- ;;;----------------------------------------------------------------------------
9 k) z; {% H3 D+ p6 L - ;;; DESCRIPTION7 V) C3 @+ J3 M
- ;;;1 e8 @0 a7 C1 G/ `( ~
- ;;; This function allows the user to get a listing comparable to the LIST
/ x8 ^$ p% p; k* t3 N- Z, O' { - ;;; command for most objects. In addition, most object fields in the/ a3 I/ d& N$ ]+ b
- ;;; dialogue box are editable. Points can be specified dynamically by
g* Z1 U' i& k1 `1 L - ;;; temporarily dismissing the dialogue box. Each object has a unique) C6 X0 ~5 C) ^ l% V8 Y" c
- ;;; dialogue.5 I' @# ~4 j6 b/ y
- ;;;
7 G$ _: q8 p! u - ;;; Naming conventions* K9 V# n; t `3 p( H0 Q; U; i( S
- ;;; Long function and widget names may use an underscore "_"
. f; @# V, X4 { - ;;; in their names to make them easier to read, long variable
O8 ]- {1 r9 b) } - ;;; names use a dash "-".
% H, m* K7 |4 i - ;;;----------------------------------------------------------------------------
1 r7 V) r. j$ {: L. i% H - ;;;----------------------------------------------------------------------------- c. ~: L" k" {9 F2 L
- ;;; Prefixes in command and keyword strings:* `1 h1 q2 R8 K
- ;;; "." specifies the built-in AutoCAD command in case it has been. C7 P/ |) A9 I$ q7 M5 ]
- ;;; redefined.
. n' f% t$ Q. q0 z% j3 r0 s3 m - ;;; "_" denotes an AutoCAD command or keyword in the native language
5 D" l9 Y: [# t" J$ | - ;;; version, English.
4 b1 u) A0 d3 T; T) S - ;;;----------------------------------------------------------------------------+ C1 L, E9 D9 x5 D* n
- ;;;( A) Z6 b5 Q) @3 r% f. ^$ b! l
- ;;; Avoid (gc)s on load to improve load time.
& r% p) `# t0 E - ;;;2 [/ @! [! s, i- b7 r6 C c3 H* G
- (defun do_alloc (/ old_allod new_alloc)
$ o7 b: d6 P/ z9 T( P' ~ - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
$ T( M: U; l. W* e$ l - (expand (1+ (/ 17000 new_alloc)))6 `! A+ E9 {1 Q- r' T5 L: p, \' G
- (alloc old_alloc)
, b: t1 H0 `1 K- b, D0 c; Q - )
5 b. A8 B, ?# p: t. S% ^. n - (do_alloc)% ^. N& _2 h2 ^/ ?
- (setq do_alloc nil) [8 l* Z! @, Z2 W4 H' K+ f4 e
; e% I o1 }& {8 G- o" c; [- ;;;
7 H; b7 d, f3 I8 \* U# j0 ^2 a - ;;;$ {/ Z- U6 _! p
- ;;; ===========================================================================
# k' W0 J6 C0 L+ u. \2 M7 C - ;;; ===================== load-time error checking ============================
7 |3 a+ v; \7 T+ A
; j* z* {/ X8 j6 ?& v" h1 O! j- (defun ai_abort (app msg)
- Q, q* N% x, }8 J6 N" ` - (defun *error* (s)
5 w* N# \/ L8 ~2 \* j& ?- Y$ X9 K - (if old_error (setq *error* old_error))
' M# N1 E' ] n/ x# s' \: ]8 [ - (princ)" {0 i; n4 C0 t; C
- )8 X- w* N* X; {% o
- (if msg
6 W" @# l! d" y) v) _8 S - (alert (strcat " Application error: "
1 \$ V$ z, w ?9 Z8 s& U/ c/ b - app3 _* o5 Y& S. ]4 I
- " \n\n "+ U# I2 n! Z# I) T4 L8 N9 T! K
- msg+ N" V& e. H/ W9 L9 l( E1 h2 j+ j
- " \n"
2 _$ _- V2 \% q5 h - )
& B+ i) E W# A - )
+ u( L( C+ H. _ - )3 p* p7 q3 Y* O9 K r$ b* B- X$ r- U
- (exit)1 a7 W) o4 l: `! o# N+ I. w' L' }( @4 l
- )& m7 }$ k0 S/ z+ R( D# O
- 9 f- h0 N0 S' M# A6 u* Y, I5 ], n
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,2 ]$ P: a8 z: \ ^0 ^2 L) q
- ;;; and then try to load it. If it can't be found or can't be
: ?/ [( x- d5 j/ q0 Z - ;;; loaded, then abort the loading of this file immediately.+ [" M4 B& J+ h; e/ \0 u C. f
- " C% A; U9 W, g. u
- (cond" y% I# P" n1 t& B. Y: S& X, f
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.' H8 y3 Y$ ~" i7 n) i
- , |8 N, [. C; W
- ( (not (findfile "ai_utils.lsp")) ; find it
6 ~1 \1 t4 e& K! f# U# S - (ai_abort "DDMODIFY"8 `$ X7 ]/ ?0 w; T% f. v
- (strcat "Can't locate file AI_UTILS.LSP." {6 f- L! ?; o7 O% i7 ^8 \
- "\n Check support directory.")))
, N* F% J/ p; O5 N! Y4 g
! p& C5 g2 q- e" `, ]& i q0 G- ( (eq "failed" (load "ai_utils" "failed")) ; load it
3 ~& c8 P' {% w$ E/ A( M) }: P - (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP"))8 I6 l% l( h/ o9 \1 ?; ~ R
- ), G8 U0 r# G9 H/ a
+ S3 Y D' V2 i8 w- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can8 `. a; r% J# r" Y, |$ j
- ;;; be assumed that all functions defined therein are available.. V r2 j4 _/ r
! ~6 \* C a9 ^4 h8 b- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort
$ g8 Y& o& s1 F! v$ Q7 f/ o& I" Y - ;;; if the file can't be found or xloaded. Note that AI_ACADAPP' F9 ?- @. I {2 {$ ^% m
- ;;; does not abort the running application itself (so that it can
$ r9 b% ]' Z8 H. L, [# m - ;;; also be called from within the command without also stopping+ D& B g5 V2 R. _! ]4 i
- ;;; an AutoCAD command currently in progress).$ O( l% S- s; v4 Y3 O! W
; h' e# A2 Y$ ?$ t- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
, _, ~! S' e7 \' x' J. y - (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses
0 K1 B- n0 u9 p7 @0 _ - ) ; ai_abort's alert box dialog.
# I2 _# w i l( Z" U
" \6 b2 G1 g7 I4 D+ \- ;;; ==================== end load-time operations ===========================8 |4 x# z! T1 m
- ( Y4 w. v7 v4 c& H+ O
- ;;; global variables
# ~+ G+ ~2 o, P6 [; I2 P
l1 ~1 H7 A1 x+ X! l) ~' H1 k* h. }- (setq hatch-elist nil)6 k1 `) A1 v# M: ~
- * }$ k2 E' W" J e: {# a& [) A1 o
- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are+ k3 B; Z; S5 h4 B5 Y- j% h
- ;;; assumed to be available.5 ?; w4 C2 D, T% C* y
- ( u9 `* a5 |; z% e7 S6 D
- ;;; Define and encapsulate all subroutines that are declared7 j+ i, w( ^: K: L
- ;;; locals of the (ddmodify) function.
1 | D# C/ z6 g' W7 Q# x
# \% U6 q! n5 O- (defun ddmodify_init ()) {. j$ h" K8 p+ y
- ;;8 O9 c' R; o+ P6 z" _
- ;; These three functions modify the enitity list for common properties. Since
C: C/ R( q0 {/ h- E8 U0 i - ;; color, ltype, and thickness are absent from the object list when they are
3 _% s6 d6 i0 V& X - ;; set to their defaults (i.e. color = bylayer), a simple substitution using
Y) I- o( X! R0 u ~% J6 w - ;; SUBST is not possible.. _' E4 _2 H, J: N) r$ w6 @
- ;;
I5 ~7 U# A* Q: I/ c& q - (defun modify_properties (), X9 {: K* m& |" F
- (emod ecolor 62)
, O. t' R9 s8 p$ z - (emod eltype 6)! c& Q$ {( B3 I- F' S
- (emod ethickness 39)
$ N5 b. q K$ M3 _+ y3 Y - (emod eltscale 48)% z) H; H+ Z, _; V
- (tempmod elayer 8 nil)" w9 P2 u* J- @/ q8 e! X
- )6 t$ }: [* `; T2 B X9 e! t
- ;;2 l1 y/ U! x- Z8 _: v: A, e: x' w
- ;; This function is used for modifying common properties of the ACIS
- l6 s& I2 x" I& l" m - ;; based geometry objects. Thickness is not valid for these objects
2 a) [+ d5 Q% ^% T* u - ;; so it is left out.
! q' v5 Y3 w: K( _ - ;;
) k( G7 E& [& B2 P1 t* Q - (defun modify_prop_geom ()
8 ]: p. u4 _: K - (emod ecolor 62)
4 l& j/ i6 s6 `' G - (emod eltype 6): B, ^- q8 G. H
- (emod eltscale 48)( X* F# Q% A- j0 e$ t# {5 @
- (tempmod elayer 8 nil)
, ~/ o `' b: t; h# [ }5 ^ Z& l - )
z6 O& W: [$ K1 B - " s! F) X) z* c) [: v& L
- (defun emod (value bit)
! Z6 h6 ^, Q/ n* W - (if (= bit 62). J1 U. s. o* P4 N; |+ ^, J
- (progn* p+ C; }) o H# |" A, s
- (if (or (= value "BYLAYER")( I: _+ r. ?. T( ^
- (= value "BYLAYER")) (setq value 256))
; E0 V! ]" C& `; T1 V - (if (or (= value "BYBLOCK")% C8 v9 @& }+ s( ~+ ^* \! j, W
- (= value "BYBLOCK")) (setq value 0))
% G" X5 P* W6 r1 G' E$ E - )
" F5 b1 z: I) x/ N1 H+ c% Q - )7 n& O6 f+ `5 M5 Z) S
- (if (setq oldlist (cdr (assoc bit elist)))1 {* f- ^ e1 l! K
- (tempmod value bit nil)
6 T& {& O5 {4 k3 V& p. H - (setq elist (append elist (list (cons bit value))))$ x. A& ]& K" h! G( X" W
- ). r, Y% ]4 W7 I2 K9 z# G" A/ |+ A
- )+ ?6 r- K% J6 z
- ;;
+ U* z. N+ S" ~9 H" u - ;; Resets object list to original values. Called when the dialogue or! z! b3 ?4 S3 B& e
- ;; function is cancelled.
9 d, I& K) w+ ^7 g! ]3 _" \ - ;;
/ A/ Q1 U2 j& t6 f - (defun reset ()
0 o" n, ^# {7 n9 u6 F. V' ` - (setq elist old-elist+ H/ m0 Q, W! D
- ecolor (cdr (assoc 62 old-elist))* J/ ?( [, Y- m5 H; R# B" E
- ethickness (cdr (assoc 39 old-elist))
. T/ o0 L8 V6 D& v - eltype (cdr (assoc 6 old-elist))
3 k! A8 j; T1 T; f( J2 R - elayer (cdr (assoc 8 old-elist))! y- A1 C; }" M7 n
- eltscale (cdr (assoc 48 old-elist))
1 z$ h9 H$ \0 h. I - )5 \: X9 G9 w0 h& q" t6 J
- (if (not ecolor) (setq ecolor "BYLAYER"))
: ^$ d% J! h+ |8 |. q - (if (not eltype) (setq eltype "BYLAYER"))! [9 a7 v( O8 j! U) Y& K
- (if (not ethickness) (setq ethickness 0))2 D5 u1 \+ e8 Y6 [& }5 i$ [2 b
- (if (not eltscale) (setq eltscale 1))
( M* z) B/ s4 l* L) [; q - (modify_properties)
2 F* k: y; G% b& a - (setq reset_flag t)# a; r7 b" y2 V! [) n
- (entmod elist)
) ?' ^8 u$ t0 C2 R3 P9 F' A - )
% X1 Q: C$ `4 B& l( a+ K, G7 z - ;;
% K. J; D3 ]* g$ D. c# v - ;; Modify object when dialogue is temporarily dismissed to reflect latest; d h6 d0 Z1 j. Q" n
- ;; settings of dialogue. It converts the point from current UCS coordinates to' Z$ Q+ t G' X9 E1 {0 z
- ;; the proper object coordinates (world or object).0 `0 o) U4 S; c2 s
- ;;
- f' c$ s! u) r% r# y$ p - ;; Arguments: value - in current UCS coordinates& _ l6 ?9 _% O% t" _
- ;; bit - object code (i.e. 10 for start point)
. v z& Q9 r; \4 M1 T- f - ;; ptype - point type 0=world 1=planar
4 D6 q; d; O+ k# K" \0 k7 A! @ r - ;;4 d9 M2 [5 L' `/ T: M
- (defun tempmod (value bit ptype / newpoint)+ x) I: _9 X3 B. i1 J
- (cond
; T* C4 N& ]+ ^9 t+ Q - ((= ptype 1) (setq value (trans value 1 ename)))' c1 p2 D6 y: b) x! `' \' ?
- ((= ptype 0) (setq value (trans value 1 0)))
6 |% H: }, @- g" @7 V E( y) Z - ) h7 m' T' n+ L2 I# h8 Z
- (setq elist (subst (cons bit value)1 T6 @0 E# x# G$ S4 |, r7 Q1 Y0 n
- (assoc bit elist)
! U1 w! l/ y3 P5 v# h% `3 F9 ? - elist
" t: Y0 P" a2 n* s - )
6 e6 ~9 C% f3 l- z( W" H0 U - )
# q+ }) z# ^5 [8 X6 d! i - )% V/ M# t* v, V" A. T$ K4 }
- ;;
7 K7 P% s- ?6 O/ K. T; J - ;; The following functions are called after a dialogue has been temporarily
* r1 D4 I+ C& \* w: U/ L9 J - ;; dismissed and the user is selecting a point. If a point is selected the
# ^& e- F2 \- ]! }% p1 Q - ;; object list is modified and new X,Y,Z values set. If no point is selected. Q3 y. r) o) ^" Y
- ;; (null response), then the point is reset back to its previous values.
/ A [1 ^# b2 s9 [( Q7 u. @. G - ;;
c& F d, @5 c9 ] - (defun ver_pt1 (ptype)) q7 O, r1 F$ g! A, Q/ L$ Q; R8 l6 a+ h
- (if pt1
; c3 @! y8 M8 t" F - (progn
3 C/ k) E, {# f - (tempmod pt1 10 ptype)
2 V g; m* ?, x - (entmod elist)
) s6 l2 V" r1 [6 H- ^: \ - )
$ w; b- J( C! m7 X$ j% Q - (setq pt1 (list x1 y1 z1))1 f4 }& [: N/ o
- )# ~9 r, ^. i, t: u8 V
- )1 C; I* v( t4 s* p; c: @
- & A$ k4 v" d& T( s
- ; (move_pt1 <ptype> )8 `1 `8 W! M2 f. {5 H
- ;
% ^2 V: F! {! h# f. m - ; Called in liew of (ver_pt1) to translate block insertions which
3 y4 a: v# g0 i! F - ; might have variable attributes attached to them. If the distance% O$ g, |+ L, M5 t; e
- ; the block is to be moved is < 1e-6, the move is deferred.
* [- _6 U) K) ^0 C, G - , o3 ?, p2 ~- F
- (defun move_pt1 (ptype / basept hi)* n6 C1 Z- K$ e9 p; t
- (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))) N' S: H( b6 W5 @: D e" M' g [
- (cond0 s# |. L" ^* H8 K2 C
- ( (not pt1)
4 s5 l. K% n0 N9 @ - (setq pt1 (list x1 y1 z1)))
0 ?3 a' c+ V! E4 P3 Z
& E* F: L% O" [! ~/ G- ( (> 1e-6 (distance pt1 basept)))
/ A3 B8 a% L6 ^- ~, d- l, d
% ]- @: [8 }6 B5 q/ {- (t (tempmod pt1 10 ptype)
: z' F; g3 i- c+ N: f - (setq hi (getvar "highlight"))
- ]( B. h/ T" x G0 j |; R - (setvar "highlight" 0)# Q5 q$ a1 p6 J- b9 k6 u/ m
- (command "._move" ename "" basept pt1)+ h2 I! [% \$ K
- (setvar "highlight" hi)) d7 S6 X7 m o1 A2 F0 R
- )0 a7 x: {( G( `; d: _! V; c
- )8 z) U r, h3 E- w
- w% L; U$ L- P) L; M f
- (defun ver_pt2 (ptype)# R8 q/ o1 l! j/ J& e$ G
- (if pt2
; J8 a5 p2 k8 D3 W9 D - (progn; D6 ?! a& X7 c9 f' d& u2 R
- (tempmod pt2 11 ptype). H2 v9 ~" R) n3 U, ~
- (entmod elist)
! [( y# \# n( @4 Z0 P9 _7 ? - )
4 g, u; G5 X$ ?8 M+ ? - (setq pt2 (list x2 y2 z2)): z7 J q w$ |
- )
4 a' ]; U1 r, ?* c+ R - )! q' a5 C0 k" T7 i$ P e
, p' W" e0 y9 H8 [: }- (defun ver_pt3 (ptype)
. F* J) e+ K/ O2 R+ | - (if pt3' ~: g. U" w! l! \9 A. D
- (progn/ C% I; m& }4 g, _/ ^" |: s
- (tempmod pt3 12 ptype)% b5 a @6 J0 P7 d3 B6 \% P% h
- (entmod elist)
0 p; n9 N/ @. k& @ - )
1 |+ K5 Z( Y3 i5 k7 B- s7 T/ Q - (setq pt3 (list x3 y3 z3))
/ R8 O/ @7 O! W& c6 l! Y( u - )
2 _) F4 o S/ e* a) D, k! {0 x - )
' m1 v" t7 r* f3 b
$ z0 w9 Y4 ~$ {* Q$ x% F0 m- (defun ver_pt4 (ptype)' ^. I: ^1 s/ U) Y4 C( n
- (if pt4, r; J8 w9 R8 A6 [0 E8 ?
- (progn
. G7 h; X' Z3 v) A - (tempmod pt4 13 ptype)
' Y b3 W1 i' E) [ - (entmod elist)+ r/ Z0 e' s4 o( ^7 l& }* w! s
- )
+ j/ W' l7 a `' g& B( N - (setq pt4 (list x4 y4 z4))6 m& U1 W- H8 O% _* V' ~- C
- )7 v* g& e p4 C8 i1 \4 V, [! R" v% X
- )
- v; U: H# J4 V% C E9 C - ;; Xline/Ray
. g3 Z) p }8 @6 R3 s - (defun ver_xline_pt1()
" r. I2 P8 }$ n8 [ - (if xline_pt14 j2 y1 i# ?" f% ?
- (progn
" K, G1 ~% g8 c& E - ;; convert to WCS." E% T# Z6 d& U8 v; v& a
- (setq value (trans xline_pt1 1 0))
9 O$ G- ]6 p! A/ h - (setq elist (subst (cons 10 value)
& t" E/ ^. I2 [8 {# u( y - (assoc 10 elist)
8 Z, `5 Y! M) | - elist
( `; y' w3 g/ L& r1 R6 n - )
& j7 C' o% Z: i% J5 c - )
3 z/ |; y% N( x( D# }" C0 b% t - )
# x3 [0 @! n* F, ^# j6 T1 d - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
! E2 H( ]' R' m7 ^ @8 X - )
$ r( e( S( p R9 X e/ }. c - )) _0 |5 d1 u$ I# ]. |
) i1 A( ]. x2 F' x! G, @- (defun ver_xline_pt2(), m* O E# h! ]2 H
- (if xline_pt2
$ a9 C' v3 y5 Z9 M - (progn
2 _3 e& E U+ j* R3 f - ;;
% ` G6 v1 s1 K( o3 ?# I - ;; Calculate new Direction Vector WCS
3 b( V+ O, a* I( q% Q - ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))# O9 o# i) u6 L1 J) n0 O7 M# U
- (setq temp_dir (trans xline_pt2 1 0))
3 |4 a2 d. O: _# J; u. o* i9 r, ^ - (setq temp_dir_x (car temp_dir))2 v( `2 r8 Z" {* k" I9 h
- (setq temp_dir_y (cadr temp_dir))
' o x! E, L! b - (setq temp_dir_z (caddr temp_dir))1 [, }% c/ @2 a- Q7 T0 l! B4 h4 m
- 4 m3 E# X; h* f
- (setq temp_xline_pt1 (trans xline_pt1 1 0))
0 A2 K1 K4 j# j' `1 o - (setq temp_xline_x1 (car temp_xline_pt1))
' G5 x( N1 h- G - (setq temp_xline_y1 (cadr temp_xline_pt1))
3 D' F0 ~1 t5 F - (setq temp_xline_z1 (caddr temp_xline_pt1))7 u- k; ?0 \; ~- K- W
- - ?8 D2 e% y5 m2 m
- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
* _/ u% Q0 ~7 R2 ?5 L* U- ?# A - (expt (- temp_dir_y temp_xline_y1) 2)
# y: c5 W/ p0 p& k2 v7 @% E - (expt (- temp_dir_z temp_xline_z1) 2)
7 J3 ~& |$ O/ M: x9 L - )))9 D! `9 t/ m% e/ e+ k: A
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom)) h& |$ Q! R% ?2 Q7 N9 i- T/ C/ l
- (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
" S9 `5 H3 K; v - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom)), f! ?# v0 W) T0 G
- (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))5 G6 J# |" [$ O0 n7 V! L: r
- (assoc 11 elist)
$ i# \, O6 h) v) x - elist
4 T+ K3 U& C. ^3 `8 J- p# R; a) y' T - )/ Z+ F& u5 P5 U9 _- f: R) L
- )
2 b" x+ V: L l9 e) w h - (entmod elist)0 w) _5 Z G, B/ \9 P
- (setq xline_x2 (car xline_pt2))
4 W7 U3 T( ]* n3 p: j - (setq xline_y2 (cadr xline_pt2))
4 V+ P' p# W$ |6 j - (setq xline_z2 (caddr xline_pt2))
; }2 o# W) C) q+ H0 v4 b& e
& A( t( w a; S- P2 @. o; T n- & `# ]& Q: A6 A6 _
- )
$ K; G. H' J8 z1 m+ V' \ - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
" T) u4 C9 _; K5 C: W - )
8 G5 c( z3 s1 i2 A/ J6 \4 Q - )# {# ]8 G0 u+ V& a9 k- t
- # h. d3 G8 c q7 h" Y0 i
- ;;
9 c6 {& N: }7 {" x& ^/ j - ;; Common properties for all objects
; I% Y1 y# P' S& n- L1 A1 B4 y - ;;
9 g u/ D) c% T! X - (defun set_tile_props ()) _7 y; z. \2 M, S6 g
- (set_tile "error" "")
7 A/ L4 B+ i! S9 G' b, @ - (setcolor)
7 ?% h3 |2 L: A# V8 z; s( H - (cond
1 h7 Y) H0 S0 T2 C - ((= eltype "BYLAYER")
) r3 _3 O6 z$ b! f9 n' Y - (set_tile "t_ltype" (bylayer_lt)))5 ^( D& A! s* G, T
- ((= eltype "BYBLOCK")
; u0 R6 `2 `9 ]( Z - (set_tile "t_ltype" "BYBLOCK"))# D C) Z& z+ E5 | c9 g; V
- (T (set_tile "t_ltype" eltype))5 ?: U: R$ T' ^' {
- )
; z- f4 E5 Z, n2 P - (set_tile "t_layer" elayer)
& M8 q/ _& B2 h' Y) R% e - (set_tile "eb_thickness" (ai_rtos ethickness))* q: G' V L6 `
- (set_tile "eb_ltscale" (ai_rtos eltscale))2 D# T, O3 d0 e( g" R0 Z
- (setq which_tiles (ai_common_state etype))
6 K5 [1 x" G9 v' O$ E- P! b7 l# E - ;; Disable tiles if need be...
3 D9 H9 I' E* f% \9 E - 8 M7 q; @# I. \4 O8 {
- ;; Layer Button and Text Field
( P6 K3 ~$ E. [1 R& Q' s# W; Q; R - (if (/= 1 (logand 1 which_tiles))# |* Y2 Q8 R, \% o$ j
- (progn
) t! w. v! F( M$ D6 D& E - (mode_tile "t_layer" 1)$ R7 W% Z% w) b4 _9 w9 c$ M! |) K' k
- (mode_tile "b_name" 1)2 I7 I! _- L) R* Y3 W9 r+ ]8 }$ s+ W
- ). Q/ F M9 U8 ]. F- T
- )
7 [; A" z$ H6 ?" _ - ;; Color Button and Text Field( |2 S' }# G& F- |) A: J! M
- (if (/= 2 (logand 2 which_tiles))/ Q, g$ J8 f w, [2 b' z) V
- (progn
$ L4 ?8 W! U1 w* |: A - (mode_tile "t_color" 1)3 o/ p7 P0 j5 u1 W n1 e2 u
- (mode_tile "b_color" 1)% z: u! ~' k5 i, d) ^/ |* L+ ]! u7 b3 _
- (mode_tile "show_image" 1) ^6 h% y) L' e+ p
- )
9 X5 T2 N9 q) r* q - )
' h4 V/ i2 S; j h. x. N - ;; Linetype Button and Text Field( \5 E5 N3 E! Y/ Q" t* Y& n' J6 W
- (if (/= 4 (logand 4 which_tiles))& A% _4 {* g! ~- N4 e7 @, D; m
- (progn( V; I( x/ I; Y, r" f, g$ \
- (mode_tile "t_ltype" 1)
2 f1 P1 U6 Z# j; @ - (mode_tile "b_line" 1)) h6 I1 {/ O2 V
- )
9 I4 |! j- ]1 s5 R8 Z' E% l: Y7 ^ - )
! W- J' k4 A% q* ~8 z9 c2 Q. W - ;; Linetype Scale Edit Field
. f5 c+ V' y; p* M# V& A5 S2 A8 p - (if (/= 8 (logand 8 which_tiles))5 L3 B# X8 C- ]* Q) o* R, ~
- (progn8 f: s7 q2 i0 o3 B% O! H
- (mode_tile "eb_ltscale" 1)
# h+ R4 Y9 L' v: U - )3 c, _ @ E- f0 w/ O* y: p
- )! M6 s- Y( t4 ?. ?' p o$ V5 V
- ;; Thickness Edit Field.
" {, m6 }2 ]( h2 I6 O) I! ^" K# I$ j - (if (/= 16 (logand 16 which_tiles))
1 K' _6 |& B0 y4 O! u$ {! x8 q - (progn; U: |4 B: k$ Q- u# O
- (mode_tile "eb_thickness" 1)
5 c) C; ^ o: R' k$ [4 ~ - )$ D2 V1 s% w& }1 x, W
- )
. H: P/ n6 I( G, z6 Q( E& S0 t' ], Q - ) v9 O! ?3 B) ^6 S
- ;;; E Y" v* R- H. r, S: Z) i
- ;; XYZ Point values for all enitites
) B: y+ h4 K9 i$ i, L. W& E; N - ;;5 ]/ [0 Z: M! F/ n7 m6 E
- (defun set_tile_pt1 (ptype)
3 T5 u" m8 F" z& r- d+ ~* F+ A - (if (= ptype 0)
4 }+ I1 k5 d6 Z0 s% J - (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))
' p/ S6 H- j5 G% c - (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
5 C# E" H# o% }+ _/ t - )
& k$ K: @1 _' q! P! @5 m7 ? - (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1))))
* i. }$ T) F0 H a6 A* t0 T - (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1))))
5 \( B h3 o+ @. g; f - (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))" Z. c; a6 O; t- k- e/ J z
- )
/ H6 u" w( z, E - (defun set_tile_pt2 (ptype). H6 w8 S: x0 X9 k( Y% s1 e
- (if (= ptype 0)& p) C& j$ E$ h! T W/ h' t3 m* K
- (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))
Q: |& N. Z& d7 ] - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
" ]" e+ I. e9 d: E6 b - )1 ?7 v7 Z z$ p1 Q8 H- F( @7 W
- (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))
/ B* J @2 V/ e3 P - (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))$ ^* y" ~0 m6 ^9 D
- (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))) Z9 K3 _- K/ \* P* P
- )9 x5 P1 ~! g+ U& p9 [
- (defun set_tile_pt3 (ptype)6 c/ x! q" }# z! K; ?/ J
- (if (= ptype 0)
1 `+ b# w1 M7 l# g - (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))7 [! `0 ~: ?9 T$ a. Q8 ]
- (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))
8 e: A& ^, H" P5 K2 k& C - )
+ @- N$ m; @: ?. P" d% A! s - (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))
+ D& H( d& X! R+ u+ [ - (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))5 b/ E8 I3 }* ?7 l1 C
- (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))1 U z/ f: @0 e" f+ b
- )
1 O L! B! s, o" B: q! e - (defun set_tile_pt4 (ptype)
( V! k3 C) A4 L/ ]* N; \2 b7 x - (if (= ptype 0)1 y2 n% b* E# j, @
- (setq pt4 (trans (cdr (assoc 13 elist)) 0 1))
! q2 A0 [, p9 b( C# A) s8 F' V% d# g - (setq pt4 (trans (cdr (assoc 13 elist)) ename 1))
+ G$ ^- _6 v* d* c1 D% | - )
: ?& E/ b. f" O6 h4 u2 V - (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))* P7 C4 d: z [. ?+ W2 |
- (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))
+ N8 M0 G2 X# G' q# Z9 w - (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))
& _" F1 U! }) Q/ I5 S - )2 i/ c# B4 v& |1 L/ P. o2 E
- ;;
; W( ~: E/ a# k* s - ;; Xline/Ray
$ U& k( \( X4 |: j - ;;
8 @& ?3 G# B! O - (defun set_tile_xline_pt1 ()3 M6 \, j3 h: v' J7 O1 Y; w
8 t: N+ ]. Z. h# j. U+ k; ^* x+ R0 n- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))" W8 H6 y, W' B- H4 e
- 6 J) c# T2 E E' W- H
- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))
7 [& F! X4 [! B% p, _, u/ W - (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))$ o$ ~. c! {; v/ [' V
- (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))
. J% I6 e5 U2 j: w - )5 e5 Y; \7 X; K% m; y! p
- (defun set_tile_dirv ()5 t6 p! C2 N- ]% y
- ;; Convert 11 group to local UCS (displacement)" W9 H0 e' e) I( H. d, F- Y% }) F# q' x
- (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1))
/ k# V2 `( X: |' |- O. G - 8 Q7 O) `; e- [7 `. Z$ W# K
- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))7 ~2 D" V' f/ O
- (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))2 k- z/ s M7 g9 T
- (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))
3 E: N4 i6 e, x2 v* J- j' K5 C - )
; S% m- E$ i. q9 ^5 \5 F - (defun set_tile_xline_pt2 ()7 M6 z) K2 G# ~: ? |: ?5 J
- (if (not xline_pt2)3 c( `- ^& \8 p [5 c
- ;; Initial second point is Root Point + Direction Vector
% N4 O. A# G7 o- N+ ] - (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))0 F' r& U1 C0 T: \' I. U) }" G
- )
. \6 R1 g9 B6 Z: Z: k' s - (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))
6 x- e+ O' G$ D( {! x$ B - (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2))))
* _- Q; |8 g5 {2 s, a* e - (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))
& o9 P" W. N+ n# [7 d# ?& K2 J - )' y j- Z3 p8 n8 ^( v& [
- % C4 t+ C5 T. d2 ?9 S
- ;;- D5 n5 v# q4 i6 Y# J, P# _
- ;; Handle for all objects8 L) L+ v/ h( `: O; y
- ;;
5 }' [$ b: i% l - (defun set_tile_handle ()3 y+ w0 V* A9 u% }
- (if (setq hand (cdr (assoc 5 elist)))0 n5 R# H k; h! [2 e, B+ `
- (set_tile "Handle" hand)
: C3 I, X& E/ \2 B4 e - (set_tile "Handle" "None")" R+ w/ j8 X' J+ S: ?5 ?
- )& N( y8 H9 X- D- l1 A& N4 z9 |/ U
- )
& ?9 K9 K. M# P' \7 d* ^ - ;;8 f$ {- f$ a; e
- ;; Radius for ARC and CIRCLE) B5 H% i0 W; L8 {" b! l
- ;;& V% g8 @6 i# M8 i7 e" Y
- (defun set_tile_rad ()
! ~( k$ N4 P: k7 @6 V% F9 q) b+ Z+ C) _ - (setq radius (cdr (assoc 40 elist))); F/ r4 D L3 G
- (set_tile "radius" (ai_rtos radius))
: D# e# a6 A8 ~5 m8 D - )5 P* Z2 [- I5 k* @, ^ M0 A( y( p$ m
- ;;
# `' s* J- z; a3 } - ;; Start angle for ARC
8 k: t+ B9 W- d6 |. \3 { - ;;7 [" s. P# G7 B
- (defun set_tile_stang ()& X9 \: p- Z5 U ?0 L* r! B
- (setq st_ang (cdr (assoc 50 elist)))( y( q6 @4 z; f- A, E6 n ]
- (set_tile "st_ang" (ai_angtos st_ang))
9 q+ N8 ]. I- R4 d- _4 D - ), k! C: b+ H' l* H: i1 }+ m5 o
- ;;
- ^1 L+ y9 [; Y5 P - ;; End angle for ARC- R) o# j1 s, {! [: C X! G
- ;;
2 t) |/ j- y5 Z2 ]) c( j - (defun set_tile_endang ()
" _# F0 J' F1 Y. I, y: C - (setq end_ang (cdr (assoc 51 elist)))$ n: u" C! E5 b7 O
- (set_tile "end_ang" (ai_angtos end_ang))* l: x: q; O( H0 \
- )
9 a+ F! a# N/ _ - ;;) L2 t2 a( ~9 }4 A) V V
- ;; Rotation Angle - Text, Attributes, Block insertions and Shapes
8 W/ `2 K* m0 C+ `4 d7 l: r - ;;( J5 w( w( o) p- t
- (defun set_tile_rot ()& i1 I" f7 B0 z) S( e
- (setq rot (cdr (assoc 50 elist)))
7 C$ S3 p0 Z% e! U* y4 k - (set_tile "rot" (ai_angtos rot))6 S5 [$ X; k: p- s2 j v* |
- )
& R3 Q/ F) H* }+ T& c$ X - ;;
* {6 }( h$ W% I6 p( ~) w - ;; Height - Text, Attributes and Shapes5 B5 Y% n! M* W3 j0 f M
- ;;8 E: \) _% x' B1 O
- (defun set_tile_hght ()
D! @# G! D% I r" D8 [ - (setq hght (cdr (assoc 40 elist)))+ r8 u- K6 j6 ~/ {1 ?, p2 C
- (set_tile "hght" (ai_rtos hght))0 f, O% R" q, R- t
- )$ A1 d. t* O9 x2 @8 \4 l# F
- ;;1 ]; a2 E+ ~7 `. x' D# F3 K
- ;; Width Factor - Text, Attributes and Shapes1 _1 k6 x! M* F7 x! `0 K
- ;;: F* e; \$ v q( @) b- M5 y/ |( P
- (defun set_tile_wid ()5 \3 b9 L: U3 v/ M
- (setq wid (cdr (assoc 41 elist)))! Z j; x- J- k2 `& G7 X
- (set_tile "wid" (ai_rtos wid))
* o7 p3 E& T: Q/ G4 ^ - )2 k) T2 _0 U1 l1 R
- ;;8 d; W n; Y& }7 @0 o. y u: y
- ;; Obliquing Angle - Text, Attributes and Shapes
; b. }% J& ?# `( d# ^ - ;;) i$ d! P9 M6 A! y
- (defun set_tile_obl ()/ d# Y# u; ~' M6 h" R5 |* J7 o$ F
- (setq obl (cdr (assoc 51 elist))) c3 W$ o* o5 n6 p" J$ Q. K8 W5 u
- (set_tile "obl" (ai_angtos obl))
& @ P6 F- f% s6 C - )
& N7 R% ?0 q- h - ;;
) B1 T$ \ S! ~/ ]6 p2 f2 E - ;; Text string- J& C& U. i' \; c4 m
- ;;
/ ~& j9 ~" h( ^: V- G7 Z( I/ p - (defun set_tile_text ()
: }2 J; g9 ?& R$ ~3 c - (setq text (cdr (assoc 1 elist)))6 s; \: w. d- c2 L/ P. \* {
- (set_tile "t_string" text)+ U) `% a0 I' t3 }4 x8 _) [$ V
- )
# u% L( R* T9 Y! w- Z# V: _ - ;;
+ j, Y/ T( M5 S' \% G - ;; Attribute Tag$ \9 ~' B0 a0 q9 i7 f/ b
- ;;) s: ^( Q% G! B9 ?. }
- (defun set_tile_tag (); P9 @8 a, P v/ X% S8 c
- (if (= etype "ATTDEF")1 F8 r0 o# D* e
- (progn
. n0 c( S9 r' ^( I* l1 k1 _4 q - (setq attag (cdr (assoc 2 elist))), o3 ~8 `! f$ w l, G
- (set_tile "tag" attag)+ a/ @% ^7 g0 J0 B
- )
+ \( H4 H$ u C - )( Q/ t4 B" J9 D2 t" c
- )
# M# P! h9 l: f5 A& p7 g- c& W - ;;, W& ?# g) ^" X2 N$ }
- ;; Attribute Definition& }: H/ F% P; A4 y: E. l
- ;;
1 m7 f, O" r) _ - (defun set_tile_prompt ()- F% M5 F$ s# O
- (if (= etype "ATTDEF")/ O2 [. c- ^4 h% k# B# i
- (progn
* ]. G$ [: o4 ]* s3 Y5 ?# E; Q- p1 w - (setq atprompt (cdr (assoc 3 elist)))# E" P6 y. S! x; p) `
- (set_tile "prompt" atprompt)
9 M! C$ w' E+ \2 Q' _: M/ Q( I( o - )- L, k( C/ r4 W
- )8 r! G `6 d6 K7 P: p3 k/ W; u
- )& B7 b% r5 H8 ]; d! {1 I& a& a
- ;;
2 ^& x1 B! h5 g# e" M4 I: W - ;; Justification setting for Attributes and Text. Initializes
% i0 z2 h8 ]/ k7 z# f- i - ;; popup list box
( j2 P0 Y- V" v! f! }+ o - ;;6 A P- s# k! }" {- x1 ~% U: U
- (defun set_tile_just ()& t1 B$ R0 x2 n' I( W
- (setq ha (cdr (assoc 72 elist))) ; horizontal alignment
" ^1 t; g n0 q& G - (setq va (cdr (assoc 73 elist))) ; vertical alignment' f, p+ P9 U, H) c# W& p0 F, v
- (setq ha-prev ha); P: ?2 x/ T5 \7 w
- (if (= etype "ATTDEF")
7 j4 N4 S9 H ^5 u! l7 x0 a - (setq va (cdr (assoc 74 elist))) ; vertical alignment
& X$ O8 B, ~2 B2 {$ _: K, l - )" J' E6 t" G: @
- (setq jlist6 w1 b! q- N7 q; n
- (list "Left" "Center" "Right"6 S, }8 x" ]( r8 M4 ~
- "Aligned" "Middle" "Fit"
4 J# B' L l" ?( z, a* ?) U! i - "Top left" "Top center" "Top right"
3 F2 F( m2 s! K - "Middle left" "Middle center" "Middle right"
! B. L& X& v/ j6 I6 M+ U - "Bottom left" "Bottom center" "Bottom right"
/ U: z6 T& f- y m& i8 ?& v - ); Z! \- Y# f$ j/ y8 M( q! @3 X7 t ~
- )
$ u- Y8 q1 X5 M# d1 G - (start_list "popup_just")! C; }) O7 d/ }# @( A
- (mapcar 'add_list jlist); l' Z7 S2 M0 l# r6 ?3 I. E {5 p9 ?
- (end_list)* l; H2 j" t- T8 N3 b% e m9 m
- (set_just_idx), A8 W9 o, X0 U" h2 N0 o7 E
- (set_tile "popup_just" (jlist_act just-idx))
3 l0 O/ @: T2 f4 E/ u9 m - )% w; q! ~$ d* P! K. M, ?
- ;;
( I& E1 ^% h$ \- O) }' h - ;; Style setting for Attributes and Text. Reads symbol table for popup list
! g% d) P# u. M3 y. q* e - ;; box.
m# i( y+ }8 g; y- |6 ?' v& u - ;;
, s7 y8 x& k* n) p - (defun set_tile_style (/ sname style-idx tlist), ?# q3 h) o3 t0 E J
- (setq tlist (tblnext "STYLE" T)
, V0 h3 Z% R6 N0 x4 Y5 V2 ] - slist nil)
) _6 s1 E7 g- H* @/ m& G - (while tlist4 A' E/ T1 l5 E! L# u+ i$ u$ }+ ~
- (setq sname (cdr (assoc 2 tlist)))* D8 X3 r) w, N" L% Y, }
- (if (and (/= sname "")/ y* J& T" |. r! N' L7 D9 q
- (/= (logand 16 (cdr (assoc 70 tlist))) 16))
& Y1 j' L3 p! X - (setq slist (cons sname slist))), B# Y( R1 h0 A& h! ]* w0 v
- (setq tlist (tblnext "STYLE"))): q! u( _5 ]4 Z7 l
- (if (>= (getvar "maxsort") (length slist))) m. d, I2 T$ P6 X
- (setq slist (acad_strlsort slist)) ; alphabetize style list# A- }! N4 d3 i5 C+ Y
- (setq slist (reverse slist))) ; or reverse it to put it in DB order; w# a( w2 K* u& |$ B6 k) l3 ?
- ' u2 i8 A0 E# P2 f9 x
- (start_list "style")
# n$ r0 y( k+ H t$ M+ ~ - (mapcar 'add_list slist)
! Q7 P# h4 ]* k: R - (end_list)# l. c' f( _4 A* U" a7 U0 `
- (setq tstyle (cdr (assoc 7 elist)))/ {! Q9 Q! b/ V
- (setq style-idx (getindex tstyle slist))0 h: b0 H, \( o" G
- (set_tile "style" (itoa style-idx))
8 x- J" a- r6 a& h" V1 h - )
. X! |* a6 g. ^. `6 R. m - ;;" [/ J! a3 k( V( g- s
- ;; Text and Attribute setting - upside-down, backwards
, D# Y9 ?! g" { - ;;
* F, Y: w" H9 n" v+ M" k8 @ - (defun set_tile_bk-up ()1 |8 o5 Y' h, W' _7 D
- (setq bk-up (cdr (assoc 71 elist)))+ k! ~4 s: s1 z/ i9 @
- (if (= (logand bk-up 2) 2)% F, X$ X( V# e- D6 y3 k+ R- E: G
- (set_tile "bkwd" (itoa (setq bkwd 1)))# d( x0 X; P- @
- (set_tile "bkwd" (itoa (setq bkwd 0)))
" X& c; M W% H6 T - )) G J5 H% w8 Y( S" U. n; } P
- (if (= (logand bk-up 4) 4)
3 I1 y- G) Q* f- J1 | - (set_tile "upsd" (itoa (setq upsd 1))). \/ V# t$ V3 z
- (set_tile "upsd" (itoa (setq upsd 0)))" W4 K9 m' x1 |$ v' j$ v
- )
$ q9 ~2 e9 c4 T2 S) l5 ]+ V - )# Y* h1 O9 X+ K
- ;;" O9 L# y: g9 _; v1 `( _6 a8 Y' n
- ;; Attribute setting - invisible, constant, verify, preset" k. a$ F# \! q0 ^; b& J
- ;;
0 b2 M' a. n: j. c u0 J% z7 ^, b! r - (defun set_tile_icvp ()
2 M; k' U2 u# M" Z4 Q% J - (if (not (setq icvp (cdr (assoc 70 elist))))6 h) u- z( z7 a/ ^' T$ S& ~7 Z$ k5 x
- (setq icvp 0)
7 e. w) a5 r7 ? - )
. a4 i0 A2 R- l( ]4 k. c) m - (if (= (logand icvp 1) 1)/ r6 g: K* E$ A" ?
- (set_tile "inv" (itoa (setq inv 1)))
" v3 M0 t7 B$ s/ b5 \5 r/ d - (set_tile "inv" (itoa (setq inv 0))) Q9 T% v7 _# q/ [" l$ X
- )! N) Y* w2 ^' e! o& \
- (if (= (logand icvp 2) 2)
1 {, T+ p f# j/ Y( t3 A# H) }* W - (set_tile "con" (itoa (setq con 1)))
, @* E3 ^$ g% G1 u+ o3 S - (set_tile "con" (itoa (setq con 0)))
4 H c _( C' l3 I - )) c4 M b5 M9 i8 G5 m; B' s
- (if (= (logand icvp 4) 4)9 u9 l% q# Q/ k; T
- (set_tile "ver" (itoa (setq vfy 1)))- R# D4 d3 S3 P' s, r* I* E2 ~
- (set_tile "ver" (itoa (setq vfy 0)))' }" a3 \: b2 T$ q5 C- X- b2 s
- )" _, p$ X+ G# t; P3 `& z
- (if (= (logand icvp 8) 8)
0 W' `2 e, n1 Z$ C* l! b - (set_tile "pre" (itoa (setq pre 1)))# {1 g& Z' U# _
- (set_tile "pre" (itoa (setq pre 0)))
3 G8 v$ W+ z7 v' J8 q - )
3 k# x+ |8 R% `# ] - ): C: o& U2 @' T( M
- ;;
+ u; Z8 R3 b1 d- s - ;; Scale factors for block insertions
* N$ { L6 D9 N% ] - ;;; H6 F# E' r- k- O
- (defun set_tile_scale (/ temp)
/ W4 R+ z1 p) ^ - (setq temp (getvar "LUNITS"))
7 N' D" j: m5 h* M+ G' [) a6 ? - (setvar "LUNITS" 2)
7 Z8 a% s$ N, C' m7 D, { W - (setq xscale (cdr (assoc 41 elist)))
1 g* `: d- V6 f/ [ - (set_tile "xscale" (ai_rtos xscale))7 x% N3 t6 d8 X) u# D
- (setq yscale (cdr (assoc 42 elist)))$ {8 i' L2 ]% N+ g% {# d- r' S. @ r
- (set_tile "yscale" (ai_rtos yscale))
+ I3 I4 J* X6 [: t - (setq zscale (cdr (assoc 43 elist)))& U% [5 \5 { z* \, p
- (set_tile "zscale" (ai_rtos zscale))
2 y6 w% \3 f* {8 E$ B/ x - (setvar "LUNITS" temp). r8 \& d& A/ T( h$ z7 D1 n, z
- )
. [" B& \. e4 i0 D* \% e - ;; a' H9 [) |) u" E
- ;; Rows and columns for block insertions
# m7 P; v2 }& k% C - ;;
! u8 c: U/ b- H0 z* b9 | - (defun set_tile_rc ()
7 l. c$ n' {$ v* q4 X1 d7 x( o: y+ H - (setq columns (cdr (assoc 70 elist)))
: B c& p5 {: d+ c, C, r w - (set_tile "columns" (itoa columns ))
, Y- Z9 B4 L: d, g6 {. I- L - (setq rows (cdr (assoc 71 elist)))$ T; H8 L2 Z G% X4 \
- (set_tile "rows" (itoa rows))' k& E( b2 Y( }7 a
- (setq col-sp (cdr (assoc 44 elist)))
/ `$ S0 N; L' {( w/ _; h" ? - (set_tile "col_sp" (ai_rtos col-sp))
. }+ { C. ~& R% |; Z8 l9 m4 w - (setq row-sp (cdr (assoc 45 elist)))
3 K1 p+ b; x4 ~7 c; |+ r, p* ? - (set_tile "row_sp" (ai_rtos row-sp))
* s) b) ~; @& N# `( ^% ]& [ - (if (/= hasclip T)( l( \! z- k; N+ D
- (mode_tile "xcliponoff" 1)8 f0 p9 p1 J9 C k0 a5 f* a
- (set_tile "xcliponoff" (itoa xcliponoff))
) j) \7 M! H" O- [* ]& V - )
. A+ i; i5 {: T" v& Z - )$ f0 L5 |$ O; @; b& I( [' i$ u; A
- ;;/ N; @) e- U3 z
- ;; Invisible edges for 3DFACE: l4 K7 I0 E+ v/ I3 t
- ;;
8 b+ g7 k$ r0 J# f: w- D - (defun set_tile_edges ()- q, [% [8 e5 L) m( y$ T
- (setq f-vis (cdr (assoc 70 elist)))
' E: k- s/ k% _) B* ] - (if (= (logand f-vis 1) 1)
; E" s$ c" ]0 j/ ? - (set_tile "edge_1" (setq edge1 "0"))& _) S& Q |! U
- (set_tile "edge_1" (setq edge1 "1"))
S7 n* o8 b/ x# t( \1 u5 w - )" z) {: ?5 t4 k' @ S: F- S: s
- (if (= (logand f-vis 2) 2)
2 r/ k7 l8 g s( [0 | - (set_tile "edge_2" (setq edge2 "0"))- N) {% {# t$ V1 z4 x
- (set_tile "edge_2" (setq edge2 "1"))5 F2 h; A1 l# U) v7 i8 c
- )) i5 [8 r- \2 r* n; l* F
- (if (= (logand f-vis 4) 4)3 v- N# M. w* F/ R/ C
- (set_tile "edge_3" (setq edge3 "0"))
+ l; A3 ]9 b+ A( k- E" g$ D - (set_tile "edge_3" (setq edge3 "1"))# ~4 d/ c5 ^: a$ X7 ?1 n. q, F/ g2 a
- ): ] B6 ^/ `8 K: ?& h. N# P
- (if (= (logand f-vis 8) 8)# a4 V, y+ I: Q" z/ ~
- (set_tile "edge_4" (setq edge4 "0"))! I/ g5 F: q1 S0 j. ^+ z6 _
- (set_tile "edge_4" (setq edge4 "1"))
& Y7 ]" H1 Z Q% s - )
# y1 B# |0 D% Z. { - )
2 @7 g, Y1 q/ X( U" [1 p( x# p6 g - ;;4 }0 B$ ]) l( \9 J9 v
- ;; XYZ Point values for polyline vertex
6 F# t: W5 I" q. k - ;;
0 c6 s. t7 g* C4 L - (defun set_tile_vpt (ptype)
; Q* `3 a' {/ J/ T - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")- X9 ?' l- r0 C7 d% A
- (progn
8 O" {8 i& e5 T - ;; ctr is 1 based, vertices are zero based.
' f/ J) S, r& Y( Z" I, R - (setq vpt (cdr (getLwVert (- ctr 1))))# V! k- L7 z, |5 R6 F3 j% G. f
- (set_tile "xtext" (rtos (setq x1 (car vpt))))
9 N7 Y0 c) r* ]; T6 g - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
5 a' R/ D; X; P7 w' r% [7 A - (set_tile "ztext" (rtos (setq z1 (caddr vpt)))). Y" D5 Q$ {/ G
- )7 O# u5 O8 P9 X2 Z1 }: a
- (progn4 m2 B% f: a! x+ J; L- a5 T
- (if (= ptype 0)
+ `: @. l3 r8 D4 o) {0 \- L( v - (setq vpt (trans (cdr (assoc 10 vlist)) 0 1))
. c9 `+ l3 u- f - (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))6 D1 o' N' B. Y8 B
- )
2 p d* _5 x; A1 [+ A% h - 0 _) b. X. [. X" r. }! H/ L) C
- (set_tile "xtext" (rtos (setq x1 (car vpt)))), C0 T; e9 Y8 D+ `6 D3 c
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))7 P) W, A. J3 v! b$ V
- (set_tile "ztext" (rtos (setq z1 (caddr vpt)))); f7 r" o6 j4 G' Y3 A
- )) O! i0 z% v% O0 ?
- )+ B! J' I Z* q7 X6 P# `
- ! z/ v* e7 ?* Z. o+ g+ C A* ~$ G
- )5 f# {! {- G0 T; y
- ;; This is the equivalent to doing an entnext on the heavy weight0 ^, Q% b. ]3 K k- `
- ;; polylines. The hard coded '4' below allow stepping over the( V6 d7 o: ~4 a3 X) f* _2 ?
- ;; 40 41 and 42 group code information. The while loop finds the3 w a: I& v7 `, E; K; T) [3 w3 {7 E
- ;; first vertex which will be used as the starting assoc in the
# L5 R/ U* G) c7 b o( \ - ;; call to nth.
$ l! Q& X7 |/ G* ]" V$ W) u2 S - ;;
6 K! S. c, f: S3 F - (defun getLwVert (tmpctr / count tmp)
) [% @. }% x! [* C! ] - (setq count 0)
. q5 M& i+ I' M - (while (/= (car (nth count vlist)) 10)
. ]' q2 @! ~4 }& K - (setq count (+ count 1))
$ K6 N* B' y5 w! I8 P - )
9 ?5 X( L1 b, p- m" V& x' A; ] - ;; If the counter reaches the number of vertices,
) W) C- V2 U8 l& D* g( Z( l - ;; reset ctr and tmpctr to zero again.
% t: ~ ?+ M9 o - (if (= tmpctr (cdr (assoc 90 vlist)))& ]7 M1 }" }' x' N( l
- (progn* h; R" c% t2 c7 D1 s* E
- (setq ctr 0)8 i! F! y, g L# F* Y2 O0 k
- (setq tmpctr 0)
% t4 H$ p6 N+ I4 p. o& L8 k7 j- X# L$ [ - ); y: l& K& D- w) M
- ); B; J: v& d" o2 g8 {
- (setq tmp (nth (+ count (* tmpctr 4)) vlist))% L& I; j7 I7 T
- (setq tmp (append tmp (list(cdr (assoc 38 vlist)))))
' ?0 E, }; z2 q( f- P# P - (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))
% V7 L# y% H9 ~$ d; e3 h8 b6 h. G - (setq tmp (cons 10 pt1))
3 a, ^/ x! K; [' T - (setq tmp tmp)
1 T. D/ u5 {8 Q2 D/ C. O - )& L" P! t- n4 d2 @2 K
- ;;
4 U3 b8 U2 I5 k- a' g - ;; Set tiles for Spline properties. If the spline is rational then we
& {+ f6 _4 @* S" i$ q ]2 p - ;; need to display the weight values of the control points, so set
% j1 h d- c5 u4 l - ;; flag to 1.
$ A! z. p+ d8 f/ k1 ~& X - ;; 1 = rational spline
8 H9 J- W8 y5 O: Z8 `/ `4 F4 l - ;; 0 = non-rational spline+ t' W+ s6 ]* _) }. V1 p
- ;;$ _2 D/ s ~$ c( q
- (defun set_tile_spline_props ()
1 n8 J& Z9 O$ A; c3 }9 j - (setq rational_spl_flag 0) ;; initialize rational spline flag8 x/ J8 |5 s4 y1 C& m
- (set_tile "Degree" (itoa (cdr (assoc 71 elist))))
; l: @$ g. `9 w0 H/ ?) N# a& r - (setq bit70 (cdr (assoc 70 elist)))' K! N& @0 _! @ r/ f' I
- (if (= (logand bit70 1) 1)
& F( \ l% h7 u3 W6 i N' a - (set_tile "SpProp4" "Closed")
( q$ l$ J' M. ]- V1 j- S - (set_tile "SpProp4" " ")* v' r/ t) n @" W% q" b
- )! _9 N- B* ?# d0 m: o" y$ b
- (if (= (logand bit70 2) 2)
: B. Y) n, c6 | - (set_tile "SpProp3" "Periodic")+ z4 j1 f5 |0 p+ R% Z
- (set_tile "SpProp3" "Non-Periodic")
6 _% ^! ~ x; _' T3 H - )9 ~* K' K7 Y! ~" y
- (if (= (logand bit70 4) 4)5 M0 p% z3 W9 N+ Q
- (progn) R9 V. T, w9 W% S5 e: _9 g
- (set_tile "SpProp2" "Rational")
( h) J& ?$ c, }6 ?9 ?2 m - (setq rational_spl_flag 1) ;; this is a rational spline' f5 W. Q3 u3 r f7 H _1 a2 z j
- )! ?& \' _4 p# ? `" A
- (set_tile "SpProp2" "Non-Rational")6 s; U1 w4 A6 {7 r9 q& |/ m
- )9 i3 G; o. `, K; {- u5 J
- (if (= (logand bit70 8) 8)/ k3 U8 Y+ p! B3 s/ [3 i1 Z
- (set_tile "SpProp1" "Planar")
5 r8 `5 B" u; e) G1 S5 R - (set_tile "SpProp1" "Non-Planar")
v+ Y9 i4 z/ P# G+ t$ |- v+ { - )( [! I6 j) b C( n" p3 k' T
- (if (= (logand bit70 16) 16)
$ F# R/ q' _3 E9 C - (set_tile "SpProp5" "Linear")& G" m( @+ y, P$ S; M
- (set_tile "SpProp5" " ")9 E5 f6 g9 L( Q5 ^8 Q0 C2 g
- )
( _0 k1 o9 w4 s) N# E - )' _+ t* i7 ?$ d9 N
- ;;) G( s, I0 r4 I) U! q; f0 m
- ;; XYZ Point values for spline points3 I9 H0 d: j, k8 c) j$ @+ L
- ;; Need to account for WCS/UCS, Z% y) X" B2 |
- ;;1 v" f: U& v; w) b7 M
- (defun set_tile_cntl_pt (). V. E: H( t5 ^0 q. r/ Y6 N
- (setq cntl-pt (cdr (assoc 10 elist)))
! l% O' g* O0 L, v7 z" R6 d w - (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
0 a. m0 {: H) V' l: F" Y' } - (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))% s2 A1 r" D- ]9 L0 R8 E; Y! D K
- (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))
2 o" V$ V* E3 C) _ - (if (= rational_spl_flag 1) ;; if rational spline
b, G6 j) G4 \1 S8 K* u$ o6 ~( G7 Q - (progn ;; show weight
% U8 W4 d" |0 q8 F/ O - (setq weight (cdr (assoc 41 elist)))' a3 T3 U- k8 |( z+ _9 q* S5 g
- (set_tile "weight" (rtos weight))$ A6 ?7 G0 O* B( [# Q
- ) ;; else f$ U3 r$ t! c
- (mode_tile "weight_text" 1) ;; disable weight field
; v, W! w$ K! O - )
) l3 i G$ J3 d+ q$ h - )
8 A1 i% w/ f5 p; q, @- l - ;;
7 i- F1 I" B& E8 t5 _ - ;; XYZ Point values for spline points/ S; K0 Z" u, b- h U+ ~
- ;; Need to account for WCS/UCS
! R8 |1 t/ Z ]* J6 L5 H/ ^4 I e - ;;
+ |) Q! h- B+ X1 v - (defun set_tile_data_pt (); X( K. P/ [7 E9 _0 X( c- W8 B
- (if (not (assoc 11 elist))
& G$ ~6 j2 K( i2 Y- j0 h/ H - (mode_tile "data_pts" 1)
( J/ X# _- f: {1 ]: a - (progn8 S9 T+ }1 {6 @; ]
- (setq data-pt (cdr (assoc 11 elist)))) L9 ?' Y8 j- L6 C
- ;; display points with current precision.6 f X7 S5 D0 B
- (set_tile "dxtext" (rtos (setq x1 (car data-pt))))1 K1 W( v" d7 I+ q" v* [8 o
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
4 v# @" ]- w: P$ V* F& _, ~& E1 ] - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
% {! q! S: K6 M8 \4 s ? - )
- n7 T5 s4 N# y% X/ p/ `/ c' t - )
R' [$ N" | }/ y: I# l5 \ - )9 y1 j6 ^3 C8 K: v' |
- ;;
5 p6 i ]" r6 U - ;; Fit curve, fit spline, or smooth spline surface setting
' I; m( _% s. m) G8 k. U - ;;
# c% A7 V2 @# \1 h - (defun set_tile_fitsmooth ()
* v% E% Z# w' m* N1 k# F! L - (cond9 |/ _: _* D5 h4 x( E6 Z
- ((= (cdr (assoc 0 elist)) "LWPOLYLINE")
! p7 L1 ]# q0 U6 J( L, _% } - (set_tile "none" "1")2 J8 C: @( F$ n* c% S
- )6 c* t. ]+ ~2 l' Q2 \" Z
- ((= (logand bit70 4) 4)
/ ]; p8 }0 ~( J - (cond( L* M4 I9 S6 z0 Y3 _% m$ A% o5 b3 B
- ((= bit75 0)
9 F6 ~5 ] d: @7 q& @ T6 f - (set_tile "none" "1")
, N3 N0 `$ f8 s; O6 ^ - (setq spltype 0)
e" i+ T6 c. r3 i2 S0 Z - )
* Q! U2 _+ Z* q& \' p$ z8 G; |) \ - ((= bit75 5) e' C1 v/ V3 r$ k+ C! u
- (set_tile "quad" "1")
) A; X5 ]0 Q1 O9 U5 V: l6 | - (setq spltype 5)) B8 S: I, I2 N* `, E7 u
- )
* V/ I4 X* C8 I% l0 V5 U( ^* _ - ((= bit75 6)
% B: I& J" X F" t1 S% m) [ - (set_tile "cubic" "1")
6 i @( I# R6 E% F/ L - (setq spltype 6): }: X, `9 ~7 O s
- )2 j2 L8 _1 }2 P) n+ n
- ((= bit75 8)
- q! v8 S; s, D, t% p1 _ - (set_tile "bezier" "1"); @$ ~, N3 C" n- y; v
- (setq spltype 8)3 S+ }$ {& W/ c
- )
$ G2 V5 \# O @" X - )3 L: v1 E x$ u; g
- )6 [9 v0 |; N/ d8 ] F: e# Y
- ((= (logand bit70 2) 2)
( J0 }6 e- d$ [4 I - (set_tile "fit" "1")% c! T' q& p# r; F& ?& t: ~6 L$ u
- (setq spltype 1)
) N# r/ c4 [+ Z8 P - )6 d3 U1 |. I1 g0 y# h8 }5 M- H2 E7 T' c
- (T (set_tile "none" "1"))+ m i7 x P2 U
- )' s3 M' W9 `* k3 s- {# k
- )
M9 C# e0 G# A- O7 E - ;;+ i# k/ k' d0 w& T
- ;; Closed or Open mesh and polyline setting( f. o7 o/ ~% h* d0 D: ]
- ;;, Y& ^8 k6 f z. s1 ~: U
- (defun set_tile_closed (). \' Z% U3 H! S c( X5 N. F6 L
- (if (= pltype "3D mesh")1 {2 P+ U) A: u& U
- (progn
7 W' [. P3 N$ p/ Z% D8 }8 r7 Z - (if (= (logand bit70 32) 32)
& ]! @3 n6 R4 a: @6 E V7 H - (set_tile "closedn" (setq closedn "1"))
j% R2 R4 \& J - (set_tile "closedn" (setq closedn "0"))
& I2 I0 s- L8 Y( P6 h5 k8 g6 f - )/ N) W* k" V2 Z* M1 x
- (if (= (logand bit70 1) 1): C" V* q7 @+ N" p7 r$ w! X
- (set_tile "closedm" (setq closed "1"))
0 f' @2 Q& u, r- d - (set_tile "closedm" (setq closed "0"))! q2 c1 J" V$ ^' V7 q% d: {" q
- )1 u& x5 H" ~1 d6 ]
- (setq old-closedm closedm old-closedn closedn)4 d% @9 F3 K0 }. v# k: y. I9 H
- )/ M6 M; `& Z5 v! H5 o" r' J
- )6 r' b' `9 H% S- C) t
- (if (or (= pltype "2D polyline")
! b/ d& S6 u% |! L3 L( J) m) |" i - (= pltype "3D polyline")( F* N' m4 _1 b/ Z! b! G: }- `. C% r
- )( {, i% M2 m% v1 e9 Q
- (progn- q% L- {% ^3 w$ |
- (if (= (logand bit70 1) 1)' y. W6 A/ D, r, J6 J) _- u
- (set_tile "closed" (setq closed "1"))
/ X/ v2 _3 `3 r/ P* U - (set_tile "closed" (setq closed "0"))
* Q2 b+ x6 n; L# \6 T2 I* M - )
; ?2 S0 @9 H! A) L2 ~9 k* v - (setq old-closed closed)
& _* L! \: B- k( o6 r' I( |! B - )
B1 I/ o1 U- ]& x |/ Q( \& N2 p - )
M% Y, Z; P: I0 P9 }% z - )
5 K( b, o5 h9 \4 \+ a0 r - ;; Set common action tiles
. y' j5 ?/ q5 e6 o - ;;
" _* f, r8 y* b: r' I - ;; Defines action to be taken when pressing various widgets. It is called
. Q, X7 f; ?6 D, y! p - ;; for every object dialogue. Not all widgets exist for each object dialogue,
: z# a. n8 z8 b% U9 f- } - ;; but defining an action for a non-existent widget does no harm.$ j7 s5 f. V4 R% ]( X
- (defun set_action_tiles ()3 {# b0 o% i9 U& ?$ u
- (action_tile "cancel" "(dismiss_dialog 0)")! w2 r) C X% |# D) ~* v
- (action_tile "accept" "(dismiss_dialog 1)")
* `/ a N& b) t& ?* z - (action_tile "help" "(help \"\" help_entry)")7 R2 ]# G, t4 a9 M6 K
- (action_tile "b_color" "(getcolor)")
( }5 a, x" d7 A" D3 w* L' P - (action_tile "show_image" "(getcolor)")- L6 }! t+ ], Z8 h; m
- (action_tile "b_name" "(setq elayer (getlayer))")
( b3 X1 s: J+ V) w+ G9 g. V - (action_tile "b_line" "(setq eltype (getltype))")0 Y1 S; h6 J1 |; {) B3 c
- (action_tile "eb_thickness" "(getthickness $value)")
4 E, v6 J$ _2 i - (action_tile "eb_ltscale" "(getltscale $value)")
5 |- S5 {- m, J8 w+ \. W
, I6 @$ X7 }8 O% z7 Z! U- ?- (action_tile "pick_1" "(dismiss_dialog 3)")
6 f4 _) |7 X# s8 O4 o Z! m. s - (action_tile "pick_2" "(dismiss_dialog 4)")
7 p9 ?# t% E8 R, G" V9 C4 l4 k# b - (action_tile "pick_3" "(dismiss_dialog 5)")
6 T; V) ]: b# v8 {" d. v; l; z - (action_tile "pick_4" "(dismiss_dialog 6)")
4 h; M: F, e& \. n: M - (action_tile "x1_pt" "(ver_x1 $value)")
0 p$ ]5 a: G0 D3 N - (action_tile "y1_pt" "(ver_y1 $value)")
. n+ f5 F0 h( O - (action_tile "z1_pt" "(ver_z1 $value)")
' p7 v' ~, h# q/ i& q* m - (action_tile "x2_pt" "(ver_x2 $value)")
3 l2 w5 H+ b. `+ ~ - (action_tile "y2_pt" "(ver_y2 $value)")5 ~( N$ `' `! y: T T. _* U1 G- Z
- (action_tile "z2_pt" "(ver_z2 $value)")
, l4 E+ [' g# c3 S! e( ~3 H! G9 G - (action_tile "x3_pt" "(ver_x3 $value)")
9 Z5 m; @7 i( ^+ u - (action_tile "y3_pt" "(ver_y3 $value)")& W- R' w0 ]2 k$ Q( i
- (action_tile "z3_pt" "(ver_z3 $value)")
5 P9 t' O* A9 ]1 f5 [ - (action_tile "x4_pt" "(ver_x4 $value)")
9 Q( {3 b+ X0 B3 x+ [ - (action_tile "y4_pt" "(ver_y4 $value)")
" C( F9 O0 G: l1 ^/ L - (action_tile "z4_pt" "(ver_4 $value)")
. P$ J% a% d' E7 d$ U
3 {" M# U+ X( r( r- s8 t' Y- ;; Action tiles for Xline & Ray( R$ X+ E; V b4 N# E4 A' `
- (action_tile "xline_x1" "(ver_xline_x1 $value)")& a, j' ^8 |' w, B$ n
- (action_tile "xline_y1" "(ver_xline_y1 $value)"). F) R/ G* Z2 L H: c( o
- (action_tile "xline_z1" "(ver_xline_z1 $value)"). Z. L$ M. v* k! z# t4 W, N$ C" I
- (action_tile "xline_x2" "(ver_xline_x2 $value)")
5 J+ D" z1 s6 g$ }+ Y' Y - (action_tile "xline_y2" "(ver_xline_y2 $value)")% |5 d9 p: {) K9 o3 S
- (action_tile "xline_z2" "(ver_xline_z2 $value)")
O, H3 P- p0 v* Z) A6 R: I - ; c! f# K! @) J5 F0 a5 u$ w
- (action_tile "edge_1" "(setq edge1 $value)"), u5 z9 D% D* f4 P; [7 H- e: b" j
- (action_tile "edge_2" "(setq edge2 $value)")
5 E) B4 T" R3 p) \ g: p - (action_tile "edge_3" "(setq edge3 $value)"); l" R5 _7 f( m' t% W; C* k) Z
- (action_tile "edge_4" "(setq edge4 $value)")
% j8 ?$ x! b" f" t; L! ^4 Q4 F - . n% k+ j. r; F S9 |- P1 Q
- (action_tile "radius" "(ver_rad $value)")
/ {9 H; ^) O/ Y8 K: `) E - (action_tile "st_ang" "(ver_ang1 $value)")( [' V5 e8 j+ R& p$ j- }# D8 E
- (action_tile "end_ang" "(ver_ang2 $value)")
" y; S& ^* {0 I1 l# T% l - (action_tile "end_eang" "(ver_eang $value)")
1 J- z; G/ I# U3 [, T' P8 H - (action_tile "minrad" "(ver_minrad $value)"); w: H2 o- u. d
- (action_tile "majrad" "(ver_majrad $value)"), _# Q* C" v2 K A8 z3 i7 `
- & H$ B8 l5 Z b
- (action_tile "xscale" "(ver_xscl $value)")
! ] |0 s" I9 d+ c, z4 l- A: X - (action_tile "yscale" "(ver_yscl $value)")
4 ]0 c8 Y5 f' Q: y' y- Y" I- Z - (action_tile "zscale" "(ver_zscl $value)")
7 l) D% k# m5 l u4 @( N- ~% C - (action_tile "rot" "(ver_rot $value)")* u; m) D* c, k) m, W, r
- (action_tile "columns" "(ver_col $value)")! I& w! Q8 k6 M( A7 q, ~4 [+ `
- (action_tile "rows" "(ver_row $value)")4 H, O6 I6 N9 O& [2 R$ V- M
- (action_tile "col_sp" "(ver_colsp $value)")
# ^/ w5 v' B8 w1 L - (action_tile "row_sp" "(ver_rowsp $value)")5 Y/ i$ ?+ I3 T0 I& Z4 e
- ' o- y& Q- H4 Y" t" T2 a
- (action_tile "hght" "(ver_hght $value)") p8 Z; n1 R, k/ v3 G) v. H8 b
- (action_tile "wid" "(ver_wid $value)")' x g2 n7 P& \9 n) B% H
- (action_tile "obl" "(ver_obl $value)")
/ M0 }; F- h$ V$ v8 `. } - (action_tile "style" "(style_act $value)")
. {* n. N L# {4 H6 V7 o& y
3 c r$ o' N0 }) |- j- (action_tile "t_string" "(ddgettext)")
2 c# ?7 R1 x! z5 @ - (action_tile "tag" "(ver_tag)")
6 s; G* Q# h+ n0 e - (action_tile "prompt" "(ddgetprompt)")
+ k1 g" H: Y! g) y - (action_tile "bkwd" "(setq bkwd (atoi $value))")
- P2 e, H2 }8 A0 K# E8 u! Y - (action_tile "upsd" "(setq upsd (atoi $value))")$ O/ I" x8 k- |( T( ^# d# \
- (action_tile "inv" "(setq inv (atoi $value))")8 [* m4 o) ?$ Q4 a; G$ q) W1 b6 P
- (action_tile "con" "(setq con (atoi $value))")
: L8 i. H8 S) @4 |& V - (action_tile "ver" "(setq vfy (atoi $value))")) ` H8 b' S( r7 R6 \7 O) K
- (action_tile "pre" "(setq pre (atoi $value))")' C, l% t n+ H/ u3 E0 L
- (action_tile "popup_just" "(jlist_act $value)")5 g; R3 y1 |6 m9 n
- 3 w5 T; r5 i/ ?2 M' Q
- (action_tile "closed" "(setq closed $value)")# B$ |9 [- W8 Q+ e) I* y$ ?
- (action_tile "ltgen" "(setq ltgen $value)"). G2 b9 e/ |7 N8 I3 f- G' Q
- (action_tile "closedm" "(setq closedm $value)")
$ ^9 J+ t# Z' E) p" y. m# i3 [ - (action_tile "closedn" "(setq closedn $value)")' J) B! |; Z3 L2 y
- (action_tile "next_v" "(next_vertex)")
0 s- x! B* b. l' W* z' T5 k8 \( z$ y - (action_tile "xcliponoff" "(setq xcliponoff $value)")+ Z% S; r; s6 ~2 l8 ~# k
' I3 n! \) y! l1 O* \- (action_tile "next_cntlpt" "(next_cntl_pt)")4 k' J* f) p# e8 q
- (action_tile "next_datapt" "(next_data_pt)")) ~8 ]6 z4 Z' o, B: i A! `2 |
" q: i2 H5 k4 d( u; D- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")
0 {6 z8 ^/ v5 E3 U4 V0 a+ J - (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")
+ R, U4 S6 l. `7 Z8 S: n9 z# Y - (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")( D+ k6 t( i$ M' X: }# D5 [
- (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")
4 k4 f5 o! x) ~* a. O - (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")( |, i/ j5 O d$ h( ]
; w1 f: V6 L# d/ H. Y/ p* U) B- (action_tile "u" "(ver_u $value)")& y" ~* I9 p a! \& e
- (action_tile "v" "(ver_v $value)"); p( Z2 E3 r' Q" ?. |+ `
- )
) ?& N h4 j1 V/ ]* Z
9 m S( R/ N0 q- (defun ddgettext()
$ y/ I/ [3 s, K - (setq text (get_tile "t_string"))
; z: t' F9 `4 T- z8 {3 x - )
% R8 K; r) q3 \3 d
. y o$ U* g1 {$ J7 g- (defun ddgetprompt()
3 m& f9 f0 ]: y+ u6 y) G - (setq atprompt (get_tile "prompt"))/ o& r- e# ~; k w q4 c
- ) f: B+ @; r8 T" |! \
5 d$ z# Q2 x0 n/ {% q, J- ;; As OW doesn't support disabling of individual radio buttons within' B& ~: u8 S" [/ g
- ;; clusters, a check must be performed as to the legitimacy of the" m6 D( L8 d" O7 G
- ;; button pushed and reset if necessary.
6 j1 G- N. b& D/ m4 A& s3 f - (defun radio_gaga (pushed)
. ^$ {& A8 C: h- t& t2 Y8 d - (cond
% Y) j2 Z( {: g3 d3 M( {+ r - ((and (= pltype "3D polyline")
0 w) V. A. t& ?6 v% e - (or (= pushed "fit")
# j: ?: h7 @, o% P5 F - (= pushed "bezier")
( |. f% r0 N8 E: A- g5 x7 ` - )
, C0 p9 U; M/ X* ?$ {, D - )9 v6 B0 T; t- V% o9 ^
- (set_tile "none" "1")
" X- W3 y( D9 A - nil/ O" Q2 }' {* e" d2 ~
- )/ d1 T8 z" D5 X
- ((and (= pltype "3D mesh")
& T: {& M" c _ j% L( W/ a - (= "fit" pushed)
7 y% c& A9 u2 A+ } - )
- f! M/ @! p6 U5 m - (set_tile "none" "1")0 V9 u0 A6 b: k1 l/ g/ c
- nil! a# S' D/ c4 E3 G5 t4 _; s
- )
9 u0 h4 l3 s: i( } - ((= pltype "Polyface mesh")
% s, B! j8 F5 G t+ z" ~ - (set_tile "none" "1")$ H- ?8 Q9 l F$ r; X! ~
- nil0 F3 o7 P$ o% E& L J' X/ y, z
- ); q( h& n! M N1 s! j- }
- ((and (= pltype "2D polyline")
' i4 \, }8 D1 I' W% J+ h- ]2 n4 j - (= "bezier" pushed)3 l' @; ^% y2 D& d) R
- )
, \- G6 a& d- W: X+ b - (set_tile "none" "1")
2 B! O' i$ S5 ^, g. f( l - nil" l% J6 O' G8 \" R4 {% i1 N
- )
$ k1 D8 a# ^. \+ R - (T)& ~+ U k5 K- E2 M8 Y0 G! P
- )
& U) m3 k4 n+ @ - ) X2 u' @ a# O) ^) ~
- ;;/ p. k- i* m& K7 r, G
- (defun set_uv (type_n)( r/ ]7 _4 s6 X+ Z
- (setq spltype type_n)
- m' ^# s' ?$ e - (if (= pltype "3D mesh")
* i& i1 U% [" r5 ^) E5 \ - (if (= spltype 0)0 s+ ^) D0 W; ?- p( s8 F
- (progn
! L$ M3 L( Q+ J9 ]( J4 F - (set_tile "u" (itoa (setq u 0)))
' ]5 G( Y$ Y7 K" N8 Y# F - (set_tile "v" (itoa (setq v 0)))
% D: S% y& `) R. A2 X/ o3 \ - )% Q8 f* r+ ~6 F' @8 ^5 k6 Q2 t
- (progn
3 `' V; n0 V a - (if (= u 0)
$ P: ^3 n7 u" L, _) ~ - (set_tile "u" (itoa (setq u (getvar "surfu"))))
% L0 Q* r9 e( u9 D5 Q% r - )
- Q$ l; t' C1 B% T& u$ H& c - (if (= v 0)
+ |8 E0 i6 ~% d5 y1 ~* T - (set_tile "v" (itoa (setq v (getvar "surfv"))))
; h8 t* d3 j; I1 X- ` - )
4 s$ d) R- C% l" w$ c - )
( e1 L* b/ R* o9 F, k K! d - )( S0 s ]$ N* T6 s
- )8 s y4 w- {1 o; g
- )
" h& ^7 n7 e/ G$ }
6 B- d/ {( D. V) T. @" d
! o: ~ _* ?' X' k3 b- ;;
- Z2 ~7 x( q$ H9 E0 Y: L: j* E* k - ;; Verification functions; ^& G5 D1 t% a4 |6 W" B4 x5 ]
- ;;
/ i* C" a6 e8 I' e - ;; Verify distance function. This takes a new X, Y, or Z coordinate or
# J( F9 E3 e6 k9 Q$ W2 @ - ;; distance value, the tile name, and the previous value as arguments.# |) y' s9 N2 T5 ]7 J5 \6 u
- ;; If the distance is valid, it returns the distance and resets the tile.
) b# b, Y, o) X/ t' r - ;; Otherwise, it returns the previous value, sets the error tile and keeps
, Q5 ?# f7 v9 y' _ ?( L - ;; focus on the tile. Shifting focus to the tile with invalid value can
& t9 ~ [( J+ p8 q$ h. z1 H - ;; trigger a callback from another tile whose value is valid. In order* v! E! A, |: t) G( v- P
- ;; to keep the error message from being cleared by this secondary callback,& s, z; ^( f; Y6 R& t
- ;; the variable errchk is set and checked. The last-tile variable is set6 A0 e( T2 b2 O, J( s
- ;; and checked to ensure the error message is properly cleared when the, B! E% U1 r' y1 |5 J
- ;; user corrects the value and hits return.0 ?3 i% n5 f( i3 q
- ;;
6 ]+ r- L+ c+ E0 c - (defun verify_d (tile value old-value / coord valid errmsg)
% R+ {, V) d8 v - (setq valid nil errmsg "Invalid input value.")! I: p" e s1 M* A7 o
- (if (setq coord (distof value))
" Q: r4 `# E( T - (progn5 Y8 ?0 |: b( x" t- P
- (cond# C5 v4 l* ^. A2 S% h4 c6 Q2 y9 f! H+ x
- ((or (= tile "radius")7 t& F g2 y- E7 r$ E; g4 p
- (= tile "hght")
. G- P! S9 T9 c0 P# `& B. E - (= tile "wid")) d4 H+ v$ R/ U9 c( Y; g( h0 x( [% I0 n
- (= tile "majrad")" }7 @; z7 ^# E# [
- (= tile "minrad")
1 V% @" c$ u4 d& P4 |7 O3 C8 U - (= tile "eb_ltscale")$ x2 {; ]. O1 g( u, V
- )
( H$ V3 Y x8 F6 r, h8 Y, t - (if (> coord 0)6 j! t! ^. S6 W3 u: f. v
- (setq valid T)
! E* N$ e0 N6 I - (setq errmsg "Value must be positive and nonzero.")
% D. ^( t+ U& g4 Z - )- T( ]' V6 W$ K+ C4 Y2 A2 z+ w! ^
- )
/ G& o3 o- C* Y' \( k1 t" |1 d9 T# P; t - ((or (= tile "xscale")
( V0 Q2 j( g; W0 A) N - (= tile "yscale")- v" z* y; D* W" x( x
- (= tile "zscale")
5 B _: |, { z; a% |8 H - )5 K1 I; s) u, W) j3 D( s
- (if (/= coord 0)% S0 v8 G, q' y, v, E
- (setq valid T)2 m2 N2 s) [7 d
- (setq errmsg "Value must be nonzero.")
8 \! Z. S9 H" D+ v4 ^/ ~ - )
}2 o/ W* K2 J8 m - )
: a/ g2 o; J. |9 ]6 W+ F - (T (setq valid T))
: [: h+ N. n5 G9 z3 j- N - )$ N7 R) I; c: S* G0 o# Z) m% j
- )- g0 A- h) z& x
- (setq valid nil)1 a5 k6 j8 L' @; u! M$ O
- )
( o2 s7 D' R- c0 Z - (if valid
9 X+ ^1 y( w4 l$ i1 H$ ^- R- ^* |: t - (progn8 p6 ^1 M2 ]7 W# ]
- (if (or (= errchk 0) (= tile last-tile))1 _6 P* U9 Q! o7 z
- (set_tile "error" "")
" d) Q& C( Q2 R, u ^, [ - )9 M$ X: N5 L1 Q% z* a' b% K
- (set_tile tile (ai_rtos coord))
& m# @8 z- E( ^( ?6 A$ | z - (setq errchk 0)
1 s$ u, u! b9 n! r4 S: ]$ u" x - (setq last-tile tile)
$ ?* r. o) M; i2 e - coord4 ~ w( } m. V3 L0 W. [7 E9 t
- )4 t+ ?. z9 }- Y( g% t [
- (progn
/ I4 r/ X( q% v! r6 ] ` - (mode_tile tile 2) ; Move focus to offending field9 C2 L% {: o! ~; T& R$ M7 w" U
- (mode_tile tile 3) ; Select offending text
0 p0 K/ _5 ~4 _8 M8 j8 R4 C! \ - (set_tile "error" errmsg)/ f- v; f! M6 F6 U' D
- (setq errchk 1)' p8 D( @0 g( h3 z! m; W
- (setq last-tile tile)
, t& {6 G6 I4 y# d! c - old-value- S8 v' I% q4 Z1 z
- )4 r& b% h: H7 v1 K
- )
9 @/ u* _& m8 I* g Y7 Q! T4 o - )
- ~' ?- Y& m B) @! { - ;; Function for Xline coord edit box checking.. `2 G5 l0 L8 F$ H1 m G7 j
- (defun verify_xline (tile value old-value / coord valid errmsg)
( `( p! o2 u- C- i; B( F# c - (setq valid nil errmsg "Invalid input value.")
0 {# A0 a4 a. U5 b" G5 w1 H - (if (setq coord (distof value))
2 V- Z' H3 n- p) O) o/ C - (setq valid T)
; b* y% ?% o3 I9 z5 U - (setq valid nil)
, C$ M7 E( a# ^3 h: n7 z% J% A1 x - )
/ T# E. v; o. J7 G& n" |! N - (if (and coord
- n* Z% P, c- V) o0 Z9 E - (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) )
' `8 O, B' E$ e1 W; H! h4 Y3 o - (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )8 c) e9 I- _+ M B: P( c
- (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) )
4 H4 k5 g1 V7 d1 J; |7 F7 |% h* a+ O - )2 B# X: n9 Q# Z* p- I Y# c
- )
6 `/ {# Q7 D8 D. w - (progn( H3 H+ k# D$ q: e3 W
- (setq errmsg
: ^. f1 e4 U3 ^% t/ { - "The Root point and the Second point cannot be equal.")3 F8 G+ K" Q6 E t2 U. q! z) V, `
- (setq valid nil)# U7 W! m& n2 x* U! ]9 ~4 Z, @
- )! R/ H, [+ q) K9 C$ t
- )
4 M) F3 e7 ~0 [2 A - (if valid
6 J1 c) J' Y1 h* j X1 ]1 J5 s* Q - (progn
- i/ h) u: k9 J! ~ - (if (or (= errchk 0) (= tile last-tile))
, e1 L7 D8 V) D7 J1 e# u - (set_tile "error" "")
, n7 _7 l) M. T1 E& C/ f - )9 Q2 T2 q. P N" H, V0 B0 }
- (set_tile tile (ai_rtos coord))# J* y4 x5 \* i
- (setq errchk 0)4 G; k( _& Y: P! I/ \
- (setq last-tile tile): t5 ?! b6 Y5 e" R( f
- coord
/ b! q3 i2 O) ~* T - )
8 S# ~: D) G& U - (progn' n L% x) V6 h; d3 V
- (mode_tile tile 2) ; Move focus to offending field
) e3 p, m" ^/ D p% g9 G/ K4 F - (mode_tile tile 3) ; Select offending text
% Q9 M; r; t- ] - (set_tile "error" errmsg)
' `! ~: o" z O" s3 H+ u3 N; L - (setq errchk 1)
: H* y3 Z _3 R: w3 m7 v - (setq last-tile tile)& I; i: S7 @/ R1 @% Y% e9 k
- old-value( }1 a9 s) o3 K( P
- )
. x* H5 L6 ^* K! S9 S Q - )6 Q( Y+ b& s D7 o; y. s8 r
- )
6 b" v) ]6 X, x4 B - 7 G. [9 X: S: G
- ;;( L4 n# D- ^- v' D6 X
- ;; Verify angle function. This takes an angle and a tile name as arguments.
1 K, G8 S5 C2 q) y - ;; If the angle is valid, it returns the angle and resets the tile.
; ?1 m q, @7 _% T! u+ X1 m - ;; Otherwise, it sets the error tile and keeps focus on the tile.* v! T3 w) A! s+ S
- ;;
/ P" w U" ~& N" ] - (defun verify_a (tile value old-value / ang valid errmsg oblqmax)" D \5 }; k |6 J, t% k
- (setq valid nil
9 B$ r2 _- A( O' D( H* s. ]9 H f - errmsg "Illegal input value."8 A/ S) n& v( P9 _8 a5 J" A
- )
- ]. K% Q3 l4 q6 M. x$ H$ ?" X - (if (setq ang (angtof value))
3 x6 q7 D3 H" D" a0 i! A, j# ^ y - (cond* u# K. b' t2 p$ u% B- ^
- ((= tile "obl") ; Restrict obliquing angle' ?4 O9 d, g* ^7 z5 x2 G! M `) i
- (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))
: o8 Y' L4 r) X) M& e# J' p - (if (or (<= ang oblqmax)
$ ?: U" S( }# c. H V `% Q9 [. }6 } - (>= ang (- (* 2.0 PI) oblqmax))
/ }6 |( q* ?+ f* j - )# N& x: O& f' \0 a, E/ j/ ?
- (setq valid T)
- h2 C" c9 x" x) i0 d; y k9 P - (setq errmsg- [- T2 a" ^* [1 H- y- r
- "Value must be between -85 and +85 degrees.")
. m3 T, V4 Z% [7 l0 o( K - )
$ u' i5 {# M6 Y+ M2 D. X# N$ G) ` - ). q' i n! {: p# b! B
- (T (setq valid T)) ; Other angles not restricted
9 T3 r& x7 @) k9 c4 { - )
' T1 z$ P4 s6 @5 t( P9 z: E - (setq valid nil) ; Invalid angle input) A3 y+ \& x: T
- )
4 r( \3 t: X" z* a S& g4 n; @9 l - (if valid
) @, D" O; W. G3 ?4 [8 g - (progn
& p# a' z+ h9 p! t9 t7 p: K - (if (or (= errchk 0) (= tile last-tile))/ c5 [9 u* k' s- S
- (set_tile "error" "")' K9 q6 h) \4 l+ X
- )0 b6 i; V5 C% u) o( ?
- (set_tile tile (ai_angtos ang))
# S9 Z3 h( A7 d! i - (setq errchk 0)
, g. N( f& ]8 E - (setq last-tile tile)
# d% t/ z" A n& q" q' z! k - ang u' T3 W2 I; Z0 t# t* y- W
- )
4 W: O; u2 k8 \, H& c G - (progn, h" A! o# P% I# x* r
- (mode_tile tile 2) ; Move focus to offending field& w0 h2 T r: B- B8 _! n5 P
- (mode_tile tile 3) ; Select offending text
/ d) Y5 V# J; Q - (setq last-tile tile)( T; j& }' U. n" n
- (setq errchk 1)* G' R* ]1 B' G5 ~! D
- (set_tile "error" errmsg)8 b3 a! k& f% u0 ?( h/ s
- old-value9 h1 b8 y) V! \. N# S1 ^/ [4 F! x
- )7 ]" r4 v4 m# G1 G6 A( W9 r+ R2 e
- )
$ a. t1 R4 Q0 C" h) i( d- s - )
* ^3 Y' U# `* j: r - ;;# p* f" Q* ]' W: E: z
- ;; Verify angle function. This takes an angle and a tile name as arguments.. r+ e% K" [" V; f3 \5 A' z
- ;; If the angle is valid, it returns the angle and resets the tile.0 Y/ ^* N0 F8 x y) i( C7 q) f
- ;; Otherwise, it sets the error tile and keeps focus on the tile.
/ O9 D& d) [/ a x: ~4 V - ;; This function is specifically for the end angle of the ellipse object. If% A J* Z0 b2 M* j
- ;; the end angle resolves to zero then we want to display it as 360., s3 n3 W( ?% x. n" f
- ;;1 |4 ?+ {# d# l1 |& u
- (defun verify_ae (tile value old-value / ang tempend)
8 F% M3 A0 H6 S: ~2 S2 e# w$ X - (if (setq ang (angtof value))% W( n1 @) K& r" S' W
- (progn
, L9 n5 j3 y4 u6 k - (if (or (= errchk 0) (= tile last-tile))
5 E# ]* Q/ v! V* h - (set_tile "error" "")5 Q g9 U. Y! @9 j! z* }
- )- O J9 n/ v _: u$ t
- (setq tempend (ai_angtos ang))
8 P# P# A) K, p2 n! [ ~ - (if (= tempend "0")
( R. ~/ m8 Y; Q: w3 Z1 o' f( y) m - (set_tile tile "360")
5 g d# p- g0 i" K$ M; |) [ - (set_tile tile tempend)
% f8 |: J9 _; \+ H" M8 { - )
% a1 z% x# _& k - (setq errchk 0)
7 D) Y/ l: d# X' H- _2 q/ J; K - (setq last-tile tile)
/ q$ S( ~* @2 z5 m! I ~ - ang, Z/ j) ]0 N! F% R5 S7 S; {0 c
- )
/ m4 u% G. u0 J* r - (progn
+ y# P9 p( V6 ^' @' U - (mode_tile tile 2) ; Move focus to offending field* {# s- s& `; p- {: R+ a
- (mode_tile tile 3) ; Select offending text
% t* D) @+ m7 V! B N% | f - (setq last-tile tile)6 B4 Y- F) U* R9 M+ K( f
- (setq errchk 1)! u' t5 ~7 F* z# r4 n y C
- (set_tile "error" "Illegal input value.")
. {3 y Q% l' o. @, f - old-value9 ~- w. o* P2 p! u
- )
2 ?) O2 D- `3 e5 M- L6 V8 V - )$ ~3 I# a7 q4 K2 a$ j5 ~
- )
% C+ K5 p9 p: I" t8 M" N - ;;
* m; ~- }& k1 ~! B7 { L8 T - ;; Verify integer function. This takes an integer and a tile name as
) A( h# @" S+ A/ n& v: ]! p) q - ;; arguments. If the integer is valid, it returns the integer and resets the! o- H+ Z6 d, A9 ]% `9 e1 J
- ;; tile. Otherwise, it sets the error tile and keeps focus on the tile." I# y4 N* V! W5 |! Y' N* }- f
- ;;
7 G1 L I# r$ W. w, t4 c* @/ K: v - (defun verify_i (tile value old-value / int valid errmsg)/ Y9 B, V# p/ q
- (setq valid nil)
% X1 U, C0 M% ^6 L - (setq errmsg "Value must be an integer."), O' F( J" J* k @0 X% D! _6 H$ w
- (setq int (atoi value))6 Q, ^5 n K6 g2 a/ y) m0 Z7 ~
- (if (setq intchk (distof value))
6 m% H2 I! N) l% g - (cond$ a" U `% H, u9 Y
- ((or (= tile "columns") (= tile "rows"))
- L, E, l! ~* V0 P, G7 h - (if (and (= int intchk). y# C) D1 _& | D8 {
- (>= int 0)6 k; s/ s) M1 {3 z" G' K
- (<= int 32767)
; j4 z% l; P S2 d4 n& Z7 E - )
) E" B2 R9 r: s0 V - (setq valid T)
9 U' n2 t/ S* i0 Y' _/ a - (setq errmsg "Value must be an integer between 0 and 32767.")
6 j3 o( S5 v+ l7 S" |/ P - )
5 c2 j% y+ j, Z# I - )
3 A! O0 x O/ |. R# k) } - ((and (or (= tile "u") (= tile "v")))
, X0 |6 Q# d: |( t T - (if (and (= int intchk)4 y0 j: `* s# s
- (>= int 0)
4 U; x( [! J* w" b5 Z - (< int 201)
' {' G7 H) x ~7 k8 O; X- ^& o, b - )
: T( R0 p7 k& p& ]8 U - (setq valid T); E$ Z6 U; S' L7 Q5 _8 E
- (setq errmsg "Value must be an integer between 0 and 200.")3 ^5 q* R. [0 S9 n/ C6 @3 F+ C5 L
- )
7 C% K0 e" j4 p2 d# I* p6 N - ): m' l! Z( ]. ?* a9 j2 O6 F1 \
- )" q6 F P& a/ d- `
- )1 l, j4 V: }4 S4 Z9 O. B
- (if valid
3 y5 [4 _9 n+ k' _ - (progn9 Q" D2 o$ T# s1 I$ x- \; q
- (if (or (= errchk 0) (= tile last-tile))
; H' \$ j! j) O3 X# G/ a, f5 E - (set_tile "error" "")
* ~+ X' B _( c$ a - )
; y+ ]' ?$ U" H3 \ - (set_tile tile (itoa int))
9 @$ j1 G0 @2 f- }1 b - (setq errchk 0)9 w. T% ~1 r# s* u0 T
- (setq last-tile tile): `$ F, x8 ^1 u9 }- D: Q
- int6 k8 W+ v% K6 C
- )
: b* V* E5 R D/ Z* \% L; Y - (progn
0 G) `; k8 }+ n) a* L2 W - (mode_tile tile 2) ; Move focus to offending field( W# G' i- r* D: m; c) X7 B
- (mode_tile tile 3) ; Select offending text
1 ~& z4 O) b, x( d - (set_tile "error" errmsg)2 _( J2 f6 K4 h$ {
- (setq errchk 1)
! Z, z$ }0 z/ x& `0 I* @ - (setq last-tile tile)
. R0 D- a1 r. l( \4 f" @ - old-value/ n! V, c* u2 `) I' }) ~
- )
8 C% ^- @) i6 @2 a6 n4 _, ^ - )
& w+ f# K% U4 g2 T6 F) f" |( e - )1 d! [, @6 C* D4 m [
- ;;: h/ D; Q3 ]3 l+ L$ j0 [+ L
- ;; Functions that verify tile values for integers- S8 t& J, M! I+ M& ~
- ;;# E q, t+ A7 j
- (defun ver_col (value)
, T# {. h9 {% U2 y0 f5 s: _5 _* b, E - (setq columns (verify_i "columns" value columns))+ @- E' R+ L8 |; f4 ?7 ^+ l
- )& b1 K/ q( X! f+ o
- (defun ver_row (value)
- S# Y! T) V' l - (setq rows (verify_i "rows" value rows))4 M2 j% Z9 \) \: p8 m
- )
6 O3 S5 i/ G9 J3 s) e9 j8 J - (defun ver_u (value)
2 [* Q0 J1 m1 h4 e1 f$ D - (setq u (verify_i "u" value u))
2 n( @. D3 r! q8 i' r& h& b - )
* ]3 [7 R2 I% o' z& p* q - (defun ver_v (value)) N8 _7 G+ @/ t& G9 n; k; R
- (setq v (verify_i "v" value v))7 ]& P. X' r/ H* y
- )
+ R) k. M6 f* L% J5 j3 V1 ^ - ;;
& C7 C: Y+ k* k6 | - ;; Functions that verify tile values for reals
: j5 X- N" v( Y' i7 q( m - ;;" M! i) d; ]) u
- (defun ver_x1 (value)+ l$ i/ Z7 O& r7 U4 p
- (if (setq x1 (verify_d "x1_pt" value x1)) (calc))
5 C' K! U; N. z8 N, U) M# | - )
) m& e. e- R3 m- M, O! a - (defun ver_y1 (value)
; O" p1 y* [# ?+ z/ B - (if (setq y1 (verify_d "y1_pt" value y1)) (calc))5 ^2 D3 e* ^, N4 W2 |
- )
6 r0 l, ]0 t2 e' Y; X2 P3 v - (defun ver_z1 (value)
3 R8 V, S3 E2 r - (if (setq z1 (verify_d "z1_pt" value z1)) (calc))
4 V! O( I0 {3 u0 _5 m - )
9 U3 T4 G: p. Q. w - (defun ver_x2 (value)
3 h! D9 J# i* |' s" K$ _ - (if (setq x2 (verify_d "x2_pt" value x2)) (calc))5 s3 V U, i @1 o [
- )# v* p v* Y6 z' O3 m4 |8 R3 S
- (defun ver_y2 (value)7 L1 u0 F5 h F* |+ J
- (if (setq y2 (verify_d "y2_pt" value y2)) (calc))
8 ^1 k& [7 m' i - )$ |+ T8 Q- Z3 I( W+ \3 K
- (defun ver_z2 (value); ]6 }" p) T2 t1 R7 o
- (if (setq z2 (verify_d "z2_pt" value z2)) (calc))% ~! }6 K3 P E
- )/ L( V9 x$ W/ O1 q$ }' s5 L
- (defun ver_x3 (value): |$ Q; N- C& G9 J) S
- (setq x3 (verify_d "x3_pt" value x3))% `9 w7 {) b( h- B! U7 H9 K
- )
% ~# G" `. n1 I+ d - (defun ver_y3 (value)
3 j, q9 f* J# Z [+ M - (setq y3 (verify_d "y3_pt" value y3))
9 W# [6 m H2 V - )
! K% a; x, T6 r! M$ x - (defun ver_z3 (value)
9 P3 }* U# u# I$ h - (setq z3 (verify_d "z3_pt" value z3))
( r# b7 {- J3 {- Y8 U4 ~# A1 A+ Z* I - )
. N1 ]- m6 m* q, z/ y - (defun ver_x4 (value)4 b0 d. E8 s0 I. b. W4 P
- (setq x4 (verify_d "x4_pt" value x4))' b/ s* i! f3 B) a& U9 _9 ]: z
- )
; u Q+ p2 u9 [: w4 g4 S% z3 L9 B/ i - (defun ver_y4 (value)
$ G( M `! i% ~ - (setq y4 (verify_d "y4_pt" value y4))$ }1 I8 |: Z( J$ a$ D
- ). d @5 T- R3 ~5 c4 c2 n
- (defun ver_4 (value)
( R0 y' h4 h- v* _; Y, B - (setq z4 (verify_d "z4_pt" value z4)), W; R) Q8 f$ ]9 h1 q! c- O; O3 c
- )% s' K5 I2 V; j4 l$ i" z
- (defun ver_xscl (value)) H6 P0 U. r, p! b; v
- (setq xscale (verify_d "xscale" value xscale))# A% j+ l |" E( r+ V
- )/ D9 M. T# n: K6 a
- (defun ver_yscl (value)- M3 a* y/ u `* g" I) _2 x) X: @
- (setq yscale (verify_d "yscale" value yscale))
) ~) a& f. M2 p- } - )/ }! v3 D+ R" D! j! Y1 |) X
- (defun ver_zscl (value)
$ n% i1 H2 w+ E8 T; t4 ~ - (setq zscale (verify_d "zscale" value zscale))4 C2 E" P, Z& ~, {, U2 \
- )
9 N0 M$ y+ W; f" @8 o - (defun ver_colsp (value)! `: U, a) P/ K( r" S- s7 u
- (setq col-sp (verify_d "col_sp" value col-sp))
7 q4 h( E, B& s" e. {4 H9 z - )% E+ f! h2 L6 M5 [! F$ ~( U8 j
- (defun ver_rowsp (value)
V0 @! r1 X. W4 O - (setq row-sp (verify_d "row_sp" value row-sp))- u- `$ F( p y$ k0 v" m! z
- )3 |! c5 P$ P# E2 @
- (defun xclip ()
5 g: t) K2 A) j+ ]" b# k3 g - (setq xclipmode t)
f" D6 q: {! j2 e - (if (= xcliponoff "1")7 l4 ]4 K% I' q
- (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")9 ~/ i Y8 P/ ?! ?
- (command "_.xclip" (cdr(assoc -1 elist)) "" "_off")# I( D# Z% R" E3 x: v
- )2 C$ C* G1 T6 o
- )
) ]0 W" {9 I4 j; A - (defun ver_rad (value)
* C' c8 D3 [% D; b - (if (setq radius (verify_d "radius" value radius))8 x! i- M; c, ^6 p2 Z- T, H& n
- (calc)
. f' d: s2 F: z" X - )
) D9 D' g8 a" T9 j6 K - )7 Y: g& Z) t, _# N4 `3 T$ ^0 }8 t
- (defun ver_majrad (value)6 i% ~* R( v: n, ~# ^6 h1 @
- (if (setq majrad (verify_d "majrad" value majrad))
5 ^5 @2 s# u. r4 F- I1 \6 C% g7 s - (ell_calc_newval "majrad")" b6 d- B7 s! i! J" c( G4 m
- )
7 a n, z1 H6 y1 y4 } - )- j- x( B- T6 H6 O+ s
- (defun ver_minrad (value)+ T$ {/ ?6 u, ?' o. x
- (if (setq minrad (verify_d "minrad" value minrad))
2 h* r' h s" } - (ell_calc_newval "minrad")
9 s- }3 N! j. Y5 j6 B( k& r - )* c2 B4 P* F- i% t
- )
* w" D8 W& I# u4 y9 @ - (defun ver_hght (value)5 m! r) j8 ]" a0 {/ G9 `
- (setq hght (verify_d "hght" value hght))
) R: O1 }2 f& L ^( c5 w' N - )8 G) q; |/ r% Q+ Z) u; O
- (defun ver_wid (value)$ n0 M" L( m4 s& w
- (setq wid (verify_d "wid" value wid))3 E% g2 u- X0 y5 d5 G5 r
- )4 r& L( n( ~9 ^& B4 U6 {3 ^ |
- (defun ver_xline_x1 (value / temp)5 E: H( D' _3 Y) k5 n$ C0 ]- s' o
- (setq temp xline_x1)
" X9 U5 }: ~; A; R - (setq xline_x1 (verify_xline "xline_x1" value xline_x1))) ]1 k8 O( ^$ o$ I; i* `) F; `) i
- (if (/= temp xline_x1)5 h2 I# G6 O d/ M" o1 l
- (progn (modify_xline 0) (set_tile_dirv) )
" F9 N% ]8 d' s - )
4 x# E n& U7 x& P - )
/ h0 h$ l# o; t# b2 X/ ~' J - (defun ver_xline_y1 (value / temp)( m( M) M, W5 \
- (setq temp xline_y1)
} Q; b: w- a$ m7 k2 s* ` - (setq xline_y1 (verify_xline "xline_y1" value xline_y1))
) {$ z6 `: j) s! ]9 t - (if (/= temp xline_y1)
, O7 v+ b$ n; r+ f1 [ - (progn (modify_xline 0) (set_tile_dirv) )8 P' l5 }7 |3 R7 \ O+ z7 \
- )- E" z- p @: i
- )% D# l- G0 s8 g# c- g8 k
- (defun ver_xline_z1 (value / temp), R1 h3 G5 d2 A, ?# L2 i9 {6 _$ s
- (setq temp xline_z1)* {- D e$ n& |7 }% s& U
- (setq xline_z1 (verify_xline "xline_z1" value xline_z1))/ C4 t0 C' t- W+ c7 J
- (if (/= temp xline_z1)
( B% L) L9 O- x: c - (progn (modify_xline 0) (set_tile_dirv) )1 l# T$ O4 x1 w; k' s" b; q" X5 T
- )+ i/ ?" c, h' q. T) t
- )" P: w7 v0 m$ Y h( @: P/ a& ^
- (defun ver_xline_x2 (value / temp): O% t- T& q8 x% Z
- (setq temp xline_x2)
: c; l w% F/ L; A+ W$ z1 m* [ - (setq xline_x2 (verify_xline "xline_x2" value xline_x2))6 x7 s! v5 q" t0 F: [
- (if (/= temp xline_x2)
$ ~: \( B/ D" B$ h' j* s8 H - (progn (modify_xline 0) (set_tile_dirv))
- b8 o% ~3 w* J$ P - )
. N& s6 z; U9 C7 s$ M* e9 ]: W$ [ - )
( k) o4 S7 C' v, a* S6 @ - (defun ver_xline_y2 (value / temp)
3 w2 I8 o9 B d" `9 h - (setq temp xline_y2)8 k/ B Q1 o( ^* U
- (setq xline_y2 (verify_xline "xline_y2" value xline_y2))
* ^7 \5 O( W! y+ } - (if (/= temp xline_y2). V1 c: q) t J" T( q1 V1 ~
- (progn (modify_xline 0) (set_tile_dirv) )
' q6 b* Y, x3 V; J6 s5 r, D3 W# {2 S - )2 s( X( |: X3 |
- ); ?. ]5 _) u8 B( V3 k: q- g
- (defun ver_xline_z2 (value / temp)
0 B* i' @: P1 u5 n - (setq temp xline_z2)* r$ [. n; i3 u. A- F
- (setq xline_z2 (verify_xline "xline_z2" value xline_z2)) u% p$ o5 o; w$ x. F7 O
- (if (/= temp xline_z2)! b! d6 E1 i# m g, M/ z0 d3 S, E: ^
- (progn (modify_xline 0) (set_tile_dirv) )
2 s# V2 o- [% B- N+ _$ X, M0 S - )
7 Q& E7 Q& x8 o+ f+ a- t - )
" w( i$ I# @1 ?. o! P - ;;
6 L, Q, }* B0 Z - ;; Functions that verify tile values for angles
: d7 ?" E, q$ }( w - ;;3 _4 s9 h- ?3 V# V$ U [/ ~
- (defun ver_ang1 (value)3 ]* e$ Q: t1 d& v; c' |' o0 Y
- (if (setq st_ang (verify_a "st_ang" value st_ang))
5 D* ^) x1 n- e: _' \% m - (calc)
, ^% u1 b* h" w* e. M- c& c" O - )
4 {6 |) N# |) r% X% Q - ). F6 L5 @: H- D
- (defun ver_ang2 (value)
/ {, `3 a) c8 p: x4 U - (if (setq end_ang (verify_a "end_ang" value end_ang))
* P% {! L: y n% q* A4 h" M# I - (calc)
: t5 E' O( `7 \* o# g; x - )
0 ~7 S5 V l3 p) L/ v" K - )* X# |% a/ P& i5 ?3 k% N: z
- ;;) P: [1 B$ ?/ q) p" _/ F
- ;; Verify tile value for ellipse end angle. Handled slightly9 g. r2 W- Y! D* b
- ;; differently than the other angles.1 D- k) A( e2 u6 C4 S+ X C
- ;;5 a2 L2 ?7 W2 I4 h
- (defun ver_eang (value)
) @9 O, [* x ~3 N9 R2 q7 M" c - (setq end_eang (verify_ae "end_eang" value end_eang))
/ D( \: ]4 f0 B4 h" C5 p$ W9 N - ): y c/ ]1 @4 p, M
- (defun ver_rot (value)
L/ F# a, ^5 G( r0 { - (setq rot (verify_a "rot" value rot))
4 K/ j# W. K7 A; I4 m - )" n8 |# J* {+ U0 X5 X/ K3 o
- (defun ver_obl (value), N; _4 h& Q$ v! y Q& q5 P2 Y
- (setq obl (verify_a "obl" value obl))9 Q/ _* q! U5 e3 x8 ~
- )
6 v. _% N' E% j: B - ;;
+ S- N" e) ~ _1 k - ;; Function that verifies attribute tag field for null string,
1 p& R+ a% b2 q8 o0 _ - ;; or a string that contains one or more spaces. Tile value p+ g* q2 {" a2 h" U$ w: u9 D
- ;; is also converted to upper-case as well.
( ]5 d' S# Y4 S1 {& x0 T - ;;, a, ] k* ^3 i" o
- ;;) f& b0 V) z" j: \
- (defun ver_tag ( / tval)
0 |, Y# Q, |9 h' S# K3 z$ L - (setq tagval (get_tile "tag"))/ m4 x0 U, K1 L3 @ f
- (set_tile "error" "")
. C( f0 Y: c- B1 L6 `* F - (cond' }8 L# |( f( U
- ( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))
, Q# e& b& H2 Q' H+ }. ` - (wcmatch tval "* *"))9 t8 `- y$ O4 L3 F8 g
- (set_tile "error" "Invalid attribute tag.")
# ]* m5 M# d! v, k2 Y; S6 B6 z - (mode_tile "tag" 2)* P6 H1 |1 S% ?/ \3 X1 [
- (mode_tile "tag" 3))! H# E4 A) ~7 @, ]' M2 Y3 J
- (t (set_tile "error" "")1 a) \ R+ d: f6 B4 G
- (set_tile "tag" tval)1 j5 ]. r% a: g' v
- (setq attag tval)))% W) \8 {: w- ]$ T; @6 ~
- )
6 N$ X; J0 ], \/ b( `; ? - ;;5 [6 R2 E2 _" O. s2 A
- ;; Calculation functions0 Q: [6 D% _8 a1 Y3 `
- ;;
$ h% y K B; W H+ \' T! `7 K& v* W - (defun calc ()
2 p: ^: S- [! v* l1 P5 N - (if (= etype "LINE") (line_calc))) W6 F- _# e: ]7 E0 K$ T* r4 {6 H8 [
- (if (= etype "ARC") (arc_calc))6 ~% ]& q, A9 I
- (if (= etype "CIRCLE") (cir_calc))
! S- i( J( J4 e T2 b" R - )6 e/ B" {5 G, a P: ]
- ;;
& @6 q; p2 r4 H% H0 Q( U - ;; Calculation functions for lines, arcs, and circles
- X! E/ N' I/ a, @- X; \5 { K - ;;
g" ]( u- ?- |, w, j - (defun line_calc (). c4 s+ `! q2 y4 w3 T4 H2 L& j
- (setq stpt (list x1 y1 z1))
4 N# A2 J& M: s0 p! Q- e4 j - (setq endpt (list x2 y2 z2))
1 O4 s3 o" j* g1 Z - (set_tile "delta_x" (rtos (- x2 x1))), m6 e- _' L& S9 L
- (set_tile "delta_y" (rtos (- y2 y1)))+ c* j0 s3 V% F. V; _1 N: v
- (set_tile "delta_z" (rtos (- z2 z1)))1 C7 r5 e2 Y" B# f' U2 P, [, Q, n
- (set_tile "l_length" (rtos (distance stpt endpt)))
" f! P6 w: q; H - (set_tile "l_angle" (angtos (angle stpt endpt)))( Y( R5 q) _" F9 Z
- )6 \/ P9 X' F3 s6 A7 C
0 V- q. H9 n, i: d- (defun cir_calc ( / area units)
) k4 V' f; Y# S# ], o' c - (setq radtest radius)- a( G- M: s: v* }( `3 V0 J$ i6 p) ?
- (set_tile "Dia" (rtos (* 2 radius)))) T# I. s) F9 W' Z$ k: ~
- (set_tile "Circum" (rtos (* 2 pi radius)))5 s' b4 `" A! {8 v/ P
- (setq area (* pi (* radius radius))), ?! |; E4 c$ Q) Z
- (setq units (getvar "LUNITS"))2 f$ d7 c) l1 {
- (if (or (= units 3) (= units 4))
; d& Y4 E0 n# b" Z3 c* ]+ X E - (progn
, i- I4 e$ H2 u* D3 z - (setq area (/ area 144.0))" K! H! u' _% B- p# E$ q- y
- (set_tile "Area" (strcat (rtos area 2) " square ft"))$ Y7 t- F8 c0 Y2 z+ G
- )$ `$ j$ T: P) p* c
- (set_tile "Area" (rtos area))( i4 ]) f% k2 _! \: V$ \/ ]1 g* B
- )
' H% b$ s# p2 f+ a% c3 U8 @ - )
- _& D! f+ b3 R: ~6 i
2 j. W) }9 q9 |' \% Z- (defun arc_calc ()
+ S4 _* `' q* z5 Z - (setq totang (- end_ang st_ang))
" \- R& {: o, q; Q' z/ F4 z - (while (< totang 0)
7 Q! t8 }/ v1 c% |! Q0 h - (setq totang (+ totang (* 2 pi))), X/ d7 q. w/ B5 p
- )
) K$ n% L" ]! V4 e9 E9 P& w$ y - (while (> totang (* 2 pi))0 T# {0 D- \7 v; P
- (setq totang (- totang (* 2 pi)))) V2 B1 F5 N: e0 `, Z2 n5 \
- )
/ \3 Z8 m. I( b" M, c - (set_tile "tot_angle" (angtos totang))- r& c2 ? N4 _8 h' ]0 \ I
- (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi))))
- B* a* }8 t/ o M* F - (set_tile "arclen" (rtos arclen))
9 i- O" s$ t3 b$ B - )- ?, \' Q v4 K) B1 M# Y r+ Y% C
- ;;
- o; b# [, R6 a/ W( j+ S1 E6 N) A - ;; Calculate the major radius, minor radius, major axis direction.
: Q' \) H8 N, Z4 a- S9 J* w8 Y: q - ;; Get radius ratio. Convert Start, end parameters to start and end* r, `! H9 f$ q3 O. ~
- ;; angles. Save Major Radius value in "old_majrad" in case the user
" K0 V5 N4 I1 @# a" f: `$ W - ;; chooses to input a new Major Radius value later. It's needed to
' }6 k& X9 Q+ p8 A - ;; calculate a new Major Axis Vector value.
7 s) H; u$ T1 L1 x - ;;* w2 _5 X# g; V2 ?: Y7 O+ p: D
- (defun ell_calc ()( ^4 A5 Z/ [& _8 f
- ;; Get major radius from the major axis vector.
9 y/ U4 x0 Q! Q# T. @) t - (setq majaxis (cdr (assoc 11 elist)))
) K/ g4 h1 z# | t - (setq xx (car majaxis))8 U" \9 q- u3 R8 @1 X7 `
- (setq yy (cadr majaxis))' k; g2 Q3 s. U$ `* k+ H* S& z
- (setq zz (caddr majaxis))
# x m! b( k; R% L1 ] - (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) )))4 Q7 @" f4 o6 P7 ]
- (set_tile "majrad" (ai_rtos majrad))6 f- W2 ^4 {9 |8 S
- (setq old_majrad majrad)9 u3 w2 ~) Y: @* q3 ]4 J8 l
- ;; Get radius ratio
: T+ s+ E# M. ` - (setq rrat (cdr (assoc 40 elist)))
& s% F( s) i2 z! k) T7 V& K4 ?4 q - (set_tile "rratio" (rtos rrat))) i I% S0 j z- `( C
- ;; Calculate minor radius
$ f* U P, a6 u/ p, u - (setq minrad (* majrad rrat))
6 z' A E: q* }* x+ }+ @1 e( R7 ^1 ? - (set_tile "minrad" (ai_rtos minrad))& A$ ?, D' `7 {& W% O
- ;; display major axis vector( l" k# W+ J% K1 ^: }
- (set_tile "Majraddirx" (rtos xx)); Y: f8 M1 J% o9 X5 s/ o7 K9 K
- (set_tile "Majraddiry" (rtos yy))
$ a# w6 A: V# H8 R - (set_tile "Majraddirz" (rtos zz))) W [6 g% W1 |9 \
- + R' x; S) f9 w( V1 |
- ;; Convert start parm to start angle
* @2 ]7 {, I- L$ r - (setq stparm (cdr (assoc 41 elist)))3 F4 m% L+ ~. c b
- (setq vecx (cos stparm))
+ _2 g; |5 w: X - (setq vecy (sin stparm))
" ?7 V$ E9 T7 q& ]8 C1 w - (setq st_ang (atan (* rrat vecy) vecx))$ w, X$ V8 N# t6 ~0 M- N; z/ F" D
- (setq tempst_ang (ai_angtos st_ang))
- D) A& f) t$ n( \; M - (set_tile "st_ang" tempst_ang)' e. B; R0 C2 E3 A# ^+ Q
- ;; Convert end parm to end angle. If end angle evaluates to 0
& @* {5 I9 S7 r1 ~ - ;; degrees then display it as 360 degrees.$ M# |& n$ k7 f8 ~2 @
- (setq endparm (cdr (assoc 42 elist)))
; Z2 _& m5 ?8 ~% @4 w( ] - (setq evecx (cos endparm))
3 }$ b& d, I4 f4 d. H - (setq evecy (sin endparm))9 \8 E& C" A6 _+ g, ]2 r
- (setq end_eang (atan (* rrat evecy) evecx))
9 i" f r: u$ k - (setq tempend_eang (ai_angtos end_eang))
* L; o/ s9 E3 ~$ |- [ - (if (= tempend_eang "0")
* i* K7 N$ M+ Z7 {8 x; d - (set_tile "end_eang" "360")
: t2 h: W: o* P! W* ^3 K4 l0 q% @ - (set_tile "end_eang" tempend_eang)3 @/ y8 z( E ]/ B# ]7 N2 T* {! {
- )
% \; t7 S% K+ S0 ~1 a/ d0 k - ;; Get area of the ellipse.
* d! d1 N* ~! l - (ell_calc_area), T% d* t) w% a7 _ | A+ {
- )
) u1 Z& Q. e* Y5 ?! N - ;; Calculate area of ellipse. If it is an arc then0 u% c- w% y" o+ K/ g4 N; P# q
- ;; grey out area display.. y& Q! M: {0 h; s& L
- ;;3 D9 ]9 T8 M2 p2 j, Y# C1 A! o* f7 O
- (defun ell_calc_area ( / area units); h& l. J' n! z2 T% t. K
- (if (and (= tempst_ang "0") (= tempend_eang "0"))
8 }5 S8 c/ X3 S; J - (progn0 C+ {) A; K7 Y4 K
- (setq area (* pi majrad minrad))
% J6 j1 U' r, T) W0 F# G' h* J - (setq units (getvar "LUNITS"))7 a' J# v* j. ?* _
- (if (or (= units 3) (= units 4))
: k7 D; p7 M) V9 s: n' F - (progn5 S" ?# @( G+ W8 \
- (setq area (/ area 144.0))
8 K d, O- ~6 G - (set_tile "Area" (strcat (rtos area 2)" square ft"))
, `. I" L+ @# P3 B P$ |+ I - )
; r+ `( S I( C$ \ - (set_tile "Area" (rtos area))
, \& G+ \8 D/ z* p( ]# w" [ - )
7 ^7 ? s4 ?! {) }# J - )
6 w5 W: c1 }8 w# ^. H4 p: J - (mode_tile "Area_text" 1)% t6 X1 Y5 S' M- I
- )
% M" B6 K! U* M* L7 {0 N - )* U/ E* C8 `2 f) D( }; M
- ;;
1 H8 J( M1 j z - ;; Calculate new values for ELLIPSE- y' ^! @+ G% E+ \4 m
- ;; Minor Radius, Area
0 ]* I+ v2 I: b! Z1 E7 A6 p - ;;! E+ o0 l7 r9 C: O" q, p( F
- (defun ell_calc_newval (ell_tile)
) i5 a( h) A: i- ~6 {/ t& ] - (if (= ell_tile "majrad")
8 x. \% ^6 E2 H( U* a7 d* | - (progn
& V9 E2 U- A7 q - (setq rrat (/ minrad majrad))
: r3 [' ]6 k8 [' f+ E; [5 d - (set_tile "rratio" (rtos rrat))
. i/ e$ f+ n$ |1 {( T C3 G - (ell_calc_area)% Y1 T) S4 G( _
- )" O" z( P, [5 o8 E; P5 v6 I
- )
: V4 }, `- l5 g6 h5 N - (if (= ell_tile "minrad")
3 [) y# I+ b# `+ z+ u0 L5 Z. J4 s - (progn ], S) t& n8 ?) d
- (setq rrat (/ minrad majrad))
, D5 u5 D: i% D: z3 a9 O1 D* M - (set_tile "rratio" (rtos rrat)) E( ~3 ~" f2 `. E$ _( t2 L w" c2 k
- (ell_calc_area)+ \. z) H; n5 i# g+ n! f
- )2 Y- W6 f8 t U3 v. z0 @) D- a. n" _
- )
3 B! v7 Y/ U" L' C8 c - )
4 k/ a" k4 R; i, I& P - " ?7 S4 B$ Z* Y
- (defun set_dimen_props (/ loop a stl txstyname)9 x0 u9 ?8 _- C) S0 D9 v" X
- - X; R! C) _6 Z# b1 t' R
- (setq stname (cdr (assoc 3 elist)) ; get style name1 a/ e3 y& H# D$ o7 T1 h5 B6 Z# L+ M
- stl (tblnext "DIMSTYLE" T)
6 a& C. u8 t$ x - stlist nil)& x+ v4 e1 f- D, m; g! d
- ;; Get all style names and list them in alphabetical order
$ r: y- G3 G% u% p1 x+ ^3 a - (while stl9 ^6 @) I# C* I5 @
- (setq sname (cdr (assoc 2 stl)))$ e" {1 C) V+ t; c
- (if (/= (logand 16 (cdr (assoc 70 stl))) 16)
1 s. y" n& n4 i4 [: r0 e - (setq stlist (cons sname stlist)))
2 t6 E( ]/ ^6 C4 d! a G - (setq stl (tblnext "DIMSTYLE"))). }* W% G, I5 {. W" A1 \# p1 ?: k0 K
- + f7 c) V# L) F! C! h3 {
- (setq len (length stlist)
+ V( f2 b8 \/ A# x) f - loop 0# N' C8 B* x" L; Z/ l6 C5 W
- dimsty stname
0 `4 q) t: k: n& F! V6 }: C - )! B* Y% t7 L1 w6 C. ]% l+ P
- ( _* r, I1 H) N+ C$ b& B) d+ U
- ;; alphabetize style list, depending on maxsort( K4 q; K: m2 h
- (if (>= (getvar "maxsort") len)
& h( q" t m% K4 L) S9 B3 [4 K - (setq stlist (acad_strlsort stlist))
- N# E2 e, x- G+ Z4 q: z - (setq stlist (reverse stlist))), I/ v3 E- Y6 R0 P2 B' T. Z
; Q3 q( i4 p# N# D4 K- L. A3 |7 Q- ; *UNNAMED style (dimsty = nil at this point) is replaced with3 ]+ N) O7 J% j/ [/ [" A
- ; the current style. After R13, we require dimensiosn to have a
2 K' d3 [0 z }7 L: z) z - ; dimstyle, so we plug any holes where we find them.! y8 s3 M, T4 L4 ~# ~& [! }" m ?7 M
- (if (null dimsty)
; ^9 Y8 b0 u3 T - (setq dimsty (getvar "dimstyle"))' K: ~' Y7 M9 U% `& A9 G
- )( f2 [+ ^! l. l4 ^
- ; Show the styles in combo box
2 b7 _ N4 a6 g, Y0 P0 u9 x - (start_list "mod_style" 2)2 }( L. j' E" u6 o; Y8 ^
- (while (< loop len)7 l* f* S$ l7 z( J9 B+ t
- (add_list (nth loop stlist))1 v$ U( F7 M m8 A% s7 ]$ p
- (setq loop (1+ loop))
2 Y' Q6 H- E8 s) r - )
% G, s! d3 w" f- |. \% a& u - " k8 ~- w+ R* F) u; O
- (end_list)% _ X9 o: L# Q3 d1 B' u+ y9 g
5 W# Y r: R9 R0 t3 G9 A1 R" v& J- ; Hilight the style name of the selected entity
7 g# s: f0 ^( x - (while (and (< 0 loop) (/= dimsty (nth loop stlist)))' Q& X' F2 q+ F4 `. p1 Z( _0 G
- (setq loop (1- loop))
; h* T+ [ A, K$ ^1 e) y - )
. {3 r4 y0 ]" J+ ~- q! L8 a' I - (set_tile "mod_style" (itoa loop))- c4 q; M1 C' C. `% u
+ L+ y' k9 v! w+ H1 u g' q- ; The following is the list dimvars. It must be sorted in the same+ Z. x& m' l7 \( c) N
- ; order as the resfub returned from DDIM (ADS module).! S3 @9 q* H" ~& _* k
1 t$ k1 l0 z( X- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"9 f4 l( J% a) F
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"* W( j! b# ?$ B% H
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
$ ]/ f7 m2 J9 B! @$ x5 p5 T Q - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
* A) k* @3 N, Y! W - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
) e: h; L; {: Y. g7 h" h - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih". T- G. K3 d8 Y; L
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
5 D7 c% c) Q3 N6 D( V - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"; {0 g8 J U' q8 r
- "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit". X8 |0 J5 w& S1 r) B4 k' E
- "dimdec" "dimtdec" "dimaltu" "dimalttd"0 g' D& o/ x% Q
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"& o2 w+ h8 O8 u* }4 Z
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
7 W x- K; F9 h# Z6 a - "dimtxsty"4 a$ Z. v$ j s9 [9 U; h
- ))5 Z ^+ U6 Q: M1 ~6 W
- (progn
, z+ ?% C+ q+ J2 Z. g - (setq sv_dvlist (ddimen_getostate dimsty)
+ R6 G& K- Q" a5 Y - txstyname (assoc 340 sv_dvlist)
. d% L1 f; O( U$ S$ p/ X4 G8 f8 Z - sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))
) m7 G( T+ }* @5 b: @$ S - txstyname sv_dvlist)0 ^1 u. g) b/ z4 T
- dimlist sv_dvlist( G; O/ j" I& e+ ]( m
- ). c/ j5 i" B+ k, f: J' J
- )
' Q/ t9 k; @: ?7 w# ? - (if (= dimtype "DDLEADER")
4 v) T B- [: d0 J# G# i* z. Q& _ - (mode_tile "mod_format" 1)
7 j1 E u* J6 D* @$ [% G5 u - )
3 Q) Y; }7 [ V4 o! n8 ? - (action_tile "mod_style" "(setq dimsty (ddimen_style))")
, U- x) |0 H$ @- d - (action_tile "mod_text" "(done_dialog 4)"); a) t, F& D' E' J. s# B
- (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))"); I2 l9 F4 J1 A3 L! O5 k6 s
- (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")
. x/ b: _ |, v4 ^ - (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")9 k/ Z/ e( Y" H& {
- (action_tile "accept" "(done_dialog 1)")
' x8 @6 _% a" b+ _6 z - )$ O- |; D) P4 o3 c) M
- ;;4 L3 u5 U% m% ? N
- ;; Get dimvars that have been restored.
( b: A! c: M$ `8 I$ ^& L - ;;
+ f) |6 j3 o) G$ M# ^2 m+ @ - (defun ddimen_getvars (/ elm dvlist dv i)8 \- Z J' i' B
- (setq i 3" Z8 A1 y: a! F. b- }
- dvlist (list (cons 0 "DIMSTYLE")
5 J- s; R0 L- z) O - (cons 2 (getvar "dimstyle")) (cons 70 0))! k7 y1 F/ O: O- R8 \. r. N
- )' X' r" A+ J. A. n5 N/ v4 ]
- (while (setq dv (nth i dimtbl))
! K/ [* _! W! H/ T8 s - (setq elm (getvar dv)7 t" e/ i; H: @
- dvlist (append dvlist (list (cons dv elm)))
. P; ^# N# Z% a - i (1+ i)
0 S' Z5 v! x# ? - )# d: r4 |4 J. a+ R# _" w
- )
1 I6 D0 C u7 T - dvlist
5 m/ @4 K9 g/ L4 m - )
1 k5 Y$ d0 x5 u$ K9 I' x6 Y
0 F" S/ g4 c0 U1 t4 h) z6 M- ;;9 ^1 o- |2 r7 h; T, H
- ;; Get the original states of dimvars. This is for DIMENSION entities.6 [/ X8 f3 e8 m7 B6 c; U6 _1 _
- ;;
. B0 L! P- ?- j& I1 q/ m - (defun ddimen_getostate (dimsty / dvlist elm i dvvars)2 |, [, R: F; ? Y* W3 j `/ ^
- (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list( ^+ u' G X; H) H) z
- dvvars (ddimen_getvars) ; Get dimvars for that entity6 m! ^: m! p% c# B! i4 h- G7 g
- i 1
7 m z& l2 F0 {9 c3 o0 m - )
( V/ G$ C8 X) Z0 _* K7 B* @
: \2 ~7 p8 i- T- O- U/ f- ; Create a list that contains values of the selected entity.' C, Y( t/ W# [/ B, ^1 p! B$ W( ^6 H
- 9 e7 j S% t- \8 V
- (while (setq elm (nth i dvlist))
5 D- e- e/ D8 ?) ] - (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)
& T7 _# ~9 o2 B2 {2 F - i (1+ i)
. x3 D4 X& J+ c) ? - )
+ P2 B9 [5 t0 d( c; ^ - )8 H4 k$ o5 z7 R" ]. c+ M0 l
- dvlist0 k1 ]4 `: M3 c& M' g4 l; W+ f
- )
4 U" z/ h/ u. T1 K9 @ { Q - ' m ~: f+ G& ?1 c) H5 c
- ;;" Q! F& W; \+ C) w6 u2 P6 B
- ;; Restores dimvars of the selected enity.
) ]& r! h" T9 M - ;;# M3 |7 M9 r# C# Z4 j) g) w; Q! ^5 h
- (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)
- g8 U, j8 S: l1 p7 ] - (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"+ j3 l9 {: _' L
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
1 L3 ~2 `" Q4 e+ C3 v - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"7 N& R) }2 }, Q5 j
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
/ @ n c4 V5 d# v0 z - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
$ \7 A) q& I; C4 V/ C+ S - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"
3 E3 z& F1 M* Q" w - "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
2 d; O# r4 t! C) b9 ]' R - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
+ U3 \6 z0 z# P3 o9 k - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"' R% \) [1 d. s! O' Y3 P# ?2 G
- "dimdec" "dimtdec" "dimaltu" "dimalttd"1 H- `# [6 q4 R6 s/ J# \: T
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"
" M3 f; A2 |7 P5 Y6 K6 W6 y - "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
' ^1 F! D/ M# Y/ M! ? - "dimtxsty"
5 `* v) L& I7 f1 n' I - ))3 i) N' F* ]& J) R3 \# e* S4 M
- (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings
; D8 @" q9 X K - (progn
/ O- p! \2 O" c6 s1 i8 m* V - (setq en (cdr (assoc -1 elist)))
" |7 {9 s: l. h7 T7 o - (command "_.dimstyle" "" "" en)3 H. B9 O2 s9 r4 @7 T
- )5 N. W9 Y3 n; k: i% x4 [8 A
- dimsvcurset3 ]$ L, Y$ n+ m/ o
- )7 z' T$ Q& _6 B1 p- S" \9 T1 G4 ~
- ;;3 B; K6 a2 F; F9 U
- ;; Modify Leader$ \) ^0 V3 m5 ?" ~
- ;;( g/ P( s' q( p1 t6 Z
- (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl1 y2 y; x6 J5 q7 B$ Z0 @
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist- e9 D: ~- t4 c/ ]' v
- dimtype dimsvcurset)* n" p& T5 v% A( ]& X0 a% a3 z j
- (setq dimtype "DDLEADER"
) S+ L! B% | {& j - dimsvcurset (ddimen_dimsty_restore)1 y% |, j+ e: J0 I; P9 [
- )
' e% Z& o0 c+ A3 x - (if (not (new_dialog "ddleader" dcl_id)) (exit))
7 d$ V* B {: Q$ J' u - ;; Set initial tile values" a, p* z7 `$ T0 k
- (set_tile_props)
( n% z+ r2 Y9 Y$ v/ V/ X1 \- d - (set_dimen_props)
: J( a+ r+ e3 E9 p& L6 `1 } - (set_tile_handle). o0 w% `) E6 e
- ;; Define action for tiles5 n( V9 P( }, c! `! Y! f x
- (set_action_tiles)
' n" U9 m7 `; H# g1 `3 G' P& S; S$ Q* s - (mode_tile "mod_text" 1)& M ?' w. j) G/ o7 d# Z; p) ~
. n; u/ N1 G8 q2 s1 n# y h' Z- (action_tile "mod_style" "(setq dimsty (ddimen_style))")
8 S6 M1 K& G% |, i - (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)"); y; o: }9 U! X; j
- ;; Get ARROW and TYPE.
) _# j0 K/ s8 |2 ^* n% G+ X - (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))
: `6 |/ w: X- g* Q - (if (= 1 (logand (cdr (assoc '72 elist))))# O0 c N9 m, o2 [0 z
- (set_tile "s-s" "spline")
# ]6 q9 E& f) L. d7 F, d - (set_tile "s-s" "straight")' K" T/ R7 Y* O: ?6 b# [
- )' U+ |% u, D+ j( j( L
- ;; Start the dialogue.# `& D, e* F" H7 j+ b% @
- (setq dialog-state (start_dialog))
4 t2 G) _+ y' C p) e- h! p( y, I' e - (if (= dialog-state 1)
& S' b7 g/ V t/ z. b$ ~9 D7 l: {1 c - (progn% o6 }. |! j4 e" V8 i
- ;; update the style2 V, F' U) V# N( S9 Q- X0 k
- (if (/= dimsty stname)
@3 w6 ^1 ` P: j+ |8 t3 [ - (progn
1 T+ S. ^6 u8 d. J! J0 ~ - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case/ _3 J/ G/ q C+ {6 L
- ; doesn't have it.% L! Z$ H9 n" O4 u3 u+ A
- (if (null (assoc 3 elist))& X% K& O9 L1 Y5 _
- (setq elist (append elist (list (cons 3 dimsty))))
( w0 ] ~' ?# f% G - ; else just replace it.6 a% b& e* X$ r1 W; B# ?+ v- V
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))- R8 E. K; F' r1 g9 `, n1 s0 [
- )
3 ~* D4 h" v1 j6 L - ; refresh sv_dvlist with new dimstyle.
, s4 V9 n8 T7 _' B - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
4 }% d& Z( s2 d: P: i4 {# F. Z - )+ b3 S1 \' N( U9 b1 b# n( x
- )3 e) S/ R$ J+ X0 K1 y
- (if (not (null dimlist)) ; attempted to change dimvars
. b, L& F& a% m- K - (ddimen_complist sv_dvlist dimlist dimtbl)
6 Q. q" J# H r9 @2 Q1 |* s - )
& E( r* u, J2 Z, O M' z - ;; update for ARROW.
6 J) s$ n, {: l' e+ n+ } W7 b - (if (= "1" arrow)
: }* H' C/ V% d% L9 M) G/ b& _ - (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))! b3 U, s$ Y6 F, b3 C/ B
- (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
6 z5 K/ w3 |( u P" X# b - )
# ~9 A: i. H2 [' o7 [ - ;; update the TYPE.5 y" W- H% _/ w1 g" c" u
- (if (= "spline" leadtype)
6 J' W- D4 m' Z - (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
9 d; j7 u: y) L1 U% |: W - (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
U- l$ t3 ?: q- s/ a( v" A! K: b - )
0 t/ ^ t( Z C - (modify_prop_geom): L; v |2 n: s- Z
- ;; update the Color
U1 P" ?- [* S2 k( T - (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))+ p! L1 R, w& j
- (entmod elist)/ n2 e6 o1 N p7 a5 o1 n
- )2 I0 x( x& Q' J8 D
- )
; J6 a& }& s4 p( ?2 a - (ddimen_setvars dimsvcurset) ; Prepare to exit
N$ d: j5 J y p4 I - ); R" [& n& _. M
- ) n8 ^* Z( Y/ R9 y0 P! [. r* W8 C
- ;;# }7 S7 _& C) ^3 }: D
- ;; Get dimvars of a dimstyle with overrides.6 Q4 i' m _3 Y2 H! x% M. |, |! r
- ;;, f+ @* h! X6 M. A8 {" Y: X
- , D/ N, H9 @( ?4 B- w/ ~- J1 `' y
- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i), u. _; L8 z4 q
- 3 H0 @: K5 ^0 x$ {. ?
- ;; Get override information for the specified entity.5 b* R% h+ z- ]( w$ R: v. o, Q
- ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we
$ e" p- q; {* j# l u, c1 j& c: c - ;; must obtain override information through this tedious operation.5 ^' {8 \; R, J# ~# T
- (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))! I$ n: _5 m! \& ~: F6 X7 n1 H) [ P
- dvlist (tblsearch "dimstyle" dimsty)
! t- r" n' _* ?& ~6 ^1 [ - i 2
( f$ T$ r' V7 Z9 _3 i, v8 F2 `7 z - )( y: Z8 j9 Q2 T7 c
8 `2 q2 E! Z% H8 o7 B j$ q# }- ; Update the list with overrides if overrides exist.+ m' Y) a2 N) T8 V4 l# Q6 i/ L
8 b# f2 @9 J9 I- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr)))): K$ L# l. N( R" U- }! B
- (progn
2 a8 U( X+ j% p7 k" w- o+ I( d o - (while (setq elm (cdr (nth i dimovr)))- e' a0 {" E ]% u; W# R
- (progn5 `9 C6 @5 i- I( z# o
- (if (or (= elm "{") (= elm "}"))
& {3 d; T4 |9 e, l- s, r - (setq i (1+ i))
! n% \8 Z' g# R) f - (progn
9 U+ h7 B& @4 U$ @) M0 t- E0 {2 H$ q - (if (or (and (< 180 elm)
% X5 G, u- Z' f z" ~ - (< elm 190)
5 N) O. P+ q }: D a* h+ G - )" Y. T9 X( H) m( M$ Z7 y& _
- (and (< 80 elm)1 @' d [ k8 E/ b5 @$ b3 w
- (< elm 90); N7 y; k% r8 _6 U$ F
- )
' e6 g/ F% B! @7 H; s - )$ R7 y+ _& \; r
- (setq elm (- elm 10))
+ U2 ^5 |0 e' U& u - )
! Z4 T3 i6 B/ b# @2 M1 j( r - (setq i (1+ i)2 C# M! n7 s- Q2 m T
- elm (cons elm (cdr (nth i dimovr)))
G5 z0 T( J. u) _ - dvlist (subst elm (assoc (car elm) dvlist) dvlist)' M: i" w" u: Q1 U6 E
- i (1+ i)5 W; `8 T I* ]' F5 \1 z$ Y/ h+ n
- )
R5 H9 M" l" E* o5 I: Z - ): P/ n9 G0 f5 X" Y: C9 S, j% u/ e
- ) A; x S0 f$ T9 Q5 a, S
- )
% W) I* o8 x0 } - )) F* t! C+ x+ H: |
- )2 C6 d {# F- U/ H, p4 X
- )
' v7 _# |9 |& l3 ]0 w- H/ t4 c0 U - dvlist6 a2 p0 ]. Z# A6 T- X7 ]3 g D
- )/ }, B- E2 t; P* l$ @8 j
- & G; r% b9 m8 T8 \% M7 s
- ;;
9 \9 v4 l5 \/ I5 r( a2 t- L, [$ R - ;; Modify POINT- p8 T* h, U: |7 w- ~, j u1 \
- ;;
6 l3 t5 b* o" S: u b% R - (defun modify_point ()! g$ E7 d6 ~ ]! r9 l1 ] m" x
- (modify_properties)* w: g& _0 i8 r, |- Y1 u: w( v" o
- (setq pt1 (list x1 y1 z1))
, `8 D4 V& e' O' B+ a - (tempmod pt1 10 0)2 Z$ J( w0 B+ T1 D# x* Z2 Q
- (entmod elist)
3 Y6 v1 `* M q, N0 `+ D4 v - )
+ }8 C& j8 I0 U/ d
4 A8 v5 M& n( {% p9 `- (defun ddpoint ()% c, A; s# d' R% ?- e
- (if (not (new_dialog "ddpoint" dcl_id)) (exit))
' Z+ E9 e2 S, H7 Z. N - ;; Set initial tile values( a S& V1 c8 b- O1 a8 H* h9 C
- (set_tile_props)# I( _( g1 K, F& D! X
- (set_tile_handle)
) a+ F8 @+ c9 i& [3 }; R& G4 H: g' D - (set_tile_pt1 0)1 G7 q& w9 F7 F1 x0 O+ N( l
- ;; Define action for tiles
) s) p+ ^/ A. G- y - (set_action_tiles)) S+ \, s5 E" A
- (setq dialog-state (start_dialog)). X/ `. ]- V9 r& P# ~4 l) v
- (if (= dialog-state 0)
F' }1 x! r% @% ~# F$ O - (reset). t6 p* y: G* |3 @/ h7 z! D1 p! E1 G
- )
3 k) L0 a8 H+ n& M" k/ U5 H q4 N - (if (= dialog-state 3)
5 O4 _# [, a7 ]( i _# \ - (progn
, y; K+ H7 P1 K( Y/ N, I - (modify_point)* Y+ ~* x. P p' T) }
- (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))
3 L: u& t# G( M/ A [ - (ver_pt1 0)) [' Q9 f5 O, S+ M s
- (ddpoint)/ g+ p N9 M5 N, h1 F
- )
9 d s- e2 g8 d' M1 F' ` - )
3 G" [4 l8 L6 Q5 j3 U6 B - (if (= dialog-state 1)
% L) K) n+ v6 u N+ H% v: ]* b - (modify_point)
# ]! Z9 Z6 d+ q% J! L - )! l1 `, [- _# }& M4 _/ L- O2 g
- )
. Q, Y d3 \8 ~0 {" Z" l - ;;
2 E$ D0 I1 R- J/ r- K1 e - ;; Modify LINE) |" }2 l9 Q% N8 e# Q
- ;;
5 ]* U3 f5 K* d# b( I; | - (defun modify_line ()
" R/ u% _" g$ E* N' W9 |; c - (modify_properties)
' p3 R2 |3 x, N3 R2 q, G - (setq pt1 (list x1 y1 z1))' D' d8 J: I* i* |! A5 Y9 ^9 C
- (setq pt2 (list x2 y2 z2))5 f4 ^% o% `. Q( @
- (tempmod pt1 10 0) M5 R$ r2 K! x0 V; V; c+ ^
- (tempmod pt2 11 0)4 u) @: ^) J! `( A* J! _
- (entmod elist)
8 v1 ?3 I7 I+ R4 d ?( T* w - )% l& } I2 a" o; I; I& o3 p
- (defun ddline ()0 F7 i) C j6 T( f7 `( j1 z5 A7 M
- (if (not (new_dialog "ddline" dcl_id)) (exit))
7 s ]( D6 m, Z - ;; Set initial tile values, A: j$ x ]& C5 \( s/ c5 I
- (set_tile_props), J5 U9 F# I: m I
- (set_tile_handle)2 F6 E a2 l6 b$ S+ \" W5 N! w6 v
- (set_tile_pt1 0)$ a: x1 @4 B4 b6 E
- (set_tile_pt2 0)
1 L' F5 O! t) F n& a5 e3 i3 J - (line_calc)3 c7 u0 F% i4 j( I9 a( f4 H
- ;; Define action for tiles. l# C! E& q5 z5 s
- (set_action_tiles). T% _4 N$ f9 @) D
- (setq dialog-state (start_dialog))
3 {) c8 X1 ^+ M4 V k" h l - (if (= dialog-state 0)
$ s4 S `$ p% i* { - (reset)
# a$ u \9 [" U% b/ q - )
& P1 S( [$ n. }/ x0 U. C; q - (if (= dialog-state 3)6 s# N' G; B0 v, X; D* t
- (progn
6 G$ {, \* W. j/ O5 o - (modify_line)' h; T( I& { G% r" Q
- (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))
2 S7 G- Q, y; m7 f) w - (ver_pt1 0)- i/ e/ Q4 I" ]! C
- (ddline)
/ d+ u A ^4 p) }' w" j r' d' t - )* @3 Q- J7 Y( N9 I. D* S: P
- )7 \3 {* k5 K* K' l2 Y+ ^
- (if (= dialog-state 4)* T& L/ p5 `0 P, s; v1 m+ ^" B
- (progn
[, T2 w) j3 A3 i2 [/ B - (modify_line)$ D5 ]1 l; W8 Y! q
- (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: ")). E8 f1 ^( r2 {/ X
- (ver_pt2 0)
- m3 y4 Y5 z2 J! ` I% [ - (ddline)
& h9 C7 j- A4 K - ). u5 O- k9 U- R9 V b' V
- )
- u0 v# u* d) f' [- g* u; K - (if (= dialog-state 1)) H' M# P O) D- O8 C3 ^
- (modify_line)
' A- j1 Z7 M7 Z: Q/ ~1 F" @ - )+ H9 v: Q' o& V/ n" x, z$ g
- )* m( D0 e( D7 [( c, W
- ;;
y/ @ ~% [1 ^9 Y - ;; Modify MLine, U) f& e% \! u5 t/ c! w2 b
- ;;; m) a/ Z3 a8 _" d# f
- (defun modify_mline ()! |: t% j W$ l8 _" M- ~- u3 c
- (modify_properties)1 E: I4 j3 i1 B' ?
- (entmod elist)- J8 i& J6 w! b7 V" Z
- )
2 D" ?+ ^3 J# ]+ Z - (defun ddmline ()/ G; M. F1 S3 v1 X0 R8 W: w
- (if (not (new_dialog "ddmline" dcl_id)) (exit))7 [" d( Q7 T1 K! z& P l k! b
- ;; Set initial tile values" M+ V% u$ b$ c9 ^1 A1 T# I9 ?
- (set_tile_props)
4 @( M( s/ v0 _* \+ v4 z - (set_tile_handle)% D* F* [" y+ O. ?9 j
- ;; Set mline style text field.7 Q4 }; \6 b2 E& x. b6 W
- (set_tile "ml_style" (cdr (assoc '2 elist)))5 J, s! F# w' I, w! B
- 0 i( U& X$ s- A4 ~
- ;; Define action for tiles
, z" g# ~1 ^& f I0 n9 U - (set_action_tiles)
4 c% w, i; c6 k s, M% }3 I( Z - (action_tile "ml_edit" "(done_dialog 3)")
& G1 F+ i3 e7 E! p, ?. X8 @" } - (setq dialog-state (start_dialog))
: W2 R/ [$ U* Q/ K- K6 w6 [# l D - ;; Dialog cancelled, reset to original values.
. z, s& Y9 Q% ^ E, Z9 W% o - (if (= dialog-state 0)% E% Y" r" w! i; d
- (reset)
( W! H% n. c, y& t4 _/ Q9 z$ w - )
$ F. ?2 Z0 V* Q& d8 Y - ;; Dialog OKed, update the mline.
5 `% h1 w/ R$ C4 l - (if (= dialog-state 1)
3 \/ p9 b0 ~) P7 P1 [4 ] u - (modify_mline)7 Y. E: C! s4 _( G$ l% F
- ), j* |+ D5 B% @/ c3 i; M
- ;; Edit Mline, call MLEDIT.
/ g8 |, Q6 N6 \ - (if (= dialog-state 3), g! m' t: H2 C$ W! W
- (progn
4 O7 V" e9 Q- V& O5 e2 M4 \ - (modify_mline)8 `0 N! T: j$ G+ Q+ \* d8 C9 b1 B
- (command "_mledit")
$ D% b( x; a6 o - (ddmline)
2 G: _# K) u. E! k: ^ - )
3 v% `' y% n. R& p* w! o: ` - )
, [' j4 [0 e% J/ j - )2 W/ }; y9 @4 o9 p
- ;;0 E5 {9 o' I7 C" I+ s$ Y3 E
- ;; Modify Xline& a, ^4 J2 A$ w7 V1 Y; R1 U
- ;;1 j4 d4 p {8 q( S: }) i
- (defun modify_xline (flag)4 A; J4 w& {0 o! }) r
- (modify_prop_geom)5 t* q- }6 ?( ~
- (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))# [$ u0 N; l0 ?' y/ C7 c2 D* D
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))$ W- }, m7 m: l( i% N( V: C
- ;; Update the Root point.1 U; y' D. T+ ^
- (setq elist (subst (cons 10 (trans xline_pt1 1 0))
7 [; T- ?1 ?4 x3 G) s - (assoc 10 elist): a0 D% S. V- ?( h# y5 G5 Z1 @- V1 V, Y
- elist! S1 ? R, n2 j# O7 q- i
- )2 {0 B( I/ N- o" H5 `
- )
a, s4 B# J! l; M/ N" {) g& S - ;;
& U* z3 B3 ?: `7 @6 `+ a - ;; Calculate new Direction Vector WCS
[; ^9 y! u# m' M i3 U9 z. }8 U9 ~' W - ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))
7 F* r+ U6 C) R& I/ n2 @
* k4 J- }# |3 R% {' N- (setq temp_dir (trans xline_pt2 1 0)); k/ t$ d0 T9 G3 B1 f8 D
- (setq temp_dir_x (car temp_dir))
0 ~( C# I& @. @ - (setq temp_dir_y (cadr temp_dir))
4 k$ l* K# @, b4 `! M3 ^$ Z# W; ? - (setq temp_dir_z (caddr temp_dir))
; N, a. Z" r1 b2 c6 v* d) m - 4 X3 E- c, U8 r, G, O
- (setq temp_xline_pt1 (trans xline_pt1 1 0))
5 u" S( t+ d5 f# b - (setq temp_xline_x1 (car temp_xline_pt1))9 v' y& a* G' T1 I& A" j% }3 I
- (setq temp_xline_y1 (cadr temp_xline_pt1))
, B0 B6 ]1 p: f- t( u) Y: |& B# _ - (setq temp_xline_z1 (caddr temp_xline_pt1))
+ U f. k1 ~0 y3 O
4 C& i: Z# C# u" C- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
' w7 r2 ?" D& o( D( K1 ~: E: V3 E" D - (expt (- temp_dir_y temp_xline_y1) 2)$ D6 ^) s, M9 H$ @( ~
- (expt (- temp_dir_z temp_xline_z1) 2)# R- J: o5 ?) m$ }( I0 K9 Y8 \* u( D0 a
- )))' Y! b9 a6 m1 E5 X/ G. z" R
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
Y6 e4 [9 C% Q - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
1 y, W! Q' n& { - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))/ U/ D$ c* F9 R4 G" h& G- n* P, w3 \2 ?
- (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z)) w& R. E0 D- {0 } g# e( V2 x
- (assoc 11 elist)
: d/ c- x9 S. _2 f( i - elist
' @* s3 K. X6 _# N- R, G/ M - )
, O8 t+ H+ e' j- W5 ? - )
2 ]; A3 X1 _. D2 g5 D - (if (= 1 flag)
) u& a% |8 j& |% R - (entmod elist)+ a) I, {2 Y) H. G; l8 J8 E' d! c
- )
2 n2 c- a4 v% X7 e - )
2 Y2 {- J% V3 y/ a - 3 D" ]9 @2 Q* W3 |3 ?/ Z
- (defun ddxline ()3 y* y7 {. x/ o) Z) p( w$ s) I
- (if (= etype "XLINE")
3 H) W& T" j. P+ l - (if (not (new_dialog "ddxline" dcl_id)) (exit))
% s' H9 u& r" \% }* i - (if (not (new_dialog "ddray" dcl_id)) (exit))
+ ^0 n' I+ K. B$ A9 g8 {6 t - )
$ @/ {' V; i6 K! O1 s - ;; Set initial tile values: p6 o9 v% z+ I/ N" P
- (set_tile_props); o" O* }& }; |* U' ~1 z
- (set_tile_handle)
& ?9 g# M; Q5 H0 {0 I8 H - (set_tile_xline_pt1)
G* s- p- d l1 P7 } - ;; Convert to UCS and post Direction vector.; b( k1 Y7 L0 p' x
- (set_tile_dirv)
1 F+ a/ }+ y1 W - ;; Calculate second point by adding Root Point + Direction Vector.
8 ], s. {: o' p - (set_tile_xline_pt2)- g" p; y2 B5 s9 s% t0 m
- ;; Define action for tiles
. j: s/ {4 }8 D1 I8 E- p& R - (set_action_tiles)
' y H- }5 d, j. Y1 N - (setq dialog-state (start_dialog))
5 ]+ `& W6 i1 C* L* r' G - (if (= dialog-state 0)& A' v) [- p8 h' c9 l; K& I/ y
- (reset)+ f. K N# Q2 U0 P: W0 ^# k, B, {: i
- )
, p) i0 j" N: \4 K% ?- Y - (if (= dialog-state 3)
: q: t: T. @( g% @, S3 R - (progn
, g( f. D. @! c, s$ p2 K - (modify_xline 1)' k3 s3 H- {# @- B2 ]' z
- (while (equal xline_pt2
8 j( t8 r: n" A5 Z - (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)6 p( s! e; O( q( f) z: a' P
- (princ "The Root point cannot equal the Second point.")2 g9 p/ |: Y! g
- )/ Z* n0 `# r: _8 \3 n
- (ver_xline_pt1)) R8 v0 j- }, T& _. A
- (ver_xline_pt2)
0 ` B* X# |8 G. x; Y' y1 ` - (princ)8 N/ `- M+ o/ ]* c& O7 v" F' o
- (ddxline)
7 Q! }! ?! g* V$ m0 n$ p" t4 S - ): b- F1 W% O, v$ C9 g
- )% v( W( S: Q ~
- (if (= dialog-state 4)6 W; ]9 N/ m! h* g4 M
- (progn
: P- ?5 D% e: Z4 i/ {0 j& d" [8 f" {2 ] - (modify_xline 1)7 v( e V+ m! n/ X
- (while (equal xline_pt1: i; A8 t: _# k
- (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)# N7 [6 C/ _, F0 l5 J7 ^
- (princ "The Second point cannot equal the Root point.")0 Q0 D! N! g+ P# ?! F- S8 M
- )3 ` C0 r1 j/ W8 S
- (ver_xline_pt2)5 R3 |: H( Q, z9 L9 b
- (princ)
8 M+ J! N. S- v/ C1 _; z7 H - (ddxline)
; Y1 H% E. f$ S' p; V1 c0 ? - )
% u; H$ l. c4 [; T - )
& p4 G2 q- b6 a6 ? - (if (= dialog-state 1)
5 }0 H& H/ I1 x# D4 E - (modify_xline 1)
* d9 t- T( t7 f$ i* \) ] - )5 p7 T( X9 a0 ~) g( j- \# c% E1 F
- )
/ i/ L1 a" ~9 L- e; t( E- Q - ;;8 r/ j5 ?& m2 l) \& \0 w y7 J
- ;; Modify ELLIPSE
) D8 ]$ K& m9 z; `- q7 V/ i - ;;( x: E% X( ?7 S$ V, X7 a4 _1 G
- (defun modify_ellipse (); W) Y0 d+ V# v/ ]5 \
- (modify_prop_geom)
$ X2 ~/ v8 A! m* r" D4 V2 \ - ;; Update Ellipse Center Point value.& H) r- y# ?1 @! b
- (setq pt1 (list x1 y1 z1))1 G5 K, N8 F$ [! Q5 C( E1 h2 R& a
- (tempmod pt1 10 1)
3 j7 K J& w- L, \! p - ;; Update Start Parameter value.' m/ j, T' _4 M: X; P
- (setq y_val (sin st_ang))
, v$ o! b8 O4 |- o- N5 z - (setq x_val (* rrat (cos st_ang)))
' N& t" d# f% z3 W+ n3 s+ ^/ u, X - (setq stparm (atan y_val x_val))0 n3 w% Z! u7 h" x' a# D
- (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))+ a& r. ~+ ]8 o( U! K
- ;; Update End Parameter value. Normalize it, if it's less than
& j" H" W8 E0 m8 Q0 ` - ;; the start parameter.
, l+ {) L0 m# r+ I - (setq y_eval (sin end_eang))
9 f! E; p0 r7 R; e6 { - (setq x_eval (* rrat (cos end_eang)))- n- V; L( o4 w7 ?' @
- (setq endparm (atan y_eval x_eval))$ c5 b$ @& J3 i
- (setq diffparm (- endparm stparm))6 R7 l$ g- Q6 G$ J, W& ?
- ;; Epsilon of 1.0e-6 radians for checking a zero length arc.
% o1 I0 K p# [& O& L$ l - ;; Since zero length arcs are not allowed - construct the full
" `9 o# y' r# G1 s Q - ;; ellipse in this case.$ ?! y7 s9 G) B5 W7 h$ t* J8 l0 O
- (if (<= (* diffparm diffparm) 1.0e-12)* o. r* A3 ~+ e4 p; n
- (setq endparm (+ stparm (* 2 pi)))+ [7 p) i- ?$ e6 o: ^0 ~/ [9 r( z6 G
- )8 v0 l) ?0 I5 i G; e
- (if (<= endparm stparm)
2 z( @* x Q# Z" w* g( z# R - (setq endparm (+ endparm (* 2 pi)))
. _5 @0 {; N b5 p - )+ f3 }3 V V2 V- ~1 C1 I
- (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist )) R% j0 G/ J* n
- ;; Calculate the Major Axis Vector by first calculating
/ L( G- |, |) J; x: C - ;; a unit vector using the old Major Radius value. Then
( d4 B7 L) x. A2 I- f) g1 L% @ - ;; Multiplying that by the (possibly) new Major Radius, U/ x/ J1 g* g* Q) Y
- ;; value to get the new Major Axis Vector value.
5 b8 B( q9 e) Y3 U. F; b% @ - (setq unitxx (/ xx old_majrad))( t9 O4 t* J/ v4 o: `8 I- }" K+ [
- (setq unityy (/ yy old_majrad))# C9 W7 |! L- F0 Y2 D* C
- (setq unitzz (/ zz old_majrad))
7 ~4 i% U3 S- E1 L7 H a - (setq newvecxx (* unitxx majrad))* u: i( w; b3 a
- (setq newvecyy (* unityy majrad))8 M: a& M7 k5 I8 `" q1 I
- (setq newveczz (* unitzz majrad))
- `) U: O' R7 g8 E - (setq newmajaxis (list newvecxx newvecyy newveczz))
8 l) o8 J$ T% D" M0 i8 z - ;; Update Major Axis Vector value( @2 I" c7 ]) F d/ L
- (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist )). x, [: Z: u1 V9 J# \( A& n
- ;; Update Radius Ratio value5 e/ l( `8 k; R
- (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))* t/ I: q o% n4 _2 U& k
- (entmod elist)( ~3 ?% Z5 S6 o3 I# P6 J
- ); l( ?% }: T9 ~: h
' K' u9 j+ ~5 L7 p$ Z9 ^1 w& @. i- (defun ddellipse ()
2 o n" c1 h' G- I/ x - (if (not (new_dialog "ddellipse" dcl_id)) (exit)). s9 F4 \- o% ]5 u6 w# C1 d
- ;; Set initial tile values8 I' Y8 S& N; [) o$ j
- (set_tile_props)
: T# a Y6 n- R7 M& H- P - (set_tile_handle)6 p' ^0 J3 I6 O# ?- T6 `. h
- (set_tile_pt1 1)
! [# r, I7 J$ w* a' { - (ell_calc)" _. Y8 H$ F' e% X9 a0 [
- ;; Define action for tiles! _, O0 [( U$ g% {5 _0 Z
- (set_action_tiles)" o+ `. ^. G) F2 G) ]) ~
- (setq dialog-state (start_dialog))
5 E+ p; w O, Q" h- ~* ^2 C - (if (= dialog-state 0)
! D- S3 j7 e0 `0 J - (reset)
: Q% ^( g0 @) f) B( d$ O1 H6 f - )
! C- s8 |! ~8 @ - (if (= dialog-state 1)
* a% C+ K4 T; ^( U2 J [' t- B K - (modify_ellipse)
; N$ ]: K* |9 X; n2 ] - )
' u2 ~4 a& r# X* O- s - (if (= dialog-state 3)
; l G7 g* I0 Q; }4 s - (progn
! G6 i0 E0 ` m+ A - (modify_ellipse)8 w* P; l7 U# X
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))- |( Y8 }2 M2 t+ P
- (ver_pt1 1)+ b7 ?7 Q2 Z5 }$ X" V2 M) O6 ]
- (ddellipse): z+ u2 W' Z# b1 |8 G" i
- )
6 }4 b) C2 X% F" h% W" ] - )4 s/ G6 \& o, N, b# C
- )
" N- O7 y! V; D; q7 g! v - ;;
6 z# X8 A) R6 a - ;; Modify REGION1 |$ p8 Q. v+ v: i/ B
- ;; `: q' B- ?! M: A
- (defun modify_region (); {$ D, D: b" ?7 F
- (modify_prop_geom), f" t7 y; h5 K1 t# X) C5 l- ~
- (entmod elist)
" I- `* P% O* }5 B) k - )
0 g1 v( i L* n7 K0 l2 B0 B - - k4 V8 ]& b8 l7 ?' a7 v
- (defun ddregion ()
& D4 [! M3 s9 J s; G, f - (if (not (new_dialog "ddregion" dcl_id)) (exit))
+ F+ ~" U8 c3 [1 R2 J0 B1 Q% r) w - ;; Set initial tile values
) h8 G2 g3 H6 [0 Q2 r2 M6 h3 d - (set_tile_props)
6 r: O, y# {* H - (set_tile_handle)$ O! ? u3 W: x& t
- ;; Define action for tiles. _* s9 ^9 @9 x7 G0 E4 n5 e
- (set_action_tiles), ?8 Q7 w$ o! g0 v" t
- (setq dialog-state (start_dialog))$ M; Z0 u3 N7 h; N& S! z
- (if (= dialog-state 0)
4 C/ D3 l% c* W* v+ c) h1 d# p" h - (reset)
: Y) k# W& x5 r- K. [* F1 O - ); Q3 F2 T; c2 d/ h$ R/ G# n z
- (if (= dialog-state 1)
& [: n9 i' |* i ] - (modify_region)
2 B, b9 f' V/ l4 o - )' V& T5 s4 f8 V8 p& w, n( W
- )$ J! H! }5 N' H3 e" s1 W# {
- ;;" [, B" C0 Z% @; ~2 M' j
- ;; Modify 3DSOLID& v- C1 ]. r& U. f6 _4 n
- ;;
( ?* g, U2 `6 h6 Z - (defun modify_3dsolid ()) n% I8 [% Z' n( j/ v
- (modify_prop_geom)
3 S# a* {) k d5 |( Q- h8 s3 g* U - (entmod elist)0 q+ R9 b! ^. |" N9 ]
- )
+ x! X' M( |# P, l+ V% P. u4 |6 L I - 8 w% I) P3 F, L5 A: C
- (defun dd3dsolid ()
+ t$ O# o% A. o, {, M - (if (not (new_dialog "dd3dsolid" dcl_id)) (exit))
) J1 z! G o6 k/ }# c5 e - ;; Set initial tile values7 {; I& ~% S! D
- (set_tile_props)
7 Q+ A& X* Z Z% M% V- f - (set_tile_handle)/ Q: A! D( l/ ?$ N
- ;; Define action for tiles
! r9 B# @2 d6 _ - (set_action_tiles)6 F1 K& N$ a& H
- (setq dialog-state (start_dialog)). L# [/ Z6 H" R3 X U5 J4 o
- (if (= dialog-state 0)& g# V( T3 X) x0 e2 `
- (reset)
7 {4 @, P: |8 N1 M% V* o - )! r' O. q( Z3 e( @' w
- (if (= dialog-state 1)
8 w% n; a3 V6 c* A - (modify_3dsolid)4 J/ `. o4 i' b# Q; n7 Y
- )
n( }4 E8 E! ]( p1 [ - )
# k p6 O( a2 A. d9 i" `6 i4 O& ` - ;;4 `& c% w5 ]# l" x. P1 ]
- ;; Modify AcDbHatch
1 T w! E8 H& ^" [7 d8 L - ;;+ A9 L a: _0 O5 w- b: y! o3 i) S
- (defun modify_hatch ()& A! {4 O$ w! n3 B" |
- (modify_prop_geom)
' X3 J& i* H$ e& U: h! j - (entmod elist)& g8 W9 @; x, e6 S& x
- )
( U; Y9 p( U: W4 e( Z2 Q - , J9 G+ w9 M) j
- (defun ddnewhatch ()7 x) X4 j! p1 t/ h" C
- (if (equal hatch-elist nil)
* I( W, R( e4 B2 w! L: g - (setq hatch-elist old-elist)
5 l ]2 Q% R4 Z8 K - )
_2 |0 g6 C) y" r0 V8 j - 8 _8 T: E O w
- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit))
: W; C; p+ ]& t
G, }% ^3 K, A3 d4 S; M- ;; disable the thickness tile
: g0 g" |* n+ O/ u - (mode_tile "eb_thickness" 1) m1 V8 u: ?* E$ q0 K" S# P' C/ ]8 S
- (mode_tile "e_thickness" 1)
6 Z7 _% [+ e0 U0 `* U - . G4 L4 [( i- P+ k, C! ?! q
- (setq help_entry "modify_associative_hatch_dialog"): K# M4 T; a. _. |/ v6 }
- (set_tile_props)6 B: |) J7 q, h+ S8 p0 g' l3 d
- (set_tile_handle)
2 k% X& Y1 F3 S/ x9 K. O6 N
9 J, E( S0 w8 Q* ?- ;; Define action for tiles
5 C+ O9 c& c( s, C& R" L - (set_action_tiles)+ u* n8 m, w* O- A
- (action_tile "b_hatch" "(done_dialog 2)")
7 S; Q0 O) a2 |& p$ R* C - (setq dialog-state (start_dialog))9 K7 w [* B! F! h
- (cond
" e9 N: Q `* g! B - ( (eq dialog-state 0)
! x4 a; y( J- i2 G0 N/ o) S - (setq old-elist hatch-elist)$ h/ s0 }: K& \+ S: i
- (setq hatch-elist nil)
+ ]0 @+ k' S6 M E, L/ ?+ U# X - (if (= (checkforlockedlayer ename) nil)
* M: ?1 u0 }% h" C - (reset)1 S& Y. N4 l2 U# J
- (progn ;;; special handling for locked layer reset
5 X8 j( O! y+ @7 P7 z( D - ;; unlock the layer; U* b, j% W# y# k' N# Z
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))
8 m" ~* ^6 }7 J/ E( m- }/ X - (command "_.-LAYER" "_Unlock" layername "")) X. N$ V3 x: M+ Q' S& u( Y1 K
- ;; reset modifiction
) Y! ]3 {) ]5 _* |, ]9 A - (reset); f% B$ e/ R4 K/ H- m
- ;; lock the layer again
+ W; v! P. C) U* Q! M# O7 t - (command "_.-LAYER" "_Lock" layername "")+ ^. v% j+ D/ c. y6 b( m# {, o
- )) M) I2 S" P8 Q7 C- B
- )
! V! Q# g- S; Z% x1 S1 ]. K - nil ;;; makes (ddnewhatch) return nil for Cancel
S' }( {" X/ ] - )* S6 y: s5 B/ @! x+ O# u
- ( (eq dialog-state 1)
9 W! N+ J/ r! i - (setq hatch-elist nil)
( f( r; T, ?9 ?0 X4 |0 ? - (modify_hatch), g/ h0 V2 k3 {6 U" [# Z) M8 D
- T ;;; makes (ddnewhatch) return T for Ok
. h- ^8 c& N! f$ F& q, @6 E - )
c6 J; M0 v* [. K - ( (eq dialog-state 2)
9 B! Z$ A& Y0 z6 Q f
- d" U0 S! r) F# [0 F* E* ^- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))
( h" _* W( Z- x/ T6 @ - 4
0 w) |8 e; G5 s - ) 5 ^8 U2 f5 _, R, ]/ F
- ;;; new selected layer is on a locked layer
2 d, i) ~" q0 C* A - ;;; we can simply modify the hatch properties
P0 p% y- y7 y0 f - (modify_hatch)# j8 q' S( q. } N) M- K; m8 }! z
- (progn) y- G3 ~0 J: P$ p% X4 x
- (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))
! n( ^7 Z9 z9 `: t - 4
- ]5 Y# n, o5 [3 D) X - ) + j" \2 N- q( H: ^
- ;;; We changed the layer previously and now the hatch lies on a locked layer.
1 O& {5 }: c# y, S - ;;; We have to unlock the layer forethat we can update the hatch properties.
7 h0 ]5 [7 O4 l% N$ W0 N J9 V - ;;; If we don't do that (entmod) fails to update to the new layer.
# L; r: o# o+ {. B* Y& B% \3 w - (progn; K" O3 I2 j- ~$ f8 T& a! C" [ ^
- (setq layername (cdr (assoc 8 (cdr elist))))
/ }: z6 V( u: @# ~ - (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer
3 N( k6 V# `! B - (modify_hatch) ;;; update the properties
9 k# r+ {1 a+ D8 v7 E. o - (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again" V6 N' l9 l5 R4 y2 n
- )
2 G" p' y( {2 ], a$ O1 W+ ^ - ;;; All other cases we simply update the properties
3 h1 o; h3 `' B/ p [, R - (modify_hatch)" W/ j# X8 a8 D% O$ d3 p
- )
" O2 Z- n8 B7 R - )8 r! \- c- M y# w g4 q
- )
! y6 F* y4 ]7 q3 D; k - (if (= (checkforlockedlayer ename) nil)
( u: \, L% Y7 ]* b( `4 l - (command "_hatchedit" ename)5 o- I4 r, i5 I. _ {+ V% ?6 j- k+ Y- g
- (alert ;|MSG111|;"The hatch object is on a locked layer.")
" F0 l( N, d) b/ o; c5 m2 z - )# e3 t& I4 E2 }; f/ k
- (ddmodify ename); f v b+ j5 T2 h
- )
# t7 Y% x0 n& d6 m - )
0 v# F( Q2 g6 k - )
; l+ p. r4 P9 F8 ]6 A, b - ;;
4 J3 D# x2 H% }4 R1 i - ;; Modify BODY1 k' C* s" w4 ]5 ]
- ;;
; ~+ e1 `+ M$ j - (defun modify_body ()3 m ?8 ~) Q/ K. u( v8 X/ f5 N2 R# [
- (modify_prop_geom)2 [* V8 G% A. H* x
- (entmod elist)
4 D% v0 E, C) V: t - )
0 O. q1 \8 |( b' p& L - 5 n X4 Q) `; ^4 L- q4 u9 m* X
- (defun ddbody ()
( n9 C0 s+ Y6 b4 |$ w" H5 [ - (if (not (new_dialog "ddbody" dcl_id)) (exit))
- K7 a6 e/ `# \7 z, D - ;; Set initial tile values
: s* a! D- Z8 j y/ i+ r* x - (set_tile_props)
+ Q2 J, n( b, F% w' l1 B - (set_tile_handle)9 k: w: _ |0 k. G
- ;; Define action for tiles
; ^$ n8 L' d+ v# i* j - (set_action_tiles)
9 N0 w* |7 S, u5 A% @* I: g - (setq dialog-state (start_dialog)). B6 X; `0 a4 {1 k7 f! R6 _
- (if (= dialog-state 0), Y8 i" l7 g% b. s' n, h
- (reset)8 r% l" f9 V; y7 j9 U+ n: C* M
- )
7 Z9 |8 r8 f: j5 O5 h( e - (if (= dialog-state 1), m9 k% z K/ L, ~* H Y
- (modify_body)* U. M( X4 Y" C C& F5 D9 q8 N" \" a
- )
, M) s: m0 R; f0 R# T) [ - )' s/ K( o& l( t8 v* C5 r1 I
- ;;
' c4 k/ G1 {* n- P% h% G7 ~" D - ;; Modify CIRCLE* q; ^% [! c( \7 P+ Z6 J s# v) Z6 ^
- ;;
r0 z9 o! k) ^' u - (defun modify_circle ()( ?$ T% ]. W& B
- (modify_properties)
! X9 V n8 S0 ]/ Y9 E1 v - (setq pt1 (list x1 y1 z1))% u4 U! ^4 L U2 ]6 O4 t) H5 J
- (tempmod pt1 10 1), C+ Q! R/ Z; [* v$ i, p! A0 a* T
- (tempmod radius 40 nil)6 Y! o, [" K7 d7 \
- (entmod elist)% a$ c% l4 f2 f8 K' _
- )3 C: [% k, j# o, x
- 5 q. r* T' z* ~- _
- (defun ddcircle ()$ ]7 c! c) R& k3 C0 r3 Z- ^
- (if (not (new_dialog "ddcircle" dcl_id)) (exit))- A1 V; o0 _9 h- K0 l7 d) M
- ;; Set initial tile values
8 G- k+ K5 x3 c l" ]- V1 Q3 h) ^3 ^ - (set_tile_props)
( d) \( W; H* @' @- u1 h3 S - (set_tile_handle)4 j- r9 J& @$ Q6 A4 H6 a' x
- (set_tile_pt1 1)
7 [2 M/ D6 k3 q6 l8 O5 A4 s: q& t - (set_tile_rad)# ]4 }5 \ j5 X4 }
- (cir_calc)
, @: E9 x8 y8 ]) b! S2 _$ G4 t- w - ;; Define action for tiles
+ p0 {3 D: B8 B) {2 a& `7 Q8 d - (set_action_tiles)
3 k% s! ] Q5 I8 {$ b - (set_tile_pt1 1)& G, A) b, U# b9 M9 G
- (setq dialog-state (start_dialog))5 w$ _- X' U3 U9 c+ l, D+ j& V2 v0 g( E
- (if (= dialog-state 0)
* U( [: @9 k1 o - (reset)
3 m$ {) c7 R" o2 S$ T - )
5 p- B& C2 m1 o2 j% s$ j - (if (= dialog-state 1)
, A$ J8 q+ Z" A- Y: x' g* I( T - (modify_circle)3 G' T [2 c |
- )# I# ~* @' V8 a0 [ V$ ~
- (if (= dialog-state 3)
\8 l# z4 M; Q8 m$ w* t& X - (progn
& ?7 U7 E4 S, {+ {/ u& u3 o - (modify_circle)9 `+ f) d' G% i; I7 Q
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))3 D$ |. R! }# J( q B8 N! a1 z
- (ver_pt1 1)
; a9 q3 A" \5 I* S- ~ - (ddcircle)4 b2 @6 U& [! B {
- )' E* [; i, {; o) Y# C
- )+ b# [! }. M. _3 ^! b5 y+ B
- )9 t: C1 [% R+ v
- ;;& A% G6 X1 Q3 E2 U& X a) R+ f
- ;; Modify ARC
% T8 f2 F% `5 N/ p' U0 I - ;;
, ~8 b3 M6 A7 Z) a9 N - (defun modify_arc ()
N/ w* y* B6 c$ e& L - (modify_properties)
+ r3 U, C2 i# p* ] - (setq pt1 (list x1 y1 z1))
" G4 v/ Z! ^. r8 y# h7 l& O - (tempmod pt1 10 1)
4 C/ ?" i. S+ }* A9 f2 X3 b" c - (tempmod radius 40 nil)
) p- L- Q( [2 _0 |1 I* ? - (tempmod st_ang 50 nil)
5 z, U6 }3 p. |' B - (tempmod end_ang 51 nil)
' R! U, p2 @2 t - (entmod elist)
4 _, E3 P- Z7 ~% E( t - )
2 Z% ]3 `5 h1 D! L+ P - (defun ddarc (): u5 ^% W& H. X; x! w' k) L3 O
- (if (not (new_dialog "ddarc" dcl_id)) (exit))7 j+ l6 [. p) O" N& W, `
- ;; Set initial tile values
8 {0 M* E! s8 A- K2 m2 L - (set_tile_props)% D! A: f [$ T! q
- (set_tile_handle)
/ g+ I( ?! E7 Z$ j8 ^ - (set_tile_pt1 1)
) {/ N" E3 a t2 B! }! Y1 ` - (set_tile_rad)$ p7 g0 k% \( d& e+ K6 e
- (set_tile_stang)6 R! A0 I1 e6 o; ^) c. }% T
- (set_tile_endang)1 L! \) d% I+ E+ G3 r1 A3 A* |% [
- (arc_calc)
! i9 Z* }: ~1 \& V* [7 b2 K* O - ;; Define action for tiles
( O d5 B' ?/ g6 { - (set_action_tiles)
1 N% a, C/ Q# v5 l, ^. ^+ C# z& t - (setq dialog-state (start_dialog))
2 t; r% j% H% m H - (if (= dialog-state 0)
6 g/ K5 {* z5 H4 c - (reset)1 V% s& D3 x4 S7 ~ h
- )* J" l0 o: `4 i) c/ D9 @1 m9 ~
- (if (= dialog-state 1)
, V& t3 N A" N# t! j5 y - (modify_arc)
9 G7 d8 G+ `. U8 j+ N7 _ - )
% O0 Y$ B; w% K0 d - (if (= dialog-state 3)
/ L; P. W9 ^& I1 m9 z" d2 a - (progn6 }2 w8 Y+ @0 d7 d3 X6 N
- (modify_arc)
1 ^1 C" C! C1 N# B# P2 D - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
# t1 R9 o9 H9 M9 I* m$ A) g - (ver_pt1 1)
) i- Z' i8 B* Y - (ddarc)
n5 R8 X( S/ X- X4 Y( [ - ), {2 @. h' h/ w+ H3 R
- )
% q. H& ^% _. A0 ` - )
e) I! X$ {! B7 z - ;;2 a9 V S8 h' P1 d% o7 J2 Q0 M
- ;; Modify SOLID or TRACE
3 o- R% y$ l$ }+ H c7 _7 O - ;; Note the Z value of the object is determined by the Z value of the fourth2 Q1 @0 a" R0 l% B8 ?) Y- P+ Q, ? r
- ;; point - code 13. Changing the point values of a solid or trace from a UCS% ]; U) A& a6 M8 h' y0 ?
- ;; that is nonplanar to the UCS the object was created may confuse the user.5 K+ D$ g8 b( q, b' P3 C
- (defun modify_solid ()
7 @! A7 ]; M1 p$ C9 _& i/ h - (modify_properties)
# g% F2 V. M# a% C; G4 M. E M8 q - (setq pt1 (list x1 y1 z4))
0 R+ H/ w& n8 ? - (setq pt2 (list x2 y2 z4))
; a0 n9 K: p, x$ n% S - (setq pt3 (list x3 y3 z4))
: X1 [& T, r! L) D4 K - (setq pt4 (list x4 y4 z4))
' A# ^& Z/ [2 a3 l - (tempmod pt1 10 1)) v6 ]5 R) X# q3 ], @( j, i% n
- (tempmod pt2 11 1)4 z0 t/ b+ r8 G! t4 H
- (tempmod pt3 12 1)' T, m( m9 G- B* D) w, d' r
- (tempmod pt4 13 1)
3 |+ F# R! |9 Q& P" O) N - (entmod elist)
" T0 i1 a' \4 s: j1 V4 A: p - ): P7 z1 n* b6 {9 F" p
" k; V* [9 ?) G- (defun ddsolid ()
& H6 N6 F! M' [; n$ I& V$ i5 y - (if (= etype "SOLID")( L0 ~$ Z# X0 m3 Y: w% D
- (if (not (new_dialog "ddsolid" dcl_id)) (exit))
# }4 f( J. G( X5 t/ d9 k - (if (not (new_dialog "ddtrace" dcl_id)) (exit))
2 {( w# b4 U; k7 M' p' G - )2 [' {7 M* k# K: @
- ;; Set initial tile values
% t3 W/ T/ G1 G% r9 Q - (set_tile_props)
8 l+ G" X* S/ ]' ], z - (set_tile_handle): {& M6 S* p+ u4 _5 x0 {
- (set_tile_pt1 1)4 c, L/ k- y5 R8 T! b: n( w
- (set_tile_pt2 1)
" _5 L+ t* s$ t4 t' U9 l9 c+ E - (set_tile_pt3 1)) T( `( q& h- G, L
- (set_tile_pt4 1)1 t! o% z3 {7 o+ g
- ;; Define action for tiles
5 B) A: c- V- `, z4 i: G - (set_action_tiles)
3 x* x, l; p# t4 V - (setq dialog-state (start_dialog))
e3 n" o( t% @ - (if (= dialog-state 0)
4 v, q: n: J8 v - (reset)! g0 i$ r+ t" c4 s& O4 ?
- )
& W# O: J J+ s! F - (if (= dialog-state 1); {. i: Q5 k1 }
- (modify_solid); u. r* A3 ^/ K9 H2 I
- )
) h& H6 g' X: D, L: r+ k2 M( \# I \ - (if (= dialog-state 3)
6 s; H& i, \" a. I/ \ - (progn
' e9 f: m& j; O% l - (modify_solid) n1 o, P1 i) Z
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))
6 M1 @: O: n* h# _; @ - (ver_pt1 1)
f6 K& J" m0 \, j- P: Y: |9 ]/ y - (ddsolid)
$ M: t' ]5 ] W9 w A' T6 n - )' I5 i7 e, i- f
- )
1 E9 C3 U( \6 B - (if (= dialog-state 4); q; `4 _/ ^5 Q- I5 r+ J+ k
- (progn7 E: I) m" q8 a
- (modify_solid)8 s3 {+ W n" ?9 t5 ?) z
- (entmod elist)2 r# C @4 |9 k
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
% d3 u2 i* a% ~ - (ver_pt2 1): H2 j3 K9 m, g4 x! t
- (ddsolid)" u0 x' D& u4 w7 a
- )
4 @+ o( a+ K7 Q' a7 n$ A - )
# K" E9 k8 z$ g5 i& K - (if (= dialog-state 5)
# d. e3 J. P9 B) r' N - (progn
8 B2 Q# j6 p. H$ J7 ~4 D" L: b$ j - (modify_solid)8 d9 p9 D5 y! E: ?
- (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))) T0 q) {: T! |0 V
- (ver_pt3 1)# ^6 \8 n( H, F" W& J
- (ddsolid)4 R; _. }$ f9 ^& q- T1 B% h/ G
- )) A1 S! N( f$ _4 z( w& u/ z
- )
2 o1 W0 l) V$ Q - (if (= dialog-state 6)1 x* ~1 y' |$ F8 l2 A& u9 ^+ }2 I
- (progn; J. r q3 B! q; D8 B: X
- (modify_solid)
3 c& n+ }9 ]) V6 g7 V - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
* X3 r( U% a3 H$ z$ e7 w - (ver_pt4 1)! M0 C# h- B$ Z" Z w$ I' Q
- (ddsolid)4 f0 l$ k( V# c& F
- )9 @2 w2 j6 d; _5 n8 O
- )
1 [- ^' Z8 H* f, B+ u! S) p - )
2 K b+ J" Z- W6 g: D: O# i+ B - ;;/ ?/ j2 T7 P) s) q! L! s, v0 j
- ;; Modify 3DFACE3 N% ?& a5 b- ]/ ?# T" K
- ;;7 c) O c: B% }. M8 y x
- ;; Check visibility of edges
, H Q- n+ O% V% d6 k7 h: v - ;;
: ], @+ i& j- K - (defun edgetest (/ bit1 bit2 bit3 bit4). Y r3 B: C$ l$ i$ Z
- (if (= edge1 "1") (setq bit1 0) (setq bit1 1))4 G3 ^* F( `* C5 v$ y& T& o
- (if (= edge2 "1") (setq bit2 0) (setq bit2 2))
7 j0 b. R* A1 b' L - (if (= edge3 "1") (setq bit3 0) (setq bit3 4))* N6 h9 q2 Y; \( u ~; A1 w
- (if (= edge4 "1") (setq bit4 0) (setq bit4 8))& }% H3 S4 b( {5 ~9 t* ~5 ^
- (+ bit1 bit2 bit3 bit4)
- P/ L6 @ U! S: O/ O - )
% C. ~+ Q) Q! ^( Y5 m* Y0 G' D
! z7 e/ }+ t5 Q1 B- s: f- (defun modify_3dface ()6 S1 K/ o& l0 H2 s' h
- (modify_properties)
& M5 `5 | H3 L7 x - (setq pt1 (list x1 y1 z1))7 r7 w. ]0 m0 G2 F% i% R ^0 x& i
- (setq pt2 (list x2 y2 z2))/ B* h% S8 E$ _% Q, ?2 l* g$ Q
- (setq pt3 (list x3 y3 z3))
; } z& X; u) v - (setq pt4 (list x4 y4 z4))
3 b; q! @; Y) T9 i" T1 U - (tempmod pt1 10 0)
- \4 ]9 m0 B, `! Q! R0 b) C6 W% L3 V - (tempmod pt2 11 0)# B9 Y- I3 U# u$ b6 _
- (tempmod pt3 12 0)0 V6 o' d0 `7 t$ `1 D- B z. Y" ~
- (tempmod pt4 13 0)
0 I- A$ z0 G1 H$ R5 s- i l - (tempmod (edgetest) 70 nil)
2 G( _6 l6 u& R5 g* p6 R5 q - (entmod elist)8 H, k" }' D& u" u) }7 V
- )
& x. V+ e- D# `5 ?) O8 U" u- Q2 V6 c - , @+ m6 z/ @- W% N8 r3 V
- (defun dd3dface ()
, X e' r% P9 [2 t% K. } - (if (not (new_dialog "dd3dface" dcl_id)) (exit))$ h- b5 q n8 j* J
- (set_tile_props)$ a f$ S5 A( @- x
- (set_tile_handle)
0 ~ ]2 R" x0 o& f U$ p - (set_tile_pt1 0)
' A* p; T4 c7 T6 V; E" C' S& ]- m - (set_tile_pt2 0)) r" h6 |( p! e( C( }9 ^
- (set_tile_pt3 0)) O- h. o# c, u" v
- (set_tile_pt4 0)
$ G( k* E3 ?! c2 p - (set_tile_edges)9 [* r$ m2 Z: y7 }: s. M. P7 D! Y2 {
- ;; Define action for tiles& X& {$ X5 Y ?: l$ r( ^2 _: b
- (set_action_tiles)
% H) t m+ s1 p2 t. D - (setq dialog-state (start_dialog))8 d$ ? R. y6 G4 {5 v1 n
- (if (= dialog-state 0)9 C% F1 y4 y8 z5 q
- (reset)" a' Y3 K* r, ]3 m# J+ X
- )6 ^' a6 H4 i5 m
- (if (= dialog-state 1)
% {( c C, S e4 ` - (modify_3dface)
, _" w) [" e1 P5 F$ j - )' j0 L4 k% ]9 ~" _" S1 p
- (if (= dialog-state 3)
; c; X& u/ h( d! c - (progn
" b2 v+ |: `7 n% J' O - (modify_3dface)2 j1 r) u# l/ ]% S
- (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))9 V2 Z7 O3 B6 e; i& B
- (ver_pt1 0)
0 w, |1 J* n+ C - (dd3dface)$ l, Z9 n# n! ?3 g* E% s" S
- )
" ]4 E: O5 `1 v! k7 O) z - )" [$ J/ z y* E0 p' w
- (if (= dialog-state 4)
# E4 }& `; E' @: y - (progn: w9 h; L; `" \. m0 f6 H( I3 ~
- (modify_3dface) |6 y, W- c' b2 g- g; V6 Q) }2 P4 o
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: ")), A- Z8 i# o/ { o8 s; U
- (ver_pt2 0) S* D" N! l6 p$ D" c6 v
- (dd3dface)
5 {- @5 e( U% x$ E4 [ - ). c4 v# o, i! n, g3 `* e; s( u
- )
; x5 I8 O9 D# |9 ?, X! X, w! [ - (if (= dialog-state 5)+ k" z+ O' D; ^; r \( V0 T# n6 A, b
- (progn6 |/ ` M$ W4 O3 Z
- (modify_3dface)
- L3 U7 [$ d8 l) V, Y2 U - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))
- [$ o& p+ B4 s- s% M - (ver_pt3 0)
) M: F+ U) _& i& i: v' n - (dd3dface)
& b6 h. v" [5 a3 m( U - )
/ @% \/ l6 Q: R2 M V @0 T - )
9 ~0 u4 L+ _" G9 j! A - (if (= dialog-state 6)) \5 |' ~( e& v/ B3 O& }
- (progn
: H1 ^7 Q L3 W5 q; Q J$ w5 D - (modify_3dface)1 _' h% T4 D P& |5 h9 p7 E/ G* |
- (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
) e. x4 B y- n' N8 x: i9 E - (ver_pt4 0)- _! u- @2 ^- l, T4 f
- (dd3dface)
$ S9 [9 {) G7 V4 c2 k - )
& U; C+ q8 O! F( f& e' ^& n: M# { - )" v! K9 j( F. e. x8 G# b! S/ |
- )
# W( g) w7 h n4 b3 t! G. J& x
: [3 |, {( s# {2 R3 R0 J0 L2 C3 l- ;;
0 {4 t- e9 [9 H: ]7 E- |% M - ;; Image functions6 f: h# J4 I1 Q1 ]5 V7 E$ B; H
- ;;
! m8 P6 T- z. Q% q' R - (defun image_scale (/ upixel en n userscale temp)
+ U) s( v( f/ E, v* d2 J3 {/ K - ;; Calculate the size of an image pixel in AutoCAD units) E3 i2 F. }1 v
- (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))6 i4 `) t$ A3 E
: \( j( X. Q9 Q2 K: H- ;; Retrieve the user scale
& I9 M5 `; {* F; Q - (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))5 t# [4 u% O) y5 C6 s
, @8 P' I. D! a3 H8 p- ;; Next, extract the image units and pixel resolution, ~3 Y1 F6 F$ M& R5 s" {0 F
- (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))' o8 z# n5 i1 x4 E8 ^2 ~9 e' O: ^
- (setq image:scale (* (cadr (assoc 13 elist)) upixel))7 A) j* U: c! a2 e6 E* j. d' e
- (progn
y7 b/ v$ M, v0 ^3 [6 f7 W - ;; Convert the user scale to the proper word) `0 l9 L' ^& V9 U
- (setq n (cdr (assoc 72 en)))% o( G. j4 s: o. y2 g; h+ v
- (setq temp (getvar "LUNITS"))
1 e9 v# V4 P$ o3 Q- `$ `" B7 g8 r - (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5)). N$ U# q, ]% a5 {7 G2 p% P! X4 |
- (if (= n 1) (setq userscale "Millimeter"))$ v$ d' P8 y: b/ i% [
- (if (= n 2) (setq userscale "Centimeter"))0 s$ M- j' b% w2 V" g; a
- (if (= n 3) (setq userscale "Meter"))% D) J9 ]% K6 X$ h& j3 O, f
- (if (= n 4) (setq userscale "Kilometer"))" x$ _/ L+ W$ u( j1 _) \5 e! r
- (if (= n 5) (setq userscale "Inch"))2 s4 y* u% s* f2 r
- (if (= n 6) (setq userscale "Foot"))
8 s- T! a( O+ q) M - (if (= n 7) (setq userscale "Yard"))+ p" O* I0 e1 C' k
- (if (= n 8) (setq userscale "Mile"))
6 ^) d* j3 K+ B8 ^6 \ s) w - (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))
+ P( e+ ]6 w! r2 o8 N* Z& b - )) A4 w! q( d" l l, Q i
- )1 M# M& c. n2 ?5 Q
- )
: [6 q; P& X! a- p
H( o$ y+ K0 F* d( t) W* A- ;;9 ]' O3 \; d( R9 w0 P
- ;; Scale factors for block insertions
l) w h( S6 N0 d6 F+ l" M. c: B - ;;% F5 ~- i' O0 _
- (defun image_set_tile_scale (/ temp)
4 g# [2 Z# v9 ~$ o4 b8 W - (setq temp (getvar "LUNITS"))
+ h. Z( P4 V5 r( Z$ j0 \7 Y! k1 ] - (setvar "LUNITS" 2)
$ C, X- v: V' b% S4 _ - (set_tile "xscale" (ai_rtos (* image:scale image:mult)))
+ k. U$ \4 j; [% t9 R - (set_tile "wid" (ai_rtos (* image:width image:mult)))* I/ h/ ]0 \# ?$ H& c3 Z& N" t
- (set_tile "hght" (ai_rtos (* image:height image:mult)))) p. D$ W, G( i: t9 L0 A! r* c
- (setvar "LUNITS" temp) y) z8 T% A) L# Z1 Y. [/ _) o
- )
( U7 f) A; j& M- {+ z b- D0 ]
/ K: |% D3 Y& I* E- ;;+ R! {. ]3 C, n6 x: f
- ;; Set the scale, width and height values appropriately.8 i" M c C3 K$ g
- ;;" `& ~3 a* A) p0 m3 e! p
- (defun image_update (field value / orig_value new_value mult)
" V2 \; [! |+ e# ]3 l - (if (= field "xscale")5 r. ^* [7 f S: ^
- (setq orig_value image:scale)
5 T- a5 {( q6 e% T; m9 O! G - ), |) N4 v) O+ O8 j8 V
- (if (= field "wid")$ x7 J7 q( Z6 _( M
- (setq orig_value image:width)' i1 k& V4 _9 |" J
- )
' D1 W1 x4 @& d4 c. W: S - (if (= field "hght")0 u, U3 q! J2 j, I1 v R
- (setq orig_value image:height)7 B6 S3 @( r+ X9 S x3 P
- )
e! w( X' k; A/ ^# L& s/ L - (setq new_value (verify_d field value (* image:mult orig_value)))/ n, @* \9 O* H+ S1 X& d
- (if (/= new_value old_value), J+ W: f. a) B8 x8 R$ J1 K8 p! D& `
- ;; Make sure the user has entered a sufficiently large value2 M4 c' Z! {0 K# R% Q4 E
- (if new_value4 r& k7 \5 S4 y$ C/ Q- C' T' z
- (progn
/ i/ d, p2 t6 r% Y# `6 h4 b - (if (< new_value 1e-8); l8 x' h% L$ W2 q1 g& Z, t
- (setq mult image:mult)
. D7 d/ x/ i2 F+ q9 q# ^ - (setq mult (/ new_value orig_value)). v5 t& [: Q; \" P2 Z7 E
- )
, m8 u R, H; D( \& c - (setq image:mult mult)/ D9 E. I/ q/ b5 a4 Q
- (image_set_tile_scale)! t0 B5 j: X9 D- C: [# C3 K6 r" z
- )+ e) H5 a, Y% S3 _+ P2 \* w' m
- )
2 {0 A" Q4 X, B3 v" |/ h- m; N - )+ Y4 j3 E6 ^' b$ u2 Y! R5 ?+ e
- )
* T# X& m6 |$ }5 b/ q$ w
& H2 }0 K! a; M$ X1 q3 y3 v, x- (defun image_disp_opt (bit)
- F) o0 @2 Z: D0 g) P - (setq image:options (Boole 6 image:options bit)); X" Q) c0 l6 W! _: U0 o; h
- )7 b2 q4 k2 d2 W, i. r. `2 C# [
- 0 K! F3 v" g/ ?
- (defun image_modify ()9 w1 S A- E, a
- (modify_properties)
1 r5 d) s, C, w - (setq pt1 (list x1 y1 z1))0 _( k' a y# W1 l2 K- z
- (tempmod pt1 10 0); q/ a- C; [# z5 D8 | q3 R
- (entmod elist)
7 c4 @1 |: f, ?( J) u3 G( x2 ` - )
! C# V4 G4 F- Q7 L: {7 {+ W - " m! ?) G: B. I, J
- (defun image_clean_variables ()' g2 x; {* [$ M9 M
- ;; Clean up global variables used here+ ]& n4 u3 U5 J" E1 G9 H# @; e
- (setq image:scale nil)7 r o# D) y( G4 T+ [4 ^
- (setq image:angle nil)
( n$ G. \: z# q - (setq image:width nil)5 V" H- }$ k- D4 W* w8 [. l
- (setq image:height nil) C3 V! H& b, b: L6 d
- (setq image:options nil)9 k. l- W8 q8 |3 |1 d3 E
- (setq image:oname nil)3 M/ R: s6 f# J% {
- (setq image:olist nil) ]8 d& F# `' K( ?& w) U( c
- (setq image:mult nil): v+ Y- x! v1 ~- w2 o% g
- (setq st_ang nil), B- Z3 c; R5 o
- )& ~: A v$ |. N) |
- ! u! i% L |, p
- (defun image_scale_vector (v1 value), E1 w- ?3 D3 F' e
- (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))
! L5 B+ `7 N, v$ k - )
) w; q$ U3 B) x
}, R& [- g1 b8 O. @. ]- (defun image_cross_product (v1 v2 / vx vy vz)' R' G4 h, z* _ f- p8 N
- (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))
* A/ U; b! a0 e2 p2 }6 q6 P2 q. Z4 p( o - (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))1 j6 Y# z" O0 ?+ r, O+ ]; q- n
- (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))
+ m) d2 S4 h. m/ t; j - (list vx vy vz)9 C1 e" B" u! B
- )
) I! M) h* q" E) z' p8 f* c - * s; g' G+ z9 x% }) O* W& s. f7 ]
- (defun image_dot_product (v1 v2)+ ]" Q7 h0 x0 y; h. D5 F/ G
- (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2)))
% ~4 U* b6 d7 P) B, F$ V& K - )
4 q: I1 x" d7 s8 T# [$ y
: J0 o! E4 a+ L0 ^3 o0 J" w* d- (defun image_add_vector (v1 v2)
# s$ y2 v8 P# W) {' D% M# @ - (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))
2 f" {3 l/ W" X% {' \/ x3 ? - )2 Y0 d; d. A% x
- " Y2 Y. \! a+ ]. F/ ]/ B; t
- (defun image_subtract_vector (v1 v2)
! j7 U! A& b$ M9 G8 Z' n0 s" o - (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2)))
( D0 w1 c! }( h - )1 d# r9 c0 D/ q. r. |
- $ X) C* H# P. n8 l
- (defun image_normalize_vector (v1)
7 a# l' Z, @9 X+ y# h: S+ R) l - (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))
: F0 {6 J0 b& z1 H0 e - )3 ]2 S, F4 l9 q% F$ l5 M( t
' @# Z8 N3 A o- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)
8 H/ [& S5 |5 X$ j' J; I, G - ;; Normalize the axis
, R: a5 g# [5 v2 U2 i: T - (setq axis (image_normalize_vector axis))! k! Z2 s5 }4 b/ L g1 A
- (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))
0 h4 Q: x/ U( {& A# O4 r( p4 g& | - (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))) n* c2 j; S1 s. p
- (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane))6 L) T) x1 n* k8 c
- (setq in_rot_plane
; g4 k$ L$ b$ W# `- }3 f3 d% g. q - (image_add_vector5 G m9 A' A0 x o
- (image_scale_vector axis_x_in_rot_plane (cos angle))
" q. _5 u7 p! {( K5 H. E! ^# }1 Q - (image_scale_vector axis_y_in_rot_plane (sin angle))
H3 [. M2 p! T0 c9 ?- s - )1 s2 F2 j3 t: r
- )
) x, p( k5 P( [ - (image_add_vector along_axis in_rot_plane)
! `7 H: [/ O: | E' V3 b; M+ t4 X1 m | - )# F6 a% t& J/ W4 P, }
) }4 f" a8 p5 z0 f4 o* m- ;;, \% V( I' l7 h- q9 v9 m
- ;; Calculate current rotation angle if appropriate.
4 k! ~. ^% [) O4 T; U - ;; If not, grey out the rotation field.
' Y& j; `: f2 M* j4 y - ;;
( A6 \) V k- e. Z p - (defun image_rotation (/ normal rlength zlength sqrt_tolerance)" A# w2 n. j* z) d
- ;; Determine if image normal is codirectional with4 B3 i% w% T$ u9 \. ^7 q/ G
- ;; the current UCS Z-vector.2 Q8 s- B" c. @6 X0 Y, }
- ;;
5 C2 }# h& \2 U% N7 ` - (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))1 m* j; G7 a4 Q7 F7 G
- (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))0 Q+ V1 m9 w4 j" ]7 H. G
- (setq zlength (* (last normal) (last normal))): m# X2 u# k: ^1 K! V
- ;; Note that the value .0001 in the radians is approximately 0.0057 degrees.
' E, g8 c& D1 \6 s& o4 T; U - ;;
+ T! n; x8 O( S: ^ - ;; cos(.0001)^2
8 f i X" Y9 @; f! z- R" d - ;; Tolerance = --------------
* R( l$ m. U1 p - ;; sin(.0001)^2
. E; s- m1 a& K - ;;& M* Y$ u! e' O6 q+ w
- (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))
# N8 F. \3 M Q8 A5 N( P9 L1 m$ a - (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))
- j5 G r: Y1 j" }! V9 n - (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))
& `5 D% w: t. Q6 s$ } z; B) l' P4 y - (progn/ @9 |7 L9 I# g4 d5 a
- (mode_tile "st_ang" 1)! K7 z: x3 @* s0 _3 d
- (setq image:angle 0)- U) C) f: U' s# y \
- ): X, T: |$ @' \- ^; p# y, I0 R
- )
* i/ A; C( R+ r! p - )
' E, }# S1 n8 _ - 3 F1 \. W0 R1 A0 N% J9 Y
- ;;1 i9 A f" L' { ^8 ^3 `8 v
- ;; Modify Image4 j4 `" Z6 r7 o, ~& ~+ b# [
- ;;
. {6 A% I* m6 ]! v' n5 { - (defun modify_image (/ u_vector v_vector z_vector)
/ b) x- m2 E- \. c0 U9 i1 X - (modify_properties)- L6 D* S$ U6 D) i& k+ m7 n
- (setq pt1 (list x1 y1 z1)). G) o" q6 E6 [& _" e
- (tempmod pt1 10 0)
9 p2 x7 u. \5 K9 J - ;; Make display option changes to image
7 p( o/ |: ^% g5 Y+ p4 T4 r, t - (emod image:options 70)7 e2 s y% w: d j
- ;; Get the u and v vectors$ s: H4 Y/ v- o# J
- (setq u_vector (cdr (assoc 11 elist)))" f0 q( r6 D2 i8 P& W. r" w- D2 L
- (setq v_vector (cdr (assoc 12 elist)))
- h+ {5 N& r. C/ D% E
" Y. j) J3 q$ X* t- `4 K4 S4 B- ;; Make scale changes to the vectors
. U0 ]; ]7 S0 U, Q6 | - (if (/= image:mult 1)# k- w# h, _9 Z( w
- (progn
8 s' M* E9 ]' i5 z - (setq u_vector (image_scale_vector u_vector image:mult))% I4 B/ z0 B+ q7 Y) n2 X
- (setq v_vector (image_scale_vector v_vector image:mult))* q& w0 {8 b8 s9 Z2 y: J, ~
- ) B" l5 @2 Y! S3 x4 x
- )" _: V2 z7 z! I" W
- ;; Rotate the vectors
# M5 s& e% {: H, X - (setq st_ang (- st_ang image:angle))
7 w3 b- F4 t' d p" Y - (if (/= st_ang 0)1 ?2 |' U1 h) Z& @& ^9 H
- (progn& l8 r; ?4 |" Y" B
- (setq z_vector: {' M: a8 U) m4 z
- (image_cross_product
: U4 n9 U- N& [ M - (image_normalize_vector u_vector)
9 w1 O& w: M* H, y. Z7 V' R - (image_normalize_vector v_vector)
4 @9 X* @ q. N' W+ K/ d - )
# z# ?" a, l$ E - )3 E3 E9 \2 _6 y1 k% L$ Y% `/ `
- (setq u_vector (image_rotate_vector u_vector st_ang z_vector)); D' P! a8 ?' l4 P# f
- (setq v_vector (image_rotate_vector v_vector st_ang z_vector))' l2 ~8 J: M M& }7 C0 u
- )
$ i% F0 R3 ~# K- R+ X - )$ J4 P. x: H. U) a
- (emod u_vector 11), T. P1 j! I7 f e3 A" T5 r3 l
- (emod v_vector 12)5 t: d8 G- l) k' J: u v
- (entmod elist)
: X# O3 W8 N* }5 W5 a- x - )
. m. G, p0 N2 b/ |/ m3 u/ D - 7 o* Y! K1 x3 ]: r4 ?* y; W
- ;;
6 R: a& s# ]/ X% F6 Y2 ` - ;; Run imageadjust on given entity, working around possible( [' i3 W( W( P
- ;; re-entrancy problems
: O0 g+ W$ a9 G# X o3 C" O" S - ;;: i4 R2 D9 S' G
- (defun image_adjust (ename)
1 g& x0 v% J; l( T4 M" R - (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...
, s' P( v- M: }" u( s - (imageadjust ename)7 Y, v3 p4 H b
- )$ N* o. N) F0 y* A- U& K8 W7 {
3 O/ j M5 h* ~! t! e- (defun ddimage ()* y8 t# H8 F0 V: E, F
- (if (not (new_dialog "ddimage" dcl_id)) (exit))& o. C( ?' N$ w/ R# N
5 o0 k9 y' ~; Y- ?+ W- ;; Grey out the thickness field.
; X( v* R1 j! |- e: U3 w$ {5 K( Y - (mode_tile "b_thickness" 1)1 t6 J' B' w( ?6 F3 ^
- (mode_tile "eb_thickness" 1) E6 r, n8 q7 \ ^& J0 z
- . g" A' X) U1 y$ \9 I' ^7 G5 }5 t: H
- ;; Get the associated def object.. e6 F, H5 l, Z, T
- (setq image:oname (cdr (assoc 340 elist))), _) o' z( v1 Y: R% G
- (setq image:olist (entget image:oname)); f3 ?( B. s, ~" V6 s$ b4 e9 x: O
- 5 M1 |. F/ t( N" F" ?
- ;; Set initial tile values
" ~1 [$ c( C+ X8 x - (set_tile_props)
2 [' W( V' X5 I0 V8 B; q, O - (set_tile_handle)
. q( }) S5 @/ J' y8 e; F - (set_tile_pt1 0)6 F1 i# V% z6 Q% S& z& {
- (setq image:scale (image_scale))6 |5 ^. f+ w& u+ v
- (setq st_ang (image_rotation))
+ w5 p& S0 I7 c5 C M7 h2 x - (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))
7 `9 l/ X, Z# }9 A( h% q - (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))
" o& G( _: @+ e! [- S - (setq image:options (cdr (assoc 70 elist)))/ [9 x5 h/ V7 R/ D
- 8 v5 h# ^/ g2 m3 I q! D& {
- ;; Record the last multiplier for use in image_update function
% L4 `' f2 i" f( r5 Y - (setq image:mult 1)
' D! p. D0 D2 \* ^( T! n9 z, h
; i) x5 a7 ]+ n6 `4 \2 i; L- ;; Retrieve the image name0 I0 L" L& I# n
- (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))& X( W, `1 a0 n1 M2 N& {+ K
- (setq flag 0)" W! `4 [% \! I! {9 U" I( J
- (foreach n fn
* P+ v4 R" A: e - (if (= flag 1)
D7 t/ M7 G0 h. T; h - (progn
4 ?' U# c( o/ }% X) l - ;; Display the image name
0 s& B+ ?3 M d/ ^0 o - (set_tile "image_name" (cdr n))1 y% m- g* `& |5 N1 Z
- (setq flag 2)
0 d a( H8 \0 x( t6 k - )
7 m k3 z9 o4 e" } - )
E' P- J, L s1 t: \5 t( {; m y - (if (= flag 0)5 P: C2 z. M2 T' d( o) _
- (if (equal (cdr n) image:oname) (setq flag 1)): Z) h! C& D6 t4 y2 Q3 e
- )
. ]" f9 G- {" R' b4 p - ), a8 Q [2 ^1 S0 t( d9 ]( r# T
- % I" |$ ]( Z# X" R& U; E
- (set_tile "image_path" (cdr (assoc 1 image:olist)))
C5 ^' M( m% g- y" h* a - (set_tile "st_ang" (ai_angtos image:angle))
1 g/ s6 X% G# j1 W( R$ e - (image_set_tile_scale)
- j) E- D( z6 R1 X/ o9 _. Z4 B - / F( x9 ?: Q! ~7 I1 b6 r! H
- ;; Check the appropriate boxes
/ I4 k% d6 O2 n* D - (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))1 k6 g* d5 `# F; L2 v
- (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1"))
; ]8 h4 x+ o' z - (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))0 u# Z, g& K: M2 T, O9 M
- (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))4 ^) S- B9 ~2 l$ n
$ A8 ~5 [8 T/ h0 Z. W% |- ;; Define action for tiles* q5 e6 S) ]8 [. v' O7 E, v% b/ f
- (set_action_tiles)
1 J3 [5 W0 \% z - (action_tile "xscale" "(image_update \"xscale\" $value)")$ B8 P# l" `3 g* r. m4 W( b) l
- (action_tile "st_ang" "(ver_ang1 $value)")9 {; {8 i6 q% R7 F& b. z: p6 B& {
- (action_tile "wid" "(image_update \"wid\" $value)")
* Y! w5 H) Z! ^ - (action_tile "hght" "(image_update \"hght\" $value)")* ?3 N# d( h2 U, s- ~: O6 E
- (action_tile "image_show" "(image_disp_opt 1)")' |, `2 U2 x$ w/ n
- (action_tile "image_non_ortho" "(image_disp_opt 2)")
1 {% Z* ?% v1 | - (action_tile "image_clipped" "(image_disp_opt 4)")
5 v& p+ C: Q7 Z# k5 y: C - (action_tile "image_transparency" "(image_disp_opt 8)")
* s* t) s4 V( ^! ?. N2 ~5 n - (action_tile "image_adjust" "(done_dialog 4)")
# y" q! i: G; K# {* _ - 4 } R! ~5 F. u; z( J1 p. R$ D7 y
- (setq dialog-state (start_dialog))1 d3 @" n: i* c, i( \
- (if (= dialog-state 0)
; Y4 L" }& u4 p; z# `) m- n - (progn- }8 I: E# h2 k X+ J+ q, l
- (reset)4 R; x, n, x. `/ u
- (image_clean_variables)7 `5 ]0 L& H: C$ z% O* ^
- )
& T8 a2 p4 z" l p - )& s$ f8 r- q2 A
- (if (= dialog-state 1); z+ f" H8 ~) g/ T' f% U
- (progn$ N% O# u: i$ L! q
- (modify_image)0 j" d# q* O/ M2 A7 A9 g+ k, H! [$ p
- (image_clean_variables)
0 n4 O" c. W! ~( {6 H4 y* ~ - )
' Z$ X4 Y3 } ^7 B ^ - )+ ~# T( O# N6 g& ]/ F* [
- (if (= dialog-state 3)( i4 g% o! A: E9 k& ^
- (progn+ o" l3 v0 m* c# N2 X
- (modify_image)9 |4 P+ ~2 \* p% x
- (image_clean_variables)
$ U: P5 g) }7 k: n' @ - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: ")), c% ^! V% z( o+ ]2 r# Q
- (ver_pt1 0)
; w! P' g5 r( t9 p6 e" s) p+ Y - (ddimage): A" ?! w i% j
- )
" g9 e" [6 p+ v4 ]$ b3 { - ); ^$ T1 u6 ^$ O
- (if (= dialog-state 4)
9 v1 k1 A- y" C O0 c% I" F - (progn* _6 \5 m( D- w0 B* O* g& x
- (modify_image)1 c( a& U! G0 y* L% r4 N3 w
- (image_adjust ename)* H* V$ H% @- D( ^, k* S
- (setq elist (entget ename))
. `3 T* u: \8 {8 x% ~ - (ddimage)
; N4 k. m4 u+ [ - )
R6 u0 x( z Y+ m/ P7 C - )
5 R4 v: U F- Y- N - )) u# x1 ^+ |' O- f+ g D* G1 z
+ B7 a: e$ ^; P, `- ;;
( ^% l$ ]0 n/ p6 {9 H. c - ;; Modify BLOCK (and its Attributes, if any)- W/ d/ a0 S6 u8 ~3 X* b1 B: m
- ;; ^$ _3 Z/ |' w0 L; ~/ k/ |
- (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr
( U! |! p; r0 F2 C% j( x - new_wid old_wid old_rot scaling old_scale( y0 R3 n8 O. |6 ~- _- w
- xdelta ydelta zdelta xbase ybase zbase ipos)9 i% v8 v6 z& J. Z
- (modify_properties)
a8 j# s) o0 [
2 V+ E- r# T8 n0 J% x6 ^: ]4 W- B9 R- ;; First, translate and scale the Attributes, if there are any.) U% [- K. i' s6 v
- (setq old_rot (cdr (assoc 50 elist)). ~$ o3 f7 S( ?/ B3 L# y' l! |( H
- old_scale (list (cdr (assoc 41 elist))# H3 Q" z; k3 J
- (cdr (assoc 42 elist))/ d+ P& ~# ]- f
- (cdr (assoc 43 elist))) Q2 p$ A- {* ]3 @$ q
- )
2 u/ q4 T% g8 q3 c5 Z0 }/ y: ]# e - scaling (or (/= xscale (car old_scale))
2 r, d, R( c% P: ?' ^ - (/= yscale (cadr old_scale))
- w4 x H H! A" d - (/= zscale (caddr old_scale))& l* C. i; z( R" b- c2 S
- )4 D+ D& q8 a7 z$ r& k9 D9 C/ G
- attr nil ; No Attributes modified yet; @; q& A" w. C$ T+ n' {
- )) j% d" K, R. a% x* z7 L4 G, b
- (if scaling0 k A# i: x# \* D5 j R
- (progn5 [( v6 d% I G2 Y% K- k5 `6 f
- (setq xdelta (/ xscale (car old_scale))
, c' I( z2 f- H+ m7 } - ydelta (/ yscale (cadr old_scale)): E, F% X% ~3 ^3 k |2 s
- zdelta (/ zscale (caddr old_scale))
. X; j$ B$ K7 G# |" f- _- Y7 t - ipos (cdr (assoc 10 elist))
/ O( _' q" J7 O, ?" y: j - xbase (car ipos)
# P- `! Q1 X! r, q6 S" L - ybase (cadr ipos). E) H% \6 A% p% f+ ~
- zbase (caddr ipos)
) K; |8 L* f/ R5 o" ` - en2 (entnext ename) ; First Attribute
# q0 v* ~% e6 ^ - )
! L0 _8 R- C. p& B) h) e2 o n - ) [* l& }) h' }0 |
- ; If the Block is rotated, temporarily un-rotate it, along" A- W% a9 { b# H2 q
- ; with all its Attributes, so the scaling/translation of the. O5 D7 Y! l/ e8 r& B
- ; Attributes won't have to take the Block rotation into account.
- c" r0 Z: C v - (if (/= old_rot 0.0): }9 s" ^# x, W2 j& w8 X; w: g
- (progn; v4 `* }0 q9 N2 ^$ |
- (command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))
4 v- t3 o: j# F. J - (setq old_rot 0.0& s3 [4 [' o1 w3 u
- elist (subst (cons 50 0.0) (assoc 50 elist) elist)) ]2 p: j& o, x2 T; ~0 @
- )5 U f+ f$ b' }' x f
- )8 c! _3 J+ @. ?( {& d% O! H
- )
; T/ N- H1 _/ g2 m' E - 6 Y0 W% M; }8 S b! ]
- (while en2- w0 \1 z4 Q* e" T Y6 u
- (setq el (entget en2))- K3 T% S/ b/ H: |
- (if (= (cdr (assoc 0 el)) "ATTRIB")
8 X+ W8 r' N# K. R5 _ - (progn
# w% Q& s1 Y5 {8 x0 P+ R) W4 R, B - (setq old_hgt (cdr (assoc 40 el)) ; Height6 @# Z# c- m0 J9 O: F4 r3 x
- old_wid (cdr (assoc 41 el)) ; Width-factor: e9 y6 l# J7 l
- oldp1 (cdr (assoc 10 el)) ; Generation start point
7 @1 {' B6 s+ a! h - oldp2 (cdr (assoc 11 el)) ; Optional alignment pt
- G$ C& Q3 _- X - ha (cdr (assoc 72 el)) ; Horizontal alignment
! L+ y% R! y/ G6 B! ] - va (cdr (assoc 74 el)) ; Vertical alignment
7 j7 u' Y, M0 x4 N4 c6 d - 2 P: _5 X U! d- l8 j+ O- i& S
- ; Translate gen. start point! v1 E/ I' y1 T! O/ A: s
- p1 (list (+ xbase (* xdelta (- (car oldp1) xbase))). R/ z2 J- W+ ?; P4 |
- (+ ybase (* ydelta (- (cadr oldp1) ybase)))6 V6 w3 d/ c X3 l6 y
- (+ zbase (* zdelta (- (caddr oldp1) zbase)))2 D; j" e6 Q& }' n4 A0 O: B9 o# c
- )& H. g' {7 x% Z
- el (subst (cons 10 p1) (assoc 10 el) el)0 s: L1 u1 W( ?* y! v
- )0 w9 o( K+ k4 ]
- 5 [1 P; J" {/ U: ^. a$ j/ \
- ; Translate alignment pt similarly, if present and applicable" v( G6 V) H/ B
- (if (and oldp2 (or (/= ha 0)
$ r% O( [. J: P - (/= va 0)) ]1 b8 w+ E8 k: V6 W
- ). t8 @- k) E. g! X
- )
" s: C+ H0 ~( \# B+ z+ m - (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))
( B: F$ k4 y" r( D3 c G) Q - (+ ybase (* ydelta (- (cadr oldp2) ybase))); ]3 M4 W- D+ |" L' u& ~" y
- (+ zbase (* zdelta (- (caddr oldp2) zbase)))3 j2 Q O; {+ ?) Z% f3 ^; o9 Z; x
- )
0 r& P) m4 }/ ]/ I/ N7 h0 ^ - el (subst (cons 11 p2) (assoc 11 el) el)
" E# N9 w2 S+ T$ H - ) ~# c7 Z. v8 D# Y' Z7 W2 r
- )
$ P u C* x& }8 \/ O
4 U2 m: V4 K1 e4 O9 c) T0 s- ; Each Attribute's height and width-factor were computed
7 `" F1 S* N' y! s: q I2 \ - ; based on the Block's scale factors. Adjust them now,1 e# t: s" K, ~$ k6 ^' X$ A& D# U
- ; by first reducing to values for 1x1 scale...
+ P3 z$ ]& d% {' D# Q - (setq new_hgt (/ old_hgt (cadr old_scale))
3 r' h5 N' y1 C7 U/ Y - new_wid (/ old_wid (/ (car old_scale) (cadr old_scale)))
1 W6 _% [ g3 k v4 T* o( D: ?) ] - )* n3 H% z/ _9 U+ e, a# W
- ; ...and then rescaling.2 r! D; P0 @3 R& @
- (setq new_hgt (* new_hgt yscale)
6 I# v( }% _1 M - new_wid (* new_wid (/ xscale yscale))
! q. r& v- h$ B+ X. H - )8 C; c" j/ S: h: D5 O3 c0 p
- (if (/= new_hgt old_hgt)
0 K# d1 M3 l& D - (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))
2 h* u6 X2 A0 T8 w0 o( b" B& m2 J P - )/ V z* H. F- W" b+ N; _$ b
- (if (/= new_wid old_wid)) l; T0 l1 w4 r" T7 J! X; X1 N
- (setq el (subst (cons 41 new_wid) (assoc 41 el) el))5 O, W/ A! {; f) A' n
- )" o: v% {8 m- x/ \5 I
- (entmod el)4 W e. U8 g, t" ~3 h5 r" Q
- (setq attr T ; At least one Attribute modified9 _& e/ T( J( Z' C" J
- en2 (entnext en2) ; Next Attribute5 m6 \: ?9 U5 a, f% x1 y
- )
( T* H8 M& \# T2 ^, U A# K - )0 h$ {. m- ?* _$ P5 L
- (setq en2 nil) ; No more attributes
+ V+ I- E n# M - )
# Q" G# I2 @* j" A) M J - )5 L5 x2 |% n* x. [9 q1 t" B6 P
- )
/ V! @" N0 S3 \; J, ?. Q - )
: n8 |" u8 O$ Q2 V# [
+ Z i/ _7 f6 e. y9 w9 }1 ^5 }- (setq pt1 (list x1 y1 z1))) W1 `4 Q+ i m& ]: \2 u
- (tempmod xscale 41 nil)
/ _( f& B1 f1 }# Z - (tempmod yscale 42 nil)
! g* I7 C, T, F* _4 i - (tempmod zscale 43 nil)2 M+ d& P- [; y- D& n' I9 y
- (tempmod col-sp 44 nil)
2 A& }$ U) _& Y; d: b4 M8 ] - (tempmod row-sp 45 nil)! z0 K! Y# R2 I5 U
- (tempmod columns 70 nil)
' d) {2 M6 l1 D2 u; \7 H3 u- a/ d - (tempmod rows 71 nil)
+ ]( Q# @- X3 }9 m$ l - (if (= xclipmode nil)5 b4 l5 H' s4 ^
- (entmod elist)
, n! A2 ?& d* e) i - (setq xclipmode nil): t) V. b. t/ ~' j
- )
- n1 q- H6 L0 x% N* \ - (move_pt1 1)9 M: V) @2 \# j9 @
- ! t* [. Q% N) Y+ s6 S* E! e) R; G
- ;; Now do the rotation with the ROTATE command.
& I( V `- t% U7 s s, q - (if (/= old_rot rot)7 t, U7 `* U9 ^ l- i5 x' I
- (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))
- @" \* d* m+ P; u; M1 q - (if attr ; Else, if attributes were modified,
# T9 z. w5 }- n9 i - (entupd ename) ; just regen to force attrib display
: M" t. U5 b4 w& W/ o) F - ) C9 N- M. x6 b
- )
0 O; r' w$ w+ ~; u - (setq elist (entget ename))' [: p j6 `/ \
- )
9 [! A7 a5 v: G1 J# {; c+ b4 z - (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath); [, j" M1 g% c
- (setq newhatch 0)) X- \7 ^7 \: L5 S
- (setq blkname (cdr (assoc 2 elist)))( H' P* W' W) H
- (setq blklist (tblsearch "block" blkname))
^- I. S7 o" x - (setq blktype (cdr (assoc 70 blklist)))4 l# M" g3 H1 i3 c
- (setq xcliponoff 0)$ W& x* I' v. m& j
- (if (or (= blktype 0)(= blktype 36))
" i! h% A9 \) d2 u: D - (progn9 r, ?0 n2 z* |, N
- (setq xcliponoff (xclipon elist))( z5 a* T' A* s+ q& J" {' `" H
- (setq temp_xclip xcliponoff)
- G( E* {: S9 P* n! H- W - )6 \- X. {1 {: |7 [; B4 _
- )5 S# M W4 L# M6 R
- (if (= (logand blktype 4) 4)
+ ]6 x' y0 P/ q V/ ` - (progn
# j: T# C+ \, P* V- t! m - (setq xrefpath (cdr (assoc 1 blklist)))
# y' J, {( X5 G$ z/ C4 V0 q! l% P - (setq help_entry "modify_External_Reference_dialog")3 r8 U8 B1 X* H! s
- (if (not (new_dialog "ddxref" dcl_id)) (exit))
/ G: D3 G/ \2 S1 s - (set_tile "Bl_name" blkname)
P# h: f7 O! s! B4 J7 h - (set_tile "path" xrefpath)) X' {1 `+ g0 Z# c x) P, C
- )7 j5 j5 A# Z o$ n8 e1 L: D
- (progn
0 @* S3 {5 R* W5 {5 o7 E' w - ;; Get program name for use as Xdata app name
6 T4 F: [3 e# y4 f8 w& ?$ p - (if (not (setq program (getvar "program"))), ~1 ]. Y9 W" W/ ]* I! v& j2 S6 D
- (setq program "acad")6 v0 B$ h, l& A1 k, y* T. b4 O$ W4 [
- )
$ D: @& c* W8 ? - (if (and (setq temp (assoc -3 (entget ename (list program))))$ J0 t; q1 q- ?- @6 g, f" h
- (= (cdr (assoc 1000 (cdadr temp))) "HATCH")8 t2 U6 l7 p# s$ t1 j
- (assoc 1005 (cdadr temp))
; ] M8 P' w" b& N7 T - )
7 {; s3 u& F4 a* a9 L - (progn
3 m. M7 x B* P) V+ B: p - (setq newhatch 1)
7 g9 c+ T$ P) V, X! V - (setq help_entry "modify_Hatch_dialog")0 z7 X8 F7 g5 S& d8 T" d
- ;;; convert the object into a new hatch+ i, f( {) j# H" V3 F
- (ai_undo_on) ;; enable undo, O' r2 \- ?1 ^, u/ e# { i! ?, [" K
- (COMMAND "_.UNDO" "_Mark")
- a! V' M9 W, \7 N' m. U x - (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")9 n/ t6 C; E5 v; A4 L( o
- ;;; suppress nasty message from convert command: Z P0 c+ @' Z8 z% j5 T- O
- (princ "\r \r"), g( c, z0 T) B4 N9 {/ c
- (setq elist (entget (setq ename (cdr (assoc -1 elist)))))
3 K; M8 a% O( d4 Z2 W - (setq old-elist elist)9 l+ ~1 c& G' K/ M, ~- N7 h7 i2 D
- ;;; If we have cancelled ddmodify
8 ~! h* {5 y8 Y) t9 \) a2 H* | - (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok5 l7 i+ Q9 g1 B ^1 `8 N/ U$ O
- (command "_.UNDO" "_Back")" c; J8 ~" x' w/ K
- )
1 s2 w4 O6 x% k: z" A - (ai_undo_off) ;; restore undo state* c0 H6 o# r$ x$ A
- ); E" y( ~8 m8 `
- (progn2 L; J- p2 o- I/ e# h
- (if (not (new_dialog "ddblock" dcl_id)) (exit))+ s5 W/ ~! J3 R
- (if ( = "*" (substr blkname 1 1))4 N; F8 G/ ~5 T/ y
- (set_tile "Bl_name" (strcat blkname " - Anonymous block"))4 K/ ~/ M k& |" n7 S+ q
- (set_tile "Bl_name" blkname)
8 s0 K4 @) `: |6 ? - )
; A% y T' Q5 w9 Q" G# Y# W/ i' [2 d' w - (setq help_entry "modify_Block_Insertion_dialog")
% W& _. Q8 e; Y6 T9 a# q* Y% u) n; } - )0 p( ~4 F0 E; U) o% W
- )$ P. o6 D. o! x z1 {; ?( }/ v- c
- )
8 r) p s; e( F( Y% A: k& T - )
?: P. {2 W- J _0 N$ K q) u - (if (= newhatch 0)
7 a) V0 r8 [# G! V& M2 R* G - (progn' Y) ?3 ^. w+ ~9 N
- (set_tile_props)6 M+ p& \" c c+ C3 C: a# C
- (set_tile_handle)0 J9 _3 }& p7 Q* K6 R' ]' Y. G
- (set_tile_pt1 1)8 D" M# V: X5 i; O3 i5 K4 N a
- (set_tile_rot)
" i, D" R# a9 `8 z - (set_tile_scale)
B- m9 Y7 P- j, ?1 E - (set_tile_rc)% f9 o) i3 W! x! ]9 X& ^1 n
- (if (= (logand blktype 1) 1)7 z, o6 C6 V$ a( D' {$ M/ ?
- (progn% G! L( W! i# a: Z5 |7 p
- (mode_tile "xscale" 1)+ M" m! ]; i& E3 g, x
- (mode_tile "yscale" 1)
, R/ k% b% H6 g& u* y% P9 @+ r1 o - (mode_tile "zscale" 1)
6 n7 U" b, `1 I1 G - (mode_tile "rot" 1)/ W K5 ] u1 C7 ]2 }, o$ L5 R
- (mode_tile "columns" 1)
/ ?! b3 i7 o9 s, \9 U, x% ]# {. w - (mode_tile "rows" 1)
; z- P9 q/ H0 ^# L8 U6 d3 K+ @( E* O8 ] - (mode_tile "col_sp" 1)
) N; _6 j- z+ x7 H* ^' w - (mode_tile "row_sp" 1)0 y' o0 \: r3 y, U! N
- )1 g0 T- I/ T8 H9 \9 {2 d3 G, W0 v- m4 B1 B
- )
9 b S8 Z% k" O1 ?2 l# \ - ;; Define action for tiles: A8 ^# }! M% N/ \" d c; B; a
- (set_action_tiles)+ ~7 p3 c0 d0 z
- (setq dialog-state (start_dialog))
- K; ]1 \ l' P3 z - (cond: a u- `$ N+ D, A% y
- ( (eq dialog-state 0)- z. S6 h- m0 R* a' S
- (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))( C: l. m0 L9 u7 S/ T/ l
- (move_pt1 1)
9 \' i; ]6 O' C3 O% C) B* y - (reset))2 [5 [9 f/ V6 Z t0 R; F% n; R9 E
- ( (eq dialog-state 1)
4 c/ q. S {+ Z: k6 \# @ - (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))
D# w6 I7 c8 V7 f7 | - (xclip)" c. M9 c% B0 {" I5 _
- )
% R" e% b! e3 O& C2 H: g - (modify_block))/ g2 z/ S1 |& x' ^) X1 z/ w" z
- ( (eq dialog-state 3)9 R4 w, c- c/ u2 Z& I6 C$ U
- (modify_block)) \! Z6 @# |$ g' _
- (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))1 b$ I, f3 B5 J: D$ k
- (move_pt1 1)
+ V5 P/ W t" t/ Z I+ s! V - (ddblock))
* c& z- _6 T5 U4 h& E P - ( (eq dialog-state 4)2 d& I; P6 |# k
- (modify_block)
0 v* M0 P6 X' q! G - ;; Get current handle.7 k+ |( @- R# v+ ~0 P5 [- l' L( n
- (setq hand (cdr (assoc 5 elist)))$ I( W( ?- M) }
- (command "_hatchedit" ename)
0 ^4 T+ R9 d8 C0 P) g% i - ;; If OK in hatchedit, a *new* entity is created and the old one/ A. z& d4 ~7 j8 R
- ;; is deleted. So if the old one exists, it must have been a9 Z+ Q2 s6 A C7 R0 T( }
- ;; so rest the entity.
+ j V/ x) {1 e' ]$ d6 Z - (if (entget (handent hand)) (reset))% ~& y0 A3 R; K h
- )
; U& @( H8 ~9 ?' e+ E: X" C - )
4 [/ @; s( s+ ~2 ]5 P1 S2 Q - ) i7 z7 x! d% I6 Y- ^) D) W
- )7 q* K# f: y3 l7 i) j: }7 v) H
- )
9 Y4 h3 ^/ R) m; G% R& y* g% D7 } - ;;' Q6 j8 b, F& o, d z2 N
- ;; Modify SHAPE' u- |% B3 t/ \0 u0 w* W, x
- ;;9 i$ n' q& \! L7 M7 g
- (defun modify_shape ()
1 G. z1 g1 c* A. O+ {" j( |/ z - (modify_properties)* R2 {2 b0 _# s+ t# |
- (setq pt1 (list x1 y1 z1))7 P3 ] h5 h+ g5 z5 f# j$ }
- (tempmod pt1 10 1)
# T: \- B3 s, E/ H. @( Z - (tempmod hght 40 nil)# Z' E9 h( W5 o; {& Q# S: ~: O
- (tempmod wid 41 nil)
& [+ h. f" P' \, F; J - (tempmod rot 50 nil)
; N' M" @; h: g2 L - (tempmod obl 51 nil); C* @& t+ E* P" I* b
- (entmod elist)
M1 a) b4 e$ ?& z! a" z* F - )# {1 H! i$ [7 }, A# I2 x* o
7 O& ?2 t- S/ O1 S- (defun ddshape ()2 h n& P+ s' q9 p' h9 Y5 N
- (if (not (new_dialog "ddshape" dcl_id)) (exit))& D5 d: d) c2 L `0 P$ w$ L$ z( T0 `
- (set_tile_props)3 U0 a* `# H8 ~! ~
- (set_tile_handle)# j- d' ^7 f8 w/ t& h
- (set_tile_pt1 1)
8 H; i7 U" I# | - (set_tile_rot)
6 r6 X" s8 t! P7 z' Z - (set_tile_hght)$ T) F% L8 c: H5 L9 Q$ ~
- (set_tile_wid)
4 b3 ^6 `6 Q1 v5 o4 N f - (set_tile_obl)
4 @) g" i1 L. [/ C4 V8 y+ c4 m - (set_tile "sh_name" (cdr (assoc 2 elist)))
* I$ `7 E* j/ f; Z - ;; Define action for tiles
9 P a; _- d0 M% {+ s - (set_action_tiles)
1 ~* d/ f- I/ V7 q6 {. Z- U - (setq dialog-state (start_dialog))' r1 Z6 \0 L4 R' u* N5 n
- (if (= dialog-state 0)
/ w3 G5 C1 h& c - (reset)
& j# `5 W. w1 e0 g/ ^ - )
4 a- @. P% l- T6 n$ j# s: L - (if (= dialog-state 1)
: R. P" f/ @ H D - (modify_shape)
$ @8 y6 {, C( n# f - )
% J: s+ P& f% ~$ N. h - (if (= dialog-state 3)/ u) d( O' z; P" O( j/ h
- (progn( }0 T9 h' s$ z# h
- (modify_shape)
' c% l# O) D; Q, F* r. C - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))9 L; s' C3 z+ K9 h- c
- (ver_pt1 1)& J* t8 G" b$ G5 S) K2 c
- (ddshape)
* }2 W7 P( t0 o; E' D - )
3 B' ^; ]2 _" f6 U/ Z( i i - )8 z! m% O6 W' D; x4 h& f; M6 E4 Z
- )
5 d' h2 Y" j" m' |4 R - ;;; G& e, y5 c! d( b+ @- t9 [
- ;; Modify TEXT or ATTDEF
% v4 i, o& y- r7 e) k2 S- q - ;;& S' r5 P: H0 _; j$ n
- ;; Set bit code for upside-down and backwards setting
8 t9 G- ^: H1 o2 ^7 L( d; o - ;;9 S( W, F- A0 Z4 [/ c4 w: L
- (defun code_71 ()6 I. u$ G1 }% w2 v
- (cond ((and (= bkwd "0") (= upsd "0")) 0)$ P* c* `. I% ~( t9 t6 E; {. ?
- ((and (= bkwd "1") (= upsd "0")) 2)
* L% J" k# [9 t1 W7 l$ }5 w - ((and (= bkwd "0") (= upsd "1")) 4)
: {$ V4 R& ^% V C1 g" B - ((and (= bkwd "1") (= upsd "1")) 6), z1 X5 q, |! C
- )" N! E3 {, ]: Z
- )
2 {% O0 B d6 | - ;;
1 F( E$ r( N8 c0 Q% S* X - ;; Style action. Reset widget values to style defaults
9 [! d+ ~0 C+ S5 |; s4 x! E - ;;) ^, l9 W( v- ?, N+ o7 L/ ~
- (defun style_act (index / style-list)
" t" K/ ^! a" g( ^) [6 x - (setq style-idx (atoi index)), z% v- S( _! E3 j9 T
- (setq tstyle (nth style-idx slist))3 q* l X: e: f1 [- y" G! O
- (setq style-idx (itoa style-idx))
; e4 u+ o- |3 T- V. Z - (set_tile "style" style-idx)+ H: D' W. F3 z- G
- (setq style-list (tblsearch "style" tstyle))3 P/ k8 x9 P& g- Z2 d
- (setq shght (cdr (assoc 40 style-list)))
, n: S( O9 b0 Y7 s- K! L% R - (if (/= shght 0)/ K% A) D$ n/ s9 R% Q" A
- (progn
" ^" V1 q2 x4 w- y - (setq hght shght)
/ {# e; j3 \$ T5 m8 i - (set_tile "hght" (ai_rtos hght))
! b. [3 S' J# t- C9 ^7 F3 t - )
% ]7 Y5 Y ^$ X' c5 b) k7 ^( a - ), |7 c2 V9 r" G% w
- (setq wid (cdr (assoc 41 style-list)))
( O1 E& R: O' w& u) Q8 C - (set_tile "wid" (ai_rtos wid))
5 E; C; C. `( C' `" r, ]- N8 x6 V - (setq obl (cdr (assoc 50 style-list))), ^: w" J) A% s1 s& ~ r S
- (set_tile "obl" (ai_angtos obl))
5 F6 V# s! Q+ n. X; [" r - (setq bk-up (cdr (assoc 71 style-list)))
) K, X/ u( ]8 v! R - (if (= (logand bk-up 2) 2)
: {6 g3 A: S. z5 m! }* D" o - (set_tile "bkwd" (itoa (setq bkwd 1)))
8 T( X, b/ Q p3 v - (set_tile "bkwd" (itoa (setq bkwd 0)))
0 X% C1 t( k. T3 C; m5 z9 s. D2 G - )
2 A# C5 b, ?! [- T9 f2 H5 }7 l1 K - (if (= (logand bk-up 4) 4)
) l0 d- P" u4 h0 c! L( b# G - (set_tile "upsd" (itoa (setq upsd 1)))5 n* w3 |8 G( ]. E D; y9 o) X; _
- (set_tile "upsd" (itoa (setq upsd 0)))6 M- x/ Y$ M& F- |, \
- )( V. Z# M# n3 \& C( a9 ?
- )4 B* K; f' E- _5 Z; e# [$ c
- ;;# t6 A, m( O C" L0 `+ @4 i
- ;; Justification action. Set vertical and horizontal alignment variables,
9 p* r. W% b, a( G - ;; grey out rotation and height if alignment = "aligned", grey out rotation: P3 x- g# S8 r: r& i0 \, C6 i" T
- ;; if alignment = "fit".- ~2 T$ M7 S \; i& s# l) \
- ;;0 |, Q& }& L- U }) g9 S3 Z
- (defun jlist_act (index / templist)
; f& A d( g' W) K( h( h - (setq just-idx (atoi index))
2 U. Z7 Z, x+ D) U$ }' M' L - (cond
7 \ b' M( g& B. u8 B$ s# C - ((= just-idx 0) (setq va 0 ha 0))0 d, E# Y8 H$ r7 `' [0 v% Z3 K4 [
- ((= just-idx 1) (setq va 0 ha 1))5 b* m/ ?0 J+ W4 d% n9 }; h3 L$ Y
- ((= just-idx 2) (setq va 0 ha 2))
3 r' ?, t, n0 O4 ^# M2 N) a7 ^ ] - ((= just-idx 3) (setq va 0 ha 3))
* a+ c5 y. F+ E: J/ V - ((= just-idx 4) (setq va 0 ha 4))
; u. O5 w8 }. [* @/ S6 x - ((= just-idx 5) (setq va 0 ha 5))/ l, S# i: }& D- H9 X' a
- ((= just-idx 6) (setq va 3 ha 0))2 Z0 c5 I, l6 z$ A
- ((= just-idx 7) (setq va 3 ha 1))
. g# [! [$ G; P& y- I$ ~ - ((= just-idx 8) (setq va 3 ha 2))
1 \9 M; ^0 W0 ^" _: @ - ((= just-idx 9) (setq va 2 ha 0))
( e2 I7 O2 n! z; V; D+ W; y - ((= just-idx 10) (setq va 2 ha 1))
; v6 j& x) T) R$ j - ((= just-idx 11) (setq va 2 ha 2))
* d/ K" T, w t - ((= just-idx 12) (setq va 1 ha 0))
1 Q& ~4 C5 c1 H/ v: O7 z& y - ((= just-idx 13) (setq va 1 ha 1))
$ }6 a1 H u% u2 [ - ((= just-idx 14) (setq va 1 ha 2))6 S3 q& W& c6 K& u
- )% N8 p/ B7 D- i( |; D1 o( h
- (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text4 C, V( v! W+ c+ k4 G! P& N! v, h) {
- (mode_tile "rot" 1)
( ?" @; F2 r. Q2 {2 s - (mode_tile "rot" 0). M8 q* ?5 w( |# R, v7 c8 P: S
- )
- w6 A: S! C6 O7 S& d - (if (= ha 3) ; If Aligned text$ w" H8 {7 ?; j4 K8 c' }' W9 Y! f
- (mode_tile "hght" 1): \8 G1 o7 ^. f" C8 l4 b# M3 y
- (mode_tile "hght" 0)
5 H H: |3 J K4 S3 G% h# m - ); W+ w, y7 N7 S& g0 v' r% p
- (if (= ha 5) ; If Fit text1 `: l2 l( m: X# Y0 I
- (mode_tile "wid" 1)
3 G- m& I+ a8 A! ]/ t0 [ - (mode_tile "wid" 0)
/ l* e/ ?' Z0 j, ?1 |6 e; Q n - )
8 E7 p N: o" V9 E* W! ` - ;; Reset rotation and height if changing from aligned.3 n0 ?( K3 b8 Q0 C b8 F& W3 |+ A
- (if (and (= ha-prev 3) (/= ha 3))
/ A1 D* v& y" | - (progn
2 a+ ^$ S1 N. ?6 `# u/ i6 o - (set_tile "rot" (ai_angtos (setq rot 0.0)))5 \9 U+ C/ ^5 N( n6 u& Q) s
- (set_tile "hght" (ai_rtos (setq hght 1.0)))+ C6 f1 x5 }4 X% K8 L
- )
8 _. C# j/ k8 {5 e* C1 X4 g/ z - )
2 p5 T3 U! Z/ [% F' I - 0 a8 i$ o" z( B% g, n% @4 Y0 f! q
- ;; Reset rotation and width if changing from fit.8 }. E- W& g3 j# k t3 r) I9 j
- (if (and (= ha-prev 5) (/= ha 5))
. v$ @/ J& k* h# S P% j( a - (progn) E; |" W) P4 z0 g9 [
- (set_tile "rot" (ai_angtos (setq rot 0.0)))
' }/ T- ?% s1 D h - (set_tile "wid" (ai_rtos (setq wid 1.0)))
* p$ D# _" X6 q7 k) F( \ - )3 d3 F5 D N8 g/ n$ f9 w" F. ]* Z7 Z
- )( q: ?& n' w1 |( u) f% l% X$ E
- 9 X/ f0 o- F3 y+ W( C z
- (setq ha-prev ha) ; update ha-prev for next time
. s2 H" d5 G0 p3 Q' \4 k( |3 N3 P - (setq just-idx (itoa just-idx))( L' y; b7 r3 ~& x1 G
- )9 u0 l r% f: O3 p) F
- ;;
4 x* l" G- l( x! j7 [ - ;; Set intitial alignment setting based on vertical and horizontal alignment
! q) e7 V3 p% c( W" W1 Z7 j5 n3 d5 b - ;; bit codes.
( f, Q+ t" ^" Y0 N - ;;, k6 x$ R$ P G# I" |& n: j
- (defun set_just_idx ()
# ^! q8 `; T Z: w7 p- r - (cond2 ~) ^- I9 m% @
- ((= ha 0) ; Horiz alignment = Left
1 Y: w- O) c% h @" F7 @1 a - (cond
P6 n1 m3 I Z8 t - ((= va 0) (setq just-idx "0"))
$ O5 b0 z, X, _8 t) i' i - ((= va 1) (setq just-idx "12"))1 [' O. G: F; l& A& V. P' G
- ((= va 2) (setq just-idx "9"))
0 L. V2 p! l2 k - ((= va 3) (setq just-idx "6"))
& @; _) I7 j8 j9 e0 ]; F - )) q( k& v& x+ _1 [0 P- q0 L
- )& `$ o9 n+ B% q. o9 h" ?9 c, O6 F
- ((= ha 1) ; Horiz alignment = Center
2 u; Y+ R/ l+ `3 I* N, d! N - (cond8 L% U: o# r% w0 r
- ((= va 0) (setq just-idx "1"))
* k# x3 P) R8 ` - ((= va 1) (setq just-idx "13"))
) ]! g% u9 }! S' S8 Y4 R0 j - ((= va 2) (setq just-idx "10"))
9 N" `5 l3 E4 B. F - ((= va 3) (setq just-idx "7"))
8 f1 l6 `" Z4 j9 Z& _* l - )
# Y7 [% n5 Y# D1 J8 r4 u4 \ - )0 j7 e- `1 I: o. e. y) A% r
- ((= ha 2) ; Horiz alignment = Right# Z, `3 H3 g; J5 |' ~
- (cond; I9 R, Y9 x2 E! a
- ((= va 0) (setq just-idx "2"))% N6 F- f, g+ y4 t5 F+ [0 k
- ((= va 1) (setq just-idx "14"))
& o; c2 X+ d, Z - ((= va 2) (setq just-idx "11"))
! U, C# s3 |. ^# o8 ? - ((= va 3) (setq just-idx "8"))
3 }7 C* t" }- c7 r5 n- s, S - )
1 J* ^( q" b E9 B; ?& D' K% q2 K - )7 d( I+ c% E$ t& X+ e
- ((= ha 3) (setq just-idx "3")) ; Aligned
# j' @$ O) d+ j5 H" Q* L - ((= ha 4) (setq just-idx "4")) ; Middle: N. y9 T K- x( L4 A
- ((= ha 5) (setq just-idx "5")) ; Fit5 D$ K) l- o; u2 t0 y7 L
- (T (setq just-idx "0"))
" j/ U, ]+ A0 W1 f' L3 B* t/ l - )
) P4 o% z7 x! j' X/ o+ d/ c - just-idx0 B$ P0 r$ c7 n8 s
- ), C+ [% c2 X6 U2 m0 B c
# U9 H, j( K8 B* u$ H3 P( n- (defun modify_text ()
9 i( y! R# O- f$ e - ;; insertion point
' t* Y) A8 F- q# ~- W2 I - (setq showpt (list x1 y1 z1))
0 @7 j' Y. @/ h& O- b% m! N/ s - (setq bit-10 (trans showpt 1 ename))
8 S; j" R1 g3 A b7 p, G2 a. ~% e - ;; alignment point
8 ^8 S" m( [+ W - ;; for 'Aligned' or 'Fit', alignment point must be different; d( [. d3 q ?
- ;; for all others, use insertion point1 i" [, G4 _0 k: m
- ;; (ACAD will recompute insertion point)
$ d- { h; e$ z& ^% Y2 V - (if (or (= ha 3) (= ha 5))4 B4 M2 ^/ O$ E+ S% N6 i
- (progn
4 ^* m5 l- h! X" `! X: p0 _( J! _$ @ - ;; if no alignment point, fabricate one2 e0 w$ D' b: M9 C( K
- (if (not alipt) ]" _4 {, |7 j. N
- ;; add text width to insertion point
5 h, l E, Q: d; s: I* W - (setq alipt6 ^* G% q2 Z4 B* y' U
- (list (+ (car showpt) (car (cadr (textbox elist))))
. i7 E& u( n1 F7 j. |& y$ X - (cadr showpt)
8 J4 `! W Y6 a1 T - (caddr showpt)
6 b2 ^/ t( l" w+ f; o9 h - )+ h1 M! [' `# n) g1 @( I( x
- )
* v- y+ r9 X0 D) U, G7 E - )$ o- J0 V1 m' V2 H- Z4 y
- (setq bit-11 (trans alipt 1 ename))0 y( f. T9 `: W
- )0 t+ i: j) Y5 V/ |+ F a: v, B( q$ t
- (setq bit-11 bit-10)
" n# L% u2 { m6 h0 N* [" ` - )
/ C' @6 s- m' u" H' f - (modify_properties)
# n6 i4 i, @; J- U* b - (tempmod tstyle 7 nil)
/ V8 y& u$ m6 `8 S- i. Y: F - (tempmod bit-10 10 nil)
7 I! u: L( d5 \ - (tempmod bit-11 11 nil)
1 K, K% S; v! G - (tempmod text 1 nil)
6 V/ E0 z! i1 O9 A8 f% g - (tempmod hght 40 nil)( ]. G4 r: j9 ~9 i. M# d" e$ x
- (tempmod wid 41 nil), t3 T5 x* p5 @4 z, a, x8 {
- (tempmod rot 50 nil); O; m: z- E9 `- r
- (tempmod obl 51 nil)( r L& e3 R$ F! e% N5 H
- (setq bk-up (+ (* bkwd 2) (* upsd 4)))% Z q5 f# ], I& V' n9 J
- (tempmod bk-up 71 nil)
$ { j) L. A- h; y3 [/ `" ` - (tempmod ha 72 nil)
" _4 W# W8 G; O. N, i1 i - ;; Attdefs use 74, text 73
, [7 _) z9 u8 d |) y* J$ t6 M - (if (= etype "ATTDEF")1 I c2 {. ~7 z0 k4 }4 `
- (progn: ]. k7 y* ~0 m9 R0 r# i
- (tempmod attag 2 nil)
" B, F$ `3 W; ~& M - (tempmod atprompt 3 nil)2 r7 R( C2 C% E& g
- (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))) q. @/ w! I- j
- (tempmod icvp 70 nil)
4 x! R( V9 O; d& F6 g - (tempmod va 74 nil)/ s9 z- B- o1 u) J+ K7 `
- )
% W6 W s$ g- m2 D/ }; f- f - (tempmod va 73 nil)
6 j- b# U! q& \* c6 I6 q- V - )
# k; q) z5 \) Z( o/ ~# S9 `* W9 X - (entmod elist)
0 M! w' h0 j) j+ j+ o! w - )2 V' o2 p9 }( ]2 D8 n( Z$ [
1 W9 k ]' z9 z- (defun ddtext (/ 2ndpt slist i)
. u! |- E1 R3 ?6 m7 C- ]; x5 l - (if (= etype "TEXT")
' U# U- y2 J3 X( B - (if (not (new_dialog "ddtext" dcl_id)) (exit))3 J( K$ b. q2 L+ a) m5 h3 |
- (if (not (new_dialog "ddattdef" dcl_id)) (exit))3 d6 c7 J# o2 y& j4 y; a
- )% T( K, n8 g/ z7 y# J( U0 m6 q
- (set_tile_props)
( v$ Z7 t* [1 H9 S' p" h - (set_tile_handle)
( C; ], |8 f( K. t* w; A - (set_tile_text)
6 x, F7 J3 r/ L. b4 B - (set_tile_tag)- E; @4 `- R9 k3 m1 A' W
- (set_tile_prompt)
9 ?# M5 X% o6 h, `0 g - (set_tile_hght)
$ N. g8 K0 ]) ^ W: x P* l9 C - (set_tile_wid)
0 h- U* d1 y6 B$ D* [; p# k - (set_tile_rot)9 E. r$ x( O' ?7 n+ {
- (set_tile_obl)
. V& I0 m& z4 m' y& C6 g - (set_tile_bk-up)
6 G0 v; T0 E( U8 r - (set_tile_icvp)8 N! `2 ]& \; _; L: H
- (set_tile_style)- n! s$ M8 h) E
- (set_tile_just)* U0 q) d8 A9 o! C( T
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
% l1 b* g; u. w- H+ b - (if (not (assoc 11 elist))( O: x; T( k6 ~% U6 F, `
- (progn (setq pt2 pt1)
1 G5 e6 I, ^& u# w# u* ~ - (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))0 N. g1 P; a3 n) k
- )
: O$ S* [/ x) ^$ I - ;;(trans '(0.0 0.0 0.0) ename 1))0 z) ~1 `8 P/ L0 n1 p/ U
- (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
. Z P |9 T2 H$ l3 k& Q# W6 @0 w7 _9 m - )
) p" _3 a) z8 y' {7 T- B" p - (if (or (and (= ha 0) (= va 0))2 D" ]1 i. x! v0 v
- (= ha 3)
. r6 C( F- x6 I; ?3 R! S: G - (= ha 5)6 s x, q" |' g' u, I4 l
- )' U1 e4 U3 o3 |* E
- (setq showpt pt1)' z% _ p+ W3 F' w: e" s, b
- (setq showpt pt2)) h- a$ ]5 }) v
- )
3 W' N; A- V, c" h - (if (or (= ha 3) (= ha 5))
+ B5 Y {) n5 n! h5 x/ F, g$ o - (setq alipt pt2)4 V% r9 X6 Q0 ], T2 e' r
- (setq alipt nil)
5 P5 I y( O8 m5 v7 [9 X - )
' \3 x& m; N& L8 b! h8 n - ( d" i& ]6 ~+ d5 p
- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt))))
0 i# p+ T& P; Z# _0 r/ J - (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt))))
3 X5 g0 i- T, G8 c. e" X1 ] - (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))) \9 j/ m5 U: t7 i' |: z8 g9 w
- 3 s( x: o: l/ C5 j
- ;; Define action for tiles$ P1 X) T; O; ~* p% w6 t
- (set_action_tiles)
5 I6 V9 ^( D$ s P8 a - ;; Set focus initially to the text edit box.
) ? F# _8 G- \& |: j8 _ - (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))
& H9 o2 S6 A# f( e1 V5 F0 ~ - (setq dialog-state (start_dialog))
! V; `, o {+ ]7 @ - (if (= dialog-state 0)5 G& |4 }5 P2 G% s
- (reset)
6 K! B" s# X. e3 b* ~' K6 w; K - ), v4 o" G' C7 `" l
- (if (= dialog-state 1)
& h6 {5 ? @: N# r+ [) } - (modify_text)
' M$ P" P2 a& w9 l - )- S3 z. x& s6 `( U& B
- (if (= dialog-state 3)
7 \0 I6 t2 ^7 \ - (progn
6 W* B7 `9 I, W& ?1 l - (modify_text)7 q& B9 C6 b1 Q/ m
- (if (or (= ha 3) (= ha 5))9 ~$ y! a1 Q) C. q0 y) E
- (progn, k3 e( H5 ~) S# n. [1 n2 n( Q
- (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))
4 n2 ^: X# q( U - (if (not showpt)& N W/ o6 O- {% k( w! o! T
- (setq showpt (list x1 y1 z1)); l7 I% z7 v9 p& r" @* T& m" k
- )
; {2 s1 S" o6 J$ w% r: y - (setq 2ndpt (getpoint showpt "\nSecond point: "))
% l/ M3 y9 G& g; {% o5 Y$ P# } - (if 2ndpt
1 Q! T7 }6 j3 ^$ f2 F4 ]. k - (progn4 ?4 k$ [) O0 ]% k8 P
- (setq alipt 2ndpt)9 K7 V3 X+ m6 s. }1 t, z# k
- (tempmod showpt 10 1)
+ h) r8 [, L1 ^9 b - (tempmod alipt 11 1) i( I& T+ b ?' U8 U2 x( B
- (entmod elist)
, B/ H, [' G ^! @3 G# s+ x - )- ]. z+ \6 r+ r! p
- ) O3 Q% i" R# `- K: g5 _8 Y
- (setq elist (entget ename))3 Q M. t; D! B" B/ E) _& O
- )
& h7 q# l* Z; ^2 |4 [% K! K - (progn+ A8 E( G& N: L# h. y& T
- (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))
b- L# B# ]+ Q - (if showpt
' z5 H! [+ m! |3 E, b* [8 B: L0 ~ - (progn) u/ O! K/ o9 I8 ]) u6 r0 e* w( d/ v: a5 c
- (if (and (= ha 0) (= va 0))
7 W: O" {) B f2 a$ h* F" \ - (tempmod showpt 10 1)
7 i3 x- N$ z3 z! o% m - (tempmod showpt 11 1)2 e# ~( B' q/ A4 ^/ B K# \
- )1 @- M: A- A% e: F O9 F' V) X
- (entmod elist), X ]/ q1 c4 R( ~: I( S F8 I) N
- )! ^$ L v: F# ~# \8 \* Q
- (setq showpt (list x1 y1 z1))
' H% Y2 ^7 W: ` [3 Y& ` - )$ c1 j) n$ i# d4 o% @8 Y
- )% Q* z- D) D. U3 {1 W
- )$ Q6 \$ U" T) L, S* b
- (ddtext)0 J: B# N( c9 [+ ^3 Q6 k% R
- )
' j& f( G; p! a, y! J. r - )
( B4 ?! a. Z, h7 b3 o N - ): r; r; L: v% t y
. D+ ~ H" C7 v. R- ;;) B) |4 E0 C& V2 t: Y
- ;; Modify MTEXT
( S) x5 z6 d1 g8 A2 e% J - ;;
1 [! V, ]& H9 r$ Y; A7 }7 G9 F( n9 x - (defun modify_mtext ()7 S# [2 _1 |! Q ~
- (modify_properties)" @, ]2 C( F N0 i1 T- i6 h
- (setq pt1 (list x1 y1 z1))
/ X1 U4 [5 V: O$ d J' h; m; G - (tempmod pt1 10 0)
0 Z7 r) d! P2 B9 i1 `0 k - (tempmod text 1 nil)9 P( P/ x1 I5 n r, I
- (tempmod tstyle 7 nil)
/ m/ [& l+ C8 g: ]& r6 k! V - (tempmod just-idx 71 nil)* Q1 q% k1 B: v1 v# `. `+ V, W
- (cond
0 t( w9 B# W: i) G( P9 Q - ((= dir-idx 0) (setq dir-idx 1))
) p: ^: Z! M# _+ p8 [ - ((= dir-idx 1) (setq dir-idx 3))
$ \& g3 x! K6 g8 I! }' ~; R - ((= dir-idx 2) (setq dir-idx 5))
& g8 \, K7 E" Q( G - (T (setq dir-idx 1))8 o( j5 s# w1 @+ b
- )
2 C k, M: r9 i: t - (tempmod dir-idx 72 nil)) y) A1 u9 H# K0 X' b. `$ j
- (tempmod hght 40 nil)
f' Y6 r! f, G. {2 b7 u& a, K - (tempmod wid 41 nil)) e4 }9 L7 ?+ k3 O b( G7 K
- (tempmod rot 50 nil)
% a" u- c4 E1 n/ D" @6 \0 H5 \% t5 \2 ^ - (entmod elist)0 Y; |! E2 j" t
- )4 F' O3 o7 O. `$ h3 [4 h
2 m! x* [/ Y! L# Z y2 K. q/ d9 n$ u7 \, Q- ;; Set MText text style
3 U0 s5 K& G3 L) [' F - (defun MText_style (index / style-list)7 a, H6 ^9 D7 W
- (setq style-idx (atoi index))- u# a" K& l1 A$ i! y2 j
- (setq tstyle (nth style-idx slist))& |' t) R F6 {% ?5 x, j: G
- (setq style-idx (itoa style-idx))
) v1 ~, p7 I: E4 s% a, g/ m. M) Q3 D - (set_tile "style" style-idx)0 v& t# ]% R/ F. `( V8 l2 Y% C, m
- (setq style-list (tblsearch "style" tstyle))/ q: T E4 v9 `" v
- (setq shght (cdr (assoc 40 style-list)))
3 m! O) p% y, x: X& t2 x - (if (/= shght 0)2 [# Q) y9 l& R' c& X( E) k
- (progn
% r9 C9 r6 l" m* ~8 c- U: B% y9 x; D - (setq hght shght)
* r0 Y9 B! q9 G, K: k1 l - (set_tile "hght" (ai_rtos hght))
7 X: \7 `8 ?1 e/ a, W0 v - )
6 i0 ]1 x5 E0 z. a p0 J* h - ) q* h' Z; `! p9 \ k' \0 C
- )+ |' N" T1 b2 [) y. x$ e1 c& r
- % l& C$ W! l7 e) k& Y
- ;; Run DDEDIT on given entity, working around possible re-entrancy
3 b: h4 P, m' X) P8 U3 ]% k - ;; problems with MTEXTED
9 A$ H7 ?; t, E3 v, b' u1 y; h - (defun safe_ddedit (ename / orgMTextEd work)
$ V' Z# s8 F0 w7 K1 S/ P+ r* r - (setq orgMTextEd (getvar "MTEXTED"))6 K; {) Y: A3 k5 C
- (setq work orgMTextEd)8 T3 k; C! D# u
- (if (= ":" (substr work 1 1)): f- [' x" B1 F* T8 c- J' D, v
- (progn# E9 k+ N$ h c3 }. j: P
- (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))
) k% u1 @$ w8 N9 b F* h9 y - (setq work (substr work 2))
+ A& M; j- T% ~ - )% g/ o7 L3 p5 V) p! @9 \: M/ ~
- (if (= "#" (substr work 1 1))
& g( L7 _! k( H3 x) H& { - (setq work (substr work 2))
" H7 V8 ~$ _0 p; }, d% {4 L - ), F) m! f9 d G' `" {) t
- (setvar "MTEXTED" work)
. Z3 S( r4 m5 c3 D: N/ n+ c A! h7 I# A - )
+ t$ I; E3 @; l k. U - )2 y; M9 X& B: s; Z. F5 F' _
- (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...; ?+ }. t3 G" e
- (command "_DDEDIT" ename "")
! y0 u# a% j- b& \& j6 p6 N% ] - (setvar "MTEXTED" orgMTextEd)( Z9 t, D2 N) H6 U" ?2 M y, q
- )
6 a% R8 q7 V0 e! \, Y- g
: L7 X- t. Y& R- g) C9 Q+ V- ;; Verify MText object width* k, _) P6 b* r! N$ y
- (defun ver_MtextWidth (value)
, A) K+ R+ q. s2 t& ~& S6 Z6 ^2 b - (setq value (distof value))6 [8 z) v3 K+ E9 h
- (set_tile "MTextWidth" (ai_rtos value))
7 p O! W4 d* y; W; T4 Q4 { - (set_tile "error" "")2 G- [) X: Y3 W- W( l! D
- (if (< value 0.0)$ p0 |# C3 g5 \0 p' d* }5 m
- (set_tile "error" "Value must be zero or positive."), G5 ?1 @7 ~" N( Y: u5 z
- (setq wid value)9 ?8 B; @) {" q5 W/ n3 M: o
- )
) u; w' e2 X$ L* n' _ - )
, b+ `+ f! Z* q9 F# V5 _
: `1 \& c3 k/ N; ^6 q- (defun ddmtext ( / gc3)
/ C' d# i9 J- E6 H- w - ;; Get dialog
# l! G7 k$ N) w! M/ G - (if (not (new_dialog "ddmtext" dcl_id)) (exit))
' Y" b; i0 P, `* ~, L2 \6 a - ) A2 g# W3 J5 U0 {3 s
- ;; Load list boxes9 Z& X9 u v* S2 X7 |4 z" u6 P
- (start_list "MTextJustify")6 u/ i; n& u2 y& V# G
- (mapcar 'add_list '(
' a$ w/ |9 W1 w5 @ - "Top Left"
: r. f8 W- a7 u v4 \3 G2 S3 R% U- G. ~ - "Top Center"* k) a5 U- q5 R8 G5 A
- "Top Right"
: O7 C# t9 t! k1 y+ O - "Middle Left". M% h% V7 \ \2 k6 ?
- "Middle Center"2 @9 O2 n" d' B, }# n
- "Middle Right"
( a) W4 m: _7 l - "Bottom Left"
9 u( i U0 e/ ^ - "Bottom Center"
9 E1 q% z, m! X) H - "Bottom Right"
L# u4 A/ N1 b1 I2 Q - )7 K6 q& h- \0 d7 ?2 x) m9 Y6 f
- )
1 w9 p8 l) y R# X - (end_list)
# c; ~! K% P5 m+ }6 |5 c- Y1 V6 k1 `1 W
& l, r6 W6 n) X) _- (start_list "MTextDirection")0 B+ v6 k1 o# K( O& c
- (mapcar 'add_list '(
% z5 Q. l- j1 J) R B4 w8 ]$ K4 l - "Horizontal"- ^. E/ n8 z8 b# ?! K, e
- "Vertical"# h( N6 l7 Q6 U5 i+ P9 f' N1 K
- "By Style"1 j0 D+ J: b4 J; m
- )# g% K, O* Y( Y# @
- ), Q7 E: \% Q8 r2 F, H
- (end_list)
" i, e0 y* v6 C+ f/ e& w - , [ b1 l# J7 ?7 x4 i% G+ j0 V
- ;; Set initial tile values# M! Y* E! b- T: f$ D, p0 C y/ A9 N
- (set_tile_props)
+ ~# ~9 \3 x4 G4 V8 W+ _' d! Z - (set_tile_handle). M& n0 O- E/ h* U# v/ h
- (set_tile_pt1 0)
i4 y# o# C, E+ W - (set_tile_style)' z% t, W9 l* c) J
- (setq just-idx (cdr (assoc 71 elist)))
2 L& P7 D) e- L+ X) j2 z - (set_tile "MTextJustify" (itoa (1- just-idx)))
! G3 |5 [* p/ V) j - (setq dir-idx (cdr (assoc 72 elist))). x: V( b+ G1 T% I' a$ F& ]( l: l2 r
- (cond
9 A F) g2 w* e2 `) ~ - ((= dir-idx 1) (setq dir-idx 0))
' E+ o( _1 ?/ r - ((= dir-idx 2) (setq dir-idx 0))
4 V R0 B3 {. z6 l( r, T8 i - ((= dir-idx 3) (setq dir-idx 1))4 ^2 b" W4 V7 A7 J
- ((= dir-idx 4) (setq dir-idx 1))! r8 m( q; Y7 @4 B" l4 c
- ((= dir-idx 5) (setq dir-idx 2))
- u% ~5 n; Y7 _5 ` - (T (setq dir-idx 0))
9 O6 c0 n; }3 `7 W- g: s: k - )7 r. B: f- i$ S, a4 M% r+ m6 ~
- (set_tile "MTextDirection" (itoa dir-idx))1 H' B X! i4 n3 w5 @5 W
- (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))
5 G# {: | {/ v8 h - (set_tile_hght); R! b1 w& }* Y2 y4 y
- (set_tile_rot)1 A4 e2 a0 v- s6 X5 k. j* w
% S& C+ y) H) `' L7 o4 D4 Q6 i V- g- ;; Set edit box, disable if too long
8 k& F1 E1 O! a$ |9 b2 [ - (setq gc3 (cdr (assoc 3 elist))# d. L4 n' A! n1 j! [
- text (cdr (assoc 1 elist)))
% V) B. A2 {* S# Y" L - (if gc3
! ~3 L" w4 n# N3 @ A, g( i6 F! W4 M - (progn ;; Text is over 250 chars, disable edit tile, \: L* E1 b, d8 l6 v; H
- (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))
, y1 C [" c4 Y5 |7 K5 P - (mode_tile "t_string" 1)
1 c5 {* L2 O* p- [- [3 Q - )
% J; `, n* }, [ - (if (> (strlen text) 80)& X7 d1 i$ g+ p( x+ Y: h7 ?7 v" E- T
- (progn ;; Still too big7 D. p4 ?) v( D
- (set_tile "t_string" (strcat (substr text 1 25) " ..."))
9 q: J, a' u4 @ Y8 |( ] - (mode_tile "t_string" 1)+ J% Y- x! G, @1 A, e; c9 s
- ) \' J! Z/ B1 T! e9 D! M$ |
- (set_tile "t_string" text)
2 d0 ` S2 n5 Q( E" M! C3 Q8 R' ~ - )! C2 b6 H( D+ J& C, S) w+ Y0 f+ l1 C
- )9 M/ d& Z% {3 O6 c
- ! |/ t& V4 k4 y/ p$ K
- ;; Define action for tiles
4 y; u, Q* o, l2 t/ N3 K - (set_action_tiles), C# ]0 C3 [& ]) d! m" N
- (action_tile "style" "(MText_style $value)")8 O! I! c2 R$ {% w
- (action_tile "MTextWidth" "(ver_MtextWidth $value)")
# b& b1 K4 S$ Q8 h7 D2 Y9 N/ o+ [ - (action_tile "MTextEdit" "(done_dialog 4)")
2 |, Y# `( s: A$ m7 q" t* | - (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))") g& I- e6 P/ _4 N5 a8 ~! m3 q. y
- (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")* O& z3 j0 ^# B$ J; Q& Q+ Y" O
- * f, \; c7 r2 J( b! y. @
- ;; Set initial focus to text edit box.- z {& ~8 T' B+ q8 Q" ^
- (mode_tile "t_string" 2): s2 d3 i# X9 [
- 3 ~/ z; R( e7 y( g2 b0 t# J) H) d! y. y
- ;; Run the dialog$ }8 L1 H" _. N" K: ] T" k2 M. \
- (setq dialog-state (start_dialog))
: |# E0 a; [4 x) h( ? - (cond
2 e7 A4 g' H2 u, w" \ - ;; Cancelled - restore saved data
* x+ V% q* }$ d& S - ((= dialog-state 0) (reset))- E- R/ L2 n1 a7 f/ F+ Q
- ;; OK - save new data
1 l) d/ \3 R+ V' c0 n - ((= dialog-state 1) (modify_mtext))
: ^! m" z* e/ d& S - ;; Pick new insertion point
1 h3 D7 Q8 E/ I: u8 N1 Z: [3 _ - ((= dialog-state 3)) e: B' F; h+ Z1 I
- (modify_mtext)3 {1 l! P) g& X: N* |, g" L, J) p
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
. u2 [% D0 Z* q: }6 ^. q6 } - (ver_pt1 0)6 t- P$ \2 l; @) r+ K* ?
- (ddmtext)
e# P& Z8 b- k& T - )
' w8 j4 |4 K) _: q) Z0 h$ \ - ;; Run full editor: l# N3 }& F3 g
- ((= dialog-state 4) w+ \7 a/ f( {/ V4 Z) K
- (modify_mtext)5 G4 G; U7 v e |
- (safe_ddedit ename)
& {6 p. ^" T/ M6 R5 l7 y _% e - (setq elist (entget ename))+ O# j8 I" J! c% f; O
- (ddmtext)' @9 X; j5 ?0 i% s
- )9 \" A# l" x" Y! c8 T
- (T nil)
2 [; Q" o+ p3 G& ~ - )& l* M7 S& I" z
- )
8 k/ u( S5 c0 }0 d" I: F5 U4 x! Y - 1 a" c7 j/ S X2 o/ \5 k" }. a; O
- ;;
+ s* V; M; n6 U' t& n - ;; Modify VIEWPORT" \7 ]8 K- @% [& D( V M# S, r
- ;;$ z* P* B5 w. m1 K
0 D! G7 r; V1 N" e5 u5 I- (defun ddvport ()
9 h; _ O# c% ^& m - (if (not (new_dialog "ddvport" dcl_id)) (exit))- o2 A3 e4 Z5 c! f
- (set_tile_props)
) J& K2 [* m) W b" @& a9 k* T - (set_tile_handle)
4 m* P7 W2 W0 f( t, w# y5 Z - (setq vpt (cdr (assoc 10 elist)))) p' a# _& q! c$ Q) v: I
- (set_tile "xtext" (rtos (setq x1 (car vpt))))7 C/ b% y, b) x5 F
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
- i k% [' s% M) B - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
7 q* z/ b- e/ R/ ]3 m, V8 E - (setq wid (cdr (assoc 40 elist)))* r0 n4 f% p. S( k
- (set_tile "wid" (rtos wid))
. L. u$ W2 s) W7 K7 l3 R$ O - (setq hght (cdr (assoc 41 elist)))" ^. M3 M* C7 G
- (set_tile "hght" (rtos hght)): I) w* g# m" l( n% [0 C: m, {0 N
- (setq vpid (cdr (assoc 69 elist)))
1 ?, V" D- Z" x" E - (set_tile "vpid" (itoa vpid))
; m0 y5 z% v( ^5 g$ B/ | - (setq on-off (cdr (assoc 68 elist)))
6 T" R. `. _1 A0 j0 J - (cond
" V! F4 w' ]7 E" H - ((= on-off 0) (set_tile "on-off" "OFF"))
, H& K* o3 W' c( e; Y - ((> on-off 0) (set_tile "on-off" "ON and Active"))
" b4 [: x# s) |- R; A% W N* M - (T (set_tile "on-off" "ON and Inactive"))- q. j# n, f' t5 S4 z) T/ m$ D
- )) j! R0 p1 t4 B1 l, V0 |$ Z5 \% |& @* W
3 \2 F9 L( ?9 J8 L- ;; Define action for tiles6 T, p: B6 [2 N8 h5 d2 o2 ?
- (set_action_tiles)
9 u0 t! e' ~7 d. E! Z: ~ - 1 k2 N+ V" E0 m- Q
- (setq dialog-state (start_dialog))
W2 T4 u+ n% c' f; S u7 | - (if (= dialog-state 0)
( Q5 r+ v# T. I9 M( G& k - (reset)
K+ W- [3 }) X+ w - ): a4 z$ J- B& Y* D* p0 V* }* a3 w
- (if (= dialog-state 1)
, p* k: W) @# ^) ?, h - (progn8 Q$ J, q3 ?% H9 S3 u! `
- (if (= ecolor 0) (setq ecolor "BYBLOCK"))4 L: _1 }5 ?+ g: F
- (if (= ecolor 256) (setq ecolor "BYLAYER"))
4 N" A* h. q( d! n - (command "_.chprop" ename ""
( R& R: ^/ |1 r9 n( H - "_la" elayer
: e1 Z$ W& h; w4 V$ A - "_c" ecolor ""
3 [/ Q& B" E: P7 b8 L - )
1 I4 E. }4 ]2 R: H! u - )/ ]$ H1 ^& F; W
- )% [7 B1 H3 K" E; c" |
- )
! z( N* _5 Q7 X2 a0 M - ;;
6 M/ A% b, ?3 }6 g V5 e5 x - ;; Modify POLYLINE
6 f/ I# U- m' y# A* i$ ? - ;;
/ |0 S% Z- h0 ]& D. K1 Q7 m - (defun modify_polyline ()
: ^! Y z# n8 C a - (modify_properties)% H3 {) H' z6 e* `
- (if (= ltgen "1")
4 L% V+ S# N- T - (if (/= (logand bit70 128) 128)
0 d i) ~9 P0 l3 G, a) B - (setq bit70 (+ bit70 128))
7 [ N! s9 K5 @4 E3 K - )
7 y# B, t @; |4 ? - )& i- ], K; |. e9 t, s1 @7 `0 l
- (if (= ltgen "0")* J* `; w( |6 @9 l F3 _
- (if (= (logand bit70 128) 128), F+ N' X9 q5 z) _1 W
- (setq bit70 (- bit70 128))& X7 R; A! E; r e
- )
, b' D+ n! N) T - )) ^. R1 B! l% l* F- n: f
- (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))
. z3 w2 o3 S* ^6 b: y - (entmod elist)
0 w+ d4 p* D: P: `4 z6 { - ;; Added to take care of updating Vertex information for color1 {+ s% S0 G1 E" {* i6 E# J7 x( [, E$ t
- ;; and linetype.
8 ?4 b# l8 h& s/ } w5 Q, x - (setq save-ename ename save-elist elist)
1 T( R( \' G* y) l/ s - (if (= (cdr (assoc 0 elist)) "LWPOLYLINE"), P" M( k0 x; D6 ~
- (progn
' \: t" P" l- c - (emod ecolor 62)
# ~7 s/ U; g. `6 }* C. J1 A - (emod eltype 6)
7 A C+ X1 J0 ^9 X$ }. s% R - (emod eltscale 48)
* Q4 N) L4 M7 K) ?" Z7 H6 D - (entmod elist)
* I( P: S3 k& A/ y' z# h( o - )
. X. j' @+ K! U) K2 O! ` - (progn" {; ]: t: R% `
- (setq ename (entnext save-ename))6 G0 ~ ]3 O# f8 S; b! E& }; U
- (setq elist (entget ename))1 k% k# j9 q' x, `6 Y# \+ q5 ?' ~
) e* _- R+ ~5 m, R( \- (while (not (= (cdr (assoc 0 elist)) "SEQEND"))
; B: d7 d* _2 G% j( { - (emod ecolor 62)9 l% g$ v6 T) U. f# ^9 z/ [
- (emod eltype 6)! J, r8 a5 j- N! k
- (emod eltscale 48). B4 q, E, p+ n7 T
- (entmod elist)% t% d3 J9 y, c
- (setq ename (entnext ename))) c( h: R$ a9 w
- (setq elist (entget ename))
; b; B+ s2 h, P6 c - )
$ ~ u9 [- a8 ` - )
o2 V( W3 z. K - )4 x! _- t9 y3 C
- ;; Update the SEQEND
8 D) z- M4 d3 P( v/ H - (if (= (cdr (assoc 0 elist)) "SEQEND")
. Q3 V+ ^/ d- a9 T& B2 |% S2 g0 r4 i - (progn
! U. V" ?1 `0 @ @3 @0 X; E - (emod ecolor 62)9 V" `1 \# G1 V: D7 E
- (emod eltype 6)- x: {) B$ H; y( X* _8 T/ O
- (emod eltscale 48)
7 j# x& x j& r+ F - (entmod elist)
$ V6 Z2 p( B. E b. M* b; D: v - )
) z" x9 J; ]: l. c - )
7 B4 }$ Y+ a3 J9 E4 W - ;; Go back to header.( @" D ~7 H/ X p: D: r/ l
- (setq ename save-ename elist save-elist)
: U7 w8 J `2 d& w' F Q - 2 X* ?/ c) j4 ], m
- (entupd ename)
9 J, w6 m7 }; U4 g4 U: l9 p! A - )3 q+ w; H8 X' T# P" a
4 |( w3 x; n; ]' b8 r* c% ?- ;; Increment vertex. Set tile values to next vertex" ]7 M; s" [* [" ^$ t+ X* J
- ;;* v) ?, z) ^/ ?: n
- (defun next_vertex ()
: E d Y X3 u2 w* J' ?9 H - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
# V, u* K5 B% {) i& |1 }4 n; B. w - (progn
7 z1 m3 v+ V4 z0 t. \0 q! f - ;; If the counter reaches the number of vertices,0 F0 o" G1 R4 y& b ]8 m
- ;; roll it over to zero again.1 H% W8 h+ F' x
- (if (= ctr (cdr (assoc 90 vlist)))
. n, o$ y1 L# L0 O4 l - (setq ctr 0). K) m9 S9 ?, k3 T/ J
- )+ x) E: C7 p6 i P9 S! v
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))$ N; H1 {. A; }. \. d
- (set_tile_vpt pointype)2 _" c* Y# |) T- ?8 k5 a& b
- )
' @8 m, z" ]$ u. T% G4 t - (progn- f1 p7 J4 b; y2 [, ^
- (setq vname (entnext vname))" k. m) q! U" U0 T9 t
- (setq vlist (entget vname)); \) c# Z- q2 g9 O8 G# J
- (if (= (cdr (assoc 0 vlist)) "VERTEX")
+ r9 _8 ]! L5 L3 W" K - (progn) ]4 p, B8 ]7 Z- y5 g$ K
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
& F- q0 X' Q' B6 C - (set_tile_vpt pointype)% x$ M& g2 c8 Y. @- j- \) n
- )" B" e0 e% V! R) J- d) w
- (progn6 ?$ }/ p( N5 L& w
- (setq vname (entnext ename))
, H9 K8 D' Z) f% g* k - (setq vlist (entget vname))
; D( f- w, m: c9 [, ? - (set_tile_vpt pointype)
1 C5 U: f- n# c, D' Z - (set_tile "ctr" (itoa (setq ctr 1)))
0 f2 s: `2 h7 K, V; @: b M7 A0 d - )+ a. D. ^- _, H, |2 n! R! n* m! T! {
- )
) \* O) H: V( t, E6 s - )2 x: C& V+ R1 e" v
- )
+ c! l1 N8 j& J5 V0 o1 A6 h4 \ - )
P9 [) h# U/ w* o. G0 K9 I8 g- y
! G R! s1 o9 H; i- (defun ddpline (/ oldecho)
$ g C1 S a: |* b8 S' Q - (if (not (new_dialog "ddpline" dcl_id)) (exit))0 ~* D! m) j- R% A' H
- (set_tile_props)' W( O$ T+ H {6 t* @- ^" \
- (set_tile_handle)( z7 a/ v- B4 s; x2 }0 W9 l
- (setq bit70 (cdr (assoc 70 elist)))# Z% {% A7 ^% P/ Q# {; h0 a7 `
- (setq bit75 (cdr (assoc 75 elist)))
; B5 }- }& l/ x& M- y - (cond0 n K& X3 f$ p8 Y4 v! H
- ((= (logand bit70 8) 8) ; 3DPOLY
6 C$ K! T! |$ {! D' T' b0 Z! e - (set_tile "ptype" (setq pltype "3D polyline"))" g" U$ \3 r* R- _
- (setq pointype 0) ; WCS or ECS point values6 A1 G( ]+ [6 ]( [7 k
- (mode_tile "fit" 1)
+ R3 t4 g# f+ s5 W' `' x - (mode_tile "mesh" 1)
4 z& g4 ~ t; Q# P - (mode_tile "bezier" 1)
2 _* H( n& U2 s4 ]+ }( B - (mode_tile "ltgen" 1)
) L& T0 K: G/ M2 ~% z2 B# A - (set_tile "none" "1")
2 U& K( p4 `8 s4 Z8 j }; b - (set_tile_closed)* i8 n$ b6 Z/ L; q& Q* Y
- (set_tile_fitsmooth), ?) N" |5 k! e/ H
- )2 J7 v6 v9 s; e I
- ((= (logand bit70 16) 16) ; 3DMESH$ w9 ^ a* H( f1 z1 P
- (set_tile "ptype" (setq pltype "3D mesh"))1 `/ J5 Z( [6 s7 @$ i- j, ?$ J2 s
- (setq pointype 0)* \# D, C5 z- s
- (mode_tile "pline" 1)
6 J. Q, N; W' C5 i. Z* n% Q+ @2 X - (mode_tile "fit" 1)
' W. }4 V& ^# t! m - (mode_tile "ltgen" 1)
( ?6 E6 G7 x1 X2 Z& ? - (setq m (1- (cdr (assoc 71 elist))))
' ]% C. F L1 P - (setq n (1-(cdr (assoc 72 elist))))" p9 i: q; z* H7 f$ M
- (setq u (1- (cdr (assoc 73 elist))))
& x; }0 g4 T/ e7 r - (if (< u 0) (setq u 0))
@, {5 ~8 h. [& f# n4 j4 D - (setq v (1- (cdr (assoc 74 elist))))
% u0 h, H9 h( w# P4 w - (if (< v 0) (setq v 0))
3 u" w3 ~* `$ z9 }" A y6 n q h - (set_tile "m" (itoa m))2 t4 W- R6 d' G0 P
- (set_tile "n" (itoa n))5 o0 O m; S# o$ y* ] y' K. W5 u
- (set_tile "u" (itoa u))$ ~6 T0 D' W, s K
- (set_tile "v" (itoa v))
5 q9 ~' X* ~( |2 a% [( R - (set_tile_closed). `* U6 r9 q" D
- (set_tile_fitsmooth)9 c# Q# k3 A; M+ K
- )
9 j- E/ }3 ~$ ]8 i7 v7 e9 B - ((= (logand bit70 64) 64) ; POLYFACE MESH
- a+ C% X Q( A9 Z; R, p - (set_tile "ptype" (setq pltype "Polyface mesh"))
: B# f! m3 ^6 | - (setq pointype 0)) x' p/ s) |) C S
- (mode_tile "f-s" 1)
0 b d% h6 D' | E( o: G. W - (mode_tile "mesh" 1)8 C; D; I0 K8 ^
- (mode_tile "pline" 1)
$ ~+ ]6 k; W _ - )
. w* K" e. y* {1 B - (T ; 2D POLYLINE5 X# R: M( o0 t& I5 }3 r5 p3 P
- (set_tile "ptype" (setq pltype "2D polyline"))
4 p4 u8 s/ C% n" A - (setq pointype 1)$ c8 T$ q# ~, F A' A) j0 E% ~$ L4 v
- (mode_tile "bezier" 1)
r' E0 ?) F2 V+ }/ V/ H% U - (mode_tile "mesh" 1)
5 ^- X K& R1 g( r# n [, a - (if (= (logand bit70 128) 128)# ^, S7 ]4 |! W3 ^. n
- (set_tile "ltgen" (setq ltgen "1"))
" D/ X9 N8 \1 J6 N/ k - )
8 x2 s) k4 V) O9 Q* x) e0 I1 z - (set_tile_closed)( I6 M! R9 z0 G/ H: p7 f6 @ F/ m
- (set_tile_fitsmooth)/ B9 b& j5 |# i/ a$ s0 @& d" k
- )
, C" k/ a( T* | - )
' y t y( D0 W) F) ]4 o1 \ - ( d9 X" z4 d7 b+ N' M! _9 j, n1 e6 ^
- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE"); `+ e8 b7 O9 i0 t
- (progn3 o# \2 G$ ^. x* f
- (if (not next) (setq vname ename))
$ X6 A, R( k) a - (setq next T)' r2 t% m7 j& O0 k* Z: l
- (set_tile "ctr" (itoa (setq ctr 1)))0 m: [' B7 ?& s& b
- (setq vlist (entget ename))
0 ~( W- }6 v7 {, ~' n% S) Y - )8 W# @/ j( U2 p- `. {
- (progn7 \* \( N9 }7 u C% U6 n9 p
- (if (not next) (setq vname (entnext ename)))# ~7 `( K- i" @) y) B& n# }8 j
- (setq next T)4 @+ d0 _! j R) Y9 k+ o% X, r
- (set_tile "ctr" (itoa (setq ctr 1)))
2 q! R, Z3 C8 b& p. V2 g7 C - (setq vlist (entget vname)); e( Y. Z# ]( w4 d4 O- T& E- f$ a2 [
- )
8 k0 t/ V2 W, f2 k$ N+ l - )$ U; {5 b' u7 E- m# }7 O( K
- (set_tile_vpt pointype)1 Y2 n" S5 J( H3 L" s/ {7 K
- ;; Define action for tiles; \& h, m s* R) p0 h$ z
- (set_action_tiles)
' D9 z& u7 v' V2 U - (setq dialog-state (start_dialog))
6 [" k* F/ l3 [. o
2 U0 G) V" g' o' H& `& G2 q- (if (= dialog-state 0)
% i; _) [2 _/ d2 u - (reset)( |. O3 u ^3 t/ B
- )
' w( m* i- }& S - (if (= dialog-state 1)
" X5 \; l6 I- Z2 `, M+ Z6 M1 t - (progn3 U7 ~# p p% x, V/ `# K* M
- (modify_polyline)( c1 w+ V4 n2 z# t& r/ X
- (if (or (= pltype "2D polyline")
: r% ?; K' f8 g' J# e' ]& w - (= pltype "3D polyline")
# g( N' P1 `' Q# {: h - )3 _! Y$ s/ N% o" S' V1 T S
- (progn
6 [) B, D# {/ Z5 T" x7 w - (command "_.pedit" ename)
2 I6 z! ~, R. {) g, L - (if (= spltype 0) (command "_d"))
# R( c. ]% X" N, t8 { - (if (= spltype 1) (command "_f"))" j$ J* a- N6 D4 ^4 a) l4 c9 t4 ~& t
- (if (or (= spltype 5)
5 z0 v m, b/ P, S" {$ ]; T# c - (= spltype 6)
* l5 p5 X% }2 K( @. ~0 y4 h - )6 n; F& C) |/ V& @
- (progn4 y1 i8 i- N! K" H
- (setvar "splinetype" spltype)
! Q0 F% E; |# Z% F: D& f6 o - (command "_s")
: U( Q( u* n9 f8 R) z - )
/ @) D, S- d8 t8 l - )
" w% r- C- Z p" Q - (if (= closed "0"); ^) j; ]# C8 l* _4 ?
- (command "_o"). w7 _! `7 `( B8 W' [9 R( c8 x
- (command "_c")7 s: o* v8 W: y) x* q% X* q8 y2 j" w
- ). G9 V4 @' Q4 k' n5 q: c
- (command "")
$ Y( L( _# s3 V: w4 B) o' ]
4 V# F/ b4 e1 N! e* ~# r- (if (= spltype 0)
, d, X+ c5 `5 b - (progn( Z! ]' Q+ Y( z' k1 R; D
- (setq oldecho (getvar "cmdecho"))( A. ?& J1 _& b8 y9 [
- (command "_cmdecho" 0)( T9 M# V2 M& l) E( j! K" Y3 P
- (command "_convertpoly" "_light" ename "")* A5 P" e: |9 s
- (command "_cmdecho" oldecho)
5 i7 _- U4 g+ _1 M& ^' ?5 C - )5 D9 L5 s* b( x
- )
) W9 q, e/ p @/ y5 L/ Z i - )
" m* t$ k8 ~- p! A - )
8 P) U& l9 R+ [$ g' S( l2 h: P - (if (= pltype "3D mesh")
; |+ k) T- {3 J8 J - (progn
9 ^) b' b! ] p9 @! c) J' V8 @' z7 d - (command "_.pedit" ename)" k" N3 i2 l; u6 x6 J. N
- (if (= spltype 0) (command "_d"))
" v2 i& M0 j4 @ - (if (or (= spltype 5)
2 ], f0 o* H7 I, @ m8 ^# y+ u - (= spltype 6)
1 ]7 J) a" r8 L- I) Z2 p - (= spltype 8)
# l, k! q% P, N& W% M - )
8 ~ O) b0 R! r0 v! K+ ^ - (progn
$ d* I8 Y6 R7 w0 s- } - (setvar "surftype" spltype)
! f- D' M3 D: C0 z - (setvar "surfu" u)
4 i+ E4 x3 a B# X& J8 l - (setvar "surfv" v)
5 _# F; L3 Q* C) U, ~ - (command "_s")
9 A! l+ t+ E& O1 C. F# \ - )
: B9 a8 A* {$ l7 k( i - )4 n v! H. X. @) L
- (if (/= closedm old-closedm)- x' A B' z( n+ b" p! {6 P7 R+ x( v9 m
- (command "_m")
+ V, g$ C Q9 p/ X! E d - )
5 Q; ]3 [1 _1 ?/ _* c, O5 V - (if (/= closedn old-closedn)
+ {6 y" y2 F; p7 Q( u* w& f- ^ - (command "_n")
3 \; `) ?: k# |0 |. B - )+ Z. u% }* n$ A9 V
- (command "")
8 C A' T' E. D+ f - )
( h# g4 X: j( K - )
; \: [/ x; O: [% `) o7 ?5 b& s! q2 Y - )
9 O% m* h, W1 M0 h - )( F; a5 G- P) o) \7 p0 T5 W
- )
- X% @' i4 T R0 r) D7 a - ;;2 T/ a% V* ]; f% s/ M- O
- ;; All the spline data is contained in a single elist. We must do some9 O1 M) H! f! C5 _' z( D
- ;; tricky list processing to loop through the elist in order to display
. ?# ]+ Y8 K8 | - ;; all of the control points.
' `6 o+ h$ n1 B - ;;
3 ?$ U1 q6 ^! l! n+ ^* _ - ;; The structure of the elist is different for rational and non-rational, m2 v; F' k3 v; e, `
- ;; splines. Therefore, we check the rational spline flag.6 n: b- Q8 _$ n% n6 i- ?5 `
- ;;- F+ T+ x, n3 @3 r
- (defun next_cntl_pt ()2 z' l, F& J/ |6 }' q% v
- (setq elem-no 0) ;; elem-no = element counter" t- Q5 ]/ l9 W
- (if (= first-10-time 1) ;; If first time, find location of first
: _ ]" K3 o4 ^9 ^ - (foreach list_item elist ;; cntl point element in elist8 |. G$ j8 q! v, {4 M
- (progn
t, F/ o a3 u$ X - (setq elem-no (+ 1 elem-no))
% p- D, _$ M- Y - (if (= (car list_item) 10)3 ^& R. w, m5 H! J
- (progn
# I* H* K8 p% {9 v" ]2 X* e - (if (= first-10-time 1)- `. Y9 r: D. g
- (progn- L1 J: O- y/ p1 X
- (setq first-10-rec (- elem-no 1))3 o* L' u. X! @+ T7 A9 \/ D
- (setq first-10-time 0)3 I: K6 b& ^% o$ R* y- l
- (if (= rational_spl_flag 1) ;; if rational
, A/ k0 l8 N3 v, S6 p - (setq cur-10-rec (+ elem-no 1))
1 y3 l6 Q" W |( X* X" A - (setq cur-10-rec elem-no)
" _' i9 Q9 T- p$ y$ f, E% _6 ^ - )
( i, E; R1 R6 t" M( q9 h. ~ - )
6 d1 {0 v2 V# Z2 C2 K - )
) W1 |5 X5 Q$ n# K5 |1 D0 A - )2 ^, A' W, b! ?$ H I) y! T5 J
- )
) e, w l) C8 s/ P/ }1 a - )% r7 U) g( f( N7 {8 a; s6 p% z% P2 s7 Q
- )9 {1 {% }5 |+ a Y8 l: P3 a: f
- )) g9 c6 }; f$ X
- ;; Now we know the location of the first "10" record; it's stored
2 i; X U) F/ L g - ;; in first-10-rec. The first 10 record was already displayed when
5 ^8 Y' D2 _/ ?' W2 @2 T! Q0 \ - ;; the dialog first came up so let's display the second one when5 B8 Z3 u; p; R* ?
- ;; the user presses the "next" button (the first time through).5 j" m: a9 e% h- s# j. B( U7 U
- ;;
$ d9 a3 X" d" I6 l - (setq temprec (nth cur-10-rec elist))5 H' j9 z% f9 M
- ;;
# O$ h7 e0 _( Z! S) Y; `( C5 x1 N2 h - (if (= (car temprec) 10) ;; if 10 record; R W% V* |/ @) u# [8 U
- (progn
9 c& s4 z- J/ |7 S, ~ - (if (= rational_spl_flag 1) ;; if rational spline
" D' p. {9 j* t. y$ J9 t" z+ K1 D. ? - (progn
& Q2 ^- u, ]" f* i6 E' {3 B - (setq tempweight (nth (+ cur-10-rec 1) elist))
- k4 x( f9 I: Z" \) a! @7 k - (setq cur-10-rec (+ 2 cur-10-rec))* p! @+ w" b, n8 m& d
- )
$ @: q& m6 X- s& P+ ] s - (progn ;; else- K. s. j7 Z! F& f
- (setq cur-10-rec (+ 1 cur-10-rec)): A, n4 H. z. g; i
- )2 p2 l3 K* Z* q: N, K
- ) _$ I4 B" Y2 B4 e
- ) ;; end if rational spline: o* \" z9 p1 g; B# P, S
- (progn ;; else reset counters
{( C: k. J% p) l0 S4 q; G - (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec3 u7 ?9 f4 p+ k: K
- (setq tempweight (nth (+ first-10-rec 1) elist))
# S5 d: X9 Y+ D& x0 K - (setq cntl-pt-indicator 0)
+ K9 r, _9 o# {+ |/ ?+ g - (if (= rational_spl_flag 1) ;; if rational4 G" l t' L3 U, e/ C
- (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec1 u& c3 w$ O# F( I* D& L
- (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec4 E5 o/ w0 }8 @$ }' L6 O
- )- F" l. D7 z# U+ }
- )
7 B! a' f4 y1 h }( \& s5 t - ) ;; end if 10 record
/ Y5 F5 O4 n$ Q/ l% B' f$ F. g: S - 2 E& z h5 f" c8 ]! S6 p: C
- ;; Display cntl point, weight and ctr. Increment ctr.3 j$ {5 j, X. y/ O4 V" U7 u
- (setq cntl-pt (cdr temprec))) B6 G2 z" Q0 Y* b4 `. x- t
- (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
2 m7 ?$ _; V, u - (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))+ j2 v' X9 @: g, i0 ^
- (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))+ T; q) d1 j7 A. q( _; @4 T, X
- (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))
6 G8 o! r% R0 S9 B4 [5 K3 r - (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
$ r# }! S2 c( o- G- b; s+ L0 M4 b - (if (= rational_spl_flag 1) ;; if rational
3 Z a0 F+ Y5 Z& m) |$ |' f% w! [ - (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght
" w4 h J9 y2 a - (mode_tile "weight_text" 1) ;; disable wght
6 b+ y: _1 R$ Z$ c( `1 U - )
+ ^5 k% t6 t g* `5 [5 m - )5 [) f$ e% E& y8 g* r, u
- ;;3 f# {% V9 m+ T ]9 u) I, y
- ;; All the spline info is contained in a single elist. We must do some2 j# P. d5 m% F. j
- ;; tricky list processing to loop through the elist in order to display4 n; b' X1 ?$ s
- ;; all of the user data points.: j, ~: w4 i4 n0 l+ X6 o$ }
- ;;1 B @8 h3 W$ \, `: L- f
- (defun next_data_pt ()% Q$ P' d/ o7 m4 S! A
- (setq elem-no 0) ;; elem-no = element counter# S, V7 M' x, N% y9 q
- (if (= first-11-time 1) ;; If first time, find location of first
4 K4 L: U" v5 L1 Z5 y; T6 }4 J - (foreach list_item elist ;; data point element in elist
6 i2 _9 r( I* [$ e) N4 g - (progn
3 A1 I# f3 p& w% q) r( c - (setq elem-no (+ 1 elem-no)), c5 n: t) G1 R( v( Y5 [
- (if (= (car list_item) 11)0 |7 p9 r: R- q, r
- (progn3 s, f& X6 C4 h# w6 O
- (if (= first-11-time 1)( Y) o) b" |. ^; m0 A2 S
- (progn
0 R& b3 m, d5 E1 F - (setq first-11-rec (- elem-no 1))
4 p+ S- L6 I! J& R' { - (setq cur-11-rec elem-no)
2 }" s7 b4 M1 k! b. q8 B; Y - (setq first-11-time 0)
% f' h" u) {1 b# E- _! J# m - )
n5 `' y5 t, v# k$ n+ b7 D - )* G1 J7 Y( M, O
- ), R' s. W5 [ R/ {7 @' N! \
- )
/ x: y! D* T0 b- {+ w - ); N& k3 y% ]8 i3 g" g
- )% r& [ p5 |. Y3 n' @9 U1 S% i( F; \
- )- k& o! V$ U" p+ t( m/ t3 l
- (setq temprec (nth cur-11-rec elist))
% ^* t( e9 o$ s0 \ - ;; If it's not a DXF "11" element then we've gone past the last
5 k5 U- Q8 v9 r* X - ;; "11" element. Go back to first "11" element. Reset counters.
; _, u5 ~3 A) P9 @' L* S6 x - (if (= (car temprec) 11)
% {' D, Z" h1 i3 g5 N - (setq data-pt (cdr temprec))
7 V2 j/ W) K& o% U$ |+ p - (progn ;; else
' ^- r8 g! P; W' {. o - (setq data-pt (cdr (nth first-11-rec elist)))
' y& r- D% U# @0 N - (setq cur-11-rec first-11-rec)
4 F- D8 A+ d8 I5 W - (setq data-pt-indicator 0)# ]9 g8 F5 Y0 i) H% i$ C$ n
- )
3 l# F6 @4 q9 V1 X" S% j$ I$ g - )
# i" j. C. |0 j* l& Z2 ? - ;; Display data point and ctr. Increment counters.
1 T5 h7 p8 h* c0 @: a q9 W - (set_tile "dxtext" (rtos (setq x1 (car data-pt))))
1 @, G4 P2 L+ F* a6 O - (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))) N( F* y- w, [4 J. q: B$ `
- (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))5 X2 ~! I* m5 l `% F ?+ l
- (setq data-pt-indicator (+ 1 data-pt-indicator))/ j4 r6 X3 r* f9 ?# s) M* _, y1 K
- (set_tile "data_ctr" (itoa data-pt-indicator))/ T3 K- i/ Z4 G/ b
- (setq cur-11-rec (+ 1 cur-11-rec))& M5 M; b4 H; n3 _6 K5 C5 l9 x
- )4 ] m. l$ e4 x. g' }
- ;;0 p) J! h% h# c9 Q& Q: _; z
- ;; Modify SPLINE
6 n& p1 L$ V, D" C% ` - ;;
" L7 h5 J4 z( B9 Y - (defun modify_spline (), E6 F! g6 R! } \( H& @
- (modify_prop_geom)6 C5 `+ d8 a2 z+ A5 g( S
- (entmod elist)+ o$ r# \" q4 p, P3 X$ S' F
- )
# Y2 P' B7 O8 e' U/ m
8 M* n a8 E# T3 {( j- (defun ddspline ()
4 ^5 y" {1 w7 O6 n8 M5 ?9 y - (if (not (new_dialog "ddspline" dcl_id)) (exit))
( C, C# Y$ X# |$ d - (set_tile_props)
$ r5 C% i0 z5 Q; _& V( B - (set_tile_handle)( S: q3 Y* V, f
- (set_tile_spline_props)7 L8 i9 ?) y$ S; K
- ;; Display first control point$ P9 Z+ U3 D2 e' v9 E9 D5 t
- (set_tile_cntl_pt)
2 ^5 j8 [' F( N( w - ;; Display first data point8 e0 j% S* F7 f3 V- a
- (set_tile_data_pt)
/ J: Q4 u& x2 F: X3 d/ v( W - , b0 X8 |9 s& n t \- M9 ^( B
- ;; Initialize flags to indicate first time through the dialog.
- b' N! \' C' k/ ~# @ - ;; For control points and user data points the "next" buttons
/ b0 M. m7 y$ n u0 E! V/ h - ;; in the dialog call the appropriate functions.+ d4 {: f n' I. G: @; P- g
- (setq first-10-time 1); u) v- @& l; c$ k2 F+ q2 i
- (setq first-11-time 1)
/ L7 H. L& B4 |0 O - ;; initialize control point number counter
2 H6 s/ F: J7 i( ^ - (setq cntl-pt-indicator 1)
. S6 P7 C! H# X5 O( T - (setq data-pt-indicator 1)6 U: d: `! L ]; _' z$ B8 u1 X
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator)): |* \6 u0 x( F5 `
- (set_tile "data_ctr" (itoa data-pt-indicator))
! _! V" E3 s5 v' |9 c! p9 v& f, B - (set_action_tiles)0 Q4 R) u1 P# T: @
- (setq dialog-state (start_dialog))+ Y6 L" _# x" Y t% o1 T% C1 D
" A, P" ]7 w. o9 E% z4 y( d& A- (if (= dialog-state 0)
9 }0 t& p9 u8 n - (reset)1 {' B6 [& r8 N; I! |% {- m
- )
% i" a$ |' j! n* u% w( x - (if (= dialog-state 1)( H0 \" Q$ e" h5 x& y
- (modify_spline)
2 r \9 d m, @7 m9 I$ O - ): |0 }9 G! H4 j. @
- ), F& c }$ Q. P0 R# s
- " S- U+ I7 S" W$ o* ?) L) [
- ;;: b8 k5 ?8 V% k9 [2 f0 }8 {
- ;; Modify DIMENSION$ _" D+ ], t7 I9 x) J) y$ c
- ;;9 ^2 f* H9 G7 n
- (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl4 P! ^) L" h6 d' v' D
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist2 g5 ]& |2 \. e* @- @
- dimtype dimsvcurset)
+ N) G9 @- x/ W1 i6 j - (setq dimtype "DDIMEN"7 o" i7 W8 I- ]1 g+ c
- dimsvcurset (ddimen_dimsty_restore)
; {) m6 ~) \; Q/ Z: D - ); W2 N \$ N: t4 i8 P- Q
- (if (not (new_dialog "ddimen" dcl_id)) (exit))
! Q( z: u2 w5 s. Q# @& _ - (set_tile_props)+ s2 D9 }6 I2 L6 A+ n+ K7 c
- (set_dimen_props)1 e- [2 g h I/ g) C' O6 C4 h
- (setq dimtext (cdr (assoc 1 elist)))
& e( U7 H# {$ _, \% g0 G - (set_tile "t_string" (if (= "" dimtext) "<>" dimtext))9 y0 z! e: K) I9 ^- ~( e' i
- (set_tile_handle)* k$ K0 I; @1 |; z3 R
- ;; Define action for tiles8 `! |1 m8 R4 J. |
- (set_action_tiles)
: Z |, |; r- d h6 h5 h. A5 a
1 h9 a0 V( [" g5 K2 H9 u- ;; Set initial focus to text edit box.
; c4 Y1 u, [# d1 |! w) `; g7 \5 W - (mode_tile "t_string" 2)
6 X/ S! j* i% e8 g9 P - , i* `; k8 U5 w
- (setq dialog-state (start_dialog))
- o; i7 F4 p6 G - (if (= dialog-state 0)$ ?( Y- `1 b% ?0 E
- (if (= ddimmt 1)
! f8 V# q2 U4 [0 Y( Z/ v* d - (reset)& v" V* G- B8 h6 Q( r+ b
- )
. b1 ]- _ v1 h9 i& @$ c% N - )
" R6 Z6 g0 @: V% {, m9 g1 b3 W - (if (= dialog-state 1)
. p0 i! C, b* u/ u- e0 X$ t - (progn1 l7 u: Z: S* E. A, b/ E
- (if (/= dimsty stname)
5 V" F" u6 p% H0 K7 j. E* N - (progn3 j- w8 Y {3 |3 T
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
' f& R1 d- Q, L$ N' Z- W+ V8 w+ _ - ; doesn't have it.
: R8 T5 O2 `' I - (if (null (assoc 3 elist))7 j6 l+ [0 r! L* D! p2 N
- (setq elist (append elist (list (cons 3 dimsty))))
! K0 }, Q2 H/ p - ; else just replace it.4 o# N$ p1 L2 K1 N/ k/ |
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))' m% u" q5 `: V; ^* [
- )
( z& O6 b0 ]9 M8 } ^% Z1 S& \ - ; refresh sv_dvlist with new dimstyle.% I5 C! J w2 X. x
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))# ~7 U# X9 `$ ^3 u/ e
- )9 p/ x: s |, I
- )7 I3 \ @! W+ m6 Q2 J/ n
- (if (not (null dimlist)) ; attempted to change dimvars
. q. D; m& T, ]- M2 C8 _/ Y! z - (ddimen_complist sv_dvlist dimlist dimtbl)" R$ P: P! w6 I4 D# t! o0 M
- )
7 E8 i1 W5 S9 A) k( Q - ; Modify dimension text
% g8 O0 V+ V# n, d* w3 X - (if (/= dimtext text)
) X7 S i( l! T, G$ ?1 u - (progn
+ w- K/ K, d: t7 O! v* @ - (setq dimtext (if (= text "<>") "" text))
) p, `% f' @" A0 o; C - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
. _; F$ r1 c2 x* H( B3 }2 w! M" | - )
/ G- x: _/ k& q, ^3 V( f - )
3 f+ ~- Q# B2 O! D - (modify_properties)7 L5 L" ]; c. i5 l( h
- (entmod elist)
* D" Z, @3 u) {- [ - )/ ~: M, K: {- T0 \
- )
4 m6 O- `" f6 Y# I& v - (if (= dialog-state 4)6 T2 C& `4 h9 j" d- E
- (progn( |4 n* j4 @$ W$ H! e- j
- (setq ddimmt 1)
% |7 _' f3 t: y/ x N - (if (/= dimsty stname)& H+ T7 X6 I. t1 i
- (progn
' k! V( U( P# z$ v4 P4 `; N! n - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case6 f' u, v+ w x9 Z
- ; doesn't have it.1 ^0 s8 l0 J/ J% s3 ~7 {
- (if (null (assoc 3 elist))! X7 X* e; Q2 }, G8 ?
- (setq elist (append elist (list (cons 3 dimsty))))
. l* V0 Q; C$ c4 S% q2 I `! ` - ; else just replace it.
) @& u) R: ^6 E* w9 T - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))7 ?- W7 T' q4 Q: Q4 f: \% {
- )
" E4 c# x2 b) ?7 m) C; F) |7 O9 ~2 h - ; refresh sv_dvlist with new dimstyle.5 i Z2 e4 H& D( P% c
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))3 D! `/ ?: V# H5 k
- ); `! |0 P& F0 S
- )
8 _# o, j6 R# M. e3 o+ a - (if (not (null dimlist)) ; attempted to change dimvars( v, b- t9 B# E0 r e
- (ddimen_complist sv_dvlist dimlist dimtbl)
6 a+ u, ]8 m3 j' j; X - )
; K4 S' v: i; `7 a - ; Modify dimension text* h4 h# S% l0 K. J
- (if (/= dimtext text)/ B; Y; @+ r) l/ I. ?5 H! u; {
- (progn
* J0 C5 r& ]: u! ]6 X- |; r - (setq dimtext (if (= text "<>") "" text))
7 |( m3 w5 A* w) w9 w - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
, ]( S5 [( {5 _ - ) Q# K G" G& N4 |- e
- )
y9 i8 B* R \' ?8 G B4 @2 v - (modify_properties)
* C7 C) O1 U2 ^9 k - (entmod elist)
/ S7 U: O( }+ T/ d8 i- Z, Q - (safe_ddedit ename)/ |/ A/ v& d2 p* U) Q* J7 N1 L$ m
- (setq elist (entget ename))" h+ a% ~1 Q. P I" W6 R, M/ b7 t
- (ddimen)
7 J5 [0 N- B. x6 D" F7 M - )
* J' A5 z+ s! |- B$ r - )
) X4 M1 j L% u' c0 x' _ - (ddimen_setvars dimsvcurset) ; Prepare to exit# }. n* ~4 ]+ ]- M; i) R
- )
4 W9 K, d6 ?/ B+ `3 u0 X - 5 V$ f2 y5 n# ~. f* k y
- ;;
: n1 G2 a% P; D- `8 F0 | - ;; Modify TOLERANCE
, h* m+ c4 @% {- l6 V/ { - ;;
" g8 {) j, D6 T% k$ V- N# Q - (defun ddtolerance (/ a stname n dimtbl
4 q" Q, v8 `0 ~ - dimsty dimlist dimovr sv_dvlist stlist dimtype
- G2 V) w, k2 O/ F# r - dimsvcurset)
" R+ x: A: z9 \ Y - (setq dimtype "DDTOLERANCE"2 }& }; D7 e- U5 s* B
- dimsvcurset (ddimen_dimsty_restore)
3 y! K4 D1 [/ |1 r8 A* U {) } - )) }' v" w7 x3 a4 i3 K
- (if (not (new_dialog "ddtolerance" dcl_id)) (exit)); O; g+ {: j2 d% G
- (set_tile_props)
8 s- n% u# X3 Q+ t - (set_dimen_props)
: T8 U: g. W0 i/ z) p, a - (set_tile_handle)9 h; ]3 G+ t$ {
- (set_action_tiles)
( u2 X2 K# g8 q* Q# X1 i, a! n- l - (setq dialog-state (start_dialog))( B8 O1 z$ q; \5 C$ C
- (if (= dialog-state 0)) Y; z: m# @; @ V" O
- (if (= ddimmt 1)
8 f1 \" Q5 }( Z4 g% `; b) l; f1 J, q1 P - (reset)
4 A3 z# N! Y% A - )' _! }! {) \7 ^- C+ U# N( y, H
- )& `- P5 q3 C$ ~" a! g$ o- ~7 ]
- (if (= dialog-state 1)
3 g* `+ ^; R+ ~* T1 G- ^' m! ] - (progn7 {1 u" T& J& l* @6 K/ K
- (if (/= dimsty stname). R- @) Z& T0 O4 m6 @' ^/ j) ?
- (progn+ H; E7 x+ m4 e( f7 ?8 s+ c* T
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case0 [9 M0 p* m" W E' z. ^. F
- ; doesn't have it.
* [- G. i: _7 x- q - (if (null (assoc 3 elist))
. t7 W/ j% A z" q - (setq elist (append elist (list (cons 3 dimsty))))
" T+ J2 I5 C0 n" j% q0 ? - ; else just replace it.
2 a) N9 O" o+ E& W! R" ~3 N - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
% W" [# i; u8 P* H5 D6 y - )% T3 H- s+ n* `9 B, ~( D
- ; refresh sv_dvlist with new dimstyle.
2 i) z- v: g0 x" v) S7 V; V - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
5 S, a2 `- T) f6 n, q" l: J2 @# ~ - )7 r1 J3 ^. a/ G& n- }* e
- )' X' `* ^; Z) _% O9 D
- (if (not (null dimlist)) ; attempted to change dimvars5 `% e$ q7 h2 \' i
- (ddimen_complist sv_dvlist dimlist dimtbl)
/ i2 w; }$ D5 `1 k0 c" Z* y - )! r( ~3 m7 W) v: b) z2 A
- (modify_prop_geom)3 B m1 d0 A$ A5 [
- (entmod elist)
' m/ D1 U# i& `* ^ - )
& f. J) q7 n9 q - )
. i1 `) g& |5 X' @6 g4 ` - (if (= dialog-state 4)0 u* d/ ^) e9 v( F8 x( r
- (progn
/ j& D3 a- M1 q3 q- ? - (setq ddimmt 1)% b3 P) f$ Z# S$ |5 q
- (if (/= dimsty stname)
3 F+ A N: n9 @5 y+ [) D0 [ - (progn
& E! }( Y& n' Q+ u% [/ s1 C" k: s - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case7 M8 @ d# b) m8 V% U
- ; doesn't have it.
# h2 t- H& R" _' S1 ]' b - (if (null (assoc 3 elist))
( {- X! t: p/ [1 T# n( Z7 |/ u - (setq elist (append elist (list (cons 3 dimsty)))); k4 f) {5 X7 Q( p2 y1 F6 f( h
- ; else just replace it.
: C; a7 L3 t+ m+ T1 P! j( B - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))4 k- f+ G: ?( A2 F5 [) c
- )
1 P1 G9 R7 C! h& s, g9 A - ; refresh sv_dvlist with new dimstyle.
1 C' Q9 w: t5 y: F+ ~' R/ o4 \ - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
( L1 b! t' \$ Y' J* O - )
: I+ B* K0 f, L: H - ); y! t! G: [3 l7 z- Z( H- o
- (if (not (null dimlist)) ; attempted to change dimvars5 x6 L3 r6 B2 A5 {+ ^/ d
- (ddimen_complist sv_dvlist dimlist dimtbl) G+ B `. h! P2 m
- )+ s. f2 _, ?9 N6 E
- (modify_properties)
5 m5 j& }' t% k8 l% g3 ^+ D - (entmod elist)
9 l/ Z4 x6 G2 `2 m% o - (safe_ddedit ename)9 U, x0 }' s' F" B
- (setq elist (entget ename))/ b2 S# V- e! D
- (ddtolerance)
% l, B$ {/ `6 q$ O- s; q - )" j9 J1 U0 S/ B! w- o z
- )
# a7 z; z8 r1 t3 p8 m' | - (ddimen_setvars dimsvcurset) ; Prepare to exit
7 K3 C# s C% m6 @" O - )
2 d) [3 {+ F) w - 6 a0 ]; Q. |+ `- |9 E, X
- ;;
' |5 g6 c' f t8 [) v - ;; ddimen_dlg - jump to ADS ddim module
" u. |9 H; F3 ~1 [9 ^- l- b - ;;4 l+ p+ L* n/ E
- ; R: N K& b0 {9 r8 Q
- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)1 p# r" @* X% v( X, y
9 ^: g! i0 m! t2 `1 w; q7 W- ; Jump to DDIM with overrides if any.
I' G. C. @/ A) h/ i - (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry
s% }2 w. D2 V) Y5 t& X - ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format
( s. H7 N$ x0 }: F( a - ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation
5 @3 l6 H, r/ x& D3 H: i. B: k - )! }; f4 b; x- P6 j' Z6 `& r3 g; B
- )2 a( G1 x5 R; p9 w# J2 L" c' L# P6 m* Z
- " K$ n4 d, q! \2 y
- ;;6 l3 d# i7 ?4 \3 A# ?0 y. X
- ;; Dimension variables updated are stored as overrides.
! ]9 N+ h h- ~. b: i6 A0 O - ;;
% r8 v s/ C$ u- a9 ` - ( b9 w Y, Z/ ?+ { W/ R
- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar9 _5 ?" u* B: W1 @6 G, |, G; T7 `" y
- dv dime commandIssued)
( L% {- R- T' ~1 {9 D$ R! F! Q, U. u+ w
/ e v8 a! C. g3 y- ; Here we skip the following first three items:! P7 l+ u/ y: ~0 x/ U! l7 k; ?
- ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0)+ r! D/ |9 f9 ^# C) ?! ]
- ;
/ w2 t1 v# t* W \, F% H* [ - ; The list comparison immediately begins with dimvar./ D: ?, ~* |( c& _6 R% u, R
- ;
# M& ~7 x* o* O. ` - ; dimolist - original states of dimvars9 A9 U4 X" s1 j, T
- ; dimnlist - new dimvar list which is of the resbuf's
! n' @0 v& j+ O ~# ` - ; dime - entity name for the dimension \" F% ?5 f2 Z5 G/ L: V& @
- ; odvar - value of dimvar for the dimolist
" G* d& w t- ]( \) L - ; ndvar - value of dimvar for the dimnlist2 Q- ^% d, O9 S& q: j. h6 \( a- X
- ) p2 |. e4 T R7 M5 Q/ t- p
- (setq i 3% ]4 B7 F% U% {/ \5 \7 S# A, ]8 {* [4 e
- dime (cdr (assoc -1 elist))9 ^8 l7 x- ^. r Y+ R' h
- )
, K, l7 {1 o3 A9 K% g. s1 V$ K6 F - (while (setq odvar (cdr (nth i dimolist)))3 ?) h# k+ r5 ?" h# T
- (progn
7 q- J1 g2 E. ?, j - (setq ndvar (cdr (nth i dimnlist)))
5 Q# T3 c6 P4 H, y1 K- a - (setq dv (nth i dimtbl))6 E, `4 q& o% R" l6 p4 F
- (if (eq dv "dimtxsty")( d3 ~0 q$ N2 q$ T, q# P
- (setq odvar (cdr (assoc 2 (entget odvar)))
- o' Y* G! W8 h: S - ndvar (cdr (assoc 2 (entget ndvar))) Z" n8 d1 D( b% C. O
- )
- a1 W y) P5 f" j) W - )' x7 C* N, m8 x3 I( @: \1 C
% C% m0 {' i5 s6 H, D: w- ;- x4 S3 T; ~/ E6 i+ u
- ; In order for DIMOVERRRIDE to operate correctly with string4 t7 q) K. l0 f- F
- ; based dimvars, we must pass "." versus NULL strings.0 a7 Y6 h' F) ~5 R
- ; In this case ndvar is the new dimvar value the user wishes& [" n' N2 U1 [
- ; to update on selected dimensions.
& z; S4 A% g+ u+ i' U( L, y3 p2 E - ;5 J1 _. V" t4 R
- (if (/= ndvar odvar)
6 @2 C! @6 O) t* L - (if (= 'STR (type ndvar))
5 [7 F. d3 T7 T4 B$ \+ q9 @. a - (if (= ndvar "")
7 E4 c" g& l. n8 C4 T - (setq ndvar "."))))
1 E: Q4 M" w( B( b
( I" K& |9 Y l S0 X( N" e A, f- (if (/= ndvar odvar)
! O% I0 C: K( S& { - (progn' x! ] O( H3 }
- (setq dv (strcat "_" dv))5 _9 U H0 ^0 |9 V' j6 P
- ; }3 T0 M/ s X0 b) D7 ^* l3 W
- ; Start the dimoverride command+ z) G$ h, L0 c; R5 f% @
- ;4 E/ |. f* G8 _/ o' `5 n
- (if (not commandIssued)) g" U% R( y; m
- (progn
( @) u! H4 o$ v& ]7 Z8 B G - (command "_.dimoverride")
3 @3 P& J/ j1 g - (setq commandIssued "T")
' p& [) p3 b* s2 t4 d u; d; N: a - )
% o! F9 o$ f) }& \. h+ u9 V% t! h - )
" ]" c; i! P. l; C6 u' ^ - ;$ ~6 q+ p& d/ n. ?3 f! l
- ; Issue dim overrides; i2 {/ x- v, ^$ Y
- ;' w( W$ M, ?- _9 ?8 |0 q
- (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre"))
L# f# r0 p6 }3 W- ]; I( d2 A+ O - (or (= ndvar 0) (= ndvar 256))
8 u, t; v$ O+ |' L4 V2 q - )
4 \2 A& K! B4 |" L$ T$ | - (progn
" Y9 d9 O# S$ O. g& f4 v" I - (if (= 0 ndvar) (command dv "BYBLOCK"))3 c0 `4 o9 N- v2 W
- (if (= 256 ndvar) (command dv "BYLAYER"))/ w" h( W" a) R- I3 w, \6 b
- )4 S! W7 i+ W) z
- (command dv ndvar)
7 K$ {8 {2 w7 v4 R) C6 e( } - )8 d2 B/ B& H! m
- )" v. o# t* E8 Y6 [
- )
. r t2 G7 G2 K2 d - (setq i (1+ i))# r( Q1 j; a3 y) u8 }
- )
# \. ^9 B* _( i) P4 S+ Z) ^ - )! ?2 w' Q1 H& g, o1 {: p
- ;7 R8 p+ t, d4 c
- ; Select Entity and terminate command
# B) [: F4 e9 x! k E/ k+ R6 n% V - ;4 b) Z$ ]; S5 Y& v' X
- (if commandIssued. V) L" Y4 c& C
- (command "" dime "")
( I4 V' o6 f/ x/ q - )& C2 ^) D) w' Z& V
- )+ ?8 {6 o) p8 N& o( W8 I
g4 l6 T; I3 \, D- ;;
" l% g8 _7 r2 H6 e$ j - ;; Get style name currently selected style name.. T) {1 S' a W, w; h+ P
- ;;
/ b/ \+ Z$ ^9 X) m$ J5 E* t
0 e3 M! C2 f1 v2 t8 Z' f! O$ e4 P2 |- (defun ddimen_style (/ dimsty)
! T! x! g$ Y0 a4 K t* ~ - (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)- W8 z. q! y, E- B" U6 T+ ~
- dimlist (ddimen_getdimvars dimsty)
" N- |- r. d: f - )
$ ^; w! u7 P! w% u" \ - dimsty
- L8 g4 j! E4 j - ). x6 `5 r0 w5 n
- + o0 j9 e/ D4 d- ~5 p7 Q9 M
- ;;# S+ w$ K6 v }2 @% I
- ;; Set dimvars1 K5 {2 O; k$ Y; b0 H
- ;;
( n4 M T! {* Z3 r6 ~ - (defun ddimen_setvars (dimsvcurset / dv i)
2 V6 d3 g5 v5 q# p - (setq dv (cdr (nth 1 dimsvcurset)))6 b5 Z# N+ H# o4 ^
- (command "_.dimstyle" "" dv)0 c$ b1 H3 Z' |% t4 r+ i" e+ \
- (setq i 3)
5 n9 F# u4 t' m# m0 @0 h4 B/ m k - (while (setq dv (nth i dimsvcurset))5 p& B0 i7 D0 G- D
- (progn' a }2 h$ M! b- p! Z
- (setvar (car dv) (cdr dv))
. a: @) \1 \% _1 D. ?. \( Z - (setq i (1+ i))$ J5 P+ _ y6 l6 g
- )( R G8 z5 g( _9 z
- )2 I+ w0 [8 n0 C- l3 O
- ): i; G9 Q% a# G5 g' Q4 C
- ;;
( }! x& Y2 e: v, x! z - ;; End-of-dimension J4 F1 Y" B! z% P6 ~) X$ z
- ;; ==================
9 v, r! u7 R" [" }/ o; P" N
+ U* r) Z9 R2 W7 a1 l) M" b" s- ;;
9 J' a- J- ^( T b, I3 q! Z - ;; Sub-dialogues for properties. Common to all object dialogues a* z6 _# Q% X, D
- ;;1 |/ Z$ B8 |' r5 m% }: {/ Y; M
- ;; This function pops a dialogue box consisting of a list box,image tile, and8 U. [$ g. m6 k4 t( P8 c
- ;; edit box to allow the user to select or type a color number. It returns8 V' o1 u9 U( m) J# }
- ;; the color number selected.
8 N' _4 E* y* Z' V - (defun getcolor (/ old-idx colorno cname lay_clr)& a) o# q$ B: }! C; _, P+ w5 `
- (if (= (get_tile "error") "")) O9 I# j+ x2 R$ J
- (progn
' A C/ X9 }' F' _$ q( u0 Q - ;; Get the color associated with this object's layer, for use
9 g* Q' Q6 r$ j - ;; in the color swatch if the user selects color BYLAYER.
& b- P9 U0 c2 w5 f - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))" _* h4 v, f- q& E' p, E
- (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))
1 \( U9 F& }* b/ i) x - (progn
8 i7 z, p$ W* H$ a& Q- { - (setq ecolor temp_color)
+ B( l; z( i# R( f. u! w+ { - (setcolor)
+ M( c% n; C) s% d. }# D$ V - )4 p4 M }( d. A2 y7 c; o7 |- U
- (setq testcolor temp_color)
# F, H, e, B% ^! C - )
: ~5 T: ?' h. ^2 f - )) s3 g+ t9 p3 p% l; e0 W
- )/ e. o4 F% n2 P5 u) h' [* N
- ecolor6 d$ I0 `- A! P
- )" q- z* r* g# f. ?! J9 f5 Z, e
- ;;+ t& ?+ f, B0 O8 C/ n4 r5 z z
- ;; Function to set the color tiles.
- G( a! o/ r* {6 R* z% m. W' L - (defun setcolor(); X8 B$ C. m5 q. y: L
- (cond
' k! e, R3 D, y0 [0 e* g - ((= 0 ecolor)
2 _ |1 h" r3 b% N+ Y8 M - (set_tile "t_color" "BYBLOCK")& z9 z7 c0 h. R
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white
8 T. ?0 [: P2 ~; q2 w! y# Z7 [ - )
% \; u3 T' G# a8 \8 c$ S3 o% ` - ((= 1 ecolor); s5 x% R: a2 w6 `3 t9 R I
- (set_tile "t_color" "1 red"); h& k- h9 i9 e5 s2 B% K- V
- (col_tile "show_image" 1 nil)3 P' ?- ^& R1 ?8 a
- )
! f% z. s6 Q# { - ((= 2 ecolor)
% P6 b w, S% y4 o: N; q9 b - (set_tile "t_color" "2 yellow")
5 E( @6 O( {* q% | {, B - (col_tile "show_image" 2 nil)
' {! @( B+ C( E3 H' I S - )! Z+ g5 k0 N& J
- ((= 3 ecolor)4 C. P7 }3 }& x' V- M( t5 i& @
- (set_tile "t_color" "3 green"), t) g/ X! ^$ u$ R3 {$ f
- (col_tile "show_image" 3 nil)' p# f, L7 x, r0 o
- )0 m* v, ~. N- |$ f
- ((= 4 ecolor)
O: G) H& b9 I - (set_tile "t_color" "4 cyan")4 d1 j* n6 _( k- [! R
- (col_tile "show_image" 4 nil)2 |4 f- P7 \# J! N8 o) ?4 W
- )
1 P5 h2 d! N; O9 E5 S9 ~. K/ I - ((= 5 ecolor)
6 g r5 F, P$ G5 L- l - (set_tile "t_color" "5 blue")* E! r9 E0 Z+ } L- e7 J& F
- (col_tile "show_image" 5 nil)2 @9 {* T+ `0 s
- ), m% j# V; S2 @3 O- P2 B, E
- ((= 6 ecolor)
7 x7 j/ Z* [/ j1 @* |" E - (set_tile "t_color" "6 magenta")% z' L0 u/ s) M- O0 S1 L* O, G- J: W1 @
- (col_tile "show_image" 6 nil) I6 s1 {! e! Y' O! i: ]3 N/ J2 `
- )
) q, q! T8 y" `- O - ((= 7 ecolor)0 x/ I0 \, v( |( W* N$ |% x6 V7 l
- (set_tile "t_color" "7 white")- k( R6 b `( {" c1 O) A+ R
- (col_tile "show_image" 7 nil)* d: v+ x* E: B7 G7 w. N
- )7 X. S- X3 G' ~6 c
- ((= 256 ecolor)8 t6 X" e- | I. R; W
- (set_tile "t_color" "BYLAYER")9 N% P9 _9 j+ Y- _: l+ g2 w( T9 A
- (col_tile "show_image" (bylayer_col) nil)
) {. p/ `: [. G' \ - ). S7 E+ p. ^7 M1 Q
- (T
- X+ J; B8 k% s% h) T1 k - (set_tile "t_color" (itoa ecolor))
$ c) O. u2 F- e) v# T - (col_tile "show_image" ecolor nil)
, t) t) e! n9 H3 a - ): R9 M, s9 P8 j1 ^3 @' d9 E& Y3 p
- )" X2 t1 `7 }2 C; M" _% D
- )
7 a A3 L: T6 _9 y! ^3 V - ;;
) T3 ]/ x1 n3 B% F/ q: U - ;; This function pops a dialogue box consisting of a list box, image tile, and
0 k+ Z- r* V7 j. \+ D. S - ;; edit box to allow the user to select or type a linetype. It returns the+ E6 I2 D3 a0 a& c a1 F- N0 m
- ;; linetype selected.
$ i& Y5 R" A/ j, o8 j$ E+ ? - ;;2 Z2 `6 R; T; l9 F! D; W( k% h: @
- (defun getltype (/ old-idx ltname)
4 U- O! U$ M+ W4 y t2 [; Y3 N$ @- } - (if (not lt-idx)
1 J5 d6 i2 P2 t( S- _ - (progn
- M5 O: h; g5 I- c - (make_lt_lists) ; linetype lists - ltnmlst, mdashlist e) y; i& D& l; _2 J+ `/ H9 Q6 u
- (cond+ ^% e& f) O2 T/ P
- ((= eltype "BYLAYER")
0 h" w6 s: Z! U - (setq lt-idx (getindex "BYLAYER" ltnmlst)))
" ~! k& J) V- N - ((= eltype "BYBLOCK")
8 J2 O" v* F% @7 l - (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
" ^0 O2 N9 t! A; E# h$ B/ P9 T - (T (setq lt-idx (getindex eltype ltnmlst)))
4 X! E8 d: L) ~* ~3 N( V3 C& [ - )
! ?. u* z! j9 U3 | - )2 Y% Z0 }$ L& O1 j& r7 ~
- )
) u' `2 D/ ^* O Y5 c9 K
7 t1 S4 W5 _$ k7 P* M, J6 |- (if (= (get_tile "error") "")- F3 k. T$ O7 s( v/ F
- (progn
$ T2 m& n. g" \) h# x - (if (not (new_dialog "setltype" dcl_id)) (exit)), d3 D2 c: r5 H
- (start_list "list_lt")$ h0 I6 L7 a: _$ D) Z' j
- (mapcar 'add_list ltnmlst) ; initialize list box) z6 }; k! p/ p( f- R; r
- (end_list)4 H* s3 A4 C3 k8 K4 f# x
- (setq old-idx lt-idx)
5 l, g' X4 P0 d; H - (ltlist_act (itoa lt-idx))
" }' ]+ n( ~, v - ) M6 T( d0 V* Y/ j& |6 X6 p
- (action_tile "list_lt" "(ltlist_act $value)")
; V! ^$ c' B) Z- v9 A - (action_tile "edit_lt" "(ltedit_act $value)")
: V7 |4 V# ]7 g8 `0 U - (action_tile "accept" "(test_ok)")
: x( \1 Z, O* S# m* K$ ? - (action_tile "cancel" "(reset_lt)") a, P& y7 [5 B0 O5 O
* _8 e' n8 O$ C9 ^7 m6 H( A# Y3 R4 K- (if (= (start_dialog) 1) ; User pressed OK
$ C: J% r1 [% M( E - (cond
1 a3 i J7 f0 L - ((= lt-idx 0)
# _2 {$ X2 p; i - (set_tile "t_ltype" (bylayer_lt))" W( C# \ x0 F
- "BYLAYER"
3 s7 w! f% n" |7 ]- t - )
5 T* b/ W1 b$ H* d7 l9 T6 J$ d8 ? - ((= lt-idx 1)8 e% E/ P/ ^- M+ z
- (set_tile "t_ltype" "BYBLOCK")
/ g6 p) h0 h3 b$ q+ a& G" z9 J - "BYBLOCK"
- T- i l8 u* L k - )
: {( L1 X w C1 ~" ?# n, ] - (T (set_tile "t_ltype" ltname) ltname)
, S+ `0 e" H5 w6 G- ]& j" d# U - )
+ m1 [7 }3 J) a$ n - eltype/ l: u: t$ r& C. E' r1 \
- )
9 `0 `0 n9 t4 I& A: E8 X - )9 s$ l1 U5 D# l/ }0 e* x
- eltype9 ]3 c6 ? ~9 f& [; v
- ) G. t7 }% h5 L9 @$ G& q) f4 n
- )
# _9 r- v+ X3 F. @ - ;;
5 [# `# T: P, ^* e' I& } - ;; Edit box entries end up here
& a. { K' u- V) E' j2 y% G8 D4 q( V - (defun ltedit_act (ltvalue)
6 a% ]+ \. e) R4 d0 m( x' O - (setq ltvalue (xstrcase ltvalue))& V. J0 Z' W; B
- (if (or (= ltvalue "BYLAYER")+ \% Y" S$ V' h- ]
- (= ltvalue "BY LAYER"))2 U* w- n. d1 k) ?& B3 t, I) ]
- (setq ltvalue "BYLAYER")- I4 I% N3 i/ y0 |& |% N: D# y4 b
- )
8 y- E+ V" i# p: n+ A - (if (or (= ltvalue "BYBLOCK")
' H$ Z( s, } e" W - (= ltvalue "BY BLOCK")), \% n; _: l+ ]9 U) H( B
- (setq ltvalue "BYBLOCK")9 m+ j8 i/ W- f) n
- )9 }8 B6 I) E1 L) A. f4 ^0 @
- (if (setq lt-idx (getindex ltvalue ltnmlst))- A D7 H) {) o1 \1 F% q
- (progn
`( P6 u# g# N' n' f/ Y - (set_tile "error" "")
9 _& |, z1 p- | - (ltlist_act (itoa lt-idx))" t. M5 ]4 _: O7 _" B
- )
$ A* ?! w7 A/ d3 w9 o* H5 G - (progn# q' w1 y* V2 B% l
- (set_tile "error" "Invalid linetype.")* O O2 u' ?6 O5 L0 O$ J. o
- (setq lt-idx old-idx)
( U# N9 Y( B8 U2 B g& G2 p - ;; (mode_tile "edit_lt" 2)' U+ U, B9 U$ ^$ \: v: `( t
- ;; (mode_tile "edit_lt" 3)
4 M. T$ L& V( f+ _( n" W - )9 o9 J$ ]. X. A/ n( r# J
- )2 d! y) V3 p* d) r( j c
- )
& W& {3 \9 `/ J$ O9 o, B - ;;9 o+ a, _/ c' Z" t, g x
- ;; List selections end up here. Update the list box, edit box, and color7 h' A3 f" C8 P. ]
- ;; tile.* ^9 D" x; z! h1 \) B: {7 x
- ;;
# S# `# S( n; S2 L5 y: } - (defun ltlist_act (index / dashdata)5 @/ N1 H, z4 C e9 g5 k$ G, U5 Y
- (set_tile "error" "")% j/ C& t G: }
- (setq lt-idx (atoi index))& ]. n+ O) r; ~3 y2 ?
- (setq ltname (nth lt-idx ltnmlst))! Y0 v' d1 X5 w! @
- (setq dashdata (nth lt-idx mdashlist))
. L: v# z: G Z; H- Q - (col_tile "show_image" 0 dashdata)# e9 F: y+ i7 {$ |4 E" r( `+ l
- (set_tile "list_lt" (itoa lt-idx))6 {9 D" w' u. w$ i8 T0 v: Y
- (set_tile "edit_lt" ltname)
' q7 ?3 j2 ]/ s# y" m - )
% T4 B! F6 ~6 H - ;;
6 @1 \$ N' z: j- C* @ - ;; Reset to original linetype when cancel it selected
- ` j5 \3 {/ O, K" O- X$ K - ;; x7 b. m1 Z; n; ]/ W" ?
- (defun reset_lt ()' u& B" ~7 J' l& \, j" [# O
- (setq lt-idx old-idx)
& S5 g* M" T+ T$ D: F1 t - (done_dialog 0)
; U' v+ ?/ O/ g - )
; @# S$ r1 s4 B - ;;
6 v5 D( U ]/ Q* H8 e - ;; This function pops a dialogue box consisting of a list box,image tile, and
& G( k- a: X1 U7 n: ~& Q - ;; edit box to allow the user to select or type a layer name. It returns the( z5 J6 u% G# y/ W& N
- ;; layer name selected. It also has a button to find the status (On, Off,7 c3 h7 C3 w8 L4 S/ [( B
- ;; Frozen, etc.) of any layer selected.3 Z) I6 N3 I- k* U0 W
- ;;; A8 ~. v7 S# u8 _
- (defun getlayer (/ old-idx layname on off frozth linetype)- U6 I( f, ?' [* s' U( z
- ;; Create layer list the first time the layer/ C; o0 g$ Q- l+ v5 m: Z
- ;; dialogue is called.
4 C$ s6 d+ e1 O4 m - (if (not lay-idx)2 y: X d+ q( v/ q9 Q
- (progn' m, j. \( F) V5 A) J
- (make_lay_lists)6 g* \ N3 n3 Y! p% `8 X" }
- (setq lay-idx (getindex elayer laynmlst))
' D3 k Y+ h/ |) p8 X3 y7 I0 M - )
1 {2 H- b/ Q# M3 n - )
* w6 |1 v% A2 T4 x( Z
1 P/ H' q# v+ M& w- (if (= (get_tile "error") "")
, U9 p' r! C- q( a0 r8 w; ` - (progn
; ~8 d$ b" ^- @ - (if (not (new_dialog "setlayer" dcl_id)) (exit))
0 n- r& v6 {7 R- [( T5 q2 d0 X - (set_tile "cur_layer" (getvar "clayer")); ?* N/ n) t9 t, u6 c- R4 [, ?% M* K
- (start_list "list_lay")2 B4 D2 }; a7 v
- (mapcar 'add_list laynmlst) ; initialize list box
$ G9 W, N( j8 f3 \$ u( I7 ]/ w - (end_list)
& B/ J( e' W$ N: V$ B% z9 e0 W - (setq old-idx lay-idx)% |2 H% q1 F( y: W/ u4 \2 z% V2 Z
- (laylist_act (itoa lay-idx))4 d, \. P! ^8 i9 @7 P! z3 ^
- (action_tile "list_lay" "(laylist_act $value)")' j8 H3 [, |7 o& B/ L, c
- (action_tile "edit_lay" "(layedit_act $value)")1 y; u& H* T7 V# N G
- (action_tile "accept" "(test_ok)")
% U0 P: _3 F6 d' n2 P- h R - (action_tile "cancel" "(reset_lay)")! [7 g" g2 ]" f! x( v* x
- (if (= (start_dialog) 1) ; User pressed OK2 P# X. e! B% J! F( v
- (progn9 x! P1 T$ G; G4 b5 E- o0 t
- (set_tile "t_layer" layname)
4 |/ t" S, B+ W# L2 G N. N1 v - (setq elayer layname)9 m; }2 J5 t; Y1 o; i" j
- ;; If layer equals bylayer reset color tile9 D" k' P: t, C4 @ z! p- } a
- (if (= ecolor 256)+ |0 W- k t8 l
- (col_tile "show_image" (bylayer_col) nil)
( h, C0 M7 }! l4 o* F& q! w; ^# Q" P - )
: f5 ?1 D! \( j, ^ - layname4 J; U8 X( s% K7 Z k% Z6 C( x b
- )3 }5 x. c/ O( v. y q! ]
- elayer
( T- s, O+ P8 T - )! d# g; B9 F" a5 @
- )# `: C; x3 |8 v/ g4 n' Z) }
- elayer
* ]; k' z3 a* B+ V6 L - )
G/ u: i' w) P0 m2 _' r - )- J4 z7 T# d+ c& ?
- ;;6 Z7 W% c; e0 n5 m" e
- ;; Edit box selections end up here. Convert layer entry to upper case. If
1 M! Z3 F: C% b. I - ;; layer name is valid, clear error string, call (laylist_act) function.+ \! ^" H# w- h4 M
- ;; Else print error message.
7 @+ i# b1 H# x: T4 c - ;;
+ n4 ]; K9 q J5 _% \' c - (defun layedit_act (layvalue)
) N& r% K" c/ g" r U% J' S% \7 D - (setq layvalue (xstrcase layvalue))
8 P# e: g; m! T- h - (if (setq lay-idx (getindex layvalue laynmlst))6 A- \) b9 ^, Q/ ]# c+ m
- (progn
c5 X% K$ _) x) c3 E* M - (set_tile "error" "")
! `( ^. D* O9 K! r+ h% \& E - (laylist_act (itoa lay-idx))
4 l" e% J7 U* w3 E - )
. e0 |, _/ e, N/ C& [ - (progn: k9 b, i }7 x) v
- (set_tile "error" "Invalid layer name.")
- p) E7 h& H1 \" J& _/ l - ;; (mode_tile "edit_lay" 2)
( K8 h: N, S% D& y - ;; (mode_tile "edit_lay" 3); B# ? S* B! p c& c3 G: C
- (setq lay-idx old-idx)* d" [' d' s2 r+ g; g2 E9 q
- )
) t9 `0 p: q1 Q& D, b% i/ q& V* } - )
W+ _- x7 ~6 F) i. o6 ^ - )
4 T# W; y) W3 f9 B/ n3 D% B7 | - ;;/ W& I0 V/ G: f7 N/ e" w i
- ;; List entry selections end up here.
3 [3 |4 ^+ x6 h! H - ;;
0 b2 y9 X9 x6 B) g - (defun laylist_act (index / layinfo color dashdata)
) T8 O6 t9 o+ y7 r# U3 P" t - ;; Update the list box, edit box, and color tile.8 |5 a2 C* H; F3 O8 s& {1 ]$ J
- (set_tile "error" "")
1 `1 ], V: ^; X! P/ W! d/ Q9 C7 w0 e - (setq lay-idx (atoi index))
. i, b/ [9 \1 s* o6 W5 | - (setq layname (nth lay-idx laynmlst))
& o8 w! h' ^1 ?& `! I - (setq layinfo (tblsearch "layer" layname))
g* O1 J5 f" `; o* p6 b2 J - (setq color (cdr (assoc 62 layinfo)))
1 H+ L) W! n. ~( ~- `& v4 O% U - (setq color (abs color))
8 h% }: ~- O) @ n7 Y+ U) b - (setq colname (colorname color))
! M# ]0 z3 D; d' J( S' e; V5 d. y - (set_tile "list_lay" (itoa lay-idx))
U: P7 s* X$ o* M5 Z0 X - (set_tile "edit_lay" layname)4 V, k9 L! a' M" B
- )
: j0 v0 n0 W( j' m - ;;
6 q: G- `9 w9 p T2 Q. e Q - ;; Reset to original layer when cancel is selected." I* k, }! f1 \% \& I
- ;;
4 S! g/ m% v7 q8 W9 _ - (defun reset_lay ()
! W, d4 h; N3 r1 V; u6 L - (setq lay-idx old-idx)
# J5 a+ L$ i5 T3 b+ Y7 m) q; x - (done_dialog 0)
# m& m- Y8 G: k" q - )
5 Z# ` ^4 [: a! k7 w* A- u( l- A - ;;
7 _( C4 b: P/ g L0 W# H - ;; Checks validity of thickness from edit box.
: M B. u6 Q2 ~ - (defun getthickness (value)+ M% J1 }7 [$ ~$ g5 q
- (setq ethickness (verify_d "eb_thickness" value ethickness))' K# L0 q: R/ |" X+ E+ Z: a
- ). n5 U, g, D) n, p, l" D
- ;;* _& T9 Y9 f' Z& F$ d+ Y
- ;; Copy of (getthickness) for ltscale. If more, make this function, g7 I0 F3 k2 I5 f4 `- v' E
- ;; generic.# p( a5 ~' z4 J( b& W1 h, a: X
- (defun getltscale (value)
% N* ~+ A3 e9 D - (setq eltscale (verify_d "eb_ltscale" value eltscale))
! \% a% c3 m0 [% `8 u4 b; f; _ - )7 _& Z' U# X6 t* \( n
- ;; s8 B1 [' z0 |2 W+ n
- ;; This function makes a list called laynmlst which consists of all the layer- B5 d: B- X5 a3 a
- ;; names in the drawing. It also creates a list called longlist which
2 O' h0 H; H) R; o. ]7 N; H- A - ;; consists of strings which contain the layer name, color, linetype, etc.9 u6 c* I0 W" T5 _
- ;; Longlist is later mapped into the layer listbox. Both are ordered the
' R: k6 ^$ v) t: k) n7 j - ;; same.# B) {; m) F+ k2 [
- ;;
! U" T5 p; x( i: q- X - (defun make_lay_lists (/ layname sortlist name templist layer_number)2 d( _7 z. A: q
- (setq sortlist nil)9 B: f, T! Q7 ~9 k% J# H8 ]% r6 G) c
- (setq templist (tblnext "LAYER" T))
% q2 @) r% K( C. G% H" l0 { - (setq layer_number 1). k; D; a5 B; i% W- H
- (while templist$ G k/ G! p# _
- ;; No xref dependent layers, please., [4 `2 _$ I$ _: J8 H5 Q$ ]
- (if (/= (logand 16 (cdr (assoc 70 templist))) 16)5 j# @& o4 b8 j- N& v/ v" f4 {
- (progn6 p+ A3 A4 U1 t0 @. M2 u' F
- (setq name (cdr (assoc 2 templist)))
) K9 A ]: f! {1 ~) ^ - (setq sortlist (cons name sortlist))9 i% E ?- Q% X# k* e ?
- )4 O7 u1 w6 |- A* i) D
- )
) v7 y" A' G4 I' m, f3 N+ p - ; Get the next layer.$ d5 d3 z0 N1 D* B( g9 U% h
- (setq templist (tblnext "LAYER"))
9 s( M. ?) r& E! ^ - ;; Not dead message...
6 R5 h/ r" t" B$ E - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))6 E k& I+ M: s
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))" x7 v" x6 F* p8 \3 C+ u% H
- )
0 x5 ?( X7 {6 K - (setq layer_number (1+ layer_number))
o# l! G- I* B - )# f! Z+ q' [6 @* o; q2 a5 f V
- (set_tile "error" "") ~! p- u7 w2 ^, w
- (if (>= (getvar "maxsort") (length sortlist))
; j9 @! n, A3 W7 x) } - (progn: C4 W' L+ R" q$ ?& ~7 U4 i
- (if (> layer_number 50)6 i# G) g$ z% }9 \/ f& z
- (set_tile "error" "Sorting...")7 i8 _( R& h) S7 {4 G. y
- )
1 B( \; G* |( ] - (setq sortlist (acad_strlsort sortlist))$ M1 K& n) b' W
- )( L- e8 F2 y; }+ }; n
- (setq sortlist (reverse sortlist))
$ b9 k$ N; S% ?" Z7 {1 `8 w4 P - )
* R8 @, P. h7 j0 d: _: B: D - (set_tile "error" "")
! u6 U$ b, Q4 C3 e7 \2 P+ y$ B, S, @2 I1 h - (setq laynmlst sortlist)
8 {% z& {' y, O& _ K - )1 z: ~8 N' l$ V) M. c" ~
- ;;& T' }: I1 }: [3 H8 M. K5 V( e
- ;; This function makes 2 list - ltnmlst & mdashlist.
. _* v4 D5 @) i# s0 R+ S - ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist2 Z" n& a) O3 _: ^
- ;; is list consisting of lists which define the linetype pattern - numbers- o4 l# G( ~9 y N6 b
- ;; that indicate dots, dashes, and spaces taken from group code 49. The list
. Z3 M6 K/ Z/ g6 k0 L+ Q7 V* B - ;; corresponds to the order of names in ltnmlst.; W+ k- J0 ?; Z5 p- t3 n! }* C7 T
- ;;
7 n6 \5 ~9 a" X0 L& T8 I - (defun make_lt_lists (/ ltlist ltname)0 ]6 b9 ~! X, ?7 S$ s0 q$ k% q
- (setq mdashlist nil)# B+ Y W$ [+ c
- (setq sortlist nil)8 `( Y" R; C# ^' u8 S
- (setq ltype_number 1)
; E8 K/ `1 y. W. Z4 j9 ~1 f# v7 J; _ - (setq ltlist (tblnext "LTYPE" T))
* R8 Y0 n7 z' `- ` - ;;(setq ltname (cdr (assoc 2 ltlist)))) q, L) V# e$ ~, Z" K. p. Z
- ;;(setq ltnmlst (list ltname))3 [- e5 W$ r) [3 k9 i5 @6 H
- (while ltlist
& [ L' @$ i3 ^* s0 E - ;; No xref dependent linetypes, please.
% o; ^4 ~8 I3 u D - (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)
9 V# _, \3 X6 y2 A! [1 A - (progn" B% k( U3 T1 C `
- (setq ltname (cdr (assoc 2 ltlist)))
5 ^7 G' P; |! H: f/ t* ]: U& f& m# q - (setq sortlist (cons ltname sortlist))
( H* ^" G5 o5 z" N% u) k' p! E" _ - )) {3 x+ F4 K/ n/ ^
- )# e* k5 x- n! a; V( _# Q* c
- ;; Get the next linetype.
' z' d+ M. d. v# U4 M; c) [" n - (setq ltlist (tblnext "LTYPE"))
) }3 _! Y7 m+ e p# V. F - 5 _; P l9 k4 V/ d
- ;; Not dead message...2 M7 }) |9 `4 k# r9 v3 B3 Z5 I6 @
- (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))1 K$ v2 W/ m7 z, z- E# J5 E- K
- (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))
) o* b! R' [3 y+ b& [2 y2 I. a$ y - )! ?) _0 Y; h/ Q, S5 Q
- (setq ltype_number (1+ ltype_number))
1 U7 a- a( o1 v( [2 {# {+ E
6 Q) y4 V# X% D3 ]% Q" m- x- )5 {: P' E9 b+ X& L* R4 k7 b; G
- + H3 [3 b# V3 X0 P- i8 X) i
- ;; Remove Collecting message.
, q' w; f& M6 D7 o0 k - (set_tile "error" "") y9 G# V5 c2 `. D8 t4 p/ J8 z
- ) \& N4 I7 K( I! j% n
- ;; Sort based on maxsort." S5 v, v. m1 t5 ?
- (if (>= (getvar "maxsort") (length sortlist))6 X9 a Y% n U* [1 f
- (progn. {$ k$ q0 w6 Z' K- u! A( r4 |
- (if (> ltype_number 50)
! M* F6 z/ F2 F( l4 A3 W - (set_tile "error" "Sorting...")
5 D. x F1 \$ l+ ]3 |2 [* ^% y- R& w - )5 h" O% t3 P0 N: x1 ^2 c$ a
- (setq sortlist (acad_strlsort sortlist)) [: j9 ]/ N* |; G/ q8 p
- )& R# @2 A0 r8 B+ C( O4 Y0 |
- (setq sortlist (reverse sortlist))
|) O* n' _: L8 J - )
, F R" G7 Z; m - (set_tile "error" "")9 m+ s6 j c/ W$ I5 |
- (setq ltnmlst sortlist)
, G, }- w }3 n9 a Z+ q4 z - ' r# U2 s* a8 {" Z/ w/ e
- (foreach ltname ltnmlst' J, w- j( f0 h, q( o3 s/ V$ S
- (setq ltlist (tblsearch "LTYPE" ltname))/ z. P* A: e5 u4 |, P9 D
- (if (= ltname "CONTINUOUS")
9 G1 [* J, x2 ~# Y$ L1 \. b - (setq mdashlist (append mdashlist (list "CONT"))); E7 A" r$ [! S" C9 c, T- M
- (setq mdashlist0 c8 P( o, K& S' N
- (append mdashlist (list (add_mdash ltlist)))& l1 p: h" H! V% }& N0 ^
- )- w8 X: w7 Y* R* Z
- )
0 \0 _" b D+ `# K F$ }% v& y - )7 e" \0 V+ f3 @5 U* a
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))( `5 K1 R3 L- i% f: X# p9 e* G
- (setq mdashlist (cons nil mdashlist))( T6 a9 n9 K8 U3 Q
- (setq ltnmlst (cons "BYLAYER" ltnmlst)), @7 f" z$ C0 \' ]8 K6 T
- (setq mdashlist (cons nil mdashlist))3 a) O$ a4 A( V9 S' b. m( M
- )
( R# ^- v b9 O6 x - ;;. R5 k, T$ z' B) d6 {. F# ~2 U
- ;; Get all the group code 49 values for a linetype and put them in a list
5 b* U9 r7 ^7 L, F+ d" U$ S4 l - ;; (pen-up, pen-down info).; W* B7 `- v' ]! ~
- ;;
& i- N& K3 x% }% V# L: ?) l - (defun add_mdash (ltlist1 / dashlist assoclist dashsize)2 V X% R6 n7 o8 [
- (setq dashlist nil)
* j! E; {* d z! r0 K+ q3 } - (while (setq assoclist (car ltlist1))
9 K! ^+ u) e/ G" m, b( w - (if (= (car assoclist) 49)/ B4 D$ ] O& D( H1 l9 B
- (progn
8 u* |6 q: n+ E8 V - (setq dashsize (cdr assoclist))
# t' D5 ?' F& E; |0 b - (setq dashlist (cons dashsize dashlist)). v5 a r: O h8 V
- )
9 r/ d' u6 e; q: q& A( a$ e - )+ ~. v7 a& ~8 c7 D6 x
- (setq ltlist1 (cdr ltlist1)), y% @, ` `- J+ w
- )
8 j) _0 X _* U( h+ t - (setq dashlist (reverse dashlist))
4 D# e8 t- t$ @% @6 d+ f# c: x# c - )
8 a: y+ h1 b) {; ? - ;;
7 @# O; w9 y3 o1 x: |' R - ;; Color a tile, draw linetype, and draw a border around it' d' c: Q2 ^4 g* ]$ e
- ;;
7 ]8 ^. H$ a- L - (defun col_tile (tile color patlist / x y)' K1 O% V y7 g9 r' c0 I
- (setq x (dimx_tile tile))
+ W5 N8 t4 E2 _3 a - (setq y (dimy_tile tile))7 d6 i. G& y) r0 g1 z# e" v0 N
- (start_image tile)& Z' Q7 i4 |( Y! S
- (fill_image 0 0 x y color)+ v& i' r' H2 m# x( k$ y. n
- (if (= color 7)
! I9 v1 ~2 t6 D. j - (progn( s8 ^6 A# O9 W _ q/ e7 Z
- (if patlist (drawpattern x (/ y 2) patlist 0))
! w: f6 Z0 g5 {, _2 N) P. x0 x; w - (tile_rect 0 0 x y 0)
6 U6 k. Q, B/ C% X1 a - )
, b8 w+ `6 l, I) M - (progn
/ t; j& y( [% h - (if patlist (drawpattern x (/ y 2) patlist 7)) ?! v, H9 F# I0 G
- (tile_rect 0 0 x y 7)
/ X* u: ]. m0 e) k+ B6 m+ w! k1 M - )
! M* i a V3 X/ _ - )/ r8 j7 u$ f: J, b) @- l9 U
- (end_image)( @. m/ A5 Y3 ?- a4 g5 `6 m
- )
r6 g" T. Q7 @ - ;;2 U, x% w2 y; a' r/ ^
- ;; Draw a border around a tile
- G8 s% p" h" K: v* i - ;; W2 E1 i! p q1 W9 @
- (defun tile_rect (x1 y1 x2 y2 color)( u" a% V3 o5 B" q7 {- H
- (setq x2 (- x2 1))1 }5 q) e% q! d* ]
- (setq y2 (- y2 1))
- k( a" s+ H) n7 b/ g - (vector_image x1 y1 x2 y1 color)2 v3 b' s( c" Y
- (vector_image x2 y1 x2 y2 color)3 j9 Y( P' p" G7 {' ?% s, r3 }
- (vector_image x2 y2 x1 y2 color)
& T$ {; h/ m) y8 }9 G - (vector_image x1 y2 x1 y1 color)
/ L' r6 x# P. M, b1 J( b+ U. C - )
4 F6 k3 k* ]; H. s; ^5 X, a* t' q - ;;
[8 M+ @2 g& ^/ f* p - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image# H- p/ e4 u+ N( P2 j# l
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a" _+ Z( j1 p1 ~& q, U8 j8 T, d
- ;; list of numbers that define the linetype, and color is the color of the
6 b( q$ p9 F$ I5 t - ;; tile.- E9 {$ Y C8 P/ a" {, |- o7 T
- ;;! Q+ y1 Z, ]1 c1 Y
- (defun drawpattern (boxlength y2 pattern color / x1 x26 \+ w( t1 K( ]4 T4 m ]
- patlist dash)
7 X7 P' `! {& X b+ m1 n6 X4 Z - (setq x1 0 x2 0)
- U5 c% T! N5 y4 N - (setq patlist pattern)) C, i9 H, ]: s3 p; B
- (setq fx 30)
, I, H7 |- u- k0 q4 F3 W/ m - (if (= patlist "CONT")
/ G5 \8 t/ R1 A9 }% t4 p - (progn (setq dash boxlength)3 Q5 H3 _1 i, c2 d" `
- (vi)
& w) g2 E+ K8 R0 ?+ U7 G& n - (setq x1 boxlength)
! i' E+ ^) G$ x9 z1 }6 [* a - ), p7 {5 }& B ^3 `9 e+ N. u
- (foreach dash patlist2 V0 w8 T( H2 l8 D# ?- _$ e3 Q
- (if (> (abs dash) 2.5)
: I# g. X4 f% Q/ _0 E$ Y - (setq fx 2)
. L7 l9 I/ @+ A3 ? - )
! q) a) P3 |6 H- H - )4 n; b8 b9 h r: M- w
- )
5 Q2 L' ?) Q5 Y$ d5 c$ { - (while (< x1 boxlength)
3 y5 p/ I" M+ D' ~ - (if (setq dash (car patlist))) v# d3 V: ^3 E% R6 H) J) \3 d
- (progn; {! |9 R* d& s% E: x
- (setq dash (fix (* fx dash)))8 r0 d) r. b+ S) m; x4 r# t' i/ I1 `
- (cond
) G$ H0 O* H% _1 \ - ((= dash 0) (setq dash 1) (vi))
1 y+ |( b( K3 p! M! x - ((> dash 0) (vi))
% r. Z6 Y! W, _ - (T
# \$ n$ Q0 C- K& V) b4 i - (if (< (abs dash) 2)
9 u. ]+ |$ D; D9 _ Y, L& z7 w - (setq dash 2)
. l: j7 q; a* G6 f( v - )
: C S8 k* ^6 u - (setq x2 (+ x2 (abs dash)))& P% x$ ~% v7 c' {! V
- )/ d3 A @4 a! x2 [7 i6 Z) N
- )
9 m# \9 I. O, @/ @+ _! x/ w5 d - (setq patlist (cdr patlist))
- t. X9 x7 q% y, [* T - (setq x1 x2)! \; { `) s$ v0 k' K
- )
- N$ s& \% K$ h7 p2 n - (setq patlist pattern)
, m' w9 f4 b$ L4 a% }8 A- T - )4 A. z. V! T1 ^# K7 f( d% Z
- )
* W5 ~7 m$ D# L/ ~; |0 }, _ - )
# t1 n/ X, L I9 b# v4 ?! C# f U/ U - ;;/ ]' u! T( }5 Q; j& P0 a
- ;; Determain state of xclip
6 r" w# j2 f( j' l# E0 J - ;; Returns the group 71 value of the spacial filter dictionary. C) R) }& L, a) ]7 g9 i0 w2 _! R
- ;; If the entity doesn't have a spacial filter dictionary, this
8 t' O8 T+ C, N: @% H- r5 c+ m - ;; returns 0. If it does it will return 0 or 1 depending on the0 h$ F q- i+ h# \
- ;; current setting of the state of the clipping visibility.
+ [& ~! `6 C2 i+ K! C - ;;' M2 {: @" {6 `9 [$ N
- (defun xclipon(elist)! i$ A- o0 ?. @' q4 i, Y; ?* n8 }
- (setq hasclip T)
% d8 c3 y3 C( ^3 z) s$ E$ r) B- ` - (if (/= (assoc 360 elist) nil)' g5 F. g C7 E- M* I4 G
- (progn
B' s! M! |- C9 m7 O3 _5 @2 f8 c: R1 d - (setq tmp (entget(cdr(assoc 360 elist))))
' m- k0 }* C9 w- Q+ @ - (if (/= nil (assoc 360 tmp)), p2 g/ ]0 l/ Y" @4 q0 O# j
- (progn
" h0 i+ c8 D' T) f - (setq tmp (entget(cdr(assoc 360 tmp))))
0 S# d& ?* w* h - (if (/= nil (assoc 360 tmp))% q' \; z3 T. r$ a
- (progn: b) C- q% X+ |5 s0 E- N& ^
- (setq tmp (entget(cdr(assoc 360 tmp))))
G( I$ u& U: Z" l4 W" Y, F - (if (/= nil (assoc 71 tmp))' U% L6 U/ E1 [& X! E8 f4 w
- (cdr(assoc 71 tmp))
' O+ E9 x, P0 G W ` - (progn % y1 f8 _; `0 W$ Q
- (setq hasclip nil)# U* s" L! i' E
- (eval 0)+ w! d8 _# ]# `) S. p6 n: n
- ), v6 {( C4 X2 g. f I
- ) @6 R& [# e3 t9 S P
- )) U3 B9 p+ _- p U1 t4 B
- (progn # G- H$ w9 v: L1 x0 U
- (setq hasclip nil)* l$ }- G; c5 W2 [
- (eval 0)6 V: Y% L+ G$ K6 E2 }! {3 G
- )( Z1 S4 t, c; k0 ]* d/ e; u8 d
- )" A! G2 u* i0 }' Y
- )
5 s5 m6 D" P- y6 s) M - (progn
5 v4 G$ H2 O% C# _ H, C- L' c* u4 Q - (setq hasclip nil)
- h' w e+ o+ N2 a - (eval 0)+ _- Z$ O4 T* X' O( a, p
- ); B4 s. y x" y/ ^8 w0 o
- )
0 C/ R; ?& w- f! z9 c0 Z" W A! k - )
" O7 b \$ _! p8 v6 T* X, ~. v - (progn : H+ j+ }$ @) o! X( H+ t8 f5 R2 M
- (setq hasclip nil)2 k2 a4 t5 Q2 M) F
- (eval 0)- |# I: G( `; ]) @5 {* W4 n
- )% T2 k9 X, E! L4 T- R2 x& s
- )! c, K$ o! \3 D4 t. A
- )
* @; o0 X0 W( C7 d) d - ;;
0 |3 }( e( A1 Y/ F' v0 G* ? - ;; Draw a dash or dot in image tile5 U' Y* R4 ~6 v4 I0 L' Z0 `" B* ^
- ;;# n F# M. Y6 b3 ?: L" | T0 N: q
- (defun vi ()/ \- S1 i5 b6 a% e. r' ]
- (setq x2 (+ x2 dash))3 Z& Z! Y: u/ @! Y4 N# p( T
- (vector_image x1 y2 x2 y2 color): }+ }7 H* R/ D x' _ S5 U4 c
- )0 g7 O$ F: s! M7 d% b2 U
- ;;" n! y, M% f/ ]) {4 k& w$ u& G
- ;; If an item is a member of the list, then return its index number, else" c' |* r& T" x5 k& ~
- ;; return nil.# m1 s- W( |1 M- E! \& E
- ;;
, n# y" s" z0 |" K5 a' X) I% V - (defun getindex (item itemlist / m n) ?$ S, S( S9 u: I5 R' |( k
- (setq n (length itemlist))( h. [+ v R/ d' h5 ^/ ?
- (if (> (setq m (length (member item itemlist))) 0)
8 Q7 ^- r: j# ^% j! I - (- n m)6 I) \ u, e/ C/ d7 F5 a
- nil
- y& X; b+ q1 C+ O' I3 v - )
7 s' p# f9 f: W& P% u8 O - )# G. y& e1 w: k! r0 ]% P
- ;;1 n9 u, B0 Q4 B4 M- V
- ;; This function is called if the linetype is set "BYLAYER". It finds the
) n+ f- |0 B0 t8 l/ G - ;; ltype of the layer so it can be displayed beside the linetype button.1 e/ X. x* U$ M
- ;;
9 F7 n; I; ^3 d$ P% {$ _* K& g% m - (defun bylayer_lt (/ layname layinfo ltype)- S- o$ {7 t/ w- l. I5 C
- (if lay-idx" h/ I' u; a- b$ C9 o8 v2 K X
- (progn
8 |9 U! A5 U$ N- I - (setq layname (nth lay-idx laynmlst))) M" O7 X5 P5 M: Z9 V6 \
- (setq layinfo (tblsearch "layer" layname))% [9 v1 ~+ h; V3 Z3 R
- (setq ltype (cdr (assoc 6 layinfo))); K8 A/ t, V+ _2 [: F% G5 Q
- "BYLAYER"
) I, H. G9 }" ` - )
: U" A9 L) ~: }/ f i/ e - "BYLAYER"4 S; w |9 W9 O* u( \ U4 x" {
- )
4 U, z/ U% H& Y - )
8 K% W4 m8 B% U: a! H$ I3 e. U) V - ;;; U2 y& q1 e& q z& [+ D* @) d
- ;; This function is called if the color is set "BYLAYER". It finds the color$ R" r" ^" D: a* i/ f
- ;; of the layer so it can be displayed beside the color button.
! a. D. d( D, T2 K& j1 p - ;;
" Y: Y; x; V! F; \: Y9 I2 b1 r - (defun bylayer_col (/ layname layinfo color)$ H# G6 @5 }& n7 R$ A- c# k
- (setq layinfo (tblsearch "layer" elayer))
4 j" v1 J' W- S4 \; o l" B0 A - (setq color (abs (cdr (assoc 62 layinfo))))# \1 `% c: S7 s3 r' v! S
- )7 ^5 u' t* L& p9 b2 a$ n
- ;;: |1 s: z& F ]8 g- e* t0 C
- ;; Used to set the color name in layer subdialogue. K3 V7 S4 D1 } m! z& K
- ;;
5 ]; Y0 e' R! j0 h- w- B) L1 p - (defun colorname (colnum / cn)
# J: d& F$ `" o* s; W0 x3 N0 B& z - (setq cn (abs colnum))
& n o/ n1 R8 w! h4 _8 {* r( i - (cond ((= cn 1) "red") _" z' ~- b7 v& n0 ^
- ((= cn 2) "yellow")/ C& r6 q: _4 Z( G( Y
- ((= cn 3) "green")( J2 K8 a& A" j5 U& U2 W
- ((= cn 4) "cyan")/ A. _5 a+ j/ P$ H0 b+ m% C* w
- ((= cn 5) "blue")& @+ ]6 t; i0 k! h b( H
- ((= cn 6) "magenta")2 }) z3 n/ x/ Y# n" J
- ((= cn 7) "white")6 H9 e# k4 W) t; m" m$ S
- (T (itoa cn))- f& \% u2 b: Z9 {: ^
- )* A9 Y: |" C: j2 p9 M! m
- )3 P2 w: O; Q J7 G3 {9 i, u; R" I
- ;;
5 L0 ]) c2 ]$ d" y - ;; If their is no error message, then close the dialogue.
% b. }' G2 I! {* O/ k - ;;' ~9 T& ~+ e4 w( O/ Y9 s; O' o
- (defun dismiss_dialog (action)& @2 y8 I$ u: e5 v9 q
- (if (= action 0)
# V( @( K! o. }9 }' I- s5 v - (done_dialog 0)
& S H ~2 \! `6 M7 ]4 | - (if (= (get_tile "error") ""): }$ h8 B- D) X" D2 z3 b. W4 S& d1 i7 O
- (done_dialog action)' O& f9 S( b, _; }3 p
- ). z- I1 z) G* I' _+ _. o v8 k; K
- )
3 @; @- i I, n8 w) h - )
6 `7 T2 m/ F' h/ H. ?5 y9 r" m - ) T8 Y( i/ G4 ]/ U% u- `2 ?1 b
- (defun test_ok ()$ n) y3 _) x( R: E
- (if (= (get_tile "error") "")- e5 e8 e0 ^8 f, W7 j3 F# y) H6 _
- (done_dialog 1)3 |9 O6 p, o/ {3 u
- )* v& ^; E0 Z3 S' x% b! Z @; k
- )& X+ `6 z# l: z+ G" @9 _* b9 `' P
- ) |1 S# L2 c. s8 n; @* ?" O
- (defun cancel ()1 Y; n8 [1 L2 Y' H
- (done_dialog 0)/ z% a# J, O: U+ K( r
- )
/ ]+ O$ {; M# T
$ o" p+ A& z# y$ N- ;;; ======================================================================= H* }: J6 ~: E4 ]4 ^
- ;;; SETUP layer and linetype lists for application, and initialize all, y+ O h0 x7 [
- ;;; program variables.. Q2 t" ]# h+ F5 c( I0 b/ d
# M8 ~ h# n7 O/ |3 E! t: E4 B: R2 E- (setq elist (entget ename)
7 s0 p; F- H2 ^ - old-elist elist8 r7 O7 E+ a6 A# Y& h% C/ `
- modlist elist
, P$ H8 c( o% s0 T, ` - etype (strcase (cdr (assoc 0 elist)))( M; |* d; B4 F& q5 ]
- ecolor (cdr (assoc 62 elist))
2 p- w/ B( E) W1 _) M - elayer (cdr (assoc 8 elist))& e9 O2 w0 X" H G6 C6 }3 d
- eltscale (cdr (assoc 48 elist))
6 @7 w$ O$ f5 J4 u. N - ethickness (cdr (assoc 39 elist))% i/ o2 Q {! g( O
- eltype (cdr (assoc 6 elist))" i3 ?% C$ M) c& d
- )
. j# b) C% j$ N: G: p - (if (= (assoc 210 elist) nil)0 W1 Y( s U# k7 H+ W% H1 A
- (setq extru (list 0.0 0.0 1.0))
) k! i z: ?2 [' y0 E" k8 ?/ y - (setq extru (cdr (assoc 210 elist))): K' K) O' ]8 K- e, q0 ]5 o
- )( Y1 Y! W. t V* o, S$ G {
- . z* C( z/ V% ?# C3 C
- (if (not ecolor) (setq ecolor 256))9 f. t2 _# |1 I" e' V
- (if (not eltype) (setq eltype "BYLAYER")); b* r( M1 [7 J
- (if (not ethickness) (setq ethickness 0))
H4 x5 b1 l# W - (if (not eltscale) (setq eltscale 1))
/ n2 a$ {, E( R* _8 P - ) ; end ddmodify_init
5 b) X' P8 P; P& E! k - : h9 m0 P# G T& Z. x# I
- ;;; --------------------------------------------------------------------------
9 S3 l( a+ N4 Z& Q+ X - ;;; Function: DDMODIFY_SELECT# c. E+ t B; ]% e* S
- ;;;
' t! q8 D! G1 ], J# x" J( r7 c - ;;; Object aquisition function.9 x" Z7 Y H0 ]( ^! H8 b
- ;;;
7 _8 P* _8 H. [5 a% j& u - ;;; (ddmodify_select), X) K) `* M6 P: b/ W
- ;;;
+ k) j" c# g( g8 h2 N4 I - ;;; Obtains object to be modified, in one of three ways:
* ]! q5 X- F! w& _7 ~ - ;;;
; Y+ F* ~; {8 U9 m% C5 t1 j# \ - ;;; 1 - Autoselected.
# u, m5 h1 a! I1 [' t7 g - ;;; 2 - Prompted for.
3 i0 f. V7 _7 A# a, M, H8 j A - ;;; 3 - Passed as an argument in a call to (ddmodify <ename> )
$ l& t6 m+ ~6 l - ;;;. b1 d% A. ]/ X
- ;;; The (ddmodify_select) function also sets the value of the
7 }: x) h! {$ P/ q' j/ P; m* G8 z - ;;; global symbol AI_SELTYPE to one of the above three values to
& E) k6 L! i, F - ;;; indicate the method thru which the object was aquired.
: R( w: \& T" [2 v. t; l& { - ;;;
- H9 {$ L+ s- C* d/ I: r) ~2 U; h - ;;; This value can be useful to applications that want to RESTORE [# r* W0 Y) W+ _* L4 U
- ;;; an object that was autoselected to its previous selected state: i; r, D) E/ c# N
- ;;; when they terminate, although there doesn't appear to be any: Q/ L0 t. C6 d0 q" ~8 g: Q% B
- ;;; way to do this right now.3 w# e0 K- o1 I) E6 h K
! `/ H6 K: c: S6 y; F$ F- e- (defun ddmodify_select ()
( n2 r2 C4 p2 Q* A( I - (cond
, o# M0 i* c4 T9 ?8 n - ( ename ; (ddmodify) was called
5 v# y! c, M; n$ x) |+ W0 g) z4 Z - (cond ; with an <ename> argument4 L, @. Q/ q. g
- ( (entget ename) ; If object is non-deleted; C* B5 z+ H$ W
- (setq ai_seltype 3) ; then return its ename.' o% X" W( S" e+ ^' d& X1 |9 d' w
- (ai_return ename))))
& Y) M0 L; j9 T* ] - - B& M, D9 w9 q- h. |4 `8 G+ q
- ;; return auto-selected , see ai_utils.lsp3 b) [+ M" e" V ~) a6 ~
- ( (ai_autossget1 "\nSelect one object to modify: "))' p( _' w- H% N$ U) {+ J+ S/ e
- n W0 Q: z: S9 o3 t6 A5 h, I- (t (princ "\nNothing selected.")
7 n9 _8 w% J$ i - (ai_return nil))$ K% t/ ^" \$ ]& b+ }
- )
7 G- \* ^' C) f" t4 S# | - )
$ y8 G; P! q: U/ q/ m- b - ) t" d0 R' x( n
- ;;; ============= Command line interface function =======================5 T9 b7 J' D2 Q- ?4 j# z% m! n
- 0 V# D+ p+ _ J# g1 k# e" v2 u
- (defun C:MMO ()
5 t: I" L. k1 s8 p- T6 \, G - (ddmodify nil)1 m' [; l/ c! f: e
- (princ)! u6 q* ^) o( b# l2 ^, ?' J
- ) j2 t( Q. i. ]
; _5 n* V) g9 p' |* w- ;;; ================== (ddmodify) - Main program ========================3 L7 g5 p) L% f: O3 }
- ;;;$ ?0 y4 J1 f& J' G- N3 q3 j+ _1 {
- ;;; (ddmodify <ename> )8 I8 F3 Z* C, \" b
- ;;;- _; ]4 M* }* K4 p( U1 y- V
- ;;; Main program function, callable as a subroutine.# o& ~ j" G2 n" l% u
- ;;;; n0 I1 |: J2 a) o% A' ~) b
- ;;; <ename> = object name of the object to modify.
4 o/ d5 } K: u! w - ;;;
2 w+ m: u/ O# }, X3 r - ;;; If <ename> is nil, then user is prompted to select
' l; A6 Q! x' l2 O+ a: T - ;;; the object interactively.9 Y3 e4 F% P# X9 h
- ;;;" ^1 h$ r7 {+ q7 `/ `& m5 n; K( I
- ;;; Before (ddmodify) can be called as a subroutine, it must6 K# [" b3 x& n/ e% p6 t% ~% y
- ;;; be loaded first. It is up to the calling application to) b+ C7 W- x o/ f
- ;;; first determine this, and load it if necessary.) E* K$ c1 M# E6 a. @
7 K: J, m! U3 q. j5 t8 k- |% B4 i8 u' r
- (defun ddmodify (ename /
' Y" b0 @5 B, ?. X& D% D - 2ndpt ell_calc_area move_pt1 templist
. Q1 Y1 Q9 r1 [, A5 y! a* z - add_mdash ell_tile n tempmod9 Q ]1 T& e1 O* r. k
- alipt eltscale name tempst_ang
! H0 ?9 p+ {+ ?' ?* e' p2 {. T - ang eltype newpoint test_ok- r* L S( A7 _4 Z- `. h
- arc_calc emod next text
6 Q5 o8 w0 `6 X9 j - arclen end_ang next_vertex th-value' s+ F) H6 i* n( m$ Z) B
- assoclist endpt obl tile6 E: o q: _, _* e
- atprompt errchk off tile_rect
8 T6 I5 T( W& s! k1 ~2 P8 R - attag ethickness old_majrad tilemode
+ V5 E2 }' R& ]9 r* k - attprompt etype old-closed totang! G, f& f9 H, M: `/ Z& b
- bit extru old-closedm tstyle
% H. v4 ~1 m5 ` - bit1 fchk old-closedn u, j: ]/ o# d2 O: u# q4 _5 j
- bit-10 first-10-rec old-elist undo_init! X; z Q$ ?8 p$ U& E0 ^3 a. O
- bit-11 first-10-time olderr upsd
; X0 }9 e* b& V; ~* e! M - bit2 first-11-rec old-fit v
7 A5 R9 T' i, o! Y6 e - bit3 first-11-time old-idx va
4 q2 u# I9 g' u% d* ~5 { - bit4 fit oldlist value+ k/ g* ]" n# B' z; X( s
- bit70 frozth old-spltype ver_4# \% n# V9 u1 Y- d9 w+ l- I
- bit-70 f-vis old-u ver_ang1. D- y8 V' [% k( J4 e
- bit75 fx old-v ver_ang2
4 q% Z% K; q' A9 }3 A - bk-up get_color on ver_col* k0 m7 W5 v3 c6 T5 A R5 F: A; o
- bkwd getcolor onoff ver_colsp; _ L# i8 k9 Z
- boxlength getindex on-off ver_eangle2 \3 T9 ]- G. y' d' f E
- bylayer_col getlayer patlist ver_hght7 R$ u7 C, u* R" F+ q8 h8 ?$ H; {9 o
- bylayer_lt getltype pattern ver_majrad7 p2 E$ _) I: b w _3 n
- calc getthickness pltype ver_obl# o1 o" Q0 ]7 z0 @# [0 i
- cancel globals polytype ver_pt1
1 i! m9 c3 e# ?2 [1 j1 K& z, z& I - cir_calc ha pre ver_pt2
; U. O) F: u0 u; P M - closed ha-prev proplist ver_pt3
5 m; L7 F2 \3 _" N- s3 g7 F - closedm help_entry pt ver_pt4 @% E8 H* O8 v" p% | L* E6 s# G& m, C, t
- closedn hght pt1 ver_rad
+ @& F1 M R8 b' \/ y' A0 ? - cmd icvp pt1_eq_pt2 ver_rot6 W9 E5 x1 x+ E0 i
- cn image_add_vector pt2 ver_row
' I7 l2 V Q; d5 S$ u4 O8 W+ F! D - cname image_clean_variables pt3 ver_rowsp2 g8 s, F: O) w% v3 X: \, a! w
- cntl-pt-indicator image_cross_product pt4 ver_tag, _9 w/ K" @/ c) k3 a2 b K
- code_71 image_disp_opt ptype ver_u: e: L' v& o' i- c. e6 k; Y8 k
- col_tile image_dot_product radius ver_v
6 K, m, u2 o3 C - col-idx image_normalize_vector rational_spl_flag ver_wid* f) r1 b8 C3 X. B! p6 O5 N& _! X
- colname image_rotate_vector reset ver_x1
$ U2 K/ n. F% M% A - colnmlst image_scale reset_flag ver_x27 K; V- M! I) `% k: T3 [
- colnolst image_scale_vector reset_lay ver_x3 h# Q( H1 L1 ~& q3 n
- colnum image_update reset_lt ver_x4- v0 m" E2 h4 U
- color index reset_uv ver_xline_pt1: }0 S9 A6 j" K0 N. C
- colorname inv rot ver_xline_pt27 g5 i% p$ w. {; N. C
- colorno item rows ver_xline_x1
6 v) c4 V2 l, ]# B( d - col-sp item1 row-sp ver_xline_x2) x2 V: V: y3 k. z+ ~' q
- columns item2 rrat ver_xline_y1
- }8 r5 P9 v9 b- z5 B' h/ u" c - con itemlist s ver_xline_y2
/ ?! P0 v, s) R* j7 U6 s - coord jlist set_action_tiles ver_xline_z10 i. _- P/ l* t. i$ Z) r
- ctr jlist_act set_just_idx ver_xline_z2' ~( s, I) R# c1 W& e" p
- cur-10-rec just-idx set_tile_bk-up ver_xscl3 A5 r2 s5 l+ W/ U/ A/ n
- cur-11-rec layedit_act set_tile_cntl_pt ver_y1
3 Z2 F: L3 x2 l8 ~ - cvpname lay-idx set_tile_data_pt ver_y2
. u4 N# V/ B" |8 V8 L+ b+ p - dash layinfo set_tile_dirv ver_y3( h @1 [6 S4 ~; D; }
- dashdata laylist set_tile_edges ver_y4
' Q! y3 D' ~1 F) ~0 r* g: T; l - dashlist laylist_act set_tile_endang ver_yscl+ D+ D D; H3 o" C+ q' v
- dashsize layname set_tile_hght ver_z1$ a% l/ ^% F3 P. i( |) C# y
- data-pt-indicator laynmlst set_tile_icvp ver_z2
7 F( ?0 p( M5 r7 S$ ? - dcl_id layvalue set_tile_just ver_z3
) P: f$ P1 k/ L2 j8 P - dd3dface line_calc set_tile_obl ver_zscl, x) W' i( E* R+ |7 S
- dd3dsolid linetype set_tile_prompt verify_a
& \! O2 K3 |7 J1 c - ddarc list1 set_tile_props verify_d
- H9 u1 R, O N* E - ddblock longlist set_tile_pt1 verify_i' v. t h; Q) v" K2 L
- ddbody ltabstr set_tile_pt2 verify_xline
' e9 V k$ T5 b; d i - ddcircle ltedit_act set_tile_pt3 vfy% C, _, |, S3 D1 g! c
- ddellipse ltidx set_tile_pt4 vi$ Q9 K5 D+ X. q. S! d* [4 f2 n: l
- ddgetprompt lt-idx set_tile_rad vlist
4 t4 S, { ~. D3 D8 y! E! F - ddgettext ltlist set_tile_rc vname
, P7 e3 Q4 o4 E. ~ - ddimage ltlist_act set_tile_rot vpf
; u! U! c* P5 P; f# s* ? - ddimen ltlist1 set_tile_scale vpid
, A& T; O5 j7 p; W, R1 j1 Q/ y - ddleader ltname set_tile_spline_props vpldata1 H. C Q. p# f+ e1 ?- R
- ddline ltnmlst set_tile_stang vpn; Y5 ^& P% [! j8 x0 s8 ?1 J% T
- ddlist ltvalue set_tile_style vpt, ]4 }- v# w! T0 ~: O
- ddmline ltype set_tile_tag which_tiles* E, `" V' V: ^3 |: l) I# g
- ddmodify_err m set_tile_text wid
0 T ^) ]2 I' X" m% @' X - ddmtext majrad set_tile_vpt x
- `$ B( f- o# \9 @& ~ - ddpline make_lay_lists set_tile_wid x15 G( V/ U7 Y0 ]- E5 e: b8 z5 s
- ddpoint make_lt_lists set_tile_xline_pt1 x2
" T8 U4 v- ~) K! Z# u - ddray mdashlist set_tile_xline_pt2 x3
4 t a: M- q( [) i3 `" W - ddregion minrad setcolor x4+ @$ {8 Q6 p. J5 P; I
- ddshape modify_3dface shght xdlist
+ T$ F, L, X% Q - ddsolid modify_3dsolid showpt xline_pt19 t) \+ r9 c! x3 h1 r5 F
- ddspline modify_arc size xline_pt2
( D: i1 l6 _! m9 q# j; D - ddtext modify_block slist xline_x1
4 r1 p! `! j" `' `9 g) ? - ddvport modify_body sname xline_x2
. d; l* P& L, M. j7 c) H! J0 y - ddxline modify_circle sortlist xline_y11 e* I8 }7 a8 F, h) C
- denom modify_ellipse spltype xline_y2
" B/ c9 a2 v3 t! Z( W; R - dialog-state modify_image ss xline_z19 e- f7 h* c. h O6 \7 O/ D2 v
- dir_pt modify_line st_ang xline_z2
7 [$ u4 g- b+ ~* R0 t1 } - dir_ptx modify_mline stpt xscale
4 f- Z+ Q( J6 i, g, v, ~" ~ - dir_pty modify_mtext style_act xx
9 t" H8 B9 n. e. }$ @ - dir_ptz modify_point style-idx y! ~. \3 A7 e1 p* f6 h$ v3 p# I
- dismiss_dialog modify_polyline style-list y14 G9 {& G0 j- w8 X
- drawpattern modify_prop_geom tagval y2
) E, d; B7 F( L" y7 K' w' z - echo modify_properties temp y3
# W. k+ f! c3 O$ H - ecolor modify_ray temp_color y4
8 W; O" M0 _( N - edge1 modify_region temp_dir_x yscale
7 e& z% M" P1 l! n! U. m+ U - edge2 modify_shape temp_dir_y yy
$ A: p" T/ K6 d/ E$ z - edge3 modify_solid temp_dir_z z1
+ M' ?2 m5 Y& w9 ^% h% a8 Y - edge4 modify_spline temp_xline_pt1 z2
3 j7 [2 n4 Z$ s) T! n1 p - edgetest modify_text temp_xline_x1 z3
) E" b9 Y5 b5 a6 J* h2 X - elayer modify_vport temp_xline_y1 z4
& S0 l7 i- U, E0 a, T - elist modify_xline temp_xline_z1 zscale
; [5 [; S% h8 n8 B: W- M" {- D - ell_calc modlist tempend_eang zz
( u3 i; s5 L7 S) c! V - dir-idx safe_ddedit ver_MtextWidth xcliponoff
7 O1 ]' _0 m2 B/ ` - MText_style* o k4 j& w- J$ k$ ]5 S" C
- )
8 U. p0 z8 T- ]3 J! V* d
1 M# C+ N" J3 B1 d- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
1 O" }! p8 P O. K6 U, a: v7 J) h - old_error *error* ; save current error function
1 C/ w& c ]" L2 ~ - *error* ai_error ; new error function
& ^! ~' O2 |! V+ S9 g( ] - )" A7 m- k+ j$ T
- _5 \$ C% \, z. ]5 |, A1 Y: X5 N h
- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle; e2 z n' R Y' j
- (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection
( v! E: {9 [+ x, Y9 b - (setvar "pickstyle" new_pickstyle) ; bit and set to new value1 G+ t0 B; A; [0 t- d! [! f" Z
+ v I; G/ U) L- M4 q9 T6 V- b- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)
2 }" ^, W0 y# }+ [5 x* V" \ - (t 1))); g+ ]$ `( D6 h( t
- (cond3 d1 h* ]. f# b' H
- ( (not (ai_notrans))) ; Not transparent?
& Z: ~0 l2 c1 B6 @& q/ | - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
, L& M1 R4 }( _' r. n: _7 O9 I - ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?, @# l2 x( s1 z3 {
- ( (not (setq ename (ddmodify_select)))) ; object to modify?
0 @6 \& D- v2 c: W1 S - 3 R8 g7 H. t! H# A! Z* t- D
- (t (ai_undo_push)
. z9 _; b4 q5 O! C) _7 D - (ddmodify_init) ; everything okay, proceed.9 e$ M$ S) _; Q- e
- (cond
7 E N$ t* M4 m, U( a! U - ((= etype "LEADER")
; T5 T6 [+ u7 N: g- |$ b - (setq help_entry "modify_Leader_dialog"), N8 d# D9 N/ n Z6 v$ E" j
- (ddleader)0 T4 I+ P9 Q0 _! P7 n9 j, ^7 o& w
- )0 M) K2 C$ h1 _2 L$ v+ G
- ((= etype "ARC")% A" k' R+ x6 p4 b: S9 [
- (setq help_entry "modify_Arc_dialog")) m6 ]* h# P7 M) q$ t
- (ddarc)
, p: k9 }! N, n# L4 C, @ - )
6 W- j$ Y& N' Y0 l - ((= etype "ATTDEF")
& E. \) h% v0 N( k: O7 `* d- N - (setq help_entry "modify_Attribute_Definition_dialog")5 i. ]0 H% u! S1 u( c
- (ddtext)
1 V- ^+ x! F( E& ~6 g. ] - )
2 j6 M0 g" T' G0 w' J& q9 O0 O) q - ((= etype "CIRCLE")
2 ?9 `0 N3 w. h! K9 ^% l - (setq help_entry "modify_Circle_dialog")2 c7 Z6 v6 }8 ?9 j8 u+ I6 Z
- (ddcircle), ^: t Y8 H0 }. ^/ k
- )1 [! |8 ^4 F2 Y3 M# m' a
- ((= etype "ELLIPSE")
) j, q A4 _/ H+ D. a2 n. ? - (setq help_entry "modify_Ellipse_dialog")
2 a. B |) F, P1 u) C - (ddellipse)
. x/ L. |! k. F! b - )4 d8 l# G; g. z# J' Q( ~
- ((= etype "3DSOLID")! G3 D& A% ~: Y0 D
- (setq help_entry "modify_3d_Solid_dialog")9 X1 q& K- Y. X- i2 i" L% R/ W. M# l
- (dd3dsolid)( Z% E$ W- I, M4 Y( o+ b
- )& z- C" E0 H0 W6 |9 c9 K6 k- q }( K6 ]
- ((= etype "BODY")
! `/ W" S+ A( f3 z. V6 V - (setq help_entry "modify_Body_dialog")
' b0 r6 G" \. ]. P - (ddbody). Y6 g/ G+ P' U
- ): w0 w7 I" C4 y+ z; p, F
- ((= etype "REGION")
. e* k" j! }- K3 o+ W( | - (setq help_entry "modify_Region_dialog")
2 N$ \$ m& e% _+ Q - (ddregion)
# R A q! W8 Z0 ?: w. a - )1 ]5 o! H5 U: [2 C( B$ z
- ((= etype "HATCH")
. j' g- ?9 @0 @$ C - (setq help_entry "modify_Hatch_dialog")+ k& C# y8 c3 r+ z1 ?+ x5 r9 E
- (ddnewhatch)3 T; s, y9 L+ s* E0 u8 k0 C
- ), M. ]% V& U/ Q. H9 S" U' j7 m+ j
- ((= etype "SPLINE")7 k* W5 f+ \! |; T- }% \
- (setq help_entry "modify_Spline_dialog")
U6 R* O' I: I; @% T& H8 ~ - (ddspline)
6 K @ H2 C( S- A Y - )
% d# M2 w& p6 m" f5 z - ((= etype "INSERT") ; see ddblock for help_entry
7 }" j( b9 r9 I9 ~" E - (ddblock). ?; f* G- b. k, ^! v2 [3 l" Q
- )- D1 D. s& v2 E. I4 _; h+ D
- ((= etype "LINE")
X) B: T1 U7 F# ?, W9 O - (setq help_entry "modify_Line_dialog")1 Z3 k$ N" P% f4 b3 Q9 W( L
- (ddline)+ y3 o- H# D$ I
- )1 O7 p4 q Z5 m& N% g2 h( N
- ((= etype "MLINE")
1 H. e2 w0 Q2 |( F$ `5 _9 V% f% S - (setq help_entry "modify_multiLine_dialog")
/ e7 ^; _8 q- R: ^* C9 k* _ - (ddmline)
+ g; E3 N) v7 V: \9 r: l - )* E' j( J/ U8 y
- ((= etype "RAY")# x7 h6 X8 j+ {
- (setq help_entry "modify_Ray_dialog")8 G6 s# P7 O- v6 {
- (ddxline) {- ^3 ^4 I* N- g: T& L
- )" l9 a' w1 b: g; ^" l" E& h; w
- ((= etype "XLINE")
9 J& \# s+ \) ]1 Y* L" M% c1 j - (setq help_entry "modify_Xline_dialog")
* j4 J/ A& N; o - (ddxline)
3 {, x4 A2 y! F! y& n; Z& J - ). }, j1 n& g- W2 u- T* L+ U
- ((= etype "POINT")* Z/ |" R! p9 \# p4 i
- (setq help_entry "modify_Point_dialog")
% h! T" a/ E6 Y - (ddpoint)
6 X1 `* U0 W8 A+ k. V - )
0 U0 D. i" V8 v! z3 U - ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))
$ N* F* l0 x9 M! ~8 n7 ~" }0 ` - (setq help_entry "modify_Polyline_dialog")( k+ Q4 S4 V1 |
- ;; If a 2D pline, check to see if it is planar to the current: p8 I1 \& a% K, [8 E+ r) F
- ;; UCS, reject if not. To see if the pline is parallel,
! h8 c$ l! L" m5 j8 ], b - ;; the 210 group (WCS) is added to the current UCS origin (WCS)
# b* R' y7 ^0 s) p# k: O# C - ;; and then converted to the current UCS and checked to see if) } B1 J5 h6 w# f1 R
- ;; it is equal to (0,0,1).
! R5 W; o: @' i: \0 g
4 o" t3 J) V* c- ;; Incase the 210 is default and not in the dxf list.
1 y" a( M/ d; ?' X9 i& { - (if (= (assoc 210 (entget ename)) nil)$ o* N* @. m8 q+ r8 g
- (ddpline)
9 y2 P9 l& J" C- ~, F - (progn4 j7 ?! J6 j' X
- (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))
9 X1 ~5 t1 G+ C5 C - (not (equal '(0.0 0.0 1.0), H9 G9 S! k- h8 z9 ]& q
- (trans (mapcar '+
: T3 T" H2 g/ X8 }1 S- z, f9 Z - (cdr (assoc 210 (entget ename)))
% C0 g- k m' k) L5 a8 B - (trans '(0.0 0.0 0.0) 1 0)4 c) q9 u+ B$ M s( |6 C
- )% L( n9 B* ]8 q. b3 x
- 0 1
* j/ O6 Q! m/ U& @$ q. o - ): e( q+ E+ x6 Z3 d& S
- 0.0000000001 ; fuzz/ t9 C- r4 L+ Z; u r2 T% H# }
- )
* Y o4 V y! h, M9 @7 R - )# ]& n" ]* D: c
- )- U' A9 Q" u6 {( x# O. x0 n
- (princ "\nThe 2D Polyline is not parallel to the current UCS.")/ m* w7 |1 c$ @7 j5 a
- (ddpline). @: m5 _2 E8 d4 l* N
- )0 J8 [* V3 \4 t' R$ x l- }
- )
, a4 _- l4 r% ?6 y - )# f& |1 L4 Z5 L1 w q5 L
- )+ N% S, p- L& t# B
- - i2 D: e/ a; q: d& j' k% j
- ((= etype "SHAPE")
" U D; e/ w- [ - (setq help_entry "modify_Shape_dialog")' M7 H; x6 @9 ~0 A
- (ddshape)
: b8 g" _% P( \ - )
' }- b5 S# z& I. R0 C" S - ((= etype "SOLID")
" q1 P( A$ ~5 g2 r/ @ - (setq help_entry "modify_Solid_dialog")
+ e" x s0 P( j! [# L - (ddsolid), ^" z& J. t- _, j7 H
- ), `8 l" U( O) i/ L
- ((= etype "TEXT")1 ]- l: f3 l& d& v3 ^0 `
- (setq help_entry "modify_Text_dialog")
5 B8 v6 @$ C% K! K( @6 z! i% { - (ddtext)6 p" ^" q0 r) M* s
- )
# U( s2 m; B. C% m3 l - ((= etype "MTEXT")
2 M2 }1 N! q; V9 t# G" `' Y& N: p - (setq help_entry "modify_MText_dialog")" Z# C( J/ Q1 t4 P) |
- (ddmtext) U6 e) u7 D7 J: L7 a1 i; Y
- )
* F5 X5 w- Z; o! L: b' ^ - ((= etype "TRACE")
0 a% l" _# z* j/ w0 v - (setq help_entry "modify_Trace_dialog")
/ t% t/ |8 Z5 m3 X - (ddsolid)+ {3 _/ i8 H3 V0 T& C
- )3 e" O7 w* F/ @+ w3 y
- ((= etype "VIEWPORT")( F1 A/ v2 b1 R) E, z. V" R
- (setq help_entry "modify_Viewport_dialog")+ f* k1 U4 k+ e9 U/ ~% W9 j- M
- (ddvport)9 W4 }9 D7 \1 z
- )- W$ U; Y) A2 e( t- {" I
- ((= etype "IMAGE")
7 @5 _; O i. z/ |( o& ~3 Q - (setq help_entry "modify_Image_dialog")
9 V( o3 F+ C- u; S4 C( L' [ - (ddimage)
' r# K' V$ p. p! z. P0 n - )
" U$ w+ u& S$ N+ N( q8 R) W - ((= etype "3DFACE")/ t4 W- v0 \/ ^* W- ~
- (setq help_entry "modify_3D_Face_dialog")" ~! E4 _3 h) f' ]2 f6 C& v
- (dd3dface)
4 K6 z9 Z; p; M. a7 i - )
8 ~2 w" T# Z1 ~% b8 t1 [ E! S5 n; Q - ((= etype "DIMENSION")
; h7 a( M# t( U( O - (setq help_entry "modify_Dimension_dialog")
! D0 P' \8 j' G, h6 Z - (ddimen)9 J; h% b7 u; }+ z4 x6 {& }7 Q, a
- )
; J2 m8 d& d% R. @# _ - ((= etype "TOLERANCE")
( Y- V$ [7 Y/ w+ g2 ?3 o1 n& U: O% J - (setq help_entry "modify_Tolerance_dialog")2 F9 K5 B+ V9 r4 W; w& v( M
- (ddtolerance)
, C# D8 Z0 E8 X# |8 k( \9 Y4 y - )
- }# D8 d& X& }7 F- l - ;; Fall-through condition changed by MCAD for MDT 1.1 release./ j) o% d0 E9 w6 `# E0 R
- ;; This allows DDMODIFY to work on any custom object or any new object type
, h: v" C" i6 _2 m' B5 g - ;; that isn't specifically handled above by calling the more generic DDCHPROP.% y% x9 g3 r5 T6 F6 C; S w; d
- (t2 F0 G# l4 O4 R: ^
- (if (and (not ddchprop) (not (load "ddchprop" nil)))
% N" _4 h4 V d! E% [ - (princ (strcat "No dialog support for object type: " etype ".")))' R1 C7 t/ A4 E) W
- (progn
$ t, s- f( c4 R" ]/ H: K& W( { - (setq tempss (ssadd ename))1 f1 S1 y5 G* ?* F" n* H+ G
- (ddchprop tempss)
" w/ a* f0 r' E# z* U m - (setq tempss nil)
4 V* B5 t# N6 H. d0 U6 a - )
) `9 G& [* F' \$ P( _; h2 G - )
: _# H; ^9 @7 v - )) @) s# z# }/ w8 e; h
- ;; Previous fall-through condition.
+ |9 r a# X: e/ m( N8 d. ~ - ;; (t (princ (strcat "No dialog support for object type: "
$ M/ ?6 n% |( h% W: P' t" P - ;; etype "."( c) x2 S8 l5 C% c" F/ W+ M/ j) j
- ;; )
! K# ?+ T( f, d( S - ;; )! C0 ~1 l; p v
- ;; )
2 B% `( \2 W' l# J4 m - ;; )% G6 J2 c$ F/ j( a2 ?% H3 y. v4 U1 `" ~
- (ai_undo_pop)
7 i3 a8 `8 n' l7 f! O5 w/ S o& W - )4 f$ ~: b# j# V
- )
! h C7 Y& e: K! b- {8 {
! `+ L% y+ \8 H/ p9 Y9 A6 s1 s | A- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle
6 E$ d5 c# N$ ?( c: @2 x - (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back3 o- c* K5 ?) [9 s
- ) ; to what we started with
+ L6 h) T& [: G - 5 {( Z( Z! E8 d8 ?' c0 H6 ]
- (setq *error* old_error)7 F, _6 ~" ]( a) B1 b; @; Y
- (setvar "cmdecho" old_cmd)
8 c+ q/ H9 ] Q: o9 e - (if (not reset_flag) ; if object was modified, then& E5 H; a& D' t1 `
- (ai_return ename) ; return it's ename to caller2 h4 N) e2 X' c4 o M
- ), i: y: e6 X( C6 Q& s6 g( P% U
- )
! s: G9 w3 V4 E7 _0 t y
4 n+ L0 ^# Y1 C- Q/ `5 j- (defun checkForLockedLayer (ename)4 r4 J; _2 ^9 a; P: [4 P: t( U
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))
# J% z1 t* i. n7 T. b; e3 g8 ^ - (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))- ?" u9 Z+ y5 @5 _
- (if (= layerflag 4)
0 w, _; w0 R# ] z, c. c N8 A - T; ^' i- F! x3 G8 a' t
- nil
! S: J# c6 B/ m! G - )1 U- g3 _1 G7 w* {) J9 b6 S
- )
1 u. v% r+ e( V; a
! x3 H! Z4 r- O( k/ \- (princ " DDMODIFY loaded. ")5 C: \* K. M$ o+ p- O2 o
- (princ)/ J3 E( p4 M: K) I. B6 W
- ;;;???;;;---------------------------------------------------------------------------------------
' U; T% v1 Y) s
' V$ {1 ]3 f1 v% |- ; Next available MSG number is 8
. J: |" e2 U4 Z8 l( u0 C5 | W - ; MODULE_ID DDUCSP_LSP_
( L* A4 I0 G9 f - ;;; h3 ` a) D5 b Y& a
- ;;; dducsp.lsp7 {3 h% K" T* r4 {) g) W& f
- ;;;0 G; h1 s- C6 B- h# o! Y
- ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.& v/ W% Q6 n+ K: U) |! D+ N
- ;;;; a1 f6 X- c' ]9 z$ F$ O
- ;;; Permission to use, copy, modify, and distribute this software
: ]$ C- G! \+ n& N. k; L3 t - ;;; for any purpose and without fee is hereby granted, provided
3 _) F- q- D( D3 [$ E - ;;; that the above copyright notice appears in all copies and/ }4 g+ ?- {# Z k5 M5 P; x2 I# r
- ;;; that both that copyright notice and the limited warranty and
9 Z& u- A1 D/ h( p) g - ;;; restricted rights notice below appear in all supporting
7 k$ q( O' p7 U' I& s - ;;; documentation.
& X2 V- E4 D" _& I# M - ;;;' J6 K9 S7 v7 ~: G7 y$ a# M! d" {
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
7 Q1 m! J: K6 m) H - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF) `8 W* O: l X1 r1 Y
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
! b* w' D! J' [ q' a - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE, h( Z- o$ x: X1 k, Z
- ;;; UNINTERRUPTED OR ERROR FREE.$ Y& m, T9 s& i" H0 [ V/ K
- ;;;0 F/ u2 G5 C$ Z( v' @
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to1 C' q: u/ G8 E; R' u
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
6 O0 W, H" K( Q) T$ c - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) 5 U/ x7 |. n9 v6 J7 q3 V9 ~& g
- ;;; (Rights in Technical Data and Computer Software), as applicable.
: H" {; L1 K/ h0 y& l" Y; d - ;;;2 V6 s) b" H; s! {# D! K
- ;;;.
* {) U# S2 g1 [8 V+ \; Q - ;;; C:DDUCSP - User Coordinate System presets dialogue.
2 h8 J7 ?& g2 N& a - ;;; 6 R$ Q9 e% E% p( T
- ;;; Uses DDUCSP.DCL for the dialogue definition. The
/ R; T# N* i# g$ D( L! x - ;;; slide images are in ACAD.SLB.
& L3 Y. T4 Q1 \/ E - ;;;
! ^9 |3 c8 C( c. X$ G - ;;; ===========================================================================
& |& C) [( t* x7 q' m: ^7 j. R - ;;; ===================== load-time error checking ============================
& T% i f/ a/ N# j0 O7 r7 a - ;;;- B' |2 g. D6 S
7 r! k: D d+ L" ]6 s9 y' }8 k/ w- (defun ai_abort (app msg)
* t, C) n+ u& B& R& L - (defun *error* (s)6 g" l3 {9 U1 E0 d* z1 H& N( d
- (if old_error (setq *error* old_error))
1 k8 @% {; V2 N - (princ)
' E5 |+ I5 ~. D - )
# Y: f8 v' S- F" b - (if msg
; `& D6 u9 a3 M3 ~4 }7 i - (alert (strcat " Application error: "& E/ p$ _( W* b3 ]* W+ }, u, X4 o+ \
- app' M" O B# L3 l
- " \n\n "' D8 U6 l' \; t0 l
- msg
' k; z6 _5 ?* {2 U0 P+ f - " \n"
- f7 {: W" k( v. T+ ]$ X2 S- G# @ - )0 I) X4 O3 ?" t+ ^0 g. k
- )
7 h, o, ]% E2 W! F6 i1 H) Y - )
/ |* _& V2 V) d9 }4 c - (exit)
4 @2 z5 ~4 f+ F; N1 L/ u - )
/ V/ a' r; X0 ~' W
5 K$ s0 h. |9 A4 m- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,) C/ H2 I6 T( l
- ;;; and then try to load it.% b, s0 O6 p( |9 d N/ d6 c
- ;;;% P" V. Q; k# K: I
- ;;; If it can't be found or it can't be loaded, then abort the5 q" P* Z4 A7 }, H
- ;;; loading of this file immediately, preserving the (autoload)# v/ [: S6 q1 [: Z/ p: R' ~
- ;;; stub function.( l* L. S5 J: L- p: f
- 4 {1 B( B0 Y p1 ]
- (cond& N: P: }0 e) @, |1 u1 c+ \
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.+ {$ Z2 q# O. ]8 K! h9 O0 n
- ' ^. X* g3 \, b+ Y8 c. V4 \
- ( (not (findfile "ai_utils.lsp")) ; find it) {- F! \" x0 ?2 A! }# ?/ n- ]
- (ai_abort "DDUCSP"
" X2 u# z: S$ f- I6 ~. |* Q6 a - (strcat "Can't locate file AI_UTILS.LSP.". M/ o. G" q& ?) {+ S
- "\n Check support directory.")))! F2 S- z1 ^6 R! b: p4 j
. X" M9 a9 i$ J( I. W; F2 v& D- ( (eq "failed" (load "ai_utils" "failed")) ; load it( B* k3 P9 P( n9 I) b
- (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))1 i" \& L3 G7 u k) {
- )! h6 \) e$ ]% h- S1 P
5 [2 n3 Q$ E, l# g8 S$ b3 o R: }; @- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP/ [7 m; ~* j& G q$ {
- (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses
' I1 Q* M9 k, Y; {/ C - ) ; ai_abort's alert box dialog.
7 ~ S5 H$ p4 i+ f4 u. ~
) k8 c; L5 Z9 L' p+ {5 l8 Z( S7 f, N% p- ;;; ==================== end load-time operations ===========================
8 _$ | ^8 K) y, l* p, G' u
' A0 y' i: o2 T3 a+ B- (defun ai_ucsp_start ( / program)
+ l2 C9 y: A( q - ;; Get program name# u) x8 K6 x2 i5 _1 n, u
- (if (not (setq program (getvar "program")))
+ R, t! x2 F) I. n( ?5 J6 { - (setq program "acad")
+ {- z9 T! k9 R% a& |" Q9 n/ z7 ^ - )
9 I) W" W9 y! \# A6 ~2 g - (foreach v0 '("world" "left" "cview" "top" "front"
9 @/ `9 R! ^. z! d: o9 G) Z0 M - "bottom" "back" "right" "prev")
! ^5 x1 j! l$ g0 g - (start_image (strcat "ucsp_" v0))! F9 O$ F+ J# h
- (slide_image
) b" e2 @1 j0 S$ b# P6 ^7 ]3 f( ^& e - 0 0
" l* g; y0 z9 Z6 C - (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1)6 H! j2 X9 {5 s) b% _0 J% V
- (strcat program "(u-" v0 ")")
( s1 c2 r8 I7 z$ ~' e- O; \, ~$ ` - )% [. |- s5 ^+ z/ S% G5 ]! `5 H
- (end_image)2 W7 M- x$ Z" D g
- )
/ W c1 _6 ~9 [4 O2 b" w8 x - )
2 M* V. D1 J7 u8 T9 {8 ]4 d - 2 e% K, f) I9 g% h0 k
- (defun ai_ucsp_set ()
' O& B3 _2 ? u+ B- i - (if ai_ucsp_sv
' h% a% m. c5 N' H" ~; x - (command "_.UCS" "_V")+ ?- G1 e8 T+ h/ ]8 t$ n
- (if ai_ucsp_prevs# ~0 e/ R3 _/ E* r. o1 E
- (command "_.UCS" "_P")
& c- u- u/ J# Q' p$ O - (if ai_ucsp_chg+ J/ z/ X* d2 T3 F4 G
- (progn
" k% [: F# I- k3 m3 h( ?6 s6 f. b - (if (/= ai_ucsp_a "*")0 N0 F+ g1 x+ H, [! s
- (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))* c; x/ U1 o) n$ C8 Y
- )
7 n9 m# ?6 ? z2 F/ O# z0 l1 k8 n - (if (< ai_ucsp_pick 6)
0 {8 k$ C k' y, ]% E2 s - (setq ai_ucsp_set0 "@")
- K L P, c, O) @) v - (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*")- s( Z. j6 C5 ^, T0 W1 o2 Z$ H- b2 j
- )
5 d+ }5 b# c$ R- p* Y; U4 S - (cond ((= ai_ucsp_pick 0)7 L# I R/ _5 o; Z6 F# n
- (setq ai_ucsp_set1 "0,-1,0"5 E; b, ? I9 v# V
- ai_ucsp_set2 "0,0,1"
, Q( s+ ~/ R/ P! }- I: j - )
" n/ r/ h" z, x# A! |) f. j - ); g& } t% l: L# z: e
- ((= ai_ucsp_pick 2)4 _0 _/ L5 @9 C
- (setq ai_ucsp_set1 "1,0,0"
. R0 }' L$ N/ v7 S- Q - ai_ucsp_set2 "0,0,1"
5 n$ P, P9 q) j; A+ ]6 C - )
6 Z8 W7 X0 N0 j7 B& K! A$ Z/ w - )2 o: Z. [# D5 Z
- ((= ai_ucsp_pick 3)
j$ n B) ]* [# S - (setq ai_ucsp_set1 "1,0,0"
" @8 a% \6 B$ [/ U+ o0 D# D - ai_ucsp_set2 "0,-1,0"
N1 X7 w5 ?6 L - )& n6 [6 L! J4 o- L; J
- )7 Z5 y ] c0 q
- ((= ai_ucsp_pick 4)
7 `; @& u( N/ O# _+ w( J$ F I - (setq ai_ucsp_set1 "-1,0,0"2 R4 M2 R0 u' Q$ r; z. X
- ai_ucsp_set2 "0,0,1"
) n" i" l: S$ b, U - )6 r( X: b* t+ w2 `! J6 P
- )
# f3 c7 F- h( u - ((= ai_ucsp_pick 5)
7 ?8 z$ ?- s% g - (setq ai_ucsp_set1 "0,1,0"
( U& \" Z: C$ C s! r - ai_ucsp_set2 "0,0,1"3 N1 W8 D- p. l& |' G
- )
# i" }2 Y+ R9 n( d" g6 m2 B% X - )- z. n" W7 u0 l' U3 d3 a1 E2 E, |
- (T
/ L& }6 [0 @! r* ? - (setq ai_ucsp_set1 "1,0,0"5 e" u0 U0 w. m
- ai_ucsp_set2 "0,1,0"7 i, G4 B- p" ~. J( c/ m
- )
; V) s! s, K! w# x- x - )
: m w* e' Q9 U - )
/ \$ ~, a8 c% k- ? V7 d w - (command "_.UCS" "_3P" ai_ucsp_set0
! G' S, i5 ]4 G# R2 i! U. T - (strcat ai_ucsp_a ai_ucsp_set1)
8 j, s+ }8 ]" A7 o/ j - (strcat ai_ucsp_a ai_ucsp_set2)
9 k$ z# `9 p/ n# r. I }" ` - )
: R$ c" C' Z& } - )& W. M% V$ e+ B J. ]% G! J8 u
- )* l" ?% Q) [4 c
- )4 Z7 ^5 C4 S5 ~0 v/ t7 V; m7 \
- )
) o9 P) W( h% V9 b3 x - )& z$ J6 Z6 A" k# g! |
$ {: d( k: m/ L* _- (defun ai_ucsp_p (val currtile)- I& z+ H, S; B5 x
- (mode_tile ai_ucsp_currtile 4)/ W& e- j9 c. j) c% {1 g
- (setq ai_ucsp_pick val1 J. V9 n% H' |1 R. P$ D
- ai_ucsp_sv nil
2 u; s7 A4 _( B4 y- u+ I2 f/ d - ai_ucsp_currtile currtile
! G# R6 m. V0 l - )
4 d: ?' v0 a* X2 H" j - (if (/= val 1)( z7 P8 C( M. [
- (setq ai_ucsp_chg T)
: X1 p* v- K# b/ X9 C. w - )
8 |& V7 i" R1 L, E - (mode_tile ai_ucsp_currtile 4)
4 J+ g2 J2 B1 ?9 p. Q' y1 o1 W& c - )
$ E2 v( F6 W' o( u, J" ?% M
7 H; i! y R$ S$ e; ~, i- (defun ai_ucsp_swcs ()& I7 q5 b& U) V1 w9 A
- (mode_tile ai_ucsp_currtile 4)2 z1 I& {0 m0 [" A
- (set_tile "ucsp_a_wcs" "1")
& L( _( H) h f( C, B - (setq ai_ucsp_pick 6
1 y7 B/ v, C' w( `6 h& ?$ L2 S; c - ai_ucsp_sv nil& h+ }) _- R& h/ [8 ~* E1 z4 D* G
- ai_ucsp_currtile "ucsp_world"6 m" e; A( l( @
- )
2 O a7 P8 `* o- z. |% @ - (if (/= 1 (getvar "WORLDUCS"))
; C) F, }$ Q6 t$ m& r. X - (setq ai_ucsp_chg T)" S5 C/ I7 b! |, G8 ?/ o: Q8 k( f
- (setq ai_ucsp_chg nil)
9 E, N# }6 }7 r" y - )9 _& h$ \, S3 e
- (mode_tile ai_ucsp_currtile 4)
3 L) ~' {( ]3 K# I |- \ - )7 J/ m/ ]6 O! e) {7 s" |+ n
/ M# i1 a( i! y; Q$ W- (defun ai_ucsp_cview ()
/ U) D2 v, s+ t9 ^ - (mode_tile ai_ucsp_currtile 4)
- I- Q( f" G* }. h M - (setq ai_ucsp_sv T
: h, s! r$ F5 U+ y6 N! V$ O - ai_ucsp_chg nil
7 A4 I$ P' {6 B9 `& P. G - ai_ucsp_currtile "ucsp_cview"
5 h4 T5 c# m8 B* a! R) a9 ^ - )3 s) w( W: {& O8 e
- (set_tile "ucsp_a_wcs" "1")8 L; h" `8 m! \# h
- (mode_tile ai_ucsp_currtile 4), j4 M5 A- N$ F- F- e, T$ l4 J
- )
I3 `% s5 H: b
" H1 Q* }2 d0 Q3 {- (defun ai_ucsp_rucs (typ)6 L7 u9 Q: I3 i1 i( O
- (setq ai_ucsp_a typ); e( ]6 h2 b/ c/ E' E0 E; P2 `) G
- (mode_tile ai_ucsp_currtile 2)
. c2 U4 c! C2 G, f: ]% H9 t - )2 l# Y. O$ s. _ L+ j
- % _( P' v9 e, d+ u
- (defun ai_ucsp_prev ()+ P8 c% H6 `/ k
- (mode_tile ai_ucsp_currtile 4)
D4 J. Z, q7 e* Q* f - (setq ai_ucsp_prevs T
0 w1 ?: x' I) r) s - ai_ucsp_currtile "ucsp_prev"' M5 v/ o1 E' y6 f0 Y8 g8 Q
- )
# P( q) ^' V$ L; u$ Q2 A6 U* I - (mode_tile ai_ucsp_currtile 4)8 \ c& T/ p. N4 S9 |7 \& ^0 ?
- )4 @, ~% k3 C4 ^! Q8 {
; s+ c: q9 z; T/ [& m- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)
" s% l' R$ s! [! C+ z - (if (not (new_dialog "dducsp" dcl_id))! H4 d2 B, m! a
- (exit)* r/ L" p W: S0 w& y
- )
/ n% [% C, k" |* S$ j
1 z6 H+ i( L4 ^ i& R8 S8 T- (ai_ucsp_start)
& V7 L% q6 m2 `! @$ ^ - (setq ai_ucsp_a "@" " t$ `5 \0 J( E) M
- ai_ucsp_pick 2
$ j$ f! ^/ Y/ i+ x) u - ai_ucsp_currtile "ucsp_top"- z' D- r$ p! a) z
- )2 A' D6 Q8 @( i4 K* g$ e) f5 [9 e( r
- (if (= 1 (getvar "WORLDUCS"))
3 {9 I) B+ X8 ]4 T# A N - (progn4 V5 U0 U! J) R* j/ }1 E
- (set_tile "ucsp_a_wcs" "1")7 M6 k. h' L6 h4 E: a% N
- (setq ai_ucsp_currtile "ucsp_world")" L8 T+ V/ ^! u6 j) v
- )- E4 X- @' p8 u
- (set_tile "ucsp_r_ucs" "1")
' A# l; A) e/ O! t; ]: x - )
1 `8 J1 @, E% ^$ w9 m - (mode_tile ai_ucsp_currtile 2)- t( u% h3 }& G8 k7 g+ z
- (mode_tile ai_ucsp_currtile 4)
* h8 z$ e/ {5 f' _ - (action_tile "ucsp_world" "(ai_ucsp_swcs)")! T$ o6 j# y; M. Z+ y5 V
- (action_tile "ucsp_cview" "(ai_ucsp_cview)")
5 S) H0 l I9 `9 J2 v4 W7 f - (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")
1 T% p1 j* A7 q5 J - (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")8 }( v$ G# x% ]2 K( |
- (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")! `, J! F1 {- @# N& ]2 p/ D/ H
- (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")
3 B' ^ O6 O% I9 L7 J - (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")
1 g9 P% I! z# E2 @6 F. s1 P - (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")
! Y! G# W) J, O2 |7 _$ q6 [ - (action_tile "ucsp_prev" "(ai_ucsp_prev)")
2 H5 i9 u$ O2 @3 j - (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")# C1 m V% P( H! X- G3 [% |
- (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")
{3 {) Y: Y0 l, t* f- H - (action_tile "accept" "(done_dialog 1)") s2 d; s) m8 P j" B$ \
- (action_tile "cancel" "(done_dialog 0)")
9 ~. G: F/ F' C7 J5 {" ~7 Y6 F - (action_tile "help" "(help \"\" \"DDUCSP\")")
2 P" U% I1 d" P3 S G- F. {: x - (if (= (start_dialog) 1)( e) t6 ~: m- Q
- (ai_ucsp_set)% e7 ~! {/ P7 v
- )
+ e" h Z. a' ~9 s/ |7 n8 r8 s - )
. ^4 T B$ S8 v/ B# X% ^1 k - 8 S2 j/ o/ K. `* [, x
- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs / g: o3 U5 R; i4 e: L ]) \ q3 n
- ai_ucsp_sw undo_init)
8 y$ `. @! K1 c5 ~9 F
- n" v! n, v: B1 ]- ;; Set up error function.
/ Q7 s7 ]8 N9 S# V) F4 _" c: V! j - (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho
. W* l. s' S( P3 W. t - old_error *error* ; save current error function( K9 ]/ v( U% E8 O
- *error* ai_error ; new error function
% T8 p1 O' p A - old_osmode (getvar "OSMODE") ; disable OSNAP for duration
: z% b$ `# H" P6 d3 U - )
- H! o j$ t& W/ n - 5 M" v3 c" h) C7 {& y. ~( r- I( W
- (setvar "CMDECHO" 0)" O5 m0 r- |' `/ f! `$ |7 }
- + P8 |: U2 ?3 m) D5 }' h1 Q6 ], ]5 D: b
- (cond
, {. I1 {1 }+ `9 p2 V6 Y# B! i - ( (not (ai_notrans))) ; transparent not OK# l/ M$ \; r! I) \& d# {9 W
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
) ?& G7 r3 ?/ \& K( t) j. N6 v+ } - ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?; }$ l2 ]' l: I1 U
- (T (ai_undo_push)& R& c) D, W5 h7 Y
- (setvar "OSMODE" 0)
2 f# M+ E2 `* e - (ai_ucsp_main)
6 b8 L! T7 A1 I+ x/ Q. a - (setvar "OSMODE" old_osmode)/ Q8 Z7 R3 x* C
- (ai_undo_pop)
# {9 L' O* N6 r% p7 @8 e0 v - )
8 Q' U- @# d3 U; G - )2 v! E9 a9 x/ `$ Z7 h6 s6 J/ ?
, G: R H1 ~4 Z/ E/ g- (setq *error* old_error) 4 g6 v2 f2 T8 M; R$ f( Q+ \
- (setvar "cmdecho" old_cmd)
% Z/ u7 {4 ]( [% a
- X% Z% ? R. H( m0 U- (princ)
3 x( Q" S, ]2 |$ Q. I1 V+ }8 ~5 ? - )
: u) X$ }& ], C* z0 k - ' I9 Q2 i- S# [& h5 f) K. Q) ~; }
- (princ " DDUCSP loaded. ") o) Z% h& ]# @% k+ _7 w
- (princ)
( N( n3 W2 J e - 9 q, U, q p( ~
- ;;;???;;;---------------------------------------------------------------------------------------
% Y% X, O+ H* V2 T5 F9 \
' i9 [1 Q; T3 a- K/ w- {- ;;;----------------------------------------------------------------------------
, Z: P; C8 E2 v1 l. @4 Q- A - ;;;
$ |. y y7 O4 J - ;;; EXCHPROP.LSP
; p! D8 _1 t! i1 t - ;;; Polyline and text modification capabilities added by $ z" X+ l% P; S6 T3 A
- ;;; Randy Kintzley
" w4 Y- I2 m' i& X! V2 B - ;;; C+ K1 m) U8 a+ m1 |. ]
- ;;; Copyright (C) 1997 by Autodesk, Inc.
% T5 m$ K+ u3 L8 s1 p( [2 G - ;;;$ J2 Y; e8 X* f6 Y& j$ A
- ;;; Permission to use, copy, modify, and distribute this software. O1 c+ g. l q N# ^+ r
- ;;; for any purpose and without fee is hereby granted, provided
* S7 Y% U. k; h: ]# b - ;;; that the above copyright notice appears in all copies and( t# R# T. ]8 t+ D
- ;;; that both that copyright notice and the limited warranty and- D7 h2 s/ m6 T! Q0 g
- ;;; restricted rights notice below appear in all supporting
\5 a7 J3 C' [$ ? - ;;; documentation.
; e: h3 ?- R0 R: q9 {3 x3 \+ q - ;;;
7 l8 ^, [5 ~0 i8 Z8 V3 m7 p - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.- i% A# d# ?0 l% k
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF( d& v) \& U/ o4 R1 y- H
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
7 [- u5 | W, x - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE0 J3 K8 j% X* G- W& [* y2 W
- ;;; UNINTERRUPTED OR ERROR FREE.
+ u' i& z3 R& p7 p2 i! o f5 A - ;;;
1 r9 _7 N8 V3 b1 H# y: F4 R: ?- g# c - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
3 |5 V6 a: O' l6 Z: ` N" M - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
9 U b( O2 A* j0 r4 m% o$ o - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
0 i6 l+ j) S9 F7 L0 g3 d* ? - ;;; (Rights in Technical Data and Computer Software), as applicable.$ N: y% A& D' \+ z c, ~
- ;;;
; b9 o- ~- Q* ]+ z: E- f - ;;;.
8 E+ y$ l3 U4 W! K' }! G5 z - ;;; 28 February 1997
0 O' l. ~. C9 Y2 ` R - ;;;# q m+ ^& h6 b$ T- o- e3 g
- ;;;& G8 u% s- K9 }! P
- ;;;----------------------------------------------------------------------------
2 J/ p! s9 B8 a& B - ;;; DESCRIPTION
/ z4 Z. {$ D8 H" W3 T- ? t, H - ;;;----------------------------------------------------------------------------, V; ~, b( Y/ x
- ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This 3 P8 H2 J+ Y, B% N- @
- ;;; command gives the user the abilitie to change several characteristics 1 _* r5 e7 u; n8 O. h- p: N$ f
- ;;; of selected polyline and text objects.
1 W d2 m i+ u - ;;; The style and height of selectected text objects can be modified 9 P5 M0 u' Z- {/ X) k
- ;;; (including text, mtext and attribute definitions) as well as, width and
) L7 X- a3 x; |2 e/ ~ - ;;; elevation characteristics of selected polylines (includes lightweight and
1 o& a( H3 l4 G: Y9 z - ;;; traditional polylines.)
4 u% ?6 R0 q' ^# ?0 E) a - ;;;----------------------------------------------------------------------------4 o; |/ w/ x& [" c' t
- ;;;----------------------------------------------------------------------------- B A/ [4 d4 e) V- S
- ;;; Prefixes in command and keyword strings:
8 x. ?7 ]. K9 d - ;;; "." specifies the built-in AutoCAD command in case it has been
2 Q4 |5 m! _' s' u6 }" G/ r+ y - ;;; redefined.) H+ f+ }1 C3 g1 E$ p5 p6 l
- ;;; "_" denotes an AutoCAD command or keyword in the native language
3 ~3 u+ _0 Y* Q% }; @3 `, h7 Z - ;;; version, English.
) H) n. X- ?: I6 P Y c% I - ;;;----------------------------------------------------------------------------# g# o% z4 l) e: H& I1 T
- ;;;$ |* h% e5 D- s+ i c/ n6 A
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
: f* s( M i( P& n( W% r - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
' k2 X# q$ z+ v4 e+ ]+ p - ;Functions created as result of loading file: exchprop.lsp1 H4 l; _" m0 b" S) x+ R! o
- ; DDCHPROP2: ]5 k0 \/ q+ u$ w2 f
- ; DDCHPROP2_INIT
, J2 ~( U X- W - ; DDCHPROP2_SELECT
0 ~" I) ^3 Y/ t& r" L9 H) a* M2 h - ;) s) V" i& O6 n% y- k# m8 v- G/ j9 ^4 T, m
- ;Variables created as result of loading file: exchprop.lsp
! O1 |9 U' p7 |# J- Y# d5 p% A - ; OLD_ALLOC
* u) _' h( m" e* h# r2 r - ;( i. D& t) H% W1 L! f" b j
- ;Functions created as a result of executing the commands in: exchprop.lsp
2 r2 _ q. O; p5 ~8 @- M, O/ c - ;
" E; ^9 b$ l" w - ;Variables created as a result of executing the commands in: exchprop.lsp
+ N$ c' J1 C# w - ; AI_SELTYPE
% {/ N, K8 ]1 ]8 A" m5 W - ; BONUS_ALIVE
/ O5 E3 F% {4 U- ~ - ; BONUS_OLD_ERROR
. `* Q! i- Z* R4 b7 T1 o G - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+ W- q. y M& {# Y: R
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
* \; O6 z/ z0 N+ \ - 7 _" E# i W. P; ?" \" F' ]5 q! O
- ;;;/ E8 i$ T+ ~ S8 N6 S. p8 N9 ?) |
- ;;; Avoid (gc)s on load to improve load time.
2 o0 z( E# _0 F2 ?) K - ;;;* D2 _ d/ y$ u- B4 u
- (defun do_alloc (/ old_allod new_alloc)
3 l8 P1 K/ _, l3 [' h' x0 E - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))# B- K* ^! V E* H
- (expand (1+ (/ 4750 new_alloc)))1 K& H3 N' v- l) ^0 V2 |
- (alloc old_alloc)8 }7 s" i5 `2 W+ T3 ^, k' x% P
- );defun
5 m E! s$ L- b2 v - # ~( K$ s$ z8 g; ]5 }0 @
- ;runs at load time - rk! @+ ~7 c9 z6 Y) [* ]4 T0 O6 |% e
- (do_alloc)3 }& K. @ U' O/ ^
- (setq do_alloc nil)
C; n4 @9 B! F8 L - ;;;
9 _8 g% A3 ?! z3 E3 U - ;;; ===========================================================================
) T: N; U5 ~; a% \; s3 q - ;;; ===================== load-time error checking ============================
+ ^: _1 A2 J7 | H' Q' p3 z - ;;;4 s7 @6 N7 @& k6 M, I
, z* |% b' }% \ C6 h: t& @4 K- (defun ai_abort (app msg) 8 N. \" h4 w: x+ o/ ^7 _0 A
- (defun *error* (s)
$ |1 P: i! J2 s. J: v5 A8 S - (if old_error (setq *error* old_error))- v& X& V5 _5 M+ H p4 C9 S
- (princ) z8 z" D- c/ t: f. ~; _* o2 D
- );defun
& C: R+ \, a, A - (if msg
: J5 _0 J8 J# ]9 X2 d$ t - (alert (strcat " Application error: "
& m6 _. m% l' C' O8 u; a - app
! @8 a: g3 U, P# c) T$ V- G - " \n\n "
) X* a7 h7 z* v& O - msg% I5 U6 x* f; G9 o- O1 e. U1 x
- " \n"
6 C( n( Y n9 y$ ~/ z - )
1 a, j5 C9 H. ~1 K/ a) z5 A - );alert
7 i" m+ v5 T$ Q: o - );if
2 |0 D3 E- w$ o$ j - ;(*error* msg)) r, ?$ L7 ^) ^- U, [# K
- (exit)
8 M' v! O2 w4 e& p8 c - );defun ai_abort/ z' D, Y" O% I
3 C& n0 v: v h3 s- V- ;runs at load time - rk
( B7 y( t" j9 z. B - ;(if (and *error* ;added the if wrapper around this - rk.6 Q& S( Z' y: O' Z( T
- ; (not old_error)
, s2 H: ~* K- P& k# z - ; );and
& R8 H. H9 ` k" w3 D - ; (setq old_error *error*);setq; U$ Z* K2 O) Y+ M7 ^. O+ ^* L( G3 A
- ;);if
2 [6 f2 E3 s7 w( @$ t) ~. d
6 P/ }+ q( H) S1 B- P- ; O+ S7 [* j0 @" B
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
$ G) E! B, q! d# m - ;;; and then try to load it.
0 E# u: B. A. f# U. j' ?1 Y - ;;;
# ~* A' v- @/ m* f - ;;; If it can't be found or it can't be loaded, then abort the
; B+ @* S0 ]5 \ - ;;; loading of this file immediately, preserving the (autoload): h% ?2 z$ e7 v
- ;;; stub function.' z' Y5 f" b- R
- + ~9 N9 N/ j7 G$ s% _1 V9 G
- ;runs at load time - rk.4 u+ K n: G ~% T" d
- (cond5 Z0 r; X7 J. l2 r
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.# r+ _# b u) B5 x; e
- ( (not (findfile "ai_utils.lsp")) ; find it
; v b( B& k$ u- E6 J - (ai_abort "EXCHPROP"' D: X: t; e5 O3 I' @
- (strcat "Can't locate file AI_UTILS.LSP."
& }0 n9 [1 t- y" U - "\n Check support directory.")
0 s# c7 k8 O7 b3 F1 h$ @3 F* h - );ai_abort
5 n6 ]+ W7 g( G1 t7 O - )
* C. O. N, e, \% L. i - ( (eq "failed" (load "ai_utils" "failed")) ; load it
( b1 T O1 r( s: o( [. i - (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")$ K* ~& |' ^! @6 I. Q
- )
' l7 p- v4 J9 B/ _! ~7 \! X6 J - );cond close
6 U& U, n- K+ t$ f* R2 V/ G - 9 I( z: T! O) ~/ b
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
% p% j; D" h' L1 T8 o, ~ - (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses
" F1 j& a j2 R, g6 D - );if ; ai_abort's alert box dialog.
7 x' z" x7 m% k0 M5 y2 D/ \
6 b7 ^# |& t' s- ;;; ==================== end load-time operations ===========================" I0 O3 y1 N1 @
- ) x6 B$ {; j7 ]; E; j
- ;;; Initialize program subroutines and variables.) z8 I' a" Z" g! Z8 A
- * l- v! `# ^! G
- (defun ddchprop2_init()
8 V; L. g3 ^3 H+ e9 ^
_7 @9 x$ G, z8 I* S
- M+ T; G _' h5 [/ X& u- 6 d, c1 c( l @2 L z
- ;;
" j% W7 p) Q: _ - ;; Define buttons and set values in CHPROP dialogue box' g/ u0 f) i+ R/ l# y9 V+ }
- ;;
$ M6 l4 M4 [) A4 ` - (defun call_chp2 (/ cmdact p1 p2)) `( g/ R8 f" y7 f
- / v( ?6 o" @* \2 w) Z% @
- (if (not (new_dialog "ch_prop" dcl_id)) " w7 v! }' T( ?" X. L& w \
- (exit)# A, n& I, c! b3 }" S* v# _; P
- )
4 d: Q: P6 Q+ s. o$ V) [: z' Z
2 |5 U Z9 M7 b: ^6 ~9 E- (set_tile "error" "")
0 N7 u) M L. n2 W4 c; C* e* s9 i - ;; Set initial dialogue tile values4 [1 `! L1 U# m0 n% y% @) B
- (set_col_tile)
$ V1 ?' y$ X1 H/ C9 n% R - (set_tile "t_layer" elayer)
5 N3 S% x" H- X4 v) H - 0 u8 O# S* H2 i
- (cond" b* w5 k( _& E' d& c5 y
- ((= lt-idx nil)
% M' |& T/ {, k { Z* \' N. s - (set_tile "t_ltype" "Varies")# y. r! }" u" K
- )' C) g$ C1 [1 ]6 D; {0 M
- ((= lt-idx 0) ; set tile "By layer & layer linetype"
* T: Z/ ` X4 B& f { - (set_tile "t_ltype" (bylayer_lt))
7 z s R! ^# Y9 f" x" k& n - )
5 I& S4 x" I* I9 Z! N - (T
, P+ S. B* c+ z( U5 v - (set_tile "t_ltype" (nth lt-idx ltnmlst))
$ b6 Y5 l9 A! ~. Z: r3 ]; p% } - ) X, C# j: E6 B: `
- )+ Z$ O$ \. W% Z5 W
- R! M7 i( o" ~6 l1 }0 _' v6 Y' F1 e
- (if (or (= ethickness nil)5 V7 F+ O: E9 n! H
- (= ethickness "")
2 A7 n3 m) ], g8 f5 U - (= ethickness "Varies")
4 A& ^$ `) e' X- B0 x5 L H$ j' N - );or
0 X3 C+ q0 D# b+ L7 D G* x - (set_tile "eb_thickness" "")& P1 S, H0 v: b. {6 {, ~" R. C
- (set_tile "eb_thickness" (ai_rtos ethickness))
! u0 z. w6 ^( S( O' I4 v - );if
) f' W. @! }8 V" a% W( @ - (if (or (= eltscale nil)
' k9 P# u& P: V8 j5 m0 R - (= eltscale "")
# I& G0 `. P% ?* r9 z0 `/ o - (= eltscale "Varies")$ A' P$ x) n4 V9 _: @. W) R
-
( j% B* M; j! _ - )
* e+ w2 ~* b: f P) F - (set_tile "eb_ltscale" "")
+ z, t$ W' q. P& p" _ G - (set_tile "eb_ltscale" (ai_rtos eltscale))
' `3 A6 W4 X5 s5 j) G: | - ), }. J" \) _' H! v
- (if& N) r% U5 r% w* N* |% i5 a& f
- (numberp ewidth)
7 |' u( P% \1 G8 \0 F# E% E2 X' | - (set_tile "poly_wid" (ai_rtos ewidth))" g; U6 T! y8 i, V
- (set_tile "poly_wid" ewidth)
- _6 [, R& I# x/ Y3 w - )5 ?9 S3 a. s. T7 J
- (if
/ H/ j/ G6 H; E$ c/ r - (numberp eelevation)
* \4 d0 u; U# L | - (set_tile "poly_elev" (ai_rtos eelevation))
$ \! C _5 w6 h( @6 T4 E. b - (set_tile "poly_elev" eelevation)
( `2 A" I4 p$ K* p4 J( W+ S; [5 g) g - )
! c! o( H; B0 m8 F# u - (if
. P. P1 z' @: [) k - (numberp eheight)8 d4 f# R( A$ z1 s) b! m
- (set_tile "text_hgt" (ai_rtos eheight))
5 J, Q6 G. M+ B2 S. D, ? - (set_tile "text_hgt" eheight)
; X+ g8 Q' |2 J! c2 C! c - )# y; y, j, }/ O: `
- (if (not estyle)
" _! V/ y2 D; W! |* r: d \1 } - (setq estyle "")
6 W, f" H% T- g% q3 F% O" W - );if
% g; y3 A5 _+ H6 }9 h - (setq hair_style_list (tnlist '("style" 16)));setq
! F8 {, F! B+ j - (if (not (member estyle hair_style_list))* p e2 b& i A6 D3 H( N2 b5 U* S! s
- (setq hair_style_list (append hair_style_list (list estyle)));setq
3 o% p. g$ P. l: X7 a* _$ L4 p2 r - );if
2 I3 r" `4 k/ K$ v Y% C
9 l, e w9 U: x1 p* ?& s- (setq hair_style_list (acad_strlsort hair_style_list));setq0 ]" s4 S) r( M5 P# h- L/ ^2 i
- (mpoplst "text_style" hair_style_list)2 n/ O& X# H" F$ n( i% z
- (set_tile "text_style" + z# l; T$ g( N5 w0 E( T$ y% a
- (itoa (position estyle hair_style_list))
5 C) g* w; ^' C" q* o' H: `1 h7 `3 \ - );set_tile
! W" V- `2 {- E1 Y
- O" I$ G& U! A) y* B+ W- ;; Disable tiles if need be... ;@RK
; A- K1 }" y x- |. g - (setq a 0); R( C$ E, _2 X8 z+ U' _- X
- (while ( < a (sslength ss))$ x1 P1 r/ ?2 o4 q. m9 `# Y2 A/ q! l
- (setq which_tiles
3 i5 D' B; }# Z/ m - (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))7 l0 ]/ e2 o' m
- 0 G1 p; W4 j- g# F
- ;; If all fields are enabled, don't bother checking anymore.
* N9 V) A7 {) Q9 \ - (if (/= which_tiles (logior 1 2 4 8 16))
' b/ d+ m# h) O+ C! | - (setq a (1+ a))
$ j$ }/ W* a- k& T0 h - (setq a (sslength ss))! \: P1 `" m, u: |/ p
- )
# G3 {3 i: I: T a - )
' }/ I/ x9 \* Y+ Z" E9 ^8 O* P - ;; Layer Button and Text Field( M) l: M5 \$ d2 s% m8 M/ Y" e1 b: U
- # h" M* Q7 J! t. X9 o
- (if (/= 1 (logand 1 which_tiles))+ i: m: b1 V: ~( W/ l1 L
- (progn, p t+ B- W. B5 ~
- (mode_tile "t_layer" 1)
' S( w. E3 T8 b9 H5 K: L4 i2 D - (mode_tile "b_name" 1)0 B5 V' f8 r: ]! U
- )8 B5 e% M" ?+ z1 @7 x4 H
- ). u8 l4 y: G9 I9 A( L" p% ~2 h2 X8 U1 P3 O
1 @7 G: k, Z" D( S1 H( J- ;; Color Button and Text Field9 |! h0 k) u7 H
- (if (/= 2 (logand 2 which_tiles))
3 b; Y. |$ ?& e% n G - (progn% ~+ a5 {+ |9 [( n+ B! K
- (mode_tile "t_color" 1)1 A/ z. n* U% Y5 h9 q
- (mode_tile "b_color" 1)4 `3 V3 L7 `+ K7 u) O- @1 n3 D
- (mode_tile "show_image" 1)
D* G: Q% d3 B& ^$ O n - )& G# M' u" X# g. o9 Q4 h
- )
3 G3 n+ l: v. { R, A9 n - ;; Linetype Button and Text Field. D5 _& a( k# l8 Q7 Z0 K
- (if (/= 4 (logand 4 which_tiles))
3 C# V+ T# D0 z Q; V8 `* H! P - (progn' \1 B( f9 X. q% Y
- (mode_tile "t_ltype" 1)
2 Q, Y7 S! l( j' e2 ]% g - (mode_tile "b_line" 1) f# j* S' y; i$ @7 D7 a
- )
+ B# x4 L$ ?5 c1 j - )
( I6 }8 u: {8 a% D - ;; Linetype Scale Edit Field
F# H$ d3 N5 m2 @5 L - (if (/= 8 (logand 8 which_tiles))$ H3 c3 s. k2 V3 x
- (progn4 U) ?6 g% Z; N% a5 W7 S) x' O
- (mode_tile "eb_ltscale" 1)3 u% l) e, p/ a$ Y" i' r
- )+ t q" C: K' x: t- M1 t
- )
8 s$ r' j0 d6 d" v% ] - ;; Thickness Edit Field./ G/ f5 a8 [1 L2 A
- (if (/= 16 (logand 16 which_tiles))
3 s- i8 @& T7 [& {9 v; k - (progn
/ [- T# ^* g& n# v# \ - (mode_tile "eb_thickness" 1)
3 s3 q8 O/ A; I; n* V - )
. ?" E' K @( ]3 ~4 K7 q" e - ); S7 ?& \7 {5 e: D- `$ R$ n
- # k' t. q8 e$ U
- ;; Polyline box and tiles @rk 10:05 AM 1/30/97. M9 F) N/ J3 N/ z* w! F! x
- (if (not (= 2 (logand 2 eflag)))# S- i# i- k" l5 n- G
- (progn R o! k- z, G5 o& Z3 r) @( K* ]
- (mode_tile "text_hgt" 1)9 k! M, ^$ h3 S1 w4 j9 r' h4 J8 h |
- (mode_tile "text_style" 1)
+ X7 N. y% N ]/ r$ B - );progn
) ?/ G0 M% a0 N- c4 R$ m% n - );if) o; ~+ a& U! F
- (if (not (= 1 (logand 1 eflag)))
5 K; |: f, S$ l- `2 C, u - (progn
& u7 _' ~$ d$ W% [ - (mode_tile "poly_wid" 1)! A( I' {6 v% y) S. P. t$ U% }
- (mode_tile "poly_elev" 1)! V; `; F% y( g
- );progn then disable polyline fields
4 a* H2 }% |; K+ `) C$ W - );if% w4 f2 W$ `4 K; g! a& }$ P t
- 6 _" V2 B0 j( f% a' a/ f
- ;; Define action for tiles1 O" {1 Z {+ W* F, m( b7 k
- (action_tile "b_color" "(setq ecolor (getcolor))")
: }0 }% U/ l& z" n% P2 }. J - (action_tile "show_image" "(setq ecolor (getcolor))"); P& {+ Y, U: \- c* c: S
- (action_tile "b_name" "(setq elayer (getlayer))")
) T3 [$ z$ F1 B6 o# T: l1 m - (action_tile "b_line" "(setq eltype (getltype))")" L( f$ _& L8 ]1 g1 e* y6 X" p1 B# A
- (action_tile "eb_ltscale" "(getscale $value)")
! h, a+ @" A# @, f8 f5 R - (action_tile "eb_thickness" "(getthickness $value)")
) l# O3 b8 a, W4 O - (action_tile "poly_wid" "(getwidth $value)")
6 F: I4 P/ b( R) y - (action_tile "poly_elev" "(getelevation $value)")% P# @. E0 B; j9 e) n2 C
- (action_tile "text_hgt" "(getheight $value)")2 z& v. s8 f' d* X0 M2 a& I+ ` l& w
- (action_tile "text_style" "(getstyle $value hair_style_list)")
6 `# l! a3 C6 i; Q1 f( [5 A9 J( { - (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")
$ {$ ^& v' N: I& P - (action_tile "accept" "(test-main-ok)")7 R' ~8 O1 j# Q1 A
# |% T$ q6 V! ]. G% P: R- x- (if (= (start_dialog) 1)
$ Z/ ?8 X9 o0 T" D+ [% v - (progn
+ G- o0 r/ a7 P' I9 T, O- j& p. o+ F - ; Update special properties for polyline and text selection-sets.
" S; s. o `8 a. u -
3 o4 E" C/ T/ ~6 L- G - (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop v$ C) |- r! P, H! M3 p7 |
- (or ewidth6 I. z6 r/ r: E9 r) |
- eelevation. w+ Y" G$ p, q2 k/ y3 L
- );or0 s; Q' h( _, F* E
- );and! Z [2 g" {8 ?/ f9 \
- (progn9 a- M) ` ^4 B
- (setq ss-index 0 : b% |/ T* Q* R
- ss-length (sslength poly_ss)+ M) ~$ ?. L* |1 P
- );setq
3 c2 q9 h2 n. o( s7 ~2 o - (while (< ss-index ss-length)
`$ Q$ g5 D) T - (setq ename (ssname poly_ss ss-index)4 q7 {6 j! b- _' _: U1 }' n+ a
- elist (entget ename)
$ @6 @" j! p8 f! L. i - );setq
$ R: }+ b9 [0 |8 V - (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp( t1 n! G3 n4 m& \) e, Z3 S+ k
- (if ewidth 2 D) O+ K& H+ t0 }& V
- (command "_.pedit" ename "_W" ewidth "_x")1 [. Q, \# w: `
- );if
7 n a. S, A$ P# J( |+ U) n5 { - (if eelevation
7 K& B& j J# q. v2 x7 O1 @ - (progn
% O+ N- `* s3 J) F0 l2 r - (setq p2 (list 0.0 0.0 eelevation));setq
; a$ }" q! O- z- {0 U - (if (equal (cdr (assoc 0 elist)) "POLYLINE")+ I8 X' b2 w0 @
- (setq p1 (list 0.0 0.0
/ J3 b; h( `, I4 g6 d+ ^+ y - (caddr (cdr (assoc 10 elist)))& T7 G7 j/ n0 k# |9 Z3 O
- );list+ x7 y3 ^7 m! Y! k6 H- z& |/ @
- );setq2 w4 c* \: J# U( g
- (progn
3 C/ e& S8 i# i* \0 Q - (if (assoc 38 elist)
( c! Y. W+ N. V4 ?+ M - (setq p1 (list 0.0 0.0
$ o3 f: m& Q/ b9 r* \; h+ S: n - (cdr (assoc 38 elist))0 \* o+ q) n1 Z% T& c `
- );list
4 g, E+ n+ ^1 H, X: x6 E - );setq) M- F$ ]. J6 t) o9 B7 B; \
- (setq p1 '(0.0 0.0 0.0))1 j4 G9 M$ {% z' T
- );if
! V/ v' Q8 U- B- N' t5 _4 m - );progn
# Z* F2 `7 k& N- m) h# M( H; s - );if
. r2 t& s, a- R6 r8 p O - (command "_.move" ename "" p1 p2); C( v/ G7 q, i: G4 c- b
- );progn then change the elevation of the polyline
9 W+ ?7 b( c8 d/ }$ L - );if
8 q$ o0 e1 X O* t - (command "_.ucs" "_p")" r5 i7 H: z! y1 c; F7 z. r
- (setq ss-index (1+ ss-index))6 W l' J" l( O& t
- );while. d* S1 u, C& \5 X* B
- );progn then polylines are in the selset0 q4 k4 A4 O% l; J, E7 D! V
- );if2 P0 z1 Z9 h6 S# Z2 ~1 q. ~
- (if (and (= 2 (logand 2 eflag)) ; text- S, M# Q; D4 Q# N2 ~' l( T
- (or eheight
Q" N3 y% Q8 J - estyle
' T( ~8 X% A8 `7 | - );or7 L# Q+ I5 p0 `* K% R
- );and- i4 a" y9 l6 ?" c
- (progn
, q6 `4 `8 |$ Z1 e$ L - (setq ss-index 0 ss-length (sslength txt_ss))9 l6 w$ C. |9 x" U. _# [6 J9 E
- (while
' O$ W) I' b3 o8 B - (< ss-index ss-length)
- D- u. W* o- o2 ? c& [ - (setq elist (entget (setq ename (ssname txt_ss ss-index))))
2 l" ]" A% r: J* w0 y& K - (if (numberp eheight)
! M; n9 M6 |+ [$ p - (setq elist (subst (cons 40 eheight), }2 D' Q9 ?7 ?3 v8 O) g
- (assoc 40 elist)& }# }9 s% K6 H" u7 Q
- elist) x X; D! V$ L8 A+ f9 C
- );subst
0 c. H3 g+ ` E' U( I - );setq
- D4 r0 y& T; E: @+ s- L3 y - );if9 P# Y* q" S! C3 @4 U7 R9 }
- (if (and estyle ;(not (equal estyle ""))
1 e: [6 o d9 D# d - (not (equal estyle (cdr (assoc 7 elist))))
f5 g* p- b/ F# T - );and/ l( x6 u+ \+ \% |
- (progn t. h& L$ ?. e- J* `# }$ l
- ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt
* W- R& O' [/ o5 f8 u7 {: H - ;(if (equal "MTEXT" (cdr (assoc 0 elist))); O7 Z8 m$ K' r- f$ O: e: e d
- ; (setq elist (fix_mtext_fonts estyle
# b+ H" z/ o0 f - ; elist
5 s7 p9 T$ O: g2 e - ; )
8 S5 {) E! p- w7 s7 P- s" u& b; ` - ; );setq then* n) W: j& m! l7 n3 k, J, M
- (setq elist (subst (cons 7 estyle)
3 _3 r4 n+ a# X5 E/ n5 }) S1 K5 ] - (assoc 7 elist)$ E) {/ l( d4 n& s
- elist
% a1 y- O8 }4 D v - );subst
2 ^% \5 S7 R5 T - );setq else, F' A2 Y: s* N- E0 q( O S9 Z" ?
- ;);if
) n# r5 s! x5 M - );progn, i) _: Z& a' u
- );if
/ a+ p4 w& s5 w5 b' d5 D - (entmod elist)
2 y5 [2 n- q; d( m3 s - (setq ss-index (1+ ss-index))
& M1 D+ A. W) R - );while
, t* c$ w4 b. [: } - );progn then
$ d) i4 a' a* D( q! K' w# d5 I9 ? - );if8 O8 G5 i; C2 U& L9 ?/ \; |
Z: ~& l6 P8 ?3 h3 U- (setq cmdact (getvar "cmdactive"))' J! ~+ C; T! G, g& p: N
- (command "_.chprop" ss "")
' a& @% q$ k1 Z+ n - (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?) W N1 I3 D3 C- R6 e. ]+ P
- (progn
8 B* ?. H+ Z* j: q8 H0 j - (if ecolor6 Q. v& ~$ s1 o" e5 |3 H! f
- (progn& ]! x+ k0 Y6 k1 Y: }) o6 T( Y6 G9 i
- (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK"))
- ]6 t2 o3 B" M0 `0 ] - (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))0 r# E" f6 b0 [# b0 `
- (command "_c" ecolor)9 m* N/ R/ o! i2 Y6 {
- );progn then
; X: X% k: e0 J1 b$ `( T - ). E" M9 A, q1 i$ g' T* g& F
- (if (and lt-idx
9 H3 G7 N/ J" N, i( }0 c7 R. X - (/= eltype ;|MSG0|;"Varies")
" _, n7 N7 i9 k7 @* G3 O8 d, r - )
1 `% H |9 v$ u) H - (command "_lt" eltype)9 H( n. j. k/ G9 O5 ]+ |6 P
- )
; \6 k5 m. W1 h4 \8 f6 e - (if (and lay-idx
" ~+ r; V- v( e2 W& v - (/= elayer ;|MSG0|;"Varies")
- d( ]8 e# a2 ?. a - )
8 o t2 H1 @) ?7 t - (command "_la" elayer)( V( ?6 z" T& ]0 R
- )+ ^) J S3 l' z" N
- (if (and ethickness
3 g# R6 Q. _& \1 w4 `1 q, Y# H - (/= ethickness "")+ L) Z/ M. J: W- t) W* M
- (/= ethickness "Varies")
4 h+ M' R) P! |% P6 q+ l; S8 \ - )$ S0 L4 \+ [, \+ ~/ h
- (command "_t" ethickness)3 f5 b4 h1 c# I: m
- )
7 s+ ^* h$ G1 F) S% |5 F - (if (and eltscale (/= eltscale ""))7 @. N6 |# \* T! P" j' n, L
- (command "_lts" eltscale)
& t3 A7 C! l& t3 q9 `" ^2 e& J - );if* l' \) v3 H) N9 m( ]
- (command "")$ h5 j$ a% N' ~
- )
n n- Z# N. W8 S- M - (princ "\nProperties unchanged") ; CHPROP didn't like our SS set
( z5 z% C6 F8 ?- W- Z1 U% `7 H - )3 H" j/ c' u% N% o6 ^
3 A0 {9 c% j4 J' `- );progn then OK was picked in the dialog.. D2 b; F A, X
- 4 [, y" E; ~9 p4 x* ~4 a( l" B
- ;; Fred GERBER - 25-AUG-948 q& o o& z3 n4 W7 }3 A' o
- ;; Don't print the "Properties unchanged" message when the user cancels/ f+ E! M2 i- T5 n. k
- ;; the dialog because he knows that already (otherwise he would have' s& D1 \! w; Q1 W/ i
- ;; hit the "OK" button). Display the message only if CHPROP fails for
5 h3 [ e4 q% D! b8 a - ;; some reason, because it is not the expected behavior of the command.0 Z, l3 a0 L5 t5 B5 ~5 y4 @! G& c2 M
- ;;
( b# `% s1 |$ L, Z3 m - ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")
" g/ y( n8 H2 l) ~$ _' H- m3 P# d! x" B - );if0 _9 {# ~: ^+ Z2 h) g! i( z7 U
- (princ), y5 j1 P0 ]: Y( b( f7 W
- );defun call_chp2
% R% R; j5 ^ ^5 G9 S - ;;
8 `+ @' ^0 \! S, o) ?: Q - ;; Function to set the Color text tile and swab to the current color value.
* \- Z0 p9 h! H5 A8 B( i - ;;
. t" ^$ ^3 ~2 f- l* M0 Z - (defun set_col_tile()- b" s* |; J/ O) q/ A; f
- (cond. U" m1 c/ S4 J
- ((= ecolor nil)4 O- S" f- `1 a- I3 m
- (set_tile "t_color" "Varies")
, w$ b; X% `. D4 O5 ^ - (col_tile "show_image" 0 nil)
; v1 x! d# ^0 K$ o! U. C - )
1 d1 ]' r! m s; n/ A - ((= ecolor 0)' M# V. a: b" n0 P3 Z/ t
- (set_tile "t_color" "BYBLOCK")
, Y/ Z3 r& U' z; K/ r0 l, ~ - (col_tile "show_image" 7 nil) ; show BYBLOCK as white1 Q m" ^# H# U4 ^
- )/ x( v2 A" N0 k8 d3 C- M8 r+ K
- ((= ecolor 1)
" k5 D Y: S0 _, v! Q1 Z) e - (set_tile "t_color" "1 red")
7 m8 g) F9 l1 O2 ` - (col_tile "show_image" 1 nil)
6 X9 c' e0 f; L t - )& j6 R3 o+ a7 S
- ((= ecolor 2)
/ v3 S/ a# Q F5 A& w! R& ] - (set_tile "t_color" "2 yellow")5 s4 A6 _! J2 u8 S7 v" _
- (col_tile "show_image" 2 nil)+ G; j9 M& I, H
- )
7 H$ ?4 g$ w8 A; i }* c( p - ((= ecolor 3)
' w {, E, e. ] m+ k: F' S3 r - (set_tile "t_color" "3 green")
9 c ?' b- M& F- L2 e! N - (col_tile "show_image" 3 nil)
8 W! I. V& j: c - ), R0 C' z1 r) l* z+ j1 C
- ((= ecolor 4)1 s3 k4 s" u U- x- @: o4 M
- (set_tile "t_color" "4 cyan")
3 k: W, c& v5 k2 _' t3 V/ ~ - (col_tile "show_image" 4 nil)* }3 H# V7 T( k3 n# G0 r9 }
- )' J5 B2 F- H0 _+ B
- ((= ecolor 5). b. q9 X2 a3 `1 } {
- (set_tile "t_color" "5 blue")
6 `3 u( d! f6 h/ m; Q* I - (col_tile "show_image" 5 nil)
$ P) t3 e B$ m- @8 u& n' y/ y3 F - )
( o& B+ J4 |5 U - ((= ecolor 6): L; `3 |! {. E% @& h+ c
- (set_tile "t_color" "6 magenta")
: i0 A' f" J" c* Y1 J/ _ - (col_tile "show_image" 6 nil)
- q# ~( H O( |: w - ). V5 S" ^8 f. R. b+ t- v
- ((= ecolor 7)$ j f- h- ^+ X2 N" j# s
- (set_tile "t_color" "7 white")
; o4 K6 a9 t! I+ N) z9 O9 o - (col_tile "show_image" 7 nil)& B$ v& v$ \& j9 \3 j
- )
3 s8 |, s2 j& t/ L8 E; b - ;; If the color is "BYLAYER", then set the tile to
/ p u) Y& X/ d! i - ;; show it's set By layer, but also indicate the
# h& L" j7 U$ [3 N! f6 W+ W - ;; color of the layer - i.e. By layer (red)
$ t4 O6 S7 U/ m( Z - ((= ecolor 256)3 U/ E) l& Z4 Y8 N8 j
- (set_tile "t_color" (bylayer_col))
3 ^4 n8 h ?. P- f' B - (col_tile "show_image" cn nil)
' [- L/ d3 L( ~8 ` - )
' ]( C8 [7 F% C+ H6 k- D7 @ - (T
0 b+ u2 P. y: F. j$ T - (set_tile "t_color" (itoa ecolor))8 S7 q8 n. W. U
- (col_tile "show_image" ecolor nil)" {+ ~. r5 K! f
- )
/ O8 Y/ N" I: W( B, ^" s - )
0 }; T- b( q8 v0 T% b8 w! R5 ?/ u& Q% J - )$ d9 F T8 S6 Q
- ;;0 S" _8 }- Q7 I
- ;; Function to put up the standard color dialogue.
. Z; C. T7 }- [ - ;;- \$ [+ D3 e/ r! j
- (defun getcolor(/ col_def lay_clr temp_color)$ s' y$ u3 B) \& }9 y: p( S
- ;; col_def is the default color used when rq_color is called. If ecolor
5 `5 t6 T5 h O' q - ;; is nil (varies) then set it to 1, else use the value of ecolor.& d! ~' r# _" u+ t
- (if ecolor$ c) n6 X# k3 A. ]5 G2 o+ }- F7 x
- (setq col_def ecolor)
1 R* Q. ^8 g7 o9 l7 D - (setq col_def 1)
* x: |/ n0 a; N' T j4 Q8 Z0 v - )
, k" ]$ L% W0 H- x. ^* ?2 P - : R) Q1 [2 y8 C! r6 Y' @" b
- ;; If we're working with a single layer, get its color
; v3 T- E4 p' f% C& O/ z - ;; for use in the color swatch if the user selects color BYLAYER.' ^7 ]" @$ K9 b' _7 L# y( o+ O+ G
- (if (/= elayer ;|MSG0|;"Varies")
4 C& K8 n2 Y! k) J - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
8 g6 h' Z, H! |& q - (setq lay_clr 0)
; h. C: R% R4 |; h5 z - )
& E* S: G) b2 s& R. I8 n - (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))# X$ d0 J( x& N" I* P1 b- _& x# W' q' A
- (progn9 @7 \* |& m D# c. ^0 j
- (setq ecolor temp_color)! M; F5 P: u* ]" h1 ]) @8 G
- (set_col_tile)5 s2 }. p8 b6 O- y: O
- ecolor
( K8 q% R. U! B! E _* x - )5 C d' [# `1 N& L$ L# P5 ]
- ecolor( g. p7 n5 ~! o; D" M+ n
- )
5 k( `0 ?/ k3 A/ o; b - )
K) ?- j5 D3 A7 ~0 G& n+ x8 z - ;;+ D+ m8 A- s) Q; B
- ;; This function pops a dialogue box consisting of a list box, image tile,
, a: ]; P9 e8 ]" v! s - ;; and edit box to allow the user to select or type a linetype. It returns
- M; J4 {) f9 p5 T- b& a: p - ;; the linetype selected.2 L6 G& Z/ D. i1 X7 W: B- W
- ;;6 c% ]5 C* q- I9 ~# M; @
- (defun getltype (/ old-idx ltname)( }2 S6 B- t. i# y0 P
- ;; Initialize a dialogue from dialogue file- L7 F0 S6 c2 ~. j& r, D4 ~
- (if (not (new_dialog "setltype" dcl_id)) (exit))
~9 V% m1 I( _! A) U- u( v - (start_list "list_lt")) [, N1 q+ I6 O) z
- (mapcar 'add_list ltnmlst) ; initialize list box8 B4 y! j$ G4 l8 ?
- (end_list)
$ `( Z' v* B6 Y" D - (setq old-idx lt-idx)9 l3 H# Z: Q6 w q- e! S4 I2 `9 h
- ;; Show initial ltype in image tile, list box, and edit box; j* t# y" J7 A% ~* a) d6 J
- (if (/= lt-idx nil)( N7 Q% g+ j# i. w) j! `
- (ltlist_act (itoa lt-idx))
. D6 W! h* J9 P2 v% t - (progn8 T2 a. o5 O7 j! m- h& K, u' a y
- (set_tile "edit_lt" ""), Q2 Y, z5 H2 f+ i# F' p" y
- (col_tile "show_image" 0 nil)
4 u3 L* e# d5 Q# A: p - );progn else
5 n0 _% z) L# T& I% e& [ - );if7 i7 G& U' C' q- b, j1 C1 f
- (action_tile "list_lt" "(ltlist_act $value)")
7 ~. Z' c0 ^8 _ - (action_tile "edit_lt" "(ltedit_act)")
" h9 V; E, w3 y Y f( F - (action_tile "accept" "(test-ok)")
6 I, l- X6 S, m: p ^2 @ - (action_tile "cancel" "(reset-lt)")
4 b7 L( f" z, k5 ] - (if (= (start_dialog) 1) ; User pressed OK9 I$ x( _+ y3 J: V# {
- (cond
: S' ~& W w( n9 ]5 d2 M7 V: o - ((or (= lt-idx nil)' Q! r6 [9 j4 z
- (= lt-idx (1- (length ltnmlst)))
& P) }8 S) N/ @- X - );or2 q9 q/ @/ t& I, U
- (set_tile "t_ltype" "Varies")
6 r9 B0 b9 O, |; t5 E& @( }0 u - ;|MSG0|;"Varies"
$ T2 z; P+ V! d, S! M - )6 ]: }' T4 J! U1 t& a3 g
- ((= lt-idx 0)
& \- x1 v+ B }/ Y - (set_tile "t_ltype" (bylayer_lt))
$ D2 T5 d$ I& l# A) } - ;|MSG0|;"BYLAYER"
, \6 S8 J: S6 } - )
+ t' R% @+ y" E* U6 u - ((= lt-idx 1)" d$ T( M% c. s& W6 [, p& ]
- (set_tile "t_ltype" "BYBLOCK")3 }, K* }3 V! s0 A0 s6 B; v6 X
- ;|MSG0|;"BYBLOCK"2 }3 Z l9 I7 t" m' e# l- v
- )
/ v. r( F' n( c9 ]: t( a& s( ^" z - (T4 i' s9 \# ^+ @" ^( s
- (set_tile "t_ltype" ltname)
6 w+ h& T/ G0 l. P- P! \ - ltname0 x" g J( v8 T) n+ B- P
- )
2 _' [; _9 [! i( P - );cond then
& F1 {4 N) U4 Q' p A" X - eltype. b4 A7 {1 F9 i- i( w. u
- );if5 W$ z1 W* i2 X) P% H2 h
- );defun4 d+ O" K ^$ y" T( I+ b* s
- ;;: B9 k- a- o; r5 N' N/ z. z
- ;; Edit box entries end up here- a# M5 e5 g5 V0 z0 F/ t# I# }
- ;;2 q, {1 c7 G; m. C R+ e
- (defun ltedit_act ( / flag)( L/ b& B) I3 }; s; }! E
- ;; If linetype name,is valid, then clear error string,$ o" _/ d1 C, V: S2 e: z- [+ v
- ;; call ltlist_act function, and change focus to list box.
8 @$ K) G& U z U- U, O7 q - ;; Else print error message.
# A7 H" s1 M2 i; Q# h -
3 L6 ?3 j! O, ^, X - (setq ltvalue (xstrcase (get_tile "edit_lt")))4 C% Z1 O' G* ]3 H0 s* V
- (if (or (= ltvalue ;|MSG0|;"BYLAYER")0 j2 ~- l8 n- Z) W6 Y
- (= ltvalue "BY LAYER")
$ K* ?+ a1 w& g* i - )3 u: j/ O2 O, M3 q
- (setq ltvalue "BYLAYER")
8 l3 N1 B* `0 I. |$ K; X - )
; j( ~; q- T+ W - (if (or (= ltvalue ;|MSG0|;"BYBLOCK")
8 h7 }5 F- K* ]/ t5 N; P - (= ltvalue "BY BLOCK")4 @, ]% j: W, [( N$ s
- )
. g/ T4 O$ p* G8 I, R9 k. c9 @. { - (setq ltvalue "BYBLOCK")& w1 F5 [1 E( ~6 ?- W
- ), f; i$ @ x! U+ v/ D
- (if (setq lt-idx (getindex ltvalue ltnmlst))
5 P' o! F6 P4 \; ^0 @ - (progn
6 n, T/ q$ U! m. |8 @6 O - (set_tile "error" "")
. P% W+ C2 q; V# \0 p4 u& I - (ltlist_act (itoa lt-idx))
/ {( O! A* V( t0 s5 R# s - ;(mode_tile "list_lt" 2)
* Y* q9 P" i3 p. Y0 C% x6 j6 @% [ - );progn then* X( `) q [1 [3 A* d; X
- (progn
" {! O) H" x! w2 ] - (if (/= ltvalue "")
+ I; d$ A8 |! v- A, v: g# W - (progn
( P ^( W; \$ x \; C$ x - (set_tile "error" "Invalid linetype.")
P5 `0 y# U7 k# @+ P ` - (setq flag T)
& H3 e, c+ L6 h T1 x- ~ - );progn
: ~8 d, [) _- z% w s' [' L2 ^ - )
, I' c# G2 h6 [7 b5 v8 x+ u1 [3 y - (setq lt-idx old-idx)0 d: M% c7 G% {2 W
- );progn else
: ^% |3 B6 J5 ^: \ - );if
' q7 H& f. `: I, E: X - (if (and (not flag) ;added so a return will take you out of the dialog.0 R" d0 _" b( M' T, X& j. Y
- (= $reason 1)0 U$ W8 {# r& e/ b6 c
- );and% J! z8 m, q/ E9 }1 e& A9 ^* @
- (done_dialog 1) 0 L7 k1 c! b0 a1 K+ o
- );if
! ?; `9 N9 b4 k4 z' j - );defun ltedit_act
4 u- Q6 d1 V, a$ N - ;;
" U" H( N: D0 y2 V - ;; List selections end up here2 n# Q4 r' w1 Z( Q
- ;;
& O, w& c0 |3 R% Y* S - (defun ltlist_act (index / dashdata)9 v n+ q( x5 Z$ W3 s- ?
- ;; Update the list box, edit box, and color tile
0 g; \- y5 p& l: s4 e* h - (set_tile "error" "")4 \$ H( q# b6 u- G* J% i
- (setq lt-idx (atoi index))" |) x5 P' O) h* \. Z
- (setq ltname (nth lt-idx ltnmlst))
6 R X2 x, N: T8 R6 ]/ t, y - (setq dashdata (nth lt-idx mdashlist))
c2 e& y8 T P" L" O2 b: l( o4 m, M - (col_tile "show_image" 0 dashdata)" Y/ `8 c: Z. l1 S8 J- m
- (set_tile "list_lt" (itoa lt-idx))3 R- K8 S* `4 @) ~+ T! }
- (set_tile "edit_lt" ltname)( Q% R' [5 o1 j( u, \6 s# J
- )
; N3 A7 e0 c5 M5 B$ [ - ;;
) p0 |( f2 u) `' Q - ;; Reset to original linetype when cancel it selected
" F7 g* k$ m( t: { f/ A7 |- \ - ;;
3 o# _$ t7 `; g9 {9 O$ i - (defun reset-lt ()% V( o4 V4 w" `. Z6 v, L0 t+ D+ ~ N) W2 ^
- (setq lt-idx old-idx) _, A! H9 {0 y+ t1 u1 H7 H
- (done_dialog 0)
1 f. i9 n1 E0 ~: z- U7 @ - )
8 h1 i9 A! Y, c; r* o0 y' o0 k - ;;
; U( k& u' \7 d - ;; This function pops a dialogue box consisting of a list box and edit box to
7 I# Q+ b3 Y7 `8 {# F - ;; allow the user to select or type a layer name. It returns the layer name
- `5 T/ [' t- O( z8 G' { - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the! H1 Y1 c. Q2 h$ L
- ;; drawing.
7 m$ O. i) S" o! K( p - ;;/ x& i/ U3 Z* W) M6 f$ @1 ?# j
- (defun getlayer (/ old-idx layname on off frozth linetype colname)
$ U) V. ^# x2 B - ;; Create layer list the first time the layer
" \% J+ ], t7 A/ j - ;; dialogue is called.
1 T: z; I" p, v( }$ l - (if (not lay-idx)* X, b! E' o R' i* H& E
- (progn( }) H7 C" C9 B7 i3 ?- {
- (makelaylists) ; layer list - laynmlst0 l' a) S4 H. R; c- j& @- R
- ;rk
3 R+ ]! g5 ` w6 R: B - (setq lay-idx (getindex elayer laynmlst))9 t; u( @0 F; Y2 W
- );progn' b' Y0 s# b) p
- );if3 g- G& P! |/ B( {! ^; Q% U9 I& m
; `& i* J& h8 F+ C/ g9 o8 h- ;; Load a dialogue from dialogue file6 Q) E( ~) u1 U, C8 V6 @/ d
- (if (not (new_dialog "setlayer" dcl_id)) (exit))& y; n0 l$ A) C$ K. n
- (start_list "list_lay")7 l* K2 j+ G) X
- (mapcar 'add_list longlist) ; initialize list box
( K. r/ l! Q: r3 P: t/ d - (end_list)" @7 F. O. M/ T# V8 R) I
- ;; Display current layer, show initial layer name in edit
) z/ n7 z' x, K+ g% H) j$ a - ;; box, and highlight list box.
" g8 |3 M9 i0 L u7 e - (setq old-idx lay-idx): | v8 `. h0 [7 D
- (if (/= lay-idx nil) (laylist_act (itoa lay-idx))): G' g% q& ]- R- m
- (set_tile "cur_layer" (getvar "clayer"))! U( J! x% L4 L
- (action_tile "list_lay" "(laylist_act $value)")
: g ^* ?4 ]1 ?$ x0 L - (action_tile "edit_lay" "(layedit_act)"), U0 F, a7 e# D2 T$ ?$ H" R* h
- (action_tile "accept" "(test-ok)")$ V0 i) F7 N9 \9 |) s! S5 Q @
- (action_tile "cancel" "(reset-lay)")
i4 V, \% G8 p) q - (if (= (start_dialog) 1) ; User pressed OK
# D; `% B0 C1 |+ ~& F6 ?. e! v - (progn/ _+ S3 F+ f' v: n
- (if (or (= lay-idx nil)
, A1 w: d7 |2 N; x0 x+ f - (= lay-idx (1- (length laynmlst)))
2 e3 Z" H: I, x% S) k7 l7 L - );or! z/ x+ v L4 ^
- (progn$ q/ Y6 q4 L: F( v% H4 {5 D
- (setq lay-idx nil)
8 d7 X* j' D' z# o1 Z9 L' d - (setq layname ;|MSG0|;"VARIES")
9 q. f* Q6 q# R; W' a3 H5 \ B - (set_tile "t_layer" "Varies")* g$ I. W: q' F" A7 ]) }/ l
- (setq layname "")
9 P' S" c6 @5 { - );progn
/ o( Z2 K8 \# N @/ a. M) F% m8 I2 W - (set_tile "t_layer" layname)
* g* w/ L5 ^/ g( k - );if2 A& F6 [) j. L
- ; If layer or ltype equals bylayer reset their tiles9 R$ z5 }1 u$ }5 ~9 g8 F
- (if (= lt-idx 0)) ~5 ?2 d, ?- R' G$ y D$ P5 w9 G
- (set_tile "t_ltype" (bylayer_lt))
8 [& [& A6 O9 G. h& P0 t. ~9 m, q - );if
* \: U0 k& U- T( ]; D+ ~ - (if (= ecolor 256)5 k% S \4 p7 z( @% w, Z0 x: ?, c5 N
- (progn: p& N& b( e' ?" @: x% n- d8 w
- (set_tile "t_color" (bylayer_col))
9 V* @0 Z6 w% N8 ?- m* O - (col_tile "show_image" cn nil)
% v F1 C6 f9 c4 b: A - )
4 c/ y* m8 }( V& b - );if
0 m5 G/ Y" Y6 T. s - layname7 M6 f. m& H* r: c" Z
- );progn
& R9 [( `9 X6 {" {7 @: D - elayer. a1 U2 P: }& P/ R
- );if8 v N$ `& _- P5 o6 Z ~
- )
1 a# x/ d/ [+ q3 q* k - ;;5 K1 T! {2 p0 F8 E' _
- ;; Edit box selections end up here
' t" M# S0 ?) p7 b% ?9 ~+ w - ;;7 n$ Y) w; l& ?
- (defun layedit_act()
9 m7 G# |. j. O' a8 @* h - ;; Convert layer entry to upper case. If layer name is
+ Z) }# Y7 C2 c6 I - ;; valid, clear error string, call (laylist_act) function,. E7 U b& C+ t$ B4 d2 [# N/ Q
- ;; and change focus to list box. Else print error message.+ A7 s$ Z, x; ?0 w
- (setq layvalue (xstrcase (get_tile "edit_lay")))
# j+ f9 H, g: j: g* C - (if (setq lay-idx (getindex layvalue laynmlst))% U& W) \! g4 Q( \+ [5 ]) |
- (progn
7 h! X3 o E% ]. q8 K' L - (set_tile "error" "")% @9 _) p% b+ {' k I# m, U
- (laylist_act (itoa lay-idx))
4 P7 M9 M9 D7 x* j. r J9 [) `/ w2 S - )7 B0 v) C/ i: [( l9 c; L
- (progn
}" i8 G. d- p/ B p1 @- s - (set_tile "error" "Invalid layer name.")" N( \/ q5 U, m. x8 R6 {' o( ^
- (mode_tile "edit_lay" 2)3 z1 u, _$ O/ k
- (setq lay-idx old-idx)2 W6 J+ q* {- F1 h& }- S, w
- )* q; N7 e& X0 I R& `/ \
- );if
" j" E( Y/ E% l0 ?6 m* U' w: p - );defun" \9 D n8 {$ r4 b# q7 f; R% r
- ;;
9 _! Q9 j( Z# a) c6 p9 t - ;; List entry selections end up here
1 s" ?/ w: e/ u* J4 E& s8 |# C - ;;
$ K3 {3 S3 e+ u# _4 I9 o - (defun laylist_act (index / layinfo color dashdata)
# I7 J) k% {: i: b* g! V' N - ;; Update the list box, edit box, and color tile# R5 y" B8 E' s, B
- (set_tile "error" "")
# b* M0 e5 z8 V! F9 u( ?5 E - (setq lay-idx (atoi index))
( c8 Y+ S# R1 G7 |; a5 c$ o - (if (not (equal lay-idx (1- (length laynmlst)))) K- K5 m6 ?$ A3 W3 O: \; z
- (progn
2 a9 m9 P# ?0 ]; n$ Q3 Z - (setq layname (nth lay-idx laynmlst))
) n3 n3 C6 f' [5 z2 L; x& i - (setq layinfo (tblsearch "layer" layname))5 E+ y* P: l u& w: V6 w" Z; O
- (setq color (cdr (assoc 62 layinfo)))
8 b; J1 {+ k3 F8 H& a' x1 _. O - (setq color (abs color))
" {# g) u+ m$ q# @; f5 W - (setq colname (colorname color))
1 k9 C& j; n( z* h. h9 M - (set_tile "list_lay" (itoa lay-idx))
; K7 K" n/ _) y2 _6 L - (set_tile "edit_lay" layname)$ [. B; O* f) S4 ^2 x
- ;(mode_tile "list_lay" 2)
& ]$ Y4 p/ W: Z% Y - );progn then
8 \8 ~- X7 \5 v) M* m - (set_tile "edit_lay" "") 8 i- Z3 k3 b7 t% y" F* @ E ~& k
- );if % v* \! z) k, \; Z
- );defun laylist_act! q/ b7 _7 d9 a
- ;;
& [7 [# Q" r. m. Y3 M - ;; Reset to original layer when cancel is selected, v" g8 u8 S! U4 q' e: V
- ;;8 h1 T- S/ N# ?( N7 ]
- (defun reset-lay ()
- d# g+ u3 J3 A, r } - (setq lay-idx old-idx)! y! r" q6 Z8 `. V6 m
- (done_dialog 0)
8 _4 H( J7 I7 w) m: L/ @ - )1 i+ C4 r( y6 q3 H% k
- . n: H: \: n% k; \2 J
- ;; Checks validity of linetype scale from edit box. It checks to
) x/ b$ K. [! X/ E - ;; see if the value equals "Varies".
) w+ Z5 V$ o' W9 U. U
9 y0 d7 B# o- Z$ W1 a- (defun getscale (value / rval)
( B4 J3 s+ w' f& l - (setq value (strcase value)
4 \) J' Z+ l2 ^0 }8 H - rval (distof value)
7 l+ t& _8 x6 u2 |( l% p, s; W% b - );setq
% v# L8 D7 O% N; X - (if (or (= value "")
9 x7 ]# C; ^- T2 T - (> rval 0.0). r. h3 t% w- x3 o$ I
- )+ p) i" L5 F* V2 `; }! r
- (progn
) `9 g) l3 h( G( I3 X. A - (set_tile "error" ""): ~2 Y. U2 i$ m1 y, n& W
- (if (= value "")
. d; W1 B* I' E7 _- C2 s1 i) T - (progn; {6 i! C" c- I7 Q
- (set_tile "eb_ltscale" "")
0 t m! ?# Y- s' U/ C8 O ^ - (setq eltscale nil)
. E1 ` ~* [9 j2 f. n - );progn then
2 D- r; W5 Z' y8 s$ I! Y7 _ - (progn
1 W! G! y/ H5 z0 V$ R8 W - (setq eltscale (distof value)), R8 \$ O" o/ U
- (set_tile "eb_ltscale" (ai_rtos eltscale))% Z' ?: o, F2 b( F# V
- eltscale7 N) T# h: E& N W# w; T9 R8 \7 d
- );progn else
+ Z+ H* S4 @8 x/ W/ H' z - );if+ s6 W! T, U" V
- );progn
$ y: U- W5 C" a+ w8 P6 @/ } - (progn- L6 }+ R$ w1 r2 g8 U
- (set_tile "error" "Invalid ltscale.")
: e1 D/ {3 h, y0 y. M, S P - nil, M5 ?/ d* z2 B4 ~
- );progn else
. U( I" p% r7 [9 `8 a7 r - );if g9 S4 s9 v4 p% Y& p1 a
- );defun9 J9 _% O8 i4 d9 I6 @0 g7 l+ l" g
- ;;$ `' x/ v! Z9 s. R
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
* N$ q" Z0 _% ^ f9 l% s3 B* t/ \ - ;; string can't be converted to a real, this routine checks if the first
. K& t0 v @2 m: N% r! ~ - ;; character is "0". It also checks to see if the value equals "Varies".# D' m9 z3 w/ G9 J
- ;;, f6 _ ~& I0 `9 B) t
- (defun getthickness (value)8 U! Q* `7 G" R( i2 X/ ~, f
- (setq value (strcase value))
) [: {! g6 t0 k' U - (if (or (= value "")
" \2 N" B* r" K - (distof value) I! y, A- a7 k7 q$ I! \- F
- );or
. I& C* g7 r9 p K- z3 o/ L - (progn
+ h- {1 `- L! X8 }% o+ Q- S - (set_tile "error" "")
4 v" L3 n1 B) ~ - (if (= value "")
( M2 K) r v9 q- H) Y( D% N - (progn8 `2 z3 m9 B+ R- e+ o* _8 q
- (set_tile "eb_thickness" "")! q. [" f" H. s" O/ q6 S
- (setq ethickness nil)$ D2 C, R% }$ [" D% ?0 M8 P$ q
- );progn
0 p$ N; a8 e( E8 R" a6 W - (progn4 F6 G. O$ N7 _1 W# Z% ]! A5 n1 \
- (setq ethickness (distof value))
+ K; d4 j& X! B, `, Z; n - (set_tile "eb_thickness" (ai_rtos ethickness)): P8 \( Y x& ?$ L. H+ A) }
- ethickness& N1 |/ d6 s( V" X% r1 n' R) v. m
- );progn/ I8 T, }1 b1 \. `, |( a* E' j) i+ E
- );if. s+ U6 f* G Y4 D& h
- );progn
1 }2 j, i! @3 P2 J - (progn! P% A T3 k8 `: D, w: ` |5 I1 `
- (set_tile "error" "Invalid thickness."), y ]& b! s9 Y1 }
- nil! ]+ y6 J2 D% h( `" e/ {) E- W! q
- );progn7 |7 w% K! y5 g
- );if! g: t/ D; m+ U' r% U3 F( v" ?
- );defun + m" S e& ]# W+ J
- ;;' [: ^8 P& v7 G2 t. S( S
- ;; Checks validity of polyline elevation from edit box.
/ q) p: @, ^1 t" \0 u! i - ;;# d/ |. U) f( e5 h) j
- (defun getelevation (value)' W3 E) D. n* N2 e/ a' K- f
- (setq value (strcase value))( y2 g- {+ h, b
- (if (or (= value "")2 `. d$ q+ |# E0 f) [/ P' ?$ c8 y. `
- (distof value)
0 E& h/ f i0 m: H# A - )
' l4 q" n' q" ^$ e - (progn
$ ~' t) z% I: N3 R! z' m9 [ - (set_tile "error" "")' f4 A; _- e% ^% ^: v' v+ y& b
- (if (= value "")2 k2 N- w+ b) c) Z% j
- (progn: w& u5 v2 H& u
- (set_tile "poly_elev" "")
& Q# d; A& Q0 {7 C9 o& C - (setq eelevation nil)
" q5 N5 e i, U! _$ F - );progn
9 D+ l1 y2 R4 X! | - (progn
) L6 R. p V" _* x8 W* t8 ^9 N - (setq eelevation (distof value))( ?( z; H/ F& N% f0 w
- (set_tile "poly_elev" (ai_rtos eelevation))8 E9 H: t6 [, m- [8 S& E
- eelevation5 y0 p5 v; O- h
- );progn
6 ^/ D% p1 l- G - );if2 _) D/ Q$ R1 E# W! T
- );progn
! Q+ l0 P7 u% L7 t7 E) t - (progn; m9 R# b0 F. O" c
- (set_tile "error" "Invalid elevation.")& t- V2 p L$ J. {
- nil4 B0 L5 E E' e5 i( p7 Y5 `
- );progn
6 l2 C9 V# l6 {2 J5 i - );if
6 D2 H1 T2 T) Z0 ~1 p - );defun& Z1 ]( x0 O5 t. @2 p6 r0 ]; D
- ;;6 j, E; E& T* o4 w5 r) K; t
- ;; Checks validity of polyline width from edit box., h& p+ \6 ~) r: Y. j z* P) z9 V% J
- ;;4 f A5 i; K* H( ^
- (defun getwidth (value / rval)
+ J' N! ?& t4 }8 }' z - (setq value (strcase value)& g/ N0 G4 b3 s
- rval (distof value)( Y3 w) b0 }6 `
- )3 G9 x; M a) a
- (if (or (= value "")7 X& D( P& }6 y2 m' d; l
- (>= rval 0.0)) ]: Y' A3 _! F, Z% x
- )
6 o$ W8 N; G9 D2 b( f# A4 r) \' W: R - (progn/ a, T$ X1 d2 e9 z+ n$ C6 r# z5 X2 O
- (set_tile "error" "")1 Y4 Y5 J& b m$ S* F8 w/ C2 C9 K. x
- (if (= value "")
, }8 Z. q9 W6 w8 z' W- W - (progn
7 H% s5 L p0 w& u6 G: @8 n# ?9 d - (set_tile "poly_wid" "")
" d: i1 z# o4 e" Z - (setq ewidth nil)9 P2 X1 U+ v$ D/ l5 |3 I" V
- );progn4 L! l" \' \' B; l; c1 k
- (progn
5 L) c& h$ B$ C$ c+ [ - (setq ewidth (distof value))
% q4 b! n, b) M3 D: u - (set_tile "poly_wid" (ai_rtos ewidth)); j7 U* o, s( d
- ;width
) x% q! T, W/ ]/ F" y9 E2 \' c8 y - );progn$ Q0 i1 v0 i I+ ]1 P
- );if& ~0 B# B3 W. Y* ?* i/ R* n
- );progn
* \# _, _6 i$ X- l - (progn/ p0 r$ K) l- w$ c" Q2 g1 K% S
- (set_tile "error" "Invalid width.")- n9 ]- n$ x' w* o+ d9 ~0 s* d
- ;(setq ewidth nil)! J% }9 W3 R, x; _+ [* U8 h
- nil + u: O/ w% j8 S# ], M
- );progn# s- E7 e8 F$ ?/ b' q. c# i9 h: z
- );if) x! L7 _. v: N% d0 J' s
- );defun1 d* f. C$ D1 J) ]+ q
- ;;
C3 E0 o, g' P0 T" I# J5 G - ;; Checks validity of text height from edit box.$ V p, w! J- \$ b" B ~
- ;;
% e; k* L7 b/ O" n/ q2 U$ ]3 Q - (defun getheight (value / rval)
! E8 b# a. t3 J6 n `8 Z - (setq value (strcase value)8 I/ Y" ]. b4 H3 \- j
- rval (distof value)
E- m6 _7 M" g5 ~* |9 A6 I - )& T' S/ _- b4 g6 k: \
- (if (or (= value "")
" |; q4 `- ]9 R: k - (> rval 0.0)
1 X. U/ z1 r0 H# U7 X. t1 H$ p - ); `- L, J1 F/ ?5 Y* ?
- (progn; U7 K4 c. r& i7 e. ]$ T
- (set_tile "error" "")
8 S+ b7 ?+ ]- e! G/ d - (if (= value "") v6 k I% b+ B: m8 L
- (progn4 d( o5 x) Y7 }2 E# i) f1 l/ G
- (set_tile "text_hgt" "")
9 `2 |5 ]4 V( y! v$ i) l/ Q/ F - (setq eheight nil)
6 h( T$ W W" K" y - );progn `8 n' q4 e. o$ C
- (progn2 g: U- H- o( O! U: n
- (setq eheight (distof value))
+ V$ C7 a7 D2 b2 K4 i7 q0 N D7 H - (set_tile "text_hgt" (ai_rtos eheight))
/ R+ a2 ]) m: P: i: N - eheight
9 y0 B3 h9 m; W& S - );progn
2 f( B _0 f. J# f- t* X M# y - );if' d; w/ D( s" J5 n7 v
- );progn" I! N3 I# C I0 t4 A2 I6 O% I
- (progn6 s1 K8 |% R+ t# Y4 g
- (set_tile "error" "Invalid height.")
) X! r+ y2 N. z- ?- \ - nil0 o, b @* ]2 G# L7 k' D
- );progn
. c; e- R9 i. c6 ]' _ - );if; U: ^$ j2 p, h- \- G
- );defun4 p1 d$ ?) `5 Y+ q& o* J* N4 M
F5 E6 E" X: b/ L- (defun getstyle (value lst / rval)* n! u3 d3 p4 S/ w) d- m
- ;(setq value (strcase value))3 ]: A9 L( `( S, y# n
- (set_tile "error" "")- z8 y7 d9 A$ I; a: r
- (setq estyle (nth (atoi value) lst))/ O7 p* K% q' l6 a% z2 h: @ O. m
- (if (equal estyle "")
( V% `0 e, _1 d8 U3 r: ^5 S( H& A - (setq estyle nil)
5 f. Q4 b: V' f2 C) P% N - );if" ?) Q# y. L/ I) ` T
-
. @& T8 ]+ U. K# D9 B) o9 A - );defun getstyle; u0 x1 }0 G+ Z- m' C# d
8 k# Q. Q5 m! O: J `: t i- ~- ;;
# P' D. x+ H' e% P9 N - ;; This function make a list called laynmlst which consists of all the layer( ]; {4 L# d- o5 c0 _
- ;; names in the drawing. It also creates a list called longlist which; Z c8 K% u4 d% @$ J
- ;; consists of strings which contain the layer name, color, linetype, etc.) F6 b( S. E- }# \' Q
- ;; Longlist is later mapped into the layer listbox. Both are ordered the
2 A' a9 T' q' q$ z! K - ;; same.6 R z( l% B* n6 @( w j$ f8 o
- ;;# F( Q1 k' Z# m4 q3 i6 P. F! _
- (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname, {/ u8 I" i7 u3 ?4 G1 J2 ?. i0 t
- xdlist vpldata sortlist name templist bit-70
9 v: \$ n1 y! y5 e - layer_number. U- X) ]! ~' Q0 E! y, T$ {4 W
- )
- b3 c0 L& h% ^$ B T# | - (if (= (setq tilemode (getvar "tilemode")) 0)* l6 c) X4 D9 p7 X" [$ X w
- (progn
6 A( J3 D2 ~! F! `* X a - (setq ss (ssget "_x" (list (cons 0 "VIEWPORT")) ^$ a1 f/ O. Z# ]1 \5 P5 _
- (cons 69 (getvar "CVPORT"))9 B( O4 n' I {0 j: U4 A
- )9 ^7 ] z) u2 u- @
- )
* P+ W6 q, F' K2 i9 J6 i - )
8 t1 {- k8 f" d( t- Q* s - (setq cvpname (ssname ss 0))3 O8 b0 Z0 r; n- Q3 L% g: G- N y6 ?
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))' f( k, U$ C0 C% _4 i9 o
- (setq vpldata (cdadr xdlist))
4 Q" ]0 e4 E. l7 M8 g6 D! a# h - )
5 h# s" X& l3 o2 p* i - ). @8 l+ g9 @4 z: ]3 o! h
- (setq sortlist nil)/ X+ A5 s% d/ n) b* W9 p
- (setq templist (tblnext "LAYER" T))
, i- k$ `9 U8 Y1 t# P - (setq layer_number 1)
6 ? F! a3 }8 W) a4 ^! Y1 U - (while templist6 ]* I" o c$ S6 K. s- t
- (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))# b2 U% }& W1 s) w
- (progn - F1 Y: P! n7 c8 {' T6 [
- (setq name (cdr (assoc 2 templist)))
0 {# x) h- q7 G7 O3 |! V - (setq sortlist (cons name sortlist))7 C' N: k i5 ? S9 d+ V" \
- ;; Not dead message.... V8 ^. |/ t: @) Z" }
- (setq layer_number (1+ layer_number))
& t! p% g% c* B% ?* C B* v, ~ - );progn
; e! q }* w* z" T( o - );if
) t% P& U$ ?; ] - (setq templist (tblnext "LAYER"))
. B! ]# e0 z7 K( v6 R5 P; a$ Y - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))
+ R/ G- S; M5 X3 }; e) e# ] - (set_tile "error" (strcat "Collecting..." (itoa layer_number)))+ q6 n+ \. l3 g. {/ i
- );if
7 F! `9 h1 w, v9 J2 l1 a2 D - )
" g( x- }+ G4 _5 {7 z - (set_tile "error" "")! K% w- W x+ x/ S
- (if (>= (getvar "maxsort") (length sortlist))
0 [4 o, i6 ?+ o# E$ W+ Z - (progn8 d, g8 F' g8 \2 r. Y% U8 U1 q
- (if (> layer_number 50)
' b- d* I: a7 v9 Z6 Q - (set_tile "error" "Sorting...")
% d9 I. L. P6 [+ e9 r; u d - ), f' V$ Z) Q( q% p6 a+ |
- (setq sortlist (acad_strlsort sortlist))9 J1 g# a B) V0 @$ j
- )
0 F# A) Q6 F& J C - (setq sortlist (reverse sortlist))
. X% i1 x& @$ O3 \1 t - )
& l. K" [: E- `9 w - (set_tile "error" "")
) `* F: k; q& g! p- J# h0 E1 b7 k - (setq laynmlst sortlist)/ v: V6 y+ j# _& C
- ;rk
* I% Z& T: D% q* | - (setq laynmlst (append laynmlst (list ""))) 2 S# `5 O2 r& W! m
( z) `& p9 g6 I2 u- (setq longlist nil)
2 ?: j. p; O4 b9 A4 \ m - (setq layname (car sortlist))
/ M) W [4 P/ x [8 U ` - (setq layer_number 1)
% K2 N k6 O) u* {! v4 } - (while layname, Z0 B/ l5 Y; z" @' ~! q
- (if (= (/ layer_number 50.0) ; O6 |, \5 {) _1 B4 ]2 B
- (fix (/ layer_number 50.0))
0 E: C2 j3 R0 J6 q& d0 U9 N" m/ D - ); O5 ~- a8 j! u/ W$ l7 G2 m7 x. W
- (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))
. J6 Y" \; n) Q: f% B! T# [3 g - );if; k5 p2 S7 U0 L9 a3 `0 n( ]6 b
- (setq layer_number (1+ layer_number))
6 Z- y# L* C4 H8 v) z - (setq laylist (tblsearch "LAYER" layname))
% P0 Y+ q% a, k( d7 @; U1 z - (setq color (cdr (assoc 62 laylist)))$ r) E2 @3 C! M5 _( J$ k
- (if (minusp color)
# J9 {" S- [7 `& G+ q; A: U - (setq onoff ".")- R s7 [& J1 `" x {
- (setq onoff "On")
4 ^ e F- R6 ?/ y$ J3 C - )/ Q# y- i$ q, w7 R) o- k3 r
- (setq color (abs color))
( A; I1 B9 u; }7 b) G% G- ^ - (setq colname (colorname color))* T7 V1 R& d/ r. m
- (setq bit-70 (cdr (assoc 70 laylist)))( H2 R- Y. l% X
- (if (= (logand bit-70 1) 1)
" H! [5 F9 e& j$ h6 \# u( D - (setq frozth "F" fchk laylist)
, {: t6 M* }2 g! @ - (setq frozth ".")# t4 K% q$ x& `! j* y* e
- )
# T: D# u1 t, J+ W1 }' ]! ] - (if (= (logand bit-70 2) 2) O8 F3 E' j0 \* Y( k, X1 I% E6 q
- (setq vpn "N")
. \0 p0 n1 p! f& Y1 `4 H1 h4 l - (setq vpn ".")" U$ Q1 |: r+ X) p3 o3 ]! k: C
- )
( z& ^1 @8 z' N* z6 e$ M& _ - (if (= (logand bit-70 4) 4)6 Z( o V& G: p2 L M. ?
- (setq lock "L")
6 V; a8 R; L8 v - (setq lock ".")0 E) G5 j& a: H, Y/ _( S- W( z
- )
F, |# M5 C4 H, u8 j0 P7 R - (setq linetype (cdr (assoc 6 laylist)))6 p5 ~( u% { r0 q. q
- (setq layname (substr layname 1 31))
, w7 C* t2 h4 U# S9 j - (if (= tilemode 0)
4 f' [1 M1 ~5 O( O% N - (progn
7 w+ Z) r# j2 M - (if (member (cons 1003 layname) vpldata)$ {& @# U. ]/ G$ i9 k/ |% r8 v* Y9 L/ T
- (setq vpf "C")
5 {# w7 i' [7 \. k9 p5 C3 S - (setq vpf ".")9 [/ l* P9 @ x8 ]3 m
- )* p% H- [% C; I: _5 g
- )4 B; y0 O4 [& \" E9 J6 o
- (setq vpf ".")
% [2 z- Z6 I8 e - )
7 X: O( L" z- E* r, k - (setq ltabstr (strcat layname "\t"
; t" J L8 I- |0 K1 h, U3 p - onoff "\t"
0 h9 a' P5 `4 P2 y+ {3 J - frozth "\t"
7 L: K, {& e6 |8 I! B - lock "\t"
; y$ B/ t/ ^0 l3 ^8 v - vpf "\t"
6 p3 } d7 R2 X9 g5 ` - vpn "\t"
4 o) e: j5 r- ~ o - colname "\t"
! N4 s) v& H5 K - linetype
. L0 ~" t) w7 B- G& Y! ] - )
4 T/ C+ [/ O! x - )
6 G" s: O @+ x& u - (setq longlist (append longlist (list ltabstr)))
/ g2 ]$ U% M: D5 E8 s# j+ { - (setq sortlist (cdr sortlist))+ e* K {& ?; K* Z9 x
- (setq layname (car sortlist))- K2 E" ^7 u' r7 b4 R% p
- );while) ~$ N' J7 C C2 @) @
- (setq longlist (append longlist (list "")))$ q2 ]3 _1 f7 M- a" ^. T
- (set_tile "error" "")
7 i1 l s; l6 G/ n% S o4 |2 s# m - )4 I& }7 Y* f+ v: d. d
- ;;
n; ~. R4 ^+ F/ b - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
) w; A/ Y0 x% v9 M' j1 \# z - ;; linetype names read from the symbol table. Mdashlist is list consisting$ ^# j$ Y8 }4 z2 Q" H
- ;; of lists which define the linetype pattern - numbers that indicate dots,$ m9 r Y' h: o( C0 n
- ;; dashes, and spaces taken from group code 49. The list corresponds to the$ d! }0 y$ g! D @! A
- ;; order of names in ltnmlst.
- e1 T, i7 n, e& V5 G' I' J9 {) M3 D - ;;
& N; G( z0 V, S- f! O2 p - (defun makeltlists (/ ltlist ltname)
. Q3 _* o' T! x) {7 {5 t0 i8 t& a - (setq mdashlist nil)$ ^" a- I( D0 ^, o3 @6 l
- (setq ltlist (tblnext "LTYPE" T))
0 V: B! m& S. N - (setq ltname (cdr (assoc 2 ltlist)))
2 y7 ^, I, ?4 G4 b6 x - (setq ltnmlst (list ltname))
; Q& d2 n- m6 {4 u" [3 `/ p - (while (setq ltlist (tblnext "LTYPE"))( E9 y7 a. ]( [ J( a1 P9 m2 X2 }
- (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))
. F- O9 Q0 {, x j' Z3 t3 G! b - (progn
! J* N7 o! C8 d/ M& [ - (setq ltname (cdr (assoc 2 ltlist)))" j% ~/ t7 f; L' a
- (setq ltnmlst (append ltnmlst (list ltname)))
2 r6 ?' M4 ~% s - );progn3 T" E G' V7 }; K4 ]: x+ J
- );if
) i( R) b Z) ]) q) [! P. q - );while
- S5 z- y; u7 G. W6 b1 N9 ` - (setq ltnmlst (acad_strlsort ltnmlst))
. @. C) d$ T0 p/ l/ }6 j4 s - (setq ltnmlst (append ltnmlst (list "")));add by rk % z! e% M! K0 i9 b
- (foreach ltname ltnmlst
2 \8 _! Z' z9 F* P: g - (setq ltlist (tblsearch "LTYPE" ltname))
2 U. d9 x- N/ z1 e; V, o - (if (= ltname "CONTINUOUS")
- Z9 i3 F6 X$ p' i - (setq mdashlist (append mdashlist (list "CONT")))7 p' M& X( O: m7 F
- (setq mdashlist. z; u! v$ X& e+ a2 `) D6 \
- (append mdashlist (list (add-mdash ltlist))); g& i5 ^9 X5 n# E% H/ t
- )
4 m; D6 `2 z# U, ~ - )
% k$ o! w! U6 |% g - )9 D4 J' _1 l" B$ [
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))' G t$ a5 l. F/ |
- (setq mdashlist (cons nil mdashlist))
5 q7 D0 ?) ]; _% O/ h/ K - (setq ltnmlst (cons "BYLAYER" ltnmlst))
; j4 }% J& w" b7 Q: x - (setq mdashlist (cons nil mdashlist))
) X4 w# R1 E/ A# ]2 P6 h4 O6 q. y - )' [5 N+ Y" T9 F1 W6 E
- ;;
( H+ {: F; Z) P! p* ?( S - ;; Get all the group code 49 values for a linetype and put them in a list
- _3 V; L2 P9 V - ;; (pen-up, pen-down info)
7 C2 D7 N/ H( N# `1 i9 B - ;;; J V8 ^/ ]0 q
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize)
; t9 }, Q/ z7 B - (setq dashlist nil)
2 ?4 b1 X2 S5 T2 O" ] [) w P - (while (setq assoclist (car ltlist1))! j! H! I. B! o) U* U
- (if (= (car assoclist) 49)
" A/ l4 g8 S. K* Z! A/ s - (progn
# J& H( D$ [* [" s& N ] - (setq dashsize (cdr assoclist))
- X+ p3 ]; k o# ]$ v" q4 N* s" ` - (setq dashlist (cons dashsize dashlist))
; p( P1 d, s$ p6 Q; A - )
M. {3 [0 t F' S' q - )
3 g x8 R" W" d0 X. Y2 A0 C - (setq ltlist1 (cdr ltlist1))) f* ~+ ~7 O8 H$ D( T
- )2 M2 c1 ]7 m/ A" O4 `
- (setq dashlist (reverse dashlist))1 T5 c) J/ x9 O, G9 |
- )
( Y8 W0 T/ G$ ^& X* O - ;;8 Y0 a: e, m+ u z
- ;; Color a tile, draw linetype, and draw a border around it1 q# z( r/ A6 [
- ;;1 u. w, p+ b# v* e* j; r
- (defun col_tile (tile color patlist / x y)
) @ r9 h, V; F9 [7 H$ w - (setq x (dimx_tile tile))
, I8 B; @0 c0 W. Q - (setq y (dimy_tile tile))
. v+ H* A$ i& ~ W* J - (start_image tile)
' U* i) ~0 Z/ t - (fill_image 0 0 x y color)) t1 r4 }# {: ^0 l4 k
- (if (= color 7)
3 g8 u. y) B4 F2 k' G; k - (progn
4 t' y! c/ i( `, y$ T+ s0 S - (if patlist (drawpattern x (/ y 2) patlist 0))
" t! A5 p$ S% o$ s' V0 a) [ - (tile_rect 0 0 x y 0)
$ } ^9 {, a) G' j8 L6 n* [ - )2 {1 F/ }6 }4 P9 C6 ^( R
- (progn
* F6 ^( K+ g" i- U - (if patlist (drawpattern x (/ y 2) patlist 7))5 t' W' c* A) ~2 R
- (tile_rect 0 0 x y 7)0 d2 [( I# }8 A$ Q: e0 ]- \/ @, L
- ), _- B5 b9 h5 }4 s1 L
- )
: _; K. L( n5 n) I" V% a6 M3 q - (end_image)" o0 |, I* C2 z- ?8 u
- )
2 W; D. s! e `4 X4 K$ j4 x, {" Y; m9 { - ;;
9 V& p/ l; v: |& u* N3 t3 q$ t- I- x - ;; Draw a border around a tile
4 A9 T9 V! P! O! G - ;;
$ q6 {5 H) c, e. \+ `, w* n% a - (defun tile_rect (x1 y1 x2 y2 color)
5 J7 n4 o* v N' J3 ?0 p _ - (setq x2 (- x2 1))* m; g, e8 I& W: Z4 W2 T1 U- ~
- (setq y2 (- y2 1))/ h2 m @( G0 G1 y- Q- u" s2 W ~6 ^
- (vector_image x1 y1 x2 y1 color)/ J$ ]) l! f# d! Q2 F3 W
- (vector_image x2 y1 x2 y2 color)0 O2 {8 s5 l2 ~6 L* B
- (vector_image x2 y2 x1 y2 color)
' C9 s2 [$ A) W2 K4 H - (vector_image x1 y2 x1 y1 color)
$ ?* |- j3 A* Z4 L; S6 V* h3 X! ` - )
" ^( a$ r4 g9 q( D - ;;
. M$ ]: o: b: n8 x0 w# t - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
9 K2 q# Q* Y8 K" L7 n - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a7 `6 A' I, f7 l/ J
- ;; list of numbers that define the linetype, and color is the color of the1 \4 F; a: ?+ y
- ;; tile.8 S; K( i$ g0 R" `
- ;;
; d; h% A# ~! E0 t( K* H$ I - (defun drawpattern (boxlength y2 pattern color / x1 x2
( a7 X& y: O& [4 \ - patlist dash)
/ r& j' K" j0 e2 E: Z - (setq x1 0 x2 0)
! N3 y. |. R+ N: i) W" \& y - (setq patlist pattern)
6 i/ s e* e i) @ - (setq fx 30). p2 w0 Q& o, P! f
- (if (= patlist "CONT")0 r5 v& H" o' \# U
- (progn+ J' A2 N8 s Q6 o* Z& g. I$ t2 t! D
- (setq dash boxlength)2 U* a( x# P; P9 A0 w6 {
- (vi)
* y* T; X0 R" O$ `, c* a1 h - (setq x1 boxlength)
' g4 }: u, ~. x2 l! ?2 G - ). v7 w( m. \6 X/ [3 b
- (foreach dash patlist
' A; z# n+ y$ J" w2 h - (if (> (abs dash) 2.5)! R: H9 I, g8 d0 y+ p6 E, X
- (setq fx 2)
9 z4 _- M! D k% ^6 l1 q - )# X( d! j6 w, C( [, e( _6 `
- )
7 x5 N+ `$ L" S8 k/ j3 z: q - )+ u# R" F N0 h$ y
- (while (< x1 boxlength)
- ~+ ~, y. H4 i/ s5 k+ e8 b6 [& u - (if (setq dash (car patlist))# r" Q+ u+ g9 | R) A1 X7 i1 V' l
- (progn% V% l+ M% X7 y8 O# U0 z6 r
- (setq dash (fix (* fx dash)))
5 D3 F& j! D4 U# P! E: g( P - (cond2 b. U/ e* O' u! n# S8 g
- ((= dash 0)9 J$ n5 ~) }3 }5 a5 ?3 _
- (setq dash 1)1 A5 h% p0 `4 ]; b5 r) w
- (vi)
0 }5 h- e b6 h# g. u - )0 W7 F+ Q( w5 ]# h, p$ q
- ((> dash 0)
) t& B" z* [# x9 w6 C# e, e9 z - (vi)
5 z1 n% ?: z2 j6 j% F+ {2 Y - ), E' j2 _ j" ~" L$ C+ O% \* n
- (T3 M3 u- ]6 |9 I. d, A# m# s
- (if (< (abs dash) 2) (setq dash 2))
3 d" B+ k( {6 u/ ?8 t - (setq x2 (+ x2 (abs dash)))
2 X) ]" W# t& U - )
) L7 H9 r8 T! K. y0 ` - )
& z5 i, T9 m0 }: d/ D - (setq patlist (cdr patlist))4 R8 p. R/ g6 |0 W2 [7 l
- (setq x1 x2)8 {1 m9 w J( Z; e
- )" v* y% L. g8 u1 w" ]
- (setq patlist pattern)2 _( C, W% P. H+ z" m; p
- )
& ?+ c7 q- E5 U - )
" c* Y9 v3 A: H) e: C( _$ X) N, l - )8 q. I! T- p9 \1 c
- ;;' ~2 S5 p: P8 C' e* }+ I2 u" a# D
- ;; Draw a dash or dot in image tile# g( ]- h' v. \# n/ D$ }1 _
- ;;- ]) {4 P! w% z) o2 f
- (defun vi ()
0 K( n9 G6 E3 F: O; U - (setq x2 (+ x2 dash))
0 w+ u+ B0 S) s! F5 p6 u; b0 j - (vector_image x1 y2 x2 y2 color)
: c5 Z+ G! Q" Y+ u. m9 B - )' W' z3 v: Y3 g( j d
- * O8 v: k# H1 d" r
- ;; This function takes a selection and returns a list of the color,
4 ^5 F& u5 s* j1 E$ E* N - ;; linetype, layer, linetype scale, and thickness properties that3 u& `0 G% n- M A8 b$ d4 z" d# \( |0 D
- ;; are common to every entities in the selection set - (color: w3 ? ~4 P# u2 }7 F Y5 l
- ;; linetype layer thickness). If all entities do not share the same
s7 g' P+ z2 D - ;; property value it returns "Varies" in place of the property) d6 A- q8 F) I$ _9 J9 C
- ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
& B3 N& p" x* @( `% o s - ;; The last item in the return list is an integer flag for the* P0 E% Y9 A9 p- [1 V+ \
- ;; homegenity of the selection-set object types.# y: Q4 F) [" `$ K
- ;; 1 = All polylines, j7 Y' G( I8 x0 l" y
- ;; 2 = All text or mtext or attdef, or a combination of the three
7 Q+ J5 w& F; Z% I' P ?3 W - ;; -1 = Any other mix of objects
: c9 w$ R' E/ u1 { G - ) L: z+ ]& i1 ^9 t/ J; W8 f$ n" }7 t
- (defun getprops (selset / sslen elist color ltype layer ltscale thickness
& d: j* f' J. O4 E" }) m- H - width elevation height go ctr & _; k8 h7 q8 |4 _+ I
- eflag 1 X: l9 j4 c: \* Y0 n: `: r
- etype temp 2 m U, u6 w( r8 |- _0 Q
- txt_ss ;;;;rk 11:24 AM 1/30/97
, g6 _5 R# R' h3 l9 [% c; u @) S. a7 ~) y - tmp 1 v* u' h: q3 L4 e$ f* V. r; y8 J5 n
- poly_ss
! d, ~2 K3 J J! | - style5 H' e6 l% N% _9 j: k- S! l, R
- )) |0 q' u) j0 h2 J" H- Y" u+ |
- 8 W; ?( l+ C4 Q: P/ b' S- u
# J, ]6 |1 X& n- (setq sslen (sslength selset)- }+ w1 @5 b2 a7 h& o
- elist (entget (ssname selset 0))
& [: h. P6 H. e/ B - etype (strcase (cdr (assoc 0 elist)))2 B2 \0 @! D/ e7 w; ^9 F8 L
- color (cdr (assoc 62 elist))
1 A8 M* `# u! _) `# c9 V! V Q - ltype (cdr (assoc 6 elist))3 ?! m4 s6 r. j
- layer (cdr (assoc 8 elist)), f$ U( I9 u% Y& `. R7 X
- thickness (cdr (assoc 39 elist))
1 v M+ L- H4 J - ltscale (cdr (assoc 48 elist))
& L) j4 F1 w7 t9 q' G; d2 S; O: m - );setq8 @; n9 g6 F; J+ G
# p! M& \+ p- G ^9 A3 G- (if (not color) (setq color 256))9 m+ R ]3 r, q( G+ e# [! Q8 h) V' o
- (if (not ltype) (setq ltype "BYLAYER"))* b' b$ s# k: J% w4 ]2 y3 `6 r
- (if (not thickness) (setq thickness 0))
, u9 U6 z$ }5 \: O" k! p+ h8 f5 F - (if (not ltscale) (setq ltscale 1))$ w* m3 t4 K2 F$ b- }
& V |( o$ g6 s7 |- (if (not width) (setq width ""))- D* g! C' C3 N( ]: f
- (if (not elevation) (setq elevation "")); |1 o/ S$ Z9 t6 i: ], v0 [' D
- (if (not height) (setq height ""))0 s7 |& D/ H4 r. L( f R0 P
% s9 w. C7 ^) {1 C9 t- (setq go T : V. O8 |, p0 b. L
- chk-col T ! E( s* ~1 g$ _4 O8 B1 E
- chk-lt T ) {" y5 [ q/ [7 Q; w
- chk-lay T x9 ^" Z- y* w3 r/ ~) Q$ v
- chk-lts T 2 d& o# b, h3 y; `
- chk-th T 1 M& V3 w& w$ [% G) ^& w
- ctr 0. v4 c/ q4 L; o5 n: r
- );setq
$ A. v- I" |. C! i
% q$ U3 d; T$ w ~ m- ;; Page through the selection set. When a property8 ?( B2 n9 M% D* }& b. s J
- ;; does not match, stop checking for that property.
2 Q- b4 ], ?0 u, {6 t - ;; When the selection set is not homogenous, stop checking.& r; |$ p; Q( R+ C i i
- ;; If all properties vary and the set is not a type 1- p' G, T! ^: w9 h6 i, Z4 G7 D3 R+ p
- ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging.
1 f& B3 a0 X: }! d V' Y - 6 N$ E; E4 f8 ` J7 ]: |5 n
- ;Lets set the eflag so we know if the selection set includes any
9 k0 y1 e0 o) w2 c( m! o - ;combination of polylines, lwpolylines, text, mtext or attdefs.5 h9 r6 R/ u7 s) Y* X/ E
- g4 J2 V- x' j! m; q$ X& H t e- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/979 y5 k( h. S: n! c& @
- (setq eflag 0)" h1 j8 j) W3 R1 h4 m
- (if (setq poly_ss
' P/ A5 _% E( `* S3 h. ~; d - (ssget "P" (list '(0 . "*POLYLINE")
3 K P! N) W) N# V8 d( Y - '(-4 . "<AND")
. q; Y5 J5 {! d - '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")$ ^% a) S2 \- o2 N. |9 r' s
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")6 m1 T9 A/ H% Z
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")' K% T- M" H9 N) ]7 n
- '(-4 . "AND>") ( _* [; X0 q) o2 y; k6 u E" p' j
- );list3 O6 G1 d" b8 r+ q; [
- );ssget get 2d polylines (legacy and lw), ?% r: L! n, {' [( A, l* w/ U: j
- );setq
" [9 I" p; a2 k3 K% R - (progn
8 f! K- y* F# r' D- S - (setq eflag (+ eflag 1)), N8 \) c0 @) w$ F: Q0 I6 S
-
. t8 i1 y/ M% \ - (setq tmp (entget (ssname poly_ss 0)));setq
( E( ]1 ?- j' x- z4 | - - P2 P+ i6 a& y' W0 f# a
- (if (equal "POLYLINE" (cdr (assoc 0 tmp)))
7 r& C" T6 `1 D! S% u$ Y; o" I& z - (setq elevation (last (cdr (assoc 10 tmp))))
; h* a: o5 X' i7 X9 @ - (setq elevation (cdr (assoc 38 tmp)))
' t l1 ~1 ^' E: q. ]4 A - );if
a9 g+ l8 }2 z - (if (not elevation)
_: z( S* H1 o - (setq elevation 0.0);setq
; L- j1 b J7 @4 E) P9 Z) H! P - );if
' \4 \" D* h2 q* ?, F/ I7 u& ?2 @: d - : ]9 p0 i$ A( ?' P
- (setq tmp (ssget "P"
4 B: s/ L0 m; ?* E2 F) e7 j - (list % [( [2 n# r3 Y6 b# \7 c& R
- '(-4 . "<OR")
% } ~5 M2 H' W9 ~/ _, n m+ G - '(-4 . "<AND")
$ I( ]' u% H! ?; a& V" P - '(0 . "LWPOLYLINE")
, M( ^0 U" C" W6 k+ u - (cons 38 elevation)
- e! Q, v9 X% f% M- V+ z - '(-4 . "AND>")
+ A) N/ P; H R z$ c7 `% \ T - '(-4 . "<AND")) w3 I9 e d% F- t
- '(0 . "POLYLINE")
6 c" h. |, @( j0 b5 S* z. ?* W% s - '(-4 . "*,*,=") " l) w6 ]% m* c: @% P. [ K8 W! d
- (cons 10 (list 1.0 1.0 elevation))
/ E& u) {+ P$ y/ J" Q - '(-4 . "AND>")
, j( }) `4 l4 w* L - '(-4 . "OR>")
5 t- z% p: X% k; Y4 L& N: J - );list
+ v- K6 p. Y* ], I) F - );ssget
: i+ R& l8 y% z6 ?7 I Q& I9 }. \ - );setq0 e/ V: w) y" t. |' x- [% Z
) S0 W% Y6 d1 }! v! j- (if (and tmp ) W6 x3 k9 l5 e4 A
- (equal (sslength tmp) (sslength poly_ss))
. A3 B. N& t$ G6 W# n( ?8 y - );and' @" m8 I7 K7 v
- (setq elevation (ai_rtos elevation));setq
5 P/ M) E8 G# W# [5 O) S9 f - (setq elevation "")
; H+ u" \' N! h# o% d' ?" Q, X2 U# s - );if. o6 A8 m2 f+ ?8 M+ Q9 f% p$ \6 e
-
$ r& N8 g2 l( `7 Z+ \5 x - (setq width (pl_width_getter poly_ss));setq8 _% d/ Y6 r! J1 B, O1 I
- % h# V+ m6 v* q/ p9 G
- );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!3 J# K- P9 z8 @* x; z$ R1 \' C% r
- );if3 | o9 X/ p2 h2 K) ?
- (command "_.select" selset "")
2 |1 R. G' \: v" i. C -
/ E. n: M$ u# M- R* ~4 U1 B1 ^ - (if (setq txt_ss
6 ]% q5 [- S# p- X - (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT") 5 W; J6 ]& @7 c+ i$ X4 G& |
- (0 . "ATTDEF") (-4 . "OR>"))
: o8 b. r- q( \6 @ - ) ( ^* V* N( V, X* q! j$ _
- );setq
3 f0 @4 c9 t; v' u - (progn) \3 O" I+ ?- v. [1 C
- (setq eflag (+ eflag 2)): a* O# P0 g6 }
- (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))# X/ c( T. c( U2 I$ r4 Y
- tmp (ssget "P" (list (cons 40 height))) : Y/ N4 D% w5 C
- );setq # e) w1 G: j- R! F" c
- (if (and tmp& L% s. v) |( }% ~2 m
- (equal (sslength txt_ss) (sslength tmp)) : v$ V1 s% V+ z R5 N) W2 B
- );and
! r7 U7 _; I: s5 K; Z8 i+ @0 }% b - (setq height (ai_rtos height));setq ;@rk need to translate from float - Q+ l% V6 P7 l2 m7 S* S, m3 T
- ;to string and back again easily/ s' D4 C5 u ~+ X; Q( |8 l
- (setq height "");setq else the height varies + Q) p" D% W6 a7 b
- );if
7 H# m( N0 O1 K - (command "_.select" txt_ss "") # v( r# v4 j" B) W
- (setq style (cdr (assoc 7 (entget (ssname txt_ss 0)))) b* k7 B6 y. ]. l
- tmp (ssget "P" (list (cons 7 style)))
# K4 c; S, i0 t- R# | - );setq + O3 o, |' _9 g- S5 y
- (if (not (and tmp; Q5 s! f8 z) e. W, h- Z! g- ~0 B4 H
- (equal (sslength txt_ss) (sslength tmp)) / e& ?. X# b' W% v7 l S6 V
- );and
l4 x% A: y$ I$ ^ - );not0 I; Z5 d2 L+ Z$ n
- (setq style "");setq then the style varies 1 x/ S! Q- R' W6 o
- );if* w) B$ Q- _# f. g, @
- );progn the text type objects are in the selection set5 j$ S: s" A5 h) u/ l7 j9 [
- );if
2 Z- F- b# F0 j8 {, Z - (command "_.select" selset "")& z, h$ j$ l7 L2 t
- 9 ?0 J4 p6 [8 i# B9 L8 o0 J9 B' @3 Q
- (while (and (> sslen ctr) # Z1 Q* Z# @; v$ G% E
- go
4 O3 ~: `" w1 e" P/ c/ k: _4 W - );and
5 F7 W) A. u5 Y9 e - (setq elist (entget (setq en (ssname selset ctr))))
5 j$ M# ^ \3 h' r1 j: H+ B
/ [4 l( p; k" E# K3 ?" j/ W- (if chk-col (match-col))4 Z: Q3 Q; M' f, F- R) g
- (if chk-lt (match-lt))
, A# x3 i1 R; l2 }' e - (if chk-lay (match-lay))8 d/ e6 k- b, m2 f
- (if chk-lts (match-lts)). Q, I# n9 a# I( ?2 G
- (if chk-th (match-th))
# A( H6 J- O& h6 U
2 \" F+ ~. c7 f$ p1 C+ {9 q3 \- ;(if chk-etype (match-etype))- Y! {2 T% }( t2 Q0 ~/ c
- o1 B, ?9 s. g; Z- u- (setq ctr (1+ ctr)): _% j# G, \* W$ F. Y$ U/ {
- (if (and (not chk-col)( _* ~6 w& M; _3 B' M6 M) N8 F
- (not chk-lt)
- u7 j, ^. k9 Y- y - (not chk-lay)
# c9 j' K. z/ e9 }( B4 T, O K4 ?7 ~ - (not chk-lts); x* t7 _8 B/ R- a w" F# b
- (not chk-th)( V0 t- m' W' G+ w1 @9 L
- ;(not chk-etype)& x9 B/ Y, P) s$ ~; I' o& w- t
- );and
# f4 X3 J8 N3 n. Y7 f( @' {8 ~5 [; R - (setq go nil)
& }9 E# c6 v f5 [) M9 l - );if3 Q2 J( N9 n, Z) ?
- );while
' ]( Z3 H! a- N - ; K, a- |, K4 t
- (list color ltype layer thickness ltscale0 r% ~* k2 Q" p% w
- width elevation height eflag - n' n' B2 |* b) ^9 {- h
- style poly_ss txt_ss
( k ~" a; J) t- K, h Z6 w - )
& D: S, k3 K2 X6 c - );defun getprops6 Z Q6 q5 e) l3 G
% T0 o/ j m, |; Z. a- ; This is a speedy little routine to tell whether the polylines in
/ a& H" |7 E$ w Z+ N% A& I/ y - ;the selection set argument are of varying width or a constant value. 8 p1 n6 D, R7 S. D! m3 k9 ?8 y, ]
- ;Looping through the vertex's has to be done for old polylines when 7 ^( c: n( r0 S$ P8 u# c" h
- ;the polyline header has width values of 0.0. Basically, in this case,
4 }1 i Y# E" z4 b; n0 A - ;information in the polyline entity header is abmiguous. Width values 5 z9 a8 ~- c6 {
- ;of 0.0 in the header entity could mean the polyline has a constant
" v9 w& `. d3 ^! m( ? - ;width of 0.0 or it could mean that the polyline has vertex's of varying
# H: {; b" V9 B" v1 c# z4 L - ;width.
, j6 L: g6 f. d7 x' T - ;
- W) N2 o' a# B8 \& A2 u - ; It's all in wrist. Err a.., I mean it's all in the 'if'* F2 Y% n; n3 z7 G; @
- ;;& T& y$ D2 v: w# a. ` @
- (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)
0 D) H2 f4 [) U; x- @5 H% s
! o! d7 C* x2 \+ D( O, @7 ~5 |3 A6 F- (if ss 7 Y- v& w- u0 a: x8 T
- (command "_.select" ss "")
5 t2 n$ y% A- g% R; ~ - );if
5 x4 K0 `* \! y' X3 x# O - (setq width ""% `3 B1 f" N6 v/ S* h0 `
- flag nil
% a% P. c) {( b' R: _! `0 e - flag2 nil
" a& w0 I2 f5 F' D6 H* y' H- ] - );setq* U; b' d! j) N* f' P
- (if (not
0 s- c. G( K! W: O - (and ss
6 k; D ]0 |3 G6 i) n# \ - (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq# M5 z, W. t7 h H# N2 N
- (setq na (ssname ss2 0)
: Q5 ^: T! l; n+ @ - width (cdr (assoc 43 (entget na)))0 v6 g" ^3 j1 k4 ]# l+ L
- );setq: _3 ]5 s4 \: C
- (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")& v) O* E& b+ U" ^ D- ?
- (cons 43 width)" N7 o% X4 f% P! j
- );list
8 ^& L+ H% |1 ? - );ssget0 t1 m x3 h1 G! i1 G/ k
- );setq
+ {+ a N, {! Z - (setq flag T)
0 \6 A; g* o; K3 v - (equal (sslength ss2) (sslength ss3))
' Y' }! p& c: B! i - );and* M$ H+ X/ q! K; I, f, R
- );not! Y' p9 n* V+ {- _! o% z9 j: V
- (progn8 P3 @. I# Q9 T" I3 G- J
- (if flag& C z5 D6 i1 o( V5 O$ r M
- (setq width nil)
# {4 h7 g7 v) v; Z - );if8 [; z2 D: i: j
- );progn T1 M3 R" E6 t. Q5 c* u/ K
- );if
! m8 Y4 p8 c9 ~3 ~" i0 ]0 l - ! G1 q3 P& Q) J: z% V
- (if (not 4 E3 ~. D o1 I Z" O
- (and " @9 v' S& S s6 r: V
- ss
0 D! G, j4 h& e - (progn (command "_.select" ss "") 7 U# R( C5 @1 Q; F; V; h
- (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq
! P. ~) d% V3 d5 X - ) : b2 Q; L0 C8 G
- (setq na (ssname ss2 0)
6 X6 ?* y+ }5 h. R3 L# Y - e1 (entget na)- a9 a2 o; P7 x7 e! R
- width_a (cdr (assoc 40 e1))
( h2 Y, V% d2 r! T" S - width_b (cdr (assoc 41 e1))' m+ A; |3 T/ q( ?" Y- E
- );setq
0 V: l1 B. ?5 c k9 G" o' [: k5 s - (equal width_a width_b)
: @$ b% c' f' T; j- } - (setq ss3 (ssget "p" (list '(0 . "POLYLINE")
# U# v; h% [* H3 o - (cons 40 width_a)! W2 E. q& q* }0 r" S! s. w0 c
- (cons 41 width_b)
+ ?' F" p4 j/ I' z1 O6 R% x - );list& w( W' T; C* T
- );ssget; p1 b! \6 _5 z, j( c( ]. q: p
- );setq: Y7 d' _7 n$ Y- ~
- (setq flag2 T)- {* S4 P0 h2 y$ D9 j& {4 w7 z
- (equal (sslength ss2) (sslength ss3))1 q- H+ k; a- }$ e! p
- );and 2 n- O1 w; M* S
- );not : j0 k6 Y9 m3 o, r0 \! i( E- L
- (progn
7 J* F" s3 A! C. ~4 v; C: Q - (if flag29 G1 Y8 [' |+ Z6 n
- (setq width nil);setq+ o2 I, U( ?- D$ f/ p( e0 ~1 d
- );if6 s. w4 K$ P! g9 Q. l( G& |2 m
- );progn then/ s. Y4 d: w# G0 s# E. A$ k
- (progn" g' X* P2 T; R# P- u A3 }
- (if (or (equal width "")
& ?% N: p9 _4 U0 s% m `( e$ ^5 \ - (not flag)
5 Q( W: j: j/ h. t! C - );or0 B0 `$ m2 u8 J2 E
- (setq width width_a)$ O# P3 N" B: K! ?0 P4 P" A: M
- (progn+ M1 O) [8 b2 E! p
- (if (not (equal width width_a))
, U5 t9 q! H: y" `: X - (setq width "")
) ?( U3 \1 v7 j7 n) y - );if
3 t, r: @( K1 X$ u4 `8 {( @ - );progn6 D4 ~) \9 J9 l, ] `& U( t
- );if q; ~3 B) P9 s& U- h' z& r* `* w
- );progn
. Q* k+ q. p% g) c - );if
/ | G$ L! V( E) b; g+ }& ^1 r0 ? - 9 ^* j1 O) B/ ]1 Q$ m' ^! X
; M4 B. q; K5 v7 m0 C- ;now for the special handling for old polylines% o; a1 c1 E0 U" b
- (if (and width 7 R' i5 T+ g+ c( i" P- x( i
- (equal width 0.0) L% P8 {' O- k
- flag2
$ ~7 p4 o) u: i - );and
+ v) p; T2 V4 K5 g s - (progn! ` x- b/ D0 B5 Z+ c3 M
-
, L9 P+ @! T4 c; c3 w - (setq n 0);setq
O+ L' M( V4 P! |- u3 x - (while (and (equal width 0.0)
' O) B2 i9 _, \8 H - (< n (sslength ss3))& z; J: ?) N/ G% `/ `$ \
- );and Z T6 g/ _2 d) u4 P
- (setq flag nil
! }+ O5 h- b: g/ @$ T# ~) c, y - na (ssname ss3 n)6 e4 i' {+ \ `$ m2 t
- na (entnext na)
4 R2 L# S4 O: }4 i& m7 V! q - e1 (entget na)1 I9 n7 F; ~! u( V9 g: z
- );setq
$ B' j B% \% D+ w6 S2 X: }6 s - (while (not flag)) @! [0 f/ N; h
- (if (or (equal (cdr (assoc 0 e1)) "SEQEND")
0 z: F$ a5 k( @9 r V - (not (equal (cdr (assoc 40 e1)) 0.0))
% R+ a- s" V, ?& K1 n( @2 n6 U - (not (equal (cdr (assoc 41 e1)) 0.0)). f: J: W. i- n' [" v
- );or
' y7 S2 U' A4 h% y% N9 Z5 G - (progn s4 _' F/ O7 B3 F6 u. U2 S- |
- (setq flag T);* A( K- [- o# n
- (if (not (equal (cdr (assoc 0 e1)) "SEQEND"))
2 E! _8 m, ^, L. e# D8 U - (setq width nil) & f4 a3 Z1 t5 |) S
- );if
' h3 U7 s9 c! [) W1 p, k - );progn then jump out of the loop" p3 L* g. }; K$ \' S
- (setq na (entnext na)
& ?9 C( E- W! V% N6 M - e1 (entget na)! a. v+ Z7 j" i8 r. b
- );setq
8 u/ c; J6 E( }- I - );if
7 c5 X- S" v% n' R" J$ P5 t6 E! p - );while* x2 y: {3 h9 c$ R2 l G/ t- I& a& ^
- (setq n (+ n 1));setq
) K& G" I/ X& J - );while 0 j1 g* m3 ]1 B, ~1 `( h! ~
-
3 ]5 C# B4 i8 E- \$ y2 m - );progn then it's a legacy
Z0 R/ m1 [/ E - );if ;legacy polylines that may have varying widths
2 T: L1 R" g7 I4 h3 g$ R0 M - 9 d! K" @+ \1 E: x; Y( f) L4 i
- (if (not width)
2 X; h7 Q% ~. o6 J$ y* Z$ h! E" m6 P - (setq width "");setq" P2 a4 N2 Q- A! F* }
- );if
7 L% w! g( |1 g6 F! @6 ` - (if (not (equal 'STR (type width)))6 @( t8 r1 T% D" K6 @( P7 S% r8 b
- (setq width (ai_rtos width));setq 8 B2 A# `& L) l
- );if p! U0 a7 @$ z. e$ d5 {
- : e$ y8 q: t/ L: m9 H
- width
8 `1 M$ ]1 x+ E K0 ?, K - );defun pl_width_getter
, B6 _6 P6 i X) w1 {$ l4 T
3 O: j5 E9 T7 ?-
3 N: W: v# l3 I' z( a$ t - (defun match-col (/ ncolor)
% S# e$ }3 F# O5 v/ c - (setq ncolor (cdr (assoc 62 elist)))' h' C2 z% z! d$ R! c
- (if (not ncolor) (setq ncolor 256))
! h& f" d& E$ x& a9 m* D - (if (/= color ncolor)7 C- G" ?- I4 c. K2 H
- (progn/ O( i8 s1 Y- P" C2 T
- (setq chk-col nil)
2 t8 S- Y, N1 c% l G+ C - (setq color nil)
7 i/ v& }5 J( L' {9 [ - )
+ x# {0 }1 J+ G& S" y - )
' M3 j& F* }3 l$ ?# C - )% [" {- y# W9 Q6 i! x, i8 u3 s
- : n2 v% F: S3 j; \4 Z" ~. i
- (defun match-lt (/ nltype)5 P ^6 U& q0 c3 k2 z
- (setq nltype (cdr (assoc 6 elist)))
* A0 v. Y: c' x* E( r+ y - (if (not nltype) (setq nltype "BYLAYER"))+ n/ j4 x$ y3 \$ M' J
- (if (/= ltype nltype)8 a$ r. \5 X0 p
- (progn( P- n$ O4 l( C) g7 ~8 @
- (setq chk-lt nil)& R, I- A5 B# O* Y( [3 c
- (setq ltype ;|MSG0|;"Varies") L% l: h; d: I! \$ G
- )4 n0 `1 I5 |2 g4 u7 P# h
- )
3 x; T) f: `3 V - )! w2 d$ L7 T6 _/ E) }$ o/ E
- 5 x+ l7 Z7 \( k. b9 v# d, V
- (defun match-lay (/ nlayer)
' p- |6 O, z% D) ? - (setq nlayer (cdr (assoc 8 elist)))
/ d5 j4 B. K0 W0 c+ E - (if (/= layer nlayer)- y3 x- c- _! N* n0 N$ _" ^
- (progn
* \& { d& V. B0 w - (setq chk-lay nil)
+ ^) v! f7 ~2 m' z; K3 R3 f - (setq layer ;|MSG0|;"Varies")
* X/ E! m* b* x+ z8 ~1 }, \6 E, l - )
- w' S( g% u. f - ). L0 @6 i' I* H2 a3 J" O% R
- )1 F9 [7 M, z4 K9 N# z# X& G. L
* g+ N+ W( u9 M- (defun match-th (/ nthickness)8 h" O- x$ C$ N2 k/ \
- (setq nthickness (cdr (assoc 39 elist)))
% P& `4 j% a0 ~% _7 g - (if (not nthickness) (setq nthickness 0))
3 ]8 g1 m( g+ f! `, U! b0 r - (if (/= thickness nthickness) v, E H; ]! N
- (progn9 @; M4 g7 E9 Q. i+ o0 y9 P$ S
- (setq chk-th nil)
" j; v. K2 `& j0 O - (setq thickness ;|MSG0|;"Varies"). {7 T$ R1 p" X5 E& L
- )
1 X9 W. p/ O$ a8 @% m - )
k8 ^# v; V8 E) |8 r: ?; v - ), ?. a, I' {: p: i9 p3 [
- - b' _% H: ?8 m2 K; T3 V$ M
- (defun match-lts (/ nltscale)& c2 g4 B# ?5 K, S! z9 h
- (setq nltscale (cdr (assoc 48 elist)))
7 k" ^6 A3 n; p - (if (not nltscale) (setq nltscale 1))# D1 s- c; [9 `1 h* y
- (if (/= ltscale nltscale)
: r5 q' t! }9 { - (progn
2 k- F$ f, L _6 j0 d - (setq chk-lts nil)/ I' d7 l4 g# s( V7 x
- (setq ltscale ;|MSG0|;"Varies")7 X: p- T! g. |( A5 |
- )
2 v1 z+ X+ f; a, y6 g+ D - )
: ] a# V; Z* h K- { - )
- q0 i( l4 q3 {; _+ V0 P5 O; J+ W6 o - ! i; Q/ S- p! R8 q! D" z
- ;;% j* E& V7 X7 @0 q$ S& A& P4 h3 I) b
- ;; If an item is a member of the list, then return its index number, else
2 w$ x: z; E" K! I% ~& Z - ;; return nil.' g" _ g ?! o& d" L
- ;;/ @+ \- U. f8 l' s
- (defun getindex (item itemlist / m n)
" Y( [1 k2 b0 J( |4 i7 m5 G - (setq n (length itemlist))5 p) u) _/ }8 F5 G* S+ N0 y" u
- (if (> (setq m (length (member item itemlist))) 0)
; ^* N6 d. |* w- S0 x# Z - (- n m), Z" a+ N* B2 k2 A
- nil. r% @( J: g0 ] Q% F3 _6 w4 }* j
- )
5 Z9 k& @" e& Q8 V+ o0 y - )
& G7 i: e# d% k% }/ J4 l - ;;& A2 J( {5 ~: t2 t, e! D
- ;; This function is called if the linetype is set "BYLAYER". It finds the
5 g9 N6 Q1 U/ i/ w" p - ;; ltype of the layer so it can be displayed beside the linetype button.( H1 y* E, A7 l; [! I% e/ L
- ;;/ H- I' R4 X6 L( b- m( U8 H1 Y
- (defun bylayer_lt (/ layname layinfo ltype)
/ L( g2 ]' j$ z; B" ` - (if lay-idx( o! Q! k7 v1 V& [. D
- (progn% c* r. _4 |9 m v/ X
- (setq layname (nth lay-idx laynmlst))
/ g% O+ z5 n( F4 a) y: m3 q$ T - (setq layinfo (tblsearch "layer" layname))
+ U$ h% L3 n& l# r8 s: j) C - (setq ltype (cdr (assoc 6 layinfo)))( Y* q% z9 C& r
- (strcat "BYLAYER" " (" ltype ")")$ a2 |1 S, }9 q& G$ L, d D
- )% A* o# w9 l1 P3 h1 A
- "BYLAYER"5 N0 x; s% Y: `- i% X
- )
( _/ d; B3 ^1 H0 n- s - ), r! m" B$ U3 r- _( h6 r
- ;;
7 v" p- b! x& \3 N+ v - ;; This function is called if the color is set "BYLAYER". It finds the
' ]: z9 |9 _6 ^9 _: ` - ;; color of the layer so it can be displayed beside the color button.) j$ O0 I: ^, a) O- P
- ;;
: o+ t; \' T- i/ ^$ C- ~ - (defun bylayer_col (/ layname layinfo color)& _& E8 i0 T0 f6 `7 \, h9 c
- (if lay-idx& R j; K4 M# c4 Q# K
- (progn
0 ?1 K0 c! a2 J$ ^7 N- [% P$ a% W - (setq layname (nth lay-idx laynmlst))
% v: q; f( W$ u+ A" _1 k$ s2 i - (setq layinfo (tblsearch "layer" layname))
. Y. s( v& z* {" _/ W - (setq color (abs (cdr (assoc 62 layinfo))))
8 }$ c. t9 D- ~, r4 l, \1 k0 z. g - (setq cn color)3 P, c; w: D1 p, C# C
- (strcat "BYLAYER" " (" (colorname color) ")")9 a2 t! S& ^2 {8 Q1 C g; z( m7 m
- )% p+ y( |1 Y1 d; {: r! }1 D
- (progn; `, C1 e0 J, x' H
- (setq layname elayer)8 Y! ]7 k; C3 k3 N- n E
- (if (and (/= elayer "")
( s( B+ N/ p8 k* }+ B - (/= elayer "Varies")
8 n: `% {$ ~0 ^* Z/ p - );and# i0 c. v4 F. `3 @' E% e K
- (progn3 d( G# {. W9 K& p2 l' j1 h
- (setq layinfo (tblsearch "layer" elayer))
( j6 Y* @+ G) R6 d' A$ J - (setq color (abs (cdr (assoc 62 layinfo))))
+ Z, o& d5 B7 J9 J: K - (setq cn color)
& f2 t |* O# Z" I- v8 M5 @ - (strcat "BYLAYER" " (" (colorname color) ")")
4 P$ \5 Q( x" q - )
! Y8 d/ l- \6 R% t7 V7 o - (progn# E2 z2 \$ }! V
- (setq cn 0)
5 E7 u* z" H7 K5 h0 y - "BYLAYER"9 F1 U; j2 m( X, [$ I/ O& _
- )
, B3 i- i) t! E' _/ \( q- M6 t9 t8 S' @/ a - );if
# \! g4 O( F4 u# }9 g" T! P/ R - );progn
+ U8 E9 {% I& b* I - );if/ U$ \5 S8 S4 Z5 p' }
- )
- \4 u7 w" H! S& t - ;;
' Y2 A' L! W6 n8 X6 X - ;; If there is no error message, then close the dialogue, _: B5 S$ V( n _( ^) ^7 g: D- p
- ;;
% E! O8 v. F. M - ;; If there is an error message, then set focus to the tile" L' |# \" n& s! N6 `$ i: W
- ;; that's associated with the error message.
9 `8 f: r; L e( a" A. p9 i1 U: l - ;;" k! m/ C" ^1 l. {0 S+ l* V7 _: B
- (defun test-ok ( / errtile)6 E/ a7 n' |1 o5 c7 X* |4 \
- (setq errtile (get_tile "error")): e' I/ L0 S9 T9 J; x+ `2 K) ^. ?
- (cond1 Q* h7 y' O! r5 \
- ( (= errtile "")
/ ~, z4 E; z8 X$ `: y6 ? - (done_dialog 1))% V9 s6 V! B; N, I3 ~) c6 R- [$ p. V
- ( (= errtile "Invalid thickness.")
, L- s6 `! L0 O7 u8 h - (mode_tile "eb_thickness" 2))5 A& s& F7 d7 G7 B ~
- )
$ g6 }) g: A0 X2 X, f - )
" j! J6 A+ N3 ?: e# \: W - ;;. [- A5 u; }0 S1 t
- ;; OK in main dialogue.
; y$ \: I: N9 @. a" S, Z- Y - ;;
) o* b/ m$ P9 b! @( `9 ]; D - (defun test-main-ok ( / flag): p+ \1 ^1 _( i ?2 l# v
- (setq flag T)
2 L) K0 m, u4 s8 m" O - (if (not (or (distof (get_tile "eb_thickness"))' L% M! D) N( ]2 T6 d1 F4 N) b# u% F
- (= "" (get_tile "eb_thickness"))
& V' n3 B4 e+ J - );or& H/ A P- Y7 n- q T$ H, |0 m
- );not
3 @5 c$ L: {! x& J2 c! E - (progn
5 |, a. y: l4 C: X- d* r - (set_tile "error" "Invalid thickness.")& K% u$ y/ b& L
- (mode_tile "eb_thickness" 2)! y5 g _. _9 v- Z/ |% t1 |- l
- (setq flag nil);setq
2 j5 X+ U# }; U' g7 ^7 z - );progn8 q+ l0 F, f2 N/ D0 X
- );if
, U3 E' b6 E7 x8 A- x - (if (and flag" L5 w* k' b' R" s9 ]
- (not (or (< 0 (distof (get_tile "eb_ltscale")))
( {& f2 B. e/ Z3 i# O - (= "" (get_tile "eb_ltscale"))7 ?# G% K/ P% Z* P( q
- );or 5 u, S- r5 P ?( ~
- );not( J; }% H# a) e6 Q9 Y6 j* Q, d
- );and f. b2 p* P: T1 l/ @
- (progn
; }5 k6 e% } O O2 L( n+ X" f - (set_tile "error" "Invalid ltscale.")5 b' a8 s' Q' P$ y# W" R+ Z
- (mode_tile "eb_ltscale" 2)
1 O: a5 S4 C7 B, o9 a, i! o* c - (setq flag nil);
) S% C1 k! F6 S - );progn then; W! F( E: Z4 Z0 |* [4 Q6 ~
- );if1 [4 ^' B b4 e! J
- (if (and flag
Y" E1 {" i, k7 y4 \! B: _1 X - ; Don't test the tile's value unless it's enabled.; o8 ^9 Y- a6 f& u6 E9 M- q
- ; We're not set up for the display-only value
! I' T3 T. }+ L5 E8 b# @ - ; of "" here in the error handler.( B9 |) I5 b) `" B
- (= 2 (logand 2 eflag))
+ h/ `) k7 |9 M+ k - (not (or (< 0 (distof (get_tile "text_hgt")))* I K& W% p! M; y u
- (= "" (get_tile "text_hgt"))
5 l% \( x% j- h2 s. r - );or& s! |/ Z+ m; W o0 l
- );not& d# f; N% ~; l9 m9 f" s) ~
- );and
% r; ?4 Z9 w, \' C - (progn
' W6 e# ` y" N3 s& v - (set_tile "error" "Invalid height.")' b$ G& @8 D0 Z- T0 T
- (mode_tile "text_hgt" 2) ~+ c5 Z3 x: O& a5 f+ R
- (setq flag nil);4 N) q/ I% N8 M. p, H A$ z, K- R
- );progn then6 v9 ^8 {7 a# g
- );if9 A V1 W M5 @7 s/ g
- (if (and flag
" a, l0 Y/ A0 C" |5 f - (= 1 (logand 1 eflag))% B' J; b, \3 x3 Z! G6 d$ t1 [0 U
- (not (or (<= 0 (distof (get_tile "poly_wid")))
' E% d& Z) F5 k a4 ?. M! \( m6 y; y - (= "" (get_tile "poly_wid")). K) { m/ Z$ C1 @8 g
- );or8 \7 n# S J- e2 \/ X0 M5 x" M; I7 r
- );not
2 A$ ]7 O3 r1 I C# d4 J& a - );and
' f( ^# w3 J' A+ u - (progn
2 V; M0 E) P, S8 w- y! ?( p9 G8 Y - (set_tile "error" "Invalid width.")( \* _5 A3 f# O4 i
- (mode_tile "poly_wid" 2): c' P2 G/ n; b) l2 c) c
- (setq flag nil)1 a) X- M9 L& D& E
- );progn then
" \0 l" l1 X" Q' d4 E+ r+ F; E - );if % Q7 ? q" p n! J( R
- (if (and flag1 o8 n- T( b2 O/ r% ^( A. Z
- (= 1 (logand 1 eflag))
" ?9 S1 b# S" q9 _3 H# f - (not (or (distof (get_tile "poly_elev"))
! V1 k% U1 Q" N! A# g; `( p$ w - (= "" (get_tile "poly_elev"))
5 r9 q: `6 n$ }, X& r% }+ g4 h6 K - );or7 G+ i$ J% x8 D' c
- );not
/ t( T0 z {# M/ s - );and
3 ~& S. I. k' _1 t - (progn* @8 ` |. U! D! ^( G/ N: R% Q9 I. T" d5 ^
- (set_tile "error" "Invalid elevation.")
Y' G2 I; M2 ^% _( D9 j! n - (mode_tile "poly_elev" 2)8 A* q. c' v$ f# M5 J3 _& M
- (setq flag nil)
1 z% \0 I- o; e$ m2 E: K' t; w - );progn then
; q5 j5 z) ~; f: o t4 L - );if ) W. U3 e u$ R: x% T! x. B
- (if flag 6 b3 X9 ]$ E7 ^' K! K6 v8 U
- (done_dialog 1)
& |+ C2 U& e" G! V% D. X+ P - );if
) f9 L: d. W" @4 n7 X8 S6 | - );defun test-main-ok# U. T7 r/ f2 ]# h( o6 S
# G8 q1 ^! k: T- ;;: k" \# Y* S ~* T+ G& J! C8 C
- ;; A color function used by getlayer.
% F( v' d! x& _" L! e8 R3 Y - ;;
5 ^( h: A# e% l e, @ - (defun colorname (colnum)
6 D2 z* i% A( l, A( o' p+ G8 R - (setq cn (abs colnum))- M' ] ?; n6 @3 x3 d
- (cond ((= cn 1) "red"): ?% ^+ [9 d# v7 J$ b' C( p
- ((= cn 2) "yellow")( e: N# F$ Q1 b' b$ A& x
- ((= cn 3) "green")
1 Y* S" @1 E, U4 D. n% J - ((= cn 4) "cyan")* E1 C& C3 g5 z. J
- ((= cn 5) "blue")" }6 Y2 U% J3 @3 J2 n( a
- ((= cn 6) "magenta")
* k6 ~" l4 G W8 l. i - ((= cn 7) "white")
" a+ l! S: r, F" @0 z3 _7 O - (T (itoa cn))7 V1 Y) I) h3 S" S( ~
- )) z/ C2 T6 t; h, `8 T
- );defun
/ n _ J' K$ W6 s' ]! `2 H; U - 7 `- @! Y# _( E1 \. I1 G6 f
- ;;; Construct layer and ltype lists and initialize all
. z2 t4 J+ `& G - ;;; program variables:8 u- g+ Z) C% r( d4 O
- : C5 z P9 k8 n' @2 Y
- ; (makelaylists) ; layer list - laynmlst/ `; \2 O* U; @9 b5 f
; G' ^) E; t7 T& ]. ?
/ t% A1 P# z4 X! Z4 n. a- (makeltlists) ; linetype lists - ltnmlst, mdashlist7 c. y/ y3 n/ E& K1 L/ M0 b
- 4 o: a U1 W* M
- ;; Find the property values of the selection set.
; D2 r1 @6 V8 U4 w7 h1 @2 ^* ` - ;; (getprops ss) returns a list of properties from
' I0 ^8 B; k+ ?2 B @ - ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).+ c2 [4 l5 K; j
- * x [0 A5 C9 a9 W G/ o, U
- (setq proplist (getprops ss));@rk interesting things happen here
# y: a6 S! y! r! v3 U- Z - ; ?; }% t) ?9 V2 h/ B2 E
- (setq
8 S) [2 \4 k5 D: h7 U! e - ecolor (car proplist)& G" T8 |) O0 g& n+ B4 L: W
- eltype (nth 1 proplist)5 S! L0 o! U7 w" \" l
- elayer (nth 2 proplist)+ B/ q/ x5 f) ]$ H' N. A7 t
- ethickness (nth 3 proplist)$ a/ r8 e; A' t) t& t% U/ |
- eltscale (nth 4 proplist)
! i5 q1 ]5 o2 L* H; @! e# O - ewidth (nth 5 proplist) I; j% a4 K# x0 v. M, ?% K. y, S
- eelevation (nth 6 proplist)3 s( P# P/ N( v7 z4 H" N7 z8 s
- eheight (nth 7 proplist)
" n. b; `0 C+ j - ;etype (nth 8 proplist);commented out and replaced with the line below. RK.
% v, V& b5 N* i - eflag (nth 8 proplist)
/ c0 R* _7 O& T. ~8 ^# y - estyle (nth 9 proplist)
6 y1 ~* [2 Z. k: t - poly_ss (nth 10 proplist)$ N& F& h3 s9 U% v! c; C
- txt_ss (nth 11 proplist)
7 K! z! s) D2 s - );setq2 y5 a. r& g" ?, |+ S
- ! r1 Z; w( Z3 F5 Z, a
- ;; Find index of linetype, and layer lists+ [$ f5 H5 }% |4 {; t/ u2 ?& R! q
- (cond
/ P- w& N1 r6 s - ((= eltype "Varies") (setq lt-idx nil))+ C( U+ R* Z; x2 i% L' g0 L
- ((= eltype "BYLAYER"): ]# A; G6 f# B6 T& Z1 F6 e+ a- D! S1 V
- (setq lt-idx (getindex "BYLAYER" ltnmlst)))
5 }% P' q1 s: Q# R3 g - ((= eltype "BYBLOCK")
# _- ^+ | V1 I R) ~ - (setq lt-idx (getindex "BYBLOCK" ltnmlst)))6 R. G; o+ Q5 [9 k, v
- (T (setq lt-idx (getindex eltype ltnmlst)))1 f; p5 a1 q7 C& j5 u+ @
- )
/ I" j' H- \, d: h% d - (if (= elayer "Varies")' a3 b: \3 _3 i# W/ M. S0 ^4 j- x2 d
- (setq lay-idx nil)4 \1 R; T8 ?3 c% H/ Z5 k
- (setq lay-idx (getindex elayer laynmlst))
R: J D' H3 {7 q5 r Y - );if
5 l1 L3 J+ F+ P V: _ v+ R - (if (= ethickness "")+ s4 d! B: r7 p6 L+ k. o
- (setq ethickness nil)
4 S9 w2 K# V8 R2 r8 _7 t - );if
1 N8 ]+ M5 F" \! y7 {7 F; V - (if (= eltscale "")8 h3 o) D8 B# N
- (setq eltscale nil)
! N: [5 H& r g# b$ p5 l+ A6 X - );if
7 U3 C3 Y1 g" v- b# I* a
/ D7 N+ t3 M8 i5 v5 D8 h x- );defun ddchprop2_init ; end (ddchprop2_init)5 Z, F C3 Z0 a: R
- ) p( [3 g7 z% x+ D2 n! V
- ;;; (ddchprop2_select)( Y# ?6 h! H; M0 y4 v
- ;;;
+ w# P- x2 I+ C6 Z( B - ;;; Aquires selection set for DDCHPROP2, in one of three ways:
, @2 n) s, {/ k2 k - ;;;0 o# L& [7 _) p1 K
- ;;; 1 - Autoselected.7 |$ C' \! t# C) T* A0 j! u; |5 p8 }
- ;;; 2 - Prompted for." }6 c% H. Y# U# Q! i1 T A
- ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )
' r) Z% d% z6 I" t+ R9 ] - ;;;
- I8 D* N0 c5 E& d5 i# a - ;;; The (ddchprop2_select) function also sets the value of the9 |3 A9 V6 \% D1 y
- ;;; global symbol AI_SELTYPE to one of the above three values to0 {( A5 X# D$ x4 g
- ;;; indicate the method thru which the entity was aquired.2 R/ w1 |% a, ]& a. V: k
# v- x0 c/ z( i8 a, S t- 4 C( l6 p2 }- C' p, X
- (defun ddchprop2_select ( / )
9 k2 V: V3 X g( _
# U7 K' W- S2 C- B2 [- 6 R: l2 i1 n/ E' x- E2 ~+ V4 i. [
- ;returns only entities in ss that are in the current space. 0 {) {3 `- R7 Q2 T/ B7 J- w+ m
- (defun ss_in_current_space ( ss / a cur_space ss2)" Z9 E& v+ z7 T2 G! j H
# ?* }# o) E% \$ H5 V4 b) A/ l% |- (if ss
+ m3 A, E& U. U% X* s - (progn! c' M0 L, c* n& w c! |, O# g" Q
- (if (and (equal (getvar "tilemode") 0). A8 A5 J3 ^- G7 a
- (equal (getvar "cvport") 1)
/ l* k. A. k5 g( V# D% k7 A - );and
4 G8 T" Q; p9 | - (setq cur_space 1);then paper space is where we are.* j n* v, @& a" q# _- W s
- (setq cur_space 0);else model space.
) Q4 t+ z) z4 s. n- P; x: S - );if- {0 N/ l- J) M' c) _6 }
- (command "_.select" ss "")
3 k) b6 w5 O. z" m1 D - (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq
; C. X# l* Y3 Q& c% M2 ? - (cond ;;;;;tell the user what's going on.' \% ]3 v1 h, T& c. H. c+ r r1 z
- ((not ss2) (princ "\nNo objects found in current space."))3 [: C+ H" f! `& W
- ((not (equal (sslength ss) (sslength ss2)))
5 H4 j5 x! w0 \0 Y2 E6 B - (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2))), m& O* J" R" t! k8 ?' C
- " object(s) were not in current space."% x( W2 P8 C# a4 ?; k Z
- )! z1 a: S& ^! E
- )4 F- E, R' A' ~) a
- )
, y+ t0 }; \: n) n3 M8 K - );cond
* Y, B2 w0 V. k! q: T - );progn then0 R& u' j$ q' C- J
- );if ' s; _7 l) d, U" o
- ss2& Z" C/ p1 o! T1 s
- );defun ss_in_current_space% `' U6 p% L ?2 A+ r8 {" u
, v' h( o7 l' ^" @3 P6 I/ K. q \( ]- & s. l d# ?3 e+ ~% O. I7 _
- ;;;begin the work of ddchprop2_select
s9 M) W. f* G, w5 R! K2 ` { - 9 a- ~5 W7 L% `1 p s1 `
- ;; temporarily restore original highlight setting.
4 H8 D/ n f$ v8 F9 _- m5 w% y( Q - (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))8 a& q, L# i: y( Z
- (cond2 R3 ^1 ^+ a# P6 S( j
- ((and ss , g3 Y$ I! W. E7 U
- (eq (type ss) 'pickset)$ W% E( z* x4 I! k
- ) ; selection set passed to% Z% P+ c N$ W$ [) W
- (cond ; (ddchprop2) as argument
8 v9 K7 X+ l# l - ((not (zerop (sslength ss))) ; If not empty, then! R% S* _) C7 Z: A! Q
- (setq ai_seltype 3) ; then return pickset.- ]% G( Y+ A) Y9 i) G0 d8 ~
- (ai_return ss)" ~) x5 B9 U6 @/ [; p5 M; L6 l* f. A
- )
: Y! H/ k" R% K# l: { - );cond close. `* o, {. L# s
- );cond #1: P& O) {% t; r. j
- ((setq ss (ai_aselect))) ; Use current selection9 B3 E- y; i! Y0 ?) h
- ; set or prompt for objects
5 Y9 E2 h& k0 O( I! [" F - (T (princ "\nNothing selected.")8 a# J* `4 M6 }( N
- (ai_return nil)' n! G9 X6 [& D# ]
- ), ?8 R T8 x6 x R8 k1 H. J7 Y: y
- );cond close9 k8 J E: X" p6 e# K* C( `* G0 L$ k3 E
- (b_restore_sysvars)
; v7 J. D* z4 s9 x% L. y - , j/ D; G- [- ^8 D3 P, V
- ;(if ss( n. K5 f% {5 E, J3 c% k
- ; (setq ss (ss_remove_locked ss)) 6 L# ^8 ^* r5 }
- ;);if
3 q( s+ ^, r. K& l - (if ss9 ^$ D2 f/ @/ w6 z
- (setq ss (ss_in_current_space ss))
+ _% ?* J1 u8 K/ l6 _( T - );if
' h: W) B& T' K7 b( Z
+ ?7 J3 ~# u. m$ n$ k$ H- ss9 ]: X9 w* v6 g8 @+ a
- );defun ddchprop2_select
1 ` k) S3 C/ ?" b& @! G" @( F
( w: W% i; E/ {; ]; n- _- " P. o+ ]8 g3 [/ I4 z
- ;;; Define command function./ h5 Q7 E1 f( }& x5 D
- (defun C:CCH (), ~6 u1 y" X) o5 [" t: Q; G/ z# q# n6 |. }
- (ddchprop2 nil)! V; o, }0 {! C& M9 }6 f
- (princ)
# S9 G: B8 F& p0 S* j' J+ X! x - );defun5 q& y" R/ B6 Y3 }& H- N% r( v
- , b7 m' H6 i1 g- Y: @2 j- ^
- ; R/ T+ N: J8 o& R& e
- ;;; Main program function - callable as a subroutine.% W' L+ h& m' H
- ;;;1 f+ B. d1 p; i0 b j/ u8 O' T' N/ M
- ;;; (ddchprop2 <pickset> )% q5 r) j$ w3 k2 P
- ;;;
5 r& F# G- T) u% P5 B6 P' x - ;;; <pickset> is the selection set of objects to be changed.% j- Z+ ?0 b/ U/ ^
- ;;;; k1 N, t) _% e8 ?- p3 M5 U
- ;;; If <pickset> is nil, then the current selection set is8 n& U2 Q' m0 I4 w) g5 Z% B f
- ;;; aquired, if one exists. Otherwise, the user is prompted' x8 h9 {- @! z* K
- ;;; to select the objects to be changed.
: e' S1 i2 y7 Y7 V9 ~0 A - ;;;3 h% f2 J4 F3 H( G* N
- ;;; Before (ddchprop2) can be called as a subroutine, it must
' S: {5 A* L9 Y0 W. U- V - ;;; be loaded first. It is up to the calling application to
C6 l& e. w+ z - ;;; first determine this, and load it if necessary. v3 q, J0 y, y) K5 V" f! f" \
- 1 [! `& `. Q% E
- (defun ddchprop2 (ss /6 V, s+ a% o+ Z; B
& ?( U3 n) U: G2 U, ^6 b- a9 Y4 i! w2 ~' M6 G# I
- add-mdash
d t: S/ g* `$ W+ ^3 r - assoclist7 p* t+ d% v* v
- bit-70' {5 o1 a" p" F" ~$ j+ x& X( l4 p
- boxlength0 j* b: {6 R8 U4 y! m+ a% h: i; t
- bylayer-lt1 h e$ G/ D3 T9 B* _
- bylayer_col; |; s; ]) ?6 O2 l' [4 J! W6 U
- bylayer_lt
6 s- G; q! U0 f8 |9 Z - call_chp2* _6 R) q8 b( ]5 H
- chk-col/ g4 K! z7 U2 C, b$ G A
- ;chk-etype ;var removed by rk * J; e) V4 r; \2 i
- chk-lay : V, M j/ m7 \" u9 o$ W
- chk-lt
k/ ]* V9 x2 b+ G - chk-lts ;var added by rk 8 M- e9 _! }. q# R+ k; k" B
- chk-th
1 o3 s4 J" c H) e/ s, B - cmd& `# t' Z3 F3 h) ^5 L/ \
- cmdecho
0 u- p7 I [ y- l0 Y* a. V* G4 y - cn! p/ W: x8 J6 }
- cnum
; Y/ C# w2 S: O4 d& |2 O9 h - col-idx3 f, U2 O8 q& s* f% h0 p7 n+ K
- col_def9 C; P4 b. f5 E0 ~8 V
- col_tile
! U9 L( Y. d& i; l& \9 N - colname
2 M: l$ R+ Y9 T. d8 x- W( d9 I) x - colnum! n A9 \ l- o! |. d7 E, ~7 h
- color0 V Z* K/ Q* e0 [8 h) ^
- colorname
* `) F7 X# N- q5 F1 X7 S - cvpname
+ W' O A" A7 m - dash
1 r! D* `, l( w0 g/ d" ~9 ] - dashdata
7 o8 }8 i! h; O f2 w% v - dashlist/ T9 }" R2 T$ C; P: Y# ~
- dashsize9 |" c+ F U5 }2 s/ h; @ K* ?
- dcl_id9 w4 X9 b" `" T3 d9 b% M) R
- ddchprop-err
7 o( X% t4 d V' u! B - drawpattern/ g. @) R6 ^! u/ Y) Y+ f1 x5 o- o
- ecolor
/ ~6 S! u1 ]. g) ^ - eelevation
! j% G, L# D; R L1 j - eflag
( H4 J8 l' `, R2 ]# L1 Q - eheight5 @; S7 m3 s$ a9 V2 S& M E$ f" z
- elayer6 j, s* n1 }, p+ H" ?2 n' Z
- elevation
/ N$ [. ^7 O9 B( N% y* q - elist2 V& Y" z4 r% o! E8 W U
- eltscale V6 Q0 R; K: C) W" U
- eltype
7 x( @; E, F h - en
: g# I3 b& H3 G: R9 h9 y - ename
% Q( o, @2 F/ x. ?1 T - ESTYLE ;var added by rk. f3 j# X% ~) y, T& w& {6 |4 y4 C
- ethickness
' j7 O# i" s/ A - ;etype ;var removed by rk
, y; I0 v. k% V - ewidth1 T p" z9 ]! s7 |
- fchk5 {, ?4 F' [5 C0 m6 g% g
- frozth
. X& x% ?9 p2 t8 U* K, Y* J - fx# ?& \# M5 R P5 O3 z/ p2 w7 O
- getcolor; u1 M( E* v+ m# i a
- GETELEVATION ;function added by rk$ l1 p* T5 P! s# l# Y" Z: W3 }0 w
- GETHEIGHT ;function added by rk
/ `* f1 @0 |/ J# [ - getindex" G5 c6 R- U' g; a
- getlayer% B1 r6 Y7 P! b: k4 b% p. m- o; {
- ;get_locked_layers ;function added and then removed by rk
6 S4 |4 S9 s5 S$ {& s( X8 J u/ a - getltype
4 x x8 D/ b) ~, |$ [ - getprops
5 S4 O9 ^: k3 T! k8 O! i - getscale ;function added by rk
) ] ~2 z- X' n; U - GETSTYLE ;function added by rk
& R5 I; s/ g9 y1 P0 e: W - getthickness& U* P& ?8 ?" ^: A& ]2 f% u) [
- GETWIDTH ;function added by rk
8 r/ a9 Z# l# ?- C5 E( ^/ Z - globals' F5 R% }7 W; s$ K$ y+ I( X- n
- HAIR_STYLE_LIST ;var added by rk
5 j5 ?2 P' V7 | h" m - height$ G: Q4 Q2 ?, _
- index
% l/ n" T, d$ w( | - item) x0 j: z4 k3 A4 c# |7 }5 n
- item1
) ~+ |& F- A( j" w) k$ x ? - item2$ S1 i7 p8 F* Q$ g: o# Z
- itemlist
: v# Z' S2 I1 H/ h - lay-idx/ {, [! R% R0 X6 `( ~+ q4 h
- layedit_act
2 I) J1 v3 \4 b. e: A t" @' L - layer
$ X; C: c$ v6 `/ u - layinfo
5 f# h& S# K9 A: d - laylist
. o4 L; v8 L6 \: } - laylist_act3 \( r0 h: ^+ [+ F
- layname7 S. U1 ?% M7 l: G1 i
- laynmlst( s% E5 ^( c2 r% q( P
- layvalue
- T' E# U" o4 d& y% U3 ~ - linetype1 l: V, Q) L q% Y2 o1 N
- list1
2 h% A; G& U4 U; z - longlist
- Z- i) ] Z' i: Y! L# x! Y$ y, z8 P" f - lt-idx
' C0 }9 B: x( d: W4 x - ltabstr" V9 d4 D, ^( j% z
- ltedit_act8 B9 Z- R2 |3 {2 P
- ltidx% w/ U4 e) p: ^% W! V# g1 A5 g
- ltlist
6 g4 [/ \, Q( I" k# T1 l - ltlist15 C# s/ X: R. @$ h. Z, W
- ltlist_act% P9 D0 p, s% e# T& q
- ltname) R: R$ S9 U6 q% H. v' [
- ltnmlst" L0 P3 d6 r6 r+ N5 @1 J
- ltvalue
" ~; Y3 e# F% i; \# y9 i% b - ltype9 P- g& u* k; v* v& {( h
- m
: E7 V* g2 `# c5 e4 J. \8 f- e - makelaylists2 a6 g: L0 [ m2 i/ A+ R% ?
- makeltlists; I2 a v2 H* `
- match-col' B: K& b; g, W
- ;match-etype ;function removed by rk* z, f& j# J/ W. f
- match-in
& v6 I5 g7 B$ c& l4 [1 Q0 M - match-lay8 M; d5 S4 l& c6 g& y
- match-lt5 a4 m& ]$ M' y: J& i" Z
- match-lts& ] Y- W8 G$ N" x0 g I t3 Q
- match-th3 r3 O+ G" t2 |, V
- match_col
0 E- \, A$ I: Q' G - mdashlist/ J4 {6 d: B- n1 d
- ;MPOPLST ;function added and then move to ac_bonus.lsp by rk
# [, d, v& G% J9 H - n5 O ]/ P8 U1 ~2 b2 U+ G* ~
- name7 Z9 R9 u& @- a& e# T
- ncolor
5 D2 ~- {6 d2 I0 Z1 B- s. R - nlayer
0 A' B% Z, z% L - nltype& ]$ g! x# `3 y3 T) {# s
- nthickness
: J$ ~2 ~' a o( w3 ? - off
2 \ ^+ s0 P6 X7 d$ u3 D- z* i ^7 ~ - old-idx
6 J3 h6 t" z3 }( E# v7 G) ~ - olderr
! N4 E0 E( [! O4 N8 e) L8 _ - on, O% ^6 d8 ]& \ e& A
- onoff/ r8 V' W5 |& |" r
- patlist
D+ @$ b! ]1 K5 r - pattern# ?- I. m# J5 [& K
- PL_WIDTH_GETTER ;function added by rk
1 z! @ P% e5 N g) e - POLY_SS ;var added by rk s$ C& C/ F. o+ z9 p
- ;POSITION ;function added by rk and then moved to ac_bonus.lsp
4 w0 d2 v( f# L. Q# M2 `0 t3 N - proplist
7 i2 P+ u3 J* v; f! N - reset-lay8 r- y8 K; y2 ]9 D- d* ^- f# Q2 N+ Q
- reset-lt* A3 t8 H2 O4 |' K0 |1 Q6 o; z3 c
- s
3 n! Z# B0 I2 E: d - selset4 j2 ~. j2 L: ?) R& Q( Q
- set_col_tile
4 o9 [9 b8 m8 s: F# n- z* _ - sortlist
8 w: B( b# l6 B7 O - ss! D6 @9 O4 C5 b3 {2 j. {
- ss_in_current_space ;function add by rk.5 T. A# y+ C: ] F
- ss-index( _6 n1 d7 L$ m
- ss-length& C- `/ @% f; H2 T7 Z/ _( \0 E
- ;ss_remove_locked ;function added and then removed by rk.
$ _; M' ~6 B% k3 D" i1 v - sslen# L, g9 ^ r% l5 j
- temp_color) r& u4 @$ F* n, x7 K
- templist
5 a" d0 X4 Y4 f' @ - test-main-ok: R) Y3 V# c/ J* o2 B c: K
- test-ok4 J. N2 \, d( T* u, f# q
- testidx
: D2 I* s; k. J* y( Q - testlay9 E7 U4 \7 x; t W9 {
- th-value
. S+ S9 D% d3 E& L - thickness
7 J2 Z" m5 }& p+ K - tile
8 X9 c. x6 z7 H- C# W& s% Q - tile_rect( Z& y X7 \) Y1 a% Y3 C
- tilemode
' a0 ]. Q( X9 b - ;TNLIST ;function removed and moved to ac_bonus.lsp by rk |. E3 ]$ A8 y9 w
- TXT_SS ;var added by rk
, Y: W# }( F9 ]3 W - ;undo_init ;removed by rk.% k: Y/ k+ @. ` ?
- vi5 E$ G# T3 C* M4 k2 N
- vpf& u3 k. L9 m) \' V+ a2 q& D7 N" f
- vpldata
5 \' j+ x- `0 O$ R4 r - vpn
6 E. z. b4 Y9 J% r, f; c9 s5 V( l - which_tiles
' @, I' Q* m1 v* w/ E - width0 Y J0 I: R+ Z# w) Q w0 D2 P
- x
7 p( Q! Y+ z: u! K6 H$ F5 l - x1
% ^ h& ^& @" R( L9 Y: T - x2& n5 [7 j5 T: _
- xdlist% ]/ G, N- Z% ^4 e4 ^" C% I6 A% {, Y
- y
: w; i9 h O% h$ N, K- H' W1 k - y1; X3 Y. h& c0 C# P+ K
- y2
" W2 f* @' y5 s7 h2 u8 F: t8 Q - )
1 T: L5 W' G4 e( O# {5 B
5 R, G# z) a1 B9 i- (if (and (not init_bonus_error)
% u, B- }0 C2 }: S1 c0 P- e - (equal -1 (load "ac_bonus.lsp" -1))
1 |: _/ J; r! k; m' S% V- O; W" J - );and! I4 x; ?+ E% J9 G& w0 Q. r, z( \
- (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit)): f! T u$ u7 R, V1 k8 u
- );if' r9 ?* ]; i) K6 v2 v1 c0 d4 O
- (init_bonus_error (list( a, b! V4 X) ?. v+ \7 d% J' ~
- (list "cmdecho" 0
# X$ Y6 t8 |) a1 [, v, S - "highlight" 08 i# a* t7 V# z" I* Z2 A i2 t
- "regenmode" 1. r- H, y' J, S* F; V0 M) W
- "ucsicon" 0. x7 q" U* D( u f% \" s- N+ `
- ) # C" |9 c6 j0 u
- T ;flag. True means use undo for error clean up.
0 O9 u7 f4 ?6 U/ {4 f3 C - );list
5 m( w' A4 O' o/ |7 G - );init_bonus_error% A4 E* V4 f0 C' ?. o
! ?" ?$ w- _( N. O# \ Q1 u- (cond2 B$ B c! h3 [7 `. X
- ( (not (ai_notrans))) ; Not transparent?
0 N# P7 t, ]* O D5 y+ G - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
% ]1 D. [- V8 a) C2 l2 N - ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?
% R Q5 p( Z6 u2 V/ l6 J" q - ( (not (setq ss (ddchprop2_select)))) ; objects to modify?
# A% U0 i5 k3 H5 G* H8 o - (t
3 L& U7 s/ Y. x# K" [6 L2 O: S) F - ;(ai_undo_push)( _" _2 j" v7 w+ F& V$ X% K
- (ddchprop2_init) ; Everything's cool,
$ \% Y& m8 g$ _" w/ Y - (call_chp2) ; so proceed!
1 j$ ^# Q# ?! N - ;(ai_undo_pop)
/ e- i4 I9 R9 w( p0 e - )" C5 K2 f1 y9 t# k* {& z( O
- );cond close( C0 D, e2 D' E# J: C
- - i8 F- M: }' d. q
- (restore_old_error)# o& [ |4 ]0 L; N
- 0 G& R4 | |4 t$ B) V
- (princ)
1 r1 E/ j, P5 m$ W( c: f8 M/ i - );defun ddchprop2
& S5 b7 ~3 \1 M, g6 C; ^9 b( b
: f0 o" h7 X' G& ?3 \: S, U! W% Z- ;;;----------------------------------------------------------------------------
5 [0 }5 ~1 ^0 ?$ U8 C - ! E9 l" D# B+ i
- (princ " EXCHPROP loaded.")
; r' h& G* w7 z - (princ) {% ? D9 y/ H( u, `/ L
- # ?# ]" o2 |7 I& E. l! P+ {
- ;;;----------------------------------------------------------------------------
9 @! T2 g& R2 B' O. t" B4 A( w - ;;;---------------------------------DDCOLOR_LSP--------------------------------4 H) ?/ F1 U$ w6 N0 v; Z6 U6 Y7 t
- ;;;----------------------------------------------------------------------------* q. @9 @8 k1 `. J1 K0 H
- ) o' X& ~8 j2 p( @9 s8 M
- ; Next available MSG number is 24 3 x3 R" _+ u: N7 N C
- ; MODULE_ID DDCOLOR_LSP_
- v+ r9 Y! {! ~1 w. {& p: g - ;;;
8 N' U' t+ T, q( b H1 K - ;;; ddcolor.lsp
7 [- I* u! b' i1 v - ;;;
. X/ v9 z/ M3 e1 B4 A- {2 d - ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc./ H) F- @3 Y; q) ~3 `: Q
- ;;;
7 T x I$ V6 j - ;;; Permission to use, copy, modify, and distribute this software
( t2 ]% i' a& B" T: Y0 O9 {- ]9 [ - ;;; for any purpose and without fee is hereby granted, provided$ d' \) V) z$ B6 I o$ [
- ;;; that the above copyright notice appears in all copies and' z9 E" h" X: h' Z+ l# d9 e
- ;;; that both that copyright notice and the limited warranty and
6 Q( f5 H& t: y8 S Q - ;;; restricted rights notice below appear in all supporting! d; \ U+ l" A) }
- ;;; documentation.% H: ]# `; I% ~/ A% V ~( s0 l
- ;;;2 k, P+ d+ n( O( p& ~9 p3 n8 j
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.( z& K. T3 c1 l5 F: T% F
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF/ e/ c. A0 a$ P' M
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.$ P$ b. T1 ~9 P+ d
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE# X; [9 H1 P4 C3 Z% W
- ;;; UNINTERRUPTED OR ERROR FREE.
% \- K) b9 Y9 R- a8 T - ;;;
+ G4 S* y5 ^0 |' K( L9 B - ;;; Use, duplication, or disclosure by the U.S. Government is subject to# V' W( Q' e/ h5 e
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
9 g7 r& ^8 O* t1 j+ p8 J - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
9 P5 i. l1 o+ o0 a; }. b( K+ ^ - ;;; (Rights in Technical Data and Computer Software), as applicable.# M" F$ _$ D- M/ f0 q+ w
- ;;;
7 ]* x% b. k* _9 i- D - ;;;.
) u! C+ _3 W5 I& A$ _. m- {# D: W' ? - ;;;1 K7 M n- ]" ?" f% |% k! a
- ;;;----------------------------------------------------------------------------8 C8 N' B2 y- T, j% |, z% p ?# U$ Z
- ;;; DESCRIPTION
- k2 u6 q- E4 o- l% F+ B - ;;; . T" N8 v/ L3 C) K1 \( f( h
- ;;; Chromatic Pallete style color selection dialog.: C; b, \/ w. ?
- ;;;
8 O p: U0 v0 t5 T$ N. Z# |/ f - ;;; Globals:
I7 E% c0 [6 R/ H! z8 I3 P - ;;; 0 r4 a; f) D: ]
- ;;; chroma_color - Integer color index. The last value selected
4 C3 V0 }# _) o4 L - ;;; by the user in chroma dialog. It is not cleared or reset4 }! W% h" B1 H2 j5 L3 L
- ;;; by a cancel. Only used for communication between callback
8 z3 }" B9 i% _ - ;;; functions and the (chroma) funciton.! Y1 E9 z3 R' t
- ;;;
) i& o2 V# U G* i/ O0 _* o - ;;; Depends on the definitions for the dialog provided in chroma.dcl.
Y7 Q. o. g+ o+ X9 u; Y - ;;; : _: _ Q9 [* q; n) a
- ;;;
, S) {8 y, T% Z2 |' a. g - ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma
4 c( ~4 N9 k& w - ;;; pallete style color selector.& X) P% U7 N/ B; P
- ;;;+ J2 ]; w( }6 I5 L; Y
- ;;; ===========================================================================' N$ {8 r) N: P
- ;;; ===================== load-time error checking ============================' {, u* g8 K: s: T5 Z3 D1 h
- ;;;+ `& C9 g$ V6 Q# u# C
- ) E! B6 Y$ [/ a5 }3 o. ?
- (defun ai_abort (app msg)+ a2 ?" {/ o/ j. q3 a6 @: E% \
- (defun *error* (s)
4 Q, H1 e- P! B! k( z# G+ e - (if old_error (setq *error* old_error))& F0 [* C/ f* K" K% T' N; v
- (princ)
1 g6 M! S+ w- `0 c$ A8 X - ), A4 U6 E4 ]+ _& m5 P/ ^$ H
- (if msg
! D+ [ S+ m9 D8 o8 c3 K1 @4 I - (alert (strcat " Application error: "8 M/ c4 l, Q' u/ ?
- app. \: R% u" m0 B' Q( p/ m
- " \n\n "
, v' I: J" g% q y. {0 D- ~: J f - msg5 i/ F# z! o& d5 K
- " \n"
# `% P8 q: {8 V3 W5 N$ M: b' H [ - )5 b1 Z4 `* w$ ^0 j K
- )
9 e0 M0 k: m! q h {) o; z - )
6 m3 _; j; X3 t# Z$ B - (exit)
# o4 u# n4 G4 u; @1 ?1 p - )
; g, T. s$ _" h0 C - ! O: x; h1 W. s( F5 _3 Y0 u
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
& ^1 s) {7 Q1 Y& B- B. g - ;;; and then try to load it.
9 {% R/ H. [8 }1 \5 s - ;;;& H1 x5 A( R: k( d5 g! S
- ;;; If it can't be found or it can't be loaded, then abort the
' n1 O, _# @9 e, L0 K( @& T4 |) s - ;;; loading of this file immediately, preserving the (autoload)' z) w# y4 A) F& ?" p
- ;;; stub function.1 v- Q" n+ m f
. u# z! C7 t( p% j I) A( n- (cond
& K9 t k- K% Q7 Y0 a - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.2 w7 [' B( F! p; O, d
- / u: C" ~1 o2 Y! V* N- ^
- ( (not (findfile "ai_utils.lsp")) ; find it5 M* {9 n8 r1 a3 _0 o
- (ai_abort "DDCOLOR"/ u7 y8 g6 B9 ?! ^( T
- (strcat "Can't locate file AI_UTILS.LSP."* Y- t, l( t6 z" M
- "\n Check support directory.")))
. a$ o; E# N# j" Z. w t
1 n) v% A9 b* @2 R* Q1 {- ( (eq "failed" (load "ai_utils" "failed")) ; load it* f) m% @# l, R' P$ b
- (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))
; q0 J4 ~5 D0 h" H$ } - )
7 C6 Y4 u0 s. ?7 h3 e3 S
0 i" y+ r3 K h# h1 U P- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP! r' j- v+ B8 s" ^
- (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses
" e A" o* H" n. q( |+ b- V! M& P: k) F: x - ) ; ai_abort's alert box dialog.
' F7 K6 P4 H( m1 [$ k7 A+ K( n
, I9 W1 ^. t2 @1 `7 v* N: E- ;;; ==================== end load-time operations ===========================
$ {4 [8 l) F0 f( x5 U' |& E/ B - - F( K6 Z3 ^# h3 u
- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)6 L i/ W! _: h! Q4 ~0 b+ M
- ; V( R5 i z, z F
- ;; Main Color function, called by setup code.
8 D/ [6 l7 m6 E+ [6 s& f9 n - (defun ddcolor_main()
9 L) g4 p# r( d% J7 q - ; k2 v, f4 d' K% n5 a
- (graphscr)
* k# k; b* N7 d -
# @# b8 ~! z$ u9 d; o' D - ;; Get the color of the current layer, for possible BYLAYER color swatch.
% ^: b' v7 v8 N. E - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))
% X( T9 f! p- I- ~* F9 Z) L5 I
) c2 C, k- _7 h; R- ;; Call the dialog here...
1 j* q9 C" T Q3 N - (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))0 u- r6 U3 j8 y+ s m, I0 P
7 W2 u, b5 {" e% m% I- (if clr$ ~! W* r9 U/ S, t/ y8 v& H
- (setvar "CECOLOR" (citocs clr))); o, q) u: [; i8 o8 o* r
- )
, J9 L. P; ~2 O. S - 8 J. x9 i3 W9 _$ v. g- p. ]& \
- ;;;
- u& K* C# r7 }/ L' r$ R - ;;; CSTOCI -- Color string to color index
/ v# ]3 b/ h# J: x( B1 u - ;;; Convert an arbitrary case string into a color index.5 p$ d+ w1 a5 o. t5 |* J' }
- ;;; Returns nil if string is not a valid color. y. L" @/ O2 S$ ~1 s$ Y, t
- ;;;0 O' H* z- E' b
- (defun cstoci (str)
( E$ H3 W: Q1 Z: ^. x9 E& I - (setq str (strcase str))
% [" l8 b0 N) o - (cond- N: F6 }$ V3 Y" e6 ^
- ((= str "RED") 1)
, C9 ]' J R, q - ((= str "YELLOW") 2)
! y! v$ |% v$ d& s6 A - ((= str "GREEN") 3)
: n2 N& p- [; U0 K - ((= str "CYAN") 4)
; ^% `* Z3 }0 B. h - ((= str "BLUE") 5)
+ H& \5 k. a7 u* j" w - ((= str "MAGENTA") 6)0 i7 C$ F. X, D9 M7 d( k
- ((= str "WHITE") 7)
" x' a' n& n" X7 q- ?3 v- i - ((= str "BYLAYER") 256)
2 m, d8 o: P7 W ?4 D' q: k2 @9 s - ((= str "BYBLOCK") 0)
: @" H: {5 ^1 F. b, l' v - ((= str "BY LAYER") 256)$ Q9 ^+ e" y; t: c/ X0 z; d& b
- ((= str "BY BLOCK") 0)2 o7 C& y8 t3 X# H
- ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))
2 s8 N& `$ B: J. O - (nil))
; Z2 s; j% ]# v - )* ~5 b& ]7 }7 r0 A+ `
- . O4 B& M5 O, u' R2 e I A+ Y6 D3 q' w9 l
- ; `8 C$ J% \ l S2 i' m
- ;;;
6 W! V7 M8 x# f/ H" X - ;;; CITOCS -- Convert color index into standard color name.
7 S! j, f: V$ s, y2 C+ m' A - ;;; Will return the standard and logical color names as text7 f( ]2 q: ~2 q
- ;;; strings. Returns nil for out-of-range color indicies.
7 y$ ?$ t Y5 B& O, D5 l - ;;;
6 N9 b: ^4 [! l- W! S# c6 N - (defun citocs(i)3 F8 H) x' i. C% G
- (cond C/ `, ~0 }0 o; V# R2 z! c1 o
- ((= i 0) "BYBLOCK")9 b! j* V' h' f# t" o; k; }9 ^! q
- ((= i 1) "red")! z& ]0 D7 e9 P( c. I6 ]/ j- C
- ((= i 2) "yellow")
% A( j0 N4 y+ v/ e0 N. c - ((= i 3) "green")
, g: `9 U0 t# ^ - ((= i 4) "cyan")
: B4 E8 ?/ ^4 p- Z _5 d2 R7 J - ((= i 5) "blue")% K: K! o5 [/ D0 @
- ((= i 6) "magenta")% P( b5 v0 i N3 i9 t) g
- ((= i 7) "white")
5 K: D" ~/ x1 ]4 u - ((= i 256) "BYLAYER")
+ F$ y! G0 }: b6 y% \0 X+ e1 z* [ - ((and (< 0 i) (> 256 i)) (itoa i)); s8 Z1 }3 T0 l3 Q4 M: `
- (nil))
; {2 X; H4 J7 U$ D) z - )+ F' I1 L( N% ~& k! i
* I! S$ v5 b: g/ j- ;; Start of ddcolor
2 X/ N/ v& e8 S7 {4 N* ?0 }7 J - (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
' e$ O) w7 u1 w2 S - old_error *error* ; save current error function7 I; ~; e+ A0 O3 B# G' n4 x1 Y
- *error* ai_error ; new error function
4 e0 Z- n5 _6 e; C7 ~1 @ - )
1 g, P' G- n- `
. f4 x4 p8 t j7 l9 A# J* L; w- (setvar "cmdecho" 0)
3 |! Y' O( ~5 ?9 }) D3 Q& X - : I8 m! [! t7 y; q; r( A
- (cond; |% U8 C1 {7 T. C: ?' y
- ( (not (ai_trans))) ; transparent OK
( O/ l5 X+ t( A - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?" r5 @/ O( }& A" I ]
# P) S3 l' J4 W$ X! V- (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))! i1 G& N- _( j( Y! B' m
- (/= 8 (logand 8 (getvar "cmdactive")))
' y9 M" x+ R! O( W: y* v6 f L - )$ Z* a* f: n Z
- (ai_undo_push)
9 g; s/ {9 ^, o# |2 c - )/ t; t8 Z' r. A/ |4 H6 N
0 V% Q3 _2 j' T, @2 V# l8 Y- (ddcolor_main) ; proceed!- K' U6 ]9 u3 y: q$ ?
- . w& r; N/ Y# B! C
- (if (and (/= 1 (logand 1 (getvar "cmdactive")))
5 Z' {* ` S8 }9 F' k! n - (/= 8 (logand 8 (getvar "cmdactive")))
$ F) j4 \* U" c2 z1 X - )4 q5 q" X. D% }+ l! [
- (ai_undo_pop)
! E w) ]5 s' d* p, N1 U0 M - )
" [) u' w5 H( k5 `! ] - )
; P/ Q3 m1 \3 p' Q9 p - )
! F3 T' N* n: l1 B5 W+ o - . ^- w0 C0 D2 ?: p
- (setq *error* old_error)
" N& V0 q3 U4 Z+ I' n* ] - (setvar "cmdecho" old_cmd)# c N$ B: r0 h1 y
- (princ)9 `$ ?* R" ^/ y' l5 c: S
: P+ r$ j; Z) f/ L- ); J7 k7 c* S/ y/ L- O) C% M' y
- 1 c* F7 [. p% a) ?' k7 R( G/ |. }
- ;;;----------------------------------------------------------------------------
2 x( t! k) K' w r' A1 x - 8 l6 {, D* i* Q' P- u% U
- (princ " DDCOLOR loaded. ")5 g8 `0 k2 ]4 [- J0 Q/ _
- (princ). N4 l" @; l+ k/ W# q
- - K2 n7 L* f$ p3 P4 [% P3 p8 [
- ;;;--------------------------------------------------------------------------;0 {; i9 j( [, T2 u3 ]
- ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;
+ j$ r& T7 O. K% L& H - ;;;--------------------------------------------------------------------------;1 k8 R+ f- b( f9 j1 s; V7 J# c
- ;;; ssx.lsp3 [4 D; Y1 W. v) I5 z+ f
- ;;; Copyright (C) 1990 by Autodesk, Inc.
7 X. r6 c/ n3 p$ x# m& \! k9 J - ;;; Copyright (C) 1991 by Control Systems, Inc.5 ?& I2 K( l1 d. j& x
- ;;;" Y4 N- X' i: K5 N8 w
- ;;; Permission to use, copy, modify, and distribute this software and its
4 q ]* G( ]1 m! Q# U7 ^9 o e - ;;; documentation for any purpose and without fee is hereby granted.
2 n0 S+ S# X! ^9 Q7 [: m- U* c X - ;;;
$ x1 e/ {% ` `3 f1 _ - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
4 ~+ z. p6 y/ ^ - ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF% t: V8 i) A' T: o/ y Q
- ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.
3 \8 l" P7 s6 K% s' i4 ? - ;;;
2 W& @/ Y5 q2 r4 G. J% d7 h- b z - ;;; Larry Knott Version 2.0 7/18/88
& v, ^: l t$ ?, G* G* N9 Q* U6 L K - ;;; Carl Bethea & Jan S. Yoder Version 3.0 k, u( T2 z+ B
- ;;; Enhancements to (ssx).
2 @0 _5 j! n1 g - ;;; 15 March 1990 # C" i3 s8 i3 Q; R, u" i
- ;;;7 K5 ~" P5 A3 @: C( E- U
- ;;; ARTIST Software, Inc Version 4.0 December 1991' [; c; Q4 A2 `/ j& e% ?
- ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,
8 T. J5 `9 ^ ^* _, j5 Q* T - ;;; use Flexicon menus. Y- a$ X/ Y! H6 w4 u0 f
- ;;;# s }. A+ V8 R8 N$ e+ I0 w
- ;;;--------------------------------------------------------------------------;4 J+ g( y8 k/ r$ Y/ y# Y7 H k( `8 L
- ;;; DESCRIPTION8 N1 v2 e# C5 Y! ~( V8 O2 |; Y0 i
- ;;; SSX.LSP
* {* P; _" ? ]" X1 ]( z - ;;; $ h3 L; F" K( L: A5 a) u' k$ D" A' P1 }
- ;;; "(SSX)" - Easy SSGET filter routine. * I4 Q/ a, {3 H$ D- i! l) N! T: W
- ;;;
$ k9 G; e, K! e w - ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt l3 Z) L* h- T9 j
- ;;; to create a "previous" selection set or type "(SSX)" in response to
7 z, t3 q e. \- `8 J# B# l! I4 |; m - ;;; any "Select objects:" prompt. You may use the functions "(A)" to add . ~& j) M! `/ H
- ;;; entities and "(R)" to remove entities from a selection set during - v5 R3 m1 q4 D+ e4 p) |, x" x- N
- ;;; object selection. More than one filter criteria can be used at a # B0 @0 D: x1 |3 b
- ;;; time.
" _9 i$ c8 T7 Y8 _4 }8 H( D1 Y0 L - ;;; + o, a# H2 s+ E' n0 r
- ;;; SSX returns a selection set either exactly like a selected
3 s1 g4 w" M2 B- A9 p$ F0 ` - ;;; entity or, by adjusting the filter list, similar to it.* a2 j4 y9 D* L# o J8 O+ o" {$ s
- ;;;! p3 c R C" ?7 P7 Z0 H/ s
- ;;; The initial prompt is this:6 z/ X4 u" M4 P5 b
- ;;; / o; s- C. g9 e) ?
- ;;; Command: ssx6 m" {5 w4 Y/ J+ O- r' m
- ;;; Select object/<None>: (RETURN)
2 u2 O g4 Z' u/ A6 i7 r: m - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
2 p& N% ?, O) {1 L - ;;;
" i, u5 g/ b0 j E, N1 b' \ - ;;; Pressing RETURN at the initial prompt gives you a null selection 7 C" a1 U7 w# M) X% |- e
- ;;; mechanism just as (ssx) did in Release 10, but you may select an
* e5 g: X5 x- {/ u+ M' S5 W - ;;; entity if you desire. If you do so, then the list of valid types 9 S1 W6 K" d3 W
- ;;; allowed by (ssget "x") are presented on the command line.
) K- [" ~& {; L- [ d- X/ x( O - ;;; ' r# K" m! i9 L, _: k. B5 {1 ?" K8 T
- ;;; Select object/<None>: (a LINE selected)
% v1 W3 M' T* Y - ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0)) 6 B, x' ?6 n: p) s) ?5 F) g4 L. x5 i
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: ( t# k' K% w# a" ]
- ;;;
/ B0 |) X& t: @" g6 L - ;;; At this point any of these filters may be removed by selecting the 5 p$ v! [. H- M/ y2 p
- ;;; option keyword, then pressing RETURN.
* C* J% t9 I5 y9 Y - ;;;
" m, u% R& O6 k) y+ P6 { - ;;; >>Layer name to add/<RETURN to remove>: (RETURN)
$ \) H6 E1 [4 @+ {. A" N/ q& a - ;;;
: b2 _! B5 j2 Q3 e# g - ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))2 L8 j5 c! [4 d# Z: G3 T
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
! ? G* C2 W$ t8 H6 ~ - ;;; ! D" A, J5 R! y) [. q
- ;;; If an item exists in the filter list and you elect to add a new item,
* E- g, X$ K. E% Q( B4 Y J - ;;; the old value is overwritten by the new value, as you can have only 0 {3 z/ F, i2 l; _, c
- ;;; one of each type in a single (ssget "x") call.
. a" |( E1 z2 Z7 {/ |% h! Z0 m" { - ;;;
2 u h% F0 i7 ]/ z9 ?% Z) s - ;;;--------------------------------------------------------------------------;
3 w6 u( ?" }% I9 j& Y7 N! V# u0 m - ;;;# [* {& T) t3 I8 o! H
- ;;; Find the dotted pairs that are valid filters for ssget
1 k! M( r7 [: y! [! w1 I - ;;; in entity named "ent".$ |- x. {) K9 m1 v; K9 o, |
- ;;;: V/ l& H- x) \9 _8 |% q
- ;;; ssx_fe == SSX_Find_Entity
% e- t. |# \. s! f | - ;;;1 x% E7 q* ]5 L: G
- (defun ssx_fe (/ x data fltr ent) \- V. h5 d; b) S9 C, J* \
- (if (and (= flexvar 1)(/= t2 "Pick"))
. y( ]( R/ ?) G1 t% q - (setq ent nil)
" e8 E; |. @1 \* v R( M - (setq ent (car (entsel "\nSelect object/<None>: ")))
$ _) R. w, J: M; z* u8 ^/ E - )% C$ I: l9 h: V% D" x7 P( @
- (if ent0 e2 S4 Q1 }- k. U
- (progn& D V8 J; A0 C. \! y" S
- (setq data (entget ent))
& t( s4 T' K' X' k* s/ E - (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38
- [( H8 x# l2 L - (if (assoc x data)$ n2 ^3 g6 f: r' k' B
- (setq fltr - U5 E, B! R6 X0 @6 t. g2 j
- (cons (assoc x data) fltr)
" b7 Y2 a/ y' V3 V+ b - )$ q& a9 n4 G1 Z! P' `- K1 L
- )+ M, ^9 y8 i/ ^5 L6 I; Z( @$ k
- )
( \! {& N7 t" ?, c - (reverse fltr); l/ f* `0 T* K
- )$ g! l% e% h9 x0 E' j3 v
- ) 9 x* K" H: C) A$ @7 u8 E8 H I
- ) H+ y- @" m: s+ V$ u+ X
- ;;;/ P8 \% A# `$ f M. Q/ ~7 q
- ;;; Remove "element" from "alist".5 g. s B2 L8 I8 T. {, J, Q
- ;;;5 z0 i, h. v( R% b5 y2 |8 A, a
- ;;; ssx_re == SSX_Remove_Element% i, c( @7 j. g, Q4 s
- ;;;
, X, M. G) _2 v: g6 D m5 C - (defun ssx_re (element alist)) u Q) E9 _8 n. x2 ~* O
- (append
+ x% d- [8 ~: D$ e - (reverse (cdr (member element (reverse alist))))
9 h) U4 @- w8 N- p0 P y- u - (cdr (member element alist)) 6 V$ D4 b. p$ S& J' h4 D {
- )
9 h! \1 R9 F" Z, Q - )$ f5 X0 a4 Q. k- t, n
- ;;;* Y+ L6 u) S3 Z$ ?: t- u# B
- ;;; INTERNAL ERROR HANDLER
2 N6 Z! ]! R$ e+ ^0 B7 G! E5 M! m - ;;;
6 Y# h+ k4 m* O$ x7 K - (defun ssx_er (s) ; If an error (such as CTRL-C) occurs
1 c1 ?* r3 V* U2 l! }1 V2 V - ; while this command is active...1 f5 i1 U- T% s; \% G1 E5 B
- (if (/= s "Function cancelled")
s* l7 h' g9 C" H - (princ (strcat "\nError: " s))
' M8 U; |, j; } [( T* W9 Y - )
3 |6 M& @, J: e# M7 {- n - (if olderr (setq *error* olderr)) ; Restore old *error* handler0 Z, X+ x5 y5 i2 d! J+ S
- (setq flexvar 0)! O9 c/ c2 @* Q `
- (princ): W, d/ H+ b" L
- )
6 F- [% L/ n d+ j* b - ;;;( C5 X: h: J) c4 I1 Z
- ;;; Flexicon call routine2 I" l+ q. j; h7 `
- ;;;7 h: R: d3 \; @3 D
- (defun flexmnu (a) X; [3 H6 \$ w; ^+ S4 ~5 |( a
- (if (= flexvar 1); k$ {0 K* r' r( b" W, X
- (command "FLEXICON" (strcat "FLEX" a))& t" E( l2 }7 g, s/ I7 @. D
- ), @8 ]3 ?) G1 C" j3 e5 Q" p) `
- )
$ Q( U5 t; K4 ~. r - # H9 n, `* I! Z# X: Y
- ;;; + L- S2 y) N7 n2 L$ r
- ;;; Get the filtered sel-set.* Z. `0 @3 }5 u% \: H3 v6 Y! Q
- ;;;
/ X2 i; Z& Z# |. |% a# Q' H - ;;; k6 E. i. m Y6 _- U
- (defun ssx (/ olderr)/ K1 a9 k) w% U
- (gc) ; close any sel-sets
9 T( o3 L5 } `5 G! G7 Y" q% L - (setq olderr *error*
) W8 {; L6 Z; `% ~) Y6 }' K - *error* ssx_er % _, M! d1 Y# `/ o6 y" a$ a6 s
- )' X6 R3 ]' E% ~) W
- (setq fltr (ssx_fe))
) l8 K9 f$ ?( r+ u% e1 ]6 x9 D4 e7 a6 \ - (ssx_gf fltr)
' H% d- ], _, F - (if (= flexvar 1)
1 u4 J/ h# G) H- A- y; g! }3 ~ - (progn
6 D! y8 p/ u0 }. C0 @5 D; y* J - (prompt "\n \n \nNow select the required EDIT command and (P)revious.")
5 K( y: M D' C+ ?7 ^. N+ L; L - (flexmnu "EDIT")# i. G8 n* S w* q! w, O
- )
* a* [' O& V% G2 E% G - (command "p"): o& H. l, [7 L9 [
- )
* y$ N# Z2 p* w5 W" [2 P - (princ)
2 j0 t. \) v0 c# @/ |1 { - )
7 p: A( n* \5 w2 q; R/ i - ;;;4 B3 ^$ c' [7 t7 c3 U
- ;;; Build the filter list up by picking, selecting an item to add,
( P' T- V# q3 K o) ?9 O - ;;; or remove an item from the list by selecting it and pressing RETURN.2 ?8 e- K A* y
- ;;;
" |$ S& e. x' g: r% f - ;;; ssx_gf == SSX_Get_Filters$ o& n7 c6 q8 ~0 t& N6 u
- ;;;
8 o5 H. |5 q3 ?; L - (defun ssx_gf (f1 / t1 t2 t3 f1 f2)6 j# D/ G8 \. s5 y+ f
- (while : U0 ~6 ^9 y. O- u; b- n
- (progn3 }7 Y* l: H: o! i2 F; F; i, j
- (flexmnu "SSX")/ ]5 s) F' U, r& j
- (cond (f1 (prompt "\nFilter: ") (prin1 f1)))9 y0 |0 Y% f6 X& ~
- (initget
9 T+ M% p3 d' B% U: ~! ~ - "Block Color Entity Flag LAyer LType Pick Style Thickness Vector")% [7 o( C3 f& M; t; H; N
- (setq t1 (getkword (strcat8 a- [7 c1 o8 ^7 D" F3 h
- "\n>>Block name/Color/Entity/Flag/"
9 l. e& V* i1 M" j. Q$ v - "LAyer/LType/Pick/Style/Thickness/Vector: "))) ; g# M4 d" [. U1 S% T
- )5 [- i; U) ~- f3 |+ `2 G
- (setq t2
$ z: d: E! |7 }& ]$ v/ V - (cond
$ u! _6 E$ {) K$ \$ X - ((eq t1 "Block") 2) ((eq t1 "Color") 62)' ]8 Y6 K7 b! }9 P
- ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)
$ r( a' F! W5 B' s/ H, B( c R# b - ((eq t1 "LType") 6) ((eq t1 "Style") 7)6 p0 H( r: a9 B* g/ J u" n5 I
- ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)
2 z' T1 _5 f: m - ((eq t1 "Vector") 210)
, i5 C$ R5 F2 N, g# G, d; { - (T t1)( T5 k+ ^" O2 v# \ f$ {& E
- )
; N# `$ Q, f; ]; Z - )9 i, T/ a1 p- O. `$ }6 h
- (setq t35 w/ w8 Q% Y- I& m4 Q6 l/ G
- (cond
. F) s3 s; |* ~4 c1 F) D \% S3 ]3 Q - ((= t2 2)/ B) Z6 e' ~5 Q% i( Z0 ~$ o3 o
- (if (= flexvar gtads 1): d8 j- E' e: V2 k
- (progn4 c+ x- D" O& f( P, k) Q1 Q: t6 i
- (prompt "\n>>Block name to add/<RETURN to remove>: ")' R: s) d+ Z* }1 W( i* C
- (gttable "BLOCK")
2 _5 U2 C/ o2 t) A - )
! f( g3 V* V" t6 Q/ x7 d - (getstring "\n>>Block name to add/<RETURN to remove>: ")
- F6 Z# L; s$ ~2 ^- U$ A - )
; W+ g- z4 @: s3 G! \ - )
: u! |1 W9 G6 C+ Q7 o( U2 a. Z - ((= t2 62) (initget 4 "?")- H* n S% y& A' D+ Z
- (cond9 I" J3 ]3 x+ \" s
- ((or (eq (setq t3 (getint 7 S8 M/ }) R6 e5 }# U$ \
- "\n>>Color number to add/?/<RETURN to remove>: ")) "?") # O( h, K/ h) e2 b: q2 H$ a
- (> t3 256))
3 y* V; o" w( p - (ssx_pc) ; Print color values.
$ U5 e' y/ A8 k; b; p" I5 m. b# d$ C - nil+ {' h! i( l3 h" h6 V
- )# R' E' T& x' W, i9 e
- (T) C, z" i. s! Z7 x2 v& u
- t3 ; Return t3.
5 A2 Z' ~6 Q* R7 i% H- ? - )
( x: `' Z1 p# R$ C - )& D$ K; r% Y' q. E
- )0 u* b+ y; m- h8 L& N D! D
- ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))8 U0 L, ~% h+ I
- ((= t2 8)
6 `4 h' i' ]7 ]( Y0 M/ H7 b - (if (= flexvar gtads 1)
" O& K$ K1 f& z4 |; H. Z - (progn
, u+ a \% W9 ?/ w - (prompt "\n>>Layer name to add/<RETURN to remove>: ")8 U" c- Y, e G0 }
- (gttable "LAYER")
5 \3 N+ t( c: ?, [" y, A - )2 s5 X5 E( ^1 r# V& N( x
- (getstring "\n>>Layer name to add/<RETURN to remove>: ")
1 c& F6 s- R( s& m" _& @. b - )/ A: m }6 b- _. N
- )
! E5 t- i* c8 x$ D, D- @- ]: g - ((= t2 6)
$ j; G% L2 [9 `/ N - (if (= flexvar gtads 1)' {0 D; B; B1 v
- (progn
; }9 U/ e% j$ _9 `% f - (prompt "\n>>Linetype name to add/<RETURN to remove>: ")
4 L1 C$ m& z$ ]/ Q, n. x8 P - (gttable "LTYPE")( i4 ^2 G# d" h2 @8 N& K
- )
5 b. G1 U0 q# r/ ^) x" l4 i, I4 m) t - (getstring "\n>>Linetype name to add/<RETURN to remove>: ")& [3 P3 ^- E) d
- )
! a8 d4 v3 |3 C - )
* p o2 Q& V: h( K) m; k - ((= t2 7)
5 `' X4 i! n% M' v8 k# | - (if (= flexvar gtads 1)
4 r% i, l% ?* G1 G2 r - (progn g! O6 V) ]5 b* V0 ]
- (prompt "\n>>Text style name to add/<RETURN to remove>: ")
1 e# x1 d& u9 r6 T8 `; c. k- T3 ? - (gttable "STYLE")
. _/ V' i1 y+ ~! m+ k - )! `$ i( b( w5 K; |0 o
- (getstring "\n>>Text style name to add/<RETURN to remove>: ")
+ g9 `7 v- O7 o5 E6 G# c- k - )* \( |% x. k# g' \# o
- )
8 U8 M: t! P) E& H0 f& f6 E - ((= t2 39)
M; v. {+ P0 N9 m4 y/ B2 | - (prompt "\n>>Thickness to add/<RETURN to remove>: ")0 a0 S* z% ?, o. i( F3 k5 R
- (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))
# a5 J5 N& |% V% S2 Z5 a - )
+ c9 j2 Z4 R6 D; g5 z2 H# o - ((= t2 66) (if (assoc 66 f1) nil 1))$ t: P; H0 }* E4 m" Z
- ((= t2 210)
: A4 g! q/ ]3 q) a. W. ~$ ^ - (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")
. k9 ?2 o) W2 U2 H, j - )" J* a! ~4 p. p5 m W6 s
- (T nil)
; Q2 q9 s/ s' A - )5 C$ b" g9 K. L. B5 i8 `: ^
- )
+ e9 p i. g) f3 n - (cond5 Q# z0 _; t5 N: o) Q- w: b) m5 K
- ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity; o: j# K: ?' a$ h
- ((and f1 (assoc t2 f1)) ; already in the list
0 V" t) [; [5 a. |8 j& m - (if (and t3 (/= t3 ""))/ M( Y% R( Z2 g9 M3 A/ ?3 ^2 `7 x
- ;; Replace with a new value...
/ D$ [8 A4 B9 }: h - (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1))
# _" H! t7 c. N( B8 X - ;; Remove it from filter list...
( `: a3 d1 t; r' A o {* \9 c6 [ - (setq f1 (ssx_re (assoc t2 f1) f1)) ( Z( T8 O, q9 p! E* j
- ) : f( p, ?1 s7 I3 u* u
- ); C+ {' N: U7 S& Y
- ((and t3 (/= t3 ""))
1 f; ^# Q0 F" ?8 e$ }4 ` - (setq f1 (cons (cons t2 t3) f1))
q: ]% ]& x! b) G F) z - )4 T" i; h: Z7 n+ h0 D a
- (T nil)
1 m& S+ r' u q/ U5 L# [3 X; ?9 b - )
0 }8 R5 y2 x, F1 w- f - )! l6 b6 s6 m" H5 J8 R5 ?
- (if f1 (setq f2 (ssget "x" f1)))
- F$ r6 C6 E6 s, [1 e - (setq *error* olderr): P8 w% x3 k+ t! {. J
- (if (and f1 f2) / o5 l) |, f5 g$ Z+ T( p* h% ^
- (progn
M' |; O! p6 `" e$ t3 M3 p; ~ - (princ (strcat "\n" (itoa (sslength f2)) " found. "))
$ ~( h6 E! s3 B4 e3 L, C - f2
+ S$ e7 ]% s6 E5 T" r - )" C/ l% H' s7 F1 v/ D+ Q. r2 i+ D
- (progn (princ "\n0 found.") (prin1))
9 g9 h7 G: C4 y/ W$ V; h. C - )6 Z3 f( ~# r$ x1 [3 K! B9 ]. { C! N
- ), A( D' o0 x! a+ I) i
- ;;;+ d9 g ^: @* w2 ?: }9 M
- ;;; Print the standard color assignments.
1 _& r, S9 f$ R+ B* r - ;;;
$ i" i2 Q7 n, A, S7 i! i - ;;;; Y F8 y0 s* P1 N
- (defun ssx_pc ()
7 N; F9 P* ]( _$ E/ E, F - (if textpage (textpage) (textscr))& O# V% a2 |* O9 N3 [0 R' K
- (princ "\n ")! K$ P2 s0 X* F5 Z8 V
- (princ "\n Color number | Standard meaning ")
/ P. y7 x$ Z B - (princ "\n ________________|____________________"). ^- x* A, P6 @
- (princ "\n | ")
4 E* k# o8 q8 f# \ {# ?0 q, \* T - (princ "\n 0 | <BYBLOCK> ")
! R1 Y5 k" n% O$ b. c/ L - (princ "\n 1 | Red ")
; ?; F9 X0 |8 L2 U - (princ "\n 2 | Yellow ")
0 k" V7 r- \/ |4 l0 R - (princ "\n 3 | Green ")- F5 N& C0 B9 j4 @
- (princ "\n 4 | Cyan ")
( w0 s4 D: ?* k5 S - (princ "\n 5 | Blue ")1 a2 ]; M) Q. {5 ]
- (princ "\n 6 | Magenta ")
- D' g% q' t6 h - (princ "\n 7 | White ")
3 {- Q" |1 P" V9 m A* E' L - (princ "\n 8...255 | -Varies- ")# i+ Z/ |0 V4 c I; N% i
- (princ "\n 256 | <BYLAYER> ")5 _% p# T n- U6 w+ ?
- (princ "\n \n\n\n")' v1 }% }% f' x. K
- )" q+ H6 X) k. v7 Y% p M
- ;;;# J& i* z. T- }; p3 n4 G7 }
- ;;; C: function definition.0 a* q9 L0 _" P' \
- ;;;
! @8 J& M T) K - (defun c:ssx () (ssx)(princ))
* z3 Y; X4 O5 O7 N0 ~) e- ? - (princ "\n\tType \"ssx\" at a Command: prompt or ")
8 [ u- t [* | - (princ "\n\t(ssx) at any object selection prompt. ")" N1 n! d( Y7 H$ P% k; ?
- (princ)$ j* I4 f* _) o/ p8 g. @
$ u: C, H) R+ \# j" G( D- ;;;--------------------------------------------------------------------------;" l( d0 e# t) V$ v6 p) {
- ;;;--------------------------------------------------------------------------;
% I# p9 v) g% l2 g" E) J - ;;;--------------------------------------------------------------------------;/ q' Q9 D* |: o& W& F+ T. I
- (defun S::STARTUP ()
$ \1 c( F" t2 [8 t$ I - (setvar "cmdecho" 0)2 G% n8 R$ @% T3 u' c: j, _* c* ^
- (setvar "cmdecho" 1)
! F( D8 X7 ]0 M$ \9 R* i) e - (setvar "LTSCALE" 10)5 D) r4 r8 X/ b8 J* U
4 H( c9 Q' }, j& W- ;(command "_load" "chenKH.fas"): }7 g% e1 _7 i& L
- ;(command "_load" "ctcot.fas")
) }1 \0 c$ h2 k' T8 v - ;(command "_load" "damdoc.fas")+ x7 A9 Y* e- T/ g, d
- ;(command "_load" "ghichu.fas")5 @; L, C& |8 F' [
- ;(command "_load" "hamtutao.lsp")3 b* |4 `! I9 o& x& T0 \: r9 t6 Y
- ;(command "_load" "KHOITAO.fas")0 i/ E5 F; F& D8 B4 h; s) S
- ;(command "_load" "KHthep.fas")
. W1 J9 ^( q( f, R. A" [ - ;(command "_load" "mbmong.dcl")
- j* M+ V0 R/ p% g& I+ ]6 X$ { - ;(command "_load" "mbmong.fas")7 }2 V' _5 I/ }( G! R4 t
- ;(command "_load" "mccot.fas")
7 C' P$ s8 r9 m( j; k6 v. f2 R - ;(command "_load" "mcdam.fas")+ m9 R8 n" p7 `4 y
- ;(command "_load" "mcmong1.dcl")
, C/ E3 e6 l! ^& x3 k - ;(command "_load" "mcmong1.fas")9 Z2 B7 X! H0 |) g5 s
- ;(command "_load" "mcmong2.dcl")
6 W* M. n) E) O9 q) h4 b3 h$ U - ;(command "_load" "mcmong2.fas")
/ z4 D; [0 M1 b4 n4 U8 f* p - ;(command "_load" "mcmong3.dcl")7 q/ i ` V- v4 y k" q& J
- ;(command "_load" "mcmong3.fas")# K1 G! J& B7 p- W
- ;(command "_load" "mcsan.fas")
k5 T# u% }/ C# c7 j4 w H' v - ;(command "_load" "thepdai.fas")
) V& x0 Q5 @. h+ q! I0 d* l - ;(command "_load" "thepdoc.fas")
# i; D9 W% D" E4 T9 b* L, I! V: _ - ;(command "_load" "thepmb.fas")# y- X* a# f& A3 }# e8 I- [* L
- ;(command "_load" "thepphbo.fas")
( i% U I u) J9 H) Q9 @/ `: W& `; s - (command "_script" "thongso.scr")
% c% j) R( P: A; y9 ]5 p7 K& f - ;(command "_load" "thongso1.dcl")( P# B# Y- Z2 z9 E6 n3 ?2 L
- ;(command "_load" "thongso1.fas")! s: O1 }1 A- n5 P! \2 Q
- ;(command "_load" "thongso2.dcl")
) y- v8 L8 B4 ~6 L" `0 \( L' m - ;(command "_load" "thongso2.fas")# O5 [- Z5 B. k
- ;(command "_load" "tietdien.fas")7 B, P& f* O3 X5 Q% q7 M
- ;(command "_load" "vehan.fas")# X y0 u) P \5 @1 }% L, V/ b7 {
- (command "_load" "phamDuy782006_TKT.lsp")" Q+ c) @4 @$ i; y* @5 L) \
- (command "_load" "phamduy782006ganhtd.lsp")- b+ @+ l) l+ }' r( J k1 e' s
- (command "_load" "phamduy782006ganhtds.lsp")8 d; ~* o* J2 K( b( e9 q
- (command "_load" "phamduy782006htd.dcl")7 M% P% A7 ^& G( F4 n
- (princ): s1 z0 _: i6 N8 W6 `1 M! F
- ), z+ G, M& q- T, u- _# k" N: b) y
- . Y# s# n; x( H
- ;; Silent load.4 q1 x, p5 u, a9 L8 F
- (princ)) m2 _3 i7 D9 K/ `1 Q
6 u4 d6 f; c1 R0 G/ I/ F7 [" N- % N0 Y B1 D8 Z) B
- ;; Silent load for the Express Tools.
: p0 [/ R" q) w8 P0 B0 Z - ;; Altering this line will affect Express Tools functionality
8 p; F/ \7 S. {, \( S - (load "acettest.fas" (princ))
! Z3 h6 ^$ W- K4 Q, K/ q - �32
Sao chép mã / \2 X3 ~8 k- I* l
00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ8 U; ~8 q4 [% V; B. t3 Q0 g
|
|