|
|
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 |
- ********************************************************************************$ Z; A9 P7 i! w; Y$ J9 Y( y
- * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *
7 i1 K9 o: \; E' w. J/ c( ]3 B - * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *
& z7 q+ b: j+ D - * Suu tam & Soan *% O7 C5 d9 a5 z0 X9 Q
- ********************************************************************************
! Z( u( S- Y8 H7 b5 m0 G$ W2 u" m - 9 Z! E3 R( Q: n) J5 c) b
- ; Next available MSG number is 104+ M% q% I# Q! f7 f9 u) p
- ; MODULE_ID ACAD2000doc_LSP_
" g N5 G! f- X5 \ - ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 2000
. W6 z/ L$ `* \ z a - ;;;
6 N+ P' |9 `9 p - ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc.4 n; @) Y3 F) e( g# i
- ;;;
8 G3 }& X& Z" ]) e( S; G - ;;; Permission to use, copy, modify, and distribute this software' q, Q% t7 R, p5 K* {
- ;;; for any purpose and without fee is hereby granted, provided
- t% h) u1 r2 n$ a+ v" A: | - ;;; that the above copyright notice appears in all copies and
) y' m6 p8 v6 {% t" L4 ` - ;;; that both that copyright notice and the limited warranty and
# b9 Z' |8 G% Y8 Y - ;;; restricted rights notice below appear in all supporting A' X0 e } b+ Q# h) l
- ;;; documentation.9 \8 P) [+ [( y. ^6 K$ ~4 g
- ;;;
. O: ?- V6 \7 [2 Z: D2 l - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
V7 v# ~; l6 Z# Y9 L. m1 F - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF Z% ~5 u* V8 G4 `3 j
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.+ [; z5 Y2 @) k$ N
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
" M5 F. G, ~- C* A9 y3 f3 B( u - ;;; UNINTERRUPTED OR ERROR FREE.6 Z) |1 \6 L% b6 N
- ;;;7 h' L: ^+ f) L2 R/ a9 A
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
3 s% x* A# H' w% m( Q) P+ L3 C - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
8 g& [' C. ` H* e3 x* v - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
9 L5 ?. M1 \* d" @6 D# S - ;;; (Rights in Technical Data and Computer Software), as applicable.
; f) i# g' y9 x3 T \) h - ;;;
" h. @) e% b7 y" g$ j- q - ;;;.
+ R$ f. a1 w! M! d, _2 q - ;;;
' |+ A5 j+ H3 C5 Y1 ?5 l - ;;; Note:
S# O+ ?, _/ D - ;;; This file is loaded automatically by AutoCAD every time & @/ x# Q; ~: o2 u4 s! ]+ e
- ;;; a drawing is opened. It establishes an autoloader and
2 w6 r% h& i- q+ i0 m9 h - ;;; other utility functions.
0 J: Q+ m1 q8 Q - ;;;: {; G+ N! Y3 w& P- L, Q4 D
- ;;; Globalization Note: ( z& p! p; x# r3 A* p l
- ;;; We do not support autoloading applications by the native
9 s/ y- m4 W+ x( X1 G - ;;; language command call (e.g. with the leading underscore
% J; [+ g/ n( a5 k B4 Z6 R0 w* c( O - ;;; mechanism.)
( G9 ^% z, Q+ E" O
, I' [" q. I J" R7 n
& n; y- I ]% U) ]- ;;;===== Raster Image Support for Clipboard Paste Special =====
. E- B2 G/ G' M, m - ;;) H$ D6 j8 B- ?/ S6 O8 ]
- ;; IMAGEFILE
! Y7 A" U( p; H- Z) G! ^$ p7 _ - ;;8 P1 U7 I1 W7 k. z- t. B, V
- ;; Allow the IMAGE command to accept an image file name without/ i9 H3 p# D, g6 I" j5 l
- ;; presenting the file dialog, even if filedia is on.
' R# O: g; v; P2 p' A0 D3 w/ m0 Y. G - ;; Example: (imagefile "c:/images/house.bmp")! y# D* N" X& M( [ B, M
- ;;
, f+ w; a& b: K - (defun imagefile (filename / filedia-save cmdecho-save)
# S3 F$ w$ A) H4 w" j - (setq filedia-save (getvar "FILEDIA"))+ c0 w. V3 \3 V1 t" s! k3 U, Y: Z% D* u
- (setq cmdecho-save (getvar "CMDECHO"))" ?0 K; o( u# `( p4 n& A* ^7 p C- d
- (setvar "FILEDIA" 0)
" l$ L4 a7 k2 u - (setvar "CMDECHO" 0) C3 b) z1 E" r$ H# S
- (command "_.-image" "_attach" filename)
" Y- Q, V. b9 \& E/ }( K8 z5 g - (setvar "FILEDIA" filedia-save)2 @" U& ], z- d1 ], Q
- (setvar "CMDECHO" cmdecho-save)3 @$ K+ B2 j! u* V* O! f) `
- (princ)
* G0 o. m: Q) x# N7 ^ - )! s* l2 \0 F8 E3 M7 Y* p* `' ]
% Z4 ~, A* Y$ Q- s* \" K& A! F- (defun c:zx () (command "zoom" ".5x"))+ t/ h2 d& }) v/ w4 j- J
- (defun c:zz () (command "zoom" "p"))
" o# a5 l) M1 ~9 {2 @2 u: x - (defun c:za () (command "zoom" "a"))
2 I$ W; V) S( B& o - (defun c:zd () (command "zoom" "d"))
1 c$ R9 n5 R {/ f8 S6 K# K% E1 U - (defun c:ze () (command "zoom" "e"))! d- F) l$ r A, t
- (defun c:zr () (command "zoom" "" ""))& ^" n4 D* n3 L8 r2 C
- (defun c:vv () (command "ucs" "v"))
* g+ F* p7 t* X( V. l - (defun c:co () (ssget) (command "copy" "p" "" "m"))$ h( D/ \* D4 p4 @6 y% M, t
- (defun c:c () (command "circle"))' e# K" N5 K3 n
- (defun c:rt () (command "rotate")): s7 I/ S/ a' e( n( K# J# @( E
- (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))
' l! X6 b( U- q - (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
( _$ j- Q8 x; t( v% K4 M0 X - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))
2 E. R2 m( E- k% [; ~* c& m0 {, L" ^ - (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
- S& M8 N0 a3 o/ }( d$ A* } - (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))0 R( Y2 a4 N- h7 h1 D
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))
4 z. f1 H# W6 @$ o b - (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))+ i2 Y2 D' b5 r2 H; i; Q9 z0 d. @
- (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
7 k5 \. @4 J K( ^( e$ C6 A, D& q - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))) b) I& z3 G0 _- C8 F9 |3 B
- (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))
2 D8 V& H' W b+ r - (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))7 [+ ?4 H3 ~& I2 m1 N
- (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y")). D0 d# V7 M2 O0 ?; ]1 e
- (defun c:fd () (command "find" "p" "" )(princ))(princ)$ o' Y5 B' c7 c, S
- : f5 R( m w; g; F5 A4 f+ p Z" P
- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)4 o W" l. B$ O
- (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ), ^9 A" I$ U6 {7 n% F2 [
- (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ)
1 M* P1 W% M) L# V* o7 ~ - (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ)
+ o! A4 a( a$ p+ k/ G! A* W b - (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n"))$ `/ }$ B$ v" @1 Y6 R H) l' @
- (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n"))6 f- {" X& y5 F5 Q2 Q9 z
- (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n"))+ n* J9 I/ V# d: m, Y5 E$ f
- ; |: B: { f+ z y" k
- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))3 o6 _1 A" e( a7 z$ w
- (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))
! H% I* T% h; l9 }) \4 i' p# j! j - (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))
( x( ^; s* a7 h) R% o( Q - (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n"))( t, Y/ B% m3 T
- (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n"))
# Y L: p0 ~) H& N - (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))
' T; C$ w( t0 P. F8 s1 s2 W2 E
% C9 _6 f% `" H: _! g- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file- h) L6 g5 X, @
& c! |7 g, ]7 I& n- ;free lisp by cadviet,cd2k44$ P1 B9 ~4 H# T. P' ~# z
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
5 A0 ~; B3 U3 d: D6 Q - (defun c:FTEXT (/ ent tstyle )
( c9 i% H1 M; q: { - (command "undo" "be")
3 m: M+ J+ c8 t/ r; i# r8 z - (setq ent (entsel "\n Pick text :"))0 k- X& G. {( Y& N$ }6 e
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
9 r: S( p- r& s1 ]0 k' ~ - (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
7 b; Z' _: y0 p# A# y: m' o' J2 ] - (setvar "TEXTSTYLE" Tstyle)% b3 t) m1 S8 k7 w7 u6 k$ B
- (command "undo" "end")
; j! N1 h' R! ]. A! Q% U - )
, C2 N, S1 } ^, f: D2 u* R; f - ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)5 b" G2 k( l& I% k/ n1 y0 A
$ ?* P2 S5 p) b- y! Y- ;free lisp by cadviet,cd2k44
8 p j2 T7 u+ `" { - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538306 p+ C3 w2 n* K2 l$ @/ q
- (defun c:Fvnh (/ ent tstyle )% r1 {# v- m% p: H5 V
- (command "undo" "be")& M! {' t- ^; Z7 J. }
- (setq ent (entsel "\n Pick text :"))+ T X* k! N; D5 \9 n- K
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))" B* @& A4 n/ t1 K3 t. |3 G
- (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
% l7 r. u9 z- V' B" g$ L' J - (setvar "TEXTSTYLE" Tstyle)9 d% w6 {% l% S# F
- (command "undo" "end"), P/ X! s& s3 d/ m# ^2 P
- )
! P% {* ]. P# o8 X - z& E) `- @7 U+ r) k
- ;free lisp by cadviet,cd2k44
" `+ j. M7 g9 D) c$ g; F - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538302 e. k2 s" g& _. A
- (defun c:Chbg (/ ent tstyle )7 _' ^! Q1 R: `* t
- (command "undo" "be")) r; }$ |% i9 K( o" w
- (setq ent (entsel "\n Pick text :")): {4 W% y( j6 s6 _6 Z& M( Y
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
: U9 s& ?& h/ c+ B7 f1 m - (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
; L A/ G6 |+ N) u( v8 i) u7 Z. c - (setvar "TEXTSTYLE" Tstyle)3 }9 p" A9 L; a3 [2 k, b, N. `
- (command "undo" "end")
+ t* ~9 `) @6 ~7 g7 {% p - )
; ~( [1 O1 s3 I. L# ^: K
$ R M( M& O. Q2 v; g1 [- ;free lisp by cadviet,cd2k449 ~9 t" c& H- z, k# ~) C) Q
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
: ~$ [% }1 F& M1 c5 l6 ? - (defun c:Chsm (/ ent tstyle ); T9 X; u0 C W% S
- (command "undo" "be")
% \5 `8 v2 w* E7 s0 Y - (setq ent (entsel "\n Pick text :"))
9 Y8 o) E- y" w' i( F, C. N - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
1 a+ K/ g* F3 [& j' ?- B - (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
% ]" }/ {( ?8 K5 v2 j+ q1 j1 R& s - (setvar "TEXTSTYLE" Tstyle), p! }- `: d5 \2 d1 A
- (command "undo" "end"), p$ c5 y! c- p
- )" l, r G5 z! |( e/ ~4 p# V+ F, b
6 l6 y# a/ B, k) B8 n6 e. g' W; d% C- ;free lisp by cadviet,cd2k44
9 U* L5 [! q/ m6 p* M3 r, j - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
9 o% p3 W( C% {% U7 M - (defun c:Fttf (/ ent tstyle )
. D. O; A: w4 ^7 B - (command "undo" "be")
" x+ h" G6 o- A- H) D) H9 G - (setq ent (entsel "\n Pick text :"))( l# r; ]! Y M9 J( ^4 R( ~1 I
- (setq TSTYLE (cdr (assoc 7 (entget (car ent))))), u: Z- B) x4 ?6 J; Y$ Q
- (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n")0 b4 u6 W# I' C2 O* d. O" Y
- (setvar "TEXTSTYLE" Tstyle)3 X- n" [3 D' _4 r1 o/ ?( j
- (command "undo" "end")/ U S# f- B U2 k9 [& M+ M
- )
* K+ c' x) }5 J" n9 A - - m7 s2 T! r' g! S8 l5 ?* r
- ;;; ============================================7 j7 L# d+ G2 ~3 [
- ;;;8 W2 S0 z5 W0 l* l' _4 J
- ;;; LISP Creater Tao Duong Dan AUTOCAD2000
6 y6 B$ O9 N- E/ G' b. H - ;;;; H$ A* t( T% O0 I) m1 P
- ;;; ============================================
+ O6 ?7 e! y# H) Q8 c
8 o, J( z( G7 e- a1 m- ;;; ============================================# i" s6 K ]7 G4 L9 f6 T6 b0 s
- ;;;
' q- [4 r8 g1 S; z - ;;; CREATING FROM AUTOCAD2000- m) t3 h+ X6 Z- w
- ;;; J8 g7 K3 C r$ Z6 ~1 A% D' P7 I
- ;;; ============================================$ a2 I, D% W" ?
( o( O8 ]! z) n2 e2 \" y( e* d+ b- (setvar "INSUNITS"4)+ [4 h7 O4 }. } u4 l
- (setvar "ANGBASE"0)
$ e7 n4 Q% ]1 ^# a' u - (setvar "ANGDIR"0)
" m7 d) Z+ o0 [# t0 I: u) X, C7 C - (setvar "AUNITS"0)
) H [6 _" `* M, D& ^- V! b - (setvar "AUPREC"8)
( Y3 m+ S0 U8 R* B - (setvar "LUNITS"2)
: |& m" }/ L4 L6 k, g+ `* k - (setvar "LUPREC"8)( z* ~( T+ s P. w
- (setvar "ACADLSPASDOC"1) " f: _( i1 w( n' ]* H: @5 H1 Z
- (setvar "pickbox"5). q3 C3 m& O2 z K$ m
- (setvar "blipmode"0)
% |( z; s0 S( [8 i6 G& o9 H - (setvar "mirrtext"0)
; K, R: b! W% z. s - (setvar "cursorsize"100)
# y9 u6 ^; a9 M! O- K - (setvar "ZOOMFACTOR"75)
, N4 Y2 _% z8 W7 O+ D - (setvar "LTSCALE" 10)
$ j( X) W$ E: B7 f7 O1 q8 U" A - (setvar "lwunits"1)$ [; Y8 W$ a' Z0 P" E/ O. F
- (setvar "DIMBLK" "Closed")- H% v1 g- G3 Q" z! z
- (setvar "DIMGAP"0.0693)
/ L8 Z9 Z( y" @, V6 E6 q - (setvar "DIMASZ"0.20)
2 t K6 l" m- {( P+ J - (setvar "DIMCEN"0.2)2 f1 f" c6 f6 s$ ^/ \1 `" O
- (setvar "DIMDLI"0.1)
X- h8 { a4 B0 m+ ]; B( Z: Q% Q - (setvar "DIMEXE"0.0693)/ f+ D) |) A+ _2 P9 |5 w
- (setvar "DIMEXO"0.25)
" b" |, T: Q2 u% V& p% n. Y1 z - (setvar "DIMDEC"0)
: p4 r8 s h) @2 e- f& Q - (setvar "DIMTIX" 1)& m( d$ Y! A$ y; l
- (setvar "DIMTXT" 0.099)* m. {1 ?6 I9 p: G! F' e
- (setvar "DIMCLRT" 7)4 ~/ k, F: G7 }( t; y+ f
- (setvar "DIMTVP" 1); n; `3 j) X( \! Q0 A$ u( A8 u
- (setvar "DIMJUST" 0)$ h& b; ]; V8 `+ x% H5 G t9 p
- (setvar "DIMTIH" 0)
2 E- f8 H0 B T1 W8 N" B' Z8 e8 O - (setvar "DIMTOFL" 1). U8 r- Z) T# f' I
- (setvar "DIMSCALE" 1111.1111)1 V3 v: B6 @, N" T( {* F
3 E: t0 D9 ?. t _! B4 ?- ( l" r5 t5 V- F5 I1 d6 _5 ~2 D6 r
7 K& k0 K a; d% m$ j, I* l9 p- (defun c:zp () (command "'.zoom" "p"))( v. \( Z2 @; t9 K _. U" o
- (defun c:zz () (command "'.zoom" "p")); t! M. m7 Q2 \6 x$ n
- (defun c:ze () (command "'.zoom" "e"))9 w6 ^4 ^ I1 ^* {+ }
- (defun c:za () (command "'.zoom" "a"))( N2 _0 k' k! m
- (defun c:zd () (command "'.zoom" "d"))6 |& H% ^! Y3 n' K1 }; V: E
- (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))+ G* X! g* |; {! z# m
- (DEFUN C:ZX () (COMMAND "ZOOM" "2X"))# m& \7 `$ [8 J. A" f. L
- (defun c:de () (command "ddedit")(princ))$ V6 ]$ p) b& \
- (defun c:dda () (command "Dimaligned"))
) [8 k! \& I- L( j6 ~ e7 E1 s - (defun c:ddb () (command "Dimabaseline"))
6 ^" a" S. s9 J - (defun c:ddc () (command "Dimcontinue"))
( Y5 _& J0 F6 n( |/ Q V0 ~4 \ - (defun c:dde () (command "Dimtedit"))* e! x8 g& s% n
- (defun c:ddf () (command "Ddattdef"))
9 B1 G0 ~# }) a0 I - (defun c:ddi () (command "Dimdiameter"))
/ X* O! ~" ?* \ - (defun c:ddl () (command "Dimlinear"))
7 ~, W4 U4 B$ b6 E, Y - (defun c:ddn () (command "Dimangular"))
$ w3 C2 ]6 _0 i - (defun c:ddo () (command "Dimordinate"))
5 a! V7 y8 p3 A - (defun c:ddr () (command "Dimradius"))
, \# A2 z; y u9 D7 Q/ `8 S - (defun c:dds () (command "Dimstyle"))* _9 q/ z0 y0 @9 y5 x3 g
- + p; s- I1 ~1 a
- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ)
0 S. U! H) [% f - (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ). x/ L$ C9 S' Q3 L; B: P
- (defun c:UU () (command "dim1""update""all"))* @$ w4 t1 L- Q6 b
- (defun c:ded() (command "dim1""tedit"))
; d, ?' x1 B: s G% P# C - (defun c:da () (command "dim1""ali"))
8 w( M( R! F6 @. O: L6 J1 Z1 E, B9 l - (defun c:dll() (command "dim1""l"))
( S; x i+ e: r$ d1 y - (defun c:dan() (command "dim1""an"))
+ z6 B7 g' k9 ]! U# t - (defun c:d1 () (command "dim1""ra"))) w W! ~4 t8 \2 @: v
- (defun c:n () (command "dim1""new"))
% i9 u/ e: o; D5 j9 H# p6 O' H - ' ]6 g9 x7 K; E- B; V/ g9 b- P
- (DEFUN C:PE () (COMMAND "PEDIT"))
( b/ ~8 F$ l" D - (DEFUN C:PL () (COMMAND "PLINE"))
5 a/ W% o% F# @: h8 w - (defun c:dd () (command "dist")(princ))
1 Q7 Q( y! E$ Y( M, i$ ^ - (defun c:w () (command "pedit" pause "w" "au")(princ))
( z3 E2 C+ U& q - (defun c:pg () (command "polygon" "polygon"))
2 x4 L( V N5 c, \: q/ L - (defun c:el () (command "ellipse"))% ?# `) @0 V$ d& f
- (defun c:xe () (command "explode"))
n: Q/ c0 F& J) G1 }" ? v! Q - (defun c:eex () (command "extrude"))
, }1 X9 v3 j$ f/ r2 r& R: p - (defun c:xg () (command "xline""a"))
" k4 K2 A5 J: ?) e% n - (defun c:xh () (command "xline""h"))! y) i$ [, \- ^
- (defun c:xv () (command "xline""v"))
; p+ g% t4 _5 d* Q4 M7 c - 5 a3 A+ T' y. z7 y9 C6 j" ]
- (defun c:oc () (command "osnap""cen"))
! e1 M' E3 r4 ^$ [6 u4 i0 k4 n' K# M - (defun c:od () (command "osnap""nod"))/ v) `5 v: Y# z/ R
- (defun c:oe () (command "osnap""end"))
/ X ^% P x- e2 V - (defun c:oi () (command "osnap""int"))
t' G1 W5 ?* g2 B- I3 q! i - (defun c:or () (command "osnap""per"))
0 Q& j4 ]$ o8 r: ~) x - (defun c:on () (command "osnap""none"))' ^$ j3 H8 L- r+ `
- (defun c:oq () (command "osnap""qua"))
; a4 M( w$ U: g; L1 L" u - (defun c:om () (command "osnap""mid"))1 G% R0 ^- P6 o) P! f2 m- j7 H
- (defun c:ot () (command "osnap""tan"))
( Q5 V9 M" Q% A( H - (defun c:oin () (command "osnap""ins"))% I. a4 T( ]2 S2 E3 ~! \. {7 K m- o) w
- (defun c:oa () (command "osnap""nea"))
* T5 S; R+ `" w - (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ)). X& s( l7 I) ~7 X z
- ;(defun c:du () (command "dim1" "up" "s" "pick" "other"))
3 T( d. J+ E' i: i% u, j+ x - ;(defun c:nn () (command "new" "y" ))
5 ]" b+ D6 x; v8 t+ O
6 ~' V* _& ]" r ^- (defun c:/ () (command "limits"))
0 M7 r- R* m/ V) ~8 l$ j* y: `, \ - (defun c:`1 () (command "region"))
1 L- M* `+ t( \' X - (defun c:`2 () (command "subtract"))4 X& s b4 B+ C9 L5 Z/ {
- (defun c:`3 () (command "union"))
* G* ^1 F) h8 I - (defun c:`4 () (command "intersect"))# {/ L# \. X7 _9 j6 m
- (defun c:`c () (command "cal"))2 \6 M0 ^# I S" c# A! S
- (defun c:`g () (command "Polygon"))2 c$ h }: E6 ?/ z1 Z3 V( C9 C- n
- : ]- b9 ?6 D0 y2 R- @. U
- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))
0 I8 _3 U$ Q% n& C - (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ))
O, X# i p% H) D) K - (defun c:ip () (ssget) (command "print,_plot" ))(princ): C. B% |3 m, i- R9 ~: i+ [+ r
- ( x( a+ V& d; e7 X% C. o
- (defun c:ddm () (command "ddlmodes" pause))
|7 U3 i$ [5 g( X% \ - . A; j' E2 ~# a0 `
- (defun c:sha () (command "shade" pause)). v d% {4 |0 i$ X& C4 U& L
4 T( P. y8 G! R$ N, B( E4 f- (defun c:sr1 () (command "surftab1" "p" "" pause))
) M* V! F" j. \6 o0 }. ^ - (defun c:sr2 () (command "surftab2" "p" "" pause))$ E7 d: r0 b1 j* X4 r
- - M- [5 ~# C( a5 ?
- (defun c:ad () (command "audit""y"))2 ?! n5 c' |5 V6 c" g
- (defun c:q () (command "quit"))6 E0 w; i0 x* g) k
- . p7 c' T( e, X2 U# m
- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))
$ E# P1 c6 C+ ^ - (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))4 d7 K+ x6 w0 t8 h& p$ d
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
3 y% d5 G3 c; p5 x - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))3 D' {5 ?$ e, A
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))
$ p+ A# v8 C3 m - (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))
5 Z2 c0 H+ l8 R7 u - (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))* A( O. h" N1 Q' b
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
; B# D+ m6 W. W' t7 V5 W - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))- o6 b. R: f$ m' D+ |
- 6 s. q1 H) P* D0 E3 V8 |: z, n1 I8 `
- (defun c:u3 () (command "ucs""3"))
- x% ]( z4 V/ O - (defun c:ue () (command "ucs""o""end"))
: M, u! B6 W; W$ ]9 a. B: ?4 k6 r - (defun c:ui () (command "ucs""o""int"))6 {/ z) d7 @% Y% A4 C i9 H. R: V
- (defun c:um () (command "ucs""o""mid"))% ^) A. A4 W, o$ Q0 k
- (defun c:uc () (command "ucs""o""cen"))
& S) C6 B* c" W - (defun c:uq () (command "ucs""o""qua"))
, j# |' r( i5 \3 u( y5 s - (defun c:3s () (command "ucs""3"))
8 }2 U+ X% L) M3 n( m' B - (defun c:sx () (command "ucs""s"))
- b; f! v% V5 f }& V - (defun c:sf () (command "ucs""o"))
U# G2 g- ]/ `7 d# q - (defun c:sz () (command "ucs""p"))4 l% X' M8 ?. P2 Z: y* q
- (defun c:sr () (command "ucs""r"))3 S8 E& Z9 z" ~, {
- (defun c:sw () (command "ucs""w"))0 k7 E- ^0 `. \8 b' R
- (defun c:fv () (command "ucs""v"))
" @0 a" W6 X: a% \2 y - (defun c:ux () (command "ucs""x")); x* {) x: N( P
- (defun c:uux () (command "ucs""x""90"))
! i/ B, q0 E7 n - (defun c:xxu () (command "ucs""x""-90"))+ b0 z1 J3 a. S6 ~+ Q5 S6 Q. o
- (defun c:uy () (command "ucs""y"))
, D1 a! f8 F4 @8 }) D, b$ m% } - (defun c:uuy () (command "ucs""y""90"))
5 @2 X" X9 D, z) H0 ]' t - (defun c:yyu () (command "ucs""y""-90")), h( i/ x& V+ h6 j! f9 h% }
- (defun c:uz () (command "ucs""z"))" g; f% ]8 c$ _1 F: |- O
- (defun c:uuz () (command "ucs""z""90"))
d8 u: z% F2 T - (defun c:zzu () (command "ucs""z""-90"))1 X+ @3 O+ h6 }. B: N" `
- (defun c:uci () (command "ucsicon" "Properties" ))(princ)3 {; Z* ]+ f3 A) \
- (defun c:ucm () (command "ucsman" ))(princ)/ ~/ T. g2 ?" L3 y" }1 C' n+ o
6 f& L# T& w; @( s' B) u- (defun c:sa () (command "vpoint""_non""-1,-1,1"))
2 Q1 e) h: [7 c, ^" _6 a7 l - (defun c:sd () (command "vpoint""_non""1,-1,1"))* M4 x _3 M0 h* x. U0 b3 D
- (defun c:se () (command "vpoint""_non""1,1,1"))
: ^# l9 B5 C: h9 y% R, S - (defun c:sq () (command "vpoint""_non""-1,1,1"))
" t# R$ o( @, w, o1 I - (defun c:vc () (command "plan"""))
% ?, d4 z, d; m7 u+ w. [+ D J - (defun c:vd () (command "dview""all")). G6 B% I, Z+ B: r' V
! m$ Y/ f, P! t- W8 q- (defun c:TT0 () (command "tilemode""0"))6 B Z0 J7 W% F
- (defun c:TT1 () (command "tilemode""1"))
6 ~2 I$ E1 X$ b, F u( n - 1 A9 M/ F- V& F/ C3 R
- (defun c:vt () (command "vpoint""_non""0,0,1"))6 I7 K3 E# H3 m
- (defun c:vb () (command "vpoint""_non""0,0,-1"))' T$ ^' i/ G: \4 }, B
- (defun c:vl () (command "vpoint""_non""-1,0,0"))/ x4 C" n5 @1 u+ M4 [+ Q
- (defun c:vr () (command "vpoint""_non""1,0,0"))
. W1 F6 {3 H `1 |0 |8 H+ A- o - (defun c:vf () (command "vpoint""_non""0,-1,0"))# N% Z# ^1 X! ~0 S) U6 H" j) h) f. q
- (defun c:vk () (command "vpoint""_non""0,1,0"))
: V; X' n; T3 m2 ~6 O) R9 L6 H
) i7 g; e+ Q- l3 w6 c4 U K8 D! `- (DEFUN C:MM () (COMMAND "MIRROR"))- T4 I1 n) u& z/ O7 \4 d, Q
- (DEFUN C:MP () (COMMAND "MOVE" "P"))! i- B7 G W# g' x+ ^: X! M& d
- ' k, x3 ?2 T/ c/ U8 E7 ?
- (defun c:mee (/ a)
8 F9 S$ t6 j/ G U* d2 k. H! Q - (setq a (ssget))(command "move"a"""end"pause"end"))% B/ Y: ^8 n' g! Q5 x3 k
- (defun c:mc (/ a)
! |# J1 i* ~7 ]1 T - (setq a (ssget))(command "move"a"""cen"pause"cen"))
2 f% D3 l+ h1 I' a - (defun c:cc (/ a)6 K* a: `, @+ b/ a! X. u
- (setq a (ssget))(command "copy"a"""m"))
% u4 o& A ~7 z - (defun c:ce (/ a), r% j0 k4 D ^4 m, z; v- r
- (setq a (ssget))(command "copy"a"""m""end"pause"end"))
% h0 r1 ~( T# f! h/ B - (defun c:cn (/ a)
3 T6 u) r+ W" A; w0 F( ?2 F0 ?6 M - (setq a (ssget))(command "copy"a"""m""cen"pause"cen"))1 G* |3 D/ t( I4 E6 m5 @
- (defun c:tl ()(command "trim""l"""))
+ }; p! r9 [( t" R/ A/ c - (defun c:tf (/ a)# x% ]9 Q' X `/ L
- (setq a (ssget))(command "trim"a"""f"))
: ~- ?/ T- ?' r B4 M% Z - (defun c:el ()(command "extend""l"""))+ C3 r" [2 t# C9 I- Z# m3 f1 {& x
- (defun c:ef (/ a)
' u$ P7 y* w3 w) h8 W5 M" }9 b- }2 _3 Y - (setq a (ssget))(command "extend"a"""f"))
; F6 c. b- |% ~ d
/ t4 n0 s" n! R- _0 w- R7 t1 n2 Q5 b# G- 8 _: k- U" S$ ^; Q
- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110"))
7 b" `$ E( B, H3 q8 l2 P) z6 A8 d - (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))5 y$ D; d% n. p9 m7 {8 n3 O
- (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330"))
6 V6 m7 I. T" e3 ~) c" Q7 g+ i/ d1 r# E - (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))
5 w, F+ U9 d, D S/ Y - (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55"))
8 W* w' X% V8 k - (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600"))' u, Z2 S8 e5 u2 r a b
- (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))
; G6 ~9 h' d6 Z' M0 N - (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))
( w% b1 n" t( c& \$ l. g9 i6 H - (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))" O4 N9 H! ^: j0 p3 r% Y! F, _
- (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200"))
; v$ P: x' k+ k4 f: u2 ] - (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))
; E1 g/ U; C u2 N" @2 j - (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))* R) ^: G6 A9 ~, U4 s8 b5 o+ n: K: X
- (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))
: {& b$ a1 i- T' d - (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))
- y# h9 k* A M* k2 @0 S0 n% ?% O - (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))) H$ `- W( k3 ^
- (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))# n+ B- Q$ n: q
- (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000"))1 W/ v. p( M# I+ Q
d1 b) i3 q. _- (defun c:mla () (command "-mledit""av"))
1 n( F7 S' G* m! g1 j - (defun c:mlc () (command "-mledit""mc")); f8 b* Q6 b! F0 B* z+ c
- (defun c:mld () (command "-mledit""dv"))
( n& ^. y- v5 ^) Z( Y - (defun c:mle () (command "mline""end"pause"end")). I1 R! ^; h H4 h
- (defun c:mli () (command "-mledit""ca""int"pause"int"))/ S- t( ~+ }4 r0 ~- L3 U6 J
- (defun c:mlj () (command "-mledit""cj"))
- {# W4 I! U% o+ y. \0 R - (defun c:mlt () (command "-mledit""mt"))9 z" I! w! X+ O: c+ P: U3 u- S w
- (defun c:mlk () (command "-mledit""ca""end"pause"end"))7 U) X9 M1 K! \' N$ w2 W5 z3 q5 m
- (defun c:mlw () (command "-mledit""wa"))6 N3 s2 V0 B0 i4 f! A
& G M6 P; \9 y3 J% G- z C: M* }- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA"))# C' h) F9 ]1 I. c0 ^/ Y- x" T
- (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA"))( k5 T+ e' s' k/ C( }6 w* C7 Y4 D
- (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO"))
, F& _1 \ u. X0 E1 O - (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D")) u" h* j3 `' h
- (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z"))
: V& N0 W; ?- E$ l
+ @. g, x; C# j4 B0 D3 F6 S: E7 F- (defun c:p0 () (command "pline""""w""0""0"))
) H0 _ E# a0 w0 V( r4 o - (defun c:ot () (command "offset""t"))
, a8 H' q; d, f) @6 f3 O - (defun c:t () (command "mtext"pause"j""bl""h"pause))) C6 I) ]4 o7 k1 q& n1 z& ]3 e/ ~
- (defun c:uo () (command "ucs""ob"pause))
- |' ~/ w# U, I' Z6 ^6 ^7 L - (defun c:f0 () (command "fillet""r""0"))
" p8 c4 f$ y+ T# M2 }2 K - (defun c:fr () (command "fillet""r"))
8 y0 a! X/ j. L* I8 s$ s
( z2 x( L h! l0 E$ \- ;CHAMFER
3 E& z4 d) i% A' m3 N" D! L0 Q - (defun c:cf () (command "chamfer"))
0 M$ h( s3 ]2 a8 [ - (defun c:cfd () (command "chamfer" "d"))/ Q3 N4 l } k0 G
- (defun c:cf0 () (command "chamfer" "d" "0" ""))
6 ^1 W4 w. g5 d/ H& P9 `# X
2 R; X) m1 h8 P4 \- ;FILLET, k# \# f5 X1 P4 O2 m; v9 z
- (defun c:f () (command "fillet"))
* A# J2 R& r. o+ C$ s k7 w, ` - (defun c:fr () (command "fillet" "r"))$ Q$ |: f* C+ e- C6 V
- (defun c:f0 () (command "fillet" "r" "0")). e. w8 Y: m% J& `3 P9 ~5 Z
8 ^5 h+ _9 s2 L+ O, C, D+ c2 A" |- (defun c:OO () (command "oops"))1 a5 E9 Y: R) p' `3 k3 \
- (defun c:dln () (command "dimlinear"))
% K( _6 H; s4 L% q, h - (defun c:dan () (command "dimaligned"))
* ^" u9 A+ [. q, \1 p9 J) Z" L - (defun c:ddc () (command "dimcontinue"))% T1 A3 Q5 z0 z) f, B/ x
- 5 h1 U! E1 c0 x) D
- (defun c:sc () (command "scale" "auto"))
3 J! t! U0 B7 M2 b - (DEFUN C:XO () (COMMAND "snapang"))
; b4 p6 t! a( w# P) O; t - (defun c:cc (/ a)
7 }% S7 J* V- a' b$ A7 ? - (setq a (ssget))(command "copy"a"""m"))- T+ `) [3 E' v# Y3 H
! |. A. }$ t8 Z0 Z4 ~- (defun c:PJ (/ a)
; ~! ]2 U" C( m4 I% Z+ F - (setq a (ssget))(command "pedit"a"""j""all""y"))% [/ b+ d8 X4 a# l& f
- (defun c:JJ (/ a)
) ^1 \5 g- u; Y' {/ z2 E' c1 w( Y - (setq a (ssget))(command "pedit"a"""j""y"))
\4 S8 v0 t+ ?9 B) H, P M- o - (defun c:TN (/ a)1 L7 S/ y5 G: o
- (setq a (ssget))(command "change"a"""p""T"))
( C& Q I+ Z5 V9 d% {% O - % [; U9 k! e! p( ]
+ t6 o1 G5 V# v% G8 Q u* f- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD=========================
9 H( n' h7 b; |& T
1 g' ^7 ~/ g' L4 E. t- (defun C:IB ()(setvar"cmdecho"1)! n3 ^ U$ ]4 i( G
- (setq pt(cadr(entsel"\nSelect Block:")))
1 e7 e( k; G( Z( k - (setq e1(ssget pt))
# A. @8 F/ K) }; i - (setq e2 (entget (ssname e1 0)))) K; b P+ c8 O( b: W, i3 s
- (setq blname (cdr(assoc 2 e2))), ?! y# b) \5 P
- (setq oer *error* *error* err2)(command ".insert" blname)), ~6 e6 O$ r% H1 ?3 Y6 j+ j9 x, h
- 6 r6 T6 V- [4 K* ^ E: i
- (defun c:II ()
2 q2 r( w% a: F9 G1 a, s5 N. C7 g - (setvar "cmdecho" 0)
( _4 j& {3 V2 ]; R1 c W - (setq olderr *error* *error* myerror)
. S* d; h+ E0 U/ c - (prompt "\nSelect objects: ")
1 |( s0 Y3 h4 Q5 a2 T* y( ?+ m - (command "select" "au" pause)3 \2 `9 b P7 a( I& w7 j5 w- M
- (setq sstxt (ssget "p")
. P. I7 e$ E* ]( a4 Q3 U - sslen (sslength sstxt)
/ a" F3 u4 Y+ P7 u8 Y - ctr 0
' M( C5 P+ k6 E2 f e - )
; W- K; b9 _4 d# ^ - (command ".undo" "mark")
6 t9 C) y0 T6 U; d; e9 a. }. Y - (while (< ctr sslen)
, u' D) V* K- K0 g. c) m" ? - (setq listxt (entget (ssname sstxt ctr))" {/ I, N" N9 l$ X; l
- txttxt (cdr (assoc 1 listxt))& M* r) F0 u! P! l: C
- enttxt (cdr (assoc 0 listxt))' ]8 w0 t$ \* y0 j* N
- ): P3 O; k2 p& p' c2 C. L1 ?- m) [
- (if (= enttxt "TEXT"). b' J P( T5 C+ e1 f `& X+ Q6 {: {
- (progn/ h% a4 K/ s; \! X
- (setq testxt (substr txttxt 1 3))& r" I7 h$ K! E& P
- (if (or (= testxt "%%C") (= testxt "%%C"))4 l P3 P) `7 z7 b, P
- (setq newtxt (substr txttxt 4))2 c2 \ R$ u; x+ c8 F) T
- (setq newtxt (strcat "%%C" txttxt))
, X# e8 Y" e# e+ j7 z! T - )4 ~. l( M8 p+ J8 a) o- b2 L3 A
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
3 e! q) Y$ @0 [. }6 R2 p0 B: V - (entmod listxt)0 \6 a, R+ a* P( A+ V3 o
- ). {2 W% X/ A* b1 {
- )0 k* C& i! I& D3 X. T+ I# M/ m5 v
- (setq ctr (1+ ctr))
$ o7 B7 I8 H0 ^8 l* y, o3 v& r - )/ o1 F F6 \% n% Z l
- (setq *error* olderr)0 {. _, i: v9 z
- (setvar "cmdecho" 1)% Q6 E. [# T4 y& K0 T8 N
- (princ)
. U3 y6 E. u4 V1 O" I' F6 i - )
5 Y; k0 b. e# j6 `5 S% _
8 u8 h$ z3 E' g2 @3 y- (defun c:DG ()$ N x; U' Z% _9 `% Q5 d7 p# ?
- (setvar "cmdecho" 0)
5 N$ k' O1 k8 R2 j# `9 F2 `/ B3 Z - (setq olderr *error* *error* myerror)
6 m" ?* x- P) @) W3 A5 q" V - (prompt "\nSelect objects: ")/ r0 F# w7 x& g1 w
- (command "select" "au" pause) ?- o3 P+ @" t* y( T
- (setq sstxt (ssget "p")
$ }1 H: v, {/ S - sslen (sslength sstxt)
+ @4 ^2 h, E( x/ E X; ^ - ctr 0
& g1 j3 v8 `/ ^ - ); A4 f, m2 ~/ w$ f9 w6 u0 q* }
- (command ".undo" "mark"), Q& T O- M& k$ N
- (while (< ctr sslen) p3 ~ {( Y5 S2 a4 C% J
- (setq listxt (entget (ssname sstxt ctr))
9 ?4 {# _% v1 ?$ o9 g t6 m - txttxt (cdr (assoc 1 listxt))
3 S( ?% C. Y6 D. G3 B - enttxt (cdr (assoc 0 listxt))0 ^3 K& R# f+ r4 }/ @6 ~
- )3 E B: ~/ J# x7 m; w
- (if (= enttxt "TEXT"), t, t! d$ o" r4 ]# J
- (progn
7 c0 f( ^% d6 S1 H1 ~2 W! ]) I7 C, K - (setq testxt (substr txttxt 1 3)): S W9 ]5 p: @) u0 O
- (if (or (= testxt "%%d") (= testxt "%%d"))
v9 ], B# D0 U - (setq newtxt (substr txttxt 4))9 ]8 O6 j% d+ z8 B9 R5 d
- (setq newtxt (strcat txttxt "%%dC" ))) n/ P8 ^ ] n8 g% `
- )6 \1 @+ p1 j/ n0 D- x9 ]* r2 [7 B
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))* H C; V6 P& y9 P, u8 J: I
- (entmod listxt): N- {7 h6 F2 Q* Q* c2 e3 R3 {
- )2 O8 m: B, W; U+ ]# X7 Z
- )
3 }8 h: X2 s& g6 g; s* V8 Y - (setq ctr (1+ ctr))% J% K. U2 O% t* D
- )5 k9 k4 q, j I) Y4 a* _
- (setq *error* olderr)
+ ^+ @0 C4 ?& o7 a& o% u - (setvar "cmdecho" 1), `' ~% F+ |, Z: i$ h
- (princ)
7 j" `# S& H' U: X) Q; q8 v. s* c - )
" w) j8 x( O: n( I- C7 }5 k- n5 y1 T% K0 b
9 G3 Q! C* D. b6 [3 J# y9 D- (defun c:PI ()
8 l% Z1 Q) R5 }, i9 t) ^ - (setvar "cmdecho" 0)
& s0 p G3 E) t/ v - (setq olderr *error* *error* myerror)0 {2 j0 B& \/ _, E# K1 K
- (prompt "\nSelect objects: ")
! W8 K; x+ i1 k. M: h7 @" S6 S - (command "select" "au" pause)
- U% w; R: W. x7 m1 T) u - (setq sstxt (ssget "p")
0 g7 u4 |, X# Q" e - sslen (sslength sstxt)
+ Y+ t0 P# H S2 \4 a5 ]( [7 S8 k - ctr 0
' p* S/ C: Y2 w, S( ^6 A5 u - )
8 b" n# o% m; b8 h" ?) o- c - (command ".undo" "mark")
0 S3 N' _3 ^8 A5 ~* `# S: W - (while (< ctr sslen)% i0 n; y2 {3 {+ G* ^
- (setq listxt (entget (ssname sstxt ctr))+ j1 p% n8 i% D
- txttxt (cdr (assoc 1 listxt))
) q# X& M* ?1 R; Y - enttxt (cdr (assoc 0 listxt))
. ^6 O1 _+ r9 ~ - )8 A9 A% I A8 b- U- b0 Y$ g/ E U
- (if (= enttxt "TEXT")
! ]* Z" d0 C& L5 T, t, R- ] - (progn
/ N; l( J$ S. @* k - (setq testxt (substr txttxt 1 3))
8 D) P* h, _5 e9 Y - (if (or (= testxt "%%p") (= testxt "%%p"))6 Q: [, O9 |6 R
- (setq newtxt (substr txttxt 4))
# B+ E+ g7 H4 l7 G - (setq newtxt (strcat "%%p" txttxt))
0 [& u7 V! v; L- K9 [8 X/ k* Y - )
- ]+ t% A, d4 ?1 Y# H9 v - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt)). `$ D8 ]% F l4 j7 P
- (entmod listxt)6 ^$ u# ^1 m1 D5 s& L& p1 O
- )
& R4 X2 V0 z7 i. J- x* U( i; D - )
! `6 \- z' G) K3 e4 R$ \3 g - (setq ctr (1+ ctr))/ ^# r+ b% G. \( Y
- )5 t1 }$ u0 Y5 i+ {7 Q& Y
- (setq *error* olderr)' y6 _2 i: Y0 x
- (setvar "cmdecho" 1)
[7 O* f4 M' Z0 O1 q - (princ)
. {7 S; n8 ]6 e - )* V' m$ r" H7 ?
- & F5 `' F) B* m0 R! E
- (Defun c:CB (/ a)
9 f" C4 u: I9 \. R* M1 | - (setq olderr *error* *error* myerror)3 |6 A. v1 L m
- (setq ocmd (getvar "cmdecho"))
$ B% ^- f/ L9 R0 L& b - (setq oblp (getvar "blipmode"))/ {# Y+ S4 w! { w, ~( _8 `$ F
- (setvar "cmdecho" 0)
0 ~; }5 i( j8 ?4 V; K$ Q5 L - (setq a (ssget))
9 D. n6 {2 @1 {2 U# W - (command "CHPROP" a "" "C" "bylayer" "")
7 o/ |* {5 Q& E8 f! ^ - (setvar "cmdecho" ocmd)
5 L; _" q' d' _" T - (setvar "blipmode" oblp)
+ \3 V% N* n4 Y7 p* Q - (setq *error* olderr)% B' M: {( u+ y% h! t
- (princ)& ^6 f: x4 P3 T/ L9 O
- )
0 C) ?, [5 `' o: j+ r
9 a8 n* N9 G) G9 k1 Q; I, |4 z- (defun c:LCC (/ co43 obj23 la23)) j3 @, j2 o2 S5 L1 D4 R. S6 m7 p0 o8 R
- (setvar "cmdecho" 0)' l, P/ e! i, r/ J4 F
- (setq co43 (getstring "\nNew color : "))" l. ?9 v o' B/ e. ]5 Q" v
- (setq obj23 (car (entsel "\nPick object on desired layer: ")))
+ c+ C7 }1 G( j - (if obj23 (progn- W% x* q' K: W2 ^7 l5 G
- (setq obj23 (entget obj23))
: n" g# X4 L+ w/ O$ g G% _) v+ { - (setq la23 (cdr (assoc 8 obj23)))
$ n* {& N( h; I - (command "layer" "c" co43 la23 "")( u J, M/ J# ?, ~7 p2 q
- )
# b8 @4 f" a( b. H1 z# | - )4 E5 m& P+ h) M
- (prompt (strcat "\nLayer has changed..." la23))
8 [2 E1 h/ {, _5 }( Z - (setvar "cmdecho" 1)4 a0 g) x* P/ [! s: s6 V! w
- (princ). V8 P! Y; Y) N$ }- e
- )
7 b' b" \; X0 e5 J% l1 m- l. l - }+ C( E' P4 Z' P4 `2 N
- (Defun c:RP (/ a)
" H& S/ d6 U+ Q* W' L& _2 x - (setq olderr *error* *error* myerror)
8 M9 j5 W- @$ G - (setq ocmd (getvar "cmdecho"))
3 f$ M0 a' Z# y& \ - (setq oblp (getvar "blipmode"))
) b- G+ X5 V: ?9 { - (setvar "cmdecho" 0)7 U ~9 w1 J) o7 D5 T# @( C
- (prompt (strcat "\nUSE: Delete object(s) belonging to") ~7 ?3 ?% F T' R- u g, m
- " the layer of the entity picked...!"))1 H. s- q g9 F9 B+ h% r
- (setq a (entsel "\nPick the entity with the desired layer to delete: "))
* i9 M% ^1 f5 F - (if (/= a nil)
" F9 w m8 e8 P" [/ k2 m+ [. g - (progn (setq a (cdr (assoc 8 (entget (car a )))))
$ \- {- ?9 t7 f/ d$ J" R - (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))
: S! [( W# Z ]# H - (prompt "\nNo entity selected!"))# v9 w; M5 u9 X! p
- (setvar "cmdecho" ocmd)
9 N) ?& b: J) R j& m - (setvar "blipmode" oblp)
6 a1 u$ m! l0 F& N& ^' Y' s - (setq *error* olderr)
' E% Y- L8 P( W& K! m - (princ) N: _3 x, h- B# L; i6 w7 r
- )
; \9 X/ H3 N/ B
5 ]+ N7 N" K8 [- p& s6 `- (DEFUN C:WL(/ SSET NET SSL M)( z s% g: {3 i% x3 Q0 y
- (PRINC "\nSelect lines :")$ O C2 q7 o0 ?& X$ V6 Y* |/ H# y
- (SETQ SSET (SSGET))5 j! |3 m' v6 F
- (IF (/= NIL SSET) (PROGN7 z' \7 ]6 q, _6 I0 l
- (SETQ SSL (SSLENGTH SSET))6 h; i/ H( q9 |* t
- (INITGET 4)* L r5 ^% a6 u7 ?% B8 P0 x
- (SETQ NET (GETREAL "New width : "))
{1 m4 V* ~. k) }: H: R - (IF (/= NIL NET)
; T, _4 Y3 O: \; q - (WHILE (> SSL 0)' s. ^0 _3 m* b: A
- (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) ))
7 ^8 [( |% f6 A2 ` - (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE") 9 S/ s9 e, w6 z/ g! r" ?
- (COMMAND "PEDIT" M "Y" "W" NET "") & ?* a w# M6 p; z
- ) [ p: E- W5 W( ]" [& |0 o, F
- ) 7 l# e7 ~7 J" V: a7 q& [
- )))
" U! m% @* I" s2 m8 z! O c& T/ @$ P - (PRINC) g! q# G# z) v& J/ v0 _
- )3 P! }% y3 P5 u: V7 H
- 0 g3 P l* M. ^% n* |' |
- (defun C:MML (); _$ i+ e3 G# \7 Q& ~ ?0 W
- (princ "\nSelect objects to move to another Layer.")
! U' J4 t4 w$ U a3 y - (setq ss (ssget))" A* Y! b% |1 s8 m) g1 X k
- (SETQ UL1(GETSTRING "\nLayer to move entities to : "))- I r0 f+ T7 _8 {( `( X! A# ]
- (setq counter 0)
9 A7 v! ^4 d& T. ~+ }" l1 U - (prompt "Moving to layer.....")(princ ul1)# P, j' J! z, a! c H
- (setq e (ssname ss counter))
- t( j( g3 E: d3 {3 L4 r0 M - (setq l (cdr (assoc 8 (entget e))))3 v( B7 [9 \, @
- (setq S (ssget "X" (list (cons 8 l))))
, m2 ^" b+ i( h: r2 l( v3 [ - (command "CHANGE" ss "" "P" "LA" UL1 "")( G/ v& t4 Z+ o9 l! E w! w7 x2 I# v) `
- (setq counter (+ counter 1))5 D/ d( U8 |( L: G" u. p
- (princ)4 s, A+ s& D0 s* W {8 K! v
- ) ' d9 P0 O }/ e& m. g5 ^
- 8 @! M* m, ]" G8 f% m: t
- ;;; ================================ GHI CHU ============================8 h: c4 N, _ E' {$ v$ c( n
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========% |( V6 A2 S' ?8 R* R% B
- ;;; =======================Thuong Dung Font Romant.vnh===================' M1 g) ?5 K) p9 C& w% A
- / u; b0 `* Z( k+ j* h7 t2 ^) ^* Q
- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1); {% L. j5 B9 @! k
- (setq oer *error* *error* err2); I: G' d- p" T/ Q ~
- (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")+ u M) I; T" A7 ]6 o" M1 f- b
- (SETQ Cpt(GETSTRING "\n (ROMANT-vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (UNKNOWN-font)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))
( |0 d/ [& g5 U - (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p")), @# ^# w E# }% |' R6 i. p
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh"))4 Q& _6 k E# }' A* M& A
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p"))
' B9 c2 Y: `0 c3 N0 j: P1 j - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c"))
4 \0 q1 D( J) u; j$ a; _ - (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?"))
, U) Q7 N# `, s) i% M7 D& ? - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An")): H7 F7 O: i+ Z% ^. E7 X2 G
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho"))/ c. _1 g' E8 h8 W
- (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`"))3 X! F" g5 v% T7 V4 L; s& t3 _! M% P
5 ?5 ?7 v0 Y. o {0 F# J- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
1 Z9 O' G- l' F$ C7 m" \* t2 O: U - (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))
: ^9 {5 d4 t+ @4 g! u - (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
" [+ R2 r- [8 j% `( F - (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc"))
- d5 A& `% ]( c0 v& J$ W - (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ")). e0 c- ~- C2 g' c, k( l
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))
' i) e" ?- ~" W: E3 L - (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
# i/ {' W' y9 ?5 Y, o! C - (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
* i* q4 e. L7 x& G - & I+ ^" Q' P9 _1 b5 R$ ]( `
- (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))1 s2 K2 Q* S5 G0 F5 }
- (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))3 `1 D- N( S3 u
- (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))
4 e1 B2 |$ A, d Q8 y - (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))
" i7 n9 f5 l& e$ } - (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))
6 w9 [5 x1 k* J) ?( ?6 o6 i - (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))
: n5 y( _4 h- X* I - (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))8 w6 }! H0 Z9 h Q: N
- (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))
# V& Q. ?3 i- f [+ s$ K1 j - (setq pta (getpoint8 ~2 C5 M6 a- E/ E/ N7 O
- "\nPick first corner. : "))3 A! }9 z8 I9 M G; u
- (setq ptb (getcorner pta
5 o5 l5 p, t- j4 ]' s6 ? - "\nPick second corner. : "))
7 k% Z7 F5 ?6 b* j. i/ T - (setq ptc (list (car ptb)(cadr pta)))
6 t6 U* o% o: D! C5 p7 r$ F; B - (setq ptd (list (car pta)(cadr ptb)))
# ~! S0 C# B% t! x - (setq ang (angle pta ptb))
& ]3 U+ B" F7 f - (setq d1 (/(distance pta ptb) 2))" C6 ?: g! ]3 X0 b0 p# ~1 ~7 D
- (setq cp (polar pta (- ang (dtr 0)) d1))6 ?" o) o- J3 p1 Z" ?
- (setq X (distance pta ptc))
1 F/ y' R; O: O9 k - (setq Y (distance pta ptd))
k/ R% ~0 Y( b9 O2 _% ? - (setq X1 (rtos x 2 1))& K2 G5 ]0 j2 q9 T
- (setq Y1 (rtos y 2 1))
/ k) j9 k1 j8 \5 s& A8 I' s' b - (setq rmsz (strcat "(" X1 " x " Y1 ")"))4 w. b( G, h4 \% q) n
- (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))+ o9 z$ R$ b/ ?- `# \
- (defun dtr (angg)% F2 J, T, N' N( Q: I( h; ^
- (* pi (/ angg 180.0)))1 _, T9 e7 c2 N" m' C6 |, J, w, }% k: k
1 o: ]1 T3 K$ n2 b- (defun c:WS (/ pta ptb rmsz pl1)
2 j. W5 ^/ j* R& U - (setq oer *error* *error* err2)
4 j: S |- z7 R; `% U - (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P).")+ d i( B9 Q! o8 z
- (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective."))
1 ~! h: f9 t4 b% z) } - 1 N5 q$ F$ f! s7 Q9 F& D
- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))
; Q9 w* Q& ?+ @2 \& X8 R - (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100"))& d' v, p6 }8 L6 f1 B3 }, Y
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))4 w4 d8 Y3 G) s% N2 ?% j% c
- (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))' i( x/ f7 y1 A9 P
- (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))
( J7 g+ `8 E4 Z - (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))" F4 `, J C Z/ z, s* b
- (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n")) n% U6 {, D+ Q
- " t1 S* |$ Y) ~4 j+ u6 E$ |
- (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"))9 h# V8 R Z: h
- (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100"))8 i* ]0 A C! E
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))1 i: A( r' H$ q) C3 m
- (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))5 w4 ^5 N6 I+ `. W9 B( ^
- (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))
+ o* q. G1 I# D& ^( H' j2 p* T - (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"))' J* o, E$ L J9 R, [ c7 R4 n9 k
- (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN"))
6 ~/ B) [$ M6 W/ s - (setq pta (getpoint7 Z, N0 ~* K- V: R" K& ?9 i
- "\nPick first corner. : "))
8 A4 G" ]0 ^; ~ b* E - (setq ptb (getcorner pta" {, ]/ A. N" c/ H7 h! p8 d( R
- "\nPick second corner. : "))
# F E6 ?+ G0 U3 z - (setq ptc (list (car ptb)(cadr pta)))
7 K$ _* o. C1 p3 z/ t* S - (setq ptd (list (car pta)(cadr ptb)))) n$ v0 w" a7 u
- (setq ang (angle pta ptb))
u9 l5 ~' t, k4 R4 P1 z; _; I) C6 D - (setq d1 (/(distance pta ptb) 2))% d: V" m$ R. E2 k# x' X1 ^
- (setq cp (polar pta (- ang (dtr 0)) d1))
& M9 o1 l" ~- S" M3 Q0 @ - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))
' y$ ]4 S" A) |9 O: i7 b- e S& \7 G: J - (defun dtr (angg): D) F, N. e9 O" K9 O
- (* pi (/ angg 180.0)))
4 g3 Z1 a# Q$ v" u: |% [) q3 ~ - ; y. M' X V. s
- ;;; ================================ GHI CHU ============================% r. u- V' M* N+ S/ j
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
7 H1 R/ g I! G9 N+ a7 V N, V z - ;;; =======================Thuong Dung Font Romant.vnh===================: ~0 g0 n2 F* ~. T
# H( ]. `* C( V% n3 |$ r- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
$ a' F# G$ @, t+ G! p. ? - (setq oer *error* *error* err2)) M( ~( |6 A& J0 ^ X& `( {! Z. w
- (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. ")
6 ?! H4 ?5 l7 X2 V; a ?' `- o0 {. ]) X - (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))
+ D* T3 k, u+ X( _ N - (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p")). E0 K5 O7 P& l j# e" U2 {8 Z& J
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))
- y7 c |. i z6 s9 m! s( g - (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p"))% Z. t" z O* }- z, u' y
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c"))5 o" U( ]3 B# O5 ~+ Y! Z6 e0 }
- (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))
9 K- L( j+ I: b( F/ b - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An"))
8 B2 a/ u6 V6 m! U) @7 y1 [4 ~ - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho"))
% H, B' O4 k/ l1 b7 t - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?"))
5 a- F& @2 S6 b9 ~) h - (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
% l0 L# h8 ]& F% F( h' p - (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))' t! Q6 t; _" b! z; z
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
( n5 E; C) ]. } - (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc")). n- G# P8 A4 s* _
- (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))
& v1 ?2 D6 B# f$ j) ~ - (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))+ M* ]1 j7 x- e: i
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
7 H& |! v/ q+ J2 e- P0 ` - (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å")) ) n! m: U. ] s
- (setq pta (getpoint% v3 Y' d! ^$ n& h# j; N8 Y- A h! w* w
- "\nPick first corner. : "))
8 ^9 _8 Y3 }: {6 o4 M. H$ r8 a1 P - (setq ptb (getcorner pta
/ w: f2 N9 b9 n' L$ X. o* b - "\nPick second corner. : "))& `+ B* y! j$ }3 K/ P
- (setq ptc (list (car ptb)(cadr pta)))0 U/ }/ ^6 d( K6 n- o, i+ w% r
- (setq ptd (list (car pta)(cadr ptb)))
~0 y! S/ P, ^4 } - (setq ang (angle pta ptb))9 O8 C. C3 M* K9 E9 p) w
- (setq d1 (/(distance pta ptb) 2))
( D4 r( P! p8 s$ { - (setq cp (polar pta (- ang (dtr 0)) d1)) ^) x9 Y% S6 C" \! g
- (setq X (distance pta ptc))1 a9 I9 F: _! ?4 B" D( ^; T5 d9 G
- (setq Y (distance pta ptd))) c# V) I' C: k8 N7 X+ H
- (setq X1 (rtos x 2 1))
; S9 t* s# S: ~5 V& e& F - (setq Y1 (rtos y 2 1))# g% s R. O+ c& h
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))
" L( \. u# z0 |! h8 g `3 i - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))# e7 @; H- e8 Z. |, L
- (defun dtr (angg); V0 s" C2 X3 @8 {# E i3 ~# U
- (* pi (/ angg 180.0)))1 J& A* B5 O+ p$ G+ _1 f& L5 ~
- 7 t1 V( w. n( M* u. d6 ]5 e
- ;;; ================================ GHI CHU ============================
$ ]* w1 O+ S; O' r6 _. h0 {$ q% l - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========+ M" d8 O: }. f4 C# ^, M
- ;;; =======================Thuong Dung Font Romant.vnh===================2 R E% @4 h& |! ^' g
; L4 j, U& L- b) l- (defun c:GS (/ a b c d)$ ]& X: T, r# b- p: z
- (graphscr)* w d- ~3 V! w4 R" ?- J
- (prompt "\nSelect text to set style....") S9 ^6 o! Y: P- [* U4 L
- (setq a (entsel))
% Q" x6 C4 Y1 p8 Z - (setq b (entget (car a)))5 w( J3 n0 S6 X" E/ t
- (setq c (cdr (assoc 7 b)))/ _% I# |2 n; T* l8 p
- (setq d (cdr (assoc 40 b)))8 i5 e8 W* E* Q- G! V0 g
- (command "style" c "" d "" "" "" ""))
0 k! x" m$ V) s - (princ "\nType GS to set text style.")+ x5 J9 L; U6 e# G B
- 7 \" m/ C9 M0 Q+ ]% A
- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)! [, s5 b, m" ^. d; q
- (setq olderr *error* *error* myerror)
& e& u) _+ \1 g - (setq ocmd (getvar "cmdecho"))
) @% ]# a( s3 { - (setq oblp (getvar "blipmode"))* I3 y, P0 `7 [; g- |' |
- (setvar "cmdecho" 0)
% v2 @+ l+ P" k5 J - (initget 1) ;3D point can't be null) `/ ]4 V5 R8 b+ \0 g; w+ D
- (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))
/ ^. l$ k3 ?" {9 N1 u - (setvar "ORTHOMODE" 1)- k0 J d9 \5 e) l' J
- (initget 7) ;Length can't be 0, neg, or null
; R" Z) \! e" A- ]5 E$ X - (Setq l (getdist pt1 "\nLength: "))
8 s$ ~5 S: ^. S4 U! ]. \ - (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))
' _; C* z r- A0 X - (grdraw pt1 pt2 2). g. W% Q' G( q8 u& j2 x
- (initget 7 "Square") ;Width can't be 0, neg, or null
* y9 Q( p5 ?5 ~ W& m6 L2 { - (setq w (getdist pt1 "\nSquare/<Width>: "))
: g0 n8 J* ~4 ~# f0 p - (if (= w "Square") ) |1 E3 M6 q1 S
- (setq w l)
8 Z, b3 ?7 ~9 S3 D/ s - )
# u0 M* C5 B9 K+ \ - (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))- Z' H9 k3 l: h0 [) C* S
- (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))
4 r8 }& ~# u1 s! R2 W - (grdraw pt2 pt3 2)1 D6 E5 G& D8 k5 C3 Y1 i( o% W
- (grdraw pt3 pt4 2)
2 w% l* o- r5 A7 H0 V3 d - (grdraw pt4 pt1 2)
- F2 e* r+ W: }( v* i! { - (setvar "ORTHOMODE" 0) u; v& G# m! q( h W" ]
- (command "pline" pt1 pt2 pt3 pt4 "close")
$ A5 d2 p# s2 v6 s' r- i - (setvar "cmdecho" ocmd)8 G; _7 B" b2 d+ d' Q6 E- q E! g
- (setvar "blipmode" oblp)$ K( B; D1 ^& E2 q+ G
- (setq *error* olderr) ; Restore old *error* handler
% r6 ~$ |$ J9 K/ F. c" R - (princ)
( R" C; d7 I; I - )
) i' {0 v, x9 v2 g; W0 ^ - : S+ ~: a5 p& l1 j8 U
- (defun c:SG (/ ent pt1 pt2 ang)
& _7 f; i- D v# w8 w - (setq cmd (getvar "cmdecho"))# c: q |& u( Z
- (setvar "cmdecho" 1)
, c) ]/ k# T# h2 d5 I - (prompt (strcat"\nSnap angle will be set to angle of line"))
! C$ l% j" n3 Q# O% |+ D3 o. N - (setq ent (entget (car (entsel))))
' e2 \. y$ W1 K* [3 Z - (setq pt1 (cdr (assoc 10 ent)))
' w/ C+ \( M8 J - (setq pt2 (cdr (assoc 11 ent)))1 N: E& ~( j9 ]' m2 d
- (setq ang (angle pt1 pt2))- }* J. p2 r+ {) W7 F+ ~
- (setq ang (/ (* ang 180.0) pi))
+ A# I; a; E; S- o - (setvar "cmdecho" 0)
: m% B1 c- [5 ?' T8 } - (command "setvar" "snapang" ang)0 l( B0 h5 y* J" |! }' E
- (setvar "cmdecho" cmd)& h) O {6 I2 ^9 h4 l3 p
- )
5 g! G) D5 j- j4 [. n- ?& q
$ W: A/ H+ Y' r) w1 R: ?. V$ K- (defun C:TG ()1 h' [' i, R7 U8 w; x3 u
- (initget "Increase New")1 Z& _0 j# Q. U0 Y+ S9 \5 `
- (setq ans (getkword "Increase/<New>: "))( V8 Y& g r: b0 \6 h. I$ |
- (modang)0 D+ @+ ` E) s, z3 V
- ). |' ]( ]+ K9 ]
- (defun modang (/ ang ss ca e na ssl)
' n* A; C& ~' n2 u9 Y: c; G - (if (= ans "Increase")
! j9 @" u Q6 M: \# |2 V - (princ "\nIncrease angle for text by: ")5 D# _# u- Y( S( z K# N5 h
- (princ "\nNew angle for text: ")
, r1 Q& w8 @ p' ^1 _/ Q$ z - )% k. F% \6 d' t6 S- U6 H6 d
- (setq ang (getreal))
. o3 a( P0 |5 D1 y$ z - (setq ang (* (/ ang 180) pi))9 @4 A+ l' E; ^% K3 c
- (setq ss (ssget))
/ _1 x/ i; x4 a9 ^/ B# I" \ - (setq ca 0 ssl (sslength ss))
- I+ i: `1 U" f3 T) z7 e5 [; E0 d - (while (< ca ssl)8 W( T$ L9 J) m4 a( K- P" b- b# @
- (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))* y0 M4 ^4 [$ s
- (progn
: y1 l) i2 f1 r/ ` - (if (= ans "Increase")! e! b: t# Y' x7 w
- (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))
. _- E1 A4 @3 k5 e3 ~% ]% K5 a - (setq na (cons 50 ang))% P0 G/ a/ Y# @/ Z
- )
! `1 h. [% z" D& S+ F, w5 v - (setq e (subst na (assoc 50 e) e))
2 D3 r3 M4 M. Q- Q% S: C- ~1 q. h - (entmod e)8 c/ c9 y( I" ?4 p
- (setq ca (1+ ca))
# m9 T0 s) Q$ p8 n+ [7 y: V - )
/ X' ~8 f( m# l2 h% m# _9 c - )
' G% Y& b# x3 n+ n - ); ^8 S# r! x% ~
- (terpri)
/ F8 m% G7 B1 f4 p - )
* c9 y |/ ~" E0 r8 N9 Z7 F - - g' i* x* j4 _
- 4 ~: r" \% U2 q# |+ [, `
- (defun c:WL () S; A8 u; l m
- (setvar "cmdecho" 0)
" S3 ^' K f8 t: L. m' ~5 e* o& \ - (setq a 1)
" R n5 F) f+ z: F5 S/ ]" J - (prompt "\nSelect Polylines to change: ")
5 H& ~' T9 Z* I2 T0 O - (while (/= a nil)$ L9 D) b( y) T/ |( `
- (progn& z- K' \) a8 l- M- y
- (setq a (entsel))5 I u; H* N7 D
- (if (/= a nil) W8 n: K' m. u! m* y# T8 V) L
- (progn- z" i# q$ q" D2 Z
- (setq b (entget (car a)))
3 m( H, ?; ?. T6 |5 A0 [ - (setq c (cdr (assoc 40 b)))
+ J' v4 {8 t* m- y- X( @0 { - (princ c)
" A. y3 b3 U' } M8 r - (command "pedit"a"w""lw""")$ [, L* c# q" v
- ))))
4 ?5 i+ T$ F* ^/ c - (princ)
7 ^5 x, f& E2 f& a [& @ - )% Y' ~- G6 E- |% R' f
- ! D: v- r4 C* `" g& p) [
- ;;; ================================ TEXT FIT ============================
! @* } q' L( V7 p- M/ A
" `1 l, M! L: `% c- (Defun c:FT ( )/ t# E- p+ V& e8 ?: e8 P
- (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )
, A/ V7 C/ Q" U5 E' p' m8 U6 ? - (Defun LL-xyz (arg) (CAR (TextBox arg)) ); Y) Y9 [# r6 |4 N* k" h: C) D/ R
- (Defun UR-x (arg) (CAADR (TextBox arg)) )/ {- T' b- _1 U5 A
- (Defun LL-y (arg) (CADAR (TextBox arg)) )! n6 s/ Q8 t+ i/ x) D& D( g: _- ?. X4 a% g
- (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )
! u# m( ?4 A% A: s" H* G, T/ e" g( H - (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) ), x8 d' }4 y- u* p2 p+ C* W, w
- Textent (If ename (EntGet ename)) )
( n0 O' L% T7 p. } Y) B - (If (= (CDR (Assoc 0 textent)) "TEXT")& ^- Y5 o* ?; V- j9 Y; p0 ?
- (Progn (initget 0 "Start")7 u# A) `0 w9 d8 }& O- r6 A
- (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) ); r: U; g( H& E* m0 e
- (setsnapang Textent) ;set snap along text entity' t! R) |* y( N
- (setvar "ORTHOMODE" 1) ;drag along the text
* b# N% x" e. G# v' f: d - (setq 7 \, J+ f Q* n( f; C
- TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") )6 C/ V* |& Y" D, v) ?( p
- (setvar "snapang" 0)% z5 Q; N" z7 ]& d2 t, U
- (cond% S' y4 s4 o4 e: {
- ((= (type TMP) 'STR) ;;new starting point to be selected
" m! q+ i! K+ P- F. l( o) [" k - (setq Start (getpoint "\nPick new starting point: ")): F! Z/ s, o$ ?( A8 v& U2 a% {4 R I
- (if Start (progn7 }5 x+ U. |( F- h# N' R% H
- (command "_UCS" "_E" (cdr (assoc -1 textent)))5 w; y ]7 C, a- @/ |
- (setvar "ORTHOMODE" 1), J2 T% n2 g q: T; y
- (setq NewPt1 U7 H6 e. R7 k& U) A
- (if Start
2 a8 _! m8 I% U+ Z; A3 ] - (getpoint (trans Start 0 1) " ending point: ") nil ) )
' Z# {" a O: ]& W; \ - (if NewPt (setq NewPt (trans NewPt 1 0)))
* E: P0 g- R& s% M6 h( |% Q& V) S2 p9 n - (setvar "ORTHOMODE" 0). f7 w4 }% ]$ Y; [
- (command "_UCS" "_W") ) ) )* b6 C2 u' n6 ?
- ((not (null TMP)) ;;new ending point selected
0 F! Z; z6 Q# x( S" ^ - (setq Start (cdr (assoc 10 Textent)) NewPt TMP) )
! s( F* S! |2 g$ i$ ~ - (t (setq Start nil NewPt nil) ) )
r+ m: s( A. |" \/ W/ X - (if (and Start NewPt) (progn3 O% @$ t+ z" O! O9 z5 `
- (setq Val (Assoc 41 Textent) ;;current width factor
. j7 X* G# @" {0 O0 y [5 D - Val (if Val (cdr Val) 1.0) LTC_% & v* [' X9 k; [7 F6 q# h
- (* (/ (Distance Start NewPt) NewEnd ) Val )
, F# G; y2 J F$ ~8 o - textent (Subst (cons 41 LTC_%)
9 G7 B- ?, H7 N* C/ A. }- t2 H# V - (assoc 41 textent) textent)) U: G- I) S+ J$ ?) Y2 K2 ]/ }
- textent (subst (cons 10 Start) (assoc 10 textent) textent)
8 i) C' x* |2 p8 M' S - textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )# }* u9 R% W: \0 v
- (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))
& v1 ~7 }6 [5 J' V8 l. V S9 t
1 x! ^2 d. v0 |6 V0 v- ;=====================================================================2 K. k5 y7 a( W& c$ m0 w0 c# e
- ;=========================COPY + ROTATE ==============================
* k9 Y- p5 F* J4 E. Z# E - ;=====================================================================
2 L3 c$ W& K$ p; o, M7 q - . W; O2 o6 R* K" ^, x/ ~8 r( C9 y
- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2)# n) D9 m. _# O7 K7 d V, p
- (setq olderr *error*/ c8 g4 P' R8 I% P9 F3 W3 c' r* n
- *error* croerr); r5 R" h& w" @/ E8 O2 ^; S
- (setq cm (getvar "cmdecho"))
- g( z* H6 U2 b4 |) i - (setvar "cmdecho" 0)
2 t# w6 S( {) _) h - (setq loop t)6 n4 b3 K. I/ P; R' }$ C
- (while (not (setq ss1 (ssget)))). E6 N8 J9 r( H$ @
- (initget 1 "Multiple"). ~% l0 }9 p- u
- (setq bp (getpoint "\nBase point or displacement>/Multiple: "))
& }! g' J: y" w' L/ {# L# r2 m/ I% Y - (if (= bp "Multiple")& l- _" u+ @/ M" R0 \1 z9 T
- (progn& Z/ W# V& {" K$ \1 ~, Z. y H
- (setq bp (getpoint "\nBase point: "))
/ V7 z2 @: y; i) m- ^0 S8 ]' E - (setq mult t)
! B% z( V/ Q% T0 w - )- C+ ~- f' r: F
- )3 a) G) ^+ d! C* I0 ^2 H) `
- (while loop' f( h ~( |+ T, M
- (setq loop mult)
3 p& g6 { @. R% j! ~& e4 b/ } - (setq lent (lastent))9 ^& \ r7 M8 Z) z+ F1 P
- (command ".copy" ss1 "" bp bp)
7 k) m8 z% {' P$ Y: Y* m - (setq ss2 (lss lent))0 c3 S' A6 u* u: |3 X5 v8 H
- (setq lp1 (getvar "lastpoint"))! U+ j! ~" f& m/ T/ w
- (prompt "\nSecond point of displacement: ")* k5 V9 S6 x6 _/ f
- (command ".move" ss2 "" bp pause)7 l) B9 ]* H* \/ E+ H
- (setq lp2 (getvar "lastpoint"))6 j7 N O+ n" F/ n& k
- (redss ss1)
) p( q" {9 i6 A5 `, D - (if (and (not mult)7 W. I; r! G( K1 U
- (= (distance lp1 lp2) 0)
0 e- J7 `" q i+ q) A - )
$ _* T, i6 D/ F7 I2 } - (setq lp2 (getpoint "\nRotation Point: "))& a9 W! u6 p# g! W! I6 f: a* e
- )
* k8 K+ c3 ?5 f0 Q0 I. c7 X2 D0 H$ ^ - (if mult- z I! o2 _# F! Y* b6 Q7 i( {0 U
- (prompt "\nRotation angle ")6 n* Q* }" A# Q& W
- (prompt "\nReference/<Rotation angle>: ")7 t5 M* p) | a: ^5 U5 D+ M
- )2 I6 ~; z7 d' T* K4 v
- (command ".rotate" ss2 "" lp2 pause)
( [- ~3 W' n& J7 | - )* E; ^" z+ h) k* [
- (setvar "CMDECHO" cm)
, @' M( |. k4 q4 E6 d" V - (setq *error* olderr)
3 f, I: b3 F8 m2 X$ V - (princ)
8 I; E, [- j. }0 h% N/ H. h - )
2 J/ ~2 m' M) d) P0 I* a, Q% z - (princ)
+ X; C7 z. ?, e0 d4 D A& q - (defun croerr (s)
& l% n: L. A$ A& j - (if (/= s "Function cancelled")
5 z$ s; {3 |' P& Q# K6 Y# h3 E - (princ (strcat "\nError: " s))
. W4 W7 {! j7 l - )
- [% a: ]. s. C S* {/ A0 F - (setq S nil). }# a9 F, \9 `
- (setvar "CMDECHO" cm)
3 M q) E8 ?5 [. N% o - (setq *error* olderr)
! g8 x( n7 {8 W - (princ)
& f+ Q+ s$ p5 q$ n* s - )
4 T) A" ~! t/ o4 Z0 h5 l - (defun lastent (/ a b)8 G! J' K+ B6 f+ K8 Q3 I8 X5 n
- (if (setq a (entlast))
; ^& l2 H0 d5 C6 Q0 Q0 M - (while (setq b (entnext a))! {0 E2 S+ H/ T) j- x
- (setq a b)
; W( A3 B% c1 x$ `6 p - )
" q- I4 P* C& y3 ?6 z - )0 j' `7 P0 T8 s3 o' H \
- a$ @* |5 Q. m8 T5 o8 l; z
- )
( L& o3 E6 n) ^" H4 ^ - (defun redss (ss / en i)
6 z* Y% h$ ?4 p0 w - (setq i 0)+ N$ T+ `7 g! y5 A7 I7 E5 P
- (while (setq en (ssname ss i))0 A- l1 s8 d+ h8 w. I6 M5 X- W
- (redraw en 1)
( p. e5 p7 ~# W5 l - (setq i (1+ i))
3 D8 C. u6 P" \2 O* m7 F - ); H9 W' y$ w+ K' I
- )
) _* C8 D# A* F" V - (defun lss (en / sels ed)! h* Q6 p- @/ m0 b3 y# h; p: U1 c1 R
- (setq sels (ssadd))2 o' I4 B) a' ?. C6 v3 A9 N; H4 e
- (while (/= en nil)& p# m4 r$ B: N0 l$ e8 {
- (if (setq en (entnext en)) (setq ed (entget en)))1 f0 a# e* ^% O
- (if (/= en nil) (setq sels (ssadd en sels)))
0 m+ q' I7 y7 g N4 s& |+ b - (if (or (= (cdr (assoc 0 ed)) "Polyline"): Y5 C/ f! G; S1 y1 |/ t
- (= (cdr (assoc 0 ed)) "Insert"). v; w* b+ z: Y
- ) ^3 m: m# O5 ~% d6 ?5 m
- (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))
! b" s* g( i1 w) C2 h - )/ H! X: \5 S* l9 L3 ~
- ), e9 e" ]" L# A" t- ^5 l- g* C
- sels! n/ u3 w! L3 c/ s, i) Z" R; O
- )8 q2 S$ Q) ~5 c9 v5 K$ S& i& d
- 5 x( |( X/ \5 V
- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================
4 D( z5 {* U2 W
) P k2 \% v0 Y4 N0 B4 n- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" "")); D! G- l; ^* k0 R* \/ m
- (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" "")) B: q- `* J8 J I; l% A# n2 e
- (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))+ u" }' ^! ] {. E: u3 Q
- (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))5 m2 s8 t' O2 e9 {$ V+ y' n
- (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" "")): y0 y+ ]/ D) v7 Z
- (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))
9 J! z0 ?% M! X5 k$ ?* t7 i* N - (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))
9 [( }" e% n( ~+ G& ` A9 T3 w - (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))
+ N( N& m# o8 g. m* Y0 j \ - (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" ""))7 F8 h7 u$ ]: n1 c
- (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))' j- `9 t2 g$ [. T
- (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))1 ^6 g; X, j C. E6 W* o
- (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))
) n: l5 W9 v/ { - (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" ""))
3 U+ B9 F7 K) o, |) R - (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))
# a% o: { C) L' L: M - (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))
/ P1 P; l6 C4 B5 [ - (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" ""))
( n- f! l X! o5 o3 m" s, k2 G+ ] - (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" ""))" n( X ]& g$ W S2 c* [. S# T2 `
- (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" "")) J- `( V6 q8 b" e
- (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" "")); ~- g9 `$ R" w" s Q
- J0 ]: R, X7 `- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
, @8 E/ f1 z% J
& b# ^) {+ J$ j1 [. M p x, C- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============
6 Y* o0 W% W" | - 4 P6 \* z) v, W: a) q; x( P: k+ I: S
- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")
& x; A1 u @$ U - (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")
4 V5 t, s: l: z3 l% V
& U& S% k& ^! B9 r- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===9 q' Y/ W' b' q0 L0 @. }8 M
- & X6 i5 B7 f$ k
- ;(DEFUN C:netxuatanh (). V9 K/ Q4 ]& n0 o8 U
- (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
2 j) O% @6 y2 I3 x, s; Y q - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""9 ]/ ^- I3 h s' |! z: i1 Q
- "M" "MANH" "C" "9" "" "Lw" "0.5" ""
7 \5 |1 \ T: Y/ i - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
9 _3 o7 `* Y7 T/ G! M3 X' E; Z - "M" "DIM" "C" "1" "" "Lw" "0.6" ""; S# S5 M! q* [7 h: t* J
- "M" "THAY" "C" "7" "" "Lw" "0.7" ""$ u" o( d x9 d
- "M" "NOITHAT" "C" "3" "" "Lw" "0.5" "" z. z# S4 o/ ]% i
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""5 Q. Q% B/ L. n7 U! z
- "M" "COT" "C" "2" "" "Lw" "2" ""+ m5 w$ e/ f5 V2 M# B2 g) W8 n
- "M" "Defpoints" "C" "7" ""
# q$ _/ R0 L$ E7 _9 `) x - "M" "0" "C" "3" "" "Lw" "0.5" ""; m! O8 G% g2 P8 D8 Z9 ?3 y4 t4 M
- ; "M" "1" "C" "1" "" "Lw" "0.5" ""
( S( ~. c9 b% G+ B+ S - ; "M" "2" "C" "31" "" "Lw" "0.5" ""
- k4 V: F9 P0 O$ s7 W- Z2 S! L - ; "M" "3" "C" "8" "" "Lw" "0.35" ""& ], ^) ^+ h6 _7 a* J) E: X
- ; "M" "4" "C" "4" "" "Lw" "0.8" ""7 D z! ]$ o# \( |% r
- ; "M" "6" "C" "6" "" "Lw" "0.35" ""- J) ~5 l/ G6 T$ k3 s
- ; "M" "7" "C" "7" "" "Lw" "0.4" ""
1 I4 D2 |# Z+ h& _; N$ Q - ; "M" "8" "C" "8" "" "Lw" "0.35" ""
4 a& Q/ @8 `9 } - "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" ""
1 N% g+ o2 Q# n* O - "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""
* p3 C; |8 ~) {/ n* F( v6 i n - "M" "KE" "C" "8" "" "Lw" "0.3" """ B: q0 A6 W: N! R: i
- "M" "KT" "C" "9" "" "Lw" "0.35" ""
; w9 U. {: z7 b" H - "M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""# ^6 R% m7 G1 {# V: M
- "M" "NETMANH" "C" "43" "" "Lw" "0.5" ""
# B! N$ S$ e* P/ x/ q7 `" Q - "M" "TBD" "C" "2" "" "Lw" "0.8" ""
( }: Z: O* D# H. k3 Q- V- x - "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" ""
! Y- [4 t# W6 l& n' ~0 a$ @) G) c - "M" "TEXTVN" "C" "132" "" "Lw" "0.4" ""
; d3 e: r( B' c( p - "M" "THEPDAI" "C" "3" "" "Lw" "0.7" """ g. `1 L! h: ^7 }: t( I' f
- "M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""$ z( c& ^. i% W/ I9 X
- "M" "CUA" "C" "6" "" "Lw" "0.5" ""
+ O1 D3 m n2 r" V9 i! k - "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""
3 j* J1 q# o# a4 B9 T1 P - / Z7 o9 O- ~7 V) w( i8 v# d
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===
* r" H6 u9 C- }& \, ^" M - ' t2 w& o7 s% s
- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" ""% F( Z: u: k" u" z/ v }( I
- "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""
3 p6 x' k6 Z5 \7 k. T - "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" "" w% _. O0 i% A) a2 J) s
- ; "M" "250" "C" "250" "" "Lw" "0.35" ""
9 x0 Z5 t$ _, ~5 i0 `; Q - "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""0 h1 r4 ?- R5 n- ?
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" )
3 i) {1 K, `1 n, a# l! f. e - 3 Y% ~# Z$ ^- B4 q
- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======
8 P/ ^- J) f7 v1 R! j - ;===================================30|04|2024==============================
3 D, I) O' n' j( D! `) J" T+ Y3 C: i+ u - % W& _! n; o a% E
- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )6 Q2 V7 D! p! U
- (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )
2 b; b& G7 W9 Z; ?" r+ A( n' c* v- e* L - (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" )* E" U' }, l0 a& g9 ~! Y' w
- (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" )
& l0 g7 I$ @+ Q - (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" )
1 F' j" f7 t: e9 t - (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" )
v% A& C+ A/ J5 @ - (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" )
' P2 C" f+ H$ \) U4 e% j - (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" )
8 {% {7 Y. _! }% S* q$ @# ]$ \ - (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" )) o7 @( o' E Z2 {0 ?; N/ C) u2 K
- (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ)
7 g/ r2 u7 r7 W4 d4 m% u0 X8 b - ! a4 L7 p5 H8 J" m6 m5 S
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=+ C4 u; t- S M0 B8 e& a
- ;===================================17|10|2024===================================
) c8 z: c) A# @, G: n, K
0 @7 N. L2 u" o! N- ^- (Command "DIMTXSTY" "ROMANT-DIM" )
* }- w9 A+ |7 e3 b, t6 e5 y - (Command "DIMBLK" "" "Closed" )
8 Q6 J0 e0 C9 d$ G* U+ I# r1 _) f - & J( A1 t! e7 _( z% j
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=/ D) M" ~; J0 p
- ;===================================17|10|2024===================================5 A7 j, ?. R+ L7 {- l
- ; ~% p$ p4 C1 I$ l# F4 r
- ;(Command "-units" "2" "8" "1" "8" "" "N")& d }& c( T# `, j7 S0 Z
- (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ)
* J9 O9 y6 l I8 _9 h7 J+ X
3 G: _% z& s8 ^/ O" |8 T- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
3 s+ S8 |+ F, s - ;===================================17|10|2024===================================
" x5 e$ M$ V) r9 z' s& R2 L - 8 k8 P+ F9 l6 Z( Z- @
- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====
4 X8 c" P7 y5 m - 1 G- o6 W& T6 D; ~; V. j( K
- ;======================== DAT NET IN & TI LE BAN VE =============================% y5 U3 S1 @0 i
8 d" _+ X0 l( x/ s- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================
+ Z5 I4 I% Q; f* B; s - ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================
% \* t: R% b3 X5 [8 r9 {) q1 g - ;=============================11|07|2025==============================1 A) H d1 S9 @+ E- t I
- ;Ti Le Ban Ve - 1 : 1007 {7 ]4 v8 ~' }. M+ L
- (Defun c:kta4 ()& v: b" W3 z9 G' l/ Z7 t8 i
- (setq mv_sc 100);Ti le ban ve7 ~+ Q8 r- {! m( T- M
- (setq x4 297)8 Z/ D3 p/ n2 X; q3 m6 v
- (setq y4 210)- T l3 n, R( I
- (setq x4 (* mv_sc x4) : X, U6 {: T! H. }+ h
- y4 (* mv_sc y4) )% z' C0 F9 A8 P
- (command
& f$ Q8 B0 r4 F8 ]7 `0 h - "LIMITS" "0,0" (list x4 y4)/ v, p; `5 L# w# _5 u2 e
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
3 L" t4 f& T8 ~/ x. o - ;Khung CHU NHAT Chinh
" r' Y/ Q* \3 f1 D - "RECTANG" "500,500" "@28700,20000"
5 L' T; X7 n G6 a2 } - "RECTANG" "700,700" "@28300,19600"! l( X3 [: v. X$ n$ }" @
- ;Khung Ten Chung( F7 @ B9 i- x% K
- "RECTANG" "700,700" "@8000,1250"
2 \+ v9 N1 j8 N% [ I - "RECTANG" "700,700" "@17300,2500"
, a6 `; m" e; q$ U" A - ;Ten Ban Ve
w6 v" f; _( \/ ?! n - "RECTANG" "18000,700" "@11000,1250"
9 }% m8 Z4 v: s& `6 X# [% _+ i; d - "RECTANG" "18000,700" "@11000,2500"
' Q' Z9 y! w' g6 N d" G - ;Khung Ti Le + Ngay Thang Nam4 t+ F2 t0 w8 e, b% B5 d
- "RECTANG" "22500,700" "@2000,2500"
1 Q" F' O# s1 I/ v. D - ;Khung CHU TRI- t% d( f, e( [- W. m* F
- "RECTANG" "8700,700" "@3800,2500" u" C. m* V' i; S
- "ZOOM" "_a" ))/ i6 l* W# ~( a1 Y4 e; V- o8 h
- ;=====================================================================
# c) T3 p( w4 N; H) a7 m - ;Ti Le Ban Ve - 1 : 100
. S3 D* U8 |! r1 T# s - (Defun c:kt4a ()
, c- D8 Y0 O2 V# ?. l - (setq mv_sc 100);Ti le ban ve
$ c) u/ D( P! E- t+ u, M) F - (setq x4 297)
, i4 J3 g" @! @% ]+ L5 V; D: f. r - (setq y4 210); R7 h5 i; R+ t' W
- (setq x4 (* mv_sc x4) # M+ o, n, W! n9 p. U# S1 _
- y4 (* mv_sc y4) )
: k# @# l# f& A0 d2 V1 d, m - (command
6 X; Z: H$ `1 r7 E+ x% \ - "LIMITS" "0,0" (list x4 y4)
- C: d( F0 g l3 V - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"4 X' g; Q4 H5 ~5 T
- ;Khung CHU NHAT Chinh
1 ~6 E% g( w3 o2 l - "RECTANG" "2000,500" "@27200,20000"
! ^: ^1 d3 g: r1 E - "RECTANG" "2200,700" "@26800,19600": \8 o7 e, A& h% A |% G
- ;Khung Ten Chung/ w) ^3 P% c8 i( i1 i t& r2 f
- "RECTANG" "2200,700" "@6500,1250" }1 D; J4 y! i# N8 x; Y
- "RECTANG" "2200,700" "@15800,2500", `/ k& O& r& N5 A/ N& k: q. e" t3 Z6 n
- ;Ten Ban Ve5 z% O; i7 ^4 Z
- "RECTANG" "18000,700" "@11000,1250": g1 ]* `& A+ K% {( |* U% C
- "RECTANG" "18000,700" "@11000,2500"
- l5 n; V: ~' Q( b" u' M! {7 f, ?. e - ;Khung Ti Le + Ngay Thang Nam3 D" ~, q8 s# ] y% [% \3 y1 M1 G0 B
- "RECTANG" "22500,700" "@2000,2500"' W6 Q( X* F' ^/ B
- ;Khung CHU TRI# C( E- p+ Y* l
- "RECTANG" "8700,700" "@3800,2500"
( t& _$ x, Q+ M( N+ Y+ b- L - "ZOOM" "_a" ))
; z* S- q% _# e6 M/ x - & f' E; _9 \* R4 b( D
- ;;; ============================GHI CHU Khung Ten========================! r) a) J4 k5 _1 z
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========0 H n3 H0 t! u, t2 c
- ;;; =======================Thuong Dung Font Romant.vnh===================
5 X+ W% F. j$ {) c) O( U. y
0 z( } W# \# v- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)' d( s3 N* D _- V
- (setq oer *error* *error* err2)' S2 D9 i- [- ~9 b" r5 Z& n5 F+ b* A
- (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")
3 a5 N' ?- ?4 d& h& d8 Y9 W% } - (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). "))
& H8 a8 L+ _# n$ m - (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))
; b" B8 H, N: ^5 Y" ~9 }; ` - (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))
, e- _0 u7 j. N' @' ~ - (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))3 k7 M- U. U& g, _
- (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :")), ]2 K4 y; U0 n5 b m
- (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))
( t9 e( [ h0 P! a; J+ ] - (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :")): ^( b$ d' }0 E" @$ n
- (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :")): U# V: v$ C3 \2 u2 h6 @
- (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))- m5 d/ p' [2 |
- (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :"))
2 A$ y- m5 w) D) D8 f. V - (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :"))
) {0 i P: g! O9 n( ]# j - (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))' N, o. K. m6 Q
- (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))
1 }& E: \6 M# A6 {9 X& C - (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))/ m/ Z* p1 T) B* E
- (setq pta (getpoint8 @ t+ P! d) K0 J( C% Y
- "\nPick first corner. : "))7 S# A5 {4 C q. L$ W/ G( ^
- (setq ptb (getcorner pta
: q- r3 U( d% ?' n' j - "\nPick second corner. : "))2 U3 x0 i. W* q- P
- (setq ptc (list (car ptb)(cadr pta)))
; I6 B% }0 j$ V X2 D" X - (setq ptd (list (car pta)(cadr ptb)))
; T7 R$ q, z' \7 B. g' n6 S - (setq ang (angle pta ptb))
6 C1 e- O6 {4 z/ S7 c - (setq d1 (/(distance pta ptb) 2))
& K# O- u/ X7 N) {% g2 j! N2 ] - (setq cp (polar pta (- ang (dtr 0)) d1))
4 ]: ^3 z/ H+ T, m - (setq X (distance pta ptc))
6 L+ E9 m. M# f4 M. @6 V - (setq Y (distance pta ptd))
( ^1 i3 e0 }! G- Q; r4 [ - (setq X1 (rtos x 2 1))2 Q: W0 q; Y; b, R$ ^
- (setq Y1 (rtos y 2 1))
: @. D7 t: A9 Y X - (setq rmsz (strcat "(" X1 " x " Y1 ")"))' e0 k- ~6 M$ e; y x* k8 X' O
- (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
0 ]8 {* Z% B2 F- A8 k - (defun dtr (angg)
2 B8 o! J8 A: }9 b, I7 s# `# ~ - (* pi (/ angg 180.0)))0 x$ W- U3 d4 Y! }
- 0 m- d9 `% }, f* u* J w+ K
- ;=====================================================================
1 X" l( g$ n+ b1 ]+ X - ;==========================DAT KHO GIAY BAN VE - KIEU 1========================& g* E0 g# \ t& L. S& B4 x
- ;=====================================================================
! d, T" [' V' [7 U" f
# N- M J$ V$ a" v5 y) x- (Defun c:a6 ()5 \, h3 s& C6 F: S* f
- (setq mv_sc 100);Ti le ban ve, C3 v7 v7 c9 ?1 f6 N* s9 D
- (setq x4 74.25)
8 v, I8 k; @0 j+ O3 e1 x1 {+ `8 S - (setq y4 52.5)6 x- |+ O2 s n# L% }4 {
- (setq x4 (* mv_sc x4)
: W6 s! q% x( V - y4 (* mv_sc y4) )
" [$ w9 N( Q$ H% k! f* V/ l - (command
& [' ?% ^ r* x1 R( O - "LIMITS" "0,0" (list x4 y4)
+ Q5 k" M; x% A1 Q+ l" M - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"" @" b( g# h2 e: Y8 K" K- r1 Y
- "RECTANG" "125,125" "@7175,5000"
: b( k, g; Z, A5 Q) P - "RECTANG" "175,175" "@7075,4900"
( ?8 e7 @4 ?3 o; s - "ZOOM" "_a" ))8 T( S" T: B* g8 I: q1 ~, S7 D
- ;=====================================================================
" K4 E: e5 r( P V - (Defun c:a5 ()
; V/ w# F# i/ Y5 k/ t8 U d - (setq mv_sc 100);Ti le ban ve
" h7 ]1 b7 h+ [; ]+ A3 i7 } - (setq x4 147.5)
1 ^6 i' Q a; }( M2 q( C; i, j - (setq y4 104): |9 F t; E( y7 R
- (setq x4 (* mv_sc x4)
' ^8 ~3 M9 z( o$ W( R0 k - y4 (* mv_sc y4) )! o: n- Q7 u* B. F2 q/ |) U
- (command
5 z4 x+ _) d$ U v - "LIMITS" "0,0" (list x4 y4)! T }% I$ P( v
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
5 |* ?* w" N' t. [/ U: _& w - "RECTANG" "250,250" "@14350,10000"* l" y9 m5 U% s, X
- "RECTANG" "350,350" "@14150,9800"( p' Q5 r2 [8 w/ t% d2 @
- "ZOOM" "_a" ))
5 s& g/ f* P3 b( v7 f7 l - ;=====================================================================1 q; ]4 [/ _' q
- (Defun c:a4 ()
5 U1 g. }1 s; c, z5 F' G4 E - (setq mv_sc 100);Ti le ban ve+ J' m! g: ^4 m; R7 }6 U/ J) N
- (setq x4 297)
/ H/ f# O4 q4 k" v( y - (setq y4 210)
. M. T) w+ D) s* B/ I/ \ - (setq x4 (* mv_sc x4) * r9 {. w- m4 f4 B
- y4 (* mv_sc y4) )
) S) ^: t+ M7 v( A, v1 W - (command ! l, p, o# M( ~3 [: G
- "LIMITS" "0,0" (list x4 y4)
+ \0 m% l& a' d- a/ w( H& R: r - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
% ^4 D+ }9 R) h7 J# w7 } - "RECTANG" "500,500" "@28700,20000"- q- j8 R& h6 S/ h. l c
- "RECTANG" "700,700" "@28300,19600"0 b" ]. p3 w$ u7 Z: I, f( k
- "ZOOM" "_a" ))
3 x7 c. o( Z; s2 G2 A* E' J6 n - ;=====================================================================
8 t ^; J3 Q/ H+ \ r( R' Z - (Defun c:a3 ()
3 w% u# P$ w2 S3 H9 }% E8 m0 } - (setq mv_sc 100)
2 I; l$ v' F" D k+ U - (setq x3 420)6 W& e9 a. X7 @3 F& f9 v; Y _
- (setq y3 297)
5 ]4 T" @1 i2 q% D. I - (setq x3 (* mv_sc x3)
$ P& t. l" c; n1 R8 z, l7 Y - y3 (* mv_sc y3) )
, B0 v' d& M) {' G& V; A3 c: s - (command 6 }- Q6 Q+ T8 T* \
- "LIMITS" "0,0" (list x3 y3)6 m9 w- D) B# M+ o' Q
- "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
2 y6 j$ `: c# e$ T$ C - "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571") k3 V" z; z! t ]/ \
- "RECTANG" "990,990" "@40024.28571429,27720"
0 v8 H! n. e0 @ - "ZOOM" "_a" ))
( ?& R% W- d, Y0 Z* m) ~ - ;=====================================================================* E6 |/ e d9 f( M, D `7 c3 d' q
- (Defun c:a2 ()+ O3 J1 O) r! q, B8 F
- (setq mv_sc 100)/ F! i& | y6 w- J
- (setq x2 594)
0 g, ^7 a! \ M# Q - (setq y2 420)2 b$ \5 @( D" E
- (setq x2 (* mv_sc x2)
2 I- C8 Z* u! ^7 y - y2 (* mv_sc y2) )
9 D% i% T; _8 o/ z7 ? - (command
: p1 C9 U, M/ X: A* R - "LIMITS" "0,0" (list x2 y2)
2 r3 d4 R. e; p# A7 U! \' s - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"% L$ N! q3 K2 C" \0 m
- "RECTANG" "1000,1000" "@57400,40000"
6 r( j# k3 ^: }, |' t! [; E - "RECTANG" "1400,1400" "@56600,39200"
6 F* Q; t4 D9 x- z; a" R' U" g - "ZOOM" "_a" ))0 J! Z6 h7 j6 H% G
- ;=====================================================================, J3 s8 A. {8 @& }
- (Defun c:a1 () M2 H6 d7 N; B( {3 } J7 _
- (setq mv_sc 100)6 \* P" C- d' T' p2 g: n" f
- (setq x1 840)! e. {) C4 `* C9 N: e
- (setq y1 594)& ]5 U. m' @& H4 d& g
- (setq x1 (* mv_sc x1) . C2 {2 w5 [& l! w2 |" t% L
- y1 (* mv_sc y1) )6 Q8 C: P" P( N' m7 L
- (command
/ Z% y3 v# ~$ d0 D - "LIMITS" "0,0" (list x1 y1)
4 T1 x$ L3 B" ^4 ?) A9 e; \ - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"5 ]* @. W b% p" C- @
- "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143"
! `! b8 b4 ^) g$ J Q - "RECTANG" "1980,1980" "@80048.57142857,55440"
/ i( m) R( c: }5 n - "ZOOM" "_a" ))
$ K0 M2 B6 P3 D+ H |8 _' f/ F - ;=====================================================================
( B# U% k# s( c - (Defun c:a0 ()
$ x5 U( v% l* p/ d) w1 W9 a - (setq mv_sc 100); b3 K; f9 F0 T
- (setq x0 1188)( g% A- N' W7 f
- (setq y0 840)3 J6 ~+ g- b0 f1 v/ J
- (setq x0 (* mv_sc x0)
1 ]; ?/ a+ a: Q% b4 j, ] - y0 (* mv_sc y0) )0 d% P; [& G E+ b
- (command " l$ [; ~, X0 q2 T" O% M% b8 ?$ ]
- "LIMITS" "0,0" (list x0 y0), D% |. M& _6 Y2 b$ S* C+ i9 W7 M/ Q
- "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"& \* H5 @( I+ p1 }1 a
- "RECTANG" "2000,2000" "@114800,80000"0 S/ z9 Q' Q* |
- "RECTANG" "2800,2800" "@113200,78400"
# @. v8 _& I% `! w; X/ C8 l; M - "ZOOM" "_a" ))' M/ W/ ?% J0 r! f0 Z8 x/ i3 |
) U" x6 Z" m _ B5 f ]# x2 J- ;=====================================================================
?- v4 k. r4 B/ d; S: F% W& S8 o - ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================
( a& x2 n; ?; H - ;=====================================================================6 K* C5 y3 |# L- e! n3 `7 u
- - d- `8 K2 m) a$ f7 W- |9 S/ n
- (Defun c:6a ()! ^) {5 r$ x3 S9 f
- (setq mv_sc 100);Ti le ban ve
2 [; x/ L) @8 q - (setq x4 74.25)
% n: f$ t3 ]- t* s4 t9 l6 u - (setq y4 52.5), }) k+ G. o/ q9 J, v$ P, Q
- (setq x4 (* mv_sc x4) & c- K# b* Y- e9 c$ Y4 |
- y4 (* mv_sc y4) )
# k i. z( k- ?- k6 @! d - (command ! @4 T& n$ x6 t$ c% j3 q0 \6 B2 k
- "LIMITS" "0,0" (list x4 y4)
* W9 ~ H! N4 ]5 n' } - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"; R7 c5 h; K6 z/ p7 W$ H
- "RECTANG" "505,125" "@6800,5000"
& ]2 E' K$ f" T8 R2 ]- P - "RECTANG" "555,175" "@6700,4900"7 q/ w5 }2 p9 e9 |
- "ZOOM" "_a" ))0 k' q9 ^; Q W
- ;=====================================================================3 N5 s' l% k: S4 D$ c8 ]8 t' S
- (Defun c:5a ()
$ I5 A; X( F# `1 z/ D# ? - (setq mv_sc 100);Ti le ban ve
) T& y1 |4 \; d% j( ^ - (setq x4 148.5) C' v* ~0 _8 v* K: e: T7 ?0 u4 H7 T
- (setq y4 105)
" d% |; |/ f R* ? - (setq x4 (* mv_sc x4)
7 a* c, {4 i& g* ?0 g - y4 (* mv_sc y4) )1 y6 e4 o; J/ K9 B
- (command 8 ?- ^, v* p5 a, X+ ?
- "LIMITS" "0,0" (list x4 y4)& r) G# V$ | m( J: G" D
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
' D- v% h8 w- S1 \& O2 I# Y7 A1 c$ E - "RECTANG" "1000,250" "@13600,10000"
5 \# F2 B: _# l1 S ^' q - "RECTANG" "1100,350" "@13400,9800"& m/ A6 U0 }/ p3 t" e
- "ZOOM" "_a" ))9 k5 k; h& v" i" d
- ;=====================================================================" _8 o6 F2 f9 Q" Q! Y! D
- (Defun c:4a ()
: d M9 [ |7 m - (setq mv_sc 100);Ti le ban ve4 {: l" y4 R, {4 X k
- (setq x4 297)
# k$ t h9 ?+ v" p/ q/ n$ q; L - (setq y4 210)
2 F. e7 c/ k5 n5 i - (setq x4 (* mv_sc x4)
X9 t" y& @# p' F# q% t4 p2 a - y4 (* mv_sc y4) )
7 |/ e0 Y z" O! g q+ {9 [ - (command
1 r5 e8 R5 D% n7 g$ P - "LIMITS" "0,0" (list x4 y4)
& W( k. { c, s* P7 |$ s - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"$ H% [& \: k. l/ i; u4 ]- w/ l* B
- "RECTANG" "2000,500" "@27200,20000"
2 T6 k1 i" l. v- f7 t0 Q+ P - "RECTANG" "2200,700" "@26800,19600"2 ^3 J' R( D. ]) d' i
- "ZOOM" "_a" ))
% e9 L ?6 z! w$ T$ K - ;=====================================================================0 d/ h: Y4 n2 O5 ]$ X
- (Defun c:3a ()
- E( i2 ^. Y. g6 Q/ L - (setq mv_sc 100)
* E) t/ q0 D7 b - (setq x3 420.0428571429)
* C3 [. I: g* V; z/ d - (setq y3 297)
2 }! X, y, {0 r - (setq x3 (* mv_sc x3) ) {& }! i$ E x% V3 M& e
- y3 (* mv_sc y3) )& O0 n0 y' }5 I" \# q' N: Q9 T. `
- (command
# r1 j$ s! _9 j$ L& T* M7 Y - "LIMITS" "0,0" (list x3 y3)
% }9 B" I/ [( L6 l - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"
1 L( t7 p9 d; h) R# B# ^ - "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"6 m% H- ?( ~2 O, Y7 E2 x4 l
- "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001"
$ r( R1 a# I; h2 W9 _ - "ZOOM" "_a" ))
7 g9 }; }! {0 a - ;=====================================================================7 k* m D1 { L* b9 K
- (Defun c:2a ()* o5 s* n3 z; k5 R1 @+ y) {) s
- (setq mv_sc 100)
& E/ ]9 Z4 k7 F4 ~; ?' ` - (setq x2 594)
2 q! W& k( w* S8 I. d. p, D' n - (setq y2 420)
+ |- ~- t: i! m- `- \2 x2 L7 @. p - (setq x2 (* mv_sc x2) " H G/ `$ F* c" j7 G' z" S
- y2 (* mv_sc y2) )- G- x m5 l/ e- s6 ]& A
- (command
% f, O1 _" x, d2 W ^; `* q - "LIMITS" "0,0" (list x2 y2)- N) l. m1 J5 q1 I. Y% L
- "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"3 Q) B L( h- ?8 [3 L( G8 @
- "RECTANG" "4000,1000" "@54400,40000"' w. @ F6 x- x. t; ^3 i
- "RECTANG" "4400,1400" "@53600,39200"
! v4 \$ a# [ {6 o) H - "ZOOM" "_a" ))! S& D( ]+ v' n1 K
- ;=====================================================================7 F4 |1 r9 E" U. L0 C
- (Defun c:1a ()
1 {2 d$ ^( ?8 A5 y) S - (setq mv_sc 100)
" q8 h- s9 G- D; @( j. ` - (setq x1 840.0857142857)
% W* T% w5 M/ h- N/ T5 K - (setq y1 594)" V" F& h' B7 M* s6 K! `- x2 m; f
- (setq x1 (* mv_sc x1)
( S0 t1 g' n5 e$ a9 n6 ?) A# p% F - y1 (* mv_sc y1) )
$ H6 @" ?, W+ A - (command 9 v3 u/ k9 P9 \# V' F' M
- "LIMITS" "0,0" (list x1 y1)7 E( i( B* u- w T! i1 G$ \ {/ G/ h
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C") y# J: ]) |6 d
- "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"6 l& G3 V3 c. d2 @
- "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"& U1 T, ]0 w. A2 Q, H; U, n
- "ZOOM" "_a" ))) U$ t* C8 B% S- J
- ;=====================================================================
8 [& X9 ]+ C% L1 B1 C4 n - (Defun c:0a (); Y# \* v; X" g, _( i0 Z* S
- (setq mv_sc 100)) q8 E0 l3 z/ E1 k6 r5 w
- (setq x0 1188)' p2 o* }5 k9 G7 N
- (setq y0 840)
f1 u6 O# o# F% a - (setq x0 (* mv_sc x0) E4 d4 W8 W% Z; M% V. v
- y0 (* mv_sc y0) )8 V+ _6 m" j9 f! @! k9 J3 P8 |
- (command
( s! v9 K( R' n - "LIMITS" "0,0" (list x0 y0)
7 ^* A/ |2 s3 S$ T0 d7 J+ U - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
+ O6 p. r* y& m& i! F - "RECTANG" "8000,2000" "@108800,80000"* m+ G0 t: m! Z# P* M% d
- "RECTANG" "8800,2800" "@107200,78400"7 t h5 }' z+ H3 C
- "ZOOM" "_a" ))
) W+ N% D4 `- x0 P" ^5 N! ]
8 t* Z1 D; m% W" l* Z; N4 i& y- ;=====================================================================
- F. T( ^6 z$ `) p3 T - ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================9 x' Y% m$ @4 X2 B
- ;=====================================================================, M" [0 e4 ?/ ^+ R' M5 ?1 X1 Z" Q
- (defun c:khogiay (/ oldlst a b c d e f g h kho TL)
) y" g7 |: d3 N% g - (command "undo" "be")
+ |) d z- _) W- u9 x: r7 { - (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))$ b- B2 H) P+ |" `6 v8 A1 t2 Y
- (setvar "CMDECHO" 0)
9 \/ X' u: ?/ n* w/ _6 q8 Z - (setq a (getpoint "\n chon diem chen :"))2 p6 a t5 c3 N% e9 {) r% X7 X
- (if (not TL) (setq TL 1.00))
" v: G1 i/ F7 N9 \) d - (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))
6 Z9 Z3 B2 ?5 j4 r$ N' K s7 a( w - (if TL1 (setq TL TL1))1 X+ J8 r- Y @3 t) [/ c
- (setvar "osmode" 0)2 w$ r! X4 ?1 F
- (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" ""))
: u1 M: S$ f7 F - (initget "0 1 2 3 4")
6 b( a' F2 B4 m% Q7 s5 q - (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))
6 M- ?1 e, B# F- P6 G: w - (if (= kho "0")( a J' n3 f& r! k% B3 V
- (progn
9 {' F$ N# P! o* \. r - (setq b (polar a 0 (* TL 1189)))
4 v4 g; F0 o- B7 b' S9 d - (setq c (polar b (/ pi 2) (* TL 841)))
8 O1 X% F) ~) [+ x - (setq d (polar a (/ pi 2) (* TL 841)))
' e* q+ P" C$ w' x3 K - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12))))): R+ i/ L/ G3 X
- (setq f (polar e 0 (- (* TL 1189) (* TL 24))))$ S* u; {5 N% |: x6 K7 X- b
- (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))* C8 b; Q9 i+ t9 z0 ]6 A
- (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24)))) W7 n7 }* u5 _) Y
- (command "Pline" e f g h "c") , M7 U# s/ H" F: z% K
- (command "change" "last" "" "properties" "layer" "0" "")
* G7 l# J6 |$ \' f( U - (setvar "cecolor" "4"). k4 r+ |* G* G: d8 r& `2 k
- (command "Pline" a b c d "c")9 V; A# V; [1 h
- (command "change" "last" "" "properties" "layer" "defpoints" ""))) 3 c E' |' ^! u- J( Z& T" y) a
- (if (= kho "1")
$ `. W; x Y0 y- x/ H - (progn, }1 ^$ d3 E( H8 }: [% ^8 {
- (setq b (polar a 0 (* TL 841)))
) r$ u) _* H9 g - (setq c (polar b (/ pi 2) (* TL 594)))
9 W0 E" }: {; ^7 F! v - (setq d (polar a (/ pi 2) (* TL 594)))$ @6 J6 @8 |) ?& K! M5 Z
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
5 R& o; ^4 |+ U& M - (setq f (polar e 0 (- (* TL 841) (* TL 24))))
0 Q$ V) y1 O! b, z7 p - (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))
- F& z% X. W/ z4 F1 P4 B+ x! G - (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))* s% M- ]# O" ]) W9 e/ F, J
- (command "Pline" e f g h "c")
! x: J6 }4 l3 a8 S - (command "change" "last" "" "properties" "layer" "0" "")
+ W2 b! R% P( h, p$ { - (setvar "cecolor" "4"), o4 h* q$ U7 B+ V" F2 E1 r$ B
- (command "Pline" a b c d "c")# ^) c0 A$ a) G9 E& y
- (command "change" "last" "" "properties" "layer" "defpoints" "")))
/ u z2 B5 q; _* B; G: a - (if (= kho "2")
2 \. j1 I5 d5 N6 ~3 D# y" ]: ] - (progn1 j* p9 V# D1 t# _% S: U/ {
- (setq b (polar a 0 (* TL 594)))
3 |, H3 ^& }- R2 | - (setq c (polar b (/ pi 2) (* TL 420)))% m _4 S8 |) J2 k% ^
- (setq d (polar a (/ pi 2) (* TL 420)))( Q. j! O5 p; j: ^& t3 D1 q! n% {
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100))))); k8 a' @# q) @# r% P; n; N+ V u
- (setq f (polar e 0 (- (* TL 594) (* TL 20))))! l7 U- d7 T& k' G! A7 W v
- (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))
4 a; }% I7 K4 m& r* V - (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))
: t. t$ \4 B2 [) q/ U3 N* D - (command "Pline" e f g h "c") * x3 P! h5 w1 i! m+ I' |% n
- (command "change" "last" "" "properties" "layer" "0" "")3 ?3 v3 e; m5 z. Y+ K
- (setvar "cecolor" "4")$ d: G# L$ _- N
- (command "Pline" a b c d "c")
8 R8 f: \* u4 A& l4 x - (command "change" "last" "" "properties" "layer" "defpoints" "")))' |; s! e3 {3 g" s* Q
- (if (= kho "3"). |' R& ~! t: ]' ]. z
- (progn& w, v8 t( r& e1 F
- (setq b (polar a 0 (* tl 420))): V2 F/ j( Z3 s4 P
- (setq c (polar b (/ pi 2) (* TL 297)))% S5 Z& j2 p, {9 h( _0 _% P
- (setq d (polar a (/ pi 2) (* TL 297)))4 I- ^, R3 r) o
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))
9 f/ F0 j6 z4 Z+ M: P - (setq f (polar e 0 (- (* TL 420) (* TL 20))))
5 P$ u; U8 ^2 j/ `# c+ }. }# s - (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))
, \$ T, ~7 R* S9 E- h - (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))( S$ W! M) y7 E, ^6 B1 ^ I1 J3 e
- (command "Pline" e f g h "c")
* f. ]% {8 e, a7 J - (command "change" "last" "" "properties" "layer" "0" "")
# ` L! [3 N8 @6 K - (setvar "cecolor" "4")
. u' _# n& z. L( q - (command "Pline" a b c d "c")
" o* D/ L2 M" F; ^/ o, o4 N% n+ ` - (command "change" "last" "" "properties" "layer" "defpoints" "")))
' e0 ?+ R# ], r - (if (= kho "4")( c$ ~: Y* Z7 K
- (progn
1 ] ?. @" _+ D2 M' V& i - (setq b (polar a 0 (* TL 297))); z7 c" T7 @* j3 Q
- (setq c (polar b (/ pi 2) (* TL 210)))
# n: k7 U4 M) [ - (setq d (polar a (/ pi 2) (* TL 210)))
& \0 q2 Q& [( H - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))
2 N0 j/ s3 D- d6 k; a0 c - (setq f (polar e 0 (- (* TL 297) (* TL 18))))5 e, w: _: z, C2 v
- (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18)))), L5 J$ X1 `0 ~* J, Z% n+ E. Q
- (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))
/ p* j" x$ T* _# s9 T6 H - (command "Pline" e f g h "c") 8 M v0 ~. e0 Q% [
- (command "change" "last" "" "properties" "layer" "0" "") a. O5 p5 d) Y4 S9 [
- (setvar "cecolor" "4")
+ c8 _& |$ N$ ` - (command "Pline" a b c d "c")
3 P X; x, b* h( f% d! j( u" K - (command "change" "last" "" "properties" "layer" "defpoints" "")))
4 \* Y3 I4 P( _7 p$ ^) P- _ - (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst)
7 A: t( a( p( y0 B9 J, [, l+ z* E9 ]* V - (command "undo" "e")1 m3 u c# p9 ], u' m# O0 ^3 g4 x
- (princ))
/ m* h, `! Y5 ~7 T" b$ w' o& W - ;=====================================================================
+ `- f! W& B' L& j v - ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================
! n3 s5 r4 Y, Q' A7 e - ;=====================================================================* v2 @! @* ?; w3 }
- ) o/ I# B! o0 }$ Q& F# N
- ;=====================================================================
% M/ R4 O, D" s) K - ;===================DAT Ti Le Theo KHO GIAY BAN VE====================
, ]( G5 T6 @- a$ k1 _ - ;=====================================================================
8 c7 Z5 S3 J0 J3 Q/ U - % I6 H( G* V1 Y8 G
- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""
w- z+ S9 o9 {1 n( G - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""
/ Y+ F0 I+ @5 b; F& X - "M" "MANH" "C" "9" "" "Lw" "0.1" ""
$ k: I' R0 r! ~7 @; n - "M" "TEXT" "C" "7" "" "Lw" "0.12" ""' l- ]( v6 d6 Z" G, ]( h& u0 I
- "M" "DIM" "C" "1" "" "Lw" "0.12" ""2 ^ C9 A1 x% W1 K
- "M" "THAY" "C" "7" "" "Lw" "0.2" ""
7 \9 K5 o- C9 Y - "M" "NOITHAT" "C" "3" "" "Lw" "0.12" ""8 p! S" W- ?3 a
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""+ ^6 Q1 S9 Q3 p& K5 q
- "M" "COT" "C" "1" "" "Lw" "0.3" ""
! o. j" u5 a* _. G1 N( [ - "M" "Defpoints" "C" "7" ""
- N& O9 s" q- I+ x: U - "M" "0" "C" "3" "" "Lw" "0.12" ""
' N% B* C4 g, |3 L2 i - "M" "CUA" "C" "6" "" "Lw" "0.12" ""9 S! ]! a! w# n4 q+ E# [2 k
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""+ S8 m+ H: g) X6 A6 g" u. a7 a
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))$ ]* K; s3 t2 J* S0 Q) z& x! J% h' @
- (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" ""
6 n2 B7 c+ J4 {# z) e5 l - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""
% ^* a, R8 x' S: c/ ~$ O - "M" "MANH" "C" "9" "" "Lw" "0.12" ""
. O8 k+ C! g2 k2 I b7 `# w - "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
$ P7 H4 @/ x) |5 I, G/ \0 Y" M - "M" "DIM" "C" "1" "" "Lw" "0.2" ""
- Z7 ^8 l9 W6 C% p5 u/ R2 t! m - "M" "THAY" "C" "7" "" "Lw" "0.2" ""
/ s* ?2 o; X- _- s1 T4 B# C - "M" "NOITHAT" "C" "3" "" "Lw" "0.2" "": E8 z; O: D7 N; ^
- "M" "HATCH" "C" "5" "" "Lw" "0.1" ""
* H1 a' t8 Y$ x4 K$ v' q7 d - "M" "COT" "C" "1" "" "Lw" "0.4" ""$ T/ @$ n& K( K
- "M" "Defpoints" "C" "7" ""$ ~+ W" Y( A2 m E6 J3 A
- "M" "0" "C" "3" "" "Lw" "0.2" "", ~. ^( u1 U! b7 M
- "M" "CUA" "C" "6" "" "Lw" "0.12" ""
( P7 q3 Y. v" U! U; k( z - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""5 E8 j. ?- E1 b
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))
6 W0 C9 ^, r i- [7 h4 P) m+ i/ A* x - (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" ""1 h5 O2 ~: @/ N% l" A
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""
" q: ^) K% l7 o) V1 c) T( C3 L - "M" "MANH" "C" "9" "" "Lw" "0.2" "", i# i/ k, X C- s0 B" d
- "M" "TEXT" "C" "7" "" "Lw" "0.2" ""4 `0 w8 x5 m( O" q$ M7 m
- "M" "DIM" "C" "1" "" "Lw" "0.25" ""! S# E. Z/ H- f9 ~: F
- "M" "THAY" "C" "7" "" "Lw" "0.35" ""! \& r* b$ y4 ]+ c
- "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""
; ]7 L; p5 x ^6 C: i4 I) P - "M" "HATCH" "C" "5" "" "Lw" "0.15" "", x. |, {) h! ?
- "M" "COT" "C" "1" "" "Lw" "0.6" ""
3 p. K0 G% j: M) x% m1 q. m - "M" "Defpoints" "C" "7" ""2 y6 x: M4 A5 [/ q T) g+ y7 m
- "M" "0" "C" "3" "" "Lw" "0.25" ""; H: Z/ k2 y* ~& g+ B# K5 {5 z
- "M" "CUA" "C" "6" "" "Lw" "0.25" ""
- m3 p$ ?2 _, A$ P: d9 p. L! t2 O - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" ""
* }2 k5 [, t* [+ o2 I - "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))
- D. j3 d; n; Y$ a5 K - & w |! P" Y) }
- (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""
# {/ l2 R( W# R& \7 K - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""9 I2 K+ Z6 y6 T1 j$ p) |
- "M" "MANH" "C" "9" "" "Lw" "0.25" ""2 J: B& U7 v6 ^ e
- "M" "TEXT" "C" "7" "" "Lw" "0.2" ""( [( p7 ^' I$ W- S# s
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""( |) k4 K( J9 D2 c, E
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""2 ]" w. n- o$ B. \; U& z# M+ x
- "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""9 U: H* L/ g6 G1 R9 W6 Y
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""6 V" R! ~ }- {5 r5 X8 ~2 _
- "M" "COT" "C" "1" "" "Lw" "0.7" "". i/ u) v, ?0 v1 |
- "M" "Defpoints" "C" "7" ""
. M* a6 `+ R0 s4 _* S - "M" "0" "C" "3" "" "Lw" "0.25" "". H- }" w) G2 y6 _
- "M" "CUA" "C" "6" "" "Lw" "0.35" ""; |# K0 e( B% s( ^$ \% L, i# l( v
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
, x. B" y2 F8 g/ M9 A2 y - "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC): G1 K9 m4 I `1 h- f1 l1 l
- 1 C& C& {' H/ L6 k2 b
- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" ""
- g8 p( M1 W: L F0 ? - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" "", G1 [9 k% [7 \* w: \# I
- "M" "MANH" "C" "9" "" "Lw" "0.25" ""% O3 b; A& S9 o" F; F( X2 _# A
- "M" "TEXT" "C" "7" "" "Lw" "0.25" ""6 Z6 j) x3 z3 W3 M! a, j) a( v
- "M" "DIM" "C" "1" "" "Lw" "0.3" ""
6 f2 U: b7 c& l v - "M" "THAY" "C" "7" "" "Lw" "0.4" ""
3 t" Y7 |8 y1 T- \+ C; u" m1 w - "M" "NOITHAT" "C" "3" "" "Lw" "0.3" ""( U, y2 e7 s/ P l {& s
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
4 x/ |6 @: N7 V q0 A - "M" "COT" "C" "1" "" "Lw" "0.7" ""
; S+ I9 q8 f* _# @) y - "M" "Defpoints" "C" "7" ""
! X# ^5 h7 A' r' {5 J2 J1 t* H - "M" "0" "C" "3" "" "Lw" "0.35" ""
# @' ]8 N9 a u- E6 j8 U - "M" "CUA" "C" "6" "" "Lw" "0.35" ""
1 o; B4 `, v* G6 z6 l - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
# [9 r9 a* u# Y o' | - "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" "")). J# g4 s4 m6 U: B [
- # @5 `. z# w) x% T( ]
- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" "": e' u: s) | z4 \4 }8 c
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""
2 O* p( a$ g r% K# K - "M" "MANH" "C" "9" "" "Lw" "0.35" ""
4 N) U/ ^3 s" }" Q4 ~8 X2 Q - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
9 V% a, N0 s8 m - "M" "DIM" "C" "1" "" "Lw" "0.35" ""* w( O/ y" }2 e$ r+ k. F
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""6 P: H0 `1 @' M. c5 L
- "M" "NOITHAT" "C" "3" "" "Lw" "0.35" ""3 r" m1 Q q* m# b
- "M" "HATCH" "C" "5" "" "Lw" "0.25" ""8 A$ H1 V5 g1 K$ x: j! L/ j8 U
- "M" "COT" "C" "1" "" "Lw" "0.85" ""
; T9 |, e0 a9 Q" @3 V4 I0 j - "M" "Defpoints" "C" "7" ""# j* P7 `- V9 U) T
- "M" "0" "C" "3" "" "Lw" "0.35" ""
7 m7 w8 ^3 c5 j7 j3 p* o9 ^" ~ - "M" "CUA" "C" "6" "" "Lw" "0.4" """ d7 T3 J1 O- ]$ H, M2 _& c& ?8 _
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" ""9 {- k! Y0 v: a2 G
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))
% ^7 i, K) i/ s9 A8 H+ R& F& q4 p - ; s5 j8 b, c3 E8 \" R6 V& ^
- (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""
0 W; K. |+ I! j5 o/ A/ ?2 v - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" ""% o: w- I9 b B) T6 u4 s, E, j# z/ N
- "M" "MANH" "C" "9" "" "Lw" "0.35" ""
) {* w [6 r9 L - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
, M. C) x6 X2 {9 u' l) ? - "M" "DIM" "C" "1" "" "Lw" "0.35" ""
6 R8 I0 }1 |( A7 \! l( }7 E - "M" "THAY" "C" "7" "" "Lw" "0.5" "": k! N; u* @% R% j0 ~, V; |
- "M" "NOITHAT" "C" "3" "" "Lw" "0.4" ""
, u6 i# \% q- u/ m1 z+ B5 \ - "M" "HATCH" "C" "5" "" "Lw" "0.35" ""
' C1 A" H) ` E# u7 H# N9 U8 Q) l1 x - "M" "COT" "C" "1" "" "Lw" "0.1" ""
- o" a& T2 z+ x: ?3 Q( U) U - "M" "Defpoints" "C" "7" ""6 p2 w3 J) Y; V# l' C
- "M" "0" "C" "3" "" "Lw" "0.5" ""0 f8 G2 C9 l; p' H) [4 b
- "M" "CUA" "C" "6" "" "Lw" "0.5" ""6 D, P- [9 B J% B$ m( u N; D3 k
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""' W7 @0 i1 h( V; u! A
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))' ^: u6 t" e' _5 l, s; Y8 u; W6 k
- (DEFUN C:O () (COMMAND "OFFSET"))
3 f) R6 u% Z' j - (defun c:s1 () (command "surftab1"))2 E: o' v8 w( I! }; @
- (defun c:s2 () (command "surftab2")). h- N2 M" m4 T$ \
- (defun c:ep () (command "explode"))/ _4 ]- O3 l, X' I8 U& y X2 b
- (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))
1 n5 n# b5 J6 `& R6 D$ } - (DEFUN C:QV () (COMMAND "QSAVE"))
& ^; c6 T8 M! U% y$ U5 R4 E5 }1 [ - (DEFUN C:S () (COMMAND "STRETCH" "C"))
% H( f8 E0 [, ^2 |) {
2 o$ H7 s# y. C- ;************************** CAT DIM **************************
# A8 x& I& P4 z- u - 7 O& L) v" L, r) M
- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I6 @( c" g% N. D8 M, a2 q& z5 M
- PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)
. l# J: v. n6 W1 K* D. ] - (SETQ CMD (GETVAR "CMDECHO"))
2 p8 I" r& \* Z9 J. x( z - (SETQ OSM (GETVAR "OSMODE"))
" s- L c' R+ S - (SETQ OLDERR *error*
6 m6 T* U# b4 ~. {1 y0 x - *error* myerror)9 C3 s3 [: k7 x) N0 g9 E
- (PRINC "Please select dimension object!")
6 _2 X: {6 ?! d& n5 c* [* f- h - (SETQ SS (SSGET))/ W1 j7 u+ O! f' `+ V. P
- (SETVAR "CMDECHO" 0)2 R- Z) W% i% ~5 [
- (SETQ PT (GETPOINT "Point to trim or extend:"))% y- Y: w& v$ b
- (SETQ PT (TRANS PT 1 0))9 W% y) a X n" _) ?- |
- (COMMAND "UCS" "W")
# P# x& ~ _0 [0 n4 b" J% B5 P - (SETQ LTH (SSLENGTH SS))
0 b$ K8 h! F5 [9 p/ T7 G - (SETQ DEM 0)
6 Y' I2 y+ K6 Z - (WHILE (< DEM LTH)
w1 R+ V& w1 r9 W' f" f5 I - (PROGN! m2 |. {7 ]. ~: P: n4 d3 O
- (SETQ DS (ENTGET (SSNAME SS DEM)))9 U# r. b* Z2 R4 a/ q- F. N
- (SETQ KDL (CDR (ASSOC 0 DS)))6 k; Z: P, j9 w5 i" t! r6 J
- (IF (= "DIMENSION" KDL)
7 u- g, J% K% j6 m, n2 R - (PROGN: h3 ] i1 Q( A& H0 a$ B; q- ]6 k; I
- (SETQ PT10 (CDR (ASSOC 10 DS)))
6 o$ @: @; l3 _1 e( r, z - (SETQ PT11 (CDR (ASSOC 11 DS)))/ N' M6 t5 @% a2 B
- (SETQ PT13 (CDR (ASSOC 13 DS)))% o8 h `* y/ l2 A& ~8 H. y9 `1 A+ p
- (SETQ PT14 (CDR (ASSOC 14 DS)))
1 V4 J% d; G0 B V - (SETQ N70 (CDR (ASSOC 70 DS)))
. v8 A2 H, I( V# Z, j9 Y& u - (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))( l* z1 x0 Y: R' @3 R% I; L
- (PROGN1 M$ w) t' h" \
- (SETQ GOCY (ANGLE PT10 PT14))- g+ R4 {+ y* z5 l1 w' g1 r/ g
- (SETQ GOCX (+ GOCY (/ PI 2)))6 C; ]% h$ m+ L x* ]( ^
- )
& R2 C" H" c) N0 v/ g% O - )) i c: Y' ?& C s: u; @' }
- (SETVAR "OSMODE" 0)
$ u/ F z8 T, \9 c2 U0 w - (SETQ PTI (POLAR PT GOCX 2))
) S8 b4 x* ?1 E) d: m3 h* f - (SETQ PT13I (POLAR PT13 GOCY 2))
0 k6 N+ W+ E6 v2 Z. n3 F! {2 l7 ~1 e - (SETQ PT14I (POLAR PT14 GOCY 2))
( e( e; {6 o- U; k6 _, K - (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))
* Y% p1 v; G! F - (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))4 _" Z5 h T& h9 a' E
- (SETQ O13 (ASSOC 13 DS))
# M. e3 R4 o1 G/ U# C2 c4 K! W' ? - (SETQ O14 (ASSOC 14 DS))
0 J; q0 P4 i/ g5 U - (SETQ N13 (CONS 13 PT13N))( _9 o3 j! \/ _* `" s# d
- (SETQ N14 (CONS 14 PT14N))
1 W Q( O7 M7 `' a E - (SETQ DS (SUBST N13 O13 DS))
! Z5 n, E1 @) t! g" w2 f" e - (SETQ DS (SUBST N14 O14 DS))$ T& D; l3 S3 }0 h2 m+ c$ B
- (ENTMOD DS)9 c) N# W; [# J; _
- )
8 v" l4 ^+ e4 z - )
" K2 X/ f) F/ @( J - (SETQ DEM (+ DEM 1))
. H% G" ~" X1 o$ h/ P- n7 c4 n - )+ [; j! B$ F$ l, \
- )
5 g" R& K2 \1 T/ ^7 y1 \ - (COMMAND "UCS" "P")
# T4 @" h$ ^: x8 Z. ` - (SETVAR "CMDECHO" CMD), O1 Y1 [; W5 B, L- T
- (SETVAR "OSMODE" OSM)
2 b4 } W$ ?: s9 i7 ~* b - (setq *error* OLDERR) ; Restore old *error* handler
3 J0 T1 _: Q5 h6 S - (PRINC)
% o7 d, {$ }" p8 x0 z+ i" ^5 \# n - )# j L9 r: i' A
* L3 Y2 P' C: Y b" \; C- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI# }* s( J7 a! D! s
- PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)
6 t4 c) y$ g" ]. Q - (SETQ CMD (GETVAR "CMDECHO"))
5 q4 q k$ w+ o3 X+ C: T - (SETQ OSM (GETVAR "OSMODE"))
% s( ^+ J. s z7 q - (SETQ OLDERR *error*7 N0 Z- @- \! b+ t
- *error* myerror)
2 o( n3 t' L0 ]( ?3 ]2 ~6 {7 d - (PRINC "Please select dimension object!"). u* T; G% p9 z4 r
- (SETQ SS (SSGET))3 ^7 R5 b/ M/ Q) g1 G& M$ a3 b+ ^
- (SETVAR "CMDECHO" 0)
/ {7 e: k. h, E t6 i0 t - (SETQ PT (GETPOINT "Point to trim or extend:"))& G2 [0 z* B; E* Q% v1 P
- (SETQ PT (TRANS PT 1 0))
! K" S' B6 I, k* ]% n4 S0 Q - (COMMAND "UCS" "W")4 J& d3 C1 ]: ^! {9 R
- (SETQ LTH (SSLENGTH SS))
# n9 V, \4 X5 n" p% G6 u( ], C - (SETQ DEM 0)3 \) s0 ~5 |: v2 w
- (WHILE (< DEM LTH)$ X6 H! v" X) U, I+ v, H
- (PROGN
$ \8 A8 V( V$ z: Y6 s1 J% V - (SETQ DS (ENTGET (SSNAME SS DEM)))
1 ]: g8 I6 _" f3 m% b$ J2 Y& Q - (SETQ KDL (CDR (ASSOC 0 DS)))
8 I4 I! w/ a/ U3 g- b - (IF (= "DIMENSION" KDL)# h& w4 U" U9 `6 j6 r4 u
- (PROGN) }" |5 I) u% N: r6 v
- (SETQ PT13 (CDR (ASSOC 13 DS)))
) G0 I; D) q5 w9 j( @5 i2 @1 l - (SETQ PT14 (CDR (ASSOC 14 DS)))# b2 I( H: q6 N; _: B( P% \! _+ `
- (SETQ PT10 (CDR (ASSOC 10 DS)))$ A( u( C: u* S
- (SETQ PT11 (CDR (ASSOC 11 DS)))* l) z5 A/ B! n* n* D9 d
- (SETQ N70 (CDR (ASSOC 70 DS)))/ z; c" m6 x: @5 a) v
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
7 D: ?8 F% p( t* u" g) N6 W ^ - (PROGN7 x) S+ F9 d7 O! y% D A! ~
- (SETQ GOCY (ANGLE PT10 PT14))
: W- m7 S& x; N; I9 Y$ d% G* V# L& f - (SETQ GOCX (+ GOCY (/ PI 2))) P3 S9 i5 r* u/ E% h4 j `
- )
_( S1 l- n) u" I1 [; z+ Q" ? - )
' Y% v$ E! h5 n5 s9 G - (SETVAR "OSMODE" 0)
: O3 T) R5 |3 u - (SETQ PTI (POLAR PT GOCX 2))$ p: K4 p5 G0 I% \! f5 e
- (SETQ PT10I (POLAR PT10 GOCY 2))" v! t2 n. j* ?- p1 w1 Y7 w7 b
- (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))
- y; E* a: `3 i7 x - (SETQ KC (DISTANCE PT10 PT10N))
* v$ f" p: B( O0 h% y/ ]* P9 ? - (SETQ O10 (ASSOC 10 DS)) U) V4 V r( ?- D- Q% P
- (SETQ N10 (CONS 10 PT10N))
9 n- Z) c7 o3 k+ \& R - (SETQ DS (SUBST N10 O10 DS))
! q% _7 i5 t$ `! C - (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))0 d8 T7 H% M0 H8 Q' X# ~
- (SETQ O11 (ASSOC 11 DS))
: H: |3 C9 n* ]+ r [ - (SETQ N11 (CONS 11 PT11N))
7 e, _/ x x5 T6 ?* o2 o0 W5 e - (SETQ DS (SUBST N11 O11 DS))
1 `! s7 H, |- b. H - (ENTMOD DS)
. H8 V0 S* f& J+ ~1 g/ t4 M' u - )
: ^) s2 X: q" R/ Z, D - )# b. F) `6 b1 T f
- (SETQ DEM (+ DEM 1))
. S9 ]( F5 ?9 ]$ J" t - )3 V1 Q/ w' U; u& d$ L: h8 y
- )
1 ]" h7 |% M0 a( ?; J - (COMMAND "UCS" "P") x# W( c6 P F5 d: G; b
- (SETVAR "CMDECHO" CMD)
: Z# y4 }5 `1 k: w0 E) K - (SETVAR "OSMODE" OSM)
6 @ Y1 P& W. k - (setq *error* OLDERR)
0 L u: H2 J) y/ h' ? - (PRINC)* ^& e& J, D0 b$ e9 J; o
- )2 |' s- {" c# z- Z/ e- u
- % k) j& Z% U6 S2 [5 T- l8 k$ k! o
- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================
% v8 J$ H( t+ `9 j
2 z% ]8 H3 v/ G1 Z8 [* r0 ^- i. L) g- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")/ N* j% q. y n" R5 F+ G
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")+ w9 h3 b; }+ W. x: Q1 ]
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt3 d9 p, n" C. t+ [& l y$ E7 }! N
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
- _: r2 ]- f8 z - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")
% ?& D5 U+ C1 o" [- j& h l - (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))
2 ^- N! a( e8 d7 \% n: I& V K) A - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
! J) y$ t! Q4 g# J8 K% d { - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
|6 w% @: H+ K/ \3 C - + P4 T$ \! t. Q( u6 [
- ;;; ================ CHEN COT (TUU) =================
Z& z1 B+ {8 n - ! b% h( {: c; G# I
- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")* ^( J- v1 U5 C' T) Z1 \0 v, @
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
+ m$ S9 p4 Z6 R1 Q" d4 Z3 E/ M - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt% y0 a! L" \* S! {! Z3 ~4 l( H9 |
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
# r, L( V/ G4 W* j% [3 ~ - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")& a0 Z4 [5 |1 L) B" ^, ^
- (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))
7 I( g2 u9 V7 l+ G' y( v - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
8 a: R0 Z. n e' V. f2 J - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
' ~6 ?& \1 S- M+ x - % X+ Z6 P4 @# \ D0 x) ?
- ;;; ================ CHEN KY HIEU THEP (TP) =================# n) r; T, o7 R+ l
+ U' u9 t# \1 `. c! u6 T2 [- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ") ]' _$ ~+ V& {
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p"), c6 Z+ g1 n2 n9 [
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
$ _. s7 D5 m, ]; P! r' v; u - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
5 b# W7 r8 Q* ~4 ~ - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")
v# {( J, U! {7 @3 y: k# I1 b - (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))
% l' P [) u) N* X2 a - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))( N! S9 _ I- {
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
" D4 [/ d+ q- z# C( s
7 ~1 G6 e) ]/ H. p- Z- ;=========================== TAM TUONG (TAM) =================================% w5 p6 R4 d l' s
% Q1 ?/ v! e0 \+ Z, _- (defun c:tam(/ data_m)
/ r7 Z) j+ [/ F1 K/ x9 A: A& G+ |, E/ ? - (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0))1 I! X( E8 r. A% f3 f B7 |
- (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))
/ i0 l$ O% z$ v+ }0 B1 E - (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)6 W4 R8 k) U) `, _- ]8 y- a
- (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset4 Z. f5 Q: b* p3 l" m7 S0 I5 O
- (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr
9 s7 T$ I! {% H - (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ)
9 D/ z* V* V" X5 k - )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if
, @, J% }/ x' d2 V. ?" [& a! r - (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1); {, F* ?" I. @7 @ l
- distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)* s1 n- s+ ~6 ~ J6 J+ ~( F* K: s& E
- (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))# f- s. j9 r* m, J+ ]2 Y
- (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<
9 Q: O+ q0 K, f& {/ Z - (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)
- I7 o0 d, }) Q0 \0 k/ [ - distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))
* C( [) M% Z: V" Z - (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p48 G# n( E& Z6 e2 c1 ~/ P- e
- (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not
S. C: f! g! _& d - (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget
2 M& ? ^ ]: N( U7 Z - (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))9 G, N. L7 J. u9 r/ Q6 M
- (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))
) F- q9 C6 r0 F7 }
0 o m6 f+ M1 A1 d- ;============ GHI CHU PHI (T1) ================
# g/ P, L( t* G: P0 G* H - 7 |1 n9 F: c5 p
- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1))6 o: H% I: S. d5 Z& P3 K* {' _3 P0 m2 [$ S
- (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3 R( \) N! x" C x5 A4 P
- (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2)
4 N; M& r r# Q& j4 j+ Z, q3 W - (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)
9 T/ K# }! E9 X - ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1))( R: z& a8 t9 X4 N
- (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9)4 ]' g5 Q; S8 e: i
- 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1)3 W1 Q' ?+ _8 W2 u
- (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )
4 I9 S* u2 Q' S) u# r! L" Q - (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")7 ^. _( p& D5 y
- (command "ddedit" pause))4 t# K# u- u8 c% i: `
- ; r9 _/ S; \* A# n& k9 S; _* b0 Q
- ;;; ========================== Join (J) =================" m5 W! v( E- b8 J+ B; i# c
: h1 ?( Q( H" F) X- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))5 J* X* c% p) S7 l' a
- (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? "))& O; @7 @' q2 n" J: h4 F
- (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)
4 h2 \( S0 H5 ?( P, r1 V/ c - ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")
8 p+ R. w, [2 m. w& h0 O! ? - (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC"))3 l# Z! B/ Z! Y5 T+ j; l: o* E, Z
- (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt ""))) l5 P: o6 J; M' M9 x* y0 A
- (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" ""))
& G/ \$ X* m4 F6 j - (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))2 N' y. O" z& e1 d
- (setq *error* m:err m:err nil)(princ))8 x8 K- G. l# ^/ T: r
4 \' |; p: O6 u) f3 L) e- ;=====================================================================9 d% p: d8 B1 E; S' |2 d
- ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.6 q$ B8 a9 t+ Y# @' }% S! o
- ;=====================================================================3 q3 E$ L0 v, Y
- 5 k9 ?; I: c- y: d3 B- N
- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old)7 s8 d9 N4 L1 J8 p1 [
- (setq old (getvar "OSMODE"))
9 z2 G; H* x; _* E* [2 O. k
& F! D, M% t! x3 p. }- (setq p1 (getpoint "\nStart point:"))
2 V5 A8 \8 C9 P3 b V7 E3 H - (setq p2 (getpoint p1 "\nEnd point:"))
( O0 }9 l, k% V8 G) x& i) ^9 w - (setq side (getpoint p2 "\nOpen side")); k3 a4 a/ |7 I9 t2 H
4 H, j+ T G* u- (setq dis (distance p1 p2))
6 i7 p) z! G8 y8 @ - (setq ang (angle p1 p2))
7 s- {$ f7 B( |7 z$ i8 Q - (if (< ang (angle p1 side))
; ]( S8 d N, G* e - (setq angside (/ pi 2) )+ F B$ V6 Y T( L! f
- (setq angside (- (/ pi 2)))/ F1 b. W2 S+ \8 {4 ?4 o0 u! T
- )
. ^3 N; ]: W" F$ y - (if (>= (- (angle p1 side) ang) pi)5 e4 }5 E W1 l( ?9 F
- (setq angside (- (/ pi 2)))
/ N( G; e" q! T - )
* V) S( m3 Q1 d - (if (>= (- ANG (angle p1 side) ) pi). \. @% Y( x' h3 {! P3 r) f
- (setq angside (/ pi 2))
* c |7 }+ O* D, |: H - )
5 O" g s8 t1 Q7 L L4 R7 f/ t
% k1 V x$ A- C7 c- (setq p3 (polar p2 (+ ang angside) dis) )
: F; h& T6 j$ }/ \ - (setq p4 (polar p1 (+ ang angside) dis) ); P6 } e& v' @! ~
- (setq wid (/ dis 15))
+ t; F" j1 {( Z4 A' W0 s
. I, \0 _' Z( q/ W- (setvar "OSMODE" 0)+ Z- L% O0 ^+ [! |1 ?* K' l
0 L5 G9 `$ l" P. ]: I- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
" {' P& q, q1 u - (polar p2 (+ ang pi) wid)
6 c+ z% S+ _' ~: z4 [0 o - (polar p3 (+ ang pi) wid)
% M! W# o2 W g8 d0 ?# e4 C - "")% i' Q& W; U" E5 s4 C( a
8 {. g$ @' {/ \4 P3 A- (setvar "OSMODE" old)
0 X' f% x W, ^% c - (princ)! U, k5 h Y. d
- )4 T, j; y B/ I* {+ a
1 B& R5 m4 z& B/ V, l+ f& ~- ;=====================================================================# b' V. E) d# V7 ~; B+ j
, n" \3 T. F* z5 H1 G- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old)
; x9 g! }' L3 u6 d! G( y - (defun cua1 (pt1 pt2)9 t% v# F, U- }
- (setq p1 pt1
! f4 K0 ~; |5 h( W" W - p2 pt2)
. ]/ W. j2 d1 h9 l. M e. k1 V - q4 A B; r }3 i; f! N
- (setq ang (angle p1 p2))
9 I4 P1 g9 `5 ~# z- Z' D! F2 | - (if (< ang (angle p1 side))
8 ^$ L3 s7 P6 p2 z% f ]: o - (setq angside (/ pi 2) )& @, K9 F2 v' q r4 C
- (setq angside (- (/ pi 2)))2 v4 O; W7 [5 q. Q
- )
" ?, N/ k/ A# A! |1 O - (if (>= (- (angle p1 side) ang) pi)
) |8 d- s- l9 F9 J) Z* W7 H# m - (setq angside (- (/ pi 2)))
& _2 ^) r+ d% n& c* p - )
) q: K* v! K; p% h/ F1 e - (if (>= (- ANG (angle p1 side) ) pi)
# Y3 @. T l- F9 ` - (setq angside (/ pi 2))
8 }& N1 k% d! k5 B' K2 r- _) M - ); K' X1 A/ H* g/ I; I, z, h
* ]2 p3 J4 L2 a" ]- (setq p3 (polar p2 (+ ang angside) dis) )4 @2 g1 M5 X3 f0 @; o: v- Q. O% E
- (setq p4 (polar p1 (+ ang angside) dis) )5 g: d! T/ v# g+ T; n! [) W" l) N
- (setq wid (/ dis 15))
. W2 u! w8 c N# z) b; _: h/ W - g2 A- S v" G& }
- (command "PLINE" p1 "A" "D" p4 p3 "L" p2 6 ], {# r* K- V p. L
- (polar p2 (+ ang pi) wid)
! Z! j! ^" R4 a8 n2 U - (polar p3 (+ ang pi) wid) + q, J0 D( G. I8 I* c) b0 W
- "")
& H' e5 m; u8 u# ]" \/ P - )
/ s z# @8 p8 u! {1 g' C - ;=====================================================================
; ]1 d; o" T+ T' Q - (setq old (getvar "OSMODE"))
% {4 _) _6 d0 f4 `7 O: ?5 M
& A6 K8 p( ]) [1 T# w- (setq p1 (getpoint "\nStart point:"))
7 z& C$ L) u* }4 d - (setq p2 (getpoint p1 "\nEnd point:"))
! T, b1 F# n7 a. f. { - (setq side (getpoint p2 "\nOpen side"))
1 z8 H( i2 c4 ? p# ^: D
2 t P( O N" I/ [8 t- (setq dis (distance p1 p2))
( J$ b6 m+ H3 H' ? - (setq dis (/ dis 2))
' G; n; V0 L9 k6 t. Q - 6 D( K- X9 ^- }: i
- (setvar "OSMODE" 0) G* A! E1 n% P- v% \# N- t
- ) z7 P( R% e* P
- (setq p1 (polar p1 (angle p1 p2) dis))$ E9 ^! f1 @& l& G5 G$ C- `
- (cua1 p1 p2) 2 Z' S$ o3 i& Q
9 c- ?) {9 r5 }* k3 c" X- (setq ang (+ ang pi))( l+ N u1 F. e- y
- (setq p2 (polar p1 ang dis))
! V* e" k# A6 \( A - ; (setq side (polar p1 () dis))
$ @4 d7 C) P% y$ P n - (cua1 p1 p2)
) A! g4 p$ ~0 j2 O1 X
* w$ [' M4 R* q+ T3 l. m- (setvar "OSMODE" old)
) |6 h; |7 x+ S! x" v7 C8 A/ i - (princ)
7 i+ d0 P6 O7 Z6 K8 o) A - )3 Y; U/ E( V: w% g
: I; N% g# C& p: m: @- ;=====================================================================
r" ]) ~7 [/ [( e! l - ;"Glue" text strings. All adopt first's properties.7 g/ J/ |7 s9 p* p% v6 v
- ; Author:
0 X% \5 u" \6 R7 G8 s9 L - ; Henry C. Francis+ ^, T# A' t) j3 {* P
- ; 425 N. Ashe St.% f5 r" p! w! e, e' b6 E
- ; Southern Pines, NC 283877 ] [7 c% |5 T6 G
- ; http://www.pinehurst.net/~pfrancis
% w( l4 q. r2 b - ; e-mail hfrancis@pinehurst.net
- a g- F9 \" v* s* o - ; All rights reserved.
, l: F1 K. W$ w8 B& m( W3 D - (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11), M' u% {( s4 |" z b
- (while9 s( K/ C2 r, U
- (not5 B2 J3 J2 C v% ~: i6 ^: k x
- (and
4 R& v0 _' Y! L - (setq ename1 (car(entsel "\nSelect first text string to join: ")))
% T2 A& U w" Z0 R - (setq ent1 (entget ename1))4 S: C3 E- Q+ s- q
- (eq(cdr(assoc 0 ent1))"TEXT")* t3 `7 A0 g2 r( D# o" w# t
- );and6 O& @; W. W2 c: w" ~3 A
- );not3 R1 M2 v6 m9 L& O* P
- );while% R+ C( e# B% Q: M# T
- (setq old1 (cdr(assoc 1 ent1)))* s N2 m# H% c
- (while
, `5 _- u1 e+ R7 T7 }, H - (not, G" h( {8 b7 E% G& {
- (and
( |# z8 l$ M" \1 g3 } k - (setq ename2 (car(entsel "\nSelect second text string to join: ")))4 `. Y/ g9 R: k2 J0 {5 ~
- (setq ent2 (entget ename2))
' m+ P5 h0 y) n7 _' } - (eq(cdr(assoc 0 ent2))"TEXT")
: E2 u8 K4 n* d2 c2 }7 e& ~0 q/ c) F - (not(eq ename1 ename2))
( f$ s( ` I$ N8 A+ E - );and
6 l* @ h0 X& I! {0 k# H {9 i2 P - );not" j0 h5 h) a: ~# B8 A5 H# ^
- );while8 W# h, v1 E" d! i
- (setq old2 (cdr(assoc 1 ent2)))
) W3 y# q/ B! O' s3 e& O7 p- P% ~; w - (setq new1 (strcat old1 " " old2)
3 a5 L! R( L; a$ i - ent1
* N8 E) ^! s5 f Q2 v" U - (subst (cons 1 new1)
! |! ^; \3 i( k1 o2 L8 C; ~ i - (assoc 1 ent1)
' n3 m& j. |! N - ent1)$ ?7 k( f; Z9 u. H0 K' A* B
- );setq z. C6 s8 l& _. ^. v4 t
- (entmod ent1)
# m7 n( r) Z- r& Y6 M' E - (entdel ename2)
2 J+ Y; Q! b, d( u! n3 j - (princ)
3 F$ U2 B, a. [- P% ? - );defun
; Q+ o7 E" j# @0 F6 V; V - 0 V; _9 [ Q1 ], y1 L+ H
- ;=====================================================================. X; Q* `" L3 E, ^# U! P3 C
- , }0 o0 S% p+ b0 ^7 m6 u: O2 L
- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)
2 n T5 B4 h2 U( t4 z
: g' g& p6 K& l% o$ x4 E3 g- (defun nterr (s)
0 i1 T7 o8 e6 [3 i; ? - (command "_.UCS" "" "_.UNDO" "E")& y! s$ j3 x. o. @: t
- (setvar "cmdecho" 1)2 s0 v; q# M" X& b0 K
- (setvar "blipmode" 0)
/ i9 g( o9 L9 [7 T. \3 N4 `4 J3 P - (setq *error* olderr)6 }0 E& _8 v9 f& [7 |
- (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil
v+ X: {) Y: J( C% U - nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)$ [# L) U9 S# \0 z J% ?
- (princ)
3 [7 t5 X( k; @1 L& ?- G5 f - )( D" l3 `" L" `% P- g% A
9 M% v4 q3 {8 y, ~: b( V+ e8 z# R3 n* V! R- (defun tim_in (dt / p01 p02 ktra)
( R" c# I! [7 c" M" q2 _8 j/ K - (setq p01 (cdr (assoc 10 (entget dt))))
2 X5 r" C4 W. g% ^ - (setq p02 (cdr (assoc 11 (entget dt))))1 j: a6 ]7 g t% g: F
- (setq ktra T)8 v( H7 H$ I6 j4 T3 u) I
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2)) / g) M# M; G+ k6 E* r& v
- (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))/ h2 a/ B: {$ z9 O# x+ V6 [
- (setq ktra nil)9 W5 P6 O m8 o: P
- )
; A! J$ W3 L2 k" B& l - (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
- R. B8 T7 Z: U2 n5 R/ W; {- O - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
$ y u& p4 {0 { k, K( ~ - (setq ktra nil)- p- y& }; ?8 l& [' m( D
- )
/ g, y3 @0 y# d2 v) O - ktra: n9 Z, h) T# Z& v
- ): n5 z& B' U# p# B
4 x# l: N- G; T M- (defun timdt (dt1 dt2 / p01 p02)
3 q) s D1 v7 a5 Z - (setq p01 (cdr (assoc 10 (entget dt2))))
& q3 B9 D C. u* k - (setq p02 (cdr (assoc 11 (entget dt2))))
' c! E1 v' z Z. w: ]8 z" Y - (setvar "ucsicon" 0): r! L6 B8 A' F" {6 d( \
- (command "_.UCS" "E" dt1)+ ^) m e9 Z! g3 v2 s! J; g
- (setq p01 (trans p01 0 1))% U8 [% V/ n5 V
- (setq p02 (trans p02 0 1)) d' ~9 ?6 b K: m
- (command "_.UCS" "")
: T5 z+ a$ e" }+ l9 Q5 I$ y( H' {/ i - (setvar "ucsicon" 1)9 t' j' V% Y1 a4 S; ?# G7 @5 J
- (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))3 j: X! Y2 [$ n
- T
' w- \6 R" j0 o! x - nil
1 |% z+ i) a$ e9 | - )) K0 \. y0 ~0 b* ], w8 v" d N" _
- )9 J) [* B( h& B) s6 U8 o: ~) F
- * C+ b0 y! [% ?7 M/ D# ~+ W$ m. n
- (defun tim_out (dt / p01 p02 kt)
1 x, @ w! \8 q5 M& t/ }1 N- |: G - (setq p01 (cdr (assoc 10 (entget dt))))
' K3 I$ N" I" D - (setq p02 (cdr (assoc 11 (entget dt))))
& P: s# p( U7 n1 N2 e9 b$ v" X - (if (and (> (car p01) (car g1)) (< (car p01) (car g2)) 5 F" y4 }' R0 \! {: R9 f# I0 |
- (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))% b* s0 b$ ?( M0 a, N& T
- (setq kt p02)# r$ [! D9 O% p+ S% X* m, y
- )- i( P3 P% e3 s' T) M) a; y
- (if (and (> (car p02) (car g1)) (< (car p02) (car g2)) " y+ D7 t( R- U, j O
- (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))) A4 j/ ] T! p; _( J
- (setq kt p01)! z0 c9 x9 Q0 R4 U1 P% B; g" k
- )- _0 l! v9 X+ J4 s( e% p: D' u! C
- kt - }! C8 b! l2 s6 N$ |
- )
: r. ?7 l. m7 k% p - : I6 X, j' R- w6 p
- (setvar "cmdecho" 0)
* X9 N5 Z7 `0 J+ g! i - (setq olderr *error* *error* nterr)3 T* o; v7 b1 F3 {3 U
- (command "_.UNDO" "G" "_.UCS" "")
7 ^: ^" z: C2 h( q - (while (null ss1)% C6 X9 c% U% ]' `7 w9 ]
- (princ "\nChon tuong muon noi...")
* x; b: y+ a1 a& H0 S1 ]7 ] - (initget 1)* @1 y" a7 O4 k) Z: [+ y
- (setq g1 (getpoint "\n>Goc thu nhat:"))
) G$ Q6 g% |4 K9 `5 N* z - (initget (+ 1 32))
H( A" V/ n* H5 S: O - (setq g2 (getcorner g1 "\n>Goc thu hai:"))
( e5 o4 {% Q; F8 g/ U - (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
2 V$ O4 f4 ~5 o- n5 { - (if (null ss1) (princ "\nKhong tim thay doi tuong!"))) |2 ^5 W0 I: u; C7 y8 N3 j1 L1 z
- )
5 g2 {0 N5 @+ s# h/ [ - % z* J7 k' G" D5 a% B
- (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2)))+ ]7 T, m% T9 S5 i# }
- g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))
+ B2 N, i3 F. v8 b& _ - g1 temp)
8 E. j, f$ t' X- M7 j- q- p0 ] e k - (setq ss1 (ssget "w" g1 g2))) g- E! g$ c9 I# N* X
- (if ss1 (command "_.ERASE" ss1 ""))
# l9 x3 R8 i9 _ - (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
A% C0 @+ _2 s( ^; v9 j. B - E! R8 ]/ x' I S+ K
- (setvar "blipmode" 0)
# {1 h) V, A9 J9 U% v. c - (setq i 0 l (sslength ss1))
9 a: N/ O, b# }/ d - (while (< i l)9 G( S. M+ ]6 ^* o9 W
- (if (tim_in (ssname ss1 i))! S5 U$ @8 l9 v; C- `0 x% J
- (progn
% N. o8 z. \0 r" u @: f! B - (ssdel (ssname ss1 i) ss1)
. l* S) D! f* J2 y, d. ~ - (setq i 0 l (1- l))
4 K- O0 [7 {# t+ r6 s - ) D% T) z7 v7 [( `( Q" A K
- (setq i (1+ i))5 [. _1 d& O5 t
- ). N$ q& r( T+ @) E N) h. K
- )" b) j8 ~9 H4 u2 _7 [2 F
- (setq l (sslength ss1))7 R3 J' E* e3 ?5 m5 A( B5 d
- (while (>= l 2)
) c# Z1 E/ ?8 c" N - (setq e1 (ssname ss1 0))* [. z) Q+ [2 ~5 e
- (ssdel e1 ss1)
S/ L" T& Y4 j0 A; h9 }1 C3 l - (setq e2 nil i 0 l (sslength ss1))
9 Z0 x6 U9 e- n6 o8 a8 h/ I - (while (< i l) % N/ ~! Z8 @2 z0 M1 i4 T+ G
- (if (timdt e1 (ssname ss1 i))
; O. s2 P V4 o' W - (progn
: `. }- z+ M, y8 K, J$ Z7 K - (setq e2 (ssname ss1 i))3 ~; d0 Z# R/ ^: ]$ k5 g% Q* C
- (setq dd (tim_out e1))
9 f- N% p ]* R1 A4 R0 x0 F8 I - (setq dc (tim_out e2))
3 u6 L: E% i6 D' `! E' } - )5 [1 ]% u4 G; Q; D N" M8 {! s9 l
- )0 h3 F. t) j# }) C" i
- (setq i (1+ i))
) @5 a- n$ G: U: z3 ?1 X - )* b. P( @* X4 S4 I
- (if e2 (progn
6 H4 d' F0 |; M- _ - (ssdel e2 ss1)
) P6 _# K+ C# Y2 k+ F) ^; S - (command "_.ERASE" e2 "")6 u( Z* m4 r, h) ?
- (setq temp (entget e1)): o7 ? I( d% i( X' _
- (setq old (assoc 10 temp))
" R; V* a8 h# r5 \4 n7 J+ C% L - (setq new (cons 10 dd))
3 F7 t: {$ Z. W* W% g - (setq temp (subst new old temp))
3 ^' F' J- @( b" |& n - (entmod temp)5 q; P Q4 E/ v. ]# O
- (setq temp (entget e1)) |! U: x. Z: \3 O2 |3 A
- (setq old (assoc 11 temp))
; G/ S4 g* ^; k/ l2 m v& G - (setq new (cons 11 dc))$ z( q1 j; y% G' [9 i1 v: I0 T8 u
- (setq temp (subst new old temp))
9 o" q8 u4 V- T6 x$ m - (entmod temp)
" I C: g/ L5 E$ k/ W) G - (redraw e1)- ^# V; m& E5 U6 N) ^0 N" i& X$ ]
- (setq l (sslength ss1))
: U N. |+ g% N& m! U: \( v - )* s# R% Y( I$ O; X
- )
% D8 [$ }) ]% K/ e1 e - ); c/ p' B/ t8 }9 j6 }$ n+ m4 ~
- " J. L5 N" _6 n$ W
- (command "_.UCS" "" "_.UNDO" "E")
$ Z0 X& b8 w: p2 B4 _: a - (setvar "cmdecho" 1)" ^( p8 z) c8 |4 L5 r/ e8 q
- (setvar "blipmode" 0)
" T5 R$ x3 q8 D - (setq *error* olderr)
3 S& X" T" o8 O/ s+ X& k - (princ)4 p& F7 _9 [% d; M" q
- )
* V; K( S" Y6 U3 z. f - ;*********************************************************************4 z& j4 C9 \2 U% h- c# D! w0 H3 o
- (defun ketthuc ()
- X) [- `9 W# A* t# h3 k( q/ P - (setvar "cmdecho" luuecho)) n$ N* P! A7 K% s. e
- (setq *error* luu0 v7 e& a4 ~* t! @/ r% @" v4 k
- luu nil + l( u# ?" _, @
- luuecho nil: I8 Q) @5 @8 `1 M( P# V# ?
- );setq
9 \- Z/ ?/ t2 J: P - (princ)! @" \; R6 Z& r% c' Y }! B
- ) + u; e! d) i3 J) {# J! t
- ;*********************************************************************
$ j. `# f$ [: C1 k" p2 _; ` - (defun modau ()3 |# u" u; z1 L4 X
- (setq luu *error
+ R/ i6 E4 J. a# @4 \" i5 F - luuecho (getvar "cmdecho")' L' a. b; L: c/ O/ N8 N
- *error (ketthuc)1 J4 ~# u) c- }7 S' U
- )1 n" t% f: L& ]4 }9 z; K. w
- )9 t$ {- ^7 R$ J
- ;*********************************************************************' u6 _7 O/ y! G5 r2 \
- (defun xulytext (text / kytu ma sokt luusokt lui )4 e; }; X6 D3 m2 L
- (setq kytu (substr text (strlen text))
& r2 b4 ^( x$ d4 V- X - ma (ascii kytu)2 l+ ~3 v5 s! b6 G% Y
- sokt (read kytu)
9 `. C2 n" e: b" C# t1 l3 Q - lui 14 m$ j% q- d' Z1 s
- )9 J W) d# L: h( V3 m* g4 J
- (if (numberp sokt)6 F7 Q7 u* \6 n" E* n
- (progn9 C2 j5 ^ y" L1 |' I, F
- (setq luusokt (1+ sokt))8 J6 K" N8 M3 F) r. E
- (if (and (numberp sokt)
6 `' n! ?* j# V' Q+ k% T - (> (strlen text) 1); x2 u/ U6 ]0 t6 r% i* v t' A
- ) 4 q3 C! v1 y4 U% X
- (progn
+ a/ f; y3 Y/ x+ ^% Q& O2 g/ p - (setq kytu (substr text (1- (strlen text)))
% J7 N: D- A# n3 d; z1 H5 P - sokt (read kytu) , @1 H/ }+ T3 W
- )
4 O- S1 R6 r$ P k0 F( v2 ^ - (if (numberp sokt) / f$ i; [& [' P5 C. m& Z( W0 C
- (setq luusokt (1+ sokt)
" e: t% b( E3 [. b - lui 2
; K( U/ ^4 u5 A8 G$ g
# Y4 I$ R* M1 f, c* j" p- )! R$ x0 i! }! Z5 |' W
- )
" N# e1 C$ V* b$ d+ a* R - );progn $ D+ o! H/ v: T+ f2 W$ y4 K
- )6 n, G: u+ A/ [, m- S# M4 [/ x
- (if (= luusokt 100) (setq luusokt 0))8 y, v# P" v, Z1 C1 J6 ~& R/ K5 k3 t
- (setq kytu (rtos luusokt 2 0)
/ e* }/ J0 ~; w; g* G9 ]0 W- l - ' e6 T1 h1 g" m# w* Q
- text (strcat (substr text 1 (- (strlen text) lui)) kytu), E( T6 I0 ?1 P# Y
- )
2 G; `! G0 C1 _2 i, N - );progn
$ f( H; i/ E# I4 U3 ^+ Y - (if (or (= kytu "z")
& C& J$ T j* _' z, Z - (= kytu "Z")5 e# U& [5 g5 H& P
- ): ?/ ?* ^, e0 D) V7 ~
- (setq text (strcat text "0")# F u0 R- l; J+ B9 u1 u
- textxl "0". w3 c2 a% ]( Y/ R" b- R; C( X
- )
( V9 @- D. T8 }6 y0 h. Y7 P! k - (setq ma (1+ ma)" F6 \) c }. ~* \4 O+ k: C8 o
- text (strcat (substr text 1 (1- (strlen text))) (chr ma))# U6 M. {' g: A' l8 I9 \9 v
- )0 p9 b# Y" \/ k# T' Z
- );if. G H8 W0 k. T, y( }3 u
- );if- ^; `8 ]8 f* e" G! w
- )+ o1 y4 B- W* M& S8 N4 k
- ;*********************************************************************- t* ^+ p: q4 k4 m0 _* M
- (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)3 X3 D. h# e' V1 Z2 b b
- ;Neu doi tuong la text thi tiep tuc2 q0 \5 R" @& i3 g. e
- (setq doituong (entget tendoituong)* u( W- ?1 t; w8 l. y, Y5 e
- kieu (cdr (assoc 0 doituong))
4 S: U; g# c: M2 W* m9 y- \ - canle (cdr (assoc 72 doituong))* [& y3 f) R$ r$ X+ d
- ) : J" |# r' g0 N5 i
- (if (or (= kieu "TEXT"); T/ m6 U! |0 T2 z# u4 A% _0 a
- (= kieu "MTEXT") . B9 d' X! j- n; V
- ) . \ P; C7 m7 R
- (progn
+ r; k |" }: P3 ~4 M3 h - (setq textxl (xulytext textxl)! d/ S' E8 I. w y8 u3 ?+ e
- text (cons 1 textxl)
/ ?; i+ S( E! `5 `, P) U - vitri10 (cdr (assoc 10 doituong))6 K1 p" d, |1 F- I7 h' i
- vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))
2 A0 v, o( }8 D4 a. Z - vitri10 (cons 10 vitri10)
7 S8 j5 P: K' G5 x' R* z - vitri11 (cdr (assoc 11 doituong))9 B+ U- R! K! a0 x2 z) l2 [* e# C2 I
- vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))
7 x3 B l2 Y* z% L2 u% ^, X - vitri11 (cons 11 vitri11)
+ T) @" h/ \" L; p. f - dem 0: i" W2 s( V6 k i
- dsach nil- w: V, N4 q: B- o/ {
- ); Q# i3 C. o5 a3 P; q; h; H
- (foreach tam doituong
. o8 b# s. i( Y% b' ~) A+ u- k7 V - (cond6 J' ~; e6 Y5 m$ C
- ((= (car tam) 1) (setq dsach (append dsach (list text))))
3 j* `5 R; K( ^ - ((= (car tam) 10) (setq dsach (append dsach (list vitri10))))' Q0 q* t: m8 |1 M6 }& d8 e
- ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))
0 z7 n3 k3 Q/ S - ((setq dsach (append dsach (list tam))))
" X7 A( {2 X; P+ F% n; I8 Q - )* h0 j$ N* m( \7 M0 `7 ~
- )
& T8 N: W8 z% B% O& d - (entmake dsach)
4 o n. c" H! b5 m4 `& j4 n - );progn# K- p) Z& T1 M4 q. b
- );if
/ A6 K, U. b( @; p7 s7 z: F0 ~. ] - );! ]7 V7 V' R4 C! {2 S
- ;********************************************************************* B! c+ t/ X" O/ @
- ;sao doi tuong cu sang vi tri moi& ^. H% D3 G! x: p, @) E) [
- " I ~, [! ~; @. r) } ~: o
- (defun copy_dt (tendoituong )
$ G# z0 R1 p. b - (command "copy" tendoituong "" goc toi )
% f# S! D( F$ B ?% Z& W - );defun+ h: a/ l j6 S% w, }3 w
- . F; j% R6 G3 Y
- ;*********************************************************************6 T F; y. t0 d f* v& `
- * L# w1 Z/ {7 ~1 [+ C; t
- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
2 c3 B- L2 u d- ^ - ; Khoi dau cua chuong trinh
; ^) x- d/ G. ?3 c# l - (princ "\nCopy Inteligent...\n")$ ]& x# p5 Q8 j$ y
- (setq luuecho (getvar "cmdecho")
2 C2 D7 W8 R# H0 s- n* |- A - luu *error*
0 D5 l. s9 d9 [$ {" v3 U - *error* ketthuc
1 \! P8 O1 }' h4 B0 p. s - cumdt (ssget)' f, o S1 |: _' x+ G
- dodai (sslength cumdt)
- w" n3 p( X% O8 y - goc (getpoint "\nSelect base point:")/ {5 H+ {8 _; i
- thoat nil
9 w- ], k) j7 h h - dem 0, B5 `# Y I& L
- textxl nil0 B7 K# Z: @( a# `- y' k9 l0 f, I. \
- );
; s: _7 C7 Z. `/ T* M h - (setvar "cmdecho" 0)4 G* X( g( l: [# N
- ; Loc ra duoc ong text de xu ly1 q# J3 b; ~8 _/ ~
- (while (and (= thoat nil)
- J* P3 P2 W( y# U3 c - (< dem dodai)0 D# g, y/ C5 @. J( G# p+ a
- )+ G; @! Y- o0 P5 |1 h/ V/ K- d: x
- (setq ten (ssname cumdt dem)
! d) F9 p0 _; Y - dem (1+ dem)" M1 H5 T. v( h+ j0 R) x* w
- doituong (entget ten)
$ G& K$ P+ T# ]4 V8 d1 k - kieu (cdr (assoc 0 doituong)) * B6 U3 V& q9 v5 E
- )
8 k) ]6 [" x5 S! c - ; E: B3 \9 c, w( q
- (if (or (= kieu "TEXT")/ P5 x! S/ ? h7 W
- (= kieu "MTEXT") 7 b8 W9 D& g3 i( U5 t. u
- )$ O, }% ^! i% j) n V& G0 P8 P
- (setq thoat T+ K9 H3 c$ Q" `4 c, D
- textxl (cdr (assoc 1 doituong))
9 H/ e, @/ y7 M$ P$ g* p* r5 q5 [ - )
7 \ E. m2 @# ~* W - )
4 e+ ]; \' w$ Q5 Z, v: z - );( z& D- a+ T4 a
- (while T
9 u o9 m6 Z. i9 C/ E: j - (setq toi (getpoint "\nSelect next point: " goc)
* Q$ e: E3 ?$ d6 F6 k - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
% Q) F1 j0 R: ?+ H4 ]7 g- ~ | - dem 0# h0 I/ |, b6 m+ ]) K3 h9 V
- )( i* v7 h% i4 P9 ]* x
- (while (< dem dodai)
V& G% ~5 P) v1 j$ X) t9 T6 ]( L - (setq ten (ssname cumdt dem)* F) u5 Z& W3 B$ Q) V2 W* \' T4 {0 i
- dem (1+ dem)% c, ~5 E1 N4 }
- doituong (entget ten)
+ y. X4 ]7 s% S+ h: g. w% Y# T - kieu (cdr (assoc 0 doituong)) ! k+ D1 n% o) ^3 Z; I: d% L
- )$ a+ m2 n" S+ \, x6 M% x
6 b1 ~6 p- O# h t0 U @1 @- (if (or (= kieu "TEXT")
- V* j4 G8 W9 P" h4 P" E: p - (= kieu "MTEXT")
( a2 J/ L" ?0 @+ @8 _( o - ): t; a3 F, j# m1 f! Y+ [6 C5 ^- A
- (doitext ten)
O2 W& K" A! y {9 A9 ~7 r( Z1 h - (copy_dt ten)
5 g; i1 O# s% b6 d - ~$ R$ _) g0 b! ^, I, g( \
- );if) I P6 J" }# g' g4 G+ Z) \
- )
8 ^ J( C5 h: P# j* b" m* c - );while2 Q8 D& l6 A/ R2 S
- (ketthuc). @3 y! A8 P+ r* W7 d
- );defun
6 k( E% [# m0 D* k9 D - (princ "Type \"DG\" to start")- T4 S" o. E2 M6 T: B6 S
- ;Note: bien toan cuc: textxl vitrilech
! z5 C6 X) }0 z3 e
$ r# r* r/ O4 p* r. f6 |+ }- ;=====================================================================. R$ }% b! K3 k! g
- ;;; PLJOINFUZZ.LSP0 R0 b! m( Z6 i" D2 q6 h( T9 g
- ;;; Joins lines, arcs and polylines using a fuzz distance
# [# M5 s! p5 M- b& s2 P) ?) j - ;;; If only one object is selected it tries to join to all objects that are possible
# }1 J; R* p" @3 A - ;;; By Jimmy Bergmark" W+ d7 a( ^( }# F9 N
- ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved
5 [9 e/ s3 f: `! a& x/ `5 i) I - ;;; Website: www.jtbworld.com; a; e+ Y8 c9 D) @ H4 Z
- ;;; E-mail: info@jtbworld.com" x8 G8 {& @- t# [; J
- ;;; Tested on AutoCAD 2002,2004 and 2005: \, y- r0 V% [( L4 Z0 I) N; Z! F2 o
- ;;; Latest revision made 2004-11-115 r$ ] ?& D, Z) P& \7 A Q
- ;;; Minor code cosmetic change made 2004-11-13
6 }- M8 P" s; d6 N$ r% n+ D8 z2 v - ;;; Bug corrected 2004-12-23/ D# t9 n7 X! ?6 A' F1 [5 G5 f" Q
- 7 D& H# x1 ]' b3 N! @
- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf2 C6 Z* g f" p* | x3 q$ W
- (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)
& I' E. Z, V* k/ s$ _0 g - (setq oldcmdecho (getvar "cmdecho"))0 M( e3 [7 A6 M; M! p
- (setq oldpeditaccept (getvar "PEDITACCEPT"))
/ z$ N0 i: Z6 f1 D, t1 ~$ M - (setvar "cmdecho" 0), T$ T' q# n3 b# N
- (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))
8 }6 Q* B3 k! l' x l5 k) t6 q - (if A2k4 (setvar "PEDITACCEPT" 0))
+ x H& i& T7 g3 l9 V - (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))# n4 j- c9 U6 n1 m
- (princ "\nSelect object to join: ")
* @( _3 s0 n0 e2 B - (setq ss1 (ssget okObjects))
6 T) n7 y; i" W9 d- J u - (setq fuzz (getdist "\nFuzz distance <0>: "))0 V% n" `0 w$ U! Z" v8 F: h8 h0 j3 P
- (if (= fuzz nil) (setq fuzz 0))
& C( V: e6 Z5 \7 n ` - (if (/= ss1 nil)
7 b" ~- \$ {- d& ]+ Q - (progn; t1 | T" P) z/ J, K: K
- (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0))))))6 y/ }5 S+ m# S1 d4 t3 G4 _! G
- (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects)))
" v, }: V' B, Q4 k/ @0 ?( r - (if (member objType '("LINE" "ARC"))
' Z {& |, ~. x4 N& T4 o) O - (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")9 g/ P0 c' m; T" I
- (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")4 A+ c5 e' k' F
- )
4 q, m: K2 {9 C2 o/ d% t% W+ W - ), b) J# k: ]! b* N# b) G
- )/ Q# e w/ S/ E4 w: @0 ^( n* I0 h
- (setvar "cmdecho" oldcmdecho)! Y; o; Z* e: o9 W8 t$ E+ `
- (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))4 O8 Y+ }& K( u% W1 s
- (princ)
3 I2 X, B- P+ r- i8 w+ M - )
, ^3 O8 g! D: `. @ - $ H) B: u& D2 g# a* Q0 [( R' x
- ;===========================VE CAO TRINH===========================
1 u2 Q. q: {' R+ x9 |- C
5 O& n0 W2 k+ s" ^8 _# r- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL( _8 W; M/ E s& e7 g7 s+ [9 _
- CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)# E, K: P7 a j0 E7 K2 @- F
- (SETQ OLDERR *error*3 l1 N C! M# U& h
- *error* loisb)
- i0 {8 h# }- V - (command "layer" "m" "dim" "c" "" """")- c5 B% E* ~: t9 U. C
- (SETQ CMD (GETVAR "CMDECHO")), N! X+ M8 }2 W+ c/ V# b# }
- (SETQ NBC (GETVAR "CLAYER"))6 I) c) P$ V! T& j, ~( d( t
- (SETQ OSM (GETVAR "OSMODE"))
- _5 E* Y% j9 Q" a. I7 r$ Y8 ~ - (SETVAR "CMDECHO" 0)/ u8 a& t0 f, r$ g
- (SETQ PT1 (GETPOINT "\nDiem cao trinh:"))
& S9 y' j L+ v, s" O9 j/ e - (SETQ TX (GETSTRING "\nCao trinh:"))" j' X) J; n* ?- u1 l' U
- (SETQ FCH (SUBSTR TX 1 1))
( ~. h# P+ c4 B& K - (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))
$ Y! s3 p* l: Y - (SETQ CRST (GETVAR "TEXTSTYLE"))6 H9 D4 A( ^. M6 B8 P
- (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))
' f2 R9 F2 }5 u/ B0 p& b2 m3 C9 M. j! | - (SETQ TSIZE (GETVAR "TEXTSIZE"))% q$ ~2 ^6 {) h. s% x) P# {8 H
- (SETQ STR (RTOS TSIZE 2))
( C; }6 E) D) h2 o$ I - (SETQ PRMT (STRCAT "\nText height <" STR ">:"))
3 W1 P. {( y8 I" G$ K- v; z2 { - (IF (= RSIZE 0)
; a8 q; }, V. h4 _6 @' `- h: y9 M! _ - (PROGN* k+ ]9 ^6 ~, N: c
- (INITGET 4)6 L7 z( h1 K6 W# f( A
- (SETQ TSIZE (GETREAL PRMT))( D. ^# F) Q1 M1 `" `6 U, \
- (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))# O8 P, m2 v# e7 B5 X7 w: u" a3 U
- (SETVAR "TEXTSIZE" TSIZE))* ^* E) v( c% C( A& `; A$ C5 Q( ?- t+ k
- )
0 e, m: Z4 C- }! ?2 Y) Q) N+ ? - )/ R; d% e0 A0 O- F7 x/ V& g: R# x
- (PRINC)
j! q( s! v5 ^ - (SETQ TL (/ (GETVAR "TEXTSIZE") 2))
4 b! j# O; S! ^: i8 E - (SETVAR "OSMODE" 0)
1 D1 W! n6 d9 b5 m9 H2 i - (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))$ e+ m8 N/ A* ]' Q' I& i4 N8 u) P
- (SETQ NPI (/ PI 2))% E3 y! h/ m1 f. f: E0 h& b
- (SETQ PT4 (POLAR PT1 NPI (* 1 TL)))0 q# Y5 V7 ]' L3 {" z$ t
- (SETQ PT2 (POLAR PT4 PI (* 2 TL)))
, i: N/ M1 _. Q5 `/ I9 F8 O - (SETQ PT3 (POLAR PT4 0 (* 2 TL)))% |8 V" \: e9 g; J3 q) i. S1 X
- (SETQ PT5 (POLAR PT4 NPI (* 5 TL))) z: m2 i5 h# q2 H& y
- (SETQ PT6 (POLAR PT2 NPI TL))( B# r7 `7 r6 |5 h8 H
- (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))
2 W# I# \( D9 F1 U* _. b# s - (SETQ PT8 (POLAR PT6 NPI (* 1 TL)))
7 M2 p5 n2 G+ ?& J - (SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))# t/ j2 V3 n1 n* Q. q/ p+ P. n% m% H
- (SETQ PT9 (POLAR PT1 pi (* 2 TL)))( o- e2 V$ m9 x
- (SETQ PT10 (POLAR PT1 0 (* 2 TL)))
7 q! }: B* m2 |; U - (COMMAND "COLOR" "7" "")* _! E; \8 \/ y. p1 I7 D
- (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" "")+ V* [2 b$ Z" t2 n! d1 F
- (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX))7 ?+ P( i4 ?" d& x9 @
- (COMMAND "COLOR" "BYLAYER" "")8 V5 L" S/ L. b7 M8 Y
- (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")9 D0 _* o! Y( c* B9 R* T
- (COMMAND "COLOR" "BYLAYER" "")% D2 h/ V4 ]( P S7 |
- (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")
0 L2 b, h4 ?7 u: g3 x& N9 C - (SETVAR "CLAYER" "0")
* q6 Y# X( m$ [0 J6 p/ f - (command "ddedit" pause)" u9 r: k, t* ?1 `2 m
- (COMMAND "COLOR" "BYLAYER" ""); Z& p @: m8 K
- (SETVAR "CMDECHO" CMD)
+ q3 P5 h& R- w2 z" c6 @ - (SETVAR "CLAYER" NBC)
$ L, l, C# \9 u* W4 P a; P6 Z; h r - (SETVAR "OSMODE" OSM)
7 s( L0 |. R3 h& e3 q - (PRINC) Z7 Y6 A, \# `( q" [1 n
- )
% n U. Z- A" F1 |8 M# ^9 J - 1 {& _ j; W" _8 w$ U: M
- ;;; =========================== VE NET CAT CHEO (GC) =============================- `; e; `1 a* `. _
- ' t/ e/ I% A$ q* X5 M* g, |' t
- (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang)
/ o* d8 Q$ q4 d! K+ h; V - (setq x (getvar "osmode"))/ G8 C. I% m. R: O$ c7 ~
- (setq p1 (getpoint "First point : ")9 [% ~! Q- T7 ~3 j. U6 g
- p2 (getpoint p1 "Second point : "))
3 g& N' Q/ N7 a7 T - (setq l (distance p1 p2))' |+ {2 y0 H) d1 Q& H
- (setq p11 (polar p1 (angle p2 p1) (/ l 5))8 c* P% F. S/ l! |# D7 R
- p12 (polar p2 (angle p1 p2) (/ l 5)))' {5 q1 C3 r8 H$ Y5 }
- (setq ang (angle p1 p2))
9 e+ G$ i% I: _8 t( x5 d - (setq p3 (polar p1 ang (/ l 2.5))
6 ?) e4 t3 j6 R+ T4 y - p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))) i4 _# e/ h; ]( g0 f4 q
- p5 (polar p3 ang (/ l 5))
. w6 m, Q7 w' u' G1 C$ w - p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))
$ ~0 U* U* V+ n/ J* } - (setvar "osmode" 0)
: H4 e* q. f; ^% M* |$ [; u - (command "pline" p11 p3 p4 p6 p5 p12 "")
6 m) A0 G, O. r* _5 x - (setvar "osmode" x)
8 L0 P2 S+ S. d* Z - ): |4 k( Y, M4 T$ M
- ;----------------------------------------------------------------------------------
3 p( |+ ^5 ?( P' ]; \" K4 s9 G - (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
7 T* u% \$ j0 B9 ~8 l6 E' E! ~ - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))7 m6 a$ o* Q F) o: |) u
- (setq ps1 (getpoint "\Chon diem thu nhat: "))7 x, k* J) k4 d
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))! \) N) b- |& ^, j$ |( M4 n
- (setq sb 50.0 sh 200.0 se 20.0)5 x. q- }3 p0 Y1 W/ c: A
- (setq ang (angle ps1 ps2))* T; C% u* c& K$ ~: M5 D" c
- (setq pf1 (polar ps1 ang (- 0.0 se)))) r7 z. ?( K5 e4 }. |
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
3 N3 Z/ L0 R" \! S6 P - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))6 i$ ^/ r6 m2 p6 n6 a, s6 \* ?% \
- (setq pf5 (polar pf2 ang sb))
( m( O$ z0 e" \, c# h - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))! u- p/ \+ C5 M# t' O. _% p3 y6 H' S- h
- (setq pf6 (polar ps2 ang se))
( T6 C9 C$ v5 p+ i, [5 s - (setvar "OSMODE" 0)
. f' L4 U- Z' T; l- P - (setvar "BLIPMODE" 0)
6 p$ D1 G1 K2 T, X - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
2 B, [" W8 ~; q7 d% G1 z3 R% \ - (setvar "OSMODE" 703): v5 _+ o0 H8 c; [" ^
- (princ) )
7 ?, Y; r0 o" K9 {* r" D - ;----------------------------------------------------------------------------------& A; J, w# F0 s
- (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6' }" u! Z1 k7 p2 [3 k# x8 c% h
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))0 Z0 ~; L6 d: P
- (setq ps1 (getpoint "\Chon diem thu nhat: "))
4 j8 Y4 I2 h# [$ P& N - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
$ q2 r, P s/ b. A) R w2 A8 ` - (setq sb 100.0 sh 150.0 se 20.0)1 K8 o1 [4 f' d( m+ K, g" g8 H
- (setq ang (angle ps1 ps2)): |! W& {% Q% y( g% D8 t' B
- (setq pf1 (polar ps1 ang (- 0.0 se)))
* M2 d( J G- k7 r& T- M# Z$ H - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))$ f! f& S" |1 V$ n+ y
- (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
, n9 n& N% F0 \0 e0 w! k' U. f- M - (setq pf5 (polar pf2 ang sb))% K5 y7 I0 w6 x2 B, ] w! \' e& r
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))' I5 j& |; P; \6 J2 Z" G
- (setq pf6 (polar ps2 ang se))1 v3 W* r B& y% b, p R2 u
- (setvar "OSMODE" 0)
5 K$ c$ Y8 H8 i4 D& |9 I - (setvar "BLIPMODE" 0)0 }- Z, |% q5 d$ L G% i
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")+ F& n1 S& p% {% D
- (setvar "OSMODE" 703)
" H" J$ n7 ]3 J - (princ) )4 g1 C) q1 g: e: w( G' J5 U3 o
- ;----------------------------------------------------------------------------------1 K6 Q) V3 B9 m$ K) x/ W
- (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
. J' c# v/ {& P5 `. u1 Y. F9 D+ T - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))" m+ ^/ b5 {4 X
- (setq ps1 (getpoint "\Chon diem thu nhat: "))8 v; X) _5 V- U6 N
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
- B5 _& ^+ b L - (setq sb 100.0 sh 250.0 se 20.0)
; ?& g4 R1 h& I. p ~; n3 a2 q5 h - (setq ang (angle ps1 ps2))% A+ x; `4 g& r& g% t# b0 e
- (setq pf1 (polar ps1 ang (- 0.0 se)))
) B/ B) e8 b U# K/ F - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
4 G/ _- [" ]* {4 S5 `$ n2 C: s - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))
- n, {8 X% r6 I4 R - (setq pf5 (polar pf2 ang sb))
, M) @9 c) h) J6 k; q - (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))5 ~ U- }# r2 A2 {0 s
- (setq pf6 (polar ps2 ang se))8 t* U( i2 u& ^
- (setvar "OSMODE" 0)5 x% y' Q8 O0 a2 }- h
- (setvar "BLIPMODE" 0)! V7 q: I% m; l; ?# |" P
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
* o: F: ? ~/ L- @/ ~% R - (setvar "OSMODE" 703)! @: G3 {. S% d$ v4 W% G3 h
- (princ) )
2 L7 k5 y! Z7 o$ u' S K
, }, [ X0 r+ v- ;==================================================================================
/ J& ^3 |& N K - (defun c:ang (/ ent pt1 pt2 ang)* }7 u1 u5 ?- t
- (setq cmd (getvar "cmdecho"))
3 U9 L; _: N, w' Q - (setvar "cmdecho" 1)
' z. f* h1 L) o" F3 z - (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc")), h8 U. o$ z4 d: K: j6 ^5 |! }
- (setq ent (entsel "\nChon duong thang:"))' Z* d0 x7 i" O3 W8 H" ~
- (if ent
* z4 I7 V4 n: a8 j- e; a - (progn
! T* }, d0 N! ~ R* K+ r. r - (setq ent (entget (car ent)))' S9 @0 @5 `1 ]' b( a' a
- (setq pt1 (cdr (assoc 10 ent)))* }( i2 w( S3 m v) I- F
- (setq pt2 (cdr (assoc 11 ent)))7 e2 L7 ^7 I# n: e
- (setq ang (angle pt1 pt2))9 B3 d1 e$ Q# O! }0 r8 a
- (setq ang (/ (* ang 180.0) pi))% b7 H7 S. J" L+ Q; v$ t
- (setvar "cmdecho" 0)# [ M0 p8 v$ ~4 N8 ~( ] n
- (command "setvar" "snapang" ang)
" {" S) y+ _, q; K( a - (princ "\nGoc cua truc toa do moi : "), A$ \( D* t, k
- (princ ang)
3 @' f' q" m% d- u - )
, ?8 M+ t* M, \; r+ E$ E$ Z - )4 W& y! ? T5 V! e, D+ b* @+ g
- (setvar "cmdecho" cmd)
& M! s* D/ q% i - (princ)
2 m4 |* V7 n6 v& O* ~' w# ~8 Z - )! ^" a8 V, G8 n6 T
- ;==================================================================================
" S' O; s( P6 K1 W9 a+ F. R' { - ;============================== KY HIEU DOI XUNG ==============================
! o% i6 N+ M$ c" o+ z' @( n - ;==================================================================================
" w0 J# y/ |* V5 a5 n
5 a# H9 p( U. B L0 Z/ G; t- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT9/ ^ \) q8 W9 N% W3 Y
- SZ G45 G135 G90 G180 SS loi)
" w+ c7 Q( u( K8 l) k' l. p" Z - (defun loi (s)
; w1 x8 k6 G5 u. D - (if (= s "Function cancelled")
2 l: r! T8 n- t- W' |! G9 I - (princ)
* S; C2 b% S" k3 ]5 v9 Y# m+ A) x - (princ (strcat "Error:" s))
) c( }9 H8 f% F- X1 y& V - )( G2 X5 z- i; V. c2 a" `0 U# g9 Y$ V
- (SETVAR "CMDECHO" CMD)
4 H7 m' F% z; M5 L2 N - (SETVAR "OSMODE" OSM)( i" a# r0 Q3 ~- w: l4 y/ ?
- (SETQ *error* OLDERR)
* ^5 O: j7 K* x# s' |/ Z - (PRINC)& c/ z) i* [2 v
- )0 k: U$ I7 X( F: o) _- S, z4 Z
- (SETQ CMD (GETVAR "CMDECHO"))
?+ O( p2 j% e* | - (SETQ OSM (GETVAR "OSMODE"))5 ~( g7 j* c7 V! Q) q% I
- (SETVAR "CMDECHO" 0)( O) X9 X" |. ?' i5 `9 _
- (SETQ OLDERR *error*
( J: @: i k; R. @2 c - *error* loi)- T2 O' G* f0 n/ i
- (SETQ SZ (GETREAL "Size <1>:"))$ _, F' m, L$ z. G P
- (IF (= SZ nil) (SETQ SZ 100))
2 o) ?1 P' L" x% y/ @6 m5 _ - (SETQ G45 (/ PI 4))
' r% u, M/ |0 R' T& x - (SETQ G135 (* 3 (/ PI 4)))' @$ h( c& ^* @8 e9 B8 e
- (SETQ G90 (- G45 (/ PI 2)))9 u( I- O# {' T, [+ ^4 `
- (SETQ G180 (+ G135 (/ PI 2)))- k5 l: C. A& [2 d c% Z& F$ v+ u
- (SETQ PT1 (GETPOINT "\nDiem doi xung:"))
' w$ n: P/ F7 c: Y2 s4 O# y$ e; N9 L - (SETVAR "OSMODE" 0)# M1 u' R0 V& l1 ~1 a: d( h; Q
- (SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))9 R' A4 g; P2 C! h0 {3 E
- (SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))# U: V, ]/ X% d0 Z/ X* D) @& }2 S
- (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))
$ o+ ?, E( l- A! R+ w x+ v - (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))
) \: v9 g! }2 v4 ` - (SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))
: t. C' c$ F- {, Q3 m5 c! v - (SETQ PT7 (POLAR PT1 G135 (* 1 SZ)))/ n& J; W& s& N4 v" d
- (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))
* A: P, ?7 E) p# m - (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ))), J( j3 r Y/ K) q v8 z$ O
- (PRINC "\nGoc quay:")
9 }% W! s. P+ z6 Q' G2 o) l/ m - (SETQ SS (SSADD))
" W2 v% J% i& a1 X3 R6 z. R/ h: y - (command "layer" "m" "Dim" "c" "" """")) `0 e3 D- W% a' R
- (COMMAND "COLOR" "1" "")( B& K' E/ G; C* C6 r
- (COMMAND "LINE" PT8 PT2 "")4 e( n9 e" p1 h8 j+ h, d
- (SETQ SS (SSADD (ENTLAST) SS))
0 G1 k0 O O( ^% `- T2 v - (COMMAND "LINE" PT9 PT5 "")
: |1 Q3 n) s0 U6 N; g/ F - (SETQ SS (SSADD (ENTLAST) SS))
0 ^' j! q( u* F - (COMMAND "COLOR" "1" "")
+ ]% ~" o9 k6 a0 h: O; o1 | - (COMMAND "SOLID" PT2 PT3 PT4 "" "")
% h8 S1 x* G3 u) u: } - (SETQ SS (SSADD (ENTLAST) SS))8 _4 Z/ Q+ k& O7 H* g
- (COMMAND "SOLID" PT5 PT6 PT7 "" "")
& t' U9 a3 p# X" P4 Y: o, C" m4 ~ - (SETQ SS (SSADD (ENTLAST) SS))' `3 C& Q; H5 H0 n) b9 v
- (COMMAND "ROTATE" SS "" PT1 PAUSE)4 |/ V0 ]5 _( G, w
- (COMMAND "COLOR" "BYLAYER" "")$ T# T! t; B$ l7 o* Y. ^
- (SETVAR "CMDECHO" CMD)
( P6 A7 G, K6 p6 p4 P8 K - (SETVAR "OSMODE" OSM)3 N9 |9 u3 n9 O8 w5 L
- (SETQ *error* OLDERR)! p, z+ R( ]. [9 {) U
- (PRINC)2 P% U' e4 E0 t/ n6 N7 Y6 i7 _
- )! W" o" b H. f
* @) b9 v$ [" S8 u- ;==================================================================================, h/ P+ Q% n, ]' L; W
- ;================================= KY HIEU TRUC ===============================
3 K u; I$ a( F1 G - ;==================================================================================
4 B! x) f. _; Z! S9 b, ] U" C
. N& N9 d6 ~, i& l" i# L- (defun C:vetruc ()
0 [( A) T: s4 i: ]0 b8 }+ @) r - (setq bk (getvar "USERR3"))! m4 I- `3 p7 C+ ^
- (if (= bk 0)
2 M' \, Y+ I; l K - (progn
; V4 U% C% w0 B- o - (setq cont "1")% r* s& e: A2 S% R
- (setvar "USERR3" 1) ^7 ~3 S; W8 L+ I
- )
6 @ n. D9 j: Z- h5 e! F, n, F - (setq cont (rtos bk))
; ~+ t1 c' }: K0 h8 h/ i/ \4 c - )1 q, Y6 y. t$ u
- (setq pt1 (getpoint "\n Nhap diem dat:"))
* ?: c4 y y/ Z- M" G& Q# A - (command "layer" "m" "Dim" "c" "" """")' b% O8 I! `' n; ^
- (command "osnap" "")5 T! G" O. x& {; X% ]
- (COMMAND "COLOR" "7" "")6 C# _& Z" n/ W
- (command "circle" pt1 150 "")- \8 H t) u' ?% U9 ~: h2 n$ b
- (setq pt2 (polar pt1 0 150))8 Q* H' b& d" u9 B* x! {
- (setq pt3 (polar pt1 (/ pi 1) 150))! x- s3 }+ u: m
- (setq pt4 (polar pt1 0 300)) o9 r: V. C6 t' Y. b
- (setq pt5 (polar pt1 (/ pi 1) 300))- [: o" ]% p; L( ^0 T5 K
- (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150))
- u7 Z; w0 x0 p# } - (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))
7 q0 [5 f3 C3 i" Q - (setq pt8 (polar pt1 (/ pi 2) 150)), w5 N; Y! g3 ~3 p
- (setq pt9 (polar pt1 (/ pi 2) 300))6 Q" R! S& G% g
- (setq pt10 (polar pt1 0 150))
: w F( C$ u0 l! N- R2 q. h - (setq pt11 (polar pt1 (/ pi 4) 150))
; f2 {8 Y- f* z' s* X& y2 O - (COMMAND "COLOR" "BYLAYER" ""), N; U |* h8 }6 V4 H& p
- (command "line" pt2 pt4 "")" W v* k! {5 q- ?' z- Y
- (command "line" pt6 pt7 "")
) _/ W9 U/ I5 n( ?( o, y D4 U - (command "line" pt3 pt5 "")$ j0 ~, W, g- p; ]( n
- (command "line" pt8 pt9 "")
5 ?3 z8 B$ X6 ` - (setq dk (strcat "\n Size:<"cont">")). e9 k" G- l# `$ O% D" `; r
- (setq bk (getreal dk))8 q1 X" `: G+ F# J" f0 O/ `
- (if (= bk nil)( B6 v% G6 ?4 p- i' o
- (progn
i& I4 g" Q' i - (setq bk (getvar "USERR3"))
7 v7 I! q$ _, u! b# T6 H T - )
8 F6 G7 {$ N( D4 x5 M, t - (setvar "USERR3" bk)
* c" C4 O( b1 t4 p* i - )
; x) f% {8 t0 C* ]& r - (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")0 g3 U7 _# O4 a3 r( s5 j" K" d+ z5 ?2 ?
- (COMMAND "COLOR" "7" "")' P/ c, m0 r* {) I( h
- (COMMAND "STYLE" "Truc" "impact" "" "" "" "" "")* D$ |- y2 G* {' X5 G( q9 x& n
- (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "")
, G* I9 m/ r0 }- S8 g' _ - (COMMAND "COLOR" "BYLAYER" "")
/ t, f5 r( t; w& N1 U7 X - )
n, R+ _% S+ a/ M' G
% F0 S0 }$ o) M% X" v& }# b- ;=====================================================================1 j7 Q2 D6 G( A6 i
- ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)
m3 a s. t- m& M( y6 R7 a - ;
/ F5 A& Q( }8 s5 \+ E - ;Jeffery P Sanders
M. r7 `$ X/ A( \1 Q/ k; h - ;
% C8 b, l" }. I8 X2 K - (defun C:CA(/ en enlist tx newtx cnt tp asc note)* E. Z% N( S8 C" g$ [
- (setvar "cmdecho" 0)1 P0 n+ T9 s9 K
- (if(setq en(entsel)): Z. v: i" m, n# e1 g
- (progn
- \1 \8 g% h+ @' P - (setq enlist(entget(car en)))2 s! w; I- r7 l9 [# L9 |0 r( L8 ]
- (if(= "TEXT"(cdr(assoc 0 enlist)))# K+ w- w( ~9 I2 t
- (progn) E1 }( s, U$ r' ^4 B( X9 h
- (setq tx(cdr(assoc 1 enlist))
% ]. o: T4 P3 I4 f - newtx "" cnt(strlen tx)
I4 p" l0 N( ^" |5 x3 C9 l/ y, j - note "\n...CASE Reversed. \n "
4 F5 k, f1 U! V8 l# B8 S1 _$ G - )/ K$ r' t& ], m8 D
- (while (> cnt 0)* |2 A3 V3 @$ l9 m, e6 N! c0 @
- (setq tp(substr tx cnt 1))
8 ~+ Z7 ~ [- t - (setq asc(ascii tp))
* h8 E! ]- q0 V6 b5 I - (if (> asc 96)
; Y ?0 p( p% F* x! q P* m - (setq tp(strcase tp))5 v" ?# p5 l/ I4 ^, }( n* Z" ]4 N
- (setq tp(strcase tp T))3 U( }( j- N/ F3 U
- )! X5 c u( E( A/ q4 h
- (setq newtx(strcat tp newtx))
/ o d5 F; P* s; r( Q/ ~7 t - (setq cnt(- cnt 1))" M" g7 Q1 ?. h. ~1 b
- )
! N5 n6 W' Z& l$ p3 U% r - (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))
% m% T2 R! }' Y- k# v8 }& d. H) U - (entmod enlist)
( S3 F" W3 @' W# F/ R* o - )
2 w3 _9 o' ]7 }9 M( j# p# n! [- ^$ V - (setq note "\n....Text Only Please. \n ")0 Y3 ~ t# s9 @ O$ {
- )
, g5 b: D% ^8 r6 U - )
8 y- Y# H- y/ a8 I$ _ - (setq note "\n....Nothing Selected. \n ")7 X& }6 \6 x L& Z1 g$ e+ Q
- )4 [% T0 m/ n3 }! d
- (setvar "cmdecho" 1)
, E D6 @3 F. K. L6 P7 H - (princ note)8 j+ [# K/ l* V; R6 D# ^6 c% c
- (princ)7 |0 n: Y4 }4 X6 v2 I4 ~3 o" c* y
- )
! A% @9 H4 }. i2 [$ L. ?0 F - 2 P( P8 m F$ F9 g' J
- ;=====================================================================4 E5 T4 C" J' |0 H/ Z2 g: u I
- ;==================== NEW TEXT STYLE UPDATE ==========================
) }% T0 D. e1 x6 U6 V - ;=====================================================================2 A {& ]1 M8 @/ Y8 o. t
- . V& j- b8 S9 {' w- w' I; z3 }5 d
- (defun c:nS (/ tdt ssdt sodt index)* H9 ]; P% ]' v# f
- (defun ObjName (ssdt /)
8 x- \3 _" @- F$ g - (cdr (assoc '0 (entget ssdt)))3 C% c, X1 [# _% \+ b+ H( ^4 Z: V( \# c
- )/ o) F( `1 w" \ q8 _
- (defun MoPL (ssdt /)6 o/ Z$ S% i; O, S4 V! D1 T
- (= (cdr (assoc '70 (entget ssdt))) 0)
% A6 u0 f5 D& Y6 }+ A - )
. U9 V6 D+ n, c5 @* g, X- | - (defun NoiPL (ssdt /)
+ r) j0 w: t! C7 j( [. H - (if (MoPL ssdt)
. u* w7 b0 F! t - (command ".PEDIT" ssdt "J" "All" "" "X")
- D2 N/ p' v2 r7 Q. R - )
# v# h/ S0 y5 c7 O6 W6 c. N - ): U. Y9 r/ v D- g3 l2 l) r2 |( N
- (defun NoiLC (ssdt /)
9 ~% t; D7 A* y- e& i% c7 Q - (command ".PEDIT" ssdt "Y" "J" "All" "" "X")
* s( I% O$ W' _6 i; S# B - )
/ Y" V9 c- D ^! K, o6 T- d - (setq4 ]& e" V% E5 N B0 e" i
- tdt (ssget)! v' G) b" u1 ?5 l" x# `
- sodt (sslength tdt)/ U: e& A' Y; o+ b9 S1 t8 ]" b: \
- index 0
9 @% c" `( u; e9 Q; r2 g - )
$ J }2 C' k7 \ - (repeat sodt9 t' r6 V: J& }
- (setq# I( L, \( z- k3 Q- k+ f; u
- ssdt (ssname tdt index)- E+ c' r( j; K7 G! ]8 s r7 g/ V
- index (1+ index)
3 j& C- D7 {; I$ R. G U1 G - )
* [0 y. e4 l0 L/ \' w - (if (or (= (Objname ssdt) "LWPOLYLINE")
9 y9 j+ R8 k1 @" E! P" d' Z - (= (Objname ssdt) "POLYLINE")
) v, j% i( F7 M - )7 U( H R" h% z' D7 m( r( e2 i
- (NoiPL ssdt)
9 m, w7 z3 e: `. [- l - ), F% Y7 n8 F( f* S& ?6 q: F9 Z% T
- (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))5 y. v; i1 P) R$ e8 O
- (NoiLC ssdt)5 q, H" t0 o, G0 ]! Q
- )% L2 Y+ w7 j. q1 C) x
- )
+ z6 l. A; f. x5 X6 f% N - (princ)
" b1 B2 Y, E* J - )
g Y5 _# [3 X; c- K. v
* O% S) I3 {8 R. C2 A0 C- ;=====================================================================
* w" ^# ^2 c" B7 V( B5 N* k - ;;; AREAM.LSP
, Y5 o0 ~0 V; C* m" N. B; I - ;;; Function: Calculates the total area of selected objects+ O- }( K5 a& f1 V6 R4 y
- ;;; By Jimmy Bergmark
& ?* S2 A. u( e2 w$ } - ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved
" E! f! f% y3 F ?0 H& Q/ i- e! T$ r - ;;; Tested on AutoCAD 2000
. j9 E9 r! N6 G0 S - 7 W C: B' N4 u& h0 D, }' Z
- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)
/ q Y; G/ k) a/ I7 k* q* o - (defun errexit (s)! N( K; `2 C; H, R* c
- (restore)
% y+ u) W8 {. l! X& q - )
6 |9 x' f' ]1 |; x0 d1 M
8 R; A+ Y% u7 I) x# w# v- (defun undox ()
. M5 x$ L% p& n; ^; `$ H |4 @* g - (command "._undo" "_E")
+ V3 k' }6 t. ]6 n - (setvar "cmdecho" oldcmdecho)
% P3 N0 v5 j7 f+ [ O3 | - (setq *error* olderr) `9 A2 }# q8 Q+ [( L4 t3 W' U" C6 @
- (princ)
( I. R' J( J! I1 K - )$ m( E5 m7 |" }
- # Y$ F% K9 C$ F$ z1 Y* ^ s; v
- (setq olderr *error*; a' l# Y9 O3 P# O# d
- restore undox
0 W5 c8 p0 `: Q - *error* errexit
6 T+ e* `4 r( ^/ Z - )
/ v' D6 }' K- C$ {2 C4 ?5 o$ T - (setq oldcmdecho (getvar "cmdecho"))
8 |' M% \) Z2 w w9 L) s% u, l( N - (setvar "cmdecho" 0)9 T# t& ^3 R- E8 V! e
- (command "._UNDO" "_BE")
, a b8 Y" S4 x - (if (setq ss1 (ssget '((-4 . "<OR")1 s% _& J/ l+ G
- (0 . "POLYLINE")
6 a- C9 O0 o( ^4 M2 ?7 {* M - (0 . "LWPOLYLINE")5 N3 P8 @9 K$ Y* l; x' K" d
- (0 . "CIRCLE")9 I9 K; ^+ n4 ~, d9 f- \. c1 O
- (0 . "ELLIPSE")3 x+ d% U1 S4 ^# [' L
- (0 . "SPLINE")
1 V) V0 R6 \% q; c |# N2 B - (0 . "REGION")
, z. M6 @8 Q8 @1 d9 x1 Q2 q8 N - (-4 . "OR>")
$ t5 u& M" N Z* Z) p# r - )4 |! r8 f7 k4 ^2 {
- )
. C2 o9 a0 g" Y2 ] D l8 |: k) q - )4 V( W4 [+ B9 @9 V0 ^& M7 h
- (progn
) }) B4 u3 d% H/ b0 B/ L* B t - (setq nr 0)
+ t+ G+ U$ N& Z& K! s! G) E - (setq tot_area 0.0)/ B! E' L, M7 [8 x0 }! `
- (setq en (ssname ss1 nr))# @% F3 e0 b* i3 E; i# _
- (while en
& m! r8 S8 K: i, ^* e* ]. ~# M - (command "._area" "_O" en); v6 p1 l' O6 B
- (setq tot_area (+ tot_area (getvar "area")))
; q0 h: S2 k7 P y7 L - (setq nr (1+ nr))7 p) v# X; V; c: o$ \6 B8 J
- (setq en (ssname ss1 nr))9 h* Z1 [& L9 O1 e+ j# u" V4 r
- )+ ~' s; f8 B9 @ m* T; f
- (princ "\nTotal Area = ")
$ L: `8 L, v! B! Z# e - (princ tot_area)
! c4 H7 o+ l% t: r+ L: q% F) z - )
; @/ m/ w# y% p6 w - )
; d, Y @2 I! A/ K - (restore)
) E: O/ ]3 u( b) v, x7 Y) {7 l% o6 C - )/ k1 d4 W, |" g- D
" Z2 L# C7 m# q- ] d- ;=====================================================================
6 M2 l# N. @( H# |+ Z2 l - ;;; By Jimmy Bergmark
% p6 q% z5 @& E1 r; R! d% Q$ l/ a% C - ;;; Copyright (C) 2008 JTB World, All Rights Reserved
4 |4 O6 d, e% i, w7 R# y. D& T - ;;;
. R' o( [9 Y) H5 M6 g - ;;; Created: 2008-03-31
! ~* T7 G1 s) s; t3 h. e. h - ;;;% U& W1 q4 H* I. u$ y
- ;;; Convert Attribute definitions to mtext
' f7 @- d6 S7 J8 p# H - ;;;' u: `9 b% {: q- s3 |
- 8 F% e+ s. w2 _9 `) i
- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)7 o8 ]$ ?' X5 [! w9 D$ q/ {
- (setq eset1 (ssget (list (cons 0 "ATTDEF")))
8 s+ E3 L( p$ H2 p1 `: z - blkcnt 0
! `+ z c6 M! _5 I - )
& P& V% M( C% p) e- I) y - , K) @; {' B# _. s
- (if eset1! L" {8 O0 N+ m# G
- (while (<= blkcnt (- (sslength eset1) 1))! T! J# V( B& z
- (setq en (ssname eset1 blkcnt)" Z) W$ n# ]$ t4 T3 I6 E7 |; J: o
- enlist (entget en)
8 s; S+ w6 ^1 v! N) B9 l$ N0 H, T - ht (cdr (assoc 40 enlist))3 |$ g8 {- s6 t# c. B5 B
- pnt (assoc 10 enlist). z1 L" w& ?; p. n4 s1 V, q8 @& H
- pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt)# `+ X) n& I3 s6 s5 Z
- space (cdr (assoc 67 enlist))' N2 X2 }! P% p" g
- )6 g* y# m3 L/ X5 R/ D% l/ ? v9 v
- (setq vl (list
; v: i6 e( ]! L+ K5 |! w - (cons 0 "MTEXT")
' X( w( u- E8 J; K) w" P) l - (cons 100 "AcDbEntity")
# o: f2 } h7 R+ `/ j% M% U _5 o4 [ - (cons 100 "AcDbMText")
. z5 L3 z9 V' {- g/ u - (assoc 7 enlist)+ B Q& U, ^7 W8 Q5 g% h
- (assoc 8 enlist)
, y$ O+ C5 K9 H - pnt, J' Q- |; C& B9 P8 K4 `3 j" j
- (assoc 40 enlist)
7 e1 ^- m0 A) U( k2 N3 A% K% w - (cond ((assoc 62 enlist))5 R% C/ { K! W$ n# L/ c
- ((cons 62 256))
) J- J" a- G8 J' V J* t - )8 R7 Z. R5 C; b3 x! S* w
- (cons 1 (cdr (assoc 2 enlist))); F9 w \/ y2 o5 O4 U
- (if (= space nil)
4 S1 ?& N. W; A, o4 Q - (cons 67 0)4 L- a/ ^ Z' m( Z0 ~
- (cons 67 space)
% `. |! ^4 a: d# Y) K - )
7 j$ K- r3 {" j/ X - )" W B0 t/ t, M# F% w' N
- )0 a* l& R" k8 n; f
- (entdel en)
3 o2 [5 |" h$ n - (entmake vl)5 N# r* g, \7 n4 ` Q8 c! l N( P
- (setq blkcnt (1+ blkcnt))
0 `/ b% M; _1 ?; G- H( m+ j - )
9 _6 `9 U5 }: O' W - )
# ]) [4 T( D! ]- K! L' q+ ], B - )) b2 D+ @- |4 Q" `
- & z! ]9 f* h7 \" V2 O* u
- ;=====================================================================% z G5 ?8 `+ h
- & @7 R+ p$ g' w! r& \ X+ q
- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)( u: h' {0 L2 ?; ?
- ; Khoi dau cua chuong trinh
7 W) M7 d" u; }" K' Y. l& R - (princ "\nCopy Inteligent...\n")
1 ^6 L) X1 d. O4 F6 n - (setq luuecho (getvar "cmdecho")
0 n+ @4 n9 p3 y3 J& q# X - luu *error*
4 h* l2 I+ ?3 j6 S; ~ |. r - *error* ketthuc
T% W4 l" ~( z - cumdt (ssget)& q* o6 y+ P0 O6 W2 _
- dodai (sslength cumdt)
- {1 P1 C9 c' Y. b - goc (getpoint "\nSelect base point:")
( h/ V$ B$ F: N% d T) h7 J - thoat nil
4 o0 g/ j& H. [) c1 z/ ? - dem 0
, O$ z$ R8 }% R) B1 R/ f - textxl nil
/ ]0 Q# S5 `8 j: ~ - );
+ T/ ~% ^1 C! |0 w, i& J - (setvar "cmdecho" 0)
* Y9 {) e O, U+ o1 t" a - ; Loc ra duoc ong text de xu ly4 P# ]& k# q! o& [
- (while (and (= thoat nil). n; x0 ?4 e* P) e# }% W
- (< dem dodai)
0 a; U) k3 f% l - ): m9 z8 J6 q3 z/ {4 `
- (setq ten (ssname cumdt dem)0 p, G, n) Z' c' R) k
- dem (1+ dem)& S& q1 i- X* Z9 `
- doituong (entget ten)
& d! w! E/ W/ Q5 M8 t. c - kieu (cdr (assoc 0 doituong)) & [5 y% y& ?; D
- )1 i( h p* o+ d0 V+ V
- * b& j& s' u8 `5 D, E, A
- (if (or (= kieu "TEXT")! _8 X; o6 q( w8 M1 ?
- (= kieu "MTEXT") % E7 ~7 p: Q- K+ R2 J! p- x
- )' L3 B' G7 E# B: Z1 K% Q( ^
- (setq thoat T
+ u7 z+ r6 A% q; G" w - textxl (cdr (assoc 1 doituong)) T) u' H) f1 L% O4 y% a9 P" g
- )
; w* M: v5 t& D; Q( i6 k# e - )
M7 s7 v( f6 D - );
& |7 c7 W- e# {6 I7 J$ f9 h' B2 Q - (while T " q( H; U& u. ~' a8 v0 S& X
- (setq toi (getpoint "\nSelect next point: " goc)
; u" a# s8 T4 L3 K [$ D - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc))). O M( l# C% ~* d5 U7 F
- dem 06 ^+ L2 a" ]6 B6 ]& g- r( I2 G
- )+ v/ V. r) f* D) F9 Q
- (while (< dem dodai)
7 v1 {- |8 u4 E - (setq ten (ssname cumdt dem) w, N. H8 V. A' ?
- dem (1+ dem)# B+ G" s. z2 s! K N9 o2 G$ n
- doituong (entget ten)
% Q6 Q' G: q# ? - kieu (cdr (assoc 0 doituong)) 4 Q& k/ K3 b+ c: {
- )
1 _6 r# p8 \2 I O, o% l% S - # y$ c9 W* V- h) J! }" D" D
- (if (or (= kieu "TEXT")
+ c, ?. \2 l+ e1 s& \( R# _# P+ f - (= kieu "MTEXT")
* ]7 ^6 z1 n- Y - )
) w3 x& Y8 J/ ~5 s) t( O, a - (doitext ten)* B' E6 s+ [3 }; b
- (copy_dt ten)
! M! U, `$ m a& n9 U! I - - B+ J4 M. p- b8 `. R9 \+ B
- );if7 a' }3 \- D, K; t
- )! q: p7 x& e7 Y
- );while
1 N/ o( @% E; W" h i# v) g - (ketthuc)
( J3 p# R5 s; x2 K, B; M - );defun) P0 \+ [8 [: P2 W
- (princ)
- b/ B" B% g2 r% v9 j% G - ! J* R2 O. C x8 B, [/ U" A6 W& v
- ;=====================================================================
) }7 z9 y9 W1 L1 m1 H! q - ;;; By Jimmy Bergmark
# V( M+ C! a( {1 h- {; K - ;;; Copyright (C) 2008 JTB World, All Rights Reserved
3 x1 a5 O8 n9 ~" Q( ?# D - ;;;
1 h; b% ?. e7 v1 f - ;;; Created: 2008-03-31
3 E' Q T# T1 u; ? - ;;;
$ z. B7 Q6 d9 ]7 O& U9 K0 j1 I$ i8 R# M - ;;; Convert Attribute definitions to text
" H9 r3 H9 W2 M# T( G! S - ;;;
( G; z& m) `9 r; [6 Q. ^ - ; w6 l% m- j" H1 y0 S9 Z' j
- (defun c:ATT (/ eset1 blkcnt en enlist vl space)
+ \8 G' Q5 F/ G4 E2 o9 u* F* H - (setq eset1 (ssget (list (cons 0 "ATTDEF")))/ ~% e- J% |, [6 o) ]$ l$ {& n
- blkcnt 0
. \$ _- A) Z- N. y - )
& G% W" u; A8 q6 J( u' B
3 d+ n6 Z8 |8 K9 ~4 U: `( A- (if eset16 a) s) k$ R. R- }6 M
- (while (<= blkcnt (- (sslength eset1) 1)); H; ~! h* W# u! C6 ]( c, N
- (setq en (ssname eset1 blkcnt)4 K/ y7 Y, V. Q( W; i* T1 }; O5 ^
- enlist (entget en)
6 e! \! ^9 }& X - space (cdr (assoc 67 enlist))
. e$ w5 N/ G1 ~2 e' R* {' R - )
8 s' M ?) b L! X9 P - (setq vl (list" w; \& ?" m, H- r. Y* M
- (cons 0 "TEXT")* a- q7 [2 y- H$ ]* N( p% O
- (cons 100 "AcDbEntity")
4 v6 u% P# q! ]; t- V- ~ - (cons 100 "AcDbText")/ N& `6 ?6 Q7 l/ W& d- N4 m
- (assoc 7 enlist), e& F$ h3 z8 U' W8 o) O* b+ \
- (assoc 8 enlist)1 l: Q3 u- ]7 G: t1 S
- (assoc 10 enlist)# h9 T( `" `! K) a5 O- }( _
- (assoc 40 enlist)
9 u0 B1 o0 G. y- P m9 J - (cond ((assoc 62 enlist))9 V9 ?" s+ _6 ^) g5 J4 _
- ((cons 62 256))! a# i8 v$ n9 F
- )+ {8 R( n; ?1 {2 _1 l* [/ H7 d% q: p7 j
- (cons 1 (cdr (assoc 2 enlist)))
{" C( f+ @% u F - (if (= space nil)2 _! J) g# U5 |8 N9 G
- (cons 67 0)
- Y& ]: i$ ]& y/ @& ~7 n6 B - (cons 67 space)' w7 w9 h# N( ^7 o
- )
2 n6 ]. K. C6 p1 r6 L - )" |3 z. Y* l1 y" G1 w- c
- )
/ ~2 j8 E- Y; I" f, ^ ?( k6 [6 E' I - (entdel en)
3 n5 g$ B- a( D$ |1 N. ]+ k - (entmake vl)" C Q$ Q8 u* z% `* W$ O
- (setq blkcnt (1+ blkcnt))
+ `% {2 L2 g$ E - )
. b' l3 Q5 o7 ?$ T# l' ^6 k1 B6 a - )& Y7 S# O: b) M/ Z t6 I d
- )
, a5 q' ` |$ e" E7 h - ;=====================================================================
# d2 K" b2 q0 M. j7 v- ~0 J8 D - ;============================ Doi Truc ===============================# Z4 n1 \! a3 j& F: Q2 Z
- ;=====================================================================: E3 Q# `7 k; F% g1 [2 ^" B" T
! i4 h6 a" q/ @' s" b- ;=====================================================================
, P( x1 e- _8 i9 f$ t - ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============# d; Z1 [, h! M; F
- ;=====================================================================
! o1 } h, H+ k. [& f1 } - (defun c:ga1 ()) M- Q% q. v. ?1 A: N) A' C
- (setq a (getpoint "\nChon diem: "))+ P- [2 t( p3 K# N# _, \
- (setq b (getpoint a"\nChon diem: "))6 R/ {6 J4 Y$ O* Y
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))2 h6 ^" r) R8 `8 ]% d
- (command ".circle" c a)9 B( p( Y& t0 c
- (command ".line" a c "")
G+ X2 }% Z/ |; o$ c% W% U; W - (command ".array" "last" "" "p" c "1" "" "")+ w4 H8 V+ r1 s3 @+ W; g5 ]' \
- (princ))9 H: i- `7 ^4 N. S* O# _
- + f1 x$ J7 B' ~1 \
- (defun c:ga3 ()
, @" O; `2 t* U0 N- b( n - (setq a (getpoint "\nChon diem: "))
+ L$ `( \+ P& Y, @' g - (setq b (getpoint a"\nChon diem: "))
( r( g5 f* o: u5 {7 N - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))) e# c+ i/ n3 ]. J9 G- l0 D
- (command ".circle" c a)
1 }) q/ n9 F9 X/ { - (command ".line" a c "")# @: z# _, i7 [% R% O* X, B6 [
- (command ".array" "last" "" "p" c "3" "" "")
0 _/ A$ H: i7 A* F8 b - (princ))/ [9 ?% k! W# F8 [
- , L. _. i/ F+ U4 q* Q+ E2 M5 J! L! p
- (defun c:ga5 ()
% h9 X9 V. t4 c$ H - (setq a (getpoint "\nChon diem: "))
7 ~2 x/ Q& M [9 I' f9 V) A - (setq b (getpoint a"\nChon diem: "))
6 w& x/ `6 e/ a* J7 }" `; k" J - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
; V& \" f$ H. X. I9 x" Q; K& ? - (command ".circle" c a)
/ L4 Q! r" e5 l6 s6 S( l - (command ".line" a c "")2 f, F# _- b7 I
- (command ".array" "last" "" "p" c "5" "" "")
2 _$ j! K7 p. F - (princ))! w) x% V5 k( Q
- ; f1 W6 s, N4 [, P' }5 x( `
- (defun c:ga7 ()- S D- A! P3 j ?3 Z0 h* k
- (setq a (getpoint "\nChon diem: "))* h: F" q" y1 M( U
- (setq b (getpoint a"\nChon diem: "))2 F# r. H: r3 V- T* ~% K( B
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
`; f* U! d. S9 W) B5 f - (command ".circle" c a)
, k+ ^! n8 \6 [. D% e/ z - (command ".line" a c "")
* g2 Z) q" z- p$ ~, v4 o - (command ".array" "last" "" "p" c "7" "" "")
3 U# J2 A0 L" B+ X/ D - (princ))
) h0 y* Z h% c5 ~7 v e
2 H9 K% r& N1 p, j4 t$ ]( ^0 q- (defun c:ga9 ()
" F( f8 Q% k9 g; S6 E - (setq a (getpoint "\nChon diem: "))
2 X! K& p2 L; @1 i3 ]1 B - (setq b (getpoint a"\nChon diem: "))$ m1 L }6 J- u0 a/ t- c
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
, S `3 b: B" d! S8 F: I- r* t s - (command ".circle" c a)
9 y/ c" j5 L, }& O* A - (command ".line" a c "")
8 Z b3 l. G! l - (command ".array" "last" "" "p" c "9" "" "")
1 s" |6 q/ G* K# j A$ f+ { - (princ))
" R4 Q: {" H8 h
7 j' U8 {2 J- U2 P+ I" A3 ?9 ^- (defun c:ga11 ()
/ T( a/ z# b) }' t - (setq a (getpoint "\nChon diem: "))
: F+ o1 _ p, r# q U L - (setq b (getpoint a"\nChon diem: "))
3 ~3 V" J" r0 {1 ~' r& s - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))): P5 U' D4 H, n* l: I. w
- (command ".circle" c a)
0 d% a8 ] ]; [0 B& _6 H0 v/ D - (command ".line" a c "")4 s9 p& { k/ Y
- (command ".array" "last" "" "p" c "11" "" ""): m s5 k* Z i1 B% H8 d+ O+ f9 R! n! h
- (princ))# r6 q; |$ W3 k/ e+ D, m+ k+ o
/ y! m2 a" [4 `5 C H- (defun c:ga13 (): h0 S# b$ _/ @0 S* z( w! L
- (setq a (getpoint "\nChon diem: "))
3 @3 e, e4 R, D4 l8 s; O3 m! \ - (setq b (getpoint a"\nChon diem: "))) X% K* s% i8 z# p- A8 i
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
6 O2 p/ H6 o) o2 Q; V - (command ".circle" c a)3 L0 G$ }7 D. k4 c" R( l
- (command ".line" a c "")
6 s2 z; M3 c; |' E7 l, K - (command ".array" "last" "" "p" c "13" "" "")9 P. c2 w& A8 ?5 U+ z
- (princ))
1 u' y; W3 Q0 W8 l9 l" v5 c - / p+ J* f, O( N# Q4 y
- (defun c:ga15 ()
# S! ^5 [8 P4 L, t2 M' z9 K: j - (setq a (getpoint "\nChon diem: "))
0 v/ N1 R" s4 H- B3 g- g# E - (setq b (getpoint a"\nChon diem: "))
; n$ @; V! Z: f3 a3 _# B - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))) }7 p' V! Z7 k. p1 b
- (command ".circle" c a)1 O, _* k8 P6 w9 g& O6 h
- (command ".line" a c "")
) e. f! I: ?. Y) n - (command ".array" "last" "" "p" c "15" "" "")6 p n1 ^3 l+ b. f6 F) V Z( K% @* Y
- (princ))8 o% M! T# f a2 X3 D
- 7 o% p5 P* R/ E5 |
- (defun c:ga17 ()
) ~( S2 `: i1 U. q3 I - (setq a (getpoint "\nChon diem: "))
! `1 s6 J, t9 z$ O8 E' _; u+ h: ? - (setq b (getpoint a"\nChon diem: "))
+ F" E t+ T: a- @& m - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))! x' j; z" d K# M$ r6 j% j, r, C
- (command ".circle" c a)
/ ]& c+ L2 N% f- Q$ N# K - (command ".line" a c "")
" \2 \. G3 @$ J) ]6 ?4 b! V - (command ".array" "last" "" "p" c "17" "" "")& V4 X0 ]% f5 ^' r' }* ~
- (princ))3 o/ E& ^4 W, f2 g, T
. m1 d9 h! w% {* ~- (defun c:ga19 ()
S' W1 E+ F: M. |' t* x% Z - (setq a (getpoint "\nChon diem: "))4 G. |9 W9 U5 I; s
- (setq b (getpoint a"\nChon diem: "))4 }. L$ N0 _$ |9 w
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
3 y% B2 R* H3 e; t3 K, l - (command ".circle" c a)
# C6 b0 [8 R; z8 G) j - (command ".line" a c ""): o+ E6 q7 P: K. _5 B
- (command ".array" "last" "" "p" c "19" "" "")( a. R( u# L0 V' P& h' [
- (princ))6 [ \* ]2 y4 s5 ?- b8 T
+ \, ~* ~$ [/ ]8 t% K- j! A f- ;=====================================================================
7 G+ c; g' l- Z% B$ I - ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============9 }1 U* A! J; |5 S" B5 P5 e/ n
- ;=====================================================================
& |5 u, m& Z& E% B - (defun c:ga2 ()/ j% Y. U! u# x6 h1 \8 p
- (setq a (getpoint "\nChon diem: "))
4 b; B2 F. F( S" [. U1 Y7 ` - (setq b (getpoint a"\nChon diem: "))7 k4 ?$ a+ `) ]6 p0 m* n; K5 d
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
) L0 P5 r5 k8 {/ j+ I$ c9 g# w - (command ".line" a c "")
, {$ a7 O' J3 v' Q3 m - (command ".array" "last" "" "p" c "2" "" "")
2 z. ~# B/ K0 U' C+ B' b; q - (command ".circle" c a)2 V: Z* g) }3 u: P0 ]4 B1 ]0 E
- (princ))7 y* ~' h% R. ]: S- F t
; `2 D1 Q. K$ [/ `7 [) P0 k- (defun c:ga4 ()4 e# V2 j: l+ m1 I5 d i# k8 r
- (setq a (getpoint "\nChon diem: "))
" D6 | n7 q9 t8 M! w - (setq b (getpoint a"\nChon diem: "))
" h: `7 Y4 N+ q- ?+ W - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))& p0 Q$ Y [; Z# N! i: t
- (command ".line" a c "")
4 F3 `3 W z/ q W$ f - (command ".array" "last" "" "p" c "4" "" "")+ Q1 h) [* `3 W( N
- (command ".circle" c a)
& Y; T" U8 j1 g/ |8 S - (princ))2 b3 m: v( H6 f. D4 a0 E
0 c. ]" i4 \8 G- (defun c:ga6 ()+ J Q) x2 ]6 V/ s+ k
- (setq a (getpoint "\nChon diem: "))* O. r7 E X O6 m
- (setq b (getpoint a"\nChon diem: ")); G) ]9 n6 ^3 ]0 V' _8 S2 I
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))$ @/ ^& k2 H- @
- (command ".line" a c "")
2 e( V1 B7 I* a2 N2 c! S2 ^1 v x - (command ".array" "last" "" "p" c "6" "" "")
2 |! E2 A/ e! f4 B$ ] - (command ".circle" c a)0 G1 c Z9 p# j, P
- (princ))
) o) w8 J+ k" {# K/ u$ L: |
1 p; x& V- |9 t2 Q- (defun c:ga8 ()% v6 n3 M8 Y9 K" Q. H7 U, H* C
- (setq a (getpoint "\nChon diem: "))
/ X9 g6 k6 [! J3 }" w) ~) \ - (setq b (getpoint a"\nChon diem: "))
9 s7 O; n% K* ?0 c( [ h - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))! a6 `( c6 P! Z6 o% g
- (command ".line" a c "")0 F8 ^/ d/ L1 X6 u+ ^3 \! k
- (command ".array" "last" "" "p" c "8" "" "")
9 J% H o5 P. Y) X& M! L - (command ".circle" c a)
" i9 J& D" r) B. f. b+ L - (princ))
, c, S4 z# s7 Z( t3 C - & k/ B5 ]- n! Y+ K
- (defun c:ga10 ()6 m) n# A, ^/ b* a- N; W
- (setq a (getpoint "\nChon diem: ")): u, j4 x) V* T' \ H! j( e
- (setq b (getpoint a"\nChon diem: "))3 g- h% s" b* [/ u7 k
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))5 K% c6 `8 z% H! N4 R
- (command ".line" a c "")
$ h7 |$ n. i7 v0 q5 | - (command ".array" "last" "" "p" c "10" "" "")
/ d I& T0 V; f3 p! c6 K# q c5 } - (command ".circle" c a)
. j3 u8 ~" \" B* e& N2 o4 `; d - (princ))
' f) W/ j# \+ H! S2 d - , i- k- v( G( @* J4 | V: f( S" B- ?/ v+ u
- (defun c:ga12 ()
3 n2 k% s8 j# I5 P- O - (setq a (getpoint "\nChon diem: "))6 l2 x3 k6 d, _: n2 b5 c
- (setq b (getpoint a"\nChon diem: "))7 h' o3 M# C: u& }
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
9 r" B2 T* w( t, O/ E# E - (command ".line" a c "")
+ c$ A6 g& Q$ {& d1 ], F7 u+ O - (command ".array" "last" "" "p" c "12" "" "")/ q" T1 S( T6 k S
- (command ".circle" c a)/ @3 X! p, [/ Q8 }
- (princ))" ^/ G4 @2 C6 C, D) c, ]6 S" Y5 A
- # O b @5 C, R
- (defun c:ga14 ()
! {1 [2 C, {% e0 Y - (setq a (getpoint "\nChon diem: "))
4 x/ k! a- Y- ^9 p9 d - (setq b (getpoint a"\nChon diem: "))' w; ^1 O U8 l: Z$ E$ J
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))+ U+ b+ H7 B% e% Q9 ?
- (command ".line" a c "")9 H) _- J/ o! L8 H
- (command ".array" "last" "" "p" c "14" "" "")
7 @1 [( [0 N9 v+ |# u( S2 v - (command ".circle" c a)
( R/ u! n- D3 s m, _ - (princ))
n6 K( Y2 o y; Z( I) N. w - ! a0 F. _* ?, e4 X
- (defun c:ga16 ()
: h! q5 \9 Q G9 m5 e3 }9 N - (setq a (getpoint "\nChon diem: ")). t: q* J9 D4 e
- (setq b (getpoint a"\nChon diem: "))
/ W/ K+ K1 f: F2 m - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))5 O) \6 `3 @7 {, ]1 B# b' F
- (command ".line" a c "")# L8 F$ L# |0 U4 b' i; R3 q
- (command ".array" "last" "" "p" c "16" "" "")
. m2 i! y. N2 S _ - (command ".circle" c a)
0 H) O/ A0 @4 W" K5 ?, Z - (princ))/ y, y+ Q' Q' x3 t n: L
- ( |3 p5 F5 j1 ]2 R0 y' u+ }+ K, O
- (defun c:ga18 ()1 T8 b, y( G. n8 q0 z
- (setq a (getpoint "\nChon diem: "))$ _1 M/ v; c1 V: P5 c7 C B0 F
- (setq b (getpoint a"\nChon diem: "))5 g; J y+ B3 m6 R, D0 u H4 @
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
H9 O6 [9 q$ h - (command ".line" a c "")
# n8 M( N7 Q; i' w+ g8 \, B - (command ".array" "last" "" "p" c "18" "" ""): g" p& o6 m& M6 z( q- g
- (command ".circle" c a)6 L$ a* p1 O2 S/ `5 u
- (princ))
2 W- W6 e* K2 d: I1 g6 c0 [
$ f! l$ i/ y. S6 s0 R3 t- (defun c:ga20 ()
$ E- R0 q, l: T3 t* a4 A0 V4 m" o ]3 n - (setq a (getpoint "\nChon diem: ")). u$ ?8 X; m' }8 Y
- (setq b (getpoint a"\nChon diem: "))
- U; O/ D# X2 H+ | - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
! V3 w, ]' @* V8 O! t- I - (command ".line" a c ""), B* L& Q9 D H( S0 C U7 z! c6 e
- (command ".array" "last" "" "p" c "20" "" "")
5 W; R! M, J) I) j: j6 f0 s# y - (command ".circle" c a)# T1 G; B& i2 ?, G# M- C- t+ A o
- (princ))
$ h0 `( \0 l- Q( g! B5 q) }* {; v
, m# ^- ~; i' W; s o9 u3 h- ;=====================================================================
/ o' k) s! e7 N3 G7 C4 P9 [ - ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============2 w$ N1 X4 T8 u$ ~- I$ x
- ;========================== 06-11-2016 ~ 18h00 =======================
* T1 A6 t* G3 i0 ^8 q( f4 E4 p3 ? - ;=====================================================================- ~( }! ?/ P7 ]
- (defun c:ga ()
$ U! e8 m1 R2 A9 U - (setq a (getpoint "\nChon diem: "))0 n/ F# L( K) x# i, F
- (setq b (getpoint a"\nChon diem: "))3 n2 j; u. m) c6 _! _1 D
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
, g% x* r* }8 v - (command ".circle" c a)3 y2 r+ J. B, q3 j9 a" V8 A
- (command ".line" a c "")* { z2 |! a& F" {* P! O
- (command ".array" "last" "" "p" c "NUM" "" "")
4 U6 I8 `/ F7 k' ~1 g( R0 e) b+ J - (princ))% C# l7 c; I$ k
- + J( y P3 Y% h7 H$ T
- ;=====================================================================
- p; Z2 U/ C' m! F# r- c, o - ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============0 _& I9 t5 g4 P" Q9 |9 U
- ;========================== 06-11-2016 ~ 18h40 =======================
' W$ n L( \8 @7 {0 e( m# _ - ;=====================================================================& N7 z$ m5 r" I+ ]
- 6 `. b, p5 v: G* L/ h
- (defun c:hoathi ()( e9 R& B9 h4 k- z* B- r I- u' U( y
- (setq a (getpoint "\nChon diem: "))
4 ?! E0 h) {6 J& T3 w - (setq b (getpoint a"\nChon diem: ")); X1 r/ q8 T; j( }2 B& n1 e1 s
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
/ K% |) v |' F8 T1 K4 e% ?: N - (command ".line" a c "")
a& j2 {- s% Q( q) K& J - (command ".array" "last" "" "p" c "NUM" "" "")2 A6 Q. ^+ A; s% Q; b2 P
- (princ))$ I9 o2 U- U# | d
- % @2 ~( f+ n" U0 W' R5 Z, y( _7 ^
- ;=====================================================================- q" f9 @ f* O
- ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============
* s: I1 t# J* o' r5 k* r) d6 [ - ;========================== 03-11-2024 ~ 19h33 =======================- j" m0 ^! X0 S# D9 D0 Y
- ;=====================================================================
6 E) x. W. ]; b2 ` - , \ Z) G3 M! e" D, d$ o" V+ H
- (defun c:cung ()" n; v/ x% f! h+ R- ]# b
- (setq a (getpoint "\nChon diem: "))
2 \: D4 J; P/ ?; w' l - (setq b (getpoint a"\nChon diem: "))
, r! S5 {$ y( b( \! ` - (setq c (getpoint a"\nChon diem: "))& g) R) b& m- d% I+ ~" v
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))" k/ t; l3 B! E% n( X# R9 ~/ c
- (command ".arc" a b c "")$ p$ h$ Z0 i7 [3 m7 E8 [0 k$ q
- (command ".array" "last" "" "p" c "NUM" "" "")
# F* `6 I5 e2 k" n0 ~9 [4 ~- z - (princ))
; q/ S) Y" H5 ^$ H" ~* z. x0 B
" U9 j; ~: Z$ k% K% v' `, C1 _- ;=====================================================================/ x6 D7 m/ k7 }' k
- ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============
& @7 \# U6 J0 P8 |$ \0 K - ;========================== 03-11-2024 ~ 20h02 =======================
6 m3 L5 [) I4 f - ;=====================================================================$ ~9 }, u) P/ }% ~
8 W8 H8 g' M* X `; t- (defun c:hecloic (); T% [ s- U( M
- (setq a (getpoint "\nChon diem: "))
1 O" I( K7 G6 x3 r' b1 y0 ]* w$ w" T - (setq b (getpoint a"\nChon diem: multi "))* X$ J( i2 _6 I
- (setq c (getpoint a"\nChon diem: "))(princ)
7 ~4 u8 o p8 t0 J j- j - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))# ^8 R# B2 q" D2 `$ d( X
- (command ".arc" a b c "")) r) h& V' X9 x5 ~4 m: _, G6 n8 |
- (command ".array" "last" "" "p" c "NUM" "" "")
3 s' o% h2 [* U2 x9 r2 R! s( y* Z; C - (princ))
1 m O8 G: e& e: X3 H4 F* A5 k
" ^2 w+ F" L( J2 h- ;=====================================================================
1 A4 V6 Q& E4 k5 w6 E( b$ d - ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============0 z0 i/ U# z: g7 S. I* ]) L, ]
- ;========================== 03-11-2024 ~ 19h38 =======================9 [ O8 D- I# a; N- n& K% d
- ;=====================================================================
6 x2 f- A4 U& E. T5 ~
p0 \# O2 e1 w8 \# n5 b, k- (defun c:gay () N; R/ V( r) H, P; J! h
- (setq a (getpoint "\nChon diem: "))0 P/ T& W% U/ d, d* q
- (setq b (getpoint a"\nChon diem: "))
9 y9 ]: o: t C% a- i& v( ~- j/ B1 { ~ - (setq c (getpoint a"\nChon diem: "))(princ): y- w- W7 j0 L* O- x
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
3 L5 C: N7 n2 _/ G1 V l - (command ".pline" a b c "")
) a5 W+ G- y5 Y4 z2 \5 x: x - (command ".array" "last" "" "p" c "NUM" "" "")
# V6 j( a, n, Y! c - (princ))4 Z' V# d, G: Z6 u, R
- 4 y8 M( Z0 H7 p' L) \
- ;=====================================================================+ V7 W+ g7 ^$ M3 F8 [" t+ U
- ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============
2 F5 L$ t2 E# y' B T/ h - ;========================== 03-11-2024 ~ 20h02 =======================# {2 p( v* P- ]& ?" h' ~ o$ C: {, R
- ;=====================================================================
7 Q" d r% `9 v% B - ! m- W+ B D: O9 Z
- (defun c:hecloit ()
- j0 O* U ^8 ]/ L - (setq a (getpoint "\nChon diem: ")); p. c, n# ~4 c7 _2 G) Q
- (setq b (getpoint a"\nChon diem: multi "))
( k. ?' U; u3 M. h+ \- A! F9 w, R - (setq c (getpoint a"\nChon diem: "))(princ)* s L% K, e4 Q7 E8 z* ]1 ~
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))+ j! _+ t1 p' }& a& }8 p/ k1 I
- (command ".pline" a b c ""). }2 m% G/ V j
- (command ".array" "last" "" "p" c "NUM" "" "")$ T8 [$ n6 y2 P: N" X9 Z$ Y; Y4 e
- (princ))
$ ]$ p) X4 r; a - * H/ p( D$ b8 r
3 c% v$ L1 \0 q2 y8 ~, C2 ]- ;;; ============================ Merge Hatch =============================9 f! v1 r6 O; A& i! k
- & X0 r9 G$ |" y: @' |
- (defun c:mh (/ ss entht sl i dt dtht)6 Z$ Q( @+ i8 U, q
3 [1 w @1 ~. v- H2 w9 b) i- (princ "\nMerge Hatch - free lisp from CADViet.com")
9 M* i0 c: \+ n$ D
' _6 _8 \2 }7 W2 ~% S7 a- b% C- (setq3 j! b3 ?# }! K4 ^( {, z
- ss (ssget '((0 . "HATCH")))
2 S2 n ]) k8 \ g6 F' {: s. L, | - sl (if ss/ z/ \$ a$ m1 O6 U8 ~
- (sslength ss)2 C# f0 H3 J- x" ]* G, K" }
- 03 X1 B; v& Q, l8 r( D+ p; o! u
- )
- {0 x2 O% x/ M7 n: w6 U& {# i7 V - i 0
+ W& J, O; v% P% `" u/ z/ Q - l 0# G( z7 ~' s5 M
- )
% K+ B, [. j1 l8 B! [
6 y% u1 Q: e! j1 l9 C- (repeat sl
& C6 O+ \% G' @ - (setq, }7 H% k/ ~) t' `
- entht (ssname ss i)
* {5 V' u6 ?4 c" O A- [ - dtht (getbdata entht)& p$ l& i- e) ^6 s1 @
- dt (append dt dtht)2 p) ?$ X4 T3 n/ v7 L
- l (+ l (cdr (assoc 91 (entget entht))))" ~5 K$ j+ P/ @. M
- i (1+ i)/ W% X( K/ V5 Z' W+ w: V/ d6 ^
- )
$ C: D% M: N# T3 P& f - ): a9 u2 C1 U3 N: ~& [9 U# G
' t) O& K6 X& V# W; }- (setq ent (ssname ss 0)- G! @6 o2 g5 J! d% u& ^
- ss (ssdel ent ss)
: m& t# M" K+ O - tt (entget ent), g4 v; P8 E P9 _: Y
- duoi (member (assoc 75 tt) tt)1 R( o. Z% s/ |
- dau (reverse (member (assoc 91 tt) (reverse tt)))
* d9 ]' G4 | o* e+ P: V! D, m0 F - tt (append dau dt duoi). i8 _" w6 y' r6 z/ H. F: `
- tt (subst (cons 91 l) (assoc 91 tt) tt)
7 u7 V5 h& V4 ], t. } - )
9 p' _ t2 J$ [5 g! T$ r. F - (entmod tt)
; M1 w" M! d* K7 Q8 V! ]
- R3 P8 ?3 B' `/ V$ N4 x- (command ".erase" ss "")( d8 L5 g7 K2 H6 s+ x
- (princ)" i! n. w' G" I6 T6 a& g$ ]
- )0 Z* `- A" T; X1 U. ^
4 w6 U4 E, ~$ x- (defun getbdata (ent)
3 c% A1 _! J6 D; ]5 O+ G, q - (setq tt (entget ent)% T/ |/ ^+ u9 M" j
- tt (cdr (member (assoc 75 tt) (reverse tt)))
7 B: }6 l9 w' V* ]7 b, c) k - tt (cdr (member (assoc 91 tt) (reverse tt)))8 |1 Y/ c5 d" i( `: F9 Y0 k$ M
- )2 o+ g B( ?* t# n& h
- )
& [0 h6 {. O, L5 y( C. S
5 n9 B3 L" T" s9 y4 ]. O$ a
$ J( K# u% d2 q$ |- (princ)
& }* X+ A! x y" Q$ s! V- ~! }/ J# V - ( z6 @) C3 C' p8 ~5 Q
- ;;; =========================== CAC LENH LAYER ==============================
9 {' s$ h$ A* _, v9 E$ i( M% Z - ;;; =========================== Layer hien hanh =============================1 |/ Z3 e _6 ]
- 2 d; Q3 o9 y( a0 Z
- (defun layset (/ LAY) (setvar "cmdecho" 0)( v. ^4 _7 f" Z+ U. U8 o
- (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))
4 K/ n" w/ w% ~) C, ?4 t2 @: y V - (if LAY (progn
5 @! q) j* Q8 W: I% Y, ~9 @ - (setq LAY (cdr (assoc 8 (entget (car LAY)))))
+ s- y3 ~& V- K1 d ?8 n - (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )9 y" K6 z7 q6 L$ q. B9 Q+ _' j
- (progn" P& F) J; g1 W% A
- (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop))
+ j. e# e. S0 }2 P1 l" C3 c - (progn% V! {7 D! |8 ^. ~: k, i
- (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )9 b# M& l! Z1 O' ^
- (defun c:LLL () (layset))(defun c:LAYSET () (layset))/ Y8 @8 o% H2 }
9 j8 R$ L; O1 K; s1 l. s4 F7 k- ;;; ================== Cap nhat doi tuong vao layer hien hanh ==================: G8 t8 P& f: Y+ a+ z/ ~
2 a* F! S4 g. e; I' r, P( J" Y- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)( g: D( F/ a" k' b1 w' \( b8 P0 |
- (if (not (setq SS (ssget "i")))
) R$ Q% c: j& L4 q; Y - (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")
3 a2 ~2 n1 y& M* ? - (setq SS (ssget)) ) )$ @0 z4 Y8 E) U. {6 Z' ]
- (if SS (progn5 b+ k, N* I3 C6 z
- (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "") . \/ `9 z7 }1 n3 `1 P
- (if (> (getvar "cmdactive") 0) 5 k" C0 K" u4 z7 L& x8 v( w, M
- (progn
# l+ R0 M: R1 G1 m* m: `& n/ _ - (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) ). \/ R5 F4 g: L4 P7 k, r* j) ]
- (setq SS nil) ) (if (> CNT 0) . {) J, k; u6 \! q9 e
- (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )
5 J8 b; E6 c7 c! r; z% G3 W' \: C3 B - (if SS (progn
8 T. r% e' p: K% Z$ I* v+ U7 U - (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")% E, J2 Y1 l1 e3 n& ~1 j/ k
- (if (= (sslength SS) 1)
, Y7 z8 @$ l h, r - (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")), @ R. P' k' O2 A9 O( v% N
- (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end
7 z/ v6 O! ~" o! i& O. S5 N0 T. H - (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur))9 n6 [% s) r& V+ F
- ) b5 v( |! Z+ M* a
- ;;; =========================== Layer Iso ===================================
, o( d; W; a6 }, l9 } - , f1 P* ?: M B
- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)
6 _1 W- l% j1 e8 B - (if (not (setq SS (ssget "i"))) (progn* v' u8 l+ P$ L; f& J9 {+ y9 A5 v- a
- (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ")
6 o3 k* l" {3 K - (setq SS (ssget)) ) )
& T+ u# v; M! j; m3 Q( y% R - (if SS (progn (setq CNT 0)0 w* g) d8 R* W, e
- (while (setq LAY (ssname SS CNT))9 t" N" ?8 Q! b' `+ C8 _% Q
- (setq LAY (cdr (assoc 8 (entget LAY))))
7 `8 G3 G# ^( _. D: u0 Z - (if (not (member LAY LAYLST))8 U' n, ?4 Q) D! b: P
- (setq LAYLST (cons LAY LAYLST)) )
, w% ?! _2 `0 ]4 M+ Z' n - (setq CNT (1+ CNT)) ) T' u4 G' t+ [5 Y
- (if (member (getvar "CLAYER") LAYLST)
0 d: r; W3 h3 E, f. t+ w9 w0 v - (setq LAY (getvar "CLAYER"))' n6 ^2 a8 Q, V' I
- (setvar "CLAYER" (setq LAY (last LAYLST))) )- p3 T; A$ |! D( _: E2 V' q
- (command "_.LAYER" "_OFF" "*" "_Y")
6 [3 F$ d7 Z+ k3 t% C - (foreach VAL LAYLST (command "_ON" VAL))
& a2 I% } H. s% @* M - (command "") (if (= (length LAYLST) 1)
* D" q; Z/ b4 G5 n( Q! c0 e( @ - (prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))
( O8 v6 W7 g; s - (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. "1 \. r8 U# \6 k% a. n! K
- "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )
p0 |* b6 l# g$ }( [' {8 L - (defun c:LAYISO () (layiso)) (defun c:LI () (layiso))+ e4 Y8 c$ ?$ l8 W/ [0 M& L
; l S) i( U2 ~: n4 F/ P- ;;; ========================= Layer Match ==================================
! x4 O3 S7 Q3 I* b
@5 {7 ] c: N$ E9 q- (Defun LAYMCH (/ SS CNT LOOP LAY ANS)
7 r9 V; j& J6 h, ^# D - (setvar "cmdecho" 0)
3 s+ ~% g$ K+ ] - (if (not (setq SS (ssget "i"))) (progn$ V+ C6 g1 H/ R6 Q
- (prompt "\nChon doi tuong muon thay doi Layer : ")
E$ l; B+ b5 f! H* w' m - (setq SS (ssget)) ) )
' z: J1 M7 W/ W - (if SS (progn
! {, P6 q; v% k* ~' `+ s/ D2 g - (setq CNT (sslength SS))
& k9 k$ O3 C" M* n0 O. p* f: |- \ - (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "")
! ~6 x' N9 q( {5 [( D( A. t& \ - (if (> (getvar "cmdactive") 0) (progn# B2 `0 ^1 P8 |; b+ N9 E
- (command "0,0" "0,0") (setq SS (ssget "p") P( F9 q8 N( K0 x' ^ y1 t! k
- CNT (- CNT (sslength SS)) ) )
0 [9 b9 K- q4 \1 V - (setq SS nil) ) (if (> CNT 0)
* A) d1 ]6 q6 G) [8 }' Y2 @, i0 f2 y - (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) )( H& {. Q! x6 ]7 V' K. D0 w
- (if SS (progn
, ] L* ~9 [- H - (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T )3 [/ t- M5 c: U+ A8 O" {
- (while LOOP (cond
5 p* W9 ~( y& j! m/ M4 g4 A - ((not LAY)$ o8 p- @4 ^6 @1 f K6 s5 \
- (prompt "\nKhong chon doi tuong.")
7 f) u0 V7 S) O Z3 j+ C - (prompt "\nSu dung layer hien hanh? <Y> ")* C/ s! @6 \: t
- (setq ANS (strcase (getstring)))" d2 [ X- P# g6 |3 P& c
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
C5 n% Y1 q, S$ s - (setq LAY (getvar "clayer") LOOP nil ) ) )! ~. i$ n' R9 I! U' p
- ((listp LAY) (setq LOOP nil) )% u/ p$ p6 J- Z" C$ P! J
- ((= LAY "Ten")9 ~2 P# Y0 {4 R; y. d K9 b7 U# m
- (setq LAY (getstring "\n>Nhap ten layer: "))
0 h" p6 l) J$ F7 F" y# [* a - (cond" J* \6 J7 }3 |5 c/ k" Q5 _/ }1 B
- ((tblsearch "LAYER" LAY) (setq LOOP nil) )
3 q' T1 D' ]: w% i" |7 u - ((/= LAY "")" ], c+ q6 G* A5 Q! O1 m
- (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: "), q0 @% t. P$ [( I% T2 q7 A
- (setq ANS (strcase (getstring)))6 y9 h& m9 ^5 a7 f
- (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
0 z/ e* }, z# t9 w$ u7 a6 m/ u - (progn
% c* `2 D& }- G% o$ U - (command "_.LAYER" "NEW" LAY "")6 C8 y8 X( i1 b8 b
- (setq LOOP nil) )' n: L' ], z# n8 k- o
- (prompt "\nLoi ten layer.") ) ) ) ) )
* I; }7 e# D ~, N6 o - (if LOOP (progn (initget "Ten")
5 `! w* ^9 O) ?: J/ V - (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP
% s$ F. y. r2 H+ }8 y3 R6 c - (if (listp LAY)
/ y2 }- _& r) Y. |. f - (setq LAY (cdr (assoc 8 (entget (car LAY))))) )
! z) @. @- n0 Q& z( u; K1 f - (command "_.chprop" SS "" "_la" LAY "")
4 V8 O, T* G% s: w2 s - (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )* X" l& H9 D: A! Z4 w
- (if (= LAY (getvar "clayer"))" d% {6 p \' M& t; K" h* m2 @' h
- (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )
8 [5 ?1 a0 K2 j" ^& e - (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch))
& G Y. }9 b$ J - / v& P& C+ f% e1 T1 f2 A' z9 o
- ;;; ============================ Layer OFF =================================7 u( c( @) G) S9 x) u6 _ o
, ^ p7 [( a( V0 g- x5 Y- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE)
6 H: F; h; g! k. B, o' A - (SETQ SSET (SSGET))
* o' k0 l" c( [+ i) s7 _ - (IF (/= NIL SSET)
- n2 v8 Q/ x2 A+ | - (PROGN
* [( E- X! c6 X! d- ]' e; U3 } - (SETQ SSL (SSLENGTH SSET))+ o8 w3 A( E; `
- (SETQ LAY "")8 [2 o6 K% o7 B0 `7 D
- (SETQ I 0)
4 S" A: Y& v2 z' F - (SETQ MODE 0)
1 ?7 e6 r& y8 I0 w6 }4 [6 e - (WHILE (< I SSL)
8 \* Q$ v& u+ Y0 Y3 ?1 }3 h/ C - (SETQ ENT (ENTGET (SSNAME SSET I))); h# J: z0 C0 U; V- \! w
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
1 J# ^8 L7 S2 ?4 @+ t - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )). J+ n1 X+ ]6 B. X
- (SETQ I (+ I 1))0 B! o1 ^6 i: A0 L3 _
- )3 v; C; O- c7 \" m8 v
- (COMMAND "LAYER" "OFF" LAY "")
) C' N9 r4 X9 ?0 P - (IF (= MODE 1) (COMMAND "") )2 B+ ^! v: n# b( _, Q
- ): G, | F: m* D* P: _; J
- )3 Y4 ^7 \/ q- I& ?& T4 i
- (PRINC)$ q7 w, n: Y* e% H( X/ ]
- )6 e* z" x6 s8 ~ \5 [
9 ^: w! F) B$ M1 W* @- ;;; ================================ Layer ON ==============================1 A9 z5 R3 ], B& G
, }; h X1 t# L, `7 V. H- H: P- (Defun LAYON () (setvar "cmdecho" 0)6 ]: g) T, F' P+ P' ^, a a
- (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")" }! z* o( r" ^
- (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))
( p4 K6 n8 l; J' d6 S5 v7 S7 t - (defun c:LAYON () (layon)) (defun c:LOO () (layon))- h' I& ^% [ t3 o8 r" K D# O+ |
- (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))% e; I: |/ g" x3 u
4 F, E4 V+ P$ T* q L- ;;; ============================== Layer Freeze ===========================" w: _4 v; @3 v1 q/ f9 ~
- 6 E' s$ a; f" \# a
- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0)
7 D4 u! |* j$ ~# T& R9 I2 f - (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))
! }$ D7 X: d7 c# G4 \ - (IF (/= NIL SSET) (PROGN
3 ^: K/ a5 p2 ~% p- ~3 H' m; [ - (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0)
4 |! E6 x& W4 `' e' T - (WHILE (< I SSL); v( p* i0 N& t1 \9 P
- (SETQ ENT (ENTGET (SSNAME SSET I)))" O @5 W( L) v4 v1 z% s
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
$ y" y, \- V. ]9 a0 q+ U - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))7 ?( i- e, m/ c2 B, _. x
- (COMMAND "LAYER" "FREEZE" LAY "")0 ~+ U- R8 S( v( g$ `
- (IF (= MODE 1) (COMMAND ""))))) {( O( i: t. @, v
- (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)+ v; V% Y+ a3 f5 U6 G* S/ p
- (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )8 z' P$ P' ? H; K" R; T# t
- (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz))+ w2 \- ^8 |) I
' O$ w4 x. _$ k3 q T0 b* w1 |- ;;; ============================== Layer Thaw ===============================7 h) y2 y2 L: A8 O
! e6 T8 F4 \' k9 x1 |; B- (Defun LAYTHW ()
1 s: v% P5 _, B - (setvar "cmdecho" 0)
* B3 i+ ^5 G) N9 x, \2 Y - (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")7 b o- S" d8 S) |9 L
- (Command "_.LAYER" "_THAW" LAY "")1 C6 ]7 t% y1 b9 f- Z
- (princ (strcat "\n Layer : " LAY " da THAW."))
- L" X) I* T6 b9 V* w2 r - (princ) )
) y4 R$ _) v0 d8 G9 w/ e6 P - (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw)). h9 D/ a/ D7 [7 O: }+ P6 O5 \
7 S; D6 B% Q' J9 O, l. K+ U& o- ;;; ============================== Layer Lock ==============================. c2 Q, |" L/ |( ?) k
' h, h7 J- V |' k2 A9 j- (Defun LAYLCK (/ LAY)- P9 z0 M7 G6 t" X% z8 A7 A, _& z
- (setvar "cmdecho" 0)
3 B1 C- F2 C" D& h - (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: ")): p5 u& d8 Z! p2 M" c s$ Z
- (if LAY
+ W. J1 c" H( e0 Y, R" b% ? - (progn6 x3 ~/ ~; L5 ]
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))+ C& Q- ?+ c$ t- u3 B. \* x+ ~
- (Command "_.LAYER" "_LOCK" LAY "")% l Z1 H3 z" T7 N2 V6 B
- (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) ); i9 E/ K$ V4 Z, O( j( O$ N/ I
- (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))
' y0 ?4 H6 y: @: B# B' F# Y
% N' ]# R0 N# f8 _, k' o- K, m- ;;; ============================== Layer UnLock ==============================2 i& k0 n2 p& `- o2 L* m
- ! V. C; g' t/ _8 {# q* D3 b
- (Defun LAYULK (/ LAY)9 D& |' a% ^$ D p7 L
- (setvar "cmdecho" 0)
9 s4 n* X5 V3 Y: V. R+ A# Y& n9 Z - (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))
( r0 b" d4 E* X! L! ]9 U8 b - (if LAY
9 c! a: P4 d( s9 B% R2 o6 P$ S - (progn
0 O0 y, c1 |' S! R' E( A. t0 D - (setq LAY (cdr (assoc 8 (entget (car LAY)))))# n: J3 c- y4 t- o! p
- (Command "_.LAYER" "_UNLOCK" LAY "")
$ t4 j8 i+ V! g4 Y2 |# h - (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )0 |/ p% p* x2 i0 @6 C" Q9 k
- (defun c:LAYULK () (layulk)) (defun c:LU () (layulk))1 ?2 v! a9 z2 r! @4 Q Q: p
; f7 t8 b1 P7 [7 q' j' }- ;;;===================== Delete all objects of Layer ========================
9 B, B# k" E. E
% K; ]! {: w' c. j3 r+ h9 t3 ]- (defun DELAYER (/ ocmd L S) , E9 X1 w- A% B! K( y! p
- (setq ocmd (getvar "CMDECHO")); c+ ~' m' w* f" A+ T
- (setvar "CMDECHO" 0)
# M+ T, c+ z: v- K - (setq L (strcase (getstring "\nLayer(s) to delete: "))). {, o. B: R1 B/ D" I9 K
- (setq S (ssget "X" (list (cons 8 L)))) , A; s8 v# w# i' }
- (if S
R; h7 F" q3 S& j0 q$ Q% N/ e0 F, B1 V - (command "ERASE" S "") ; N+ e8 m5 k2 l7 a
- (princ "Layer empty or not a valid layer name.") ) ; ~) _: H6 j+ t
- (setq S nil) * E' Y9 @1 ]; q3 B1 @$ }
- (setvar "CMDECHO" ocmd)
( K- S, u# [3 w4 n( ]- M - (princ) )
, d5 Z9 T% c( g6 i# p H - (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))5 z8 S9 @5 m! X
- 1 T8 g6 B( u( Y3 O
- ;;; ========================= HET CAC LENH LAYER ===========================
2 E: Y( j/ b* S# i
9 z! B D8 x/ t# L/ M- ;;;====================== EXTEND NHIEU DOI TUONG ===========================1 E9 f; x/ K/ o% X
- 9 K c) T3 ^: I# D, J0 o- S
- (Defun C:EET ()
b5 k6 L/ Q* a% v - (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)
U0 w4 `8 y/ ~ - (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))
! n/ ?& K# }: d+ |5 o, i( d6 c - (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))
- l, H- ?1 J' c$ ]7 e4 V - (Setq I -1); ^1 @: W$ `9 _7 {, `
- (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG "")
- o2 f) y; X/ ^5 r - (Repeat LEN
% F8 s7 M' F. ~1 R' E+ h+ |3 [ - (Setq I (1+ I))7 x6 T, [8 Z0 C" G
- (Command (List(SSname SS I) SIDE)) ) (Command "")0 f7 k3 E$ k& i2 o5 `* n& F0 t
- (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )
* b a4 y" j; q; W4 X
0 _" I7 G6 @' b" F; i3 |" }: O4 k4 G6 ^- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============( l0 u- [, v6 v" R. G
- 6 Y9 j' n, U* v
- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512), ]4 g7 i$ Z: s
- (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND "))
4 w$ N' C. ^( A& R% L - (setvar "osmode" os)3 s* Q& M) J2 d/ [' m
- (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))
! U2 U+ r( ^! ?5 Z. q& f$ A - (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))! J% m; R: ]+ S2 Q, z" M& H
- 8 ^1 t1 V. M9 G; }. J4 B' {9 }0 B
- ;; ================ Change width of polylines =========================) l+ {7 ]- J5 y) n
" f0 E; V+ g [8 {6 x- (DEFUN wp (/ a b sophantu sodem list1 ha:wid)
9 a0 D" K: E% P! ] - (PRINC "\n Chon doi tuong can thay doi do day (Width) !") 6 P/ O$ R% `" F/ M/ z+ H" X
- (setq b (ssget)) # S) ^2 \: w g9 u" P! E3 n+ C
- (setq sophantu (sslength b))
* c( a6 r# `, ]7 s - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))% M* d: f; ?: f# i
- (princ "\nDo rong polyline <")
. f, O9 r# A% [* s - (princ ha:wid)$ x! E7 [8 Q! E
- (princ ">: ")
# g. w9 }& d5 j& e9 I - (initget 4)# y/ d8 B/ F* k, k( p* W! U+ [& ~
- (setq ha:wid (getdist))
5 X t8 ^( [$ Z6 T% t) ?# S - (if (null ha:wid) (setq ha:wid (getvar "tracewid")))- W. r6 w& b6 Z2 [, L# S' W
- (setvar "tracewid" ha:wid)
, B, e; L% q" S' q; I6 F L( W/ B3 T& ] - (setvar "cmdecho" 0)
8 R# ]& O% d8 i - (setq sodem 0)
5 g: B+ i& j$ ?9 A, y3 ^" q! E3 W% n1 e - (repeat sophantu
+ F! K6 T, Z, o! @- y$ M1 Z* I - (setq a (ssname b sodem))* {7 P4 Z$ ?3 |$ w1 M( n
- (setq list1 (assoc 0 (entget a)))
. J3 g- I7 y2 v3 z3 F - (cond. i' x9 a0 A+ \! p1 ` ?# b; u6 x
- ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))5 t2 c0 G8 ~9 Y8 ~, k& A
- (PROGN (command "_Pedit" a "" "w" ha:wid "")) ) $ B/ h! p9 I5 P! t" ]2 K8 e
- (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))1 Z) t" G# i. y o* F2 a1 ~3 \8 j
- (defun c:wp () (wp)) (defun c:pw () (wp))
* g" \: O3 e! B: H
2 F7 _$ c5 z. ~; s/ {- ;; ================ Change radius of circles ==========================
1 M( O- o( u9 y - ( c1 H* K& D1 q \$ F( }1 x
- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))" ^- }4 u2 g3 G& T; W7 k
- (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : "))
% S; ]7 H q0 O5 O3 B, b - (IF (/= RD NIL) (PROGN (SETQ I 0)
/ K2 {% G% \- v% N5 Y8 [7 S - (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )
$ q+ d. W. {7 P - (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN
: e% N* v. [! i2 X - (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )
. t4 D8 P; w% e' N) ^9 D+ Q" t7 C9 B7 a
& c0 ^7 n U# D: f- ;;; ============================== TEXT Hight ===============================6 I, ]) w- ^1 P* ^' y4 D4 m5 }
9 T4 K4 e& G D- (defun texthght (/ ent hght)
% C3 k; E4 n' k3 {: u: F K8 N) O/ r! @ - (setvar "cmdecho" 1)% M3 K4 F( J, m# f
- (prompt (strcat"\nSelect text entity with required text height"))
4 y1 c' d. } d - (prompt (strcat"\n."))
- p: t. j- l* j8 \ C& ^ - (setq ent (entget (car (entsel))))
0 h' Q( R) V4 y) ~7 [ - (setq hght (cdr (assoc 40 ent)))0 w0 H) Z1 ^, b: }! E: W4 {
- (prompt (strcat"\nText height now set at "))(prin1 hght)
* q7 _3 N( B5 E7 M' b - (prompt (strcat"\n.")) 0 L5 V! s9 L) g
- (setvar "cmdecho" 1)
0 |9 I$ x7 V7 z - (command "DTEXT" PAUSE hght "") )6 }* X+ C& R& Z. D+ Z
- (defun c:teh () (texthght)) (defun c:texthght () (texthght))
8 H0 J+ F5 _6 D' O N& I% _: v
( b4 Q6 f) u; b- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
$ S$ p2 o6 x$ c7 Y+ c
& ]. I) i; y; Y- (defun c:tuu () (setvar "cmdecho" 0)& \! n& Y) i* g( Z9 K3 t
- (prompt "\nHay chon dong TEXT can gach chan ")) X* I6 u$ J" Y- W7 @. [0 D) A
- (prompt "\nSelect objects: ")
8 Q6 X2 k% ]- F |' [: e2 F1 H - (command "select" "au" pause)
: b3 j! s3 F" l" H o& H - (setq sstxt (ssget "p")
; Q! r7 j3 l J* H- {9 e$ }4 e* O - sslen (sslength sstxt)$ ~* x8 Y/ W8 s& [3 x0 J. a
- ctr 0 )! B! N( Q" C5 f A- @, Y2 t
- (command ".undo" "mark")" m& Z$ G" L1 j! a }) L
- (while (< ctr sslen)
6 F5 s. ^/ M j/ H1 x* G b4 f - (setq listxt (entget (ssname sstxt ctr))
$ I# ?& j: O2 @' W - txttxt (cdr (assoc 1 listxt))/ W2 K- n8 o* p
- enttxt (cdr (assoc 0 listxt)) )1 ?* j3 d% C4 K7 f; f( A+ F
- (if (= enttxt "TEXT")
1 ^9 U% A9 l* l/ I( d6 V' ]6 G - (progn: p7 J+ z' h( T- D* A
- (setq testxt (substr txttxt 1 3))' f: T) z3 M+ L( K3 ^! U
- (if (or (= testxt "%%u") (= testxt "%%U"))) L+ Z0 a) i; A
- (setq newtxt (substr txttxt 4))1 J. n& s6 ~7 x
- (setq newtxt (strcat "%%u" txttxt)) )
9 X, O3 t [1 T# E/ c3 e+ K - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
7 f5 V' Y2 C5 L9 v" o8 Y+ U - (entmod listxt) ) )
* P3 z2 o2 Z* S3 n R4 o9 A! q - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))5 F% [) ` J4 P- E
- , S t9 ^" R: u c. x" [- n) L
- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================- t6 ?) z6 g5 E3 m
- # T) d i9 O- _. Z
- (defun c:tob () (setvar "cmdecho" 0)
/ v. G6 Q3 @# ?, N. ` - (prompt "\nHay chon dong TEXT can gach tren dau ")
! I7 l1 _9 Y9 _ - (prompt "\nSelect objects: ")
3 `. f$ m) J8 x4 r: m! `) {4 N - (command "select" "au" pause)1 v4 K' H9 h) M1 i6 M6 u
- (setq sstxt (ssget "p")
& m6 T) H- Z" }. e8 V! k) l - sslen (sslength sstxt)
" {% N5 n6 y) E! @1 M - ctr 0 )9 Q w6 x9 Y7 r& m$ ^
- (command ".undo" "mark")
& e( c* a" \9 y3 ?1 @7 y% @ - (while (< ctr sslen)
% W5 O( u7 S- d0 D2 B% o - (setq listxt (entget (ssname sstxt ctr))* v0 {/ v0 @8 x7 F" s/ r
- txttxt (cdr (assoc 1 listxt))) ?% y, ^: `% n& E* q
- enttxt (cdr (assoc 0 listxt)) )
2 H& } Y- I8 _( o5 v - (if (= enttxt "TEXT")9 u8 n( d3 @0 ]8 N v$ [
- (progn( T+ Y7 C) E) z2 ~) L% ?1 i
- (setq testxt (substr txttxt 1 3))' _7 x4 q( e: J7 \* ~3 x( ~
- (if (or (= testxt "%%o") (= testxt "%%o"))
1 ^* @7 }! f! t) [5 o3 F - (setq newtxt (substr txttxt 4))
0 N, V" Z) G' I( F - (setq newtxt (strcat "%%o" txttxt)) )
1 E- L/ R; ~3 h, D+ n" x - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
3 Q+ W9 p: n$ j% E - (entmod listxt) ) )
) [9 E& u% k1 ]' @( W: ^& f - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
' S1 l) d8 I9 {: @: Z0 F - + q8 }6 d9 j3 W' a
- ;;; ========================== Tim & thay the TEXT ==========================' T' ~% C N, D- S% Q1 ?
- 5 I. b3 n K/ n9 P
- (defun frstring (str search replace / str1 str2 index find)
- F- [! k7 K" Q2 J! K& j - (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))" C. ~5 t9 L) B( X+ f8 i' P' M
- (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index)))& o+ J8 x3 o8 m' I) i6 N
- (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))- g* W! A" y2 I
- (defun hai (/ dial)
7 p# r$ H; G* P: H( S& ` - (setq dial (load_dialog "hai.dcl")) ;;goi dialog
2 h8 A2 m6 ~3 y( @ - (if (not (new_dialog "find" Dial)) (exit)) ;;- T# b+ k1 e9 Z0 H
- (mode_tile "find" 2); Tao dau nhac tai hop thoai
1 C8 U; n4 [$ v# l* l5 \$ i - (action_tile "find" "(hai1)")
% w+ s' W& K4 @9 X8 K# C - (action_tile "replace" "(hai2)")
. Z: @* L+ S$ Z - (action_tile "cancel" "(done_dialog) (exit)"). w5 C$ B: s. j
- (start_dialog)
+ O& v2 T3 B$ r9 b- n! s0 d - (unload_dialog dial))
0 B- @6 ]5 P( u' F! v - (defun hai1 () (SETQ str1 (get_tile "find")))9 `/ g' ]; ?- T5 B- L( z
- (defun hai2 () (SETQ str2 (get_tile "replace")))* {" ~: C8 t# t; Q9 ~. O0 K
- , }! C3 ?" l7 V$ _9 w
- (defun c:TTT (/ a str str1 str2 newstr taphop sodem)$ C. Y9 W. z Y" o" S1 z/ W
- (hai)
3 z" u- S4 x4 A, x5 |' Q; n8 t4 m - (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le")
' q) ~' O; H+ U8 Z& e1 Z( A5 M - (progn+ X" o) i" W( y& D2 d& ]
- (setq taphop (ssget '((0 . "TEXT")))) p* n9 V% E2 s5 v4 J3 M9 I
- (setq sodem 0)4 T0 P& [. x, _2 E% k5 Z1 P5 T
- (if taphop3 k6 E/ L. H3 S
- (progn# H2 N0 l% n+ y# l
- (Repeat (sslength taphop)+ K# v' P0 l. f: e
- (setq a (entget (ssname taphop sodem)))
- I$ C8 _8 y- r4 \4 } - (setq str (cdr (assoc 1 a)))4 [0 v5 D! |* ^" O" C
- (setq newstr (frstring str str1 str2))' }3 l& l5 i" m n
- (setq a (subst (cons 1 newstr) (assoc 1 a) a))0 u- m( G; z. ]; C5 P! j2 H. N( ]& C
- (entmod a)4 y' x5 f! h; k
- (setq sodem (1+ sodem)) ) ), @1 L0 f) P1 y
- (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))/ d( D% t0 Q! n) L
- 2 T. w; n5 P! q) k& k- V0 L0 T
- ;;;============================= CHTEXSTY.LSP =============================- y, V3 @0 v+ o: `) Z2 J
- - ?' @4 p' a, a& T( s# a" m
- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST "): a& I/ _4 ]* Q4 s( V
- (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))
* g5 T( ~8 k3 Q( l5 n/ E/ f* u - (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))( I) E" g( K2 t7 X3 g6 Q" _0 T
- (Initget 1) (Setq C (Getstring "\nEnter new text style: "))
# o4 `) ~( N& K6 A - (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))
7 [6 o, D% f: k. M0 B- J' J( f# R - (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C))
# s) h/ H! o! x4 U - (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))
! i8 _; P0 V0 v0 ^) S! K - (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))
`5 T. h9 r, {3 Y: @; _ - (Initget 1) (Setq A (Strcase (Getstring9 G; D) ]7 J2 l, U2 w
- "\nEnter text style to change: "))) (Initget 1)
' t! B/ A9 j" [) p' y! V, C2 d - (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext))3 \ \0 |) G8 o1 i6 `+ |) n* [
- (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If$ X) r' o" n% }# W& |8 f
- (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))2 f; A! n/ u# x& A, ~; l
- (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))$ N& H$ {% m2 N
- (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J))
( c3 i. v5 l& G8 I5 E; V - (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))
2 ?! Q& O6 Q. }. v5 H
9 G" i2 m' P( J- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A))
# k% h* M% W. V! y7 m ^& w - (Setq J (Cdr (Assoc 50 A))))" K( D4 n+ R1 K: \% \( C2 J K. B
4 x) A1 ]# j- V, Z- ;;; ============================ DRAW CLOUD =============================6 F3 y+ e' w' ?. k" `6 h* E: Q
# m, u% Q3 V# e- j- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)
8 E+ G+ O6 m/ l: L7 c% B( E - (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")
* k% Y$ d: R9 c7 V - (setq la (getvar "clayer"))
: [1 m1 [* y6 g: z" E' d - (command "layer" "m" "cloud" "c" "5" "" "")+ Q+ B Y8 \( I. N% D, E
- (setq pt1 (getpoint "\nEnter first point of Cloud: "))) W) M2 s, l* z' w0 i1 m: J# F
- (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))( m+ r$ b% m% c% E' }7 W
- (setq cnt 1 ss (ssadd))
4 D! N9 }; K7 b4 ~1 [( ?3 g6 @6 Z; J - (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))
7 w% B, W: y: ^5 W, q6 H. g A - (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75)); P7 Z# h8 |8 q* m- h q
- (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))
: N* m5 X# F2 g% E0 ~6 s- k @' g - (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0)
* ]" y( ]2 y% @, \2 m& t, E3 I - (command "pedit" arc1 "y" "j" ss "" "x")
7 a: l& J8 \* V O" x! H* f - (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)
. ^6 T, }) j* f - (command "layer" "s" la "") (setvar "cmdecho" 1) (princ))
- W5 n) R/ y. f& v$ S1 f J - (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))) Y9 E" }, Y }/ q0 M
- ( j" i! N5 S3 x5 |
- ;;; ================================ Funtion-Dulieu ========================1 e7 \ w r6 }* D% p8 ^' S' e
- ;;; ================================ Funtion-Dulieu ========================
]# }0 |, m0 } - ;;; ================================ Funtion-Dulieu ========================
$ ~; a* q( C: ]( K6 t! @
" i; }6 E" f8 v3 [# |- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )
5 T) M( Z4 r1 l; _& f - (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh"))
+ K) v! |% O5 Y) c4 _: C8 b - (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))0 V/ Q6 ~; Q- j: B4 g3 j3 T
- (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) )
- `% w8 l9 a" _8 N. D - (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))- G( w; N3 u: W5 t
- (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))
8 g+ K: ^8 I* q) q! N) J - (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))
1 T: d' S% x, c' S4 M - (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))
+ d: ^, g- h: t" `( r - (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong))))
, Y( d% W+ y( o& g, ^ - (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 L& \; r& ~: R$ }8 g# g! b9 h
- (defun dtr (dtr) (* pi (/ dtr 180.0)))
9 l- |5 T0 K8 [* i2 G - (defun rtd (rtd) (* 180.0 (/ rtd pi)))
8 o* c# n/ h4 s$ |' c1 R2 Z
- ~, T$ D. E, _; c) l8 |- ;;;==============================PROGRAME===============================2 m x+ X/ l/ K3 v$ Y
- ;;;=====================EditDiM Hien Hop Thoai Dep======================
% f- {/ r7 d. F* D# S: W) ? - ;;;==============================PROGRAME=============================== `3 Z, H+ @( D6 ~
2 o( R6 e6 Q/ v- X9 Q) [0 |+ P9 M- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
+ M. i: N0 K; o' ^+ z) o# w - ;;Chay Cung Du Lieu.Lsp & Hai.Dcl4 a I8 o3 m$ k# W9 f2 [
- (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)3 ~! a: y% \) C' I! H2 T T
- (Setq Oldlis (Entget (Car Chon))
2 K9 T# @1 K, c" m# ]( v- ` - Pt10 (Cdr (Assoc 10 Oldlis))& ]$ _) U$ S$ q j+ q9 e3 F; o8 e
- Pt13 (Cdr (Assoc 13 Oldlis))! ]. A& Y2 e* i4 d" z
- Pt14 (Cdr (Assoc 14 Oldlis)) f+ t# F( i* U
- St (Cdr (Assoc 70 Oldlis))0 I6 T9 k! J& B. D6 e# n$ O: d( E
- Dimdefault (Cdr (Assoc 1 Oldlis))
' h9 y1 _" o# T9 s) D - )) Z( w3 ]: M/ L X; [/ J3 I
- (Cond
& c7 k/ a# [1 P3 t' ]1 ^) X0 [9 { - ((Or (= 32 St)(= 0 St)(= 160 St)). p- K) J" `& U6 q z
- (Progn
7 H* Q1 Q& z9 W+ l5 Q) n - (Setq Ang (Cdr (Assoc 50 Oldlis))
# x8 ]8 @. S9 x, C! c8 n W - Pt (Polar Pt13 Ang 500) x) U% ]) c9 H. e0 _( o* h0 U
- Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)3 b5 k4 r: R; Y& E; F5 g
- Dis (Rtos (Distance Pt13 Hc))0 A$ `& R; e4 A; ^0 H0 X
- )
$ V0 s9 u/ k! v3 d" @: @) |$ o - )
7 f: @" ~/ Q5 j8 | - )/ v" [" s% v( H* x3 r) w
- ((Or (= 33 St)(= 1 St)). \* l" K8 ]# D. c" p6 g8 N
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))- u+ F4 e/ ^8 \ u. |- _$ W
- );;End Cond- U3 g9 B# f$ q7 \' t3 B, o7 z1 V; ]
- (If (= Dimdefault "") (Setq Dimdefault "<>"))
; H* P1 M6 t) _3 R4 v - (Setq Dial (Load_Dialog "Hai.Dcl"))
1 d2 e/ T2 k2 C7 q' W1 Y- d) }2 f - (If (Not (New_Dialog "eddim" Dial)) (Exit))
% Q& X! O. e) r% H - (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))9 _* ] \: s( F& ?$ T& V. @9 z
- (Set_Tile "text" Dis))
" X6 _" j, O( {; Q: ~ - (Set_Tile "ha:edim" Dimdefault)
& v4 c/ ^" A* _* Q; B2 ]/ e t' [ - (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai! g7 v& O* N6 B! e/ s% u& m
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")* q- f" l) T4 l& c
- (Setq State (Start_Dialog))(Unload_Dialog Dial)
: r$ S1 \5 p" g1 e - (If (And Str (= 3 State))- @4 @/ x X! L) ]% @7 a, C, d! l
- (Progn; t b) f% f4 v9 V7 H, n' v s
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))3 H# X' v( x$ a; `! X
- )9 P' S7 ~. _" ]( L# F; Z2 c
- (Defun C:EH (/ Chon Name )& ^$ |9 n5 R! S
- (Defun *Error* (Msg)
1 y2 i7 o+ w p& j! w - (Princ "\nerror: ")(Princ Msg)(Princ " ")- G+ D# f: V) y& b
- (Start_Dialog)(Unload_Dialog Dial)
& v \: `1 e# b - (Setq *Error* Olderr)(Princ)
1 s% _: v, f1 l: p- m5 S - )0 }. F$ U& n. q0 }; r
- (Setq Olderr *Error*)
0 Y" S# `, b4 r6 Y: q- w+ H - (Setq Chon T)
( ]0 b. {! w2 r: K# w - (While Chon
$ L# E4 p. r' Y% g$ H - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit...")). ]4 n" E; ^& l' d- M; I1 R# d
- (If Chon
0 C1 P, P# p: Z - (Progn/ _$ d2 q/ z6 w R' y
- (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))3 _' P- }( R+ g/ v* Y% ]1 d
- (Cond
! S; \' f1 f2 h: w - ((= Name "INSERT")(Command "Ddatte" Chon))
0 l' j1 P# Y( O' w" [- { - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))
, N9 C* W* D+ h$ A$ J - ((= Name "DIMENSION") (Hai_Edim Chon))+ e$ b# U1 D- m$ P
- )
, m0 c- E+ c- b6 |0 Z - );End Cond
+ J' l4 n4 z7 Q3 T. Y+ [0 S* }* _ - );End Progn
: `% [1 l) O3 J2 `$ o1 K - );End While
8 s$ Z) J. n: J) t% L - (Setq Olderr *Error*)(Princ)
- E, t* J2 n' U! U - );End Program
$ q8 p, r6 i% _# a
# Q* d& f) s& M- c7 X4 @- ;;;====================DDeditDim=====================
; U3 { C2 U6 `9 f( k) [/ a$ } - ;;;=====================Hai.DCL======================3 j$ }' {( b1 r5 V
- ;;;====================DDeditDim=====================8 }$ h" q) S% N
- 3 Z( h$ L* @* G: P( s
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)! L- X, w0 S0 s. A6 y3 E& a
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
: w' \: p" d* {; e& `8 E' z - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)
. K! j1 u" z w; U& l - (Setq Oldlis (Entget (Car Chon))
/ I/ d9 g- n. l4 x - Pt10 (Cdr (Assoc 10 Oldlis))# R* }/ Y" O; f
- Pt13 (Cdr (Assoc 13 Oldlis)), M* g4 {+ d: A, ~; _: ^
- Pt14 (Cdr (Assoc 14 Oldlis))% j% T0 s2 I5 r. _8 g& `6 ]
- St (Cdr (Assoc 70 Oldlis))% U5 _2 d6 G+ L4 m
- Dimdefault (Cdr (Assoc 1 Oldlis))
. V7 M& w! {- f+ w; d - )
( Z) |5 q1 x4 r. e2 _, F - (Cond9 G+ w6 T5 C! Q) B- H
- ((Or (= 32 St)(= 0 St)(= 160 St))
! u- j! m4 t& l5 x" v - (Progn
' B4 E9 p% ~' q5 G: h- k( V - (Setq Ang (Cdr (Assoc 50 Oldlis))
6 K0 }; X H+ J) T1 u& p - Pt (Polar Pt13 Ang 500)
' f/ _; N) Q% p- \$ t& b% M7 J+ N - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
, \. P8 [# A7 y0 k - Dis (Rtos (Distance Pt13 Hc))
- B# Z0 y& B& R4 y1 r! u - )$ t" t# r& p# \& B) p
- )
6 q! y! X( H( I# S3 u/ d2 k( V/ R& b - )* i' m# Y) S0 a
- ((Or (= 33 St)(= 1 St))
# x: t# s- K/ b8 e - (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))0 e% Q% Q3 n9 e. J4 c" ]0 v
- );;End Cond
$ O! T s2 v& z6 X3 n, j" t2 `$ ]. o - (If (= Dimdefault "") (Setq Dimdefault "<>"))
4 w: z+ Z' n& d - (Setq Dial (Load_Dialog "Hai.Dcl")); B0 ^$ z k* x7 M
- (If (Not (New_Dialog "eddim" Dial)) (Exit))9 i7 M' l6 X+ L: C" B
- (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))4 \6 V- K: Q# f3 Y7 ~2 G
- (Set_Tile "text" Dis))$ h0 w# T2 P/ y: ~: w: R
- (Set_Tile "ha:edim" Dimdefault)' P: _ D) H$ K' k, I( o7 J
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
& s1 g+ L7 b S$ L$ f3 X - (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
0 R8 i+ A3 H* S% V. k6 c - (Setq State (Start_Dialog))(Unload_Dialog Dial)' c$ c- u7 `. y; H! A) v
- (If (And Str (= 3 State))
( X' U4 _0 u3 b# ] - (Progn/ {1 e. f' G0 {' X; C0 P7 i3 h, h. o
- (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
$ b4 ^; E! B1 u( \1 j5 U4 ?$ R9 y - )
* t' {+ I u8 l" D' b - (Defun C:EH (/ Chon Name )2 k) [3 Z. h! v: K+ N1 D7 P- U
- _; m& p: s, ^
- ;;;********************Du Lieu********************
8 i4 W% [0 @" T9 K1 q9 y7 B& Q4 S - 0 v5 t% o7 m4 e7 u
- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh")); B7 R1 S: s+ _0 l/ A j
- (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)
2 y4 [% O) j! l7 n - (If (And (/= Hacat1 Nil) (/= Hacat2 Nil))
5 O* ]/ V7 i) |8 Y' F$ e/ \) y4 A - (Progn) N6 b9 O4 A7 d. b0 i& C
- (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))
8 v3 F4 k5 k; F5 I: j6 F - (Setq Chon (Ssget Hacat3))0 d! w* g4 F' [, B6 x3 P# J4 `
- (Command "Break" Chon Hacat1 Hacat2)
7 H5 @- s* M. M+ S( L, m - )5 o4 E- {# |8 Y; F
- )
) V7 P0 L7 S. _- E - (Princ)/ ~/ e1 ]! g+ t( T. {3 D
- )
7 z% E8 Y9 ^$ l - ;;
% ~/ i5 E) W8 y- @- C - (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))2 }3 ^% Z% w* e7 W9 K" O
- ;;" l% X! H( i. h8 L, ~- D
- (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))
& g X% p( h/ a, z# F+ n. a - ;;
1 }# @: J- H$ Q) n/ n - (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))
6 t& f" d6 ? T( Z - ;;
5 @, ~% q! K+ D7 @ D: j# J8 { g - (Defun Reinit ()(Setvar "Cmdecho" 1))7 P: J1 V4 n. R! S
- ;;. g6 w- @$ ?6 b! r
- (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))
$ {0 M4 h; t q F - ;;
. g$ j$ X+ H1 z b- G% ^; H. y1 U - ;;Cho 2 Diem Tinh Ra Vec To Phap8 |) R! _$ Q3 I2 e/ v1 F f; M
- (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))
6 H8 s1 E) c* w$ V& I$ }4 s0 m - ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang
X( D2 @! W* `# ? - ;;Da Biet 2 Diem Thuoc Duong Thang, A1 E% |/ i6 i
- (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2)
0 _2 k! s: \" V8 w' o$ |$ X - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)/ h2 F9 ?' J7 i* ^$ n7 Z
- Hc (Inters P1 P2 Dc1 Dc2 Nil)))
- g7 G0 w# l6 v8 j& F* L - ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang
\, p4 g6 q' L7 |* P- { - ;;Da Biet 2 Diem Thuoc Duong Thang5 B: [3 P7 ^ Y* L- g. d5 j1 }) L
- (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)
a3 u1 s- y* l4 H; W% p, } - (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)6 Z4 ^8 n% }6 C/ t$ _
- Hc (Inters P1 P2 Dc1 Dc2 Nil))' a% q @# A6 v5 y. g
- (Distance Dc1 Hc)) c% q! O0 l8 k8 X# j
- ). O( G+ F* G0 n, h. q
- (load "nhapcua.lsp")
* H- a/ _7 i; {1 w - (Defun *Error* (Msg)" S; ^' ?3 T' t
- (Princ "\nerror: ")(Princ Msg)(Princ " ")7 h+ g( R k4 K. y$ u9 Q5 r0 B
- (Start_Dialog)(Unload_Dialog Dial)/ \/ L1 ~* M. X
- (Setq *Error* Olderr)(Princ)
8 o- n- @' Q: u - )
) ~* [/ G! G! E0 d+ B6 ? - (Setq Olderr *Error*)
1 B) ~: I# P1 c* `$ I) V - (Setq Chon T)/ y2 p" {) }. x$ n/ O2 v
- (While Chon
% [5 x. |3 b2 b/ d |+ d m - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
" K8 o% S7 z0 x- u5 ?- ^ - (If Chon
0 C& K8 v ]$ U: a - (Progn
" z2 ]: ] h* a' |. ~" m - (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))# D/ u9 L: _# K+ n4 S5 l
- (Cond
2 D6 X" K3 B5 Z0 ~ - ((= Name "INSERT")(Command "Ddatte" Chon))% P$ V$ g6 `: P$ O
- ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))" [ _# l! _$ S, i& f- A
- ((= Name "DIMENSION") (Hai_Edim Chon))$ U0 i& O& N- ^, T
- ): Z$ \- d* P2 Z0 F4 K R
- );End Cond6 m7 c U0 b" S y; L: R4 Y0 y
- );End Progn
- Y" C' E& w" g4 a" T - );End While
) x1 i. G9 l3 Q2 q: n - (Setq Olderr *Error*)(Princ)
2 B. w' o% y8 d1 }0 c7 f - );End Program+ F1 R% ]9 `! B( j$ k
- - y- o2 l7 G8 J2 x3 j; ^
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================% ^7 W+ y* }2 o& P$ o
- ;====================================Nhapcua.LSP====================================+ J- c9 L' r, W/ k3 E) F
- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
# w8 C% L7 @: q5 s% U6 M$ P - + [. G9 k6 `: b F r$ H
* {$ ~8 E1 @- p7 A- , k1 [- ~' k# l2 e
- ;*******************;*******************;*******************;*******************
# f4 Y4 {3 N3 G/ V% a - ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****
T. D6 \- ~. F9 o6 n - ;*******************;*******************;*******************;*******************
. _6 r9 o9 d6 N0 E8 e }
6 _1 r+ z$ X4 T! X7 }6 _6 b# p- ;VE HINH BINH HANH
0 Z) y8 b5 }) o1 d R- g. Q
( V d: I* u* M! R- (defun c:binhhanh (/ p1 p2 p3)6 h4 ]3 C- H) F9 j$ `& g
- (setq p1 (getpoint "\n Nhap diem thu nhat:"))$ u% Z2 A$ h" V- Y- e* R1 z; m8 C
- (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))
- z4 C- F9 v2 h } - (setq om (getvar "osmode")) R0 ^# `+ C+ S, _& S2 q$ o
- (setvar "osmode" 0)
5 h8 A6 a- R% l, Y! E' F - (command "line" p1 p2 "")
; E2 e! ?& J6 }; ?! K - (setvar "osmode" om)
* w. Y: h# n; m8 U! }, R& } - (setq p3 (getpoint p2 "\n Nhap diem thu ba:"))
0 W' S! v% ^8 a0 \$ g% V9 p z - (setq a (angle p2 p1))
' |& G( N P9 i2 V - (setq d (distance p1 p2))" h/ W- g: K7 d6 ?2 _
- (setq p4 (polar p3 a d))7 ?- b$ @/ N& P0 d
- (command "OSNAP" "none"); U. v4 E! e/ m [5 t% U) w
- (command "erase" "l" "")
1 F! i6 B* V- j( e: r! m3 n - (command "pline" p1 p2 p3 p4 p1 "")) A' j* V' u/ J% g1 v( c
- (setvar "osmode" om)& R, N8 N a. U/ k/ I* a; @
- )' I/ |; j3 C9 ]! O0 z
- ' R2 Z/ `% n! Q
- ;VE LUOI COT6 ]: [3 g3 C% {' o
- : _( m1 W+ l$ b3 i* ~
- (defun c:LuoiCot ()8 R, p b8 {* Q! T3 u/ w
- (setq om (getvar "osmode"))
2 }1 X3 e: x) V9 F0 K - (setvar "osmode" 0)
- {( m; R* O$ Z - (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))1 S# `# h) q% _
- (setq p0 (getpoint "\n Chon Basic Point:"))
" C9 N9 q( R S0 N: V - (setq nc (getreal "\n Nhap chieu ngang cua cot : "))8 _! Q3 r7 w7 v! s- f& a( D& ?7 s: b
- (setq dc (getreal "\n Nhap chieu doc cua cot : "))+ N5 o4 I4 b4 i4 t, y$ [; N
- (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )2 {; A; [, v* F6 i
- (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
7 U7 v2 `% R5 b+ e q. Z8 c: p - (command "rectang" p1 p2)
$ O; \8 [/ ]* _# G - (command "hatch" "solid" "l" ""): b8 x9 I3 z# D" O
- (setq bcn (getreal "\n Buoc cot theo phuong ngang : "))
, `* c, ?0 t* f2 ~ Y& {* X - (setq nn (getint "\n So buoc cot phuong ngang : "))* e% ^5 M6 \9 f9 o+ i! H. e/ E% h
- (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )
! D% Y7 Q) ?( M0 ~; u" M - (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
2 e$ o; g* O* P* }! P1 `2 V - (command "select" "w" w1 w2 "")6 _7 V) U6 z: d
- (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )& Z; C' o& E/ e/ Q* t
- (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")- D" ^8 M( k9 o {" N
- (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))
8 A' Z) E( l b$ t2 |4 o6 O- O ^ - (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))
" x9 j% W1 T i V4 o$ o1 w - (command "zoom" "w" w1 w2)
& P6 ~- d( U/ Z, T g _* @ - (command "select" "w" w1 w2 "")( t) W! l. C) O5 \
- (setq bcd (getreal "\n Buoc cot theo phuong doc : "))9 r- U, K) ^/ v- B& s. h2 }/ q
- (setq nd (getint "\n So buoc cot phuong doc : "))9 e7 C9 m+ P! g5 t: w3 d
- (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )
, D* _5 P7 [ n7 @; O/ B; ~1 n* t1 I - (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")
, x, O: `7 S' I - (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )
) S g& a( `- J - (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) )
4 H l6 ^- a2 j - (command "zoom" "w" w1 w2)+ V% C4 ~/ `* H, h1 g; I" Y
- (setvar "osmode" om)
# N% C3 U: B% `& V1 d+ C - )
+ G" H5 m4 X* N2 A7 s; G
' Z2 V$ Z j9 O6 |7 |- ;VE CUA DI
7 I' ]. s/ c% }) G+ _5 q
3 |! Z& [& M2 |- (defun c:cuadi ()
" f6 l- Q8 k& L* Z$ n, i - (setq om (getvar "osmode"))% G* E- f8 Q' E9 y5 b7 U
- (setvar "osmode" 0)+ R; y5 C5 f7 L
9 a$ A% }6 k% \& p' N- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))" a4 S" V- i/ \2 {; L
- (setq b (getreal "\n Nhap be rong cua : "))
# B2 @3 ?% R ~* S" i - (setvar "osmode" om)
c4 O0 H) t' R - (while (< 0 1)" U1 m. j/ i5 j
- (progn/ h4 U. Q G( w
- (setq p0 (getpoint "\n Chon Basic Point:"))
- a2 q' A8 o6 I2 _% H - (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:")): T! d" n$ e8 g3 c' x& q5 O+ m" X
- (command "osnap" "none")
# l( g( [7 r2 X" d/ a; g* l8 ? - (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))
4 L7 D8 ]: ^0 ]2 h4 f# t) ?4 h - (setq a1 (angle p0 p1))
( i# m1 }6 H6 s+ o - (setq p1 (polar p0 a1 (/ (* hstl b) tile)))
/ s! d1 J7 _. F% n8 B - (setq a2 (angle p0 p2))
& ]% F* W9 G& v: \& f; G* B - (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )
Q: i) r/ n6 t' N# { - (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")
1 c, W% y; I. t8 }$ X - (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))
% S" {. X9 R$ a0 D8 w- j - (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi))
/ J2 w/ L5 f' r - (setvar "osmode" om)3 x7 B3 P% n& D& P; }2 C
- ))+ U% B: [0 z3 `' M0 q
- )
# S/ C+ O4 z1 N1 _! v+ a
; |- u" v W) h- ;VE CUA SO
8 k M* @" \6 w/ A - : `# _. ?6 s1 r* ^& b A' w
- (defun c:cuaso ()
( Z! x& m) B7 Q) I# J - (setq om (getvar "osmode"))+ M" h9 t' _* O6 ~
- (setvar "osmode" 0)
; X. X2 A& q7 r& e1 K - 6 `6 \3 @+ l" M$ N, J+ w& \
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
+ O6 O. N9 }+ H! V5 e3 W- g% ] - (setvar "osmode" om)
y8 J R+ m( V+ {- \: U. X R - (while (< 0 1)
- j' [( r7 c. k: T3 F - (progn
- J" s9 @; I! X) S1 j! u9 E - (setq p0 (getpoint "\n Chon Basic Point:")); J, X4 f( |3 j v$ Z- }4 q
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))
, |' K5 I$ j( I" b. |- e8 k - (command "osnap" "none")4 s% {% ^, z% Z) R6 E) i1 @& Z+ U
- (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))
4 h, F+ O2 R9 l8 |6 t - (setq b (distance p0 p1))
9 l7 l$ E) }' r - (if (< b (/ (* hstl 600) tile)) (setq du 50))
, f6 |+ }, N( U+ `' c* B- H - (if (> b (/ (* hstl 600) tile)) (setq du 150)); F7 S. G+ K7 i8 q" u( Z) g _
- (if (> b (/ (* hstl 1800) tile)) (setq du 200))- W& ]2 ~$ D% }2 Q+ S" E' K" ?( y
- (setq a1 (angle p0 p1))1 s% ]5 C7 b6 p6 e0 E1 f" C
- (setq a2 (angle p0 p2))
, [& [7 a$ p" P* G6 \ - (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )" N2 U3 j+ \. Q4 b6 D' E
- (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )) Q& n! \! l; \1 h6 O2 ^3 b
- (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) )" x& g, C* N* f
- (command "pline" p0 "w" "0" "0" p1 "")
1 [9 h6 R- A& W' d# Z - (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")
! Y- p; I: ?+ j# | - (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")
! T3 l* M8 m, d$ E - (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile))) [; ?/ G4 J# r0 P
- (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")3 t' @9 A0 U. s7 H' d- I
- (setvar "osmode" om)
& n2 K8 ]) V% { - ))
' {7 G4 `; j5 Y' K6 Z- l" i& ^- n+ G - )
( [+ D3 S8 x' P; r5 ^+ Q( O) G! s, r8 m - , d( ?$ A# ?4 \
- ;;;=== General Utility Functions ===
3 [. a2 g4 W: ]: T
% [- ? q+ }# h- j1 Y& t+ @1 E5 y- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined % a4 T" J9 {" \! b: [+ L
- ; ADS function. Now it's a simple AutoLISP function that calls the
6 n! l" l Q- o* a1 O7 G! } - ; built-in function (help). It's only purpose is R12 compatibility.
+ {- R9 ^% U% t! [ - ; If you are calling it for anything else, you should almost certainly
- n: }9 s, s- m5 H' x/ h" @1 o2 U - ; be calling (help) instead.
( S0 G! r& J$ d, D. P; n6 D) r - , H* B! }: @/ ]0 l: r2 Q. Y& C
- (defun acad_helpdlg (helpfile topic)9 {' {( E- K9 Z9 q% L& f) N
- (help helpfile topic)- v$ B0 t" K$ k- @) Y
- )
/ u0 W4 j' P1 N0 C2 Z4 c5 m' ~
- U- h- }* A) q: l1 M5 G- M, U- 9 w* u P/ _. X8 g7 a i4 |7 Q
- (defun *merr* (msg)- ]) ]6 s2 l) I3 N2 K' ^
- (setq *error* m:err m:err nil)% }* q6 N2 z$ T2 X& |2 W
- (princ)9 ~7 ~" L% t4 n) e8 ^. X I% U
- )
. n& k/ c' L8 ~& q# t4 G6 @1 f
( z# Q) i6 U' ~5 z- (defun *merrmsg* (msg)
! O# N. m- R& V/ H) E - (princ msg); l1 u9 }/ V! y& B
- (setq *error* m:err m:err nil)5 m( e7 _. R8 B7 B$ ~0 R
- (princ). ~! n! f% |1 t! ?. B. v; X
- )+ N9 I* L$ v6 e. L! L# l8 l
/ b% ~ d8 }. k+ y- ;; Loads the indicated ARX app if it isn't already loaded' u j$ X* V* h! Y; z2 X$ B' v$ q
- ;; returns nil if no load was necessary, else returns the
+ A) e' e% ~, G o. y# ~3 S - ;; app name if a load occurred.) u; h5 \; D. |9 d
- (defun verify_arxapp_loaded (app) # S0 A* Y' Y4 b+ g1 L- _
- (if (not (loadedp app (arx))) V# d. ^5 S1 {$ X
- (arxload app f)1 T+ [5 L) N- U+ E
- )/ r- m: @+ B9 E
- )
+ o# _2 s3 @7 w* M% U
% L+ _8 ^; `. V! X V0 W- ;; determines if a given application is loaded...
( N6 Y: {- s* t$ j; x' e/ R6 H - ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....) r. e1 W1 i" ?6 i; t [' ^
- ;;
1 Y1 x1 ?; P9 h8 H& f - ;; app is the filename of the application to check (extension is required)
: j. P# x# ?4 \8 G - ;; appset is a list of applications, (such as (arx) or (ads)( |: M; D( |- Q8 A% R
- ;; + h# l- d2 g, ?! W5 S* X
- ;; returns T or nil, depending on whether app is present in the appset
8 J/ O/ I, w+ Q* W! W% y - ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"
5 s2 L& W) Q1 u4 A F - ;; Also, if appset contains members that contain paths, app will right-match! g- N& `/ ?6 ?5 Q5 E
- ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that' J. ]+ w" v4 r& B" G/ I; H
- ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."; |+ Y$ S+ r/ J% S) b$ U
- (defun loadedp (app appset)6 T. e4 j1 \' y7 T- i
- (cond (appset (or : A3 J7 E/ p+ j
- ;; exactly equal? (ignoring case)2 y- o$ H# H6 F! W
- (= (strcase (car appset))9 k0 ]8 j$ [# b3 D; o, ]4 ?: L+ V
- (strcase app))
3 \. E1 W$ S( b% S6 G2 g& Z - ;; right-matching? (ignoring case, but assuming that3 D P5 J+ |9 ~* I
- ;; it's a complete filename (with a backslash before it)
3 n$ d' n; q ?2 p% ]8 Z( ^ - (and 7 {- u! m6 F# S
- (> (strlen (car appset)) (strlen app))
0 T& b, D: l* V! U( A' n - (= (strcase (substr (car appset)
$ x5 K ~+ e% ~+ n2 d) m5 P - (- (strlen (car appset))
; ]+ O+ I+ d' s# v5 f5 ^* B ` - (strlen app) . }' _, n* N. Y; O
- )
; a+ E, r( L3 K( r3 I/ Y. _ - )+ y: S* T+ {) q5 {; f& h0 r4 c
- )
3 z) @! Z$ T! y# N$ N$ g - (strcase (strcat "\\" app))& Z, ]( q% H% p/ t: N
- )
0 f3 T4 T7 C; E" b4 u# b - )+ d0 t6 `9 ^1 x/ e+ ^& X. b Y% _
- ;; no match for this entry in appset, try next one....
, O$ a6 E- W% a% O" w+ c9 U - (loadedp app (cdr appset)) )))
2 u% u0 I# H. {8 G% v' } - )
2 ?% U2 R, h' W! N6 b. B" ?# x - 5 O7 v) n8 p3 \+ _, o
- - o3 {1 E1 Y- |9 W8 r
- ;;; ===== Single-line MText editor =====$ y1 l' u7 Z9 J" [
- (defun LispEd (contents / fname dcl state)( v7 i$ Z2 @4 K% V; Z
- (if (not (setq fname (getvar "program"))), N5 W+ l. [) o A
- (setq fname "acad")$ g! e* H# f9 a @# Z) o/ m4 ~
- )
9 Q7 u! b: j' S1 ` - (strcat fname ".dcl")
. w0 H! b8 p# W - (setq dcl (load_dialog fname))1 Y4 }7 Y' x4 i. |$ @
- (if (not (new_dialog "LispEd" dcl)) (exit))9 `2 N& K m) Y! y
- (set_tile "contents" contents)0 Y' v" u; \& _% u9 B
- (mode_tile "contents" 2)
6 S* s. w; P5 Q( b0 W( Y - (action_tile "contents" "(setq contents $value)")
# D/ F: j0 l/ _" o - (action_tile "accept" "(done_dialog 1)")
; |' W0 Q+ Z8 i7 O - (action_tile "mtexted" "(done_dialog 2)" )8 n5 e% b( p5 L _3 ^) H$ j
- (setq state (start_dialog))
( d' U: p& M, c - (unload_dialog dcl)
# h2 o* S$ A1 z8 c - (cond2 o2 o) c% B0 R
- ((= state 1) contents)8 A" t& L) G P: I6 R
- ((= state 2) -1)
# a7 F9 Q8 g) Z( i - (t 0)
; o: O; U1 _- F: [ Z% ^2 T - )
9 ^3 _5 U8 U$ z. O2 e7 o - )$ E' t7 o/ {- }1 D, R) ]
- * D. d# C4 j% P) i) `" }
- ;;; ===== Discontinued commands =====
( q, f4 t w" T( O - (defun c:ddselect(/ cmdecho-save)( _! b* m( }4 M( y8 J! M
- (setq cmdecho-save (getvar "CMDECHO"))' T6 W0 V1 p5 Z; W$ p
- (setvar "CMDECHO" 0)$ |. ]- _# c6 @; d, X1 G; h! N
- (command "._+options" 7)9 S- {2 u; s0 [# x1 V1 h
- (setvar "CMDECHO" cmdecho-save); Z. P# e: C& T( Q
- (princ)) P/ L: t9 l/ M/ D
- )
- Q+ [* H) H8 e. _) a' ?
. D1 m$ h; h" L) L: ^+ ?9 E8 X+ R- (defun c:ddgrips(/ cmdecho-save)
2 P7 u9 H) F7 y& { - (setq cmdecho-save (getvar "CMDECHO"))
3 o# m* i8 B" u$ q# h' n& C8 ` - (setvar "CMDECHO" 0) l9 E( j: D9 p" G
- (command "._+options" 7)
7 L3 [0 b$ Q4 R# v6 q& S) v2 C4 A - (setvar "CMDECHO" cmdecho-save)
3 O2 A. P7 M2 R7 c* i2 h' ` - (princ)
$ |) T @; Z2 W0 K0 v - )
. F1 q6 d, a' W' ~5 v& T - $ t! c# C) s5 [" T5 s: w6 W" o+ g
- (defun c:gifin ()$ B$ i6 T9 o& F5 e+ R/ @6 D
- (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
$ r& o6 ?0 Z- i8 C( c9 s - (princ)( r4 [' e6 S* b% C/ ]1 f( Z- E
- )
0 g; K6 _; h ~% N( Z - : y% n6 H' A% e+ F: m
- (defun c:pcxin ()
7 ?; N1 o7 G& ^( w+ e$ n! y - (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
3 a. a5 U" z. f! ]0 k - (princ)5 |7 E8 ]9 J R e9 ], x, O
- )
8 Y9 N& w9 B# v0 ` u - " V1 d( Q- p+ f" h7 |5 V1 q
- (defun c:tiffin ()) Z5 R4 e" d* Q; `# W" x& x
- (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
: M" p/ m' H1 v- T) U/ f - (princ)* y* a: D! A( G; I
- )
: k9 U0 _9 c( m. w( P8 F
$ J# C1 j% \4 M# i, M u: S8 \- (defun c:ddemodes()( n6 L$ v+ O# V }
- (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.")7 b o* f. C. |. q3 \
- (princ)
; Z% S( Z$ y* j' O2 S - )
( L @2 U7 I7 {8 E8 Q* c0 j' n7 C - ( \& o$ O" [# p/ ?* k% r* R3 k/ i
- (defun c:ddrmodes(/ cmdecho-save)- ~1 D5 V# k# G* O2 T9 D5 i* q
- (setq cmdecho-save (getvar "CMDECHO"))
2 d6 h9 J! |% j( E" e/ {0 h6 @- t, i - (setvar "CMDECHO" 0)
* K( g$ U# D& Y Q- R - (command "._+dsettings" 0). U6 d, s1 i2 k# x9 n# U) h
- (setvar "CMDECHO" cmdecho-save)0 D/ k2 f* b! F# ]& q2 x% ~
- (princ)
+ I* w2 ^3 }& |& N: I8 x - )
" y% I0 v0 Q, h. R' ~! R2 J
! H$ }* _0 v5 c5 P- ;; HPCONFIG
2 P% f @8 P3 H( T& y- K - (defun c:hpconfig (/ hlppath)
* G T* r+ {- v, x ?" P0 ^ - (if (not (setq hlppath (findfile "acad.hlp")))
) M, [; c. J" z2 h0 y4 \. Z/ l2 C - (setq hlppath ""))
! C" m' M* W& G7 _" i J/ U - (help hlppath "hpconfig")1 x1 T, F+ g" F' f
- (princ)
( W" e! l. B; ?) P. A - )
- U6 ?& k/ {0 j8 t - h* P$ V7 x; n( M
- ;; OCECONFIG9 o! H0 W$ X) L: F4 T0 S3 f
- (defun c:oceconfig (/ hlppath)
" U! o3 v! G& g$ B/ `0 Q% V: e9 I - (if (not (setq hlppath (findfile "acad.hlp")))( e! f7 y" u( |2 q- x' v
- (setq hlppath ""))
( F% a8 J9 w0 ^/ {' k6 o - (help hlppath "oceconfig"). X( c: k, q% d- c; w ]$ b" F) @
- (princ)1 @: c' }+ U/ }* }& b" Y0 y; R' ~% c
- )
+ P* E8 p. r6 y! b- J6 d - 7 E, s* i0 s* E
- ;; CCONFIG" @7 }4 K. z: |0 w
- (defun c:cconfig (/ hlppath)6 u# Z1 a& h" e m0 u
- (if (not (setq hlppath (findfile "acad.hlp"))); x3 u( Y* f% s9 ?
- (setq hlppath ""))
# k" }2 a, i3 `, p7 w! ?( M - (help hlppath "cconfig")
0 \! a/ r W4 z- y( W9 E - (princ)* f6 W8 X' \5 c' l! x n
- )
% D' ]+ A9 w: b4 @7 Z9 @
0 l8 Y" M* @7 `; X- ;;; ===== AutoLoad =====; j8 v- c$ p/ _9 X/ D
- G+ J: `7 d; {) z- ;;; Check list of loaded <apptype> applications ("ads" or "arx")4 t& X2 E8 I. v
- ;;; for the name of a certain appplication <appname>.! e8 N/ T- I2 \/ X8 L& P# Y
- ;;; Returns T if <appname> is loaded.
- R' C4 j9 {, q R
$ r4 O* `: o( I8 K- (defun ai_AppLoaded (appname apptype)* q# _: ?$ y7 b8 Y' Y; x
- (apply 'or3 ^. I( K; c: j
- (mapcar 4 K# b8 {" G/ @
- '(lambda (j)
0 s% C8 Z# T3 J; U& |- o8 ?& { - (wcmatch' E" a" d {6 Z
- (strcase j T)
8 K& E- v. \2 L, V. d# R - (strcase (strcat "*" appname "*") T)3 d' p& M: F; p7 Q# N/ M' e# G
- )
, p6 j: v( r: G! B, \: a* \* B* p - )! d8 l" S. C* F4 D
- (eval (list (read apptype)))
9 c, w, Q7 ]; p! _/ c - )
0 Q0 `. N: }5 G - )
* l C, ^+ r7 e8 j - )
" T! e7 }9 _ T4 _$ J - ! b* V! i) Y$ [& j" c4 x
- ;; 8 `- i1 x6 s/ g
- ;; Native Rx commands cannot be called with the "C:" syntax. They must % J" g* V6 @ d
- ;; be called via (command). Therefore they require their own autoload
. q/ r# Z3 ]% z, B1 a, N- e, M - ;; command.
; C# X& H3 G) L8 U( E
. G: Y' u3 G a6 d/ P/ P" O1 d- (defun autonativeload (app cmdliste / qapp), X! P3 [, ?; N- Y. s
- (setq qapp (strcat "\"" app "\""))
; x* _" U6 }0 ]8 z& i" @ j - (setq initstring "\nInitializing...")/ v) m1 N8 c2 a P
- (mapcar" B2 x9 o" }' h0 P
- '(lambda (cmd / nom_cmd native_cmd)
2 c" a! n& Q2 E5 H# H+ | - (progn3 Z/ k& u% }8 s9 E* i6 d: y" V% H
- (setq nom_cmd (strcat "C:" cmd))6 l; z) h0 Z4 l3 }
- (setq native_cmd (strcat "\"_" cmd "\""))0 I& t5 ]! O; h5 |/ y1 c
- (if (not (eval (read nom_cmd)))
9 |5 p: z. R$ x - (eval! R- N% x/ g- k+ t, ~; }
- (read (strcat
+ N1 E4 q* `7 T7 l# t - "(defun " nom_cmd "()"
8 S1 M# [8 j+ L1 i - "(setq m:err *error* *error* *merrmsg*)"& Y. C+ b" [; I" a6 \$ X1 b
- "(if (ai_ffile " qapp ")": C8 U# ~8 C U w
- "(progn (princ initstring)"( I4 A& M" \% h
- "(_autoarxload " qapp ") (command " native_cmd "))"3 j5 w) m9 K* v* w+ U: \3 Z
- "(ai_nofile " qapp "))"
9 N0 ~" m5 E' s* `0 Y - "(setq *error* m:err m:err nil))"/ E. l9 m; [1 Q# p, Q m
- ))))))5 Z& o; h5 V: E4 U3 |
- cmdliste)
7 w+ e! ?; k4 K) B4 K/ t- R - nil9 S- B, ^+ h, A* D
- )1 V+ [' i& ~) m% w5 d
- 9 b4 ?) h S1 w& B
- (defun _autoqload (quoi app cmdliste / qapp symnam)
4 A. @5 c7 x9 b0 S9 ?( K3 d% C4 [( Z( Q - (setq qapp (strcat "\"" app "\""))# Y4 ]3 v' i' H. ^8 y u
- (setq initstring "\nInitializing...")
7 Y5 k0 z4 ~+ X) H; ~: h/ S - (mapcar
" F/ z% w5 U9 P' T. J$ q1 ]6 L - '(lambda (cmd / nom_cmd)
/ M# s k9 O5 k. k7 G - (progn
0 i7 ]* d$ _' m2 W+ l - (setq nom_cmd (strcat "C:" cmd))* O2 f( F9 v8 o' m
- (if (not (eval (read nom_cmd))); G# ~5 _# D* d8 P
- (eval3 h0 F. k; [7 o: T9 `
- (read (strcat
; Q2 j% B- j4 j8 g* o - "(defun " nom_cmd "( / rtn)"
8 c2 ?* H" v- v: N - "(setq m:err *error* *error* *merrmsg*)"/ G& T& |& W7 F" x/ B
- "(if (ai_ffile " qapp ")", r0 ^3 r8 q0 e1 S8 w/ I
- "(progn (princ initstring)"
0 s/ y$ R# J" o. {2 d$ ? - "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))", b: l6 B3 T" {! t( R0 N
- "(ai_nofile " qapp "))"/ Z { `' W* k5 o: P& u
- "(setq *error* m:err m:err nil)"/ y$ M( {9 q) ~* s Y5 b
- "rtn)"
* l6 ~" A2 A- O7 ^4 ]: x - ))))))1 t$ H8 K1 X! D
- cmdliste)8 X2 [. {4 c! z" Q! T8 d
- nil M, G# `9 @$ j8 }
- )" B% i0 [+ ^, Q
- 6 M; E x* [& f
- (defun autoload (app cmdliste)3 `6 d/ k. h# A
- (_autoqload "" app cmdliste)' e; A: ]- n! }
- ). o6 ]7 T: G( L+ F
- 4 w+ b3 Y a, N9 o
- (defun autoarxload (app cmdliste)0 d' F1 V3 J" a8 y7 O6 S' z
- (_autoqload "arx" app cmdliste)# h/ E* E* ^1 i4 W' G, R7 R
- )
) t+ N7 G: W/ X2 A' Z2 e5 a/ N
5 O8 \ |# s' c; y' I6 m- (defun autoarxacedload (app cmdliste / qapp symnam)# l2 S N! c) {7 i* t6 e
- (setq qapp (strcat "\"" app "\""))
4 r9 p5 J( H) w9 i% w/ W& X - (setq initstring "\nInitializing..."). R8 w4 z2 L$ F; p& R- r) e
- (mapcar
$ a! i# [2 U0 o' |# w+ A - '(lambda (cmd / nom_cmd)
: m) }$ k0 o. n2 V0 i - (progn w" T5 P4 z+ K. _9 S* F( M
- (setq nom_cmd (strcat "C:" cmd))
) a/ O7 M' `, c; n+ l. e$ } - (if (not (eval (read nom_cmd)))
" y8 u" _8 q% e - (eval! g2 U: p1 G! \8 p2 O) Q
- (read (strcat2 V- N+ u8 E* g2 u
- "(defun " nom_cmd "( / oldcmdecho)"
' }% I# ]- d( Y' [ - "(setq m:err *error* *error* *merrmsg*)"
( |- n; o3 }) F# N: Q$ G: Q - "(if (ai_ffile " qapp ")"
c0 F3 v G8 C) o - "(progn (princ initstring)"% m/ E! f, k q3 w+ J" [3 V6 B) v
- "(_autoarxload " qapp ")"3 ^9 ~6 d/ z: _; P; V
- "(setq oldcmdecho (getvar \"CMDECHO\"))"
" _; m3 F# ]- A. ?- i! g - "(setvar \"CMDECHO\" 0)"( m9 N, p* m: u3 }/ Y( ]0 T
- "(command " "\"_" cmd "\"" ")"
, g7 S# z# H. b/ b9 T$ b5 { d' o- t - "(setvar \"CMDECHO\" oldcmdecho))"
3 o7 V/ I& u' d0 Z6 a - "(ai_nofile " qapp "))"
: l$ l" d% S9 |: f2 K( G2 i' S - "(setq *error* m:err m:err nil)"
- K2 b, c# |, ]$ B$ ^5 S# Q1 e9 n - "(princ))", J; }& r0 Q A: _$ A
- ))))))
- ^& W/ w7 z/ L5 P: F( o: S0 g1 k - cmdliste)" G5 J2 p+ f! A! H4 K
- nil8 Q' Y" c; r9 W0 Y9 |0 y. G: @
- )
4 `) a% w& ~6 I- Q! e" u* r" [ - & `' n2 D9 `% |8 c5 x
- (defun _autoload (app)
- G* f2 X. ]" Q( l' N7 Q! r - ; (princ "Auto:(load ") (princ app) (princ ")") (terpri)' r9 Y2 d* ?" x
- (load app)( ?3 ^# [ h. v' Y5 {9 V
- )
6 r6 ?9 g) k6 X# a, y" b8 K- Q- m$ h - 0 H$ s9 X9 e3 r A/ W
- (defun _autoarxload (app)0 T9 O R: O+ M# u/ ]
- ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri)2 N- M# n3 M8 l8 _0 c
- (arxload app)8 h' j, z0 q, }* f
- )1 T1 F8 X3 \3 Z/ F& u) g- _: d
7 a0 t8 U5 k( ^1 y4 g: o ]* Z, l+ N- (defun ai_ffile (app)
% s6 z5 i7 ?" \" p$ N5 z- w4 { - (or (findfile (strcat app ".lsp"))
# W. |' V1 p+ W. P0 v - (findfile (strcat app ".exp"))
3 t1 G6 }' U7 W+ w- F - (findfile (strcat app ".exe"))' L% g! F3 ~/ E. O; I+ s) {
- (findfile (strcat app ".arx"))3 O0 Y o8 V: {8 d4 a" i
- (findfile app)
4 I5 J8 e6 H% _* @! g! h& Q - )5 u. w. ^+ L- C7 b! r9 E
- )
- }$ ^/ m5 {) Z, M - % e* ^5 U9 y4 Q) Y* n j
- (defun ai_nofile (filename)
: B% r$ V, B7 l X8 e - (princ
; [; M$ E6 P9 s+ q - (strcat "\nThe file "
% o! i6 d. v7 s) y" C - filename
& a7 S* `( K% D% l3 c/ ?) L- c F - "(.lsp/.exe/.arx) was not found in your search path folders."; ]: d! S6 g" }8 h
- )# v! k/ [/ ~2 v! _
- )
) v) ]; \- |& Z/ I/ @# K - (princ "\nCheck the installation of the support files and try again.")4 K: H' b- K1 B6 L
- (princ). ]4 D* P+ ?. o, G+ e: d. B
- )
" ^6 O, F; E" C1 X- X7 ?2 ? - % X- s7 x/ E/ k8 o9 P- U& ?
. o+ W8 r, B+ R1 E; g X$ U- ;;;===== AutoLoad LISP Applications =====
( E9 j# k6 U5 t% U9 @ [4 a$ [ - ; Set help for those apps with a command line interface
+ n/ j ]- ~8 u+ b- `9 U" G* w" r I - - `3 b8 E4 k k: R9 K$ U
- (autoload "edge" '("edge"))1 e6 e/ Q7 c p
- (setfunhelp "C:edge" "" "edge")- Q& F& X( ]: ~8 t. K3 v
- 9 L$ [, W1 ~4 ], L6 a
- (autoload "filter" '("filter " "filter"))
% S& X/ c( E: B3 @
9 y1 ^8 I- _5 w8 c2 [ Y& q3 {, ?# H- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"
( @8 b: f9 }" a+ J- B: S - "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")
5 J% C, t6 j8 L1 b; { - ), W) L; g6 x/ s7 Y8 e: P
- (setfunhelp "C:3d" "" "3d") o; E' ?- c, b- Z
- (setfunhelp "C:ai_box" "" "3d_box")
0 Q/ ^8 ?( |8 l2 `3 n - (setfunhelp "C:ai_pyramid" "" "3d_pyramid")
U1 |; n, l4 L - (setfunhelp "C:ai__wedge" "" "3d_wedge")% R% U, B/ @) C% _5 J
- (setfunhelp "C:ai_dome" "" "3d_dome")
6 y7 X3 k1 l/ \4 v' \# F - (setfunhelp "C:ai_mesh" "" "3d_mesh")
6 W9 y% D6 j5 \ | - (setfunhelp "C:ai_sphere" "" "3d_sphere")
% L; E$ ]' |( e1 ?2 ~4 v - (setfunhelp "C:ai_cone" "" "3d_cone")0 k, o: F9 c8 i( O( q9 r4 u
- (setfunhelp "C:ai_torus" "" "3d_torus")
% K; N( K4 K' c - (setfunhelp "C:ai_dish" "" "3d_dish")* w, t, }5 {7 y4 ?- f
- " x. G$ H, @$ ], e( i0 E' j5 ?
- (autoload "3darray" '("3darray"))9 m9 ~2 @6 R( |4 e, g
- (setfunhelp "C:3darray" "" "3darray")
) U, l* O& g# F- g' f3 P3 ^ - 2 |) k% B/ n/ i: G1 k
- (autoload "ddvpoint" '("ddvpoint"))
8 z$ i5 Y' ?; S: D1 \
7 c& ~0 a, s% e$ V8 c6 q- a- (autoload "mvsetup" '("mvsetup"))
" Z2 |8 D% K F) |, R - (setfunhelp "C:mvsetup" "" "mvsetup")% N8 e# g$ w2 A, ^5 Y# p# i
- 3 [! z/ {4 B) H% l5 M
- (autoload "ddptype" '("ddptype"))
8 ?7 h7 j+ n& [: s - / P4 Y( `4 L$ Z( ?
- (autoload "attredef" '("attredef"))
1 r* I7 k$ {5 @0 \ - (setfunhelp "C:attredef" "" "attredef")
% B) Z6 ]- K4 M% }6 ? }$ } - ' N' h/ B/ h, {* ]' t
- (autoload "xplode" '("xp" "xplode"))9 ~2 [3 C* p& X
- (setfunhelp "C:xplode" "" "xplode")
- \8 B! @7 T0 I - 0 x+ R. A+ w& u) R. t- f; ^7 E
- (autoload "tutorial" '("tutdemo" "tutclear"1 }6 X U+ }3 i @+ W7 z: u4 k F
- "tutdemo"
& G* w# S( j& Q# T+ v - "tutclear"))
! P, z! W* @3 A$ V6 X - , b) V- d$ _4 I5 Q' F0 Q; |" j. k
- ;;;===== AutoArxLoad Arx Applications =====1 h" w3 D' r y% ~2 O
- + h# r' ?6 T' A
- (autoarxload "geomcal" '("cal" "cal")) j" z" I$ B/ z/ W) Z
- ) ^, I2 S; b2 h" b5 M
- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align"7 q) R3 M* z6 ~! D- U9 T
- "mirror3d" "rotate3d" + J( X, l- o2 l/ }2 Q3 Q+ T
- "align"))9 |/ P" S \1 j
4 m0 _) p5 G: D- , r/ o! h- H* g+ D
- ;;; ===== Double byte character handling functions =====
$ l) U$ k1 S7 K% U) n/ x3 p1 q5 d2 E0 V& Y
7 ]9 }/ R5 q; R) \- (defun is_lead_byte(code)
# C! @. m7 E/ \& z! R7 ]5 e f - (setq asia_cd (getvar "dwgcodepage"))4 ?- M- S. e$ l( A# i/ `. b) m
- (cond
6 }0 c6 a. l) K2 I. R - ( (or (= asia_cd "dos932")- V6 w( U* R+ e& m( u" w% ^
- (= asia_cd "ANSI_932")# g* \5 Z8 z: c: k0 E3 x1 r. i
- )5 O9 ]% Y; o# Z2 A8 m4 \
- (or (and (<= 129 code) (<= code 159))$ f7 t8 Y* x' K7 s& n& W4 _
- (and (<= 224 code) (<= code 252)) ?( U# g1 }2 K6 r% u' ]; S" ]
- )6 Q" r4 C9 U( D+ b3 \2 ^8 E: k
- ), O& }$ t) e5 v# T D9 E+ a
- ( (or (= asia_cd "big5")
. e/ n( m0 R0 w" t# D - (= asia_cd "ANSI_950")$ }0 e, m# ~2 _% |: ]4 l* }- v
- )- h$ \7 O- i- @' ^8 |
- (and (<= 129 code) (<= code 254))' ]0 a$ R/ h& b( v0 R/ i
- )
: r3 e- H( s! D6 P% F9 a7 Z - ( (or (= asia_cd "gb2312")2 |0 ^5 H9 |% R$ F# O
- (= asia_cd "ANSI_936")
* h' \7 N1 @& \) R2 Y9 i - )5 Z v( {- ], k; i3 U k: ?! Q
- (and (<= 161 code) (<= code 254))
|( H- G$ W& F! H - )
( D% V$ I6 W2 O8 X/ l3 V8 A - ( (or (= asia_cd "johab"): x1 m5 N" @$ K9 X
- (= asia_cd "ANSI_1361")/ D- U+ r0 `; J/ h
- )- ]% F N( d) d, S
- (and (<= 132 code) (<= code 211))
n5 j" p$ f b! D4 X+ D/ I - )" b5 P5 ], w5 Z- p5 P ?
- ( (or (= asia_cd "ksc5601")$ w* C2 N3 v( @# y5 Z1 H* Q: H
- (= asia_cd "ANSI_949")
; s8 d: c+ w9 @3 H7 J1 \; _ - )
4 k5 S+ Z& h- g9 R. c - (and (<= 129 code) (<= code 254))( m1 l& N7 b, l& M I
- )
! k# `" i6 b4 w" ?" M: {& c* o. e - )' \% N& t% C* h- s# n
- )7 \! L9 U! R" }5 c3 M8 e
- 4 u" C4 `* ]; P( _
- ;;; ====================================================1 F6 z; c5 ~; o- U
/ ?, q S- n( i. L- + g6 e5 \5 M Q* M
- ;;;
( N' u% Z5 q( Z3 Z) s3 B0 i0 K - ;;; FITSTR2LEN
3 C3 {' Y0 \$ g; [ - ;;;' W* a6 A: K. N X
- ;;; Truncates the given string to the given length. % g3 c) g0 t0 j# U' r
- ;;; This function should be used to fit symbol table names, that8 I* X8 K1 {0 H8 C$ R
- ;;; may turn into \U+ sequences into a given size to be displayed S& T; c& E0 C* ]2 } r9 A
- ;;; inside a dialog box.
* O! _1 f' F1 O0 m! x1 S; E - ;;;
. y9 h) D* r7 i" d. S& D - ;;; Ex: the following string: 2 B, ?% z/ A3 O% A
- ;;;
z, B" `" n# T' \* d - ;;; "This is a long string that will not fit into a 32 character static text box."3 a. B! v4 V2 l% L/ z# i
- ;;;" M" h; p6 ~* f' Y
- ;;; would display as a 32 character long string as follows:9 o- J9 r: @7 s
- ;;;
; k& @$ g7 Q, F) e( K7 u6 i6 B8 ~# H - ;;; "This is a long...tatic text box."
% W" ~+ G1 y7 y6 M0 Z - ;;;
0 P Y4 o6 c5 ]% r( T3 \' M - ) A! r$ M0 j. m t( @- u# ?
- (defun fitstr2len (str1 maxlen)
- L9 }' ^* D. n0 f - $ Y+ A: \; f# Y" C2 n" p
- ;;; initialize internals; O! ~8 @5 I/ K. a( U) N9 N5 c
- (setq tmpstr str1)
+ e" c3 a7 \3 ^4 {/ Q0 g - (setq len (strlen tmpstr))3 b, v$ q. n( Q7 ~; J- C2 F
- 1 g( {/ K0 o+ J, t9 \
- (if (> len maxlen) ( f4 x" `+ ^! P3 q3 i! B
- (progn
. G+ D y+ q6 ^. R( y/ p! z! Z - (setq maxlen2 (/ maxlen 2))4 Z* T( B+ t- P4 H8 i
- (if (> maxlen (* maxlen2 2))' V" _7 Y# y* H- }" g& g
- (setq maxlen2 (- maxlen2 1))
* U0 I2 a* T6 A1 ~% I+ ~ - )* b8 R. d2 M% b* u! p1 p
- (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1))
+ B& G: v/ `+ G5 f - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))
, S+ L" [+ o+ q! Q8 Y - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))
* g/ g+ f8 N" u- t+ M& ^* f) O0 n1 e - )
# \. S. }# W- C* o5 H$ o - (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))
" g$ ^ L5 `; k9 i- Z3 U - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))
1 P9 f8 v9 n% ]2 T- Z/ q1 |0 I& R - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2)))): i6 E3 m9 y* A$ i: c
- )4 e4 z m( M/ l2 \+ R9 w
- (setq str2 (strcat tmpstr1 "..." tmpstr2))( s2 V: m0 Z1 N" q5 J
- ) ;;; progn
" i+ `5 q N* S# y6 k* J - (setq str2 (strcat tmpstr))
5 e( H1 A @% v) |) D$ u4 q7 K - ) ;;; if
/ {; D2 S" _) W$ Z - ) ;;; defun
! k. j0 |4 n* A2 H- H# g - 1 ]: y1 B* n1 Q" ~
- * C) ^9 ?6 v# S; _) a
- ;;;
1 a9 E" }0 x K! o2 l! ]" N, N - ;;; If the first object in a selection set has an attached URL
# J& D0 z4 P$ L5 U9 e) ~! {0 n) D - ;;; Then launch browser and point to the URL./ |2 E% M8 _9 X! F l, H
- ;;; Called by the Grips Cursor Menu
! k% g' K( ]; _# T8 F/ F$ E - ;;;
$ B) i5 T6 t% \; z - i0 y6 b( F3 W9 ]2 Z: j5 f
- (defun C:gotourl ( / ssurl url i)! x# F- O4 g/ m- D- x6 r
- (setq m:err *error* *error* *merrmsg* i 0)+ o0 j# n" J% g+ Q& x! D
, r& u& s$ L4 P3 J9 N- ; if some objects are not already pickfirst selected, 1 G5 {# E5 x4 n& Y- R: T
- ; then allow objects to be selected
) R# W8 K7 C, J; d, ~4 c
' A: _0 d* N( q& o- (if (not (setq ssurl (ssget "_I")))
' A. X" v& `* c0 A - (setq ssurl (ssget))
) e4 g+ p: j6 _% i3 q - )/ q: U" U0 X0 p, g' E5 m3 M
- - V \: B0 Q) o/ l
- ; if geturl LISP command not found then load arx application
5 m9 R5 e5 Z5 ?0 E/ j. z
/ q9 X) {$ [' p* E# t! A' _- (if (/= (type geturl) 'EXRXSUBR)
- B' l" o d# o# e9 h% O5 Y& u - (arxload "dwfout")
$ W% s4 V7 r! w' p) y X" V - )
4 t! ]+ G U8 k. K9 g b - " t7 B4 X/ R$ w3 l% k
- ; Search list for first object with an URL
3 o1 U4 Y$ x8 n# H( L - (while (and (= url nil) (< i (sslength ssurl)))* \% @1 z1 U- H6 r- y
- (setq url (geturl (ssname ssurl i))
]0 }" N$ j& N; G( D6 O3 T - i (1+ i))( G) ?9 ] E1 I, \9 E G0 k
- )
6 c* [4 B u! V& } r+ k7 S - ( L* A; x' L1 q0 D3 H2 M
- ; If an URL has be found, open browser and point to URL
, h7 y, c" g, F' @6 c: C - (if (= url nil)
L! x4 [$ c+ V. C* p - (alert "No Universal Resource Locator associated with the object.")4 e/ j0 k% I- G. E; ?% Q7 P d$ z, E
- (command "_.browser" url)
! u p8 x6 w$ ]* E2 w4 W/ X* |6 k9 ] - )
6 N) X7 A- t% v& g: g5 p - & V8 C, ]8 M9 N. o, m% A
- (setq *error* m:err m:err nil)! v: c* u) I! `5 g! E0 h# v' c+ @
- (princ)/ S: }7 I0 t; O: t8 h: K. S' M/ H' g
- 6 h5 ~/ ]( |" O8 i$ l" Z! k% i
- )/ d6 O0 J5 y2 T* G% e: W
1 X0 z. Q; O7 G- E9 F G, _6 Q- ;; Used by the import dialog to silently load a 3ds file" S% q! M p- m+ E9 o/ Q' h3 w1 |
- (defun import3ds (filename / filedia_old render)$ _, W$ s0 s$ ^# G5 q/ A' e
- ;; Load Render if not loaded
+ C4 e$ @+ C: I, @) {& X, S8 F2 S - (setq render (findfile "acRender.arx"))" m" ~* M, V) B
- (if render
6 A. j+ U; g; e+ }' J; E2 r& I8 ? - (verify_arxapp_loaded render)
7 B9 G8 R+ C6 |7 Y* m& G! ?: q - (quit)
9 _5 O$ e9 E8 ^, T, S+ o - )- c/ s, Y8 h8 p8 N J$ T3 Q' v
) V+ R& G9 L( I8 x- ;; Save current filedia & cmdecho setting.
- B3 `: v+ J4 k: ?) ?# ^ - (setq filedia-save (getvar "FILEDIA"))( w0 ^7 [) [1 w
- (setq cmdecho-save (getvar "CMDECHO")), q- p& q5 b9 A" J0 i
- (setvar "FILEDIA" 0)
1 @% x" H ~! u1 A" \5 m6 N - (setvar "CMDECHO" 0)
1 x+ P! G. ^" I+ Y; ~ `) s - , b. t0 c7 s; O) K0 i* z/ M
- ;; Call 3DSIN and pass in filename.
7 w$ x3 O5 q! H; o8 O - (c:3dsin 1 filename)1 {9 n, v1 a+ k' _) h3 l/ ~# B
3 J- D1 s# r/ ^/ W7 B- ;; Reset filedia & cmdecho, ?9 I. l: l2 V) o$ W& ~5 F/ v
- (setvar "FILEDIA" filedia-save)
5 V/ H4 n8 i$ H/ F( j/ A, q - (setvar "CMDECHO" cmdecho-save)
% S6 Y! b. u H2 h+ ]. D - (princ)1 ^' M# m# h C5 e+ o
- )
* s" T- k% g9 B1 i4 B
; u p+ U, o# V2 k+ D! u! o5 g' U
' t9 T- i' i$ ?" C2 s6 T- ;;;=== Menu Functions ======================================
% C% _; o0 J9 f3 X( i* e# P7 Q - 3 K6 `+ h& F: }
- (defun ai_rootmenus ()
: x! e4 {. P: C8 u; A5 S: ~# D1 q - (setq T_MENU 0)
( d& j$ l4 V% l2 _ - (menucmd "S=S")6 n7 x+ L* x7 y5 i' Z, `" M
- (menucmd "S=ACAD.S")
) {$ @" i* `1 V! T9 ~' \+ y" a - (princ)
& i6 V- j4 a m0 |7 _ - )9 ^1 @7 t& k M$ }1 W
! q+ Y' l3 S0 I0 U& ^- (defun c:ai_fms ( / fmsa fmsb); e# Y- T% r% `6 r% @2 l4 H
- (setq m:err *error* *error* *merr*), g+ n; U6 |& y. f
- (ai_undo_push)
2 _& N- n3 }! K* |* J# n- W - (if (getvar "TILEMODE") (setvar "TILEMODE" 0))+ ^3 e2 ?6 @- n: x4 b2 c
- (setq fmsa (vports) fmsb (nth 0 fmsa))- Y0 H, C" `' c$ b7 S' Y: m% {6 c
- (if (member 1 fmsb)
9 J; l' x3 C5 v; I9 c0 Y# O2 f - (if (> (length fmsa) 1)6 \+ Q2 }8 t: }9 D
- (command "_.mspace")
. h2 ^' g# ^% _+ V! ?5 g3 @ - (progn7 o3 R, O1 p+ x3 ?
- (ai_sysvar '("cmdecho" . 1))7 k" ?: {0 w+ v! V
- (command "_.mview")
* N# C- W8 Y( F( t- |9 L - (while (eq 1 (logand 1 (getvar "CMDACTIVE")))/ \: T) X7 o% w3 X5 T
- (command pause)
+ S* e; W I9 ]$ j$ C+ T - )- r& Q) V: A* b& P* f
- (ai_sysvar NIL)
- m8 D$ z' P" s" O( P - (command "_.mspace")
. J4 T: U: R. E) y+ N2 |; p+ J - )) q: n1 M; M, r7 g/ z
- )" |) b r* F4 C+ L1 r% P. r$ Z$ u
- )& t6 J ]& S# w v) H& H# I
- (ai_undo_pop)
4 P2 d4 l. C I- e' R9 g* p- ` - (setq *error* m:err m:err nil)# S, k$ a5 S- l7 `
- (princ)- f8 y: A: {* v. y' f" J
- )3 v- r+ T& ~' I* A7 y: j# F
) W, {' S" Q0 X# K+ [: y- Z% y" M' @- (defun ai_onoff (var)
7 }$ t- K" M; D2 n - (setvar var (abs (1- (getvar var))))7 f6 B$ I' T4 x6 A! X
- (princ)8 y& x& K# c! m# J: Z8 W x" Z; d
- )
* e9 q: d; r) R1 T$ M
0 J) v0 }2 t, w! ]; }. z- ;;; go to paper space* `# K. [/ | n
- (defun c:ai_pspace ()
, x7 s( J- I+ C9 T' j - (ai_undo_push)9 n1 w1 m3 S+ {5 K; N2 r# C' i
- (if (/= 0 (getvar "tilemode"))
8 p9 [' N8 t$ Z' [" ^ - (command "_.tilemode" 0)
8 S1 s% W( N7 u( h$ [* p8 n6 o - )
/ o- Q" [: M* ~( S& C - (if (/= 1 (getvar "cvport"))
& E! p5 g* \$ O+ ?; q8 a - (command "_.pspace")+ ] Z3 p; a9 B& W
- )
$ ^! j, A) _9 I9 ] - (ai_undo_pop)- W1 e! z2 t( C- S
- (princ); i/ e, z# U$ e* J5 r
- )
. o t2 @1 p8 Q - + l0 o+ k3 Q3 C+ Q( m- O
- ;;; go to tilemode 1; ^, M' @% [0 _5 ^6 E
- (defun c:ai_tilemode1 ()1 Y! }2 K6 T: C& s6 I
- (ai_undo_push)
N. L$ D3 L0 N; I' T, ]' f8 I - (if (/= 1 (getvar "tilemode"))
& f; y: `5 e* G' P - (command "_.tilemode" 1), J9 X* f/ V5 g: S2 \
- )
+ \& x) X6 p, p% p" f - (ai_undo_pop)
( n9 g. n- B( [5 D! q - (princ)
4 k0 r+ e }# i9 j3 {2 s. S0 a - )
! H7 K) Y. r; L3 t5 g
E6 s% S* P4 q! V' J8 N- ;;; Pop menu Draw/ Dim/ Align Text/ Centered
4 D O8 Q) \3 X6 _. h - ;;; Toolbar Dimensions/ Align Text/ Centered
) z+ U$ P( ^! O* g - 2 U* M' \! g9 ]/ u) `# M* c% c
- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss)
' C$ e% |1 S, w' i- X! {' R3 [ - (setq ai_sysvar (getvar "cmdecho"))" o7 j5 W- E3 k- s
- (setvar "cmdecho" 0)5 ~4 Q3 _" ?, ]2 U% Y2 I/ m
- (cond
; ?1 C# [+ R& X$ T6 F0 g: c - ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION"))))
0 y; e2 K7 Q$ z3 K - (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss ""
$ ?; L. u# ~8 U4 s+ b. U( `0 }: |2 P - "_.dimtedit" ai_dim_ss "_h")
- ]# p, h; g+ G4 Q0 ?6 L6 D - )5 _ y4 x: t( B7 l }7 t# K E) b7 V
- (T nil)
% g) G- J8 S; t) w1 _7 z - )- \; a5 k: C: F" k$ M. X' A$ V+ Y+ @' A
- (setvar "cmdecho" ai_sysvar)
! s& ~; y+ E# ]4 C0 k5 N - (princ)9 r E2 {$ {# L* U7 y+ K8 w
- )6 i8 L5 e8 U+ U
- - t$ U$ N0 H- j2 y" ~
- ;;; Shortcut menu for Dimension Text Above * S- J9 V/ I8 m" j: J6 r( X& h- M
4 j! C+ M; p4 r- (defun c:ai_dim_textabove (/ ss)
4 U9 j# [5 _' [$ k - (ai_sysvar '("cmdecho" . 0)), ]5 V! c* `$ V7 a8 x: f
- (if (setq ss (ssget "_I"))/ B/ H: c: i' ~6 g7 `( R
- (command "_.dimoverride" "_dimtad" 3 "" ss "")5 r6 V& \) V% m+ Y
- (if (setq ss (ssget))! |8 M$ t( l+ t5 U B3 O! Z
- (command "_.dimoverride" "_dimtad" 3 "" ss "") 9 s' Z9 @1 Q6 k
- )
( O {1 {3 w* q$ a. c - )
l% |+ J- u: j D" k5 M F f - (ai_sysvar NIL)
5 _6 B7 `9 R0 ?! U- Y - (princ)/ I8 f0 G E* L* S# m0 X7 S
- )
$ f, H. m* I5 K6 i4 g& d - " V0 A/ w4 h- C/ a# j3 p! O. q% b
- ;;; Shortcut menu for Dimension Text Center
' u" f5 c6 ]" D( o G - ; Z. _. _( r: \, `- m8 q. L# k
- (defun c:ai_dim_textcenter (/ ss)3 B) ~0 f( P/ Q4 [& l# y7 H' \0 J
- (ai_sysvar '("cmdecho" . 0))0 K! ], r1 h( Y& }4 Q7 {+ ]2 [
- (if (setq ss (ssget "_I"))# X- ]* y: i- l. j2 _, [5 ?
- (command "_.dimoverride" "_dimtad" 0 "" ss ""); f3 }1 l; O. J8 r' e& p
- (if (setq ss (ssget))
3 h& y1 Z# ]" r$ l8 o% ?9 @ - (command "_.dimoverride" "_dimtad" 0 "" ss "")
- f/ w1 ?0 \1 Q3 g9 h - )
% \1 p |% {1 c# \ \: `4 |2 p; R - )8 J. f2 K. }2 Y- s
- (ai_sysvar NIL)% I. A3 T- `6 Y; c& P6 ]3 g6 p# S Z* V* f1 O
- (princ)) n. O: N, z) b+ x, `3 F
- )
# d: O# w: s9 s. c! L* N/ j8 b! Y* e4 y
0 _& x; z# h3 p4 l3 j$ J$ a- ;;; Shortcut menu for Dimension Text Home
8 T5 N" T+ C: {% b) Z- s2 J! } - / u5 X' \6 D0 |$ k: h7 { n* t
- (defun c:ai_dim_texthome (/ ss)
/ \. e; [. z. V# O - (ai_sysvar '("cmdecho" . 0))
$ j/ ?0 C a& `/ K - (if (setq ss (ssget "_I"))
/ s4 K4 ^8 e z6 s" L - (command "_.dimedit" "_h")
+ I9 `/ f% H5 G+ ~! v6 T9 I( X, v' b - (if (setq ss (ssget))
7 g5 x2 h% [( h6 X7 s* B- f - (command "_.dimedit" "_h" ss)8 }1 j* C) X2 _) ~. L
- )
0 Q# D* M g+ V7 g( `9 W3 S - )! ^/ S) p, O& g! j' Q" P% i; ?5 b6 q
- (ai_sysvar NIL)
' s b9 b/ D0 ~6 y0 U - (princ); a2 z& ~: m; k- f. T
- )9 l/ Y& m! _+ z8 ^
, q! M, o$ h E9 K+ ~; V- 6 @" v9 |% r7 K D8 ^' ]; T1 M
- ;;; Screen menu item for CIRCLE TaTaTan option.0 S, ` d4 m6 Y" \( e
- ;;; first, get points on entities$ L T2 p/ N! r* g
- (defun ai_circtanstart()
( l1 ]9 k: D/ O$ W S- ~ - (setq m:err *error* *error* *merr*)9 F! e/ R. C& T/ ^0 \/ A& ]$ y: y
- (ai_sysvar
+ `; D- ]5 W P* E - (list '("cmdecho" . 0)! p7 A' Q% e5 q% M6 z9 ?
- ;; make sure _tan pick for CIRCLE gets same entity: @: V6 Y, O0 ~7 |4 |4 x0 E
- (cons "aperture" (getvar "pickbox"))
! w. z5 i* U u J" G - )
4 V, M6 M. _* H% e4 Z$ Y8 S6 I - )
* O$ C- H @% w0 F" W" [ - ;; prompts are the same as CIRCLE/TTR command option
9 `8 g/ w- I5 Y* n8 e - (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))
( w/ z3 S A7 b( p9 B - (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))
+ A- G0 J5 F+ T; W( a9 j - (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil)), Z+ t& I) t* x
- ): w& K7 z" ]% u* K' l
- ;;; Command-line version) f1 [& R1 h. d6 d8 G. V
- (defun c:ai_circtan (/ pt1 pt2 pt3)5 c7 }4 y o& b: U5 |7 L
- (ai_circtanstart)5 [0 N8 t& P0 c5 P
- ( B$ E# p) u% h$ z& q
- (ai_sysvar '("osmode" . 256))
1 C6 o# R! m. v- N9 {6 b7 ` - (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)
5 z* r4 k- F5 ` -
1 I5 Z5 g; R4 |5 A- n; T% z, _ - (ai_sysvar nil)
: d+ ^, O1 g4 W: f. O3 [3 Y- ?# A - (setq *error* m:err m:err nil)
! r5 O! U: s& a! x$ o G ?: C - (princ)
% Q4 b1 b' F$ ^1 b5 X6 p - ), |7 ^: t' O0 u. A+ c
- ;;; Use this if CMDNAMES == CIRCLE1 {' c0 e! j0 ?& b3 Y9 m
- (defun ai_circtan (/ pt1 pt2 pt3)* k3 I. s) M4 b3 {$ G
- (ai_circtanstart)
& B+ B( N# I' ]- F7 q& G9 T* t
. `6 d! E0 i o8 S- (ai_sysvar '("osmode" . 256))
8 B) c O3 E6 `9 ^9 j- W% h* p - (command "_3p" pt1 pt2 pt3)
% h. l( i% L% G -
# S! `( D. n" v% W y3 g* q - (ai_sysvar nil)" N9 e/ Q7 M, @1 i, z2 a
- (setq *error* m:err m:err nil)
" X) C M6 {% q Z9 ?3 v - (princ) x' l9 ~# z9 @$ p0 t, E
- )
8 I2 {( g* _' P; Z" `0 | - 3 t% I/ \2 a# M: {9 i/ Y
3 R; u$ p) p' I$ b
6 h, V5 r; O8 |- ;;; Shortcut menu Deselect All item.
& J6 Y; H2 |" e - " c- P( z$ r0 j1 @
- (defun ai_deselect (). _! @; G8 _( X6 r! n9 S, Z5 S
- (if (= (getvar "cmdecho") 0) ;start if6 o4 c1 T4 u( Q7 |0 x( l
- (command "_.select" "_r" "_all" "")9 X' l& z- a3 E I- W+ B7 Z) r
- (progn ;start progn for cmdecho 1$ ] G; e# F7 @* d2 ~* g
- (setvar "cmdecho" 0)% X3 Y+ a# t4 ]# z$ L
- (command "_.select" "_r" "_all" "")' k8 ?. W) T; s S; m( n$ L% f8 f$ Q
- (setvar "cmdecho" 1)4 @- r/ v' i6 I% C( T: S S5 t0 P
- ) ;end progn for cmdecho 10 ^; R2 _- y) Z! m+ P& m" G& h
- ) ;end if
. V. @6 Z- h s0 ~$ K( ] - (terpri)
. T3 ^% `! I* S& u - (prompt "Everything has been deselected")
Z& G. ?( F" ?7 [ - (princ)! P( [& ?6 ]: [4 E+ |/ K
- ); U9 b5 M9 p* B4 i
- 2 g' ?2 @# D6 f' b, x: c5 s$ [
- ;;; Command version of ai_deselect to be called from the CUI) L+ w7 F4 ?8 K% ~ F
- ;;; so it gets properly recorded by the Action Recorder' o0 Z. u) g5 f6 l/ L W
- ;;;
2 P6 ]0 x2 [3 p - (defun c:ai_deselect () t- ^0 w/ @' E5 \# _
- (ai_deselect)
) J4 G/ ^0 s5 @, [3 N - (princ)$ W$ ~+ O4 ~: x
- )
2 i$ J' Q4 ]8 o) u+ m9 H& x4 Q - 6 G, d/ b V. c
- ;;;
% k: ?0 B' ^9 M' U/ ], v - ;;; Enable Draworder to be called from a menu/ V8 j! e( E# H: G; r; S7 J% R3 ~
- ;;; Checks for Pickfirst selected objects9 {. X+ l7 [ d+ d* ]6 y/ I( f/ G. }
- ;;;. z$ B3 ~( w# @( B% v
. v( f. O' j# c4 C- (defun ai_draworder (option / ss )
B( C2 t: g6 w4 q - ( r: E6 u+ w: d9 X" o
- (setq m:err *error* *error* *merr*)9 R/ M! E# X/ M# ]6 {
- (ai_sysvar '("cmdecho" . 0))
) z6 i8 ~2 i- [" k9 B$ n, b - . Z* z% ?) T' {! O3 M
- (if (setq ss (ssget "_I"))
2 c$ u% |; w9 s7 w - (command "_.draworder" option)8 ^/ A2 G9 ~! ?5 [6 g8 f
- (if (setq ss (ssget))
0 b, M1 h- W3 a- w1 m5 e z/ i4 q { - (command "_.draworder" ss "" option)( V% R6 \/ M' p3 z$ {9 o. r9 M; h
- )6 y5 r! r5 {# F
- ): ]9 `4 E9 C, ?6 U4 p
- (ai_sysvar NIL)7 y6 K/ G3 d: Z" n
- (setq *error* m:err m:err nil)
* \* Z& _# W( C, N( y0 | - & y- n4 @) }6 R7 h* T
- (princ)1 ^/ Z/ [. J5 P; D0 y
- )
% I* y4 E; i. u% ~4 ?3 h1 z8 j1 w - . i9 E0 o' ?8 w- ~" |# p$ S# `6 _
- ;;; Command version of ai_draworder to be called from the CUI( a* V& Z: F j# p5 V
- ;;; so it gets properly recorded by the Action Recorder
+ K5 L2 ~8 ~; S2 l: Q1 o - ;;;
$ g9 H6 @. ^" E, e8 h - (defun c:ai_draworder ()
^0 L- X; ~ E6 @$ G - (initget "Above Under Front Back")+ V# e) Z1 T7 Q4 `: D
- (ai_draworder (strcat "_" (getkword)))3 _2 \( N& J4 g- `
- (princ)* [ d3 a2 W) n! {' _& p4 e
- )
8 O$ U1 k8 M3 M
, H; L$ U( g& u; v0 \$ l1 C! Y- (defun c:vlisp ()
8 E$ I J7 U' _( Z - (if (/= nil c:vlide) (c:vlide))
3 w/ o2 } y# l - )% L6 e! s' V; Q$ L( L
- 5 W! j+ G9 t: ~
- (princ "loaded.")6 h0 e- D- s( h# [. \ o& o' j: M
- ) T+ r u) k6 d, ~0 P/ I
- ;; Silent load.
, B* v5 w: o: ~: y - (princ)
$ h( C. M1 a/ [& L* X( |( I/ k - : M3 |3 L8 o/ E- @& p- W* }3 o
- ;;;----------------------------------------------------------------------------
# g( p( e3 o5 D* F - ;;;
4 t0 L6 y" R- P H - ;;; DDCHPROP.LSP Version 0.5
2 T8 N4 ^" Y8 Z+ B; k- G; M - ;;;
2 J7 {3 _* B. t3 g - ;;; Copyright (C) 1991-1993 by Autodesk, Inc.
: d8 z- j) b. t' n+ h1 A - ;;;" R3 `& n+ E, E0 e) L5 V. {, I
- ;;; Permission to use, copy, modify, and distribute this software
9 |7 ]. l8 R3 U - ;;; for any purpose and without fee is hereby granted, provided( }" L5 E7 \ w: w' U8 ~
- ;;; that the above copyright notice appears in all copies and that ] x3 Z$ h4 V
- ;;; both that copyright notice and this permission notice appear in1 ?* \9 { _2 Z: S+ e
- ;;; all supporting documentation.+ ]/ l, E; j; M8 }$ j, @6 p
- ;;;
% ]: Q6 X8 F# v+ F6 L$ v8 B; d' K% Y - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED9 S: a2 Z6 v$ N8 L @
- ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR" y w# ]9 a2 i4 s' m V
- ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.0 Q, g& Q3 E% ^$ u& E) y! W
- ;;;2 Z6 O- R( B) O4 s
- ;;; 2 February 1992
/ m% _8 n) ~3 g) b! m! y - ;;;
$ k! |; f& l) E# A9 z. p2 [ - ;;;----------------------------------------------------------------------------; a& P2 O9 |1 ?! Z5 ]6 s8 ]
- ;;; DESCRIPTION0 y9 S1 R: |5 u$ ? F
- ;;;----------------------------------------------------------------------------+ o, u9 c9 a: O5 O" [# B6 X0 A
- ;;; C:DDCHPROP is a dialogue interface for the CHPROP command.
; L( k/ a( C7 Z5 J - ;;;
. d; R6 `: k2 {+ O9 a3 S' ~ - ;;; The command looks similar to DDEMODES. The main dialogue has an image
2 s9 L) g$ x: q; h( | G - ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness).
+ K& B: S8 c- G$ Q1 k2 ^ - ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box.
( i' n* K) t7 L p4 Q% @ - ;;; The dialogues are all defined in the DDCHPROP.DCL file.$ _ Q- c* z B# S3 O
- ;;;5 [8 A& Y9 R0 |! ^8 c2 a9 L
- ;;;
7 C2 t* Z: {6 M" f6 x g9 D - ;;;----------------------------------------------------------------------------
' h6 L9 h0 M4 ^4 b; s - ;;;----------------------------------------------------------------------------7 P% z5 r6 y; E# n1 E
- ;;; Prefixes in command and keyword strings: " B# k, |/ F) E7 _
- ;;; "." specifies the built-in AutoCAD command in case it has been
9 Y2 s3 F: g; b% Z/ M& A# H - ;;; redefined.% s, y- r0 o0 P
- ;;; "_" denotes an AutoCAD command or keyword in the native language
7 C5 M s. l3 O- F4 q5 e& E - ;;; version, English.
9 j+ k0 r& V% P% ` - ;;;----------------------------------------------------------------------------
$ W' z9 G* C" F7 M1 S, N - ;;;: b" m' v+ c& @' y9 ^
- ;;;$ E8 i5 u0 t( M+ r0 Y7 K; O
- ;;; ===========================================================================& m; A0 n! i1 g, b. u
- ;;; ===================== load-time error checking ============================. B. K w$ C. o2 e; \
- ;;;
% g3 G# g2 w5 b# m+ r
, \8 o3 G" I+ T" l: r; i- (defun ai_abort (app msg). B% |2 T! [) m$ v' E& q9 W, R
- (defun *error* (s)! t* k. v7 D: ?' p
- (if old_error (setq *error* old_error))
6 [& F; x/ }; `# J/ D2 ` - (princ)* A* ~" m) u! v; Z ?$ q
- )
- h! J, s( d' I2 } - (if msg- m/ R" G% f( F' K! }+ f7 f
- (alert (strcat " Application error: "
9 o- x3 k$ _& u: W: j2 W - app& B4 _1 ?; C* T; y7 [
- " \n\n "
) T( @- t; u8 ?7 |7 C5 o3 L - msg
; d7 p$ A% H" o; n - " \n"3 v; R4 v* L, S! g7 J5 T5 ]0 U
- )! X1 L8 e$ q, ^) s
- ); \% N) z. P" @! t; }: E K
- )
2 [- X) {7 ^& |: q - (exit)
; ~5 t8 K/ t6 g3 {; n; c( y& A - )
( t k& v/ }" p+ Y& w
6 B; I! |0 K$ K* q; T9 @$ d- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,9 G) w* h$ R( E) ~
- ;;; and then try to load it.
! J4 K. H9 O7 H1 ^8 f( Q - ;;; C8 F& u! c2 g/ _3 G/ W7 ~
- ;;; If it can't be found or it can't be loaded, then abort the
7 B" ~; o/ U" L; J% }8 l - ;;; loading of this file immediately, preserving the (autoload)
3 K) i, S# @* N. k' I* D - ;;; stub function.
/ M# C7 H0 k1 \+ ] - 7 Y" ]7 q2 z& ]+ u
- (cond9 o& e% {) ]% Y# P2 }$ |$ W z# C
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
. ^, r, o& ~% w' l: x - % Q9 {+ a5 B0 P6 P7 ?4 ^( |
- ( (not (findfile "ai_utils.lsp")) ; find it/ N; }$ m. t' g$ G6 ]. ?
- (ai_abort "DDCHPROP"7 ]: j3 s g" S1 o# f7 `7 y
- (strcat "Can't locate file AI_UTILS.LSP." a0 ?! ^5 w5 a
- "\n Check support directory.")))9 Q' D7 J9 g s/ P% ~( Z4 b
; ?8 z5 {/ Z8 \7 y4 H$ C: ~' n- ( (eq "failed" (load "ai_utils" "failed")) ; load it7 F% P4 Q! q( x; u
- (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))- I" w+ p: m3 s5 i
- ) L* D7 Z/ i b% _" [
) k% U+ n: c6 _- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP3 X7 G2 U$ P8 ?5 m. G, Z5 \
- (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses
1 Y `& t1 ~; n - ) ; ai_abort's alert box dialog.8 Y$ I) n4 X5 a% d( c/ K
9 u' g2 t/ a# Q$ R4 N! z- ;;; ==================== end load-time operations ===========================; \' O$ C$ O. |, |3 M9 e9 Y
- / m' e3 ~, r+ o1 r( Z& U
- ;;; Initialize program subroutines and variables.
8 ~- x2 M$ L4 p- U1 y
. d) Z, w. A/ ~5 L$ ]- (defun ddchprop_init ()
8 g5 o. j. C! d h" f; s2 | - " E. j1 P5 e7 x6 K
- ;;2 w8 a/ ^2 S1 G J e" F
- ;; Define buttons and set values in CHPROP dialogue box
1 t( t: e+ x _# _% H4 O6 F - ;;
0 n: m! r( [) s% T) ~ - (defun call_chp () q3 H( o" D- Q# w
- (if (not (new_dialog "ch_prop" dcl_id)) (exit))* `: x5 }) e; Z. ?2 [
- (set_tile "error" "")
0 }$ N- P7 Z& G* b2 _ - ;; Set initial dialogue tile values
5 h* c0 }) B- Q, r$ O- F - (set_col_tile): {- G4 F/ ]2 A" m) a
- (if (= lay-idx nil); z! z& |% l' d8 `
- (set_tile "t_layer" "Varies")
/ I6 E( C9 u) n: p: A. {9 f8 s% Y- U+ l2 C - (set_tile "t_layer" (nth lay-idx laynmlst))% N/ k7 q/ j- M1 o4 W6 @: \
- )
6 S# R6 f9 P, D( U& \ - (cond
; n% r0 N3 d( [6 @* W - ((= lt-idx nil)
9 s+ ?' {& b1 i4 v5 ]+ ] - (set_tile "t_ltype" "Varies")
6 U2 u+ c& D/ P+ p5 v. E) X; A - )+ @# y! {4 f* O# ]$ D8 W: R
- ((= lt-idx 0) ; set tile "By layer & layer linetype"% g {8 R" A: _! F5 [
- (set_tile "t_ltype" (bylayer_lt))
- N1 L7 w% T" g; u- |$ V - )
7 S) O6 ]" h% Y# h - (T
- L: e: F$ _ r& U0 |4 y - (set_tile "t_ltype" (nth lt-idx ltnmlst))2 a5 \9 ]. P( e0 N
- )* }" n0 d) C) |9 } e* _
- )3 m- Y1 F) g- k" `2 N& k& v
- (if (or (= ethickness nil) (= ethickness "Varies"))6 o6 W/ x4 U7 K* i g; {
- (set_tile "eb_thickness" "Varies")
+ K' A" e0 C' M% A# ] - (set_tile "eb_thickness" (rtos ethickness))$ \9 ~% W- f5 o
- )
, i9 d; X7 ]$ B+ w% \ - ;; Define action for tiles
6 M6 q" V4 N5 \, H( n ]) _2 \% O$ L - (action_tile "b_color" "(setq ecolor (getcolor))")) X2 P$ T8 o" p. S
- (action_tile "show_image" "(setq ecolor (getcolor))"). G* ~5 R$ \1 \$ `3 S- v
- (action_tile "b_name" "(setq elayer (getlayer))")
7 y+ O2 k% m7 Y* _4 n - (action_tile "b_line" "(setq eltype (getltype))")0 G7 E% x1 v ?
- (action_tile "eb_thickness" "(getthickness $value)")2 K: j1 ^8 V: D! S% M4 B1 V
- (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")& `4 w8 @* A8 W* r5 ]% B3 z! O3 r
- (action_tile "accept" "(test-ok)")
0 A! G7 ]9 o7 m7 g2 n/ u% `+ B1 l - (if (= (start_dialog) 1)
# P) ?0 T3 h) ?7 c5 n - (progn
1 t4 T7 z0 K i. R - (command "_.chprop" ss ""). z' M( E5 n+ `3 W) P0 o! I( f
- (if ecolor, z0 k6 T: z7 E- N
- (progn/ z$ i* g& k4 C# G0 b6 X n* w; M
- (if (= 0 ecolor ) (setq ecolor "BYBLOCK"))! f0 |+ C& v" M1 x9 p
- (if (= 256 ecolor ) (setq ecolor "BYLAYER"))8 G' F8 O( t' _9 T/ l
- (command "_c" ecolor)
) Z9 m0 g; l9 P5 }. F - ) V. E; O. w6 E' ~, Q9 U
- ); ]# }) ^9 x3 z; s& z& i& H/ ]& Q
- (if (and (/= eltype "Varies") lt-idx)" E5 H# u3 G8 J J0 {3 X8 i: i
- (command "_lt" eltype)- w5 `6 M3 w, ^. M) t9 o
- )
3 m2 ~( f( ]. U5 u; Y- d/ y - (if (and (/= elayer "Varies") lay-idx)
7 F u, A. p+ `2 [2 q; V - (command "_la" elayer)' d' X$ S* Z$ [( T) p
- )
5 C5 k, i, K: F8 ` - (if (and (/= ethickness "Varies") ethickness)" a# [& j# i* {( k) ^, ]: [( T
- (command "_t" ethickness)
* A) `' G& @" Z# g - )
) l( t* U/ Y3 Q/ f - (command "")$ B6 ]# b" x5 G9 j% o6 ~
- )
: W; w# b0 s S" r5 I2 n( E - (princ "\nProperties unchanged")
4 h7 \+ S% T% u+ w; Y - )$ o% ~$ ~* N# U6 l5 I
- (princ)) A+ Y5 _; W1 w+ u
- ), X) ~! O1 L! w% ?
- ;;
+ E0 V& S, D7 @& S - ;; Function to set the Color text tile and swab to the current color value.
* u: @- H8 a( W: X4 e! x( I - ;;/ n4 I: e9 X$ j* D Z
- (defun set_col_tile()
2 I+ k6 |% W* k0 B, _1 }& C - (cond
% B7 s( b' |% U* @ - ((= ecolor nil)
* z% @/ W, @& d ~ G! V2 |( i - (set_tile "t_color" "Varies"): v& C1 S2 g8 b
- (col_tile "show_image" 0 nil)9 d1 M0 y7 \ w: m
- )
% A Q+ x( V6 V4 Z5 t - ((= ecolor 0)
* ]5 D2 h% O- A% Y - (set_tile "t_color" "BYBLOCK")
7 o8 S; b) h/ D% H0 \8 _0 N - (col_tile "show_image" 0 nil)
, M7 Z: W4 K. y+ g - ); b/ k. x/ q' d0 {0 D
- ((= ecolor 1)& @( f R( \+ K4 l7 G
- (set_tile "t_color" "1 red")
/ {, V2 {* H+ P0 t6 I - (col_tile "show_image" 1 nil)
) m# f9 _$ _( z0 V: ? - ). q8 L$ A* {7 g% g
- ((= ecolor 2)
1 [" i0 l/ X& ^; c* |% i& K5 w - (set_tile "t_color" "2 yellow")
2 z# P; C$ b) m) J8 @7 t% H5 X - (col_tile "show_image" 2 nil)% Q# @, V, O! E9 x8 I# L
- )0 {2 N/ V* E4 o5 O
- ((= ecolor 3), h7 j& w/ g& A: o# x; F
- (set_tile "t_color" "3 green")
6 l D4 M- S7 l9 K) B s7 d* J - (col_tile "show_image" 3 nil)0 L$ f4 j0 B; J6 |
- )
2 ?6 y5 F4 A3 A" {3 K* ~9 { - ((= ecolor 4)2 r7 V" R5 O# T. k
- (set_tile "t_color" "4 cyan")
+ v% i! Y6 S: W W: q* h - (col_tile "show_image" 4 nil)
. f7 \. H, \! X$ X8 s5 J - )
, e ^" l; H: T7 E' y - ((= ecolor 5)6 y0 |9 Y; T+ o
- (set_tile "t_color" "5 blue")
* X x3 {' w) t: f/ S6 J - (col_tile "show_image" 5 nil)9 I& D/ k) ?4 S6 E, _% W7 R. G
- ), F" e" W2 @- |" B e) Y
- ((= ecolor 6)7 A8 Z! t5 N3 O
- (set_tile "t_color" "6 magenta")
) q" v" X L! \7 M - (col_tile "show_image" 6 nil)
0 X( t! E# v" P5 z - )
! h% H$ {4 l/ T - ((= ecolor 7)
8 T' Q. Y9 @ u: m6 R: f: I* ` - (set_tile "t_color" "7 white")4 z; k- W$ Q; Z% e; ]
- (col_tile "show_image" 7 nil). ^; ~1 r5 F! q2 b9 n! X
- )4 O" B- R! N) O6 O
- ;; If the color is "BYLAYER", then set the tile to7 i; J7 a2 t0 l5 E; h1 v, [
- ;; show it's set By layer, but also indicate the
" ]/ M$ v9 S0 K5 c* T - ;; color of the layer - i.e. By layer (red)
2 c ]/ b" R' S B* Q8 t - ((= ecolor 256)
* Z8 y& v8 k% x% m - (set_tile "t_color" (bylayer_col))* g: W; T E8 ]; G1 w4 _
- (col_tile "show_image" cn nil)
" d6 E0 ?8 z$ S( O' c# o$ V3 z - )
' g% |2 X; e- T/ E - (T 9 v$ |8 ~# @" G6 a* J! a* r
- (set_tile "t_color" (itoa ecolor))
# R+ A' O8 K7 s9 E - (col_tile "show_image" ecolor nil). C; G$ r3 I& K& |/ _
- ). E3 s$ a' V2 }7 i4 T* r0 k
- )$ V; w" v: m/ ?7 f& x4 M
- )
& r% m2 m$ g* y- }$ @# x6 n - ;;
8 X* o$ \" F0 Q8 Q, z. I7 F( t3 g - ;; Function to put up the standard color dialogue.0 r; E+ {9 ?1 a, R# F' O
- ;;
; _) {/ k6 _, {6 P" u% H0 d2 k - (defun getcolor(/ col_def lay_clr temp_color)
, M2 ^+ a2 N9 o" g* T - ;; col_def is the default color used when rq_color is called. If ecolor
2 S+ l) e& K: U5 y - ;; is nil (varies) then set it to 1, else use the value of ecolor.
m" M2 u5 Y" k" c! C5 k- w - (if ecolor4 j, |8 ~ z& C% J/ w3 |
- (setq col_def ecolor)
% {/ L% r6 k2 x - (setq col_def 1)4 j9 f; \, W3 @' Z& g4 e: _0 _
- )
3 }) \1 N# r$ P - 1 r/ j2 E4 R4 F2 P8 z1 H: q
- ;; If we're working with a single layer, get its color
0 p# C# y9 j/ ?3 \6 a4 b( G5 a - ;; for use in the color swatch if the user selects color BYLAYER.4 }) \4 |7 c* y7 F4 y
- (if (/= elayer "Varies")
% L& q- [9 B/ K2 u - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
& s2 z$ [2 }0 }. ^4 l" D - (setq lay_clr 0)
- Q, I; ^, m/ S4 s% G# J- r - )% R9 @& X# d+ D+ }( E: ~
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))" I& X6 n& F4 z0 { [
- (progn
7 L& D: |( e t+ I" v/ u+ h - (setq ecolor temp_color)( ]! f" j) L4 g
- (set_col_tile)
9 B" P; J% A, X! J. _8 ~4 x0 a9 e - ecolor2 P; e( m& ] w) r5 p% N) Y% j" D( A" `
- )/ _8 w2 T V8 Q! T) a& l% g: I
- ecolor
" F( @* ]% P6 C; m3 ^ - ) / Q8 x( b" s5 Z' d7 B
- )) C, x6 p/ H$ Z) ?: K3 \3 ^1 W
- ;;9 P% X6 G% e: P
- ;; This function pops a dialogue box consisting of a list box, image tile,
" Q7 o @- C6 M3 ] - ;; and edit box to allow the user to select or type a linetype. It returns 6 L: S% D& x+ G q
- ;; the linetype selected.1 _ g- ~4 ^0 z; I" r) A/ O
- ;;0 {' C/ C: W- F6 T3 z) r
- (defun getltype (/ old-idx ltname)" _: {) R8 ]; P' f, [1 c1 z
- ;; Initialize a dialogue from dialogue file
5 T1 A) G6 W3 W) C) r' q - (if (not (new_dialog "setltype" dcl_id)) (exit))
/ h, h6 @, [9 v7 K0 g% ] - (start_list "list_lt")9 a- t+ j. `* h; y
- (mapcar 'add_list ltnmlst) ; initialize list box
* g& j0 o Q7 f1 Y - (end_list) C$ K% D: d8 A2 r
- (setq old-idx lt-idx)
4 [" I( _4 m3 C; I' ^ - ;; Show initial ltype in image tile, list box, and edit box; w2 q) N2 n- X! L
- (if (/= lt-idx nil)% A0 p, v+ s. E7 H5 ~8 c3 k
- (ltlist_act (itoa lt-idx))+ j1 ~4 x9 k& @ i- x- b
- (progn" k: V( O+ O {0 V4 Q
- (set_tile "edit_lt" "Varies")0 i( {/ Y; _% J1 C0 I# n
- (col_tile "show_image" 0 nil)2 R- b6 M) ?% J, I# g" f6 X3 }
- )7 v V- j6 b; @% Z& b- J
- )6 l6 Z. \4 [, ]) E5 x
- (action_tile "list_lt" "(ltlist_act $value)")
' o! o' ^- S0 A. Y! g% H - (action_tile "edit_lt" "(ltedit_act $value)"); i( u) o( S: Q2 X& _
- (action_tile "accept" "(test-ok)")
4 B2 s, z, d1 B8 h: f# g& A - (action_tile "cancel" "(reset-lt)")9 P9 j8 ?: u3 t- I/ i5 M* U
- (if (= (start_dialog) 1) ; User pressed OK/ v3 }* C0 h& }" f
- (cond
6 i/ D5 M3 g7 t. d! q3 b - ((= lt-idx nil)/ T4 z4 q3 F1 f
- (set_tile "t_ltype" "Varies")8 O a7 v; g9 [+ g
- "Varies"
1 m7 k' Q* F/ [6 L9 l( { - )
- H1 j" A3 s8 S& V/ T - ((= lt-idx 0)
: A5 G/ ?+ r' \# k- g, P - (set_tile "t_ltype" (bylayer_lt)), i. r" M5 w) ~9 i: v
- "BYLAYER", f) p1 m" b* v# Z; Q0 J
- )9 y3 Z0 m T' M. d1 h/ Q
- ((= lt-idx 1)4 e% V% V: M: @5 I
- (set_tile "t_ltype" "BYBLOCK")' T+ @) t* @2 u' d0 [% ^
- "BYBLOCK"
+ `/ D. L4 w6 K/ Y Y - )6 p8 K* p8 g9 n3 S4 L' u
- (T
, l( M4 [& R9 c8 v, s: {4 A - (set_tile "t_ltype" ltname)
, ^ Y, p- ?) \) O# H& Z3 v: J' B5 Y, q - ltname
9 \/ N' `: e) w - )1 `" `6 i3 X) m2 Y) t
- )0 Q% O# Z i3 F3 G( a' ~! X3 |
- eltype+ `- o' @3 D* R/ x# p0 ?6 `
- )
2 }- ^( ^8 \& c& l* T [; | - )8 i0 A0 \( R4 ~5 ?7 p5 J
- ;;
. M# C* C! F- |$ e( a3 z - ;; Edit box entries end up here5 x9 A6 I2 I% P" p2 Z
- ;;( i) t+ O8 J- G7 s+ C: o3 m
- (defun ltedit_act (ltvalue)- l e* q& f2 N9 B2 Q7 x
- ;; If linetype name,is valid, then clear error string,
/ \, P7 M r3 U1 z" q3 D - ;; call ltlist_act function, and change focus to list box.2 Y0 c4 j3 L& V/ g! {
- ;; Else print error message.' m S/ n! H5 Q/ @
- (setq ltvalue (strcase ltvalue))
& ~3 {) {! s! [9 l$ b" ?- [5 n - (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))
' a" U0 J( j: w! \! S {1 W& y- g - (setq ltvalue "BYLAYER")
& f& o6 m7 l! J3 ] G - ), z: |8 C' W2 z4 `: T9 d
- (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))7 ~. e" [2 l2 X$ o; t/ v/ ~
- (setq ltvalue "BYBLOCK")# h- c7 {6 Y1 j' g
- )
: q$ v0 J" k0 y( D) U# U - (if (setq lt-idx (getindex ltvalue ltnmlst))
! h; Z1 [3 q) N, d, n; t - (progn
2 V% k G6 Z$ `/ h3 j6 h6 ? - (set_tile "error" "")0 h. Q9 N5 S$ l. `
- (ltlist_act (itoa lt-idx))2 |7 f. w6 z% E+ A
- (mode_tile "list_lt" 2)
' e1 r7 i4 `* M* ]' Y4 W0 U - )& |" U8 D$ ]7 q5 o; a' g
- (progn! ^& j% Z6 x! j2 n6 D
- (if (/= ltvalue "VARIES")
9 c2 |/ l# H+ L1 f, ^6 V9 }/ g - (set_tile "error" "Invalid linetype.")
" _ p1 ~# d* `. M! \ - )* ]+ O+ h0 c9 U& v) l1 l
- (setq lt-idx old-idx)
2 T# e7 b7 v: F" B3 K - ) 0 Y9 O& Z2 B) c
- )
. N0 i6 q& _; ` f - )9 S1 G# |# |8 _
- ;;
) E. d1 _* T6 c) a% t - ;; List selections end up here
6 F1 X6 y! ]( p( \ - ;;. `! D( n9 A" {4 v( ?6 D
- (defun ltlist_act (index / dashdata)6 e. W. j4 K5 K1 z0 V' b
- ;; Update the list box, edit box, and color tile
c+ b3 m5 @; Y8 a# _ - (set_tile "error" "")
8 G' I: V! _8 F2 F' ^! \- L8 b - (setq lt-idx (atoi index))
: [0 c& C. E1 G5 h - (setq ltname (nth lt-idx ltnmlst))8 j; r1 z0 ]. c; v
- (setq dashdata (nth lt-idx mdashlist))
h- x5 l5 o5 { - (col_tile "show_image" 0 dashdata)
6 I7 T( w- |: j1 l! h. T - (set_tile "list_lt" (itoa lt-idx))
0 R+ N7 C) y ^% w: _ - (set_tile "edit_lt" ltname)* a( s6 l( e& Z1 i1 @0 I
- )
; ~7 T& j5 c, n' S3 V) W) e" O8 J) [ - ;;
: w; @# X* y$ E6 U* V& O p - ;; Reset to original linetype when cancel it selected
1 x2 w$ H* S- U - ;;, e7 ?: |# _& X# g! b
- (defun reset-lt ()
, h- |- q$ j) Q$ L - (setq lt-idx old-idx)) G" b; s) n2 r a+ t
- (done_dialog 0) K/ o" s" @( L: j
- )
" R9 F1 E3 O" \& F - ;;
9 K# i" \ D' Y& T - ;; This function pops a dialogue box consisting of a list box and edit box to ! p! ?% |. v; K& n; }3 t2 K6 s
- ;; allow the user to select or type a layer name. It returns the layer name
' [$ V! ~: e, @! x! E" }/ m: }( r - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the % X9 W8 T7 I4 W9 M7 u3 M
- ;; drawing.+ q: K& J1 M T3 T: W: A0 \
- ;;
- S0 Z2 z* g6 O* [) O$ y# T. N - (defun getlayer (/ old-idx layname on off frozth linetype colname)
" ], u; r# ?9 o6 d( H - ;; Load a dialogue from dialogue file
) y# i ~8 E. h0 X - (if (not (new_dialog "setlayer" dcl_id)) (exit))
' j3 p* n5 Z/ p - (start_list "list_lay")' w% _+ V2 ?3 D. t$ X5 }
- (mapcar 'add_list longlist) ; initialize list box& a3 D( K* U' [4 D K0 b
- (end_list)7 Z0 g) w+ ]4 R. f4 l; O% X- T
- ;; Display current layer, show initial layer name in edit $ l) y7 k% _/ U( ^
- ;; box, and highlight list box.
6 X7 B( |! H1 r2 U W - (setq old-idx lay-idx): d& g) i4 _& Z* m- C. J
- (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
' `6 p, q, p C" r3 X1 P; t2 ? - (set_tile "cur_layer" (getvar "clayer"))
' h t4 r" B. [ - (action_tile "list_lay" "(laylist_act $value)")5 w! U9 N+ @6 S8 J8 W
- (action_tile "edit_lay" "(layedit_act $value)")! J# L- l8 L. Y$ R* z" R5 y1 O1 T
- (action_tile "accept" "(test-ok)")9 {: H L* ^( z& I# B5 {
- (action_tile "cancel" "(reset-lay)")
- c+ V1 R# v4 |0 h3 r5 ` - (if (= (start_dialog) 1) ; User pressed OK- q# T4 c0 f0 ^' J% }2 U. Y+ ?4 ]
- (progn
# j5 l/ p6 |/ b5 K0 |4 A) Q- J - (if (= lay-idx nil) (setq layname "Varies"))
0 }+ D1 v6 F3 T# m - (set_tile "t_layer" layname)
+ a7 k, c7 f. [$ U# ?* z - ; If layer or ltype equals bylayer reset their tiles6 z; `$ B( k6 e$ Y0 h
- (if (= lt-idx 0)
/ j$ ~" B4 R O- N" i - (set_tile "t_ltype" (bylayer_lt))6 f) Z% \" `2 {) w9 r" Q- x8 W
- )
6 V* }- z: `& y' [% L& J - (if (= ecolor 256)
6 F: B/ V2 ~9 B6 I1 X. h4 f; J - (progn/ g, m% D4 ^; T* q# M
- (set_tile "t_color" (bylayer_col))% w: ?$ n, [1 G5 @1 S
- (col_tile "show_image" cn nil)
- I# S( a! H5 R - )
% R: B0 H/ u) I0 e& Z1 c - )/ ? o! O* ~& i6 _
- layname: C: [4 h" f* l/ q
- )
& ^ x; h% F) [7 g - elayer" |/ P) U% Y# S/ r* [* g# D
- )! r8 u6 s J) |2 S l: a
- )
0 E m0 z0 m- J4 a; v - ;;0 `: ] t5 I( p4 P% g, g
- ;; Edit box selections end up here
; C" V M* ]9 V' I - ;;8 `$ `1 g3 x* |8 a6 Z2 [
- (defun layedit_act (layvalue); L& v8 b; b( d% ^& s
- ;; Convert layer entry to upper case. If layer name is
# }+ x8 n2 S# U, A+ f6 l - ;; valid, clear error string, call (laylist_act) function,
( t+ X$ L8 p- k; b6 \2 O - ;; and change focus to list box. Else print error message. R8 K4 Q2 m9 i! `/ F, @
- (setq layvalue (strcase layvalue))7 s, b' L3 |5 c% W6 ?% ?1 ?
- (if (setq lay-idx (getindex layvalue laynmlst))5 J' L$ G2 A) u. l- K7 t8 L
- (progn
- k; K" _' [8 c3 O" z1 o - (set_tile "error" "")8 b; h" m$ H) Z9 r% D8 u
- (laylist_act (itoa lay-idx))
) Z) I. A( F' c1 U" l6 w+ ? - )7 p) S3 c4 I& T% Z4 I) p
- (progn8 N6 [ c: r. m8 k- x
- (set_tile "error" "Invalid layer name.")
4 G6 y0 l; ^6 l - (setq lay-idx old-idx)
- a* W* f+ s4 i: ?. ^1 [ - )7 |. T1 Z, [+ {) F3 e" R6 e
- )
; i k) D6 S9 v* M3 t - )$ [6 u" _2 T/ [. u
- ;;9 Z; o- S4 m9 b- t( f9 h- \ p0 P, m+ y
- ;; List entry selections end up here
& e7 M/ N0 d$ o3 O8 I, V - ;;
. x1 a2 k2 X9 Y' L! | - (defun laylist_act (index / layinfo color dashdata): o: t; }( v( L" A2 u6 ^* ]
- ;; Update the list box, edit box, and color tile
7 h b1 ^2 j n: Q% ?7 g8 p9 B( W6 t - (set_tile "error" "")
" D8 T1 J$ K7 C7 M+ } - (setq lay-idx (atoi index))
4 S+ A- y& Z+ z( R - (setq layname (nth lay-idx laynmlst))$ D) S. J( C1 w* X
- (setq layinfo (tblsearch "layer" layname))* a& P6 @% B# l
- (if (= (logand (cdr (assoc 70 layinfo)) 4) 4)7 |$ B' C; q' d" B }
- (set_tile "error" "Cannot change entity to locked layer.")
3 X5 C3 R8 R5 {0 h$ k5 f" X - (progn
& d1 Y5 R% f3 |6 y - (setq color (cdr (assoc 62 layinfo)))
5 b! o* M/ [/ i( d - (setq color (abs color))
! ~9 Q H9 p/ C( e5 Q - (setq colname (colorname color))
; o- @& e9 T* Z6 _+ U: R# M( C - (set_tile "list_lay" (itoa lay-idx))6 z; e% n/ U I2 h. k6 d3 Z
- (set_tile "edit_lay" layname)0 `0 }- Z/ H. [2 c X' P& B
- (mode_tile "list_lay" 2)8 J9 F7 S5 J) c* x- ]6 D4 W/ j, A
- )( ?. R/ v6 I: v9 r8 Q" v
- ) U0 J& b3 w G
- )
) g8 O$ s3 j [: G+ m! a5 O - ;;$ e3 ~( v) ~6 y1 E- @, H
- ;; Reset to original layer when cancel is selected! S7 ^0 j# X" }$ R) p+ x) c
- ;;3 Y" \) Y! a& G% u' k3 ]4 P
- (defun reset-lay ()& j3 M3 Y9 W* v
- (setq lay-idx old-idx)
~! T h( C6 c9 ^7 P, r - (done_dialog 0)- \& T! P4 ^7 Q, Z O* P) J
- )3 u( t# C! e0 }
- ;;2 S+ C+ K4 C4 e+ m5 p7 A
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
+ K+ ~" M+ k1 o/ c6 t' o. o. O - ;; string can't be converted to a real, this routine checks if the first * m* f- N2 k! `+ e1 U
- ;; character is "0". It also checks to see if the value equals "Varies"./ g8 |( F. C$ s b t
- ;;* R; m" l3 |/ O1 R. d& p2 v- }& v
- (defun getthickness (value)
/ x! w5 r& T& G - (setq value (strcase value))
& C# ^5 h& y2 G1 G8 j7 J. r8 e - (if (or (= value "VARIES")9 N3 Z; \8 @5 A1 V( N f5 u1 q" {# H
- (distof value)
9 b* D# ^' ^' @6 ^7 J - )
6 a' J1 q# H; C0 H& S1 V - (progn, b9 m9 `% o' E) V
- (set_tile "error" "")
( _+ G \' v% c6 c - (if (= value "VARIES")
9 K* H. e+ K1 w; U7 I7 c9 C - (progn
. R% s5 f$ U9 z; c& L3 M - (set_tile "eb_thickness" "Varies")
! }* u8 W6 \0 M - (setq ethickness nil)
" m5 o5 o9 e6 V" F( B - )
; p; O- p4 u2 m- D6 p- v6 o - (progn; Q ? C" }! a
- (setq ethickness (distof value))" C% X1 m- Z; e/ e
- (set_tile "eb_thickness" (rtos ethickness))
j; h( G. `/ n/ a - ethickness
1 t, g, F8 e5 B% G" h& V - )
9 b5 Q' K5 N" _4 `0 u8 v5 [6 q - )
7 C% Z2 _3 m" L5 D+ Y - ): Y/ Q! X; z7 `# c F- @0 p
- (progn. g/ B+ \" E4 q3 X3 `* M* X
- (set_tile "error" "Invalid thickness.")
' n- y* E+ k+ u* A' n - nil8 x5 r$ q3 w, t3 w* A! @4 d1 ?
- )
. m+ v) [. W7 j) U4 M. A4 | o - )
( z9 I; w+ r5 a - )
# s+ V+ L( l' E4 w, L a - ;;
* g( ?4 v3 D3 C7 g: {8 l/ a - ;; This function make a list called laynmlst which consists of all the layer : b5 b4 D( i/ {$ E8 i! W% a5 Z
- ;; names in the drawing. It also creates a list called longlist which 2 i- ^; g9 F! K7 {5 P/ v
- ;; consists of strings which contain the layer name, color, linetype, etc.
: H- X8 w5 d. X" l9 d - ;; Longlist is later mapped into the layer listbox. Both are ordered the 8 g& A' [3 D' C& U& e
- ;; same.
1 u3 A/ y& W+ ]3 ? - ;;
0 P m8 n/ r }+ x( N+ U - (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname
' r* {1 ]" n8 w3 \8 P - xdlist vpldata sortlist name templist bit-70
6 {* X; [$ Q: @' y/ o; ~- n - )# ?) l/ N" @" q
- (if (= (setq tilemode (getvar "tilemode")) 0)6 x6 q) A) \! X
- (progn b) E$ M+ _, U& L5 L: K
- (setq ss (ssget "x" (list (cons 0 "VIEWPORT")
" v1 y( g0 W' O' v: ~& M7 U0 p - (cons 69 (getvar "CVPORT"))
" P2 i1 I; f4 L - )
; g- L. Y2 x m) g) ]- o - )
6 X# S, p! R+ d3 D( D; e% _ - ) ; Q$ V+ m( c4 c( m m* T
- (setq cvpname (ssname ss 0))
" V4 K L' H) x# q# Z+ y$ E, S, c - (setq xdlist (assoc -3 (entget cvpname '("acad"))))
' v/ A$ }* ~% v. c, T$ H - (setq vpldata (cdadr xdlist))
( m8 w h6 n4 c8 V! e& s& ^* o - )
, h, r! z0 K4 T9 z' r - )- e% D/ S7 z3 z% f
- (setq sortlist nil)
2 G# |* P& n1 l! q - (setq templist (tblnext "LAYER" T))4 g$ F; }# p; E/ Y. |: X: v" g
- (while templist$ N5 t& P$ e* J! l7 b! h/ n+ t
- (setq name (cdr (assoc 2 templist)))1 V7 G8 h4 E7 y
- (setq sortlist (cons name sortlist))
! A3 `5 e1 V: T+ L5 g/ K# ?1 G - (setq templist (tblnext "LAYER")): [$ L2 j$ T" b" D9 l
- )
^. z+ Z' w3 C- c# s- ]3 V - (if (>= (getvar "maxsort") (length sortlist))
& S3 F, q, D; K- A& a" G - (setq sortlist (acad_strlsort sortlist))
$ I5 M% K( x" s1 a& J - (setq sortlist (reverse sortlist))8 z) @0 K! @. Q) K# ?
- )
' ]0 J1 N0 F" D0 [" p - (setq laynmlst sortlist): `0 |& j( a1 ~. D1 l
- (setq longlist nil)
" V. [# S; ^/ q3 L1 {! w - (setq layname (car sortlist))
- s2 J3 S" ]' a0 H' E - (while layname
& C/ t2 Y+ t3 y- z: s# Y - (setq laylist (tblsearch "LAYER" layname))! U) P% [% d p' [
- (setq color (cdr (assoc 62 laylist)))+ H* Y1 G7 o/ b8 ]6 G, C
- (if (minusp color)
1 M* ]3 B) X% w - (setq onoff ".")
3 B3 ]% g5 ?, O - (setq onoff "On")/ } W# i, a6 ?- W/ T2 G
- )! X2 W" ?+ O* A, ]& u S8 o& Z
- (setq color (abs color))% X6 T6 X4 ]6 C" d. C/ U
- (setq colname (colorname color))2 E- L' T: ~8 M/ j7 } B
- (setq bit-70 (cdr (assoc 70 laylist)))4 B. J! F9 Y" _' h, d) Y+ \
- (if (= (logand bit-70 1) 1)
1 P3 n6 ^0 p' j - (setq frozth "F" fchk laylist)
7 A" w# i& B# L9 z1 w - (setq frozth ".") B+ W2 I" @4 K8 L% I8 I+ C1 p
- )
3 X6 [9 S1 u- g5 u7 e - (if (= (logand bit-70 2) 2)$ J. w( R3 o, c T5 h
- (setq vpn "N")0 D6 ?' K# Z0 K0 d7 Z' \
- (setq vpn ".")
/ ]. L- Y9 I8 A# F$ D - )1 E% o' M- D2 e* [
- (if (= (logand bit-70 4) 4)) P" L! Q1 q$ Q# ]; ~! t
- (setq lock "L")
) A7 U& C' H" F - (setq lock ".")
7 | t6 w+ B; U2 C2 ]( p2 c/ Q - )& u$ a& B' J# F _+ }9 ]1 x
- (setq linetype (cdr (assoc 6 laylist)))8 r0 o m+ A' p# K# \1 G' @( B
- (setq layname (substr layname 1 31))" `" H! F3 K$ z
- (if (= tilemode 0)& E& T% |$ M! q2 \' g
- (progn
- ?* u: G, [# R" {7 f - (if (member (cons 1003 layname) vpldata)/ b" L* e$ H- L$ _ V, K
- (setq vpf "C")) A3 A" x6 O, {/ `/ M' J
- (setq vpf ".")
! z' L* k# p2 o+ q s: S% h - )/ z% `0 F4 p6 _# k3 G
- )
+ n, u- G% k: d! Q$ q& ~ K u# j - (setq vpf ".")2 z# @4 y1 w$ u: D+ I
- )
P- x$ e; _4 H" I# B! B - (setq ltabstr (strcat layname "\t"
& O" o! w) l* F) [ - onoff "\t"
1 D8 r3 G- X; ]$ C0 V9 s& V8 r - frozth "\t" c9 c% ^* _4 ~/ f1 h1 q% z% G
- lock "\t"9 A4 M2 O7 x. f- l9 L# R
- vpf "\t"
/ I" T) }, w. v( g- f- u - vpn "\t"
8 q2 B# e% G$ i- d3 g1 ^4 C - colname "\t"4 b; v& y; K2 C, T( q5 r' s
- linetype
/ U/ y8 O* {. G) g, b" u! x - )7 g& i% k, C' ]% d
- )- |) b$ m6 W7 f( x4 [
- (setq longlist (append longlist (list ltabstr)))
/ P l8 M9 o* t* W6 k - (setq sortlist (cdr sortlist)), _4 ?3 {, P W' r8 S3 w. X
- (setq layname (car sortlist))
' ]# B( b3 }6 p) x0 S- ]; C( O# p - )0 L( c" w% [1 A- W
- )
/ T5 x1 f3 n! U9 ]9 A - ;;
, T% V6 m7 G! Z+ \, u$ d - ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
0 [ c# H8 @; b7 z8 [ - ;; linetype names read from the symbol table. Mdashlist is list consisting
2 w, H* s8 R3 ? Z9 R. u7 Y. Q - ;; of lists which define the linetype pattern - numbers that indicate dots, ( H" u b& Y. d2 O7 F9 V
- ;; dashes, and spaces taken from group code 49. The list corresponds to the : c8 d! y5 Q' C- Y; z
- ;; order of names in ltnmlst.
$ o4 `* e2 }+ h: B8 b. r - ;;% {7 s$ D9 r F: _) x; s* R# M
- (defun makeltlists (/ ltlist ltname)
. a$ @/ q( q" Q# `; ~+ ]6 \4 T - (setq mdashlist nil)
: D; k2 `; [- I# L6 n% I - (setq ltlist (tblnext "LTYPE" T))
; h; B* k; @7 {( n7 ^6 Y- @ - (setq ltname (cdr (assoc 2 ltlist)))
) h' b1 `1 P v) Z/ s - (setq ltnmlst (list ltname)); X7 `' ?3 B' a) C
; R4 {3 ^$ L" U6 v- (if (= ltname "CONTINUOUS")% X" q' z6 {4 O" r- F# @# ?
- (setq mdashlist (list "CONT"))
0 [4 s7 m: W- [4 P - (setq mdashlist
& C, N+ y1 F+ _' u - (append mdashlist (list (add-mdash ltlist)))
" B0 V, }6 N/ b9 W: v - )! C# a3 z. l4 F3 U* W6 c8 _' ]
- )
3 t3 O0 o. u$ }" e4 O- x - (while (setq ltlist (tblnext "LTYPE"))9 W, F: P! G9 K, K' M
- (setq ltname (cdr (assoc 2 ltlist)))
" h2 U0 `5 _5 [+ A; |, u: C! l, b - (setq ltnmlst (append ltnmlst (list ltname)))/ c& A, d" \1 p& G8 K1 _# Z
- (setq mdashlist 4 |8 J1 N6 o0 u
- (append mdashlist (list (add-mdash ltlist)))
; O6 z( ]8 _! P! P: }7 o - )5 |* L% i- m+ P
- )
: t/ }6 r/ W4 L0 [7 w3 L6 ` - (setq ltnmlst (cons "BYBLOCK" ltnmlst))
+ {6 W. A* U( P1 k) h3 R% M' _9 l - (setq mdashlist (cons nil mdashlist))
: w( H9 h7 p4 X) F3 ^7 S - (setq ltnmlst (cons "BYLAYER" ltnmlst))
5 m. X5 X- V! @2 p$ y9 h i; _ { - (setq mdashlist (cons nil mdashlist))3 t+ `" o7 e' O( d4 Y( x! S
- ) b5 ?1 G ?8 c! z0 V
- ;;
0 o/ W* T' } m( h9 Y% t - ;; Get all the group code 49 values for a linetype and put them in a list " ?1 a3 X0 R" U; `
- ;; (pen-up, pen-down info)/ m" {, F5 k( }2 p, D; f/ C
- ;;
9 B Y* a( z# A8 }3 { - (defun add-mdash (ltlist1 / dashlist assoclist dashsize)4 C4 d5 _8 C1 P0 M# [
- (setq dashlist nil) `8 E5 R( O( }# H
- (while (setq assoclist (car ltlist1))& i$ U4 J1 V' j2 W
- (if (= (car assoclist) 49)* n; l& T6 f1 i
- (progn, ?5 D! a1 i v0 y1 y- D
- (setq dashsize (cdr assoclist))
% @! @/ B/ v! x# C - (setq dashlist (cons dashsize dashlist))
. j& [" K. o4 Q3 ~; W) t# B - )
4 O& N5 n t; T - ): M8 q. U/ R/ @
- (setq ltlist1 (cdr ltlist1))
! K- W& K8 w1 p - )
4 q! Z, \1 e! U' t) u - (setq dashlist (reverse dashlist))
2 d, l3 r4 F* S% i: @* t' i - )/ \# u' x) I* p( p5 E% P& G
- ;;$ k) w6 d" _; S8 @) S
- ;; Color a tile, draw linetype, and draw a border around it k! y j! D( J3 v
- ;;+ B4 {* t1 F' b+ A# i8 E5 Y
- (defun col_tile (tile color patlist / x y)* C2 {1 x2 |- Q8 z. |5 v
- (setq x (dimx_tile tile))
) m) H- T* v1 w, s - (setq y (dimy_tile tile))' L7 \) \0 H9 u } q& L- J: S8 J& v A
- (start_image tile)
1 `1 o3 |6 y7 ?6 { - (fill_image 0 0 x y color)- f4 B; A) t2 w$ q8 F
- (if (= color 7)
6 i3 [, ^' L' w0 G/ [# H% f. U7 ~ - (progn5 s) t' q+ e+ W; c: J
- (if patlist (drawpattern x (/ y 2) patlist 0))* F$ T5 @8 m# L, e3 J) s& i b
- (tile_rect 0 0 x y 0)! n" y, V" @9 F5 r3 L
- )
2 i! N( a* t4 `) S7 j - (progn
2 |! I* p) _6 r ^2 i6 m - (if patlist (drawpattern x (/ y 2) patlist 7))
: F/ K) g# a$ |5 } H - (tile_rect 0 0 x y 7)
3 |& ]8 i* N: |# D8 S% {4 ] - )
# O2 j: `# s1 j* | - )
) x7 p; W. |/ T5 n - (end_image)7 ?' u& D4 B4 `" w
- )8 z. R- q" x! R$ C$ v s4 d
- ;;
0 ~. o0 y/ X4 J - ;; Draw a border around a tile
; b" u& K7 K W0 d4 [ - ;;
" H1 g, ^$ E$ M/ d$ o - (defun tile_rect (x1 y1 x2 y2 color)- C# z8 g; `9 N" b) G7 }- I
- (setq x2 (- x2 1))
% @1 [' y2 L. l$ d6 J - (setq y2 (- y2 1))3 {7 a3 c! U1 O! b+ m
- (vector_image x1 y1 x2 y1 color)
0 I J, h7 K" a# k y - (vector_image x2 y1 x2 y2 color)
% [2 a+ u" Y, E - (vector_image x2 y2 x1 y2 color)
o: k7 n0 x) w - (vector_image x1 y2 x1 y1 color)
: C. `7 ~$ m/ T2 u' q; b" Q - )
+ G) N; z4 |" n/ P - ;;
) ~! H4 n% H. ~; K# H1 S6 z - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
! r- }- M6 g/ ~* [ ] - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
. q6 _* B, K+ F, r7 b" p - ;; list of numbers that define the linetype, and color is the color of the " E6 U/ {6 o1 \. X2 \8 R
- ;; tile.+ _. p6 A2 H5 p' g1 G" j
- ;;6 I4 e7 k' B/ A+ Q
- (defun drawpattern (boxlength y2 pattern color / x1 x2
7 o! B$ m2 ]% j1 f - patlist dash)) h; G, D4 A, A9 W* h+ M" X
- (setq x1 0 x2 0)
9 C; J0 G9 }5 `/ [* B - (setq patlist pattern)
1 c; S; n0 K2 c - (if (= patlist "CONT")$ @+ F' ~8 N1 \" d/ s
- (progn , m! z8 \! ^: ~& C/ j
- (setq dash boxlength)
+ ?; } E3 a, ?5 ]$ R: o& x { - (vi)
$ n4 P' U$ y) x+ o1 c& O - (setq x1 boxlength)
! P. D! O4 `, H, x7 Y, Z - )
s+ r9 e+ n7 j& Q8 Z - )
3 b5 D4 @- A1 D/ E) D, Y - (while (< x1 boxlength)
; r3 h! u+ Q7 \, ?- _ - (if (setq dash (car patlist)); k% |, O) `" S) m; ~9 R% r3 i
- (progn! g8 b. ?6 S8 Q& |( s' n* P0 D0 v8 G9 }
- (setq dash (fix (* 30 dash)))
7 q1 v, F3 T. P/ N n1 U0 {" V D - (cond
- @3 B7 X6 X$ F+ Q - ((= dash 0) . R/ C+ ^; Z, K' l1 h+ A: s) l
- (setq dash 1) % B7 A2 U8 H; @3 r
- (vi)7 o6 S7 ^, F* v7 v6 K3 R
- )6 `1 ]' F6 ]3 d, E
- ((> dash 0)
+ `/ y0 Z- T h. r4 o# ~0 ~ - (vi)1 g4 z0 A5 v4 {0 [
- ), j% x% g' _! T- H6 v& S
- (T ; J( H/ z2 J# ?
- (if (< (abs dash) 2) (setq dash 2))
S' @2 E0 k9 g - (setq x2 (+ x2 (abs dash)))
0 B/ h; ~, T8 W4 m# T! J - )0 E2 W9 s5 Q: e. R
- )7 N4 o. m9 y& s+ k8 O
- (setq patlist (cdr patlist))
) B4 h# Y: u% a9 Q# U" H8 S, u - (setq x1 x2)8 C% F: ?7 c: i; N1 B. \
- )
. n$ V, [- c+ V( |; W - (setq patlist pattern)4 `4 z5 a$ R& ^- {! A5 [; y
- )
1 Y1 \9 k7 p6 o - )# ~: u/ b! @3 D6 l8 t! k
- )
2 R6 ^; p6 T0 @# q - ;;
) y3 p/ {5 c* ^9 p - ;; Draw a dash or dot in image tile
* k; A) ]! ^" m" ~ - ;;
8 Q: A, @/ |. ?& ^2 s. } - (defun vi ()5 m- y! _& Q/ o) _0 Q" G5 n0 o8 c
- (setq x2 (+ x2 dash))6 O/ V. v7 n P* w2 O
- (vector_image x1 y2 x2 y2 color)) t7 b; f. c( g/ H
- )
% _: v" M3 F5 `) v& z$ w, `: U - ;;" N6 B, c' \, F: @- P
- ;; This function takes a selection and returns a list of the color, linetype, 6 i1 @) |. [' h7 j7 e, i7 ]' u
- ;; layer, and thickness properties that are common to every entities in the# k0 M2 f; I" a6 J
- ;; selection set - (color linetype layer thickness). If all entities do not
2 T/ ~; F( d, D5 |; J2 ?2 t - ;; share the same property value it returns "Varies" in place of the
- D S: }7 H, p% b( Q; K, n - ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
* z5 A/ w8 g$ i - ;;+ B$ P$ @7 V2 T+ c+ W( o* e
- (defun getprops (selset / sslen elist color ltype layer7 D; l1 c: _# `3 g w3 Q% ~1 |. _8 P
- thickness go chk-col chk-lt chk-lay chk-th ctr)
9 X- D% p# X" g+ t' ~- H* u! O) M - (setq sslen (sslength selset))- t2 z S$ o/ k7 R
- (setq elist (entget (ssname selset 0)))
: p! ]4 S; E; a) f: }2 b - (setq color (cdr (assoc 62 elist)))
( j, Y3 b% _# p - (if (not color) (setq color 256)) f, m a7 U( F8 N6 R z
- (setq ltype (cdr (assoc 6 elist)))9 x0 U/ x1 ~& w" k- v. S
- (if (not ltype) (setq ltype "BYLAYER"))
" C& Q: ]( |$ Z: a5 m. z - (setq layer (cdr (assoc 8 elist)))
+ U. ?, O& b. }6 \) k - (setq thickness (cdr (assoc 39 elist)))
! h" `- @1 }/ P6 E/ ~ - (if (not thickness) (setq thickness 0))2 \( d9 L! N5 U) L5 r3 P
- (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)6 w. R' w5 \, Q- h( n
- : o _5 c: k# @4 D" x0 h
- ;; Page through the selection set. When a property
/ `0 e; b! O9 e/ s& e0 U5 Y* X5 W - ;; does not match, stop checking for that property.# P: Z3 l! h2 F/ l7 t
- ;; If all properties vary, stop paging.( g8 b1 |; q. A p' q1 u
- ) W4 x9 ]" r5 b: j( u1 D5 n
- (while (and (> sslen ctr) go)
$ s' ~+ v' v# W! D" M- h7 v' n - (setq elist (entget (setq en (ssname selset ctr))))
# I) @ P: H' y% }' K - (if chk-col (match-col))
# W- L% h- v: P* I5 |+ V# V: N - (if chk-lt (match-lt))% L# {7 v% L' r0 b; M; e
- (if chk-lay (match-lay))
( e1 O% _. ?% g - (if chk-th (match-th))0 ]: g6 E) i0 V8 W
- (setq ctr (1+ ctr))3 @2 {5 I( X0 F2 {
- (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th))
, P; D3 o7 q# \1 K- Y - (setq go nil)
\9 \( d4 L0 t7 F+ G1 Z! m - )
4 {7 d$ V' r$ k8 ~ - )
& I, d5 n* _* ` - (list color ltype layer thickness)' R; R! o. x K
- )
# F, F5 u" i, K: N5 p
2 r' p/ S% _+ S- (defun match-col (/ ncolor)/ m7 F- U& d" a& G; ]: H
- (setq ncolor (cdr (assoc 62 elist)))5 Z% P% [$ @# @& Q: i: j
- (if (not ncolor) (setq ncolor 256))
' _' |' y* U, n, F0 | - (if (/= color ncolor): i0 D8 v6 y2 U8 R) p; p7 Z! r
- (progn
4 r2 Z" ^4 l/ M9 M: K - (setq chk-col nil)# J) I) u0 |. I% a ]) F
- (setq color nil)* i9 {. i- `$ V8 k9 j% c" {8 E
- )
: s9 Z' _1 b) m - ). E! U9 E) }/ R( {/ w. [: u
- )% b8 P' H" Y* Y
- . A) Q' T2 {+ ^* l
- (defun match-lt (/ nltype)2 {# R& |$ x- F/ H" Y
- (setq nltype (cdr (assoc 6 elist)))# G: C. ?% Z" V0 Q7 y, l
- (if (not nltype) (setq nltype "BYLAYER"))1 H) A# K) ]) K- L! O
- (if (/= ltype nltype)5 q! n$ [& o- @2 E. H9 _* O
- (progn8 K% P2 p$ m( X4 E
- (setq chk-lt nil)
% s3 O0 [% Q# ?; [8 K2 R% K - (setq ltype "Varies")
& _2 N4 Z8 u! ] - ). v/ t: ?2 m3 h7 ?# T
- )
8 c0 @4 `7 K$ f: C. Z0 s/ G - )4 h. k( Q/ P$ P) u0 `8 d8 K
( d- [( H* l; g0 u7 v7 I- (defun match-lay (/ nlayer)
4 ]8 S! ]& \. C - (setq nlayer (cdr (assoc 8 elist)))7 d+ @. C0 p( E
- (if (/= layer nlayer)
- Y- a! ]5 t& b9 H3 w2 r, q - (progn! a3 C+ p5 ^" ~* [) S Q
- (setq chk-lay nil)
( u1 A# Z+ o6 g9 S# Y" L - (setq layer "Varies")
7 V+ ^& R1 u/ z( \% z. [ - ), i, e6 G" k' S3 P; A$ Y/ Q
- )
+ m* x7 C9 |( C } - )! r( d2 T0 L2 w. ?( L- q
- : z9 X7 w$ e/ ~. i) Z2 y
- (defun match-th (/ nthickness)
* l! M+ H' q. s) Z: |4 _ - (setq nthickness (cdr (assoc 39 elist)))7 W, P# {1 X: Z7 S. W7 t
- (if (not nthickness) (setq nthickness 0))9 m. k) R1 L8 v) t3 T4 y6 k0 h2 r
- (if (/= thickness nthickness)" j+ L6 @4 C) e3 u
- (progn
) K+ Y p/ j' k# |* G S y3 r( N - (setq chk-th nil)
$ T+ Q; f# P5 ?: [4 a g - (setq thickness "Varies"). C) L* k2 D% \& L/ Q# y3 O
- )0 P& E) h3 D1 {7 L
- )
8 f% x* u7 G3 s4 _ - )3 s) `4 h3 Y- N4 D A) [0 |
- $ M1 C- w$ ?5 t: T" P$ S6 d
- ;;" G" C$ e+ z1 |
- ;; If an item is a member of the list, then return its index number, else
$ h, d! p) y; v3 e# [- l. _ - ;; return nil.! U7 {# V; M" Y0 Z3 c
- ;;
1 r. V5 N+ U3 X' y& r+ x - (defun getindex (item itemlist / m n)9 T+ K, K9 {* R4 y+ u
- (setq n (length itemlist))
6 R' k3 r2 p% t) a/ ]/ ]4 D5 V6 G# X - (if (> (setq m (length (member item itemlist))) 0)- E9 ^! d/ R! o! G: g4 K
- (- n m)
7 ~/ `( L! h( M - nil, N& `% D! |. r y
- ) p5 V) f3 t6 _! X) h0 d
- )
% W8 f& l# i L: `0 I5 _5 x9 D4 q - ;;
$ w; N( q! S8 t# U5 R - ;; This function is called if the linetype is set "BYLAYER". It finds the # Q) E' g f7 T3 U4 p
- ;; ltype of the layer so it can be displayed beside the linetype button.3 t. @4 }) z* e9 e9 z9 ]7 f8 t2 J
- ;;
- _6 Z0 p+ ~& s) t5 _ - (defun bylayer_lt (/ layname layinfo ltype), L& |7 r' n3 b- }1 \
- (if lay-idx1 R9 g# |( Z* _: w3 C- k; m
- (progn9 D& p5 O; _$ h$ {
- (setq layname (nth lay-idx laynmlst))+ N3 g1 Y' o: y- z
- (setq layinfo (tblsearch "layer" layname))
( H, H8 q: ~) ~+ A5 A - (setq ltype (cdr (assoc 6 layinfo)))+ h3 K! e; q- \0 a$ r- \: i2 t
- (strcat "BYLAYER (" ltype ")")9 ^9 l' Z* r; q# B: C2 x, c+ S% v
- )
z% g5 C8 K3 D6 d- a: h - "BYLAYER"+ W. l7 q8 z% Z
- )
6 \. n4 f( O e E( r( G. [ - )% H9 S. t6 i; C8 q% v
- ;;
4 \* j0 e6 m1 X8 H: O8 K' ~ - ;; This function is called if the color is set "BYLAYER". It finds the , n# R; Q1 Z2 w! p( @3 u
- ;; color of the layer so it can be displayed beside the color button.
1 Q5 a7 x! V5 a* ^ - ;;
. O: }& l: `3 N) X- O+ W' u - (defun bylayer_col (/ layname layinfo color)
, y+ M: y. B+ v: M) B# D - (if lay-idx
# P) Y% I2 r$ h, {. W - (progn% e1 x# ]9 G& ?& p* h3 J7 s7 ?* ]
- (setq layname (nth lay-idx laynmlst))& L# t1 n' x7 t+ K
- (setq layinfo (tblsearch "layer" layname))
: m. a4 S& d9 l5 t - (setq color (abs (cdr (assoc 62 layinfo))))+ j4 X6 ?+ L. |0 ^ Y3 ]6 A( F3 h0 c
- (setq cn color)
4 C/ |' L+ h9 U7 K( D9 s9 l - (strcat "BYLAYER (" (colorname color) ")")0 \- P0 g- r& l- F3 X# t' s
- )
8 `9 Z3 A- v5 ]' M/ @9 D - (progn F, W" v; C1 M7 ]3 X- K% Q
- (setq cn 0)& B6 C5 }% T" a: R; C! W7 y* E, w
- "BYLAYER"7 T( c, s3 i% D. C3 }
- ) I5 X2 M- v$ [4 ]
- )1 K2 j! \7 k6 K5 ^3 Z
- )& ?: W+ i2 T+ J& U
- ;;& c+ ^8 N9 |8 ~
- ;; If there is no error message, then close the dialogue
) V2 B$ ~/ ^$ U3 ` - ;;
6 Z( @7 {! r2 N y, ^ - ;; If there is an error message, then set focus to the tile' D% n( z/ @0 _7 V8 F4 W
- ;; that's associated with the error message.4 _; c" B% M# S4 B3 `3 D
- ;;
5 [& u- f9 G3 A1 K - (defun test-ok ( / errtile)/ V1 k$ H) D0 j9 O- S. O h. C
- (setq errtile (get_tile "error"))/ n, ^" Z1 I0 |
- (cond+ P# z- u: z. l
- ( (= errtile "")
* \- Z! @, b4 M3 t - (done_dialog 1))
2 Y9 v: x* h7 m' {+ R - ( (= errtile "Invalid thickness.")( E$ R. A( k2 _1 `# D2 j% g8 u! E
- (mode_tile "eb_thickness" 2))
* X% O1 s9 E( [7 B; |; c9 P - )! ^2 C% @8 B% {. f( {3 f. ^: z# H5 i" Q
- )" w3 j7 A& t- z# ^
- ;;
) N1 s' l g7 J2 q3 | - ;; A color function used by getlayer.
9 e. v+ s# w) p+ [7 H* x5 r% C% y1 | - ;;
5 n- r' @5 Q3 P8 e' M9 V4 a - (defun colorname (colnum)
1 B1 ^. x- F& _9 |+ P - (setq cn (abs colnum))4 ^8 U+ T- [% o+ K
- (cond ((= cn 1) "red")
S+ J* v7 L5 @8 V; P% ^ - ((= cn 2) "yellow")
* j. X4 C" U9 U1 M& p, v, N, P# W' X - ((= cn 3) "green")
' t% R8 s. E: {. V$ q& J6 D) }6 j& N - ((= cn 4) "cyan")/ w0 n7 K6 X J- v
- ((= cn 5) "blue")
$ t* W$ W& h( @) D# u8 X1 j - ((= cn 6) "magenta")
8 T" y R: n, C0 f* h - ((= cn 7) "white")
+ ?3 p2 K; a, r2 l0 v1 o - (T (itoa cn))
9 J3 C. |1 T$ `" k2 ` - )3 f$ V6 ?0 n& \+ z- ^
- )
$ O( T% l: w3 t' S$ j - & D1 O& r7 m: A1 E
- ;;; Construct layer and ltype lists and initialize all
$ f5 ~7 `3 s _( N% A0 j4 Z - ;;; program variables:
6 U5 n4 G: k( J2 G - 1 Z/ h4 q% O K4 U" N1 W# u
- (makelaylists) ; layer list - laynmlst( G& l% g9 l' |) U* B; X
- (makeltlists) ; linetype lists - ltnmlst, mdashlist
# T$ F' B8 L ^ - ;; Find the property values of the selection set.
$ [. Z) y! \) {% }( Y0 t" p - ;; (getprops ss) returns a list of properties from
$ Z$ t0 |- s0 h1 p4 ^8 A - ;; a selection set - (color ltype layer thickness).5 {4 D2 |1 r" B) c& v, H, ]
- (setq proplist (getprops ss))+ Y; c$ I- ?- ?. l0 r" Q& q0 r
- (setq ecolor (car proplist))
& |0 d6 K9 x# i, Y' i" P - (setq eltype (cadr proplist))3 y; f+ R5 m; Y
- (setq elayer (caddr proplist))7 H& }% [/ k/ V# \# \
- (setq ethickness (cadddr proplist))# x5 d7 Q4 ]3 @
- ;; Find index of linetype, and layer lists; I. r8 y5 r3 L7 B/ [* N* Z
- (cond
5 g: F7 `% n) x1 h" j) q - ((= eltype "Varies") (setq lt-idx nil))4 E4 J1 Q0 e6 r# W# g( v$ H
- ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst))) `5 M0 k6 }& K$ R. Y; ?, j
- ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
0 Q O/ n! C. K) q- J- _0 D - (T (setq lt-idx (getindex eltype ltnmlst)))' I) i/ p, n E
- )6 F9 g' o& {: a& {3 p4 v4 {
- (if (= elayer "Varies")4 \3 o" E& b5 R, J9 q, C# [# ^, I3 z
- (setq lay-idx nil)
# v0 Z% E3 v' i( j - (setq lay-idx (getindex elayer laynmlst))9 Z1 \( l$ |7 a- _* V5 s
- )
! X8 F' @: b) a7 G! |2 ] - (if (= ethickness "Varies"); j, }% x+ u6 p' z5 r6 I) \2 o
- (setq ethickness nil); D2 S1 L( H9 R% p, @: S' U
- )/ Z$ w. K0 p6 i9 y
4 J# p& s9 D5 ~0 ~- ) ; end (ddchprop_init)& o3 X4 P( \1 I# a
- & V: F4 e% A9 B Z
- ;;; (ddchprop_select)
3 h" n; Z9 z% i3 j - ;;;
6 P" f9 ^( A3 n' m% ?4 u - ;;; Aquires selection set for DDCHPROP, in one of three ways:
( W9 X2 J: i2 S- o. ? c+ z - ;;;6 Q6 B" r0 c$ G$ n$ [) q/ u, }( I/ Y
- ;;; 1 - Autoselected.5 I# ^. b! `. V
- ;;; 2 - Prompted for.( b+ d3 V8 `3 w% J% ?# S
- ;;; 3 - Passed as an argument in a call to (ddchprop <ss> )
/ i* n1 l/ b7 } - ;;;
% U4 ^, j% ^2 y. j - ;;; The (ddchprop_select) function also sets the value of the
4 O4 {* a" w, A# R' Z( Q) s& G - ;;; global symbol AI_SELTYPE to one of the above three values to9 P0 A( D! T/ y2 S4 y* Q
- ;;; indicate the method thru which the entity was aquired.
. J, v( W1 g# ?. H2 N5 R" R
3 l% p+ d9 d; ?$ c: y, O& L
' Z1 M2 q' `! V+ Q( }. Q- q) y4 G- (defun ddchprop_select ()
2 R0 g$ z! ?# {9 _ U# C/ x3 f - (cond; w$ D; j6 w E. C ?
- ( (and ss (eq (type ss) 'pickset)) ; selection set passed to
1 p) a2 }& ?! f V - (cond ; (ddchprop) as argument0 ~2 q! `0 b7 s2 M; G" ?* D9 z$ V
- ( (not (zerop (sslength ss))) ; If not empty, then
5 g F1 B4 Y* ]' w) h - (setq ai_seltype 3) ; then return pickset.
8 W" v- C8 k" J* ~ - (ai_return ss))))
( w1 r' N; C9 ]9 |* r - ; y& O4 |- A$ e$ x6 ^
- ( (ai_aselect)) ; Use current selection
1 u6 m& n! z( }0 h. \ - ; set or prompt for objects+ e/ p- b/ z2 g' m, x0 O
- 8 g, _' l/ u/ H
- (t (princ "\nNothing selected.")3 o S* U) @2 Z! a! t3 A- y& q( N0 g
- (ai_return nil))* {/ X0 x2 a$ i
- )5 v6 F9 p; G. V7 [
- )& W6 J5 {! L, M, }: e n& K2 @
- ) X( Z1 h% y' k, F8 S5 @" B6 C. P
- ;;; Define command function., J7 z3 `' \) o5 g7 h
- . b. F7 [. i0 [1 _
- (defun C:CH ()
/ Z5 y( r& G" c3 ^1 v! W+ c Z* O - (ddchprop nil) b: V; e! T" D& l1 Q
- (princ)
, t# p! l# {, l - )2 r2 Q& `# g1 E) o: @% q& @
- 2 a& Y" ]' m$ B, j7 [
& [* r( u9 r/ h; i2 Q" B4 U( {- ;;; Main program function - callable as a subroutine.& r$ V' w% O& b1 \3 t
- ;;;, g( R; T V3 V. ?, ~2 h
- ;;; (ddchprop <pickset> )& o( ?: |" {6 }# R1 _- M k
- ;;;& Q+ \ ^% `8 M% S
- ;;; <pickset> is the selection set of objects to be changed.
8 h4 X% s# Y- f" R% N/ J8 C/ B6 y - ;;;
# }( ?: j# {5 G# W- ~: _ - ;;; If <pickset> is nil, then the current selection set is
* b: o* T3 A$ ?' G- } - ;;; aquired, if one exists. Otherwise, the user is prompted
9 t% ~- |' e+ _" ?6 ?; Q5 Y3 {7 B - ;;; to select the objects to be changed.
! e- a# B8 @3 h h( t8 S - ;;;
: ? i' S# g$ u% t4 q - ;;; Before (ddchprop) can be called as a subroutine, it must
/ \& x* {/ ^% ]$ K - ;;; be loaded first. It is up to the calling application to
# P. F0 W% Y) |. d - ;;; first determine this, and load it if necessary.
6 s0 q$ A. X0 ?. E( D' j1 L
. l% I F+ E L- (defun ddchprop (ss /2 z r) I8 z6 ^$ h
H2 l7 i* p5 d+ ^8 P- add-mdash ecolor ltedit_act s; Q; r$ p3 l! x$ @, [5 v
- assoclist elayer ltidx selset7 M- T. |4 p9 @: D2 w/ x
- bit-70 elist ltlist set_col_tile. w! S6 K1 k0 V
- boxlength eltype ltlist1
3 s. Q" [1 F9 X' h - bylayer-lt en ltlist_act sortlist
7 ?+ [+ s" `1 }7 v& h - bylayer_col ethickness ltname* b* a4 @/ W6 P
- bylayer_lt fchk ltnmlst sslen
$ P3 @2 c& K [% R6 X' Z - call_chp frozth ltvalue templist
; T+ K! l. O" |" m9 N' S - chk-col getcolor ltype temp_color$ ^4 {) H( e# x S
- chk-lay getindex m test-ok
" v& k7 V5 f; }7 q - chk-lt getlayer makelaylists testidx
# K% Q' @. U: P+ S/ }1 J - chk-th getltype makeltlists testlay' ~; K. U- a4 q' X, p7 e4 r) p( K, ]
- cmd getprops match-col th-value
) e" p; H/ |5 ?/ d - cmdecho getthickness match-in thickness1 W( m \& \* L, g/ \. j
- cn globals match-lay tile
( W( X: W$ i6 P7 d+ } - cnum go match-lt tilemode
8 d% a4 A# p+ L. a, i: f' R - col-idx index match-th tile_rect" g: v( @# H' _5 E, V
- colname item match_col vi
# c3 R7 \$ e9 [' e - colnum item1 mdashlist vpf4 w5 N3 C+ q, A: W& L7 |
- color item2 n vpldata
5 f' m6 v* T. }6 W- U- a/ h2 H - colorname itemlist name vpn+ n* a2 ?: p/ u6 q: V
- col_def lay-idx ncolor x
2 Z9 `) ^ o* H0 d8 j% k6 I o - col_tile layedit_act nlayer x18 w+ _ A5 y0 |8 ]. L; P
- ctr layer nltype x2
" s/ O+ \) `- Z - cvpname layinfo nthickness xdlist8 g( r. w* [) z' D1 b5 Q
- dash laylist off y _" G; b' A/ r+ Z
- dashdata laylist_act old-idx y17 ^1 i; F* N# }8 N% Y7 Y
- dashlist layname olderr y2
6 `+ R9 m; |% M3 L$ X% T9 k - dashsize laynmlst on undo_init: U) p! [6 J' C1 n! d
- dcl_id layvalue onoff
4 n L+ n+ j! L3 u: m. ^ - linetype patlist
5 G, I- |& I+ G- L! N - ddchprop-err list1 pattern4 \7 \$ l; V8 ?: x) N
- longlist proplist3 V" f, c6 u$ w* Z! w& p5 \$ P. Q
- lt-idx reset-lay
4 Z5 h, p& t* t8 U$ P - drawpattern ltabstr reset-lt( E9 m1 T' h% }' u) ~% G9 |* C
- )$ B* Q# v, c {' f+ O/ k
8 b. Z! H4 m1 u) ]' E- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho5 R8 U3 S7 I m8 C; V/ k* z
- old_error *error* ; save current error function0 y. I1 E, {1 D& C/ n
- *error* ai_error ; new error function3 h$ N2 U( i8 z" |+ W. X
- )
: t0 }4 s! y& t5 q" r& j - : w4 C1 V% V5 l- r" p
- (setvar "cmdecho" 0)! W+ _2 k4 {3 S8 v0 }' Y2 d; O
- 9 K3 T$ r: i* U5 g$ R& X% K! R
- (cond% [% d4 T& m; o4 s4 \
- ( (not (ai_notrans))) ; Not transparent?
4 M8 t( A* [" J W% M& Y, j/ o - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
) I+ b( ?1 ]) T6 n - ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?6 m. S/ h( `' V# i4 e
- ( (not (setq ss (ddchprop_select)))) ; objects to modify?
- c: v, z! D# ]$ X/ ^
0 o- a, W; f$ b* [ [) b- (t (ai_undo_push)2 q- h) Y: L& @2 z6 }! g9 T6 x
- (ddchprop_init) ; Everything's cool,
: q. A9 ]; Q' ~* K" p. R - (call_chp) ; so proceed!
& p6 D+ l; J* s2 Q- |- j - (ai_undo_pop)
5 ]' a0 [% e4 S; ?9 _2 _ ^ - )
! J c8 w; k8 e6 H2 t8 h0 i. k - ): V' B% s" M9 e' ^8 J: x
-
+ Q2 v- p. q! f% G* } - (setq *error* old_error) 3 y4 ~( h& k7 E' l, K
- (setvar "cmdecho" old_cmd)' X: L: \ X. ^! c# x' Z5 u
- (princ)- z7 a- [' ~5 _$ D2 f! T3 M' S
- )
8 k X" _0 V/ R x2 \: ?
3 o; I: r7 W/ z7 a* J4 w3 c8 L6 v2 Z- ;;;----------------------------------------------------------------------------0 i f' i) C4 e( k3 H8 m. d1 D
# [( F0 B( u \- e$ T0 k j- (princ " DDCHPROP loaded.")
& n3 G2 x* ]1 r; t6 I - (princ)
1 F% r5 U( e+ L5 O
7 V- X5 G, s h* }# |) c% @- ;;;----------------------------------------------------------------------------
" F$ a8 k+ k) d6 n+ s; R
7 n% i7 R6 p }- ;--------------------------------ddmodify.lsp----------------------------------
9 Y8 U; |9 h) @8 T7 I; K4 v w - ; Next available MSG number is 111
V. R/ r T4 K' H& X# l! f% f - ; MODULE_ID DDMODIFY_LSP_
' k9 W+ E/ U$ }& ~ - ;;;----------------------------------------------------------------------------
5 S2 W8 Y( q K, `. a - ;;; DDMODIFY.LSP$ u, i4 n: D) k+ s9 X! t
- ;;;
4 g8 w9 z: o. B! S' O - ;;; Copyright 1997 by Autodesk, Inc.; _& m( W+ M& x) f+ f7 c0 R3 W8 \! h
- ;;;
& E3 m! Q+ |; C% W% ]. ?* L - ;;; Permission to use, copy, modify, and distribute this software7 ~7 Y: G9 R- Y
- ;;; for any purpose and without fee is hereby granted, provided# z2 l7 M2 G5 R2 h0 u
- ;;; that the above copyright notice appears in all copies and
" z( r; S1 R$ `* i% D - ;;; that both that copyright notice and the limited warranty and
8 k- [. i4 N+ Q9 `, x - ;;; restricted rights notice below appear in all supporting
- M* Z) A( E; K9 p8 o( L9 r1 e - ;;; documentation.
3 [6 _2 |( [6 [$ M - ;;;
7 n! x. P) h7 A5 `0 e- a - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
& K7 X( {/ i" I4 o! g5 S+ x6 `# P - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF6 a( d5 x* w6 l) X% ]9 ?
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.7 `. f4 u% C- }; o7 ~/ c, b9 R
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
S9 U+ B' S+ `$ V - ;;; UNINTERRUPTED OR ERROR FREE.# J% v; F6 n) M
- ;;;
) P+ z$ W9 N7 B( V - ;;; Use, duplication, or disclosure by the U.S. Government is subject to" K. T8 H" J( m7 u9 L+ h
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer* t8 y$ P- s, {5 E6 B
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
Y' o! y' V$ S& w) R, ` - ;;; (Rights in Technical Data and Computer Software), as applicable.
3 {* Y4 P; k, d" e* u - ;;;+ Z4 W& \5 b/ p, z: Q9 X, _
- ;;;.
8 k5 k1 Q4 q4 i - ;;;" _, g2 p; A8 w7 [
- ;;;----------------------------------------------------------------------------
9 f1 m# p4 K s$ O' H - ;;; DESCRIPTION3 E1 _$ _0 J/ V6 h S
- ;;;
7 O$ h o0 n: V9 S - ;;; This function allows the user to get a listing comparable to the LIST
, C/ ^) |9 n& {8 K q" ~+ q - ;;; command for most objects. In addition, most object fields in the
) }; \) X# V3 \ - ;;; dialogue box are editable. Points can be specified dynamically by
$ g! K' L& h0 H0 A; B - ;;; temporarily dismissing the dialogue box. Each object has a unique0 R' a* K ?; n! U
- ;;; dialogue." x: B/ {. y0 u/ z3 {, \3 c
- ;;;
8 ~! ?; ^) \! B( m: i/ q - ;;; Naming conventions7 N- w# |! y1 r/ }) ]& s
- ;;; Long function and widget names may use an underscore "_"
. I" I y' H! J- ^2 P U4 W% h - ;;; in their names to make them easier to read, long variable
+ g7 c; y D, h w" l - ;;; names use a dash "-".
+ b p G# l/ j a4 Z - ;;;----------------------------------------------------------------------------
- f( F' j8 b* j4 x( m - ;;;----------------------------------------------------------------------------1 B/ u; b. ?# Z o8 M! p
- ;;; Prefixes in command and keyword strings:
6 ]; Z2 o7 m' A' D7 H5 K; l - ;;; "." specifies the built-in AutoCAD command in case it has been
0 L" h8 W. J( h; L& ?7 |* p8 _+ J U - ;;; redefined.
2 v$ `+ G$ h l* ^0 {1 y b3 M - ;;; "_" denotes an AutoCAD command or keyword in the native language
$ I7 n8 A2 p2 ? - ;;; version, English.8 O: w" k) b* I5 U3 x0 Z
- ;;;----------------------------------------------------------------------------
8 r+ {7 z1 |4 e+ N2 b1 b - ;;;! t$ I3 y8 H S# N
- ;;; Avoid (gc)s on load to improve load time. T( u0 [7 [6 N, Z: I' m
- ;;;" ]! F$ O! g. N' j j- C
- (defun do_alloc (/ old_allod new_alloc): Z. p7 C0 B% Z+ L
- (setq old_alloc (alloc 2000) new_alloc (alloc 2000))
6 f, ]9 L4 g' p - (expand (1+ (/ 17000 new_alloc)))" a5 P) c4 S g. ?8 S7 G3 B
- (alloc old_alloc)3 _4 z% m$ d1 X1 l T; S8 i4 v
- ): l3 p7 @+ [2 [4 E
- (do_alloc)% `% @& `7 Q- }' q
- (setq do_alloc nil)- h1 Y# l0 s" u4 A/ }
$ n9 x% k3 H1 s6 r" g- ;;;: ?0 J, U. t3 b! b$ Y4 t0 t( {
- ;;;
4 u7 M, |5 {" G: J; O! k4 ] - ;;; ===========================================================================+ m; o1 b0 |9 o6 O# U2 j* y
- ;;; ===================== load-time error checking ============================0 M1 K) |5 b, O0 b
$ n; G4 M% B" S6 x; D% F7 F- (defun ai_abort (app msg)
' @+ m5 A& x U1 q- S2 @ I4 U - (defun *error* (s)
) I" V, t- {, M: v. x: j+ T- C) O - (if old_error (setq *error* old_error))5 @1 N6 y6 D k' A5 O; v$ b
- (princ)
" j3 `9 u* q) |: a7 C: I - )0 }9 [& A# Q; M. ?2 R/ @
- (if msg
; c; [- Y5 K- F- R( L# D - (alert (strcat " Application error: "8 [! s5 B% ~* S0 i: Z) j5 ^ h
- app( V* @0 |3 f8 y; d
- " \n\n "
/ }; ]% W' B8 H$ D! {# y% M - msg
0 `8 j$ x( I2 O0 n5 o8 S0 C" y - " \n"
, q) a# b- E: E5 d - )
( G k! @" M; j5 O* I/ M - )$ ~% |+ g' J: g% V/ ]5 }' K% P
- )
. b; S4 ~ I8 H( k- z - (exit)( Z& P+ g# o0 {
- )5 M. w5 _3 h' J' W, _
, s) S" t, X; t: ^: F- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,8 y, t2 f# h3 {8 u
- ;;; and then try to load it. If it can't be found or can't be3 T7 p T+ ~) A2 q0 Y. {
- ;;; loaded, then abort the loading of this file immediately.% i' [8 w! t+ G1 M" S% y. }: o
$ c; ]+ ?' f) e0 `* |: I- (cond1 m0 w1 X5 X2 N0 o5 Z- u
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.( p: Z3 s l( h9 ? i8 d
- ! G; L# B" {* Y% @+ D$ l2 o
- ( (not (findfile "ai_utils.lsp")) ; find it- l2 o* `6 [. i
- (ai_abort "DDMODIFY"5 b! N- \# F8 g4 E! T' Z) M# C; E
- (strcat "Can't locate file AI_UTILS.LSP."
4 w6 K6 {2 j; ?3 g. w- S/ p+ ` - "\n Check support directory.")))
+ j. }' T# L5 q/ T7 Q
9 W& |9 K. I; U' ~- ( (eq "failed" (load "ai_utils" "failed")) ; load it
4 U' H( C/ n' [) L! ` ^/ m4 r - (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP"))
+ E/ _4 p+ G2 z# g - )
6 S }/ V# \; A/ m - 5 p( V3 p2 r% D! E0 F4 X# t
- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can
9 s {4 B$ }* j) t( N9 F1 S - ;;; be assumed that all functions defined therein are available.
" } E) d/ e! C/ w+ f& v
/ Q6 N/ A( U, Y1 R% I2 R r! H- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort: R1 ]* @3 z. g% }: ?. c
- ;;; if the file can't be found or xloaded. Note that AI_ACADAPP
7 ], x3 m" ~# R ` - ;;; does not abort the running application itself (so that it can' {4 R* f8 u( R/ m- _
- ;;; also be called from within the command without also stopping+ \' a! A. ?7 i5 q' [5 ]& ?* y! ]
- ;;; an AutoCAD command currently in progress).
" Y% e; ]8 d' Q: W- w2 U& l& } - 3 P' Q$ A" E. \$ K/ z9 W0 H! Q
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
: m9 i+ h" [. _8 L; a - (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses
; X+ J9 Y5 @" F0 E9 g - ) ; ai_abort's alert box dialog.. N- j- r& Q, O- M- y' l" t& Q% G
0 V2 X: [5 Q) z# _9 Y- ;;; ==================== end load-time operations ===========================
- F7 ]# _9 E! [1 H7 Q
}9 e/ }1 h' l- ;;; global variables6 K5 {2 w. [* {" @; b* z
- % t( ^4 E% V5 W {' V9 d
- (setq hatch-elist nil): y. o6 c# f. R+ h8 s6 Z9 y1 ~
- ! U+ `+ g9 [ R# e" D
- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are
& W+ N2 ^& X n/ z! b - ;;; assumed to be available.
) X1 Y8 B2 I; e! p2 l" A - 7 I% `9 f+ Z2 w+ g
- ;;; Define and encapsulate all subroutines that are declared
: ]& t7 l/ k0 d2 ?6 s) H - ;;; locals of the (ddmodify) function.
$ y/ \! }# T( l, u+ l& S+ ?! }
' ?8 `/ V: J4 E% N! ~% C- f- (defun ddmodify_init ()- Q- f2 L" i, g: B9 W
- ;;2 w/ s! m1 `+ G; |/ R& Q4 j
- ;; These three functions modify the enitity list for common properties. Since% |2 A# y n9 v( y
- ;; color, ltype, and thickness are absent from the object list when they are
) V. [: y$ o- | - ;; set to their defaults (i.e. color = bylayer), a simple substitution using: d2 b# T" O N' B
- ;; SUBST is not possible.
* X: T7 Y$ O( D9 U- W9 c - ;;
$ v& p$ S" Q9 L - (defun modify_properties ()" U7 b, A2 E7 E4 \ |- y
- (emod ecolor 62)4 z. y6 j8 m* s, l7 a
- (emod eltype 6)
, a( i$ [9 V) K/ l* w - (emod ethickness 39)0 |: n3 T8 v. a1 b" y# _
- (emod eltscale 48)
3 w+ k0 o- o4 }( a8 ]4 I% r - (tempmod elayer 8 nil)$ ?6 f! R& ]0 x' F% e! B
- )/ l7 k8 d- A, |) K( h2 c% c8 o
- ;;
+ u- s( k- w$ S8 a; l - ;; This function is used for modifying common properties of the ACIS
I6 x/ e7 g$ z3 ]+ Y: k - ;; based geometry objects. Thickness is not valid for these objects3 q5 O @: O6 c% t$ v( H
- ;; so it is left out.
! @5 y* P/ g9 E# S - ;;# _7 B) t+ ~, r) G
- (defun modify_prop_geom ()+ R$ v" r& [ X5 ~
- (emod ecolor 62)# F0 G. v6 C; |: `/ y0 T5 S# a, H
- (emod eltype 6)
4 J1 O& F2 G9 @# @ E2 l' f) n - (emod eltscale 48)4 C- p$ k/ H. M% K& ]
- (tempmod elayer 8 nil)
( b( Q9 H0 r. A; R; O9 L( ]4 M& j - )5 x& }3 f" I- |) _. M' X6 V) t
- ! P1 Y& _; R9 k# ^( B% w& {
- (defun emod (value bit)
/ S+ k* _ H* Y' Z0 f3 @4 q - (if (= bit 62)
4 g: I D3 u' u: h - (progn( o5 l" [9 v& X9 V/ z. C
- (if (or (= value "BYLAYER")
0 F2 S _/ {2 L1 v4 r - (= value "BYLAYER")) (setq value 256))9 c* B0 {/ Z; U( R' c- i
- (if (or (= value "BYBLOCK")5 e+ K& z! y; E' L% d" L; g: f
- (= value "BYBLOCK")) (setq value 0))
# j4 ]* L3 u( H; E0 `" H - ) B8 W5 @) _6 t! a; p9 ]7 d
- )
6 S, d0 \3 K; k) u B - (if (setq oldlist (cdr (assoc bit elist)))$ r' N2 w: B0 P1 s
- (tempmod value bit nil)
1 B" K5 S9 z5 R3 N) P2 v - (setq elist (append elist (list (cons bit value))))
3 B7 G$ [2 T7 o - )
. J& C* e# C; q. {/ c7 r( c( n4 [! e - )0 o, A, m- P+ H+ I5 i! c/ {: \
- ;;
0 G- a. l: [+ {+ P f1 b - ;; Resets object list to original values. Called when the dialogue or8 a2 X( r- I! U; P. J0 M
- ;; function is cancelled.0 k) K* I6 d( C1 g O
- ;;
' Y9 h, |* Z7 L9 P. Y8 D - (defun reset ()$ |9 d7 ^' a: i3 C1 D' r2 I C
- (setq elist old-elist
, p9 H6 K k% D - ecolor (cdr (assoc 62 old-elist))! ~) \* c0 |5 }- F [8 q- a* \+ `
- ethickness (cdr (assoc 39 old-elist))
' e, N# g) Y ?+ {5 o - eltype (cdr (assoc 6 old-elist))+ B9 Z. Y0 B/ ]
- elayer (cdr (assoc 8 old-elist))" ` C# a% j% o2 B6 q6 q6 Z7 D0 F
- eltscale (cdr (assoc 48 old-elist)). ~) s% d/ s! R- L: H0 ?
- )- u: J& X0 [) j/ o- h+ M, b5 o; [
- (if (not ecolor) (setq ecolor "BYLAYER"))
& ~: ~/ O5 N5 L0 H0 T2 | - (if (not eltype) (setq eltype "BYLAYER"))
. ^3 J. k( v1 | - (if (not ethickness) (setq ethickness 0))0 E" k1 b* u7 q4 s- ^1 y6 r
- (if (not eltscale) (setq eltscale 1))! p" q. @$ c* S9 N; C1 l3 O
- (modify_properties)
, k! O) V! W! Z! n8 Q! o - (setq reset_flag t) |2 A2 @5 H5 J! L t
- (entmod elist)! }. w6 Y9 J( u" g5 w: c
- )
/ k( Q# _+ V- X7 |, c, e) v - ;;
0 Z t( O9 P2 X& {0 O' \ - ;; Modify object when dialogue is temporarily dismissed to reflect latest5 G5 J$ z0 Z. G& |) b9 ~% P
- ;; settings of dialogue. It converts the point from current UCS coordinates to
+ a5 S8 u1 e. |$ j2 B4 O - ;; the proper object coordinates (world or object).
; u5 G' _. r/ H - ;;
9 o. u$ K' ^$ Q" `$ e: N# P - ;; Arguments: value - in current UCS coordinates
. a- y1 ]1 W6 T* }: ~1 g - ;; bit - object code (i.e. 10 for start point)
/ x5 B9 e5 B" F+ W+ G3 y; V# Q( b - ;; ptype - point type 0=world 1=planar, Q! g3 Y% D$ F% w1 u7 B8 w j
- ;;" @5 ~3 Z3 b' e
- (defun tempmod (value bit ptype / newpoint)8 X; D& V0 s) M3 O0 z0 J
- (cond7 A) [- N* k/ f% u) P
- ((= ptype 1) (setq value (trans value 1 ename)))
; W/ m4 r* j! H6 m" d) K# z - ((= ptype 0) (setq value (trans value 1 0)))
+ Q, ~ n/ A0 ^8 p - )
/ w$ F3 k% H" n7 v7 O) P - (setq elist (subst (cons bit value)% }' T' U8 n# H5 u
- (assoc bit elist)( d- |& x6 g4 Q# W: [: ?
- elist; ~" Q' v2 @3 \2 C* _
- )
& H9 b0 @( D2 K# M9 w* ~ - )
; j/ q6 B0 I G2 A - )* A, G+ l" \! Q) `
- ;;
; J# l5 t0 f- O" Y - ;; The following functions are called after a dialogue has been temporarily+ f; C' R2 o) p, {+ a
- ;; dismissed and the user is selecting a point. If a point is selected the) a* O# a* v; t; q9 Z/ \0 i
- ;; object list is modified and new X,Y,Z values set. If no point is selected
3 I: s9 ~! u/ j/ E5 h - ;; (null response), then the point is reset back to its previous values.: ~; D5 h* F8 l- X$ z+ D: L$ a
- ;;. u9 y; d# \3 C/ q
- (defun ver_pt1 (ptype) K: R& V. W! C5 {
- (if pt1
/ r* N1 k7 b: Y" ]- d, g5 [# l - (progn
% e0 ]: k# ^5 F( M3 U# [+ v - (tempmod pt1 10 ptype)
5 m! w a8 p( G* B# L - (entmod elist)6 j0 x2 G2 R1 ~/ P
- )( Y/ T4 M2 ^( G/ H/ V6 M2 M0 K/ [
- (setq pt1 (list x1 y1 z1))0 C7 X+ [8 ~6 m" F2 f% `
- )
+ r% f) ]4 M: A8 U" l - ). n% S$ v6 G7 ^/ t
- $ ?( ~& E' c; R9 r# P) Z
- ; (move_pt1 <ptype> )
0 o1 j- b, F* Q0 B- P; ~ - ;
7 _3 @# X' _& o! h9 T* Y - ; Called in liew of (ver_pt1) to translate block insertions which/ v! w2 k0 g) N
- ; might have variable attributes attached to them. If the distance5 Q C. ]6 i" {) u1 Z
- ; the block is to be moved is < 1e-6, the move is deferred.3 Y; b* A- y& t0 e3 F
- # r/ \! @7 g$ f5 h6 _
- (defun move_pt1 (ptype / basept hi)5 l1 ?# |/ K1 S" R+ U6 S
- (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))
; z9 ^' S! D; J- T6 o' ? - (cond* w' X% N' ^ ]6 c
- ( (not pt1)9 g* S" l+ z- ?; o' E0 \
- (setq pt1 (list x1 y1 z1)))% i8 K7 s9 ]; Y9 |9 D
% t9 {) Z$ D f9 P; q) h7 P- ( (> 1e-6 (distance pt1 basept)))
/ J4 ]4 {& l5 m) ?; f5 C( S+ M5 U" b
1 l* N3 D( a3 l. R; O! I0 F- (t (tempmod pt1 10 ptype)5 @/ ^/ ^! l: F t+ x
- (setq hi (getvar "highlight"))
! g' k/ ~. ?8 `! h3 T4 g' y: i3 z1 S - (setvar "highlight" 0)
. y( ^" B- u) `! I: M7 g - (command "._move" ename "" basept pt1)
# q5 F" y/ ^% O6 q - (setvar "highlight" hi))
. u9 _7 T! U5 N |! m2 O% j - )
6 f' q) ?7 c+ p7 }6 Z4 i7 P2 W - )
H8 B# |8 y9 }, H1 F
9 S7 D( ?& e/ p5 G& s- (defun ver_pt2 (ptype)
' p' T) {& b# m0 _; v% o% y/ i - (if pt2
2 s: B, |$ d& a% g3 B& @0 q3 w3 W - (progn3 O7 Y- s3 ]0 O1 r B" O8 G, T a6 P
- (tempmod pt2 11 ptype)
' E7 N1 N8 B; R - (entmod elist). I# R3 K9 e6 X
- )) w( F! m6 Q+ t) u6 I9 v
- (setq pt2 (list x2 y2 z2))% Q' @: c) ?" @1 j/ `4 Q6 v
- )+ q: j( ?+ H3 N4 j9 b+ l) ~
- )
2 X8 b4 `# k4 ^5 n4 l% p - : S4 d4 n) T) h1 @4 w; O' y
- (defun ver_pt3 (ptype)) Q. K! X2 c4 r# M* C; q. O! S
- (if pt3
0 q" v7 T( O6 J' g! t1 x2 u1 K3 L - (progn
n1 U" f t: n5 e - (tempmod pt3 12 ptype)+ w# i" b [! t2 i% z6 l0 m
- (entmod elist)
: I4 w7 H* \, J - )
* p$ }$ a5 G9 d, P. J: X( c, x! W+ t - (setq pt3 (list x3 y3 z3))/ b3 U3 _ D& I( b0 }0 c9 v
- )7 G, x( T& F7 V$ e
- )
0 M1 H$ ~! @2 A! N/ ]. T; | - + U% b7 u! I, u: i
- (defun ver_pt4 (ptype)
8 G, l# e& o9 P3 ^ @% Q4 S, u - (if pt4( N; P( U' c6 [; L7 I
- (progn
: E6 u p& }, y* ^% x5 U) {6 m$ M - (tempmod pt4 13 ptype). U1 {3 e' A* s4 Y9 N Q" |8 z: G
- (entmod elist)
! [- a# C6 v9 H6 N$ y# a) u' s* T5 f0 z - )+ b2 ~- T: f' X' F$ d9 v
- (setq pt4 (list x4 y4 z4))
, }; @; Z+ e+ o" H - )
1 B5 D( }) ]% U7 ^4 L M - )5 B7 w3 t" W- N: H3 P. }
- ;; Xline/Ray
7 J' E9 O2 Z% [+ F3 r$ i9 _1 F. n - (defun ver_xline_pt1()
8 h0 z* M# N! ]4 j* W - (if xline_pt1& A7 C. C, l$ y d2 p
- (progn
, G8 l6 g9 x" T - ;; convert to WCS.8 A! z2 K8 V2 q9 c
- (setq value (trans xline_pt1 1 0))" d- \1 g, f- Y7 X6 ^+ ?; k) Y! F
- (setq elist (subst (cons 10 value)
! Q0 E3 ^6 [: `9 d' V; }+ P - (assoc 10 elist)% ^7 _0 R" r# n7 N
- elist
& O# x" C( \; Z/ T+ ` - )8 C8 l8 B8 f+ {# F* Q+ l
- )
. `8 ]. g$ j7 {% Z" ? - )
$ i# C5 s1 D1 I _" I: g - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))' c7 X0 k* N* v" p
- )
1 o8 V* H1 X- {0 n8 x( d - )( E" a8 \: q! o
- " v9 |9 K" U" b0 T' b8 q# r
- (defun ver_xline_pt2()
" c' @& ^( Z) O - (if xline_pt2% L6 l$ H8 D2 O# j
- (progn
) Y, M5 X. T. Y l9 H X! h( E - ;;9 M: z7 v+ R& w9 n2 l- H
- ;; Calculate new Direction Vector WCS
/ I* R: D- ?/ Z; h8 H a& C6 u - ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))! ^3 g/ Q. o5 N8 r$ Z3 Y
- (setq temp_dir (trans xline_pt2 1 0))% D3 n9 A/ v! v, Y' p1 X
- (setq temp_dir_x (car temp_dir))" `! A3 f# i" c4 B8 h' n
- (setq temp_dir_y (cadr temp_dir))
& E9 a- N( H+ Y0 s - (setq temp_dir_z (caddr temp_dir))6 {4 Y7 W& [6 o% B' B
) j0 U$ e6 h; [- (setq temp_xline_pt1 (trans xline_pt1 1 0))
" e: j2 e' \; H0 H2 u - (setq temp_xline_x1 (car temp_xline_pt1))+ O6 a4 {, O4 X) D
- (setq temp_xline_y1 (cadr temp_xline_pt1))) Z; i) d. U6 Y
- (setq temp_xline_z1 (caddr temp_xline_pt1))/ |# B( o0 \' S
- 5 }% z/ J9 V+ \( A
- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
. R. S! S% g/ y" X* ]; S - (expt (- temp_dir_y temp_xline_y1) 2)% T2 i. P$ ?$ i# i6 b" D
- (expt (- temp_dir_z temp_xline_z1) 2)+ m, @* {4 E f
- )))
) u' f, `% I# S3 N8 k" @8 Y) @8 F - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
( S5 f1 i; C7 b$ ]; p/ d( `0 M - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
& ^" D5 U6 m6 ~0 K" ^ - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))! n7 y) h. y" U* ?
- (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))7 I7 P- @& e# u/ \9 B5 X! [" Y9 h! m2 V
- (assoc 11 elist)
1 Y6 v8 i3 z" \/ d; O - elist7 }$ l1 j! e8 m% A% ^* T
- )
: q! e6 F* Z$ y4 R3 Y( G' l8 q# [' G - )% G# X! L! z- i& N' l* w
- (entmod elist)7 I; S3 L% m! D/ `, h! c9 X& \
- (setq xline_x2 (car xline_pt2))
. @& t! H4 ]6 o/ s0 x+ Q! A - (setq xline_y2 (cadr xline_pt2))7 v5 M) _; n% N3 v& y7 D/ P
- (setq xline_z2 (caddr xline_pt2))8 C# \9 K: h0 r( \. B# e% ~! S# K
- ' b4 o$ w0 D! h' U
- ; S) h3 K% B9 P% \6 F- _+ H7 J, m
- )( E) D |9 _0 w
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
6 z R6 N! d# L* A# g6 x - )
, Q! z) R8 w7 H6 C2 ~( F - )( n; \3 M+ l/ }0 {3 R7 z. T+ g4 d
2 o, O8 ^ {" N3 i- H/ W8 W, T' s- ;;
( @ @( H) ~+ T1 e" f. o - ;; Common properties for all objects
9 L$ |' ~6 B% y9 s$ D6 T# \' { - ;;! A2 E! W' V8 s
- (defun set_tile_props (). S7 ]* r j$ E9 F8 C
- (set_tile "error" "")
8 a! ?% |+ X- _) B - (setcolor) g2 c$ i+ F5 W$ d
- (cond
' r3 V" J/ Y& N) R* O* b# t - ((= eltype "BYLAYER")
2 v6 L" i. E% n/ ^) d* _ - (set_tile "t_ltype" (bylayer_lt)))
* R) J# j* F# f6 n' }' p - ((= eltype "BYBLOCK"); j# J& h- W) W" ~# ?3 j2 m. k
- (set_tile "t_ltype" "BYBLOCK"))- ~( F' W9 I, h! k6 v: v6 h6 o0 }
- (T (set_tile "t_ltype" eltype))' I$ A! W# R" n7 y& Q5 d/ t, N+ F
- )4 D) a! a4 M, y
- (set_tile "t_layer" elayer). y+ y5 Q5 g G% I' i6 B a! p
- (set_tile "eb_thickness" (ai_rtos ethickness))
7 ^' U" _' p- N* \: y" L; o - (set_tile "eb_ltscale" (ai_rtos eltscale))
, C2 @" O; r* q' h/ |! A - (setq which_tiles (ai_common_state etype))3 z% q% X; B6 J* v4 s; V, u" q
- ;; Disable tiles if need be...* X$ t. ?7 Z- k' C: H
1 x* t3 X6 Y+ k% }: v5 U4 e- ;; Layer Button and Text Field
. O5 h7 A% g9 J - (if (/= 1 (logand 1 which_tiles)): {9 y, w* q7 ~- J
- (progn
3 x6 |. T. {& q! e1 `0 h - (mode_tile "t_layer" 1). r( q: L. C4 b
- (mode_tile "b_name" 1)- B' D; [8 h4 {
- )
, B) u2 W2 P" P% @" g; q5 T9 p4 j/ I% Y - )
" W1 R( c4 c8 X8 }7 X6 t( _3 j - ;; Color Button and Text Field1 C- h; v, c5 C# }, T
- (if (/= 2 (logand 2 which_tiles))
7 L% o+ v& ]* @6 R. W. E; H - (progn
0 `: w* U$ ?0 P k7 z* a7 L# O - (mode_tile "t_color" 1)5 [: Q. T& S% e' [
- (mode_tile "b_color" 1)
3 X. w0 v4 y1 E! k* w' y - (mode_tile "show_image" 1)
" H7 g: T2 w4 V2 | - )
3 |3 A" U5 `$ J) q - )
" A% p! @, L4 l) r+ `8 H/ L0 B2 J& M - ;; Linetype Button and Text Field8 I& X9 x; l8 K' t
- (if (/= 4 (logand 4 which_tiles))
) p1 ~2 j0 p% N/ F - (progn# \; _& Z! X. [! K5 o7 y, M
- (mode_tile "t_ltype" 1)) E5 Z, }+ i* T$ N1 w' f
- (mode_tile "b_line" 1)
8 S% h; e/ L; x( B - )
, ^9 {2 v5 q9 M( I5 ]: N4 X - )
2 w t& J' C8 D5 g8 w - ;; Linetype Scale Edit Field" M) n# S3 r, ?8 D/ Z, Q2 d
- (if (/= 8 (logand 8 which_tiles))5 J; W, d) }5 `) o$ m
- (progn2 W; I+ N4 c0 i# B( p( w, G
- (mode_tile "eb_ltscale" 1)
, H9 L: K# T/ ]# X - )
1 H( k( S" Y& b% ^* n - )
) V& X1 R: j- }; T4 z6 `8 O% g - ;; Thickness Edit Field.5 [$ H" @/ Q& U& X. ^* x
- (if (/= 16 (logand 16 which_tiles))5 U9 v* |( C& N
- (progn# {& n# G, ?3 i7 w+ p' e2 j- z9 T) E
- (mode_tile "eb_thickness" 1)
5 d) |' M& T; f% w( T - )" [' ^& R3 v% i2 V4 u
- )
( Y. `$ v9 S; T; w: X$ H - )& J; P( B* {4 L" [
- ;;6 ~; ~* r) h# y" X1 j8 T) h
- ;; XYZ Point values for all enitites/ J6 S: l7 w# a1 z
- ;;
! \8 c) y2 `9 B: U - (defun set_tile_pt1 (ptype)7 n2 ^* F2 y) ~. y
- (if (= ptype 0)
4 R. s. u. c# {( a - (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))) ?6 F/ _! _, i9 M+ C
- (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))8 l1 K$ Y% Z0 ]
- )5 w$ e2 M& h9 m) o- J, ]! j
- (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1)))); D7 l" _- A, i# o+ Q" ?9 O2 p/ k
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1)))); c+ h$ {* H( ^/ G0 H
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))4 ~$ T) y/ }6 d2 ]" ^3 [$ c; N
- )1 j1 _3 h; e* j8 ]
- (defun set_tile_pt2 (ptype)
) T2 v( R/ m$ T+ y8 W - (if (= ptype 0)8 T- i( d. u6 U) s+ T& m2 }8 @) I
- (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))# o: U$ \0 U, q" A% ^0 `; L2 c
- (setq pt2 (trans (cdr (assoc 11 elist)) ename 1)); Q' i% F7 i! Q# k/ E& y
- )
6 u7 I8 W! Y, r8 ~& u, D' L' Y - (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))! P- A. R8 ]. J' W9 \
- (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))
% V1 t. L( }0 H8 d - (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))) M# e4 P b+ ?1 I2 Z8 h
- )& g0 c% j4 Z* l* ^4 I8 i7 H
- (defun set_tile_pt3 (ptype)
" f, i0 v" _8 ~; H8 r - (if (= ptype 0)
/ R9 ?$ \" e; W& o! y w0 ? - (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))4 k3 X( S! u) z( w' P! f: |
- (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))
- K3 ~2 p1 N- v: M# X; i8 @: r - )3 B, [; y' g( _% N$ Z
- (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))4 [$ z1 ~9 t* r" |
- (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))8 H0 I! A( Z5 p5 v, |4 u4 A
- (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))
) ~8 A: P1 Q% u: A3 _; R8 Y - )
% m. v# h5 j! l) U1 F7 E4 K - (defun set_tile_pt4 (ptype)" p+ M6 d5 u7 P q+ @5 m
- (if (= ptype 0)8 r0 B' f [2 A; V$ d
- (setq pt4 (trans (cdr (assoc 13 elist)) 0 1))
; l: i& f0 z: J8 k5 u( ] - (setq pt4 (trans (cdr (assoc 13 elist)) ename 1))
* g7 d) f! s; q( S! [. @. a - )7 W, a% W/ M, l* F E% |6 T$ y* G
- (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))$ h% O8 O3 J' S) U( ]/ T' }# a
- (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))
" r" K- i0 T1 A" k+ C - (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4)))); i1 i' o5 K, }/ q8 Y* b9 x$ \
- )% j, [- v( Z0 b2 q1 y' R/ c
- ;;* V, s2 I2 \0 B K2 U7 q. A
- ;; Xline/Ray
8 \( O' ^' _4 `* r - ;;6 H( {' G% K% L% x ~
- (defun set_tile_xline_pt1 ()8 d9 m% g$ }% J7 U
. }, y. N$ _' H4 j( d- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1))
4 r, ~" K( p- E5 P' _7 S
. M$ N5 V# J/ m- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))4 X5 a/ y' k4 h2 ?7 r
- (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))3 N9 X9 ~& C# K) q6 d/ E {
- (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))5 T# X. O; R" y c
- )2 S0 X G) c/ W6 s1 }- _* u' ?1 K; H
- (defun set_tile_dirv ()
' ?5 D+ k H5 V0 B; Z# J - ;; Convert 11 group to local UCS (displacement)
2 e, {7 Q9 A! q - (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1))+ [ j* M( k4 L9 {& i4 z' j* F
1 }1 M" n9 d! W" } v( @. `- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))4 p. T) H( d" s* ~
- (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))9 @9 ~/ X4 G- q8 y3 t- ~
- (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt)))); w9 u4 Q7 f9 F' u s% |
- )
) \0 i6 z4 Q% E8 g! ^+ j+ N4 o1 | - (defun set_tile_xline_pt2 ()" m7 g7 J0 x; I$ M _
- (if (not xline_pt2)% D8 i' f7 v5 Z2 f& D! g
- ;; Initial second point is Root Point + Direction Vector
9 J, j% f3 ^2 ]& n - (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))5 d( ^# }( I2 \
- )
) B V( l" L+ W - (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2)))), J6 O4 _% S8 O4 B- ^
- (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2))))/ I6 C0 y3 J/ u8 y) Q5 F
- (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))
4 Q1 S' ~' }) j+ y- _ - ): J l2 c; ~. W
^) y+ T' b) ^- ;;$ P' Y/ L k3 k( O- s
- ;; Handle for all objects
, d7 n; s6 z. Y* m0 t5 T - ;;0 `' e0 T- E6 S: U" P( F% M; l
- (defun set_tile_handle () m0 r. B, P( y5 ~% g% S" E
- (if (setq hand (cdr (assoc 5 elist)))
. R* Q8 T' W* r4 s - (set_tile "Handle" hand)5 ^0 G t! h* i$ o; e& U6 o6 W' Y
- (set_tile "Handle" "None")) v. G: g. ~; W
- )
; w5 _/ c* u1 M3 m7 O/ y- R - )
6 T) o) \) R# W* f. D - ;;
2 J' C* u" W, Z' A1 C% q" x R5 A - ;; Radius for ARC and CIRCLE/ y# g6 q B8 o, e8 K! A1 T/ O2 E
- ;;
( v" ?3 e" e4 J' m. B5 H& A% ] - (defun set_tile_rad ()
2 L) {3 F9 O1 C9 x' Q - (setq radius (cdr (assoc 40 elist)))
2 g: e+ ^! E* h% W/ b - (set_tile "radius" (ai_rtos radius))1 w* j, m. W, p- T! k# c( }# z
- )" w+ A |& X5 K9 V! V8 H
- ;;
" L1 s/ O0 s. ]# K2 w% S9 J - ;; Start angle for ARC" E5 ~/ ^& A2 g4 n
- ;;
/ Z z- A3 a4 ]) r - (defun set_tile_stang ()
1 p* ]1 m. N% U- @# }+ C' B0 U* w - (setq st_ang (cdr (assoc 50 elist)))4 w& J& x' W. z; `2 \! d9 W
- (set_tile "st_ang" (ai_angtos st_ang)); g4 |! [* h4 R0 A& }4 x3 y9 `0 a/ y: |
- )
1 b5 {1 m8 d, \9 n1 y% t% h - ;;
/ a) Q2 N2 B$ \, j - ;; End angle for ARC+ p4 G0 e- f7 M5 J
- ;;
8 K+ g6 ]1 j1 `$ F! P - (defun set_tile_endang ()
$ Z( }% g* Z% r3 a* @, b H( G - (setq end_ang (cdr (assoc 51 elist)))
K" E6 {5 e8 I* q( N* U& b. H - (set_tile "end_ang" (ai_angtos end_ang))& J/ a, I+ t7 u: ~
- )$ V: E& s* y7 @4 I8 f) R
- ;;6 R4 L, f/ L9 w! j) \( S
- ;; Rotation Angle - Text, Attributes, Block insertions and Shapes
) X2 e, g; [2 U0 U" m - ;;
$ t9 J8 {" W- u$ C - (defun set_tile_rot ()
. m# m$ ^1 K4 Z ~1 } - (setq rot (cdr (assoc 50 elist)))3 k3 _0 q9 B0 w7 I- E5 x+ ^0 H
- (set_tile "rot" (ai_angtos rot))
; c" W3 v4 B/ Q( ~ - )- E/ ?/ T( {7 y
- ;;* B @ D6 r5 m/ P
- ;; Height - Text, Attributes and Shapes
& n' e+ Y7 B9 j; S }+ A - ;;0 Q7 q+ m& T4 E7 [1 J
- (defun set_tile_hght (): ]$ H3 ~! L8 o2 ^1 V
- (setq hght (cdr (assoc 40 elist)))9 _% z2 |0 x! L3 h5 H
- (set_tile "hght" (ai_rtos hght))! X6 d- ?7 l5 D* j+ M( ^
- ). m j r! {; m- f" U# L: u
- ;;- Q0 U7 N% V9 o" o/ ?" B7 S. G) B+ @
- ;; Width Factor - Text, Attributes and Shapes* C5 y) w5 z# K9 {$ `) \9 p9 B1 E
- ;;
1 u' V* \) P$ T$ r W! q - (defun set_tile_wid ()
( U5 |1 |/ j- L$ I" p& ^; A. d* d - (setq wid (cdr (assoc 41 elist))) \1 k; e. c- U' ~; e. l$ U! W& y
- (set_tile "wid" (ai_rtos wid))$ d- S7 L& u3 d/ P3 B
- )
; V# W. \ c5 m1 p - ;;! Q% ]8 g; h4 ^! `) N
- ;; Obliquing Angle - Text, Attributes and Shapes
7 o! D/ l s5 b. M - ;;; W6 b! F D9 }7 j
- (defun set_tile_obl ()
" C* @, q, W) h0 a+ ?. f& P - (setq obl (cdr (assoc 51 elist)))+ O/ h7 Z# R* h$ {
- (set_tile "obl" (ai_angtos obl))
0 C8 Z# N+ L5 r; ~* f0 H2 b - )& \! j/ H/ d, U! \% P/ T
- ;;
+ R9 e F: m7 d: y+ j - ;; Text string8 k& l; |) [& o9 g* T& c/ M s, ^ u
- ;;
* T# ~( D5 R* P* o - (defun set_tile_text ()
7 t9 E# R! d2 I3 K - (setq text (cdr (assoc 1 elist)))
7 W) d+ \5 q& \: X5 ` - (set_tile "t_string" text)
: f; d: X; O0 v9 N - )
$ o) M; I( O5 M' E( \ - ;;
' a, e' q: }7 F5 Q9 P a; } - ;; Attribute Tag! b2 a9 E5 b* @5 V9 }) ?
- ;;0 _" X6 b. L" |0 a
- (defun set_tile_tag ()
% s& m" _ [& `$ I$ k - (if (= etype "ATTDEF")1 c) U; A' ]$ I. m, q- c
- (progn- |$ n/ h& y8 v: ?
- (setq attag (cdr (assoc 2 elist)))
( Y0 q9 y! |+ ~6 d9 n- R - (set_tile "tag" attag)
8 x4 s! ^$ |( s" ]) g/ a - )
/ I4 `; i, ^. ?! T0 a7 c1 l- b - )7 L9 a0 h; w( v' h1 v* ^# R1 B. u
- )1 f8 D, [" A4 o+ m
- ;;, O( e) |9 [% }' c
- ;; Attribute Definition
/ i: g/ w: S3 U - ;;1 ]. E" @7 v7 l3 W* s, T( ^. a! v
- (defun set_tile_prompt ()2 K! E) H% }" y Q' k, Q
- (if (= etype "ATTDEF")
: ~) O# N t3 Y1 L. ^% v - (progn
/ \ o# @, {/ g# H - (setq atprompt (cdr (assoc 3 elist)))2 R1 T5 s% Y2 G- [
- (set_tile "prompt" atprompt)
* V Y+ w8 U5 s) c+ E4 f F - )0 E( x% b- A4 W! R" n3 c( {( z
- )
' Z6 b! C8 d1 W7 i6 L" a - )
" `( x' x5 L5 r( V) y( r! o, a - ;;
) G: S' @- K9 @, \ - ;; Justification setting for Attributes and Text. Initializes
$ ]1 o8 r& }$ h - ;; popup list box
+ D6 ^) [( Y/ q4 L; T - ;;
/ p3 G# w/ N P, w3 F - (defun set_tile_just ()% D2 O ^+ x; Z# u: T
- (setq ha (cdr (assoc 72 elist))) ; horizontal alignment6 [/ o* K0 i- I/ M: E( z2 F' q
- (setq va (cdr (assoc 73 elist))) ; vertical alignment
7 A. D6 z/ r0 {5 z$ w" q - (setq ha-prev ha)( S. G9 M8 p! B- S0 R/ X
- (if (= etype "ATTDEF")$ l, @& p) U4 U0 f( g: V6 l
- (setq va (cdr (assoc 74 elist))) ; vertical alignment
) k8 ~5 X7 B" q - )( D; a: D& s! q" B2 L
- (setq jlist
& v d @$ C2 S; ?1 s - (list "Left" "Center" "Right"
; b( {) |* N& p& E9 L- p# x - "Aligned" "Middle" "Fit"
* c+ ~' B2 i1 @8 s - "Top left" "Top center" "Top right"- E5 F' ? f& C3 b0 ] M) W7 [# u
- "Middle left" "Middle center" "Middle right"7 h. v, k+ u" K4 Z/ [) u6 p
- "Bottom left" "Bottom center" "Bottom right"
; A& W0 a) C+ k) H - )9 a" ]& K! X6 U
- )
1 H! \ c: Z: x - (start_list "popup_just")
: Z$ C- k5 h: s2 I. Q) H, ?# i8 t. f - (mapcar 'add_list jlist)
/ H2 H- K2 h8 W8 V! u - (end_list)
( ~0 ]% f {) a p0 l1 T - (set_just_idx); [* W; V. v- S7 h; N b( N5 x
- (set_tile "popup_just" (jlist_act just-idx))
3 K( F8 _% A& m# N - )
7 c& B8 k! X# X ^6 o7 k% d9 u; l - ;;7 H; s9 b0 G1 P9 d+ e
- ;; Style setting for Attributes and Text. Reads symbol table for popup list
& b, x' L1 G1 ~. u; ] - ;; box.
' u- I1 m- m7 d6 @/ Q. t4 {8 H - ;; F$ d5 ?+ [2 J/ ?
- (defun set_tile_style (/ sname style-idx tlist)2 m- y2 c# D, Q% T+ E" [* L
- (setq tlist (tblnext "STYLE" T)8 S- V# t* |- ~' v0 Q( q- h
- slist nil)
5 l: R' o2 ~' c, Q, ]7 d - (while tlist
3 T/ B5 l9 ] x" Z' Y* @5 U - (setq sname (cdr (assoc 2 tlist)))7 r v+ j5 }# x$ |3 D2 S1 p- {( {
- (if (and (/= sname "")
. @+ b$ U0 S) `9 c - (/= (logand 16 (cdr (assoc 70 tlist))) 16))& D3 E! n5 A4 ^6 O$ v# y5 K4 k
- (setq slist (cons sname slist)))9 t0 `4 [7 R3 z
- (setq tlist (tblnext "STYLE")))
/ ~7 b( w0 u9 X5 M - (if (>= (getvar "maxsort") (length slist))* ^/ J" ]& A, h
- (setq slist (acad_strlsort slist)) ; alphabetize style list
$ a) r: D& v) j* i$ F& ] - (setq slist (reverse slist))) ; or reverse it to put it in DB order( ?$ Z0 l7 p6 H. a& k4 x
- f, |: @. A5 ]* L3 v: f- (start_list "style")4 \& U8 z8 i# ~3 \
- (mapcar 'add_list slist)! g: e2 N6 j* @% l/ G# E% R* Q- }5 H
- (end_list)
: k) ~/ H, {3 l6 ]+ N' h% @ - (setq tstyle (cdr (assoc 7 elist)))/ f- g! ]2 l3 w# K- v; m0 _* B
- (setq style-idx (getindex tstyle slist)) i1 n: D* K8 H) o6 q. @. x! m
- (set_tile "style" (itoa style-idx))& [/ u, N9 h: ^6 D
- )8 z' P- [6 w) n( V+ |* w: T7 O
- ;;
) J! t/ }1 P3 O. \/ `8 g - ;; Text and Attribute setting - upside-down, backwards9 W1 E. f, b" i9 e7 H
- ;;
7 D, B1 H B6 } y! d, C: W - (defun set_tile_bk-up ()
1 n( S6 d+ O6 R d) K! g( P: k - (setq bk-up (cdr (assoc 71 elist)))& S) C+ v- f& F+ G
- (if (= (logand bk-up 2) 2)
L& L0 K1 n U4 Z - (set_tile "bkwd" (itoa (setq bkwd 1)))9 M. Z3 \7 U: r& z; R- x
- (set_tile "bkwd" (itoa (setq bkwd 0)))
* C4 c! }* {4 J4 Z - )4 s; @/ @- r8 A6 W/ S( [
- (if (= (logand bk-up 4) 4)" y( n% s2 J; `' |9 ]! j
- (set_tile "upsd" (itoa (setq upsd 1)))0 b6 a+ t. `+ u1 S( I1 ]
- (set_tile "upsd" (itoa (setq upsd 0)))
T) _+ c& o+ t$ Y) C - ). \# L9 ^! p1 L8 l% A# z
- )% l( h# p4 E, N
- ;;2 `# t7 g) J) P4 U3 A* y
- ;; Attribute setting - invisible, constant, verify, preset
& |& t: ?+ O* k$ @2 L! X4 E+ l - ;;
& k Y* [0 B& o2 w9 Z& P4 @ - (defun set_tile_icvp ()" W/ s$ {) m8 `7 Q- J6 S, [. {1 W
- (if (not (setq icvp (cdr (assoc 70 elist))))
; Y+ o; b9 @4 o, }$ W - (setq icvp 0)
6 O# K, n B" V7 ^& l8 v M0 B - )- W( ~# ~; V5 C+ b) x
- (if (= (logand icvp 1) 1) Z6 C8 M% @3 @ V9 r
- (set_tile "inv" (itoa (setq inv 1)))
% e5 b/ T1 K& w7 _9 i7 S - (set_tile "inv" (itoa (setq inv 0))), q! `& m( R3 E3 ] J, X: c2 M
- )( D/ ^6 W! H" k, j2 [: y
- (if (= (logand icvp 2) 2)
5 Z1 W( v, _ M) d - (set_tile "con" (itoa (setq con 1)))
; r* u; a1 Z0 a$ m - (set_tile "con" (itoa (setq con 0)))4 `( K0 O( N1 T
- ). v& U! N4 a1 v1 k
- (if (= (logand icvp 4) 4)' k) Z0 ]" x: q- z3 y4 k
- (set_tile "ver" (itoa (setq vfy 1)))
2 Z' [+ w1 r& N2 [+ g# d/ u - (set_tile "ver" (itoa (setq vfy 0)))! _3 K9 C) T2 Z% h3 d2 |5 T
- )" Y4 {* E! H$ q5 x, ~; m. P
- (if (= (logand icvp 8) 8)
- T' i; p+ I4 J3 Y2 ~4 t5 S8 o) { - (set_tile "pre" (itoa (setq pre 1)))
1 |8 S4 }- G) A: J - (set_tile "pre" (itoa (setq pre 0)))* i& }! P7 [, C+ K! i$ Z) Z
- )
- S7 J6 c; ~5 o& E' u" o8 O - )
. s5 A. v) Z' c) \# W - ;;
7 n; W% U# n/ a& `9 K+ K - ;; Scale factors for block insertions ^: N8 V# q# S& M% w5 r5 \. N
- ;;
- a- a; N2 A3 m - (defun set_tile_scale (/ temp)
: C# Z* N2 g* Q( @2 F' h/ \ - (setq temp (getvar "LUNITS"))% l7 _* f/ f% P3 y3 o" A
- (setvar "LUNITS" 2)
9 ?; o! [& t2 d* G6 r - (setq xscale (cdr (assoc 41 elist)))
( {& H F/ I) `# n, V+ L2 I5 y) [ - (set_tile "xscale" (ai_rtos xscale))
9 y% E. q4 ]: f- h4 k3 n3 M - (setq yscale (cdr (assoc 42 elist))): P* L# S: {4 R
- (set_tile "yscale" (ai_rtos yscale))
( m, j- ^1 t p8 `" c1 o - (setq zscale (cdr (assoc 43 elist)))
3 `9 E1 c& J& Q# I% Z - (set_tile "zscale" (ai_rtos zscale))0 R) d. ^3 a0 U* z A
- (setvar "LUNITS" temp)! T3 c, A8 X0 A- |+ B6 e5 v
- )9 ^; [& w8 C7 J2 H j
- ;;" R" z0 Z5 X3 y% L) U" P
- ;; Rows and columns for block insertions1 m( |4 Z8 v; }- [9 K6 o
- ;;
; f7 P0 W7 \1 r - (defun set_tile_rc ()! J% U# o" m1 D/ E& ?
- (setq columns (cdr (assoc 70 elist)))8 Y* f! p0 _4 `. K" |2 t% ]! E
- (set_tile "columns" (itoa columns ))
+ ]$ t5 T7 U8 G0 h5 S" P# h - (setq rows (cdr (assoc 71 elist)))% A1 j& h4 m$ O3 w& y
- (set_tile "rows" (itoa rows))1 o6 d9 c. l& }: w
- (setq col-sp (cdr (assoc 44 elist)))7 @* M% V9 y5 M) }+ n
- (set_tile "col_sp" (ai_rtos col-sp))8 P5 B" L9 u- @ T( C( r
- (setq row-sp (cdr (assoc 45 elist)))
; b' @6 x: P R( _( q - (set_tile "row_sp" (ai_rtos row-sp))
6 b, q! d5 g, \ - (if (/= hasclip T)
8 q& v6 @4 e& B4 N% F, e - (mode_tile "xcliponoff" 1)
1 J9 q6 X& |! q9 a8 V% ?! A - (set_tile "xcliponoff" (itoa xcliponoff))
( G8 P/ ]$ {4 a8 F& c7 V- K) { - )) W Z. i! g* C9 g: @' \& {: |
- )* m7 @9 A/ p) V: @: f c
- ;;
/ P4 F- v$ ~5 g: {( l- y9 Y5 r - ;; Invisible edges for 3DFACE
9 f. X6 g: Q$ l j4 [3 b1 R9 J - ;;
4 b8 t1 j6 y& E) l - (defun set_tile_edges ()0 _2 p* |: d u6 k6 h" F
- (setq f-vis (cdr (assoc 70 elist)))
# _8 ?# @9 C9 \# [1 T - (if (= (logand f-vis 1) 1)2 @; C: r# H( v/ g( u0 \" l
- (set_tile "edge_1" (setq edge1 "0"))3 _8 ^1 r X* Y" F
- (set_tile "edge_1" (setq edge1 "1")); k" i! O: G1 C% o" @" t
- )7 F2 E! _/ o( B3 t) X
- (if (= (logand f-vis 2) 2)
) s( v9 q) _$ Z+ A - (set_tile "edge_2" (setq edge2 "0"))5 q. U: f: R; [) {3 N0 \7 x8 m7 `
- (set_tile "edge_2" (setq edge2 "1")) P( e. m8 o3 r6 a1 {& U( u: `
- )$ l( R9 v2 s8 B4 d
- (if (= (logand f-vis 4) 4)' [' {8 w4 ~$ u* W7 d/ E# P
- (set_tile "edge_3" (setq edge3 "0"))
! Q& K' G. G- O, L9 A - (set_tile "edge_3" (setq edge3 "1"))
. J- A, Z) Y* _$ j0 O - )
4 W! L6 I! O0 Q- q7 ]" i/ e - (if (= (logand f-vis 8) 8)8 q: Q2 y5 w- `3 b1 D
- (set_tile "edge_4" (setq edge4 "0")) Y7 J& [& j8 B" K) c- T
- (set_tile "edge_4" (setq edge4 "1"))1 {6 [6 W, k1 x" _0 \& x8 n
- )% w" `6 i9 h* `
- )+ _2 j7 I5 l4 \9 N8 A6 _
- ;;
$ v+ M) Y$ x( `& [) Q' C8 g - ;; XYZ Point values for polyline vertex) \) s6 o2 w" f; b( B$ X
- ;;
# M i7 C* ]* c6 f, l8 f4 B$ ` - (defun set_tile_vpt (ptype): R! }4 r9 [* P: h3 _
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
# B, ? h, q4 a" |0 d! ] - (progn# z; Z3 I' Z0 p" t
- ;; ctr is 1 based, vertices are zero based.
" W" O- {- |7 l/ G# N9 m5 A - (setq vpt (cdr (getLwVert (- ctr 1))))2 o ^3 x3 e: M ]9 ?# F
- (set_tile "xtext" (rtos (setq x1 (car vpt))))' O2 ?) r( Y; Z* j, e$ N
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))6 u: L! B( @) q: M
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))" D) @% I& d' n$ A, n6 O( ~3 e
- )
_# R* N& \5 o+ N& J2 g9 ]' {9 h - (progn4 e' n% m# H, ~: W7 Y8 e
- (if (= ptype 0)
5 N8 L: F+ ?; a. R+ G - (setq vpt (trans (cdr (assoc 10 vlist)) 0 1))( [( p$ f! C0 E9 o
- (setq vpt (trans (cdr (assoc 10 vlist)) ename 1))
2 n# j% M+ N: @/ ^- D' b& V - )
7 E3 A2 C, p0 G0 x: g
) z/ J4 F3 D, B' S5 Y- (set_tile "xtext" (rtos (setq x1 (car vpt))))
9 F. i9 ]! L2 l$ U9 ?! L" B1 a - (set_tile "ytext" (rtos (setq y1 (cadr vpt))))0 h+ F, ]7 `7 w9 R$ k8 _
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
% W( P/ y, t5 i - )1 Q# t! J% S. y
- )6 O& e P- L' f/ ~
8 X2 u2 i, { I* P$ G- )
9 Z& B, s( @2 ?6 X8 \ - ;; This is the equivalent to doing an entnext on the heavy weight
$ A2 n/ l7 }+ h! x2 ?$ V9 {6 A* @ - ;; polylines. The hard coded '4' below allow stepping over the( l- |1 u0 t+ s8 v. }6 B: `
- ;; 40 41 and 42 group code information. The while loop finds the
; c* |" [) Z1 S - ;; first vertex which will be used as the starting assoc in the( X I8 @) x$ D w( o
- ;; call to nth.3 F) ~% x# z! L1 O2 {4 O
- ;;( Q# ~8 @; b2 O2 @! [
- (defun getLwVert (tmpctr / count tmp)1 {. M" r% L. M
- (setq count 0)/ u, i: k+ M7 v; R! D
- (while (/= (car (nth count vlist)) 10)
+ Q. w8 H* z8 X+ z: C5 X* d$ k - (setq count (+ count 1))
% u4 _3 c# v. {: F4 T# Q - )6 c, d/ ?) q$ v3 m7 U t# f- s
- ;; If the counter reaches the number of vertices,
/ s+ w3 O7 f" p9 \5 D1 { - ;; reset ctr and tmpctr to zero again.
: J# u" [+ i# ~ - (if (= tmpctr (cdr (assoc 90 vlist))), s! E. i9 a" u8 V$ o( K3 J* d
- (progn- z t( W6 F4 C8 z7 q; H3 I# K0 S9 Z
- (setq ctr 0)
9 v) q8 k- J( w2 w* S- h+ X: ] - (setq tmpctr 0)
0 |4 e' H, v* |& r - )9 ~4 D1 O$ @) z2 b: l+ S# |
- )
4 `) z9 B% O: N7 h& ? - (setq tmp (nth (+ count (* tmpctr 4)) vlist))
4 h; D3 i% u1 W% C/ N( |( I - (setq tmp (append tmp (list(cdr (assoc 38 vlist)))))
- ]% m1 o+ P$ h* n - (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1))! Y3 Y# L( C% q0 O( o4 n- B4 t6 U
- (setq tmp (cons 10 pt1))
& X2 R3 {. ^- D% `8 ] - (setq tmp tmp)* q/ S9 T( e2 X1 Q0 W: c
- ). ?0 `( o6 @$ o0 R# R+ N9 E
- ;;2 w' m9 J I% A" K9 D2 @
- ;; Set tiles for Spline properties. If the spline is rational then we
; e: u8 R& q4 j# t - ;; need to display the weight values of the control points, so set
; K8 E4 N9 j8 x: i V, L - ;; flag to 1.
' l; D, J/ ^, ~: O5 T0 J7 E. ^4 F - ;; 1 = rational spline
, \! K/ d: {' b" {" E9 k5 Q) O) } - ;; 0 = non-rational spline1 L F& l" x; m+ Z! V, g& i/ K
- ;;
: g# A$ y3 X: p5 } - (defun set_tile_spline_props ()' I" w e5 f% ?# G. o4 P
- (setq rational_spl_flag 0) ;; initialize rational spline flag+ J+ Q/ B3 ^ ^7 s' N- O! H/ K
- (set_tile "Degree" (itoa (cdr (assoc 71 elist))))
8 s6 j$ c( J$ }3 P+ p% }6 q% s - (setq bit70 (cdr (assoc 70 elist)))0 z$ F2 S/ Y9 N) F6 V. w
- (if (= (logand bit70 1) 1)
I. k0 T% C" k! b1 \0 z - (set_tile "SpProp4" "Closed")1 u* b# N$ A( P2 P# W' B _
- (set_tile "SpProp4" " ")
3 h' ~; ~" l8 Y' E/ ` - )# Q8 n/ Z h1 J# G4 S
- (if (= (logand bit70 2) 2)
4 `: W" V2 C; }; G" i - (set_tile "SpProp3" "Periodic")) D3 m7 A, z$ w
- (set_tile "SpProp3" "Non-Periodic")+ ?; S3 @! M M, J+ o
- )
) t4 ~; M* i( B* o7 D - (if (= (logand bit70 4) 4). _: q2 _& P& [+ q$ L+ e
- (progn ~5 U3 S! ?0 Y) J/ ]: y" B
- (set_tile "SpProp2" "Rational")6 @2 O+ H* O" z2 D
- (setq rational_spl_flag 1) ;; this is a rational spline
2 C% b3 n* v* }- z - )
" W' c! ~ ~5 k# X - (set_tile "SpProp2" "Non-Rational")
. d, {8 [. T+ ?0 I/ a. p W - )2 o6 ^/ X( V4 j) W5 P5 V- |
- (if (= (logand bit70 8) 8) } `) h. X6 Q/ i! z/ ]0 L
- (set_tile "SpProp1" "Planar")
" y* X0 T/ J9 m - (set_tile "SpProp1" "Non-Planar")
% r4 t, ^; O ?3 I6 B- e' F - )
- X9 W7 [9 E; q. s - (if (= (logand bit70 16) 16)7 `4 ^5 _1 R" ^# B% l/ u
- (set_tile "SpProp5" "Linear")
# f; M" ^9 o. e% v - (set_tile "SpProp5" " ")
% ]3 G" @, w" y% ]6 o( J - )
$ c, Z, d. l3 m8 r2 R - )- H) J+ b6 G A( A# n1 S- C1 J
- ;;; |/ F X, H2 ^* u$ [
- ;; XYZ Point values for spline points
% _* U& g0 p! p* S' l - ;; Need to account for WCS/UCS" B3 c# s6 x5 d$ ?9 A
- ;;
' v: f* e2 u' Z& M( p9 \4 a - (defun set_tile_cntl_pt ()
9 `9 J: C- t2 B g! O/ g - (setq cntl-pt (cdr (assoc 10 elist)))
4 R5 [7 |) b3 t: s" x: @. f - (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
K8 z8 K, V; \! Q# I0 _7 I: i - (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))* D/ I$ C- {* U) o# Z8 s
- (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))
6 w& s, ^3 _# g2 S# @& o - (if (= rational_spl_flag 1) ;; if rational spline6 j+ x; l4 M- L" E8 Y& j7 \. g f
- (progn ;; show weight- a& d6 [3 A) P X
- (setq weight (cdr (assoc 41 elist)))
6 E) l7 [5 q3 \% F - (set_tile "weight" (rtos weight))6 a: \( V6 _6 `; i' u4 H# c; i. F
- ) ;; else* s, H' G. P; Q; b6 g9 U4 f. K$ U# ~
- (mode_tile "weight_text" 1) ;; disable weight field' L' r6 o# r3 o6 C
- )
1 H X( B* b' F* c0 y0 [ - )& k/ n7 R: m2 S) }. u; e0 A
- ;;7 f( g' d8 \0 K7 N/ F* ~
- ;; XYZ Point values for spline points& ]$ U. t0 N9 u! L/ k9 M0 c3 ^
- ;; Need to account for WCS/UCS3 x7 ~2 [0 ^' _% b
- ;;
* h: ?/ {" ~3 r0 I: D( _7 f - (defun set_tile_data_pt ()% G* r6 k1 V/ s& |8 q
- (if (not (assoc 11 elist))
. q/ S- L) m" n0 k7 P5 Z+ l+ e; j - (mode_tile "data_pts" 1)1 y9 d' Z3 q' K W
- (progn" J/ r7 |5 R1 w- u. }
- (setq data-pt (cdr (assoc 11 elist)))! q5 K4 M6 L+ l4 Z: ^7 R) T) c+ R
- ;; display points with current precision.
; F4 Y7 e8 g9 N - (set_tile "dxtext" (rtos (setq x1 (car data-pt))))
9 J; ?6 H/ h- y8 V9 B! } - (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
. e& y2 G) _. p; B p - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
$ \5 F0 C" @( s, @ - ) D5 `; Z! K& h7 T2 ^
- )
' T, b0 Z5 U; G1 D - )
+ R% U. q$ F, [3 o# @. _ - ;;
6 u$ V& H9 {) C3 z2 r% w4 f - ;; Fit curve, fit spline, or smooth spline surface setting
T9 E( J, V5 W+ R' o4 [. W - ;;/ E' |- K: h* S
- (defun set_tile_fitsmooth ()
; G" M$ W3 M# k - (cond: K7 e: H! _& k( G# n6 h
- ((= (cdr (assoc 0 elist)) "LWPOLYLINE")
# y, |5 D8 M- u5 Y l- Y - (set_tile "none" "1"); s k/ m( Q |/ E
- )6 q$ M7 i6 A6 {# f. G2 X6 ?
- ((= (logand bit70 4) 4). t2 E c- n& F: E9 z, p$ N& z! c
- (cond
1 y# e% Y; W! B1 S, }! z% V1 f - ((= bit75 0)
8 E2 j" d7 F" d3 v9 O4 o& X - (set_tile "none" "1")" j+ o3 U* Y! o+ O
- (setq spltype 0)& j7 X8 M3 Z; A! {# K$ L
- )9 Z: N7 r" z9 I6 S& \( I
- ((= bit75 5)
4 c: r" X6 m4 ?! Q( x7 ^9 h* ? - (set_tile "quad" "1")! Y# _. b. r* H" f: B
- (setq spltype 5)
4 q4 y" N ~1 S0 s+ V( G - )3 E4 u8 c' c D# `/ |: ^) E
- ((= bit75 6)- M1 D: @) F, r9 d, @0 L- H' Z
- (set_tile "cubic" "1")* p; _* S& z! o- F% r
- (setq spltype 6): K. K4 U4 I& H1 H* `: q# K
- )
% v8 o7 V+ e- \; }' P9 U5 D - ((= bit75 8)4 n1 p+ Y: B3 H u$ E4 _
- (set_tile "bezier" "1")0 ?, [$ A8 F' B9 ]$ l# d0 I
- (setq spltype 8)$ m2 k: n1 Z2 a% G3 w+ J
- )
- I& f' P1 G; D6 D8 k) _ - )/ z8 F4 Q7 ~8 N. p8 ~+ {
- )
4 O6 o" `% M3 K1 r( o; z B - ((= (logand bit70 2) 2)
$ p; [7 R" K+ W- J, f/ \ - (set_tile "fit" "1"), J; ^8 X. b* c8 O: ^6 F. [! i/ b
- (setq spltype 1)9 |7 V5 X# u- d9 V% B( u
- )6 P5 y: {' B. {5 i' Y: `( `3 c8 p
- (T (set_tile "none" "1"))
, m4 {; \' N2 @) _* B% b* T+ S! M, \ - ) [6 ]3 S- ?3 Z" W- O9 z
- ); n) Q2 q# ^0 |8 J8 e
- ;;- k. l/ q( O/ V! O* ]' Y1 U
- ;; Closed or Open mesh and polyline setting4 g+ | Q; F6 C
- ;;
- C' u4 p; h! F' Q - (defun set_tile_closed ()
" {- m- D' w9 p2 ~% D/ ] - (if (= pltype "3D mesh")% p; \$ p$ S6 D/ g+ Q* S3 b* z
- (progn
( t/ @! s5 t8 z, A - (if (= (logand bit70 32) 32)/ _6 p k) ^1 ]' p. B& A9 W/ x
- (set_tile "closedn" (setq closedn "1")), \8 y# K8 C3 Z1 ^0 q3 L6 h
- (set_tile "closedn" (setq closedn "0"))
8 O- e# l- _: N - )
# j$ X% R+ S/ M% {/ m2 _ - (if (= (logand bit70 1) 1)
- K' }4 P! W# P9 Z+ X) r1 h - (set_tile "closedm" (setq closed "1"))( J+ k; A# @. e) o7 H
- (set_tile "closedm" (setq closed "0")). N/ x0 P. }7 F# l& |; ]! t
- ). {: F5 f: ]% z P; Q+ \
- (setq old-closedm closedm old-closedn closedn)
2 ^ f( H4 {* a- n3 ` - ) m/ M0 U8 S3 h" D8 G! X% \8 d2 P: O
- )" \5 [- T3 P0 b1 P. v
- (if (or (= pltype "2D polyline")$ c* K7 E. {) b: a% [' k' \# i
- (= pltype "3D polyline"), D9 B3 e! x! Y2 D
- )
F: S$ ?: ^: R* [5 u - (progn
E) r4 V' ^' v! W8 Q - (if (= (logand bit70 1) 1)
/ R+ [* m3 q3 F m: d$ [- p - (set_tile "closed" (setq closed "1"))- e9 i. [" b [& q/ J5 s D
- (set_tile "closed" (setq closed "0"))
0 e: e1 H: Q% x4 @8 u0 z9 z7 U - )
: ]$ A9 c) K1 o8 O- f0 U# U - (setq old-closed closed)
# [1 O& R' n6 P! p! u- n$ |7 T - ): M3 s. G% E. n% G& ]
- )1 M7 d8 c+ ]" N# f2 E1 [- E* U4 O
- )1 V7 Y2 {, E" w% l2 ^
- ;; Set common action tiles/ Y2 H: ]( h* n- z- k% V
- ;;& e- n6 b( }/ ~
- ;; Defines action to be taken when pressing various widgets. It is called
3 u9 u; G; S& I% B - ;; for every object dialogue. Not all widgets exist for each object dialogue,
$ d0 }! W; [/ y5 P2 f - ;; but defining an action for a non-existent widget does no harm.
. l9 y9 A2 D/ b+ b - (defun set_action_tiles ()
7 U# N0 a w5 `9 Y* e. t - (action_tile "cancel" "(dismiss_dialog 0)")
9 S9 ~% `3 K% z; s4 c* { - (action_tile "accept" "(dismiss_dialog 1)")
' M: [4 S( Z2 C' _6 w - (action_tile "help" "(help \"\" help_entry)")
' \* A5 a$ V m B0 ` - (action_tile "b_color" "(getcolor)")
6 w( o& n$ V$ c' Z7 q8 x# ^ - (action_tile "show_image" "(getcolor)"): [0 h. i* [/ R
- (action_tile "b_name" "(setq elayer (getlayer))")* r' z9 D, K/ w1 a% ~) A! E) S ~+ q
- (action_tile "b_line" "(setq eltype (getltype))")
4 S/ R: P0 F9 P% `2 a1 J8 k, N - (action_tile "eb_thickness" "(getthickness $value)")
! e6 y" O0 ^! C$ l$ L, |$ s8 X/ \8 A I - (action_tile "eb_ltscale" "(getltscale $value)")
, |* G6 K8 d: @( }" j - b5 a/ B) s3 f! U. b/ ]
- (action_tile "pick_1" "(dismiss_dialog 3)")8 J" G3 r1 V9 b N$ M# F% ?3 Y+ D
- (action_tile "pick_2" "(dismiss_dialog 4)")# d" v- m( ?; a; K) B! V
- (action_tile "pick_3" "(dismiss_dialog 5)")0 I* c2 ]+ m+ s- p( R' Z7 J& @2 q
- (action_tile "pick_4" "(dismiss_dialog 6)")
* I2 p! P0 k, A: n1 O9 }# Z* G - (action_tile "x1_pt" "(ver_x1 $value)")7 h# h% L' n. Y. w6 D
- (action_tile "y1_pt" "(ver_y1 $value)")# g7 z8 [0 k- x. x2 A) C; y( E
- (action_tile "z1_pt" "(ver_z1 $value)")0 n/ C" p& h, d: d ^
- (action_tile "x2_pt" "(ver_x2 $value)")$ i; m& u* N: B$ V1 k3 `4 ?& h
- (action_tile "y2_pt" "(ver_y2 $value)")
! J5 T; V1 g$ k. V% S* R2 ?7 r - (action_tile "z2_pt" "(ver_z2 $value)")
2 O! C2 ?& O& N) H( l1 ^; o - (action_tile "x3_pt" "(ver_x3 $value)")
! h4 b- Z: e$ w, r( i' _& f. v - (action_tile "y3_pt" "(ver_y3 $value)")
* V- H8 A& }( d) l9 w - (action_tile "z3_pt" "(ver_z3 $value)")( k4 Y! g! t1 `+ M8 f
- (action_tile "x4_pt" "(ver_x4 $value)")
+ ]4 V) j. |, G - (action_tile "y4_pt" "(ver_y4 $value)")
9 E$ {9 _( Z7 { - (action_tile "z4_pt" "(ver_4 $value)")
8 \* j% y% c; O& q& h( c
# [2 G% j* v ~/ I0 X$ W, K- ;; Action tiles for Xline & Ray
8 t% M8 K7 W; }" D& Q4 n. h - (action_tile "xline_x1" "(ver_xline_x1 $value)")
9 [* R( u! g* n5 |! R$ ?2 j# m& y - (action_tile "xline_y1" "(ver_xline_y1 $value)")
; W9 I, D3 w2 B1 ]0 I# q - (action_tile "xline_z1" "(ver_xline_z1 $value)")$ y8 B5 d& l$ u0 f. ^; V) I9 [9 ^
- (action_tile "xline_x2" "(ver_xline_x2 $value)")8 o$ m4 {' V; f9 s# I
- (action_tile "xline_y2" "(ver_xline_y2 $value)")
$ {' m$ D8 P$ B' [ t( z1 ] - (action_tile "xline_z2" "(ver_xline_z2 $value)")5 O3 w& d$ U# g2 k0 E. r8 A
+ b, f* g* S# H1 n$ k) i- (action_tile "edge_1" "(setq edge1 $value)")
1 N& w; l# X {' h$ k- x - (action_tile "edge_2" "(setq edge2 $value)")
* P3 f# k8 S/ i0 r" f! h6 l - (action_tile "edge_3" "(setq edge3 $value)")/ {! r$ m/ e' K6 z) { }
- (action_tile "edge_4" "(setq edge4 $value)")! r1 j5 Y: W2 c6 f& |
- 5 H" F9 C/ @ a" k4 `$ |" G$ B
- (action_tile "radius" "(ver_rad $value)")5 f& {0 j7 ~4 j# y. B
- (action_tile "st_ang" "(ver_ang1 $value)")- u. l& U# \' }$ \$ R
- (action_tile "end_ang" "(ver_ang2 $value)")
0 P u9 M6 W& I5 a- g - (action_tile "end_eang" "(ver_eang $value)")' ]( R; T0 l& }5 h, ]3 m. \. b
- (action_tile "minrad" "(ver_minrad $value)")# {) }* J8 g, @, l6 z$ c
- (action_tile "majrad" "(ver_majrad $value)")
- o5 N$ p1 O$ p8 |* Z+ P2 ~1 _' @
! J2 \* m: _, a- (action_tile "xscale" "(ver_xscl $value)")# |, V T* f" i' V
- (action_tile "yscale" "(ver_yscl $value)")
; o5 l4 _9 G ]) W/ C, T. p& v - (action_tile "zscale" "(ver_zscl $value)")2 L/ m6 f; V v! D) ^) {( E6 R
- (action_tile "rot" "(ver_rot $value)")
& m& O2 A) m" C% I - (action_tile "columns" "(ver_col $value)")
) _# l. a! W( s4 X& p4 h1 ? - (action_tile "rows" "(ver_row $value)")
6 K# ~9 q" y! |9 E J5 s - (action_tile "col_sp" "(ver_colsp $value)")
( @. K& u2 w" W5 F, v5 p% x - (action_tile "row_sp" "(ver_rowsp $value)"), B: A" _: y. [
- , |1 L7 U9 Q( z' }0 ~; z0 l2 m) E$ c
- (action_tile "hght" "(ver_hght $value)")
- N# g+ P3 O- j0 u* n - (action_tile "wid" "(ver_wid $value)")
" W5 w) f, I r- m& b& G3 k. O& ]; N# I - (action_tile "obl" "(ver_obl $value)")3 L; ] A- R7 ?5 {% A% S* r/ a
- (action_tile "style" "(style_act $value)")3 G& n w& j* S- T1 t8 T
, D( Y2 N$ y q4 F; Z+ a0 X& _- (action_tile "t_string" "(ddgettext)"), n/ ~6 e- v- X0 C# x- s) I
- (action_tile "tag" "(ver_tag)")2 C" \5 q& H+ x' y* T
- (action_tile "prompt" "(ddgetprompt)")
" b6 P, S( ]/ x - (action_tile "bkwd" "(setq bkwd (atoi $value))")
( j8 D3 _/ s, {; w1 g2 v h - (action_tile "upsd" "(setq upsd (atoi $value))")
- P6 M5 D2 x3 \# {/ f/ F! j8 L/ A - (action_tile "inv" "(setq inv (atoi $value))")* N, m7 F2 l8 ?" }0 |- U" b
- (action_tile "con" "(setq con (atoi $value))")3 ?) P0 ?; |- t# D, l1 N
- (action_tile "ver" "(setq vfy (atoi $value))")
5 [% t8 x* w9 \7 l+ ]) ]4 O+ F: F - (action_tile "pre" "(setq pre (atoi $value))")
7 I0 e5 q1 y' l1 \ `* s% D! i+ r - (action_tile "popup_just" "(jlist_act $value)")
; Y& W- ?+ c' S- _
4 [, G9 J0 c# ` Y2 \+ f8 q$ j7 h4 I- (action_tile "closed" "(setq closed $value)")" C1 n7 E) `6 j, e3 u
- (action_tile "ltgen" "(setq ltgen $value)")
" [2 F& h0 R2 \/ q$ ?8 [5 f" s - (action_tile "closedm" "(setq closedm $value)")
' G8 G/ G( b# R3 b1 d - (action_tile "closedn" "(setq closedn $value)")/ J% H2 k0 p& N! m7 j. }! {
- (action_tile "next_v" "(next_vertex)")
5 ~8 l' R9 `+ w) O3 r - (action_tile "xcliponoff" "(setq xcliponoff $value)")
9 ^& T, [3 C5 R% T7 P
7 b- m9 e) L3 U* G/ a2 W- (action_tile "next_cntlpt" "(next_cntl_pt)")$ ]$ u0 G4 r% @
- (action_tile "next_datapt" "(next_data_pt)")+ ?9 D8 J" c. h$ F
7 L3 {7 v1 \1 ^7 r1 H- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")
2 Q# Z: V* g! V3 f t) ]6 i& [9 f( ? - (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")
* o/ P! j3 m! C: j, D( w2 | - (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")$ S7 S9 E# p( j7 j5 g
- (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))")
; Y8 ^3 O: n8 P9 p5 x% h - (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))") }/ u& o7 o. |9 \
- ' d6 _* K; s ?
- (action_tile "u" "(ver_u $value)")$ K4 g( M4 Y( C ^$ w, p1 }
- (action_tile "v" "(ver_v $value)")2 a1 T9 R( z J( A& ?) p
- )
3 U' [# p; T+ R& [" C7 }- [$ ^: b
: p/ P) S8 u1 O# z$ K: ]+ T' u- (defun ddgettext()
4 D! e; t7 J C1 X% o - (setq text (get_tile "t_string"))
7 ]2 y; ]( `# I' p& [! p1 D6 B - )
* N6 V5 N* }! c: ]; F - ! B( F4 l Y$ s9 w
- (defun ddgetprompt()9 G; o9 ^9 V: ?+ M0 O
- (setq atprompt (get_tile "prompt")), d/ v- O$ o+ g1 h. |% c% J" p: n
- )/ l7 w& z" T- C* D; |, K
- ' t& A9 d- E$ t7 F
- ;; As OW doesn't support disabling of individual radio buttons within
9 {* E K# M, @& h$ Z: w! }" _ - ;; clusters, a check must be performed as to the legitimacy of the5 k2 S( k5 a7 |0 h9 h' `
- ;; button pushed and reset if necessary.
- F3 q5 O; v6 o. l0 d4 {, O: P - (defun radio_gaga (pushed)
1 x. W( i6 _3 _/ `* | - (cond
* G' L* |" e6 X - ((and (= pltype "3D polyline")7 I3 V* ~. ~1 Q# e: A; |
- (or (= pushed "fit")
1 {" M7 C2 l& z5 @& R+ x4 E - (= pushed "bezier")" n6 X) Z0 B1 e' D8 t
- )* _$ \% b2 B: E& K- P; ^& { _
- )
~; u0 z0 P( ]- V+ P - (set_tile "none" "1")& h/ g/ ?3 Z: |' d" x+ x
- nil% W7 P& x/ B/ e) Q* I
- )+ M* X8 r. P* v+ H
- ((and (= pltype "3D mesh")2 M5 ]: I7 e$ K0 f+ s
- (= "fit" pushed)
2 H! S7 Z! K: W8 U! U9 C3 r/ J; M - )
7 _) ]/ M4 ?# o5 F0 E. r - (set_tile "none" "1"), S6 d, x( k& Z$ \% s
- nil8 ` ^" \: f. x: t8 R) D q; D
- )# B, d, x8 i, g: t3 N0 |$ T7 [
- ((= pltype "Polyface mesh")
5 y+ [7 W: b8 F- Z - (set_tile "none" "1")$ a, i, l, J( J1 Q! d
- nil& m( m0 m% I7 h) j
- )# D$ Z5 k0 \& G: s1 `# Q
- ((and (= pltype "2D polyline"): E: B; h% h* n! ]! S! Q# M
- (= "bezier" pushed)
4 t3 n/ Q9 i8 [) m" C/ U5 K - )& r" Y3 K4 M4 F. ^
- (set_tile "none" "1")
' z# K4 v5 f; x I5 g! z - nil
4 J/ K$ Q }4 ]$ h+ q - )
# H2 d1 d1 e( b0 G" l$ i# K9 D - (T)
$ ^% q) h3 V' @$ ^& P% r - )# X% \% t, B) i5 Z+ g7 D
- )
I6 n; a+ ~$ ^5 ~1 G; d( Z! x- }! O - ;;7 G2 U* O) t# ~
- (defun set_uv (type_n)
: e8 I, R. t: J" j( T* f6 g - (setq spltype type_n)5 [, k0 F! S* @, _4 ~8 b
- (if (= pltype "3D mesh")
1 P4 Q' e, R- h" j( ?) m H - (if (= spltype 0)
2 M' f" Q9 l! B; [! Z3 ~" D - (progn
?, V* R' H; _) E" l ~ - (set_tile "u" (itoa (setq u 0)))
5 s! @7 e2 K, {& u* \5 P L3 x - (set_tile "v" (itoa (setq v 0)))9 ?+ x$ \' l* D* U6 z9 H
- )
# u1 W; K5 m. m: k8 A - (progn
. @5 R; T; N; g3 I - (if (= u 0)
+ Z! s! y* u2 o/ |/ L4 f( F% }0 w7 v - (set_tile "u" (itoa (setq u (getvar "surfu"))))/ G/ x2 P! [9 u4 e( c; x) t
- ). F0 h7 i8 G, k5 M# f8 }
- (if (= v 0): K* j' t7 Q }& v; U. n# S$ h( R. e
- (set_tile "v" (itoa (setq v (getvar "surfv"))))& \& e* E# y4 n2 V& b
- )
$ m$ a$ e" V: G: _0 s - )0 G/ X) s- `$ |3 t: C
- )
1 C9 Y' ~8 X* \$ x) R! [ - )
0 [4 @$ Z* _& u! ]1 l - )
4 C L* }% B# [# ]' t, C - . `! |. H+ k/ i, b) g* [$ c2 g
- 1 s/ m7 F; T$ c
- ;;6 D: b' h; p$ |" W' r2 D
- ;; Verification functions2 \ ~0 l2 b* C( \- @
- ;;( E$ I4 X+ o+ l3 }, r4 m
- ;; Verify distance function. This takes a new X, Y, or Z coordinate or/ K/ k5 {$ r7 i* _
- ;; distance value, the tile name, and the previous value as arguments.* N! B6 k8 z) n2 t6 J5 X
- ;; If the distance is valid, it returns the distance and resets the tile.& a: o7 s( `( [* i3 b
- ;; Otherwise, it returns the previous value, sets the error tile and keeps; z/ `( m* W X. q6 \' }
- ;; focus on the tile. Shifting focus to the tile with invalid value can' j, D/ H x, \
- ;; trigger a callback from another tile whose value is valid. In order3 ^& Y* i5 U, R5 z
- ;; to keep the error message from being cleared by this secondary callback,: e2 x" ^3 r6 l
- ;; the variable errchk is set and checked. The last-tile variable is set& ^4 m4 s1 T# e8 m0 @5 C
- ;; and checked to ensure the error message is properly cleared when the. z& I" R. |- }( _: _" [; r
- ;; user corrects the value and hits return.' B3 z+ c# F, s+ q, v* i
- ;;/ e5 S3 }7 z0 j, Z
- (defun verify_d (tile value old-value / coord valid errmsg)
; l) |( F$ C+ z7 m - (setq valid nil errmsg "Invalid input value.")
) E3 r# H+ F# c; Z# Q - (if (setq coord (distof value))
9 |9 M6 x7 E+ c6 _ - (progn. t M1 z. e( V: G' @8 T( |# D7 a7 K# ?
- (cond
' Q6 o2 N1 R1 T* W4 m# P' x - ((or (= tile "radius")% u) V- Z$ @' Y- _4 o- {' }
- (= tile "hght")
7 w, q3 j% _- i3 n8 g ^ X6 B9 v7 Z - (= tile "wid")6 W% q6 O+ Q. W4 R$ u
- (= tile "majrad")9 @$ C' \9 J0 t8 y
- (= tile "minrad")
4 ? m! N& t- E3 N4 k - (= tile "eb_ltscale")+ n' U! A, N9 B2 m" s& `
- )
2 u1 X: p1 S$ S' |# ` - (if (> coord 0)
1 Q( W! ^; x# `. I, O+ I, n - (setq valid T)
* D1 o* {0 x4 [# I, s4 u - (setq errmsg "Value must be positive and nonzero.")
/ D9 m2 f9 W/ {5 w( w - )/ G2 m$ t9 q9 ~! l
- )
0 n" X9 S% B# e - ((or (= tile "xscale")
2 U: @/ h1 f1 A9 l: s' ~ - (= tile "yscale")8 ^# S* R" D; p
- (= tile "zscale")
9 U7 y! X* y7 M' [+ f2 E - )0 @# G1 b% l- u# s5 n
- (if (/= coord 0)& W R, H: j& }0 M; W& _' X& D" S7 h1 k
- (setq valid T)
L) z9 j5 R7 { - (setq errmsg "Value must be nonzero.")9 J% S; C. U( w4 K0 [# e& _
- )/ ]- P2 r5 l* w. w$ q: Y
- )
0 i% W- S8 p: k( K6 v! \ - (T (setq valid T))
& l$ S, |( T# Y3 F2 b, v0 f5 \ - )* p s. a z; l
- )
0 R7 b2 \" f7 A - (setq valid nil): M- O" j/ y b) m4 ^: z* K& t0 m
- )
( v. y/ |6 i7 O - (if valid
0 ]. H' Q/ c8 q ^9 I - (progn
8 d6 h! z7 B: k1 Q3 Q. z - (if (or (= errchk 0) (= tile last-tile))" Y7 y2 @9 K# ^; q0 y! ]
- (set_tile "error" "")8 [9 O7 L+ @% i
- )/ P' X- z/ l8 i; L
- (set_tile tile (ai_rtos coord))6 ^3 m" `3 w+ `' L+ I
- (setq errchk 0)
3 l3 n1 b E8 z4 { - (setq last-tile tile)( V+ V C* x, V1 j
- coord
{1 K- L% ]! h/ d1 [ - )
+ F" C r% t1 f - (progn
; c" R0 c; n* ^ - (mode_tile tile 2) ; Move focus to offending field" H- j$ |% F" f0 n- M4 [* c
- (mode_tile tile 3) ; Select offending text
: l1 b( U1 A- v' A5 b) o5 l - (set_tile "error" errmsg)
$ B" \+ O/ ^! E' ` - (setq errchk 1)
: y: _; [% t+ {9 C0 [+ P$ V - (setq last-tile tile)# u. F9 a9 _$ m0 q. t. v& @% A
- old-value
: w( X B7 ^/ `7 m) G3 y5 ~ - )# \/ d C; s X/ H3 M R
- )
! | |, {0 d! y) @* [* p" c- Z - ): w: m* c0 H+ |/ F9 l4 m5 S
- ;; Function for Xline coord edit box checking.
' ?# \1 y4 T% z+ F) s - (defun verify_xline (tile value old-value / coord valid errmsg)
8 y( M$ ~: y$ A - (setq valid nil errmsg "Invalid input value.")! X4 a$ o# @4 e% L) Y1 N' c
- (if (setq coord (distof value))
/ u6 _9 g7 s" N& E - (setq valid T)
, R$ m; w& _' Q; V% ?. b4 w - (setq valid nil)
k2 O* W8 f( n8 T0 X/ G% u - )- z. Z, f0 O: E4 i# J; w
- (if (and coord
" b: o9 O, L! z2 t5 T0 ]$ O - (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) )* G! ~9 d* W7 H. @, T6 z
- (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )
' ~ j1 _- x( Q. y - (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) )0 y( F7 w5 b* J( q3 t& Z7 ?! I- L
- )
7 B9 _4 q; W5 h! E" M$ z$ } - )
% u$ V0 O( M! ?1 v v6 t - (progn5 \4 c9 C3 {$ Q5 c
- (setq errmsg
0 j7 u2 W: \4 B+ j$ ^* {! q - "The Root point and the Second point cannot be equal.")
/ O- \& |6 R+ q; v$ g% b - (setq valid nil)& m: Q. t4 X4 `4 S- F" z
- )* V. _& P+ z( X$ k i
- )
7 h7 S( I$ P2 S% `8 E - (if valid- ~0 \+ g7 U$ b8 h+ A
- (progn
: J* J, e+ a6 H4 w# F: }1 |7 g - (if (or (= errchk 0) (= tile last-tile))0 |! _4 k; }) \7 o, _) v
- (set_tile "error" "") Y9 [9 K, @5 _" s4 m( j
- )
* _2 Q& y4 P- X' } F1 Q) h - (set_tile tile (ai_rtos coord))( R. Q4 P' c8 P0 t% t
- (setq errchk 0)
) d* ]" W4 x+ p. s9 k# B - (setq last-tile tile)
7 ?4 W8 H; i( c& f) @) o5 l7 t - coord
7 A5 m6 i4 X" k - )* D; t5 Z f- I$ f8 {; V$ F, i2 I
- (progn
4 n! [3 S9 q0 T3 D$ C - (mode_tile tile 2) ; Move focus to offending field9 O4 q! Q6 F- m! D
- (mode_tile tile 3) ; Select offending text! H; y; r3 G8 P, q2 R$ S, k7 n5 [
- (set_tile "error" errmsg)5 z; }/ Z, W' M7 m! h' q
- (setq errchk 1); D2 a" k k M; y! B7 z9 A
- (setq last-tile tile)3 O n0 Y' K6 e2 v2 I" x- d' D8 @5 ^9 L! f
- old-value* U H2 R: {5 k1 J* M( e& r0 n
- )2 i M- R2 M: G# [. ]! P
- )8 y$ w! p/ ~' p: C2 c4 H
- )
& z4 t1 u; x7 g0 K - 9 b2 r! W# c6 n0 Y2 d( H
- ;;
0 t/ W7 y) c4 ?( _% g - ;; Verify angle function. This takes an angle and a tile name as arguments.
; ^9 \" v+ K: _: p) M - ;; If the angle is valid, it returns the angle and resets the tile.4 s# G3 ? v, Y+ n, s
- ;; Otherwise, it sets the error tile and keeps focus on the tile.# k w% Y" c( _
- ;;
3 M& i; B+ l( v2 i& x - (defun verify_a (tile value old-value / ang valid errmsg oblqmax)
3 B" A3 g0 _6 _1 k4 w - (setq valid nil
# D) R8 H" q' I9 i% b# I1 u - errmsg "Illegal input value."
7 M# b2 e9 G- x8 Y4 c' F - )$ B1 Q( e/ {* e, f4 V6 O- F& y
- (if (setq ang (angtof value))
! s$ {" I6 w$ z) e2 o$ Y) }, u6 _# O - (cond8 E, v: N5 W. d9 x
- ((= tile "obl") ; Restrict obliquing angle
, ]- f! Q; _+ X [4 @# ~ - (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))% t ?- @. W) d
- (if (or (<= ang oblqmax)' P( {( M% D8 F. m9 R
- (>= ang (- (* 2.0 PI) oblqmax))# x/ o9 E1 E M/ I5 |4 M
- )
0 U& h$ v* y6 n3 ?( g3 A7 E - (setq valid T)0 T$ w/ x) [9 F2 o! v
- (setq errmsg
9 b6 X3 m. ^ W) P' q( C' D - "Value must be between -85 and +85 degrees.")
$ Z* [# J! q( h0 e4 H2 Z - )8 u ^8 w; r0 u
- )
' ^( [. h7 f/ D - (T (setq valid T)) ; Other angles not restricted
- i! N, A2 Q4 z' ]4 { - ) ?/ |& B6 u; k, c5 F4 ~; D. B
- (setq valid nil) ; Invalid angle input) ?9 v' Q& j0 ~5 r$ {4 K- e
- )
9 d5 b. f3 |7 g - (if valid
" T# E6 O: x0 ^. M2 W B5 _ - (progn/ P; K2 O: T( ^0 r% Y2 i4 A
- (if (or (= errchk 0) (= tile last-tile))
& g% O* R, E# ^( p9 t - (set_tile "error" "")9 e+ s6 k3 Z1 q
- )1 p# ?/ N+ C6 K4 \& w: j' s
- (set_tile tile (ai_angtos ang))+ C4 M# o6 ]2 k# [# \* F2 ^
- (setq errchk 0)
! h) D" a: Y6 n - (setq last-tile tile)' b) X2 @5 P% j
- ang
, u6 ?% ?4 u* ?" D9 C1 [5 U - )2 f& M6 C* B* Y8 ]7 ]
- (progn" t; T! o2 r0 K' j( h
- (mode_tile tile 2) ; Move focus to offending field7 ~, \- ~9 M7 w4 v
- (mode_tile tile 3) ; Select offending text" @4 `' F! l& a8 H& t) s/ l
- (setq last-tile tile)) S1 b* S# B4 X) [
- (setq errchk 1)& Z1 _: t, G/ D' W9 K6 g' A
- (set_tile "error" errmsg)
: D+ M2 q' v! p1 C4 x - old-value* t; H; u+ v/ G# M. ?
- )6 U. i, Q8 M; e4 f# S' Y: D
- )
) r# X: l! e$ ?4 W# }: C5 | - )
) U# r9 N2 q* y8 S2 y/ f - ;;4 p4 o+ j8 j: [0 I: g
- ;; Verify angle function. This takes an angle and a tile name as arguments.7 ~! v: ]0 m4 j! C
- ;; If the angle is valid, it returns the angle and resets the tile.$ m: \/ R, Q: L- z* e7 I+ S
- ;; Otherwise, it sets the error tile and keeps focus on the tile.
, c' m% ^0 J7 U% `+ ~; a1 ^% z - ;; This function is specifically for the end angle of the ellipse object. If
# A: X! P u9 t5 T, A4 z - ;; the end angle resolves to zero then we want to display it as 360.
" c" v* j+ s+ a/ f - ;;
2 ~: @3 m, t d% I - (defun verify_ae (tile value old-value / ang tempend)
8 q) X! ^7 `2 W/ U - (if (setq ang (angtof value))
' N9 B1 Q3 `; ~3 A - (progn
$ E: l/ O/ b ~! V. x - (if (or (= errchk 0) (= tile last-tile))# ?" A* d) N* |: k- ^5 y9 K8 v; s
- (set_tile "error" "")# p, n. ^9 ~1 Z2 y3 @
- )
. i9 R8 m9 G- x/ p; t s$ _ - (setq tempend (ai_angtos ang))) r$ U$ E# m* \+ y$ N
- (if (= tempend "0")
- k, |+ ]9 z' T L- C/ ?0 X" g - (set_tile tile "360")
% d; m4 }9 }5 I2 M* U d3 u! H1 v7 K - (set_tile tile tempend), y: V7 c! {( A( d# D8 {
- )
: \& Y& R5 D7 X% S5 O& P: k% S - (setq errchk 0)
- U: J7 g0 N8 b% J - (setq last-tile tile)
# Z/ K8 Y; i: a' f4 \ - ang
1 e; {& K$ C; d/ g. g - )) y7 Z( w0 V! P f4 ~5 U
- (progn. a4 t3 W5 C/ L, m
- (mode_tile tile 2) ; Move focus to offending field$ |" L6 ]6 x2 B3 ~
- (mode_tile tile 3) ; Select offending text' ^ Q* A+ h5 C$ s' F' ^
- (setq last-tile tile)
" @: \% `7 y' F - (setq errchk 1)3 y) ]- P* f( ]
- (set_tile "error" "Illegal input value.")6 s. i) J* C q2 B
- old-value
7 q n- d7 T9 e7 u; H1 F3 T - )) H( k, I# p$ x
- )
. M& ^5 D2 _& v" n8 X4 z4 j# Z - )
( q# `# g Y9 f. Q6 M - ;;
( X _ e" r/ Q2 K - ;; Verify integer function. This takes an integer and a tile name as
- |% i" I9 U% ? - ;; arguments. If the integer is valid, it returns the integer and resets the
7 c8 x- w6 D8 y) L5 [6 {+ j1 q - ;; tile. Otherwise, it sets the error tile and keeps focus on the tile.' Y3 M+ b. i; D3 M" a- X C& N
- ;;: Q/ s6 R( Y* H
- (defun verify_i (tile value old-value / int valid errmsg)/ `. D; c6 n# o# y6 e- d6 Y
- (setq valid nil)
2 @7 t! W$ F' A) w# q( L' n - (setq errmsg "Value must be an integer.")4 i5 b% a. A3 ~, J6 a3 I$ g& U# [
- (setq int (atoi value)); @, e% }/ j; k
- (if (setq intchk (distof value))/ j( f+ `" _7 {$ o, }, t
- (cond
$ t1 \/ g1 x8 T g& n6 H - ((or (= tile "columns") (= tile "rows"))
8 o4 z7 f& W. v" N" _4 E' q - (if (and (= int intchk)1 c, n+ s o6 S! a) M
- (>= int 0)1 z/ t: O j8 B8 _' f
- (<= int 32767)
8 |$ i# ?/ s$ t - ) f4 U1 T; }8 K) I% V* u, j
- (setq valid T)
q( H1 _ F8 N8 h7 t9 w8 Y - (setq errmsg "Value must be an integer between 0 and 32767.")8 f8 q- M5 Y+ P9 f3 i! W8 |
- )9 }* f6 [5 m) C
- )
' H9 D6 v3 p, v9 n - ((and (or (= tile "u") (= tile "v")))
8 d3 f V$ J7 ` - (if (and (= int intchk)5 s8 O- I1 l9 j( W' e
- (>= int 0)
9 ^ q, O2 E8 p: v8 U - (< int 201)2 V* `2 t' q$ e# z6 _; j# i& m! T
- ), V" _& K2 s a
- (setq valid T)6 m+ Q6 g9 \1 ^/ e
- (setq errmsg "Value must be an integer between 0 and 200.")( `6 }# B/ f! R# q" R
- )" B+ ` ?0 r' n2 L
- )
+ X( d8 p7 e( z2 {* ^5 p& T - )3 C' ~7 }: y w$ e' d( H3 ~8 n0 U9 W
- )
* @6 K; P6 U& m' \8 z4 [! Q, _ - (if valid$ O; ]/ f: c- g ^
- (progn' W- \, U4 e1 y! p1 z
- (if (or (= errchk 0) (= tile last-tile))
* |; b3 ]8 S# h1 e$ W# R8 m - (set_tile "error" "")
' f5 h. M, ~) }0 @" Y - )
& k2 A, _9 x Z- ?- K% q& y9 W" K# K - (set_tile tile (itoa int))
. ^! T( p4 g; z- k( A( L - (setq errchk 0)- ?7 `. |. l2 E9 Z0 }- y( t7 ?# j
- (setq last-tile tile)
% X9 e5 ?$ N. g3 ~ - int" N' e. F: R: g, n) i/ q+ g
- )' q/ j5 o& J! e7 u R* \& E
- (progn
& A+ k) n X( d% C& |/ U8 Y. \ - (mode_tile tile 2) ; Move focus to offending field
. P6 @% |% _; ?# y9 q - (mode_tile tile 3) ; Select offending text7 P) a# y9 D& V; }& V/ X6 r/ W5 _
- (set_tile "error" errmsg)
* T$ q$ w5 i8 C/ f; W% H1 e; u8 { - (setq errchk 1), @9 |. O) E- I. p
- (setq last-tile tile)
; h8 F2 V0 }* f2 ^4 Q6 Y) \ - old-value
/ o5 J( B0 U4 F. o7 ` - )
' I1 H% P" H& Y1 [3 W9 ` - ): Z8 M6 X3 D$ Z
- )
2 F" T$ U( o9 A& r" U0 f0 j - ;;
5 |: r, a6 n( A1 k1 C, ^! A5 q# V$ k+ N - ;; Functions that verify tile values for integers% B3 D( s& P! L, P
- ;;9 l. A. `4 L7 d. X8 G2 v
- (defun ver_col (value)
: B- i2 F" x- A( W0 H% u - (setq columns (verify_i "columns" value columns))
: B2 R: s" g1 j4 h3 r" Y9 p% |9 [ - )
. y- E7 ^1 `) n" `0 J, ] - (defun ver_row (value)2 y l$ B" D( J k1 c3 {; `& w
- (setq rows (verify_i "rows" value rows))
$ L9 z1 W8 v- [4 {* J; i) v3 _) H - ). S0 ~% ]! @* B1 V
- (defun ver_u (value)
+ [2 J% A! }# G, I9 \& |$ E+ g z$ s/ @ - (setq u (verify_i "u" value u)) [ o0 [6 R; r# |+ s8 R
- )% S7 @) t$ z8 S, F) M: o. D; q# Y
- (defun ver_v (value)" u) R0 c3 }" @8 l
- (setq v (verify_i "v" value v)). W; g9 c- p* a1 @$ f
- )
/ G' Z {+ S8 {/ k! k9 N' P - ;;5 [" K! j1 K; Y1 v9 p
- ;; Functions that verify tile values for reals# E2 x, D' O! h1 e
- ;;
( B7 u: b# E y3 p/ ~ - (defun ver_x1 (value)
& S5 H- h ]& n- ]& l+ D$ e- a - (if (setq x1 (verify_d "x1_pt" value x1)) (calc))
( T9 i! s; V3 t9 D. J - )# ~! r: k* W: s! O7 M# I- k6 _7 o
- (defun ver_y1 (value)' l1 D) e( k* `
- (if (setq y1 (verify_d "y1_pt" value y1)) (calc))
2 u, [/ ?/ B7 [/ }' K9 W9 {& x - )
3 E z- o# \) f2 @ - (defun ver_z1 (value)0 R3 F1 U+ ~" I2 d8 J2 L! [3 Z
- (if (setq z1 (verify_d "z1_pt" value z1)) (calc))
% S9 N9 X/ X9 M3 i+ h" w/ u% i7 m - )- g, U+ A% u0 c m% J4 h: W& ]
- (defun ver_x2 (value)
5 g/ m8 h* k0 o - (if (setq x2 (verify_d "x2_pt" value x2)) (calc))
" G; K$ S' \0 I - )$ L! m, @1 C0 i0 z
- (defun ver_y2 (value)
9 o+ e& R5 x2 M4 { - (if (setq y2 (verify_d "y2_pt" value y2)) (calc))9 A& _/ y: E, i: U f- N
- )4 A0 [, [! Q! g# B p- e7 x
- (defun ver_z2 (value)2 {7 t5 G' P! T0 d5 ^0 B% C
- (if (setq z2 (verify_d "z2_pt" value z2)) (calc))
2 f& n s1 f; M9 z% D% V) M - )
( {' }/ k8 {4 U - (defun ver_x3 (value)
" K% g' k/ c ~+ h N8 y - (setq x3 (verify_d "x3_pt" value x3))
, @& O4 j9 J/ y* R" V - )- F( C9 h0 }5 d: N) W
- (defun ver_y3 (value)- j6 x) y% Y5 w) f- g7 T' _; @6 E% @
- (setq y3 (verify_d "y3_pt" value y3))
# c; d/ v. l" z. W2 @ - )* j% X6 F* s' d ~: E
- (defun ver_z3 (value)
5 V, j: F R, S+ z" f - (setq z3 (verify_d "z3_pt" value z3))+ `1 e( A! _/ @( X; T; X1 l0 A
- )3 c- H' y) Q. p% y6 x
- (defun ver_x4 (value)) v5 `5 y6 C F7 v& l) I& Z
- (setq x4 (verify_d "x4_pt" value x4))3 H+ ^, o9 N4 K, |' K
- )
: \/ a' b5 P/ l! w' S( x - (defun ver_y4 (value)! d, u9 [" \1 Y5 m x
- (setq y4 (verify_d "y4_pt" value y4))3 k: p) _7 J9 a
- )
' h% `) O9 v" a0 i9 m1 x - (defun ver_4 (value)
( o! m9 ]4 U. D4 Y7 h' [0 d& J0 \ - (setq z4 (verify_d "z4_pt" value z4))
$ E# h9 e& f6 L& e& ^ - )4 _' p: V) p, e* w+ f
- (defun ver_xscl (value)- p& Y7 B @6 ^; }/ t
- (setq xscale (verify_d "xscale" value xscale))
6 s9 M0 {/ i+ A N. o# K - )+ t5 N$ z5 |5 u/ V1 i# N
- (defun ver_yscl (value)
9 Q6 J9 g# T, D - (setq yscale (verify_d "yscale" value yscale))
! y3 l4 ^4 f4 j1 F - )
; [8 r/ c2 p7 ^, l8 o* Q6 e - (defun ver_zscl (value)
0 b3 c2 T' v( _1 H - (setq zscale (verify_d "zscale" value zscale))
6 Y- }: ^1 j/ Q: y - )
! v: G: ^5 P2 u. \; E - (defun ver_colsp (value)
/ u7 G- T7 W. v4 U* V3 t - (setq col-sp (verify_d "col_sp" value col-sp))
3 p5 b; O; g! t3 z3 g; l - )
_% P( J: a6 F4 s! R - (defun ver_rowsp (value)
! g& ]' ? b2 D4 F# f - (setq row-sp (verify_d "row_sp" value row-sp))
6 W+ l% \6 O* V - )8 W' H2 S9 }: M) v' w4 q
- (defun xclip ()
" \% X y9 g" D% I - (setq xclipmode t)
( F3 z, |2 [( @+ ] - (if (= xcliponoff "1"): S% Y2 M' a r" b/ I
- (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")+ b X* z4 L4 O5 F- f! F
- (command "_.xclip" (cdr(assoc -1 elist)) "" "_off")$ g5 t z2 b1 v: S; o2 }+ O
- )
3 U( H' G8 U6 ^& G, }7 T - )
2 s! S1 o2 b+ _0 ?8 F" Y - (defun ver_rad (value)9 }) f! }! c o C/ Y ]
- (if (setq radius (verify_d "radius" value radius)) S& B/ f: ~0 W J$ Y* @+ k! g0 s' Q
- (calc)
2 ~! D- H r4 M1 o - )! B( M$ v8 S0 @# `6 B- z% h
- )
+ g7 D% [* G/ c+ O - (defun ver_majrad (value)
! ]; \# g: M+ d" Z- P7 | - (if (setq majrad (verify_d "majrad" value majrad))
1 B7 Y! N& F1 V( c1 w - (ell_calc_newval "majrad"), X7 j7 r q" S( P
- )
4 g) M2 o4 j$ n1 H1 D - )! }& x0 Y0 \ O5 `/ j3 n4 M
- (defun ver_minrad (value)
) m0 k1 }4 x6 j" m6 B, d) { - (if (setq minrad (verify_d "minrad" value minrad))4 u b# N+ Y& k8 _7 }+ Q
- (ell_calc_newval "minrad"): j b9 R5 x) m4 |( ]$ i3 s v4 `
- )( G" x4 [" N& m+ M: P
- )
6 E- w' I: D9 P# H: u* X; J" e - (defun ver_hght (value)
( q4 W# O, G& K8 g0 F& O9 d! e0 t/ @ - (setq hght (verify_d "hght" value hght))
$ e9 \1 G# @( [& G: ~+ a4 x' E - )% [0 @ l# s' M
- (defun ver_wid (value)
! L" ~, }8 U4 ?! s' _& B - (setq wid (verify_d "wid" value wid))
1 O' B% p8 ?0 k% k5 b( u: B7 [ - )3 p% @* q/ S# y$ X
- (defun ver_xline_x1 (value / temp)
O* i. Y5 P8 k4 }# } - (setq temp xline_x1)
+ B V& R) s3 |! R9 h - (setq xline_x1 (verify_xline "xline_x1" value xline_x1))
9 l3 a% A- {; q - (if (/= temp xline_x1)
6 D9 w# D; a$ }% g - (progn (modify_xline 0) (set_tile_dirv) )
0 b5 [7 y2 `( a3 h' q - )
g( ^+ [" \2 I5 E. K5 Z - )4 q' z6 U) c* I9 F5 H2 u$ e* S
- (defun ver_xline_y1 (value / temp)! E& N! P/ l' k# } Q' B: g
- (setq temp xline_y1)
5 x5 J, X: H! [9 q - (setq xline_y1 (verify_xline "xline_y1" value xline_y1))% V& o! r' @- V) R
- (if (/= temp xline_y1)4 f7 D$ d. m9 m, R9 q7 }
- (progn (modify_xline 0) (set_tile_dirv) )6 Q3 i4 |$ Q4 X3 k" q6 d
- )! I- b* t( d* ?
- )" w: y( f. ]2 e& n0 a
- (defun ver_xline_z1 (value / temp)
4 q- l& m# x( f @ - (setq temp xline_z1)
5 Y9 ?1 `7 r, I5 Z+ q1 o: } - (setq xline_z1 (verify_xline "xline_z1" value xline_z1))
. f3 d/ {1 P% g7 p, B# t+ n - (if (/= temp xline_z1)% O/ ~: D7 p* Y3 r: w
- (progn (modify_xline 0) (set_tile_dirv) )+ |0 V6 j/ @* K( i: p9 c
- ). I! D7 l. W9 {' M, z& A
- )
, U3 B* v# K i6 w% ^ - (defun ver_xline_x2 (value / temp)
* E( V8 _% e/ p& `, h1 D - (setq temp xline_x2)
4 {6 F* a0 r. ` X% B* p - (setq xline_x2 (verify_xline "xline_x2" value xline_x2))
2 J+ y& F( l& i" Z8 @ - (if (/= temp xline_x2)% g1 d6 J: F& U/ C1 a
- (progn (modify_xline 0) (set_tile_dirv))6 Y0 a0 U3 v# X7 P) t, {
- )$ v; G' _/ k# \4 c# I( {
- )4 @/ k* o3 S9 U8 d6 f
- (defun ver_xline_y2 (value / temp)
- w! P3 Q* @% X( A0 z! l# Q m0 Z - (setq temp xline_y2)( r- c) L# p; ?: M
- (setq xline_y2 (verify_xline "xline_y2" value xline_y2))7 |1 [/ ~* _0 p0 u
- (if (/= temp xline_y2)
0 I5 `0 o D% Q3 L; X @ - (progn (modify_xline 0) (set_tile_dirv) )
) Z/ }/ r* d0 u5 U* u. U) k - )
6 {2 |9 v1 G7 e1 L" O7 a - )+ J% V1 J5 m1 a3 @9 Z# g) M
- (defun ver_xline_z2 (value / temp)+ O( U# V0 h' c2 ?% K M
- (setq temp xline_z2)
) {5 m) }6 b% e - (setq xline_z2 (verify_xline "xline_z2" value xline_z2)); \. T0 O+ ^, D# \& v+ N3 P
- (if (/= temp xline_z2)
3 s- o: N( \- `* V T" }8 a - (progn (modify_xline 0) (set_tile_dirv) )
# A; ]5 c1 _# w' u7 Q1 ~$ j - )# L! t8 V; r& y' H* p
- ); O2 b# O' V% @$ n
- ;;/ G: j: ^6 f3 G' l8 z* E$ r
- ;; Functions that verify tile values for angles# z( }, L2 e/ r. r+ {. ]0 O$ L
- ;;
7 J6 u |) z% D3 e - (defun ver_ang1 (value)
1 A, L' ?+ t1 a$ m+ a, ~% K - (if (setq st_ang (verify_a "st_ang" value st_ang))- w. t% {9 e# o B6 ^1 w3 F+ o0 ]( V1 z
- (calc)9 w# p( a1 \! v% i& e
- )+ N3 g& p9 y T& W' w7 X1 g3 U
- )9 P4 w7 T) o7 Q; q7 j3 \' R/ a' Y
- (defun ver_ang2 (value)
0 I4 D2 i& r! k1 l. l& m Y' @ - (if (setq end_ang (verify_a "end_ang" value end_ang))
! C- V' t& D; J/ }2 x M - (calc)
3 Q3 Y7 u1 L4 r" q - )
' x5 ? h ]( ?1 c - )
$ c |7 T# z: Z - ;;% H! [% H9 d! y* u
- ;; Verify tile value for ellipse end angle. Handled slightly
3 H( A s% i5 k" r0 j3 V - ;; differently than the other angles.
5 u% i3 H5 [4 f# U0 c0 Z2 } - ;;
" y& O) X" N7 z+ @" `' q - (defun ver_eang (value)
% v% u! H) }4 O6 W' E - (setq end_eang (verify_ae "end_eang" value end_eang))
" ~6 @# c3 E4 @( N - )! c* n' Q% x3 _' \4 T$ U# k- w3 h
- (defun ver_rot (value)! p2 q \8 H4 y7 P
- (setq rot (verify_a "rot" value rot))
9 O" V+ i9 B6 N1 y7 I. @/ F$ y - )3 a. x% H* M0 H e0 \0 ]( A
- (defun ver_obl (value)6 a5 L) h+ B5 x, r$ C6 ~
- (setq obl (verify_a "obl" value obl))
% b8 h& C8 q; Y! \2 i9 d - )6 Y7 L3 V! ]5 J' g: r1 `1 m
- ;;& Q1 O2 a d. |
- ;; Function that verifies attribute tag field for null string,
# g9 E+ g/ J/ W/ a7 ~' k( m7 b - ;; or a string that contains one or more spaces. Tile value+ N' h2 o- x6 g# K
- ;; is also converted to upper-case as well.( @( M1 ]& n( [
- ;;
, Z# s3 m0 M Q9 K - ;;2 J8 ~( [% g/ l$ M) w
- (defun ver_tag ( / tval)3 [0 X* H/ }: j6 b; b& f3 f9 |# t4 H
- (setq tagval (get_tile "tag"))
# A" ]' \" R# A0 R8 O; |6 `/ c& g - (set_tile "error" ""). ~% W1 y9 J! o; @0 Q, V: q
- (cond0 ?$ T" w# P3 a3 h3 V; t! h) q5 U
- ( (or (eq "" (setq tval (strcase (ai_strtrim tagval)))), ]1 [/ q) @' J! H+ b* A/ y
- (wcmatch tval "* *"))
% f# R; C+ O& B$ T8 b - (set_tile "error" "Invalid attribute tag.")
! ^$ H9 q i, }! I0 b# y" ?" d8 W - (mode_tile "tag" 2); H1 X( x# Y; d6 i$ u; n
- (mode_tile "tag" 3))
: P2 ~2 t" \' i8 { - (t (set_tile "error" "")
7 {8 Q" w$ r! ]: P6 E9 ` - (set_tile "tag" tval)& S2 p4 X" r9 Z2 {
- (setq attag tval)))
! T( H% ~, d# {) O8 _, Q3 w" R+ | - )- N6 S1 r7 X4 j& A, o* r1 d0 o
- ;;
0 s3 l3 W1 z3 m2 v% J - ;; Calculation functions
! B* n6 }/ \4 U: \# h - ;;
* G* @1 G4 ]1 S4 o+ ^& U7 { - (defun calc ()
8 P# O9 J4 ]2 O- w - (if (= etype "LINE") (line_calc))
1 l( |3 e8 d; s V5 O$ p E: L - (if (= etype "ARC") (arc_calc))
' n1 f |5 H# W* H7 Q - (if (= etype "CIRCLE") (cir_calc))3 V$ t: X8 X& v& \; O( D* L! a
- )" r8 _* T4 u8 j& j
- ;;
. {; D' H* b* O: @ - ;; Calculation functions for lines, arcs, and circles
; j- c% p% N; E* u - ;;
}3 m2 @5 y2 k- k3 P& z - (defun line_calc ()8 e) v0 X# G$ W. T3 z, u
- (setq stpt (list x1 y1 z1))1 y# k" }- p* f9 E4 Z0 C1 l
- (setq endpt (list x2 y2 z2))
5 Y/ p O7 U, l5 |* p6 Q+ r, r - (set_tile "delta_x" (rtos (- x2 x1)))
! B1 U/ s' |, p x- f6 M5 E9 h! }7 E - (set_tile "delta_y" (rtos (- y2 y1)))
% K! _8 T" b3 v* d: `+ [0 R5 @ - (set_tile "delta_z" (rtos (- z2 z1))): n/ p0 u2 P! Q0 v
- (set_tile "l_length" (rtos (distance stpt endpt)))
) q9 ^7 P" c8 ?2 C1 A# K. m" } - (set_tile "l_angle" (angtos (angle stpt endpt)))
; e1 [0 D+ ]% b/ G. X. t3 f - )
. X! y9 [$ `$ j, V* |: K
1 @. c" X @& U6 q7 c4 U- (defun cir_calc ( / area units)
; d1 }, r, }! ]; w% ~, I p - (setq radtest radius)
) T$ A) {6 A" O( p - (set_tile "Dia" (rtos (* 2 radius)))
! |9 n- F# ^6 T5 f* V. K - (set_tile "Circum" (rtos (* 2 pi radius)))
/ ]1 A j" H% p& g# Y - (setq area (* pi (* radius radius)))
# L3 _; Z; r9 o5 S1 Q( C - (setq units (getvar "LUNITS"))/ }, S& H/ Y9 p3 v; e
- (if (or (= units 3) (= units 4))
. J @: y4 D# n2 w# z" { - (progn
" `- a; U/ n2 q Y0 e- }9 D. c - (setq area (/ area 144.0))
0 Y5 @/ G! o/ t0 c0 v - (set_tile "Area" (strcat (rtos area 2) " square ft")); C" O7 J {7 l$ K# d. n( N
- )
. n! [4 D; R- R, W t - (set_tile "Area" (rtos area))$ W8 h- L' D: C$ Z. R
- )# t9 w/ |4 _+ X7 _& l4 l) w1 j
- )8 ~# J' S4 X1 |4 ?% F
( }' O+ R8 y' r" v- (defun arc_calc ()
6 K, L8 ~9 ~: c0 ~ - (setq totang (- end_ang st_ang))
, V) {! N; f$ J6 o - (while (< totang 0)
% D9 U& a" k, T% q C - (setq totang (+ totang (* 2 pi)))
3 o! X3 T0 d3 W9 ^" w' e - )
0 q6 }8 Z7 T) D% ? - (while (> totang (* 2 pi))
% _) k, P6 ~# e5 a- Y3 M - (setq totang (- totang (* 2 pi)))$ {& A5 p4 x* T7 p: E+ P, Q% |
- ), i! @1 g$ Q$ f* z
- (set_tile "tot_angle" (angtos totang))- e) A7 Q7 F) H# w- \
- (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi))))% ^6 V6 ?8 F0 `
- (set_tile "arclen" (rtos arclen))
$ p1 M+ X5 |- Z: K) M% k7 E - )
; D3 t$ C3 b# u# r - ;;9 {% o d* D3 R7 G6 N
- ;; Calculate the major radius, minor radius, major axis direction.
! y* ^& _: r4 z8 ` - ;; Get radius ratio. Convert Start, end parameters to start and end
8 l7 V p8 X6 w - ;; angles. Save Major Radius value in "old_majrad" in case the user: _2 v8 a. V m' J) \+ U( W
- ;; chooses to input a new Major Radius value later. It's needed to" O$ F0 Q. e) i; I7 D* J0 c
- ;; calculate a new Major Axis Vector value.
0 A% e# ?% ?3 N - ;;
9 o* p+ ?# y+ L: K/ l - (defun ell_calc ()9 f) |" ~- n2 ?1 L( ?8 h
- ;; Get major radius from the major axis vector.$ `- P1 u5 z" M5 f k& U
- (setq majaxis (cdr (assoc 11 elist)))
' `# ~0 ?# |4 z5 t. h) M2 e - (setq xx (car majaxis))* Q6 P2 G j, t0 G5 y: H5 C
- (setq yy (cadr majaxis))9 l9 w( k8 V2 o# l
- (setq zz (caddr majaxis))1 e* s) e2 N0 f- ]& V4 M
- (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) )))
4 Z6 Q- q* t5 p4 `+ p% i - (set_tile "majrad" (ai_rtos majrad))
( Q, B0 _* Q2 T8 F- S - (setq old_majrad majrad)/ h2 O# _9 a6 A7 T8 }% E
- ;; Get radius ratio1 _0 F# W! i. H
- (setq rrat (cdr (assoc 40 elist)))
* \& v& `: o( V4 E* R+ E - (set_tile "rratio" (rtos rrat))0 s: Q5 R3 P' w% g4 y, X
- ;; Calculate minor radius" I1 q( ^0 P5 n! s' ]: T! Q) X
- (setq minrad (* majrad rrat)) f4 i0 y# x& {% Z& }+ f- v
- (set_tile "minrad" (ai_rtos minrad)). E( F0 \' F6 e# c
- ;; display major axis vector
6 U5 v1 a% T: r; Y" C - (set_tile "Majraddirx" (rtos xx))
, f; q' m8 A" _ - (set_tile "Majraddiry" (rtos yy))- N# Q: v- H4 d! w, O
- (set_tile "Majraddirz" (rtos zz))
- k5 s6 m4 ~" ?7 P
3 _9 P5 x) _6 a9 L- ;; Convert start parm to start angle& `2 b4 Q+ i+ }1 h3 u% z- c
- (setq stparm (cdr (assoc 41 elist)))
* E9 d8 H% h6 u$ K; O - (setq vecx (cos stparm))$ o# P7 ]( n# ~9 S3 J8 x. ^
- (setq vecy (sin stparm))( V8 _9 m# P7 A& q6 v9 d
- (setq st_ang (atan (* rrat vecy) vecx)), D/ d7 W' t0 I
- (setq tempst_ang (ai_angtos st_ang))& _! n9 s2 T* A! A, B
- (set_tile "st_ang" tempst_ang)# u0 {- H4 h! @8 V
- ;; Convert end parm to end angle. If end angle evaluates to 0
1 q6 U8 R! M/ u& P' k - ;; degrees then display it as 360 degrees.
" n) _# y# Q- d4 Y* M& v" i4 u - (setq endparm (cdr (assoc 42 elist))); F3 v9 G8 p; X' X& c" y8 Q* ~% F& [
- (setq evecx (cos endparm))
! ^& Z4 c. {! y+ } f$ g: \! l: _+ d - (setq evecy (sin endparm))( s7 X- f9 T7 u+ w+ w
- (setq end_eang (atan (* rrat evecy) evecx))! O' w$ n9 u: X ~" e" L8 Z8 O- B
- (setq tempend_eang (ai_angtos end_eang))
3 h9 A. T/ j( n$ ^ V9 N - (if (= tempend_eang "0")
! I. J+ } F# j& Z' q# k& N: f - (set_tile "end_eang" "360")* i; I% _1 ~0 Y2 Q; V; E
- (set_tile "end_eang" tempend_eang) U& M. Y- s( M* Y! p
- ). T8 E# R: b# o: d& v- v
- ;; Get area of the ellipse.
- [) k* E0 @) E1 G: _6 l7 s - (ell_calc_area)
/ O! v9 v+ _2 A, d$ } - )2 D, n# H: f0 Q! C
- ;; Calculate area of ellipse. If it is an arc then
% c+ o, K' }5 A1 }) [* H - ;; grey out area display.5 J! @, w, V1 B7 ? Y E4 Q. @1 D, k
- ;;
# s' W) a v' d* [) G9 B8 W! R& t - (defun ell_calc_area ( / area units)9 x! j2 y3 B4 \* b% M5 G- F. O( r
- (if (and (= tempst_ang "0") (= tempend_eang "0")) J9 V9 b* M' }6 {; U8 q B
- (progn
* D$ a% p; R8 H! O4 [3 k - (setq area (* pi majrad minrad))
* g3 G- B! s$ |4 i2 n - (setq units (getvar "LUNITS"))9 k7 p! l" ~( E5 G$ Z+ B, D
- (if (or (= units 3) (= units 4))
0 E3 f! C# C( o - (progn
# O3 T8 N" A! y - (setq area (/ area 144.0))6 ]' ?8 R8 {) _9 X
- (set_tile "Area" (strcat (rtos area 2)" square ft"))
( T7 L4 y# W+ d$ D - ): A: w$ H" a* F6 R- [9 X& E
- (set_tile "Area" (rtos area))
m1 ?7 s6 {; q, F9 Q - ); X7 B9 w" I6 F3 V; I4 B5 l
- )8 V3 t# U2 y5 G0 [8 Y
- (mode_tile "Area_text" 1)
6 L( D/ ~2 {6 h: m - )* l1 e1 j! p- N, ?4 K; U$ [
- )+ t$ c& k t4 u: ?) t5 S
- ;;2 w: D/ K" c% v% {$ P. d+ b
- ;; Calculate new values for ELLIPSE
# H. Y4 m6 j) p; k( r - ;; Minor Radius, Area
! D6 K8 K) e4 G9 O8 K& W9 B% k. k - ;;
# f- f2 q2 u/ m0 C - (defun ell_calc_newval (ell_tile)& p$ \3 x. p9 }/ P; a- u
- (if (= ell_tile "majrad")0 w2 h. N* h" R! Q4 v' m3 E* [" ?3 Q) h
- (progn% W/ M1 f5 S/ ^6 c3 T/ V
- (setq rrat (/ minrad majrad))2 c- o% e# W3 c+ w1 U4 U4 j; c
- (set_tile "rratio" (rtos rrat))9 f- z7 b5 v$ i$ G, C7 U
- (ell_calc_area)* w* x& n2 R" t5 Z- ]2 @% o2 g
- )
& {' ]4 B, Q& G# E# B - )
$ Z8 p$ p5 x N5 _& i3 x - (if (= ell_tile "minrad")
% f# U' O. @2 r R3 _- h - (progn& G; Z$ ?( @) }# ~5 w% [( k
- (setq rrat (/ minrad majrad))
3 v( z6 P( I# |6 d# Y - (set_tile "rratio" (rtos rrat))4 K1 n. V: V9 w7 _5 G. Q
- (ell_calc_area)
1 \0 i; r( s+ u7 @4 x1 t. \ - )
. p+ U; @$ p, \ - ), B! b8 J9 F% \2 e4 N
- )1 L' j* N. I+ I3 L0 z; K
- ; N5 C: V8 t( |; W( t* p1 T
- (defun set_dimen_props (/ loop a stl txstyname)
) e3 V% q+ m: e - ; S8 W( {" u% }7 c7 c
- (setq stname (cdr (assoc 3 elist)) ; get style name; l& J: ~. q3 f c$ G I
- stl (tblnext "DIMSTYLE" T)
. c0 m- b3 f1 u! S - stlist nil)# D, C& d% b( l! Y! O; s ~( N
- ;; Get all style names and list them in alphabetical order3 ?5 R8 J# e2 b6 X2 E0 U1 M
- (while stl3 c2 E' S$ P6 T0 }$ w
- (setq sname (cdr (assoc 2 stl)))
. l7 V" l# ?( `6 m9 h - (if (/= (logand 16 (cdr (assoc 70 stl))) 16)$ k1 }: z# e4 F4 H+ s8 L
- (setq stlist (cons sname stlist)))! n" `* ]" c5 g+ {, @* P* [
- (setq stl (tblnext "DIMSTYLE")))) C4 H1 s" {6 D1 Q* K7 E
$ U5 L3 z* L+ e" S3 {; z# n- (setq len (length stlist)
, R) f# I; u) G) t, J' e# z! M - loop 0# X2 N- I& P1 J0 c1 Z1 Z: R
- dimsty stname& l2 ]1 L+ j' z; j/ C& Z; [9 Z& m
- )# U! P$ s0 D# J \/ p( |; l
% Y# q5 Y2 s0 W5 G# }( ~( h- ;; alphabetize style list, depending on maxsort
+ M. l: m9 r6 e( [ - (if (>= (getvar "maxsort") len)7 C. l% R; y# V2 G* j8 U" p
- (setq stlist (acad_strlsort stlist))
4 u6 Q7 v& j ~- C( Y - (setq stlist (reverse stlist)))
2 F6 u! p$ b* w8 w+ [( A8 z
! U6 {0 G- e, _' T- ; *UNNAMED style (dimsty = nil at this point) is replaced with
1 H5 j5 d4 p4 @$ p! B+ x' j - ; the current style. After R13, we require dimensiosn to have a) t( y- c1 T3 X% p; A
- ; dimstyle, so we plug any holes where we find them.. B- ]2 ]7 Y% G
- (if (null dimsty)
2 P' j( I2 F. V# _ - (setq dimsty (getvar "dimstyle"))4 U2 s) D8 n0 K& H( A# W- I7 s
- )
p4 t6 d: R8 t0 e0 Q - ; Show the styles in combo box; n2 \* Y) }: x2 Q9 {$ n
- (start_list "mod_style" 2)+ M8 g0 k2 z# W4 X/ T
- (while (< loop len). F4 |# t% b: E
- (add_list (nth loop stlist))
8 J, ^. x! m0 h - (setq loop (1+ loop))- c6 v! k& \, b0 K7 R/ q+ D9 Q
- )
% {/ L5 z9 u/ Y% Q
, P$ ~+ s( z8 C. W- (end_list)
# E2 o/ k/ L' Q6 R" B# e- p$ X/ f! h
+ k9 T% W$ l- [2 v4 [' Z: a0 J( w- ; Hilight the style name of the selected entity' c6 l! L2 Z: x5 ^/ [: u. l
- (while (and (< 0 loop) (/= dimsty (nth loop stlist)))
- i1 r, n( ^: G' `% M - (setq loop (1- loop))
& G, {% r% n8 J- ^) z - )8 ]7 d W2 ^6 Q1 Y" H! {* Y$ d
- (set_tile "mod_style" (itoa loop))8 A0 x* y) g. f# E
5 T" @7 y5 Q$ h/ h9 O$ }- ; The following is the list dimvars. It must be sorted in the same
* d( E* ?# A. y w3 [2 j: ^4 y - ; order as the resfub returned from DDIM (ADS module).
& I: S4 i) i* o+ x1 k
0 e: Z* o* j' F7 v1 a3 E- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"+ H d4 [* I$ i; S& M1 |% j
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"$ ^2 q" j# g3 C0 ~+ O- h
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"$ C0 }8 w: S' S
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
0 N* H" b; R1 W& a6 o' R* y - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
. Q( D3 X' t5 V' ` - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"6 J# s5 A, T0 [0 A! f* w; C/ S
- "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
6 M7 \9 |0 G8 T9 O# s1 b - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
( R* R9 m5 z/ `% x; t - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
3 W* e$ z$ {0 t7 X# n - "dimdec" "dimtdec" "dimaltu" "dimalttd"
4 F8 Y. q: s' q8 b. Q& X# E - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"6 M% e) r0 B w% p$ E w4 M
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"# l( g/ Z0 H" U3 f
- "dimtxsty"1 o0 a" A8 t4 r, i6 a Z
- ))) b" E$ J! f$ D6 d
- (progn5 q9 c/ g' t% @) T1 _0 @6 q
- (setq sv_dvlist (ddimen_getostate dimsty)
o1 O* `4 b: C, H7 I - txstyname (assoc 340 sv_dvlist)6 t% |1 ^* ^! r/ W
- sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))
L3 ^. \# e/ y; V0 ]4 p3 U+ e: Q - txstyname sv_dvlist)
& q5 d- V& j, q0 [( k - dimlist sv_dvlist1 M/ C9 v6 z( \
- )
9 b6 n2 I9 o4 E6 U- c - )
; K4 S1 s" ?5 n. Q# | - (if (= dimtype "DDLEADER")7 q& R* r3 q/ c$ }. s
- (mode_tile "mod_format" 1)5 \9 m/ Y* @2 a1 f# C' W
- )" i8 s z$ @/ E
- (action_tile "mod_style" "(setq dimsty (ddimen_style))")
$ c4 j0 _) Q+ Z$ I" w% h# K - (action_tile "mod_text" "(done_dialog 4)")& i5 M9 q* P" t' |5 a! T
- (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")
8 e/ N6 L6 n' Z$ J: Z& B# K - (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))"). d0 J2 X( J1 t, m
- (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))")
) q, I* v* z7 |7 u0 U6 t. ` - (action_tile "accept" "(done_dialog 1)")
* N$ j& r- k( t8 s0 G! @4 E - )
3 m; K' {- l9 e+ Z5 A* i - ;;
# |+ r/ }1 N% Y# {3 N - ;; Get dimvars that have been restored.
* H* g/ i% H' o7 {7 m! j" z - ;;9 |7 ? W/ G! M. h/ q
- (defun ddimen_getvars (/ elm dvlist dv i)
+ o3 d, Y- L7 t1 ^: J1 Q - (setq i 3
1 e( X0 M0 d( v0 }3 U - dvlist (list (cons 0 "DIMSTYLE")
: h4 g0 e( T" | N/ p - (cons 2 (getvar "dimstyle")) (cons 70 0))# X% f9 c5 Q$ R8 |7 w7 N3 d
- )' R# S0 a" T$ A1 e+ h* f6 O* b
- (while (setq dv (nth i dimtbl))
, c6 m/ d* t3 ^' } - (setq elm (getvar dv)
; n! N3 @& c l. B. f, n. O( c) E - dvlist (append dvlist (list (cons dv elm)))
1 O; h7 V* R8 n; m5 Y! x( n - i (1+ i)
" T9 l8 a; q U" e - )
7 O5 @ M: Q9 D1 a - )8 H! G) H; a, ]3 i6 P* p/ H, j
- dvlist4 ]: T6 t5 \3 h( d! @* V h
- )# o8 s3 U- y$ s7 u2 c! @, h
- ! L+ J0 F) c6 U
- ;;7 ^+ ]6 ]: d7 p
- ;; Get the original states of dimvars. This is for DIMENSION entities.
/ a0 [& U" {' P - ;;
% G7 g& }3 y$ c- k5 v* @# H - (defun ddimen_getostate (dimsty / dvlist elm i dvvars)
: D% a) K1 n3 Q# H - (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list0 G7 ]3 g. b$ \+ N
- dvvars (ddimen_getvars) ; Get dimvars for that entity
/ T; k' n1 ~! U7 W8 \1 o3 \6 A - i 19 L; P' @* m3 {) @+ _% Q
- )
- g% Y6 `6 z# f% N; Z6 Y/ C - - z8 w, w$ T& d# j8 M. F
- ; Create a list that contains values of the selected entity.
; \$ y) y/ m2 j9 K* D3 M: ]4 ` - $ T: h: D$ k. A" ^
- (while (setq elm (nth i dvlist))
6 M0 w8 L; A+ }0 ^1 h - (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)( w: t4 D0 k- }+ ~. m1 k
- i (1+ i)6 w2 v8 i+ `7 ]% c% e( p; |
- )1 D P" `& ^# N% h
- )
9 O. o4 @2 Z/ R5 \ - dvlist
+ I% ?! v4 H$ j; R1 x7 Q - )
0 B8 s ]7 n4 E3 ]" H3 ?/ f
: B) U# d; T3 `( b2 T- ;;: d6 {' L4 r0 ]& L- |
- ;; Restores dimvars of the selected enity.% H! l! j$ J0 T6 E) F# I
- ;;
& L- X' } {9 r1 l: d# Q$ e - (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)) Y% Z( y3 T' U
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"; n* N1 {( I5 Y9 `' i
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"# ?: [. m3 z& K2 D# l
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"" p$ g6 y! p" f7 o9 w, J
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"! U ]3 S; [3 r7 x, u9 F( B9 W
- "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
$ ~; P- ?9 m0 B t - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"
$ k7 C v5 w( _( Z: ?: J - "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"5 \$ l1 N: ~+ N A1 F
- "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
2 v3 [" O4 l& ?. ?4 `% ? - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"
4 N9 d0 |$ i; _1 H$ K - "dimdec" "dimtdec" "dimaltu" "dimalttd"* r4 _! k1 H0 e& }1 J
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"* |, P) d5 {( A/ [7 c/ I
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"
6 T0 P$ I1 y. o9 g$ W7 z - "dimtxsty"
6 o" F; a1 x5 h, D9 o4 m2 l - ))
9 e' T! d" p \/ S6 U - (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings
8 q. R( x4 a1 } - (progn a* z1 l2 i5 [6 l0 l# h0 B
- (setq en (cdr (assoc -1 elist)))/ Y( s, |; b* p3 M; L1 g
- (command "_.dimstyle" "" "" en)
+ v1 x. ^7 X" q: d9 I& p- Z - )
9 p8 ~- F* t- X# t( ?- W - dimsvcurset* b y2 M$ g8 R
- )
) K$ D; \' L2 h( A6 b9 |0 [ - ;;
4 |9 S1 f( R" p$ K6 g% s+ e - ;; Modify Leader
/ J2 Z* \9 C, p" ]9 \3 K* d$ r - ;;
# w! o }& w8 B8 q2 N - (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl G8 l: e3 b0 S! L
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist( Y& B4 q8 m' U7 K1 F" ~# u4 m5 Q5 Y7 a) g
- dimtype dimsvcurset)
* E" U3 d I6 L- o2 p - (setq dimtype "DDLEADER"% n' n: ]: h+ B4 w! S$ n
- dimsvcurset (ddimen_dimsty_restore) I5 B: v" f: d
- )
1 z. D, E: I6 Q+ i - (if (not (new_dialog "ddleader" dcl_id)) (exit))
- a' T1 j5 e. Q6 A0 j - ;; Set initial tile values
1 {* _- A, G4 I$ x- w Q* c& [. Y$ ]# i - (set_tile_props)- C& X* E: o$ ~; g, l; i
- (set_dimen_props)
) d1 S) ]+ l1 O' @, |- N - (set_tile_handle). j$ D- d7 a# F
- ;; Define action for tiles
2 E+ J: m h# s- | - (set_action_tiles)- ]7 H% J1 W/ t7 }8 P; ^4 S# \
- (mode_tile "mod_text" 1)
8 [& X/ @; @& w6 p& O J) D
$ ?' D1 y" A/ E- (action_tile "mod_style" "(setq dimsty (ddimen_style))")
$ @$ c- N- J! B) b6 Q - (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")
2 s: [! G9 b% A) y/ M( b; r0 ]% H6 w - ;; Get ARROW and TYPE./ V& U6 y+ b6 M7 K$ a6 C
- (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))) K4 `" y9 A7 V2 u% N1 q
- (if (= 1 (logand (cdr (assoc '72 elist)))). [0 Q$ D( _2 [9 n! A7 M
- (set_tile "s-s" "spline")8 M' H" H8 Q# r" p
- (set_tile "s-s" "straight")6 T; o% w7 Q! `& N
- )
7 r+ ^0 q) O9 V( N) F% J! W - ;; Start the dialogue.
& }' K) g6 W6 O. k7 T - (setq dialog-state (start_dialog))
4 D0 c$ ~) w1 I! O! p# J" K - (if (= dialog-state 1)
9 e/ A/ t0 S4 u1 j - (progn
8 p$ a! D, V: G0 `) q; s - ;; update the style
/ G' S9 y7 @; X3 Z9 D; X9 S - (if (/= dimsty stname)
% o! v& i) i" P. q* a - (progn9 U% R* m1 L [ A
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
6 b8 ?+ o& V. N7 R9 @ - ; doesn't have it.
+ X( r6 W! [7 U+ N2 T4 G - (if (null (assoc 3 elist))
9 A. b% Q+ H | - (setq elist (append elist (list (cons 3 dimsty))))' b/ v5 [( r. v/ P1 \" v8 P
- ; else just replace it.
2 B* h% ^ n( K4 Z, A7 Y6 g- {, q - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
. g5 R2 A8 ^% {# E - )3 F; Z+ ?$ s0 T C: \
- ; refresh sv_dvlist with new dimstyle.
; C7 {1 E [- F8 B, A" d0 h - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
. u, ~7 p- F% f* R0 ~' L# Y5 j - )
) k6 F. k7 Z0 W4 i- w% \ - )
3 z t2 T. Y6 h& \- s) v - (if (not (null dimlist)) ; attempted to change dimvars2 \1 G& q* e7 w% J0 T7 Z
- (ddimen_complist sv_dvlist dimlist dimtbl)1 Z0 I8 @- k/ l0 ~* }( E: g; Y
- ). b* |: ~6 J% H6 Y
- ;; update for ARROW.
5 a/ c: p* V3 L2 ~5 K7 b - (if (= "1" arrow)
p$ S: o) j5 m! h& F - (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))
. G( f' z5 W) V$ P - (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist)). C4 ^' E- C, N9 F: D. `
- )
! }" k3 Z8 s x( e - ;; update the TYPE.
`, p/ M) F* u - (if (= "spline" leadtype)
& R; ]! v3 W$ j+ } - (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))6 J- H- C$ b: a$ @" @
- (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))
8 z* _5 T# }: v7 w" k: D - )% {" {4 C* s2 N1 `6 Z0 F
- (modify_prop_geom)! G/ P( Q; z' P
- ;; update the Color! L- J& S+ ]& f
- (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))
+ ]8 Q$ d- e; [% H A - (entmod elist)
( e, a V6 h. { - )
8 `/ {( D0 Q% I9 K% m7 I - )
3 [- j F: z/ i9 s# ~, o - (ddimen_setvars dimsvcurset) ; Prepare to exit; W( p( x! p) z5 V, c
- )4 A: m( e' d4 r/ @! j& l* H
5 B) n5 \. O1 `) r+ t5 E+ ]. U- ;; ^* y6 a: T9 i! s7 q2 w
- ;; Get dimvars of a dimstyle with overrides.$ ]) [8 }6 H% T
- ;;
# W2 f+ |9 b5 ]3 ?( a, Q9 E - " h+ d6 @$ h) ~, N5 M2 K& S8 Q0 @
- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)( V5 N# Q' k# A" _& X
- 6 M" k3 Q4 j: e2 A3 A
- ;; Get override information for the specified entity.
1 d8 { _$ C6 p) L: K/ X - ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we3 [* u, t3 R! e
- ;; must obtain override information through this tedious operation.' F/ v1 }6 B" D0 b& x" X# S2 H3 }# |
- (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))) E# u o3 k1 z+ o( z1 g% G5 D
- dvlist (tblsearch "dimstyle" dimsty)- g7 z8 R0 K5 X8 b( T
- i 2
+ ?$ H$ I4 r& L" E/ Z/ L - )8 j9 K- D6 f& E0 z4 ~% b- u& x
3 U7 F! i' _/ c m7 a' M- ; Update the list with overrides if overrides exist.
( j! K2 ]; Q8 `8 j+ A - 9 [0 Q! C# E5 x, q: x' D) {- |* r
- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr))))
' Z# E$ ?* Y$ I& ]4 U' e - (progn2 R4 R$ r9 Z, j: @5 n# h) B
- (while (setq elm (cdr (nth i dimovr)))1 {1 ~* U0 A2 z" [, l
- (progn
- g0 Q( @% ^& z% |) P1 b - (if (or (= elm "{") (= elm "}"))) O& t# c! d: b( n
- (setq i (1+ i))# A3 R6 ?. a: {, o: V& u( i
- (progn
$ n+ s# f. d1 p& _/ B - (if (or (and (< 180 elm)
# f: O% ~6 u% Y! [ - (< elm 190)
0 d' c! D/ M6 g& p - )$ [0 j$ F* |& \2 o5 Q+ q
- (and (< 80 elm)' t$ D+ V8 n9 V: ~6 |- N
- (< elm 90)1 J* `$ k. d- o% r! x% d
- )2 Q" b# w& k0 O% X7 F
- )
" z0 }! ~* j) `+ Y/ X! ]+ o - (setq elm (- elm 10))
) g- \: K6 }8 e - )
' L8 V6 `- r) M - (setq i (1+ i)7 p1 q! C2 y0 Y$ N# j; T
- elm (cons elm (cdr (nth i dimovr)))9 M/ e0 ~8 A4 N3 z, U0 u% s
- dvlist (subst elm (assoc (car elm) dvlist) dvlist). y( h1 G7 V" t8 B
- i (1+ i)# ~! f& }9 ?# f
- )
- Q2 L( \" B. i; n9 v& D - )3 S* \' p9 \5 Z/ B# |3 d
- )2 _5 K& F# T' x$ @' c
- )
( F+ P$ Z0 s ^" s' t( l - )
' i" H8 ~1 u( ~) S6 M - )' ^- d- D* `4 }( ?
- )! Q. \1 B7 g- b5 V) _ z
- dvlist2 ^/ {0 p5 w- t) f3 ^( g( m) o5 E7 g
- ) U2 w) ]) u( ]$ T# L9 w" ^# X" l* R
* h5 x# t: ?+ v( L4 H- ;;& z K. E7 R' Y" g! f% j
- ;; Modify POINT
+ ]+ ^% v/ f: Z f; |, f$ H - ;;
9 H" u' H# l' K7 x! D( S* n: a! d/ z - (defun modify_point ()" {- _$ @9 N. F& c
- (modify_properties)
) v. b* L6 v8 Q. h" L/ C8 c4 d. c! } - (setq pt1 (list x1 y1 z1))6 v E$ ~2 d, H6 U
- (tempmod pt1 10 0)
9 ^; L' e' A0 u# U" I/ t1 _4 v - (entmod elist)
$ P' C/ P" ]0 e% r - )
0 T0 }- w3 z3 k1 @, Z - ( l# b! \- r% k: b v
- (defun ddpoint (). B1 \8 X5 d; o1 I
- (if (not (new_dialog "ddpoint" dcl_id)) (exit))
3 b6 v) `' D, ?2 Y& y: ]6 ], R - ;; Set initial tile values
; Z+ H R/ B! }" f - (set_tile_props)" n4 c0 Y2 H* g# W7 Z" V
- (set_tile_handle)
2 l( A& i- k1 z5 N _: } - (set_tile_pt1 0)5 N% z' R; ?9 M. E
- ;; Define action for tiles, d W, G6 e% M% |1 M
- (set_action_tiles)
0 Z- Z1 }- a, C/ @+ c - (setq dialog-state (start_dialog))( X! P. \+ n& U4 ]% `. Y/ d
- (if (= dialog-state 0)( {- }/ c/ k- y/ w7 r6 w
- (reset)3 M8 S4 B! O. o$ ~/ w% x, g
- )% N# g% R) x% t+ ]
- (if (= dialog-state 3) [$ e2 I* X3 D* b: u! x1 [: \
- (progn
/ P, l6 V$ Z; ~1 T! i - (modify_point)! d" i6 r# c: F1 K! A+ ~$ s( D
- (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: "))/ C( L# c6 d8 m! y* b- r- A
- (ver_pt1 0)
3 ^" ] {' n) [, @3 y R% V, \9 j: f/ V - (ddpoint)
/ h/ S, W. T; z3 G2 [ - )
% W+ {. Q) b3 O2 q& o+ x4 H- K; V - )
( d5 X# [2 {3 ?. O X9 v3 `0 ?! O - (if (= dialog-state 1)
/ x# D9 O" [: \ N2 d' i - (modify_point) V) B; Q7 `! f: i! p& Z. f
- )2 R) v. ^0 N( m: ~
- )7 C2 w! a6 _. j) k8 V H9 C- d, Q
- ;;# b- e+ L* G O- W. K! i8 S
- ;; Modify LINE
! A8 E" ]: \- s* @3 K - ;;* Z/ d5 a" j# u
- (defun modify_line ()
" O: r3 y/ s. N - (modify_properties)4 [: b) J3 g8 h% M2 Y. W5 Q
- (setq pt1 (list x1 y1 z1))0 V0 S% V- U' D) h: P5 D
- (setq pt2 (list x2 y2 z2))* N3 |4 m4 k: p
- (tempmod pt1 10 0)
7 A) E1 U2 g+ K' q( l8 D0 l# u5 i - (tempmod pt2 11 0), C4 G R4 y) @% I4 X. c( x
- (entmod elist)9 m r8 ^$ ^) h3 d5 G
- )
+ W/ v0 Z* T3 i9 e( y - (defun ddline ()
$ \4 M. d( e/ i: k; E8 U - (if (not (new_dialog "ddline" dcl_id)) (exit))
2 b+ \- I) C- l; |4 _6 @, b - ;; Set initial tile values
1 ?5 u: Y9 D3 O9 s" O9 @& b - (set_tile_props)
- b% I% F$ U! j+ J+ a6 h( g9 { - (set_tile_handle)
! c9 m- y( `& w& X9 w - (set_tile_pt1 0)
* d* Q. p& z* N - (set_tile_pt2 0)6 ~8 Z$ N2 }! _/ u0 I; I: e7 Z/ d
- (line_calc)) [, `( W' L/ C! c
- ;; Define action for tiles
& `, m. j/ I$ g$ l - (set_action_tiles)+ d( A3 Q/ A7 }9 C
- (setq dialog-state (start_dialog))8 a- Z) s6 `6 i3 t5 h d' v/ d {6 e
- (if (= dialog-state 0)+ x( C. k+ g& O
- (reset)! J) P1 P- ]* q" H# \+ S5 Q! y
- )
" l6 f) i. K( N - (if (= dialog-state 3)
A5 G y L, e; g" ` - (progn" s4 j. ?) f* A( ^2 I/ A5 C0 m0 W
- (modify_line)
" j% f* b; j$ f) H7 {8 \) z( l - (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))
E, h( a% j. H8 \4 H8 t( ? - (ver_pt1 0)8 v# L% q) l8 D
- (ddline). N/ d3 a! g; H$ n j" Z1 J2 V
- )
0 O$ G- l$ U! u" g - )
5 v, U' { Q* D/ A. {& ?7 ` - (if (= dialog-state 4)
# A) L) ]; R* s - (progn" I, z8 \0 ^8 `0 H& I! ^; d- J
- (modify_line)& ^+ o0 p- `/ d
- (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))4 v* F t2 J1 R) Q+ l6 g& q# R0 _
- (ver_pt2 0)
5 J: K5 Q/ _* y - (ddline)
1 U& H, A5 C& Y2 X% O3 g - )
2 D8 ^4 O6 E, O- N+ K$ { - )
8 ~3 t+ x) ?( s ?5 W! x - (if (= dialog-state 1)! u% c2 H( V5 ^3 X- C
- (modify_line)
0 N3 o! q, [# G( u. n) `( Q - )
' q+ @& c5 {3 A7 A" K; w8 m - )
: L" @- S9 a6 b8 C! x7 ~( U - ;;1 P. x, N9 w% R8 P& q/ f
- ;; Modify MLine" ^- c K. I) \& C' V9 A9 c7 X6 X. R
- ;;4 N4 v" C/ L) K( a8 \6 X' S) U5 ^
- (defun modify_mline ()
1 m5 n! b" d. w7 P3 X - (modify_properties)3 U: g' P a5 b( r' v
- (entmod elist)
8 H- e( P8 Z0 g; [. r E7 b' \ - )
0 h! Y4 \# }4 |) G1 R - (defun ddmline ()1 i& { f% @) B7 a, e
- (if (not (new_dialog "ddmline" dcl_id)) (exit))
( v! g t1 U& }0 H' C+ _: d9 n - ;; Set initial tile values/ k# B( P! B6 C
- (set_tile_props)
) B& Z5 F3 O0 N0 r& L% j8 h/ t5 t! _ - (set_tile_handle)9 y7 p7 K- g: f9 H6 G. W* L
- ;; Set mline style text field.6 x+ E* a* p% \, S3 ?& S
- (set_tile "ml_style" (cdr (assoc '2 elist)))& m2 p8 R C& ?4 O* P
- 8 `+ Y! K$ ~% {3 W+ t6 w
- ;; Define action for tiles0 W6 r* z" ~, ~0 x
- (set_action_tiles)1 p- S2 L- d7 c6 A* x5 F
- (action_tile "ml_edit" "(done_dialog 3)")
; W8 f1 o( N x6 V, X' Z - (setq dialog-state (start_dialog))
4 `: g. `; O' @! `6 z4 E0 `6 r - ;; Dialog cancelled, reset to original values.
; N( K1 A- q! o. k {- g - (if (= dialog-state 0)6 G7 o5 l- f5 W8 k* c! W
- (reset)4 @- O J7 p, `" B ^. c% r W
- )
7 r/ J1 F; [) ]8 C - ;; Dialog OKed, update the mline.
4 O0 F' c0 O- a7 N. W - (if (= dialog-state 1)
Q4 w7 ]" D1 o4 T7 E! i T - (modify_mline)
: F) |. C O! K) {$ U5 X - )6 K( S! `, K1 J" p- K
- ;; Edit Mline, call MLEDIT.
9 @- `+ N8 e5 A/ C - (if (= dialog-state 3)$ X" s; e; [% Y* z/ I
- (progn
1 X5 f8 p K' L8 }9 C - (modify_mline)
7 B" H. B2 B4 ]8 M& O, u1 c8 a# D - (command "_mledit")
2 ~; I) W* ]$ D4 E7 ], h. S - (ddmline)5 i2 c. e9 Y9 h9 x6 D- s1 R
- )
! w( ]$ r8 V8 M( H( i - )
# q6 s( F( m0 K5 E! `& Z - )8 z. d' P1 a" M9 \
- ;;
: u# c' @! v& D: D X2 T - ;; Modify Xline1 @) \( g9 |1 k5 X
- ;;, J. a0 b3 i \, j9 n; D
- (defun modify_xline (flag)# @5 }; Q- Q! X$ ?
- (modify_prop_geom)
6 B7 f% T" i# @ Q% F% V - (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))( R7 T: s2 x8 \' S! ?) f2 B
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))5 B" u! @% X# F' p. C
- ;; Update the Root point.
`3 T) F- E2 P K- o6 A0 m - (setq elist (subst (cons 10 (trans xline_pt1 1 0))+ O ]+ Q B0 R( h
- (assoc 10 elist)5 F0 w% ], A- U2 o: e
- elist
$ j) h4 j/ Q. Q& a$ N0 a7 x7 I - )) w- `9 j1 A; h+ V& F# \
- )
5 n5 Z8 |2 W: P6 W% k2 s4 C* R9 g - ;;
# ?8 m# X( @6 F - ;; Calculate new Direction Vector WCS+ m# A' ?& P7 M7 w5 @6 c. G9 y
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))% v7 l0 ?0 Z! }
- 2 ^) T3 R, f( C2 Z/ _
- (setq temp_dir (trans xline_pt2 1 0))
, t: [( C' F/ k5 |1 k - (setq temp_dir_x (car temp_dir))
; ?5 }3 M$ x$ e" b - (setq temp_dir_y (cadr temp_dir))1 B5 A2 G# k# b0 Q* t8 a7 G
- (setq temp_dir_z (caddr temp_dir))
$ m; o+ z" t; ], J5 m - 5 u6 W. }3 G! { ^
- (setq temp_xline_pt1 (trans xline_pt1 1 0))0 @3 L: \ N. J" O
- (setq temp_xline_x1 (car temp_xline_pt1))% n3 A% E3 }* m; I& O7 s [3 O; O. |
- (setq temp_xline_y1 (cadr temp_xline_pt1))
, n" a1 s: y+ j! ]( J+ Y4 [5 } - (setq temp_xline_z1 (caddr temp_xline_pt1))8 E4 P3 B0 ^1 K3 U/ o( ^+ a+ B
- ) q7 I! M F7 C( J
- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
; u7 }6 y- c# b2 k - (expt (- temp_dir_y temp_xline_y1) 2)
2 f' u0 ?+ v! B* C/ n# U - (expt (- temp_dir_z temp_xline_z1) 2)
* m- \* P* L4 h3 ~ - )))
: p- D% V- v4 w# Y' W' X - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
% k, ]+ @) R0 q9 I. z - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
7 K* }' Q4 ~- {$ k% l - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
1 p3 s0 y( n; \4 T0 H5 y' O - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))! t4 i3 d2 M) Y) [5 W
- (assoc 11 elist) r y, B! b2 [/ V% o
- elist
. p) v9 @4 u# ?( D: C+ w - )9 b( G) Q/ [$ Z% g
- )/ p6 ^* ~# |/ I$ }: ~ y
- (if (= 1 flag)8 V) G9 D! j- b3 W
- (entmod elist)
6 I+ [* z+ Q$ v# `2 {- h - )- p0 `; F6 N. g1 x% \5 c5 P5 Z d5 W
- )
! c1 R6 \$ e; N; B3 s% y
' E, M( f5 S1 q- K+ v5 M- (defun ddxline ()
5 I3 d2 Z8 Y" Y4 V5 s - (if (= etype "XLINE"); i4 R4 Y- {( w9 [- G
- (if (not (new_dialog "ddxline" dcl_id)) (exit))
) ]% O5 n/ w6 [" m- h, s - (if (not (new_dialog "ddray" dcl_id)) (exit))
! B6 x& I4 M5 S# r3 L - )) O+ ~" _& C A8 o
- ;; Set initial tile values
2 l1 D$ j5 h; c2 w - (set_tile_props): Q1 d5 |1 v/ l& H( i9 O
- (set_tile_handle)2 ?4 _* x @+ u' C& C
- (set_tile_xline_pt1)' k( k9 k! ~# V0 f0 c
- ;; Convert to UCS and post Direction vector.- I( c- J( Z Z4 G& }
- (set_tile_dirv)1 O N: w9 g L
- ;; Calculate second point by adding Root Point + Direction Vector.
& X w8 w1 }2 x, z - (set_tile_xline_pt2) I2 [. \4 R( ~( E6 ?; f6 |1 v6 L
- ;; Define action for tiles
4 g' T! y- y* d5 V - (set_action_tiles)
- q( [4 d4 }& }8 W* k - (setq dialog-state (start_dialog))) g( x: t8 C$ m) c3 I$ m" v, v
- (if (= dialog-state 0)- y' f- [, B5 [7 P/ j, `" J
- (reset)
) F- G' H; N0 O - )/ v& [7 C. p( d) a3 c/ v
- (if (= dialog-state 3)
( Z+ M ^+ T' ?7 K- O |7 r w - (progn
; ?' ^* m& c6 V4 G3 h: H - (modify_xline 1)
! N1 }+ [, W2 F' Y" C - (while (equal xline_pt21 R3 C2 M# X; l3 V4 d$ q- E
- (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)
& V0 C! N" T R1 w/ G - (princ "The Root point cannot equal the Second point.")4 y) i6 G: r. `- h, h
- )& y5 q2 m' V5 Z* Q
- (ver_xline_pt1)( B, x3 a- t7 `% ~3 t: W' [
- (ver_xline_pt2)6 u% ?- C) L) x
- (princ)- K0 _. A0 ~# A
- (ddxline): u6 o9 h* ]: Y O& y7 q
- )) y* w3 j" E6 a s) s5 n0 D5 _% {3 ]
- )
4 V0 l0 Z+ M R# D - (if (= dialog-state 4)
- R* P1 _6 @7 W q7 h) h - (progn5 {' r/ h2 v6 i
- (modify_xline 1)
; b8 p9 f' \0 F+ p! j - (while (equal xline_pt1
# V3 B: k+ a5 e+ K - (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)* e: @& r: r" A E! u+ S3 P8 I
- (princ "The Second point cannot equal the Root point.")# w9 J# @- Z1 @
- )/ A. x$ l$ |0 C* N9 f0 R( P
- (ver_xline_pt2)! b1 g2 |# \( B' m" [
- (princ)
; h" E- @3 n q3 G4 _+ r - (ddxline)
7 m8 J/ b! u- O: R$ ]* a$ C - ), Z$ Z7 U9 B# `
- )
8 Q, P5 P8 i6 W& \4 }- s8 B4 u1 { - (if (= dialog-state 1). L2 ]" J' ^+ y' c
- (modify_xline 1)1 W! J! A5 e3 `
- )
+ _0 y8 A( G) x: a4 n9 ^) v7 b* M - )
: j3 c$ n3 ]% l7 ` - ;;% v9 Y8 L5 F( j( y0 s: B
- ;; Modify ELLIPSE& U& X+ |& R# B ^4 V8 t# S' H1 I
- ;;
/ j- b' R! _1 s5 \ - (defun modify_ellipse () Z1 j3 U& r. \ }2 v+ e2 d* _
- (modify_prop_geom)
9 \( T, y4 D6 {) U0 A/ T - ;; Update Ellipse Center Point value.7 ^( l0 C% p5 T% B0 z
- (setq pt1 (list x1 y1 z1))
5 c1 O' i+ m6 o# H9 i - (tempmod pt1 10 1); k2 N+ P o$ y+ o- N
- ;; Update Start Parameter value.8 M3 T' E0 @4 k+ s9 @# e
- (setq y_val (sin st_ang))
6 [0 T c) {% E+ t0 ` - (setq x_val (* rrat (cos st_ang)))
/ n( b- w7 p3 z+ G7 v! c - (setq stparm (atan y_val x_val))
: j' M. O8 w% A - (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))2 {6 a0 A) D7 b% b: W! `8 j- c
- ;; Update End Parameter value. Normalize it, if it's less than
% M3 S. ^. w7 Q( G: o - ;; the start parameter. o, D8 n) V/ {1 e# ]6 Y
- (setq y_eval (sin end_eang))- L8 b9 u$ O5 d3 G0 m1 S+ K, }2 z
- (setq x_eval (* rrat (cos end_eang)))
5 ^% }% a0 T6 `. }% V' a8 `4 W - (setq endparm (atan y_eval x_eval)). h2 i/ W- H& t: x6 K) h
- (setq diffparm (- endparm stparm))9 F: { v. P5 i: O
- ;; Epsilon of 1.0e-6 radians for checking a zero length arc., p" H! p, S+ A9 T, \, s4 i
- ;; Since zero length arcs are not allowed - construct the full
3 q6 h9 E+ u% H1 i$ g2 A - ;; ellipse in this case.- Z; ?$ H. C. x8 \ {9 l6 r
- (if (<= (* diffparm diffparm) 1.0e-12)3 q2 @- `. _* [/ u6 l9 s# x9 j1 B9 J
- (setq endparm (+ stparm (* 2 pi)))3 Q+ Y$ W2 n4 c' I' R. ~$ X
- )7 V7 g) G4 y% b0 G
- (if (<= endparm stparm)
+ m2 H4 E* X# z, p& }* A3 e# d6 _ - (setq endparm (+ endparm (* 2 pi)))
0 x, O: [, V+ D' L& m' x1 O - )
, [) H) C( }9 \. H - (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))
- c. T4 r, E: V# b% q- _, A( V6 l Z - ;; Calculate the Major Axis Vector by first calculating# a1 W- Y* k8 o: ?" L
- ;; a unit vector using the old Major Radius value. Then3 B4 Y: H# i, ^- D Q4 j
- ;; Multiplying that by the (possibly) new Major Radius
, M/ O. l1 m" N5 a1 ~ - ;; value to get the new Major Axis Vector value., |) @2 E0 E& @* {
- (setq unitxx (/ xx old_majrad))& X& U2 E1 e1 V# k- C* _; O# p
- (setq unityy (/ yy old_majrad))4 y# m4 J, U5 M# \1 K
- (setq unitzz (/ zz old_majrad))
$ N' P$ }9 A+ J- R0 K - (setq newvecxx (* unitxx majrad))2 a! K$ G/ a9 \6 f" l
- (setq newvecyy (* unityy majrad))
1 z1 x3 Z. P5 ~3 W! q - (setq newveczz (* unitzz majrad))" _0 `% k2 u. q9 E) \
- (setq newmajaxis (list newvecxx newvecyy newveczz))0 F, ?' J2 g3 _: R8 B
- ;; Update Major Axis Vector value; ~" Z- L- {0 j& A. q3 B
- (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))
! H, c: s) p1 J( Q - ;; Update Radius Ratio value
- p8 }" _$ {5 y& } - (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))/ o$ Z! f, s M6 Y8 b& ^
- (entmod elist)
+ x5 V; u5 `. l4 C - )7 d' H$ G6 _0 c, @$ x
! [' c1 {: @5 I6 n% j" a- (defun ddellipse ()
1 S t& K' I/ w( b6 Z - (if (not (new_dialog "ddellipse" dcl_id)) (exit))
. u- j5 t! s$ S - ;; Set initial tile values& D$ B3 P% q7 o6 b
- (set_tile_props)/ ?& ?7 S" V i9 G( I" H+ s
- (set_tile_handle)5 g1 _' I$ @: ^2 v' K
- (set_tile_pt1 1)
' A. D" r! }% U7 ^8 z - (ell_calc)
% R( B- Q' F( S! J - ;; Define action for tiles4 P6 p6 J- N4 y
- (set_action_tiles)
; M" ]# J: J1 Y" w7 R - (setq dialog-state (start_dialog))
0 f) @( P& M0 |# X - (if (= dialog-state 0)
" r q5 {' i9 i - (reset)
" r& { }& R0 Y5 Q3 T; A; l) [ - )+ {- u2 z" T- ~4 x1 _) U
- (if (= dialog-state 1)
1 y, d( X7 O& ] - (modify_ellipse)# Y" ?7 I! s x' h
- )7 H" r% P9 e. i: _6 M6 W( H6 {
- (if (= dialog-state 3)! b1 B3 i( h1 ~: r. ]# @
- (progn
u; U2 o H" p$ j) [( N - (modify_ellipse)
. }# |& P. R) z4 K - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
B# k6 D. g, B/ K5 B - (ver_pt1 1)/ S& S" _: g! R6 i7 g* i: H S
- (ddellipse)
% P8 g' Y3 T, J. S, s3 J - )
# R2 s; Y" m- |! e9 x) [ - )/ I, |! ]: }! s
- )( W; L. t; f( [# B2 }
- ;;
' m. y; i! V3 @% i6 S) V6 h - ;; Modify REGION& u$ U ], }6 \# `) A( c8 B
- ;;
# {: [( f J0 \7 Y - (defun modify_region ()
1 ~" ~, Y/ s0 O7 Q - (modify_prop_geom)
, x, g0 s: b+ ~+ K" l s5 z& W - (entmod elist)9 n8 {. e: c# e) s( d: ~9 ?
- )
6 G1 ]" r$ o( b3 r2 t* Y$ h5 Q - 0 ]/ K( u4 ^4 }6 r3 O
- (defun ddregion ()
5 a0 ?8 d5 [# E8 d) m' ^7 R) T - (if (not (new_dialog "ddregion" dcl_id)) (exit))0 Y4 E5 ?; C) [( j5 j! [
- ;; Set initial tile values: r1 t3 r3 Q* e: Z Z# w
- (set_tile_props). f. l' y2 E" K( a- |% D6 }. z, a
- (set_tile_handle)# k. O; |! M* Q3 d* J
- ;; Define action for tiles
& ?6 R6 V5 o! t; y; Z - (set_action_tiles)
0 q* Z( T2 ]- O - (setq dialog-state (start_dialog))
$ `( k1 Y8 D# k' k8 C5 ~ v" | - (if (= dialog-state 0)
" g l& r# {6 c0 U - (reset)- G( `9 g8 h7 `& R* @/ y u
- )
; ^1 c0 V4 R* W - (if (= dialog-state 1)
8 y% Z7 j/ A. }5 Z+ t - (modify_region)
9 c% \! D% O7 q2 q - )* T/ | y% ?' Y+ x
- )
' {# Q# z/ X! N3 j+ f - ;;
4 g- Y' J, b4 y+ t. D0 R) h - ;; Modify 3DSOLID
) x9 v2 J8 Y" J* u+ i - ;;
; V+ z% o! b1 e k X) h; A - (defun modify_3dsolid ()8 V2 ]1 G& \# a7 H* f8 G6 `0 D K& Z
- (modify_prop_geom)5 C$ i* D+ Y1 S, t9 D1 {
- (entmod elist)0 z! C) I9 A, V8 z* a/ Z" Q
- )
% B4 @3 W3 z6 ^# g1 R' Y
; o. j: x" H: V8 `/ B- (defun dd3dsolid ()
8 W4 l( Q) X. ^* O- A+ Y - (if (not (new_dialog "dd3dsolid" dcl_id)) (exit))
% m, S+ @8 i/ k0 a Q - ;; Set initial tile values& `; M& g. g& l1 {! l: b) Z
- (set_tile_props)6 x! H) i2 u% B
- (set_tile_handle)
, T7 ]2 @- e! {/ g3 P+ P - ;; Define action for tiles" R5 Z/ L- V1 U( U
- (set_action_tiles)8 F( b- L( z% u2 @, Z9 o; B
- (setq dialog-state (start_dialog))6 W: i5 Q, J/ @! Y) F8 z
- (if (= dialog-state 0)
0 h% {" c$ C9 n6 B5 s- h q - (reset)
$ i* l/ I0 v5 C% U: t3 o - )
% o: f5 z: M0 F - (if (= dialog-state 1)
/ y4 ?+ P$ E; f+ v3 t* O, O3 p7 I - (modify_3dsolid)3 g' X" d4 n+ W. t( `
- )& I+ D# }/ q# x) }. q. b
- )
9 {3 M' O5 _: k6 n/ u - ;;/ O" j1 K9 s9 P8 z, o
- ;; Modify AcDbHatch
2 d( ~- G0 {6 m8 v3 r5 d. c4 c - ;;
5 i) S' z# t" u$ ^) | - (defun modify_hatch (): X% a( }3 j( z6 V
- (modify_prop_geom)8 q+ \* Z, ~. O( d6 N
- (entmod elist)& u" g. Y4 f& a$ l- m4 l
- )
: G: [" P C! e* x3 @ x4 E# N" ~! o
+ g2 \4 V0 C$ b& X; A- (defun ddnewhatch ()
- R7 |0 d$ E% r8 @5 ^! { - (if (equal hatch-elist nil)
2 L1 w% _4 D7 I - (setq hatch-elist old-elist), F8 p$ P. D' p+ s( H/ T, O* b) C6 N
- )
5 r* m* B& q! X/ {2 Q4 [1 `5 s - z. s/ L7 k G$ D+ e. V" O' c+ ^6 U
- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit))
# ~3 @2 m# d2 |
2 p% Y& U8 Y: |& k- ;; disable the thickness tile
0 q* \6 l. y3 H7 g9 k# q% ^ - (mode_tile "eb_thickness" 1)) X. J: [" k. X. L
- (mode_tile "e_thickness" 1)8 q2 ]& E+ o; X' @& X, h; x
0 N) x0 d0 z4 i8 k6 x5 t- U1 R6 n. ^- (setq help_entry "modify_associative_hatch_dialog")+ }) V1 @: l$ l" D1 j1 n5 M
- (set_tile_props); Y) V8 e2 t& w9 v% `8 @% y
- (set_tile_handle)
+ _& [4 i" K; E% C( e: y1 W4 K5 {
3 R; j2 y: N1 h1 w: A) s5 c- ;; Define action for tiles
0 `1 P7 J* ^5 Q6 ?* b# y - (set_action_tiles)6 I% c7 T. r. z3 b
- (action_tile "b_hatch" "(done_dialog 2)")$ A. J" M" N! ?' c* u) }0 x
- (setq dialog-state (start_dialog))4 I$ c7 p, V: ]0 R3 d
- (cond/ K+ J1 X5 Z8 T3 B$ h; Z. n7 K
- ( (eq dialog-state 0)+ k# d/ T, ?6 v* M& j
- (setq old-elist hatch-elist)6 D+ C, w9 j# [7 @3 ?2 a
- (setq hatch-elist nil)2 I+ ?4 Y* s! I1 O7 B# \
- (if (= (checkforlockedlayer ename) nil)6 |- @& `: X2 t- d4 s! V
- (reset)( _8 r8 L4 p$ R
- (progn ;;; special handling for locked layer reset
! }# l7 N5 }: D8 C: k4 Y - ;; unlock the layer
1 q. I' }0 G3 a - (setq layername (cdr (assoc 8 (cdr (entget ename)))))
4 z7 [' v+ l# G. a - (command "_.-LAYER" "_Unlock" layername "")+ e N/ \- e- G: W0 W7 k& R
- ;; reset modifiction5 d" I! D' O, o
- (reset)
. V" [- s1 Z* z - ;; lock the layer again
}# w6 _/ F) H& i! X, y - (command "_.-LAYER" "_Lock" layername ""): @% g2 f3 n; `0 s
- )$ ^: }& a8 a1 x6 O% t
- )# F/ }; K, Y- ~' Z8 O
- nil ;;; makes (ddnewhatch) return nil for Cancel
5 c" y* c) O5 \. [ - )' {. w' f+ d! [: T3 v& o' V1 A
- ( (eq dialog-state 1)
% d( U1 k$ s$ H5 j - (setq hatch-elist nil)
8 p* v5 e0 j) l7 M- P+ K( d/ f - (modify_hatch)
0 G$ G' ~; u0 [0 U& i - T ;;; makes (ddnewhatch) return T for Ok
. I2 V% v/ }' u! n Y% x/ e - )
m1 ?1 n3 D% @4 F - ( (eq dialog-state 2)' l6 [* G2 {" V- N: I
7 M9 q, ~- `6 x( Q2 c9 D& r- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))
. \! [8 X/ \+ c' Q" k+ g4 h ] - 4
( a8 K8 ~7 f4 q @' v4 ~ - ) + \9 q: j; G W
- ;;; new selected layer is on a locked layer2 n: z! j" ^# r* `' T$ S
- ;;; we can simply modify the hatch properties
5 q8 b( k M( I3 k7 ~+ G - (modify_hatch)
' s) `* _, g. `+ f4 B; ] - (progn2 E: @" C: n+ @1 S( L: R$ a
- (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))
; B0 p* N/ O0 F q' _6 i6 b - 4
; a7 X6 n2 w! ~' t/ H - ) : ~/ C4 {0 u( m' _
- ;;; We changed the layer previously and now the hatch lies on a locked layer.
" {- |- P; ~9 | - ;;; We have to unlock the layer forethat we can update the hatch properties.% |5 h7 f. C) R) ]/ r
- ;;; If we don't do that (entmod) fails to update to the new layer.0 c2 O& I9 Y6 u" o o& _
- (progn
5 s* e& s* V) c; u2 c m# B! m" R - (setq layername (cdr (assoc 8 (cdr elist))))$ M5 v, B) I+ L) ^
- (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer; {+ N8 \' s" u x# Y4 i
- (modify_hatch) ;;; update the properties5 p* g$ j- I3 O B( Q
- (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again/ ~" i. f& J# ?$ m8 n' S% u
- )
. ~; y$ r! ], \2 J4 D1 y - ;;; All other cases we simply update the properties
2 _" {6 I' G) V9 v2 [ - (modify_hatch); i$ D, l% Y( C8 r6 Z; Y0 {
- )1 `/ C5 i% s0 |$ e+ O1 L
- )
8 m4 Q, ^! _+ p, C* J+ k$ v - )
2 ]0 a! g- S2 t j2 R - (if (= (checkforlockedlayer ename) nil)4 u' E, a3 {1 e# y# j7 Q
- (command "_hatchedit" ename)
! _2 R# Q, f | - (alert ;|MSG111|;"The hatch object is on a locked layer.")/ f& e2 b: A9 P5 Z: Q7 O3 l' J
- )9 a' f% f6 G3 m0 U( _* ]
- (ddmodify ename)
' C, o7 \/ z7 X! l - )
7 H; T- Z$ T n" G' M! ^# ] - )3 c( O( D" w8 W2 F; J* i$ H+ d
- )2 s3 t" @0 g7 n( H
- ;;
. z9 Y, L# j0 I* V1 k - ;; Modify BODY
# u# E" ?* o, r6 M/ V/ s - ;;
2 f9 i' Z" p% |) V! p- W - (defun modify_body ()/ O" O4 _! ^9 V$ k3 O5 D$ G
- (modify_prop_geom)
4 F( V) x/ C6 @) ]4 k$ N: }% h3 V - (entmod elist)/ x M$ `5 C7 {, K: l
- )# ~1 @- z3 t z& h9 C( z
- ' m% I0 f7 O$ N
- (defun ddbody ()
- r* Y5 d4 v# V3 U$ V3 v. y - (if (not (new_dialog "ddbody" dcl_id)) (exit))
; N" x; |$ A! E: @ - ;; Set initial tile values# d! a" N1 V6 A
- (set_tile_props)( W3 c* N0 }; l/ P
- (set_tile_handle)
1 W. G0 Z8 J0 [$ h, E - ;; Define action for tiles: t" l3 F4 Z! ?. P- c) O
- (set_action_tiles)
9 L6 D0 S4 T3 q' A, I! B: g- B( [6 T - (setq dialog-state (start_dialog))
/ m: O; a0 ^3 e8 Z; N - (if (= dialog-state 0)
7 D8 p1 F" f( G8 ?( U0 m# R1 `# m- r - (reset): T, K, h( Z; o. F6 a
- )
& ~- c$ E; t/ J+ J; V - (if (= dialog-state 1)$ u% X" m$ I/ q3 Y
- (modify_body)
' C9 C" K& \- W. G2 h0 S5 J - )
0 c3 U9 e4 d1 b, l* [. ^% X - )2 ^) {6 w- H; n T/ W; f7 k: `
- ;;
7 b& l4 \# U/ f" G; \ - ;; Modify CIRCLE
- G; s2 K8 m8 u7 M( L' T3 q4 J - ;;2 e# r. D3 R* ^% q: g- y
- (defun modify_circle ()8 i( _. ?6 n2 ?, E2 t3 h
- (modify_properties); Z2 s8 {6 r' X8 U$ C) R
- (setq pt1 (list x1 y1 z1))
1 t& {9 [% X- N! z$ o - (tempmod pt1 10 1)
: J8 {$ L* D+ a/ K7 o' @ - (tempmod radius 40 nil)3 D- w; S: ]; J- B5 Y
- (entmod elist)
/ H# a' {& p: _% E# ^ - )
) a" r) A2 r5 b1 G& M9 P
5 M+ l" o( X# S# p7 d2 S% F( u q- (defun ddcircle ()
9 M( V. e* j# `: H9 v* D( S* V2 @ - (if (not (new_dialog "ddcircle" dcl_id)) (exit))- C3 \$ s% p# `6 x+ x1 Z0 \
- ;; Set initial tile values
i; b% N: ~! d - (set_tile_props)
3 f ]6 g7 \2 i, ?- } - (set_tile_handle)
+ o, ~: a0 }, R: Y - (set_tile_pt1 1)/ f$ s: G7 u# o9 |6 O# r
- (set_tile_rad)& p0 b6 X I2 e3 H7 P! O u- Z0 p
- (cir_calc)- N G' o7 @4 R( d3 q
- ;; Define action for tiles
/ |/ c' h" d/ u7 t% R) v7 n6 I - (set_action_tiles)
6 ]% D( C: q( L - (set_tile_pt1 1)0 C0 _3 p h, i. D O0 Q$ p
- (setq dialog-state (start_dialog))
: X9 G4 |7 K4 y" S - (if (= dialog-state 0): _% j0 `0 c1 B6 z
- (reset)- b9 {! |" i! C' ?3 n
- )
1 s b% [5 M4 l# Q* E - (if (= dialog-state 1)2 }$ M. G6 M- P; M2 A
- (modify_circle)+ n# i! k" `2 g8 B# E" X/ S+ @/ h
- ). U8 O; V" y: ]: y9 r+ {
- (if (= dialog-state 3)4 d# w- M5 b6 S6 K; M; O1 w5 m
- (progn
& o4 ~9 U, ]6 {% W3 w7 M - (modify_circle). h1 L2 ^6 a Z% j: x: x6 {+ a
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: ")); S: o9 O! Q! p! T: |* @1 r
- (ver_pt1 1)
, j0 V* F8 ~( r; ? - (ddcircle)9 Q" v' M3 s# Y- c1 f
- )
% r" S# k) o% f - )
" t4 @; |0 a6 l4 Q - )8 ]: A5 G' s7 l9 E
- ;;
) ^0 }2 K7 @# M8 ^ - ;; Modify ARC
' x2 D# L1 h- K" C2 u; [! Q - ;;
/ `/ o6 Q- Y) \3 t" e" h - (defun modify_arc ()
* G) d$ Z% `' g* J - (modify_properties)
' u ^- F1 n D# j2 |7 g - (setq pt1 (list x1 y1 z1))
0 N$ f @* |: J3 W( ? - (tempmod pt1 10 1)! `. m- W& U% V% J2 Y i' I- e
- (tempmod radius 40 nil)- V4 _0 i1 C6 ~5 Y- P: `. D
- (tempmod st_ang 50 nil); s0 i" \% E9 o
- (tempmod end_ang 51 nil)
* E! p3 C7 z# q" _8 Q5 W - (entmod elist)9 {+ E0 Z+ {/ f$ [& k
- )
, L) A) q% S7 y7 S4 o0 i+ W5 P - (defun ddarc ()
' U; m. |: V: [( |& u - (if (not (new_dialog "ddarc" dcl_id)) (exit))' f2 G0 h! g. r
- ;; Set initial tile values
2 D9 u. B% D/ W0 U - (set_tile_props)
- g! T1 ]1 a" ]- S) V - (set_tile_handle)0 g% ?2 l$ ?' ^2 K' ]
- (set_tile_pt1 1)
4 Y$ L1 J' v" x - (set_tile_rad)' H1 H7 ^$ N+ g7 @+ y/ _- I; ]0 k
- (set_tile_stang) @5 v9 b/ q6 U% R- H$ v2 C
- (set_tile_endang)
5 P8 Y2 o& u% }- | - (arc_calc)5 F, D3 I0 K% y1 Z$ x
- ;; Define action for tiles1 |+ w1 j8 M* r$ d9 X7 F! ?
- (set_action_tiles)( D( M3 _ i s4 J5 ^0 S
- (setq dialog-state (start_dialog))
" t; H% ?- n7 y9 x - (if (= dialog-state 0)
5 p5 f( E& `& a3 A - (reset)
' y0 P4 }+ N: {6 X/ I - )& v" z0 F1 K: A, H$ C) [
- (if (= dialog-state 1)
E6 f5 s! i/ o2 Z0 |; v3 J, a4 s+ K - (modify_arc)7 M4 G- _8 D# E3 g. e/ L4 f
- )2 W5 N v3 `% s# z9 |
- (if (= dialog-state 3)
0 q2 Z( j) K! t/ y1 S - (progn) \( ^) Q# G/ P* w1 H# i9 i
- (modify_arc): g- @# Y- }' z) d# H
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: ")) B6 h3 A ^ y+ L7 M
- (ver_pt1 1)1 t& n& ^) Y% G% r- o, i4 N
- (ddarc)1 D7 ~4 k7 ^+ K( {, k; A; r
- )
3 J8 g; H3 k$ t4 k4 ^" @ - )" r; |" B9 z2 _/ I4 N+ l
- )
1 w5 I1 o. E: ]1 L8 q9 {, E. x - ;;
x' l- u+ m" t. y - ;; Modify SOLID or TRACE% }: s' H, Q# x
- ;; Note the Z value of the object is determined by the Z value of the fourth9 d! h v1 ~6 e" g; {
- ;; point - code 13. Changing the point values of a solid or trace from a UCS$ [: V0 D7 _- P5 G+ w
- ;; that is nonplanar to the UCS the object was created may confuse the user.
; J1 T5 h& U R2 W - (defun modify_solid ()* o3 |- P0 W# X8 k
- (modify_properties)
8 v' i4 `3 U9 Z, U5 r* \ - (setq pt1 (list x1 y1 z4))
, @. v6 C7 B/ s- g+ E - (setq pt2 (list x2 y2 z4))" [# H9 G3 Z- i4 G* A" c. h
- (setq pt3 (list x3 y3 z4))5 _4 t' Y" h$ p+ u
- (setq pt4 (list x4 y4 z4))( j: T6 C9 {9 d- ?' Q4 w
- (tempmod pt1 10 1)
* y2 p; s# C+ j. K - (tempmod pt2 11 1)
+ g8 x/ e" N- { k, C8 _! y3 ~ - (tempmod pt3 12 1)
3 M% Q: h( h1 @3 P: j) F - (tempmod pt4 13 1)
/ K" i7 O) _# h+ T& D$ k* Z - (entmod elist)
' Q0 N6 q5 m) h' z8 s - )
9 U' `$ B1 i3 m! \6 p
( ~0 S% D1 Z& g$ {0 h- (defun ddsolid ()) G+ ~: s5 g. v' r: Q' q" }+ }: v
- (if (= etype "SOLID")' M& b3 W n$ f1 x
- (if (not (new_dialog "ddsolid" dcl_id)) (exit))( L/ o+ \0 d( ~2 F6 p4 x; q( K- P
- (if (not (new_dialog "ddtrace" dcl_id)) (exit))/ y! m6 x+ C) |
- ) h! S3 }9 }2 C0 C) e5 @
- ;; Set initial tile values: i8 j# A4 M ~4 p
- (set_tile_props)
2 h; |2 z' K1 F6 M- ?9 s# W - (set_tile_handle)
3 z( p& X& ]& T, ? - (set_tile_pt1 1): y- W7 S' a7 `! W
- (set_tile_pt2 1)
2 W" T* |( U2 _9 F- w - (set_tile_pt3 1)/ w# X" Y( t. ~# p7 I# U7 S/ @
- (set_tile_pt4 1)
# y, N' `- A- m$ ~6 t2 X - ;; Define action for tiles6 [( ]; E1 X' C6 {! H
- (set_action_tiles)8 O' t( D3 ]4 ?+ ^) p+ t4 q6 s
- (setq dialog-state (start_dialog))
$ `+ a) S+ t N$ |0 J$ c+ k! W - (if (= dialog-state 0)
1 z, [' D7 K! t u - (reset)
; b4 |1 P2 J# l) k( T$ p - )
' q- [/ U, u. r. C - (if (= dialog-state 1)
9 P6 I; c# P: g$ q1 n - (modify_solid)
# T& d% i, y8 F5 m, @$ i) j - )
+ |, k8 V) n1 {1 P5 p - (if (= dialog-state 3)
4 j- `! p0 R' h2 h - (progn- f% U; ?1 [$ A' I- v: a
- (modify_solid)
) n2 C: e, y! C3 _ - (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))$ l. z7 v" X1 l- @) G9 K
- (ver_pt1 1)3 I0 b6 D5 y/ Z% w5 o$ @
- (ddsolid). X: ]% U- |+ g4 _3 B% N
- )9 w8 v- p9 z0 L6 o$ m) \( ~
- )
; f0 Z! {2 f- l; x - (if (= dialog-state 4); y& B% M1 T$ m
- (progn
2 @7 i+ R! T0 g8 d6 M; V( v - (modify_solid)6 o2 s8 B. L K+ s5 q. ]& L
- (entmod elist); Y5 E1 d- w3 ]1 T
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: ")) p9 t" i8 ?" [
- (ver_pt2 1) C2 }/ {" k6 E) e8 J) N% d8 W
- (ddsolid). E. A# u' E4 @/ G9 c
- )
# p5 e h5 y7 i. P0 X. t - )
( X7 J3 }& z5 N7 t2 p) G( d9 Y! s6 p% @: r - (if (= dialog-state 5)
9 y& E$ k0 e* W) n7 T- r - (progn
4 S8 ^# A" M+ {! ^3 `+ G) { - (modify_solid)
, S) O& r( v! \8 V( e& R% W - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))
1 ^8 D5 N. @5 @) q5 d - (ver_pt3 1)
! n8 w6 K2 l' \7 h2 J3 Y - (ddsolid)2 r7 q7 _1 k0 q. J: Y0 J
- )" n- F3 f; C6 }7 W W; n
- )
; A' H7 @' X, z" h: [% @* E - (if (= dialog-state 6)$ k; I$ U8 J8 H! J2 t5 K
- (progn! }& D/ d& v# g! L' D
- (modify_solid)" a5 B J) E7 |. U
- (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))3 g& N* U; @" T& B/ U
- (ver_pt4 1)
8 b4 \5 V- i2 }' m/ y& q2 y - (ddsolid)5 c! R7 E6 _: }! s
- )# N" d# ]4 n3 E' Z- M: h9 e
- )
! \4 z3 j. \- S - )6 D: s9 w l( f
- ;;! K5 w. p. U& M! J
- ;; Modify 3DFACE
9 h& c6 n% J$ ?6 h( M3 G6 K - ;;+ ?% {5 X. T& c2 M
- ;; Check visibility of edges
- @) {- _ e# R - ;;! \* C3 P3 R- f9 V+ ?, f* _/ V
- (defun edgetest (/ bit1 bit2 bit3 bit4)
- ~+ G! f C% F! ?* W: ?8 }2 _ - (if (= edge1 "1") (setq bit1 0) (setq bit1 1))- j' h% J- m8 a+ q+ l% s
- (if (= edge2 "1") (setq bit2 0) (setq bit2 2))
: g$ o2 k& s* q, p0 L" B7 X/ [ - (if (= edge3 "1") (setq bit3 0) (setq bit3 4))
: m V9 v' \- ~$ t - (if (= edge4 "1") (setq bit4 0) (setq bit4 8))
+ l9 {. p" z* z4 o9 t - (+ bit1 bit2 bit3 bit4)' y3 U. s9 Z5 `7 e5 W
- )
0 W* \& F# w" D5 F. q V' j0 R - 8 V( a+ O U) h, {. I
- (defun modify_3dface ()0 |+ j' y6 Q" o! I
- (modify_properties)0 c+ G5 ?! S% X7 Y
- (setq pt1 (list x1 y1 z1))+ D1 n/ {$ h# u A3 Z U
- (setq pt2 (list x2 y2 z2))3 R) ~: i& ~* i( ~& o5 A
- (setq pt3 (list x3 y3 z3))& N, p' q. Z u% ~
- (setq pt4 (list x4 y4 z4))
( j: |, m4 l3 b$ n, C2 |1 { - (tempmod pt1 10 0)2 J5 K2 j- \* j7 Q1 c( ` m! I+ ^
- (tempmod pt2 11 0)
1 t0 k8 r5 }5 t" ~; D - (tempmod pt3 12 0)" K5 _) U& o: d* n
- (tempmod pt4 13 0)
" S7 Q/ Y8 \2 o( r2 @ - (tempmod (edgetest) 70 nil)
. n" p) O* Q2 p4 O+ w* I# D - (entmod elist)$ e: K6 V' N8 i) `) s3 d
- ), [* N3 s; u& o* v4 K8 k
5 e. }: \0 B" c8 G' y x- (defun dd3dface ()& m+ {8 U" V3 `
- (if (not (new_dialog "dd3dface" dcl_id)) (exit)). b9 G, A* H: p) q1 _/ T3 j4 I
- (set_tile_props)* s( v: }+ b2 ^
- (set_tile_handle)+ \8 M( w [) y, v' W
- (set_tile_pt1 0)) ~7 `6 d1 Y4 |9 I& |! L+ K) M5 T
- (set_tile_pt2 0)% P7 J1 d6 h. w9 a- q) X4 S9 D
- (set_tile_pt3 0)
" ?: T% t! F$ M - (set_tile_pt4 0)
" f& @3 n% F4 F* w6 L - (set_tile_edges)5 M7 w! s/ T& P0 t; h' l4 I. l. S
- ;; Define action for tiles- d4 p% f# P# q" S: F
- (set_action_tiles)
* \" Z# F, Y6 a4 k. H7 c0 w - (setq dialog-state (start_dialog))& X; k1 A n( p# z0 r: M9 J
- (if (= dialog-state 0)- K x( B8 \% V! S7 C4 p2 D% E
- (reset)
y& c: t3 T I+ v9 m - )9 _7 v6 K- z- _
- (if (= dialog-state 1)
. k h" {4 q6 A# `. d - (modify_3dface)
$ M: `: R& z- S1 f8 p$ E - )5 q" m. H8 }$ Q( Z$ O) n
- (if (= dialog-state 3)0 v9 _ R. V! q" R! g# ?& d
- (progn
" h! A* e2 B) ?1 H8 u, N5 @( p - (modify_3dface)
]# D9 T4 z+ |% O$ j* R" Z - (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))
4 { ~ W( l" [1 [8 K/ b' K - (ver_pt1 0)' P1 X& n0 d% p: h" {, S) Z
- (dd3dface)
2 |5 M6 R/ X' U6 w1 m* r( G; ^ - )
/ X- ~# ~1 a8 F5 M1 _0 H - )
: k }" N4 {3 r: g1 m" U5 J - (if (= dialog-state 4)* R$ V% a, U) r; b6 k
- (progn8 n" i6 s5 K% E! ]8 e; x" j- `! S% @
- (modify_3dface): t6 E7 u# U9 K6 R ]9 z
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
0 o. k" f u' G l) E) C7 @* f - (ver_pt2 0)
8 D1 ]. s3 c* q, L }3 |8 @: } - (dd3dface)8 G" h% p: G( i/ F( L' U# ]3 n
- )7 { N4 @" }9 H& G: ~6 [# \" o
- )5 g* H1 C/ ]% L- j* f% n9 c
- (if (= dialog-state 5)
) f( N% Q6 B. N ` - (progn/ t7 p: n) A% W- F
- (modify_3dface)/ {4 ~ v3 f' ~7 u! ?' B7 E
- (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))
- V( b- K( G( o; h - (ver_pt3 0)
8 X; v4 C/ ^, }: j0 { - (dd3dface)
* |( p3 | H9 j9 F% q+ [; N! Y - )- E" R$ ]7 ?; }& q/ T
- )- B$ c1 ~# s% A$ L
- (if (= dialog-state 6)
5 j! t# p8 o( ] - (progn E! D9 O0 P' N( A6 @' H* T
- (modify_3dface)$ [3 i. Z4 {$ z& s
- (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
( {* g0 C$ w0 [6 v; Q$ F7 t - (ver_pt4 0)6 w3 q L1 C) k$ B
- (dd3dface)7 [$ c& h. \3 R% d3 y
- )5 w; t. E8 y4 H
- )
! v* v8 X3 n; b# U* l& v* N - ), N3 B y: s! }) f( X! H
- 8 y& |5 L8 l# p# S" ^4 @3 {
- ;;/ ~& ^, a l& s0 d1 k H/ g
- ;; Image functions" a) N2 [$ J1 H' W8 k
- ;;
0 O& v9 B7 w+ F0 @' S0 n, v# H - (defun image_scale (/ upixel en n userscale temp)
3 q, `! t, s+ ]( {$ ?8 U - ;; Calculate the size of an image pixel in AutoCAD units: K3 \. ]/ T3 N. K- Z0 I
- (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))+ _" F7 u5 ?* S' w/ |6 ] z, k
- " ~* D( |- M9 i( ]6 l. r
- ;; Retrieve the user scale
1 J/ w6 A v3 V% C6 ~$ Z8 Y; n/ U - (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS")). x& L3 ?( e% R; `5 B! ^
, Y5 n: }8 |7 a+ Z% D- ;; Next, extract the image units and pixel resolution# Q; H: _2 L5 L- f" K% g
- (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))* ^5 \; N8 e7 v4 J* j% b: v; ?! U
- (setq image:scale (* (cadr (assoc 13 elist)) upixel))
- C& U3 L% ?; ]7 o$ {3 ^4 d - (progn0 g, V1 R/ x; n' J
- ;; Convert the user scale to the proper word
/ m5 U% H+ i5 W0 @4 H - (setq n (cdr (assoc 72 en)))
+ U$ t/ S3 G" K, B, S( n - (setq temp (getvar "LUNITS"))4 ]7 \/ B" B' i# L$ ]; O
- (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5)); `: k2 E& N, ], }
- (if (= n 1) (setq userscale "Millimeter"))
* O8 q' [4 @/ b# O- y) F, N - (if (= n 2) (setq userscale "Centimeter"))/ X* C7 L$ `0 ^- [1 `; d
- (if (= n 3) (setq userscale "Meter"))
7 T8 }! F5 q/ D B2 l: T - (if (= n 4) (setq userscale "Kilometer"))+ h- F7 Y9 s: t: H
- (if (= n 5) (setq userscale "Inch")), M/ o) d! ]# ]' ?0 g' {0 ]
- (if (= n 6) (setq userscale "Foot"))
+ q! T" l" u5 r8 L! Q0 C' ^2 z - (if (= n 7) (setq userscale "Yard"))# {- e/ T, H1 w! |
- (if (= n 8) (setq userscale "Mile"))9 d" l- f+ A' Q0 c# k/ r0 k
- (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist))))
# q f4 X4 i, Z/ F# w - )
! a5 V( m+ n: |* s9 q+ u - )- B% S2 ?3 [7 a& \3 C* u! V
- )4 M4 r. }/ @8 i4 v! e% j
* z3 _5 z7 R6 N$ d* ^- ;;& ?! x$ i* m2 M( l0 @& N% T8 F
- ;; Scale factors for block insertions
8 `7 H5 O2 E" [, E, ~" J - ;;8 M: ]* m$ k7 V0 H3 k+ Z" ^9 ]3 [2 j
- (defun image_set_tile_scale (/ temp)6 x# J: J& q! T9 x0 M! b2 G2 p9 z
- (setq temp (getvar "LUNITS"))) H& P: S, ^ Y* c2 I/ \
- (setvar "LUNITS" 2)6 q Q3 L- a9 n" N
- (set_tile "xscale" (ai_rtos (* image:scale image:mult)))0 b- x8 ?$ ?( ~
- (set_tile "wid" (ai_rtos (* image:width image:mult)))4 s- g- e+ s6 v7 `6 x
- (set_tile "hght" (ai_rtos (* image:height image:mult)))3 t- h* i6 k1 a3 r' ~
- (setvar "LUNITS" temp)5 K( }/ y, J) c" q
- )1 j: X4 `/ X+ }: L$ M# E* o
- 0 l% M% r( j& Y" k7 O# k
- ;;- K/ o$ S& g2 m, S" o1 {
- ;; Set the scale, width and height values appropriately.5 _7 J# g# V4 }, g! j, ~
- ;;
2 p+ X) k( k9 j+ n - (defun image_update (field value / orig_value new_value mult)
3 D, l2 d+ y$ [6 g4 B - (if (= field "xscale")4 A' j2 r+ n: `+ G6 b6 t' O
- (setq orig_value image:scale)
& Q6 _ |- M/ X3 d - )
& D* z1 d- s: b( g2 d1 I7 U, z2 G - (if (= field "wid")+ c* `- y* D5 M1 z; ^
- (setq orig_value image:width)
/ T1 Q2 G }2 j0 l8 I# e - )8 Z, F2 A+ y7 v" t. c& G
- (if (= field "hght")* H; m3 d: b1 s$ t* G' |
- (setq orig_value image:height)6 k3 N: f7 K7 W6 q
- )
* V) K+ \7 S4 g% h - (setq new_value (verify_d field value (* image:mult orig_value)))
0 |8 B3 p! v( d5 p6 C - (if (/= new_value old_value)1 [! e2 j w. r- d7 k+ B o
- ;; Make sure the user has entered a sufficiently large value
- m3 `3 q/ O5 f2 T" S - (if new_value
4 v1 L5 e! Q* ?4 V2 D h- b4 M3 A7 x - (progn$ Y4 Z' _4 o4 ~$ Z' a
- (if (< new_value 1e-8)
% ]& Q* x6 c' p; c# V7 p- [ - (setq mult image:mult)
( A% t$ o$ e( O8 { L - (setq mult (/ new_value orig_value))
+ d. W s0 i, y3 h' B6 A, x6 s - )
( `9 i& X% v9 W ]" v5 X - (setq image:mult mult)
2 u8 Z+ o: D5 E" B - (image_set_tile_scale)% T- [0 Y7 g8 b% q/ T
- )
9 }$ Z, t* x' i" q4 d# ^( ` ? }) o - )) G% ~- s+ a' w- p/ v3 }& F
- )
* _' P0 O7 `9 c# L# d7 Q/ [ - )/ E8 Y- V5 Y0 W# R
- 7 H3 w3 _5 x% h
- (defun image_disp_opt (bit)
4 m' d9 d' G5 A2 B+ f - (setq image:options (Boole 6 image:options bit)) Z1 }' |5 H8 S# Q8 m
- )6 v$ {9 p+ \: d% ]: D
- {: d5 k6 U7 u" h# Y, k9 W! I
- (defun image_modify ()# |/ o$ _- N, X9 {* W
- (modify_properties)
, M$ ^0 f1 Z( j$ D - (setq pt1 (list x1 y1 z1))/ c4 b% |+ x: A; p" D6 L
- (tempmod pt1 10 0)
& e4 A/ |1 h* Z0 V" ?* W0 X# M - (entmod elist). ?0 [* {5 w0 s# H3 X
- ): K5 j: O( q. U4 X7 {: G
; r( g' a6 c) F. C) `- (defun image_clean_variables ()
8 G. }1 q/ @+ [& [# c - ;; Clean up global variables used here* N: R7 x. J4 t. r2 {( n
- (setq image:scale nil)1 B- t* V. G8 }* v* M
- (setq image:angle nil)7 Z/ z9 I& X. U: P g! O
- (setq image:width nil)
0 x6 |& ?% ~: B6 U - (setq image:height nil)0 n. i- H; w7 @3 I; L( A
- (setq image:options nil)( L1 b H9 p" K4 p0 c. C
- (setq image:oname nil)
( l9 g5 \$ `9 s0 m% |& q6 L - (setq image:olist nil), c& o6 g. H1 v' R
- (setq image:mult nil)! Z) Y- V! ^4 x* g7 r1 t
- (setq st_ang nil)
9 q3 T$ L9 v+ Q( R) i4 }( y( { - )4 ^5 c. `! W5 p8 m3 @ [
% G' W! l. b) [% B: t! @" m- (defun image_scale_vector (v1 value)
3 ~+ d* x/ x9 `7 A8 }" R" _ - (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))
4 T. g7 F) n1 v1 t - )
, {6 a, G: ^$ S) E7 i* R
$ { R0 L8 ?( R: [- (defun image_cross_product (v1 v2 / vx vy vz)9 H, q; Q3 Q: S* \
- (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))
5 v6 ]& U) i8 D3 z8 T - (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))/ [1 m- S1 |: k( p5 ^9 ^& k
- (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))
( U. i0 O; `/ x8 Y* Y - (list vx vy vz)' C0 _6 w4 W( t0 |4 Y& S
- )
& I; R, \0 n) |- ~ - 3 g1 c6 Y$ o$ d# P
- (defun image_dot_product (v1 v2)
! B1 }5 { h3 Y P! v - (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2)))- d, c. o/ f5 _* r* K+ t
- )! q* o0 V3 b& d. o- B
* _3 {/ c$ a* ^& o6 i. t- (defun image_add_vector (v1 v2)6 h3 [4 e* l# R8 d9 p! c
- (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2))). s3 H3 Q2 H: K4 Y$ q$ G2 p
- )& ^2 U' m8 P$ i6 t% n5 j
+ F) [3 P' b# t! ^4 j( w6 W- (defun image_subtract_vector (v1 v2)# W# v, b' O' y: r+ d! C
- (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2))), [0 \! T. G k* ]0 k8 ~' Y
- )7 Z6 J) g( ?' Q8 H
: P+ A4 a5 J. l2 Y4 {4 n- (defun image_normalize_vector (v1)! w' g8 T/ T% v& v5 V
- (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))7 w1 J0 P8 O) \) C
- )
7 C' J# J) B- c! N0 X - 7 ^$ [1 r; u2 z- [6 f" p
- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)9 \: |$ R) f" w9 a( n
- ;; Normalize the axis
' s& I( s( Y/ U: }% D2 @" w& U- S - (setq axis (image_normalize_vector axis))
& B- L2 p; R3 e0 ?2 ]3 T - (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))
& n: {$ U2 f+ W9 z - (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))8 z% h; h, c$ c* X1 f. O
- (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane))
" L# A1 G& }) t - (setq in_rot_plane
- y3 P; Z" ^1 F+ u( I - (image_add_vector
2 [* q9 J3 G. p8 z! U; S3 c - (image_scale_vector axis_x_in_rot_plane (cos angle))
! r' F: }/ A& Z1 U1 b4 o - (image_scale_vector axis_y_in_rot_plane (sin angle))7 d( X. E$ Y8 `& o4 a$ Q* i, o
- )
" A3 Q3 l$ K& U8 L - )
: a/ ], L2 i9 ]* z - (image_add_vector along_axis in_rot_plane)/ d* [* F- x) O" a: D. O Q, g
- ), C0 N, ]/ D" [: S" Q. s: X
$ G2 C$ A( L. ?- ;;2 N5 n! }# B4 z& ~# R5 N0 _
- ;; Calculate current rotation angle if appropriate.8 g" f3 T; e. p: \7 @$ g! {; u
- ;; If not, grey out the rotation field.5 T+ F9 Q2 J3 Z9 I1 C# X m1 s+ C
- ;;
, v. r( Q7 M+ y7 G4 I4 @ - (defun image_rotation (/ normal rlength zlength sqrt_tolerance)3 T; E) Y4 t: x) n
- ;; Determine if image normal is codirectional with m+ [6 a2 x& |- h' \' Y
- ;; the current UCS Z-vector.
) @! N7 S/ W4 r* e1 @6 C - ;;
" y. ?3 o. v5 O% Z" V1 U - (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))3 V6 y4 V0 s' c/ A: B+ w
- (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))6 R1 r* s/ q, a# b! Y% f
- (setq zlength (* (last normal) (last normal)))
% Z! u8 V" g" Z2 T" d" G - ;; Note that the value .0001 in the radians is approximately 0.0057 degrees.
/ J, I+ E2 k3 W4 ^ - ;;
9 y4 j, z7 s* L0 b9 _* v: j - ;; cos(.0001)^2
. s* n# ^5 y, Q+ W7 w; |+ U - ;; Tolerance = --------------# }: n: h" p) f5 s1 \2 d
- ;; sin(.0001)^2
3 u& [9 e# O8 M) _. E9 F" Y - ;;
' d' T- e+ U, i- i& F& k4 H - (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))
2 ?4 n( P* q* Z2 Y- o F - (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))
- R* ]( D5 p. C2 S; U3 l% |, T - (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))' B2 Y$ J' y8 ]3 H
- (progn
' K9 [& E/ w9 `; p6 K9 p; e - (mode_tile "st_ang" 1)
. W7 n4 _# I& e5 z - (setq image:angle 0)
; f4 a+ T! K& w" D: F' l# N: q - )+ L0 ^1 h6 x: p8 T1 l6 F/ T$ J$ l
- )* |, W/ c# o$ K+ m( S
- )0 L( ^3 m# C k" v0 V- x
6 O5 H3 [7 P+ N/ Q; ]8 [- ;;
4 h9 O" Q. k* l% p: K( h - ;; Modify Image
' B j# _% E+ X7 S3 ~* g% ^8 ` - ;;
4 G [$ X; Q6 Q( l2 n - (defun modify_image (/ u_vector v_vector z_vector)# w, y1 B# m) b' Z# }
- (modify_properties)6 k: b* l, @: `( \% f3 O
- (setq pt1 (list x1 y1 z1)); X% U" t0 I) X3 L
- (tempmod pt1 10 0); O$ \. R. v9 U q
- ;; Make display option changes to image
/ ^9 e4 H$ S C: p/ I$ Z" c - (emod image:options 70)
7 y5 t: m4 T$ o: N8 v* i9 o - ;; Get the u and v vectors) ]# w" G+ j* g3 _# R, O3 z
- (setq u_vector (cdr (assoc 11 elist)))$ }# A1 |+ I* d8 Q1 T& _
- (setq v_vector (cdr (assoc 12 elist)))# Y% a# w& M1 S+ I7 e
! j% ?6 G* f3 Z( q( T3 f8 ^- ;; Make scale changes to the vectors: W5 J" y7 B T q
- (if (/= image:mult 1)# l4 \: _0 p, L( O* X$ k
- (progn
# R4 A! d5 g( e - (setq u_vector (image_scale_vector u_vector image:mult))
8 x* |' Y" U! g I4 M+ x8 {4 N5 h - (setq v_vector (image_scale_vector v_vector image:mult))
( \! y" S& k/ z0 b* V+ t - )! _3 |/ A( L) t1 K! T
- )) }. m" A% S/ K( H8 C3 N1 z
- ;; Rotate the vectors: T2 E* P1 _1 P# P0 \
- (setq st_ang (- st_ang image:angle))+ E7 `0 P0 s1 ]1 Q4 @. i
- (if (/= st_ang 0)% ^8 j% w3 N9 H6 f! v* X" Y- R
- (progn) |! C, L! v: x% s* ~4 t1 ~. f
- (setq z_vector
! O) k: R$ Y- _7 v* F9 t - (image_cross_product
+ o1 G3 ^4 w9 I8 i+ a1 @ - (image_normalize_vector u_vector)
! a/ k; ^5 V6 Z% ~* d0 x$ k- d - (image_normalize_vector v_vector)3 D& q8 M! m" ~( C# Q. ^+ q9 f W
- ); g" R, }) p: T* c I
- )+ p! W: F4 R. [! H: J3 d
- (setq u_vector (image_rotate_vector u_vector st_ang z_vector)). `; k& H9 A" i
- (setq v_vector (image_rotate_vector v_vector st_ang z_vector))
2 Q# o6 a) B9 i2 ]3 m - )0 C! R" x+ v; x+ h
- ); ^0 ]# L; U4 v- V% |# K
- (emod u_vector 11), V! D! b: R5 |' o8 E& R& {
- (emod v_vector 12), H) `! X' {1 q% p4 m4 W* E
- (entmod elist)4 A4 O) _: F- K0 m/ A
- )
3 e7 G9 i( `2 {# h# a" G
- D/ a$ y0 d( b) }; g4 i4 {' ^- ;;- ?! ~7 F6 F; a, q' D0 U* d7 |
- ;; Run imageadjust on given entity, working around possible
0 j. @% T j5 z }3 s6 y% [ - ;; re-entrancy problems
. ]& g; W7 L+ M7 ]4 q" p2 z N - ;;
" y! @& w% Q W6 p - (defun image_adjust (ename)( l3 c2 v+ P2 D, E; s8 v3 _* o4 f. o O
- (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...+ ~( [# D2 n B
- (imageadjust ename)4 E: C. _+ o" u% e. q2 N
- ) @# H$ f/ f0 J9 q) w- G d! R
- ! y3 r5 Y* n5 D# m0 c8 g
- (defun ddimage ()
: y# G( S! Z$ N$ o2 e9 x, T - (if (not (new_dialog "ddimage" dcl_id)) (exit))( ]4 d4 a% _0 }2 E
1 R5 q2 h# Y Z: ~: h2 _- o- N- ;; Grey out the thickness field.4 i' b5 W! f/ E4 F3 P) x+ \$ g
- (mode_tile "b_thickness" 1)3 f Z3 e% J% B# l/ m9 R
- (mode_tile "eb_thickness" 1)/ Q; `7 K- ~2 r: ]
; G2 h+ _ ~8 X/ U, h, n3 V6 @- ;; Get the associated def object.
) D% L2 p5 s+ ^: b, H/ q- n - (setq image:oname (cdr (assoc 340 elist)))
) D% n$ ^$ n5 H - (setq image:olist (entget image:oname))+ c( u* i* |( J5 L5 w
- - S" @* c# G2 K+ k3 u
- ;; Set initial tile values
4 f* `, |5 s) ~, q- Q - (set_tile_props)
- y, g* \% R; s - (set_tile_handle)& A+ N3 Z6 m, H: g- e. B( p
- (set_tile_pt1 0)
6 R) ]! } E. L/ B9 ~2 f - (setq image:scale (image_scale))
& m( W9 C! [, u5 c% E9 O - (setq st_ang (image_rotation))
A4 a) G. O G" J# V5 a - (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))$ X5 Y. X5 S1 e
- (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))/ U+ X0 @9 @, B( @! ]
- (setq image:options (cdr (assoc 70 elist))) D% T3 M' J9 o: q$ ?5 Z1 L% i' f- R
- " `3 i0 e9 P) x |: T
- ;; Record the last multiplier for use in image_update function( h Y5 m& q. u/ s& \
- (setq image:mult 1)
, k' _/ G( Q8 c% B& e) A
9 _: y2 M9 Q6 T. |: ]8 j- ;; Retrieve the image name
( }9 ?; M4 w0 V. E - (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))
z, _+ F! h, U1 h2 B - (setq flag 0)
$ U' h- R6 ?5 F, L - (foreach n fn: U+ W+ k- Q% {. u6 O4 E
- (if (= flag 1)
, ]/ X0 P) E5 T - (progn
5 Z$ i: D) e! h8 _! i - ;; Display the image name
1 V' O; B9 j; O! Y - (set_tile "image_name" (cdr n))1 N& H) C2 Q5 x" C. h7 A9 [
- (setq flag 2)1 T2 d% p# e( ?/ Y, @9 `5 m
- )
" z: w& e+ w8 n3 X4 U2 l) R - )5 o7 M- n; z1 ~4 ~- k6 K3 s
- (if (= flag 0)% X7 ?1 c; ?7 ?: E2 L
- (if (equal (cdr n) image:oname) (setq flag 1))* y9 a) |* l9 V L; |8 H3 m
- )$ a8 i9 \: Y4 J4 k$ ^" u3 c
- )
3 f- j4 C% Y& g" a# \ - ) _( {- |2 {4 p/ l- w
- (set_tile "image_path" (cdr (assoc 1 image:olist)))4 |5 n: W( V- T0 c5 N, ?1 _3 d" ?
- (set_tile "st_ang" (ai_angtos image:angle))2 m" F, M: j, W3 s* U5 ?) Y
- (image_set_tile_scale)
7 V2 p. J- R& U; | u - $ _) o2 N7 |$ Y
- ;; Check the appropriate boxes# J* s! }, X6 M1 D) i# U
- (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))( H# N8 l4 \ z G3 W
- (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1"))+ p c' u( ?! u9 Z* s/ \1 ~
- (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))
: U, ~/ @2 S- r( V5 p. o - (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))
7 U8 b$ u k/ X9 |$ J. H4 S - # R& R6 B: C+ Q: F7 b
- ;; Define action for tiles
% i! x+ W+ ]7 {4 x4 H - (set_action_tiles)+ D4 _8 t5 {6 K! h# M1 G
- (action_tile "xscale" "(image_update \"xscale\" $value)")* r4 ` m) k+ ]+ o7 v
- (action_tile "st_ang" "(ver_ang1 $value)")7 P P% U- I6 `0 `/ e, f% ~4 {
- (action_tile "wid" "(image_update \"wid\" $value)")
, h) E$ o5 t( T# a% X v - (action_tile "hght" "(image_update \"hght\" $value)")0 K% S0 i0 [# p8 b& o
- (action_tile "image_show" "(image_disp_opt 1)")# m9 x V4 r7 y, @% ]/ n) m
- (action_tile "image_non_ortho" "(image_disp_opt 2)")
( J( P4 }3 b9 h - (action_tile "image_clipped" "(image_disp_opt 4)")
4 T% c: r) p( f - (action_tile "image_transparency" "(image_disp_opt 8)")
) I- S9 D0 |, {7 p% L+ d - (action_tile "image_adjust" "(done_dialog 4)")
* H$ G$ a- ^; [' f& ]$ @/ d& T" G$ x
9 v6 _" _: \! I! j J- (setq dialog-state (start_dialog)): H: ]3 M7 Y X9 e9 g" Q# x3 A1 W
- (if (= dialog-state 0)9 c" k3 M b6 F
- (progn. q: r) ?& o$ E. J+ H( O- G" ]
- (reset)
* B6 P+ }. m6 ?3 b - (image_clean_variables)
' ?" N% c# O9 ~- ]* b o - )5 u! x+ N8 f" m- {% S
- )
, \+ |: f, | y; g2 R% m; ?4 U - (if (= dialog-state 1). V0 u5 i+ U& ^( \5 i2 p+ p9 N
- (progn
+ j' v4 u7 T, K. ?6 A - (modify_image)7 _. h/ L0 D0 g! Q# X2 z
- (image_clean_variables)* N; |6 M8 L% c/ i0 A I4 Q
- )$ T7 B! }- A. f6 l# ?: o
- )$ ]; S7 M9 m0 Q. c! [' D5 i
- (if (= dialog-state 3)
Q- c! S1 {* l3 f% | - (progn/ E% o' P" r* H- z: t
- (modify_image): k- t* ?. \7 d& n
- (image_clean_variables)! L, _. C9 V) p) X! w
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
4 X9 F; ?' `/ T4 C& t) ?5 i - (ver_pt1 0)2 W6 z; l2 Y9 g( v3 `
- (ddimage)/ A: y% U. M8 t2 O+ J
- )
) b- W8 ?2 P& \6 P5 e, q - ) I3 E$ s! T( b2 Z& w6 z
- (if (= dialog-state 4)
) y# n9 q8 ]4 `) T5 s - (progn
0 ]" h8 I! G) Z& \. k; a0 Q& U6 S: T2 e - (modify_image)
' Q; N3 s' G1 W1 J. f8 V) z+ `- s - (image_adjust ename)" U/ T0 k/ C' Q5 _& P; t
- (setq elist (entget ename))
+ Y! S' r3 U/ ^% v. L2 l - (ddimage)
% S1 y8 C L) w0 Z* Q+ d/ a' p k - )
; e# g- l! w: f& H5 j - )
$ z' }7 x6 ?: p& n8 ^, e - )& }8 t0 `# I2 N3 u+ S
- + }7 O& L/ x1 W: _1 E0 [! g! F
- ;;, y3 C/ E# E0 ?9 h4 E- A
- ;; Modify BLOCK (and its Attributes, if any)
; h/ ]1 y: Q7 g2 k" q2 E% G - ;;
" L, W- p3 s2 }# h. O- Q - (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr& t/ V, W: N% x8 T t* U1 n& ^
- new_wid old_wid old_rot scaling old_scale5 ]6 P$ }* F3 ?- }+ s( `! U; z
- xdelta ydelta zdelta xbase ybase zbase ipos)
5 g# i4 v& Y* y: K - (modify_properties): y/ S! q- O/ O: Z: p. ]# W3 d
- . u1 S, Q3 A5 P2 v/ o" T# g
- ;; First, translate and scale the Attributes, if there are any.; h8 V, O* ^" |. u$ u4 y
- (setq old_rot (cdr (assoc 50 elist))
% O6 s. {7 Z! H: c - old_scale (list (cdr (assoc 41 elist))
' J* c Z- z" G+ s" n1 O - (cdr (assoc 42 elist))3 j) ^- {5 ]! t( q6 f, t
- (cdr (assoc 43 elist))% w6 m% |! i2 R
- )
- V: \' C2 w, v+ F - scaling (or (/= xscale (car old_scale))
" [: u9 t. f# X9 a: |% r! | - (/= yscale (cadr old_scale)) z+ ]0 v; i, ^: H
- (/= zscale (caddr old_scale))6 P3 V& G0 z- U0 o
- )
3 z3 p! m8 F: X2 T - attr nil ; No Attributes modified yet; I' b2 _! h# Q/ S* p9 I
- )2 W' \! r8 J' t
- (if scaling
8 ?- W6 d. U9 m# Z - (progn
( g+ ^) r3 O4 o3 @9 w& ^ - (setq xdelta (/ xscale (car old_scale))) [2 P( k0 y& j3 Q/ G
- ydelta (/ yscale (cadr old_scale))
) V. I. _' b/ ]" ?4 J! m - zdelta (/ zscale (caddr old_scale))( [: S, W( L: e( I
- ipos (cdr (assoc 10 elist))
( @2 F9 ^; V0 u1 S - xbase (car ipos)
/ u) P; T) \/ B - ybase (cadr ipos)
/ e+ k# g/ h( K+ a - zbase (caddr ipos)
; W' r; r0 t! \( X9 ` s( n - en2 (entnext ename) ; First Attribute* x5 s# h5 v3 }+ E4 f6 u
- )" H' [% i! I3 B5 G: }
- 6 L; P# v7 N n
- ; If the Block is rotated, temporarily un-rotate it, along+ S1 B7 a5 q' B1 w/ _% d
- ; with all its Attributes, so the scaling/translation of the: V* w3 v' N9 @+ V1 L) |+ U/ X% P; E
- ; Attributes won't have to take the Block rotation into account.
2 ]5 ]" K7 s( c+ I# M - (if (/= old_rot 0.0)) `3 s8 p5 s# L% @9 F1 P
- (progn
: K/ Y/ x- u. l% c - (command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))( {3 d) Z7 V( \/ J5 f: b# H
- (setq old_rot 0.0& Y& o; ~ u: r, I0 A5 F9 u4 h
- elist (subst (cons 50 0.0) (assoc 50 elist) elist)
' c }& ^- A( ?4 c1 p1 { M - )
# j8 P' r$ ?7 P/ | - )5 u: ~" ?; k3 M" [: [
- )
2 y' M! D& C/ P$ s" d) y
: v. r4 U$ E+ N+ j! g- v; M( X# M- (while en2
; f+ F3 b; F- w6 g* U2 O - (setq el (entget en2))& Q& x: c' m& v6 w$ i/ R
- (if (= (cdr (assoc 0 el)) "ATTRIB")
- Y4 W* F$ M- g7 x - (progn) K1 Q' \; n0 K$ u5 F w$ e# l& F
- (setq old_hgt (cdr (assoc 40 el)) ; Height. ?2 Y. o$ ?4 O+ T [
- old_wid (cdr (assoc 41 el)) ; Width-factor. r1 Z! F/ N; Y5 [6 w
- oldp1 (cdr (assoc 10 el)) ; Generation start point v4 v( z1 b' |, p2 Y ]0 ^) t
- oldp2 (cdr (assoc 11 el)) ; Optional alignment pt
) s0 S: P6 a& h" @# b - ha (cdr (assoc 72 el)) ; Horizontal alignment1 U1 e/ O5 [+ u9 k5 v# O
- va (cdr (assoc 74 el)) ; Vertical alignment
. ?% m/ D/ ]9 q" D, J* s9 ~' C - ( [3 m2 [- u- m6 }4 B/ @6 q
- ; Translate gen. start point
$ t- G' r2 _; t! | w - p1 (list (+ xbase (* xdelta (- (car oldp1) xbase))), x* V( E( V% O# S ^' \
- (+ ybase (* ydelta (- (cadr oldp1) ybase))); y" v u; a% D- B! n; [
- (+ zbase (* zdelta (- (caddr oldp1) zbase)))3 G" h- U2 D4 M! N
- )
* T2 I9 d- J7 f/ w - el (subst (cons 10 p1) (assoc 10 el) el)1 p& s5 ~( _) z- {& ~
- )
. o, H+ B2 g+ D& C4 x' B - . ?( t) N9 o: z9 F2 Q4 w1 ?7 j1 a
- ; Translate alignment pt similarly, if present and applicable5 @4 a7 N1 M. [
- (if (and oldp2 (or (/= ha 0)
5 _1 \$ p& I+ ]" L# e: _: D - (/= va 0)$ M) P9 U- m# e6 m7 ]3 O# D
- ): y' i8 w1 P1 X2 h% \
- ). L$ ?6 i, ^( d8 b0 D+ Y: ^6 b
- (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))
9 [. d% J2 S- Z2 Y/ I$ I! {/ t - (+ ybase (* ydelta (- (cadr oldp2) ybase)))
) {/ l' `- c9 W9 f$ A [ - (+ zbase (* zdelta (- (caddr oldp2) zbase))), V% t; q" ]2 L* F/ ^
- )! [ c' B5 X. H% w
- el (subst (cons 11 p2) (assoc 11 el) el)
" P7 j3 E6 z" X) u% x - )- `) l9 ]' C9 }" t' \3 z7 n3 f8 h3 e
- )
m5 v f1 l1 [: c- ~5 G2 ] - ! z: z: i" C6 `1 i* I: ]0 @
- ; Each Attribute's height and width-factor were computed
3 a: T& H1 b1 V3 @) D, h' i- {* | - ; based on the Block's scale factors. Adjust them now,
- E5 g3 y0 E" k9 q' i# w - ; by first reducing to values for 1x1 scale..." h _1 z7 j- w' Q; O
- (setq new_hgt (/ old_hgt (cadr old_scale))
' B" ^# J3 L: {- \ - new_wid (/ old_wid (/ (car old_scale) (cadr old_scale))). W/ u6 q; u% b0 j0 a* P9 k
- )
2 v+ Y/ R/ g* p' S e - ; ...and then rescaling.
" C* Y. I! X0 c" G+ c - (setq new_hgt (* new_hgt yscale)
( M. _: A2 q# ?* V; G - new_wid (* new_wid (/ xscale yscale)); L6 R% l) w7 ]
- )
" E5 P* L& L, w1 R2 \/ Y3 o# ]3 V2 m - (if (/= new_hgt old_hgt)
3 v$ Z8 G; r2 j ?% x4 @3 k - (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))2 [+ Q8 N/ L% K3 k2 V: D$ A1 G
- )
3 R, Y- U# g; P3 h! v5 S9 A" ~* | - (if (/= new_wid old_wid)
" p& a$ N* g$ h4 j$ Q - (setq el (subst (cons 41 new_wid) (assoc 41 el) el))
3 F7 M" z, K5 `% b/ j4 ` - )0 W9 l6 {1 w$ Y L' R! z
- (entmod el)
! Z0 q1 n( y; P# Y7 `% x - (setq attr T ; At least one Attribute modified
2 y3 o( c& I1 @6 D - en2 (entnext en2) ; Next Attribute
) j: H$ a+ ?7 m - )
7 r- n$ d: F# p$ R) F - )+ e. ^. ^0 ^; ^- h* c3 X6 ]
- (setq en2 nil) ; No more attributes3 {/ Z% s `( d# n
- )
! b9 V% e! L8 Q. v( i g8 R - )
4 l0 d! j. {( r2 J; h/ H6 b - )
3 c+ T8 n9 C# d; g4 O5 k5 M - )
" r8 v0 [: Z' |' [ - / Y$ _7 D' t; I/ b! t
- (setq pt1 (list x1 y1 z1))7 x% e& V* @" o! _
- (tempmod xscale 41 nil)8 F$ ? {# ?- c/ f4 }
- (tempmod yscale 42 nil)
: J# v1 b6 ~% t, `3 ?9 F% ?( S - (tempmod zscale 43 nil)
3 n# {% F, F0 _9 n - (tempmod col-sp 44 nil)
( z$ H/ o& p) M# m2 T# @$ {6 u4 S% b - (tempmod row-sp 45 nil)
' V @; K% d/ n3 A - (tempmod columns 70 nil)7 c: u; h# ~- @
- (tempmod rows 71 nil)8 s# a2 p' X1 H9 `, u
- (if (= xclipmode nil)7 `0 `; B6 T% B6 y5 S$ k; R
- (entmod elist)9 t% _1 X" l2 G- n) B
- (setq xclipmode nil)
& s; ^6 Q7 f/ t' m4 t3 i a - )# z# s" p. c7 W8 u2 m3 m3 F5 H
- (move_pt1 1)
' Y0 d4 j* E- _' r - 5 e r* B: @) G. |3 c9 L3 j, r! g
- ;; Now do the rotation with the ROTATE command.
* [1 L; [& d9 Y$ f; x5 e - (if (/= old_rot rot)
! W) g' l$ a9 K5 ~ - (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))1 z7 i( `8 o& }' K8 Q% A$ V$ [
- (if attr ; Else, if attributes were modified,
0 r1 h+ e8 v# ^+ s/ F$ k" ?3 e6 z b - (entupd ename) ; just regen to force attrib display" [- A+ p6 i5 o# K; P+ h& r, o* N
- )
! l7 K% c. x3 Z r - )& u7 h* f' J* _. W4 b
- (setq elist (entget ename))# k, P) U! ]* r
- )0 E6 l# O, h7 k- H$ [0 ~" P9 M6 M- h! l
- (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)
( E9 u: r7 X1 i - (setq newhatch 0)
5 g$ l/ H4 B1 M0 S( d" W/ m - (setq blkname (cdr (assoc 2 elist)))+ R+ j. b" U( A% M. n, {. R$ Q
- (setq blklist (tblsearch "block" blkname))
6 D- e5 ^1 M5 R. f6 A4 x8 x - (setq blktype (cdr (assoc 70 blklist)))
/ ?" `# |! G* V( c - (setq xcliponoff 0)! m- F- O" d D- R5 ~# p5 R* D
- (if (or (= blktype 0)(= blktype 36))* V. |/ e0 D2 X" d( M4 P
- (progn
' Z' S: R* `, N7 } - (setq xcliponoff (xclipon elist))! o( ~& x, c7 K) \. w$ J% C7 \7 u `
- (setq temp_xclip xcliponoff)
9 p& }5 B z, [3 F: G# E - )
) Y+ j0 I6 u; h6 `: Z - )3 s/ I- K2 D0 P- j" p0 Y
- (if (= (logand blktype 4) 4): ]* N! N8 W D" C
- (progn
9 f5 o& Z( u3 ?8 A - (setq xrefpath (cdr (assoc 1 blklist)))5 n2 d* R% }3 b! m7 m
- (setq help_entry "modify_External_Reference_dialog"). M, @8 l, F: W) B- t/ ~/ ~
- (if (not (new_dialog "ddxref" dcl_id)) (exit)): C/ J0 T7 S/ F( \/ W
- (set_tile "Bl_name" blkname)7 a+ N: {9 Y% L( V9 [
- (set_tile "path" xrefpath)
. M0 b6 o" Z% \ w - )* c0 M4 s% C8 B/ _
- (progn! W" @/ z# j, _! n! n" j
- ;; Get program name for use as Xdata app name
; V' G' K1 P& T! i7 D - (if (not (setq program (getvar "program")))3 d9 s4 h$ S6 Q) E# `+ n
- (setq program "acad")
* V" D9 x/ j: G* {/ Q u2 F - )
+ W9 N6 T% j/ ?' q, e2 t - (if (and (setq temp (assoc -3 (entget ename (list program))))+ D7 S5 f0 Z, U2 v
- (= (cdr (assoc 1000 (cdadr temp))) "HATCH")5 Q6 M$ U9 y3 S3 t
- (assoc 1005 (cdadr temp))
% a4 S+ I) _ ^. { - )9 t' _& c8 b& y3 B( Y
- (progn
8 x8 w4 `: R0 w4 i/ H- f3 l - (setq newhatch 1)
/ R$ |. A! c1 x& M) {1 B - (setq help_entry "modify_Hatch_dialog"), W& r3 h7 L0 B3 L" S* x9 L
- ;;; convert the object into a new hatch" b" l- ^, K) |1 H$ ^: ?5 F
- (ai_undo_on) ;; enable undo% f0 U: U8 M: A& j7 w3 \
- (COMMAND "_.UNDO" "_Mark")
% D* m# ~$ d, h" _: T/ Q: h - (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")
7 R4 q" D0 r& a6 e T; ~9 K, g; n - ;;; suppress nasty message from convert command" e( o! h2 M$ u3 B$ A0 ~$ e, E2 d
- (princ "\r \r")
- T& n7 Q* k- q4 h4 z4 d - (setq elist (entget (setq ename (cdr (assoc -1 elist)))))& i2 _( Y1 u+ O$ } l9 N$ d" _# x
- (setq old-elist elist)
7 _7 O& r- ]' R ~- W- { - ;;; If we have cancelled ddmodify
& U+ {/ ~: I4 W7 J1 D7 g - (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok
% W5 v# K V4 R" C) G" e T& g - (command "_.UNDO" "_Back")0 l0 R% c# F7 d4 n; |% R' i
- ). l3 G8 j6 `+ n* u' Q$ b4 I
- (ai_undo_off) ;; restore undo state' O* W0 j$ @9 o
- )
' I- g" w, F- Y! F4 k' G( i$ s, E$ ] - (progn* W% P2 x9 B+ q8 c, j( |- }
- (if (not (new_dialog "ddblock" dcl_id)) (exit))# ]+ \6 Z: C' p. {. J
- (if ( = "*" (substr blkname 1 1))/ W k m' `8 T: Y4 }$ D% w1 B$ I
- (set_tile "Bl_name" (strcat blkname " - Anonymous block"))
6 j8 t; R9 q. L) Y/ v; d - (set_tile "Bl_name" blkname)0 ~: Z' K* j( Z; j& n& T
- )
' \ l2 r/ }6 R: i( ?8 q8 x+ L4 \ - (setq help_entry "modify_Block_Insertion_dialog")
7 x3 a2 o1 X4 t6 G; |, V+ l( f/ B - )
1 b6 ]3 D7 |( V1 F2 ?8 m) Y# N5 j - )
& b& W2 ~# ^6 _: Q& ? - ): q" h$ Y, w: v# O! o' B+ D
- ), R$ Z# r) ?' O( U
- (if (= newhatch 0)
! [) L% T- t, F8 k# I - (progn
% H1 M& v, p9 U% Y - (set_tile_props)
5 z" s! C) W7 d1 ^ - (set_tile_handle)7 d6 s# a" J5 R' C" \
- (set_tile_pt1 1)
* c U6 e# I/ h! u - (set_tile_rot)# f6 \9 a9 k8 H) R" a
- (set_tile_scale)# q2 f M0 a6 |8 ^9 C( ~( B
- (set_tile_rc)7 S1 X7 A' D: O8 D% v( j, g
- (if (= (logand blktype 1) 1)
3 x8 j G4 M: {( F' a9 \; q4 _ - (progn
9 P6 m+ N9 N2 O/ H/ p& ] - (mode_tile "xscale" 1)
, Y9 B6 L' u; l - (mode_tile "yscale" 1)
4 P3 d% o, D* ]9 I9 \ - (mode_tile "zscale" 1)6 D* ]- t* n, V) N1 ^
- (mode_tile "rot" 1)
7 Z. t( e, ~/ I* D+ q v6 I: N - (mode_tile "columns" 1)
/ o! d4 P w- H- v7 A - (mode_tile "rows" 1)# r: x4 z$ r! }# v& I6 _9 p
- (mode_tile "col_sp" 1)
. n- m0 r0 h. z( l8 w; b4 a# @ - (mode_tile "row_sp" 1)) C) x" t, q3 Y
- )' d$ V, `/ m3 u- M2 d( o
- )# {2 p( y5 l# h6 x' Z) v& E
- ;; Define action for tiles
2 R! F H; d& F2 D, L- _$ L - (set_action_tiles)6 `* [5 t7 r8 {4 d" R3 B5 c# m0 \3 v
- (setq dialog-state (start_dialog))
# M" ^9 Q" X5 U: M L! R - (cond) m& C( p4 v* q; m) ~
- ( (eq dialog-state 0)3 |6 [! u# ~+ `, ]- G
- (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))
c6 o8 w: q7 k2 X# t' c8 ^( s - (move_pt1 1)
& ~% w& n0 K1 s7 o1 R - (reset))
: a1 |5 A0 k$ M3 ~8 T - ( (eq dialog-state 1)" U6 j* c& ?& k+ D1 Q( J! r x! W
- (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36)))3 Y4 k, ~! a m) e2 j4 f3 E
- (xclip)
0 J3 X! R3 t1 W9 X0 k3 \9 Q - )
D$ N& I: E: {* h6 J - (modify_block))
t! t) A5 e( P) ?# b5 W - ( (eq dialog-state 3)' z8 r* f1 Z5 b0 {' K# f
- (modify_block)2 d# ?* p1 c- j9 g% _2 S5 K# A
- (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))/ j: P: W6 ^& g0 n; T
- (move_pt1 1)9 T+ z" ~0 Y& H: @- Z! V
- (ddblock))9 |; T$ j, l2 T* F0 u- J9 y
- ( (eq dialog-state 4)
7 t( w& X' ~$ W8 v# k& g5 V - (modify_block)
; f. J8 C8 _1 ?& S1 T3 N* Z - ;; Get current handle./ X% c- n0 E( u2 \
- (setq hand (cdr (assoc 5 elist)))
* ?; G& d' h. s; \1 w) z - (command "_hatchedit" ename); q- W) i- {! n- _1 O
- ;; If OK in hatchedit, a *new* entity is created and the old one1 S L& o- h/ ~8 ?, Q/ |4 `
- ;; is deleted. So if the old one exists, it must have been a0 e0 `7 l. w3 i# _* R
- ;; so rest the entity.
% R0 \% e' ]/ Q5 [4 M0 {, ^ - (if (entget (handent hand)) (reset))
* r# d5 |5 i1 {3 u; } - )# |+ X0 z5 ]: v! k% A* M# F
- )
, [9 z& D; r$ A1 [$ u! ~ - )
/ V/ S: b. l& I' y- X - )& M/ P% ~# y5 O5 P& ~1 ?
- )( X2 b4 {4 B1 a5 P3 U$ g. u& @
- ;;
- `5 M$ m+ G+ _9 L3 c8 r - ;; Modify SHAPE' H3 n# d. m& l! J- A: O+ J
- ;;
a2 }+ J' V* Z% r' } - (defun modify_shape ()
0 V4 f; Z8 J+ N8 X" _ - (modify_properties): O% g0 }: p9 t9 ?/ [
- (setq pt1 (list x1 y1 z1))
8 w2 O n) }5 T2 c* k! Z - (tempmod pt1 10 1)) Y" j9 {' Y0 J6 f* o/ c
- (tempmod hght 40 nil)
: X! [. N8 C v0 J J2 q - (tempmod wid 41 nil)3 o' k# v% E, Y
- (tempmod rot 50 nil)
8 `5 h* p. C. Q# g1 H - (tempmod obl 51 nil), Q. B9 _6 a+ a5 S; D- _2 S
- (entmod elist)
& ?1 W8 [: J- M7 @" {& ~0 t8 K - )$ A2 H% R0 m. S, Z
- 6 b3 ~: @9 E4 u' J
- (defun ddshape ()) F8 v5 ~8 j: d! a) S
- (if (not (new_dialog "ddshape" dcl_id)) (exit))* h# ~2 b$ E! D6 D# B! }6 `; L
- (set_tile_props)
3 g5 G; U% L- l6 ]0 R4 g - (set_tile_handle)
- ^$ p$ [% G% {$ L - (set_tile_pt1 1)
4 H! q1 ~& v1 u: W9 n2 m M5 D - (set_tile_rot)
5 o/ ]1 C% l8 b7 W# r/ w# N - (set_tile_hght)
+ W' d: j5 r2 ~% O- G: u8 A - (set_tile_wid)
8 ~) y3 j. ~0 l! x - (set_tile_obl) E3 \! ~6 {5 l z4 D- O* G! H2 p6 l
- (set_tile "sh_name" (cdr (assoc 2 elist)))
& E" m* L2 f+ r/ q% L! S. @) u - ;; Define action for tiles- s9 ]! s6 w* t* p
- (set_action_tiles)' r) c8 Q/ {( `! d' ^; Z. Z
- (setq dialog-state (start_dialog))0 E) [2 r# g4 r2 Q ]% Y
- (if (= dialog-state 0). t$ }6 N$ m, l' ^1 Z: @
- (reset)
0 q3 U, N. L. A; L! T - )5 d! k. @8 \1 B* M
- (if (= dialog-state 1), p: ?) M# ?5 ]3 _1 E0 A ~
- (modify_shape)
$ _4 r$ p! ]+ I$ o - ). c* N. ?- c8 e+ F
- (if (= dialog-state 3)& [& ]# x5 q1 l& C; |5 P) e
- (progn
. L0 \0 u0 G/ S; ?0 O - (modify_shape)
4 g8 x; C( P; f, y* o - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
6 r; [) ]) J1 F - (ver_pt1 1)
' n( F% s }7 P' ] - (ddshape), U' k7 W$ M! t5 M" B
- )
" t$ F* M# x) v; n" G. H - )
3 S+ D: o' r- B0 T& L. D1 b$ @, { - )* h! w$ y: r4 S4 S
- ;;
% c3 G5 j4 i) s- C1 k) {5 a/ h+ L - ;; Modify TEXT or ATTDEF
4 w1 ]# T, l7 W+ O0 N - ;;' ?3 z! p! x! P
- ;; Set bit code for upside-down and backwards setting
$ x! S7 X* Z& C - ;;4 i7 y! d7 q1 F1 W
- (defun code_71 ()- G# w- O7 ]2 C+ t3 p, S5 M
- (cond ((and (= bkwd "0") (= upsd "0")) 0)
/ N" A! p- }* k4 G- P; O - ((and (= bkwd "1") (= upsd "0")) 2)8 R; h p/ q$ T2 V" Q4 }! q
- ((and (= bkwd "0") (= upsd "1")) 4)' K O) m& v8 g# B8 ^
- ((and (= bkwd "1") (= upsd "1")) 6)
# z( H2 G5 ]/ r- v+ ~- B - )
) N. t+ I- o3 |: I( I - )# u8 c) m) R- u1 j0 L" p% F
- ;;" c: q+ s* v/ f, k
- ;; Style action. Reset widget values to style defaults
3 u5 ]# \* N- }) _. L2 c - ;;8 {4 d- E1 u8 ?1 [ J0 R
- (defun style_act (index / style-list)
. r( [* }+ ]. j& |4 Z( v - (setq style-idx (atoi index))
8 V" k" ?, S& `0 `# O. o - (setq tstyle (nth style-idx slist))* @" [" k* W" R7 X" Z( q( p
- (setq style-idx (itoa style-idx)): r! i: s; r8 e
- (set_tile "style" style-idx)
$ W1 v* U: H" Z2 m2 r7 x - (setq style-list (tblsearch "style" tstyle))
! \ u3 |( R. O - (setq shght (cdr (assoc 40 style-list)))
% q: H9 w8 d$ _8 @% f5 W - (if (/= shght 0)
$ s5 l& k. P; }7 t! G4 j0 G3 ^ - (progn
5 G3 ]: h+ l- L f1 W - (setq hght shght)6 x4 O) v3 I3 a; v: A1 V
- (set_tile "hght" (ai_rtos hght))4 T/ Q4 W) @0 I
- ). h; y5 w$ W k7 ~$ f
- )
# q# M' k- H( f - (setq wid (cdr (assoc 41 style-list)))
# S: @! z0 a6 J0 Z9 E - (set_tile "wid" (ai_rtos wid))4 L7 X0 ?- [5 C6 R4 ~8 o3 y
- (setq obl (cdr (assoc 50 style-list)))
' B7 Y' C) ~$ {+ u0 ^ - (set_tile "obl" (ai_angtos obl))5 z' s5 l; E6 h/ `( O* N
- (setq bk-up (cdr (assoc 71 style-list)))
$ A' `% ?0 U1 ?" `6 ^: [. v2 _ - (if (= (logand bk-up 2) 2)8 r+ G0 d" E4 |+ X7 X9 t- w: J
- (set_tile "bkwd" (itoa (setq bkwd 1)))7 Z% D ?% F( [
- (set_tile "bkwd" (itoa (setq bkwd 0))) H: R* U, Z* z+ W" _6 ?
- )
2 u; a4 H: o( E - (if (= (logand bk-up 4) 4)6 Y! e; W0 Y$ m# Y! x
- (set_tile "upsd" (itoa (setq upsd 1))): w) l% i+ U' e" |8 W
- (set_tile "upsd" (itoa (setq upsd 0)))
1 S" g# y0 I% K- F - )6 u8 P& u8 P% i: d. s E
- )
: t+ w, S7 t0 x9 k. n# ^% ~/ ]2 F7 N - ;;
9 ]% Q& p2 s$ e - ;; Justification action. Set vertical and horizontal alignment variables,# `' I# j5 F7 E. i8 O# E. }. H# M
- ;; grey out rotation and height if alignment = "aligned", grey out rotation
* S- i, v ~) b! y+ G - ;; if alignment = "fit".
Y$ O" ]8 m0 W: \2 O - ;;
3 q1 E$ A5 \2 y+ Q0 n( ?7 \ - (defun jlist_act (index / templist)
% e1 e" f: C' |* N/ v - (setq just-idx (atoi index))4 y5 w3 E9 ?" ^2 m* f- g7 C
- (cond
$ u5 R' J8 n4 c& l, s - ((= just-idx 0) (setq va 0 ha 0))8 \7 N2 ~# c9 q( \5 B b
- ((= just-idx 1) (setq va 0 ha 1))' d0 M( r$ r1 L
- ((= just-idx 2) (setq va 0 ha 2))
2 G3 Q+ U, ?4 k5 c# ^ - ((= just-idx 3) (setq va 0 ha 3))4 {. {/ h5 h& {
- ((= just-idx 4) (setq va 0 ha 4))- n5 t: Q; `1 U9 C1 j) l
- ((= just-idx 5) (setq va 0 ha 5))
7 g7 K- R7 }3 `4 Q t5 ^3 o2 G5 o - ((= just-idx 6) (setq va 3 ha 0))
. X3 k7 q( L$ W! V Y - ((= just-idx 7) (setq va 3 ha 1)). m2 X: s- W) F$ q7 t! G. @$ M/ N
- ((= just-idx 8) (setq va 3 ha 2))6 V& {: a$ K5 ^$ t* K& ^/ T
- ((= just-idx 9) (setq va 2 ha 0))
! l; T* x. E7 w+ b) Q - ((= just-idx 10) (setq va 2 ha 1))) A+ v8 X3 x& P/ B5 F% A
- ((= just-idx 11) (setq va 2 ha 2))
) n/ ^7 n( L V8 s; ]$ I - ((= just-idx 12) (setq va 1 ha 0))
" c* V" e) l) E R% n) M - ((= just-idx 13) (setq va 1 ha 1))
. k# v M" Y( ~7 K6 d8 }* ^ - ((= just-idx 14) (setq va 1 ha 2))/ T7 M% M* _* ?* \# B9 m/ n. I
- )# |/ X ^0 x D2 J" T8 A5 b4 Q
- (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text ]8 q2 u' Y" H2 [4 t% d
- (mode_tile "rot" 1)
+ y& k1 G% F3 U5 m - (mode_tile "rot" 0)
/ |2 e! u g2 @* ` - )
& S( s4 P; ?6 J0 S" | - (if (= ha 3) ; If Aligned text) [: S# {" m8 e% l& O: Z( |0 ^- N" M9 M9 {
- (mode_tile "hght" 1). ^, q4 E- M- M# g2 _# J5 E
- (mode_tile "hght" 0)
, P. t( Q% ?7 D9 G3 c9 g1 E - )
# r; ?3 d1 g1 g3 |( `! { - (if (= ha 5) ; If Fit text
* k7 b, t4 W6 h) P - (mode_tile "wid" 1)- q, ^2 u) ^4 h- ` P9 O
- (mode_tile "wid" 0), N( @) g) P/ I
- )9 |7 d D% J! q0 o, e# U+ a
- ;; Reset rotation and height if changing from aligned.' |1 b) w% D$ Z% L
- (if (and (= ha-prev 3) (/= ha 3))
4 K6 V+ h' N2 |- `# |+ W4 _ @ - (progn0 s+ U) K8 _) R( F. `. I
- (set_tile "rot" (ai_angtos (setq rot 0.0)))
+ B. q4 U4 m J) e - (set_tile "hght" (ai_rtos (setq hght 1.0)))% V$ F' O- _) k/ Q9 F" M) g
- )3 F/ \2 S8 K# y+ H+ X4 z" @5 q V
- )! U- b9 ]) ]* W/ m# n6 y
2 n; R8 i# q* M( ?4 M3 w. n$ c- ;; Reset rotation and width if changing from fit.
5 T2 D9 i0 [; S, J - (if (and (= ha-prev 5) (/= ha 5))7 {5 v' w* t+ B* J% }6 ?9 _- u& l8 ]
- (progn
4 z0 n# O8 n5 F; K$ r - (set_tile "rot" (ai_angtos (setq rot 0.0)))( _, t2 g! A1 H' ?% c, R4 f% H
- (set_tile "wid" (ai_rtos (setq wid 1.0)))9 b2 o( l2 Z& o
- )
1 K0 w \: w- D* Z; a - ), o1 H, B, G; F/ R* l
$ D; F# T, J6 J0 P, F- (setq ha-prev ha) ; update ha-prev for next time
/ w/ j0 r' u% Q4 [ - (setq just-idx (itoa just-idx))
; A) t- v% n0 f" Q7 F$ s - )
6 c1 s- \, V. d- x/ O( V# P0 C' C - ;;4 f V8 T* s' }: w
- ;; Set intitial alignment setting based on vertical and horizontal alignment
u; [0 M- T# q/ I3 X - ;; bit codes.! J9 Y( L1 d* C4 s- R0 k1 X6 p6 ]+ J
- ;;
9 n. t* N2 z$ [& I1 ]7 q' z - (defun set_just_idx ()0 S5 }" i; a$ p, K
- (cond
- i7 w( B# R' ^; I) I5 P; y0 ^% I - ((= ha 0) ; Horiz alignment = Left) D! T& k4 e6 i X
- (cond( w' E) Z2 M) N
- ((= va 0) (setq just-idx "0"))
U: b! l4 t4 ^$ q% {. }" C - ((= va 1) (setq just-idx "12"))
* D2 @$ e$ X" \$ | - ((= va 2) (setq just-idx "9"))' S! c/ M% _' v z* g. V2 E
- ((= va 3) (setq just-idx "6"))
3 h! O( q, Z' e0 d - )
; s* m, u+ S+ i2 R. C - )1 X7 N# M3 Q: @
- ((= ha 1) ; Horiz alignment = Center- \+ k* X8 c- W, c' x0 M
- (cond
7 }1 d" r. ~& Z2 k% O - ((= va 0) (setq just-idx "1"))
/ L: K; c+ c; h# Y9 k: `, d - ((= va 1) (setq just-idx "13"))- `2 ^( O! P- v" p* p3 ?% y
- ((= va 2) (setq just-idx "10"))& j, G! @7 @0 i4 O- ?0 w
- ((= va 3) (setq just-idx "7"))% ]) ]4 }( O, j) `) h6 D$ Y1 E
- ): `7 g ^* K3 |0 i: |/ S
- )
4 T9 L4 R! R0 I4 ?- @0 ] - ((= ha 2) ; Horiz alignment = Right' I! R* c8 I6 {9 P
- (cond
/ v9 J& B$ ~. J- `- t0 }/ W - ((= va 0) (setq just-idx "2"))
/ t) @3 y7 A8 _ f1 L2 _ - ((= va 1) (setq just-idx "14"))
3 Z. H! T- M- ^ - ((= va 2) (setq just-idx "11"))8 F# {0 ^# H" U4 F( i: ]7 s
- ((= va 3) (setq just-idx "8"))
8 Y/ m$ k, U4 B5 O: x' h( v$ I - )
) B+ B3 O4 f( S g& b - )
. o( X, A+ G; S; O& d. a - ((= ha 3) (setq just-idx "3")) ; Aligned ?! B1 K: q. u8 C! o
- ((= ha 4) (setq just-idx "4")) ; Middle6 \ S5 p" u0 Q/ `5 u! j0 Q
- ((= ha 5) (setq just-idx "5")) ; Fit' F) \ U, z7 x* u, I7 K
- (T (setq just-idx "0"))3 s5 M2 U5 k- m2 {. g* b
- )4 d: b5 `1 S* h9 N* N
- just-idx3 D3 w) l1 I5 G
- )5 x, m: K, v- t4 g2 O
3 Q# I6 T8 U5 d) g- (defun modify_text ()
' F: I. B/ D% `0 Z7 O) E - ;; insertion point/ Y$ L% M# K3 U% Y7 W1 g5 @$ d1 f
- (setq showpt (list x1 y1 z1))3 s6 J, I$ ]; Z6 P
- (setq bit-10 (trans showpt 1 ename))8 H- M5 t- s+ t( |, f5 [- m
- ;; alignment point7 d: y1 T9 j) \- x. \ h
- ;; for 'Aligned' or 'Fit', alignment point must be different
3 c$ C# P, u; h, w5 w - ;; for all others, use insertion point
+ `% y8 W9 k+ b4 j - ;; (ACAD will recompute insertion point)6 m- h" p9 w3 k6 ~" u% r, U
- (if (or (= ha 3) (= ha 5))& M1 d! o4 ~0 R+ r, M; l* [9 }
- (progn
2 L; F& n" Z& M& ?8 B - ;; if no alignment point, fabricate one5 _) \6 N9 u+ Y4 a
- (if (not alipt) |) G; M) u' s% j
- ;; add text width to insertion point
2 o- F9 d4 l$ k8 S - (setq alipt
0 H( `2 s. j' F4 b; V- Q" v Z - (list (+ (car showpt) (car (cadr (textbox elist))))) {7 T- ~; \6 ^+ R
- (cadr showpt)
9 A/ P( G& p* q$ s' f - (caddr showpt)
( {+ Z6 s& x) E5 z5 k - )
V0 F* V" _) n" Y - ): ]1 C9 g' W" _: f" A9 i4 f
- )
: \4 ~ `6 n+ Y7 | - (setq bit-11 (trans alipt 1 ename))& _! x+ @: e7 D' r* x1 r( ~
- )! ?$ B4 b$ z( w
- (setq bit-11 bit-10)- _/ g. F% Z' g) w( u
- )
8 d) z4 `7 p; _5 {2 V1 ^5 j - (modify_properties). z/ P3 j7 T3 H2 ]8 V9 T- m1 m
- (tempmod tstyle 7 nil)6 g! U1 h+ m& A0 V: _
- (tempmod bit-10 10 nil)
% K8 y8 l6 b& b6 A% w/ F6 | - (tempmod bit-11 11 nil)
4 I6 s# x. P4 J" `" N2 @ - (tempmod text 1 nil)
( @( N# j8 E# I' K - (tempmod hght 40 nil)! U3 q2 }8 u7 b$ T4 |; `6 E
- (tempmod wid 41 nil)* v' s. E* b" P; J
- (tempmod rot 50 nil)! ]0 s) ]& Z, i! O4 f
- (tempmod obl 51 nil)
' _3 a! r+ ?9 r- ]8 x/ g - (setq bk-up (+ (* bkwd 2) (* upsd 4)))
8 E* J* {' T5 w6 _+ m4 o - (tempmod bk-up 71 nil); t- S6 b0 z z( L0 b& I
- (tempmod ha 72 nil)0 P) A2 O9 S* a& l$ G3 Q# M' w
- ;; Attdefs use 74, text 73
0 p/ C3 S; q3 ]: K - (if (= etype "ATTDEF")* M0 h2 ~; m e0 R! y1 U/ I( h
- (progn( E7 `0 T" M& x: P+ q% K0 b; x
- (tempmod attag 2 nil)
! `7 D6 F4 M& }6 a - (tempmod atprompt 3 nil) M/ v, u9 r& ^ ]9 v
- (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))
; Z" {8 N( e2 H - (tempmod icvp 70 nil)
( `. {" W' `3 C( h - (tempmod va 74 nil)/ s. Q8 N$ n3 F, ] k! S5 D
- )
, v p; _7 G" f3 d2 R. v - (tempmod va 73 nil)! l$ v8 @ O+ [
- )" n9 h" s7 b8 Y7 W! I4 H m+ k
- (entmod elist)* c1 |; `- B' x, L
- )( U" R4 u1 @+ K: c9 t4 y b ?# L4 p* V
" |/ z$ M* d3 i7 I- (defun ddtext (/ 2ndpt slist i)4 Z g6 I" N O
- (if (= etype "TEXT")3 C6 ^" k5 \$ n7 n4 c1 e
- (if (not (new_dialog "ddtext" dcl_id)) (exit))
- i8 j% n/ E1 j, z* R$ s - (if (not (new_dialog "ddattdef" dcl_id)) (exit))
5 ]# Q3 S' Y, k - )1 K3 r' Q9 G# ^7 |/ u$ ?
- (set_tile_props)
8 z* e3 B( ]) ^# p) M - (set_tile_handle)
9 z' S- o& V' Q! Y - (set_tile_text)1 x9 A9 A I4 n% h# `
- (set_tile_tag)0 }- I% a/ O' a% E
- (set_tile_prompt): B; Y9 v* T' v& v2 Z2 [0 V
- (set_tile_hght)9 i9 I0 m2 e# C3 D) g* V( p S7 b
- (set_tile_wid)8 w) X! z/ [1 u' h; s% E5 t8 f" r
- (set_tile_rot)
+ S7 X' |0 n# Y - (set_tile_obl)! }8 l9 j }6 O2 L1 ~
- (set_tile_bk-up)
# P" d+ [: l5 x - (set_tile_icvp)4 c8 K( m6 S5 D5 d0 |6 B
- (set_tile_style)
+ ^7 t" \% y+ }+ w! M - (set_tile_just)
( P! W' v1 O; g9 a I6 d - (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))- e& y$ ]& b" N. L) {2 f5 ]
- (if (not (assoc 11 elist))& |( c0 \9 X: Z7 _0 ?. W1 K
- (progn (setq pt2 pt1)
. H, A+ J6 `) o5 D) [# p - (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))
! j# ?0 d' m( ` - )
8 U' G' Z i' d3 v" N0 d - ;;(trans '(0.0 0.0 0.0) ename 1))$ s: l2 J7 I) u3 T. h. [% o1 y
- (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))$ o* ^7 P9 x. y J/ \
- )6 x& E9 h$ k2 f. o, T
- (if (or (and (= ha 0) (= va 0))
6 \ o4 x. }' M& W. ? - (= ha 3). R2 ?# v: @" d
- (= ha 5)" n/ N* C! s0 E/ d" `: E' l$ h
- )
! n' d1 X7 e: u, D; W* D - (setq showpt pt1)+ P0 E k* l! H! G! e
- (setq showpt pt2)! e8 \6 E' z0 \$ T* D7 L: c
- )
9 L$ c( J7 Q, b( Q" d5 S1 F: p - (if (or (= ha 3) (= ha 5)): Y8 j& u' J! e9 R% I
- (setq alipt pt2)& _- U/ n5 o% S% }7 ^- x
- (setq alipt nil)$ Z' u; D# c/ x3 l$ ^
- )2 t9 O5 J" o- L+ s s, r
- / \; }- ~0 G7 a1 A. K1 _
- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt))))
- w0 p* |8 X6 `, `# O - (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt)))); m9 F8 L7 N+ Y4 x8 C# n
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))/ i+ a$ m3 }2 F: `; P' G v
- $ D3 v8 S7 o' S, {; o
- ;; Define action for tiles
3 H" L1 ?- u9 Z7 B4 S - (set_action_tiles)
$ W9 `( x2 E* D' r - ;; Set focus initially to the text edit box.% e7 ?9 ?+ Q+ D1 L8 ^$ @
- (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))
6 k& ]1 j! b3 R1 i3 x) z - (setq dialog-state (start_dialog))0 ^0 V1 t9 h" {3 ~* f
- (if (= dialog-state 0)
2 f9 _7 @ s1 _- Z3 p/ ?, c v& k - (reset)
" v6 Y4 e: j7 e - )
+ B% R" R$ s0 W5 {* k( e - (if (= dialog-state 1)' \9 p& }- P) A8 H) w+ e8 M
- (modify_text)9 {2 [0 E6 E) x0 P* p1 J, X
- )( ?% w$ T! z4 T$ y0 K2 }
- (if (= dialog-state 3)
# T" a8 Q6 k D' s- s - (progn8 I' a$ U8 q9 H, |$ ?
- (modify_text)' C3 K+ Z [0 D" x
- (if (or (= ha 3) (= ha 5))8 s6 n9 Z0 Z3 L' `( q y
- (progn. R4 f: L4 d, j0 A4 c
- (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))
& N( L8 X* C; }4 o - (if (not showpt)2 _) l& ]6 W' i5 ?0 K8 C
- (setq showpt (list x1 y1 z1))0 Q6 t! G4 s- I6 Y2 N E
- )
0 r1 E1 `; F2 K" z6 c - (setq 2ndpt (getpoint showpt "\nSecond point: "))- V6 C* P) D7 K# q0 o$ x
- (if 2ndpt
1 E r8 `0 {5 k6 c - (progn4 `( o( O" U7 h% u0 n& i: `. m
- (setq alipt 2ndpt)0 i5 z6 ^ W% ~/ M: Z
- (tempmod showpt 10 1)# u9 ]; c ]! ]* t& v+ v. [
- (tempmod alipt 11 1)# D# h4 |- M. w
- (entmod elist)
) F- X* ]- M- a, [6 l - )" C. z3 U! `# o) E' G
- )
! \9 V% x3 P2 G8 b( ~ - (setq elist (entget ename))6 Y, M8 p7 D& Z( C& m
- )6 K7 S1 M! F# J' j
- (progn1 m6 h z) g; z
- (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))# _5 H. s2 |; h& O: H
- (if showpt( X. F- Z# Z1 e8 u
- (progn
( v1 J* {" T& b1 @% s1 x1 U$ | - (if (and (= ha 0) (= va 0))
7 y' r, D& @# m. T - (tempmod showpt 10 1)4 C0 I. u$ E) p2 I8 x4 X' k
- (tempmod showpt 11 1)
. M/ Y3 g& P( _) @8 B - )
' D( K. X& J X! X+ I* A; x; S - (entmod elist)* f9 d4 C* E6 i6 L
- )
. H8 Q* c0 b9 |- P- f% \ - (setq showpt (list x1 y1 z1))) d. ?7 Y) c3 F) J( L' o! X
- )7 u0 f, ^% z4 w
- )1 \) W$ ^; `" Y6 E1 F/ [+ s F, \' R( R
- )% W' n% |: M( j# K
- (ddtext)* g! L' C: X$ L: b0 F: C
- )+ F5 f/ r7 K' T' i1 t J% j& q% |1 l
- )# y# @/ A+ A! c. |/ Q$ T
- )3 [' ^$ U/ d+ p8 Y' O$ M) i; m
- * u/ g% I. b9 {% m
- ;;, C' U7 r q; a9 Z/ S6 Q
- ;; Modify MTEXT
) g1 O6 g8 ~5 K' Z9 y% k+ q) [$ R - ;;+ F5 q. m- L( X3 w
- (defun modify_mtext ()
% H3 w* z5 [# R- h) g4 v - (modify_properties)/ z( A: y4 [+ Q; Z7 S
- (setq pt1 (list x1 y1 z1)); R: e* I4 l U c, i, c t
- (tempmod pt1 10 0)
1 h4 I Z3 P2 O( J' }/ {" ]+ t. i - (tempmod text 1 nil)
- g6 |# Y: P( h; g# f& X3 j! { - (tempmod tstyle 7 nil)
" V/ D" i3 w9 k' j2 @, t - (tempmod just-idx 71 nil)
, c: U; ^: F8 ^+ J# j" L( `2 A - (cond
6 ]- V. I" a1 k& e1 V$ Z% q4 y - ((= dir-idx 0) (setq dir-idx 1))+ M& {" C" `( g# G( v4 T" u/ B; _" ?
- ((= dir-idx 1) (setq dir-idx 3))+ F0 Y, G5 T9 P- D( }
- ((= dir-idx 2) (setq dir-idx 5))" c: F9 }# m+ J8 u4 [# O' N
- (T (setq dir-idx 1))
" p- P5 ^# p: j7 l4 R$ b! I& x - )
/ i9 w1 O/ r8 w" Y) Q6 X - (tempmod dir-idx 72 nil)
8 `% A: [- Z4 O3 [8 X1 @6 t+ h - (tempmod hght 40 nil)
( i/ I" {; }& [& c2 o/ l9 ~6 z - (tempmod wid 41 nil)
* M2 F. H8 `- e! C5 U" Q - (tempmod rot 50 nil)- L, w, Z c8 M" W( ?
- (entmod elist)6 Z3 U' T `2 _8 p5 A
- )
* ?% z! \4 U- ? y
: h2 ^$ |) t: f- ;; Set MText text style
" q' o9 w4 w& l# \) W1 d - (defun MText_style (index / style-list)+ I, l- o: g& X6 Y* q; U
- (setq style-idx (atoi index))
9 v/ |! z6 ]3 e- `- Z1 K B; j/ w - (setq tstyle (nth style-idx slist)): R- V, ]5 Y( `& z
- (setq style-idx (itoa style-idx))9 J$ U1 \) h7 j1 t6 P
- (set_tile "style" style-idx)
( ~3 H9 n$ I0 I9 x8 q& L0 H - (setq style-list (tblsearch "style" tstyle))
8 Y# R/ ~( _0 @# c4 V. U( K - (setq shght (cdr (assoc 40 style-list)))
6 z( D9 q- D' d5 P - (if (/= shght 0)
) E6 R @: q8 j3 |; H; o* A - (progn: L/ f# ?, S' [, U0 \
- (setq hght shght)
9 \3 Z$ i* g( }4 E* G0 W9 T - (set_tile "hght" (ai_rtos hght))$ E7 g- e4 }- ~1 \+ t, X! C8 E
- )
& {4 t8 o2 ~! v* b3 d - )7 H6 X" A+ F. C3 M4 u
- )1 f2 M; n+ R# C1 W9 H
) |' S) [" ^; o/ ]' ?) I- ;; Run DDEDIT on given entity, working around possible re-entrancy7 h! f( e( b5 V# Q. t! x
- ;; problems with MTEXTED% `) L+ V- U- X+ J2 ]/ y5 c6 ^2 [ j
- (defun safe_ddedit (ename / orgMTextEd work)6 {/ @& h2 p- z: S/ ]
- (setq orgMTextEd (getvar "MTEXTED"))! t/ E' L1 R( {) R
- (setq work orgMTextEd)( \; b! A+ c, V( @$ C% b
- (if (= ":" (substr work 1 1))
8 ]1 ^+ w7 P3 u' o d. F - (progn
4 \0 R, s8 v! M) p - (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))1 V4 R8 ]: G {" A. F! O
- (setq work (substr work 2))
$ c7 H4 Y3 V6 c/ ?+ A8 t1 V - )5 }2 A$ K; J* _- z5 j
- (if (= "#" (substr work 1 1))
* k" G! H9 _0 g! z) _+ }% e - (setq work (substr work 2))0 P: U1 v1 _7 ^2 k% ]* u2 [
- )
- G- x3 w0 F4 L; L) S. }, `+ f$ t - (setvar "MTEXTED" work)+ Z5 t* m1 o* o9 Q4 O
- ). @" F9 m7 X' P5 W) J* A5 l3 X F4 `
- ); o% J3 V, S) y: q
- (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...0 _$ {& B' V( T9 g4 ~' S+ z
- (command "_DDEDIT" ename "")
8 P( z& k5 O( Y# o9 ?( R4 ~ - (setvar "MTEXTED" orgMTextEd)
: A: N$ y9 S# Q7 _4 \ - )
: A# w# }9 R6 f3 i
5 [( M* x s( c- N# P- ;; Verify MText object width. n; O( h4 X6 n
- (defun ver_MtextWidth (value)" C8 I. f9 o6 c0 r+ `5 U# K
- (setq value (distof value))7 L# D& H2 Q! M0 T8 V; G; n
- (set_tile "MTextWidth" (ai_rtos value))/ u' T; A; z' f2 l% j3 ~. w
- (set_tile "error" "")( }5 L6 o( W/ \( t9 ~ `
- (if (< value 0.0)
" K- o1 _: L& M" c, r* O8 [ - (set_tile "error" "Value must be zero or positive.")
0 X0 y8 h: d: E. j" } - (setq wid value)% k+ t; o% Y, |6 ]( ?) o
- )
]& o4 D a, `+ a5 C" f- }+ b( o9 M - )- h# q; h/ M2 ~# N
* x, |' X+ M; |6 y) A7 B- (defun ddmtext ( / gc3)5 w ~, U- |5 A! J
- ;; Get dialog
8 X# I# k6 X' O/ h - (if (not (new_dialog "ddmtext" dcl_id)) (exit))! b& p! h" z: N% u) a' v0 m
" G6 B' p0 u! Y g2 F+ }$ E- ;; Load list boxes8 z2 W& E2 M( j9 f
- (start_list "MTextJustify")
$ d- H. N% P- U Q' X - (mapcar 'add_list '(3 m% J. V' q7 n8 J% y0 l* l
- "Top Left"* A" ]7 n( H; N" t, ~) }2 q! ^, ]
- "Top Center", w2 ^ s1 c" @. k: _' q
- "Top Right"
: q% d O! F% T( C2 ~1 l - "Middle Left"6 E' Y% [7 ]+ @2 v
- "Middle Center"0 a2 z4 Q' U9 x/ e* O
- "Middle Right"
# J1 K% P) {" ^" Z1 H3 I - "Bottom Left"- `4 {& u6 W! M' a' O1 X" E; H6 k5 f
- "Bottom Center"
5 k/ c$ q, w' z2 C7 Q/ | - "Bottom Right"
9 z8 N; I0 Y* U; T# d5 B - )2 J. p$ w }. q5 F( x
- )
8 i0 k6 l/ r$ A# ] - (end_list)
: V: ]& x9 |0 t! e5 y& J7 a
6 D. L1 `; W3 s- (start_list "MTextDirection")5 v+ h; T) [- M3 B2 g2 O% h4 I
- (mapcar 'add_list '(
9 C/ c% W" M7 A* y* K - "Horizontal"
+ [$ q) n) K0 z- y/ o - "Vertical"/ t8 w+ h" z1 X' `- i
- "By Style"2 \2 ?% C1 H5 I+ `
- )
: i0 n8 S% I/ U4 I/ w3 _1 z - )
2 ?$ |$ I/ B9 g: T5 Y - (end_list)* E/ Q' }) C$ D8 ~- w+ z# A
- $ M: {8 r. X6 }( `) `4 @
- ;; Set initial tile values
, x4 K# q) S, E! Y& W - (set_tile_props)" M7 |0 a; D7 m0 f1 e* K; |
- (set_tile_handle)
0 L" ]* E" I/ g3 t3 X O+ Z - (set_tile_pt1 0)
) B6 q' o% P) W2 N) w - (set_tile_style)9 u/ r4 y1 m6 C; K& P
- (setq just-idx (cdr (assoc 71 elist)))
; _3 e/ @( a! u% k F. ?8 c - (set_tile "MTextJustify" (itoa (1- just-idx)))
' q0 m1 B; h" q) W" q* j5 f - (setq dir-idx (cdr (assoc 72 elist)))8 j1 Z/ o- s5 f9 Z0 d
- (cond Z+ {9 f Y0 h1 t3 g+ z* N# O7 M8 p
- ((= dir-idx 1) (setq dir-idx 0))
4 E8 q6 d/ e# L# }+ T6 S9 E - ((= dir-idx 2) (setq dir-idx 0))
, _; [! D5 ?3 g4 ? - ((= dir-idx 3) (setq dir-idx 1))# o+ F, q6 L+ o4 z+ X3 w/ W
- ((= dir-idx 4) (setq dir-idx 1))$ v! f# ~6 `% X ^. @- `' A' G
- ((= dir-idx 5) (setq dir-idx 2))
! A6 J( [: w1 k2 T# E; S, u4 r - (T (setq dir-idx 0))0 p3 `0 o: E6 X3 N& |! c$ h* Q* ~
- )
! L6 @0 T: X4 H6 T - (set_tile "MTextDirection" (itoa dir-idx))5 r& ?' x+ B5 n' w" Q5 l
- (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist)))))
: \* R2 V1 ^1 g: _& o0 T- H: O - (set_tile_hght)
. I5 v. [! a1 C5 p1 ?* C8 L6 z& Y - (set_tile_rot)
$ D6 F0 `3 J' u4 |* l* f+ S9 u - ( ]" `- Z$ x6 s0 G
- ;; Set edit box, disable if too long
6 r# f6 |* c+ G. H6 e. L7 T - (setq gc3 (cdr (assoc 3 elist))
& N6 K3 d4 A6 [5 ]! G4 G! s4 {. o - text (cdr (assoc 1 elist)))6 k+ O2 E. d, o% y% j
- (if gc3
# t' v. s8 k4 [( J - (progn ;; Text is over 250 chars, disable edit tile2 }# v6 I ` T, f* I0 L3 b$ ]5 j
- (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))
* N1 O. M& h/ m- Q; H P - (mode_tile "t_string" 1)
, O! j. J7 m' F1 i - )! X; ^8 d' H% |# D/ k8 V
- (if (> (strlen text) 80)
$ w1 b4 v7 T* L" \. D0 S - (progn ;; Still too big
& r! g8 ?) W( l - (set_tile "t_string" (strcat (substr text 1 25) " ..."))
$ I* p7 V, w: \' m# e& c - (mode_tile "t_string" 1)0 j! J# n: I7 @
- )& l$ z) D4 ?, y# i0 [" i$ {/ ]
- (set_tile "t_string" text)1 }* ?! u! z' v& A
- )
& B" n$ [7 z" ^4 i3 j9 S - ). S3 t, l: }; e8 y9 `4 I8 e
- # G& x6 Y' ?* j) u
- ;; Define action for tiles I: |) @3 G# @
- (set_action_tiles)9 J7 V4 n8 l- T. X* N6 ?4 l
- (action_tile "style" "(MText_style $value)")' C3 |- y! N* Z! O2 E9 G: y; x( s% K
- (action_tile "MTextWidth" "(ver_MtextWidth $value)")& Y/ h" N) [, a+ o5 Q- k
- (action_tile "MTextEdit" "(done_dialog 4)")7 l: x* X$ H! }$ C1 @
- (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")
$ P; o* f8 {* N# ~0 G3 z" W+ \ - (action_tile "MTextDirection" "(setq dir-idx (atoi $value))"), R3 D" d ~; O' K
9 G+ l- d/ Y0 Y1 H$ W" ?- ;; Set initial focus to text edit box.
7 J# o J$ X. h9 i5 ` - (mode_tile "t_string" 2)# T! z- s- `$ i+ ?" P
8 r. e4 Y8 ?7 A r" A! ?4 k5 h! X- ;; Run the dialog
M; K, t, T) a( A! V' z0 m - (setq dialog-state (start_dialog)); H% D* e! S$ _! f' y- J
- (cond4 F$ f+ X( C- p( r0 m! s+ }
- ;; Cancelled - restore saved data
* r0 A2 w) m% S" v' f - ((= dialog-state 0) (reset))& A$ c2 r, e( N( U9 p7 ~; ^# b
- ;; OK - save new data+ y; N% y9 n, l' k2 T$ v9 o
- ((= dialog-state 1) (modify_mtext))
. m b; o5 P& A, N6 R, h4 V5 p - ;; Pick new insertion point
6 B5 A. n3 P" p+ u0 M Z - ((= dialog-state 3)$ Y4 ]+ K) O0 }; |0 Z
- (modify_mtext)) u; O. m1 j4 K. m+ ^2 q5 W7 |
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))
$ ]4 i3 R" L* I - (ver_pt1 0)7 T- }' }, C1 Z# j% \
- (ddmtext)
$ a6 ?' n% h4 b - )
% O% |) h0 a. [& X0 y/ ^7 d, W - ;; Run full editor _. p" ]0 Y+ B: m
- ((= dialog-state 4)
# r( y0 ?/ U" J7 W - (modify_mtext)9 A" {2 D) P' \: a1 S6 L
- (safe_ddedit ename)! {( K# `4 y% c/ w
- (setq elist (entget ename))4 R4 z) A' _3 N" v7 H( j/ y
- (ddmtext)2 R; q' Y# q2 f7 P
- ), |3 ?$ F0 _7 A1 ?4 r0 O* y
- (T nil)4 [1 t: L5 T/ J: [, o; x( G
- )
% g: z N) o: f) ?1 l+ ] - )
3 S, h; `" F0 Z5 n2 {$ M3 u3 X - " B' P% n) w7 v5 d6 y! Y
- ;;
$ C5 j- m. Z' `- l% ?8 a5 f - ;; Modify VIEWPORT
* U; [7 A8 x% [6 r1 ^; o - ;;
1 A2 O$ s' `8 S - ' x# W. ~/ ?; N& z* j2 e
- (defun ddvport ()% V5 a7 k+ N" j) J
- (if (not (new_dialog "ddvport" dcl_id)) (exit))
, t# K6 r q! M$ z - (set_tile_props)
& X( Z/ Y7 q+ h$ u - (set_tile_handle)+ ?2 N& J) k3 H3 _* V
- (setq vpt (cdr (assoc 10 elist)))
! K8 k T }& F9 D! v5 n2 i - (set_tile "xtext" (rtos (setq x1 (car vpt))))0 l: L3 J8 N1 p/ t
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))% C- X/ o' h( W7 G0 Y B) E2 m
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
$ B+ ]& N- k0 L( J) ~ - (setq wid (cdr (assoc 40 elist)))
) w8 e+ N5 U4 f0 B- A! M - (set_tile "wid" (rtos wid))
# {, Z; p& S1 f" d9 {- p6 m+ @ - (setq hght (cdr (assoc 41 elist)))
9 v+ d% V7 |. q# Q$ W, g - (set_tile "hght" (rtos hght))
: ]/ B( e6 i% d2 s$ y. c - (setq vpid (cdr (assoc 69 elist)))( z9 y5 X' d- Q) m! S
- (set_tile "vpid" (itoa vpid))
' G5 ]* K) J1 X2 x2 k0 k! k u - (setq on-off (cdr (assoc 68 elist))). T/ ]$ R1 R, m8 J
- (cond% C% D" C! c) |. u
- ((= on-off 0) (set_tile "on-off" "OFF"))
/ P% O( w, e( |5 e) D7 [. G - ((> on-off 0) (set_tile "on-off" "ON and Active"))6 @2 Y3 j0 b. ~, _1 a5 U6 j! Y
- (T (set_tile "on-off" "ON and Inactive"))
# f$ g; A0 X+ J/ V - ). x& Z) o2 U! c0 w- ]5 f F2 X$ X
# p( o. y4 z$ Z: U; n5 Y0 S! Q6 ]- ;; Define action for tiles! j- C, q; H' ^( \: F# g
- (set_action_tiles). m: {" |6 A: |, f
( X+ n4 e8 ]# |; u8 h( y- (setq dialog-state (start_dialog))
% R5 S) U( s& J) E2 F, w - (if (= dialog-state 0)) N7 |- z( X6 j8 k2 A) R
- (reset)) f$ L6 L% q7 I; n3 S
- )9 z+ R- O6 Q8 C1 e. h7 j/ h1 Y
- (if (= dialog-state 1). Q: K' i7 g* H0 O2 `+ {! K
- (progn& d; M; U2 E4 w+ O
- (if (= ecolor 0) (setq ecolor "BYBLOCK"))$ g/ e( _/ B4 h+ x/ \
- (if (= ecolor 256) (setq ecolor "BYLAYER"))' o3 V& n& r- w. b' V% @
- (command "_.chprop" ename ""
3 b' \+ }5 U( X. S- ^ - "_la" elayer0 P6 C) M# ~; w
- "_c" ecolor ""9 O$ K- }) H5 B. l( B+ m V
- )/ |) f$ H2 X7 s/ `9 E$ N4 K
- )) o8 e# x: f, @2 U: I9 K; F9 T9 {
- )
# r4 e& M2 D+ U! B9 ~& K& ` - )
' L+ Z* L- m$ g. T/ } - ;;
% R; H( c% ~& y - ;; Modify POLYLINE
7 j/ |' S& v. K$ w3 K0 o/ K. u9 o7 T! ~9 q - ;;
6 N1 O6 j5 l% w3 J4 @( c - (defun modify_polyline ()
5 k7 j0 h1 {) { - (modify_properties)
3 F& E/ p8 p5 R# ^2 g" \1 o - (if (= ltgen "1")
2 ^" a5 U: e U8 g2 |, ?- t. _ - (if (/= (logand bit70 128) 128)
4 ?% ?% D% U" I9 j! |- {; M+ B1 M# a- n0 T - (setq bit70 (+ bit70 128))& e8 z5 F0 g: F& K
- )2 z& H R3 ]# F' c2 _7 m$ P5 ^/ A
- )# n' r ?# N8 k$ h9 f. t' D
- (if (= ltgen "0")
! z! G7 S; `4 [ ?0 E2 s1 ] - (if (= (logand bit70 128) 128)
9 T" o S; X3 g+ ` - (setq bit70 (- bit70 128))5 {4 o/ F8 }* Q
- )+ z, _ l6 L6 _
- )# }# ?; e) p2 F9 R
- (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))
2 V5 O8 N- a5 b* Z1 D) \) `- n" H - (entmod elist)4 M9 s' O" p* @
- ;; Added to take care of updating Vertex information for color& l0 M( c" e4 K$ f1 t3 Y) L G
- ;; and linetype.+ X6 a* P" t, E9 W. {
- (setq save-ename ename save-elist elist)% r9 h; Z6 R0 L5 k6 f, S. l
- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")- j8 E' Z0 \. C* H+ D; ^ V
- (progn
5 E* H- P7 r u, Y+ B3 Q5 T% z - (emod ecolor 62)
( E7 w4 }' r2 O% W, F* T3 x9 M - (emod eltype 6)2 N8 G) F$ ] l# J8 l2 ~2 P( {
- (emod eltscale 48)
) b' X+ Z% A, _2 j - (entmod elist)
u! n6 V9 x5 j8 U; Q; [ - ), D! ~2 G0 E* q/ T5 p
- (progn
( _2 X$ D# q$ k$ h- n - (setq ename (entnext save-ename))/ d1 Z# T0 s: Q) M2 Y
- (setq elist (entget ename))
' U* D) k( w4 n9 B/ I& p
0 a: L2 I4 P1 Y" M4 l" }- (while (not (= (cdr (assoc 0 elist)) "SEQEND"))
L. W% r5 \4 |9 q - (emod ecolor 62)
8 ^& K( m, u# U, c k! f - (emod eltype 6)) Y: u) T+ k* q
- (emod eltscale 48)
! K* S3 X0 v- N+ `) Q; P( C - (entmod elist)+ J# Y& ], L1 f/ A" x: J
- (setq ename (entnext ename))8 _9 W) z- y; c
- (setq elist (entget ename))( `1 [# V1 C8 J) J) N- v! p
- )' N5 b& s3 V) t; o1 ^6 L1 ]
- )
5 s, m/ t' s8 u4 X U" o - ). G+ N) L7 e/ {/ J9 i
- ;; Update the SEQEND( d, Q7 D# j8 B7 O( \
- (if (= (cdr (assoc 0 elist)) "SEQEND")
% u+ l; s4 d$ s: t/ M - (progn
3 P; x, D3 p% E& e. A# U6 H - (emod ecolor 62)
- b: a3 t5 O' m! k - (emod eltype 6)
' O3 U: s7 X( [1 C - (emod eltscale 48)& x0 I8 r% u3 J: w2 t% S) D2 L
- (entmod elist)
4 n! g# C9 D( F) r - )
8 B$ B+ l/ C& b" S4 a - )2 v# Q" V: b* i5 F, `0 p
- ;; Go back to header.3 U4 D; ^' @! y! \
- (setq ename save-ename elist save-elist)
" w) z7 m9 b r- P$ q( h
! F& P9 R# d* D- (entupd ename)
- ?" D. }4 m; q. j. I+ ?9 ~& N - )7 H8 u: x! A# b) B' y2 \
6 u2 B! z5 e: G9 u! `2 W' O! b3 y" g- ;; Increment vertex. Set tile values to next vertex1 p% W: ]9 m3 R+ _% K4 _
- ;;) c% E! M) h' X8 }7 u- S W* \
- (defun next_vertex ()+ E# a( {8 U4 h# x; p2 B% t
- (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")6 N7 i; J. R5 R( w+ P
- (progn: k/ R9 l/ Z3 r6 e+ e& g( j
- ;; If the counter reaches the number of vertices,& Y2 R I( u; u o/ P3 Q P, E1 w
- ;; roll it over to zero again.
8 S0 ]. @$ G8 }# e% }& L - (if (= ctr (cdr (assoc 90 vlist)))
/ N' o+ L) J$ v; G" w' R7 b - (setq ctr 0)) y* U' x" A* ]6 y7 s+ V
- )# H; K( I! | {8 f- R
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))3 r) z$ u) `1 O3 a7 u* Q
- (set_tile_vpt pointype)4 [2 A7 q! X5 o$ N9 ]+ L
- )8 k& j6 B+ H5 I* k
- (progn# i5 P/ U; A% L. _: n: Q& t6 O9 i6 }
- (setq vname (entnext vname))$ z+ b, u" {) i# c3 j
- (setq vlist (entget vname))
% O/ _- a" [ U- Z. Q( }' C3 S- W3 L - (if (= (cdr (assoc 0 vlist)) "VERTEX")
" F7 O0 b7 P: |9 S - (progn+ |/ z6 z4 O& m6 J! X2 Z7 ?
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
3 v& N- I* h4 K w. p8 L1 l - (set_tile_vpt pointype), K( ^1 \# v3 n' C4 j/ B D
- )% v$ U, ~+ S( u5 q7 q
- (progn6 e0 @( i' L% R0 B$ P
- (setq vname (entnext ename))
3 b: u o& |3 V# M, N t - (setq vlist (entget vname))
& O- D G2 @2 m9 d - (set_tile_vpt pointype)
8 s0 S' R' m5 d5 Q; \ - (set_tile "ctr" (itoa (setq ctr 1)))
3 N; e, r" X/ w0 X9 t) a - )
: y; g8 Z- V2 j" C - )
7 m1 h, S% x/ m; p- |/ a - )
' J4 F |3 B: `9 R4 U3 {: i - )
. j" w$ Y; J2 g7 A - )
; E' v5 ~. y4 }3 e/ V% Y - $ U8 j) K; [* q0 A& v% D" F
- (defun ddpline (/ oldecho)
' r" g" r" h x/ a$ u& h. s2 J - (if (not (new_dialog "ddpline" dcl_id)) (exit))! Y' K; H0 p, }
- (set_tile_props)
! _2 s7 `0 ?$ T9 f; A# ?/ f" F' G - (set_tile_handle)8 p) @8 o4 }% S4 p/ d2 O
- (setq bit70 (cdr (assoc 70 elist)))
% t* F% ?* ` C% u2 O7 S: n - (setq bit75 (cdr (assoc 75 elist)))/ L6 I9 c6 |, f9 V5 l5 m6 f: n
- (cond
, j' N; {; _* d- J) m9 u! Q - ((= (logand bit70 8) 8) ; 3DPOLY
# z, j$ g w& r3 c) n2 H. t N - (set_tile "ptype" (setq pltype "3D polyline"))0 U, v* O6 V$ o
- (setq pointype 0) ; WCS or ECS point values3 G0 N2 b! d1 V, \# u% D9 Q* Z
- (mode_tile "fit" 1)
2 K: O. o& ^- l6 s3 o - (mode_tile "mesh" 1)
9 m5 Z% R1 m# j8 |5 k) V* ~- n( W, @ - (mode_tile "bezier" 1)* M' b2 e% G. a2 x$ x+ _
- (mode_tile "ltgen" 1) D4 Y1 o9 Y N
- (set_tile "none" "1")$ r4 y3 J$ }' l" Z
- (set_tile_closed)
% I$ d) ~2 M5 N8 V6 g- u - (set_tile_fitsmooth)0 B% D3 P' I/ E- h; L0 \# y8 X% c
- )( L0 @$ q" g7 a
- ((= (logand bit70 16) 16) ; 3DMESH
$ Q6 q& r* o, |' d - (set_tile "ptype" (setq pltype "3D mesh"))% y6 d; m0 h# X) `
- (setq pointype 0)3 g6 M+ C% R: J, c( t# d
- (mode_tile "pline" 1)
. D9 f# e. R0 P# A; ^ - (mode_tile "fit" 1)6 t. D$ J4 d4 D7 o- V* N
- (mode_tile "ltgen" 1)
% g: Y& d' i2 R( U' ~8 Q! v - (setq m (1- (cdr (assoc 71 elist))))8 Z5 F. T0 k& j6 F( U
- (setq n (1-(cdr (assoc 72 elist))))
1 x& v, D( r9 V# A - (setq u (1- (cdr (assoc 73 elist))))
^! _! t1 |; d7 Z* I3 w - (if (< u 0) (setq u 0))
/ @" y9 u/ E U7 T% h( O, k. ? - (setq v (1- (cdr (assoc 74 elist))))# K8 h/ E% `2 O7 U+ A
- (if (< v 0) (setq v 0))% i' r. o7 V) A) X/ B! R7 d1 m8 r
- (set_tile "m" (itoa m))
: M; V3 j: h: k. S8 G" B - (set_tile "n" (itoa n))0 a I/ v, b [& q4 |
- (set_tile "u" (itoa u)), l, E- w7 o& E5 `, ?% G8 A" {
- (set_tile "v" (itoa v))( \. t! a, R8 z4 U
- (set_tile_closed)* q* t7 D5 t4 e' e/ v H7 y& V: [1 |
- (set_tile_fitsmooth)- y: J0 L6 g" Y0 s& v
- )) @9 R4 ^7 |( M/ l
- ((= (logand bit70 64) 64) ; POLYFACE MESH0 ~8 W$ i8 n( n5 ]
- (set_tile "ptype" (setq pltype "Polyface mesh"))
' O/ z ]9 E' f8 J; s) P1 k - (setq pointype 0)
3 V6 X" k% n- f( M& F) _8 }; G - (mode_tile "f-s" 1)( U9 N! H' G" M# k3 C
- (mode_tile "mesh" 1)0 C3 |: ^/ m$ x/ U
- (mode_tile "pline" 1)( R j- i3 q4 R# d9 `5 w
- )
6 f) B) L3 C, U4 A- y - (T ; 2D POLYLINE( y- w$ G/ [, ?+ `5 L2 {. Z7 L2 U
- (set_tile "ptype" (setq pltype "2D polyline"))
4 ^% s+ ], O7 W; E8 B - (setq pointype 1)( s& Z. E0 [* y& A! u" I5 [, h
- (mode_tile "bezier" 1)
7 c% }- R/ A- {# }. ? - (mode_tile "mesh" 1)$ B! v/ j1 ^) F: M) p/ a
- (if (= (logand bit70 128) 128)+ o5 ]7 I$ y! N8 i- [8 I
- (set_tile "ltgen" (setq ltgen "1"))
! ^4 M# E) U9 ]9 O5 x) [; W" e, @ - )
. ?6 w9 j6 |7 @ - (set_tile_closed)
- |& H; E- p8 h. g( D5 V - (set_tile_fitsmooth)
' b% K% v7 |& k6 N, s - )
$ ?. Y) J/ \' Q; y. d- { - )
; X w1 t0 l9 ^6 q1 _3 E - q9 V5 F4 a2 }8 _* U: a8 q/ K& L
- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")
, Y" O8 g9 I2 O - (progn5 y& w3 w- j, y
- (if (not next) (setq vname ename))" X J) k U* U( Q1 ^/ m
- (setq next T)) ]' ], \/ m7 ~: j& }9 m
- (set_tile "ctr" (itoa (setq ctr 1)))
# {* ]1 s/ K% j. m, B) z { - (setq vlist (entget ename))
) v( `" t, `+ y* g7 Z - )1 u. @ f( k0 H
- (progn( U5 }0 J! K" @. N% c6 A' @
- (if (not next) (setq vname (entnext ename)))
: u$ Y' \0 [" a# r9 C - (setq next T)
8 S- E( g! V' B7 [ - (set_tile "ctr" (itoa (setq ctr 1)))
- T8 S3 x% S3 ?" V: G5 R! e - (setq vlist (entget vname))! A* I8 H( d I J
- )- {; Z8 Y: y/ R: Y8 {3 N8 t* A
- )! q1 D4 x# e; |, A& {/ |
- (set_tile_vpt pointype)
% l5 i L+ _# ?! z* m3 L - ;; Define action for tiles
' Y$ x6 E; h+ z* j/ J, f$ g& { - (set_action_tiles)6 U2 Z8 q4 t, j& }0 K( b
- (setq dialog-state (start_dialog))2 Q6 Q# {" ]# I6 U
- ; O) t5 c, Z- S. p* o
- (if (= dialog-state 0)9 T! S- J4 L) y+ }! A6 v% V5 R
- (reset)0 t5 a# e2 A9 R8 \( C8 T; @" ~/ C
- ): d3 f" [: J% X( V/ s( x& |- @
- (if (= dialog-state 1) u! F% {% O8 P5 \. W5 w6 y* E6 D
- (progn
) b7 `' s' Z/ D9 i1 F2 ^& n - (modify_polyline)( H9 k m. F* s# E1 [
- (if (or (= pltype "2D polyline")
7 B# M4 T1 A% j) U# M4 P% s8 c - (= pltype "3D polyline"): C2 C+ u1 Q- L" @% x
- )# P# C; H0 [0 |, ?8 p! g; S# J9 H0 {
- (progn
K8 P) T. c2 @, h% Z& b' w7 i - (command "_.pedit" ename)
7 W* `9 O" [( d! A# c! J - (if (= spltype 0) (command "_d"))
9 a: N+ x+ w4 y7 ] - (if (= spltype 1) (command "_f"))3 `6 ^ O4 p# ^0 O
- (if (or (= spltype 5)
7 P) @( b6 V% `+ f! q) y' v0 J - (= spltype 6)
7 y* S8 p2 f- T6 T3 y - )+ X$ Z9 a) w% H# V
- (progn
9 _# ~3 B; ]4 K - (setvar "splinetype" spltype)
1 {% Q0 i. p5 ^, y+ b - (command "_s")+ G6 O: J( m) e
- )
1 r8 [7 p% @0 `/ W0 P4 C, }" u - )
R) [4 f* [. B) e - (if (= closed "0")
; W' q6 X8 x* n! i' r - (command "_o")
# U3 n$ J- o; b7 c! l& M - (command "_c")0 r. w3 f: V1 V; n& E6 n
- )
& D; \7 ~* X/ S0 U( O* Z8 o - (command "")
( m: u3 x7 F8 @3 e! R" ` - + A2 P$ L+ U! f: _% c0 U
- (if (= spltype 0)
+ u% \0 G- V s( A$ b+ o+ x2 g - (progn
1 P J7 O2 w* c; w1 {+ J5 d - (setq oldecho (getvar "cmdecho"))
9 h2 A; A; k6 W7 J0 { - (command "_cmdecho" 0)$ i0 }; [9 H* c. {/ Y# i2 g
- (command "_convertpoly" "_light" ename "")9 ]; a3 v# d) d, q! U: d
- (command "_cmdecho" oldecho)3 `7 w. ~- U8 p' j1 X0 }5 ^
- )* d9 Z! x) B# ~
- )" L' P/ \" m- S, N* P
- )# }2 b# z1 V6 H0 V! B: T
- )6 s, r6 S3 R* n
- (if (= pltype "3D mesh"). G3 k0 s0 Y# i( \: u2 i8 R
- (progn' f/ k0 u' N$ H) o
- (command "_.pedit" ename)5 |2 E+ y/ a5 e/ o4 u/ a( M
- (if (= spltype 0) (command "_d"))
. g' p5 M. J2 x: b f' Z - (if (or (= spltype 5); X8 s, d' X B; }
- (= spltype 6)5 S8 i! c& p8 I( P+ W: G5 C
- (= spltype 8)
% c) {5 F$ t6 R# G( ], r2 J - )- R+ b3 [1 u+ G
- (progn6 t, ?9 r& k1 |5 J' i$ a
- (setvar "surftype" spltype)
' k/ u( m( ?9 @; ~; F - (setvar "surfu" u). d U4 T- ~- e& ?1 i* ~$ ^3 i
- (setvar "surfv" v)
! b- p) u9 s W2 [7 o: e. S3 B. ? - (command "_s")
# d3 j3 y" R) t* J - )" U% x8 L6 b. m, A8 G/ ~
- ): k4 W- V* z) W! E" w0 K( e
- (if (/= closedm old-closedm)7 \7 e. u \6 ^( t/ a$ M) W. `
- (command "_m")
3 A) B6 L2 c( w: C1 B - )
7 b* W& b5 _& O - (if (/= closedn old-closedn)
$ y9 v! `1 C( u' _4 P! ~ - (command "_n")% Z& P% K1 C0 T8 t
- )
4 r8 M6 E! T+ I1 x! A$ o - (command "")- J/ N* h( `6 [0 ^
- )
2 L' h& r7 S0 t7 e - )
2 \2 P' F |2 | - )/ v0 H" A$ z U, D) V: k8 Q
- )
3 F9 c- V: ]) h0 O, | - )
$ Q6 N4 e- J! ^" G* k; R( i9 y - ;;
* B; \1 R4 }7 X: ?6 I J9 e - ;; All the spline data is contained in a single elist. We must do some
0 \0 U* U6 X* | - ;; tricky list processing to loop through the elist in order to display2 t Z, T/ p: z' B9 i% _
- ;; all of the control points.4 e9 L' b; q0 X. h; w
- ;;
) l, }1 _/ e7 j: Z0 I% \ - ;; The structure of the elist is different for rational and non-rational
2 Q# [: ^, r# m3 S/ C" f5 ? - ;; splines. Therefore, we check the rational spline flag.
/ `$ k! `+ `! s% x$ v - ;;. R% i! x, S- Q: K, j$ q+ a
- (defun next_cntl_pt ()3 _$ ?6 p$ N- v S& f$ @5 \/ Z, h# M
- (setq elem-no 0) ;; elem-no = element counter
3 o1 b% S; } D/ d - (if (= first-10-time 1) ;; If first time, find location of first8 Q# \& R1 Z2 k/ k- W" {- D% X( ]5 ?
- (foreach list_item elist ;; cntl point element in elist
3 S6 I% @$ v% B, J- R( f9 I - (progn
. ~: Z- r& U8 G6 N+ C) w - (setq elem-no (+ 1 elem-no))
1 b1 ^7 p/ @/ f k9 f8 y& X: b - (if (= (car list_item) 10)8 G% g7 v! Q& k |" y( |/ i
- (progn
* O0 t$ r, K, ]' K* f - (if (= first-10-time 1)
: k0 V5 [4 B ?+ L o - (progn
9 d! v6 C$ ]2 A7 e - (setq first-10-rec (- elem-no 1))" b3 S& r4 R$ t4 e, R
- (setq first-10-time 0)
* B1 l: ^& o; ]6 T - (if (= rational_spl_flag 1) ;; if rational( ^1 Q1 x' s6 X* w
- (setq cur-10-rec (+ elem-no 1))7 h" r9 }$ x0 Z5 M4 C9 o- C
- (setq cur-10-rec elem-no) d) X/ V( V' T
- )- a. X1 b( A" i5 w
- )
% ?" T/ H! ~4 e+ X7 u! Z0 X' e - )6 T: a# d+ d" l; X
- )
1 }2 p9 ]8 X2 }' C - )& g0 v3 }8 B. _) i; I& U/ s
- )
; M# y% p! Q& s0 [: }! F" P - )
( V$ h! e% m( |9 U - )
2 A# C( B- V( d- Y/ p - ;; Now we know the location of the first "10" record; it's stored
, `8 X/ j( b1 g4 x: v7 R- H3 d, w - ;; in first-10-rec. The first 10 record was already displayed when3 F: o M- v$ A9 {4 h
- ;; the dialog first came up so let's display the second one when
2 h* r& j, p- U# W - ;; the user presses the "next" button (the first time through).
1 j$ t8 g( I8 v" v - ;;
% P. v- j6 ~9 N% I- Y - (setq temprec (nth cur-10-rec elist))
1 {: N+ ]- g" S3 {8 Q, I - ;;5 A5 G9 w( u$ R1 O
- (if (= (car temprec) 10) ;; if 10 record* r1 s9 Y+ l5 E _( @* Z1 Z
- (progn
) L% f" K/ `2 O) Y - (if (= rational_spl_flag 1) ;; if rational spline/ z; D4 j! N% B7 W
- (progn3 ]" ]( Q5 i& [3 R s$ A# q
- (setq tempweight (nth (+ cur-10-rec 1) elist))
& k2 w6 T' l" o; Z - (setq cur-10-rec (+ 2 cur-10-rec))
& |( D9 Y% K" @3 C! O0 F2 ]/ M+ d - )" u8 w! p& a/ x" X% D7 }
- (progn ;; else& V& p) X) b+ p( F. ]
- (setq cur-10-rec (+ 1 cur-10-rec))
7 K4 I3 o% m9 Q. }# Y6 Q: R - )
- p# ]$ B3 D# \$ T4 ^ - ): W# a! Z7 t5 E" W |
- ) ;; end if rational spline! C! j& o- Z" u2 w! V9 q
- (progn ;; else reset counters% a- A% T# s( e. \
- (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec
$ b: K* b! r" L2 z2 X2 Z - (setq tempweight (nth (+ first-10-rec 1) elist))
8 {7 b+ {) O% j! V4 ^% e - (setq cntl-pt-indicator 0)6 F$ G2 a* @( ~ b1 P: c! k) C
- (if (= rational_spl_flag 1) ;; if rational
2 Q9 k4 _8 z8 c4 h3 b8 e - (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec5 Z) [. `. ]; J6 V# Y; F
- (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec
4 w( Q: \! m! r* s" t. V$ m7 B - )" ~0 C8 @+ F# {- R$ o- S+ L; F
- )& D# p* l5 ~; J( K
- ) ;; end if 10 record
3 Q/ v4 d1 g8 D2 R6 m# [5 ~ - * K" L1 l6 i) P6 x' H0 a4 U8 |; o
- ;; Display cntl point, weight and ctr. Increment ctr.
; j6 Y9 d* `# w& S; J - (setq cntl-pt (cdr temprec))/ _2 ^ x& V# F4 s6 Y z& N& M! J4 C
- (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
) Z( z+ Y7 ?9 k+ x% X+ o" B - (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
& g, `/ k( w0 ?1 e; [ - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt)))). a; B$ |+ D' o o) [% z- D; a" F7 b+ s
- (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))
?: l9 ~( {& m5 ^4 g+ F: }7 J - (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
7 A) J }9 t* g6 G/ i - (if (= rational_spl_flag 1) ;; if rational
' P! m! u1 Y- G" G; |1 z4 { - (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght
( Y! z( c* ]5 t. {1 L- ~% k - (mode_tile "weight_text" 1) ;; disable wght
+ C/ m4 d+ m( i$ _0 k/ C9 l7 Z - )
7 w. ^$ C( W* U" @% C# p) z. s - )9 L; B# n) e& R6 [$ B
- ;;5 f7 w6 r; u) Y
- ;; All the spline info is contained in a single elist. We must do some' t% X7 _- e; W; a, F3 k6 ]
- ;; tricky list processing to loop through the elist in order to display" Z( y$ _5 L7 V$ K/ y" L
- ;; all of the user data points.
2 z% {0 l! Q! ~3 S2 ]5 T* q) G - ;;
. W; s6 }" L( ~5 r* m7 u5 X! ]9 Z - (defun next_data_pt ()
0 A4 z9 ~" D6 s5 l - (setq elem-no 0) ;; elem-no = element counter4 o0 }( ^+ w* x5 K( p! C
- (if (= first-11-time 1) ;; If first time, find location of first. ~# g5 d# {) c7 O) S( n
- (foreach list_item elist ;; data point element in elist6 P" h1 e7 [% y
- (progn
0 d# H' m W4 I& i - (setq elem-no (+ 1 elem-no))9 j! Z) m. _, N% t$ M2 [, P; K- c& }
- (if (= (car list_item) 11), ~. I9 S! C0 e% u. O
- (progn
3 X# b: ~, [5 u - (if (= first-11-time 1)
4 Z; @- J7 s0 R% S* _. y. k - (progn. K6 z4 Q4 X" I& p7 c' O
- (setq first-11-rec (- elem-no 1))! N5 n8 @8 p2 A& N
- (setq cur-11-rec elem-no)
, n0 x. e$ G2 ?+ h# h. g - (setq first-11-time 0)
. U- J8 M8 O) `) d$ c1 F/ U - ), v6 m5 h, ]! s5 {- d
- )
" B; e6 q/ P. A! r( q8 m! f - )) E; X* O w) r3 A. ]# }3 s g6 O6 h
- )
& E- T+ F8 u- m6 v9 K2 A - )
! E5 Y g3 C& Q h; o0 O - )2 m, r) ?: n f) w# o1 N( Y7 V- W% X
- ); P3 d% \. G4 d; n1 i6 \! A2 G
- (setq temprec (nth cur-11-rec elist))
* f4 N' w' v4 l- R- ] - ;; If it's not a DXF "11" element then we've gone past the last0 h3 b* z3 _9 R3 W. c1 S
- ;; "11" element. Go back to first "11" element. Reset counters.
; ~% M# ^' C2 x0 W - (if (= (car temprec) 11)3 [3 ?& R' V5 K3 d, M
- (setq data-pt (cdr temprec))' x; G. z! M. N! R
- (progn ;; else
1 o2 A- x' L0 D/ x+ j0 B - (setq data-pt (cdr (nth first-11-rec elist)))
- z" j" _& V' o7 _. C - (setq cur-11-rec first-11-rec)$ {% J9 ~- J2 C1 n9 j: W, p' e
- (setq data-pt-indicator 0)
! o5 d4 M$ }. Q1 F a [/ r1 H - )1 G2 N4 y; C) N+ `
- )
$ U8 C' b2 [0 B9 E6 O3 ?6 _ - ;; Display data point and ctr. Increment counters.
. s9 B! A% ]/ C1 i/ X; |- o! ^ - (set_tile "dxtext" (rtos (setq x1 (car data-pt))))' o6 l" b; y: N f. m
- (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
8 @9 [% U% A5 ]' e9 A) O - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
0 p/ V/ v- Q( _4 S3 [+ P: ? - (setq data-pt-indicator (+ 1 data-pt-indicator))
1 A% ?7 G3 }1 M$ P- } - (set_tile "data_ctr" (itoa data-pt-indicator))
; ?4 ]- T2 j& S - (setq cur-11-rec (+ 1 cur-11-rec))# ]; n6 l, N. {* T5 u3 B
- )
9 n$ L) ]# }2 z9 @( u# ` - ;;
- |8 w) Z3 u9 k0 p - ;; Modify SPLINE
4 U- G, K+ F- b) ^ - ;;
g+ L% q$ k3 I9 V' U - (defun modify_spline ()% E q! i3 ]. Z) v
- (modify_prop_geom)
$ O8 t! }( m0 H+ U7 R- u R - (entmod elist)
* }9 [) h0 I8 `! ?4 P$ k& E - )3 B% n" R' w$ ~( V4 l# k
- ) W, i' m) J2 T( {6 l
- (defun ddspline ()3 u/ v$ ~- _7 H1 y5 r' M! T/ U, ~- @
- (if (not (new_dialog "ddspline" dcl_id)) (exit))
2 E0 d! j! s9 o8 Y* F - (set_tile_props)9 D4 U# o/ a# Z( T
- (set_tile_handle)
" ]" I3 O* g" ?! b) \+ { - (set_tile_spline_props)
+ n: B$ ~+ `* ?7 }0 e6 g( e3 \; a - ;; Display first control point
% z1 r7 f+ Y9 b - (set_tile_cntl_pt)
) [6 X8 g7 \; h% x/ _ - ;; Display first data point, d* I* O; r3 `! |* E9 Y
- (set_tile_data_pt)
0 n9 t# c6 h. A: e! [ - D+ O* K- J0 q/ W% F3 A+ G: a% y# o
- ;; Initialize flags to indicate first time through the dialog.3 g: E+ A- e7 K( v
- ;; For control points and user data points the "next" buttons3 L5 b1 w/ b2 @8 l; N, P6 w# D) G
- ;; in the dialog call the appropriate functions.1 D: R/ u2 q% k ~! c M9 [
- (setq first-10-time 1)
9 `. o' U* l9 G0 ?% P0 K$ n - (setq first-11-time 1)( K# m$ Y- U5 t) ~
- ;; initialize control point number counter
4 b. H3 p. {0 v; A3 [2 K. h - (setq cntl-pt-indicator 1)
4 Q7 ?, K' ]3 {4 I/ R1 j+ q0 a* t8 h - (setq data-pt-indicator 1)2 S; l( L) g$ b R7 b; V# x
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))
) [3 L1 C) t) J - (set_tile "data_ctr" (itoa data-pt-indicator))% }6 _: i% N1 M- ]; S* y' l
- (set_action_tiles)% a8 f- p: ~2 W8 z0 W
- (setq dialog-state (start_dialog))1 w; r9 ]; t; F& {7 _4 J" R( u
- c) Z( `) O" ^6 ?) H: z! W/ ?- (if (= dialog-state 0)7 g$ I- R0 H: T% U: s
- (reset). p; M: p; t: N) n' x- R
- )
- s: E3 p1 _! F2 x5 C - (if (= dialog-state 1)
" k: H* ]$ ^0 J) J& \ - (modify_spline)
( s) m& q" T* H - )
8 Z7 K8 @1 N9 y/ n+ J7 f1 ?0 u - )/ m( E' M" O% Y' {' [
- * L- c' a! {4 k! g( X8 t
- ;;
- n! T. O$ j2 y0 w: B! M - ;; Modify DIMENSION" A0 ~3 @5 q- V. a& U8 {
- ;;
2 h3 H2 C( t# d- `7 ] - (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl
5 L+ r( L1 t5 z/ k - dimsty dimlist dimtext svtext dimovr sv_dvlist stlist- T- b! z/ p" \* I, `2 {
- dimtype dimsvcurset)
: Y$ T" v) W! K1 ?: |* _ - (setq dimtype "DDIMEN"' m% ^2 m* ?7 @! A2 P
- dimsvcurset (ddimen_dimsty_restore)2 A; y$ r% G3 G# m# G
- )
( E! z, q, e2 ~ - (if (not (new_dialog "ddimen" dcl_id)) (exit)): L- \% M" e5 q5 F8 Q* w
- (set_tile_props)
' ~* ~! |" G& N4 r( r9 ~5 i+ O - (set_dimen_props)7 [4 C( {+ k* {* F
- (setq dimtext (cdr (assoc 1 elist)))% A6 c* |! J2 K: C4 r) c
- (set_tile "t_string" (if (= "" dimtext) "<>" dimtext))! z* r G- j; X; g2 c: G
- (set_tile_handle)
' u g6 ^) q8 `" G - ;; Define action for tiles3 N4 b k: V: w, ~0 @
- (set_action_tiles)& ~: o- c2 @! J' t9 z; O
- & S! D! G% s) P) H; v
- ;; Set initial focus to text edit box.+ J! w$ p+ j f/ o% v0 ?. D9 o
- (mode_tile "t_string" 2)
, f3 \/ J4 M$ ^( A. B
4 |, k9 Z% I! \- (setq dialog-state (start_dialog))
0 J) E- k: m+ t+ |$ O |5 L p - (if (= dialog-state 0)# m! }- V9 s6 H7 {8 P
- (if (= ddimmt 1)! F- Q+ ]- o! v, z% s' K
- (reset)! }9 }# A9 s: B$ Q
- ), u7 K, D( U: {) k8 Y! ~
- )
5 y0 P. W: j% d9 N4 P- r - (if (= dialog-state 1), M8 }" A; u* V
- (progn7 r; n0 c ]5 T2 L" A$ P0 m7 ~" h
- (if (/= dimsty stname)
! ]# j |5 A" @+ q, V1 Q0 _ - (progn
( q2 v) f/ J8 B - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
g3 S }' D& C* k" r - ; doesn't have it.
3 q+ u+ ~. V2 E( ^: _ - (if (null (assoc 3 elist))$ g* y- V3 K$ M8 C
- (setq elist (append elist (list (cons 3 dimsty))))
- h( s, a* J# c( \ - ; else just replace it.
" {2 _ _$ _4 _9 m - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
1 p" a, r1 q* I6 a: f - )
: t7 L6 H3 P+ T* P1 t. o1 ~ - ; refresh sv_dvlist with new dimstyle.0 Y- Y, j* r9 e9 K
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
- ~8 Y2 q! [$ ` ~ - )
+ d% Q0 b3 a- j( p - )
8 }' W. U, y5 B6 e9 q9 ~/ \, ` - (if (not (null dimlist)) ; attempted to change dimvars+ w; n7 g: p7 z m7 p
- (ddimen_complist sv_dvlist dimlist dimtbl) i' ~$ o8 S3 R8 h) Y
- )
3 ?6 U# d' d H* l - ; Modify dimension text \% @$ n; `4 _" Y
- (if (/= dimtext text)6 u* n' R/ t" G- y6 G& U! @
- (progn
1 j" T3 j( L9 z- b2 V6 c0 t - (setq dimtext (if (= text "<>") "" text))/ B, {: \9 v: |# G) \2 H% l
- (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))/ _7 a4 f0 n) J! ~
- )9 l2 |0 [( f$ f9 x$ {8 x: d
- )! d; e; F# N( ~; o
- (modify_properties)+ r$ w6 E' W! ?% M' n
- (entmod elist)
+ h$ V7 D4 t" e1 N0 c - )
/ l* f. `4 W+ f, ~8 n9 Z ] M. s. \ - )& K. W0 h" M) S. v& ~' \8 Q( @
- (if (= dialog-state 4)( i4 \5 B: F; H+ H. t/ A# d
- (progn
5 U- n6 U; ?2 E$ v u( C - (setq ddimmt 1)
( n3 k3 a$ T, A6 U+ p; n& { - (if (/= dimsty stname)
$ f" o# j# E3 o6 X - (progn
& n1 l, v' U1 f# A" P - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case2 S" y+ [1 v* g, o0 E$ V5 z2 q; P
- ; doesn't have it.
) U( D6 p2 N: W* T8 y( T, _% F - (if (null (assoc 3 elist))
6 i$ M3 o) T8 k; b. [ - (setq elist (append elist (list (cons 3 dimsty))))/ T2 H1 X* S, }
- ; else just replace it.( R0 ~4 h' o, ~( r, J
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
- Y/ \7 B& S6 ~) [% d5 s1 j+ [5 ~ - ), j& j: U! }1 q' x F" d1 N
- ; refresh sv_dvlist with new dimstyle.
4 R& g4 [% U- w( Q6 X7 [" |2 g - (setq sv_dvlist (tblsearch "dimstyle" dimsty))
/ s2 c9 _! [% r' K+ E1 L - )1 M/ v$ a ]: r) j$ j/ E d
- )
- Y2 t5 p8 K3 u! l - (if (not (null dimlist)) ; attempted to change dimvars
3 f9 F9 Y* |+ ?* w" @" B" \ - (ddimen_complist sv_dvlist dimlist dimtbl)
* X7 q' v) T, f' \$ W3 F2 P - )
" h7 d+ ]; i! A - ; Modify dimension text6 F: a6 H8 z1 ~ o. I
- (if (/= dimtext text)
- L8 F- S0 _$ Q( M9 I - (progn
- E9 ?& K7 m, X: h - (setq dimtext (if (= text "<>") "" text))
9 l; _ [+ q( r - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))9 \# T! z6 H8 {* E# A" r8 }
- )
9 @ `9 `9 \! N+ y7 | - )( v" E; g$ {% S3 E0 I
- (modify_properties)
; K5 q4 Q# {; |* F" c+ Q3 E* y - (entmod elist)
; [- Y0 N7 a/ v" J9 m+ a - (safe_ddedit ename)
; y- J) @4 v: l6 ^9 w- A& }2 E - (setq elist (entget ename))2 J' H! N0 t. h& j# H5 n
- (ddimen)) W. n; O7 r2 m0 i0 w
- )( b! ?* L" n9 x' p4 v7 W$ i- m( Z! J
- )
7 p. m1 A( U2 L1 C0 X7 [# a - (ddimen_setvars dimsvcurset) ; Prepare to exit+ _- v6 y' ^. D- N5 R
- )
7 K& s. v6 m% A2 F2 X, |+ e - & x9 \) ]/ M+ n: f B
- ;;
+ B. C% O" K7 U, z - ;; Modify TOLERANCE
3 u+ d2 n/ P. b7 B - ;;
' M: Q- u5 m0 Y5 ]; m% q" R - (defun ddtolerance (/ a stname n dimtbl
2 U4 u0 ^$ h; E! ]8 W - dimsty dimlist dimovr sv_dvlist stlist dimtype) r$ c: Y" z2 S/ q( c1 L. h; O, a
- dimsvcurset)/ O) N" W5 m; x, i' }6 A o6 m( a
- (setq dimtype "DDTOLERANCE"& D# ^+ r" T# s6 Y! V/ D
- dimsvcurset (ddimen_dimsty_restore): p' G. b- s0 X0 C+ @$ g; E
- ). D" Z. B/ ^% e* F0 I3 H( Z
- (if (not (new_dialog "ddtolerance" dcl_id)) (exit))
9 J5 {, K$ r! z [ - (set_tile_props)
4 i; d! G, ~# T; D& V# S) F - (set_dimen_props)
; h; ]7 Z8 D" }0 q( B0 I - (set_tile_handle)/ g+ Q8 W; Q: S6 R' {6 d) A
- (set_action_tiles)
0 p- f- s2 A* o - (setq dialog-state (start_dialog))
+ B0 p3 A5 J! h - (if (= dialog-state 0). P# l9 o4 V% W
- (if (= ddimmt 1)
' }8 m( a/ {) \6 m6 H# I - (reset)( ^* v! k/ e9 [: k9 T
- )
! L" _3 ?2 y5 U( N - )
1 d$ z" b$ u" e3 \1 N' i9 g - (if (= dialog-state 1) g" E. R. t5 B: X
- (progn) B7 k1 P6 f" L9 }$ T3 E) q
- (if (/= dimsty stname)5 V6 h b$ p4 D4 Z9 G3 u6 h
- (progn
' o7 P1 }# r6 ^; E+ w - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case7 M8 Y7 h p5 x" n" s/ d/ ]
- ; doesn't have it. G5 f/ p; V0 x/ q: ~1 J
- (if (null (assoc 3 elist))
" [( @* X6 m0 ]/ B/ f, } - (setq elist (append elist (list (cons 3 dimsty))))$ ^5 _$ d( B. B
- ; else just replace it.) s* N) P# i9 C& @: V
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
) P/ ]. U p/ b, }% M9 o - )$ d( U( y7 w& G- S( K$ L
- ; refresh sv_dvlist with new dimstyle.& h. _( Q1 Y" J/ r( [
- (setq sv_dvlist (tblsearch "dimstyle" dimsty)): d. g( ]0 x+ \4 w
- )9 n0 n/ y9 `7 x) I& B
- )
W% S ?9 ~4 } G) X3 ~' m/ G M - (if (not (null dimlist)) ; attempted to change dimvars% Z; c& ^; P# K* O% i2 O
- (ddimen_complist sv_dvlist dimlist dimtbl)- a8 N3 @, O, m
- )9 O! c! m3 L& b: A1 _2 D( `6 p% `
- (modify_prop_geom)
4 e- Q' K( Q3 @. k* Y8 X6 a; ^% Z - (entmod elist). \5 q$ Z1 t$ K) o) y( X& }0 Z; }
- )6 M: g( j" L0 G4 }6 _+ t7 @
- )0 T6 L& m$ F, Y( e6 \) {2 W% ~& x
- (if (= dialog-state 4)# { T$ f/ |3 T9 ^! M
- (progn2 H- g* \) V& m7 t% r' u4 H9 o4 h
- (setq ddimmt 1)
- ?! F3 D" a) A8 _ G4 } - (if (/= dimsty stname)
) k, l, r1 \' _- n6 M; r6 L - (progn
9 V+ p6 _9 k2 V - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
. y) _) T2 P5 Y4 L5 G" ? - ; doesn't have it.# K+ z6 x; s" b6 o; i& p
- (if (null (assoc 3 elist))
* d5 ^2 r3 M# s" }7 T - (setq elist (append elist (list (cons 3 dimsty))))! C, T3 o. \$ `0 ]
- ; else just replace it.- J6 J: k l8 _0 R; k
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
+ Z7 p! N, V9 n# g3 u1 y - )
8 [$ Y/ ~- E; {% E# ^5 F' b - ; refresh sv_dvlist with new dimstyle.$ d* O7 `% t6 G3 n
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
# m& {( M, l0 E3 d. S - )# u) x* f. q4 H: e
- )
o {! W+ x3 o& {1 _: [- v( y - (if (not (null dimlist)) ; attempted to change dimvars
5 ?- m3 h* Q! \& ]$ k - (ddimen_complist sv_dvlist dimlist dimtbl)
, E( o2 G9 j' f, L - )6 J; |* n8 L' @/ r; }: A7 S
- (modify_properties)) I% d& J5 A ~" d; I4 d. N/ D
- (entmod elist)1 @6 u% o" b' `, S( U
- (safe_ddedit ename)5 v/ A- v1 l/ }: l( F
- (setq elist (entget ename)). O3 T6 C8 M; L/ R
- (ddtolerance)6 N9 ~# N }' K f) Z# z1 p0 L
- )
7 b/ G+ B3 K1 Y; W0 K - )+ q7 W4 I% a) {7 C
- (ddimen_setvars dimsvcurset) ; Prepare to exit
& g) g/ X1 N2 S - )
8 t$ ^8 n1 z2 \( D5 n) f( N - 0 k0 a% K+ t3 W( M* \8 T6 L- X1 a/ q
- ;;, F: Q u/ K1 [6 f6 b
- ;; ddimen_dlg - jump to ADS ddim module: G3 c. H6 e9 _) R+ f0 F% E
- ;;
d" U( u; v+ X/ t2 i. v* ]" r - . o9 K- E$ E+ b
- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)* s* t2 x! k/ S5 N9 l# B
- 4 O0 E& Q7 s/ X" \
- ; Jump to DDIM with overrides if any.
# w0 I/ A4 P8 F+ { - (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry
5 a# x2 [/ g+ n0 y) m( g - ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format: H% Z# H( P: f2 j- ?
- ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation
( S; ?/ Y# C1 i2 D: Z+ B1 o - )
# L! ]3 w! _5 D. d, E+ y - )' {; h5 S7 |0 y+ w+ q+ [
# [: b# a; t6 P, _, w& {- ;;, o: W, A/ V/ t, U& ]1 B
- ;; Dimension variables updated are stored as overrides.# K# L6 Z8 `* s+ \( M
- ;;! r* Y. X/ |$ H6 O7 ^2 Y
- P6 ], `5 Y" [- K% p
- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar$ @! y" z0 ?- p8 U; w
- dv dime commandIssued)6 n6 K$ Q. c( J- V6 D$ j
- ) m) t# c9 o3 }
- ; Here we skip the following first three items:! g V! T- J; V% ]* ?: L
- ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0)% h7 z6 A* @6 P! q1 D. C
- ;7 j/ F5 z( V! U* {/ ~. F# b
- ; The list comparison immediately begins with dimvar.
' t3 N, q) E" u# W. J - ;
' V5 t, A0 n: ^! x7 r - ; dimolist - original states of dimvars5 I; g* t' A& l) E# O
- ; dimnlist - new dimvar list which is of the resbuf's! Z+ y" S1 u y% z' }$ l
- ; dime - entity name for the dimension" o3 W5 @. h+ d$ R1 h# ^& k* d
- ; odvar - value of dimvar for the dimolist1 ^6 Q) M1 h1 Q- [0 q* f0 ~
- ; ndvar - value of dimvar for the dimnlist
- F- O/ v8 v2 V3 Z q- E2 h! K
; _5 N$ A4 m/ A; k9 z. k- (setq i 3
! v) U$ j& X( h" f - dime (cdr (assoc -1 elist))9 p& e: m# O* [- R$ R7 N ~. @
- ): w! l1 d$ i/ K
- (while (setq odvar (cdr (nth i dimolist)))
% q4 [: a+ F# P! s, q, t - (progn8 l( R7 k/ C4 L- N" g
- (setq ndvar (cdr (nth i dimnlist)))
7 j# Z' X1 T- y* x# Z3 N- ^6 h - (setq dv (nth i dimtbl))
+ b1 h( i) Q4 q- U4 D% n# P - (if (eq dv "dimtxsty")
! J4 k" \+ r) w, f: h - (setq odvar (cdr (assoc 2 (entget odvar)))1 E( [" H3 c9 g$ Y+ U! ~; ]6 S+ T
- ndvar (cdr (assoc 2 (entget ndvar)))2 O8 \4 X6 h5 r; f0 k7 t+ E
- )
# N9 F& a( w4 a0 q I - )7 q; t6 n3 v5 B+ b
i7 I# @/ J7 e- }6 j- ;3 t0 b/ ?" m3 ?- H$ {% Z6 R
- ; In order for DIMOVERRRIDE to operate correctly with string
- Y3 O0 H/ z& f7 p5 K9 F, i - ; based dimvars, we must pass "." versus NULL strings.
B- T/ s2 Y, H - ; In this case ndvar is the new dimvar value the user wishes
7 I& c5 h8 a) d, c - ; to update on selected dimensions.
/ I; L t9 U4 a! f- g. w% ] - ;, b4 R1 _$ w$ y
- (if (/= ndvar odvar)
, S* M1 z! ?5 x/ u& P; m3 Q1 O - (if (= 'STR (type ndvar))" m+ H6 p" ^, A+ @" I
- (if (= ndvar "")
- ?' }' K* X. s- O6 U - (setq ndvar "."))))- h8 K4 K$ X* d$ p
- & `% R0 v5 ^% B% i
- (if (/= ndvar odvar)
$ \- [ M2 ?8 _: z$ P, d - (progn4 X2 l! o% E2 \) L( l, G
- (setq dv (strcat "_" dv))
( u3 i4 [, c! E" k- K2 o4 U/ ] - ;; g1 @% ?/ L6 O% ?/ g4 b( R( V
- ; Start the dimoverride command
2 y# D+ s$ N! g+ I7 c2 L) m - ;1 j3 A( x9 ]1 E
- (if (not commandIssued)
3 ^4 f1 k) |6 F+ \ - (progn/ f# F2 Q$ Q6 G$ S3 @ c. n- Q
- (command "_.dimoverride")
& M3 ~. D5 f+ `" A+ ?# G9 i, k - (setq commandIssued "T")/ v4 \. r' ?; }. k& c# @
- ); { [3 [" n t% u: k4 E1 m* M
- )
" ?* [% A3 k+ X6 r% _, _3 g0 ? - ;. W G, y9 H! C1 T4 j1 j
- ; Issue dim overrides
1 A, W p3 i; I$ f - ;9 q5 ?. Z1 Z9 c0 a* S
- (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre"))* E$ f2 \1 [8 g
- (or (= ndvar 0) (= ndvar 256))
/ Z, Z, V$ N/ _% ?$ ^: ^ - )" o0 X% D' f$ }
- (progn u2 C2 x. i4 u% h6 H% ^
- (if (= 0 ndvar) (command dv "BYBLOCK"))
. g: ^2 Z' {+ W) y" {& K - (if (= 256 ndvar) (command dv "BYLAYER"))+ Y: b! Q- l" M/ S, ?5 t; [) I' n7 f! N( H
- )
6 p& s9 f" E9 A3 y& _ - (command dv ndvar)$ r+ D3 F1 Q) u. v$ d+ H
- )
' Y* u- U. X! q( R$ s5 W# @ - )) q2 B' m9 A7 q( ^2 X6 f8 f" ^ o9 ^
- )
# {* q0 t1 l! l8 k6 M - (setq i (1+ i))& y; s3 C5 F3 E6 l
- )- b* t6 N, M. o2 [
- )% f9 R) H% _ Q4 Z5 f3 I
- ;
6 @; v; r K: V) \. T - ; Select Entity and terminate command" m/ E+ ~* `/ V, E5 M% D* `
- ;1 E. ~ R! M2 ~! [! ]
- (if commandIssued
/ g9 \$ p5 G$ J - (command "" dime "")
5 y! F; c d- i; |/ W- Q" C' U - )
0 R8 F$ i. K- _7 q - )
[- k3 T" m) G |3 } - % Y0 {1 ~/ X' B$ u' s, H
- ;;" C$ J. S) l" u& W1 H) x
- ;; Get style name currently selected style name. p. w( Z: {6 n' v2 R2 j2 ^
- ;;+ H" I4 \* N' Z W: O& Q; n# y
- 5 Y$ A* T* {3 p' r" L+ y6 X
- (defun ddimen_style (/ dimsty)
; k9 x$ V3 Y% @/ A( n6 [ - (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)# S( o0 G& g3 e3 p6 e1 G
- dimlist (ddimen_getdimvars dimsty)- ]/ x7 L3 w" ^ R
- )' k5 V2 {2 N# u
- dimsty
/ u" N. Q6 l1 x7 O. U' K% e2 w - )- b& M, z& i3 Y h( \$ X
4 y' k- C; q1 o" K1 x* K- ;;
% J5 x3 R* j5 @8 K7 d/ s - ;; Set dimvars
( D: M4 z) ]1 U/ J5 ~ - ;;
2 X) W$ v3 w5 D4 ~! F) Q+ P( Z - (defun ddimen_setvars (dimsvcurset / dv i)$ w! R( |- n) n6 R4 F# M7 W' {/ m/ B
- (setq dv (cdr (nth 1 dimsvcurset)))
X7 W/ G# t+ l9 X0 g$ o - (command "_.dimstyle" "" dv)
8 `5 W: T! ?% \8 f - (setq i 3)
' s, Z6 G5 u' R - (while (setq dv (nth i dimsvcurset))
# P: B9 C* W* I. g6 j - (progn6 J( t" e- ^/ D2 G. A2 F
- (setvar (car dv) (cdr dv))
3 _/ [+ f8 n. T, Q# Y0 y6 ]' r - (setq i (1+ i))/ N; z$ B" U! {( q2 h/ F
- )
' p+ X/ \( u& b - )
8 w, f, F1 K; d4 }# e" \; P - )/ H+ V. e! G. |7 W' |" r9 K
- ;;
2 R' {! e: }1 n/ |0 n% Z% w - ;; End-of-dimension
?" E; D" n9 X+ L1 P" l - ;; ==================
5 R8 W: m3 ^1 E& ~! p- |
: [- F" L0 m5 b8 b+ N- ;;
3 C; D1 Q+ m( D. [; v J3 W - ;; Sub-dialogues for properties. Common to all object dialogues ^9 ?% x: a; @
- ;;' R) H9 [1 k3 s! i
- ;; This function pops a dialogue box consisting of a list box,image tile, and
7 d5 `( j5 s7 B3 G- z - ;; edit box to allow the user to select or type a color number. It returns& X( c- I% O( U/ c# F6 V. d
- ;; the color number selected.
! t0 S0 ?1 q, O7 b - (defun getcolor (/ old-idx colorno cname lay_clr): b3 O, i, ?2 L. @4 ]9 ^- d
- (if (= (get_tile "error") ""): A5 _% j; m- D. Z4 o9 j
- (progn# g' t5 G8 J. @! [+ h- x9 G
- ;; Get the color associated with this object's layer, for use0 y/ c' Q2 y! a1 W6 w: `- Y( ~
- ;; in the color swatch if the user selects color BYLAYER.# U0 b- r7 d W7 j7 h% D
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))3 `4 @( s1 W5 D7 g
- (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))& O( o2 A$ R# d ]2 y8 D; ?1 ]/ n
- (progn9 u3 W( `8 }2 L* m o# I- |
- (setq ecolor temp_color)8 L, c$ ~3 X9 H1 X3 G3 r
- (setcolor)
% S, w4 Q/ S) I1 X# c4 o. u" e - )
- S* J% r2 J; | P" K: H - (setq testcolor temp_color)
$ N6 J2 q5 m# H+ `3 S - )% k4 ]5 D( [$ F: g7 ]4 f% \' T
- )
0 \* h* v7 {, {6 \$ R - )7 ?/ V% u- `! k6 ~
- ecolor
W" X. c9 C& \$ }3 `$ u - )% n6 ~, o) i% x+ A# [
- ;;
* w7 x" w! h; |* M5 v( E" G1 [' J - ;; Function to set the color tiles.
( }$ u- _6 m3 b/ Q1 A- ? - (defun setcolor()
) w" `: }5 i9 W - (cond3 E, F' Y5 h& g* x$ X! A o
- ((= 0 ecolor)) P9 \! I& W( c5 o1 W! B
- (set_tile "t_color" "BYBLOCK")
# E& f) b, B: F8 D; D - (col_tile "show_image" 7 nil) ; show BYBLOCK as white4 ^8 f; [# c: S7 z9 t
- )
6 d5 R+ [4 T2 a; ? - ((= 1 ecolor)1 C' F: W7 e& V K; D
- (set_tile "t_color" "1 red")
. c K" k* l6 o' r - (col_tile "show_image" 1 nil)
9 V# C% y \0 T- N5 p, ] - )$ T+ A+ z' Q, c( r* {. A
- ((= 2 ecolor)6 {" G/ }# e* C% t6 F) j
- (set_tile "t_color" "2 yellow")
. S' D' v3 X, \4 {, x - (col_tile "show_image" 2 nil)
, r9 o" t1 }+ P - )1 P* J& L) Y% {4 K2 c
- ((= 3 ecolor)
9 o/ M) A2 _- v6 p" J7 U - (set_tile "t_color" "3 green")
' Q1 k; P; ?* {# { - (col_tile "show_image" 3 nil)
* h; G4 l: y* ]! i - )
0 U8 F, v2 d6 O2 d# V - ((= 4 ecolor)0 R7 {) N! ^( Q. t, q# K5 T- R
- (set_tile "t_color" "4 cyan")
+ G% E; {3 R, M- J - (col_tile "show_image" 4 nil)# F' c8 q& E( f- r0 Q8 ]
- )5 E/ N! B1 u# H4 `2 ^
- ((= 5 ecolor)
' j- R. l% k5 B - (set_tile "t_color" "5 blue")% w; e( C7 W: m
- (col_tile "show_image" 5 nil)( X# B! R0 a9 u i$ }* ?
- )2 h: |& c d* a: b
- ((= 6 ecolor)
5 g3 ]2 J- p# R& y# a - (set_tile "t_color" "6 magenta")
+ Y' H2 T4 G7 n# X4 U' c4 l7 u - (col_tile "show_image" 6 nil)
# i# B' Q) X) }; a - )" n/ F2 w y! b% i( o
- ((= 7 ecolor)
" l" u/ U1 ]5 F0 T+ ]2 N) b; w( B - (set_tile "t_color" "7 white")
7 a8 }6 b9 k6 H( |: O' x5 K4 E# l+ S - (col_tile "show_image" 7 nil)
8 M9 A6 C/ k! g$ @5 W ] - )6 y* {6 X" \) T2 b1 A) U8 t
- ((= 256 ecolor)
' H y$ {- D! i; h9 x. n A! j - (set_tile "t_color" "BYLAYER")
8 h" s- x$ U! u - (col_tile "show_image" (bylayer_col) nil)( x! u$ D5 y( g7 N: I& W* w
- )
; C- R$ l/ ^; a# @- F1 N- S - (T
5 O( x' j: p0 C! Z! ~ - (set_tile "t_color" (itoa ecolor))6 ]6 x5 P, ` [3 H q" M3 n6 Q
- (col_tile "show_image" ecolor nil)
`9 G% W, A# y9 q" u - )" |- V* `* ?. _: `
- ) O& A+ w# K6 E1 H P
- )" o& Q& w" u5 `2 n+ s) z
- ;;' I5 ~/ t E! k# y8 p0 U/ o- g
- ;; This function pops a dialogue box consisting of a list box, image tile, and7 `% Z, T) Y1 P
- ;; edit box to allow the user to select or type a linetype. It returns the
* N7 g" [2 K7 I' g" ?1 T5 F1 ` - ;; linetype selected.% f4 F- [- `3 S/ o) G2 n
- ;;
) O) t5 F! ]: c) S) p* ~" B - (defun getltype (/ old-idx ltname)
* v% S; i) O8 s1 _" H - (if (not lt-idx)
: S# c+ L( t% [ - (progn
1 u( l( w: [8 I8 J! O( m - (make_lt_lists) ; linetype lists - ltnmlst, mdashlist: E. S$ T: c( U; G& m. V5 \' o
- (cond
# U' F& o6 ^0 A - ((= eltype "BYLAYER")5 I) d3 |6 a$ _# i, X: S
- (setq lt-idx (getindex "BYLAYER" ltnmlst)))
& B* A+ r6 J, ]( h0 ^. v - ((= eltype "BYBLOCK")
$ g2 N+ Z5 I: J - (setq lt-idx (getindex "BYBLOCK" ltnmlst)))# ^5 J! w% M; r8 K- z
- (T (setq lt-idx (getindex eltype ltnmlst)))
' @' Q* ?5 Y8 u; r" n1 ]+ w - )# Z, T- u0 p9 c2 [
- )
- p2 p% Q6 L' _3 u/ X- B3 R- E - )
% |0 `/ S3 X, x0 j+ c - 7 @7 N4 l1 _9 @5 A
- (if (= (get_tile "error") "")
5 ^: k9 a2 S% ~3 ^ - (progn
9 a6 A* Z: i+ {8 a# t6 M - (if (not (new_dialog "setltype" dcl_id)) (exit))
4 u! t6 I/ t+ c - (start_list "list_lt"); b: L5 j2 p+ M) P. O
- (mapcar 'add_list ltnmlst) ; initialize list box3 p0 }: A9 p$ p$ y3 `
- (end_list)
* q+ J8 ^0 c$ G9 f1 k - (setq old-idx lt-idx)* i7 Y7 x, F# I' g
- (ltlist_act (itoa lt-idx))0 Q7 F; }' {) V3 y; l M1 f0 ]& O
- ! W$ f; b6 a+ h9 d1 k, a
- (action_tile "list_lt" "(ltlist_act $value)")
' X2 |0 q' q0 j( u - (action_tile "edit_lt" "(ltedit_act $value)")
/ U* {1 m. ~7 u - (action_tile "accept" "(test_ok)")
' c) n7 Y+ o1 F$ S - (action_tile "cancel" "(reset_lt)")
! {. A3 k8 x+ L& J9 k& w4 u - ) G# [* a: T( r3 J$ F* y& B7 Z
- (if (= (start_dialog) 1) ; User pressed OK
( j! n% C; p9 G6 Q+ x f - (cond, h2 J+ }2 c% G# }! f
- ((= lt-idx 0)
- H! j! n# b j0 B* { - (set_tile "t_ltype" (bylayer_lt))
5 B0 n4 v- J% P8 y) w7 K - "BYLAYER"
" ?* O4 W; I& I. J - )
' o+ `/ v3 i. z) v - ((= lt-idx 1)& o6 U0 A: @6 x* C
- (set_tile "t_ltype" "BYBLOCK")/ u6 D. n0 v( y! {" {- q
- "BYBLOCK"
l/ B: m5 @, y/ Q# K( q - ). |* ]& C$ a! Z1 k1 v
- (T (set_tile "t_ltype" ltname) ltname)
# U& I z g" E" K" [3 J7 b - )
& E* T3 \8 X( f1 v2 n4 N - eltype
. j7 ]/ ~0 p$ F6 R, C2 [ - )3 k0 l! ]9 c- c* |
- ): p1 t r5 @; D- w
- eltype) A, ?" T# w: J7 r0 W% [( }) h( ^
- ). Y. q. d' O+ q
- )% `# k! R K6 p- l: S/ Y
- ;;
. e; ~9 i+ T* G- L5 w - ;; Edit box entries end up here
& A7 S, y& ~ D6 z3 f! } - (defun ltedit_act (ltvalue), o3 O# V1 ]; V# T* s
- (setq ltvalue (xstrcase ltvalue))
0 N, \+ k, Y3 N3 \, n$ `; N - (if (or (= ltvalue "BYLAYER")
+ e& M; t: m) w8 b7 |0 f6 \* Z" i - (= ltvalue "BY LAYER"))
/ T9 k% {' y* P6 | - (setq ltvalue "BYLAYER")
7 a* z7 M `' x: L. @! d$ I - )( U) V* ]7 G$ g
- (if (or (= ltvalue "BYBLOCK"). m) U4 X+ t& B+ E
- (= ltvalue "BY BLOCK"))
" m4 H' L5 f0 R* t! R - (setq ltvalue "BYBLOCK")
( |. E5 P2 |# n: R4 T, j6 y - )
+ z; ?% n6 H, o9 U# l* q - (if (setq lt-idx (getindex ltvalue ltnmlst))
m5 D$ f ^% c0 N! j, Z5 q! _7 I - (progn! Y) V }+ N( C% R Z1 D
- (set_tile "error" "")
5 h- r" m; h, X! b# q2 [ - (ltlist_act (itoa lt-idx))$ o4 S7 B$ m. }, _- v) v! w; x7 l
- )4 T/ }: @! p) C1 j" A) ]9 V7 G; |" S: N
- (progn
) X% A0 I9 J, @7 d - (set_tile "error" "Invalid linetype.")
! \" c2 H" j/ U7 A | - (setq lt-idx old-idx)
- a0 O7 V/ q; _/ R: e - ;; (mode_tile "edit_lt" 2): k2 J7 P: @; [0 R/ T
- ;; (mode_tile "edit_lt" 3)
* J( N. G9 Z( D - )! T/ ?- y' w8 m. v" s: \
- )
" M% S8 d5 P# e) O2 R4 J/ E - )
) L3 J B4 n/ v# H- y6 H. _+ F7 ?; _ - ;;' d3 z7 f. q& v! s/ \$ Y
- ;; List selections end up here. Update the list box, edit box, and color: d% R" a+ C, G3 G' q
- ;; tile.
5 w$ q* J. P. g4 C/ r, G. p - ;;: J e) Z+ [) `0 F" z! |% i" q
- (defun ltlist_act (index / dashdata)" c9 P D- }/ ?" L2 P2 T4 c
- (set_tile "error" "")
6 O W) R; E2 H& L - (setq lt-idx (atoi index))
; o T3 X0 ^+ \( H$ b$ L - (setq ltname (nth lt-idx ltnmlst))5 v& s' n; L+ y5 A
- (setq dashdata (nth lt-idx mdashlist))
* v. b8 p3 z |4 ~ - (col_tile "show_image" 0 dashdata)
* z/ ]' G* J7 `# U - (set_tile "list_lt" (itoa lt-idx))) h: m" W. e# Y# \, J* ~. Q3 a
- (set_tile "edit_lt" ltname)
9 g" M: l+ R# R0 b% S: c, e) } - ): E( Y2 {& u$ ?
- ;;
8 `2 W" j& M& p) G6 Z. J - ;; Reset to original linetype when cancel it selected9 D: _0 X$ c9 r X$ E7 ?
- ;;+ W" y2 A: w! {4 J4 {
- (defun reset_lt ()
# I# P Z5 F1 D! e - (setq lt-idx old-idx)
) @ M4 m' n/ c: f* [" a - (done_dialog 0)
7 O# q$ S5 v( O. y5 h6 R L: y - ); y1 y+ N2 |: J) P R" m
- ;;; u+ b! E$ p5 [" o* p: V. _
- ;; This function pops a dialogue box consisting of a list box,image tile, and: p: B2 D( V! l
- ;; edit box to allow the user to select or type a layer name. It returns the9 H8 L. L" B6 |5 A( c
- ;; layer name selected. It also has a button to find the status (On, Off,
9 W# u8 X4 Q" b; a" x - ;; Frozen, etc.) of any layer selected.5 E0 E( i9 N' v
- ;;
N6 P& q' j" N - (defun getlayer (/ old-idx layname on off frozth linetype)! L% C, `6 w( z( X
- ;; Create layer list the first time the layer
7 s# [% U, V- \" t) d1 F - ;; dialogue is called.& @4 c _. p2 ?* w! h
- (if (not lay-idx)
) w+ ~. H. O& i# }1 t1 I1 r5 c( C - (progn: K" @, q% q% M; Q. |
- (make_lay_lists)
3 f' a) p5 O6 z3 W1 o - (setq lay-idx (getindex elayer laynmlst))' l4 d7 }9 B6 _: H
- )
. @5 k$ g3 k$ O2 E$ g: j" n; J - )
' F1 N* @! v2 ^2 D4 T - . h. I q* J; v. H
- (if (= (get_tile "error") "")' J6 B) w) a J) X
- (progn; a/ O& I z" r6 L2 a
- (if (not (new_dialog "setlayer" dcl_id)) (exit))
( `3 Z+ b7 u9 M0 F' Y& p - (set_tile "cur_layer" (getvar "clayer"))/ _7 W( Z- G. H
- (start_list "list_lay")" V( O. p% |( N u
- (mapcar 'add_list laynmlst) ; initialize list box
% Z/ J/ \+ q$ k3 q9 g! P - (end_list)
7 c0 w2 d" Q4 D! s) ^2 N) \ - (setq old-idx lay-idx)+ }7 t- `6 f5 n0 `6 W
- (laylist_act (itoa lay-idx))
- M1 c/ r2 E7 U - (action_tile "list_lay" "(laylist_act $value)")
' z- r! S0 w3 A$ i2 i! H: V; f - (action_tile "edit_lay" "(layedit_act $value)")5 U5 ?- ]& L, \# d. t" A- x
- (action_tile "accept" "(test_ok)")
2 K* r3 _$ e" P7 y3 x! g& L; T - (action_tile "cancel" "(reset_lay)")" \6 z+ c C1 @/ P- h2 `' I+ _- ?
- (if (= (start_dialog) 1) ; User pressed OK
, `3 T& r; H; B4 g - (progn
$ A2 A# V1 }8 s: T* H3 F - (set_tile "t_layer" layname)
' R6 _: J: z" ?" R0 H8 |3 D - (setq elayer layname)
9 q; ~ g4 r9 m% L; b1 f& Z - ;; If layer equals bylayer reset color tile
4 `- B; |9 f% t, q9 k4 E - (if (= ecolor 256)/ @+ \1 b: E9 P# p h
- (col_tile "show_image" (bylayer_col) nil)
( G" l; N& x# l+ ` - )2 w1 q& \+ t9 P3 P
- layname
' m6 c: ]) J9 d2 H9 m - )7 C' e! |) ~5 t$ ]$ v
- elayer) L0 l/ k( M3 b% L6 y
- )2 ?+ z4 @7 Z# L! r4 U
- )
5 S; Z6 W4 F$ K' h+ T% V# ~7 X0 s7 r - elayer+ x& U6 I2 p0 b) W$ N7 Y/ G
- ); N3 C7 p- @9 g8 T1 R
- )1 }; ?" b# l) \6 ~7 w. ?$ J( x
- ;;
7 P! o* z3 D- f; @7 e# F - ;; Edit box selections end up here. Convert layer entry to upper case. If
+ i, r) f* P1 Z6 Y' N m - ;; layer name is valid, clear error string, call (laylist_act) function.- R g- w* W! J$ ]1 G% x
- ;; Else print error message.
7 g6 ^; D ]' L% I - ;;1 W) n) W. b' S6 P
- (defun layedit_act (layvalue)* X7 |8 s3 s& O( T& P
- (setq layvalue (xstrcase layvalue))
; o* L, N, H& L" N - (if (setq lay-idx (getindex layvalue laynmlst)). _5 W+ ~- I# }; y
- (progn$ r7 C9 P+ |+ q- v5 d: `
- (set_tile "error" "")
; ?3 Y8 |% u; q9 m7 E& M6 h3 i - (laylist_act (itoa lay-idx))
o5 u1 j% w- B( D' k - )5 E. \7 @( Z+ W' q
- (progn" x3 O @+ x) |# F. {. M
- (set_tile "error" "Invalid layer name.")
4 Y) y- |* M# R- }/ F: d7 J0 { - ;; (mode_tile "edit_lay" 2)
) W4 X4 j# v( z - ;; (mode_tile "edit_lay" 3)
2 I3 S" i; p6 J - (setq lay-idx old-idx)
K E8 e! M1 v* W - ); |+ K6 ^# Y) l
- ). t+ ]) w4 t; y9 f
- )% Q" I: p/ c. Z# Z3 H$ |
- ;;
: p: F- u y: {. ]& F6 ^. L - ;; List entry selections end up here.
9 S+ P( Z6 W6 Q6 {' m. J - ;;
. m8 ]4 `, w4 @! o; ~7 o, |2 V - (defun laylist_act (index / layinfo color dashdata)
) D E9 }5 s7 i9 D J; a - ;; Update the list box, edit box, and color tile.# K5 `" w2 j" U8 X, S9 \
- (set_tile "error" "")
$ P- {) K4 Q& U9 u: U, M. A - (setq lay-idx (atoi index)). [2 c% h+ N9 g) z
- (setq layname (nth lay-idx laynmlst))# c* G( n( g' F- _
- (setq layinfo (tblsearch "layer" layname))! r6 y3 C- d+ F! H R
- (setq color (cdr (assoc 62 layinfo)))
B: I) a6 E6 V6 L- H" d/ f" U3 U. V - (setq color (abs color))
' p+ w7 Z8 k0 ~3 E - (setq colname (colorname color))
/ I3 J1 Q Y6 a+ C) `3 v - (set_tile "list_lay" (itoa lay-idx))
* U2 j; W& Q) i7 `* b$ h9 w1 M' n, @ - (set_tile "edit_lay" layname)$ ^5 K) v' ~8 m
- ), E/ G7 p- o" R7 k
- ;;
! [2 v8 N. o: \' O8 b. x - ;; Reset to original layer when cancel is selected.
6 t4 G& ~: H( h, c - ;;
. r# O0 a/ g* C0 |9 @ - (defun reset_lay (), E9 K! K5 S) e j& r5 N3 g
- (setq lay-idx old-idx)
8 G. y1 x) f# e B! B; @' ^ - (done_dialog 0)8 S- D' r: F1 \) z" ]! O) _8 y, {' L
- )
# _% P6 R: D' P+ S - ;;
5 _2 `0 \" ~) x( F+ P2 m - ;; Checks validity of thickness from edit box.1 b# ?. z0 v E) t& g& X K
- (defun getthickness (value)% C6 k( L1 P8 R9 c6 [
- (setq ethickness (verify_d "eb_thickness" value ethickness))
4 ~1 y! y9 W, }# D5 z B1 d - )
9 C0 @6 T) ^0 M- G2 N - ;;
; L t, L" S1 q& [( J - ;; Copy of (getthickness) for ltscale. If more, make this function
. L7 _5 M+ w$ G: }5 j/ i* R" @& m - ;; generic., E. R: _' J- Z3 k3 \
- (defun getltscale (value)
" n% g: a! T8 i5 X ]7 ~ - (setq eltscale (verify_d "eb_ltscale" value eltscale))' A' ?, ^) A" h7 V H9 ]4 |5 O' G
- )( Q: E4 O, M+ G9 a! `% l
- ;;1 d8 E; h5 Z8 _1 E( A7 F" r* U j) ^
- ;; This function makes a list called laynmlst which consists of all the layer' g; e7 f' N1 N5 q/ L
- ;; names in the drawing. It also creates a list called longlist which
7 k8 |5 t# x( W9 e) | - ;; consists of strings which contain the layer name, color, linetype, etc.
1 P- V1 o; g% j( L. c4 Z- H - ;; Longlist is later mapped into the layer listbox. Both are ordered the
! I$ e0 ^4 Y, x% l- M - ;; same.
, o1 F# g% }7 s5 N' k" |+ B' ` - ;;' E. G( J4 o% U3 |* z2 m
- (defun make_lay_lists (/ layname sortlist name templist layer_number); `, `( K, a8 S0 p, }
- (setq sortlist nil)
+ W q# u. o- x; x, f- D - (setq templist (tblnext "LAYER" T))
9 U* ?9 m. a8 b* F. v( J - (setq layer_number 1), J$ e3 G4 U" c$ D
- (while templist
- x& S4 [$ J9 J$ O$ I3 ^3 ~ - ;; No xref dependent layers, please.$ l* i- h1 [& U5 n$ E+ d8 E
- (if (/= (logand 16 (cdr (assoc 70 templist))) 16)
/ T2 X; b; S) M* M5 e - (progn, h5 ^- {3 \6 x5 _% N& B" E& P
- (setq name (cdr (assoc 2 templist)))$ Q1 G' N% d; [) X+ o1 e4 Z
- (setq sortlist (cons name sortlist))$ u' I& k( N" w: P# @# D3 G
- )) f. L- S% l9 j4 i1 O% S, x
- )' D4 B: ?3 w9 r. h
- ; Get the next layer.1 m! a# B0 s$ Z* l' a4 W! L
- (setq templist (tblnext "LAYER"))) {/ T1 g5 J! c+ m- \8 T2 m
- ;; Not dead message...
9 J- h+ z7 d0 x' U8 b, G1 C - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))
: \, S5 ]) j! x' Q1 z - (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
' x5 b' Z9 ^' i8 a8 S1 j - )
" m" E4 ^: I' z2 B2 M - (setq layer_number (1+ layer_number))2 Y6 E' ?9 _! {8 V C; b
- )
) f6 {& D( @' q: I" T" O - (set_tile "error" "")/ c8 Z6 x: N; Z* `
- (if (>= (getvar "maxsort") (length sortlist))# Y2 k; c: V2 J8 b/ P7 y( Y
- (progn
# j. L, _! D$ H/ E( @4 j - (if (> layer_number 50)
2 s. N4 @# R1 S, s4 u- ?) i- u - (set_tile "error" "Sorting...")
; e& k2 g( |- G3 a: z - )/ i' H& T* C7 W
- (setq sortlist (acad_strlsort sortlist))
" E# C- L0 D- s7 g - )$ n8 H, R a: i( a
- (setq sortlist (reverse sortlist))3 I# k; r; L( P0 ?% ~- o1 k
- )
. `; v5 s' Y5 ~ - (set_tile "error" "")
7 I D; _" u2 t+ t' @* z - (setq laynmlst sortlist)
) c( y$ v! @. \+ q6 }# j0 D - )& T- i" L7 o4 v! o
- ;;; C# ^- e- ?- y* q7 J
- ;; This function makes 2 list - ltnmlst & mdashlist.
+ f2 W/ D6 Q7 P( L - ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist
& Z& V. k) O% J7 E' W( J1 m7 U - ;; is list consisting of lists which define the linetype pattern - numbers9 i0 h2 I6 w: }
- ;; that indicate dots, dashes, and spaces taken from group code 49. The list6 q( D- N6 X, y* q4 b* Q
- ;; corresponds to the order of names in ltnmlst.: q/ q+ d. E+ u% b! w
- ;;2 C) K# l/ j$ `0 f0 N
- (defun make_lt_lists (/ ltlist ltname)
+ }) ]0 x7 t0 n - (setq mdashlist nil)% S' i- P- O3 H3 b' u4 W
- (setq sortlist nil)/ N: S6 {) Q& ?) F
- (setq ltype_number 1)0 [' M7 l4 w6 y t) ?* m
- (setq ltlist (tblnext "LTYPE" T))
2 A0 y$ U7 ^9 F. u# W5 n9 j1 R8 U - ;;(setq ltname (cdr (assoc 2 ltlist)))
# M, _% A3 Q E- D7 M - ;;(setq ltnmlst (list ltname))' A6 W: J' f: L2 X. _$ W: j
- (while ltlist
# g, e- N/ \" i; E - ;; No xref dependent linetypes, please.( \/ W4 |2 R( m; R. X1 |' M- d; D) D
- (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)
$ G+ A; \ E( z& K2 m, V - (progn: ^( [- }9 S) {! s. d( s& H0 w
- (setq ltname (cdr (assoc 2 ltlist)))
# a: Y1 d1 @# S2 C3 c - (setq sortlist (cons ltname sortlist))
# ~* ~. \( z8 r8 { - ) K$ r4 T$ _3 _/ D' k
- )0 u* M0 u( |$ \" o
- ;; Get the next linetype.
' v! p# O/ x% L" R) k, t - (setq ltlist (tblnext "LTYPE"))
d. G! Y. F+ a# J. a3 b! ?8 m - : }2 Z3 ^7 U9 C* ~8 z8 x2 ~
- ;; Not dead message...2 X7 B8 n3 q6 u) H7 x
- (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))
0 h8 v* Z$ L4 G9 E8 U" o - (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))
. a: f$ h: i0 M, ` - ): ]5 @; K4 E0 |% Z# [" u, m) B
- (setq ltype_number (1+ ltype_number))9 G' X8 h; D; d! h s
- 5 M H9 b4 V f" I2 Y- x5 e3 V) w& _) m
- )
; U- |2 n4 ~% p8 P - : I' x4 Y" [7 W! T" K
- ;; Remove Collecting message." y: B$ U' I9 d3 l' ?
- (set_tile "error" "")+ _$ g* `, V. j$ i" H) q# o
1 O0 e! n6 q) L7 a- t0 b) E1 {* t) n4 ^- ;; Sort based on maxsort.
: r7 x, Z3 @, t Q+ s+ d - (if (>= (getvar "maxsort") (length sortlist)). a# ]2 f% R3 k# F
- (progn4 T+ `& C8 i$ J, G: u- m$ M
- (if (> ltype_number 50): a* \6 D6 m9 q7 Y4 ]' Y
- (set_tile "error" "Sorting...")
; Y* Q* u6 G4 {5 r - )$ z! E* ~- }" b. u: b+ W
- (setq sortlist (acad_strlsort sortlist))! r4 v* ~/ u S, e: H6 @
- )# [1 j( V- X2 R3 _! X4 x
- (setq sortlist (reverse sortlist))9 B7 c9 a2 l& d6 K7 V. k
- )' b- ^& F+ i& i! B* @! X6 T3 l% J
- (set_tile "error" "")& N3 F- H5 ^) M2 C3 S1 h" ~
- (setq ltnmlst sortlist)
! S" H4 C% q4 g8 x* s% a U: V - 5 U# O: h6 {3 N0 m7 L- S/ R, Z
- (foreach ltname ltnmlst& l8 N o) ]4 u' p# w* I+ j
- (setq ltlist (tblsearch "LTYPE" ltname))
+ d3 }0 m' W5 l! d1 o9 d - (if (= ltname "CONTINUOUS")
. m( F3 e8 w3 L - (setq mdashlist (append mdashlist (list "CONT")))9 l' t2 Y+ [, f/ L8 ?
- (setq mdashlist
8 s# f" d1 V! i5 ~% U. C0 @ - (append mdashlist (list (add_mdash ltlist)))
2 b. |1 @) a; r - )" K. Y" n$ l- @0 F
- ), I, A4 O# j1 c
- )& S: u7 L/ I3 J+ J& O- m" W% u
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))( w x1 x/ `: w! S5 L. r( d" V
- (setq mdashlist (cons nil mdashlist))8 F. Z8 R) |0 S# u$ {0 {
- (setq ltnmlst (cons "BYLAYER" ltnmlst))4 x. D7 ^' L0 B Z
- (setq mdashlist (cons nil mdashlist))9 e. l J& P$ M
- )
y7 T1 V! k+ X5 Y. z! P. Z" M - ;;
& ^% M% C3 v! s. \0 P3 H: ` - ;; Get all the group code 49 values for a linetype and put them in a list& A9 q* g# n2 {, b
- ;; (pen-up, pen-down info). D. y, p1 c" L5 ~5 o) }1 f
- ;;4 n* Q! t( D& k8 l7 x3 s1 X
- (defun add_mdash (ltlist1 / dashlist assoclist dashsize)
7 ~' K1 h5 t! J/ T - (setq dashlist nil)
, ?' \, U1 p O' p1 l; A - (while (setq assoclist (car ltlist1))- h7 l4 G3 O; V: V# p
- (if (= (car assoclist) 49); m# ^8 Z6 d6 s2 T0 _7 V
- (progn
, i$ l3 N4 f! t2 M6 S1 K* K - (setq dashsize (cdr assoclist))
' j3 e! N6 z" f% z - (setq dashlist (cons dashsize dashlist))/ p. _9 \' m1 O, T4 e
- )3 l5 a/ |, N9 Q& P; ~
- )
* y" q E$ F0 {# N& @ - (setq ltlist1 (cdr ltlist1))
& e8 }' ?# ~2 K) W o - )+ i9 i# T; K. {/ ]; Z( x. P9 l6 z- {
- (setq dashlist (reverse dashlist))
6 H t' X P7 e3 S - )# d; g- g& a. a1 v* ?! _
- ;;
# I7 j0 T8 ]; a3 M' G z - ;; Color a tile, draw linetype, and draw a border around it
@! O, n" F% k, E8 }9 ^ - ;;
0 F+ S3 I! ?/ U0 a) X5 _ - (defun col_tile (tile color patlist / x y) t- F0 _9 e; N/ Z- Y/ @+ _# D
- (setq x (dimx_tile tile))1 Q9 x" }* X f; n; g
- (setq y (dimy_tile tile))4 l9 f( N \% d8 P$ w
- (start_image tile)
3 N4 f* M4 A$ y - (fill_image 0 0 x y color)4 i k+ c: c; ?$ Z4 h
- (if (= color 7)- g! N6 J6 p& M/ R# Y& G2 F
- (progn
+ X% ^+ G, Q, D, d7 I2 P C8 \& a - (if patlist (drawpattern x (/ y 2) patlist 0))
' y* [3 @- P) i9 T# G0 _ - (tile_rect 0 0 x y 0)
9 h: Q' z6 x! B8 v - )
u. b; b* X6 E* Q& |& U - (progn
- t- G' y2 z8 T N6 V9 R0 S - (if patlist (drawpattern x (/ y 2) patlist 7))
4 F9 Q9 {' a( w, Z+ T8 c - (tile_rect 0 0 x y 7)
! `3 h8 R8 o& r. H( C c9 [ - )
; ?: Y% J3 n- V2 l M: ] - )
5 `" u* v7 ], e1 [+ U6 Q - (end_image)
' u% [; i0 ]+ k. H - )* U4 ~, j S4 v1 c v9 \
- ;;
5 {6 a* t# H0 S K - ;; Draw a border around a tile
; L" o }, i+ K+ v( i - ;;
4 J0 K# C0 w$ ~6 E( X - (defun tile_rect (x1 y1 x2 y2 color)/ L( ?1 Y4 C. z
- (setq x2 (- x2 1))
) j0 {' \* l0 R, _' h- t2 t8 ? - (setq y2 (- y2 1))9 J9 L; L% g2 ~! Z' \8 q
- (vector_image x1 y1 x2 y1 color)
+ u/ X, a; h7 D) Y( A4 @ - (vector_image x2 y1 x2 y2 color)- U' F3 z6 j: ~
- (vector_image x2 y2 x1 y2 color)8 f9 Y) S8 P0 [! M! i8 v
- (vector_image x1 y2 x1 y1 color). ^2 X2 D, L8 A6 t2 l
- ); L' H) ~0 M9 ]" Z5 O* m+ _4 g6 Y' u: u5 B
- ;;
/ y. p% v, D9 E' E* Y6 M - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
, l! L( ~* F% r% w - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a8 U( O8 t5 u3 E _4 r: m4 V2 r% w
- ;; list of numbers that define the linetype, and color is the color of the8 \8 o3 {7 W, [! F# I$ K
- ;; tile.
/ e6 f# j5 \' Q. D2 F% O4 L - ;;
7 C6 c# [4 q4 |) R - (defun drawpattern (boxlength y2 pattern color / x1 x2* ?' y4 g7 C! S" ~3 z$ L1 H6 i
- patlist dash)
: I+ @& v3 ]6 y# y - (setq x1 0 x2 0)
' O& Y$ ^4 n- \ - (setq patlist pattern)
' z5 Q6 [9 }- Q+ m - (setq fx 30)" ~) n7 V, \3 o( l+ z5 T6 V
- (if (= patlist "CONT")
- R: ~5 }' B n - (progn (setq dash boxlength)
& a! C$ ]( V- Z$ X y - (vi)
* m3 F# E) p3 e6 R8 x7 i# ~ - (setq x1 boxlength)8 K* A n: l. v. a& t6 ^
- )
' X# t& _: {; N! @ - (foreach dash patlist% g, {+ ~. e. \4 {" j2 c* d
- (if (> (abs dash) 2.5)
) a) P/ y5 w7 x6 [+ C6 t, u - (setq fx 2)
9 k r. x0 |- U( z" X3 P" @ - )
# ?! E5 [; Y! x# j - )
" q9 z& O9 G( ?6 T @. m6 u - ): _/ a$ Q% K3 y: V$ }3 @# k: H
- (while (< x1 boxlength)
0 V0 F; _0 m; R9 v - (if (setq dash (car patlist))# D8 g) q& N2 U8 z4 U( B
- (progn
! [1 ^; I5 F% Z( n" s - (setq dash (fix (* fx dash)))
( t/ W8 Z# I9 u1 K2 r9 F - (cond
! ]; k# x# ]# V( A0 a) Q - ((= dash 0) (setq dash 1) (vi))
( Q! `1 V; M7 C$ x7 H - ((> dash 0) (vi))
, a0 |/ p0 m A3 ]# k& q& l - (T
0 `, |5 x" [+ N" S - (if (< (abs dash) 2)
* n/ t+ n/ W v% ` - (setq dash 2)5 f7 q U% Z$ o
- )" b9 K1 ^+ u% _
- (setq x2 (+ x2 (abs dash)))
P# @2 Z6 n: B9 F9 E* \4 `& ~ - ): d+ g, y; @4 u! B. R% |- W
- ): q% ]& s- @9 s: k8 ^0 F5 a F) D" [
- (setq patlist (cdr patlist))
: j6 d+ m1 `8 V; S$ h - (setq x1 x2)
. D- A" S( S z* f* }- } - )' Y' j: M+ P7 f, O, ]# ~
- (setq patlist pattern)
; W2 ?/ o" I- v7 A* b - ), f2 |) a' T2 y% L
- )6 H3 X& y) d3 E* |5 d" K0 o' A( @
- )- F* G! n; B1 u. w5 p, D# h
- ;;4 b: I2 w6 G# X! d+ J, R
- ;; Determain state of xclip! i9 u5 K7 R, L% G: D! C4 _
- ;; Returns the group 71 value of the spacial filter dictionary.
" a. m+ C/ _( Y* S& S( W - ;; If the entity doesn't have a spacial filter dictionary, this
6 j- K& V) }0 ]# Z/ K - ;; returns 0. If it does it will return 0 or 1 depending on the: g0 c2 O' Z* U2 }
- ;; current setting of the state of the clipping visibility.
3 t8 ]4 \ U6 n' K7 I0 |* I8 \: Q - ;;1 x. u% e! Y' N; o# T7 c! K
- (defun xclipon(elist)- ]9 D/ C, Y6 Q; G9 b/ {/ m" j9 w, M
- (setq hasclip T)
, R- X Y$ l7 T' I& y - (if (/= (assoc 360 elist) nil)
3 p4 O( @8 H" b+ |, E5 } - (progn
0 _ L) q9 I; j _ - (setq tmp (entget(cdr(assoc 360 elist))))5 `2 R, Q/ U# E
- (if (/= nil (assoc 360 tmp))
0 j" U4 Y; D( ]0 u1 U# C; r - (progn
4 j/ W# @! i) k/ t8 l- ` - (setq tmp (entget(cdr(assoc 360 tmp))))
( |) U5 [# ^9 K I& o6 R9 m - (if (/= nil (assoc 360 tmp))
& V U8 t. O" T# i- `8 q, a" J - (progn
( `$ `4 Y+ |4 E ^0 p - (setq tmp (entget(cdr(assoc 360 tmp))))
, b; h I3 O* l5 j2 ^ - (if (/= nil (assoc 71 tmp)), b, @- k6 G" z
- (cdr(assoc 71 tmp))- a8 Z; x7 F0 D3 X! ]4 H" w
- (progn 3 ]! K3 M4 M1 F( W3 Q
- (setq hasclip nil)
- z* ~6 Z$ r! Q* Q! q, e% Z1 j! v - (eval 0)
( [7 ^+ ^5 Z& a1 O6 d+ A( U - )
7 |+ j- [1 S/ l3 N, F" I; V - )
$ W0 }' [( Q) X3 `( m0 } - )
- \% D0 t/ ~) o3 W, u( F - (progn ' K0 [: J( A6 I3 `, Z; H6 @: i. R D
- (setq hasclip nil)
) h4 W% V; V) b3 _3 p( I( P - (eval 0) V& b' ^' K$ a$ |
- )5 U7 h9 V! y- D5 ]! X5 @2 |
- )% n! C4 V; n* m. y+ d! f
- )" ~0 S; `! v ^4 V& p. E6 E7 A9 J- H
- (progn 3 ~- F5 N' b! T3 O5 K1 N
- (setq hasclip nil); Z8 ]- {5 C J$ {: W
- (eval 0)
& q. Y! `& T1 V6 ~& \: G, J8 ^ - )6 [9 Z% e9 }% C9 f( n O: ^# S: _
- )
6 } P. n1 _) _7 h- K% p - )
2 p, g* U \/ Z - (progn
4 F {. X' l$ G$ C4 i; B - (setq hasclip nil)
) ~ g, i% t; O+ b - (eval 0)
* }2 l8 _8 w: `9 T - )% e8 w7 H/ Q, n- R: C
- )
2 F- \! j5 K7 n {5 [, | - )/ z4 V4 c0 a; W( b8 A& S, `
- ;;* Z+ i9 \ C4 b0 A; B
- ;; Draw a dash or dot in image tile" q) H- K4 B7 r
- ;;/ Z: H: f) `/ J' V: w7 D
- (defun vi ()
) k! @; R& d z; M - (setq x2 (+ x2 dash))
S1 j5 R& K& t! N+ Q* d' |# X - (vector_image x1 y2 x2 y2 color)
* S+ ^# F; X, B* d3 I+ ` - )
, {% G8 A% P; a) Y- }9 [6 P& K - ;;& X( R0 S8 _4 r4 R5 y( C, I# E
- ;; If an item is a member of the list, then return its index number, else3 e( r0 d2 x+ H. |0 W3 G
- ;; return nil.( D& W; c1 s2 U# E2 t% z
- ;;" C# C& y' X& v4 j: J5 V2 t7 M
- (defun getindex (item itemlist / m n)
x% c. h* O3 N; O- _# d* p9 ?2 k - (setq n (length itemlist)): q3 T8 O% j' b) h7 ~
- (if (> (setq m (length (member item itemlist))) 0)' T4 _& `8 c/ a& r+ E
- (- n m)" L H) \; p' D- T1 g1 j. K3 F: q1 Y
- nil
. X& C# W" ]- C6 ?7 x# C - )
4 L# H# |' o( `! X5 N: v - )
2 t: T" W7 Y& q% \$ I2 r - ;;% U* Z- I& O& F( k* ~
- ;; This function is called if the linetype is set "BYLAYER". It finds the5 d$ C6 }4 R9 Q4 s' {# o( u! M
- ;; ltype of the layer so it can be displayed beside the linetype button.4 g- o( _( V/ ^9 A+ G# y% J/ [# m
- ;;( C& A) |0 i, z- U' ^
- (defun bylayer_lt (/ layname layinfo ltype)
" U2 R1 n# Z8 `, ^4 o - (if lay-idx
$ T* `% }0 A7 L( P! s - (progn3 I- l( D" W# V$ e/ T! t: |
- (setq layname (nth lay-idx laynmlst))
! a: h7 x# m* Z. j# }, j8 b - (setq layinfo (tblsearch "layer" layname))9 N2 M/ Z6 ]0 U
- (setq ltype (cdr (assoc 6 layinfo)))
; ^9 W( A4 @3 b7 E - "BYLAYER"% M* H' \5 ?" ?) r# U
- )
' j8 e# P6 t! d, Q/ Y. [ - "BYLAYER"
0 x( M/ T t% \1 o - )
# v- \, L$ o2 B( ^1 F. P! l6 u1 l - )7 r i: _$ r9 X2 ]. s6 u& h
- ;;
6 `1 i0 `& }! O9 b - ;; This function is called if the color is set "BYLAYER". It finds the color
& d3 L6 ]1 A9 ~( v1 N* M0 f - ;; of the layer so it can be displayed beside the color button.
7 F. C5 k5 w! I& ? - ;;
% N0 m5 C0 `& J% k4 ] - (defun bylayer_col (/ layname layinfo color)
2 _9 k6 ~4 [1 u - (setq layinfo (tblsearch "layer" elayer))
, n, Z/ W" p" B0 I+ F5 t5 ?2 h - (setq color (abs (cdr (assoc 62 layinfo))))
4 w1 x/ ] p: L - )( j8 Q1 T0 C9 G5 |$ R1 z' U' J& R" f. d
- ;;7 l* _0 r1 c3 z" L% R+ r% Q
- ;; Used to set the color name in layer subdialogue.
4 [1 ?$ u! y0 O: F4 g- d4 x - ;;6 `" T+ H1 b- f8 u- R3 a' x
- (defun colorname (colnum / cn)
+ d$ l2 P5 L% u J - (setq cn (abs colnum))9 K, @% ]& y) E
- (cond ((= cn 1) "red")5 u |9 Q4 X1 J+ D
- ((= cn 2) "yellow")
( H) d$ X7 D8 A; Z. s* l - ((= cn 3) "green"): M0 g+ c2 g! k" s
- ((= cn 4) "cyan")
6 Q7 _9 T+ l: Q4 M! Z - ((= cn 5) "blue")
# N4 |' p2 e" z; t - ((= cn 6) "magenta")5 {2 y2 H$ A. [$ Y; K0 u/ a& \
- ((= cn 7) "white")* i4 `4 ?& K9 T1 P( A
- (T (itoa cn))( W5 S" E, I6 P8 f
- )
! a1 B8 o9 Z6 _" @0 l R - )
d' ?" W3 @# E4 C - ;;4 @2 r+ \: w/ k G. \' i
- ;; If their is no error message, then close the dialogue.
h+ f) j4 A6 N$ M" ]# ~! H- W' Z - ;;
' o6 Y8 n; g3 e" M - (defun dismiss_dialog (action). o+ t" M7 F( e. l7 k: |) d
- (if (= action 0)
) F; U7 z6 \# l7 c0 H - (done_dialog 0)
1 u- L/ q+ F* b2 n. Q. y" Q - (if (= (get_tile "error") ""). ]: ~" O3 M, {& ~
- (done_dialog action)0 j. \# q) n0 q/ m: a1 f
- )
5 c4 g. X4 }4 x, P4 d1 E5 Z% M - ), X5 o" J$ _' i' B+ D' [' f$ P& U. O
- ), ?3 |' I( q* P8 s$ C; B
: ?( ^& j8 w3 x# q6 W- (defun test_ok ()
6 g( p5 z) [4 u - (if (= (get_tile "error") "")
0 j: `! u% E7 D& t5 ] - (done_dialog 1)
+ |$ |2 H. F, V1 r# H - )% T( z! D$ O( f4 G2 C
- )
# |+ L) x- w5 i+ o
! b) Y3 i9 W! W- (defun cancel ()' n: D# z' y, J# Y$ z* X
- (done_dialog 0)9 D) A$ T! b, a( r: ]( `! ~* s' V
- )# u' H W* L# Q& T. _! X
0 r9 r X% V* @3 S/ V2 r- D3 Q- ;;; =======================================================================
' ` W" U3 k& d" f9 F - ;;; SETUP layer and linetype lists for application, and initialize all
g* K1 O* w# q9 k& h* J3 K - ;;; program variables.
! n7 M9 e ?) l' ~% j* I2 ~
6 n( }7 w9 D V, N5 J5 l2 x' V! f- (setq elist (entget ename)+ F3 p* x+ a& I
- old-elist elist: ?+ f3 x; v a% ^! W8 E1 t
- modlist elist
8 [" Z+ s3 }9 I( s! U - etype (strcase (cdr (assoc 0 elist)))- H6 R5 t: |5 e" ]9 N( d+ m
- ecolor (cdr (assoc 62 elist))
# C3 G z' |' z) A - elayer (cdr (assoc 8 elist))
) g4 ~1 @+ R- w* \" V$ v - eltscale (cdr (assoc 48 elist))
: a# }: G A2 D8 Q6 h - ethickness (cdr (assoc 39 elist))/ i" W9 u; R/ h' @/ d" j0 a+ G
- eltype (cdr (assoc 6 elist)). K" E6 ] S6 C1 C8 C& H
- )
. H( Y+ T. z1 c) ^3 t - (if (= (assoc 210 elist) nil)
4 |2 @# ]# y' j8 ]2 H# P - (setq extru (list 0.0 0.0 1.0)); l6 Q$ z, B5 O
- (setq extru (cdr (assoc 210 elist)))7 `# S# a* g$ E9 `
- )
3 R- M: e% V& p5 p - 1 E6 N# K' F( R/ A: V% A2 i0 q4 p
- (if (not ecolor) (setq ecolor 256)) W8 @9 i- c* {
- (if (not eltype) (setq eltype "BYLAYER"))2 q5 w- `" l3 ~% V
- (if (not ethickness) (setq ethickness 0))$ Y9 f, l1 A' @9 {9 b. I
- (if (not eltscale) (setq eltscale 1))
4 B3 @9 Q- x% \ V1 o! d - ) ; end ddmodify_init
' }4 q5 @7 Y/ A3 G% N, ]# ? - & V9 K1 h3 f1 u
- ;;; --------------------------------------------------------------------------
0 v1 ]3 L" k6 f) M: G - ;;; Function: DDMODIFY_SELECT$ A3 c; U# B% f4 y
- ;;;2 R( u4 Y/ s3 g, `( ^6 }7 P; z
- ;;; Object aquisition function.* g# H0 g) m9 Z. O* N0 Z' L) i P7 ^: L
- ;;;
7 k/ u; u, e* F! J) O/ N3 N - ;;; (ddmodify_select)
2 ^3 F: }! |' F0 s" } - ;;;
% l `7 M7 G) b1 ?/ m - ;;; Obtains object to be modified, in one of three ways:4 c# w2 a4 p* r, _" W1 R; ~
- ;;;: s- a! }# Y' k6 o) t$ J; `) W* E" [
- ;;; 1 - Autoselected.3 L9 s& Y* c' D+ H; P0 n$ J
- ;;; 2 - Prompted for.4 J# J. U" M% v I# y: V, D
- ;;; 3 - Passed as an argument in a call to (ddmodify <ename> )
% l. s3 d; J8 Z - ;;;
( b1 }6 ~& Y! x6 L - ;;; The (ddmodify_select) function also sets the value of the
% Q2 p6 l# t: A& B - ;;; global symbol AI_SELTYPE to one of the above three values to
8 ]( ?4 w8 ^$ [% v7 c - ;;; indicate the method thru which the object was aquired.
+ N. k$ G1 p3 d; Z: K( O - ;;;
7 a- ^0 p" ]! D2 n7 V) j. b: Z: y0 X: ` - ;;; This value can be useful to applications that want to RESTORE5 o3 ~! l8 L8 c6 X
- ;;; an object that was autoselected to its previous selected state
. @' X( O7 C; V( K/ L - ;;; when they terminate, although there doesn't appear to be any
- H3 s4 G2 M9 t6 F - ;;; way to do this right now.
1 r. E- h7 ` s! n' v5 g3 `3 m - ' T1 V& n1 }) C6 \2 S8 m
- (defun ddmodify_select ()3 H6 m+ W8 C5 n% } g4 i0 r
- (cond0 X' E, L0 c$ a9 K
- ( ename ; (ddmodify) was called3 g8 u5 B! j4 f1 h7 u% b
- (cond ; with an <ename> argument% D) J" s5 p" s+ h5 Y
- ( (entget ename) ; If object is non-deleted# o& L8 Y8 O8 D6 _- @, c0 M) _
- (setq ai_seltype 3) ; then return its ename.
$ \" a. V3 v# A; p% d/ W - (ai_return ename))))4 e- o, P2 m# k' n$ l
! E# j" P% k/ j0 h9 C2 P- ;; return auto-selected , see ai_utils.lsp8 e& p5 {# q' ?$ C5 Z+ g: V
- ( (ai_autossget1 "\nSelect one object to modify: "))
: f. V: {& y0 b$ V, `4 D
$ c# N4 o) u$ a _& A: }5 T% r- (t (princ "\nNothing selected.")
& }9 p u, E' x1 j6 K, l5 [ - (ai_return nil))) m+ S3 r& J) S2 Y6 Z
- )
0 B% Y* {3 S. F - )
' F9 d. H% p1 [ - 0 ]* n3 I e+ A
- ;;; ============= Command line interface function =======================
5 P9 G/ }' C$ s
3 x" ^" E* Q1 p0 |7 d- (defun C:MMO ()
% v5 w# P2 \# |) e. U$ E - (ddmodify nil)
+ o4 o- u3 w% x1 [4 e! D - (princ); r! @# K8 Q) Z
- )
3 ^# S1 O1 Q0 F' d/ E - 6 p- ]8 Q6 t; p+ C
- ;;; ================== (ddmodify) - Main program ========================# K& P7 p/ @5 ]$ G5 D2 [+ U/ i9 U
- ;;;# m9 k& T% K# A2 ^7 n1 [8 d6 j
- ;;; (ddmodify <ename> ) ]; e3 N; a2 w' L8 j6 N5 @5 g- p
- ;;;. G1 [; k+ [+ K
- ;;; Main program function, callable as a subroutine.9 \5 B% P# h4 @0 W
- ;;; }% {6 k3 @( s4 h
- ;;; <ename> = object name of the object to modify.
& C: j1 V& S9 S- w - ;;;
3 C; h" q- q- f5 N - ;;; If <ename> is nil, then user is prompted to select# M& t0 R0 @+ P* Y; F! r2 k# n5 s
- ;;; the object interactively.
# x! u! B2 w- s- {7 W1 ~ - ;;;' m4 W; @( T( V& m
- ;;; Before (ddmodify) can be called as a subroutine, it must
0 Z0 l) y" f+ N& g9 m5 R+ F - ;;; be loaded first. It is up to the calling application to
7 h. G# h+ V. T# k0 _ \7 }) { - ;;; first determine this, and load it if necessary.9 I( N. ~/ o' t5 B
- ! R; l5 T. l$ s' P6 b7 v; N P
- 2 z/ o0 q" [, U3 Y" D8 k/ V
- (defun ddmodify (ename /
$ U/ ]! L4 y7 T3 h0 } - 2ndpt ell_calc_area move_pt1 templist
) i$ @- p8 N; W- s$ ]2 n( F/ [) o; B - add_mdash ell_tile n tempmod
: H( O4 t7 X$ r- z6 o - alipt eltscale name tempst_ang
5 i5 }8 f) t4 Y - ang eltype newpoint test_ok0 ]; @+ q0 u z- Z/ g; p) `/ L. e
- arc_calc emod next text
" R: Z) v3 Z! P5 k! `5 f3 e( h - arclen end_ang next_vertex th-value$ @5 Z3 q- V$ d. o4 R+ _* G2 a
- assoclist endpt obl tile' {) Z- C5 w" K3 b* ~0 @9 I
- atprompt errchk off tile_rect( u, B) w2 X7 s, j6 C
- attag ethickness old_majrad tilemode
( Y% C; l( D5 r) \) b: o4 G - attprompt etype old-closed totang1 C5 m8 U1 }# R
- bit extru old-closedm tstyle. B8 j2 l5 k3 }) d9 e% N: C
- bit1 fchk old-closedn u
- ^( d7 V5 C0 J) ]! t - bit-10 first-10-rec old-elist undo_init
1 B! S) o5 ]( E/ x5 X - bit-11 first-10-time olderr upsd
* X) b4 X7 v1 g) A/ | - bit2 first-11-rec old-fit v, m6 Z$ ]5 ?& \
- bit3 first-11-time old-idx va
* n% J Y" N1 l: X$ a2 T - bit4 fit oldlist value8 W1 m- b1 | ]8 M! x' J
- bit70 frozth old-spltype ver_4
) s* R! e( Z$ |, \3 Z - bit-70 f-vis old-u ver_ang1
4 b+ V3 Z5 _! F4 R - bit75 fx old-v ver_ang2
& P+ X# c* n- U" P* n! i - bk-up get_color on ver_col+ y" [# R& ]+ V
- bkwd getcolor onoff ver_colsp
. C( x) Q& T1 G5 E! I' L4 }6 O - boxlength getindex on-off ver_eangle9 @4 a+ n% _6 F& x
- bylayer_col getlayer patlist ver_hght
9 g v! @; Y: Y9 M - bylayer_lt getltype pattern ver_majrad9 b& I, }. ?" ]/ H
- calc getthickness pltype ver_obl+ A+ c# w% L6 B
- cancel globals polytype ver_pt1
3 n) L7 k; H4 ]; q4 T - cir_calc ha pre ver_pt2
: d2 n2 Y0 c9 V: m4 x8 e - closed ha-prev proplist ver_pt3. A. Y$ p0 V7 Z: z
- closedm help_entry pt ver_pt4
7 ?2 ?2 o6 u8 M3 O5 A g( B! o - closedn hght pt1 ver_rad7 l* r4 _4 x3 P- a
- cmd icvp pt1_eq_pt2 ver_rot& o% r4 F$ ?4 [
- cn image_add_vector pt2 ver_row
* v8 E" a6 N q8 r% ` - cname image_clean_variables pt3 ver_rowsp
( c3 A' F. ^, P( ~ - cntl-pt-indicator image_cross_product pt4 ver_tag7 r* E8 o: [: Y3 I5 B
- code_71 image_disp_opt ptype ver_u2 N3 I% s8 J. f9 X
- col_tile image_dot_product radius ver_v! o: O& F$ Z/ b+ x \
- col-idx image_normalize_vector rational_spl_flag ver_wid: S3 G# s1 S& t4 U/ P
- colname image_rotate_vector reset ver_x17 h+ P0 W& a9 h% L: ?4 @+ j$ `
- colnmlst image_scale reset_flag ver_x2
) a0 Z" Z3 Q: ^8 a, C w* z - colnolst image_scale_vector reset_lay ver_x32 u7 Q% S$ k5 A
- colnum image_update reset_lt ver_x4
# I# w) P* h) t2 P - color index reset_uv ver_xline_pt1
* q2 u, b: c6 O# R; E/ [ - colorname inv rot ver_xline_pt29 b( a' z3 z* \3 Y; A4 U& b
- colorno item rows ver_xline_x19 s2 \' L4 l9 ~; b5 y- C1 n
- col-sp item1 row-sp ver_xline_x2
# O: p' t A+ _' K9 z" c! s1 q2 R - columns item2 rrat ver_xline_y1
- Q4 d F( q$ i. k3 c - con itemlist s ver_xline_y2
: X; Z# \+ N- |5 s8 {4 l4 m5 W - coord jlist set_action_tiles ver_xline_z1# B7 `6 R! `7 z$ q3 A# P
- ctr jlist_act set_just_idx ver_xline_z2$ m$ Z- ?3 F6 @, P( k8 ^
- cur-10-rec just-idx set_tile_bk-up ver_xscl3 |% W; s1 D; h7 c2 W5 W. R
- cur-11-rec layedit_act set_tile_cntl_pt ver_y1
f# Z4 ~8 f1 {+ [' b! P1 a0 ^6 S8 e - cvpname lay-idx set_tile_data_pt ver_y2
7 \7 C# \8 ?' t$ m- G - dash layinfo set_tile_dirv ver_y3" z' O2 R! c; a j+ M5 |. h- t
- dashdata laylist set_tile_edges ver_y4- P/ A! i' a4 o+ c; P8 R$ Y
- dashlist laylist_act set_tile_endang ver_yscl
, V: [- F$ D0 p3 S/ R - dashsize layname set_tile_hght ver_z16 S o c" S/ S2 x0 C/ f/ u
- data-pt-indicator laynmlst set_tile_icvp ver_z2
# c8 a+ w6 O* X# a7 d - dcl_id layvalue set_tile_just ver_z35 \$ _' d6 i1 {6 i: Q' }
- dd3dface line_calc set_tile_obl ver_zscl7 \+ U$ J% A6 L: ?! \- N
- dd3dsolid linetype set_tile_prompt verify_a
0 p P6 `% r& J - ddarc list1 set_tile_props verify_d3 y4 i3 D% c& s6 p
- ddblock longlist set_tile_pt1 verify_i' v# Y- U" a9 W
- ddbody ltabstr set_tile_pt2 verify_xline
, v7 X4 N( a" N: |1 r - ddcircle ltedit_act set_tile_pt3 vfy
" O! v7 X% C- p+ A. h - ddellipse ltidx set_tile_pt4 vi
7 @) O, g" l# H - ddgetprompt lt-idx set_tile_rad vlist% H/ ? w& C' f% J
- ddgettext ltlist set_tile_rc vname3 |8 Y; m- M+ q; \" S/ V
- ddimage ltlist_act set_tile_rot vpf* G8 f/ K1 P% m) ]! y/ O( M4 ~
- ddimen ltlist1 set_tile_scale vpid* B+ \4 q& b2 b [! ~8 m
- ddleader ltname set_tile_spline_props vpldata
2 c3 v! y; z- O0 L. v- t6 h6 N4 `2 @ - ddline ltnmlst set_tile_stang vpn: g% {9 ~& z" e1 d! e* M
- ddlist ltvalue set_tile_style vpt
E% }( l6 \0 t, k - ddmline ltype set_tile_tag which_tiles
! L) s5 ?) g' L) g1 F u - ddmodify_err m set_tile_text wid4 s. w d* i$ R3 n; O5 n" S
- ddmtext majrad set_tile_vpt x) V, v5 y+ \) t$ K J% R, Z
- ddpline make_lay_lists set_tile_wid x1
% x+ p+ A+ O2 q2 e7 m5 E. ` - ddpoint make_lt_lists set_tile_xline_pt1 x29 O" h: f. S6 y" X1 G
- ddray mdashlist set_tile_xline_pt2 x3( U1 j& F: y; U$ _
- ddregion minrad setcolor x4. O# z, e6 j5 a0 ?
- ddshape modify_3dface shght xdlist& d) T3 s: n! r) k; p+ _1 V+ n+ q
- ddsolid modify_3dsolid showpt xline_pt1& |8 |! W8 W9 W& C
- ddspline modify_arc size xline_pt28 D; b5 F9 e) ^) n5 R7 t
- ddtext modify_block slist xline_x1" y! Z7 D: i2 W' Y
- ddvport modify_body sname xline_x2. ~- {( o; G! r0 g u' |7 G
- ddxline modify_circle sortlist xline_y1
1 I, ]0 X& P: p& F d - denom modify_ellipse spltype xline_y27 `9 \6 t+ L; g! z' m, {
- dialog-state modify_image ss xline_z1
( G: z7 ~5 i# s# Q* U/ a/ T# g! k - dir_pt modify_line st_ang xline_z2
& z4 o$ t6 D) X3 ^ - dir_ptx modify_mline stpt xscale
: f/ ~* ^5 G# [/ P - dir_pty modify_mtext style_act xx- o z2 v( p' D- K
- dir_ptz modify_point style-idx y' D( J- k! w: A% V9 T) x2 L+ a5 ^
- dismiss_dialog modify_polyline style-list y1) h1 g! \' d& C8 d0 V! k
- drawpattern modify_prop_geom tagval y2
# b- J. v1 o" K$ F - echo modify_properties temp y31 @8 E ]$ n- I/ U8 |
- ecolor modify_ray temp_color y4( |* h- D* v+ m. {9 m
- edge1 modify_region temp_dir_x yscale, s! A) c3 V3 a" ~7 W. X- ^+ n2 @
- edge2 modify_shape temp_dir_y yy
( _ r' g6 b0 J% j7 w - edge3 modify_solid temp_dir_z z1
& p% @2 q9 C. p2 |: K - edge4 modify_spline temp_xline_pt1 z2
1 @& Q) @/ A' ^ y$ k) U' F( u) |; | - edgetest modify_text temp_xline_x1 z3$ m3 i0 _! |1 X g. v) C
- elayer modify_vport temp_xline_y1 z4
& B% { ~* Q0 u+ A/ {6 N - elist modify_xline temp_xline_z1 zscale9 v y; t- V2 J& f* U/ a
- ell_calc modlist tempend_eang zz* l# _- D3 Q) U* \7 C
- dir-idx safe_ddedit ver_MtextWidth xcliponoff* T% a1 h/ E' A- z
- MText_style
8 B0 P, R% ~4 ?: f1 H( C - )) ]+ W/ n" K3 `5 x2 }; s1 c. ~4 \9 j
7 k( r1 p- [/ U, z' f- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho( |3 d1 n! \9 b1 @
- old_error *error* ; save current error function
3 Z6 B' t8 ]% \6 O" b9 t - *error* ai_error ; new error function R$ ~: o& y3 c; J# s
- )
, D0 ~8 i- k/ x. d' ~
& \* D# s8 ]0 G+ F& k6 T- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle
- W: F! C! Q/ Y7 g1 Q - (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection
* C5 m1 I, S. `* _2 e& x - (setvar "pickstyle" new_pickstyle) ; bit and set to new value! w1 L: b }, p) W
- ) o' h0 ]. r# G* V3 u' L! {: p
- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)
& r' b: ^2 ]; x - (t 1)))
6 \( C6 `" i) |4 r) I; k - (cond
' f9 j& D+ A6 \1 m/ o j, \ - ( (not (ai_notrans))) ; Not transparent?
9 G3 I; y; ] e( i/ Y' { - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?6 q# C1 r; y% f' w
- ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?+ o6 g/ p* G, e7 p. m
- ( (not (setq ename (ddmodify_select)))) ; object to modify?8 v! D. ?- n9 o$ p% j. T
. ?$ o5 b+ b# g H- (t (ai_undo_push)0 y: H9 y- M7 I C- `& G& H
- (ddmodify_init) ; everything okay, proceed.+ }( o) r( w6 m' O2 H& H- {
- (cond0 U8 [& M [# r# N) d
- ((= etype "LEADER")
! s" V' I0 R$ M1 L6 H* T- I - (setq help_entry "modify_Leader_dialog")3 I0 }+ V9 O% ?( H
- (ddleader)
1 M' R( m' Z* E; Y9 n- a - )
* S0 O' G% a# |. g - ((= etype "ARC")& U% i, v# ~1 f
- (setq help_entry "modify_Arc_dialog")
6 S T; h ^: h3 R! v* [5 S6 b( i - (ddarc)4 k9 `: a" [- _0 z, N3 d
- )
6 W8 u# M8 i1 g4 |3 G7 T# X - ((= etype "ATTDEF")
& W( M& c B* ?) T% D" z - (setq help_entry "modify_Attribute_Definition_dialog")+ \) u, @0 f% ~5 k+ }1 r
- (ddtext)
# O' G2 N& C3 B H% V9 f; j - )
9 |, K0 ^9 p0 W; c# U: u X _ - ((= etype "CIRCLE")
: w3 l& Y0 w% g8 _- [3 [4 m. X - (setq help_entry "modify_Circle_dialog")0 t" T$ O) s! V9 e3 N+ |
- (ddcircle)
& q' o; Z9 z e - )
& d: h; Y4 q& S& a- {( H - ((= etype "ELLIPSE"). _4 P! Q! a$ P
- (setq help_entry "modify_Ellipse_dialog")
6 I1 b/ m# ~8 |. }8 F - (ddellipse)2 x2 u" }) I/ ]/ X, ?& _$ E
- )
) t' l% G7 s" f- Q- _" ^( r - ((= etype "3DSOLID") [# [7 f U K1 y. I! E! X
- (setq help_entry "modify_3d_Solid_dialog")4 r4 ^/ O5 i( d. c3 R
- (dd3dsolid); o7 B% X. |+ f$ z" Y8 ^3 Z, `! Y
- )
% H! L& ?1 L8 t* T: h - ((= etype "BODY")
' W3 ^ ~1 s* _& B - (setq help_entry "modify_Body_dialog") _1 w* m- t' x% |; D( b
- (ddbody)
* ~% b6 O) I% r w# s N( m - )# E p0 E- s% Z' n; X6 D
- ((= etype "REGION")
" z/ ~" v* f* K! c$ B$ R$ b - (setq help_entry "modify_Region_dialog")
: ?+ f# {" A$ W - (ddregion)3 ?9 o) U* |+ ~: N6 x+ w/ d
- ) U* g: J9 Z8 Q1 X5 D- s* f3 I; R
- ((= etype "HATCH") F( ?: K0 s) m
- (setq help_entry "modify_Hatch_dialog")
/ A' e3 J5 ]3 y# i - (ddnewhatch)
8 M1 f \0 s+ Q; a - )7 _ I; e: k1 \0 U) n9 d
- ((= etype "SPLINE")! Y$ F: P" }. u1 Q3 s; X
- (setq help_entry "modify_Spline_dialog")) v4 T9 @3 j& B8 ~) G
- (ddspline)
G! S- z0 j2 \+ T- J4 O2 k; i. M - )
% j }. D3 K1 h& c- L - ((= etype "INSERT") ; see ddblock for help_entry+ `5 r" E0 h% V6 ]5 D
- (ddblock)
, e+ {8 R7 M/ r& `+ n6 } - )
( a9 [4 \' C& ^2 c! F5 u5 H$ M - ((= etype "LINE")
" H" p1 Y, o5 x3 ~* P0 F - (setq help_entry "modify_Line_dialog")
: Y) H+ H, D' L* M - (ddline)9 N& R. G( R; ^! ^; a9 Y9 B$ m6 V+ x* Z' H
- )
1 q, F: Z* R0 c7 [1 [; n( }" J - ((= etype "MLINE")
- o0 u' s8 ~4 i T - (setq help_entry "modify_multiLine_dialog")/ t& w" E2 A0 t( P: {% E( l, Q
- (ddmline) ] @; L% g5 c' Y4 ]
- )( d- q7 o+ E" l( a2 Z
- ((= etype "RAY")- U g U/ o: r- ?
- (setq help_entry "modify_Ray_dialog"), | _/ |& |# ?* w4 t
- (ddxline): N$ T7 G8 z; Q! u0 I( ]' D
- )( u; x. Z+ ]7 |
- ((= etype "XLINE")2 Q* y' ^9 c7 u$ X" l. T
- (setq help_entry "modify_Xline_dialog"); c$ p2 D* ^& [* ^. C, H
- (ddxline), c+ }- r+ _4 B9 ]$ o$ k
- )& N7 O& _' F# A
- ((= etype "POINT"); G, E9 x# {. B4 L2 N
- (setq help_entry "modify_Point_dialog")# K' ]. e- R% R! s2 m; f1 c2 `
- (ddpoint)
; Q: H. X: Y8 z- P - )
# F' I- `1 ]% s - ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))* q* d5 w; _3 f+ Q
- (setq help_entry "modify_Polyline_dialog"); W# V3 r% S8 M# g# ]
- ;; If a 2D pline, check to see if it is planar to the current! o% l! X9 o% n6 w9 t3 J! x- W
- ;; UCS, reject if not. To see if the pline is parallel,
$ C! ]/ j7 M2 E - ;; the 210 group (WCS) is added to the current UCS origin (WCS)
9 {' {, P0 H8 u/ o) G - ;; and then converted to the current UCS and checked to see if
1 S8 ?- {% A( H- i - ;; it is equal to (0,0,1).
* a9 b$ b( G! \! P, \. H' @ - ! u& U& N' g2 ?$ l& L
- ;; Incase the 210 is default and not in the dxf list.( m8 {' }# r7 F5 q3 ^% e5 a
- (if (= (assoc 210 (entget ename)) nil)
?/ Z9 e* R. j8 W E1 T - (ddpline)
- r! P. O- c# q/ U- ` - (progn
* n7 ]4 k# D1 m* e6 F - (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename))))), z1 S' P9 [# l- E7 T2 ?5 J4 u
- (not (equal '(0.0 0.0 1.0)
1 ^* T& D, `: T; R" E; H - (trans (mapcar '+0 K T: g* [8 l# g+ o
- (cdr (assoc 210 (entget ename)))
. x R$ [$ V! N. ] z2 e7 m - (trans '(0.0 0.0 0.0) 1 0)
3 u2 T0 J8 G, s6 W7 I- z - )6 ~3 s( g. X$ F5 y8 }
- 0 1! a" H3 |3 O9 V" J2 P# _5 V T8 v" c
- ); H6 d" m& B5 Q8 i
- 0.0000000001 ; fuzz
. |8 [, n: E( T( ]7 v - )
0 g& D' R9 _0 a z - )
" R6 H0 |" |, I3 j7 D! H! z( S - )/ W+ q- ]* Q+ f+ s" F; H- i5 K
- (princ "\nThe 2D Polyline is not parallel to the current UCS.")
2 Y/ _; E5 x. S% s% v" R! t - (ddpline)
! X, @/ X% y2 r. j6 I - )
: e2 c+ B7 B3 V1 Q5 X& n - )
; A7 r$ B2 O/ h - )" ^) P- i1 a5 W0 v" J
- ); `) D: P8 a8 _) p/ A6 q/ G" ]
" P2 {8 \( n% a- ((= etype "SHAPE")
9 h- O) o9 x u/ d" b1 s; Z p0 m - (setq help_entry "modify_Shape_dialog")
8 \5 { Q ~6 K( t - (ddshape)+ h: x# @: D! ]6 K$ h M
- )7 b% o" B! _8 l: q# W
- ((= etype "SOLID")' o- y$ Y) O: i" [ v2 E5 z' m. X
- (setq help_entry "modify_Solid_dialog"), d Q# Q; r r; K: n
- (ddsolid)$ v2 F5 Y8 U% \( u
- )
. r y( ^5 \/ ~' }+ y0 S7 G* H+ A) D - ((= etype "TEXT")
' V6 |4 I/ G7 t9 H* }. u. V - (setq help_entry "modify_Text_dialog"): |5 D" H- W' j( @4 I
- (ddtext)) z2 G" U0 b; c3 b) F
- )
1 f! z- k+ N. Y0 I+ V! ~ - ((= etype "MTEXT")
, [7 ]1 d/ J J7 q( \! F5 J2 M; H - (setq help_entry "modify_MText_dialog")
, {4 J. d8 ?8 ]" t - (ddmtext)
* a. T8 a+ u X4 t - )+ r0 m' o, E0 e8 H W# Q; `
- ((= etype "TRACE")5 w. b0 G: Q' g' z8 A1 R5 k
- (setq help_entry "modify_Trace_dialog"). \6 T( M) x1 t( B
- (ddsolid)* O# S3 }3 Q& N7 `3 H
- ); x- y s$ J T* c; E! b# Y3 V
- ((= etype "VIEWPORT")
: \8 C6 e& W, M- l9 H* E0 c - (setq help_entry "modify_Viewport_dialog")
3 I3 p; F% n% O+ D9 ?- @( d% [/ Y - (ddvport)
% s W6 H) x. Z* H* I2 | w# N - )# T1 @2 P2 m- X1 j9 v
- ((= etype "IMAGE"). F) G# {9 V* a2 |
- (setq help_entry "modify_Image_dialog")! I3 ]& Q0 ?) e
- (ddimage)
2 I ?7 V3 H8 v( E- h( ` - )
* [% R, u. f5 w7 [! _ - ((= etype "3DFACE")
( n7 s; F5 ]- s* i3 P7 k8 b - (setq help_entry "modify_3D_Face_dialog")9 ~# y" g2 o0 L- Y- T, _
- (dd3dface)1 C2 K: _: @8 Y `
- )
/ ^: {6 b$ d! W& P f4 ? - ((= etype "DIMENSION")1 w5 `2 R) F: b* h' ]' J
- (setq help_entry "modify_Dimension_dialog")# ^8 m6 f- I z9 s8 I+ _" j
- (ddimen)6 R3 J0 g# G k" y N
- )
5 J+ O2 ?3 w7 g- ], [ - ((= etype "TOLERANCE")
w* r; O' `' O, P! {) e: Z/ t; W - (setq help_entry "modify_Tolerance_dialog")) P- t, K* t' ]4 R( w( s+ w
- (ddtolerance)$ L7 U5 @8 X- `9 m
- )
) Y* c5 |# C2 f& D7 w" ]! c9 {+ T - ;; Fall-through condition changed by MCAD for MDT 1.1 release.
& t& s( p1 D+ F) C1 `" o7 ] - ;; This allows DDMODIFY to work on any custom object or any new object type8 B& M/ \2 ^8 S" c
- ;; that isn't specifically handled above by calling the more generic DDCHPROP.3 e, n, z3 g# l) i! j
- (t, F" [1 T; r0 U/ h
- (if (and (not ddchprop) (not (load "ddchprop" nil)))
/ j% M6 D4 {2 e6 n. L - (princ (strcat "No dialog support for object type: " etype ".")))
' H" r0 K% W- J& O6 v$ O& J6 o - (progn0 j5 n" ~7 v1 W& i* k0 B) e9 k
- (setq tempss (ssadd ename)); P# ?0 A' G5 h3 V( ] |5 W
- (ddchprop tempss)) \2 G8 a7 ]; F. { b+ m& T3 Z
- (setq tempss nil)6 b( t9 U9 L! ` p, e9 D
- )
9 Z: G2 F5 h S; v, }: k# R2 Q - ). E+ x4 I* u, T% f. S' W+ p$ B
- )
' L% S0 L% w o9 M$ B% E - ;; Previous fall-through condition.
( G0 |& h8 F7 C* h3 H - ;; (t (princ (strcat "No dialog support for object type: "4 O! }1 b) G. w( [( V" Q5 i2 V
- ;; etype "."6 [, e& _- P2 I6 F3 p$ ~. D
- ;; )
8 Y: s0 B" J, ^5 y( w0 u# B+ s& S. t9 d - ;; )# H9 |% P( p; Q+ D5 N
- ;; )
% j+ k5 [/ A; e. \- \) k. Z - ;; )
" t8 G( g5 m" e5 u - (ai_undo_pop)
! U, R! E' q w& d, M% o8 T - )3 }+ L. t! H9 y# ^
- )
0 B4 \0 E; }/ _- K6 M - . H3 d2 y5 m, y; Y
- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle3 I' _& l: Q# E
- (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back
4 y, w+ s( w) N - ) ; to what we started with
% o* Q2 O, E/ t# \0 P, N
5 B" w8 a" W! G' ]; I* u- (setq *error* old_error)% U2 j6 w2 `% E6 t1 d
- (setvar "cmdecho" old_cmd)
; e2 w, d' q" O' a T0 k - (if (not reset_flag) ; if object was modified, then$ d' j$ Q1 d6 }8 d
- (ai_return ename) ; return it's ename to caller
8 }4 E, b, t. B. D) _- J( w - )
4 Y' ]9 E. [% y% @8 r6 K) E - )
+ h+ O5 V, j8 X8 R$ M
! H+ r1 N4 `: q C1 H7 i* q- (defun checkForLockedLayer (ename)$ y, q R3 H% S8 b0 G) v" d
- (setq layername (cdr (assoc 8 (cdr (entget ename)))))
# g. o9 E# t0 U: Y( g - (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername))))
) C& {1 ]) b& `" h* Y - (if (= layerflag 4)* K; x6 N, V6 g; c& m
- T5 R! @1 P! O8 f/ u! p
- nil
5 P6 x: @. g: D! a$ q$ {1 n9 f - )% b2 {* m+ l/ d( ^1 t
- )
2 B! Y1 _' D4 k( _ - ! |: a. Q$ @7 |; B% Y( I4 Z/ M0 S2 p. s
- (princ " DDMODIFY loaded. ")2 E% B+ ]0 p9 s0 W
- (princ) k" V/ o% d7 @7 `0 J
- ;;;???;;;---------------------------------------------------------------------------------------9 ^. E- M6 f/ k9 z4 T
- % O3 {5 E9 Y$ K Q9 Y0 Z
- ; Next available MSG number is 8 $ g* t! Y; x# @. d; q# e1 ?
- ; MODULE_ID DDUCSP_LSP_/ R5 Q- s6 Z- f0 m' I: R- A
- ;;;5 x2 k- T3 K! Y. f: X& ]
- ;;; dducsp.lsp. y- b% r! n4 {+ Q. o
- ;;;" ^# }+ v5 b3 \' h- ]. W8 `
- ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc.
4 W; t1 x" P) o$ R" J2 N* O2 l) [0 R - ;;;
5 @1 Y6 h7 G3 V" { - ;;; Permission to use, copy, modify, and distribute this software! r9 V# { {4 A9 J8 w3 G4 e
- ;;; for any purpose and without fee is hereby granted, provided
S" Z! b1 H" d# }! W - ;;; that the above copyright notice appears in all copies and- O( p" n# H9 h0 k6 S+ S
- ;;; that both that copyright notice and the limited warranty and
" X3 y2 E8 F6 l - ;;; restricted rights notice below appear in all supporting1 p" n! [7 a2 N# y. k9 J: G) d
- ;;; documentation.' Q' L% r+ ]+ R9 n& o. a- g
- ;;;
0 p: e6 g H* f - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS." j( S/ S) a* R5 {: B- o. |
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
% @- N" o) ^$ A: |4 Q; [. [& o; H, t - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.7 W9 r1 @8 O3 _
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
6 A4 \4 D; C E9 Z7 I) n - ;;; UNINTERRUPTED OR ERROR FREE.
# F8 L' L7 D5 |, w% f3 F* T - ;;;% T1 @9 Z1 q7 j D! T9 P& h
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
2 g3 V# W1 w# A) o - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer& P3 j# N0 S5 u, w) d& P2 Y
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
) d, S, \2 y$ N: |( { - ;;; (Rights in Technical Data and Computer Software), as applicable.) O' O: ?8 \: ?% q+ L
- ;;;
7 G/ k8 N8 V' C - ;;;.
l/ G, j0 m- j4 a2 T& b - ;;; C:DDUCSP - User Coordinate System presets dialogue.
# q7 Q C: Q0 C& q1 G - ;;;
' c2 ? n- h1 d - ;;; Uses DDUCSP.DCL for the dialogue definition. The, c" P, l6 i, d& O
- ;;; slide images are in ACAD.SLB.
$ g+ W% l: Y. Q7 \) L! K9 r - ;;;7 w8 X6 C- s+ a/ c. M# q2 V6 U7 c
- ;;; ===========================================================================
5 J/ f/ m0 h! o - ;;; ===================== load-time error checking ============================
; y. y. B8 B8 a) d) y - ;;;
& s3 S5 ^' J2 J
" L& o2 x' `( Y7 {- (defun ai_abort (app msg); v, ?8 v7 K+ v" `/ v" @
- (defun *error* (s)0 e. y& r# l) q1 _3 p2 ?
- (if old_error (setq *error* old_error))7 [/ s+ I+ J C
- (princ)2 J$ m- p( l" h9 H( u! B1 R, ^
- )
! C x* }- D3 x |. ?* u: P- ^ - (if msg
& I z6 H* [& V* _% m% |8 m L - (alert (strcat " Application error: "" d) w! G' M: y$ b* A( I, ~7 j. n
- app8 s( R/ k% V6 l$ ^/ d: F
- " \n\n "2 e8 \, t0 n& s! @0 K
- msg3 A$ h0 ]+ @7 V/ S$ H8 K
- " \n"
5 ?: q% `* C2 r1 I% @* h1 o* [ - )) e7 c' @9 U! }/ F; E# Q
- )1 F) ^" E. V+ o1 |
- )4 M! n" A$ B4 H( Y+ m4 i. m
- (exit)- ^* d- O$ s0 ~# J2 P0 e. l0 L2 R5 P
- )
1 U2 z4 v% e: l+ l - + l' ?# k0 y4 Q5 J" ^+ E$ _: ]( b
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
2 p, T" ]) |6 h7 y8 i - ;;; and then try to load it.; I0 [3 C: Z( ]
- ;;;* n/ W' t$ v6 @- A: l3 c* j6 I
- ;;; If it can't be found or it can't be loaded, then abort the9 Q& z3 Z$ i. Y6 J
- ;;; loading of this file immediately, preserving the (autoload)
l. H. W Y; a - ;;; stub function.! O7 N2 x$ k+ Y2 G6 }5 f! R
- ) P; ~' I& g* [) w1 W! b
- (cond
: ?6 a# b0 |! l - ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.( q- B/ V4 y3 S/ c' E0 O$ Z
- 7 o! K7 P. Y5 N" F( h6 D2 s
- ( (not (findfile "ai_utils.lsp")) ; find it
5 \$ S; |6 E C& m$ U ~ - (ai_abort "DDUCSP"
1 L- [, f) b" o - (strcat "Can't locate file AI_UTILS.LSP."
4 \3 p3 d6 [# e% P0 N# C, R" a" W - "\n Check support directory.")))
" Q5 z9 e% K1 ~
' k* ~5 n% {3 w1 V1 a( _- ( (eq "failed" (load "ai_utils" "failed")) ; load it
# H/ g) d" k% n; ? - (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))/ t" T' Z0 d! N) R4 Z
- )
" W( Z5 G4 m. I1 |4 t0 L5 i - 1 x* E" G) c {- n2 x+ N
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
- J( [, N+ s9 g! |' t - (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses8 J) |: W7 ~8 s+ ?4 j9 P* c
- ) ; ai_abort's alert box dialog.0 l3 l, M) `# Q `( J; B4 @
) e/ X, [ a0 S/ c! k' s- ;;; ==================== end load-time operations ===========================
9 l' R1 z# y7 K" m: G - . \# e1 J5 U) J6 R. Q
- (defun ai_ucsp_start ( / program)
& q. T+ q# g& f, b g2 O9 ]' B - ;; Get program name7 N9 L( r6 b6 d$ s- A; `
- (if (not (setq program (getvar "program")))$ T# u2 ?, `9 X# T
- (setq program "acad")
. G* G6 n L# M7 ^/ t; ] - ) v; Z7 ~8 c0 r. F
- (foreach v0 '("world" "left" "cview" "top" "front" % |: g) {/ F$ ~4 A, a
- "bottom" "back" "right" "prev")( c$ r2 @8 v- U! J5 z) H( A
- (start_image (strcat "ucsp_" v0))
- B9 y9 _. U4 k& c5 ?$ o - (slide_image Y+ E! a; g$ t% ^! |1 L
- 0 0
0 C/ d# e. Q: a7 |! n - (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1)
+ F% J5 y( K' }5 \0 Z7 ^1 c6 H) Y: [ - (strcat program "(u-" v0 ")")
0 J f" b1 d5 U9 M - )0 ?, P! a: {! O: ^& _
- (end_image)2 p, \! n3 k4 z/ O8 Z
- ): F* P( C+ f+ G5 _: C7 A
- )
4 s: Y/ B' ]8 P0 o+ F) }
0 m7 J6 q1 K- p: e; I+ O2 c* {- (defun ai_ucsp_set ()
6 Y8 p5 q$ k# P$ ?1 X, e! G - (if ai_ucsp_sv P* I0 }4 o# i& T
- (command "_.UCS" "_V")# X* N, `/ l: p) D2 Q
- (if ai_ucsp_prevs! E- ^( ^5 N* t6 s& ~7 ]- [
- (command "_.UCS" "_P"): }0 I( [) K+ |1 x/ ?# n
- (if ai_ucsp_chg
* l% x6 d. `& v5 o- t( }$ L7 l( T - (progn
/ d4 @0 ]3 {5 K9 n5 Q7 k w0 Y - (if (/= ai_ucsp_a "*")7 |0 P9 f' i/ \1 x
- (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))0 N F! w5 P6 M6 l
- )/ j. g$ c6 h9 ~8 j
- (if (< ai_ucsp_pick 6)
! m) [+ S* s' ? - (setq ai_ucsp_set0 "@")
3 r6 f% k0 B: q. @' \8 c - (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*")
N& E; D+ ^7 c9 {9 o \) T, F - )
2 \, H' E- q4 W8 l - (cond ((= ai_ucsp_pick 0); A$ r$ Z% G2 E5 _! a( [! v
- (setq ai_ucsp_set1 "0,-1,0"
; [- } e2 |- J9 m4 n - ai_ucsp_set2 "0,0,1"
6 `! [* w& u3 x - )
9 H) ]2 ]' l* g* `% l1 R% L$ a - )$ @: q) w3 l/ I/ [+ {, w s
- ((= ai_ucsp_pick 2)
& W5 C1 M( \$ ? - (setq ai_ucsp_set1 "1,0,0"
9 q# F. Y; V5 B. i3 ~ - ai_ucsp_set2 "0,0,1"
& t' f3 ?" j+ \& z - )& Q2 m5 A+ U. i" G+ R
- )
! ^2 I \6 R% [% V' L - ((= ai_ucsp_pick 3)( n, U" }; Z D7 f+ ?, F
- (setq ai_ucsp_set1 "1,0,0"# S. W1 m: @9 l. W
- ai_ucsp_set2 "0,-1,0"% |* o8 e7 m- ^2 F
- )
Y8 r9 j8 F. s/ x: i, b# S! h - )
$ T Z8 I0 }- j9 ^ - ((= ai_ucsp_pick 4)
- |, A( i* W' ] - (setq ai_ucsp_set1 "-1,0,0"
0 b3 [$ H U3 D+ E. M - ai_ucsp_set2 "0,0,1"
! E* p( R1 e4 ]$ ^8 W' v! K - )5 q& k$ m8 ^+ l+ ~/ U! l
- )) k7 g5 G5 _2 G1 Q; M) F4 X, A
- ((= ai_ucsp_pick 5)
k2 N* ~7 a& \3 E; R% X - (setq ai_ucsp_set1 "0,1,0"
# }& Y$ o2 n% p' U - ai_ucsp_set2 "0,0,1"
& {" @' R# h( O - )0 t, c! C5 O2 E3 t( Q/ G
- ): i2 w/ B, l$ q5 u- u
- (T, `5 v5 w* _3 B" o
- (setq ai_ucsp_set1 "1,0,0"
* z" [( d2 S5 }9 J9 [! G' T6 } - ai_ucsp_set2 "0,1,0"
0 m+ F6 `! C6 @, s; m- \3 e* r8 x - )! b* w! f4 p5 @& ]8 [# C: R+ U
- )
- z7 M* s) |: Q; q5 g: V' I& d - )
9 ]4 W% H/ `: y- k! p/ h - (command "_.UCS" "_3P" ai_ucsp_set0 3 u2 S6 _4 V3 o+ T% A% ^; U
- (strcat ai_ucsp_a ai_ucsp_set1) 8 O* J& [0 M) l) \8 G
- (strcat ai_ucsp_a ai_ucsp_set2)
3 C" \7 G) l: Z, N# O+ u - ) & U3 ?9 Z' x# K, ^
- )# {% ~& z+ [4 D$ ^% X& {4 h7 v% y
- )
8 h5 I. _' z4 A3 E3 _# F) u3 a - )
9 W2 }6 |9 q: W8 k" j7 S - )
% W- n# u; P1 v& H6 h) a - )+ u* k4 s' m& M' ~
- 1 Y9 ^0 _7 Q' C) L l0 T
- (defun ai_ucsp_p (val currtile)
! g( J+ \2 S4 U& y - (mode_tile ai_ucsp_currtile 4)6 f- O4 y: m! c' T
- (setq ai_ucsp_pick val7 h9 b; ?5 ^) p" D' R8 \1 D8 N
- ai_ucsp_sv nil" D. W* S, o/ b7 e+ Y
- ai_ucsp_currtile currtile1 c0 C" ?- v8 q) u: l, T6 u
- )
2 |& O, M9 n# F, ?5 X) C - (if (/= val 1)# Z& f' ?; `/ N/ s- n
- (setq ai_ucsp_chg T)
4 \9 ^. O. Q) {3 E. d - )
0 g4 A4 k, O: U) Y' T* Q - (mode_tile ai_ucsp_currtile 4), x `# W8 }7 L9 p4 m$ N
- )
+ F' j* f! [% h: ~) {3 W' Y - i; F2 b- U" f- C7 h* `9 @
- (defun ai_ucsp_swcs ()
: t! i9 f2 [( @2 e# ^. S+ h1 M - (mode_tile ai_ucsp_currtile 4)9 ]* Z6 ~* A/ a
- (set_tile "ucsp_a_wcs" "1")
7 H, E' p: g) n0 A. s! t - (setq ai_ucsp_pick 62 l! K+ B; n* k; A& } C
- ai_ucsp_sv nil
[7 W& [, Z8 L6 G - ai_ucsp_currtile "ucsp_world"- J& M3 Y! }) D& h( l2 i
- )
. n0 R$ Z* Q* L1 y - (if (/= 1 (getvar "WORLDUCS"))* F5 H) O# V1 y* v3 u z& P
- (setq ai_ucsp_chg T)
% A9 m4 G8 f* n7 X7 }( w - (setq ai_ucsp_chg nil) `, V0 @/ d9 ]5 x
- )2 C7 W }3 A9 a5 Y: `6 Q4 A
- (mode_tile ai_ucsp_currtile 4)0 R, i. |2 S, e* o# C4 s
- ); Q3 |! N2 {: _1 Y; k/ m
$ g" a: q$ e: v1 ?; e- (defun ai_ucsp_cview ()% M8 i: D" X% t$ P1 u
- (mode_tile ai_ucsp_currtile 4)
* G/ U6 ]0 Z# v7 t X* [2 _ - (setq ai_ucsp_sv T . h6 k2 }/ x7 y v) ~( `/ ^9 u
- ai_ucsp_chg nil& ?# k3 L: Y& o' V8 m9 ?+ c
- ai_ucsp_currtile "ucsp_cview"& h4 p6 G4 [) U2 [5 {
- )
) e/ h, A) `4 ?* Z& B. N; H - (set_tile "ucsp_a_wcs" "1"); P" g& j$ c" \8 v$ S, c" P2 D
- (mode_tile ai_ucsp_currtile 4)0 ~* b4 r+ [/ P1 {
- ). Q$ K. k$ F3 ^& O9 B
7 s: b7 N% d3 M& M# C- (defun ai_ucsp_rucs (typ)
: `0 c3 y. X5 @$ F: c% n - (setq ai_ucsp_a typ)
! p+ g7 X; C, @- g* k3 S - (mode_tile ai_ucsp_currtile 2)
0 \/ H; A, E; ?9 x3 Z/ u - )
! j% ]; Q, J- C3 _# |9 u( ?9 s) D - 2 t1 n8 B8 m: C7 d! x6 v) a8 ^' ^
- (defun ai_ucsp_prev ()
5 u+ N0 f# P! E: C0 n - (mode_tile ai_ucsp_currtile 4)) I9 f/ r, ^% H5 X1 ^+ ]& G- i
- (setq ai_ucsp_prevs T: X' |# f# T: e( B
- ai_ucsp_currtile "ucsp_prev"+ w7 I* i' J+ H+ Z
- )
% \4 H) G! P& V3 Z3 l - (mode_tile ai_ucsp_currtile 4)
( N8 i$ c' T& h - )
5 V) @1 x5 |4 f0 y% @ - 3 S" ]/ u, _" ?( q* q
- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)% Q8 k8 [# q. o- P0 d- C
- (if (not (new_dialog "dducsp" dcl_id))
. \- ^; x3 J; t3 ], | - (exit)
7 h! v7 I! \: ?3 j# F - )1 H3 S' M5 l/ S: l/ N2 K
* x1 q5 X- m& w4 x# p4 @4 i8 |- (ai_ucsp_start)2 F, a7 }, `1 h/ Z# `; h5 }
- (setq ai_ucsp_a "@"
8 U: `, F5 F. W* Z8 `$ Z1 | - ai_ucsp_pick 2. `, j$ c8 h0 Z r0 c
- ai_ucsp_currtile "ucsp_top"/ L8 j9 C, m& ^4 T' W( w( z
- )
; ~: }* w6 i# P: H# C; |4 a' J - (if (= 1 (getvar "WORLDUCS"))
5 n4 U) F6 h4 i2 [( H# Q& E - (progn
# e/ L. Y5 x1 }- e" T! p7 _ - (set_tile "ucsp_a_wcs" "1")
7 o$ \, B0 @, J! z5 } - (setq ai_ucsp_currtile "ucsp_world")
+ W, a" O. y3 t: g$ p! M- w/ V6 [ - )( R" P& m& P0 E) \# e
- (set_tile "ucsp_r_ucs" "1")
! _+ H- r: }* P" j - )
8 n2 _2 \7 E! d8 K" h - (mode_tile ai_ucsp_currtile 2)
$ ~7 ?1 n9 n" y5 l6 _( F0 S7 k - (mode_tile ai_ucsp_currtile 4)
# T. `2 H9 U* i7 v0 H - (action_tile "ucsp_world" "(ai_ucsp_swcs)")
0 x! P2 |1 T- f - (action_tile "ucsp_cview" "(ai_ucsp_cview)"); G. ~ i( i5 S7 S5 V, C c; J
- (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)"). h, o5 C5 Y: S& f: W
- (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")/ t E& h/ a$ F) e
- (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")
. s \+ |2 D1 h; @8 M: }9 s4 o - (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")
) }4 f. |$ j2 S$ L: J - (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")
$ W( ~" |1 y' _8 `) |+ o7 X& \ - (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")5 { C7 R2 C+ ~
- (action_tile "ucsp_prev" "(ai_ucsp_prev)")7 g, ]5 ~* Z3 a; O* ]7 G
- (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")") j# p% [. ?7 D1 r
- (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")3 u! ?5 f! q( s5 Q9 R3 H& B
- (action_tile "accept" "(done_dialog 1)")1 K' s' H, }9 B! M A
- (action_tile "cancel" "(done_dialog 0)")
! b ^. L# O* }1 R: z/ T8 F$ n( _! N - (action_tile "help" "(help \"\" \"DDUCSP\")")/ l: J5 S1 K W8 n3 s! n( d
- (if (= (start_dialog) 1)
6 Y7 ^6 b. U4 G - (ai_ucsp_set); m5 u5 H% U8 h+ o
- )
" | Y8 S j4 K. l) M - )" I$ w$ u( F. Z W
/ ]# J7 H" K* Z. p6 p6 c- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs # b4 v3 u0 B. B6 [
- ai_ucsp_sw undo_init)
: P" U5 g; T9 W( g6 A) R$ N7 O
' P, k, t2 T& p' h! a/ U4 a- ;; Set up error function.
7 ?+ U9 h3 D( P& x - (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho
/ C/ @* ^) C I" W/ { - old_error *error* ; save current error function
# L' ~) F: d% E+ W3 S: h I - *error* ai_error ; new error function6 B3 A% i- K( J) X* M+ m3 u H
- old_osmode (getvar "OSMODE") ; disable OSNAP for duration
5 E: e1 M+ b* Z, q8 D' s% a" x - )
6 i8 F1 L3 h- S9 s - ! _: z8 N- U! L- @4 D
- (setvar "CMDECHO" 0)
7 p. b4 {, |" w$ | - ! [# Y/ `3 Y( X. x) p8 E1 L8 k/ E
- (cond. O5 Y) [' L J: @
- ( (not (ai_notrans))) ; transparent not OK
3 T8 M- h7 Z' J! x6 ?/ W - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
, {: u/ I0 ^; \# z& R - ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?3 C% P) f3 e2 _: G& u
- (T (ai_undo_push)" d8 m& b+ z) D9 H. v
- (setvar "OSMODE" 0)/ X( j0 A* _! H! L V' s
- (ai_ucsp_main)
& K9 @, R) X' _: k6 p: q0 h* m, ~ - (setvar "OSMODE" old_osmode)7 h& z5 T$ z- H% ?: N
- (ai_undo_pop)
/ G( e" o5 q- N& L$ m - ). n& \+ ~; X' p( x5 r3 t2 g4 r
- )( ^* a7 }( j1 r0 M3 W
- % W$ V* o. o3 e9 o
- (setq *error* old_error) . b' ]3 r ]+ `* d5 P+ V' l# U1 }
- (setvar "cmdecho" old_cmd) W# d3 l/ N( Q' M, d- ^
- 4 f6 v6 [4 Y! t' o
- (princ)8 T+ P# ?- _+ H9 l
- )
3 h) q7 n3 _! I- _* O - " E9 u1 n- ]5 V
- (princ " DDUCSP loaded. ")
+ n: h6 F" L4 B4 U - (princ)
6 Z u/ \; H* B: r) q3 B' i - ( |$ p" s( l( S6 `5 a3 i" O1 R5 T
- ;;;???;;;---------------------------------------------------------------------------------------) z& o, J3 @) B. l- X6 F! K
: ^& s0 |+ _5 w0 E" Z( e5 j- ;;;----------------------------------------------------------------------------, q; u6 ~( m" ~8 A
- ;;;1 S1 x5 E2 T# N" ]; t! }7 I D1 z. Y
- ;;; EXCHPROP.LSP
7 y' E2 i, N. H4 n" S4 y - ;;; Polyline and text modification capabilities added by
7 W4 `# d! S; M. E9 Q - ;;; Randy Kintzley k; f0 p: H' Y. F7 \. b! m
- ;;;
, z1 A: J/ D& |" Y3 d: z6 M& l# C: j - ;;; Copyright (C) 1997 by Autodesk, Inc.0 F3 f. e+ I) O6 [& C+ F
- ;;;# C3 y8 K G5 ]2 o E4 @
- ;;; Permission to use, copy, modify, and distribute this software6 \9 ]9 G' a% C( ?6 E
- ;;; for any purpose and without fee is hereby granted, provided
2 S$ \3 Y5 M1 A) P8 A) G - ;;; that the above copyright notice appears in all copies and
7 F: |8 p. r" o0 S) |: F - ;;; that both that copyright notice and the limited warranty and; o) i$ t) U5 F
- ;;; restricted rights notice below appear in all supporting3 Y+ T. j! F5 D
- ;;; documentation.5 B' O* d8 J% X( l" {
- ;;;
' d5 O3 V, W! i" a- D - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
4 f& P0 ~: ?) S+ C1 |- U- ~ - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF" s& A7 I" G2 c! ?4 y2 I, l
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
8 D8 p' |" x& \& r" O* N - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
' w. Q) S h, O/ a/ I - ;;; UNINTERRUPTED OR ERROR FREE.. D) u# c8 ~0 G( l6 R2 X3 u% ]
- ;;;
" X2 `! x8 C4 {/ o0 v, C6 E - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
) D% x, u5 K0 I( L% o# p+ v - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
' H( {2 b3 Z4 c& x9 S8 k; N" y - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
j8 q' T# B) _ R `7 L) F: P - ;;; (Rights in Technical Data and Computer Software), as applicable.
7 L" k. a. I" b7 L/ \3 F5 @ - ;;;( b# n: n' _8 a% q9 x
- ;;;.
; C' ]% _& d. N - ;;; 28 February 1997: F% c7 `4 ?& H% Z" B
- ;;;8 n- @- z5 f, F2 Q7 d
- ;;;
. t8 v9 I, v: a - ;;;----------------------------------------------------------------------------
v/ m' B! ^3 v3 U, E, Z - ;;; DESCRIPTION) ^, @, m+ S( }2 s
- ;;;----------------------------------------------------------------------------
: q$ c8 T0 V& ?& r: w; R1 u - ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This
+ J- m/ a$ G& Q m - ;;; command gives the user the abilitie to change several characteristics
! Z' o' b& s$ c/ m4 f8 ? - ;;; of selected polyline and text objects.
4 m5 D. T) Y. L( _ `) L [" I - ;;; The style and height of selectected text objects can be modified
% {6 H; h0 c6 W - ;;; (including text, mtext and attribute definitions) as well as, width and
) [1 k' G0 }$ d& O3 t - ;;; elevation characteristics of selected polylines (includes lightweight and
1 @% K9 p7 M$ t* s+ m/ M/ \( T - ;;; traditional polylines.)! d1 \' f- K2 w- ~: X7 H8 m
- ;;;----------------------------------------------------------------------------7 t8 \# I) M; h
- ;;;----------------------------------------------------------------------------; @3 b! o0 @/ h& ?
- ;;; Prefixes in command and keyword strings:$ r8 J2 z# P5 r/ O2 x+ n9 F4 g+ K
- ;;; "." specifies the built-in AutoCAD command in case it has been
3 N" k: Z) K. ^: t) q8 l7 s - ;;; redefined.
4 t& e q5 _* p - ;;; "_" denotes an AutoCAD command or keyword in the native language: S3 Y4 l, P8 N" M. H
- ;;; version, English.+ H! O1 D- x; t% ^7 T
- ;;;----------------------------------------------------------------------------
/ a$ [$ E8 T! k/ z - ;;;
- J. a0 M7 L; @. C/ y - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
4 b4 e ^" ]- ^ - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;, V0 g" t4 k* L5 [
- ;Functions created as result of loading file: exchprop.lsp
" Z& g9 T9 a4 O" M* w n# r - ; DDCHPROP2# v2 Z1 }& Q/ ~5 ?8 l
- ; DDCHPROP2_INIT, a, W/ w/ a- f6 C% J" l
- ; DDCHPROP2_SELECT
3 `" {2 U; ~2 n8 ~4 d - ;
$ ~: ^3 r: U4 F - ;Variables created as result of loading file: exchprop.lsp
4 Q! m! w. z) ~7 Q - ; OLD_ALLOC+ v# W9 M+ {& C0 ^# L4 @
- ;+ s; \+ |, t2 G8 V* \, _" O, I
- ;Functions created as a result of executing the commands in: exchprop.lsp- y! P" U! i( `; T) ]" g
- ;7 c, ~% O6 f+ S3 X3 |
- ;Variables created as a result of executing the commands in: exchprop.lsp; ?- G% N# h4 ?5 o( F
- ; AI_SELTYPE
7 @0 |) C; U0 G; T. l1 F - ; BONUS_ALIVE
8 H, x6 W$ Z; v7 e0 G3 ^ - ; BONUS_OLD_ERROR5 J: p; y$ c# u+ B% _1 j# e
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
j2 k0 h5 _' u) Y - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6 A( M! i" f" s, M
9 m$ `! f: q( h( F! L- ;;;* P- @& E2 F6 W6 Z
- ;;; Avoid (gc)s on load to improve load time.
/ H3 A m# `6 c( g! { - ;;;3 B G7 D+ } ]3 y7 x
- (defun do_alloc (/ old_allod new_alloc)
$ }# [8 G. V- T1 a9 ^, c - (setq old_alloc (alloc 2000) new_alloc (alloc 2000))+ d# ]* t1 ^1 u% Q% K" c1 b8 \% Y. H
- (expand (1+ (/ 4750 new_alloc)))
' s, z5 i- v. A/ X+ {% s0 B; X+ B& S - (alloc old_alloc)
5 h* U' g# j* ~1 }5 r/ K - );defun
5 V4 S4 s- K# C- e; F1 K - ' R0 q4 d7 L# P% H: L. J! `
- ;runs at load time - rk
1 h L/ T( J( Z" @& x' Q - (do_alloc)
3 I4 P( ^% J" Y+ A/ }" J% z1 Y - (setq do_alloc nil)3 B; l: h: O* z
- ;;;
1 q- w1 k) w# Y! I4 r2 K. Q - ;;; ===========================================================================2 j: l: n8 t' h
- ;;; ===================== load-time error checking ============================
& [: E$ _8 z+ o* u7 O4 m; a - ;;;
" D# D0 V! Q1 o1 W; V1 g
) T2 M% l2 ^9 m' N9 v; {; |- (defun ai_abort (app msg) ) r" x8 t' l. w/ J( k: R/ o
- (defun *error* (s)6 x/ I) p2 w8 B8 h( q$ y/ R
- (if old_error (setq *error* old_error)). C1 Q, j" I: O0 c' k3 X. ]6 |
- (princ)
3 H% z7 p7 ~5 _* ]" r- k - );defun
+ {: b9 G6 ~ @; I/ W2 B6 |8 g9 y - (if msg5 i4 T6 T6 V1 C; }) A+ p2 T
- (alert (strcat " Application error: "
- Z' \6 d% _- m& o) n - app
2 k- x& b6 |. i/ } - " \n\n "
4 \. q3 G: C0 g! p1 y - msg# L) W# s/ I6 L) ?1 H
- " \n"
: ]7 a6 y: m2 p0 b" k( m - )
+ c: N. w i* }: C" r, G - );alert
! Q& P# S% l8 G, F, R2 U - );if% k7 H1 A- y" F. v; V: y Q
- ;(*error* msg)/ \# h. r; F6 i2 t
- (exit)
% A1 V; e! J0 d% l - );defun ai_abort
" Z. o( S* Z7 N1 Y o& C" R( x- Z
! [5 P' y( |0 a- j- v8 t- w }- ;runs at load time - rk$ c% I1 X0 U1 \4 J
- ;(if (and *error* ;added the if wrapper around this - rk.5 @0 [& U4 V2 X2 B) b8 m# ]; ?
- ; (not old_error) / M& Q7 M) H9 a0 G8 y+ Y
- ; );and . i8 C/ E- m! H2 Q: ~8 }
- ; (setq old_error *error*);setq
$ O) h% |: A* X/ G, @8 k1 d, ? - ;);if2 {" ?* S' F/ ]# \/ F
, k4 N6 V$ L. }( i
) U8 F% h x0 T- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,' _1 R& d& t. }* I
- ;;; and then try to load it.
. z( C" u$ U# u! U/ R, x' h3 Y - ;;;
$ W% m8 R+ ^7 _5 w5 |" t - ;;; If it can't be found or it can't be loaded, then abort the
+ D' l) ^" c/ Z* F8 L! \3 S - ;;; loading of this file immediately, preserving the (autoload)
7 x0 W2 K+ l" X1 c - ;;; stub function., L m) c5 A6 o3 a- h, y
- . }6 |: w6 p t
- ;runs at load time - rk.+ s4 t0 a4 U& F7 K' V7 a F7 S
- (cond- K# H: }8 |$ f
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.+ M' h5 w6 y2 w1 l) a" _) a% r
- ( (not (findfile "ai_utils.lsp")) ; find it
1 b4 G+ n$ M; @7 \: Y: G6 F! `& S0 \1 m - (ai_abort "EXCHPROP"* U7 }' L' ~+ |( ^) n
- (strcat "Can't locate file AI_UTILS.LSP."! U6 d+ D3 I! r; X: f
- "\n Check support directory.")
- w9 U$ z5 i% l$ y/ ^4 | - );ai_abort
! y6 I9 {' `- g; w. T - )0 P4 q% R' U6 ~5 d, @0 b/ W
- ( (eq "failed" (load "ai_utils" "failed")) ; load it7 O0 X1 {6 F' U2 P& m& \5 k+ D+ Y! }
- (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")* ?% V6 Z5 y% f, s/ R- z
- )
, I2 d7 K% ]5 \0 R* N$ x - );cond close
q0 U# p+ x4 V6 ~/ T; V0 v - $ {5 B: t h; x8 H; e" A/ `! y
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP( g! q( N4 ^" a- [. I- }8 U
- (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses
" U2 Q/ A3 i. O8 z8 e5 Y - );if ; ai_abort's alert box dialog.
5 @; o+ \# q5 m% ~4 G3 |
6 U! a$ c2 Q, X% ~- ;;; ==================== end load-time operations ===========================6 I3 k4 g; b6 G% d7 x7 ?8 I
- ; Q5 l& i6 P# H$ l& t: O
- ;;; Initialize program subroutines and variables.$ q$ T+ Q' `! b# M4 j8 J9 U
- / j7 }# M3 ]: I6 g1 N
- (defun ddchprop2_init()0 f7 b) h# O4 j: s: V
6 W$ f& n5 I4 J. f
8 g: x" s' l. Y$ u5 B1 p
) W8 F0 M; J: b. g8 P- ;;
+ |: f; q% z& y3 ?# Q' z& W( s4 j - ;; Define buttons and set values in CHPROP dialogue box
. b( D5 s* S, q @' n - ;;( R6 n3 g: T I# L- J/ f+ P- H
- (defun call_chp2 (/ cmdact p1 p2)
7 t5 h" j% s3 U& F8 E1 Z
) P- m0 A( m/ k7 a8 P- (if (not (new_dialog "ch_prop" dcl_id)) 1 P2 v& Z. d2 W3 P p* }" I; Z
- (exit)
3 b" n' t+ C. P8 x3 F - )
) P& A2 @- G( ^/ ]* l( _0 |* c0 h - 3 r! Q+ g* [! A# k' d+ s. O* A4 |
- (set_tile "error" "")
* E7 c0 \: l. h2 n+ r6 D - ;; Set initial dialogue tile values
! r4 e; D7 S/ O, g7 x; w - (set_col_tile); q( B8 K2 o7 {. H+ W' W7 q
- (set_tile "t_layer" elayer)0 e1 u& L e. P! Q N1 Y! ^' Y
- $ s+ k+ T& G! Q3 ^
- (cond
; X- O" a* g& Z( e - ((= lt-idx nil)4 C( x! }/ l( Q) O
- (set_tile "t_ltype" "Varies")
& ~# t: F7 N0 V+ \+ Q6 C: e - )
8 u c3 L. @3 s2 ?( ~( c2 L - ((= lt-idx 0) ; set tile "By layer & layer linetype"( }; M0 H/ |% N5 z/ ^
- (set_tile "t_ltype" (bylayer_lt))
! l3 o+ Q/ t" [0 r; ? - )
0 A% g. u) U- K; e. r" {2 g - (T
5 K4 f) o& T: e1 q$ t$ n7 v/ j3 @ - (set_tile "t_ltype" (nth lt-idx ltnmlst))
- S1 T, q! V8 M9 d' ^2 [2 U - )
0 F/ _- C j9 W& d$ M - )8 u- P* G! e E8 G5 |1 m. R4 m
- - U# \# H ~7 D
- (if (or (= ethickness nil) Z* L; _# m, ?
- (= ethickness "")5 X! k' X0 \% p, Q* ]0 Z- ?
- (= ethickness "Varies")
3 m( ^3 O0 z' ?& w7 |' m' _ - );or
4 q- q0 w7 w; y; w2 i9 T% H - (set_tile "eb_thickness" "")
% U7 ^8 q0 u5 Q$ O; { - (set_tile "eb_thickness" (ai_rtos ethickness))
. M8 B( {( C' p2 l; S( w$ X: K - );if
p3 ?% n. r3 j* D" v. p) V7 ~ - (if (or (= eltscale nil)5 z9 K" u7 s+ {# u
- (= eltscale "")
# r) z3 |$ e6 M$ h - (= eltscale "Varies")
8 H* `8 O3 C5 a8 Y - ) o2 U& \5 f _9 b
- )
+ y6 Y. p7 P# y - (set_tile "eb_ltscale" ""), F* @5 b" f# o- Z& q
- (set_tile "eb_ltscale" (ai_rtos eltscale))9 ~. Q$ Y1 Z/ S; a
- )
3 z4 [9 Q* I* F$ A5 D - (if
4 S& d1 b$ t- m! `$ k& r- y - (numberp ewidth)
: ~7 m+ t8 [9 V: I* Z3 u8 K - (set_tile "poly_wid" (ai_rtos ewidth))
7 [7 \/ T, x7 U; O2 \) n7 i9 r/ R/ d - (set_tile "poly_wid" ewidth)) }2 _8 @- j, h" s! F
- )
" A; A" O1 {8 f* H, E9 a - (if# D( B, l" r) y1 O+ e7 A/ M
- (numberp eelevation)
' G4 ]: j( |0 g8 _4 b - (set_tile "poly_elev" (ai_rtos eelevation))9 J& g- q) b b% a
- (set_tile "poly_elev" eelevation)
( L* W" }* ^9 y! J) C: \: \( \ - )
. n x( `! d0 x$ [" v - (if; F" i2 N$ `, z3 z2 ` \
- (numberp eheight); A, J7 _' `( \
- (set_tile "text_hgt" (ai_rtos eheight))( Z3 L3 E8 g( A( ]) K: M
- (set_tile "text_hgt" eheight)# W% J$ [5 ]' c: }$ o' U
- )) u2 _1 v, }, L0 g/ E5 v8 L7 |# g
- (if (not estyle)
$ A; A; L9 J0 H0 q0 y - (setq estyle "")1 _6 R& U4 ]; Z
- );if
+ `) w! Y2 \9 c - (setq hair_style_list (tnlist '("style" 16)));setq# Z! F. Q. \* }% ^/ P4 D
- (if (not (member estyle hair_style_list))
% Z0 W) n6 S+ B0 p! P8 @1 Y - (setq hair_style_list (append hair_style_list (list estyle)));setq# J! O5 N% p. G/ i
- );if
% s" A/ I8 e( L* C" Q% K - T4 L$ v- z% P+ n9 M+ K
- (setq hair_style_list (acad_strlsort hair_style_list));setq/ e0 r4 y0 t; i" q* A, R" N
- (mpoplst "text_style" hair_style_list)4 j5 Y% Q, ~! |- b, U7 }
- (set_tile "text_style" 0 B- O4 X2 y8 H& i" s9 }! M! K
- (itoa (position estyle hair_style_list))
- q$ ?4 m, T' ?8 f4 w( a - );set_tile . W3 r, @- H) Q0 e& S( C" v% b
- - M0 S `6 h* C( S) a
- ;; Disable tiles if need be... ;@RK( I8 w& n! m- P, a, R. v9 D! n
- (setq a 0)
) L- y, r1 r( @5 E6 ^9 p - (while ( < a (sslength ss))) ]) s& w+ b& Q* ~* x) d+ p' g* p
- (setq which_tiles
% G& P; F% W; g2 [/ D - (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))9 X' T& s' _0 V. o4 v2 ~
-
; U& k( @ t. u( {7 g; z - ;; If all fields are enabled, don't bother checking anymore.
: a3 m. a/ m5 \, E& J: E- c - (if (/= which_tiles (logior 1 2 4 8 16))6 |) h3 t' y( J, p4 `
- (setq a (1+ a))
: {3 q4 h) ^7 U& ]5 Y - (setq a (sslength ss))4 g0 u6 l1 |& ~ J. s
- )- g. U9 a+ s( Z. Y0 L, |
- )! R3 W1 c9 u3 j, P6 y
- ;; Layer Button and Text Field
5 z2 m: R3 n7 U" V) P8 N
8 u) F) j9 H {& H- (if (/= 1 (logand 1 which_tiles))1 u ^' ]0 u1 o( X6 {4 d8 O! |7 w+ }
- (progn
q% E! G& @7 k4 P: t7 E7 o1 k - (mode_tile "t_layer" 1)
: p$ v: g9 U, J( d( A$ U7 w ~6 W - (mode_tile "b_name" 1)
`4 V O5 t3 c - )
( A- @: b! V1 _" ]! A6 ` - )! O" \ t+ {# f( Y$ T
2 Z* [( S6 y4 E$ K5 j/ H- ;; Color Button and Text Field' x! o; I+ _ J
- (if (/= 2 (logand 2 which_tiles))( \, {7 e4 [" y
- (progn o; n+ s; P; d7 J# P
- (mode_tile "t_color" 1)
3 _# T7 \0 c8 k( t e! o - (mode_tile "b_color" 1), V2 f4 e7 v0 m0 ^; e
- (mode_tile "show_image" 1)5 v% m+ k, j' y
- ): P$ B" ?+ r; Z$ t4 M
- )
5 }5 a3 D8 ~5 f7 b# A: l6 C' t0 G - ;; Linetype Button and Text Field
9 |& n2 D0 D7 k& r1 v5 E1 O% l - (if (/= 4 (logand 4 which_tiles))$ @2 n# B& z5 s9 v
- (progn
# p( d) a6 q& d- L3 z; b1 g - (mode_tile "t_ltype" 1)
7 m/ G; @2 z5 W0 o M - (mode_tile "b_line" 1)
8 w$ n2 l( e/ |% P - )
. o' s6 e/ R' ^1 a - )# I( E9 h) d. m1 N& g2 {$ l
- ;; Linetype Scale Edit Field+ @6 {$ W9 Y/ V, g5 G. p
- (if (/= 8 (logand 8 which_tiles))
, `% D% R( j" Q0 v* h - (progn
; f: B( T. b& R" g/ H" I/ O+ r5 i D - (mode_tile "eb_ltscale" 1)5 N! W+ @. c% F# a4 s
- )
- V. @6 L' v" s* B: T, f - )
4 Y% }% e5 y' a: K2 p3 s6 T - ;; Thickness Edit Field.3 q q7 c0 R; ]8 x
- (if (/= 16 (logand 16 which_tiles))
! Q# `# P5 h7 N I - (progn
9 i( Z$ b$ @9 \4 M* s - (mode_tile "eb_thickness" 1) {7 ?$ Q+ D. m; X8 p
- )
3 t. B1 C |4 g - )/ n" y7 C+ a3 g5 i7 q, V) {
- 0 _. u( R( `- j Y
- ;; Polyline box and tiles @rk 10:05 AM 1/30/976 z4 m: U+ Z V# r9 Q; s& O
- (if (not (= 2 (logand 2 eflag)))
/ c2 E2 J7 R& { - (progn
/ a B% O6 `0 i. v7 ` - (mode_tile "text_hgt" 1)
7 n3 q$ K# z" s9 w3 h - (mode_tile "text_style" 1)
. }7 M1 [! {* ~* d D! w - );progn/ y: u$ Q, w" k( c; G( {* j
- );if; |$ j2 S1 p. w. e
- (if (not (= 1 (logand 1 eflag)))" @ @ r6 |% f" w$ n% V- N8 f! U7 ~
- (progn + \2 v( r5 w p& i3 M5 x
- (mode_tile "poly_wid" 1)
p% |6 Q1 z) p& N- Y# c* S9 i - (mode_tile "poly_elev" 1) H* w6 E5 f- W$ Z, N2 t
- );progn then disable polyline fields: I8 e, @) @; @8 d; Z! K; A2 {
- );if4 | F* @$ G+ L9 G1 d* p( A
- + b. A; f, X& N9 w' A3 ~
- ;; Define action for tiles
' t2 n1 Q+ D' c$ r8 s4 ~& S% K: j, Y - (action_tile "b_color" "(setq ecolor (getcolor))")
+ ]5 [; G2 Y2 Y - (action_tile "show_image" "(setq ecolor (getcolor))")+ E- P/ ?' t- _; w% ] X- ^! W! i
- (action_tile "b_name" "(setq elayer (getlayer))")' ~( I0 H, x5 v
- (action_tile "b_line" "(setq eltype (getltype))"). r+ E0 S0 \ d) G# p
- (action_tile "eb_ltscale" "(getscale $value)"): z8 e4 \, B+ V( N4 B
- (action_tile "eb_thickness" "(getthickness $value)")" }/ c& l! l( [1 B2 I* r" v# d3 m3 p
- (action_tile "poly_wid" "(getwidth $value)")
1 o+ o& _) o* `$ V. S0 ] - (action_tile "poly_elev" "(getelevation $value)"). [7 Y+ m5 a7 Y% k( b
- (action_tile "text_hgt" "(getheight $value)")# o% j+ A* q' H: b
- (action_tile "text_style" "(getstyle $value hair_style_list)")
$ D( a- i, P% E" u- g7 e7 l - (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")! C& L( |0 x1 X" J0 C
- (action_tile "accept" "(test-main-ok)")' R$ B+ o3 F+ q$ e9 [
$ G7 {! V" o0 @1 ~; \- (if (= (start_dialog) 1)
2 L5 `. p; s! M$ j7 u - (progn
1 h8 [/ |. i$ p/ ]6 h. \, } - ; Update special properties for polyline and text selection-sets.7 T( ^) n) R. n [
- / F$ J* U+ e$ m7 W/ S% F- g
- (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop( @+ j; {' j. S" T
- (or ewidth
9 g& P8 Y0 Z5 d - eelevation, o* k' t$ h8 T8 x
- );or: [4 e+ C, a' J& h# r" V8 r
- );and
) ?- V+ M9 j8 ^) S+ \$ W8 ~+ b - (progn
I( F/ f! g, y; |9 G B. M+ a- v - (setq ss-index 0
0 }7 b5 @5 n' s" N1 y. o - ss-length (sslength poly_ss)
% u9 ?) b1 w& @* i8 E: f+ E - );setq) v3 x" t: B1 C2 i% l5 E5 _
- (while (< ss-index ss-length)+ g5 a( n- ]: K. b: j, ?
- (setq ename (ssname poly_ss ss-index)
" {& a) A! ?' G( | - elist (entget ename)
& F1 \7 t( ?$ ]. x - );setq. ~& Z, j6 I) x! t" B' U
- (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp
8 G7 m ~/ n3 h6 {. z/ S - (if ewidth ! R1 T2 g7 c, t0 V! y% r3 D# p' h, ^
- (command "_.pedit" ename "_W" ewidth "_x")
( w( d' W! c6 K/ `1 T; k - );if ' K1 s9 J7 |0 m" f9 q, O
- (if eelevation
]3 g7 M' U8 L0 ]& ^4 d |2 W - (progn
9 S; Q7 k: E: N - (setq p2 (list 0.0 0.0 eelevation));setq
7 X, L( ]' G0 D# `3 ], s - (if (equal (cdr (assoc 0 elist)) "POLYLINE")
) S. B0 V5 Y2 _8 v6 W - (setq p1 (list 0.0 0.0
2 ~1 ]! l! }6 v - (caddr (cdr (assoc 10 elist)))
/ S+ [/ A9 G; D' A# D& k5 b. y - );list$ B8 ~: w- Q1 _ T. ~
- );setq
8 Y& Q" r4 y% w$ A6 R$ J! G - (progn
& t/ w+ v3 ^, a- C9 i1 @1 I - (if (assoc 38 elist)( t9 s, k& ~/ v, o% _+ ?6 I
- (setq p1 (list 0.0 0.0
9 I' [% x+ G6 c+ V7 d% M - (cdr (assoc 38 elist))
6 v, D5 w% j8 [* P% {. a - );list" x, R6 N% a3 B8 D
- );setq
! C/ o6 y0 k) ? - (setq p1 '(0.0 0.0 0.0))
. V1 S! U% x' E. b2 |! ] - );if
1 b1 t9 z' f% G$ G, Z - );progn + |2 r9 i$ f; Z- [/ j' r& g
- );if N* {. N( p5 J% D4 x' k
- (command "_.move" ename "" p1 p2)2 m9 T% s6 g& e7 t5 L" i! |, h
- );progn then change the elevation of the polyline
$ t; h/ n2 F9 u, j0 ~9 s - );if3 `3 [' e4 O' ?, N( ^( Z
- (command "_.ucs" "_p")1 C, G( v L8 n
- (setq ss-index (1+ ss-index))0 |6 w4 d: e' d9 J
- );while" z9 Z6 F1 }0 j4 v
- );progn then polylines are in the selset
) @# |, c# N0 l; G3 \ - );if, z. [; M4 a5 U
- (if (and (= 2 (logand 2 eflag)) ; text
' L: u, ]- Y B1 }: g% S0 v - (or eheight . H9 d, @$ v' x( J% c
- estyle) B) e, b# M% I: Z* r8 b
- );or0 u9 H+ f( u" y9 ~; K0 y8 `
- );and
" k1 J. P8 ~6 p8 H, k* D' C - (progn
6 s- r" c3 V0 H( T7 C - (setq ss-index 0 ss-length (sslength txt_ss))
- I d2 U$ S6 v* ~: O - (while' X' I& b2 L3 L' s: G4 d
- (< ss-index ss-length)
& @* X# O5 |: e" t - (setq elist (entget (setq ename (ssname txt_ss ss-index))))2 s) L. d- K4 s5 u" W2 u
- (if (numberp eheight)
6 g* T* F+ e! x6 N; s. [& O5 Y - (setq elist (subst (cons 40 eheight)
! j8 c: }. z/ _3 x8 Q9 e3 J - (assoc 40 elist). }% }+ S7 `) k7 B$ p* W! u
- elist
. g1 J( d! b% @) o1 j. k1 i, X - );subst
# C0 t. Q. P" f+ ~6 N5 k4 H - );setq3 }7 g1 D- d( G" n8 `9 P2 J
- );if5 B0 |6 @& ^5 I [4 {
- (if (and estyle ;(not (equal estyle ""))
+ `( p" ?* i$ X9 t - (not (equal estyle (cdr (assoc 7 elist))))
) a% ?+ }0 f } - );and
9 ]: B) v r3 e1 u4 I6 k5 W2 M - (progn
& Y7 f! K0 k- n7 k# y - ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt
2 h8 l& G. v+ u% {9 T. m R. R - ;(if (equal "MTEXT" (cdr (assoc 0 elist)))2 n, `' z: T F% W& U
- ; (setq elist (fix_mtext_fonts estyle ! `( i! K$ Y5 ]$ Q# a
- ; elist8 Y/ D& H7 y' _# ~: M. I3 \
- ; ); F# i+ Y8 a1 P9 T8 C. o5 Q
- ; );setq then
0 L* @# s2 t! P: z- @ - (setq elist (subst (cons 7 estyle)
+ r8 z& t2 X4 h, w9 V3 _+ c' _ - (assoc 7 elist)
G8 a3 Y7 J# z6 T, o; o* E% F - elist( o; M* U! l- ? D; q
- );subst
; J* l' q5 n! d8 t: Q* t, ~ - );setq else
2 l+ f% V) n5 ~# x8 _ - ;);if " `% a. n. d3 m* T3 w* o1 i
- );progn
( o6 }/ y }3 K1 D% }* M+ l- R1 o! `/ t - );if
/ d4 K/ i9 P( v - (entmod elist)
) X- d" {% P6 i8 ?! }9 ? - (setq ss-index (1+ ss-index))
$ F: v8 K% d2 D% N& Q8 C - );while3 s- Z! t7 }0 s; A
- );progn then* u e" v: H4 A$ [
- );if
; W( J) a1 u; u7 d& I
- d$ j, J2 \5 G1 j1 l! V- (setq cmdact (getvar "cmdactive"))
, a+ J& M# J9 U0 s4 b/ m- w% b - (command "_.chprop" ss "")
: {" Z( d+ w; y" v# x - (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?
( d0 z) G. A6 G) S2 a - (progn: v# \) v+ Y& h2 O! k! e! Z k) s
- (if ecolor5 l- w8 M0 ]; G2 L
- (progn
2 x( G# J% }$ @2 O, d+ n; Y& T" e - (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK"))9 `+ |$ c% k% g
- (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))
* o. z z" o; e) h - (command "_c" ecolor)$ M4 Q+ R1 I; N- s4 k v
- );progn then1 Q T v3 {( g; i+ g) O
- )! f* T; }( n( `3 K t3 k/ s, `
- (if (and lt-idx8 H6 t; N& R. ^3 g! n6 `& [0 r
- (/= eltype ;|MSG0|;"Varies")
7 V K/ o# ?# S" l - )6 @2 W$ W9 r1 U; |) E: W9 C O4 M
- (command "_lt" eltype)) A! y1 D1 j: c+ d w) N. C" F
- )
3 E! V# o2 W" m5 o - (if (and lay-idx . [ q, O; E, i8 N2 i1 [
- (/= elayer ;|MSG0|;"Varies")4 l8 a0 s) ^0 K- y0 Q; r$ r7 o
- )
/ A* A& z" s' s9 B5 {/ K; {5 F, N8 t" [ - (command "_la" elayer)
9 f' @1 {/ e8 B - ): F' N9 R4 |; K! X
- (if (and ethickness
( B& x5 N5 A; S, D6 D! u - (/= ethickness "")
+ |! d8 r3 ]/ ?2 V6 \/ D - (/= ethickness "Varies") - v5 i/ W7 A0 b: }
- )
; e% e) I7 \# T5 V& | - (command "_t" ethickness)7 K0 A: x. J; R M
- )
4 z& Y- B- @! u - (if (and eltscale (/= eltscale ""))
9 d1 T- r+ _" t4 e, R - (command "_lts" eltscale)# _1 h$ F6 D( D' y
- );if
8 Q$ X' g. v: b# k" @7 ] - (command "")
) C, u4 o# U- a9 Q) l- g/ w - )- y! P! w: C" N2 ~+ x8 L( F. |% q
- (princ "\nProperties unchanged") ; CHPROP didn't like our SS set3 f& d, m1 u/ V& b, B( _) z3 M
- )
6 O6 C% U0 U4 m - ! q; @! x" [1 h
- );progn then OK was picked in the dialog.# w4 z3 O$ r8 n. V3 ?. H9 y7 x
-
$ F+ _/ L! ]& Z4 E1 D0 d" s2 h - ;; Fred GERBER - 25-AUG-94) B) o; Q! A2 \: t
- ;; Don't print the "Properties unchanged" message when the user cancels# a, B+ q& A( G
- ;; the dialog because he knows that already (otherwise he would have* P$ ~/ @3 G' ^; w; @7 M
- ;; hit the "OK" button). Display the message only if CHPROP fails for+ O7 C/ m9 Z Y! Q5 E& Q
- ;; some reason, because it is not the expected behavior of the command.- E7 g" M l% P
- ;;
# P* F2 u( W/ Q7 t - ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")
% c( @; V% N1 b* N - );if
! H( A; ]! [: {% E& ? - (princ)
, V# W' L# o+ b+ ~3 A - );defun call_chp2# C7 ^$ ], p _, G. _) ?2 g/ f* J, v5 y
- ;;9 F0 e" Q" f/ a
- ;; Function to set the Color text tile and swab to the current color value.
6 g1 ?* g; Z% P, y4 C, S4 Y - ;;
) P9 F1 J9 M& g) J/ u - (defun set_col_tile()) r& b2 N# u; I
- (cond; |) U# X& ?3 ~8 f" V! H, p6 Y0 ?
- ((= ecolor nil)) S! F0 l6 v6 H: P
- (set_tile "t_color" "Varies")
l( f% |: ^6 F - (col_tile "show_image" 0 nil)
& ]* f7 D& j/ }5 d5 n - )' n$ B; L. @ [' ?3 I, b
- ((= ecolor 0)
6 c1 v! f% R' ~4 O- V ] - (set_tile "t_color" "BYBLOCK")+ h& m2 V: w# I; g& \( ~8 J* m1 y; r
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white
4 g6 Z. R7 |, \/ H) x1 X2 e8 _ - )
2 m' }( t9 n" G j- N- O - ((= ecolor 1)
4 |3 t+ d# I+ }" V. U. I - (set_tile "t_color" "1 red")3 | \: F) w7 @9 j% J+ y
- (col_tile "show_image" 1 nil)
, p7 V0 Z4 w% ]! v+ j - )
0 t9 u! i4 d0 O - ((= ecolor 2)- R# v+ }8 i A& M" b. q# D* p ]2 S
- (set_tile "t_color" "2 yellow")1 ^/ L2 y1 h" x: b' s3 N
- (col_tile "show_image" 2 nil)+ Y8 j; z! u/ \6 y) g' Q' f. {
- )
4 r4 e" u3 U* ? - ((= ecolor 3)! k+ l) Z6 j$ X9 ~
- (set_tile "t_color" "3 green") O. R5 {; Y% }9 O" H
- (col_tile "show_image" 3 nil)5 O& M* D! k$ J& L) H* P0 \
- )
' [1 B" A2 j+ c. r- y8 ~8 m% S - ((= ecolor 4), D( p7 F! E+ r
- (set_tile "t_color" "4 cyan"), R5 _7 M9 @; g: {- {2 Z5 E! b
- (col_tile "show_image" 4 nil)
8 p, I- {5 p$ r3 m - )
4 N8 G( D6 h- f$ h9 q6 Z |- V - ((= ecolor 5)) r" B* c6 s5 j( T. }" N2 u
- (set_tile "t_color" "5 blue")
* [& r8 U7 ?# b" i - (col_tile "show_image" 5 nil). m- A" ]- D% T, v. R
- )' G: v" P! q, e6 |" [6 h
- ((= ecolor 6); j ?3 w" m8 o3 f7 L
- (set_tile "t_color" "6 magenta"). \+ G1 A }9 e/ b3 {# t
- (col_tile "show_image" 6 nil)
7 Y1 M( g [. D" j - )
0 j/ ]$ ]' ~# N - ((= ecolor 7)8 P0 w `6 q& {% R3 K
- (set_tile "t_color" "7 white")5 }4 [ a+ B5 Y. ~% @ [
- (col_tile "show_image" 7 nil)# l: F; f! s, }. {" R4 }' B
- )
9 M. |& f$ t: y3 F f - ;; If the color is "BYLAYER", then set the tile to6 `, y7 K$ E2 F. n
- ;; show it's set By layer, but also indicate the7 k* M1 u1 V5 \! D2 S! I6 X0 d
- ;; color of the layer - i.e. By layer (red)" l3 A3 N; h$ C
- ((= ecolor 256)
+ a2 [! A: S- ^) O- z - (set_tile "t_color" (bylayer_col))# q& Z% s, G6 X, R: I: j$ o* O8 t$ n
- (col_tile "show_image" cn nil); O) E5 N) `3 M U3 e6 g
- )
$ p+ ^8 H" x% s9 g2 N! W r9 s - (T( O( F( c% F6 {$ R5 E
- (set_tile "t_color" (itoa ecolor))
8 `* d2 ?& d6 ]- t - (col_tile "show_image" ecolor nil)$ R2 R- b: m& T8 H# m
- )
P' R& {) S& X5 z - )1 u6 N! o7 _* W! x
- )
2 G5 |; \8 p7 S# z3 r* X - ;;
! s" r# O' C& E! {$ b) u - ;; Function to put up the standard color dialogue.
9 _: R$ A& v3 P3 Y( _ - ;;
0 I6 z" d' p, R# N! X- V: g - (defun getcolor(/ col_def lay_clr temp_color)
. ^5 i& Z2 S2 f g# h) P/ X - ;; col_def is the default color used when rq_color is called. If ecolor
% z: K, }7 f! [1 Z8 F& q - ;; is nil (varies) then set it to 1, else use the value of ecolor.
$ z. @2 ~8 m* V& [ - (if ecolor
6 y* g# k; [' y. b* k - (setq col_def ecolor)/ l0 x2 n9 f6 |( K
- (setq col_def 1)/ T; K4 U0 H" N0 S/ I1 b
- ), T, r/ s# m5 w+ I! B7 b
L: h! u% B- _& G) w- ;; If we're working with a single layer, get its color
2 k) D/ q; w" h$ D. R - ;; for use in the color swatch if the user selects color BYLAYER.8 Z' H+ d, j& o8 a4 s% {
- (if (/= elayer ;|MSG0|;"Varies")# q% _: V: d# B5 _+ ?6 G6 y
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer)))) W% G( Z6 t6 @8 |: c
- (setq lay_clr 0)! Z, g) h j4 v/ z9 c! }9 G
- )1 |- j% p2 V( t3 ]0 i5 x
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))+ w/ c% j3 ^3 v4 b
- (progn
* N; ?, w2 p6 J4 F - (setq ecolor temp_color)
5 H" ]! o% X2 f5 y - (set_col_tile)
, ]" S2 i, T6 j+ d1 h2 z7 r( E# I - ecolor2 R5 o1 K! |, F/ p
- )
- V" M5 j/ {* U+ B5 m R! f - ecolor
% o8 R; G5 X8 s! @; d( @7 o - )
9 L! Z2 [8 Z, v8 N - )
6 V5 ~8 b1 K2 c& a L3 T$ c - ;;
! g) s5 D: H k! v, ~! x - ;; This function pops a dialogue box consisting of a list box, image tile,
5 B% b- i" s \8 \$ E - ;; and edit box to allow the user to select or type a linetype. It returns
' E# v; X2 E3 K Q S( u2 z' ] - ;; the linetype selected.
/ V& ^* s4 O7 Y( }& b- Q1 O1 V6 L - ;;
* r% b! R1 Q0 ~# t - (defun getltype (/ old-idx ltname)/ X* S7 W1 y, T
- ;; Initialize a dialogue from dialogue file
$ k6 d) t' ?0 [ - (if (not (new_dialog "setltype" dcl_id)) (exit))
6 \. ?" b% u1 e; [+ B4 O - (start_list "list_lt")
9 h4 p0 Z6 K8 |$ p - (mapcar 'add_list ltnmlst) ; initialize list box
& g9 }7 {6 g( p* x2 ? - (end_list)
! R3 p' _! p% P2 j* P - (setq old-idx lt-idx)
$ m: Q/ t g# A) q4 ^ r# F& i6 ] - ;; Show initial ltype in image tile, list box, and edit box5 Q8 g3 w+ M0 a2 u+ j6 L& e/ x
- (if (/= lt-idx nil)' L9 ]: f; k9 M, J9 W1 I
- (ltlist_act (itoa lt-idx))
- O4 i9 m* s+ Y1 i5 Y+ n3 N - (progn
; U- Z0 }: i; T' @, P) }+ N6 `/ F - (set_tile "edit_lt" "")
7 G8 }- A1 g) k8 b - (col_tile "show_image" 0 nil)
6 }$ G% b2 P. u - );progn else' @" T( e+ _3 z, {9 x
- );if
3 J) q8 X9 M( C5 @ - (action_tile "list_lt" "(ltlist_act $value)")
/ f4 W3 b0 n; j2 `2 s1 R' A - (action_tile "edit_lt" "(ltedit_act)")
. _0 D) [5 S" Y, u3 ? - (action_tile "accept" "(test-ok)")
) n' Z! D0 i5 Y3 G, M - (action_tile "cancel" "(reset-lt)"); e4 _& M0 H$ M6 R5 U U$ O& }
- (if (= (start_dialog) 1) ; User pressed OK
, ^' S; n. L, Q- B6 }$ V - (cond
# |7 A" Y4 H/ s# V" k. L - ((or (= lt-idx nil): C9 d: d- o; A8 b8 M/ X7 J2 w
- (= lt-idx (1- (length ltnmlst)))
& W6 H' O; k# H. Q- i - );or
9 m% s8 }7 ?1 Q4 S, J$ @ c - (set_tile "t_ltype" "Varies")/ T6 X; | Q" \9 \
- ;|MSG0|;"Varies"3 H! j, n% A" r+ [% c
- )3 Q6 h0 L! P p e5 \. r8 l
- ((= lt-idx 0)* ~7 o7 \7 w4 N0 [
- (set_tile "t_ltype" (bylayer_lt))
# v, |( z. P2 L* H# h7 }0 C1 h - ;|MSG0|;"BYLAYER"
" r0 Z" z# i5 U' W7 x. u - )
n& g( g2 X- C2 ` - ((= lt-idx 1)
/ w8 S' d0 u; \+ Q9 d0 P - (set_tile "t_ltype" "BYBLOCK")
1 h/ N) A4 N+ M4 P - ;|MSG0|;"BYBLOCK"
8 Y7 C1 u' h0 |2 g2 f* _! Z - )5 i+ u V- g! M( q; ]
- (T5 n/ h# @+ _$ V! k
- (set_tile "t_ltype" ltname)
' u- y7 d& `( n- H2 f7 W) @ - ltname- a! Q& v0 ~1 Z/ C7 ^* L
- )! f& x2 s& f M5 W1 f
- );cond then: {) f6 H1 L$ c8 P) L
- eltype
5 O0 X5 Q5 @: w, k) F* E1 q - );if
- U. U8 F- f) V - );defun
& i. m( Z3 q9 U ?/ z% K - ;;
- t5 [9 N/ D# L4 u. _6 A. n - ;; Edit box entries end up here
3 h! L' n( V: W( `$ Y$ A - ;;
4 E U/ z6 ^5 L, z9 j, J7 A( Y9 Z# e1 a - (defun ltedit_act ( / flag)# J+ }' h% U; [* @* N0 q
- ;; If linetype name,is valid, then clear error string,- Q6 A+ O ~( B7 e' x) i& H
- ;; call ltlist_act function, and change focus to list box.: ^. u8 b7 S8 ^' s
- ;; Else print error message.8 Z8 n" k7 B* h$ W. l; x/ `
- 4 Z% w' }* u5 w# {* u" O( r
- (setq ltvalue (xstrcase (get_tile "edit_lt")))" @% ^# [4 `" F
- (if (or (= ltvalue ;|MSG0|;"BYLAYER")8 a: O) @5 z$ E
- (= ltvalue "BY LAYER")0 _, w; g* t; J% n/ Y; H
- )* n; j! I; d* t7 b a2 A
- (setq ltvalue "BYLAYER")
" l4 H) X" Q g* ~# b" C - )
# p8 P, {& \0 Y) {/ V7 a6 f u - (if (or (= ltvalue ;|MSG0|;"BYBLOCK")
- ]5 \# x! `4 P9 h - (= ltvalue "BY BLOCK")+ C* m% P6 I. U1 J' e' H
- )( }; C, Y* |; Y; Y" ~! V
- (setq ltvalue "BYBLOCK")3 q8 k7 Y& z# L$ G/ x
- )
7 |. f, `, y g# B, f - (if (setq lt-idx (getindex ltvalue ltnmlst))5 v/ f2 }8 P$ Z0 x% o# N
- (progn
: {8 q7 ^; o5 x% C- j3 G5 C - (set_tile "error" "")4 O) d$ E- F' ~( n- j: g
- (ltlist_act (itoa lt-idx))$ v8 a2 T' r) |8 p( c8 B
- ;(mode_tile "list_lt" 2)
, d: W d9 f. Z4 Q9 A+ {: m! l - );progn then5 i. d0 D, m& U
- (progn0 y( o) L! N# W q$ [5 d3 ]1 W, y
- (if (/= ltvalue "")3 g- C& n R& J1 Q9 ?# U* k
- (progn
) V6 S1 \! E2 G6 K' B; |+ f - (set_tile "error" "Invalid linetype."); x" |$ C) y# v5 y* m! R. q8 R
- (setq flag T)6 d; \* F. {& Y5 R
- );progn% l; I& ?/ \; @2 _6 l& M8 v) Z
- )
: D1 S; V d; m8 Q. K+ {9 d0 ?9 Q' X - (setq lt-idx old-idx)/ K! S* Z4 B. i
- );progn else
1 o/ S' O! g) @: o; {! e - );if
! s' T; b* E8 ]9 Z8 L% ] - (if (and (not flag) ;added so a return will take you out of the dialog.1 A& `* E: e2 G* [2 V
- (= $reason 1)
: Q( X1 H7 O6 }9 l3 P - );and, \7 l" v3 v* ^% I5 L' p
- (done_dialog 1)
/ ]' i4 A: {1 ^ - );if
5 S) d( ~/ B, f5 z - );defun ltedit_act
8 L. K; S3 }( ?" R/ q6 r2 G - ;;7 J5 R. O7 H/ u" N% }1 v
- ;; List selections end up here
; a9 k8 d: T' F* _$ ~& t - ;;( ]+ @9 G' B* K
- (defun ltlist_act (index / dashdata)
9 r0 K( U9 H5 k- Q3 F7 V# I - ;; Update the list box, edit box, and color tile' M! v& x' |3 m
- (set_tile "error" "")
, m- S; W% s3 n, c+ k1 v W - (setq lt-idx (atoi index))
1 o! Y+ v, I6 x - (setq ltname (nth lt-idx ltnmlst))( I$ s) N J/ z" G1 W. c& ^
- (setq dashdata (nth lt-idx mdashlist))% t4 a. \; a: w% @, f1 K
- (col_tile "show_image" 0 dashdata)* G4 ^9 ]& |, M. B2 v2 q
- (set_tile "list_lt" (itoa lt-idx))
! B q# E8 t& M8 N2 i( g1 h - (set_tile "edit_lt" ltname)9 N" N/ x6 S* y1 f; ~/ D% {
- )
4 ]/ v Q; O0 b- T5 A7 G - ;;
2 m6 {' g! X6 n/ g - ;; Reset to original linetype when cancel it selected
! ~% K0 J0 k. d) a" ~' [1 D; o - ;;
: o% G+ H; E7 z3 l4 l3 [, h) k - (defun reset-lt ()
9 K Z; L8 O# x, ~! H: N1 s$ \ - (setq lt-idx old-idx): @# r# a" W& _2 {7 ?
- (done_dialog 0)
# s0 F& G6 D/ c8 t8 t' `+ U+ ^ - ): o0 q) {. p) _9 V+ r/ B9 o
- ;;
" I/ B& X; j8 Y; M6 U4 t& J! H' T - ;; This function pops a dialogue box consisting of a list box and edit box to1 j! E; c' D: S7 {' e" U3 W* W
- ;; allow the user to select or type a layer name. It returns the layer name# J9 W# |7 I& B" z% O/ _
- ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the
# ^0 h& f0 Q N$ F* J - ;; drawing.
8 [9 D4 |6 \) M! M - ;;# ^; l$ F6 {" d7 S9 m& C
- (defun getlayer (/ old-idx layname on off frozth linetype colname)
: {4 V9 I y' s5 w o& R - ;; Create layer list the first time the layer
( a+ \+ y8 i' [5 f: ~, L6 N - ;; dialogue is called.
3 X0 D6 o' f0 ~; w, {7 `6 [ - (if (not lay-idx)5 ?9 e. z& @* Z5 e( m3 v& X* J
- (progn1 p! `3 n' C& a$ o: n
- (makelaylists) ; layer list - laynmlst2 H- n0 n" k$ e, Q" M9 m/ j
- ;rk
. b- u2 _" n g; y( p- w: S - (setq lay-idx (getindex elayer laynmlst))# O/ ]* V% M9 \" R) Q
- );progn! ~# a2 b! G9 i6 n6 W; [
- );if
7 h: y: i: g. d; Q. a - ' G A# k& o+ ?; [' z
- ;; Load a dialogue from dialogue file+ \3 k# y! Z. z( x
- (if (not (new_dialog "setlayer" dcl_id)) (exit))3 S1 C* H( v; E
- (start_list "list_lay")
% I9 H0 H5 ?- M6 ` V! K: x - (mapcar 'add_list longlist) ; initialize list box$ H. r/ h' V9 c1 z+ s
- (end_list)5 b* U4 Z# ]$ j; \$ i- k
- ;; Display current layer, show initial layer name in edit; ]0 Z- y: l/ x( _9 T
- ;; box, and highlight list box." a8 D* X- f8 W: t. l
- (setq old-idx lay-idx)
7 l$ n7 ?/ ?7 r* x4 g/ R - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
- m r1 n6 Q! P. l. Q# H - (set_tile "cur_layer" (getvar "clayer"))$ ]4 z+ l/ P7 O1 X8 y$ f0 u: {
- (action_tile "list_lay" "(laylist_act $value)")
; f& Q0 R/ c9 {% |& v3 ~8 q5 V - (action_tile "edit_lay" "(layedit_act)")" c) Z% D/ f/ k1 s
- (action_tile "accept" "(test-ok)")* R* `) Y5 e$ y2 ?
- (action_tile "cancel" "(reset-lay)")
+ B- J3 b3 ?( S. M8 q3 |- L - (if (= (start_dialog) 1) ; User pressed OK' e* g/ s# I- Z- c& q
- (progn$ l" a2 ]4 j: e: _, K& D
- (if (or (= lay-idx nil)
& M$ B. \. t6 P! }9 { - (= lay-idx (1- (length laynmlst))) U: F8 _5 G+ B/ F( g" k
- );or" _2 B/ v4 j' X% [
- (progn5 e/ G; d) t; z
- (setq lay-idx nil) 7 M6 t4 K* a+ n# S
- (setq layname ;|MSG0|;"VARIES")
5 ~+ u- M: R% z! @/ P. p - (set_tile "t_layer" "Varies")
- H" A' n2 L) G! k- ~$ ? { - (setq layname "")" I' O7 z/ @) O; ], E+ u; G
- );progn# X( E" X6 Y0 E: u; y+ X
- (set_tile "t_layer" layname)0 X* j- ~( i" c+ n! l; R+ l5 [3 W
- );if
- X& g6 V. A, c6 A% a( ~# Q - ; If layer or ltype equals bylayer reset their tiles
, d3 D4 ~, f9 Z+ r( Z" ] - (if (= lt-idx 0): n) h5 ]1 R: h, O# I' U
- (set_tile "t_ltype" (bylayer_lt))
- n. ~9 }5 H9 t, E - );if
$ \. a& j: n- ~7 R% o - (if (= ecolor 256)/ M' `9 T' d+ N7 E
- (progn
1 C7 Q1 x4 {/ ]! t5 P+ | W - (set_tile "t_color" (bylayer_col))
' H: \, h+ g6 T% k' R - (col_tile "show_image" cn nil)/ [! {: u7 r: u ^4 G) r. n
- )! _* y7 b6 u a
- );if& g) u* ?1 p8 [3 S+ U6 h
- layname6 N6 i( s1 e6 }6 o* g" Y0 o
- );progn
7 @0 o1 i8 h) E' Q4 L' Z" P& S - elayer& M1 Y$ T& l" F( q
- );if
& h, O6 t; v" W) H+ C - ): z+ L" x5 F; Y4 ]5 z2 }
- ;;7 p, e# f0 M/ i4 g" y
- ;; Edit box selections end up here
( `1 b0 @3 j1 I, h. P - ;;4 `- l/ |+ @! Q4 S* A& W Y# ]1 K
- (defun layedit_act()
8 t% {/ r9 \" `: ]5 ?, J6 ]+ a - ;; Convert layer entry to upper case. If layer name is
( h, x- I! _0 o; \7 t3 P - ;; valid, clear error string, call (laylist_act) function,/ P: m3 F* e- Y! V) }7 }
- ;; and change focus to list box. Else print error message.) Z) g: b. K" W0 A/ z! O
- (setq layvalue (xstrcase (get_tile "edit_lay")))" b$ V7 b" s% V( K9 d' P
- (if (setq lay-idx (getindex layvalue laynmlst))' ^- j4 m' i6 m, t6 B
- (progn
! f3 z- D- R! S) w/ q4 L1 A2 K" j% D - (set_tile "error" ""): `$ [' m! L8 ^6 i- p
- (laylist_act (itoa lay-idx))
9 V1 N8 a1 V* f4 m0 V" { - )
) X9 e! j2 |' M - (progn; I, z7 o$ Y. q9 K7 R; u
- (set_tile "error" "Invalid layer name.")
) q# n' q6 l/ ?% h0 E( S1 D+ w' F - (mode_tile "edit_lay" 2)5 {( \7 L4 L2 b8 y, ~3 A9 o* l
- (setq lay-idx old-idx); T. {2 w# Q, R T! r
- )
" o$ X, \- s, F5 o9 T1 ` - );if
* m+ `0 x- O D) [5 h4 E0 F - );defun
# G- s% F3 m" R9 ?; a - ;;+ ~( k0 f$ o5 c# P+ O: A9 |. s$ K. N
- ;; List entry selections end up here, W, d7 S# [9 R; m3 \8 J2 B% d% l
- ;;
5 g9 b: t U& b4 E- z - (defun laylist_act (index / layinfo color dashdata)
! J$ U" Z! y! C+ q( ^/ V - ;; Update the list box, edit box, and color tile
2 H7 {5 D9 @$ i2 x: L7 X x& J - (set_tile "error" "")
4 P9 H8 {) a9 s* w( {; m# T - (setq lay-idx (atoi index))( H/ T& L' V. L+ h2 E$ S; c& J
- (if (not (equal lay-idx (1- (length laynmlst))))" A$ Z# e4 X: N; P
- (progn
. Q* S5 k1 F: l k% D - (setq layname (nth lay-idx laynmlst))
3 M$ P0 x) ]& F - (setq layinfo (tblsearch "layer" layname))
8 H* ~; L8 w2 o' M- W- o3 ] - (setq color (cdr (assoc 62 layinfo)))
; w3 O0 {5 T, \9 m. ~) z - (setq color (abs color))
- k' C" r( C" v9 q) w$ M - (setq colname (colorname color))
% `9 l$ v& g/ g$ C" u# r5 N# C/ M - (set_tile "list_lay" (itoa lay-idx))2 g/ u8 M+ v+ A2 T6 R
- (set_tile "edit_lay" layname)
- ]& F( ?3 x) T; h. R% M6 m; y- _ - ;(mode_tile "list_lay" 2)
; r% H, Y1 |/ p( o8 P; X - );progn then 1 x: j, T( Z' }2 W ]
- (set_tile "edit_lay" "") : `+ L9 ]( Y# U: U2 K) e# b0 D
- );if 7 S1 c5 F. W/ x S5 m/ j9 ^: K' A
- );defun laylist_act
& g/ o* ^5 g3 L - ;;
3 Y( j2 X, R- e& U - ;; Reset to original layer when cancel is selected7 V/ ~# `7 H/ Z1 \& J
- ;;
2 G# L& y0 W6 I - (defun reset-lay ()8 h7 e7 u8 g8 }2 G
- (setq lay-idx old-idx)/ A$ L! I \7 {" }; x `3 k" x
- (done_dialog 0)
8 k( G5 v, V7 S - )
8 a' f5 S( S0 o3 j% u - 9 Z! \4 d3 E) d4 Z) R; \ H n- S
- ;; Checks validity of linetype scale from edit box. It checks to# u9 W& J7 ?. D5 W. K% X; ]
- ;; see if the value equals "Varies".0 g$ O x' r) U+ N" d0 Q6 Q' w
- 2 F Z# p, U3 V: L* O* [
- (defun getscale (value / rval)
2 G& E/ k' l7 w$ [9 { - (setq value (strcase value)
- W" \, p2 W( t/ o3 y - rval (distof value)2 ~& K6 }# W | z7 R
- );setq
: n0 B1 a u; V6 {/ Z- {, ? - (if (or (= value "")! C2 `* `4 q* |
- (> rval 0.0)
5 S& D& q6 y2 c R - )
: o/ b2 x3 j' z2 U7 @ - (progn
: k! h5 T$ k9 \- I3 G - (set_tile "error" "")( z4 V/ Y& |( |( j. x# t/ [& h
- (if (= value "")$ `) a! Y s5 J/ W8 h. [& ?
- (progn
; ^; U( T( G1 u4 s7 D% ` - (set_tile "eb_ltscale" "")
H+ q! l, L: Y! k! B$ G - (setq eltscale nil)
7 |( P" I/ L( {) ]; l- F7 l - );progn then I( E1 Y; B* G1 C+ Y
- (progn, a- k- u/ Q0 {
- (setq eltscale (distof value))$ K; ? `, J% k7 k( P6 o: _7 N
- (set_tile "eb_ltscale" (ai_rtos eltscale))- d% p3 B% z# p
- eltscale
H9 }# R% t$ }3 H4 U' U; g - );progn else' Z' V }( D3 E+ X
- );if
$ V2 a0 _' c. s+ l Z2 V4 l - );progn0 K$ L5 ]4 R [! O- x' ~
- (progn
/ ]* Z5 `2 C9 s9 g7 W - (set_tile "error" "Invalid ltscale.")
4 e; V$ {6 y4 U {7 Z - nil, U1 N+ c3 Q/ A, m1 H
- );progn else1 f- z8 P5 F! `$ b- X- E0 C. L$ g0 Q
- );if' ^4 E& p2 n& A* h1 N% Z
- );defun! M; H7 }+ M9 s, [0 |6 e
- ;;, ?- [& h5 o, {1 c4 P' w/ f
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a7 S8 U9 B) n$ a0 ~' G; E( V
- ;; string can't be converted to a real, this routine checks if the first3 U/ Z0 \6 C; J3 u% ~$ K2 C
- ;; character is "0". It also checks to see if the value equals "Varies".: p; m3 ^$ M8 e: ]7 t* X+ {9 d
- ;;2 ]; y' {+ e1 k; |! W' B3 F
- (defun getthickness (value)
$ k) n8 U: @" h- s' u6 | - (setq value (strcase value))
% S' T( R* Z2 b6 n7 U9 _ - (if (or (= value "")
; y, T( r$ G4 | G) Z% [ - (distof value), D( I: P$ d" C q
- );or
6 P9 r% l" h) c3 W$ a7 e5 V, ? - (progn+ ]' n( r* |9 I. C" t& W! D
- (set_tile "error" "")
7 M+ v4 _+ r" P- B6 c - (if (= value ""): S2 s+ `3 e0 m+ g1 b4 ^
- (progn+ v9 g" o: U* E8 I# K
- (set_tile "eb_thickness" "")
+ R, u$ @5 U5 K; Z) j* `" j - (setq ethickness nil)
' {* U( s4 _: e6 w5 ?& t7 q% f+ |0 y - );progn' H4 A$ }& W9 N$ i7 Z9 ]6 B F
- (progn
3 @) l: t; W; ?6 T# }& r! p - (setq ethickness (distof value))
% ]& ^% X$ D4 w. P0 ] - (set_tile "eb_thickness" (ai_rtos ethickness)): M/ v0 d% I, f Q
- ethickness
3 _! b" b( k, E3 H( T5 M8 z3 I7 o1 m' {( t - );progn
0 K2 E# D6 T- Y2 z5 P: z - );if
2 i0 h! Y1 |' Y9 B - );progn
- L% X0 \: J$ b# g6 V" E3 E9 g" o - (progn
1 ^2 X+ J! m& W/ M6 _ - (set_tile "error" "Invalid thickness.")# N& y# U U, E1 E
- nil
3 ] J. J/ F+ y# J2 { - );progn- G: ]. V' u. l) t
- );if" j7 }! V' ~! z- T& U" E8 K" Q
- );defun % ^; Y# P+ z% }; l
- ;;* p' I6 j8 o- d4 T) x0 x3 U
- ;; Checks validity of polyline elevation from edit box.( a" s/ i1 I2 O* L6 Q
- ;;7 [/ Q* W% R4 |0 J" l
- (defun getelevation (value)
/ u4 d; ^6 y w4 p& r - (setq value (strcase value))" H" j6 K3 a$ b& S6 t
- (if (or (= value "")
3 q! `! v" E, C/ p* H0 N( u5 H: u - (distof value)
) S6 L9 V& ]6 M! b* B0 L - )4 M0 |. h% j6 j7 l
- (progn
8 ?: w3 n, W3 V9 c5 b8 Y$ R - (set_tile "error" "")
- W, H. b$ e; R4 P# R - (if (= value "")) V [1 l5 x( O& V9 y6 O2 P
- (progn* e5 _$ T/ Y! k1 k% G) L
- (set_tile "poly_elev" "")3 {% u6 i! n& p, I1 x' i( _
- (setq eelevation nil)
1 j, q. H: _6 f9 O+ U- O - );progn
' `1 s# K+ }$ Y5 { - (progn Y0 b3 W$ X x
- (setq eelevation (distof value))
+ q$ e( l0 z8 Q% e* K v - (set_tile "poly_elev" (ai_rtos eelevation))# L+ F6 l$ V' q, Q2 v- V1 ^" B
- eelevation
" M# c+ R3 L) f( V: N - );progn) n/ U3 o% V7 B: x- X0 L
- );if# I( ~* N+ P( _. {( B/ v7 d
- );progn6 S( V$ K! e) `( n0 |, `1 d: j3 N
- (progn# V* G S) V0 D& d }. V! f( i8 k7 N) h
- (set_tile "error" "Invalid elevation.")
2 x* X9 _3 k+ d - nil* C" G3 J: g0 J9 v7 ^
- );progn
+ m# p9 E0 @$ Z6 t; T - );if. G. x. F% k7 J' ~8 [2 O( ?
- );defun
) j0 V ~; }3 P) j/ ~ - ;;
5 T; m/ i: e# d T/ N - ;; Checks validity of polyline width from edit box.
# z( D! Z# Z0 H! {' w' o$ V2 ? - ;;
1 l- P0 b: i8 b" O2 x - (defun getwidth (value / rval); Q& H g) {% P- Q" E% G* V
- (setq value (strcase value)* b" J" Z9 ]/ U7 ^7 f: O
- rval (distof value)
" I8 J2 z) r' Y' @ - )
, C5 G% Q9 F5 B6 u6 \ - (if (or (= value ""): s/ d a9 U) g# }" Z, C
- (>= rval 0.0)
& d% Z L% p1 G S. T. v. x - )
2 ~- |2 H+ X5 L! Q5 G: I - (progn
! j# u5 z9 [3 j+ z8 p; u - (set_tile "error" "") {' w# r0 a8 _) q
- (if (= value "")
2 T4 k' C7 b1 F - (progn: \3 @& P1 ~* |' j, s# h/ j
- (set_tile "poly_wid" "")& V5 N" x, W* {4 g; r3 P
- (setq ewidth nil)
0 [; ?+ _. h+ i& J+ E - );progn1 n) r; i$ _) B
- (progn+ U+ _+ c7 C# E' z. N2 _
- (setq ewidth (distof value))
4 S2 P! F& Q S) x8 i+ U - (set_tile "poly_wid" (ai_rtos ewidth))- f( u. m5 _. f
- ;width0 @; e0 M6 n% H
- );progn& }+ r5 Q4 t, h7 q7 H2 ]
- );if
$ u# C9 \* n5 d3 X: R - );progn
- o+ o7 f2 p& \$ R" L - (progn- s) Z$ N6 Z8 i+ h
- (set_tile "error" "Invalid width.")
& O, V6 L7 [ n+ c0 q4 B - ;(setq ewidth nil)1 q$ p! h; e: w5 b. ?/ [
- nil
/ b4 H, k; {5 A* j% h - );progn
7 k0 S& w$ M3 R- o8 _: |1 @3 V - );if& g- U0 ]: ~9 m9 U3 u' K% @
- );defun8 z6 Q$ h* B# {- g5 v" G" T+ n
- ;;
3 \" Y/ T# D0 N: w( A. A' d - ;; Checks validity of text height from edit box.
7 V5 S! B/ c! d# y- |( N - ;;
! c- ~) y1 E) H. \* M t - (defun getheight (value / rval)( K/ m* |" H+ C" }2 \! G
- (setq value (strcase value)- k* P) {! B/ y7 ]
- rval (distof value)
' f& B+ [9 b) T3 P: ]+ \, w0 e - )+ h# q7 _% H Y3 o0 G' C) m+ R
- (if (or (= value "")/ E* I$ L2 V/ |% s& x
- (> rval 0.0)" S# e8 Y. ?( B$ C0 w! o
- )% v: J8 G+ V: Q5 u6 s
- (progn; k8 ], r o* V
- (set_tile "error" ""); K+ [5 n0 B! N4 j) J) U: D" H
- (if (= value "")
9 n& f" A4 A( k2 l; p9 H - (progn% C7 q6 q( u: a0 R0 u" b( P
- (set_tile "text_hgt" "")
) n4 T8 ]" ]; o% K" ^ - (setq eheight nil)! i( P" h G$ G$ n1 m4 i) Z+ S+ @* v
- );progn1 V+ ]' K; y8 H# H
- (progn C/ |6 G* |- J; A9 R
- (setq eheight (distof value))4 Q$ }2 U0 ~8 n6 B
- (set_tile "text_hgt" (ai_rtos eheight))$ R, Q: V# [" V* h5 E
- eheight3 `- n0 G) v4 |6 I
- );progn
) c/ t" Z. M1 m7 P [. j7 `0 R - );if6 h9 `" J% ^! r& K6 s+ L
- );progn) r2 v! l8 a" b) J/ V. s: O7 ]
- (progn. ^1 ^6 O4 G2 x5 m' c$ ^! J8 Z6 D
- (set_tile "error" "Invalid height.")
6 |4 i- u7 ~0 G/ j - nil
* ^: }1 q6 f& V; v W - );progn
* |. ?8 m: \9 l! R! X - );if
6 c$ t- z' {) }# H* k5 ?6 W - );defun/ g( }" N: @0 [( J- M1 Z
: E$ [. Z& n7 J' B- (defun getstyle (value lst / rval)
8 X# c5 N- |1 N7 }& G" w* b$ q - ;(setq value (strcase value))
) ^! r3 B5 o" v0 e! b) e$ _) p - (set_tile "error" "")
; ^: ]' { n5 t+ y! Q - (setq estyle (nth (atoi value) lst))8 i! J1 A: B; Y1 ]3 T
- (if (equal estyle "")
6 w# C# d' V7 @ a0 s - (setq estyle nil) d$ L$ M# Q+ l, e
- );if. _& U3 W& I( S' Q
-
2 z9 ^- W8 q# m - );defun getstyle
{2 V9 w# K+ l8 d7 H0 \. R" g
9 B1 z& w; ^" _- ;;& Z/ G8 }1 m8 s9 N
- ;; This function make a list called laynmlst which consists of all the layer* [0 H8 a' {( Q2 r
- ;; names in the drawing. It also creates a list called longlist which( T- H" K# t* L5 P
- ;; consists of strings which contain the layer name, color, linetype, etc.
2 M" ?; o2 ?" t1 ~5 t - ;; Longlist is later mapped into the layer listbox. Both are ordered the ]+ a# p" \% B
- ;; same.
/ [/ b8 a* B4 |/ Q - ;;
6 k! r/ S& r* m. l - (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname2 `( A0 b% ]( F1 W4 C% K
- xdlist vpldata sortlist name templist bit-70
& B, w! r3 O' J; Q2 _4 C* i2 {5 u - layer_number
: B% n0 u1 g, n, D, V - )
7 F5 S, V& b9 {) i$ N: S - (if (= (setq tilemode (getvar "tilemode")) 0)
) B# n3 g" ?8 Y) I& p: _ - (progn
, u- k, `) [' n4 C0 v - (setq ss (ssget "_x" (list (cons 0 "VIEWPORT")
6 v/ B, K, e% C! X4 K5 W - (cons 69 (getvar "CVPORT"))
; D4 @9 w- q- ?2 M, V - )
: P# ?+ `! w5 S - )
9 H5 r7 _ h9 `0 i9 Y; B0 V - )/ h+ y4 }9 A, Y: k% l. J
- (setq cvpname (ssname ss 0))& \5 Q" V. [5 |/ O1 y9 y/ j
- (setq xdlist (assoc -3 (entget cvpname '("acad"))))' F; J- r+ |. M
- (setq vpldata (cdadr xdlist))
8 b: ~: G3 q, p: p0 v9 ^ - )+ l8 p2 u0 P2 k" i- ~& r
- )9 d4 a: L$ c5 ^* F3 z1 L- f: U
- (setq sortlist nil)2 a7 u3 D. e0 u l0 ?3 i
- (setq templist (tblnext "LAYER" T))
) G. G) @0 k: n* {5 {& b - (setq layer_number 1)' z) J, h ]. g0 c5 J# G# G6 T
- (while templist
: c6 [& I0 ~; T - (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))% b& d- G8 }: b; \9 {3 B% S
- (progn 8 ~7 L: w. ^; t; u" ?& x* B3 ]
- (setq name (cdr (assoc 2 templist)))
G2 B: c& V: J5 a1 u1 ] - (setq sortlist (cons name sortlist))( {. `$ e- b$ G L, ~ p
- ;; Not dead message...9 v' [; {6 D1 |; y
- (setq layer_number (1+ layer_number))
) c$ L: z' @/ c+ n" c! j9 y - );progn
! Q4 x+ A, n X$ s5 r - );if
; i0 I* a! P: O. W - (setq templist (tblnext "LAYER"))
5 _4 o6 O* o! c; |$ w - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0))), v8 ?/ Z* u" U# Q; \
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))& }5 I9 |9 z ?* {) ^
- );if
1 e4 c% U; A8 y4 b& Q+ `. m7 u4 p - )" Q. }* G' m* `; j& m
- (set_tile "error" "")' ^1 M" s" M( E y% t
- (if (>= (getvar "maxsort") (length sortlist))0 E3 C u+ f4 V- C# @) E
- (progn
) j6 Z. L }. h6 L" F* U/ i; { - (if (> layer_number 50)3 c: z" i4 ?& }; J+ N3 @4 K
- (set_tile "error" "Sorting...")
# I# Q/ J9 v2 S H, P8 i - )
) K4 O' |7 f+ N - (setq sortlist (acad_strlsort sortlist))' r( p$ p4 p$ u8 _. n
- )
1 y% i! Z% @1 o - (setq sortlist (reverse sortlist))
! d! y9 ~0 k* S! ]# K* I+ {$ Q - )
( y2 ]& @+ S# V" i' m - (set_tile "error" "") O' p- a8 w- L# b1 S
- (setq laynmlst sortlist)4 v2 P: Q: r6 T% a! o( n. S
- ;rk
7 Z% F) a4 X# n - (setq laynmlst (append laynmlst (list ""))) }/ _* W! T9 y- F4 F3 n
- t- ]" N2 k7 Q: q
- (setq longlist nil)2 q6 E2 d5 A E: N! C+ ?% R
- (setq layname (car sortlist))
6 f6 |' C! m) N+ @; d6 k - (setq layer_number 1)+ G/ U! `* |: R S
- (while layname! y0 @" T; I& N& f% [6 R
- (if (= (/ layer_number 50.0) : N, j# b) r# M% `0 T- C( P
- (fix (/ layer_number 50.0))( X: N" v0 W9 _: ~( L1 @
- )
g" s# J' U F% s& M - (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))
% d0 i0 b3 ^5 v9 h5 N- ^ - );if- D. N7 U7 }6 ~( \6 G, e$ t
- (setq layer_number (1+ layer_number)). e9 \3 k: t9 u3 Z6 }! @( U: N$ U
- (setq laylist (tblsearch "LAYER" layname))
% C: D! d5 O# x9 g' w. x9 N - (setq color (cdr (assoc 62 laylist)))2 t7 q) u( p: d
- (if (minusp color)# f. S2 s: `8 ~9 e- H
- (setq onoff ".")
/ w& U& ?/ m2 x. y - (setq onoff "On")
5 n+ ?# J+ A7 t/ q* M# Z - )
- U9 x- e1 s4 d$ N- b: B" U W. ^. W - (setq color (abs color))4 B" l7 w' {8 O) l
- (setq colname (colorname color))
' M/ t, i; v9 h8 G - (setq bit-70 (cdr (assoc 70 laylist)))
8 G3 E @7 t( Z2 C - (if (= (logand bit-70 1) 1)4 @6 K' A, G& L" a1 D
- (setq frozth "F" fchk laylist) f1 p( K- `4 v7 Z/ K
- (setq frozth ".")
, O; f. Y4 q6 G. H! L) ~* a- L - )
+ L! P8 j5 g! K$ J: H0 q, R" O3 S. j - (if (= (logand bit-70 2) 2)7 _) T7 i! |2 B; L3 ~' X! k
- (setq vpn "N")( l _; |6 r7 t
- (setq vpn ".")- f$ y+ `2 d3 H& j w4 z* A) D
- )
7 r4 z- j0 {. p/ P/ e+ \* n5 l - (if (= (logand bit-70 4) 4)
0 C" {8 o( Q# p n) F) f' f M% V - (setq lock "L")* j. h4 d: T" O, t* |
- (setq lock ".")
5 U8 H u! g. y, g! i Z2 h- E - )' A" @1 ?! P! Z4 z A
- (setq linetype (cdr (assoc 6 laylist)))8 I$ v# E d: D4 u1 `
- (setq layname (substr layname 1 31))
' X5 R: B2 B) t5 g0 W - (if (= tilemode 0)1 R, M9 O# B3 F
- (progn
; b4 d9 R5 N2 J( h% A& l - (if (member (cons 1003 layname) vpldata)
: Q1 K, ?9 B2 ? N - (setq vpf "C")
; a4 w+ Y: L9 o, H* R - (setq vpf ".")
5 h! B& o. M7 V$ ?+ u - )! ]9 q( Y# {5 z/ u2 O/ l1 m8 i
- )0 {+ C. {- J1 H7 L' P
- (setq vpf ".")! ?; W! n) X6 u& D2 i# r
- )/ W! _( f/ K, m
- (setq ltabstr (strcat layname "\t"
9 B& M# Z3 q1 f! y - onoff "\t"; R9 [4 \ f# B! q2 {2 P) ?% H5 K5 A" |
- frozth "\t"
$ u6 [+ Z+ I6 ~5 r& z5 ?% H3 N- B - lock "\t"; ^* h0 i4 H2 }
- vpf "\t"
4 `: ?8 T {. V- b - vpn "\t"
) \& u+ i# J, ~4 M7 n0 _' c5 g - colname "\t"
5 i+ a! a; `& i9 V6 P! {: {9 q1 u- _ - linetype
7 \6 Q3 |9 ~' e! \+ e; [, ]' I - )
- u0 B" B: l. _7 u - )
2 g+ U' ]/ \, @+ S - (setq longlist (append longlist (list ltabstr)))
4 v; Q. x: c2 w t* g6 u$ c - (setq sortlist (cdr sortlist))
; ^9 J& ~8 [- |8 H0 j - (setq layname (car sortlist))' i/ G7 P6 Q; [: M8 ]& w
- );while
7 Y0 @" T2 j% l4 T1 z3 ^ _ - (setq longlist (append longlist (list "")))/ V; ^- ?7 k5 V6 R
- (set_tile "error" "")
% w: v1 _$ X8 ^9 Y - )
6 L. ~0 a( k3 @9 I) m8 w [% z - ;;; N; p& k% ^; G
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of6 [+ s( P2 I4 _0 p
- ;; linetype names read from the symbol table. Mdashlist is list consisting* } O# t w6 A2 T- K- [
- ;; of lists which define the linetype pattern - numbers that indicate dots,; i# y, ?+ E- Z' }
- ;; dashes, and spaces taken from group code 49. The list corresponds to the0 |! x9 W0 }) N3 O) `
- ;; order of names in ltnmlst./ a7 i' y3 a$ J* Z/ ~% P& k
- ;;
( u8 T% p4 [! q& s; N$ i - (defun makeltlists (/ ltlist ltname)3 i: T: i* n9 r9 m- T8 r
- (setq mdashlist nil)7 g- c3 p5 E8 g' C/ K. R
- (setq ltlist (tblnext "LTYPE" T))2 ?3 l& X M3 o+ b' i
- (setq ltname (cdr (assoc 2 ltlist)))' t2 _1 w8 v' r2 W9 f
- (setq ltnmlst (list ltname))
2 C) F: U, W S- M; c0 g - (while (setq ltlist (tblnext "LTYPE"))) l |/ ]* s5 g9 S
- (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))
' G1 B7 k4 D1 J4 W - (progn 9 e M1 w/ ]* I! ]
- (setq ltname (cdr (assoc 2 ltlist)))
+ | p4 {3 y; b% D - (setq ltnmlst (append ltnmlst (list ltname)))
+ n: R9 q4 [/ w - );progn
& v8 l% V$ v; }8 M$ y - );if % G$ n9 K, U, C( q5 c. O
- );while6 l9 Q' `! `0 C- ~- w7 e, N2 c
- (setq ltnmlst (acad_strlsort ltnmlst))
* r! R, C# w, n6 p2 z- X( P& X - (setq ltnmlst (append ltnmlst (list "")));add by rk : k& |3 j6 l" l( S% i5 N( T
- (foreach ltname ltnmlst
0 a: [: r. B6 r% M5 @6 S" z - (setq ltlist (tblsearch "LTYPE" ltname))
a$ W1 [# o1 f3 T1 y - (if (= ltname "CONTINUOUS")
& \ I* ^6 g+ Q8 g, i6 P: ~ - (setq mdashlist (append mdashlist (list "CONT")))% j$ `' `% }9 g8 D6 _( H; x! F
- (setq mdashlist
# F* N, h0 d9 B; G - (append mdashlist (list (add-mdash ltlist)))) r, u2 }/ i8 n$ W2 x& A: b
- )+ E, A3 M; z( @7 v9 B4 |+ P) I
- )6 J# H. ]9 u+ n$ V) M5 y, \9 |
- )3 b0 c# p) K9 k- m; K: C, Q
- (setq ltnmlst (cons "BYBLOCK" ltnmlst)), @5 O7 i9 F" o5 h+ {$ M3 V
- (setq mdashlist (cons nil mdashlist))
& E+ [7 Y* L4 h - (setq ltnmlst (cons "BYLAYER" ltnmlst))+ {, ]6 _% G, d, b; c9 K9 `
- (setq mdashlist (cons nil mdashlist)); [. F; ?" [6 E. P0 n
- )
" m7 c% y. b; a% X- v I1 i5 \ - ;;+ n" }( v J' _# p- j5 ^
- ;; Get all the group code 49 values for a linetype and put them in a list& o" D @7 a' s4 y8 K" X
- ;; (pen-up, pen-down info)3 C# t1 ~# R3 E6 M
- ;;
" T9 S8 ?6 A! b/ ]: m( C& p - (defun add-mdash (ltlist1 / dashlist assoclist dashsize)# ]) {8 O% t) {3 {# I* _
- (setq dashlist nil): Z3 N4 m* K& G1 [ m/ y# E
- (while (setq assoclist (car ltlist1))% i: H: ^8 e) ^) b5 c
- (if (= (car assoclist) 49)
0 q4 p' T2 j7 {" O9 ^ - (progn& E0 i7 N0 o; R; }% R" H m4 X
- (setq dashsize (cdr assoclist))
+ s4 J# O4 e$ C - (setq dashlist (cons dashsize dashlist))* |4 B: D/ A' D" I* h# b
- )& w. c0 t" G: _6 [+ ^
- ) H$ \& A0 x8 C* v6 @
- (setq ltlist1 (cdr ltlist1))1 K* k( n/ o+ n2 [: W* C& T
- )
- n0 H; Z. ~5 \: P - (setq dashlist (reverse dashlist))
5 d8 n: B8 h' b8 r7 F - )
( h: i! W, d3 R4 U - ;;
, y% o+ [- `& `" P* N! ? - ;; Color a tile, draw linetype, and draw a border around it
$ g8 {1 s+ A, `/ ~ - ;;
. V3 { B- F S7 _4 O - (defun col_tile (tile color patlist / x y)% {) z/ l& w! S# K
- (setq x (dimx_tile tile))( O! W- `* e* j2 J* Y" ~! I
- (setq y (dimy_tile tile))1 V5 u/ J# {$ [* S
- (start_image tile)
: g& _) a& b6 P& z; q: R- E/ d - (fill_image 0 0 x y color)
: o; U8 }0 ]9 V6 ]& o - (if (= color 7)- u: B2 q2 i b& M; f
- (progn
: l6 [* s \0 H* y5 x - (if patlist (drawpattern x (/ y 2) patlist 0))) ~" ~/ v3 G; z3 x3 O! B
- (tile_rect 0 0 x y 0)* r M5 {9 Q' q7 R$ W" q: n/ i3 r I5 s4 c
- )6 b5 P" h9 Y9 _. ?, W
- (progn
5 ]4 I7 q3 U [' i4 C - (if patlist (drawpattern x (/ y 2) patlist 7))
# O0 Q C7 J' }: \$ f$ N, X7 A" u - (tile_rect 0 0 x y 7)
8 j$ J; N! F% l- j( l- v: k! f% G - )
$ ]0 n2 P! ?8 O, D - )
8 L4 [3 }6 x$ w4 v. O+ W - (end_image)
3 O3 @2 n8 n5 u9 O/ U: E - )+ f* I) E3 ]1 h/ v. ~! q8 P) Y
- ;;; Y6 z! H6 ^. m
- ;; Draw a border around a tile
) `/ o0 E5 E; J - ;;, w8 b! a' H0 o( L, M |1 P
- (defun tile_rect (x1 y1 x2 y2 color)
" g; U$ B( u0 H9 g5 X - (setq x2 (- x2 1))
, _: o: ] q b2 P - (setq y2 (- y2 1))
6 s! G N" W) |. U: C. Z! j4 V9 N1 c. [ - (vector_image x1 y1 x2 y1 color)0 W8 g- [: u, m# D) ?* m
- (vector_image x2 y1 x2 y2 color)
5 ?. O0 R8 R: T! ^ - (vector_image x2 y2 x1 y2 color)( X' t* [$ P2 \. R; I, p& s
- (vector_image x1 y2 x1 y1 color)) H$ k& q' j7 H2 {- D3 k
- )4 x5 H7 Q/ G; A- n3 m7 q
- ;;1 _8 J$ _! U; G# S2 s J
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
( V9 Y$ ^( c- A; g; U3 V - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
/ ^* }0 O: G! \5 m: `/ Z - ;; list of numbers that define the linetype, and color is the color of the
1 L- ~2 g8 W ^- ~4 O7 ] - ;; tile.0 P D7 k2 [: l' K7 F$ F
- ;;
% e* O# J$ P* Q% b - (defun drawpattern (boxlength y2 pattern color / x1 x2# y: r2 Y! S4 u- }; Y
- patlist dash)+ v1 T6 X8 G, Y1 z3 }
- (setq x1 0 x2 0)
6 U/ |% {7 M- v9 _ W+ j+ I+ p - (setq patlist pattern)
5 n. I) g( Q8 B3 v$ p) b1 n - (setq fx 30)$ I% ]$ H/ c- T, x5 x
- (if (= patlist "CONT")
# u2 `: X" E- _8 l y: S+ D# V f - (progn
: I' N/ k4 w0 t: b$ u5 U( r - (setq dash boxlength)
0 O5 o: p1 ^ O3 G# ` - (vi)
1 V6 P$ X x/ o5 P" m8 p& l' Z - (setq x1 boxlength)
) w. [" V$ B2 j - )
5 P# N3 j/ z- V - (foreach dash patlist
( q, m! l( D3 o3 @) J a - (if (> (abs dash) 2.5)
3 [; ^, F# I+ I8 r - (setq fx 2)7 N4 E1 o$ @" x. X6 ^) X
- )* N; f5 e, U, X) O( X& L/ f% y" T. B
- )+ }7 o6 d2 o& o( J1 B2 p
- )+ J% d5 X8 e9 L: x6 ~7 p
- (while (< x1 boxlength)+ {% I0 U- G% Y& m5 x: D
- (if (setq dash (car patlist))' g! L3 h2 }' p% i$ D# n
- (progn
! O% ]6 C6 @7 H6 ?$ J - (setq dash (fix (* fx dash)))
1 r' @% d+ b5 a& z, O - (cond& i8 Z7 h, K( } C& @1 G
- ((= dash 0): r9 {% l0 K: j9 J- O; R
- (setq dash 1)6 Z- M/ u s4 u
- (vi)
! R! X6 j+ y2 _) g/ N2 I( U8 X3 }! k - )6 r+ J6 X9 N2 I; O$ f
- ((> dash 0)
% r) T9 K2 |, x. L1 ]- e) n - (vi)
) U s5 X, S0 M# E - )
3 ?( B$ v! {# g - (T
/ m2 i2 I. d; [- j - (if (< (abs dash) 2) (setq dash 2))/ C( y- U {: w( c+ }; ^" k7 _
- (setq x2 (+ x2 (abs dash)))
+ M0 c4 R- H- J' v - )
' c* R/ ^9 r) p* w: p& Y - )
+ a% J5 J& U' m4 n - (setq patlist (cdr patlist))
: {% n& n: O/ W0 r! F! U8 w5 l, M - (setq x1 x2)
9 S3 }4 n, I2 C0 y - )5 z0 ]# V' S2 p( u! o
- (setq patlist pattern)4 O0 p' \5 y: x5 O0 N5 f
- )1 J. X- {# o) h2 o5 B
- )
; l2 f4 n1 f1 K% `4 T - )) ^' V' ]: ^- r, ?3 ~
- ;;
; x0 Y& \+ z6 L/ y+ X - ;; Draw a dash or dot in image tile
- C6 H4 q( `4 ~" I7 A, l( b ? - ;;! |' J: Z! N$ u/ T
- (defun vi ()6 G( l+ l4 J# s' u0 L3 p6 ?# M
- (setq x2 (+ x2 dash))2 j$ `1 P+ A7 i `% g J# t
- (vector_image x1 y2 x2 y2 color)7 s9 r( c: w- F/ _
- )2 _. Q! @- p+ Z0 U
- 6 n8 H1 z" j5 {# Z$ J: D1 v: B
- ;; This function takes a selection and returns a list of the color,
4 J7 D) U5 ^# D2 j - ;; linetype, layer, linetype scale, and thickness properties that! S O' R' a4 v7 ?
- ;; are common to every entities in the selection set - (color
. j9 k6 ~$ l9 C D4 ~ - ;; linetype layer thickness). If all entities do not share the same
' e' G ^$ ^. K) F* d# F. n. G8 Z - ;; property value it returns "Varies" in place of the property
" y1 W3 T/ `; Y2 Q - ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
' R! Y; c- f; L! }$ h. C* m - ;; The last item in the return list is an integer flag for the; @) V6 F7 E9 J" V: ?
- ;; homegenity of the selection-set object types.
% M; V* A, p1 M& a! R# U0 n( V+ @ - ;; 1 = All polylines
* G& G3 f1 C6 V% A, A - ;; 2 = All text or mtext or attdef, or a combination of the three
" M! |, q0 u7 M - ;; -1 = Any other mix of objects8 b2 o* _+ u2 A ^. z3 G3 U# e, o
- & F# C5 D4 t+ e
- (defun getprops (selset / sslen elist color ltype layer ltscale thickness
. t# M, Q x3 A - width elevation height go ctr " w6 e7 [, N! J# A! p, L
- eflag 4 M, V0 I2 w5 _; D U4 A
- etype temp
1 H( }1 E' l: a ~: |6 Q4 P - txt_ss ;;;;rk 11:24 AM 1/30/97* ? z P1 l4 W1 }6 k
- tmp 9 Y" U0 k! O' p m( d
- poly_ss
/ }( J/ G: G. ]$ ?6 h - style' }1 l/ a, b/ x9 S$ N7 ?
- )
/ j( B- Y) a) k1 T( }
3 ]3 e' h' j- K
& x/ M/ }0 |8 y' W, z1 c R- (setq sslen (sslength selset)
3 n: j6 l' @# `1 L, } - elist (entget (ssname selset 0))
% k* x0 c& Y& n - etype (strcase (cdr (assoc 0 elist)))
9 t! u7 I& v, I% q7 T - color (cdr (assoc 62 elist))
5 |- o2 y/ r; w: `# a( N! h$ @ - ltype (cdr (assoc 6 elist))* L9 L3 c! f# k
- layer (cdr (assoc 8 elist))+ E, s3 _+ P+ m/ V9 v. c! T
- thickness (cdr (assoc 39 elist))8 K0 T( J% s8 A7 V, f0 e
- ltscale (cdr (assoc 48 elist))7 d7 ?% v/ `) d; r, ^; \; B" F
- );setq
3 _5 `6 j7 q3 B% R
9 A3 Q. X7 m8 G0 d L$ j) p4 E: E- (if (not color) (setq color 256))' D7 w0 B- A* o7 F7 J3 S
- (if (not ltype) (setq ltype "BYLAYER"))
6 h5 F; k5 Q2 J+ y3 ?9 \3 P) _ - (if (not thickness) (setq thickness 0))7 {, [" _. P6 W1 H+ @1 S& N
- (if (not ltscale) (setq ltscale 1))
/ c& p: K- c' M* G) F4 E$ L4 }
, X' P; s, `/ Q( w& A5 l- (if (not width) (setq width ""))
) ` _& P. N) w) J1 R% x& f$ E - (if (not elevation) (setq elevation ""))
1 b% {' g- ?9 ^ - (if (not height) (setq height ""))
j' k! W2 I, J+ c6 N - # W5 r: Z2 I! p5 s- a2 L
- (setq go T 2 u6 [" B" S6 {4 f
- chk-col T ! {# |! J& _+ n: z4 w' V/ I
- chk-lt T
2 q3 _# I! o6 }* [* N/ R - chk-lay T 6 |6 f+ `) y2 I% p R& y0 ?9 b
- chk-lts T
% z5 a P" A( Z9 ^* _; ^& w! P - chk-th T 7 E: n: y' N8 b1 ~; A" ~
- ctr 0
9 _. Q4 C+ G# ?/ m! N8 _% C5 J - );setq
% v9 Q. ?- a% O6 {/ j - ; @" k! U9 B2 Q$ ?5 {2 b
- ;; Page through the selection set. When a property0 J# b8 W9 J' b( n! p
- ;; does not match, stop checking for that property.
8 m4 @' l. Z' z+ H - ;; When the selection set is not homogenous, stop checking.
2 ?/ n* d" f3 A6 p) W m - ;; If all properties vary and the set is not a type 1
) B1 g$ R2 o1 d% c. w% L# V. g - ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging.4 B* q6 r! P9 j
- * Q* O: z6 N% |' l- L5 C, k
- ;Lets set the eflag so we know if the selection set includes any
( @$ C$ Q! }) M2 h6 `, q7 X/ C# w; ] - ;combination of polylines, lwpolylines, text, mtext or attdefs.
& B; j5 I! k9 O7 f3 {1 e - + w0 _+ c+ ^; S3 g7 K. n
- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/979 q, W1 \' T" `: b
- (setq eflag 0)* Z/ o: t6 v# k' P' p6 e3 m+ y' D
- (if (setq poly_ss
3 r' @- a9 X# `9 `8 w) N/ h - (ssget "P" (list '(0 . "*POLYLINE")* y" a; j' o- Y) `% N* f
- '(-4 . "<AND")
* Q6 I' N b0 t - '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>")
+ l! E1 G* ]5 T! @1 K2 P7 w9 S) M - '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")
5 ?7 U4 c. z* s+ h4 W" n - '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")
8 u" K0 `# s4 K1 U S. @8 ~( v. t; [, y - '(-4 . "AND>") $ A4 e8 [2 v( |' \5 ^/ Y
- );list
$ C. c* @2 V+ J- p - );ssget get 2d polylines (legacy and lw)5 M# Y9 o X" U ^# X
- );setq1 ?% y7 |$ m4 d2 o. V# n' s! D
- (progn
3 s" T! | C! u2 R5 ?6 x - (setq eflag (+ eflag 1)); q( k) L) E0 [; `, p& [
- / Z9 T/ k/ q7 O
- (setq tmp (entget (ssname poly_ss 0)));setq9 K$ C4 Z+ N% `
- 7 j9 u+ J4 m- s% y0 q6 }* C
- (if (equal "POLYLINE" (cdr (assoc 0 tmp)))" s' W; K4 a5 q' ~ R a/ n p( U: X& Y
- (setq elevation (last (cdr (assoc 10 tmp))))
" x6 v' [6 {( q/ \1 O9 x- r% z, D$ _ - (setq elevation (cdr (assoc 38 tmp)))& t8 W; E, l" d% X& R
- );if
" o# Y: N; \( k2 S! e g; d2 g - (if (not elevation)' @- {" X4 {) ], G& Q' a
- (setq elevation 0.0);setq
( P, B' z5 H, v0 `/ s' R" ]; M - );if
: ?8 Z) n% f9 r" C7 H3 C0 _
0 m# w2 c% G& o/ V0 R4 u& ^- (setq tmp (ssget "P"
: _: {3 _7 ~! y# K, G - (list
/ u0 i" P! ]2 @( B) v - '(-4 . "<OR")1 K$ Z7 n7 `& d& C9 ~4 }3 j
- '(-4 . "<AND") ' g5 D# C4 O( k9 y! y6 e% I
- '(0 . "LWPOLYLINE"); G: w! E3 h8 _; f
- (cons 38 elevation)
6 `+ w/ i& y5 e) k - '(-4 . "AND>")8 q, y; H( _+ D9 N* F8 F
- '(-4 . "<AND")
; t& _- Q. \7 j. m* b1 z - '(0 . "POLYLINE")
: O$ d- E7 Z( v& ~4 ?, N - '(-4 . "*,*,=")
- ]/ u' y1 a5 G. j, _5 O - (cons 10 (list 1.0 1.0 elevation))' L9 H* s5 r" f1 y
- '(-4 . "AND>") : ] ^! m- W% m/ b" G
- '(-4 . "OR>")
! I7 p) a( d: t; N/ v# b9 r6 H2 N - );list
' k; q! e! ]2 P; r) l - );ssget
+ ?' i' R4 q- D. v - );setq
7 ^( T$ N; {) P
5 h' e7 r/ ^; D- (if (and tmp / H% {) t9 ], A! C: t
- (equal (sslength tmp) (sslength poly_ss))8 Z& H5 D. V$ D; K! ~3 L( O
- );and
2 `! d' O) D M6 d8 w! c - (setq elevation (ai_rtos elevation));setq
' D7 ]( p+ H3 A9 Q$ t - (setq elevation "")
# Y( A* q" O h D - );if
% W9 `1 E2 V; l/ ~$ q! @" U -
! M% O5 U! Y9 t( C* X8 T# n7 R, {; H - (setq width (pl_width_getter poly_ss));setq
8 o# s6 {9 b. @8 K8 V, m) w - 9 D5 Q' i% k+ ~1 G4 ] }0 {
- );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!
! V# t% t& z" L- C/ n: M* j - );if
% A. T; F: R& y$ N - (command "_.select" selset "")6 R0 y1 ^( z0 l
- " R8 L) J: k% j4 C
- (if (setq txt_ss
- ^, ^2 U! J p4 K3 R% B - (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT") 5 [4 D5 x. g* N: C: a0 x
- (0 . "ATTDEF") (-4 . "OR>"))9 g- Y+ s2 L$ w7 I" A
- ) 7 r4 a- f. ?2 m) X2 t& Z" A# `
- );setq8 r1 v8 ? G7 ^7 t# F
- (progn3 T- H7 q# [* Z' H
- (setq eflag (+ eflag 2))
3 l5 ~% g. A" {& ]$ R5 r: n - (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))
! C" e4 ]" L: B, a s - tmp (ssget "P" (list (cons 40 height))) ( I, Q9 x# T( O
- );setq
' t$ w+ F: f) J" T6 Z - (if (and tmp
3 k( |, q/ U, ^6 i0 h; X - (equal (sslength txt_ss) (sslength tmp)) & R# j9 W7 A' w# H+ q" I$ N9 F
- );and
6 y2 A) ]" k [3 c - (setq height (ai_rtos height));setq ;@rk need to translate from float 6 p3 E' M4 p4 g+ R1 w7 B
- ;to string and back again easily
9 x& |+ R+ ~4 s' I/ U6 S9 |+ H - (setq height "");setq else the height varies % J( r* \ k% N( S6 L w
- );if9 L D6 @9 ]6 S
- (command "_.select" txt_ss "")
$ |! K6 m0 m0 T) d; [7 d7 x: | - (setq style (cdr (assoc 7 (entget (ssname txt_ss 0))))
! a& b: }2 D+ w& { - tmp (ssget "P" (list (cons 7 style)))
# n; V3 B3 r7 `/ Q - );setq
' |) j% N' S2 v3 h9 A' p+ h0 X7 s - (if (not (and tmp. g- F# f3 U2 v8 N7 d5 b! H
- (equal (sslength txt_ss) (sslength tmp))
. M. Y) W2 Z6 m7 Z - );and' s# d; i b/ B; B: R
- );not! W! @3 \: u) {* ?8 Q% e
- (setq style "");setq then the style varies
1 I0 z Z- S' s' }; a3 z9 b - );if- X' T8 a; ]& s7 |/ Z' Q" k* ?
- );progn the text type objects are in the selection set9 y' j( h% {/ y7 M+ N
- );if+ R8 g' m$ b3 z b/ \
- (command "_.select" selset "")' Z0 X% M% _3 H* @# A& z0 D
- 5 A/ g: Q" L5 v) a& M: c
- (while (and (> sslen ctr) 0 {) J! z, C) J, ]9 ]$ P6 I2 u7 e, S
- go
2 d& Z/ ]) J: y& } - );and
' _/ n8 C2 ?! V6 y0 `4 |. D" d - (setq elist (entget (setq en (ssname selset ctr))))9 q: I9 Q$ L, I
) @, K6 ]& D! ?5 \7 O( ]8 f- (if chk-col (match-col))
! s J$ _# R" U) R" ] - (if chk-lt (match-lt))
" S' Z% Y" Q$ g0 { - (if chk-lay (match-lay)): a& {# y6 J# o4 d
- (if chk-lts (match-lts))2 q( i7 j; B8 U2 z
- (if chk-th (match-th))
% E% _( Z% A; H. k9 @
1 L$ T8 q. s, k' M9 g% e- ;(if chk-etype (match-etype))) F0 ^. N& E0 ]. L
2 [7 o, D0 C% a3 Z i- (setq ctr (1+ ctr))
9 g' f' V* h) d* j - (if (and (not chk-col)
+ J; T5 Y; S" I* O( x# I3 f - (not chk-lt)
. `* x4 o5 `# [% \# ^$ M/ \6 J' P - (not chk-lay)
1 F9 i2 t1 k: E, X/ J" x' I& N( R* E - (not chk-lts)
, I: W3 h+ Z& s/ B: b - (not chk-th)! z+ H- E& T6 L
- ;(not chk-etype)- j. D7 @7 k% ^. p& w/ }/ m
- );and
; |7 T. g$ \0 P: [% A - (setq go nil)" N4 Q. N3 O5 i' J3 F9 k
- );if1 F# y/ ] P( n% J8 O7 I& m8 V
- );while% P: m U, S7 D5 I+ M
- ! w& ^; A2 \, X% I! J0 K1 ?% S) O: d
- (list color ltype layer thickness ltscale8 x0 M2 ~; R& P9 s4 ^
- width elevation height eflag
5 h+ C5 U. k! G z3 a5 w. ] - style poly_ss txt_ss& K: p1 t5 \3 @4 B3 O/ ?2 |
- )
, v- c9 O, D5 y( c2 S - );defun getprops
( W; T' k, h* e - , e* |% ]: e8 \; Z
- ; This is a speedy little routine to tell whether the polylines in
' y+ G# v" t- J; e; I, _; N - ;the selection set argument are of varying width or a constant value. 2 w. l2 u1 p3 ^6 p
- ;Looping through the vertex's has to be done for old polylines when
% _& n+ V. D9 i, P4 c0 ?9 C, L - ;the polyline header has width values of 0.0. Basically, in this case,
4 L* ?$ ?* D$ }) `; N/ D0 F - ;information in the polyline entity header is abmiguous. Width values
: V8 M( U: Y9 C8 \ - ;of 0.0 in the header entity could mean the polyline has a constant ( z7 m9 v+ i2 Z8 C+ @ x
- ;width of 0.0 or it could mean that the polyline has vertex's of varying 1 U/ [ O# N2 F- i3 q; L3 L
- ;width.
: f- Y. [; j7 G6 M% y - ;
b/ |( x$ {/ P4 N - ; It's all in wrist. Err a.., I mean it's all in the 'if'
U& x% \1 P6 w6 d8 e0 L - ;;
$ s/ Q) A8 k! S' |$ i5 v" d% q - (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)
- S! \: Q" b' e2 ^( Z
9 _+ Q- H( G4 ?% [; E- (if ss
! n& K- _# C& i* t, A8 q - (command "_.select" ss "")
3 R2 e* ^$ b `0 U - );if
1 C" v2 J f# @" U* |) Z2 b - (setq width "") `& P. r6 v. V2 R
- flag nil* m( `" ?1 m* [
- flag2 nil, Z) a6 u1 X7 z( \* z
- );setq
/ {$ L/ V) v3 Y3 D: c - (if (not
3 _$ F) N0 S: e: f6 P - (and ss- v: U1 @2 W- q$ d2 ]. ?% @' m
- (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq
' r: O: e% s3 _2 U - (setq na (ssname ss2 0)
/ ^# D+ V' r0 c - width (cdr (assoc 43 (entget na)))# b4 {; i, `$ z' _# d" O
- );setq7 Q/ s" @& [; ]" ]* C* K1 ?
- (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")
/ t% {1 J! M1 n+ E4 `% v* E* X. N0 p' o - (cons 43 width)) q2 z* O; S' c8 G- `
- );list
% w( f0 Q. _. `" x0 J& P, b5 Y - );ssget
, B( V5 a% O6 J5 j( j" o - );setq8 n' P3 F) D/ J
- (setq flag T) : c% { B7 V7 X9 I+ Q, b1 t' e
- (equal (sslength ss2) (sslength ss3))/ Y% f8 H; E* [( U
- );and# t3 S+ a8 V- L6 {: b
- );not- } X$ [# p1 @5 m! x
- (progn* |4 B% x( t1 N _. C
- (if flag
: T0 `$ K& G$ @' ? - (setq width nil) $ K' h/ B. n) }0 m; v* i
- );if' R4 j7 N7 C5 S% f
- );progn
$ h& ^: V2 v3 D2 c9 ?& Q* x - );if 5 N V: P }3 a$ V7 W
-
, ~: ~* m) |2 I% \4 g( C4 L; L - (if (not 4 S) }% l6 N5 `* j2 _
- (and
4 w$ g( F5 K3 r+ A/ f9 T( \ - ss
7 ~/ C/ @" s$ W0 X0 [5 p - (progn (command "_.select" ss "") % x+ ^2 E6 u# {8 I$ O1 Q
- (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq
1 U1 V+ K! O1 `( R. e; H - ) + @% r) p* h1 G" }$ L
- (setq na (ssname ss2 0)
& S/ P; a+ b0 i: N$ ^ - e1 (entget na), b" _: u& \: o
- width_a (cdr (assoc 40 e1))
/ g" k( x" N+ c) K2 I - width_b (cdr (assoc 41 e1))
8 R: K! p, h. P: o* z7 j- U) s9 [3 o - );setq! s( r; e5 s. ?8 G( i; k
- (equal width_a width_b)! D) a: u- R' H2 v& ^$ X
- (setq ss3 (ssget "p" (list '(0 . "POLYLINE")$ S3 y: G4 G$ y: L
- (cons 40 width_a)
& f% V& `8 v' e7 L& U - (cons 41 width_b)
E& a6 x& K3 a! U" U - );list2 ^% G4 W' I9 H% k: D
- );ssget" l' s* ]1 I, x$ l. j
- );setq0 h$ `: }% `8 E5 a
- (setq flag2 T)* f9 }; \, X6 O2 {( e+ H/ Q7 ?
- (equal (sslength ss2) (sslength ss3))
- _; i8 z' p ]9 z1 c - );and
* l9 G0 I% ]/ k F- r - );not & d. J w/ \1 P5 Y0 |6 c2 _
- (progn, f" O+ X/ l& X! S
- (if flag2
4 ?7 k6 E( b0 W3 @% f$ T! j - (setq width nil);setq
1 g$ j& c. m9 E, r8 C, _ - );if
2 F4 @8 G/ j9 m+ e- b: D! z7 h - );progn then5 t" A, L; v* m* K, D6 b5 y
- (progn w- x( r3 J1 M; C
- (if (or (equal width "")# K+ n5 G( ~# i, a# }7 n) z+ l. L
- (not flag)) l- ]; k e- a. R
- );or1 d1 ]" q2 G# p2 P
- (setq width width_a)
& k, ?/ X q* g: I% _- T1 ~ - (progn; I* c+ [/ u+ G) [- _8 \# g1 }# T
- (if (not (equal width width_a)); b2 e4 b: u9 X% q% Q* Z; o
- (setq width "") i% A$ F, i/ {0 J7 y7 J4 ^3 b
- );if 1 `8 T1 k: U1 h8 ?) S- y) i( o
- );progn
3 P: x6 R, R$ U7 l# T! u# L - );if5 J; S* V. c; |6 J9 x5 e
- );progn
' r8 _! z, e M - );if5 m! D2 I6 o' `, ~, e
-
. L# @+ P% Y" W" u: V( G% e4 F - : K% p U v" x; e
- ;now for the special handling for old polylines7 o- E+ M4 s3 z+ n& X# T
- (if (and width ; N& Q7 U, `. i* n* M0 `
- (equal width 0.0)+ V$ Y; A$ H/ A! j
- flag2
2 ]8 n; [) Z8 F! Z: B9 | - );and 6 I$ n8 L% w- X" g
- (progn4 h( g5 S" a0 l1 a8 ~' {
- ! ]* t* U/ i- l* Q& B, S
- (setq n 0);setq! T1 X6 k6 l0 y- @- b
- (while (and (equal width 0.0)1 r4 v# [* y- P6 u& I9 f5 X2 s
- (< n (sslength ss3))
3 o8 V% }$ Q5 h6 k: v9 V/ r - );and& e: b: w# X$ u* T" ~9 l
- (setq flag nil
% X2 M1 H( Z" q* _+ q- X - na (ssname ss3 n)
/ ?; {8 n6 I4 p" v: }( ~1 h - na (entnext na)
6 q Y0 p: t* X+ {# U: Y - e1 (entget na)
) D. Q0 O& s6 q4 E5 e - );setq5 x4 m( b6 l5 m7 E. H1 J' d
- (while (not flag)
6 |& Y5 G; v9 e& L1 h: }; G5 @ - (if (or (equal (cdr (assoc 0 e1)) "SEQEND")% e( G3 i) P! k( `- z: c& N: K* R
- (not (equal (cdr (assoc 40 e1)) 0.0))
. z1 F& R9 W5 F: h - (not (equal (cdr (assoc 41 e1)) 0.0))
, e& J5 U8 v% e" s" \6 a - );or
7 |: E: m2 x6 M, K7 g! y5 @8 M4 h - (progn& b) h4 e" Z/ T6 Q& O2 {) M
- (setq flag T);# f( W3 ?9 k( u2 l
- (if (not (equal (cdr (assoc 0 e1)) "SEQEND"))) `4 t# [6 [: N$ Q
- (setq width nil) * C6 M/ h1 R( N; b% B" q; {& L
- );if
1 b. c0 z; }7 X - );progn then jump out of the loop
# D! [. y4 n' w C6 h% Z! ~$ p - (setq na (entnext na)
# d1 l' R5 P: X - e1 (entget na)
$ ]4 c0 S7 {6 [7 a# r( u - );setq
* s) j7 Y' \2 C+ r: j - );if
. N4 R+ \. @2 H, F6 Q; ?7 o - );while* G+ }. M; o" K, C
- (setq n (+ n 1));setq 1 V( t0 Y7 q) d5 l" G4 o7 n
- );while
9 n" B( b+ y" y) U - 3 n4 r1 \2 D+ |+ g" ?0 Y. C: b
- );progn then it's a legacy
# w6 p8 F4 z8 e! }2 P# Q* n5 ] M - );if ;legacy polylines that may have varying widths v# ?/ w3 t1 a3 k- j, M$ R& x) H- C
- ( f8 f. G% l' E9 f# O
- (if (not width)" b4 u S0 U2 Y% E3 q- o- M
- (setq width "");setq# d! `4 \. H1 Z+ _7 g4 U+ Y$ `% X
- );if
9 x2 A, ? X: c# L8 b$ @1 a* J - (if (not (equal 'STR (type width)))
& M% e7 C6 _2 R9 X2 @# l, Z - (setq width (ai_rtos width));setq
K- W5 m& r7 f& }( B - );if + h- }8 f3 l/ w# A6 a6 O
-
% F' F. { S( J0 d7 T8 Z+ y - width 7 `& B% H5 i7 K% ^- X
- );defun pl_width_getter
. O8 S# H9 ]+ k% x
( t- _: i0 M" s: U0 S" M$ U0 u- # `7 p& t6 ]1 E4 H
- (defun match-col (/ ncolor)
9 ]$ R, b, u3 } - (setq ncolor (cdr (assoc 62 elist)))% H1 G2 B) B) J
- (if (not ncolor) (setq ncolor 256))( S# p$ }, f$ g& A: _4 y
- (if (/= color ncolor)( D8 k7 r- x! V# B9 D3 ~0 s2 u: }. K
- (progn
$ \! g( E! A' k7 k& D' E, H8 Y, c9 H - (setq chk-col nil)
- t9 h4 t3 a M" {* Y& J# f' V - (setq color nil). ~" `, J; ?9 Q' h3 p
- )6 c; Q9 m$ J, ^- T# G
- )- ^5 \! X' D. W* l! A z5 Y
- )
. e2 j( p5 u& h4 k ]0 G; O - 5 n- F+ p7 v# g
- (defun match-lt (/ nltype)
7 ~0 O W( H' L5 z5 T3 U - (setq nltype (cdr (assoc 6 elist)))6 ^! p7 D ?/ c
- (if (not nltype) (setq nltype "BYLAYER"))/ M3 v! j$ N* s! P% u8 H9 c
- (if (/= ltype nltype)' H! O5 D6 Q" l
- (progn3 z0 J2 h! S% D; W7 g
- (setq chk-lt nil)
! X) R$ M: }, ` ]0 h/ H7 O4 P& G - (setq ltype ;|MSG0|;"Varies")
( H, j- E5 C5 G" c$ E# f' q - )
* }3 a! D! p( p3 o# W0 F0 D - )1 M6 H9 Q: F6 l
- )
; d. x& h! h3 ?( _ - - N* P2 O1 i' l( i
- (defun match-lay (/ nlayer)+ M* M( o$ F( S% G; D1 Y B) k+ N
- (setq nlayer (cdr (assoc 8 elist)))
& I$ X! ]' F1 ^4 N# G3 u- U D - (if (/= layer nlayer)1 T2 z5 ]8 b7 M' X+ L
- (progn
% p% g, p/ H2 B: S' R$ x - (setq chk-lay nil)
& U6 O- D0 B j- A' o! A. p - (setq layer ;|MSG0|;"Varies")
, U0 J. e: N0 b7 y0 T% ^ - )7 K7 P; z: E+ k
- )
0 i! z* v& P, a% g2 i. @' J$ E1 C - )' r! M/ W. D0 S6 M* L) L6 z. K
- ) |4 D: b4 l2 z
- (defun match-th (/ nthickness)
# [ k7 U' K$ W+ V) Y1 B - (setq nthickness (cdr (assoc 39 elist)))
[; r) R4 L( |' o% e( Z - (if (not nthickness) (setq nthickness 0))
& T5 j3 M; T5 `7 W. z7 Q - (if (/= thickness nthickness)
: }) Y% r3 s5 [4 K6 ` - (progn
8 d; s5 z( M% x8 F& i - (setq chk-th nil)
( p/ V. d. Z3 \. | - (setq thickness ;|MSG0|;"Varies")- i$ P: g% v4 M
- )
8 U k1 C) ] h) @& ? - )
. Y4 m4 Z% H, A% A" C2 M' w. Q1 n: c) z - )1 M p; m4 e9 c" C7 U
6 W& q3 ?: |* ?2 h3 b1 x- (defun match-lts (/ nltscale)
, ]7 G4 I' u& R; }: `, E - (setq nltscale (cdr (assoc 48 elist)))
" b) l# z+ i4 B9 ^ - (if (not nltscale) (setq nltscale 1)): Y. j" Y. r i+ ]( x& [
- (if (/= ltscale nltscale)
: M' o* S5 J( x# J0 z( V# c8 ~ - (progn, b* d" ^! ~/ u; e! o+ Q5 J
- (setq chk-lts nil)
p. X m$ x, i& @8 R% z9 F8 Y - (setq ltscale ;|MSG0|;"Varies")$ V0 d) @9 I' D8 J& h9 F
- )% p; Q" J0 d1 R8 p8 f% D* m
- )
6 h: h- W) [" g' x2 k - )0 b h4 Z2 ^4 S$ W! p4 N. u- o0 J
- ) i r9 k6 s# Z {8 `8 m
- ;;2 k9 f+ }0 z! q
- ;; If an item is a member of the list, then return its index number, else
' z4 o) l9 e# ^. R - ;; return nil.. b I4 E' |- q8 \
- ;;
& m6 X4 V6 \: k. d - (defun getindex (item itemlist / m n)
5 h) `& H2 W( X# D E/ Z5 v% H- W8 D4 X - (setq n (length itemlist))
) {( k8 F4 O; P0 z2 l! j - (if (> (setq m (length (member item itemlist))) 0)
. l* ?# R* @ R; Q- K! [# ?! y3 S - (- n m)7 h5 x1 X7 I1 A8 @0 F- k. I- }; L. S
- nil9 K6 a9 y. p! Q/ c, E* X* W5 z+ L
- ). ~3 s2 | o. T' T3 [" k7 F) b
- ): u) q1 z# U7 N: Y% O8 b2 x7 p2 f
- ;;
$ N# s$ q" }+ a+ U: R0 i% E7 T - ;; This function is called if the linetype is set "BYLAYER". It finds the: r2 r3 @: n' x; p. z; F
- ;; ltype of the layer so it can be displayed beside the linetype button.( E4 j" ?# Y/ K; @% _5 k3 o
- ;;
& p1 C* g& W t+ p - (defun bylayer_lt (/ layname layinfo ltype)2 m. r- p2 h: s4 J
- (if lay-idx
! r6 B; `) b3 _ - (progn7 I: ]: B1 d8 n; y" T6 [, n
- (setq layname (nth lay-idx laynmlst))
' D7 T2 B9 y& R2 H - (setq layinfo (tblsearch "layer" layname))
0 o; D: h3 D' ~ - (setq ltype (cdr (assoc 6 layinfo)))
6 U7 o) B" x) m - (strcat "BYLAYER" " (" ltype ")")* J* M+ L; K& ~2 y0 m Z# F9 r* F1 ^
- )
) g. P" E8 c }& @% I, @" y - "BYLAYER"
- v4 W9 Q$ M) t% j! E$ z4 U8 X - )
' m8 ]5 u% I1 {# n6 a: q0 E& x9 V2 Y, G - )
0 @, L; I5 V% g3 Q - ;; _9 L6 e: l# `7 R, N2 s; P" s" Y# f
- ;; This function is called if the color is set "BYLAYER". It finds the
6 m; R* ]7 N [- S" Z$ y - ;; color of the layer so it can be displayed beside the color button.
5 o8 r/ `9 k; Z# u7 | - ;;
\; s0 \2 F; H- \) }0 S5 g u - (defun bylayer_col (/ layname layinfo color)
% C9 Y" [2 `+ j2 U& {# B - (if lay-idx
9 f( t& i9 B: Y6 U$ Q$ A$ C - (progn
Y5 y1 f" k; y - (setq layname (nth lay-idx laynmlst))- U9 w8 Q# m. j9 b- s0 I# L# W
- (setq layinfo (tblsearch "layer" layname))
# A. a2 H) N/ r7 N8 y4 E. m - (setq color (abs (cdr (assoc 62 layinfo))))8 @" v$ V2 Y' g2 l3 r6 r
- (setq cn color), [# }# N, z+ v% P
- (strcat "BYLAYER" " (" (colorname color) ")"), F* D: M$ `. E% [
- ), J' ]. e" f. R* r, v6 y; I
- (progn$ l6 m( C! E. y9 I* p
- (setq layname elayer); ?) f4 O. w3 W! B/ g/ z
- (if (and (/= elayer "")- h7 x& @$ Z& \% o) Z
- (/= elayer "Varies")
- N" L, s6 ?1 b! M9 e - );and
! V+ V2 v! i5 M0 x7 S; F - (progn; \5 K \$ H2 k2 B" p* O% h
- (setq layinfo (tblsearch "layer" elayer)) y0 Q3 T* a" H+ R$ }
- (setq color (abs (cdr (assoc 62 layinfo))))
& |: M( f% ]2 y4 Y4 f - (setq cn color); u/ j5 _9 w. Q! {$ o! ~
- (strcat "BYLAYER" " (" (colorname color) ")")
" P' m8 l$ h, |( u* u, z/ | - )
0 \7 Z+ `# U/ ?% k3 U - (progn* i( j- A/ E7 L! [; H# ^) d3 m7 P
- (setq cn 0)1 o+ m8 n4 [! r$ N) N+ r C9 B
- "BYLAYER"9 n, @& a' j; M& x$ t! M6 w* ~8 o* @
- )
- t: Z/ Y, R$ l+ a; k" ~% U T - );if
. u5 `) V/ I+ A' L5 [ - );progn* R6 b) D$ }: a) ~
- );if5 X1 A! \/ O( I, X7 b3 r& P( i! U9 Z! N
- )1 L1 c3 \6 D% J* E8 o
- ;;
' E n' b+ C) X+ J* F h2 w" B - ;; If there is no error message, then close the dialogue
- Y. Q1 h. [! ^, F3 | - ;;$ x9 p8 Z9 @9 T1 M: S+ T
- ;; If there is an error message, then set focus to the tile
q; K$ o7 W# v - ;; that's associated with the error message.+ z* e" R: k9 N5 G3 `1 i; f
- ;;
/ e* \4 V* _" c+ [+ [3 v - (defun test-ok ( / errtile)
+ c* i+ {. j. x; O. e! v5 }; F- m - (setq errtile (get_tile "error"))) x E' o% d# q5 \: k6 y
- (cond
' ]0 C6 T: Z; Q# b1 n4 C, k2 F2 i - ( (= errtile ""). z) d3 `. J6 t r( p6 P( V
- (done_dialog 1))
, g! i- D( {5 D0 v7 o - ( (= errtile "Invalid thickness."), }- [5 ~0 G I1 j7 r1 g
- (mode_tile "eb_thickness" 2))7 G) W+ P& j! }7 w! I1 g
- )
7 `: a( D6 N) p' j - )
' P) b- P1 z" f - ;;
! u/ D2 Y2 A4 M1 A& @ - ;; OK in main dialogue.
7 D5 J3 T. x) P5 H& { - ;;
' C$ P8 ]+ i2 W: D+ l - (defun test-main-ok ( / flag)
1 D# O5 V4 B" |# L( ] r' d - (setq flag T)
3 o* R% m% }; P( G* R" E0 e - (if (not (or (distof (get_tile "eb_thickness"))' f! E4 S, e/ r# s1 A! m) m
- (= "" (get_tile "eb_thickness"))
; H4 ?! M3 [) s* L) ^" S - );or N. n6 ]4 q4 k# Y' _
- );not; [; I4 l6 z" w: G( P3 u3 G3 K) q b
- (progn
7 K5 o7 p4 O4 Z+ M7 _ - (set_tile "error" "Invalid thickness.")2 L7 f# a5 r+ _/ g4 x; c. f
- (mode_tile "eb_thickness" 2)
5 A/ g6 L6 o$ q - (setq flag nil);setq
5 I/ r! a: M4 Z7 l8 M \* k - );progn7 w; B, g! S7 k$ ]$ _2 _
- );if8 K8 L0 J* p p- f- @1 G
- (if (and flag
5 g* l3 g! O) J. d9 e7 q% x - (not (or (< 0 (distof (get_tile "eb_ltscale")))
$ C$ u3 v H* q, M - (= "" (get_tile "eb_ltscale"))
& a& C$ v( \. d2 g, i - );or
- s8 _( U2 e& C# q9 Q- P8 Y' ~2 M" S - );not& O- w6 I& A! Y5 Z5 k: Q" [
- );and ( p. G* B$ S" e/ h! Q$ G
- (progn9 v2 R8 c9 Q: f' e* P
- (set_tile "error" "Invalid ltscale.")
4 ?8 r7 m5 A3 ~' \% h, [ - (mode_tile "eb_ltscale" 2)! v( {8 h. Z$ a5 X3 n; V
- (setq flag nil);
1 B) c2 P% S6 C+ j' {& ^% S9 R( j - );progn then
% _# q" [) A( X5 h4 X a5 ^ - );if
$ Z' Y- _( `4 G" `" N: g# a - (if (and flag$ q u0 P3 h7 Q
- ; Don't test the tile's value unless it's enabled.( ~/ X+ z; \+ P
- ; We're not set up for the display-only value
7 }8 N8 |# p9 w2 f% h( ]2 K - ; of "" here in the error handler.
! T6 E0 [# S$ [' w: V - (= 2 (logand 2 eflag))
4 T' i8 Q1 B$ k! o, H e - (not (or (< 0 (distof (get_tile "text_hgt")))1 ], w) f: g# ]. k2 b* D9 ?
- (= "" (get_tile "text_hgt"))
5 q( n: }1 Y- p* y - );or. s# @8 M+ S& P! R. C& K; _
- );not
+ d; O8 z( j( m7 n5 b2 a - );and; r/ E# ?4 |1 I3 r
- (progn" d0 G/ c1 ?$ {5 J8 ]
- (set_tile "error" "Invalid height.")3 b ]# o; w1 L1 T1 `" Q/ b
- (mode_tile "text_hgt" 2) f" [+ ~! R2 G- i
- (setq flag nil);" U3 H- M# G+ d
- );progn then
# r% \5 \1 ~7 h) E9 `3 X - );if
k/ b* B* ^) T ?) `/ d) }. \0 W, W$ R* L - (if (and flag
; D& t& C! e; O4 R - (= 1 (logand 1 eflag))0 i0 Z- X' S2 S
- (not (or (<= 0 (distof (get_tile "poly_wid")))8 J/ N& W1 I# V6 r
- (= "" (get_tile "poly_wid"))# p5 C# ^' B, }! ]% b+ D
- );or
! q+ [% v) s' A( L7 j7 A - );not
4 M1 G2 }0 B7 s3 H4 z9 u1 r - );and$ X0 J8 K5 o+ ]' Y0 ~& t; Y
- (progn* V- g0 |3 i( |
- (set_tile "error" "Invalid width.")
" l! K! E y# l( M% M' e0 J - (mode_tile "poly_wid" 2)6 M1 w; g `0 @9 q+ c! a+ ^
- (setq flag nil)6 y0 s, ~1 a& p! s/ u( v2 W
- );progn then7 e7 R \* m2 R( ^4 C. ^7 @( x* t# L
- );if
9 r. g+ Q5 j2 }" X - (if (and flag: a' [. e, b/ A7 `4 s v
- (= 1 (logand 1 eflag))$ M5 L5 U1 O3 F6 N0 q
- (not (or (distof (get_tile "poly_elev"))
, N, a/ P1 d8 l# a! y: I - (= "" (get_tile "poly_elev"))5 z9 L: \/ e1 [% v' w2 W
- );or* F! j1 B+ b& R4 q( O" J
- );not( k/ T- }+ F9 V: f# G6 b
- );and
: @0 d: G4 u5 X3 Z5 O - (progn. r% K3 r) x( U: T
- (set_tile "error" "Invalid elevation.")
* i* h4 I9 u/ j0 q4 t; J/ ` - (mode_tile "poly_elev" 2)
0 s, u" @) `) }/ N! W* k - (setq flag nil)" x: Z* T8 Z+ h$ C
- );progn then
* N5 ]: r' {& ?4 E; m - );if
1 k" E5 f9 o* u7 W2 ? - (if flag 6 Z" l! Z3 Q9 p, n( Q0 N8 V4 I& L
- (done_dialog 1)
/ k1 y' W1 U' F' [' `$ p1 }8 K - );if
; C' n+ f, l9 O O - );defun test-main-ok
9 r! G: \2 D, B - , ~% F( [$ k3 O; K. z: l6 z3 U* B
- ;;
$ W- h/ y9 n( u0 C" a/ o - ;; A color function used by getlayer., @* v9 U0 j/ [* t X- V# r
- ;;
) Q- z, P. K6 ?6 A. v/ ] - (defun colorname (colnum)
* |( e& w7 s, o$ y - (setq cn (abs colnum))- P4 i: J: `& k1 a7 ~" B' U& \
- (cond ((= cn 1) "red")6 Z& y, `( l M( ?: r! h9 x
- ((= cn 2) "yellow")8 y4 }1 F! n1 N& O f5 l' z
- ((= cn 3) "green")
4 b! X; `% Y8 C1 ^5 | - ((= cn 4) "cyan")+ _& }' t4 O9 j* [
- ((= cn 5) "blue")' J2 ]+ A# \8 Q$ v( B
- ((= cn 6) "magenta")- X+ V, }4 [7 ]
- ((= cn 7) "white")
9 D1 `* r, F3 x - (T (itoa cn)), k3 p; x. }& E4 M
- )
) j4 V" d/ b, @1 ~: I% C6 t - );defun5 D) \ o6 i& \$ `' d, U1 v" f3 i: @
- 1 [- p3 p) H4 ^) y) W7 P7 q
- ;;; Construct layer and ltype lists and initialize all6 h7 q8 r) }) T3 ]" `" X% `: R
- ;;; program variables:
* W* T* N. J4 s6 o3 D0 q - 0 Y' ~( W$ s) r3 ?
- ; (makelaylists) ; layer list - laynmlst
. X% ~: a. F% i9 E
8 N: W8 Z0 T. p7 ?3 [+ Q
! ?6 t$ U9 C/ I+ j' N- (makeltlists) ; linetype lists - ltnmlst, mdashlist8 b& C' v2 \8 \$ H9 l
- ) H! X3 e. c1 M) M L4 H: R2 D
- ;; Find the property values of the selection set.2 u5 q( Z. N m. K$ l3 o$ [) X
- ;; (getprops ss) returns a list of properties from
9 B4 `( I7 a5 B# b* |- b - ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).
8 s* J$ q1 I, Y3 y - 4 L( [0 G0 X! ]2 H9 Y) |' ]
- (setq proplist (getprops ss));@rk interesting things happen here
/ V% K: I& X" e% c( @ - i7 I1 v0 Y4 V6 v+ p3 p+ z- f
- (setq
" ?# x8 ^: q' k3 T' d& B - ecolor (car proplist)
1 _ L. t/ X. P/ h2 z# t- ^7 ?5 h+ J - eltype (nth 1 proplist)
! b# u% b3 U0 [3 U. X - elayer (nth 2 proplist)' W: c9 V8 C# @, F0 a
- ethickness (nth 3 proplist)
- _& {0 H9 s. ~8 h - eltscale (nth 4 proplist): i+ \9 l5 T: M& f$ x* o
- ewidth (nth 5 proplist)2 L F; I% k1 w7 b8 |# G
- eelevation (nth 6 proplist)! S X# B6 j* B
- eheight (nth 7 proplist)
& f e& C# E, I3 T# u - ;etype (nth 8 proplist);commented out and replaced with the line below. RK.6 I; b" i0 {( I2 X5 e+ f! v
- eflag (nth 8 proplist)
, @! d# x7 `% Z4 \ - estyle (nth 9 proplist)+ g$ K! J% i- ~% y' y# j+ c
- poly_ss (nth 10 proplist). G' ]7 i0 \. j8 e7 m! o& F' _2 r
- txt_ss (nth 11 proplist)
# E7 \$ ^$ z0 w1 z n - );setq9 u5 M% ?9 s* e2 r
; \7 v! r9 G& d- ;; Find index of linetype, and layer lists/ D! u3 w, W% P, i( i9 |* F6 f
- (cond
( @5 @5 T6 k) K; Y/ V - ((= eltype "Varies") (setq lt-idx nil))
2 e l7 X8 T+ `/ U3 o - ((= eltype "BYLAYER"), x, {6 m6 J" ?3 M
- (setq lt-idx (getindex "BYLAYER" ltnmlst)))
( g4 Z+ G9 \$ W4 C+ p2 {$ Q - ((= eltype "BYBLOCK")
# _) T( _0 s( _, A. J - (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
* J+ o, F0 G* Z- N - (T (setq lt-idx (getindex eltype ltnmlst)))
! Y% q; O! L" a - )2 j; a$ s4 {: l) U1 I8 n
- (if (= elayer "Varies")6 V# ~' ^# q4 _& S3 V# |; c
- (setq lay-idx nil)
6 [2 H6 h* D" ]9 b( Q" M, [; X - (setq lay-idx (getindex elayer laynmlst))
/ B2 u3 F' J8 E6 ^, c9 j& y - );if4 w; F" f( k8 Y/ m, U
- (if (= ethickness "")
# _/ g: E8 u p y, } - (setq ethickness nil)+ @! O ^/ P1 d, T9 ~: d- c0 g3 B
- );if
, V% D& l! I, B) C2 Y; @ - (if (= eltscale "")
3 h9 ]7 ~; P6 z9 w; n& Z! @0 t - (setq eltscale nil)
) _- o# }0 \4 [$ s - );if* k0 p0 k9 ?- z$ E
- 8 l' c! ]5 F" E. _2 V( Y
- );defun ddchprop2_init ; end (ddchprop2_init)8 L! `6 E0 N$ b4 n
- + E! \% B# u. S7 r s$ I6 ^& }: X$ O
- ;;; (ddchprop2_select)* @2 M+ i! @, z; I8 V: I
- ;;;, \& ^/ D( n$ Z
- ;;; Aquires selection set for DDCHPROP2, in one of three ways:4 e0 _- n" }( n9 I& |( [& l
- ;;;- a& l; ]5 M& g( X9 x
- ;;; 1 - Autoselected.
8 ~- `( |! [ B0 | - ;;; 2 - Prompted for.! v$ m* X& _5 {
- ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )$ m+ w0 Q, g9 x0 U2 [' Q; }4 b! f
- ;;;2 _) E2 M; ^4 Z' x( o5 w
- ;;; The (ddchprop2_select) function also sets the value of the
+ @; A$ H1 G0 j5 [" s$ N* g - ;;; global symbol AI_SELTYPE to one of the above three values to
( C" l- F8 m+ b% D - ;;; indicate the method thru which the entity was aquired.1 y& x& g/ y0 }! Z5 V* t
- 6 Z, t' @) G! P" t: E( a) g6 U, E2 F! d
* \3 v# G Y$ Y) V$ Z- l+ n, l( m- (defun ddchprop2_select ( / )7 m+ |: E, |8 C$ x' @
) [ ^9 X) M) O0 j! R s* I" t+ Q- ) z5 E# u2 I* k s& n
- ;returns only entities in ss that are in the current space. : d4 S1 Z3 M- k: R" h |, O2 u V$ A
- (defun ss_in_current_space ( ss / a cur_space ss2)
! H( r$ E ?! w0 B( Z) G% b
% C; N1 B0 | z7 b+ x* A4 X- (if ss
! U. d( N) ]+ T - (progn( Q& e& X$ A- y/ r+ Z5 R
- (if (and (equal (getvar "tilemode") 0)
5 e/ ^' N# w. o! h- f6 \ c& C - (equal (getvar "cvport") 1)9 R1 x* Z) X7 V+ a2 u6 j6 U
- );and
# h/ V) \( \8 X/ f7 s - (setq cur_space 1);then paper space is where we are.7 W! f& s" u; A$ P' `' G; g; O
- (setq cur_space 0);else model space.
; Y7 o5 q: d5 n4 S; h" Q7 }3 y - );if
4 O, X: C# A `0 l; Y - (command "_.select" ss "")
, S3 _$ R, e D8 b - (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq: D8 A* v4 n, J. x
- (cond ;;;;;tell the user what's going on.
! Q4 @; V' B4 M; H - ((not ss2) (princ "\nNo objects found in current space."))/ n" M6 \7 {5 @5 p) y0 m8 [! s& B
- ((not (equal (sslength ss) (sslength ss2)))
! d$ n) m; Y6 J9 K - (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2)))
, W/ X" B' t0 @ - " object(s) were not in current space."& b1 E/ h3 `0 ?" {6 g& W
- )" D Q$ V# P# l
- )+ X: n0 A' A8 @7 Y; k
- )
& u+ o- f' d2 g. a5 O2 r - );cond
6 }- G' r+ O' Y3 G( U; } - );progn then
0 L, h) A' q+ {8 n% r( D - );if / Z5 C! X7 q6 {4 Y I2 j
- ss2
9 {% `+ L9 h# J; N0 u - );defun ss_in_current_space
) U! D4 n2 Z, ^ - - U$ x ^* i# p3 z
7 k0 n5 b: a) O- ;;;begin the work of ddchprop2_select$ ^2 c: q5 }9 ?3 n% \# y
-
, R$ b3 }3 ~+ u - ;; temporarily restore original highlight setting.
9 ]$ K2 L& l# p: k, P; C$ S - (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))
( q8 _% s" t" A - (cond
# E6 c7 Y0 u. M - ((and ss
& V7 V0 J2 ]& E - (eq (type ss) 'pickset)9 v; O9 T; c7 `; t
- ) ; selection set passed to2 I* n4 P* \9 g- k* x
- (cond ; (ddchprop2) as argument/ e6 X) Y8 x9 b( V
- ((not (zerop (sslength ss))) ; If not empty, then
+ u7 V5 Z3 |3 U5 x" Z - (setq ai_seltype 3) ; then return pickset.6 w# N" ^; ]9 @2 [8 k* b
- (ai_return ss)
/ C. d" C4 F' M( K( h: K8 h1 } - )1 n' n8 w% r8 W) r! C9 ]( l" v
- );cond close, ?" A- K7 a4 N5 s% I# C+ Z" x
- );cond #17 |, G" _6 Y1 b2 V9 g$ M' C- E9 l
- ((setq ss (ai_aselect))) ; Use current selection6 C& a1 M/ H$ S- E' S) s; `
- ; set or prompt for objects
) _9 G% I0 ?5 ?- t4 }. l - (T (princ "\nNothing selected.")
P* ~& U! w& A4 p - (ai_return nil)$ O1 g. y/ y9 y, x. T+ H
- )
* Y* r4 x. x' H$ `% s& n6 W - );cond close; L; n- G8 `- Q8 A
- (b_restore_sysvars)
- e9 s; t* D1 F% A, T - : I# M, @( P0 g: u! A
- ;(if ss, i3 n0 M1 j2 ~
- ; (setq ss (ss_remove_locked ss)) " ^! V! h3 @+ k1 I
- ;);if0 ?) _; f3 v( ^
- (if ss
* D3 S$ B8 K8 b8 l( D - (setq ss (ss_in_current_space ss)) / |: ?& H8 y z
- );if7 k* a+ z. I _, A7 @* @2 F
- 1 W/ S0 W7 T, D) N/ K
- ss
/ j9 V, J( Y& I% ]3 I; [ - );defun ddchprop2_select; Q- v( T$ Y9 k0 q' j" v: E
" V6 O( g" w' b+ h
6 e' ]8 C4 v' t$ o3 T- ;;; Define command function.
4 a9 ] p4 N3 w* r/ N5 B - (defun C:CCH ()
; _1 M' p& ~4 O ~ - (ddchprop2 nil)
, `) _: }/ H. e% j8 C% w5 Q4 b - (princ)9 Z9 Z; e3 q- S+ m; U
- );defun. m* q$ J1 l$ `0 B/ C
- 5 g5 a5 Y! v; G( `5 n7 V
# o; P: K1 V' v- ;;; Main program function - callable as a subroutine.3 D! `! t/ J' ~5 q8 e$ K
- ;;;2 d5 `, l7 U6 b1 ~
- ;;; (ddchprop2 <pickset> )) \7 ?4 D! b4 R8 Q% C* o8 l
- ;;;4 `, H0 W1 t8 f, v2 i. }, s0 ?0 r, |
- ;;; <pickset> is the selection set of objects to be changed.1 L& b. v4 e. x4 ], U
- ;;;
1 |/ d* i- }* K) S. y& h2 _ - ;;; If <pickset> is nil, then the current selection set is `# V8 k# }" s s' v2 C
- ;;; aquired, if one exists. Otherwise, the user is prompted, G% q+ e/ v: b
- ;;; to select the objects to be changed.
/ ?" ^2 j+ E: a) T( e# X& q# o) g - ;;;& R' a6 L6 O$ j9 K
- ;;; Before (ddchprop2) can be called as a subroutine, it must
3 v) i/ r0 O. {* g, b+ }- ] - ;;; be loaded first. It is up to the calling application to
* P" n' z5 o6 {* H; T - ;;; first determine this, and load it if necessary.3 U9 A/ q! l6 d) J# m" B) K
- % T0 n4 G" o. ~1 ^
- (defun ddchprop2 (ss /
+ q) T+ l. M( H% ^4 y' X
2 R' N, o$ A1 f2 M3 Y- a
i* N& A6 q4 I3 U# d- I; ? - add-mdash- q# b. u7 m8 A3 J; ]
- assoclist
: U& c0 Q0 G- ^* I/ P3 L6 G - bit-70! E% P9 C- R% R
- boxlength% N+ r! ~8 n; q9 f
- bylayer-lt+ q* A* K- D# O5 M+ j! m
- bylayer_col
; W) j1 ]1 p& F% G- m9 p3 }1 b - bylayer_lt
( g& n9 O9 R o - call_chp2
9 n& d( J' Y; ~5 s. @ - chk-col- I0 I- @3 I. X2 u9 y5 Z
- ;chk-etype ;var removed by rk
3 w- ]. P G$ ]4 X - chk-lay ! O( n \2 l( i/ L3 {, O
- chk-lt( U0 \/ E4 X/ f M: J9 h! r# h
- chk-lts ;var added by rk
9 N; y/ X9 }1 @4 h5 P' k* B - chk-th
/ {) ]+ G; |9 o$ v# j7 l# H - cmd
- O8 O1 d6 G$ p% E - cmdecho
3 F. C3 k' v5 L( A6 b1 W* K- u1 P. _ - cn8 L2 j9 l; v. P9 d- @" @, L( g2 D
- cnum
0 U* l1 @) \1 E2 }4 Y# h; m. Z6 v - col-idx3 _4 F3 U% W8 h! k
- col_def5 E' p; E9 Q* T
- col_tile
) v4 i) v2 h# D. g" f - colname
6 z6 h Y& v2 V% X3 R - colnum
# i$ a1 ^! d/ |* ]& |! z - color
9 @+ u2 m( j% ^$ N - colorname
9 H1 |/ T( F1 i- U ] - cvpname
) u. E# j+ J- @& C/ Q$ K - dash5 i& {: [5 ?- g% `" r/ `
- dashdata! ?* i- ^' j+ i3 N6 \
- dashlist
1 d6 T; s* z( }) p - dashsize5 U9 n/ _8 t0 C9 n6 i
- dcl_id
3 {+ S0 M3 j2 n2 _" e - ddchprop-err1 G; X6 e8 E8 W3 V0 u
- drawpattern3 t/ h; S8 }: Z1 N- w
- ecolor) x$ C9 ]5 r) T- s: w
- eelevation R4 _. m" C6 I/ ?; e
- eflag' n9 p: k9 h4 ?5 L. c( p% x
- eheight5 T5 H( @7 ], X4 q) i5 z2 x/ S1 u1 i3 ^
- elayer4 A) X: |& w3 ^2 Q; s
- elevation' i" h5 ^! U. X
- elist, u5 i" _9 y0 \! G
- eltscale
4 C6 T- K. q, k8 D8 g - eltype X1 k3 Q+ i8 j8 R6 J: }1 v
- en r4 p. w2 u A' |8 Z H e5 v
- ename
/ _& R' f1 T7 \ - ESTYLE ;var added by rk7 ~4 [/ y9 J' n
- ethickness3 u/ e+ w0 Y. j" n% b
- ;etype ;var removed by rk j3 O! f+ `# _2 R9 {. {' n
- ewidth' Z, ?3 m. \9 x: w
- fchk$ g/ h3 w; E2 w' \& M
- frozth
1 G/ h- ?) c3 [; C$ ~ - fx5 ]0 [% l9 y# c4 K
- getcolor1 e, _) M8 y+ O& p3 a
- GETELEVATION ;function added by rk
8 S; z2 m# y# w6 I - GETHEIGHT ;function added by rk+ ^% y9 z |- K" m
- getindex
" }0 N. q2 e6 t; y! F- A - getlayer/ h8 K5 Q! R2 {% d) f9 N. D; D ]
- ;get_locked_layers ;function added and then removed by rk
6 E5 w+ L/ f7 w( l% X, d* F - getltype0 R1 q0 R! H2 T! X1 i
- getprops, r$ S R( G* S7 |4 Q: v
- getscale ;function added by rk4 Y7 j+ ^% a8 t% q! k$ F, |% g
- GETSTYLE ;function added by rk8 d J/ b. [. m$ `: |/ E5 M
- getthickness- V. l" o% Q$ g7 b6 Y; x
- GETWIDTH ;function added by rk9 |" U6 o" T% I: q
- globals$ A: d' m( y9 F0 G
- HAIR_STYLE_LIST ;var added by rk# X. M5 o6 Y2 `* a3 A
- height/ T. C, ?6 [2 Y$ G# r
- index
3 b) v) o# P$ r. X7 T - item) V N' v$ i: p4 y- i3 W9 }
- item1
: u; ]3 d& v5 _ - item2
k( M. g* U& l' x( G7 l - itemlist: b- W+ Y" K. y6 Z* f% L2 b& Y* L
- lay-idx* `5 Y# f$ z. R( T' h
- layedit_act% b+ o! r' ~4 s7 u( {% W8 m
- layer
1 F0 c" w! I7 Y - layinfo D) J; X4 z8 \, z2 ?/ s
- laylist1 M2 X3 l& p9 _$ O$ \8 }' _
- laylist_act
1 |: j0 |: g: z) h4 j4 G* R, _5 I' ^' \ - layname
; `0 z- \+ a3 n0 i( k - laynmlst
. J9 d' l t; p6 ?0 E% S; U - layvalue
6 I3 r% a" L2 w5 W5 V8 @: A - linetype# X" P) S% x& [1 H
- list1! j) B0 a( |1 Y! e
- longlist1 W1 H4 _0 R4 a- T
- lt-idx# l7 U$ M* b- A* G1 U* n
- ltabstr
* E$ i# a J" q/ s7 ?9 n - ltedit_act& f$ V% n5 d1 J1 K( ~1 p0 i
- ltidx4 ~% b3 z2 O8 s5 s
- ltlist
6 c, B$ I: g6 C9 U v3 m - ltlist1/ L: P- q0 D7 \# Y
- ltlist_act- h8 B1 d1 H+ I) S( d3 p( l
- ltname
0 z, w9 n) s+ Z4 { - ltnmlst
4 A0 |( r" A0 l k( ^) e - ltvalue
3 T8 t: U* L. B: f: f* ^. s. a - ltype. ^" t6 f9 V9 [' O
- m8 S6 s- v2 e8 P k! I
- makelaylists
H9 r' B' E* o0 V$ _ - makeltlists1 `# t9 N7 g* I z0 Q) w/ ^* R# w
- match-col6 X2 D2 M4 `" U3 p
- ;match-etype ;function removed by rk& u. S( F$ Z% X( `7 _' O6 O" f& C
- match-in
0 m! J: h& G/ ^: k6 C: _, W - match-lay
* f- [) W: d* _* _2 u - match-lt3 I& g) h5 E" e M8 l9 v M
- match-lts
5 Z, m; A: S# g. ] - match-th4 d5 I4 o! t4 e& _" f
- match_col2 O- F f1 V; [+ l' O* {
- mdashlist
. C; U4 {3 b! J: g' h" E - ;MPOPLST ;function added and then move to ac_bonus.lsp by rk
' K+ g* J7 L0 I" S! D+ n- h - n
" A# C4 O4 F8 r - name
! b( ^3 ?5 r( Q& s7 c - ncolor
( K2 |, b, K: }3 |- C* l - nlayer* |. V6 F S3 T; T7 n) J
- nltype7 ~1 G3 }( ?6 i6 s. H* z; X
- nthickness- A+ b g& `( p, c# c
- off
% i7 j6 D1 _2 P, |9 g/ w( J - old-idx4 r/ S! [9 q+ |: [. n; j' t
- olderr
5 i6 l# ?! G, `+ s% J0 X2 D - on r" W5 E' B$ |/ m8 V- ^3 z
- onoff0 h% n- `( {6 h# z- s i4 O
- patlist
N( V( E( W' h1 k - pattern
7 d5 r9 q6 N5 |+ b0 j1 L7 z - PL_WIDTH_GETTER ;function added by rk
+ c. U- D$ x' w" G - POLY_SS ;var added by rk; Z$ r0 P- j; Q
- ;POSITION ;function added by rk and then moved to ac_bonus.lsp8 [' e1 O$ v" S! @5 J
- proplist) \4 W0 e; d2 m w( [/ b$ E a
- reset-lay5 m$ ^4 l" u3 f
- reset-lt
( z( g" k8 d" A6 f - s" q/ U+ ~( j: _! b
- selset
3 ]; c+ S3 K! L9 p! s* F - set_col_tile
+ O5 B! u0 c0 C% y" c- {. C! Y - sortlist2 J& D- r, f6 R6 d% d
- ss
' k4 M- T5 U, k7 e8 h2 b - ss_in_current_space ;function add by rk.
3 X! G& x% M0 ^3 m! U/ |- h2 E: G - ss-index
2 E- a& C0 K8 ^& B; F9 b9 K6 [ - ss-length
+ W* r7 }7 D4 s3 {! ] - ;ss_remove_locked ;function added and then removed by rk.
n% d U, W3 Z4 W0 a" T - sslen$ w; c2 Z0 V3 ^) F% f2 G
- temp_color E9 k: o* R& ]- y& `( T
- templist$ ]* Q8 z8 P5 ^' }6 |# Z
- test-main-ok
& A" z1 P1 e8 B* N8 k! u! e - test-ok% D8 ~9 n) s. A
- testidx
k! Y$ u% m# M% W* a! {4 Z - testlay
8 _ g+ J4 z% x# y9 f - th-value9 M, w0 {; y' k! k% |! E! x' O
- thickness
- R# ]( T9 l0 m2 G, _! D; e - tile4 O" X% C3 V! `+ Z0 d0 m1 i" D# t1 n
- tile_rect
" G5 H- O6 x" X! j2 V) X - tilemode
) d$ F( e5 ~% h- W K3 }* ? - ;TNLIST ;function removed and moved to ac_bonus.lsp by rk- H% w% D/ N7 M" k% r' N
- TXT_SS ;var added by rk/ x# n! D5 [" d# f; _' L
- ;undo_init ;removed by rk.6 T; I$ ~$ V5 }& E) ]' _
- vi
8 d% q1 H8 h2 I6 M& l3 ^1 S/ x, ]$ d - vpf# i' I( s: A2 @9 }/ p9 g( c
- vpldata
: |3 { g( r9 }1 S; r' | - vpn: y) S6 W; u* ^$ c) m( E
- which_tiles
2 u" z/ g* H! O' D2 L3 R& E2 A9 A - width4 a5 I( V$ V- j& k
- x
3 w% _7 @1 T7 `. N7 M, C s - x1
: w! P4 K! I# r- W - x2; T, I$ z: j* p% z2 M% S" S
- xdlist; _5 ^2 {7 z. G8 n, c/ Y
- y
e2 v; Q! i0 U% B* S - y1. ?( Y8 `1 U! c1 g5 s
- y2
% p9 c$ o9 [: |) d! x. y$ q9 M - )6 w( X- O) U6 H+ n" H
4 p" x$ Q! z5 Y' [- (if (and (not init_bonus_error) ! }! S* U, g# m& Z' {3 X, T
- (equal -1 (load "ac_bonus.lsp" -1))
0 s" z N! G& q j ^ - );and
- f$ i2 \! M' F2 _# X+ H% H. B! m - (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))
% K9 \8 c! t) w& h' d7 M - );if( W7 x2 X/ C& g& X8 t
- (init_bonus_error (list' o q! d1 [9 L# R
- (list "cmdecho" 0
9 S* H* W' m" o1 u4 o: [ - "highlight" 0) O4 ? K4 d2 s" `. c; r, y7 v* f
- "regenmode" 1; i/ Q5 q5 C) O4 ~
- "ucsicon" 0
5 }' |( Y% T" ~2 P2 `7 f$ u - )
' g, f0 H) s- j; Z9 c6 a - T ;flag. True means use undo for error clean up.
Z% E* j9 x3 @* D- b6 N0 O - );list
1 t" F4 J: C3 O* B2 g - );init_bonus_error% j$ u9 Y+ @2 f3 p0 V( U
9 x6 ~7 q1 a B0 m1 @9 e# o* U% x- (cond7 \: g5 O5 L- W) z3 m5 U
- ( (not (ai_notrans))) ; Not transparent?; l/ w# Q$ s) n1 ?8 S6 w
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
/ ^* S1 ~+ c; ? - ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?* i$ F1 X Y5 M" {5 ]! c8 v& U1 T$ x
- ( (not (setq ss (ddchprop2_select)))) ; objects to modify?
, H( C/ x/ U- D7 g7 V) k - (t ; ~0 M) c% U: H' @- a
- ;(ai_undo_push)
. K9 y9 n, W* K& O7 F5 {0 Q - (ddchprop2_init) ; Everything's cool,& S# X0 ]7 x! X, H* [+ x
- (call_chp2) ; so proceed!
1 ~! o# n8 s. r6 ]1 b - ;(ai_undo_pop)* L0 C* I5 M9 H* g$ h. E
- )
( @3 k# K2 m# q! X. Y$ j4 `5 o - );cond close2 C; W2 e: u% N
- 3 h$ @$ j3 S; t# f; u4 c& m
- (restore_old_error)4 X% L. g* w7 |0 w& u& X+ H% x
. A2 n. s$ I, R' s. U- (princ)* `$ ~# ~: y! R5 i% `7 J
- );defun ddchprop2" _6 h( w1 D$ H' \3 X/ M
- / h c; f" A9 [
- ;;;----------------------------------------------------------------------------
5 X$ @( s( G: y, n - : d1 U1 [9 \! _& i7 v
- (princ " EXCHPROP loaded.")% n. F3 h5 V! L
- (princ)& D4 W0 k/ n& X* A& J' {+ p
% [* l8 q1 B5 J, c# n$ {( l4 S- ;;;----------------------------------------------------------------------------* ]5 U& d- ^# j- w; ]
- ;;;---------------------------------DDCOLOR_LSP--------------------------------
& O" I: s: \" Z' N - ;;;----------------------------------------------------------------------------
/ b! W0 C" r$ m3 A9 B% G - 9 S" [7 V3 m& n( b3 q
- ; Next available MSG number is 24 ( k0 Y# |$ D) L0 H. S$ ^8 Q w
- ; MODULE_ID DDCOLOR_LSP_0 c6 p. ]: k$ i5 I
- ;;;; K1 W; b+ c+ T) i
- ;;; ddcolor.lsp
% a0 I s6 \+ ^6 F/ j! ^6 m5 I" X! S - ;;; 0 K* h7 M$ \2 X& t, I- c( h) Z, w
- ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.& v, y8 R2 x4 |- f5 \3 s7 M: Z0 m
- ;;;
; d" @- A" M, ]5 T1 T - ;;; Permission to use, copy, modify, and distribute this software
2 N3 J; E- N, @/ _7 O - ;;; for any purpose and without fee is hereby granted, provided( A+ b$ t% E5 A0 }4 r' {& }" g
- ;;; that the above copyright notice appears in all copies and7 m8 y& b9 E) S/ r! R$ R
- ;;; that both that copyright notice and the limited warranty and1 J T0 n" J/ b* Z* z# O7 g6 W- a
- ;;; restricted rights notice below appear in all supporting
& O+ _; x" I+ Q7 a2 y, t4 Y - ;;; documentation.3 s6 E& X; P/ }+ {& ^5 C) B/ j
- ;;;
: [9 v1 J) t7 K" |) c9 L. x - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
# z& M' h3 q5 b: z# m5 f - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
5 p1 R7 F# S* g- u2 Z& d0 y l/ ` - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
! g9 O0 [ d* b# i& Y# S9 T/ |, L2 M - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE# c3 G7 y' w% [. c- z
- ;;; UNINTERRUPTED OR ERROR FREE.' i/ d4 u! m5 N; p9 M
- ;;;
6 i/ E( k& W: z2 T - ;;; Use, duplication, or disclosure by the U.S. Government is subject to" x) q4 d0 o& _. x( l I" C
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer3 X* u/ p% k) b( Q) `4 V2 H* Z
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
* C B, l1 s, D% m, }, \ - ;;; (Rights in Technical Data and Computer Software), as applicable.
* b: e+ |+ \7 b* h6 ^ - ;;;0 Z$ H5 G) J# Y* O
- ;;;., B `( S. F& v( U- K5 C4 l
- ;;;
5 Y0 P& Q. c" @% [8 f7 ? - ;;;----------------------------------------------------------------------------( K3 g. L( w3 V6 }* a. Q
- ;;; DESCRIPTION" G% ~1 e; a7 A
- ;;; % Y: J; |. O2 d( S
- ;;; Chromatic Pallete style color selection dialog., z5 Z3 K4 m, S' P) L/ `* |6 Y4 f4 t
- ;;; & j6 b3 A: c: o: l/ u* B) j% d
- ;;; Globals:. ?. ^: i" b" I% H/ `: a
- ;;;
# `9 Y9 {, e. B: n t! i3 q% p - ;;; chroma_color - Integer color index. The last value selected8 Z+ U1 v2 ?2 [
- ;;; by the user in chroma dialog. It is not cleared or reset
0 }; O' H! o$ h, O - ;;; by a cancel. Only used for communication between callback/ j+ X( A. `7 M# L
- ;;; functions and the (chroma) funciton.
2 B! F& d y/ C8 L2 D' B: P5 f) J& R - ;;; ! d5 f8 Q& H( }6 E
- ;;; Depends on the definitions for the dialog provided in chroma.dcl./ \$ _2 O/ t, f1 t. j! g8 _7 ~1 N
- ;;;
& e/ \/ l) _ F- d - ;;;0 g0 j2 H( u+ W/ M3 U
- ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma ; v' ?3 q( W% b, [$ n
- ;;; pallete style color selector.
' w2 R! w( Y8 h/ ^ - ;;;, G8 ?1 z" O. U" w
- ;;; ===========================================================================0 t; g' @% D' T2 p( z: j
- ;;; ===================== load-time error checking ============================1 t0 [; _/ y% l+ T* S1 O! w
- ;;;& x8 l6 N3 I: Z5 F! W( b
- + W( I3 R3 D% ~. f, k6 O- E% i& v
- (defun ai_abort (app msg)
: l' y! n4 J- ?/ w - (defun *error* (s)" D" k8 \- E" U2 x. ]& ?
- (if old_error (setq *error* old_error))+ y O4 V/ ]/ z, b& {. c! M
- (princ)' I2 l v% q7 i! j* v
- )4 R; a3 ~; {6 e( J
- (if msg4 s: M, _- F/ d8 a( D3 b( z q+ U
- (alert (strcat " Application error: "! C+ H0 t2 v4 q
- app8 i+ x3 M% k. I4 w* b/ g
- " \n\n "
; Y1 ^# Q6 ~5 R/ s% W - msg7 R; V! h* E; Z6 A8 b& y
- " \n"
. s9 G6 `+ t1 D( B. Q0 m1 h I1 H - )
6 j6 y( [7 W8 B: B9 t2 X- r - ): [' x& ^! A. e' u" I) F8 o \
- )
# F% Z8 |3 c0 y+ c( E6 i6 k7 I - (exit)
( ~4 r4 d- k( V+ l/ T - )* ?5 w. I3 O t6 q2 Y. W
8 [4 ^+ d* M5 E9 L8 G% {9 T& u- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
9 |9 ]' ^ C$ Y5 w' o W3 X6 d - ;;; and then try to load it.
* m$ T }+ q1 @" C- T - ;;;
8 ]# U3 t) O2 O3 O6 p2 C - ;;; If it can't be found or it can't be loaded, then abort the, e! @3 k: `0 @
- ;;; loading of this file immediately, preserving the (autoload)
# n+ g2 A/ D/ Z$ G6 [( j% k - ;;; stub function.4 U3 U8 c" [' t
0 x3 z8 O a9 F" G. T. B8 c- (cond" a+ r; }5 x+ S7 K( D$ i, ]
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded." T# o6 q% G% N- s' ]$ i# N
- + h( \# a# L) I) V7 c* ]
- ( (not (findfile "ai_utils.lsp")) ; find it
8 N' n6 p# X- h* @6 Q* E2 }1 t) v - (ai_abort "DDCOLOR"
( D% L- t& E2 x: ` R, G - (strcat "Can't locate file AI_UTILS.LSP."
! N1 \7 k S( w - "\n Check support directory.")))
# ~7 ?3 g! q) U5 h0 v8 a
7 R; f$ _: k3 O8 z. K6 d( Q" ~3 q- ( (eq "failed" (load "ai_utils" "failed")) ; load it
2 u3 X6 \0 o9 b - (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))9 t) l5 E9 Y3 O+ i8 O* o2 `
- ), W' Y* }5 O$ i' @
- + Z" X) E- B: h* Y0 I
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
& h5 n7 F! Z0 u5 a% t( i# v- A0 Z - (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses: f7 o8 y0 c3 S& j# A3 ~+ M
- ) ; ai_abort's alert box dialog.! m# M) G1 S) G" L
- + N& Z- @ y: c0 \
- ;;; ==================== end load-time operations ===========================) K8 e3 P& T1 N" P
/ H. O7 U, l9 O* _9 ?2 [& I- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)
* e9 L6 d7 E( j - # E. Q1 E( l, W2 I* | K# _
- ;; Main Color function, called by setup code.- u7 [& q; Q0 {9 Z6 e2 ~
- (defun ddcolor_main()/ g9 G- [/ D7 w2 a6 W& Q0 h2 i" U! ?9 Q3 Q
: T9 X4 _4 G! |/ C0 }- (graphscr)* o0 A/ a$ E& E+ Z5 \2 Z
-
, v! O3 T5 x+ ~- `7 Q0 G - ;; Get the color of the current layer, for possible BYLAYER color swatch.
2 O K! R; r, ]: g+ z - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))
, N% Z2 u% x- s0 Q3 |
+ r4 Q4 W* r* ]' a- ;; Call the dialog here..." y' P5 ^! y0 S& o3 T
- (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))
H/ z' b( ^1 K. f! Y1 |3 T/ l" ^ - + }9 b3 @8 y+ ~; @
- (if clr
. S! r2 J' V9 U; K) |+ v, r: h - (setvar "CECOLOR" (citocs clr)))0 I S5 e! D7 {: o
- ), c' E+ g8 S% D8 h
- , b) ~$ @3 k7 Z$ W/ V* w- O5 [1 s
- ;;;3 t, M9 _# X: m) Q; c3 O1 D
- ;;; CSTOCI -- Color string to color index
: H6 ^' d% ?4 S - ;;; Convert an arbitrary case string into a color index.
) V! F5 k1 |3 u/ `8 E4 I - ;;; Returns nil if string is not a valid color.
( B; V" w9 g! [! b& R4 X4 X$ F - ;;;
$ ^) V& Q- r3 f) ` - (defun cstoci (str)
/ p( ]6 s3 G% @0 U5 w5 N - (setq str (strcase str))# {# W+ x9 z( D# ~( W
- (cond M% A7 W/ W( C4 N: Z8 o, n- e
- ((= str "RED") 1): g% w, Y, X9 W$ H: E" w
- ((= str "YELLOW") 2)# a# }: X2 g" H& c1 W' F1 T
- ((= str "GREEN") 3)
$ S2 G# f$ D+ ] - ((= str "CYAN") 4)9 ^- M0 L3 S( D2 n
- ((= str "BLUE") 5)2 E- Z4 ^4 m/ C4 u
- ((= str "MAGENTA") 6). v0 t3 @0 T; D% W; H) N. Z
- ((= str "WHITE") 7)
8 V, P: L6 |! h$ }0 b4 x - ((= str "BYLAYER") 256)
* s% X h0 E9 W+ j& k+ n - ((= str "BYBLOCK") 0)& d% M) |" p* y5 Q- o' j% H6 Z
- ((= str "BY LAYER") 256)
$ z# B, x. r1 r; U - ((= str "BY BLOCK") 0)! i7 D% }4 G7 }5 X$ a+ ~/ U
- ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))
4 X# R$ N7 O8 G* B* c - (nil)): R8 U! N' C" A# r; o I0 Q
- )
8 r) S: o8 G6 [1 h% F
/ |! h5 B2 B' m- % [- U1 u7 x1 V
- ;;;, f" Q3 R$ K% Z2 e3 ]
- ;;; CITOCS -- Convert color index into standard color name.
5 [! V3 [* f8 }* y* T - ;;; Will return the standard and logical color names as text! q5 |; z$ L" T' s0 e
- ;;; strings. Returns nil for out-of-range color indicies.! j, d. r L: V0 T: j5 }
- ;;;
- j# z; [6 C* t7 z - (defun citocs(i)
3 m* O; }; f& Y( ]2 |8 F. L: } - (cond1 D0 W+ G% }- f1 `
- ((= i 0) "BYBLOCK")6 U8 T( Y6 C- N0 @
- ((= i 1) "red") I% u: r8 I, P+ q1 o2 b
- ((= i 2) "yellow")7 S% ]/ }. r' N! V7 c0 v, ~
- ((= i 3) "green")
* O, U$ V5 g4 P8 k. d( B - ((= i 4) "cyan")
5 V3 c* i/ z- \+ Y1 ~6 p - ((= i 5) "blue")
- M; D) K5 p$ S0 a - ((= i 6) "magenta")
% l0 K2 ]# u; Z3 X - ((= i 7) "white")
/ V8 j. O" i" k; Y; h4 s+ g% P - ((= i 256) "BYLAYER")
# w; F) N4 l: }4 c1 T) V9 Y - ((and (< 0 i) (> 256 i)) (itoa i))
s& J7 g5 Q m# }- t8 y+ b+ j9 G - (nil)); l% A& y/ }3 }, I' i4 g
- )
* b8 k/ |6 [- r0 p, \3 @+ F - 6 X n) E$ U0 f6 G
- ;; Start of ddcolor
. m" t4 \+ k* G% }2 T - (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
/ `8 N" e. Z+ I2 U- F - old_error *error* ; save current error function
+ U0 ]4 v* Y$ J4 i% I - *error* ai_error ; new error function
3 X( V, [+ _# j J - )
9 h6 ^- k. k: d) _9 F# v2 r - ) Z; |4 B8 n* ]5 Y
- (setvar "cmdecho" 0)
( i* R0 ]2 r! I' x% M# {/ p
! n6 L- F2 j4 e: s& x- (cond
, Y& n! f# A, n' B$ x. j4 L - ( (not (ai_trans))) ; transparent OK
8 u9 j, D, I+ d/ T8 c9 F# m9 Y4 g, u9 N - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
7 Y" ?7 C( L- P" d+ P
6 v( j1 C8 R6 \/ y/ \) }- (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))# q6 H; N$ K8 l
- (/= 8 (logand 8 (getvar "cmdactive")))
5 h3 g7 |0 r4 v; y7 Q - )$ ^6 k+ ^$ h9 t9 [6 c; X/ t
- (ai_undo_push)
: z8 R, v/ \$ Y - )8 T3 x7 I7 T1 k
- ! F% J. ]4 h6 c7 O1 k; k0 k ^
- (ddcolor_main) ; proceed!
9 T* l$ Q: u# G6 X; v+ \" Q
z$ l' k$ ^% a; x" G6 G- (if (and (/= 1 (logand 1 (getvar "cmdactive")))
/ j/ u. D3 Y% M# @8 g& W. x4 N: j - (/= 8 (logand 8 (getvar "cmdactive")))
: G- _' ^* @' L' Z - )
5 y0 H" m, E% b6 c$ o - (ai_undo_pop)
W& G+ r; m- U2 C# R( U - )( ~- O# `% B# l. Y3 w
- )
% e: O% ~# l5 u+ b% c% h - )
7 P/ [- e1 ]# C% @ - & O; s" U# V5 N
- (setq *error* old_error)
: ~ n9 P- V% p3 r2 u. S K! G - (setvar "cmdecho" old_cmd)" }. ^5 T8 r3 w4 z0 f
- (princ)7 n) Q( D0 X! V; B4 E3 N
: k5 _- z8 l0 ~: O- )1 f7 o" O t8 U
- 5 y( z& H. p4 O. f% w, c
- ;;;----------------------------------------------------------------------------2 |/ z# `6 ^) y, F8 L# X) k
7 u3 n' `& d: P0 \7 ^- (princ " DDCOLOR loaded. "). u# o4 F' `6 p
- (princ)
8 {! w0 q4 N% e' m# ?8 a8 T3 P
3 S) S( d+ C( r( Y# z- ;;;--------------------------------------------------------------------------;
8 e2 L+ j8 t% A. ?% O' | - ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;
% B8 O- ~6 b0 v% D9 V& ~ - ;;;--------------------------------------------------------------------------;
2 {: X& [% b; F& S# h - ;;; ssx.lsp5 u: b# N, t |% A! c8 J
- ;;; Copyright (C) 1990 by Autodesk, Inc.' e, w( H# x) j" O$ h- s! f. K
- ;;; Copyright (C) 1991 by Control Systems, Inc.
* k% Q! ?( C. V6 i" x. { - ;;; N! J* {( ?! y, c' U' R
- ;;; Permission to use, copy, modify, and distribute this software and its
+ I# ?& S5 t' T# Y& A& ] - ;;; documentation for any purpose and without fee is hereby granted.
l \ }% V) X: `: j' V) T! G* U* ]: ` - ;;;
/ T5 O$ c! c' J) L1 E8 E - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
9 k7 ^6 a6 f+ [1 i - ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF
; g: F0 m( p8 ^+ ` - ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.
+ ?6 g0 E7 M4 L8 b - ;;;1 \) k2 p6 C0 r' A2 u& ?! m
- ;;; Larry Knott Version 2.0 7/18/88
4 Y9 s7 d$ P6 ]- a - ;;; Carl Bethea & Jan S. Yoder Version 3.0+ Z! v6 z( b9 R# R# n
- ;;; Enhancements to (ssx).- U5 D3 @" b5 L3 |9 V: p
- ;;; 15 March 1990
% [- }# j; I, b - ;;;
# [0 p; `7 u; [5 P1 d( y - ;;; ARTIST Software, Inc Version 4.0 December 1991
- c! `8 L5 t# |; S# | - ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,
1 a) p$ d/ @7 Z+ D+ ^% |; \" N - ;;; use Flexicon menus
1 A! G+ z2 J! n% f. F - ;;;1 E$ q4 n0 M& R$ T! x- o( }
- ;;;--------------------------------------------------------------------------;
4 C& F4 ^" Y$ o8 X1 W4 p - ;;; DESCRIPTION
q9 p8 Y0 n# H3 Y: g8 P4 E: N - ;;; SSX.LSP
]# M; b" I4 R z, D+ q6 k/ L - ;;; _, }0 l7 ~% h" T
- ;;; "(SSX)" - Easy SSGET filter routine. 9 w/ i! b+ S. o3 c& {
- ;;;
* s1 d9 z% w4 D! x( p; ? - ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt
4 c( k# Z$ M$ E - ;;; to create a "previous" selection set or type "(SSX)" in response to t2 W' `, q, v0 `& A6 V
- ;;; any "Select objects:" prompt. You may use the functions "(A)" to add
2 y8 w9 Z, Y& E4 P I% r - ;;; entities and "(R)" to remove entities from a selection set during $ F% e% g, Y! g5 e: _+ Y
- ;;; object selection. More than one filter criteria can be used at a
i# e& |' C3 P% x) W: ` - ;;; time. r/ Q8 b1 t. a
- ;;;
; Z% y$ E2 E( T0 a2 } D - ;;; SSX returns a selection set either exactly like a selected
% O# m: @7 I( b& O) p - ;;; entity or, by adjusting the filter list, similar to it.6 Y% o$ s- C' M) T* B- z
- ;;;
. Q0 E) Y- v+ a( i8 D - ;;; The initial prompt is this:
4 A( y. C# b) T# E" L$ T: Z8 T - ;;;
1 C: d" v2 k6 y; z w - ;;; Command: ssx
4 I' ]* v. @0 Q$ s7 D - ;;; Select object/<None>: (RETURN)
! m m5 O8 P1 v' ? - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: - Q/ a( d( {( J, d* t7 U
- ;;;
& j" }5 b* d, r' u0 s - ;;; Pressing RETURN at the initial prompt gives you a null selection
/ o$ q' T2 I/ h7 y. l - ;;; mechanism just as (ssx) did in Release 10, but you may select an 0 v4 Y% a9 r' m( j4 B5 k
- ;;; entity if you desire. If you do so, then the list of valid types
' m& O/ M3 u" l' q: \: ?: e7 Q - ;;; allowed by (ssget "x") are presented on the command line.& e; B9 ^. B5 h. Z7 T: W, k
- ;;;
$ _6 _3 I ^+ j, b - ;;; Select object/<None>: (a LINE selected)
: b7 Y1 d7 {! `, _; a+ y" y - ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
/ {7 H6 b" m. H8 w( G1 o3 E5 O - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: 9 u7 E2 l& ?& |$ e
- ;;; 1 h* {( q% l( N/ [: p5 O
- ;;; At this point any of these filters may be removed by selecting the : F& q/ n( |' G( J9 g" R
- ;;; option keyword, then pressing RETURN.1 ^$ r/ `- H0 ^& {
- ;;; % F1 K" j$ L, N- p+ j
- ;;; >>Layer name to add/<RETURN to remove>: (RETURN)! L% U! Q' f9 M6 O
- ;;; 9 k! m, ]6 ]3 _
- ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))- G4 a; Q3 j) V; Y' o3 ]- d
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: " l& K7 ?- S, \; Y% M
- ;;;
4 N% c' y2 E& f" X - ;;; If an item exists in the filter list and you elect to add a new item,
5 b/ g5 s- ~- o2 K' @' d1 r" D - ;;; the old value is overwritten by the new value, as you can have only
3 N8 V( b5 R" {# \* p0 Y% X - ;;; one of each type in a single (ssget "x") call.
. s, S2 Q/ g$ U7 R: x - ;;;
1 L- A& E# ]2 B2 y/ j# ~ - ;;;--------------------------------------------------------------------------;/ M! g, h/ k( K+ Z" m
- ;;;
7 P0 s3 g0 i! }- d! U1 N2 l' ~/ q - ;;; Find the dotted pairs that are valid filters for ssget
7 F! \; j6 y, d. z) O& X5 N. ^8 s - ;;; in entity named "ent".
, ~+ w% h6 x8 U: N+ p% P - ;;;
& s! d: {4 }1 y5 l# A! v - ;;; ssx_fe == SSX_Find_Entity
+ v# Y: A+ ^, F. d - ;;;
1 N5 ^( y& p- q* u) d, G - (defun ssx_fe (/ x data fltr ent)- I9 R d" y& N6 R' }1 D
- (if (and (= flexvar 1)(/= t2 "Pick"))- _. l# m+ f, T0 B7 X, A: H, L7 ^& ^
- (setq ent nil)
$ V* S! j7 E' D1 d' n - (setq ent (car (entsel "\nSelect object/<None>: ")))
/ a/ v$ G3 ~" O' _ c# O! I8 C; F X - )$ R! J4 O. G$ e$ M; [9 A; b
- (if ent
) r, ^$ @) A5 V; q - (progn3 L) f3 u! G% v& v
- (setq data (entget ent))) O1 g3 i5 @1 |! c9 R' _8 i* a5 G
- (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38
7 i8 M' L' `7 A7 T - (if (assoc x data)9 q, J" c7 a5 j, A" N* @
- (setq fltr
% K0 J+ {; X, J7 ]9 H* y - (cons (assoc x data) fltr)) d6 n, X- ]% D
- )
8 O& L/ h4 c4 s- C - )
5 m1 X8 O1 H. P7 [7 u7 j - ) 9 G0 s9 h7 y) J6 x+ x7 V
- (reverse fltr)
0 F6 O/ y1 w4 Q - )
% y/ t- u9 I# l - ) # ~: k- ^0 t" k7 ]
- )
' z# H2 K5 g l: G' A - ;;;
$ O2 {5 ~ Q$ l1 } - ;;; Remove "element" from "alist".
+ l* s! ?7 F% _: s4 Z - ;;;
% v- i$ o6 _; X9 }8 t - ;;; ssx_re == SSX_Remove_Element
3 l: R8 Z& s$ i0 c; S0 ^- [: t - ;;;4 G- O7 k7 k8 p/ R* e4 c# }
- (defun ssx_re (element alist)1 d3 _' c, o! T& n
- (append8 q6 f+ K- k9 l' n4 |. c
- (reverse (cdr (member element (reverse alist))))) o: c: c- N1 Q
- (cdr (member element alist))
Y+ H: ^$ h& J2 l. ?3 q - )' D: ?3 K) C. N$ N4 {! T! A
- )
* H. v) A) u7 w+ c; D1 F) S! A% r - ;;;& z8 q q) x$ N
- ;;; INTERNAL ERROR HANDLER
/ ~, [) Q, _) a* V, ? - ;;;
1 T" Q0 I P( [& d8 m0 W - (defun ssx_er (s) ; If an error (such as CTRL-C) occurs
6 ]' r; q' T$ V) v - ; while this command is active...
, P' u9 [4 H' ^$ b! y0 M, i; Z - (if (/= s "Function cancelled")& O$ E$ u. C" ^# c
- (princ (strcat "\nError: " s))$ G; e4 z9 j/ r7 U
- )
$ s& Z; {* [% T W2 \/ I" b4 k - (if olderr (setq *error* olderr)) ; Restore old *error* handler" y% p5 H3 ^9 T3 }: M, F
- (setq flexvar 0)% @# z4 k5 p& l1 Y* \; j& Z
- (princ)! Q4 F# U( i1 U# \7 u. M" d
- )
8 o6 j# n/ q7 g1 T - ;;;
+ j6 k9 ~& z+ v" y$ }3 ~" z( M - ;;; Flexicon call routine4 S' ~* S3 z) F) b
- ;;;( `4 p" G) z$ k" p6 z, @$ p
- (defun flexmnu (a)
6 |5 t1 w5 ~: a' c - (if (= flexvar 1)/ ], j$ ]( v. o; k* i6 R* ]2 o
- (command "FLEXICON" (strcat "FLEX" a))
& g* T8 a; T; I% l/ m1 o; j/ c! n - )+ g& Y/ a! g! o/ V* z( p
- )/ f* g8 c: l% e( P0 u0 G9 O- y2 G
- 4 v5 o, Q4 B Q v1 ~4 l2 C
- ;;;
" p# H( J. C/ w& \, f9 x2 J4 I - ;;; Get the filtered sel-set.
) r7 R' k: Q) ^& ]& U0 | - ;;;/ M. L# @; F8 Q s2 J
- ;;;
" c- X# E" @# k - (defun ssx (/ olderr)! Q9 C/ e% _' Z7 N
- (gc) ; close any sel-sets
7 ?' D7 ]/ B* ~* U! d - (setq olderr *error* ; }4 y! ~3 d% j0 g/ U
- *error* ssx_er
4 X+ M: j% F/ ^1 A* R' z - )
2 W& a& K3 o# B/ f( T" V - (setq fltr (ssx_fe)) 1 `1 U, g6 ?3 _8 e* }; z* u! L) c
- (ssx_gf fltr) & k" ^: H& {7 s. c0 b
- (if (= flexvar 1)8 p$ z$ M9 V, |5 |5 N
- (progn0 H1 m9 G. P. C. }- ^& \: D
- (prompt "\n \n \nNow select the required EDIT command and (P)revious.")7 o( Q) `' r, N' O
- (flexmnu "EDIT")
. O& q6 z: U0 D7 P/ ~3 r" Y( u - )
6 _7 c/ r# V! L1 l1 }4 f7 f - (command "p")
( @$ g, e; S0 V# X7 m0 a4 k4 @& { - )
. Q& {3 R ~% i* @/ C4 g+ M& j - (princ)
, p: }2 [# W& t# M! S' e0 W - )# S" L6 r P; ] ^ H/ I5 W
- ;;;- l1 W' z7 W. l$ z7 G+ X
- ;;; Build the filter list up by picking, selecting an item to add,
5 H' `- M0 r& ?. L$ Y - ;;; or remove an item from the list by selecting it and pressing RETURN.4 U$ z& {$ ~7 X. Q3 M# m* K% _
- ;;;
8 N1 f/ F) r, M8 |/ D( \ - ;;; ssx_gf == SSX_Get_Filters
' [" @) M. W& J0 \) j: n - ;;;3 @6 h# s; R! ?0 u7 x- J2 \, V: O
- (defun ssx_gf (f1 / t1 t2 t3 f1 f2)* l- F4 Q0 e% k K s
- (while ! D. w+ k* N6 w& Y+ V; p# l9 O7 G
- (progn
4 x5 y: Z6 L+ ?3 h) T - (flexmnu "SSX")
7 [) Z) x& M9 g* q6 r9 o3 ` - (cond (f1 (prompt "\nFilter: ") (prin1 f1)))
7 h, p; [6 a2 Q1 R5 o7 c+ ]6 X) @7 f - (initget
/ u9 g* [) R; M2 U- N - "Block Color Entity Flag LAyer LType Pick Style Thickness Vector")
& P" F$ N9 u. `0 m# m! Y6 @ - (setq t1 (getkword (strcat$ E% q0 B; h3 P; \: e [, h ~
- "\n>>Block name/Color/Entity/Flag/"& @/ j; \) X& W" k7 v4 ^( N
- "LAyer/LType/Pick/Style/Thickness/Vector: ")))
' U( R8 P. F, Z: R" W8 q% r; C - )
4 O j9 w# k! q, I - (setq t2
9 s' G9 `: \& k7 V6 z - (cond0 D4 S8 J& `' p3 g5 m( ~
- ((eq t1 "Block") 2) ((eq t1 "Color") 62)+ J' V, Z8 P. q! S& ~
- ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8); [: k% N% H% ]4 X9 C* J% {
- ((eq t1 "LType") 6) ((eq t1 "Style") 7)
# k9 q& |! M: ^8 C- _ - ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)* d4 o; C. t2 X& c; l
- ((eq t1 "Vector") 210)
* g* a" X2 K- L; N. v5 c U0 o - (T t1)
T! y' q7 ]1 P7 ?4 b - ), y) D" k0 h% R5 R
- )! F) A2 S9 ~. H- P$ C' @) F$ m: M
- (setq t3
% c* r* `$ V* C) j9 c0 c# ` - (cond
1 F* r2 Q4 \8 D7 W, p2 O - ((= t2 2)
2 _" G$ ~# J1 T - (if (= flexvar gtads 1)
& m, @& U: c; j! ` - (progn
% y+ { O( A/ I9 `( r1 F6 A$ C - (prompt "\n>>Block name to add/<RETURN to remove>: ")
$ t9 p7 k; k" _5 b1 d8 d - (gttable "BLOCK")
% ^: A0 D+ ?$ q! r9 l - )
3 z0 L( I: I- F - (getstring "\n>>Block name to add/<RETURN to remove>: ")
0 ~6 D) @3 k1 p& X - )2 ^0 v4 ?+ n, B
- )
* W$ F' g! v# |/ h" E9 U$ Y - ((= t2 62) (initget 4 "?")
9 ^7 r- [, o4 D, A ]) k) K - (cond! Y9 i3 K* ^/ M* a( O# Q
- ((or (eq (setq t3 (getint - \: m: n3 q7 F G8 Q& ]& j, j, K
- "\n>>Color number to add/?/<RETURN to remove>: ")) "?") & U# k4 w7 u3 t% M0 ?' n
- (> t3 256))
6 ~( c# ^7 `* e: y) d9 b - (ssx_pc) ; Print color values.2 e. g; f/ Y3 |1 U; T
- nil
8 A# I% x" S( n# `* ~0 e4 ? - )$ F" Q4 O+ s. z1 L
- (T8 d# X/ B C/ R/ c0 Z
- t3 ; Return t3.8 Z0 m$ ]6 I! G
- )
2 j2 R- i. Y# k: i7 r - )! P2 g# b0 ^" Y! u/ {1 m
- )
9 q8 O" T, r1 t - ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))
3 y( ^/ L7 T8 u - ((= t2 8)+ q( {5 N! i1 H7 y; X
- (if (= flexvar gtads 1)
( d! C, G1 }% t/ E5 I0 j - (progn
/ E7 b4 c" S% ]8 f; Q - (prompt "\n>>Layer name to add/<RETURN to remove>: ")
9 v! Q2 E2 u0 e# g, ~ - (gttable "LAYER")
: }% O$ L8 p% u V7 ~ - )6 B. l3 S/ o8 w$ B4 G
- (getstring "\n>>Layer name to add/<RETURN to remove>: ")! V+ S% r0 F2 {) {. Y0 i
- )% _* \1 `/ O3 |. g
- )
. f3 G, B9 Z' O" k- S, d2 }; w4 s - ((= t2 6)
2 {) n: i3 b$ M1 W) |$ [8 I - (if (= flexvar gtads 1)' }! B8 o2 |4 {6 b: w0 E
- (progn8 E* ]2 n8 l% T
- (prompt "\n>>Linetype name to add/<RETURN to remove>: ")
, c; _$ O2 q+ a - (gttable "LTYPE")+ M# M+ F2 ^6 v( F8 t: C
- )
) ]& l0 q$ B' f, F# d - (getstring "\n>>Linetype name to add/<RETURN to remove>: ")$ |4 W$ a0 Q' A+ Z4 T
- )+ p1 A/ X- C i
- )
( i8 S6 J* f* m: q' \5 W - ((= t2 7) 2 I3 R$ w; d8 _! V" R
- (if (= flexvar gtads 1)$ ?" x: k& c5 l+ x+ u: `# m& s
- (progn4 u: Q! a+ W+ b5 s2 f% T' B
- (prompt "\n>>Text style name to add/<RETURN to remove>: ")! d x$ J) ^ e7 g
- (gttable "STYLE")7 r1 k8 [" k' I8 O# x8 p3 \
- )2 F! \ p. n3 B; R# B% N
- (getstring "\n>>Text style name to add/<RETURN to remove>: ")- v3 u# \+ R4 h* d% h' c
- )
4 K3 M+ \% m: ?; i - )/ h7 G! a' x1 C
- ((= t2 39)
6 V ^! }4 [6 Q: M- C* _ - (prompt "\n>>Thickness to add/<RETURN to remove>: ")! N- q' k/ ]4 ~- |2 x" v- J
- (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))0 d. E& \: w# x* g: D
- )* M: f7 k' s$ }. ?. {7 }/ z
- ((= t2 66) (if (assoc 66 f1) nil 1))
$ M4 U$ L& T3 F$ I. V - ((= t2 210)
& y" e7 p u. ^6 } - (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")' ^1 {3 p) ~+ r
- )
1 z* Z+ }' e1 p+ e% Q |4 W6 z - (T nil)
1 V' n/ g# b: @$ E6 s6 M$ X, P - )
: R3 T- V0 W) J6 j: @ - )
* }) O2 A7 P1 _( l0 Y - (cond
- \9 {, S" F! E0 K$ B - ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity. t% s5 g( }" V5 G/ l" q! l
- ((and f1 (assoc t2 f1)) ; already in the list, ?8 V6 P7 j7 z
- (if (and t3 (/= t3 ""))
9 F7 C0 C$ b) Z0 T h, X+ ?7 B - ;; Replace with a new value... : A2 r5 Y+ y0 M8 _/ p+ R! R9 \4 s; Z
- (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1))
e: K8 y! k0 p u6 C0 p - ;; Remove it from filter list...1 E$ ~; X* V0 y7 g# R- @8 b
- (setq f1 (ssx_re (assoc t2 f1) f1)) + I3 I9 y, K; F3 H1 T) \, }
- )
$ i3 a: E; ?* |: w - )# ]7 H6 D3 t) `) f' k* J
- ((and t3 (/= t3 ""))" K! N! K) J& v
- (setq f1 (cons (cons t2 t3) f1))
. @ N3 J, j/ Q- v2 i+ B( A) Z3 P8 U - )9 t* J. l/ v" Z
- (T nil)
. o# E0 {6 y ^7 ]7 |% l6 }2 S - )
1 k; n. H2 H3 X - )
; L9 C6 B& ?6 V* A3 S: V. K - (if f1 (setq f2 (ssget "x" f1)))
" c. L: Q/ [1 Y! W5 T3 Z; L - (setq *error* olderr)" i' v2 ?; I' c
- (if (and f1 f2)
) \% v* [9 W% R1 k - (progn0 X* K( U5 f" S* |
- (princ (strcat "\n" (itoa (sslength f2)) " found. "))
9 d3 [5 u0 B. Z, \$ m: J$ J. r - f2
1 g( H& B1 y0 P9 c1 L- H - )7 U5 X$ C6 j0 P% Z0 A
- (progn (princ "\n0 found.") (prin1))
0 A H) F8 C. {# M% |. S' ` - )
" R+ I; @* n1 o+ C - )" Q1 P) L0 v5 K$ I
- ;;;$ b! X- n+ O& f7 x- x
- ;;; Print the standard color assignments.
k, T/ n7 F: K; f+ ~. n - ;;;
8 |2 D( z2 k* T9 l7 w! {0 c8 J - ;;;
, {8 T) p0 X9 F$ C - (defun ssx_pc ()
. I- B n" a6 d( H - (if textpage (textpage) (textscr))5 L- l) `5 O7 w b( h# H
- (princ "\n "), u) |. l# g$ L$ `% B9 V/ K# i! u- m
- (princ "\n Color number | Standard meaning ")
% V6 I, p& q6 L( P; g - (princ "\n ________________|____________________")
0 x3 D$ Q" N' i4 Q1 L2 F - (princ "\n | ")
# A% P6 j( L( T) j' T# E. V# R - (princ "\n 0 | <BYBLOCK> ")
: i I2 x% q, [$ o, i - (princ "\n 1 | Red ")
/ n" O! A$ }1 P! O5 q1 |2 R - (princ "\n 2 | Yellow ")8 b* A8 d; Y' h' w8 s
- (princ "\n 3 | Green ")
. t, I( x6 Q; ?' V) D - (princ "\n 4 | Cyan ")) ?; f9 X. P/ f
- (princ "\n 5 | Blue ") z/ o4 L" X' {$ ?4 u
- (princ "\n 6 | Magenta ")' f- E2 A& j$ P2 j4 ~5 t/ U
- (princ "\n 7 | White ")
* X* d/ h3 Q G% v. H3 [ - (princ "\n 8...255 | -Varies- ")
2 M0 g' `, j. D' x: q# q2 g - (princ "\n 256 | <BYLAYER> ")
/ @1 _9 h6 C# c* { - (princ "\n \n\n\n")
8 V/ n, Z) |2 ~ - )
8 z; x. w7 o5 W/ G8 X6 ~/ I: _' k - ;;;
: t+ A6 Z+ ?8 F - ;;; C: function definition.
+ S# r' O8 u) J g - ;;;
6 i/ \$ }) y5 [6 R - (defun c:ssx () (ssx)(princ))
6 T* ~5 Z- k. A1 [% L; T6 w& C - (princ "\n\tType \"ssx\" at a Command: prompt or ")
8 y- L! L, y& F! V2 L5 Y, N - (princ "\n\t(ssx) at any object selection prompt. ")
, X" F3 s- B3 V" w - (princ)& x% Z9 h* f$ |3 [
- 4 ?: J% {$ s$ ?2 g0 e
- ;;;--------------------------------------------------------------------------;
) M h; X! L3 y9 f - ;;;--------------------------------------------------------------------------;8 c7 G) |# j1 l1 h5 H f
- ;;;--------------------------------------------------------------------------;6 n7 U1 g: W. Y/ I+ t$ R' v7 n
- (defun S::STARTUP ()) s# ?% {; ^5 @& s! r
- (setvar "cmdecho" 0): M- n' U/ G% R/ E+ B* S
- (setvar "cmdecho" 1)
; Z2 i% t5 z; n8 Y v - (setvar "LTSCALE" 10)9 I; P9 Q2 ^9 J3 U8 B
- & H, v6 {) h, U7 a0 p7 _+ v
- ;(command "_load" "chenKH.fas")4 K. y- ~+ v3 A# B& V; p! w7 K
- ;(command "_load" "ctcot.fas")
% E) u: o( b' S7 M9 B4 ~( h: d - ;(command "_load" "damdoc.fas")* ~( P: w1 c$ U3 ^3 L
- ;(command "_load" "ghichu.fas")/ `/ x7 o9 t2 T+ v/ N
- ;(command "_load" "hamtutao.lsp")7 q' t" Z# B, |! ~- J2 D
- ;(command "_load" "KHOITAO.fas")
. L0 T3 c1 f, P* y) U - ;(command "_load" "KHthep.fas")
/ F: [% T+ u+ T' y1 y - ;(command "_load" "mbmong.dcl")# e @ h+ O9 E, n
- ;(command "_load" "mbmong.fas")# j/ b4 l* u# q* E( |( o
- ;(command "_load" "mccot.fas")& e \' Z! E1 j* r$ b: Z
- ;(command "_load" "mcdam.fas")
2 E: \( L! L$ v0 s; s - ;(command "_load" "mcmong1.dcl")
: c: q w9 k+ G9 I - ;(command "_load" "mcmong1.fas")
( t0 l$ y* i3 i+ x - ;(command "_load" "mcmong2.dcl")
+ F- c& ~. Z) } q# F, W/ G7 \ - ;(command "_load" "mcmong2.fas")
4 h+ v$ X6 o4 t - ;(command "_load" "mcmong3.dcl")9 ~8 X9 \% w9 B" n9 j4 D Q
- ;(command "_load" "mcmong3.fas")0 _9 G B& x# E
- ;(command "_load" "mcsan.fas")+ h6 m: n/ @6 q4 ?6 ~$ u: \8 E
- ;(command "_load" "thepdai.fas")
; P# ^) p4 e+ F8 P/ F - ;(command "_load" "thepdoc.fas")3 b! Y- j1 _. _& H ^
- ;(command "_load" "thepmb.fas")
6 B6 D* B4 ], ]- r) h2 G! H - ;(command "_load" "thepphbo.fas")
2 w2 \1 t1 V& q6 g" h/ B5 F) ]2 O5 Z - (command "_script" "thongso.scr")
2 |) O6 R- B+ C, ]) N - ;(command "_load" "thongso1.dcl")
1 Q* ~$ u' o+ M) b: ?. `$ A/ i - ;(command "_load" "thongso1.fas")9 x6 d: t. l9 l1 |
- ;(command "_load" "thongso2.dcl")
, p3 `+ e: {6 @) H% v6 t - ;(command "_load" "thongso2.fas")$ U/ u- F! Z- \! Q/ W4 x3 ~
- ;(command "_load" "tietdien.fas")0 G5 L( e4 G5 r; z4 X' }3 H3 E
- ;(command "_load" "vehan.fas")
" n# V+ }1 m4 w) D - (command "_load" "phamDuy782006_TKT.lsp")" d5 ^, y2 M5 K. v! f& ?$ y- ?6 {7 z, Y
- (command "_load" "phamduy782006ganhtd.lsp")5 E6 {% a' A& J0 Z8 ^$ m- \
- (command "_load" "phamduy782006ganhtds.lsp")1 B; I9 ~% B. T8 B
- (command "_load" "phamduy782006htd.dcl")
' a6 |# `- r) `3 b7 P' C. _ - (princ)
9 r) H3 }. H! y' C - )
2 y0 v( c; U1 ^- ]2 M
! J2 ?& l }* U. |% s# W' y/ w: o- ;; Silent load.
9 s( n1 @$ W' C* T- K% [( K6 r - (princ)
6 C8 A; ?; `& q9 S0 o
' ]' u2 i9 k- M9 Y. y" h4 d
9 Q9 L9 ~0 f9 @0 m$ K- ;; Silent load for the Express Tools.
0 Q9 z3 i6 T2 L/ G7 e6 d - ;; Altering this line will affect Express Tools functionality
$ b8 U! u1 c7 {5 Z2 Z; _ - (load "acettest.fas" (princ))
: o4 z5 N" Q0 ]. B- F+ {3 D - �32
Sao chép mã ( L8 p/ P5 X. i- f% U
00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ
h! V+ m6 H; F |
|