|
|
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 |
- ********************************************************************************, U6 m! \$ S4 K$ V8 Y2 w7 W% q- t
- * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *
1 d9 E& T& ?( }( i2 _3 T - * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *) K' [1 ?5 ^% F+ C, r$ a x
- * Suu tam & Soan *
! E _; S2 L& }5 j1 d! m - ********************************************************************************" }$ | W7 u& [/ m2 ?; j5 ?& [, ?
: S# D0 b! R9 D" L$ [% {6 x, \( g' |* d- ; Next available MSG number is 104! K5 j, q' D, c' H, `
- ; MODULE_ID ACAD2000doc_LSP_
a; O. z8 \" M. I& D0 v6 ~) C( j - ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 2000
" R k- L2 H N7 U7 K3 m6 C7 e5 ?$ H - ;;;. e# N: I6 r2 z# }- {1 A1 u
- ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.
! A& ?. W& z Z5 g - ;;;9 i4 Y5 j) x$ u, v3 U, G) x
- ;;; Permission to use, copy, modify, and distribute this software
; H2 K( n: y* Z6 t7 k, C2 J4 o - ;;; for any purpose and without fee is hereby granted, provided8 j5 H- D, I# {2 h5 U6 r/ k q9 a
- ;;; that the above copyright notice appears in all copies and
& I0 q3 j! n" p - ;;; that both that copyright notice and the limited warranty and3 \$ }8 M9 d5 ?8 a
- ;;; restricted rights notice below appear in all supporting
8 ?1 P [7 ^3 B. y5 i, B& B+ v - ;;; documentation." Y! t+ U9 u$ x+ B9 v6 ~
- ;;;7 }% \7 X8 ?- ]+ X* [. J+ A5 c
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
) f' G: X* P$ m G9 J9 f - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF. ?9 `2 \5 O9 M: l* t$ C3 t) H" d
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
* H9 t" \5 w! |0 z* H {6 v - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE( s1 e, I6 i/ ^' I2 c6 U/ [
- ;;; UNINTERRUPTED OR ERROR FREE.
9 [$ h2 G$ u% c+ w9 n& Q# q - ;;;
0 R( {9 t' H% ] G6 { - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
( N0 \, u& a) d - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer. u) I" a. L! r7 L% c1 j- a7 y& R
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) $ t7 a9 @- r6 B$ T
- ;;; (Rights in Technical Data and Computer Software), as applicable.! N$ @" P8 M4 z( X1 q% W- t' c
- ;;;
" p6 t$ |- H2 ]2 a$ N. R( Y - ;;;.
; N) C7 G" I. p6 `! v4 m - ;;;' l% r: C9 n2 X+ N
- ;;; Note:
+ s; _0 w! \1 r# k9 `4 k7 o - ;;; This file is loaded automatically by AutoCAD every time
6 h1 [/ T6 P* l) r/ G: | - ;;; a drawing is opened. It establishes an autoloader and
5 H6 h7 Y4 b- W: o! A' T6 c' Z, } - ;;; other utility functions.
, y9 Z. `6 L; r, u& ?/ ^5 u" f - ;;;
; o9 E4 j6 p% Z9 P% I: A1 A" Q - ;;; Globalization Note:
2 @5 d' E& w5 e5 v2 W% Z - ;;; We do not support autoloading applications by the native
2 ^, b" {% s9 o8 h/ j- t, X9 F - ;;; language command call (e.g. with the leading underscore
; y4 `7 Y" E5 f5 p: ] - ;;; mechanism.)
3 K# l/ Y0 l. g1 C/ _
P7 k* X T! ~3 J' x+ X- % \( i: P- Z( U U2 O& T! D
- ;;;===== Raster Image Support for Clipboard Paste Special =====$ n" L, e9 T1 T, N! E2 Q
- ;;
7 V$ j3 K6 c1 _- @/ z$ Q - ;; IMAGEFILE
; t" b1 v8 n+ c! q) `# c. X# ] - ;;( |' P/ W3 D% W. C6 R4 P6 p% p
- ;; Allow the IMAGE command to accept an image file name without/ [+ `2 @8 F- J1 A e( J
- ;; presenting the file dialog, even if filedia is on.5 _7 e4 ^4 [) i
- ;; Example: (imagefile "c:/images/house.bmp")
+ y8 l/ K- e& `+ q - ;;
6 W+ ^( ~# L" q. g) u w5 Y - (defun imagefile (filename / filedia-save cmdecho-save). S. E' u6 R. c% Z% e* A4 M' h
- (setq filedia-save (getvar "FILEDIA")): y! C- @' b7 d8 `9 ?' h
- (setq cmdecho-save (getvar "CMDECHO"))
, X3 u' x K+ V# _ - (setvar "FILEDIA" 0)
1 [& P2 K' {6 K* f' W - (setvar "CMDECHO" 0)
- N" \! I: L; E. ? - (command "_.-image" "_attach" filename)
, n6 [' `/ N( R8 C* m q - (setvar "FILEDIA" filedia-save)
7 g4 L5 p# X; C, U: X - (setvar "CMDECHO" cmdecho-save)/ r5 U& n4 p1 J/ Y( j
- (princ)
0 f% w" \+ |# Q+ A$ C - )
) J6 ?1 s D5 `1 n0 V - y1 ?2 x4 q: `' a: G3 a. z2 f% ~$ N+ n
- (defun c:zx () (command "zoom" ".5x"))- S3 F( r4 V! R/ `
- (defun c:zz () (command "zoom" "p"))
8 i" ^5 V* Y3 q5 U1 S: @2 j* a! G - (defun c:za () (command "zoom" "a"))
# C8 l) @8 m8 A: B7 O9 S - (defun c:zd () (command "zoom" "d"))
# w; S7 O# O: p& F. ?7 n- T - (defun c:ze () (command "zoom" "e")): S) P3 j' r6 Z/ ^+ B% S$ x
- (defun c:zr () (command "zoom" "" ""))7 L4 B3 x; i! V i: @
- (defun c:vv () (command "ucs" "v"))8 S1 P" v* g1 x( J( D+ h5 L
- (defun c:co () (ssget) (command "copy" "p" "" "m"))! W# C8 C! l- w
- (defun c:c () (command "circle"))
3 i# j$ Q! @" ?# T3 W - (defun c:rt () (command "rotate"))9 ~ h% O5 C, v# [
- (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))3 I/ G- d7 f1 u
- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30")) i& f( |; y. Z" d
- (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
! o& u2 l0 @6 N% z$ x6 I - (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))1 H- K0 ~# t1 m# }3 q
- (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))0 }& R% z2 E. F
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))% p( Z+ g: s6 N6 J2 O' t
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
( b* e7 D! M* V6 A. |& |& m4 z - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
: `* r& r: |) [# A5 T/ C }. L' X - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
, T% v7 T# q+ n& c& [7 [ - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))- _; B5 f+ Y* Z' a6 J0 M7 }% u
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))3 C+ r: S5 f& I7 L8 }
- (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y"))
1 b0 ^# |. t0 b2 W7 j - (defun c:fd () (command "find" "p" "" )(princ))(princ)
0 [ `0 o" k: C5 T: i5 A/ N5 a! y - ) z# j5 T" q2 P/ D7 X: ?
- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ) a( b3 R# K. O- u" J d. h9 F
- (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)/ |7 L. \ G0 s0 ]- G% H( t
- (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ)+ m. ? t: |( O; o ~1 l
- (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ)
4 J0 d3 ?( Q# _8 r& S! z9 ~ - (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))
! @2 i5 t4 J/ l+ d1 { - (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n"))
) ^% o, V6 i& A - (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n"))$ i3 R; Z% h1 E5 U. c+ C
- 2 q2 f' k3 y( p
- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))7 G3 z- F6 ?2 d/ ]1 \0 h
- (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))' b3 e$ l! } }0 `# F2 ~$ i
- (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))& y8 v) j" ~' | e+ }/ D
- (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n")): q2 \/ y% o( s
- (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n")). q' h# `, b- j M
- (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))7 _8 O$ V& L+ k( O3 i2 a* b+ p
- 2 }8 A; Q, ^/ C
- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file
; U* i: J+ `/ P, }& _
) f/ q' u, S( S! H- ;free lisp by cadviet,cd2k44
4 @8 |. Q& {" I1 g) P - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
0 ]& _: H7 z7 e1 W1 q; Y3 _ - (defun c:FTEXT (/ ent tstyle )
0 f# I1 S: J3 m8 T' B: O( { - (command "undo" "be")
/ b0 C k6 T. Q- H+ f) s - (setq ent (entsel "\n Pick text :"))
& T0 l5 P( `" B7 k( k4 O. U4 p; y - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))" E$ U. F1 D5 t7 Z4 h" O
- (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")2 v0 U8 B4 l. Q1 c) s n* k
- (setvar "TEXTSTYLE" Tstyle)
& t P7 X( r9 m0 R5 z9 ]' I - (command "undo" "end")
' c# S. G9 _- _/ W( s - ). U1 f4 f X( d x
- ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)
$ F2 t. U2 ?5 ~! A; _! T
4 s N& }8 P, Q! L6 j- ;free lisp by cadviet,cd2k44, X* F3 N& |3 _2 K
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
: r) y& x& W' n/ w! a- w# l7 G - (defun c:Fvnh (/ ent tstyle )
0 @0 C0 S% I9 u& F) s - (command "undo" "be")+ O# t5 R2 T/ s* t# U; `" X4 N
- (setq ent (entsel "\n Pick text :"))
( V$ y. q6 u7 p, }5 K2 v- m - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))" x% ~0 ?8 R+ C7 Y4 Z& d0 n/ v
- (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
9 e4 c5 P/ j! G - (setvar "TEXTSTYLE" Tstyle)
' v3 f/ S0 B* I3 O - (command "undo" "end")
, u2 o, @. W8 z: Z - )# U% g z8 V) O) X
& c( \' q- n' k- ;free lisp by cadviet,cd2k44! D3 ^% ?* H* O6 u8 b
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538300 b# A( m6 W- j2 o/ h# f3 c8 P; R
- (defun c:Chbg (/ ent tstyle )( e" x/ `/ m$ ?( t$ ~, D
- (command "undo" "be")4 ?4 M( a5 R7 v6 J
- (setq ent (entsel "\n Pick text :"))$ @! x* f9 c3 H5 }- D. ?- v8 g
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))# d) H" N% v& z8 J7 } D( o
- (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")# b0 t. n7 g6 z' e$ l4 h
- (setvar "TEXTSTYLE" Tstyle)
1 O! _2 P0 t4 m4 Y" s1 ` - (command "undo" "end")
7 Q* h4 Q6 f$ M" N& n8 ~' b/ P6 t) m - )
! e" t. W4 d2 ~, f$ ]3 p4 j1 N5 Z - 3 c( {3 P4 @: V; j8 |. t% S
- ;free lisp by cadviet,cd2k44
9 `; T) \% j" k% h1 t! F* M' f - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830) \1 v) Y/ Z$ z9 ?
- (defun c:Chsm (/ ent tstyle )) k2 N9 @: Y" w% M
- (command "undo" "be")" u0 ~7 f' p6 A0 `4 a$ v
- (setq ent (entsel "\n Pick text :"))6 r8 C2 v: J+ Q2 U% m( }
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))6 {0 H, |4 c3 n; ^* D
- (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n"). A5 b1 E1 |. G, b2 N
- (setvar "TEXTSTYLE" Tstyle)/ s2 x% n- R; e8 G, d
- (command "undo" "end")
- v) ` {# n4 ?$ d- M - )
7 ]# e0 h9 p! y- `; W - 6 }4 v# `4 C s9 p% {: q: {$ M
- ;free lisp by cadviet,cd2k44
& S. M4 \+ ~! M0 E - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
- y8 R1 ^# t! n; v! ` - (defun c:Fttf (/ ent tstyle )
6 q. W4 e5 Y3 @5 R" _6 { - (command "undo" "be")
1 a& \3 K" ?# } - (setq ent (entsel "\n Pick text :"))
|/ |( _% {! c9 i& c4 Q0 } - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))# l- ~- H9 X( }* d& P7 j' G
- (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n")- F6 [* _, u2 n
- (setvar "TEXTSTYLE" Tstyle)
& U$ u u& i! m* F5 J) L - (command "undo" "end"); r' K+ R2 A( s
- )3 g5 I: G6 ?- p @0 o% E
- " O" V& p) d( k% Z: M- x
- ;;; ============================================0 d5 O1 X; T; A
- ;;;* a7 S/ i: e; j5 U
- ;;; LISP Creater Tao Duong Dan AUTOCAD2000
2 Y7 ?; y# q0 z* T, b. s - ;;;% c1 K' v% _0 \* a4 ]
- ;;; ============================================% x+ b5 ~' d4 D: u. Q
- 1 f: M9 _# w! ~1 C o
- ;;; ============================================
/ u; h" M: b8 v0 w$ l - ;;;
3 h. _; ]" F% H" l+ A+ W# a. k - ;;; CREATING FROM AUTOCAD2000" v* D: m9 \# t! u% W' M
- ;;;
3 O& }( n8 w9 x# Q - ;;; ============================================
' a; V/ O$ }1 F4 g; J( D& e - 6 S9 U7 ~6 V% i, V; m2 s& M
- (setvar "INSUNITS"4)" [- }. r8 x. r$ x! v
- (setvar "ANGBASE"0); X. o) ^9 o( c7 f# ?* K
- (setvar "ANGDIR"0)3 ^( m4 ?2 T1 |) E3 @ {$ r
- (setvar "AUNITS"0)
$ C; O- f! [" [. M9 f - (setvar "AUPREC"8)
7 a* A9 X! M. \" P2 s - (setvar "LUNITS"2)8 O4 s, q2 H: h1 z; T) B
- (setvar "LUPREC"8)- B! q9 b5 F, L1 I- ~( w
- (setvar "ACADLSPASDOC"1) & U1 W q" \4 i4 Q) M% b2 U
- (setvar "pickbox"5)
1 c& ~ D7 Q* d# [( ~. E - (setvar "blipmode"0)
4 S' {2 [6 T4 O8 W% k6 b, v9 E - (setvar "mirrtext"0)
0 Z" m% ]( e; y! y% r - (setvar "cursorsize"100)
6 @6 a! B4 v+ E! O: R - (setvar "ZOOMFACTOR"75)
8 i& }( F2 U ] X - (setvar "LTSCALE" 10)6 v q7 L: ~+ J( w+ S) ^ O V5 I
- (setvar "lwunits"1)
. I& e+ o: n) a# U - (setvar "DIMBLK" "Closed")
5 I$ M" H+ g2 V- P! O& [) Y$ S - (setvar "DIMGAP"0.0693)% G0 E2 ] h" s% |9 P) H+ i
- (setvar "DIMASZ"0.20)& F7 ^' W* Q1 ~% r0 D5 a& k
- (setvar "DIMCEN"0.2)
/ ]9 |( q' o% d& U6 ?3 @% Z - (setvar "DIMDLI"0.1)
6 h) E4 e# M! {' _6 C - (setvar "DIMEXE"0.0693)0 a' C* g+ j2 }* V( j3 L; c& y
- (setvar "DIMEXO"0.25)
8 [1 r) v; I9 H8 L4 T) J8 [9 Q - (setvar "DIMDEC"0)
' d/ Y0 K" S! [& t) S+ ] - (setvar "DIMTIX" 1)
% j, W2 u& H1 {! m' {) ]- g - (setvar "DIMTXT" 0.099)
* R0 A! G2 q3 c2 s) K4 f - (setvar "DIMCLRT" 7)
5 Y0 O$ r! b6 n: Z: k: \; w - (setvar "DIMTVP" 1). d* U P0 X/ W1 B/ v
- (setvar "DIMJUST" 0)
9 ~9 `6 y& V* }, Y/ D! V6 | - (setvar "DIMTIH" 0)
5 e H/ C1 |6 y( `0 c* b - (setvar "DIMTOFL" 1)% r- O2 W% n- A7 F
- (setvar "DIMSCALE" 1111.1111)% |: |# y# M9 A9 Y8 K) u
- & k+ _' Z3 f) h- t5 m* L
- . B: c; W1 x) o0 z1 a1 m: {, y$ v# F
5 F' |# O+ j6 y" Z0 x- (defun c:zp () (command "'.zoom" "p"))* {8 M' _ \; ~" r/ e/ l P/ U9 j- Q) [
- (defun c:zz () (command "'.zoom" "p"))) r3 J5 h( q* ~4 e, S& i
- (defun c:ze () (command "'.zoom" "e")); Y6 u5 e9 J/ ^9 d$ H
- (defun c:za () (command "'.zoom" "a"))' i7 ?5 ^4 ~1 f2 h' s/ r; P. H
- (defun c:zd () (command "'.zoom" "d"))
! I W) S% X* K8 U$ E8 z7 w - (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))" W- _* n+ _% a9 F9 d4 A
- (DEFUN C:ZX () (COMMAND "ZOOM" "2X"))
- @/ b5 O5 K% ~1 E - (defun c:de () (command "ddedit")(princ))
' b1 y/ m0 g P# U- o - (defun c:dda () (command "Dimaligned"))! s$ K. y5 i* f8 Y8 F6 J9 p+ A
- (defun c:ddb () (command "Dimabaseline"))
8 { c! i2 w) `2 e0 c# p - (defun c:ddc () (command "Dimcontinue"))4 k: t M* i+ h6 u/ u3 H0 d
- (defun c:dde () (command "Dimtedit"))
- B0 Y4 e1 ^1 s) c$ w - (defun c:ddf () (command "Ddattdef"))
* M7 p9 w' O% I - (defun c:ddi () (command "Dimdiameter"))
; ]. N7 h. T$ D+ y! f - (defun c:ddl () (command "Dimlinear"))
$ z' g; |: ?3 F% L3 p) N - (defun c:ddn () (command "Dimangular"))
6 k# L$ Q$ M5 I5 y- w1 V- @ - (defun c:ddo () (command "Dimordinate"))
6 T4 [8 Y4 S9 z - (defun c:ddr () (command "Dimradius"))8 v$ E5 h! c5 |" ?
- (defun c:dds () (command "Dimstyle"))0 L- |( B* ?4 W4 I! S
- " F& ^/ q6 m/ n: Z
- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ)
( w- B: s- {9 i- V! w - (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ)4 o2 X0 _0 J2 r0 g9 z% b% P
- (defun c:UU () (command "dim1""update""all"))5 w9 R: e% z$ _
- (defun c:ded() (command "dim1""tedit"))* k2 P" T4 j6 U# P i) K% J0 ]1 M
- (defun c:da () (command "dim1""ali"))
6 H; @0 m- d# L8 B$ @, j - (defun c:dll() (command "dim1""l"))" ?! r+ k9 v0 M2 R1 z2 C
- (defun c:dan() (command "dim1""an"))
4 V. g5 x- g z0 H3 F0 J - (defun c:d1 () (command "dim1""ra"))( U' U; r q4 [
- (defun c:n () (command "dim1""new"))) _5 [( W0 `$ f' ~
- + u2 |. {7 m& V) Z
- (DEFUN C:PE () (COMMAND "PEDIT"))/ P- H+ O5 ]% Y" w4 X
- (DEFUN C:PL () (COMMAND "PLINE"))3 @3 i1 O; m% q* V4 e& r3 T! K$ t' `
- (defun c:dd () (command "dist")(princ))
, c, x8 a/ w/ f - (defun c:w () (command "pedit" pause "w" "au")(princ))
5 t" w6 T- X$ X3 X" E - (defun c:pg () (command "polygon" "polygon")), C+ H9 P W# k2 L! A5 J* H
- (defun c:el () (command "ellipse")). w5 I2 L* ]% @: {
- (defun c:xe () (command "explode"))7 a+ b# p* i; @2 O$ n
- (defun c:eex () (command "extrude"))
. Z& f+ j1 x" ?4 I* D& i; A - (defun c:xg () (command "xline""a"))7 V5 q1 Y4 r/ x7 o
- (defun c:xh () (command "xline""h"))8 Z2 m6 u" q. v1 s$ A
- (defun c:xv () (command "xline""v"))
4 w) u0 [- A3 W% A3 Z - 8 w& O, }: k: Y: U* F1 N
- (defun c:oc () (command "osnap""cen"))
$ T4 G/ d4 E b/ y& _+ W9 J R7 s, a - (defun c:od () (command "osnap""nod"))1 L! V9 Q3 `, M U' S
- (defun c:oe () (command "osnap""end"))) p3 o, h+ t, ^! u6 W, x/ W
- (defun c:oi () (command "osnap""int"))
; e1 d+ C! O0 S. v# J3 z - (defun c:or () (command "osnap""per"))8 l! h5 K* e) i7 @$ l
- (defun c:on () (command "osnap""none"))
* c4 m9 [8 W$ u' r; s! C - (defun c:oq () (command "osnap""qua"))
: w) R5 V* s- K: s - (defun c:om () (command "osnap""mid"))7 o. A( ~# e, Y2 L2 ?
- (defun c:ot () (command "osnap""tan"))
2 w( z; C4 a$ E! i3 T4 S+ p* a+ u! s5 Q - (defun c:oin () (command "osnap""ins"))) L5 E, o8 W, }: O4 Q
- (defun c:oa () (command "osnap""nea")); U; g) X: T8 x' ` q
- (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))
4 P- D; v1 |6 f - ;(defun c:du () (command "dim1" "up" "s" "pick" "other"))
6 G1 F; y y5 ^; E5 c$ I6 d2 H - ;(defun c:nn () (command "new" "y" ))* u3 R0 s8 m+ B1 b5 o5 p9 b
5 S% J( R+ X Q6 ^- (defun c:/ () (command "limits"))/ A3 [, j1 i, W: g. l* y
- (defun c:`1 () (command "region"))
% Z2 m0 P$ u& a4 x3 f - (defun c:`2 () (command "subtract"))
4 ]/ ]. u" r _ - (defun c:`3 () (command "union"))5 N- R$ V! H. W; @
- (defun c:`4 () (command "intersect")) [8 u0 _8 `0 p5 P
- (defun c:`c () (command "cal"))$ E" K9 E0 @- Z* L) N
- (defun c:`g () (command "Polygon"))
: N9 }" c3 H' F/ p - ( G3 V4 q& x; n/ u, v
- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))" R/ x4 B7 Z% M/ }# D. z
- (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ))
& Z! ~, i+ d5 B+ O8 ~% J; x' U( [6 F! h - (defun c:ip () (ssget) (command "print,_plot" ))(princ)# Q8 @% {8 d& x; B) l' D9 l
- : z" y( [) R9 b4 g2 y
- (defun c:ddm () (command "ddlmodes" pause))
% |% v5 v4 ^' E. u( F - . R( c- g1 r, U# J1 O3 }' m9 X9 W
- (defun c:sha () (command "shade" pause))0 D) z, p- g6 O) g( S
- ! c" R$ _' n* e# J
- (defun c:sr1 () (command "surftab1" "p" "" pause))1 d. f/ P i* o9 V4 A. X8 v4 A
- (defun c:sr2 () (command "surftab2" "p" "" pause))
( `; I! U# N" ^" m0 z+ c# X - ' x' {4 w: s- {: r
- (defun c:ad () (command "audit""y"))
1 T4 V( Z R- }" l1 A - (defun c:q () (command "quit"))
) V! G! p% g( c' m% [0 Z - 3 U- b, S0 p V9 `# Y5 Q4 k' a! g/ T( x
- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
" y g/ P$ B; Q- I3 S2 d" z - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30")): l" X5 ?4 l5 J4 l* t
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45")): S) {0 o( A0 o9 E2 X
- (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))1 y& }$ x D0 j% F6 M7 X2 y
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))% T5 z; F2 f. T
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))7 g1 {7 |9 g$ e1 A* d
- (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
) z* w9 M. A# s! A- | d$ |+ r - (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
1 V/ B( j6 D; K! Z2 S# D - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))
2 D+ n8 G! ?* y2 U) P, T& g
: o I* t- K# d+ v* O- (defun c:u3 () (command "ucs""3"))
F9 p0 }+ G$ g* `+ T7 M - (defun c:ue () (command "ucs""o""end"))
8 E& X& k/ n, S* o" N. G& h3 z - (defun c:ui () (command "ucs""o""int"))4 D6 g6 f% }7 U, f0 d3 N, I
- (defun c:um () (command "ucs""o""mid"))
3 B- o R3 t7 a( W6 g; G) \ - (defun c:uc () (command "ucs""o""cen"))6 r4 Q: }8 @& g+ |: n; U
- (defun c:uq () (command "ucs""o""qua"))$ r* k2 Q. t& U1 Z* T4 g1 r
- (defun c:3s () (command "ucs""3"))
0 O8 O; O- o% J# A6 G3 v/ G: |. j5 C - (defun c:sx () (command "ucs""s"))
1 i0 Q; S0 z% y2 G; F7 j - (defun c:sf () (command "ucs""o"))
( ~( F3 s0 M4 b2 y - (defun c:sz () (command "ucs""p"))) w* i- \! I3 O" t3 r9 S# K* R9 j
- (defun c:sr () (command "ucs""r"))
; ]! L# m# K4 `! n: H( `5 K - (defun c:sw () (command "ucs""w"))
$ T' s( l# s; U: I" c& x" E4 Q - (defun c:fv () (command "ucs""v"))8 W c) c4 ~ e W$ s7 Z9 k
- (defun c:ux () (command "ucs""x"))
. C( U* t* S$ p3 o3 Z$ D( G - (defun c:uux () (command "ucs""x""90"))
9 V7 f* r- q# W( ?5 i - (defun c:xxu () (command "ucs""x""-90"))
) X/ |7 Y# h1 ^% U0 a6 y& s/ q/ g - (defun c:uy () (command "ucs""y"))0 o2 _2 [7 v- s( |+ Y1 [3 n
- (defun c:uuy () (command "ucs""y""90"))
! T! W" F0 h) a - (defun c:yyu () (command "ucs""y""-90"))$ }% o, B! T, b
- (defun c:uz () (command "ucs""z")) j! c: P& H# n: D$ p
- (defun c:uuz () (command "ucs""z""90")), r% G# b: Y1 Q! w5 ~- [# g
- (defun c:zzu () (command "ucs""z""-90")): s H7 X1 {: b: D4 ^/ e2 q# I# U
- (defun c:uci () (command "ucsicon" "Properties" ))(princ)/ D: U T/ ~4 {. T
- (defun c:ucm () (command "ucsman" ))(princ)
9 u* X, Y+ N2 c' d$ i - 5 J3 k. a- f& I0 X
- (defun c:sa () (command "vpoint""_non""-1,-1,1"))9 a( X5 G, ~: U( g; w0 o5 P. m/ j, Z
- (defun c:sd () (command "vpoint""_non""1,-1,1"))
+ q# w" b/ B E. n: u - (defun c:se () (command "vpoint""_non""1,1,1"))
/ {) q" }- C u' _ - (defun c:sq () (command "vpoint""_non""-1,1,1"))& ]( \7 S; ?" j+ i; H8 R% d
- (defun c:vc () (command "plan"""))
& y* E% E* ^; A: m - (defun c:vd () (command "dview""all"))4 l) j8 V; R" m; d/ q5 ^
( n* e" d$ P, o- e0 s- u- (defun c:TT0 () (command "tilemode""0"))$ t, v3 @! N P
- (defun c:TT1 () (command "tilemode""1"))' f! ?: r E& {! D, O: g
! c7 g, n. J3 o% L4 t9 ?/ R# `/ F- (defun c:vt () (command "vpoint""_non""0,0,1"))
4 M, O9 v) \# f) _3 G f% ~ - (defun c:vb () (command "vpoint""_non""0,0,-1"))* Y, Q+ S6 p: b* d+ W: [
- (defun c:vl () (command "vpoint""_non""-1,0,0")). t0 z" A: P6 b
- (defun c:vr () (command "vpoint""_non""1,0,0"))
. ~$ _1 S6 b+ {+ U" p5 {' B - (defun c:vf () (command "vpoint""_non""0,-1,0"))
5 s5 j/ H0 X, X+ N* _+ A - (defun c:vk () (command "vpoint""_non""0,1,0"))5 q/ c6 P0 ]7 G" ] p- o
- 5 u% {. Z0 t3 r O* z- R: Z
- (DEFUN C:MM () (COMMAND "MIRROR")), I1 M/ k7 P1 E; t0 H T1 y
- (DEFUN C:MP () (COMMAND "MOVE" "P"))
$ z O' b: {( a& o; d" F - - G K5 e' H' v4 g! ^- {" o8 ]
- (defun c:mee (/ a)
1 O$ K% s( ]+ v - (setq a (ssget))(command "move"a"""end"pause"end"))
) O# w( m$ l2 z; }- b. [ - (defun c:mc (/ a)
$ u- Z5 l+ x6 c9 W: c - (setq a (ssget))(command "move"a"""cen"pause"cen"))8 I; ` o. N1 |1 z+ Y0 x
- (defun c:cc (/ a)- d/ t1 I; d; c+ Q6 P+ _* p
- (setq a (ssget))(command "copy"a"""m"))$ Y4 C2 L' K( O- `. O6 i' v9 G
- (defun c:ce (/ a)
' K6 h7 [1 @, h - (setq a (ssget))(command "copy"a"""m""end"pause"end"))
! w; C5 V' B5 q+ `5 w3 b - (defun c:cn (/ a)5 X+ E9 O1 Z2 E, S* Z
- (setq a (ssget))(command "copy"a"""m""cen"pause"cen"))9 \* n2 d8 }6 s- F# \3 P
- (defun c:tl ()(command "trim""l"""))
m9 R5 }% v$ E+ f/ ` - (defun c:tf (/ a)
$ i# m$ q7 }% b - (setq a (ssget))(command "trim"a"""f"))
) p6 q" i# N3 D - (defun c:el ()(command "extend""l"""))% L9 A' {# X" l
- (defun c:ef (/ a)/ G- N. _' {1 u$ k& e6 \* q
- (setq a (ssget))(command "extend"a"""f"))' P# t/ t/ F3 a: ~9 z
- & X* f; W; ^" ~
% f% f. Q o6 V- q- s+ c2 h- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110"))
% W2 M9 s% o2 c1 ~4 v4 c/ l1 [ - (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))
) U5 N! F, h2 h! J - (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330"))
& r1 z) z+ c+ V H8 p6 \ - (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))
5 ] q0 j2 X7 d, S8 i - (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55")) N6 J) m6 Q9 ?
- (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600"))
# ^4 b4 ~# R2 p2 F% h7 n: r - (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))" P9 X# C. ^# t/ A% q& W: V1 O
- (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))+ h k2 O3 l, x# [
- (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))
3 A1 S- g7 r1 X6 T( c# \2 z8 o$ q - (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))) ~ F* {9 `8 J( ]
- (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))
8 t0 j$ b) w+ a8 j; a( ` - (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))8 W4 [% Y3 O5 _3 F J/ N& |+ {
- (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))% p" Z8 W( u* L# C1 \
- (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))
" E, K g/ p# T0 j- }9 c0 n - (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))1 a" `& K4 {/ F q3 C4 C1 q
- (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))0 l' U4 n! H$ b3 m* _
- (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000"))
$ i! @5 H/ L/ j5 F( v, | - 9 h" X8 C- h; I$ I+ p3 d
- (defun c:mla () (command "-mledit""av"))
9 E0 e& }* J6 c; G. d4 w; T4 s$ v - (defun c:mlc () (command "-mledit""mc"))' q/ g w1 [% @+ n6 G2 v- U0 h
- (defun c:mld () (command "-mledit""dv"))
8 P( H7 X9 D1 Z5 D - (defun c:mle () (command "mline""end"pause"end"))
7 j, F: A" `2 M( l) F/ k3 j - (defun c:mli () (command "-mledit""ca""int"pause"int"))
3 ~- C- U( c- `3 c. B - (defun c:mlj () (command "-mledit""cj"))
3 R7 ~$ { j' F8 f2 v% d - (defun c:mlt () (command "-mledit""mt"))& B9 @! J! J- O. }- q9 W
- (defun c:mlk () (command "-mledit""ca""end"pause"end"))7 U% | B1 q J( X
- (defun c:mlw () (command "-mledit""wa"))2 b% M& l# X; f- ^$ r) \& W& K
1 W9 d; `2 r7 E- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA"))
% R1 \4 [9 _6 n9 o _+ u% P - (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA"))
* m' F2 }6 y- K7 { - (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO"))4 E3 U0 u/ z/ T: R% C$ Z: p% B
- (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D"))
4 M9 _" A( Z& `8 ^2 q1 Q% [ - (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z"))8 ~9 s1 K5 J, M
- / U$ c) C V3 P, C* p
- (defun c:p0 () (command "pline""""w""0""0"))
- Y0 q$ s! C, P$ ? - (defun c:ot () (command "offset""t"))
- D' \$ n& A9 k/ } - (defun c:t () (command "mtext"pause"j""bl""h"pause))1 R. x* e: D: N, w
- (defun c:uo () (command "ucs""ob"pause))6 ]5 |$ p1 T& L x+ U, ?
- (defun c:f0 () (command "fillet""r""0"))0 ]. C2 y- K. F+ B' z9 G1 y+ p# w
- (defun c:fr () (command "fillet""r"))
/ m9 m; A# f$ _5 q# @
7 V/ p( h. c" L4 A* P- ;CHAMFER; M+ M8 l5 _2 ^5 \& Q/ _
- (defun c:cf () (command "chamfer"))* K; w# B( \+ E5 \
- (defun c:cfd () (command "chamfer" "d"))% o- B: l" I( e' k
- (defun c:cf0 () (command "chamfer" "d" "0" ""))4 i6 v" f( @# Y" f/ u
2 V% e8 l( {) R- ;FILLET
# q! T! z, P8 u2 Z9 S1 M. t s9 ? - (defun c:f () (command "fillet"))
6 X6 k5 b3 X1 c - (defun c:fr () (command "fillet" "r"))4 e9 f) C/ b- `
- (defun c:f0 () (command "fillet" "r" "0"))
5 a) @3 J: r* p7 e3 M( @4 O T - 7 Z7 H( g+ K% b& J8 H; F# N
- (defun c:OO () (command "oops"))
5 U8 [& c, F& |9 D! q - (defun c:dln () (command "dimlinear"))
: o k& e: V" f& O' Y4 P- ~ - (defun c:dan () (command "dimaligned"))! E4 t+ s0 |) j6 B: i: B0 ]
- (defun c:ddc () (command "dimcontinue"))9 P5 F; p" _5 f+ f4 ~! A
- ' v# }2 _1 X* b) L
- (defun c:sc () (command "scale" "auto"))0 \! Z7 M7 N7 |" q! M9 k( m
- (DEFUN C:XO () (COMMAND "snapang"))
* N& @& G; V5 Z/ w - (defun c:cc (/ a)) S( C1 ^2 @3 D0 @$ G
- (setq a (ssget))(command "copy"a"""m"))( G p" k( s' a8 m3 W% s) e; Q
, T+ w9 {7 _" H2 `9 N, d; ?- (defun c:PJ (/ a), z+ Q+ K6 D) {- g# ~
- (setq a (ssget))(command "pedit"a"""j""all""y"))
% e+ g+ r* j$ d' c3 i - (defun c:JJ (/ a)& @0 K8 P% A6 C) G
- (setq a (ssget))(command "pedit"a"""j""y"))* j: C2 ^4 W. d6 t5 M- n# ^4 L, J- q. g
- (defun c:TN (/ a)
& {3 r0 [" U, {7 y0 F - (setq a (ssget))(command "change"a"""p""T"))$ g! `4 {9 a V3 F @
) C; g4 v! n% |- v8 O0 u) F0 T
; I1 G1 {5 {, U2 S$ m l- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD=========================
3 I0 x D2 H$ A' h; q& Z - ) Y% }4 S, J3 C: ?. B
- (defun C:IB ()(setvar"cmdecho"1)
# J1 }9 j6 [, t; V k - (setq pt(cadr(entsel"\nSelect Block:")))
7 p0 Z" W. Z5 }" E' ^, l, a - (setq e1(ssget pt)) . ^# ^6 \: l1 _# l
- (setq e2 (entget (ssname e1 0)))6 f' z( N4 Y' n h; K+ Z9 l
- (setq blname (cdr(assoc 2 e2)))- ~% ?* M3 e8 f! L& j9 v* o$ u
- (setq oer *error* *error* err2)(command ".insert" blname))& l8 ]8 N: n+ d0 i
5 I$ E# X# T- ], N! M0 K5 U- (defun c:II (), I( }& R9 s( V5 z* U/ z9 X
- (setvar "cmdecho" 0)
/ G' ] P: ` w1 h, s h - (setq olderr *error* *error* myerror)0 h4 k% T7 X& Q" M6 M( `, q
- (prompt "\nSelect objects: ")
V# m4 t) |; }" o2 c - (command "select" "au" pause)
/ ?$ L' h5 z& b6 X+ e7 e+ q - (setq sstxt (ssget "p")
7 K8 z# g2 x1 R, {" b1 G, G - sslen (sslength sstxt)
0 ^/ M) f( f7 {% T: x - ctr 0& v( D: ]7 g: e9 A# W% k$ y
- )
; b0 s6 y7 N7 X7 c! m - (command ".undo" "mark")
" m ]$ a/ x) Q. D, @/ f( c - (while (< ctr sslen)8 t) P& Z6 N j6 P
- (setq listxt (entget (ssname sstxt ctr))+ L% B3 w9 C" d9 q% _5 m: \) P/ ~
- txttxt (cdr (assoc 1 listxt))
& p1 `4 B% y9 Y& g/ ` - enttxt (cdr (assoc 0 listxt)); k8 m7 {1 h, q9 W
- )1 i) h2 w9 k6 Z
- (if (= enttxt "TEXT")
- ?5 p' q% l5 w$ @, }1 C - (progn; p2 H1 ~, A2 o* U
- (setq testxt (substr txttxt 1 3))
[- ^; K. D* ^6 i$ q - (if (or (= testxt "%%C") (= testxt "%%C"))
8 s: l7 [3 a. K2 P1 D7 g$ o - (setq newtxt (substr txttxt 4))* p. W _, P6 k9 b! g2 j
- (setq newtxt (strcat "%%C" txttxt))& ]( K, W. f" K
- )
$ S( n* q$ z$ J2 r - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
# D* T0 T7 n) c4 R3 A - (entmod listxt)
9 V2 @ K1 P4 b - ); x: c- ~& I1 @- X- K2 n* G
- ); a$ c9 \1 j) \
- (setq ctr (1+ ctr))" r0 K( v! n# Z( R2 J
- )# ~" U# O1 Y' m5 N" n8 b8 J$ Y
- (setq *error* olderr)1 ]" d4 y6 Z! G6 j! _
- (setvar "cmdecho" 1)8 }. g* ?) _8 V% }1 e6 |( f
- (princ)
8 U; t. @% T6 B4 K: l - ), C3 l9 m }3 Y$ K1 {' b5 Z
( B$ ]# v' G- d' U; N3 J- (defun c:DG ()- O; w: f$ b- ^ n, m& E. n5 W
- (setvar "cmdecho" 0)
0 ^0 C3 T9 [/ W4 P/ Y6 I - (setq olderr *error* *error* myerror)* c$ n) _) q3 \
- (prompt "\nSelect objects: ")
( s3 Q' N' p) [1 D5 L5 ] - (command "select" "au" pause)& Q% p. u( K+ u0 q \
- (setq sstxt (ssget "p")' z, A( H3 s2 {
- sslen (sslength sstxt)4 @+ L% p8 P4 j' V1 v" s
- ctr 06 U) n# P+ [% D2 L2 L
- )
: l$ \7 z* Y' [# ^) z4 X3 X - (command ".undo" "mark")3 m! }9 v* Y. k' ? G) k/ }3 T) `3 C( c$ I
- (while (< ctr sslen). \2 _* S- H; L' e4 Q8 E/ \6 y. a3 z
- (setq listxt (entget (ssname sstxt ctr))
3 v! S y1 d3 r1 L: ^ - txttxt (cdr (assoc 1 listxt))) a2 W" Z& p5 W+ I$ }0 E
- enttxt (cdr (assoc 0 listxt))) e. O7 X0 S# I- {
- )
) h& ]" g+ @5 C& g0 s& O) K# E9 } - (if (= enttxt "TEXT")
) S% H# k$ X4 I2 f+ x/ y - (progn- Y v: i! i: h: l" o8 C% X
- (setq testxt (substr txttxt 1 3))/ d; u4 U, X* J, _
- (if (or (= testxt "%%d") (= testxt "%%d"))" q6 f/ A9 |5 @! x
- (setq newtxt (substr txttxt 4))6 r6 @& a) o5 `
- (setq newtxt (strcat txttxt "%%dC" ))
) L5 X/ l7 Z+ s0 n. M8 L3 a, S - )) ?8 W4 }; p! ^+ l
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))3 ~# Z6 P) ?, L
- (entmod listxt)
% k4 K6 V' {" t+ E* m& a; ^6 L - )3 x; F: g9 g4 A" I& E& q
- )
. C. P7 A$ Q Y+ i0 k3 ?* l* G - (setq ctr (1+ ctr))3 F- E! j8 [$ d F- |7 P
- )
- v# b% t0 a8 V( O - (setq *error* olderr)
, S% \! [* ?: ?. M8 q' w& p- M - (setvar "cmdecho" 1)
/ }+ w1 E, s# s3 y( O) X* \ - (princ)
4 W6 R0 ~6 ~& ?. \ - )
* z+ ]! X* q4 c' V
5 J1 ?! c) c1 _" o* U- (defun c:PI ()! U7 f$ I; t* |6 J9 l
- (setvar "cmdecho" 0)
7 }. A8 } [$ A' y; `9 o - (setq olderr *error* *error* myerror)1 }* q6 X- c J0 r1 C6 u, [
- (prompt "\nSelect objects: ")( q/ C6 z3 _! V2 Y3 A: O# j
- (command "select" "au" pause)
m+ g; E) P0 a& [, f" K' d r: T - (setq sstxt (ssget "p")
% G, N! k- }4 h, w! S. @ - sslen (sslength sstxt)& X1 L- d: X* a8 L1 j6 i3 O6 S
- ctr 01 o' P4 }% d* p T; @
- )" b" L/ z# S5 S" I; H. N
- (command ".undo" "mark")4 K0 c* J5 N f8 c; q" K& [. A6 Z
- (while (< ctr sslen)3 e! e# L- m' Q1 b! c! l- j
- (setq listxt (entget (ssname sstxt ctr)), N' {, i' K+ Y' a; c) l
- txttxt (cdr (assoc 1 listxt))
^* j G. U- t' e: [0 n3 c - enttxt (cdr (assoc 0 listxt))
4 r, @5 {; N( \2 o4 c - )- g: P6 B& {' K* Y
- (if (= enttxt "TEXT")6 T. j- O* n+ L3 f+ }6 `
- (progn
% m" z) @, u, x3 w/ |( M6 q6 B- V - (setq testxt (substr txttxt 1 3)). c A4 V g) h+ d
- (if (or (= testxt "%%p") (= testxt "%%p"))# I7 \( K+ z0 g9 b
- (setq newtxt (substr txttxt 4))- d1 e8 d7 K2 h! `& L9 f
- (setq newtxt (strcat "%%p" txttxt))
8 W1 U M4 T/ e! z" Y - )' L0 n6 v) u9 g* e8 a( z- K
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
0 q" t! L# k- k+ z- S5 ^+ R - (entmod listxt)
$ h$ F: h8 N3 W: O - )7 W' l' C' F$ c" h
- )
0 \4 j5 a2 v9 x+ t2 x - (setq ctr (1+ ctr))
2 m- M9 G* E- r% R9 ? - )/ r2 d1 U& c5 r. b
- (setq *error* olderr)
2 Y) b2 f# z6 `7 } - (setvar "cmdecho" 1)
- b8 `! q! z) _3 v, w2 J) Y - (princ)6 i& b- x/ b4 U
- )
2 I3 `8 x5 E$ R - 9 p$ g) a+ k4 Y0 r- v$ q- q
- (Defun c:CB (/ a)
6 ^+ M9 c9 ]+ U3 }! \& S' N - (setq olderr *error* *error* myerror)/ r' T( z2 r5 l5 ~* p1 A( W' B0 r
- (setq ocmd (getvar "cmdecho"))
( L; i, H/ P' \1 o6 c% X8 o - (setq oblp (getvar "blipmode"))
* u/ s1 c* M% ` x! T, G% [0 A - (setvar "cmdecho" 0)' Q/ j* i8 v" R& G+ w9 F
- (setq a (ssget))! o5 ?; S$ Z8 C, w
- (command "CHPROP" a "" "C" "bylayer" "")* z9 N" g+ W8 w; M
- (setvar "cmdecho" ocmd)7 |! }0 ?# B) f L. p% C
- (setvar "blipmode" oblp)
) h2 ^ |9 O% r* o! l1 m. _: v - (setq *error* olderr)
# k) R* N8 I8 M: k - (princ)$ H# b! o% V; J3 g& J
- )
: x$ @/ O# O* ?% v. y - + z+ W' @' K. ^) G
- (defun c:LCC (/ co43 obj23 la23)
9 k1 e5 p1 A1 [9 o/ w - (setvar "cmdecho" 0)
; x$ W+ o& N& e0 |* D4 B - (setq co43 (getstring "\nNew color : ")): c7 l4 C. _* q1 k, c
- (setq obj23 (car (entsel "\nPick object on desired layer: ")))
% ]! | u$ L* J - (if obj23 (progn
% u9 }! S8 Y9 v0 {! \" i8 U" n* g - (setq obj23 (entget obj23))4 R: D+ ^- o9 h* u+ h! S
- (setq la23 (cdr (assoc 8 obj23)))
6 S, h) I. F/ E9 ?) W9 U+ R4 P - (command "layer" "c" co43 la23 "")6 V: u' I5 y4 H$ I
- )
! z! |# z4 _& q, t7 M- k& B, A - )4 ^; p0 p, n$ f: Z" k! h
- (prompt (strcat "\nLayer has changed..." la23))
- r/ g0 A, H$ E - (setvar "cmdecho" 1)
6 _; R! ? Q" I* x/ [8 w - (princ)$ f" f A# d: r, F
- ) 1 g# h' B" ]8 Y
- % v1 p) ]3 \' L+ N
- (Defun c:RP (/ a)
( ~8 q' q& f1 q2 O' @ - (setq olderr *error* *error* myerror)
$ O5 x! `2 w) F6 k3 c; y - (setq ocmd (getvar "cmdecho"))
* w0 I2 X- M7 l, f* I8 L/ P - (setq oblp (getvar "blipmode"))
' }- R9 H% `' Y" P' L, i+ c - (setvar "cmdecho" 0)
+ E3 L! b+ B9 z - (prompt (strcat "\nUSE: Delete object(s) belonging to"
( G8 e9 E9 c* R/ a/ K/ C - " the layer of the entity picked...!"))
8 c* @8 M5 s( x+ V3 n - (setq a (entsel "\nPick the entity with the desired layer to delete: "))/ B, {+ l+ N+ G
- (if (/= a nil)
; N4 ~4 t) \" ?) \9 w& t - (progn (setq a (cdr (assoc 8 (entget (car a ))))): ~" I% G) W, I7 y
- (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))6 X- F/ O8 ]3 c$ p; o
- (prompt "\nNo entity selected!"))) O3 y3 H# v- N3 \ ~
- (setvar "cmdecho" ocmd)% T0 _" f% |1 ~8 ?4 m& z
- (setvar "blipmode" oblp)
; ^' Y ^7 `9 K) H - (setq *error* olderr)
& U% H1 ^/ w5 _ J! J - (princ)
. J0 v1 S3 k4 f7 F, E/ k - ): [( S* [% Z% S
' s# [4 o% E. t% n6 ?0 ?- (DEFUN C:WL(/ SSET NET SSL M)
2 u. y8 I x6 B" [+ z: g8 ~- _* t - (PRINC "\nSelect lines :")7 V5 W3 t4 ~+ x" U; p) n
- (SETQ SSET (SSGET))
$ g, C' z, T2 l5 S - (IF (/= NIL SSET) (PROGN3 i: z/ n' F5 Y& K! e$ O* ]8 Z# n
- (SETQ SSL (SSLENGTH SSET))
- d$ g* N( R8 W# g1 q6 o! H. | o - (INITGET 4)
4 y! a; I8 W3 {4 o! @ - (SETQ NET (GETREAL "New width : "))$ L- C- }) w- Y! L3 r. i+ U, y+ A
- (IF (/= NIL NET)
0 @, ^3 W, z+ x) E - (WHILE (> SSL 0)9 U/ v- Q: J I e2 o3 u
- (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))/ H O. C. b; q
- (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE") , j8 G9 W# S' w8 G Q: F9 s
- (COMMAND "PEDIT" M "Y" "W" NET "")
! R) I4 b! l l, f/ X - )
2 F, E+ ~" B. j4 K, o - ) " J; ]; w5 i+ g% K
- )))2 s% A9 Z# d! }4 z3 G3 V8 y- `
- (PRINC)7 z, H. N! X, }: x8 F/ E' F
- )
, T" O; g5 {# m - + N# }- z" R' z$ y$ k
- (defun C:MML ()1 f5 H% w$ ^" S2 b8 ^7 _
- (princ "\nSelect objects to move to another Layer.")
/ O7 @% V6 a# _ - (setq ss (ssget))! n' H' E/ E& i. x3 N
- (SETQ UL1(GETSTRING "\nLayer to move entities to : "))
3 n/ J4 d) |8 n& W - (setq counter 0)
' C2 t* M1 _3 e% H! a8 z$ o- Q$ Z - (prompt "Moving to layer.....")(princ ul1)9 ?; F# A2 B- b7 Y- a9 V
- (setq e (ssname ss counter))2 G! }; {; }( E. ~ v# r8 H* k
- (setq l (cdr (assoc 8 (entget e))))
, ?* ]7 ]8 d2 u2 W) j7 `/ V, I - (setq S (ssget "X" (list (cons 8 l))))! y$ A+ o. j I' _% n
- (command "CHANGE" ss "" "P" "LA" UL1 "")( F) L9 L5 I6 o2 L4 F
- (setq counter (+ counter 1))
; {7 s0 ~3 i) ^8 n - (princ)
/ E0 x1 U* Z, z6 \ - ) 1 L% Q) e/ @0 E% J6 M
( X3 W+ A0 Q( b' g: R+ p0 r- ;;; ================================ GHI CHU ============================
X% ]. Q P k- z7 q ~+ x - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
/ m9 H2 B0 ]; I: ~8 H8 `7 X - ;;; =======================Thuong Dung Font Romant.vnh===================
; Y' b- T7 N7 v* \; s - 9 k. [6 [6 X x# L8 V
- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
- l& I" \3 }: N - (setq oer *error* *error* err2)
( c5 O3 R' W5 V1 u" t7 \ - (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")0 S- I, S# W) n
- (SETQ Cpt(GETSTRING "\n (ROMANT-vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (UNKNOWN-font)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))* v+ r9 v' Y8 G6 Y }, U! p
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p")): q# Z" K! u. v H
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh"))) m5 D* ^( ~# a& o
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p"))
& y0 e9 `. B3 u0 _2 _ - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c"))+ o: W+ v5 H# G0 ~5 j6 z4 N
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?"))
+ o: c+ B" a( |6 _) |% j - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An"))
( }" m7 T! ^# Y8 r* A) m - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho")). b F* c& v2 g5 x* r6 q1 P o
- (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`"))' u/ m- ^- I% F" K7 I5 e1 c4 t- d
- 1 d% O6 S; _# m7 M2 u
- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp")) w, K! R+ L3 W# B, d
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))6 d% y. C/ N3 z
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))7 u7 F4 e4 W+ E4 k n, f
- (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))
, x) `7 a2 `! o' Z3 q) n - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))' A- N6 d+ m O7 g" Q! Y6 y
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))
7 \- i) |4 v3 W5 r: o - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))8 _7 s, @' N: _
- (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
* d/ M2 z9 \4 s - 8 L) x$ j9 F) X' }5 f! t$ A
- (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))- F7 `* n c2 R& v) D' c8 U
- (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))
7 o* }& S( z5 m - (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))
$ K5 |6 y5 {( E! W! z7 X* b - (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))
) _" n G, w' k7 K, A& `0 r - (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R")), J1 I7 k! C; D" D; G1 x
- (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))% \: t1 [8 G' p' M* _4 J
- (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))4 o" g2 b# `! [; m) c
- (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))
, I5 F( R5 e) W: V: {/ X! I - (setq pta (getpoint
5 J$ K1 E7 `7 ] l/ n; m - "\nPick first corner. : "))9 [9 r: s5 F- t1 S" O
- (setq ptb (getcorner pta8 t5 R8 Y5 R- `, M
- "\nPick second corner. : ")): F6 p1 p h* D! v, p
- (setq ptc (list (car ptb)(cadr pta)))
3 d2 [. U# l1 P3 L { - (setq ptd (list (car pta)(cadr ptb))). T" A2 Q/ P) ]% k2 R( [ o
- (setq ang (angle pta ptb))
( ]( N8 x8 l& E9 |/ G1 }+ ^ - (setq d1 (/(distance pta ptb) 2))1 m6 S* d6 K4 ?% g
- (setq cp (polar pta (- ang (dtr 0)) d1))+ m0 o6 N! M4 s( H% j8 F
- (setq X (distance pta ptc))
9 \ Y- U2 I/ [& J% f - (setq Y (distance pta ptd))
& y9 {' t; j) w; k - (setq X1 (rtos x 2 1))& `6 P. p, q# v# K& g
- (setq Y1 (rtos y 2 1))1 g% G% b8 `" ^- l" s& U+ `, B7 {1 `
- (setq rmsz (strcat "(" X1 " x " Y1 ")")), a* Q* F, l, I
- (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))6 a* `- n# t! ?- T% p6 h Q+ M
- (defun dtr (angg)
! s& T, n) K8 _. o1 n B - (* pi (/ angg 180.0)))
0 J6 c6 I/ |, m% ~* ]' M* c! u
* \3 y8 j8 H3 K9 y" e1 r2 Y5 o- (defun c:WS (/ pta ptb rmsz pl1)
' X& O3 `* m% F. \8 ]) g - (setq oer *error* *error* err2)
' l j" H% w/ e! s. N7 o* m2 d - (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P).")' r( q: U% U8 E5 ]% o- H. A# {* N
- (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))
: v* n2 ^ j2 {& M! E& R( r
8 {! g5 D( M0 N7 @- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))
% a; @/ l+ K, z - (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))
3 k- m* g0 |& W [' ] - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))- c+ C0 _& h) a0 C, H5 O3 H
- (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))
0 @2 }0 }) E. r" e! P( A - (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))
0 u( Y& j: h6 [1 l) s - (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))& j9 B) z/ L& y
- (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n"))) s0 {- y( y: q% O n6 }
- / n! X6 r y3 U& n. J
- (IF(OR(= Cpt "L")(= cpt "l"))(SETQ CPT '"MA/W/JT BA/W/FNG TA/M/FNG 1 : TI/R LE/M/J - 1:100"))% x0 a) Y4 H5 `/ m& m
- (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100")), V5 u; x% r5 b1 k$ `7 N: j+ o
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))& l: P. [ n' W7 x$ C8 z1 D
- (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))! i1 [5 e9 r: _6 J
- (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))
' `' F% K! z2 `) h. C; `* z4 ? - (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"))
* z$ y7 e* B, R! X% v5 I E9 u - (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN"))
$ W& ~4 V! @7 G7 n0 k" x1 c3 t - (setq pta (getpoint% q2 _+ c3 x2 x |* A7 l
- "\nPick first corner. : "))
6 [- }# }8 t6 V+ p$ d - (setq ptb (getcorner pta) J- p) Q& g- K z r0 n; C) h
- "\nPick second corner. : "))
8 ^+ p6 _# X# |' k - (setq ptc (list (car ptb)(cadr pta)))' g+ Z! |3 l1 t. a0 P, f
- (setq ptd (list (car pta)(cadr ptb))), `; L/ c0 @4 u, A" I
- (setq ang (angle pta ptb))
" E) h7 }! a; N; w. D - (setq d1 (/(distance pta ptb) 2))9 U/ m1 d) H* s; W2 f9 g3 }; `
- (setq cp (polar pta (- ang (dtr 0)) d1))
4 I# B: v3 C) L2 x+ G& t - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))- e- `: q- S5 Y) E
- (defun dtr (angg)7 N3 \7 L: I* T0 f6 Q* y$ |
- (* pi (/ angg 180.0))), q3 }# R6 V& d) p# J2 j
- 0 t. v; H3 x; X# _9 g5 K
- ;;; ================================ GHI CHU ============================
( j3 R, Q- r0 M/ J& l" D4 T - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
) x0 u2 o5 V F/ H6 I* P7 P5 G - ;;; =======================Thuong Dung Font Romant.vnh===================
1 B- W$ p+ \3 H7 F, o
6 ]3 C9 J m5 r% F- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)( r$ c K \$ ^7 K3 H& p& H0 U7 v
- (setq oer *error* *error* err2)
. ?9 N8 \, S) ?9 f* v; I: n - (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. ")2 ~8 {* F f$ n+ b
- (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))4 \: x5 j) a2 Y3 N4 l+ S, h
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p"))
( Q0 t4 f7 S6 V2 r/ X - (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))$ i8 ^, U7 ^- h' s
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p"))
: D; T0 a$ x# \, f - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c"))
: H: @' z. w$ D, e3 K# ` - (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))
1 @6 j; C: \3 R - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An"))9 k- d, w# P* W; C# ]# f
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho"))
" w! o" C4 T8 v b" K9 h - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?"))
2 Z9 x& v+ l7 r: V - (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp")): }. O. ]0 E, J7 L( F4 X) V
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))% ~# k) i" `& f: P( f) k k
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))( N( g9 V3 C4 z: W3 @7 X2 x% z
- (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc")) E5 E1 ~7 K& u& [
- (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
+ h' `9 ^( [1 I5 z6 {6 Y - (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))
1 F( x; F, U" q1 P' Z: m - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
% O7 m! x3 s% X5 k; X - (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
% ?% j+ O s2 O& K/ M! m4 X2 u - (setq pta (getpoint/ x4 G2 E8 y) D! S* j
- "\nPick first corner. : "))
6 B( _+ m) ]( C+ l1 K - (setq ptb (getcorner pta
( U+ c2 j# Y/ P$ K+ G - "\nPick second corner. : "))
' p4 O9 ]7 u* }* O! y; d4 _ - (setq ptc (list (car ptb)(cadr pta)))/ ^: T' O0 I9 ]2 H5 E: R
- (setq ptd (list (car pta)(cadr ptb)))% f0 T* u0 i8 U5 y
- (setq ang (angle pta ptb))! f8 r2 p6 g* @4 a0 B( s r0 H2 a
- (setq d1 (/(distance pta ptb) 2))
4 I+ w/ f8 T" [1 q* ` - (setq cp (polar pta (- ang (dtr 0)) d1))
6 M9 ?# p0 Y: w( K* Q. L - (setq X (distance pta ptc)) a# v' C$ K9 k6 ?
- (setq Y (distance pta ptd))$ @+ p5 B" d; u
- (setq X1 (rtos x 2 1))
1 V( y: ]( S1 Z6 w/ h- K/ }6 q - (setq Y1 (rtos y 2 1))9 ^1 r0 X- B3 [6 g- v# ~
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))
8 B! j* g/ a: t - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
' x0 I; k6 f; r5 L3 C9 Y - (defun dtr (angg)
$ G0 m0 v7 }4 s9 F+ [ - (* pi (/ angg 180.0)))
4 P" a4 M d' p4 {% H4 J f0 Z
: h# f! h H% G7 a+ @- ;;; ================================ GHI CHU ============================: ^* [* \ U- @7 ~
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
4 y7 j! ?+ d6 W. S- A5 w - ;;; =======================Thuong Dung Font Romant.vnh===================* Q- D" U9 z" ^& u. M
9 q+ }, N' g. Q- ?( M5 g$ n- (defun c:GS (/ a b c d)3 W7 `: B& h3 N' `1 K3 u2 s% Q
- (graphscr)
; K$ b; U; V V) U - (prompt "\nSelect text to set style....")9 v; G! V B1 r8 _ [$ [6 H2 j- g' |$ [
- (setq a (entsel))3 p' y8 @0 _5 q# ~% a
- (setq b (entget (car a)))- c/ g( d+ \# p) O( n# S
- (setq c (cdr (assoc 7 b)))
7 N9 j" ?) P) m* O - (setq d (cdr (assoc 40 b))): ~% R8 ~4 q' ^( C# T0 M
- (command "style" c "" d "" "" "" ""))* g5 O/ I3 \9 l& m0 o
- (princ "\nType GS to set text style.")' R$ n& S1 R" V' P& _5 c3 k
- , v! ?, s. _% F: r7 N
- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)) }* a0 W# s) ?" r. T5 n/ p
- (setq olderr *error* *error* myerror)
\, p9 S/ X4 u8 ^ - (setq ocmd (getvar "cmdecho"))3 K! K$ S- a8 J4 w
- (setq oblp (getvar "blipmode"))
: @/ P' U0 ~& @% W5 A - (setvar "cmdecho" 0)) A8 q8 ^3 h% u/ c! }% A
- (initget 1) ;3D point can't be null. ?4 t. o( Y$ u
- (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))
' n- L# s$ ^) I" J- f - (setvar "ORTHOMODE" 1)
( V, @0 I Q7 g w2 y. \6 S# z - (initget 7) ;Length can't be 0, neg, or null. L1 T/ m8 b- h i8 w
- (Setq l (getdist pt1 "\nLength: "))
5 X$ a. L8 q+ `9 M! J. A - (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))
; |2 f; t- n* y - (grdraw pt1 pt2 2)
* t6 E% T( D- I/ u - (initget 7 "Square") ;Width can't be 0, neg, or null
3 r: Y1 T# y$ ^# _7 z1 | - (setq w (getdist pt1 "\nSquare/<Width>: "))9 t3 s% k1 Y( E, e. C" L) W5 }
- (if (= w "Square") ! U$ K8 f* {9 L7 H% U
- (setq w l)
V4 T9 G' J5 Y6 K1 { - )
+ a- L6 @3 ]. u/ x - (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))8 ^. O* u: c! B! y
- (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))# L" F6 s* r$ F1 u
- (grdraw pt2 pt3 2)9 g! t/ ~4 b9 C- P, [; U
- (grdraw pt3 pt4 2)
( x( O9 @4 U9 E4 @+ M) J - (grdraw pt4 pt1 2)$ F1 Z3 V k0 d% \0 g
- (setvar "ORTHOMODE" 0)
" \6 W" f% E5 B; s5 t3 X$ @3 u - (command "pline" pt1 pt2 pt3 pt4 "close")
7 w' O' Z3 M6 ?! e0 E: ~1 J/ V1 O - (setvar "cmdecho" ocmd)% f6 n% i' y. V' c/ T: D
- (setvar "blipmode" oblp)
: f- K4 [3 L p - (setq *error* olderr) ; Restore old *error* handler
' T% h* |+ [1 F0 o8 B' @ - (princ)
8 W; L) X$ j m M! ] - )
2 }. D6 Y3 H1 X/ X8 @
' w! ^/ I9 r f7 S9 R* y- (defun c:SG (/ ent pt1 pt2 ang)
6 @3 j* p% u3 y5 |- h, |( F - (setq cmd (getvar "cmdecho"))
+ Q, b, {- U# v( n6 b4 B+ } - (setvar "cmdecho" 1)- D& O$ ]& v5 n1 B/ \( [
- (prompt (strcat"\nSnap angle will be set to angle of line"))
& R% H& \8 t$ w3 V' m& t! H - (setq ent (entget (car (entsel))))
# _* D/ r2 ~. R) c0 v7 z9 w; D - (setq pt1 (cdr (assoc 10 ent)))0 E- d) t9 f$ g9 q
- (setq pt2 (cdr (assoc 11 ent)))7 R' V) D m% o9 ~% I6 @
- (setq ang (angle pt1 pt2))+ V( O7 u! N$ }0 [
- (setq ang (/ (* ang 180.0) pi))
8 X+ J" h! e6 u6 a7 n" L5 Z5 \' P - (setvar "cmdecho" 0); b3 s3 E7 U# p' m: x
- (command "setvar" "snapang" ang)! f# b8 p6 x4 d- Z) W
- (setvar "cmdecho" cmd)- j- C$ D. [1 t
- )
# x4 G# d( Z1 q - ( P) s! k5 z* r' q" |
- (defun C:TG ()
4 p/ i9 W5 }4 e; \1 W* h - (initget "Increase New")
% b$ h; z j! d% V - (setq ans (getkword "Increase/<New>: "))
8 C2 T7 S3 L/ S P - (modang)
& t7 ~: v3 l% L4 r6 i - ). e4 u( B/ M; o$ F I
- (defun modang (/ ang ss ca e na ssl)+ O: ^ N" L+ Z" C* T
- (if (= ans "Increase"). F# G- A9 I+ }0 b
- (princ "\nIncrease angle for text by: ")+ d9 e8 w8 h0 A" X( A4 K4 }
- (princ "\nNew angle for text: ")2 g# Y) s% r E
- )
2 @& i8 ^4 D, i7 I: }* n0 _7 u - (setq ang (getreal))
2 C/ z3 I7 _4 Z* [7 L5 x+ F - (setq ang (* (/ ang 180) pi))
1 C1 D5 U# O* E1 I7 m - (setq ss (ssget)), S. ? `8 Z- S% x4 [1 D0 C
- (setq ca 0 ssl (sslength ss))
B) g8 U) O3 h - (while (< ca ssl)
N% x' s) t1 y4 @8 m - (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))2 |, f9 M G& ]
- (progn. M; b( m$ H0 L. ]
- (if (= ans "Increase")
# p0 _" |! E1 k( @/ x - (setq na (cons 50 (+ (cdr (assoc 50 e)) ang))). G8 z& g8 ~8 s' s; C
- (setq na (cons 50 ang))% X+ s& V! A) f. Z8 { j
- )
" w# ^# k% U! J1 k7 D - (setq e (subst na (assoc 50 e) e))
( G6 Z8 u& m# Y. C! d2 h8 e) W - (entmod e)% w6 w9 b4 j& q9 }1 m& b
- (setq ca (1+ ca))
+ k) W1 q ~; V- M7 N( Q3 ^ - )/ R0 |5 Z n5 B4 \8 c2 ?7 Z3 T
- )
* t4 E, q b3 c - )2 |9 ~; _: v2 g# u7 F
- (terpri)' `# f% y; i# g) U
- )9 O- g7 [8 r) j% G% }4 Y
- 2 T9 R. g B6 n2 @5 [& @
- * h4 J- G: f1 |! G3 i
- (defun c:WL ()
, k( |) W! G) N+ d - (setvar "cmdecho" 0)
) A6 B" i7 D. n c - (setq a 1)2 f0 P% b$ d2 F* J- S* P4 ?
- (prompt "\nSelect Polylines to change: ")% o, y0 Q& {4 X; P
- (while (/= a nil)
3 u( m+ Q! Q, Z. ]6 v, | - (progn
4 _* l3 A* U! a - (setq a (entsel))+ I/ z- g4 h5 x$ x) r+ M9 a
- (if (/= a nil)$ `% e: ~& G7 \/ N' U
- (progn. b- {0 Z8 m& V7 i
- (setq b (entget (car a)))
6 Y( _8 m4 x" K7 H - (setq c (cdr (assoc 40 b)))9 w1 q2 o5 e1 k( v
- (princ c)
W* l! S' d* g; | - (command "pedit"a"w""lw""")
/ B# h* u8 |: b) l' k1 t# R - )))) n1 u) |# D% J% A5 J2 `! f/ e
- (princ)) G; \3 R# @. K9 P5 u! q0 `
- )8 V# y% ?( {: c- _3 |. `, I4 A: z
- 6 \/ a5 `0 h5 G _7 B5 N- n8 M0 ]9 \# r
- ;;; ================================ TEXT FIT ============================
( w! z3 p& j% \4 `& b4 ^ - % }, o4 Q3 u! Q6 e. H) P
- (Defun c:FT ( )
$ Z {8 F, R" k V6 H/ P9 X% j - (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )
, j7 l# ?7 H8 p4 H( g- { - (Defun LL-xyz (arg) (CAR (TextBox arg)) )
+ F# i: S5 U8 T& E O W% |$ M - (Defun UR-x (arg) (CAADR (TextBox arg)) )& e; S" D3 |% u+ b9 b
- (Defun LL-y (arg) (CADAR (TextBox arg)) ), g x: f$ U" c& F B
- (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )
' u/ i+ S+ }8 t7 i8 \" s - (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) )
% N) U4 j, k( u& y - Textent (If ename (EntGet ename)) ) 9 j9 L! m5 h. J( u7 Y+ G2 V7 W% Z2 W
- (If (= (CDR (Assoc 0 textent)) "TEXT")
K- Y, U6 o0 Z- i/ i - (Progn (initget 0 "Start")" L) C- q" m/ [$ a. F, {! O. ]
- (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )6 ?& m. J7 N, H9 i. n& b+ K: l
- (setsnapang Textent) ;set snap along text entity
5 T8 N2 M* L8 K: b - (setvar "ORTHOMODE" 1) ;drag along the text
" }: f( L4 e9 q Z6 }, }+ l1 ` - (setq
5 f! f" u2 S% n1 N" ? C# \ - TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") )
+ e( l3 F+ Q# ?4 M - (setvar "snapang" 0)
* P2 l. k2 e7 B( L! ~ - (cond
. F2 V) ~0 G5 |- X6 u$ r - ((= (type TMP) 'STR) ;;new starting point to be selected
i* h: T4 _) e8 n6 f - (setq Start (getpoint "\nPick new starting point: "))* [( z s0 O5 l* m2 i. A# u
- (if Start (progn
6 i+ P1 e7 Z" B4 F1 r% o - (command "_UCS" "_E" (cdr (assoc -1 textent)))
* R; O2 A5 p7 _4 N5 s# w - (setvar "ORTHOMODE" 1): e, b. i o% [9 F
- (setq NewPt
$ _ ^; o" |3 s2 ~ x% W - (if Start/ U! o5 }/ L6 k/ g' p, [ L9 o5 ~
- (getpoint (trans Start 0 1) " ending point: ") nil ) ). a5 O9 s$ ]) V9 |0 l# u( g
- (if NewPt (setq NewPt (trans NewPt 1 0)))6 R# d7 |0 b) v& q
- (setvar "ORTHOMODE" 0) E6 C/ w/ x6 ~0 B
- (command "_UCS" "_W") ) ) )4 U/ q# f. N8 U- y) |4 q
- ((not (null TMP)) ;;new ending point selected
+ b3 o8 k' c9 i& J" {4 a - (setq Start (cdr (assoc 10 Textent)) NewPt TMP) ): F! x- V' m' r8 J( b: ^
- (t (setq Start nil NewPt nil) ) )' N: j O7 x6 q$ [$ h" L! M) l3 ^! X
- (if (and Start NewPt) (progn
2 c% N+ C5 ^: N* J0 I7 j& q - (setq Val (Assoc 41 Textent) ;;current width factor
$ `# z" }: U/ O$ F4 r/ z. M - Val (if Val (cdr Val) 1.0) LTC_%
" O9 H9 y4 A; d$ p - (* (/ (Distance Start NewPt) NewEnd ) Val )1 |) G# v8 a- h/ t3 Z
- textent (Subst (cons 41 LTC_%)% ~9 r6 q! X* V2 C. M! F6 e
- (assoc 41 textent) textent); {4 V) v+ ^: @6 F6 L9 k# Q6 n/ j+ G' h
- textent (subst (cons 10 Start) (assoc 10 textent) textent)
2 I/ g) t3 r+ \8 J6 u; Z - textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )! v' L. i. p/ T* n( W& l$ V
- (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))
L) O0 x5 `, F( h- n+ z" [* k+ Q
$ e$ Q+ _# x/ u$ b1 j- ;=====================================================================8 W: b9 p. _1 q" `: y# E/ H
- ;=========================COPY + ROTATE ==============================
* `, ]( {# ]) | o% R - ;=====================================================================
2 c# a0 L3 Y* @- g# T: p
% m+ ^: C; x: j: c8 E5 u- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2)& f5 c* `9 N% b& t( _
- (setq olderr *error* W2 i) b- [0 G8 ^$ J8 s
- *error* croerr)
- v6 n2 F; z. _+ Y2 ?5 l - (setq cm (getvar "cmdecho"))" }! ?4 h% q9 K% p
- (setvar "cmdecho" 0)
6 F7 ~) z- Z3 i' D' J6 Y6 `5 g- _ - (setq loop t)' v! W$ b3 ~. \4 @5 q
- (while (not (setq ss1 (ssget))))2 S8 O8 P- u; O
- (initget 1 "Multiple")
7 u- B5 @7 v+ y( P2 H# m - (setq bp (getpoint "\nBase point or displacement>/Multiple: "))
$ q- z8 w2 D) Q$ p/ J. }: k* H" b - (if (= bp "Multiple")
9 t( a. e$ K! i8 g& Z - (progn
, ]" G7 t9 n" g7 P - (setq bp (getpoint "\nBase point: "))% v. O9 X. W" v% d
- (setq mult t)
/ ^ m+ E, N- w/ \/ T - )/ N* c8 |* u" l. I$ E
- )0 z& M6 o. u2 ]+ T3 g9 T. g. I+ t
- (while loop
" A2 {$ r% ]7 X6 w4 U( ? - (setq loop mult)
- r& w) s8 u" v) \5 N- v j% } - (setq lent (lastent))
& @- U" v% d. x2 O7 A1 K$ d - (command ".copy" ss1 "" bp bp)
' @3 ^) N6 K8 ?" V/ S9 H+ X - (setq ss2 (lss lent))
: _/ R" ^1 s7 a - (setq lp1 (getvar "lastpoint"))" s0 G: ^* X+ k! G& z. W2 `1 W
- (prompt "\nSecond point of displacement: ")# O& Z8 [6 O0 N4 v" T i7 o6 @: D& G
- (command ".move" ss2 "" bp pause), w% K! v2 i/ } ]5 x
- (setq lp2 (getvar "lastpoint"))
1 p7 f3 f$ m" ?* I - (redss ss1)
7 y9 ]) |9 _- I' `! i3 \ - (if (and (not mult)
' U7 p" S7 a( t6 x: o" U - (= (distance lp1 lp2) 0)" l; S6 S! ~/ t3 w
- )+ U5 r0 [. b s( [
- (setq lp2 (getpoint "\nRotation Point: "))
8 p( b# _' w5 }- d0 a1 ] y - )
" f* t; v( E& F5 M: i( t$ z - (if mult
6 ] A1 b2 T, s; L- \# z+ N4 k - (prompt "\nRotation angle ")3 [: K/ v+ C4 q4 b' Y" W/ M
- (prompt "\nReference/<Rotation angle>: ")
$ {" l( X6 G, m1 F4 v - )& B: I4 k. N( c( M2 ~
- (command ".rotate" ss2 "" lp2 pause)
! `$ P+ M3 }/ [& R; B* [ - )3 b/ \& F( D5 p1 @1 ^; |
- (setvar "CMDECHO" cm)0 M1 C1 M8 R$ M7 G
- (setq *error* olderr)3 B: g1 N0 B5 K. X6 o
- (princ)
5 G) d6 K$ l) z) a0 X+ F7 l0 x - )
! q6 V0 d, F7 p% z - (princ)5 W( \# b) Y [, T3 |
- (defun croerr (s)
5 u9 m' B% l/ w3 z* d8 Y2 U - (if (/= s "Function cancelled") 9 P' l: C! n2 n( Z; }
- (princ (strcat "\nError: " s)); B+ P U! ?! \2 o2 P
- )
8 R8 [6 o- u4 f" {4 Y. n7 Q - (setq S nil)
" _0 N0 U2 O7 _6 n. @2 s0 x H - (setvar "CMDECHO" cm)
, @. \4 m! d& s5 I5 K+ ?8 u/ Y - (setq *error* olderr), W1 A+ R& P8 s8 O
- (princ)
) d. E7 t" }! |/ u$ R1 k' Y - )* Q- U" g" F( G/ D
- (defun lastent (/ a b), ]9 f6 P+ T& }' @0 O# F9 N
- (if (setq a (entlast))3 ?; u; [ M9 l
- (while (setq b (entnext a))
) {8 D6 H6 x1 b* f7 p8 r: W: e - (setq a b)! _8 e$ v; e6 ]5 M% M
- )
2 Z) n4 Q- r' [ - )
7 U- W7 U+ X) ^6 B6 ~ E( D - a
' Q; [0 d! W: g9 F7 E - )
- M9 m8 }2 `8 n( u( \) [ - (defun redss (ss / en i)8 f1 F9 O3 a' G# D
- (setq i 0)0 i8 D# w( p$ B( p/ K( H! s
- (while (setq en (ssname ss i))% l- m$ b( B9 j: n8 R' a
- (redraw en 1)# s! x% ? q8 t8 J5 {. s
- (setq i (1+ i))$ z7 r+ m- e+ N8 n
- )
$ u3 g$ U. G+ X- `0 R - )
2 D, _$ |, ?3 y. |5 |( e7 v - (defun lss (en / sels ed)) H# ~ ]6 P2 I# H E- d* ~0 ^
- (setq sels (ssadd))
; Q2 m. _0 a3 x4 y G - (while (/= en nil)( y4 K, b; v) H- G/ V Y/ ?9 D; l
- (if (setq en (entnext en)) (setq ed (entget en)))
3 H; e# ^3 P W4 q" \# f - (if (/= en nil) (setq sels (ssadd en sels)))
1 L9 T1 U9 |. c9 r$ E: h - (if (or (= (cdr (assoc 0 ed)) "Polyline")0 c& U- W6 g7 b0 I/ s
- (= (cdr (assoc 0 ed)) "Insert"): d" L; Y6 i0 r% S9 N( i) l$ }; M
- )
7 Z1 T7 S M3 n, v$ W - (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))
, m4 S- K- k/ |6 S7 C1 u% P! T D5 K' s! ` - )
+ y3 H& Q7 u6 S5 R7 x - )2 x* V* i3 U: s
- sels1 ~0 N5 D5 n% {! w
- )# y' m; I/ j" ]5 w1 p6 B/ s/ m d
$ J1 t- _( B1 B3 Y7 z5 h k- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================
4 J3 L0 _6 e% H f9 B( ~* O - 2 p' e1 ` ?" H% U
- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" "")) J& ^! V% @: ?( E0 t: N7 f9 u" |0 D
- (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" ""))
( z* B) ~/ `, O5 A) r0 I - (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))
; |" H1 \" r% j5 T9 g5 C1 O( y, | - (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))
, g H) A8 q% o - (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))
/ }; }) a, _# f3 {; @6 K - (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))7 r! R3 @* c* G H. l( q
- (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))
! u5 \* y' \. f. d - (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))
0 O" N1 o! I+ a: |2 u: R - (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" ""))
& u+ h6 X9 p- i& {# y8 Q - (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))( Y5 p7 D7 i8 \
- (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))
8 O5 f l! A6 {7 _# |9 D - (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))" ?% ^& f& E, m/ z i: J
- (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" "")): T |, b" E6 [6 W5 {% T) \
- (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))
6 S) X6 ?8 |# ^$ L. F7 Q - (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))
$ i3 W- O. X/ q/ Z - (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" ""))* J4 I+ z4 q) w4 T! _4 w
- (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" ""))
" a ?# y) h( h$ m1 w$ ?4 H - (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))
( k+ y/ w3 G7 R6 }9 \; J. C - (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))
! r6 K4 I: ^* O" x) y4 A( _ W
+ f0 u1 Z! Q9 {$ n- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
1 y2 ^8 ~! `( {4 i0 P0 F - 2 z# @) ~1 Q; y8 P
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============& L3 ^9 }+ M& m
. J' l! H/ k S; }/ j& b* {. W- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")
- U% W, t. n6 k- Q! ^# r7 k - (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH") S" M c, q: I4 g8 }; `
& v: E: j* z' ^4 K; T- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===) |- ]2 m- `# x1 |- e
. V! F1 \- w' i8 Q K2 Q; q- f9 `9 q- ;(DEFUN C:netxuatanh (); M4 ]( V% o" ]8 @
- (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""9 Y: N, Y1 y" ~' c
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""' X$ H' u* C7 H% V
- "M" "MANH" "C" "9" "" "Lw" "0.5" ""
- Z/ f' I/ a% r - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""9 Y9 G/ o4 G' ]' \, O1 z: R& t; F9 |
- "M" "DIM" "C" "1" "" "Lw" "0.6" "") H7 s9 v& y, G# v+ e
- "M" "THAY" "C" "7" "" "Lw" "0.7" ""# T# s7 v: H" q, x6 P" p0 l$ f
- "M" "NOITHAT" "C" "3" "" "Lw" "0.5" ""* J( e$ C: j9 q& ]
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
) G* z9 a! Q. W, l1 z( L - "M" "COT" "C" "2" "" "Lw" "2" ""# z. D5 E2 v5 _, k
- "M" "Defpoints" "C" "7" ""
% [5 u$ ^' ^6 \7 o - "M" "0" "C" "3" "" "Lw" "0.5" ""
4 R; S/ r& q$ H- W - ; "M" "1" "C" "1" "" "Lw" "0.5" ""
8 B+ ]6 H3 c+ o' t0 Y5 y - ; "M" "2" "C" "31" "" "Lw" "0.5" ""
8 e J$ |& S6 J6 S% e0 h/ g. ` - ; "M" "3" "C" "8" "" "Lw" "0.35" ""
* Z, y0 w0 p8 i0 ]( \ - ; "M" "4" "C" "4" "" "Lw" "0.8" ""
& e! @" `9 \+ S5 ^ - ; "M" "6" "C" "6" "" "Lw" "0.35" ""
! I! i1 c! S" _% ?% { - ; "M" "7" "C" "7" "" "Lw" "0.4" "", y2 B2 U9 J+ }, z/ e/ J
- ; "M" "8" "C" "8" "" "Lw" "0.35" ""
, i h7 N. q) Y+ n) j! ^: f( E* G3 V - "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" ""
! X- O- n: I( j6 X6 o7 @ - "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""
* x3 g/ C1 Q: D - "M" "KE" "C" "8" "" "Lw" "0.3" ""
. x7 Q% {% n9 W( h! t9 z( O - "M" "KT" "C" "9" "" "Lw" "0.35" ""
% v0 j- G z% N5 _8 _5 X; } - "M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""% C% e+ B2 P- r$ s9 A! Y3 C
- "M" "NETMANH" "C" "43" "" "Lw" "0.5" ""; u; ]3 ~% w6 R; z# ^, ^
- "M" "TBD" "C" "2" "" "Lw" "0.8" ""2 C% i6 w1 H0 l" _- M, U9 X
- "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" "", `3 o/ J% j' i6 n6 l0 R' \
- "M" "TEXTVN" "C" "132" "" "Lw" "0.4" "": f3 s$ V/ ?, |5 s3 o- G
- "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""1 M1 r" e+ r, ~) T' G2 c
- "M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""
' N! G/ {) a) X8 o' A/ K5 L - "M" "CUA" "C" "6" "" "Lw" "0.5" ""! t( o, I. E, h# O% v1 T
- "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""/ V% \) y; ] x( K* L8 ?
/ } [7 I' ?6 P: h4 [- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===0 B& h1 P7 x3 @! \% r& V
, Q+ h7 S! \3 B: q* q$ T S- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" "". b G5 e9 ^7 S8 A
- "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""* H$ Z) l5 f. E3 N6 f: P
- "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""
9 @1 ^; W# ?1 s5 Y/ ?. E: f! c - ; "M" "250" "C" "250" "" "Lw" "0.35" ""
$ }& z! U' u# C2 @# g3 h - "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""# V" n, d2 Z7 D! w+ r. Y
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" )- k# X' ^2 Q" ?8 A$ V! U
- + q' z) t1 \. b! \7 _: g: e5 y: p
- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======3 [- J9 D+ \# _( _& ^* b
- ;===================================30|04|2024==============================5 |# m3 h; {8 u8 H8 n; b
9 W8 N8 U9 m) ^+ D9 f: N- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )$ A6 W* o$ j9 o. P
- (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )% S: b! I0 Q3 X
- (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" ) K2 S" H7 L5 u" @
- (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" )* a$ h2 h: p3 x; P5 c
- (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" )
3 i! U) ]9 E0 Q, i, B - (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" ); U- o+ `% V% L
- (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" )
; n! E- r0 G& L1 N \ - (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" )8 |2 f+ j, Z+ R& q- O% G8 w0 q
- (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" )& M; {5 R4 x4 M- @
- (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ)
+ @8 v5 @/ V- X
: k8 i1 |6 E3 a$ ^7 Z2 P- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=$ s1 z4 e* _( f* p k1 N
- ;===================================17|10|2024===================================
1 F$ D4 \- d: p2 j
5 K$ S; b' w( @# x P- (Command "DIMTXSTY" "ROMANT-DIM" )
' S- J+ n- V: T/ l: J3 X1 d' L - (Command "DIMBLK" "" "Closed" )) ?- u& h# B+ l9 L5 T
- % n0 u0 T2 l6 `& Y1 n6 y7 B. I
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
4 f+ y/ ^& U1 h0 w+ e; p( K0 c& S7 D, m - ;===================================17|10|2024===================================' J' \, i3 w9 z: v/ K0 e
" V$ \/ `* R! N9 b- ;(Command "-units" "2" "8" "1" "8" "" "N")" _& \( w4 Z5 ~; q
- (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ): {8 B/ X/ Z( `* p9 U0 r
+ o. U0 t# G8 L) F2 C- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=" s2 Q! b& T$ { [
- ;===================================17|10|2024===================================) Y) C u& d! y
2 F j. ~* b) L! s5 q M- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====
|8 C2 Q6 A; w/ P9 c
6 d$ \" I+ y! c- ;======================== DAT NET IN & TI LE BAN VE =============================( g) }* ]! p& f3 ~' C+ _
- # u5 f! n8 P* \& Q* \
- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================8 v# Y7 u7 K' k6 |2 ~
- ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================
$ S; s" n! `$ u - ;=============================11|07|2025==============================
9 q. D* U3 X: F5 u# q - ;Ti Le Ban Ve - 1 : 100
: d/ f4 N N$ y - (Defun c:kta4 ()& N3 d2 f' ~0 S: d9 ?6 o! a
- (setq mv_sc 100);Ti le ban ve
1 o, [4 o g7 M" t! c; A8 t - (setq x4 297)
' N |: y7 S8 I - (setq y4 210)! S' Z: g/ n3 e8 \
- (setq x4 (* mv_sc x4) + S- V1 ~# Y) i) ^
- y4 (* mv_sc y4) )# r2 }1 |; @3 }3 D+ h3 I" M* y9 G
- (command 1 q! A+ u8 D% ~$ W) ]) Q: k% i
- "LIMITS" "0,0" (list x4 y4)! b7 i6 P& K8 l% _, N
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
' _2 X/ }$ r2 R& V- P - ;Khung CHU NHAT Chinh n: w# \3 K; L# t8 Y0 A8 c
- "RECTANG" "500,500" "@28700,20000"
! p& t: Y$ N( [; ?, ` - "RECTANG" "700,700" "@28300,19600"" m+ G# `3 R- ~5 v |9 I8 `
- ;Khung Ten Chung
0 L6 D6 J3 _8 F+ h# a - "RECTANG" "700,700" "@8000,1250"5 v- i& s# T8 W9 r+ I3 j
- "RECTANG" "700,700" "@17300,2500"
$ N( e" J2 w7 ~( Q2 k" } - ;Ten Ban Ve0 v0 y5 Q: G$ P% N% C
- "RECTANG" "18000,700" "@11000,1250"
: W6 X9 `" P1 X - "RECTANG" "18000,700" "@11000,2500"
/ r5 u: A* P6 O' S; F0 y - ;Khung Ti Le + Ngay Thang Nam- l" D F6 B, d; f
- "RECTANG" "22500,700" "@2000,2500"
9 r* x- {. I1 @, @ - ;Khung CHU TRI2 h/ r7 x; O4 s7 I5 w! l
- "RECTANG" "8700,700" "@3800,2500"
+ ]% A l! k% r# A7 v - "ZOOM" "_a" ))) _+ a2 u% y( Q; w) l: {+ X- m
- ;=====================================================================
6 G3 m( _7 T' p3 k - ;Ti Le Ban Ve - 1 : 100 K: f. N1 ~' x7 i5 `6 J# p- C. E
- (Defun c:kt4a ()
. g2 y& y4 A& ^1 y1 g& y1 A: J0 M9 T - (setq mv_sc 100);Ti le ban ve8 T9 {' N& ^8 F5 R/ [- n
- (setq x4 297)' G! Q0 d2 n& j& J; u6 M
- (setq y4 210)7 c5 S9 J1 W, J3 U9 K
- (setq x4 (* mv_sc x4) 0 W; ?9 F& g$ v$ l# E( N8 w7 f; Y
- y4 (* mv_sc y4) )
# t, k8 j& [" { [3 B - (command
& c0 R" O3 r0 k( q - "LIMITS" "0,0" (list x4 y4)/ L6 l8 g+ |4 H; Y) }
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"- |& K( t$ E) |
- ;Khung CHU NHAT Chinh
' g8 S: d d- o# z0 e1 I - "RECTANG" "2000,500" "@27200,20000"
+ f) B, z; o. O( s6 F! K, x - "RECTANG" "2200,700" "@26800,19600"/ {+ g, P7 _" x% S2 @
- ;Khung Ten Chung
7 A0 ?& X% U8 r; @; {7 [ - "RECTANG" "2200,700" "@6500,1250"5 S3 j( M* g" P, D% R
- "RECTANG" "2200,700" "@15800,2500"9 d$ ~ S$ p/ K
- ;Ten Ban Ve
* |5 d$ v- c+ @* \7 E) m4 o4 H - "RECTANG" "18000,700" "@11000,1250", s8 ^8 }7 J+ c4 R i1 e
- "RECTANG" "18000,700" "@11000,2500". r; R: e* T! Q" E3 w- V( Q
- ;Khung Ti Le + Ngay Thang Nam
1 j- H2 Q+ Z" H - "RECTANG" "22500,700" "@2000,2500"4 M' [8 K6 n2 y t& T0 x
- ;Khung CHU TRI
) o s* N D. v h) W3 j - "RECTANG" "8700,700" "@3800,2500"% ]$ i% y- R' ]! u8 {
- "ZOOM" "_a" ))) {% o6 x+ a! x$ c
- ( ?3 d$ m6 |# M. Q Z
- ;;; ============================GHI CHU Khung Ten========================# p. E8 w: Y1 c+ ^7 k
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========' J& A) _7 F, b' l
- ;;; =======================Thuong Dung Font Romant.vnh===================
# Y* C6 N( T" d& y) W2 Y; t
. S5 M& R! e' Q4 u, N, M- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
3 E9 u/ ^' b3 `; d6 w4 A4 F - (setq oer *error* *error* err2)
& {8 X3 u' @- d5 n: x - (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")1 Y" \0 ~( `% x8 ]5 w" `
- (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). "))
% h M3 ?, d$ i( h" j0 P+ N! L - (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))9 ~% W. [0 B! D6 |# b
- (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))" O7 _; ^# T6 d) Q8 o$ ]& U
- (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))7 C8 \2 r1 M) T" A. t
- (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))8 s. g" }5 X7 N& T# ~
- (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ")); ]& W* {5 o+ \# O2 n
- (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))* i# V8 l @5 ?9 e7 y
- (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :"))
" q5 |* K b+ o2 F+ r J( v8 ~ - (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :")) R: M1 P5 h3 N5 k- s
- (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :"))' Y+ T) t1 V v: G! E
- (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :"))8 I5 M! F( t1 P: N
- (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))
! k4 ` J% X* {% X) N" ]5 i - (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng")); x5 P/ {) }8 z7 M# J
- (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng")): H' s; {7 w7 J X" n
- (setq pta (getpoint
$ w3 d( \8 C5 P. u, x5 D; G- r - "\nPick first corner. : "))
3 p6 T! Q+ u5 G5 T/ J5 Y" A* ^ - (setq ptb (getcorner pta1 j( {1 z7 u2 P3 S% M
- "\nPick second corner. : "))( O& ]3 d8 P8 Y; m/ D1 o7 U
- (setq ptc (list (car ptb)(cadr pta)))' B/ ^; [8 R! ?: m# [$ k8 r& ~
- (setq ptd (list (car pta)(cadr ptb)))
! \; Y/ `" f5 I, N0 L5 ~+ ] - (setq ang (angle pta ptb))
" S5 x4 s- [0 Z) w& |' s5 @& n - (setq d1 (/(distance pta ptb) 2))* n. j5 X4 [) l6 M* n4 v
- (setq cp (polar pta (- ang (dtr 0)) d1))
l p$ S, L. ]' f& q1 w - (setq X (distance pta ptc))7 f' a: x' g; w6 x. W. N
- (setq Y (distance pta ptd))4 E( L) {& D: g! Q
- (setq X1 (rtos x 2 1)), P U+ e% e* L0 U5 d' I
- (setq Y1 (rtos y 2 1))
6 ^6 Q- r$ y! I* t% z$ s - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
9 a$ n- b4 P2 c$ [ - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
, A( }* j F/ J& g" h - (defun dtr (angg)
" z. w$ e2 n1 h; D% e2 l - (* pi (/ angg 180.0)))6 d& A$ I t f- i/ }; {% h" p2 f. D
4 D: @, z p; F; V9 l' V& ]- ;=====================================================================
2 x1 h9 j- J1 L4 I - ;==========================DAT KHO GIAY BAN VE - KIEU 1========================$ ~/ |6 f) B4 a' K3 V8 f& u
- ;=====================================================================
1 E8 U+ a! o _ {
% Z0 F4 _6 a' D7 e" h1 Q- (Defun c:a6 ()
) ]; g: L% {( J - (setq mv_sc 100);Ti le ban ve
1 h) d- `7 E1 I% \ - (setq x4 74.25)
, G! b V. D! e# S9 n% [9 B - (setq y4 52.5)8 T. ] |( F7 ~5 N# ?7 K; P2 I; W
- (setq x4 (* mv_sc x4) 1 r1 b3 s8 c8 P- [6 `' u3 W/ j4 C8 i
- y4 (* mv_sc y4) )0 w; O/ g8 {- _# d
- (command 0 ^ K6 Y, K2 r# |
- "LIMITS" "0,0" (list x4 y4)7 z7 @0 H A* _- o$ e1 |
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
5 _1 D4 h: ^+ z - "RECTANG" "125,125" "@7175,5000"
q' Z6 ~8 l; z0 k - "RECTANG" "175,175" "@7075,4900"( r5 k9 k$ y7 c3 K" U
- "ZOOM" "_a" ))
: j7 h7 [* Y ?$ h E - ;=====================================================================
, p3 K% j% H H r4 A' Z9 B - (Defun c:a5 ()7 a. O; J+ }* X
- (setq mv_sc 100);Ti le ban ve- j+ M8 i1 z+ w- j3 A. @
- (setq x4 147.5)& U/ b- d7 @3 c/ C4 L& E
- (setq y4 104)
8 Y* T5 k, y b6 d- s4 J - (setq x4 (* mv_sc x4)
- B: c* ], K; c2 l- q) R - y4 (* mv_sc y4) )
2 D: q T3 K2 D - (command $ A: C L8 ?5 o
- "LIMITS" "0,0" (list x4 y4)
1 |3 p1 G6 \+ a- T' D! E! y - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C": N5 a, E+ F. l5 D2 {3 u" ], a3 o
- "RECTANG" "250,250" "@14350,10000"# w$ l. f/ q/ C- H' U& e
- "RECTANG" "350,350" "@14150,9800"
4 m. q+ i) }, T8 _) ? - "ZOOM" "_a" ))# {1 \4 Z3 x8 y& e; W
- ;=====================================================================+ C7 x* |4 v, m, V# Z$ m/ @9 C
- (Defun c:a4 ()
; B' q9 |" u7 w% j/ p! g - (setq mv_sc 100);Ti le ban ve
1 C; I1 H: j9 L. v - (setq x4 297)! N8 C; g0 @2 h$ P0 o5 {" N; r
- (setq y4 210)2 F- A5 `3 h" `+ |: N% R' K
- (setq x4 (* mv_sc x4) " h" A3 j' p. l. g3 z2 b- w
- y4 (* mv_sc y4) ). J. |' G- p" H- X" |
- (command 2 {: z" s9 Y) L3 R$ P" C. [8 w% @! J
- "LIMITS" "0,0" (list x4 y4)
6 A! Y; y$ ?) F9 E r4 O - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"0 E) Y2 N1 s$ i, o# u1 A/ a
- "RECTANG" "500,500" "@28700,20000"
. s: L- B, h; y1 G+ o* \ - "RECTANG" "700,700" "@28300,19600"
: X6 P7 m/ [1 ] D - "ZOOM" "_a" ))
2 A. T1 H$ O8 x1 Q5 O - ;=====================================================================( _8 k5 o- k7 ?. `4 q
- (Defun c:a3 ()( T. V# ^, u* l2 l
- (setq mv_sc 100)
1 }# w) f J) A( i - (setq x3 420)2 J5 H. _% a. ~* U* L
- (setq y3 297)2 V/ p& B* b" W; M
- (setq x3 (* mv_sc x3) + b7 O/ q+ v4 ^% L8 r
- y3 (* mv_sc y3) )9 v+ I9 l! D. U2 ]
- (command & C w. n% P0 @9 ?0 z, H7 i
- "LIMITS" "0,0" (list x3 y3)" {; A- l8 O$ ?' I+ T; f% W
- "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
; e& A) R3 _3 O4 G/ D2 M - "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"
+ h. O0 |- t, X [1 E* m& @ - "RECTANG" "990,990" "@40024.28571429,27720"
7 z* F1 E7 ?9 o5 F* `; i - "ZOOM" "_a" ))& \ H" O# x2 P+ n( j
- ;=====================================================================
e- @2 j5 V, ~8 w8 I( W c - (Defun c:a2 ()$ y& H. n; }; a+ T3 n
- (setq mv_sc 100)5 i; g d# C1 N' V
- (setq x2 594)
5 R/ A- K# Y( d - (setq y2 420)5 w& I" _5 a- V' a
- (setq x2 (* mv_sc x2)
9 D' U8 R0 \" i* |3 H+ m - y2 (* mv_sc y2) )
3 i/ E8 `$ W, Y# A# z: j - (command
/ L+ I7 v+ I }: G0 x- B - "LIMITS" "0,0" (list x2 y2)
# x4 y1 X9 u1 a8 n% G {# r/ B - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"9 A$ z7 O! I; b6 ~' z/ Q
- "RECTANG" "1000,1000" "@57400,40000"
. L3 G6 _- j3 Q* _& k4 A - "RECTANG" "1400,1400" "@56600,39200"
8 f9 o6 S) I0 H' @+ r1 I - "ZOOM" "_a" ))8 c/ v. |. h) v- {' t4 e' p7 ^
- ;=====================================================================
8 f" K- V2 y( @. [( i- e1 ^ - (Defun c:a1 ()5 b3 ?: a( P; o' |. K
- (setq mv_sc 100)5 s9 v/ M! ~ D# R" L3 V
- (setq x1 840)) I8 d) z4 E8 p: f# Y+ b
- (setq y1 594)
& e1 J9 F7 Y# a0 _" ?& m& Y - (setq x1 (* mv_sc x1) 3 n& }5 w# ?9 m2 C- m
- y1 (* mv_sc y1) )
* e: N: ]" _$ f3 \7 A - (command
2 N* @* A) N! y3 j3 [ - "LIMITS" "0,0" (list x1 y1)
3 k4 d0 m Q6 a; {0 z - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
0 l9 i) ~' w* a) Z3 U+ }- W - "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"
% p5 X8 |0 V. L3 C4 j( P* V; o - "RECTANG" "1980,1980" "@80048.57142857,55440"
, R7 k# x& S! U4 F8 M$ h" b5 K - "ZOOM" "_a" ))
: t- h! t8 T* T! E% ?1 ]8 o - ;=====================================================================6 P4 P9 V1 N2 d
- (Defun c:a0 () h$ ^1 `" s3 E( C# ^: V( {( R# K4 ]
- (setq mv_sc 100)' c3 r' o/ V6 z7 A4 Q
- (setq x0 1188)" N, M1 _/ F) U- b. c" N4 I
- (setq y0 840)
0 A% U. n. W8 w v0 j3 [ - (setq x0 (* mv_sc x0)
5 r3 f% o9 ?) g% s0 B. y - y0 (* mv_sc y0) )6 f7 p5 v4 Y; S0 a6 N6 d9 O
- (command
) W1 P4 m- X2 D# D: x5 h5 ? U, @ - "LIMITS" "0,0" (list x0 y0)
3 ^- l! \. f3 r1 p+ o& z% n - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
$ {4 a! c7 j' h, N - "RECTANG" "2000,2000" "@114800,80000"
8 x K& _. W8 z1 |! j# e - "RECTANG" "2800,2800" "@113200,78400"
8 p7 H% ~" R' `, F/ h8 O) Q% b - "ZOOM" "_a" ))" {. n0 w( q, R3 t/ w
, X% q7 _5 m/ s6 w0 Y- ;===================================================================== h# D7 P# @ K/ P+ G, y5 f7 p
- ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================# l. {* @& p+ x
- ;=====================================================================
S/ }$ Y; }# F. `4 d: w2 B& w, v
1 Q. N2 f# f! U. p8 x- (Defun c:6a ()
! k7 f5 V1 W) R! k* H9 y - (setq mv_sc 100);Ti le ban ve
8 L" T4 g* ?. ?' S+ i5 {/ i( A - (setq x4 74.25)" `3 M! O5 x N
- (setq y4 52.5)
/ \6 P/ w" C; J/ j7 u+ R/ r. y) w - (setq x4 (* mv_sc x4)
9 P- D1 T4 s; }4 D, q+ [ - y4 (* mv_sc y4) )1 q5 K* k7 e: k/ _. U
- (command
! P( B# q& j% ]/ L - "LIMITS" "0,0" (list x4 y4)
f0 d! h- j# c5 F' o" E$ `4 S' O - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"6 R; N! ~. H& Z5 c
- "RECTANG" "505,125" "@6800,5000"
; Z& t; A* J7 o6 [# d9 K) c4 ~. t - "RECTANG" "555,175" "@6700,4900"
# Y9 w W5 v% P2 }# E4 H - "ZOOM" "_a" ))
% d% C# V4 U5 M( a; y* u - ;=====================================================================
3 L3 _3 b/ o8 m - (Defun c:5a (); t \8 j# R" X9 k- u' [ R) q
- (setq mv_sc 100);Ti le ban ve7 e6 U" e4 T0 n5 ^
- (setq x4 148.5)
6 v) `/ d& W7 s - (setq y4 105)
! [7 x( D5 u' @7 q - (setq x4 (* mv_sc x4)
) l- ]" w0 F. @1 I# \" P8 \ - y4 (* mv_sc y4) )
5 R" f9 z* c4 @9 o7 a/ b3 P" o$ t - (command
4 H, w; r+ D& i3 c - "LIMITS" "0,0" (list x4 y4)
+ C9 U0 X/ ^: g - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"! Z6 _$ O8 ?3 r* _1 i: ^
- "RECTANG" "1000,250" "@13600,10000"0 Z. I7 |3 F( K/ h" w ~
- "RECTANG" "1100,350" "@13400,9800"
6 u# D- C1 @* }9 ~% J- H1 n - "ZOOM" "_a" )). Q# h5 g: K, B
- ;=====================================================================
2 o& U! a, J# U - (Defun c:4a ()
& r. S0 ]/ E2 b+ {+ s- ~% h - (setq mv_sc 100);Ti le ban ve
! j- ~- Q7 q. e# x4 Y M4 W - (setq x4 297)1 e: N" S% F' T' e8 `( k
- (setq y4 210)8 I3 g/ b" @8 l- i# H
- (setq x4 (* mv_sc x4) % m/ s3 X; j$ P' {. ]. g
- y4 (* mv_sc y4) )
9 u% a: N6 r- f - (command 4 r( h: d2 `0 f K% k
- "LIMITS" "0,0" (list x4 y4): O& b: j) ^5 m6 Q9 K5 T
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"( F' k8 ?- U/ }# I) h
- "RECTANG" "2000,500" "@27200,20000"
- G# c4 u: {5 b/ W8 j( x7 y9 E* e' U) k - "RECTANG" "2200,700" "@26800,19600"
) W' j8 k! y/ u& B2 f w/ p - "ZOOM" "_a" ))4 o4 j5 |3 s- u, f
- ;=====================================================================
4 z2 F% J; v& d8 @% q8 ^ - (Defun c:3a ()( o) U3 U6 Z- t2 y
- (setq mv_sc 100)
+ |# }: u9 i$ t' Z4 Y% T - (setq x3 420.0428571429); \2 u3 j4 F; ~ h6 F7 o$ F
- (setq y3 297): a7 u w& K) {
- (setq x3 (* mv_sc x3)
$ Z$ n m8 e7 M* ]' D - y3 (* mv_sc y3) )
( X- d: x" x' ]# `. r - (command + J. t4 w+ ^1 c. W# s
- "LIMITS" "0,0" (list x3 y3)
5 y$ p( f! ~1 _& j K - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"6 u7 D& v% L! T. X [* o
- "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"
) @- Y1 G S. [: Z - "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001": L/ `/ C1 p x6 A+ |
- "ZOOM" "_a" ))
4 p! ~& b" e9 R, T - ;=====================================================================# e9 A- ]2 D; R+ m$ ~
- (Defun c:2a ()
$ l; m, d- v8 @( I, Q% G3 r - (setq mv_sc 100)6 s, s! j; @6 Y, t2 @5 B
- (setq x2 594)
5 `+ J6 [; J- K5 v! b' Z& K5 g) ] - (setq y2 420)6 {$ b; G& {% v2 z
- (setq x2 (* mv_sc x2)
0 b) z, u6 @7 D - y2 (* mv_sc y2) )
$ q% v( N$ O1 E' t9 A% ]% o - (command 7 {/ ]! D+ V w. l4 n, B
- "LIMITS" "0,0" (list x2 y2)
4 D, ?7 ^+ r0 B9 @$ a g - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C". ~2 @# J! k% E8 C1 R0 g. b+ T
- "RECTANG" "4000,1000" "@54400,40000"
: ]* D4 X* |% d - "RECTANG" "4400,1400" "@53600,39200"
8 \( S$ k- n* M( `, X - "ZOOM" "_a" ))& C- S! q% J8 e/ H
- ;=====================================================================' |/ i" \7 V+ r+ W
- (Defun c:1a ()
6 g- N- d. l: M: x; h2 H - (setq mv_sc 100)' J1 X' r* {1 n( k+ o. `4 I
- (setq x1 840.0857142857)' D8 {# \/ U1 p0 a* m8 v' ]
- (setq y1 594)
: y8 }0 r/ a9 x x* Z3 _ - (setq x1 (* mv_sc x1) * s1 p& a% I( B) s: ~
- y1 (* mv_sc y1) )
( P5 \. x ~0 ] - (command
* B1 H- o) l! E6 r+ S: S- z& d - "LIMITS" "0,0" (list x1 y1)
1 b$ T2 U! r: d7 N& `. Q& c, C: D - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"2 ^! u" _+ ?; V+ n
- "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"
- M9 ~% H+ R% f6 j; ] - "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440": B5 y# Y } R( U
- "ZOOM" "_a" )) x1 }5 X/ \+ m+ I; t! V9 T9 g
- ;=====================================================================2 i0 q# _" \1 }0 h& ^' x, R- U& Y) f
- (Defun c:0a ()
7 h4 R$ M+ B) r l a - (setq mv_sc 100)4 {8 h, [" r+ H
- (setq x0 1188)3 z' ~6 B8 u% Q
- (setq y0 840)
) D3 Z4 f! t' N - (setq x0 (* mv_sc x0) ; C5 g, X8 N% T2 K+ e
- y0 (* mv_sc y0) )
9 X- G* M9 d7 v4 x: x+ X - (command % A {4 e9 @" S8 W2 r$ P0 v* w" F, c3 A
- "LIMITS" "0,0" (list x0 y0)
; N- v+ E* k8 h2 f - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C" c4 D' Y. j$ ]; G, R
- "RECTANG" "8000,2000" "@108800,80000"8 l1 }8 H ?( ~- l
- "RECTANG" "8800,2800" "@107200,78400"" J) t' H( P' t2 F0 u5 L; A
- "ZOOM" "_a" ))1 u/ n' y) \+ \6 G
- $ x' ]0 h; x1 I- F. |. ~+ X
- ;=====================================================================
: ]+ t3 c' [' l; O/ Y$ v9 }) ~/ |% t - ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================, ]* G q/ a# r' m1 u% g
- ;=====================================================================
* r7 a3 X4 a+ i6 T6 F9 l/ F - (defun c:khogiay (/ oldlst a b c d e f g h kho TL)' V6 S1 S1 `$ j/ @+ \0 w9 f
- (command "undo" "be")
3 u6 I0 A. r3 L4 a# l( ] - (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))
0 y' R k- {" z ?" T9 b2 O - (setvar "CMDECHO" 0) |3 @# `: @ N; { |* }
- (setq a (getpoint "\n chon diem chen :"))+ x. b5 d V/ J7 D/ B9 O4 F4 W) _. t
- (if (not TL) (setq TL 1.00))
0 w7 T9 [1 _; C' P: S% E+ W1 U - (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))" W3 p$ q( W( k+ ]4 P
- (if TL1 (setq TL TL1))
+ E- W- B7 X# B - (setvar "osmode" 0)
# @0 m/ T/ t, \3 D - (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" ""))
9 x* B4 ?( p7 d: l; n+ p' D+ P - (initget "0 1 2 3 4"). O0 a/ I2 S4 W# Y8 v) |( C
- (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))! D8 P7 f4 P( S/ A. X
- (if (= kho "0") B0 ], C3 a: F4 @ T3 T2 G
- (progn
( t$ s$ Z* f+ J3 f" E5 i! a7 W) t - (setq b (polar a 0 (* TL 1189)))* K, ]- l" S% O% R
- (setq c (polar b (/ pi 2) (* TL 841)))2 ~4 g% G a E+ D2 v# Q) O' I
- (setq d (polar a (/ pi 2) (* TL 841)))& P1 V# l" y: R4 {% I
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))( n4 M9 d' J! b
- (setq f (polar e 0 (- (* TL 1189) (* TL 24))))3 ~. B& i6 ~% x
- (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))
% C D/ y! E- b: D - (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24))))
+ k r- V, o t6 A1 Y+ V* A2 f/ f) i - (command "Pline" e f g h "c") 3 H3 i7 y2 `% b2 @& y
- (command "change" "last" "" "properties" "layer" "0" "")5 T1 E% [* \ w2 p
- (setvar "cecolor" "4"); F8 a, G2 m& O5 S. w5 k: N
- (command "Pline" a b c d "c")
9 L6 j& d+ `% k, C+ t ~2 e" g: r O - (command "change" "last" "" "properties" "layer" "defpoints" "")))
2 q1 T6 F) e! b - (if (= kho "1"), b# j7 y/ G/ T' z# u
- (progn# J0 W) E( i9 T" Y
- (setq b (polar a 0 (* TL 841)))' p8 v0 b7 \/ X- g8 l: G5 Z
- (setq c (polar b (/ pi 2) (* TL 594)))) A7 Y9 a- D! n' \
- (setq d (polar a (/ pi 2) (* TL 594)))
1 k) @# n5 F; J) z9 b, i - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12))))). W8 |/ G: \; h! P: @- T
- (setq f (polar e 0 (- (* TL 841) (* TL 24))))
/ q: ]! _: s( R" m, t5 J - (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))5 ^$ U+ z) O# R+ Z5 J
- (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))
q/ W+ K% Q9 ~. G3 P# F. q - (command "Pline" e f g h "c") & F1 q9 g4 z6 C" \& q. g) [
- (command "change" "last" "" "properties" "layer" "0" "")
. \& R' A$ r, K - (setvar "cecolor" "4") v% n4 d" m/ T5 q3 ]
- (command "Pline" a b c d "c")
7 U: k6 R, S* U; h- N n - (command "change" "last" "" "properties" "layer" "defpoints" "")))2 Z5 q& b7 `8 |* u6 w! G0 d' q# y: ]2 h/ s
- (if (= kho "2")" b0 }( S1 X3 N. `
- (progn: B, o \- Q* F& W
- (setq b (polar a 0 (* TL 594)))5 e7 o5 r% x- x" y/ y, x
- (setq c (polar b (/ pi 2) (* TL 420)))
+ z4 Q" h: ~8 s8 J - (setq d (polar a (/ pi 2) (* TL 420)))! m7 |/ R m8 L$ p/ m- a
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))8 s( q0 \5 N0 P% _ I
- (setq f (polar e 0 (- (* TL 594) (* TL 20))))1 P. S( Y$ E6 i y6 K2 c
- (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))
" d- R' n# J: a, o3 z9 n& i; K* H - (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20)))): J) u& B, i' L" a$ |! D
- (command "Pline" e f g h "c") + a: T6 ?. C0 j: B+ b9 u5 o5 ^6 R
- (command "change" "last" "" "properties" "layer" "0" "")
0 U( c' s) t0 f& [. R, g& Q& p - (setvar "cecolor" "4")
4 R. I- i) W: u1 T. ? - (command "Pline" a b c d "c")
; g8 w. |& L! ?1 b# m - (command "change" "last" "" "properties" "layer" "defpoints" "")))
' G( {* {9 O* [0 y: ?! s: _ - (if (= kho "3")$ P! a: B5 w' }$ ~# p
- (progn
, b, a6 M: E2 g2 | - (setq b (polar a 0 (* tl 420)))
5 o( {/ P# o. i S - (setq c (polar b (/ pi 2) (* TL 297)))( t$ s2 V3 ~0 o; ?
- (setq d (polar a (/ pi 2) (* TL 297)))
1 ^8 L. s2 q2 I4 H% m - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))
/ d X- N+ V3 r6 S) i' X - (setq f (polar e 0 (- (* TL 420) (* TL 20))))
5 d& L% t) r) W& I* [$ l' Y3 A - (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))
$ j& o+ c% s0 G3 }- r - (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))( ~( t! e& j$ j* B+ s8 Y! X& c! ^
- (command "Pline" e f g h "c")! k2 M+ H' t; a+ f: T8 a9 R/ I
- (command "change" "last" "" "properties" "layer" "0" "")
3 ]2 f9 c$ `; Z2 ^7 W3 H - (setvar "cecolor" "4")# C: J2 v0 i# N5 K& r) z w9 t
- (command "Pline" a b c d "c")2 C, Q. ^# n1 l7 ]5 e9 |3 Q, U
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
# p4 N9 i3 [, E5 B - (if (= kho "4")
: v6 K& t, D" `' O9 G. i - (progn
2 l& X; { v% v+ o - (setq b (polar a 0 (* TL 297)))- S3 f, r% A h/ `% e5 ^: W
- (setq c (polar b (/ pi 2) (* TL 210)))
8 ?3 c0 A" I0 ] - (setq d (polar a (/ pi 2) (* TL 210)))
* G6 }# X7 ^( | - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))4 w$ d) h# W/ X" ~
- (setq f (polar e 0 (- (* TL 297) (* TL 18)))) g$ Q4 I& B) B* g) n! L5 m
- (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18))))
' i' ]$ q+ m" z% @" u! ` - (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))9 N3 v3 Q1 p9 N' v) A
- (command "Pline" e f g h "c") & ]. I' }* I5 p
- (command "change" "last" "" "properties" "layer" "0" "")
! V$ d; v1 ~5 h: r. W R - (setvar "cecolor" "4")
Z% U/ ?2 S F" K! r) H2 h0 X - (command "Pline" a b c d "c")6 b# l, f$ `( M
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
. D) p9 k$ K5 K, }; ^ - (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)
& x, T5 p8 X, z' w - (command "undo" "e")
- D8 G7 N5 D$ B) s2 k9 n5 V - (princ)). l9 L+ k ]: R7 a
- ;=====================================================================
8 p& x5 Y/ e1 e& p. J6 ], a( a5 t - ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================) e# `& e9 O. D5 R! ^6 w
- ;=====================================================================, S N- v; P5 |( u2 ], j
- 2 {$ ~2 @* {+ S5 B- b) t0 T$ O: c
- ;=====================================================================
, R* L. r+ ~: K3 D - ;===================DAT Ti Le Theo KHO GIAY BAN VE====================- E% W5 Q" |5 X) x$ d
- ;=====================================================================2 l' l! }+ j8 v4 \" z
7 E* {2 M. x$ N0 c J8 C' D) ?- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" "": g2 j$ u9 e7 } V+ L
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""
3 V1 i: n, S1 f2 |. f - "M" "MANH" "C" "9" "" "Lw" "0.1" ""9 i+ H: F: f1 S0 ]( f& c6 [7 f j
- "M" "TEXT" "C" "7" "" "Lw" "0.12" ""1 |. s% h+ I* U6 ]
- "M" "DIM" "C" "1" "" "Lw" "0.12" ""
' Y u1 `8 c* `2 _: y - "M" "THAY" "C" "7" "" "Lw" "0.2" ""7 Q1 X: a: Q, [
- "M" "NOITHAT" "C" "3" "" "Lw" "0.12" ""
3 T) M8 z% M# v! O( c" V( Z - "M" "HATCH" "C" "5" "" "Lw" "0.1" "": G+ J" q& `3 k; c
- "M" "COT" "C" "1" "" "Lw" "0.3" ""
7 k" b. _, p1 ?- v# v6 M - "M" "Defpoints" "C" "7" ""
/ M1 U$ Z: [/ E4 ?) K - "M" "0" "C" "3" "" "Lw" "0.12" ""
6 }& O5 y- _: g3 `. |- Y. ?- s - "M" "CUA" "C" "6" "" "Lw" "0.12" ""
- Q* ?# F; D3 U) }5 L - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""/ |- C G6 a2 P
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))2 k% V* O: t; Z" u% H& ~, a- ]
- (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" ""2 p% d |9 I- k7 k1 c& t$ ^
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""
" u$ s) g8 G% h( D; ] - "M" "MANH" "C" "9" "" "Lw" "0.12" ""/ |% I* z" }! v g
- "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
/ Q) F, j' m( Q+ b# Y/ N+ t% T - "M" "DIM" "C" "1" "" "Lw" "0.2" ""
% A7 H# U1 Z9 H: u - "M" "THAY" "C" "7" "" "Lw" "0.2" ""3 q2 ?" }7 W5 `5 V3 \0 g N
- "M" "NOITHAT" "C" "3" "" "Lw" "0.2" "": f5 |9 d8 s! M% A+ g% e, g3 M) u. I7 D
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""5 H# f/ O1 @, k6 g9 a" P: x0 ]
- "M" "COT" "C" "1" "" "Lw" "0.4" ""
0 X- l8 p8 r5 E6 y* Y2 Q - "M" "Defpoints" "C" "7" ""
% \5 P6 b' f3 q7 N ? - "M" "0" "C" "3" "" "Lw" "0.2" ""8 y: b( Q; b' W" p
- "M" "CUA" "C" "6" "" "Lw" "0.12" ""
7 o% q6 K4 M/ q - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""9 F p9 U0 k0 l/ g
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))
4 d! m( h3 g/ L. C1 U) C - (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" ""
6 a( g; @- d! i9 N* o" H - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""5 ^7 u. s @ a0 u* o! t5 r z
- "M" "MANH" "C" "9" "" "Lw" "0.2" ""
2 Y* C! \( A' _ m$ p9 O - "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
4 B8 N# w2 C& F - "M" "DIM" "C" "1" "" "Lw" "0.25" ""6 [4 U. f( k. D5 s; N/ |
- "M" "THAY" "C" "7" "" "Lw" "0.35" ""
4 @$ w4 ?( [$ \* \ X& s - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""
& ^" e" f$ t. Q& W1 J - "M" "HATCH" "C" "5" "" "Lw" "0.15" ""- k& s$ L6 U+ R& K9 _. X4 T: f" |
- "M" "COT" "C" "1" "" "Lw" "0.6" ""% g, J3 p& }7 k, [& i
- "M" "Defpoints" "C" "7" ""6 F8 p- j7 p" J8 e
- "M" "0" "C" "3" "" "Lw" "0.25" ""
) {6 n9 `( I6 F: b6 K - "M" "CUA" "C" "6" "" "Lw" "0.25" ""; P c% j( @/ {) R! o
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" "") ^* ?+ J& Y1 O( A
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))
8 Y$ B1 h& Z1 F/ j. Y -
$ m4 ]! o: I5 D) s - (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""7 j. V( P( m7 D
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""8 i; ^5 I8 s3 V6 D0 V% s7 D) g
- "M" "MANH" "C" "9" "" "Lw" "0.25" ""
7 U L3 T+ }) U# U7 I$ d+ s- | - "M" "TEXT" "C" "7" "" "Lw" "0.2" ""3 T6 Q. O, w: ^4 W& ?
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""
0 k% Y) V: v+ f; P/ l1 L - "M" "THAY" "C" "7" "" "Lw" "0.4" ""+ G. Z6 F Q6 X
- "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""6 p6 L0 e/ \9 Z8 G6 Y2 Q
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""7 r2 d4 g4 n8 P- d( u9 N! f7 D- c4 q6 M
- "M" "COT" "C" "1" "" "Lw" "0.7" ""
) G% x7 }! @ P* h1 P. j6 b0 I) ^ - "M" "Defpoints" "C" "7" """ E' C) q, P0 W) P; ~9 x) J
- "M" "0" "C" "3" "" "Lw" "0.25" ""
6 T R G- U4 t; I. T - "M" "CUA" "C" "6" "" "Lw" "0.35" ""* G/ y8 j" N1 l
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""5 i. ]0 K' ]: x! q3 b1 Y2 P
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC)
6 _+ x1 p9 v- U2 {, s
' u5 ~9 s% i- o- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" ""5 t4 \3 j6 \" R5 g
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
- J" \7 f5 D2 }" W& [9 s - "M" "MANH" "C" "9" "" "Lw" "0.25" ""
3 U& `$ V/ C! ]3 K! i - "M" "TEXT" "C" "7" "" "Lw" "0.25" ""+ W8 G& A3 ?' C% |
- "M" "DIM" "C" "1" "" "Lw" "0.3" ""
7 O* y$ \7 ^& Q" k - "M" "THAY" "C" "7" "" "Lw" "0.4" ""1 }- {$ N8 ?+ T6 m7 R
- "M" "NOITHAT" "C" "3" "" "Lw" "0.3" "": X; Q: ?+ T2 s6 U4 X! E9 i2 t. N
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
. v8 g7 L4 E$ e m - "M" "COT" "C" "1" "" "Lw" "0.7" ""
' Z/ d5 i) K: o1 z5 @6 M) D# l" A - "M" "Defpoints" "C" "7" "": l/ B/ I$ ~+ {/ n4 G v
- "M" "0" "C" "3" "" "Lw" "0.35" ""- m9 L2 h/ u' ]. ?% v* W R+ ]9 J
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""
$ q. F# j+ h: c, Q$ ^ - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
+ Z8 Z+ i0 O( c, M; x; e% D - "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))
/ W3 E( b1 n1 Y. Y* @2 G
0 E1 _3 t: F# p- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" ""0 |8 N" D3 M7 H+ Y# n) ` G
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""
+ c+ L- D) n9 `9 u( U - "M" "MANH" "C" "9" "" "Lw" "0.35" ""% a' z0 V: l" g6 L2 [6 h
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""- W* `4 I1 H3 k
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""0 i+ t3 f- l' e1 C! a: O2 d
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""
$ [ j7 h0 p- O; H$ ]# s! B& o1 V' R - "M" "NOITHAT" "C" "3" "" "Lw" "0.35" ""1 `/ ^3 W( b1 v2 l0 L: G/ ]/ b
- "M" "HATCH" "C" "5" "" "Lw" "0.25" ""
' u# [3 U& v5 D, n - "M" "COT" "C" "1" "" "Lw" "0.85" ""6 B: p. B) k" J7 G
- "M" "Defpoints" "C" "7" ""
4 R4 e. q* W n1 l2 r4 D: K& h - "M" "0" "C" "3" "" "Lw" "0.35" ""8 s2 }8 e3 ]$ F1 t0 [0 v
- "M" "CUA" "C" "6" "" "Lw" "0.4" ""6 g) i. {' v! `9 g: y0 k, g5 N
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" ""
+ q4 R9 ^9 m/ j0 v - "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))
+ C$ r* N- W1 q3 w - . i* P6 }( X: r4 l$ w8 R
- (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""
4 V" D+ E% _5 M - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" ""
( y3 @3 R6 {1 L1 n - "M" "MANH" "C" "9" "" "Lw" "0.35" ""
6 o, J0 c, m, x C2 _8 i. O5 n& V2 u - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
5 @ Z% C6 \; {2 U - "M" "DIM" "C" "1" "" "Lw" "0.35" ""7 p5 d& r5 k3 u( n
- "M" "THAY" "C" "7" "" "Lw" "0.5" ""+ R9 f& R, }8 u3 W% ]
- "M" "NOITHAT" "C" "3" "" "Lw" "0.4" ""
0 f( z' D* P! _ - "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
, w) H; q$ J( Z- ]$ E* B5 y - "M" "COT" "C" "1" "" "Lw" "0.1" "" v/ X/ v/ r9 s0 @$ {2 e6 _
- "M" "Defpoints" "C" "7" ""6 @. E4 d; D* E8 \: g
- "M" "0" "C" "3" "" "Lw" "0.5" ""
9 v3 u; \1 x+ d# f; T - "M" "CUA" "C" "6" "" "Lw" "0.5" "". Q V9 U" d! i0 H |$ ~
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""
9 ?" ^6 O) |" z8 E& b7 ] - "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))4 u7 M' h, t8 L
- (DEFUN C:O () (COMMAND "OFFSET"))4 Y/ t8 @- b+ L9 f$ e& S3 }
- (defun c:s1 () (command "surftab1"))7 C/ U# M( t% X) i6 q
- (defun c:s2 () (command "surftab2"))
+ R2 q( B# a7 Q, |- p! q7 u - (defun c:ep () (command "explode"))
' S. |2 M- @( s1 U - (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))
, W* O5 s1 q3 M, K# K - (DEFUN C:QV () (COMMAND "QSAVE"))
* Y5 J( u& d3 G/ N1 O2 X - (DEFUN C:S () (COMMAND "STRETCH" "C"))
" ?8 V3 m- t7 W4 K0 Z - $ K) C; i% y- Z# O
- ;************************** CAT DIM **************************
5 B/ i6 f9 ^4 W - 9 G4 L) j6 v5 w
- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I, `3 p" h$ n+ L5 {
- PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)* _7 g5 I" `/ d. H
- (SETQ CMD (GETVAR "CMDECHO"))* ?4 D4 O1 F2 N0 M6 C. s
- (SETQ OSM (GETVAR "OSMODE"))
6 R1 m: N4 c. U" l - (SETQ OLDERR *error*
+ ~+ S) ^ K5 M0 w6 g5 w - *error* myerror)
1 G% g+ R9 d7 y& c - (PRINC "Please select dimension object!")
% [+ u; {5 V, X& }) {$ s3 W - (SETQ SS (SSGET))
, f5 I) q: k& w0 B' M2 l3 I" o - (SETVAR "CMDECHO" 0)
8 f* g: a" {6 \9 z+ N8 z - (SETQ PT (GETPOINT "Point to trim or extend:")) W2 Q9 }2 I, K/ B
- (SETQ PT (TRANS PT 1 0)); j; B/ }! X% w, `1 h+ C
- (COMMAND "UCS" "W")
- A b9 s) A% I+ J, a( B- h - (SETQ LTH (SSLENGTH SS))
8 Q" T. ^3 b7 n% P% S9 ^. ] - (SETQ DEM 0)! X8 W. g" o v
- (WHILE (< DEM LTH); k9 q5 K; x7 Q+ r* v' X
- (PROGN4 @$ M2 r3 \. a8 {
- (SETQ DS (ENTGET (SSNAME SS DEM)))
( Y# N$ Z- T9 b" Z7 m2 W+ y. u - (SETQ KDL (CDR (ASSOC 0 DS)))2 v: n7 Q( H+ ^2 L* Y
- (IF (= "DIMENSION" KDL)
8 R( [) `! W" a7 T x - (PROGN
! s3 j2 c$ K$ |/ N" a8 l0 l! E* l% x3 P - (SETQ PT10 (CDR (ASSOC 10 DS)))2 G3 C5 M) V" M4 j( F
- (SETQ PT11 (CDR (ASSOC 11 DS)))
( W1 r# Z) J5 T - (SETQ PT13 (CDR (ASSOC 13 DS)))
1 ]& x- ~6 K; o - (SETQ PT14 (CDR (ASSOC 14 DS)))
; l3 A! w: k5 |/ ^$ Y: W. n. k - (SETQ N70 (CDR (ASSOC 70 DS)))6 Q* n2 J' h" K0 l4 e8 h( O. Q
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
Y- z: i! E, Z - (PROGN
2 c' C* K; F' r; _ - (SETQ GOCY (ANGLE PT10 PT14))
% w/ u% N0 A8 ] - (SETQ GOCX (+ GOCY (/ PI 2)))
: P: g% o* P! F6 o/ K+ x0 ` - )
0 y+ k! S& H% ~* M - )
" w& K2 D4 C7 z7 M: ]& S, N - (SETVAR "OSMODE" 0)" J% K$ J. X% Z2 \( x
- (SETQ PTI (POLAR PT GOCX 2))1 k4 c, w, f8 [+ I" X8 E4 q6 {
- (SETQ PT13I (POLAR PT13 GOCY 2))4 m( T( c& F, m/ J6 e
- (SETQ PT14I (POLAR PT14 GOCY 2))
& Y, T- Z4 _7 U% x - (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))
2 e$ ^( E+ z7 [7 N - (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))
; h) m: ^9 `; f - (SETQ O13 (ASSOC 13 DS))( O, T2 ]+ }' R/ u3 S+ f4 Z4 l
- (SETQ O14 (ASSOC 14 DS))
! H* ~! T8 u9 ?- V - (SETQ N13 (CONS 13 PT13N))
. ^1 e( C% i" h6 O+ ]. p: ? - (SETQ N14 (CONS 14 PT14N))# D% }1 F K* r; ]5 R% T- t
- (SETQ DS (SUBST N13 O13 DS))$ w6 H: z1 _. U% z$ U% k
- (SETQ DS (SUBST N14 O14 DS))5 s2 I& ~4 I/ d) V D
- (ENTMOD DS)
+ n# I& L( L# A* q. g2 P5 N U - )
- c9 ?8 B }$ x" A( W/ j - )
) ~( I' K8 ?+ j0 O7 g P - (SETQ DEM (+ DEM 1))
8 r6 }& H+ g6 C9 I( a* i - )
* S8 t" e6 n2 j - )' V( Q9 Q5 [2 z4 N; L2 p5 N
- (COMMAND "UCS" "P")9 K; h: J# d- I
- (SETVAR "CMDECHO" CMD)
# w5 Q& Q& Y9 }0 k: B - (SETVAR "OSMODE" OSM)- B Y- B( j1 ^# S0 a
- (setq *error* OLDERR) ; Restore old *error* handler
, w E- z, ?2 C2 f G3 E- @ - (PRINC)4 E) y$ Q- q! u3 V& q% ^- k1 ?
- ); |- I: X* a ^ l+ d4 C$ w5 S+ M9 G
4 ^: R5 E# \9 Z4 [. h7 N% t- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI% _, L* z, h/ ?: V+ z- f# S$ S
- PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)* f/ X" r! l: L0 H; h% v* y. \
- (SETQ CMD (GETVAR "CMDECHO"))
4 {# Y1 X& a3 U# X% [ - (SETQ OSM (GETVAR "OSMODE"))
: {/ u7 b* P/ P8 [* } - (SETQ OLDERR *error*5 u2 \' j* m% n" {5 m9 K8 k h
- *error* myerror)
& Q' x3 u* Z6 b - (PRINC "Please select dimension object!")
3 S, J) B9 a$ H, s$ R9 ~3 [% b - (SETQ SS (SSGET))* o" F" i9 L" _1 u9 C2 }
- (SETVAR "CMDECHO" 0)
; o/ U5 d/ j5 S0 a( J0 \; U - (SETQ PT (GETPOINT "Point to trim or extend:"))5 D* T: I6 H" a: ?# ]1 B
- (SETQ PT (TRANS PT 1 0))6 i+ o6 S! R6 a, Z6 Y+ M
- (COMMAND "UCS" "W")& p$ ]( z; e: S8 R2 N1 ^4 h) {
- (SETQ LTH (SSLENGTH SS))6 V) E8 D% {5 ]; L. k1 I. h
- (SETQ DEM 0)
- E. V- B! j A0 q, X - (WHILE (< DEM LTH)0 d# H+ z6 J @
- (PROGN
9 z% @. H* s' N" D$ v5 I/ e v2 _+ [5 d - (SETQ DS (ENTGET (SSNAME SS DEM)))' t! Q& k& {& L2 h: T1 \2 k
- (SETQ KDL (CDR (ASSOC 0 DS)))
, |7 s; j1 x2 k+ R2 G# P - (IF (= "DIMENSION" KDL)2 U6 F9 D- M) z' c9 U
- (PROGN
, G+ ^" x: q" p6 p. b - (SETQ PT13 (CDR (ASSOC 13 DS)))8 z6 y! Z, k1 k; L( c" t
- (SETQ PT14 (CDR (ASSOC 14 DS)))
' Q1 k' G2 Z' \& k$ Q- S - (SETQ PT10 (CDR (ASSOC 10 DS)))
& a4 w5 @* _ D& W/ k - (SETQ PT11 (CDR (ASSOC 11 DS)))
4 }9 ?4 u& c5 D+ `4 {$ K - (SETQ N70 (CDR (ASSOC 70 DS)))$ D2 G) f, M; g5 E: y% `* j H
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))( q% x9 @1 y$ n R
- (PROGN7 @; U! j. Q/ Q: n- R" ]
- (SETQ GOCY (ANGLE PT10 PT14))' A% V, |1 F- x9 i( u
- (SETQ GOCX (+ GOCY (/ PI 2))) U* s, F, r" d+ v
- ): l* G: j% e4 n& U
- ): N# y F' s/ G' J" }3 O! {
- (SETVAR "OSMODE" 0)
3 \; p4 _3 p4 p$ @2 z/ c. S5 y; s' K) H/ q - (SETQ PTI (POLAR PT GOCX 2))* w& p2 c# W3 W0 x( l. s- }
- (SETQ PT10I (POLAR PT10 GOCY 2))% W6 [4 Y: Z, }- ~
- (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))
/ W' A/ R" x) r& r* \* V8 M - (SETQ KC (DISTANCE PT10 PT10N))) o; t4 F4 y! g- X3 W
- (SETQ O10 (ASSOC 10 DS))
' |$ i* P" j9 z3 \ - (SETQ N10 (CONS 10 PT10N))! V1 j; D: _( {2 g' c. R u5 h% I
- (SETQ DS (SUBST N10 O10 DS))0 d6 ], Y6 R! L& R9 f4 Y8 G
- (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))
4 [6 l2 h5 \9 N9 L - (SETQ O11 (ASSOC 11 DS))
2 \* y/ J6 @( M" J4 f/ B5 u, q- J; V+ S' A - (SETQ N11 (CONS 11 PT11N))
* ]3 L/ |2 o0 f8 m- X! T& [6 \9 H - (SETQ DS (SUBST N11 O11 DS))( l9 Z& w( Q5 T2 |; V! W0 b
- (ENTMOD DS)
- M9 a. b; @- K* A( @! n - )
1 t/ V( C% Q8 m& m" @" P! `( q) k - )
! W! Z# f Y/ K4 c: I; z - (SETQ DEM (+ DEM 1))
( V/ U, S, M4 o8 G$ c - )
5 d. \/ ?' { v$ U6 O1 C - ) }3 U2 w& T B2 O* J
- (COMMAND "UCS" "P")4 }: F5 f; y- ^. Y: Z$ P# G
- (SETVAR "CMDECHO" CMD)
# O1 P) k1 W. m- J% f - (SETVAR "OSMODE" OSM)& t+ b, ^( J$ G1 L- W
- (setq *error* OLDERR)! u8 Z, r" t- F/ o: v* y7 S3 k, N
- (PRINC)" i: d' F7 Y2 I
- )
! \2 K/ `6 T2 e* W9 Y
, ?" U" j! i: `7 r! q- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================
+ y+ n3 o% ^& I6 Q; O; c - 1 _/ B0 @$ i5 T) Z; a
- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")1 Z: j& M, N: y; I& T& V, {" `5 ]
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
R t3 U4 O- t: Z0 F9 |6 g - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
7 @+ V$ g8 S3 v. f - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
4 ?$ S" h* O7 s/ \ - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")4 {, ~9 P# n! N1 \3 P
- (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))
! V" L2 T; \: u9 I - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))6 z" m1 q+ V9 s$ S2 O! B
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))3 ?0 l, B1 @& j3 C
- ) Z- n5 H4 g) k% h! P
- ;;; ================ CHEN COT (TUU) =================
/ C' I3 y! H+ |3 r9 L- P. s# { - , C8 P8 q4 l9 l7 C+ c
- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")
) Q Y8 [8 w$ K, D2 I+ }5 {% ~7 a - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")2 Q7 e R/ @$ |/ L& _' O( c
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
& D. V: U9 G" t0 t2 j b4 f - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
! p8 T# @4 _" ?# C3 u: k - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")1 k3 ]( f4 a0 s8 w
- (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))6 V1 I' K6 D* E4 A
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
" c$ Y2 ~3 u- R - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))7 P7 v/ o5 Z G7 Y% [2 u7 M
- . t9 g) G- W2 g) Z3 v
- ;;; ================ CHEN KY HIEU THEP (TP) =================! B' ?( S: H. E3 T
2 P# R Q0 d' Z# U% O2 v$ g- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")1 ]5 O7 b+ h3 b7 D% |. k
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")! s$ N' Z0 I N2 M5 ]) g" i" ~
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
; [( Y% R& S% U" x" N, N$ k - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))/ d) P) Z6 K0 A2 G& P q
- (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")
0 R% R1 W( |, W2 C' ^ - (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))$ @8 z2 {% N$ {
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))& G4 B, r9 U6 K
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ)). B0 z! i( E; A
, y& T( \6 G+ T1 V9 X6 J- ;=========================== TAM TUONG (TAM) =================================
, j1 Y1 G- T( W
2 h$ R( e- J3 H/ c- (defun c:tam(/ data_m)
p4 {4 h5 d: A5 _+ U& w - (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0))
. P0 h( M) Z: T, u( y - (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))
( Z) h2 b1 P& @8 n* j! H$ x! J+ ^& M - (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)6 k6 P& g; a8 a( E8 ~
- (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset
[9 e5 l$ z3 J" l - (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr0 D# R) K e; W" O0 J% Y
- (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ)) c% N6 l I% ~$ u2 L
- )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if
8 H) h. E8 W$ x( c - (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1)
I1 ~" B6 D7 _8 ]7 a - distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)
3 r8 A' z4 `. ?0 a - (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))
8 |+ B# ^& m6 ] - (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<
- d" r% Y, n3 m$ c$ N) W/ j - (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)2 o0 O+ t' \1 S. S
- distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))- D/ B) z! S# A) S! D$ Y( |: y1 u
- (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p4: O: @! z. O5 W H. I8 f% N4 _0 ~4 F
- (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not- N$ V6 g* W0 d
- (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget
- V' U; o: j8 A* b - (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))- m% n* R1 p0 x% o& s- O
- (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))
; V/ m0 z: G5 [& t0 ^% X* O S - $ ?( B; o( @% p2 }+ B" s5 I
- ;============ GHI CHU PHI (T1) ================9 N9 l: e- m: w+ S! C( h, K5 L% D
) A1 M' h/ o. ~. {1 n$ o- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))
+ n. `2 f0 j( u3 b - (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3
U# A) _. Z' J7 c - (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)# w+ m& A6 v& x) M" h3 b& s5 a
- (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)
; q/ i: s0 o- G T }. o- i - ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1))
& n7 n, ^- s' t9 w9 ] - (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9): @' n3 H! f1 J3 R9 [3 ?) T$ j& a) w* }
- 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1)
9 ^& w, D% \' ?( f4 O - (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )( B( _1 ~* e* g! {+ u
- (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")
5 y1 k, _# M7 }, i4 E - (command "ddedit" pause))2 X2 ~2 X) k" h& B- W7 u
- . @ W9 i0 c) M; Z+ q1 R6 q% ]
- ;;; ========================== Join (J) =================
$ Y8 E/ t d& J% X) ~ - 1 l, K; B2 R) f, C! E x
- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))
5 Z/ I( K8 b5 j5 | - (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? "))) u& d9 ]5 Q7 _( S. `
- (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)" L- z: E; C# k& Z8 o8 f
- ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")
4 Y4 r( _; R! W U8 a; v: M# ^5 x - (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC")). z" o' d1 q1 ^
- (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt ""))
: [7 n- C+ q" m6 y: m - (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" ""))
3 d0 Z" S/ O7 }( o0 n# k8 |- n - (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))
% ~, n3 i: m0 C1 u: h) h4 O - (setq *error* m:err m:err nil)(princ))' e/ z x7 o, K& H' ^* M: v& u) ~
- ( K: U9 o- j( L: s1 G( T9 k
- ;=====================================================================
& P4 I8 s8 A2 h3 a2 C, O - ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.
8 Y* w5 ?* _+ a/ u; b2 t7 \ - ;=====================================================================
1 I w& ~7 u8 U9 h. {3 r5 j - ) t# x* ^7 N9 o. Y6 J* g0 Y& t
- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old). d9 e1 O& d+ `
- (setq old (getvar "OSMODE")) / G) z/ V- @) ?8 j
4 j/ O& X3 P8 P$ i" f9 v- (setq p1 (getpoint "\nStart point:"))
2 B# h! y! e, a) k$ F - (setq p2 (getpoint p1 "\nEnd point:"))1 K) S1 @3 Z& b, o
- (setq side (getpoint p2 "\nOpen side"))% n$ X( X+ n- P: P
- & h! z- c8 F- |
- (setq dis (distance p1 p2))
. V( e0 _5 K6 ?( h9 p0 R6 a4 x. J8 k - (setq ang (angle p1 p2))
0 J G* V8 h8 a- ?% Y- ` - (if (< ang (angle p1 side))
0 x" `2 e& E; `' ]' F - (setq angside (/ pi 2) )
) m3 E, a% o" k$ O& J1 \ - (setq angside (- (/ pi 2)))9 d# {# K- ?) V f" Q+ B
- )
$ z, D$ ~' f# m; ] F% z7 O+ R - (if (>= (- (angle p1 side) ang) pi)! z/ x5 k6 @8 w1 z6 v4 ]
- (setq angside (- (/ pi 2)))
8 r. [. ~1 V. L3 @" i2 o5 ] - )
. m& X, D: H! s - (if (>= (- ANG (angle p1 side) ) pi)
+ A; q: O/ Z3 b+ [4 X - (setq angside (/ pi 2))7 W* q# Z* c3 q$ F
- )/ _5 |, }0 z* |" i& F+ z
|5 @3 }" X- B% q- (setq p3 (polar p2 (+ ang angside) dis) )( T% x3 G6 |* ~2 X8 L& G8 U
- (setq p4 (polar p1 (+ ang angside) dis) )
9 U6 r; B' S( r3 i - (setq wid (/ dis 15))& [# k; c! P0 ?: _' b
- 1 a7 S1 b( ?4 o
- (setvar "OSMODE" 0)2 t9 E+ ]- _: s+ j. Q0 \
& K1 m0 M( ~+ ?6 o u/ N; ?. U- (command "PLINE" p1 "A" "D" p4 p3 "L" p2 2 y Y7 T, E/ J. f
- (polar p2 (+ ang pi) wid) 1 T& z- l8 L- U' |" @! i6 u
- (polar p3 (+ ang pi) wid)
* A& W0 R) J2 H9 [3 ?5 c8 W/ N - "")
9 v1 W( H: _2 S2 ]
. |( A$ u. _1 A! Z5 G' G9 X- (setvar "OSMODE" old)
$ [! m1 h+ S% L& o$ k - (princ)
6 X e+ W1 f+ s - )/ ~& a6 ] t8 j
- L0 S$ [/ C( ^+ x) y5 a* M- ;=====================================================================# k* B; z- e( ]$ I
# V8 s" r+ h/ K* \4 c- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old)
0 j$ y- ~2 b1 r8 E: o& z* B4 ^# { - (defun cua1 (pt1 pt2)
. m ]8 H4 n# z. E; ] - (setq p1 pt18 Q4 |. q9 Y) B+ [! G* K
- p2 pt2)
7 X2 o- z% k' h8 h3 ]6 s - ! p3 B' H, g; F# j, X
- (setq ang (angle p1 p2))
# W: g: c- A9 W' b0 h - (if (< ang (angle p1 side)): |4 s& Q' c% g6 T6 I: R
- (setq angside (/ pi 2) )
* d4 s$ X4 Y+ k+ I: Y# U1 ]' y9 j - (setq angside (- (/ pi 2)))% P* J4 A$ L; Z2 N9 l8 N: ~
- )
" z8 F2 C& j$ q9 P# Y# Q. ? - (if (>= (- (angle p1 side) ang) pi)0 v0 p0 R4 \3 w- o, F3 T
- (setq angside (- (/ pi 2)))
* c6 ~' z" F5 g% \: R0 p - ); u. R ]& A4 `
- (if (>= (- ANG (angle p1 side) ) pi)
1 x2 U% b- P, o% y% ?' [5 R - (setq angside (/ pi 2))
+ `* K7 j! f0 g) _1 a& K9 G1 R4 }( x: N - )
4 N0 C3 Q: }3 n% I5 g8 d
6 X6 x% v6 j; d! _0 U! P* R- (setq p3 (polar p2 (+ ang angside) dis) )
9 N% L& a5 K5 y# J" _+ r/ Z - (setq p4 (polar p1 (+ ang angside) dis) ); Z0 J, l! G9 W* J3 e+ X
- (setq wid (/ dis 15))
- B- N9 e1 y) ~' A
' v4 k" R4 N0 r k; s& w- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
3 ?/ m/ e# n- E; M - (polar p2 (+ ang pi) wid) & n6 H' Q6 }+ a% J
- (polar p3 (+ ang pi) wid) * e: e: T* u: `) D6 l- Y
- "")
7 f9 [$ N, [, X# P% B. ^3 ] - )4 p" V" J8 S6 r S+ y! `7 X
- ;=====================================================================
" T, I$ d/ T/ ^ - (setq old (getvar "OSMODE"))
# Z, @+ C/ q0 w; D5 \' h - 6 T7 L5 e# w6 C6 n, p
- (setq p1 (getpoint "\nStart point:"))
7 k' n& V/ \2 e5 {- M v - (setq p2 (getpoint p1 "\nEnd point:"))2 `! P) n: `, O, i
- (setq side (getpoint p2 "\nOpen side"))
8 F% `+ l1 h# W- m7 A1 Y9 b - E! @( H& W0 |# P+ F# z* U
- (setq dis (distance p1 p2))& Y- k! @' }5 C2 v- W
- (setq dis (/ dis 2)): t2 ^' f$ ]( H- h; d; r
- ; e6 O- N3 I( q4 o9 {! l
- (setvar "OSMODE" 0)
6 Q; d: H: v5 y* d" I
. p( S1 z$ U, f! B- (setq p1 (polar p1 (angle p1 p2) dis))
) ~' U. j* v+ J; B - (cua1 p1 p2) / c5 c% D5 t3 k- S
/ Y' v- J$ p8 O( j5 x. `1 a9 Z5 C- (setq ang (+ ang pi))* y; c6 t, o, G
- (setq p2 (polar p1 ang dis))
; g0 q1 { @& A( b* C - ; (setq side (polar p1 () dis))+ e4 ^+ O# e- b& D1 }$ ^- e7 ?
- (cua1 p1 p2) 3 a; F6 k' _* A* L
" B3 f# k) v: s. N, Y0 d- (setvar "OSMODE" old)% G5 P- @: p# L3 T: `2 S
- (princ)7 \9 ]/ C6 A3 x
- )
( I" n& o8 v+ N, j0 u) t, z - " `: t6 W# P& J: |: ~! Z* \
- ;=====================================================================# b5 q; P* n% W1 n
- ;"Glue" text strings. All adopt first's properties.
" D6 X. S% e- @5 e - ; Author:
" F2 i1 Q, e; g9 i' | - ; Henry C. Francis
2 g% @+ f4 z% O# N2 c" S) ^6 B - ; 425 N. Ashe St.
2 E7 u1 `, q* q1 ]9 [/ V - ; Southern Pines, NC 283872 x3 S# `4 [$ [3 K8 l; |$ }1 Q
- ; http://www.pinehurst.net/~pfrancis
! S Q& P. s+ I - ; e-mail hfrancis@pinehurst.net
h" r/ ~) I% w& ~: @ - ; All rights reserved. f5 a8 \, V9 |& f
- (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)3 [# x0 t! {% D! Q5 G! k) Z' A
- (while4 e# r4 E: T: {6 j, X% J, u
- (not' a+ I9 t! Z6 Q9 P, U
- (and+ o) t9 \% f% I0 p" K* u
- (setq ename1 (car(entsel "\nSelect first text string to join: ")))
. X7 t7 G0 b$ S - (setq ent1 (entget ename1))
) `5 B) d* G" ` }* s) V - (eq(cdr(assoc 0 ent1))"TEXT")
' f! k; C% R, L' g7 B - );and
- @. p# r9 v q9 Y - );not
6 l7 {9 p, f1 `- d& w* H+ X - );while
; Q6 T, Z. w5 j# X0 f' x. b - (setq old1 (cdr(assoc 1 ent1)))1 a2 }) R7 X4 `! \5 n( B
- (while! z9 [) Y# k$ o
- (not
+ c4 d& h6 Y3 ~8 o - (and5 ^: a3 a, I7 \6 T& }
- (setq ename2 (car(entsel "\nSelect second text string to join: ")))0 u5 j; o; i8 e5 N. Z
- (setq ent2 (entget ename2))$ L2 a, p2 R) o5 r$ v6 q8 g
- (eq(cdr(assoc 0 ent2))"TEXT") P) X! Q7 d' e6 L2 c. q
- (not(eq ename1 ename2))4 S3 N2 t9 K1 d# w8 b' s$ }
- );and- r/ W6 m0 \7 e: O4 r4 U
- );not9 i. i4 ~# V' ?
- );while
+ t) W4 E T8 H; }, U) ?1 a - (setq old2 (cdr(assoc 1 ent2)))9 I- n$ Y7 ]/ P @+ I5 T* I( `) b
- (setq new1 (strcat old1 " " old2)1 b* T/ {8 O+ h% [! B
- ent1
( j2 I6 V+ W* G* S; V4 R - (subst (cons 1 new1)9 a% t1 ~+ n) c5 G
- (assoc 1 ent1), d- U- v" Q% w1 |) O
- ent1)
6 E, C. D* j+ b8 `- G0 K5 |% _ - );setq
5 s1 p( U. ?7 V2 a; y - (entmod ent1)
; Y( O/ k$ e( W9 k4 ] - (entdel ename2)/ W0 D c+ H& |0 j% { z
- (princ)
9 v# x# O" A! P* M& N% E" y, I0 M @ - );defun
$ W8 @& c8 Z- c9 m0 i
" y( Z2 f1 |* B5 z2 @5 H. ^- ;=====================================================================
- Y. ?- V% S4 o% c) h1 T0 _
" G! z2 I) i# E3 P. ~& ]& U- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)
( U e0 V$ h ]0 _$ T5 ~3 |
2 \1 M/ y# x* `+ u) f" T- a) a, v6 J- (defun nterr (s)1 n' Q& l1 D" t3 u/ a% R
- (command "_.UCS" "" "_.UNDO" "E")& [$ B% y3 ~ Y/ g/ g; u9 q: d( Z
- (setvar "cmdecho" 1)
) a" H6 k+ T: j) N- |5 } - (setvar "blipmode" 0)) |) b+ {; J7 Z! F; H+ A2 h; ]
- (setq *error* olderr)# e6 F& ^0 p- ]6 t% d+ D
- (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil 0 k' d# m* c( t, v; H- R- ^
- nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)1 E0 F2 C: }. @) R* c1 |) {3 N
- (princ)
/ `7 k9 G$ h( i4 y2 P) n - )
5 Z* i/ A: z7 h1 b3 x0 j/ }6 @& r. d' J - 2 K6 u. }' Q/ E( R$ ^
- (defun tim_in (dt / p01 p02 ktra)
; B9 o- T% v& h! b6 E% t8 \' C# E2 r( } - (setq p01 (cdr (assoc 10 (entget dt))))
! |. q2 Y& ]3 Y$ e3 k - (setq p02 (cdr (assoc 11 (entget dt))))
) u; W+ S" p! m, e - (setq ktra T)) z3 p; a, U* g5 Z8 Z: ~
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
. H: R7 M& S {2 c D1 o6 o* f - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
+ T5 F- A- B+ u9 e9 L - (setq ktra nil)) s- e# l$ _& `' ]+ [
- ) B; Q; c% Q- ` Q
- (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
% e# |6 y$ F: {" q+ {1 d/ j - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
5 W T( d' O' ?$ M2 s - (setq ktra nil)
4 N& s$ J: F! h8 h2 p! Y2 e - )7 q- J* ` h' C
- ktra
) n2 R6 j$ K$ @. o$ w1 X) I" ^ - )' D# {- i7 T7 I( {% N/ W
' p" F/ `$ i! E7 D- (defun timdt (dt1 dt2 / p01 p02)
& K) w9 j! l6 R9 [0 @# |& H - (setq p01 (cdr (assoc 10 (entget dt2))))' Z8 C. w( u, [
- (setq p02 (cdr (assoc 11 (entget dt2))))$ _! |1 B0 l' h b( g! u1 i
- (setvar "ucsicon" 0)% _5 z- C8 J3 H/ J
- (command "_.UCS" "E" dt1)
* c1 F0 o( o# ] - (setq p01 (trans p01 0 1))- l: e, m5 N; R+ S3 ^
- (setq p02 (trans p02 0 1))! }, D" k; k2 ]% n: y/ ~
- (command "_.UCS" "")2 B9 g# e. d! O/ S' r( c9 W2 e
- (setvar "ucsicon" 1)
2 K% T; ~; y) n - (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))0 q R1 e& u5 y; x
- T
9 }8 G" j5 z3 F3 |' y( Q( ?- O - nil' `4 V7 u' I( ]# {/ V2 x
- )
" h8 f3 |0 t# T, U; V- O9 V - )
4 S# U; \7 m( _7 T u, o) P; F - # S4 b# T* N$ ^2 {' \ b; Y) E
- (defun tim_out (dt / p01 p02 kt), r$ c+ m2 f: q8 V6 X: i& ]1 k
- (setq p01 (cdr (assoc 10 (entget dt))))$ T3 F$ I/ p1 ?6 z" a2 k0 Q7 X
- (setq p02 (cdr (assoc 11 (entget dt))))
3 l( o7 ]* F3 O' _5 @2 T# C# M - (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
! ^5 f$ ^& z0 Q4 d7 I - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
* w* D" P0 {- }0 y - (setq kt p02): ?" _! X& ?- T' i; S
- )
& K+ C# f, s) E2 q; g - (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
0 h# g9 H- `8 R2 W* i7 b7 z - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
6 @" d" _3 t1 U; ?; ^. q P - (setq kt p01)$ J: u( x$ g# x# Y
- )" o. N8 p5 e3 }9 J0 C
- kt 5 ^; f6 E! J: d( ]+ B
- )) J0 p9 t- N( {
- ( ~: ~8 F t* [( l8 c) `9 |
- (setvar "cmdecho" 0)8 F) T7 Z; t5 I+ m( H/ x
- (setq olderr *error* *error* nterr)
1 R7 y6 D: X' D/ p - (command "_.UNDO" "G" "_.UCS" "")
& g; r2 g# m8 |' @6 Q8 j; @3 k - (while (null ss1)/ _0 T- C( x9 M4 o. d: g: W+ d
- (princ "\nChon tuong muon noi...")
: n; U- r. s$ w% h$ ?4 G, u( y - (initget 1)
7 x; V2 X8 z$ y; | - (setq g1 (getpoint "\n>Goc thu nhat:"))2 [7 m% E: X0 T. Q# ]8 C& b9 q
- (initget (+ 1 32))
8 e' l3 h$ q8 {/ }# K - (setq g2 (getcorner g1 "\n>Goc thu hai:"))
+ _4 }! \9 f1 U1 e" ] - (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))5 }* V+ o* \1 ?6 x9 K7 v
- (if (null ss1) (princ "\nKhong tim thay doi tuong!"))+ B+ t4 X+ K0 a X) k
- )
! {7 q; k9 O* |- \5 e, j/ i - 3 Y7 Q2 v; x' F# l% b2 j- r
- (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2))); q- h5 i1 c& _7 Z
- g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))
, e& p2 H6 C7 ? s2 V) ~6 U - g1 temp)7 z a+ {3 h& v% N7 h5 ~
- (setq ss1 (ssget "w" g1 g2))6 z/ K3 Q0 t0 x9 M! Q2 J
- (if ss1 (command "_.ERASE" ss1 "")). V. C4 l5 ?: e T
- (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
. |) E( H/ l5 P/ ]4 [ -
. D+ K1 G4 {+ M5 S - (setvar "blipmode" 0)8 a3 O: q Z- k9 m& s
- (setq i 0 l (sslength ss1))
0 L& ?: D9 H0 _$ A3 _5 {# Y - (while (< i l)
5 m) n/ L9 }* c8 Y( J - (if (tim_in (ssname ss1 i))
3 n/ s! E! b3 R. e - (progn 4 x7 {7 d) i7 h: l; {/ J: @3 L
- (ssdel (ssname ss1 i) ss1)
4 f' A; D. `1 \5 A1 j - (setq i 0 l (1- l))! `% Z( Z3 o/ r8 i; J. j; e
- ) z: a7 Y" I( o- _
- (setq i (1+ i))
# u V( R U+ U8 b9 } - )
9 Z3 M5 m5 C+ C- t' Z - )
4 s* }& l0 H2 \$ E2 R1 U8 u - (setq l (sslength ss1))
. M& p) l3 s4 Y. o; E+ O. A& ]2 w - (while (>= l 2)% |, W& `8 L, w: U; X2 S
- (setq e1 (ssname ss1 0))
, z/ K! N/ i4 Q7 V - (ssdel e1 ss1)2 g# v; W+ v" R' K: }6 ?6 P
- (setq e2 nil i 0 l (sslength ss1))$ X5 B1 T% z6 z5 }, B: E( K
- (while (< i l) ) Y4 a- c! I! O& G" Y
- (if (timdt e1 (ssname ss1 i))( S, u7 V, R E$ c
- (progn
: }6 x: o2 E% w2 R3 k - (setq e2 (ssname ss1 i))
+ m& q9 b* P" e4 s' V3 R4 P - (setq dd (tim_out e1))
0 {: K3 |; K4 c* y% p+ [7 R4 k - (setq dc (tim_out e2))
* B) `' Q n7 [7 n/ ^ - )
2 k% ?8 D) z. ^2 d0 O* ` - )1 `! e, d/ }- [, w* y. Y- M" p- y
- (setq i (1+ i))- e/ }! ]7 q' A' I0 d- k0 W
- )* Z5 ^. j$ M, e4 X3 o+ y' |
- (if e2 (progn1 L. o* T1 T0 I3 X0 v+ R) q. v
- (ssdel e2 ss1) 1 K! Z' }) E9 |" i
- (command "_.ERASE" e2 "")- A) @. ]& e6 F$ n
- (setq temp (entget e1))
' `+ f4 |3 F( g3 ` - (setq old (assoc 10 temp))
9 o- ]4 L5 _+ ]5 u - (setq new (cons 10 dd))
) R' k# p5 O) d. v( k1 G& `- r - (setq temp (subst new old temp))
# q, M/ E1 L! y# }$ x+ X - (entmod temp)3 m' c1 n G" v; _ A+ |% Q
- (setq temp (entget e1))
' u% C0 V) `0 k5 ?9 _ - (setq old (assoc 11 temp))
1 m, \% n" G- {0 g( w6 w - (setq new (cons 11 dc))8 d' L9 Z6 u/ V$ \5 W2 b% A
- (setq temp (subst new old temp))
( |# o2 F" F% N1 S4 u) C) x - (entmod temp)& v& i! u- L& _; R$ B( f* @
- (redraw e1)
+ e3 W1 i( A0 L - (setq l (sslength ss1))
2 d3 @* h3 K; X6 U" s, ` - )- ?) Z3 y h: O9 P3 a' U, p
- )6 ^3 s3 C y4 Z
- )
6 S+ K- B* ?- c) U( @
% l/ J4 N+ ~9 D+ ^* b- (command "_.UCS" "" "_.UNDO" "E")
( x9 H2 ]# h! l6 f6 V - (setvar "cmdecho" 1)
i4 X- x- F, T- f1 b - (setvar "blipmode" 0)
$ V( Z$ k' @) S. q4 l. W7 h! N - (setq *error* olderr)
( `+ `+ X7 E- d; M; O - (princ); i1 A3 ]' l4 c r/ T0 M" C
- )
; V( q3 { T+ {# r3 a% N& \! a& ` - ;*********************************************************************
( p- {; h8 T1 x% W0 {3 b - (defun ketthuc ()
* D0 [, a- u4 z& J - (setvar "cmdecho" luuecho)/ P* s2 v0 R- l5 G
- (setq *error* luu
1 f6 N/ X. }; w$ X - luu nil
* ~* w# _- E6 R - luuecho nil8 A" ~9 v- Y* B8 K$ l% E5 A* }1 Q
- );setq
6 |- g. g3 g$ H1 F$ \ A7 c1 h - (princ); d! Z1 p. w0 \' u1 j8 ?
- ) ; n) V& N' H' d' H- [9 S* G4 O: j
- ;********************************************************************** I d4 g: Q, ?, s, ]2 S
- (defun modau ()
6 t* F# k8 T0 I2 ?7 } - (setq luu *error/ l& _. {, p% P2 d- P" W
- luuecho (getvar "cmdecho")
0 o) Z6 w4 A+ W6 P& u - *error (ketthuc)
# V: K9 {1 }2 P3 m& G# W - )$ w2 F2 h0 ? y( q# C4 U; ~1 M
- )% |* |- @, J( Z) ~( z
- ;*********************************************************************! K4 q* l1 p2 ~7 d5 t' D* G7 o
- (defun xulytext (text / kytu ma sokt luusokt lui )
, W+ X/ {" B8 h3 V - (setq kytu (substr text (strlen text))
0 B+ @ s7 R% u5 g& l - ma (ascii kytu)/ [: Z$ a' D, S1 e3 s) l. Z
- sokt (read kytu)
9 U7 l# z% k& Y5 d2 ~ - lui 19 _2 k+ A% Z" `: f! Z, `+ |5 O
- )' P1 _/ f$ `3 T w; S% \
- (if (numberp sokt)# |/ `+ B, G5 {3 [
- (progn0 @- Y4 |$ R& V2 q ]# C$ K+ R! ]
- (setq luusokt (1+ sokt))
3 U: W) L# g# n Y1 D# O2 ~0 ` - (if (and (numberp sokt)
& D0 B0 C2 Q7 c0 q - (> (strlen text) 1)
; F5 D) Z/ y2 {9 x+ r( [ - )
Z) l& f4 i. _ - (progn
; s4 n! N4 a3 A - (setq kytu (substr text (1- (strlen text)))& d" m- d: d6 A4 G( `4 F' `
- sokt (read kytu)
, D/ `/ E, l% n& ~ - )
! o9 W; P+ q4 ^ - (if (numberp sokt) / c# @2 X3 d& @; {3 c7 P" m9 K% e
- (setq luusokt (1+ sokt)
8 @4 T6 v. {: d1 V( ~2 U - lui 2
1 w$ C/ `) x% K, M, B$ \ - , n1 J4 O3 c' C$ K" Z Q
- )
5 v& k# _+ N" Y4 B - )
! [, \2 R/ ?* e5 T# q. _/ G! _3 W6 A - );progn
0 \4 h( a) M2 Q6 X, A - )
& e# ` s( z' H4 O7 @ - (if (= luusokt 100) (setq luusokt 0))2 t& D% N$ w& K; f
- (setq kytu (rtos luusokt 2 0)2 ?9 H3 a) W3 U6 f0 M
-
+ Q& g) ]& |1 x - text (strcat (substr text 1 (- (strlen text) lui)) kytu): N0 ?& I D! F9 u% O5 C. v& s! \
- ): M( s# v- X/ X4 d3 V% ]
- );progn 0 O1 D/ {' |- e
- (if (or (= kytu "z")& g- ` k; I$ M) h' B
- (= kytu "Z")
7 C- w8 T7 ]' v0 P6 \) T6 q - )" T9 J& r! I1 }5 P, A* I
- (setq text (strcat text "0")
6 G a O+ P/ K ^- [) H - textxl "0"
5 u6 Q" o% h2 a- Q3 e# \$ E! n |- f - )" I$ W, o& p7 Z) X O4 G
- (setq ma (1+ ma)# _/ [) x) F# c: U* L/ F
- text (strcat (substr text 1 (1- (strlen text))) (chr ma))
) D6 y" f* U, K3 O4 k3 m5 B - )& m1 w4 M) K' k: P- a* z4 z
- );if
- r* C4 ^. o8 T- l* s$ U, k6 d - );if' y" [4 q p3 W, m _7 ]
- )
( m4 U! K" q7 l* R: ^! Y8 b4 l - ;*********************************************************************3 l1 @9 R9 }: T n2 M
- (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)
; ] X, b1 Z5 I1 x9 r - ;Neu doi tuong la text thi tiep tuc* ]7 X' H& Z1 Q6 Q
- (setq doituong (entget tendoituong)
. q8 _; ^. [! |6 o; V% w - kieu (cdr (assoc 0 doituong))
: q- F8 X/ P& D# ^. M! e$ y - canle (cdr (assoc 72 doituong))
+ Q3 G% H8 q( L1 u9 q$ H - ) 2 q% Y. v. u6 `3 ^
- (if (or (= kieu "TEXT")- Y4 {; l F b7 q* P% Y! ~0 S. {
- (= kieu "MTEXT")
/ I) [7 n6 ~3 a - )
& G! Q& e( |9 t8 G/ T9 R - (progn8 x( ^2 x3 p5 F$ q3 }
- (setq textxl (xulytext textxl)
: Z7 }" F8 V& V) r; ? - text (cons 1 textxl)8 T" Z, h0 H* X5 L3 I0 D3 g, m
- vitri10 (cdr (assoc 10 doituong)); N) y/ N: N% s+ d) @ q
- vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))
3 G0 N- R/ }$ y4 L' A - vitri10 (cons 10 vitri10)
9 j* i N! d* m9 N- O+ o; W2 i$ X - vitri11 (cdr (assoc 11 doituong))" k# a3 r8 U/ a- y$ U; G. Z2 W! ~
- vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))) p2 }. z8 o1 x* G- Q! m
- vitri11 (cons 11 vitri11)
2 }/ i9 K( x$ q# H$ D) Q; t - dem 0/ N4 O2 h% _. w% H# z: F, y7 w; F
- dsach nil) P8 I* K" f* n; m: L% I
- )3 q4 a# i _& \& _& s h
- (foreach tam doituong2 ?+ p/ [& G; A" H
- (cond
, z3 S9 M1 ?/ o6 M - ((= (car tam) 1) (setq dsach (append dsach (list text))))
; s9 r8 I! N5 q3 a6 ^* g8 O - ((= (car tam) 10) (setq dsach (append dsach (list vitri10))))
% ~+ c( T' O' J c1 b0 S8 O - ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))9 x0 A& p- z1 `4 P9 v
- ((setq dsach (append dsach (list tam))))& s' D# i/ t; D E) W7 c
- )
- z; y: q3 K8 d, _ - )
0 q( S8 c d: }6 ~ Z; j( w0 p- y& r - (entmake dsach)
, ]+ a6 F! P" A- S) n2 h- t& v - );progn
2 C. R( {- O: } A4 t) k( Z( |/ r - );if
( k; _2 d! T3 l0 V5 Z - );
0 r% g) F2 M5 b2 y( Q" H1 m - ;*********************************************************************
) y6 K% M, u3 ?' N - ;sao doi tuong cu sang vi tri moi* u I* Q! E9 N
$ b8 D% ]0 B* N0 V: b9 n1 F- (defun copy_dt (tendoituong )
, J8 f: d9 F; ^* n, K `) k X - (command "copy" tendoituong "" goc toi )
1 o) O/ N. A" Y+ B - );defun
% R6 O/ H {3 O! @ - 6 P4 r5 y5 r0 s" x9 N4 }0 i
- ;*********************************************************************4 m& H" J' Y4 Y* }1 ]
- 2 N3 g8 j* h8 P9 X" a
- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
6 t1 V' [& m; m2 H9 h' Z8 E1 p - ; Khoi dau cua chuong trinh
$ i5 L8 ?; r' |1 G - (princ "\nCopy Inteligent...\n")3 h/ S* D4 K; o. r+ a
- (setq luuecho (getvar "cmdecho")
5 I0 X W& B( o$ _! u# } - luu *error*2 U8 |: O! a! ?
- *error* ketthuc' |9 Q: f& d6 z8 Y* } \- ^
- cumdt (ssget)- w& g: t, E, J0 I
- dodai (sslength cumdt)
2 ?# n3 h6 [6 j# c3 G0 ? - goc (getpoint "\nSelect base point:")
7 m# G2 g6 P; C( W6 Z( X; l" z/ M - thoat nil
3 K0 \* _. A% t& M' T8 E6 a2 H4 F - dem 0
: k0 a; p& h+ K" {! J& A: E9 t - textxl nil
9 z- v: l a. i* [8 r4 M" ~ - );
+ M3 P2 y# g( h( b0 h' S$ s) D - (setvar "cmdecho" 0)
/ C2 V( C/ \0 ?8 Y1 b3 l - ; Loc ra duoc ong text de xu ly1 b% E. `. z3 @$ @
- (while (and (= thoat nil)4 |6 c0 G, m0 l/ u
- (< dem dodai)% @) [3 I r* Y- W
- )- j6 o3 U5 ~7 |3 D& |" e1 d6 ] _6 j
- (setq ten (ssname cumdt dem)
1 j1 A D# g9 S K - dem (1+ dem)
n3 J, x. U- `& u* _8 Z7 D - doituong (entget ten)" n# t2 _% i" T- _+ ~9 u* s
- kieu (cdr (assoc 0 doituong)) 6 \- J7 X1 q! \# q, j; l
- )
' Y9 K5 I, D( Z n) i: J# I% O - 2 G$ q/ s! g2 T ^# B
- (if (or (= kieu "TEXT"), ^* j/ t9 E& G9 d7 \) L
- (= kieu "MTEXT")
, ~; O C# _1 y) r1 k: y/ @$ { - )! e* x2 t5 Y8 b2 N
- (setq thoat T9 r( O! ~% w$ C6 l) j9 O
- textxl (cdr (assoc 1 doituong))
- y6 O" @9 Y/ A1 n0 ]3 f - )& a- H L* }& {7 O. r
- )
7 C- g/ f( ?! {& W, W* \% K - );
$ m+ P( X, m9 J - (while T
+ G/ y1 U/ j3 l' @, h: Y - (setq toi (getpoint "\nSelect next point: " goc)3 C3 A: F# b; |/ S6 ]' \/ {
- vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
7 x7 B- I, e/ ~( |4 U' c' W6 c5 u - dem 0
- [& V4 J9 J* @1 f% W - )6 u! D0 K1 d1 f( z1 S( [
- (while (< dem dodai)
" n, N6 s+ v' L! g( @ - (setq ten (ssname cumdt dem)
" A7 f2 K6 G9 W" r - dem (1+ dem): r9 W" T. r& n! k, [. n1 f) Y) h
- doituong (entget ten)5 `- I. p- E7 g, w. d b
- kieu (cdr (assoc 0 doituong))
" U* t' X2 u6 A4 k- y( r9 q - )! m) K6 p# B. D; q. P6 {, T$ D
- . P- ?3 G: Q( U3 O9 \9 U, i* g
- (if (or (= kieu "TEXT")
* ?# p3 H0 i2 s' t( B8 B - (= kieu "MTEXT") 1 M5 Y( X% B+ q( Z: x$ {. v
- )" ~% N+ @9 {: g- r
- (doitext ten)
6 W% E( G4 H/ R/ Q7 _- t) c - (copy_dt ten)
8 B4 R1 C9 W4 L' m
. p m. o6 r3 V( y, k5 G% i0 c- );if
) G( O# J( ^% V* D# @3 ]7 m( B - )/ D% y& U h2 R! F
- );while
. D9 S% b+ d% _0 G8 R1 V - (ketthuc)
& i2 m( O% W3 A( B [; g/ p - );defun
1 E* ?! P) ?4 f9 N! F; M3 H4 s - (princ "Type \"DG\" to start")4 y; ^) U+ d; w+ _
- ;Note: bien toan cuc: textxl vitrilech
, [0 p9 I; m6 [+ k
- P5 W2 E7 \1 u- ;=====================================================================$ x. L- q6 d1 f1 \5 T( V
- ;;; PLJOINFUZZ.LSP
: S; u: ^, L. ~* _ l - ;;; Joins lines, arcs and polylines using a fuzz distance
/ D$ S( m/ C) V& i - ;;; If only one object is selected it tries to join to all objects that are possible {9 o! ]5 J4 X$ j
- ;;; By Jimmy Bergmark1 V8 ]8 m9 U0 q, ~* x
- ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved
: N3 f; Q! p+ z& ` - ;;; Website: www.jtbworld.com1 \, Y8 |* ^0 E
- ;;; E-mail: info@jtbworld.com# x- c; g. q% d) N! u& l4 X$ z
- ;;; Tested on AutoCAD 2002,2004 and 20053 P3 z8 y2 Q: J) P; R+ p
- ;;; Latest revision made 2004-11-11
9 g% ~0 a+ S! K0 N5 q- B, y - ;;; Minor code cosmetic change made 2004-11-13% F% J" D" d: h/ R" ^
- ;;; Bug corrected 2004-12-236 `# M" D/ t# k. g
4 |& H# h, ] L1 n7 _' c+ x/ }0 u- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf
* a( q0 ?- H' i" k$ W! H1 t - (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)
2 \. ?! u3 N: K+ k - (setq oldcmdecho (getvar "cmdecho"))/ G2 y3 _) L/ [. F3 X
- (setq oldpeditaccept (getvar "PEDITACCEPT"))
2 q9 t( J$ M" _+ } - (setvar "cmdecho" 0)8 K- a# d! _" D6 d* f, h
- (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))" X! p7 d# N5 x/ C
- (if A2k4 (setvar "PEDITACCEPT" 0))9 g0 ]4 B7 h, }
- (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))5 w2 w' i& ~" Z
- (princ "\nSelect object to join: ")! ~) H* p# E! h: Y$ D3 |7 [
- (setq ss1 (ssget okObjects))
" C! y1 N/ k- r& g3 L - (setq fuzz (getdist "\nFuzz distance <0>: "))
8 m3 ]* A# M" x" g8 h3 l4 O! d8 ^ - (if (= fuzz nil) (setq fuzz 0))
4 j; k3 K: j; s* q- P% f" ~: X4 T - (if (/= ss1 nil)
" H9 n% I1 H9 P - (progn! W9 R2 x4 p, Q( y
- (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0))))))
! k7 e! ?1 |4 T- I) |' Z# s4 b! P - (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects)))) J9 @! G' D6 h
- (if (member objType '("LINE" "ARC"))
+ z* q. L4 y! N% _ - (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")3 w* k! m, m2 @+ R2 b
- (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")
& ~: K4 k9 U1 U4 \ - )) W' G' @( ^9 Z( s7 w& s
- )9 A. t) C2 d& m6 y( X+ E
- )* V" a1 _$ F; Q S7 g
- (setvar "cmdecho" oldcmdecho)0 B% X1 v1 L. S
- (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))
8 W0 g9 L5 O$ k( x7 I/ C1 P - (princ)
' T( t J7 S+ V3 [" |2 Y" ?* v - )
$ S2 p' K x' |: X( M0 g; L6 | - 0 L7 |& X* E$ x' k5 D7 N5 E3 N
- ;===========================VE CAO TRINH===========================
3 ]: F& I* Q- k. h$ O) Y- z - & T ?% F$ X3 {$ `
- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL6 X/ I) p6 u! K
- CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)/ i7 y, Z& U# \2 W9 w
- (SETQ OLDERR *error*- `. ], v {$ n6 F% i% E
- *error* loisb)
3 C% ^' w$ y+ K: Z, P( K7 c - (command "layer" "m" "dim" "c" "" """")$ K0 |1 j3 ]0 Z& w3 o
- (SETQ CMD (GETVAR "CMDECHO"))1 [, X5 [/ s: g. H* s# f: O% [
- (SETQ NBC (GETVAR "CLAYER"))
4 K+ k- }3 u4 X3 i, I6 R2 D* C a - (SETQ OSM (GETVAR "OSMODE"))
3 Y4 y0 F+ X* I6 B - (SETVAR "CMDECHO" 0)0 p, h- f8 R0 v% S5 A2 q
- (SETQ PT1 (GETPOINT "\nDiem cao trinh:"))
/ M. c# @# d. u - (SETQ TX (GETSTRING "\nCao trinh:"))
$ \8 {+ l/ Y% r# G g' Q4 b - (SETQ FCH (SUBSTR TX 1 1))# M7 U h4 w) a6 C5 T% v
- (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))
: o8 z( g1 ~$ M/ T' ? - (SETQ CRST (GETVAR "TEXTSTYLE"))
$ h$ X4 k! Z4 U; _& J+ T$ M - (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))! ?" V! A. o6 b& z
- (SETQ TSIZE (GETVAR "TEXTSIZE"))
7 _4 m- l- _; P+ k - (SETQ STR (RTOS TSIZE 2))4 W$ I; J% s( h6 T! ^! C
- (SETQ PRMT (STRCAT "\nText height <" STR ">:"))0 f3 L. a6 y- K C/ @) [) E8 f
- (IF (= RSIZE 0)
: j8 `+ q0 R5 D3 _ - (PROGN
( g I& H" B1 p( q' l; h7 _9 f - (INITGET 4)! `; j$ z6 S; ^$ I; J
- (SETQ TSIZE (GETREAL PRMT))
$ Y* R" O. r5 y$ G2 p" N1 X& z - (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))! r2 p# Z, V3 G; o& A
- (SETVAR "TEXTSIZE" TSIZE))
. r, l) S* t6 u" S3 T - )
- N5 K+ S; g; I" k - )$ Q; ~: a' h( C- R& x4 T# q
- (PRINC)
; F: ^% M& H4 C" D - (SETQ TL (/ (GETVAR "TEXTSIZE") 2))
( P+ _, k) P" a+ U& _8 e - (SETVAR "OSMODE" 0)
" e+ Q% @* k! K: O3 Z9 u( @! n" F$ N - (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))0 V: s, D T) {; Z4 }8 U
- (SETQ NPI (/ PI 2))
) R* O( F. z! `$ I+ h4 |1 j# I - (SETQ PT4 (POLAR PT1 NPI (* 1 TL)))- z) k2 }' @4 B; Z1 S8 J: V
- (SETQ PT2 (POLAR PT4 PI (* 2 TL)))
0 P h7 o" J8 P0 d; F - (SETQ PT3 (POLAR PT4 0 (* 2 TL)))
, @; i1 l5 U5 I( I% n2 w+ E! t - (SETQ PT5 (POLAR PT4 NPI (* 5 TL)))! q/ R& F, |+ H7 V Z! j/ G, F
- (SETQ PT6 (POLAR PT2 NPI TL))* }; v) g- h9 K) s% q. m+ n, q5 d) E
- (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))
& H& _1 x, H, X. Z! O, S, W - (SETQ PT8 (POLAR PT6 NPI (* 1 TL)))8 v3 c* [; y* i5 Z4 D$ ?* l
- (SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))
* ]( p1 O, t3 C8 q - (SETQ PT9 (POLAR PT1 pi (* 2 TL))) _4 \: `9 R& l" u
- (SETQ PT10 (POLAR PT1 0 (* 2 TL)))' Y1 C' ?# e* [( c7 y
- (COMMAND "COLOR" "7" "")& p3 c% N7 y @6 D6 ^
- (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" "")$ a. I. | y7 B# \" j. g6 F/ {) Y
- (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX))
/ u) A9 ?: [. q& X/ M2 f$ r - (COMMAND "COLOR" "BYLAYER" "")
% i1 C* a5 O, a6 I/ ] - (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")
0 f7 r* h- a6 P4 M - (COMMAND "COLOR" "BYLAYER" "")7 y# h8 c% |9 |2 h- _
- (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")
% m' n8 w4 L: r/ q - (SETVAR "CLAYER" "0")
4 a# P) Y6 [" X' b7 z2 I- T& B2 a - (command "ddedit" pause)+ `) x% u: ` t7 ]3 i% W
- (COMMAND "COLOR" "BYLAYER" "")
. ?$ y- [$ D( U& n2 T7 k( y b7 N' s! ^ - (SETVAR "CMDECHO" CMD)0 c9 U/ r7 O7 U& [2 a f% f
- (SETVAR "CLAYER" NBC)
, I6 w" d, M" P - (SETVAR "OSMODE" OSM)0 {! \1 B; h- k, ?9 t. b
- (PRINC)
9 M+ |( D' w$ c, l& Q - )
9 U3 D2 I ~6 @ - & |2 [+ a- U( Q- [: w
- ;;; =========================== VE NET CAT CHEO (GC) =============================
( L' i/ B5 z9 {+ K1 G -
+ Y ]4 ^ j1 E# g* e+ _ - (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang)6 |. _$ B9 m; i* H8 U
- (setq x (getvar "osmode"))
% \6 D" z& z9 x% D% h4 I8 P - (setq p1 (getpoint "First point : ")
- d! Q* U& g( B: ?( R, ^$ i+ G& Z - p2 (getpoint p1 "Second point : "))' F m! y+ U S3 `
- (setq l (distance p1 p2))
' |# d/ ^" W4 ~3 W3 Z# y% ^# ^. b, i. S - (setq p11 (polar p1 (angle p2 p1) (/ l 5))) ^* J; `. Z8 R& w3 s, s
- p12 (polar p2 (angle p1 p2) (/ l 5)))
8 ~0 r- R' P9 U - (setq ang (angle p1 p2))3 G2 l6 y9 s8 c
- (setq p3 (polar p1 ang (/ l 2.5))
3 j; x# e2 b0 w- Y0 j - p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))
! ?# y. o9 n/ G; g - p5 (polar p3 ang (/ l 5)); m. A0 H* z- @* Z
- p6 (polar p5 (- ang (/ pi 2)) (/ l 5))), C2 f' |0 v8 f; |
- (setvar "osmode" 0)0 ^3 o4 s H k, P( e
- (command "pline" p11 p3 p4 p6 p5 p12 "")' e+ [, k0 i$ |& P; ^3 A
- (setvar "osmode" x)
7 I; {9 a8 `6 e8 [1 i' y - )
) h& I1 |* D3 c4 x - ;----------------------------------------------------------------------------------( \2 V4 T" p5 `6 d0 m9 g; u
- (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf62 Y* @9 {4 d. r u6 B
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE")), k/ P2 W' s+ Q Q6 @
- (setq ps1 (getpoint "\Chon diem thu nhat: "))
* c6 `3 v5 ?' L9 ~- } - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
G7 H7 T0 M2 |4 y/ K' E! |- c2 L - (setq sb 50.0 sh 200.0 se 20.0)& k' q6 B) C8 l' B! b
- (setq ang (angle ps1 ps2)); m" L# k2 K: ]3 Y0 {. p
- (setq pf1 (polar ps1 ang (- 0.0 se)))9 O! V d2 U/ y. ^# r, D
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
& D# {" N* d- H' Z5 M& E K5 I! U - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0))); h7 [ C o! @* T) K/ j3 p
- (setq pf5 (polar pf2 ang sb))$ c6 S' R; s" |' X; _, W
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
) J: e2 p l! N( p/ \ - (setq pf6 (polar ps2 ang se))1 N- g' k) A E9 O* y
- (setvar "OSMODE" 0)/ J- n3 @0 ~) f
- (setvar "BLIPMODE" 0)
1 Q3 e5 M9 V2 j( F0 G7 ~. [ - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")3 z+ `! }' A2 x R
- (setvar "OSMODE" 703)- W; ~6 F$ T" u% v' { ~
- (princ) )
& k# [$ ?- t7 Q7 m- ?- x - ;----------------------------------------------------------------------------------4 e8 @6 J* k) ~
- (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf67 Y$ S- ^+ V5 U) i p
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
5 Y( m& q4 u2 d' P7 Z - (setq ps1 (getpoint "\Chon diem thu nhat: "))
, V8 S- q+ {& b' z r5 j- q* _4 u6 j - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))3 c6 u) r0 ?9 ?& i
- (setq sb 100.0 sh 150.0 se 20.0)+ }. w E4 L9 h& h; W+ T! Q: ]
- (setq ang (angle ps1 ps2))
# }& v. D9 K. ^ - (setq pf1 (polar ps1 ang (- 0.0 se)))& y) ~' B1 G% T, L; q2 w! a
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
7 W: t- _5 z0 {* s1 z0 k; b! [- v5 a; | - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
3 Y' |5 X" Q9 V n5 y - (setq pf5 (polar pf2 ang sb))
; P3 M7 c, L+ z2 X+ L0 }. o - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))+ [) `) r$ Z4 ]7 t% H: \
- (setq pf6 (polar ps2 ang se))
! N5 N* Z3 ]- X, ~# C$ K' j6 X5 r, h - (setvar "OSMODE" 0)
9 w/ r. ~8 O; p" m& A! B7 [5 B A - (setvar "BLIPMODE" 0)6 Z3 E9 ~$ q/ x- O9 g8 ^2 s
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
% P3 G* \8 b* g9 { - (setvar "OSMODE" 703)1 | T5 A5 S6 W$ P& n7 f ~
- (princ) )& t; F& {% `8 c0 ~+ Q0 ?
- ;----------------------------------------------------------------------------------$ E) y: I* d# T; M
- (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
- |+ V4 Z' S* }; @/ c - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))+ l2 Q2 p7 A. y- q9 o0 x/ g* j) a! ]
- (setq ps1 (getpoint "\Chon diem thu nhat: "))
, p; p6 w! g f" _2 } - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))" _, [1 F. p U; |
- (setq sb 100.0 sh 250.0 se 20.0)
6 x* o, O% z$ U( L - (setq ang (angle ps1 ps2))
/ p. d) t2 u+ G& K) w) ]* C - (setq pf1 (polar ps1 ang (- 0.0 se)))- q$ Y. u9 p: W9 B: R
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
# U& o r" @* K: A - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
" `) h2 J' ]$ C9 m$ s c! U, h - (setq pf5 (polar pf2 ang sb))
& C6 S, P& P3 r0 ]5 N& {9 W! J9 S1 a - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
2 s! Z& Y2 k! t+ |* `9 s$ |( S - (setq pf6 (polar ps2 ang se))
7 V) h% E3 C8 r( |( P - (setvar "OSMODE" 0)
$ N' g3 O1 h. i* h - (setvar "BLIPMODE" 0)7 W( Y# y, j$ O( i
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 ""), N ^- h. [! f' E: L2 o) A7 w
- (setvar "OSMODE" 703)6 o) \+ S! z- p
- (princ) )
7 T4 e6 u- `; V' g7 M) y - / a& z7 a4 h8 G @: E: V9 u
- ;==================================================================================, m( X8 n4 Y' [+ D, \
- (defun c:ang (/ ent pt1 pt2 ang)1 R. u8 A& c' t# P# I4 A+ W, P
- (setq cmd (getvar "cmdecho"))
2 G! U8 A' M% M V. { - (setvar "cmdecho" 1)# x+ f2 l4 c; c1 F
- (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))/ T- @- U+ i% K
- (setq ent (entsel "\nChon duong thang:"))
4 J: k: I1 O5 p. o+ i - (if ent
5 `1 ]# _# ]2 C! K, i! Q - (progn% L# I; p* x3 H9 I f% l7 T+ E4 u- }
- (setq ent (entget (car ent)))+ L7 `0 k9 t) X# X/ ]% D' I
- (setq pt1 (cdr (assoc 10 ent)))5 ^9 L( ~7 P: g+ Z
- (setq pt2 (cdr (assoc 11 ent)))
8 c$ w/ s8 {0 R" J) o - (setq ang (angle pt1 pt2))
" K/ A. u6 `: C. s - (setq ang (/ (* ang 180.0) pi))
6 |5 r2 v9 i8 Q! i9 F1 n5 d - (setvar "cmdecho" 0)* z$ P/ ?! q' r1 L" V7 U
- (command "setvar" "snapang" ang)
% q" g& v: G! n3 s4 N' Z - (princ "\nGoc cua truc toa do moi : "). F4 Z& Y5 N! Y `8 q, D9 P
- (princ ang)
9 z4 x: ^$ I. d0 t - )( H+ m( y( ~: }3 S5 Y1 Q$ u# e
- )
+ x* Y) S$ U7 V" L6 } m/ T - (setvar "cmdecho" cmd)
! l0 F7 c0 D5 n; |+ T - (princ)% I0 n y* K/ ] z1 S* Z& A) i+ N0 e
- )
( p/ i6 G& Z& x! Y# n - ;==================================================================================
9 M. r' D. ~4 }4 `3 B - ;============================== KY HIEU DOI XUNG ==============================# `: {2 ]7 e- E1 d j
- ;==================================================================================
v0 a* |; I+ l; s0 \- J, n
( @1 g. F& H9 B+ W4 j- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT9# _. P. m3 u4 i' D
- SZ G45 G135 G90 G180 SS loi)% `9 a8 p) c) A% m" W% v. R3 G$ l) t+ S
- (defun loi (s) H- u2 q- z% D" z
- (if (= s "Function cancelled")# G" d2 q+ x1 l( k# [, U
- (princ)" m' }0 d' J0 z& o: p; T
- (princ (strcat "Error:" s)); l! q# \+ v: v# x. U0 l
- ); g9 S5 o+ o7 g( H, H
- (SETVAR "CMDECHO" CMD)
, K' Q8 T' Y8 ]: {" m( u2 x - (SETVAR "OSMODE" OSM)% B5 f5 Z# k2 a. T1 B7 v b
- (SETQ *error* OLDERR)
: p0 W; i" T2 I; ^ - (PRINC)
5 b Q% F& d1 k! N - )
% T9 A' k4 d1 U - (SETQ CMD (GETVAR "CMDECHO"))) _; M( ^7 f J( \
- (SETQ OSM (GETVAR "OSMODE"))% _4 W" p& C0 R+ j* P. o/ k7 z) z
- (SETVAR "CMDECHO" 0)
3 n' F6 K/ t, f' r( r$ o - (SETQ OLDERR *error*
8 ^+ H- G" p! ^% { - *error* loi)
+ A6 A* }( h& [! [6 p - (SETQ SZ (GETREAL "Size <1>:")); c4 C, d) ?& d4 X! D$ E/ [* d* P
- (IF (= SZ nil) (SETQ SZ 100))7 B$ m" m6 Y9 Q; I# U7 D. S3 P/ ?- o |
- (SETQ G45 (/ PI 4))' _: _# ]9 o. ]3 H. M' K( R0 h
- (SETQ G135 (* 3 (/ PI 4)))8 `) s8 C$ q% A( r& ]
- (SETQ G90 (- G45 (/ PI 2)))" ~, w8 _) O) W$ I& ^: v2 S" s
- (SETQ G180 (+ G135 (/ PI 2)))/ u7 N7 Y \3 L+ o" q1 i1 S d
- (SETQ PT1 (GETPOINT "\nDiem doi xung:"))
P3 k. j& U$ \/ w - (SETVAR "OSMODE" 0)$ h; w) N' M( _
- (SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))
$ _! K' L- D+ t* l* q# Z0 D# } - (SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))
; {4 Z& H9 o* d4 d4 d1 C( L8 U - (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))
- h; N2 u; o0 u; ]4 ?) Z6 g - (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))1 D& Z. ]4 `1 }( C
- (SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))
; D J: {) h& N$ U7 M) f2 A! j - (SETQ PT7 (POLAR PT1 G135 (* 1 SZ)))1 J. l- u% H% J0 R% R8 b4 b
- (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))
& }+ ?. A1 Z3 [& ]5 s+ d) w, W - (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))
' V- F ~2 h5 F" \ - (PRINC "\nGoc quay:")- ? G" d& p! p
- (SETQ SS (SSADD)) u' q) s; p2 w, U" P& C# o
- (command "layer" "m" "Dim" "c" "" """")
( X+ R' {7 [5 s# W: B# E9 W6 M2 j% r - (COMMAND "COLOR" "1" "")
0 l+ R$ @# f- E - (COMMAND "LINE" PT8 PT2 "")
) @% y( U' w1 Y6 x0 G - (SETQ SS (SSADD (ENTLAST) SS))) i; f, V+ }! H
- (COMMAND "LINE" PT9 PT5 "")# B) j/ M! a% f; m, T' h" V- ^8 {; k/ O
- (SETQ SS (SSADD (ENTLAST) SS))
( R$ O# n* _8 [+ k. k% R: B6 v - (COMMAND "COLOR" "1" "")* e; `# x) v6 t* w7 V. u
- (COMMAND "SOLID" PT2 PT3 PT4 "" "")
5 s! H& R! Q |0 i/ | - (SETQ SS (SSADD (ENTLAST) SS))8 w8 X8 h* Y; ]4 M
- (COMMAND "SOLID" PT5 PT6 PT7 "" "")$ P9 I, L: b, }5 Q6 T
- (SETQ SS (SSADD (ENTLAST) SS)) K" U+ O" }! ^9 r; h
- (COMMAND "ROTATE" SS "" PT1 PAUSE)1 {: X: c+ `7 E5 V# }/ `
- (COMMAND "COLOR" "BYLAYER" "")
. t% y7 V; A7 [% b. D3 D6 r0 M - (SETVAR "CMDECHO" CMD)
N9 f# p0 e1 S; Q - (SETVAR "OSMODE" OSM)) g) Y, S8 `9 i; d& E+ H
- (SETQ *error* OLDERR)
$ O! m) s/ p( f7 r( ]6 L - (PRINC)4 _6 j- a/ d5 d" \
- )/ T. T" M$ M9 C% {4 |7 L
O1 ^% Y0 B" g" ]" |% G1 w- ;==================================================================================
4 p9 K% V" ?5 u5 m" q: Q - ;================================= KY HIEU TRUC ===============================
! y0 U" q: ^! F! R - ;==================================================================================
k* J X$ p6 \1 _5 t: P - * n+ v! j. L* p4 ^) j1 [- B
- (defun C:vetruc ()- h( ]" E; s R# t) T, b5 t3 e. o
- (setq bk (getvar "USERR3")) q9 H* l+ @( p
- (if (= bk 0)
" d+ ]! T+ M( x7 j' d/ Y1 N4 p - (progn: @4 f" E7 M1 H$ r ]+ ?) d; T Y/ W U
- (setq cont "1")
& A$ Y8 g3 m4 l, w - (setvar "USERR3" 1)' H u$ V2 L6 W" r& d% H
- )1 Y7 u: u2 t; t1 B
- (setq cont (rtos bk))
* A+ K/ ]" x5 i - )
- E- E5 I, ^$ b( C2 o - (setq pt1 (getpoint "\n Nhap diem dat:"))* F( n7 }4 i$ y6 d/ [; f
- (command "layer" "m" "Dim" "c" "" """")1 x y' ?& B6 i0 E5 k1 T! |
- (command "osnap" "")3 I7 b8 ~4 v% Y) j: S. ~
- (COMMAND "COLOR" "7" "")1 f# f* d; W9 U4 l& V
- (command "circle" pt1 150 "")
% q) S6 i% Y3 T, n0 I8 G - (setq pt2 (polar pt1 0 150))
6 b1 g- \2 s' h2 P" x. R) y - (setq pt3 (polar pt1 (/ pi 1) 150)) L( Y% ^ |% ]& j; ?# n+ w' k
- (setq pt4 (polar pt1 0 300))$ u" a4 }2 k2 M' x' Q: L
- (setq pt5 (polar pt1 (/ pi 1) 300))
- A# j# `) g+ i! O) A. u - (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150))" i9 J: u0 |+ i) X
- (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))/ r) N; p2 I) c3 Y2 A* H' w% S! {! i
- (setq pt8 (polar pt1 (/ pi 2) 150))
$ T' d0 f) i7 D" U7 Z# W - (setq pt9 (polar pt1 (/ pi 2) 300))
. n% ~& ?( C" L5 C( G1 |, v) O - (setq pt10 (polar pt1 0 150))6 \, d2 a9 y1 E" _* |, t
- (setq pt11 (polar pt1 (/ pi 4) 150))! Z0 \+ i9 m* r6 b" [, `
- (COMMAND "COLOR" "BYLAYER" "")/ S* {1 |0 h9 A
- (command "line" pt2 pt4 "")1 j* x0 r8 o2 I. }. C1 U' J9 N# T
- (command "line" pt6 pt7 "")
6 p0 A, e1 J+ t6 K5 s - (command "line" pt3 pt5 ""): }4 B7 X) w% B4 Y5 ]
- (command "line" pt8 pt9 "")% V# V& _# ]& I) r9 o h
- (setq dk (strcat "\n Size:<"cont">"))
. d3 e, m/ E( R* U3 G! s - (setq bk (getreal dk))
6 {) G4 j8 I9 R* l8 ^ - (if (= bk nil)
" C5 L5 N! O ~, i' I - (progn
" F0 n# `; P; e9 w - (setq bk (getvar "USERR3"))9 o# u0 ?* e- b% Z9 R0 G' `
- )
) ?" Y" H6 T& A6 p: ^ - (setvar "USERR3" bk)
+ q7 J1 h( r3 U2 j: ]! b, b! V - )
% s9 y3 `- H7 I1 P k" N - (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")" N, j* [; y* g# O! F# `. R: F
- (COMMAND "COLOR" "7" "")
' T I9 o5 U* A1 G# z( r3 h - (COMMAND "STYLE" "Truc" "impact" "" "" "" "" "")6 O. o' H% S+ @# C& K* ^6 K( x
- (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "")
% X/ S$ x8 x% z* H* P2 Q( l H - (COMMAND "COLOR" "BYLAYER" "")
5 C) s* p: s3 u! w - )
( Y5 [* h4 k5 D" C% U, x
5 L1 X) J3 M3 S# `- ;=====================================================================
. I7 }! V0 d) x: ^% M( Y) X: t; i - ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)
# {5 S# P S8 e: O - ;
4 | ^$ a2 ?" C( W W - ;Jeffery P Sanders
% d u. [& _5 t, b - ;
; v' x8 G$ G. x) N' r$ B7 ? - (defun C:CA(/ en enlist tx newtx cnt tp asc note)0 j, o+ ^. f! w) U2 \1 a! e
- (setvar "cmdecho" 0)
5 w% ?" k4 F( k/ {/ l4 c - (if(setq en(entsel))
, l) \% f" o6 l7 K5 `" |0 Y) Q9 U& ] - (progn, c1 ~' ]( ` ^8 ~: ~9 d( x
- (setq enlist(entget(car en)))6 R9 T) I3 z: z7 h1 l' h
- (if(= "TEXT"(cdr(assoc 0 enlist)))$ r f$ z$ q/ W! x e m& {1 z7 X& l
- (progn- j8 n, K$ E5 h% D- c
- (setq tx(cdr(assoc 1 enlist))6 [; I+ {( |/ S2 ~- ], h0 o
- newtx "" cnt(strlen tx)
+ u l5 e! `, j2 z |7 N' L - note "\n...CASE Reversed. \n "3 u* h( w% L1 }- z
- )7 V" H/ y9 p O& Q! o
- (while (> cnt 0)
3 N" K) c) t' z& G; H, I* t - (setq tp(substr tx cnt 1)); s4 [! G2 Q2 |" f
- (setq asc(ascii tp))
% `5 A$ e% n# |* N7 I' n - (if (> asc 96)
5 F S( B3 e/ O" ], h0 ^$ d - (setq tp(strcase tp))' P$ [. {' i( u8 ~- F' Q
- (setq tp(strcase tp T)). |* F8 v/ g- H
- )7 B8 ?9 b* ~8 z$ ]& ?% k9 ]4 |9 K
- (setq newtx(strcat tp newtx))! {. A/ [! P+ H* ]
- (setq cnt(- cnt 1))5 Q1 N. p2 |) V! G/ Q2 M
- )2 t4 J( N% u1 @( e) O
- (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))
/ ?! `/ B+ L [ k - (entmod enlist)) j2 q" J0 N4 p" ?: J! J) m$ H
- )
' G0 v& o# w. @% j: @. |2 q - (setq note "\n....Text Only Please. \n ")
* X+ v- S+ Y. V; u; z; t0 C - )
0 O0 Z, B7 B! H/ m - )
% E( _5 G# I' O) L3 c& `4 A - (setq note "\n....Nothing Selected. \n ")
+ I# i. N1 B2 U! A6 P - )
* d6 `( b- k: \# k7 j - (setvar "cmdecho" 1)$ n/ `/ `3 L& W) d6 O2 [3 j
- (princ note). g8 T. x( J- Y, x9 K
- (princ)
" {; [" p$ L4 U2 l+ r - )
: {+ Y. t, T. k - - \; }' F; w+ F1 N2 q
- ;=====================================================================
+ g) n! L9 k2 T. K5 } - ;==================== NEW TEXT STYLE UPDATE ==========================
1 }; y7 _1 n- g5 I5 f, S4 B - ;=====================================================================
- g J6 i6 a; v3 I' A
3 K" y+ A" r& L/ p$ ^- (defun c:nS (/ tdt ssdt sodt index)$ H" f9 Q( G Q: [* S% F2 ~) Z
- (defun ObjName (ssdt /)
0 B! C. f, ~! w - (cdr (assoc '0 (entget ssdt)))
2 P& b" U& F+ B: X - )
/ B/ N/ y+ r: H1 j2 E" a - (defun MoPL (ssdt /)
; u- V" t5 y4 a2 R/ e - (= (cdr (assoc '70 (entget ssdt))) 0)' G7 \( W% E! G/ q5 _1 r$ ]
- )
1 U9 `' ? s; L" l" |" M - (defun NoiPL (ssdt /)0 h1 @- g5 ^+ c' C5 @
- (if (MoPL ssdt)- ^2 R" U6 b7 `: k y
- (command ".PEDIT" ssdt "J" "All" "" "X")1 V! `: {0 e2 \2 t% ?% [2 }3 u
- )! r( m8 x& Y# _" T' E$ ]% v7 v) M# J
- )
# o, W- v& X& v* }: B. Q$ P - (defun NoiLC (ssdt /)# G% Q( H" J: k
- (command ".PEDIT" ssdt "Y" "J" "All" "" "X")
+ n# C( |: `7 |, q/ D) e/ n - )( d2 V- R! U' E2 a0 @6 m
- (setq
& _7 V. H' o W& h- \! G - tdt (ssget)2 H3 w+ l# q$ @9 V- }% W( W$ D
- sodt (sslength tdt)
; [- J {8 {' g: d$ T* l, o - index 0" Y" C; v5 q' Q Q, S' i0 r
- )1 C m+ i0 y- G2 p- l/ F
- (repeat sodt
3 F! ?$ j; @; i5 P7 @ - (setq W$ x9 w2 C7 y: B
- ssdt (ssname tdt index)
, R# j! f, D) T7 ~% u - index (1+ index)
1 o) @4 K0 X: k9 s" k) L7 R - )1 \ Z7 \2 H( Y/ `4 X; Q9 J
- (if (or (= (Objname ssdt) "LWPOLYLINE")& `6 @0 p8 ^3 h9 z
- (= (Objname ssdt) "POLYLINE")
5 u0 A: c. @2 v$ F; ^ - )
m% r& f6 C8 V8 _, ] - (NoiPL ssdt)
3 ?5 C* r4 ?5 R/ b - )" R) J% n$ q6 g, u$ T
- (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))
3 W3 N$ \6 F8 x - (NoiLC ssdt)' ~! G! H9 b6 Y$ u) v: J
- )5 R" c: P" B% B* } e2 {8 M, e
- )+ b! j9 T( F2 K/ a n
- (princ)1 ~3 v' X1 a3 J& s1 w2 L
- )' f+ J! m, q- b0 t3 k; v, y
6 C2 g% h% t1 B* M; @+ y2 a- ;=====================================================================
5 T r8 b/ u5 ]- O* u( H# m/ a - ;;; AREAM.LSP; U- H# g7 b6 G3 h
- ;;; Function: Calculates the total area of selected objects
# U5 Y k( {/ ? V! K# ^- v' r4 @; g - ;;; By Jimmy Bergmark
z" Y8 n" D, ? - ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved
- W6 p8 }4 o; M! C$ W3 u9 e7 B$ e - ;;; Tested on AutoCAD 2000
. A# C% f$ d3 T2 h1 H - ' a4 P8 c# i& {1 d( H) E* E8 E
- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)
8 C+ {- M8 t6 A - (defun errexit (s)
- o! j) W- e" ^7 H. B' Q - (restore)4 l# d% v. J h- x' ?# e6 D
- ): k& A3 w9 t( x' b* X% V: z
- 6 X" z3 F/ ^* R$ x% R
- (defun undox (), T$ T( T0 ~" N: g5 V
- (command "._undo" "_E")
- e5 n0 d: z, U5 R: i; l: O - (setvar "cmdecho" oldcmdecho)
) c; C: H# m. Y1 i0 I& W4 b9 M - (setq *error* olderr)) e* s5 t3 [2 L, [9 w( i1 L
- (princ)3 y2 `1 R! s; ]4 b6 l$ L* f
- )
: c! S. Z5 b3 [. J$ @ - # x; |0 c$ j' r, A: S8 F
- (setq olderr *error*
0 n! S) {9 A3 c& i' R+ q9 F- F7 X - restore undox y6 b2 Z4 Y |' M
- *error* errexit# T( i/ |: \/ N4 e9 _$ y: V# ?" E
- )
6 s3 n1 n$ c/ a8 ?' v1 n - (setq oldcmdecho (getvar "cmdecho"))
( ^3 h. D: {; j% ?9 p) z - (setvar "cmdecho" 0)
% m- M# O7 m: N5 z& H - (command "._UNDO" "_BE")" h/ _( `: Y, W# h' d' g1 Y5 R
- (if (setq ss1 (ssget '((-4 . "<OR")0 x. e$ ~! q7 o6 s4 q2 X* z
- (0 . "POLYLINE")" _# G3 g2 \9 T' T
- (0 . "LWPOLYLINE")4 E6 Z- w$ B) A( {7 D( A
- (0 . "CIRCLE")
2 H% i3 U1 O2 G3 j+ x - (0 . "ELLIPSE")
: y* j: W5 K5 T$ x" {* u - (0 . "SPLINE")+ B- ~: _3 T7 m
- (0 . "REGION")
4 T$ U0 |& k% c3 Y m- ]) X4 F - (-4 . "OR>")
% w0 Y! Z2 W9 t5 t- E& v% m - ), M$ _" `% o# t3 K0 ]( z2 H
- )
+ c9 a: R/ C$ o: K( K - )
0 |+ B D2 w0 y5 w - (progn
* g+ R% e' E1 K - (setq nr 0)
& j4 L/ D, N; S+ s/ }/ H - (setq tot_area 0.0), g9 w& |+ P9 ?" g3 N. Y; n/ w3 F
- (setq en (ssname ss1 nr))' d5 a& n, M+ ~# p+ A2 }0 Q2 S
- (while en
! R8 p, `& T ?% E% n% H1 X - (command "._area" "_O" en)6 b q; ]8 S9 ]2 p
- (setq tot_area (+ tot_area (getvar "area")))' ]8 G5 \! v( O
- (setq nr (1+ nr)) _- _- W, q0 [ }: @; U
- (setq en (ssname ss1 nr))
4 M1 @' Z, t8 ]# }8 x9 l - )
3 H: t6 I# V' d7 x% I9 \ - (princ "\nTotal Area = ")
, {8 o& i8 q( z" R0 b- B+ F( Q' s) f - (princ tot_area)
8 {. B/ j% l+ N2 a( [ u - )* f2 U6 Z* t$ B: D" ~5 d
- )
! i0 d `0 G. C2 b - (restore)$ W8 l- L: M3 J6 Z3 W6 k/ |+ W1 m" D" [
- )
" i# y4 {$ K/ W" U7 u) `
5 d# \9 x) {! F- ;=====================================================================
+ R) }! A0 @' o( @ - ;;; By Jimmy Bergmark
8 a+ V$ d8 Y( q" j' {3 N2 }) A - ;;; Copyright (C) 2008 JTB World, All Rights Reserved
- l# ]7 |2 a- g+ _3 ?/ O& { - ;;;6 Y; M p9 L9 r5 A
- ;;; Created: 2008-03-31+ y$ q6 `6 o7 E
- ;;;5 Q! _0 h) {) S- B2 o3 t
- ;;; Convert Attribute definitions to mtext0 }" S8 m c1 B0 C; A
- ;;;: |3 R5 h8 S! S# ?3 Y
- 7 a( H7 B1 ]+ p3 J- \
- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)0 c: h- X# }& o5 v6 O8 u
- (setq eset1 (ssget (list (cons 0 "ATTDEF")))
q) T& A* ^. W9 C. f/ {/ G - blkcnt 0
7 S4 i$ |' x3 ?% u - )
2 z. }% e( p+ v$ r% a$ R2 C$ t
0 p4 W# G; ^. o. T2 z% m: X/ b* Q- (if eset1
* g6 E/ g" C& m: Z4 U4 ] k - (while (<= blkcnt (- (sslength eset1) 1)); s5 G( |4 n' V# h5 T. n8 ]& Y# i
- (setq en (ssname eset1 blkcnt)
, R4 ^1 K$ ]# [2 I8 J. T) W( u; ^ - enlist (entget en)& ?( O; d K$ e
- ht (cdr (assoc 40 enlist))+ A& f8 K) i) {! Y' t
- pnt (assoc 10 enlist)
" {4 ], N g3 Q - pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt)
0 A; A8 k' c& _+ O. R, n5 s& s - space (cdr (assoc 67 enlist))! D+ w8 |- P' Y7 W
- )
! s0 g# p- k+ j, {. M - (setq vl (list8 E j& N6 Y& @5 _3 W+ t# Y
- (cons 0 "MTEXT")
6 @/ U# C; d/ D1 H. C/ p+ a0 } - (cons 100 "AcDbEntity")
5 |0 A* N1 w, O. t! E# ^# ~; V - (cons 100 "AcDbMText")( ^9 K* v @' {
- (assoc 7 enlist)
2 A3 m8 v4 O* I0 ^, \! }3 C5 a - (assoc 8 enlist)
o/ b8 q% _) v N - pnt
5 }* A& I) P* c9 ~' J - (assoc 40 enlist)
8 R" N. I3 p8 L' J1 n6 _4 c - (cond ((assoc 62 enlist))
$ D6 ?4 \2 C. o# `- l - ((cons 62 256))
$ @! ?3 |( Q3 b- v% m - )+ u: q1 A4 g' d! q. g3 p% K
- (cons 1 (cdr (assoc 2 enlist)))
' X- D& Y; @- t* I. N3 I+ Q - (if (= space nil)
3 o% F- m+ l+ _! z3 e3 M0 E" u - (cons 67 0)
; M; n" x' `7 T - (cons 67 space)6 b) D" b6 G6 i
- )
0 \8 Z3 [7 A1 R/ X - )
2 @9 j9 M0 N* p. z; n( j - )
- R# f5 A! n. W7 y& e - (entdel en)
- e) G, {5 n. d Z - (entmake vl)
, C- V( ~( y* E4 S; ?- g- Y - (setq blkcnt (1+ blkcnt))) Z# |! E9 ?" ~7 z2 A
- )
+ I1 I& Q1 e7 e5 ]: G$ g - ). \+ V3 j) B5 t7 }
- )
$ q# t' e6 r* Q$ f/ Z1 h
. a8 @" f9 _; v7 c: t- ;=====================================================================7 P: ]( H7 O# U0 [
- # {+ r, q( ~/ Z' H
- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)# ~9 {2 \8 H2 r d" s
- ; Khoi dau cua chuong trinh
* A, ~6 G4 D8 {, U; D' P9 ~ - (princ "\nCopy Inteligent...\n")
- m9 F9 M% m% A2 x4 {7 w! r& ^ - (setq luuecho (getvar "cmdecho"), z2 y8 `7 }0 l
- luu *error*# b% B. V% S. G* U1 z* H
- *error* ketthuc
9 k$ w7 i% r C+ }, i e, i" S - cumdt (ssget)4 P8 f- X# X2 o7 B: T
- dodai (sslength cumdt)7 c2 I% r: ?! M. R$ Q; J
- goc (getpoint "\nSelect base point:")
- r4 H$ r0 ~" a% T8 t3 R - thoat nil- ` p* F. D- c# P5 m" Y
- dem 0
- m" ^ ~) M; L" Q - textxl nil* r/ v' i( {" V) d6 S9 A
- );
+ J% k& J1 w; U - (setvar "cmdecho" 0)$ l. p B; J3 [ h6 G0 a
- ; Loc ra duoc ong text de xu ly
% Z. I5 Y% _/ u2 v" K- A0 H - (while (and (= thoat nil)
, P5 q9 A8 v |( D; s0 U. m- @ - (< dem dodai)) c0 `5 J) B9 H! X/ x2 b0 _2 p
- )
. q( I5 J q# M6 M - (setq ten (ssname cumdt dem)
5 ? U* f' }1 i; s+ O - dem (1+ dem)* q; o, x- D) A& A$ \
- doituong (entget ten)
; [6 I: U' J$ |" _( ] - kieu (cdr (assoc 0 doituong)) 9 L; B8 M: l7 r+ h2 f+ Z! I
- )
, U- H) f8 f) |" j F0 D Z -
a8 \1 d4 w7 E" _ - (if (or (= kieu "TEXT")
! m1 s% r; A# ]2 M8 b, }1 k# S0 T - (= kieu "MTEXT")
3 j4 C+ H& g7 R! V. R: a9 Q5 E& S - )4 u3 k# P. u/ ?) g1 Q% h
- (setq thoat T
6 o# a4 F) ~/ ]! E; [9 m - textxl (cdr (assoc 1 doituong)) 6 F/ [) a7 O% [( e% G5 C
- )) j# G6 m+ i; _7 M+ m
- )
3 y% [8 B+ L( b. v3 T C - );
4 ~2 \! u! R8 r2 y) Q. n - (while T 8 ^7 i6 k- a0 E$ j: X
- (setq toi (getpoint "\nSelect next point: " goc)
2 e4 f; P1 @! |7 | - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))) F" S7 q; n6 H3 ?4 n, n
- dem 0
" g( w. ]4 [6 K! m - )
' T H, x* F% c - (while (< dem dodai)) x8 ~# `, |+ S' V# k
- (setq ten (ssname cumdt dem)
# g* v; ~8 M$ C! B0 V7 y% _2 V - dem (1+ dem)* T0 \# C* P0 q& o( M
- doituong (entget ten)
N( _- w; R/ i1 v5 m - kieu (cdr (assoc 0 doituong)) 7 |8 q- B* C4 `$ i' L9 N
- )! P& V$ A& w. B
3 u" J s/ {& k7 L- (if (or (= kieu "TEXT")
% e( Y$ Q1 s' K9 _8 Q" ^ - (= kieu "MTEXT") 7 K/ ]5 W9 ]+ q$ z) q4 Z8 I
- )6 m( A& X# }9 P0 G$ q: K& K9 J
- (doitext ten)2 ~1 c n0 Z% f
- (copy_dt ten)
- u/ T, E; |4 \+ N' B# z% f
/ q3 f: H1 o3 R! ]- );if
2 X7 x2 v" B' a4 k - ) Y5 B; p7 Y( z7 ~+ K
- );while
9 r9 q9 q2 Y" a# K; t, P - (ketthuc)
6 V1 ^; F% ]0 { - );defun
1 z6 j# U' u$ O% h - (princ)
1 d! f& s1 E- R
7 z# `$ U) H, K- ;=====================================================================9 ?( i- l/ L7 c- ~- E- T
- ;;; By Jimmy Bergmark" c8 F( P" ^ V* }( V! w
- ;;; Copyright (C) 2008 JTB World, All Rights Reserved) G6 i% h( j: D# `' T% j1 y8 P% _
- ;;;$ F1 S& T% S4 M, N% L$ T! a
- ;;; Created: 2008-03-31
7 E- X/ O1 ^' o0 k6 V - ;;;
3 p2 b" b( n. k% ?2 E+ z - ;;; Convert Attribute definitions to text
! N6 v& G% M" ` - ;;;
4 r& ^# S- ?9 V" k0 N
7 U$ e$ y5 x7 X, u$ p Z- (defun c:ATT (/ eset1 blkcnt en enlist vl space)4 ?: C9 ]2 \3 \8 U* f/ f# l/ u
- (setq eset1 (ssget (list (cons 0 "ATTDEF")))
0 |, |/ \, h$ A* B, U - blkcnt 03 I5 B5 C0 [9 H, G }$ G9 ^0 _
- )
) B1 d7 Y* I: ?, I0 T1 F& }
6 x2 R( D, }+ L* [: @7 Z- (if eset1. P9 j5 K8 Q9 V: [1 d8 q8 Q5 Y
- (while (<= blkcnt (- (sslength eset1) 1))
" _+ R' }! p b* ]: ?( Y - (setq en (ssname eset1 blkcnt)
5 u1 w) m9 C4 ]; P5 d - enlist (entget en): u7 u! Y6 j# \6 i1 t5 Z& J
- space (cdr (assoc 67 enlist))
, I6 a1 r; A0 k |8 Z - )4 @& u0 T! U/ l+ v
- (setq vl (list4 z. s; @+ t6 F. f
- (cons 0 "TEXT")
" L" D! X" ?/ A* d8 `" m# e- R - (cons 100 "AcDbEntity")
( }( E9 Q4 [- O, T( l - (cons 100 "AcDbText")
. Y8 ~5 J( C2 f8 G - (assoc 7 enlist)
3 X% [$ H3 Q) A c3 ^1 o - (assoc 8 enlist)/ F" Z; M8 l; q- C1 S/ O; t4 V
- (assoc 10 enlist)! l! h" V' C# @
- (assoc 40 enlist)5 r5 d3 H# x& E: b* K
- (cond ((assoc 62 enlist))
9 s' k4 A& w/ g7 |) x - ((cons 62 256))
: l f, i+ U7 Y" V4 V - )' _# |" Z3 G5 X* }* [
- (cons 1 (cdr (assoc 2 enlist)))
- a8 ~" I$ [% Y6 h% C- T: R - (if (= space nil)
& A* U! C( P8 _: R* u# Z/ F - (cons 67 0)
: v. [! k: r; \) Q - (cons 67 space) q9 v5 n0 c9 L( }1 W, F# n
- )
& s+ @; |+ P# v f3 i+ ^, T - )
5 R/ e0 f- d, _# G* ~; v5 ?9 I; J - )
" j/ T7 F- C. R - (entdel en)8 d9 w; X2 ]$ m6 \
- (entmake vl)
, \$ [9 O) y& n+ T6 W7 ^ - (setq blkcnt (1+ blkcnt)) Q( E4 E8 r6 K. s. z4 ] Y1 U
- )
0 ?: x& e" {+ {; h5 z5 n# w8 k4 p - )/ `0 e1 w% ~ X: t' e( K+ a
- )2 d$ b! d& h f0 M9 i7 O
- ;=====================================================================! ]/ s8 G: G3 ]
- ;============================ Doi Truc ===============================
; b5 F: }9 p; R" g7 F4 [; E/ T+ J - ;=====================================================================
( n7 G6 N+ |4 q* B) p G - 2 l! `2 a! T, K8 o! J
- ;=====================================================================7 z ~8 x0 G# D' W/ j& k C
- ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============
9 q1 W; o4 ?' v" f g( k% x - ;=====================================================================
\( M) R! C. \; R+ }) [# t; K0 d* q - (defun c:ga1 ()+ e% S) C$ `* r$ D% T
- (setq a (getpoint "\nChon diem: "))7 c' m! o: {' H6 ?
- (setq b (getpoint a"\nChon diem: "))
- q& k0 t5 o# E3 R9 D1 B6 ^ - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
+ ~( e/ E7 z8 i5 J - (command ".circle" c a)1 m) W9 f z6 ]! I
- (command ".line" a c "")) s6 R. h: x" N2 k1 ]5 j
- (command ".array" "last" "" "p" c "1" "" "") a5 ~$ e V/ f2 H: l3 L
- (princ))
: y# b1 X O' ]8 t) q+ ~$ w - ' P- W9 k' [4 @3 T3 |
- (defun c:ga3 ()
" K0 H/ Q5 L/ _$ i* K& G - (setq a (getpoint "\nChon diem: "))9 Q7 j2 v5 Q1 k y: I
- (setq b (getpoint a"\nChon diem: "))
4 J; y4 O2 O- B - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
0 z0 W7 r8 h. {; I& f: c4 q7 K& S - (command ".circle" c a)
. v. K( G; o* e* @ - (command ".line" a c "")& \7 t. p, t& V% s- A1 Z, W( C( m
- (command ".array" "last" "" "p" c "3" "" ""). u9 r1 r3 b' j z
- (princ))& M% t) ]! t' p3 |$ K5 N( a
, u8 j4 S" a. K+ J- (defun c:ga5 ()+ G( O# W; q3 G8 m
- (setq a (getpoint "\nChon diem: "))/ g3 Y7 s% ~ h3 s1 p5 d
- (setq b (getpoint a"\nChon diem: "))+ L' X- U: p* P
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
H4 V* x3 `/ O1 `* w - (command ".circle" c a)
, h! ~, |; c0 r( ?1 H6 ]5 {: M - (command ".line" a c "")
& ^ ^1 v! b* T | - (command ".array" "last" "" "p" c "5" "" "")
' I: r+ D0 Y/ H4 A - (princ))
5 ~! u) t1 D% ^' ?( ?, t
" m3 H9 T( p$ m. ~( Y, ]& { N6 }+ L0 w- (defun c:ga7 ()
, H+ @* X, b4 p& ~3 s& p( d3 r - (setq a (getpoint "\nChon diem: ")), m* B0 L' X+ j! B/ j3 [
- (setq b (getpoint a"\nChon diem: "))
+ p/ R+ K% B' d" G+ y- w - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))), l3 y5 c. b- F/ z. d( Y1 S2 N
- (command ".circle" c a)! [' o$ R" |/ K. I3 D7 y$ i- ?
- (command ".line" a c ""); J e7 I g! y& a
- (command ".array" "last" "" "p" c "7" "" ""), { Q0 m# U, ^& w' w: G
- (princ))# d1 T) b2 }6 T; i
- 9 B# |$ \1 c. y6 m7 _0 M- t
- (defun c:ga9 ()7 Y/ }+ S: H) Y. x) o8 x, ]6 j
- (setq a (getpoint "\nChon diem: "))
4 {3 s! n3 d6 R! p7 l" M - (setq b (getpoint a"\nChon diem: "))/ [0 t' {4 W+ Y. W
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))): M8 F% k; C: ?! w, m" u5 s; `% s+ E
- (command ".circle" c a)
) {: [' K/ C. p - (command ".line" a c "")' c r! v! Z* C: F- Y ?
- (command ".array" "last" "" "p" c "9" "" "")
4 J& m+ U% I* A4 j1 O - (princ))
& Y k5 A1 N. Q3 } - 3 C; E7 p7 ^* S0 z2 E
- (defun c:ga11 ()
' a* J+ R7 s; ~* g - (setq a (getpoint "\nChon diem: "))! m, b: z# ~- h" m1 O- ?# o7 c
- (setq b (getpoint a"\nChon diem: "))
$ `+ V( f1 x5 L c+ J, i% k* B - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))4 V+ l5 q" `& N7 \8 \9 Y( a( y
- (command ".circle" c a)
; q& ?* l* w$ J8 M - (command ".line" a c "")
/ l& \6 q$ N. c* \2 h - (command ".array" "last" "" "p" c "11" "" "")
1 e) N( q; {% F- J - (princ))" a9 i/ y# ^2 j5 c
- : i( {: q4 q1 ^0 v* X8 R, i% n
- (defun c:ga13 ()$ K7 T+ t% u5 f; ^, F0 q/ U. M. T
- (setq a (getpoint "\nChon diem: "))
8 {9 x3 P: j! u. b, I - (setq b (getpoint a"\nChon diem: "))
6 ]( x2 ]. T0 z* f - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
: X% \8 i0 _% e8 | - (command ".circle" c a)5 _- N3 r/ M: G! r% }. w5 q
- (command ".line" a c "")
) a! N& b7 S p8 I - (command ".array" "last" "" "p" c "13" "" "")7 O# y3 S3 i* o( T& l$ j
- (princ))4 \; m" @; `6 q, k& m
- " x. o6 L1 R% Y7 v
- (defun c:ga15 ()
/ W+ e7 d% I4 Z% R, B - (setq a (getpoint "\nChon diem: "))" y% Y8 d0 q- l% x8 K3 Y) q
- (setq b (getpoint a"\nChon diem: "))
$ |: c9 G: i, g( a+ p - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
- S! S; b" L$ ]( B# M6 f1 B - (command ".circle" c a), e: d+ c: y( r
- (command ".line" a c "")$ j/ M& N5 M9 N8 Z! ~3 U
- (command ".array" "last" "" "p" c "15" "" "")
# Q5 C' v4 q/ u3 T+ ^7 {0 p1 S1 q - (princ))
0 a+ A) @6 X; X/ m6 ~' Z8 `
1 F2 A+ P0 w. H6 b- (defun c:ga17 ()( c( d: e2 H9 v3 u% U
- (setq a (getpoint "\nChon diem: "))
' `0 m, C* b1 R - (setq b (getpoint a"\nChon diem: "))8 @0 @# G/ o. b! ~4 d
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
" P9 @4 a3 k+ w - (command ".circle" c a)
- E0 W, l# z( q: [6 H+ |5 C - (command ".line" a c "")
5 Y) Z, y+ [% D) y2 { - (command ".array" "last" "" "p" c "17" "" "")
( u3 m$ c3 @* `' X+ Y, u2 ~, a O/ { - (princ))
2 g% j5 }' Q( e: W
b* y7 o5 h [2 @2 w; ^- (defun c:ga19 ()9 Z8 R! d, i' R# f
- (setq a (getpoint "\nChon diem: ")) \/ h6 L( D- _1 V, m
- (setq b (getpoint a"\nChon diem: "))
- M0 h: ?. U, B5 I - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
, m: t3 p: q( d: g - (command ".circle" c a)
1 N+ J }7 c7 r- u+ A) a - (command ".line" a c "")$ z' M I1 K% e. D- L
- (command ".array" "last" "" "p" c "19" "" "")
B: p1 H; s/ |! t Z - (princ))
# @* v% N5 ~4 K1 s! t8 D
2 i' O2 J) u3 N) C- ;=====================================================================
! C2 J4 I7 C9 X4 C0 {9 e - ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============
6 O9 `6 `5 ?- y0 ~" Q( r - ;=====================================================================
- p- E8 i |. w) j9 w! o2 N - (defun c:ga2 (), g/ j" T! X9 U( N# e$ [
- (setq a (getpoint "\nChon diem: "))2 h6 F8 Y: x' a5 q: t
- (setq b (getpoint a"\nChon diem: "))
3 p4 o3 ` K* p5 I Z4 s* U! u$ \6 ` - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
7 a9 g( ?/ o; s% l" V - (command ".line" a c "")
8 o# l5 b( |( x6 R; I( ^ - (command ".array" "last" "" "p" c "2" "" "")
2 u0 v0 [3 L: @* ?3 A) x - (command ".circle" c a)
* X3 M/ t8 {7 H$ b, n' @ ^7 X - (princ))
* F9 V4 C6 b! Z, M
1 ~ O( z$ e7 M( R7 }- (defun c:ga4 (), j9 K) r* I# I, e+ a2 l1 ~
- (setq a (getpoint "\nChon diem: "))
1 A+ X- b6 k% c$ Z/ b3 |- I# T8 T2 X - (setq b (getpoint a"\nChon diem: "))
. D0 k4 q' I7 N7 p& ?# I - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))2 G: j+ Z$ ^0 u( b& D2 G5 E1 L5 b
- (command ".line" a c "")7 \! H3 F8 [9 Z; X8 Q
- (command ".array" "last" "" "p" c "4" "" ""). J/ N. z: o& S9 G# A2 c( ]) |
- (command ".circle" c a)
1 C: P8 i$ [% T/ B; K; }! X5 H# h - (princ))4 K5 x. C# s1 c h/ C3 R
/ k* ]( p' d; F/ a7 _% m: I, }: B- (defun c:ga6 ()
: \* @! @" n6 c3 X - (setq a (getpoint "\nChon diem: "))
2 y+ X# u" Z2 |$ S - (setq b (getpoint a"\nChon diem: "))* ]# s% g! C8 ?; R2 U
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))+ E: @0 x C3 T
- (command ".line" a c "")
+ B! Q6 D' n8 ] - (command ".array" "last" "" "p" c "6" "" "")
1 y! h8 Q. u- o8 M6 B) ? - (command ".circle" c a)" p4 l# R4 C: v$ q: @' ~8 T& u# T4 @
- (princ))6 ? ` z+ ^$ u, E7 t. D
* B6 j: @9 i8 G. v- j- (defun c:ga8 ()
& Q! o$ N- t8 G \9 i$ J - (setq a (getpoint "\nChon diem: "))- D- c5 i& b, `
- (setq b (getpoint a"\nChon diem: ")). y2 F% `0 y. H
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))- m, E, B9 r- m0 n% f7 \# w* y+ ], u
- (command ".line" a c "")& F+ n7 n! }' |& u0 ~
- (command ".array" "last" "" "p" c "8" "" "")
+ ^$ a" j& k7 p - (command ".circle" c a)
( Z/ `6 Y' z8 A3 z6 j" e - (princ))
8 P" @, t6 ^; x6 T8 Y* u
) i4 y2 h5 s- U& k' L- (defun c:ga10 ()( n+ C. C' W0 u" ]
- (setq a (getpoint "\nChon diem: "))2 l- D8 `- W$ a2 k: ]
- (setq b (getpoint a"\nChon diem: "))
1 U+ f3 q7 M- |- _# U, M2 d - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
. B5 x% {2 Z6 K2 V+ a - (command ".line" a c "")' x6 |, j, ?! D( U" l3 J/ Z) X
- (command ".array" "last" "" "p" c "10" "" "")
3 h) N/ i# J- m3 M# g6 X! B - (command ".circle" c a)6 ~! t0 G: o) \: i( Y
- (princ))
& n% R7 R$ J% x8 L* s - & a: H% S7 {( U! ]" X0 J2 o
- (defun c:ga12 (). ~& R6 ~4 N% B5 u% r
- (setq a (getpoint "\nChon diem: "))
/ [0 w# U, K& X8 } - (setq b (getpoint a"\nChon diem: "))
$ h4 _1 q/ V. q8 G" v8 z+ b - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
; _$ s9 v0 L+ {, u% R7 e$ O - (command ".line" a c "")
3 ?8 _4 R3 A, ], Z - (command ".array" "last" "" "p" c "12" "" "")
7 r0 a, c3 G- D* O" U* x - (command ".circle" c a)3 @* j+ r# J) | E9 S3 H7 k$ A/ u
- (princ))
" i. V5 l. ~8 Y3 c* d
' X! o, r( R: O* }- (defun c:ga14 ()7 v5 O$ i! c: @' c E3 J
- (setq a (getpoint "\nChon diem: "))
1 U' q" `: U+ y- T& B( V - (setq b (getpoint a"\nChon diem: "))
! d4 S \; a* w( [0 L3 s - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
6 D" h" Z |3 Z! d - (command ".line" a c "")1 n+ b3 Z! K; ^8 P% m
- (command ".array" "last" "" "p" c "14" "" "")+ p; a4 k6 v. w4 \9 \
- (command ".circle" c a)1 a+ C; E% q5 S# P' O
- (princ))
/ \2 y" W8 }; w6 w0 q - ( u3 t- p- n2 U9 | y, x
- (defun c:ga16 ()* l @4 o+ |& F V
- (setq a (getpoint "\nChon diem: "))1 p& G; [ s0 ]2 B2 p
- (setq b (getpoint a"\nChon diem: "))7 j2 S( X _6 j( F: m( _
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))+ ~: ?' Z5 h! F+ q8 d
- (command ".line" a c "")5 K. K- t8 b: G4 a/ d
- (command ".array" "last" "" "p" c "16" "" "")/ O2 e- }" _; e c9 `2 E& J
- (command ".circle" c a)
- F8 Q* Y' I, F3 A6 D7 P$ t1 e - (princ))
. ]$ R! U( z4 K: f. g& R
( B+ Q) B6 |. T/ N, \2 x- (defun c:ga18 ()
/ e" |* M$ W% l8 }( I - (setq a (getpoint "\nChon diem: "))9 ^9 ?, t5 E1 u1 V! d. [
- (setq b (getpoint a"\nChon diem: ")) F/ S; l' N2 `6 I& k4 A
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))& H8 t& `, B z- \. C3 q2 o
- (command ".line" a c "")# M# t: E" L" |: m, ^. \0 K W
- (command ".array" "last" "" "p" c "18" "" "")9 d2 V; B( V3 m0 m8 z" K
- (command ".circle" c a)0 {& P s6 i4 p' F
- (princ))5 m' Z) }0 h/ [! ?& J( `! _
- 4 l$ R/ P) `) D. |* \, j( k
- (defun c:ga20 ()
/ K2 j2 ^% y0 `) h ] - (setq a (getpoint "\nChon diem: "))9 ~' L/ }! p4 k* M
- (setq b (getpoint a"\nChon diem: "))
6 C0 c8 @( U# L5 q* w - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))), S- V7 M4 t7 z
- (command ".line" a c "")
( x% g J2 ? a. F1 n" { - (command ".array" "last" "" "p" c "20" "" "")
; t0 e2 B4 S ~8 g- B - (command ".circle" c a)2 R1 K4 G% j1 O7 A; |9 C s+ L6 Y
- (princ))" \& y" p ?) l8 s1 E! A5 O O8 D# O/ G
& ]4 f3 i" B7 [2 N8 T: F" F R ~- ;=====================================================================
7 I% Z, e$ B0 L& r! Y9 u7 N1 O - ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============/ ~/ ]# U3 }) \1 p( x* y1 g8 y4 \- s+ I
- ;========================== 06-11-2016 ~ 18h00 =======================
& w0 K) i; o4 q - ;=====================================================================7 `' H+ O) l2 ] o; Z5 f3 U
- (defun c:ga ()' `/ Y" ]3 s/ O
- (setq a (getpoint "\nChon diem: "))
, v4 a. D: j) F1 l$ }3 D - (setq b (getpoint a"\nChon diem: "))/ `2 [" f1 Z$ W9 m* T5 ]( i
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
4 T7 A/ n; \+ k - (command ".circle" c a)
+ e; E% C' Q! J- O - (command ".line" a c "")2 o5 T# G0 W/ a& g% _+ r @
- (command ".array" "last" "" "p" c "NUM" "" "")
5 b9 l1 l& Y; b3 z& M - (princ))
+ p( R& L* {/ O) x& Q
: P9 d1 Y2 R! u3 i+ z- ;=====================================================================" y- {( H: X' X4 l( V* k6 l3 W
- ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============
- z$ Y& |5 R# A+ U, n6 M - ;========================== 06-11-2016 ~ 18h40 =======================* M6 h, \) N! ^. g5 O J- O E
- ;=====================================================================
! ]1 D& q6 _* o/ a+ o
, h: ~8 r# r! N2 U' z' j- (defun c:hoathi ()7 k, J/ e9 t7 i- J
- (setq a (getpoint "\nChon diem: "))* H- j, e5 |# h3 x7 k4 M7 D
- (setq b (getpoint a"\nChon diem: "))
6 w! G* I0 z. \6 D' F, A! v - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))). Y7 B$ A$ m3 L- o# q# P
- (command ".line" a c "")
% c% s- X/ i9 ^! M - (command ".array" "last" "" "p" c "NUM" "" "")
. R$ C/ I- V9 } - (princ))/ Q5 {# K4 F- @7 @+ Q% p% n; d# B
! B* X% {& t: ~. P( l- ;=====================================================================
5 H( c/ z' R8 G) h- @ - ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============1 u# r+ k1 t8 {) ?5 p
- ;========================== 03-11-2024 ~ 19h33 =======================
3 G5 m0 N1 ]0 C - ;=====================================================================. p- q( U9 V5 g1 Z, u6 R# t
- 0 v' f, q S0 k1 m+ F- t& v& i
- (defun c:cung ()3 q. s9 r% k! o6 A' q
- (setq a (getpoint "\nChon diem: "))
1 j- e, }: B9 F' m' `! N - (setq b (getpoint a"\nChon diem: "))
/ |5 n# d8 J# l8 e5 m4 V - (setq c (getpoint a"\nChon diem: "))3 t. v9 r6 U$ G( s
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))), @& Y8 M( [+ W! V, g8 f7 }
- (command ".arc" a b c "")* i! t; x+ L% H$ F: y: F. R3 s
- (command ".array" "last" "" "p" c "NUM" "" ""). ?. i' U2 [6 p( A7 ^) K
- (princ))
1 w7 ?5 x' A9 H1 P; ^( h% a
. |/ N8 Y5 j, Y9 u- ;=====================================================================
0 Q* g# J4 B+ w; G1 U% J9 Z- b - ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============& g$ d! b7 @. ^7 g! c
- ;========================== 03-11-2024 ~ 20h02 =======================
# `. R, u+ g2 }0 u - ;=====================================================================. a4 ]& o1 w& R+ x' {
- ! D. |1 x# v0 @# j: N9 N1 f: B
- (defun c:hecloic ()8 K8 }9 T" X% |6 z, x
- (setq a (getpoint "\nChon diem: "))
. W1 o% a, o b3 {5 o1 | - (setq b (getpoint a"\nChon diem: multi "))- y- ?9 f ^- {% J, j4 Q
- (setq c (getpoint a"\nChon diem: "))(princ)
: r# x, }3 H9 L7 h7 T) ~" C4 y6 S - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))), }8 ~. k, V0 `1 m* ^
- (command ".arc" a b c "")
+ m9 J: z# f5 X! ^& }" l - (command ".array" "last" "" "p" c "NUM" "" "")- l4 a) C! o7 I( l6 r) P
- (princ))0 S6 h2 ~ O7 C; k4 m: K; |
g/ B% X- [( s! j/ p6 R5 T- ;=====================================================================
1 n/ ^) u* f9 Y8 m# n - ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ============== h4 ]9 m1 M# W( j
- ;========================== 03-11-2024 ~ 19h38 =======================
/ S/ |/ R3 D4 J4 z- J( S6 a - ;=====================================================================
2 z$ E7 e8 ]; N$ o' v9 Q D - 7 A5 C6 l! J* R* m4 g/ B2 \
- (defun c:gay ()
3 C) Z" }6 W# i - (setq a (getpoint "\nChon diem: "))
. L) A. M% m8 h( \) c5 g: L0 K - (setq b (getpoint a"\nChon diem: ")) B) m' b2 `- D% F
- (setq c (getpoint a"\nChon diem: "))(princ)
3 v/ b' H! V+ q/ ^/ F" b3 O - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
: t+ Q' v9 e1 L/ L3 K( B! M - (command ".pline" a b c "")
2 z3 _9 g- a5 X( | - (command ".array" "last" "" "p" c "NUM" "" "")) [/ m* k4 P" R4 I
- (princ))
6 Q! B- `/ I+ {4 o - " o* V( r9 M3 O: p8 k* v S( {
- ;=====================================================================
3 c! X6 i2 O6 n: s$ u8 s/ |' _ - ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============. }# N0 o, y# B; J! v; _' q
- ;========================== 03-11-2024 ~ 20h02 =======================4 M! x! s* b d q% O* o
- ;=====================================================================
& z9 g$ @$ w# ~' i4 C. Q4 j: F - 0 e0 X" l N) ~$ ]' Z
- (defun c:hecloit ()7 ^! {* z+ u" p, G
- (setq a (getpoint "\nChon diem: "))
* p) E7 ~! X4 b; w - (setq b (getpoint a"\nChon diem: multi "))
- ` ^$ E3 S# x. [0 _ - (setq c (getpoint a"\nChon diem: "))(princ)' R0 F3 K+ i& v3 H8 o0 R
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
4 \& Z' L9 k* r; K' }2 ?8 |, u - (command ".pline" a b c "")9 o" v; o2 j5 \ m+ |" m
- (command ".array" "last" "" "p" c "NUM" "" "")
3 ~' X/ K7 I+ O1 Y- L, |+ l - (princ))
7 Y9 F) V/ M( s
6 c. s* R- G+ @& K7 B8 X1 w5 n
( I: Z& W( p+ b; Y! b! }2 S, {- ;;; ============================ Merge Hatch =============================+ ]6 g. h0 Q; J+ c4 C
$ }4 c& B$ f0 x) W- (defun c:mh (/ ss entht sl i dt dtht)
2 g% e% `! W* f5 l2 Y* | - * Q; r: U4 a. E
- (princ "\nMerge Hatch - free lisp from CADViet.com")
' G- A; n1 g4 U' \, [( @; I$ p6 o - 2 s! k% Z& F3 m2 @0 q
- (setq- H4 p; P( S2 L2 e2 `
- ss (ssget '((0 . "HATCH"))). T! [ \2 y$ ?* X5 h
- sl (if ss
5 ^) c g! c& P' _& Q# S6 E5 h2 b @ - (sslength ss)- p+ z. a7 C. }+ g; K
- 09 X+ k' d% ~, ?+ k9 K% u
- )# z$ M% r9 ^# Z/ x, N5 U
- i 0- o: v( t* F' X# c4 s
- l 04 a* f) M& H- {4 I; z0 G. ?
- )$ `/ E) r J% N- c- K _1 Y
- 0 K: @, {) v9 ^# D
- (repeat sl* ~$ W/ Z2 E$ x( W/ f: N" T9 X S
- (setq
1 @2 ?5 v* g! z$ E! F: Q3 c: Z - entht (ssname ss i). K/ T' q o' q$ R7 C) Y3 I7 q
- dtht (getbdata entht)
' p' }1 o- v! F- |/ r - dt (append dt dtht)
( `* n, f% z5 R - l (+ l (cdr (assoc 91 (entget entht))))
7 D5 t8 H1 R8 h. o - i (1+ i)
+ X' x& F, i: U - )
, u8 x6 J' d5 a5 r2 q - ): \4 {* W! p3 P
4 s' }# z" P8 C% H$ W- (setq ent (ssname ss 0)' s) A. {: z$ Z' _' O0 d
- ss (ssdel ent ss)
6 A7 W l$ x( ?! M3 h" U - tt (entget ent): k0 H9 G' B* o l
- duoi (member (assoc 75 tt) tt)
7 X7 v! p7 L% h( a - dau (reverse (member (assoc 91 tt) (reverse tt)))6 Q0 t/ A9 w9 [! T d* F' k
- tt (append dau dt duoi)
% G# Y( L% |5 V - tt (subst (cons 91 l) (assoc 91 tt) tt)7 q' ~9 s8 p' S
- )' N; ]% C* x' x$ Y% u8 o
- (entmod tt)
1 Z3 h7 k' M* K4 U" g9 S. A N1 b - - l1 W# ?& R% R
- (command ".erase" ss "")! c' p: T) l" `' e; [
- (princ)8 e5 r6 R! R5 M# U7 a3 o, O# w% s
- )
" r' L% G7 n, {' @: F/ @ - # g4 y' g% o8 Y# s' ^9 d* f( E
- (defun getbdata (ent)
& [$ u$ f* O; x% ^6 H - (setq tt (entget ent)8 j" p8 G6 Z( m7 a/ `4 E
- tt (cdr (member (assoc 75 tt) (reverse tt)))
+ l3 g" q9 g5 N! T( q/ P: n4 c - tt (cdr (member (assoc 91 tt) (reverse tt)))
! H, v; `1 |% U& m% F - )
) R/ N" N9 f+ ?/ Z3 n - )
8 T& Z5 ~" v3 k0 { O& @* z( ~& P, y - 5 F5 z# h/ c2 d# p
* ?7 m, y6 Q' ~: Y- (princ), ~! [) H) Z y9 p; b3 e
' C: t, n0 @+ Q2 h! \- ;;; =========================== CAC LENH LAYER ==============================" |, {* b3 X; m1 ^6 S
- ;;; =========================== Layer hien hanh =============================
1 o$ @* j2 `! I& Z' s0 P - ; p8 t. f! e& d9 u) |; s
- (defun layset (/ LAY) (setvar "cmdecho" 0)
: ~2 J6 [! A1 i - (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))
" ]7 ?# _' H+ b. K - (if LAY (progn
. r L2 D6 @ M+ M3 K - (setq LAY (cdr (assoc 8 (entget (car LAY)))))
3 O- w% U% k; g - (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )
& A+ d* ]7 |- X; q - (progn
* f/ h7 p8 j- Z0 a0 Z* D$ O# P - (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop)) ) B( ^% P k- r v9 q- f8 f; f
- (progn
2 J# A( ^ i7 R1 G: t6 I - (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )
$ L9 D, e& [) d6 I6 t - (defun c:LLL () (layset))(defun c:LAYSET () (layset))
- u' K0 c+ e8 A% M* A J% {
8 m+ x) F6 J2 h$ h2 } z% X" N- ;;; ================== Cap nhat doi tuong vao layer hien hanh ==================8 [1 c& g/ n$ q: y) h8 E# b; R0 J
$ O; H. `% p$ J; @- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)' k3 f/ o; r" P' Y0 r6 l* r! U
- (if (not (setq SS (ssget "i")))9 `2 ~: I- @9 [# Y: w0 Z
- (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")- f# H1 ^( v0 W' A/ s$ o
- (setq SS (ssget)) ) )
; {! c+ K$ q, m* r% Z m g$ D - (if SS (progn/ I2 t( p7 R' f H1 ^
- (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "")
m8 f& ^$ |6 C ?2 s3 Q1 v, s" X6 d - (if (> (getvar "cmdactive") 0) ! W1 f% [2 q$ @+ F
- (progn
* R8 r; @+ r- _+ p+ H - (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) ); B* F2 `* ~' X+ o& K( @
- (setq SS nil) ) (if (> CNT 0) + Z8 |- a. e, r \
- (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )+ M8 p- t u" a. L" H
- (if SS (progn
' }- j' ^8 C. h# c( m* g - (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")
9 p0 t% I$ q1 k# H) P/ G& G - (if (= (sslength SS) 1)4 u5 x( t9 p, W% [* [0 n: J
- (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))2 |' o8 d4 E0 S( G3 p8 `
- (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end |) x# ^ F( {. O5 O3 K. J
- (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur)); X" c: q3 H3 j# X, p
0 |. X& V, |; R% |% _4 t, @- ;;; =========================== Layer Iso ===================================
% I H1 k1 g& B
+ N7 |! |7 }2 X- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)
) c, t4 b; N" i4 O - (if (not (setq SS (ssget "i"))) (progn
' C9 k! b7 `) t$ B5 E - (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ")! d7 _9 _- C1 l& h9 [
- (setq SS (ssget)) ) )
, j, Z- Y% t2 i2 z8 g# R0 r: z C - (if SS (progn (setq CNT 0)
: X" v% H [8 U8 z9 }. Y4 a - (while (setq LAY (ssname SS CNT))
8 D" A/ r5 r3 ^% G. |9 [4 D$ ~ - (setq LAY (cdr (assoc 8 (entget LAY))))
% g; y6 s( T2 N' I6 l1 B6 L3 X - (if (not (member LAY LAYLST))
* K* e. Z* ]0 ? E& E - (setq LAYLST (cons LAY LAYLST)) )' L) H. F* a |4 _% C4 ]6 v0 T7 Z# _
- (setq CNT (1+ CNT)) )9 X: d' i9 ~+ M) L% W
- (if (member (getvar "CLAYER") LAYLST)4 M! L! K% w* ?( j c% @# d; b; E
- (setq LAY (getvar "CLAYER"))
6 }$ N8 T# N1 R& J; z - (setvar "CLAYER" (setq LAY (last LAYLST))) )
# H& N9 K- t0 N1 ? - (command "_.LAYER" "_OFF" "*" "_Y")
V: o- _+ K; O+ Y7 P - (foreach VAL LAYLST (command "_ON" VAL))
: ]. W5 n2 ]" k2 P5 X - (command "") (if (= (length LAYLST) 1)
5 S* f p5 L% e - (prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))+ ?% Q! d5 h4 |# _# ]
- (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "
' J& x8 O- V R( w - "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )
# g! t& }+ G( }% U - (defun c:LAYISO () (layiso)) (defun c:LI () (layiso))7 g _/ I/ p" W
2 o4 E e" b. {5 l' l+ g1 a' I* w- ;;; ========================= Layer Match ==================================
, E9 x. }- T! f; w6 h( u4 l - ) N2 z" l/ I" A0 S: j2 Y" c
- (Defun LAYMCH (/ SS CNT LOOP LAY ANS)* C; l& P. a! R' ^0 ~
- (setvar "cmdecho" 0)
" J; Y: z5 y7 a7 h - (if (not (setq SS (ssget "i"))) (progn! `% g/ ]6 D4 m; z7 s* q/ ^
- (prompt "\nChon doi tuong muon thay doi Layer : ")
/ l/ Z( Y( i4 G1 h% J q0 o - (setq SS (ssget)) ) )
9 ~. B/ X5 O( T/ I; u - (if SS (progn
, {+ K5 G7 i! y6 Y" m2 Y* h$ G; ] - (setq CNT (sslength SS))
$ c$ K n, S5 r4 O. t' [& I& e - (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "") ' F: _. `) T9 ^3 ]4 R4 a0 N5 X
- (if (> (getvar "cmdactive") 0) (progn0 J; R9 [$ h# R: ~( J+ [- J& j
- (command "0,0" "0,0") (setq SS (ssget "p")
1 [2 q0 S( z" V- k - CNT (- CNT (sslength SS)) ) )7 k/ ?, v4 a" h2 h
- (setq SS nil) ) (if (> CNT 0) # d4 `8 S" J5 {; o8 I* e
- (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) )
* Z+ M: Z/ N/ ~/ ` - (if SS (progn, F' r. X8 r. \& i% h& K
- (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )
$ x$ E; N5 [, ?8 x7 U6 Y1 J2 k - (while LOOP (cond
2 k7 F/ t! S$ z7 h( v4 \2 c# j' { - ((not LAY)) ^, A( q) S i# Z# M
- (prompt "\nKhong chon doi tuong.")
, K3 L0 @+ z- F5 I - (prompt "\nSu dung layer hien hanh? <Y> ")* b% D4 n" `6 g0 u6 z
- (setq ANS (strcase (getstring)))
, B. x$ f8 K, O - (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
8 h: `6 l! j" b# C; Z - (setq LAY (getvar "clayer") LOOP nil ) ) )3 m$ s, A. P9 }+ h& |) q9 @
- ((listp LAY) (setq LOOP nil) )
. x% {" Z+ Q: d3 c3 d - ((= LAY "Ten")3 i" W$ R+ z* l( ^4 ]* R
- (setq LAY (getstring "\n>Nhap ten layer: "))1 w9 `$ r3 b( [5 T! n- A# ^
- (cond
) w. `% r; `/ z' a" z0 s - ((tblsearch "LAYER" LAY) (setq LOOP nil) )
! ~! `% S1 u5 r; }! Z - ((/= LAY "")
9 R" W" B1 a) i! t2 q/ \) M - (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")
* C9 ~* O' M( J N* a; r8 i - (setq ANS (strcase (getstring)))- ]" S" H0 v0 A- o
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
: O" o# N$ c1 k9 _( q" q - (progn7 c+ A \! k7 c1 ~6 X
- (command "_.LAYER" "NEW" LAY "")* H0 T5 B& T$ n) m `; h
- (setq LOOP nil) )
' O6 n( x5 F: Q, y) O - (prompt "\nLoi ten layer.") ) ) ) ) )
5 `; p0 m ~9 _# O) m9 G - (if LOOP (progn (initget "Ten")* U6 N6 w* k% P! E1 X
- (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP9 H& V* q1 D7 G3 \: Y
- (if (listp LAY)
! e& B8 s6 b9 w' O. U1 O% \ - (setq LAY (cdr (assoc 8 (entget (car LAY))))) )0 q1 s+ o1 d: r' H, R
- (command "_.chprop" SS "" "_la" LAY "")/ A' c: r- {8 p" s# o
- (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )0 ?/ o( d9 v5 ^8 u5 g2 P, B, Y
- (if (= LAY (getvar "clayer"))
3 a& {. Q" @; t6 r+ A9 T# S - (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )* Z3 `5 T+ l9 R6 p/ e! h& R
- (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch))
$ c# k9 N, w' z$ h- [1 i. K$ A - % E: o* Z% H- X3 N
- ;;; ============================ Layer OFF =================================
3 r: l3 c |5 H9 j. ^ - 4 y6 _+ R7 q( g; K
- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE)3 d# m" @" S6 s
- (SETQ SSET (SSGET))( \* _, v. I1 O3 N
- (IF (/= NIL SSET)
0 d" s% u9 v6 a4 ~, A8 \1 }1 I% k - (PROGN
0 k0 ^! Y& s$ ?- |1 N& s - (SETQ SSL (SSLENGTH SSET))
5 @5 Y4 c- }; p& [+ l, i$ |- u - (SETQ LAY "")
( _6 E4 g; F4 ?- N - (SETQ I 0)
2 o$ X0 B) S# ~+ [2 H+ {* o - (SETQ MODE 0) 5 S; u! O4 Z0 |; y( a
- (WHILE (< I SSL)
6 b' d: z1 f. @; { l" g - (SETQ ENT (ENTGET (SSNAME SSET I)))" W8 ?! D( E) P8 M
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
7 g7 r0 w2 K& p6 l# c3 W, A9 f - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))
) B4 k* f* t+ }5 I/ G - (SETQ I (+ I 1)); o g/ R' {7 A' E
- )0 E0 R) s4 I8 [. G2 [
- (COMMAND "LAYER" "OFF" LAY "")3 x, [5 @6 U2 Y$ m
- (IF (= MODE 1) (COMMAND "") )
$ a1 Y k& |$ s4 ^+ }# b9 g - )
* ~& N$ l1 t- q( v - )5 y8 X7 C5 w- h: n) w
- (PRINC)
; D/ M% `: A" U9 j& N6 T+ m - )3 t) t: x. y$ b/ r8 r
- 3 n5 S/ l! I/ R5 @# |! b
- ;;; ================================ Layer ON ==============================2 a) H3 z, d. D; o, h
- 8 U6 {! P5 p H6 w0 k
- (Defun LAYON () (setvar "cmdecho" 0)
) i9 F; T% X1 b9 J - (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")
% F i- ~4 W$ |2 p- _4 } - (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))
" L/ h" E! n. n6 n$ a* U - (defun c:LAYON () (layon)) (defun c:LOO () (layon))# |0 Q! Q3 p- A
- (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))/ S3 M7 X2 V, h( {+ _1 Y
. Q/ n* Z( X% e/ U* v; r2 j- ;;; ============================== Layer Freeze ===========================
7 ~, m( Z$ W) E9 X" O* `: m
. _4 o6 ?; z/ X- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0) " m) }1 X4 P7 e, \
- (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))
5 h4 `% D& O" a4 w' X - (IF (/= NIL SSET) (PROGN
( q$ ^& A% D. l - (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0) / o8 Q- Y1 B+ w1 w/ E- B$ f
- (WHILE (< I SSL)6 G' i% [/ N% ?. a1 W
- (SETQ ENT (ENTGET (SSNAME SSET I)))
7 N& {& v; B/ S2 g3 | - (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) ): s# W5 U- A, H$ h0 d. x
- (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))
: k) P+ ~ q5 T. i" G) X& d5 U - (COMMAND "LAYER" "FREEZE" LAY "")" g- P& Q9 l, b. a4 m+ ]
- (IF (= MODE 1) (COMMAND ""))))
4 v. c3 ?4 ?! m) y" [8 V$ k - (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)
Y, S) h% m9 |- ^" J2 r& A - (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )$ Q3 A, r' I( L3 M6 N9 V/ a
- (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz))
/ O, X7 h- K+ e; d! p - . }( |9 F) e' @. D# ?
- ;;; ============================== Layer Thaw ===============================/ U* H1 V- r% u* ]
0 \7 j7 t; O8 P6 N% q- (Defun LAYTHW ()
+ N7 _7 c! n' H2 k6 W- |+ t - (setvar "cmdecho" 0)& A3 M4 v4 l# R% i
- (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")
: b1 J7 H7 E6 A3 J- j. e - (Command "_.LAYER" "_THAW" LAY "")
: z: i$ M& n7 _( N8 C% A3 H - (princ (strcat "\n Layer : " LAY " da THAW."))3 o n1 x1 W& M! j
- (princ) )
/ D( A5 q* B: C8 _/ c - (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))0 y% D/ L" O3 F4 G: s/ z5 F
9 u" l0 {- o# p1 u% u- ;;; ============================== Layer Lock ==============================
! t5 g9 }+ c- |: ~' [
x$ _% ^8 N; R- (Defun LAYLCK (/ LAY)( c0 S0 `9 n7 o, s( X* `3 e
- (setvar "cmdecho" 0)
; r- F k/ Z* B: s! } - (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))
1 ^6 N1 O* }8 P$ Z7 F3 ^8 L' z - (if LAY j3 H, g/ V$ o% y2 }2 n' f" F2 x
- (progn2 A0 o+ @) i# M
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))
8 ^+ m+ T* T8 R - (Command "_.LAYER" "_LOCK" LAY "")7 @: p5 H' O1 d& a7 H
- (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )
d! x! J* Q: g: w - (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))0 ~3 g( C" W9 [6 w: _6 r8 g
: P G% W; P# ?2 w7 c- ;;; ============================== Layer UnLock ==============================
: g3 n0 a: [: ]1 G - 8 R' U# l' z) \7 ^3 m
- (Defun LAYULK (/ LAY)
7 E* R0 q+ i- w, p- ]6 t' S; r' V - (setvar "cmdecho" 0)
9 L- X1 V' [6 g7 ^ - (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))
: @9 X/ L! A! G8 j$ l# J) d4 a4 t - (if LAY+ h0 E7 w1 W" e+ _7 E
- (progn
) M% ]# N! W. ?' Y- j5 R - (setq LAY (cdr (assoc 8 (entget (car LAY)))))* P1 w8 {7 k2 N! @* n- ^0 m, ~/ Y
- (Command "_.LAYER" "_UNLOCK" LAY ""), [- I5 ~" x$ Y' L8 v+ b/ n5 s
- (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )* w7 F0 V2 P y5 Q8 B/ E
- (defun c:LAYULK () (layulk)) (defun c:LU () (layulk))
& K9 Z/ N" M, h4 h
' g" t7 @& a6 Q0 o& J- ;;;===================== Delete all objects of Layer ========================
4 { @* y0 }; n* s! A
, @; d' J. m' B2 E: @. r- (defun DELAYER (/ ocmd L S) ; B) c. T+ N3 s$ l1 p
- (setq ocmd (getvar "CMDECHO"))0 w" Z; K3 Z: b7 r1 D' f; M; Z
- (setvar "CMDECHO" 0)
# T5 q# I5 |7 T5 K4 l4 P - (setq L (strcase (getstring "\nLayer(s) to delete: ")))& j0 T' J- F8 Z, d$ i5 h
- (setq S (ssget "X" (list (cons 8 L)))) ' q0 a, a- K' }7 C
- (if S
. v6 {& Q: q( @5 P/ b - (command "ERASE" S "") 8 a1 ^5 P5 X5 A9 f" S
- (princ "Layer empty or not a valid layer name.") )
) h9 z4 I l, {9 Q& H - (setq S nil)
l$ s, a! H5 i - (setvar "CMDECHO" ocmd) " X; _8 [, B1 b1 g' n! K
- (princ) )
7 c& `! S- _; o3 _# Z/ B! y - (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))
( ^# y8 q" O( Q - 1 M3 a! k& C. E& b5 [
- ;;; ========================= HET CAC LENH LAYER ===========================
! O9 E; x& C+ k( a, V2 K - " b7 G; @; c* H/ o2 s& r6 u
- ;;;====================== EXTEND NHIEU DOI TUONG ===========================
! k+ g& D3 ^$ I3 T; u) \
! R: Y; g% |+ ^; x+ n( i) L- (Defun C:EET ()
' }& }: p9 m1 g8 q; Y8 G* [ - (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)! _) e, B7 S0 k# B8 h2 K
- (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))
5 y! P* ?" |4 x2 i* U H2 [/ ]6 n - (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))
" @8 Q+ w' P, @( T, @* x# C - (Setq I -1)7 Y/ Y3 y" Y ^5 L: J, z
- (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG "")
$ z& h6 p# K+ V' U3 e( p+ M - (Repeat LEN
+ E" e4 ] k- H& I) J; K4 @ - (Setq I (1+ I))! Z; D7 a1 f, F4 R8 R+ ~8 e
- (Command (List(SSname SS I) SIDE)) ) (Command "")
9 V1 Q! d5 U0 K/ O0 ^5 [. _8 P& ^4 E - (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )* [/ x6 Y3 z) ?
- 7 {3 M) P( O2 L. a4 _) H
- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============1 h9 G- p; P$ y, R
- * k* \: m3 u# V: f5 k {* a7 `$ _
- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)/ o \# y- E' h
- (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND "))6 L/ C: _& K+ V7 d2 J n
- (setvar "osmode" os)
% L8 h/ O; n# d; a- Q - (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))5 ~, }% }. a9 J+ l9 N9 r
- (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))% M7 j) W& F' e: g4 \ W$ ?7 y
" i; ^# m3 G+ y$ l- ;; ================ Change width of polylines =========================
! B. Y7 z/ B$ p f" A3 [0 K& [
7 O$ |# c8 U0 {2 w2 S3 ?) y( W- (DEFUN wp (/ a b sophantu sodem list1 ha:wid): k8 e, R1 D N) d5 Q( e/ O: C
- (PRINC "\n Chon doi tuong can thay doi do day (Width) !")
$ x7 _3 _; x: Y - (setq b (ssget))
$ v, i+ _ E, y0 \0 Z. v8 {1 P - (setq sophantu (sslength b))
4 r# e1 Z# y' S6 a9 j6 l1 p0 G - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
?9 T/ `6 z0 K: \: z. l' f9 i" Q - (princ "\nDo rong polyline <")
# _2 n" y0 V. j- E* B" o$ L! b - (princ ha:wid)
7 Y) Q7 r7 b: V( j; y C - (princ ">: ")# J) T$ W* A; g5 v, n$ _5 Z' B
- (initget 4)
. z5 }' ?# O) O% ~ - (setq ha:wid (getdist))
0 v% U U1 q5 K& q N/ J3 t) t3 u; S$ p - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))
. m3 J' t- J: J - (setvar "tracewid" ha:wid)
7 w( i& {9 ~. w7 @- } - (setvar "cmdecho" 0)
8 A/ |8 ]2 ~3 U# ~ - (setq sodem 0)
* o- R' z/ K" q" [ - (repeat sophantu
0 \, }6 `* e, n# V5 S0 [ - (setq a (ssname b sodem))6 I0 ?' C" m# A- X. \0 k, b: O
- (setq list1 (assoc 0 (entget a)))# G1 V4 F$ c, _% y$ ?
- (cond# c/ F7 v* G- F/ I; D
- ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))
1 u0 t2 ]: m6 O2 o - (PROGN (command "_Pedit" a "" "w" ha:wid "")) ) # D2 g0 `( o, Q
- (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))7 B- j/ j/ d" H3 n+ q) y
- (defun c:wp () (wp)) (defun c:pw () (wp))
9 C- Z6 b5 e# \5 x: ]
6 x7 A) s: y& w- ;; ================ Change radius of circles ==========================
+ |9 [8 x' d. x, B$ S: k" r/ p - , ~8 M! r {* C7 C
- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))
/ t X# E) M: _ L0 O9 A5 ?" U - (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : "))* U- A& P1 p" J
- (IF (/= RD NIL) (PROGN (SETQ I 0) ^" ^" P, e9 P4 \" ~& h
- (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )
) M) Y9 i: d0 W. E8 W. o - (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN$ J/ Q( H; a0 o2 b }( P
- (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )" P9 x$ A! d" o0 @) A0 }# h) n
- L) a2 z4 H0 ?1 P7 @8 ~% [- ;;; ============================== TEXT Hight ===============================
( ]8 e% p D. E/ q% \+ i - 4 L# L8 i( E) H* y$ o
- (defun texthght (/ ent hght)
; P I+ n( d3 C9 _' U - (setvar "cmdecho" 1)
4 e* W( n% m9 h2 V! R - (prompt (strcat"\nSelect text entity with required text height"))( n" F8 ^8 n7 X1 a
- (prompt (strcat"\n.")). J. ^3 Y9 K! T; s
- (setq ent (entget (car (entsel))))2 Z N, s$ H& i( O
- (setq hght (cdr (assoc 40 ent)))
) E, J: R( S% R: m1 h - (prompt (strcat"\nText height now set at "))(prin1 hght)
% L# Y0 _! z$ r1 q2 J- o - (prompt (strcat"\n."))
+ a4 D' x2 |3 r8 Q - (setvar "cmdecho" 1)
' C# C- Z) f$ j& r% ?8 A - (command "DTEXT" PAUSE hght "") )5 v; X% ~) F, H: h; n& B! [; p
- (defun c:teh () (texthght)) (defun c:texthght () (texthght))6 }, W' m# g8 k1 C3 X' n& ^
* k; s! G/ ` P% V- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
% @1 ?( ^' ?7 e% k2 p6 z# Y2 f' ^ - : P: i1 L3 B; H/ x: z7 }% r( j
- (defun c:tuu () (setvar "cmdecho" 0), E R9 g- j, j( A2 ]5 |4 C' h
- (prompt "\nHay chon dong TEXT can gach chan ")
9 @8 k. z( Q. e# l, J5 d8 I/ I/ z - (prompt "\nSelect objects: "). z* q U- `3 C
- (command "select" "au" pause)
( q/ Q) [2 Q7 B: R - (setq sstxt (ssget "p")" M! C$ @! o, G: L0 t! y& ~1 J* h
- sslen (sslength sstxt)
/ x; X% N) X& i4 @ - ctr 0 ). [8 ?1 ~( R9 B7 D
- (command ".undo" "mark")5 @ h/ W# }% l0 L
- (while (< ctr sslen)" {' \( `3 |( }, V) r
- (setq listxt (entget (ssname sstxt ctr))# t; y* o0 T! y: c5 y
- txttxt (cdr (assoc 1 listxt))
- Y% T2 T2 x2 f - enttxt (cdr (assoc 0 listxt)) )
s u! K/ ^. B1 f( [6 T9 v N - (if (= enttxt "TEXT") j. s1 h) X( I: B' [
- (progn: G) \, K3 w" Q
- (setq testxt (substr txttxt 1 3))) z, I4 _4 I7 S9 L
- (if (or (= testxt "%%u") (= testxt "%%U"))
7 A8 K, S2 _. _ - (setq newtxt (substr txttxt 4))( ?1 j z3 z6 J) [% K# l8 U
- (setq newtxt (strcat "%%u" txttxt)) )
3 l' c4 }6 @3 U6 G3 [ - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))' o7 V6 z) ?2 N% c1 f; z8 n, k
- (entmod listxt) ) )
, I$ T3 v8 u" o( ~3 F - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
/ N! x4 Y V" q' p
- X, {3 n/ o$ p* w- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================, r% j' @( E2 B, P1 Q. o6 {
$ ~7 u5 a W O& e% K3 s- (defun c:tob () (setvar "cmdecho" 0)8 O0 q$ f1 [( l6 t
- (prompt "\nHay chon dong TEXT can gach tren dau ")
" v9 }5 b- n9 I3 ]: T7 T; a - (prompt "\nSelect objects: ")0 a: r. S7 u$ h
- (command "select" "au" pause)! K: P) G2 A# x. W4 ~: X3 Q+ @
- (setq sstxt (ssget "p")) n q8 n* o# A9 [; }
- sslen (sslength sstxt)1 G3 `5 B* k$ t4 L" t
- ctr 0 ), G$ w: a% R( L& e4 q& v
- (command ".undo" "mark")
8 O3 Y9 p( C( ` - (while (< ctr sslen)4 h7 m! H o7 a& L' F' X
- (setq listxt (entget (ssname sstxt ctr))
4 D+ y/ E E. U - txttxt (cdr (assoc 1 listxt))8 [- w5 ^1 B' m0 k1 ~* V
- enttxt (cdr (assoc 0 listxt)) )
5 i$ S! ~2 J( o {/ _% _; X: T2 Y - (if (= enttxt "TEXT"), H/ E3 C J( d* U, |" N% ~
- (progn6 l7 U: i8 Y5 f. U5 d0 H3 ^
- (setq testxt (substr txttxt 1 3))
e* s& W$ g9 v - (if (or (= testxt "%%o") (= testxt "%%o"))
# Q/ I7 }- ]# {6 D - (setq newtxt (substr txttxt 4)): k. ~ F: {6 R
- (setq newtxt (strcat "%%o" txttxt)) )7 C6 L1 z2 S: t) ]+ i" ]
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))% O+ {& j/ u. D7 p2 G6 b" Q
- (entmod listxt) ) )
6 z* D* D# S1 t* V+ T e$ W - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))) I& l5 E" |; k) S
- 8 r- T( B" N2 A
- ;;; ========================== Tim & thay the TEXT ==========================1 J" H0 C2 v2 I+ B9 ]3 @4 k
- * `- M3 W& N8 D) N! A: K
- (defun frstring (str search replace / str1 str2 index find)8 p2 K6 D9 v2 c' ?" q1 ^' \
- (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))
9 [$ j) ^# ^# m" G - (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))
5 a# U `" x2 J: i - (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))
" S& H+ H; C9 j# Y- o - (defun hai (/ dial)
" N% S* t& q3 w8 \ - (setq dial (load_dialog "hai.dcl")) ;;goi dialog
' c. z% h9 j( V* F3 P) k8 J: T: M. c - (if (not (new_dialog "find" Dial)) (exit)) ;;
& U: n X% J2 ?$ N: V: I - (mode_tile "find" 2); Tao dau nhac tai hop thoai
' V, D; _6 q- ]2 q3 {8 o/ w2 u - (action_tile "find" "(hai1)"), O3 ]' r+ i* y8 \' Z
- (action_tile "replace" "(hai2)")
# q0 E8 d, w) b% I5 M - (action_tile "cancel" "(done_dialog) (exit)")* g& w! B( ]& g' n$ b
- (start_dialog) # _$ N9 Q1 D/ U( {+ d
- (unload_dialog dial))# R* T1 x: K7 |" ?
- (defun hai1 () (SETQ str1 (get_tile "find")))
y* n3 h. O- b% ]: l - (defun hai2 () (SETQ str2 (get_tile "replace")))
1 ^( s# a) u3 Z" Y - 7 Y5 u) | r: D: H. }0 f
- (defun c:TTT (/ a str str1 str2 newstr taphop sodem)
1 }* u& f' [* K - (hai), I h7 d/ }0 S" ~0 C2 l
- (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le")
' g, G6 H& p4 _5 z! c) b/ m/ H% _$ P - (progn2 M1 Y+ h) N4 n) W' `5 n
- (setq taphop (ssget '((0 . "TEXT"))))6 G! X2 e7 d; t2 j% e
- (setq sodem 0)+ o/ h! {& U9 M, |: E
- (if taphop
$ X/ X) O. ^. k" S W' L - (progn l: w% _# s- [2 F* D9 |8 O
- (Repeat (sslength taphop)' ]" ]* R9 m* l" q: [7 N8 z
- (setq a (entget (ssname taphop sodem)))9 H a& c" `2 [$ C
- (setq str (cdr (assoc 1 a)))
; r8 y/ i Q7 T, e" ` - (setq newstr (frstring str str1 str2))) d3 \9 \" N% i# X
- (setq a (subst (cons 1 newstr) (assoc 1 a) a))/ `; Y$ ~# A" X# V3 B6 z" C) E
- (entmod a)
) H3 ?. j8 U" U* \1 k. ` - (setq sodem (1+ sodem)) ) )9 y J* d0 N u1 Z" q! N
- (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ)); V3 p/ n, k% K
0 a5 i/ l) s2 r- ;;;============================= CHTEXSTY.LSP =============================( f" C2 P1 K) _0 k# w4 g& o9 s+ }
- 9 I4 u& B' B% A; @
- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST ")
6 k' t+ |6 z; d - (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))
) ~; W, P; {* d1 s7 d - (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))- P1 S, E ~) Z, ? u3 U
- (Initget 1) (Setq C (Getstring "\nEnter new text style: "))
5 H2 [) x# t5 ~7 o - (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))
9 m, H6 }$ r1 V+ x( `3 N+ M - (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C))" K4 F' {6 v, E8 d! M; @* G1 g2 `
- (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))& O: c% S0 ?# i0 _/ m
- (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))
H* J0 `" c( G1 o7 P, X - (Initget 1) (Setq A (Strcase (Getstring
, a" ^7 \/ f5 b( u6 \, I - "\nEnter text style to change: "))) (Initget 1)3 s3 L6 ? d2 B
- (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext))5 J' K! L2 u0 A$ J' J
- (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If+ h/ v5 c" X3 ]$ \( E
- (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))$ e) @' d2 c6 p* k+ r8 J1 e9 T/ F
- (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))
) }; V9 o( y; h X1 w* W/ P - (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J))
. X, J6 `( e( w3 Y - (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))
/ O1 m; X5 O @: h6 P
8 j$ u B- N0 z7 I. p0 W" `1 p- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A))
( u5 \3 ~ D& |+ ^( ^8 N$ [3 R - (Setq J (Cdr (Assoc 50 A))))
# |) S% J8 w* t- D& r5 z0 {
, h2 @/ ^ Y0 B3 t4 B- ;;; ============================ DRAW CLOUD =============================
' M" Z! o8 a$ V7 y* j+ J
$ }/ M* n. n9 c; o- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)
" s' T1 n" A Y: l9 ]# N& \3 X - (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")8 C9 U2 i8 U i: g
- (setq la (getvar "clayer"))
, g" X& S3 X9 l1 B( ]# |8 k$ X5 ~ - (command "layer" "m" "cloud" "c" "5" "" "")5 n; D# Q( Y6 C' A' B
- (setq pt1 (getpoint "\nEnter first point of Cloud: "))5 H$ D, E: F1 B* k
- (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))
) B/ v/ u& U: p: W0 T( C - (setq cnt 1 ss (ssadd))0 v3 e# X4 f$ J ?8 R: ?: f/ g1 S
- (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))
7 j `& o+ w1 A/ N/ s - (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75))
% i% O! f7 D c# D9 T - (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))6 q% K, ?' L- O
- (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0)7 _( ^0 s! D7 S, I; ?, p
- (command "pedit" arc1 "y" "j" ss "" "x")$ r* A* {+ f6 A5 d$ F. i
- (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)6 U/ p# o+ b% {, ^6 H
- (command "layer" "s" la "") (setvar "cmdecho" 1) (princ))
; q4 k0 w3 [+ t: d0 Z( } - (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))6 g$ }4 o, ^6 X" ]6 D& e
, |/ j7 d9 u( o& J8 A- ;;; ================================ Funtion-Dulieu ========================
7 r2 o/ M; w9 m1 Z' {2 Z# [ - ;;; ================================ Funtion-Dulieu ========================2 x0 Q% C, A, B! E3 d& P" ~
- ;;; ================================ Funtion-Dulieu ========================
- t7 K1 ~9 r+ `
E- B) p: W+ A* s- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )/ S1 N4 R: Z( G G5 N8 b
- (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh"))
; R. Y' j/ V8 r$ t - (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))
. l5 G6 a* C* r6 d: @ - (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) )
7 T& {$ j" _7 g7 E7 _2 | - (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))- z5 u, r9 Z k0 ~; j8 m
- (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))
) \1 W ?! z; \ - (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))
9 N7 F' T" Y+ l - (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))
2 u! e& R/ u% }; U - (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong))))
5 g5 F' u8 c3 g7 [' [3 u/ b& P - (defun ha:giaodiem (dc1 p1 p2 / hc hc1 diem1) (setq diem1 (vectophap p1 p2)) (setq hc1 (polar dc1 (angle '(0.0 0.0) diem1) 100)) (setq hc (inters p1 p2 dc1 hc1 nil)))
' }5 \4 p+ m9 N( J7 p6 X. c3 v - (defun dtr (dtr) (* pi (/ dtr 180.0))), S# [; ^; N+ |
- (defun rtd (rtd) (* 180.0 (/ rtd pi)))7 _" [! Z2 L3 H$ O8 v
- ) Q6 H9 h' |. S! ]# K0 t. _/ a5 a. Q9 U
- ;;;==============================PROGRAME===============================
& n, e/ Z3 Z% v, @+ X# i; E - ;;;=====================EditDiM Hien Hop Thoai Dep======================
$ S& r4 P$ s! k; Z! N I( f* ^ - ;;;==============================PROGRAME===============================
. d" ]- L$ w) F8 j4 r) c* [' c - ( N4 X, K( G1 \4 D
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
2 J! y& U7 U4 u5 [$ Q - ;;Chay Cung Du Lieu.Lsp & Hai.Dcl* C, M6 C7 J$ e
- (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)
4 A- y1 @0 r& P/ O/ z3 D( | - (Setq Oldlis (Entget (Car Chon)) ^: Q& T( q1 X
- Pt10 (Cdr (Assoc 10 Oldlis))
4 F6 H" L" Y0 E2 x; P/ R% p" x7 w - Pt13 (Cdr (Assoc 13 Oldlis))
: p- B6 _5 f7 H% d/ q - Pt14 (Cdr (Assoc 14 Oldlis))! ^* b1 G8 q( J3 Q: j: x
- St (Cdr (Assoc 70 Oldlis))
7 | f; O y. J - Dimdefault (Cdr (Assoc 1 Oldlis))( g. h, E5 k$ I+ `6 y% U
- )
0 f. e/ y% Q6 e r. j9 X) _9 }( y* T - (Cond0 {/ P, M. _2 C$ y, b: X
- ((Or (= 32 St)(= 0 St)(= 160 St))
1 m- V: `" ^: J0 h% y - (Progn
: O; b: P7 g& Z' R9 E/ m$ D - (Setq Ang (Cdr (Assoc 50 Oldlis))
0 a, M9 j' d1 e& a" k - Pt (Polar Pt13 Ang 500)
. s3 ^. t3 D; E/ W - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)( q3 J9 J/ N/ |0 b6 S; V3 u
- Dis (Rtos (Distance Pt13 Hc))
- z: ^. x0 \! n$ Y3 ] - )& e( Z2 S. b' F# T( u+ h
- )
7 ?$ g1 ^- T6 y2 U4 t - )
, ^' i+ J! |0 [+ p" {' ~ - ((Or (= 33 St)(= 1 St))) [4 c" d+ O# S8 b' }6 O" E
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))' r- C1 r1 G4 i4 r8 E. N( y1 ^
- );;End Cond, f7 y, Q% M9 I- Y- }2 l- Z, I
- (If (= Dimdefault "") (Setq Dimdefault "<>"))8 E1 q [5 I9 e3 U. [ d3 Y
- (Setq Dial (Load_Dialog "Hai.Dcl"))2 _7 E0 h* Z9 s3 T& g4 P/ w# p1 Z
- (If (Not (New_Dialog "eddim" Dial)) (Exit))9 X# ~6 d$ S- |8 d) `
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St)); |: F7 h8 `4 ~
- (Set_Tile "text" Dis))
7 P0 D9 \! m/ J2 \& Z7 I1 p( Z - (Set_Tile "ha:edim" Dimdefault)7 l8 z6 d! q7 F
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai- m$ E% [; s% L# l+ u: {$ A1 ~$ {
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
- I/ B) G& T+ e# K& p! j9 u - (Setq State (Start_Dialog))(Unload_Dialog Dial)
1 a5 u1 k2 D5 e - (If (And Str (= 3 State)): j, F- o- N) a) _1 W
- (Progn, B# w* F- G5 B' z4 Q: m' h; |
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
9 \8 B0 P- `* \; v% F* g) K - )
1 L" y4 R; h# ^! z - (Defun C:EH (/ Chon Name )
" T0 y" }/ N7 B6 l l% Y - (Defun *Error* (Msg)
8 @8 o, W. a- X* b5 A - (Princ "\nerror: ")(Princ Msg)(Princ " ")
+ w2 K9 |8 w9 c* e5 D' ? O7 p1 g7 ? - (Start_Dialog)(Unload_Dialog Dial)
. r m( B7 o- ^' w G S" t+ B! s - (Setq *Error* Olderr)(Princ)
. J+ [) a: l- o0 @ R K4 l, D - )3 J6 l" Q) b( g/ }' i g
- (Setq Olderr *Error*)
: f4 U4 S5 U) Q0 g! S$ x3 `) N% q - (Setq Chon T)1 Q2 Z) U6 V1 E- W2 t1 ~4 p7 z
- (While Chon
7 Y) C2 |5 u& t3 w$ g0 A; Y# Q' c - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))2 _7 [* s( U5 D7 O
- (If Chon' Z$ u% K- w' s8 y
- (Progn" O# U$ P6 A7 `" o
- (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
' M- T1 F1 c/ I5 v6 d - (Cond
5 L# T5 z% N! B6 j/ [ - ((= Name "INSERT")(Command "Ddatte" Chon))- s1 e5 L" _, t/ [# _' v, h% L
- ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
0 r5 a: Z- N% ]7 i w - ((= Name "DIMENSION") (Hai_Edim Chon))) t" t" {! e, G$ z
- )
. U# s. f: N; Y5 e2 W6 L, q, E7 b' h - );End Cond
{' u9 H7 q' }6 R( F - );End Progn: t+ B, a# q& H
- );End While+ D* T& j" X1 o) E! w& o; j$ K- }4 l
- (Setq Olderr *Error*)(Princ)
" {8 ~; L/ [3 k' ^; N. V - );End Program: {. u; w. B- E; w
- ) Z6 A1 f' O) f! t3 T7 C
- ;;;====================DDeditDim=====================
4 ~# N: M, {; x0 c, i* w8 R - ;;;=====================Hai.DCL======================" n% l: N. A3 Q4 U* M0 I0 P
- ;;;====================DDeditDim=====================
+ u. o1 A& i0 `: R. A0 d - . V- b" q2 i3 V, R) V6 H
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh); v: n7 u0 E& v4 r7 j" {+ I" j$ T/ j
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl: O; C: ~9 }* l' c' P! p
- (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)7 a# v6 n5 F* e) R* [
- (Setq Oldlis (Entget (Car Chon))
6 p7 V' Y2 n% f! t, C! j' b - Pt10 (Cdr (Assoc 10 Oldlis))
x. q2 w: u2 G% c) z - Pt13 (Cdr (Assoc 13 Oldlis))
0 Y. |7 h8 s2 q6 w, b1 N. a - Pt14 (Cdr (Assoc 14 Oldlis))8 x A* p9 E3 y7 @6 |1 R
- St (Cdr (Assoc 70 Oldlis))' O$ M' P9 x. p# l" y
- Dimdefault (Cdr (Assoc 1 Oldlis))5 k b- F, Q/ i5 e P& F0 J1 x1 F
- )5 Z1 {+ _+ N7 j% J9 Y
- (Cond* W& _+ N$ C+ q% X! m: c/ U/ C
- ((Or (= 32 St)(= 0 St)(= 160 St))$ g3 L6 h T9 `, q+ P5 }1 a
- (Progn( J |% G& Y, d6 b2 g$ k
- (Setq Ang (Cdr (Assoc 50 Oldlis))$ Z% G) @* H. M3 V. p
- Pt (Polar Pt13 Ang 500)
+ Y" j; z+ O. T3 I: ~# k; S - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)4 b: }6 e. {' S, P4 Y+ d
- Dis (Rtos (Distance Pt13 Hc))2 e1 \- p+ f! a( M9 @
- )% m1 ]6 O% v0 F6 m. Y8 {
- )
+ x1 L" D- j% D2 X. W% N- D& | - )% L# `1 M" N- N$ z
- ((Or (= 33 St)(= 1 St))
8 Z8 C7 ~9 w6 j/ |3 i# X - (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
( ]+ d' Y/ B, R. m - );;End Cond) M; g C7 l' d
- (If (= Dimdefault "") (Setq Dimdefault "<>"))
( D, r) N* C6 E - (Setq Dial (Load_Dialog "Hai.Dcl"))) M8 i5 x! N# k" {
- (If (Not (New_Dialog "eddim" Dial)) (Exit))8 m3 \& u, O" w4 a, F
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))
1 u! y# Q; G7 T/ ^ - (Set_Tile "text" Dis))
% T1 ?+ ~8 z8 L - (Set_Tile "ha:edim" Dimdefault)
+ F4 ^% [& U1 h' M3 ~' D - (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
& @: p0 G4 [+ ? - (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")2 X5 [. I( J9 i; Z
- (Setq State (Start_Dialog))(Unload_Dialog Dial)
3 |6 u" D4 u3 x+ ?* O - (If (And Str (= 3 State))0 `4 R5 c. y7 T6 |- Y X) a( Z
- (Progn9 x W& B* }' O% t
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
/ ^. F' Q" j' w7 j7 E - )
( Q& i" n' \2 L" w; t. k* e/ @0 N4 ] - (Defun C:EH (/ Chon Name )+ y* p/ B3 q2 W7 s' Z/ ]3 L
- / w8 i! E9 V, `6 u! a
- ;;;********************Du Lieu********************8 O) Z2 r- L2 Q' W0 _
+ T9 p. j( |# ?. [- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))( n' ?- n3 Z0 P7 `" Q: ^, \
- (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)
- r# G9 T7 L3 h2 S7 ^ - (If (And (/= Hacat1 Nil) (/= Hacat2 Nil))
- I; p$ H9 b/ y& F - (Progn7 e) Z) ?' [ s& k( F' i
- (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))
' B6 v |3 ], c0 R x - (Setq Chon (Ssget Hacat3))
4 `. S5 y7 o5 M3 \! t7 ?0 H - (Command "Break" Chon Hacat1 Hacat2)- r) [! q R8 ?' c9 ]& B/ e' ~
- )1 M* h# \! H( }3 W0 M/ Z
- )) a- G# e2 T0 b3 S- w8 E2 _
- (Princ)
5 I; ~, q+ @/ t0 Z - )+ `) z6 V- l' Q: `, [' s
- ;;$ P, A! p+ T, q0 c
- (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))2 m* K. G9 J" T+ w' {
- ;;
- a }' Z4 ?5 r/ n2 t1 m: i- k& ^ - (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))9 b- \4 ]( ]. U% H# y
- ;;# h! T8 {9 L# q! L" T6 A9 N
- (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))6 P3 |, ]: N. I
- ;;7 U& i2 v- W" d5 \! }7 p
- (Defun Reinit ()(Setvar "Cmdecho" 1))- M+ Q/ m7 x, u v+ y" g
- ;;" Y: T* ~* r' b4 K4 K# n7 I4 q7 ]
- (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))7 {; j& h5 ?- i' q, R. s) Z
- ;;
2 c0 I# W* L! U3 b8 k9 @ - ;;Cho 2 Diem Tinh Ra Vec To Phap
" e' U$ ]- ~8 [ }( k - (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))1 @! d3 s* X' ~: r& d5 N
- ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang
; {6 M, j6 h% }& v/ O4 s: v3 v! t - ;;Da Biet 2 Diem Thuoc Duong Thang
2 Z2 q# a: t; g - (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2), ?( i; ?1 Y/ [ e
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
! i$ t- y! M1 ]5 T - Hc (Inters P1 P2 Dc1 Dc2 Nil)))
$ ^$ w+ p& A$ x! r$ F p( w - ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang
4 v+ d- `* a' z. A7 D# J - ;;Da Biet 2 Diem Thuoc Duong Thang9 O7 X# d; c0 D7 O# o1 p) N( k
- (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)
+ u! F! D9 w& c) o" K7 L - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)/ D( D; j+ w$ v( V' r
- Hc (Inters P1 P2 Dc1 Dc2 Nil))
& O* s6 H3 o3 I2 Q4 O" e2 O% A& h: r3 L - (Distance Dc1 Hc)7 A5 [. E8 B3 U
- )
& ~, Z. N6 O' Z! k - (load "nhapcua.lsp")
% G9 N4 o: D2 u% p K - (Defun *Error* (Msg)7 i3 F, H' k9 i/ j; a- C! D' G M
- (Princ "\nerror: ")(Princ Msg)(Princ " ")8 Y- M. w( c: h+ O% G6 Q
- (Start_Dialog)(Unload_Dialog Dial) h2 t6 w g& a q) l( N% _
- (Setq *Error* Olderr)(Princ)
% u. q; j. I# Q0 m5 w2 F4 x; r - )9 q. \" ^& V, b3 t0 c
- (Setq Olderr *Error*)
0 U7 e8 H( q4 u$ U. R4 P C - (Setq Chon T)
l) [/ y5 |% d3 U$ J9 h - (While Chon! A5 U; _2 m4 R/ H0 q& |! C; B t% c
- (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
7 S! b! ?7 |; d! ~8 x - (If Chon
. P9 {6 e# e7 |) D - (Progn
) l9 V/ \! t3 D( F# x/ e6 X - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))# X4 |0 f8 [; Q
- (Cond1 u' m0 m! N' s* A0 f
- ((= Name "INSERT")(Command "Ddatte" Chon))0 E( o4 [* h H0 f
- ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))2 N5 K2 b; A$ n$ ~
- ((= Name "DIMENSION") (Hai_Edim Chon))) u# B2 x& f3 v5 P( x
- )- I8 g( Q3 t s) W6 s
- );End Cond
- Y( g* i$ j$ o; M - );End Progn
) ?4 c' ~& I2 F7 h" ` - );End While0 H7 g" I2 d5 s" O4 Z
- (Setq Olderr *Error*)(Princ)) J5 ^ c. P; t# n1 z; e
- );End Program/ M) u) P6 o/ h. A. f" e
" ^- I3 s9 a, _$ C) t( d- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================' h" y9 ~- a6 \% Y
- ;====================================Nhapcua.LSP====================================! ], [5 E* f6 G4 b( h$ |
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================5 O8 o1 u' g/ W* \) Z
- / \* c0 u% b: Z' o4 Y' @
; V2 r5 Q# w$ d* A7 F- 8 V) f" b) G& I
- ;*******************;*******************;*******************;*******************0 a' g2 v' D2 {+ P5 ^
- ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****
+ _. k* X0 z1 j. G% Q7 Z' N - ;*******************;*******************;*******************;*******************, F+ f; y3 J/ C0 K3 `- S) f
- ) m2 _: a- {3 {3 F
- ;VE HINH BINH HANH
; i* E ]" E7 |8 H. ~7 p - 0 R9 V3 I: v1 Q6 [" i2 t& e
- (defun c:binhhanh (/ p1 p2 p3)- O) K8 z' l2 w& L% d. ]" |
- (setq p1 (getpoint "\n Nhap diem thu nhat:"))
9 b3 x% y9 Q4 R/ g. v2 Y1 v - (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))
" ~, B; l$ d' B" y - (setq om (getvar "osmode"))
0 n; H: H* |6 P& L! C/ T) ]2 G - (setvar "osmode" 0)% n v- G8 u, ^& [
- (command "line" p1 p2 "")0 X) N% N1 ]0 {' c; W0 Z: K; Q, |4 e
- (setvar "osmode" om)
( H8 E# C9 K2 z0 f+ ?* V - (setq p3 (getpoint p2 "\n Nhap diem thu ba:"))
9 E/ p& o$ t' Q/ U5 w/ [9 j: p - (setq a (angle p2 p1))
% u4 P! h& |' J+ H% y - (setq d (distance p1 p2))
8 R7 `6 V8 q ?3 A. \+ q4 e - (setq p4 (polar p3 a d))
/ r: v( w3 z' R; l! T( O' z& y5 a - (command "OSNAP" "none")+ ]. V. ^$ i6 S7 A' A
- (command "erase" "l" "")
3 L% F) d5 g+ C6 c+ J( b; s( d8 V - (command "pline" p1 p2 p3 p4 p1 "")( R5 r* P- ^+ l) f
- (setvar "osmode" om)' X6 b/ f4 ?6 W7 R: O. B0 {9 }- ^7 e
- )
$ C8 F, o4 H, H; b$ \/ G! ^9 @
" A" P5 i% {' i! _( z- ;VE LUOI COT/ E8 a, x& C3 n- y% n# v
7 O* G6 R4 |& Z3 l6 r' Q- (defun c:LuoiCot ()7 Y2 E$ A& H5 f4 z
- (setq om (getvar "osmode")); n9 u- _2 t6 B2 n3 _, F1 z
- (setvar "osmode" 0)
% A( t: h. D; ]) y - (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
8 p: V! ^( [- K% p8 q6 S - (setq p0 (getpoint "\n Chon Basic Point:"))6 t6 m6 B% C; d5 a- e
- (setq nc (getreal "\n Nhap chieu ngang cua cot : "))
! m0 [/ H1 }, U8 D' ?# ~ - (setq dc (getreal "\n Nhap chieu doc cua cot : "))# K4 |0 K, V) e/ c, w4 S- `, X
- (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
( K i" y& h8 G - (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
/ N- y' S8 y9 P - (command "rectang" p1 p2)
3 s# `8 F0 n+ G! B - (command "hatch" "solid" "l" "")
+ H9 F8 W9 T4 e6 s - (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))# h0 Z+ L: m) }- l3 c
- (setq nn (getint "\n So buoc cot phuong ngang : "))- u) K9 N# T3 r
- (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
. @0 V- q9 z3 F9 b' s, ~( z - (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )# v( ~4 j/ A/ w% ]' X. c2 x
- (command "select" "w" w1 w2 "")" z7 B' V0 ]6 ~ h$ T; i) r
- (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )9 r' R+ b5 O1 b n# @( [3 F& r/ _; g
- (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")
+ t2 E# i$ K0 x& N2 S - (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))
2 D9 I! `/ f, M# x6 x - (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))
3 L! {( n# T! h$ P# ~ - (command "zoom" "w" w1 w2)) g3 f2 t7 P" ^5 `2 r5 d F
- (command "select" "w" w1 w2 "")
$ d$ i* m4 q' Y* Q' Y) } - (setq bcd (getreal "\n Buoc cot theo phuong doc : "))1 T+ u8 I0 g$ F l
- (setq nd (getint "\n So buoc cot phuong doc : "))0 ]0 L' Y. p" M5 y# o* \- U& Y) Q
- (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )0 p+ W" H k) g N* \$ X9 f
- (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")
$ @% ^. A0 Y! C, k; Z( Q - (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )2 H$ z/ f6 e5 K0 c; d
- (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) )
* K" \; S1 H- D) A. R7 q& Z0 a - (command "zoom" "w" w1 w2): q% R! k. \0 t
- (setvar "osmode" om)
6 P& m; L# d: i( G+ i, r - ), d) ^. ]- G- f, {' x- N" v, ~
% v: b! e6 J3 P! Y+ {- ;VE CUA DI
% E) \4 @& A7 X3 x' i$ S - . i! r8 k2 W9 n0 G2 P) m7 B
- (defun c:cuadi ()
# a" p2 A, {/ `, J! y+ I - (setq om (getvar "osmode"))
! |) ?$ p" @& q0 D2 Q" H, T5 D - (setvar "osmode" 0)& M8 A. B( E/ \% \1 B
( W$ b q, |0 k4 m! o. q- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))8 Z" _! c" ~+ }7 A6 s/ ?- g
- (setq b (getreal "\n Nhap be rong cua : "))
; j7 Y2 V4 N& I, J0 ~( w. Z - (setvar "osmode" om)
( I `, i0 K) k- P5 |! Q - (while (< 0 1)! f; C& g: w) x% B9 Q* ^6 c
- (progn
2 V; }3 [) V$ y$ ~7 @5 o - (setq p0 (getpoint "\n Chon Basic Point:"))4 { n# T( m) J
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:")): }4 v! `; p1 s1 ?% a9 x; O" J
- (command "osnap" "none")
9 s) Z* S+ r! q - (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))
8 a, L9 O& u5 s" p `# v - (setq a1 (angle p0 p1))+ P- Y, r5 Q' { n5 R
- (setq p1 (polar p0 a1 (/ (* hstl b) tile)))2 c! `- C2 i8 \5 k5 ?7 s5 G8 Z
- (setq a2 (angle p0 p2))
6 H0 G( u! R, Q/ E9 R2 z+ Y1 w% Q - (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) ) C" Q9 H/ r7 ? `3 p
- (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")8 T ?2 O% j% f3 u0 H. c& F# S* Z
- (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))
: T7 L5 A7 R) C" G$ s, L+ e" c - (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi)) / T6 x8 @- i, e: C* \9 e9 q
- (setvar "osmode" om)
. g# ^2 V( K4 H8 R- ~" t2 V - ))- C/ ?, q g# T% [. r
- )
& H- Z V Q' O' D; O* A8 H- Y
' k; ^2 V+ m2 A; A6 x- ;VE CUA SO- o. Z4 d4 |( e& q3 ^; r
0 o& Q' Q4 p: F* h- (defun c:cuaso ()1 s O$ o5 c% E3 G- \* z' t
- (setq om (getvar "osmode"))
, W2 e9 r& |; C - (setvar "osmode" 0)
4 y9 Z: r% l1 k6 Y: K+ C - . `/ j k& E8 U' M$ p+ }9 m
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))% D! |( J- ~; n
- (setvar "osmode" om)( @5 `' S% t; x% k2 l
- (while (< 0 1)1 i4 X) @" z, \+ P- R; Z/ ~) v
- (progn
( g2 }4 G! U" |! p; t - (setq p0 (getpoint "\n Chon Basic Point:")), A0 r j/ M% B8 I
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))4 j6 ]; a, C9 b
- (command "osnap" "none")
8 w8 `' u* z0 X3 [ - (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))! a1 [& H% e* g9 v) h
- (setq b (distance p0 p1))
* a! G4 K+ V7 d V( _3 j, j8 } - (if (< b (/ (* hstl 600) tile)) (setq du 50))' ^- ?, z3 r% q X p0 f0 Y
- (if (> b (/ (* hstl 600) tile)) (setq du 150))9 {9 y9 D/ T0 e, |2 F; D
- (if (> b (/ (* hstl 1800) tile)) (setq du 200))
; r" {; e3 Q' L3 j7 L4 _ m; B - (setq a1 (angle p0 p1))
1 b1 `5 _/ V1 ^ N - (setq a2 (angle p0 p2))
' t& m. V. I* g2 V8 u - (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )- o9 W0 h4 [. O0 H
- (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )' l( l( v2 B5 u7 b
- (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )
$ W+ I- r5 u) Q, c - (command "pline" p0 "w" "0" "0" p1 "")' _' I5 H( c) I0 N/ o
- (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")
8 j4 O! C6 Y7 D - (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")+ L( n/ q2 E4 [
- (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile))) ' S) O- A H- Z1 Y& a# d) V, @
- (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")
" S( o% r t" A+ b0 s7 b1 ] - (setvar "osmode" om)
# ^' A- M; Q3 w1 f6 t* w! ? Z6 R - ))- w: u8 r5 L( d1 }& M
- )3 G; F2 d7 S0 V7 C
" D! c% T5 b" f1 W& ^& d- ;;;=== General Utility Functions ===
! x- y7 |2 X& Y6 `" e6 [* Z
^0 {/ U: K. M4 M; Y3 b5 Y- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined 2 b8 U" o# I! @$ |3 ~7 y
- ; ADS function. Now it's a simple AutoLISP function that calls the 7 Q4 {# r, _/ v
- ; built-in function (help). It's only purpose is R12 compatibility. 8 ~$ B, G7 m" |# h Y1 f- A
- ; If you are calling it for anything else, you should almost certainly
! g' M' }! I0 x- F! G - ; be calling (help) instead.
4 R8 C& U. r0 m9 A -
+ r* R$ X( q- u* |3 t - (defun acad_helpdlg (helpfile topic)
. ?0 F8 N7 n& g- } - (help helpfile topic)- Z* Z& d) v2 v% Q0 Y9 ?7 J
- )
7 F+ L3 B4 t/ _ n( F! _" s- ] - & w0 V* f4 y* h/ d) G) B3 X
5 m2 M' a$ t: x- (defun *merr* (msg)6 m6 S7 v' K( `# n3 v, |
- (setq *error* m:err m:err nil)
( P, b" y1 v# h0 T( u - (princ)4 j5 y& S- T; @
- )
7 q' k0 B0 e' b - & q$ ]2 s5 W$ B
- (defun *merrmsg* (msg)
F; r, N, @7 F. r! f6 l9 U" A+ \ - (princ msg)
2 G+ z- |8 E) } - (setq *error* m:err m:err nil)
# v1 @! j) q8 }8 p0 f - (princ)
3 P) @2 ?5 ]5 \1 }3 u. U1 a+ r - )
( |/ j' ~! y* S/ ]& s& G { - 7 a% S6 v& a; p n* A3 h
- ;; Loads the indicated ARX app if it isn't already loaded
& p/ v5 ^0 f% I9 q8 X2 Q3 p% c+ X - ;; returns nil if no load was necessary, else returns the
$ X, V2 v' g9 L6 d3 M3 u - ;; app name if a load occurred.
, Q8 o6 G d. `0 d - (defun verify_arxapp_loaded (app) : F$ r1 L# c: V ^( B' `
- (if (not (loadedp app (arx)))
' s& Y+ n% Z3 e9 B$ z. G+ x: z0 ]6 D - (arxload app f)
2 u: w+ {9 X6 q) ]) w' s - )" V, _: C2 e; ~
- )
1 k1 j% U+ x1 ]) U$ `: f! r
0 V% D A: W; T) p1 v4 F) y- ;; determines if a given application is loaded...% U& ~* V" ~, `4 b, ]" d
- ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....
$ Y. ]9 X; F; D - ;;
; [8 N0 d" o+ U+ ` - ;; app is the filename of the application to check (extension is required)
, S+ c6 u' l; W+ p$ p& Q - ;; appset is a list of applications, (such as (arx) or (ads)
0 M' }( T8 F0 I& L - ;;
6 _5 ?6 x4 c9 K) i - ;; returns T or nil, depending on whether app is present in the appset4 v' C7 C, H+ S A K
- ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX". z, {+ {- k( M* ^( t6 s+ c
- ;; Also, if appset contains members that contain paths, app will right-match4 X( F; e. `+ _+ [0 Z. R
- ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that
6 Q6 C; H. X" w5 `, z5 @$ k - ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."
2 |. [! i9 R% ~ - (defun loadedp (app appset); r. @6 u# \" a- h+ D9 R: \
- (cond (appset (or
" ` d% C9 H. h! w9 D - ;; exactly equal? (ignoring case)
; u' Q- }! y' S [5 k - (= (strcase (car appset))
# ~ d4 A- r# [" C$ @. h - (strcase app))' d% V7 R" |4 b2 d2 x4 A3 h6 M/ y
- ;; right-matching? (ignoring case, but assuming that5 s2 u1 Y2 D' `- [- H% m3 w
- ;; it's a complete filename (with a backslash before it)& P. c5 Z8 R9 k
- (and
: {3 `: R3 t/ a) C, q9 ? - (> (strlen (car appset)) (strlen app))
, c& i2 s# m" W9 ~ - (= (strcase (substr (car appset) 2 s& ?6 I( X: M+ Q; V% a9 @
- (- (strlen (car appset))
; D% A5 Z- {2 S) @ - (strlen app)
" L# a7 R& G6 I8 e8 t2 n - )
9 a$ ]1 A+ s% f9 i5 \$ v2 ] - )
4 I& `4 s% J+ o) M6 J1 k5 X l7 ~' x - )
8 }6 G, I6 J$ {* E' b- a( @ - (strcase (strcat "\\" app))) O; B3 [' Y, j- O
- )
* Y9 {' Y1 r! [5 b7 z ?2 @6 S: W - )
6 Z8 u: m+ P$ B4 O+ J - ;; no match for this entry in appset, try next one....
: P- R# g+ C2 @% f9 P - (loadedp app (cdr appset)) )))# a5 J' _8 i% A6 @1 Y9 ?
- )
; ~; S1 |# u& f1 W6 ? h, r1 G7 |
/ }2 f) w, }. h% u- + H5 X3 [5 ?: n7 s3 I
- ;;; ===== Single-line MText editor =====1 f( N- Q# _5 ?( l! P( l% X
- (defun LispEd (contents / fname dcl state)
& E2 a8 i( x4 @$ o* N& Q# v$ v# o: I - (if (not (setq fname (getvar "program")))
4 M$ B; x! Y7 I - (setq fname "acad")' l4 a, j% y% l3 E2 x3 _) ^
- )
9 \ k* H$ I( K2 |) V; i - (strcat fname ".dcl")
& j+ ^* N3 A g+ F5 x1 o3 | - (setq dcl (load_dialog fname))) u% M+ R% y/ ~ R8 o3 y3 \
- (if (not (new_dialog "LispEd" dcl)) (exit))
: G4 d# j- W" n f* |. d" ] - (set_tile "contents" contents)
1 b- n2 [3 t0 z1 M6 @6 `& W1 D, r- T - (mode_tile "contents" 2)
7 o9 D( s7 N; s: D! [9 t - (action_tile "contents" "(setq contents $value)")3 V; h4 H0 \) R& N3 v
- (action_tile "accept" "(done_dialog 1)")
6 Q1 \3 [; f5 w- r. X/ K - (action_tile "mtexted" "(done_dialog 2)" ) p5 I- h' n6 p6 i' ?% ]
- (setq state (start_dialog))
) ~4 I' J* f5 n( f$ G - (unload_dialog dcl)0 r# \ O, ~$ m8 q Z
- (cond8 o/ j: h) _+ Q
- ((= state 1) contents)/ f, r3 y9 E2 \$ O: g
- ((= state 2) -1)
' D2 Q6 v/ ?0 t9 D4 W+ I$ T2 t8 R - (t 0)
' W7 m& O$ _1 t( S, t5 I& z) x6 N - )4 Q- F3 A. l [
- )9 ?6 j! J; S$ \ Z
- ; H! c) C/ m; x
- ;;; ===== Discontinued commands =====, K5 C, C1 w# n2 w1 y9 W
- (defun c:ddselect(/ cmdecho-save)
* N( R) ^, G, l- N: n" G& R - (setq cmdecho-save (getvar "CMDECHO"))
- y7 s4 W' _* W T - (setvar "CMDECHO" 0)) J9 `. I9 s( y& s( c
- (command "._+options" 7)- V6 V. ^, y; ~
- (setvar "CMDECHO" cmdecho-save), V" L) e0 B: G4 e7 L! T
- (princ)3 {' `9 N( I5 W
- )0 e) F. U1 f6 ?2 I! R' E
- ( d% ?: |$ ]* ^$ \
- (defun c:ddgrips(/ cmdecho-save)8 R; p. j4 |( e' |4 @* r
- (setq cmdecho-save (getvar "CMDECHO"))# y" Z2 ^0 b: [% i9 Z
- (setvar "CMDECHO" 0)
0 A/ Z2 k" R( K - (command "._+options" 7)
# m3 C; C$ l" u% @5 ?( R! p - (setvar "CMDECHO" cmdecho-save)$ {& m D3 f1 \0 | i. _$ |6 Y
- (princ)
2 n$ U: |+ U; d+ L3 ` - )
, L$ W2 F/ a4 R: V, i6 W; K! n+ c
5 q0 K9 }# a2 k t# }9 V! E- [- (defun c:gifin ()
4 ]3 |9 s, F; L: N+ i* T, E - (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
6 z) |9 J) \# T - (princ)
3 ?- ^ ^0 F3 [ - )
/ n! d& v& r" t0 u2 }
* G! Z7 B8 a3 N8 F' \- (defun c:pcxin ()" c; b0 z* Y* K' P- L' E5 a. Y
- (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
5 m1 v' H6 f) X2 ]& w C, w - (princ)
: j3 Z6 H0 c2 e7 ]8 J - )
* R5 o+ b: h4 }! k. h, n. w- u - 6 X6 X: @! `$ n; b3 x
- (defun c:tiffin ()5 A. X6 Z8 u* U9 T' e5 D
- (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")& b4 b: w! h( ?! c h: R
- (princ)5 ?( x; U; r" I) I8 }5 ]5 e
- )
/ L d' Q- K% @! z
" m1 h+ m# S) @- (defun c:ddemodes()3 A. W/ B$ p& |/ x' ~( \
- (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.")/ A+ Y" F9 f0 K+ v
- (princ)
! s; h* C( S7 q/ n - )
8 T' w0 J: P3 v3 C0 t6 z - ) K+ W5 U* x% w" f* b6 p8 {. W H
- (defun c:ddrmodes(/ cmdecho-save)# f2 _3 o E1 V, q
- (setq cmdecho-save (getvar "CMDECHO"))2 l+ }4 w- ~: H9 o& W0 y D
- (setvar "CMDECHO" 0) g6 A6 N. M7 }1 `/ C& D0 z
- (command "._+dsettings" 0): O! u' q4 ~1 w- J
- (setvar "CMDECHO" cmdecho-save)$ q; u" w& e' s7 R, q% r- E
- (princ)
8 [* R+ n+ F/ d+ T: T% L* S( S - )
- \: o6 O6 [- O# d5 F: S
: L# ]& M( S. L0 N/ D6 h- ;; HPCONFIG
, j+ X; N! _) A* ?: {% q - (defun c:hpconfig (/ hlppath): K2 h! C2 ^6 X' c
- (if (not (setq hlppath (findfile "acad.hlp")))
& l0 p8 b; V8 E# c$ M5 o - (setq hlppath ""))
( j2 Y+ a% z/ Z# g8 | - (help hlppath "hpconfig")$ S" A0 y- _5 g* J) A' P9 W
- (princ)/ z1 z1 d& ]8 B, @- g! d
- )
3 Q, ^ ]9 \- a' D, f, N" g9 k* T - 5 v, _- u) I$ t+ W2 z+ K2 V
- ;; OCECONFIG' `/ u! e/ \9 a% `* r5 u
- (defun c:oceconfig (/ hlppath)4 j6 C8 `2 ?( }4 V
- (if (not (setq hlppath (findfile "acad.hlp")))
7 q" n' A1 Z2 e1 K: V% q8 { - (setq hlppath "")): _7 ^' x9 N0 N, {" |$ {) |) c
- (help hlppath "oceconfig")
$ n9 L) n& }- B( P# V+ r - (princ)
; g; l. F9 F: q d# o; X - )6 Z& N& ]4 j# E6 z3 @# T# s+ D
- . j) {( {, K+ Z: k" } O# B7 c
- ;; CCONFIG, q. J2 r+ ]: H3 d+ ^% Q, r+ i1 ]
- (defun c:cconfig (/ hlppath)" g+ q9 S: H' w
- (if (not (setq hlppath (findfile "acad.hlp")))3 l0 T" n8 X% ]8 y" V- q$ r3 c
- (setq hlppath ""))
, W: k: |# A* X9 a# ~3 K: D1 Y - (help hlppath "cconfig")
/ G. f1 F, t8 ~2 [% a - (princ)
6 [2 I R4 H ]3 t2 [# z6 z% D - )
- w7 _ ]3 D: y
, d3 X+ s2 J5 s c' y- ;;; ===== AutoLoad =====
: s6 J0 d/ b, ?) Z6 K @8 P
5 |+ @. M1 ] l+ S' T- ;;; Check list of loaded <apptype> applications ("ads" or "arx")
: f5 j0 }& k9 o0 \ S - ;;; for the name of a certain appplication <appname>.4 \7 O7 g' v/ l& O
- ;;; Returns T if <appname> is loaded.
6 \$ v. `2 ^& F - 3 y2 i* A' C* O2 P
- (defun ai_AppLoaded (appname apptype)9 ^5 K% o( v8 k
- (apply 'or, ~; f6 e+ v6 z% M
- (mapcar
" t8 q4 e0 {7 Y( e - '(lambda (j)' r$ f+ | T: J6 {- S
- (wcmatch
' K( K' f+ K# i* s2 D9 o; l( G - (strcase j T)
, `. B& V" ]" o4 J/ X - (strcase (strcat "*" appname "*") T)
) h) z* F% U7 l( Y - ) & v; B3 P1 ^. h
- )6 W: N- q1 Z, l! N1 C3 Z
- (eval (list (read apptype))). t' _* R; j1 X7 c7 z: R
- )2 f- f8 \* m7 S5 z$ F0 ]4 A
- )
n- L, n, X: L$ m0 M- F - )% S" o' j) {5 O3 I- g% p
- / [8 M- g$ G# |7 v8 s
- ;;
( @- i# z# a% ^8 T' L - ;; Native Rx commands cannot be called with the "C:" syntax. They must
7 p! _& T( J Y0 x - ;; be called via (command). Therefore they require their own autoload 8 e( J4 S4 N% D2 q# X% j8 \% Q# L2 Y; e) M
- ;; command.( K8 J" Y F- g; ]- s( O) {, A
% _9 {' L( f, m' A" b& G- (defun autonativeload (app cmdliste / qapp)! O; E0 O& l! P: y1 S. z
- (setq qapp (strcat "\"" app "\""))0 U: w' E r' D# O& M$ k
- (setq initstring "\nInitializing...")
c# T, f6 z O, ?9 ^# n! Z, X - (mapcar' |8 _0 S! p& D- M4 h% n8 a
- '(lambda (cmd / nom_cmd native_cmd)& z I4 K1 t" f; Y2 a
- (progn7 a ^2 }( V: u' a
- (setq nom_cmd (strcat "C:" cmd))6 [) Y: l1 m; t# U
- (setq native_cmd (strcat "\"_" cmd "\"")): w8 e6 Z5 x1 j2 a% d4 w( B: B! h* r
- (if (not (eval (read nom_cmd)))
# q5 c! [* G, W/ s3 i k$ Y - (eval
- b5 J. O! F# o7 J - (read (strcat- b% Y; E! G _7 H
- "(defun " nom_cmd "()"9 u5 n7 t3 Z: t1 w
- "(setq m:err *error* *error* *merrmsg*)"& p& n. b: r/ h
- "(if (ai_ffile " qapp ")"5 d* F9 P1 n" W0 J
- "(progn (princ initstring)"
2 ^, X; V/ k% U4 F - "(_autoarxload " qapp ") (command " native_cmd "))"6 [% L8 |4 Q: w: w" M: x
- "(ai_nofile " qapp "))"
+ S0 U8 g0 H1 a1 z( M9 @ - "(setq *error* m:err m:err nil))" J" D8 r# J3 Q- Z9 u" m2 k
- ))))))
; X# r/ `2 I! D - cmdliste)
' x8 U' \/ g8 M" X, Q - nil
& D8 u; r4 ?2 t e8 n) }. X' Z% k - )
" k0 i+ y1 i6 }5 T7 h0 d- Q" K
1 k/ c# J% ]. R4 V7 U6 R J- (defun _autoqload (quoi app cmdliste / qapp symnam)9 ~+ a5 A7 s* r0 m' A% H
- (setq qapp (strcat "\"" app "\""))
) y& F; T* F; m - (setq initstring "\nInitializing...")
! R% _' ]5 c$ P$ ]# Z- J% B- V" T - (mapcar0 f( g4 h! W: m" V# V1 X2 R; `: q# E, p+ v
- '(lambda (cmd / nom_cmd)/ W4 F$ O# x9 f
- (progn
- t8 ]+ f' \/ o - (setq nom_cmd (strcat "C:" cmd))
: R# ]0 Q- B! {& y - (if (not (eval (read nom_cmd)))% G' p e1 ~" ~ h: ^/ n
- (eval
# |7 I% _2 q% ?. F+ @- |6 p - (read (strcat
4 @, A, Q+ ]9 I5 J5 K' l - "(defun " nom_cmd "( / rtn)"$ ~$ J( G0 t* Z% S; x* q; E
- "(setq m:err *error* *error* *merrmsg*)": H# r0 w& ~4 |$ o3 ]& A+ e$ |: Y
- "(if (ai_ffile " qapp ")"
) ?3 Q3 C: ~8 g4 l5 |, W% G - "(progn (princ initstring)"
. G( s/ ^3 S& ~3 P/ g: s$ p - "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"2 ^: ^% F( h/ D9 m
- "(ai_nofile " qapp "))"$ B. J0 s5 H o
- "(setq *error* m:err m:err nil)"
1 u) [# T: j5 T+ R - "rtn)"
3 y$ z& x! b0 b - ))))))
9 _* ~3 ~ ]* K- i: }3 a - cmdliste)) g7 u8 E: W+ y) L
- nil8 X; [+ O: ?; x! M9 z& p
- )
. A; \9 i# w- I, Y- E: ?2 ] - 1 [+ m; z* ?# Z
- (defun autoload (app cmdliste)
, E' F/ r* C' c2 _. g4 h* i - (_autoqload "" app cmdliste) [; x8 M/ r# @* o- w
- )
5 @& M9 R1 P% R1 R+ W2 I0 S - " U I' Q* ?" @4 @ P# u2 X4 Z
- (defun autoarxload (app cmdliste)
`/ H( T. }/ h# ~) s - (_autoqload "arx" app cmdliste)' E2 E* v, U0 N
- )
( D- l( J) ]7 j- C' a# [$ E' ]
7 C* b, x* V3 G, M/ ~- (defun autoarxacedload (app cmdliste / qapp symnam)
. ^! Y6 x; ?) }1 z3 H - (setq qapp (strcat "\"" app "\""))2 [9 n5 Q y1 s( O+ F* h
- (setq initstring "\nInitializing...")
9 L0 y5 m1 |3 e1 v; p3 [' i/ ~ - (mapcar
% B4 `+ g" U' M7 y( [ - '(lambda (cmd / nom_cmd)
, {; j) V& `; q7 V- Q, V' K: k - (progn
" k! n9 x& y2 Y1 f- H9 Y- j) o% \* a - (setq nom_cmd (strcat "C:" cmd))
! a8 i6 }3 l, M, _4 K. L - (if (not (eval (read nom_cmd)))
& B# p* F) f4 J& _9 N - (eval9 Z3 N+ Q2 H" S/ n) Z! x3 I
- (read (strcat
) C6 E. j" w$ {6 | - "(defun " nom_cmd "( / oldcmdecho)"& A/ T0 B& r& y5 s4 J" S
- "(setq m:err *error* *error* *merrmsg*)"8 l, g" j9 B% B) i! K) b& V7 P
- "(if (ai_ffile " qapp ")"# L7 S" h- A8 Q( Z9 K
- "(progn (princ initstring)"8 Y) N: O9 s7 i1 ~/ F# ?" W! z( ?
- "(_autoarxload " qapp ")"
8 o( J( t* w- i0 N) {, p5 M6 q - "(setq oldcmdecho (getvar \"CMDECHO\"))"+ c+ [9 Z) Z. b. g! ]
- "(setvar \"CMDECHO\" 0)" A9 e3 O# y( ~
- "(command " "\"_" cmd "\"" ")"
7 Z" }) c9 e* L4 F5 m - "(setvar \"CMDECHO\" oldcmdecho))"4 V# y: J- C2 G k* M
- "(ai_nofile " qapp "))"7 ~+ a: ?7 F) B4 F0 f' n
- "(setq *error* m:err m:err nil)"
" A' H" r1 ?: d! f1 u2 } - "(princ))"4 o! v* @* F* c. _5 D
- ))))))
. K* [, f; T0 G6 n - cmdliste). R5 v( R& B$ B- U7 w) X+ W; U
- nil) ?' d& ^8 Q- }; w8 c% C. e& \
- )3 x9 L- R- B6 y. Y. X5 B E$ e
/ F* a/ K9 g# d4 M- X* r- K z( _- (defun _autoload (app)
' Y* D p3 ]2 {: n* @1 p - ; (princ "Auto:(load ") (princ app) (princ ")") (terpri)
# b( }" ^/ h- H/ [ - (load app)
# O/ N& U3 o4 A T - )
: f, }% Y! P1 { U7 S+ I) W* O. ^ - 5 G* X1 G4 P/ \. Q) V
- (defun _autoarxload (app)
8 x; e8 }+ a9 Y5 |. t0 F O - ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri)
$ P8 I7 H6 Z4 F9 J F' L% D - (arxload app)
% n3 ]- _# s; ~ - )
& f8 T- d8 u! m. Y) o
% E- k/ ]! L ~6 S8 c/ _- (defun ai_ffile (app)4 b0 O x9 h _* G% ^
- (or (findfile (strcat app ".lsp"))
# E$ U4 E0 U% o& W9 a) { - (findfile (strcat app ".exp"))
( o# N3 [% [3 P7 \* J( I9 I' B - (findfile (strcat app ".exe")): z1 O/ A% p0 B j3 T& X( a
- (findfile (strcat app ".arx")). h7 m) O l: }/ z0 w- Q
- (findfile app)
; F1 h8 M# C# O! q- N - )
5 ?+ ~1 u( N1 B! V - ): K6 S1 {, C) K- P o+ H) R" J1 R
0 k; x& g: E) o+ R# L0 ?+ d$ Q* S- (defun ai_nofile (filename)1 X& }/ r; v0 E: M' i0 P$ E. O' \
- (princ7 Z8 q) k Y) G+ G7 n) U8 a
- (strcat "\nThe file "
! U; e1 w" s6 I, A3 Z* P" k - filename
; h" ~7 |$ X* u - "(.lsp/.exe/.arx) was not found in your search path folders."+ P& j/ j0 n1 w
- )2 ` s4 P. I0 T1 X) z3 ?% F
- )
- E0 I# `1 I6 i5 N8 w - (princ "\nCheck the installation of the support files and try again.")" Q! U+ }9 S- d5 L
- (princ)( p$ e7 l- S1 H: ]
- )
& X( j; b. a$ B - ( r, V, L2 l5 k; e. \+ T! a
- 5 h I/ t; i! W) G3 G% }! h- ]
- ;;;===== AutoLoad LISP Applications =====
Y; ~# h* U+ [0 j# F+ w) d3 Q# d - ; Set help for those apps with a command line interface
) W8 p! z; E# E4 N5 |8 E - 7 _' c+ c6 ?( k
- (autoload "edge" '("edge"))
1 l& b; Z* k! `0 r" Q& M; g- } - (setfunhelp "C:edge" "" "edge")
7 m8 e1 C! L6 b& @9 {3 m1 |
: |; v% F/ k% \' J' p- (autoload "filter" '("filter " "filter"))7 g' \9 q, k- Z5 w
- ; y, ]# T4 @7 K6 z Y
- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"9 f9 Q7 z4 Y. B. S" ~- ]
- "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")3 m( v: u5 l$ n
- )9 M( }7 g/ m6 T9 K. ]) [2 N& Y
- (setfunhelp "C:3d" "" "3d")
) l- _% Z" }9 v3 Q) [5 m5 D - (setfunhelp "C:ai_box" "" "3d_box")
/ [% x: n4 S5 e8 z3 h% p0 e* h - (setfunhelp "C:ai_pyramid" "" "3d_pyramid")5 d) `2 l9 l5 _8 E- l% `; ~
- (setfunhelp "C:ai__wedge" "" "3d_wedge")! T0 L A. X8 _
- (setfunhelp "C:ai_dome" "" "3d_dome")* N+ {* o7 y$ a
- (setfunhelp "C:ai_mesh" "" "3d_mesh")
# ]0 u2 A: c2 J: _$ B1 h7 e+ p - (setfunhelp "C:ai_sphere" "" "3d_sphere")
% Y- o: ?. A2 g- N7 ^ - (setfunhelp "C:ai_cone" "" "3d_cone")
?! @: }' m4 p - (setfunhelp "C:ai_torus" "" "3d_torus")
8 g; Z# x2 s6 z j7 R - (setfunhelp "C:ai_dish" "" "3d_dish")
! {) ~4 [ @* j. B" V$ x& E D
' r% i1 U9 d$ c- (autoload "3darray" '("3darray"))
- J1 ]5 B# }! n- K' n - (setfunhelp "C:3darray" "" "3darray")+ ^6 h# f( X/ }0 J4 J7 w
0 I3 }1 K! k; s7 Q+ Q, U9 A- (autoload "ddvpoint" '("ddvpoint"))2 G6 K4 z, s) u1 ^! R( n
5 E. i7 ^# L# F- `- (autoload "mvsetup" '("mvsetup"))9 r- H% \- s" e% D) o1 K
- (setfunhelp "C:mvsetup" "" "mvsetup")- ^* e5 T& }3 e# [* D
- " ]! S7 ^# X4 ]2 V
- (autoload "ddptype" '("ddptype"))
L9 [9 m( U+ `- @ - + K9 z& [) c2 |1 P5 n
- (autoload "attredef" '("attredef"))( F6 @6 |5 f7 M% E! S4 }
- (setfunhelp "C:attredef" "" "attredef")
- Z3 W/ f/ b# m
- o) Z9 F) E" @7 i" L4 s# Y- (autoload "xplode" '("xp" "xplode"))' ]) E+ g5 R2 i) ?& j7 d2 ?$ J! l
- (setfunhelp "C:xplode" "" "xplode")1 M8 B# W7 c) p! r3 t& K3 S
5 V. d F; L4 j6 L Y- D- (autoload "tutorial" '("tutdemo" "tutclear"$ B+ O: G" I0 p7 t( j; i
- "tutdemo" " r% { r" V% `/ X
- "tutclear"))
. y/ T& P6 q9 [$ w8 A& C
. V8 M4 ~8 F5 G" J* _- ;;;===== AutoArxLoad Arx Applications =====
; @0 k. p2 o8 v% J, A. N - ( h& a! s8 G! e( x& s' ~
- (autoarxload "geomcal" '("cal" "cal"))# g& i- P- |) |4 M* S
- . b% s; }, N9 C
- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align"
# `4 g, ], C! `" k - "mirror3d" "rotate3d"
3 f$ U8 z i: \4 a @: k6 o - "align"))4 ^ o: Z7 T+ X* E
- ( r, L; m) P/ f+ k0 m2 n3 s v
8 T$ `" r! Z, m9 _9 H+ a- ;;; ===== Double byte character handling functions =====
; ]. D2 S, Y: } - - C9 d! o: u5 R) J
- (defun is_lead_byte(code)
* t0 U7 l4 P. ]' l: t& O5 f - (setq asia_cd (getvar "dwgcodepage")) h7 i' A0 f: _* V5 d4 j8 m, x
- (cond4 F5 W; ]4 R6 F- t- l
- ( (or (= asia_cd "dos932")
( c: N: \8 T: i: I; Q: ] - (= asia_cd "ANSI_932")
, X5 k8 Y+ s, X* T. c- | - )& _3 ]" C3 l' ]5 A% K3 B
- (or (and (<= 129 code) (<= code 159))
g! C; @9 P! J4 z - (and (<= 224 code) (<= code 252))
) Y0 b& m7 X+ H - )
5 {/ z/ y* P8 |/ u" f1 q8 o - )
$ P" z/ c6 p/ w6 k/ B. G% | - ( (or (= asia_cd "big5")- f8 t s5 E! e
- (= asia_cd "ANSI_950")
$ L+ L% m3 n% T, M" E& e% b - )
* ^7 d% R9 ^* x) N8 d6 G - (and (<= 129 code) (<= code 254))
0 V" i+ F2 _& o6 ~! Q I, T$ |" `0 W* b - )
; [! a4 S0 H1 J6 J - ( (or (= asia_cd "gb2312"): T% s. C: @8 J( p; y% D& Y
- (= asia_cd "ANSI_936")
0 _ ^* H5 d: v5 [4 E) x$ g - )
+ z( h5 q, C4 n0 d7 @4 c0 ~ - (and (<= 161 code) (<= code 254))
6 M) B4 e% r2 M9 P - )
7 g5 a4 }: b8 X2 R5 y2 v2 p7 Y' m - ( (or (= asia_cd "johab")
; ^1 r* X8 w" B4 o5 d - (= asia_cd "ANSI_1361")- {7 Y1 Z' `; ?' G
- )
! o$ _7 n( h$ \( J - (and (<= 132 code) (<= code 211))% m9 q- I _3 R1 J! c
- )
! v2 w- K$ q/ t# x- e1 P - ( (or (= asia_cd "ksc5601")
: h( p3 v \3 X - (= asia_cd "ANSI_949")
. ^% P3 F# _8 O' Z% S3 F/ v+ O - )
+ [! O4 \6 F, \. \ e - (and (<= 129 code) (<= code 254))
: f7 @% {/ |. q - )9 j3 G/ a5 J2 c, {' h3 X3 z9 c f
- )1 z5 j v& q9 S+ d
- )
. O) V# ^9 A$ {# N/ |0 U" B1 ^
& p4 Y6 g7 x0 |* T( ~/ F- ;;; ====================================================) g1 }$ s5 z/ P# ?& A2 M
- u0 _0 H: @* c9 M
- # S$ c, u9 v, A& U
- ;;;& p% o7 [" \* h: \
- ;;; FITSTR2LEN# Q; _& `0 f7 E$ ^6 ^$ y, L6 l% w" E
- ;;;
* o# C j. Z3 v# B. Z P - ;;; Truncates the given string to the given length.
( z5 W7 ~6 f' l' U( q - ;;; This function should be used to fit symbol table names, that* F6 h( ^6 U4 \
- ;;; may turn into \U+ sequences into a given size to be displayed
- @* p3 u( F" `1 @1 Q1 h( X - ;;; inside a dialog box." ]9 I3 d* X$ [# \: D5 O
- ;;;
* G# k! ?" g- j6 F# U1 G% y - ;;; Ex: the following string:
0 \) q7 S; n0 T5 a5 e. y0 C3 N) D" ^ - ;;;0 i5 n+ i) p1 P# h3 E4 v
- ;;; "This is a long string that will not fit into a 32 character static text box."
5 \1 w, i' V8 c/ h% H - ;;;) t& V: ^9 _( N& I+ b) v) W9 P
- ;;; would display as a 32 character long string as follows:
2 N* Q# I! n: L% X3 Z - ;;;
. n0 ?8 X/ V( F# Q7 C9 f - ;;; "This is a long...tatic text box."* {* o/ b1 l+ R0 G/ L
- ;;;
5 x+ Q% @9 j. r ]% w
4 ?7 X1 \6 I, L' d4 l1 A- (defun fitstr2len (str1 maxlen)6 j" L8 q' h5 P
9 |8 f: V2 Z- } [- D- v" n- ;;; initialize internals# m7 T! i# D# X! R: u) f& S
- (setq tmpstr str1)
& t4 y# \+ z" n" j9 B% V0 c+ o - (setq len (strlen tmpstr))0 T5 [2 F9 _1 m" I& b7 H, `
' Y, v/ h/ c- V2 O- (if (> len maxlen)
Y; J W8 ?- M$ Q( i+ O - (progn
: `* B S2 `- `3 Y/ v. y - (setq maxlen2 (/ maxlen 2))
0 J2 e8 _7 w6 d: ^ - (if (> maxlen (* maxlen2 2))2 E" Z' B* [6 q% }+ V) t
- (setq maxlen2 (- maxlen2 1))
/ }! u" N$ ]- `5 Q" g - )
+ b1 w9 }( c) o/ U" W - (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1))! K- w/ ?2 Y$ _: J
- (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))
0 J- a& D" T* \( q1 Z7 o% Q! y - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))/ S9 c' B D! u+ F( m
- )
3 s; h8 P/ r& e4 z# ] - (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))% l# X/ g. d8 `8 q( `' `* X
- (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))
( K* [9 v% q. ~3 O9 E2 j5 o1 W - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))
5 [7 }9 B6 p3 [1 }, R7 p! C# r$ } - ): N" [& Q/ T% d0 x- w+ Y
- (setq str2 (strcat tmpstr1 "..." tmpstr2))
- R3 ]3 Z/ G3 `+ m" i7 f - ) ;;; progn' j$ t+ E/ R7 _0 ~/ s' p* i. W1 f
- (setq str2 (strcat tmpstr))
- c3 |+ |. D, e+ K4 b) I0 l* o - ) ;;; if R+ C9 [( E* O% C" y
- ) ;;; defun
+ z( U8 O+ a' _# m1 i* {! l* I - & |& r0 d2 |7 E" U3 T
( k: `% t& q9 x8 G5 D- ;;;
( a6 k- Z5 I7 r; k4 H* z - ;;; If the first object in a selection set has an attached URL
, O4 D& U5 [0 s9 F3 J - ;;; Then launch browser and point to the URL.
% Y- Z* ]. D) ~- _) O( @7 V) y1 B - ;;; Called by the Grips Cursor Menu( x& J/ ?3 N' m ]; c2 T
- ;;;
# y6 N- |: _3 X
2 z) S6 V+ f: i5 U x( D/ }- (defun C:gotourl ( / ssurl url i)
( j) `2 T# [; O: Q* L: F - (setq m:err *error* *error* *merrmsg* i 0)
3 i! ?4 [' l8 q( L: E( | - * U" u2 Q( h8 s7 X) j% k0 T
- ; if some objects are not already pickfirst selected, & y5 i9 [2 h6 i/ ?
- ; then allow objects to be selected
" I; l; V5 f, |& A/ u - ' f$ S q! M; f$ e
- (if (not (setq ssurl (ssget "_I")))4 [6 |9 Q; S5 l/ B7 O3 S
- (setq ssurl (ssget))8 e2 I( d1 W( g d% s
- )- |& @0 h; ^/ f" r
- $ q- y# n- i" g) T% U: ~
- ; if geturl LISP command not found then load arx application! O" _& f c% B, z4 t
- 7 o0 a6 r$ {3 z& d: d/ ?5 T+ N: D
- (if (/= (type geturl) 'EXRXSUBR)
$ @. S2 C% _$ i3 Y# v. J - (arxload "dwfout")) e: R! b7 H, o. c$ L# i! s& r
- )& z$ r! ~/ Y8 X9 L/ V
-
( w/ M. J5 C8 p6 z. n+ T, ^! o - ; Search list for first object with an URL
2 j) z! p/ f3 Q' H; t# B4 K - (while (and (= url nil) (< i (sslength ssurl)))
8 v2 M% ^5 W9 W, V! W3 V( M" X - (setq url (geturl (ssname ssurl i))
. A! K1 s3 }7 d0 V4 A' f - i (1+ i))& O% }0 ?9 m# J. T+ N
- )
5 a2 @1 [+ {% I: m" \1 ]
' N1 U* r: y( O u- ; If an URL has be found, open browser and point to URL* l7 C! ^ a' Y
- (if (= url nil)
- B$ v+ O& z& I& H - (alert "No Universal Resource Locator associated with the object.")
7 h6 R0 {( b9 ` {0 y( z - (command "_.browser" url)
6 W% U# V- A2 s, l7 Z9 k/ }% }+ v - )7 ~+ ~' f4 L1 {% s& g$ E
9 N0 l, ~, S7 h, h* R- (setq *error* m:err m:err nil); L8 t5 c4 y5 K1 U
- (princ)' J2 |& d1 a9 D# r+ I* v2 I
8 u8 J9 Y2 |8 o% a1 f$ h- )
8 k( m2 p2 K- u, C8 y
8 N- J# A5 z$ } z; }- ;; Used by the import dialog to silently load a 3ds file: z( D9 }; D5 F* f W6 U. {7 N
- (defun import3ds (filename / filedia_old render)2 a$ \# B( q- p) m9 p
- ;; Load Render if not loaded. o. {% M1 B" g+ e6 B
- (setq render (findfile "acRender.arx"))
- K0 U, T9 h1 J0 Z* { - (if render8 X0 f! J$ C. A# ?. t
- (verify_arxapp_loaded render)
1 h+ x4 [' T& U/ t; y+ K p4 t& ~ - (quit)
. u0 w4 y: F2 I& o* t - )
k4 ?5 Z) V$ L - 4 s6 m$ e& G$ [8 r
- ;; Save current filedia & cmdecho setting.6 c6 d$ }3 G$ Z9 Q# y$ O* I, s3 {
- (setq filedia-save (getvar "FILEDIA"))
( d$ [0 }+ \( C9 `* M* ^ - (setq cmdecho-save (getvar "CMDECHO"))
; J# T! o+ S5 d7 } \( a/ o - (setvar "FILEDIA" 0)1 u4 K7 }7 r. A
- (setvar "CMDECHO" 0)
/ |! U& W+ n8 q, o m/ ]6 O/ B
' c& e: X2 l7 d5 f0 {4 a" K- ;; Call 3DSIN and pass in filename.
9 w2 C7 V1 r; T! c" D# s - (c:3dsin 1 filename)1 a% Q% c# g4 g$ i7 @- O: {
9 p _! Q/ V+ I0 a( ]/ X- ;; Reset filedia & cmdecho
9 Z7 u! w8 a! V" ?$ ~/ Q - (setvar "FILEDIA" filedia-save)
8 P0 ?2 S0 w. I - (setvar "CMDECHO" cmdecho-save)
: Y, U$ d" N T - (princ)7 Y; [8 g) O* G$ P, ^4 w8 o: S0 b
- )
( Y, V% f, w7 l - 1 U6 E8 B2 @ W6 K% v
: P; y( ?/ Q3 O" o4 p- ;;;=== Menu Functions ======================================
, ~$ S* a- g* e$ n* \5 |2 @ ^ - , P6 ^$ j5 j0 V
- (defun ai_rootmenus ()7 e$ i8 m8 f" d1 z( T; i- H
- (setq T_MENU 0)
+ d" x, I6 g& g - (menucmd "S=S")
+ s0 c3 b: a+ }. d9 | - (menucmd "S=ACAD.S")) r8 J' `! ?1 c/ k- ~
- (princ)
& J& X( ]0 g7 L2 a1 @+ F7 p - )& A7 @/ K( Q, d5 U, k
& d# o$ d9 h' j- (defun c:ai_fms ( / fmsa fmsb)
f) f1 O; k0 c1 t( D+ ?7 _ - (setq m:err *error* *error* *merr*)! a, o- G: A! g3 b
- (ai_undo_push): i9 W' I" b6 |0 W& N/ I0 l
- (if (getvar "TILEMODE") (setvar "TILEMODE" 0))5 g& f) z: t' s4 y6 O/ A2 R% P6 f
- (setq fmsa (vports) fmsb (nth 0 fmsa))
$ r: s! }' e1 a! ?! i - (if (member 1 fmsb)8 k* z( }+ k/ k1 ^7 K
- (if (> (length fmsa) 1)
. {( \ D/ ~& ~ - (command "_.mspace")
9 {3 C) J0 y. m$ W6 K - (progn
) [ [# {! v1 Y% K* Q; h( p0 q |( C% R - (ai_sysvar '("cmdecho" . 1))
3 U: }1 p5 I. b9 { - (command "_.mview")
4 u- {8 }8 N# W# y9 d - (while (eq 1 (logand 1 (getvar "CMDACTIVE")))
1 Q# A2 ~ a2 \6 A/ @ - (command pause)
3 x- Y( `+ ?2 m1 P" Y' t - )
5 F3 R8 g% x: N# b# \& H' S& C - (ai_sysvar NIL)
3 c& e7 ]- O) e$ h. H - (command "_.mspace")6 N& v: x3 \! E( |0 L2 [6 m
- )
" S1 f8 B4 ~6 L4 h- U - )2 j' L: t( M6 J7 k* p$ k9 f% e
- )7 k$ W5 N5 R+ C
- (ai_undo_pop)5 E) M9 s: Z' O( P0 }
- (setq *error* m:err m:err nil)8 m5 n. ~" T0 `8 w! o ?
- (princ)
, w1 C$ }1 u1 ?, R+ S9 ]+ c: w6 h - )
7 W' s" H0 S: {; P4 F) F# ` - $ C) r. f# ?4 J
- (defun ai_onoff (var)& L) r# j, c' R- T# K
- (setvar var (abs (1- (getvar var))))& @8 I1 b7 R$ j& A/ [- C
- (princ)
& @: c5 y6 d8 S ] - )
' W+ Y- v2 @, U; @2 D9 a
0 Y& l+ x3 c5 x$ f, B- ;;; go to paper space
5 \8 M7 c( P: ^1 |& N0 O. @ - (defun c:ai_pspace ()
0 U* ^3 T( U4 j) W - (ai_undo_push)+ z8 k1 v3 ^7 H
- (if (/= 0 (getvar "tilemode"))5 J5 p' D" v9 q% y+ }
- (command "_.tilemode" 0)
; y/ }7 c( f* L- U - )
- V0 A- u9 h' o7 o8 c9 M& X9 e - (if (/= 1 (getvar "cvport"))
& D; w- I D+ x - (command "_.pspace")- n8 R1 R x! o' [/ y' Q
- ): M% _4 Z2 H5 m1 ?
- (ai_undo_pop)
; s1 Y5 i" R' A. U0 J( P% {. n - (princ)
% X# b% e1 x8 u3 E! s7 @4 ]' } - )
+ [ w* X ?4 Q) m/ V( P
" p7 `3 [- z* [$ l- ;;; go to tilemode 1) w2 r4 g* ^! @1 X" |8 F
- (defun c:ai_tilemode1 ()( D: G5 b' b% \, n! X
- (ai_undo_push)
8 W4 r7 h; ]/ A - (if (/= 1 (getvar "tilemode"))
$ {2 x& a. s+ b f) a - (command "_.tilemode" 1)
( F+ z( \3 o0 p' O - )
9 O, t. ~2 q5 x Z - (ai_undo_pop)
' D7 ?9 `& E6 \( v - (princ): w* X- [ e0 Q2 y3 s/ v9 ?
- )6 v! U3 g$ R) i _2 ]) H+ C0 `2 P
: w8 b# ? @- I2 t9 B8 m6 |- ;;; Pop menu Draw/ Dim/ Align Text/ Centered
! {8 Z, F2 o$ L C8 q; o/ I$ t/ {$ T - ;;; Toolbar Dimensions/ Align Text/ Centered
$ [3 { i8 p6 ~: ^
# @% s0 @6 w Q" k" q8 ? Q5 H- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss). [1 j3 h0 s s& H- q2 W' D2 E
- (setq ai_sysvar (getvar "cmdecho"))5 I. M4 y( ^: c+ s
- (setvar "cmdecho" 0)( C6 w4 v2 y$ d- [
- (cond
( d- L, a. c$ X5 u) U; {: ^6 ` - ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION"))))
2 g% {) _) J$ w- I. K3 i6 s - (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss ""
9 ~& G& K K4 l - "_.dimtedit" ai_dim_ss "_h")! G0 B" m5 G2 G) C- l% K1 v
- )
2 A% o$ Q4 m% Y' T( E( ] - (T nil)0 F6 J( V) F# j' v/ J4 h- C Z u
- )% j( q( t0 c$ u/ P
- (setvar "cmdecho" ai_sysvar)
" J* n" K+ e9 C; s, N - (princ)+ j7 K& `( M4 a7 s7 G$ J( n
- )9 }3 w: E$ ?2 u1 g2 h
- + O' v* w* a6 j4 x' Y9 B% p. M
- ;;; Shortcut menu for Dimension Text Above
# f1 x5 @0 E$ O/ A - % o- v( M. [4 l4 i! `( A: h
- (defun c:ai_dim_textabove (/ ss)4 f! D0 t) Q q. i
- (ai_sysvar '("cmdecho" . 0))$ M5 i Y" H4 H6 ]$ F+ |
- (if (setq ss (ssget "_I"))
- q# [% X3 z( B. P - (command "_.dimoverride" "_dimtad" 3 "" ss ""); r M+ x2 g4 O
- (if (setq ss (ssget))
) Y# e/ \& ~9 \, A- W7 H - (command "_.dimoverride" "_dimtad" 3 "" ss "")
' y; ] o' }! S+ `) q - ); M* q' E8 u3 n
- ). h! `9 v( {7 F3 y6 J
- (ai_sysvar NIL)& O8 @( t4 v" u# u$ M6 G
- (princ)
- t! h& F/ Z" J. ~+ P5 G# D7 s! i - )
$ ~. w! `$ w5 h9 Q9 e* U5 T - 5 Y3 X0 h; |2 X% H$ r
- ;;; Shortcut menu for Dimension Text Center
7 D/ X; R/ v! Y- `. W - # f+ J7 o2 _7 c' Z K5 s1 X
- (defun c:ai_dim_textcenter (/ ss)5 a+ ]$ I& Y, r5 h. a" {) ?
- (ai_sysvar '("cmdecho" . 0))+ ^4 F6 T! {# ^5 F! x' d0 J
- (if (setq ss (ssget "_I"))
1 Z+ L( y0 u, Y - (command "_.dimoverride" "_dimtad" 0 "" ss "")
* @. |& |, Y( R - (if (setq ss (ssget))
% k9 |/ G5 W) i9 X( O& Y - (command "_.dimoverride" "_dimtad" 0 "" ss "") ( e0 h k3 g# d8 C" B7 e# ~
- )
1 i2 J0 ~/ i' \* s9 X6 P# p( T - )
% `/ j( s& N s2 N5 U9 R" w) E - (ai_sysvar NIL)
0 M, r* W# a8 x; |$ W4 M - (princ)6 Q- E, \& |7 ?+ c" J
- )
8 {: ~" a1 b: I( l+ K# V! m0 | - - f+ f0 X2 H3 \6 ]
- ;;; Shortcut menu for Dimension Text Home + g W. a. E' ~' k7 a* S M
* d: }6 i' p `0 x- (defun c:ai_dim_texthome (/ ss)
0 H2 v1 Y' u' h" h' Q! u - (ai_sysvar '("cmdecho" . 0))8 D& \: M1 }3 \" \3 X& z
- (if (setq ss (ssget "_I"))
0 }6 q1 D2 F' ]5 V( U V7 X - (command "_.dimedit" "_h")! e4 V" J/ U! f% E0 V
- (if (setq ss (ssget))
" Y/ |2 K/ ?4 v2 U) E - (command "_.dimedit" "_h" ss)
$ N; m u3 _- c2 i2 i. ]) [ - )$ _* D. X5 n% F; h, J3 T
- )
5 s& `# T$ k# w7 u. H - (ai_sysvar NIL)! ~0 o. ?' U. o+ R& T- k4 i7 D
- (princ)
7 V9 |7 i8 R% j0 k& k n - )+ f( r# J8 c/ B6 F+ r* T9 u
8 Z K8 r# V% k h4 l3 K- + J y+ m! B5 F% t2 k1 Y$ K# D
- ;;; Screen menu item for CIRCLE TaTaTan option.; b) Y2 K4 `8 x0 H4 _
- ;;; first, get points on entities* p& S+ y* l& \. [
- (defun ai_circtanstart()$ r1 O* }* Z- r8 s8 e- z
- (setq m:err *error* *error* *merr*)
5 R5 \ C1 o; r. ^, p, Z - (ai_sysvar - _8 p8 n: e1 M( R4 r! a
- (list '("cmdecho" . 0); n7 h4 P7 R" y# w3 k5 w9 j! o k
- ;; make sure _tan pick for CIRCLE gets same entity" V, }" B" ?/ N0 c# N4 p
- (cons "aperture" (getvar "pickbox"))2 D, o1 Z0 u, n, `2 L# w* I
- )
2 U8 L9 U9 J& e7 q1 S# V$ ^7 U - )7 D9 V1 x/ A0 M& e) c* d( u* g
- ;; prompts are the same as CIRCLE/TTR command option
8 U$ T& G+ J2 M9 Q+ `8 e) }0 t - (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))
! n, ~( Q. u3 e* p - (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))% ^ n- ~5 t) z4 W
- (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil)). M% K3 B; f: O; N9 X' e# q
- )7 z; y: q( W0 K; n, \4 B2 j5 A
- ;;; Command-line version
$ P9 |' B6 I+ V - (defun c:ai_circtan (/ pt1 pt2 pt3)
. J2 G+ l) U; A" Y3 P - (ai_circtanstart)8 W$ W" z- b' t! N! @* u
% F$ ^6 Q" V7 @% [' U' S; B: Q: n- (ai_sysvar '("osmode" . 256))
. y3 Y1 D& Q4 J- P }" }, c% z2 o$ T - (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)
5 l8 }' ~7 F4 @! H" m3 J- X. ? -
R( b" t# F; k" I0 d0 Z - (ai_sysvar nil)
, p7 `6 g- z3 y - (setq *error* m:err m:err nil)
3 J4 L7 t: x( j0 n& X8 X" t7 u7 K: i - (princ)9 U8 s3 h' J# b
- )1 [ P( p0 P. U" j, D
- ;;; Use this if CMDNAMES == CIRCLE
. y- C! c. c1 I! F- y5 n - (defun ai_circtan (/ pt1 pt2 pt3)
0 S5 l6 `# ]* ?( p: u" |6 k - (ai_circtanstart)+ c; V. Q4 ^1 b% G, E
" _0 ~6 {# {9 m) e" M- (ai_sysvar '("osmode" . 256))
1 M9 T1 ~/ Y7 g) F& n4 k - (command "_3p" pt1 pt2 pt3)
# r$ K- r5 C1 z3 t; y7 ]0 |0 h -
( T6 Y) l" E9 r7 w4 Y! f- E* o - (ai_sysvar nil)
/ R t7 k0 }6 Z+ y; L% P: } - (setq *error* m:err m:err nil)
* f8 X2 N1 o& S3 M9 a - (princ)
6 ?, q* E! {0 s' T& g; c- p: K - ), r8 @; G* }2 G: S* I" r
; i0 [: @2 R: O5 [( z% S- " f% [( X9 [' [" R1 N
- 8 I% i' P, d8 M% R- H
- ;;; Shortcut menu Deselect All item.
0 E5 t. P6 F9 h6 F% h& e - 2 y, y8 t0 f9 N
- (defun ai_deselect ()
4 Y6 S8 [5 g7 {. n" G - (if (= (getvar "cmdecho") 0) ;start if( l9 H9 T! }+ O3 W) p+ ]) j( e# X2 l
- (command "_.select" "_r" "_all" "") i+ Z4 d* r% O! {. }
- (progn ;start progn for cmdecho 1! s. u* S# S9 H" p7 y- v8 j
- (setvar "cmdecho" 0)0 Y+ M. o* p) j j
- (command "_.select" "_r" "_all" "")" ~( o% R X& t' O( R
- (setvar "cmdecho" 1)
4 T E' `2 R6 w. X5 |1 d/ Y8 B - ) ;end progn for cmdecho 1# p7 C+ C' ?& x: u. A& q9 h
- ) ;end if) ` |* p2 o5 i2 N+ S
- (terpri)1 q/ h/ W# V4 G( M# c+ P, v& f$ C
- (prompt "Everything has been deselected")( ^$ Y% Z+ D, @1 W
- (princ)
, Z2 k) [* S; k9 S* N. S, L - )
& U: a+ p5 s; m0 |
7 ]* m+ F% ^ Z. {3 g6 d- ;;; Command version of ai_deselect to be called from the CUI
, R8 j1 \2 Z6 \3 B7 a9 @ - ;;; so it gets properly recorded by the Action Recorder
& p4 j6 |; r E% R: g0 ]& X, x - ;;;
- W1 ?: F% W$ i - (defun c:ai_deselect ()" m4 r4 M' q2 M7 E% O8 o
- (ai_deselect)
: b6 {& {2 Y, T$ }9 ~ - (princ)$ x' l4 M" c$ y7 ]3 `4 p
- ) ?8 D6 Z# L7 f6 O1 t+ O
- * @8 g8 ^( ]/ C7 n, Y) J" p4 Y! R
- ;;;+ M6 d( r5 P. f) o+ t& b7 O
- ;;; Enable Draworder to be called from a menu$ W- D4 ^+ D4 c6 p
- ;;; Checks for Pickfirst selected objects
+ g0 a5 g) u6 _/ D" @ - ;;;
$ y& N: e- f+ \* R2 h* E& k - 0 \4 R- }& H$ c5 X7 c" G6 Z% Y
- (defun ai_draworder (option / ss )
; R) E9 {# K' ^8 H
0 X+ a& N) [/ O- (setq m:err *error* *error* *merr*)
5 X) M* T" m5 a3 k% N5 \ - (ai_sysvar '("cmdecho" . 0))! e- q$ x) X: A4 H
6 J/ m. @3 h1 c2 C& ^7 {0 T- U- (if (setq ss (ssget "_I"))% S; N. [" ~/ p, V" p) c/ P ~9 C
- (command "_.draworder" option)
$ N! w; E _7 Z, i - (if (setq ss (ssget))
, u; g7 Z; A; p" ^" K- A - (command "_.draworder" ss "" option)
3 R: n4 t _- ~7 u( h# M7 D+ m' T; q - )( W3 `( a6 h! o+ Z" e4 H
- )( G9 W- E, p* u
- (ai_sysvar NIL)
+ o! k& M) f6 I% ^, f2 ^ - (setq *error* m:err m:err nil)
7 l8 a; o4 Z, i9 \/ P2 k# {
6 m2 G8 P" q7 \/ y- (princ)8 K. h; q1 @* B5 j3 g1 K$ D
- )
4 a7 C2 i/ M* q( s - ( _3 g9 ^( Q" p; r
- ;;; Command version of ai_draworder to be called from the CUI
9 o0 b! v4 I* u1 ^( V9 h - ;;; so it gets properly recorded by the Action Recorder0 B% M* Q+ L0 a
- ;;;/ ~+ z# I7 ?, j( d" b: ~+ f
- (defun c:ai_draworder (); X% n0 |7 P/ c
- (initget "Above Under Front Back")+ ]8 a" ?' ~, h, A
- (ai_draworder (strcat "_" (getkword)))* s1 F# I7 |7 f7 R" }$ c. X; ?
- (princ)
! ^2 V9 V- H) f# v3 v - )* P& i% `3 U" ~% p" q# t: m6 T
: ^. e! j% K. @- W- (defun c:vlisp ()
4 G* I8 f% v* D% V6 }0 x ~ - (if (/= nil c:vlide) (c:vlide))
' E* e; k ^$ d+ S - )% [. x# O. a+ V* J, C! r8 V4 H
! p0 J; ]: ^3 w: I2 l- (princ "loaded.")
) O0 m& Q* t- P8 ~
4 ~) G+ z3 e0 g! k% v- ;; Silent load.
3 H- J1 w0 k% w, Z9 B7 d3 f% u6 s - (princ)+ T2 n! \; M2 t$ r7 K
9 L/ I. ^% L! w, T- ;;;----------------------------------------------------------------------------- R# A" l% r8 x( Q. P6 s
- ;;;( @& F& h4 ?' ^: w* B( {9 D
- ;;; DDCHPROP.LSP Version 0.5/ P6 s7 M& [* b- g2 [7 i6 s, D
- ;;;
: Q9 t! z$ h# W* b# ? j - ;;; Copyright (C) 1991-1993 by Autodesk, Inc.4 @1 A4 a4 _8 q" O
- ;;;
0 J: G( N7 @9 d0 f+ L9 Q3 p - ;;; Permission to use, copy, modify, and distribute this software
+ u& Q1 ?9 u! H( n' v - ;;; for any purpose and without fee is hereby granted, provided' S- Z/ k! x- t0 `
- ;;; that the above copyright notice appears in all copies and that
2 A) {- u" l! ]" t8 Y8 \ - ;;; both that copyright notice and this permission notice appear in
: B( C1 r$ k) t0 E+ j2 ] - ;;; all supporting documentation.
7 I; o0 |$ _& |9 ]1 r - ;;;; p/ B6 d' v; [9 r/ Y2 |- {
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED9 H: D9 B2 c. H. y$ \
- ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR
3 C5 s2 R' s* J2 \4 k - ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.
4 e# L$ C5 B7 W# w% o - ;;;
! ?! J( y2 \# k8 z; \) r - ;;; 2 February 1992
% f; j: {2 G+ ?* v8 j0 U3 h$ z - ;;;
2 Y9 m1 f( F- c- G/ i3 l - ;;;----------------------------------------------------------------------------
4 k5 Y5 ^( u& X% ?3 V - ;;; DESCRIPTION
$ s Z; R% A6 t) M$ r$ i4 X, A - ;;;----------------------------------------------------------------------------
. q% K3 ]% f. n - ;;; C:DDCHPROP is a dialogue interface for the CHPROP command.
0 b2 S: L# j( ?# Z - ;;;
; k) V- f7 S* i/ b8 o- Z, @ - ;;; The command looks similar to DDEMODES. The main dialogue has an image
) H& O) @+ \) m. u- Y' Z - ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness). " p: H( y8 B2 y; W) [1 V$ j- H
- ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box. - v( h# X4 x+ C1 Y5 I
- ;;; The dialogues are all defined in the DDCHPROP.DCL file.
8 ~1 }& L" ?0 G. A - ;;;
' k* ]% n, A0 I% {3 e0 f% g - ;;;
" o N; r# J' ~9 U) ^$ s - ;;;----------------------------------------------------------------------------
" _% D6 [2 w$ A, p - ;;;----------------------------------------------------------------------------7 s0 [. `5 L: V; T
- ;;; Prefixes in command and keyword strings:
v% Q9 M$ N1 T5 A/ m! E+ A - ;;; "." specifies the built-in AutoCAD command in case it has been " `, W( c2 ^5 H$ I3 u) L. h
- ;;; redefined.2 P' f1 k7 `* a# M# |! T# @
- ;;; "_" denotes an AutoCAD command or keyword in the native language
" [, t& N9 L$ y/ l: y - ;;; version, English.
* i l7 y1 y2 u$ d: \) ~ - ;;;----------------------------------------------------------------------------. T5 w. o' }/ {9 H+ I
- ;;;& Q+ j3 J+ L, i! m) f8 N* t5 Z5 Q
- ;;;
( i- ~9 T4 S9 O! [: O$ n$ w - ;;; ===========================================================================# [3 g& Y0 [/ y7 }
- ;;; ===================== load-time error checking ============================" G0 i7 R; N* L' m( X
- ;;;
; p8 G1 D0 ?6 B9 K - * V) N& Z0 G% ^* i7 y2 t) d
- (defun ai_abort (app msg)
8 p: w5 m! m, [7 F/ X, L - (defun *error* (s)$ ^/ s; n6 U# D# C: |
- (if old_error (setq *error* old_error))2 K# ^9 [) s+ h" {2 p e( i
- (princ)
/ Y9 @1 t/ u' j) h1 ` - )5 |6 g( H0 V, R! w& K3 p7 p
- (if msg h/ ?% l9 I/ S; R
- (alert (strcat " Application error: ") e+ |1 |1 {& O7 A4 r }/ u% \
- app
7 }. X5 n) r/ X6 R5 E* u0 Y% \ - " \n\n "
9 q0 B5 T2 P1 n - msg# N. J9 u/ t9 K9 x$ t9 X3 q4 j
- " \n"9 T; C9 Y4 W+ u9 O( X
- )" Q: w# T& g! U; A. A
- )% ?$ ^ Q% r; B$ |, B S% j8 B
- )
/ H/ W' _/ J, y/ j* c - (exit)& C. I7 J: `! f. @2 r$ S' z
- )
7 z/ d. s$ @/ i5 x2 N) v& z
z; V0 `& S1 v: J5 I% ]- ;;; Check to see if AI_UTILS is loaded, If not, try to find it," W2 |& |% w' ^8 y
- ;;; and then try to load it.5 g: K) C. G' u# H- K
- ;;;
8 Y6 e( l, l( m I$ x! V7 b - ;;; If it can't be found or it can't be loaded, then abort the* {- z7 \/ F* V: ^) s8 c0 I" d7 [
- ;;; loading of this file immediately, preserving the (autoload)
2 e% f6 `& Y; X. |6 \3 D9 g( ] - ;;; stub function.2 S: D( J' L8 o% D% K/ X
- e# @- x. [" ~& }) N( i& o+ q
- (cond6 L) D" P/ b, \
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
) U- `$ }7 E6 P! ^( r
l' M5 R, m8 I, F% U4 f* `- ( (not (findfile "ai_utils.lsp")) ; find it& k2 X4 ~5 d9 Q- M- E
- (ai_abort "DDCHPROP"7 ~( B% U, m) K4 q: |! Q
- (strcat "Can't locate file AI_UTILS.LSP."4 \/ d6 B% d' g- [( y: [
- "\n Check support directory.")))
, j9 I5 d# A/ i n4 }( M - 7 [. I( o! c! Q
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
7 M+ `" b3 R% D l - (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))
4 j0 H" H. I0 b4 H/ K3 }7 J. c" l - )
+ F j# h: Z/ G5 z% o - ! M+ J8 P- `" w1 c
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP# o/ Z( N/ I3 W( O8 J
- (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses, |. ]. M" Z1 l; | d6 }, ^( R
- ) ; ai_abort's alert box dialog." \+ l, E! n* Q# A
- 6 H* @9 N1 b, Y7 v
- ;;; ==================== end load-time operations ===========================# F9 N) [) r7 X5 a2 }* W# R
. \9 @( j* G( H% |- ;;; Initialize program subroutines and variables.3 A' X$ ^8 W# K n7 G0 B
- 3 [6 _& R$ C" [5 i0 B# Z4 E. i
- (defun ddchprop_init ()
9 O4 g: f. J# t# q
6 C d9 J ]! K0 L0 ^8 H9 n) P- ;;
5 V% ?; U; E" X - ;; Define buttons and set values in CHPROP dialogue box
K. K$ _& }' I k- Y! e - ;;
0 |( T/ P( S4 Z0 x% h$ M: b. c) y+ W - (defun call_chp ()2 z0 Q9 }6 B; r/ a
- (if (not (new_dialog "ch_prop" dcl_id)) (exit)) w; v" V; x3 z) T5 t$ H
- (set_tile "error" "")
5 r5 r! I2 Q5 v, y+ o; j - ;; Set initial dialogue tile values) j8 F+ X, ^( Q6 A, |
- (set_col_tile)
( B d: ?/ p7 z - (if (= lay-idx nil)
o' ?6 n# g) c0 Z! I - (set_tile "t_layer" "Varies")
, `7 Q# Z( _7 \' `! b; B - (set_tile "t_layer" (nth lay-idx laynmlst))
8 Y; [/ y ?" O1 @+ Y+ l - )
& @" F: J+ I* b: D' j - (cond - S% M% h5 Z3 j+ h* X# G
- ((= lt-idx nil)
. n. n% S) J$ |+ K A, B7 x0 O - (set_tile "t_ltype" "Varies")
) e" V$ w, |8 v6 q1 L - ): e% T2 R, D( S8 B8 m5 _
- ((= lt-idx 0) ; set tile "By layer & layer linetype" U# X: ]6 M* o! \9 Q+ H
- (set_tile "t_ltype" (bylayer_lt))
$ N; f- j# H' O0 ~8 H - )
* j/ [" b+ R2 X) ]3 | - (T
; [# L: ~9 U9 Q- z - (set_tile "t_ltype" (nth lt-idx ltnmlst))
9 z' y) U2 _+ _2 w8 P5 m4 T+ {' J5 l - )( c* V- x# N# M% ?3 [
- )
5 ~; b4 N* k( u3 w6 [0 V& u# ^ - (if (or (= ethickness nil) (= ethickness "Varies"))
! B/ L" l, |" d- y9 q, l - (set_tile "eb_thickness" "Varies")
* s+ x- n: T# j: D- e/ D3 t - (set_tile "eb_thickness" (rtos ethickness))& N" G& j7 d) L8 F1 b0 ~
- ). N9 @: {- y" j7 I
- ;; Define action for tiles
/ y, V# m# u( w. i, d - (action_tile "b_color" "(setq ecolor (getcolor))")
3 D( O' w( G; s5 c5 w% G- r - (action_tile "show_image" "(setq ecolor (getcolor))")
5 U# k' O' @, f0 R9 } - (action_tile "b_name" "(setq elayer (getlayer))")
( e. s7 J& y1 ~, O0 E4 _ - (action_tile "b_line" "(setq eltype (getltype))")9 @6 {6 N W; p
- (action_tile "eb_thickness" "(getthickness $value)")& `3 m3 v" O, h
- (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")
9 x8 e+ Y1 i5 u* `, V% C" j; H0 ? - (action_tile "accept" "(test-ok)")
5 _, A4 C+ G0 |2 ?& _6 g& W. n - (if (= (start_dialog) 1)
( |; c- i9 `! y3 k; x - (progn
6 j5 K) K9 c7 @3 M8 N - (command "_.chprop" ss "")2 ]/ f; |' B# x% d6 }) s/ j
- (if ecolor
9 T$ t+ S" C, w0 o$ w - (progn. k1 q2 q8 s( d1 `9 o1 U' M% ?
- (if (= 0 ecolor ) (setq ecolor "BYBLOCK"))$ d5 d% o3 \4 j2 Z% F
- (if (= 256 ecolor ) (setq ecolor "BYLAYER"))' U# n5 H' E. S7 U
- (command "_c" ecolor)$ U) t5 r# a9 O
- )
& u6 `9 J, G. {1 c, m - )
% S$ a4 ?9 f/ N - (if (and (/= eltype "Varies") lt-idx)
# Q' ?. }: C1 l3 g - (command "_lt" eltype)+ ~- i2 [3 }. o
- )4 @: D8 J0 R+ [& I% U! E8 T: O
- (if (and (/= elayer "Varies") lay-idx)
% C1 r+ v1 f! y4 _, i" s - (command "_la" elayer)
5 i0 Y3 u3 G9 |) ~ - )
3 \- L8 W5 z& B4 |' c) W! S) R" y - (if (and (/= ethickness "Varies") ethickness)( t9 E, z, `, P
- (command "_t" ethickness)
! U5 d8 s0 C; ?: c; F+ c8 P6 v - ), A4 X/ K" ~: U$ b8 |
- (command "")
. @' m4 U" n2 m - )
# L/ u% ^; N j5 C0 Q - (princ "\nProperties unchanged")5 R# M. e; E2 Y: ]( H2 @
- )
6 X+ e. }) }6 T& F$ ^) | - (princ)# g7 q' X. r% i1 G5 S) D* C( m3 w" T
- )9 J5 V \# S7 g1 w( i l0 d5 D
- ;;8 P) k- q5 e# O7 |$ t) b5 C) e
- ;; Function to set the Color text tile and swab to the current color value.
7 X+ F' `+ S5 w. v e/ j - ;;
# ?+ c6 Q" |! E) h - (defun set_col_tile()4 b% z& v X4 g. o2 ]' ~
- (cond
) u7 Q+ U1 H4 B* e3 U1 |( l - ((= ecolor nil), P& G, Q, H2 p1 d& B
- (set_tile "t_color" "Varies")! ^8 n+ J/ W8 `+ ^
- (col_tile "show_image" 0 nil)
+ h* G9 F( A5 ]8 r" H7 p" G7 F. @ - )+ V9 y5 P6 |: |. T
- ((= ecolor 0)
k" r# C J% Y- u) c/ _/ x+ p - (set_tile "t_color" "BYBLOCK")7 Z2 A+ ?6 V' ] Y
- (col_tile "show_image" 0 nil)
* d3 {8 L/ W& W/ s1 h% Y6 _ - )3 x8 t, s8 X- I: z' H9 n# s
- ((= ecolor 1)- Y6 f9 F+ F2 z; H5 }! y
- (set_tile "t_color" "1 red")
* z; Z* Y& x' S, U8 \5 _ - (col_tile "show_image" 1 nil)
2 a2 b X. s f( j: \ - )5 x2 b/ f) ]$ L* \7 G& a7 I+ p
- ((= ecolor 2)
$ }' L ^0 p1 a - (set_tile "t_color" "2 yellow")( i0 g( k) N# M
- (col_tile "show_image" 2 nil), b B6 {' l5 S) F; I4 H
- )
2 `, j3 @$ H* y6 t& o - ((= ecolor 3)" w3 f! X/ q7 B2 i9 E y3 F
- (set_tile "t_color" "3 green")/ r* q: V3 ?7 g
- (col_tile "show_image" 3 nil)# K* d9 `' [- k5 v
- )
) G+ u& Q P" d+ y# A( o. K - ((= ecolor 4)" \! a% {+ ^& l% t
- (set_tile "t_color" "4 cyan")
! a! H. x) V, R4 C3 Z# k - (col_tile "show_image" 4 nil)
: B; k; Z* y9 D/ K& U, M9 }- F - )) p2 D8 {1 E. w# t% J' ~
- ((= ecolor 5)
9 U6 K* G3 r- q0 L4 I - (set_tile "t_color" "5 blue"): `% T; Q- T3 H
- (col_tile "show_image" 5 nil), f* \# m' d" P, C5 L
- )2 @. m4 \0 m; g$ A. B9 _+ e; m0 _" _
- ((= ecolor 6)
2 o! R3 H) n, b2 d6 n" p4 y \ - (set_tile "t_color" "6 magenta")+ Q( R7 c0 X0 d; I2 `
- (col_tile "show_image" 6 nil)6 ?8 \- C3 u! ]
- )7 h+ A& h- l# x8 n$ z& N
- ((= ecolor 7)
2 P3 h2 B* C, s - (set_tile "t_color" "7 white")
1 d+ i) T. z- _6 ]: n - (col_tile "show_image" 7 nil)7 T5 v: c$ D6 A; H" b/ M$ K5 L+ @
- ) E1 y; u: z4 X4 o+ w
- ;; If the color is "BYLAYER", then set the tile to
; @! y2 w+ O) k. |& y7 j* r - ;; show it's set By layer, but also indicate the; g* t$ \9 y h0 T% V
- ;; color of the layer - i.e. By layer (red)% ?. J: q" j$ H
- ((= ecolor 256)
, g/ s) W. m7 D+ _& ? - (set_tile "t_color" (bylayer_col))
t+ Z6 o/ s6 a1 m' O# M% s - (col_tile "show_image" cn nil)
3 f, A+ U2 Z+ h# Q! U4 A. B8 T3 X - )
, k# m4 P) E9 a! ^! X$ `: T - (T # N$ V }, f4 @. D% X n! l
- (set_tile "t_color" (itoa ecolor)) F% h! Y8 n0 @" F6 l
- (col_tile "show_image" ecolor nil)
% n3 Z2 F# G7 `2 P) U0 L; \7 Q - )) p0 D9 ^% ~$ a- Z0 z' k- a$ W
- )3 C' b8 L2 {% o& m
- )
6 Y4 [* Q* H% b. t - ;;
" G; ^" c- i9 r5 V8 e2 V1 ] - ;; Function to put up the standard color dialogue.5 A1 x& G8 M5 N- S+ o- {# g6 B
- ;;
6 ^7 v. _; C) ~+ ~ - (defun getcolor(/ col_def lay_clr temp_color)
9 r& r, e0 k+ ?- N0 s - ;; col_def is the default color used when rq_color is called. If ecolor : p) v; o: ^3 [# Q! v( \3 x, i
- ;; is nil (varies) then set it to 1, else use the value of ecolor.
7 A, B4 W) _! R/ E; K - (if ecolor
: w9 ]! ]0 n+ s# m: b: W - (setq col_def ecolor)
+ {: K A( ?. { ~% b& C - (setq col_def 1)
$ `4 b4 S1 ]4 y4 a - ). o- c# e5 T k( f
- ; l4 H3 K) P* |& }+ {$ Y8 G' K
- ;; If we're working with a single layer, get its color
) d d C+ O3 P: S# m2 b% ] - ;; for use in the color swatch if the user selects color BYLAYER.$ @% b1 D( M5 f9 K8 U- S
- (if (/= elayer "Varies")
7 q! {: ~ ^9 L" a% a; f - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))3 q2 u( i. W2 ~$ s* f6 j& O8 l0 g; Q4 @
- (setq lay_clr 0)/ G. K+ P, ~* C4 ` E
- )2 H1 ^$ l- m& }0 k) Z
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
4 L1 x: ~- w6 K, K4 _ - (progn. Z& U& p& C' ^2 ^
- (setq ecolor temp_color). Q. u9 W% n) p* V Q' ^8 ?
- (set_col_tile)) P; L5 X2 o. r2 N! }# U- S
- ecolor f3 `0 K9 z5 T
- )
; j% b5 @. |8 l/ c/ l - ecolor
3 a% u% y! ~8 r. A- j - ) - `8 O, j; c' U8 |4 [: W4 {. h& n
- )& L! F- H" S- I+ t9 X
- ;;" [9 C5 w8 `' {5 \+ p! L
- ;; This function pops a dialogue box consisting of a list box, image tile, t1 n% G, | ]" U0 p
- ;; and edit box to allow the user to select or type a linetype. It returns
' f g. t) j9 Q - ;; the linetype selected.
3 }2 J# l, V# e2 o- E& v - ;;7 [2 z, t" V+ x( O' g4 A7 \' k
- (defun getltype (/ old-idx ltname)! {" q' Y& }7 G3 u7 i: Q
- ;; Initialize a dialogue from dialogue file, v5 E( c) B% b4 k
- (if (not (new_dialog "setltype" dcl_id)) (exit)) w9 ]/ Z" d' ?! E1 X
- (start_list "list_lt")6 d+ j1 k# A; p, I' c' U
- (mapcar 'add_list ltnmlst) ; initialize list box, x6 x- v3 [) \
- (end_list) S" T2 g: J- N
- (setq old-idx lt-idx), _& x* I' s; M
- ;; Show initial ltype in image tile, list box, and edit box
" D" O2 Q( Q* N, C7 P - (if (/= lt-idx nil)2 z/ z6 c. H" B" ^6 `+ P& U3 K# L
- (ltlist_act (itoa lt-idx))2 U, E. R2 p p% J: b
- (progn/ }3 \1 h& H7 P: G( H4 X
- (set_tile "edit_lt" "Varies")! v: G& w4 v2 I0 {# C6 E& `
- (col_tile "show_image" 0 nil)( O- g& G4 Z0 w/ n" |
- )
l W3 F( l/ C5 J* y* D# Z0 V7 h - )
3 ^9 D3 A1 `3 ^. a4 ^5 G - (action_tile "list_lt" "(ltlist_act $value)")
! [ [5 u" Y8 ^7 I$ ^5 p& T - (action_tile "edit_lt" "(ltedit_act $value)"), t' c: c% s- w9 X2 w) F2 q( T
- (action_tile "accept" "(test-ok)")
; m. r2 ^9 @: Z. r5 P, ]# s - (action_tile "cancel" "(reset-lt)")% |: a0 s/ N! P5 A! e7 y
- (if (= (start_dialog) 1) ; User pressed OK
8 h7 X x" k# u8 k( ]8 \5 c2 \' g7 u4 [ - (cond
* {8 {0 A! \% O, n- K6 t% c - ((= lt-idx nil)
, ~" f) P( u' Q( ?" N% { - (set_tile "t_ltype" "Varies")
* x& O& n( y( _3 @9 y% U" J5 E - "Varies"5 ]( S# b, J# a9 k
- )
1 r% u& y- y8 y7 G& d - ((= lt-idx 0)5 ^/ Y4 |! F5 c6 L2 A
- (set_tile "t_ltype" (bylayer_lt))
) X7 I+ T1 `' d9 U - "BYLAYER"6 ~" T2 S7 u6 ]$ k
- ) W `' h6 e6 }, I; u1 z
- ((= lt-idx 1)8 I7 l T8 T: H1 N/ h! @9 C# x5 H
- (set_tile "t_ltype" "BYBLOCK")4 ~. f" s' L: M9 D6 v
- "BYBLOCK"' y- E/ y& ~. d- ]" s
- )
" j, k4 d- Q) d - (T 7 f3 q3 Y% @* ?5 o" f
- (set_tile "t_ltype" ltname) + q- c1 k3 H" y0 c) H( Z
- ltname% H, t: x' W8 m
- )# ^, c/ \) C9 p5 s1 H6 W
- )/ E# P; d% a- D2 o. U
- eltype
- Z/ q+ y8 [8 u# G2 v. } - )7 n7 a3 a( b/ X6 ^
- )9 P/ t; Y& ?" C8 Y. y6 |- w& W
- ;;5 z# M( d' q% P2 @
- ;; Edit box entries end up here2 E" ^& b, R2 M2 c& t. X; [
- ;;
$ y- i) N3 v' Q3 g1 T - (defun ltedit_act (ltvalue)5 o9 Q, ]7 \: @
- ;; If linetype name,is valid, then clear error string,
. Y8 f3 U& O1 |: p& H D* J9 Q5 E - ;; call ltlist_act function, and change focus to list box.1 b& U; G- ?/ Z+ Z
- ;; Else print error message.
* M* o7 K" Q; |# w' B! x1 K, u - (setq ltvalue (strcase ltvalue))1 v6 K& o7 o; Y" P3 k
- (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))
, o; @& u+ n3 Q2 V- U/ f4 ` - (setq ltvalue "BYLAYER")
) u$ Q+ ?3 M8 |0 c" R6 K& J6 d; l2 v& x - )
8 p& h, H$ [4 v8 c t - (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))
+ v q4 E2 b' s' x, L( y O% G* ~ - (setq ltvalue "BYBLOCK"); ?* Y$ f' c0 \2 g3 Y
- )
* E4 o: s, ^( \: n4 m, X( N, M - (if (setq lt-idx (getindex ltvalue ltnmlst))4 b8 b1 f' d6 j% M2 M4 V
- (progn, {1 t$ X9 r, e' E
- (set_tile "error" "")
g5 z% b$ u2 l8 |9 ?* w- {8 X - (ltlist_act (itoa lt-idx))0 q/ k8 J7 x4 f/ I
- (mode_tile "list_lt" 2). O) k- P' @% |
- )7 }+ z, n3 |* f
- (progn$ a: d9 x1 I2 \1 R$ s, S
- (if (/= ltvalue "VARIES")# ]0 \# H# t7 c! W3 j) \8 m. \ @
- (set_tile "error" "Invalid linetype."); A( f$ S' v: p0 ^6 U8 p
- )
4 S3 Q3 y1 [7 l/ C& P4 o7 c - (setq lt-idx old-idx)
/ y6 b2 X* H6 O - )
* P$ ^* l( b3 y: { - )
5 D4 X0 O$ i; |$ z+ _3 M$ q7 f+ g - )5 ^% l4 U9 Y8 X( Q
- ;;0 \: X5 F1 W+ d. O0 e7 H
- ;; List selections end up here
1 Z: i" ~# `7 z0 h% a6 w' u6 U - ;;
, d( y1 X$ K! V5 u7 s7 a& C/ d! W - (defun ltlist_act (index / dashdata)
8 [& U& {- o) O$ A - ;; Update the list box, edit box, and color tile
; ]9 X% `; h3 A& m0 E; @ - (set_tile "error" "")
+ b% n. h! [, M) _ - (setq lt-idx (atoi index))) K1 v0 x( O( b5 K: m0 ?# K( T* |
- (setq ltname (nth lt-idx ltnmlst))
3 Z) E: X4 p4 n D - (setq dashdata (nth lt-idx mdashlist))6 X( ^& V4 H; \% E3 i. M+ h
- (col_tile "show_image" 0 dashdata)/ ~2 h2 g4 M& ~$ K' x
- (set_tile "list_lt" (itoa lt-idx))' ~) t0 Y' f9 g1 I! [' g! h
- (set_tile "edit_lt" ltname)
" q8 z( V7 D) ]6 e - )
2 T8 ]5 ]- O* {& Z6 A9 o8 i - ;;3 c8 t) u, g8 i% Y
- ;; Reset to original linetype when cancel it selected# X# _2 p x% V5 i) s( D1 c
- ;;# x( H- t& Y4 V) s
- (defun reset-lt () v5 P: v, A- R- C! Y* ^" g- k0 \
- (setq lt-idx old-idx)4 K8 ?8 f0 w7 _5 y& d% ^
- (done_dialog 0)
2 _0 w2 V3 f3 B0 I* n: M - )7 f7 S% U' g- {$ c) ~
- ;;8 c- C( k# [- h$ L; _
- ;; This function pops a dialogue box consisting of a list box and edit box to
7 K* b- c7 p5 u8 z - ;; allow the user to select or type a layer name. It returns the layer name
4 }8 |1 F2 i4 T9 g) F - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the + N4 w( _+ g2 f/ p( \
- ;; drawing.; g! t7 m% N8 X
- ;;6 J5 b) p* Z" a( o, q/ w
- (defun getlayer (/ old-idx layname on off frozth linetype colname)
& ?& ?3 c7 R0 P - ;; Load a dialogue from dialogue file
% r' i. l/ h/ _0 E* n, B - (if (not (new_dialog "setlayer" dcl_id)) (exit))
4 J+ F9 ?6 o9 t. K' O- T - (start_list "list_lay")" B$ Y5 g3 p6 M( K
- (mapcar 'add_list longlist) ; initialize list box
0 |1 p4 B9 P4 I. } - (end_list)8 X2 A e# v0 z* c
- ;; Display current layer, show initial layer name in edit
9 m6 @! V1 F, _( g - ;; box, and highlight list box.
- @ S3 C g2 Z. Y# J - (setq old-idx lay-idx), b4 J" `# G# F. o2 [3 U/ z
- (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
4 V! ]7 ?9 ?# B - (set_tile "cur_layer" (getvar "clayer"))( I5 v- `- s8 \ T) N
- (action_tile "list_lay" "(laylist_act $value)")
. Y/ I( u8 Q, K1 a& O. d - (action_tile "edit_lay" "(layedit_act $value)"). @( W! ]2 r+ k! ~. H1 V
- (action_tile "accept" "(test-ok)")* F7 B& {9 s- n. d& h' q6 t+ \
- (action_tile "cancel" "(reset-lay)")
* O) O5 `: Z4 v - (if (= (start_dialog) 1) ; User pressed OK6 b" n& q" N" z( @ P2 I
- (progn
# @ b* { b! X; \9 c+ K# o( ~ - (if (= lay-idx nil) (setq layname "Varies"))1 k1 q4 o, p& O+ I( c
- (set_tile "t_layer" layname)2 J s* ?# s/ s& l. Y) w
- ; If layer or ltype equals bylayer reset their tiles" r: Q0 R- @. [2 t. J( r* ]* Z
- (if (= lt-idx 0)
1 V" k+ D( d R# @7 q% [/ i8 T1 m - (set_tile "t_ltype" (bylayer_lt))1 K' k& o4 }0 F! t
- )+ b9 N: ^) e8 W( d+ c1 c4 U
- (if (= ecolor 256)
& J1 ?7 q* {3 \6 T - (progn
. U0 L% j( Q+ c# ~9 Q+ Z - (set_tile "t_color" (bylayer_col)) V4 L/ { v- H/ S0 z
- (col_tile "show_image" cn nil)
& m& n8 v l: y) K+ [; P( S - )
6 G; f b; k) v& H2 _: x - )+ a) f1 L* r1 Q3 {& s/ j. f
- layname
+ p9 `" u+ ^5 |! g' s - )
$ v6 q+ C; b$ ~/ c# L - elayer% d+ a5 P6 ?' W; `
- ); J$ x% x( p, o& V* u. t
- ); `7 c( l' Q4 u* b/ s. M
- ;;2 x: y3 ~8 m; x& }& {4 [
- ;; Edit box selections end up here
) ?0 [. E; M$ q0 s3 e - ;;
6 P9 ?. L8 m7 D; t" L' R% B' p! M - (defun layedit_act (layvalue)
$ M( i, @- ?5 N% D' f& G# t# K# V - ;; Convert layer entry to upper case. If layer name is% h5 c* S% V5 i$ f( _$ p: E
- ;; valid, clear error string, call (laylist_act) function,: d3 S7 [# I9 D. W' y% Z, V
- ;; and change focus to list box. Else print error message.
) V# T" S+ @7 q - (setq layvalue (strcase layvalue))
$ u4 m f- m" z/ T+ D! m: o; m - (if (setq lay-idx (getindex layvalue laynmlst))
4 b9 S* {% x! d# x2 I) O - (progn
: e6 H- }; e4 s6 J - (set_tile "error" "")
* r1 f: Q) W' n6 s- q/ b& h - (laylist_act (itoa lay-idx))( z. K" a/ I" V& v5 u
- )& T; y1 q0 r Z V+ q3 s$ H
- (progn+ o, M+ L7 j+ N) s, F4 I
- (set_tile "error" "Invalid layer name.")
0 a# W3 j3 {2 F, y' M# q/ S - (setq lay-idx old-idx)
: H" E, ~9 g2 U* ]) y% \ - )
! I6 f" ~8 X) g+ q! S - )1 r3 P( V, s, l+ n/ i
- )- i4 M; Z2 L# `( ^6 W" j0 D- J
- ;;
0 G; c7 Z# Y; p6 m% ?6 O; G9 z8 q& W - ;; List entry selections end up here
7 J# U2 C" M- g3 L+ D6 G5 M7 @ - ;;
/ [) o! s, h6 D" w: ` t: R5 D4 G - (defun laylist_act (index / layinfo color dashdata)
3 l2 G* x4 x5 m& u+ Y! [ - ;; Update the list box, edit box, and color tile
5 r* J, g( i8 F: c6 M - (set_tile "error" "")9 p+ p2 N6 R& F% x
- (setq lay-idx (atoi index))
" A. R/ W v# X' x0 t3 a- T - (setq layname (nth lay-idx laynmlst))5 Y4 |* t1 r; @
- (setq layinfo (tblsearch "layer" layname))
8 v! M4 T3 y, n - (if (= (logand (cdr (assoc 70 layinfo)) 4) 4)
3 [* w$ d; H6 f4 R4 g( s - (set_tile "error" "Cannot change entity to locked layer.")6 D. w( o6 z) y% C2 n% c8 W
- (progn9 H: \' @9 K4 Q3 x0 L! }9 t$ o
- (setq color (cdr (assoc 62 layinfo)))- v1 Z( q7 S/ T: z
- (setq color (abs color))2 ^% b7 ~! x: K: V' B. U
- (setq colname (colorname color))
% h& b k" W! n9 a1 Q - (set_tile "list_lay" (itoa lay-idx))
+ S8 \! A7 H9 v* j+ d0 H& H - (set_tile "edit_lay" layname)" X0 Y+ t6 G- V1 Y' T9 M
- (mode_tile "list_lay" 2)7 a4 ^" S* N$ R6 i
- )% V% q1 Y* d. H) n) f3 K
- )
c" J& _$ |; j7 }2 J - )
! D! A2 C9 i& l7 M - ;; J% w- e3 g( \; n
- ;; Reset to original layer when cancel is selected' ~, x) z& h! }
- ;;
& G7 t1 A! E/ O$ r. f8 s8 p: P5 Y- e - (defun reset-lay ()
1 \: Q0 I) a4 n0 S4 [' Z/ l4 _( V3 }6 t - (setq lay-idx old-idx)
* s. |+ M* G2 R7 ^' u% ^% ?- ` u - (done_dialog 0)
- k& t( `+ `5 N+ x( {9 s - )+ R; d a6 e) A" M1 C1 G- I
- ;;& O, }1 i/ p9 W7 m, }0 I( r) { C
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a 1 o5 |4 ]0 {3 ]$ s* i3 W; K& q
- ;; string can't be converted to a real, this routine checks if the first 1 h0 ?1 b) Q' L8 D3 G7 M
- ;; character is "0". It also checks to see if the value equals "Varies".
3 l S- ~! o9 N% P3 p* n - ;;
, `* j8 ~! o) Y' K$ L& ~1 s1 S9 N! f - (defun getthickness (value)
2 O3 F7 v9 m& \6 r. H2 I - (setq value (strcase value))
" m! E( ~' J, c- T, O - (if (or (= value "VARIES")
4 P$ c L( R" i' ?* M4 H! X q: @ - (distof value)
5 y( u0 p/ b. B# t8 | - )9 `$ a- M" ^( ?+ [7 ^( y
- (progn1 o7 r1 z( b0 T5 C) j2 e
- (set_tile "error" "")
( @- H: e; S. S+ g9 n9 ~* [6 D - (if (= value "VARIES")9 C) R O8 y, }4 t' N/ T) Z1 M H
- (progn
0 m% \. U" G4 t; K3 `9 y! x5 h+ o - (set_tile "eb_thickness" "Varies")
3 C C5 U @5 M! \. _& G6 n { - (setq ethickness nil)
, K B8 y9 o6 L3 ^8 ?+ n6 S - )
$ ^0 y- {; y- ~* h- U( E9 A - (progn
+ N) z$ U# H: y" d - (setq ethickness (distof value))
2 G# n* ?+ [& ^ - (set_tile "eb_thickness" (rtos ethickness))' p/ s1 E4 j6 {& f' ^
- ethickness
5 ]8 S4 L, q% j) `( Y+ s2 e - )
9 ^" Q* R+ M3 f4 ~" L - ), _" O1 _; G' o9 j! E: Y- y( C4 W
- )
& O. h1 E% l7 L. J# Z0 k - (progn
1 A: C* |6 ?! q2 U; J - (set_tile "error" "Invalid thickness.")' |* ]$ a6 { ?/ X3 D
- nil. P! f; @$ G" ^8 {3 G
- )
1 Z( X3 G2 M& l- t j* V0 j0 x; l - )
$ k! m5 [5 ]* p3 @+ k - )6 ]1 x; ^# P2 S) m: b5 e0 Y; c1 X
- ;;* [8 j. N3 A0 I& y2 g
- ;; This function make a list called laynmlst which consists of all the layer , \. n, q6 ?0 e. s" `/ c
- ;; names in the drawing. It also creates a list called longlist which 6 N9 t$ X; ]) n
- ;; consists of strings which contain the layer name, color, linetype, etc.
1 T7 E8 g7 X# |9 X* M7 d6 H - ;; Longlist is later mapped into the layer listbox. Both are ordered the
2 m) h) _4 E( w% k, J7 U( a - ;; same.5 f5 l& h# K" f1 r
- ;;
4 B) }4 [3 E5 d0 _; Z1 d% H - (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname # ?. ?: s% I$ n1 @8 b
- xdlist vpldata sortlist name templist bit-70
) ~: d+ G2 f- \7 K$ C5 t - )7 ~' f" W& _! B' a& v
- (if (= (setq tilemode (getvar "tilemode")) 0)) d& d. q: ]) p2 v8 @% n" v7 s
- (progn8 I: ]5 v* G2 e4 o+ d, \8 C4 Y
- (setq ss (ssget "x" (list (cons 0 "VIEWPORT")
' ], D8 }) I) v, ~/ b7 H6 @, l - (cons 69 (getvar "CVPORT"))
/ d9 i" o) G* B. U* O- M - )
6 N' R& h. z8 _, J) ?8 b" B B - )
0 ~/ V5 y0 ^1 I- F; q" ` - ) + v2 t) \; } g( P! U. a2 W
- (setq cvpname (ssname ss 0))
+ ]( \8 W# O p: P+ { - (setq xdlist (assoc -3 (entget cvpname '("acad"))))
# @. X2 @0 r: c* |& c( o - (setq vpldata (cdadr xdlist))
2 d2 s1 l' C4 T* F9 n/ G - )
( Z0 a7 l x: L# Z% S - )* P4 ~9 s4 C9 n! x. P% G- _/ v: Q
- (setq sortlist nil)
! t" D. `; g' F$ T6 F - (setq templist (tblnext "LAYER" T))
) z7 \" t2 Q/ ?7 O - (while templist
I q2 |6 b/ H& @8 l - (setq name (cdr (assoc 2 templist)))
, g0 x7 g& H: \& F ?! s - (setq sortlist (cons name sortlist))4 O, D3 w8 R5 R% N& M& y% ]& w
- (setq templist (tblnext "LAYER"))* C! e6 m8 E" K: N5 x/ _
- ) 6 Y1 @; s! c7 M9 Y
- (if (>= (getvar "maxsort") (length sortlist))% M% G. ]' u* W$ j; w/ F: I& W9 c, N
- (setq sortlist (acad_strlsort sortlist))) {4 r' [$ E5 b; c2 A" V( V# T
- (setq sortlist (reverse sortlist))
% n" ^8 `& [4 h% W+ x - )
$ E" A* `) Z3 S& q( i1 I - (setq laynmlst sortlist)7 v2 G) m1 g0 e6 O/ B% Q7 I
- (setq longlist nil)+ J, i# {5 V2 F2 q6 ]: D$ o
- (setq layname (car sortlist))' z4 E+ G! k: j: J [5 v
- (while layname
& h( o; N- V; P b8 n2 D0 E - (setq laylist (tblsearch "LAYER" layname))$ i# O. L* r- b5 l
- (setq color (cdr (assoc 62 laylist)))
' t1 T' R4 R& e2 V' }; k4 \/ `1 l - (if (minusp color)
. ?0 X) X5 _' @8 L1 S - (setq onoff "."). y, N4 {& j5 R3 V! ~7 i
- (setq onoff "On")! h& C( B$ r. B5 M% K. j
- )4 D' p9 S8 v$ M- u2 q* v% o
- (setq color (abs color))5 A0 A2 ^% X! k7 ]
- (setq colname (colorname color))' V6 t6 I: w$ B3 _; \
- (setq bit-70 (cdr (assoc 70 laylist)))5 ]0 Q: q/ k0 q" f8 E0 j
- (if (= (logand bit-70 1) 1)
# V2 t1 [# ]4 H9 _, f" O - (setq frozth "F" fchk laylist)9 C+ E$ d' B& C& J
- (setq frozth ".")$ M) a4 ~. S- [; I0 E
- ): g9 F) @2 X+ ^& d4 z0 I9 ~9 s
- (if (= (logand bit-70 2) 2)+ V- K# J/ T* Z; t
- (setq vpn "N")
4 a! d' e9 W' | Q8 ] - (setq vpn ".")
4 \. t" [" |1 y& C1 G: }& d - )
- E4 ?3 q$ z7 W& @9 \) Z% U( ^ - (if (= (logand bit-70 4) 4)
% h8 Q o! r% ?3 v3 G, O: V - (setq lock "L")
7 Z. P5 f/ X6 y - (setq lock ".")
( O n" e, ^2 j6 [ - )1 h4 u( z. a d
- (setq linetype (cdr (assoc 6 laylist)))
, j9 s7 E0 _$ V0 Q - (setq layname (substr layname 1 31))
* i9 |9 m+ `8 B - (if (= tilemode 0)% \( u1 ?) `& y8 |8 u
- (progn" z! v/ \2 ~9 A7 j# w1 T
- (if (member (cons 1003 layname) vpldata)$ G$ y7 r6 o% `8 ?5 {9 T9 p) H! k3 n
- (setq vpf "C")
' y9 Y0 | L" s3 m, I' z - (setq vpf ".")4 S* Y% d. c! f+ W, w
- )/ I8 K# {4 x$ I. D' J3 k
- )3 `- M3 [8 k c% {, Z# T
- (setq vpf ".")
% H9 V: Q# u k7 o( ^7 q( q5 J - )
1 _! d1 T# ?' H - (setq ltabstr (strcat layname "\t"
. ~9 O& |0 N" X - onoff "\t"# w& ?) B+ B1 i& w2 N/ D
- frozth "\t", c8 ?1 p* n9 f) Y
- lock "\t"; @6 }+ A: _) T3 ~# \
- vpf "\t". M6 u% m5 g" @6 m: E
- vpn "\t"5 p3 ~/ t! }# ]7 x4 |/ t
- colname "\t"
* Y$ A4 }* t; |4 I3 h$ c4 k - linetype. W `# u" x) {$ e+ I& d
- )# z* b8 V; C! M/ o7 Z
- )
0 I9 B$ K; d/ R$ X# Z( p# b/ D& y* e - (setq longlist (append longlist (list ltabstr)))
2 C4 O/ w$ H4 p: U& f; E. M - (setq sortlist (cdr sortlist))9 b7 t6 O5 l4 k
- (setq layname (car sortlist))
6 t) v& V' _8 h4 L' ] - )5 C$ Q% y; q/ o! V
- )
1 \: z: ~9 w$ O) h - ;;9 P! T0 s- Q( X
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of ) w+ G; Q$ n3 D, F; {- m* @
- ;; linetype names read from the symbol table. Mdashlist is list consisting
& r6 t; b! Y9 k% G: K& Z" @! E; B - ;; of lists which define the linetype pattern - numbers that indicate dots,
# F2 q# b: b+ E - ;; dashes, and spaces taken from group code 49. The list corresponds to the ) k1 x- i( l0 `. {4 U+ r+ C7 {
- ;; order of names in ltnmlst.1 `% O% F v8 i" S
- ;;
; N8 r1 U4 c' A$ A! [( J! g" a - (defun makeltlists (/ ltlist ltname)
3 k9 Z8 w$ S' m - (setq mdashlist nil)
2 x' c# G( |/ ~4 z* a; m% M - (setq ltlist (tblnext "LTYPE" T))$ }) I3 n0 ^3 m4 b8 K( {7 T; e1 J
- (setq ltname (cdr (assoc 2 ltlist))): ^! ~3 s- `: p% X" g2 f
- (setq ltnmlst (list ltname))( Q, h1 F; S8 e
- 5 t E' N2 n# e- i7 u
- (if (= ltname "CONTINUOUS")# E: F$ w' Y' G; ~
- (setq mdashlist (list "CONT"))
% I8 [/ K4 C0 L7 `. j - (setq mdashlist
" ^4 h% w# m' l9 |0 n$ P3 h - (append mdashlist (list (add-mdash ltlist)))* W' V) w$ q* N; T' d- ^& s
- )
% g$ j6 R: l9 j, u" T+ T; ` - )) X" @/ r4 W* Y
- (while (setq ltlist (tblnext "LTYPE"))
S/ T: w" D# q {: y' U% i# v - (setq ltname (cdr (assoc 2 ltlist)))
4 l2 P% E, G3 q - (setq ltnmlst (append ltnmlst (list ltname)))! ]8 T5 o! i) I" k
- (setq mdashlist
- W( `, H% |# O- b1 y - (append mdashlist (list (add-mdash ltlist)))
% D1 ~5 n3 T+ q2 g5 r, c - )
0 ~7 S' S/ L# K3 g4 u - )
+ [) I" Y1 k+ l$ A8 N - (setq ltnmlst (cons "BYBLOCK" ltnmlst))
) e1 Z" O& W: f# R7 @ - (setq mdashlist (cons nil mdashlist))
, S, |6 x/ b: C# C C - (setq ltnmlst (cons "BYLAYER" ltnmlst))
1 O" D! T$ v6 V! _ - (setq mdashlist (cons nil mdashlist))& n0 _$ T4 r' y* v* ?; S0 h
- )3 u! d1 z1 X0 M2 k
- ;;. }5 L8 p; I, O: ]! B4 f
- ;; Get all the group code 49 values for a linetype and put them in a list
0 M& x# X5 K% m: e# k7 H$ E1 x - ;; (pen-up, pen-down info)# S6 Q; E& J$ Z+ n
- ;;; C |; ?2 `4 b
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize) B5 r( Q( @- T' ? ^/ f `
- (setq dashlist nil)
6 }+ [$ ~$ j# v7 o: Q" f - (while (setq assoclist (car ltlist1))
4 I, e- q$ P) G! M$ ] - (if (= (car assoclist) 49)
' ~( ?8 [' j! p8 o% z - (progn9 H6 r( t4 S! o/ q& d
- (setq dashsize (cdr assoclist))$ @% T) }! s( `( E
- (setq dashlist (cons dashsize dashlist))8 U) k. J1 k; A7 ]
- )
, M/ K% S! a! Z( i- K- _6 ^; V - )" E! D: D* q8 b( a% M2 W1 `
- (setq ltlist1 (cdr ltlist1))
4 _+ k8 Z4 R. |0 C - )
' a F# e3 D0 U$ w, l3 }6 [ - (setq dashlist (reverse dashlist))
" g( H+ ~) M$ a8 y0 ], s - )% ^( z1 @+ m. |. _7 T/ j8 ^3 A
- ;;
2 g; k! k- |3 ~) z, C3 k" g2 s - ;; Color a tile, draw linetype, and draw a border around it
1 \2 V0 O i$ l) e8 D: t - ;;) {1 @& M/ q' C6 v( ]0 a
- (defun col_tile (tile color patlist / x y); e7 d$ j0 R8 R! u8 T( e c) Q
- (setq x (dimx_tile tile))) n5 B2 Y a% B. S# \8 P
- (setq y (dimy_tile tile))# [7 M2 N2 A S. H# S. q8 \# `1 [( w
- (start_image tile)
9 g/ E- F6 p+ N5 l - (fill_image 0 0 x y color)6 l( R, f/ J) o
- (if (= color 7) W+ a# d* t% d6 y c
- (progn
; I Y( s% U ]: C2 f6 ~ - (if patlist (drawpattern x (/ y 2) patlist 0))
2 S0 S& |) U0 c& h1 X7 K - (tile_rect 0 0 x y 0)
{% r5 f* e' E. {; J - )& D9 B4 v/ B& O5 J
- (progn
/ _% Y# D3 a+ f5 O - (if patlist (drawpattern x (/ y 2) patlist 7))
* _! d$ \5 H) F9 D! R* f+ W - (tile_rect 0 0 x y 7)" ^$ {8 U4 S: ~4 q+ }* O' x
- )
; Q6 z, C) `5 f; q - )
# g6 @( Y- W; a6 E3 X0 c - (end_image)
0 P' O* X9 r, k/ Q$ ^ - ) E4 G) N+ ^3 G, y+ x2 \8 E2 [. s0 S
- ;;6 i& [5 P" ~9 E: Z" o; T1 a5 J
- ;; Draw a border around a tile
5 k" M4 t+ e) c; S' Z( n - ;;% ]- S P2 N' G0 {# B9 K
- (defun tile_rect (x1 y1 x2 y2 color)$ r. c5 J4 U; ^. I
- (setq x2 (- x2 1))
A7 K) i* R, o# ]( p' @# Y( r - (setq y2 (- y2 1))# B5 w; O2 J2 W/ `+ r4 A6 O7 B
- (vector_image x1 y1 x2 y1 color)- V8 u7 |0 H" E Y, H8 t7 `* j u
- (vector_image x2 y1 x2 y2 color)
; I) t$ t$ }, x8 K$ i V( W Q - (vector_image x2 y2 x1 y2 color)* k" a' q7 P) Z& b4 L2 l( o9 w
- (vector_image x1 y2 x1 y1 color)8 E4 x* L# _- f1 N! G
- )
" Z$ k M# Y) K; L C; z - ;; q; _9 {2 q2 Y+ y% w: s- |
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
/ Y2 ~, w" ]; @3 w- e; \, q" H: v5 N - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
; S1 X1 G. e Q$ c - ;; list of numbers that define the linetype, and color is the color of the
5 F( p! s$ Q U9 {6 w - ;; tile.
" c% i5 n# z- l% r1 m5 x - ;;
# t: [6 b3 n9 D h! w - (defun drawpattern (boxlength y2 pattern color / x1 x2
0 E) @+ z. k) @+ d - patlist dash)
6 u P& d6 J4 a, C8 x: M: M8 V - (setq x1 0 x2 0)! e! a5 o. I# W' y# l7 _8 Q# }$ h
- (setq patlist pattern) d3 z) F, Z* h- R) Q
- (if (= patlist "CONT")$ S- \- R# O' E7 S9 z$ V' G5 X# ?2 E
- (progn
# D) R' x- ^1 _7 v; n' p - (setq dash boxlength)
3 y* v* a6 s1 E& Z - (vi)
1 G3 [6 t* n. T - (setq x1 boxlength)! K! V& g* q* m
- ), |6 e: k5 v7 f. H1 B7 R/ V8 V
- ), s% g6 ^$ [: Q% d
- (while (< x1 boxlength)1 g8 _7 E) g" _; e
- (if (setq dash (car patlist))
4 A) o2 H6 A/ O3 v* A/ T4 p - (progn
( m3 |7 L# W5 l( ^, I - (setq dash (fix (* 30 dash)))6 X& j% x/ v8 J( o! @
- (cond 7 `! e- N4 y! W3 \& f) D# t
- ((= dash 0)
3 M$ n! D5 u; |3 y8 R7 t4 l - (setq dash 1) 3 p( p/ M( r. [* y
- (vi)
/ h/ h* _7 |. ? - )
4 D8 k( x- A( R- s4 s0 J! i, u - ((> dash 0) " N' z3 K5 v9 m' T. z
- (vi)
2 f& T6 G9 F( s8 @$ I$ L7 Z/ d3 d - )! b' v0 t; D1 {& a
- (T 6 Q& ?, P1 }& W" s! E! Y
- (if (< (abs dash) 2) (setq dash 2)) E' ?/ J# Y9 V: Q0 r% V8 S
- (setq x2 (+ x2 (abs dash)))
7 W* z5 ^2 J; A* C- q2 q - )6 H+ ~8 R- L- g/ T, T5 V. {( D
- )0 F+ v0 E7 g: {( I
- (setq patlist (cdr patlist))
3 S4 \ r3 D, o% R: l& Q - (setq x1 x2)' W2 H/ c6 Y5 ~! _, c! a$ X
- ), j6 [1 e' k; K+ i' i; X
- (setq patlist pattern)) {* E# \* V3 t4 P
- )0 ^: h7 q1 `3 n
- )
o- F7 l' h2 U6 e0 i* E - )5 K* C: q' {, ?# a8 _
- ;;( u: k7 F6 g# z6 h
- ;; Draw a dash or dot in image tile
4 ]5 Z" i& h/ V - ;;. d6 [* D6 ~! R4 B; ^/ m
- (defun vi ()
# e# s3 }/ ~; B - (setq x2 (+ x2 dash))
/ H$ L: o, Z" S- r/ p1 |1 F - (vector_image x1 y2 x2 y2 color)
; ]7 c- o! |& y - )0 ~' b; G" S5 }) e; @: m2 i: W
- ;;# ]4 U# `- l: h1 a4 H ~; a
- ;; This function takes a selection and returns a list of the color, linetype,
! x" ?' y2 q; L6 l: z - ;; layer, and thickness properties that are common to every entities in the
( R/ P6 F. |$ b( {) t7 S5 f0 l - ;; selection set - (color linetype layer thickness). If all entities do not
# W! O# ]) C4 S x. {' d/ _ - ;; share the same property value it returns "Varies" in place of the 5 @5 b: |7 C" v$ w) @. U
- ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
" b) h, `. V( u - ;;
+ b R1 f3 T/ ~' @ - (defun getprops (selset / sslen elist color ltype layer( H' t. ]7 @& ]) X" X
- thickness go chk-col chk-lt chk-lay chk-th ctr)
! Y# n: y+ }# X" d6 ?; v) p* ?- @ - (setq sslen (sslength selset))
R6 @ S! |2 {. ~! E" O5 Z - (setq elist (entget (ssname selset 0)))3 T2 L6 N) N. q- f
- (setq color (cdr (assoc 62 elist)))
* m6 J5 l( J5 s" W - (if (not color) (setq color 256))
% _8 V7 V+ N: P, Y$ a - (setq ltype (cdr (assoc 6 elist))), l+ h" m* w! y4 ~ t
- (if (not ltype) (setq ltype "BYLAYER"))
; h( ^& L+ |$ }* b) ]. n - (setq layer (cdr (assoc 8 elist)))" a# E4 j3 S) n/ g
- (setq thickness (cdr (assoc 39 elist)))( Q* ^% n' r; Q, v" q
- (if (not thickness) (setq thickness 0))) X4 o+ K z) z( [ H& r
- (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)0 k, h: k" d& q
2 q1 z# f, B* \- ;; Page through the selection set. When a property
$ F/ }9 R# o3 \5 ` - ;; does not match, stop checking for that property.0 }2 S$ j" Z% O& `( n: S# T
- ;; If all properties vary, stop paging.
) i+ l: C i9 b, T
" }' O$ c; w5 L: v- (while (and (> sslen ctr) go)$ [1 n- U. q8 e1 P2 \2 b' o
- (setq elist (entget (setq en (ssname selset ctr))))+ N/ K; Z6 L$ H ?# G
- (if chk-col (match-col))
) T* X6 n* c, \* B2 J - (if chk-lt (match-lt))
! e% n. F1 `& l0 c- ^2 @' k - (if chk-lay (match-lay))
$ D3 |, ]9 \/ u K - (if chk-th (match-th))
% f& B9 C% q( @& ^4 [& P - (setq ctr (1+ ctr)). y+ o4 N& w! Y) p
- (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th)): E# ^% d# O5 L- l
- (setq go nil): y% U; Q D% Y+ }1 i
- )
: F4 q6 }7 X t4 L' x5 l$ |4 ` l - )/ G- N x, @3 x' E' I
- (list color ltype layer thickness)9 [ h7 D9 e1 F2 A( r
- )
6 Y6 \* _+ g+ e+ `
' z' g! L, B8 _1 C7 @" k! O- (defun match-col (/ ncolor)
0 S6 R6 V, o F4 N0 J { - (setq ncolor (cdr (assoc 62 elist)))$ a: @, r) M7 V% C F5 s6 k
- (if (not ncolor) (setq ncolor 256))4 J% X/ M. Z- @ p5 M( }- C3 V* b
- (if (/= color ncolor)8 i/ k' G2 |0 r `- k
- (progn6 d4 @, l% `5 y: y, P3 A: N2 W
- (setq chk-col nil)9 U3 @ p, X3 ~
- (setq color nil)+ E! z" g$ K' Y O5 h1 r" E& e
- ). T% m) \# J4 E
- )
: q) ^# |/ x) [" x - )
o% C- F* n& Q T3 u4 p/ L; j
$ \! o6 s; F& k* d2 K; q/ h# t, F# O8 V- (defun match-lt (/ nltype)
$ ]$ }" @* W+ d+ T W - (setq nltype (cdr (assoc 6 elist)))& {/ i2 ~. I( r( i
- (if (not nltype) (setq nltype "BYLAYER")) A* W, d9 d3 z) ]
- (if (/= ltype nltype)$ S3 c' _2 m2 _ ~/ W4 X, P
- (progn, H' z% ^: p! K$ o
- (setq chk-lt nil)
( d/ V, i2 {0 i `9 X/ ~ - (setq ltype "Varies")
5 O) \6 e% T+ ^( ?' | - )
7 n% g9 z% [+ X. k - )
2 n; ~7 R8 [) ~- S6 c* D. Y - )5 E% L* M8 U9 c. c( ]5 w
) {$ Z. i- v8 n/ W: G7 ~- (defun match-lay (/ nlayer)2 d+ L5 [ y( U J# `+ s8 g
- (setq nlayer (cdr (assoc 8 elist)))
" G9 N$ U% _- B/ W2 V2 Q - (if (/= layer nlayer)# T, x! U; K6 P8 T' w7 A
- (progn
* _! b, q- O3 q! I- i - (setq chk-lay nil)
. M5 v; s3 b8 O - (setq layer "Varies")* _9 V1 J3 J0 {* @* k
- )
- @" z4 T+ X3 @. Z( b - )$ G$ o4 e/ G! K( u1 |$ S% Y% _
- )
6 Z6 ?8 ~% @1 c! z" `( @
' g6 f* k% I4 h6 ]- (defun match-th (/ nthickness)" d) l/ M5 {+ j
- (setq nthickness (cdr (assoc 39 elist))), Y" h" \4 b% Y
- (if (not nthickness) (setq nthickness 0))) K% ^- e: C8 R% }; W9 w
- (if (/= thickness nthickness)6 ?& F$ c3 p- D, o
- (progn
1 N% U, h8 O$ S$ i9 H d - (setq chk-th nil)
+ W g: p4 V0 O; N1 w/ \- L5 L' u% X - (setq thickness "Varies")' m" v! x) L4 u& z J
- )/ f7 I: L: f6 {, \# }2 u8 y, r( ~, W
- )0 u }/ g& D) O1 b& B: V
- )
* ^/ x f- y) T( @: R - % G7 E3 W0 r* c( d3 G
- ;;
, Q5 W' I1 \, [. T - ;; If an item is a member of the list, then return its index number, else
1 b( q& g5 G7 h( U6 H0 A - ;; return nil./ T3 ~6 e6 `3 _4 w
- ;;! a- }( s/ ]$ t ^+ J n
- (defun getindex (item itemlist / m n)/ V% C ~ s- B9 Z
- (setq n (length itemlist))
, U( u! A% D2 Z+ u8 j' W - (if (> (setq m (length (member item itemlist))) 0)
8 x) M% b( s' P- B9 p - (- n m)
3 N, Q8 @& m$ e0 e: o1 U" [ - nil' @% J- E- U- B4 f& \
- )
- k& V5 s1 i" k - )7 `8 f# C6 a% f5 Q' A
- ;;8 A( g( O1 y1 D, p
- ;; This function is called if the linetype is set "BYLAYER". It finds the
2 Z1 m1 l7 H$ u ? - ;; ltype of the layer so it can be displayed beside the linetype button.* I& l" V8 {: j7 ?! O6 b- J
- ;;% [4 q5 [3 h9 V# s; d& Z* x
- (defun bylayer_lt (/ layname layinfo ltype)7 H4 g! j$ p+ i
- (if lay-idx: T, m/ @2 {! Q* U. h" f
- (progn
. N1 c1 c1 N) C" G$ v3 b - (setq layname (nth lay-idx laynmlst))
) S p K3 J: [ - (setq layinfo (tblsearch "layer" layname))5 {: e4 c& t; h J# W/ ?
- (setq ltype (cdr (assoc 6 layinfo))): k; Q3 u' [8 ?/ u; h E% i; s
- (strcat "BYLAYER (" ltype ")")
$ k0 @- D' j2 n$ [7 v - )+ }+ q4 v. i b: J5 ^% R6 G0 J$ u
- "BYLAYER"
& h7 {; k) m& S' x# P5 _ - )
5 p m5 |7 G+ \1 d, P& N - )9 I1 j L4 r( u7 p
- ;;/ |3 @2 V$ t' e* v0 q& i* u
- ;; This function is called if the color is set "BYLAYER". It finds the ! K8 s K. w2 O4 k$ x
- ;; color of the layer so it can be displayed beside the color button., |5 L7 f5 M2 [3 E. m
- ;;3 s% `* t1 {4 d, g2 P
- (defun bylayer_col (/ layname layinfo color)7 ~1 v! Z7 k. T0 }: j: T8 k
- (if lay-idx
5 J( I- U6 A0 f' g4 | - (progn, D4 w- }. ]" m8 g5 j. b$ I
- (setq layname (nth lay-idx laynmlst))
1 S! E, [+ v( K5 h y) n; N - (setq layinfo (tblsearch "layer" layname))
" n$ ?& X; U. [ - (setq color (abs (cdr (assoc 62 layinfo))))7 G! M" m, W$ s' b' A) m
- (setq cn color)
4 t3 w% Z3 D7 Y - (strcat "BYLAYER (" (colorname color) ")")
, l: \: i! u' w% j/ `4 C - )
' r/ N# e0 P6 W9 \- j& o - (progn
3 Y2 P2 t/ c& s' I1 R. w7 m6 n - (setq cn 0)
7 }2 z( s% ~* }+ _/ x# q - "BYLAYER". a' n/ m7 D" n" \; ?5 Z- s- W
- )
0 l' o, Q+ a/ l6 \6 A2 N - )
- W5 Z- R4 W& U- a! W* r, g - )
! m3 H8 p, C: C3 x" G7 g - ;;, O: _6 R& X" ]1 X
- ;; If there is no error message, then close the dialogue7 L& ]. {$ u7 ^/ A
- ;;
+ Z; z* l1 O+ v' J - ;; If there is an error message, then set focus to the tile
p ~( c$ D1 n, y& | G - ;; that's associated with the error message.
+ I6 g' f1 p& }. k' L) {3 } - ;;& f Z o/ m9 n, b; E
- (defun test-ok ( / errtile)' m3 ~( g$ c j% x
- (setq errtile (get_tile "error"))
2 ]- D$ J/ G7 A6 M" f% Z - (cond
, H/ R0 o( {( g% t8 x# D2 { - ( (= errtile "")6 ?& U. n4 P+ d' V
- (done_dialog 1))
0 M' N7 U( c! Z) d& \8 e - ( (= errtile "Invalid thickness.")6 I3 @3 L& j; P5 s, `9 K
- (mode_tile "eb_thickness" 2)), ^2 q z _2 m
- ), I/ I+ f/ a0 h* A3 t) B
- )2 T: o& F8 l& V" v& V; W/ K s f
- ;;. R+ I, J, F: ]) j3 g) s8 s
- ;; A color function used by getlayer.
B R* h* `# `4 r - ;;( J! W, s" P: r# L* [
- (defun colorname (colnum)
7 H) [2 H/ ^# n7 }! { - (setq cn (abs colnum))
$ M9 y0 C) g, d/ z" A/ _ - (cond ((= cn 1) "red") l, `% y! X) b% P) k5 ~) M% f
- ((= cn 2) "yellow")8 H ^8 j/ F1 a+ S6 i: F, C# W
- ((= cn 3) "green"). n- b; m: D; N
- ((= cn 4) "cyan")
) P8 R, t8 q5 d; t - ((= cn 5) "blue")
; K& i8 a6 y- j# H - ((= cn 6) "magenta")3 |! R# A0 v; ]2 w1 a# D
- ((= cn 7) "white")- E- t, F7 B3 f4 c" I0 R
- (T (itoa cn))
: ]0 {: y- N2 N# v - )
6 o. }! z. b. t - )
: X% ^" v! K- _ y
5 g- Y7 O* m8 W' k2 h: g- ;;; Construct layer and ltype lists and initialize all
7 q' Z" [5 _+ G - ;;; program variables:2 p' g* ~) K7 k8 H
~+ F% z+ B( R. t) y! a- (makelaylists) ; layer list - laynmlst Y" T9 x: Y# x% r) c1 o3 d3 g
- (makeltlists) ; linetype lists - ltnmlst, mdashlist
, }/ [& _) [6 g$ y+ | - ;; Find the property values of the selection set.
0 c. a4 z/ X1 g- K: E3 G8 f8 Z# L3 f - ;; (getprops ss) returns a list of properties from
8 h/ Y' m- O# \2 Y0 a { - ;; a selection set - (color ltype layer thickness).; ?5 y a7 g2 v. n! ~8 K: x
- (setq proplist (getprops ss))4 n2 s7 d1 o# a
- (setq ecolor (car proplist))2 d3 q& |- ]8 Q- G! z6 V+ x# G
- (setq eltype (cadr proplist))
" V3 v8 _. \$ g# s8 T7 p - (setq elayer (caddr proplist))
* I. h4 P5 v+ b. b& A: c - (setq ethickness (cadddr proplist)). F. i9 d- K! l0 m
- ;; Find index of linetype, and layer lists/ \3 Z3 W% a; ^; W5 }
- (cond
: h) N% b l2 i2 n, U; P - ((= eltype "Varies") (setq lt-idx nil))
1 p/ u0 B3 C- B" b - ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))
/ f9 R: b+ I* s8 J6 I) e! T - ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
# A" J1 d6 O* l4 p9 f( A6 n - (T (setq lt-idx (getindex eltype ltnmlst)))8 a& G( W4 v& B4 r+ c, M; e: x
- )
& e6 l, r7 H- e( i6 q, ~% d - (if (= elayer "Varies")
" H# c9 K) r; w' U, M - (setq lay-idx nil)
d4 [ _& r8 \+ S1 i8 T - (setq lay-idx (getindex elayer laynmlst))
9 d; x. s# A6 s5 q% E - )9 E, z( G. C* I. r
- (if (= ethickness "Varies")
) [! I* b% g5 A- g0 g6 R - (setq ethickness nil)% p$ T& y. \4 g' Y' q4 o
- )
3 I+ k. u* m" O' d K1 \3 |
5 \9 I6 |- C$ I! M" L- ) ; end (ddchprop_init)
- V, i$ a1 R+ g" @9 K
/ Q" p& T/ A8 X: M( E, z+ ?" M- ;;; (ddchprop_select)
0 H0 ], e' [1 ~8 g - ;;;
; y) e' T) `, z0 u* v' m - ;;; Aquires selection set for DDCHPROP, in one of three ways:$ G$ X: m. T8 f
- ;;;
* L6 Z( v: Z$ |1 s1 H' ] - ;;; 1 - Autoselected.! k) O1 E9 }. O1 l, a
- ;;; 2 - Prompted for.
8 E9 x: z6 _3 V5 l - ;;; 3 - Passed as an argument in a call to (ddchprop <ss> ), I: {) j( t% {7 a# r* F5 w, {* A% y) J ^
- ;;;
; C0 J% F; q+ l9 I - ;;; The (ddchprop_select) function also sets the value of the
- f V( y% z& ] F P& w. C - ;;; global symbol AI_SELTYPE to one of the above three values to
) {8 |( p6 P5 `; z - ;;; indicate the method thru which the entity was aquired.6 x9 h' r* F+ N+ }
$ H5 j3 e g3 p- V7 @5 [. r4 f6 q" J# y
- (defun ddchprop_select ()
; b& {/ E9 o) Z; ` - (cond3 h% y% I+ O# w; i
- ( (and ss (eq (type ss) 'pickset)) ; selection set passed to2 R& R' ^- ]* [4 x9 }+ ^+ o
- (cond ; (ddchprop) as argument
8 q: M, v5 w+ q: C, r4 z7 C& J# f - ( (not (zerop (sslength ss))) ; If not empty, then, V$ w9 R, D0 _! z, i# m
- (setq ai_seltype 3) ; then return pickset.; Y# u2 |+ h/ C1 Y- p
- (ai_return ss))))
/ O4 q8 k" e# b1 `0 A - $ L: E5 ?5 u2 N, ]% i7 D
- ( (ai_aselect)) ; Use current selection
% i7 R( z% e$ V' y$ y2 a/ W - ; set or prompt for objects
# @ ~5 z- L5 K' v7 { - 2 Z0 q6 m3 J" i5 v4 h+ v
- (t (princ "\nNothing selected."), K% K0 b! u$ D
- (ai_return nil))
$ D/ s |& u4 {; d - )
5 D; d9 d) w* Y1 F2 F( c7 m) Q - )
% b4 \ Z- O2 W( T6 G4 F$ z - A1 \# s4 F7 B6 ?& @
- ;;; Define command function.
1 S9 f) W2 l: R: J - 3 |, M% t8 e" \/ B$ E1 q- E' w4 b
- (defun C:CH ()
- W7 d. w ]& O" `9 w+ u; E& t - (ddchprop nil)
. Q/ i7 b: }% o. A9 ]4 y7 \ - (princ)( M+ ?) e( \% m l; E
- )! j3 \# A& v9 g" z
' B. s2 W4 ^8 {% x# p6 u5 X2 l- e- % W. D8 O/ k r; n2 m/ M; V- ?
- ;;; Main program function - callable as a subroutine.% W3 K0 V h, C' x, I+ P; _
- ;;;
) Y, v9 G/ R) [8 J: U" V - ;;; (ddchprop <pickset> )7 \0 d) F: I2 A* Z4 [, q. r: ^4 Z
- ;;; E* ], P' Q+ `9 ?3 q
- ;;; <pickset> is the selection set of objects to be changed.
0 b W s6 _% R6 [9 g* d9 U' w - ;;;0 ?) Y# F& ?4 f
- ;;; If <pickset> is nil, then the current selection set is# q* G0 Z/ m$ N/ b0 g
- ;;; aquired, if one exists. Otherwise, the user is prompted* h) c, |- d/ @! r
- ;;; to select the objects to be changed.( j& ]! u* J4 B. }. _8 q
- ;;;
6 F0 r' ~* _9 [. {( l - ;;; Before (ddchprop) can be called as a subroutine, it must2 {9 @: W6 Y3 O0 m* b F( Q
- ;;; be loaded first. It is up to the calling application to
8 `9 H. X- @$ ^7 h1 n - ;;; first determine this, and load it if necessary.
; r( {( ]' l7 s% V) O5 x! M - 4 K% U2 U9 B8 r& Q3 _% j
- (defun ddchprop (ss / P0 G. D& j% s4 n2 V1 {
# g9 g2 n* L* T9 M* a+ }+ \0 T- add-mdash ecolor ltedit_act s
* V4 G3 v3 Y' B q7 R- [" ` - assoclist elayer ltidx selset, D0 Y8 G/ w! V& m5 T& i7 d) X0 |7 t
- bit-70 elist ltlist set_col_tile# s& v6 C, G& \3 A9 y+ U+ t2 p0 {
- boxlength eltype ltlist1/ N" @3 C7 w4 }4 D/ ~
- bylayer-lt en ltlist_act sortlist6 z, _: T! |: l1 }1 \( i; m
- bylayer_col ethickness ltname
0 H3 u/ ?: i6 | t& I( u6 y7 ~# |' h - bylayer_lt fchk ltnmlst sslen
. U( C; ^- X4 p4 U/ N" \: x# I; r' Z - call_chp frozth ltvalue templist) U7 ~1 [0 v S' O" x$ @
- chk-col getcolor ltype temp_color
7 h- g$ j$ o, w1 B- r - chk-lay getindex m test-ok
7 d' v5 Z3 z1 Q - chk-lt getlayer makelaylists testidx6 a1 t! j$ L. u6 Q$ c6 Y! O$ q
- chk-th getltype makeltlists testlay
! A0 W' ]) M* ^9 X# [% x. V - cmd getprops match-col th-value
7 k& p- k, _" _! i! Q2 O, ?' M - cmdecho getthickness match-in thickness- q+ z6 n# D: }
- cn globals match-lay tile! Y* v; {- J" k3 l( J! i/ O) _# k
- cnum go match-lt tilemode% b4 c& U7 h4 o' ~$ h) ^
- col-idx index match-th tile_rect
! c3 y2 |4 w+ Q: v - colname item match_col vi3 F! d. [4 d# m; N% |. q* d5 O9 k
- colnum item1 mdashlist vpf! P3 g. N, x( ]
- color item2 n vpldata
4 K3 I. g E6 \ @: @! V5 ] - colorname itemlist name vpn
+ m% @; Q/ x5 Z" g' A6 w6 e) o - col_def lay-idx ncolor x6 m# H' ]$ g* C {: p8 t
- col_tile layedit_act nlayer x16 x. f" s8 t, S: D3 ?
- ctr layer nltype x2
1 j5 b: ^, J) w$ K - cvpname layinfo nthickness xdlist
2 M6 ^' z \, A* d) L1 u - dash laylist off y& v/ A) D; y8 B* P: L
- dashdata laylist_act old-idx y1& n3 X1 R. p' s( w9 i8 R* ]" M6 h; r
- dashlist layname olderr y2
7 [7 P+ E3 m; C2 Q( k$ ^' A - dashsize laynmlst on undo_init
! a. F8 e3 q3 `, L4 U; g - dcl_id layvalue onoff
) T/ V3 M! V! P+ S* a - linetype patlist/ l) N" W7 }4 J, X
- ddchprop-err list1 pattern
1 R5 |: j, f9 m7 \! S: z$ n7 c - longlist proplist& b0 M* t! @. _5 ]
- lt-idx reset-lay d+ h. {5 I. T
- drawpattern ltabstr reset-lt
9 ]8 D! X, n% O7 m) L' ?( f - )5 h4 t' n0 Q! K' T2 K( @
. X5 Y/ o* g0 c9 }" K1 Y1 b* r! x- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho. q4 q9 }) j0 ?' @2 Q* }
- old_error *error* ; save current error function
4 T9 H" G) Q- r. O# n& i - *error* ai_error ; new error function
7 X& I/ q6 _7 R; [ W, A* m - )
. l* _8 X" g+ D' J, | - # ?+ F: l2 c# {& {: }
- (setvar "cmdecho" 0)' V: n3 g* y7 ]% @
- ' j0 r9 J1 Y- [0 E$ J" K' K
- (cond' `0 N5 {3 D5 d- a1 Z8 p
- ( (not (ai_notrans))) ; Not transparent?
; g3 c! N( ?' p" x) z- Y/ F( @5 p3 ] - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
$ }5 Y' Z) b5 N; N8 a' v( K - ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?% O6 z% M/ ]* D1 O
- ( (not (setq ss (ddchprop_select)))) ; objects to modify?; e0 [& W& ^4 F; d4 J+ M
- " c9 q9 [0 R4 t/ A- k
- (t (ai_undo_push)
/ W" G8 _% `, d) h - (ddchprop_init) ; Everything's cool,$ C9 z' s: m; E- [8 Y
- (call_chp) ; so proceed!7 w6 l' k+ M( P- T4 J( e$ m
- (ai_undo_pop)
) z. {( |- W% _; d, H3 r, E - )# j# T- [, \ A% H: G3 M, p L5 v
- )8 M$ O' D$ {/ \
- ( G# | d* R2 |' e
- (setq *error* old_error)
4 h& f {0 K; I- S - (setvar "cmdecho" old_cmd): q$ x5 ?' _. S' s
- (princ)
7 |% R+ ~& F( y6 E3 z! C1 j1 g - )2 c- x# ]) D- Q- _
9 k C7 }) Y6 @7 {; x4 {8 E6 y- ;;;----------------------------------------------------------------------------& o% q1 {1 u4 }
- * d. P; `0 \' m
- (princ " DDCHPROP loaded.")
$ B* S1 y$ W0 A - (princ)0 v' ~( ]7 {+ E/ b% z# b$ o; U
- / s( [! M& Q# v0 q" q
- ;;;----------------------------------------------------------------------------; H' ^; Z* t7 H/ E0 _6 ]
- / L9 e) W+ `6 s. j0 q g
- ;--------------------------------ddmodify.lsp----------------------------------
/ z: a2 Q) }8 F% I/ n2 ]+ C - ; Next available MSG number is 111
- h& n6 o$ E4 U' [& { - ; MODULE_ID DDMODIFY_LSP_
7 ?0 G) K( L; M5 e - ;;;----------------------------------------------------------------------------
' ]( w. V# g- m2 ^1 X% m q - ;;; DDMODIFY.LSP5 V3 |* a: B' ^. j, c+ ]
- ;;;
- n8 |& A0 q: X1 u, z/ b6 m - ;;; Copyright 1997 by Autodesk, Inc.
& t. l% ]2 K9 l2 f1 R8 s - ;;;
- B4 g3 Z/ A8 r% G/ Q/ z - ;;; Permission to use, copy, modify, and distribute this software7 v- g' h- E! e( l9 w9 h
- ;;; for any purpose and without fee is hereby granted, provided+ J3 W2 O# W) X; l1 \. z
- ;;; that the above copyright notice appears in all copies and) ^7 n. P& ?# a
- ;;; that both that copyright notice and the limited warranty and
* h l. M" i8 b4 O- Z- Q! ^3 L/ f - ;;; restricted rights notice below appear in all supporting
: C: v7 E6 P/ t# i% a8 x - ;;; documentation.# e6 t+ J6 y7 W, V& ^* ?8 ?
- ;;;
( ?1 j: b* ?, M; j) t - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
" ?+ f( K) N! x8 c* V/ K - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF8 v+ R! P! w6 Z; D+ {, m: k
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.7 ~. c- `3 j$ x, v7 A: _4 z
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
3 U3 x$ A( O3 \8 X4 ` - ;;; UNINTERRUPTED OR ERROR FREE.
; l$ @( b$ E' ?& A( @% ^ s - ;;;
6 U! X) K4 ?( s' ]7 H - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
: }7 Z$ a. V) i( S# x - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer; w* f6 d7 H9 L+ ^6 v3 i
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)* n6 R$ u8 x, v+ V; n! z
- ;;; (Rights in Technical Data and Computer Software), as applicable.! o3 Y5 d; c, f
- ;;;. o- y6 Y3 r r- W* E) O
- ;;;.& D- a- @& n& Z$ M' K% a& u
- ;;;
) U% j6 z+ v) e. d% @6 I - ;;;----------------------------------------------------------------------------. \3 s4 a( R0 K) [
- ;;; DESCRIPTION% w9 x9 G* H, I I9 l; v+ b
- ;;;0 } U7 O2 G: z8 c6 G
- ;;; This function allows the user to get a listing comparable to the LIST4 s5 U9 A$ N8 c
- ;;; command for most objects. In addition, most object fields in the7 x, j6 b+ K9 K% `8 A2 c! A( n+ Y- }
- ;;; dialogue box are editable. Points can be specified dynamically by
' i. F) B1 n* J - ;;; temporarily dismissing the dialogue box. Each object has a unique
9 \6 ~( j! |0 r - ;;; dialogue.
) v; \# M; _7 \" ~5 l/ C) b- L - ;;;- W8 F4 [3 d8 T* U1 K! @
- ;;; Naming conventions9 W/ b1 T. [+ R4 ~- T
- ;;; Long function and widget names may use an underscore "_"$ t7 q$ w# j1 {# Y* A9 }' t+ \
- ;;; in their names to make them easier to read, long variable
$ j8 y6 S! d: N5 @7 g. c - ;;; names use a dash "-".
a2 f( B( Q+ |4 [* T& |+ S - ;;;----------------------------------------------------------------------------
9 j- d! [0 y3 ]/ Q: P - ;;;----------------------------------------------------------------------------
& ^6 t/ |! O% ?' {. j! k - ;;; Prefixes in command and keyword strings:
8 \( C. R+ o4 h/ Q h" N: c - ;;; "." specifies the built-in AutoCAD command in case it has been9 ~. k# k: K1 A; D
- ;;; redefined.
6 t! L1 o# s# _& p4 H9 X - ;;; "_" denotes an AutoCAD command or keyword in the native language
- t! X3 A/ Q$ L+ J2 z0 M - ;;; version, English.
8 ]2 d6 M' Z7 W- W, J. ~ - ;;;----------------------------------------------------------------------------" M( a0 K% Y# g8 S8 i. ?# |# r
- ;;;
2 M9 {- B8 s8 H0 K. M, u* v4 q - ;;; Avoid (gc)s on load to improve load time.8 c; _; s8 I$ m# O" l
- ;;;/ U, u8 f# f8 H- l+ E
- (defun do_alloc (/ old_allod new_alloc)/ `6 [2 _& ?* f' N0 P3 Z
- (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
3 l. ?6 A6 z% q. v7 n1 s+ T - (expand (1+ (/ 17000 new_alloc)))
. e3 H' m+ k9 z. } - (alloc old_alloc)
$ H, i' c' `6 T6 B - )4 {3 F, m- m& T7 A( X) A
- (do_alloc)
1 c8 a- w8 t8 Y8 y2 u" { - (setq do_alloc nil)
1 Q1 x" O3 C* @- o3 S9 V- z b1 e
% K1 m3 [5 f+ N# K" s3 C: ~- ;;;$ o& U6 K2 ?8 [* o: S) m
- ;;;4 Q1 K7 G4 m6 f0 h
- ;;; ===========================================================================! B! Q$ |, {/ ^) ^, D8 G' M% s2 T& g
- ;;; ===================== load-time error checking ============================
4 z# W& q" w% a4 \( F& f* v - 7 T9 m1 F2 d: d& U5 A: B# a
- (defun ai_abort (app msg)+ [: C5 f7 q) |9 [! m2 @
- (defun *error* (s)
5 a" T" K U$ h5 f/ I0 w - (if old_error (setq *error* old_error))
2 k3 D# [! r1 N$ d0 }6 A1 ? - (princ)( z. R& {! l* m
- )
% A/ L2 Z) u" v4 [ - (if msg
4 c* W3 R- U. f6 l - (alert (strcat " Application error: "
& G9 I5 R0 [( r6 ?9 h# k - app, t" ?$ \+ X+ E/ B" a8 t; L
- " \n\n "
$ {) i" a: a' u z) O8 E - msg5 F2 b, ^, a' ~9 ~# E k, I
- " \n"2 v M, W( u* P/ k2 R
- )
) e/ a0 |( N4 c6 E/ b" P - )4 O! X3 R/ v L$ n
- ). j' O" m0 Z, j* f$ F
- (exit)! e7 T) ~7 Y M: h( W! c
- )
/ Q* j+ p' `0 `! V, ^$ @1 M
, P" _2 }5 s6 N O) ~- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,) t$ S5 a. B8 u7 O1 q$ X6 L R5 i
- ;;; and then try to load it. If it can't be found or can't be& l$ h. o4 H/ D3 e
- ;;; loaded, then abort the loading of this file immediately.( p( |5 h& b* P u! y
- 4 F+ O& K2 R) D; G+ ]# Y: e5 o
- (cond
1 D2 O. u* M0 Q. t - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
- l& M6 L T% j8 R! r! \
: X9 E% c! v+ D( x% \# _* B. G |7 o- ( (not (findfile "ai_utils.lsp")) ; find it
' @( {3 ]; m: v; Z D& r - (ai_abort "DDMODIFY"- P; T1 @6 a4 y! V+ ]7 r7 [- L" }
- (strcat "Can't locate file AI_UTILS.LSP."
) C5 S, q$ u( k5 q/ b" B - "\n Check support directory."))), n( u. q& U- Q# N- B, e
- 6 b2 i+ p3 P1 f$ ?
- ( (eq "failed" (load "ai_utils" "failed")) ; load it) V2 y' t# h; F2 t: i# U4 ^
- (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP"))
+ i' y, B7 }- f9 a e3 L - )4 |$ {) K! v# C, Z3 b+ T5 k. T
: m1 C; Y" p8 e! ?- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can- c' T2 z3 p. C* t* o
- ;;; be assumed that all functions defined therein are available.
& N* F3 `! P8 X+ I
4 c; @# T/ i- M- r% f8 P8 j- J- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort" ?4 c8 X% [0 A- _! M
- ;;; if the file can't be found or xloaded. Note that AI_ACADAPP2 f, P7 c; Q8 w
- ;;; does not abort the running application itself (so that it can
8 X. m3 S( M. @0 C& \5 K# {# Q - ;;; also be called from within the command without also stopping
2 L: U& Z* b& ~! B! y( X7 e4 h7 `4 u - ;;; an AutoCAD command currently in progress).
5 X# C9 c3 b7 d3 E2 D) y2 A
& z- b1 P! p. C! ^/ J. N0 D- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
" t! R; j6 P5 G" a/ Q2 f/ n - (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses# G( Z; e* l7 e( U, M
- ) ; ai_abort's alert box dialog.
! b7 Z6 h: b' E m7 t
7 @$ r6 g8 ^! l9 J) j6 x- ;;; ==================== end load-time operations ===========================
% d! D# e# Y5 }2 L
Q) l$ l$ u% Y$ x- ;;; global variables
9 O* P$ a0 ~2 Z3 Q - + v9 }, c0 p5 `& v: x6 A' t
- (setq hatch-elist nil), u& c( G* w6 w& F9 r
- , t( d# u$ E- |, |
- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are
3 a$ @1 x& a; ~$ k( \2 t! Z - ;;; assumed to be available.
- w" p- e# C! J( O: i+ _6 o' G
% V% S; |+ _0 r0 N9 k0 W1 N \$ ^- ;;; Define and encapsulate all subroutines that are declared( g$ B! ~% M |/ N. T1 y; j
- ;;; locals of the (ddmodify) function.% Z( \3 T! R T; @; G8 R& c# I
- 0 ?$ L+ R" \. D- M4 o
- (defun ddmodify_init ()
2 z6 C; T6 m: h/ b: ~/ v- X0 X/ \. d - ;;
0 N4 \/ b1 }: ?9 |/ V! q - ;; These three functions modify the enitity list for common properties. Since0 Q1 Y3 d$ F: P ~
- ;; color, ltype, and thickness are absent from the object list when they are
; d4 E+ c3 r; l - ;; set to their defaults (i.e. color = bylayer), a simple substitution using
" h$ b6 s1 R- y - ;; SUBST is not possible.
( @% |, f. t6 x - ;;( q. I& r5 O# i/ `; M% g
- (defun modify_properties ()# ~# J' U4 v/ E% H$ W
- (emod ecolor 62)2 O6 t7 O! y' z# \5 D% E
- (emod eltype 6)3 F9 D- d: p$ y
- (emod ethickness 39): j4 q2 J5 q: v/ S* F4 b/ c
- (emod eltscale 48)/ ]/ G' M8 q: G# _5 i0 I
- (tempmod elayer 8 nil)& \- W% a |: w2 e
- )% Y9 d$ u. p) v
- ;;
k, L, L2 W5 ] - ;; This function is used for modifying common properties of the ACIS7 p# t! e; h( A/ k) O8 {
- ;; based geometry objects. Thickness is not valid for these objects
. a# w2 o; K/ l! J q$ h - ;; so it is left out.
, U& \4 {7 c% m N! n2 i - ;;4 M( w- Y% ^& H/ f
- (defun modify_prop_geom ()
" J" I& K; b. K h4 R0 z - (emod ecolor 62)7 p6 H3 Y5 d* g& c2 B8 n
- (emod eltype 6)
: T, Y: D" [% ]: O) z. Z - (emod eltscale 48)
& |* N( M3 u% E# B - (tempmod elayer 8 nil)8 b }% K' I2 |
- )
2 o: G' D9 |. X - $ ], j; Q' R7 C+ Q) Y2 L! F' v3 e9 V
- (defun emod (value bit)
( |: d4 c- V) a& L' n8 m& q - (if (= bit 62) m, d$ g# A$ D, i
- (progn. y. I+ @5 Z; y
- (if (or (= value "BYLAYER")6 ?( j- w D7 M/ r
- (= value "BYLAYER")) (setq value 256))0 G, [+ O9 K- a# @$ q, y1 L' s
- (if (or (= value "BYBLOCK")
( W( r4 U/ ^% c9 C( `9 [9 X3 h: Z - (= value "BYBLOCK")) (setq value 0))
/ j( o- z, {. p) C% k2 H0 O - )' m6 S! @9 _+ Z# z" @
- )/ y1 x. u8 P1 `4 l i# z
- (if (setq oldlist (cdr (assoc bit elist)))# _' T9 C1 R, G
- (tempmod value bit nil)
, o u* t% J2 t" D* N - (setq elist (append elist (list (cons bit value))))
. m6 {6 k/ _6 q2 D/ B - )
) @) `; W9 g0 |' { - )9 ]$ |8 c, ^( S- y5 _8 H3 T
- ;;, A/ G0 o# w; S: r. H; @& V
- ;; Resets object list to original values. Called when the dialogue or3 C5 y2 h' F0 R0 u: v) W
- ;; function is cancelled.3 Q# |2 V" {% @
- ;;
b( ?6 u2 d* t9 O t* m9 H - (defun reset ()
+ s% F$ T$ `. T. {1 A - (setq elist old-elist
) v' u9 L3 K8 V% c8 m" e, `8 j# C9 _5 b - ecolor (cdr (assoc 62 old-elist))
$ f+ L4 x- [3 g, N - ethickness (cdr (assoc 39 old-elist))
# l# L+ Q! j. x+ u - eltype (cdr (assoc 6 old-elist))+ S, W" V, u# a/ o8 O U
- elayer (cdr (assoc 8 old-elist)). n& N/ _" g& \0 Q
- eltscale (cdr (assoc 48 old-elist))! Q; ^" N1 U0 P7 K: Z
- )
: o: h. Q F: Z( t$ W* K4 g6 \# @ - (if (not ecolor) (setq ecolor "BYLAYER"))& K4 l4 M# K9 P$ v$ L
- (if (not eltype) (setq eltype "BYLAYER"))9 ]8 W2 }1 G; u
- (if (not ethickness) (setq ethickness 0))
% \: s9 t& Q/ B; y+ S( ] - (if (not eltscale) (setq eltscale 1))
7 n+ }+ a& ?/ M, m# T: U - (modify_properties)
3 e1 `5 O- W% C, Z! Z* K: F - (setq reset_flag t)
* S7 t" x2 V& Z' D( i - (entmod elist)
( b% P4 \5 k" [' S! Q2 Q7 K* R - )( b$ T7 h& M1 ]' N) ~( _( F
- ;;# r& t3 d7 K) c! A. \% F. K
- ;; Modify object when dialogue is temporarily dismissed to reflect latest! a7 f* f: g g& Z+ J% q
- ;; settings of dialogue. It converts the point from current UCS coordinates to# h8 ?8 v4 V5 E. l, `
- ;; the proper object coordinates (world or object).% P# ?3 L/ K+ J8 t9 E# ^
- ;;+ ]8 M; r9 U: r
- ;; Arguments: value - in current UCS coordinates
1 `2 L+ [9 ], r3 Z0 Z9 K - ;; bit - object code (i.e. 10 for start point)
, |4 I( P3 J9 F+ t - ;; ptype - point type 0=world 1=planar* d4 h& i9 w& F- }5 n
- ;;
4 X7 y& j9 K1 J- n) K! t& @ - (defun tempmod (value bit ptype / newpoint)8 F3 e+ n+ F* _9 c w
- (cond
5 m" o) Q2 |/ n! l! Z3 O8 p9 |3 k - ((= ptype 1) (setq value (trans value 1 ename)))4 f! b9 q8 J! e( f3 O8 u
- ((= ptype 0) (setq value (trans value 1 0)))
, y2 m2 |/ s3 A& i1 s- ~ - )' Y3 }: V7 d: C l( f; f' w
- (setq elist (subst (cons bit value)" W, Q! R: j: O' ]: b. _6 u0 O1 ]
- (assoc bit elist)
4 e6 r) a! ~4 }: S: i - elist0 k( w5 l" O5 ^4 {5 A. m9 J
- )
' c7 x u0 s* j4 P - )
. w3 Y" J+ I$ K' M8 R/ Y! Q - )
1 q" _/ L3 ?. [% G6 u: Y" m$ O7 W/ s* w - ;;
6 T' s! E% R# W5 I* c8 U% ] - ;; The following functions are called after a dialogue has been temporarily
* c- `1 E& f* A5 X# V6 ] - ;; dismissed and the user is selecting a point. If a point is selected the8 K. N3 Y4 Z3 }" _
- ;; object list is modified and new X,Y,Z values set. If no point is selected: y1 P& Y, ^1 y @& |) E$ U
- ;; (null response), then the point is reset back to its previous values.
- @( S# b! x2 S. @ - ;;
% i( c# b8 j* U9 [3 w& k - (defun ver_pt1 (ptype)8 `( b) s: z. ~5 T$ p+ a+ j. f
- (if pt1
! I8 Z8 V. u" A - (progn1 i( n& K- t4 O' K7 h
- (tempmod pt1 10 ptype)
, S# }8 p( T. `0 N - (entmod elist)
3 |% z: r8 j& h0 T - ) c+ B- V8 @! I* N. W
- (setq pt1 (list x1 y1 z1))$ H3 e' Y% h( R9 E, T
- )
7 k! m- {1 |: i0 D/ ?: G. C - )9 a; ~" i/ E8 \: @9 d* X
- 6 r: E+ [8 ^/ {# m
- ; (move_pt1 <ptype> )2 k% x& `# G! |+ g- P1 E
- ;: n) {" {% _; G) r& Y
- ; Called in liew of (ver_pt1) to translate block insertions which( a: J* L/ i" z' q. Q& x
- ; might have variable attributes attached to them. If the distance
0 p% b- S7 y B0 I - ; the block is to be moved is < 1e-6, the move is deferred.3 `% O" ~# V2 E# S6 K! j) C
- ' v/ x; N* ]3 D) {
- (defun move_pt1 (ptype / basept hi)
: Q0 Q# F" c! [2 Q& |5 v - (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1)): B! a0 M# R% N4 p0 S6 X( O' [
- (cond. T P5 V; U! J; e, k0 ~
- ( (not pt1)* U! W. g1 `; l5 }8 O' |
- (setq pt1 (list x1 y1 z1)))! y/ C" l) y3 E, G& ~1 R
1 r# C2 F% C9 n: g( C+ G3 b- ( (> 1e-6 (distance pt1 basept)))7 \* P6 `/ b5 }
- - e3 M% w( y5 {( @8 i
- (t (tempmod pt1 10 ptype)
0 c* R5 d+ x9 A - (setq hi (getvar "highlight"))4 H* y7 _* C& s) F; @' `- ~+ _
- (setvar "highlight" 0)
* F4 X3 C. k5 E# t - (command "._move" ename "" basept pt1)5 K0 }) u. ]; J+ h
- (setvar "highlight" hi))$ g2 _% L4 |- L: S2 A
- )9 y2 y8 P% X6 C9 P# `
- )3 c/ |( ~) @, @* j. o
- * T* z* y6 j/ n z; v" D$ L4 S6 g
- (defun ver_pt2 (ptype); Q# c5 ]/ H2 x
- (if pt2
* O' t& T5 L$ T5 a ~1 p - (progn, [: y0 }, ~4 t$ D3 M9 B0 N. u
- (tempmod pt2 11 ptype)0 A3 P' u- Y$ y$ R1 A
- (entmod elist)! `8 J& u, r9 M' V& ] Q
- )
" }# m4 w0 r8 E! E; ^ - (setq pt2 (list x2 y2 z2))
+ [. `/ z5 U" _7 d - )
1 y7 C7 `6 f2 ^9 B3 a5 W3 c' p - )
) d) C5 u; F* v% T& j- i6 U* d1 p
) o+ h3 @" V+ ?) i5 \. U$ g- G, e- (defun ver_pt3 (ptype)# W8 o5 F4 Y5 F6 M1 g5 I
- (if pt3: @9 D P& I7 s7 l$ `
- (progn' r8 Z5 E, s* }
- (tempmod pt3 12 ptype)
# F0 i2 f0 G$ ] - (entmod elist)
" q0 {" Q$ q! l - )8 D) D2 M$ j; F) G, h
- (setq pt3 (list x3 y3 z3))
9 m8 {$ |9 X. V ~) A1 K% D - )
. }0 B! J3 M7 V5 y# `% P - )
5 _; |* s2 U) s/ m; @; k4 d$ {$ j - * q+ }1 t% P" Q" @( r
- (defun ver_pt4 (ptype)
$ w! R3 m$ ^% l5 X - (if pt40 b( P* `% y: J6 R. v4 Z+ o& p7 u) J
- (progn f" t: `# l! w8 r
- (tempmod pt4 13 ptype)
" S0 q/ x: U/ |. G, C - (entmod elist)9 {$ |, k0 d+ X# }
- )! l7 B4 d9 N9 F2 v( z2 s* T
- (setq pt4 (list x4 y4 z4)) c" j! @8 J9 h' e& h0 W
- )9 N I* o+ L8 V _. W% v$ o
- )5 a9 t9 z3 R+ b' n- a
- ;; Xline/Ray8 E5 _1 ~3 Z. B6 X
- (defun ver_xline_pt1()
1 |1 g E' \1 f' F6 C - (if xline_pt1
+ [6 T% o3 M& T" P/ i; i# l8 \ - (progn+ {) n! h% o' o n4 E5 S& M
- ;; convert to WCS.! p3 i" P& v" K7 y& `3 Q/ ~) L" a( ?8 |
- (setq value (trans xline_pt1 1 0))7 I1 _4 @3 d, S, _: ]0 n, D1 i' C
- (setq elist (subst (cons 10 value)
" i$ h$ x ?7 s1 D# l4 l - (assoc 10 elist)
4 ^8 [2 K! K- F: ], g4 } - elist
1 k* Z t' C! r1 E, D+ W* a" D1 e; N' ? - )
$ K; _" M1 s% ?. T% e- p) ? - )
7 v% M; a6 d# X- y+ P9 @% v - )5 u$ c& w+ u6 O. o) u8 j
- (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))3 _3 m& x' f- D% o" W
- )
6 w+ R( w% X% N+ Z/ _) ?+ o - )
: j0 E" w) T: \
" K6 T6 u4 ~0 `2 O( r- (defun ver_xline_pt2()
% J1 @3 i5 Q# s+ Y* o- g8 h8 R6 N! j - (if xline_pt2" U& d( `' W0 }9 H) T
- (progn- [- {. m+ i5 ?# i: ? y( p
- ;;
4 z# D% O# f6 `" p - ;; Calculate new Direction Vector WCS
1 ~6 m1 {& Z5 Q6 v - ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))8 P3 j3 P* F. n
- (setq temp_dir (trans xline_pt2 1 0))) t2 J% `7 a: [6 f9 j7 Z
- (setq temp_dir_x (car temp_dir))
/ ?4 H5 _" A5 q: Y8 L: N - (setq temp_dir_y (cadr temp_dir)) z' R* n9 I; b, T7 B" D4 U" n
- (setq temp_dir_z (caddr temp_dir))5 a3 p/ o( ] a/ j( Q$ P# q
. _7 U. F# j4 v% ~0 t$ i/ _- (setq temp_xline_pt1 (trans xline_pt1 1 0))
g9 t$ t1 `: M% B2 x! s$ l5 p& {9 Q - (setq temp_xline_x1 (car temp_xline_pt1))7 D1 E$ p) p) @% @4 z# [: j; H1 J
- (setq temp_xline_y1 (cadr temp_xline_pt1))% G. t; `* V) E2 l; ?
- (setq temp_xline_z1 (caddr temp_xline_pt1))
8 ?5 M+ |# o1 j2 z+ \& p! U. {
; H3 U6 K) X2 T; `& L, ]3 R2 s* y* S- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
% g# P7 i' i" x$ J5 s: [* V- s( P - (expt (- temp_dir_y temp_xline_y1) 2)
9 M5 S: X" o) O+ r* z9 Q1 `8 h - (expt (- temp_dir_z temp_xline_z1) 2)
; l( A6 C8 Q0 u - )))' w$ x+ r, [& @' L$ c, v$ i
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))+ T* S0 u) j# H8 _
- (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
) Z% w# k* M9 \. W# Y3 B4 ^ - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
# ~+ v' T# @' J/ ` - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))
$ v. T/ e& M3 J) }& a3 E2 k - (assoc 11 elist)6 z/ ~+ e4 F! x: x/ t* H/ w
- elist
* M, Z" ^6 {" H9 q7 j- S$ I - )5 T4 S4 g( O1 v
- )/ L% N: j9 X. }, n
- (entmod elist)2 i0 v9 p5 H `( |; z
- (setq xline_x2 (car xline_pt2))
% M& E$ q* d, Y/ @. y) F+ q0 Y: r - (setq xline_y2 (cadr xline_pt2)) i3 Y# J' ]. N' o+ E
- (setq xline_z2 (caddr xline_pt2)): t+ A' ^+ u- v1 O V* m, P
' t7 O* I* N( Y+ a5 Q
6 c8 e; K1 `1 T' _- )- x" f7 C. z3 Q n
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))" Y R, s! M! k$ o* u% B
- )# a0 K7 F! n7 @. S
- )
X3 k+ k' K+ `* b. E3 l
( f* n; N |: b" R9 Y% Q- ;;/ ?' Q7 R9 c4 B6 n3 G, }
- ;; Common properties for all objects
# u" P% }. Y( R; o - ;;# N; f- e* f+ z( s7 W+ G: ~0 x
- (defun set_tile_props ()
0 I$ B. O; p! l) _0 Z - (set_tile "error" ""), q* [4 a. u8 N. v4 W! w
- (setcolor)+ L3 p0 M3 s) e0 Z: M: e, H
- (cond
0 J1 X/ U' h5 ~( Y - ((= eltype "BYLAYER")
& J/ ^) y# \! Y/ i0 J% G - (set_tile "t_ltype" (bylayer_lt)))
* Y4 A: J% A0 _+ |' ?/ ?& K% p - ((= eltype "BYBLOCK")
" l% t3 F! s, |! J$ G& X. t - (set_tile "t_ltype" "BYBLOCK"))
V- N, {1 X2 q5 O+ ?$ Q - (T (set_tile "t_ltype" eltype))7 Z1 f# C, h9 z0 T! O. ?
- )8 o8 |# l/ j2 _* v- D q
- (set_tile "t_layer" elayer)9 H% J* a' e& b$ P. M$ U
- (set_tile "eb_thickness" (ai_rtos ethickness))0 ]# Y3 [2 f6 F; E
- (set_tile "eb_ltscale" (ai_rtos eltscale))) N5 X! x! F+ O& k9 I* C
- (setq which_tiles (ai_common_state etype))
: h, b6 o2 C* o. [# S) w - ;; Disable tiles if need be...
5 F) o3 s! Z, n- ?
1 g; D, m( K* z- e8 }9 j- ;; Layer Button and Text Field
. N+ G' p. Y8 N" o - (if (/= 1 (logand 1 which_tiles))3 w" `( {; }# _* a
- (progn: o7 |4 W1 o3 d4 A9 I
- (mode_tile "t_layer" 1)! k: }! j) z( r0 U
- (mode_tile "b_name" 1)+ O1 X5 s8 U4 R
- )8 M* L( n9 y: j/ F7 e( u# v
- )
/ [" v: E* {6 U/ i* l C - ;; Color Button and Text Field* v0 P; d4 `6 }- N9 X$ `1 O
- (if (/= 2 (logand 2 which_tiles))
$ V# f0 l4 N9 p$ |1 a - (progn: w0 V1 _4 q5 w& N8 M! S6 O; M
- (mode_tile "t_color" 1)$ r0 x7 m8 o+ r/ ] q& C: B
- (mode_tile "b_color" 1), ^* f- z, L8 v! F& t
- (mode_tile "show_image" 1)
) S0 J9 E% X' f2 `0 { - )
5 P$ H" G3 x) D" H6 @ - )
/ O! l9 l0 v' u* N/ t! t8 |% @7 v - ;; Linetype Button and Text Field2 J" O) ~1 G0 j2 l; d' }* t
- (if (/= 4 (logand 4 which_tiles))6 [( j, }' T& \ }
- (progn" F9 ^/ L$ O% @8 U
- (mode_tile "t_ltype" 1)1 J' n( s6 d1 A$ W; z# |1 B& \
- (mode_tile "b_line" 1)" K& d2 J- ~) Y$ k. j v, X S
- )0 x8 h5 Q/ C+ V8 H) O
- )
4 P% ]" M6 h4 D' E - ;; Linetype Scale Edit Field
+ ~! o# s) l) M5 m - (if (/= 8 (logand 8 which_tiles))
5 U' ^6 U! E: q- R7 S$ E - (progn
% R$ k& Z% Q' C% c9 d8 P; o- F - (mode_tile "eb_ltscale" 1)
5 s" S$ n' x# }- r+ V - )
) |2 i# n: a& m3 C( d4 C1 T - )) ~/ D# ~5 ^! F
- ;; Thickness Edit Field.! Y1 B% f4 H1 ]; g) r6 Z
- (if (/= 16 (logand 16 which_tiles))
2 ~ r6 A6 R4 t, d - (progn% h1 t% D# }* L; Z
- (mode_tile "eb_thickness" 1)
' q& {# Z: k @4 \ - )9 T" n# W, _( k2 ~' _# N8 q5 P: y
- )
7 v! _- ]$ z0 |; c7 D8 k, u - )
& D' J, T3 o" T7 Z+ ?$ } - ;;" d+ O4 V$ g2 U# W/ t) a. B
- ;; XYZ Point values for all enitites) b% D& a) Z) c( p: _6 n# u
- ;;8 v+ q9 R7 Z4 r& H0 W7 J8 c
- (defun set_tile_pt1 (ptype)7 f9 ~: T# f. O% L
- (if (= ptype 0)! |' g& O" d0 n) Y3 V
- (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))9 d# L6 U7 n/ d9 |4 c3 v
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))8 v" ~" I. r1 Q: b& ` \2 t
- )$ c; p( }. |6 h$ _3 H
- (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1)))) k- g y# k* g! S7 _6 a. q% z& w5 t
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1))))+ ]/ |$ U6 [# @4 a" l% i
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))& ]3 d# X! v! ?7 q. p) t; t
- )4 x' r* }! H: e
- (defun set_tile_pt2 (ptype)
3 ~; ]9 u3 r2 s7 N - (if (= ptype 0)9 L3 H/ `7 l/ O! q3 Z6 [
- (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))0 q2 h5 f0 p& C% A% k
- (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))* v) L* r# \) P7 \9 \
- )" R5 B" y* O6 D! A1 D3 x N" ?2 {
- (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))
( w# H3 s: }8 {. A6 h: H - (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))& v( @ B/ \* Y5 i1 K. `
- (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))2 g9 v0 _; Q# a# d3 @
- )2 w, X$ h. t, T2 M! M( C
- (defun set_tile_pt3 (ptype)# w* ]2 v; R, _! ~" k
- (if (= ptype 0)* Q. X j$ ?* b( u2 O" Z
- (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))
$ O1 r m% `2 N8 k - (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))# E) m! Y9 O3 T% d" e9 a
- )
1 l' b2 A" C! l9 H A - (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))
/ R* F4 S; d- M, M. u& [5 U" l0 `0 V - (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))9 A' L7 V& c6 k+ ^; w- H
- (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))/ \8 {. O% T( T. h% G* e
- )
, L) p: j# H7 x; b# p3 Q - (defun set_tile_pt4 (ptype)( C- p# k6 R5 n# T$ V. Z3 ?
- (if (= ptype 0) O3 v* P0 w1 f' F$ N& N9 ^
- (setq pt4 (trans (cdr (assoc 13 elist)) 0 1))3 F0 Y( @9 _- g7 s/ X$ U1 y& C
- (setq pt4 (trans (cdr (assoc 13 elist)) ename 1))
1 r$ E8 w8 A: U6 N* V7 F - )$ d3 ?" p4 l; b1 ]( E2 `1 D& j, h
- (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))
; R. O1 I, D5 T - (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))$ \ e" f7 z) p& n: p2 y
- (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4)))) ~7 p4 y {% p+ V; ~6 Y/ O" i
- )
! \' e! I# L2 j* z - ;;" s2 x& B& h' `0 B0 I
- ;; Xline/Ray9 M' n- Q1 m# f3 U! E; m0 P& ~
- ;;
# J7 [7 ?2 V1 D - (defun set_tile_xline_pt1 ()' V: R: o4 R+ n$ f' M+ B% j
& |! C9 d! f. Z3 R' T3 _0 n7 i- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))1 S: O. D" T( [. \- C
- 8 {% o1 I/ z5 @$ ^- x
- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))' D3 w" f5 e9 q& Z) g
- (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))& Z/ v. q3 Y4 y
- (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))2 D' \! n$ V3 P) ~! N( m9 N
- )
% _+ k( a# E3 M7 O - (defun set_tile_dirv ()/ Q" A7 l- e9 d" U8 C! W
- ;; Convert 11 group to local UCS (displacement)
! V- h9 |& @5 y - (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1))0 Z1 s2 g2 e) v9 e1 z
8 d3 L! k4 S6 `& e3 Z% K6 C- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))$ x! E4 M+ J6 f7 l: s
- (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))/ |- [0 {5 F0 x6 @0 H1 g6 a, X
- (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))) r7 p9 L/ N5 `$ h5 ]
- )& }$ y9 k, q0 y( l4 V% @
- (defun set_tile_xline_pt2 () ~- v9 M4 u9 N' H( G/ k e; B
- (if (not xline_pt2)
; B9 u& M) T( y/ }+ n9 i+ H$ V - ;; Initial second point is Root Point + Direction Vector
* H& A# L; e* ]7 X - (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))
6 }: H! A9 _, v9 P - )3 G6 Q" Y: v- A# z6 e
- (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))
9 X$ m! }& M8 u* O - (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2))))
8 C6 i4 K; h U6 w$ E3 t - (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))7 @5 c* }" X& s! K" _' y ?) S
- )
5 x5 x& }1 @# o- q- \/ l1 \
$ y" Z# f& X+ ]5 |" {- ;;; a- a m4 E3 {+ F: B- X" a6 \; \! Z
- ;; Handle for all objects# `: J! m' j; ~3 a
- ;;& F2 T9 Q8 Y$ t Q
- (defun set_tile_handle ()
8 z9 Q! k& u4 u1 x) v/ O - (if (setq hand (cdr (assoc 5 elist)))# I; f3 g1 r8 r0 u+ B8 A
- (set_tile "Handle" hand)
. w. U% X. m+ Q) h' B! b - (set_tile "Handle" "None")& S" U) x% p% o: w+ i0 h
- )3 }) z0 m( A" A8 a
- )2 J" r/ }6 X& ]
- ;;$ h, ~+ j5 `! Q
- ;; Radius for ARC and CIRCLE8 |# l2 V# ?( j- ~$ j! V& Z2 @
- ;;
6 J# i ~7 p9 E, V - (defun set_tile_rad (). G! n8 j1 u' |5 L; a, P
- (setq radius (cdr (assoc 40 elist)))
* m9 `! D" _3 d0 _8 ]- C9 Q o) W' S U - (set_tile "radius" (ai_rtos radius))
2 E# T5 Z4 J8 w$ ? - )3 q, G' n# R; t6 z6 d
- ;;
" s0 p9 l0 @5 S& `; o. C0 Y - ;; Start angle for ARC
9 M0 F+ z% w; Q% Z; I - ;;- D; u8 v: N( L s! K; A
- (defun set_tile_stang ()
; s; [. h4 f) M - (setq st_ang (cdr (assoc 50 elist)))
, k- H1 O6 x: Z6 W7 K - (set_tile "st_ang" (ai_angtos st_ang)). q1 m1 W% w8 Y( }$ d
- )
! n5 m5 t$ L5 U8 z$ a3 j, j# @ - ;;
9 n1 N" {* N" I! W2 n# D - ;; End angle for ARC' e) T( ^: A1 a* f. v' \
- ;;8 F8 D0 h3 K _* a9 T3 O
- (defun set_tile_endang ()
`1 l6 S% q/ t# P) X9 x0 j1 Z - (setq end_ang (cdr (assoc 51 elist)))5 S# T5 q' l( q' m3 u% }
- (set_tile "end_ang" (ai_angtos end_ang))# l7 y4 b" n- F
- )
4 z* M7 _, v. ^) l - ;;1 r ^% ]) h6 F* \
- ;; Rotation Angle - Text, Attributes, Block insertions and Shapes2 Q3 F0 ]; U4 ?+ _" d# y- {6 ~4 j) L
- ;;% M2 x/ o& G$ j' j/ B" F3 u2 [3 {
- (defun set_tile_rot ()
0 ?( q5 {/ u0 d* ~ - (setq rot (cdr (assoc 50 elist)))# o/ }/ S3 ~ N9 y2 S) K) [
- (set_tile "rot" (ai_angtos rot))
! O% n$ {0 m. o; G - )
" J; l" t9 p/ g2 E; Z1 u: S+ ^) W - ;;" ?5 Q' Y- R8 `+ N$ V& f
- ;; Height - Text, Attributes and Shapes
1 B+ e& y+ t) P/ P - ;; w1 V7 M! Y' c# b, U
- (defun set_tile_hght ()
% p L5 J0 O* E& _* c0 y5 v( e - (setq hght (cdr (assoc 40 elist)))
% s( H% t2 N% T - (set_tile "hght" (ai_rtos hght))9 n# h S) K9 ^8 }' G5 w
- )2 J4 H7 @% \3 O, Q6 B" b# M/ a
- ;;
$ h% Y! a- Y; J( I; h9 ~ - ;; Width Factor - Text, Attributes and Shapes
. J, P* e& r7 @( j7 o, {! @. c2 D - ;;
( H/ g5 W9 ^7 w$ i1 [, v8 \ - (defun set_tile_wid ()
( D8 D; d: p# v% i5 G2 z - (setq wid (cdr (assoc 41 elist)))
! M1 [! ]' I8 E8 K, s$ Q - (set_tile "wid" (ai_rtos wid)). G6 k5 s/ D9 d5 V' {( m
- )2 L# R( a4 c" L0 Z8 G: N" f& c
- ;;
" x5 E) z+ I% S0 [ - ;; Obliquing Angle - Text, Attributes and Shapes, `0 t+ a, G) V% g( c
- ;;
/ A7 |6 S4 g" o/ z - (defun set_tile_obl ()' g# t: i* p3 J
- (setq obl (cdr (assoc 51 elist)))
0 y3 e( M7 X; J$ A" N$ T9 I - (set_tile "obl" (ai_angtos obl))
1 |4 n4 N' l9 g: M4 D# f - )5 @& Z' Z1 ?3 F
- ;;; B; [ W Q9 ` _
- ;; Text string7 O2 h# F* J) @3 E9 o/ Z
- ;;7 ?5 \2 I# F6 ?5 }7 d5 f
- (defun set_tile_text ()
Y$ ~. K1 y; m8 h" T - (setq text (cdr (assoc 1 elist)))/ ^! y( f$ u. i! z
- (set_tile "t_string" text)9 g4 J+ B% Q; h: L5 b
- )
/ ~3 M e7 [8 A+ _ - ;;4 z: G$ f! J5 S1 x5 }( W- @
- ;; Attribute Tag: |) y0 O L* q, P9 h0 e
- ;;
6 z2 z' h2 o' U7 \9 v$ E" }6 C5 O1 Z - (defun set_tile_tag ()! t2 |/ v" D5 d1 |) C
- (if (= etype "ATTDEF")
( a# P. K; A0 j1 p! d - (progn
# m8 O& `: ~$ D4 E t - (setq attag (cdr (assoc 2 elist)))- f N+ y1 q! A- c0 Z
- (set_tile "tag" attag)
, l$ n( A3 L9 F8 F& p - )
6 ~3 _+ G: V# X1 ~2 Z9 F* a - )
# o5 W# {. h& n4 K - )
) t7 q% G( R2 Y - ;;
2 y+ c. x: f0 G1 M - ;; Attribute Definition
0 P8 s6 H6 V: _$ E8 q# T/ | - ;;* v; ?+ g% m4 R& S- r+ t7 l7 \
- (defun set_tile_prompt ()
9 F% D8 e# x9 I' u5 s, s9 }; | - (if (= etype "ATTDEF")3 q# c: n* z8 [+ O6 }: a U
- (progn
+ U4 t* I# b; l - (setq atprompt (cdr (assoc 3 elist)))
2 }. b+ g7 z) W - (set_tile "prompt" atprompt)
9 @8 l- u; J+ h7 a4 [. Q" T - )
5 v% D4 Y1 i. M8 j - )
' i; o1 P4 D8 { - )
J0 ^& p4 m6 ~% e - ;;/ D) |. ~8 o$ [2 a5 u
- ;; Justification setting for Attributes and Text. Initializes
. R7 B( p& m0 B- J" v, N: ^ - ;; popup list box( d d2 \) G8 B R" k6 D( S0 Z6 z
- ;;
( U4 [# Z) R1 O- U. h& ?( M - (defun set_tile_just ()" E+ Z, e8 x9 v
- (setq ha (cdr (assoc 72 elist))) ; horizontal alignment* E* i# H: ~; T& e5 V& v" x
- (setq va (cdr (assoc 73 elist))) ; vertical alignment; E6 O6 ~& p+ K- |& c) ^% A
- (setq ha-prev ha)# h0 Q" g u) h1 l- {- _# U3 j
- (if (= etype "ATTDEF")
9 m( w# E- R5 V {$ f: Q6 m - (setq va (cdr (assoc 74 elist))) ; vertical alignment
0 L" N6 S* P) n% y - ). Q( z6 t. J7 l% E( E; o$ k! e. n
- (setq jlist
0 q- f2 z( e0 A, b5 j- C5 s - (list "Left" "Center" "Right"" `# x4 c- P+ p; h+ e
- "Aligned" "Middle" "Fit"; N* }" Z* `1 e3 l& ]1 y' P
- "Top left" "Top center" "Top right"
: y. t+ X8 u% h# i - "Middle left" "Middle center" "Middle right"$ n& g6 b' p- B
- "Bottom left" "Bottom center" "Bottom right"! y4 \& u% G6 `
- )
, F% d, ?- z5 n. j' z9 K4 z - )8 x$ ^' ?; P" ~4 B6 G
- (start_list "popup_just")( X% S! R9 b0 q9 ^& T) G5 F
- (mapcar 'add_list jlist)
* _2 c( u5 N( w3 Q( z* O# d - (end_list)
0 F7 L: y! v; S0 o$ q - (set_just_idx)
# ?4 u& u0 B8 l& ~! U - (set_tile "popup_just" (jlist_act just-idx))' N. U5 J, P; A2 w& W
- )& u, ]/ ]# O5 c: t7 M+ d" Q
- ;;0 l) U# n" O4 u% _8 v' I- I' W
- ;; Style setting for Attributes and Text. Reads symbol table for popup list+ s1 l# R! R% f( @/ T
- ;; box.
. G ~3 K# {, @1 D C+ H9 L - ;;* U4 F3 f+ G- Z7 Z8 ?8 }' D
- (defun set_tile_style (/ sname style-idx tlist)
4 u2 b& h% j8 C9 ?$ E2 I - (setq tlist (tblnext "STYLE" T)8 J; m$ ?4 {& X j T
- slist nil)1 K- A7 a) i$ Z$ k
- (while tlist1 w' h; W: f- y/ U& K1 a, e
- (setq sname (cdr (assoc 2 tlist)))2 k m! X/ H" h! c2 {8 g- ?
- (if (and (/= sname "")" B. [0 w0 z o* O
- (/= (logand 16 (cdr (assoc 70 tlist))) 16))# D# H+ L2 f! k2 \/ l
- (setq slist (cons sname slist)))8 ]/ b, A% ?1 \5 R
- (setq tlist (tblnext "STYLE")))
6 Y& u. v" I3 O+ H - (if (>= (getvar "maxsort") (length slist))* G7 E& F+ p6 J m
- (setq slist (acad_strlsort slist)) ; alphabetize style list& D g% C9 X# \1 R4 C
- (setq slist (reverse slist))) ; or reverse it to put it in DB order
! b" e" o# h, h - 4 J# y2 k: k) }2 d0 b" p: Y1 N/ D
- (start_list "style")( b; u7 \8 v$ l& _/ w3 \( A8 \
- (mapcar 'add_list slist)4 A" {/ ]' e" j* f+ B& l& Q
- (end_list)
; ~( O ~+ P3 S' x/ k - (setq tstyle (cdr (assoc 7 elist)))
& {. R7 f! s1 H& z, S - (setq style-idx (getindex tstyle slist))
- G. |& ~0 f- F& s) Z$ S - (set_tile "style" (itoa style-idx)) q% e+ ~; @+ b& M5 ]$ ~
- )
% t# X5 ], f* J" m6 @, o" `/ n$ j v - ;;6 y! n0 I4 z& G- N- }
- ;; Text and Attribute setting - upside-down, backwards
x% Q# Z# n$ _; |6 P# y - ;;; ]( K6 p$ F; k, s4 M
- (defun set_tile_bk-up ()
, ?9 q; ]5 ~( z$ v( _ - (setq bk-up (cdr (assoc 71 elist)))# K8 E0 U Q! O
- (if (= (logand bk-up 2) 2)
0 M5 ?6 h- i$ v4 ] - (set_tile "bkwd" (itoa (setq bkwd 1)))
' \& U- g* Z& w2 K6 h- B; O+ U+ { - (set_tile "bkwd" (itoa (setq bkwd 0)))
9 X4 e8 J7 I/ |" V! A- ]( x - )
5 }3 ^" e8 I- ^ - (if (= (logand bk-up 4) 4)
( ?1 T9 d4 b4 a - (set_tile "upsd" (itoa (setq upsd 1)))6 k$ _- `0 W* p( z& Y
- (set_tile "upsd" (itoa (setq upsd 0)))
) G3 c2 J0 v: K3 L" j# P5 c6 @ - )
; R! v% d& g+ E& b( A' e6 T - )3 h: Q' `: u+ a% ^
- ;;
! h/ F$ q/ X \& [* \( W - ;; Attribute setting - invisible, constant, verify, preset
' Y1 j; U' Z' P' |. N; i9 Z/ ? - ;;
4 R/ K( _! e0 ?' X7 g. t' j - (defun set_tile_icvp ()+ M& n# s0 ]) j3 V1 O; z
- (if (not (setq icvp (cdr (assoc 70 elist))))
- l# {/ k) ~( k- K - (setq icvp 0)2 V2 {2 b V. i7 O6 E3 ~
- )
# c5 N. @( c# a2 @! f - (if (= (logand icvp 1) 1)
2 q4 Y9 ^% A1 U6 m - (set_tile "inv" (itoa (setq inv 1)))$ ]8 _2 C4 v) Z3 }0 S
- (set_tile "inv" (itoa (setq inv 0)))
- C% f" }+ J) ~ - )# V# J2 U, q* B3 a) c5 C# e5 r- s
- (if (= (logand icvp 2) 2)
0 q1 j% J. u: J - (set_tile "con" (itoa (setq con 1)))
0 {8 P. Q0 S( w& [ - (set_tile "con" (itoa (setq con 0)))
+ @9 v0 M' e8 f, d+ N" f. x; ]- W - )
% a6 q( A0 l! J5 H" \ - (if (= (logand icvp 4) 4)6 `% {6 ?; q6 b* G9 I: Z/ g0 J+ q9 U
- (set_tile "ver" (itoa (setq vfy 1))), m5 k3 J [6 X" a! ^
- (set_tile "ver" (itoa (setq vfy 0)))% u3 s5 q, @! Y2 W0 Z( p
- )
- ^" x8 L' _ q1 m8 F/ P0 G - (if (= (logand icvp 8) 8)* T' W4 Z1 r! f m! y
- (set_tile "pre" (itoa (setq pre 1)))
6 `7 b' R" z# J. y7 Z, h+ h0 \ - (set_tile "pre" (itoa (setq pre 0))). g- d2 U3 f# U
- )$ H8 w8 c8 M/ t1 N: _6 X; u
- )
! D# V) o2 {' Q+ ?3 j* r9 m) R - ;;
6 z& `- w. e2 s, d( F! B0 E- y - ;; Scale factors for block insertions
, B. b( s/ A5 o4 m - ;;& B0 H5 r& k2 r- X! o p2 [5 ^# |
- (defun set_tile_scale (/ temp)
2 z0 p& ]( |, e: p! c6 G( b! i4 _" {! U - (setq temp (getvar "LUNITS"))
2 ~0 k4 V1 O V+ D5 m) [" w/ t8 k - (setvar "LUNITS" 2)" Y1 p" D8 ]8 i" ?
- (setq xscale (cdr (assoc 41 elist)))8 A$ L+ }$ i* s( y
- (set_tile "xscale" (ai_rtos xscale)); n$ ~, b, q3 V% H+ j: j) Y
- (setq yscale (cdr (assoc 42 elist))): v+ ]1 W4 v% g, C2 N3 z$ b: A3 m7 K
- (set_tile "yscale" (ai_rtos yscale)); s; Z6 ^4 e+ @' y6 J
- (setq zscale (cdr (assoc 43 elist)))
: }9 A% z7 ]: n+ r5 Z - (set_tile "zscale" (ai_rtos zscale))7 T( z! J6 D! y7 t( w, `
- (setvar "LUNITS" temp)' @5 m1 H& s' T! ^& n2 l5 r
- )
! F" z$ m, G4 X1 l. U7 \/ Z% F - ;;
' u9 G' t4 N8 j U) M! |, ` - ;; Rows and columns for block insertions
8 b' a8 t/ @7 z( V - ;;# @$ m$ u5 O, G& x$ n( E
- (defun set_tile_rc ()
3 _9 `6 \9 m& {2 r9 o/ u - (setq columns (cdr (assoc 70 elist)))
6 t2 ?6 e& B' }: h# h - (set_tile "columns" (itoa columns ))' \# o/ t. i3 R# A3 X9 ^3 b# o
- (setq rows (cdr (assoc 71 elist)))
; L) |0 S1 S' s7 a - (set_tile "rows" (itoa rows))2 x8 k! s) i) P$ ?7 o% w1 s
- (setq col-sp (cdr (assoc 44 elist))), w8 A6 o5 P, L0 [3 Y2 P& T; x
- (set_tile "col_sp" (ai_rtos col-sp))
3 W1 f D/ J) X9 S# P" c - (setq row-sp (cdr (assoc 45 elist))). E/ ~+ E2 k& m/ e% f+ g
- (set_tile "row_sp" (ai_rtos row-sp))
" z1 ^3 Z# p) Z2 `+ ]8 Z$ q8 M1 Y - (if (/= hasclip T): D; @, j n4 ~! Z5 n& R9 W
- (mode_tile "xcliponoff" 1)8 E D# N) M# A4 J9 |; z7 {/ p( S4 X
- (set_tile "xcliponoff" (itoa xcliponoff))6 p! h E: e6 L' s
- )
. D0 _. P2 n- t" p E/ L5 b/ S - )
3 d$ c+ g; K: e - ;;- y6 B- M0 J* U) J8 I5 Z
- ;; Invisible edges for 3DFACE: V7 S. P X# V2 ^
- ;;( i$ d: Q" A9 }9 v: A7 [6 P
- (defun set_tile_edges ()
: J H: t1 G3 y; G. ` - (setq f-vis (cdr (assoc 70 elist)))
6 R" X+ \) j: i3 ]+ S- M. z% J, {. H - (if (= (logand f-vis 1) 1)
& u; n8 R X/ G T: r - (set_tile "edge_1" (setq edge1 "0"))
6 J+ i7 `; `' K) y% ]9 _ - (set_tile "edge_1" (setq edge1 "1"))9 v) O) L( @+ Q! X; c( t% s
- )
! A6 d W. b$ r - (if (= (logand f-vis 2) 2)
( I B M8 n- V - (set_tile "edge_2" (setq edge2 "0"))
! I& K+ T% |+ }4 V. o( @ - (set_tile "edge_2" (setq edge2 "1"))6 c! N: p% a- Y5 O9 S% h' ]
- )
$ G: u' x( O0 F' ~! h" d% P - (if (= (logand f-vis 4) 4)7 T! k- {/ u+ J, O+ N6 K$ Y
- (set_tile "edge_3" (setq edge3 "0"))7 s" w# Z/ F& R: |
- (set_tile "edge_3" (setq edge3 "1"))
" ?0 y% n+ D6 J! M+ y7 n - )
! C% e; U& J- H - (if (= (logand f-vis 8) 8)
: m9 {+ i0 w6 W1 S3 @: q% [6 S$ | - (set_tile "edge_4" (setq edge4 "0"))7 x4 X! ?/ }. J9 `- F; N0 Z
- (set_tile "edge_4" (setq edge4 "1"))5 A& P( t' i* w* O/ g2 q$ e$ I
- )
; ^* c4 o9 T. C1 J0 f' h - )
2 T+ m2 a& _1 o% Z! p7 W2 H( Q - ;;* ^/ {( @) g: _7 w7 h6 ~) G
- ;; XYZ Point values for polyline vertex' ?' i8 ^) G& @( d' S
- ;;2 }3 U" C+ X. x
- (defun set_tile_vpt (ptype)" t$ [- K2 Y3 S: @6 Q$ Z5 S0 k9 Q
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")0 }, H. _ |/ E0 I! v/ }
- (progn
. V) K: b7 W" _2 ^4 U- a2 P3 R9 k3 o - ;; ctr is 1 based, vertices are zero based.# K7 k1 k0 |% C1 O3 A
- (setq vpt (cdr (getLwVert (- ctr 1))))- M* G2 A# ]+ Q" x C
- (set_tile "xtext" (rtos (setq x1 (car vpt))))
% j3 S$ h7 ~, } - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))6 w2 t* ~& g2 y. m* E; l
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
$ p3 E: G5 h6 ^: J& ^# u - )! z! w- s2 V9 M
- (progn( q7 [' e& \% Q0 q+ c
- (if (= ptype 0)
1 t% }4 p1 [8 C/ X - (setq vpt (trans (cdr (assoc 10 vlist)) 0 1))" ]% B) f* h- a7 W( A5 Q
- (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))# a2 \2 B7 b K! n7 g! x/ ]1 l3 a& j
- )
?* p! q# X P
5 O+ D0 {) a/ w' Y, |- (set_tile "xtext" (rtos (setq x1 (car vpt))))
! a$ u5 b0 H) ~5 z - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
& E* @+ X. N3 d, i- ]3 x - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))/ b* n' z ^* ~9 n- ?
- )& k" C+ f/ Q1 ~' J
- )
$ x6 z3 @+ \& ~ U6 q j - ; A$ p3 K& X" K" l" D) u1 a1 ~
- )! R* l- \2 D- y7 G6 q) q9 {5 a
- ;; This is the equivalent to doing an entnext on the heavy weight
! j& n& C0 G4 o" r# W - ;; polylines. The hard coded '4' below allow stepping over the
# X+ S3 s9 b+ j% T1 c# ? - ;; 40 41 and 42 group code information. The while loop finds the
0 x2 I6 Y. S% W0 q, b" Z - ;; first vertex which will be used as the starting assoc in the
$ y" p! u' j( G( H - ;; call to nth.
. O2 L9 ?' h! u+ d- [: k H - ;;
# S8 Q& \6 k; _$ f" _. m - (defun getLwVert (tmpctr / count tmp)& q( T' e5 R% u! y4 {; T
- (setq count 0)3 P+ l. d. l8 n& {6 v" Q) W
- (while (/= (car (nth count vlist)) 10) N4 [, x, G+ Z" n" `% d0 B% _0 l
- (setq count (+ count 1)), N8 h9 a4 w, N" P
- )
0 D. B1 {- {+ } Z& { - ;; If the counter reaches the number of vertices," v3 Z. e5 V" Y O. [
- ;; reset ctr and tmpctr to zero again.* n8 t8 J0 p: ?: d
- (if (= tmpctr (cdr (assoc 90 vlist)))& p8 g' N. e |0 |
- (progn
6 M* s" b+ ^/ ^- Z! L - (setq ctr 0)
! N4 W& W- l' C8 g, r - (setq tmpctr 0)+ h6 U2 R+ h. u( N* i8 _! O7 b2 [
- )
+ M; { m# p3 K* j S - ): Y, r: R! ?! O @( |& O6 e
- (setq tmp (nth (+ count (* tmpctr 4)) vlist))$ G1 ~! ?% s3 [' O z
- (setq tmp (append tmp (list(cdr (assoc 38 vlist)))))1 i# K( n$ e7 }: W3 ?
- (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))/ }/ e/ s: c' N0 M2 r# L8 _
- (setq tmp (cons 10 pt1))
7 U# T2 m6 L5 e( [, l - (setq tmp tmp)- ~& G3 w+ M( z$ \8 l
- )) ^) h, i0 ~* q3 {% R# O
- ;;) A4 I! m9 s2 C/ q; k6 U
- ;; Set tiles for Spline properties. If the spline is rational then we* r f& T# b( I
- ;; need to display the weight values of the control points, so set
- H# D& `3 s: G) x1 p1 I( [ - ;; flag to 1. P1 r0 x" B- P" v. l& `9 Y' j6 o% e: r
- ;; 1 = rational spline
' L% F* B5 x4 x" k% X; x2 y - ;; 0 = non-rational spline6 R" Q0 t! N+ j' l0 ^
- ;;
3 \% V1 O" N5 }( r, T8 [ - (defun set_tile_spline_props ()+ D3 e! d# l& H. W
- (setq rational_spl_flag 0) ;; initialize rational spline flag* Z) F* L, h" t0 j5 U) n7 J/ V
- (set_tile "Degree" (itoa (cdr (assoc 71 elist))))- `; V: g! G W* q& [& R
- (setq bit70 (cdr (assoc 70 elist)))
, H: _1 r' j k+ Q2 s) a; {7 Y - (if (= (logand bit70 1) 1)
7 B# G4 T% g% Z* R7 ~9 o - (set_tile "SpProp4" "Closed")& }4 J' t( z3 N3 p; P) ]/ f
- (set_tile "SpProp4" " ")
' D0 @; s, z1 {3 Y9 ~( W: w- `- U - )0 h8 ?. T* W3 E6 q2 j$ s( r4 y
- (if (= (logand bit70 2) 2)3 d& H9 D% H" H+ b8 m* [
- (set_tile "SpProp3" "Periodic")
, L+ b4 A4 h- K( h2 l - (set_tile "SpProp3" "Non-Periodic")
4 F! [# A/ B } - )
0 K. i; K6 [7 Q4 D! h: I - (if (= (logand bit70 4) 4)
7 e& Y( \7 N" \# W& X! l - (progn9 u% X* X/ k2 E0 _' }* X
- (set_tile "SpProp2" "Rational")
?5 w4 \( b* w) H: W - (setq rational_spl_flag 1) ;; this is a rational spline
3 j" t, Y/ R s. f - )4 h, J3 ]; j7 m T& d% R6 X
- (set_tile "SpProp2" "Non-Rational")
/ D. X6 P; u3 X% K/ m( X - )
' f$ ^; ?$ U& J g/ ` - (if (= (logand bit70 8) 8)$ j1 R& t7 Z3 _; Q: V* C, ]3 ~ @" t
- (set_tile "SpProp1" "Planar")
; W+ q4 d2 u# L - (set_tile "SpProp1" "Non-Planar")/ t; n% {2 k1 @' V; l( }* ^7 E
- )- g7 D6 N/ N# c1 U" R+ H
- (if (= (logand bit70 16) 16)
5 p" r3 _: H" t - (set_tile "SpProp5" "Linear")/ k3 @0 a7 t1 h: o. \6 b
- (set_tile "SpProp5" " ")5 z" n* T% Y- c6 {- u/ K9 w5 [' F
- )" M- A" W/ ~* b4 k+ ~. g
- )- L% m; p2 [- \ q. f8 U4 ^2 x0 ]
- ;;% P6 g4 ]9 G2 ?
- ;; XYZ Point values for spline points4 S1 h# @- C% x- Z$ m' y
- ;; Need to account for WCS/UCS* M g0 }4 W* R9 ^
- ;;0 i; _. P F" t5 ]' m. e$ I3 B2 I
- (defun set_tile_cntl_pt ()
) v0 p$ J6 O1 G+ ` o5 v0 U: i - (setq cntl-pt (cdr (assoc 10 elist)))
X+ J9 L1 H, n! o$ J - (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
7 v% r4 G! h; S1 Y l - (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
6 E- g' D3 ^% L e4 G4 P: x - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))5 [8 A- u$ r3 n d+ k* U
- (if (= rational_spl_flag 1) ;; if rational spline* K$ e& j/ G& L
- (progn ;; show weight$ F* G+ O$ l+ }. ?2 W
- (setq weight (cdr (assoc 41 elist)))9 b. [# H3 H! U" a2 G. K
- (set_tile "weight" (rtos weight))
/ z r& @0 z1 `% y - ) ;; else
& B( b$ i& J/ Q+ G. T3 e/ ~% P+ }" m - (mode_tile "weight_text" 1) ;; disable weight field
/ ^1 z$ ?' D( _ - )
" y4 Y5 e, P3 v9 B+ E) x t' I$ U# y - )! Q- Q$ U8 e4 e! Y6 m
- ;;/ w- m$ S' r9 C8 f4 I" C8 z0 Q
- ;; XYZ Point values for spline points
& p" m4 J5 p5 @' o( M - ;; Need to account for WCS/UCS
$ B6 ~2 w2 \; x' |% t( m( Y - ;;- F0 x, W* c- I" ~( ^7 e- R
- (defun set_tile_data_pt ()
6 n8 y4 F, T# U. n - (if (not (assoc 11 elist)): \) G+ ?: v7 ~. [- U0 M
- (mode_tile "data_pts" 1)1 l7 m3 |3 J: K" U4 L) Z" I
- (progn! } A* L. i) F- |
- (setq data-pt (cdr (assoc 11 elist)))' q# N" E' J5 j7 p3 T' f+ H
- ;; display points with current precision.
& g- a* m' K" N - (set_tile "dxtext" (rtos (setq x1 (car data-pt))))
# A3 B3 S/ {! b - (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
8 ^# q8 X& {+ G! L5 O/ Y" r' ~8 \- X - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
$ u" y9 o# N) Y8 k - )
& m/ O! w0 a9 I8 i - )# X& w E Q* a& C1 }& b, q
- )3 r9 u" S! T- C; }2 z6 M
- ;;* a- f( t3 b3 R
- ;; Fit curve, fit spline, or smooth spline surface setting! Q5 z7 l3 D) Y8 ]: ~
- ;;9 a$ p! o. h+ ]
- (defun set_tile_fitsmooth ()
3 G* i" t: q7 t# ~% O' U - (cond
; {7 @- x! y5 w8 Z - ((= (cdr (assoc 0 elist)) "LWPOLYLINE")/ Y, V, D* M; a; n: S3 g6 E5 B) r
- (set_tile "none" "1")
% _8 M0 O% P7 K2 }: ]4 f - )
! D4 `& s4 W$ o5 S8 E - ((= (logand bit70 4) 4)3 M+ u2 S: {+ b. L
- (cond3 S5 v* t1 P/ o/ \8 K
- ((= bit75 0)
/ C7 }* y i( k3 J s1 M - (set_tile "none" "1")1 H$ L* D. ~. l
- (setq spltype 0)
4 S h* [ ?/ q: q9 @" N4 u - )# E2 H& |9 c1 P! i: E+ D8 b; X# D2 Q
- ((= bit75 5)0 u7 ^ Y _1 D) d1 c4 I# y6 K
- (set_tile "quad" "1")
3 j1 s' M) Y6 u4 I - (setq spltype 5)& U& V P" W/ {' A" F0 v5 @- j
- )+ I& s5 _, [ E3 w2 ^ n
- ((= bit75 6)
# R7 @! j. \. s" x2 E1 L$ |% C - (set_tile "cubic" "1")
9 P |7 s, A+ X& i6 m - (setq spltype 6)
& c) X2 Y3 \) [5 V# b! `4 J* ?$ L - ): e% F6 C& P$ H* d8 t s/ q/ k
- ((= bit75 8)0 g! |+ f' C' l
- (set_tile "bezier" "1")
% N T( E4 u' g' B - (setq spltype 8)4 _6 b+ a, Z9 k+ U/ w$ X/ g& B
- ) J, f6 o( `) @
- )
" @$ l6 z3 q. _, A5 F! W - )) U4 }: T9 @) e$ z0 J
- ((= (logand bit70 2) 2)% j* M7 T- l# s: Q9 t8 p
- (set_tile "fit" "1")
' z; k6 L. g9 H% X - (setq spltype 1)" ~: B" C* }% x- d5 D0 l! t7 T
- )/ }, F. y8 v9 Z( }! Z2 d
- (T (set_tile "none" "1"))7 J0 M1 [4 U) @# L! u
- ), s2 w; w. M/ Y9 g! S9 S
- )
( S$ T; g8 V- ?, Q - ;;
+ E; a" b( G. \$ }6 _. R - ;; Closed or Open mesh and polyline setting
O0 i1 [" O5 l" ^; E4 o. p - ;;3 Z% R. i' N& u- F6 e" H
- (defun set_tile_closed ()- p8 m8 @! U% g6 @' l. [5 M
- (if (= pltype "3D mesh")
3 f ]- x2 [& Z% u - (progn6 Q0 K& H' S8 ^& `5 h2 z9 u: G
- (if (= (logand bit70 32) 32)
0 p) @7 H- P' i - (set_tile "closedn" (setq closedn "1"))
0 ~0 I y# |: n+ u - (set_tile "closedn" (setq closedn "0"))
! J6 Q. F" h: \. I1 s+ [ - )
! Z/ l4 J. P! K4 v1 B" B - (if (= (logand bit70 1) 1)
6 a7 X+ Y/ e6 U$ }/ ]+ b - (set_tile "closedm" (setq closed "1"))
* N3 a) s( d+ U+ B3 R9 _2 l! g( H - (set_tile "closedm" (setq closed "0"))4 i, u3 _7 j3 U7 p: \% W4 U
- )4 S* W8 k" f& A& G8 G$ S3 {: t
- (setq old-closedm closedm old-closedn closedn)7 d/ @& }' }. o. V% v
- )/ R5 l' H7 Y$ A, {5 m
- )' f% J" J1 _+ k2 m+ y* K, y
- (if (or (= pltype "2D polyline")
! s! A! O" f: L" K7 f% k - (= pltype "3D polyline")2 h |5 s' w R* ]8 b' y) F7 c
- )7 R# Z9 y f; A8 e# \8 E8 N
- (progn
" z- e# ?; j k5 ?! A+ [ - (if (= (logand bit70 1) 1): C* r( g7 j% t2 L) \
- (set_tile "closed" (setq closed "1"))
+ P0 j6 d7 E4 w+ z0 S4 o% J- e - (set_tile "closed" (setq closed "0"))5 a7 y( |$ ]. g9 p: f+ h9 Z
- ): B$ d$ _5 k7 S/ M
- (setq old-closed closed)6 x2 ?: j' }6 k2 V3 i) N3 F1 x
- )5 Z- F" t# ], K% Q: [" z
- )& a8 W$ N7 U6 J2 |6 l) K. l* ~0 l
- )- A9 e7 c4 R- \7 J" b
- ;; Set common action tiles% M& M9 R1 v, z6 |1 p; [4 A
- ;;1 ^+ E5 ]) u7 ?
- ;; Defines action to be taken when pressing various widgets. It is called
! q; [- |$ l, R/ f5 k) m7 n - ;; for every object dialogue. Not all widgets exist for each object dialogue,' u3 z$ v/ u- L0 m, y/ r
- ;; but defining an action for a non-existent widget does no harm.
. h3 u# F) p" _% F/ m - (defun set_action_tiles ()
! ?/ A. p5 t: `5 N# C+ J8 z - (action_tile "cancel" "(dismiss_dialog 0)")% B! B1 y% C0 g' M
- (action_tile "accept" "(dismiss_dialog 1)")0 j: c: [! d" j- C& V h$ W- Y
- (action_tile "help" "(help \"\" help_entry)")4 L/ l( x( N0 W. L% J. p
- (action_tile "b_color" "(getcolor)")5 H* z0 p, x6 w* A
- (action_tile "show_image" "(getcolor)")
3 ~- K& j. y+ x/ J - (action_tile "b_name" "(setq elayer (getlayer))")
" W+ |2 {' f- h - (action_tile "b_line" "(setq eltype (getltype))")+ \2 u0 E A/ D7 O! j! t: Y" z8 K
- (action_tile "eb_thickness" "(getthickness $value)")
* C3 N) s' ^" S8 [% u: ]/ J - (action_tile "eb_ltscale" "(getltscale $value)")
' U9 i) z4 }- P+ p1 C. _ - ! p [/ w0 I) \$ Z
- (action_tile "pick_1" "(dismiss_dialog 3)")
0 B, H4 n$ ?3 f5 q* p - (action_tile "pick_2" "(dismiss_dialog 4)")
. S7 Y" x0 j8 f: u F; Q - (action_tile "pick_3" "(dismiss_dialog 5)")
" K" j; ?* M; K8 [9 d7 X* b - (action_tile "pick_4" "(dismiss_dialog 6)")
) P) S( F- Y6 {) c7 E" K4 [ - (action_tile "x1_pt" "(ver_x1 $value)")* q# L4 f4 c Z. V
- (action_tile "y1_pt" "(ver_y1 $value)")4 q9 {# p' R* z x& x* Z
- (action_tile "z1_pt" "(ver_z1 $value)"), P6 F) }: G4 _
- (action_tile "x2_pt" "(ver_x2 $value)")
) ^4 @/ Z2 m# J7 s! P - (action_tile "y2_pt" "(ver_y2 $value)")
9 v( W2 }1 w& x9 P% @3 w+ S - (action_tile "z2_pt" "(ver_z2 $value)")
/ l5 ]7 x9 }: S; L - (action_tile "x3_pt" "(ver_x3 $value)")9 M$ L2 ]8 p9 [
- (action_tile "y3_pt" "(ver_y3 $value)")) e, d; y& b- U
- (action_tile "z3_pt" "(ver_z3 $value)")
$ @/ A' c4 S. [& e$ r - (action_tile "x4_pt" "(ver_x4 $value)")
( }* i) Q; r/ `1 c- j - (action_tile "y4_pt" "(ver_y4 $value)")
4 m. x4 c, \$ x& M2 [ [ - (action_tile "z4_pt" "(ver_4 $value)")+ e5 T8 G1 Z: i7 k; j
3 v$ e& R L2 u$ H- ;; Action tiles for Xline & Ray
: J2 ^5 Y. J6 i8 m7 C6 t - (action_tile "xline_x1" "(ver_xline_x1 $value)")' i$ w1 S4 ^1 J
- (action_tile "xline_y1" "(ver_xline_y1 $value)")
( K; c1 e$ ^* p - (action_tile "xline_z1" "(ver_xline_z1 $value)")6 o1 U$ T$ L3 S1 J# W
- (action_tile "xline_x2" "(ver_xline_x2 $value)")! v+ P. ~+ B* S/ S# R8 D6 g
- (action_tile "xline_y2" "(ver_xline_y2 $value)")4 H N! I! B; M2 P% p; O# D6 A
- (action_tile "xline_z2" "(ver_xline_z2 $value)"), @3 x+ D8 M1 F. m
- " i/ H0 ~8 ^; G
- (action_tile "edge_1" "(setq edge1 $value)")
) ?, Q/ ?2 ?. \( M4 } - (action_tile "edge_2" "(setq edge2 $value)")' f' N7 Q N- A- t' L- _& W3 U
- (action_tile "edge_3" "(setq edge3 $value)")
$ `* E& P3 Y G+ j - (action_tile "edge_4" "(setq edge4 $value)")$ K' g2 m5 X$ Z- ]8 R7 r0 i3 \) a
- - x3 O; m+ |0 @$ T
- (action_tile "radius" "(ver_rad $value)")
# ~4 {+ p0 Z( P1 \; g/ Z; N! { - (action_tile "st_ang" "(ver_ang1 $value)"), ?" T% u9 g+ U+ ?/ E1 _$ r
- (action_tile "end_ang" "(ver_ang2 $value)")9 X* A- W5 _' _9 S2 ~; Q4 E
- (action_tile "end_eang" "(ver_eang $value)")
3 J' G; Y7 R1 j" t0 H - (action_tile "minrad" "(ver_minrad $value)")( `4 J& r* W( u' @/ |
- (action_tile "majrad" "(ver_majrad $value)")% S0 \9 F, F: `2 q
- 7 o8 R& ]2 v! c" @
- (action_tile "xscale" "(ver_xscl $value)")
: j& G- O& F: X w4 l( x7 y - (action_tile "yscale" "(ver_yscl $value)")
) y/ ]1 z3 ^# q! B4 V - (action_tile "zscale" "(ver_zscl $value)")
. J* i% T# w5 L; z/ k/ b7 F - (action_tile "rot" "(ver_rot $value)") s+ u- `+ n1 m7 u- ^
- (action_tile "columns" "(ver_col $value)")
6 i4 }7 Y% a: k/ n5 C" x; q- y - (action_tile "rows" "(ver_row $value)")
2 }2 o* O) ~. h$ t6 | - (action_tile "col_sp" "(ver_colsp $value)")+ b5 O- r, j9 t0 N
- (action_tile "row_sp" "(ver_rowsp $value)")1 a9 t% b9 {/ ~) H- k% a1 s
- ^* H. |: s8 l
- (action_tile "hght" "(ver_hght $value)")! F* n* c+ a5 s8 `* j- M9 L3 n
- (action_tile "wid" "(ver_wid $value)")
$ e; @: e: x% J2 A* P S s - (action_tile "obl" "(ver_obl $value)")! I$ q: n2 p5 \7 i5 k$ X
- (action_tile "style" "(style_act $value)")
* ?0 X1 a) ~- B7 X" Z - $ S) a2 P# H9 X0 B& B0 |$ p) o( ?
- (action_tile "t_string" "(ddgettext)")
# w6 z/ t" _7 H - (action_tile "tag" "(ver_tag)")- R9 b6 M: g; V6 U4 M4 `
- (action_tile "prompt" "(ddgetprompt)")4 f8 e" D9 `4 a
- (action_tile "bkwd" "(setq bkwd (atoi $value))")% T8 P |6 ?# t6 V
- (action_tile "upsd" "(setq upsd (atoi $value))")
, r/ ]7 r. y, V4 l4 q - (action_tile "inv" "(setq inv (atoi $value))")/ b8 l* ]- Z9 W. F& N& [
- (action_tile "con" "(setq con (atoi $value))")+ y! Z4 N7 _8 w& |* f* c
- (action_tile "ver" "(setq vfy (atoi $value))")8 a$ s+ T; h7 ]! x, L1 ^! I1 M
- (action_tile "pre" "(setq pre (atoi $value))") p( P8 ?0 j, u" ^/ y0 _. J
- (action_tile "popup_just" "(jlist_act $value)")
B! l# }: n' K+ h - . l8 N( l0 O* H( W0 S
- (action_tile "closed" "(setq closed $value)")
; W) _: e& y1 o7 ~ - (action_tile "ltgen" "(setq ltgen $value)"): _- Z* [; ]& h+ h
- (action_tile "closedm" "(setq closedm $value)"). [" f! z$ a' I7 P- y$ u, c8 y
- (action_tile "closedn" "(setq closedn $value)")- `' |! P- h! c9 r4 \# Z6 M7 a7 H
- (action_tile "next_v" "(next_vertex)")
. ?3 f. P: S/ M# L0 v2 E - (action_tile "xcliponoff" "(setq xcliponoff $value)")
- z: i5 L( \9 z - : e: w0 `9 Q( N4 r- P' x
- (action_tile "next_cntlpt" "(next_cntl_pt)")6 D7 `* ]5 L y- q4 W
- (action_tile "next_datapt" "(next_data_pt)")
$ D" e8 w9 |& _9 k2 H# L - . Q* I4 W2 B" [
- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")
8 ~& \0 M- [! G+ E - (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")) a1 W& h7 P6 r% x' z
- (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")
: w% U" k3 I f4 b - (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")
0 ]: G, O4 S: e& N v0 c - (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")
! N" [$ \0 q$ H' T - 5 Z0 r& w" j! }( P8 W6 \
- (action_tile "u" "(ver_u $value)")
: S& O M y; l$ E/ v' f. @5 X - (action_tile "v" "(ver_v $value)")
, f" R$ s0 e4 }+ s' |5 y* B - )# A1 C0 v" P `- ^. }# t3 G: C
- / r* v2 _% v: g4 z( j1 r: h
- (defun ddgettext()/ s Y+ ]9 z% T+ F) M8 G2 l9 M
- (setq text (get_tile "t_string"))
2 E# y2 s6 ?7 R% l - )
% k" {; Z/ x3 H* j5 _3 s' k
4 I" f, r4 I* }- (defun ddgetprompt()
! b& o2 P3 N+ H X. \) M - (setq atprompt (get_tile "prompt"))
' ?0 c% H* E5 Y. I% s4 \% z - )2 g0 f7 t! R% e
, L2 J" q7 |" }+ X) M- ;; As OW doesn't support disabling of individual radio buttons within, R7 }5 ` ?6 H
- ;; clusters, a check must be performed as to the legitimacy of the
' [1 }5 P5 D- b) _ o# h& z - ;; button pushed and reset if necessary./ {* T9 p j+ f3 a! p c
- (defun radio_gaga (pushed) h; q m5 M u3 J
- (cond& C C3 y3 ]0 r) {
- ((and (= pltype "3D polyline")
; p. b# ?: y- v1 g9 P( ` - (or (= pushed "fit")+ k5 B% @# U! j2 T- u4 Y
- (= pushed "bezier")- t6 n# P- n5 Y3 f5 `$ ~
- )
2 i3 O% E# S5 S" C+ j1 E D U - )+ k6 p1 u( r% m8 C" F
- (set_tile "none" "1"): q3 S8 |% |4 S: y
- nil
z) B! c0 y9 U; k% d - )
k1 A% ~0 F! c6 z; [" ~0 d; l7 u( E - ((and (= pltype "3D mesh")
3 s _1 o% Z) L$ r4 t7 w - (= "fit" pushed)
6 l1 z8 w! I- y% J# C - )4 p: H3 b1 R" W/ W
- (set_tile "none" "1")3 m Y1 s9 K0 n
- nil
6 M K4 A+ c3 q. W - )0 z+ ~7 _9 Z( j' R+ E' N
- ((= pltype "Polyface mesh")0 z! Q( ]- Y, g. Q* i3 L
- (set_tile "none" "1")
3 s c8 X+ M; r - nil
4 U; U7 x' b! Q( i3 C0 b, w - )
) N# e6 a8 Y7 D, ~# F' L' i - ((and (= pltype "2D polyline")
8 E, i2 Z) r) N: y! X7 ` - (= "bezier" pushed)
2 P" w3 l5 C3 c) O4 `4 d - )
" F% d6 c9 x+ w8 l$ @5 f' i9 J0 D - (set_tile "none" "1")
! {, t, [$ b9 `- q# ^# X" l - nil$ O- j# Q( D. o: M( J+ b/ d+ @
- ) Q+ j1 k7 ?" i
- (T)7 N! m$ g* T" n
- )9 o$ _6 A0 E# j: h J8 n. h
- )
5 J" {7 V( g/ \; t- v; H( F8 a - ;;. K& u$ B" r) d# m" n9 I
- (defun set_uv (type_n)( @7 b' L: ?1 K* M5 U+ k
- (setq spltype type_n); o$ u: ~9 t5 U! i" \
- (if (= pltype "3D mesh")
# _9 [- s( W8 Q8 _' K - (if (= spltype 0)
: g+ A* m1 H- g! e* M7 t$ } ] - (progn/ J3 H# Q* E# U0 J7 t6 J. a l
- (set_tile "u" (itoa (setq u 0)))4 \: F0 O2 @( d2 y7 u: s1 J) w4 Q
- (set_tile "v" (itoa (setq v 0)))
" s5 w7 @* h# O" j0 h - )- j+ r% Q. E. `. `' @7 Z0 K
- (progn4 a8 P: }9 w W0 w0 W
- (if (= u 0)
9 x1 n4 a& c& s2 V. Y - (set_tile "u" (itoa (setq u (getvar "surfu"))))
. ~6 h: B' h" b4 S* P. \) i - )/ X- G6 F# {. k( n: r7 J3 r) n
- (if (= v 0)$ ]. p: T; S8 M
- (set_tile "v" (itoa (setq v (getvar "surfv"))))( x% M$ j1 ?2 o' Q$ t* k3 S
- )
6 B6 G6 S* } o# g1 Z - )
8 m) s! P9 Q% |. t - )7 h \& j) W; o# {" C. J& Z
- )
7 K. k6 p; L; j; J1 `6 p' k+ R - )/ L2 ~) h9 Y% H( _
: ]- k% o' e0 X, [; b- 4 b5 N) K/ t) {
- ;;
7 `, d) B: \* M7 s) A7 u) a7 c - ;; Verification functions
8 m0 Q& ]" Z0 R! T& W) U& B - ;;+ G1 l7 Q; n- }
- ;; Verify distance function. This takes a new X, Y, or Z coordinate or- x- B8 S4 Z, W: @6 |
- ;; distance value, the tile name, and the previous value as arguments.
- q9 O0 m6 r0 [0 ~0 s+ ~9 } - ;; If the distance is valid, it returns the distance and resets the tile.
. D% N0 q0 \ Y9 a - ;; Otherwise, it returns the previous value, sets the error tile and keeps
# O9 G! }# s- \- D# Z - ;; focus on the tile. Shifting focus to the tile with invalid value can
* J+ K1 e. a: i& M- F6 N' D# K - ;; trigger a callback from another tile whose value is valid. In order3 \( _3 @3 v# z
- ;; to keep the error message from being cleared by this secondary callback,8 m% n) ?& o X; U8 z: {
- ;; the variable errchk is set and checked. The last-tile variable is set& V7 Z' }4 Z% D
- ;; and checked to ensure the error message is properly cleared when the' |# P- }& J5 Q+ u/ z2 K% F( S% Z
- ;; user corrects the value and hits return.6 A$ p l" v7 i8 Z8 Z
- ;;9 v: O% x6 q. `, H& F" U
- (defun verify_d (tile value old-value / coord valid errmsg)6 x& N) N2 M) s/ v
- (setq valid nil errmsg "Invalid input value.")5 ~% v X0 R) I6 A/ Q) S$ I+ t
- (if (setq coord (distof value))( e* W6 ?; ]# l; W3 r0 [
- (progn
( ^7 e; S0 p4 P4 o3 J - (cond
; P4 @3 r6 t% Z5 p - ((or (= tile "radius")
X, D* b1 \; E - (= tile "hght")8 D) @4 u4 o+ f# q
- (= tile "wid")
5 E6 B! Z0 M. e! c$ k2 J1 s9 | - (= tile "majrad")
$ o3 |$ e* x) P- M+ D$ K7 H: n( f - (= tile "minrad"). \/ M |/ l, H+ D9 c- F" h
- (= tile "eb_ltscale")
( I( p, D7 k/ l# P$ G: @4 w - )9 Y0 q$ k0 v' _0 P- q
- (if (> coord 0)/ O2 b1 y* f: Y: {% ^
- (setq valid T)
$ w1 v. C" H& O0 B - (setq errmsg "Value must be positive and nonzero.")
1 L; T m# e3 ~& L. h8 z& X - )# O/ t! B; @" M6 r, c% e
- )
8 g0 x3 V0 q' `2 F9 q6 U - ((or (= tile "xscale")/ s5 M4 Y2 k. T5 A+ c. L" d
- (= tile "yscale")
3 c6 `, j6 d1 B7 _ - (= tile "zscale")
! ^! {, G* o* y3 N: ?. S - )2 Z& v/ b) e7 A9 E
- (if (/= coord 0)
( N) Q! q+ Q5 Q6 a - (setq valid T); |' F" p) m+ p. r( x' {8 o
- (setq errmsg "Value must be nonzero.")* I% O, [5 z* b4 q# }' ?: M
- )
! f# w" `, D1 e! R, W" V2 A - )
7 f# x3 h! \6 S) k6 [3 P: T+ Z - (T (setq valid T))9 R3 y% C4 }0 z2 _9 p3 w
- )
+ G- D+ Z0 p; q) Y& u$ ^4 ? - )
9 M0 N% u# S9 f$ B8 Z- ]4 ^ - (setq valid nil)
$ z- J3 J8 x5 g% I2 p( j( Q - )
7 ]) p, r$ |; S N# M& x1 J - (if valid
: v+ H l: d7 h7 ` - (progn: B0 T/ w- @3 h5 {8 N
- (if (or (= errchk 0) (= tile last-tile)), |6 ]- [2 @) i' g, J
- (set_tile "error" "")+ Q0 f V# P. K# j+ E/ M
- )# a) g6 {2 i2 T
- (set_tile tile (ai_rtos coord))* W2 C* M$ D6 \0 s& O% ]
- (setq errchk 0)
% U" ]& Z0 ]( N- ^; l/ o! D - (setq last-tile tile)
' `0 U/ Y/ ]+ R/ H4 U - coord, t" R% h1 V7 ]1 }2 R3 u
- ); q1 ~5 T" P' n
- (progn
9 i, ~* e. B! d$ J1 W; S - (mode_tile tile 2) ; Move focus to offending field
6 O: ]" S) g2 U; y }0 ~ - (mode_tile tile 3) ; Select offending text
4 j8 @- Z+ W' R( \! O% J - (set_tile "error" errmsg)* f3 Z" U4 p6 ?! ~; n. a1 b' y! y0 }7 v
- (setq errchk 1)) ]+ ]3 Z( ^$ V4 L1 t
- (setq last-tile tile)
& x+ A% _: @8 `8 c - old-value
1 f* w+ P& L' ~3 z - )
6 d( Z$ C9 C* q6 r4 X - )
+ F& A0 P* C: z8 P+ ?# Q3 B+ a* c - )' e, b- m/ t" ?3 w7 q
- ;; Function for Xline coord edit box checking.
7 i! j" l! b h P6 w - (defun verify_xline (tile value old-value / coord valid errmsg)9 g- o; o' c9 c+ M6 C' u
- (setq valid nil errmsg "Invalid input value.")
4 _8 P) u$ I' @6 ~1 a& F7 t - (if (setq coord (distof value))
& D1 G0 I# k* v' r* `# J' I - (setq valid T)
& D( r0 e' p$ Q. z% R - (setq valid nil) `4 g0 c8 Q8 l2 C8 I
- )/ P! m- N% J8 a3 A+ f
- (if (and coord
3 k' }# s( [. l( V/ r/ x - (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) )# F9 T0 j- u! u
- (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )
! c. z$ j- E1 [5 Q; [ - (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) )) P% j5 y- Y; a5 X+ x. s
- )
2 o# u# y! y' Y: L+ D; Z" t - )1 o" Y+ S# r. N
- (progn
F5 ^ D+ N! ]5 ^& L - (setq errmsg, p6 n- f1 X# U$ n6 b" R
- "The Root point and the Second point cannot be equal.")
1 X/ s( A- V2 ^" y! h1 M - (setq valid nil)
' B0 \, m( K5 E% x) @. I - ); J+ D8 l4 E! P# n0 S$ p* L
- )1 L0 ?' d L! F' B7 u+ W* K b/ u
- (if valid J4 S6 r) @$ Q9 y6 k: H: Y# K7 R$ t# t+ Q
- (progn }' }" b* E: V, z( z; R
- (if (or (= errchk 0) (= tile last-tile))1 H. g8 r0 d2 A y; e
- (set_tile "error" "")4 Z4 X" B. ^: q' |7 S
- )
' X! ]8 a1 C. ^8 }7 F8 ] - (set_tile tile (ai_rtos coord))
: f' ~$ @8 l* t. c - (setq errchk 0)# C0 l, i0 r& H9 d
- (setq last-tile tile): p0 V- d. U; U1 J2 C# y
- coord
5 }' \: w9 D7 l2 U - )
! t3 Z/ n' D% R8 p - (progn
* E' L9 G% V0 S - (mode_tile tile 2) ; Move focus to offending field8 i) v) K; H2 f$ T) Y
- (mode_tile tile 3) ; Select offending text
/ A z- j- T6 S - (set_tile "error" errmsg)
1 u, i2 y5 B' s: Y - (setq errchk 1)
) C# ]" c* O4 }' h! t& L2 t - (setq last-tile tile)
3 C* f o" k! u - old-value
1 G3 z/ H1 }; H* u8 H5 l6 W - )
) W3 h2 J5 D! ? - ): {0 p- e* H$ \
- )
6 v: a5 b1 O. q4 o
/ {4 w0 f; n H7 U- ;;
: `# ?/ F$ ~6 ^) s2 ?& t! {/ l) [9 e. s9 ^ - ;; Verify angle function. This takes an angle and a tile name as arguments.
) O m; \" o' Q/ M1 d! U! h - ;; If the angle is valid, it returns the angle and resets the tile.
4 |1 |( W. l% S - ;; Otherwise, it sets the error tile and keeps focus on the tile.1 n% l1 l6 j! h7 T% _0 ]* v( ]
- ;;
$ X- ? Q2 i: b. c! b; R; i1 X3 \ - (defun verify_a (tile value old-value / ang valid errmsg oblqmax)+ M; N5 L- h; o! ^
- (setq valid nil2 K6 s, l$ X6 G& n
- errmsg "Illegal input value."/ |+ I# n6 A8 s. n& W
- )
3 o( L1 O/ b7 E) ]/ K4 S1 k - (if (setq ang (angtof value))
, `8 n5 I0 N' [0 m3 C( ` - (cond
1 [# x' p O" m: e4 z - ((= tile "obl") ; Restrict obliquing angle
) a; n7 R( O9 C" y% E' C - (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))
# L9 o% \: T1 s - (if (or (<= ang oblqmax)
- z# W0 p3 j* g4 `. i - (>= ang (- (* 2.0 PI) oblqmax))
; U1 f" a4 C( m5 M7 |- J - )5 ^0 W9 j5 V. r. `0 [
- (setq valid T)
) C+ O: H K! _% J - (setq errmsg+ J3 n! \0 [. L. g: h: E1 M
- "Value must be between -85 and +85 degrees.")3 l3 a$ _7 a* _' ?8 i) |
- )0 O+ ]9 W, j; |5 \1 _
- )
|( L8 w8 h; d+ `/ x - (T (setq valid T)) ; Other angles not restricted) E+ D* I. E5 j9 x1 w
- )
# I: h* V" g2 W - (setq valid nil) ; Invalid angle input3 y* U! I9 N) j% M- E; H
- )
- x C. ], [! F5 B) \2 G/ y. P8 O - (if valid3 @' N' q8 q$ q! o
- (progn
. q+ ~2 W1 _( ^ - (if (or (= errchk 0) (= tile last-tile))
& p- z$ D& `+ p3 K: J1 J% u - (set_tile "error" "")6 r/ o% b. h k A, H: d6 r/ t6 M6 A
- )9 \) Y, }) t h6 L$ V
- (set_tile tile (ai_angtos ang))+ o3 {& \# l P7 w" l
- (setq errchk 0)
# q) l0 b% i* S; W3 j - (setq last-tile tile)
# O |0 F9 i# k - ang
. ?' y* B! ~4 G' E4 |% w( E - )
, a# Y5 K! @0 I - (progn
/ U- ^" X3 }% y6 V& P: F; B - (mode_tile tile 2) ; Move focus to offending field9 A t- ^' e6 {7 j1 o$ i+ W5 t
- (mode_tile tile 3) ; Select offending text
, P! N! J( W$ a! G- \7 t9 V' y' i - (setq last-tile tile)
: b+ k1 k# v- g - (setq errchk 1)
7 {: w! i( X; ?9 B - (set_tile "error" errmsg)
* A8 a+ ~) a0 d' S7 U - old-value
7 q7 |2 M8 N& [: r0 [) v. m - )
4 B: L% ]7 \: q9 \% r v* H) o5 E - )$ B) o8 O( F2 D6 ^$ u. @
- )
# w- }9 k6 Y6 ], ~' E3 F - ;;
' S' X) F9 R0 O$ _! z) D - ;; Verify angle function. This takes an angle and a tile name as arguments.
9 v7 r6 C- v7 i" v" v - ;; If the angle is valid, it returns the angle and resets the tile.4 b7 A4 _6 Q' F- g7 u( [3 Z
- ;; Otherwise, it sets the error tile and keeps focus on the tile.
7 E' F/ @: Q* r( F# h" c ?! X - ;; This function is specifically for the end angle of the ellipse object. If
2 [; }, ]( a5 Z4 e7 k' b) d - ;; the end angle resolves to zero then we want to display it as 360.
+ T4 `: |4 M5 M( Q! z% g9 Y8 k - ;;8 @+ Y1 i, A8 o: l+ f5 @
- (defun verify_ae (tile value old-value / ang tempend)5 n7 T2 d3 o* J9 N+ s
- (if (setq ang (angtof value)). [. a. `( Z% }% Z& \/ _# m& Q) [
- (progn* r1 g+ X% N/ O: [1 K
- (if (or (= errchk 0) (= tile last-tile))0 G! S' O, ~% T! |% T+ X/ ^8 _2 e/ `
- (set_tile "error" "")' {) s; ^$ R" X9 T0 V* @; h
- )
) V; x E# B3 p6 b9 k7 ]# r. d - (setq tempend (ai_angtos ang))
+ `% ~* d/ M" c2 ^, h% u - (if (= tempend "0")- a$ G( ]( A5 ?) D
- (set_tile tile "360"): w4 n2 t/ w# A. J) j
- (set_tile tile tempend)5 Z2 K( e. _' Z* ~" n
- )
6 a0 [7 v8 ]) t+ I3 ^/ f- ]1 i - (setq errchk 0)
0 ?2 W2 v+ _- x; ^! W4 y - (setq last-tile tile) i6 ` j8 r7 }8 @8 Y: ] P* {
- ang1 G9 O) {! p4 W& L0 j- _
- )
( Z* j. v0 o% m; ]6 x+ t/ i - (progn
! ` b$ j9 j' j7 p - (mode_tile tile 2) ; Move focus to offending field
+ y/ y7 j; L: q" B0 o+ U a - (mode_tile tile 3) ; Select offending text
$ K' n/ u1 G6 S4 m' Y3 d/ g - (setq last-tile tile)
; ]/ Q1 p0 I% L% x' A r - (setq errchk 1)- }5 p% _0 V. G. ]6 I- f4 M
- (set_tile "error" "Illegal input value.")
; g/ b- u4 N0 p- A, I9 B - old-value
0 y* ^# B# p7 f* Q0 F) m - )
+ R0 {- g! J3 `# Q - )$ A ~- L9 j3 l. I! ]$ k; }
- )
5 E3 L3 Q. Y2 n- T; @/ r% O - ;;; x5 T6 p7 ?2 ]+ Z
- ;; Verify integer function. This takes an integer and a tile name as
4 ~! s" M& b8 n' g, G v0 S - ;; arguments. If the integer is valid, it returns the integer and resets the
0 q% ]) u3 S# A) {3 \ I& w" p: P - ;; tile. Otherwise, it sets the error tile and keeps focus on the tile.5 y1 X% W; Q/ O
- ;;2 E0 j; ?4 T, l( V
- (defun verify_i (tile value old-value / int valid errmsg)3 f3 {% }! R! o9 m& m4 j
- (setq valid nil). l) L) @" i! W/ w' U5 t
- (setq errmsg "Value must be an integer.")
% |4 ]6 g0 k) p0 [. x - (setq int (atoi value))( E+ x( y; H$ P1 w* Q+ y
- (if (setq intchk (distof value))
, C( j, n. c- g( d( K% H2 K - (cond, D2 @ ?: ?! R4 x5 O
- ((or (= tile "columns") (= tile "rows")). \) g8 J9 N/ Y8 f7 _1 D
- (if (and (= int intchk)4 L; A& }- C. I& R w: ^
- (>= int 0)" C6 K( i% `# H9 E; @0 l S
- (<= int 32767). V* \$ t! t, {2 m- z! U7 q- [ `
- )+ x; }$ J0 d$ u; k9 R, u
- (setq valid T)
4 l+ E8 { J) y0 ^/ U" S+ o8 O" | n - (setq errmsg "Value must be an integer between 0 and 32767.")
* \3 A2 x" e9 [* K; \! U - )2 ? M) ^/ v8 D$ q
- )
( R0 P! a" |2 [# M+ U6 Z; j - ((and (or (= tile "u") (= tile "v")))/ q2 E9 L, J: E# ]! U* u( Y5 M! i: y
- (if (and (= int intchk)
* k$ y% D3 Z# i& H+ T/ W6 Z - (>= int 0)
' \6 A1 @# h5 ?6 y! @2 k - (< int 201)6 f9 v5 S7 z( H8 x4 ~
- )
/ Y. L5 e- c) x \" u% a1 \1 o7 B - (setq valid T)
# V: P" V+ q h8 r( u - (setq errmsg "Value must be an integer between 0 and 200.")
% G, {; O0 ^0 g" f - )
2 O, }7 T, }" p9 @! L/ u* q - )
+ d6 F( z: H# K; ?$ V& L - )* C9 X3 k+ d% r' }: M7 m
- ); k3 D5 ^4 M) n( i( N. r' o4 i
- (if valid% X6 R D( [: s& @8 |2 u
- (progn. N5 M- @" L0 a( A
- (if (or (= errchk 0) (= tile last-tile))3 Q2 S' ]9 Z8 \. n' h
- (set_tile "error" "")" b; S* E& p% [5 {' y2 j
- )
* E& o- K; V. }& X- a* L - (set_tile tile (itoa int))
. ~! U6 v: t1 V1 Q* `/ j, V - (setq errchk 0)
3 t) f, I6 N4 }* i& x7 r) o - (setq last-tile tile)1 m1 E5 z% \- O2 K% B
- int. W9 c# U+ U+ @) ^1 R+ k5 w* K
- )
& Q8 s7 h# A. W) c, p! H& ^ - (progn0 v i! _, C' t* i9 |
- (mode_tile tile 2) ; Move focus to offending field
7 K+ g' o" E) j* v" l6 x - (mode_tile tile 3) ; Select offending text
7 h! Q3 b9 y: M% N7 l; K - (set_tile "error" errmsg)1 ^5 Q1 T* m# t
- (setq errchk 1)- d E* K/ Y) P9 l4 h5 B. w
- (setq last-tile tile)
% Y) M3 S! S! k' p - old-value! j; q& S' t0 I) i% Z% M$ z
- )
; v$ f% [ e- l6 V - )
" d+ _/ @7 m1 } S, E# E( Y8 Y8 h& R - )
, U1 `0 N& Q O' D( a+ X& l - ;;
# M, e4 z9 _& y3 |. y4 a- K - ;; Functions that verify tile values for integers
- T8 G" j$ ~' u6 Q' N1 ?% }. ?5 _ - ;;
& P3 M0 W! _' R8 J" @% @ - (defun ver_col (value)
" w5 R6 A, h- X3 ?- j9 ] - (setq columns (verify_i "columns" value columns))
. q j" t6 D& ]& H& B' h( x0 y - )! F+ ^ @7 x/ h, t {4 R% U. U
- (defun ver_row (value). G4 V& Q; P) q+ G/ T
- (setq rows (verify_i "rows" value rows))% _. v+ a" P9 t2 E* [ P. X
- )! \% y% R+ {( _5 G( I; J
- (defun ver_u (value)
- w1 F* {! }5 J# c) C - (setq u (verify_i "u" value u))! [% ]% {- ]9 ]9 a5 M! ?+ x% A! ?
- ), b/ \1 D' o5 v2 z) ], U
- (defun ver_v (value)
3 a" `( I2 b3 |: ` - (setq v (verify_i "v" value v))
- K" Z$ p, V+ C; y6 c9 t/ k - )
( p( w" f7 E+ q( x& ^% n7 b$ a( m - ;;* U* b9 o0 Y( N3 |5 b( N$ i
- ;; Functions that verify tile values for reals
/ |' ~0 ~0 ~$ F - ;;+ { j2 ^: x/ `& T
- (defun ver_x1 (value). b' |$ b, n: V, J7 f. ?
- (if (setq x1 (verify_d "x1_pt" value x1)) (calc))
' a9 h! C$ Z* [# z - )
& O. g# ~5 W$ ?" y - (defun ver_y1 (value)
- P5 J1 N9 [' B - (if (setq y1 (verify_d "y1_pt" value y1)) (calc))
, \# u, |9 u" e8 Q1 ^$ H0 A) | - )
, r% R: J S. O - (defun ver_z1 (value)
8 {9 z. b! m# `9 U - (if (setq z1 (verify_d "z1_pt" value z1)) (calc))
' i$ v; \% I, r j! O' u1 l: Z+ n - )" }5 Z. B+ B" ^# q* f5 X9 _
- (defun ver_x2 (value); {! P3 ]0 z' }. c- X* d
- (if (setq x2 (verify_d "x2_pt" value x2)) (calc))" B5 F `8 ]5 B {
- )
0 _9 p; Y+ [( y9 c' l6 j$ I& _ - (defun ver_y2 (value)' V0 C: S5 e* o; }0 Q
- (if (setq y2 (verify_d "y2_pt" value y2)) (calc))
0 m2 q0 N2 e2 G# t0 ]0 [2 k! E - )& T; d2 j7 l3 w2 F4 `8 s+ j4 g/ N
- (defun ver_z2 (value)# m, `# m5 V5 L& t
- (if (setq z2 (verify_d "z2_pt" value z2)) (calc)), O0 C7 i; f; s
- )2 E' l/ \3 Y6 D0 P+ i8 t W; q5 u% |
- (defun ver_x3 (value)
B7 o5 ~$ K" j* v - (setq x3 (verify_d "x3_pt" value x3))
# L4 z; _7 a) n- I, X8 k+ y - )/ u5 r; l6 |, Y v
- (defun ver_y3 (value)
" S$ F( G0 s+ e - (setq y3 (verify_d "y3_pt" value y3))+ W1 s+ `1 s1 E; B! s
- ), O" C' _2 b# R; d6 m
- (defun ver_z3 (value)
+ E0 x, e1 A& s; v1 J* U - (setq z3 (verify_d "z3_pt" value z3))9 T$ I( A, j( ?5 x
- )1 h( c4 ~% J" z+ _$ t
- (defun ver_x4 (value)
! v: d+ ~9 ?! u, X+ p. r+ s - (setq x4 (verify_d "x4_pt" value x4)) Y% z# f0 a6 W2 y W1 T
- )
+ K, b4 ]9 o* H7 h - (defun ver_y4 (value)$ |2 c- i4 v1 w" {- {. ^
- (setq y4 (verify_d "y4_pt" value y4))6 ]0 Z7 m" x$ ` Y$ H; l. H6 r4 p
- )% I9 {/ w2 y* y, f- S3 M+ F
- (defun ver_4 (value)
$ t$ M' l Y* ~( x - (setq z4 (verify_d "z4_pt" value z4))
3 w9 y. |6 ~# h2 s - )
' }8 U' W2 G6 X/ h, h% a' x - (defun ver_xscl (value)' n+ F$ t$ m( v+ k9 J" @
- (setq xscale (verify_d "xscale" value xscale))" m* U. q( l4 o
- ): E; K# k- }, h' r# s9 j6 t
- (defun ver_yscl (value)$ a2 h& w8 ^0 j& n
- (setq yscale (verify_d "yscale" value yscale))' a$ D6 N% N1 j/ U8 r
- )
+ T. W1 D- d& T3 H - (defun ver_zscl (value)( u* L! N) _# \
- (setq zscale (verify_d "zscale" value zscale))
0 }% X: c+ n" ~1 N& } - ). D& ~3 e' J4 H! F
- (defun ver_colsp (value)
0 l6 {- [- D. h+ e( H - (setq col-sp (verify_d "col_sp" value col-sp)), h8 p3 i3 p0 Q" k0 a, G; y: h Y
- ) p m1 N, @/ ~) Z8 D
- (defun ver_rowsp (value)
2 R3 p" l/ |% x0 Y: V5 t" x - (setq row-sp (verify_d "row_sp" value row-sp))
5 t5 j/ g& ?. {/ E- D+ u - )
. ?- s7 ~$ Z/ `" Z - (defun xclip ()% M, k& F4 g/ d5 t
- (setq xclipmode t)* n9 C) o+ ~2 p" Y& p- E. x5 V
- (if (= xcliponoff "1")
) C4 d, {# g$ n - (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")# V% J& P9 L0 S1 ~' t2 u4 J o
- (command "_.xclip" (cdr(assoc -1 elist)) "" "_off")/ h8 f- K& U0 ?- [! O
- )
8 X9 A/ _& O+ ~; f% W - )8 F2 n; Y5 z. p
- (defun ver_rad (value)
3 ?7 \+ i' b0 [5 P- d" i - (if (setq radius (verify_d "radius" value radius)), f- a N7 S6 I0 I
- (calc)
8 i* P6 a( h" d5 L# K* g) q2 V6 Q7 v - )
$ S2 X8 o$ K5 Y4 F- m# b - ), Y* a# |" V; F. ^9 l, H& ^
- (defun ver_majrad (value), Z# R/ u }8 G
- (if (setq majrad (verify_d "majrad" value majrad)): K" z8 m! s# ?0 Q6 [/ G8 C3 t
- (ell_calc_newval "majrad")* R1 M* X7 G0 P) f" S( d
- )( @, z% F: A! O; Q r6 q: L
- )1 k# l8 L9 Z8 c* S" e/ ?0 J0 _
- (defun ver_minrad (value)4 @9 q+ n1 q/ `! ^
- (if (setq minrad (verify_d "minrad" value minrad))
; z3 S' v. g" P" w4 w7 o( K* C - (ell_calc_newval "minrad")
_' k1 \* n F0 e2 [) k - )$ J- \# p$ O3 g0 N( t
- )
5 b- r: G! O) h4 X% {& y7 j - (defun ver_hght (value)
- y4 A# B, z, _3 D) E6 F/ Y - (setq hght (verify_d "hght" value hght))$ Y9 t Y* T3 ], S4 b
- ) G% D6 L9 b4 h: G; w N
- (defun ver_wid (value)9 c- D: n- K# M- Q4 |4 Q
- (setq wid (verify_d "wid" value wid))! L; v# x/ {( W- Z
- )/ i" y d6 p5 h% M
- (defun ver_xline_x1 (value / temp)
" {, s" k* y, `7 a) c6 W - (setq temp xline_x1)
0 o1 F ], G9 k$ E - (setq xline_x1 (verify_xline "xline_x1" value xline_x1))
0 s g6 w/ ~. n* y+ [- i' {* W - (if (/= temp xline_x1)% l: p/ _, T7 G# N
- (progn (modify_xline 0) (set_tile_dirv) )8 s. |6 l2 ^4 M6 S
- )& u- W p, v5 C) U2 \
- )# O9 }9 f; S% Y) m: Z1 ?( @
- (defun ver_xline_y1 (value / temp)" S2 h/ T; ?' K/ C" p F, N
- (setq temp xline_y1)% R- H7 L8 Y K/ P. b
- (setq xline_y1 (verify_xline "xline_y1" value xline_y1)): L: [& m3 Q3 j; Z
- (if (/= temp xline_y1)
! G" H* l5 v2 \ - (progn (modify_xline 0) (set_tile_dirv) )
$ {8 ]: Z R, V - )
8 E& r9 J2 |6 C e# ^ s+ D - )
9 ?# g3 Q, }2 I2 m - (defun ver_xline_z1 (value / temp)
# X6 f2 j: C- |6 v Y - (setq temp xline_z1)
7 i! c) h1 f4 n# f/ p - (setq xline_z1 (verify_xline "xline_z1" value xline_z1))
- z* K. Z& y) f& ^. v+ S$ h/ D; E: a - (if (/= temp xline_z1)
3 R& R& H$ T" o# o1 J) V ]* B - (progn (modify_xline 0) (set_tile_dirv) )
! @2 @- B! `! [# k5 ~" H - )
5 _ T8 F4 ~6 k& R+ z - ): u% \# A- @+ G9 y
- (defun ver_xline_x2 (value / temp), f* s8 j! j4 l* |! v0 a( K' r& D
- (setq temp xline_x2)" c1 b" r$ u4 u4 b& x
- (setq xline_x2 (verify_xline "xline_x2" value xline_x2))
$ f+ j' X0 k- O. d* q - (if (/= temp xline_x2)
: R' M; {6 B2 {' I& D5 | - (progn (modify_xline 0) (set_tile_dirv))# `9 E& v3 Z! L: C* ]
- )
) r+ k1 N( _/ G - )
+ a5 H# }1 b( Q5 P1 [) |' n# g - (defun ver_xline_y2 (value / temp)
- g' X# I9 q' n6 q - (setq temp xline_y2)( H& j) i& V/ _, @8 I% X
- (setq xline_y2 (verify_xline "xline_y2" value xline_y2))) A( t! y; |" v9 m' k4 W3 k% b" w1 z
- (if (/= temp xline_y2)
/ H' J% g" f3 _0 H9 s9 { - (progn (modify_xline 0) (set_tile_dirv) )8 N$ W* t% Z- S
- )
/ A" D+ n# g1 d* @ - )8 R" \/ \* G. c7 P( C
- (defun ver_xline_z2 (value / temp)
/ x: @' E8 n% J m/ D( x# v - (setq temp xline_z2)
/ _; e& T; o9 ~# z* ~* i - (setq xline_z2 (verify_xline "xline_z2" value xline_z2))
$ D( A5 O+ R, y, S3 t4 I3 x - (if (/= temp xline_z2)
7 _4 Z9 r7 {) K$ S- o' p0 q - (progn (modify_xline 0) (set_tile_dirv) )' @- E r; U( ?& |. q4 v: E* o
- )6 M7 m0 ~! ?# @- W8 \! y
- )
5 p- I0 y4 j1 o t/ C - ;;# W9 {: l0 {8 K, p: Q& c# }
- ;; Functions that verify tile values for angles, v, w) |* K+ E4 ~! g+ h6 p
- ;;) x% s/ z" L0 d$ \1 D/ F
- (defun ver_ang1 (value): i! A. B2 g# H N2 j: n8 U! o+ x N
- (if (setq st_ang (verify_a "st_ang" value st_ang))" g- n1 b& G% H- I8 C
- (calc)
! @& [' h5 P7 N6 s3 ` - )7 F( _; k9 ~/ B9 b5 Q+ i2 p" [8 t
- )9 J6 h- Z( `4 q* N7 W& I1 k; R2 c; _
- (defun ver_ang2 (value)/ F- T5 @! d7 i. g0 j& z4 w
- (if (setq end_ang (verify_a "end_ang" value end_ang))" {/ y& X0 b: |. f0 W* _; w+ I, U
- (calc)& o, \1 ^ `7 U# ]+ a3 v2 z
- )6 J( `) N3 \" s7 f
- )
! i* F h5 T9 h& V& T - ;;2 U9 Z5 W/ ~3 j; s7 b* V7 b
- ;; Verify tile value for ellipse end angle. Handled slightly
$ @6 ^- T7 ?9 @; a+ X5 d7 B u - ;; differently than the other angles.4 K- @5 S; w7 \( ~
- ;;9 M ?. }1 w* _+ ^! ^1 ~- L
- (defun ver_eang (value); Z6 o$ U% h* y, j6 B+ G
- (setq end_eang (verify_ae "end_eang" value end_eang))
3 T2 ^- d {/ J+ V" T7 n+ h - )4 A+ d* f, D" q, e
- (defun ver_rot (value)& T7 T& W }' E) @4 O
- (setq rot (verify_a "rot" value rot))( N! `0 y. z( |; Q; f7 O
- )1 O( |# h' a- g% q
- (defun ver_obl (value)7 T; }/ f- l& T7 T
- (setq obl (verify_a "obl" value obl))
+ G: q+ p/ l- d9 D5 q - )0 h: X! G2 c: z" W8 `* J9 c
- ;;4 ~; b9 W V! v) B5 L
- ;; Function that verifies attribute tag field for null string,
/ {# { P4 v& k1 n' {3 k0 k: C1 E - ;; or a string that contains one or more spaces. Tile value
8 o+ N: N) I5 I u - ;; is also converted to upper-case as well.8 t. Q0 g, V# v7 F7 H# D" h- Y
- ;;
& y2 t! {2 ]: m' u* k9 t+ Q - ;;
% U" s' O. J$ A9 b; R: g - (defun ver_tag ( / tval)
+ {) H. N. B# l - (setq tagval (get_tile "tag"))
! h5 @ L6 [3 N8 j0 { - (set_tile "error" ""); r5 Y R/ R; X D) X+ G, ?
- (cond/ V5 I- k E- o& @" l
- ( (or (eq "" (setq tval (strcase (ai_strtrim tagval)))): x# g9 S3 [9 U0 `, }$ I. Q. `
- (wcmatch tval "* *"))% N" m2 A9 z0 {0 Q8 ~; r
- (set_tile "error" "Invalid attribute tag.")
+ ` I0 s. l6 R. X# l4 i - (mode_tile "tag" 2)- n3 z p6 A: y J# B* k
- (mode_tile "tag" 3))+ P/ k$ J8 ]1 R# z q% T
- (t (set_tile "error" "")
; i* i7 }+ f3 f# v0 }: ~/ o - (set_tile "tag" tval)
, D3 y! ] ]4 c B4 x% x - (setq attag tval)))
5 D4 b; q7 L: v8 _3 {5 C - )! q6 N, G6 W4 f* L
- ;;
: W0 T% d% c$ ]3 {- o9 X - ;; Calculation functions
: M& B' w# f% a$ `( K" | - ;;
) Y& Q4 [ V( Q+ d# o - (defun calc ()
/ H6 n' e2 ?. j; P3 K, m8 L - (if (= etype "LINE") (line_calc)) h6 _; i% \8 u0 |' X; `& ?+ I1 J% s
- (if (= etype "ARC") (arc_calc))
. {0 e0 Y. ^. V8 M - (if (= etype "CIRCLE") (cir_calc))
; t6 e! y9 l$ p, f2 | - )/ q% X& B7 _: f$ u1 F
- ;;
h2 I* ^5 ~& ~" K - ;; Calculation functions for lines, arcs, and circles# b. T% a" E. D; k% O3 Z; o% v
- ;;+ B9 G* e5 ], P- s
- (defun line_calc ()
) \% a" h) P7 d( | - (setq stpt (list x1 y1 z1)): q3 U6 v) D! B
- (setq endpt (list x2 y2 z2))0 K" [' a4 K* H: {
- (set_tile "delta_x" (rtos (- x2 x1)))3 M) d( u( Q4 D# u! T; [
- (set_tile "delta_y" (rtos (- y2 y1)))* h% r4 y+ L0 D' ?8 a1 @
- (set_tile "delta_z" (rtos (- z2 z1)))
7 |. o) O* o* q' k, w* Q - (set_tile "l_length" (rtos (distance stpt endpt)))
1 u2 O* C& j" e# e% e - (set_tile "l_angle" (angtos (angle stpt endpt)))
# Z4 F% X! U# ^+ M. L* s8 s5 @ - )- |1 ?, u2 L* j+ l! s& k: n6 N
: {0 |4 h4 W. A c/ N! x- (defun cir_calc ( / area units)
. }' P/ O1 d$ R- [5 E" f - (setq radtest radius)! p& X, C7 T6 b) N
- (set_tile "Dia" (rtos (* 2 radius)))
$ l6 ^2 I& B% a2 O - (set_tile "Circum" (rtos (* 2 pi radius)))
x; M4 A2 `& w; m0 O) W+ I2 E- j$ Y - (setq area (* pi (* radius radius)))" @6 u6 Q3 l7 L: `
- (setq units (getvar "LUNITS"))
% `$ g5 x0 S, ^1 I1 Y1 N1 } - (if (or (= units 3) (= units 4))
4 e4 |% a! Y, E( G# N+ ?7 I - (progn
+ w. N( j# B8 ?4 \4 a1 ~6 @& p - (setq area (/ area 144.0))
5 E; J; G- _+ _' g& }8 h2 T% c+ V - (set_tile "Area" (strcat (rtos area 2) " square ft"))
; _ x! U4 b: ^- U - )
/ i# ?( }$ R) k5 F - (set_tile "Area" (rtos area))' _% T3 @; b% q6 Z i( F1 ]
- )8 ], _; _! d5 q1 S0 B; E
- )
. f% k: U- E/ \0 l) K) l$ {2 K - 6 [. }; t% t: ~" J g1 p; e
- (defun arc_calc ()
( M. M2 Q6 U* W) l$ d - (setq totang (- end_ang st_ang))
- ?4 Z4 t. l# N: |0 e - (while (< totang 0)
, f$ O+ H# ? u$ x8 t! v - (setq totang (+ totang (* 2 pi))). \: G9 }% m2 L% Z+ L) ~! Q% {
- )
# y n1 P: G' Z: L* U* q9 ?' Z - (while (> totang (* 2 pi))$ ?' H, ]: {0 M4 S; ~6 m* |
- (setq totang (- totang (* 2 pi)))
. n1 e8 L( u# Q1 e3 | - )2 [" ~' s7 p9 n' L
- (set_tile "tot_angle" (angtos totang))# L: Z" @3 _% t8 l5 |4 k
- (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi))))
) U8 w% {* Y7 c+ }1 V1 B4 h9 F" l4 a - (set_tile "arclen" (rtos arclen))* U+ A$ J) W0 T- z! |
- )% Q- a. `6 b) W' o3 n! C+ k+ ^
- ;;
?* I) d% G( d/ u0 D1 j+ r+ }' F& Q - ;; Calculate the major radius, minor radius, major axis direction.
1 h+ {8 [1 G* j) I7 \ - ;; Get radius ratio. Convert Start, end parameters to start and end& l0 e: q* l! M# F% J
- ;; angles. Save Major Radius value in "old_majrad" in case the user
' C4 W# w" E0 z9 O4 P - ;; chooses to input a new Major Radius value later. It's needed to6 F3 U% @. j' ^; `% w0 x
- ;; calculate a new Major Axis Vector value.
; y& j* P3 S: @# M _ - ;;
8 U* n7 `9 a3 J: E9 M - (defun ell_calc ()
2 n/ c! V i3 x' l8 T - ;; Get major radius from the major axis vector.
' H. h! _5 \1 ~1 K - (setq majaxis (cdr (assoc 11 elist))) I1 I2 k& H8 Y: k- _: X
- (setq xx (car majaxis)) Q4 A w5 A4 k, i7 F
- (setq yy (cadr majaxis))$ O" G3 }( O: ? P
- (setq zz (caddr majaxis))2 d5 O- B3 n1 ^6 O1 p u( e, I
- (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) )))
" B1 U* _7 b2 E. j2 ?, t5 y - (set_tile "majrad" (ai_rtos majrad))8 d- U0 H. [$ U* B& o5 e7 c
- (setq old_majrad majrad)
- \: C* F) f0 _- L( A6 } - ;; Get radius ratio) ]# j, g5 i6 s/ I( L P6 Z
- (setq rrat (cdr (assoc 40 elist)))0 V6 c: d" u- f# j$ m k# {0 J: ~+ y1 Y
- (set_tile "rratio" (rtos rrat))
/ [# }) R% U6 `/ c! o7 a1 x- w9 B - ;; Calculate minor radius7 ?; a9 S) s' l( W/ e
- (setq minrad (* majrad rrat)), G/ Q+ l9 K4 e1 h6 z
- (set_tile "minrad" (ai_rtos minrad))
4 [# c) ^ U8 O5 T - ;; display major axis vector
( E$ V0 E# R" X) {; `# E9 J - (set_tile "Majraddirx" (rtos xx))' |8 S0 o/ R3 g$ A7 [
- (set_tile "Majraddiry" (rtos yy))
# I1 }' N% C1 p$ r; B - (set_tile "Majraddirz" (rtos zz))
* E$ \3 C& `5 i& W/ i - ; z8 M, U6 L3 R( q
- ;; Convert start parm to start angle
, q+ Q1 c& P. x& z" p) j' d0 A - (setq stparm (cdr (assoc 41 elist)))
4 Q# P3 L* T6 C - (setq vecx (cos stparm)); C6 ?- u. h4 V8 B5 F
- (setq vecy (sin stparm))
/ k/ P# }0 b9 N% J# f E" f3 h - (setq st_ang (atan (* rrat vecy) vecx))
9 V E; b8 p7 J) J( G9 ] - (setq tempst_ang (ai_angtos st_ang))8 ~$ T! z T8 m8 V8 P% @
- (set_tile "st_ang" tempst_ang)
# b* Q4 G3 r s" I - ;; Convert end parm to end angle. If end angle evaluates to 0
; |! e$ [! o; R2 } - ;; degrees then display it as 360 degrees.
! U& ?, a2 W5 j+ E - (setq endparm (cdr (assoc 42 elist)))
2 l. y" m2 v2 x3 V - (setq evecx (cos endparm))0 q- H/ T1 c6 i- v6 v9 R
- (setq evecy (sin endparm))0 f: ~% R @, L8 G ^
- (setq end_eang (atan (* rrat evecy) evecx))
' b/ |9 P; B+ l" Y( ?( g1 s - (setq tempend_eang (ai_angtos end_eang))
3 I, f% c' e8 }+ d( N - (if (= tempend_eang "0")2 @4 b+ r7 F$ P! r4 q% j
- (set_tile "end_eang" "360")
' y* o" X- L4 j3 p O! @$ Z; Z - (set_tile "end_eang" tempend_eang)
! { Z0 k j8 X - )
H" W A# M4 _1 M& W" F - ;; Get area of the ellipse.$ n( z: ?3 H2 h5 w
- (ell_calc_area)
" h/ w _2 X4 J+ y) F. ^ - )
7 h c7 M5 b8 j0 w - ;; Calculate area of ellipse. If it is an arc then9 g0 ?2 R3 q9 A8 g0 p/ Z
- ;; grey out area display.
. K" T2 @4 r+ p - ;;
+ g+ h; d9 X: Q, g; [" M+ m2 Z - (defun ell_calc_area ( / area units)
- n9 O' e6 f- G - (if (and (= tempst_ang "0") (= tempend_eang "0"))9 z* L' D- f' |5 J1 y: G" g6 B
- (progn
2 Y- |! A" b- d - (setq area (* pi majrad minrad))* w0 S' d; p, T* Z' F H6 D D: r
- (setq units (getvar "LUNITS"))
0 o: G- p8 C- L" G. o1 A- D' u. D - (if (or (= units 3) (= units 4))
% {& H. b3 _( i3 u; P - (progn% H$ D) c: {2 t' \" G
- (setq area (/ area 144.0))6 T8 j4 Q6 U0 Y# x" d
- (set_tile "Area" (strcat (rtos area 2)" square ft"))
$ p; s9 V" z7 N; f. N - )1 @! H# [: M& b0 C0 J6 {0 i- E# M
- (set_tile "Area" (rtos area))
5 f$ {8 B# U( ], o Z6 ~: g - )/ f2 t- g: |* Q! i& h+ _* e# v' ^" y9 e
- )
4 F6 ` `4 Q, E7 a2 q$ y - (mode_tile "Area_text" 1)( U6 W; w5 O# u' t& K* @
- )$ D. C( K4 P G9 K* E w3 @0 ~
- )
+ X, F; f- q- L1 o6 R - ;;
3 j* n4 }0 c% _6 Q7 _" J; ?/ i) } - ;; Calculate new values for ELLIPSE$ A3 P" G* y% }
- ;; Minor Radius, Area
0 [2 r# U( i4 p! R - ;;
4 x% D, g3 G" s - (defun ell_calc_newval (ell_tile)
+ U0 m! t' x' V( X% R3 C - (if (= ell_tile "majrad")
- f' e* t6 F6 p' s1 V' Y5 Z - (progn' e1 ~( @- b( G2 P# Y- m
- (setq rrat (/ minrad majrad))
" u5 F' M! F$ ~4 x4 j0 R* g - (set_tile "rratio" (rtos rrat))% @2 v: e# m$ i7 p1 f6 h9 X
- (ell_calc_area)
6 p; z5 @$ u- e- J1 [1 F' ?0 j - )1 T0 Y, G4 B6 z& [# n
- )
+ M+ K! y! r+ s& h; H6 n& x8 q - (if (= ell_tile "minrad"): b+ v9 c: _! M! D
- (progn
+ V; {4 S- u8 |3 L f* J& v - (setq rrat (/ minrad majrad))- T/ Q5 ^! s7 T. W3 f% n
- (set_tile "rratio" (rtos rrat))4 K9 K t4 P# z* X
- (ell_calc_area) M: j% D! w+ H; K7 @( d3 H; o
- )
# I3 [1 n3 m4 b - ); z+ W. S0 P$ ~2 L- `! \/ U
- )
, a! ^- x6 }. `& D% U7 q& |( u9 _ - * m' M7 E8 X2 [$ g- t! c& p
- (defun set_dimen_props (/ loop a stl txstyname)
* k r/ h( H0 z
. J; d% O0 ], n3 h0 W6 j! \- (setq stname (cdr (assoc 3 elist)) ; get style name0 B+ G8 b% e* ~. F6 Y
- stl (tblnext "DIMSTYLE" T)
5 C% H. F% D8 J- F _4 b1 V. i - stlist nil)
0 O2 K! B7 f: D* r; Z; N; X. o - ;; Get all style names and list them in alphabetical order( I4 k$ g9 X3 j7 P6 \1 C
- (while stl" [0 V& Q- F, y9 Z; a: O
- (setq sname (cdr (assoc 2 stl)))* }8 M( A/ C1 V5 b& d
- (if (/= (logand 16 (cdr (assoc 70 stl))) 16)1 V: u5 i" l. ~' Y# i7 N1 g
- (setq stlist (cons sname stlist)))9 s! z( I5 s: Z3 m) ?6 \
- (setq stl (tblnext "DIMSTYLE")))3 j ~* g9 m3 C4 ~ M1 |1 s" p* r6 ]
# b1 k0 y6 W6 _% s- (setq len (length stlist)
- V! C7 r0 B/ k/ f# n - loop 0
2 O, y' j5 U' v2 Y# l - dimsty stname
# C4 c7 {. P* I6 g8 t$ q- t - )4 B! E( C, C5 N; i
" `+ r0 @$ F* S0 r- ;; alphabetize style list, depending on maxsort
7 y' ]" T) ]; G! d - (if (>= (getvar "maxsort") len) o. k% G- Z! k! F" E
- (setq stlist (acad_strlsort stlist))( c1 c2 B* V: r3 S$ i0 P2 s; V" o
- (setq stlist (reverse stlist)))8 q/ {: W8 q6 n0 ~
& ~$ j9 Z: ]5 V7 n- ; *UNNAMED style (dimsty = nil at this point) is replaced with1 P9 J% Q9 w, P8 N
- ; the current style. After R13, we require dimensiosn to have a
. R7 J+ j( U. e - ; dimstyle, so we plug any holes where we find them.( b8 N% U# I5 E2 L" g
- (if (null dimsty)
+ S& U! y, O. b+ w# s- z b; v - (setq dimsty (getvar "dimstyle"))
. i, F6 c. ^4 u5 S# V& R - )( s4 V7 ^7 o) S1 v. ^* Y; _% l
- ; Show the styles in combo box
& H5 O& A+ d. z. b - (start_list "mod_style" 2)/ w, W- m0 B4 l* O7 c& [
- (while (< loop len)& O, h% ~& y1 r' z* n8 W2 t
- (add_list (nth loop stlist))
; j! W! f* Y' E9 k% m, ^ - (setq loop (1+ loop))3 R& g: R2 h' u
- ); n$ v! v! |$ o: i2 y
- 3 ?2 _3 E1 n w7 c
- (end_list)9 }% a- U- s& Y: O' p, g E
+ t* t- v$ }; Y0 E- ; Hilight the style name of the selected entity
9 g) ]% Y( C+ u% f( h - (while (and (< 0 loop) (/= dimsty (nth loop stlist)))6 u" ^7 o) B: v( S
- (setq loop (1- loop))
; ~" u0 E* x ]4 w8 ]# K. p7 E4 D- ? - )% k$ y+ E8 d/ o6 D0 {6 i
- (set_tile "mod_style" (itoa loop))/ D, ^( P8 e2 t& l1 {
5 D5 P, ?6 `) S- ; The following is the list dimvars. It must be sorted in the same; Y$ Y! E; V- o
- ; order as the resfub returned from DDIM (ADS module).
7 r% U& ~( C+ I/ Y" V - 1 N; U; y2 ?( x7 \- d6 N9 O
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"# ]7 ?- p \3 X- J9 a
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
8 I; F0 n d# Q z, C; E, d4 n - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
3 k. L- x) k3 f; Q. ^ - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
. n) k/ C3 P' ~ - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
. U% k4 ]' ?) M, s, @8 h - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"
! z& o1 J2 D# r% E/ v. G7 f' ~ - "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
: z/ }, L2 G2 g5 f# w - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"$ w9 S! w$ {" @ |9 i3 m
- "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"5 q8 H2 w2 A8 v, K
- "dimdec" "dimtdec" "dimaltu" "dimalttd"
5 z$ T$ l9 O! H: k$ e3 X - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"
( J: i$ f9 ]$ w$ H - "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
8 O; [, b0 k$ k, s5 L: I- n - "dimtxsty"! u' Y: l2 T u) K8 P
- )); r6 e' p) A6 }' O# W. N( P, ]
- (progn
. ]4 a/ u& _) l9 A( k- k - (setq sv_dvlist (ddimen_getostate dimsty)6 v' }# z. h* N7 |
- txstyname (assoc 340 sv_dvlist)0 W F5 W' T" r2 u1 c
- sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))' R; x3 e6 A* @1 i" E. t3 l3 f7 E
- txstyname sv_dvlist)6 ~) Z7 W) S# t* U8 X1 e
- dimlist sv_dvlist
1 U0 L1 ^! r9 Z3 x; o0 Q - )1 }- }9 @# A/ ~; ]+ q
- ); I7 p5 M) Z T! w
- (if (= dimtype "DDLEADER"), H& M0 z# y1 p H8 p2 O
- (mode_tile "mod_format" 1)
3 e! E8 n8 A T' ~0 M - )
7 }, M; Y: h& G1 z - (action_tile "mod_style" "(setq dimsty (ddimen_style))")
2 L4 u# C4 r7 S, r! I - (action_tile "mod_text" "(done_dialog 4)")
. m; M. c. I! i" ]5 |' T/ R% | - (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))"): b! }2 X7 n' @/ E% h
- (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")0 K M& x" T9 f, |6 I
- (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")- U0 t- d( y) i, B7 E
- (action_tile "accept" "(done_dialog 1)")
6 R* v+ x9 F/ y) O( b" m# v - )
) {/ z! p8 c' G* B9 r( n+ S3 X - ;;
1 Z; l/ y2 `; l$ Z$ G5 b - ;; Get dimvars that have been restored.
7 v N, @7 q8 D" k5 T - ;;8 O/ H; p( l& w5 C' f/ b, x; Z
- (defun ddimen_getvars (/ elm dvlist dv i)" H6 @+ ` h( \( q8 D: ~; _
- (setq i 32 W! S, n: _. P) t6 ]
- dvlist (list (cons 0 "DIMSTYLE")" B9 v$ t4 |( d" i
- (cons 2 (getvar "dimstyle")) (cons 70 0))
4 \; I+ r: \, q% E - )+ V X' p4 M4 h' X. ~2 b
- (while (setq dv (nth i dimtbl))
( h4 s9 D& Y$ G/ Q - (setq elm (getvar dv)0 w. c. Y3 {2 w
- dvlist (append dvlist (list (cons dv elm))). V; @/ s0 g3 k0 A" _' ?
- i (1+ i)) G. p& N; E- k6 I$ C6 d! r
- )
* \2 }/ E$ J/ f - )1 ~. c2 p2 b9 c, f7 A a; T% e
- dvlist
! y! `& g% X' ? - )
0 r7 }) }) S9 ^4 g! E ^. G; u
+ L/ h1 _" {0 I9 z' A* U- ;;
4 t- S/ |- J8 D3 \ - ;; Get the original states of dimvars. This is for DIMENSION entities.
, T+ i" m* q& f4 I - ;;
3 a9 x5 H$ Y6 @4 C' f$ t p - (defun ddimen_getostate (dimsty / dvlist elm i dvvars)
# d5 I+ D- d- g; X3 j - (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list
R: K7 x) D. A, x - dvvars (ddimen_getvars) ; Get dimvars for that entity
0 j% H: l; Q4 A - i 1
( W9 Z" e: p9 q' g - )
" {4 c: [0 Y, n - 8 Z' l& C# P T3 U$ P2 W1 |4 u
- ; Create a list that contains values of the selected entity.
$ ^ e* r& b8 |( S' s
* d" H7 k! Z7 r& W1 {- (while (setq elm (nth i dvlist))/ {+ E) z, b0 m: V V9 J3 j/ u X
- (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)
5 r) Y- t! _- ~/ W- k - i (1+ i)
. t3 Q/ N4 C( l - )( Z/ @- ^1 U4 t- a* d, X, h6 o: S
- )* g3 j/ d* R' P6 e& m! i C, p, G. w; D4 p
- dvlist$ Z3 ~5 i8 P* k4 n4 h
- )
$ C( M( M1 ?# S; R# g$ y
3 I8 S. u0 t# D- ;;1 t- X/ H; C' v$ b0 s
- ;; Restores dimvars of the selected enity.8 a3 G& c. r' R1 y
- ;;
, H! [* a9 X2 h( p- w# I5 h. X' R5 l - (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)
# b2 d" H- Z( E7 ~1 C- z$ g- P - (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"( k0 t* R* B. t+ _$ ~/ m& V( @3 u0 R
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
& M5 `# u0 Y! R4 u* J! R5 r" P! [4 P$ m - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"; f% J: G) q& n) L+ l7 Q1 D
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
6 a! Y6 x: F7 E. t$ G9 ~ - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"- ~" H- [& \& D& ^# ?
- "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"9 Z" j$ A3 Q7 I* N2 s
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"6 w1 t' o% _$ @3 w A; ~. r* E
- "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"% t& d5 |1 S2 R; t2 [# ?
- "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"+ v; X$ l. ?. w a* N/ h; [( e! x6 x
- "dimdec" "dimtdec" "dimaltu" "dimalttd"
?; d9 D0 V) u3 N6 |! h. G3 X - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"+ |0 Y$ X3 E7 h
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"' ], ]* `, x. ^4 s* W# b
- "dimtxsty"3 r8 y# }3 Q* t$ l% T
- ))
# B# P6 ^/ ]% o N- R - (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings
1 E, N0 P1 r3 L- j% B/ `+ _; F6 p - (progn: e9 F+ i- D0 y6 R
- (setq en (cdr (assoc -1 elist))) A/ N0 L7 @, q/ C
- (command "_.dimstyle" "" "" en)
" W, b0 ~6 e* K9 v' ]" c - )% J9 d4 I/ [9 k* X
- dimsvcurset
$ T8 f7 k1 E: ~3 ?: [* U - )) Q5 @. a% X! H$ J- r4 S: U
- ;;
! ^' [" H% v* A- t, a - ;; Modify Leader
y* f2 L+ I/ t6 {, o a k1 q - ;;
4 t" J- u* b# f& E, N7 Q - (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl
& `; ]: S- a4 g/ s# { - dimsty dimlist dimtext svtext dimovr sv_dvlist stlist
, O, i' {% f0 @ - dimtype dimsvcurset)
& r1 S/ R; p G' U" w& O- O2 o - (setq dimtype "DDLEADER"
; s4 n( A# C3 f8 a% `( h6 z - dimsvcurset (ddimen_dimsty_restore)
% g3 C2 f9 x: z# e - )8 d+ V! g5 A- t) O7 A
- (if (not (new_dialog "ddleader" dcl_id)) (exit))/ t r' Q& J. L8 u9 m! C0 h& [
- ;; Set initial tile values& h7 J! N. ~" ?/ `& t8 X" C
- (set_tile_props)
7 P; l" }- V* j' R* n - (set_dimen_props)
) O7 _2 z n+ T4 a0 u" Q9 w# r. H - (set_tile_handle)* h9 n" [9 F! ?
- ;; Define action for tiles
. K3 o6 q Y& k( {7 d) ] - (set_action_tiles)
/ x) d8 v! L; f% D4 r - (mode_tile "mod_text" 1)1 F2 p9 [9 m0 N" F
- : e4 m8 u) k! \; Q
- (action_tile "mod_style" "(setq dimsty (ddimen_style))")
) d& J: }5 a( ?8 J/ [' B - (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")0 d2 R4 J1 z8 s& t; o0 ~
- ;; Get ARROW and TYPE.
/ r5 ~7 o( o5 ]$ a/ z; o - (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))
1 Q4 M; |0 G7 }2 N/ M( B2 R4 } - (if (= 1 (logand (cdr (assoc '72 elist))))
8 b0 o4 W" G& B, _2 Q: h7 q/ E - (set_tile "s-s" "spline") ~' W u# J6 M7 a6 N1 h
- (set_tile "s-s" "straight")' P+ g+ v* \* O! g0 m
- )" y6 q% e8 i0 b- T8 x
- ;; Start the dialogue.
* O7 J( d1 {; q - (setq dialog-state (start_dialog)). L( A$ j3 Q! L+ R2 h1 I+ |
- (if (= dialog-state 1)
( W( k1 F/ C# m' m' v x - (progn
/ t1 O9 j0 j ~$ D - ;; update the style0 i9 ?. O& R) [" c z" k
- (if (/= dimsty stname)- w/ D; k6 B+ E! G8 ]& F! F
- (progn
E: z5 b! Y6 T8 q7 c - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
4 ?/ ?9 x n% o5 @3 J% o - ; doesn't have it.0 v1 G, L4 l! O' Y/ [
- (if (null (assoc 3 elist))
) e* x) {: M3 ?1 o - (setq elist (append elist (list (cons 3 dimsty))))2 V- |# ^7 P6 Q( R/ n; \
- ; else just replace it.$ \! s- Z$ |" w9 e8 x. Y# r
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))+ ?" I$ o7 D8 [( B. s/ V( o
- ): D* E. D ]1 j
- ; refresh sv_dvlist with new dimstyle.& b7 D3 W2 ?- D: ~
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
' Z0 `1 V5 {3 i% \! G* h - )
- l/ d. M! i& @6 h% p+ T6 z - )9 t( z% C# Q [: c9 u6 x
- (if (not (null dimlist)) ; attempted to change dimvars
% [& R: a% V, ^+ p/ F - (ddimen_complist sv_dvlist dimlist dimtbl)
2 h) I2 t9 @+ h# W( f# Z/ Q/ u' ? - )
0 U0 N/ K" r0 Q+ b9 J - ;; update for ARROW.) Z" c; c: ]# j
- (if (= "1" arrow) n: [' @3 [7 R e
- (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
$ }/ Y" ~' M) l# X5 k6 V/ ? - (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
% w k* d. W5 |$ S* q7 r - )
) m5 n% i1 m0 [0 [ - ;; update the TYPE.( L; ?! I9 }' P( M" q. i1 O# x6 ~
- (if (= "spline" leadtype)/ l& X y0 g5 W" g+ S' K
- (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist)); m7 X( ~: Q( L: l
- (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
: a' @ B" C) d0 A - )
- k% \& F; b6 _0 I - (modify_prop_geom)+ M& z* O& L0 Y" g) G
- ;; update the Color
% m3 B; F6 N# z8 N# u+ O/ N - (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))3 v& k0 w( n! e3 |$ c
- (entmod elist)
! E3 s1 s" V/ i) d, q" O. D; K - )" v, J. F4 P; e9 R& C
- )7 S. b6 I$ c+ f; G8 s! [
- (ddimen_setvars dimsvcurset) ; Prepare to exit# f! s4 i0 p. L5 u) i9 q* s6 A
- )
5 O3 Q: `# B9 H2 } - 7 J' E' @" Y- M) u3 ?0 w
- ;;
1 j8 {$ _9 Z0 r# h" \, C" R! c - ;; Get dimvars of a dimstyle with overrides.
' ?1 T: c5 u' }+ G ^ - ;;4 H! C4 _# u. u' S' W
8 q( ~7 L' Q$ c( ]* J- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)6 \- F( A( U! ~7 Z$ ~
1 K" j1 D' V7 @) i& o" P- ;; Get override information for the specified entity.
; w1 u: c3 L/ W2 P - ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we; C2 O4 H, {, T$ I% E
- ;; must obtain override information through this tedious operation.% n( z" M4 `/ s
- (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))
# ^5 p. q7 Z9 k: q9 m - dvlist (tblsearch "dimstyle" dimsty)$ {0 |/ j2 G9 d& o" K, P
- i 2
. J8 o. a8 }9 J( S0 C( E - )
6 f& j7 a- q& A$ x7 ]# Y - 7 d* M, S+ Z( a$ S2 c( _
- ; Update the list with overrides if overrides exist.
- E* S i) e, g" h& U. H2 H. z& w - & b& s, Q# e4 e& m
- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr))))
$ r' J; L% U" j- z' U - (progn% Q8 \6 E1 ?4 N6 s( ?4 N
- (while (setq elm (cdr (nth i dimovr)))
( o9 p! ~; ~/ \& q: e - (progn+ A6 q7 l9 R- }* H) C5 ~. K5 e) P
- (if (or (= elm "{") (= elm "}"))
! t5 }' b9 j/ Y3 v: p - (setq i (1+ i))4 [' ?. k) y2 S
- (progn8 f7 O7 `4 P8 F* C: u6 b3 z* z% i) @
- (if (or (and (< 180 elm)
# x! u# }. R; c - (< elm 190)
0 T7 e( r- ?$ t5 r - )0 m# ?& L$ d" y& K2 r4 X7 y: m
- (and (< 80 elm)
; Q1 L1 J; x: s0 T - (< elm 90)9 k; s& _/ c- n# F
- )% R! @# Y* N1 z$ K
- )
- F0 K7 t! H/ @* B! b5 T - (setq elm (- elm 10))
2 _# h( _1 K- B- c% h1 s - ). i9 \/ P8 x5 i% n! u2 Y
- (setq i (1+ i)
- L% M4 ]$ o7 H/ C' N; j6 H - elm (cons elm (cdr (nth i dimovr)))
2 ~! O# _3 U7 O$ i a4 n6 @5 N - dvlist (subst elm (assoc (car elm) dvlist) dvlist)6 h' O7 S# }8 y
- i (1+ i)/ ^+ v( ~7 d2 [9 u! W
- )0 G+ M6 ?; x3 P1 }& N' H( a
- )# p! r& F I' h" d) C
- )
_6 Y3 ~# U/ G& c* Y- D7 D0 G - )
- [0 R0 i% R( O$ z/ ?" U* \' h - )
2 y9 U( K y5 f, s4 n( g - )' ^7 ?. W$ L2 l6 L2 ^/ j1 y) k
- )" x$ k M) k$ X! _9 d" G
- dvlist
6 O: C4 Q1 t! T9 V: P - ): d0 K4 E* c6 N: \, Q* e" }8 K) P
- 5 t5 p) Y: z" N. ?
- ;;5 h6 c6 B! T$ ], n5 w
- ;; Modify POINT* D' E' {, g: a# A* F0 U" R$ k
- ;;
! A* w1 ?; f9 K _! x: l' X+ L - (defun modify_point ()
3 P' z }0 ?6 K# h, F7 z - (modify_properties)) k. b3 ?- V* \$ U" D3 X4 ?8 t
- (setq pt1 (list x1 y1 z1)), J/ ?" G, ~, `
- (tempmod pt1 10 0)
9 ^8 i) v. S( m4 W4 T9 Q5 d+ c - (entmod elist)
, y" D) P- c% G, A2 i- Q) G7 T+ ^0 h9 f - )8 j* o i1 z- B7 f
- ' \3 f* I( d& R/ U! u0 S9 F z
- (defun ddpoint ()
/ F, ]+ \) c: d/ n% w* S5 Z+ _ - (if (not (new_dialog "ddpoint" dcl_id)) (exit))# [! A0 U4 Z, g: U5 u
- ;; Set initial tile values
: N; W/ i0 w! ]8 ?& j- i - (set_tile_props)( _; T% A) \6 g
- (set_tile_handle)5 k( r+ O, K9 U# a8 z5 t
- (set_tile_pt1 0)
2 c8 P" Q0 O8 A8 l - ;; Define action for tiles
( K5 Y( n$ k. e! o, J' h - (set_action_tiles)
# s: o7 d: ~ C" `$ z6 K - (setq dialog-state (start_dialog))3 B& ^9 |( ~1 u8 H9 Y* n
- (if (= dialog-state 0)
7 t# h. Y& o, \* ] - (reset)
- R3 N* C7 _3 k; C - )2 {) }- ~8 w3 ]# P) Y/ s# S
- (if (= dialog-state 3); [; B; y) U0 s$ Z7 ]3 n$ @+ \
- (progn9 e) T. h" F" ?0 a- H9 U: m
- (modify_point)4 o5 G0 a4 p/ L) b C1 j. _0 @
- (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))/ A u/ O9 F, b \
- (ver_pt1 0)5 k% V; `* m# I+ Q, Z! q
- (ddpoint)
* h9 D* \, |! ?1 V$ F6 R5 J! t - )9 x/ `' x; w& S9 V% l& q
- )
& s/ r$ l% l4 g" q( p8 P - (if (= dialog-state 1)
3 C. V' h: E) a - (modify_point)) |, k3 A& F, v& D" m! n
- )
% b# H! u9 n2 t8 _+ p/ p5 o. } \ - )
% T2 [4 `3 T/ |5 d# }1 |6 q+ M - ;;7 m* [1 T' X" w+ r2 ~, x" `
- ;; Modify LINE
1 x1 v$ Z$ O7 l - ;;- ?- y+ B% ]1 F2 \
- (defun modify_line ()/ i( Q% L5 r I, K- h
- (modify_properties)+ K4 e" y( r* D. \5 Y& d
- (setq pt1 (list x1 y1 z1))
" @4 ~( I$ d; x - (setq pt2 (list x2 y2 z2))+ P) n, G- ]6 x7 g9 w
- (tempmod pt1 10 0)) e0 l7 `; h+ _5 L, z1 ? t
- (tempmod pt2 11 0)
' v7 n! V9 l+ ]& Y/ S - (entmod elist)
. v4 e# x; x3 b" o, q# z - )/ Y6 U0 d" ^ T0 B$ v' R
- (defun ddline ()
2 q4 W- e" n0 a# O9 b4 @* Q - (if (not (new_dialog "ddline" dcl_id)) (exit))$ L+ G/ B% n* o5 E9 p
- ;; Set initial tile values4 d$ z2 j9 R3 F9 Y5 y/ y* e" L
- (set_tile_props), {& C9 U5 E. H' b0 v5 o+ ~
- (set_tile_handle)" G' Z) y' H" n2 I9 e$ q
- (set_tile_pt1 0)% r; Z) ?3 F0 V* l& ]* Q+ `" P4 {
- (set_tile_pt2 0)! y! H, A) K0 h$ \: H1 U
- (line_calc)
* d( i: ~+ C! [2 S0 m - ;; Define action for tiles
- h$ \7 y& o, C8 V: H; |* w - (set_action_tiles)
+ t8 ~8 c/ z# C/ V - (setq dialog-state (start_dialog))/ t" t. q% U& @) A8 O: ~0 }
- (if (= dialog-state 0)( H( v5 [3 Z4 }' x
- (reset)
a- }7 p: S9 L7 h1 e, H* y - )
2 K* X6 }' e" q d' E - (if (= dialog-state 3)
7 T7 {: o# `+ g- ~; v - (progn
1 p9 ~% X N4 ?' k - (modify_line)/ {8 \! h2 f+ N. K& Z$ m, P3 _
- (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))
9 S8 J! L* V+ i1 C; r: R - (ver_pt1 0)
+ m$ i" L* |6 S1 o - (ddline)3 U, `2 M; t5 W9 Z2 E9 V; Y
- )2 u' r/ Q8 d5 A2 p
- )
1 e& N4 J$ b3 C, M& S. F5 c - (if (= dialog-state 4)& f9 k1 j1 l* i
- (progn
( m. }6 l# E1 u. [9 K% Q - (modify_line)& ^. O6 U1 d2 @
- (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))
/ ?9 [5 a9 q" u - (ver_pt2 0)
8 j8 @# f: n* \& k6 Q4 \ u - (ddline)
- U+ \' U" y9 t5 l# W- i- V3 w- a - )
# ^0 h) r; W, ^% a) l - )
+ J( R0 B! X' F1 u& k" f - (if (= dialog-state 1)
4 b: `' V" d$ q - (modify_line)% J4 e3 u0 x7 Y7 h# F# ^8 W$ k
- )
9 \/ P# ~) ]. V3 v% z( U3 t - )
. |, F3 [/ q# q) I - ;;5 Y7 I, G) T3 q( ?! W
- ;; Modify MLine
6 z2 `8 a" l* C - ;;
: {! _" w4 m: L* X5 W% x - (defun modify_mline ()
& i/ d/ I' i$ b3 t& ]- c3 D. u - (modify_properties)
( b) h0 N. [+ U, E6 D - (entmod elist)
9 p$ o' s/ U+ ?# N/ C - )
2 D+ d3 W; T( R. t+ J - (defun ddmline ()
& S! b, k5 ~ l- ^! H+ i - (if (not (new_dialog "ddmline" dcl_id)) (exit))
' |8 ?8 X5 w7 u# o - ;; Set initial tile values
: e* d' H/ w* M' U2 O) l - (set_tile_props)
# ] ~3 y- P' F. k, d- ^7 M0 H* ?# ~ - (set_tile_handle)$ l! T6 Y/ O5 R
- ;; Set mline style text field.7 `: h1 w0 y8 ^. s( H
- (set_tile "ml_style" (cdr (assoc '2 elist)))
4 Y6 d# `; f- w( k2 r5 R, e
# I* d3 r8 |4 W! }2 z% P9 F; V' d9 _- ;; Define action for tiles
5 S5 {6 K& S6 a' w' c0 s - (set_action_tiles)
& |. p8 _5 l8 K9 F$ Z - (action_tile "ml_edit" "(done_dialog 3)")
' u) X K. R7 E: l; e* q; z9 E, U: T - (setq dialog-state (start_dialog))( g. q# x% _; L3 U4 S$ G0 L' l2 w
- ;; Dialog cancelled, reset to original values.
3 o7 ?4 \- Z6 Y0 Y% _+ N9 B - (if (= dialog-state 0)
0 O* ?7 Q/ h, N6 g; U - (reset)0 E3 q* l/ l* ~# [
- )
" M. ~/ j5 a8 O4 ]! ] - ;; Dialog OKed, update the mline.
$ G9 l/ V' Z* N3 ?. D! X - (if (= dialog-state 1)
, |( `9 T' P" g Y2 j - (modify_mline): ~7 E) y5 Y+ G1 \) ?, S
- )6 X$ e3 _% M$ N1 d& J
- ;; Edit Mline, call MLEDIT.$ X; P$ N9 O3 O8 I5 g
- (if (= dialog-state 3)0 }0 ^3 d1 J5 L) |: E" } g# ~
- (progn+ e/ J1 d$ q# A0 K& R/ m% i
- (modify_mline)
* o- ~3 S' h) z& | - (command "_mledit")
U% ?3 r* G6 p6 n( E4 D - (ddmline)
@" _$ _9 o- L# p3 K) \7 f7 E" H4 ~ - )5 M; T: r5 ?" l" b/ x8 i% V& f
- )
; g/ I; \$ C, n - )9 l( T0 X. ?! F3 U, \" N
- ;;
" ~9 L1 b/ Y9 J' S0 U' Q- G) x, m8 Y - ;; Modify Xline" C; `% D, }" k7 P y' w" Q2 H9 E: k
- ;;3 T% l. K/ |7 X& S
- (defun modify_xline (flag)
7 m8 E5 i S h. W& i - (modify_prop_geom)
% }3 f" y7 V( f7 h/ z2 U - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
: V m& s& C+ ~! d e3 a - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
) k8 Y* Z/ |' a4 p - ;; Update the Root point.
0 ]9 L2 g {' H$ l4 J - (setq elist (subst (cons 10 (trans xline_pt1 1 0))/ L- P2 M/ P! i- b" p5 ^. f+ _; h U2 V
- (assoc 10 elist)
: ^& O, J/ |5 L - elist
" t! _& [# D6 @9 R3 L; K - )4 Z7 P7 t3 I' ^1 O+ n# U
- )' H# H$ X4 R2 ~6 X" R; Z- h
- ;;6 [7 D; S7 k( S% X
- ;; Calculate new Direction Vector WCS
+ J0 Y2 v+ Z/ n" X+ E - ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))6 M! v1 f! y( {0 A( n
- / n3 V& `- S* R; Q$ C0 r
- (setq temp_dir (trans xline_pt2 1 0)). L1 E: A/ k) \- N( I
- (setq temp_dir_x (car temp_dir))* B1 j) f7 g, R: e/ O7 Q' A1 Q+ A
- (setq temp_dir_y (cadr temp_dir))0 E! p( _5 T) @# M7 u6 o
- (setq temp_dir_z (caddr temp_dir))
6 b/ o4 m" v2 Y( B2 w9 F
( d8 p! W! l( Q5 W0 \3 p* @* }- (setq temp_xline_pt1 (trans xline_pt1 1 0))
+ k7 C `8 p! y4 f - (setq temp_xline_x1 (car temp_xline_pt1))
. z% k1 ~: c5 q7 j: h* N - (setq temp_xline_y1 (cadr temp_xline_pt1))' ?7 R, c( @6 v" x7 O
- (setq temp_xline_z1 (caddr temp_xline_pt1))
! ^6 o2 \% L. F: C# H( u
! Q" T1 r6 `8 T8 R$ x8 B) a- J } K- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
) Z: l }2 ^! ^7 P% A! U - (expt (- temp_dir_y temp_xline_y1) 2)9 o/ b2 N2 T, c8 h
- (expt (- temp_dir_z temp_xline_z1) 2), p8 u' n; s: Z
- )))5 _( R" F! k1 `
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))' ?) _/ W8 O( h$ U' x
- (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))* z& S3 K2 R. s- a! h# c! h. e
- (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))+ p9 Q6 R" Z4 b3 w! U3 |7 Q
- (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))) P1 F5 {! ~6 c7 o' t6 X. @8 p
- (assoc 11 elist)
$ P, k L/ O. @! p G" l+ u - elist- @0 J( n' G* r
- )7 ] u! R# T9 n o
- )2 d% \% z: k! b/ O# S- C* m
- (if (= 1 flag)
+ n, R/ V* E3 z# m - (entmod elist)
7 ]- o( C3 W0 t0 G) }/ b4 p - )
8 |( Y* P f& g* v, o6 k" L5 d; C - )4 X+ |5 F. C; C
- / x. ] Z" i0 j& ~. C" W& g! E
- (defun ddxline ()- Q: i- n9 m, t$ b. l6 g- A9 q
- (if (= etype "XLINE")
9 ~" \ O$ j& d* S# ^# _4 ^ - (if (not (new_dialog "ddxline" dcl_id)) (exit))
0 D3 S5 a, W+ g, o/ ^: I- K7 L( \ - (if (not (new_dialog "ddray" dcl_id)) (exit))
- p2 l! B7 v, z- W0 _- J6 p - )
- m: P* V( N/ |/ l3 s! \ - ;; Set initial tile values2 d& W) u) H f- y0 f0 {0 @
- (set_tile_props)4 w& J# h. f) D$ m+ b& @
- (set_tile_handle)
( X% O& [2 A% C0 l$ T - (set_tile_xline_pt1)6 W* P: H# W, b% e
- ;; Convert to UCS and post Direction vector.! d7 v: y8 s4 t. q q- D
- (set_tile_dirv)
- q1 t) ?+ ?" _! f$ m, G' d - ;; Calculate second point by adding Root Point + Direction Vector.
5 T" E. R' D/ W4 \, m - (set_tile_xline_pt2)
. s. r% h/ c6 e3 G, W2 t! I: z - ;; Define action for tiles* C5 W, [% v3 O0 [7 ~) f& \
- (set_action_tiles)# x, y% L0 F* O7 |8 b( [
- (setq dialog-state (start_dialog))
9 M) u ^; Y1 ?3 E- Y - (if (= dialog-state 0)
% {: `# \$ h# ]* O - (reset)# `) g8 f, T' h2 @- [
- )
; v4 E; B2 U5 {7 E) \7 z( Z! v! d - (if (= dialog-state 3)& p$ B! ?1 x1 n6 c3 I' o+ N7 X
- (progn, m4 ^1 f; z* z9 W+ O" F" u d
- (modify_xline 1)
3 w6 l$ I% V* C - (while (equal xline_pt2
$ n% `$ O6 X: W# |( c4 [ - (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)
" Z6 ~# v; p; F; J8 q - (princ "The Root point cannot equal the Second point."). v' n5 a* P+ ?! P
- )2 i2 C$ X* m5 g1 v
- (ver_xline_pt1)
/ Y O" j# ?# U: S N' z - (ver_xline_pt2)5 @8 z3 d) ~9 L. e' J# U
- (princ)
: N) Y& k* E) @" ^ i1 s5 q; t - (ddxline)4 d& f) u, _ [: |! H
- )% [, P" c8 W" u
- )( Y3 A. M& @9 k7 z# m7 [
- (if (= dialog-state 4)
/ \& v6 u, n8 P! H0 _ - (progn
- ^- X$ I! x7 ~4 z3 C - (modify_xline 1)
7 x* H) z& A a" s6 B8 R0 s - (while (equal xline_pt1( p1 b/ R# e- ]9 x# ^4 ?
- (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)
$ x/ X3 Z1 _6 T) L0 W) Z, b6 Y - (princ "The Second point cannot equal the Root point.")
( g1 \: i, ?, Z- ~, C$ b" h2 z0 B - )5 O1 o2 I3 r5 F/ c
- (ver_xline_pt2)
! s" v3 v. T- K' `3 o# _ - (princ)
; l. f. k( c9 H - (ddxline)/ U8 {/ n. V" X) z# e' k
- )
# Z3 I5 L: X0 I, v9 s2 } - )7 t- A% H, S# `8 Y- G$ X1 I
- (if (= dialog-state 1)
( }; Q% t+ p( x* t; w2 h - (modify_xline 1)7 x: V. ]; Q! h2 F, X/ d/ T
- )- [$ h4 W" j* Z; D5 ~+ q
- )
6 \* c9 g$ _5 @: d - ;;
: f; x) W \: @( W2 y3 L - ;; Modify ELLIPSE/ q5 `3 h7 n# {+ S" I% J3 ~ a$ h
- ;;
+ k2 b% H( |$ G. j& d( ?0 F5 ] - (defun modify_ellipse ()! h) s4 w4 l- l+ i2 }& a
- (modify_prop_geom)- S7 N& t( v) B6 I& a! K" w8 r6 V
- ;; Update Ellipse Center Point value.
3 }1 Y+ Y6 X Q1 E/ y# l3 I - (setq pt1 (list x1 y1 z1))
. _" |2 R+ S" V7 M" W, `/ ]- ^ - (tempmod pt1 10 1) A4 H O0 o5 ~. Q6 f: |
- ;; Update Start Parameter value.* C! I! h- {. y% E
- (setq y_val (sin st_ang))
9 X) F5 l: m+ q v - (setq x_val (* rrat (cos st_ang)))
% I, e+ g+ o: z; w7 E4 G - (setq stparm (atan y_val x_val))
$ u, u; r& D7 @% Q - (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))
! x4 B7 O5 u3 ]# l4 \) u% x - ;; Update End Parameter value. Normalize it, if it's less than& q* v9 b+ ~6 ~+ p
- ;; the start parameter.
6 h4 I2 `6 y' N/ Z( F - (setq y_eval (sin end_eang))
# B! s' Y7 V* E2 l3 n8 A - (setq x_eval (* rrat (cos end_eang)))* i4 d/ I/ W1 X; S$ C1 w
- (setq endparm (atan y_eval x_eval))# q% Y/ m2 O0 B% {( y2 O# J
- (setq diffparm (- endparm stparm))
. e, p7 V3 e1 m0 F* j7 l! ? - ;; Epsilon of 1.0e-6 radians for checking a zero length arc.
! D/ s0 {1 R. @ O0 r( j/ Y - ;; Since zero length arcs are not allowed - construct the full
) E& E3 L# \$ o/ ` - ;; ellipse in this case.1 k) m# p5 t: Y6 G
- (if (<= (* diffparm diffparm) 1.0e-12), b6 j/ N9 B4 }1 F% h5 m8 H
- (setq endparm (+ stparm (* 2 pi)))
7 r* U0 M9 Y6 n f, w+ S& i - ) [ Q' i3 Z' A0 N$ g# n8 S: I6 J7 A
- (if (<= endparm stparm)' w) U' {5 h$ T! O
- (setq endparm (+ endparm (* 2 pi)))
1 |& }2 i. x7 y4 `, X - )7 `* O5 W9 c N6 D& N( G
- (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))9 D* s: y' f& W; l) z4 o# P H; |0 _* E
- ;; Calculate the Major Axis Vector by first calculating$ x. V" f$ ~, r1 J
- ;; a unit vector using the old Major Radius value. Then* s1 `) f8 j) J0 v7 r' f
- ;; Multiplying that by the (possibly) new Major Radius6 \0 n5 `5 {) l- {5 \' U
- ;; value to get the new Major Axis Vector value.
: c2 Y j9 Q, }1 a - (setq unitxx (/ xx old_majrad))$ E3 j+ l1 ^0 |( q
- (setq unityy (/ yy old_majrad))
$ E" r% Q1 B# t5 K - (setq unitzz (/ zz old_majrad))) m! t! h4 l; `. J7 M9 g
- (setq newvecxx (* unitxx majrad))
7 P. E: ^$ v: q" I4 y - (setq newvecyy (* unityy majrad)). K9 ?" A: K) `4 K* v
- (setq newveczz (* unitzz majrad))5 T! g* d$ C3 J; H6 F
- (setq newmajaxis (list newvecxx newvecyy newveczz))
2 d) k0 ~, y: \9 N - ;; Update Major Axis Vector value7 l! B+ ^( U6 n
- (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))7 c1 }( t# U1 G, `6 i& e$ c* G
- ;; Update Radius Ratio value. T" C+ U! M2 \, Y- h+ ~
- (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))) f& P6 n5 o6 Z* i, d; j
- (entmod elist)
5 p$ a+ h! I6 K4 p) B ?7 g - )1 _/ g- T8 U, B/ t0 N+ H: H
- , m$ `( u6 y0 e
- (defun ddellipse ()
8 N& A1 C0 X# q4 k; n8 p - (if (not (new_dialog "ddellipse" dcl_id)) (exit))( @8 W5 {: D! T4 Y* x8 Z
- ;; Set initial tile values/ h5 k6 X8 s3 @2 i4 R3 V
- (set_tile_props)& g7 h4 a5 i; [1 U: w6 y) l+ x/ n
- (set_tile_handle)" c! O! |2 a3 O) s2 E3 h
- (set_tile_pt1 1)
3 I/ y3 r- r0 ^% f' e - (ell_calc)5 R3 j k1 B9 L1 e/ _! I8 R
- ;; Define action for tiles
3 V7 Q0 p# \" n# S+ Q2 Z - (set_action_tiles)$ x( x' L: F* C! M
- (setq dialog-state (start_dialog))
m3 `" z4 Y4 {0 K- w - (if (= dialog-state 0)- C3 M2 [3 N! k& p0 v, U5 m
- (reset)3 f; {$ [4 l3 R" ^2 v
- )5 K. O4 r8 r$ }1 K, L& P
- (if (= dialog-state 1)+ U2 b1 ^8 W9 [5 d/ Q# [ I0 P
- (modify_ellipse)
3 _. E( [# \1 v5 ^' {8 X2 y! t - ): m( U8 U/ V% I; W7 v' F
- (if (= dialog-state 3)+ Y( {, f3 p2 V! O! x8 V! q
- (progn' n! G: P, u9 S2 m; u- j
- (modify_ellipse)
/ J2 N0 M6 [. ^2 C3 Z3 g. W2 V _ - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
, e. m9 F1 v% H5 u c: r$ b* P - (ver_pt1 1)
: L5 y; D0 {( c1 e2 S( u - (ddellipse)
5 A! \! D& Q" y' V" I - ). j( B; @/ C$ e5 S# @
- )
# }( u0 ?+ z& n3 i- F8 i - )) l. y* y4 X2 [, r. V
- ;;
, L$ c5 V& q- H+ v0 o - ;; Modify REGION
1 u. U- m' {& E0 z - ;;
% n! M# Q% G0 O' ^4 K - (defun modify_region ()
9 f) E$ w! u4 Y$ F: _; a6 f - (modify_prop_geom)2 i1 c: m2 _2 w$ q9 e
- (entmod elist)
3 `6 A% O( k6 i - )
* R3 M Z( o& B - * |: z# W3 H2 l S
- (defun ddregion ()
8 ]0 ?. K. I" S - (if (not (new_dialog "ddregion" dcl_id)) (exit))
6 Z5 d+ O" q. N7 w$ u7 q8 } - ;; Set initial tile values, I! O7 V b7 ~7 v% k
- (set_tile_props)* \7 n( R" G: l3 _
- (set_tile_handle)
9 h) z# [" h# o3 Q - ;; Define action for tiles3 F$ f4 Q" T; { J; f3 ^) ~+ ^
- (set_action_tiles)! [. B; {7 s8 v2 G" E7 M) T
- (setq dialog-state (start_dialog))" V# V8 {6 ?* D$ z, z# ]
- (if (= dialog-state 0)1 A/ K3 @+ S( d8 Z
- (reset)
: b6 U, A# |5 ?! ~7 u, y6 X - )
I/ P( r: f4 e: ]4 T. I) t - (if (= dialog-state 1)
+ k. q% W$ D9 ^% }2 v - (modify_region)
/ h2 L' R W. X) A; [8 N - )" e# _: ]8 Z, m
- )* w- r" J D0 v3 D) q {
- ;;' ?& y! u. C$ x+ J' G. b( q4 u
- ;; Modify 3DSOLID( m* S) ]; v3 Q) F6 P3 X+ f
- ;;; n) B8 b0 s. M; \. u6 _
- (defun modify_3dsolid ()
; z. r4 ~! W4 N7 @+ g4 J - (modify_prop_geom), s0 Y, N! A7 K0 {6 T7 K
- (entmod elist)
6 h; k- A+ x4 J - )& v7 h# d# S8 {# h' ^
- ! r& E5 M/ Q9 K) x% Z3 z2 }$ a
- (defun dd3dsolid ()' p+ d3 _) o" N4 ]% b8 n6 w
- (if (not (new_dialog "dd3dsolid" dcl_id)) (exit))5 I2 M% C' F$ }. o9 R
- ;; Set initial tile values8 r1 C# p1 E6 U0 L
- (set_tile_props)9 M. j+ F+ x# O# }* m- k/ l
- (set_tile_handle)+ a3 J3 o7 s! S4 R3 _9 _8 ]5 A
- ;; Define action for tiles
/ Z' c7 u- R9 K5 x$ O - (set_action_tiles)9 J" J* Y7 m# l+ O- g1 I) E+ A
- (setq dialog-state (start_dialog))# ?0 W$ O6 ?; H' M# P
- (if (= dialog-state 0)6 \7 f, ^5 H6 L, [
- (reset)" M, m" t/ n4 X0 S/ n
- )
1 T' |5 A8 ?0 s% A - (if (= dialog-state 1)
. Y- D; C: h! F- d0 ?; p - (modify_3dsolid)
' p. ^- t- G( ]' {, A% F - ) P$ t2 u; o f* t( g$ M
- )
/ V0 i5 s0 j; {$ t7 w - ;;$ G; a q7 S3 B; K- _- `7 n
- ;; Modify AcDbHatch
# x3 X5 Y9 C H1 ~ i7 i' E" W - ;;
4 ?' C5 B0 h+ o# v5 { - (defun modify_hatch ()1 I5 J: s6 I7 G: E
- (modify_prop_geom)2 p' i8 U/ Y+ k. Z; {/ G5 H
- (entmod elist)$ e" R, L$ ~ Z& E8 Q3 ~
- )
6 l( w6 j7 O* _. s( [" q! O - 7 V* L8 W/ r( V: r, C
- (defun ddnewhatch ()' \: ?- f2 H9 M+ U$ ?5 `
- (if (equal hatch-elist nil)
" S N$ @3 M8 W5 I5 ]; U6 b$ z0 y - (setq hatch-elist old-elist)
1 l8 e& x7 n: R. L% G - )
9 F3 A. q$ ^ o+ m, s
( B" V b- P7 X, R( }- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit))) _$ v& |$ \& S) _, G/ p
- $ E) H9 [+ d# v. c5 j. V
- ;; disable the thickness tile. ~4 Z' g; p1 k: E' g
- (mode_tile "eb_thickness" 1)
, w* s1 @# @6 p - (mode_tile "e_thickness" 1)6 ]( r: D/ I2 X, N7 \, E, M6 F# Y; N
% g" p& ` \, B& T; N- (setq help_entry "modify_associative_hatch_dialog")" B) N* |5 _7 g$ m1 k' z$ q: a
- (set_tile_props)# j/ @1 Y# E! j$ w8 g* t, B8 A9 p
- (set_tile_handle)
}8 w, m0 J/ c' C2 g0 I
; ]) [* b$ e1 d0 U! f- ;; Define action for tiles
) g+ i* a) y5 {/ l% r' F - (set_action_tiles)
( ^: }5 a4 `7 S+ y. Y. Z* ]9 I! @2 G: P - (action_tile "b_hatch" "(done_dialog 2)")% M. M3 j6 F7 ?! j+ I+ B6 I
- (setq dialog-state (start_dialog))
$ m6 R* r* X0 O9 j - (cond
' L/ I* `6 X0 s0 T) a7 ^2 t - ( (eq dialog-state 0)
& Q) t! J C& }$ H+ R& O4 A9 e - (setq old-elist hatch-elist)
; o, \1 V: @ ~ - (setq hatch-elist nil)' t: q3 P2 G3 B6 q* v
- (if (= (checkforlockedlayer ename) nil)) h- X8 Y: S9 D. k
- (reset)) e- T# m# z4 h( ^6 e9 |7 `6 V
- (progn ;;; special handling for locked layer reset
" k7 E; \) j& ? G" q - ;; unlock the layer, F! S* O2 g/ K! z2 M! s4 r
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))" n4 D! `. o9 F3 W' [6 ]' I
- (command "_.-LAYER" "_Unlock" layername "")
" i. f6 X/ B# X4 ~% o - ;; reset modifiction
4 P. N4 G$ |* `8 [% { - (reset)) r. V4 g6 P8 w2 Z" S/ ?/ P3 m
- ;; lock the layer again
' F- _0 X3 x+ ~+ R$ U" N {- P - (command "_.-LAYER" "_Lock" layername "")( h( d' |. Z6 C3 j1 _& ]
- )' B6 K* }" L+ O, x! U! m
- )
# T9 I0 U; \1 B+ T8 ^ - nil ;;; makes (ddnewhatch) return nil for Cancel
- z& G' I0 o% N$ a4 d# X - ) J' R2 G1 `2 ? U
- ( (eq dialog-state 1)
/ b! u4 x- `( x+ r - (setq hatch-elist nil)
, ~' l0 @* b t- L- [4 D. S - (modify_hatch)
" c' V" s a2 B3 N3 ` - T ;;; makes (ddnewhatch) return T for Ok) f w+ t9 Y! \9 b) G9 _% F5 f
- )
9 q7 E8 w8 h4 |" k9 D1 d$ o6 Y& ? - ( (eq dialog-state 2)
# u: M$ @5 }$ V7 e - ) G% q, a! u$ m- V+ G
- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))
, E$ Q7 @( ~6 p+ d - 4; C: d9 x, G3 X {; \$ Y4 }6 F g1 s
- )
; S5 z8 ~: I7 g$ t. I9 D - ;;; new selected layer is on a locked layer* G7 v" S' Y% F
- ;;; we can simply modify the hatch properties
1 \' I5 h' g( d% ~, S- r0 ? - (modify_hatch)6 D' Q2 v- V( f8 i8 _7 }) k& ^
- (progn5 x( T' U; p; T6 ~( J! m7 ]
- (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))' O$ h9 a0 \+ E$ U
- 4
2 m' i% A' c+ p. x - )
3 h- b0 v' J; Z+ s% s' X5 f, i - ;;; We changed the layer previously and now the hatch lies on a locked layer./ ^/ i3 W5 v* u
- ;;; We have to unlock the layer forethat we can update the hatch properties.5 ~; ] K q) s& U" _- n
- ;;; If we don't do that (entmod) fails to update to the new layer.6 f/ Y4 i+ [1 G# i. u' k' t1 k
- (progn
+ s0 L# \; j5 u& J0 d+ V1 z0 ?* { - (setq layername (cdr (assoc 8 (cdr elist))))
1 g- F. y" O7 w: ]( w1 k - (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer
6 x* e; k: n8 r5 C, S. W3 D$ B - (modify_hatch) ;;; update the properties8 X( @7 X3 l' B: H' `+ ~
- (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again% b5 S# `4 g! W1 t. G
- )
, s1 x" [6 X" s; F8 O" D! ~0 {2 F - ;;; All other cases we simply update the properties
l- }4 G) v& _1 A& A - (modify_hatch)
1 X, L6 J# f$ g: J" E" T - )0 G- A4 @- S; W6 o; e
- )( Y) t$ O0 n8 d H
- ) * w! T1 n/ W ^
- (if (= (checkforlockedlayer ename) nil)
3 o) I: L0 C$ ]+ m1 ~" N - (command "_hatchedit" ename)
8 l7 q% s2 i2 y# ^5 C7 [ - (alert ;|MSG111|;"The hatch object is on a locked layer.")
4 `, g$ Z- p8 K9 b3 D - )+ P: L* W2 j; F5 ^# j9 W7 P. G
- (ddmodify ename)
; D! w, D9 i7 J/ n7 C- N - )
; K& L3 U( B& }. H. E0 d4 y - )
U4 o3 a% E# x( w* B - )
* N8 m& L( y% M& b - ;;+ G Z6 R. D6 k. K% {' U) ?, \
- ;; Modify BODY/ {/ m1 s. j7 h
- ;;
$ H$ k6 S x3 U/ L- a& l2 f' Y" { - (defun modify_body ()
! |1 A1 Q. Y3 a! I6 C' K - (modify_prop_geom)
3 _7 I4 O8 |, G) y( @" j - (entmod elist)# k4 p, u' d9 L6 Z& G! Q8 w( h
- )
# f- P+ p d2 l" _5 B
( t% m; [* r0 Z" e, C& Z- (defun ddbody ()7 \: i0 V( E2 z0 ` j; ~1 B$ M
- (if (not (new_dialog "ddbody" dcl_id)) (exit))$ M7 B6 Z- W" f/ n' `
- ;; Set initial tile values+ _8 f9 P; S$ }! S
- (set_tile_props)
/ _7 a7 W3 y2 F$ I3 K - (set_tile_handle)
5 Y( i/ g4 T% K( N+ M0 C5 ~ - ;; Define action for tiles
; d/ E4 `; {; }% A1 S0 x - (set_action_tiles)9 Z/ B% P* C$ y' n# Z6 c) Q
- (setq dialog-state (start_dialog))
$ P% n+ q" _! Q- ^8 X4 ? - (if (= dialog-state 0)5 T/ M& V! _0 X7 L
- (reset)& N6 |8 h3 M" z: H$ O
- )
% a! m$ r( F, r' D! a - (if (= dialog-state 1)
4 X4 M5 n( f7 B- Q7 K0 b7 q - (modify_body), V4 ?; v6 H1 d5 J9 {- }
- )- I4 f8 D/ ^: u7 T+ h* \3 }- {
- )& U6 B6 K7 d8 y
- ;;
; ]2 U( ^" v) U! Z/ ]7 R1 @ - ;; Modify CIRCLE; `$ z' t& ^9 q; {. ~% `" M, {4 f
- ;;/ O' X' J. B- Z0 q" w7 F G
- (defun modify_circle ()
. c r. @6 T. ~3 c4 r$ j$ \4 x7 T - (modify_properties)) c1 l5 i( b, v; }5 j' I# a
- (setq pt1 (list x1 y1 z1))/ ]4 {0 c/ g. J8 ?" e- N
- (tempmod pt1 10 1)/ K# T9 e/ X" K- a, [, z5 D" |. G
- (tempmod radius 40 nil)9 P J3 N6 u! t! J* Q
- (entmod elist)
& P" A9 \3 Y/ s - )
' C5 H: \2 w! G' c, I - " m, N- X4 b- M
- (defun ddcircle ()
% W- e1 b ^' V( ?- M7 p+ r2 \- n7 J+ R - (if (not (new_dialog "ddcircle" dcl_id)) (exit))
. L. `$ v8 R1 R0 R& m3 q) z8 c - ;; Set initial tile values
5 V5 Y6 Y3 R- R" e2 Y! V9 U - (set_tile_props), T( d+ s1 a: ?3 n J8 [
- (set_tile_handle)- ~- o1 @. l. {6 @5 I# ~* _
- (set_tile_pt1 1)& G3 A6 ]+ y) f$ d- c
- (set_tile_rad)* `$ ~; o) U9 [1 q0 I
- (cir_calc)
" Q6 P$ k- V2 M# q6 C - ;; Define action for tiles
5 _; I. A, I6 Y7 O2 @) F - (set_action_tiles)
% L: h0 R* Z. O4 c - (set_tile_pt1 1)
/ f( n5 A/ _' { - (setq dialog-state (start_dialog))
& ~# `' d7 U( W4 }2 \. R, t - (if (= dialog-state 0)6 R, }+ n( ` F( W, x
- (reset)) I% v* E- n" O5 @+ A
- )% |2 I9 b$ I- R, `6 i
- (if (= dialog-state 1), \3 ]" w' p, n0 y0 U% ?1 o
- (modify_circle)" Y0 m6 u4 m* e
- )
8 ?- b" Y% A2 h, Q1 j - (if (= dialog-state 3)% ^& D. P7 O9 x6 b& K
- (progn. l- ?! u' h# K
- (modify_circle)$ F/ N& q4 e: o: y3 R% e* Y0 c( o
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))* `+ s. Y9 @6 E7 o, u
- (ver_pt1 1)
U, E% P+ }( Q3 W; z5 X! Q: T; S - (ddcircle)9 Y' Q! a' T ^8 j
- )
2 G) q2 m4 d% J6 g" N - )3 O0 N+ d$ X& q
- )
2 y5 X# j' k! ~- V) C( z - ;; t* O0 i6 b6 n7 h/ @% @
- ;; Modify ARC, L7 |7 Y( \" X, i8 @- a' D
- ;;1 b" m6 }6 E( w' n3 X$ ?
- (defun modify_arc ()
2 I$ |1 c. C1 D - (modify_properties)' O9 i$ z$ v. `
- (setq pt1 (list x1 y1 z1))
- y' G0 z. ?/ L0 i - (tempmod pt1 10 1)5 z: q% t) V& w# Y
- (tempmod radius 40 nil)
* [1 d) ]1 h% i }% w& S - (tempmod st_ang 50 nil)
/ m. b2 Y1 ~/ c - (tempmod end_ang 51 nil)
% _7 \1 _# [2 N - (entmod elist)
7 } u9 i& @& D$ P7 f5 H - )
0 D0 C& v7 l- ]1 S - (defun ddarc ()
& s3 e8 p+ W0 G% C - (if (not (new_dialog "ddarc" dcl_id)) (exit))5 Y% I& [7 s" t0 R9 b( t& T
- ;; Set initial tile values x, {# F9 |) u. b1 O, x
- (set_tile_props)
" D& y3 c& d: ]2 n# H) f - (set_tile_handle)
7 s& c+ A6 |& b W. t) x1 E5 [6 s; m b8 E - (set_tile_pt1 1)
" |9 Y' r2 {+ o9 U4 j! \1 E# A - (set_tile_rad)" c# \; N& }% p0 o, m% {; m- _2 o
- (set_tile_stang)7 q( z+ O r# p
- (set_tile_endang)( }' j9 o6 }/ o' p2 M' U
- (arc_calc)
" `4 c/ x+ H" y, X" \, F; m k - ;; Define action for tiles* O5 J# r: [, x; e/ D
- (set_action_tiles)- r% S0 U+ x2 a- A& y8 ]
- (setq dialog-state (start_dialog))
% ~" S2 o0 D/ A6 L - (if (= dialog-state 0)8 n3 q, Z1 }0 C' |( i0 |8 X
- (reset)' L9 d8 [, t4 j6 D, K, Q+ Q0 d
- )
4 E. N6 }9 q) H& i9 E& E - (if (= dialog-state 1)
( w+ a ~; O) c! C7 F8 Z4 ^ - (modify_arc)
( S8 {# k. W3 g6 ~8 ~( a( L - )2 ~8 H) t$ q$ w" N5 F9 i- Z M
- (if (= dialog-state 3)
3 c% z8 P$ L, L! I - (progn4 t p: j; z" w6 B, a
- (modify_arc)" j( a7 U; h* H0 v" H0 V
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))/ r4 x2 ?, y; Z2 c4 s
- (ver_pt1 1)4 i# u/ L( T3 I3 Z
- (ddarc)- U+ T1 [6 w0 R6 R
- )
j |, E7 d# W- B - )
0 g& P) @: P% a9 j, v$ M - )
- ]* J; T3 a v" F6 _0 t - ;;
+ O$ k/ M' e2 V! u - ;; Modify SOLID or TRACE
2 @2 m4 q$ b; d1 y* ^2 o7 |$ y- f - ;; Note the Z value of the object is determined by the Z value of the fourth+ K0 \& b- \5 `- Y8 [
- ;; point - code 13. Changing the point values of a solid or trace from a UCS. D, [: y* J8 m
- ;; that is nonplanar to the UCS the object was created may confuse the user.
d3 |- b1 s) M3 d5 w, I: u- b/ v - (defun modify_solid ()
8 ^! Y0 ^! t% n - (modify_properties)
7 b3 D0 J2 n2 B/ K$ z) D - (setq pt1 (list x1 y1 z4))8 p, J! [' W9 ?- J s
- (setq pt2 (list x2 y2 z4))" }* v- q1 w9 `. o% p5 V$ y
- (setq pt3 (list x3 y3 z4))( O2 Y4 J/ U- m7 S) e3 V0 o' W# {% U
- (setq pt4 (list x4 y4 z4)) W+ ^2 i* I) \: F5 G% g7 I
- (tempmod pt1 10 1)8 D* F; x( k0 a0 g5 V* m
- (tempmod pt2 11 1); g3 P( }/ _1 A( ~6 F- A _5 m
- (tempmod pt3 12 1)1 ~1 f Q% L- [" _6 B3 B% Z" W
- (tempmod pt4 13 1)
+ L2 l; h9 ?% C' e - (entmod elist)8 I9 c) D5 y8 ], j/ r+ ~# R
- ) |8 s7 X1 v, N0 n1 C" T- |! R7 N
6 ]5 T( f# D$ d1 V0 H. v2 Z- (defun ddsolid ()
6 H. w' H/ ]. K! x+ x2 [: z& U- F6 v3 g - (if (= etype "SOLID")2 Q3 h6 c1 H+ i4 U( u) D
- (if (not (new_dialog "ddsolid" dcl_id)) (exit)), r5 U3 V! j! S5 p' [1 T% ]) ]" O
- (if (not (new_dialog "ddtrace" dcl_id)) (exit))
( D" d: C$ x- T3 Q* Z/ a - )! X2 E. E0 Q# G3 W x1 j+ ~
- ;; Set initial tile values8 C7 K0 ^/ h( B
- (set_tile_props)
& W# s- t# R; \! U( T& w% Z. t - (set_tile_handle)) a; b }! w2 m+ i0 t, G2 E
- (set_tile_pt1 1)
2 X$ V) u: l9 ~$ W. n6 M - (set_tile_pt2 1)7 [, ]# M& A) u
- (set_tile_pt3 1)( F9 C2 z2 a/ u
- (set_tile_pt4 1)% ?9 O; ?! q1 @
- ;; Define action for tiles
" m h. d! Y# ~8 X2 a7 S - (set_action_tiles)
8 u. ]/ d8 j# q+ F; I - (setq dialog-state (start_dialog))
$ F! j7 a! a" j - (if (= dialog-state 0); j$ m3 `8 P) a1 W( K6 F
- (reset)# I. _! |- q. K' ^# @
- )( r9 w: J3 p" W {4 u0 e$ w
- (if (= dialog-state 1)
0 T$ a5 H2 C. T* _; Z! L2 f7 C - (modify_solid)1 q8 r8 J& V9 p6 t9 w6 j2 l8 P
- )
# d; X. h; J5 d0 Y - (if (= dialog-state 3)
% ^0 Z4 h, i. J4 u' [/ E% ~ - (progn, y6 M1 ]$ p9 Y/ r5 L7 ?
- (modify_solid)
" w$ `9 t( ~6 a' @: b) S - (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))
* T9 W! J, x3 j; k, ^ - (ver_pt1 1)( y7 ?3 g7 p/ c2 m& S% j
- (ddsolid). B6 t* ^# r5 ?5 _
- )
" u) p% m$ b( a( }: y6 y) D - )7 Y5 G1 G$ ?) X! k) v. M
- (if (= dialog-state 4)
- W) u' Z6 J6 u! P' V0 B - (progn+ m. S( M- i' b; s. X6 }" j0 E- g
- (modify_solid)
8 z5 j# _- Y. M% W8 e - (entmod elist)+ G# F0 f5 U, X1 Z) @. X" {6 X6 b
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))# c& M) |2 a# Z8 k
- (ver_pt2 1)7 }$ C! ? J$ h [
- (ddsolid)
- M! g3 ?, M: a' K3 r6 w - )
3 o! M: [9 n6 G - )
, q- x3 l( B! b% _" _. p' Q6 N - (if (= dialog-state 5)
& Y' `: _# r7 h9 i! F - (progn0 c5 N6 ]0 n, y8 K, ^2 V
- (modify_solid)1 a. f: W" D9 h. ?
- (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))# |$ y, n7 i- D' i6 F7 @, g' P# {
- (ver_pt3 1)# _: V: O# b7 I' O7 E) o* O6 @
- (ddsolid)
9 e9 T. N7 c( T - )6 N9 p `2 _. r& k( {. ?) }; L
- )4 R6 X6 j' j' ^% M5 S
- (if (= dialog-state 6)* @0 @3 C+ H$ T; R& V2 t
- (progn* o+ }8 r7 j) h2 K. B B6 k1 w8 ]7 A
- (modify_solid)
% |& \' p, ]( L/ k - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
" d& W6 G# o! k - (ver_pt4 1)
9 S& C6 I4 D2 M$ o* g k - (ddsolid)
6 [7 I/ }9 N, ^$ D - )
" {" U5 h0 g: O; i - )
0 G6 j' b1 N& }% Z2 Y - )
" u9 T. R8 q9 C, }7 \- f4 p! E" ?3 |9 i - ;;% L0 `& V. J7 K
- ;; Modify 3DFACE
2 f* q! X: O' A- \ - ;;$ @ u. E- R/ P, e0 a* \3 z
- ;; Check visibility of edges2 Q! K3 t5 V! P2 k+ _, v
- ;;
; m, H: s- W( s! ? - (defun edgetest (/ bit1 bit2 bit3 bit4)
0 I% j! E( w* M' w5 P( d! f - (if (= edge1 "1") (setq bit1 0) (setq bit1 1))
+ m* @- v% ~. Z1 }9 R1 m9 M - (if (= edge2 "1") (setq bit2 0) (setq bit2 2))8 g/ O6 D* x$ F3 j0 ?7 @
- (if (= edge3 "1") (setq bit3 0) (setq bit3 4))/ _; x" ^& b; b7 d( g
- (if (= edge4 "1") (setq bit4 0) (setq bit4 8))
8 ]- [2 E4 u V, U - (+ bit1 bit2 bit3 bit4)5 n6 H8 G9 p0 N! J) O
- ). s$ W1 ]0 u# M0 ?. D2 T9 b
- ' A" U2 J! l; u9 ^
- (defun modify_3dface ()
0 b6 l: i6 E5 G& r! [ - (modify_properties) ^( _( E( s: |6 M2 k5 k, s3 J9 [6 @
- (setq pt1 (list x1 y1 z1))4 l, ?2 \8 P' i( {% y/ Y% L
- (setq pt2 (list x2 y2 z2))
* F; _# ~# h: W7 x! f* k B - (setq pt3 (list x3 y3 z3))
$ c! y* Z3 T- b5 S - (setq pt4 (list x4 y4 z4))/ o2 _$ e8 a8 r( \
- (tempmod pt1 10 0)
/ \7 h+ G6 J7 B/ o8 d' t - (tempmod pt2 11 0)
H4 u! S$ y, W/ k% p' ^+ J8 L: P - (tempmod pt3 12 0)
+ C M" Y, w7 K+ ~ - (tempmod pt4 13 0)
% P w6 R u; P7 F1 Q9 v0 A - (tempmod (edgetest) 70 nil)4 Y( X6 a9 @" ~ }) f7 l, y! H) l
- (entmod elist)
- R# Z5 o/ f" J- I9 Q5 L* E7 X - )- \: G. u+ e0 C/ E! W. ]3 L& Q
- ( y" Y3 a% m' i2 S! M
- (defun dd3dface ()
0 {1 }) c% U0 X - (if (not (new_dialog "dd3dface" dcl_id)) (exit))9 @. f1 f; S: N3 j: F. M" `
- (set_tile_props), ^; Z1 Q" `/ R
- (set_tile_handle)
9 E0 s1 }7 B; C2 ?! \/ a6 h% y - (set_tile_pt1 0), [ i/ d! i+ {( x# e1 z8 `' X* e
- (set_tile_pt2 0)& e: m- P1 I O3 n' O
- (set_tile_pt3 0)
' d; {2 `' \7 B6 `& @6 C [ - (set_tile_pt4 0); S5 i- F/ j2 P: |" H! H7 W
- (set_tile_edges)
# L8 {8 ?9 v; s% N/ [1 c - ;; Define action for tiles
9 h7 t! z# B3 x G% y - (set_action_tiles)
9 [) ]9 K9 Y5 _6 q1 j* F- W% x. N) | - (setq dialog-state (start_dialog))* _+ t X0 Y b% p, v6 ]" w
- (if (= dialog-state 0)
]" Q2 U3 l) [, _- _8 m1 b - (reset)
' y' o4 h) H' ^ - )7 M/ s$ u: ?% m2 {* D
- (if (= dialog-state 1)
2 t" s( ]9 n! i/ A - (modify_3dface)
0 e8 f3 ~5 C& f& W& }# } - )
% j) \% T- I! v - (if (= dialog-state 3)
2 w3 h' T& w7 f5 Y/ i; e - (progn
7 ?9 n j# E& I- | - (modify_3dface)
2 F! f* k$ w* N5 o - (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))
* X7 f9 t' v6 r) A4 b$ ~ - (ver_pt1 0)
) [& P; i8 A" U9 K% z - (dd3dface)- {+ _3 q% a" [$ ?# w* E7 P) P
- )
/ D. H" Y4 T! b' v - )9 X+ I0 t) s8 ^4 u% d
- (if (= dialog-state 4)+ d6 [" k5 n0 n/ V. ]
- (progn7 o, M8 \0 O* m
- (modify_3dface)7 `$ C6 Q+ u+ y: B0 {# X
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
- e$ H" N6 n' z$ V, [ - (ver_pt2 0)
: b- R9 {3 G- h - (dd3dface)- C/ |1 g, g+ j; X0 g
- )
, o( R# T) H# \4 T* ]4 x5 @' D - )
1 B" m- G! s# z) l; M8 L - (if (= dialog-state 5)
2 ~9 I1 U) o$ I2 k - (progn
& a ?; k8 Y( E5 b! V; Q' E U - (modify_3dface); O7 ~; F i% s3 u+ G6 Y
- (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))! }9 Y" F8 R4 x* \
- (ver_pt3 0) x# i5 u( S# a% w
- (dd3dface)
5 |# Q' C# h- w$ G+ R0 `) K - )
# N2 ^! o V4 H1 P+ @9 z) S - )
8 v1 o8 G: o) r) S6 F - (if (= dialog-state 6)0 x+ R) A" r# \% I+ E
- (progn: E, c! B7 a) W2 \7 L f/ ]
- (modify_3dface)
. |6 V! E& e) U - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
3 l5 g9 U [0 F& j/ v - (ver_pt4 0)
& w1 `' ?; B2 B1 _7 b% e - (dd3dface)
' ^) _2 {% ]) @2 W+ y/ ~4 _( B& ] - )6 K: z3 z3 @: o5 {+ G
- )% m; T3 ~4 b7 X) i) Y
- )" n6 G, H/ D. X
- - Y8 t L+ R/ O+ B, p) W
- ;;. D& M8 T H C* e0 s# f6 M$ u
- ;; Image functions! T5 A B0 Y v- k8 L7 W% f
- ;;
9 n4 y! F4 j; r! U8 e O - (defun image_scale (/ upixel en n userscale temp)
( \5 y# P/ |: t3 ~: L9 X2 p/ u - ;; Calculate the size of an image pixel in AutoCAD units2 e5 e4 H! C% Z/ @ u: m7 Z% g9 g6 W
- (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))! t [0 ]* n' V5 T9 W: u
; {' z0 U# Y5 \' a5 F6 T- ;; Retrieve the user scale# P0 I1 i( B+ z! `* y
- (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))
1 K- _4 K# v! f# E - 8 @2 w8 I# g8 _1 t" @0 `3 d
- ;; Next, extract the image units and pixel resolution G( k( e. P' C" D
- (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))
, c# e3 C/ r' l1 y2 ]6 L# t1 L - (setq image:scale (* (cadr (assoc 13 elist)) upixel))) f4 f) y4 k1 h( [# Y% D
- (progn
8 U4 I, D1 H4 c9 N2 O - ;; Convert the user scale to the proper word$ T! X* O4 ^( f2 P0 `
- (setq n (cdr (assoc 72 en)))
% i; a/ _( O e( S- h - (setq temp (getvar "LUNITS"))4 l6 d( }$ k# a; T& R3 O
- (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5)). ~8 o% C2 y P( z
- (if (= n 1) (setq userscale "Millimeter"))/ d( |$ q6 b N8 ~5 ~' Q
- (if (= n 2) (setq userscale "Centimeter"))& ^. p A5 j) n: t8 s
- (if (= n 3) (setq userscale "Meter")), y1 m: V9 B8 Z$ W
- (if (= n 4) (setq userscale "Kilometer"))& |3 q2 f7 _* u% C+ A' M. `
- (if (= n 5) (setq userscale "Inch")). c' v/ V. l! {; X
- (if (= n 6) (setq userscale "Foot"))
: W7 K# Z k* x$ v: \ - (if (= n 7) (setq userscale "Yard")) `4 s# ^- P, G, t% i
- (if (= n 8) (setq userscale "Mile"))& j' G0 Q8 D5 P1 f& {) B% Y a( ? C
- (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))
2 o; R( c( o) _1 D4 x% e( [3 S/ c - )
6 f `" v3 y+ r5 e( Q( n: ]( z$ p - )9 X0 N* e0 F/ q, y% Q3 F
- )% F& [: |$ h2 S% j5 h" p% q
- / |$ P: N4 j; ]+ f8 T( w+ G
- ;;
+ f% {+ d; ?& S" D1 o: l - ;; Scale factors for block insertions
. ~# u! Q7 B# g' [4 @: T* I3 N- r - ;;3 L9 y! T* Y. w! _" H/ J9 z& Q
- (defun image_set_tile_scale (/ temp)
, `0 d! W4 R5 {9 F+ L' J4 a3 | - (setq temp (getvar "LUNITS"))
: U% Q! K8 Z* y6 Z( A) A - (setvar "LUNITS" 2)
9 o$ g- k2 O) |! s5 g# A4 p - (set_tile "xscale" (ai_rtos (* image:scale image:mult)))" X9 K/ W) R8 e- o4 J4 p! L3 r0 J9 b: m
- (set_tile "wid" (ai_rtos (* image:width image:mult)))
9 l% ?% K( O$ }3 ^2 Z - (set_tile "hght" (ai_rtos (* image:height image:mult)))2 M' b2 h4 a! U z7 A
- (setvar "LUNITS" temp)
7 t- h+ S) \) h. a' A# h: V - )/ F ~5 B4 |) e
5 G/ {& m' W6 [ h1 F( R U- ;;
9 O: P- O/ X. x0 I - ;; Set the scale, width and height values appropriately.
t- P5 K" L& k i7 w - ;;0 D) l* e; P2 } Z7 Z& {5 ^, T8 |
- (defun image_update (field value / orig_value new_value mult)
! k2 e, s8 E' x/ l d - (if (= field "xscale")
$ o) l) I5 o0 z7 U: x - (setq orig_value image:scale)
5 J& k4 |: G6 ?# Q - ). |1 u0 H* h4 L A
- (if (= field "wid")1 C: V/ F' J6 ?3 K8 a% V* \# x) C
- (setq orig_value image:width) X, f9 h0 }. n. K! k3 c
- )) K6 k+ Y1 V7 o0 C& z; m
- (if (= field "hght")" f0 M0 @3 }$ r1 F, R$ i
- (setq orig_value image:height)
! d7 Z6 W8 _, ^; z2 k - )
% @. u& [" L5 w0 d& z: |( V& H - (setq new_value (verify_d field value (* image:mult orig_value))), S5 Y+ Q5 N' |4 H' [# _; P
- (if (/= new_value old_value)' _1 ^4 e7 }/ ^( t ]& {
- ;; Make sure the user has entered a sufficiently large value" P& Q8 ]8 g* E. _: v5 G
- (if new_value
6 q0 m/ ]5 Q+ v% a! g: u; g - (progn# @2 S' p/ T0 }4 g3 \5 H) \5 }9 M
- (if (< new_value 1e-8)
$ b5 J: Y2 v7 H. Z: c! t2 @ - (setq mult image:mult)
$ r8 U* I6 d! t, J, e2 f/ {* x8 } - (setq mult (/ new_value orig_value))- a3 M+ T. Z1 s3 W
- )
( j9 X1 a8 E f8 Q7 Z- S - (setq image:mult mult)
) i# m7 p1 d! c - (image_set_tile_scale)
$ _0 v! t8 z! n" Q - )
0 ?, i' m! f0 V9 y2 p3 m; B - )1 f5 k6 K' \7 t
- )
' @! g! m$ i% ~ ?- M - )
/ o" `* O) F* u) E3 P3 j5 R' T - , _1 w0 E# f: A" \1 g2 r* }! |( o
- (defun image_disp_opt (bit)
' V5 F4 ~# k, W6 T - (setq image:options (Boole 6 image:options bit)) l4 H& h6 X8 U L6 B
- )
. L+ s6 w- w/ \, }, ]- | - & d+ C5 W! n2 `" m
- (defun image_modify ()9 {( A0 X4 g7 l5 Q! ^5 I' {, \% E( m
- (modify_properties)% X8 ^/ k5 v; Y
- (setq pt1 (list x1 y1 z1))6 i4 p0 j* K- B7 o/ Z. C$ u
- (tempmod pt1 10 0)
' e9 c+ l. _( | m% W - (entmod elist)
* H" M8 X/ o8 @6 M% F - )( }: S Q# G0 W( H3 R
- ' ?) {! W& N2 I8 I
- (defun image_clean_variables ()
G8 ?0 a: o4 @1 |3 i1 e& c - ;; Clean up global variables used here0 ]5 a& N' b. H) } G% f
- (setq image:scale nil)
1 w/ W3 i. X# k% L+ h% L. s - (setq image:angle nil)3 w J x8 H% v/ G, ~( `
- (setq image:width nil)
6 f( F! Q$ D+ q1 ~; S5 y3 J1 D - (setq image:height nil)3 O; \# [. F7 a7 b) b: t4 g2 D
- (setq image:options nil)
! A, f+ X+ K( \ - (setq image:oname nil)& F; ?3 Z: L( |/ R" X% J6 D" C. W
- (setq image:olist nil)
$ U! t. o9 [6 c: J- \ - (setq image:mult nil)
& ^( J, U0 G+ [. X6 {5 O - (setq st_ang nil) q8 @# v# e5 S- s
- )
0 h7 q0 _, _* N* ^9 ^+ V& \0 O! R
, F" g0 G# v, H; _7 t7 S# \- (defun image_scale_vector (v1 value)
5 p" l7 z' e' e: q& ]2 \0 V; T - (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))( S7 Q( h# j0 @5 o
- )# B" i! \1 H5 v4 n7 O) i; h9 i/ M
, \$ e7 E; Q$ L/ X$ d( F9 {6 J+ K- (defun image_cross_product (v1 v2 / vx vy vz)3 X) q3 r. K! m$ p& p, i1 i3 J) I
- (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))$ r/ \; M! ^* }5 i: C
- (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))
+ k- b& g$ X! \ D; ?; `/ O) D, | - (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))6 x7 o O0 h; Q& P( `! Z
- (list vx vy vz)' @! O1 d) V; u# r6 K: s( b0 e9 E
- )
, |1 c5 A; [1 Z3 i" X
3 [/ y' j* _* _1 Z5 V. ^- (defun image_dot_product (v1 v2)3 M7 j) s0 A% B1 q. [/ a2 ]( V. r
- (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2)))1 W l8 S& J. d8 u
- )
: n2 K. ^! o' A+ l
; u" d: y' E1 c% r! t G2 t: ~1 ?- (defun image_add_vector (v1 v2)
1 N9 a% E+ p0 G6 R& a& x - (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))( k8 B" S! W8 P) t$ ^! a7 |
- )3 S6 X6 h2 S |8 C
6 e! X- _& e' ^+ B; a- (defun image_subtract_vector (v1 v2)
" ~$ P" I3 Z3 S- I# Y, i - (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2)))1 n, Q6 Z$ K9 C3 \2 \2 `+ j( |
- )
, `2 ~' Y9 P: a( Q+ s* k - " |7 B/ P1 ]" O; d& N s1 ^
- (defun image_normalize_vector (v1)
9 h- t( X' J8 ?8 C - (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))
3 i/ e: [/ i; w( X4 V - )8 S/ v1 e9 r: J& ~: @
3 i$ n) V8 X. @7 P- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane), `1 j6 F# j( H' S- Y" c5 A* R
- ;; Normalize the axis
& ^% m7 p4 @- T* h+ B8 p8 y' l - (setq axis (image_normalize_vector axis))
0 R2 {. K! ]( e" i3 t - (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))
1 Z: A0 I6 R) l( k) f - (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis)). t& o' Q4 e$ g
- (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane)); T0 d, I. V; b9 n7 n
- (setq in_rot_plane6 Y' h( y% E" q2 J6 C3 F8 C3 Q: O& c
- (image_add_vector% Z( x6 q9 a" t/ }+ ^( M- G
- (image_scale_vector axis_x_in_rot_plane (cos angle))
9 J* [! D p! v" i6 I - (image_scale_vector axis_y_in_rot_plane (sin angle)); B# v2 ~# A% |
- )
; Z% `1 Y2 L9 V; b% m# t+ l - )8 D ~$ K' v B+ L5 c5 X
- (image_add_vector along_axis in_rot_plane)
& t( S" y8 x( B, l, y* I. n - )
3 ]: V+ T4 r" M7 m5 C/ ~1 V
2 Y: Y2 W0 z5 y9 x$ _- ;;
* f& M5 X8 D% m- A8 ? - ;; Calculate current rotation angle if appropriate.
" b; m" I# i8 B8 l6 e! f - ;; If not, grey out the rotation field.
3 M! {" O, G2 ~; G1 ] - ;;
A2 x" L4 f6 l+ Q) e9 ~ - (defun image_rotation (/ normal rlength zlength sqrt_tolerance); G3 Z9 ~! S% ^$ E" S1 F
- ;; Determine if image normal is codirectional with" l! {/ O6 ?0 v1 Z2 n
- ;; the current UCS Z-vector.. b$ ]1 m7 S0 n: j$ s; b
- ;;
: y' f; g. Z5 M& P6 n& a6 T - (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))
- _* w/ ]2 M# @. J/ q9 g: \/ N - (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))
; O6 C2 d* h" T2 s - (setq zlength (* (last normal) (last normal)))* Q( W& i8 G' D U# f1 b4 t3 G
- ;; Note that the value .0001 in the radians is approximately 0.0057 degrees.8 T; z, C( k: I: s& Y0 L! t6 ~
- ;;
8 a/ L8 W, a( U& E/ E. I& F4 c - ;; cos(.0001)^2
! Y4 L+ J8 J' ~7 R! `' N- ~ - ;; Tolerance = --------------
" c8 |% V( c9 @" ^( J - ;; sin(.0001)^2& Q# H* Z, X6 _ A" g/ ?- F
- ;;; M# P/ Q0 v! I k
- (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))
! E D; Y# J+ _* y3 s0 P - (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))
6 l( N2 E! g+ Q0 u8 G- x - (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))4 q# W% o% n* n
- (progn
/ Y2 L" W! t6 y - (mode_tile "st_ang" 1) ?; n8 R% Q# d
- (setq image:angle 0)- H' r- R# j. N( n& A q' P
- )
$ p' @# |" ^- k n, f( K$ C - )
$ d" _% g+ U8 e0 l7 N - )9 o( C1 m5 K/ e- M. k5 s
- . W% I4 H d7 a
- ;;
: i7 y5 g& J+ J5 g5 K8 J4 L - ;; Modify Image0 J1 M% M4 O+ N& S, G
- ;;7 v3 n1 b3 ], V9 ~& r% t) w
- (defun modify_image (/ u_vector v_vector z_vector)
/ s' K' i; A B - (modify_properties)3 u! w, D7 b( x1 ~4 T* M
- (setq pt1 (list x1 y1 z1))
( y4 m/ n' F; v& _; C/ |) R - (tempmod pt1 10 0)
; V: J$ q$ R- I* b" ] - ;; Make display option changes to image2 W9 Y/ z! m2 i3 X
- (emod image:options 70)
: m: [0 W4 H' M$ c) ^! w - ;; Get the u and v vectors( y% H) B k0 O: E- c
- (setq u_vector (cdr (assoc 11 elist))), {: W' Z4 \ d9 T7 l
- (setq v_vector (cdr (assoc 12 elist)))2 ~- l: S( C7 q# J
0 o8 q8 i! w1 I/ E- N- ;; Make scale changes to the vectors0 S; X9 X) g E8 z, v% h: d
- (if (/= image:mult 1)$ ]2 d7 A! N( w r* T
- (progn
! A& P/ m0 m# o, t - (setq u_vector (image_scale_vector u_vector image:mult))0 a& d8 p6 X8 n# A% S7 p( X% P
- (setq v_vector (image_scale_vector v_vector image:mult))
4 B8 L% V9 J3 W7 S# n# ? - )
% a% a' T1 f4 F! Z: |1 e" d' ]: ? - )# D* o3 M( f% B$ V, n- c
- ;; Rotate the vectors, I9 X* G) R. R" q4 d- [7 g$ D
- (setq st_ang (- st_ang image:angle))
0 G9 }& U6 F, O7 |# ^ t - (if (/= st_ang 0)2 t% Q% n, Z; @* S! v# H! }) B
- (progn, P" f% M) @! t: \
- (setq z_vector6 Y# J- c# B2 m' `, m' U3 y
- (image_cross_product7 K2 j$ h, I! x& ^8 `
- (image_normalize_vector u_vector)& |# s; A$ {4 M
- (image_normalize_vector v_vector)! |: D$ Q' R/ [
- ): f- a8 H" a' I0 `/ {2 S+ n
- )
; v+ V2 c5 g" L7 ` - (setq u_vector (image_rotate_vector u_vector st_ang z_vector)); K# f( R6 ^& f* D8 d( `
- (setq v_vector (image_rotate_vector v_vector st_ang z_vector))
* ?& ^2 l5 Y" U9 e& P - )' ^: }/ H* B8 x4 e. W7 G s7 `
- )) f0 w. l% C+ \# W
- (emod u_vector 11)
/ A$ @! C" v2 b7 ]& E! ^ - (emod v_vector 12)& V5 r9 z" r+ C, \" R- _
- (entmod elist)+ g/ e4 ~ h1 w) w5 \+ k0 z, G3 S
- )
8 Q$ C! G, O/ i3 A# Y# D$ @) V5 y - 5 t" z) ` ~1 \2 |
- ;;1 w& r4 P% B8 |8 a# |+ r' A
- ;; Run imageadjust on given entity, working around possible
! Z9 c2 a/ x9 `$ |4 K - ;; re-entrancy problems
: _' \' ^. ]; U# ]2 t+ v - ;;
. ~3 K/ V, y4 E+ e- A - (defun image_adjust (ename)5 r+ _: k) E: a( Q
- (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...
( B0 g$ t' y- A5 I - (imageadjust ename)( x$ R0 s% z3 H9 z8 I/ L1 h& ?
- )$ E; T4 J; f/ L+ [% o
1 F- y- v5 C V P9 N# i- (defun ddimage ()+ m$ g' e f0 ]' t
- (if (not (new_dialog "ddimage" dcl_id)) (exit))
, ~% a& q `. E3 Z7 B
/ y1 W+ k6 I8 s# \% W& U% h- ;; Grey out the thickness field.
/ `1 I1 F! S" q - (mode_tile "b_thickness" 1), L$ B- [/ m8 B3 {% r4 P1 F
- (mode_tile "eb_thickness" 1)) u+ K/ r$ ~8 J$ E1 k% }# L
- 9 u* \4 _8 }9 W
- ;; Get the associated def object.% D9 y" m; R0 B7 k) u& V$ C
- (setq image:oname (cdr (assoc 340 elist)))% _ l% h% q$ t$ s/ F9 F
- (setq image:olist (entget image:oname))
& {' I& g% v* c# b+ P+ I$ Y6 O
( A* v$ R* D' j/ x- ;; Set initial tile values* m2 ], ]7 w# `' q' X8 {0 J
- (set_tile_props)
5 P0 ]& w- O( I% l! A/ F7 b! Q+ D - (set_tile_handle)
) g: T! ^7 w- x- k/ }; ^ - (set_tile_pt1 0)! g, _. W. H$ ^
- (setq image:scale (image_scale)): l Y9 G, e A& I$ S9 G$ r H ^( p$ t
- (setq st_ang (image_rotation))
6 I) y" G* i/ N5 b5 Y" R7 |; W - (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))
' E) \7 c2 |( m# p - (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))
' D; i* F8 p- P - (setq image:options (cdr (assoc 70 elist)))" s4 c( f: s9 `" h2 B/ r4 S' @
2 ]; c# U! m# f( `) E- ;; Record the last multiplier for use in image_update function
. H. x. J. j% b* K! U, Y! d - (setq image:mult 1)
4 X; v& X/ K7 |& t* [. S7 ] - 8 C7 h0 C Y; m" H% y
- ;; Retrieve the image name
1 S+ u, Y% b, E, I0 e( k. a) [ - (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))' G. \! c+ _6 e% @. z* x/ ]# @! S: D
- (setq flag 0)" J+ @( t6 D9 [" d0 E& E8 h
- (foreach n fn
* O4 }( l. C) |, X4 k: j* E - (if (= flag 1)$ @+ d) T& n& ~8 A$ ^
- (progn
4 ?2 Q* N: G m1 M( z+ C - ;; Display the image name
. p3 V" R$ W6 w; g - (set_tile "image_name" (cdr n))7 t+ U0 ^5 ?2 r9 F& R8 P' R+ e
- (setq flag 2)
5 t9 x, H4 l/ a& Q S6 L( f: _% ^ - )+ s" k% l. b; k
- )' P' @% Y8 B1 Y8 z0 ^' l
- (if (= flag 0)& ?$ [) o9 q+ P D; [+ i
- (if (equal (cdr n) image:oname) (setq flag 1))
3 j! b! C2 I7 J1 G# `+ y" P1 t# O2 f - )
0 I5 s8 S1 x5 n - )
- j( ] ~1 [; P; u' G - , {+ t7 i/ r' p: C, ~" R2 }
- (set_tile "image_path" (cdr (assoc 1 image:olist)))
: r% k q: e; \" f7 w0 n% m( I - (set_tile "st_ang" (ai_angtos image:angle))
/ Z" X o) O3 h - (image_set_tile_scale)* p7 [; h; W( X; I3 \2 k% F: L0 _
% F0 A: M" [$ Z- U6 a9 {- ;; Check the appropriate boxes
7 x1 @% a8 V; u ~' s7 }$ d/ y - (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))+ j k8 P; M0 b, S5 S
- (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1"))
6 }4 l3 O* B* }8 E3 I/ h! A9 x - (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))4 H2 R( L4 A; O
- (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))% P. _ C7 A) Z$ b/ N: s
- * d, A; B+ y* z: b9 l
- ;; Define action for tiles
+ E. Y8 Q8 e1 N) z' F" { - (set_action_tiles)8 s& s5 U9 F+ g' k+ f5 I
- (action_tile "xscale" "(image_update \"xscale\" $value)")$ |/ V! a% _* _8 E
- (action_tile "st_ang" "(ver_ang1 $value)")
" v8 B/ D- |0 N0 j T - (action_tile "wid" "(image_update \"wid\" $value)")
5 e9 z2 W' O6 Y' @ - (action_tile "hght" "(image_update \"hght\" $value)")4 Y' W1 ^" C% ?; ^9 ?5 [9 N
- (action_tile "image_show" "(image_disp_opt 1)")
8 b2 @5 w. h$ v1 ~1 r2 K - (action_tile "image_non_ortho" "(image_disp_opt 2)") b# ?& d0 ?# W
- (action_tile "image_clipped" "(image_disp_opt 4)")
, Y, e X3 _' b* O* |$ n/ w - (action_tile "image_transparency" "(image_disp_opt 8)")) Z' g1 p$ A7 D( s
- (action_tile "image_adjust" "(done_dialog 4)")6 D2 |. d" Y, c$ [) c3 E
0 }0 q0 ?: \5 w4 F- (setq dialog-state (start_dialog))& ~$ g e( @& r4 i
- (if (= dialog-state 0); }; r% t; ^* U+ _6 z. V: d
- (progn. X; o4 E" g; I3 k. q, K
- (reset)
, a& m4 Q2 ~. t, E. I1 M - (image_clean_variables). [7 J& v8 P5 o/ m
- )
$ y) B* e8 ^$ G0 C' r3 R9 ?: u - )! v& P) P# {! ^& \4 E& r1 R1 y
- (if (= dialog-state 1)9 I: g {" d1 v$ M q; W: P4 i
- (progn
. p5 q- i. l+ M J3 u$ J - (modify_image)! n, s/ M: r9 I# w2 @; T" V+ z
- (image_clean_variables)
, e5 }# F) [$ ^% o - )9 e: L* O$ g. k9 \0 U
- )
8 S' ]; g9 [9 D5 H0 ?+ M - (if (= dialog-state 3)
s" V/ A$ ~5 s e - (progn
1 R5 i" L7 [# s3 H7 e5 I" k- T - (modify_image)
. O% `- }2 M3 S' K - (image_clean_variables)
, h; J, L) F- n' g6 I9 X6 Q - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))' T4 K/ U5 I2 w8 Q8 b
- (ver_pt1 0)
- H7 ~( _0 z& T% L, y0 v0 Q - (ddimage)+ q' e+ l# D9 W S
- )5 K9 S4 B; e' f# V! S4 }9 N, y: |
- )
! m( g4 E& T# g9 K" N9 s: o - (if (= dialog-state 4)0 i# j% _2 V8 S( ?- v
- (progn
0 S: [# }1 F. p* z - (modify_image)5 i3 d9 ]! L+ v# T7 {$ B4 l. c
- (image_adjust ename)
% W+ O+ I, ? t6 u - (setq elist (entget ename))7 Z8 }5 Z+ X" E) `" `" _
- (ddimage)9 s+ G; h: B& w& N5 L
- )
. d7 S' G7 ]/ U& X. R6 L - )& |$ e0 m- N6 x* C4 F5 t4 F
- )
; T4 j4 ~; v9 j
0 X9 Z( ^1 e- n! y J- ;;
8 h+ S S0 l+ A; ^7 f! X* G - ;; Modify BLOCK (and its Attributes, if any)
/ w" |2 m2 c" x9 [: ^ - ;;
+ O6 ?2 k9 m2 ` - (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr4 b; e) B4 ^2 f/ J- F) ^- i
- new_wid old_wid old_rot scaling old_scale5 H( M1 G6 D9 Z. P* A
- xdelta ydelta zdelta xbase ybase zbase ipos)
0 a: f3 C f: L - (modify_properties)( U( n9 q" d9 q) o3 c
- ; X( r; n% U. g3 M2 o) N
- ;; First, translate and scale the Attributes, if there are any.+ a; M) X5 e6 J3 N5 H
- (setq old_rot (cdr (assoc 50 elist))' N) ~5 s# O& e2 G* u
- old_scale (list (cdr (assoc 41 elist))6 ^2 c s! a4 D" d$ l. j6 p. r
- (cdr (assoc 42 elist)); I8 k8 j( m" R* C0 e& B0 ?# y
- (cdr (assoc 43 elist)) h& i( [ t, u2 v
- )3 n! @ P; A1 T/ g
- scaling (or (/= xscale (car old_scale))
% h" \" B) s$ T1 ~6 W2 I - (/= yscale (cadr old_scale))
' X- Q& G( R( ^& ]# ?3 s. f - (/= zscale (caddr old_scale))1 P! V" ~7 R# v& ]* h
- )1 v# X* N7 y4 ~) t: L8 ^7 |; T
- attr nil ; No Attributes modified yet) V2 b/ D! I) M& _6 D3 H
- )
# {; P _1 Y( N/ y5 H+ b& m - (if scaling) O/ c; e+ F, U+ W% s" V
- (progn0 s% a6 J1 a1 Z& m% c
- (setq xdelta (/ xscale (car old_scale))# ^; i6 [) o2 T4 T* r1 i8 \
- ydelta (/ yscale (cadr old_scale))
) X$ u( o; ]) S- O% J, K - zdelta (/ zscale (caddr old_scale))
u' E! \. {* s' A$ S$ M - ipos (cdr (assoc 10 elist))$ F/ `+ B- c q& D% M
- xbase (car ipos)! p- \' `( q- S! [: k
- ybase (cadr ipos)
" R+ i* N8 C( f8 H/ a! p: S - zbase (caddr ipos)
' y( J6 m4 b. [/ Q7 ~ - en2 (entnext ename) ; First Attribute2 b- w3 v* M) s" x8 y' U8 I
- )
: b Z3 u6 @% C j - * f* ]! K' W, E1 B7 t) s1 @2 S3 S
- ; If the Block is rotated, temporarily un-rotate it, along
" }% x- A5 n6 f$ e$ P! P - ; with all its Attributes, so the scaling/translation of the- ?# _( `& _) G: c; V$ \
- ; Attributes won't have to take the Block rotation into account." V; y. s* V) M C
- (if (/= old_rot 0.0)
9 e+ h. q8 ~0 Y6 c0 B - (progn9 f2 s) \- z" w1 G y) H
- (command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))# n& ?9 }$ i' |/ l" I% N
- (setq old_rot 0.0# D9 ^% x( I& L. k2 Y% h! |$ W; N
- elist (subst (cons 50 0.0) (assoc 50 elist) elist)8 z1 N2 ?2 o5 D( b) a* f
- )8 ^. _. L. b* _
- )9 i' v g* W, a; D
- )7 y' v/ v& j; f/ z: a) d+ A
2 O- Q, N7 o2 K- (while en2
3 r! N: J0 L+ ~2 K5 ]* s# _ - (setq el (entget en2))
6 w7 U1 ^2 q3 Q& l" k! { l8 g8 _ - (if (= (cdr (assoc 0 el)) "ATTRIB")
8 h: M' K0 s7 h6 C3 K - (progn
- y. V& y k1 {3 U - (setq old_hgt (cdr (assoc 40 el)) ; Height
0 i% e v2 b | - old_wid (cdr (assoc 41 el)) ; Width-factor- m. r; G( }- E2 B% a
- oldp1 (cdr (assoc 10 el)) ; Generation start point
% G% h5 f5 }2 w" d+ |, u - oldp2 (cdr (assoc 11 el)) ; Optional alignment pt) q- X/ A$ W( `5 E* @( A( c0 N. g
- ha (cdr (assoc 72 el)) ; Horizontal alignment
6 g5 s' i" z, O3 `/ X2 b - va (cdr (assoc 74 el)) ; Vertical alignment
# K) @2 e* Q9 g3 U4 A0 c* O - 8 H9 m/ h* }" z% d ~. F3 O" o
- ; Translate gen. start point3 @! H% i& Q' V& z q2 ]' v0 k
- p1 (list (+ xbase (* xdelta (- (car oldp1) xbase)))8 Q m% ^& u) ~
- (+ ybase (* ydelta (- (cadr oldp1) ybase)))" @- \: ]3 W$ `0 ~+ Q0 {. l" B
- (+ zbase (* zdelta (- (caddr oldp1) zbase)))9 g$ N8 n; L) |
- ); R( o: D. H9 I Z# _% Y; [
- el (subst (cons 10 p1) (assoc 10 el) el)& h# A5 Z# l4 [
- )
/ J% r$ ?: |7 [ A$ Y/ H
1 p$ I' Q- U4 q* n; o4 w- ; Translate alignment pt similarly, if present and applicable" l) `$ o- o) [/ {4 P5 d
- (if (and oldp2 (or (/= ha 0)8 i6 _' `1 j& m4 h) @. @
- (/= va 0)* I C" e" d# v( S0 W R% ^5 ~; M
- )
, i i! j% W2 Y5 }- r+ p - )/ Z# K! Y6 {5 k6 ~- B) Q8 o' ~+ k
- (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))
, t: i( S$ d* M9 Q9 z& ^( z - (+ ybase (* ydelta (- (cadr oldp2) ybase)))
$ x5 m" V2 t# I3 U7 _- M' s9 X - (+ zbase (* zdelta (- (caddr oldp2) zbase)))+ Q5 w/ m* b0 T9 N, ]" r
- ), X- J4 M4 g* F# \6 N
- el (subst (cons 11 p2) (assoc 11 el) el)! E. k) |0 H8 O
- )6 A5 c* `2 j8 Y7 t0 A: i5 @
- )& w5 E) \ f2 _$ Q
- : ?: _0 ]6 W3 S" }, N/ _) F7 h$ H3 O
- ; Each Attribute's height and width-factor were computed
8 b) j- p0 I2 H2 o, C! J3 H$ v - ; based on the Block's scale factors. Adjust them now,- g2 A" F& {0 E( s
- ; by first reducing to values for 1x1 scale...9 B9 u. F: x# R0 d+ T! c; F
- (setq new_hgt (/ old_hgt (cadr old_scale)); c. r) h5 F- t1 x6 w
- new_wid (/ old_wid (/ (car old_scale) (cadr old_scale)))
' ?+ f- s: M3 Q8 d: R - )# b% T( O, m [$ }4 G1 L
- ; ...and then rescaling., ]3 U f! k$ j
- (setq new_hgt (* new_hgt yscale)
6 Q; Q/ s& h/ Z5 y6 H - new_wid (* new_wid (/ xscale yscale)); c6 t5 ^4 n: _
- )% ^3 }! }1 i$ O J
- (if (/= new_hgt old_hgt)
' C/ V P1 v( p" m - (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))$ d* |( v' U1 |' G" h# o
- )( \8 K( r Q/ y" V
- (if (/= new_wid old_wid)( @0 h9 g9 M) N7 N* t% c$ o' ~
- (setq el (subst (cons 41 new_wid) (assoc 41 el) el)). d& S/ b3 e+ B
- )- c: d, w: p4 C) ^7 m, z
- (entmod el)
. ^' w5 y( @& R& m% |$ q4 n - (setq attr T ; At least one Attribute modified
3 @2 D- P4 {6 u! b$ U, X - en2 (entnext en2) ; Next Attribute W. H* D0 ^5 Y
- )0 }' i' c/ k; [5 k& h0 f
- )2 Q, ~- z* i6 M; \0 G* k! ^" M; P
- (setq en2 nil) ; No more attributes
' l0 b/ ]0 Y/ v( @ - )5 v/ `1 t$ {- H' @2 r
- )
7 N$ k* p* M; a" P+ v; U: Y - )
( y) x5 E* S' l$ R5 v# \$ [. g - )
, z/ Q! N3 z4 B6 n6 z. M8 i
3 M$ J% p( t- Z) l# S/ {- (setq pt1 (list x1 y1 z1))' }0 j4 E% \/ [* L0 d# Q9 J
- (tempmod xscale 41 nil), _" @9 x4 L/ J: `8 q: R* d8 p
- (tempmod yscale 42 nil)
9 o" ]6 T6 | a! v - (tempmod zscale 43 nil)
+ W& ~1 k- I3 C" ^- g- B! ] - (tempmod col-sp 44 nil)! M0 b7 I4 d5 s" D
- (tempmod row-sp 45 nil)& j) `8 g% }' S- q
- (tempmod columns 70 nil)
- Q0 u: X9 k* j7 ?3 | - (tempmod rows 71 nil)+ U: z1 _7 C) `- {
- (if (= xclipmode nil) Y) h$ O' b2 [9 m3 i
- (entmod elist)
/ K* g; D. v% g% x1 L - (setq xclipmode nil)8 M7 S6 y3 B( n
- )- O2 @" G" ~' M, j8 w
- (move_pt1 1)9 z7 \6 l2 V6 G {5 @9 N4 a! h: j" D
- $ j* H" r' M% n9 J) K. P
- ;; Now do the rotation with the ROTATE command.
) S9 v7 ]4 ?4 o: H! S - (if (/= old_rot rot)
) m$ _4 k5 S0 H4 b; U ^ - (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))' r! Q) d" J# ^3 P2 H
- (if attr ; Else, if attributes were modified,
2 U+ t) S0 V; ?2 K# f8 \ k - (entupd ename) ; just regen to force attrib display
( a8 c2 b" ?: L) W- M$ N+ p# Y! A) ` - )
+ s. W0 x$ z0 o2 e - )5 t! U# ?! B# k0 F
- (setq elist (entget ename))5 l: j2 k- I1 {& V# U, U
- )
2 V5 R& P [$ x - (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)
; M3 G) ?2 V3 u$ n. v M5 ] - (setq newhatch 0): ^! o+ P" ~! H5 K
- (setq blkname (cdr (assoc 2 elist)))* B+ D4 v, p8 |! K" E/ f" R7 \( B
- (setq blklist (tblsearch "block" blkname))2 ]; {; V+ ]' W8 U
- (setq blktype (cdr (assoc 70 blklist)))6 }& ]! A; y, q! f8 x4 Q. ^4 a
- (setq xcliponoff 0)
: @- Z& ], [. [$ n" _& G0 f/ B - (if (or (= blktype 0)(= blktype 36))" y/ O8 A: {2 Y1 ]
- (progn
* f6 V% A2 x6 x4 f - (setq xcliponoff (xclipon elist))' Y) Q+ S0 F- u" {' T
- (setq temp_xclip xcliponoff)
8 T; `6 F0 v( j! ^ - )
: S0 H+ F" K- |" |2 c- { - )
6 t- ]' L( m8 `! r" \1 W5 z - (if (= (logand blktype 4) 4)! k/ v& N: ?. V, y
- (progn& M$ {, L! t6 J% a: w' h5 U0 I ^
- (setq xrefpath (cdr (assoc 1 blklist))); N! g& x( N9 u: A0 N
- (setq help_entry "modify_External_Reference_dialog")
" v" B& g, @6 R$ ~9 ^. p) p6 C - (if (not (new_dialog "ddxref" dcl_id)) (exit))
, \ M7 @/ K- b3 l) }* P: ]/ H - (set_tile "Bl_name" blkname)1 O9 W: f. ]' g+ P1 j6 c
- (set_tile "path" xrefpath)
4 q( _) u$ M# X3 }& s - ): e: @; q) [" ~7 m
- (progn
5 @+ A3 F" j8 z3 O( }: J - ;; Get program name for use as Xdata app name3 K% ^" g4 p9 m+ ~ ]' l0 W. b$ x: I
- (if (not (setq program (getvar "program")))6 ]" K/ N+ q4 y& O4 b! S
- (setq program "acad")
1 u4 z8 Y |( V6 h0 k - )7 C2 r9 C# z2 p
- (if (and (setq temp (assoc -3 (entget ename (list program))))3 Z- } P1 J; d& n9 n9 V) Y; M
- (= (cdr (assoc 1000 (cdadr temp))) "HATCH")
* I( U' T) S1 S7 U2 G2 P - (assoc 1005 (cdadr temp))
/ g& \# K$ |% m0 ?1 O - )+ @4 E) x/ u" a e# R( e
- (progn+ G) |; y- P$ b4 ]
- (setq newhatch 1)3 R2 c. K/ z$ t$ l- I
- (setq help_entry "modify_Hatch_dialog"), M) U \& E$ O4 V% X
- ;;; convert the object into a new hatch, t' K. o2 C5 O' r8 f @) x. f* \
- (ai_undo_on) ;; enable undo$ ^/ c e( k5 p3 \
- (COMMAND "_.UNDO" "_Mark")- L6 ]0 | @" r6 M9 c* Y
- (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")/ J* S {; ?8 G' j
- ;;; suppress nasty message from convert command
, C3 o- w% P5 I- w7 |% m - (princ "\r \r"), A5 V, L: q/ w7 g
- (setq elist (entget (setq ename (cdr (assoc -1 elist)))))
6 i% P! c2 W$ g( h% f5 T# s) C - (setq old-elist elist)
3 K% Y9 `0 k" p* O$ ?9 ?4 r - ;;; If we have cancelled ddmodify0 p0 a; E4 Z# n5 c- N; {
- (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok
7 Y2 T/ }8 i6 N' o - (command "_.UNDO" "_Back")5 y$ g Y/ A$ ^6 b# n1 C- s5 _
- ) N' K; Y. j6 ~& w$ \3 W
- (ai_undo_off) ;; restore undo state
# m( D% Z9 @* e3 p7 @4 s+ L7 _4 K- m - )
9 P, S$ u/ O& y9 X7 I - (progn7 i8 ^1 @: S6 X/ |/ L
- (if (not (new_dialog "ddblock" dcl_id)) (exit))
5 y+ ]9 F1 I3 a8 M - (if ( = "*" (substr blkname 1 1)) Q0 G2 X) {1 g1 q0 L
- (set_tile "Bl_name" (strcat blkname " - Anonymous block"))) g) Q2 {$ @, A4 v, O
- (set_tile "Bl_name" blkname)& y5 U" Q: `9 C; m! u+ a
- )4 g& [- `3 r& d/ B" e3 ~
- (setq help_entry "modify_Block_Insertion_dialog")/ U, ~+ V6 M+ x0 n# `( r, l
- )- {# h1 W1 Q3 e7 ]
- )
2 f* U% m* ?3 j9 `& K/ t2 B - )
; W* O. z" @7 G6 j4 ~* E/ ~ - )
* x9 l+ Y7 r6 x6 E - (if (= newhatch 0)
1 ^0 p s5 Y+ W+ b m - (progn; h) d4 c( ]* u4 U$ \; Q$ \
- (set_tile_props)
2 ^' S1 M: m+ l2 Y" Y3 N - (set_tile_handle)% h2 G% P' j+ {( S G6 s8 l
- (set_tile_pt1 1)5 S6 o4 T$ ] y% Q- a9 Y; G
- (set_tile_rot)
, i, g7 W$ X! i8 \# P - (set_tile_scale); ~# d8 {% c0 L
- (set_tile_rc)* s" F$ Y) [4 N1 d4 s7 [
- (if (= (logand blktype 1) 1)
. ~6 l$ e/ f+ F6 s' _8 f0 g - (progn
1 ~' w) ]* i" i - (mode_tile "xscale" 1)! I, K. p" m( V v5 r! t
- (mode_tile "yscale" 1)
) Y+ t- I1 d( H# Y2 C: F1 O! g - (mode_tile "zscale" 1)+ K8 ]$ c7 c: s4 v+ l
- (mode_tile "rot" 1)
3 X# J# E1 \ o0 @& Q+ o - (mode_tile "columns" 1)" j5 j; @- F/ F
- (mode_tile "rows" 1)5 ^2 h( o8 X3 w
- (mode_tile "col_sp" 1)
z9 }( ]! o" x3 e; J - (mode_tile "row_sp" 1)
7 ^( Y8 `9 x, P - )
- y1 v2 }& M E" ^! v* a - )
d8 z a+ v5 |$ K5 [% G - ;; Define action for tiles
. Z6 P: s$ o, l, @; K% V) L0 Z - (set_action_tiles)
, X/ j: e( T$ i - (setq dialog-state (start_dialog))
]$ y4 D3 z9 ^. v! w, [* W, Z - (cond
% @; r" p# d* }5 S0 Z# U0 g - ( (eq dialog-state 0)# L! O& F7 ^( y+ J8 o" V8 \
- (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))" ~) C, i" ~. Q$ Y
- (move_pt1 1)* c7 ]2 N- x7 a8 T9 C( r
- (reset))% X- |% E ]+ O. K, b+ n5 u' G/ X
- ( (eq dialog-state 1)/ e7 R, e9 V' {+ x, L$ q
- (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))
; F1 i/ Q- V" A - (xclip)2 v' K# a" {7 v) e# G8 C ~
- ). k. q/ i8 }0 m1 Q
- (modify_block))( [5 |7 o& y1 p3 ]$ p: x( E2 U) k
- ( (eq dialog-state 3)
" G, q1 F% b; Z6 M) o - (modify_block)
+ A7 f4 l7 Z4 V% N+ j7 \% {, _ - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
1 ]& Y$ L! B" J, @9 b" n - (move_pt1 1)% ]# o9 {# C. a$ p1 q* E
- (ddblock))' m7 E+ M' U# B% `. b' ^
- ( (eq dialog-state 4)
) T" K( J3 L$ Q; S! q. h \ - (modify_block)
- i4 [2 ]' S. `1 [: _3 h! l' \ - ;; Get current handle.; S8 ]9 m! ^5 l! ^. f3 X
- (setq hand (cdr (assoc 5 elist)))8 h% Y6 q" v* W, h4 `
- (command "_hatchedit" ename)% i) ]$ @9 X" v5 l, D+ I3 d
- ;; If OK in hatchedit, a *new* entity is created and the old one% i/ y6 u, f. c. N- q) S+ k) ~
- ;; is deleted. So if the old one exists, it must have been a
$ f s7 Y0 V; s6 ^4 |+ F; b - ;; so rest the entity.
6 R9 K9 g# d$ e, j; V" r+ B - (if (entget (handent hand)) (reset))
- L" u+ \4 t$ x1 G$ W9 |3 ` - )
k7 ~5 U3 a3 k$ ] q. u- v: U1 s - )
6 P' s; t6 a! E - )" O& l: R8 `# @' {2 y/ p
- )
( k* X# y2 t5 g+ H% m# K8 [ - )9 [ w, C5 J9 c% M2 q
- ;;
( k" t+ L8 V% q3 [8 i7 n. Q - ;; Modify SHAPE
9 d& ~5 E+ g7 ?/ h* h) Y - ;;* k* Q4 h q5 Z5 u: d- ?4 d
- (defun modify_shape ()
1 c2 G l3 T. X1 \ - (modify_properties)
9 K2 y" g; D2 h1 S) o- x5 N+ i - (setq pt1 (list x1 y1 z1)): a$ r# F8 j6 Q( w
- (tempmod pt1 10 1)' S0 x7 s$ a3 \- ~! e1 j9 u. I7 f
- (tempmod hght 40 nil)* P( t0 G# I; ~- U* p" x+ }
- (tempmod wid 41 nil)
4 B% x% k9 R$ z0 k" h - (tempmod rot 50 nil)+ |9 F8 T6 G* Y1 U" ~8 d
- (tempmod obl 51 nil)6 ]/ }$ g3 J8 S3 `
- (entmod elist): E# X; |3 s8 U% G, |
- )
R* ~$ @/ v6 N0 N6 s7 u3 p
~' ~7 s, W& P3 J! m8 L) e& `- (defun ddshape ()6 X! `$ z0 G+ I6 p6 _
- (if (not (new_dialog "ddshape" dcl_id)) (exit))% Q( }& U, f: m, |
- (set_tile_props)
) V2 T8 v t& {. F! T3 Z - (set_tile_handle)2 i J6 e/ s3 i
- (set_tile_pt1 1)+ y o5 G8 f& d& w2 G5 W: b
- (set_tile_rot)# ^* ?) \3 p( d8 W3 I* t: s
- (set_tile_hght)
7 q4 l% J. Q" _3 v; _) E; R - (set_tile_wid). [& @& I2 N" h3 Y/ T0 e4 q( _
- (set_tile_obl)6 M* p! m% W/ N
- (set_tile "sh_name" (cdr (assoc 2 elist)))- i4 a5 @* S% | G) ^5 Q
- ;; Define action for tiles# p" y! C8 G- R. d
- (set_action_tiles)# ?5 l8 A t- @+ N1 S
- (setq dialog-state (start_dialog))
1 Z4 m% g; D$ X& m7 H! W$ J - (if (= dialog-state 0)8 d% k3 m& g) U1 h5 `0 q1 |3 V W
- (reset)
3 A8 }; {2 U$ {2 ?2 {5 i - )8 N4 t8 C7 O7 E7 E7 d+ [
- (if (= dialog-state 1)' p8 J) v& J* A
- (modify_shape)
0 ]$ M( D) _) u1 M1 ~ - ). V! z3 v8 q0 u2 Y( b' T
- (if (= dialog-state 3)
) k% l& T8 x. u4 ]% p6 v - (progn& e) b, l- i$ r. p3 L1 Q, o, h5 T
- (modify_shape)
8 d5 i! u* f! N3 a1 }$ D! w - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))( k* p+ e) s5 [; a
- (ver_pt1 1)8 L A* N1 P! g) G2 |
- (ddshape)% u% Q. x1 ~7 }" m7 T, e3 Q
- )
$ E N0 b% \: |9 }$ u7 i, _ - )
, y2 {0 l7 M+ V- `+ m3 c - )( U3 K, `2 n( p7 A2 _( w5 R7 \2 Q1 E
- ;;
8 ]& K5 w3 Z& Y7 w& k+ J& G - ;; Modify TEXT or ATTDEF
: X" \/ K* m. i- |5 G4 x - ;;
2 E# A8 ?6 K' y; {4 w - ;; Set bit code for upside-down and backwards setting8 Z; r/ a# U: i: h( w y( V9 ]
- ;;
0 R* G- |: A( Y8 B5 C - (defun code_71 ()" }2 [$ Z4 J4 _) o7 [
- (cond ((and (= bkwd "0") (= upsd "0")) 0)
) J& A" k5 R6 |' \+ K" F2 @ - ((and (= bkwd "1") (= upsd "0")) 2)
6 f; I) g0 R) ^& k, O: G- a - ((and (= bkwd "0") (= upsd "1")) 4)
p: X- O! c1 n3 W, [ - ((and (= bkwd "1") (= upsd "1")) 6)
- V* L& O. `( o, U - )- H# k; H5 k. u. l6 r1 A$ E0 P
- )1 ]5 ]; s2 q( Y2 @! Z& _4 q- O
- ;;
- \" D7 t" P& `3 v: |" [2 o0 w - ;; Style action. Reset widget values to style defaults
. Q% E+ X# m' U! i ` - ;;
9 l, _# D/ `: _* v- z } - (defun style_act (index / style-list)9 \! a, P* ?; v' z/ t/ C- Z
- (setq style-idx (atoi index))
6 R% A& r1 {7 W7 C- \ - (setq tstyle (nth style-idx slist))
/ Y/ q( c8 A* F) v& I - (setq style-idx (itoa style-idx))
& I/ n( T; m) ] t5 e; j - (set_tile "style" style-idx)
" n- @9 `; ?! N$ V$ p - (setq style-list (tblsearch "style" tstyle))
: r u" K+ |* Z3 V! D6 s( m - (setq shght (cdr (assoc 40 style-list)))2 ? m2 f, V2 D' j+ C
- (if (/= shght 0)2 I/ u+ L" W) o& G
- (progn
( c) `2 o, h* Z - (setq hght shght)
! D7 W; {( N# s' U% d' G - (set_tile "hght" (ai_rtos hght))
- {8 v! j1 [" a7 ^$ N/ O - )* C/ V \ F$ e4 P4 f
- )2 S# t/ I: H$ E$ C5 m2 B5 ? c* S
- (setq wid (cdr (assoc 41 style-list)))' J. _0 ^' ?5 ~( m
- (set_tile "wid" (ai_rtos wid))1 P. V" [ ?4 f; G* e8 Q
- (setq obl (cdr (assoc 50 style-list))): E6 a7 N* H) Y1 h# B; M# g
- (set_tile "obl" (ai_angtos obl))2 t5 k+ I9 J9 O5 }8 e6 m
- (setq bk-up (cdr (assoc 71 style-list)))
& E1 b0 o% f0 u$ G( y( d: @$ i1 C - (if (= (logand bk-up 2) 2)
+ o7 q3 L9 o( l% e" V+ h; h - (set_tile "bkwd" (itoa (setq bkwd 1)))
. w; e9 }4 x2 O" p% I - (set_tile "bkwd" (itoa (setq bkwd 0)))
& M8 S8 ~& [& Q. \; D) |9 h! N - )
/ c$ l" V3 {# ]5 f" A - (if (= (logand bk-up 4) 4)1 Z1 n7 s; x. p: m# \
- (set_tile "upsd" (itoa (setq upsd 1)))
5 J% T- k: f3 l- e8 y7 W - (set_tile "upsd" (itoa (setq upsd 0)))
X) `% j7 I2 m9 f+ t - )) [8 }3 o6 C% u! z/ W1 Y
- )
+ f0 ^8 R+ k. o7 T! [7 \ - ;;. c8 [0 C5 W" S7 G9 K
- ;; Justification action. Set vertical and horizontal alignment variables,
i$ }4 V/ q6 f% d e5 ` - ;; grey out rotation and height if alignment = "aligned", grey out rotation
- q2 c7 D2 n D2 r: s9 @ - ;; if alignment = "fit".
9 J2 K- ^; ? G/ N - ;;" @+ }' T! b& N& B
- (defun jlist_act (index / templist)3 o& l# S1 N3 K. d- i
- (setq just-idx (atoi index))
& {8 d. I( V; ^ - (cond& s9 x- `) S) K- m2 k
- ((= just-idx 0) (setq va 0 ha 0))
8 o" l T2 Y6 p d" \& W2 |( P$ d - ((= just-idx 1) (setq va 0 ha 1))
7 _8 O+ H* D/ r6 ? - ((= just-idx 2) (setq va 0 ha 2))5 s( |% `, F/ ]* Q
- ((= just-idx 3) (setq va 0 ha 3))4 O, k2 j7 @6 y; J+ \
- ((= just-idx 4) (setq va 0 ha 4))( _- {6 W$ E5 S2 d6 N
- ((= just-idx 5) (setq va 0 ha 5))
5 m* [' P, `# A - ((= just-idx 6) (setq va 3 ha 0))* f+ o! p4 b! i& Y1 D! x# `
- ((= just-idx 7) (setq va 3 ha 1))( N$ z# b8 R2 q" z/ i: m/ G" _) @9 h
- ((= just-idx 8) (setq va 3 ha 2))
/ W$ Q" f3 O! m' J' a - ((= just-idx 9) (setq va 2 ha 0))* ^2 B9 ]$ d$ f% B3 X+ M- e
- ((= just-idx 10) (setq va 2 ha 1))
( o- J. e! [, e, u+ K% w - ((= just-idx 11) (setq va 2 ha 2))
4 g& J3 a6 ]1 A% `+ U0 \9 U - ((= just-idx 12) (setq va 1 ha 0))7 G1 R3 `* W) R2 P3 ^
- ((= just-idx 13) (setq va 1 ha 1))
/ ~& S1 a" A6 U+ |: Z - ((= just-idx 14) (setq va 1 ha 2))6 z, i% S( R& A7 p8 b- t; l
- )& Q2 }8 B" o& \) f8 c2 G
- (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text
1 r/ Q" i, V9 i F - (mode_tile "rot" 1)1 s& ?' j; x2 Y3 {
- (mode_tile "rot" 0)! w3 d4 I- t" ~! s, Z' a4 V3 D
- )
" |; K2 T, x7 P- q, s) t - (if (= ha 3) ; If Aligned text
: O$ D4 L5 k. v% j - (mode_tile "hght" 1)
0 ?( l+ E" F9 k* v - (mode_tile "hght" 0)
+ H5 m/ q( J: s( Z- k1 g. o3 I - )
. W3 n% _5 Y/ k9 ~2 p/ X* N! L - (if (= ha 5) ; If Fit text1 V7 R( C4 Z1 P. z% O) B% Y
- (mode_tile "wid" 1)
0 z8 T0 I& i0 {2 s! k- |7 @ - (mode_tile "wid" 0)
& f% ]# v% k1 i- } - )! N+ r9 x, O% Q V# }3 P& X l
- ;; Reset rotation and height if changing from aligned.
8 Z7 `/ N& |& {8 S2 _ - (if (and (= ha-prev 3) (/= ha 3))
7 D" S. @ v a1 p* |) @' K - (progn
# ]$ n% k8 }2 \ ?" n, r4 [& H - (set_tile "rot" (ai_angtos (setq rot 0.0)))3 H/ B( Z* }% E; u$ l% D
- (set_tile "hght" (ai_rtos (setq hght 1.0)))
2 T0 Z- o, Y+ U+ ]' G* \9 ^$ k - )
3 }! y; e7 w' t$ K - )$ R" D5 u" O5 ^0 ?4 X
. ^# T) B7 l9 u4 W* V- ;; Reset rotation and width if changing from fit.
5 V" r4 Z6 T# ` - (if (and (= ha-prev 5) (/= ha 5)) d9 I+ ^# j7 v$ U/ |& D
- (progn
( t& D/ ?1 F$ b H+ O& B - (set_tile "rot" (ai_angtos (setq rot 0.0)))
; g) C7 |* C _$ i/ n2 v0 ` - (set_tile "wid" (ai_rtos (setq wid 1.0)))
$ x Q o4 G" b7 w- }2 W2 I6 Z* z - )/ I, [- z; ^' @4 C( E/ g2 @: U
- )8 y; H$ \# @5 ?0 Z* r/ l
- % ~& d5 I N- a" b" f9 a
- (setq ha-prev ha) ; update ha-prev for next time
& r, N* h8 u% G/ ~% I7 o" R - (setq just-idx (itoa just-idx))& n& ]9 `, @( t
- )0 Y5 k7 y; G' R/ E/ W% ?7 t
- ;;5 z; U: u; p5 Z
- ;; Set intitial alignment setting based on vertical and horizontal alignment, l# A! p; [ J1 z* M0 \, W
- ;; bit codes.
" \% b+ L# q; h6 D! W - ;;
# T8 _/ i) U* c& U' E - (defun set_just_idx ()$ H8 n" A& S& l) Z- |
- (cond
1 [; D m$ V6 d/ U - ((= ha 0) ; Horiz alignment = Left* ]+ |8 n1 W" p" H0 C
- (cond
6 G( G2 X6 @% P2 g$ X3 A3 H" i - ((= va 0) (setq just-idx "0"))4 z0 z e* z$ w. _- {8 I
- ((= va 1) (setq just-idx "12"))
6 d3 F" Q( K& ]7 x& m! A0 I - ((= va 2) (setq just-idx "9"))0 o2 f) X3 Q( f6 H7 Q0 o3 o
- ((= va 3) (setq just-idx "6"))
' H) k: H. t$ j3 ?8 P6 d: V - ). {, Q; H2 o2 c: ^. ?# U
- )
3 Y) `8 N) F! O- J& W - ((= ha 1) ; Horiz alignment = Center- r* h0 F6 L3 D/ [5 i
- (cond I* h. b/ s& }, i* f* m
- ((= va 0) (setq just-idx "1"))6 l: p- c" l; l) k# U) O
- ((= va 1) (setq just-idx "13"))
$ y& S7 m1 W) u+ a" S* G" Q - ((= va 2) (setq just-idx "10"))
. H' u6 b( _0 h4 v - ((= va 3) (setq just-idx "7"))( K. ^ X7 X! {. _
- )
, K5 T! ^$ y! Z, h2 n - )( R6 r4 H5 q5 H8 Y
- ((= ha 2) ; Horiz alignment = Right. g1 J: A9 M) {
- (cond4 j. j$ l* C" r
- ((= va 0) (setq just-idx "2"))
M: p9 N+ {' o- J# s - ((= va 1) (setq just-idx "14"))
; S- o4 y- e9 K; s - ((= va 2) (setq just-idx "11"))$ D/ o! z% |0 c. W2 f0 b: m" y3 a3 H, W
- ((= va 3) (setq just-idx "8"))6 b# W ?& w5 h5 S+ J
- )
9 V6 |8 {' ]) K o1 @, r - )1 N, Y9 o4 g4 r* P5 b0 s5 g
- ((= ha 3) (setq just-idx "3")) ; Aligned6 A! g; ]. ~+ }( `3 _. j: D# D
- ((= ha 4) (setq just-idx "4")) ; Middle
2 q: h) A; p" C. ]2 ~ - ((= ha 5) (setq just-idx "5")) ; Fit: ]! C4 u6 s0 U5 a/ C# \/ f& e6 L
- (T (setq just-idx "0"))9 I2 ^: ]$ @% n4 u) }& h
- )
: w. r6 F( m9 t" I" ]$ p6 @" B& } - just-idx
' J2 E( v( [5 @ - )$ J$ O/ j5 Z' I3 `( C0 y1 s9 n* h: [
- % f+ A3 f& i; i& i5 d
- (defun modify_text ()% \9 }6 ]( V! S9 o) x: U- K
- ;; insertion point- D, D4 r$ e7 y/ _- ?9 c* p6 \
- (setq showpt (list x1 y1 z1))5 [0 f6 V% G9 ?
- (setq bit-10 (trans showpt 1 ename))0 @# W, B; c! `% P1 e9 s
- ;; alignment point
% I( d( }* F- |5 b$ `1 O - ;; for 'Aligned' or 'Fit', alignment point must be different+ D- V! e) `2 Q- P0 z
- ;; for all others, use insertion point% z1 {/ i3 Q: r* G
- ;; (ACAD will recompute insertion point)
& N# l( ]1 v O - (if (or (= ha 3) (= ha 5))
/ Y% N8 x J/ K& [ - (progn
) s% C& J0 g, `. i/ B6 V, O - ;; if no alignment point, fabricate one& e2 R7 q6 K& [* T! y
- (if (not alipt)" k; u8 I/ H4 ?1 m$ R
- ;; add text width to insertion point
2 z. ^( l8 ~7 }! O - (setq alipt. W* @2 K! K9 ]" X/ L
- (list (+ (car showpt) (car (cadr (textbox elist))))
3 d; f7 i# k" w' a' u - (cadr showpt)
, Y/ L7 l7 `8 p) q8 ]5 J2 {% M$ j - (caddr showpt)' H1 k5 o4 Q7 l' s1 S& }
- )" S+ V) f! ^* z! f& @
- )' f5 d, {0 G% N4 E8 c6 I9 \& P4 F
- )5 [9 h1 o3 e3 H# B
- (setq bit-11 (trans alipt 1 ename))0 }1 r0 S/ t3 f# l. M
- )
' \2 S1 a) m$ M/ ]' n9 |3 a - (setq bit-11 bit-10), M5 I+ |- s6 z# q& [
- ): C) i' W3 Y, {: m
- (modify_properties)( _0 E: Q& c: q
- (tempmod tstyle 7 nil)
* k. y. G/ I* {$ y# J/ y - (tempmod bit-10 10 nil)
* t) k( z5 k7 O' R5 J - (tempmod bit-11 11 nil)' v b2 _: G7 a
- (tempmod text 1 nil)
" q0 W* D" E& h' g - (tempmod hght 40 nil)
9 R9 i! m' {' \" Y$ n2 p+ q - (tempmod wid 41 nil)
$ V. R- w( p8 Q$ h. G2 _1 ~, b' o - (tempmod rot 50 nil)( d A' Y8 c5 n+ k4 B0 g! ^
- (tempmod obl 51 nil)2 G% F! Z+ j) K0 ~
- (setq bk-up (+ (* bkwd 2) (* upsd 4)))
& x: \8 s+ O' E# c& n5 k - (tempmod bk-up 71 nil)
3 k O% n0 n' w {$ O - (tempmod ha 72 nil)7 O+ i" v0 a9 J+ D2 V5 X
- ;; Attdefs use 74, text 73
+ Y- {9 x5 x" w - (if (= etype "ATTDEF")4 M: h. w z' O
- (progn
) J: q o* I1 R - (tempmod attag 2 nil)4 f) M( C- [$ ~5 O* G
- (tempmod atprompt 3 nil)4 H" @4 K2 W1 n& ]; F$ A
- (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))
3 M! m) }7 }. A( l8 ]& G q - (tempmod icvp 70 nil)+ o) o% }% N2 j9 m& _
- (tempmod va 74 nil)
* n0 M J: |+ H5 p1 ^! K7 j% ? - )
1 c9 i+ w- b& Q- s) L- ~ - (tempmod va 73 nil)/ r5 }9 a% A2 {- x: {% h
- )
; C( \: C$ A- C( }' x9 W; { - (entmod elist)
9 L; o; x; E3 W$ _+ c - )7 |& E: X+ ?: q
* i" r8 w* t1 T; b( i- (defun ddtext (/ 2ndpt slist i)& k( U0 s9 O0 H% P5 @# u
- (if (= etype "TEXT")" G( p4 O+ w; [# `+ F6 x" U* P, W
- (if (not (new_dialog "ddtext" dcl_id)) (exit))2 m* }' w% K- f- _
- (if (not (new_dialog "ddattdef" dcl_id)) (exit))
' F7 w* J1 e% j - )
% R/ ^' E. d" I* t- ?2 P/ q; o - (set_tile_props)
+ h3 [! S4 T8 n0 R# D2 ~ y" Y - (set_tile_handle)# P2 M! }) D0 f/ h' t
- (set_tile_text)
* ?2 x7 [0 t# Z3 p% L. ~& v7 q - (set_tile_tag)
: m4 w7 v& W, `+ u - (set_tile_prompt)
2 F; R/ P, p& Y: G4 B - (set_tile_hght)8 G6 H- G. E/ X, i. Y
- (set_tile_wid)( N J& ] R* b! h) P3 z6 y
- (set_tile_rot)
+ A7 Z$ H$ d3 @! T* Y, P# r @0 M& a - (set_tile_obl)& B2 Y2 B! ?, ?5 t
- (set_tile_bk-up)
5 n( G* _9 b, Y% X! Q- _ - (set_tile_icvp)- b) G. w: M& p+ l2 c
- (set_tile_style)6 o1 V2 }# N/ k. k9 v
- (set_tile_just)2 q- j M" u: g6 ^& I' P+ Q2 G
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))
* L/ A/ }; C. S4 x - (if (not (assoc 11 elist))
6 |$ s$ t- {" j" s { - (progn (setq pt2 pt1): D$ z/ x: ~4 b9 t( u* P
- (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))
' T* D$ L* p8 B R o; f) { - )
b; x+ H5 B& |$ d, ]' r - ;;(trans '(0.0 0.0 0.0) ename 1))
+ V% K$ a4 T' o' C - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))% D( L3 m, W6 }2 p/ \- I! `
- )
8 }% _3 u, J3 R. }( O7 | - (if (or (and (= ha 0) (= va 0))
8 q5 ~& {8 U. @0 J& w8 n4 ~5 l9 a6 O - (= ha 3) V$ u7 U6 R4 G2 v5 r
- (= ha 5)
+ t- f- U _! z! L - )( F/ K0 {) o9 n4 Q3 l( F
- (setq showpt pt1), P* k' x% u* J3 }! l" M6 v0 {, |. _
- (setq showpt pt2)7 O2 |# k0 T1 J, A
- )- z" q1 ]1 {( |' X% P8 j* y% c
- (if (or (= ha 3) (= ha 5))* t% s7 P: I( U/ z" O
- (setq alipt pt2)
. U! t* R: p, V# E6 ?# T: X8 [ - (setq alipt nil)
& R6 e" }0 X& [' ^ - )
0 |! I+ f; y& N1 X- r
: y# o0 g, x/ p7 j7 F" E; X6 W; _6 H- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt))))
& e! Y1 W/ f/ W# ~# z9 e* j - (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt))))
5 x/ X, }& }9 S. r A1 G. h! }2 D - (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))2 H0 u% Q6 @ m8 Z/ e) Q" X5 D
: m: I9 T3 G1 N" k7 [- ;; Define action for tiles
) ~" L5 A( i* y1 H( j, f - (set_action_tiles)* r8 Z0 s! \, g. P! o. R
- ;; Set focus initially to the text edit box.
9 W H2 x5 b# I. }3 I8 c5 u! X - (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))8 y: b, a `0 F' ~2 V1 F# p
- (setq dialog-state (start_dialog))& R# y9 K' \5 X% b: Z B
- (if (= dialog-state 0)
- v# e- [( H: c- U/ ~ - (reset)0 F: |5 f7 X% I- p( o
- )% g; S2 A, z; Y2 |% U
- (if (= dialog-state 1)
% `& n: [, W0 e- f8 r6 P - (modify_text)- }& C# C# v- I, c: D$ {
- )
. U# M# F2 I! k8 @& _; d: W - (if (= dialog-state 3)
+ O* T, O3 N# z' v' X5 |, i; @ - (progn
5 g2 a* ]9 m4 C7 m; _- U - (modify_text), R6 r0 R5 S/ K3 J- `' C4 s
- (if (or (= ha 3) (= ha 5))
# x* U* ^. a) X; B4 _* X( q' A3 f j - (progn D: p0 B* I, R, `& F3 r! Y2 Q9 e3 d' ]
- (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))& R6 E: G- v3 _/ P% G* L
- (if (not showpt)
6 I! T0 w, ^- c- [. ^8 g - (setq showpt (list x1 y1 z1))
: |% b; B0 |) _, x6 W- }& W - )
# a% k9 } v! Z3 m - (setq 2ndpt (getpoint showpt "\nSecond point: "))- G6 x5 v3 L+ B* O
- (if 2ndpt- g: _* J; V5 Z7 r
- (progn
- T: q! ~0 y( ` - (setq alipt 2ndpt)
: e8 M$ ~7 _3 E) h1 ~6 ]. T1 X, v% \/ f - (tempmod showpt 10 1)0 L- }0 e; l2 f9 F, K1 O
- (tempmod alipt 11 1)" j2 j' E2 _. T1 L, U- G. Q' g' c
- (entmod elist)
/ a$ K `' o% I8 G: ^7 X, K - )4 ^- g) R0 j& p) \# e
- )
+ i: j; h# M# V. E4 { - (setq elist (entget ename))
& T' B! t# c$ _" ?) N - )
% M% E& t# U- m) r3 k - (progn
- n5 \. }4 @" y) g - (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))
. j4 P9 v0 L4 u% u' Y1 F! D; N - (if showpt) w" b" r" {( s& O; a
- (progn& M8 q ?' f, ?3 e$ g
- (if (and (= ha 0) (= va 0))5 T, f1 l" H5 x, f( R
- (tempmod showpt 10 1)
, ?4 S' Z: x1 v% \ - (tempmod showpt 11 1) m+ V U! z/ c5 {3 r
- )8 W6 m4 k Z& |) U# ?
- (entmod elist)
% e6 [6 L9 o( f7 i) V6 Z - )
. U! p6 A" t+ G. s5 i - (setq showpt (list x1 y1 z1))
. Q9 B6 X& r- m* Z, k) U2 r4 k - )) u2 q3 v p% F, z+ a, v6 ~
- ), n3 T" `5 G( _7 P; P. f2 Z+ l
- )1 |2 v* g1 i8 n' D& d0 Q
- (ddtext)! I$ P: p) G& H
- )
' [% E6 U' J) D7 A - )
+ `! Z" f1 \' s% B - )9 {" v2 z4 i9 s/ C6 d5 ]# c
* N( ?! U" m+ c d3 U2 h8 @# e- ;;
6 S) x6 f. L& @% s& E - ;; Modify MTEXT( k" i3 \" O9 G7 ?
- ;;" o S+ _* E! o6 B
- (defun modify_mtext ()* o4 s5 d% U, q0 N# l
- (modify_properties): v- [; L! P6 `! [
- (setq pt1 (list x1 y1 z1))
, z, M! e9 ~! e& j. \- _) ^ - (tempmod pt1 10 0), ]" l: N! h1 e* D% b
- (tempmod text 1 nil)
' ~1 L4 s$ f& u2 v, d6 H) r- P8 H - (tempmod tstyle 7 nil)
4 O5 @; c: t3 c Z3 p6 m: c - (tempmod just-idx 71 nil) v) c( \/ @0 A' C( r, _
- (cond A4 l U9 r' I
- ((= dir-idx 0) (setq dir-idx 1))4 o5 C4 a2 C7 E0 l
- ((= dir-idx 1) (setq dir-idx 3))
4 i: x! R) B% F9 J2 O5 G - ((= dir-idx 2) (setq dir-idx 5))9 Y# Y& E+ V- K3 N" B
- (T (setq dir-idx 1))
5 ?( C7 O2 e8 Z# q7 K9 ^ - )/ B* e* Z6 N* p% u) ]* Z
- (tempmod dir-idx 72 nil)
4 _ t" r# N5 z0 @# m( l8 r - (tempmod hght 40 nil)
3 m6 m$ n3 S% _ - (tempmod wid 41 nil)& Z3 [0 e' i; [3 u9 i! h
- (tempmod rot 50 nil)
! C, v- C: b! E2 b3 S - (entmod elist)" P+ m$ ]+ k v9 s6 V5 J0 w
- )
$ c, U5 H, T) B# ]
- U' T$ P: P+ |9 G- _- ;; Set MText text style/ r5 X- z- z2 r K7 |+ q
- (defun MText_style (index / style-list)( N6 B0 O6 R! g9 x) E r
- (setq style-idx (atoi index))( U0 |$ q0 r5 n1 D7 T
- (setq tstyle (nth style-idx slist))! b' [2 X- P" A/ V1 n( P9 M( W
- (setq style-idx (itoa style-idx))
) N$ K, Y+ v, E; J - (set_tile "style" style-idx)+ w3 E# g8 K; W9 h9 ~
- (setq style-list (tblsearch "style" tstyle))
' p9 P" V, `4 w( y, R - (setq shght (cdr (assoc 40 style-list)))
* c5 A+ Q: f1 X) N( Z# \ - (if (/= shght 0)
# W* J7 {* d2 ~9 k0 Z - (progn
3 M* s- }" K ?0 }" X, u - (setq hght shght)
+ ^7 b2 m7 M3 s3 I( {7 U - (set_tile "hght" (ai_rtos hght))* y$ m) g& U3 @: l0 V# C
- )) F/ G) z C+ P+ c7 I E
- ). r$ N( T H$ f: ^' \1 @
- ): ?9 f$ l" C- S5 `3 S
. H3 E8 r4 P8 T1 C0 V- ;; Run DDEDIT on given entity, working around possible re-entrancy
' {' Y* w: p0 @# T6 N; I0 | - ;; problems with MTEXTED- |8 j) O* B6 Y+ }, a% L! Q$ N3 f3 S M
- (defun safe_ddedit (ename / orgMTextEd work)
; L' J" D7 G5 I# c/ {+ I( s+ h9 [ O- T - (setq orgMTextEd (getvar "MTEXTED"))
5 j' a6 b/ R Y- W - (setq work orgMTextEd)
1 \7 y; ^! Q M6 s - (if (= ":" (substr work 1 1))
; a- P$ `6 M+ A) B1 D - (progn
9 l- E& |6 J+ u' J - (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))* p0 v. S0 u3 X' p8 o& J
- (setq work (substr work 2))- D: V9 x. I0 A
- )7 N. T, r$ ?2 H
- (if (= "#" (substr work 1 1))7 R) H9 ^; S) e# D, Y
- (setq work (substr work 2))
" k. j8 L, ]( O* J - )
8 I' w" K2 ]- ]+ R4 ]. c - (setvar "MTEXTED" work)' H* e# {: G( n5 }! j$ z& v
- )
. f9 t2 x4 I1 y& g# G/ o - )
- Y: h" W8 u/ H \7 q1 s! `! j - (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...- |3 y: g1 c$ Y3 C
- (command "_DDEDIT" ename "")
6 y; v4 {8 K& }! ? - (setvar "MTEXTED" orgMTextEd)2 `$ a: r7 _& k6 r+ y0 T5 h
- )
5 U+ ?6 ~- o; ?+ i. l0 `2 M" c - - i, p4 m1 V- t8 e, F' j, ?- b
- ;; Verify MText object width
0 W. O7 e9 ?' {; j, v4 B/ a - (defun ver_MtextWidth (value)
& H( O' U- ]) f - (setq value (distof value))' i* S: f. x3 L, g7 m; i7 e9 Z
- (set_tile "MTextWidth" (ai_rtos value))
. ~9 E* V. S2 ~' O: I - (set_tile "error" "")0 f) ?1 ~6 P ^% { x6 x
- (if (< value 0.0)- O' a. o9 ^# R: Z2 d
- (set_tile "error" "Value must be zero or positive.")
+ J4 Q# ^- u. {6 F! @, \8 t - (setq wid value)$ l) T( }" y/ m# z7 n3 j- f
- )" r5 S5 b3 M9 D. e" k
- )' p1 a( `2 W& R) t& l$ M
- 4 x* A: b! U& @, [
- (defun ddmtext ( / gc3)( d7 c6 r$ I. B
- ;; Get dialog0 P3 S2 J( y; y1 Z9 M
- (if (not (new_dialog "ddmtext" dcl_id)) (exit))
, Y! s0 F8 q0 ?; J. Y. ~* E2 B0 U
. _$ [ [/ q( x3 [! S8 Q- ;; Load list boxes) h& q$ ^) `, F; t/ ]( d. O+ _
- (start_list "MTextJustify"): f3 ^' G$ k9 R0 s, f/ k8 O
- (mapcar 'add_list '(/ J+ }# U; u5 A% j
- "Top Left"
9 j: ~8 [3 @3 x, h4 h: H9 S - "Top Center"
* Y6 p X: T$ m5 L K - "Top Right"! V3 G. e3 p$ ~' t$ Y1 v
- "Middle Left"
$ y0 J" a' }% D5 J8 \; f/ D/ s: D - "Middle Center"* `5 T4 K- B6 f$ B2 q, X% B
- "Middle Right"
7 G r9 {# C/ M' l! S* X: i - "Bottom Left"
# D3 X' D& h* p8 A9 E) _% ` - "Bottom Center"0 t$ `- g2 z2 S- p
- "Bottom Right"
9 X/ P( y8 k1 f9 G' o% _ - )( }5 ~$ p! {4 t5 Z
- )
- h. S% n, E1 i. }0 r6 M - (end_list)
) J- K: e7 U* k
' }5 t: e& U" o- (start_list "MTextDirection")
$ N% V, \) J, O K! U) N7 X( |4 { - (mapcar 'add_list '(
% n! A0 n1 w+ h5 t! w$ Z* [1 _3 z - "Horizontal"6 e9 | D, V; s/ e
- "Vertical"7 m3 T2 ?1 u" @( z& n" m
- "By Style"
r& P' f8 x& D p K8 U/ B* a s - )1 [" t% [% e% R, @* w9 p' u; ?
- )
, w& f- U8 I" `9 g' U3 \& N2 Q - (end_list)
! X5 L! b& m9 E. w4 \ - ) Y' c7 J! [" ?. T; w, r" B; |+ L' m
- ;; Set initial tile values2 ]; J! w) |+ K# J* S2 Q) L+ `
- (set_tile_props)
5 k0 b% p2 ]& L - (set_tile_handle)
! V7 `0 o/ `8 V7 Q7 u0 f; [, N2 L4 c - (set_tile_pt1 0)
+ B: K O. d6 i) j$ {# P - (set_tile_style)# J1 Q+ x6 D8 c, R; Q7 {
- (setq just-idx (cdr (assoc 71 elist))), j7 G' I* X5 E* A0 q
- (set_tile "MTextJustify" (itoa (1- just-idx)))
. v. p! f0 r' W% f% L - (setq dir-idx (cdr (assoc 72 elist)))
( C4 n0 z4 c* v2 P7 ^# v - (cond8 i" q, S4 [0 u% _/ s
- ((= dir-idx 1) (setq dir-idx 0))+ h/ f' Q( n P( g
- ((= dir-idx 2) (setq dir-idx 0))
$ N) Q" W& Z/ e* k5 v' ` - ((= dir-idx 3) (setq dir-idx 1))
# U+ r/ [) O+ d# R/ [ - ((= dir-idx 4) (setq dir-idx 1))$ e; ]$ {, w, l9 u. J# Z
- ((= dir-idx 5) (setq dir-idx 2))
- m1 {' { T* c9 E - (T (setq dir-idx 0))- f- \ I/ H; }- G
- )
% `% X" O6 C' R4 w) g5 M - (set_tile "MTextDirection" (itoa dir-idx))
& w) j+ X; X" Z8 i, \& t. c - (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))
4 l o" O! W! c! K: ]3 h - (set_tile_hght)3 b/ M) R' O, f% F) y
- (set_tile_rot)
8 b7 D/ Z% K, r4 B- e: E - 1 b0 o: E5 g# G, h' s8 Q( J
- ;; Set edit box, disable if too long( F" |8 n1 Z. J& C0 M8 J
- (setq gc3 (cdr (assoc 3 elist))
. A* S$ G! v# G1 n2 S% F& }( _( ?- Q- y - text (cdr (assoc 1 elist)))
( U1 _" P( A- g - (if gc3
9 l: D# |! y' I" J8 X" o - (progn ;; Text is over 250 chars, disable edit tile
l0 i N4 ^# F ~$ b9 @ - (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))
6 j% Z, K# D& u/ l - (mode_tile "t_string" 1)
( m0 m/ m4 `# \* E: _8 p! D - )1 |, ^5 h2 b& E% L$ E0 I
- (if (> (strlen text) 80)! [0 g0 d1 o1 \1 C7 N" E8 ]6 _" M
- (progn ;; Still too big3 H6 \' N4 i# w; a, T4 h/ N& ` _5 R
- (set_tile "t_string" (strcat (substr text 1 25) " ..."))
8 {/ i' t& D6 n/ @$ c - (mode_tile "t_string" 1)
) t* Q+ _! p, ~9 E3 e- l2 o% n9 F - )6 o. F3 B# }4 N/ N
- (set_tile "t_string" text)8 n4 `; g8 t+ {+ F
- )
/ M$ T6 T. V' W1 I3 y9 g - )( P2 Z+ k Q. p; [
7 e2 N* U4 t$ J) Z+ q5 X& F- ;; Define action for tiles$ R8 [5 ]% b9 D7 ^
- (set_action_tiles). p o+ C. b. m- x9 {9 I
- (action_tile "style" "(MText_style $value)")
# z% `( m( X: I% n3 O - (action_tile "MTextWidth" "(ver_MtextWidth $value)")
% P. O& g1 h! L$ D; z: H* x - (action_tile "MTextEdit" "(done_dialog 4)")
5 I2 E& X1 d" Z - (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")- n7 E' N% C1 g `) j
- (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")
) b4 S5 b d8 m0 N, Y; ^6 R - / u* l/ `, E/ n/ F! B
- ;; Set initial focus to text edit box.
$ N' N( f9 A: \8 t - (mode_tile "t_string" 2)
$ g0 H4 K- ~ I4 m
' Q4 |6 C, m z6 [6 R% L5 [- ;; Run the dialog
; _! g Z5 H& y$ f, Z& O3 S0 ?3 g - (setq dialog-state (start_dialog))
5 X+ }8 T$ v2 F, ~1 O8 g# ] - (cond
3 w! ?# m- K5 S: S& }/ m - ;; Cancelled - restore saved data
% ]6 n! V7 `, _9 m - ((= dialog-state 0) (reset))
6 _ S. Q; A+ u2 C; b. F# U) L - ;; OK - save new data
7 F4 b8 L8 O( S4 N0 f7 P& Q0 P - ((= dialog-state 1) (modify_mtext))& t$ m* l. Y( ^+ k& ^4 G3 B
- ;; Pick new insertion point4 b! z- f% C- l" z8 `$ t( e
- ((= dialog-state 3) t I4 \$ K- R
- (modify_mtext)
( Z' G' T N7 `, ^% d9 } - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
9 G+ {% L5 L% r6 U m7 i$ B/ r - (ver_pt1 0)9 W6 `. d. i- }7 p: y- h1 ^
- (ddmtext)
! z6 n8 ]; s) `2 t - )
3 E, q6 J7 }# R3 y) a1 `9 g. z9 E - ;; Run full editor- v& I/ o F- ~. W5 x: V0 V
- ((= dialog-state 4)
$ v( {0 O5 Z. {1 p - (modify_mtext)6 f+ t/ A, U: n' {" J/ R% U
- (safe_ddedit ename)
) v9 A: e: |. W. r9 ] - (setq elist (entget ename))
# S7 } _- k1 ? - (ddmtext)1 L# o& j& P9 q
- )
; Q# X* @) l7 g& O/ ?( k4 e - (T nil)' u$ y& U! [, r: z3 l
- )
; M# ?/ k9 m5 ?6 J - )
& m* o/ m4 u/ \; z - 9 t: l* }/ _$ {) T) z
- ;;
, \. [' n ~1 Q( Z- v - ;; Modify VIEWPORT
; m" j& o1 [7 }8 m1 O - ;;/ Y* q$ Y5 X8 v
- " o- T0 Z ]* W
- (defun ddvport ()- I4 g6 Q0 i( c" Z$ d% z
- (if (not (new_dialog "ddvport" dcl_id)) (exit))
" T! e: q" K- \/ _# f - (set_tile_props). o. C) Q. s$ n) y4 m* ^9 [) Y. a3 j
- (set_tile_handle)& i+ A* A7 }: Y& l. `, e
- (setq vpt (cdr (assoc 10 elist)))
$ K2 l4 z$ b, A - (set_tile "xtext" (rtos (setq x1 (car vpt))))9 k5 ^- u- N! N1 c2 J9 A+ t
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
# k V5 B4 t9 F9 z. f7 _# a# f* E - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
z: C. S% M1 T* w/ |' j; Z - (setq wid (cdr (assoc 40 elist)))
& s7 B& K- K+ R+ P9 C1 s7 w+ X - (set_tile "wid" (rtos wid))
, B6 {) [8 U/ @& e - (setq hght (cdr (assoc 41 elist)))) N6 Z- Q2 K( M6 a6 G i
- (set_tile "hght" (rtos hght))
' B6 [, g% o8 u9 ^* g6 o - (setq vpid (cdr (assoc 69 elist)))0 H% z' |% l X) ?5 I
- (set_tile "vpid" (itoa vpid))- y" y# u) V" H/ c% T$ G3 g- L2 q
- (setq on-off (cdr (assoc 68 elist)))
' m2 B5 V& w* [1 x" h5 i- { - (cond6 `7 t7 P) y3 e, U) w- }
- ((= on-off 0) (set_tile "on-off" "OFF"))! ]8 \( E* I7 C+ q. {
- ((> on-off 0) (set_tile "on-off" "ON and Active"))
9 l* S6 k/ P j, j& i1 J6 f - (T (set_tile "on-off" "ON and Inactive"))
+ Y/ n2 }# U- R7 F - )
5 \0 h# U- \ S. S - 8 F( U. _: O* P" C, G
- ;; Define action for tiles. k2 u, @* w! X$ `1 p; m% [
- (set_action_tiles)/ m% ^/ v* V' L' d" b# j7 m
! s2 o2 ?; ?2 s9 p- (setq dialog-state (start_dialog))
, `- P9 W1 b" O& ~3 |& c - (if (= dialog-state 0)
9 `. l3 I) Q( X - (reset): j( c1 i2 }3 f H
- )
" J+ T1 q y: b8 _- E$ n# H& ` - (if (= dialog-state 1)1 [6 u$ ^% K- D7 C, m, l) }- Y* P
- (progn/ K, h1 g0 Z. a' I- O3 ]7 H
- (if (= ecolor 0) (setq ecolor "BYBLOCK"))
; \ D4 h5 i& z/ h6 ^) |" M - (if (= ecolor 256) (setq ecolor "BYLAYER"))
" N4 c3 B; @2 K2 Y- S) Q0 A) _ - (command "_.chprop" ename ""
. k6 t& @$ T' ?+ l a - "_la" elayer9 ^. |* H' o4 G* |2 Y
- "_c" ecolor ""0 \4 ?2 \5 v' l: W# [! i( A
- )% g7 p+ d! r j: I2 P
- )! Q& O6 A* m" E' ^2 y. d
- )+ P/ c: ]' p1 T X6 |- S0 Q" V
- )- E: p0 J1 L! t8 w& ~" K, _' x
- ;;
L0 S6 U* Y! E) k( Z& |8 { - ;; Modify POLYLINE# L7 _# x8 e" ]6 g
- ;;. [8 ^/ N) ?# G: R7 C0 w1 F
- (defun modify_polyline ()
% C# X5 ^/ J( f4 A+ ` - (modify_properties)0 W6 ^' x! i. V+ R" q$ f8 A4 M
- (if (= ltgen "1")" b) l% {1 f) o+ f# H. [8 @
- (if (/= (logand bit70 128) 128)
+ |# J; q& K' D& ^7 P6 A - (setq bit70 (+ bit70 128)). ~0 n* z6 {) U* Y; C( ?% ?
- )3 N/ I. O" \) N6 f) w
- )7 o: y/ F e2 I: W! [
- (if (= ltgen "0")2 w: ?- d u( R) |
- (if (= (logand bit70 128) 128)+ Z4 \+ Y+ P% g9 O' i
- (setq bit70 (- bit70 128))6 u+ N" j# x& o% B
- )
5 U4 s3 _: D2 Y7 q2 Z3 w - )9 k0 n: i" p) @+ q# P
- (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))
1 ?- m8 Z2 }, R) a# Q6 T: Q - (entmod elist)
9 }8 M3 }" t6 r }' R% k) Y - ;; Added to take care of updating Vertex information for color% f% T& Q ]0 ?( q$ s! M1 M9 P6 W
- ;; and linetype.
) q6 ?0 @# E3 B2 F. e4 n* B' x - (setq save-ename ename save-elist elist)- L" @0 p2 O+ S+ e/ ~- G2 q
- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
/ M' F! L( k4 w! h - (progn+ Q% a5 W$ [! s5 L
- (emod ecolor 62)1 k. D1 H4 E* Z
- (emod eltype 6)
I& H& j7 q6 D! o" ?( q' R0 H - (emod eltscale 48)( m. i5 G! ~8 R, n( `
- (entmod elist)
+ j# L+ ?8 F$ g. ]& _" d0 q& a - )) _6 T7 Z- p0 R% y4 ^0 b4 z4 p
- (progn
$ \6 I, b8 q: q - (setq ename (entnext save-ename)). U* A4 G. _/ O4 I- [6 g$ }( D- A! u
- (setq elist (entget ename))
6 d: M8 E9 B7 K7 Y. R" s' j
a- s q3 q3 N4 U8 Y9 |* u) B- (while (not (= (cdr (assoc 0 elist)) "SEQEND"))/ Q: t- w" H+ {' l
- (emod ecolor 62)- O8 c# d& H7 T( y7 E/ a/ ^
- (emod eltype 6)6 |" D8 d; v% m; V$ f9 x/ Y
- (emod eltscale 48)
6 s# G1 k% X4 m% j! _7 g9 g - (entmod elist)6 B% p4 {. Y, j. I6 }( n
- (setq ename (entnext ename))
0 P, ]5 \* v, C( g m* [ - (setq elist (entget ename))
9 }) H0 B: |/ l% ~, [2 O. I - )% ~4 ~% R* {0 G. d6 G0 M$ R- N
- )1 L6 V1 X' e( n1 R
- )
# U& n6 c6 j) X/ \ - ;; Update the SEQEND
, z: c3 j, U" o# n H - (if (= (cdr (assoc 0 elist)) "SEQEND")
9 Q6 z' O% x0 x - (progn
( }2 S/ b8 S1 y8 `( O* x - (emod ecolor 62)4 l# a; n+ O1 s, y
- (emod eltype 6)
; ]4 _6 ?1 _" j7 }% T% ]+ C - (emod eltscale 48)
D" T0 L& N8 t* G - (entmod elist)0 j4 R8 ^8 K$ F+ `- S
- )0 j3 d$ I; G2 p' J9 B
- )0 w# n+ b. i+ H
- ;; Go back to header.
1 F. e, \ y( k( W; M% z) [! H - (setq ename save-ename elist save-elist)
* v1 t1 [7 R& u! t v - + y W4 P) Q& P5 n8 s
- (entupd ename)
) r+ ~; p! x; ]4 |/ \3 P - )
0 X/ o- h" |! P& [) u% C- x4 o - 6 c: f! X% l: R5 \6 k+ e `6 H: C
- ;; Increment vertex. Set tile values to next vertex
; c" L2 [) l5 b. P' @ - ;;
# n" h5 F9 Y" t; J. ~. _ - (defun next_vertex ()
- j0 j3 F, P1 c - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")0 @ q# o' ?* z7 j u
- (progn
7 F0 m0 X+ g. b+ \ - ;; If the counter reaches the number of vertices,2 I3 q5 L' B1 n. i: t
- ;; roll it over to zero again.
3 N. p. [) x* k# n: A - (if (= ctr (cdr (assoc 90 vlist)))
& ?; G; J6 d! {& k) } - (setq ctr 0)
1 r, R" g: f, d; N2 S; W$ L - )
: V- |( f0 e( I1 A2 c, x8 u - (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
7 `& S. K x) e6 O% K: U - (set_tile_vpt pointype)* o+ u" _! Z# f/ _' L! p) b& l% k
- )
$ b' n- s+ P c4 y* v1 K3 x1 E - (progn9 x! _. e- A" X9 `! i4 j* t; V
- (setq vname (entnext vname))
9 \) s) S& J* {; ? F8 \ - (setq vlist (entget vname))' d; d' {+ q5 I* [& L
- (if (= (cdr (assoc 0 vlist)) "VERTEX")
6 [1 e& A9 a* E' @ - (progn
5 e4 ?; S% A- Q5 G& c+ G5 T: [, s - (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))0 u N1 x& C1 ~0 e6 w* J- {1 J- X- X
- (set_tile_vpt pointype)
9 q h1 M7 R5 m2 j. Z1 \* X - )
+ g7 x; u: P9 H q$ }4 P! a - (progn
# Q6 Q! o! g2 R. T - (setq vname (entnext ename))
, \4 P# h7 o( R/ [+ | - (setq vlist (entget vname))' M* }2 j6 \- t. a" S0 Y9 d% c: F
- (set_tile_vpt pointype)! S4 V* C; I* Y0 a) s' X
- (set_tile "ctr" (itoa (setq ctr 1)))
8 T8 k- Y" {2 G - )* \2 w! W1 K4 r+ N
- )+ ?, h7 l2 ?3 W6 H. X
- )
$ @3 t( q A5 |1 w2 e- Z3 y - )
}; E/ H& \) p- j% D' w4 q# f6 u - )3 |9 H- ^: c4 P( W+ b1 w c {/ T j6 [/ t
- 7 h7 Y4 z3 h" [
- (defun ddpline (/ oldecho)$ \3 t/ Q2 U5 G7 `8 _
- (if (not (new_dialog "ddpline" dcl_id)) (exit))
* q9 Q. _: h( g, m; j3 J - (set_tile_props)9 j' B4 g* [" \
- (set_tile_handle)$ S; y: J5 C+ z# q; v" G
- (setq bit70 (cdr (assoc 70 elist)))$ y2 K _% L* t! A
- (setq bit75 (cdr (assoc 75 elist)))
! q5 R5 p) ^9 j8 w - (cond
1 |- ~* Q6 N3 P. c - ((= (logand bit70 8) 8) ; 3DPOLY
8 ^0 R4 ^! n% m! {* w/ T( W8 i# u# x - (set_tile "ptype" (setq pltype "3D polyline")) Q6 B2 j# h& m3 _/ e
- (setq pointype 0) ; WCS or ECS point values
8 A% i. S1 T' f7 I - (mode_tile "fit" 1)# @# @ l9 t& G) j* g
- (mode_tile "mesh" 1) g1 a2 Z# m4 _8 l. P( G
- (mode_tile "bezier" 1)
9 @) O, H/ v9 K& ? - (mode_tile "ltgen" 1)3 E# P2 _# ]9 E; E$ Z
- (set_tile "none" "1")5 j: T, l7 J" |' }1 `! Y
- (set_tile_closed)
" W+ |1 P$ w [( L& N/ o - (set_tile_fitsmooth)
+ g$ e- {* U& X% Y - )4 U) Q" ?- |1 T$ I/ s
- ((= (logand bit70 16) 16) ; 3DMESH% Q1 L$ G, w! }
- (set_tile "ptype" (setq pltype "3D mesh"))# @" V0 W- t _, o/ J
- (setq pointype 0)! w) Z3 _0 }8 Y) R6 r
- (mode_tile "pline" 1)) w5 P. z# q( v4 C+ i9 s7 A
- (mode_tile "fit" 1): ~4 n6 S3 a$ U. Q
- (mode_tile "ltgen" 1)
P0 q) H# T% `& D$ L, S - (setq m (1- (cdr (assoc 71 elist))))
. J# Q1 ?3 U& _6 \ - (setq n (1-(cdr (assoc 72 elist))))
9 R, H1 t& j! U$ q1 m - (setq u (1- (cdr (assoc 73 elist))))1 e2 J+ L; Z+ C, g, K
- (if (< u 0) (setq u 0))2 _2 c, M% N8 O8 B5 ?* i- x
- (setq v (1- (cdr (assoc 74 elist))))
/ a" S) o. s4 E) k S. Y - (if (< v 0) (setq v 0))$ x4 I/ g3 U0 N( J+ C2 @. k# q
- (set_tile "m" (itoa m))
8 \$ f* O Z; {3 V" K; \8 L - (set_tile "n" (itoa n))
: H; H* |. a4 B0 |% o - (set_tile "u" (itoa u))
9 y* ^: v4 R, B - (set_tile "v" (itoa v))0 R7 e1 g: o3 m: ~/ X% [
- (set_tile_closed)
2 |6 Y ?7 b( s* {# X3 G - (set_tile_fitsmooth)1 c1 B! k8 o G( B# f7 w
- )# y; Z. I$ m% e' n, H
- ((= (logand bit70 64) 64) ; POLYFACE MESH* ^* a; G L6 b7 k! o
- (set_tile "ptype" (setq pltype "Polyface mesh"))' o: M) `" S1 D# c5 u% ]2 T4 A
- (setq pointype 0)
( _- ] Q, y5 a, c9 n; Q1 { - (mode_tile "f-s" 1)+ d/ ]; c @" `' d; \
- (mode_tile "mesh" 1)) R1 r& r$ b. N; f/ a
- (mode_tile "pline" 1)& |+ l2 t0 X8 |5 B! C
- ), U2 P, V6 h q. H+ n
- (T ; 2D POLYLINE% r: n' O; D9 k; C- T0 f1 a+ a
- (set_tile "ptype" (setq pltype "2D polyline"))
0 B: g# q X6 o/ l' K& k, | - (setq pointype 1)
5 f5 {( D; q8 s- \: N& ^ - (mode_tile "bezier" 1)4 q4 t. n9 B7 O
- (mode_tile "mesh" 1)
$ c* a7 g( l8 W- q& p - (if (= (logand bit70 128) 128)& S0 I2 Z1 \& P+ I7 l; T m
- (set_tile "ltgen" (setq ltgen "1")); B4 n1 S$ c6 r, A) [
- )9 l/ i! ~" H' | Y) V/ S
- (set_tile_closed)
% v# n" [5 T) Z: I - (set_tile_fitsmooth)
& K; M) ^2 D4 q8 x/ s5 P4 v - )$ Q* M6 R- i' C9 Q
- )
8 H. W6 d: G! F2 f1 d- j6 x$ e
0 \) I3 m7 Q" }- X* H3 P4 r3 @- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
. B' t- h. U$ Z7 X P - (progn1 \6 ^0 F% ~ S h
- (if (not next) (setq vname ename))
8 E9 _0 I+ G; W& W( R - (setq next T)8 ?5 ?# I7 M0 p9 |- D$ ^
- (set_tile "ctr" (itoa (setq ctr 1)))
`' I1 T9 k; }$ j: c5 v' c - (setq vlist (entget ename)). i, }: u A8 x b4 V
- )2 A" ]/ M$ x0 _ t+ ?' D1 f
- (progn
& Y# w' N8 F2 M# U/ W9 f9 o - (if (not next) (setq vname (entnext ename)))+ C$ m) u9 U6 l* r) q6 E6 C
- (setq next T) c0 Y/ i9 ?$ t% i- M
- (set_tile "ctr" (itoa (setq ctr 1)))2 w/ F- D7 T* h) J2 G& h
- (setq vlist (entget vname))
2 u7 }4 B; \. j( _9 r - )
# k1 Q5 d |% x5 }: C4 t - )
. }/ C* p" O: T& h: T - (set_tile_vpt pointype)7 X, v; _$ V7 L5 f
- ;; Define action for tiles
- r4 ?' M: v6 U3 k) i - (set_action_tiles)
* ]5 V9 d2 u2 A+ v! ?0 k - (setq dialog-state (start_dialog))
/ Q. y/ O4 Y' Y2 m# @; v
' }. v" ^- \& v6 Y C8 K- (if (= dialog-state 0)8 g- p& ]% a" h7 B7 s# q' ]- s
- (reset)
5 C( B. _& t0 q% O; T9 l3 o+ M - ) n1 `- H# ^5 Y
- (if (= dialog-state 1)8 B% V- A% ~: F) X8 v
- (progn
+ w. P O! a2 \- Q; Y - (modify_polyline)
! \7 s5 o" L2 e0 Q- D - (if (or (= pltype "2D polyline")
2 U/ l ]1 [4 E } - (= pltype "3D polyline")
' g4 {/ K3 A# j1 B8 s' z6 u6 ? - ) @- w0 I3 |5 U
- (progn
* \5 S( c" v; B2 L$ P5 l - (command "_.pedit" ename)7 J1 G8 ~6 w, j R
- (if (= spltype 0) (command "_d"))
+ ~/ j9 c: v5 Z$ Y- g: O1 C - (if (= spltype 1) (command "_f"))
2 o# h5 H2 Z; n& |2 I" ? - (if (or (= spltype 5)
/ t% `6 p# ]; j& A' v - (= spltype 6)
$ t1 q" W3 N6 n" V: S - ) |6 G9 ?" [, @. J0 R% e
- (progn
$ F" t! Y8 C) x& n - (setvar "splinetype" spltype)2 [ i* F8 e4 U$ O
- (command "_s"); |- M4 r/ h- d1 H2 @4 x
- )' B$ D9 l0 {( i& a" U
- )" e$ t2 Z: I; X/ l( W+ Y
- (if (= closed "0")6 n4 g% F# o& G% z* s
- (command "_o")) k3 C+ K3 Q) e6 X5 Q
- (command "_c")' [8 D8 s" c0 G
- ) s' X% h; I: {- `+ G
- (command "")
% E7 \7 ~6 A! y4 _ - , w2 [: P) H/ f3 M
- (if (= spltype 0)
" n: r/ R7 b. H0 i) y - (progn, w, R3 v6 J( G: U. \
- (setq oldecho (getvar "cmdecho"))5 }! j* K$ N3 a3 O; O
- (command "_cmdecho" 0)
; t4 j* S9 ]* }2 k! A/ l0 {8 Q - (command "_convertpoly" "_light" ename "")
1 h# f) _ J0 k" \% e - (command "_cmdecho" oldecho)
6 j% j O1 g1 y3 Q' S+ M7 s" z: k - )
& h' e3 y' F3 w6 o4 ?$ g' P# u - )/ v' H# u6 V4 V! H9 Q8 m
- )
8 _. h. O3 u% v$ m1 i - )
& S, J0 q% U7 [% r. c: X - (if (= pltype "3D mesh")
! B' X8 v$ ?2 j/ A: ~4 G) q - (progn0 }0 |7 X) x$ ?
- (command "_.pedit" ename)4 v; V; p0 T( p7 d+ z3 t1 X$ N- A
- (if (= spltype 0) (command "_d"))! D8 N% G5 V& i3 I8 B, T9 P) i
- (if (or (= spltype 5)
% p# u Z% w. d' v( h% k - (= spltype 6)
! o8 f. N& u6 D* F - (= spltype 8)
4 a7 H5 i7 j4 |3 k7 D7 C* b1 e6 s - )8 ~+ z0 Q9 d# g9 Q P
- (progn; c* d" T/ w0 v6 o
- (setvar "surftype" spltype)
; a# d* r2 m- q8 ?1 h+ R - (setvar "surfu" u)9 u$ x' t% e# L6 d% J$ h
- (setvar "surfv" v)5 j/ Y' V; S! o; n& I/ x0 o
- (command "_s")# G f5 r& E/ q0 i8 }
- )
. v" b9 [& U( z' @! N- \+ v - )
# l- M* s4 ^+ z* W' G4 } - (if (/= closedm old-closedm)
; c5 x, p t k% T+ E' K - (command "_m") |! E- U% _) g4 V z
- )$ M, S/ i# j! t
- (if (/= closedn old-closedn): V; z+ \0 E- C/ O, E
- (command "_n")
9 S) _" Q5 a- l `9 U) y# Z k - )
; Y! P1 t; I; W% M2 ` Y7 J f ]' g - (command "")
! T' d. ^1 H- V. S - )
2 C( f; w9 w$ W - )
8 O/ s# b9 |' h1 W4 n, N - )' v | m/ R* e
- )1 B1 N& f" ]8 }
- )
3 D$ w2 S# t" A7 S& O' v - ;;, Y8 U2 ]$ X: `9 r9 h7 |) Q( N
- ;; All the spline data is contained in a single elist. We must do some5 r& W, K6 C+ R. R/ _: f v* z3 d T
- ;; tricky list processing to loop through the elist in order to display% z, {; V$ `$ u$ G% Q+ A/ t
- ;; all of the control points.
* r* J- k8 Y' R- V/ M/ f h - ;;
! p6 V2 p# o* S2 m. T9 v3 K# D - ;; The structure of the elist is different for rational and non-rational, G5 `% H, x$ c' `" F* l
- ;; splines. Therefore, we check the rational spline flag. H7 D, }3 i, R( t7 J# }
- ;;
# ^# @ ~0 k. X% _' \ - (defun next_cntl_pt ()& _+ q/ p w0 i# \
- (setq elem-no 0) ;; elem-no = element counter- L q: y) Z7 w# Y/ b
- (if (= first-10-time 1) ;; If first time, find location of first3 A+ D+ ?3 ?* E* k; i) v
- (foreach list_item elist ;; cntl point element in elist
; u9 l/ J* B1 N" t- H$ j' X - (progn8 `: S4 \; u8 t; y
- (setq elem-no (+ 1 elem-no))
8 C) b9 u3 q. U! s# e& q) N1 C/ A - (if (= (car list_item) 10)& C1 E8 g6 m5 ~- q5 e8 [8 A. [
- (progn; u( R7 E' t3 Z4 ^" n
- (if (= first-10-time 1)7 y+ H* y- Q/ l0 N/ B w! }' U
- (progn, N$ ?" n* J6 i) Q& p+ |
- (setq first-10-rec (- elem-no 1))
! Q8 K; L- O* S& C A, a - (setq first-10-time 0)
7 [3 x" e' _8 r9 e* L - (if (= rational_spl_flag 1) ;; if rational
! U# Z* c: u1 O# v7 N: w, ` - (setq cur-10-rec (+ elem-no 1))( `% n$ k% c1 N4 \; h# z
- (setq cur-10-rec elem-no)
$ x o8 j/ ~6 S, ~! u - )! F; N4 |8 y8 b5 V
- )6 [* ]4 z& ? a E1 C
- )- Q+ g5 C3 a7 Q6 X4 @
- )
- W4 Y- k$ |6 |/ m4 D7 _ - ); T) I) L' q) [ ^) D
- )& u" O% b" J* U: H5 O
- )
0 o8 n$ h7 ~& \2 v9 R% g - )
2 [/ z2 a* M* Q" r! b* Z* x. Y0 u - ;; Now we know the location of the first "10" record; it's stored4 B; w& {: d7 e2 L6 [: |2 A* S
- ;; in first-10-rec. The first 10 record was already displayed when8 x0 p) n$ S5 c: q7 ^
- ;; the dialog first came up so let's display the second one when0 I( j# c, Z. { O* \
- ;; the user presses the "next" button (the first time through).
7 s0 [3 ]8 ^# t, @" D+ C8 W - ;;! Z% B9 }+ V- T5 j- c0 c
- (setq temprec (nth cur-10-rec elist)): Y2 j! f* M8 f$ k
- ;;
5 Z H1 R8 ?( _ - (if (= (car temprec) 10) ;; if 10 record' C% \$ t4 b( m2 }# i: t
- (progn
+ w1 R% r; W' n4 _0 O$ M - (if (= rational_spl_flag 1) ;; if rational spline) |& u. e+ q' ^5 i5 [3 ~
- (progn/ f# P# F3 c) U ?7 _+ `
- (setq tempweight (nth (+ cur-10-rec 1) elist))$ l7 ^* d+ P: ]
- (setq cur-10-rec (+ 2 cur-10-rec))
0 E9 q/ i+ x# D1 e0 L0 }/ V - )
# ]- b& f* C& t1 S - (progn ;; else
# k; U- B3 A+ K1 ^+ {0 C6 u - (setq cur-10-rec (+ 1 cur-10-rec))/ V* `, b) |. p6 \
- )$ D( L3 C( X+ x+ u$ h
- )
- l( L8 I$ S4 i0 U - ) ;; end if rational spline
: p, P9 U) E/ j3 t* Q& g+ | - (progn ;; else reset counters
! L% u) ~! e3 `$ s1 i1 z - (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec
1 \& q2 y/ M3 P - (setq tempweight (nth (+ first-10-rec 1) elist))
) |0 g/ y! q- `0 M' n - (setq cntl-pt-indicator 0)
! Q m- Q: I/ C" Z& |1 f3 b. ?1 r - (if (= rational_spl_flag 1) ;; if rational/ l) A4 k" p' W) P1 P. j
- (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec
, x( B6 D& z2 z: r$ h- | - (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec, F0 f7 a$ o! h
- )
( p8 P1 D7 c, l; A& G' f$ I: v - )
7 b7 f% _7 r) D: J4 b0 R+ k - ) ;; end if 10 record
8 X1 y9 l; i0 G' ^. m' S) _' C - 0 ~# k4 a5 A' |6 k: X* ^5 U
- ;; Display cntl point, weight and ctr. Increment ctr.; | {! m1 s" D( `0 H
- (setq cntl-pt (cdr temprec))" P+ R) ]9 l% b
- (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))& T1 @6 ], E% X* e1 x& f
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))6 _8 h8 G7 D( r. w# |. K
- (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))8 Q) D3 D. K5 ]! W3 d
- (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))
1 u6 R$ n2 ]6 b/ G3 H3 O7 y" } - (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
' N" j$ B% A, D. b. s) ~9 W n - (if (= rational_spl_flag 1) ;; if rational' G! u* t; s! s( t9 c; R1 l
- (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght
/ T! o( W! p* i1 a5 X# `& i1 n - (mode_tile "weight_text" 1) ;; disable wght, K/ ^, ]7 F) f% E) f
- )4 O0 m& j% ?$ j3 J) ?+ G* F+ ^
- )% L$ [3 A9 c+ w/ G+ r& v
- ;;) v' k, @. C- z9 Q2 w- { }% W
- ;; All the spline info is contained in a single elist. We must do some
$ Q# {6 A! d7 c- g+ ?5 v1 r7 S - ;; tricky list processing to loop through the elist in order to display
/ A/ q8 e# \9 a' B - ;; all of the user data points.
4 e$ J, Y5 R! ~1 w7 t! F' u - ;;
0 e( _9 q; G( r) M - (defun next_data_pt ()" _2 f. J3 H8 _$ ?& V q. y( v
- (setq elem-no 0) ;; elem-no = element counter9 T7 |5 P+ n c
- (if (= first-11-time 1) ;; If first time, find location of first& x6 f, f% a" q! F
- (foreach list_item elist ;; data point element in elist. Z# i. n: D" d; d
- (progn
3 `9 U2 x7 x2 k& u6 S1 @ - (setq elem-no (+ 1 elem-no))/ i0 e0 s9 J) O: `4 C
- (if (= (car list_item) 11)
7 `1 d- i* U9 w* |* x, O: P - (progn5 s4 R* a1 ]1 `, i$ Z4 l* V/ E% U
- (if (= first-11-time 1)
, M7 `8 l2 k9 y" k1 a* t7 {( ^ - (progn' @$ s/ V! L( k. @" e* }: z8 w
- (setq first-11-rec (- elem-no 1)) @0 \! }/ i- X- a5 v" d
- (setq cur-11-rec elem-no)& K% {, X6 H+ N/ E, E8 X0 N
- (setq first-11-time 0)
! [' s' Y6 f1 k- R+ q: u+ E - ) {7 W6 U9 b& ^* L) {) b2 L( K: @
- )
/ S. q4 n5 r1 t( x - )
6 z6 ~4 I$ d w( w - )2 j2 n$ }2 e% P" v. g
- ), l7 [- X! d2 c% @2 n" i
- )9 U; q$ R$ y( M* [' d; Y, D
- )# M% l9 b6 _' c3 B3 l* B2 T+ m" m
- (setq temprec (nth cur-11-rec elist))
8 M) N( z8 F# `6 Z6 W$ }8 ?' _ - ;; If it's not a DXF "11" element then we've gone past the last9 q, i& X/ w+ U) N
- ;; "11" element. Go back to first "11" element. Reset counters.
1 @# g% q: I0 W; k$ \1 ]& j - (if (= (car temprec) 11)
9 E. {/ s: M2 d8 C, K* v - (setq data-pt (cdr temprec))
8 k' O* ?7 j' d v9 g& Z4 N - (progn ;; else
+ B3 Y3 S% s$ v! n+ X3 I$ v - (setq data-pt (cdr (nth first-11-rec elist))); e4 H k6 H3 P5 y: d( M' Z
- (setq cur-11-rec first-11-rec)
* z; L( R' f0 i4 n - (setq data-pt-indicator 0)
/ ^0 W9 t, k( J4 G - )( \' R# f" b* i b+ X% H5 E
- )
1 n' ^7 a8 M8 N+ P, e - ;; Display data point and ctr. Increment counters.& W8 ?/ z. N8 M- W
- (set_tile "dxtext" (rtos (setq x1 (car data-pt))))
5 I( j5 B7 o4 p0 r - (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))5 b- {& k6 E3 b5 Y" ^
- (set_tile "dztext" (rtos (setq z1 (caddr data-pt)))) Y$ ^/ k9 u( Z3 Z. F
- (setq data-pt-indicator (+ 1 data-pt-indicator))- D; |: V/ i: \! p. R) Z/ j M
- (set_tile "data_ctr" (itoa data-pt-indicator)): d r( d5 Z) h
- (setq cur-11-rec (+ 1 cur-11-rec)): k7 A, h* U; V. u, E
- )# O+ j0 N9 ~* G) q
- ;;
/ I, e& ^6 W; D4 `4 ] - ;; Modify SPLINE+ Q. [7 x7 K4 M ^
- ;;& p6 \0 x$ w/ g2 M2 c/ i r0 F' j$ f
- (defun modify_spline ()
& s7 P1 \/ @; D8 r. M# j - (modify_prop_geom)+ t7 R* U( C b: V( R" }: Z
- (entmod elist)
; `% {4 z9 G" r - )
# W, m/ k0 v. c' t+ Q
$ A) F4 h/ Y$ N6 Q$ ^- (defun ddspline ()
( {, E# k9 n0 D5 x - (if (not (new_dialog "ddspline" dcl_id)) (exit))$ R( ]4 u. O+ x3 |' Z& X$ Q3 a
- (set_tile_props)7 w; q) s/ x3 z8 @" k
- (set_tile_handle)
* T# @% F' q2 `, `( ~9 }. ^. J - (set_tile_spline_props); }& C" r( l; i7 H
- ;; Display first control point
) K/ O+ s0 Q8 f) S7 O! k - (set_tile_cntl_pt)) Z! z( O' e0 S
- ;; Display first data point
3 P. }. w6 E$ Y. H/ t$ y: J - (set_tile_data_pt)/ D$ }7 u u i- n
- " `' b+ J4 N) \5 Z8 M2 Z
- ;; Initialize flags to indicate first time through the dialog.9 I0 l; D! c0 s# n
- ;; For control points and user data points the "next" buttons+ S% J. J/ B! o, o- P
- ;; in the dialog call the appropriate functions." `3 h/ E4 ?3 r" w9 m2 C
- (setq first-10-time 1); J! Z: [( k! B+ o# P
- (setq first-11-time 1)' i, z. S& F6 I( ~4 ?
- ;; initialize control point number counter; U, G! m# X$ N, o6 D, r0 s* c
- (setq cntl-pt-indicator 1)
) c* M9 k% N- _; t - (setq data-pt-indicator 1)
0 f2 I3 y9 I5 w7 s# [3 i - (set_tile "cntl_ctr" (itoa cntl-pt-indicator))% A! \# s3 _9 l$ W5 @
- (set_tile "data_ctr" (itoa data-pt-indicator))" k+ g+ f$ V2 P, p# Q A( ^7 {
- (set_action_tiles)$ w& B9 \4 f& m
- (setq dialog-state (start_dialog))
( A/ |$ K! Q3 u, }8 A/ O
! p9 A7 j& i# W& E3 ~- (if (= dialog-state 0)- E- u+ y" Z9 i
- (reset)3 [$ l2 V! T# F1 H! }2 g) g2 o+ P6 K
- )
2 V- Z# ?* |. o2 L- g - (if (= dialog-state 1)/ J/ O9 x2 h: r9 ?2 ]5 I, i
- (modify_spline)- W5 P4 e* K3 w! j0 _- g: z0 F+ D
- )# |( q [6 y1 k: W* W+ w$ ~
- )
7 q% G( ~: g6 x5 I0 `, H Y$ B - 7 ?/ u8 n* @, f' g
- ;;7 j( A8 s# {+ M3 g8 P9 m
- ;; Modify DIMENSION+ ?+ M2 R+ U u' o9 R2 Q5 T5 y
- ;;+ z% y. D, _" B0 t: C
- (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl$ e7 t/ B" u! ~* i" m
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist* q2 C O# w0 ~! x
- dimtype dimsvcurset)
* w2 K5 [6 \3 `) [ - (setq dimtype "DDIMEN"
1 y1 K F, |8 _/ d9 P - dimsvcurset (ddimen_dimsty_restore)( f3 M+ B0 a1 y. V
- )
" n/ L+ }- G4 j4 I( [2 K x3 d - (if (not (new_dialog "ddimen" dcl_id)) (exit)); V/ ~/ D0 r7 {% o& ~+ y
- (set_tile_props)$ U U/ A- W( W# g+ r0 ^
- (set_dimen_props)
, s7 p3 E. F8 { \" F+ U6 ]1 X- n - (setq dimtext (cdr (assoc 1 elist)))% h2 e' ^7 U c$ X
- (set_tile "t_string" (if (= "" dimtext) "<>" dimtext))5 l4 d3 K# a, h$ K* W
- (set_tile_handle)
* Y/ ~) X7 Y. X3 e- @ - ;; Define action for tiles
# m t" G4 F Y7 ^/ H/ b; y2 ^( P - (set_action_tiles)5 h ^/ y/ {# [8 A
- & q- C4 R: U2 o* g) @& F
- ;; Set initial focus to text edit box.
7 G# Q; t! a7 I7 v7 F- D* S6 Z - (mode_tile "t_string" 2), v6 i( r9 |& y
' _+ |3 O3 _& \# h! s& A7 M- (setq dialog-state (start_dialog))
% Y- h) d2 S% r - (if (= dialog-state 0)
/ x) \5 v# B+ P4 M# ] - (if (= ddimmt 1)
# _! L! a0 j3 c' [& i0 f* J4 D - (reset)& _8 T+ |; W: P
- )
. e! L( i) D; a. ]& v. u6 i- \ - )3 i* S/ d& v( l1 b0 n
- (if (= dialog-state 1)
$ B; e3 Y) l) q6 k- C" j r - (progn
* ~% ?( P) h7 n- a- l - (if (/= dimsty stname)1 |0 T8 _: @3 q% S; `7 H( Y$ O ]+ G
- (progn/ O1 l1 \" K; H# Z5 O- v! S1 Q* O
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
6 m3 \. f+ p5 o6 t - ; doesn't have it.
1 z% @) u6 b8 e - (if (null (assoc 3 elist))9 }! g5 m% j+ J7 v! Z2 y) d% P
- (setq elist (append elist (list (cons 3 dimsty))))
4 l( h; p. N5 r2 E8 o4 d - ; else just replace it.+ j" I* Y' b8 t- F0 X
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist)), Q: ^, B# x7 `' k3 r
- )
. l; _# R& {$ ]4 w" \. u; } - ; refresh sv_dvlist with new dimstyle.! \' u! W; Z7 m/ l8 K
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
( d) H( L- w, e! Z# x - )( `% G! ~9 E- \
- )8 G$ I" ^* E/ O8 V& l
- (if (not (null dimlist)) ; attempted to change dimvars: E: q6 l) S0 |/ v( \ b7 k
- (ddimen_complist sv_dvlist dimlist dimtbl)
7 J- y* {3 y' N4 j) F: I - ). f6 @( I) s# Z: s$ v, H. J
- ; Modify dimension text5 f0 i& I% j5 ?2 L9 H2 A" e
- (if (/= dimtext text); i) V, Z z& O; N# |$ T& a7 @2 F
- (progn1 i5 d; @: S' C+ q# V% @
- (setq dimtext (if (= text "<>") "" text))
+ F* W4 e' @& q$ w! H6 k - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))( H' P, C M4 G( Z& I3 o
- )8 ^; x0 a1 `& X; _
- ): f% d. N4 H: Z+ ], V
- (modify_properties). L0 a! Q( F, v6 C
- (entmod elist)6 f) B0 O4 a2 G6 p4 i/ a7 `
- )' g" p. M9 r8 l1 y Z7 \, c
- ): T( f" h, ^* u5 ]5 g* s5 u5 L
- (if (= dialog-state 4)
$ [' c; x! j0 w; [- s1 e - (progn
! ]2 x6 \7 m* O( h& h$ X! q/ R - (setq ddimmt 1)
5 l6 P9 L$ ~( X" m" e - (if (/= dimsty stname)
; ^' B' m. P# r' W - (progn! w6 z4 s" _0 V: C0 u' Q
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case) u" p- q& J0 q) p
- ; doesn't have it.6 @8 {+ ?8 a% f9 P7 Z/ j; ]3 R
- (if (null (assoc 3 elist))
8 w0 _& e& ~! S* i, c( m1 }) D' `, i - (setq elist (append elist (list (cons 3 dimsty))))
2 [( L* J7 K2 u% z/ |4 N - ; else just replace it.$ s6 Y A) m" \6 `2 F% v
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))5 f! n9 y) X# g5 w
- )
2 o4 j0 w0 }8 T - ; refresh sv_dvlist with new dimstyle.
! |' K# Z. F2 W$ E3 c" M - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
" h+ D7 e5 i4 p# \; n - )
- \! e* }+ ] ] - )) W2 ]* `3 b/ E1 M+ x' F& ~7 l$ G: |
- (if (not (null dimlist)) ; attempted to change dimvars( d7 n: ?1 \' N" f
- (ddimen_complist sv_dvlist dimlist dimtbl)/ T/ U. b. W( b* P7 u% i
- )# x: b2 S8 v6 L8 y1 |
- ; Modify dimension text
, x2 ]4 d& P6 P E0 Q6 T - (if (/= dimtext text)
- u& r1 B' Y B. `/ z* M$ c) n - (progn9 B# F% r7 T8 b
- (setq dimtext (if (= text "<>") "" text))9 s g. I2 D, R$ R* y
- (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))
& p; @$ i$ \2 z$ L9 \* I( `. i$ U - )3 X/ ?1 F4 z: M& m/ N, q" Q
- )! G4 X7 z$ ?8 v' r l$ C
- (modify_properties)
' {+ z4 b/ C u9 e) Q6 | ^9 _ - (entmod elist); _' F7 _5 w) n- ~
- (safe_ddedit ename)& K( n* D+ i7 X( _: |
- (setq elist (entget ename))
, G$ X0 q ]7 {: C M - (ddimen), o9 g% c/ }, i
- )1 B! K' }2 b. }3 I4 n, ]# I; w$ T
- )& F b% d4 u. L
- (ddimen_setvars dimsvcurset) ; Prepare to exit! D& D! l# E' W! d# l0 \: [
- ) F( h9 k. G% Q( R {$ [
- ( T3 M& C8 `/ J: G0 }, f
- ;;
1 ]: {2 I4 M5 U; E! F - ;; Modify TOLERANCE0 H, P# O n! ]& ?4 L Y0 P6 B9 z& a
- ;;* T7 a3 H) w" n; u7 a( p
- (defun ddtolerance (/ a stname n dimtbl1 x. Q( S" U P8 F. R( A3 j$ p+ Q
- dimsty dimlist dimovr sv_dvlist stlist dimtype
$ l7 d1 `$ v h0 w - dimsvcurset)
! @$ Z+ q' w0 @. e/ U+ Y - (setq dimtype "DDTOLERANCE"
5 j8 s6 v0 x+ l' S9 o* t - dimsvcurset (ddimen_dimsty_restore)
% ?- `. G3 K- q$ U- Y - )
% T% R; N2 s) H1 } - (if (not (new_dialog "ddtolerance" dcl_id)) (exit))
- z! q0 p" i) a5 { - (set_tile_props)9 _+ U0 Y: D' u7 s8 _3 |$ ~
- (set_dimen_props)
7 U- M5 w* C3 y' D3 V* D6 L - (set_tile_handle) J" h% N4 e$ T6 a
- (set_action_tiles)
6 }3 A. R7 h# Z, m4 e* ? - (setq dialog-state (start_dialog))0 K# X. e) Z; V) } C. I- ]
- (if (= dialog-state 0)
5 G& Q5 A) F* p" Y; f - (if (= ddimmt 1)
6 a" x5 T/ H" B* C6 `7 j+ t - (reset)
7 ?) t+ V& M3 ? - )$ Y, o$ n4 E% l5 ~
- )# L1 ?! @: ^# T$ T% F" f0 x
- (if (= dialog-state 1)
" C; J$ X+ N3 b, A - (progn
( B: `9 r2 r- j - (if (/= dimsty stname)2 L' a, g2 H7 i; y; R( Q2 R
- (progn6 S5 q8 B1 o! S' v) k$ [
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case& d. C# D l. g' q7 r5 d
- ; doesn't have it.
( t: j- J) h6 H6 E - (if (null (assoc 3 elist))
. V% s' `* B4 \7 |" F - (setq elist (append elist (list (cons 3 dimsty))))8 x1 f, x! i9 g$ k
- ; else just replace it.
& a3 r0 B+ `' v( K! _! p J - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
% P$ B1 U( U) X$ N+ w - )
* \1 l3 p! M9 n2 e - ; refresh sv_dvlist with new dimstyle.7 M$ e. S) ^- a
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
' k n u) @ r# C - )
! q4 D$ \$ w7 i1 z5 I - )
: [: Q* F3 O$ w- | - (if (not (null dimlist)) ; attempted to change dimvars
4 V2 U, F0 `) l4 `( a - (ddimen_complist sv_dvlist dimlist dimtbl)" P7 f7 G6 g8 W) K- x
- ): O7 _2 | d. O- h T6 L
- (modify_prop_geom)- k; E. p# K8 F' C3 L. g- W- ~$ w) ~
- (entmod elist)
: a* D, I& N3 L# R0 h+ V - ); L; l+ X4 J% l
- )( X" b) s) [2 m$ C! V4 p3 C; J
- (if (= dialog-state 4)/ N1 W5 Q, [& `4 j. i
- (progn' j E) W' C& C, u9 h8 P
- (setq ddimmt 1)
; L6 j$ ]$ q+ c - (if (/= dimsty stname)" j- Y( F* z2 Z, a$ j
- (progn
8 @" z- z- Z E/ W$ \ - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case9 l, g- b; A" H# S( r1 M
- ; doesn't have it., P# T+ C4 V4 B# ~1 m7 f
- (if (null (assoc 3 elist))5 ~% m! @8 Y# V# ^6 j
- (setq elist (append elist (list (cons 3 dimsty))))
7 N) c0 ]$ I2 e% l9 y& ^ - ; else just replace it.
( g% v* @# a$ k- ]! {$ A - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
& `+ E) |' `8 u7 G2 L; r - )
$ o5 x6 u/ D& u& H- W0 F - ; refresh sv_dvlist with new dimstyle." S6 y2 \ w9 F+ n
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
' X E1 ]" r& A- @+ G - )
8 ^$ n1 [4 k8 a f. i- C5 h% o - )
0 B, e2 G; v7 a0 Q1 D7 k - (if (not (null dimlist)) ; attempted to change dimvars" @! S# {4 i" z$ [2 G
- (ddimen_complist sv_dvlist dimlist dimtbl)
) R$ C# J# z4 T* Z% }# N; H: _" a& a - )1 a9 X8 i B" O7 n9 K' A& x1 ^
- (modify_properties)
$ ^( z. Y! H* X5 g* Y9 G4 G( q - (entmod elist)
7 ?$ ^ i& Q, w& K - (safe_ddedit ename)
. Y" i! [- v' T" ]0 h - (setq elist (entget ename))
0 l' u) A/ }' c% g# M$ x5 t - (ddtolerance)9 ^' t5 F! F7 ^3 d0 m
- )$ r+ G+ l6 m) U! I
- )
: R; Z q, u( ^6 Q, \ - (ddimen_setvars dimsvcurset) ; Prepare to exit7 |9 \4 m1 D& |/ K" H3 |
- )9 |& W7 p5 ?) U% p
- $ w0 q3 F: ]7 H8 e3 X% Z
- ;;! h: S7 N5 P- f t0 b
- ;; ddimen_dlg - jump to ADS ddim module
2 O* _3 u8 ^& `) f! F - ;;
; r& t0 z3 i; t' L' K+ e3 g
+ j1 U. n, q, V9 R5 b- \( |- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)+ G* k, o- K7 g: g" t
5 [# ^9 p( g( c4 M3 @0 O! I- ; Jump to DDIM with overrides if any.
U/ U: w0 t3 j2 P9 J @8 |3 I+ v; h - (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry
$ I& g& t4 d. {7 n' f - ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format0 s7 X* Z4 Y% s& u8 z1 U
- ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation
3 i/ L- b6 r [( X - )
! _2 T5 B6 r' s6 a" D - )8 ]: a) {7 c6 n3 C1 o
- 1 J2 I7 m* c; p$ G" a. y
- ;;
- e' G7 D/ D# t2 ~3 D! t% u/ h - ;; Dimension variables updated are stored as overrides.
- ~% N7 p. Q" U. s5 I - ;;7 R% g0 R! `# S5 z
4 ?! D- D1 B* c- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar
: I: F, J+ l# X/ L$ F F1 O! q8 r - dv dime commandIssued)
- B* t5 n; J0 U6 ?0 @ - 2 B4 ]) {' I3 ]" b+ D9 d
- ; Here we skip the following first three items:: r* s( v9 q2 ~ ~/ K* m
- ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0). t6 ~4 }: `: U8 v
- ;
, O5 [% `6 j0 F, r: E - ; The list comparison immediately begins with dimvar.
: x) r4 Z: B9 @# g8 S - ;2 q& f# j0 p" u* w
- ; dimolist - original states of dimvars
7 Y( d8 y6 {" C - ; dimnlist - new dimvar list which is of the resbuf's
/ ~! _- e$ s) i# l9 u$ V( r3 C - ; dime - entity name for the dimension% ?' x0 ~% ^- D2 f7 R
- ; odvar - value of dimvar for the dimolist
: w! e+ Q0 e5 d% z m# { - ; ndvar - value of dimvar for the dimnlist# o- g% P: G' P4 Q/ ]- t
- % }% ~. F) {4 B( c" r
- (setq i 3
$ x" ?2 z% F0 Z8 v7 x - dime (cdr (assoc -1 elist))2 Z# d. U* ]. X, k5 i8 p. m
- )
8 X" K1 r6 U/ } - (while (setq odvar (cdr (nth i dimolist)))2 o7 x1 S& l% y9 p+ O' r# L9 W+ U- Y
- (progn
8 v1 k) n, `) s' F - (setq ndvar (cdr (nth i dimnlist))): c/ I) B \; g8 Q- J6 s' _
- (setq dv (nth i dimtbl))6 C6 \! x4 z" Q- q( \6 k# _* X
- (if (eq dv "dimtxsty")
% y8 D; V0 ~) |: u - (setq odvar (cdr (assoc 2 (entget odvar)))
3 U: n2 Q, E! X8 {- a6 _, C# _; ~ - ndvar (cdr (assoc 2 (entget ndvar)))0 N3 k( w/ Z3 P) b( Y! _
- )
+ _9 G7 |5 F8 O1 N - )9 Z b N7 A; S* j* I
- 0 ^( F8 I0 ~$ B% h( }! o0 r* {
- ;
( a& ]; T9 ]8 n0 v' Q - ; In order for DIMOVERRRIDE to operate correctly with string, F- _; _" J4 h, l: |* z, x
- ; based dimvars, we must pass "." versus NULL strings.$ ]' B4 X& i6 y% b) \2 w
- ; In this case ndvar is the new dimvar value the user wishes( { r' F ^. M2 L- [
- ; to update on selected dimensions.
0 c/ `* S2 l2 T, [" u( z* M5 g - ;
: j* i7 F h2 h# c' w0 g - (if (/= ndvar odvar)
7 j) c8 A2 v: d - (if (= 'STR (type ndvar))
( U: t3 a" s4 f6 j! ~ - (if (= ndvar "")7 Q$ Z" _. }/ I }8 i9 V
- (setq ndvar "."))))( z# ^ i T% l3 b5 u; u" e
- / q% J; V+ J3 a* A
- (if (/= ndvar odvar)1 \: z4 |5 O5 p# m2 ?8 c5 y
- (progn2 ]% h# w% b+ t/ P4 U$ g
- (setq dv (strcat "_" dv)), R, u _% g; d0 C* M0 P5 B
- ;3 S) L2 |% c" q. V0 B7 _
- ; Start the dimoverride command
, R7 ^, H, W2 C7 K% W, X% A1 ~ - ;
4 D& u, l, ]6 W" P# r; Q9 b - (if (not commandIssued)* i6 _. Z6 s* t Q
- (progn
3 C3 A' m$ k2 z, w$ t& N) b - (command "_.dimoverride")
9 X9 P& P, c6 o- v# f - (setq commandIssued "T")3 b& y w' j4 m
- )* }6 V3 W3 k: I. g, Q2 t) S7 T
- )# G+ l7 |) H/ B! g% Q
- ;
+ o) v- i' u& v. k" ~ - ; Issue dim overrides$ H, g, U0 g6 B- s, k* O$ q; o
- ;
# _1 a! b# L/ i1 b - (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre"))3 j& S' f" i" j- Y6 s
- (or (= ndvar 0) (= ndvar 256))
% s+ U8 V. r7 r- b1 A3 S - )
1 F/ g5 s& D. M, M - (progn8 ]3 v3 z5 U0 x c3 F! u3 W: W0 c' Q8 k, v
- (if (= 0 ndvar) (command dv "BYBLOCK"))6 {9 n; W/ o3 m( n
- (if (= 256 ndvar) (command dv "BYLAYER"))
^7 q" {1 ?( ?) u3 ]9 o - )
2 c% G8 ? b7 z1 J q - (command dv ndvar)! j- E0 H6 x, {' W' e/ ?
- )) [* Z! m- y6 n
- )* t$ i2 x# F& f5 W* H9 V
- )+ l! I$ d h2 t0 v" A; f) e: m
- (setq i (1+ i))
9 _, ]7 ` T* ]. B2 d2 f. c" k - )4 t) x" h0 {% e
- )2 R8 ?. i0 c8 s' q$ ?" F7 v' U
- ;% }& A: H: V0 C+ c6 c
- ; Select Entity and terminate command/ V; z0 f3 S% V9 i7 J4 h" }; B
- ;
, H4 K4 q! H X8 X - (if commandIssued
% F0 \9 f" \" H' ] - (command "" dime "")
" ~( E* L, h8 u$ Q; U4 l& _: O( I - )1 G* ?# `( d: |
- )$ Z! i; _- ~0 y
- 2 V+ m9 h2 z4 D' K
- ;;' ~7 W4 m$ j; l
- ;; Get style name currently selected style name.
( u) Y" j( z. |8 x& d; f - ;;* r& a, V. P) s: T5 g
5 R, Q2 }8 G% Q; j8 U- (defun ddimen_style (/ dimsty)* r5 `5 `3 z8 r9 j0 ?
- (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)/ m! B0 V, R5 Z& L i7 r
- dimlist (ddimen_getdimvars dimsty)! p! q9 {4 q! A- L( |8 b
- )0 J; j' z' r% S7 E2 U
- dimsty$ L- t1 j3 x; O: J( P# Z1 I: w3 u/ a
- )
3 h! r4 U9 ~# f) S- m; X - m, y$ N6 S) R) y- d! E
- ;;
! K, Q1 d ?6 D - ;; Set dimvars
9 |! B/ S( y0 ?9 l - ;;1 G+ l8 R0 i/ V. V' ^4 o
- (defun ddimen_setvars (dimsvcurset / dv i)
8 I: M h' y* n - (setq dv (cdr (nth 1 dimsvcurset)))
& N( p; u2 n* G' E& A" j/ |0 Z6 \ - (command "_.dimstyle" "" dv)
) H; _( E& O3 _1 q' H - (setq i 3)
6 V& F% R8 k7 F4 w5 G* u) e - (while (setq dv (nth i dimsvcurset))
r! h6 N/ k. y- [ - (progn
% E- {8 z& h8 p0 W5 K0 _, l - (setvar (car dv) (cdr dv))$ l8 ^6 ?1 d( h* Y0 R
- (setq i (1+ i))
0 L" P6 Y6 b; U8 U( [- g" y, w - ): s# q5 r6 Y6 [# q
- )/ Y# `! \: y$ L0 @8 P3 _* c
- )
0 ^, Z a6 m' o - ;;
2 n1 W- A" h }2 p - ;; End-of-dimension
5 `( Z& U3 P) i& T; y. W& ^+ L' }! t8 H - ;; ==================
% P. `: k+ l& \" ?0 u
- {- c% ?: B1 c% Y' o( }- ;;$ n' d9 r5 r( h. G O3 y
- ;; Sub-dialogues for properties. Common to all object dialogues A' m7 p2 `, z0 s
- ;;- j& _* _8 y; c* ^: s6 @& E
- ;; This function pops a dialogue box consisting of a list box,image tile, and6 k3 B7 N$ A3 @2 G9 A+ ^
- ;; edit box to allow the user to select or type a color number. It returns
6 L( o4 W) v2 `, i$ ?$ | - ;; the color number selected.
1 {- Z5 f4 T; d3 `# e+ F! p# i# g - (defun getcolor (/ old-idx colorno cname lay_clr). d" y0 L1 \ @) Q4 q3 B: n9 S
- (if (= (get_tile "error") "")
" i# w5 }9 b& K4 g0 `* m - (progn
S% l9 @( c: ]4 U, P' H - ;; Get the color associated with this object's layer, for use1 I) N4 o7 O- {% ^* Q
- ;; in the color swatch if the user selects color BYLAYER.6 s9 ?$ R3 }7 j, r7 q7 b8 q
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))2 S& a* p3 W6 u$ `2 r" ~ n
- (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))5 P& b7 Z; Y. w$ R6 S6 v3 B4 Q( W
- (progn& B2 ~8 O5 D. o \
- (setq ecolor temp_color)
6 r$ K' b9 I3 z7 x; R - (setcolor)6 }; q( N# F1 g \$ G
- )
1 N7 Q8 t1 e( I2 E. Z - (setq testcolor temp_color)
+ ^8 {" S3 O2 q L { - )
; c' {3 f: t$ k - )
) ~3 Y1 ?7 |6 b. y; f$ Q - )
6 b; F' ~5 M) s; A$ Q6 n: p( m7 S - ecolor9 H2 H# g2 ~0 N, l: ]
- )
( W2 }9 u, a& ]$ Z9 p% p& ^/ D - ;;
7 n/ _7 U" b& o* g( o) g - ;; Function to set the color tiles.( }5 T1 ^5 h5 K/ h) N
- (defun setcolor()
" X" j6 g. c- z/ @. u4 H - (cond
9 j+ E8 r2 ?; @ - ((= 0 ecolor)
9 `) z+ I/ d. @9 l b0 `! ^( J, @ - (set_tile "t_color" "BYBLOCK")
8 E p+ t# }: j7 ~+ \4 [0 x - (col_tile "show_image" 7 nil) ; show BYBLOCK as white
0 G/ J0 L6 l7 |+ |8 s7 b - ), j6 n: y4 \- p' H8 Y
- ((= 1 ecolor)
( ~- ~8 y8 N' r* q: M0 ^ - (set_tile "t_color" "1 red")
; K* L. A* i- F - (col_tile "show_image" 1 nil)
' _- X( Q+ B7 `! R% u5 ] - )) j) F& ^$ J4 V' }, T$ i; |' M: p( J
- ((= 2 ecolor): v# i1 S5 N2 z9 m6 B
- (set_tile "t_color" "2 yellow")
' m# `3 ^; t7 D% t7 L; {. {7 h - (col_tile "show_image" 2 nil)
) I! @7 m1 h2 {2 n - )4 U! e2 D1 @2 l7 D- m
- ((= 3 ecolor)1 A$ F; _* B8 d4 h- s4 @& Z
- (set_tile "t_color" "3 green")- q" M: ~( d( b/ v7 I. h5 B3 E
- (col_tile "show_image" 3 nil)/ W3 o$ R" l( }6 r
- ) ^& X- M4 t* V& h- |* W* `& ^$ t. L
- ((= 4 ecolor)( @; K/ t H4 D* I% C- a- Z! i
- (set_tile "t_color" "4 cyan")9 c5 S' ^" C7 Z" p; W: I% \0 d+ \
- (col_tile "show_image" 4 nil)* t7 K+ ^3 h4 g9 z3 K
- )! E/ ~9 m$ T4 Y1 H. k0 x& _6 \
- ((= 5 ecolor)
4 O) v% n4 V% b9 W5 ]& Q - (set_tile "t_color" "5 blue")
7 b# ^1 H- k3 z- o n; p - (col_tile "show_image" 5 nil), [6 ^. U+ d: k2 f! b* v# Y5 j
- )
e" {6 t% F% O! H8 k9 r. _/ _ - ((= 6 ecolor)9 {9 Z5 _' X* H; D: K' s. \# f2 X
- (set_tile "t_color" "6 magenta")' D( n4 ^( C B/ O
- (col_tile "show_image" 6 nil). D5 \# Z) U) D, c
- )1 `* x8 \* o- a( P) k
- ((= 7 ecolor), s2 p. Y& [7 G% G( T$ B
- (set_tile "t_color" "7 white")
! _, B5 \1 w4 l; }) C - (col_tile "show_image" 7 nil)
4 v! r" I1 R9 p& |/ } - )1 a% C6 x, ^$ a7 ~& N- X
- ((= 256 ecolor)
4 [6 m. g7 u5 L, t' ` - (set_tile "t_color" "BYLAYER")" C V% T8 J g* s% D: n+ T% v
- (col_tile "show_image" (bylayer_col) nil)
& o3 \0 q. }. o" X+ c' U - )
( _# \; S% l( P$ n% {% p, W - (T; _1 f8 c0 e& t/ h9 p
- (set_tile "t_color" (itoa ecolor))3 `4 H! {4 P# a' |6 G# i# _6 E
- (col_tile "show_image" ecolor nil)
1 t0 V; @( Q1 v( u+ O - )) Z. }7 D+ E# f0 U: Q2 j J& U2 H
- )
' s* b/ F2 p0 p0 z# F: l- A - )
, Z; G- y. o4 k p3 t3 K - ;;2 y2 M/ u7 H; T7 E# w% p0 U% q
- ;; This function pops a dialogue box consisting of a list box, image tile, and
, N" p: g( X9 o- d - ;; edit box to allow the user to select or type a linetype. It returns the
/ S! x( w O; p2 p" Y# n8 P - ;; linetype selected.
, R9 @7 L; L) h' O1 P - ;;
( {& p- O5 t1 D9 i - (defun getltype (/ old-idx ltname)
" R7 R p( T# y @9 R) v5 T' \ - (if (not lt-idx)
# _ f' J- b% e - (progn
$ M; P8 `4 S. y/ O- t( \, { - (make_lt_lists) ; linetype lists - ltnmlst, mdashlist, }9 y. V- \7 A8 Q3 Q: ]
- (cond
+ x* m( j, T$ A& [! _7 [ - ((= eltype "BYLAYER")8 Q$ L" {; V6 Y
- (setq lt-idx (getindex "BYLAYER" ltnmlst)))
, L) o/ i$ z6 q/ \ a, m5 S - ((= eltype "BYBLOCK")9 o/ P- V j" ^8 X1 ~4 d4 F
- (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
! a8 U0 c7 V) C6 } - (T (setq lt-idx (getindex eltype ltnmlst)))
5 D6 q) C" X- m6 Q, x - )
. l6 c3 T# e! O) }! N3 E& I: ` - )( X$ M1 V% b+ l% ^
- )
' x, S& B. {% G7 ^6 {
/ d1 ~, ]6 A' ?7 [- J$ I& f- (if (= (get_tile "error") "")
2 u" h+ l( v# h; x - (progn
8 |- O9 A& M4 V: n+ N - (if (not (new_dialog "setltype" dcl_id)) (exit))) ~$ U' H5 }- ?/ Z X8 U6 ?1 w
- (start_list "list_lt")6 T7 ] R5 C! _# A1 J. F6 W9 i; C/ A
- (mapcar 'add_list ltnmlst) ; initialize list box+ @& i/ h+ ~2 M/ A+ i; f0 J: ]" m
- (end_list)
$ a( r) b Q( U L, N# K3 S8 z - (setq old-idx lt-idx)3 a# Y* [( N" S0 ]7 K$ m4 `. }; g+ H
- (ltlist_act (itoa lt-idx))& P: s# x6 X7 x/ B
- & K& z; G- k2 l" r- V- P* N# K7 ]+ z
- (action_tile "list_lt" "(ltlist_act $value)")
5 ?1 W5 K* z" ?* h3 G& a$ S - (action_tile "edit_lt" "(ltedit_act $value)")4 T* q2 k3 S8 o' J( z
- (action_tile "accept" "(test_ok)")
/ C, B# a' y' Z3 y5 a - (action_tile "cancel" "(reset_lt)")$ M/ F! E, L4 F( w2 G: F) k
- , K' p' L5 d8 X
- (if (= (start_dialog) 1) ; User pressed OK
A2 g3 ~' g0 D0 g - (cond8 k( Y+ R! ]2 }
- ((= lt-idx 0)
+ M) w/ Y1 x7 g/ e/ { - (set_tile "t_ltype" (bylayer_lt))
3 }: T) `0 x- {+ m' D - "BYLAYER"
5 R" j, [. q, Q# ]# t- I5 ]4 ` - )7 T5 v, z( b" v! ~8 d$ R+ |
- ((= lt-idx 1)$ q- E; p2 U" p' Z) ]
- (set_tile "t_ltype" "BYBLOCK")
( a% X0 ~8 T9 O3 j- G @+ c - "BYBLOCK"
- o. ^* D7 M; c5 r# `7 b# N6 ^, _ - )
, H* }' ~% b1 l/ S* \' Q - (T (set_tile "t_ltype" ltname) ltname)
& k# [% O! U& e4 ~: p - )" C+ d k& D# z O$ d0 P
- eltype0 b# l2 Q y3 g" D2 X1 L
- )# n; ^* Q- |+ t, S" `$ `
- )- A# g0 E `! z( |( \$ q# l0 _
- eltype
- @0 [0 D! V: H3 O4 k5 I! V& U - )/ ^0 U' F: W9 W m) j5 ?" `7 ^
- )) ^4 E* P) f6 p: L
- ;;
; o4 t6 X$ v9 w/ b6 {# Z$ Y) ^$ ` - ;; Edit box entries end up here T4 V! m% @9 P8 m% y! _( @
- (defun ltedit_act (ltvalue)
, a* X2 `0 F( `- P: l1 c - (setq ltvalue (xstrcase ltvalue))) i( g% @% n. r! \' K' u
- (if (or (= ltvalue "BYLAYER")
7 s3 j. M/ J" ~5 G) D% R* M5 S+ @ - (= ltvalue "BY LAYER"))
3 z) @. T- V* Y; ~. y - (setq ltvalue "BYLAYER")* w3 R8 ^5 ^& U+ {$ V$ U
- )
' z% u# i/ _6 K. T - (if (or (= ltvalue "BYBLOCK")
8 |2 k) l J- _1 H - (= ltvalue "BY BLOCK"))
- t% C n* }0 z3 {2 E - (setq ltvalue "BYBLOCK")
# f$ y/ j$ V. s# x7 r3 h% S - ). h2 \: U2 U) W. \
- (if (setq lt-idx (getindex ltvalue ltnmlst))$ j. ]9 j$ F+ h. ?
- (progn/ D- x9 i. p1 K2 q I4 _2 U1 s
- (set_tile "error" "")
/ D9 D" M# Z+ ^" r- X* r% G - (ltlist_act (itoa lt-idx))/ Z& q& [- _6 s" M0 ~. I1 E
- )
D( r: x% v8 ]: w/ N - (progn( c- f, D) K7 i
- (set_tile "error" "Invalid linetype.")! Y. Y5 `* m) |' ]# `
- (setq lt-idx old-idx)
. B4 k. g6 n6 X - ;; (mode_tile "edit_lt" 2)5 ~2 l/ E$ h8 q5 }* x9 c+ |
- ;; (mode_tile "edit_lt" 3)- N) B. |6 ~* l) l, Y
- )
) h* N; L: b0 e2 P( {5 ?, W9 Y - )
8 P( X4 t+ @8 D7 e - )6 l: s( L1 X6 c8 ]# C0 \
- ;;
7 w6 j7 _. M+ \: g9 p! E3 S j - ;; List selections end up here. Update the list box, edit box, and color4 G+ B! T2 K* r6 ]7 V& l
- ;; tile.0 T' F8 f7 C( \$ [7 R% N2 h
- ;;$ Q& J- d' z$ O8 y' B) z
- (defun ltlist_act (index / dashdata)" m0 Q& l6 t& q! Y
- (set_tile "error" "")' a' @3 B6 Y1 D; z3 i/ Y# _/ k! k
- (setq lt-idx (atoi index))
. [1 w. C0 j& o7 \ - (setq ltname (nth lt-idx ltnmlst))3 F0 e s4 R8 P' ]4 S. G( v
- (setq dashdata (nth lt-idx mdashlist))+ k9 a! x" A9 z1 z$ i
- (col_tile "show_image" 0 dashdata): _1 s" j4 o4 Z. e' P
- (set_tile "list_lt" (itoa lt-idx))
^$ n( a# ~# E8 W' i% ] - (set_tile "edit_lt" ltname)0 _2 C& s1 X7 D, m9 d
- )' U+ M' [& D! L* w' C: v- |
- ;;
! i% \" k' r7 g; e+ q, ]+ y% Q - ;; Reset to original linetype when cancel it selected
( z3 Y; {4 Z* e: z- t - ;;7 c6 L' z* M- N: s$ H1 a
- (defun reset_lt ()
+ A+ c7 I7 H2 W3 [* _ - (setq lt-idx old-idx)7 T5 N, ^2 h# w
- (done_dialog 0)% c( y4 l2 o) ~3 A! g* P5 f
- )& b. @+ t" f. t/ [; m; H2 J+ d+ o0 v
- ;;
/ o6 c* r- l! p5 ~- Z6 b - ;; This function pops a dialogue box consisting of a list box,image tile, and- Z- [2 n" @, t$ J2 [# V% @. _5 M
- ;; edit box to allow the user to select or type a layer name. It returns the& w) J/ ?* m; c0 i; g% C
- ;; layer name selected. It also has a button to find the status (On, Off,; U B. ?) P# u" Y
- ;; Frozen, etc.) of any layer selected.
7 z+ f$ r1 @- S6 L - ;;# g p+ k- u3 F! E, H
- (defun getlayer (/ old-idx layname on off frozth linetype), \- T2 y/ S/ a6 H- g' [
- ;; Create layer list the first time the layer
. d/ a5 a1 W8 V- i" x - ;; dialogue is called.6 f6 L/ M! i5 Y" G) i% h
- (if (not lay-idx)
* H/ S, O9 W3 b. W9 |% r - (progn1 ?0 a* y4 E/ [
- (make_lay_lists)% q3 @" E A- L- x7 C
- (setq lay-idx (getindex elayer laynmlst))
8 V- b3 [" ~6 }- H& C& Y - )% a6 G6 ^1 d4 n9 K8 C) U7 U
- )- _& P# @; E5 n R
- , t( [- d9 B0 B5 \
- (if (= (get_tile "error") "")' x- G$ F# ^) m2 V
- (progn2 w. ]( X. F, @# B! s1 z
- (if (not (new_dialog "setlayer" dcl_id)) (exit))
( W3 Y1 K: X5 `/ Y& J7 R6 ?5 ] - (set_tile "cur_layer" (getvar "clayer"))1 \1 W, F. j9 S+ E G7 v2 l
- (start_list "list_lay")3 X4 Y4 c9 K) s. I% e: T( d; q
- (mapcar 'add_list laynmlst) ; initialize list box% [* J. r' z2 ^- ]0 H) m7 ~; G6 e
- (end_list)! L" s, y( r3 w ~; X( c- x& l
- (setq old-idx lay-idx)( B; W: Z5 g. y. m+ f; V
- (laylist_act (itoa lay-idx))
1 ^8 i+ X: X$ Q7 [$ k - (action_tile "list_lay" "(laylist_act $value)"). ^0 ^ b7 e4 E" z4 \
- (action_tile "edit_lay" "(layedit_act $value)"), A* v# m7 B/ V+ A# k7 [
- (action_tile "accept" "(test_ok)")
" g2 q) D4 g* T$ Y- G% m) @ - (action_tile "cancel" "(reset_lay)")6 s9 u. c3 ~& g+ Z
- (if (= (start_dialog) 1) ; User pressed OK
7 Q- z1 S& w$ F ~ - (progn! a# ?$ ~; Z0 o& d
- (set_tile "t_layer" layname). [; `$ z' }+ Z" v$ F
- (setq elayer layname)
% Q" o. ]9 G" a% e0 v - ;; If layer equals bylayer reset color tile
* F) K7 c$ o6 [* Z - (if (= ecolor 256)
' f) ?8 {$ y+ W* x0 Q/ J$ ~# Z) h0 c - (col_tile "show_image" (bylayer_col) nil)/ v/ A( Y! U+ t2 \
- )
8 K) E4 e+ [! |6 h \ - layname9 E. Y/ |" r" S; Z0 @
- )
* E* Y/ l! R( O3 I5 ^ - elayer
5 c# ~9 V6 s" x* v - )) R9 q i" c) E6 X- _3 ~
- )
; E+ C( x7 z; w$ n - elayer
3 o4 n! H$ a3 J$ r" s t( P1 ^ - )
3 |& a n( m4 y) T8 m. |/ a3 ?1 j - )/ Z8 b# F1 \3 T | u! k; G W5 ?
- ;;
2 H u2 W$ W: I9 G6 `; F - ;; Edit box selections end up here. Convert layer entry to upper case. If
% F7 ]: v" L5 D3 j+ G - ;; layer name is valid, clear error string, call (laylist_act) function.
) v q2 D0 C9 R7 c2 p; ~ - ;; Else print error message.
9 b2 V: f8 o7 [+ i( y5 b - ;;- Q$ }: G/ w4 g" |# [1 ^2 c% A
- (defun layedit_act (layvalue)
* Z' Y0 J# j7 `4 L& ?8 X* B0 E - (setq layvalue (xstrcase layvalue))' e0 ^9 ]9 o2 ^; j
- (if (setq lay-idx (getindex layvalue laynmlst))" j/ v/ f2 `- Z, `) F) l3 S
- (progn
$ C0 n) c3 `% ~* Z6 _9 Z9 y5 l - (set_tile "error" "")/ ^ E. k7 T6 l: @& m7 m3 s6 T
- (laylist_act (itoa lay-idx))5 `, O) P- b: q r& e, e) S
- )
( I, f$ ^# s- w) a2 S+ f - (progn
3 C. a h9 m0 e1 f( K4 J - (set_tile "error" "Invalid layer name.")! B. U7 z {* N+ q8 f1 r
- ;; (mode_tile "edit_lay" 2)% Z# r% U- J- K9 g* H' X" O
- ;; (mode_tile "edit_lay" 3)
0 f% J3 G! W$ F- p9 I/ d a" p - (setq lay-idx old-idx)+ @* `4 S( ^$ w6 R; E% x( ?8 v# Z/ D7 W* x
- )* r. u9 N' G$ e' t! l, O
- )+ j3 a$ f' z/ F9 p/ ~
- )3 x- M1 ^+ ]" M: i
- ;;
) }. P8 S6 G7 [ - ;; List entry selections end up here.
5 U$ N n& E5 U; p% |6 w5 d5 W - ;;
0 |& L( i; m0 e' h - (defun laylist_act (index / layinfo color dashdata) O7 S, V3 P4 j; v5 c/ R
- ;; Update the list box, edit box, and color tile.
/ G: I, X" o6 p: c1 m - (set_tile "error" "")
/ F5 u1 u, Z& c0 [: g2 b& o - (setq lay-idx (atoi index))9 L+ U, {2 @2 P1 a
- (setq layname (nth lay-idx laynmlst))
& [; p9 i g9 r: x - (setq layinfo (tblsearch "layer" layname))
' u" N: b" @( N - (setq color (cdr (assoc 62 layinfo)))
# v3 A9 ]8 q7 _$ @: N* h - (setq color (abs color))
% @: F+ v& d* y" r+ _- b - (setq colname (colorname color))
* B6 U$ c8 f) N0 M, | - (set_tile "list_lay" (itoa lay-idx))
( n+ \" k! g& i+ V - (set_tile "edit_lay" layname)) J( w2 `; v- P; q6 w* J% z) a
- )
4 ?9 W" u& D7 a$ [& u, o8 M - ;;
4 T) {3 J- F: p- T - ;; Reset to original layer when cancel is selected.6 K% o3 s9 T& p2 a- C6 J% y
- ;;0 [: n9 F" w) ~8 Q
- (defun reset_lay ()# r6 z& m; j8 f" o& L4 S
- (setq lay-idx old-idx)
5 m N6 q! Y9 y! ^8 i: Q+ H - (done_dialog 0)$ u4 {' [. ^8 c! d1 a+ U3 h- h
- )- `0 V- }0 H3 y- T0 | v
- ;;
' _6 |$ c0 @1 K* e2 M9 [+ m; n - ;; Checks validity of thickness from edit box.; O) t) B& ~' p8 a
- (defun getthickness (value)& Q5 A A$ i3 b* W
- (setq ethickness (verify_d "eb_thickness" value ethickness))8 q" J& X5 y X/ R
- )
7 q. z g( F1 q2 N4 {8 K - ;;6 J6 @+ | m, e
- ;; Copy of (getthickness) for ltscale. If more, make this function
8 |/ `. P. a: S6 u) e - ;; generic.) V2 z4 w+ _, K, m D* @- C; i
- (defun getltscale (value)- |% I2 |1 M4 @6 q0 J7 ?
- (setq eltscale (verify_d "eb_ltscale" value eltscale))
+ N) T5 d5 a1 ^! G1 M9 J - )
* f9 ]; {) B# p1 B4 C8 { - ;;3 X0 @. j' m W' M$ ?/ V
- ;; This function makes a list called laynmlst which consists of all the layer
$ ^8 }' S( a- \ - ;; names in the drawing. It also creates a list called longlist which. d o; x" x0 Y, d
- ;; consists of strings which contain the layer name, color, linetype, etc.- m: e* a5 e( ?2 y. g+ O9 l
- ;; Longlist is later mapped into the layer listbox. Both are ordered the3 x% {2 p1 F! W' e# i/ x8 M
- ;; same.
, R! R0 r3 Q" l0 k" k1 M6 h1 v/ l - ;;
" `! @4 ` u$ N9 J* ^: M, K' U - (defun make_lay_lists (/ layname sortlist name templist layer_number)' F1 g q! m% t J3 A2 Q' i
- (setq sortlist nil)
0 B2 a$ J( u: R% O$ `' M7 _. ]9 O - (setq templist (tblnext "LAYER" T))
/ X6 B- h! Z) n' K' I% v5 [ - (setq layer_number 1)
5 R" |! x3 J- c$ c/ `1 E3 M8 F% r: a$ P - (while templist
! y+ X, ?! J( H7 s. {8 h - ;; No xref dependent layers, please.0 q* A- Q& h; Z# E* G! e
- (if (/= (logand 16 (cdr (assoc 70 templist))) 16)
$ _, o' u$ n1 ?' l - (progn$ R+ y5 g! l" C( L9 v4 G
- (setq name (cdr (assoc 2 templist)))
* b2 p$ n: g) R, W4 u) T4 { - (setq sortlist (cons name sortlist))2 r9 {# }! Y7 p: b4 ~
- ). a' M% ^% Y# A' k# k
- )
* B1 z: N5 L5 i/ F9 P - ; Get the next layer.
6 M" I' J& p1 g/ x - (setq templist (tblnext "LAYER"))! h8 C$ r* W, U& f/ F- o
- ;; Not dead message...9 N$ P6 g' d( s
- (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))
+ j8 t3 z& i" W0 N6 R; t - (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
9 x' {' R$ G; h: m: s - )
n, [2 Y# I9 m [3 Y$ U - (setq layer_number (1+ layer_number))! b% B$ ]4 G7 S1 V E, L
- )# P/ l9 S) a1 V- Q
- (set_tile "error" "")
, z$ Y9 ]) d& j* E: W - (if (>= (getvar "maxsort") (length sortlist))( T; q/ U- l0 {' p9 J& k
- (progn
( p, [4 j# f/ Z E$ ^$ C* T - (if (> layer_number 50)
6 W1 B9 G- m1 Q3 j8 ]2 { - (set_tile "error" "Sorting...")2 ~" c" J# b* q8 i1 Q- c$ F- z
- )9 E6 o) J. C9 ?( j
- (setq sortlist (acad_strlsort sortlist))
. m1 t# r# _7 M% d! s G# A - )6 F$ H2 J% L& Z) R( w: f! s9 ]# @# t
- (setq sortlist (reverse sortlist))
, T' `* t9 h+ x4 y8 x- z0 u+ r - )+ R: h) d# N* X% x; M, E
- (set_tile "error" "")* v# u, g) v+ W
- (setq laynmlst sortlist)6 [: r a+ C; m3 U8 d
- )6 Z. u5 h1 y! g; Z, ?
- ;;
+ [' c% d: a1 J0 C; J - ;; This function makes 2 list - ltnmlst & mdashlist.
5 N3 b/ ?, O" q6 n* F0 |. @ - ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist
; K# b$ L+ r* Q; J - ;; is list consisting of lists which define the linetype pattern - numbers) b2 D" N, c9 Y
- ;; that indicate dots, dashes, and spaces taken from group code 49. The list
) x4 b' \# S) O# z - ;; corresponds to the order of names in ltnmlst.6 y% E* H+ Y/ t' R9 K/ M8 R
- ;;
! n/ ^' h9 i% X% i+ d& O$ O - (defun make_lt_lists (/ ltlist ltname)# e- q) e! s2 X+ Q6 X
- (setq mdashlist nil)' [! v! z, x, E) H: C( j# I" m2 s! m5 S
- (setq sortlist nil)/ \0 S3 U( ^+ q2 G- E
- (setq ltype_number 1)+ n% D) i1 v: Y) z4 @3 u; a0 m
- (setq ltlist (tblnext "LTYPE" T))9 f9 q$ j& i3 R% Z2 y7 z
- ;;(setq ltname (cdr (assoc 2 ltlist)))6 w; w9 q0 ]% O8 M
- ;;(setq ltnmlst (list ltname))8 K+ s9 G9 t3 y. m7 _
- (while ltlist
8 o' [) i' V2 _ M8 t& w3 @ - ;; No xref dependent linetypes, please.: I- S- _' x" p
- (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)
: a& y, i5 d/ M* | - (progn9 ^- k8 e; {% b! g' k6 e+ ]
- (setq ltname (cdr (assoc 2 ltlist)))# _4 T; s% s+ r0 E
- (setq sortlist (cons ltname sortlist))/ h6 t+ m# \: K0 j4 c; V" z# V
- )/ m( E O! K/ D8 `/ O" L
- )2 W7 j5 w. p! H/ n
- ;; Get the next linetype.3 n2 H6 ^& `& ?$ I
- (setq ltlist (tblnext "LTYPE"))
0 c' s( W. M4 @. ^7 V5 d$ D& j- @ - ' n6 ^2 K7 a3 K2 j, _* L) m
- ;; Not dead message...
- D1 g- z- b* F3 ~$ y7 u; [ - (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))* z* m, [2 O$ t S. i! b
- (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))2 V: E. |7 A0 T/ Z1 Q4 m
- )
7 y& T" D. T% \% b5 E( [ - (setq ltype_number (1+ ltype_number))8 T* p: J) U* ?; U
' V% c d" P4 q( e( g- )
- u. k- W" Q4 u6 E* c! c T - 1 A2 D R2 ^+ l* B7 C
- ;; Remove Collecting message.( P q- C+ G I5 o/ A
- (set_tile "error" "")
8 [, B2 }/ W" K* g7 V) D+ D v - ( D9 j9 a& R3 k5 \4 O
- ;; Sort based on maxsort.
% q- J" i4 F0 F - (if (>= (getvar "maxsort") (length sortlist))
& I' r g" x+ o/ g; ? - (progn J5 z/ H& x$ o! { s
- (if (> ltype_number 50)$ w9 H% Q" g7 P2 z& S2 i
- (set_tile "error" "Sorting...")
9 c. ^" l6 _! a- c1 ~! y2 R/ G8 L - )7 w. X) M3 p- x* ]) e
- (setq sortlist (acad_strlsort sortlist))2 X' K* I% Y8 T( A# @7 x
- ). Q* u% k/ F' ^4 D
- (setq sortlist (reverse sortlist))) }6 B2 z. W1 }6 D% e& j5 T
- )- t3 C0 g( U% }* m
- (set_tile "error" "")
, p8 C0 W) y% p2 _; O1 C - (setq ltnmlst sortlist)
! K, t3 _& F5 v& E+ W - * V; M. I! k: Y: r+ e: E
- (foreach ltname ltnmlst% P. d2 s) Z) W+ U
- (setq ltlist (tblsearch "LTYPE" ltname))
' e% e1 l2 e% _0 Z; _" J - (if (= ltname "CONTINUOUS")
, |: i2 H! M2 S% U# N - (setq mdashlist (append mdashlist (list "CONT")))
- |. E8 T% |0 } - (setq mdashlist& @$ u, L9 B( V8 e+ ?7 V
- (append mdashlist (list (add_mdash ltlist)))
+ y0 @: I; t1 j. n% M4 B% W - )6 J% u* a/ g. {# W& a& c3 Z
- )
5 F% h4 D( L& i( m+ c - )
6 x- a" U8 Z, g, p8 W, z. w* ^ - (setq ltnmlst (cons "BYBLOCK" ltnmlst))" f6 ?2 ]6 f6 c: _0 B! T5 U" q
- (setq mdashlist (cons nil mdashlist))' C2 l- \- h/ C( j& T
- (setq ltnmlst (cons "BYLAYER" ltnmlst))
+ l& v" }0 l* `; `% @% p - (setq mdashlist (cons nil mdashlist))
( u+ I6 I8 e( i - ). o' M- A. _& |- w
- ;;% b' |$ k/ m( W) ^4 \4 r
- ;; Get all the group code 49 values for a linetype and put them in a list: N- Y( p! C/ p- V
- ;; (pen-up, pen-down info).
: N3 e/ y% @7 R - ;;7 ^1 W2 {- v0 |$ \& E9 w# p7 _
- (defun add_mdash (ltlist1 / dashlist assoclist dashsize), N8 a9 d+ g' B1 {& W' A& P
- (setq dashlist nil)! t/ L$ X5 ~3 X1 K+ a% W8 H
- (while (setq assoclist (car ltlist1)) D1 s( X4 p; [8 U
- (if (= (car assoclist) 49)
. j- @0 H5 C8 n1 v- f - (progn
3 `& M5 ?* d9 O8 h# T4 e - (setq dashsize (cdr assoclist)), r# ~. F- t. h! A$ a
- (setq dashlist (cons dashsize dashlist))! |5 ]. ^) }& ~0 S% q
- )
- U; M, T7 T+ j& B1 d3 A9 ? - )% ?7 L( `- D" C/ ~) f/ g
- (setq ltlist1 (cdr ltlist1)), o/ O6 j; e& D9 R: Z* u$ I) G5 @: m
- )
( E6 v, w$ }# M6 ]' C& { Y - (setq dashlist (reverse dashlist))8 U0 A6 L0 T5 y2 d
- )
' z5 M' @8 x) n+ z7 g& P. e+ u - ;;
+ Q/ n2 a7 ~- o8 o - ;; Color a tile, draw linetype, and draw a border around it
9 x+ J. t+ T) K/ U - ;;/ l" K$ s0 r* S) _, D8 Z1 ]3 G
- (defun col_tile (tile color patlist / x y)
% F% G. C3 Q% ^2 r# _, q! i - (setq x (dimx_tile tile)). B& y% O- j9 S
- (setq y (dimy_tile tile))6 s) O0 r+ f a4 W, u
- (start_image tile)
. @& \# W3 u. ]" B# i7 B - (fill_image 0 0 x y color)
; h, ~0 V7 L* _; ~& ` - (if (= color 7); h. V+ y0 N% A4 y0 k
- (progn4 k" R, [8 t$ N# h
- (if patlist (drawpattern x (/ y 2) patlist 0))5 e) f1 E5 y% o2 E
- (tile_rect 0 0 x y 0)" @$ J: n* U, g5 p
- )
8 i7 N/ ^, H1 X* e! ^6 i! M" ? - (progn
1 ?: F; T( f$ _/ S, j3 u$ A0 S; F - (if patlist (drawpattern x (/ y 2) patlist 7))
; V& k) u- u- h& V7 B - (tile_rect 0 0 x y 7)& p6 {4 ]! y* ?; t K
- )
& P% b% d X9 X, s# m/ } - )8 u/ U1 ?$ \4 W, @, |
- (end_image)
+ e0 m5 Q/ `% e0 @: a - )
$ l2 [/ u" ]6 P8 [ m4 |* N- q - ;;9 |. k8 C+ x2 b, R" L: l
- ;; Draw a border around a tile3 Y2 C ?9 p3 [) E; j' ?* A
- ;;
# l* V% r4 P$ F - (defun tile_rect (x1 y1 x2 y2 color)+ |% v' f' Y) g( p$ T
- (setq x2 (- x2 1))! W3 }" h- n! K5 B% W; @
- (setq y2 (- y2 1))% j- c. F6 y% p* R% C3 v8 r6 S. T
- (vector_image x1 y1 x2 y1 color)6 H Q! @ L- g7 b9 m
- (vector_image x2 y1 x2 y2 color)8 Y* v( N; j: _* H. h, D( E
- (vector_image x2 y2 x1 y2 color), W' ]. X/ b3 Q- q) ?
- (vector_image x1 y2 x1 y1 color)% H3 W; G' N: i) Z
- )
; E2 A, g# s3 U _- b; T; d - ;;: Z8 b5 Z9 i, z" ?
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image9 q. L ^. k% f, l2 ?) ~
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a! c! y: w9 n9 h- ]
- ;; list of numbers that define the linetype, and color is the color of the
4 @& F D; ?8 x! W5 @ - ;; tile.
; i) a( }6 H/ f# W3 [1 a j7 r7 D1 f - ;;
/ [0 t1 x3 O6 {$ y$ Y - (defun drawpattern (boxlength y2 pattern color / x1 x2% f& |% ? i, e# T* k9 b, m
- patlist dash)
1 R9 B& |4 D/ ]3 e' ~: u' K) K& Z - (setq x1 0 x2 0)' `( C" T" L8 l" ^
- (setq patlist pattern)7 r. [1 T6 }, h0 J8 g5 J7 [
- (setq fx 30)
0 H* h; Z3 U" r$ [. D5 C" m - (if (= patlist "CONT")
8 m: {. F7 G1 o9 p {( @+ O( i1 A - (progn (setq dash boxlength)
/ h+ h) S; u' X5 d. U0 v - (vi)" L8 _) H9 u2 j$ M
- (setq x1 boxlength)5 ]! e2 T3 x) r
- )9 d2 K3 A0 y" p. q0 H& ?, I
- (foreach dash patlist
( l0 s% u: S/ V - (if (> (abs dash) 2.5)
! j0 }9 U u4 i" m: G: d! w! F& } - (setq fx 2)
* b% ~( h* U* _" ]& W - ); F+ Y- K- b" e$ c: A% v4 }% V5 ~- H
- )
% m% H- m) |3 w* }6 L: T X9 f - )4 Z2 ^6 \- t7 }6 S1 `$ ~
- (while (< x1 boxlength)3 _0 [2 e# W5 @ p
- (if (setq dash (car patlist))
# j# e4 K- K6 Z0 a; {5 i- p - (progn) s9 l2 s7 |1 o7 n, O
- (setq dash (fix (* fx dash)))
4 ~0 A9 G1 @ i# F( f - (cond7 {9 `* B$ h n6 v. Y" w- y! a* T4 N6 X
- ((= dash 0) (setq dash 1) (vi)). i. G; ~0 K6 V& U4 l3 ]
- ((> dash 0) (vi)); C- j9 t4 U4 _; v* ]% d* Q$ A
- (T) ], b. n5 d, z9 f9 c9 O$ i' Y" w
- (if (< (abs dash) 2)' J- t% l, a: f! h- q
- (setq dash 2)
( L- X: _1 @3 ^; g/ Q - )) R# D( i( w( ^# [; S; J
- (setq x2 (+ x2 (abs dash)))" n- |3 j, |# f R# }3 n* a1 n# {
- )9 e- b! k7 x3 y6 _/ R' W8 I& v& y
- )
1 {5 H! E% v) Z: r - (setq patlist (cdr patlist))
5 J6 f6 u( Q: ? - (setq x1 x2)- M$ _# V; t. l7 p
- )' ~1 k2 j( `' N* R) u
- (setq patlist pattern)$ H2 [* l0 [2 R# Q
- )3 ^ e% D3 m" O( H# x2 ]1 B& H! u6 i Z8 B6 f
- )
% ?! B1 j% X5 M* q0 d - )
( X- S0 g9 b0 L1 E8 L! |' i - ;;
" a6 |. {, k5 U# a% x( E - ;; Determain state of xclip% R8 k+ l, T7 N; [
- ;; Returns the group 71 value of the spacial filter dictionary.4 x- l4 `* ~2 \! K
- ;; If the entity doesn't have a spacial filter dictionary, this5 ?, g- h D7 d9 [8 O2 @
- ;; returns 0. If it does it will return 0 or 1 depending on the
* V" ~3 J8 n2 H K7 S) `& i - ;; current setting of the state of the clipping visibility.6 e K9 C* v7 d. g9 [/ y
- ;;
0 ~2 u- S( V- p3 v7 Z' _% \ V# P - (defun xclipon(elist)& a6 q l5 ~# J- Z2 f6 v8 F
- (setq hasclip T)
8 k- V$ F. J2 E - (if (/= (assoc 360 elist) nil)
7 E& h7 C* `/ M% v - (progn
+ v$ f) f2 N# [6 k- k) T - (setq tmp (entget(cdr(assoc 360 elist))))
7 n! | ?. }9 m1 A - (if (/= nil (assoc 360 tmp))
8 v/ Z5 }3 v V% _$ K - (progn
$ k3 T0 j3 v0 V: z0 P/ u - (setq tmp (entget(cdr(assoc 360 tmp))))( B+ l% Z4 [9 ?" f
- (if (/= nil (assoc 360 tmp))+ E) Z7 n: S( d- C9 K
- (progn
; P3 K* K+ W6 f0 q2 u0 H, ]7 } - (setq tmp (entget(cdr(assoc 360 tmp))))
1 l2 E- G! Q" F, b) O - (if (/= nil (assoc 71 tmp))/ d8 V$ L) T6 d# r, U( V
- (cdr(assoc 71 tmp))
' z5 t- o/ e4 F& ?+ P9 ^6 B1 x - (progn % ], Q, k6 @$ F- J
- (setq hasclip nil)
' i% L! V7 C9 U1 R, B$ j: E+ J - (eval 0)! @& q# U: I- p; b, X
- )
& _ t' Y) v/ F5 x3 s* p5 D: u- D - )
! G# ]5 w$ f3 ^! p - )
! ]* ~' h) g1 q* p - (progn * o ]0 j; d6 a6 V
- (setq hasclip nil)
# c2 N! B2 K2 K$ O& r - (eval 0)
+ i! O6 h/ M7 v7 E: o6 G$ z! A$ ] - )
- E9 b3 l0 K; g/ K - )
% E% }4 [# u5 m. f - )
# ]8 P) E6 L* V - (progn / B% P+ d# A8 K4 o+ J1 z+ K
- (setq hasclip nil)
1 q9 q& ]& Z1 {5 J - (eval 0)
5 e6 i' T9 c y - )9 i- ?; L- X; f2 y9 n$ S( L
- )
% ]# z* n g6 J8 x8 C - )
/ H! q |3 E3 a3 w - (progn
^/ t& K3 L4 Q# L- { - (setq hasclip nil)! X0 O" u; b, O, Y. ?& K
- (eval 0)6 ?* l* C. X. B
- )$ H. U2 m, }( p( U
- )4 ]+ ]/ n% {' M6 C
- )- s' H+ F6 I/ o# I2 c1 F
- ;;1 c) j1 `- V9 h) s5 a
- ;; Draw a dash or dot in image tile
: e! `' C8 h& w( r1 ` - ;;
( E; M! z- t7 R' ]5 F$ G - (defun vi ()
0 I; k0 e1 h5 I( P& c - (setq x2 (+ x2 dash))
. _4 u4 q+ C! i: T0 O - (vector_image x1 y2 x2 y2 color)
4 q, R" B* j- n6 D' Y - )
: c9 ?6 m/ K) h - ;;
& g! t0 k4 Z3 a% v: N/ r& r7 C F - ;; If an item is a member of the list, then return its index number, else" F. F' ~8 M5 D2 z8 Y. a, `) v
- ;; return nil.
2 S; ]1 G! C% F% ~6 M4 n - ;;+ V3 }; ]( E9 G8 w' U2 C
- (defun getindex (item itemlist / m n)
! u2 G6 e" Q& ?% x - (setq n (length itemlist))+ z- ]9 i; v; p6 z! C0 p" s
- (if (> (setq m (length (member item itemlist))) 0)
0 _ i4 b( y/ _! R; Z - (- n m)( m C6 I2 Q4 ?
- nil0 A- X5 @6 _0 r, F! u
- )* T6 B4 G; ?% B& G/ H
- )
. _( ~' B/ t3 q; x) M C( b - ;;
& I7 M- D. V) v, ~, w - ;; This function is called if the linetype is set "BYLAYER". It finds the* y+ E! q4 `: T3 v( i, F3 B
- ;; ltype of the layer so it can be displayed beside the linetype button.% M( D2 C+ z; [) K* d8 [
- ;;
' S1 X4 m. k) o, Z: m }+ S - (defun bylayer_lt (/ layname layinfo ltype)
0 ~. |2 ^9 A1 v7 e0 w" O - (if lay-idx7 C4 j4 n1 ? g; {# g% \0 T% `
- (progn
$ T# H% [8 u+ `1 ]- ?! Z/ a - (setq layname (nth lay-idx laynmlst))
9 x2 j% p- T9 N7 N - (setq layinfo (tblsearch "layer" layname))) W Y& `' p/ c9 l0 }; Y: H
- (setq ltype (cdr (assoc 6 layinfo)))" y1 F+ h8 O0 V9 ~( i j5 V
- "BYLAYER"
- i! z, V3 ]/ D4 w - )! ]! B! H9 n% m% g$ C2 u0 M
- "BYLAYER"
- l1 ~. Q. f3 h7 j - )
/ m. Y5 A! Q; a - )
|3 s/ A: ?! a - ;;! y2 S9 ^( l( K& d, h4 T0 i. s3 {3 R& }. \
- ;; This function is called if the color is set "BYLAYER". It finds the color. G& Y& W6 A& F" g5 }/ }
- ;; of the layer so it can be displayed beside the color button.
4 j& o4 x$ s1 Y" T+ ~' h4 F* e - ;;
3 e0 B9 q# s) |" ^ - (defun bylayer_col (/ layname layinfo color)
6 B0 w2 j" R, r/ R5 D - (setq layinfo (tblsearch "layer" elayer))
1 S0 U( j- \. ~* Q6 c - (setq color (abs (cdr (assoc 62 layinfo))))
. ]3 [" n: i$ J! [ - )
! R8 }" l; V6 a, W5 I - ;;! e. n) v! Y! z1 G `5 X& `
- ;; Used to set the color name in layer subdialogue./ ]2 Y% W7 n# P' ?) k5 ?/ ]
- ;;9 w2 ]1 F; b3 `0 i x6 p
- (defun colorname (colnum / cn)
" L" T0 L* `3 R* _" N. q - (setq cn (abs colnum))
# I q2 D! H' P2 Q+ K - (cond ((= cn 1) "red")+ Z4 }4 S/ ^" X$ `# ^; r+ e5 y
- ((= cn 2) "yellow")
# b" C# }9 H! e - ((= cn 3) "green")
( U* M! [4 Z3 c! r9 g - ((= cn 4) "cyan")
7 t& J1 @1 }/ R9 y& `5 j' @1 w - ((= cn 5) "blue")0 `# P8 P2 t8 P% A8 I9 ?* J
- ((= cn 6) "magenta")! `$ Z& B2 E$ G5 r' A- n7 i' `
- ((= cn 7) "white")
1 }8 F1 K2 X: W7 u9 j - (T (itoa cn))
/ j; O' R& v# `0 f - )
# D& F* V, a- R& |9 T$ ? - )! p" E' m) x/ L/ R
- ;;
- Y1 l/ q( A: R- p - ;; If their is no error message, then close the dialogue.$ H ~" J u8 `; P; S$ i( H
- ;;: P$ O- R9 a9 L( x: A
- (defun dismiss_dialog (action)
( @2 m; ?- w4 F$ V4 p/ J - (if (= action 0)+ c8 ^# E6 W' a8 x; A! u4 S
- (done_dialog 0)/ d+ T! [8 m9 x; O: V
- (if (= (get_tile "error") "")
$ m7 B) H8 u# R5 Y# r - (done_dialog action)7 x3 T ?; X3 g7 T Y
- )
6 k2 V& Q3 h3 {' | - ). V" I1 E; y0 O0 Q: d9 l
- )
0 p$ M5 d& Z' a: s6 z) y) b
) ~ b% i0 \5 v$ M6 }( a- (defun test_ok ()
/ f4 f" m) b3 R) L$ { - (if (= (get_tile "error") "")
" S8 t+ W+ W7 C - (done_dialog 1)
1 `4 u3 a( G4 Q5 R9 V5 S8 S - )' a8 j2 U4 g' f- q
- )
8 N4 s/ V, M! U* p; x - / P; O! F7 N( B: W W# g6 ]+ a* Q$ }
- (defun cancel ()$ x8 k$ Z; |9 e6 B+ q
- (done_dialog 0)
$ e5 a I$ ^; @( [' { - )! ?8 x0 O$ \/ K( i& u) p
- . G/ Y, m, s# r, v5 b
- ;;; =======================================================================& ?9 ?, v4 }4 V/ k' r
- ;;; SETUP layer and linetype lists for application, and initialize all
0 p# I2 Z( q' ] - ;;; program variables.
6 z: L% X$ e; d5 B - + T6 _4 k5 p4 P5 L; o
- (setq elist (entget ename)/ y3 \8 {9 y7 v- W0 V, g
- old-elist elist* b8 D1 G, J; F+ B
- modlist elist. s: k) V0 W! g' V
- etype (strcase (cdr (assoc 0 elist)))4 |% }* h: d5 ~" J/ h2 i4 f- x
- ecolor (cdr (assoc 62 elist))
$ ~4 y/ n2 ?5 a' k0 ]. Z. F - elayer (cdr (assoc 8 elist)); D# z9 a4 E2 y9 p* ^: ?1 ~0 I( e- c
- eltscale (cdr (assoc 48 elist))" @) \6 J a: h, F4 C. m
- ethickness (cdr (assoc 39 elist))" `( B' a1 |$ Q2 F) U
- eltype (cdr (assoc 6 elist))& h1 O/ t4 u w/ z. `
- )$ U- ], o C, N. W& x% c
- (if (= (assoc 210 elist) nil)7 F$ ?- v; w+ e, H. i2 u
- (setq extru (list 0.0 0.0 1.0))7 O+ L' q: b3 u2 J& w
- (setq extru (cdr (assoc 210 elist)))
7 J, t8 k& {6 u! t& L( V - )' Y' K# @! e0 X6 y
9 l. N. _7 M* L- b4 K- (if (not ecolor) (setq ecolor 256))
) ^) {8 q6 M& G - (if (not eltype) (setq eltype "BYLAYER"))0 R4 o7 y7 ]# s8 _8 u3 t" Z
- (if (not ethickness) (setq ethickness 0))9 Y$ @# E- G, d3 Y
- (if (not eltscale) (setq eltscale 1))6 N3 f( k& [! O4 N
- ) ; end ddmodify_init
8 a. N7 |+ d7 c2 N2 ~& X - 9 x" H: j. x% D0 @: O9 k* `
- ;;; --------------------------------------------------------------------------
/ v# L+ g; x" _4 {/ W& M' d4 Z& _ - ;;; Function: DDMODIFY_SELECT
\3 e g: o( E - ;;;
: l" T n4 T: }( ?" K9 b6 a - ;;; Object aquisition function.2 Z& C) b/ L0 p Q( p+ D3 f
- ;;;
# I* A8 `, p' B3 X - ;;; (ddmodify_select)
6 q6 z7 V0 N) `6 v% O - ;;;# Q) Y u" t( Z6 Q& u! |3 e
- ;;; Obtains object to be modified, in one of three ways:2 S, O. t6 f0 n T! L
- ;;;* u8 m2 y3 g# V& }: T. M }
- ;;; 1 - Autoselected.8 B5 N- s: }8 X8 G0 \! X
- ;;; 2 - Prompted for.
4 x( f' A" P0 F5 J9 [$ y - ;;; 3 - Passed as an argument in a call to (ddmodify <ename> )/ s' d) A4 f4 Q a: s
- ;;;
7 m/ \5 A5 X G. F' B' l& K- G - ;;; The (ddmodify_select) function also sets the value of the
" z$ J3 [, a! j8 M - ;;; global symbol AI_SELTYPE to one of the above three values to- Q! s9 Q. H0 O" s7 W
- ;;; indicate the method thru which the object was aquired.6 _- _$ Z6 F0 V& M3 Y+ u8 ^7 T) ~( V
- ;;;
|; O; z$ p/ @+ P9 @0 A _ - ;;; This value can be useful to applications that want to RESTORE
- h( a, N1 a/ _# I4 ^ - ;;; an object that was autoselected to its previous selected state; q3 v9 u3 `: G h1 A
- ;;; when they terminate, although there doesn't appear to be any0 |- s& C; k0 w
- ;;; way to do this right now.
; s$ i8 Y/ N6 {" j$ d - 2 F/ M" ~( N# S6 M
- (defun ddmodify_select ()
6 r. K4 g& X- N, z - (cond! A2 P [+ f( C( u0 n9 O: ?* M
- ( ename ; (ddmodify) was called
b' X2 W6 Q. z- J$ U' _# } - (cond ; with an <ename> argument# g6 X2 `: Z0 ^+ J# I
- ( (entget ename) ; If object is non-deleted5 C& w6 S& ^3 S8 W( G" }
- (setq ai_seltype 3) ; then return its ename.. T. Q0 ~! y9 H2 u. x3 ]
- (ai_return ename))))5 i" `. e! u# ?3 E9 Y
+ \9 q; Y' t4 ~9 a+ ~( m2 h- ;; return auto-selected , see ai_utils.lsp
/ C9 s- [4 d6 p" ]9 @2 m: x; P - ( (ai_autossget1 "\nSelect one object to modify: "))
/ l$ a1 s. r% p' k! G% J - * |4 ^$ T$ k3 U* `8 ]
- (t (princ "\nNothing selected.")$ i( P$ i1 T( u$ `. R; U5 j( ]
- (ai_return nil))& S: a) T7 l3 `* y8 K) P7 R( |
- )8 ?- u; A" p6 g- j4 _1 g: g
- ) J6 K, N( G/ f6 Y- H. e. o
- 3 n: {0 k& x% `- K) c- o: \* d2 l
- ;;; ============= Command line interface function =======================
4 F/ M3 T2 R, W0 ?9 k X3 i
8 X/ j% r. Z) v6 y, D/ k6 t* S- (defun C:MMO ()0 ~6 `" M# Z7 z1 p$ I9 G. K) `
- (ddmodify nil)
6 L0 v) g1 d& |. @ - (princ)
/ x2 ?, i% \7 R {( ^ - )+ n0 j3 F0 B X, ^
- n) z6 M/ h1 i7 M
- ;;; ================== (ddmodify) - Main program ========================. \6 N) V/ V1 K8 c: q7 ~- ?
- ;;;
' R# \) U- I7 `2 ]" @9 h; d - ;;; (ddmodify <ename> )( o+ w: S1 r4 I6 F
- ;;;- {( ?# B: j6 K8 W
- ;;; Main program function, callable as a subroutine.
) S) K. D: d- I - ;;;) Z7 `; J' e# @( v: @2 u
- ;;; <ename> = object name of the object to modify.
( f) `- T# x5 N/ A9 U - ;;; a5 c( V$ V! W2 v6 Z' C
- ;;; If <ename> is nil, then user is prompted to select+ Y" @* n5 f! ?
- ;;; the object interactively.+ G1 K5 C" C) f: p, A9 M
- ;;;# i" q0 F, O. G( e' c
- ;;; Before (ddmodify) can be called as a subroutine, it must
( p' P5 Q |) N+ O- D& F - ;;; be loaded first. It is up to the calling application to' i' c: L5 T7 f+ I6 J+ _
- ;;; first determine this, and load it if necessary.
! o* |3 J( c0 I- S - & t2 M, J" w7 U( R8 Y, O I
2 G- \4 J3 g: C1 M& k8 [ y- (defun ddmodify (ename /4 k2 g- F6 o; G; D0 M ^9 Q A
- 2ndpt ell_calc_area move_pt1 templist3 g) W9 H; }, E0 x" A
- add_mdash ell_tile n tempmod6 J* _' J% c, |) ?
- alipt eltscale name tempst_ang9 W4 a( X+ R3 U1 a7 t
- ang eltype newpoint test_ok
( M' U; e4 m0 u; u( Q - arc_calc emod next text
( u) g C5 {% G1 q; K' A8 d6 h7 f - arclen end_ang next_vertex th-value
2 H" \( ?( N" e$ }; {+ k. t - assoclist endpt obl tile7 E6 L/ \( Q! }1 \4 _
- atprompt errchk off tile_rect
. w2 ~0 ~) b6 [+ S, ~: V9 f - attag ethickness old_majrad tilemode
: K; }8 `5 I0 _- s1 Q% C; t2 Y - attprompt etype old-closed totang
- @3 m! Z- c+ E W - bit extru old-closedm tstyle' }" P3 N" u( [5 F' r M3 v% Y1 s
- bit1 fchk old-closedn u9 h' ?6 n0 R) t6 J, Y+ n
- bit-10 first-10-rec old-elist undo_init
9 @' K( @2 J7 Y2 T' W, e - bit-11 first-10-time olderr upsd
, n' a5 f1 ^7 I1 ^% N - bit2 first-11-rec old-fit v
$ Q; K o& l3 B" g+ H) _ - bit3 first-11-time old-idx va' y1 S2 h0 N2 k. _- I
- bit4 fit oldlist value# l1 ~+ t9 P% @' {2 D1 [3 E2 c
- bit70 frozth old-spltype ver_4
; W5 o2 r; v; n* ^ Y4 w( f - bit-70 f-vis old-u ver_ang1
" a `" r' B/ E7 s" ` g/ m - bit75 fx old-v ver_ang2
5 ]" g; t+ @* }6 B+ { - bk-up get_color on ver_col
! s7 c- k( ]; K+ C9 k Y - bkwd getcolor onoff ver_colsp
" _* f. S6 A2 D6 U - boxlength getindex on-off ver_eangle
' p5 [, F$ t) ^3 o3 n# Q7 R - bylayer_col getlayer patlist ver_hght
8 a; S4 I% R; a$ k3 V - bylayer_lt getltype pattern ver_majrad
& C9 ~, [6 n4 m3 {7 }3 { - calc getthickness pltype ver_obl
5 F- \7 X9 Q2 o2 q8 P+ @ - cancel globals polytype ver_pt10 R( r2 e8 q. y) Q
- cir_calc ha pre ver_pt2
, b( c; n+ l+ O- n) T - closed ha-prev proplist ver_pt3- }* N1 d/ [- H$ t8 c1 E" B7 g
- closedm help_entry pt ver_pt4* \" ]: u$ `1 c) f0 L9 N; A, O
- closedn hght pt1 ver_rad- i5 J8 N1 V3 v4 S
- cmd icvp pt1_eq_pt2 ver_rot
t3 q& q# @/ N/ E9 U - cn image_add_vector pt2 ver_row
. W+ v& V7 U' W5 i/ U - cname image_clean_variables pt3 ver_rowsp
8 q7 `( y! g: X5 h) H8 F& k - cntl-pt-indicator image_cross_product pt4 ver_tag
) }: u) W, n+ `+ v3 l& k2 p8 \. M% N - code_71 image_disp_opt ptype ver_u
; ^4 C% z: y' w" m7 G& N - col_tile image_dot_product radius ver_v
3 A# X- W3 a0 X# J - col-idx image_normalize_vector rational_spl_flag ver_wid+ G0 v9 K$ K: l+ H3 P! m! F( F
- colname image_rotate_vector reset ver_x15 L, m7 n% q% H( `
- colnmlst image_scale reset_flag ver_x2: V: Y2 p% `! x9 c
- colnolst image_scale_vector reset_lay ver_x3
8 \8 V) T* `( t" {& z9 ~" u - colnum image_update reset_lt ver_x4+ D. g3 H6 q/ u% N
- color index reset_uv ver_xline_pt1
# A: r; k/ V) Q - colorname inv rot ver_xline_pt2; {: l8 X H2 r$ d _5 @8 X% N2 O
- colorno item rows ver_xline_x1
9 m7 t/ _2 f: }0 V# a4 ` - col-sp item1 row-sp ver_xline_x2
) {! n6 R0 p2 Q/ w - columns item2 rrat ver_xline_y1
3 q7 u; s' }* [8 ^ ?9 A - con itemlist s ver_xline_y25 O; \- ]7 N: f, \
- coord jlist set_action_tiles ver_xline_z1# B: `+ B8 E) |8 S# ]
- ctr jlist_act set_just_idx ver_xline_z2
$ v/ K) F, [0 `9 R% A - cur-10-rec just-idx set_tile_bk-up ver_xscl
- Q }( n/ @) M! o5 r# p1 j. P L4 E - cur-11-rec layedit_act set_tile_cntl_pt ver_y1
3 }/ o$ F/ ]% r) N - cvpname lay-idx set_tile_data_pt ver_y2
; M* r f0 z7 \( C - dash layinfo set_tile_dirv ver_y3/ h" ?* s) C% X! `- {7 f
- dashdata laylist set_tile_edges ver_y4
" l' j% L9 z3 f - dashlist laylist_act set_tile_endang ver_yscl
! y2 `6 {8 V H8 H3 O% @; _+ ~2 o - dashsize layname set_tile_hght ver_z15 ~& T2 D3 _+ w* }) J+ z
- data-pt-indicator laynmlst set_tile_icvp ver_z2' p/ f' P f1 B+ q. A3 {# c
- dcl_id layvalue set_tile_just ver_z3
7 |/ f0 a- C# O; A - dd3dface line_calc set_tile_obl ver_zscl
' X4 b# }6 B* h7 r# \# ?# Y, f - dd3dsolid linetype set_tile_prompt verify_a
3 j, r% |$ ~0 u( M - ddarc list1 set_tile_props verify_d: x2 O1 ~# R/ G+ E. C* U% S" A6 x
- ddblock longlist set_tile_pt1 verify_i
: s2 `" u' r4 {2 Q4 b/ @ - ddbody ltabstr set_tile_pt2 verify_xline
3 p- J- f9 C' v' j& \9 n - ddcircle ltedit_act set_tile_pt3 vfy% N3 N: v# L: M4 [; f
- ddellipse ltidx set_tile_pt4 vi7 c/ C* L6 h( h3 G4 }# o) h
- ddgetprompt lt-idx set_tile_rad vlist, h, ]9 v2 |. A' \
- ddgettext ltlist set_tile_rc vname/ h. G- x6 L8 K4 n% e
- ddimage ltlist_act set_tile_rot vpf
( N& h, ?; l- w: B$ b! X. ]: ? - ddimen ltlist1 set_tile_scale vpid( A- G( u+ N6 u# X0 v3 L! x9 i
- ddleader ltname set_tile_spline_props vpldata
7 e4 ~7 p N! y, d. W - ddline ltnmlst set_tile_stang vpn' Z% E. {( I- A8 y( U
- ddlist ltvalue set_tile_style vpt
9 G* z! \: u) E/ }0 H2 z - ddmline ltype set_tile_tag which_tiles
8 Q5 A; I% p- ]5 {. c, @& j - ddmodify_err m set_tile_text wid
6 y+ Z. q" _0 e - ddmtext majrad set_tile_vpt x
; d: U% M$ z: K) m3 r+ ?" J: Z - ddpline make_lay_lists set_tile_wid x1
- f6 D$ U5 v3 N j; _4 f - ddpoint make_lt_lists set_tile_xline_pt1 x2) J, A3 T2 E8 j' o2 I
- ddray mdashlist set_tile_xline_pt2 x3
% ]6 }+ A* _" G+ W - ddregion minrad setcolor x4, a7 c7 \ Y: K4 O6 v) ?
- ddshape modify_3dface shght xdlist/ i& Q, I! c! |5 `
- ddsolid modify_3dsolid showpt xline_pt1
& R0 T' K3 F8 ] r; p1 c - ddspline modify_arc size xline_pt2
) D0 p9 v0 ? H+ l! t/ c - ddtext modify_block slist xline_x1
: l! u; |5 ^3 o% j( E# r - ddvport modify_body sname xline_x2
; y$ }5 Y5 }: U. P- a" l$ | - ddxline modify_circle sortlist xline_y18 Z. C1 a: o& w/ N+ P6 d
- denom modify_ellipse spltype xline_y2
. A0 ~* X7 ^! w$ N0 R$ P - dialog-state modify_image ss xline_z1
' ~) W) _7 i1 Q7 { - dir_pt modify_line st_ang xline_z2
_3 O& T" O1 Y6 O; v# I4 b7 c - dir_ptx modify_mline stpt xscale* @+ l/ S* L% v3 ]$ ?7 \
- dir_pty modify_mtext style_act xx
6 E- n7 Y% R! L8 [9 P6 V - dir_ptz modify_point style-idx y
2 y" }' e% G+ [3 c - dismiss_dialog modify_polyline style-list y1$ O* ?" } V: m0 M1 v
- drawpattern modify_prop_geom tagval y2
2 \% P4 `! |2 \* E/ E! q1 q - echo modify_properties temp y3
' R0 E+ q f. l% t" p: ^1 o - ecolor modify_ray temp_color y46 B1 x& j/ p+ e) k
- edge1 modify_region temp_dir_x yscale
) C! S0 e3 w9 ~& h* ^3 O - edge2 modify_shape temp_dir_y yy, \, K5 O2 Y3 i. b+ P9 U/ [
- edge3 modify_solid temp_dir_z z1
: K4 g8 G2 r8 G$ U! A G: |9 x - edge4 modify_spline temp_xline_pt1 z2
& H4 c- G. s# c. B4 E! D - edgetest modify_text temp_xline_x1 z3
& |: p: i/ r/ W) W( w. e- C- k - elayer modify_vport temp_xline_y1 z4
/ s: \) o4 E/ p+ U: ?4 [7 f - elist modify_xline temp_xline_z1 zscale: \- b8 T& o2 t: b+ X
- ell_calc modlist tempend_eang zz b6 O1 e; n3 e1 [8 L: ^) \
- dir-idx safe_ddedit ver_MtextWidth xcliponoff: f/ {" ^2 x2 `/ z$ u
- MText_style
U6 w6 e2 X2 I: f' O& X9 g - )3 `' F4 A0 C4 o3 L2 f* |' ~% B* @6 d
- + Q3 ^& p" v) u9 }
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
4 J* ~4 i8 `5 j9 E0 m$ P0 d5 \) g - old_error *error* ; save current error function# `' a: P) t$ \5 g
- *error* ai_error ; new error function) m$ E- l9 y/ R" r7 D) o6 j: L% B
- )) @' S$ Q* [, u
' ?6 L8 s8 k9 q# U Y% A# k. j: H- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle( i5 x5 V; {& ~2 D- W
- (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection
8 l8 d9 j; m; ]0 ]; T$ k - (setvar "pickstyle" new_pickstyle) ; bit and set to new value
. @9 _2 p4 i8 x5 M/ ~8 y$ K1 q - * y+ _# R7 Y% F( v9 x
- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)
: C1 T1 n. }3 n$ y - (t 1)))6 o1 N' G' P' K* |
- (cond' f9 h; S0 O' x& w; F7 f! l* T
- ( (not (ai_notrans))) ; Not transparent?/ v+ h, r( | m' Q1 ?) Y
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
" ^2 a! p }8 ]# B { - ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?
9 j" G5 a2 i* i6 m; T; I1 y - ( (not (setq ename (ddmodify_select)))) ; object to modify?$ s/ s1 |0 m, T+ |5 \+ J. y
( j4 d2 {% e2 {- (t (ai_undo_push)
! G7 r- n5 b/ _ - (ddmodify_init) ; everything okay, proceed.
* k. _" A! C* k& ^ - (cond; @! K, m) b* m7 h
- ((= etype "LEADER")
" i9 U8 P! s$ D# O4 I' S - (setq help_entry "modify_Leader_dialog")
{5 U# ?0 `& e; c* E$ I& d5 j& O - (ddleader)+ f) l" G# @5 h& d& ]! O2 w) I
- ); q$ J+ Q y1 @4 \) I" r
- ((= etype "ARC")1 \' I B! m* F2 J5 F) r$ ~, e& s
- (setq help_entry "modify_Arc_dialog") [9 p& j8 w) I) _8 \ a. f
- (ddarc)) _3 W" z$ J$ F! V# [
- )3 Q% k+ W0 \6 R' s! Y
- ((= etype "ATTDEF")* {* {6 e5 L9 v. E
- (setq help_entry "modify_Attribute_Definition_dialog")
* |# I3 B6 I0 C: A3 ^" g6 \ - (ddtext)
4 b: I5 Q0 T% S8 a$ q: B, U - )
7 G. q! Y6 Y: p1 m5 ?3 Q - ((= etype "CIRCLE")7 I/ y7 x$ I& F. y4 n6 M
- (setq help_entry "modify_Circle_dialog")
7 d! l; j- H# H- J - (ddcircle)
- R9 B# a8 q: B - ). D3 N! G W# E6 H4 M4 X
- ((= etype "ELLIPSE")
' }* b# m. l7 x& {1 D - (setq help_entry "modify_Ellipse_dialog")
9 Y! t$ }- M7 _9 W$ } - (ddellipse). `! O- L5 S+ _8 m3 s- a( W
- )! r; n4 {, e% K: n& [
- ((= etype "3DSOLID")
$ { Z3 c9 J# | - (setq help_entry "modify_3d_Solid_dialog"). ~) X2 v! V& a9 u
- (dd3dsolid)3 g/ r0 [, e& @5 C8 t
- )$ P8 }3 \- o/ I; C2 [) G+ V8 y
- ((= etype "BODY")
* e# F/ @7 G5 ]% K, p' Z - (setq help_entry "modify_Body_dialog")# E5 e+ \% K- M
- (ddbody)0 `% ~( b- z) S: M" s
- )+ ]. D5 @4 r& P5 N7 B
- ((= etype "REGION") V* Y9 z$ D: _" I. ~5 G
- (setq help_entry "modify_Region_dialog")
: K% h0 A# `: j6 V& D - (ddregion)3 s# v' p" R$ M: [ u
- )% L/ a% C, I, r5 f6 i
- ((= etype "HATCH"). U1 a' _$ D) r4 _9 t' `, q0 K5 k: R) h
- (setq help_entry "modify_Hatch_dialog")% |9 r- F6 Z* S+ B) f- I
- (ddnewhatch)% |6 M {. B4 |. d% @7 t+ L8 ^& c
- )
1 X8 C2 e. n: E- A - ((= etype "SPLINE")
! t. a S* e1 G - (setq help_entry "modify_Spline_dialog")2 [8 n& E0 h& L! |8 v* i. n l0 @
- (ddspline)
2 l" L9 o, I% V( y3 [! h - )+ O! Z% s. C: `9 @
- ((= etype "INSERT") ; see ddblock for help_entry* i& v* f5 O- w; t3 q+ {
- (ddblock)
0 ~" `" ?8 H6 {9 L6 Z - )8 }; g& G5 D. b E
- ((= etype "LINE")
6 n3 T' ^) c+ Y8 i! }5 q! l: p- k - (setq help_entry "modify_Line_dialog")
9 ?7 w: @% [( Q {, F6 i3 Q - (ddline)
( q# [3 Q# ~0 F# h1 p* g- A9 b - )# M8 Z; Z* @0 Y5 Z2 w% A& Q& y' N
- ((= etype "MLINE")
8 D) M1 L9 f/ c; y! t) u* b - (setq help_entry "modify_multiLine_dialog")
" Y+ X1 {+ {( w& F5 W - (ddmline) z+ P2 W1 C& |. J1 L
- )3 n' L# z$ ^) [" H
- ((= etype "RAY")
% m: |+ j, x9 _2 t2 S# Z" i6 F - (setq help_entry "modify_Ray_dialog")$ x7 Q. J0 U" X( t
- (ddxline)
- Y/ o: v% X j& ?. t - )
4 A/ g! Y/ w: c& s2 B* \7 L# a+ V - ((= etype "XLINE")0 M; p- T- {' u( P! t& e' `) H4 r; Z6 H
- (setq help_entry "modify_Xline_dialog")
. `* w+ \+ |( f4 B - (ddxline)
J7 L3 o/ R9 T - )8 j) q; e( H( q+ K6 R
- ((= etype "POINT")! j( h, C A. S. a P
- (setq help_entry "modify_Point_dialog")0 ]+ `4 Q. Z* ?
- (ddpoint)3 p2 I5 U+ @# \! E* \5 Z/ f
- )/ O+ {3 I/ E! u
- ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))
9 K' J' t6 J/ B+ | - (setq help_entry "modify_Polyline_dialog")* c: e& q4 G$ Y$ p
- ;; If a 2D pline, check to see if it is planar to the current
j3 r. G7 K4 X: i C - ;; UCS, reject if not. To see if the pline is parallel,
& [) r0 M4 c- _$ O2 l4 P4 e - ;; the 210 group (WCS) is added to the current UCS origin (WCS)
" t& \: o3 t9 W5 i$ ]8 w - ;; and then converted to the current UCS and checked to see if, l5 K2 X* W. P+ |5 E
- ;; it is equal to (0,0,1).# N+ b7 n. u) O6 S0 |' M; {, F% Y
- 7 n+ l! I& s5 J+ W3 S
- ;; Incase the 210 is default and not in the dxf list.
! x" D' {' c& u7 z - (if (= (assoc 210 (entget ename)) nil)9 Z& `; T0 j: Y% ]6 _; n3 h0 G
- (ddpline) X. x$ Z8 h% X: A4 ^% K
- (progn' q; Y! m1 J6 p: W+ X9 ?
- (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))
. M. c) M" F2 B) X: o - (not (equal '(0.0 0.0 1.0)0 G. {0 ^7 C6 w# U! l) g1 U$ J8 _
- (trans (mapcar '+- H8 H9 K( a+ E7 L$ A+ r! D8 c
- (cdr (assoc 210 (entget ename)))
! V6 o7 O& D4 C3 \- W5 N4 D - (trans '(0.0 0.0 0.0) 1 0)
0 c/ K1 F% j* C' _9 K7 i- }2 L - )
6 `, ~. x1 e1 G" X7 U1 |4 n4 f) ] - 0 1; V- U9 j8 m( @) K, {4 O& n, g7 ^' d
- )
( t) ^; v3 k3 b% ^* T - 0.0000000001 ; fuzz* `" ?$ s% V1 w1 d; G
- )
4 F9 q1 @ p4 ? - )& n- e/ O( i- B7 H. ^6 S" L
- )
1 V4 {0 n5 I8 o; [ - (princ "\nThe 2D Polyline is not parallel to the current UCS.")+ |2 w. `0 ^) a
- (ddpline)# J! q8 Y# ]8 n, u5 \
- )2 k* Z! r; r, H
- )
+ @- K# _6 u. T& S8 \8 _: i- M - )& m$ ~8 y2 h* H* s2 W+ E+ R
- )3 t$ l! |9 M/ U# X( c x; ~ V
- 6 I$ o$ E8 \, d+ k7 M( Y" c5 o. G
- ((= etype "SHAPE")4 \. e' M6 A$ S; |
- (setq help_entry "modify_Shape_dialog")2 f1 D$ f! k/ R. G! ~; {# D
- (ddshape)
% X! p4 a" N. ^7 V" `9 t* ] - )" T; u+ D' n& M9 h% P% f
- ((= etype "SOLID")
$ s' @, e8 j* M+ c* Z - (setq help_entry "modify_Solid_dialog")
; {/ o* T# @- V( J2 H - (ddsolid)
( v! q8 _% y3 V0 O - )
) O: z$ y: ~7 F' h) H; F, U$ u - ((= etype "TEXT")
! `9 ?' N; ?$ c9 s& E% c - (setq help_entry "modify_Text_dialog")
9 `. ]. f# T ^. l. n/ F/ ]) q; q# T - (ddtext)
+ C' y7 M$ D1 _ - )9 A* n7 m. C3 m% G2 O) V2 D
- ((= etype "MTEXT")
* ~4 C0 R" s/ B9 Q, G3 S3 Z - (setq help_entry "modify_MText_dialog")
5 ~" E; Q& ]. q - (ddmtext)! m: w/ C. ]% r1 F3 l& d# h1 f% b
- )
4 b( t" x2 ~/ ?" ~ ~) I - ((= etype "TRACE")
) u2 y [" D1 q4 m- r5 ` - (setq help_entry "modify_Trace_dialog")
. O! N, M/ E2 X& l - (ddsolid)5 V1 l7 B# p; ^' f
- ): s& R+ ?& F( |" t
- ((= etype "VIEWPORT")- C$ m3 _9 _0 a
- (setq help_entry "modify_Viewport_dialog")
d6 Z) B; M) M( u - (ddvport)
: ` J; T U! L. {+ E+ \2 t - )
~# w- ^" x: w6 K - ((= etype "IMAGE")% n: r" [' r. U5 G" x: \
- (setq help_entry "modify_Image_dialog")/ m k P1 r0 j( d, O8 H
- (ddimage)1 B$ g' q' O3 i$ p+ {' x+ W: `
- )
) z @6 Q9 g' t3 Y ] - ((= etype "3DFACE")5 U9 ?3 W9 I, H2 |; v
- (setq help_entry "modify_3D_Face_dialog"): J# R5 k) M! s+ F" p
- (dd3dface); y& C2 q, ^ Y& H
- )# S4 \9 H: o$ ?6 j8 w( R
- ((= etype "DIMENSION")8 g4 }3 m. c5 B" B1 P8 F7 d
- (setq help_entry "modify_Dimension_dialog")
I- Y- d R+ m& B! M - (ddimen)' r- f4 F$ F$ W7 l8 V4 |
- )
0 M5 @1 x$ w- y& o3 ` - ((= etype "TOLERANCE")
$ N5 z9 o# m# _0 N$ b1 I - (setq help_entry "modify_Tolerance_dialog")
. V+ V# \* T5 J9 H2 k8 K' N - (ddtolerance)
6 @% |" F3 T3 S7 o! G. W1 A0 Q: G - )
& t, H6 F' r2 H1 a, F# s( a f; B - ;; Fall-through condition changed by MCAD for MDT 1.1 release.
# j0 w/ _& f2 A8 K- N) E - ;; This allows DDMODIFY to work on any custom object or any new object type
8 }+ E+ t( u6 g - ;; that isn't specifically handled above by calling the more generic DDCHPROP.. \4 b9 F! P* h; `+ W
- (t7 Z+ [$ d3 a* J( o
- (if (and (not ddchprop) (not (load "ddchprop" nil)))3 S+ G' [- m/ R0 G% z9 V
- (princ (strcat "No dialog support for object type: " etype ".")))7 T* n5 H+ B. z5 ~" M+ V- g
- (progn" W. ?$ ?; z2 ^% m2 v. f
- (setq tempss (ssadd ename))
! Y) [* \7 d- p, }, Z& p - (ddchprop tempss)7 V' ]5 Q; c* ]) S W
- (setq tempss nil)
3 W0 a, D- m. F' b* e+ V0 b - )
/ \* `9 ?7 O" l* z4 W - )
7 G9 @" a$ D& q+ d b, t. C - )- W3 z Q+ `/ J! \* E
- ;; Previous fall-through condition.5 N7 ^3 O: P5 d% k! C
- ;; (t (princ (strcat "No dialog support for object type: "
& z/ C! ?' B! E% E! i: X0 v8 f/ Q - ;; etype "."! o! i" j2 X, i2 ^7 R3 h! U
- ;; )( q$ Z; n, j6 ~2 x$ E) d' O
- ;; )
7 ]( W: x \; n% J - ;; )& N8 p- o$ T0 J/ u, c& m. j
- ;; )
4 L8 {! [3 q4 j, u - (ai_undo_pop)/ `8 S6 z a' c7 n) L! p
- )
7 a- a" p2 ~. ]# U - )
$ T( Q' R! ?5 V: ~) T - ! e2 U! L& D7 H2 C5 X1 c4 q
- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle* l1 C) c0 v4 n' D
- (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back" N; n" s2 D1 `% U
- ) ; to what we started with
/ ~# I* V- N3 y9 C. f$ h# B0 Z, _ - 5 k' j3 z" k& {8 i9 [1 Q+ ~4 Q
- (setq *error* old_error). T. y- c$ `' B
- (setvar "cmdecho" old_cmd)# Y: U6 l) N1 b" K) p, z6 Q
- (if (not reset_flag) ; if object was modified, then
* [& ] _- | o9 w& M1 k8 k - (ai_return ename) ; return it's ename to caller! ?$ E& O: ?9 }
- )
1 O4 X7 `, m# d9 h" ^* [ - )
" |9 j! |: d; L5 y
( q' n6 p. A0 F. B0 t; ^ z% X- (defun checkForLockedLayer (ename)4 d( ^/ E6 _2 o7 _* `1 X
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))
9 t" r2 s6 y* @. X& A. N- A9 ` - (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))* @% C$ T# h* O( j! F5 p
- (if (= layerflag 4). j: d f0 Q0 s* n
- T K# E( {; t" K& G. V: v4 [
- nil$ q1 L# g/ w* a7 ~
- )
0 T- Z7 U `# C - ). |& m7 d ^5 S
/ n' E# D6 v) M ]; ]7 E# n! ?- (princ " DDMODIFY loaded. ")" N. T7 F9 T* ?& i
- (princ)
2 Z% |/ S3 s! y6 Q& z- { h# ] - ;;;???;;;---------------------------------------------------------------------------------------8 I! V$ K: [8 n4 j
T3 y2 `) G, X) m( R, m- ; Next available MSG number is 8 % A4 F1 \' |1 _
- ; MODULE_ID DDUCSP_LSP_- e' ?: w. O2 w
- ;;;
# o7 \+ E0 l8 j( E( m - ;;; dducsp.lsp
8 H$ _& d0 r1 B8 O5 r: J/ T: m - ;;;6 {2 \5 E5 m0 `
- ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.% i0 x6 N) g( m2 [6 w
- ;;;
! T& J5 ^4 X. n; I' ~4 Z - ;;; Permission to use, copy, modify, and distribute this software3 r& n$ ~" ~! |$ z; N- X" Q7 @& p
- ;;; for any purpose and without fee is hereby granted, provided3 e% Z' G) [ x2 {1 I$ ]3 m [7 W
- ;;; that the above copyright notice appears in all copies and' n8 ]- B2 O! x# n7 G. |6 L
- ;;; that both that copyright notice and the limited warranty and1 F; j$ Z1 f- q7 o
- ;;; restricted rights notice below appear in all supporting
3 _6 m" t: y% t: e& S3 u9 A) G4 u - ;;; documentation.
, K) o2 O# f+ k9 v - ;;;* X6 A" H* P: I2 N: B5 B, [3 H6 r
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
; s6 F( U y% d% V - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
e6 |* Y/ X: Z: R6 J3 [ - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.7 _# t9 F3 _( a8 f
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE+ U( O8 H# U% V) y0 l5 A: k& {
- ;;; UNINTERRUPTED OR ERROR FREE.
* Q2 P" z# x0 j7 j6 J7 [1 E( y - ;;;; [( y! k0 V2 L
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
( K: C' s; F1 K& u' U - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer" c/ o: x# {$ v% r# Q6 g
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
" e/ O9 c/ m) _3 ~ - ;;; (Rights in Technical Data and Computer Software), as applicable.9 x/ B5 _7 o8 ]; N* k% e+ \
- ;;;
3 J$ N( \. ?! n; h/ P" {. y( P - ;;;.4 q1 n7 m$ l- {/ ?9 e
- ;;; C:DDUCSP - User Coordinate System presets dialogue.
+ J \4 |6 L& V! t+ D) P - ;;; 9 ~$ p _6 O% }# ?% L+ a! f
- ;;; Uses DDUCSP.DCL for the dialogue definition. The
7 u B& j; n3 T6 G5 I9 {2 ? - ;;; slide images are in ACAD.SLB.
4 }& `$ M9 e7 F6 u - ;;;: j) p8 w. W& v3 y/ C0 U# f
- ;;; ===========================================================================" ? y) O& O3 T f. O/ r
- ;;; ===================== load-time error checking ============================
- G9 ^: y0 v) @. x - ;;;
% k6 K& z& z2 z+ F3 p0 S9 H2 e6 l4 L
7 c7 l, C3 ~" K% C6 `# A6 i- (defun ai_abort (app msg)
. P' l9 v3 b! R' k0 {' F; ~* L - (defun *error* (s)5 b0 c5 f* P6 ^; i6 U. b( i
- (if old_error (setq *error* old_error))# ?! F2 N+ }( d( H ]
- (princ)
5 N; S. n7 W$ _- {% `7 M - )0 q( T+ p8 y3 J/ }1 b- x
- (if msg% ]; o) G& q- \$ y5 X9 r
- (alert (strcat " Application error: "5 [% B0 L* F# x I
- app$ k0 A; R' x3 P6 ]1 r
- " \n\n "
' K5 x( h( ~0 h5 a; y - msg( P+ ~0 t+ S4 m m5 A7 ^
- " \n" q) k5 }# m4 _1 t
- )
8 h2 [4 j* @) D' l0 h0 v - )
7 N! n/ U5 g9 y2 ^ - )! m( {, l& S9 p% _- U$ m/ t" Y) D
- (exit)5 B( `9 e* r: C
- ): ^# r( O7 K. c: R7 I7 I
. b) q8 h4 V5 b! x- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
. K; m( K" F( M - ;;; and then try to load it.
0 F& ?, e& t- x9 s* w% l - ;;;
; t% y5 B# O( y* B$ u3 F - ;;; If it can't be found or it can't be loaded, then abort the' s, B& u; O4 s% U& m5 |
- ;;; loading of this file immediately, preserving the (autoload)
u' ?! Q& W) f+ C) i( x0 k - ;;; stub function., v) S5 X. z% O: A+ p# p% [
0 Y7 Y) p( }2 H1 K ]- (cond! w3 U" P/ s) X% `
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.3 b* d: c! ]" n
- , ~0 [/ B9 j( C- y7 Y' E
- ( (not (findfile "ai_utils.lsp")) ; find it- x' c* P. g. z- S
- (ai_abort "DDUCSP"! ^. e! z3 [; D
- (strcat "Can't locate file AI_UTILS.LSP."
8 I3 ~- I6 }0 C" V - "\n Check support directory.")))
6 t z# ^# P+ H4 U: O - 6 G, c! w) K$ n1 V' }* n- w. y# y
- ( (eq "failed" (load "ai_utils" "failed")) ; load it$ P( S3 B. L3 O# f" G4 Z
- (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))/ c( k6 d" t! B; ^5 m
- )7 f2 ~7 ]5 u( \ Y
7 q$ e/ S K$ H8 X4 j- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
0 g. ]7 S* v8 n - (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses3 t% r1 L6 E- l1 a6 e1 C {- ~+ k
- ) ; ai_abort's alert box dialog.
. P+ `. E8 I; }9 G9 [4 t {( _ - + }+ v" d9 D& z; I- b
- ;;; ==================== end load-time operations ===========================
' V6 \+ }: a& \) D/ D - 3 c% s2 f0 X" O
- (defun ai_ucsp_start ( / program)
: F$ U4 S" a. s - ;; Get program name
3 T) z6 M' j v& O. t1 e6 i - (if (not (setq program (getvar "program")))
) K3 |# O) _8 y: [9 [ - (setq program "acad")
- Y5 s6 R. B I' }2 q8 O; q8 B7 f7 } - )0 M$ X! ]" P+ Y* G1 [
- (foreach v0 '("world" "left" "cview" "top" "front" - p' V, g# `' u. H
- "bottom" "back" "right" "prev")
# A# Z/ E1 L+ c - (start_image (strcat "ucsp_" v0))6 Q: u2 y1 m2 }* j/ S$ c
- (slide_image/ n- c+ b2 y; _' n: E
- 0 0
" o5 P( t$ _& m7 J - (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1)3 c) X7 ?* q8 h0 X3 l5 U
- (strcat program "(u-" v0 ")"): w! @# b& P+ h( L$ q6 _: ]4 P
- )
3 `* u M1 R9 k6 k" B - (end_image)$ n! n" B: ^8 W; ?' o: t
- )5 r; q3 V- l$ X+ m! a4 n2 q
- )
" X5 b- O6 O/ w3 K - : W. `4 R# i3 b6 l0 n: u7 w
- (defun ai_ucsp_set ()! m) f: e- u: p7 H0 ?4 M9 m6 a! ^. l
- (if ai_ucsp_sv
* e. N# [0 I& C3 k \& ?6 R - (command "_.UCS" "_V")( h. H* c/ m+ P8 }' U! O
- (if ai_ucsp_prevs' Z2 C/ I5 j7 }
- (command "_.UCS" "_P")8 j; H$ x3 P. g( ]! U) l
- (if ai_ucsp_chg6 H; R9 `; q4 K7 K; k3 K4 W: r# Q% d
- (progn
8 U6 ^2 l8 h9 } - (if (/= ai_ucsp_a "*")+ H( G- i+ H% ]! k
- (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))$ i5 r; ^0 j8 L
- )
0 }4 g: D: t1 {7 ]$ b# J3 t - (if (< ai_ucsp_pick 6)
" K: q/ S% u9 P8 B; b6 J6 ^ - (setq ai_ucsp_set0 "@")
& F' [. \. [* Z - (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*")
- u5 C; R. K8 ^* B - )
7 O/ H, P9 I- l9 _0 L, \' H - (cond ((= ai_ucsp_pick 0)3 F( d/ y6 M1 A( y
- (setq ai_ucsp_set1 "0,-1,0"
! L' y( p: z& r, n - ai_ucsp_set2 "0,0,1": b4 m5 T; n4 r5 Q, X
- )
. A( O1 O' F5 L4 ?. ^+ z - )
+ q) y4 J. @) i9 l9 T n - ((= ai_ucsp_pick 2)
1 [/ `$ s/ o$ s - (setq ai_ucsp_set1 "1,0,0"8 _% E& J4 d7 E- {; }2 i
- ai_ucsp_set2 "0,0,1") X2 J1 z( M6 M t' ?6 e# A
- )3 o; \4 J9 \; _, m# V3 {
- )9 M; d7 b3 o( C- T9 \0 F: F0 E
- ((= ai_ucsp_pick 3)6 D2 j8 P- m/ m
- (setq ai_ucsp_set1 "1,0,0"
6 P# i. B5 w5 h" E% H) G o2 ]' d - ai_ucsp_set2 "0,-1,0"
! ^) Q) c5 v5 x0 n - )) f7 T% _! j, e& R5 ?- v
- )2 h8 Q% B0 i% f" {$ G, f
- ((= ai_ucsp_pick 4)
8 ]) s" M& C0 D0 t - (setq ai_ucsp_set1 "-1,0,0"
1 k6 r/ V q9 q: J. l. | - ai_ucsp_set2 "0,0,1"8 E+ ~& o( G# t( S& t6 {& \
- )
! ]6 N: m# k( m) V# i Y+ q+ T - )# g6 j# G3 R1 L
- ((= ai_ucsp_pick 5)# p" p! f+ d8 [- X
- (setq ai_ucsp_set1 "0,1,0"" T$ K! Q5 L* x2 x. D
- ai_ucsp_set2 "0,0,1") p+ V/ {5 G! r* O( P+ i
- )
! y$ E8 P- V' w9 | - )7 q" y6 `* T$ h: W+ N# a }$ G
- (T
3 G: i E; m' V' v0 D3 k - (setq ai_ucsp_set1 "1,0,0"
: p& i5 L3 l% c8 h" j - ai_ucsp_set2 "0,1,0"5 R/ x) O9 S& c- l j
- ), t& o* C) D- r7 E3 v2 G: x, ?
- )
- p' Z7 x9 J( U' r, l' O - )
z# f$ R3 S- I) P - (command "_.UCS" "_3P" ai_ucsp_set0
( Y6 o& L& c# f; z3 S. D$ H8 E - (strcat ai_ucsp_a ai_ucsp_set1) T6 X, `6 G0 v; P+ l
- (strcat ai_ucsp_a ai_ucsp_set2), i3 {) ?# E8 e$ M4 j( @5 y! Y
- )
- z2 f) v1 |5 [& J - )- Y( |" S$ h, ^- C2 h: }. C+ f
- ); H9 B3 ~9 X; k0 a
- )/ L) l% |, j2 v, i' I1 S' \+ d
- )
8 ]7 }5 M! @3 _( |$ L - )! i, }8 g" o3 ?, D% R4 B
9 q2 Y' `2 y3 c. F- a- (defun ai_ucsp_p (val currtile)
1 G( U$ `# l o, o: F - (mode_tile ai_ucsp_currtile 4)& {* j; |) u8 k9 l
- (setq ai_ucsp_pick val; [4 }9 n/ n @6 P0 R J% J
- ai_ucsp_sv nil$ f$ K, V' ^( H) Q
- ai_ucsp_currtile currtile
& d* @0 v. N3 K# P; J: z - )
# f' V7 W$ P2 J, u* l - (if (/= val 1): ~5 r4 S9 `* _2 c/ f( w
- (setq ai_ucsp_chg T)
) @! M4 y, i& V - )
p5 x: k% j% d7 l( R7 ^ - (mode_tile ai_ucsp_currtile 4)' U9 {) |; q& n0 I0 Q
- )
! w) {' }6 i- Y6 n5 C$ U
$ s' o1 I: X. i/ t" f) a3 I' ^- (defun ai_ucsp_swcs (); `- Y: x# b3 S. E8 p9 u L) `2 b; [# x
- (mode_tile ai_ucsp_currtile 4)+ f9 I9 [- V1 W: U
- (set_tile "ucsp_a_wcs" "1")6 M3 v1 {6 K' w' M2 l* `% a* N
- (setq ai_ucsp_pick 6
G* K9 z8 t* w' c; z8 M0 A - ai_ucsp_sv nil9 T# n, Z( }+ H6 q$ q
- ai_ucsp_currtile "ucsp_world"
( n- @) z: M( }1 N$ L) n( z - )
7 A. f$ C3 l G! t1 r7 I - (if (/= 1 (getvar "WORLDUCS"))' n& \7 U! [0 E9 n
- (setq ai_ucsp_chg T)7 c# A" ?. g# W* s. `+ h: ]+ U
- (setq ai_ucsp_chg nil)
$ Q! b" ? R b9 o7 ^( J - )' z) |7 I( l% p% W7 O
- (mode_tile ai_ucsp_currtile 4)& s! J! `( d$ ~
- )
& f5 k0 S+ n( p* t$ L7 `
% z' A6 W% m n: x5 N0 I7 V- (defun ai_ucsp_cview ()
& F0 Y! K( U- I1 { - (mode_tile ai_ucsp_currtile 4)
7 Z. q9 ]; K6 q - (setq ai_ucsp_sv T ! f3 R, I/ }# f
- ai_ucsp_chg nil$ ~, H/ I' g# |7 A% z1 E
- ai_ucsp_currtile "ucsp_cview"
6 `+ A( U, M9 W - )6 l* S' G" G9 d
- (set_tile "ucsp_a_wcs" "1")( y8 l+ V& o, X1 O+ N
- (mode_tile ai_ucsp_currtile 4)
' L7 E9 ]4 Q* x* c8 R: w8 ] - )# c) d- E! ]! N; B2 A
- 3 _5 \7 a3 o9 J) ?' s3 f3 b7 h' ]1 o! |
- (defun ai_ucsp_rucs (typ)
& }8 s/ `8 [. P, J$ ` - (setq ai_ucsp_a typ)
" F8 c* Q1 ^, ?1 `0 ? - (mode_tile ai_ucsp_currtile 2)
# F" o9 \; g+ G. ?' X- ~+ \7 { - ), }4 K- n# T4 O" v T z
# s" P0 l& q" D K+ d; x! O- (defun ai_ucsp_prev () W9 _+ F6 V6 b& {! P- F- j* R
- (mode_tile ai_ucsp_currtile 4); Q0 j2 [7 A1 N% l/ n
- (setq ai_ucsp_prevs T
# j1 f: n0 ^. ]6 A/ w - ai_ucsp_currtile "ucsp_prev"
! _! e$ P- S/ o& w! b - )
' K7 ?3 n" r5 ~ J1 f+ L7 P - (mode_tile ai_ucsp_currtile 4)$ v* [ S6 n9 U' Q" e; I7 ~+ D
- )
; g4 t _" Z5 M% n5 m
. }+ ]& C; t( ]* v- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)4 z7 I& c5 B# g( B6 G% {
- (if (not (new_dialog "dducsp" dcl_id))+ S( Y/ W& i9 r2 c. X& H8 @! ?
- (exit). q) R4 P! d. k) k
- )
" a% J' Z% H8 ^
0 s9 I. T( J# G; q- (ai_ucsp_start)
( A0 w5 _5 Q; F* y( N0 j/ t: M - (setq ai_ucsp_a "@"
* G, O) H) a) h" s5 J1 b) y2 R - ai_ucsp_pick 2
: ]% l, E) {' y! F5 p% G - ai_ucsp_currtile "ucsp_top"* }2 l( K+ f3 S6 x& U4 }/ }
- )) Z7 ?( a- b' n% O2 k5 S7 [
- (if (= 1 (getvar "WORLDUCS"))' l& b' I6 w- C& X. R
- (progn
! H0 G6 G( i) ?# n c" s - (set_tile "ucsp_a_wcs" "1")+ A5 J, w( v; Z# ^) q2 l; U- |6 P
- (setq ai_ucsp_currtile "ucsp_world"). H5 x' Y9 F; @- @
- )' C. E5 ?( y0 Z2 ^" H( w! E d
- (set_tile "ucsp_r_ucs" "1")
' P& W0 u* s% x n @ - )2 |/ N0 _) M* c) P Z; R+ y
- (mode_tile ai_ucsp_currtile 2), \1 E" s5 |2 N9 S ^4 h; v0 _
- (mode_tile ai_ucsp_currtile 4)3 K2 F: n7 b/ c
- (action_tile "ucsp_world" "(ai_ucsp_swcs)")! @4 N* a! a8 ?0 _; d' j6 y
- (action_tile "ucsp_cview" "(ai_ucsp_cview)")
" A5 a; Y( ]) T, \$ f1 n - (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")3 I& ?3 w+ o- D* v$ r ]' @* j
- (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")/ |: `* A$ ]# W5 @5 \5 @
- (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")
# B' C* I9 N4 y$ {! q/ O - (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")3 k) m/ U& E/ c/ s
- (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")5 }! P& P3 h' K- P
- (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")
/ W, A$ D6 b: M' S - (action_tile "ucsp_prev" "(ai_ucsp_prev)")
# D9 u! M3 d# I# `4 w1 l5 L - (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")
6 j4 y( K& J0 D9 A - (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")
1 @9 e( L: ?6 z1 P5 H; o - (action_tile "accept" "(done_dialog 1)"): K' |: [! _0 t! e. F+ n, Z
- (action_tile "cancel" "(done_dialog 0)")# @2 V% y! P' L3 v9 w
- (action_tile "help" "(help \"\" \"DDUCSP\")") q& L+ z7 P" p1 h+ H
- (if (= (start_dialog) 1)5 A# H; e# g- y" `; i" g! |
- (ai_ucsp_set)+ |' N% L1 q' I. L# `* ?' [
- ), a+ r l* W; q# Z/ L
- )
1 z0 h$ `) ?9 m - ; \$ F6 d- ]: U$ _2 _( n9 Y+ v
- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs
n+ q. x. k& f& _# y* U8 @ - ai_ucsp_sw undo_init)
% z8 ^* g: W( ] o- f+ ]9 J
1 @9 m& j$ P1 B/ x9 g$ N- ;; Set up error function.
( v- {6 R9 t' r - (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho
3 o7 i. X# w' k - old_error *error* ; save current error function
( G, P9 Q; l% Y9 C8 _* g - *error* ai_error ; new error function. A* w4 [( ]% {5 o! m8 H* E
- old_osmode (getvar "OSMODE") ; disable OSNAP for duration
# M; G$ B& @, g$ H$ } - )
4 R: w; h3 R5 B2 R. x/ m4 i6 U
$ L" a$ V' k. H& k! l- (setvar "CMDECHO" 0)
$ Q( p$ ~& ]% Y+ [! _ - 2 x) v5 p9 ?0 G; y# }, s/ ~
- (cond
* l( J, S# M8 a4 g" o - ( (not (ai_notrans))) ; transparent not OK8 t6 B D3 _4 e2 \1 `+ q
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?& ~+ ^& P; s. q- K4 h( r+ i$ V
- ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?
9 M& n, s/ U# r, R - (T (ai_undo_push)
* y7 b; `/ I: j# j: k0 G z1 x4 H - (setvar "OSMODE" 0)0 K4 k6 ~" q2 V* o
- (ai_ucsp_main)8 i& S$ M) l7 q0 M# j
- (setvar "OSMODE" old_osmode). y- e0 z/ A7 p4 x: R/ R8 R$ |
- (ai_undo_pop)# D" s- t a6 f% }7 B% C5 J
- ). m0 }) I5 r3 k
- )
8 S8 w ]/ q0 w% e% T - 7 m/ F1 m' D+ T* R, A* W
- (setq *error* old_error) % A1 h3 ~& A3 i0 z
- (setvar "cmdecho" old_cmd)% R8 e" u0 h6 D9 S$ x5 |. k+ `
* X- g; C4 c. C4 c' N( r0 {3 j- (princ)
. J) X5 h5 {; l6 ` - )
: I! D( K8 h6 J# \/ q& u! B3 v' k
" h& w& s$ ~2 g6 ]- (princ " DDUCSP loaded. ")
" w! _1 q2 x2 M/ P2 a" h - (princ)
0 V8 g, U7 P% S$ M
2 T$ H |3 r* d/ k6 k- a, q- ;;;???;;;---------------------------------------------------------------------------------------3 i1 Z4 k% i( I$ x" |
- 0 N M$ R+ ?8 t4 E
- ;;;----------------------------------------------------------------------------
) f+ o; Y1 g, P2 p7 L" b - ;;;8 m9 K# I0 z* Y6 T
- ;;; EXCHPROP.LSP + v4 ^$ g# L4 U" u* q# |
- ;;; Polyline and text modification capabilities added by
2 E; p5 u6 D8 R: l - ;;; Randy Kintzley 2 s5 c; \* n8 e6 D: P) h
- ;;;
* H. l$ g: P5 V9 `5 B9 L - ;;; Copyright (C) 1997 by Autodesk, Inc.4 a# m6 r. W) P
- ;;;
; i; p8 V) A! z" \ l4 W - ;;; Permission to use, copy, modify, and distribute this software
% ^% J' s' d" l3 \# |- o - ;;; for any purpose and without fee is hereby granted, provided
e5 _2 q c+ D+ y. r - ;;; that the above copyright notice appears in all copies and) c7 }1 z6 K2 E0 H& D
- ;;; that both that copyright notice and the limited warranty and
$ _) K) ?- ^+ Y) y P5 m - ;;; restricted rights notice below appear in all supporting
9 D( G! C% \7 z1 b - ;;; documentation., h9 M6 r8 q7 ~) g6 N. u1 j0 k
- ;;;
3 i X4 f2 P+ H$ q - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
, f& \! n5 @, a8 p% ? - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF7 v# Y; D1 p# y0 i6 f8 I. ^" [
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.& H1 f. V, m1 U# P* D- T, i
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
/ X* ?: H) m/ V2 m - ;;; UNINTERRUPTED OR ERROR FREE.
( |+ Y+ V) j) S% m, K3 e1 _! `5 ~ - ;;;: j! Y. O, E5 Q
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
5 }7 F8 O L& ]9 n - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer5 N, [5 @9 f) F# A& R
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)3 N) x" S% x: |( ?& n! S+ n( d# @3 i5 [
- ;;; (Rights in Technical Data and Computer Software), as applicable.1 R& [& f- H. n9 T4 Z' v
- ;;;
9 c6 @- `) x( k - ;;;.1 c) J& }. A& s2 Y' K
- ;;; 28 February 1997* I. _1 _6 ~! ]0 U# M2 v( f9 o
- ;;;
% s: ?+ g; K( G2 u6 h( p5 X- F - ;;;- \1 K' R* H) P/ I8 v( Z. H- C5 ?6 ^
- ;;;----------------------------------------------------------------------------
* \, r; W' l6 H7 ?0 C* h - ;;; DESCRIPTION9 g- d0 o' D& T! O m0 ?5 ]
- ;;;----------------------------------------------------------------------------
7 Y G- p. E# K5 g. R - ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This
5 I3 N& t! |) B: I& @ - ;;; command gives the user the abilitie to change several characteristics
: W( c* A# W$ l; A. C: j7 o# N - ;;; of selected polyline and text objects.
7 @' J4 y* O% g9 g1 D' ^ - ;;; The style and height of selectected text objects can be modified * h. j/ B' Z, V R5 W3 S; L" s' j
- ;;; (including text, mtext and attribute definitions) as well as, width and
4 F Y1 J+ T& f! z1 L& @7 R8 ~/ n - ;;; elevation characteristics of selected polylines (includes lightweight and
; \$ O% V u, p! Z; B. _2 | - ;;; traditional polylines.)& J! H- @' h U3 ?6 h. U) v
- ;;;----------------------------------------------------------------------------
7 Y+ u' G3 l% @$ ^+ \/ n - ;;;----------------------------------------------------------------------------* }: D2 Y; B# o2 V. e4 f i* y, V
- ;;; Prefixes in command and keyword strings: D( A0 M% z7 k% o5 m( ~1 E! ~
- ;;; "." specifies the built-in AutoCAD command in case it has been
% E* U0 i7 E4 f6 V- ]0 L/ f - ;;; redefined.
# {2 s& O: X( h+ h* |6 F0 u - ;;; "_" denotes an AutoCAD command or keyword in the native language5 ]( D- D& f& S+ g" _4 d
- ;;; version, English.2 |. h6 t0 N- A7 I9 g8 e! v
- ;;;----------------------------------------------------------------------------
7 T7 F- b8 @3 h# b# ^: o - ;;;
' F, i% B" o+ v/ k9 a# `4 K- w0 a' G - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9 r9 o3 z" u7 e' U. |* h b
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
: z) P) [" ?/ @! `. m8 S - ;Functions created as result of loading file: exchprop.lsp
8 g g9 \* \$ P8 |$ ]2 S - ; DDCHPROP2
) e& l0 _7 C5 ~ F# o8 K9 W - ; DDCHPROP2_INIT$ ]1 H; \! E! {3 P+ W
- ; DDCHPROP2_SELECT6 B$ [, m, V5 ]1 `! G$ t
- ;
9 j) N0 b1 }' X0 W; F1 G' _9 m( T - ;Variables created as result of loading file: exchprop.lsp
7 J: }# p, ?7 Q5 d/ a+ Q - ; OLD_ALLOC
$ y' r/ X! J0 g7 s2 e - ;0 I+ U+ q0 ?& z+ ?4 S
- ;Functions created as a result of executing the commands in: exchprop.lsp5 y2 s- G c* w& G: B8 ^5 o3 c
- ;
( M% R1 x8 v+ p$ d - ;Variables created as a result of executing the commands in: exchprop.lsp, i& G9 a) y; z+ f, _ f7 z- V7 \
- ; AI_SELTYPE
* e7 v* |9 I N6 Q- H - ; BONUS_ALIVE5 t$ B4 @5 {: ~
- ; BONUS_OLD_ERROR
, I3 g( W+ s9 z# A, _5 ^: H - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
" B4 D* [- B2 ^+ o; {) q5 ^ g8 O - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5 R/ q1 d6 e7 _: j2 \ - ' `6 [1 W) j' k% Z
- ;;;
0 p) u8 l& B! A3 K" p: } - ;;; Avoid (gc)s on load to improve load time.8 q3 D, D; ?; l% ?
- ;;;0 J' ~8 x2 j! L5 F- n8 k
- (defun do_alloc (/ old_allod new_alloc)
. a* g3 L! y/ o - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
: l# s3 q* s F O6 m - (expand (1+ (/ 4750 new_alloc)))
1 a8 t% w" o" | - (alloc old_alloc)$ h0 m, E+ R% S7 p
- );defun
3 n8 j1 u" B& h3 _ - ) {) }( T' r4 `( V0 R+ o4 K
- ;runs at load time - rk
! f2 C$ w! B# p8 n% |( k _ - (do_alloc)4 j. I# N* Q) q% R
- (setq do_alloc nil)
- K2 c6 r+ M* S# F5 f - ;;;
& d5 g+ K3 {) r5 v/ r: i - ;;; ===========================================================================+ U/ s( C8 j2 h- q
- ;;; ===================== load-time error checking ============================
" ]- {) i( ^9 {" v - ;;;
. x4 h4 k' T9 Y5 [6 G4 k - 8 z) J' k2 ]/ _1 `
- (defun ai_abort (app msg)
. d4 B) N. }: m$ b; Z - (defun *error* (s)4 _; I. d6 A+ _7 @/ Q, w* E
- (if old_error (setq *error* old_error))
7 q( ?" T8 _8 S0 I2 @7 X: p - (princ)
% ^: n: c& [- q4 S; I+ R/ b$ X - );defun) Y ^% x$ b) @
- (if msg! P8 U2 T# y% ?( g! h
- (alert (strcat " Application error: "$ }, ~0 p' I. @/ L4 N
- app i. F! z+ y, U1 a3 A, P3 q9 {: E
- " \n\n "
! I. C( _# D. h" u - msg5 H$ F7 L1 R: ?5 @* D+ _
- " \n"
, T) [/ s0 q: Y9 \9 C - )* g+ W6 T5 U; @! i6 {6 p( o
- );alert
! p6 P: J& p1 r- H - );if6 O& y: @6 z% h% R
- ;(*error* msg)/ k$ A u$ Z+ D
- (exit)0 H6 l6 n/ O' c7 v3 p% [
- );defun ai_abort2 V6 W/ K& }) S8 X$ I
- 6 ~9 T8 a! G- P* J7 F
- ;runs at load time - rk
6 v/ S: |( w& Z2 G. a6 L - ;(if (and *error* ;added the if wrapper around this - rk.
. d6 j# M9 w) Z4 z/ m7 B - ; (not old_error) 3 K' g, K* V8 C; a; w6 z
- ; );and 4 X* a+ @6 V7 C O! y
- ; (setq old_error *error*);setq( _5 e1 |- q9 J O2 r- j% a
- ;);if
3 w) G8 u9 n. _" C; ]3 y/ C0 W
' N+ U* o) w1 k5 M. z0 p a7 T
. g, G! K( V1 `1 i- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
8 a! ~6 P9 C; R; D. P - ;;; and then try to load it.9 J& T: `& G" s. v* h
- ;;;
- S1 @- ^! o5 ~9 q - ;;; If it can't be found or it can't be loaded, then abort the
1 q* W8 z- a" P - ;;; loading of this file immediately, preserving the (autoload)
8 |/ y) |$ T( B( P9 ~7 x+ f s - ;;; stub function.5 N7 g8 j$ E7 |1 Z+ a" V/ H" r
% G% f8 O! E& v' Y- ;runs at load time - rk.
1 `# j1 L3 _* I W' M' C) ^ - (cond
/ O/ G3 E& p$ x - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
8 E, T/ K. k# _+ S7 ` - ( (not (findfile "ai_utils.lsp")) ; find it% f% m" t3 f; q% ?& E
- (ai_abort "EXCHPROP"
8 T& E }5 [" K# d; Q' [9 c - (strcat "Can't locate file AI_UTILS.LSP.": ^: B# L$ t! O% Z1 j( |, ?. f
- "\n Check support directory.")
1 @! d; A3 G6 i n - );ai_abort6 b: W' c+ m$ b) \4 d
- )
! s% {6 G7 T5 F2 k- ]: A% p P+ } - ( (eq "failed" (load "ai_utils" "failed")) ; load it
8 `; E+ c- B( C+ }: L/ a9 b - (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")- L, F. V0 P' u
- )
( S+ b1 b. S( ?8 P - );cond close
; k6 Z! V8 e6 @) ^5 R - & m8 E0 n$ J: k9 L
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP9 ^ o$ S# @& |5 A c3 Y
- (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses- S/ E' P* X7 d: ]: H: |
- );if ; ai_abort's alert box dialog.+ w) F6 r1 }3 D' L5 [6 @4 y
$ F( j! ?4 g+ N9 F0 P; V( T3 v$ u- ;;; ==================== end load-time operations ===========================5 k! F- ], r$ M$ e
- 6 i; s* ]5 K& H t' R
- ;;; Initialize program subroutines and variables.0 `- R/ z/ r2 r% m, v
- 6 r0 D/ @5 X! B
- (defun ddchprop2_init() R/ N( I6 A# a; g
- R9 V' s3 E9 f- z
5 f# O: Z4 [1 |0 N
+ A4 w; o7 o3 V$ J9 f0 v7 u- ;;
5 N& q4 p2 U- F1 I - ;; Define buttons and set values in CHPROP dialogue box
0 r# K7 o8 f) p1 D - ;;2 |2 o5 U, A+ `
- (defun call_chp2 (/ cmdact p1 p2)
& p: u8 A _8 V ~ - & Q- P1 R( r; K% R) d. Y
- (if (not (new_dialog "ch_prop" dcl_id)) 2 x( h+ g5 ]. d6 A: R9 [
- (exit)0 |0 ^" [% m3 H3 G* ?9 c" k
- )
U/ c. T% s5 \; Y6 o
7 c ~$ s$ S' K- (set_tile "error" "")
L& h: c, Y& |4 C4 { - ;; Set initial dialogue tile values& B- S) d9 x; U" H. A* v. h
- (set_col_tile)
) a9 O8 z6 U& o - (set_tile "t_layer" elayer)3 v! x! [$ u8 C$ }" t1 Z: B+ x
- % [' i1 ?, t) c d4 {% Z4 D, c' t
- (cond
6 k) ?$ @1 Z1 ^6 F( s# W4 Q9 D - ((= lt-idx nil)
* O! s% q1 F+ B - (set_tile "t_ltype" "Varies")
( w$ W1 n. b/ { - )
8 [) d# a, s, M; }& X3 l - ((= lt-idx 0) ; set tile "By layer & layer linetype"
$ B9 e1 H+ a( N! H5 R - (set_tile "t_ltype" (bylayer_lt))
3 @5 ]& d q( T J8 \0 k1 ?7 K( J - )
: Y$ | ]0 P: v5 _/ C! P8 W2 g - (T% w' |4 Q* @6 u5 y! C& y* c% V! w9 S
- (set_tile "t_ltype" (nth lt-idx ltnmlst))3 c; Q: h. x$ S& E
- )9 X, ?; O( Y1 l7 B
- ) }0 W0 f- B# I! j
$ Y) i3 q( Q y, ]' ~) y: m- (if (or (= ethickness nil)
9 U* o7 B, @$ r' N& D - (= ethickness "")
% E$ i9 o$ K4 Y5 n x5 ^, e - (= ethickness "Varies") , @5 G$ \% }1 S
- );or
# `9 I* ]0 d/ ^3 a& O - (set_tile "eb_thickness" "")
4 F. r/ }. o( m, g: W! y - (set_tile "eb_thickness" (ai_rtos ethickness))3 O2 w. Y) h& U5 Q6 f2 b- r
- );if
3 ~' q) m2 N$ t8 _3 }, k8 |7 R" W - (if (or (= eltscale nil)6 m9 f; x$ O3 |' [: ]
- (= eltscale "")
2 p/ }" P% A! x8 A D - (= eltscale "Varies")
% _0 Q- ~) L8 I ^% A, T/ ` s -
* j! L' b! K- g0 a2 S - )( p2 x. {1 _ Z
- (set_tile "eb_ltscale" "")2 Q5 n4 }; c/ r- q* y/ c' X! H
- (set_tile "eb_ltscale" (ai_rtos eltscale))
1 h/ v( s/ I& P+ D - )3 k, @1 V, H" `' g4 K% b& h: V
- (if
* _' h) |/ l9 _3 ]5 R) u - (numberp ewidth)
3 I% O+ u& y% e - (set_tile "poly_wid" (ai_rtos ewidth))
7 f6 a6 Y# _- p3 t8 o - (set_tile "poly_wid" ewidth). Q# A1 Z& E3 d, R
- )( P5 n7 g! m% r, L9 g; U* c$ W
- (if
/ s3 w& B4 K0 @8 f' h0 ~; x4 r7 U - (numberp eelevation)
) o3 h3 V7 x6 H5 E7 E) P( y - (set_tile "poly_elev" (ai_rtos eelevation))
s8 D7 @; V! P" R - (set_tile "poly_elev" eelevation)
- Y% H( J2 ]8 P" g: q5 N! ]/ Q2 N# h - )
' u& @6 y7 W3 x7 L, _: N - (if
2 j, X- c% h4 W0 B% v( y, Z - (numberp eheight)0 O: D/ }5 \ a& K
- (set_tile "text_hgt" (ai_rtos eheight))5 I' E$ P7 F. ^. I6 S
- (set_tile "text_hgt" eheight)
! H( U, ^0 _5 m8 W+ F - )6 R# {) V! H7 @4 ~0 B" F6 J$ [
- (if (not estyle)
1 G! ~# `; G; g/ s* g" g; e' e - (setq estyle "")
/ w) ~; _( S% I4 ?. ~' o - );if * W R" C& R6 F. A% ]. M7 U
- (setq hair_style_list (tnlist '("style" 16)));setq
1 ?1 m8 t/ B9 p" b+ V$ q - (if (not (member estyle hair_style_list))+ A: ]$ x' o) T+ Z+ E5 k
- (setq hair_style_list (append hair_style_list (list estyle)));setq
# Q& k; N4 V" |8 m: t' j - );if 8 u$ O8 l1 g" |( J
- D1 D# S5 N3 D" n/ b- (setq hair_style_list (acad_strlsort hair_style_list));setq
: z7 E" ~ P% y( n - (mpoplst "text_style" hair_style_list)
; @( v& ?4 {% v* m6 F& q* W# ] - (set_tile "text_style" ; ~* D) ^$ H5 J& k8 ^
- (itoa (position estyle hair_style_list))
9 X# |1 u; J$ S4 M - );set_tile : M9 f4 O) q- p5 O+ J
/ t/ m; P6 l; Y. `, @% v9 F, @- ;; Disable tiles if need be... ;@RK* l, J& s# C; U
- (setq a 0). Z5 }& P6 M" k7 d
- (while ( < a (sslength ss))
+ f/ R$ c) G. r' K2 K0 M - (setq which_tiles
9 H% @2 J" o$ o6 }" G - (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))
6 V/ v+ i1 C. Y# O1 V -
x- R% h; W; @" i" J: K - ;; If all fields are enabled, don't bother checking anymore.
2 c; @# q0 H3 d$ ^: Q% ^! Y - (if (/= which_tiles (logior 1 2 4 8 16))# f! G( W, b; G9 t
- (setq a (1+ a))
, Y' I4 U! K- D7 \! { - (setq a (sslength ss))2 ~4 B( N% x7 e$ b' d7 ]6 E* t8 {
- )4 S6 S, }0 D7 D: x. S0 B
- )
7 N8 R0 k4 p+ ~ - ;; Layer Button and Text Field
2 a6 y& w. D0 t4 ], o; t
& d' g( x/ u3 n- Z" \- (if (/= 1 (logand 1 which_tiles))
( g( O6 s5 m6 G3 V8 r; j6 ]. { - (progn
+ n5 e- h3 j7 Z1 `7 k6 X - (mode_tile "t_layer" 1)& |% r, q; ?3 b: u
- (mode_tile "b_name" 1)
; P9 `, q- w- c2 S - )3 K: x2 q$ s: b8 T
- )
g) x9 e( w! n0 r" t! Y: B
7 }4 t( b) k( q/ E- ;; Color Button and Text Field
: Y8 a& m( O! u f _3 c - (if (/= 2 (logand 2 which_tiles))# T2 h, b! S# H2 N; R! V0 {
- (progn
# I* s$ T ^2 v( e - (mode_tile "t_color" 1)
$ F* ~! I8 K; ^ r - (mode_tile "b_color" 1)
0 z* k4 a% b" }0 p1 U - (mode_tile "show_image" 1)
; F3 @. C+ k9 S% V9 G- d - )
% F, K& h3 f9 d& C5 |) S - )* r0 j- G6 Q# y# t
- ;; Linetype Button and Text Field
6 }8 ?$ r" F8 {9 x8 K - (if (/= 4 (logand 4 which_tiles)) P7 k3 k' c! t5 _. B& S
- (progn. J9 p; N( Y0 \) ]5 I3 U" J
- (mode_tile "t_ltype" 1)$ y. K2 ^' w0 i h
- (mode_tile "b_line" 1)* v( e+ c3 F' y. F6 P$ i. V
- )
/ l# B% ^4 L8 [- I" }+ o* Y - )" @' Y& ]! ]$ N' ^ i ?6 w0 e) V2 K
- ;; Linetype Scale Edit Field9 B/ _# c5 f$ Y
- (if (/= 8 (logand 8 which_tiles))
4 W* {9 n; O8 x! [; O+ { - (progn7 F' s3 b6 O& C5 u
- (mode_tile "eb_ltscale" 1)4 L8 b, ]/ O8 ], Y) @9 C: X
- )$ J+ ]5 O* J) X! ~
- )
/ ~' A% W- g6 Y. \# r2 E% u/ L - ;; Thickness Edit Field.
* G, L: x) f; Q - (if (/= 16 (logand 16 which_tiles))0 H& `# P1 C( H7 T0 {" f/ P
- (progn5 c- J9 c% ]: l# g/ D, I
- (mode_tile "eb_thickness" 1)9 [5 q7 v' u2 G% o( w2 f- c
- )
6 w; G: h9 R% A% v2 [, m - )$ \3 { M/ W( b
6 e. i$ z% Z7 N2 ?3 l& g- ;; Polyline box and tiles @rk 10:05 AM 1/30/97
, w* t! K9 U1 }$ e# T+ j; {4 E - (if (not (= 2 (logand 2 eflag))); ~. ~% S ?' ~/ d7 |! r
- (progn/ V$ A) h- D1 K8 v( N& A- `& B8 e
- (mode_tile "text_hgt" 1)4 b# z0 ^* }) p5 ]
- (mode_tile "text_style" 1)
0 q, T/ R7 Z2 s; F, ^# N. w - );progn
D0 ?5 y4 W5 ]+ Z" {) S, B/ Q - );if
" O$ J p' s1 K. k1 Z - (if (not (= 1 (logand 1 eflag)))
) _' j; d0 G1 H - (progn 4 Q" y2 T+ V1 o" s4 C: Q4 \' A
- (mode_tile "poly_wid" 1)
6 g7 X) }, J- t+ G" |" Q3 X - (mode_tile "poly_elev" 1)
+ k9 M) Y F% \4 m, ^( L+ T - );progn then disable polyline fields9 F+ O5 h+ p: t9 G7 r: M% E
- );if D+ ?9 f6 p3 f U5 [
- + T) s5 Y: u! v1 @( Q$ ?/ o9 q" x
- ;; Define action for tiles
6 }3 c' V1 G( H9 e3 a. r - (action_tile "b_color" "(setq ecolor (getcolor))")
. O% n0 t+ _/ D0 P5 k C - (action_tile "show_image" "(setq ecolor (getcolor))")
0 T) D$ ^8 Y, N1 w - (action_tile "b_name" "(setq elayer (getlayer))")
- ]8 L; J7 [' M& ]# c - (action_tile "b_line" "(setq eltype (getltype))")
% Q/ C, d, i; Q0 |) [* M - (action_tile "eb_ltscale" "(getscale $value)") q3 i5 E* ]! t8 E! E" Y% N: U
- (action_tile "eb_thickness" "(getthickness $value)")
1 w; ?4 P2 f0 J - (action_tile "poly_wid" "(getwidth $value)")
8 H2 s: J: o' `( o' \5 l: | - (action_tile "poly_elev" "(getelevation $value)")
V2 k2 `$ M4 T2 M( b7 _8 g - (action_tile "text_hgt" "(getheight $value)")
$ T2 N. r3 P* @ - (action_tile "text_style" "(getstyle $value hair_style_list)") 3 Z, C) O$ U X$ |7 x8 H9 v
- (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")
7 ?, i& m1 Y6 O. Q7 b9 k, V - (action_tile "accept" "(test-main-ok)")
W6 Y6 p0 E) X3 j5 z+ [' q
& H- s2 O* s2 l# a- (if (= (start_dialog) 1)9 |1 |, j+ u* {9 N ^
- (progn5 B" D! E# x6 T2 I7 ^; R4 L: [
- ; Update special properties for polyline and text selection-sets.* h' w4 U+ C( T+ c- |: V
- 1 h" ?8 w" ?; k, V
- (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop* o: t/ h0 v- L3 H" F1 E
- (or ewidth
. D6 t5 m3 K9 @0 |; T - eelevation
1 H! I: J8 \$ {$ n8 `; G8 `4 C' C# n' I - );or
8 {6 L+ c: H& F1 S4 p7 F! L - );and7 ` k, ?6 c! e9 @1 ]
- (progn- W& }1 Z# v; Z5 P) e' z) {. k
- (setq ss-index 0 0 ~) T* C0 E: ?2 d R
- ss-length (sslength poly_ss)
1 F# C( e1 \3 t" i- H7 r - );setq' N8 Q: l- k8 i% l( q& g
- (while (< ss-index ss-length)* t6 Y4 L' `, i, z1 W' W
- (setq ename (ssname poly_ss ss-index): E, b/ O1 W( R: W* _
- elist (entget ename)
9 L4 Z! k( Y+ M' {7 R" a& z - );setq& c; f' k+ s/ Y' g0 u- }
- (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp) `5 m5 P' f5 o8 ]7 q5 h9 E
- (if ewidth . r0 H1 A1 P9 n: J- s4 v" H
- (command "_.pedit" ename "_W" ewidth "_x")/ X! y. E+ u; u2 `, N
- );if + w% Z8 b m' T0 n5 N' ^7 y# R/ }
- (if eelevation # V3 I$ o# H2 y+ @) r
- (progn; V5 \( G: U! a4 k( w0 y/ M9 _
- (setq p2 (list 0.0 0.0 eelevation));setq# {1 z( W+ s9 J( i5 ?
- (if (equal (cdr (assoc 0 elist)) "POLYLINE")% W* R4 H' Z9 c* Q6 w3 W
- (setq p1 (list 0.0 0.0* O2 T& X! n- s
- (caddr (cdr (assoc 10 elist)))4 i; q, F* X9 X' U) c" X; U. n
- );list( Q5 @! u5 b, I
- );setq+ d8 Z! W% Y C5 q: ^
- (progn
2 y/ t& P+ G7 Q1 g - (if (assoc 38 elist)- p8 u0 {$ B4 M* \
- (setq p1 (list 0.0 0.08 e$ C! [$ b+ }7 d/ v, b7 P
- (cdr (assoc 38 elist)): s$ w& }0 ?" ^- |/ d- Q- G
- );list2 ]6 K0 E# ~8 ~+ I7 m
- );setq8 F3 u( A6 X; R# W4 {) _8 V
- (setq p1 '(0.0 0.0 0.0))/ u% Q! n. `5 {6 O* |
- );if
0 z8 [2 v# r9 j% W0 Q$ b/ H1 \5 X t - );progn
Q& C5 E- y. A H0 A& y! r7 A1 Y - );if
% x8 z! y8 b8 z% I/ @, X7 T - (command "_.move" ename "" p1 p2)
) I- j% {" J( h T: v& L8 O* q - );progn then change the elevation of the polyline' {2 y7 H. {" R x2 A9 E* @2 U
- );if
. e) }# D# s; V% G; Y - (command "_.ucs" "_p")+ R% |2 Q( \2 v, ]" J
- (setq ss-index (1+ ss-index))
2 \- J z, P3 r - );while
1 J! C$ K& x$ q3 [: u+ q - );progn then polylines are in the selset/ S% o w! @4 _( p" z! {
- );if3 Z3 a* x- U9 C5 Q
- (if (and (= 2 (logand 2 eflag)) ; text
+ Z" Y h7 s3 T( R- X2 b - (or eheight 1 d" h( a0 E1 K. o% [* X- p
- estyle2 y: E3 }( A0 C% L" w, @7 ?( A: h
- );or
* i, T3 a+ y) W: Q' Q. e4 _* x - );and
+ N0 a6 m6 x2 Z - (progn5 P9 P% |% S! W \4 v3 t6 m' ]3 \
- (setq ss-index 0 ss-length (sslength txt_ss))
/ a/ ^& i# m8 ]6 w; \ - (while
9 A3 L/ b2 t. E) ^" ^9 \6 L3 ^5 a - (< ss-index ss-length)# f7 l0 i4 I. p# n& [" x6 B$ }
- (setq elist (entget (setq ename (ssname txt_ss ss-index))))) t! z* r x2 ~5 N6 z: |
- (if (numberp eheight)
; W7 ~* _! y7 @( b/ m( I5 `7 |$ ]' f - (setq elist (subst (cons 40 eheight)
4 y, H$ E( K+ \! c - (assoc 40 elist)
6 y& R: U+ l0 b6 ` - elist
/ `7 |5 ~1 f& _2 f - );subst% h. N5 Z! F& K4 C5 |
- );setq
9 q& y9 K( Y! p1 [5 ^; f; J - );if
: L% e2 M# |. h* E8 C4 W. h - (if (and estyle ;(not (equal estyle ""))
7 x. l% u+ ^/ G" [ - (not (equal estyle (cdr (assoc 7 elist))))8 D Z, F' G/ Q% k& y8 D( v
- );and$ ]3 q% ` M$ T$ f
- (progn
4 P J, L( y0 i! k# F4 B/ @! e6 e - ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt
2 |1 r& J8 Q9 `5 e( h - ;(if (equal "MTEXT" (cdr (assoc 0 elist)))' k0 @# R. B- b+ R
- ; (setq elist (fix_mtext_fonts estyle
" |' @4 f0 u2 v8 @- ~ - ; elist7 h1 d+ y. L; Y
- ; )
2 y' i0 p3 t# ^/ ^6 b! D - ; );setq then
' M2 A: T T- Z4 |1 g; \2 x - (setq elist (subst (cons 7 estyle)8 W4 n. b; F3 A" Y. E% |
- (assoc 7 elist)3 T" b6 y- z+ B1 Z5 u
- elist
/ e2 g7 {8 ~; J7 e - );subst# i2 G/ ^4 w2 H5 a
- );setq else
% |* Q' [' D3 z# O) k - ;);if
6 e6 ^/ [6 ^1 p$ [2 J: a! S8 q - );progn
; e3 q0 q, L7 a+ G- y2 x7 L! A1 t) c - );if0 t$ N. O" \" @1 k! w$ N
- (entmod elist)& ^ t' e, _0 q# `/ n- a; _/ m9 g) ~
- (setq ss-index (1+ ss-index))1 d6 D) ^* i7 p ~
- );while
6 m. n1 M8 v% { - );progn then/ c5 J% j6 e5 _/ O8 Q: s# |, y. G
- );if/ p1 T4 y) T9 K. U/ @, t
- ' S! O) v7 A/ q, X8 {8 C4 N0 i# @, X
- (setq cmdact (getvar "cmdactive"))
# P* W) O& Z4 X: h& J - (command "_.chprop" ss "")8 p2 C% M- s3 a/ ~5 f
- (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?, K; W! H/ o/ {8 q
- (progn/ n: U7 v' u2 G, @. d5 K( ~7 o
- (if ecolor+ `+ ~" v0 {) }/ U$ W
- (progn
5 P3 A( R! ?+ M/ M& y0 B - (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK"))
% d" R" D; R+ q9 y, M9 G - (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))( K( b1 P# q/ n
- (command "_c" ecolor)
1 g9 h0 _ |9 [% j( q - );progn then
& p: e" b9 ?6 K/ ] - )
5 F, y5 w4 M5 l0 K# r9 h - (if (and lt-idx
$ y( a7 f! V4 ^$ s: l$ w# u8 f8 P" r - (/= eltype ;|MSG0|;"Varies")
0 n; O3 j3 @* D1 Y: \8 o. ? - )
7 h9 x3 E0 q u6 o - (command "_lt" eltype)9 q, e0 v. P' w' G# X
- )) ?. Q4 a$ l7 y2 [7 Y
- (if (and lay-idx # ?! i f4 Z% W% k9 ~- z2 p+ G
- (/= elayer ;|MSG0|;"Varies")3 \" T" j: L1 v/ l; m# R/ E2 }7 b
- )
4 f2 }% O$ h; [ B, \9 i B: u - (command "_la" elayer)" _6 L8 u5 n: u& [: ]
- )
. u8 @+ @& K; j. b - (if (and ethickness . g5 `! Y6 k9 {( M& A# m6 p/ {
- (/= ethickness "")5 e) U7 a1 @% h8 h
- (/= ethickness "Varies") 5 t3 d/ s. E7 M+ y. A, \% z! I H5 F
- )
, T9 y" l& [$ {9 _/ W0 F - (command "_t" ethickness)( v2 \7 c8 t0 J. T
- )1 k( ~7 p8 i3 T8 f
- (if (and eltscale (/= eltscale "")), g- d3 ?% ]4 f9 W# M9 @' y
- (command "_lts" eltscale)7 D# l8 p/ m; m* K2 e
- );if _. g% n/ u. _, D' m
- (command "")
8 P/ Q! x& U% I4 u# ^) V - )$ W' E/ U) u; e" G( f
- (princ "\nProperties unchanged") ; CHPROP didn't like our SS set, e3 `8 N5 h( ]! t( i9 V$ P) @
- )
4 Q5 k9 `) v7 S: H. T" L
_# y2 `6 R' _+ W& e/ L- );progn then OK was picked in the dialog.. ^# Z# X! }9 Z4 w! N. X, {+ f
- 8 _* r7 B2 w9 E8 d6 y
- ;; Fred GERBER - 25-AUG-94
. d1 s6 x* c5 v5 R6 t' Y - ;; Don't print the "Properties unchanged" message when the user cancels$ i1 x$ V7 Q4 C" `
- ;; the dialog because he knows that already (otherwise he would have
, h% g0 S8 e7 u, i1 l9 B* Q6 i - ;; hit the "OK" button). Display the message only if CHPROP fails for
6 A# g. ]% ] X! @+ _! s% H6 n - ;; some reason, because it is not the expected behavior of the command.1 z. M! X% }" y* B
- ;;: f9 c4 @( Z# D' E$ G8 c- C2 i3 T
- ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged"), i3 _* ?9 d; h( S' k. }/ @
- );if/ e! G5 f$ S _ |$ m- b# S. E y
- (princ)1 O* W: H3 X6 F
- );defun call_chp24 g7 J+ J' b. l( |& u9 W
- ;;/ O( J) E/ G( L9 k) p
- ;; Function to set the Color text tile and swab to the current color value.
. X; u K% O) P1 c8 ]9 d& r, { - ;;$ m2 G; c; s, C* D, C( V* t$ Q
- (defun set_col_tile()
% _0 ~ J" \. l2 C( p/ b - (cond
" s I: @9 r1 o - ((= ecolor nil): G8 k& p9 M* Q* f" |& h6 g+ A. u- d
- (set_tile "t_color" "Varies")
/ W7 R; S4 g0 o! O2 ` - (col_tile "show_image" 0 nil)$ q1 P' |# _4 z) e" B) s
- )
; V, c. }& A2 m/ ?6 }/ `" } - ((= ecolor 0)2 K) O6 R* i4 [% ^; u. V
- (set_tile "t_color" "BYBLOCK")8 E$ O. Z: _- F! }0 m
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white7 F4 n% R; }* v* `
- )
# X0 K) D& a$ T+ G/ H - ((= ecolor 1)
5 x: }8 L& C; C; d - (set_tile "t_color" "1 red")' l1 n" g+ _2 b+ ~' d' U# |
- (col_tile "show_image" 1 nil)
* Y5 j$ j t, j% e4 X+ z+ Y - )# Q, q7 \' j+ Q4 S2 N
- ((= ecolor 2)
3 ]- Z( w$ `; { f6 _+ R4 {* S5 N - (set_tile "t_color" "2 yellow"): T1 C. {" ` M2 o" N/ M/ z/ ?
- (col_tile "show_image" 2 nil)4 s/ w' ^1 U% w" H" ^! [
- )
) N$ Z+ D( Q4 h0 D7 R - ((= ecolor 3)1 Y0 r; y* a; b+ z
- (set_tile "t_color" "3 green")( m( F" D, q* B4 I r* a% @5 r2 G. } ^
- (col_tile "show_image" 3 nil)
& U: E* t4 U8 Q) F* H - )
5 E) j* ^% d% b* s; U7 r( z# ^% A - ((= ecolor 4)! i. R- `; z) d+ n# h! o/ J
- (set_tile "t_color" "4 cyan")% U6 u" W4 t7 C
- (col_tile "show_image" 4 nil)+ O# n7 e0 s$ E) R; Y. B
- )! y* Q& n- q1 M2 s3 ]4 Z& v
- ((= ecolor 5)# N0 u5 z2 \+ k: @+ u
- (set_tile "t_color" "5 blue")
! _' v- _1 |0 a - (col_tile "show_image" 5 nil)
7 P! D% a5 u7 J" \( P - )
1 L g; x& A) r5 x# U( r7 L1 O; V - ((= ecolor 6)
; \/ L* t1 J4 g7 E7 j5 } - (set_tile "t_color" "6 magenta")
: x5 H2 K" ]$ i, T/ l0 j. d2 R - (col_tile "show_image" 6 nil)
4 I# V% i+ T0 j2 l5 W4 O" F2 B - )
& x& ?; h- M2 o4 T2 H' ^. Y - ((= ecolor 7)
. n" k7 L( B% ~4 p+ ^( u - (set_tile "t_color" "7 white")
1 O8 g' h4 y& d. L3 ~- y! f( a - (col_tile "show_image" 7 nil)
7 I. T2 O+ y& j - )' O; A/ `! R) H! k( w2 w2 @, H$ |
- ;; If the color is "BYLAYER", then set the tile to* k/ b% l: ?" z
- ;; show it's set By layer, but also indicate the
/ o( y n8 x) U/ S8 G* Z - ;; color of the layer - i.e. By layer (red)
, ]( C& `& C$ @1 r8 K9 M - ((= ecolor 256)
" N$ A! i6 f- E! I! u4 g: J - (set_tile "t_color" (bylayer_col))
^/ r) E; a3 W5 L6 R4 y - (col_tile "show_image" cn nil)0 ~7 }- r0 m/ F3 }7 ~
- )5 R: n) G, ?) j
- (T$ K$ n8 u4 S% v A5 H' ~6 q
- (set_tile "t_color" (itoa ecolor))
/ Y% D7 {# f2 g+ Q5 c+ Y - (col_tile "show_image" ecolor nil)3 h- i2 U+ [- l" C3 C& @! H
- )
o( U7 C$ q; R6 k; G- O1 A - )
6 c$ s3 k4 j# r5 s9 {' l C# G2 E - ), V4 z) r2 {. B5 x4 ?6 o! j
- ;;
0 A" B; n5 C8 E" n4 {1 d; M - ;; Function to put up the standard color dialogue.; ?5 {4 T/ n& y* C
- ;;9 j( e# Y( W9 x. @9 I& j
- (defun getcolor(/ col_def lay_clr temp_color)7 F8 {9 P! d; L% W9 I( f
- ;; col_def is the default color used when rq_color is called. If ecolor) t* V) T7 `/ @2 n; I
- ;; is nil (varies) then set it to 1, else use the value of ecolor.
: W/ u) X) P/ d) e; V9 ~: g& p4 M Q - (if ecolor7 Y8 E( u/ ? t7 E1 C4 s
- (setq col_def ecolor)
" a+ y C0 h0 o+ \# w - (setq col_def 1)
$ H2 O( R7 i7 }! V8 Y" p8 l* u5 u1 z - )! v' Q# I5 {5 l8 m3 H7 H
- ( r# G/ e0 l; r: |3 k5 |& J
- ;; If we're working with a single layer, get its color
a/ J! W. D# B% [4 y - ;; for use in the color swatch if the user selects color BYLAYER.1 M {; C R P) J
- (if (/= elayer ;|MSG0|;"Varies")
- a/ Q( h0 p1 C3 ?7 `8 ]+ K - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
3 d" _; l7 N6 q" m: I2 ^6 {' a) S' q - (setq lay_clr 0)
! m9 V% R% @" d, R9 q- J' Q - ), ^8 Q V& p1 J& T
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))
% |; C# f9 |+ n5 I - (progn
& S7 Y( v. G' `! [& R - (setq ecolor temp_color)
5 C, o6 Q* H9 Y: x% r9 Z2 ?% U - (set_col_tile)
# I: |7 l' j6 |' L7 v - ecolor& G& V' a1 l* z5 F" c/ r
- )
# d, r$ u1 I9 C2 r p - ecolor
' Z! J6 ]& {8 j9 u3 m - )+ i5 h1 j" M% C& I" W! ]
- )* J% ^- p, S% f' ] b
- ;;
! f6 q& A# i P. \* u# g - ;; This function pops a dialogue box consisting of a list box, image tile,6 H, ?+ s9 K+ a3 {- D0 k4 L
- ;; and edit box to allow the user to select or type a linetype. It returns
1 r( Y# x! G8 {8 {* A* L' m - ;; the linetype selected.: Z/ _3 S& J( [& b; N
- ;;3 I) x5 o6 V2 b4 C6 {9 T+ u' m
- (defun getltype (/ old-idx ltname)
# N4 n( n3 d. p2 G/ H - ;; Initialize a dialogue from dialogue file
# p w: O3 B+ [4 G - (if (not (new_dialog "setltype" dcl_id)) (exit))2 Z9 R8 y5 D Z( f
- (start_list "list_lt"). j0 t1 r# V% h3 e9 g
- (mapcar 'add_list ltnmlst) ; initialize list box
0 [$ I+ E5 r, F/ z" S5 P - (end_list)
* s' z; ]4 T* {4 q/ M: S8 [- B - (setq old-idx lt-idx) K( ], P# e- O: s$ F; ]) }/ t
- ;; Show initial ltype in image tile, list box, and edit box) {5 X }6 E; p) U( E" z6 I8 {* M
- (if (/= lt-idx nil)6 ]- G$ D0 N2 K
- (ltlist_act (itoa lt-idx))
4 N6 M, g, s2 B* c - (progn
- |; g, k) {1 b4 N - (set_tile "edit_lt" "")) M% N% q2 g' ~1 q: H5 ?8 g
- (col_tile "show_image" 0 nil)5 m3 a+ n) D4 z( `- Z1 I
- );progn else
+ n* X8 W6 C- e: ` - );if
1 P" J8 ~( N+ }! q+ [4 ] - (action_tile "list_lt" "(ltlist_act $value)")* b6 p& }! J" a
- (action_tile "edit_lt" "(ltedit_act)")$ u6 ]3 Z! Y9 C1 o9 ~
- (action_tile "accept" "(test-ok)")
/ M/ F4 ^0 _# V2 h - (action_tile "cancel" "(reset-lt)")
7 V# d" M+ i6 g7 _2 ? - (if (= (start_dialog) 1) ; User pressed OK
! b. F7 o H ]9 h6 I3 I - (cond
! g) r: i! n+ ^1 t2 e - ((or (= lt-idx nil)
4 ^0 |4 c& I2 L& s$ B - (= lt-idx (1- (length ltnmlst))), B- U4 i( I" T8 C+ z, r
- );or
7 `3 N4 ^- `( [% ]0 O, E8 e& S+ Z - (set_tile "t_ltype" "Varies")! ^8 v7 G6 ~) z) L3 R% W. P8 Z
- ;|MSG0|;"Varies"
' Q7 ?1 O& X$ L% T/ ^; d - )
7 [- L# d3 Y8 y4 D: | - ((= lt-idx 0)& @( \8 Z% j* i+ U9 L- [; s
- (set_tile "t_ltype" (bylayer_lt)), I8 ~ p6 K) K+ M( ?
- ;|MSG0|;"BYLAYER", C( ?8 V8 q/ e' o
- )
. I" n) G* D' `% v/ U2 F - ((= lt-idx 1) w0 Q3 p$ H5 B- {& K; f
- (set_tile "t_ltype" "BYBLOCK"); c1 x/ g0 d3 c9 f
- ;|MSG0|;"BYBLOCK"* a' A( H" k4 Y
- )
D5 Z/ g& @+ \- R7 @! O - (T
& W& n$ x) }8 y% f& y - (set_tile "t_ltype" ltname)
: d( m1 {' C( x: W4 G4 { - ltname
* S' \' O1 e5 P: N, W - ); i, V: H6 b) T. g' N
- );cond then0 V; Q3 f- c P r3 u# R" M, S
- eltype
) m: D* m& \ d2 b( | - );if
k. |- ^0 {7 A) H0 \7 n - );defun, z7 N3 \2 @ |; Y" B; X- V
- ;;6 \- }7 B* W0 L, N
- ;; Edit box entries end up here
3 l/ z4 K6 O/ N - ;;- n9 S" @7 Q% S
- (defun ltedit_act ( / flag)! D7 n! v1 S" k( \+ K
- ;; If linetype name,is valid, then clear error string,
9 j9 ]! t* Y" h. k - ;; call ltlist_act function, and change focus to list box.- O0 ?$ d: w% p% S4 |8 f
- ;; Else print error message.
5 e* H( o& T& j7 P/ i -
7 K! Q. S2 q0 D% i/ V6 {, R M. o - (setq ltvalue (xstrcase (get_tile "edit_lt")))9 N& `+ n5 A" T1 d
- (if (or (= ltvalue ;|MSG0|;"BYLAYER")/ \4 C2 D1 H7 ]0 d7 ~: I3 Q
- (= ltvalue "BY LAYER")
# z3 h6 @6 Q) @0 ^4 R" i& z - )# V- J7 I/ @& F9 g/ p6 ?' \; G
- (setq ltvalue "BYLAYER")/ r3 C! X4 A4 H# d, ~
- )
9 m3 e# C: ^' A! G4 g - (if (or (= ltvalue ;|MSG0|;"BYBLOCK")
* N' w8 Z+ I# Y1 X+ K: K# I+ Q - (= ltvalue "BY BLOCK")& ]* Z7 x7 H% [7 [
- )# s0 Y3 W% D: j! e* R9 V {
- (setq ltvalue "BYBLOCK")
2 y3 x4 b9 ?+ d8 n- e - )! x4 e* r' a2 c" f" Y
- (if (setq lt-idx (getindex ltvalue ltnmlst))3 k' ?, L5 r7 M( K
- (progn% ]- Y# u# n9 ^8 i6 B
- (set_tile "error" "")8 [6 [; ~% b& S8 w
- (ltlist_act (itoa lt-idx))
! _2 I& T! r: M: n - ;(mode_tile "list_lt" 2)# d( ?2 G7 A; K6 t
- );progn then
8 t0 R5 e' E. ]$ x& r" b - (progn, ` v2 a! v6 L8 {' S9 t
- (if (/= ltvalue "") g3 h7 e$ e, h
- (progn7 E; I9 q- S' `' b2 U
- (set_tile "error" "Invalid linetype.")* k' o8 C! ~- r9 j; h3 [- E
- (setq flag T)
2 w* B1 A& Z, c1 @8 {, O& B - );progn
: Z% S+ ^3 A" y3 @7 h6 B2 o+ V - )* p- e/ s- a1 \( n& N; b* W
- (setq lt-idx old-idx)* d0 \* i: Y$ w0 s+ h6 a: t
- );progn else
/ O* b- m% p [) ^- {9 b7 c+ J - );if
0 u; \( I% ~& \6 R - (if (and (not flag) ;added so a return will take you out of the dialog.
t- ]/ }) [# X8 G. X8 g" j! B - (= $reason 1)8 s! Q3 Q2 y. A
- );and5 \$ x8 r* c; R6 o: [
- (done_dialog 1)
" J4 _+ N* B5 z/ ^ ~5 y - );if : T3 c* ]5 j8 i' Y. U$ o# ?% R
- );defun ltedit_act
! o8 b5 u3 o2 U - ;;
% m7 {5 e/ V. { - ;; List selections end up here, Q& {! H4 u4 b; c
- ;;
- g( p: P# M6 w& ^ ` - (defun ltlist_act (index / dashdata)
2 B. g f; B( U# c9 Z2 J - ;; Update the list box, edit box, and color tile
8 ~* H9 u3 d' l; r9 a+ F: O - (set_tile "error" "")
0 L( J: J H2 e0 a1 l i8 } - (setq lt-idx (atoi index)): \, r8 H3 f2 u5 @; e
- (setq ltname (nth lt-idx ltnmlst))
/ }: y$ p* M t; J/ R- ^, j+ |9 r - (setq dashdata (nth lt-idx mdashlist))
7 W# W c3 t0 J# u& t, U. Z" N9 h - (col_tile "show_image" 0 dashdata)
/ W# l! F) U" w% o W - (set_tile "list_lt" (itoa lt-idx))
& n% J. N$ J/ m - (set_tile "edit_lt" ltname)7 R+ e# h8 P9 @; i' f( V9 @
- )4 Z1 { t8 V) Z, T# Q
- ;;
, V: ~1 r$ d$ X/ V - ;; Reset to original linetype when cancel it selected
% A* T& ^8 o, A# t+ l. _9 x - ;;
$ e p X& T5 H; f( ~" Y# [: y - (defun reset-lt ()7 c ?8 _# w$ E$ E J
- (setq lt-idx old-idx)
5 ~$ k9 a* S7 N( U - (done_dialog 0)6 n5 ~/ J$ I4 W% L
- )) [$ N+ U: \' V0 ^0 L
- ;;- j e" e8 B: ?" t, `0 z( d% `9 B0 V, P
- ;; This function pops a dialogue box consisting of a list box and edit box to
7 c0 p! z5 m5 X# ~. U9 E, g - ;; allow the user to select or type a layer name. It returns the layer name
- V4 Y ?$ P- F - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the
; Z3 _! [* u% d* h - ;; drawing." Q0 |3 V: r% i2 ~* Y
- ;;- s s! s/ @6 t
- (defun getlayer (/ old-idx layname on off frozth linetype colname)
1 R; O2 v+ Y7 ^2 n( a6 n - ;; Create layer list the first time the layer
2 V3 Z3 Q2 k- k9 l! E0 b1 I' D/ a% S - ;; dialogue is called.
; j1 {" N) E- `/ H1 n+ i7 n4 W7 m - (if (not lay-idx)/ i4 M, Q, [! C8 e( P& E
- (progn0 e+ o% x" X" p$ p; x$ u0 Z% Q
- (makelaylists) ; layer list - laynmlst
6 L8 P5 e* U# o7 N0 ~ - ;rk
5 q, n+ n2 I* ]+ e( [" W5 g - (setq lay-idx (getindex elayer laynmlst))
/ L8 n" c# j5 e' g% C9 _ S - );progn B T3 R2 u# G( ?& \: V E
- );if6 B6 v5 g) H& B8 y: B- u' ^- W P% l
( j$ M$ N8 k5 f- ;; Load a dialogue from dialogue file% o2 B2 v5 A. s6 A+ t
- (if (not (new_dialog "setlayer" dcl_id)) (exit))0 Z/ N7 y5 }& T: y" ^" m. _
- (start_list "list_lay")7 I* r I3 U0 h, y- ?1 L# y! |, w
- (mapcar 'add_list longlist) ; initialize list box
0 L; _. W0 S$ n% X! V# p( S4 g - (end_list)
4 ~9 g. \% F1 u" [3 { - ;; Display current layer, show initial layer name in edit$ q3 H$ X6 e4 m; ]7 S# J4 w! E# l
- ;; box, and highlight list box.; v. h) ~3 R0 Z
- (setq old-idx lay-idx)
2 h# D# [9 \: ?5 z4 U) n - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
$ i3 n$ \; Q# S6 g! b$ \( J' { - (set_tile "cur_layer" (getvar "clayer"))/ T. A* r% i9 N6 i, c
- (action_tile "list_lay" "(laylist_act $value)")3 k, j6 z: I3 g& J4 Q0 i3 M% b! f
- (action_tile "edit_lay" "(layedit_act)")
7 D! S+ L7 a2 t+ `% L - (action_tile "accept" "(test-ok)")
3 r; k, `& W9 o3 U0 E V& h4 u - (action_tile "cancel" "(reset-lay)")0 D* t# r: |" U% `9 U7 J
- (if (= (start_dialog) 1) ; User pressed OK
! L; k3 B2 z; o - (progn! P s0 c4 W. J+ A8 ?+ I* Q
- (if (or (= lay-idx nil). W7 \9 J: p# m; K& t2 M; R! |1 z2 _
- (= lay-idx (1- (length laynmlst)))
0 N) [7 v5 c8 b0 \7 X4 D - );or# j6 y4 K8 j" t+ N# A+ v
- (progn- b1 e$ Y1 q; l4 l4 ~+ \
- (setq lay-idx nil) 8 n8 U* R, F/ m2 x# a
- (setq layname ;|MSG0|;"VARIES"): u8 L$ b% o/ _9 ?$ {
- (set_tile "t_layer" "Varies")
: h: A$ Y" P! N1 H, v - (setq layname "")
0 ^3 ^* I/ ]* F2 |+ b7 X - );progn
& L6 E0 x; z5 ?7 C* o - (set_tile "t_layer" layname), f; D! v9 y; M* z
- );if
! r8 H8 s$ T: w - ; If layer or ltype equals bylayer reset their tiles
3 i' ]# U( h( L A# A$ O" _ - (if (= lt-idx 0)
5 C p: b# _6 ] - (set_tile "t_ltype" (bylayer_lt)). g8 V% |+ ?% o( ^+ |9 I5 B
- );if
1 R" k- n T, p1 f3 v - (if (= ecolor 256): o" h/ q0 @8 l- H- h$ r$ R
- (progn, T; D7 t: X) A, I0 D$ y$ E. j9 Q
- (set_tile "t_color" (bylayer_col))7 ?. i2 [+ D L! ]9 B7 c* B0 q
- (col_tile "show_image" cn nil)( a6 b0 Y) C: c
- )
8 t9 M, Q1 B: { - );if' s+ x I% E$ C; o6 I+ G
- layname) S& b; C& I# t
- );progn; Z6 E3 W5 B$ A+ V
- elayer
; G9 S8 @/ _( R - );if- V! k) V9 d* ~4 L! A0 P& \( x& G
- )
- P2 B' z6 l0 O7 j, V7 | - ;;
v. _# {6 y* ]* Z) z, ^( z - ;; Edit box selections end up here% d7 r$ k& L* A- r: n( C
- ;;
' J5 J& e1 E2 `/ n, v! Y A - (defun layedit_act()3 H) S# @, q- @* A1 b- d/ z
- ;; Convert layer entry to upper case. If layer name is) Y: o" g; }- T c% c
- ;; valid, clear error string, call (laylist_act) function,
5 Z$ N$ A3 U; `' ` - ;; and change focus to list box. Else print error message.' q/ B' Y- K; d2 u6 o
- (setq layvalue (xstrcase (get_tile "edit_lay")))8 d2 p( ^$ j/ [& K# o* o( E
- (if (setq lay-idx (getindex layvalue laynmlst))
- Y- W. y4 j# Q# c( l - (progn& k4 ?! S" |7 W3 j `2 @2 `& y
- (set_tile "error" "")
& ~3 @) s5 k0 Q* Y: f' Z/ s - (laylist_act (itoa lay-idx))
5 b8 k% s+ E0 z9 R! s6 N7 {# r - )
" e9 L; ]6 L4 r8 }, | - (progn8 X7 m; d# e0 s; _- @
- (set_tile "error" "Invalid layer name.")
- l& A) o- b2 Z/ p C. ?( X* M - (mode_tile "edit_lay" 2)5 a# Y3 T2 Z1 e: R" k3 x
- (setq lay-idx old-idx)
* p, B8 F, K* h. I, o - )
5 Z1 k8 e0 L' |3 |8 W - );if
3 J: s; h4 e" D% R4 m - );defun
r7 K. N2 M1 b- u+ M X, _+ a% e - ;;
' W& i8 t W9 ] - ;; List entry selections end up here4 X, z; @8 C; l& I/ r0 j2 v. |# ~
- ;;/ `- c. [9 M8 E4 Z0 g8 M0 }' _
- (defun laylist_act (index / layinfo color dashdata)
; b( x9 y+ a( a - ;; Update the list box, edit box, and color tile
1 X: X9 I2 D- t- H+ D' U - (set_tile "error" "")$ t7 Q0 M( V4 t& g% @. d
- (setq lay-idx (atoi index))
, V& b" i- s) c+ [1 r! ] - (if (not (equal lay-idx (1- (length laynmlst))))
. b. H9 y& ^8 e3 Y; S k - (progn
7 {2 }- ] D- E; _! t - (setq layname (nth lay-idx laynmlst))
' B# l+ _. Z: k* b/ X5 k - (setq layinfo (tblsearch "layer" layname)): q. x1 P4 l$ b
- (setq color (cdr (assoc 62 layinfo)))
$ v- ~2 ~6 K4 F3 G) d/ a9 i - (setq color (abs color))
$ \$ Q0 X, ?" |# i9 \ - (setq colname (colorname color))" k9 O- H1 h9 h- d/ `/ c
- (set_tile "list_lay" (itoa lay-idx))1 W1 P Z3 u: P6 Q
- (set_tile "edit_lay" layname)
+ F( X, a9 L# ~; x, p - ;(mode_tile "list_lay" 2)
2 F6 q* k9 y. T. r* Q - );progn then 7 \' X5 `- ^3 ? h: V5 }7 D% Q
- (set_tile "edit_lay" "") 6 [3 O2 O9 ?8 Q4 W1 n2 h& h/ s
- );if
: Y6 V% W3 Q+ d4 n! f9 r& I% Q; w - );defun laylist_act
: C5 F; \- `$ | - ;;
: y4 g' v6 c" \5 F" V- G - ;; Reset to original layer when cancel is selected
1 ^1 \" W7 o6 F, N7 X - ;;2 U, K2 p, `7 e4 x; i$ y
- (defun reset-lay ()
) V% `3 l8 B& v$ C1 | - (setq lay-idx old-idx) @4 _1 y, p. ?# g- G
- (done_dialog 0)3 P2 W; I! Y( x. y
- )$ {* c! ~0 z! D; c
- # I7 `* @6 R0 k: t9 l l
- ;; Checks validity of linetype scale from edit box. It checks to
0 \2 d4 Y) @# i B( Y+ ^9 T - ;; see if the value equals "Varies".$ [: U6 i$ H$ P' X
- 7 N, Z1 D8 @# D2 n k4 c
- (defun getscale (value / rval)
$ j4 l2 ~- B) C& H - (setq value (strcase value)
4 I- y l3 p1 @( r - rval (distof value), a- v8 Q- S) r
- );setq
) B0 T" h: a1 }& j% ]0 c0 U: G7 X - (if (or (= value "")- D- {4 Z3 C1 c4 W# h( O5 f1 W4 s
- (> rval 0.0)
8 \' Y5 U' L1 S3 _0 X - )
* E: r$ P1 u9 Z. X, {) H% D - (progn
( o! Y$ o/ N B) ` - (set_tile "error" "")' p" G' \. k' F) U# O- a! S% p u; I3 w
- (if (= value ""). a! f9 y* Y7 F. B
- (progn! |/ V9 m: V7 v8 R
- (set_tile "eb_ltscale" "")
$ {0 U! g1 V: L, h - (setq eltscale nil)
' z B- K) t4 z" w; D2 J, c' ~ - );progn then+ ^+ p9 o) [' d! g4 E
- (progn3 c6 s+ W/ a/ `4 k1 V
- (setq eltscale (distof value))/ @/ y: R# |/ \- U: ?) |4 o
- (set_tile "eb_ltscale" (ai_rtos eltscale))0 K* `- r1 S- Y) j
- eltscale# B& n8 u' f: b% I% C. W
- );progn else
1 a- g1 |( I* r - );if
9 \ Y0 v* q( c" [/ y6 w, ]/ j9 u - );progn, C* q+ L3 N: k( s4 t* w1 w
- (progn
. P/ J1 |3 p& g/ B3 [3 { - (set_tile "error" "Invalid ltscale.")0 J6 V# f; @( H5 |: h
- nil
4 \! m# o1 ?6 h6 h! { - );progn else' n3 }) o7 k1 c
- );if
- |$ i+ f2 ~8 k* t - );defun0 Z7 e' G9 _( ?# L/ p, Q
- ;;% f- f q! s1 V( g
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a& w4 ]0 z0 n& r- {( @+ k0 i' G
- ;; string can't be converted to a real, this routine checks if the first
$ r& X8 |; p. }+ W/ @ - ;; character is "0". It also checks to see if the value equals "Varies".
4 |% Q6 J0 J# z3 Q5 j! s% B; Y X - ;;. P; i/ W- N# n3 ]$ q9 F3 @% ]
- (defun getthickness (value)2 B( X/ y* l% @$ m6 z
- (setq value (strcase value))
/ a( X) L" G1 }* h5 K - (if (or (= value "")0 S4 F9 d6 F8 f- z1 G
- (distof value)
" R# Q# k4 e& I1 J' X - );or5 a5 g/ _+ @9 d+ \' i
- (progn" i0 i' X- n$ U ]& Z" }
- (set_tile "error" ""); [- u1 ^( e" t% \0 _2 I( s" x# h
- (if (= value "")! i3 q5 V' a0 r/ p5 Z( N
- (progn, j6 Q% v6 ^$ R7 x
- (set_tile "eb_thickness" "")) o& I6 l& K8 {: A
- (setq ethickness nil)& G R. q; k* _! P
- );progn+ H8 w$ K' ?: z' r7 K! U U
- (progn
! j H6 P- r6 s' g& m* X - (setq ethickness (distof value))
+ a9 o/ i6 |2 z" S - (set_tile "eb_thickness" (ai_rtos ethickness))3 R: r# t7 \, T, l% m2 ~: B
- ethickness
+ I/ e* B c. V0 @9 @ - );progn
9 V `/ w- A' ?, @" n& F* K - );if
) x( P" p! ~7 l& x, x: d - );progn
+ v) H1 d# L$ U4 Z) Y# u3 k) d - (progn2 H. ]! @5 `+ e6 |4 b
- (set_tile "error" "Invalid thickness."): |3 D$ U1 ~: [8 y1 F- K) w
- nil: z1 n2 y8 `4 \+ T0 c- m: K
- );progn
; R" g; R( S6 h0 ^; m3 J1 B - );if3 |3 B. ]2 d1 `- |
- );defun 7 g* M' L2 r, t$ G1 }
- ;;0 y0 s4 _2 t2 ?$ o5 D
- ;; Checks validity of polyline elevation from edit box.: x6 j u! j t( E* N Z
- ;;3 u$ D: D8 y' K$ O
- (defun getelevation (value)
' J! c0 a; q( F5 A* {* H! E* M" B+ y+ E - (setq value (strcase value))* F) a3 ?, ~( ~; N4 o. a9 @
- (if (or (= value ""): k$ O) G9 L: D5 w2 ?2 j; X
- (distof value)
, W, M1 i; e) Q - )
6 l( |; ~3 D5 W& x* a - (progn) {0 [3 l6 f) n0 T
- (set_tile "error" "")+ N8 B P. S7 b
- (if (= value "")
* s$ _; y/ D) J+ z - (progn
4 c. S9 r: ]4 n& Z8 Q3 \7 L - (set_tile "poly_elev" "")
1 P. ^% X5 _& y1 S - (setq eelevation nil)
. Z( ~, q/ X: t - );progn1 ^- a- W0 H, Z: ]& B l% G8 @8 n
- (progn
$ i7 _: d$ d4 K" R - (setq eelevation (distof value))
0 X+ v# W; H/ V: M) b1 q4 w - (set_tile "poly_elev" (ai_rtos eelevation))
2 E4 Q* G9 E |3 _' E- y - eelevation
+ o" i+ ~; n4 v; f) Y - );progn6 Z! W9 K8 P& z2 e1 L
- );if7 W' ~: f" @ a; a
- );progn Q* k3 d; }: O x! e
- (progn Q1 L6 f5 H% K) x
- (set_tile "error" "Invalid elevation.")0 L! I" ^& p6 G& R& K: N6 E8 J
- nil$ M# Y5 h& C& P1 W! p& l* x7 x
- );progn
1 c! D( h2 n1 Z9 s9 ?4 Z - );if
# e9 H% ]! C% k' `1 C' s+ l% H - );defun6 {, Z' i- ?. D2 t3 n6 v/ o& I1 w
- ;;
! q; `/ }' d, @: h* c9 K, F. ^ - ;; Checks validity of polyline width from edit box.
2 y( h. A1 ~) r: o7 s9 I - ;;, T5 F; g6 \6 U
- (defun getwidth (value / rval)
5 |8 K8 _, ?# d3 I3 w# t. [+ \ - (setq value (strcase value)
7 R4 |! B; q _* J# P - rval (distof value)
: S+ E+ S' S& ]$ c* t# n" o7 z2 g - )7 x* l, i& c* f% p& [* b: v8 P* P
- (if (or (= value "")8 {: R( g. h8 w, F" n- L
- (>= rval 0.0)
5 D E% U1 d& k$ w; x, l3 g - )6 r9 y' E( _, h+ n$ {/ S
- (progn7 i7 p# @% c4 S& q. c+ [
- (set_tile "error" "")
( e+ u/ @# L! n- M+ P: a - (if (= value "")% v! ] O+ r) M* T4 N) Q
- (progn
2 A# M( M; S: v. f - (set_tile "poly_wid" "")9 p8 z1 g, p, \
- (setq ewidth nil)
. N2 W) n, Y: U3 G/ Q s - );progn
1 E B# q9 f3 e+ ? |+ {! Z' B! c - (progn
( R: M; E: F' E, q0 c: |& W - (setq ewidth (distof value)). K) y1 M6 J- M9 v, M4 L) n% F4 o
- (set_tile "poly_wid" (ai_rtos ewidth))8 s/ v a; i2 ~, A5 v0 M7 r
- ;width
# S$ k7 h# s8 m - );progn* b& x w: o# K. z- W
- );if
7 z5 G0 T' i# {8 W$ n( K - );progn
6 B, W- t1 Q* W9 b - (progn
1 g5 S* w& g* Q - (set_tile "error" "Invalid width.")
+ ]; F6 X; s) C7 M, k$ X - ;(setq ewidth nil)
/ L: G+ I8 E6 f! Z5 q - nil
' {# }! g3 r( W. k. I - );progn
& { u* s; _2 y7 l% I - );if
, y+ D# b8 L2 ]- t. i7 {+ q2 I& C - );defun2 G1 u$ V7 }2 Y7 a# X
- ;;
1 T C# K; y( ^6 [, `! ^( ] - ;; Checks validity of text height from edit box.
: `8 @& K9 x2 \* C1 p - ;;
' w0 b1 g7 K+ y* L8 J - (defun getheight (value / rval)
; L6 `8 b5 ?; P! N - (setq value (strcase value) a0 w/ P( F ~
- rval (distof value)
: d6 g# d- v) }! k8 A" l* ~ - )3 O) I3 `8 S& k
- (if (or (= value "")
$ c; f) `" b- [4 f8 [ - (> rval 0.0)
( t1 {* e8 K7 l8 g - )
, {4 [! c# L! F9 {: o5 [* l: Q8 N - (progn C, Q$ e- l" R6 N: u/ C
- (set_tile "error" "")1 h/ L) [5 x- g9 h. U d: d4 f' j
- (if (= value "")
; R9 `8 Y7 @+ o4 W; d* Z" @& x - (progn
1 z! G. m4 g" K5 Q - (set_tile "text_hgt" "")
6 Z! {& W( X. {4 `; \& U - (setq eheight nil)
5 ], |; g; U7 e - );progn
$ R4 T' _- _. _3 Y% j3 x8 @+ m - (progn2 Y1 \9 s9 ^4 E- j: R- R
- (setq eheight (distof value))
N. Q) n; [: g( W- K - (set_tile "text_hgt" (ai_rtos eheight))
+ n, I. ?% V9 \% r. x - eheight
4 l: v6 J5 ?6 T6 L% ~ - );progn9 `. P+ e" @* P9 F. K/ z
- );if5 J& r3 J0 q/ g3 d" I% S) u- f9 U
- );progn
& q* |, l5 F' L7 F8 @ W1 A% i - (progn) Y" K4 n4 R' H1 }+ ~) j9 _* v
- (set_tile "error" "Invalid height."). v4 t! x1 H2 W9 @' ~- P' ]& Z- S
- nil
$ g" I2 _! [+ R. Z - );progn0 U. w5 n" X% G; l
- );if5 P2 i/ m; [* e/ Y- v- h0 z9 B
- );defun& Z) P0 X4 {5 m/ T% N, a
$ H, x+ H& X1 i3 L% F- s- (defun getstyle (value lst / rval)4 u1 d. n" L6 ?2 Z; A
- ;(setq value (strcase value))# Y1 R9 A( l6 @5 b8 k8 d; o
- (set_tile "error" "")
; @7 O+ ]. W. R - (setq estyle (nth (atoi value) lst))- {* Z' X; O4 r8 [2 L
- (if (equal estyle "")7 [( a# f6 y' N k& l
- (setq estyle nil). _9 D" J- |1 k
- );if- G, R9 A: x1 q: p F
-
* X. J7 x6 Y: @- e {6 J2 m - );defun getstyle7 h" Q$ _7 r! b( g, B5 R* Y) W
- ' y7 A8 x, z2 {5 D1 H; W/ R+ t
- ;;1 v' z' ], f! u" O, C9 ?2 O
- ;; This function make a list called laynmlst which consists of all the layer
# o9 i, G5 [" X! E - ;; names in the drawing. It also creates a list called longlist which" t7 B2 T% m$ T- h2 @
- ;; consists of strings which contain the layer name, color, linetype, etc.
( J% a# a/ Z0 b% C( \ - ;; Longlist is later mapped into the layer listbox. Both are ordered the
0 _+ D& n! t+ u5 M - ;; same.
2 `& \/ F1 j$ C) D - ;;
% u y j) C( q, V! K - (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname; m% ~0 R5 n" W6 h
- xdlist vpldata sortlist name templist bit-70 N {1 ~, N' R2 c
- layer_number
% d w$ `" M; |& L3 g - )
" e+ _! t5 K$ ` - (if (= (setq tilemode (getvar "tilemode")) 0)
! G9 z5 K( Z. [$ E5 O3 ] - (progn
1 ~4 w3 [0 O# U! E N; V - (setq ss (ssget "_x" (list (cons 0 "VIEWPORT"); p! }& ]; y: X9 r5 R
- (cons 69 (getvar "CVPORT"))$ b: B4 `% P0 O' [$ C
- )- c. d( B$ r, H2 {
- )& e9 r" v2 y# D! H; B! F. q
- )
+ Z# L1 v4 M& {+ B/ g( [) V1 G7 v - (setq cvpname (ssname ss 0))
) A8 U) h, I2 H- j+ L2 Q! \ - (setq xdlist (assoc -3 (entget cvpname '("acad")))), J j% H P* H& d( q' k$ j3 `
- (setq vpldata (cdadr xdlist)), n8 J( G: \; G1 z7 r. t4 w3 T
- )
( p, n( d/ x2 O9 Z, m, {: s - )
. g% ?( }3 w! v - (setq sortlist nil)" f3 H+ R9 i3 ?, g' T
- (setq templist (tblnext "LAYER" T))1 t, p* l4 K9 ~8 t" Y! P
- (setq layer_number 1)
( _7 g0 L6 g: j' v: G, w9 v! o5 V# I7 e - (while templist7 A. ]7 K) y6 E
- (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))
/ `& N1 _4 F( I8 W5 {; n - (progn . E. @3 ^" x. o) T. n) D
- (setq name (cdr (assoc 2 templist)))
7 f7 `4 l# x& N3 e* y* u+ Q - (setq sortlist (cons name sortlist))1 ?7 b; z+ P9 Y3 o& n: x) V+ {6 E
- ;; Not dead message...
2 Y) i" g/ ?) u) e _, q - (setq layer_number (1+ layer_number))( V/ q; P# g% J! y3 n
- );progn
" ?1 Y! H5 s: s: Q) P. w - );if! L( v+ S# }6 Q+ u! }) p. [
- (setq templist (tblnext "LAYER"))
. k% b( _7 K! y* q9 s& T4 X; W - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))
* R9 |; O$ o. E - (set_tile "error" (strcat "Collecting..." (itoa layer_number)))8 L9 D" W% ]/ C7 `( n4 M
- );if* J7 q# N" ?( m6 H2 J+ i% ~
- )' Q9 L4 O2 G4 Z L
- (set_tile "error" "")
/ m; r/ C6 b3 ^! o* ]% m( k0 { - (if (>= (getvar "maxsort") (length sortlist))
A' K: n' T% d3 ?2 `4 \ - (progn
0 ]9 z* I0 r) L - (if (> layer_number 50)
8 i$ Q) f! Q! `7 U& L - (set_tile "error" "Sorting...")
9 \( {' b3 r* X2 p; H( |6 `6 v" V - )
1 V$ X9 _/ a& N - (setq sortlist (acad_strlsort sortlist))9 D( k$ t6 H. O! n3 q& i& G
- )& ^: f" k$ }' H" q4 v* F, X: `0 M
- (setq sortlist (reverse sortlist))
( H6 N# ~5 G' b - )
7 f& y0 N& L- n' e* l# \/ V" h - (set_tile "error" "")
& t# U9 @% q' a4 u1 h7 M7 Q - (setq laynmlst sortlist)) _) S" R: E$ A1 `1 s
- ;rk d3 A% x( q6 L# [
- (setq laynmlst (append laynmlst (list "")))
8 t+ `' {7 X; O. J& \
0 y4 t9 i( q7 [, ^- (setq longlist nil)% O4 w) {9 @$ d) D
- (setq layname (car sortlist))8 u" M: I5 w& r" k+ l5 _. m, ~
- (setq layer_number 1)
/ [! \6 C1 V+ _9 H - (while layname
/ B' f. ]% s' u0 g" {9 Z0 f l* v6 U - (if (= (/ layer_number 50.0) $ V. `: d1 A$ \/ Q% L" ]
- (fix (/ layer_number 50.0))! f' H' U+ X' g" @
- )% F0 t# V, Y* Z& @
- (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))+ @2 C* |8 k& x- P9 v: @
- );if( u' [) f, u2 N' X6 z: h& Y
- (setq layer_number (1+ layer_number))
) j& U9 V6 _3 m% u - (setq laylist (tblsearch "LAYER" layname))
: m! G1 Q. K' Y" [6 M$ b0 I* v - (setq color (cdr (assoc 62 laylist)))9 P8 S. S4 V, f$ B. K
- (if (minusp color)
6 v t' @7 o1 r0 I9 ` - (setq onoff ".")) `( |( ]* R& r; q+ ?
- (setq onoff "On")
% M/ I0 d. h9 E - )
5 c- `. ]% F/ D+ P' B - (setq color (abs color)): k6 |6 \2 X" a5 e, t
- (setq colname (colorname color))% u c& E2 ~& z J
- (setq bit-70 (cdr (assoc 70 laylist)))
$ |2 [$ y% G# v: V: L - (if (= (logand bit-70 1) 1), u3 _2 I7 \/ M1 U9 [* j
- (setq frozth "F" fchk laylist)
" Q# q; V2 u8 A4 v - (setq frozth "."), Z0 X# E) C) B, m8 U7 ?. y) v% l* q
- )! |" g3 B" ?" [$ e- B6 H
- (if (= (logand bit-70 2) 2)" x" L: S" e9 h; g6 e
- (setq vpn "N")
4 Q$ M7 ]: ?& ~5 r6 p! e - (setq vpn ".")4 E1 A0 x" t9 L% n/ C
- )
; h" r) X- e4 l" @! S1 \* K - (if (= (logand bit-70 4) 4)
! O+ N; Y9 F+ S6 j - (setq lock "L")# F' E: Y& \7 ]* c5 i1 a- b
- (setq lock ".")( D, c6 t) }; b! n G
- )
3 H9 t" ]- X# m; X# T - (setq linetype (cdr (assoc 6 laylist)))
$ m- h* E l5 y# d8 h - (setq layname (substr layname 1 31))
. F, ?4 d! e+ L3 o$ e - (if (= tilemode 0)
# X5 n# X' K( S2 j3 V% k { - (progn! N% v7 B6 [" A. Z: M* \
- (if (member (cons 1003 layname) vpldata)7 b! |/ q- W5 x: N% x
- (setq vpf "C")9 P4 i+ Z' X) K2 `! k' Q5 c
- (setq vpf "."): ]; w {" }# ^
- ), b7 x; w9 m* G& r
- )8 O0 H$ t/ |/ |
- (setq vpf "."). v b; X1 c+ Z0 J9 ]2 P
- )
( p0 s5 T( ^% C: p" c - (setq ltabstr (strcat layname "\t"
4 O7 z$ @: w' p - onoff "\t"
]# [$ T# O9 a. t, [. y - frozth "\t"
2 @, y7 m5 r: ^. m0 V - lock "\t"; A z# q' M5 p% E4 d
- vpf "\t"
: ~* T) Z5 {7 J3 H( r - vpn "\t"+ T. L6 b' r4 c& u' d" ?3 L
- colname "\t": ^% _. N! Y X# ~0 e( [0 H
- linetype# C8 H7 m7 ~: e& t
- )" L; a3 t: ^1 T
- )/ u$ x5 Q! g( e& C
- (setq longlist (append longlist (list ltabstr))), h$ X9 F* T) C w0 y7 o( _1 |
- (setq sortlist (cdr sortlist))2 C5 n8 J# \% ^' g$ d& Z6 v; }2 B5 f
- (setq layname (car sortlist))- W0 Q9 N- m9 ~" L5 [
- );while
$ F2 [3 C' Z/ c6 z1 v# [ - (setq longlist (append longlist (list "")))
6 P7 u9 F4 |9 i7 v% T - (set_tile "error" "")
: e' e& u; t* L% A6 G - ): v, b) w! ]/ t/ f7 P
- ;;
, Q+ w! m9 R- E( E) O - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
3 ]) o/ f4 p# b3 k6 \ - ;; linetype names read from the symbol table. Mdashlist is list consisting! g& Y5 e, w6 ?) j4 i, J' l
- ;; of lists which define the linetype pattern - numbers that indicate dots,
' E2 P, @% M$ |0 c - ;; dashes, and spaces taken from group code 49. The list corresponds to the6 [& V' D+ R u2 i- m+ e1 T* @
- ;; order of names in ltnmlst.
$ k7 T( v# K) F- V7 y, w A' I8 A) j - ;;4 M# H7 z4 P: W9 s+ Q( ]- d
- (defun makeltlists (/ ltlist ltname)* \+ `( P1 @! }3 ] |
- (setq mdashlist nil)9 W) d9 Z' v( Q3 _8 Z8 @
- (setq ltlist (tblnext "LTYPE" T))
! p, X! m* }, P- c; D - (setq ltname (cdr (assoc 2 ltlist)))8 |$ z9 X2 b4 x# B+ a$ a
- (setq ltnmlst (list ltname))7 G) u D2 P# @' B/ Y0 [4 |9 |
- (while (setq ltlist (tblnext "LTYPE"))- r$ W! ~1 K+ T) S* A5 h7 Y5 B
- (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))
* d$ ]; g( N. j. j. J - (progn 4 K+ l0 a! c6 `) H7 }% g# \% `) k
- (setq ltname (cdr (assoc 2 ltlist)))
+ I( @2 b. i' b: I$ r/ q - (setq ltnmlst (append ltnmlst (list ltname)))
! b# W* |! Z" t9 Y3 P' w7 T - );progn
# k: F: R1 S% I) v- |. A( @ - );if + F& W9 h& F& r- l3 l. r+ F1 v% G, v
- );while
x" s) v4 u1 f: N/ t a/ t( w - (setq ltnmlst (acad_strlsort ltnmlst))
4 M$ S$ O: A( y/ r8 L$ V% n - (setq ltnmlst (append ltnmlst (list "")));add by rk |# t X3 z( |
- (foreach ltname ltnmlst
" I: L: c: }( z - (setq ltlist (tblsearch "LTYPE" ltname))
; g a. s; w6 {) i1 |3 n0 `% z - (if (= ltname "CONTINUOUS")
8 O9 C# @0 |& {+ T& E; ^! _ - (setq mdashlist (append mdashlist (list "CONT")))( E/ \% Y) E; a5 s
- (setq mdashlist
6 L2 [" u& X, F1 w& J - (append mdashlist (list (add-mdash ltlist)))
6 Y% _* [6 r0 G7 k* a+ ] - ) m' n5 S& ], j* I. W" x5 h6 M. ^. |
- )
9 Z# d! f" y* V - )
. g/ j$ ~5 l( n8 N - (setq ltnmlst (cons "BYBLOCK" ltnmlst)). k/ E+ I" {0 x* |
- (setq mdashlist (cons nil mdashlist))# n f0 c7 H2 e+ p3 y
- (setq ltnmlst (cons "BYLAYER" ltnmlst))/ Q; B- j8 z) a# A6 U! q' G
- (setq mdashlist (cons nil mdashlist))
3 t" A, @2 b% V. e - )1 S& R J9 u u* ~; t7 f- y7 a$ Z
- ;;1 E6 E6 q1 i" P5 W
- ;; Get all the group code 49 values for a linetype and put them in a list
) K& ~5 u- z4 E1 i - ;; (pen-up, pen-down info)
, x6 A( ^- Z8 c# q: Q( I - ;;
# J" S7 @4 Y0 c5 x4 j1 | - (defun add-mdash (ltlist1 / dashlist assoclist dashsize)
) Z) V- [5 C; i4 ?6 @ - (setq dashlist nil)
, x- O. ?0 c1 r - (while (setq assoclist (car ltlist1)) x" C- D, j3 E( j; ^
- (if (= (car assoclist) 49)
' p" W- w2 b/ ~% d& q) x$ Z - (progn
, r9 v; |; U, Z - (setq dashsize (cdr assoclist))9 s( ?9 N$ D* q' }# p
- (setq dashlist (cons dashsize dashlist))/ g, k6 D# h, w+ E7 B
- )
x! T& C3 t8 m! F! j - )
9 ~# ~* X# b, W - (setq ltlist1 (cdr ltlist1))
7 R2 w4 i2 a0 E* x% p# ~ - ): |- e9 Q. W, o! R
- (setq dashlist (reverse dashlist))( `* `) e- j! k
- )
# |+ o o* ~& L! P4 u. v: y. B - ;;
1 q- G( n K( ]( ~ - ;; Color a tile, draw linetype, and draw a border around it
7 B U/ F3 R) H8 \! I - ;;
9 x8 Y' [6 X1 ~. s c N - (defun col_tile (tile color patlist / x y)
. M" A @5 V+ t0 p: p, z/ u5 i0 I! Z - (setq x (dimx_tile tile))
2 n6 d& |% y8 S - (setq y (dimy_tile tile))! D+ W4 T3 T% t6 E& ]* C
- (start_image tile)) x* O! _/ u9 n+ m+ t& L& s9 W% K
- (fill_image 0 0 x y color)
+ f. P( s2 y f& E) z6 K$ w! n8 K - (if (= color 7)& t! b, q" W$ Y: q8 T
- (progn
5 V: y) @" k" E b. R - (if patlist (drawpattern x (/ y 2) patlist 0))* T5 F3 N9 S" z% o& O
- (tile_rect 0 0 x y 0)8 e, ~# `8 J# `! h5 b; O
- )+ c$ [4 f5 a; d. e' N* ?$ Y
- (progn% p, x1 U/ Y" o6 }
- (if patlist (drawpattern x (/ y 2) patlist 7))/ u, \8 O. s* ]3 w/ D
- (tile_rect 0 0 x y 7)
& u5 R' ^8 N' g3 P - ); R* w. u3 P6 x z Q; n2 n6 i
- )4 T1 c% s6 U6 ]
- (end_image)
# {8 s* r: p3 _: w$ C - )
! ], c" C/ ]( I7 ^ D - ;;
& F0 W5 l& O2 n - ;; Draw a border around a tile
% h. R, l1 X2 F, {$ t/ @9 t - ;;6 i1 x! Q/ V% S( X8 s5 N
- (defun tile_rect (x1 y1 x2 y2 color)0 [: Q2 B3 z$ P2 l" q; B3 m
- (setq x2 (- x2 1))3 R; p3 P$ Q u+ l
- (setq y2 (- y2 1))3 B9 T: M# O( B3 e& z
- (vector_image x1 y1 x2 y1 color)
% J. M3 n$ e0 P* n, ^ - (vector_image x2 y1 x2 y2 color)7 ^6 ~! S+ s4 \ X- \$ s
- (vector_image x2 y2 x1 y2 color)
6 ]1 @/ }" P' r - (vector_image x1 y2 x1 y1 color)1 j" Q- v2 T- r4 `! q. s
- )" G% {+ y" j% f# R; w) _
- ;;
! f& M* r1 W/ N/ ]8 G - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
: J2 e8 r& k. T/ N - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
$ l4 U- F/ Z) R) Z0 z" E( t - ;; list of numbers that define the linetype, and color is the color of the
7 |8 k& U& F2 Q4 m# l) B) S - ;; tile.: k3 N3 Q; R: @( L
- ;;
4 j- ?8 V H+ M4 r - (defun drawpattern (boxlength y2 pattern color / x1 x2. j9 N: N( D, l/ p
- patlist dash)
9 @+ q) f, }' c; r) y - (setq x1 0 x2 0)2 p, H! M0 R% w* U* R
- (setq patlist pattern) g* c( j& C8 U) E2 L
- (setq fx 30); K! x, h! @% }3 t. [
- (if (= patlist "CONT")
d6 j2 F* a. k - (progn; j' K- a! |! g/ j$ p+ s6 z- w
- (setq dash boxlength). r( o- C' B y( ?- T
- (vi)' S: B; X9 a' }) z
- (setq x1 boxlength)
8 h/ m5 e% }7 L( ^ - )+ j) I$ K( d% f6 M6 g
- (foreach dash patlist; J7 C5 a( P8 V4 L
- (if (> (abs dash) 2.5)
* } M% v- v p9 f7 i - (setq fx 2) q6 L$ R7 n& _) Q+ c6 C
- )5 K1 V8 a8 z: o; `: u! O4 e' F
- )1 o. p1 n' o6 |& n$ s
- )
5 P# i5 u. q4 l" @ - (while (< x1 boxlength)1 e: t8 ?& P0 m D* |+ a7 w
- (if (setq dash (car patlist))
8 `+ u3 f/ G, F0 G. p* R - (progn# l$ {0 ~4 V$ K) q, J; }% }$ U9 i
- (setq dash (fix (* fx dash)))
/ H2 {8 k; X+ {+ P5 N: A; m - (cond- x. w+ _ G% {: Y
- ((= dash 0)
2 C4 `' P7 J/ D! W: n. V2 K - (setq dash 1)
5 F G5 T/ l- Q* |( b# ~8 t1 O - (vi)
1 a5 x9 ^# j4 C' W1 A% P - )% G1 k3 |( d5 O, y
- ((> dash 0)' h t: S! ?1 m1 d
- (vi)1 G% } a5 G: ^, A8 Y6 q
- )2 F2 O+ W' {! K Z0 p
- (T
! x5 _; I! t# h. f& r8 f/ h - (if (< (abs dash) 2) (setq dash 2))
5 r9 O" {* D( ]; N - (setq x2 (+ x2 (abs dash)))
! X- \; M7 N& ?& v6 b( ` - ). D$ C. w2 c d) l' A3 `% `
- )8 }3 U; X! ~+ q% p: m
- (setq patlist (cdr patlist))
" e1 H, |; l# _ - (setq x1 x2)
3 \2 r- M2 G$ A+ O8 @% K6 q - )9 D* ~# {& A1 H2 {& M- Q' [, [/ \& z- {
- (setq patlist pattern)
0 ]" K; p/ H4 f9 }6 ?+ D - )
$ G: o& R9 A' v4 b! S3 m - )
8 I4 s3 E& V2 H7 C0 P - )
. s/ H4 K+ y! s/ d. L) e, Z+ {; N% H - ;;
. H, |" m% o: j8 u" j1 c: ] - ;; Draw a dash or dot in image tile% y T9 H+ |# I. m0 r1 j& x0 j3 j* }
- ;;
. h/ U, q, _! s$ C, A d3 E* n9 w - (defun vi ()
( i2 g0 d4 j7 H/ |+ }5 ~& C% e. } - (setq x2 (+ x2 dash))
3 }& g( Y2 m! c2 M; U4 u" P" v$ Z - (vector_image x1 y2 x2 y2 color)
; d' ]/ Q2 Z& R0 V0 P8 ? - ). P7 d/ n0 Z. g3 I' ?' U
! p# y' e4 o4 z- ;; This function takes a selection and returns a list of the color,# s# b2 L1 R% a% ^; o1 i
- ;; linetype, layer, linetype scale, and thickness properties that
* @& ]4 R0 a, \" j& z. q f - ;; are common to every entities in the selection set - (color' r" [. V3 _" W( a, H" M5 B
- ;; linetype layer thickness). If all entities do not share the same
" ]5 ^; B9 Q: [6 x - ;; property value it returns "Varies" in place of the property' G4 q' Y7 x: _/ B
- ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
# T" N: M# Q: H: U - ;; The last item in the return list is an integer flag for the
. \* `- u6 d6 {. \0 L/ N - ;; homegenity of the selection-set object types.
" _. u: K" j0 }/ \ - ;; 1 = All polylines/ V2 z# H8 T" D0 m' C2 v& I
- ;; 2 = All text or mtext or attdef, or a combination of the three% O& p, i2 x' [6 R" d
- ;; -1 = Any other mix of objects9 N, a }, Y3 J; a* {! H9 y
/ F' a/ ?! o$ ?" [2 A- (defun getprops (selset / sslen elist color ltype layer ltscale thickness) q) b8 D h7 e
- width elevation height go ctr
: [+ U# S4 ?9 G - eflag
4 H/ s d( E: W) a* ]$ [& R' C - etype temp ! u1 s& L" m6 Z$ }0 T
- txt_ss ;;;;rk 11:24 AM 1/30/97; E# n. N* `. }
- tmp , Y0 D8 |/ P5 d' T
- poly_ss + F* Y/ ~# m6 B& i) V
- style
# k; v1 ?9 K8 a: L. y5 M- | - )
3 K- e* ~7 r; y
, ?1 w% X) c; ^& K& g9 \
4 r7 z g. [; J) E/ S+ O$ ^- (setq sslen (sslength selset)4 k& x: L) @. U* [- C6 h
- elist (entget (ssname selset 0))
0 r' i5 E% |7 I4 U) p5 P - etype (strcase (cdr (assoc 0 elist)))
, T: p* I( A, f8 T - color (cdr (assoc 62 elist))1 h6 W; m# T# ^" z" h" e
- ltype (cdr (assoc 6 elist))
! m5 G5 g: t+ B - layer (cdr (assoc 8 elist))! u9 W! q# x8 r/ n3 U$ ?
- thickness (cdr (assoc 39 elist))+ u; b" j0 `$ q$ @, \
- ltscale (cdr (assoc 48 elist))
e5 N* c) U$ i. I. x% M - );setq( y) [$ |+ F* [) |& k7 G; c
- ) [+ o3 B0 ^% I" e0 v1 Y0 X
- (if (not color) (setq color 256)): r" l6 k% k8 `4 l/ J' ?( O+ g
- (if (not ltype) (setq ltype "BYLAYER"))( N* X* |, _' @
- (if (not thickness) (setq thickness 0))7 F9 ^/ j. r$ @# [2 |
- (if (not ltscale) (setq ltscale 1))
0 q0 {- K! `7 m - ! N1 |! V0 G3 ~0 |( p
- (if (not width) (setq width ""))- U% t2 }4 P* R, r
- (if (not elevation) (setq elevation ""))
9 g7 ~4 g; U7 J - (if (not height) (setq height ""))/ }$ ?1 U' x( {8 x# G& d# z
+ k7 P6 n6 j; V" ~/ D- (setq go T 6 A9 f0 m3 x1 z
- chk-col T * R- }: l G& X8 o! ?
- chk-lt T
! K% u, j5 X5 N: X8 s - chk-lay T
( |7 M* B* q( c7 F9 L - chk-lts T
* ? e$ d& }' [* m) I9 S - chk-th T * K! K: y- B; d
- ctr 0
~+ r# c C4 u4 A5 ?% ` - );setq
* H& F: u! n1 v/ L* t+ L
' N! O2 G; V( G( |- T! A2 q- ;; Page through the selection set. When a property
5 k% u5 H, @$ w5 g* g4 `' | - ;; does not match, stop checking for that property.5 K* E" |$ t: ^# J# r) _, u
- ;; When the selection set is not homogenous, stop checking.
( _6 W8 S. F4 e! J - ;; If all properties vary and the set is not a type 1
" j( v4 G0 x. u9 O5 M$ t - ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging.9 }" W; f% X1 x5 s1 U. k9 \
, m& E+ Y1 }0 o( m- ;Lets set the eflag so we know if the selection set includes any ' _0 y, D" }! a
- ;combination of polylines, lwpolylines, text, mtext or attdefs.
0 |/ E: V! o; j - 5 ^, s( b# G. E+ y2 @) A z4 q; i
- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/97
$ W/ k+ k0 K/ V% U6 a - (setq eflag 0)
# d: z s7 L& L1 T - (if (setq poly_ss
# f! ?( ~3 S- _1 e/ h) } - (ssget "P" (list '(0 . "*POLYLINE")
5 f9 T8 y! A( Q# `3 D! P. i - '(-4 . "<AND") ! k3 Z; C. l. o
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")
1 Q0 U- f) g7 l4 s7 e - '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")! c: l- c$ |* `4 H' q# n
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")+ b' Y: y& `0 z3 E; G/ T
- '(-4 . "AND>") + N. _; n7 v2 c4 B
- );list0 E7 {* I* m* t$ ^5 B
- );ssget get 2d polylines (legacy and lw)' D% d1 u$ Z W7 K5 `$ U
- );setq
4 h( C' Z8 o/ p4 f3 y9 W3 ? - (progn
; ~1 c2 P5 \, x$ Y( b& ~ - (setq eflag (+ eflag 1))
, l! c$ z" }) D0 V! y, S" g -
5 g+ H( X% W4 ~& W# y - (setq tmp (entget (ssname poly_ss 0)));setq
1 I+ U8 T; L- A: _8 M; k - + C/ P7 |1 j( h: @8 u4 ~
- (if (equal "POLYLINE" (cdr (assoc 0 tmp)))% r5 g7 i' R/ }6 \7 A8 G
- (setq elevation (last (cdr (assoc 10 tmp))))8 X% o6 l1 Q' l% ]4 Z
- (setq elevation (cdr (assoc 38 tmp)))
, A# a( ^4 h7 c8 z1 p+ \ - );if6 H3 R& {' D4 J+ d% @
- (if (not elevation)5 G! X* c D% a% b8 G
- (setq elevation 0.0);setq* f \7 o* m% I
- );if5 i4 D# d9 @3 w1 v$ \
6 f# d, h0 B1 p# U% e# ^- N8 [- (setq tmp (ssget "P"
# M: V5 \( w' _/ V; {+ f+ Q! S: K - (list ( x# P7 K# o" I9 s
- '(-4 . "<OR")
9 o8 |' Z6 e6 i* n- w- h - '(-4 . "<AND")
+ X0 h' o! i% A- d! Z - '(0 . "LWPOLYLINE")
`$ \" [5 Q6 F# H+ { - (cons 38 elevation)
7 R2 I) |. [! ~$ T9 U3 v - '(-4 . "AND>")
$ }; d1 x( R8 a0 C+ D- w& {6 c1 ^ - '(-4 . "<AND")
6 M& |& K- E$ I' `* B - '(0 . "POLYLINE")
; J5 R& `& P) J0 ~& ~ - '(-4 . "*,*,=") 3 `5 @* v, ]& i S
- (cons 10 (list 1.0 1.0 elevation)), `; v3 `5 P5 j
- '(-4 . "AND>")
4 Y! p9 g v# X8 A+ T# v8 ? - '(-4 . "OR>")* B2 w0 A6 `$ w, W/ e- E
- );list4 \- {. u# ?7 V* e' O
- );ssget7 j1 N/ i- u" m; w; D
- );setq
1 `+ `6 G* ]/ {* |/ M2 H7 ^" W, y - ; D4 `: r1 t& X& X8 N; R
- (if (and tmp
; U" g1 i; o: b. x9 V9 k - (equal (sslength tmp) (sslength poly_ss))0 j& s% I3 Q& \1 @
- );and3 s( D- X6 W( `9 \' a
- (setq elevation (ai_rtos elevation));setq5 V! P0 K% ]9 ^6 R6 X' B& f1 t
- (setq elevation "")
+ ^0 k7 u; j- e& ~3 P/ l' ` - );if5 W! D1 [* q- H0 U, o
- 6 t: m7 H- t! d5 W9 W& @# a) f3 o
- (setq width (pl_width_getter poly_ss));setq. T9 X- |7 t7 t% {; K& d' P2 }8 f5 K
-
+ L# w0 z' G& F( y M$ Q - );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!( i* r2 n0 [% \ E! `( s5 U
- );if
6 u; n' F* Y; P: X1 f - (command "_.select" selset "")
) E! o7 a Q6 O' }$ p -
Y5 d: h. O8 H( M- M& } - (if (setq txt_ss 2 K( S f- v$ R* {
- (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT")
, @( P+ A( @, d/ V8 f% D - (0 . "ATTDEF") (-4 . "OR>"))( z! u, Y3 F# {1 K7 e: T+ M! L% m Q
- )
! {+ u) C$ W4 L9 {% [ - );setq
, ^( E5 X- r! C, ~) R - (progn& R! |. d8 O' O+ D" q8 B
- (setq eflag (+ eflag 2))1 T# r+ @- s, T6 t' G
- (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))' |+ h3 Q; P' d4 g e) S; W! ?: `
- tmp (ssget "P" (list (cons 40 height)))
7 \9 ]. {( b, _ - );setq ) p2 g$ [& h. S; i5 s
- (if (and tmp
# A5 i$ @, a F% j4 _5 h - (equal (sslength txt_ss) (sslength tmp)) / B# n a! c, y/ O F! X
- );and
; Q: K/ E3 o8 M" e8 @ i - (setq height (ai_rtos height));setq ;@rk need to translate from float
1 G2 R+ M& ?+ J4 L6 s - ;to string and back again easily! c- W9 d, J, ^
- (setq height "");setq else the height varies ' ?1 {5 V; q! B( S
- );if
& L( `/ g5 ~: q2 F. Z- ^' x - (command "_.select" txt_ss "")
, K2 Z# @ D, j( M. c: r- u3 V - (setq style (cdr (assoc 7 (entget (ssname txt_ss 0))))8 a/ i: c/ D' }7 Q1 a" D3 X q
- tmp (ssget "P" (list (cons 7 style))) 1 \- u0 v: F: N/ W; o
- );setq 0 r4 _. E0 C- ^ y! Y. e; G
- (if (not (and tmp
* X4 \# \/ m0 w. L S - (equal (sslength txt_ss) (sslength tmp)) " N1 M0 l) Z3 P
- );and% U+ W: X4 F: F! p
- );not
x# C' ?# n. a - (setq style "");setq then the style varies
3 }. g1 T& K6 J: r - );if
4 ]$ P: o% V0 t" P2 v% d - );progn the text type objects are in the selection set
. |) e3 g, m6 F3 Z - );if& M" {" o; \1 D0 b$ ^
- (command "_.select" selset "")
1 z' E0 S9 ~3 z; B* Y - 9 r) I1 E' Y2 v6 B) |
- (while (and (> sslen ctr) 0 H0 Y2 @: w1 z- x: k
- go- S% Y0 Z; d2 q4 t1 O. {* e% z
- );and0 y2 F: z, C: M% M1 R
- (setq elist (entget (setq en (ssname selset ctr)))), l5 k/ c9 _7 J+ d
- - ~/ W! p' O2 y
- (if chk-col (match-col))
- F2 D v6 M* y, {8 C5 t4 h& ]6 \ - (if chk-lt (match-lt))
8 P: `. m x0 A - (if chk-lay (match-lay))
8 i- m9 S2 W" X1 ]) k, ^ - (if chk-lts (match-lts))( J& V% v9 u+ s& \- v
- (if chk-th (match-th))" C0 ~; M9 }. v2 j# P0 y
- 7 u+ q1 M' d# }. o
- ;(if chk-etype (match-etype))8 l+ K2 E( l3 u9 l% `! d4 n
2 I! D+ e) r6 n$ n' Z" j- (setq ctr (1+ ctr))) K: o4 y* Q( K
- (if (and (not chk-col)! k) i! y3 i+ q) {# D( \: ^% m* ~
- (not chk-lt)+ F1 }& v7 Q8 \" H7 U& H9 ]. p6 z
- (not chk-lay)
9 r# t: i5 j# w$ N0 i, J- q - (not chk-lts); [8 @0 ]6 W; G2 K
- (not chk-th)
$ |0 F5 Y2 Q) r" J: W- n - ;(not chk-etype). ~8 U2 Z( h" b% r
- );and4 P" a1 ]) T0 O. o/ W
- (setq go nil)$ K1 s6 l( M* J
- );if
) Q- H- ?$ V+ q$ D* c4 Y - );while7 p1 |: W0 c! ?* w6 g
- + g' p' T- M4 u# g- D7 v
- (list color ltype layer thickness ltscale
E* I( V9 V# |, S- V9 x - width elevation height eflag 8 w6 c6 Y$ g9 T$ P+ g. d) U
- style poly_ss txt_ss2 ^( F" A5 r! d$ }
- )
; f. F' G8 |! O' l9 E, o5 e - );defun getprops
$ ?8 i) ^, ]2 S1 P* B6 ^" D+ C
6 Q9 M: \/ b& F- ; This is a speedy little routine to tell whether the polylines in
0 L, ~/ h1 o. i# E0 m; E4 b$ F - ;the selection set argument are of varying width or a constant value.
4 T' z' M! N3 b7 [3 T1 ` k - ;Looping through the vertex's has to be done for old polylines when
# ~; p" [$ d7 t% N/ |4 n7 h - ;the polyline header has width values of 0.0. Basically, in this case, 1 C1 y% u' l$ u I7 J
- ;information in the polyline entity header is abmiguous. Width values
/ V" ]. ]8 Q, E o2 Z - ;of 0.0 in the header entity could mean the polyline has a constant
* K" J6 b, Z& q* Y7 ]6 n - ;width of 0.0 or it could mean that the polyline has vertex's of varying % L7 H. @1 {) q; k. z0 a
- ;width.3 S6 U2 R; Q$ V6 K4 I
- ;! A" O: w/ Z3 o0 |5 F2 l t( Y
- ; It's all in wrist. Err a.., I mean it's all in the 'if'
& q3 b! |& R! w! t - ;;" o, y( ~" \ [( y/ D( D
- (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)
' c4 C6 B1 K- H6 |+ i% H - * F4 `: C3 Y/ i Z3 }$ D7 I6 v7 ^
- (if ss ( @9 q3 L% m" |8 K' l
- (command "_.select" ss "")
4 M$ q5 u. k9 O - );if k; i4 _5 x/ g5 M
- (setq width ""
* w( t+ t/ k; H( K - flag nil& q W: P' j) _) J0 m+ R
- flag2 nil# d, E$ p: p' X$ _1 k. J! u4 M
- );setq
8 a/ ^2 c6 M! {/ P- X9 Y# d& ? - (if (not # \. W) p0 ~# ~8 V* n
- (and ss/ T6 m8 P8 l5 X: }6 q' E
- (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq) z S: v: }. d
- (setq na (ssname ss2 0)
3 t( f7 t+ j, y) L- C A - width (cdr (assoc 43 (entget na)))
+ A L( q z* g9 E+ M - );setq
$ A# Z: [" q+ P- a8 [ - (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")
) [$ Y3 f2 u. ]$ E - (cons 43 width)
% V# R7 w9 X8 S- \3 c - );list1 H' u' @8 g. z: J
- );ssget1 u# t$ D1 ^5 i1 v0 E
- );setq" y+ D4 D$ A @) S2 C
- (setq flag T) 0 d1 @. P; P- |% X/ [- W8 Q
- (equal (sslength ss2) (sslength ss3))# H, j; R6 u1 r U+ x6 v1 W' j1 r
- );and0 N- T# ?+ {; R
- );not6 s1 k0 q8 o- F, t+ J+ e
- (progn
1 Q4 h+ i) f: v+ F) Y; L5 r( ` - (if flag* z) ^' I; S) N8 b& r2 S
- (setq width nil)
0 `7 D. n) i: j2 t' x - );if
( i3 ]8 P. _) U( o - );progn
' n: T4 m2 |6 N - );if
6 ~, e" s) T6 I - % {2 k; X; V3 v
- (if (not 7 W/ B/ j9 T$ N. u+ a' `
- (and
, R! z) ^9 y; B+ W1 o - ss5 y; d4 f* T1 T0 A: I7 N& g, o
- (progn (command "_.select" ss "")
/ ~& E: }# L. A R8 ^& [ - (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq, W+ _7 @. ^0 \' w% Y
- ) , ?( E5 ]* p9 ^, R1 J4 i
- (setq na (ssname ss2 0)
3 D1 D9 n2 L" S5 U) [: O0 e& H - e1 (entget na)2 x4 [% M" c( J3 Q
- width_a (cdr (assoc 40 e1))
& P6 ]0 |) r: L) ^8 h% h1 L( L6 c - width_b (cdr (assoc 41 e1)) \2 F% n/ [0 q s6 m
- );setq
% x+ T- @ ^: A, P - (equal width_a width_b)5 ^" E( ]: J* C/ E6 s! ~
- (setq ss3 (ssget "p" (list '(0 . "POLYLINE")
% T9 [2 K# e3 ~" I, ` - (cons 40 width_a)8 z: P( P( ?! R" R
- (cons 41 width_b)
8 t; o. a5 i8 `- Y) d# \. C; l+ Y/ h% ~ - );list) V/ ~; j* r) K/ I
- );ssget& `9 _* V; @" S9 g; C$ c3 c
- );setq
! C% X# t: l( l) v1 S - (setq flag2 T)4 G6 Q E* q3 Q. _
- (equal (sslength ss2) (sslength ss3))3 t0 i0 P9 ]8 p6 X2 T# g! f
- );and & D) i! `1 f9 ^0 b. H
- );not
1 n1 T3 |# A# U7 B - (progn
$ \" x. ]9 `) Z- A3 l* n" x - (if flag2; {* p3 u$ a6 q* L t
- (setq width nil);setq4 Y9 s& D# h! d$ a$ j% |
- );if
- A2 J( Q- v) @" e* ? - );progn then
7 S- E6 v4 _1 K6 ]; E3 C - (progn1 e j$ j1 i& |8 b c
- (if (or (equal width "")2 Q* u/ p4 o* `7 }5 D7 v1 J/ R/ k
- (not flag)
+ Q8 z+ Y/ S. m - );or
8 A8 }, I6 @- C' B4 K - (setq width width_a)# |6 F+ X0 G! Y' x+ A
- (progn" q. N* H* Q9 O: I) Y% C
- (if (not (equal width width_a))
R1 U4 `9 D/ v - (setq width "")7 [9 o: b" V4 h8 _- p9 Z4 ^
- );if . b( q U, A. M/ ]
- );progn
& I% X6 l9 L5 G8 T) L+ J5 r - );if- C9 ?* t% n0 [/ K6 `6 @) w
- );progn2 }7 k5 U( T; o9 S. N. T
- );if
, j- B1 R2 z8 N8 r- c5 w -
/ b: |; ^% b2 S
2 P; K( V+ K% e9 ?2 z5 X: I" i4 C. A- ;now for the special handling for old polylines
1 V+ ]% _0 {( o- A - (if (and width + i% d4 e3 O8 W; N0 K6 X/ f* ^
- (equal width 0.0)
4 ^+ g7 k3 N7 e' v; l9 I' n! ^( i - flag2* }: n( q/ c& h% M' y/ ^6 P4 e6 e
- );and ' R* }7 r# u& [2 S9 ]& K
- (progn1 c* O0 {) w' n2 k" e
- " a. `9 C; L- Y a! T; R' a# N7 {
- (setq n 0);setq
) |. W' t R6 Y3 S9 X - (while (and (equal width 0.0)! f/ l: _3 b7 u; Y3 Q( `
- (< n (sslength ss3))* C4 P3 F+ V; I
- );and+ s" v# H |- i$ I
- (setq flag nil* @+ y4 s: d" k+ }1 O9 Z+ c
- na (ssname ss3 n)
- C/ C2 S& ~3 m - na (entnext na)1 m. I2 z! T0 K& T
- e1 (entget na)
7 o, @ I& J0 j+ x - );setq
6 I5 e0 N% a# I - (while (not flag)" I1 z2 ~( Y% q
- (if (or (equal (cdr (assoc 0 e1)) "SEQEND")
, @+ j! a# w/ k. A - (not (equal (cdr (assoc 40 e1)) 0.0))
8 q. S0 B( J d! ?& C - (not (equal (cdr (assoc 41 e1)) 0.0))
8 X M, M) r( ]" {% y+ M+ r9 E1 g - );or# A$ u0 u' p( y3 k0 k
- (progn0 X6 X. l( [) X# ~ E
- (setq flag T);
2 o& K& g7 }5 G; I& H/ f - (if (not (equal (cdr (assoc 0 e1)) "SEQEND"))- ?5 p3 c7 ^* z! _
- (setq width nil)
6 l& Y8 _7 R: I% {, z - );if
+ D* ^' t; K! O f& }6 ?. i- b/ P - );progn then jump out of the loop: m6 m( S+ ` R( m& R, n
- (setq na (entnext na)
% f v3 B9 }+ @. @: t8 Y5 u$ p+ K; d - e1 (entget na)
/ k! O# U2 Y! Z0 b# m8 v7 w( g - );setq
A- p* o" m& v2 k% f7 N - );if ! |& I( F2 ~* { z8 U ]8 b: {
- );while
# Z6 `& Z8 K3 P) _) B" D- d( y% H - (setq n (+ n 1));setq # O/ k$ P# [2 U E m
- );while
3 z" G% q/ J3 x# `' x -
2 M! d3 j: m: ?, B& I6 q8 Z) U - );progn then it's a legacy ' g4 ~2 B0 O" b% N
- );if ;legacy polylines that may have varying widths 7 Q9 Y' w3 `& q
& n: C% i0 X& j- j- (if (not width)
4 w% w# [+ ^0 M$ e - (setq width "");setq# s2 q2 c' ~7 v! |4 ?1 }
- );if
: g3 W9 H# i- E" j. b, E# X - (if (not (equal 'STR (type width)))
, R" w9 A# L9 r* P - (setq width (ai_rtos width));setq
2 V" t5 N M6 D: _ - );if 4 K& ]- f3 P$ {
- . r$ ` t3 i6 S" R0 \. I9 L+ b
- width ( t! l9 ^- ?* I, q
- );defun pl_width_getter4 T3 i1 Y, ?" }+ W" I6 d
- # E1 I" e% }7 u# G- x
- ! F- W$ R! i o# `, d' R
- (defun match-col (/ ncolor)
0 @ G" N8 W9 K; J, i8 b - (setq ncolor (cdr (assoc 62 elist)))
|; l' o1 Q. M; [0 {( Y - (if (not ncolor) (setq ncolor 256))
B% [. |5 _. Q$ | - (if (/= color ncolor)+ E7 V" b } b2 @9 @3 D
- (progn
0 X9 R& u7 `; \- k - (setq chk-col nil)
+ L2 h3 B6 a/ {; r - (setq color nil)
2 }3 |& E) f" ?2 s. n0 z& o - )
, \6 S4 T! v* E - )
2 K" H o. q5 s% T - )
! c1 h* b; n! D0 k
3 ~# x% s* I+ z- (defun match-lt (/ nltype)! b( C. H" O% ~& C
- (setq nltype (cdr (assoc 6 elist)))0 r4 _; T* Y# o" J& f$ b0 P$ {0 F
- (if (not nltype) (setq nltype "BYLAYER"))
0 C. R8 X" w+ y* R - (if (/= ltype nltype)) e" G ~0 {+ J, G6 d
- (progn
/ e7 S. J8 w, g- X0 Z6 k - (setq chk-lt nil)
& w0 c) m: f. t - (setq ltype ;|MSG0|;"Varies")
' {: R4 b$ [$ P w - ); U y; r, g5 p4 x
- )
. U b* A ~) z# z) R - )
9 u7 k6 d7 a- Y0 `+ F$ z8 s - 5 f5 \5 }& m- x( u) w1 t
- (defun match-lay (/ nlayer)- H% _$ N8 ` k, @9 J& ~/ {
- (setq nlayer (cdr (assoc 8 elist)))
9 E- X2 b0 w9 T+ h! {5 u) C - (if (/= layer nlayer)
- H2 Y% E: `) s- G0 d1 ~8 p }8 f+ y - (progn, l+ G g" ]' E( V" b, P
- (setq chk-lay nil)$ l( P* \$ Z$ n9 @! S
- (setq layer ;|MSG0|;"Varies")
/ O* _, r( p. } - )
! S2 ~5 g: }0 \) m' z5 S% [ - ), |3 f4 ^$ }. x6 S7 L% i+ v/ j8 ]
- )% S1 h+ b7 Y c/ S2 c l" w+ S# g
- ! C' i9 W# K1 n6 ~9 f T' N D
- (defun match-th (/ nthickness)
6 d6 R: ?8 h7 `. n- T0 a u5 v( E+ o - (setq nthickness (cdr (assoc 39 elist)))
|7 z$ Z/ a- k; r* ~9 ? - (if (not nthickness) (setq nthickness 0))8 d% t' r8 J( t) j k6 D6 v$ w
- (if (/= thickness nthickness)! d6 ]& K7 N' L. H9 {
- (progn& F2 S5 Z4 y, B- Q# n8 G
- (setq chk-th nil)
( X$ c! J/ i4 P - (setq thickness ;|MSG0|;"Varies")
4 U% F G6 Y* W - )
6 {; v, m( a, l$ O+ F, @/ X - )
0 A2 @1 c6 p; l& F6 v! | - )# M# i. j6 T+ f* W; I5 k
- ?2 y/ I. U, `
- (defun match-lts (/ nltscale)" H! p$ C0 V' |1 Q y$ Y
- (setq nltscale (cdr (assoc 48 elist)))
: q. w9 k9 _8 t2 ^ - (if (not nltscale) (setq nltscale 1))) |' S' K. z$ `/ H6 @2 r9 S n* R
- (if (/= ltscale nltscale)
, |9 c$ ~: ?6 l( J: t( c - (progn
0 S# l- i$ p. P3 a1 V - (setq chk-lts nil)
& `. _$ M1 M. x4 M5 d4 \2 A - (setq ltscale ;|MSG0|;"Varies")1 \% j9 }2 p; G: C, X
- )
& W7 `# D* h& U( l. f5 m7 \) Y - )
1 x% t4 g2 A+ k; q - )
7 ?* }3 G& I0 f: L1 |* k% T: l/ P - $ e t$ p! O% V
- ;;- [4 ^) i8 W+ u$ {/ B$ J6 s$ y4 e
- ;; If an item is a member of the list, then return its index number, else. m9 h" }$ K! i+ } B
- ;; return nil." g9 B" {) e ]3 c% @ l* t
- ;;
; c) j! s9 I$ n0 P; v, h0 e - (defun getindex (item itemlist / m n)
! u( [% Q- C* G; e9 E8 j8 K - (setq n (length itemlist))
. }2 E1 U* P2 ?$ [; R* L X5 t - (if (> (setq m (length (member item itemlist))) 0)
, N) R6 q6 C0 m7 h - (- n m)
5 O K" D0 U6 g; B# H) G# q - nil
$ u8 m# r, B" i) \( Y1 b+ j! L - ), Y& l9 d. [$ v5 a
- )
5 z3 T' |4 o x$ H! `4 z2 Q - ;;
- w" ^ U- K: o X* C! q - ;; This function is called if the linetype is set "BYLAYER". It finds the! }0 l( ^, m$ t) f8 j: C- i( t6 b
- ;; ltype of the layer so it can be displayed beside the linetype button.; J" V! }2 q0 u1 S8 h
- ;;
! B4 e* [) [4 ]& b' W - (defun bylayer_lt (/ layname layinfo ltype)/ j7 F8 n' r% w4 Q4 f: B4 w
- (if lay-idx, G7 m( C! g b
- (progn
* \6 t5 N" ~1 z8 P! C - (setq layname (nth lay-idx laynmlst))
9 ?! Q3 E6 }+ n! V - (setq layinfo (tblsearch "layer" layname))1 C& @5 s/ `; h- l% m
- (setq ltype (cdr (assoc 6 layinfo))) F# X& T+ S5 Q) o# v, ?! w
- (strcat "BYLAYER" " (" ltype ")")
, G) d9 x( s/ {! I - )
8 Q, a/ g. m* D6 |' o. j; c f - "BYLAYER"# W+ y. E1 m. W; W1 v3 J4 D% B
- )
& ~: x" e" l1 J" s* F( Z0 p# a - )) S( }7 G4 n! V
- ;;
2 f( B, ^* W2 @8 S - ;; This function is called if the color is set "BYLAYER". It finds the5 H2 l9 f4 F6 y: x' x
- ;; color of the layer so it can be displayed beside the color button.5 x' O6 }( K, M: ^" x
- ;;$ Y6 T2 H! Z# _( {3 j" E
- (defun bylayer_col (/ layname layinfo color)
8 D" ]' p& {# q+ t2 O4 ^* k; a - (if lay-idx5 I" r* g. ~0 F L7 k$ w
- (progn% G- ]: _9 i. v" Q) L8 x+ B
- (setq layname (nth lay-idx laynmlst))
& {: Y1 Y, @( q, C - (setq layinfo (tblsearch "layer" layname))
8 T% T4 Y. W' l0 j! N+ Y1 c - (setq color (abs (cdr (assoc 62 layinfo))))
. f7 O/ {. _4 _7 M - (setq cn color)
3 J* O$ p1 u( Q - (strcat "BYLAYER" " (" (colorname color) ")")
: x3 A }) \/ b1 j N8 W& Z - )6 v! h$ R7 Y5 N$ b: b
- (progn* |5 N1 |' i# _
- (setq layname elayer)
* l a: H) `( D/ [2 g6 c+ S - (if (and (/= elayer "")+ N3 N& I# g" j( G, O/ v5 M
- (/= elayer "Varies"); Z" C d0 S6 r2 q2 I/ A7 }3 _
- );and' d, n% u& E+ W8 E% z' T1 ~' X
- (progn' c, s( z! i" P. o
- (setq layinfo (tblsearch "layer" elayer)): U+ M" Y- `8 A
- (setq color (abs (cdr (assoc 62 layinfo))))2 H' h# R, h, G+ T `/ P) p
- (setq cn color) R9 t* ], g: ^/ l F e0 }
- (strcat "BYLAYER" " (" (colorname color) ")")1 a) J) S; J7 c( I
- )
+ @8 p m: f+ q- F9 ` - (progn
, X( R# S7 N( j' Z9 V" F - (setq cn 0)
7 n( F( C5 _$ h( I - "BYLAYER"0 A, w6 v4 b! P" q& Z, l
- )
7 \' P) d: m) ~ - );if, n" h! r) ]/ E6 H0 F0 C' K6 @
- );progn7 l2 `) o8 |; q9 M7 R
- );if1 D. l0 v# m! |. y' ~ h
- )
% [$ E/ O% U3 T" w! n r, g- y. D - ;;2 P/ K" Q# [. x8 I" h8 b3 K% J
- ;; If there is no error message, then close the dialogue
7 q/ O* |$ L% t3 @! h7 s - ;;
. v* O. O. _6 t - ;; If there is an error message, then set focus to the tile5 q6 T9 J% W5 o3 t' K+ D
- ;; that's associated with the error message.
7 T; G, W; v" y' \ Q V - ;;
* J' \* T. B+ @4 D' S( C+ E4 {; J - (defun test-ok ( / errtile)
: j5 d0 D O: S6 | - (setq errtile (get_tile "error"))
0 j6 `( x, b. w- I8 z9 L - (cond0 g8 f/ M. h" R0 {' f
- ( (= errtile "")4 G8 g/ d- I" h" M/ U! n
- (done_dialog 1))
& z F0 W* J) L" t- [1 h7 c- i4 u - ( (= errtile "Invalid thickness.")
: |7 ~1 K V; S- U - (mode_tile "eb_thickness" 2))2 o7 C* ?# c I; M
- )( Q' K* o- J, |$ x/ J/ J
- )- F- S+ l: `/ d, w6 [8 J6 r* n
- ;;
. {; v0 H# ]& H/ M2 O; v% p - ;; OK in main dialogue.
@# f* T1 ~# p# T" i6 B - ;;
* Q7 b' V3 S, @. q/ b8 R N: Z/ d. Z2 j - (defun test-main-ok ( / flag)
' U% ^) F* u+ w - (setq flag T) j& V/ W) U; h v& k6 E' r
- (if (not (or (distof (get_tile "eb_thickness")), M; ]. c, a. C! d' k0 Y
- (= "" (get_tile "eb_thickness"))
# _9 I0 }$ K B2 F% B - );or
# m7 Z5 B+ p% B1 h9 R# l' g+ ? - );not( q+ M$ ^2 G5 C/ x( Q
- (progn# u% [2 l8 S0 o% |
- (set_tile "error" "Invalid thickness.")2 c- S. q* @* E: f" R! A% C7 w
- (mode_tile "eb_thickness" 2)
1 _9 M; B: a2 T" n - (setq flag nil);setq
5 J5 w% @$ T8 O7 e - );progn
- w* S3 J- [+ x5 ? - );if9 F! M* D9 r5 c+ Q9 o" k
- (if (and flag* ^! y' q6 [$ T4 q
- (not (or (< 0 (distof (get_tile "eb_ltscale")))
) i8 `9 e5 N4 Y' q$ l( X - (= "" (get_tile "eb_ltscale"))% {5 i- K3 z0 J/ T; P o
- );or ; \2 n! r' p8 F. \
- );not* t5 I# n5 {4 h7 h. V4 Y- Y9 P
- );and / Y4 I) b3 m+ x$ J. a
- (progn
+ Y4 H/ f7 q9 c; S - (set_tile "error" "Invalid ltscale.")
2 Y6 L" n" V2 S# [ - (mode_tile "eb_ltscale" 2)( U% W8 x! W2 h+ E) ? X" x
- (setq flag nil);
$ k3 F! D8 I$ Z* F4 a - );progn then0 d+ S8 g' S g k$ a/ R0 ^+ G6 V: A" x
- );if
; s! c" I2 E* e" F/ B6 @ - (if (and flag
: e0 |1 w. ~9 v) M5 ~ - ; Don't test the tile's value unless it's enabled.! n% _% K+ W. G) \& Z9 C
- ; We're not set up for the display-only value* w* T: d0 P1 C9 N# t
- ; of "" here in the error handler.
; |0 t* S2 H4 G# i {5 W - (= 2 (logand 2 eflag))
& f2 X( F, U3 w. [ - (not (or (< 0 (distof (get_tile "text_hgt")))1 J% [& O' e# M0 ]$ C
- (= "" (get_tile "text_hgt"))* Y4 t. V3 G: d3 e8 T
- );or
7 T( W/ C- `) {# E( {8 W5 W* n - );not
* i: t! {( v) {8 L0 J - );and4 l, |) b( I* k* B0 y% X6 P' a
- (progn+ |% u# G& ^* g$ w+ m- Z
- (set_tile "error" "Invalid height.") F- R0 }% p A- ~+ S
- (mode_tile "text_hgt" 2)1 R1 a. j2 M) ~% I9 t; n! Z
- (setq flag nil);
& E) m3 e6 D; P# m* P - );progn then
% v7 O: ~+ U. R+ a- p% q' } - );if1 }) Q ?; W& O
- (if (and flag: h' p8 N$ {% K! d
- (= 1 (logand 1 eflag))& r6 c# ?& H: P
- (not (or (<= 0 (distof (get_tile "poly_wid")))" c# G& X" ]4 W6 ]9 }7 D6 @2 [! q
- (= "" (get_tile "poly_wid"))
% i: k, w; z$ n$ S8 I, c - );or
% n4 u; f9 ]% ^5 F - );not
, }( d( Q7 q" E" C! L; G - );and
. e$ S% s' k; y* E# ~* J* Y6 b - (progn$ s5 y/ ^: E2 \; h
- (set_tile "error" "Invalid width.")
" l u- h. I! z1 k7 D( u5 x6 I8 D( [ - (mode_tile "poly_wid" 2); V3 l# M6 [7 ^
- (setq flag nil)
1 ]8 J% L. x* j6 J - );progn then# H, z; G( X v0 P B
- );if
: w, p5 u" v+ x* s - (if (and flag
3 B, Q; m6 L9 n - (= 1 (logand 1 eflag))
9 w6 P/ v! M# H( K. X. A' O1 J - (not (or (distof (get_tile "poly_elev"))% A$ ?: b& q$ T% w0 z% y- P( [
- (= "" (get_tile "poly_elev"))! F8 M" H8 T X$ I+ q
- );or
1 }4 Z; ~) D) d! H, Z' f - );not
/ c4 G- d, K- \+ ^" J3 B - );and
4 W+ l5 Z6 c7 u8 _: ], [; b0 s - (progn
9 g) u( E( m9 \: T# ^# {; C - (set_tile "error" "Invalid elevation.")
- X" J8 W9 D* P+ v. G- H - (mode_tile "poly_elev" 2)% M8 a) _2 A' l6 l7 ~! u& r8 B
- (setq flag nil)
, Z& r) v- q8 ?9 e - );progn then
0 P7 T# o ^; ^0 ~5 I' n# n - );if
* ^! o! e; \6 m. Y - (if flag 3 @7 R8 ^( U) i. `+ v
- (done_dialog 1). F6 `# p8 m6 I
- );if
; ^/ t% e7 [6 Z! M6 V1 Q - );defun test-main-ok8 q# K; W" Y) p- x9 w3 M% y
0 [9 T" ]& S, B" @$ t# e" D- ;;& T. {" {, W+ D. q
- ;; A color function used by getlayer.
# d' t6 w1 y+ r' z+ Q: ] - ;;
6 \& ~ ?; p1 R/ t; G - (defun colorname (colnum)3 h! R8 v7 A; i4 ?3 F4 y
- (setq cn (abs colnum))
, t" [6 ?1 }6 p" B `, e/ k - (cond ((= cn 1) "red")
- ^: U9 R8 `9 Y n0 p# S9 u) x, u - ((= cn 2) "yellow"), U" I" c8 d% v3 g% w
- ((= cn 3) "green")
+ R; I% W: J- W- M( W - ((= cn 4) "cyan")
$ u3 |. _# T' Y) H - ((= cn 5) "blue")
' q4 G7 \0 b2 R* ~ - ((= cn 6) "magenta")( r8 m' r2 N6 ]+ R3 t0 b
- ((= cn 7) "white")- ^( r. n7 N( G" f- U
- (T (itoa cn))# `. z2 z8 i3 Y7 C7 _, S
- )
: N( b, v: ~( u7 V/ p+ T- g - );defun
o1 N% j$ h1 u* S" j3 `1 s
: `! o* t/ Y% b6 z- ;;; Construct layer and ltype lists and initialize all; ?+ O! p k) @
- ;;; program variables:
1 s% Y- I4 q5 |6 q7 ]
9 G; p' E. N% n7 a' o- ; (makelaylists) ; layer list - laynmlst3 }8 v/ V$ N; @1 O; R
- # B8 h5 E) E. X% \* D
. M: ]6 k( l% G- (makeltlists) ; linetype lists - ltnmlst, mdashlist
; T6 @& x- S' W& { - + |" f! X8 ^ p$ U4 L: u: x- z
- ;; Find the property values of the selection set.) w4 V7 T+ l, A, ?3 x
- ;; (getprops ss) returns a list of properties from1 I' U% {. q0 _- M& E! K) l0 D. h
- ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).& {# q5 W* x8 `2 @. r
- 3 j! f3 E8 e8 {9 o: R5 }( r2 `5 x
- (setq proplist (getprops ss));@rk interesting things happen here0 |/ z9 l$ ]! d+ \6 |/ u( V" M& j
- & T2 B$ B" b! ?* O
- (setq8 ^* v; e9 K6 M% S; l& e5 [
- ecolor (car proplist)0 e: p. p6 N9 W" L* O J4 s- w
- eltype (nth 1 proplist)7 m+ _0 J# ]' x
- elayer (nth 2 proplist)
; n2 p! w. N5 \6 B8 d* ?/ s - ethickness (nth 3 proplist)9 [4 a* z' r% k* n
- eltscale (nth 4 proplist), }1 h/ S5 H0 V
- ewidth (nth 5 proplist)6 O' t* n; R2 q" i* F6 A
- eelevation (nth 6 proplist)0 |; J: Y8 |3 F* ~- g
- eheight (nth 7 proplist)4 \3 A" X" O- [' c! H) O; w
- ;etype (nth 8 proplist);commented out and replaced with the line below. RK., _! l! `5 P/ i/ d7 @' H$ i9 M! C+ d
- eflag (nth 8 proplist)
" w8 ]7 O) U: }0 N - estyle (nth 9 proplist)! |* o2 T* C2 M6 W
- poly_ss (nth 10 proplist) T/ u* R0 O% O
- txt_ss (nth 11 proplist)* e+ g, d1 C8 W7 | m6 ]
- );setq9 u3 M7 I4 c+ @+ q! @' x0 V
- 8 `( }& U$ K; m" `
- ;; Find index of linetype, and layer lists
" s: J6 Q( Y$ g( f- I8 f' |$ Q - (cond
, k2 U0 s2 d1 N" v$ W - ((= eltype "Varies") (setq lt-idx nil))/ r: W1 | n+ o! @- I8 m
- ((= eltype "BYLAYER")3 ]2 f: X! b' E' J/ H) Q
- (setq lt-idx (getindex "BYLAYER" ltnmlst)))8 p# J8 ?9 H8 k7 i
- ((= eltype "BYBLOCK")
$ J5 e5 ^% f: F: [ - (setq lt-idx (getindex "BYBLOCK" ltnmlst)))) W' \+ b. C# J' g1 z( A9 n
- (T (setq lt-idx (getindex eltype ltnmlst)))
8 y9 a$ ?' e, E7 h2 b' I - )( y+ n% t& g" ?* N
- (if (= elayer "Varies")
$ L G1 _/ \3 u& |/ ]* l% B - (setq lay-idx nil), f7 n/ j4 O' G* O% l+ N/ X1 _2 y
- (setq lay-idx (getindex elayer laynmlst))
1 U5 z6 _( M/ O8 r. ?9 l - );if6 f6 W! Z: }% l* c$ O+ A# c
- (if (= ethickness "")
0 ^+ [4 {3 N* M - (setq ethickness nil)9 h/ w8 r5 C! r1 n, \! D
- );if
: B$ C: W" K2 }+ F a - (if (= eltscale "")! J4 `9 m4 `# W: C$ n. k
- (setq eltscale nil)$ u% F/ z! b7 v2 |
- );if
. h5 r. {% i- w
) R9 Q3 w, G& K1 N' L ]2 x- );defun ddchprop2_init ; end (ddchprop2_init)# ?1 [9 p+ Q, e5 Y0 f, v
$ @( {; U- E" q4 u K' o* J- ;;; (ddchprop2_select)
$ n* b2 ~, n# H! T P& [! c X - ;;;
0 w7 ?. ^0 K8 s/ e/ P2 ?& a' ] - ;;; Aquires selection set for DDCHPROP2, in one of three ways:2 C2 C; F2 ?7 K
- ;;;
4 p+ `1 a6 a7 l, `, }5 I7 C: @ - ;;; 1 - Autoselected.) j6 t5 x, _, b; p0 K; y
- ;;; 2 - Prompted for.
+ ~+ c6 C2 \% s# z3 c: q# K - ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )
- ^- c( M8 j$ K- m' B - ;;;: i2 g3 e/ v( v' z+ c# I
- ;;; The (ddchprop2_select) function also sets the value of the: V7 ^1 O$ ]$ y% g, {/ `0 @
- ;;; global symbol AI_SELTYPE to one of the above three values to& v# Y( A- @; q1 G
- ;;; indicate the method thru which the entity was aquired.
! t# D& h2 Y1 a( h1 \
% b$ x3 `# q4 v" L2 K+ w& V& L- 8 w" j( k1 I" H2 d
- (defun ddchprop2_select ( / )* v, _1 W' w' z- s: I3 d
0 s4 s: C2 G N% C- " d* i$ R8 x2 s4 Z! w
- ;returns only entities in ss that are in the current space. ' e5 U5 S) `/ L. s% M# a% O- b3 M8 _
- (defun ss_in_current_space ( ss / a cur_space ss2)& X$ P; a& o4 S1 _
y! S4 L5 Q- g- (if ss
J, S" s5 y: C) D7 v" Y - (progn8 p' F, t5 H5 ]% i( {
- (if (and (equal (getvar "tilemode") 0)
( e7 n$ s, x4 a% ^* r+ i - (equal (getvar "cvport") 1)5 O+ d$ S& M6 E( f3 t5 n
- );and
6 J7 P. o* p" O8 y - (setq cur_space 1);then paper space is where we are.$ o& V6 N! S. o8 J
- (setq cur_space 0);else model space.& C+ l4 k- x0 ]5 F+ q" n9 T
- );if
8 B7 o+ L" ~0 L# f) n0 q - (command "_.select" ss "")! i4 J( f' C* h& ~+ }0 G
- (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq
- k# a6 l2 Q' w - (cond ;;;;;tell the user what's going on.
/ d8 C# o0 p% w T/ W/ q& ? - ((not ss2) (princ "\nNo objects found in current space."))
7 q( V* s+ j# U/ X8 J4 e7 Y" p - ((not (equal (sslength ss) (sslength ss2)))- e* g" h6 S3 w8 Q6 h& \$ C" G: d- t
- (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2)))
1 R8 @4 k5 F! `" M - " object(s) were not in current space."
5 E, F0 m* n) S2 E5 l; G - )
( G! W6 G8 w' n5 F* i - )8 l0 a5 N' ?7 ?+ |" A
- ) # @0 Y* K$ `1 E: h0 c
- );cond * c1 f7 r% P9 u8 v
- );progn then, g. A/ e+ r1 \7 }1 ]: t, H7 o
- );if
4 x6 |+ V, n* f, G& S - ss2
; ~" d3 o: |! D5 r+ q - );defun ss_in_current_space
9 e6 }! Y9 N9 K6 p8 W Y
8 r$ e2 k- ^ A0 W9 `" z
% k+ U3 s- H3 D! R) j* {( X- ;;;begin the work of ddchprop2_select
. ]4 F' t# o. M# [' v& z -
9 C; ~9 @& A+ Y+ r3 P+ U, ?' V& } - ;; temporarily restore original highlight setting.8 G: J# h& N) Z: i
- (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))2 k8 f7 E8 s) v( a& M8 y
- (cond& T: l7 D6 J9 t2 e- e
- ((and ss
- \6 y t+ r9 X) a - (eq (type ss) 'pickset)
$ Q% d5 F! `) f" }7 v. \) ] - ) ; selection set passed to f2 b' J! N0 c5 K2 ^
- (cond ; (ddchprop2) as argument
/ [+ Y, `: p9 h2 D4 X4 S4 u - ((not (zerop (sslength ss))) ; If not empty, then- j# h. n/ Q- C) Q
- (setq ai_seltype 3) ; then return pickset.& A' ^: U7 Z b) U& j' @" s
- (ai_return ss)
o# _+ F* M- @ - )) d% m% C* `5 U. y# C
- );cond close
( M; f! E: o8 {$ j: t4 s3 X - );cond #18 B' d B9 s0 j
- ((setq ss (ai_aselect))) ; Use current selection6 o: K& k* G5 ]# C# C
- ; set or prompt for objects
: h* K8 s3 }$ L2 ^, K+ S - (T (princ "\nNothing selected.")
# o9 T+ T7 Y/ i% V$ C - (ai_return nil); I( m8 c9 j4 ^5 ?( {/ Y
- ): a) W) y+ {& q+ H; ]
- );cond close
% J" ?1 ?8 d0 Y: Q8 |4 d - (b_restore_sysvars)
; s) @2 Q; t6 u& U4 |% \ C - : o" M# \2 X: j# y# E2 w4 u
- ;(if ss
! C F, A/ u! U8 V' J( n - ; (setq ss (ss_remove_locked ss))
3 ^- v) b$ p" a9 E - ;);if% i; m" I; ^% A* V
- (if ss6 o% F: n# p7 {8 m% {' Q, Z; A3 E
- (setq ss (ss_in_current_space ss)) . I8 x+ W/ j, {8 ^1 |4 M
- );if% S$ k. @" {& U, w- f! I: r
' N& u" V" @" p' I6 U9 Y- ss' c! v6 }+ V$ Q) S# O
- );defun ddchprop2_select5 _% x0 Q! m1 P3 X3 k( @
$ P) {" e* y8 c' [5 ]. N. X8 [* N7 \
3 P6 i% K( V" `3 o0 a- ;;; Define command function.
6 b, ]/ v% ], v$ } - (defun C:CCH ()
( ^% b: O( t" d2 [ - (ddchprop2 nil)1 t8 c8 ]! ^" v+ x9 I% t
- (princ)% A& j7 D- V4 x7 u% ]
- );defun. q. |: R- e- ^0 A& m* l: ?, x
O9 h: p2 [' L
1 u. \# v. S7 ?* Q- ;;; Main program function - callable as a subroutine.
% }) Y! ~3 C" }- R - ;;;1 a. m) ]) ?9 T6 t0 m
- ;;; (ddchprop2 <pickset> )
- D5 {2 I7 {; g* B: v8 B% ] - ;;;9 I8 H. G. A5 B( k$ Z4 h5 U3 Z
- ;;; <pickset> is the selection set of objects to be changed.
8 [1 e7 F( v7 i9 L2 x# x4 V5 P - ;;;- u8 d) k4 M5 M
- ;;; If <pickset> is nil, then the current selection set is) \) I: x/ P. y/ V' u
- ;;; aquired, if one exists. Otherwise, the user is prompted- |7 s7 B1 E4 H
- ;;; to select the objects to be changed.! O, z0 W8 X8 ]! B( F/ x
- ;;;
]* o8 L: i! Z1 v# A! m - ;;; Before (ddchprop2) can be called as a subroutine, it must, m4 q$ S8 K, [( w2 ?8 W5 a
- ;;; be loaded first. It is up to the calling application to8 D y( Q) ]2 T" n
- ;;; first determine this, and load it if necessary.
5 }- {2 l: F; k% R7 t
9 c0 b$ c. y; M- ?, Z. j" L- (defun ddchprop2 (ss /, P8 u1 l. z( y+ V$ S, r, o5 h
- ) z$ e3 Q, U$ {9 v+ x( l% G
- a
7 V* J+ u+ g/ g - add-mdash- Q3 p" B1 H" |; J
- assoclist
& v( i0 ^% n4 i+ L: L0 o - bit-70
% v2 K8 i. V; u2 ^) P - boxlength
0 n# d8 x. @) h5 c/ B! E) @6 J - bylayer-lt! V! k a) A0 C" B( y, B
- bylayer_col4 L5 p) S! c6 I8 O4 }' Q
- bylayer_lt
( W3 r' B7 L/ a; C; a# r1 h - call_chp2" r' _$ `8 E& K7 V5 t' L
- chk-col7 l- ]8 Q" r6 Z6 O3 M
- ;chk-etype ;var removed by rk ' z# N- {# O6 ?8 b+ V( a3 _8 q: O
- chk-lay % s3 ^ ~- w* `$ T6 J% L; E, f& A
- chk-lt
( V/ v' E; z- g" V% c% T( ^ - chk-lts ;var added by rk
( `1 w9 u2 D% h4 ?9 K - chk-th
! ^, v1 C# O+ D/ B2 l' s* p - cmd; Y( ~) a9 w) D+ ^ l ^0 h% i% y
- cmdecho: \ Q7 ~( Y5 b/ h* }! V
- cn
' e! c) k2 S W' \ - cnum
i8 E! c+ R# A# J( e" i/ P. l) G - col-idx
( I% s/ x' o1 |& q; e - col_def
# H# n$ l5 B% K3 a2 E! P! x - col_tile' l4 ]1 y9 I. }8 H/ Z( x
- colname k( F: B6 h' l
- colnum( c/ Q0 \8 K( z6 ?$ a( J3 ?3 p
- color: l+ |2 z7 g1 c- o( U9 V
- colorname! B9 Q4 ~7 Y- ?+ s" u$ j
- cvpname
+ x& k: _( ]' e5 v& M) h; Y2 b6 [" H - dash) Y# h3 p" M. P$ ?0 [" d4 }/ ~* ^
- dashdata
- p8 ^: x9 C7 B% Y% l& f - dashlist
3 d8 V) P7 v; `3 e - dashsize
, Y( |0 y. u' z2 n( T3 i; u - dcl_id
3 O2 I+ o4 B0 X/ h+ J) _1 F - ddchprop-err( h5 p# C7 P, E/ z! P5 P
- drawpattern5 ^3 \! y) J# |5 B
- ecolor
3 q% v; u( z0 _/ B( y% U - eelevation; c( E7 K$ t, ]
- eflag
* d& ]; M5 I( K# }$ i {9 g - eheight! q; e: h4 p4 G! o
- elayer( a6 j" m7 l7 v) b
- elevation& K6 u/ j# k7 k7 Z
- elist
# f: R& ?: L4 U5 I - eltscale; ^! {) y1 j! U+ J9 ~
- eltype4 O9 ~3 a% c2 m `: r. [
- en% }! q9 h% N0 w8 r4 K9 R/ @% g( L. w
- ename' E0 [: M% r4 W# b# ~* ]
- ESTYLE ;var added by rk
. ] @4 y8 i9 e( C% Y - ethickness
6 }) v; F1 t- t# f: b k l. Y - ;etype ;var removed by rk
p; Y9 Q- J: l( z9 c( J - ewidth
1 D, `2 h* v3 \4 m! e1 L - fchk
9 ]" E5 M. r9 D - frozth$ \, r% W" S0 t. K, \2 x
- fx
' z% [: G9 A& ]4 v7 h - getcolor
5 U7 G/ t/ ?1 e2 G: D - GETELEVATION ;function added by rk) D Q9 m) d; y* y; ?, x- R
- GETHEIGHT ;function added by rk
. N+ T6 Z: T9 `+ G - getindex
/ T8 h# J( G4 l4 \' M - getlayer
" V! e( p* @2 h {# ~6 } ~ - ;get_locked_layers ;function added and then removed by rk ?$ c8 P" U/ I' y' a3 |" m; _+ {
- getltype, w! Y G3 \4 ]1 x6 @( \" H
- getprops
$ ^0 U" }' U+ H6 z! R, O - getscale ;function added by rk
" S7 f5 G* R: t2 [6 d0 g/ p - GETSTYLE ;function added by rk
' F4 j) |' r, }$ M" a. v - getthickness# o g: e: R6 s( S
- GETWIDTH ;function added by rk
) A2 p' k3 `8 M" ~! e0 c3 W - globals8 `! |" e$ r8 Z: |* l9 ~# H
- HAIR_STYLE_LIST ;var added by rk# e$ y0 J8 C# s( R: C* v! n
- height
5 d2 [" Z [$ o) T4 R2 E* K - index3 {) |1 ?! G2 ~3 o3 ]" m" Z
- item
3 B# j) v; \& I3 m, e! [, P, L; J - item1& W+ p0 ~4 j3 Q2 [! P
- item2
+ Z$ u! ~2 s2 a3 ?6 A - itemlist
4 X+ b- q; L' K$ \0 V5 w+ Q - lay-idx9 P0 Z% @' d. Q' Y
- layedit_act( z5 F5 I4 P# o. M8 |6 V$ n* N
- layer1 Z$ z+ [4 t# x1 \# j! p
- layinfo8 l. K( b' T B6 D, x
- laylist
9 `# O4 T( W$ @' Y& I - laylist_act
j0 ?; M4 w+ U! t e) b( i! j - layname4 E9 ]" _4 s! L+ h0 x
- laynmlst
$ C V$ o3 E; O, g. [# g( [+ t - layvalue
- k: p. ?: a2 D- A - linetype
# P9 L: H9 L3 F8 e$ v2 U/ e0 [ - list1+ u/ w" S9 {* G& Q
- longlist
2 h/ z3 s8 W W( E* @3 w - lt-idx
9 g& a7 C3 h' x# f. _9 m; x - ltabstr
, T/ h Y" i/ b1 m - ltedit_act& t) c+ \% Y2 I% k% M) l( q
- ltidx
1 N5 \. ^3 p. u/ L - ltlist
# m4 F! r. A! K+ I7 p& I - ltlist15 l" \, D; H, Z& m
- ltlist_act+ q; y% n- O: H3 G, \5 j+ B' v
- ltname- j( j8 {1 b U( Z2 u& K# b
- ltnmlst$ k+ A: x/ `! @) b. R5 `; k( _% A2 f
- ltvalue
0 `# J% K! X) t6 ]' \ - ltype
6 k- r1 D9 i! O! d - m4 p+ g2 z; t' m4 a; {
- makelaylists6 M- U/ K. V# Q1 `( r" g7 @
- makeltlists
# j# w8 Z! c! X2 F) D9 y# s. V - match-col
) Q( D! i$ T1 S" j9 e8 ~! } - ;match-etype ;function removed by rk
) ]0 X2 e) @+ m# w - match-in
+ u6 k% X5 y. Q/ ^ - match-lay
$ {6 a. @8 J$ Q! B2 L2 U& w$ l - match-lt
M0 s; | d3 s4 @0 |* `( w5 d. i7 q - match-lts* F3 P1 i" S4 C" n; o1 e* _
- match-th
" P4 R* L: V1 [5 V' x% I. j3 \; K - match_col, x P) N; H- R. h: }2 F. v2 r
- mdashlist( Z# E' P7 Y v9 ?; i/ D
- ;MPOPLST ;function added and then move to ac_bonus.lsp by rk
6 q+ f3 E3 Z7 J; E: b - n$ j! s, S- u4 @* R
- name
/ [7 }/ `" r2 S/ y5 O4 g5 X/ u' G6 T - ncolor
7 [ F* Z' v/ q- m* [9 p. A0 D - nlayer- B+ M$ W( |9 }* H6 f
- nltype
# I1 |$ q+ Y* x) g - nthickness' a1 l; o3 Z) f* {5 ?
- off
( z8 r/ V- D1 ~4 V - old-idx
( S d/ q+ t8 X4 S- M) i4 ` - olderr4 j% m; Q9 o- j- z5 C. ~& b" n; n
- on, r3 }" D- B8 |. O- t
- onoff
) j& s0 ^! P3 h1 Q) C - patlist3 z! J& o6 }- B4 y9 D
- pattern' m& |; {! E, @+ \/ f' j
- PL_WIDTH_GETTER ;function added by rk3 M8 _+ f t" y% V. S' E
- POLY_SS ;var added by rk
u" n2 @0 U% H! T) i" L - ;POSITION ;function added by rk and then moved to ac_bonus.lsp* W! p' ~) I } a; |5 \ c( b" O7 v
- proplist
3 z5 k9 a/ f! j% W - reset-lay: X$ w5 E/ a, `
- reset-lt4 U3 }5 ?6 f5 I' y
- s
/ x9 S; l7 x- ? - selset
6 b) ` ~; |: ?4 O$ g" @ - set_col_tile5 S6 J# L0 `8 g) E8 t) N
- sortlist5 c) S p% `- n5 Q6 J7 M+ h
- ss
% ~4 w; A, i/ K% u: L - ss_in_current_space ;function add by rk.
/ c9 |: _+ z3 w( j, {. } - ss-index7 f( q- |1 {$ B2 [/ B- K t
- ss-length; d) d! W% d1 c! [2 L: D
- ;ss_remove_locked ;function added and then removed by rk.
( K. l* X* L; W# P& Q3 w. K - sslen' \' v! w$ K/ k" D- O
- temp_color
, r' Y" {" R+ \7 h8 t8 v - templist4 F9 v# V8 s! X( a
- test-main-ok4 r) v G- u" S; r! Y
- test-ok4 n1 K; w8 v6 L# J
- testidx+ v) `$ h, Y8 x( Q
- testlay8 g1 T4 J4 `- h. q& _( w
- th-value
% B) i8 M7 F3 h& U! ] - thickness
9 s3 O- }. [ b3 Q ] - tile
, J+ z0 `- [% d; H - tile_rect
/ s! ~8 ?- S2 W' E3 T. Z8 K3 a - tilemode7 T L0 d/ C- l; Y. \5 e4 I/ d& P3 @
- ;TNLIST ;function removed and moved to ac_bonus.lsp by rk
( ], G- W; V! m2 G5 T2 Q - TXT_SS ;var added by rk
& L5 b3 S% M3 L: w! q - ;undo_init ;removed by rk.8 G: c3 B5 V" y& ]( |
- vi7 U9 \! c8 j5 {1 ?/ x. e2 |' Z7 T
- vpf a9 x/ @/ K/ ~( O
- vpldata
& h! @! m+ |1 f; C - vpn
/ R! S' o1 e# L5 Y0 v- f - which_tiles
/ a" M% y/ q- o7 {; f K& F; v# H - width
" H# F' M1 Z, s8 k3 K5 f3 E - x
9 Y. e# u" t3 r* `% ?4 V9 c - x10 k2 G- X/ r- {& c7 `
- x2% c+ \; i( Q, C3 A
- xdlist
! a$ v' W8 c- d6 \ - y& H6 ]" H5 y; z8 L9 P( t9 q( i
- y1
* ^6 h6 I; ]% F& ?7 J' C. o% } - y2
8 m( K, v: f2 {) ?5 `+ W - )
; T- u d9 d$ x: W' o h5 D - ( Y8 |: z! d7 {; J/ K
- (if (and (not init_bonus_error)
, N9 O6 X. P$ D& H - (equal -1 (load "ac_bonus.lsp" -1))
0 Z# b6 @! a& T N( H9 x' a - );and+ ]# u( \( [# J+ }8 c
- (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))
, J3 K# ?7 Q) T1 {% Y6 F; L) [ - );if
2 ^( Y. W" L0 m7 ^* b" | - (init_bonus_error (list0 U% S! s. D- |
- (list "cmdecho" 0
H' o6 l/ z9 z/ Q. Z - "highlight" 0
" _) ~# M) \& D7 ? - "regenmode" 1% |, x5 P/ d2 g7 U/ ~5 l
- "ucsicon" 07 m5 z5 S" s( N1 Z7 `' ~1 w
- )
4 G" T& E& L! z8 O - T ;flag. True means use undo for error clean up. , J& |! O2 w6 q }
- );list
$ [( K% i5 t7 B, M' S. O - );init_bonus_error! e e' s" c7 u' F8 E0 w: P
- ! i* ]8 \% R c0 C
- (cond6 G( V4 [+ I6 k: U
- ( (not (ai_notrans))) ; Not transparent?
# T3 G( `0 }4 c5 G - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?' d/ R4 C% v" z, E: R) D
- ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?% d- Q0 O* p2 v$ B
- ( (not (setq ss (ddchprop2_select)))) ; objects to modify?2 g4 p# c& f7 u0 w6 x. N; J# {8 ^
- (t . c2 m# W7 ~4 P4 t
- ;(ai_undo_push)! y! b- Q# X0 x4 O" l6 K
- (ddchprop2_init) ; Everything's cool,* V! i( I' `% }9 f; E( }, |
- (call_chp2) ; so proceed!; u! S& S2 V9 Y1 I; Q- d& I" ?
- ;(ai_undo_pop). d* V; Q6 h5 h8 V) s/ q( S8 g
- ). J: V Q* D0 y; D
- );cond close" y* `5 {; o* b! m' S! S
- $ K) ^1 V1 I& h ]
- (restore_old_error)
" v7 ~" E" f! S( O- r
6 w( K5 a$ c5 z$ O/ R- (princ)
1 l8 G0 [$ B% b6 _9 _ - );defun ddchprop2
4 r! N5 i6 G8 q# B- f2 q/ p/ l' S
* c0 u3 A+ B, Y- ;;;----------------------------------------------------------------------------
# K& t0 Z1 O, Q# {" R4 P- y - $ @% @% _* s& H0 }% @# M' e1 j$ o K
- (princ " EXCHPROP loaded.")
' K" z7 a7 T$ x* M; i - (princ)4 `1 N5 i6 S9 i: Q: k6 H# s7 a8 l
) @# u8 E1 e- ]9 l- P! X' {5 g- ;;;----------------------------------------------------------------------------
& c2 ]) h6 A3 n9 W5 G0 a: R/ M - ;;;---------------------------------DDCOLOR_LSP--------------------------------
. U7 ]. t. A: M$ ~3 B+ i - ;;;----------------------------------------------------------------------------
( S) b# }8 w: J: J# ^* u2 h: { @
0 w' A8 R: `# s. p/ P- ; Next available MSG number is 24
# U6 \5 q+ N4 f* l - ; MODULE_ID DDCOLOR_LSP_8 S& a! o& `. z- n9 E
- ;;;7 \+ R. `5 u- U2 N7 Z1 i* G
- ;;; ddcolor.lsp& {- s; S* z2 C/ T$ ? @* L
- ;;;
3 p4 t+ F v9 U4 k& ]& d - ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.- t) S: a7 {5 c; V
- ;;;
, a0 s4 n/ `) O# r - ;;; Permission to use, copy, modify, and distribute this software
" A: U8 J4 b% r - ;;; for any purpose and without fee is hereby granted, provided
7 o' E" p. S5 ~: ]0 J' d - ;;; that the above copyright notice appears in all copies and
% w% S7 |& G$ ^% L' I' ] - ;;; that both that copyright notice and the limited warranty and( @2 h6 ^8 ?* G; T
- ;;; restricted rights notice below appear in all supporting9 _, w8 i+ r/ Z7 S
- ;;; documentation.6 @! S, }$ C2 {$ [( R
- ;;;
0 T, k5 q. v4 U - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
& J' d+ j/ J/ p9 V! [ - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF! u4 g: l3 A) Q3 s
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
; q$ a9 D7 h7 u - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE& ^5 l2 U. [5 x0 m; Z! ]
- ;;; UNINTERRUPTED OR ERROR FREE.: u3 K9 [3 l4 |8 ?/ Y
- ;;;" e0 v9 o% x: T4 N7 I1 B( L/ ]
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to4 B; N3 |1 ?( S1 d
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer" ?: U& E6 j B; O7 R
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) + }7 W' i' R/ h& n7 L' u3 t7 K! Z
- ;;; (Rights in Technical Data and Computer Software), as applicable.
- h. v9 X7 T- A/ b: S - ;;;! Z% u' A4 \) I- n L
- ;;;.5 k0 S4 t& W @ E4 d, f
- ;;;4 }( s0 q; x2 u2 @
- ;;;----------------------------------------------------------------------------4 w4 o: [0 n: t" \/ L+ `. {
- ;;; DESCRIPTION& ^0 ]3 s2 H# ^5 g p* t, } @
- ;;; : H8 w! _! G9 h4 T i
- ;;; Chromatic Pallete style color selection dialog.
. a# @9 H& d& o+ I* M* _! ` - ;;; 4 j4 a+ D, W5 m' v9 P
- ;;; Globals:9 K4 |$ `: H9 q' Z0 d
- ;;;
7 j4 @2 P9 g1 ^ - ;;; chroma_color - Integer color index. The last value selected
& P: j& I) m- J8 h- o7 t, J - ;;; by the user in chroma dialog. It is not cleared or reset
* h! e% D1 a* b6 P$ i0 ~ - ;;; by a cancel. Only used for communication between callback+ ]5 {" l, R* G+ M/ D
- ;;; functions and the (chroma) funciton.
2 h6 Z$ m, ~1 l - ;;; 8 ^- n9 N0 e0 D% w5 m$ o7 }$ Z
- ;;; Depends on the definitions for the dialog provided in chroma.dcl.
# H/ j8 m7 `, w - ;;; . G& E W/ _, ~
- ;;;
1 O. G v8 a4 u7 j7 e6 u/ z. s - ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma 3 ?& u4 X3 r% _5 ?% {" V- w
- ;;; pallete style color selector.1 s2 \- I) r% u; L/ R! K* s
- ;;;
. d7 {4 k0 E2 [0 e" `4 y - ;;; ===========================================================================3 e' L, c" C# F5 X
- ;;; ===================== load-time error checking ============================; m; F0 R0 @9 Y. ^% o. `# k% ~, T" T: |
- ;;;
, c$ I% l8 B$ W! g! ~ - / N9 x* G/ s8 _) Y
- (defun ai_abort (app msg)
' V* i3 e5 _2 v: g5 j - (defun *error* (s)
7 x+ F" i4 R, k& } - (if old_error (setq *error* old_error))
8 m4 e& ]9 U. T6 V' \ - (princ)7 W9 B: H! h, I' C
- )
: s9 G2 }5 Q/ C f ?5 f - (if msg
; C1 g7 Y' y$ y9 Q& q" z - (alert (strcat " Application error: "+ m; E/ y. n- ?: Z" r+ z( \
- app
: q8 G! m( R! }# h' @; R - " \n\n "- ^+ H( g5 O3 ]3 B& _
- msg
$ G2 j3 O; h% k( G6 b$ p. G - " \n"* S% ]# L# f5 p$ e, V
- )9 I8 l" A: u( _$ T! Q, B0 G$ I
- )( _; f H$ F1 H7 L
- )
9 m r; t3 B9 S8 [ - (exit)' b% Q6 s& |0 j4 i! C$ V
- ) X8 ~. u& j& z; _4 |& {9 X
. M8 b. A5 a) _' X! g8 `# Y& I6 Y- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,: I+ Q# v0 @7 _7 A4 H8 L) H
- ;;; and then try to load it.6 g! H. {/ J& G J
- ;;;, {( {* \! r" d( @6 ^( K0 L
- ;;; If it can't be found or it can't be loaded, then abort the
q) ?0 L7 r8 J3 A - ;;; loading of this file immediately, preserving the (autoload)! Q) }8 S9 L: @7 u8 a
- ;;; stub function.
5 _* h$ j$ ^9 r* P: N
/ S( {6 |9 Q3 n ?( s+ M- (cond/ s8 j9 U( |2 u3 y9 m( m: S
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.. e8 V |+ j' X$ I) q. G4 g
# e6 ~8 \8 _% L7 c6 |. z c- ( (not (findfile "ai_utils.lsp")) ; find it1 a0 E* N# g$ i2 e
- (ai_abort "DDCOLOR"
2 _4 j8 t1 [5 G, R5 { - (strcat "Can't locate file AI_UTILS.LSP."+ ?* E6 }: f' p0 S
- "\n Check support directory.")))4 [6 u4 p7 c7 {8 A7 M \/ f: `
- - y+ D! r, ^5 `$ h7 @
- ( (eq "failed" (load "ai_utils" "failed")) ; load it1 t' I, q! o2 q \
- (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))
0 Z9 `* C, p/ u" t" @# C - )
! Y8 f# L* K {* k6 W1 ~- E
: U$ E: H2 o" J, T9 i" M+ P g- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP7 a" d3 [9 h- p# s
- (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses& G! G- D% P+ v+ l; w9 o: Z
- ) ; ai_abort's alert box dialog.1 {+ k0 Y8 P7 E2 o/ H/ {" U
" ]7 O1 C; p# m j, R {! K, {" T- ;;; ==================== end load-time operations ===========================
# I5 r9 ]) L6 X+ ^ - * D7 [' ]: v/ C7 m4 e* j
- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)
. B* [- s) L1 X, _) `5 V: z) I -
/ r* c! I8 T) c - ;; Main Color function, called by setup code.
! T W, N' ^/ c. M' b$ p: |, P - (defun ddcolor_main(), h; g6 J: t3 @& Q% Y1 n7 T$ h
- ! i! l3 ~1 B2 n. C
- (graphscr)
. v3 l3 }0 a' x% {# h& D+ M/ q - , S: l X- I6 Q8 \" J
- ;; Get the color of the current layer, for possible BYLAYER color swatch.4 P N$ ?5 H) w# P5 ~- H) W
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))
$ I( K* D6 @4 n+ z" I3 Z' m# C - * @0 p) Q$ C x$ m! _
- ;; Call the dialog here...
; Z# Q: r! j ^; @3 y/ s! f; F - (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))! M* o6 p) ?( Y; r
- 1 u/ r# h6 k& h9 x4 p$ |
- (if clr* ~0 m3 ]" s T
- (setvar "CECOLOR" (citocs clr)))
3 m, h1 `) F: j; D' F2 q. Z - )
9 d3 F# X( t/ Z/ W5 R - ! \+ T! F* O) {8 M) n
- ;;;
$ r/ w: {: S* o6 t( j2 Z3 U7 I - ;;; CSTOCI -- Color string to color index
* n/ ~1 A# x" G5 ~( X$ s; }% ^! x - ;;; Convert an arbitrary case string into a color index.
9 F, v* @& g7 X - ;;; Returns nil if string is not a valid color.
8 Z8 a, k4 i8 I - ;;;
- }6 h4 U7 o2 |1 h - (defun cstoci (str)
! x5 H( m- D4 C8 k5 y3 s) | - (setq str (strcase str))
6 c" P* p0 a% u; A- @0 a - (cond B' R, v3 K: _% W2 _8 d- b
- ((= str "RED") 1)- Q* d$ I6 M' T7 r
- ((= str "YELLOW") 2)
! i w- W% j& K: q+ J4 P - ((= str "GREEN") 3)
* H: b, ^) u9 H: e - ((= str "CYAN") 4)
4 U- u8 e& w6 J% r - ((= str "BLUE") 5)
% {( E, _7 F9 _1 T - ((= str "MAGENTA") 6): n: y/ V( e- z1 Z Q
- ((= str "WHITE") 7)
! @" D3 z) Y2 ~, A$ L) p - ((= str "BYLAYER") 256)6 q9 [6 i0 S+ E5 i& o( v0 r) {
- ((= str "BYBLOCK") 0)+ ^/ J l; z5 @5 j9 t, h
- ((= str "BY LAYER") 256)) G( R( w$ J6 L0 F7 x1 D
- ((= str "BY BLOCK") 0)
' M# Z! H4 V9 y8 l9 H - ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))
: }9 X) r, i2 Y% [' w - (nil))
. n9 T; r. l4 @2 I7 J m8 F - )& W3 R/ T2 r% ^
u& Z# ` }% Z- 7 [4 q( S, {* g0 M; F$ x* I2 g' v
- ;;;
; Q# i" c4 S% c: I: k - ;;; CITOCS -- Convert color index into standard color name.
% M. z) c2 u. } }- B - ;;; Will return the standard and logical color names as text
5 p: X' A; d' k! Y5 b - ;;; strings. Returns nil for out-of-range color indicies.
4 Y/ E* l1 r8 J) } - ;;;
+ Y" f$ \. _1 y9 ~, z0 `! L' j! N - (defun citocs(i)' b( ~$ Q% [0 @6 ]& T8 m
- (cond
* i, f2 g7 e* z3 C - ((= i 0) "BYBLOCK")
N( M$ H( {& x/ i) S - ((= i 1) "red")
3 Y& B+ a% E5 V& H; p - ((= i 2) "yellow")
6 {' Q4 F3 d! @6 e& E9 i$ C6 n - ((= i 3) "green"). Y* B& z' W5 @6 ?; N
- ((= i 4) "cyan")* q* K1 u# b1 N6 `" T2 ]
- ((= i 5) "blue")
) ?( d6 { J8 t* b - ((= i 6) "magenta")
# z& p) r1 n2 K# @8 Q8 ` - ((= i 7) "white")4 t6 A) N4 o9 R/ k
- ((= i 256) "BYLAYER"). f/ A: i9 S, I; }
- ((and (< 0 i) (> 256 i)) (itoa i))
3 i1 F) J5 L! \; t V/ m - (nil)), }% Y' X0 N, z. m, e
- )
/ q' f1 I7 A# k N4 |
: _, l& l, @& `. v: m- ;; Start of ddcolor
* I* e6 L3 f' U' W8 c( Q( v - (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
' }+ B) G! c: `: g4 z - old_error *error* ; save current error function
- K: B; R3 P; ?1 T - *error* ai_error ; new error function
5 B/ q# A8 l# X& B" s+ h! i/ w - )
7 Y: P( X' n8 n. D; t Z - , P9 W$ f0 k2 q$ Q7 U6 B) |
- (setvar "cmdecho" 0)
# C9 p5 ?; b% z. K3 L - / V3 t, l) z& G$ e
- (cond2 g9 e; Z% |# x9 `% }/ _! L
- ( (not (ai_trans))) ; transparent OK$ o. ?6 V0 R( k. ~, X; L. B
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
. h. P8 v* L0 X5 Z' V9 Q9 B
- ~/ V8 ?+ N* N% Y- (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))
5 c/ P( |! U4 [1 @& j' f - (/= 8 (logand 8 (getvar "cmdactive")))6 {2 u1 L3 j' t, k, A
- )
+ k6 @7 P) b9 b7 h) W& S0 E( l8 ` - (ai_undo_push)* I) E C- D6 [; Y7 J
- )
1 L9 E Q. b; v4 b% x
0 l; g, x9 I2 D. o- (ddcolor_main) ; proceed!* G+ {9 o6 X! J R
- ) G. T* ~$ t p: j
- (if (and (/= 1 (logand 1 (getvar "cmdactive")))
0 z% H/ o( q+ r9 J: ^1 t - (/= 8 (logand 8 (getvar "cmdactive")))
8 d& X" R4 B' H* H2 Z - ); }8 K4 ]1 g4 a2 r6 n( W- g
- (ai_undo_pop)
7 H& b+ C. F2 ?$ e. y8 E, [( B& x+ l - )! ~, d* ^, Y# t# X
- )
6 p7 t6 M% s. b6 @9 \1 o$ L4 @ - ) u% |$ } k9 h* M7 ?; \
- 3 D1 r/ D& k! c$ D, Q7 p9 D& v5 Y
- (setq *error* old_error) ' D: @. K* ] \% P) @1 v
- (setvar "cmdecho" old_cmd)
% p- O" W0 |, J ? g - (princ)- g7 e/ b2 G4 w0 l3 Z
8 r- e O7 z1 J2 c- )
( B+ n/ w+ o2 \# p' h3 W
' x" _. x) K/ e/ q- ;;;----------------------------------------------------------------------------. u& ?9 p& f4 q G* `: {2 l; @* j* I
2 O# U2 y! n" I( w- (princ " DDCOLOR loaded. ")
% }" |1 e0 ~# n& u3 K - (princ)+ _* `, ]" Z7 K# g1 G
" F9 A+ G0 Z9 ]# X* P- ;;;--------------------------------------------------------------------------;
' a: k% A5 V3 U2 m: k# r - ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;
" d8 w" s* U7 [2 F: d9 _ - ;;;--------------------------------------------------------------------------;
5 E( h! n/ O) y - ;;; ssx.lsp
4 _- a2 y- r0 Y4 r# W - ;;; Copyright (C) 1990 by Autodesk, Inc.
9 K2 x7 A: i* B! [9 Y7 J - ;;; Copyright (C) 1991 by Control Systems, Inc.
. V& @0 A: I" D$ A/ m3 | - ;;; k- h. H6 U; c% ~8 e
- ;;; Permission to use, copy, modify, and distribute this software and its
! E% Z# X- h9 j2 t7 n ~4 b4 ` - ;;; documentation for any purpose and without fee is hereby granted.
; r! n/ s/ ^/ _8 A - ;;;
7 u; c7 U( [3 u6 u% s - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
6 v) k0 r& O9 p' i4 K# e$ z, u - ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF; T4 s; H) I/ L( g1 M. z
- ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.
/ I% g( R# k, Y$ t - ;;;
# P* k/ n7 M( f, L3 v5 { - ;;; Larry Knott Version 2.0 7/18/88
# G! L( D$ ?( G% s' M - ;;; Carl Bethea & Jan S. Yoder Version 3.02 {" C( E- E/ O# c; m6 ^
- ;;; Enhancements to (ssx).
5 d9 z- k' l- N: E6 n% F7 ~3 c - ;;; 15 March 1990 . c/ \7 i* f0 q( T4 y, A$ b1 ^9 @
- ;;;
8 U. p% I4 r- J - ;;; ARTIST Software, Inc Version 4.0 December 1991
, l' ^6 S0 c$ ]/ Y& ^* m - ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,, K [9 h4 Z- h! A/ l) Y
- ;;; use Flexicon menus
* H6 P# Y# O5 @4 k0 O/ o1 Z - ;;;. u, y' B3 |( `! @
- ;;;--------------------------------------------------------------------------;
c, k) ~5 d9 S5 |! H% g/ ~ - ;;; DESCRIPTION
( Y# W1 R5 U; o - ;;; SSX.LSP + @$ K. D8 {. i( w1 B* S
- ;;; & ]- z: w0 Z/ x1 O
- ;;; "(SSX)" - Easy SSGET filter routine. 8 O4 N6 b: |5 Y! z9 J9 _
- ;;; ) Y6 T/ i0 _! w) D- D
- ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt - ^4 D$ r5 x( M+ \9 ]' W
- ;;; to create a "previous" selection set or type "(SSX)" in response to 6 i& \- Q, y6 L6 S, v- _( J
- ;;; any "Select objects:" prompt. You may use the functions "(A)" to add
, ^' _& X1 `) Q# y/ W - ;;; entities and "(R)" to remove entities from a selection set during
: I3 V) r" G9 c! [/ n/ [4 G - ;;; object selection. More than one filter criteria can be used at a
9 D9 U q8 c5 F: r/ W0 B& M - ;;; time.
5 H8 l+ u/ E# G/ Q3 |( O$ G - ;;; $ R4 w; ]- h/ z9 k
- ;;; SSX returns a selection set either exactly like a selected
& c; |8 q! m% e3 r2 E - ;;; entity or, by adjusting the filter list, similar to it.
& [0 q+ ^& R' W5 |- y ] - ;;;) N$ W0 F1 W1 [2 H4 l0 `
- ;;; The initial prompt is this:- _3 m! x/ m( _" n& Z; m& b; t* d
- ;;;
$ y0 M. }3 q2 g! w. { - ;;; Command: ssx
) b2 d% X, N1 X/ G - ;;; Select object/<None>: (RETURN)
% E' w# [. Q3 Y6 j - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: 6 O2 U; f# q9 j K
- ;;; * n" h j1 j2 V4 K5 f% z1 j' G6 M
- ;;; Pressing RETURN at the initial prompt gives you a null selection
$ L$ x" i; B! K; k0 @ - ;;; mechanism just as (ssx) did in Release 10, but you may select an * W" }$ B9 C" M% M* L+ t; ?* m
- ;;; entity if you desire. If you do so, then the list of valid types $ h+ ?& f) c( U! z
- ;;; allowed by (ssget "x") are presented on the command line.
3 T* V" X/ W- c* z* V/ E# ?; x1 [ - ;;;
+ t) y* D' a, p - ;;; Select object/<None>: (a LINE selected)
o7 ?6 S$ T. |- m - ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0)) + n" @5 l& f1 Z# ? ? l: T6 B8 [
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: : [2 Q8 [- B q$ ]& W# v g6 S/ V8 O) ~
- ;;;
- p% n2 }0 j ^4 a" T - ;;; At this point any of these filters may be removed by selecting the ; m1 c7 [% q- [, j9 u) o
- ;;; option keyword, then pressing RETURN.
0 B* u% G; g! G/ d% d9 k- j - ;;;
$ W6 y+ t' U6 E - ;;; >>Layer name to add/<RETURN to remove>: (RETURN)
+ v; f3 E! N1 ~" I& C4 ^7 r - ;;; : z7 Q: j5 k( g: l) E/ }
- ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
( j' G8 w2 B- x8 n1 u4 c8 K2 E- T - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
/ I7 ~8 Q) P! L$ W( j - ;;;
1 G$ n) @* g ^. q- O! h5 [ - ;;; If an item exists in the filter list and you elect to add a new item,
. y: O$ `4 O/ Y$ h. Q" }5 p5 N - ;;; the old value is overwritten by the new value, as you can have only
" s. A3 a$ n+ O" v+ j0 k' } - ;;; one of each type in a single (ssget "x") call.
7 h: p6 Y( D0 Q+ A - ;;;' _( g- u/ t. O3 F& f- q
- ;;;--------------------------------------------------------------------------;
: a' `/ a3 g! w' y* R - ;;;& Q$ T! y6 C7 K0 c( l7 ?' y0 v
- ;;; Find the dotted pairs that are valid filters for ssget1 l- T0 |. D0 d6 f, B
- ;;; in entity named "ent".2 |' A' @0 b7 y- A1 ^
- ;;;
% n' @: X4 H) o b% U) k/ X* m - ;;; ssx_fe == SSX_Find_Entity
5 g7 K% `6 a9 `! m% G2 n! F7 X - ;;;
+ U" I( g! A' b6 b9 x. E0 ]3 o4 s. u - (defun ssx_fe (/ x data fltr ent)
, V* h2 C/ B8 b' x$ Y/ l5 r# A - (if (and (= flexvar 1)(/= t2 "Pick"))
+ \$ f" n* V2 c - (setq ent nil)
% M- s, i W& V' N. s \0 L - (setq ent (car (entsel "\nSelect object/<None>: ")))) n6 p9 q1 B4 L, M; F Z7 f" B- k
- )
. F! ?6 H) a* I - (if ent
9 ~7 K( @# F& m8 o. ^% Z - (progn
8 R2 Q& [6 @) A - (setq data (entget ent))
. N+ C0 e1 G) j. l" S - (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38' R t/ o9 S" u9 k4 V; x: e
- (if (assoc x data)
) A P( h7 w$ m8 l3 ]. ?0 | - (setq fltr ! H3 f/ d4 ?' N$ |
- (cons (assoc x data) fltr)
1 _( j3 u* s7 S0 n6 W r E - )' K4 E4 F2 l1 N; I0 p0 [8 w# T& T
- )
* ^& K: J2 V8 W2 M - ) ; I6 y9 q/ K8 ~
- (reverse fltr)
3 W3 O/ s9 ]0 l - )
- G$ v( q4 t- g1 o% J2 V/ N - )
: a! |6 n0 f, s - )2 Y4 e5 \9 l H5 g0 W# ?
- ;;;( k) e) _' ?- _ ^' f6 p; }7 R+ b
- ;;; Remove "element" from "alist".% T& P1 G; E Z
- ;;;7 ?- D! c& p0 k A6 e, @* D4 C
- ;;; ssx_re == SSX_Remove_Element; v$ }6 \" s7 M
- ;;;
4 v+ m9 I3 c1 u1 \% T - (defun ssx_re (element alist)
! I, @2 _1 J) d' v# D' F - (append
1 U, X3 ~* V$ r: J - (reverse (cdr (member element (reverse alist)))); `6 z% d+ N4 j. ~, p6 t% D
- (cdr (member element alist)) / a& l* J1 C' D$ N- Q* ]. k" q
- )' _9 K- l( o8 \. q; U8 P6 l
- )6 ?8 \# v/ E4 l7 ~. L* v0 J+ z
- ;;;
3 F; f8 E4 q Y; T z - ;;; INTERNAL ERROR HANDLER
e- T" f J8 W ? - ;;;0 t6 L9 P3 D1 h. `6 ^- q+ N
- (defun ssx_er (s) ; If an error (such as CTRL-C) occurs
8 j# z/ s( J3 A$ o( f7 S. u - ; while this command is active...4 r+ Z& J8 |2 `$ e# Q3 o
- (if (/= s "Function cancelled")$ Y+ v, a3 t; T/ T* n
- (princ (strcat "\nError: " s))& V, I3 N" x+ E+ x
- )
+ s- ]& h3 Z# S/ Z! a& M5 o5 O7 g - (if olderr (setq *error* olderr)) ; Restore old *error* handler
2 _7 ~6 ?" e! h) I; G# r2 |0 n' n% v - (setq flexvar 0)7 V& c5 r5 Z$ {/ j9 c- D
- (princ)
0 I' H, j1 [$ B6 u. R0 M - )* }$ e! Z8 F/ ^
- ;;;" K4 r" x$ ]. h2 y. a+ I" ?
- ;;; Flexicon call routine/ _9 b/ |' l, B7 j' c N* p
- ;;;4 e* @ t9 H$ w8 \- b0 c
- (defun flexmnu (a)3 K3 ^6 Z/ X2 i/ K% Q/ L
- (if (= flexvar 1)( _1 f. [! U: ]
- (command "FLEXICON" (strcat "FLEX" a))
3 y/ f. V0 o9 S% P6 k+ O - )6 D! A8 `0 Q2 E0 _. c( K" X
- ): D: G2 F" i6 d1 U* P, ~0 c/ E
- ( P& w" Z! K* k& T7 U4 i$ e
- ;;; + g8 ?- ?1 _8 q- m/ Z7 A. o# X+ S5 c9 p+ }
- ;;; Get the filtered sel-set.
) e" G/ Z( g$ {5 r5 }* { - ;;;: N" V" M" s0 \# n& i' _) d c9 P
- ;;;0 A- |0 w9 l% T) z" t% @1 x |
- (defun ssx (/ olderr)
6 G% v. f- X6 r; i' P& H. z, u - (gc) ; close any sel-sets
. ?* q$ V% x8 B& i7 u# I. y" ^ - (setq olderr *error*
; n6 O% `0 b# R - *error* ssx_er
; R1 a) Q# N. e, p% a& M - ); z Z @2 l* W% g( U5 w
- (setq fltr (ssx_fe))
- l" H ]$ I3 J F% ^ - (ssx_gf fltr) 6 u" b( x# g+ Q% i1 A
- (if (= flexvar 1)
4 |/ ?' X* E2 i1 O: ^ - (progn
7 d! p* F L' [3 g1 |4 ^ - (prompt "\n \n \nNow select the required EDIT command and (P)revious.")
* O1 J q* c* @" }/ X - (flexmnu "EDIT")
5 E$ @% @9 F( U! N2 m - )& d$ L% }- g( Q
- (command "p")2 G0 J/ P Y4 N( ]% Z! i
- )
9 I/ h8 p% a- D ] - (princ)+ [5 F6 n( x& x1 |. [3 ~1 I) p
- )8 D R8 }7 T4 T" R/ d
- ;;;2 N$ q M M- X% L3 k( f
- ;;; Build the filter list up by picking, selecting an item to add,
5 m- l. ]5 R1 G0 S3 |5 p8 z; k - ;;; or remove an item from the list by selecting it and pressing RETURN.5 s2 ~$ Z( d8 A+ f0 N5 a+ P
- ;;;; d, }! Y: k2 T A7 @
- ;;; ssx_gf == SSX_Get_Filters
. ]+ A3 t5 C( R v! q8 N0 ?$ I - ;;;/ q f3 |# L8 l
- (defun ssx_gf (f1 / t1 t2 t3 f1 f2)
. E: ?, c0 ]1 n* H - (while ) f5 ^' H4 n: x; u: @
- (progn8 c* S! k" _( v
- (flexmnu "SSX")- O* m# _; K5 ^2 ?
- (cond (f1 (prompt "\nFilter: ") (prin1 f1)))
- p# {! j: x: X6 v4 Z5 b - (initget 7 ^# V* h( [( b% V: Y/ Q
- "Block Color Entity Flag LAyer LType Pick Style Thickness Vector")
- N, M4 i% {$ C' {$ l, V/ f - (setq t1 (getkword (strcat
) H+ M0 X7 u" ]6 U$ i+ v8 a - "\n>>Block name/Color/Entity/Flag/"
, R) z( E. D# U5 R& i2 z2 e - "LAyer/LType/Pick/Style/Thickness/Vector: ")))
/ _3 e7 T L. n* x- H I - ), g+ v+ x7 |3 N k5 P' }
- (setq t21 I+ {* }7 i" `$ S1 b5 M+ y
- (cond1 e8 V( R0 y ^# x: E
- ((eq t1 "Block") 2) ((eq t1 "Color") 62)
8 U& |3 `2 }. ^' p - ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)
8 d! m: f; h- s( ? - ((eq t1 "LType") 6) ((eq t1 "Style") 7)
2 }+ w/ v9 i* a2 c" J - ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)6 }) a: t+ L9 W
- ((eq t1 "Vector") 210)7 l) n5 A) n1 S. O& |
- (T t1)
* W- b) j+ J% J: k! f - )
Z& s& r# H; H/ m. @4 u - ). f- }# u. v0 l# M0 G
- (setq t3* E/ X7 E6 y# [1 M: c0 J0 A* Y$ p
- (cond
8 @+ y' l1 L! f* j8 S9 y5 ` - ((= t2 2)# N: [0 `3 P* M- ^ i" c( K' e
- (if (= flexvar gtads 1)$ d3 D D2 M0 k! t( Q% e# w
- (progn7 O3 G6 b8 z! B. \, e. t2 v
- (prompt "\n>>Block name to add/<RETURN to remove>: ")
% d2 j( o3 O0 `( Q5 q - (gttable "BLOCK")
m( E% X) M" h: D1 ?5 ^ - )2 j% C7 s- P# q* [# z1 w9 J2 ^
- (getstring "\n>>Block name to add/<RETURN to remove>: ")
* \: g0 \+ \4 f4 u: Q! j ~' p - ). J! n! U( U9 D! v/ x9 L
- )
9 l+ I7 N3 L8 A, c0 ^0 D - ((= t2 62) (initget 4 "?")$ B2 T5 e' @6 V% M A
- (cond
# G0 }+ P. x& W. L: ]/ N - ((or (eq (setq t3 (getint ( G# J6 U0 S& q( S
- "\n>>Color number to add/?/<RETURN to remove>: ")) "?") - O: T: a7 ], ], s/ s& d5 e
- (> t3 256)); ?0 \6 h# K J% W
- (ssx_pc) ; Print color values.
* M1 h* W) `: a) i3 C; c4 x$ B - nil- u/ F6 |, \$ x; K8 C9 S. {( A
- )& x- l( x9 j: g/ w" u! ^% ?" H
- (T7 O) O! n: X& e. t, w c8 A
- t3 ; Return t3.
5 W- s8 o) _$ ~, N) B% M; _' N2 m - ), L) I6 h# I: ]: X8 w% x8 [+ D( o
- )
( ^- s/ t2 V( O' d8 y3 _ n5 J9 g - )! ^& O3 [$ ]) s. S0 F" ^
- ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))
" X5 p# I- }% Y. u* v X1 z* D - ((= t2 8)
G+ _, E6 Z. ?5 A - (if (= flexvar gtads 1)
$ i+ y8 X# A0 p# f5 p; P! p, | - (progn
7 Y( F* Q* t+ ` `' C+ ]9 R' ? - (prompt "\n>>Layer name to add/<RETURN to remove>: ")6 T; e/ y+ {( N" X# {! x4 b
- (gttable "LAYER")6 Z+ Q; z i, l5 o6 A; x' Q" @, f
- )
. G4 j- l! e) G; C; w' J6 M9 K - (getstring "\n>>Layer name to add/<RETURN to remove>: ")/ J( ?' @+ U0 K6 d0 Y/ N; M
- )- W6 P3 @4 a1 B/ z
- ) `, M- b) w& Q9 t/ @) x
- ((= t2 6)
' H8 K) g# ^7 S; j- y - (if (= flexvar gtads 1)
( z* d6 i$ ?6 X - (progn* [- e/ s/ G" r+ h# Y! F3 l5 g
- (prompt "\n>>Linetype name to add/<RETURN to remove>: "): f# ]" M3 F2 f4 {4 t
- (gttable "LTYPE")
3 p/ o# l& g( V% G6 @: Q0 i - )
% L2 a4 K Q I5 J i& a( t5 U0 T7 M& e - (getstring "\n>>Linetype name to add/<RETURN to remove>: ")
7 E+ T2 h/ i7 L- k. g" O. M0 q - )# l$ a( d: S& J
- )
0 O* k5 G/ A# Y, a& d4 [ - ((= t2 7)
. m- R( G, x3 s( C3 \ - (if (= flexvar gtads 1)
/ K4 K0 S B7 p1 S - (progn
6 x' D3 [- ]# R1 A$ V! g - (prompt "\n>>Text style name to add/<RETURN to remove>: ")# _; V# k) {( l6 \& o
- (gttable "STYLE")
' a, X# b& M4 ]# I4 ]' E - ), e8 t& C( P8 g- i* M3 S- E- c
- (getstring "\n>>Text style name to add/<RETURN to remove>: ")
0 x, |1 g2 M6 ?; H; @. W - )
3 o9 D1 Z, G1 Z0 H0 J - )
% Z3 [6 n/ r% O; F# k0 e# e7 P - ((= t2 39)& p4 m; G3 i+ K% @6 A
- (prompt "\n>>Thickness to add/<RETURN to remove>: ")
! G( ?3 y. E3 e% e9 m# P - (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal)); K& G+ S8 u7 ^) g, h$ f* U t
- ); L" ]* j7 T" f5 s
- ((= t2 66) (if (assoc 66 f1) nil 1))
; _% d0 _" `' n ]! |9 p9 D9 D - ((= t2 210) # x. A0 L# @ M+ Y' O
- (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")/ y. t& q1 M* T0 `# Z: \- i
- )! ~' Q* [) ?& u; B; Z
- (T nil)
) ~! [+ c/ t' `: I8 ~! ]: r - )" R* s7 F: l: A8 W/ J* a
- )! y+ L- V8 N$ C2 h; t
- (cond4 m6 s$ P% y x/ N0 f. D% e8 ^/ B
- ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity
7 G* f. v, V n/ P - ((and f1 (assoc t2 f1)) ; already in the list
- ]2 L" Q/ A; J. Q1 U$ q: _3 A$ } - (if (and t3 (/= t3 ""))4 G3 u/ M/ t- y2 A! O
- ;; Replace with a new value...
7 _" d, ?" Z* o% R( J7 Y% Z - (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1))
5 D: R- {6 M; m; M - ;; Remove it from filter list...
5 x- J3 N! K: h - (setq f1 (ssx_re (assoc t2 f1) f1)) * R+ U& `1 |5 t
- )
1 _. [+ H- Z3 \/ @$ Z - )9 Y. @; F2 A. O
- ((and t3 (/= t3 ""))
5 P0 G; a- j# t' o" Y - (setq f1 (cons (cons t2 t3) f1))2 R$ F1 ?* q0 u% i$ g% R" f8 k. L& |
- )7 K! J! W0 A |
- (T nil)
; g, s: Y$ u6 ~- L9 q - )
( r( N3 O- V' a+ d/ x% h. Y3 ~. m - )) H2 C0 }( q8 J: K( n/ W# i
- (if f1 (setq f2 (ssget "x" f1)))0 c' R/ d" D4 |; ?2 h. O- O
- (setq *error* olderr)4 Q9 h) v: C8 u( @
- (if (and f1 f2) . C: R8 R1 {$ q2 c/ T) F5 m% x
- (progn
0 }0 b1 h: r! t7 v) P6 T7 u - (princ (strcat "\n" (itoa (sslength f2)) " found. "))
5 l! S+ Q0 ^ u7 l9 r5 b" x6 p8 Q. ] - f2 / ]7 a F% e5 N) ^% o
- )& M5 H' | j" ` I+ H# v/ g4 ^! \
- (progn (princ "\n0 found.") (prin1))' f: F, }6 y' d+ f" {
- )+ \/ K1 q( ~ _8 D: Y" _2 o
- )
6 u. l/ H I% Z: K& c - ;;;7 J! X" ^) W8 @/ G9 Z
- ;;; Print the standard color assignments.
1 h7 t$ k6 \ v$ `+ r$ h N/ [ - ;;;6 ~; ~5 j$ {7 e1 ^
- ;;;; O5 j9 m2 G( G4 ]) o6 G
- (defun ssx_pc ()) ?9 ^' b: ` ~6 p8 C0 |; q! }
- (if textpage (textpage) (textscr))
( @$ Q) L( V) Y; |0 h4 z! A - (princ "\n ")
' z- B8 w5 r2 J0 u - (princ "\n Color number | Standard meaning ")
, j8 z, e: [) j% f& h7 V - (princ "\n ________________|____________________")% K8 @. t5 {3 ^6 E+ @% _: K/ \
- (princ "\n | ")9 c2 d, I" a( O# _
- (princ "\n 0 | <BYBLOCK> ")- A$ U. {. u9 I) `. l
- (princ "\n 1 | Red ")
* d1 h) q) y. Y8 b- W - (princ "\n 2 | Yellow ")/ K% P7 h& ~8 o1 w' k/ M" M$ _
- (princ "\n 3 | Green ")
6 C! O( P& P6 `4 H8 [; _# X - (princ "\n 4 | Cyan ")+ x1 j: k) r w2 T
- (princ "\n 5 | Blue ")( I1 W& q0 S& l
- (princ "\n 6 | Magenta ")
: B2 W' S6 b o. D7 `& T - (princ "\n 7 | White ")
z a6 a" e$ t& w: U0 B( @ - (princ "\n 8...255 | -Varies- ")
% m* T3 `, ~# b; `7 L - (princ "\n 256 | <BYLAYER> "); X0 C5 R. f- w* u; K8 v# W9 K
- (princ "\n \n\n\n")
! o+ P j# {7 L: n1 ?" ^; _ - )- Y9 c0 k8 v; P3 _! B4 L' f
- ;;;! n6 t8 l5 z' G0 q( l" v) ]& N
- ;;; C: function definition.
3 Z, l4 l5 s5 w8 A* R0 D7 A - ;;;
7 c* d* Q9 C6 R4 C5 _ - (defun c:ssx () (ssx)(princ))1 ?. c! j( z/ @# ^. B. @
- (princ "\n\tType \"ssx\" at a Command: prompt or ")
) f2 t: E+ d2 L, D3 c - (princ "\n\t(ssx) at any object selection prompt. ")& } T8 _9 F0 l
- (princ)7 J* b6 S! i# k! l: `! O. j+ P
- ( Z; L$ l, h# v1 j! R5 _; r
- ;;;--------------------------------------------------------------------------;
: L/ @0 f. l0 v8 {& h5 t - ;;;--------------------------------------------------------------------------;- c2 g8 I) {; J) t- C6 E
- ;;;--------------------------------------------------------------------------;
/ E) Z0 v9 o7 b - (defun S::STARTUP ()9 D. y: g) u' F2 x+ R
- (setvar "cmdecho" 0)
; b$ F9 G& k$ n g3 z# n( w - (setvar "cmdecho" 1)
5 ]# G( D* L: F: D. b" P; l - (setvar "LTSCALE" 10)
. \: i% K# y% B9 }& d6 A" }/ [
, P) L3 g* Z8 d- ~- ;(command "_load" "chenKH.fas")/ C+ W: s$ Y$ y" Q! `& e5 w0 b7 I
- ;(command "_load" "ctcot.fas")) C! }( M7 i9 w* I0 D
- ;(command "_load" "damdoc.fas")! R5 h$ E1 F, E7 {6 k
- ;(command "_load" "ghichu.fas")
1 D4 B% O2 J0 q" X - ;(command "_load" "hamtutao.lsp")
- e7 _" Z5 D+ H5 Y - ;(command "_load" "KHOITAO.fas")
' d, O5 F+ K! n- d - ;(command "_load" "KHthep.fas")
- ]' _' m _; T1 _- z - ;(command "_load" "mbmong.dcl")' ^1 s3 r1 C/ K' S
- ;(command "_load" "mbmong.fas")1 g+ Y0 b3 n7 Z
- ;(command "_load" "mccot.fas")
5 k% d6 o; E( C% S$ ? - ;(command "_load" "mcdam.fas")6 `( M- N" e+ ?7 I& i- E- d5 V# Y
- ;(command "_load" "mcmong1.dcl")
m4 W. a4 c& A2 L - ;(command "_load" "mcmong1.fas")' L) d0 i/ W$ ]. _' ^
- ;(command "_load" "mcmong2.dcl")
. q6 {- ^& K, C6 [" M - ;(command "_load" "mcmong2.fas")0 p& e j4 { x) z7 ^
- ;(command "_load" "mcmong3.dcl")
2 D* O6 R6 N9 R4 j8 f% c4 {- l+ ? - ;(command "_load" "mcmong3.fas")4 M8 y2 h$ m* w
- ;(command "_load" "mcsan.fas")
; g ~5 N' y7 D; I9 R# w - ;(command "_load" "thepdai.fas")
8 R/ c- x! m: v - ;(command "_load" "thepdoc.fas")
# d* ~$ H' n6 G" P9 ? - ;(command "_load" "thepmb.fas")
! ^" }; `6 B+ c7 P8 @ - ;(command "_load" "thepphbo.fas")
0 o" \5 D! b2 S! R7 c* i/ a+ ~" N - (command "_script" "thongso.scr") z2 O# f0 g Y v) N7 M; m
- ;(command "_load" "thongso1.dcl")
+ O6 [4 I7 a% t, n% d7 d4 W - ;(command "_load" "thongso1.fas"); v6 [4 {1 U' \* Q" F1 ~6 \
- ;(command "_load" "thongso2.dcl")) k1 Q% V" C/ r9 u3 l2 P0 Y% t' Y
- ;(command "_load" "thongso2.fas"), U/ b. g. ^; r8 v5 Z0 x
- ;(command "_load" "tietdien.fas")) q6 [# _. m/ Z) I2 g) `3 d
- ;(command "_load" "vehan.fas")" R P3 s- f' [7 [% \) m
- (command "_load" "phamDuy782006_TKT.lsp")
" u. b: n3 Y( Y7 G! I - (command "_load" "phamduy782006ganhtd.lsp")
, x$ \- t& b4 Y( T - (command "_load" "phamduy782006ganhtds.lsp"); v: d6 ` @9 R
- (command "_load" "phamduy782006htd.dcl")1 B! N' n( c- Y7 e/ W, L1 z& ?
- (princ); p! a( K% r1 |6 L7 @4 a9 I L, G
- )
2 S1 u6 J0 a' g ~ - . S6 y6 y7 S: R! `* n3 z
- ;; Silent load.
* _. V( R+ G: S' N7 \ - (princ)' @/ A$ _$ w g1 f* V
7 j& ?, F6 h9 K- : ?, R1 C% r$ N w! {2 ?% |
- ;; Silent load for the Express Tools./ q0 A) c1 A5 }: n* Z- }
- ;; Altering this line will affect Express Tools functionality$ ?7 _" G t2 |; W3 e7 W+ g
- (load "acettest.fas" (princ))
) B2 v4 \7 H- B* S: O - �32
Sao chép mã
! z4 O' K1 U7 f" N9 I: V9 Y00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ
/ a1 t) J' J% t4 L% T3 i p% T |
|